From 654ac3597d572ac60e6950fa7ef47960e6373868 Mon Sep 17 00:00:00 2001 From: Shobek Attupurath Date: Tue, 20 Feb 2024 01:37:20 +0000 Subject: [PATCH] rtl8822ce: Add driver with roaming support Issue: RTL8822CE driver doesn't have active roaming support and has issues with current roaming algorithm Fix: Add driver with active roaming enabled and fixes issue with 5GHz and BT coex DRIVERVERSION - "v5.14.0.4-203-g4a9c85a0f.20240219_COEX20240125-2727_beta" BTCOEXVERSION - "COEX20240125-2727" Bug 4213654 Change-Id: Icff3ece063518575fbcca3d8ea5be0b6314a567f Signed-off-by: Shobek Attupurath Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3079863 (cherry picked from commit e3673f6890a3cf554a470fe359a12606d07317a4) Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3095799 Tested-by: Revanth Kumar Uppala Reviewed-by: Revanth Kumar Uppala Reviewed-by: Brad Griffis GVS: Gerrit_Virtual_Submit --- .../net/wireless/realtek/rtl8822ce/Makefile | 185 +- .../realtek/rtl8822ce/core/crypto/aes-ccm.c | 18 +- .../realtek/rtl8822ce/core/crypto/aes-ctr.c | 2 +- .../realtek/rtl8822ce/core/crypto/aes-gcm.c | 6 +- .../rtl8822ce/core/crypto/aes-internal-enc.c | 4 +- .../rtl8822ce/core/crypto/aes-internal.c | 8 +- .../realtek/rtl8822ce/core/crypto/aes-omac1.c | 6 +- .../realtek/rtl8822ce/core/crypto/aes.h | 2 +- .../realtek/rtl8822ce/core/crypto/aes_i.h | 2 +- .../realtek/rtl8822ce/core/crypto/ccmp.c | 21 +- .../realtek/rtl8822ce/core/crypto/gcmp.c | 13 +- .../rtl8822ce/core/crypto/wlancrypto_wrap.h | 12 +- .../realtek/rtl8822ce/core/efuse/rtw_efuse.c | 74 +- .../realtek/rtl8822ce/core/mesh/rtw_mesh.c | 63 +- .../realtek/rtl8822ce/core/mesh/rtw_mesh.h | 3 +- .../rtl8822ce/core/mesh/rtw_mesh_hwmp.c | 156 - .../wireless/realtek/rtl8822ce/core/rtw_ap.c | 1046 +- .../realtek/rtl8822ce/core/rtw_beamforming.c | 131 +- .../realtek/rtl8822ce/core/rtw_btcoex.c | 23 +- .../realtek/rtl8822ce/core/rtw_chplan.c | 3308 +- .../realtek/rtl8822ce/core/rtw_chplan.h | 351 +- .../wireless/realtek/rtl8822ce/core/rtw_cmd.c | 765 +- .../realtek/rtl8822ce/core/rtw_debug.c | 1508 +- .../wireless/realtek/rtl8822ce/core/rtw_ft.c | 673 + .../realtek/rtl8822ce/core/rtw_ieee80211.c | 638 +- .../wireless/realtek/rtl8822ce/core/rtw_io.c | 8 +- .../realtek/rtl8822ce/core/rtw_ioctl_set.c | 45 +- .../wireless/realtek/rtl8822ce/core/rtw_iol.c | 2 +- .../wireless/realtek/rtl8822ce/core/rtw_mbo.c | 805 + .../wireless/realtek/rtl8822ce/core/rtw_mem.c | 43 + .../wireless/realtek/rtl8822ce/core/rtw_mi.c | 72 +- .../realtek/rtl8822ce/core/rtw_mlme.c | 1609 +- .../realtek/rtl8822ce/core/rtw_mlme_ext.c | 4513 +- .../wireless/realtek/rtl8822ce/core/rtw_mp.c | 38 +- .../wireless/realtek/rtl8822ce/core/rtw_odm.c | 65 +- .../wireless/realtek/rtl8822ce/core/rtw_p2p.c | 484 +- .../realtek/rtl8822ce/core/rtw_pwrctrl.c | 326 +- .../realtek/rtl8822ce/core/rtw_recv.c | 1214 +- .../wireless/realtek/rtl8822ce/core/rtw_rf.c | 1262 +- .../wireless/realtek/rtl8822ce/core/rtw_rm.c | 701 +- .../realtek/rtl8822ce/core/rtw_rm_fsm.c | 69 +- .../realtek/rtl8822ce/core/rtw_rm_util.c | 115 +- .../realtek/rtl8822ce/core/rtw_roch.c | 591 + .../realtek/rtl8822ce/core/rtw_rson.c | 13 +- .../realtek/rtl8822ce/core/rtw_security.c | 53 +- .../realtek/rtl8822ce/core/rtw_sreset.c | 10 +- .../realtek/rtl8822ce/core/rtw_sta_mgt.c | 37 +- .../realtek/rtl8822ce/core/rtw_swcrypto.c | 20 +- .../realtek/rtl8822ce/core/rtw_tdls.c | 91 +- .../wireless/realtek/rtl8822ce/core/rtw_vht.c | 337 +- .../realtek/rtl8822ce/core/rtw_wapi.c | 17 +- .../realtek/rtl8822ce/core/rtw_wlan_util.c | 1167 +- .../wireless/realtek/rtl8822ce/core/rtw_wnm.c | 1125 + .../realtek/rtl8822ce/core/rtw_xmit.c | 968 +- .../realtek/rtl8822ce/core/wds/rtw_wds.c | 786 + .../realtek/rtl8822ce/core/wds/rtw_wds.h | 65 + .../realtek/rtl8822ce/hal/btc/halbtc8822c.c | 1186 +- .../realtek/rtl8822ce/hal/btc/halbtc8822c.h | 2 +- .../realtek/rtl8822ce/hal/btc/halbtccommon.c | 10614 +- .../realtek/rtl8822ce/hal/btc/halbtccommon.h | 3 + .../realtek/rtl8822ce/hal/btc/halbtcoutsrc.h | 75 +- .../realtek/rtl8822ce/hal/btc/mp_precomp.h | 9 + .../realtek/rtl8822ce/hal/efuse/efuse_mask.h | 7 + .../efuse/rtl8822c/HalEfuseMask8822C_PCIE.c | 22 +- .../efuse/rtl8822c/HalEfuseMask8822C_PCIE.h | 22 +- .../efuse/rtl8822c/HalEfuseMask8822C_SDIO.c | 22 +- .../efuse/rtl8822c/HalEfuseMask8822C_SDIO.h | 22 +- .../efuse/rtl8822c/HalEfuseMask8822C_USB.c | 22 +- .../efuse/rtl8822c/HalEfuseMask8822C_USB.h | 22 +- .../realtek/rtl8822ce/hal/hal_btcoex.c | 139 +- .../rtl8822ce/hal/hal_btcoex_wifionly.c | 15 + .../wireless/realtek/rtl8822ce/hal/hal_com.c | 3616 +- .../realtek/rtl8822ce/hal/hal_com_c2h.h | 2 + .../realtek/rtl8822ce/hal/hal_com_phycfg.c | 1215 +- .../wireless/realtek/rtl8822ce/hal/hal_dm.c | 189 +- .../wireless/realtek/rtl8822ce/hal/hal_dm.h | 8 +- .../realtek/rtl8822ce/hal/hal_dm_acs.c | 61 +- .../realtek/rtl8822ce/hal/hal_dm_acs.h | 8 +- .../realtek/rtl8822ce/hal/hal_halmac.c | 158 +- .../realtek/rtl8822ce/hal/hal_halmac.h | 9 +- .../wireless/realtek/rtl8822ce/hal/hal_intf.c | 290 +- .../wireless/realtek/rtl8822ce/hal/hal_mcc.c | 177 +- .../wireless/realtek/rtl8822ce/hal/hal_mp.c | 207 +- .../halmac_8822c/halmac_init_8822c.c | 174 +- .../halmac_8822c/halmac_pwr_seq_8822c.c | 34 +- .../halmac_8822c/halmac_pwr_seq_8822c.h | 24 +- .../halmac/halmac_88xx/halmac_cfg_wmac_88xx.c | 26 +- .../halmac/halmac_88xx/halmac_common_88xx.c | 21 +- .../halmac/halmac_88xx/halmac_efuse_88xx.c | 40 +- .../hal/halmac/halmac_88xx/halmac_init_88xx.c | 1 + .../hal/halmac/halmac_88xx/halmac_mimo_88xx.c | 2 + .../realtek/rtl8822ce/hal/halmac/halmac_api.c | 3 +- .../realtek/rtl8822ce/hal/halmac/halmac_api.h | 10 +- .../rtl8822ce/hal/halmac/halmac_type.h | 12 + .../rtl8822ce/hal/halmac/halmac_usb_reg.h | 2 + .../realtek/rtl8822ce/hal/led/hal_led.c | 2 +- .../rtl8822ce/hal/phydm/ap_makefile.mk | 35 +- .../rtl8822ce/hal/phydm/halrf/halphyrf_ap.c | 35 +- .../rtl8822ce/hal/phydm/halrf/halphyrf_ce.c | 21 +- .../rtl8822ce/hal/phydm/halrf/halphyrf_iot.c | 25 +- .../rtl8822ce/hal/phydm/halrf/halphyrf_win.c | 69 +- .../rtl8822ce/hal/phydm/halrf/halphyrf_win.h | 2 +- .../realtek/rtl8822ce/hal/phydm/halrf/halrf.c | 1164 +- .../realtek/rtl8822ce/hal/phydm/halrf/halrf.h | 122 +- .../rtl8822ce/hal/phydm/halrf/halrf_debug.c | 13 +- .../rtl8822ce/hal/phydm/halrf/halrf_debug.h | 17 + .../rtl8822ce/hal/phydm/halrf/halrf_dpk.h | 125 +- .../rtl8822ce/hal/phydm/halrf/halrf_iqk.h | 35 +- .../rtl8822ce/hal/phydm/halrf/halrf_kfree.c | 1434 +- .../rtl8822ce/hal/phydm/halrf/halrf_kfree.h | 89 +- .../hal/phydm/halrf/halrf_powertracking.c | 14 +- .../hal/phydm/halrf/halrf_powertracking_ap.c | 92 +- .../hal/phydm/halrf/halrf_powertracking_ap.h | 1 + .../hal/phydm/halrf/halrf_powertracking_ce.c | 39 +- .../hal/phydm/halrf/halrf_powertracking_ce.h | 1 + .../hal/phydm/halrf/halrf_powertracking_iot.c | 68 +- .../hal/phydm/halrf/halrf_powertracking_iot.h | 43 +- .../hal/phydm/halrf/halrf_powertracking_win.c | 47 +- .../hal/phydm/halrf/halrf_powertracking_win.h | 1 + .../rtl8822ce/hal/phydm/halrf/halrf_psd.c | 245 +- .../rtl8822ce/hal/phydm/halrf/halrf_psd.h | 10 + .../phydm/halrf/rtl8822c/halhwimg8822c_rf.c | 26884 +++- .../phydm/halrf/rtl8822c/halhwimg8822c_rf.h | 27 +- .../hal/phydm/halrf/rtl8822c/halrf_8822c.c | 4 +- .../phydm/halrf/rtl8822c/halrf_dpk_8822c.c | 229 +- .../phydm/halrf/rtl8822c/halrf_dpk_8822c.h | 6 +- .../phydm/halrf/rtl8822c/halrf_iqk_8822c.c | 120 +- .../halrf/rtl8822c/halrf_rfk_init_8822c.c | 2 +- .../phydm/halrf/rtl8822c/halrf_tssi_8822c.c | 1266 +- .../phydm/halrf/rtl8822c/halrf_tssi_8822c.h | 30 +- .../phydm/halrf/rtl8822c/halrf_txgapk_8822c.c | 54 +- .../halrf/rtl8822c/version_rtl8822c_rf.h | 2 +- .../realtek/rtl8822ce/hal/phydm/phydm.c | 322 +- .../realtek/rtl8822ce/hal/phydm/phydm.h | 89 +- .../realtek/rtl8822ce/hal/phydm/phydm.mk | 28 +- .../rtl8822ce/hal/phydm/phydm_adaptivity.c | 397 +- .../rtl8822ce/hal/phydm/phydm_adaptivity.h | 28 +- .../rtl8822ce/hal/phydm/phydm_adc_sampling.c | 198 +- .../rtl8822ce/hal/phydm/phydm_adc_sampling.h | 6 +- .../rtl8822ce/hal/phydm/phydm_antdiv.c | 571 +- .../rtl8822ce/hal/phydm/phydm_antdiv.h | 27 +- .../realtek/rtl8822ce/hal/phydm/phydm_api.c | 524 +- .../realtek/rtl8822ce/hal/phydm/phydm_api.h | 16 +- .../rtl8822ce/hal/phydm/phydm_beamforming.c | 7 +- .../rtl8822ce/hal/phydm/phydm_beamforming.h | 2 +- .../rtl8822ce/hal/phydm/phydm_cck_pd.c | 809 +- .../rtl8822ce/hal/phydm/phydm_cck_pd.h | 47 +- .../hal/phydm/phydm_cck_rx_pathdiv.c | 3 +- .../realtek/rtl8822ce/hal/phydm/phydm_ccx.c | 2797 +- .../realtek/rtl8822ce/hal/phydm/phydm_ccx.h | 255 +- .../rtl8822ce/hal/phydm/phydm_cfotracking.c | 29 +- .../realtek/rtl8822ce/hal/phydm/phydm_debug.c | 461 +- .../realtek/rtl8822ce/hal/phydm/phydm_debug.h | 7 +- .../realtek/rtl8822ce/hal/phydm/phydm_dfs.c | 829 +- .../realtek/rtl8822ce/hal/phydm/phydm_dfs.h | 27 + .../realtek/rtl8822ce/hal/phydm/phydm_dig.c | 1071 +- .../realtek/rtl8822ce/hal/phydm/phydm_dig.h | 77 +- .../hal/phydm/phydm_dynamictxpower.c | 148 +- .../hal/phydm/phydm_dynamictxpower.h | 11 +- .../rtl8822ce/hal/phydm/phydm_features.h | 3 + .../rtl8822ce/hal/phydm/phydm_features_ap.h | 38 +- .../rtl8822ce/hal/phydm/phydm_features_ce.h | 26 +- .../rtl8822ce/hal/phydm/phydm_features_iot.h | 14 +- .../rtl8822ce/hal/phydm/phydm_features_win.h | 23 +- .../rtl8822ce/hal/phydm/phydm_hwconfig.c | 139 +- .../rtl8822ce/hal/phydm/phydm_interface.c | 68 +- .../rtl8822ce/hal/phydm/phydm_interface.h | 10 +- .../rtl8822ce/hal/phydm/phydm_lna_sat.c | 451 +- .../rtl8822ce/hal/phydm/phydm_lna_sat.h | 25 +- .../rtl8822ce/hal/phydm/phydm_math_lib.c | 31 +- .../realtek/rtl8822ce/hal/phydm/phydm_mp.c | 405 +- .../realtek/rtl8822ce/hal/phydm/phydm_mp.h | 23 +- .../rtl8822ce/hal/phydm/phydm_noisemonitor.c | 12 +- .../rtl8822ce/hal/phydm/phydm_pathdiv.c | 6 +- .../rtl8822ce/hal/phydm/phydm_phystatus.c | 179 +- .../rtl8822ce/hal/phydm/phydm_phystatus.h | 76 +- .../hal/phydm/phydm_pmac_tx_setting.c | 488 +- .../hal/phydm/phydm_pmac_tx_setting.h | 23 +- .../rtl8822ce/hal/phydm/phydm_pre_define.h | 109 +- .../rtl8822ce/hal/phydm/phydm_precomp.h | 49 +- .../rtl8822ce/hal/phydm/phydm_primary_cca.h | 11 - .../realtek/rtl8822ce/hal/phydm/phydm_psd.c | 114 +- .../rtl8822ce/hal/phydm/phydm_rainfo.c | 198 +- .../rtl8822ce/hal/phydm/phydm_rainfo.h | 38 +- .../rtl8822ce/hal/phydm/phydm_regtable.h | 140 + .../rtl8822ce/hal/phydm/phydm_rssi_monitor.c | 22 +- .../rtl8822ce/hal/phydm/phydm_rssi_monitor.h | 3 + .../realtek/rtl8822ce/hal/phydm/phydm_soml.c | 26 +- .../realtek/rtl8822ce/hal/phydm/phydm_types.h | 91 +- .../hal/phydm/rtl8822c/halhwimg8822c_bb.c | 1741 +- .../hal/phydm/rtl8822c/halhwimg8822c_bb.h | 2 +- .../hal/phydm/rtl8822c/phydm_hal_api8822c.c | 493 +- .../hal/phydm/rtl8822c/phydm_hal_api8822c.h | 10 +- .../hal/phydm/rtl8822c/phydm_regconfig8822c.c | 14 + .../hal/phydm/rtl8822c/phydm_regconfig8822c.h | 7 +- .../hal/phydm/rtl8822c/phydm_rtl8822c.c | 16 +- .../hal/phydm/rtl8822c/phydm_rtl8822c.h | 4 +- .../hal/phydm/rtl8822c/version_rtl8822c.h | 4 +- .../hal/phydm/txbf/phydm_hal_txbf_api.c | 40 +- .../hal/phydm/txbf/phydm_hal_txbf_api.h | 3 +- .../rtl8822ce/hal/rtl8822c/hal8822c_fw.c | 101076 +++++++-------- .../rtl8822ce/hal/rtl8822c/hal8822c_fw.h | 8 +- .../rtl8822ce/hal/rtl8822c/hal8822c_fw_10M.c | 72805 +++++++++++ .../rtl8822ce/hal/rtl8822c/hal8822c_fw_10M.h | 46 + .../rtl8822ce/hal/rtl8822c/pci/rtl8822ce.h | 34 +- .../hal/rtl8822c/pci/rtl8822ce_halinit.c | 40 +- .../hal/rtl8822c/pci/rtl8822ce_halmac.c | 84 +- .../rtl8822ce/hal/rtl8822c/pci/rtl8822ce_io.c | 12 +- .../hal/rtl8822c/pci/rtl8822ce_ops.c | 43 +- .../hal/rtl8822c/pci/rtl8822ce_recv.c | 106 +- .../hal/rtl8822c/pci/rtl8822ce_xmit.c | 165 +- .../realtek/rtl8822ce/hal/rtl8822c/rtl8822c.h | 30 +- .../rtl8822ce/hal/rtl8822c/rtl8822c_cmd.c | 94 +- .../rtl8822ce/hal/rtl8822c/rtl8822c_halinit.c | 22 +- .../rtl8822ce/hal/rtl8822c/rtl8822c_mac.c | 15 - .../rtl8822ce/hal/rtl8822c/rtl8822c_ops.c | 195 +- .../rtl8822ce/hal/rtl8822c/rtl8822c_phy.c | 91 +- .../net/wireless/realtek/rtl8822ce/halmac.mk | 39 +- .../realtek/rtl8822ce/include/HalVerDef.h | 2 + .../realtek/rtl8822ce/include/autoconf.h | 35 +- .../rtl8822ce/include/cmn_info/rtw_sta_info.h | 10 + .../realtek/rtl8822ce/include/drv_conf.h | 247 +- .../realtek/rtl8822ce/include/drv_types.h | 332 +- .../realtek/rtl8822ce/include/hal_btcoex.h | 1 + .../rtl8822ce/include/hal_btcoex_wifionly.h | 5 +- .../realtek/rtl8822ce/include/hal_com.h | 157 +- .../realtek/rtl8822ce/include/hal_com_h2c.h | 163 +- .../rtl8822ce/include/hal_com_phycfg.h | 77 +- .../realtek/rtl8822ce/include/hal_com_reg.h | 13 +- .../realtek/rtl8822ce/include/hal_data.h | 23 +- .../realtek/rtl8822ce/include/hal_ic_cfg.h | 130 +- .../realtek/rtl8822ce/include/hal_intf.h | 49 +- .../realtek/rtl8822ce/include/hal_pg.h | 47 +- .../realtek/rtl8822ce/include/hal_sdio.h | 17 +- .../realtek/rtl8822ce/include/hal_sdio_coex.h | 33 +- .../realtek/rtl8822ce/include/ieee80211.h | 211 +- .../realtek/rtl8822ce/include/osdep_intf.h | 8 +- .../realtek/rtl8822ce/include/osdep_service.h | 85 +- .../rtl8822ce/include/osdep_service_linux.h | 46 + .../realtek/rtl8822ce/include/pci_osintf.h | 5 +- .../realtek/rtl8822ce/include/recv_osdep.h | 7 +- .../realtek/rtl8822ce/include/rtl8188e_hal.h | 7 +- .../realtek/rtl8822ce/include/rtl8188e_xmit.h | 15 +- .../realtek/rtl8822ce/include/rtl8188f_cmd.h | 6 - .../realtek/rtl8822ce/include/rtl8188f_recv.h | 7 +- .../realtek/rtl8822ce/include/rtl8188f_xmit.h | 8 +- .../realtek/rtl8822ce/include/rtl8192e_cmd.h | 6 - .../realtek/rtl8822ce/include/rtl8192e_xmit.h | 15 +- .../realtek/rtl8822ce/include/rtl8192f_cmd.h | 31 +- .../realtek/rtl8822ce/include/rtl8192f_dm.h | 4 +- .../realtek/rtl8822ce/include/rtl8192f_hal.h | 13 +- .../realtek/rtl8822ce/include/rtl8192f_led.h | 17 + .../realtek/rtl8822ce/include/rtl8192f_rf.h | 18 +- .../realtek/rtl8822ce/include/rtl8192f_spec.h | 4 +- .../realtek/rtl8822ce/include/rtl8192f_xmit.h | 13 +- .../realtek/rtl8822ce/include/rtl8703b_cmd.h | 6 - .../realtek/rtl8822ce/include/rtl8703b_xmit.h | 11 +- .../realtek/rtl8822ce/include/rtl8710b_cmd.h | 6 - .../realtek/rtl8822ce/include/rtl8710b_xmit.h | 5 +- .../realtek/rtl8822ce/include/rtl8723b_cmd.h | 6 - .../realtek/rtl8822ce/include/rtl8723b_xmit.h | 11 +- .../realtek/rtl8822ce/include/rtl8723d_cmd.h | 6 - .../realtek/rtl8822ce/include/rtl8723d_xmit.h | 13 +- .../realtek/rtl8822ce/include/rtl8723f_hal.h | 245 + .../{rtw_wifi_regd.h => rtl8723fs_hal.h} | 29 +- .../realtek/rtl8822ce/include/rtl8723fu_hal.h | 61 + .../realtek/rtl8822ce/include/rtl8812a_cmd.h | 6 - .../realtek/rtl8822ce/include/rtl8812a_xmit.h | 8 +- .../realtek/rtl8822ce/include/rtl8814a_cmd.h | 5 - .../realtek/rtl8822ce/include/rtl8814a_hal.h | 2 + .../realtek/rtl8822ce/include/rtl8814a_spec.h | 5 + .../realtek/rtl8822ce/include/rtl8814a_xmit.h | 8 +- .../realtek/rtl8822ce/include/rtl8821a_xmit.h | 3 + .../realtek/rtl8822ce/include/rtl8822bu_hal.h | 4 +- .../realtek/rtl8822ce/include/rtl8822cu_hal.h | 4 +- .../realtek/rtl8822ce/include/rtw_ap.h | 264 +- .../realtek/rtl8822ce/include/rtw_btcoex.h | 1 + .../realtek/rtl8822ce/include/rtw_cmd.h | 88 +- .../realtek/rtl8822ce/include/rtw_debug.h | 62 +- .../realtek/rtl8822ce/include/rtw_efuse.h | 16 +- .../realtek/rtl8822ce/include/rtw_event.h | 1 + .../realtek/rtl8822ce/include/rtw_ft.h | 183 + .../realtek/rtl8822ce/include/rtw_ioctl_set.h | 8 +- .../realtek/rtl8822ce/include/rtw_mbo.h | 114 + .../realtek/rtl8822ce/include/rtw_mcc.h | 4 + .../realtek/rtl8822ce/include/rtw_mem.h | 12 - .../realtek/rtl8822ce/include/rtw_mi.h | 29 +- .../realtek/rtl8822ce/include/rtw_mlme.h | 381 +- .../realtek/rtl8822ce/include/rtw_mlme_ext.h | 215 +- .../realtek/rtl8822ce/include/rtw_mp.h | 18 +- .../realtek/rtl8822ce/include/rtw_odm.h | 7 +- .../realtek/rtl8822ce/include/rtw_p2p.h | 2 - .../realtek/rtl8822ce/include/rtw_pwrctrl.h | 163 +- .../realtek/rtl8822ce/include/rtw_recv.h | 136 +- .../realtek/rtl8822ce/include/rtw_rf.h | 129 +- .../realtek/rtl8822ce/include/rtw_rm.h | 27 +- .../realtek/rtl8822ce/include/rtw_rm_fsm.h | 23 +- .../realtek/rtl8822ce/include/rtw_rm_util.h | 5 + .../realtek/rtl8822ce/include/rtw_roch.h | 61 + .../realtek/rtl8822ce/include/rtw_rson.h | 9 +- .../realtek/rtl8822ce/include/rtw_security.h | 9 +- .../realtek/rtl8822ce/include/rtw_swcrypto.h | 8 +- .../realtek/rtl8822ce/include/rtw_version.h | 4 +- .../realtek/rtl8822ce/include/rtw_vht.h | 77 +- .../realtek/rtl8822ce/include/rtw_wapi.h | 14 +- .../realtek/rtl8822ce/include/rtw_wnm.h | 214 + .../realtek/rtl8822ce/include/rtw_xmit.h | 145 +- .../realtek/rtl8822ce/include/sdio_ops.h | 3 +- .../realtek/rtl8822ce/include/sta_info.h | 31 +- .../realtek/rtl8822ce/include/usb_ops.h | 3 - .../realtek/rtl8822ce/include/usb_ops_linux.h | 2 +- .../wireless/realtek/rtl8822ce/include/wifi.h | 87 +- .../realtek/rtl8822ce/include/wlan_bssdef.h | 11 +- .../realtek/rtl8822ce/include/xmit_osdep.h | 7 + .../rtl8822ce/os_dep/linux/ioctl_cfg80211.c | 2417 +- .../rtl8822ce/os_dep/linux/ioctl_cfg80211.h | 31 +- .../rtl8822ce/os_dep/linux/ioctl_linux.c | 518 +- .../realtek/rtl8822ce/os_dep/linux/ioctl_mp.c | 407 +- .../realtek/rtl8822ce/os_dep/linux/nlrtw.c | 583 + .../realtek/rtl8822ce/os_dep/linux/nlrtw.h | 48 + .../realtek/rtl8822ce/os_dep/linux/os_intfs.c | 964 +- .../realtek/rtl8822ce/os_dep/linux/pci_intf.c | 135 +- .../rtl8822ce/os_dep/linux/recv_linux.c | 120 +- .../rtl8822ce/os_dep/linux/rtw_android.c | 12 +- .../rtl8822ce/os_dep/linux/rtw_cfgvendor.c | 100 +- .../rtl8822ce/os_dep/linux/rtw_cfgvendor.h | 16 +- .../rtl8822ce/os_dep/linux/rtw_genetlink.c | 300 - .../realtek/rtl8822ce/os_dep/linux/rtw_proc.c | 1088 +- .../rtl8822ce/os_dep/linux/rtw_rhashtable.c | 6 +- .../rtl8822ce/os_dep/linux/rtw_rhashtable.h | 12 +- .../rtl8822ce/os_dep/linux/wifi_regd.c | 996 +- .../rtl8822ce/os_dep/linux/wifi_regd.h | 30 + .../rtl8822ce/os_dep/linux/xmit_linux.c | 212 +- .../realtek/rtl8822ce/os_dep/osdep_service.c | 693 +- .../platform/custom_country_chplan.h | 2 +- .../wireless/realtek/rtl8822ce/rtl8822c.mk | 2 +- 336 files changed, 201541 insertions(+), 77414 deletions(-) mode change 100644 => 100755 drivers/net/wireless/realtek/rtl8822ce/Makefile mode change 100644 => 100755 drivers/net/wireless/realtek/rtl8822ce/core/mesh/rtw_mesh.c mode change 100755 => 100644 drivers/net/wireless/realtek/rtl8822ce/core/rtw_cmd.c mode change 100644 => 100755 drivers/net/wireless/realtek/rtl8822ce/core/rtw_debug.c create mode 100755 drivers/net/wireless/realtek/rtl8822ce/core/rtw_ft.c mode change 100644 => 100755 drivers/net/wireless/realtek/rtl8822ce/core/rtw_ieee80211.c create mode 100755 drivers/net/wireless/realtek/rtl8822ce/core/rtw_mbo.c mode change 100644 => 100755 drivers/net/wireless/realtek/rtl8822ce/core/rtw_mp.c mode change 100644 => 100755 drivers/net/wireless/realtek/rtl8822ce/core/rtw_pwrctrl.c create mode 100644 drivers/net/wireless/realtek/rtl8822ce/core/rtw_roch.c mode change 100644 => 100755 drivers/net/wireless/realtek/rtl8822ce/core/rtw_vht.c create mode 100755 drivers/net/wireless/realtek/rtl8822ce/core/rtw_wnm.c mode change 100755 => 100644 drivers/net/wireless/realtek/rtl8822ce/core/rtw_xmit.c create mode 100644 drivers/net/wireless/realtek/rtl8822ce/core/wds/rtw_wds.c create mode 100644 drivers/net/wireless/realtek/rtl8822ce/core/wds/rtw_wds.h mode change 100755 => 100644 drivers/net/wireless/realtek/rtl8822ce/hal/btc/halbtc8822c.c mode change 100755 => 100644 drivers/net/wireless/realtek/rtl8822ce/hal/btc/halbtccommon.c mode change 100755 => 100644 drivers/net/wireless/realtek/rtl8822ce/hal/btc/halbtccommon.h mode change 100644 => 100755 drivers/net/wireless/realtek/rtl8822ce/hal/hal_com.c mode change 100644 => 100755 drivers/net/wireless/realtek/rtl8822ce/hal/hal_dm.c mode change 100755 => 100644 drivers/net/wireless/realtek/rtl8822ce/hal/hal_intf.c mode change 100644 => 100755 drivers/net/wireless/realtek/rtl8822ce/hal/hal_mp.c create mode 100755 drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/hal8822c_fw_10M.c create mode 100755 drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/hal8822c_fw_10M.h mode change 100755 => 100644 drivers/net/wireless/realtek/rtl8822ce/include/drv_conf.h mode change 100644 => 100755 drivers/net/wireless/realtek/rtl8822ce/include/hal_com.h mode change 100644 => 100755 drivers/net/wireless/realtek/rtl8822ce/include/hal_com_phycfg.h mode change 100755 => 100644 drivers/net/wireless/realtek/rtl8822ce/include/hal_data.h mode change 100755 => 100644 drivers/net/wireless/realtek/rtl8822ce/include/hal_ic_cfg.h mode change 100755 => 100644 drivers/net/wireless/realtek/rtl8822ce/include/hal_intf.h mode change 100755 => 100644 drivers/net/wireless/realtek/rtl8822ce/include/hal_pg.h mode change 100644 => 100755 drivers/net/wireless/realtek/rtl8822ce/include/ieee80211.h mode change 100644 => 100755 drivers/net/wireless/realtek/rtl8822ce/include/osdep_service_linux.h mode change 100644 => 100755 drivers/net/wireless/realtek/rtl8822ce/include/recv_osdep.h mode change 100755 => 100644 drivers/net/wireless/realtek/rtl8822ce/include/rtl8188e_xmit.h mode change 100755 => 100644 drivers/net/wireless/realtek/rtl8822ce/include/rtl8188f_xmit.h mode change 100755 => 100644 drivers/net/wireless/realtek/rtl8822ce/include/rtl8192e_xmit.h mode change 100755 => 100644 drivers/net/wireless/realtek/rtl8822ce/include/rtl8192f_xmit.h mode change 100755 => 100644 drivers/net/wireless/realtek/rtl8822ce/include/rtl8703b_xmit.h mode change 100755 => 100644 drivers/net/wireless/realtek/rtl8822ce/include/rtl8710b_xmit.h mode change 100755 => 100644 drivers/net/wireless/realtek/rtl8822ce/include/rtl8723d_xmit.h create mode 100644 drivers/net/wireless/realtek/rtl8822ce/include/rtl8723f_hal.h rename drivers/net/wireless/realtek/rtl8822ce/include/{rtw_wifi_regd.h => rtl8723fs_hal.h} (56%) create mode 100644 drivers/net/wireless/realtek/rtl8822ce/include/rtl8723fu_hal.h mode change 100644 => 100755 drivers/net/wireless/realtek/rtl8822ce/include/rtw_debug.h create mode 100755 drivers/net/wireless/realtek/rtl8822ce/include/rtw_ft.h create mode 100755 drivers/net/wireless/realtek/rtl8822ce/include/rtw_mbo.h mode change 100644 => 100755 drivers/net/wireless/realtek/rtl8822ce/include/rtw_mlme.h mode change 100644 => 100755 drivers/net/wireless/realtek/rtl8822ce/include/rtw_pwrctrl.h mode change 100644 => 100755 drivers/net/wireless/realtek/rtl8822ce/include/rtw_recv.h create mode 100644 drivers/net/wireless/realtek/rtl8822ce/include/rtw_roch.h mode change 100755 => 100644 drivers/net/wireless/realtek/rtl8822ce/include/rtw_security.h mode change 100644 => 100755 drivers/net/wireless/realtek/rtl8822ce/include/rtw_vht.h create mode 100755 drivers/net/wireless/realtek/rtl8822ce/include/rtw_wnm.h mode change 100755 => 100644 drivers/net/wireless/realtek/rtl8822ce/include/rtw_xmit.h mode change 100644 => 100755 drivers/net/wireless/realtek/rtl8822ce/include/sta_info.h mode change 100644 => 100755 drivers/net/wireless/realtek/rtl8822ce/include/wifi.h create mode 100644 drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/nlrtw.c create mode 100644 drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/nlrtw.h mode change 100755 => 100644 drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/os_intfs.c mode change 100644 => 100755 drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/recv_linux.c mode change 100644 => 100755 drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_android.c delete mode 100644 drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_genetlink.c mode change 100644 => 100755 drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_proc.c create mode 100644 drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/wifi_regd.h diff --git a/drivers/net/wireless/realtek/rtl8822ce/Makefile b/drivers/net/wireless/realtek/rtl8822ce/Makefile old mode 100644 new mode 100755 index 221da5de..20c90fec --- a/drivers/net/wireless/realtek/rtl8822ce/Makefile +++ b/drivers/net/wireless/realtek/rtl8822ce/Makefile @@ -1,6 +1,3 @@ -# SPDX-License-Identifier: GPL-2.0-only -# Copyright (c) 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved. - EXTRA_CFLAGS += $(USER_EXTRA_CFLAGS) EXTRA_CFLAGS += -O1 #EXTRA_CFLAGS += -O3 @@ -11,22 +8,19 @@ EXTRA_CFLAGS += -O1 #EXTRA_CFLAGS += -Wshadow -Wpointer-arith -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes EXTRA_CFLAGS += -Wno-unused-variable -EXTRA_CFLAGS += -Wno-implicit-fallthrough #EXTRA_CFLAGS += -Wno-unused-value #EXTRA_CFLAGS += -Wno-unused-label #EXTRA_CFLAGS += -Wno-unused-parameter -EXTRA_CFLAGS += -Wno-unused-function +#EXTRA_CFLAGS += -Wno-unused-function #EXTRA_CFLAGS += -Wno-unused #EXTRA_CFLAGS += -Wno-uninitialized -EXTRA_CFLAGS += -Wno-missing-prototypes GCC_VER_49 := $(shell echo `$(CC) -dumpversion | cut -f1-2 -d.` \>= 4.9 | bc ) ifeq ($(GCC_VER_49),1) EXTRA_CFLAGS += -Wno-date-time # Fix compile error && warning on gcc 4.9 and later endif -SOURCETREE = $(srctree.nvidia-oot)/drivers/net/wireless/realtek/rtl8822ce -EXTRA_CFLAGS += -I$(SOURCETREE)/include +EXTRA_CFLAGS += -I$(src)/include EXTRA_LDFLAGS += --strip-debug @@ -50,12 +44,16 @@ CONFIG_RTL8710B = n CONFIG_RTL8192F = n CONFIG_RTL8822C = y CONFIG_RTL8814B = n +CONFIG_RTL8814C = n +CONFIG_RTL8723F = n ######################### Interface ########################### CONFIG_USB_HCI = n CONFIG_PCI_HCI = y CONFIG_SDIO_HCI = n CONFIG_GSPI_HCI = n ########################## Features ########################### +CONFIG_AP_MODE = y +CONFIG_P2P = y CONFIG_MP_INCLUDED = y CONFIG_POWER_SAVING = y CONFIG_IPS_MODE = default @@ -70,14 +68,17 @@ CONFIG_TRAFFIC_PROTECT = n CONFIG_LOAD_PHY_PARA_FROM_FILE = y CONFIG_TXPWR_BY_RATE = y CONFIG_TXPWR_BY_RATE_EN = auto -CONFIG_RTW_CHPLAN = 0xFF +CONFIG_TXPWR_LIMIT = y +CONFIG_TXPWR_LIMIT_EN = auto +CONFIG_RTW_CHPLAN = 0xFFFF CONFIG_RTW_ADAPTIVITY_EN = disable CONFIG_RTW_ADAPTIVITY_MODE = normal +CONFIG_80211D = n CONFIG_SIGNAL_SCALE_MAPPING = n CONFIG_80211W = y CONFIG_REDUCE_TX_CPU_LOADING = n CONFIG_BR_EXT = y -CONFIG_TDLS = y +CONFIG_TDLS = n CONFIG_WIFI_MONITOR = n CONFIG_MCC_MODE = n CONFIG_APPEND_VENDOR_IE_ENABLE = n @@ -88,12 +89,14 @@ CONFIG_RTW_IPCAM_APPLICATION = n CONFIG_RTW_REPEATER_SON = n CONFIG_ICMP_VOQ = n CONFIG_IP_R_MONITOR = n #arp VOQ and high rate -CONFIG_RTW_IOT_CCK_PD_INIT = n -CONFIG_RTW_DISABLE_HW_PDN = n # user priority mapping rule : tos, dscp CONFIG_RTW_UP_MAPPING_RULE = tos +CONFIG_RTW_MBO = y +CONFIG_WAKE_ON_BT = n +CONFIG_RTW_NBI = n + ########################## Android ########################### -# CONFIG_RTW_ANDROID - 0: no Android, 4/5/6/7/8/9/10 : Android version +# CONFIG_RTW_ANDROID - 0: no Android, 4/5/6/7/8/9/10/11 : Android version CONFIG_RTW_ANDROID = 0 ifeq ($(shell test $(CONFIG_RTW_ANDROID) -gt 0; echo $$?), 0) @@ -104,7 +107,7 @@ endif CONFIG_RTW_DEBUG = y # default log level is _DRV_INFO_ = 4, # please refer to "How_to_set_driver_debug_log_level.doc" to set the available level. -CONFIG_RTW_LOG_LEVEL = 0 +CONFIG_RTW_LOG_LEVEL = 4 # enable /proc/net/rtlxxxx/ debug interfaces CONFIG_PROC_DEBUG = y @@ -132,11 +135,19 @@ CONFIG_AP_WOWLAN = n CONFIG_RTW_SDIO_PM_KEEP_POWER = y ###################### MP HW TX MODE FOR VHT ####################### CONFIG_MP_VHT_HW_TX_MODE = n -#################### Alibaba Zeroconfig ####################### -CONFIG_ALIBABA_ZEROCONFIG = n +###################### ROAMING ##################################### +CONFIG_LAYER2_ROAMING = y +#bit0: ROAM_ON_EXPIRED, #bit1: ROAM_ON_RESUME, #bit2: ROAM_ACTIVE +CONFIG_ROAMING_FLAG = 0x7 +####################### Security Memory ############################ +# Define for using dma_declare_coherent_memory DMA API. +# User Must set the SECURITY_MEM_ADDR and SECURITY_MEM_SIZE. +# If SECURITY_MEM_ADDR is NULL, driver will show WARN_ON for notification. +CONFIG_SECURITY_MEM = n +CONFIG_SECURITY_MEM_ADDR = 0 +CONFIG_SECURITY_MEM_SIZE = 3686400 ###################### Platform Related ####################### -CONFIG_PLATFORM_TEGRA = y -CONFIG_PLATFORM_I386_PC = n +CONFIG_PLATFORM_I386_PC = y CONFIG_PLATFORM_ANDROID_X86 = n CONFIG_PLATFORM_ANDROID_INTEL_X86 = n CONFIG_PLATFORM_JB_X86 = n @@ -236,6 +247,7 @@ _OS_INTFS_FILES := os_dep/osdep_service.o \ os_dep/linux/wifi_regd.o \ os_dep/linux/rtw_android.o \ os_dep/linux/rtw_proc.o \ + os_dep/linux/nlrtw.o \ os_dep/linux/rtw_rhashtable.o ifeq ($(CONFIG_MP_INCLUDED), y) @@ -252,9 +264,6 @@ _OS_INTFS_FILES += os_dep/linux/custom_gpio_linux.o _OS_INTFS_FILES += os_dep/linux/$(HCI_NAME)_ops_linux.o endif -ifeq ($(CONFIG_ALIBABA_ZEROCONFIG), y) -_OS_INTFS_FILES += os_dep/linux/rtw_genetlink.o -endif _HAL_INTFS_FILES := hal/hal_intf.o \ hal/hal_com.o \ @@ -270,10 +279,11 @@ _HAL_INTFS_FILES := hal/hal_intf.o \ hal/led/hal_led.o \ hal/led/hal_$(HCI_NAME)_led.o -EXTRA_CFLAGS += -I$(SOURCETREE)/platform + +EXTRA_CFLAGS += -I$(src)/platform _PLATFORM_FILES := platform/platform_ops.o -EXTRA_CFLAGS += -I$(SOURCETREE)/hal/btc +EXTRA_CFLAGS += -I$(src)/hal/btc ########### HAL_RTL8188E ################################# ifeq ($(CONFIG_RTL8188E), y) @@ -737,6 +747,18 @@ endif endif +########### HAL_RTL8723F ################################# +ifeq ($(CONFIG_RTL8723F), y) +RTL871X := rtl8723f +ifeq ($(CONFIG_USB_HCI), y) +MODULE_NAME = 8723fu +endif +ifeq ($(CONFIG_SDIO_HCI), y) +MODULE_NAME = 8723fs +endif + +endif + ########### HAL_RTL8188F ################################# ifeq ($(CONFIG_RTL8188F), y) @@ -992,12 +1014,16 @@ endif ########### HAL_RTL8814B ################################# ifeq ($(CONFIG_RTL8814B), y) RTL871X := rtl8814b +ifeq ($(CONFIG_RTL8814C), y) +MODULE_NAME = 8814ce +else ifeq ($(CONFIG_USB_HCI), y) MODULE_NAME = 8814bu endif ifeq ($(CONFIG_PCI_HCI), y) MODULE_NAME = 8814be endif +endif endif @@ -1023,6 +1049,17 @@ endif ########### END OF PATH ################################# +ifeq ($(CONFIG_AP_MODE), y) +EXTRA_CFLAGS += -DCONFIG_AP_MODE +endif + +ifeq ($(CONFIG_P2P), y) +EXTRA_CFLAGS += -DCONFIG_P2P +ifneq ($(CONFIG_AP_MODE), y) +$(error "CONFIG_AP_MODE is required for CONFIG_P2P") +endif +endif + ifeq ($(CONFIG_USB_HCI), y) ifeq ($(CONFIG_USB_AUTOSUSPEND), y) EXTRA_CFLAGS += -DCONFIG_USB_AUTOSUSPEND @@ -1112,7 +1149,20 @@ else ifeq ($(CONFIG_TXPWR_BY_RATE_EN), auto) EXTRA_CFLAGS += -DCONFIG_TXPWR_BY_RATE_EN=2 endif -ifneq ($(CONFIG_RTW_CHPLAN), 0xFF) +ifeq ($(CONFIG_TXPWR_LIMIT), n) +EXTRA_CFLAGS += -DCONFIG_TXPWR_LIMIT=0 +else ifeq ($(CONFIG_TXPWR_LIMIT), y) +EXTRA_CFLAGS += -DCONFIG_TXPWR_LIMIT=1 +endif +ifeq ($(CONFIG_TXPWR_LIMIT_EN), n) +EXTRA_CFLAGS += -DCONFIG_TXPWR_LIMIT_EN=0 +else ifeq ($(CONFIG_TXPWR_LIMIT_EN), y) +EXTRA_CFLAGS += -DCONFIG_TXPWR_LIMIT_EN=1 +else ifeq ($(CONFIG_TXPWR_LIMIT_EN), auto) +EXTRA_CFLAGS += -DCONFIG_TXPWR_LIMIT_EN=2 +endif + +ifneq ($(CONFIG_RTW_CHPLAN), 0xFFFF) EXTRA_CFLAGS += -DCONFIG_RTW_CHPLAN=$(CONFIG_RTW_CHPLAN) endif @@ -1128,6 +1178,8 @@ ifeq ($(CONFIG_RTW_ADAPTIVITY_EN), disable) EXTRA_CFLAGS += -DCONFIG_RTW_ADAPTIVITY_EN=0 else ifeq ($(CONFIG_RTW_ADAPTIVITY_EN), enable) EXTRA_CFLAGS += -DCONFIG_RTW_ADAPTIVITY_EN=1 +else ifeq ($(CONFIG_RTW_ADAPTIVITY_EN), auto) +EXTRA_CFLAGS += -DCONFIG_RTW_ADAPTIVITY_EN=2 endif ifeq ($(CONFIG_RTW_ADAPTIVITY_MODE), normal) @@ -1136,6 +1188,10 @@ else ifeq ($(CONFIG_RTW_ADAPTIVITY_MODE), carrier_sense) EXTRA_CFLAGS += -DCONFIG_RTW_ADAPTIVITY_MODE=1 endif +ifeq ($(CONFIG_80211D), y) +EXTRA_CFLAGS += -DCONFIG_80211D +endif + ifeq ($(CONFIG_SIGNAL_SCALE_MAPPING), y) EXTRA_CFLAGS += -DCONFIG_SIGNAL_SCALE_MAPPING endif @@ -1157,11 +1213,18 @@ endif ifeq ($(CONFIG_AP_WOWLAN), y) EXTRA_CFLAGS += -DCONFIG_AP_WOWLAN +ifeq ($(CONFIG_AP_MODE), n) +EXTRA_CFLAGS += -DCONFIG_AP_MODE +endif ifeq ($(CONFIG_SDIO_HCI), y) EXTRA_CFLAGS += -DCONFIG_RTW_SDIO_PM_KEEP_POWER endif endif +ifeq ($(CONFIG_LAYER2_ROAMING), y) +EXTRA_CFLAGS += -DCONFIG_LAYER2_ROAMING -DCONFIG_ROAMING_FLAG=$(CONFIG_ROAMING_FLAG) +endif + ifeq ($(CONFIG_PNO_SUPPORT), y) EXTRA_CFLAGS += -DCONFIG_PNO_SUPPORT ifeq ($(CONFIG_PNO_SET_DEBUG), y) @@ -1251,10 +1314,6 @@ ifeq ($(CONFIG_IP_R_MONITOR), y) EXTRA_CFLAGS += -DCONFIG_IP_R_MONITOR endif -ifeq ($(CONFIG_RTW_DISABLE_HW_PDN), y) -EXTRA_CFLAGS += -DCONFIG_RTW_DISABLE_HW_PDN -endif - ifeq ($(CONFIG_MP_VHT_HW_TX_MODE), y) EXTRA_CFLAGS += -DCONFIG_MP_VHT_HW_TX_MODE ifeq ($(CONFIG_PLATFORM_I386_PC), y) @@ -1287,22 +1346,23 @@ endif EXTRA_CFLAGS += -DDM_ODM_SUPPORT_TYPE=0x04 -ifeq ($(CONFIG_PLATFORM_TEGRA), y) -ARCH = arm -KVER := $(shell uname -r) -KSRC := /lib/modules/$(KVER)/build -EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT -EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE -EXTRA_CFLAGS += -DRTW_P2P_GROUP_INTERFACE=1 -EXTRA_CFLAGS += -Wno-error=date-time -MODULE_NAME = rtl8822ce +ifeq ($(CONFIG_RTW_MBO), y) +EXTRA_CFLAGS += -DCONFIG_RTW_MBO -DCONFIG_RTW_80211K -DCONFIG_RTW_WNM -DCONFIG_RTW_BTM_ROAM +EXTRA_CFLAGS += -DCONFIG_RTW_80211R endif -ifeq ($(CONFIG_ALIBABA_ZEROCONFIG), y) -EXTRA_CFLAGS += -DCONFIG_ALIBABA_ZEROCONFIG -EXTRA_CFLAGS += -DCONFIG_ALIBABA_ZEROCONFIG_DBG -EXTRA_CFLAGS += -DCONFIG_TDMADIG +ifeq ($(CONFIG_WAKE_ON_BT), y) +EXTRA_CFLAGS += -DCONFIG_WAKE_ON_BT +endif + +ifeq ($(CONFIG_RTW_NBI), y) +EXTRA_CFLAGS += -DCONFIG_RTW_NBI +endif + +ifeq ($(CONFIG_SECURITY_MEM), y) +EXTRA_CFLAGS += -DCONFIG_SECURITY_MEM +EXTRA_CFLAGS += -DSECURITY_MEM_ADDR=$(CONFIG_SECURITY_MEM_ADDR) +EXTRA_CFLAGS += -DSECURITY_MEM_SIZE=$(CONFIG_SECURITY_MEM_SIZE) endif ifeq ($(CONFIG_PLATFORM_I386_PC), y) @@ -1678,7 +1738,9 @@ EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE # default setting for Power control EXTRA_CFLAGS += -DRTW_ENABLE_WIFI_CONTROL_FUNC +ifeq ($(CONFIG_SDIO_HCI), y) EXTRA_CFLAGS += -DRTW_SUPPORT_PLATFORM_SHUTDOWN +endif # default setting for Special function ARCH := arm CROSS_COMPILE := /home/android_sdk/Rockchip/Rk3188/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi- @@ -1888,6 +1950,7 @@ KSRC:= $(CFGDIR)/../../kernel/linux-$(KERNEL_VER) endif ifeq ($(CONFIG_PLATFORM_ARM_RTD299X), y) +EXTRA_CFLAGS += -DCONFIG_PLATFORM_ARM_RTD299X EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT @@ -2056,11 +2119,12 @@ MODULE_NAME := 8192eu endif +# Actions-Micro use this flag for DHC 1195 and DHC 1395 ifeq ($(CONFIG_PLATFORM_RTK119X_AM), y) EXTRA_CFLAGS += -DCONFIG_PLATFORM_RTK119X_AM EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -EXTRA_CFLAGS += -DCONFIG_TRAFFIC_PROTECT -EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE -DCONFIG_FULL_CH_IN_P2P_HANDSHAKE +EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE +EXTRA_CFLAGS += -DCONFIG_FULL_CH_IN_P2P_HANDSHAKE EXTRA_CFLAGS += -DCONFIG_SEL_P2P_IFACE=2 EXTRA_CFLAGS += -DCONFIG_IFACE_NUMBER=3 EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT @@ -2079,7 +2143,7 @@ endif ifeq ($(CONFIG_PLATFORM_RTK129X), y) EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -EXTRA_CFLAGS += -DRTK_129X_PLATFORM +EXTRA_CFLAGS += -DCONFIG_PLATFORM_RTK129X EXTRA_CFLAGS += -DCONFIG_TRAFFIC_PROTECT # default setting for Android 4.1, 4.2 EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE @@ -2269,6 +2333,14 @@ ifeq ($(CONFIG_CUSTOMER_HUAWEI), y) EXTRA_CFLAGS += -DCONFIG_HUAWEI_PROC endif +CONFIG_PLATFORM_CMAP_INTFS = n +ifeq ($(CONFIG_PLATFORM_CMAP_INTFS), y) +PLATFORM_CMAP_INTFS_TYPE = 00 +EXTRA_CFLAGS += -DCONFIG_PLATFORM_CMAP_INTFS -DCMAP_UNASSOC_METRICS_STA_MAX=32 +_OS_INTFS_FILES += os_dep/linux/custom_multiap_intfs/custom_multiap_intfs.o +_PLATFORM_FILES += platform/custom_multiap_intfs_$(PLATFORM_CMAP_INTFS_TYPE).o +endif + ifeq ($(CONFIG_MULTIDRV), y) ifeq ($(CONFIG_SDIO_HCI), y) @@ -2294,7 +2366,7 @@ endif ifneq ($(KERNELRELEASE),) ########### this part for *.mk ############################ -include $(SOURCETREE)/hal/phydm/phydm.mk +include $(src)/hal/phydm/phydm.mk ########### HAL_RTL8822B ################################# ifeq ($(CONFIG_RTL8822B), y) @@ -2308,7 +2380,7 @@ endif ########### HAL_RTL8822C ################################# ifeq ($(CONFIG_RTL8822C), y) -include $(SOURCETREE)/rtl8822c.mk +include $(src)/rtl8822c.mk endif ########### HAL_RTL8814B ################################# @@ -2316,6 +2388,14 @@ ifeq ($(CONFIG_RTL8814B), y) include $(src)/rtl8814b.mk endif +ifeq ($(CONFIG_RTL8814C), y) +EXTRA_CFLAGS += -DCONFIG_RTL8814C +endif +########### HAL_RTL8723F ################################# +ifeq ($(CONFIG_RTL8723F), y) +include $(src)/rtl8723f.mk +endif + rtk_core := core/rtw_cmd.o \ core/rtw_security.o \ core/rtw_debug.o \ @@ -2335,6 +2415,7 @@ rtk_core := core/rtw_cmd.o \ core/rtw_recv.o \ core/rtw_sta_mgt.o \ core/rtw_ap.o \ + core/wds/rtw_wds.o \ core/mesh/rtw_mesh.o \ core/mesh/rtw_mesh_pathtbl.o \ core/mesh/rtw_mesh_hwmp.o \ @@ -2351,14 +2432,18 @@ rtk_core := core/rtw_cmd.o \ core/rtw_odm.o \ core/rtw_rm.o \ core/rtw_rm_fsm.o \ + core/rtw_ft.o \ + core/rtw_wnm.o \ + core/rtw_mbo.o \ core/rtw_rm_util.o \ - core/efuse/rtw_efuse.o + core/efuse/rtw_efuse.o \ + core/rtw_roch.o ifeq ($(CONFIG_SDIO_HCI), y) rtk_core += core/rtw_sdio.o endif -EXTRA_CFLAGS += -I$(SOURCETREE)/core/crypto +EXTRA_CFLAGS += -I$(src)/core/crypto rtk_core += \ core/crypto/aes-internal.o \ core/crypto/aes-internal-enc.o \ @@ -2392,7 +2477,7 @@ ifeq ($(CONFIG_RTL8723B), y) $(MODULE_NAME)-$(CONFIG_MP_INCLUDED)+= core/rtw_bt_mp.o endif -obj-m := $(MODULE_NAME).o +obj-$(CONFIG_RTL8822CE) := $(MODULE_NAME).o else diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes-ccm.c b/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes-ccm.c index dceec778..6cee15fe 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes-ccm.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes-ccm.c @@ -40,7 +40,7 @@ static void aes_ccm_auth_start(void *aes, size_t M, size_t L, const u8 *nonce, WPA_PUT_BE16(&b[AES_BLOCK_SIZE - L], plain_len); wpa_hexdump_key(_MSG_EXCESSIVE_, "CCM B_0", b, AES_BLOCK_SIZE); - aes_encrypt(aes, b, x); /* X_1 = E(K, B_0) */ + _aes_encrypt(aes, b, x); /* X_1 = E(K, B_0) */ if (!aad_len) return; @@ -50,12 +50,12 @@ static void aes_ccm_auth_start(void *aes, size_t M, size_t L, const u8 *nonce, os_memset(aad_buf + 2 + aad_len, 0, sizeof(aad_buf) - 2 - aad_len); xor_aes_block(aad_buf, x); - aes_encrypt(aes, aad_buf, x); /* X_2 = E(K, X_1 XOR B_1) */ + _aes_encrypt(aes, aad_buf, x); /* X_2 = E(K, X_1 XOR B_1) */ if (aad_len > AES_BLOCK_SIZE - 2) { xor_aes_block(&aad_buf[AES_BLOCK_SIZE], x); /* X_3 = E(K, X_2 XOR B_2) */ - aes_encrypt(aes, &aad_buf[AES_BLOCK_SIZE], x); + _aes_encrypt(aes, &aad_buf[AES_BLOCK_SIZE], x); } } @@ -69,13 +69,13 @@ static void aes_ccm_auth(void *aes, const u8 *data, size_t len, u8 *x) /* X_i+1 = E(K, X_i XOR B_i) */ xor_aes_block(x, data); data += AES_BLOCK_SIZE; - aes_encrypt(aes, x, x); + _aes_encrypt(aes, x, x); } if (last) { /* XOR zero-padded last block */ for (i = 0; i < last; i++) x[i] ^= *data++; - aes_encrypt(aes, x, x); + _aes_encrypt(aes, x, x); } } @@ -98,14 +98,14 @@ static void aes_ccm_encr(void *aes, size_t L, const u8 *in, size_t len, u8 *out, for (i = 1; i <= len / AES_BLOCK_SIZE; i++) { WPA_PUT_BE16(&a[AES_BLOCK_SIZE - 2], i); /* S_i = E(K, A_i) */ - aes_encrypt(aes, a, out); + _aes_encrypt(aes, a, out); xor_aes_block(out, in); out += AES_BLOCK_SIZE; in += AES_BLOCK_SIZE; } if (last) { WPA_PUT_BE16(&a[AES_BLOCK_SIZE - 2], i); - aes_encrypt(aes, a, out); + _aes_encrypt(aes, a, out); /* XOR zero-padded last block */ for (i = 0; i < last; i++) *out++ ^= *in++; @@ -121,7 +121,7 @@ static void aes_ccm_encr_auth(void *aes, size_t M, u8 *x, u8 *a, u8 *auth) wpa_hexdump_key(_MSG_EXCESSIVE_, "CCM T", x, M); /* U = T XOR S_0; S_0 = E(K, A_0) */ WPA_PUT_BE16(&a[AES_BLOCK_SIZE - 2], 0); - aes_encrypt(aes, a, tmp); + _aes_encrypt(aes, a, tmp); for (i = 0; i < M; i++) auth[i] = x[i] ^ tmp[i]; wpa_hexdump_key(_MSG_EXCESSIVE_, "CCM U", auth, M); @@ -136,7 +136,7 @@ static void aes_ccm_decr_auth(void *aes, size_t M, u8 *a, const u8 *auth, u8 *t) wpa_hexdump_key(_MSG_EXCESSIVE_, "CCM U", auth, M); /* U = T XOR S_0; S_0 = E(K, A_0) */ WPA_PUT_BE16(&a[AES_BLOCK_SIZE - 2], 0); - aes_encrypt(aes, a, tmp); + _aes_encrypt(aes, a, tmp); for (i = 0; i < M; i++) t[i] = auth[i] ^ tmp[i]; wpa_hexdump_key(_MSG_EXCESSIVE_, "CCM T", t, M); diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes-ctr.c b/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes-ctr.c index 6c06851d..e29650c8 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes-ctr.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes-ctr.c @@ -36,7 +36,7 @@ int aes_ctr_encrypt(const u8 *key, size_t key_len, const u8 *nonce, os_memcpy(counter, nonce, AES_BLOCK_SIZE); while (left > 0) { - aes_encrypt(ctx, counter, buf); + _aes_encrypt(ctx, counter, buf); len = (left < AES_BLOCK_SIZE) ? left : AES_BLOCK_SIZE; for (j = 0; j < len; j++) diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes-gcm.c b/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes-gcm.c index 47088102..214c194f 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes-gcm.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes-gcm.c @@ -154,7 +154,7 @@ static void aes_gctr(void *aes, const u8 *icb, const u8 *x, size_t xlen, u8 *y) os_memcpy(cb, icb, AES_BLOCK_SIZE); /* Full blocks */ for (i = 0; i < n; i++) { - aes_encrypt(aes, cb, ypos); + _aes_encrypt(aes, cb, ypos); xor_block(ypos, xpos); xpos += AES_BLOCK_SIZE; ypos += AES_BLOCK_SIZE; @@ -164,7 +164,7 @@ static void aes_gctr(void *aes, const u8 *icb, const u8 *x, size_t xlen, u8 *y) last = x + xlen - xpos; if (last) { /* Last, partial block */ - aes_encrypt(aes, cb, tmp); + _aes_encrypt(aes, cb, tmp); for (i = 0; i < last; i++) *ypos++ = *xpos++ ^ tmp[i]; } @@ -181,7 +181,7 @@ static void * aes_gcm_init_hash_subkey(const u8 *key, size_t key_len, u8 *H) /* Generate hash subkey H = AES_K(0^128) */ os_memset(H, 0, AES_BLOCK_SIZE); - aes_encrypt(aes, H, H); + _aes_encrypt(aes, H, H); wpa_hexdump_key(_MSG_EXCESSIVE_, "Hash subkey H for GHASH", H, AES_BLOCK_SIZE); return aes; diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes-internal-enc.c b/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes-internal-enc.c index 8e2fc5a9..a9c75d87 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes-internal-enc.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes-internal-enc.c @@ -104,7 +104,7 @@ void * aes_encrypt_init(const u8 *key, size_t len) rk = os_malloc(AES_PRIV_SIZE); if (rk == NULL) return NULL; - res = rijndaelKeySetupEnc(rk, key, len); + res = rijndaelKeySetupEnc(rk, key, len * 8); if (res < 0) { rtw_mfree(rk, AES_PRIV_SIZE); return NULL; @@ -114,7 +114,7 @@ void * aes_encrypt_init(const u8 *key, size_t len) } -int aes_encrypt(void *ctx, const u8 *plain, u8 *crypt) +int _aes_encrypt(void *ctx, const u8 *plain, u8 *crypt) { u32 *rk = ctx; rijndaelEncrypt(ctx, rk[AES_PRIV_NR_POS], plain, crypt); diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes-internal.c b/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes-internal.c index 726a05b7..57d65394 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes-internal.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes-internal.c @@ -774,7 +774,7 @@ const u8 rcons[] = { * * @return the number of rounds for the given cipher key size. */ -int rijndaelKeySetupEnc(u32 rk[], const u8 cipherKey[], int key_bytes) +int rijndaelKeySetupEnc(u32 rk[], const u8 cipherKey[], int keyBits) { int i; u32 temp; @@ -784,7 +784,7 @@ int rijndaelKeySetupEnc(u32 rk[], const u8 cipherKey[], int key_bytes) rk[2] = GETU32(cipherKey + 8); rk[3] = GETU32(cipherKey + 12); - if (key_bytes == 16) { + if (keyBits == 128) { for (i = 0; i < 10; i++) { temp = rk[3]; rk[4] = rk[0] ^ TE421(temp) ^ TE432(temp) ^ @@ -800,7 +800,7 @@ int rijndaelKeySetupEnc(u32 rk[], const u8 cipherKey[], int key_bytes) rk[4] = GETU32(cipherKey + 16); rk[5] = GETU32(cipherKey + 20); - if (key_bytes == 24) { + if (keyBits == 192) { for (i = 0; i < 8; i++) { temp = rk[5]; rk[6] = rk[0] ^ TE421(temp) ^ TE432(temp) ^ @@ -819,7 +819,7 @@ int rijndaelKeySetupEnc(u32 rk[], const u8 cipherKey[], int key_bytes) rk[6] = GETU32(cipherKey + 24); rk[7] = GETU32(cipherKey + 28); - if (key_bytes == 32) { + if (keyBits == 256) { for (i = 0; i < 7; i++) { temp = rk[7]; rk[8] = rk[0] ^ TE421(temp) ^ TE432(temp) ^ diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes-omac1.c b/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes-omac1.c index 30b52629..88eeba49 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes-omac1.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes-omac1.c @@ -81,12 +81,12 @@ int omac1_aes_vector(const u8 *key, size_t key_len, size_t num_elem, } } if (left > AES_BLOCK_SIZE) - aes_encrypt(ctx, cbc, cbc); + _aes_encrypt(ctx, cbc, cbc); left -= AES_BLOCK_SIZE; } os_memset(pad, 0, AES_BLOCK_SIZE); - aes_encrypt(ctx, pad, pad); + _aes_encrypt(ctx, pad, pad); gf_mulx(pad); if (left || total_len == 0) { @@ -110,7 +110,7 @@ int omac1_aes_vector(const u8 *key, size_t key_len, size_t num_elem, for (i = 0; i < AES_BLOCK_SIZE; i++) pad[i] ^= cbc[i]; - aes_encrypt(ctx, pad, mac); + _aes_encrypt(ctx, pad, mac); aes_encrypt_deinit(ctx); return 0; } diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes.h b/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes.h index 8ab3de2e..244c38be 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes.h +++ b/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes.h @@ -12,7 +12,7 @@ #define AES_BLOCK_SIZE 16 void * aes_encrypt_init(const u8 *key, size_t len); -int aes_encrypt(void *ctx, const u8 *plain, u8 *crypt); +int _aes_encrypt(void *ctx, const u8 *plain, u8 *crypt); void aes_encrypt_deinit(void *ctx); void * aes_decrypt_init(const u8 *key, size_t len); int aes_decrypt(void *ctx, const u8 *crypt, u8 *plain); diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes_i.h b/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes_i.h index a3822800..54375cf3 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes_i.h +++ b/drivers/net/wireless/realtek/rtl8822ce/core/crypto/aes_i.h @@ -120,6 +120,6 @@ static inline u32 rotr(u32 val, int bits) #define AES_PRIV_SIZE (4 * 4 * 15 + 4) #define AES_PRIV_NR_POS (4 * 15) -int rijndaelKeySetupEnc(u32 rk[], const u8 cipherKey[], int key_bytes); +int rijndaelKeySetupEnc(u32 rk[], const u8 cipherKey[], int keyBits); #endif /* AES_I_H */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/crypto/ccmp.c b/drivers/net/wireless/realtek/rtl8822ce/core/crypto/ccmp.c index 10390ac4..3ebd487a 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/crypto/ccmp.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/crypto/ccmp.c @@ -14,7 +14,7 @@ -static void ccmp_aad_nonce(const struct ieee80211_hdr *hdr, const u8 *data, +static void ccmp_aad_nonce(_adapter *padapter, const struct ieee80211_hdr *hdr, const u8 *data, u8 *aad, size_t *aad_len, u8 *nonce) { u16 fc, stype, seq; @@ -58,7 +58,8 @@ static void ccmp_aad_nonce(const struct ieee80211_hdr *hdr, const u8 *data, pos += addr4 * ETH_ALEN; if (qos) { pos[0] &= ~0x70; - if (1 /* FIX: either device has SPP A-MSDU Capab = 0 */) + /* only spp mode need to refer QoS bit7 */ + if (padapter->registrypriv.amsdu_mode != RTW_AMSDU_MODE_SPP) pos[0] &= ~0x80; pos++; *pos++ = 0x00; @@ -134,7 +135,7 @@ static void ccmp_aad_nonce_pv1(const u8 *hdr, const u8 *a1, const u8 *a2, } -u8 * ccmp_decrypt(const u8 *tk, const struct ieee80211_hdr *hdr, +u8 * ccmp_decrypt(_adapter *padapter, const u8 *tk, const struct ieee80211_hdr *hdr, const u8 *data, size_t data_len, size_t *decrypted_len) { u8 aad[30], nonce[13]; @@ -152,7 +153,7 @@ u8 * ccmp_decrypt(const u8 *tk, const struct ieee80211_hdr *hdr, mlen = data_len - 8 - 8; os_memset(aad, 0, sizeof(aad)); - ccmp_aad_nonce(hdr, data, aad, &aad_len, nonce); + ccmp_aad_nonce(padapter, hdr, data, aad, &aad_len, nonce); wpa_hexdump(_MSG_EXCESSIVE_, "CCMP AAD", aad, aad_len); wpa_hexdump(_MSG_EXCESSIVE_, "CCMP nonce", nonce, 13); @@ -186,7 +187,7 @@ void ccmp_get_pn(u8 *pn, const u8 *data) } -u8 * ccmp_encrypt(const u8 *tk, u8 *frame, size_t len, size_t hdrlen, u8 *qos, +u8 * ccmp_encrypt(_adapter *padapter, const u8 *tk, u8 *frame, size_t len, size_t hdrlen, u8 *qos, u8 *pn, int keyid, size_t *encrypted_len) { u8 aad[30], nonce[13]; @@ -225,7 +226,7 @@ u8 * ccmp_encrypt(const u8 *tk, u8 *frame, size_t len, size_t hdrlen, u8 *qos, } os_memset(aad, 0, sizeof(aad)); - ccmp_aad_nonce(hdr, crypt + hdrlen, aad, &aad_len, nonce); + ccmp_aad_nonce(padapter, hdr, crypt + hdrlen, aad, &aad_len, nonce); wpa_hexdump(_MSG_EXCESSIVE_, "CCMP AAD", aad, aad_len); wpa_hexdump(_MSG_EXCESSIVE_, "CCMP nonce", nonce, 13); @@ -285,7 +286,7 @@ u8 * ccmp_encrypt_pv1(const u8 *tk, const u8 *a1, const u8 *a2, const u8 *a3, } -u8 * ccmp_256_decrypt(const u8 *tk, const struct ieee80211_hdr *hdr, +u8 * ccmp_256_decrypt(_adapter *padapter, const u8 *tk, const struct ieee80211_hdr *hdr, const u8 *data, size_t data_len, size_t *decrypted_len) { u8 aad[30], nonce[13]; @@ -303,7 +304,7 @@ u8 * ccmp_256_decrypt(const u8 *tk, const struct ieee80211_hdr *hdr, mlen = data_len - 8 - 16; os_memset(aad, 0, sizeof(aad)); - ccmp_aad_nonce(hdr, data, aad, &aad_len, nonce); + ccmp_aad_nonce(padapter, hdr, data, aad, &aad_len, nonce); wpa_hexdump(_MSG_EXCESSIVE_, "CCMP-256 AAD", aad, aad_len); wpa_hexdump(_MSG_EXCESSIVE_, "CCMP-256 nonce", nonce, 13); @@ -326,7 +327,7 @@ u8 * ccmp_256_decrypt(const u8 *tk, const struct ieee80211_hdr *hdr, } -u8 * ccmp_256_encrypt(const u8 *tk, u8 *frame, size_t len, size_t hdrlen, +u8 * ccmp_256_encrypt(_adapter *padapter, const u8 *tk, u8 *frame, size_t len, size_t hdrlen, u8 *qos, u8 *pn, int keyid, size_t *encrypted_len) { u8 aad[30], nonce[13]; @@ -365,7 +366,7 @@ u8 * ccmp_256_encrypt(const u8 *tk, u8 *frame, size_t len, size_t hdrlen, } os_memset(aad, 0, sizeof(aad)); - ccmp_aad_nonce(hdr, crypt + hdrlen, aad, &aad_len, nonce); + ccmp_aad_nonce(padapter, hdr, crypt + hdrlen, aad, &aad_len, nonce); wpa_hexdump(_MSG_EXCESSIVE_, "CCMP-256 AAD", aad, aad_len); wpa_hexdump(_MSG_EXCESSIVE_, "CCMP-256 nonce", nonce, 13); diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/crypto/gcmp.c b/drivers/net/wireless/realtek/rtl8822ce/core/crypto/gcmp.c index 2d70a219..9141d552 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/crypto/gcmp.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/crypto/gcmp.c @@ -13,7 +13,7 @@ #include "wlancrypto_wrap.h" -static void gcmp_aad_nonce(const struct ieee80211_hdr *hdr, const u8 *data, +static void gcmp_aad_nonce(_adapter * padapter, const struct ieee80211_hdr *hdr, const u8 *data, u8 *aad, size_t *aad_len, u8 *nonce) { u16 fc, stype, seq; @@ -54,7 +54,8 @@ static void gcmp_aad_nonce(const struct ieee80211_hdr *hdr, const u8 *data, pos += addr4 * ETH_ALEN; if (qos) { pos[0] &= ~0x70; - if (1 /* FIX: either device has SPP A-MSDU Capab = 0 */) + /* only spp mode need to refer QoS bit7 */ + if (padapter->registrypriv.amsdu_mode != RTW_AMSDU_MODE_SPP) pos[0] &= ~0x80; pos++; *pos++ = 0x00; @@ -81,7 +82,7 @@ static void gcmp_aad_nonce(const struct ieee80211_hdr *hdr, const u8 *data, * @data_len: length of @data (PN + enc_data + MIC) * @decrypted_len: length of the data decrypted */ -u8 * gcmp_decrypt(const u8 *tk, size_t tk_len, const struct ieee80211_hdr *hdr, +u8 * gcmp_decrypt(_adapter *padapter, const u8 *tk, size_t tk_len, const struct ieee80211_hdr *hdr, const u8 *data, size_t data_len, size_t *decrypted_len) { u8 aad[30], nonce[12], *plain; @@ -99,7 +100,7 @@ u8 * gcmp_decrypt(const u8 *tk, size_t tk_len, const struct ieee80211_hdr *hdr, mlen = data_len - 8 - 16; os_memset(aad, 0, sizeof(aad)); - gcmp_aad_nonce(hdr, data, aad, &aad_len, nonce); + gcmp_aad_nonce(padapter, hdr, data, aad, &aad_len, nonce); wpa_hexdump(_MSG_EXCESSIVE_, "GCMP AAD", aad, aad_len); wpa_hexdump(_MSG_EXCESSIVE_, "GCMP nonce", nonce, sizeof(nonce)); @@ -135,7 +136,7 @@ u8 * gcmp_decrypt(const u8 *tk, size_t tk_len, const struct ieee80211_hdr *hdr, * @encrypted_len: length of the encrypted frame * including mac header, pn, payload and MIC */ -u8 * gcmp_encrypt(const u8 *tk, size_t tk_len, const u8 *frame, size_t len, +u8 * gcmp_encrypt(_adapter *padapter, const u8 *tk, size_t tk_len, const u8 *frame, size_t len, size_t hdrlen, const u8 *qos, const u8 *pn, int keyid, size_t *encrypted_len) { @@ -174,7 +175,7 @@ u8 * gcmp_encrypt(const u8 *tk, size_t tk_len, const u8 *frame, size_t len, } os_memset(aad, 0, sizeof(aad)); - gcmp_aad_nonce(hdr, crypt + hdrlen, aad, &aad_len, nonce); + gcmp_aad_nonce(padapter, hdr, crypt + hdrlen, aad, &aad_len, nonce); wpa_hexdump(_MSG_EXCESSIVE_, "GCMP AAD", aad, aad_len); wpa_hexdump(_MSG_EXCESSIVE_, "GCMP nonce", nonce, sizeof(nonce)); diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/crypto/wlancrypto_wrap.h b/drivers/net/wireless/realtek/rtl8822ce/core/crypto/wlancrypto_wrap.h index e331d036..b909a439 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/crypto/wlancrypto_wrap.h +++ b/drivers/net/wireless/realtek/rtl8822ce/core/crypto/wlancrypto_wrap.h @@ -12,22 +12,22 @@ int sha256_vector(size_t num_elem, const u8 *addr[], const size_t *len, u8 *mac); -u8* ccmp_decrypt(const u8 *tk, const struct ieee80211_hdr *hdr, +u8* ccmp_decrypt(_adapter *padapter, const u8 *tk, const struct ieee80211_hdr *hdr, const u8 *data, size_t data_len, size_t *decrypted_len); -u8* ccmp_encrypt(const u8 *tk, u8 *frame, size_t len, size_t hdrlen, u8 *qos, +u8* ccmp_encrypt(_adapter *padapter, const u8 *tk, u8 *frame, size_t len, size_t hdrlen, u8 *qos, u8 *pn, int keyid, size_t *encrypted_len); u8* ccmp_encrypt_pv1(const u8 *tk, const u8 *a1, const u8 *a2, const u8 *a3, const u8 *frame, size_t len, size_t hdrlen, const u8 *pn, int keyid, size_t *encrypted_len); -u8* ccmp_256_decrypt(const u8 *tk, const struct ieee80211_hdr *hdr, +u8* ccmp_256_decrypt(_adapter *padapter, const u8 *tk, const struct ieee80211_hdr *hdr, const u8 *data, size_t data_len, size_t *decrypted_len); -u8* ccmp_256_encrypt(const u8 *tk, u8 *frame, size_t len, size_t hdrlen, +u8* ccmp_256_encrypt(_adapter *padapter, const u8 *tk, u8 *frame, size_t len, size_t hdrlen, u8 *qos, u8 *pn, int keyid, size_t *encrypted_len); -u8* gcmp_decrypt(const u8 *tk, size_t tk_len, const struct ieee80211_hdr *hdr, +u8* gcmp_decrypt(_adapter *padapter, const u8 *tk, size_t tk_len, const struct ieee80211_hdr *hdr, const u8 *data, size_t data_len, size_t *decrypted_len); -u8* gcmp_encrypt(const u8 *tk, size_t tk_len, const u8 *frame, size_t len, +u8* gcmp_encrypt(_adapter *padapter, const u8 *tk, size_t tk_len, const u8 *frame, size_t len, size_t hdrlen, const u8 *qos, const u8 *pn, int keyid, size_t *encrypted_len); diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/efuse/rtw_efuse.c b/drivers/net/wireless/realtek/rtl8822ce/core/efuse/rtw_efuse.c index 296b04de..dfe0afed 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/efuse/rtw_efuse.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/efuse/rtw_efuse.c @@ -79,6 +79,16 @@ BOOLEAN efuse_IsBT_Masked(PADAPTER pAdapter, u16 Offset) return (IS_BT_MASKED(8822C, _MSDIO, Offset)) ? TRUE : FALSE; #endif #endif /*#ifdef CONFIG_RTL8822C*/ +#ifdef CONFIG_RTL8723F +#ifdef CONFIG_USB_HCI + if (IS_HARDWARE_TYPE_8723F(pAdapter)) + return (IS_BT_MASKED(8723F, _MUSB, Offset)) ? TRUE : FALSE; +#endif +#ifdef CONFIG_SDIO_HCI + if (IS_HARDWARE_TYPE_8723F(pAdapter)) + return (IS_BT_MASKED(8723F, _MSDIO, Offset)) ? TRUE : FALSE; +#endif +#endif /*#ifdef CONFIG_RTL8723F*/ #endif /* CONFIG_BT_EFUSE_MASK */ return FALSE; } @@ -102,6 +112,16 @@ if (IS_HARDWARE_TYPE_8822CU(pAdapter)) GET_BT_MASK_ARRAY(8822C, _MSDIO, pArray); #endif #endif /*#ifdef CONFIG_RTL8822C*/ +#ifdef CONFIG_RTL8723F +#ifdef CONFIG_USB_HCI + if (IS_HARDWARE_TYPE_8723FU(pAdapter)) + GET_BT_MASK_ARRAY(8723F, _MUSB, pArray); +#endif +#ifdef CONFIG_SDIO_HCI + if (IS_HARDWARE_TYPE_8723FS(pAdapter)) + GET_BT_MASK_ARRAY(8723F, _MSDIO, pArray); +#endif +#endif /*#ifdef CONFIG_RTL8723F*/ #endif /* CONFIG_BT_EFUSE_MASK */ } @@ -125,6 +145,16 @@ u16 rtw_get_bt_efuse_mask_arraylen(PADAPTER pAdapter) return GET_BT_MASK_ARRAY_LEN(8822C, _MSDIO); #endif #endif /*#ifdef CONFIG_RTL8822C*/ +#ifdef CONFIG_RTL8723F +#ifdef CONFIG_USB_HCI + if (IS_HARDWARE_TYPE_8723FU(pAdapter)) + return GET_BT_MASK_ARRAY_LEN(8723F, _MUSB); +#endif +#ifdef CONFIG_SDIO_HCI + if (IS_HARDWARE_TYPE_8723FS(pAdapter)) + return GET_BT_MASK_ARRAY_LEN(8723F, _MSDIO); +#endif +#endif /*CONFIG_RTL8723F*/ #endif /* CONFIG_BT_EFUSE_MASK */ return 0; @@ -206,6 +236,10 @@ BOOLEAN efuse_IsMasked(PADAPTER pAdapter, u16 Offset) if (IS_HARDWARE_TYPE_8814B(pAdapter)) return (IS_MASKED(8814B, _MUSB, Offset)) ? TRUE : FALSE; #endif +#if defined(CONFIG_RTL8723F) + if (IS_HARDWARE_TYPE_8723F(pAdapter)) + return (IS_MASKED(8723F, _MUSB, Offset)) ? TRUE : FALSE; +#endif #endif /*CONFIG_USB_HCI*/ #ifdef CONFIG_PCI_HCI @@ -297,6 +331,10 @@ BOOLEAN efuse_IsMasked(PADAPTER pAdapter, u16 Offset) if (IS_HARDWARE_TYPE_8822C(pAdapter)) return (IS_MASKED(8822C, _MSDIO, Offset)) ? TRUE : FALSE; #endif +#if defined(CONFIG_RTL8723F) + if (IS_HARDWARE_TYPE_8723F(pAdapter)) + return (IS_MASKED(8723F, _MSDIO, Offset)) ? TRUE : FALSE; +#endif #endif /*CONFIG_SDIO_HCI*/ return FALSE; @@ -362,6 +400,10 @@ void rtw_efuse_mask_array(PADAPTER pAdapter, u8 *pArray) if (IS_HARDWARE_TYPE_8814B(pAdapter)) GET_MASK_ARRAY(8814B, _MUSB, pArray); #endif +#if defined(CONFIG_RTL8723F) + if (IS_HARDWARE_TYPE_8723F(pAdapter)) + GET_MASK_ARRAY(8723F, _MUSB, pArray); +#endif #endif /*CONFIG_USB_HCI*/ #ifdef CONFIG_PCI_HCI @@ -452,6 +494,10 @@ void rtw_efuse_mask_array(PADAPTER pAdapter, u8 *pArray) if (IS_HARDWARE_TYPE_8822C(pAdapter)) GET_MASK_ARRAY(8822C , _MSDIO, pArray); #endif +#if defined(CONFIG_RTL8723F) + if (IS_HARDWARE_TYPE_8723F(pAdapter)) + GET_MASK_ARRAY(8723F, _MSDIO, pArray); +#endif #endif /*CONFIG_SDIO_HCI*/ } @@ -516,6 +562,10 @@ u16 rtw_get_efuse_mask_arraylen(PADAPTER pAdapter) return GET_MASK_ARRAY_LEN(8814B, _MUSB); } #endif +#if defined(CONFIG_RTL8723F) + if (IS_HARDWARE_TYPE_8723F(pAdapter)) + return GET_MASK_ARRAY_LEN(8723F, _MUSB); +#endif #endif /*CONFIG_USB_HCI*/ #ifdef CONFIG_PCI_HCI @@ -606,6 +656,10 @@ u16 rtw_get_efuse_mask_arraylen(PADAPTER pAdapter) if (IS_HARDWARE_TYPE_8822C(pAdapter)) return GET_MASK_ARRAY_LEN(8822C, _MSDIO); #endif +#if defined(CONFIG_RTL8723F) + if (IS_HARDWARE_TYPE_8723F(pAdapter)) + return GET_MASK_ARRAY_LEN(8723F, _MSDIO); +#endif #endif/*CONFIG_SDIO_HCI*/ return 0; } @@ -916,10 +970,10 @@ void rtw_efuse_analyze(PADAPTER padapter, u8 Type, u8 Fake) for (i = 0; i < mapLen; i++) { if (i % 16 == 0) RTW_PRINT_SEL(RTW_DBGDUMP, "0x%03x: ", i); - _RTW_PRINT_SEL(RTW_DBGDUMP, "%02X%s" , pEfuseHal->fakeEfuseInitMap[i] - , ((i + 1) % 16 == 0) ? "\n" : (((i + 1) % 8 == 0) ? " " : " ")); + , ((i + 1) % 16 == 0) ? "\n" : (((i + 1) % 8 == 0) ? " " : " ") + ); } _RTW_PRINT_SEL(RTW_DBGDUMP, "\n"); @@ -1044,7 +1098,7 @@ u8 efuse_bt_GetCurrentSize(PADAPTER adapter, u16 *usesize) u16 efuse_bt_GetMaxSize(PADAPTER adapter) { - return EFUSE_BT_REAL_CONTENT_LEN; + return EFUSE_BT_REAL_CONTENT_LEN - EFUSE_PROTECT_BYTES_BANK; } void EFUSE_GetEfuseDefinition(PADAPTER adapter, u8 efusetype, u8 type, void *out, BOOLEAN test) @@ -3212,7 +3266,14 @@ void EFUSE_ShadowMapUpdate( /* PlatformMoveMemory((void *)&pHalData->EfuseMap[EFUSE_MODIFY_MAP][0], */ /* (void *)&pHalData->EfuseMap[EFUSE_INIT_MAP][0], mapLen); */ #endif /* !RTW_HALMAC */ +#ifdef CONFIG_MP_INCLUDED + if (rtw_mp_mode_check(pAdapter)) { + PEFUSE_HAL pEfuseHal = &pHalData->EfuseHal; + if (GET_EFUSE_UPDATE_ON(pAdapter)) + _rtw_memcpy(pHalData->efuse_eeprom_data, pEfuseHal->fakeEfuseModifiedMap, mapLen); + } +#endif rtw_mask_map_read(pAdapter, 0x00, mapLen, pHalData->efuse_eeprom_data); rtw_dump_cur_efuse(pAdapter); @@ -3359,7 +3420,7 @@ u8 rtw_efuse_file_read(PADAPTER padapter, u8 *filepath, u8 *buf, u32 len) return _TRUE; } - +#if !defined(CONFIG_RTW_ANDROID_GKI) u8 rtw_efuse_file_store(PADAPTER padapter, u8 *filepath, u8 *buf, u32 len) { int err = 0, i = 0, j = 0, mapLen = 0 ; @@ -3395,6 +3456,7 @@ u8 rtw_efuse_file_store(PADAPTER padapter, u8 *filepath, u8 *buf, u32 len) return err; } +#endif /* !defined(CONFIG_RTW_ANDROID_GKI) */ #ifdef CONFIG_EFUSE_CONFIG_FILE u32 rtw_read_efuse_from_file(const char *path, u8 *buf, int map_size) @@ -3407,10 +3469,10 @@ u32 rtw_read_efuse_from_file(const char *path, u8 *buf, int map_size) u32 ret = _FAIL; u8 *file_data = NULL; - u32 file_size, read_size, pos = 0; + u32 file_size = 16384, read_size, pos = 0; u8 *map = NULL; - if (rtw_is_file_readable_with_size(path, &file_size) != _TRUE) { + if (rtw_readable_file_sz_chk(path, file_size) != _TRUE) { RTW_PRINT("%s %s is not readable\n", __func__, path); goto exit; } diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/mesh/rtw_mesh.c b/drivers/net/wireless/realtek/rtl8822ce/core/mesh/rtw_mesh.c old mode 100644 new mode 100755 index 4e4a94a8..95605d96 --- a/drivers/net/wireless/realtek/rtl8822ce/core/mesh/rtw_mesh.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/mesh/rtw_mesh.c @@ -248,7 +248,7 @@ int rtw_bss_is_candidate_mesh_peer(_adapter *adapter, WLAN_BSSID_EX *target, u8 rsn_ie = rtw_get_wpa2_ie(BSS_EX_TLV_IES(target), &rsn_ie_len, BSS_EX_TLV_IES_LEN(target)); if (!rsn_ie || rsn_ie_len == 0) goto exit; - if (rtw_parse_wpa2_ie(rsn_ie, rsn_ie_len + 2, &group_cipher, &pairwise_cipher, &gmcs, NULL, &mfp_opt) != _SUCCESS) + if (rtw_parse_wpa2_ie(rsn_ie, rsn_ie_len + 2, &group_cipher, &pairwise_cipher, &gmcs, NULL, &mfp_opt, NULL) != _SUCCESS) goto exit; if ((sec->mfp_opt == MFP_REQUIRED && mfp_opt < MFP_OPTIONAL) || (mfp_opt == MFP_REQUIRED && sec->mfp_opt < MFP_OPTIONAL)) @@ -1039,6 +1039,7 @@ u8 rtw_mesh_select_operating_ch(_adapter *adapter) int ch_set_idx = rtw_chset_search_ch(rfctl->channel_set, scanned->network.Configuration.DSConfig); if (ch_set_idx >= 0 + && !(rfctl->channel_set[ch_set_idx].flags & RTW_CHF_NO_IR) && !CH_IS_NON_OCP(&rfctl->channel_set[ch_set_idx]) ) { u8 nop, accept; @@ -1170,7 +1171,7 @@ void dump_mesh_networks(void *sel, _adapter *adapter) rsn_ie = rtw_get_wpa2_ie(BSS_EX_TLV_IES(&network->network) , &rsn_ie_len, BSS_EX_TLV_IES_LEN(&network->network)); if (rsn_ie && rsn_ie_len) - rtw_parse_wpa2_ie(rsn_ie, rsn_ie_len + 2, &gcs, &pcs, &gmcs, NULL, &mfp_opt); + rtw_parse_wpa2_ie(rsn_ie, rsn_ie_len + 2, &gcs, &pcs, &gmcs, NULL, &mfp_opt, NULL); } RTW_PRINT_SEL(sel, "* "MAC_FMT" %3d %-32s %2x%2x%2x%2x%2x" " %03x %03x %c%03x" @@ -1212,7 +1213,7 @@ void dump_mesh_networks(void *sel, _adapter *adapter) if (auth_pid && auth_pid <= 2) { rsn_ie = rtw_get_wpa2_ie(BSS_EX_TLV_IES(&network->network), &rsn_ie_len, BSS_EX_TLV_IES_LEN(&network->network)); if (rsn_ie && rsn_ie_len) - rtw_parse_wpa2_ie(rsn_ie, rsn_ie_len + 2, &gcs, &pcs, &gmcs, NULL, &mfp_opt); + rtw_parse_wpa2_ie(rsn_ie, rsn_ie_len + 2, &gcs, &pcs, &gmcs, NULL, &mfp_opt, NULL); } age_ms = rtw_get_passing_time_ms(network->last_scanned); #if CONFIG_RTW_MESH_ACNODE_PREVENT @@ -2953,7 +2954,7 @@ exit: return annc_cnt; } -static void mpath_tx_tasklet_hdl(void *priv) +static void mpath_tx_tasklet_hdl(unsigned long priv) { _adapter *adapter = (_adapter *)priv; struct rtw_mesh_info *minfo = &adapter->mesh_info; @@ -3306,6 +3307,7 @@ void rtw_mesh_cfg_init_peer_sel_policy(struct rtw_mesh_cfg *mcfg) void rtw_mesh_cfg_init(_adapter *adapter) { + struct registry_priv *regsty = adapter_to_regsty(adapter); struct rtw_mesh_cfg *mcfg = &adapter->mesh_cfg; mcfg->max_peer_links = RTW_MESH_MAX_PEER_LINKS; @@ -3336,8 +3338,8 @@ void rtw_mesh_cfg_init(_adapter *adapter) #endif #if CONFIG_RTW_MESH_DATA_BMC_TO_UC - mcfg->b2u_flags_msrc = 0; - mcfg->b2u_flags_mfwd = RTW_MESH_B2U_GA_UCAST; + mcfg->b2u_flags_msrc = regsty->msrc_b2u_flags; + mcfg->b2u_flags_mfwd = regsty->mfwd_b2u_flags; #endif } @@ -3375,7 +3377,7 @@ void rtw_mesh_init_mesh_info(_adapter *adapter) _rtw_init_queue(&minfo->mpath_tx_queue); tasklet_init(&minfo->mpath_tx_tasklet - , (void(*)(unsigned long))mpath_tx_tasklet_hdl + , mpath_tx_tasklet_hdl , (unsigned long)adapter); rtw_mrc_init(adapter); @@ -3545,7 +3547,7 @@ endlookup: static bool rtw_mesh_data_bmc_to_uc(_adapter *adapter , const u8 *da, const u8 *sa, const u8 *mda, const u8 *msa , u8 ae_need, const u8 *ori_ta, u8 mfwd_ttl - , _list *b2u_list, u8 *b2u_num, u32 *b2u_mseq) + , u16 os_qid, _list *b2u_list, u8 *b2u_num, u32 *b2u_mseq) { struct sta_priv *stapriv = &adapter->stapriv; struct xmit_priv *xmitpriv = &adapter->xmitpriv; @@ -3588,7 +3590,7 @@ static bool rtw_mesh_data_bmc_to_uc(_adapter *adapter || is_zero_mac_addr(sta->cmn.mac_addr)) continue; - b2uframe = rtw_alloc_xmitframe(xmitpriv); + b2uframe = rtw_alloc_xmitframe(xmitpriv, os_qid); if (!b2uframe) { bmc_need = _TRUE; break; @@ -3628,7 +3630,7 @@ void dump_mesh_b2u_flags(void *sel, _adapter *adapter) } #endif /* CONFIG_RTW_MESH_DATA_BMC_TO_UC */ -int rtw_mesh_addr_resolve(_adapter *adapter, struct xmit_frame *xframe, _pkt *pkt, _list *b2u_list) +int rtw_mesh_addr_resolve(_adapter *adapter, u16 os_qid, struct xmit_frame *xframe, _pkt *pkt, _list *b2u_list) { struct pkt_file pktfile; struct ethhdr etherhdr; @@ -3690,9 +3692,9 @@ int rtw_mesh_addr_resolve(_adapter *adapter, struct xmit_frame *xframe, _pkt *pk bmc_need = rtw_mesh_data_bmc_to_uc(adapter , etherhdr.h_dest, etherhdr.h_source , etherhdr.h_dest, adapter_mac_addr(adapter), ae_need, NULL, 0 - , b2u_list, &b2u_num, &b2u_mseq); + , os_qid, b2u_list, &b2u_num, &b2u_mseq); if (bmc_need == _FALSE) { - res = RTW_BMC_NO_NEED; + res = RTW_ORI_NO_NEED; goto exit; } } @@ -3867,7 +3869,7 @@ int rtw_mesh_rx_data_validate_hdr(_adapter *adapter, union recv_frame *rframe, s goto exit; switch (rattrib->to_fr_ds) { - case 1: + case 2: if (!IS_MCAST(GetAddr1Ptr(whdr))) goto exit; *sta = rtw_get_stainfo(stapriv, get_addr2_ptr(whdr)); @@ -3914,7 +3916,7 @@ int rtw_mesh_rx_data_validate_hdr(_adapter *adapter, union recv_frame *rframe, s stop_sta_xmit(adapter, *sta); } else { if ((*sta)->state & WIFI_SLEEP_STATE) - wakeup_sta_to_xmit(adapter, *sta); + wakeup_sta_to_xmit(adapter, *sta, ALL_FRAME); } if (is_ra_bmc) @@ -3955,7 +3957,7 @@ int rtw_mesh_rx_data_validate_mctrl(_adapter *adapter, union recv_frame *rframe ae = mctrl->flags & MESH_FLAGS_AE; mlen = ae_to_mesh_ctrl_len[ae]; switch (rattrib->to_fr_ds) { - case 1: + case 2: *da = mda; if (ae == MESH_FLAGS_AE_A4) *sa = mctrl->eaddr1; @@ -4065,6 +4067,7 @@ int rtw_mesh_rx_msdu_act_check(union recv_frame *rframe , const u8 *mda, const u8 *msa , const u8 *da, const u8 *sa , struct rtw_ieee80211s_hdr *mctrl + , u8 *msdu, enum rtw_rx_llc_hdl llc_hdl , struct xmit_frame **fwd_frame, _list *b2u_list) { _adapter *adapter = rframe->u.hdr.adapter; @@ -4074,6 +4077,7 @@ int rtw_mesh_rx_msdu_act_check(union recv_frame *rframe struct rtw_mesh_path *mppath; u8 is_mda_bmc = IS_MCAST(mda); u8 is_mda_self = !is_mda_bmc && _rtw_memcmp(mda, adapter_mac_addr(adapter), ETH_ALEN); + u16 os_qid; struct xmit_frame *xframe; struct pkt_attrib *xattrib; u8 fwd_ra[ETH_ALEN] = {0}; @@ -4082,7 +4086,7 @@ int rtw_mesh_rx_msdu_act_check(union recv_frame *rframe int act = 0; u8 ae_need; #if CONFIG_RTW_MESH_DATA_BMC_TO_UC - bool bmc_need = _TRUE; + bool ori_need = _TRUE; u8 b2u_num = 0; #endif @@ -4301,6 +4305,8 @@ fwd_chk: goto exit; } + os_qid = rtw_os_recv_select_queue(msdu, llc_hdl); + #if CONFIG_RTW_MESH_DATA_BMC_TO_UC _rtw_init_listhead(b2u_list); #endif @@ -4312,15 +4318,15 @@ fwd_chk: if (is_mda_bmc && rtw_mfwd_b2u_policy_chk(mcfg->b2u_flags_mfwd, mda, rattrib->to_fr_ds == 3) ) { - bmc_need = rtw_mesh_data_bmc_to_uc(adapter + ori_need = rtw_mesh_data_bmc_to_uc(adapter , da, sa, mda, msa, ae_need, rframe->u.hdr.psta->cmn.mac_addr, mctrl->ttl - 1 - , b2u_list, &b2u_num, &fwd_mseq); + , os_qid, b2u_list, &b2u_num, &fwd_mseq); } - if (bmc_need == _TRUE) + if (ori_need == _TRUE) #endif { - xframe = rtw_alloc_xmitframe(&adapter->xmitpriv); + xframe = rtw_alloc_xmitframe(&adapter->xmitpriv, os_qid); if (!xframe) { #ifdef DBG_TX_DROP_FRAME RTW_INFO("DBG_TX_DROP_FRAME "FUNC_ADPT_FMT" rtw_alloc_xmitframe fail\n" @@ -4356,12 +4362,17 @@ fwd_chk: *fwd_frame = xframe; } - act |= RTW_RX_MSDU_ACT_FORWARD; - if (is_mda_bmc) - minfo->mshstats.fwded_mcast++; - else - minfo->mshstats.fwded_unicast++; - minfo->mshstats.fwded_frames++; +#if CONFIG_RTW_MESH_DATA_BMC_TO_UC + if (ori_need || b2u_num) +#endif + { + act |= RTW_RX_MSDU_ACT_FORWARD; + if (is_mda_bmc) + minfo->mshstats.fwded_mcast++; + else + minfo->mshstats.fwded_unicast++; + minfo->mshstats.fwded_frames++; + } exit: return act; diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/mesh/rtw_mesh.h b/drivers/net/wireless/realtek/rtl8822ce/core/mesh/rtw_mesh.h index 68d3e26f..5410ba40 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/mesh/rtw_mesh.h +++ b/drivers/net/wireless/realtek/rtl8822ce/core/mesh/rtw_mesh.h @@ -502,7 +502,7 @@ void rtw_mesh_deinit_mesh_info(_adapter *adapter); void dump_mesh_b2u_flags(void *sel, _adapter *adapter); #endif -int rtw_mesh_addr_resolve(_adapter *adapter, struct xmit_frame *xframe, _pkt *pkt, _list *b2u_list); +int rtw_mesh_addr_resolve(_adapter *adapter, u16 os_qid, struct xmit_frame *xframe, _pkt *pkt, _list *b2u_list); s8 rtw_mesh_tx_set_whdr_mctrl_len(u8 mesh_frame_mode, struct pkt_attrib *attrib); void rtw_mesh_tx_build_mctrl(_adapter *adapter, struct pkt_attrib *attrib, u8 *buf); @@ -519,6 +519,7 @@ int rtw_mesh_rx_msdu_act_check(union recv_frame *rframe , const u8 *mda, const u8 *msa , const u8 *da, const u8 *sa , struct rtw_ieee80211s_hdr *mctrl + , u8 *msdu, enum rtw_rx_llc_hdl llc_hdl , struct xmit_frame **fwd_frame, _list *b2u_list); void dump_mesh_stats(void *sel, _adapter *adapter); diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/mesh/rtw_mesh_hwmp.c b/drivers/net/wireless/realtek/rtl8822ce/core/mesh/rtw_mesh_hwmp.c index 449e838a..04be425b 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/mesh/rtw_mesh_hwmp.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/mesh/rtw_mesh_hwmp.c @@ -394,162 +394,6 @@ int rtw_mesh_path_error_tx(_adapter *adapter, return 0; } -static u32 rtw_get_vht_bitrate(u8 mcs, u8 bw, u8 nss, u8 sgi) -{ - static const u32 base[4][10] = { - { 6500000, - 13000000, - 19500000, - 26000000, - 39000000, - 52000000, - 58500000, - 65000000, - 78000000, - /* not in the spec, but some devices use this: */ - 86500000, - }, - { 13500000, - 27000000, - 40500000, - 54000000, - 81000000, - 108000000, - 121500000, - 135000000, - 162000000, - 180000000, - }, - { 29300000, - 58500000, - 87800000, - 117000000, - 175500000, - 234000000, - 263300000, - 292500000, - 351000000, - 390000000, - }, - { 58500000, - 117000000, - 175500000, - 234000000, - 351000000, - 468000000, - 526500000, - 585000000, - 702000000, - 780000000, - }, - }; - u32 bitrate; - int bw_idx; - - if (mcs > 9) { - RTW_HWMP_INFO("Invalid mcs = %d\n", mcs); - return 0; - } - - if (nss > 4 || nss < 1) { - RTW_HWMP_INFO("Now only support nss = 1, 2, 3, 4\n"); - } - - switch (bw) { - case CHANNEL_WIDTH_160: - bw_idx = 3; - break; - case CHANNEL_WIDTH_80: - bw_idx = 2; - break; - case CHANNEL_WIDTH_40: - bw_idx = 1; - break; - case CHANNEL_WIDTH_20: - bw_idx = 0; - break; - default: - RTW_HWMP_INFO("bw = %d currently not supported\n", bw); - return 0; - } - - bitrate = base[bw_idx][mcs]; - bitrate *= nss; - - if (sgi) - bitrate = (bitrate / 9) * 10; - - /* do NOT round down here */ - return (bitrate + 50000) / 100000; -} - -static u32 rtw_get_ht_bitrate(u8 mcs, u8 bw, u8 sgi) -{ - int modulation, streams, bitrate; - - /* the formula below does only work for MCS values smaller than 32 */ - if (mcs >= 32) { - RTW_HWMP_INFO("Invalid mcs = %d\n", mcs); - return 0; - } - - if (bw > 1) { - RTW_HWMP_INFO("Now HT only support bw = 0(20Mhz), 1(40Mhz)\n"); - return 0; - } - - modulation = mcs & 7; - streams = (mcs >> 3) + 1; - - bitrate = (bw == 1) ? 13500000 : 6500000; - - if (modulation < 4) - bitrate *= (modulation + 1); - else if (modulation == 4) - bitrate *= (modulation + 2); - else - bitrate *= (modulation + 3); - - bitrate *= streams; - - if (sgi) - bitrate = (bitrate / 9) * 10; - - /* do NOT round down here */ - return (bitrate + 50000) / 100000; -} - -/** - * @bw: 0(20Mhz), 1(40Mhz), 2(80Mhz), 3(160Mhz) - * @rate_idx: DESC_RATEXXXX & 0x7f - * @sgi: DESC_RATEXXXX >> 7 - * Returns: bitrate in 100kbps - */ -static u32 rtw_desc_rate_to_bitrate(u8 bw, u8 rate_idx, u8 sgi) -{ - u32 bitrate; - - if (rate_idx <= DESC_RATE54M){ - u16 ofdm_rate[12] = {10, 20, 55, 110, - 60, 90, 120, 180, 240, 360, 480, 540}; - bitrate = ofdm_rate[rate_idx]; - } else if ((DESC_RATEMCS0 <= rate_idx) && - (rate_idx <= DESC_RATEMCS31)) { - u8 mcs = rate_idx - DESC_RATEMCS0; - bitrate = rtw_get_ht_bitrate(mcs, bw, sgi); - } else if ((DESC_RATEVHTSS1MCS0 <= rate_idx) && - (rate_idx <= DESC_RATEVHTSS4MCS9)) { - u8 mcs = (rate_idx - DESC_RATEVHTSS1MCS0) % 10; - u8 nss = ((rate_idx - DESC_RATEVHTSS1MCS0) / 10) + 1; - bitrate = rtw_get_vht_bitrate(mcs, bw, nss, sgi); - } else { - /* 60Ghz ??? */ - bitrate = 1; - } - - return bitrate; -} - static u32 rtw_airtime_link_metric_get(_adapter *adapter, struct sta_info *sta) { struct dm_struct *dm = adapter_to_phydm(adapter); diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_ap.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_ap.c index c9b545cc..0786e29c 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_ap.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_ap.c @@ -168,11 +168,12 @@ static void update_BCNTIM(_adapter *padapter) void rtw_add_bcn_ie(_adapter *padapter, WLAN_BSSID_EX *pnetwork, u8 index, u8 *data, u8 len) { PNDIS_802_11_VARIABLE_IEs pIE; - u8 bmatch = _FALSE; - u8 *pie = pnetwork->IEs; - u8 *p = NULL, *dst_ie = NULL, *premainder_ie = NULL, *pbackup_remainder_ie = NULL; - u32 i, offset, ielen, ie_offset, remainder_ielen = 0; + u8 bmatch = _FALSE; + u8 *pie = pnetwork->IEs; + u8 *p = NULL, *dst_ie = NULL, *premainder_ie = NULL, *pbackup_remainder_ie = NULL; + u32 i, offset, ielen = 0, ie_offset, remainder_ielen = 0; + /* Search element id (index) exits or not */ for (i = sizeof(NDIS_802_11_FIXED_IEs); i < pnetwork->IELength;) { pIE = (PNDIS_802_11_VARIABLE_IEs)(pnetwork->IEs + i); @@ -190,6 +191,7 @@ void rtw_add_bcn_ie(_adapter *padapter, WLAN_BSSID_EX *pnetwork, u8 index, u8 *d i += (pIE->Length + 2); } + /* Backup remainder IE */ if (p != NULL && ielen > 0) { ielen += 2; @@ -220,7 +222,7 @@ void rtw_add_bcn_ie(_adapter *padapter, WLAN_BSSID_EX *pnetwork, u8 index, u8 *d _rtw_memcpy(dst_ie, data, len); dst_ie += len; - /* copy remainder IE */ + /* Append remainder IE */ if (pbackup_remainder_ie) { _rtw_memcpy(dst_ie, pbackup_remainder_ie, remainder_ielen); @@ -409,6 +411,18 @@ void expire_timeout_chk(_adapter *padapter) int stainfo_offset; u8 flush_num = 0; char flush_list[NUM_STA]={0}; + u8 data_flush = _FALSE; + #ifdef CONFIG_RTW_MGMT_QUEUE + u8 mgmt_flush = _FALSE; + #endif + struct dvobj_priv *dvobj = NULL; + struct rf_ctl_t *rfctl; + dvobj = adapter_to_dvobj(padapter); + rfctl = dvobj_to_rfctl(dvobj); + + /* AP is under CAC, so don't check STA alive or not */ + if (IS_UNDER_CAC(rfctl)) + return; #ifdef CONFIG_RTW_MESH if (MLME_IS_MESH(padapter) @@ -427,6 +441,10 @@ void expire_timeout_chk(_adapter *padapter) } #endif +#ifdef CONFIG_RTW_WDS + rtw_wds_path_expire(padapter); +#endif + #ifdef CONFIG_MCC_MODE /* then driver may check fail due to not recv client's frame under sitesurvey, * don't expire timeout chk under MCC under sitesurvey */ @@ -512,20 +530,17 @@ void expire_timeout_chk(_adapter *padapter) if (chk_sta_is_alive(psta) || !psta->expire_to) { psta->expire_to = pstapriv->expire_to; psta->keep_alive_trycnt = 0; -#ifdef CONFIG_TX_MCAST2UNI + #if !defined(CONFIG_ACTIVE_KEEP_ALIVE_CHECK) && defined(CONFIG_80211N_HT) psta->under_exist_checking = 0; -#endif /* CONFIG_TX_MCAST2UNI */ + #endif } else psta->expire_to--; -#ifndef CONFIG_ACTIVE_KEEP_ALIVE_CHECK -#ifdef CONFIG_80211N_HT -#ifdef CONFIG_TX_MCAST2UNI +#if !defined(CONFIG_ACTIVE_KEEP_ALIVE_CHECK) && defined(CONFIG_80211N_HT) if ((psta->flags & WLAN_STA_HT) && (psta->htpriv.agg_enable_bitmap || psta->under_exist_checking)) { /* check sta by delba(addba) for 11n STA */ /* ToDo: use CCX report to check for all STAs */ /* RTW_INFO("asoc check by DELBA/ADDBA! (pstapriv->expire_to=%d s)(psta->expire_to=%d s), [%02x, %d]\n", pstapriv->expire_to*2, psta->expire_to*2, psta->htpriv.agg_enable_bitmap, psta->under_exist_checking); */ - if (psta->expire_to <= (pstapriv->expire_to - 50)) { RTW_INFO("asoc expire by DELBA/ADDBA! (%d s)\n", (pstapriv->expire_to - psta->expire_to) * 2); psta->under_exist_checking = 0; @@ -539,9 +554,7 @@ void expire_timeout_chk(_adapter *padapter) psta->htpriv.candidate_tid_bitmap = 0x0;/* reset */ } } -#endif /* CONFIG_TX_MCAST2UNI */ -#endif /* CONFIG_80211N_HT */ -#endif /* CONFIG_ACTIVE_KEEP_ALIVE_CHECK */ +#endif /* !defined(CONFIG_ACTIVE_KEEP_ALIVE_CHECK) && defined(CONFIG_80211N_HT) */ if (psta->expire_to <= 0) { struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; @@ -631,13 +644,31 @@ void expire_timeout_chk(_adapter *padapter) } } else { /* TODO: Aging mechanism to digest frames in sleep_q to avoid running out of xmitframe */ - if (psta->sleepq_len > (NR_XMITFRAME / pstapriv->asoc_list_cnt) - && padapter->xmitpriv.free_xmitframe_cnt < ((NR_XMITFRAME / pstapriv->asoc_list_cnt) / 2) - ) { - RTW_INFO(FUNC_ADPT_FMT" sta:"MAC_FMT", sleepq_len:%u, free_xmitframe_cnt:%u, asoc_list_cnt:%u, clear sleep_q\n" - , FUNC_ADPT_ARG(padapter), MAC_ARG(psta->cmn.mac_addr) + + #ifdef CONFIG_RTW_MGMT_QUEUE + if (psta->mgmt_sleepq_len >= (NR_XMIT_EXTBUFF / pstapriv->asoc_list_cnt) + && padapter->xmitpriv.free_xframe_ext_cnt < ((NR_XMIT_EXTBUFF / pstapriv->asoc_list_cnt) / 2)) + mgmt_flush = _TRUE; + #endif + + if (psta->sleepq_len >= (NR_XMITFRAME / pstapriv->asoc_list_cnt) + && padapter->xmitpriv.free_xmitframe_cnt < ((NR_XMITFRAME / pstapriv->asoc_list_cnt) / 2)) + data_flush = _TRUE; + + if (data_flush + #ifdef CONFIG_RTW_MGMT_QUEUE + || mgmt_flush + #endif + ) { + RTW_INFO(FUNC_ADPT_FMT" sta:"MAC_FMT", flush sta's data and management frames\n" + , FUNC_ADPT_ARG(padapter), MAC_ARG(psta->cmn.mac_addr)); + RTW_INFO("sleepq_len:%u, free_xmitframe_cnt:%u, asoc_list_cnt:%u, clear sleep_q\n" , psta->sleepq_len, padapter->xmitpriv.free_xmitframe_cnt, pstapriv->asoc_list_cnt); - wakeup_sta_to_xmit(padapter, psta); + #ifdef CONFIG_RTW_MGMT_QUEUE + RTW_INFO("mgmt_sleepq_len:%u, free_xframe_ext_cnt:%u, asoc_list_cnt:%u, clear mgmt_sleep_q\n" + , psta->mgmt_sleepq_len, padapter->xmitpriv.free_xframe_ext_cnt, pstapriv->asoc_list_cnt); + #endif + wakeup_sta_to_xmit(padapter, psta, ALL_FRAME); } } } @@ -727,7 +758,7 @@ void expire_timeout_chk(_adapter *padapter) #ifdef CONFIG_RTW_TOKEN_BASED_XMIT if (psta->tbtx_enable) pstapriv->tbtx_asoc_list_cnt--; - #endif + #endif STA_SET_MESH_PLINK(psta, NULL); } _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL); @@ -1119,7 +1150,7 @@ void update_sta_info_apmode(_adapter *padapter, struct sta_info *psta) && !GET_HT_OP_ELE_STA_CHL_WIDTH(phtpriv_sta->ht_op)) psta->cmn.bw_mode = CHANNEL_WIDTH_20; - if (psta->ht_40mhz_intolerant) + if ((psta->ht_40mhz_intolerant)||(pmlmepriv->sw_to_20mhz)) psta->cmn.bw_mode = CHANNEL_WIDTH_20; if (pmlmeext->cur_bwmode < psta->cmn.bw_mode) @@ -1208,6 +1239,7 @@ void update_sta_info_apmode(_adapter *padapter, struct sta_info *psta) _exit_critical_bh(&psta->lock, &irqL); } + static void update_ap_info(_adapter *padapter, struct sta_info *psta) { struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); @@ -1642,7 +1674,8 @@ void start_bss_network(_adapter *padapter, struct createbss_parm *parm) WLAN_BSSID_EX *pnetwork_mlmeext = &(pmlmeinfo->network); struct dvobj_priv *pdvobj = padapter->dvobj; s16 req_ch = REQ_CH_NONE, req_bw = REQ_BW_NONE, req_offset = REQ_OFFSET_NONE; - u8 ch_to_set = 0, bw_to_set, offset_to_set; + u8 u_ch = 0, u_bw, u_offset; + bool set_u_ch; u8 doiqk = _FALSE; /* use for check ch bw offset can be allowed or not */ u8 chbw_allow = _TRUE; @@ -1693,10 +1726,9 @@ void start_bss_network(_adapter *padapter, struct createbss_parm *parm) #endif /* #CONFIG_80211N_HT */ #ifdef CONFIG_80211AC_VHT - if (pmlmepriv->vhtpriv.vht_option) { - pmlmeinfo->VHT_enable = _TRUE; + pmlmeinfo->VHT_enable = pmlmepriv->vhtpriv.vht_option; + if (pmlmeinfo->VHT_enable) update_hw_vht_param(padapter); - } #endif /* CONFIG_80211AC_VHT */ if (pmlmepriv->cur_network.join_res != _TRUE) { /* setting only at first time */ @@ -1725,7 +1757,7 @@ void start_bss_network(_adapter *padapter, struct createbss_parm *parm) chbw_decision: ifbmp_ch_changed = rtw_ap_chbw_decision(padapter, parm->ifbmp, parm->excl_ifbmp , req_ch, req_bw, req_offset - , &ch_to_set, &bw_to_set, &offset_to_set, &chbw_allow); + , &u_ch, &u_bw, &u_offset, &chbw_allow, &set_u_ch); for (i = 0; i < pdvobj->iface_nums; i++) { if (!(parm->ifbmp & BIT(i)) || !pdvobj->padapters[i]) @@ -1772,17 +1804,36 @@ chbw_decision: rtw_hal_set_hwreg(padapter , HW_VAR_DO_IQK , &doiqk); } - if (ch_to_set != 0) { - set_channel_bwmode(padapter, ch_to_set, offset_to_set, bw_to_set); - rtw_mi_update_union_chan_inf(padapter, ch_to_set, offset_to_set, bw_to_set); - } + if (set_u_ch) + set_channel_bwmode(padapter, u_ch, u_offset, u_bw); doiqk = _FALSE; rtw_hal_set_hwreg(padapter , HW_VAR_DO_IQK , &doiqk); #ifdef CONFIG_MCC_MODE /* after set_channel_bwmode for backup IQK */ - rtw_hal_set_mcc_setting_start_bss_network(padapter, chbw_allow); + if (rtw_hal_set_mcc_setting_start_bss_network(padapter, chbw_allow) == _FAIL) { + /* MCC setting fail, update to buddy's channel */ + rtw_mi_get_ch_setting_union_no_self(padapter, &u_ch, &u_bw, &u_offset); + pnetwork->Configuration.DSConfig = u_ch; + padapter->mlmeextpriv.cur_channel = u_ch; + padapter->mlmeextpriv.cur_bwmode = u_bw; + padapter->mlmeextpriv.cur_ch_offset = u_offset; + + if (ifbmp_ch_changed == 0) { + u8 ht_option = 0; + +#ifdef CONFIG_80211N_HT + ht_option = padapter->mlmepriv.htpriv.ht_option; +#endif + + rtw_cfg80211_ch_switch_notify(padapter + , padapter->mlmeextpriv.cur_channel + , padapter->mlmeextpriv.cur_bwmode + , padapter->mlmeextpriv.cur_ch_offset + , ht_option, 0); + } + } #endif #if defined(CONFIG_IOCTL_CFG80211) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0)) @@ -1806,6 +1857,8 @@ chbw_decision: } #endif /* defined(CONFIG_IOCTL_CFG80211) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0)) */ + rtw_rfctl_update_op_mode(adapter_to_rfctl(padapter), parm->ifbmp, 1); + if (DUMP_ADAPTERS_STATUS) { RTW_INFO(FUNC_ADPT_FMT" done\n", FUNC_ADPT_ARG(padapter)); dump_adapters_status(RTW_DBGDUMP , adapter_to_dvobj(padapter)); @@ -1837,6 +1890,10 @@ update_beacon: #endif update_beacon(pdvobj->padapters[i], _TIM_IE_, NULL, _FALSE, 0); + #ifdef CONFIG_ACTIVE_TPC_REPORT + if (MLME_ACTIVE_TPC_REPORT(mlme)) + update_beacon(pdvobj->padapters[i], WLAN_EID_TPC_REPORT, NULL, _FALSE, 0); + #endif } if (mlme_act != MLME_OPCH_SWITCH @@ -1896,7 +1953,8 @@ update_beacon: #endif /* !defined(CONFIG_INTERRUPT_BASED_TXBCN) */ #ifdef CONFIG_FW_HANDLE_TXBCN - if (mlme_act != MLME_OPCH_SWITCH) + if (mlme_act != MLME_OPCH_SWITCH + && pmlmeext->bstart_bss == _TRUE) rtw_ap_mbid_bcn_en(padapter, padapter->vap_id); #endif } @@ -1919,7 +1977,7 @@ int rtw_check_beacon_data(_adapter *padapter, u8 *pbuf, int len) int group_cipher, pairwise_cipher, gmcs; u32 akm; u8 mfp_opt = MFP_NO; - u8 channel, network_type; + u8 channel, network_type; u8 OUI1[] = {0x00, 0x50, 0xf2, 0x01}; u8 WMM_PARA_IE[] = {0x00, 0x50, 0xf2, 0x02, 0x01, 0x01}; HT_CAP_AMPDU_DENSITY best_ampdu_density; @@ -1929,11 +1987,12 @@ int rtw_check_beacon_data(_adapter *padapter, u8 *pbuf, int len) WLAN_BSSID_EX *pbss_network = (WLAN_BSSID_EX *)&pmlmepriv->cur_network.network; u8 *ie = pbss_network->IEs; u8 vht_cap = _FALSE; - struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); - struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); + struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); + struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); struct rf_ctl_t *rfctl = adapter_to_rfctl(padapter); u8 rf_num = 0; int ret_rm; + u8 buf[32]; /* SSID */ /* Supported rates */ /* DS Params */ @@ -1941,6 +2000,7 @@ int rtw_check_beacon_data(_adapter *padapter, u8 *pbuf, int len) /* ERP Information element */ /* Extended supported rates */ /* WPA/WPA2 */ + /* Radio Resource Management */ /* Wi-Fi Wireless Multimedia Extensions */ /* ht_capab, ht_oper */ /* WPS IE */ @@ -2022,6 +2082,22 @@ int rtw_check_beacon_data(_adapter *padapter, u8 *pbuf, int len) /* support rate ie & ext support ie & IElen & SupportedRates */ network_type = rtw_update_rate_bymode(pbss_network, pregistrypriv->wireless_mode); + /* Active TPC report */ +#ifdef CONFIG_ACTIVE_TPC_REPORT + pmlmepriv->active_tpc_report = 0; + p = rtw_get_ie(ie + _BEACON_IE_OFFSET_, WLAN_EID_TPC_REPORT, &ie_len, (pbss_network->IELength - _BEACON_IE_OFFSET_)); + if (REGSTY_IS_ACTIVE_TPC_REPORT_CAPABLE(pregistrypriv)) { + if (p && ie_len != 0) + pmlmepriv->active_tpc_report = 1; + else if (REGSTY_IS_ACTIVE_TPC_REPORT_AUTO(pregistrypriv)) { + rtw_set_ie_tpc_report(pbss_network->IEs + pbss_network->IELength, &pbss_network->IELength, 0, 0); + pmlmepriv->active_tpc_report = 1; + } + } + if (!MLME_ACTIVE_TPC_REPORT(pmlmepriv) && p) +#endif + rtw_remove_bcn_ie(padapter, pbss_network, WLAN_EID_TPC_REPORT); + /* parsing ERP_IE */ p = rtw_get_ie(ie + _BEACON_IE_OFFSET_, _ERPINFO_IE_, &ie_len, (pbss_network->IELength - _BEACON_IE_OFFSET_)); if (p && ie_len > 0) { @@ -2191,6 +2267,13 @@ int rtw_check_beacon_data(_adapter *padapter, u8 *pbuf, int len) } psecuritypriv->mfp_opt = mfp_opt; + /* Parsing extended capabilities IE */ + rtw_parse_ext_cap_ie(pmlmepriv->ext_capab_ie_data, &(pmlmepriv->ext_capab_ie_len), ie \ + , pbss_network->IELength, _BEACON_IE_OFFSET_); + + /* RRM */ + rm_update_cap(pbuf, padapter, len, _BEACON_IE_OFFSET_); + /* wmm */ ie_len = 0; pmlmepriv->qospriv.qos_option = 0; @@ -2230,11 +2313,12 @@ int rtw_check_beacon_data(_adapter *padapter, u8 *pbuf, int len) HT_CAP_AMPDU_FACTOR max_rx_ampdu_factor = MAX_AMPDU_FACTOR_64K; struct rtw_ieee80211_ht_cap *pht_cap = (struct rtw_ieee80211_ht_cap *)(p + 2); +#ifdef CONFIG_RTW_DEBUG if (0) { RTW_INFO(FUNC_ADPT_FMT" HT_CAP_IE from upper layer:\n", FUNC_ADPT_ARG(padapter)); dump_ht_cap_ie_content(RTW_DBGDUMP, p + 2, ie_len); } - +#endif /* CONFIG_RTW_DEBUG */ pHT_caps_ie = p; ht_cap = _TRUE; @@ -2330,11 +2414,12 @@ int rtw_check_beacon_data(_adapter *padapter, u8 *pbuf, int len) #endif /* CONFIG_BEAMFORMING */ _rtw_memcpy(&pmlmepriv->htpriv.ht_cap, p + 2, ie_len); - +#ifdef CONFIG_RTW_DEBUG if (0) { RTW_INFO(FUNC_ADPT_FMT" HT_CAP_IE driver masked:\n", FUNC_ADPT_ARG(padapter)); dump_ht_cap_ie_content(RTW_DBGDUMP, p + 2, ie_len); } +#endif /* CONFIG_RTW_DEBUG */ } /* parsing HT_INFO_IE */ @@ -2377,28 +2462,32 @@ int rtw_check_beacon_data(_adapter *padapter, u8 *pbuf, int len) #endif #ifdef CONFIG_80211AC_VHT - pmlmepriv->ori_vht_en = 0; + pmlmepriv->vhtpriv.upper_layer_setting = _FALSE; pmlmepriv->vhtpriv.vht_option = _FALSE; if (pmlmepriv->htpriv.ht_option == _TRUE && pbss_network->Configuration.DSConfig > 14 && REGSTY_IS_11AC_ENABLE(pregistrypriv) && is_supported_vht(pregistrypriv->wireless_mode) - && (!rfctl->country_ent || COUNTRY_CHPLAN_EN_11AC(rfctl->country_ent)) + && RFCTL_REG_EN_11AC(rfctl) ) { - /* Parsing VHT CAP IE */ - p = rtw_get_ie(ie + _BEACON_IE_OFFSET_, EID_VHTCapability, &ie_len, (pbss_network->IELength - _BEACON_IE_OFFSET_)); + /* Parsing VHT_CAP_IE */ + p = rtw_get_ie(ie + _BEACON_IE_OFFSET_, EID_VHTCapability, + &ie_len, (pbss_network->IELength - _BEACON_IE_OFFSET_)); if (p && ie_len > 0) vht_cap = _TRUE; + else + RTW_INFO(FUNC_ADPT_FMT" No vht_capability_ie from hostapd/wpa_supplicant\n", FUNC_ADPT_ARG(padapter)); - /* Parsing VHT OPERATION IE */ - - if (vht_cap == _TRUE - && MLME_IS_MESH(padapter) /* allow only mesh temporarily before VHT IE checking is ready */ - ) { - rtw_check_for_vht20(padapter, ie + _BEACON_IE_OFFSET_, pbss_network->IELength - _BEACON_IE_OFFSET_); - pmlmepriv->ori_vht_en = 1; + /* Update VHT related IEs */ + if (vht_cap == _TRUE) { + RTW_INFO(FUNC_ADPT_FMT" VHT IEs is configured by hostapd/wpa_supplicant\n", FUNC_ADPT_ARG(padapter)); + pmlmepriv->vhtpriv.upper_layer_setting = _TRUE; pmlmepriv->vhtpriv.vht_option = _TRUE; + + rtw_check_for_vht20(padapter, ie + _BEACON_IE_OFFSET_, + pbss_network->IELength - _BEACON_IE_OFFSET_); + rtw_check_vht_ies(padapter, pbss_network); } else if (REGSTY_IS_11AC_AUTO(pregistrypriv)) { rtw_vht_ies_detach(padapter, pbss_network); rtw_vht_ies_attach(padapter, pbss_network); @@ -2414,15 +2503,18 @@ int rtw_check_beacon_data(_adapter *padapter, u8 *pbuf, int len) is_supported_ht(padapter->registrypriv.wireless_mode) && pbss_network->Configuration.DSConfig <= 14 && padapter->registrypriv.wifi_spec == 1 && pbss_network->IELength + 10 <= MAX_IE_SZ) { - uint len = 0; - SET_EXT_CAPABILITY_ELE_BSS_COEXIST(pmlmepriv->ext_capab_ie_data, 1); - pmlmepriv->ext_capab_ie_len = 10; - rtw_set_ie(pbss_network->IEs + pbss_network->IELength, EID_EXTCapability, 8, pmlmepriv->ext_capab_ie_data, &len); - pbss_network->IELength += pmlmepriv->ext_capab_ie_len; + rtw_add_ext_cap_info(pmlmepriv->ext_capab_ie_data, &(pmlmepriv->ext_capab_ie_len), BSS_COEXT); + rtw_update_ext_cap_ie(pmlmepriv->ext_capab_ie_data, pmlmepriv->ext_capab_ie_len, pbss_network->IEs, \ + &(pbss_network->IELength), _BEACON_IE_OFFSET_); } #endif /* CONFIG_80211N_HT */ +#ifdef CONFIG_ECSA + ie_len = get_supported_op_class(padapter, buf, sizeof(buf)); + rtw_add_bcn_ie(padapter, pbss_network, EID_SupRegulatory, buf, ie_len); +#endif + pbss_network->Length = get_WLAN_BSSID_EX_sz((WLAN_BSSID_EX *)pbss_network); rtw_ies_get_chbw(pbss_network->IEs + _BEACON_IE_OFFSET_, pbss_network->IELength - _BEACON_IE_OFFSET_ @@ -2441,7 +2533,6 @@ int rtw_check_beacon_data(_adapter *padapter, u8 *pbuf, int len) return _FAIL; } } - rtw_startbss_cmd(padapter, RTW_CMDF_WAIT_ACK); { int sk_band = RTW_GET_SCAN_BAND_SKIP(padapter); @@ -2971,26 +3062,41 @@ static void associated_stainfo_update(_adapter *padapter, struct sta_info *psta, } -static void update_bcn_ext_capab_ie(_adapter *padapter) +#ifdef CONFIG_ACTIVE_TPC_REPORT +static bool rtw_update_bss_tpc_report(_adapter *adapter, WLAN_BSSID_EX *bss) { - sint ie_len = 0; - unsigned char *pbuf; - struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); - struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); - struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); - WLAN_BSSID_EX *pnetwork = &(pmlmeinfo->network); - u8 *ie = pnetwork->IEs; - u8 null_extcap_data[8] = {0}; + struct mlme_ext_priv *mlmeext = &adapter->mlmeextpriv; + u8 *ie; + int ie_len; + bool updated = 0; + u8 tx_power = 0; + u8 link_margin = 0; + s16 eirp_mbm; - pbuf = rtw_get_ie(ie + _BEACON_IE_OFFSET_, _EXT_CAP_IE_, &ie_len, (pnetwork->IELength - _BEACON_IE_OFFSET_)); - if (pbuf && ie_len > 0) - rtw_remove_bcn_ie(padapter, pnetwork, _EXT_CAP_IE_); + ie = rtw_get_ie(BSS_EX_TLV_IES(bss), WLAN_EID_TPC_REPORT, &ie_len, BSS_EX_TLV_IES_LEN(bss)); + if (!ie || ie_len != 2) { + rtw_warn_on(1); + goto exit; + } - if ((pmlmepriv->ext_capab_ie_len > 0) && - (_rtw_memcmp(pmlmepriv->ext_capab_ie_data, null_extcap_data, sizeof(null_extcap_data)) == _FALSE)) - rtw_add_bcn_ie(padapter, pnetwork, _EXT_CAP_IE_, pmlmepriv->ext_capab_ie_data, pmlmepriv->ext_capab_ie_len); + eirp_mbm = phy_get_txpwr_total_mbm(adapter, mlmeext->tx_rate_section, mlmeext->tx_rate + , mlmeext->cur_bwmode, rtw_get_center_ch(mlmeext->cur_channel, mlmeext->cur_bwmode, mlmeext->cur_ch_offset) + , mlmeext->cur_channel, 0, 1, NULL); + if (eirp_mbm > 0) + tx_power = eirp_mbm / MBM_PDBM; + + if (*(ie + 3) != tx_power + || *(ie + 4) != link_margin + ) { + updated = 1; + rtw_set_ie_tpc_report(ie, NULL , tx_power, link_margin); + } + +exit: + return updated; } +#endif static void update_bcn_erpinfo_ie(_adapter *padapter) { @@ -3206,6 +3312,151 @@ static void update_bcn_p2p_ie(_adapter *padapter) } +static void ap_process_csa(_adapter *padapter) +{ + struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); + struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); + struct dvobj_priv *dvobj = adapter_to_dvobj(padapter); + struct rf_ctl_t *rfctl = dvobj_to_rfctl(dvobj); +#ifdef CONFIG_CONCURRENT_MODE + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + _adapter *linking_adapter; +#endif + u8 ifbmp = 0; + + if (rfctl->ap_csa_switch_cnt != 0) + return; + + if (rfctl->ap_csa_en == AP_SWITCH_CH_CSA) { + ifbmp = BIT(padapter->iface_id); + rtw_change_bss_chbw_cmd(padapter, 0, ifbmp, 0, rfctl->ap_csa_ch, + rfctl->ap_csa_ch_width, rfctl->ap_csa_ch_offset); + rfctl->ap_csa_en = CSA_IE_REMOVE; + } +#ifdef CONFIG_CONCURRENT_MODE + else if (rfctl->ap_csa_en == CSA_STA_JOINBSS) { + linking_adapter = rtw_mi_get_linking_adapter(padapter); + if (linking_adapter) { + rfctl->ap_csa_en = CSA_IE_REMOVE; + pmlmepriv = &(linking_adapter->mlmepriv); + rtw_joinbss_cmd(linking_adapter, &(pmlmepriv->candidate_network)); + } else { + RTW_ERR("Can't find the linking STA\n"); + } + } +#endif +} + +static u8 update_csa_ie(_adapter *padapter, bool *process_csa) +{ + struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); + struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); + struct dvobj_priv *dvobj = adapter_to_dvobj(padapter); + struct rf_ctl_t *rfctl = dvobj_to_rfctl(dvobj); + WLAN_BSSID_EX *pnetwork = &(pmlmeinfo->network); + sint ie_len = 0; + unsigned char *pbuf; + u8 update = _FALSE; + u8 *ie = pnetwork->IEs; + u8 csa_data[WLAN_EID_CSA_IE_LEN] = {0}; + + if (rfctl->ap_csa_en == AP_CSA_DISABLE || rfctl->ap_csa_en == CSA_IE_REMOVE) + return update; + + csa_data[CSA_NEW_CH] = rfctl->ap_csa_ch; + csa_data[CSA_SWITCH_COUNT] = rfctl->ap_csa_switch_cnt; + + pbuf = rtw_get_ie(ie + _BEACON_IE_OFFSET_, WLAN_EID_CHANNEL_SWITCH \ + , &ie_len, (pnetwork->IELength - _BEACON_IE_OFFSET_)); + + if (pbuf && ie_len == WLAN_EID_CSA_IE_LEN && csa_data[CSA_SWITCH_COUNT] > 0) { + /* RTW_INFO("%s, ch=%d, switch_count=%d, update CSA IE\n", __FUNCTION__, + csa_data[CSA_NEW_CH], csa_data[CSA_SWITCH_COUNT]); */ + pbuf[4] = rfctl->ap_csa_switch_cnt; + update = _TRUE; + } else if (!pbuf && csa_data[CSA_SWITCH_COUNT] > 0) { + RTW_INFO("%s, ch=%d, switch_count=%d, add CSA IE\n", __FUNCTION__\ + , csa_data[CSA_NEW_CH], csa_data[CSA_SWITCH_COUNT]); + rtw_add_bcn_ie(padapter, pnetwork, WLAN_EID_CHANNEL_SWITCH, csa_data, WLAN_EID_CSA_IE_LEN); + update = _TRUE; + } else if (pbuf && ie_len > 0 && csa_data[CSA_SWITCH_COUNT] == 0) { + RTW_INFO("%s, ch=%d, switch_count=%d, remove CSA IE\n", __FUNCTION__ \ + , csa_data[CSA_NEW_CH], csa_data[CSA_SWITCH_COUNT]); + + if (pbuf) { + rtw_remove_bcn_ie(padapter, pnetwork, WLAN_EID_CHANNEL_SWITCH); + update = _TRUE; + } + + *process_csa = _TRUE; + + } else { + RTW_INFO("%s, unexpected case\n", __FUNCTION__); + } + + return update; +} + +static u8 update_ecsa_ie(_adapter *padapter, bool *process_ecsa) +{ + u8 update = _FALSE; +#ifdef CONFIG_ECSA + struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); + struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); + struct dvobj_priv *dvobj = adapter_to_dvobj(padapter); + struct rf_ctl_t *rfctl = dvobj_to_rfctl(dvobj); + WLAN_BSSID_EX *pnetwork = &(pmlmeinfo->network); + sint ie_len = 0; + unsigned char *pbuf; + u8 *ie = pnetwork->IEs; + u8 ecsa_data[WLAN_EID_ECSA_IE_LEN] = {0}; + + if (rfctl->ap_csa_en == AP_CSA_DISABLE || rfctl->ap_csa_en == CSA_IE_REMOVE) + return update; + + pbuf = rtw_get_ie(ie + _BEACON_IE_OFFSET_, WLAN_EID_ECSA, + &ie_len, (pnetwork->IELength - _BEACON_IE_OFFSET_)); + + if (pbuf && ie_len == WLAN_EID_ECSA_IE_LEN && rfctl->ap_csa_switch_cnt > 0) { + /* RTW_INFO("%s, ch=%d, switch_count=%d, update ECSA IE\n", __func__, + rfctl->ap_csa_ch, rfctl->ap_csa_switch_cnt); */ + pbuf[ECSA_SWITCH_COUNT + 2] = rfctl->ap_csa_switch_cnt; + update = _TRUE; + + } else if (!pbuf && rfctl->ap_csa_switch_cnt > 0) { + + RTW_INFO("%s, ch=%d, switch_count=%d, add ECSA IE\n", __func__, + rfctl->ap_csa_ch, rfctl->ap_csa_switch_cnt); + + ecsa_data[ECSA_OP_CLASS] = rtw_get_op_class_by_chbw(rfctl->ap_csa_ch, + rfctl->csa_ch_width, + rfctl->csa_ch_offset); + ecsa_data[ECSA_NEW_CH] = rfctl->ap_csa_ch; + ecsa_data[ECSA_SWITCH_COUNT] = rfctl->ap_csa_switch_cnt; + + rtw_add_bcn_ie(padapter, pnetwork, WLAN_EID_ECSA, + ecsa_data, WLAN_EID_ECSA_IE_LEN); + update = _TRUE; + + } else if (pbuf && ie_len > 0 && rfctl->ap_csa_switch_cnt == 0) { + RTW_INFO("%s, ch=%d, switch_count=%d, remove ECSA IE\n", __func__, + rfctl->ap_csa_ch, rfctl->ap_csa_switch_cnt); + + if (pbuf) { + rtw_remove_bcn_ie(padapter, pnetwork, WLAN_EID_ECSA); + update = _TRUE; + } + + *process_ecsa = _TRUE; + + } else { + RTW_INFO("%s, unexpected case\n", __FUNCTION__); + } +#endif /* CONFIG_ECSA */ + return update; +} + + static void update_bcn_vendor_spec_ie(_adapter *padapter, u8 *oui) { RTW_INFO("%s\n", __FUNCTION__); @@ -3247,6 +3498,12 @@ void _update_beacon(_adapter *padapter, u8 ie_id, u8 *oui, u8 tx, u8 flags, cons update_BCNTIM(padapter); break; +#ifdef CONFIG_ACTIVE_TPC_REPORT + case WLAN_EID_TPC_REPORT: + updated = rtw_update_bss_tpc_report(padapter, &(pmlmeext->mlmext_info.network)); + break; +#endif + case _ERPINFO_IE_: update_bcn_erpinfo_ie(padapter); break; @@ -3263,10 +3520,6 @@ void _update_beacon(_adapter *padapter, u8 ie_id, u8 *oui, u8 tx, u8 flags, cons update_bcn_htinfo_ie(padapter); break; - case _EXT_CAP_IE_: - update_bcn_ext_capab_ie(padapter); - break; - #ifdef CONFIG_RTW_MESH case WLAN_EID_MESH_CONFIG: updated = rtw_mesh_update_bss_peering_status(padapter, &(pmlmeext->mlmext_info.network)); @@ -3274,7 +3527,27 @@ void _update_beacon(_adapter *padapter, u8 ie_id, u8 *oui, u8 tx, u8 flags, cons updated |= rtw_mesh_update_bss_forwarding_state(padapter, &(pmlmeext->mlmext_info.network)); break; #endif + case WLAN_EID_CHANNEL_SWITCH: + { + struct dvobj_priv *dvobj = adapter_to_dvobj(padapter); + struct rf_ctl_t *rfctl = dvobj_to_rfctl(dvobj); + bool process_csa = _FALSE; + bool process_ecsa = _FALSE; + u8 updated_csa = _FALSE; + u8 updated_ecsa = _FALSE; + updated_csa = update_csa_ie(padapter, &process_csa); + updated_ecsa = update_ecsa_ie(padapter,&process_ecsa); + + if (process_csa || process_ecsa) + ap_process_csa(padapter); + + if ((updated_csa || updated_ecsa) && rfctl->ap_csa_switch_cnt > 0) { + rfctl->ap_csa_switch_cnt--; + updated = _TRUE; + } + break; + } case _VENDOR_SPECIFIC_IE_: update_bcn_vendor_spec_ie(padapter, oui); break; @@ -3319,6 +3592,8 @@ void rtw_process_public_act_bsscoex(_adapter *padapter, u8 *pframe, uint frame_l u8 *frame_body = pframe + sizeof(struct rtw_ieee80211_hdr_3addr); uint frame_body_len = frame_len - sizeof(struct rtw_ieee80211_hdr_3addr); u8 category, action; + struct macid_ctl_t *macid_ctl = &padapter->dvobj->macid_ctl; + int i; psta = rtw_get_stainfo(pstapriv, get_addr2_ptr(pframe)); if (psta == NULL) @@ -3364,6 +3639,15 @@ void rtw_process_public_act_bsscoex(_adapter *padapter, u8 *pframe, uint frame_l update_beacon(padapter, _HT_ADD_INFO_IE_, NULL, _TRUE, 0); associated_stainfo_update(padapter, psta, STA_INFO_UPDATE_BW); + if (pmlmepriv->sw_to_20mhz) { + for (i = 0; i < MACID_NUM_SW_LIMIT; i++) { + psta = macid_ctl->sta[i]; + if (psta && !is_broadcast_mac_addr(psta->cmn.mac_addr)) { + psta->cmn.bw_mode = CHANNEL_WIDTH_20; + rtw_dm_ra_mask_wk_cmd(padapter, (u8 *)psta); + } + } + } } @@ -3824,6 +4108,10 @@ u8 ap_free_sta(_adapter *padapter, struct sta_info *psta, bool active, u16 reaso if (!MLME_IS_MESH(padapter)) issue_deauth(padapter, psta->cmn.mac_addr, reason); + + /* Flush buffered management frames */ + if (psta->state & WIFI_SLEEP_STATE) + wakeup_sta_to_xmit(padapter, psta, UNI_MGMT); } #ifdef CONFIG_RTW_MESH @@ -3840,10 +4128,6 @@ u8 ap_free_sta(_adapter *padapter, struct sta_info *psta, bool active, u16 reaso psta->htpriv.candidate_tid_bitmap = 0x0;/* reset */ #endif - /* clear cam entry / key */ - rtw_clearstakey_cmd(padapter, psta, enqueue); - - _enter_critical_bh(&psta->lock, &irqL); psta->state &= ~(WIFI_ASOC_STATE | WIFI_UNDER_KEY_HANDSHAKE); @@ -3853,10 +4137,19 @@ u8 ap_free_sta(_adapter *padapter, struct sta_info *psta, bool active, u16 reaso psta->pauth_frame = NULL; psta->auth_len = 0; } + if (psta->passoc_req && psta->assoc_req_len > 0) { + rtw_mfree(psta->passoc_req , psta->assoc_req_len); + psta->passoc_req = NULL; + psta->assoc_req_len = 0; + } #endif /* CONFIG_IOCTL_CFG80211 */ _exit_critical_bh(&psta->lock, &irqL); if (!MLME_IS_MESH(padapter)) { + #ifdef CONFIG_RTW_WDS + rtw_wds_path_flush_by_nexthop(psta); + #endif + #ifdef CONFIG_IOCTL_CFG80211 #ifdef COMPAT_KERNEL_RELEASE rtw_cfg80211_indicate_sta_disassoc(padapter, psta->cmn.mac_addr, reason); @@ -3874,8 +4167,10 @@ u8 ap_free_sta(_adapter *padapter, struct sta_info *psta, bool active, u16 reaso report_del_sta_event(padapter, psta->cmn.mac_addr, reason, enqueue, _FALSE); - return beacon_updated; + /* clear cam entry / key */ + rtw_clearstakey_cmd(padapter, psta, enqueue); + return beacon_updated; } int rtw_ap_inform_ch_switch(_adapter *padapter, u8 new_ch, u8 ch_offset) @@ -3971,7 +4266,7 @@ int rtw_sta_flush(_adapter *padapter, bool enqueue) #endif } - if (!MLME_IS_MESH(padapter)) + if (MLME_IS_ASOC(padapter) && !MLME_IS_MESH(padapter)) issue_deauth(padapter, bc_addr, WLAN_REASON_DEAUTH_LEAVING); associated_clients_update(padapter, _TRUE, STA_INFO_UPDATE_ALL); @@ -4144,6 +4439,11 @@ void start_ap_mode(_adapter *padapter) for (i = 0 ; i < pstapriv->max_aid; i++) pstapriv->sta_aid[i] = NULL; +#ifdef CONFIG_RTW_WDS + if (MLME_IS_AP(padapter)) + rtw_wds_pathtbl_init(padapter); +#endif + psta = rtw_get_bcmc_stainfo(padapter); /*_enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL);*/ if (psta) @@ -4187,9 +4487,7 @@ void stop_ap_mode(_adapter *padapter) padapter->securitypriv.ndisauthtype = Ndis802_11AuthModeOpen; padapter->securitypriv.ndisencryptstatus = Ndis802_11WEPDisabled; -#ifdef CONFIG_DFS_MASTER - rtw_dfs_rd_en_decision(padapter, self_action, 0); -#endif + rtw_rfctl_update_op_mode(adapter_to_rfctl(padapter), BIT(padapter->iface_id), 0); /* free scan queue */ rtw_free_network_queue(padapter, _TRUE); @@ -4212,6 +4510,12 @@ void stop_ap_mode(_adapter *padapter) } pmlmepriv->ap_isolate = 0; +#ifdef CONFIG_RTW_WDS + adapter_set_use_wds(padapter, 0); +#endif +#ifdef CONFIG_RTW_MULTI_AP + padapter->multi_ap = 0; +#endif rtw_free_mlme_priv_ie_data(pmlmepriv); #ifdef CONFIG_SUPPORT_MULTI_BCN @@ -4258,6 +4562,15 @@ void stop_ap_mode(_adapter *padapter) rtw_btcoex_MediaStatusNotify(padapter, 0); /* disconnect */ #endif +#ifdef CONFIG_RTW_WDS + if (MLME_IS_AP(padapter)) + rtw_wds_pathtbl_unregister(padapter); +#endif + +#ifdef CONFIG_FW_MULTI_PORT_SUPPORT + /* Disable beacon early interrupt IMR of AP mode */ + rtw_hal_set_ap_bcn_imr_cmd(padapter, 0); +#endif } #endif /* CONFIG_NATIVEAP_MLME */ @@ -4294,7 +4607,7 @@ void rtw_ap_update_bss_chbw(_adapter *adapter, WLAN_BSSID_EX *bss, u8 ch, u8 bw, if (vhtpriv->vht_option == _TRUE) { u8 *vht_cap_ie, *vht_op_ie; int vht_cap_ielen, vht_op_ielen; - u8 center_freq; + u8 center_freq; vht_cap_ie = rtw_get_ie((bss->IEs + sizeof(NDIS_802_11_FIXED_IEs)), EID_VHTCapability, &vht_cap_ielen, (bss->IELength - sizeof(NDIS_802_11_FIXED_IEs))); vht_op_ie = rtw_get_ie((bss->IEs + sizeof(NDIS_802_11_FIXED_IEs)), EID_VHTOperation, &vht_op_ielen, (bss->IELength - sizeof(NDIS_802_11_FIXED_IEs))); @@ -4318,10 +4631,12 @@ void rtw_ap_update_bss_chbw(_adapter *adapter, WLAN_BSSID_EX *bss, u8 ch, u8 bw, /* update vht op ie */ if (vht_op_ie && vht_op_ielen) { if (bw < CHANNEL_WIDTH_80) { + RTW_INFO(FUNC_ADPT_FMT" update VHT 20/40M\n", FUNC_ADPT_ARG(adapter)); SET_VHT_OPERATION_ELE_CHL_WIDTH(vht_op_ie + 2, 0); SET_VHT_OPERATION_ELE_CHL_CENTER_FREQ1(vht_op_ie + 2, 0); SET_VHT_OPERATION_ELE_CHL_CENTER_FREQ2(vht_op_ie + 2, 0); } else if (bw == CHANNEL_WIDTH_80) { + RTW_INFO(FUNC_ADPT_FMT" update VHT 80M, center_freq = %u\n", FUNC_ADPT_ARG(adapter), center_freq); SET_VHT_OPERATION_ELE_CHL_WIDTH(vht_op_ie + 2, 1); SET_VHT_OPERATION_ELE_CHL_CENTER_FREQ1(vht_op_ie + 2, center_freq); SET_VHT_OPERATION_ELE_CHL_CENTER_FREQ2(vht_op_ie + 2, 0); @@ -4391,6 +4706,7 @@ static u8 rtw_ap_update_chbw_by_ifbmp(struct dvobj_priv *dvobj, u8 ifbmp , u8 dec_ch[], u8 dec_bw[], u8 dec_offset[] , const char *caller) { + struct rf_ctl_t *rfctl = dvobj_to_rfctl(dvobj); _adapter *iface; struct mlme_ext_priv *mlmeext; WLAN_BSSID_EX *network; @@ -4398,7 +4714,7 @@ static u8 rtw_ap_update_chbw_by_ifbmp(struct dvobj_priv *dvobj, u8 ifbmp int i; for (i = 0; i < dvobj->iface_nums; i++) { - if (!(ifbmp & BIT(i)) || !dvobj->padapters) + if (!(ifbmp & BIT(i)) || !dvobj->padapters[i]) continue; iface = dvobj->padapters[i]; @@ -4418,7 +4734,7 @@ static u8 rtw_ap_update_chbw_by_ifbmp(struct dvobj_priv *dvobj, u8 ifbmp } for (i = 0; i < dvobj->iface_nums; i++) { - if (!(ifbmp & BIT(i)) || !dvobj->padapters) + if (!(ifbmp & BIT(i)) || !dvobj->padapters[i]) continue; iface = dvobj->padapters[i]; @@ -4443,7 +4759,10 @@ static u8 rtw_ap_update_chbw_by_ifbmp(struct dvobj_priv *dvobj, u8 ifbmp rtw_ap_inform_ch_switch(iface, dec_ch[i], dec_offset[i]); else #endif - rtw_sta_flush(iface, _FALSE); + { + if(rfctl->ap_csa_en == AP_CSA_DISABLE) + rtw_sta_flush(iface, _FALSE); + } } } @@ -4459,15 +4778,22 @@ static u8 rtw_ap_update_chbw_by_ifbmp(struct dvobj_priv *dvobj, u8 ifbmp static u8 rtw_ap_ch_specific_chk(_adapter *adapter, u8 ch, u8 *bw, u8 *offset, const char *caller) { - struct dvobj_priv *dvobj = adapter_to_dvobj(adapter); - RT_CHANNEL_INFO *chset = adapter_to_chset(adapter); + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + RT_CHANNEL_INFO *chset = rfctl->channel_set; + int ch_idx; u8 ret = _SUCCESS; - if (rtw_chset_search_ch(chset, ch) < 0) { + ch_idx = rtw_chset_search_ch(chset, ch); + if (ch_idx < 0) { RTW_WARN("%s ch:%u doesn't fit in chplan\n", caller, ch); ret = _FAIL; goto exit; } + if (chset[ch_idx].flags & RTW_CHF_NO_IR) { + RTW_WARN("%s ch:%u is passive\n", caller, ch); + ret = _FAIL; + goto exit; + } rtw_adjust_chbw(adapter, ch, bw, offset); @@ -4477,8 +4803,8 @@ static u8 rtw_ap_ch_specific_chk(_adapter *adapter, u8 ch, u8 *bw, u8 *offset, c goto exit; } - while (!rtw_chset_is_chbw_valid(chset, ch, *bw, *offset) - || (rtw_odm_dfs_domain_unknown(dvobj) && rtw_is_dfs_chbw(ch, *bw, *offset)) + while (!rtw_chset_is_chbw_valid(chset, ch, *bw, *offset, 0, 0) + || (rtw_rfctl_dfs_domain_unknown(rfctl) && rtw_chset_is_dfs_chbw(chset, ch, *bw, *offset)) ) { if (*bw > CHANNEL_WIDTH_20) (*bw)--; @@ -4488,7 +4814,7 @@ static u8 rtw_ap_ch_specific_chk(_adapter *adapter, u8 ch, u8 *bw, u8 *offset, c } } - if (rtw_odm_dfs_domain_unknown(dvobj) && rtw_is_dfs_chbw(ch, *bw, *offset)) { + if (rtw_rfctl_dfs_domain_unknown(rfctl) && rtw_chset_is_dfs_chbw(chset, ch, *bw, *offset)) { RTW_WARN("%s DFS channel %u can't be used\n", caller, ch); ret = _FAIL; goto exit; @@ -4501,18 +4827,17 @@ exit: static bool rtw_ap_choose_chbw(_adapter *adapter, u8 sel_ch, u8 max_bw, u8 cur_ch , u8 *ch, u8 *bw, u8 *offset, bool by_int_info, u8 mesh_only, const char *caller) { - struct dvobj_priv *dvobj = adapter_to_dvobj(adapter); struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); bool ch_avail = _FALSE; #if defined(CONFIG_DFS_MASTER) - if (!rtw_odm_dfs_domain_unknown(dvobj)) { + if (!rtw_rfctl_dfs_domain_unknown(rfctl)) { if (rfctl->radar_detected && rfctl->dbg_dfs_choose_dfs_ch_first ) { ch_avail = rtw_choose_shortest_waiting_ch(rfctl, sel_ch, max_bw , ch, bw, offset - , RTW_CHF_2G | RTW_CHF_NON_DFS + , RTW_CHF_DFS, 0 , cur_ch, by_int_info, mesh_only); if (ch_avail == _TRUE) { RTW_INFO("%s choose 5G DFS channel for debug\n", caller); @@ -4521,29 +4846,29 @@ static bool rtw_ap_choose_chbw(_adapter *adapter, u8 sel_ch, u8 max_bw, u8 cur_c } if (rfctl->radar_detected - && rfctl->dfs_ch_sel_d_flags + && (rfctl->dfs_ch_sel_e_flags || rfctl->dfs_ch_sel_d_flags) ) { ch_avail = rtw_choose_shortest_waiting_ch(rfctl, sel_ch, max_bw , ch, bw, offset - , rfctl->dfs_ch_sel_d_flags + , rfctl->dfs_ch_sel_e_flags, rfctl->dfs_ch_sel_d_flags , cur_ch, by_int_info, mesh_only); if (ch_avail == _TRUE) { - RTW_INFO("%s choose with dfs_ch_sel_d_flags:0x%02x for debug\n" - , caller, rfctl->dfs_ch_sel_d_flags); + RTW_INFO("%s choose with dfs_ch_sel_ e_flags:0x%02x d_flags:0x%02x for debug\n" + , caller, rfctl->dfs_ch_sel_e_flags, rfctl->dfs_ch_sel_d_flags); goto exit; } } ch_avail = rtw_choose_shortest_waiting_ch(rfctl, sel_ch, max_bw , ch, bw, offset - , 0 + , 0, 0 , cur_ch, by_int_info, mesh_only); } else #endif /* defined(CONFIG_DFS_MASTER) */ { ch_avail = rtw_choose_shortest_waiting_ch(rfctl, sel_ch, max_bw , ch, bw, offset - , RTW_CHF_DFS + , 0, RTW_CHF_DFS , cur_ch, by_int_info, mesh_only); } #if defined(CONFIG_DFS_MASTER) @@ -4557,7 +4882,7 @@ exit: u8 rtw_ap_chbw_decision(_adapter *adapter, u8 ifbmp, u8 excl_ifbmp , s16 req_ch, s8 req_bw, s8 req_offset - , u8 *ch, u8 *bw, u8 *offset, u8 *chbw_allow) + , u8 *ch, u8 *bw, u8 *offset, u8 *chbw_allow, bool *set_u_ch) { struct dvobj_priv *dvobj = adapter_to_dvobj(adapter); RT_CHANNEL_INFO *chset = adapter_to_chset(adapter); @@ -4574,13 +4899,14 @@ u8 rtw_ap_chbw_decision(_adapter *adapter, u8 ifbmp, u8 excl_ifbmp WLAN_BSSID_EX *network; struct mi_state mstate; struct mi_state mstate_others; - bool set_u_ch = _FALSE; u8 ifbmp_others = 0xFF & ~ifbmp & ~excl_ifbmp; u8 ifbmp_ch_changed = 0; bool ifbmp_all_mesh = 0; _adapter *iface; int i; + *set_u_ch = _FALSE; + #ifdef CONFIG_RTW_MESH for (i = 0; i < dvobj->iface_nums; i++) if ((ifbmp & BIT(i)) && dvobj->padapters) @@ -4682,8 +5008,8 @@ u8 rtw_ap_chbw_decision(_adapter *adapter, u8 ifbmp, u8 excl_ifbmp if (rtw_is_chbw_grouped(u_ch, u_bw, u_offset, dec_ch[i], dec_bw[i], dec_offset[i])) { rtw_chset_sync_chbw(chset , &dec_ch[i], &dec_bw[i], &dec_offset[i] - , &u_ch, &u_bw, &u_offset); - set_u_ch = _TRUE; + , &u_ch, &u_bw, &u_offset, 1, 0); + *set_u_ch = _TRUE; /* channel bw offset can be allowed, not need MCC */ *chbw_allow = _TRUE; @@ -4743,7 +5069,7 @@ u8 rtw_ap_chbw_decision(_adapter *adapter, u8 ifbmp, u8 excl_ifbmp #endif /* CONFIG_MCC_MODE */ if (req_ch == 0 && dec_bw[i] > u_bw - && rtw_is_dfs_chbw(u_ch, u_bw, u_offset) + && rtw_chset_is_dfs_chbw(chset, u_ch, u_bw, u_offset) ) { /* request comes from upper layer, prevent from additional channel waiting */ dec_bw[i] = u_bw; @@ -4754,10 +5080,10 @@ u8 rtw_ap_chbw_decision(_adapter *adapter, u8 ifbmp, u8 excl_ifbmp /* follow */ rtw_chset_sync_chbw(chset , &dec_ch[i], &dec_bw[i], &dec_offset[i] - , &u_ch, &u_bw, &u_offset); + , &u_ch, &u_bw, &u_offset, 1, 0); } - set_u_ch = _TRUE; + *set_u_ch = _TRUE; } else { /* autonomous decision */ @@ -4877,7 +5203,7 @@ update_bss_chbw: #endif } - set_u_ch = _TRUE; + *set_u_ch = _TRUE; } ifbmp_ch_changed = rtw_ap_update_chbw_by_ifbmp(dvobj, ifbmp @@ -4888,16 +5214,18 @@ update_bss_chbw: if (u_ch != 0) RTW_INFO("%s union:%u,%u,%u\n", __func__, u_ch, u_bw, u_offset); - if (rtw_mi_check_fwstate(adapter, WIFI_UNDER_SURVEY)) { - /* scanning, leave ch setting to scan state machine */ - set_u_ch = _FALSE; - } - - if (set_u_ch == _TRUE) { + if (*set_u_ch == _TRUE) { + rtw_mi_update_union_chan_inf(adapter, u_ch, u_offset, u_bw); *ch = u_ch; *bw = u_bw; *offset = u_offset; } + + if (rtw_mi_check_fwstate(adapter, WIFI_UNDER_SURVEY)) { + /* scanning, leave ch setting to scan state machine */ + *set_u_ch = _FALSE; + } + exit: return ifbmp_ch_changed; } @@ -5228,6 +5556,11 @@ u16 rtw_ap_parse_sta_security_ie(_adapter *adapter, struct sta_info *sta, struct wpa_ie = NULL; wpa_ie_len = 0; } + if (sec->dot11PrivacyAlgrthm != _NO_PRIVACY_) { + /*check if amsdu is allowed */ + if (rtw_check_amsdu_disable(adapter->registrypriv.amsdu_mode, spp_opt) == _TRUE) + sta->flags |= WLAN_STA_AMSDU_DISABLE; + } if ((sec->mfp_opt == MFP_REQUIRED && mfp_opt < MFP_OPTIONAL) || (mfp_opt == MFP_REQUIRED && sec->mfp_opt < MFP_OPTIONAL) @@ -5236,12 +5569,6 @@ u16 rtw_ap_parse_sta_security_ie(_adapter *adapter, struct sta_info *sta, struct goto exit; } - if (sec->dot11PrivacyAlgrthm != _NO_PRIVACY_) { - /*check if amsdu is allowed */ - if (rtw_check_amsdu_disable(adapter->registrypriv.amsdu_mode, spp_opt) == _TRUE) - sta->flags |= WLAN_STA_AMSDU_DISABLE; - } - #ifdef CONFIG_RTW_MESH if (MLME_IS_MESH(adapter)) { /* MFP is mandatory for secure mesh */ @@ -5471,6 +5798,481 @@ exit: return; } +void rtw_ap_parse_sta_multi_ap_ie(_adapter *adapter, struct sta_info *sta, u8 *ies, int ies_len) +{ + sta->flags &= ~WLAN_STA_MULTI_AP; + +#ifdef CONFIG_RTW_MULTI_AP + if (adapter->multi_ap + && (rtw_get_multi_ap_ie_ext(ies, ies_len) & MULTI_AP_BACKHAUL_STA) + ) { + if (adapter->multi_ap & MULTI_AP_BACKHAUL_BSS) /* with backhaul bss, enable WDS */ + sta->flags |= WLAN_STA_MULTI_AP | WLAN_STA_WDS; + else if (adapter->multi_ap & MULTI_AP_FRONTHAUL_BSS) /* fronthaul bss only */ + sta->flags |= WLAN_STA_MULTI_AP; + } +#endif +} + +#if CONFIG_RTW_AP_DATA_BMC_TO_UC +static bool rtw_ap_data_bmc_to_uc(_adapter *adapter + , const u8 *da, const u8 *sa, const u8 *ori_ta + , u16 os_qid, _list *b2u_list) +{ + struct sta_priv *stapriv = &adapter->stapriv; + struct xmit_priv *xmitpriv = &adapter->xmitpriv; + _irqL irqL; + _list *head, *list; + struct sta_info *sta; + char b2u_sta_id[NUM_STA]; + u8 b2u_sta_num = 0; + bool bmc_need = _FALSE; + int i; + + _enter_critical_bh(&stapriv->asoc_list_lock, &irqL); + head = &stapriv->asoc_list; + list = get_next(head); + + while ((rtw_end_of_queue_search(head, list)) == _FALSE) { + int stainfo_offset; + + sta = LIST_CONTAINOR(list, struct sta_info, asoc_list); + list = get_next(list); + + stainfo_offset = rtw_stainfo_offset(stapriv, sta); + if (stainfo_offset_valid(stainfo_offset)) + b2u_sta_id[b2u_sta_num++] = stainfo_offset; + } + _exit_critical_bh(&stapriv->asoc_list_lock, &irqL); + + if (!b2u_sta_num) + goto exit; + + for (i = 0; i < b2u_sta_num; i++) { + struct xmit_frame *b2uframe; + struct pkt_attrib *attrib; + + sta = rtw_get_stainfo_by_offset(stapriv, b2u_sta_id[i]); + if (!(sta->state & WIFI_ASOC_STATE) + || _rtw_memcmp(sta->cmn.mac_addr, sa, ETH_ALEN) == _TRUE + || (ori_ta && _rtw_memcmp(sta->cmn.mac_addr, ori_ta, ETH_ALEN) == _TRUE) + || is_broadcast_mac_addr(sta->cmn.mac_addr) + || is_zero_mac_addr(sta->cmn.mac_addr)) + continue; + + b2uframe = rtw_alloc_xmitframe(xmitpriv, os_qid); + if (!b2uframe) { + bmc_need = _TRUE; + break; + } + + attrib = &b2uframe->attrib; + + _rtw_memcpy(attrib->ra, sta->cmn.mac_addr, ETH_ALEN); + _rtw_memcpy(attrib->ta, adapter_mac_addr(adapter), ETH_ALEN); + #ifdef CONFIG_RTW_WDS + if (adapter_use_wds(adapter) && (sta->flags & WLAN_STA_WDS)) { + _rtw_memcpy(attrib->dst, da, ETH_ALEN); + attrib->wds = 1; + } else + #endif + _rtw_memcpy(attrib->dst, attrib->ra, ETH_ALEN); + _rtw_memcpy(attrib->src, sa, ETH_ALEN); + + rtw_list_insert_tail(&b2uframe->list, b2u_list); + } + +exit: + return bmc_need; +} + +void dump_ap_b2u_flags(void *sel, _adapter *adapter) +{ + RTW_PRINT_SEL(sel, "%4s %4s\n", "src", "fwd"); + RTW_PRINT_SEL(sel, "0x%02x 0x%02x\n", adapter->b2u_flags_ap_src, adapter->b2u_flags_ap_fwd); +} +#endif /* CONFIG_RTW_AP_DATA_BMC_TO_UC */ + +static int rtw_ap_nexthop_resolve(_adapter *adapter, struct xmit_frame *xframe) +{ + struct pkt_attrib *attrib = &xframe->attrib; + int ret = _SUCCESS; + +#ifdef CONFIG_RTW_WDS + if (adapter_use_wds(adapter)) { + if (rtw_wds_nexthop_lookup(adapter, attrib->dst, attrib->ra) == 0) { + if (_rtw_memcmp(attrib->dst, attrib->ra, ETH_ALEN) == _FALSE) + attrib->wds = 1; + } else + ret = _FAIL; + } else +#endif + _rtw_memcpy(attrib->ra, attrib->dst, ETH_ALEN); + + return ret; +} + +#ifdef CONFIG_RTW_WDS +static void rtw_ap_data_flood_for_unknown_da(_adapter *adapter + , const u8 *da, const u8 *sa, const u8 *ori_ta + , u16 os_qid, _list *f_list) +{ + struct sta_priv *stapriv = &adapter->stapriv; + struct xmit_priv *xmitpriv = &adapter->xmitpriv; + _irqL irqL; + _list *head, *list; + struct sta_info *sta; + char sta_id[NUM_STA]; + u8 sta_num = 0; + int i; + + _enter_critical_bh(&stapriv->asoc_list_lock, &irqL); + head = &stapriv->asoc_list; + list = get_next(head); + + while ((rtw_end_of_queue_search(head, list)) == _FALSE) { + int stainfo_offset; + + sta = LIST_CONTAINOR(list, struct sta_info, asoc_list); + list = get_next(list); + + stainfo_offset = rtw_stainfo_offset(stapriv, sta); + if (stainfo_offset_valid(stainfo_offset)) + sta_id[sta_num++] = stainfo_offset; + } + _exit_critical_bh(&stapriv->asoc_list_lock, &irqL); + + if (!sta_num) + goto exit; + + for (i = 0; i < sta_num; i++) { + struct xmit_frame *frame; + struct pkt_attrib *attrib; + + sta = rtw_get_stainfo_by_offset(stapriv, sta_id[i]); + if (!(sta->state & WIFI_ASOC_STATE) + || !(sta->flags & WLAN_STA_WDS) + || _rtw_memcmp(sta->cmn.mac_addr, sa, ETH_ALEN) == _TRUE + || (ori_ta && _rtw_memcmp(sta->cmn.mac_addr, ori_ta, ETH_ALEN) == _TRUE) + || is_broadcast_mac_addr(sta->cmn.mac_addr) + || is_zero_mac_addr(sta->cmn.mac_addr)) + continue; + + frame = rtw_alloc_xmitframe(xmitpriv, os_qid); + if (!frame) + break; + + attrib = &frame->attrib; + + _rtw_memcpy(attrib->ra, sta->cmn.mac_addr, ETH_ALEN); + _rtw_memcpy(attrib->ta, adapter_mac_addr(adapter), ETH_ALEN); + _rtw_memcpy(attrib->dst, da, ETH_ALEN); + _rtw_memcpy(attrib->src, sa, ETH_ALEN); + attrib->wds = 1; + + rtw_list_insert_tail(&frame->list, f_list); + } + +exit: + return; +} +#endif /* CONFIG_RTW_WDS */ + +int rtw_ap_addr_resolve(_adapter *adapter, u16 os_qid, struct xmit_frame *xframe, _pkt *pkt, _list *f_list) +{ + struct pkt_file pktfile; + struct ethhdr etherhdr; + struct pkt_attrib *attrib; + struct rtw_mesh_path *mpath = NULL, *mppath = NULL; + u8 is_da_mcast; + u8 addr4_need; + int res = _SUCCESS; + + _rtw_open_pktfile(pkt, &pktfile); + if (_rtw_pktfile_read(&pktfile, (u8 *)ðerhdr, ETH_HLEN) != ETH_HLEN) { + res = _FAIL; + goto exit; + } + + xframe->pkt = pkt; +#if defined(CONFIG_RTW_WDS) || CONFIG_RTW_AP_DATA_BMC_TO_UC + _rtw_init_listhead(f_list); +#endif + + is_da_mcast = IS_MCAST(etherhdr.h_dest); + if (is_da_mcast) { + #if CONFIG_RTW_AP_DATA_BMC_TO_UC + if (rtw_ap_src_b2u_policy_chk(adapter->b2u_flags_ap_src, etherhdr.h_dest) + && adapter->registrypriv.wifi_spec == 0 + && adapter->xmitpriv.free_xmitframe_cnt > (NR_XMITFRAME / 4) + ) { + if (rtw_ap_data_bmc_to_uc(adapter + , etherhdr.h_dest, etherhdr.h_source, NULL, os_qid, f_list) == 0 + ) { + res = RTW_ORI_NO_NEED; + goto exit; + } + } + #endif + } + + attrib = &xframe->attrib; + + _rtw_memcpy(attrib->dst, etherhdr.h_dest, ETH_ALEN); + _rtw_memcpy(attrib->src, etherhdr.h_source, ETH_ALEN); + _rtw_memcpy(attrib->ta, adapter_mac_addr(adapter), ETH_ALEN); + + if (is_da_mcast) + _rtw_memcpy(attrib->ra, attrib->dst, ETH_ALEN); + else { + res = rtw_ap_nexthop_resolve(adapter, xframe); + #ifdef CONFIG_RTW_WDS + if (res != _SUCCESS) { + /* unknown DA, flood frame to every WDS STA */ + rtw_ap_data_flood_for_unknown_da(adapter + , etherhdr.h_dest, etherhdr.h_source, NULL, os_qid, f_list); + res = RTW_ORI_NO_NEED; + } + #endif + } + +exit: + return res; +} + +int rtw_ap_rx_data_validate_hdr(_adapter *adapter, union recv_frame *rframe, struct sta_info **sta) +{ + struct sta_priv *stapriv = &adapter->stapriv; + struct rx_pkt_attrib *rattrib = &rframe->u.hdr.attrib; + u8 *whdr = get_recvframe_data(rframe); + u8 is_ra_bmc = 0; + sint ret = _FAIL; + + if (!(MLME_STATE(adapter) & WIFI_ASOC_STATE)) + goto exit; + + switch (rattrib->to_fr_ds) { + case 1: + if (IS_MCAST(GetAddr1Ptr(whdr))) + goto exit; + _rtw_memcpy(rattrib->ra, GetAddr1Ptr(whdr), ETH_ALEN); + _rtw_memcpy(rattrib->ta, get_addr2_ptr(whdr), ETH_ALEN); + _rtw_memcpy(rattrib->dst, GetAddr3Ptr(whdr), ETH_ALEN); /* may change after checking AMSDU subframe header */ + _rtw_memcpy(rattrib->src, get_addr2_ptr(whdr), ETH_ALEN); + _rtw_memcpy(rattrib->bssid, GetAddr1Ptr(whdr), ETH_ALEN); + break; + case 3: + is_ra_bmc = IS_MCAST(GetAddr1Ptr(whdr)) ? 1 : 0; + _rtw_memcpy(rattrib->ra, GetAddr1Ptr(whdr), ETH_ALEN); + _rtw_memcpy(rattrib->ta, get_addr2_ptr(whdr), ETH_ALEN); + _rtw_memcpy(rattrib->dst, GetAddr3Ptr(whdr), ETH_ALEN); /* may change after checking AMSDU subframe header */ + _rtw_memcpy(rattrib->src, GetAddr4Ptr(whdr), ETH_ALEN); /* may change after checking AMSDU subframe header */ + if (!is_ra_bmc) + _rtw_memcpy(rattrib->bssid, GetAddr1Ptr(whdr), ETH_ALEN); + break; + default: + ret = RTW_RX_HANDLED; /* don't count for drop */ + goto exit; + } + + *sta = rtw_get_stainfo(stapriv, rattrib->ta); + if (*sta == NULL) { + if (!is_ra_bmc && !IS_RADAR_DETECTED(adapter_to_rfctl(adapter))) { + #ifndef CONFIG_CUSTOMER_ALIBABA_GENERAL + RTW_INFO(FUNC_ADPT_FMT" issue_deauth to "MAC_FMT" with reason(7), unknown TA\n" + , FUNC_ADPT_ARG(adapter), MAC_ARG(rattrib->ta)); + issue_deauth(adapter, rattrib->ta, WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA); + #endif + } + ret = RTW_RX_HANDLED; + goto exit; + } + +#ifdef CONFIG_RTW_WDS_AUTO_EN + if (rattrib->to_fr_ds == 3 && !(sta->flags & WLAN_STA_WDS)) + sta->flags |= WLAN_STA_WDS; +#endif + + process_pwrbit_data(adapter, rframe, *sta); + + if ((get_frame_sub_type(whdr) & WIFI_QOS_DATA_TYPE) == WIFI_QOS_DATA_TYPE) + process_wmmps_data(adapter, rframe, *sta); + + if (get_frame_sub_type(whdr) & BIT(6)) { + /* No data, will not indicate to upper layer, temporily count it here */ + count_rx_stats(adapter, rframe, *sta); + ret = RTW_RX_HANDLED; + goto exit; + } + + ret = _SUCCESS; + +exit: + return ret; +} + +int rtw_ap_rx_msdu_act_check(union recv_frame *rframe + , const u8 *da, const u8 *sa + , u8 *msdu, enum rtw_rx_llc_hdl llc_hdl + , struct xmit_frame **fwd_frame, _list *f_list) +{ + _adapter *adapter = rframe->u.hdr.adapter; + struct rx_pkt_attrib *rattrib = &rframe->u.hdr.attrib; + struct rtw_wds_path *wpath; + u8 is_da_bmc = IS_MCAST(da); + u8 is_da_self = !is_da_bmc && _rtw_memcmp(da, adapter_mac_addr(adapter), ETH_ALEN); + u8 is_da_peer = 0; + int in_wds_tbl = 0; + u16 os_qid; + struct xmit_frame *xframe; + struct pkt_attrib *xattrib; + u8 fwd_ra[ETH_ALEN] = {0}; + int act = 0; + +#ifdef CONFIG_RTW_WDS + /* update/create wds info for SA, RA */ + if (adapter_use_wds(adapter) + && (rframe->u.hdr.psta->state & WIFI_ASOC_STATE) + && _rtw_memcmp(sa, rframe->u.hdr.psta->cmn.mac_addr, ETH_ALEN) == _FALSE + ) { + rtw_rcu_read_lock(); + wpath = rtw_wds_path_lookup(adapter, sa); + if (!wpath) + rtw_wds_path_add(adapter, sa, rframe->u.hdr.psta); + else { + rtw_wds_path_assign_nexthop(wpath, rframe->u.hdr.psta); + wpath->last_update = rtw_get_current_time(); + } + rtw_rcu_read_unlock(); + } +#endif + + /* SA is self, need no further process */ + if (_rtw_memcmp(sa, adapter_mac_addr(adapter), ETH_ALEN) == _TRUE) + goto exit; + + if (is_da_bmc) { + /* DA is bmc addr */ + act |= RTW_RX_MSDU_ACT_INDICATE; + if (adapter->mlmepriv.ap_isolate) + goto exit; + goto fwd_chk; + + } + + if (is_da_self) { + /* DA is self, indicate */ + act |= RTW_RX_MSDU_ACT_INDICATE; + goto exit; + } + + /* DA is not self */ +#ifdef CONFIG_RTW_WDS + if (adapter_use_wds(adapter)) + in_wds_tbl = rtw_wds_nexthop_lookup(adapter, da, fwd_ra) == 0; +#endif + if (!in_wds_tbl) + is_da_peer = rtw_get_stainfo(&adapter->stapriv, da) ? 1 : 0; + + if (in_wds_tbl || is_da_peer) { + /* DA is known (peer or can be forwarded by peer) */ + if (adapter->mlmepriv.ap_isolate) { + #if defined(DBG_RX_DROP_FRAME) + RTW_INFO("DBG_RX_DROP_FRAME "FUNC_ADPT_FMT" DA("MAC_FMT") through peer, ap_isolate\n" + , FUNC_ADPT_ARG(adapter), MAC_ARG(da)); + #endif + goto exit; + } + goto fwd_chk; + } + + /* DA is unknown*/ + act |= RTW_RX_MSDU_ACT_INDICATE; + if (adapter->mlmepriv.ap_isolate) { + /* + * unknown DA and ap_isolate, indicate only + * (bridge will not forward packets to originating port) + */ + goto exit; + } + +fwd_chk: + + if (adapter->stapriv.asoc_list_cnt <= 1) + goto exit; + + os_qid = rtw_os_recv_select_queue(msdu, llc_hdl); + +#if defined(CONFIG_RTW_WDS) || CONFIG_RTW_AP_DATA_BMC_TO_UC + _rtw_init_listhead(f_list); +#endif + +#if CONFIG_RTW_AP_DATA_BMC_TO_UC + if (is_da_bmc) { + if (rtw_ap_fwd_b2u_policy_chk(adapter->b2u_flags_ap_fwd, da, rattrib->to_fr_ds == 3 && !IS_MCAST(rattrib->ra)) + && adapter->registrypriv.wifi_spec == 0 + && adapter->xmitpriv.free_xmitframe_cnt > (NR_XMITFRAME / 4) + ) { + if (rtw_ap_data_bmc_to_uc(adapter + , da, sa, rframe->u.hdr.psta->cmn.mac_addr + , os_qid, f_list) == 0 + ) { + if (!rtw_is_list_empty(f_list)) + goto set_act_fwd; + else + goto exit; + } + } + } else +#endif +#ifdef CONFIG_RTW_WDS + if (adapter_use_wds(adapter) && !in_wds_tbl && !is_da_peer) { + /* unknown DA, flood frame to every WDS STA except receiving one */ + rtw_ap_data_flood_for_unknown_da(adapter + , da, sa, rframe->u.hdr.psta->cmn.mac_addr + , os_qid, f_list); + if (!rtw_is_list_empty(f_list)) + goto set_act_fwd; + else + goto exit; + } else +#endif + ; + + xframe = rtw_alloc_xmitframe(&adapter->xmitpriv, os_qid); + if (!xframe) { + #ifdef DBG_TX_DROP_FRAME + RTW_INFO("DBG_TX_DROP_FRAME "FUNC_ADPT_FMT" rtw_alloc_xmitframe fail\n" + , FUNC_ADPT_ARG(adapter)); + #endif + goto exit; + } + + xattrib = &xframe->attrib; + + _rtw_memcpy(xattrib->dst, da, ETH_ALEN); + _rtw_memcpy(xattrib->src, sa, ETH_ALEN); + _rtw_memcpy(xattrib->ta, adapter_mac_addr(adapter), ETH_ALEN); + + #ifdef CONFIG_RTW_WDS + if (in_wds_tbl && _rtw_memcmp(da, fwd_ra, ETH_ALEN) == _FALSE) { + _rtw_memcpy(xattrib->ra, fwd_ra, ETH_ALEN); + xattrib->wds = 1; + } else + #endif + _rtw_memcpy(xattrib->ra, da, ETH_ALEN); + + *fwd_frame = xframe; + +#if defined(CONFIG_RTW_WDS) || CONFIG_RTW_AP_DATA_BMC_TO_UC +set_act_fwd: +#endif + act |= RTW_RX_MSDU_ACT_FORWARD; + +exit: + return act; +} + #ifdef CONFIG_RTW_TOKEN_BASED_XMIT void rtw_issue_action_token_req(_adapter *padapter, struct sta_info *pstat) { diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_beamforming.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_beamforming.c index 6e613ec0..7bafe3d4 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_beamforming.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_beamforming.c @@ -94,11 +94,13 @@ static void _get_sta_beamform_cap(PADAPTER adapter, struct sta_info *sta, u8 *sta_bf_cap, u8 *sounding_dim, u8 *comp_steering) { struct beamforming_info *info; + struct mlme_priv *mlme; struct ht_priv *ht; + u16 ht_bf_cap; #ifdef CONFIG_80211AC_VHT struct vht_priv *vht; + u16 vht_bf_cap; #endif /* CONFIG_80211AC_VHT */ - u16 bf_cap; *sta_bf_cap = 0; @@ -110,56 +112,123 @@ static void _get_sta_beamform_cap(PADAPTER adapter, struct sta_info *sta, #ifdef CONFIG_80211AC_VHT vht = &adapter->mlmepriv.vhtpriv; #endif /* CONFIG_80211AC_VHT */ + mlme = &adapter->mlmepriv; - if (is_supported_ht(sta->wireless_mode) == _TRUE) { - /* HT */ - bf_cap = ht->beamform_cap; + if (is_supported_ht(sta->wireless_mode) == _FALSE) + goto get_bfcap_next; - if (TEST_FLAG(bf_cap, BEAMFORMING_HT_BEAMFORMEE_ENABLE)) { - info->beamforming_cap |= BEAMFORMEE_CAP_HT_EXPLICIT; - *sta_bf_cap |= BEAMFORMER_CAP_HT_EXPLICIT; - *sounding_dim = (bf_cap & BEAMFORMING_HT_BEAMFORMEE_CHNL_EST_CAP) >> 6; - } - if (TEST_FLAG(bf_cap, BEAMFORMING_HT_BEAMFORMER_ENABLE)) { + /* HT */ + if (check_fwstate(mlme, WIFI_AP_STATE)) { + /* Get peer clinet's BF cap: the cap. is intersected with associated AP.*/ + ht_bf_cap = sta->htpriv.beamform_cap; + RTW_INFO("At AP state, peer sta's ht_bf_cap=0x%x\n", ht_bf_cap); + + if (TEST_FLAG(ht_bf_cap, BEAMFORMING_HT_BEAMFORMEE_ENABLE)) { info->beamforming_cap |= BEAMFORMER_CAP_HT_EXPLICIT; *sta_bf_cap |= BEAMFORMEE_CAP_HT_EXPLICIT; - *comp_steering = (bf_cap & BEAMFORMING_HT_BEAMFORMER_STEER_NUM) >> 4; + *comp_steering = (ht_bf_cap & BEAMFORMING_HT_BEAMFORMER_STEER_NUM) >> 4; + RTW_INFO("%s: we support BEAMFORMER_CAP_HT_EXPLICIT\n", __func__); + } + if (TEST_FLAG(ht_bf_cap, BEAMFORMING_HT_BEAMFORMER_ENABLE)) { + info->beamforming_cap |= BEAMFORMEE_CAP_HT_EXPLICIT; + *sta_bf_cap |= BEAMFORMER_CAP_HT_EXPLICIT; + *sounding_dim = (ht_bf_cap & BEAMFORMING_HT_BEAMFORMEE_CHNL_EST_CAP) >> 6; + RTW_INFO("%s: we support BEAMFORMEE_CAP_HT_EXPLICIT\n", __func__); + } + } else { + /* Get adapter's BF Cap: the cap. is intersected with associated AP.*/ + ht_bf_cap = ht->beamform_cap; + RTW_INFO("At non-AP state, adapter's ht_bf_cap=0x%x\n", ht_bf_cap); + + if (TEST_FLAG(ht_bf_cap, BEAMFORMING_HT_BEAMFORMEE_ENABLE)) { + info->beamforming_cap |= BEAMFORMEE_CAP_HT_EXPLICIT; + *sta_bf_cap |= BEAMFORMER_CAP_HT_EXPLICIT; + *sounding_dim = (ht_bf_cap & BEAMFORMING_HT_BEAMFORMEE_CHNL_EST_CAP) >> 6; + RTW_INFO("%s: we support BEAMFORMEE_CAP_HT_EXPLICIT\n", __func__); + } + if (TEST_FLAG(ht_bf_cap, BEAMFORMING_HT_BEAMFORMER_ENABLE)) { + info->beamforming_cap |= BEAMFORMER_CAP_HT_EXPLICIT; + *sta_bf_cap |= BEAMFORMEE_CAP_HT_EXPLICIT; + *comp_steering = (ht_bf_cap & BEAMFORMING_HT_BEAMFORMER_STEER_NUM) >> 4; + RTW_INFO("%s: we support BEAMFORMER_CAP_HT_EXPLICIT\n", __func__); } } +get_bfcap_next: #ifdef CONFIG_80211AC_VHT - if (is_supported_vht(sta->wireless_mode) == _TRUE) { - /* VHT */ - bf_cap = vht->beamform_cap; + if (is_supported_vht(sta->wireless_mode) == _FALSE) + return; - /* We are SU Beamformee because the STA is SU Beamformer */ - if (TEST_FLAG(bf_cap, BEAMFORMING_VHT_BEAMFORMEE_ENABLE)) { - info->beamforming_cap |= BEAMFORMEE_CAP_VHT_SU; - *sta_bf_cap |= BEAMFORMER_CAP_VHT_SU; + /* VHT */ + if (check_fwstate(mlme, WIFI_AP_STATE)) { + /* Get peer clinet's BF cap: the cap. is intersected with associated AP.*/ + vht_bf_cap = sta->vhtpriv.beamform_cap; + RTW_INFO("At AP state, peer sta's vht_bf_cap=0x%x\n", vht_bf_cap); - /* We are MU Beamformee because the STA is MU Beamformer */ - if (TEST_FLAG(bf_cap, BEAMFORMING_VHT_MU_MIMO_STA_ENABLE)) { - info->beamforming_cap |= BEAMFORMEE_CAP_VHT_MU; - *sta_bf_cap |= BEAMFORMER_CAP_VHT_MU; - } - - *sounding_dim = (bf_cap & BEAMFORMING_VHT_BEAMFORMEE_SOUND_DIM) >> 12; - } /* We are SU Beamformer because the STA is SU Beamformee */ - if (TEST_FLAG(bf_cap, BEAMFORMING_VHT_BEAMFORMER_ENABLE)) { + if (TEST_FLAG(vht_bf_cap, BEAMFORMING_VHT_BEAMFORMEE_ENABLE)) { info->beamforming_cap |= BEAMFORMER_CAP_VHT_SU; *sta_bf_cap |= BEAMFORMEE_CAP_VHT_SU; + RTW_INFO("%s: we support BEAMFORMER_CAP_VHT_SU\n", __func__); /* We are MU Beamformer because the STA is MU Beamformee */ - if (TEST_FLAG(bf_cap, BEAMFORMING_VHT_MU_MIMO_AP_ENABLE)) { + if (TEST_FLAG(vht_bf_cap, BEAMFORMING_VHT_MU_MIMO_STA_ENABLE)) { info->beamforming_cap |= BEAMFORMER_CAP_VHT_MU; *sta_bf_cap |= BEAMFORMEE_CAP_VHT_MU; + RTW_INFO("%s: we support BEAMFORMER_CAP_VHT_MU\n", __func__); } - *comp_steering = (bf_cap & BEAMFORMING_VHT_BEAMFORMER_STS_CAP) >> 8; + *comp_steering = (vht_bf_cap & BEAMFORMING_VHT_BEAMFORMER_STS_CAP) >> 8; + } + /* We are SU Beamformee because the STA is SU Beamformer */ + if (TEST_FLAG(vht_bf_cap, BEAMFORMING_VHT_BEAMFORMER_ENABLE)) { + info->beamforming_cap |= BEAMFORMEE_CAP_VHT_SU; + *sta_bf_cap |= BEAMFORMER_CAP_VHT_SU; + RTW_INFO("%s: we support BEAMFORMEE_CAP_VHT_SU\n", __func__); + + /* The STA is MU Beamformer, but we(AP) should not be MU Beamformee */ + if (TEST_FLAG(vht_bf_cap, BEAMFORMING_VHT_MU_MIMO_AP_ENABLE)) { + RTW_WARN("%s: Associated STA should not be a MU BFer.\n", __func__); + } + + *sounding_dim = (vht_bf_cap & BEAMFORMING_VHT_BEAMFORMEE_SOUND_DIM) >> 12; + } + } else { + /* Get adapter's BF Cap: the cap. is intersected with associated AP.*/ + vht_bf_cap = vht->beamform_cap; + RTW_INFO("At non-AP state, adapter's vht_bf_cap=0x%x\n", vht_bf_cap); + + /* We are SU Beamformee */ + if (TEST_FLAG(vht_bf_cap, BEAMFORMING_VHT_BEAMFORMEE_ENABLE)) { + info->beamforming_cap |= BEAMFORMEE_CAP_VHT_SU; + *sta_bf_cap |= BEAMFORMER_CAP_VHT_SU; + RTW_INFO("%s: we support BEAMFORMEE_CAP_VHT_SU\n", __func__); + + /* We are MU Beamformee */ + if (TEST_FLAG(vht_bf_cap, BEAMFORMING_VHT_MU_MIMO_STA_ENABLE)) { + info->beamforming_cap |= BEAMFORMEE_CAP_VHT_MU; + *sta_bf_cap |= BEAMFORMER_CAP_VHT_MU; + RTW_INFO("%s: we support BEAMFORMEE_CAP_VHT_MU\n", __func__); + } + + *sounding_dim = (vht_bf_cap & BEAMFORMING_VHT_BEAMFORMEE_SOUND_DIM) >> 12; + } + /* We are SU Beamformer */ + if (TEST_FLAG(vht_bf_cap, BEAMFORMING_VHT_BEAMFORMER_ENABLE)) { + info->beamforming_cap |= BEAMFORMER_CAP_VHT_SU; + *sta_bf_cap |= BEAMFORMEE_CAP_VHT_SU; + RTW_INFO("%s: we support BEAMFORMER_CAP_VHT_SU\n", __func__); + + /* We are MU Beamformer, but client should not be a MU Beamformer */ + if (TEST_FLAG(vht_bf_cap, BEAMFORMING_VHT_MU_MIMO_AP_ENABLE)) { + RTW_WARN("%s: non-AP state should not support MU BFer.\n", __func__); + } + + *comp_steering = (vht_bf_cap & BEAMFORMING_VHT_BEAMFORMER_STS_CAP) >> 8; } } #endif /* CONFIG_80211AC_VHT */ + } static u8 _send_ht_ndpa_packet(PADAPTER adapter, u8 *ra, enum channel_width bw) @@ -1386,6 +1455,10 @@ static void _beamforming_enter(PADAPTER adapter, void *p) __FUNCTION__, MAC_ARG(sta_copy->cmn.mac_addr)); return; } + + RTW_INFO("%s: find STA info for " MAC_FMT "\n", + __FUNCTION__, MAC_ARG(sta_copy->cmn.mac_addr)); + if (sta != sta_copy) { RTW_WARN("%s: Origin sta(fake)=%p realsta=%p for " MAC_FMT "\n", __FUNCTION__, sta_copy, sta, MAC_ARG(sta_copy->cmn.mac_addr)); diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_btcoex.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_btcoex.c index 63dcc23a..c11e79f6 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_btcoex.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_btcoex.c @@ -19,9 +19,7 @@ void rtw_btcoex_Initialize(PADAPTER padapter) { - RTW_INFO(" ====> %s\n", __func__); hal_btcoex_Initialize(padapter); - RTW_INFO(" %s <====\n", __func__); } void rtw_btcoex_PowerOnSetting(PADAPTER padapter) @@ -78,6 +76,7 @@ void rtw_btcoex_ScanNotify(PADAPTER padapter, u8 type) struct bt_coex_info *pcoex_info = &padapter->coex_info; PBT_MGNT pBtMgnt = &pcoex_info->BtMgnt; #endif /* CONFIG_BT_COEXIST_SOCKET_TRX */ + u8 scan_type = type; pHalData = GET_HAL_DATA(padapter); if (_FALSE == pHalData->EEPROMBluetoothCoexist) @@ -92,14 +91,19 @@ void rtw_btcoex_ScanNotify(PADAPTER padapter, u8 type) if (DEV_MGMT_TX_NUM(adapter_to_dvobj(padapter)) || DEV_ROCH_NUM(adapter_to_dvobj(padapter))) return; + } else { + if (pHalData->current_band_type == BAND_ON_2_4G) + scan_type = 2; /* BTC_SCAN_START_2G */ + else + scan_type = 3; /* BTC_SCAN_START_5G */ } #ifdef CONFIG_BT_COEXIST_SOCKET_TRX if (pBtMgnt->ExtConfig.bEnableWifiScanNotify) - rtw_btcoex_SendScanNotify(padapter, type); + rtw_btcoex_SendScanNotify(padapter, scan_type); #endif /* CONFIG_BT_COEXIST_SOCKET_TRX */ - hal_btcoex_ScanNotify(padapter, type); + hal_btcoex_ScanNotify(padapter, scan_type); } static void _rtw_btcoex_connect_notify(PADAPTER padapter, u8 action) @@ -180,6 +184,17 @@ void rtw_btcoex_IQKNotify(PADAPTER padapter, u8 state) hal_btcoex_IQKNotify(padapter, state); } +void rtw_btcoex_WLRFKNotify(PADAPTER padapter, u8 path, u8 type, u8 state) +{ + PHAL_DATA_TYPE pHalData; + + pHalData = GET_HAL_DATA(padapter); + if (_FALSE == pHalData->EEPROMBluetoothCoexist) + return; + + hal_btcoex_WLRFKNotify(padapter, path, type, state); +} + void rtw_btcoex_BtInfoNotify(PADAPTER padapter, u8 length, u8 *tmpBuf) { PHAL_DATA_TYPE pHalData; diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_chplan.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_chplan.c index 1b48aa41..a6b5c397 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_chplan.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_chplan.c @@ -16,41 +16,54 @@ #include -#define RTW_DOMAIN_MAP_VER "43e" -#define RTW_COUNTRY_MAP_VER "25" +#define RTW_DOMAIN_MAP_VER "57" +#define RTW_DOMAIN_MAP_M_VER "h" +#define RTW_COUNTRY_MAP_VER "31" -#define RTW_RD_2G_MAX 13 -#define RTW_RD_5G_MAX 73 +#define RTW_CHD_2G_MAX 13 +#define RTW_CHD_5G_MAX 73 +#define RTW_CHPLAN_HEXFILE_MAX 128 struct ch_list_t { - u8 *len_ch; + u8 *len_ch_attr; }; +#define CLA_2G_12_14_PASSIVE BIT0 + +#define CLA_5G_B1_PASSIVE BIT0 +#define CLA_5G_B2_PASSIVE BIT1 +#define CLA_5G_B3_PASSIVE BIT2 +#define CLA_5G_B4_PASSIVE BIT3 +#define CLA_5G_B2_DFS BIT4 +#define CLA_5G_B3_DFS BIT5 +#define CLA_5G_B4_DFS BIT6 + +#define CLA_6G_B1_PASSIVE BIT0 +#define CLA_6G_B2_PASSIVE BIT1 +#define CLA_6G_B3_PASSIVE BIT2 +#define CLA_6G_B4_PASSIVE BIT3 + #define CH_LIST_ENT(_len, arg...) \ - {.len_ch = (u8[_len + 1]) {_len, ##arg}, } + {.len_ch_attr = (u8[_len + 2]) {_len, ##arg}, } -#define CH_LIST_LEN(_ch_list) (_ch_list.len_ch[0]) -#define CH_LIST_CH(_ch_list, _i) (_ch_list.len_ch[_i + 1]) +#define CH_LIST_LEN(_ch_list) (_ch_list.len_ch_attr[0]) +#define CH_LIST_CH(_ch_list, _i) (_ch_list.len_ch_attr[_i + 1]) +#define CH_LIST_ATTRIB(_ch_list) (_ch_list.len_ch_attr[CH_LIST_LEN(_ch_list) + 1]) struct chplan_ent_t { - u8 rd_2g; + u8 regd_2g; /* value of enum rtw_regd */ + u8 chd_2g; #if CONFIG_IEEE80211_BAND_5GHZ - u8 rd_5g; + u8 regd_5g; /* value of enum rtw_regd */ + u8 chd_5g; #endif - u8 regd; /* value of REGULATION_TXPWR_LMT */ }; -#if CONFIG_IEEE80211_BAND_5GHZ -#define CHPLAN_ENT(i2g, i5g, regd) {i2g, i5g, regd} -#else -#define CHPLAN_ENT(i2g, i5g, regd) {i2g, regd} -#endif - static u8 rtw_hex_setting_buf[RTW_HEXFILE_LEN]; -static struct ch_list_t RTW_ChannelPlan2G[RTW_RD_2G_MAX]; +static struct ch_list_t rtw_channel_def_2g[RTW_CHD_2G_MAX]; #ifdef CONFIG_IEEE80211_BAND_5GHZ -static struct ch_list_t RTW_ChannelPlan5G[RTW_RD_5G_MAX]; +static struct ch_list_t rtw_channel_def_5g[RTW_CHD_5G_MAX]; #endif /* CONFIG_IEEE80211_BAND_5GHZ */ static struct chplan_ent_t RTW_ChannelPlanMap[RTW_CHPLAN_HEXFILE_MAX]; @@ -82,23 +95,31 @@ int rtw_get_channel_plan_from_file(const char *path) i += 5; while (i < len) { if (j < sec_1) { - RTW_ChannelPlan2G[j].len_ch = rtw_hex_setting_buf + i; - i += (rtw_hex_setting_buf[i] + 1); + rtw_channel_def_2g[j].len_ch_attr = rtw_hex_setting_buf + i; + if (rtw_hex_setting_buf[i]) + i += (rtw_hex_setting_buf[i] + 2); + else + i += (rtw_hex_setting_buf[i] + 1); } else if (j >= sec_1 && j < sec_2) { idx = j - sec_1; - RTW_ChannelPlan5G[idx].len_ch = rtw_hex_setting_buf + i; - i += (rtw_hex_setting_buf[i] + 1); + rtw_channel_def_5g[idx].len_ch_attr = rtw_hex_setting_buf + i; + if (rtw_hex_setting_buf[i]) + i += (rtw_hex_setting_buf[i] + 2); + else + i += (rtw_hex_setting_buf[i] + 1); } else if (j >= sec_2 && j < sec_3) { if (i + 2 >= len) return -1; idx = j - sec_2; - RTW_ChannelPlanMap[idx].rd_2g = + RTW_ChannelPlanMap[idx].chd_2g = *(rtw_hex_setting_buf + i); - RTW_ChannelPlanMap[idx].rd_5g = + RTW_ChannelPlanMap[idx].chd_5g = *(rtw_hex_setting_buf + i + 1); - RTW_ChannelPlanMap[idx].regd = + RTW_ChannelPlanMap[idx].regd_2g = *(rtw_hex_setting_buf + i + 2); - i += 3; + RTW_ChannelPlanMap[idx].regd_5g = + *(rtw_hex_setting_buf + i + 3); + i += 4; } else { break; } @@ -106,28 +127,38 @@ int rtw_get_channel_plan_from_file(const char *path) } return 0; } - -u8 rtw_chplan_get_default_regd(u8 id) + +const int RTW_ChannelPlanMap_size = sizeof(RTW_ChannelPlanMap) / sizeof(RTW_ChannelPlanMap[0]); + +u8 rtw_chplan_get_default_regd_2g(u8 id) { - u8 regd; - - regd = RTW_ChannelPlanMap[id].regd; - - return regd; + if (id < RTW_ChannelPlanMap_size) + return RTW_ChannelPlanMap[id].regd_2g; + return RTW_REGD_NA; } -bool rtw_chplan_is_empty(u8 id) +u8 rtw_chplan_get_default_regd_5g(u8 id) { - struct chplan_ent_t *chplan_map; +#if CONFIG_IEEE80211_BAND_5GHZ + if (id < RTW_ChannelPlanMap_size) + return RTW_ChannelPlanMap[id].regd_5g; +#endif + return RTW_REGD_NA; +} - chplan_map = &RTW_ChannelPlanMap[id]; +bool rtw_is_channel_plan_valid(u8 id) +{ + if (id < RTW_ChannelPlanMap_size) { + const struct chplan_ent_t *chplan_map = &RTW_ChannelPlanMap[id]; - if (chplan_map->rd_2g == 8 - #if CONFIG_IEEE80211_BAND_5GHZ - && chplan_map->rd_5g == 0 - #endif - ) - return _TRUE; + /* check that chplan is not empty */ + if (chplan_map->chd_2g != 8 + #if CONFIG_IEEE80211_BAND_5GHZ + && chplan_map->chd_5g != 0 + #endif + ) + return _TRUE; + } return _FALSE; } @@ -136,7 +167,7 @@ bool rtw_regsty_is_excl_chs(struct registry_priv *regsty, u8 ch) { int i; - for (i = 0; i < MAX_CHANNEL_NUM; i++) { + for (i = 0; i < MAX_CHANNEL_NUM_2G_5G; i++) { if (regsty->excl_chs[i] == 0) break; if (regsty->excl_chs[i] == ch) @@ -145,85 +176,276 @@ bool rtw_regsty_is_excl_chs(struct registry_priv *regsty, u8 ch) return _FALSE; } -inline static u8 rtw_rd_5g_band1_passive(u8 rtw_rd_5g) +/* + * Search the @param ch in chplan by given @param id + * @id: the given channel plan id + * @ch: the given channel number + * + * return the index of channel_num in channel_set, -1 if not found + */ +static bool rtw_chplan_get_ch(u8 id, const u32 ch, u8 *flags) { - u8 passive = 0; + u8 index, chan, attrib; - switch (rtw_rd_5g) { - case 41: - case 44: - case 45: - case 46: - case 52: - case 55: - case 59: - case 60: - case 63: - case 64: - case 65: - case 66: - case 67: - passive = 1; - }; + if (flags) + *flags = 0; - return passive; +#if CONFIG_IEEE80211_BAND_5GHZ + if (ch > 14) { + u8 chd_5g = RTW_ChannelPlanMap[id].chd_5g; + + attrib = CH_LIST_ATTRIB(rtw_channel_def_5g[chd_5g]); + + for (index = 0; index < CH_LIST_LEN(rtw_channel_def_5g[chd_5g]); index++) { + if (CH_LIST_CH(rtw_channel_def_5g[chd_5g], index) == ch) { + if (flags) { + if ((rtw_is_5g_band1(ch) && (attrib & CLA_5G_B1_PASSIVE)) /* band1 passive */ + || (rtw_is_5g_band2(ch) && (attrib & CLA_5G_B2_PASSIVE)) /* band2 passive */ + || (rtw_is_5g_band3(ch) && (attrib & CLA_5G_B3_PASSIVE)) /* band3 passive */ + || (rtw_is_5g_band4(ch) && (attrib & CLA_5G_B4_PASSIVE)) /* band4 passive */ + ) + *flags |= RTW_CHF_NO_IR; + + if ((rtw_is_5g_band2(ch) && (attrib & CLA_5G_B2_DFS)) + || (rtw_is_5g_band3(ch) && (attrib & CLA_5G_B3_DFS)) + || (rtw_is_5g_band4(ch) && (attrib & CLA_5G_B4_DFS))) + *flags |= RTW_CHF_DFS; + } + return 1; + } + } + } else +#endif /* CONFIG_IEEE80211_BAND_5GHZ */ + { + u8 chd_2g = RTW_ChannelPlanMap[id].chd_2g; + + attrib = CH_LIST_ATTRIB(rtw_channel_def_2g[chd_2g]); + + for (index = 0; index < CH_LIST_LEN(rtw_channel_def_2g[chd_2g]); index++) { + if (CH_LIST_CH(rtw_channel_def_2g[chd_2g], index) == ch) { + if (flags) { + if (ch >= 12 && ch <= 14 && (attrib & CLA_2G_12_14_PASSIVE)) + *flags |= RTW_CHF_NO_IR; + } + return 1; + } + } + } + + return 0; } -inline static u8 rtw_rd_5g_band4_passive(u8 rtw_rd_5g) +#if CONFIG_IEEE80211_BAND_6GHZ +enum rtw_chd_6g { + RTW_CHD_6G_INVALID = 0, + + RTW_CHD_6G_00, + RTW_CHD_6G_01, + RTW_CHD_6G_02, + RTW_CHD_6G_03, + RTW_CHD_6G_04, + RTW_CHD_6G_05, /* 6G Worldwide */ + + RTW_CHD_6G_MAX, + RTW_CHD_6G_NULL = RTW_CHD_6G_00, +}; + +static const struct ch_list_t rtw_channel_def_6g[] = { + /* RTW_CHD_6G_INVALID */ CH_LIST_ENT(0, 0), + /* RTW_CHD_6G_00 */ CH_LIST_ENT(0, 0), + /* RTW_CHD_6G_01 */ CH_LIST_ENT(24, 1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 61, 65, 69, 73, 77, 81, 85, 89, 93, 0), + /* RTW_CHD_6G_02 */ CH_LIST_ENT(6, 97, 101, 105, 109, 113, 117, 0), + /* RTW_CHD_6G_03 */ CH_LIST_ENT(18, 121, 125, 129, 133, 137, 141, 145, 149, 153, 157, 161, 165, 169, 173, 177, 181, 185, 189, 0), + /* RTW_CHD_6G_04 */ CH_LIST_ENT(11, 193, 197, 201, 205, 209, 213, 217, 221, 225, 229, 233, 0), + /* RTW_CHD_6G_05 */ CH_LIST_ENT(59, 1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 61, 65, 69, 73, 77, 81, 85, 89, 93, 97, 101, 105, 109, 113, 117, 121, 125, 129, 133, 137, 141, 145, 149, 153, 157, 161, 165, 169, 173, 177, 181, 185, 189, 193, 197, 201, 205, 209, 213, 217, 221, 225, 229, 233, CLA_6G_B1_PASSIVE | CLA_6G_B2_PASSIVE | CLA_6G_B3_PASSIVE | CLA_6G_B4_PASSIVE), +}; + +struct chplan_6g_ent_t { + u8 regd; /* value of enum rtw_regd */ + u8 chd; +}; + +#define CHPLAN_6G_ENT(_regd, _chd) {.regd = RTW_REGD_##_regd, .chd = RTW_CHD_6G_##_chd} + +#define CHPLAN_6G_ENT_NOT_DEFINED CHPLAN_6G_ENT(NA, INVALID) + +static const struct chplan_6g_ent_t rtw_chplan_6g_map[] = { + [0x00] = CHPLAN_6G_ENT(NA , 00), + [0x01] = CHPLAN_6G_ENT(FCC , 01), + [0x02] = CHPLAN_6G_ENT(FCC , 02), + [0x03] = CHPLAN_6G_ENT(FCC , 03), + [0x04] = CHPLAN_6G_ENT(FCC , 04), + [0x7F] = CHPLAN_6G_ENT(WW , 05), +}; + +const int rtw_chplan_6g_map_size = sizeof(rtw_chplan_6g_map) / sizeof(rtw_chplan_6g_map[0]); + +u8 rtw_chplan_get_default_regd_6g(u8 id) { - u8 passive = 0; - - switch (rtw_rd_5g) { - case 37: - case 38: - case 45: - case 46: - case 52: - case 61: - case 63: - case 64: - case 65: - case 66: - case 67: - passive = 1; - }; - - return passive; + if (id < rtw_chplan_6g_map_size) + return rtw_chplan_6g_map[id].regd; + return RTW_REGD_NA; } -u8 init_channel_set(_adapter *padapter, u8 ChannelPlan, RT_CHANNEL_INFO *channel_set) +bool rtw_is_channel_plan_6g_valid(u8 id) +{ + if (id < rtw_chplan_6g_map_size) { + const struct chplan_6g_ent_t *chplan_map = &rtw_chplan_6g_map[id]; + + if (chplan_map->chd != RTW_CHD_6G_INVALID) + return _TRUE; + } + + return _FALSE; +} + +bool rtw_regsty_is_excl_chs_6g(struct registry_priv *regsty, u8 ch) { - struct registry_priv *regsty = adapter_to_regsty(padapter); - u8 index, chanset_size = 0; - u8 b5GBand = _FALSE, b2_4GBand = _FALSE; - u8 rd_2g = 0, rd_5g = 0; -#ifdef CONFIG_DFS_MASTER int i; + + for (i = 0; i < MAX_CHANNEL_NUM_6G; i++) { + if (regsty->excl_chs_6g[i] == 0) + break; + if (regsty->excl_chs_6g[i] == ch) + return _TRUE; + } + return _FALSE; +} + +/* + * Search the @param ch in chplan by given @param id + * @id: the given channel plan id + * @ch: the given channel number + * + * return the index of channel_num in channel_set, -1 if not found + */ +static bool rtw_chplan_6g_get_ch(u8 id, const u32 ch, u8 *flags) +{ + u8 index, chan, attrib; + u8 chd_6g; + + if (flags) + *flags = 0; + + chd_6g = rtw_chplan_6g_map[id].chd; + + attrib = CH_LIST_ATTRIB(rtw_channel_def_6g[chd_6g]); + + for (index = 0; index < CH_LIST_LEN(rtw_channel_def_6g[chd_6g]); index++) { + if (CH_LIST_CH(rtw_channel_def_6g[chd_6g], index) == ch) { + if (flags) { + if ((rtw_is_6g_band1(ch) && (attrib & CLA_6G_B1_PASSIVE)) /* band1 passive */ + || (rtw_is_6g_band2(ch) && (attrib & CLA_6G_B2_PASSIVE)) /* band2 passive */ + || (rtw_is_6g_band3(ch) && (attrib & CLA_6G_B3_PASSIVE)) /* band3 passive */ + || (rtw_is_6g_band4(ch) && (attrib & CLA_6G_B4_PASSIVE)) /* band4 passive */ + ) + *flags |= RTW_CHF_NO_IR; + } + return 1; + } + } + + return 0; +} +#endif /* CONFIG_IEEE80211_BAND_6GHZ */ + + +/* + * Check if the @param ch, bw, offset is valid for the given @param id, id_6g + * @ch_set: the given channel set + * @ch: the given channel number + * @bw: the given bandwidth + * @offset: the given channel offset + * + * return valid (1) or not (0) + */ +u8 rtw_chplan_is_chbw_valid(u8 id, u8 id_6g, BAND_TYPE band, u8 ch, u8 bw, u8 offset + , bool allow_primary_passive, bool allow_passive, struct registry_priv *regsty) +{ + u8 cch; + u8 *op_chs; + u8 op_ch_num; + u8 op_ch; + u8 valid = 0; + int i; + int ch_idx; + u8 flags; + +#if CONFIG_IEEE80211_BAND_6GHZ + if (band == BAND_ON_6G) + goto exit; #endif - if (!rtw_is_channel_plan_valid(ChannelPlan)) { - RTW_ERR("ChannelPlan ID 0x%02X error !!!!!\n", ChannelPlan); - return chanset_size; + cch = rtw_get_center_ch(ch, bw, offset); /* TODO: 6G */ + + if (!rtw_get_op_chs_by_cch_bw(cch, bw, &op_chs, &op_ch_num)) /* TODO: 6G */ + goto exit; + + for (i = 0; i < op_ch_num; i++) { + op_ch = *(op_chs + i); + if (0) + RTW_INFO("%u,%u,%u - cch:%u, bw:%u, op_ch:%u\n", ch, bw, offset, cch, bw, op_ch); + #if CONFIG_IEEE80211_BAND_6GHZ + if (band == BAND_ON_6G) { + if (!rtw_chplan_6g_get_ch(id_6g, op_ch, &flags) + || (regsty && rtw_regsty_is_excl_chs_6g(regsty, op_ch) == _TRUE)) + break; + } else + #endif + { + if (!rtw_chplan_get_ch(id, op_ch, &flags) + || (regsty && rtw_regsty_is_excl_chs(regsty, op_ch) == _TRUE)) + break; + } + if (flags & RTW_CHF_NO_IR) { + if (!allow_passive + || (!allow_primary_passive && op_ch == ch)) + break; + } } - _rtw_memset(channel_set, 0, sizeof(RT_CHANNEL_INFO) * MAX_CHANNEL_NUM); + if (op_ch_num != 0 && i == op_ch_num) + valid = 1; - if (IsSupported24G(regsty->wireless_mode) && hal_chk_band_cap(padapter, BAND_CAP_2G)) +exit: + return valid; +} + +const char *_regd_src_str[] = { + [REGD_SRC_RTK_PRIV] = "RTK_PRIV", + [REGD_SRC_OS] = "OS", + [REGD_SRC_NUM] = "UNKNOWN", +}; + +static u8 init_channel_set_from_rtk_priv_2g_5g(_adapter *adapter, RT_CHANNEL_INFO *channel_set, u8 *ch_num) +{ + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + struct registry_priv *regsty = adapter_to_regsty(adapter); + u8 chplan = rfctl->ChannelPlan; + u8 index, chanset_size = *ch_num; + u8 b5GBand = _FALSE, b2_4GBand = _FALSE; + u8 ch, attrib; + + if (!rtw_is_channel_plan_valid(chplan)) { + RTW_ERR(FUNC_ADPT_FMT" invalid chplan:0x%02X\n", FUNC_ADPT_ARG(adapter), chplan); + goto exit; + } + RTW_INFO(FUNC_ADPT_FMT" chplan:0x%02X\n", FUNC_ADPT_ARG(adapter), chplan); + + if (IsSupported24G(regsty->wireless_mode) && hal_chk_band_cap(adapter, BAND_CAP_2G)) b2_4GBand = _TRUE; - if (is_supported_5g(regsty->wireless_mode) && hal_chk_band_cap(padapter, BAND_CAP_5G)) + if (is_supported_5g(regsty->wireless_mode) && hal_chk_band_cap(adapter, BAND_CAP_5G)) b5GBand = _TRUE; - if (b2_4GBand == _FALSE && b5GBand == _FALSE) { - RTW_WARN("HW band_cap has no intersection with SW wireless_mode setting\n"); - return chanset_size; - } - if (b2_4GBand) { - rd_2g = RTW_ChannelPlanMap[ChannelPlan].rd_2g; + u8 chd_2g = RTW_ChannelPlanMap[chplan].chd_2g; - for (index = 0; index < CH_LIST_LEN(RTW_ChannelPlan2G[rd_2g]); index++) { - if (rtw_regsty_is_excl_chs(regsty, CH_LIST_CH(RTW_ChannelPlan2G[rd_2g], index)) == _TRUE) + attrib = CH_LIST_ATTRIB(rtw_channel_def_2g[chd_2g]); + + for (index = 0; index < CH_LIST_LEN(rtw_channel_def_2g[chd_2g]); index++) { + ch = CH_LIST_CH(rtw_channel_def_2g[chd_2g], index); + if (rtw_regsty_is_excl_chs(regsty, ch) == _TRUE) continue; if (chanset_size >= MAX_CHANNEL_NUM) { @@ -231,27 +453,16 @@ u8 init_channel_set(_adapter *padapter, u8 ChannelPlan, RT_CHANNEL_INFO *channel break; } - channel_set[chanset_size].ChannelNum = CH_LIST_CH(RTW_ChannelPlan2G[rd_2g], index); + channel_set[chanset_size].band = BAND_ON_2_4G; + channel_set[chanset_size].ChannelNum = ch; - if (ChannelPlan == RTW_CHPLAN_GLOBAL_DOAMIN - || rd_2g == 5 - ) { - /* Channel 1~11 is active, and 12~14 is passive */ - if (channel_set[chanset_size].ChannelNum >= 1 && channel_set[chanset_size].ChannelNum <= 11) - channel_set[chanset_size].ScanType = SCAN_ACTIVE; - else if ((channel_set[chanset_size].ChannelNum >= 12 && channel_set[chanset_size].ChannelNum <= 14)) - channel_set[chanset_size].ScanType = SCAN_PASSIVE; - } else if (ChannelPlan == RTW_CHPLAN_WORLD_WIDE_13 - || ChannelPlan == RTW_CHPLAN_WORLD_WIDE_5G - || rd_2g == 0 - ) { - /* channel 12~13, passive scan */ - if (channel_set[chanset_size].ChannelNum <= 11) - channel_set[chanset_size].ScanType = SCAN_ACTIVE; - else - channel_set[chanset_size].ScanType = SCAN_PASSIVE; - } else - channel_set[chanset_size].ScanType = SCAN_ACTIVE; + if (ch >= 12 && ch <= 14 && (attrib & CLA_2G_12_14_PASSIVE)) + channel_set[chanset_size].flags |= RTW_CHF_NO_IR; + + if (channel_set[chanset_size].flags & RTW_CHF_NO_IR) { + if (!rtw_rfctl_reg_allow_beacon_hint(rfctl) || !rtw_chinfo_allow_beacon_hint(&channel_set[chanset_size], 0)) + RTW_INFO("band:%s ch%u is NO_IR while beacon hint not allowed\n", band_str(BAND_ON_2_4G), ch); + } chanset_size++; } @@ -259,13 +470,20 @@ u8 init_channel_set(_adapter *padapter, u8 ChannelPlan, RT_CHANNEL_INFO *channel #if CONFIG_IEEE80211_BAND_5GHZ if (b5GBand) { - rd_5g = RTW_ChannelPlanMap[ChannelPlan].rd_5g; + bool dfs; + u8 chd_5g = RTW_ChannelPlanMap[chplan].chd_5g; - for (index = 0; index < CH_LIST_LEN(RTW_ChannelPlan5G[rd_5g]); index++) { - if (rtw_regsty_is_excl_chs(regsty, CH_LIST_CH(RTW_ChannelPlan5G[rd_5g], index)) == _TRUE) + attrib = CH_LIST_ATTRIB(rtw_channel_def_5g[chd_5g]); + + for (index = 0; index < CH_LIST_LEN(rtw_channel_def_5g[chd_5g]); index++) { + ch = CH_LIST_CH(rtw_channel_def_5g[chd_5g], index); + if (rtw_regsty_is_excl_chs(regsty, ch) == _TRUE) continue; + dfs = (rtw_is_5g_band2(ch) && (attrib & CLA_5G_B2_DFS)) + || (rtw_is_5g_band3(ch) && (attrib & CLA_5G_B3_DFS)) + || (rtw_is_5g_band4(ch) && (attrib & CLA_5G_B4_DFS)); #if !CONFIG_DFS - if (rtw_is_dfs_ch(CH_LIST_CH(RTW_ChannelPlan5G[rd_5g], index))) + if (dfs) continue; #endif @@ -274,57 +492,543 @@ u8 init_channel_set(_adapter *padapter, u8 ChannelPlan, RT_CHANNEL_INFO *channel break; } - channel_set[chanset_size].ChannelNum = CH_LIST_CH(RTW_ChannelPlan5G[rd_5g], index); + channel_set[chanset_size].band = BAND_ON_5G; + channel_set[chanset_size].ChannelNum = ch; - if ((ChannelPlan == RTW_CHPLAN_WORLD_WIDE_5G) /* all channels passive */ - || (rtw_is_5g_band1(channel_set[chanset_size].ChannelNum) - && rtw_rd_5g_band1_passive(rd_5g)) /* band1 passive */ - || (rtw_is_5g_band4(channel_set[chanset_size].ChannelNum) - && rtw_rd_5g_band4_passive(rd_5g)) /* band4 passive */ - || (rtw_is_dfs_ch(channel_set[chanset_size].ChannelNum)) /* DFS channel(band2, 3) passive */ + if ((rtw_is_5g_band1(ch) && (attrib & CLA_5G_B1_PASSIVE)) /* band1 passive */ + || (rtw_is_5g_band2(ch) && (attrib & CLA_5G_B2_PASSIVE)) /* band2 passive */ + || (rtw_is_5g_band3(ch) && (attrib & CLA_5G_B3_PASSIVE)) /* band3 passive */ + || (rtw_is_5g_band4(ch) && (attrib & CLA_5G_B4_PASSIVE)) /* band4 passive */ ) - channel_set[chanset_size].ScanType = SCAN_PASSIVE; - else - channel_set[chanset_size].ScanType = SCAN_ACTIVE; + channel_set[chanset_size].flags |= RTW_CHF_NO_IR; + + if (dfs) + channel_set[chanset_size].flags |= RTW_CHF_DFS; + + if (channel_set[chanset_size].flags & RTW_CHF_NO_IR) { + if (!rtw_rfctl_reg_allow_beacon_hint(rfctl) || !rtw_chinfo_allow_beacon_hint(&channel_set[chanset_size], 0)) + RTW_INFO("band:%s ch%u is NO_IR%s while beacon hint not allowed\n", band_str(BAND_ON_5G), ch, dfs ? " DFS" : ""); + } chanset_size++; } } - - #ifdef CONFIG_DFS_MASTER - for (i = 0; i < chanset_size; i++) - channel_set[i].non_ocp_end_time = rtw_get_current_time(); - #endif #endif /* CONFIG_IEEE80211_BAND_5GHZ */ - if (chanset_size) - RTW_INFO(FUNC_ADPT_FMT" ChannelPlan ID:0x%02x, ch num:%d\n" - , FUNC_ADPT_ARG(padapter), ChannelPlan, chanset_size); - else - RTW_WARN(FUNC_ADPT_FMT" ChannelPlan ID:0x%02x, final chset has no channel\n" - , FUNC_ADPT_ARG(padapter), ChannelPlan); +exit: + *ch_num = chanset_size; return chanset_size; } -#ifdef CONFIG_80211AC_VHT -#define COUNTRY_CHPLAN_ASSIGN_EN_11AC(_val) , .en_11ac = (_val) -#else -#define COUNTRY_CHPLAN_ASSIGN_EN_11AC(_val) -#endif +#if CONFIG_IEEE80211_BAND_6GHZ +static u8 init_channel_set_from_rtk_priv_6g(_adapter *adapter, RT_CHANNEL_INFO *channel_set, u8 *ch_num) +{ + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + struct registry_priv *regsty = adapter_to_regsty(adapter); + u8 chplan_6g = rfctl->chplan_6g; + u8 index, chanset_size = *ch_num; + bool band_6g = _FALSE; + u8 chd_6g; + u8 ch, attrib; -#if RTW_DEF_MODULE_REGULATORY_CERT -#define COUNTRY_CHPLAN_ASSIGN_DEF_MODULE_FLAGS(_val) , .def_module_flags = (_val) -#else -#define COUNTRY_CHPLAN_ASSIGN_DEF_MODULE_FLAGS(_val) -#endif - -/* has def_module_flags specified, used by common map and HAL dfference map */ -#define COUNTRY_CHPLAN_ENT(_alpha2, _chplan, _en_11ac, _def_module_flags) \ - {.alpha2 = (_alpha2), .chplan = (_chplan) \ - COUNTRY_CHPLAN_ASSIGN_EN_11AC(_en_11ac) \ - COUNTRY_CHPLAN_ASSIGN_DEF_MODULE_FLAGS(_def_module_flags) \ + if (!rtw_is_channel_plan_6g_valid(chplan_6g)) { + RTW_ERR(FUNC_ADPT_FMT" invalid chplan_6g:0x%02X\n", FUNC_ADPT_ARG(adapter), chplan_6g); + goto exit; } + RTW_INFO(FUNC_ADPT_FMT" chplan_6g:0x%02X\n", FUNC_ADPT_ARG(adapter), chplan_6g); + + band_6g = _TRUE; /* TODO: SW conf & HW cap check */ + if (!band_6g) + goto exit; + + chd_6g = rtw_chplan_6g_map[chplan_6g].chd; + + attrib = CH_LIST_ATTRIB(rtw_channel_def_6g[chd_6g]); + + for (index = 0; index < CH_LIST_LEN(rtw_channel_def_6g[chd_6g]); index++) { + ch = CH_LIST_CH(rtw_channel_def_6g[chd_6g], index); + if (rtw_regsty_is_excl_chs_6g(regsty, ch) == _TRUE) + continue; + if (chanset_size >= MAX_CHANNEL_NUM) { + RTW_WARN("chset size can't exceed MAX_CHANNEL_NUM(%u)\n", MAX_CHANNEL_NUM); + break; + } + + channel_set[chanset_size].band = BAND_ON_6G; + channel_set[chanset_size].ChannelNum = ch; + + if ((rtw_is_6g_band1(ch) && (attrib & CLA_6G_B1_PASSIVE)) /* band1 passive */ + || (rtw_is_6g_band2(ch) && (attrib & CLA_6G_B2_PASSIVE)) /* band2 passive */ + || (rtw_is_6g_band3(ch) && (attrib & CLA_6G_B3_PASSIVE)) /* band3 passive */ + || (rtw_is_6g_band4(ch) && (attrib & CLA_6G_B4_PASSIVE)) /* band4 passive */ + ) + channel_set[chanset_size].flags |= RTW_CHF_NO_IR; + + chanset_size++; + } + +exit: + *ch_num = chanset_size; + + return chanset_size; +} +#endif /* CONFIG_IEEE80211_BAND_6GHZ */ + +static u8 init_channel_set_from_rtk_priv(_adapter *adapter, RT_CHANNEL_INFO *channel_set) +{ + u8 chanset_size = 0; +#ifdef CONFIG_DFS_MASTER + int i; +#endif + + _rtw_memset(channel_set, 0, sizeof(RT_CHANNEL_INFO) * MAX_CHANNEL_NUM); + + init_channel_set_from_rtk_priv_2g_5g(adapter, channel_set, &chanset_size); + +#if CONFIG_IEEE80211_BAND_6GHZ + init_channel_set_from_rtk_priv_6g(adapter, channel_set, &chanset_size); +#endif + +#ifdef CONFIG_DFS_MASTER + for (i = 0; i < chanset_size; i++) + channel_set[i].non_ocp_end_time = rtw_get_current_time(); +#endif + + if (chanset_size) + RTW_INFO(FUNC_ADPT_FMT" ch num:%d\n", FUNC_ADPT_ARG(adapter), chanset_size); + else + RTW_WARN(FUNC_ADPT_FMT" final chset has no channel\n", FUNC_ADPT_ARG(adapter)); + + return chanset_size; +} + +u8 init_channel_set(_adapter *adapter) +{ + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + + if (rfctl->regd_src == REGD_SRC_RTK_PRIV) + rfctl->max_chan_nums = init_channel_set_from_rtk_priv(adapter, rfctl->channel_set); +#ifdef CONFIG_REGD_SRC_FROM_OS + else if (rfctl->regd_src == REGD_SRC_OS) + rfctl->max_chan_nums = rtw_os_init_channel_set(adapter, rfctl->channel_set); +#endif + else { + rfctl->max_chan_nums = 0; + rtw_warn_on(1); + } + + return rfctl->max_chan_nums; +} + +bool rtw_chset_is_dfs_range(struct _RT_CHANNEL_INFO *chset, u32 hi, u32 lo) +{ + u8 hi_ch = rtw_freq2ch(hi); + u8 lo_ch = rtw_freq2ch(lo); + int i; + + for (i = 0; i < MAX_CHANNEL_NUM && chset[i].ChannelNum != 0; i++){ + if (!(chset[i].flags & RTW_CHF_DFS)) + continue; + if (hi_ch > chset[i].ChannelNum && lo_ch < chset[i].ChannelNum) + return 1; + } + + return 0; +} + +bool rtw_chset_is_dfs_ch(struct _RT_CHANNEL_INFO *chset, u8 ch) +{ + int i; + + for (i = 0; i < MAX_CHANNEL_NUM && chset[i].ChannelNum != 0; i++){ + if (chset[i].ChannelNum == ch) + return chset[i].flags & RTW_CHF_DFS ? 1 : 0; + } + + return 0; +} + +bool rtw_chset_is_dfs_chbw(struct _RT_CHANNEL_INFO *chset, u8 ch, u8 bw, u8 offset) +{ + u32 hi, lo; + + if (!rtw_chbw_to_freq_range(ch, bw, offset, &hi, &lo)) + return 0; + + return rtw_chset_is_dfs_range(chset, hi, lo); +} + +/* channel specific beacon hint rules */ +#define RTW_CHPLAN_BEACON_HINT_ON_DFS_CH 0 +#ifndef RTW_CHPLAN_BEACON_HINT_ON_2G_CH_1_11 +#define RTW_CHPLAN_BEACON_HINT_ON_2G_CH_1_11 0 +#endif +#ifndef RTW_CHPLAN_BEACON_HINT_ON_DFS_CH +#define RTW_CHPLAN_BEACON_HINT_ON_DFS_CH 0 +#endif + +bool rtw_chinfo_allow_beacon_hint(struct _RT_CHANNEL_INFO *chinfo, u8 reason) +{ + return (RTW_CHPLAN_BEACON_HINT_ON_2G_CH_1_11 || !(chinfo->band == BAND_ON_2_4G && chinfo->ChannelNum <= 11)) + && (RTW_CHPLAN_BEACON_HINT_ON_DFS_CH || + !(chinfo->flags & RTW_CHF_DFS) || + reason == RTW_AUTO_SCAN_REASON_ROAM); +} + +u8 rtw_process_beacon_hint(_adapter *adapter, WLAN_BSSID_EX *bss, u8 reason) +{ + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + RT_CHANNEL_INFO *chset = rfctl->channel_set; + u8 ch = bss->Configuration.DSConfig; + int chset_idx = rtw_chset_search_ch(chset, ch); + RT_CHANNEL_INFO *chinfo; + u8 act_cnt = 0; + + if (chset_idx < 0) + goto exit; + + chinfo = &chset[chset_idx]; + + if ((chinfo->flags & RTW_CHF_NO_IR) + && rtw_rfctl_reg_allow_beacon_hint(rfctl) + && rtw_chinfo_allow_beacon_hint(chinfo, reason) + ) { + RTW_INFO("%s: change band:%s ch:%d to active\n", __func__, band_str(chinfo->band), ch); + chinfo->flags &= ~RTW_CHF_NO_IR; + act_cnt++; + } + +exit: + return act_cnt; +} + +u8 rtw_clr_dfs_beacon_hint(_adapter *adapter) +{ + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + RT_CHANNEL_INFO *chset = rfctl->channel_set; + int i; + + for (i = 0; i < MAX_CHANNEL_NUM && chset[i].ChannelNum != 0; i++) { + + if ((chset[i].flags & RTW_CHF_DFS) && !(chset[i].flags & RTW_CHF_NO_IR)) { + RTW_INFO("%s: change band:%s ch:%d to inactive\n", + __func__, band_str(chset[i].band), chset[i].ChannelNum); + chset[i].flags |= RTW_CHF_NO_IR; + } + } + return 0; +} + +const char *const _regd_inr_str[] = { + [RTW_REGD_SET_BY_INIT] = "INIT", + [RTW_REGD_SET_BY_USER] = "USER", + [RTW_REGD_SET_BY_COUNTRY_IE] = "COUNTRY_IE", + [RTW_REGD_SET_BY_DRIVER] = "DRIVER", + [RTW_REGD_SET_BY_CORE] = "CORE", + [RTW_REGD_SET_BY_NUM] = "UNKNOWN", +}; + +const char *const _regd_str[] = { + [RTW_REGD_NA] = "NA", + [RTW_REGD_FCC] = "FCC", + [RTW_REGD_MKK] = "MKK", + [RTW_REGD_ETSI] = "ETSI", + [RTW_REGD_IC] = "IC", + [RTW_REGD_KCC] = "KCC", + [RTW_REGD_NCC] = "NCC", + [RTW_REGD_ACMA] = "ACMA", + [RTW_REGD_CHILE] = "CHILE", + [RTW_REGD_MEX] = "MEX", + [RTW_REGD_WW] = "WW", +}; + +const char *const _rtw_edcca_mode_str[] = { + [RTW_EDCCA_NORMAL] = "NORMAL", + [RTW_EDCCA_ADAPT] = "ADAPT", + [RTW_EDCCA_CS] = "CS", +}; + +const char *_rtw_dfs_regd_str[] = { + [RTW_DFS_REGD_NONE] = "NONE", + [RTW_DFS_REGD_FCC] = "FCC", + [RTW_DFS_REGD_MKK] = "MKK", + [RTW_DFS_REGD_ETSI] = "ETSI", +}; + +const char *const _txpwr_lmt_str[] = { + [TXPWR_LMT_NONE] = "NONE", + [TXPWR_LMT_FCC] = "FCC", + [TXPWR_LMT_MKK] = "MKK", + [TXPWR_LMT_ETSI] = "ETSI", + [TXPWR_LMT_IC] = "IC", + [TXPWR_LMT_KCC] = "KCC", + [TXPWR_LMT_NCC] = "NCC", + [TXPWR_LMT_ACMA] = "ACMA", + [TXPWR_LMT_CHILE] = "CHILE", + [TXPWR_LMT_UKRAINE] = "UKRAINE", + [TXPWR_LMT_MEXICO] = "MEXICO", + [TXPWR_LMT_CN] = "CN", + [TXPWR_LMT_QATAR] = "QATAR", + [TXPWR_LMT_WW] = "WW", + [TXPWR_LMT_NUM] = NULL, +}; + +const REGULATION_TXPWR_LMT _txpwr_lmt_alternate[] = { + [TXPWR_LMT_NONE] = TXPWR_LMT_NONE, + [TXPWR_LMT_FCC] = TXPWR_LMT_FCC, + [TXPWR_LMT_MKK] = TXPWR_LMT_MKK, + [TXPWR_LMT_ETSI] = TXPWR_LMT_ETSI, + [TXPWR_LMT_WW] = TXPWR_LMT_WW, + [TXPWR_LMT_NUM] = TXPWR_LMT_NUM, + + [TXPWR_LMT_IC] = TXPWR_LMT_FCC, + [TXPWR_LMT_KCC] = TXPWR_LMT_ETSI, + [TXPWR_LMT_NCC] = TXPWR_LMT_FCC, + [TXPWR_LMT_ACMA] = TXPWR_LMT_ETSI, + [TXPWR_LMT_CHILE] = TXPWR_LMT_FCC, + [TXPWR_LMT_UKRAINE] = TXPWR_LMT_ETSI, + [TXPWR_LMT_MEXICO] = TXPWR_LMT_FCC, + [TXPWR_LMT_CN] = TXPWR_LMT_ETSI, + [TXPWR_LMT_QATAR] = TXPWR_LMT_ETSI, +}; + +const enum rtw_edcca_mode _rtw_regd_to_edcca_mode[RTW_REGD_NUM] = { + [RTW_REGD_NA] = RTW_EDCCA_MODE_NUM, + [RTW_REGD_MKK] = RTW_EDCCA_CS, + [RTW_REGD_ETSI] = RTW_EDCCA_ADAPT, + [RTW_REGD_WW] = RTW_EDCCA_ADAPT, +}; + +const REGULATION_TXPWR_LMT _rtw_regd_to_txpwr_lmt[] = { + [RTW_REGD_NA] = TXPWR_LMT_NUM, + [RTW_REGD_FCC] = TXPWR_LMT_FCC, + [RTW_REGD_MKK] = TXPWR_LMT_MKK, + [RTW_REGD_ETSI] = TXPWR_LMT_ETSI, + [RTW_REGD_IC] = TXPWR_LMT_IC, + [RTW_REGD_KCC] = TXPWR_LMT_KCC, + [RTW_REGD_NCC] = TXPWR_LMT_NCC, + [RTW_REGD_ACMA] = TXPWR_LMT_ACMA, + [RTW_REGD_CHILE] = TXPWR_LMT_CHILE, + [RTW_REGD_MEX] = TXPWR_LMT_MEXICO, + [RTW_REGD_WW] = TXPWR_LMT_WW, +}; + +char *rtw_get_edcca_modes_str(char *buf, u8 modes[]) +{ +#define EDCCA_MODE_SEQ_COMPARE(result, operand) (result == RTW_EDCCA_MODE_NUM ? operand : (operand == RTW_EDCCA_MODE_NUM ? result : (result != operand ? -1 : result))) + + int mode = RTW_EDCCA_MODE_NUM; + int cnt = 0; + + mode = EDCCA_MODE_SEQ_COMPARE(mode, modes[BAND_ON_2_4G]); +#if CONFIG_IEEE80211_BAND_5GHZ + mode = EDCCA_MODE_SEQ_COMPARE(mode, modes[BAND_ON_5G]); +#endif +#if CONFIG_IEEE80211_BAND_6GHZ + mode = EDCCA_MODE_SEQ_COMPARE(mode, modes[BAND_ON_6G]); +#endif + + if (mode != -1) { /* all available values are the same */ + cnt += snprintf(buf + cnt, EDCCA_MODES_STR_LEN - cnt - 1, "%s(%u)", rtw_edcca_mode_str(mode), mode); + if (cnt >= EDCCA_MODES_STR_LEN - 1) + goto exit; + } else { + cnt += snprintf(buf + cnt, EDCCA_MODES_STR_LEN - cnt - 1, "%s(%u) ", rtw_edcca_mode_str(modes[BAND_ON_2_4G]), modes[BAND_ON_2_4G]); + if (cnt >= EDCCA_MODES_STR_LEN - 1) + goto exit; + #if CONFIG_IEEE80211_BAND_5GHZ + cnt += snprintf(buf + cnt, EDCCA_MODES_STR_LEN - cnt - 1, "%s(%u) ", rtw_edcca_mode_str(modes[BAND_ON_5G]), modes[BAND_ON_5G]); + if (cnt >= EDCCA_MODES_STR_LEN - 1) + goto exit; + #endif + #if CONFIG_IEEE80211_BAND_6GHZ + cnt += snprintf(buf + cnt, EDCCA_MODES_STR_LEN - cnt - 1, "%s(%u) ", rtw_edcca_mode_str(modes[BAND_ON_6G]), modes[BAND_ON_6G]); + if (cnt >= EDCCA_MODES_STR_LEN - 1) + goto exit; + #endif + buf[cnt - 1] = 0; + } + +exit: + return buf; +} + +void rtw_edcca_mode_update(struct dvobj_priv *dvobj) +{ + struct registry_priv *regsty = dvobj_to_regsty(dvobj); + struct rf_ctl_t *rfctl = dvobj_to_rfctl(dvobj); + + if (regsty->adaptivity_en == 0) { + /* force disable */ + rfctl->edcca_mode_2g = RTW_EDCCA_NORMAL; + #if CONFIG_IEEE80211_BAND_5GHZ + rfctl->edcca_mode_5g = RTW_EDCCA_NORMAL; + #endif + #if CONFIG_IEEE80211_BAND_6GHZ + rfctl->edcca_mode_6g = RTW_EDCCA_NORMAL; + #endif + + } else if (regsty->adaptivity_en == 1) { + /* force enable */ + if (!regsty->adaptivity_mode) { + /* adaptivity */ + rfctl->edcca_mode_2g = RTW_EDCCA_ADAPT; + #if CONFIG_IEEE80211_BAND_5GHZ + rfctl->edcca_mode_5g = RTW_EDCCA_ADAPT; + #endif + #if CONFIG_IEEE80211_BAND_6GHZ + rfctl->edcca_mode_6g = RTW_EDCCA_ADAPT; + #endif + } else { + /* carrier sense */ + rfctl->edcca_mode_2g = RTW_EDCCA_CS; + #if CONFIG_IEEE80211_BAND_5GHZ + rfctl->edcca_mode_5g = RTW_EDCCA_CS; + #endif + #if CONFIG_IEEE80211_BAND_6GHZ + rfctl->edcca_mode_6g = RTW_EDCCA_CS; + #endif + } + + } else { + u8 modes[BAND_MAX]; + char buf[EDCCA_MODES_STR_LEN]; + + /* by regulatory setting */ + #ifdef CONFIG_REGD_SRC_FROM_OS + if (rfctl->regd_src == REGD_SRC_OS + && rfctl->ChannelPlan == RTW_CHPLAN_UNSPECIFIED + ) { + modes[BAND_ON_2_4G] = rfctl->edcca_mode_2g = RTW_EDCCA_ADAPT; + #if CONFIG_IEEE80211_BAND_5GHZ + modes[BAND_ON_5G] = rfctl->edcca_mode_5g = RTW_EDCCA_ADAPT; + #endif + #if CONFIG_IEEE80211_BAND_6GHZ + modes[BAND_ON_6G] = rfctl->edcca_mode_6g = RTW_EDCCA_ADAPT; + #endif + RTW_PRINT("mapping %scountry:%c%c to edcca_mode:%s\n" + , RFCTL_REG_WORLDWIDE(rfctl) ? "" : "unsupported " + , rfctl->alpha2[0] + , rfctl->alpha2[1] + , rtw_get_edcca_modes_str(buf, modes) + ); + } else + #endif + { + modes[BAND_ON_2_4G] = rfctl->edcca_mode_2g = + rfctl->edcca_mode_2g_override != RTW_EDCCA_DEF ? rfctl->edcca_mode_2g_override : + rtw_regd_to_edcca_mode(rtw_chplan_get_default_regd_2g(rfctl->ChannelPlan)); + #if CONFIG_IEEE80211_BAND_5GHZ + modes[BAND_ON_5G] = rfctl->edcca_mode_5g = + rfctl->edcca_mode_5g_override != RTW_EDCCA_DEF ? rfctl->edcca_mode_5g_override : + rtw_regd_to_edcca_mode(rtw_chplan_get_default_regd_5g(rfctl->ChannelPlan)); + #endif + #if CONFIG_IEEE80211_BAND_6GHZ + modes[BAND_ON_6G] = rfctl->edcca_mode_6g = + rfctl->edcca_mode_6g_override != RTW_EDCCA_DEF ? rfctl->edcca_mode_6g_override : + rtw_regd_to_edcca_mode(rtw_chplan_get_default_regd_6g(rfctl->chplan_6g)); + #endif + RTW_PRINT("update edcca_mode:%s\n" + , rtw_get_edcca_modes_str(buf, modes) + ); + } + } +} + +u8 rtw_get_edcca_mode(struct dvobj_priv *dvobj, BAND_TYPE band) +{ + struct rf_ctl_t *rfctl = dvobj_to_rfctl(dvobj); + u8 edcca_mode = RTW_EDCCA_NORMAL; + + if (band == BAND_ON_2_4G) + edcca_mode = rfctl->edcca_mode_2g; + #if CONFIG_IEEE80211_BAND_5GHZ + else if (band == BAND_ON_5G) + edcca_mode = rfctl->edcca_mode_5g; + #endif + #if CONFIG_IEEE80211_BAND_6GHZ + else if (band == BAND_ON_6G) + edcca_mode = rfctl->edcca_mode_6g; + #endif + + return edcca_mode; +} + +char *rtw_get_txpwr_lmt_names_str(char *buf, const char *names[], u8 unknown_bmp) +{ +#define NAME_DIFF ((void *)1) +/* input comes form organized database, string with same content will not have different pointer */ +#define NAME_SEQ_COMPARE(result, operand) (result == NULL ? operand : (operand == NULL ? result : (result != operand ? NAME_DIFF : result))) + + const char *name = NULL; + int cnt = 0; + + name = NAME_SEQ_COMPARE(name, names[BAND_ON_2_4G]); +#if CONFIG_IEEE80211_BAND_5GHZ + name = NAME_SEQ_COMPARE(name, names[BAND_ON_5G]); +#endif +#if CONFIG_IEEE80211_BAND_6GHZ + name = NAME_SEQ_COMPARE(name, names[BAND_ON_6G]); +#endif + + if (name != NAME_DIFF) { /* all available values are the same */ + cnt += snprintf(buf + cnt, TXPWR_NAMES_STR_LEN - cnt - 1, "%s%s", (unknown_bmp & BIT(BAND_ON_2_4G)) ? "?" : "", name); + if (cnt >= TXPWR_NAMES_STR_LEN - 1) + goto exit; + } else { + cnt += snprintf(buf + cnt, TXPWR_NAMES_STR_LEN - cnt - 1, "%s%s ", (unknown_bmp & BIT(BAND_ON_2_4G)) ? "?" : "", names[BAND_ON_2_4G]); + if (cnt >= TXPWR_NAMES_STR_LEN - 1) + goto exit; + #if CONFIG_IEEE80211_BAND_5GHZ + cnt += snprintf(buf + cnt, TXPWR_NAMES_STR_LEN - cnt - 1, "%s%s ", (unknown_bmp & BIT(BAND_ON_5G)) ? "?" : "", names[BAND_ON_5G]); + if (cnt >= TXPWR_NAMES_STR_LEN - 1) + goto exit; + #endif + #if CONFIG_IEEE80211_BAND_6GHZ + cnt += snprintf(buf + cnt, TXPWR_NAMES_STR_LEN - cnt - 1, "%s%s ", (unknown_bmp & BIT(BAND_ON_6G)) ? "?" : "", names[BAND_ON_6G]); + if (cnt >= TXPWR_NAMES_STR_LEN - 1) + goto exit; + #endif + buf[cnt - 1] = 0; + } + +exit: + return buf; +} + +#if CONFIG_IEEE80211_BAND_5GHZ +#define COUNTRY_CHPLAN_ASSIGN_EDCCA_MODE_5G_OVERRIDE(_val) , .edcca_mode_5g_override = (_val) +#else +#define COUNTRY_CHPLAN_ASSIGN_EDCCA_MODE_5G_OVERRIDE(_val) +#endif + +#if CONFIG_IEEE80211_BAND_6GHZ +#define COUNTRY_CHPLAN_ASSIGN_CHPLAN_6G(_val) , .chplan_6g = (_val) +#define COUNTRY_CHPLAN_ASSIGN_EDCCA_MODE_6G_OVERRIDE(_val) , .edcca_mode_6g_override = (_val) +#else +#define COUNTRY_CHPLAN_ASSIGN_CHPLAN_6G(_val) +#define COUNTRY_CHPLAN_ASSIGN_EDCCA_MODE_6G_OVERRIDE(_val) +#endif + +#if defined(CONFIG_80211AC_VHT) || defined(CONFIG_80211AX_HE) +#define COUNTRY_CHPLAN_ASSIGN_PROTO_EN(_val) , .proto_en = (_val) +#else +#define COUNTRY_CHPLAN_ASSIGN_PROTO_EN(_val) +#endif + +#define COUNTRY_CHPLAN_ENT(_alpha2, _chplan, _chplan_6g, _txpwr_lmt_override, _en_11ax, _en_11ac) \ + {.alpha2 = (_alpha2), .chplan = (_chplan) \ + COUNTRY_CHPLAN_ASSIGN_CHPLAN_6G(_chplan_6g) \ + , .edcca_mode_2g_override = RTW_EDCCA_DEF \ + COUNTRY_CHPLAN_ASSIGN_EDCCA_MODE_5G_OVERRIDE(RTW_EDCCA_DEF) \ + COUNTRY_CHPLAN_ASSIGN_EDCCA_MODE_6G_OVERRIDE(RTW_EDCCA_DEF) \ + , .txpwr_lmt_override = TXPWR_LMT_##_txpwr_lmt_override \ + COUNTRY_CHPLAN_ASSIGN_PROTO_EN((_en_11ax ? CHPLAN_PROTO_EN_AX : 0) | (_en_11ac ? CHPLAN_PROTO_EN_AC : 0)) \ + } + +static const struct country_chplan world_wide_chplan = + COUNTRY_CHPLAN_ENT(WORLDWIDE_ALPHA2, RTW_CHPLAN_WORLDWIDE, RTW_CHPLAN_6G_WORLDWIDE, DEF, 1, 1); #ifdef CONFIG_CUSTOMIZED_COUNTRY_CHPLAN_MAP @@ -332,85 +1036,1762 @@ u8 init_channel_set(_adapter *padapter, u8 ChannelPlan, RT_CHANNEL_INFO *channel #elif RTW_DEF_MODULE_REGULATORY_CERT +#if (RTW_DEF_MODULE_REGULATORY_CERT & RTW_MODULE_RTL8821AE_HMC_M2) /* 2013 certify */ +static const struct country_chplan RTL8821AE_HMC_M2_country_chplan_map[] = { + COUNTRY_CHPLAN_ENT("AE", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AN", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AR", 0x61, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AU", 0x45, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BA", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BH", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BO", 0x73, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BR", 0x62, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BW", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BY", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CA", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CH", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CI", 0x42, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CL", 0x30, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CN", 0x51, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CO", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CR", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CY", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DO", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DZ", 0x00, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EC", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EG", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ES", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("FI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("FR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GB", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GH", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GT", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HK", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HN", 0x32, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HU", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ID", 0x3D, 0x00, DEF , 0, 0), + COUNTRY_CHPLAN_ENT("IE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IL", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IN", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IS", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JM", 0x32, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JO", 0x49, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JP", 0x27, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KE", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KH", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KR", 0x28, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KW", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LB", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LS", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LU", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LV", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MA", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MC", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ME", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MX", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MY", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NG", 0x75, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NI", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NO", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NZ", 0x45, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("OM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PA", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PE", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PG", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PH", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PK", 0x51, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PR", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PY", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("QA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RO", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RS", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RU", 0x59, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SG", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SN", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SV", 0x30, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TH", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TN", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TT", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TW", 0x39, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UA", 0x36, 0x00, DEF , 0, 0), + COUNTRY_CHPLAN_ENT("UG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("US", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UY", 0x30, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("VE", 0x30, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("VN", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ZA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ZW", 0x26, 0x00, DEF , 0, 1), +}; +#endif + +#if (RTW_DEF_MODULE_REGULATORY_CERT & RTW_MODULE_RTL8821AU) /* 2014 certify */ +static const struct country_chplan RTL8821AU_country_chplan_map[] = { + COUNTRY_CHPLAN_ENT("AE", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AR", 0x61, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AU", 0x45, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CA", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CH", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CN", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CY", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ES", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("FI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("FR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GB", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HK", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HU", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ID", 0x3D, 0x00, DEF , 0, 0), + COUNTRY_CHPLAN_ENT("IE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IS", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JO", 0x49, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JP", 0x27, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KR", 0x28, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KW", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LU", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LV", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MC", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NO", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NZ", 0x45, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RU", 0x59, 0x00, DEF , 0, 0), + COUNTRY_CHPLAN_ENT("SA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SG", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TW", 0x39, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UA", 0x36, 0x00, DEF , 0, 0), + COUNTRY_CHPLAN_ENT("US", 0x34, 0x00, DEF , 0, 1), +}; +#endif + +#if (RTW_DEF_MODULE_REGULATORY_CERT & RTW_MODULE_RTL8812AENF_NGFF) /* 2014 certify */ +static const struct country_chplan RTL8812AENF_NGFF_country_chplan_map[] = { + COUNTRY_CHPLAN_ENT("JP", 0x27, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TW", 0x39, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("US", 0x34, 0x00, DEF , 0, 1), +}; +#endif + +#if (RTW_DEF_MODULE_REGULATORY_CERT & RTW_MODULE_RTL8812AEBT_HMC) /* 2013 certify */ +static const struct country_chplan RTL8812AEBT_HMC_country_chplan_map[] = { + COUNTRY_CHPLAN_ENT("AE", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AU", 0x45, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CA", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CH", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CN", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CY", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ES", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("FI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("FR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GB", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HK", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HU", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IS", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JO", 0x49, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JP", 0x27, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KE", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KR", 0x28, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KW", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LU", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LV", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MC", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NG", 0x75, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NO", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NZ", 0x45, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("OM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("QA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RU", 0x59, 0x00, DEF , 0, 0), + COUNTRY_CHPLAN_ENT("SA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SG", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TW", 0x39, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UA", 0x36, 0x00, DEF , 0, 0), + COUNTRY_CHPLAN_ENT("US", 0x34, 0x00, DEF , 0, 1), +}; +#endif + +#if (RTW_DEF_MODULE_REGULATORY_CERT & RTW_MODULE_RTL8188EE_HMC_M2) /* 2012 certify */ +static const struct country_chplan RTL8188EE_HMC_M2_country_chplan_map[] = { + COUNTRY_CHPLAN_ENT("AE", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AN", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AR", 0x61, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AU", 0x45, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AW", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BA", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BB", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BF", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BH", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BJ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BN", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BO", 0x73, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BR", 0x62, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BW", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BY", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CA", 0x20, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CF", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CH", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CI", 0x42, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CL", 0x2D, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CN", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CO", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CR", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CV", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CY", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DO", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DZ", 0x00, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EC", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EG", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ES", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ET", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("FI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("FR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GA", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GB", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GD", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GH", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GN", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GQ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GT", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GW", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HK", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HN", 0x32, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HT", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HU", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ID", 0x5D, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IL", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IN", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IS", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JM", 0x32, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JO", 0x49, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JP", 0x27, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KE", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KH", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KR", 0x28, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KW", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LB", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LS", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LU", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LV", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MA", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MC", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ME", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ML", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MU", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MW", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MX", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MY", 0x63, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NG", 0x75, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NI", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NO", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NP", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NZ", 0x45, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("OM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PA", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PE", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PG", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PH", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PK", 0x51, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PR", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PY", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("QA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RO", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RS", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RU", 0x59, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RW", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SC", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SG", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SN", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SV", 0x30, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TH", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TN", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TT", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TW", 0x39, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("US", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UY", 0x30, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UZ", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("VC", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("VE", 0x30, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("VN", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ZA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ZM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ZW", 0x26, 0x00, DEF , 0, 1), +}; +#endif + +#if (RTW_DEF_MODULE_REGULATORY_CERT & RTW_MODULE_RTL8723BE_HMC_M2) /* 2013 certify */ +static const struct country_chplan RTL8723BE_HMC_M2_country_chplan_map[] = { + COUNTRY_CHPLAN_ENT("AE", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AN", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AO", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AR", 0x61, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AU", 0x45, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AW", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BA", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BF", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BH", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BJ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BO", 0x73, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BR", 0x62, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BS", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BW", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BY", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CA", 0x20, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CF", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CH", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CI", 0x42, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CL", 0x2D, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CN", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CO", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CR", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CV", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CY", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DO", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DZ", 0x00, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EC", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EG", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ES", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ET", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("FI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("FR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GA", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GB", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GD", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GH", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GQ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GT", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GW", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HK", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HN", 0x32, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HU", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ID", 0x5D, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IL", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IN", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IS", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JM", 0x32, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JO", 0x49, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JP", 0x27, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KE", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KH", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KR", 0x28, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KW", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LB", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LS", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LU", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LV", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MA", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MC", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ME", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ML", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MU", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MW", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MX", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MY", 0x63, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NG", 0x75, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NI", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NO", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NP", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NZ", 0x45, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("OM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PA", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PE", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PG", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PH", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PK", 0x51, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PR", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PY", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("QA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RO", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RS", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RU", 0x59, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RW", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SG", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SN", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SV", 0x30, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TH", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TN", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TT", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TW", 0x39, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("US", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UY", 0x30, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UZ", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("VE", 0x30, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("VN", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ZA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ZM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ZW", 0x26, 0x00, DEF , 0, 1), +}; +#endif + +#if (RTW_DEF_MODULE_REGULATORY_CERT & RTW_MODULE_RTL8723BS_NGFF1216) /* 2014 certify */ +static const struct country_chplan RTL8723BS_NGFF1216_country_chplan_map[] = { + COUNTRY_CHPLAN_ENT("AE", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AN", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AO", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AR", 0x61, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AU", 0x45, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BA", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BB", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BH", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BO", 0x73, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BR", 0x62, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BW", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BY", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CA", 0x20, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CH", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CI", 0x42, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CL", 0x2D, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CN", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CO", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CR", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CY", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DO", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DZ", 0x00, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EC", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EG", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ES", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("FI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("FR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GB", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GH", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GT", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HK", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HN", 0x32, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HT", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HU", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ID", 0x5D, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IL", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IN", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IS", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JM", 0x32, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JO", 0x49, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JP", 0x27, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KE", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KH", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KR", 0x28, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KW", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LB", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LS", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LU", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LV", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MA", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MC", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ME", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MQ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MX", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MY", 0x63, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NG", 0x75, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NI", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NO", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NP", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NZ", 0x45, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("OM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PA", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PE", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PG", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PH", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PK", 0x51, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PR", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PY", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("QA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RO", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RS", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RU", 0x59, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SG", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SN", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SV", 0x30, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TH", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TJ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TN", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TT", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TW", 0x39, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("US", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UY", 0x30, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UZ", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("VE", 0x30, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("VN", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("YE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ZA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ZW", 0x26, 0x00, DEF , 0, 1), +}; +#endif + +#if (RTW_DEF_MODULE_REGULATORY_CERT & RTW_MODULE_RTL8192EEBT_HMC_M2) /* 2013 certify */ +static const struct country_chplan RTL8192EEBT_HMC_M2_country_chplan_map[] = { + COUNTRY_CHPLAN_ENT("AE", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AN", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AO", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AR", 0x61, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AU", 0x45, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AW", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BA", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BF", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BH", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BJ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BO", 0x73, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BR", 0x62, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BW", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BY", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CA", 0x20, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CF", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CH", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CI", 0x42, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CL", 0x2D, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CN", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CO", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CR", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CV", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CY", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DJ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DO", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DZ", 0x00, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EC", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EG", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EH", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ES", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ET", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("FI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("FR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GA", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GB", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GD", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GF", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GH", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GQ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GT", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GW", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HK", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HN", 0x32, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HU", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ID", 0x5D, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IL", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IN", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IS", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JM", 0x32, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JO", 0x49, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JP", 0x27, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KE", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KH", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KR", 0x28, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KW", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LB", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LS", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LU", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LV", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MA", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MC", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ME", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ML", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MU", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MW", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MX", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MY", 0x63, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NG", 0x75, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NI", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NO", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NP", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NZ", 0x45, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("OM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PA", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PE", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PG", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PH", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PK", 0x51, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PR", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PY", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("QA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RO", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RS", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RU", 0x59, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RW", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SC", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SG", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SN", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ST", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SV", 0x30, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TF", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TH", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TN", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TT", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TW", 0x39, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("US", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UY", 0x30, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UZ", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("VE", 0x30, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("VN", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("YT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ZA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ZM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ZW", 0x26, 0x00, DEF , 0, 1), +}; +#endif + +#if (RTW_DEF_MODULE_REGULATORY_CERT & RTW_MODULE_RTL8723DE_NGFF1630) /* 2016 certify */ +static const struct country_chplan RTL8723DE_NGFF1630_country_chplan_map[] = { + COUNTRY_CHPLAN_ENT("AE", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AN", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AR", 0x61, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AU", 0x45, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BA", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BH", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BO", 0x73, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BR", 0x62, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BY", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CA", 0x2A, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CH", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CI", 0x42, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CL", 0x2D, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CN", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CO", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CR", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CY", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DO", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DZ", 0x00, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EC", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EG", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ES", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("FI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("FR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GB", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GH", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GT", 0x61, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HK", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HN", 0x32, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HU", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ID", 0x5D, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IL", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IN", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IS", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JM", 0x32, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JO", 0x49, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JP", 0x27, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KE", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KH", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KR", 0x28, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KW", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LB", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LS", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LU", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LV", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MA", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MC", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ME", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MX", 0x34, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MY", 0x63, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NA", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NG", 0x75, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NI", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NO", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NZ", 0x45, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("OM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PA", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PE", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PG", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PH", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PK", 0x51, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PR", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PY", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("QA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RO", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RS", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RU", 0x59, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SG", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SN", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SV", 0x30, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TH", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TN", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TT", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TW", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("US", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UY", 0x30, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("VE", 0x30, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("VN", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ZA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ZW", 0x26, 0x00, DEF , 0, 1), +}; +#endif + +#if (RTW_DEF_MODULE_REGULATORY_CERT & RTW_MODULE_RTL8822BE) /* 2016 certify */ +static const struct country_chplan RTL8822BE_country_chplan_map[] = { + COUNTRY_CHPLAN_ENT("AE", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AN", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AO", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AR", 0x61, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AU", 0x45, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BA", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BB", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BF", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BH", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BJ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BM", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BN", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BO", 0x73, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BR", 0x62, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BS", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BW", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BY", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CA", 0x2B, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CF", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CH", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CI", 0x42, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CL", 0x2D, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CN", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CO", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CR", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CV", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CY", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DJ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DO", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DZ", 0x00, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EC", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EG", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EH", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ES", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("FI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("FJ", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("FR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GA", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GB", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GH", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GN", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GP", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GQ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GT", 0x61, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GU", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GW", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HK", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HN", 0x32, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HT", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HU", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ID", 0x3D, 0x00, DEF , 0, 0), + COUNTRY_CHPLAN_ENT("IE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IL", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IN", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IS", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JM", 0x32, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JO", 0x49, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JP", 0x27, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KE", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KH", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KR", 0x28, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KW", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LB", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LS", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LU", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LV", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MA", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MC", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ME", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ML", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MO", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MQ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MU", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MW", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MX", 0x4D, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MY", 0x63, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NA", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NG", 0x75, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NI", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NO", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NP", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NZ", 0x45, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("OM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PA", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PE", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PG", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PH", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PK", 0x51, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PR", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PY", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("QA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RO", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RS", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RU", 0x59, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SC", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SG", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SN", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ST", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SV", 0x30, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TF", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TH", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TJ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TN", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TT", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TW", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UA", 0x35, 0x00, UKRAINE, 0, 1), + COUNTRY_CHPLAN_ENT("UG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("US", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UY", 0x30, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UZ", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("VE", 0x30, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("VN", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("YT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ZA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ZM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ZW", 0x26, 0x00, DEF , 0, 1), +}; +#endif + +#if (RTW_DEF_MODULE_REGULATORY_CERT & RTW_MODULE_RTL8821CE) /* 2016 certify */ +static const struct country_chplan RTL8821CE_country_chplan_map[] = { + COUNTRY_CHPLAN_ENT("AE", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AN", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AO", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AR", 0x61, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AU", 0x45, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BA", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BB", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BF", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BH", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BJ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BM", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BN", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BO", 0x73, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BR", 0x62, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BS", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BW", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BY", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CA", 0x2B, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CF", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CH", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CI", 0x42, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CL", 0x2D, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CN", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CO", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CR", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CV", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CY", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DJ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DO", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DZ", 0x00, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EC", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EG", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EH", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ES", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ET", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("FI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("FJ", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("FR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GA", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GB", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GH", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GN", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GP", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GQ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GT", 0x61, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GU", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GW", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HK", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HN", 0x32, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HT", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HU", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ID", 0x3D, 0x00, DEF , 0, 0), + COUNTRY_CHPLAN_ENT("IE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IL", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IN", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IS", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JM", 0x32, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JO", 0x49, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JP", 0x27, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KE", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KH", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KR", 0x28, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KW", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LB", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LS", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LU", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LV", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MA", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MC", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ME", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ML", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MO", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MQ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MU", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MW", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MX", 0x4D, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MY", 0x63, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NA", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NG", 0x75, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NI", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NO", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NP", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NZ", 0x45, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("OM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PA", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PE", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PG", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PH", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PK", 0x51, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PR", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PY", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("QA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RO", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RS", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RU", 0x59, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SC", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SG", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SN", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ST", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SV", 0x30, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TF", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TH", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TJ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TN", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TW", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UA", 0x35, 0x00, UKRAINE, 0, 1), + COUNTRY_CHPLAN_ENT("UG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("US", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UY", 0x30, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UZ", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("VE", 0x30, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("VN", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("YT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ZA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ZM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ZW", 0x26, 0x00, DEF , 0, 1), +}; +#endif + +#if (RTW_DEF_MODULE_REGULATORY_CERT & RTW_MODULE_RTL8822CE) /* 2018 certify */ +static const struct country_chplan RTL8822CE_country_chplan_map[] = { + COUNTRY_CHPLAN_ENT("AE", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AN", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AO", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AR", 0x61, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AU", 0x45, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AW", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("AZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BA", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BB", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BF", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BH", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BJ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BM", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BN", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BO", 0x73, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BR", 0x62, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BS", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BW", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("BY", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CA", 0x2B, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CF", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CH", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CI", 0x42, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CL", 0x2D, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CN", 0x48, 0x00, CN , 0, 1), + COUNTRY_CHPLAN_ENT("CO", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CR", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CV", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CY", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("CZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DJ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DO", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("DZ", 0x00, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EC", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EG", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("EH", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ES", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ET", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("FI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("FJ", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("FR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GA", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GB", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GH", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GN", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GP", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GQ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GT", 0x61, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GU", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("GW", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HK", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HN", 0x32, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HT", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("HU", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IL", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IN", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IS", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("IT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JM", 0x32, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JO", 0x49, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("JP", 0x27, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KE", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KH", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KR", 0x4B, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KW", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("KZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LB", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LS", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LU", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("LV", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MA", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MC", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ME", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ML", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MO", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MQ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MU", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MW", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MX", 0x4D, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MY", 0x63, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("MZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NA", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NG", 0x75, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NI", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NO", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NP", 0x48, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("NZ", 0x45, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("OM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PA", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PE", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PG", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PH", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PK", 0x51, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PR", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("PY", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("QA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RO", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RS", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("RU", 0x59, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SC", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SE", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SG", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SI", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SK", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SL", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SN", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ST", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SV", 0x30, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("SZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TD", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TF", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TH", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TJ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TN", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TR", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TW", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("TZ", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UA", 0x35, 0x00, UKRAINE, 0, 1), + COUNTRY_CHPLAN_ENT("UG", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("US", 0x76, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UY", 0x30, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("UZ", 0x47, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("VE", 0x30, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("VN", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("YT", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ZA", 0x35, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ZM", 0x26, 0x00, DEF , 0, 1), + COUNTRY_CHPLAN_ENT("ZW", 0x26, 0x00, DEF , 0, 1), +}; +#endif + /** - * rtw_def_module_get_chplan_from_country - - * @country_code: string of country code - * @return: - * Return NULL for case referring to common map + * rtw_def_module_country_chplan_map - + * @hal_map: returned map + * @return: size of map */ -static const struct country_chplan *rtw_def_module_get_chplan_from_country(const char *country_code) +static u16 rtw_def_module_country_chplan_map(const struct country_chplan **hal_map) { - const struct country_chplan *ent = NULL; - const struct country_chplan *hal_map = NULL; u16 hal_map_sz = 0; - int i; /* TODO: runtime selection for multi driver */ #if (RTW_DEF_MODULE_REGULATORY_CERT == RTW_MODULE_RTL8821AE_HMC_M2) - hal_map = RTL8821AE_HMC_M2_country_chplan_exc_map; - hal_map_sz = sizeof(RTL8821AE_HMC_M2_country_chplan_exc_map) / sizeof(struct country_chplan); + *hal_map = RTL8821AE_HMC_M2_country_chplan_map; + hal_map_sz = sizeof(RTL8821AE_HMC_M2_country_chplan_map) / sizeof(struct country_chplan); #elif (RTW_DEF_MODULE_REGULATORY_CERT == RTW_MODULE_RTL8821AU) - hal_map = RTL8821AU_country_chplan_exc_map; - hal_map_sz = sizeof(RTL8821AU_country_chplan_exc_map) / sizeof(struct country_chplan); + *hal_map = RTL8821AU_country_chplan_map; + hal_map_sz = sizeof(RTL8821AU_country_chplan_map) / sizeof(struct country_chplan); #elif (RTW_DEF_MODULE_REGULATORY_CERT == RTW_MODULE_RTL8812AENF_NGFF) - hal_map = RTL8812AENF_NGFF_country_chplan_exc_map; - hal_map_sz = sizeof(RTL8812AENF_NGFF_country_chplan_exc_map) / sizeof(struct country_chplan); + *hal_map = RTL8812AENF_NGFF_country_chplan_map; + hal_map_sz = sizeof(RTL8812AENF_NGFF_country_chplan_map) / sizeof(struct country_chplan); #elif (RTW_DEF_MODULE_REGULATORY_CERT == RTW_MODULE_RTL8812AEBT_HMC) - hal_map = RTL8812AEBT_HMC_country_chplan_exc_map; - hal_map_sz = sizeof(RTL8812AEBT_HMC_country_chplan_exc_map) / sizeof(struct country_chplan); + *hal_map = RTL8812AEBT_HMC_country_chplan_map; + hal_map_sz = sizeof(RTL8812AEBT_HMC_country_chplan_map) / sizeof(struct country_chplan); #elif (RTW_DEF_MODULE_REGULATORY_CERT == RTW_MODULE_RTL8188EE_HMC_M2) - hal_map = RTL8188EE_HMC_M2_country_chplan_exc_map; - hal_map_sz = sizeof(RTL8188EE_HMC_M2_country_chplan_exc_map) / sizeof(struct country_chplan); + *hal_map = RTL8188EE_HMC_M2_country_chplan_map; + hal_map_sz = sizeof(RTL8188EE_HMC_M2_country_chplan_map) / sizeof(struct country_chplan); #elif (RTW_DEF_MODULE_REGULATORY_CERT == RTW_MODULE_RTL8723BE_HMC_M2) - hal_map = RTL8723BE_HMC_M2_country_chplan_exc_map; - hal_map_sz = sizeof(RTL8723BE_HMC_M2_country_chplan_exc_map) / sizeof(struct country_chplan); + *hal_map = RTL8723BE_HMC_M2_country_chplan_map; + hal_map_sz = sizeof(RTL8723BE_HMC_M2_country_chplan_map) / sizeof(struct country_chplan); #elif (RTW_DEF_MODULE_REGULATORY_CERT == RTW_MODULE_RTL8723BS_NGFF1216) - hal_map = RTL8723BS_NGFF1216_country_chplan_exc_map; - hal_map_sz = sizeof(RTL8723BS_NGFF1216_country_chplan_exc_map) / sizeof(struct country_chplan); + *hal_map = RTL8723BS_NGFF1216_country_chplan_map; + hal_map_sz = sizeof(RTL8723BS_NGFF1216_country_chplan_map) / sizeof(struct country_chplan); #elif (RTW_DEF_MODULE_REGULATORY_CERT == RTW_MODULE_RTL8192EEBT_HMC_M2) - hal_map = RTL8192EEBT_HMC_M2_country_chplan_exc_map; - hal_map_sz = sizeof(RTL8192EEBT_HMC_M2_country_chplan_exc_map) / sizeof(struct country_chplan); + *hal_map = RTL8192EEBT_HMC_M2_country_chplan_map; + hal_map_sz = sizeof(RTL8192EEBT_HMC_M2_country_chplan_map) / sizeof(struct country_chplan); #elif (RTW_DEF_MODULE_REGULATORY_CERT == RTW_MODULE_RTL8723DE_NGFF1630) - hal_map = RTL8723DE_NGFF1630_country_chplan_exc_map; - hal_map_sz = sizeof(RTL8723DE_NGFF1630_country_chplan_exc_map) / sizeof(struct country_chplan); + *hal_map = RTL8723DE_NGFF1630_country_chplan_map; + hal_map_sz = sizeof(RTL8723DE_NGFF1630_country_chplan_map) / sizeof(struct country_chplan); #elif (RTW_DEF_MODULE_REGULATORY_CERT == RTW_MODULE_RTL8822BE) - hal_map = RTL8822BE_country_chplan_exc_map; - hal_map_sz = sizeof(RTL8822BE_country_chplan_exc_map) / sizeof(struct country_chplan); + *hal_map = RTL8822BE_country_chplan_map; + hal_map_sz = sizeof(RTL8822BE_country_chplan_map) / sizeof(struct country_chplan); #elif (RTW_DEF_MODULE_REGULATORY_CERT == RTW_MODULE_RTL8821CE) - hal_map = RTL8821CE_country_chplan_exc_map; - hal_map_sz = sizeof(RTL8821CE_country_chplan_exc_map) / sizeof(struct country_chplan); + *hal_map = RTL8821CE_country_chplan_map; + hal_map_sz = sizeof(RTL8821CE_country_chplan_map) / sizeof(struct country_chplan); #elif (RTW_DEF_MODULE_REGULATORY_CERT == RTW_MODULE_RTL8822CE) - hal_map = RTL8822CE_country_chplan_exc_map; - hal_map_sz = sizeof(RTL8822CE_country_chplan_exc_map) / sizeof(struct country_chplan); + *hal_map = RTL8822CE_country_chplan_map; + hal_map_sz = sizeof(RTL8822CE_country_chplan_map) / sizeof(struct country_chplan); #endif - if (hal_map == NULL || hal_map_sz == 0) - goto exit; - - for (i = 0; i < hal_map_sz; i++) { - if (strncmp(country_code, hal_map[i].alpha2, 2) == 0) { - ent = &hal_map[i]; - break; - } - } - -exit: - return ent; + return hal_map_sz; +} +#else + +#if 0 +static const struct country_chplan country_chplan_map[] = { + COUNTRY_CHPLAN_ENT("AD", 0x3A, 0x00, DEF , 1, 1), /* Andorra */ + COUNTRY_CHPLAN_ENT("AE", 0x5E, 0x00, DEF , 1, 1), /* United Arab Emirates */ + COUNTRY_CHPLAN_ENT("AF", 0x42, 0x00, DEF , 1, 1), /* Afghanistan */ + COUNTRY_CHPLAN_ENT("AG", 0x76, 0x00, DEF , 1, 1), /* Antigua & Barbuda */ + COUNTRY_CHPLAN_ENT("AI", 0x5E, 0x00, DEF , 1, 1), /* Anguilla(UK) */ + COUNTRY_CHPLAN_ENT("AL", 0x5E, 0x00, DEF , 1, 1), /* Albania */ + COUNTRY_CHPLAN_ENT("AM", 0x5E, 0x00, DEF , 1, 1), /* Armenia */ + COUNTRY_CHPLAN_ENT("AN", 0x76, 0x00, DEF , 1, 1), /* Netherlands Antilles */ + COUNTRY_CHPLAN_ENT("AO", 0x5E, 0x00, DEF , 1, 1), /* Angola */ + COUNTRY_CHPLAN_ENT("AQ", 0x26, 0x00, DEF , 1, 1), /* Antarctica */ + COUNTRY_CHPLAN_ENT("AR", 0x4D, 0x00, DEF , 1, 1), /* Argentina */ + COUNTRY_CHPLAN_ENT("AS", 0x76, 0x00, DEF , 1, 1), /* American Samoa */ + COUNTRY_CHPLAN_ENT("AT", 0x5E, 0x00, DEF , 1, 1), /* Austria */ + COUNTRY_CHPLAN_ENT("AU", 0x03, 0x00, DEF , 1, 1), /* Australia */ + COUNTRY_CHPLAN_ENT("AW", 0x76, 0x00, DEF , 1, 1), /* Aruba */ + COUNTRY_CHPLAN_ENT("AZ", 0x5E, 0x00, DEF , 1, 1), /* Azerbaijan */ + COUNTRY_CHPLAN_ENT("BA", 0x5E, 0x00, DEF , 1, 1), /* Bosnia & Herzegovina */ + COUNTRY_CHPLAN_ENT("BB", 0x76, 0x00, DEF , 1, 1), /* Barbados */ + COUNTRY_CHPLAN_ENT("BD", 0x5E, 0x00, DEF , 1, 1), /* Bangladesh */ + COUNTRY_CHPLAN_ENT("BE", 0x5E, 0x00, DEF , 1, 1), /* Belgium */ + COUNTRY_CHPLAN_ENT("BF", 0x5E, 0x00, DEF , 1, 1), /* Burkina Faso */ + COUNTRY_CHPLAN_ENT("BG", 0x5E, 0x00, DEF , 1, 1), /* Bulgaria */ + COUNTRY_CHPLAN_ENT("BH", 0x06, 0x00, DEF , 1, 1), /* Bahrain */ + COUNTRY_CHPLAN_ENT("BI", 0x3A, 0x00, DEF , 1, 1), /* Burundi */ + COUNTRY_CHPLAN_ENT("BJ", 0x3A, 0x00, DEF , 1, 1), /* Benin */ + COUNTRY_CHPLAN_ENT("BM", 0x76, 0x00, DEF , 1, 1), /* Bermuda (UK) */ + COUNTRY_CHPLAN_ENT("BN", 0x06, 0x00, DEF , 1, 1), /* Brunei */ + COUNTRY_CHPLAN_ENT("BO", 0x61, 0x00, DEF , 1, 1), /* Bolivia */ + COUNTRY_CHPLAN_ENT("BR", 0x62, 0x00, DEF , 1, 1), /* Brazil */ + COUNTRY_CHPLAN_ENT("BS", 0x76, 0x00, DEF , 1, 1), /* Bahamas */ + COUNTRY_CHPLAN_ENT("BT", 0x5E, 0x00, DEF , 1, 1), /* Bhutan */ + COUNTRY_CHPLAN_ENT("BV", 0x5E, 0x00, DEF , 1, 1), /* Bouvet Island (Norway) */ + COUNTRY_CHPLAN_ENT("BW", 0x5E, 0x00, DEF , 1, 1), /* Botswana */ + COUNTRY_CHPLAN_ENT("BY", 0x08, 0x00, DEF , 0, 1), /* Belarus */ + COUNTRY_CHPLAN_ENT("BZ", 0x76, 0x00, DEF , 1, 1), /* Belize */ + COUNTRY_CHPLAN_ENT("CA", 0x2B, 0x00, DEF , 1, 1), /* Canada */ + COUNTRY_CHPLAN_ENT("CC", 0x3A, 0x00, DEF , 1, 1), /* Cocos (Keeling) Islands (Australia) */ + COUNTRY_CHPLAN_ENT("CD", 0x3A, 0x00, DEF , 1, 1), /* Congo, Republic of the */ + COUNTRY_CHPLAN_ENT("CF", 0x3A, 0x00, DEF , 1, 1), /* Central African Republic */ + COUNTRY_CHPLAN_ENT("CG", 0x3A, 0x00, DEF , 1, 1), /* Congo, Democratic Republic of the. Zaire */ + COUNTRY_CHPLAN_ENT("CH", 0x5E, 0x00, DEF , 1, 1), /* Switzerland */ + COUNTRY_CHPLAN_ENT("CI", 0x42, 0x00, DEF , 1, 1), /* Cote d'Ivoire */ + COUNTRY_CHPLAN_ENT("CK", 0x5E, 0x00, DEF , 1, 1), /* Cook Islands */ + COUNTRY_CHPLAN_ENT("CL", 0x76, 0x00, CHILE , 1, 1), /* Chile */ + COUNTRY_CHPLAN_ENT("CM", 0x5E, 0x00, DEF , 1, 1), /* Cameroon */ + COUNTRY_CHPLAN_ENT("CN", 0x06, 0x00, CN , 1, 1), /* China */ + COUNTRY_CHPLAN_ENT("CO", 0x76, 0x00, DEF , 1, 1), /* Colombia */ + COUNTRY_CHPLAN_ENT("CR", 0x76, 0x00, DEF , 1, 1), /* Costa Rica */ + COUNTRY_CHPLAN_ENT("CV", 0x5E, 0x00, DEF , 1, 1), /* Cape Verde */ + COUNTRY_CHPLAN_ENT("CX", 0x03, 0x00, DEF , 1, 1), /* Christmas Island (Australia) */ + COUNTRY_CHPLAN_ENT("CY", 0x5E, 0x00, DEF , 1, 1), /* Cyprus */ + COUNTRY_CHPLAN_ENT("CZ", 0x5E, 0x00, DEF , 1, 1), /* Czech Republic */ + COUNTRY_CHPLAN_ENT("DE", 0x5E, 0x00, DEF , 1, 1), /* Germany */ + COUNTRY_CHPLAN_ENT("DJ", 0x3A, 0x00, DEF , 1, 1), /* Djibouti */ + COUNTRY_CHPLAN_ENT("DK", 0x5E, 0x00, DEF , 1, 1), /* Denmark */ + COUNTRY_CHPLAN_ENT("DM", 0x76, 0x00, DEF , 1, 1), /* Dominica */ + COUNTRY_CHPLAN_ENT("DO", 0x76, 0x00, DEF , 1, 1), /* Dominican Republic */ + COUNTRY_CHPLAN_ENT("DZ", 0x00, 0x00, DEF , 1, 1), /* Algeria */ + COUNTRY_CHPLAN_ENT("EC", 0x76, 0x00, DEF , 1, 1), /* Ecuador */ + COUNTRY_CHPLAN_ENT("EE", 0x5E, 0x00, DEF , 1, 1), /* Estonia */ + COUNTRY_CHPLAN_ENT("EG", 0x3C, 0x00, DEF , 1, 1), /* Egypt */ + COUNTRY_CHPLAN_ENT("EH", 0x3C, 0x00, DEF , 1, 1), /* Western Sahara */ + COUNTRY_CHPLAN_ENT("ER", 0x3A, 0x00, DEF , 1, 1), /* Eritrea */ + COUNTRY_CHPLAN_ENT("ES", 0x5E, 0x00, DEF , 1, 1), /* Spain, Canary Islands, Ceuta, Melilla */ + COUNTRY_CHPLAN_ENT("ET", 0x3A, 0x00, DEF , 1, 1), /* Ethiopia */ + COUNTRY_CHPLAN_ENT("FI", 0x5E, 0x00, DEF , 1, 1), /* Finland */ + COUNTRY_CHPLAN_ENT("FJ", 0x76, 0x00, DEF , 1, 1), /* Fiji */ + COUNTRY_CHPLAN_ENT("FK", 0x3A, 0x00, DEF , 1, 1), /* Falkland Islands (Islas Malvinas) (UK) */ + COUNTRY_CHPLAN_ENT("FM", 0x76, 0x00, DEF , 1, 1), /* Micronesia, Federated States of (USA) */ + COUNTRY_CHPLAN_ENT("FO", 0x3A, 0x00, DEF , 1, 1), /* Faroe Islands (Denmark) */ + COUNTRY_CHPLAN_ENT("FR", 0x5E, 0x00, DEF , 1, 1), /* France */ + COUNTRY_CHPLAN_ENT("GA", 0x5E, 0x00, DEF , 1, 1), /* Gabon */ + COUNTRY_CHPLAN_ENT("GB", 0x5E, 0x00, DEF , 1, 1), /* Great Britain (United Kingdom; England) */ + COUNTRY_CHPLAN_ENT("GD", 0x76, 0x00, DEF , 1, 1), /* Grenada */ + COUNTRY_CHPLAN_ENT("GE", 0x5E, 0x00, DEF , 1, 1), /* Georgia */ + COUNTRY_CHPLAN_ENT("GF", 0x3A, 0x00, DEF , 1, 1), /* French Guiana */ + COUNTRY_CHPLAN_ENT("GG", 0x5E, 0x00, DEF , 1, 1), /* Guernsey (UK) */ + COUNTRY_CHPLAN_ENT("GH", 0x5E, 0x00, DEF , 1, 1), /* Ghana */ + COUNTRY_CHPLAN_ENT("GI", 0x3A, 0x00, DEF , 1, 1), /* Gibraltar (UK) */ + COUNTRY_CHPLAN_ENT("GL", 0x5E, 0x00, DEF , 1, 1), /* Greenland (Denmark) */ + COUNTRY_CHPLAN_ENT("GM", 0x3A, 0x00, DEF , 1, 1), /* Gambia */ + COUNTRY_CHPLAN_ENT("GN", 0x3A, 0x00, DEF , 1, 1), /* Guinea */ + COUNTRY_CHPLAN_ENT("GP", 0x3A, 0x00, DEF , 1, 1), /* Guadeloupe (France) */ + COUNTRY_CHPLAN_ENT("GQ", 0x5E, 0x00, DEF , 1, 1), /* Equatorial Guinea */ + COUNTRY_CHPLAN_ENT("GR", 0x5E, 0x00, DEF , 1, 1), /* Greece */ + COUNTRY_CHPLAN_ENT("GS", 0x3A, 0x00, DEF , 1, 1), /* South Georgia and the Sandwich Islands (UK) */ + COUNTRY_CHPLAN_ENT("GT", 0x76, 0x00, DEF , 1, 1), /* Guatemala */ + COUNTRY_CHPLAN_ENT("GU", 0x76, 0x00, DEF , 1, 1), /* Guam (USA) */ + COUNTRY_CHPLAN_ENT("GW", 0x3A, 0x00, DEF , 1, 1), /* Guinea-Bissau */ + COUNTRY_CHPLAN_ENT("GY", 0x44, 0x00, DEF , 1, 1), /* Guyana */ + COUNTRY_CHPLAN_ENT("HK", 0x5E, 0x00, DEF , 1, 1), /* Hong Kong */ + COUNTRY_CHPLAN_ENT("HM", 0x03, 0x00, DEF , 1, 1), /* Heard and McDonald Islands (Australia) */ + COUNTRY_CHPLAN_ENT("HN", 0x32, 0x00, DEF , 1, 1), /* Honduras */ + COUNTRY_CHPLAN_ENT("HR", 0x5E, 0x00, DEF , 1, 1), /* Croatia */ + COUNTRY_CHPLAN_ENT("HT", 0x76, 0x00, DEF , 0, 1), /* Haiti */ + COUNTRY_CHPLAN_ENT("HU", 0x5E, 0x00, DEF , 1, 1), /* Hungary */ + COUNTRY_CHPLAN_ENT("ID", 0x5D, 0x00, DEF , 1, 1), /* Indonesia */ + COUNTRY_CHPLAN_ENT("IE", 0x5E, 0x00, DEF , 1, 1), /* Ireland */ + COUNTRY_CHPLAN_ENT("IL", 0x5E, 0x00, DEF , 1, 1), /* Israel */ + COUNTRY_CHPLAN_ENT("IM", 0x3A, 0x00, DEF , 1, 1), /* Isle of Man (UK) */ + COUNTRY_CHPLAN_ENT("IN", 0x06, 0x00, DEF , 1, 1), /* India */ + COUNTRY_CHPLAN_ENT("IO", 0x3A, 0x00, DEF , 1, 1), /* British Indian Ocean Territory (UK) */ + COUNTRY_CHPLAN_ENT("IQ", 0x05, 0x00, DEF , 1, 1), /* Iraq */ + COUNTRY_CHPLAN_ENT("IR", 0x3A, 0x00, DEF , 0, 0), /* Iran */ + COUNTRY_CHPLAN_ENT("IS", 0x5E, 0x00, DEF , 1, 1), /* Iceland */ + COUNTRY_CHPLAN_ENT("IT", 0x5E, 0x00, DEF , 1, 1), /* Italy */ + COUNTRY_CHPLAN_ENT("JE", 0x3A, 0x00, DEF , 1, 1), /* Jersey (UK) */ + COUNTRY_CHPLAN_ENT("JM", 0x76, 0x00, DEF , 1, 1), /* Jamaica */ + COUNTRY_CHPLAN_ENT("JO", 0x05, 0x00, DEF , 1, 1), /* Jordan */ + COUNTRY_CHPLAN_ENT("JP", 0x7D, 0x00, DEF , 1, 1), /* Japan- Telec */ + COUNTRY_CHPLAN_ENT("KE", 0x5E, 0x00, DEF , 1, 1), /* Kenya */ + COUNTRY_CHPLAN_ENT("KG", 0x5E, 0x00, DEF , 1, 1), /* Kyrgyzstan */ + COUNTRY_CHPLAN_ENT("KH", 0x5E, 0x00, DEF , 1, 1), /* Cambodia */ + COUNTRY_CHPLAN_ENT("KI", 0x5E, 0x00, DEF , 1, 1), /* Kiribati */ + COUNTRY_CHPLAN_ENT("KM", 0x3A, 0x00, DEF , 1, 1), /* Comoros */ + COUNTRY_CHPLAN_ENT("KN", 0x76, 0x00, DEF , 1, 1), /* Saint Kitts and Nevis */ + COUNTRY_CHPLAN_ENT("KR", 0x4B, 0x00, DEF , 1, 1), /* South Korea */ + COUNTRY_CHPLAN_ENT("KW", 0x5E, 0x00, DEF , 1, 1), /* Kuwait */ + COUNTRY_CHPLAN_ENT("KY", 0x76, 0x00, DEF , 1, 1), /* Cayman Islands (UK) */ + COUNTRY_CHPLAN_ENT("KZ", 0x5E, 0x00, DEF , 1, 1), /* Kazakhstan */ + COUNTRY_CHPLAN_ENT("LA", 0x5E, 0x00, DEF , 1, 1), /* Laos */ + COUNTRY_CHPLAN_ENT("LB", 0x5E, 0x00, DEF , 1, 1), /* Lebanon */ + COUNTRY_CHPLAN_ENT("LC", 0x76, 0x00, DEF , 1, 1), /* Saint Lucia */ + COUNTRY_CHPLAN_ENT("LI", 0x5E, 0x00, DEF , 1, 1), /* Liechtenstein */ + COUNTRY_CHPLAN_ENT("LK", 0x5E, 0x00, DEF , 1, 1), /* Sri Lanka */ + COUNTRY_CHPLAN_ENT("LR", 0x5E, 0x00, DEF , 1, 1), /* Liberia */ + COUNTRY_CHPLAN_ENT("LS", 0x5E, 0x00, DEF , 1, 1), /* Lesotho */ + COUNTRY_CHPLAN_ENT("LT", 0x5E, 0x00, DEF , 1, 1), /* Lithuania */ + COUNTRY_CHPLAN_ENT("LU", 0x5E, 0x00, DEF , 1, 1), /* Luxembourg */ + COUNTRY_CHPLAN_ENT("LV", 0x5E, 0x00, DEF , 1, 1), /* Latvia */ + COUNTRY_CHPLAN_ENT("LY", 0x5E, 0x00, DEF , 1, 1), /* Libya */ + COUNTRY_CHPLAN_ENT("MA", 0x3C, 0x00, DEF , 1, 1), /* Morocco */ + COUNTRY_CHPLAN_ENT("MC", 0x5E, 0x00, DEF , 1, 1), /* Monaco */ + COUNTRY_CHPLAN_ENT("MD", 0x5E, 0x00, DEF , 1, 1), /* Moldova */ + COUNTRY_CHPLAN_ENT("ME", 0x3A, 0x00, DEF , 1, 1), /* Montenegro */ + COUNTRY_CHPLAN_ENT("MF", 0x76, 0x00, DEF , 1, 1), /* Saint Martin */ + COUNTRY_CHPLAN_ENT("MG", 0x5E, 0x00, DEF , 1, 1), /* Madagascar */ + COUNTRY_CHPLAN_ENT("MH", 0x76, 0x00, DEF , 1, 1), /* Marshall Islands (USA) */ + COUNTRY_CHPLAN_ENT("MK", 0x3A, 0x00, DEF , 1, 1), /* Republic of Macedonia (FYROM) */ + COUNTRY_CHPLAN_ENT("ML", 0x5E, 0x00, DEF , 1, 1), /* Mali */ + COUNTRY_CHPLAN_ENT("MM", 0x3A, 0x00, DEF , 1, 1), /* Burma (Myanmar) */ + COUNTRY_CHPLAN_ENT("MN", 0x5E, 0x00, DEF , 1, 1), /* Mongolia */ + COUNTRY_CHPLAN_ENT("MO", 0x5E, 0x00, DEF , 1, 1), /* Macau */ + COUNTRY_CHPLAN_ENT("MP", 0x76, 0x00, DEF , 1, 1), /* Northern Mariana Islands (USA) */ + COUNTRY_CHPLAN_ENT("MQ", 0x3A, 0x00, DEF , 1, 1), /* Martinique (France) */ + COUNTRY_CHPLAN_ENT("MR", 0x5E, 0x00, DEF , 1, 1), /* Mauritania */ + COUNTRY_CHPLAN_ENT("MS", 0x3A, 0x00, DEF , 1, 1), /* Montserrat (UK) */ + COUNTRY_CHPLAN_ENT("MT", 0x5E, 0x00, DEF , 1, 1), /* Malta */ + COUNTRY_CHPLAN_ENT("MU", 0x5E, 0x00, DEF , 1, 1), /* Mauritius */ + COUNTRY_CHPLAN_ENT("MV", 0x3C, 0x00, DEF , 1, 1), /* Maldives */ + COUNTRY_CHPLAN_ENT("MW", 0x5E, 0x00, DEF , 1, 1), /* Malawi */ + COUNTRY_CHPLAN_ENT("MX", 0x4D, 0x00, DEF , 1, 1), /* Mexico */ + COUNTRY_CHPLAN_ENT("MY", 0x07, 0x00, DEF , 1, 1), /* Malaysia */ + COUNTRY_CHPLAN_ENT("MZ", 0x5E, 0x00, DEF , 1, 1), /* Mozambique */ + COUNTRY_CHPLAN_ENT("NA", 0x5E, 0x00, DEF , 1, 1), /* Namibia */ + COUNTRY_CHPLAN_ENT("NC", 0x3A, 0x00, DEF , 1, 1), /* New Caledonia */ + COUNTRY_CHPLAN_ENT("NE", 0x5E, 0x00, DEF , 1, 1), /* Niger */ + COUNTRY_CHPLAN_ENT("NF", 0x03, 0x00, DEF , 1, 1), /* Norfolk Island (Australia) */ + COUNTRY_CHPLAN_ENT("NG", 0x75, 0x00, DEF , 1, 1), /* Nigeria */ + COUNTRY_CHPLAN_ENT("NI", 0x76, 0x00, DEF , 1, 1), /* Nicaragua */ + COUNTRY_CHPLAN_ENT("NL", 0x5E, 0x00, DEF , 1, 1), /* Netherlands */ + COUNTRY_CHPLAN_ENT("NO", 0x5E, 0x00, DEF , 1, 1), /* Norway */ + COUNTRY_CHPLAN_ENT("NP", 0x06, 0x00, DEF , 1, 1), /* Nepal */ + COUNTRY_CHPLAN_ENT("NR", 0x3A, 0x00, DEF , 1, 1), /* Nauru */ + COUNTRY_CHPLAN_ENT("NU", 0x03, 0x00, DEF , 1, 1), /* Niue */ + COUNTRY_CHPLAN_ENT("NZ", 0x03, 0x00, DEF , 1, 1), /* New Zealand */ + COUNTRY_CHPLAN_ENT("OM", 0x5E, 0x00, DEF , 1, 1), /* Oman */ + COUNTRY_CHPLAN_ENT("PA", 0x76, 0x00, DEF , 1, 1), /* Panama */ + COUNTRY_CHPLAN_ENT("PE", 0x76, 0x00, DEF , 1, 1), /* Peru */ + COUNTRY_CHPLAN_ENT("PF", 0x3A, 0x00, DEF , 1, 1), /* French Polynesia (France) */ + COUNTRY_CHPLAN_ENT("PG", 0x5E, 0x00, DEF , 1, 1), /* Papua New Guinea */ + COUNTRY_CHPLAN_ENT("PH", 0x5E, 0x00, DEF , 1, 1), /* Philippines */ + COUNTRY_CHPLAN_ENT("PK", 0x51, 0x00, DEF , 1, 1), /* Pakistan */ + COUNTRY_CHPLAN_ENT("PL", 0x5E, 0x00, DEF , 1, 1), /* Poland */ + COUNTRY_CHPLAN_ENT("PM", 0x3A, 0x00, DEF , 1, 1), /* Saint Pierre and Miquelon (France) */ + COUNTRY_CHPLAN_ENT("PR", 0x76, 0x00, DEF , 1, 1), /* Puerto Rico */ + COUNTRY_CHPLAN_ENT("PS", 0x5E, 0x00, DEF , 1, 1), /* Palestine */ + COUNTRY_CHPLAN_ENT("PT", 0x5E, 0x00, DEF , 1, 1), /* Portugal */ + COUNTRY_CHPLAN_ENT("PW", 0x76, 0x00, DEF , 1, 1), /* Palau */ + COUNTRY_CHPLAN_ENT("PY", 0x76, 0x00, DEF , 1, 1), /* Paraguay */ + COUNTRY_CHPLAN_ENT("QA", 0x5E, 0x00, QATAR , 1, 1), /* Qatar */ + COUNTRY_CHPLAN_ENT("RE", 0x3A, 0x00, DEF , 1, 1), /* Reunion (France) */ + COUNTRY_CHPLAN_ENT("RO", 0x5E, 0x00, DEF , 1, 1), /* Romania */ + COUNTRY_CHPLAN_ENT("RS", 0x5E, 0x00, DEF , 1, 1), /* Serbia */ + COUNTRY_CHPLAN_ENT("RU", 0x09, 0x00, DEF , 1, 1), /* Russia(fac/gost), Kaliningrad */ + COUNTRY_CHPLAN_ENT("RW", 0x5E, 0x00, DEF , 1, 1), /* Rwanda */ + COUNTRY_CHPLAN_ENT("SA", 0x5E, 0x00, DEF , 1, 1), /* Saudi Arabia */ + COUNTRY_CHPLAN_ENT("SB", 0x3A, 0x00, DEF , 1, 1), /* Solomon Islands */ + COUNTRY_CHPLAN_ENT("SC", 0x76, 0x00, DEF , 1, 1), /* Seychelles */ + COUNTRY_CHPLAN_ENT("SE", 0x5E, 0x00, DEF , 1, 1), /* Sweden */ + COUNTRY_CHPLAN_ENT("SG", 0x5E, 0x00, DEF , 1, 1), /* Singapore */ + COUNTRY_CHPLAN_ENT("SH", 0x3A, 0x00, DEF , 1, 1), /* Saint Helena (UK) */ + COUNTRY_CHPLAN_ENT("SI", 0x5E, 0x00, DEF , 1, 1), /* Slovenia */ + COUNTRY_CHPLAN_ENT("SJ", 0x3A, 0x00, DEF , 1, 1), /* Svalbard (Norway) */ + COUNTRY_CHPLAN_ENT("SK", 0x5E, 0x00, DEF , 1, 1), /* Slovakia */ + COUNTRY_CHPLAN_ENT("SL", 0x5E, 0x00, DEF , 1, 1), /* Sierra Leone */ + COUNTRY_CHPLAN_ENT("SM", 0x3A, 0x00, DEF , 1, 1), /* San Marino */ + COUNTRY_CHPLAN_ENT("SN", 0x3A, 0x00, DEF , 1, 1), /* Senegal */ + COUNTRY_CHPLAN_ENT("SO", 0x3A, 0x00, DEF , 1, 1), /* Somalia */ + COUNTRY_CHPLAN_ENT("SR", 0x74, 0x00, DEF , 1, 1), /* Suriname */ + COUNTRY_CHPLAN_ENT("ST", 0x76, 0x00, DEF , 1, 1), /* Sao Tome and Principe */ + COUNTRY_CHPLAN_ENT("SV", 0x76, 0x00, DEF , 1, 1), /* El Salvador */ + COUNTRY_CHPLAN_ENT("SX", 0x76, 0x00, DEF , 1, 1), /* Sint Marteen */ + COUNTRY_CHPLAN_ENT("SZ", 0x5E, 0x00, DEF , 1, 1), /* Swaziland */ + COUNTRY_CHPLAN_ENT("TC", 0x3A, 0x00, DEF , 1, 1), /* Turks and Caicos Islands (UK) */ + COUNTRY_CHPLAN_ENT("TD", 0x3A, 0x00, DEF , 1, 1), /* Chad */ + COUNTRY_CHPLAN_ENT("TF", 0x3A, 0x00, DEF , 1, 1), /* French Southern and Antarctic Lands (FR Southern Territories) */ + COUNTRY_CHPLAN_ENT("TG", 0x5E, 0x00, DEF , 1, 1), /* Togo */ + COUNTRY_CHPLAN_ENT("TH", 0x5E, 0x00, DEF , 1, 1), /* Thailand */ + COUNTRY_CHPLAN_ENT("TJ", 0x5E, 0x00, DEF , 1, 1), /* Tajikistan */ + COUNTRY_CHPLAN_ENT("TK", 0x03, 0x00, DEF , 1, 1), /* Tokelau */ + COUNTRY_CHPLAN_ENT("TM", 0x3A, 0x00, DEF , 1, 1), /* Turkmenistan */ + COUNTRY_CHPLAN_ENT("TN", 0x04, 0x00, DEF , 1, 1), /* Tunisia */ + COUNTRY_CHPLAN_ENT("TO", 0x3A, 0x00, DEF , 1, 1), /* Tonga */ + COUNTRY_CHPLAN_ENT("TR", 0x5E, 0x00, DEF , 1, 1), /* Turkey, Northern Cyprus */ + COUNTRY_CHPLAN_ENT("TT", 0x76, 0x00, DEF , 1, 1), /* Trinidad & Tobago */ + COUNTRY_CHPLAN_ENT("TV", 0x21, 0x00, DEF , 0, 0), /* Tuvalu */ + COUNTRY_CHPLAN_ENT("TW", 0x76, 0x00, DEF , 1, 1), /* Taiwan */ + COUNTRY_CHPLAN_ENT("TZ", 0x5E, 0x00, DEF , 1, 1), /* Tanzania */ + COUNTRY_CHPLAN_ENT("UA", 0x5E, 0x00, UKRAINE, 1, 1), /* Ukraine */ + COUNTRY_CHPLAN_ENT("UG", 0x3A, 0x00, DEF , 1, 1), /* Uganda */ + COUNTRY_CHPLAN_ENT("US", 0x76, 0x7F, DEF , 1, 1), /* United States of America (USA) */ + COUNTRY_CHPLAN_ENT("UY", 0x30, 0x00, DEF , 1, 1), /* Uruguay */ + COUNTRY_CHPLAN_ENT("UZ", 0x3C, 0x00, DEF , 1, 1), /* Uzbekistan */ + COUNTRY_CHPLAN_ENT("VA", 0x3A, 0x00, DEF , 1, 1), /* Holy See (Vatican City) */ + COUNTRY_CHPLAN_ENT("VC", 0x76, 0x00, DEF , 1, 1), /* Saint Vincent and the Grenadines */ + COUNTRY_CHPLAN_ENT("VE", 0x30, 0x00, DEF , 1, 1), /* Venezuela */ + COUNTRY_CHPLAN_ENT("VG", 0x76, 0x00, DEF , 1, 1), /* British Virgin Islands (UK) */ + COUNTRY_CHPLAN_ENT("VI", 0x76, 0x00, DEF , 1, 1), /* United States Virgin Islands (USA) */ + COUNTRY_CHPLAN_ENT("VN", 0x5E, 0x00, DEF , 1, 1), /* Vietnam */ + COUNTRY_CHPLAN_ENT("VU", 0x26, 0x00, DEF , 1, 1), /* Vanuatu */ + COUNTRY_CHPLAN_ENT("WF", 0x3A, 0x00, DEF , 1, 1), /* Wallis and Futuna (France) */ + COUNTRY_CHPLAN_ENT("WS", 0x76, 0x00, DEF , 1, 1), /* Samoa */ + COUNTRY_CHPLAN_ENT("XK", 0x3A, 0x00, DEF , 1, 1), /* Kosovo */ + COUNTRY_CHPLAN_ENT("YE", 0x3A, 0x00, DEF , 1, 1), /* Yemen */ + COUNTRY_CHPLAN_ENT("YT", 0x5E, 0x00, DEF , 1, 1), /* Mayotte (France) */ + COUNTRY_CHPLAN_ENT("ZA", 0x5E, 0x00, DEF , 1, 1), /* South Africa */ + COUNTRY_CHPLAN_ENT("ZM", 0x5E, 0x00, DEF , 1, 1), /* Zambia */ + COUNTRY_CHPLAN_ENT("ZW", 0x5E, 0x00, DEF , 1, 1), /* Zimbabwe */ +}; +#endif +#endif /* CONFIG_CUSTOMIZED_COUNTRY_CHPLAN_MAP or RTW_DEF_MODULE_REGULATORY_CERT or newest */ + +/* +* rtw_get_chplan_worldwide - +* @ent: the buf to copy country_chplan entry content +*/ +void rtw_get_chplan_worldwide(struct country_chplan *ent) +{ + _rtw_memcpy(ent, &world_wide_chplan, sizeof(*ent)); } -#endif /* CONFIG_CUSTOMIZED_COUNTRY_CHPLAN_MAP or RTW_DEF_MODULE_REGULATORY_CERT */ /* * rtw_get_chplan_from_country - * @country_code: string of country code +* @ent: the buf to copy country_chplan entry content * -* Return pointer of struct country_chplan entry or NULL when unsupported country_code is given +* Return _TRUE or _FALSE when unsupported country_code is given */ -const struct country_chplan *rtw_get_chplan_from_country(const char *country_code) +bool rtw_get_chplan_from_country(const char *country_code, struct country_chplan *ent) { -#if RTW_DEF_MODULE_REGULATORY_CERT - const struct country_chplan *exc_ent = NULL; -#endif - const struct country_chplan *ent = NULL; const struct country_chplan *map = NULL; u16 map_sz = 0; char code[2]; @@ -422,42 +2803,287 @@ const struct country_chplan *rtw_get_chplan_from_country(const char *country_cod #ifdef CONFIG_CUSTOMIZED_COUNTRY_CHPLAN_MAP map = CUSTOMIZED_country_chplan_map; map_sz = sizeof(CUSTOMIZED_country_chplan_map) / sizeof(struct country_chplan); +#elif RTW_DEF_MODULE_REGULATORY_CERT + map_sz = rtw_def_module_country_chplan_map(&map); #else - #if RTW_DEF_MODULE_REGULATORY_CERT - exc_ent = rtw_def_module_get_chplan_from_country(code); - #endif map = country_chplan_map; map_sz = sizeof(country_chplan_map) / sizeof(struct country_chplan); #endif for (i = 0; i < map_sz; i++) { if (strncmp(code, map[i].alpha2, 2) == 0) { - ent = &map[i]; - break; + if (ent) + _rtw_memcpy(ent, &map[i], sizeof(*ent)); + return _TRUE; } } - #if RTW_DEF_MODULE_REGULATORY_CERT - if (!ent || !(COUNTRY_CHPLAN_DEF_MODULE_FALGS(ent) & RTW_DEF_MODULE_REGULATORY_CERT)) - exc_ent = ent = NULL; - if (exc_ent) - ent = exc_ent; + return _FALSE; +} + +void rtw_chplan_ioctl_input_mapping(u16 *chplan, u16 *chplan_6g) +{ + if (chplan) { + if (*chplan == RTW_CHPLAN_IOCTL_UNSPECIFIED) + *chplan = RTW_CHPLAN_UNSPECIFIED; + else if (*chplan == RTW_CHPLAN_IOCTL_NULL) + *chplan = RTW_CHPLAN_NULL; + } + + if (chplan_6g) { + if (*chplan_6g == RTW_CHPLAN_IOCTL_UNSPECIFIED) + *chplan_6g = RTW_CHPLAN_6G_UNSPECIFIED; + else if (*chplan_6g == RTW_CHPLAN_IOCTL_NULL) + *chplan_6g = RTW_CHPLAN_6G_NULL; + } +} + +bool rtw_chplan_ids_is_world_wide(u8 chplan, u8 chplan_6g) +{ + return !(chplan == RTW_CHPLAN_NULL + #if CONFIG_IEEE80211_BAND_6GHZ + && chplan_6g == RTW_CHPLAN_6G_NULL + #endif + ) + && (chplan == RTW_CHPLAN_WORLDWIDE || chplan == RTW_CHPLAN_NULL) + #if CONFIG_IEEE80211_BAND_6GHZ + && (chplan_6g == RTW_CHPLAN_6G_WORLDWIDE || chplan_6g == RTW_CHPLAN_6G_NULL) + #endif + ; +} + +/* + * Check if the @param ch, bw, offset is valid for the given @param ent + * @ch_set: the given channel set + * @ch: the given channel number + * @bw: the given bandwidth + * @offset: the given channel offset + * + * return valid (1) or not (0) + */ +u8 rtw_country_chplan_is_chbw_valid(struct country_chplan *ent, BAND_TYPE band, u8 ch, u8 bw, u8 offset + , bool allow_primary_passive, bool allow_passive, struct registry_priv *regsty) +{ + u8 chplan_6g = RTW_CHPLAN_6G_NULL; + u8 valid = 0; + + if (bw >= CHANNEL_WIDTH_80 && !COUNTRY_CHPLAN_EN_11AC(ent)) + goto exit; + + #if CONFIG_IEEE80211_BAND_6GHZ + chplan_6g = ent->chplan_6g; #endif - return ent; + valid = rtw_chplan_is_chbw_valid(ent->chplan, chplan_6g, band, ch, bw, offset + , allow_primary_passive, allow_passive, regsty); + +exit: + return valid; } -void dump_country_chplan(void *sel, const struct country_chplan *ent) +static void rtw_country_chplan_get_edcca_modes(const struct country_chplan *ent, u8 modes[]) { - RTW_PRINT_SEL(sel, "\"%c%c\", 0x%02X%s\n" - , ent->alpha2[0], ent->alpha2[1], ent->chplan - , COUNTRY_CHPLAN_EN_11AC(ent) ? " ac" : "" - ); + modes[BAND_ON_2_4G] = + ent->edcca_mode_2g_override != RTW_EDCCA_DEF ? ent->edcca_mode_2g_override : + rtw_regd_to_edcca_mode(rtw_chplan_get_default_regd_2g(ent->chplan)); + #if CONFIG_IEEE80211_BAND_5GHZ + modes[BAND_ON_5G] = + ent->edcca_mode_5g_override != RTW_EDCCA_DEF ? ent->edcca_mode_5g_override : + rtw_regd_to_edcca_mode(rtw_chplan_get_default_regd_5g(ent->chplan)); + #endif + #if CONFIG_IEEE80211_BAND_6GHZ + modes[BAND_ON_6G] = + ent->edcca_mode_6g_override != RTW_EDCCA_DEF ? ent->edcca_mode_6g_override : + rtw_regd_to_edcca_mode(rtw_chplan_get_default_regd_6g(ent->chplan_6g)); + #endif } -void dump_country_chplan_map(void *sel) +static void rtw_country_chplan_get_txpwr_lmts(const struct country_chplan *ent, u8 txpwr_lmt[]) { - const struct country_chplan *ent; + txpwr_lmt[BAND_ON_2_4G] = + ent->txpwr_lmt_override != TXPWR_LMT_DEF ? ent->txpwr_lmt_override : + rtw_regd_to_txpwr_lmt(rtw_chplan_get_default_regd_2g(ent->chplan)); + #if CONFIG_IEEE80211_BAND_5GHZ + txpwr_lmt[BAND_ON_5G] = + ent->txpwr_lmt_override != TXPWR_LMT_DEF ? ent->txpwr_lmt_override : + rtw_regd_to_txpwr_lmt(rtw_chplan_get_default_regd_5g(ent->chplan)); + #endif + #if CONFIG_IEEE80211_BAND_6GHZ + txpwr_lmt[BAND_ON_6G] = + ent->txpwr_lmt_override != TXPWR_LMT_DEF ? ent->txpwr_lmt_override : + rtw_regd_to_txpwr_lmt(rtw_chplan_get_default_regd_6g(ent->chplan_6g)); + #endif +} + +#ifdef CONFIG_80211D +const char *const _cis_status_str[] = { + [COUNTRY_IE_SLAVE_NOCOUNTRY] = "NOCOUNTRY", + [COUNTRY_IE_SLAVE_UNKNOWN] = "UNKNOWN", + [COUNTRY_IE_SLAVE_OPCH_NOEXIST] = "OPCH_NOEXIST", + [COUNTRY_IE_SLAVE_APPLICABLE] = "APPLICABLE", + [COUNTRY_IE_SLAVE_STATUS_NUM] = "INVALID", +}; + +void dump_country_ie_slave_records(void *sel, struct rf_ctl_t *rfctl, bool skip_noset) +{ + int i; + + RTW_PRINT_SEL(sel, " %-6s %-4s %-4s %s\n", "alpha2", "band", "opch", "status"); + for (i = 0; i < CONFIG_IFACE_NUMBER; i++) { + if (skip_noset && strncmp(rfctl->cisr[i].alpha2, "\x00\x00", 2) == 0) + continue; + RTW_PRINT_SEL(sel, "%c%d "ALPHA2_FMT" %4s %4u %s\n" + , i == rfctl->effected_cisr_id ? '*' : ' ', i, ALPHA2_ARG(rfctl->cisr[i].alpha2) + , band_str(rfctl->cisr[i].band), rfctl->cisr[i].opch, cis_status_str(rfctl->cisr[i].status)); + } +} + +enum country_ie_slave_status rtw_get_chplan_from_recv_country_ie(_adapter *adapter + , BAND_TYPE band, u8 opch, const u8 *country_ie, struct country_chplan *ent + , struct country_ie_slave_record *cisr, const char *caller_msg) +{ + struct registry_priv *regsty = adapter_to_regsty(adapter); + const char *country_code = country_ie ? country_ie + 2 : NULL; + u8 chplan_6g = RTW_CHPLAN_6G_NULL; + enum country_ie_slave_status ret; + + _rtw_memset(ent, 0, sizeof(*ent)); + + if (!country_code || strncmp(country_code, "XX", 2) == 0) { + if (caller_msg && country_code) + RTW_INFO("%s("ADPT_FMT") noncountry \"XX\"\n", caller_msg, ADPT_ARG(adapter)); + ret = COUNTRY_IE_SLAVE_NOCOUNTRY; + goto exit; + } + + if (!rtw_get_chplan_from_country(country_code, ent)) { + if (caller_msg) { + if (is_alpha(country_code[0]) == _FALSE || is_alpha(country_code[1]) == _FALSE) { + RTW_INFO("%s("ADPT_FMT") country_code is not alpha2, use world wide instead\n" + , caller_msg, ADPT_ARG(adapter)); + } else { + RTW_INFO("%s("ADPT_FMT") unsupported country_code:\"%c%c\", use world wide\n" + , caller_msg, ADPT_ARG(adapter), country_code[0], country_code[1]); + } + } + rtw_get_chplan_worldwide(ent); + ret = COUNTRY_IE_SLAVE_UNKNOWN; + goto exit; + } + + #if CONFIG_IEEE80211_BAND_6GHZ + chplan_6g = ent->chplan_6g; + #endif + + if (!rtw_chplan_is_chbw_valid(ent->chplan, chplan_6g, band, opch + , CHANNEL_WIDTH_20, HAL_PRIME_CHNL_OFFSET_DONT_CARE, 1, 1, regsty) + ) { + u8 edcca_modes[BAND_MAX]; + + if (caller_msg) { + RTW_INFO("%s("ADPT_FMT") \"%c%c\" no band:%s ch:%u, use world wide with ori edcca modes\n" + , caller_msg, ADPT_ARG(adapter), country_code[0], country_code[1], band_str(band), opch); + } + rtw_country_chplan_get_edcca_modes(ent, edcca_modes); + rtw_get_chplan_worldwide(ent); + ent->edcca_mode_2g_override = edcca_modes[BAND_ON_2_4G]; + #if CONFIG_IEEE80211_BAND_5GHZ + ent->edcca_mode_5g_override = edcca_modes[BAND_ON_5G]; + #endif + #if CONFIG_IEEE80211_BAND_6GHZ + ent->edcca_mode_6g_override = edcca_modes[BAND_ON_6G]; + #endif + ret = COUNTRY_IE_SLAVE_OPCH_NOEXIST; + goto exit; + } + + if (caller_msg) { + RTW_INFO("%s("ADPT_FMT") country_code:\"%c%c\" is applicapble\n" + , caller_msg, ADPT_ARG(adapter), country_code[0], country_code[1]); + } + ret = COUNTRY_IE_SLAVE_APPLICABLE; + +exit: + if (cisr) { + _rtw_memcpy(cisr->alpha2, country_code ? country_code : "\x00\x00", 2); + cisr->band = band; + cisr->opch = opch; + cisr->status = ret; + } + + return ret; +} + +enum country_ie_slave_status rtw_get_chplan_from_cisrs(struct rf_ctl_t *rfctl + , struct country_chplan *ent, const char *caller_msg) +{ + struct dvobj_priv *dvobj = rfctl_to_dvobj(rfctl); + _adapter *adapter = dvobj->padapters[rfctl->effected_cisr_id]; + struct country_ie_slave_record *cisr = &rfctl->cisr[rfctl->effected_cisr_id]; + const u8 country_ie[4] = {WLAN_EID_COUNTRY, 2, cisr->alpha2[0], cisr->alpha2[1]}; + enum country_ie_slave_status status; + + status = rtw_get_chplan_from_recv_country_ie(adapter, cisr->band, cisr->opch, country_ie, ent, NULL, caller_msg); + rtw_warn_on(cisr->status != status); + + return status; +} +#endif /* CONFIG_80211D */ + +void dump_country_chplan(void *sel, const struct country_chplan *ent, bool regd_info) +{ + char buf[16]; + char *pos = buf; + + if (ent->chplan == RTW_CHPLAN_UNSPECIFIED) + pos += sprintf(pos, "NA"); + else + pos += sprintf(pos, "0x%02X", ent->chplan); + +#if CONFIG_IEEE80211_BAND_6GHZ + if (ent->chplan_6g == RTW_CHPLAN_6G_UNSPECIFIED) + pos += sprintf(pos, " NA"); + else + pos += sprintf(pos, " 0x%02X", ent->chplan_6g); +#endif + + RTW_PRINT_SEL(sel, "\"%c%c\", %s" + , ent->alpha2[0], ent->alpha2[1], buf); + + if (regd_info) { + u8 edcca_modes[BAND_MAX]; + u8 txpwr_lmts[BAND_MAX]; + + rtw_country_chplan_get_edcca_modes(ent, edcca_modes); + _RTW_PRINT_SEL(sel, " {%-6s", rtw_edcca_mode_str(edcca_modes[BAND_ON_2_4G])); + #if CONFIG_IEEE80211_BAND_5GHZ + _RTW_PRINT_SEL(sel, " %-6s", rtw_edcca_mode_str(edcca_modes[BAND_ON_5G])); + #endif + #if CONFIG_IEEE80211_BAND_6GHZ + _RTW_PRINT_SEL(sel, " %-6s", rtw_edcca_mode_str(edcca_modes[BAND_ON_6G])); + #endif + _RTW_PRINT_SEL(sel, "}"); + + rtw_country_chplan_get_txpwr_lmts(ent, txpwr_lmts); + _RTW_PRINT_SEL(sel, " {%-7s", txpwr_lmt_str(txpwr_lmts[BAND_ON_2_4G])); + #if CONFIG_IEEE80211_BAND_5GHZ + _RTW_PRINT_SEL(sel, " %-7s", txpwr_lmt_str(txpwr_lmts[BAND_ON_5G])); + #endif + #if CONFIG_IEEE80211_BAND_6GHZ + _RTW_PRINT_SEL(sel, " %-7s", txpwr_lmt_str(txpwr_lmts[BAND_ON_6G])); + #endif + _RTW_PRINT_SEL(sel, "}"); + } + + _RTW_PRINT_SEL(sel, " %s", COUNTRY_CHPLAN_EN_11AX(ent) ? "ax" : " "); + _RTW_PRINT_SEL(sel, " %s", COUNTRY_CHPLAN_EN_11AC(ent) ? "ac" : " "); + + _RTW_PRINT_SEL(sel, "\n"); +} + +void dump_country_chplan_map(void *sel, bool regd_info) +{ + struct country_chplan ent; u8 code[2]; #if RTW_DEF_MODULE_REGULATORY_CERT @@ -467,23 +3093,41 @@ void dump_country_chplan_map(void *sel) RTW_PRINT_SEL(sel, "CONFIG_CUSTOMIZED_COUNTRY_CHPLAN_MAP\n"); #endif + rtw_get_chplan_worldwide(&ent); + dump_country_chplan(sel, &ent, regd_info); + for (code[0] = 'A'; code[0] <= 'Z'; code[0]++) { for (code[1] = 'A'; code[1] <= 'Z'; code[1]++) { - ent = rtw_get_chplan_from_country(code); - if (!ent) + if (!rtw_get_chplan_from_country(code, &ent)) continue; - dump_country_chplan(sel, ent); + dump_country_chplan(sel, &ent, regd_info); } } } +void dump_country_list(void *sel) +{ + u8 code[2]; + + RTW_PRINT_SEL(sel, "%s ", WORLDWIDE_ALPHA2); + + for (code[0] = 'A'; code[0] <= 'Z'; code[0]++) { + for (code[1] = 'A'; code[1] <= 'Z'; code[1]++) { + if (!rtw_get_chplan_from_country(code, NULL)) + continue; + _RTW_PRINT_SEL(sel, "%c%c ", code[0], code[1]); + } + } + _RTW_PRINT_SEL(sel, "\n"); +} + void dump_chplan_id_list(void *sel) { u8 first = 1; int i; - for (i = 0; i < RTW_CHPLAN_MAX; i++) { + for (i = 0; i < RTW_ChannelPlanMap_size; i++) { if (!rtw_is_channel_plan_valid(i)) continue; @@ -493,33 +3137,201 @@ void dump_chplan_id_list(void *sel) } else _RTW_PRINT_SEL(sel, "0x%02X ", i); } - - _RTW_PRINT_SEL(sel, "0x7F\n"); + if (first == 0) + _RTW_PRINT_SEL(sel, "\n"); } +void dump_chplan_country_list(void *sel) +{ + int i; + + for (i = 0; i < RTW_ChannelPlanMap_size; i++) { + struct country_chplan ent; + u8 code[2]; + u8 first; + + if (!rtw_is_channel_plan_valid(i)) + continue; + + first = 1; + for (code[0] = 'A'; code[0] <= 'Z'; code[0]++) { + for (code[1] = 'A'; code[1] <= 'Z'; code[1]++) { + if (!rtw_get_chplan_from_country(code, &ent) || ent.chplan != i) + continue; + + if (first) { + RTW_PRINT_SEL(sel, "0x%02X %c%c ", i, code[0], code[1]); + first = 0; + } else + _RTW_PRINT_SEL(sel, "%c%c ", code[0], code[1]); + } + } + if (first == 0) + _RTW_PRINT_SEL(sel, "\n"); + } +} + +#if CONFIG_IEEE80211_BAND_6GHZ +void dump_chplan_6g_id_list(void *sel) +{ + u8 first = 1; + int i; + + for (i = 0; i < rtw_chplan_6g_map_size; i++) { + if (!rtw_is_channel_plan_6g_valid(i)) + continue; + + if (first) { + RTW_PRINT_SEL(sel, "0x%02X ", i); + first = 0; + } else + _RTW_PRINT_SEL(sel, "0x%02X ", i); + } + if (first == 0) + _RTW_PRINT_SEL(sel, "\n"); +} + +void dump_chplan_6g_country_list(void *sel) +{ + int i; + + for (i = 0; i < rtw_chplan_6g_map_size; i++) { + struct country_chplan ent; + u8 code[2]; + u8 first; + + if (!rtw_is_channel_plan_6g_valid(i)) + continue; + + first = 1; + for (code[0] = 'A'; code[0] <= 'Z'; code[0]++) { + for (code[1] = 'A'; code[1] <= 'Z'; code[1]++) { + if (!rtw_get_chplan_from_country(code, &ent) || ent.chplan_6g != i) + continue; + + if (first) { + RTW_PRINT_SEL(sel, "0x%02X %c%c ", i, code[0], code[1]); + first = 0; + } else + _RTW_PRINT_SEL(sel, "%c%c ", code[0], code[1]); + } + } + if (first == 0) + _RTW_PRINT_SEL(sel, "\n"); + } +} +#endif /* CONFIG_IEEE80211_BAND_6GHZ */ + +#ifdef CONFIG_RTW_DEBUG void dump_chplan_test(void *sel) { int i, j; - /* check invalid channel */ - for (i = 0; i < RTW_RD_2G_MAX; i++) { - for (j = 0; j < CH_LIST_LEN(RTW_ChannelPlan2G[i]); j++) { - if (rtw_ch2freq(CH_LIST_CH(RTW_ChannelPlan2G[i], j)) == 0) - RTW_PRINT_SEL(sel, "invalid ch:%u at (%d,%d)\n", CH_LIST_CH(RTW_ChannelPlan2G[i], j), i, j); + /* check 2G CHD redundent */ + for (i = 1; i < RTW_CHD_2G_MAX; i++) { + for (j = 1; j < i; j++) { + if (CH_LIST_LEN(rtw_channel_def_2g[i]) == CH_LIST_LEN(rtw_channel_def_2g[j]) + && _rtw_memcmp(&CH_LIST_CH(rtw_channel_def_2g[i], 0), &CH_LIST_CH(rtw_channel_def_2g[j], 0), CH_LIST_LEN(rtw_channel_def_2g[i]) + 1) == _TRUE) + RTW_PRINT_SEL(sel, "2G chd:%u and %u is the same\n", i, j); + } + } + + /* check 2G CHD invalid channel */ + for (i = 1; i < RTW_CHD_2G_MAX; i++) { + for (j = 0; j < CH_LIST_LEN(rtw_channel_def_2g[i]); j++) { + if (rtw_ch2freq(CH_LIST_CH(rtw_channel_def_2g[i], j)) == 0) + RTW_PRINT_SEL(sel, "2G invalid ch:%u at (%d,%d)\n", CH_LIST_CH(rtw_channel_def_2g[i], j), i, j); } } #if CONFIG_IEEE80211_BAND_5GHZ - for (i = 0; i < RTW_RD_5G_MAX; i++) { - for (j = 0; j < CH_LIST_LEN(RTW_ChannelPlan5G[i]); j++) { - if (rtw_ch2freq(CH_LIST_CH(RTW_ChannelPlan5G[i], j)) == 0) - RTW_PRINT_SEL(sel, "invalid ch:%u at (%d,%d)\n", CH_LIST_CH(RTW_ChannelPlan5G[i], j), i, j); + /* check 5G CHD redundent */ + for (i = 1; i < RTW_CHD_5G_MAX; i++) { + for (j = 1; j < i; j++) { + if (CH_LIST_LEN(rtw_channel_def_5g[i]) == CH_LIST_LEN(rtw_channel_def_5g[j]) + && _rtw_memcmp(&CH_LIST_CH(rtw_channel_def_5g[i], 0), &CH_LIST_CH(rtw_channel_def_5g[j], 0), CH_LIST_LEN(rtw_channel_def_5g[i]) + 1) == _TRUE) + RTW_PRINT_SEL(sel, "5G chd:%u and %u is the same\n", i, j); + } + } + + /* check 5G CHD invalid channel */ + for (i = 1; i < RTW_CHD_5G_MAX; i++) { + for (j = 0; j < CH_LIST_LEN(rtw_channel_def_5g[i]); j++) { + if (rtw_ch2freq(CH_LIST_CH(rtw_channel_def_5g[i], j)) == 0) + RTW_PRINT_SEL(sel, "5G invalid ch:%u at (%d,%d)\n", CH_LIST_CH(rtw_channel_def_5g[i], j), i, j); } } #endif + +#if CONFIG_IEEE80211_BAND_6GHZ + /* check 6G CHD redundent */ + for (i = RTW_CHD_6G_00; i < RTW_CHD_6G_MAX; i++) { + for (j = RTW_CHD_6G_00; j < i; j++) { + if (CH_LIST_LEN(rtw_channel_def_6g[i]) == CH_LIST_LEN(rtw_channel_def_6g[j]) + && _rtw_memcmp(&CH_LIST_CH(rtw_channel_def_6g[i], 0), &CH_LIST_CH(rtw_channel_def_6g[j], 0), CH_LIST_LEN(rtw_channel_def_6g[i]) + 1) == _TRUE) + RTW_PRINT_SEL(sel, "6G chd:%u and %u is the same\n", i, j); + } + } + + /* check 6G CHD invalid channel */ + for (i = RTW_CHD_6G_00; i < RTW_CHD_6G_MAX; i++) { + for (j = 0; j < CH_LIST_LEN(rtw_channel_def_6g[i]); j++) { + if (rtw_6gch2freq(CH_LIST_CH(rtw_channel_def_6g[i], j)) == 0) + RTW_PRINT_SEL(sel, "6G invalid ch:%u at (%d,%d)\n", CH_LIST_CH(rtw_channel_def_6g[i], j), i, j); + } + } +#endif + + /* check chplan 2G_5G redundent */ + for (i = 0; i < RTW_ChannelPlanMap_size; i++) { + if (!rtw_is_channel_plan_valid(i)) + continue; + for (j = 0; j < i; j++) { + if (!rtw_is_channel_plan_valid(j)) + continue; + if (_rtw_memcmp(&RTW_ChannelPlanMap[i], &RTW_ChannelPlanMap[j], sizeof(RTW_ChannelPlanMap[i])) == _TRUE) + RTW_PRINT_SEL(sel, "channel plan 0x%02x and 0x%02x is the same\n", i, j); + } + } + +#if CONFIG_IEEE80211_BAND_6GHZ + /* check chplan 6G redundent */ + for (i = 0; i < rtw_chplan_6g_map_size; i++) { + if (!rtw_is_channel_plan_6g_valid(i)) + continue; + for (j = 0; j < i; j++) { + if (!rtw_is_channel_plan_6g_valid(j)) + continue; + if (_rtw_memcmp(&rtw_chplan_6g_map[i], &rtw_chplan_6g_map[j], sizeof(rtw_chplan_6g_map[i])) == _TRUE) + RTW_PRINT_SEL(sel, "channel plan 6g 0x%02x and 0x%02x is the same\n", i, j); + } + } +#endif + + + /* check country invalid chplan/chplan_6g */ +{ + struct country_chplan ent; + u8 code[2]; + + for (code[0] = 'A'; code[0] <= 'Z'; code[0]++) { + for (code[1] = 'A'; code[1] <= 'Z'; code[1]++) { + if (!rtw_get_chplan_from_country(code, &ent)) + continue; + if (!rtw_is_channel_plan_valid(ent.chplan)) + RTW_PRINT_SEL(sel, "country \"%c%c\" has invalid chplan:0x%02X\n", code[0], code[1], ent.chplan); + #if CONFIG_IEEE80211_BAND_6GHZ + if (!rtw_is_channel_plan_6g_valid(ent.chplan_6g)) + RTW_PRINT_SEL(sel, "country \"%c%c\" has invalid chplan_6g:0x%02X\n", code[0], code[1], ent.chplan_6g); + #endif + } + } } +} +#endif /* CONFIG_RTW_DEBUG */ + void dump_chplan_ver(void *sel) { - RTW_PRINT_SEL(sel, "%s-%s\n", RTW_DOMAIN_MAP_VER, RTW_COUNTRY_MAP_VER); + RTW_PRINT_SEL(sel, "%s%s-%s\n", RTW_DOMAIN_MAP_VER, RTW_DOMAIN_MAP_M_VER, RTW_COUNTRY_MAP_VER); } diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_chplan.h b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_chplan.h index 25ea5910..feee3c2f 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_chplan.h +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_chplan.h @@ -15,137 +15,60 @@ #ifndef __RTW_CHPLAN_H__ #define __RTW_CHPLAN_H__ -enum rtw_chplan_id { - /* ===== 0x00 ~ 0x1F, legacy channel plan ===== */ - RTW_CHPLAN_FCC = 0x00, - RTW_CHPLAN_IC = 0x01, - RTW_CHPLAN_ETSI = 0x02, - RTW_CHPLAN_SPAIN = 0x03, - RTW_CHPLAN_FRANCE = 0x04, - RTW_CHPLAN_MKK = 0x05, - RTW_CHPLAN_MKK1 = 0x06, - RTW_CHPLAN_ISRAEL = 0x07, - RTW_CHPLAN_TELEC = 0x08, - RTW_CHPLAN_GLOBAL_DOAMIN = 0x09, - RTW_CHPLAN_WORLD_WIDE_13 = 0x0A, - RTW_CHPLAN_TAIWAN = 0x0B, - RTW_CHPLAN_CHINA = 0x0C, - RTW_CHPLAN_SINGAPORE_INDIA_MEXICO = 0x0D, - RTW_CHPLAN_KOREA = 0x0E, - RTW_CHPLAN_TURKEY = 0x0F, - RTW_CHPLAN_JAPAN = 0x10, - RTW_CHPLAN_FCC_NO_DFS = 0x11, - RTW_CHPLAN_JAPAN_NO_DFS = 0x12, - RTW_CHPLAN_WORLD_WIDE_5G = 0x13, - RTW_CHPLAN_TAIWAN_NO_DFS = 0x14, +#define RTW_CHPLAN_IOCTL_NULL 0xFFFE /* special value by ioctl: null(empty) chplan */ +#define RTW_CHPLAN_IOCTL_UNSPECIFIED 0xFFFF /* special value by ioctl: no change (keep original) */ - /* ===== 0x20 ~ 0x7F, new channel plan ===== */ - RTW_CHPLAN_WORLD_NULL = 0x20, - RTW_CHPLAN_ETSI1_NULL = 0x21, - RTW_CHPLAN_FCC1_NULL = 0x22, - RTW_CHPLAN_MKK1_NULL = 0x23, - RTW_CHPLAN_ETSI2_NULL = 0x24, - RTW_CHPLAN_FCC1_FCC1 = 0x25, - RTW_CHPLAN_WORLD_ETSI1 = 0x26, - RTW_CHPLAN_MKK1_MKK1 = 0x27, - RTW_CHPLAN_WORLD_KCC1 = 0x28, - RTW_CHPLAN_WORLD_FCC2 = 0x29, - RTW_CHPLAN_FCC2_NULL = 0x2A, - RTW_CHPLAN_IC1_IC2 = 0x2B, - RTW_CHPLAN_MKK2_NULL = 0x2C, - RTW_CHPLAN_WORLD_CHILE1= 0x2D, - RTW_CHPLAN_WORLD1_WORLD1 = 0x2E, - RTW_CHPLAN_WORLD_CHILE2 = 0x2F, - RTW_CHPLAN_WORLD_FCC3 = 0x30, - RTW_CHPLAN_WORLD_FCC4 = 0x31, - RTW_CHPLAN_WORLD_FCC5 = 0x32, - RTW_CHPLAN_WORLD_FCC6 = 0x33, - RTW_CHPLAN_FCC1_FCC7 = 0x34, - RTW_CHPLAN_WORLD_ETSI2 = 0x35, - RTW_CHPLAN_WORLD_ETSI3 = 0x36, - RTW_CHPLAN_MKK1_MKK2 = 0x37, - RTW_CHPLAN_MKK1_MKK3 = 0x38, - RTW_CHPLAN_FCC1_NCC1 = 0x39, - RTW_CHPLAN_ETSI1_ETSI1 = 0x3A, - RTW_CHPLAN_ETSI1_ACMA1 = 0x3B, - RTW_CHPLAN_ETSI1_ETSI6 = 0x3C, - RTW_CHPLAN_ETSI1_ETSI12 = 0x3D, - RTW_CHPLAN_KCC1_KCC2 = 0x3E, - RTW_CHPLAN_FCC1_FCC11 = 0x3F, - RTW_CHPLAN_FCC1_NCC2 = 0x40, - RTW_CHPLAN_GLOBAL_NULL = 0x41, - RTW_CHPLAN_ETSI1_ETSI4 = 0x42, - RTW_CHPLAN_FCC1_FCC2 = 0x43, - RTW_CHPLAN_FCC1_NCC3 = 0x44, - RTW_CHPLAN_WORLD_ACMA1 = 0x45, - RTW_CHPLAN_FCC1_FCC8 = 0x46, - RTW_CHPLAN_WORLD_ETSI6 = 0x47, - RTW_CHPLAN_WORLD_ETSI7 = 0x48, - RTW_CHPLAN_WORLD_ETSI8 = 0x49, - RTW_CHPLAN_IC2_IC2 = 0x4A, - RTW_CHPLAN_KCC1_KCC3 = 0x4B, - RTW_CHPLAN_FCC1_FCC15 = 0x4C, - RTW_CHPLAN_FCC2_MEX1 = 0x4D, - RTW_CHPLAN_ETSI1_ETSI22 = 0x4E, - RTW_CHPLAN_NULL_MKK9 = 0x4F, - RTW_CHPLAN_WORLD_ETSI9 = 0x50, - RTW_CHPLAN_WORLD_ETSI10 = 0x51, - RTW_CHPLAN_WORLD_ETSI11 = 0x52, - RTW_CHPLAN_FCC1_NCC4 = 0x53, - RTW_CHPLAN_WORLD_ETSI12 = 0x54, - RTW_CHPLAN_FCC1_FCC9 = 0x55, - RTW_CHPLAN_WORLD_ETSI13 = 0x56, - RTW_CHPLAN_FCC1_FCC10 = 0x57, - RTW_CHPLAN_MKK2_MKK4 = 0x58, - RTW_CHPLAN_WORLD_ETSI14 = 0x59, - RTW_CHPLAN_NULL_FCC19 = 0x5A, - RTW_CHPLAN_NULL_FCC20 = 0x5B, - RTW_CHPLAN_NULL_FCC21 = 0x5C, - RTW_CHPLAN_ETSI1_ETSI23 = 0x5D, - RTW_CHPLAN_ETSI1_ETSI2 = 0x5E, - RTW_CHPLAN_FCC1_FCC5 = 0x60, - RTW_CHPLAN_FCC2_FCC7 = 0x61, - RTW_CHPLAN_FCC2_FCC1 = 0x62, - RTW_CHPLAN_WORLD_ETSI15 = 0x63, - RTW_CHPLAN_MKK2_MKK5 = 0x64, - RTW_CHPLAN_ETSI1_ETSI16 = 0x65, - RTW_CHPLAN_FCC1_FCC14 = 0x66, - RTW_CHPLAN_FCC1_FCC12 = 0x67, - RTW_CHPLAN_FCC2_FCC14 = 0x68, - RTW_CHPLAN_FCC2_FCC12 = 0x69, - RTW_CHPLAN_ETSI1_ETSI17 = 0x6A, - RTW_CHPLAN_WORLD_FCC16 = 0x6B, - RTW_CHPLAN_WORLD_FCC13 = 0x6C, - RTW_CHPLAN_FCC2_FCC15 = 0x6D, - RTW_CHPLAN_WORLD_FCC12 = 0x6E, - RTW_CHPLAN_NULL_ETSI8 = 0x6F, - RTW_CHPLAN_NULL_ETSI18 = 0x70, - RTW_CHPLAN_NULL_ETSI17 = 0x71, - RTW_CHPLAN_NULL_ETSI19 = 0x72, - RTW_CHPLAN_WORLD_FCC7 = 0x73, - RTW_CHPLAN_FCC2_FCC17 = 0x74, - RTW_CHPLAN_WORLD_ETSI20 = 0x75, - RTW_CHPLAN_FCC2_FCC11 = 0x76, - RTW_CHPLAN_WORLD_ETSI21 = 0x77, - RTW_CHPLAN_FCC1_FCC18 = 0x78, - RTW_CHPLAN_MKK2_MKK1 = 0x79, - - RTW_CHPLAN_MAX, - RTW_CHPLAN_REALTEK_DEFINE = 0x7F, - RTW_CHPLAN_HEXFILE_MAX, - RTW_CHPLAN_UNSPECIFIED = 0xFF, -}; +#define RTW_CHPLAN_NULL 0x1A +#define RTW_CHPLAN_WORLDWIDE 0x7F +#define RTW_CHPLAN_UNSPECIFIED 0xFF +#define RTW_CHPLAN_6G_NULL 0x00 +#define RTW_CHPLAN_6G_WORLDWIDE 0x7F +#define RTW_CHPLAN_6G_UNSPECIFIED 0xFF int rtw_get_channel_plan_from_file(const char *path); -u8 rtw_chplan_get_default_regd(u8 id); -bool rtw_chplan_is_empty(u8 id); -#define rtw_is_channel_plan_valid(chplan) (((chplan) < RTW_CHPLAN_MAX || (chplan) == RTW_CHPLAN_REALTEK_DEFINE) && !rtw_chplan_is_empty(chplan)) -#define rtw_is_legacy_channel_plan(chplan) ((chplan) < 0x20) +u8 rtw_chplan_get_default_regd_2g(u8 id); +u8 rtw_chplan_get_default_regd_5g(u8 id); +bool rtw_is_channel_plan_valid(u8 id); +bool rtw_regsty_is_excl_chs(struct registry_priv *regsty, u8 ch); + +#if CONFIG_IEEE80211_BAND_6GHZ +u8 rtw_chplan_get_default_regd_6g(u8 id); +bool rtw_is_channel_plan_6g_valid(u8 id); +bool rtw_regsty_is_excl_chs_6g(struct registry_priv *regsty, u8 ch); +#endif + +u8 rtw_chplan_is_chbw_valid(u8 id, u8 id_6g, BAND_TYPE band, u8 ch, u8 bw, u8 offset + , bool allow_primary_passive, bool allow_passive, struct registry_priv *regsty); + +enum regd_src_t { + REGD_SRC_RTK_PRIV = 0, /* Regulatory settings from Realtek framework (Realtek defined or customized) */ + REGD_SRC_OS = 1, /* Regulatory settings from OS */ + REGD_SRC_NUM, +}; + +#define regd_src_is_valid(src) ((src) < REGD_SRC_NUM) + +extern const char *_regd_src_str[]; +#define regd_src_str(src) ((src) >= REGD_SRC_NUM ? _regd_src_str[REGD_SRC_NUM] : _regd_src_str[src]) struct _RT_CHANNEL_INFO; -u8 init_channel_set(_adapter *padapter, u8 ChannelPlan, struct _RT_CHANNEL_INFO *channel_set); +u8 init_channel_set(_adapter *adapter); +bool rtw_chset_is_dfs_range(struct _RT_CHANNEL_INFO *chset, u32 hi, u32 lo); +bool rtw_chset_is_dfs_ch(struct _RT_CHANNEL_INFO *chset, u8 ch); +bool rtw_chset_is_dfs_chbw(struct _RT_CHANNEL_INFO *chset, u8 ch, u8 bw, u8 offset); +bool rtw_chinfo_allow_beacon_hint(struct _RT_CHANNEL_INFO *chinfo, u8 reason); +u8 rtw_process_beacon_hint(_adapter *adapter, WLAN_BSSID_EX *bss, u8 reason); +u8 rtw_clr_dfs_beacon_hint(_adapter *adapter); -#define IS_ALPHA2_NO_SPECIFIED(_alpha2) ((*((u16 *)(_alpha2))) == 0xFFFF) +#define ALPHA2_FMT "%c%c" +#define ALPHA2_ARG(a2) ((is_alpha(a2[0]) || is_decimal(a2[0])) ? a2[0] : '-'), ((is_alpha(a2[1]) || is_decimal(a2[1])) ? a2[1] : '-') + +#define WORLDWIDE_ALPHA2 "00" +#define UNSPEC_ALPHA2 "99" + +#define IS_ALPHA2_WORLDWIDE(_alpha2) (strncmp(_alpha2, WORLDWIDE_ALPHA2, 2) == 0) +#define IS_ALPHA2_UNSPEC(_alpha2) (strncmp(_alpha2, UNSPEC_ALPHA2, 2) == 0) +#define SET_UNSPEC_ALPHA2(_alpha2) do { _rtw_memcpy(_alpha2, UNSPEC_ALPHA2, 2); } while (0) #define RTW_MODULE_RTL8821AE_HMC_M2 BIT0 /* RTL8821AE(HMC + M.2) */ #define RTW_MODULE_RTL8821AU BIT1 /* RTL8821AU */ @@ -160,35 +83,191 @@ u8 init_channel_set(_adapter *padapter, u8 ChannelPlan, struct _RT_CHANNEL_INFO #define RTW_MODULE_RTL8821CE BIT10 /* RTL8821CE */ #define RTW_MODULE_RTL8822CE BIT11 /* RTL8822CE */ +enum rtw_regd_inr { + RTW_REGD_SET_BY_INIT = 0, + RTW_REGD_SET_BY_USER = 1, + RTW_REGD_SET_BY_COUNTRY_IE = 2, + + /* below is not used for REGD_SRC_RTK_PRIV */ + RTW_REGD_SET_BY_DRIVER = 3, + RTW_REGD_SET_BY_CORE = 4, + + RTW_REGD_SET_BY_NUM, +}; + +extern const char *const _regd_inr_str[]; +#define regd_inr_str(inr) (((inr) >= RTW_REGD_SET_BY_NUM) ? _regd_inr_str[RTW_REGD_SET_BY_NUM] : _regd_inr_str[(inr)]) + +enum rtw_regd { + RTW_REGD_NA = 0, + RTW_REGD_FCC = 1, + RTW_REGD_MKK = 2, + RTW_REGD_ETSI = 3, + RTW_REGD_IC = 4, + RTW_REGD_KCC = 5, + RTW_REGD_NCC = 6, + RTW_REGD_ACMA = 7, + RTW_REGD_CHILE = 8, + RTW_REGD_MEX = 9, + RTW_REGD_WW, + RTW_REGD_NUM, +}; + +extern const char *const _regd_str[]; +#define regd_str(regd) (((regd) >= RTW_REGD_NUM) ? _regd_str[RTW_REGD_NA] : _regd_str[(regd)]) + +enum rtw_edcca_mode { + RTW_EDCCA_NORMAL = 0, /* normal */ + RTW_EDCCA_ADAPT = 1, /* adaptivity */ + RTW_EDCCA_CS = 2, /* carrier sense */ + + RTW_EDCCA_MODE_NUM, + RTW_EDCCA_DEF = RTW_EDCCA_MODE_NUM, /* default (ref to domain code), used at country chplan map's override field */ +}; + +extern const char *const _rtw_edcca_mode_str[]; +#define rtw_edcca_mode_str(mode) (((mode) >= RTW_EDCCA_MODE_NUM) ? _rtw_edcca_mode_str[RTW_EDCCA_NORMAL] : _rtw_edcca_mode_str[(mode)]) + +enum rtw_dfs_regd { + RTW_DFS_REGD_NONE = 0, + RTW_DFS_REGD_FCC = 1, + RTW_DFS_REGD_MKK = 2, + RTW_DFS_REGD_ETSI = 3, + RTW_DFS_REGD_NUM, + RTW_DFS_REGD_AUTO = 0xFF, /* follow channel plan */ +}; + +extern const char *_rtw_dfs_regd_str[]; +#define rtw_dfs_regd_str(region) (((region) >= RTW_DFS_REGD_NUM) ? _rtw_dfs_regd_str[RTW_DFS_REGD_NONE] : _rtw_dfs_regd_str[(region)]) + +typedef enum _REGULATION_TXPWR_LMT { + TXPWR_LMT_NONE = 0, /* no limit */ + TXPWR_LMT_FCC = 1, + TXPWR_LMT_MKK = 2, + TXPWR_LMT_ETSI = 3, + TXPWR_LMT_IC = 4, + TXPWR_LMT_KCC = 5, + TXPWR_LMT_NCC = 6, + TXPWR_LMT_ACMA = 7, + TXPWR_LMT_CHILE = 8, + TXPWR_LMT_UKRAINE = 9, + TXPWR_LMT_MEXICO = 10, + TXPWR_LMT_CN = 11, + TXPWR_LMT_QATAR = 12, + TXPWR_LMT_WW, /* smallest of all available limit, keep last */ + + TXPWR_LMT_NUM, + TXPWR_LMT_DEF = TXPWR_LMT_NUM, /* default (ref to domain code), used at country chplan map's override field */ +} REGULATION_TXPWR_LMT; + +extern const char *const _txpwr_lmt_str[]; +#define txpwr_lmt_str(regd) (((regd) >= TXPWR_LMT_NUM) ? _txpwr_lmt_str[TXPWR_LMT_NUM] : _txpwr_lmt_str[(regd)]) + +extern const REGULATION_TXPWR_LMT _txpwr_lmt_alternate[]; +#define txpwr_lmt_alternate(ori) (((ori) > TXPWR_LMT_NUM) ? _txpwr_lmt_alternate[TXPWR_LMT_WW] : _txpwr_lmt_alternate[(ori)]) + +#define TXPWR_LMT_ALTERNATE_DEFINED(txpwr_lmt) (txpwr_lmt_alternate(txpwr_lmt) != txpwr_lmt) + +extern const enum rtw_edcca_mode _rtw_regd_to_edcca_mode[RTW_REGD_NUM]; +#define rtw_regd_to_edcca_mode(regd) (((regd) >= RTW_REGD_NUM) ? RTW_EDCCA_NORMAL : _rtw_regd_to_edcca_mode[(regd)]) + +extern const REGULATION_TXPWR_LMT _rtw_regd_to_txpwr_lmt[]; +#define rtw_regd_to_txpwr_lmt(regd) (((regd) >= RTW_REGD_NUM) ? TXPWR_LMT_WW : _rtw_regd_to_txpwr_lmt[(regd)]) + +#define EDCCA_MODES_STR_LEN (((6 + 3 + 1) * BAND_MAX) + 1) +char *rtw_get_edcca_modes_str(char *buf, u8 modes[]); +void rtw_edcca_mode_update(struct dvobj_priv *dvobj); +u8 rtw_get_edcca_mode(struct dvobj_priv *dvobj, BAND_TYPE band); + +#define TXPWR_NAMES_STR_LEN (((1 + 7 + 1) * BAND_MAX) + 1) +char *rtw_get_txpwr_lmt_names_str(char *buf, const char *names[], u8 unknown_bmp); + +#define CHPLAN_PROTO_EN_AC BIT0 +#define CHPLAN_PROTO_EN_AX BIT1 +#define CHPLAN_PROTO_EN_ALL 0xFF + struct country_chplan { char alpha2[2]; u8 chplan; -#ifdef CONFIG_80211AC_VHT - u8 en_11ac; +#if CONFIG_IEEE80211_BAND_6GHZ + u8 chplan_6g; #endif -#if RTW_DEF_MODULE_REGULATORY_CERT - u16 def_module_flags; /* RTW_MODULE_RTLXXX */ + u8 edcca_mode_2g_override:2; +#if CONFIG_IEEE80211_BAND_5GHZ + u8 edcca_mode_5g_override:2; +#endif +#if CONFIG_IEEE80211_BAND_6GHZ + u8 edcca_mode_6g_override:2; +#endif + u8 txpwr_lmt_override; +#if defined(CONFIG_80211AX_HE) || defined(CONFIG_80211AC_VHT) + u8 proto_en; #endif }; #ifdef CONFIG_80211AC_VHT -#define COUNTRY_CHPLAN_EN_11AC(_ent) ((_ent)->en_11ac) +#define COUNTRY_CHPLAN_EN_11AC(_ent) (((_ent)->proto_en & CHPLAN_PROTO_EN_AC) ? 1 : 0) #else #define COUNTRY_CHPLAN_EN_11AC(_ent) 0 #endif -#if RTW_DEF_MODULE_REGULATORY_CERT -#define COUNTRY_CHPLAN_DEF_MODULE_FALGS(_ent) ((_ent)->def_module_flags) +#ifdef CONFIG_80211AX_HE +#define COUNTRY_CHPLAN_EN_11AX(_ent) (((_ent)->proto_en & CHPLAN_PROTO_EN_AX) ? 1 : 0) #else -#define COUNTRY_CHPLAN_DEF_MODULE_FALGS(_ent) 0 +#define COUNTRY_CHPLAN_EN_11AX(_ent) 0 #endif -const struct country_chplan *rtw_get_chplan_from_country(const char *country_code); +void rtw_get_chplan_worldwide(struct country_chplan *ent); +bool rtw_get_chplan_from_country(const char *country_code, struct country_chplan *ent); -void dump_country_chplan(void *sel, const struct country_chplan *ent); -void dump_country_chplan_map(void *sel); +void rtw_chplan_ioctl_input_mapping(u16 *chplan, u16 *chplan_6g); +bool rtw_chplan_ids_is_world_wide(u8 chplan, u8 chplan_6g); + +u8 rtw_country_chplan_is_chbw_valid(struct country_chplan *ent, BAND_TYPE band, u8 ch, u8 bw, u8 offset + , bool allow_primary_passive, bool allow_passive, struct registry_priv *regsty); + +enum country_ie_slave_status { + COUNTRY_IE_SLAVE_NOCOUNTRY = 0, + COUNTRY_IE_SLAVE_UNKNOWN = 1, + COUNTRY_IE_SLAVE_OPCH_NOEXIST = 2, + COUNTRY_IE_SLAVE_APPLICABLE = 3, + + COUNTRY_IE_SLAVE_STATUS_NUM, +}; + +struct country_ie_slave_record { + char alpha2[2]; /* country code get from connected AP of STA ifaces, "\x00\x00" is not set */ + BAND_TYPE band; + u8 opch; + enum country_ie_slave_status status; +}; + +#ifdef CONFIG_80211D +extern const char *const _cis_status_str[]; +#define cis_status_str(s) (((s) >= COUNTRY_IE_SLAVE_STATUS_NUM) ? _cis_status_str[COUNTRY_IE_SLAVE_STATUS_NUM] : _cis_status_str[(s)]) + +void dump_country_ie_slave_records(void *sel, struct rf_ctl_t *rfctl, bool skip_noset); + +enum country_ie_slave_status rtw_get_chplan_from_recv_country_ie(_adapter *adapter + , BAND_TYPE band, u8 opch, const u8 *country_ie, struct country_chplan *ent + , struct country_ie_slave_record *cisr, const char *caller_msg); + +enum country_ie_slave_status rtw_get_chplan_from_cisrs(struct rf_ctl_t *rfctl + , struct country_chplan *ent, const char *caller_msg); +#endif + +void dump_country_chplan(void *sel, const struct country_chplan *ent, bool regd_info); +void dump_country_chplan_map(void *sel, bool regd_info); +void dump_country_list(void *sel); void dump_chplan_id_list(void *sel); +void dump_chplan_country_list(void *sel); +#if CONFIG_IEEE80211_BAND_6GHZ +void dump_chplan_6g_id_list(void *sel); +void dump_chplan_6g_country_list(void *sel); +#endif +#ifdef CONFIG_RTW_DEBUG void dump_chplan_test(void *sel); +#endif void dump_chplan_ver(void *sel); #endif /* __RTW_CHPLAN_H__ */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_cmd.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_cmd.c old mode 100755 new mode 100644 index d178cf2f..44582acd --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_cmd.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_cmd.c @@ -391,7 +391,11 @@ void rtw_free_cmd_priv(struct cmd_priv *pcmdpriv) int rtw_cmd_filter(struct cmd_priv *pcmdpriv, struct cmd_obj *cmd_obj); int rtw_cmd_filter(struct cmd_priv *pcmdpriv, struct cmd_obj *cmd_obj) { +#ifndef CONFIG_MAC_LOOPBACK_DRIVER u8 bAllow = _FALSE; /* set to _TRUE to allow enqueuing cmd when hw_init_completed is _FALSE */ +#else + u8 bAllow = _TRUE; /* hw_init_completed is _FALSE in the case of MAC loopback*/ +#endif #ifdef SUPPORT_HW_RFOFF_DETECTED /* To decide allow or not */ @@ -883,6 +887,7 @@ void rtw_readtssi_cmdrsp_callback(_adapter *padapter, struct cmd_obj *pcmd) } +#ifdef CONFIG_AP_MODE static u8 rtw_createbss_cmd(_adapter *adapter, int flags, bool adhoc , u8 ifbmp, u8 excl_ifbmp, s16 req_ch, s8 req_bw, s8 req_offset) { @@ -893,7 +898,7 @@ static u8 rtw_createbss_cmd(_adapter *adapter, int flags, bool adhoc u8 res = _SUCCESS; if (req_ch > 0 && req_bw >= 0 && req_offset >= 0) { - if (!rtw_chset_is_chbw_valid(adapter_to_chset(adapter), req_ch, req_bw, req_offset)) { + if (!rtw_chset_is_chbw_valid(adapter_to_chset(adapter), req_ch, req_bw, req_offset, 0, 0)) { res = _FAIL; goto exit; } @@ -981,42 +986,57 @@ inline u8 rtw_change_bss_chbw_cmd(_adapter *adapter, int flags , req_ch, req_bw, req_offset ); } +#endif /* CONFIG_AP_MODE */ -#ifdef CONFIG_RTW_80211R -static void rtw_ft_validate_akm_type(_adapter *padapter, - struct wlan_network *pnetwork) +#ifdef CONFIG_80211D +/* Return corresponding country_chplan setting */ +static bool rtw_joinbss_check_country_ie(_adapter *adapter, const WLAN_BSSID_EX *network, struct country_chplan *ent, WLAN_BSSID_EX *out_network) { - struct security_priv *psecuritypriv = &(padapter->securitypriv); - struct ft_roam_info *pft_roam = &(padapter->mlmepriv.ft_roam); - u32 tmp_len; - u8 *ptmp; + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + bool ret = 0; - /*IEEE802.11-2012 Std. Table 8-101-AKM suite selectors*/ - if (rtw_ft_valid_akm(padapter, psecuritypriv->rsn_akm_suite_type)) { - ptmp = rtw_get_ie(&pnetwork->network.IEs[12], - _MDIE_, &tmp_len, (pnetwork->network.IELength-12)); - if (ptmp) { - pft_roam->mdid = *(u16 *)(ptmp+2); - pft_roam->ft_cap = *(ptmp+4); + if (rfctl->regd_src == REGD_SRC_RTK_PRIV + && !rtw_rfctl_is_disable_sw_channel_plan(rfctl_to_dvobj(rfctl)) + ) { + struct mlme_priv *mlme = &adapter->mlmepriv; + const u8 *country_ie = NULL; + sint country_ie_len = 0; - RTW_INFO("FT: target " MAC_FMT " mdid=(0x%2x), capacity=(0x%2x)\n", - MAC_ARG(pnetwork->network.MacAddress), pft_roam->mdid, pft_roam->ft_cap); - rtw_ft_set_flags(padapter, RTW_FT_PEER_EN); - - if (rtw_ft_otd_roam_en(padapter)) - rtw_ft_set_flags(padapter, RTW_FT_PEER_OTD_EN); - } else { - /* Don't use FT roaming if target AP cannot support FT */ - rtw_ft_clr_flags(padapter, (RTW_FT_PEER_EN|RTW_FT_PEER_OTD_EN)); - rtw_ft_reset_status(padapter); + if (rtw_iface_accept_country_ie(adapter)) { + country_ie = rtw_get_ie(BSS_EX_TLV_IES(network) + , WLAN_EID_COUNTRY, &country_ie_len, BSS_EX_TLV_IES_LEN(network)); + if (country_ie) { + if (country_ie_len < 6) { + country_ie = NULL; + country_ie_len = 0; + } else + country_ie_len += 2; + } } - } else { - /* It could be a non-FT connection */ - rtw_ft_clr_flags(padapter, (RTW_FT_PEER_EN|RTW_FT_PEER_OTD_EN)); - rtw_ft_reset_status(padapter); - } + + if (country_ie) { + enum country_ie_slave_status status; + + rtw_buf_update(&mlme->recv_country_ie, &mlme->recv_country_ie_len, country_ie, country_ie_len); + + status = rtw_get_chplan_from_recv_country_ie(adapter + , network->Configuration.DSConfig > 14 ? BAND_ON_5G : BAND_ON_2_4G + , network->Configuration.DSConfig, country_ie, ent, NULL, __func__); + if (status != COUNTRY_IE_SLAVE_NOCOUNTRY) + ret = 1; + + if (out_network) { + _rtw_memcpy(BSS_EX_IES(out_network) + BSS_EX_IES_LEN(out_network) + , country_ie, country_ie_len); + BSS_EX_IES_LEN(out_network) += country_ie_len; + } + } else + rtw_buf_free(&mlme->recv_country_ie, &mlme->recv_country_ie_len); + } + + return ret; } -#endif +#endif /* CONFIG_80211D */ u8 rtw_joinbss_cmd(_adapter *padapter, struct wlan_network *pnetwork) { @@ -1029,6 +1049,10 @@ u8 rtw_joinbss_cmd(_adapter *padapter, struct wlan_network *pnetwork) struct qos_priv *pqospriv = &pmlmepriv->qospriv; struct security_priv *psecuritypriv = &padapter->securitypriv; struct registry_priv *pregistrypriv = &padapter->registrypriv; +#ifdef CONFIG_80211D + struct country_chplan country_ent; +#endif + struct country_chplan *req_chplan = NULL; #ifdef CONFIG_80211N_HT struct ht_priv *phtpriv = &pmlmepriv->htpriv; #endif /* CONFIG_80211N_HT */ @@ -1081,6 +1105,8 @@ u8 rtw_joinbss_cmd(_adapter *padapter, struct wlan_network *pnetwork) pmlmeinfo->assoc_AP_vendor = check_assoc_AP(pnetwork->network.IEs, pnetwork->network.IELength); + rtw_phydm_update_ap_vendor_ie(padapter); + #ifdef CONFIG_80211AC_VHT /* save AP beamform_cap info for BCM IOT issue */ if (pmlmeinfo->assoc_AP_vendor == HT_IOT_PEER_BROADCOM) @@ -1147,6 +1173,11 @@ u8 rtw_joinbss_cmd(_adapter *padapter, struct wlan_network *pnetwork) } } +#ifdef CONFIG_80211D + if (rtw_joinbss_check_country_ie(padapter, &pnetwork->network, &country_ent, psecnetwork)) + req_chplan = &country_ent; +#endif + #ifdef CONFIG_80211N_HT phtpriv->ht_option = _FALSE; if (pregistrypriv->ht_enable && is_supported_ht(pregistrypriv->wireless_mode)) { @@ -1163,7 +1194,7 @@ u8 rtw_joinbss_cmd(_adapter *padapter, struct wlan_network *pnetwork) /* rtw_restructure_ht_ie */ rtw_restructure_ht_ie(padapter, &pnetwork->network.IEs[12], &psecnetwork->IEs[0], pnetwork->network.IELength - 12, &psecnetwork->IELength, - pnetwork->network.Configuration.DSConfig); + pnetwork->network.Configuration.DSConfig, req_chplan); } } } @@ -1173,16 +1204,24 @@ u8 rtw_joinbss_cmd(_adapter *padapter, struct wlan_network *pnetwork) if (phtpriv->ht_option && REGSTY_IS_11AC_ENABLE(pregistrypriv) && is_supported_vht(pregistrypriv->wireless_mode) - && (!rfctl->country_ent || COUNTRY_CHPLAN_EN_11AC(rfctl->country_ent)) - && ((padapter->registrypriv.wifi_spec == 0) || (pnetwork->network.Configuration.DSConfig > 14)) + && ((req_chplan && COUNTRY_CHPLAN_EN_11AC(req_chplan)) + || (!req_chplan && RFCTL_REG_EN_11AC(rfctl))) ) { - rtw_restructure_vht_ie(padapter, &pnetwork->network.IEs[0], &psecnetwork->IEs[0], - pnetwork->network.IELength, &psecnetwork->IELength); + u8 vht_enable = 0; + + if (pnetwork->network.Configuration.DSConfig > 14) + vht_enable = 1; + else if ((REGSTY_IS_11AC_24G_ENABLE(pregistrypriv)) && (padapter->registrypriv.wifi_spec == 0)) + vht_enable = 1; + + if (vht_enable == 1) + rtw_restructure_vht_ie(padapter, &pnetwork->network.IEs[0], &psecnetwork->IEs[0], + pnetwork->network.IELength, &psecnetwork->IELength, req_chplan); } #endif #endif /* CONFIG_80211N_HT */ - rtw_append_exented_cap(padapter, &psecnetwork->IEs[0], &psecnetwork->IELength); + rtw_append_extended_cap(padapter, &psecnetwork->IEs[0], &psecnetwork->IELength); #ifdef CONFIG_RTW_80211R rtw_ft_validate_akm_type(padapter, pnetwork); @@ -1264,12 +1303,11 @@ exit: return res; } - +#ifdef CONFIG_AP_MODE u8 rtw_stop_ap_cmd(_adapter *adapter, u8 flags) { -#ifdef CONFIG_AP_MODE struct cmd_obj *cmdobj; - struct drvextra_cmd_parm *parm = NULL; + struct drvextra_cmd_parm *parm; struct cmd_priv *pcmdpriv = &adapter->cmdpriv; struct submit_ctx sctx; u8 res = _SUCCESS; @@ -1289,11 +1327,10 @@ u8 rtw_stop_ap_cmd(_adapter *adapter, u8 flags) parm->type = 0; parm->size = 0; parm->pbuf = NULL; - + /* need enqueue, prepare cmd_obj and enqueue */ cmdobj = (struct cmd_obj *)rtw_zmalloc(sizeof(*cmdobj)); if (cmdobj == NULL) { - rtw_mfree((u8 *)parm, sizeof(*parm)); res = _FAIL; goto exit; } @@ -1315,11 +1352,10 @@ u8 rtw_stop_ap_cmd(_adapter *adapter, u8 flags) _exit_critical_mutex(&pcmdpriv->sctx_mutex, NULL); } } - exit: return res; -#endif } +#endif /* CONFIG_AP_MODE */ #ifdef CONFIG_RTW_TOKEN_BASED_XMIT u8 rtw_tx_control_cmd(_adapter *adapter) @@ -1434,19 +1470,8 @@ u8 rtw_setstakey_cmd(_adapter *padapter, struct sta_info *sta, u8 key_type, bool else GET_ENCRY_ALGO(psecuritypriv, sta, psetstakey_para->algorithm, _FALSE); - if ((psetstakey_para->algorithm == _GCMP_256_) || (psetstakey_para->algorithm == _CCMP_256_)) - { -#ifdef CONFIG_TDLS - /* TDLS_KEY doesn't support 256-bit key length yet */ - if (key_type == TDLS_KEY) { - RTW_WARN("%s: not support 256-bit key length if TDLS\n", __func__); - rtw_mfree((u8 *) psetstakey_para, sizeof(struct set_stakey_parm)); - res = _FAIL; - goto exit; - } -#endif + if ((psetstakey_para->algorithm == _GCMP_256_) || (psetstakey_para->algorithm == _CCMP_256_)) key_len = 32; - } if (key_type == GROUP_KEY) { _rtw_memcpy(&psetstakey_para->key, &psecuritypriv->dot118021XGrpKey[psecuritypriv->dot118021XGrpKeyid].skey, key_len); @@ -1670,16 +1695,6 @@ exit: void free_assoc_resources_hdl(_adapter *padapter, u8 lock_scanned_queue) { -#ifdef CONFIG_SUPPORT_DYNAMIC_TXPWR - struct wlan_network *pcur_nw = &(padapter->mlmepriv.cur_network); - struct sta_info *psta; - - if ((psta = rtw_get_stainfo(&padapter->stapriv, - pcur_nw->network.MacAddress))) { - rtw_hal_dtp_macid_set(padapter, 0, psta->cmn.mac_id, - pcur_nw->network.MacAddress); - } -#endif rtw_free_assoc_resources(padapter, lock_scanned_queue); } @@ -1774,6 +1789,47 @@ exit: } +u8 rtw_iqk_cmd(_adapter *padapter, u8 flags) +{ + struct cmd_obj *pcmdobj; + struct cmd_priv *pcmdpriv = &padapter->cmdpriv; + struct submit_ctx sctx; + u8 res = _SUCCESS; + + if (flags & RTW_CMDF_DIRECTLY) { + /* no need to enqueue, do the cmd hdl */ + rtw_iqk_hdl(padapter, NULL); + } else { + /* need enqueue, prepare cmd_obj and enqueue */ + pcmdobj = (struct cmd_obj *)rtw_zmalloc(sizeof(struct cmd_obj)); + if (pcmdobj == NULL) { + res = _FAIL; + goto exit; + } + + init_h2fwcmd_w_parm_no_parm_rsp(pcmdobj, CMD_DO_IQK); + + if (flags & RTW_CMDF_WAIT_ACK) { + pcmdobj->sctx = &sctx; + rtw_sctx_init(&sctx, 10 * 1000); + } + + res = rtw_enqueue_cmd(pcmdpriv, pcmdobj); + + if (res == _SUCCESS && (flags & RTW_CMDF_WAIT_ACK)) { + rtw_sctx_wait(&sctx, __func__); + _enter_critical_mutex(&pcmdpriv->sctx_mutex, NULL); + if (sctx.status == RTW_SCTX_SUBMITTED) + pcmdobj->sctx = NULL; + _exit_critical_mutex(&pcmdpriv->sctx_mutex, NULL); + } + } + +exit: + + return res; +} + u8 rtw_set_chbw_cmd(_adapter *padapter, u8 ch, u8 bw, u8 ch_offset, u8 flags) { struct cmd_obj *pcmdobj; @@ -1841,29 +1897,32 @@ exit: return res; } -u8 _rtw_set_chplan_cmd(_adapter *adapter, int flags, u8 chplan, const struct country_chplan *country_ent, u8 swconfig) +static u8 _rtw_set_chplan_cmd(_adapter *adapter, int flags + , u8 chplan, u8 chplan_6g, const struct country_chplan *country_ent + , enum regd_src_t regd_src, enum rtw_regd_inr inr + , const struct country_ie_slave_record *cisr) { struct cmd_obj *cmdobj; - struct SetChannelPlan_param *parm; + struct SetChannelPlan_param *parm; struct cmd_priv *pcmdpriv = &adapter->cmdpriv; struct submit_ctx sctx; +#ifdef PLATFORM_LINUX + bool rtnl_lock_needed = rtw_rtnl_lock_needed(adapter_to_dvobj(adapter)); +#endif u8 res = _SUCCESS; - /* check if allow software config */ - if (swconfig && rtw_hal_is_disable_sw_channel_plan(adapter) == _TRUE) { + if (rtw_rfctl_is_disable_sw_channel_plan(adapter_to_dvobj(adapter)) == _TRUE) { res = _FAIL; goto exit; } - /* if country_entry is provided, replace chplan */ - if (country_ent) + if (country_ent) { + /* if country_entry is provided, replace chplan */ chplan = country_ent->chplan; - - /* check input parameter */ - if (!rtw_is_channel_plan_valid(chplan)) { - res = _FAIL; - goto exit; + #if CONFIG_IEEE80211_BAND_6GHZ + chplan_6g = country_ent->chplan_6g; + #endif } /* prepare cmd parameter */ @@ -1872,12 +1931,32 @@ u8 _rtw_set_chplan_cmd(_adapter *adapter, int flags, u8 chplan, const struct cou res = _FAIL; goto exit; } - parm->country_ent = country_ent; + parm->regd_src = regd_src; + parm->inr = inr; + if (country_ent) { + _rtw_memcpy(&parm->country_ent, country_ent, sizeof(parm->country_ent)); + parm->has_country = 1; + } parm->channel_plan = chplan; +#if CONFIG_IEEE80211_BAND_6GHZ + parm->channel_plan_6g = chplan_6g; +#endif +#ifdef CONFIG_80211D + if (cisr) { + _rtw_memcpy(&parm->cisr, cisr, sizeof(*cisr)); + parm->has_cisr = 1; + } +#endif +#ifdef PLATFORM_LINUX + if (flags & (RTW_CMDF_DIRECTLY | RTW_CMDF_WAIT_ACK)) + parm->rtnl_lock_needed = rtnl_lock_needed; /* synchronous call, follow caller's */ + else + parm->rtnl_lock_needed = 1; /* asynchronous call, always needed */ +#endif if (flags & RTW_CMDF_DIRECTLY) { /* no need to enqueue, do the cmd hdl directly and free cmd parameter */ - if (H2C_SUCCESS != set_chplan_hdl(adapter, (u8 *)parm)) + if (H2C_SUCCESS != rtw_set_chplan_hdl(adapter, (u8 *)parm)) res = _FAIL; rtw_mfree((u8 *)parm, sizeof(*parm)); } else { @@ -1915,10 +1994,27 @@ u8 _rtw_set_chplan_cmd(_adapter *adapter, int flags, u8 chplan, const struct cou res = _FAIL; goto exit; } - parm->country_ent = country_ent; + parm->regd_src = regd_src; + parm->inr = inr; + if (country_ent) { + _rtw_memcpy(&parm->country_ent, country_ent, sizeof(parm->country_ent)); + parm->has_country = 1; + } parm->channel_plan = chplan; + #if CONFIG_IEEE80211_BAND_6GHZ + parm->channel_plan_6g = chplan_6g; + #endif + #ifdef CONFIG_80211D + if (cisr) { + _rtw_memcpy(&parm->cisr, cisr, sizeof(*cisr)); + parm->has_cisr = 1; + } + #endif + #ifdef PLATFORM_LINUX + parm->rtnl_lock_needed = rtnl_lock_needed; /* synchronous call, follow caller's */ + #endif - if (H2C_SUCCESS != set_chplan_hdl(adapter, (u8 *)parm)) + if (H2C_SUCCESS != rtw_set_chplan_hdl(adapter, (u8 *)parm)) res = _FAIL; else res = _SUCCESS; @@ -1930,14 +2026,19 @@ exit: return res; } -inline u8 rtw_set_chplan_cmd(_adapter *adapter, int flags, u8 chplan, u8 swconfig) +inline u8 rtw_set_chplan_cmd(_adapter *adapter, int flags, u8 chplan, u8 chplan_6g, enum rtw_regd_inr inr) { - return _rtw_set_chplan_cmd(adapter, flags, chplan, NULL, swconfig); + return _rtw_set_chplan_cmd(adapter, flags, chplan, chplan_6g, NULL, REGD_SRC_RTK_PRIV, inr, NULL); } -inline u8 rtw_set_country_cmd(_adapter *adapter, int flags, const char *country_code, u8 swconfig) +inline u8 rtw_set_country_cmd(_adapter *adapter, int flags, const char *country_code, enum rtw_regd_inr inr) { - const struct country_chplan *ent; + struct country_chplan ent; + + if (IS_ALPHA2_WORLDWIDE(country_code)) { + rtw_get_chplan_worldwide(&ent); + goto cmd; + } if (is_alpha(country_code[0]) == _FALSE || is_alpha(country_code[1]) == _FALSE @@ -1946,18 +2047,138 @@ inline u8 rtw_set_country_cmd(_adapter *adapter, int flags, const char *country_ return _FAIL; } - ent = rtw_get_chplan_from_country(country_code); - - if (ent == NULL) { + if (!rtw_get_chplan_from_country(country_code, &ent)) { RTW_PRINT("%s unsupported country_code:\"%c%c\"\n", __func__, country_code[0], country_code[1]); return _FAIL; } - RTW_PRINT("%s country_code:\"%c%c\" mapping to chplan:0x%02x\n", __func__, country_code[0], country_code[1], ent->chplan); +cmd: + RTW_PRINT("%s country_code:\"%c%c\"\n", __func__, country_code[0], country_code[1]); - return _rtw_set_chplan_cmd(adapter, flags, RTW_CHPLAN_UNSPECIFIED, ent, swconfig); + return _rtw_set_chplan_cmd(adapter, flags, RTW_CHPLAN_UNSPECIFIED, RTW_CHPLAN_6G_UNSPECIFIED, &ent, REGD_SRC_RTK_PRIV, inr, NULL); } +#ifdef CONFIG_REGD_SRC_FROM_OS +inline u8 rtw_sync_os_regd_cmd(_adapter *adapter, int flags, const char *country_code, u8 dfs_region, enum rtw_regd_inr inr) +{ + struct country_chplan ent; + struct country_chplan rtk_ent; + bool rtk_ent_exist; + + rtk_ent_exist = rtw_get_chplan_from_country(country_code, &rtk_ent); + + _rtw_memcpy(ent.alpha2, country_code, 2); + + /* + * Regulation follows OS, the internal txpwr limit selection is searched by alpha2 + * "00" => WW, others use string mapping + * When no matching txpwr limit selection is found, use + * 1. txpwr lmit selection associated with alpha2 inside driver regulation database + * 2. WW when driver has no support of this alpha2 + */ + + ent.chplan = rtk_ent_exist ? rtk_ent.chplan : RTW_CHPLAN_UNSPECIFIED; + #if CONFIG_IEEE80211_BAND_6GHZ + ent.chplan_6g = rtk_ent_exist ? rtk_ent.chplan_6g : RTW_CHPLAN_6G_UNSPECIFIED; + #endif + ent.edcca_mode_2g_override = rtk_ent_exist ? rtk_ent.edcca_mode_2g_override : RTW_EDCCA_DEF; + #if CONFIG_IEEE80211_BAND_5GHZ + ent.edcca_mode_5g_override = rtk_ent_exist ? rtk_ent.edcca_mode_5g_override : RTW_EDCCA_DEF; + #endif + #if CONFIG_IEEE80211_BAND_6GHZ + ent.edcca_mode_6g_override = rtk_ent_exist ? rtk_ent.edcca_mode_6g_override : RTW_EDCCA_DEF; + #endif + ent.txpwr_lmt_override = rtk_ent_exist ? rtk_ent.txpwr_lmt_override : TXPWR_LMT_DEF; + #if defined(CONFIG_80211AC_VHT) || defined(CONFIG_80211AX_HE) + ent.proto_en = CHPLAN_PROTO_EN_ALL; + #endif + + /* TODO: dfs_region */ + + return _rtw_set_chplan_cmd(adapter, flags, RTW_CHPLAN_UNSPECIFIED, RTW_CHPLAN_6G_UNSPECIFIED, &ent, REGD_SRC_OS, inr, NULL); +} +#endif /* CONFIG_REGD_SRC_FROM_OS */ + +u8 rtw_get_chplan_cmd(_adapter *adapter, int flags, struct get_chplan_resp **chplan) +{ + struct cmd_obj *cmdobj; + struct get_channel_plan_param *parm; + struct cmd_priv *pcmdpriv = &adapter->cmdpriv; + struct submit_ctx sctx; + u8 res = _FAIL; + + if (!(flags & (RTW_CMDF_DIRECTLY | RTW_CMDF_WAIT_ACK))) + goto exit; + + /* prepare cmd parameter */ + parm = rtw_zmalloc(sizeof(*parm)); + if (parm == NULL) + goto exit; + parm->chplan = chplan; + + if (flags & RTW_CMDF_DIRECTLY) { + /* no need to enqueue, do the cmd hdl directly and free cmd parameter */ + if (H2C_SUCCESS == rtw_get_chplan_hdl(adapter, (u8 *)parm)) + res = _SUCCESS; + rtw_mfree((u8 *)parm, sizeof(*parm)); + } else { + /* need enqueue, prepare cmd_obj and enqueue */ + cmdobj = (struct cmd_obj *)rtw_zmalloc(sizeof(*cmdobj)); + if (cmdobj == NULL) { + rtw_mfree((u8 *)parm, sizeof(*parm)); + goto exit; + } + + init_h2fwcmd_w_parm_no_rsp(cmdobj, parm, CMD_GET_CHANPLAN); + + if (flags & RTW_CMDF_WAIT_ACK) { + cmdobj->sctx = &sctx; + rtw_sctx_init(&sctx, 2000); + } + + res = rtw_enqueue_cmd(pcmdpriv, cmdobj); + + if (res == _SUCCESS && (flags & RTW_CMDF_WAIT_ACK)) { + rtw_sctx_wait(&sctx, __func__); + _enter_critical_mutex(&pcmdpriv->sctx_mutex, NULL); + if (sctx.status == RTW_SCTX_SUBMITTED) + cmdobj->sctx = NULL; + _exit_critical_mutex(&pcmdpriv->sctx_mutex, NULL); + if (sctx.status != RTW_SCTX_DONE_SUCCESS) + res = _FAIL; + } + + /* allow get channel plan when cmd_thread is not running */ + if (res != _SUCCESS && (flags & RTW_CMDF_WAIT_ACK)) { + parm = rtw_zmalloc(sizeof(*parm)); + if (parm == NULL) + goto exit; + parm->chplan = chplan; + + if (H2C_SUCCESS == rtw_get_chplan_hdl(adapter, (u8 *)parm)) + res = _SUCCESS; + + rtw_mfree((u8 *)parm, sizeof(*parm)); + } + } + +exit: + return res; +} + +#ifdef CONFIG_80211D +inline u8 rtw_apply_recv_country_ie_cmd(_adapter *adapter, int flags, BAND_TYPE band,u8 opch, const u8 *country_ie) +{ + struct country_chplan ent; + struct country_ie_slave_record cisr; + + rtw_get_chplan_from_recv_country_ie(adapter, band, opch, country_ie, &ent, &cisr, NULL); + + return _rtw_set_chplan_cmd(adapter, flags, RTW_CHPLAN_UNSPECIFIED, RTW_CHPLAN_6G_UNSPECIFIED + , NULL, REGD_SRC_RTK_PRIV, RTW_REGD_SET_BY_COUNTRY_IE, &cisr); +} +#endif /* CONFIG_80211D */ + u8 rtw_led_blink_cmd(_adapter *padapter, void *pLed) { struct cmd_obj *pcmdobj; @@ -2011,6 +2232,29 @@ exit: return res; } +u8 rtw_set_ap_csa_cmd(_adapter *adapter) +{ + u8 res = _SUCCESS; +#ifdef CONFIG_AP_MODE + struct cmd_obj *cmdobj; + struct cmd_priv *cmdpriv = &adapter->cmdpriv; + + RTW_INFO("%s\n", __FUNCTION__); + + cmdobj = rtw_zmalloc(sizeof(struct cmd_obj)); + if (cmdobj == NULL) { + res = _FAIL; + goto exit; + } + + init_h2fwcmd_w_parm_no_parm_rsp(cmdobj, CMD_AP_CHANSWITCH); + res = rtw_enqueue_cmd(cmdpriv, cmdobj); + +exit: +#endif /* CONFIG_AP_MODE */ + return res; +} + u8 rtw_tdls_cmd(_adapter *padapter, u8 *addr, u8 option) { u8 res = _SUCCESS; @@ -2809,7 +3053,7 @@ u8 traffic_status_watchdog(_adapter *padapter, u8 from_timer) } - +#ifdef CONFIG_AP_MODE /* for 11n Logo 4.2.31/4.2.32 */ static void dynamic_update_bcn_check(_adapter *padapter) { @@ -2862,10 +3106,12 @@ static void dynamic_update_bcn_check(_adapter *padapter) count ++; } } +#endif /* CONFIG_AP_MODE */ + void rtw_iface_dynamic_chk_wk_hdl(_adapter *padapter) { - #ifdef CONFIG_ACTIVE_KEEP_ALIVE_CHECK #ifdef CONFIG_AP_MODE + #ifdef CONFIG_ACTIVE_KEEP_ALIVE_CHECK if (MLME_IS_AP(padapter) || MLME_IS_MESH(padapter)) { expire_timeout_chk(padapter); #ifdef CONFIG_RTW_MESH @@ -2873,11 +3119,14 @@ void rtw_iface_dynamic_chk_wk_hdl(_adapter *padapter) rtw_mesh_peer_status_chk(padapter); #endif } - #endif #endif /* CONFIG_ACTIVE_KEEP_ALIVE_CHECK */ + dynamic_update_bcn_check(padapter); + #endif /* CONFIG_AP_MODE */ + linked_status_chk(padapter, 0); + roamed_status_chk(padapter, 0); traffic_status_watchdog(padapter, 0); /* for debug purpose */ @@ -2918,6 +3167,14 @@ void rtw_dynamic_chk_wk_hdl(_adapter *padapter) rtw_btcoex_Handler(padapter); #endif +#ifdef CONFIG_RTW_MULTI_AP + rtw_ch_util_rpt(padapter); +#endif + +#ifdef CONFIG_DFS_MASTER + rtw_chset_chk_non_ocp_finish(adapter_to_rfctl(padapter)); +#endif + #ifdef CONFIG_IPS_CHECK_IN_WD /* always call rtw_ps_processor() at last one. */ rtw_ps_processor(padapter); @@ -3186,7 +3443,7 @@ void rtw_lps_change_dtim_hdl(_adapter *padapter, u8 dtim) /* RTW_INFO("change DTIM from %d to %d, ps_mode=%d\n", pwrpriv->dtim, dtim, ps_mode); */ - rtw_hal_set_hwreg(padapter, HW_VAR_H2C_FW_PWRMODE, (u8 *)(&ps_mode)); + rtw_exec_lps(padapter, ps_mode); } #ifdef CONFIG_LPS_LCLK @@ -3431,28 +3688,22 @@ exit: return res; } +#endif /* CONFIG_P2P */ #ifdef CONFIG_IOCTL_CFG80211 -static u8 _p2p_roch_cmd(_adapter *adapter +static struct rtw_roch_parm *rtw_alloc_roch_parm(_adapter *adapter , u64 cookie, struct wireless_dev *wdev , struct ieee80211_channel *ch, enum nl80211_channel_type ch_type , unsigned int duration , u8 flags ) { - struct cmd_obj *cmdobj; - struct drvextra_cmd_parm *parm; - struct p2p_roch_parm *roch_parm; - struct cmd_priv *pcmdpriv = &adapter->cmdpriv; - struct submit_ctx sctx; - u8 cancel = duration ? 0 : 1; - u8 res = _SUCCESS; + struct rtw_roch_parm *roch_parm; + bool cancel = duration ? 0 : 1; - roch_parm = (struct p2p_roch_parm *)rtw_zmalloc(sizeof(struct p2p_roch_parm)); - if (roch_parm == NULL) { - res = _FAIL; - goto exit; - } + roch_parm = (struct rtw_roch_parm *)rtw_zmalloc(sizeof(struct rtw_roch_parm)); + if (!roch_parm) + return NULL; roch_parm->cookie = cookie; roch_parm->wdev = wdev; @@ -3462,76 +3713,36 @@ static u8 _p2p_roch_cmd(_adapter *adapter roch_parm->duration = duration; } - if (flags & RTW_CMDF_DIRECTLY) { - /* no need to enqueue, do the cmd hdl directly and free cmd parameter */ - if (H2C_SUCCESS != p2p_protocol_wk_hdl(adapter, cancel ? P2P_CANCEL_RO_CH_WK : P2P_RO_CH_WK, (u8 *)roch_parm)) - res = _FAIL; - rtw_mfree((u8 *)roch_parm, sizeof(*roch_parm)); - } else { - /* need enqueue, prepare cmd_obj and enqueue */ - parm = (struct drvextra_cmd_parm *)rtw_zmalloc(sizeof(struct drvextra_cmd_parm)); - if (parm == NULL) { - rtw_mfree((u8 *)roch_parm, sizeof(*roch_parm)); - res = _FAIL; - goto exit; - } - - parm->ec_id = P2P_PROTO_WK_CID; - parm->type = cancel ? P2P_CANCEL_RO_CH_WK : P2P_RO_CH_WK; - parm->size = sizeof(*roch_parm); - parm->pbuf = (u8 *)roch_parm; - - cmdobj = (struct cmd_obj *)rtw_zmalloc(sizeof(*cmdobj)); - if (cmdobj == NULL) { - res = _FAIL; - rtw_mfree((u8 *)roch_parm, sizeof(*roch_parm)); - rtw_mfree((u8 *)parm, sizeof(*parm)); - goto exit; - } - - init_h2fwcmd_w_parm_no_rsp(cmdobj, parm, CMD_SET_DRV_EXTRA); - - if (flags & RTW_CMDF_WAIT_ACK) { - cmdobj->sctx = &sctx; - rtw_sctx_init(&sctx, 10 * 1000); - } - - res = rtw_enqueue_cmd(pcmdpriv, cmdobj); - - if (res == _SUCCESS && (flags & RTW_CMDF_WAIT_ACK)) { - rtw_sctx_wait(&sctx, __func__); - _enter_critical_mutex(&pcmdpriv->sctx_mutex, NULL); - if (sctx.status == RTW_SCTX_SUBMITTED) - cmdobj->sctx = NULL; - _exit_critical_mutex(&pcmdpriv->sctx_mutex, NULL); - if (sctx.status != RTW_SCTX_DONE_SUCCESS) - res = _FAIL; - } - } - -exit: - return res; + return roch_parm; } -inline u8 p2p_roch_cmd(_adapter *adapter +inline u8 rtw_roch_cmd(_adapter *adapter , u64 cookie, struct wireless_dev *wdev , struct ieee80211_channel *ch, enum nl80211_channel_type ch_type , unsigned int duration , u8 flags ) { - return _p2p_roch_cmd(adapter, cookie, wdev, ch, ch_type, duration, flags); + struct rtw_roch_parm *roch_parm; + + roch_parm = rtw_alloc_roch_parm(adapter, cookie, wdev, ch, ch_type, duration, flags); + if (!roch_parm) + return _FAIL; + + return rtw_roch_wk_cmd(adapter, ROCH_RO_CH_WK, roch_parm, flags); } -inline u8 p2p_cancel_roch_cmd(_adapter *adapter, u64 cookie, struct wireless_dev *wdev, u8 flags) +inline u8 rtw_cancel_roch_cmd(_adapter *adapter, u64 cookie, struct wireless_dev *wdev, u8 flags) { - return _p2p_roch_cmd(adapter, cookie, wdev, NULL, 0, 0, flags); + struct rtw_roch_parm *roch_parm; + + roch_parm = rtw_alloc_roch_parm(adapter, cookie, wdev, NULL, 0, 0, flags); + if (!roch_parm) + return _FAIL; + + return rtw_roch_wk_cmd(adapter, ROCH_CANCEL_RO_CH_WK, roch_parm, flags); } -#endif /* CONFIG_IOCTL_CFG80211 */ -#endif /* CONFIG_P2P */ - -#ifdef CONFIG_IOCTL_CFG80211 inline u8 rtw_mgnt_tx_cmd(_adapter *adapter, u8 tx_ch, u8 no_cck, const u8 *buf, size_t len, int wait_ack, u8 flags) { struct cmd_obj *cmdobj; @@ -3651,9 +3862,12 @@ void rtw_dfs_ch_switch_hdl(struct dvobj_priv *dvobj) { struct rf_ctl_t *rfctl = dvobj_to_rfctl(dvobj); _adapter *pri_adapter = dvobj_get_primary_adapter(dvobj); + struct mlme_ext_priv *pmlmeext = &pri_adapter->mlmeextpriv; u8 ifbmp_m = rtw_mi_get_ap_mesh_ifbmp(pri_adapter); u8 ifbmp_s = rtw_mi_get_ld_sta_ifbmp(pri_adapter); s16 req_ch; + u8 req_bw = CHANNEL_WIDTH_20, req_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE, csa_timer = _FALSE; + u8 need_discon = _FALSE; rtw_hal_macid_sleep_all_used(pri_adapter); @@ -3663,9 +3877,11 @@ void rtw_dfs_ch_switch_hdl(struct dvobj_priv *dvobj) /* CSA channel available and valid */ req_ch = rfctl->csa_ch; RTW_INFO("%s valid CSA ch%u\n", __func__, rfctl->csa_ch); + csa_timer = _TRUE; } else if (ifbmp_m) { /* no available or valid CSA channel, having AP/MESH ifaces */ req_ch = REQ_CH_NONE; + need_discon = _TRUE; RTW_INFO("%s ch sel by AP/MESH ifaces\n", __func__); } else { /* no available or valid CSA channel and no AP/MESH ifaces */ @@ -3677,10 +3893,36 @@ void rtw_dfs_ch_switch_hdl(struct dvobj_priv *dvobj) req_ch = 36; else req_ch = 1; - RTW_INFO("%s switch to ch%d\n", __func__, req_ch); + need_discon = _TRUE; + RTW_INFO("%s switch to ch%d, then disconnect with AP\n", __func__, req_ch); } - /* issue deauth for all asoc STA ifaces */ + if (!need_discon) { + /* fault tolerant for AP */ + if(rfctl->csa_ch_width == 1 || rfctl->csa_ch_width == 2 || rfctl->csa_ch_width == 3) { + if (rtw_get_offset_by_chbw(req_ch, CHANNEL_WIDTH_80, &req_offset)) { + /* always use 80 Mhz to connect if ch/bw/offset is valid */ + req_bw = CHANNEL_WIDTH_80; + } else { + req_bw = CHANNEL_WIDTH_20; + req_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE; + } + } else if(rfctl->csa_ch_offset == 1) { + req_bw = CHANNEL_WIDTH_40; + req_offset = HAL_PRIME_CHNL_OFFSET_LOWER; + } else if(rfctl->csa_ch_offset == 3) { + req_bw = CHANNEL_WIDTH_40; + req_offset = HAL_PRIME_CHNL_OFFSET_UPPER; + } else{ + req_bw = CHANNEL_WIDTH_20; + req_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE; + } + } + + RTW_INFO("req_ch=%d, req_bw=%d, req_offset=%d, ifbmp_m=0x%02x, ifbmp_s=0x%02x\n" + , req_ch, req_bw, req_offset, ifbmp_m, ifbmp_s); + + /* check all STA ifaces status */ if (ifbmp_s) { _adapter *iface; int i; @@ -3689,35 +3931,71 @@ void rtw_dfs_ch_switch_hdl(struct dvobj_priv *dvobj) iface = dvobj->padapters[i]; if (!iface || !(ifbmp_s & BIT(iface->iface_id))) continue; - set_fwstate(&iface->mlmepriv, WIFI_OP_CH_SWITCHING); - /* TODO: true op ch switching */ - issue_deauth(iface, get_bssid(&iface->mlmepriv), WLAN_REASON_DEAUTH_LEAVING); + if (need_discon) { + /* CSA channel not available or not valid, then disconnect */ + set_fwstate(&iface->mlmepriv, WIFI_OP_CH_SWITCHING); + issue_deauth(iface, get_bssid(&iface->mlmepriv), WLAN_REASON_DEAUTH_LEAVING); + } else { + /* update STA mode ch/bw/offset */ + iface->mlmeextpriv.cur_channel = req_ch; + iface->mlmeextpriv.cur_bwmode = req_bw; + iface->mlmeextpriv.cur_ch_offset = req_offset; + /* updaet STA mode DSConfig , ap mode will update in rtw_change_bss_chbw_cmd */ + iface->mlmepriv.cur_network.network.Configuration.DSConfig = req_ch; + set_fwstate(&iface->mlmepriv, WIFI_CSA_UPDATE_BEACON); + + #ifdef CONFIG_80211D + if (iface->mlmepriv.recv_country_ie) { + if (rtw_apply_recv_country_ie_cmd(iface, RTW_CMDF_DIRECTLY + , req_ch > 14 ? BAND_ON_5G : BAND_ON_2_4G, req_ch + , iface->mlmepriv.recv_country_ie) != _SUCCESS + ) + RTW_WARN(FUNC_ADPT_FMT" rtw_apply_recv_country_ie_cmd() fail\n", FUNC_ADPT_ARG(iface)); + } + #endif + } } } + if (csa_timer) { + RTW_INFO("pmlmeext->csa_timer 70 seconds\n"); + /* wait 70 seconds for receiving beacons */ + _set_timer(&pmlmeext->csa_timer, CAC_TIME_MS + 10000); + } + #ifdef CONFIG_AP_MODE if (ifbmp_m) { - /* trigger channel selection without consideraton of asoc STA ifaces */ + u8 execlude = 0; + + if (need_discon) + execlude = ifbmp_s; + /* trigger channel selection with consideraton of asoc STA ifaces */ rtw_change_bss_chbw_cmd(dvobj_get_primary_adapter(dvobj), RTW_CMDF_DIRECTLY - , ifbmp_m, ifbmp_s, req_ch, REQ_BW_ORI, REQ_OFFSET_NONE); + , ifbmp_m, execlude, req_ch, REQ_BW_ORI, REQ_OFFSET_NONE); } else #endif { /* no AP/MESH iface, switch DFS status and channel directly */ rtw_warn_on(req_ch <= 0); #ifdef CONFIG_DFS_MASTER - rtw_dfs_rd_en_decision(pri_adapter, MLME_OPCH_SWITCH, ifbmp_s); + if (need_discon) + rtw_dfs_rd_en_decision(pri_adapter, MLME_OPCH_SWITCH, ifbmp_s); + else + rtw_dfs_rd_en_decision(pri_adapter, MLME_OPCH_SWITCH, 0); #endif - set_channel_bwmode(pri_adapter, req_ch, HAL_PRIME_CHNL_OFFSET_DONT_CARE, CHANNEL_WIDTH_20); + LeaveAllPowerSaveModeDirect(pri_adapter); + set_channel_bwmode(pri_adapter, req_ch, req_offset, req_bw); + /* update union ch/bw/offset for STA only */ + rtw_mi_update_union_chan_inf(pri_adapter, req_ch, req_offset, req_bw); + rtw_rfctl_update_op_mode(rfctl, 0, 0); } /* make asoc STA ifaces disconnect */ - /* TODO: true op ch switching */ - if (ifbmp_s) { + if (ifbmp_s && need_discon) { _adapter *iface; int i; - + for (i = 0; i < dvobj->iface_nums; i++) { iface = dvobj->padapters[i]; if (!iface || !(ifbmp_s & BIT(iface->iface_id))) @@ -3730,6 +4008,11 @@ void rtw_dfs_ch_switch_hdl(struct dvobj_priv *dvobj) } rfctl->csa_ch = 0; + rfctl->csa_switch_cnt = 0; + rfctl->csa_ch_offset = 0; + rfctl->csa_ch_width = 0; + rfctl->csa_ch_freq_seg0 = 0; + rfctl->csa_ch_freq_seg1 = 0; rtw_hal_macid_wakeup_all_used(pri_adapter); rtw_mi_os_xmit_schedule(pri_adapter); @@ -3815,10 +4098,13 @@ u8 rtw_dfs_rd_hdl(_adapter *adapter) { struct dvobj_priv *dvobj = adapter_to_dvobj(adapter); struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + u8 cch; if (!rfctl->radar_detect_enabled) goto exit; + cch = rtw_get_center_ch(rfctl->radar_detect_ch, rfctl->radar_detect_bw, rfctl->radar_detect_offset); + if (dvobj->oper_channel != rfctl->radar_detect_ch || rtw_get_passing_time_ms(rtw_get_on_oper_ch_time(adapter)) < 300 ) { @@ -3855,6 +4141,10 @@ u8 rtw_dfs_rd_hdl(_adapter *adapter) rtw_chset_update_non_ocp(rfctl->channel_set , rfctl->radar_detect_ch, rfctl->radar_detect_bw, rfctl->radar_detect_offset); + if (IS_UNDER_CAC(rfctl)) + rtw_nlrtw_cac_abort_event(adapter, cch, rfctl->radar_detect_bw); + rtw_nlrtw_radar_detect_event(adapter, cch, rfctl->radar_detect_bw); + rtw_dfs_ch_switch_hdl(dvobj); if (rfctl->radar_detect_enabled) @@ -3872,6 +4162,7 @@ cac_status_chk: rtw_hal_set_hwreg(adapter, HW_VAR_TXPAUSE, &pause); rfctl->cac_start_time = rfctl->cac_end_time = RTW_CAC_STOPPED; + rtw_nlrtw_cac_finish_event(adapter, cch, rfctl->radar_detect_bw); if (rtw_mi_check_fwstate(adapter, WIFI_UNDER_LINKING|WIFI_UNDER_SURVEY) == _FALSE) { u8 doiqk = _TRUE; @@ -3887,8 +4178,10 @@ cac_status_chk: doiqk = _FALSE; rtw_hal_set_hwreg(adapter , HW_VAR_DO_IQK , &doiqk); + #ifdef CONFIG_AP_MODE ResumeTxBeacon(adapter); rtw_mi_tx_beacon_hdl(adapter); + #endif } } @@ -4020,6 +4313,10 @@ static void rtw_dfs_rd_disable(struct rf_ctl_t *rfctl, u8 ch, u8 bw, u8 offset, rfctl->radar_detect_ch = ch; rfctl->radar_detect_bw = bw; rfctl->radar_detect_offset = offset; + } else { + rfctl->radar_detect_ch = 0; + rfctl->radar_detect_bw = 0; + rfctl->radar_detect_offset = 0; } } @@ -4045,7 +4342,8 @@ void rtw_dfs_rd_en_decision(_adapter *adapter, u8 mlme_act, u8 excl_ifbmp) ifbmp = ~excl_ifbmp & ~BIT(adapter->iface_id); rtw_mi_status_by_ifbmp(dvobj, ifbmp, &mstate); rtw_mi_get_ch_setting_union_by_ifbmp(dvobj, ifbmp, &u_ch, &u_bw, &u_offset); - if (u_ch != 0) + if (u_ch != 0 && !MLME_IS_OPCH_SW(adapter) + && CHK_MLME_STATE(adapter, WIFI_UNDER_LINKING | WIFI_ASOC_STATE)) sync_ch = _TRUE; switch (mlme_act) { @@ -4077,16 +4375,14 @@ void rtw_dfs_rd_en_decision(_adapter *adapter, u8 mlme_act, u8 excl_ifbmp) } if (sync_ch == _TRUE) { - if (!MLME_IS_OPCH_SW(adapter)) { - if (!rtw_is_chbw_grouped(mlmeext->cur_channel, mlmeext->cur_bwmode, mlmeext->cur_ch_offset, u_ch, u_bw, u_offset)) { - RTW_INFO(FUNC_ADPT_FMT" can't sync %u,%u,%u with %u,%u,%u\n", FUNC_ADPT_ARG(adapter) - , mlmeext->cur_channel, mlmeext->cur_bwmode, mlmeext->cur_ch_offset, u_ch, u_bw, u_offset); - goto apply; - } - - rtw_sync_chbw(&mlmeext->cur_channel, &mlmeext->cur_bwmode, &mlmeext->cur_ch_offset - , &u_ch, &u_bw, &u_offset); + if (!rtw_is_chbw_grouped(mlmeext->cur_channel, mlmeext->cur_bwmode, mlmeext->cur_ch_offset, u_ch, u_bw, u_offset)) { + RTW_WARN(FUNC_ADPT_FMT" can't sync %u,%u,%u with %u,%u,%u\n", FUNC_ADPT_ARG(adapter) + , mlmeext->cur_channel, mlmeext->cur_bwmode, mlmeext->cur_ch_offset, u_ch, u_bw, u_offset); + goto apply; } + + rtw_sync_chbw(&mlmeext->cur_channel, &mlmeext->cur_bwmode, &mlmeext->cur_ch_offset + , &u_ch, &u_bw, &u_offset); } else { u_ch = mlmeext->cur_channel; u_bw = mlmeext->cur_bwmode; @@ -4100,12 +4396,12 @@ void rtw_dfs_rd_en_decision(_adapter *adapter, u8 mlme_act, u8 excl_ifbmp) } if (MSTATE_STA_LD_NUM(&mstate) > 0) { - if (rtw_is_dfs_chbw(u_ch, u_bw, u_offset)) { + if (rtw_chset_is_dfs_chbw(rfctl->channel_set, u_ch, u_bw, u_offset)) { /* * if operate as slave w/o radar detect, * rely on AP on which STA mode connects */ - if (IS_DFS_SLAVE_WITH_RD(rfctl) && !rtw_odm_dfs_domain_unknown(dvobj)) + if (IS_DFS_SLAVE_WITH_RD(rfctl) && !rtw_rfctl_dfs_domain_unknown(rfctl)) needed = _TRUE; ld_sta_in_dfs = _TRUE; } @@ -4117,7 +4413,7 @@ void rtw_dfs_rd_en_decision(_adapter *adapter, u8 mlme_act, u8 excl_ifbmp) goto apply; } - if (rtw_is_dfs_chbw(u_ch, u_bw, u_offset)) + if (rtw_chset_is_dfs_chbw(rfctl->channel_set, u_ch, u_bw, u_offset)) needed = _TRUE; apply: @@ -4418,12 +4714,13 @@ static s32 rtw_mp_cmd_hdl(_adapter *padapter, u8 mp_cmd_id) rtw_intf_stop(padapter); rtw_hal_deinit(padapter); padapter->registrypriv.mp_mode = 1; -#if (CONFIG_BTCOEX_SUPPORT_WIFI_ONLY_CFG == 1) +#ifdef CONFIG_BT_COEXIST padapter->mppriv.CureFuseBTCoex = pHalData->EEPROMBluetoothCoexist; pHalData->EEPROMBluetoothCoexist = _FALSE; #endif #ifdef CONFIG_RF_POWER_TRIM - if (!IS_HARDWARE_TYPE_8814A(padapter) && !IS_HARDWARE_TYPE_8822B(padapter) && !IS_HARDWARE_TYPE_8822C(padapter)) { + if (!IS_HARDWARE_TYPE_8814A(padapter) && !IS_HARDWARE_TYPE_8822B(padapter) + && !IS_HARDWARE_TYPE_8822C(padapter) && !IS_HARDWARE_TYPE_8723F(padapter)) { padapter->registrypriv.RegPwrTrimEnable = 1; rtw_hal_read_chip_info(padapter); } @@ -4490,7 +4787,7 @@ static s32 rtw_mp_cmd_hdl(_adapter *padapter, u8 mp_cmd_id) rtw_intf_stop(padapter); rtw_hal_deinit(padapter); padapter->registrypriv.mp_mode = 0; -#if (CONFIG_BTCOEX_SUPPORT_WIFI_ONLY_CFG == 1) +#ifdef CONFIG_BT_COEXIST pHalData->EEPROMBluetoothCoexist = padapter->mppriv.CureFuseBTCoex; #endif rtw_reset_drv_sw(padapter); @@ -5335,6 +5632,13 @@ u8 rtw_drvextra_cmd_hdl(_adapter *padapter, unsigned char *pbuf) ret = rtw_mgnt_tx_handler(padapter, pdrvextra_cmd->pbuf); break; #endif /* CONFIG_IOCTL_CFG80211 */ + +#if (defined(CONFIG_P2P) && defined(CONFIG_CONCURRENT_MODE)) || defined(CONFIG_IOCTL_CFG80211) + case ROCH_WK_CID: + ret = rtw_roch_wk_hdl(padapter, pdrvextra_cmd->type, pdrvextra_cmd->pbuf); + break; +#endif /* (defined(CONFIG_P2P) && defined(CONFIG_CONCURRENT_MODE)) || defined(CONFIG_IOCTL_CFG80211) */ + #ifdef CONFIG_MCC_MODE case MCC_CMD_WK_CID: ret = rtw_mcc_cmd_hdl(padapter, pdrvextra_cmd->type, pdrvextra_cmd->pbuf); @@ -5567,3 +5871,80 @@ u8 set_txq_params_cmd(_adapter *adapter, u32 ac_parm, u8 ac_type) exit: return res; } + +/* Driver writes beacon length to REG for FW adjusting beacon receive time */ +#ifdef CONFIG_WRITE_BCN_LEN_TO_FW +u8 rtw_write_bcnlen_to_fw_cmd(_adapter *padapter, u16 bcn_len) +{ + struct cmd_obj *pcmd; + struct write_bcnlen_param *parm; + struct cmd_priv *pcmdpriv = &padapter->cmdpriv; + u8 res = _SUCCESS; + + pcmd = (struct cmd_obj *)rtw_zmalloc(sizeof(struct cmd_obj)); + if (pcmd == NULL) { + res = _FAIL; + goto exit; + } + + parm = (struct write_bcnlen_param *)rtw_zmalloc(sizeof(struct write_bcnlen_param)); + if (parm == NULL) { + rtw_mfree((unsigned char *)pcmd, sizeof(struct cmd_obj)); + res = _FAIL; + goto exit; + } + + parm->bcn_len = bcn_len; + init_h2fwcmd_w_parm_no_rsp(pcmd, parm, CMD_WRITE_BCN_LEN); + res = rtw_enqueue_cmd(pcmdpriv, pcmd); + +exit: + return res; +} +#endif /* CONFIG_WRITE_BCN_LEN_TO_FW */ + +u8 rtw_reqtxrpt_cmd(_adapter *adapter, u8 macid) +{ + struct cmd_obj *cmdobj; + struct reqtxrpt_param *parm; + struct cmd_priv *pcmdpriv = &adapter->cmdpriv; + struct submit_ctx sctx; + u8 flags = RTW_CMDF_WAIT_ACK; + u8 res = _FAIL; + + /* prepare cmd parameter */ + parm = rtw_zmalloc(sizeof(*parm)); + if (parm == NULL) + goto exit; + parm->macid = macid; + + /* need enqueue, prepare cmd_obj and enqueue */ + cmdobj = rtw_zmalloc(sizeof(*cmdobj)); + if (cmdobj == NULL) { + rtw_mfree((u8 *)parm, sizeof(*parm)); + goto exit; + } + + init_h2fwcmd_w_parm_no_rsp(cmdobj, parm, CMD_REQ_TXRPT); + + if (flags & RTW_CMDF_WAIT_ACK) { + cmdobj->sctx = &sctx; + rtw_sctx_init(&sctx, 2000); + } + + res = rtw_enqueue_cmd(pcmdpriv, cmdobj); + + if (res == _SUCCESS && (flags & RTW_CMDF_WAIT_ACK)) { + rtw_sctx_wait(&sctx, __func__); + _enter_critical_mutex(&pcmdpriv->sctx_mutex, NULL); + if (sctx.status == RTW_SCTX_SUBMITTED) + cmdobj->sctx = NULL; + _exit_critical_mutex(&pcmdpriv->sctx_mutex, NULL); + if (sctx.status != RTW_SCTX_DONE_SUCCESS) + res = _FAIL; + } + +exit: + return res; +} + diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_debug.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_debug.c old mode 100644 new mode 100755 index d8b5e485..bf4859f3 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_debug.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_debug.c @@ -45,16 +45,26 @@ void dump_drv_version(void *sel) RTW_PRINT_SEL(sel, "build time: %s %s\n", __DATE__, __TIME__); } +#ifdef CONFIG_PROC_DEBUG void dump_drv_cfg(void *sel) { +extern uint rtw_recvbuf_nr; + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 24)) char *kernel_version = utsname()->release; RTW_PRINT_SEL(sel, "\nKernel Version: %s\n", kernel_version); #endif +#ifdef CONFIG_RTW_ANDROID + RTW_PRINT_SEL(sel, "Android Driver: %d\n", CONFIG_RTW_ANDROID); +#else + RTW_PRINT_SEL(sel, "Linux Driver: \n"); +#endif /* CONFIG_RTW_ANDROID */ + RTW_PRINT_SEL(sel, "Driver Version: %s\n", DRIVERVERSION); RTW_PRINT_SEL(sel, "------------------------------------------------\n"); + #ifdef CONFIG_IOCTL_CFG80211 RTW_PRINT_SEL(sel, "CFG80211\n"); #ifdef RTW_USE_CFG80211_STA_EVENT @@ -116,6 +126,8 @@ void dump_drv_cfg(void *sel) RTW_PRINT_SEL(sel, "CONFIG_TXPWR_BY_RATE=%d\n", CONFIG_TXPWR_BY_RATE); RTW_PRINT_SEL(sel, "CONFIG_TXPWR_BY_RATE_EN=%d\n", CONFIG_TXPWR_BY_RATE_EN); + RTW_PRINT_SEL(sel, "CONFIG_TXPWR_LIMIT=%d\n", CONFIG_TXPWR_LIMIT); + RTW_PRINT_SEL(sel, "CONFIG_TXPWR_LIMIT_EN=%d\n", CONFIG_TXPWR_LIMIT_EN); #ifdef CONFIG_DISABLE_ODM @@ -127,9 +139,7 @@ void dump_drv_cfg(void *sel) #endif RTW_PRINT_SEL(sel, "CONFIG_RTW_ADAPTIVITY_EN = %d\n", CONFIG_RTW_ADAPTIVITY_EN); -#if (CONFIG_RTW_ADAPTIVITY_EN) - RTW_PRINT_SEL(sel, "ADAPTIVITY_MODE = %s\n", (CONFIG_RTW_ADAPTIVITY_MODE) ? "carrier_sense" : "normal"); -#endif + RTW_PRINT_SEL(sel, "CONFIG_RTW_ADAPTIVITY_MODE = %d\n", CONFIG_RTW_ADAPTIVITY_MODE); #ifdef CONFIG_WOWLAN RTW_PRINT_SEL(sel, "CONFIG_WOWLAN - "); @@ -143,6 +153,18 @@ void dump_drv_cfg(void *sel) RTW_PRINT_SEL(sel, "CONFIG_TDLS\n"); #endif +#ifdef CONFIG_RTW_MBO + RTW_PRINT_SEL(sel, "CONFIG_RTW_MBO\n"); +#endif + +#ifdef CONFIG_RTW_80211K + RTW_PRINT_SEL(sel, "CONFIG_RTW_80211K\n"); +#endif + +#ifdef CONFIG_RTW_WNM + RTW_PRINT_SEL(sel, "CONFIG_RTW_WNM\n"); +#endif + #ifdef CONFIG_RTW_80211R RTW_PRINT_SEL(sel, "CONFIG_RTW_80211R\n"); #endif @@ -209,11 +231,6 @@ void dump_drv_cfg(void *sel) #ifdef DBG_SDIO RTW_PRINT_SEL(sel, "DBG_SDIO = %d\n", DBG_SDIO); #endif - -#ifdef CONFIG_RTW_DISABLE_HW_PDN - RTW_PRINT_SEL(sel, "CONFIG_RTW_DISABLE_HW_PDN\n"); -#endif - #endif /*CONFIG_SDIO_HCI*/ #ifdef CONFIG_PCI_HCI @@ -248,10 +265,12 @@ void dump_drv_cfg(void *sel) RTW_PRINT_SEL(sel, "\n=== RECV-INFO ===\n"); RTW_PRINT_SEL(sel, "NR_RECVFRAME = %d\n", NR_RECVFRAME); - RTW_PRINT_SEL(sel, "NR_RECVBUFF = %d\n", NR_RECVBUFF); + RTW_PRINT_SEL(sel, "NR_RECVBUFF = %d, rtw_recvbuf_nr = %d\n", NR_RECVBUFF, rtw_recvbuf_nr); RTW_PRINT_SEL(sel, "MAX_RECVBUF_SZ = %d\n", MAX_RECVBUF_SZ); } +#endif /* CONFIG_PROC_DEBUG */ + void dump_log_level(void *sel) { @@ -327,7 +346,8 @@ void mac_reg_dump(void *sel, _adapter *adapter) } #endif /* CONFIG_RTL8814A */ -#if defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) ||defined(CONFIG_RTL8192F) || defined(CONFIG_RTL8822C) || defined(CONFIG_RTL8814B) +#if defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8822C) || defined(CONFIG_RTL8814B) \ + || defined(CONFIG_RTL8723F) for (i = 0x1000; i < 0x1800; i += 4) { if (j % 4 == 1) RTW_PRINT_SEL(sel, "0x%04x", i); @@ -335,7 +355,24 @@ void mac_reg_dump(void *sel, _adapter *adapter) if ((j++) % 4 == 0) _RTW_PRINT_SEL(sel, "\n"); } -#endif /* CONFIG_RTL8822B or 8821c or 8192f*/ +#endif /* CONFIG_RTL8822B or 8821c*/ + +#if defined(CONFIG_RTL8192F) + for (i = 0x1000; i < 0x1100; i += 4) { + if (j % 4 == 1) + RTW_PRINT_SEL(sel, "0x%04x", i); + _RTW_PRINT_SEL(sel, " 0x%08x ", rtw_read32(adapter, i)); + if ((j++) % 4 == 0) + _RTW_PRINT_SEL(sel, "\n"); + } + for (i = 0x1300; i < 0x1360; i += 4) { + if (j % 4 == 1) + RTW_PRINT_SEL(sel, "0x%04x", i); + _RTW_PRINT_SEL(sel, " 0x%08x ", rtw_read32(adapter, i)); + if ((j++) % 4 == 0) + _RTW_PRINT_SEL(sel, "\n"); + } +#endif #if defined(CONFIG_RTL8814B) for (i = 0x2000; i < 0x2800; i += 4) { @@ -370,7 +407,8 @@ void bb_reg_dump(void *sel, _adapter *adapter) _RTW_PRINT_SEL(sel, "\n"); } -#if defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8822C) || defined(CONFIG_RTL8814B) +#if defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8822C) || defined(CONFIG_RTL8814B) \ + || defined(CONFIG_RTL8723F) for (i = 0x1800; i < 0x2000; i += 4) { if (j % 4 == 1) RTW_PRINT_SEL(sel, "0x%04x", i); @@ -380,7 +418,7 @@ void bb_reg_dump(void *sel, _adapter *adapter) } #endif /* CONFIG_RTL8822B */ -#if defined(CONFIG_RTL8822C) || defined(CONFIG_RTL8814B) +#if defined(CONFIG_RTL8822C) || defined(CONFIG_RTL8814B) || defined(CONFIG_RTL8723F) for (i = 0x2c00; i < 0x2c60; i += 4) { if (j % 4 == 1) RTW_PRINT_SEL(sel, "0x%04x", i); @@ -395,7 +433,7 @@ void bb_reg_dump(void *sel, _adapter *adapter) _RTW_PRINT_SEL(sel, " 0x%08x ", rtw_read32(adapter, i)); if ((j++) % 4 == 0) _RTW_PRINT_SEL(sel, "\n"); - } + } for (i = 0x4000; i < 0x4060; i += 4) { if (j % 4 == 1) @@ -403,7 +441,7 @@ void bb_reg_dump(void *sel, _adapter *adapter) _RTW_PRINT_SEL(sel, " 0x%08x ", rtw_read32(adapter, i)); if ((j++) % 4 == 0) _RTW_PRINT_SEL(sel, "\n"); - } + } for (i = 0x4100; i < 0x4200; i += 4) { if (j % 4 == 1) @@ -411,9 +449,9 @@ void bb_reg_dump(void *sel, _adapter *adapter) _RTW_PRINT_SEL(sel, " 0x%08x ", rtw_read32(adapter, i)); if ((j++) % 4 == 0) _RTW_PRINT_SEL(sel, "\n"); - } + } -#endif /* CONFIG_RTL8822C || CONFIG_RTL8814B */ +#endif /* CONFIG_RTL8822C || CONFIG_RTL8814B || CONFIG_8723F */ #if defined(CONFIG_RTL8814B) for (i = 0x5200; i < 0x5400; i += 4) { @@ -424,6 +462,38 @@ void bb_reg_dump(void *sel, _adapter *adapter) _RTW_PRINT_SEL(sel, "\n"); } #endif /* CONFIG_RTL8814B */ + +#if defined(CONFIG_RTL8723F) + /* RFK(IQK/DPK) */ + RTW_PRINT_SEL(sel, "RFK(IQK/DPK)\n"); + for (i = 0x1B00; i < 0x1C00; i += 4) { + if (j % 4 == 1) + RTW_PRINT_SEL(sel, "0x%04x", i); + _RTW_PRINT_SEL(sel, " 0x%08x ", rtw_read32(adapter, i)); + if ((j++) % 4 == 0) + _RTW_PRINT_SEL(sel, "\n"); + } + + /* Debug port */ + RTW_PRINT_SEL(sel, "Debug port\n"); + for (i = 0x2A00; i < 0x2B00; i += 4) { + if (j % 4 == 1) + RTW_PRINT_SEL(sel, "0x%04x", i); + _RTW_PRINT_SEL(sel, " 0x%08x ", rtw_read32(adapter, i)); + if ((j++) % 4 == 0) + _RTW_PRINT_SEL(sel, "\n"); + } + + /* TSSI/DPK */ + RTW_PRINT_SEL(sel, "TSSI/DPK\n"); + for (i = 0x4200; i < 0x43C0; i += 4) { + if (j % 4 == 1) + RTW_PRINT_SEL(sel, "0x%04x", i); + _RTW_PRINT_SEL(sel, " 0x%08x ", rtw_read32(adapter, i)); + if ((j++) % 4 == 0) + _RTW_PRINT_SEL(sel, "\n"); + } +#endif /* CONFIG_RTL8723F */ } void bb_reg_dump_ex(void *sel, _adapter *adapter) @@ -545,6 +615,7 @@ void dump_tx_rate_bmp(void *sel, struct dvobj_priv *dvobj) void dump_adapters_status(void *sel, struct dvobj_priv *dvobj) { +#if defined(CONFIG_RTW_DEBUG) || defined(CONFIG_PROC_DEBUG) struct rf_ctl_t *rfctl = dvobj_to_rfctl(dvobj); int i; _adapter *iface; @@ -618,11 +689,11 @@ void dump_adapters_status(void *sel, struct dvobj_priv *dvobj) #define INFO_CNT_ARG #endif - RTW_PRINT_SEL(sel, "%-2s %-15s %c %-3s %-3s %-3s %-17s %-4s %-7s" + RTW_PRINT_SEL(sel, "%-2s %-15s %c %-3s %-3s %-3s %-17s %-4s %-7s %-5s" P2P_INFO_TITLE_FMT TSF_PAUSE_TIME_TITLE_FMT " %s"INFO_FMT"\n" - , "id", "ifname", ' ', "bup", "nup", "ncd", "macaddr", "port", "ch" + , "id", "ifname", ' ', "bup", "nup", "ncd", "macaddr", "port", "ch", "class" P2P_INFO_TITLE_ARG TSF_PAUSE_TIME_TITLE_ARG , "status"INFO_ARG); @@ -637,7 +708,7 @@ void dump_adapters_status(void *sel, struct dvobj_priv *dvobj) #if (defined(CONFIG_SUPPORT_MULTI_BCN) && defined(CONFIG_FW_HANDLE_TXBCN)) || defined(CONFIG_CLIENT_PORT_CFG) _rtw_memset(&str_val, '\0', sizeof(str_val)); #endif - #if defined(CONFIG_SUPPORT_MULTI_BCN) && defined(CONFIG_FW_HANDLE_TXBCN) + #if defined(CONFIG_AP_MODE) && defined(CONFIG_SUPPORT_MULTI_BCN) && defined(CONFIG_FW_HANDLE_TXBCN) if (MLME_IS_AP(iface) || MLME_IS_MESH(iface)) { u8 len; char *p = str_val; @@ -674,7 +745,7 @@ void dump_adapters_status(void *sel, struct dvobj_priv *dvobj) } #endif - RTW_PRINT_SEL(sel, "%2d %-15s %c %3u %3u %3u "MAC_FMT" %4hhu %3u,%u,%u" + RTW_PRINT_SEL(sel, "%2d %-15s %c %3u %3u %3u "MAC_FMT" %4hhu %3u,%u,%u %5u" P2P_INFO_VALUE_FMT TSF_PAUSE_TIME_VALUE_FMT " "MLME_STATE_FMT" " INFO_CNT_FMT"\n" @@ -688,6 +759,9 @@ void dump_adapters_status(void *sel, struct dvobj_priv *dvobj) , iface->mlmeextpriv.cur_channel , iface->mlmeextpriv.cur_bwmode , iface->mlmeextpriv.cur_ch_offset + , rtw_get_op_class_by_chbw(iface->mlmeextpriv.cur_channel + , iface->mlmeextpriv.cur_bwmode + , iface->mlmeextpriv.cur_ch_offset) P2P_INFO_VALUE_ARG TSF_PAUSE_TIME_VALUE_ARG , MLME_STATE_ARG(iface) @@ -701,9 +775,9 @@ void dump_adapters_status(void *sel, struct dvobj_priv *dvobj) "-------\n"); if (rtw_mi_get_ch_setting_union(dvobj_get_primary_adapter(dvobj), &u_ch, &u_bw, &u_offset)) - RTW_PRINT_SEL(sel, "%55s %3u,%u,%u\n" + RTW_PRINT_SEL(sel, "%55s %3u,%u,%u %5u\n" , "union:" - , u_ch, u_bw, u_offset); + , u_ch, u_bw, u_offset, rtw_get_op_class_by_chbw(u_ch, u_bw, u_offset)); RTW_PRINT_SEL(sel, "%55s %3u,%u,%u offch_state:%d\n" , "oper:" @@ -727,9 +801,9 @@ void dump_adapters_status(void *sel, struct dvobj_priv *dvobj) else { u32 non_ocp_ms; u32 cac_ms; - u8 dfs_domain = rtw_odm_get_dfs_domain(dvobj); + u8 dfs_domain = rtw_rfctl_get_dfs_domain(rfctl); - _RTW_PRINT_SEL(sel, ", domain:%u", dfs_domain); + _RTW_PRINT_SEL(sel, ", domain:%s(%u)", rtw_dfs_regd_str(dfs_domain), dfs_domain); rtw_get_ch_waiting_ms(rfctl , rfctl->radar_detect_ch @@ -748,8 +822,10 @@ void dump_adapters_status(void *sel, struct dvobj_priv *dvobj) _RTW_PRINT_SEL(sel, "\n"); } #endif /* CONFIG_DFS_MASTER */ +#endif /* CONFIG_RTW_DEBUG || CONFIG_PROC_DEBUG */ } +#if defined(CONFIG_RTW_DEBUG) || defined(CONFIG_PROC_DEBUG) #define SEC_CAM_ENT_ID_TITLE_FMT "%-2s" #define SEC_CAM_ENT_ID_TITLE_ARG "id" #define SEC_CAM_ENT_ID_VALUE_FMT "%2u" @@ -787,9 +863,11 @@ void dump_sec_cam_ent_title(void *sel, u8 has_id) } else RTW_PRINT_SEL(sel, SEC_CAM_ENT_TITLE_FMT"\n", SEC_CAM_ENT_TITLE_ARG); } +#endif void dump_sec_cam(void *sel, _adapter *adapter) { +#if defined(CONFIG_RTW_DEBUG) || defined(CONFIG_PROC_DEBUG) struct dvobj_priv *dvobj = adapter_to_dvobj(adapter); struct cam_ctl_t *cam_ctl = &dvobj->cam_ctl; struct sec_cam_ent ent; @@ -801,10 +879,12 @@ void dump_sec_cam(void *sel, _adapter *adapter) rtw_sec_read_cam_ent(adapter, i, (u8 *)(&ent.ctrl), ent.mac, ent.key); dump_sec_cam_ent(sel , &ent, i); } +#endif } void dump_sec_cam_cache(void *sel, _adapter *adapter) { +#if defined(CONFIG_RTW_DEBUG) || defined(CONFIG_PROC_DEBUG) struct dvobj_priv *dvobj = adapter_to_dvobj(adapter); struct cam_ctl_t *cam_ctl = &dvobj->cam_ctl; int i; @@ -815,7 +895,7 @@ void dump_sec_cam_cache(void *sel, _adapter *adapter) if (dvobj->cam_cache[i].ctrl != 0) dump_sec_cam_ent(sel, &dvobj->cam_cache[i], i); } - +#endif } static u8 fwdl_test_chksum_fail = 0; @@ -894,6 +974,7 @@ u16 rtw_ap_linking_test_force_asoc_fail(void) } #endif +#ifdef CONFIG_PROC_DEBUG int proc_get_defs_param(struct seq_file *m, void *v) { struct net_device *dev = m->private; @@ -941,7 +1022,6 @@ ssize_t proc_set_defs_param(struct file *file, const char __user *buffer, size_t } -#ifdef CONFIG_PROC_DEBUG ssize_t proc_set_write_reg(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) { struct net_device *dev = data; @@ -1101,6 +1181,61 @@ int proc_get_rx_stat(struct seq_file *m, void *v) return 0; } +int proc_get_sta_tx_stat(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); + struct sta_priv *stapriv = &(adapter->stapriv); + struct sta_priv *stapriv_primary = &(GET_PRIMARY_ADAPTER(adapter))->stapriv; + struct sta_info *sta; + struct stainfo_stats *stats; + u8 mac[ETH_ALEN] = {0}; + int ret = 0; + + _rtw_memcpy(mac, stapriv_primary->c2h_sta_mac, ETH_ALEN); + sta = rtw_get_stainfo(stapriv, mac); + if (sta) { + ret = rtw_get_sta_tx_stat(adapter, sta->cmn.mac_id, sta->cmn.mac_addr); + stats = &sta->sta_stats; + RTW_PRINT_SEL(m, "MAC: " MAC_FMT " fail: %u retry: %u\n", + MAC_ARG(mac), stats->tx_fail_cnt_sum, stats->tx_retry_cnt_sum); + } else + ret = -ENODATA; + return ret; +} + +ssize_t proc_set_sta_tx_stat(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) +{ + struct net_device *dev = data; + _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); + struct sta_priv *stapriv_primary = &(GET_PRIMARY_ADAPTER(adapter))->stapriv; + char tmp[18] = {0}; + + if (count < 1) + return -EFAULT; + + if (count > sizeof(tmp)) { + rtw_warn_on(1); + return -EFAULT; + } + + if (!adapter->hal_func.reqtxrpt) { + RTW_INFO("Not support.\n"); + return -ENOTSUPP; + } + + if (buffer && !copy_from_user(tmp, buffer, count)) { + if (sscanf(tmp, MAC_SFMT, MAC_SARG(stapriv_primary->c2h_sta_mac)) != 6) { + _rtw_memset(stapriv_primary->c2h_sta_mac, 0, 6); + RTW_PRINT(FUNC_ADPT_FMT" Invalid format\n", + FUNC_ADPT_ARG(adapter)); + } + + } + + return count; +} + int proc_get_tx_stat(struct seq_file *m, void *v) { _irqL irqL; @@ -1112,11 +1247,14 @@ int proc_get_tx_stat(struct seq_file *m, void *v) uint mac_id[NUM_STA]; struct stainfo_stats *pstats = NULL; struct sta_priv *pstapriv = &(adapter->stapriv); - struct sta_priv *pstapriv_primary = &(GET_PRIMARY_ADAPTER(adapter))->stapriv; u32 i, macid_rec_idx = 0; u8 bc_addr[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; u8 null_addr[ETH_ALEN] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - struct submit_ctx gotc2h; + + if (!adapter->hal_func.reqtxrpt) { + RTW_PRINT_SEL(m, "Not support.\n"); + return 0; + } _enter_critical_bh(&pstapriv->sta_hash_lock, &irqL); for (i = 0; i < NUM_STA; i++) { @@ -1136,16 +1274,11 @@ int proc_get_tx_stat(struct seq_file *m, void *v) } _exit_critical_bh(&pstapriv->sta_hash_lock, &irqL); for (i = 0; i < macid_rec_idx; i++) { - _rtw_memcpy(pstapriv_primary->c2h_sta_mac, &sta_mac[i][0], ETH_ALEN); - pstapriv_primary->c2h_adapter_id = adapter->iface_id; - rtw_sctx_init(&gotc2h, 60); - pstapriv_primary->gotc2h = &gotc2h; - rtw_hal_reqtxrpt(adapter, mac_id[i]); - if (rtw_sctx_wait(&gotc2h, __func__)) { + if (rtw_get_sta_tx_stat(adapter, mac_id[i], &sta_mac[i][0]) == _SUCCESS) { psta = rtw_get_stainfo(pstapriv, &sta_mac[i][0]); if(psta) { pstats = &psta->sta_stats; -#ifndef ROKU_PRIVATE +#if (!defined(ROKU_PRIVATE) && !defined(CONFIG_RTW_MULTI_AP)) RTW_PRINT_SEL(m, "data_sent_cnt :\t%u\n", pstats->tx_ok_cnt + pstats->tx_fail_cnt); RTW_PRINT_SEL(m, "success_cnt :\t%u\n", pstats->tx_ok_cnt); RTW_PRINT_SEL(m, "failure_cnt :\t%u\n", pstats->tx_fail_cnt); @@ -1159,15 +1292,8 @@ int proc_get_tx_stat(struct seq_file *m, void *v) RTW_PRINT_SEL(m, "STA is gone\n"); } else { //to avoid c2h modify counters - pstapriv_primary->gotc2h = NULL; - _rtw_memset(pstapriv_primary->c2h_sta_mac, 0, ETH_ALEN); - pstapriv_primary->c2h_adapter_id = CONFIG_IFACE_NUMBER; - RTW_PRINT_SEL(m, "Warming : Query timeout, operation abort!!\n"); break; } - pstapriv_primary->gotc2h = NULL; - _rtw_memset(pstapriv_primary->c2h_sta_mac, 0, ETH_ALEN); - pstapriv_primary->c2h_adapter_id = CONFIG_IFACE_NUMBER; } return 0; } @@ -1277,12 +1403,20 @@ int proc_get_roam_param(struct seq_file *m, void *v) _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); struct mlme_priv *mlme = &adapter->mlmepriv; - RTW_PRINT_SEL(m, "%12s %15s %26s %16s\n", "rssi_diff_th", "scanr_exp_ms", "scan_interval(unit:2 sec)", "rssi_threshold"); - RTW_PRINT_SEL(m, "%-15u %-13u %-27u %-11u\n" - , mlme->roam_rssi_diff_th + RTW_PRINT_SEL(m, "%16s %18s %13s %21s %13s %13s\n" + , "idle_rssi_diff_th" + , "busy_rssi_diff_th" + , "scanr_exp_ms" + , "scan_int(unit:2 sec)" + , "idle_rssi_th" + , "busy_rssi_th"); + RTW_PRINT_SEL(m, "%-18u %-18u %-13u %-21u %-13u %-13u\n" + , mlme->roam_idle_rssi_diff_th + , mlme->roam_busy_rssi_diff_th , mlme->roam_scanr_exp_ms , mlme->roam_scan_int - , mlme->roam_rssi_threshold + , mlme->roam_idle_rssi_threshold + , mlme->roam_busy_rssi_threshold ); return 0; @@ -1295,10 +1429,12 @@ ssize_t proc_set_roam_param(struct file *file, const char __user *buffer, size_t struct mlme_priv *mlme = &adapter->mlmepriv; char tmp[32]; - u8 rssi_diff_th; + u8 idle_rssi_diff_th; + u8 busy_rssi_diff_th; u32 scanr_exp_ms; u32 scan_int; - u8 rssi_threshold; + u8 idle_rssi_threshold; + u8 busy_rssi_threshold; if (count < 1) return -EFAULT; @@ -1310,22 +1446,107 @@ ssize_t proc_set_roam_param(struct file *file, const char __user *buffer, size_t if (buffer && !copy_from_user(tmp, buffer, count)) { - int num = sscanf(tmp, "%hhu %u %u %hhu", &rssi_diff_th, &scanr_exp_ms, &scan_int, &rssi_threshold); + int num = sscanf(tmp, "%hhu %hhu %u %u %hhu %hhu" + , &idle_rssi_diff_th + , &busy_rssi_diff_th + , &scanr_exp_ms + , &scan_int + , &idle_rssi_threshold + , &busy_rssi_threshold); if (num >= 1) - mlme->roam_rssi_diff_th = rssi_diff_th; + mlme->roam_idle_rssi_diff_th = idle_rssi_diff_th; if (num >= 2) - mlme->roam_scanr_exp_ms = scanr_exp_ms; + mlme->roam_busy_rssi_diff_th = busy_rssi_diff_th; if (num >= 3) - mlme->roam_scan_int = scan_int; + mlme->roam_scanr_exp_ms = scanr_exp_ms; if (num >= 4) - mlme->roam_rssi_threshold = rssi_threshold; + mlme->roam_scan_int = scan_int; + if (num >= 5) + mlme->roam_idle_rssi_threshold = idle_rssi_threshold; + if (num >= 6) + mlme->roam_busy_rssi_threshold = busy_rssi_threshold; } return count; } +int proc_get_roam_param_int(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); + struct mlme_priv *mlme = &adapter->mlmepriv; + + RTW_PRINT_SEL(m, "%20s %22s %22s %12s %12s %12s\n" + , "scan_int1(unit:2 sec)" + , "scan_int2(unit:2 sec)" + , "scan_int3(unit:2 sec)" + , "scan_round1" + , "scan_round2" + , "scan_round3"); + RTW_PRINT_SEL(m, "%-22u %-22u %-22u %-12u %-12u %-12u\n" + , mlme->roam_scan_int1 + , mlme->roam_scan_int2 + , mlme->roam_scan_int3 + , mlme->roam_scan_round1 + , mlme->roam_scan_round2 + , mlme->roam_scan_round3 + ); + + return 0; +} + +ssize_t proc_set_roam_param_int(struct file *file, const char __user *buffer, + size_t count, loff_t *pos, void *data) +{ + struct net_device *dev = data; + _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); + struct mlme_priv *mlme = &adapter->mlmepriv; + + char tmp[32]; + u32 scan_int1; + u32 scan_int2; + u32 scan_int3; + u32 scan_round1; + u32 scan_round2; + u32 scan_round3; + + if (count < 1) + return -EFAULT; + + if (count > sizeof(tmp)) { + rtw_warn_on(1); + return -EFAULT; + } + + if (buffer && !copy_from_user(tmp, buffer, count)) { + + int num = sscanf(tmp, "%u %u %u %u %u %u" + , &scan_int1 + , &scan_int2 + , &scan_int3 + , &scan_round1 + , &scan_round2 + , &scan_round3); + + if (num >= 1) + mlme->roam_scan_int1 = scan_int1; + if (num >= 2) + mlme->roam_scan_int2 = scan_int2; + if (num >= 3) + mlme->roam_scan_int3 = scan_int3; + if (num >= 4) + mlme->roam_scan_round1 = scan_round1; + if (num >= 5) + mlme->roam_scan_round2 = scan_round2; + if (num >= 6) + mlme->roam_scan_round3 = scan_round3; + } + + return count; +} + ssize_t proc_set_roam_tgt_addr(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) { struct net_device *dev = data; @@ -1353,46 +1574,623 @@ ssize_t proc_set_roam_tgt_addr(struct file *file, const char __user *buffer, siz return count; } + +int proc_get_roam_tgt_addr(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); + u8 *addr = adapter->mlmepriv.roam_tgt_addr; + + RTW_PRINT_SEL(m, "roam target addr: %02x:%02x:%02x:%02x:%02x:%02x\n", + addr[0],addr[1],addr[2],addr[3],addr[4],addr[5]); + + return 0; +} #endif /* CONFIG_LAYER2_ROAMING */ -#ifdef CONFIG_RTW_80211R -ssize_t proc_set_ft_flags(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) +#ifdef CONFIG_WAR_OFFLOAD +int proc_get_war_offload_enable(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); + struct dvobj_priv *dvobj = adapter_to_dvobj(adapter); + struct pwrctrl_priv *pwrpriv = dvobj_to_pwrctl(dvobj); + + if (_TRUE == pwrpriv->wowlan_war_offload_mode) { + RTW_PRINT_SEL(m, "\n[ Offload Feature Enabled ]\n"); + + if (WAR_ARP_RSP_EN & pwrpriv->wowlan_war_offload_ctrl) { + RTW_PRINT_SEL(m, "\n ARP Reponse offload enabled\n"); + } +#ifdef CONFIG_OFFLOAD_MDNS_V4 + if (WAR_MDNS_V4_RSP_EN & pwrpriv->wowlan_war_offload_ctrl) { + RTW_PRINT_SEL(m, "\n MDNS v4 Reponse offload enabled\n"); + } + if (WAR_MDNS_V4_WAKEUP_EN & pwrpriv->wowlan_war_offload_ctrl) { + RTW_PRINT_SEL(m, "\n MDNS v4 Wakeup offload enabled\n"); + } +#endif /* CONFIG_OFFLOAD_MDNS_v4 */ +#ifdef CONFIG_OFFLOAD_MDNS_V6 + if (WAR_MDNS_V6_RSP_EN & pwrpriv->wowlan_war_offload_ctrl) { + RTW_PRINT_SEL(m, "\n MDNS v6 Reponse offload enabled\n"); + } + if (WAR_MDNS_V6_WAKEUP_EN & pwrpriv->wowlan_war_offload_ctrl) { + RTW_PRINT_SEL(m, "\n MDNS v6 Wakeup offload enabled\n"); + } +#endif /* CONFIG_OFFLOAD_MDNS_V6 */ + + if (WAR_ARP_WAKEUP_EN & pwrpriv->wowlan_war_offload_ctrl) { + RTW_PRINT_SEL(m, "\n ARP Request wakeup enabled\n"); + } + + } else { + RTW_PRINT_SEL(m, "\n[ Offload Feature Disabled ]\n"); + } + + return 0; +} + +ssize_t proc_set_war_offload_enable(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) { struct net_device *dev = data; - _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); - + _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); + struct dvobj_priv *dvobj = adapter_to_dvobj(padapter); + struct pwrctrl_priv *pwrpriv = dvobj_to_pwrctl(dvobj); char tmp[32]; - u8 flags; + u32 offload_cfg = 0; - if (count < 1) + if (NULL == buffer) { + RTW_INFO(FUNC_ADPT_FMT ": input buffer is NULL!\n", FUNC_ADPT_ARG(padapter)); return -EFAULT; + } + + if (count < 1) { + RTW_INFO(FUNC_ADPT_FMT ": input length is 0!\n", FUNC_ADPT_ARG(padapter)); + return -EFAULT; + } if (count > sizeof(tmp)) { + RTW_INFO(FUNC_ADPT_FMT ": input length is too large\n", FUNC_ADPT_ARG(padapter)); rtw_warn_on(1); return -EFAULT; } if (buffer && !copy_from_user(tmp, buffer, count)) { - int num = sscanf(tmp, "%hhx", &flags); + int num = sscanf(tmp, "%x", &offload_cfg); - if (num == 1) - adapter->mlmepriv.ft_roam.ft_flags = flags; + if (num == 1) { + RTW_INFO(FUNC_ADPT_FMT ": Set war offload cfg = %x\n", FUNC_ADPT_ARG(padapter), offload_cfg); + pwrpriv->wowlan_war_offload_ctrl = offload_cfg; + pwrpriv->wowlan_war_offload_mode = offload_cfg?_TRUE:_FALSE; + + } } return count; +} + +ssize_t proc_set_war_offload_ipv4_addr(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) +{ + struct net_device *dev = data; + _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); + struct dvobj_priv *dvobj = adapter_to_dvobj(padapter); + struct pwrctrl_priv *pwrpriv = dvobj_to_pwrctl(dvobj); + char tmp[128]; + u32 ip_addr = 0, ip_subnet = 0, ip_gateway = 0, index = 0; + struct war_ipv4_fmt* pip_info = &pwrpriv->wowlan_war_offload_ipv4; + + if (NULL == buffer) { + RTW_INFO(FUNC_ADPT_FMT ": input buffer is NULL!\n", FUNC_ADPT_ARG(padapter)); + return -EFAULT; + } + + if (count < 1) { + RTW_INFO(FUNC_ADPT_FMT ": input length is 0!\n", FUNC_ADPT_ARG(padapter)); + return -EFAULT; + } + + if (count > sizeof(tmp)) { + RTW_INFO(FUNC_ADPT_FMT ": input length is too large\n", FUNC_ADPT_ARG(padapter)); + rtw_warn_on(1); + return -EFAULT; + } + + + if (buffer && !copy_from_user(tmp, buffer, count)) { + int num = sscanf(tmp, "%d %x %x %x", &index, &ip_addr, &ip_subnet, &ip_gateway); + + if (num == 4) { + pip_info->ip_addr[index-1] = ip_addr; + pip_info->ip_subnet[index-1] = ip_subnet; + pip_info->ip_gateway[index-1] = ip_gateway; + RTW_INFO(FUNC_ADPT_FMT "Setup IPv4 address:\n", FUNC_ADPT_ARG(padapter)); + RTW_INFO("Index(%d) IP=%d.%d.%d.%d\n", index, (ip_addr & 0xff), ((ip_addr & 0xff00)>>8), ((ip_addr & 0xff0000)>>16), ((ip_addr & 0xff000000)>>24)); + } else { + RTW_INFO("Wrong input buffer count (%d)\n", num); + return -EFAULT; + } + } + + return count; +} + +ssize_t proc_set_war_offload_ipv6_addr(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) +{ + struct net_device *dev = data; + _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); + struct dvobj_priv *dvobj = adapter_to_dvobj(padapter); + struct pwrctrl_priv *pwrpriv = dvobj_to_pwrctl(dvobj); + char tmp[255]; + u32 ip_addr = 0, ip_subnet = 0, ip_gateway = 0; + struct war_ipv6_fmt* pip_info = &pwrpriv->wowlan_war_offload_ipv6; + + if (NULL == buffer) { + RTW_INFO(FUNC_ADPT_FMT ": input buffer is NULL!\n", FUNC_ADPT_ARG(padapter)); + return -EFAULT; + } + + if (count < 1) { + RTW_INFO(FUNC_ADPT_FMT ": input length is 0!\n", FUNC_ADPT_ARG(padapter)); + return -EFAULT; + } + + if (count > sizeof(tmp)) { + RTW_INFO(FUNC_ADPT_FMT ": input length is too large\n", FUNC_ADPT_ARG(padapter)); + rtw_warn_on(1); + return -EFAULT; + } + + if (buffer && !copy_from_user(tmp, buffer, count)) { + int num; + int i; + u32 index; + u16 val[64]; + u16 big_endian_val[64]; + + num = sscanf(tmp, "%d %hx:%hx:%hx:%hx:%hx:%hx:%hx:%hx", &index, &val[0], &val[1], &val[2], &val[3], &val[4], &val[5], &val[6], &val[7]); + for (i=0;i<8;i++) { + big_endian_val[i] = htons(val[i]); + } + _rtw_memcpy(pip_info->ipv6_addr[index-1], big_endian_val, RTW_IPv6_ADDR_LEN); + + if (num == 9) { + RTW_INFO(FUNC_ADPT_FMT "Setup IPv6 address\n", FUNC_ADPT_ARG(padapter)); + } else { + RTW_INFO("Wrong input count (%d)\n", num); + return -EFAULT; + } + } + + return count; +} + +#if defined(CONFIG_OFFLOAD_MDNS_V4) || defined(CONFIG_OFFLOAD_MDNS_V6) + +int proc_get_war_offload_mdns_domain_name(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); + struct dvobj_priv *dvobj = adapter_to_dvobj(adapter); + struct pwrctrl_priv *pwrpriv = dvobj_to_pwrctl(dvobj); + + if (_TRUE == pwrpriv->wowlan_war_offload_mode) { + if ((WAR_MDNS_V4_RSP_EN & pwrpriv->wowlan_war_offload_ctrl) || + (WAR_MDNS_V6_RSP_EN & pwrpriv->wowlan_war_offload_ctrl) || + (WAR_MDNS_V4_WAKEUP_EN & pwrpriv->wowlan_war_offload_ctrl) || + (WAR_MDNS_V6_WAKEUP_EN & pwrpriv->wowlan_war_offload_ctrl)) { + RTW_PRINT_SEL(m, "\nDomain Name:[%s](%d)\n\n", + pwrpriv->wowlan_war_offload_mdns_domain_name, pwrpriv->wowlan_war_offload_mdns_domain_name_len); + } else { + RTW_PRINT_SEL(m, "\nMSND RSP Not enabled\n\n"); + } + } else { + RTW_PRINT_SEL(m, "\nOffload Not enabled\n\n"); + } + + return 0; +} + +ssize_t proc_set_war_offload_mdns_domain_name(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) +{ + struct net_device *dev = data; + _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); + struct dvobj_priv *dvobj = adapter_to_dvobj(padapter); + struct pwrctrl_priv *pwrpriv = dvobj_to_pwrctl(dvobj); + char tmp[MAX_MDNS_DOMAIN_NAME_LEN+1]; + char domain_name[MAX_MDNS_DOMAIN_NAME_LEN+1]; + + if (NULL == buffer) { + RTW_INFO(FUNC_ADPT_FMT ": input buffer is NULL!\n", FUNC_ADPT_ARG(padapter)); + return -EFAULT; + } + + if (count < 1) { + RTW_INFO(FUNC_ADPT_FMT ": input length is 0!\n", FUNC_ADPT_ARG(padapter)); + return -EFAULT; + } + + if (count > sizeof(tmp)) { + RTW_INFO(FUNC_ADPT_FMT ": input length is large than MAX_MDNS_DOMAIN_NAME_LEN(%d)\n", FUNC_ADPT_ARG(padapter), MAX_MDNS_DOMAIN_NAME_LEN); + rtw_warn_on(1); + return -EFAULT; + } + + if (buffer && !copy_from_user(tmp, buffer, count)) { + int num = sscanf(tmp, "%s", domain_name); + if(1 == num) { + pwrpriv->wowlan_war_offload_mdns_domain_name_len = strlen(domain_name); + _rtw_memset(pwrpriv->wowlan_war_offload_mdns_domain_name, 0x00, MAX_MDNS_DOMAIN_NAME_LEN); + _rtw_memcpy(pwrpriv->wowlan_war_offload_mdns_domain_name, domain_name, strlen(domain_name)); + } + } + + return count; +} + + +int proc_get_war_offload_mdns_machine_name(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); + struct dvobj_priv *dvobj = adapter_to_dvobj(adapter); + struct pwrctrl_priv *pwrpriv = dvobj_to_pwrctl(dvobj); + int i=0; + + if (_TRUE == pwrpriv->wowlan_war_offload_mode) { + if ((WAR_MDNS_V4_RSP_EN & pwrpriv->wowlan_war_offload_ctrl) || + (WAR_MDNS_V6_RSP_EN & pwrpriv->wowlan_war_offload_ctrl) || + (WAR_MDNS_V4_WAKEUP_EN & pwrpriv->wowlan_war_offload_ctrl) || + (WAR_MDNS_V6_WAKEUP_EN & pwrpriv->wowlan_war_offload_ctrl)) { + for(i=0; iwowlan_war_offload_mdns_mnane_num; i++) + { + RTW_PRINT_SEL(m, "[%d]", i); + rtw_wow_war_mdns_dump_buf(m, "Machine Name", + pwrpriv->wowlan_war_offload_mdns_mnane[i].name, pwrpriv->wowlan_war_offload_mdns_mnane[i].name_len); + } + RTW_PRINT_SEL(m, "\n"); + } else { + RTW_PRINT_SEL(m, "\nMSND RSP Not enabled\n\n"); + } + } else { + RTW_PRINT_SEL(m, "\nOffload Not enabled\n\n"); + } + + return 0; +} + + +ssize_t proc_set_war_offload_mdns_machine_name(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) +{ + struct net_device *dev = data; + _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); + struct dvobj_priv *dvobj = adapter_to_dvobj(padapter); + struct pwrctrl_priv *pwrpriv = dvobj_to_pwrctl(dvobj); + char tmp[MAX_MDNS_MACHINE_NAME_LEN*3-1+1]; + + if (NULL == buffer) { + RTW_INFO(FUNC_ADPT_FMT ": input buffer is NULL!\n", FUNC_ADPT_ARG(padapter)); + return -EFAULT; + } + + if (count < 1) { + RTW_INFO(FUNC_ADPT_FMT ": input length is 0!\n", FUNC_ADPT_ARG(padapter)); + return -EFAULT; + } + + if (count > sizeof(tmp)) { + RTW_INFO(FUNC_ADPT_FMT ": input length, %lu, is large than MAX_MDNS_MACHINE_NAME_LEN(%d)\n", FUNC_ADPT_ARG(padapter), (count+1)/3, MAX_MDNS_MACHINE_NAME_LEN); + rtw_warn_on(1); + return -EFAULT; + } + + if (buffer && !copy_from_user(tmp, buffer, count)) { + + if( strncmp(tmp, "clean", 5) == 0 ) + { + _rtw_memset(pwrpriv->wowlan_war_offload_mdns_mnane, 0, sizeof(pwrpriv->wowlan_war_offload_mdns_mnane)); + pwrpriv->wowlan_war_offload_mdns_mnane_num = 0; + }else{ + int idx = pwrpriv->wowlan_war_offload_mdns_mnane_num; + if(idx == MAX_MDNS_MACHINE_NAME_NUM){ + RTW_INFO(FUNC_ADPT_FMT ": the num of machine name is already %d(MAX_MDNS_MACHINE_NAME_NUM)!\n", FUNC_ADPT_ARG(padapter), MAX_MDNS_MACHINE_NAME_NUM); + return -EFAULT; + } + if(rtw_wow_war_mdns_parser_pattern(tmp, pwrpriv->wowlan_war_offload_mdns_mnane[idx].name, + (u32 *) &pwrpriv->wowlan_war_offload_mdns_mnane[idx].name_len, MAX_MDNS_MACHINE_NAME_LEN)) + pwrpriv->wowlan_war_offload_mdns_mnane_num++; + } + } + + return count; +} + + +int proc_get_war_offload_mdns_service_info(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); + struct dvobj_priv *dvobj = adapter_to_dvobj(adapter); + struct pwrctrl_priv *pwrpriv = dvobj_to_pwrctl(dvobj); + struct war_mdns_service_info *psinfo = pwrpriv->wowlan_war_offload_mdns_service; + int i=0, j=0; + + if (_TRUE == pwrpriv->wowlan_war_offload_mode) { + if ((WAR_MDNS_V4_RSP_EN & pwrpriv->wowlan_war_offload_ctrl) || + (WAR_MDNS_V6_RSP_EN & pwrpriv->wowlan_war_offload_ctrl) || + (WAR_MDNS_V4_WAKEUP_EN & pwrpriv->wowlan_war_offload_ctrl) || + (WAR_MDNS_V6_WAKEUP_EN & pwrpriv->wowlan_war_offload_ctrl)) { + for(i=0; iwowlan_war_offload_mdns_service_info_num; i++) + { + RTW_PRINT_SEL(m, "[%d] service info ===> \n", i+1); + RTW_PRINT_SEL(m, "\tservice-transport-domain : %s(%d)- %s(%d)- %s(%d)\n", + psinfo[i].service, psinfo[i].service_len, + psinfo[i].transport, psinfo[i].transport_len, + psinfo[i].domain, psinfo[i].domain_len); + RTW_PRINT_SEL(m, "\ttarget for srv rsp : %s(%d)\n", psinfo[i].target, psinfo[i].target_len); + RTW_PRINT_SEL(m, "\tport : %x-%x, ttl : %d \n", psinfo[i].port[0], psinfo[i].port[1], psinfo[i].ttl); + j = psinfo[i].txt_rsp_idx; + RTW_PRINT_SEL(m, "\ttype txt rsp. [%d] \n", j); + rtw_wow_war_mdns_dump_txt(m, "type txt rsp. (Str)", + pwrpriv->wowlan_war_offload_mdns_txt_rsp[j].txt, pwrpriv->wowlan_war_offload_mdns_txt_rsp[j].txt_len); + + } + RTW_PRINT_SEL(m, "\n"); + } else { + RTW_PRINT_SEL(m, "\nMSND RSP Not enabled\n\n"); + } + } else { + RTW_PRINT_SEL(m, "\nOffload Not enabled\n\n"); + } + + return 0; +} + +ssize_t proc_set_war_offload_mdns_service_info(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) +{ + struct net_device *dev = data; + _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); + struct dvobj_priv *dvobj = adapter_to_dvobj(padapter); + struct pwrctrl_priv *pwrpriv = dvobj_to_pwrctl(dvobj); + struct war_mdns_service_info *psinfo = pwrpriv->wowlan_war_offload_mdns_service; + u8 idx = 0, port[2], i=0; + char *tmp=NULL; + char srv[MAX_MDNS_SERVICE_NAME_LEN+1], trans[MAX_MDNS_TRANS_LEN+1], domain[MAX_MDNS_DOMAIN_LEN+1]; + char target[MAX_MDNS_TARGET_LEN+1]; + u32 ttl, tmp_txt_len=0, port0 =0, port1 =0; + u16 max_input_size = (MAX_MDNS_SERVICE_NAME_LEN+MAX_MDNS_TRANS_LEN+MAX_MDNS_DOMAIN_LEN+MAX_MDNS_TARGET_LEN+2); + int txt_idx; + + if (NULL == buffer) { + RTW_INFO(FUNC_ADPT_FMT ": input buffer is NULL!\n", FUNC_ADPT_ARG(padapter)); + return -EFAULT; + } + + if (count < 1) { + RTW_INFO(FUNC_ADPT_FMT ": input length is 0!\n", FUNC_ADPT_ARG(padapter)); + return -EFAULT; + } + + if (count > (sizeof(char)*(max_input_size)) ) { + RTW_INFO(FUNC_ADPT_FMT ": input length is too large\n", FUNC_ADPT_ARG(padapter)); + rtw_warn_on(1); + return -EFAULT; + } + + tmp = rtw_zvmalloc(sizeof(char)*(max_input_size)); + if (NULL == tmp) { + RTW_INFO(FUNC_ADPT_FMT ": tmp buffer allocate fail!!\n", FUNC_ADPT_ARG(padapter)); + count = -EFAULT; + goto exit; + } + + if (buffer && !copy_from_user(tmp, buffer, count)) { + int num = sscanf(tmp, "%15s %4s %5s %63s %x %x %u %d", srv, trans, domain, target, &port0, &port1, &ttl, &txt_idx); + /* MAX_MDNS_SERVICE_NAME_LEN(15), MAX_MDNS_TRANS_LEN(4), MAX_MDNS_DOMAIN_LEN(5), MAX_MDNS_TARGET_LEN(63) */ + int idx = pwrpriv->wowlan_war_offload_mdns_service_info_num; + u16 curent_txt_total_size = 0; + //u16 sscanf_parameter_length = strlen(srv)+strlen(trans)+strlen(domain)+strlen(target)+2+2+4+1+num; + + if( strncmp(srv, "clean", 5) == 0 ) { + _rtw_memset(pwrpriv->wowlan_war_offload_mdns_service, 0, sizeof(pwrpriv->wowlan_war_offload_mdns_service)); + pwrpriv->wowlan_war_offload_mdns_service_info_num = 0; + } + /*else if(count != sscanf_parameter_length) + { + RTW_INFO(FUNC_ADPT_FMT ": Length of total parameters does not match the input buffer. (%d != %lu)\n", + FUNC_ADPT_ARG(padapter), sscanf_parameter_length, count); + RTW_INFO(FUNC_ADPT_FMT ": Please check the content and length of each parameter.\n", FUNC_ADPT_ARG(padapter)); + RTW_INFO(FUNC_ADPT_FMT ": input buffer = (%s)(%lu)!\n\n", FUNC_ADPT_ARG(padapter), tmp, count); + RTW_INFO(FUNC_ADPT_FMT ": srv = %s (%lu)!\n", FUNC_ADPT_ARG(padapter), srv, strlen(srv)); + RTW_INFO(FUNC_ADPT_FMT ": trans = %s (%lu)!\n", FUNC_ADPT_ARG(padapter), trans, strlen(trans)); + RTW_INFO(FUNC_ADPT_FMT ": domain = %s (%lu)!\n", FUNC_ADPT_ARG(padapter), domain, strlen(domain)); + RTW_INFO(FUNC_ADPT_FMT ": target = %s (%lu)!\n", FUNC_ADPT_ARG(padapter), target, strlen(target)); + RTW_INFO(FUNC_ADPT_FMT ": port = %x-%x, ttl = %d!\n", FUNC_ADPT_ARG(padapter), port0, port1, ttl); + RTW_INFO(FUNC_ADPT_FMT ": txt idx = %d!\n", FUNC_ADPT_ARG(padapter), txt_idx); + count = -EFAULT; + goto exit; + }*/else + { + port[0] = (u8)port0; + port[1] = (u8)port1; + + if(txt_idx >= MAX_MDNS_TXT_NUM) { + RTW_INFO(FUNC_ADPT_FMT ": input txt idx, %d, is out of range (0~%d)!\n", FUNC_ADPT_ARG(padapter), txt_idx, MAX_MDNS_TXT_NUM-1); + count = -EFAULT; + goto exit; + } + + if(pwrpriv->wowlan_war_offload_mdns_txt_rsp[txt_idx].txt_len == 0) { + RTW_INFO(FUNC_ADPT_FMT ": wowlan_war_offload_mdns_txt_rsp[%d] is null! Please initiate it first.\n", FUNC_ADPT_ARG(padapter), txt_idx); + count = -EFAULT; + goto exit; + } + + // 1. set the value of members for this new service + psinfo[idx].service_len = strlen(srv); + _rtw_memcpy(psinfo[idx].service, srv, psinfo[idx].service_len ); + psinfo[idx].transport_len = strlen(trans); + _rtw_memcpy(psinfo[idx].transport, trans, psinfo[idx].transport_len ); + psinfo[idx].domain_len = strlen(domain); + _rtw_memcpy(psinfo[idx].domain, domain, psinfo[idx].domain_len ); + psinfo[idx].target_len = strlen(target); + _rtw_memcpy(psinfo[idx].target, target, psinfo[idx].target_len ); + _rtw_memcpy(psinfo[idx].port, port, 2 ); + psinfo[idx].ttl = ttl; + psinfo[idx].txt_rsp_idx = txt_idx; + pwrpriv->wowlan_war_offload_mdns_service_info_num++; + } + } + +exit: + if(tmp) + rtw_vmfree(tmp, sizeof(char)*(max_input_size)); + return count; } -int proc_get_ft_flags(struct seq_file *m, void *v) +int proc_get_war_offload_mdns_txt_rsp(struct seq_file *m, void *v) { struct net_device *dev = m->private; _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); + struct dvobj_priv *dvobj = adapter_to_dvobj(adapter); + struct pwrctrl_priv *pwrpriv = dvobj_to_pwrctl(dvobj); + int i=0; - RTW_PRINT_SEL(m, "0x%02x\n", adapter->mlmepriv.ft_roam.ft_flags); + if (_TRUE == pwrpriv->wowlan_war_offload_mode) { + if ((WAR_MDNS_V4_RSP_EN & pwrpriv->wowlan_war_offload_ctrl) || + (WAR_MDNS_V6_RSP_EN & pwrpriv->wowlan_war_offload_ctrl) ) { + for(i=0; iwowlan_war_offload_mdns_txt_rsp_num; i++) { + RTW_PRINT_SEL(m, "[%d]", i); + if(pwrpriv->wowlan_war_offload_mdns_txt_rsp[i].txt_len==0){ + RTW_PRINT_SEL(m, " (null)\n"); + continue; + } + rtw_wow_war_mdns_dump_txt(m, "type txt rsp. (Str)", + pwrpriv->wowlan_war_offload_mdns_txt_rsp[i].txt, pwrpriv->wowlan_war_offload_mdns_txt_rsp[i].txt_len); + rtw_wow_war_mdns_dump_buf(m, "type txt rsp. (Hex)", + pwrpriv->wowlan_war_offload_mdns_txt_rsp[i].txt, pwrpriv->wowlan_war_offload_mdns_txt_rsp[i].txt_len); + } + RTW_PRINT_SEL(m, "\n"); + } else { + RTW_PRINT_SEL(m, "\nMSND RSP Not enabled\n\n"); + } + } else { + RTW_PRINT_SEL(m, "\nOffload Not enabled\n\n"); + } return 0; } -#endif + +ssize_t proc_set_war_offload_mdns_txt_rsp(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) +{ + struct net_device *dev = data; + _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); + struct dvobj_priv *dvobj = adapter_to_dvobj(padapter); + struct pwrctrl_priv *pwrpriv = dvobj_to_pwrctl(dvobj); + u16 max_input_size = (1+6+MAX_MDNS_TXT_SINGLE_LEN+2); + char* tmp=NULL; + char op[7]={0}, txt_str[MAX_MDNS_TXT_SINGLE_LEN+1]={0}; + int idx; + + if (NULL == buffer) { + RTW_INFO(FUNC_ADPT_FMT ": input buffer is NULL!\n", FUNC_ADPT_ARG(padapter)); + return -EFAULT; + } + + if (count < 1) { + RTW_INFO(FUNC_ADPT_FMT ": input length is 0!\n", FUNC_ADPT_ARG(padapter)); + return -EFAULT; + } + + tmp = rtw_zvmalloc(sizeof(char)*(max_input_size)); + if (NULL == tmp) { + RTW_INFO(FUNC_ADPT_FMT ": tmp buffer allocate fail!!\n", FUNC_ADPT_ARG(padapter)); + count = -EFAULT; + goto exit; + } + + if (buffer && !copy_from_user(tmp, buffer, count)) { + + if( strncmp(tmp, "clean", 5) == 0 ) + { + /* clean ==> */ + if(pwrpriv->wowlan_war_offload_mdns_service_info_num==0){ + _rtw_memset(pwrpriv->wowlan_war_offload_mdns_txt_rsp, 0, sizeof(pwrpriv->wowlan_war_offload_mdns_txt_rsp)); + }else{ + RTW_INFO(FUNC_ADPT_FMT ": Txt rsp are refered! (Current service_info_num = %d)\n", FUNC_ADPT_ARG(padapter), pwrpriv->wowlan_war_offload_mdns_service_info_num); + count = -EFAULT; + goto exit; + } + + }else{ + /* set ==> */ + int num = sscanf(tmp, "%d %6s %256c", &idx, op, txt_str); + u16 sscanf_parameter_length = 0, txt_len = 0; + + txt_len = (strlen(txt_str)>MAX_MDNS_TXT_SINGLE_LEN)?MAX_MDNS_TXT_SINGLE_LEN:(strlen(txt_str)-1); + txt_str[txt_len]='\0'; + sscanf_parameter_length = 1 + strlen(op) + txt_len + num; + + if(count != sscanf_parameter_length) { + RTW_INFO(FUNC_ADPT_FMT ": Length of total parameters does not match the input buffer. (%d != %lu)(num=%d)\n", + FUNC_ADPT_ARG(padapter), sscanf_parameter_length, count, num); + RTW_INFO(FUNC_ADPT_FMT ": Please check the content and length of each parameter.\n", FUNC_ADPT_ARG(padapter)); + RTW_INFO(FUNC_ADPT_FMT ": input buffer = (%s)(%lu)!\n\n", FUNC_ADPT_ARG(padapter), tmp, count); + RTW_INFO(FUNC_ADPT_FMT ": op. = %s (%lu)!\n", FUNC_ADPT_ARG(padapter), op, strlen(op)); + RTW_INFO(FUNC_ADPT_FMT ": txt = %s (%lu)!\n", FUNC_ADPT_ARG(padapter), txt_str, strlen(txt_str)); + count = -EFAULT; + goto exit; + } else { + + u16 offset; + + if(idx >= MAX_MDNS_TXT_NUM) { + RTW_INFO(FUNC_ADPT_FMT ": the index, %d, is over the range of txt rsp(0~%d)!\n", FUNC_ADPT_ARG(padapter), idx, MAX_MDNS_TXT_NUM-1); + count = -EFAULT; + goto exit; + } + + if( strncmp(op, "new", 3) == 0 ) { + _rtw_memset(pwrpriv->wowlan_war_offload_mdns_txt_rsp[idx].txt, 0, pwrpriv->wowlan_war_offload_mdns_txt_rsp[idx].txt_len); + pwrpriv->wowlan_war_offload_mdns_txt_rsp[idx].txt_len = 0; + }else if(strncmp(op, "append", 6) == 0 ){ + if((pwrpriv->wowlan_war_offload_mdns_txt_rsp[idx].txt_len+strlen(txt_str)+1) > MAX_MDNS_TXT_LEN) { + RTW_INFO(FUNC_ADPT_FMT ": the txt rsp(%d) will be over the limitation(%d) if append input string(%lu)!\n", FUNC_ADPT_ARG(padapter), + pwrpriv->wowlan_war_offload_mdns_txt_rsp[idx].txt_len, + MAX_MDNS_TXT_LEN, strlen(txt_str)+1); + count = -EFAULT; + goto exit; + } + }else{ + RTW_INFO(FUNC_ADPT_FMT ": Invaild op str %s (new/append only)!\n", FUNC_ADPT_ARG(padapter), op); + count = -EFAULT; + goto exit; + } + + offset = pwrpriv->wowlan_war_offload_mdns_txt_rsp[idx].txt_len; + pwrpriv->wowlan_war_offload_mdns_txt_rsp[idx].txt[offset++] = strlen(txt_str); + _rtw_memcpy(pwrpriv->wowlan_war_offload_mdns_txt_rsp[idx].txt + offset, txt_str, strlen(txt_str)); + pwrpriv->wowlan_war_offload_mdns_txt_rsp[idx].txt_len += (strlen(txt_str) + 1); /* actul len with length field */ + + /* Dump ==> */ + //RTW_PRINT_SEL(RTW_DBGDUMP, "[%d]", idx); + //rtw_wow_war_mdns_dump_txt(RTW_DBGDUMP, "type txt rsp. (Str)", + // pwrpriv->wowlan_war_offload_mdns_txt_rsp[idx].txt, pwrpriv->wowlan_war_offload_mdns_txt_rsp[idx].txt_len); + } + } + } + +exit: + if(tmp) + rtw_vmfree(tmp, sizeof(char)*(max_input_size)); + return count; + +} + +#endif /* CONFIG_OFFLOAD_MDNS_V4 || CONFIG_OFFLOAD_MDNS_V6 */ +#endif /* CONFIG_WAR_OFFLOAD */ + + int proc_get_qos_option(struct seq_file *m, void *v) { @@ -1640,6 +2438,7 @@ int proc_get_survey_info(struct seq_file *m, void *v) #else const char *ssid_title_str = "ssid"; #endif + u8 rsni = 255; _enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL); phead = get_list_head(queue); @@ -1653,7 +2452,8 @@ int proc_get_survey_info(struct seq_file *m, void *v) rtw_rson_show_survey_info(m, plist, phead); #else - RTW_PRINT_SEL(m, "%5s %-17s %3s %-3s %-4s %-4s %5s %32s %32s\n", "index", "bssid", "ch", "RSSI", "SdBm", "Noise", "age", "flag", ssid_title_str); + RTW_PRINT_SEL(m, "%5s %-17s %3s %-3s %-4s %-4s %4s %5s %32s %32s \n", + "index", "bssid", "ch", "RSSI", "SdBm", "Noise", "rsni", "age", "flag", ssid_title_str); while (1) { if (rtw_end_of_queue_search(phead, plist) == _TRUE) break; @@ -1673,12 +2473,17 @@ int proc_get_survey_info(struct seq_file *m, void *v) if (IS_NM_ENABLE(padapter)) notify_noise = rtw_noise_query_by_chan_num(padapter, pnetwork->network.Configuration.DSConfig); #endif +#ifdef CONFIG_RTW_ACS + rsni = rtw_acs_get_rsni(padapter, (int)(pnetwork->network.Rssi), pnetwork->network.Configuration.DSConfig); +#endif ie_wpa = rtw_get_wpa_ie(&pnetwork->network.IEs[12], &ielen, pnetwork->network.IELength - 12); ie_wpa2 = rtw_get_wpa2_ie(&pnetwork->network.IEs[12], &ielen, pnetwork->network.IELength - 12); ie_cap = rtw_get_capability(&pnetwork->network); ie_wps = rtw_get_wps_ie(&pnetwork->network.IEs[12], pnetwork->network.IELength - 12, NULL, &wpsielen); +#ifdef CONFIG_P2P ie_p2p = rtw_get_p2p_ie(&pnetwork->network.IEs[12], pnetwork->network.IELength - 12, NULL, &ielen); +#endif ssid = pnetwork->network.Ssid.Ssid; sprintf(flag_str, "%s%s%s%s%s%s%s", (ie_wpa) ? "[WPA]" : "", @@ -1689,13 +2494,14 @@ int proc_get_survey_info(struct seq_file *m, void *v) (pnetwork->network.InfrastructureMode == Ndis802_11_mesh) ? "[MESH]" : "", (ie_cap & BIT(0)) ? "[ESS]" : "", (ie_p2p) ? "[P2P]" : ""); - RTW_PRINT_SEL(m, "%5d "MAC_FMT" %3d %3d %4d %4d %5d %32s %32s\n", + RTW_PRINT_SEL(m, "%5d "MAC_FMT" %3d %4d %4d %4d %4d %5d %32s %32s\n", ++index, MAC_ARG(pnetwork->network.MacAddress), pnetwork->network.Configuration.DSConfig, (int)pnetwork->network.Rssi, notify_signal, notify_noise, + rsni, rtw_get_passing_time_ms(pnetwork->last_scanned), flag_str, pnetwork->network.InfrastructureMode == Ndis802_11_mesh ? pnetwork->network.mesh_id.Ssid : pnetwork->network.Ssid.Ssid @@ -1926,6 +2732,9 @@ int proc_get_ap_info(struct seq_file *m, void *v) RTW_PRINT_SEL(m, "vht_en=%d, vht_sgi_80m=%d\n", psta->vhtpriv.vht_option, psta->vhtpriv.sgi_80m); RTW_PRINT_SEL(m, "vht_ldpc_cap=0x%x, vht_stbc_cap=0x%x, vht_beamform_cap=0x%x\n", psta->vhtpriv.ldpc_cap, psta->vhtpriv.stbc_cap, psta->vhtpriv.beamform_cap); RTW_PRINT_SEL(m, "vht_mcs_map=0x%x, vht_highest_rate=0x%x, vht_ampdu_len=%d\n", *(u16 *)psta->vhtpriv.vht_mcs_map, psta->vhtpriv.vht_highest_rate, psta->vhtpriv.ampdu_len); +#endif +#ifdef CONFIG_RTW_80211K + RTW_PRINT_SEL(m, "rm_en_cap="RM_CAP_FMT"\n", RM_CAP_ARG(psta->rm_en_cap)); #endif sta_rx_reorder_ctl_dump(m, psta); } else @@ -1934,6 +2743,40 @@ int proc_get_ap_info(struct seq_file *m, void *v) return 0; } +inline void rtw_rx_dbg_ip_statistic_init( + char *pcmd, struct rtw_ip_dbg_cnt_statistic *pstatistic) +{ +#define DBG_IP_ARG_IN(x) \ + &((u8 *)(x))[0], &((u8 *)(x))[1], \ + &((u8 *)(x))[2], &((u8 *)(x))[3] + /* Inpit : [iperf-client-ip]:[iperf-server-port] [iperf-version] */ + int num = sscanf(pcmd, "%hhu.%hhu.%hhu.%hhu:%hu %hhx", + DBG_IP_ARG_IN(pstatistic->ip), + &pstatistic->dst_port, + &pstatistic->iperf_ver); + pstatistic->enabled = _TRUE; + pstatistic->defrag_done = _TRUE; +} + +inline void rtw_rx_dbg_ip_statistic_rest( + struct rtw_ip_dbg_cnt_statistic *pstatistic, u8 off) +{ + pstatistic->ip_cnt = pstatistic->tcp_cnt = pstatistic->udp_cnt = \ + pstatistic->frag_cnt = pstatistic->iperf_seq = pstatistic->iperf_err_cnt = \ + pstatistic->iperf_out_of_order_cnt = 0; + + pstatistic->ip_seq_chk = 0; + pstatistic->frag_offset_chk = pstatistic->max_frag_offset_chk = 0; + pstatistic->defrag_done = _TRUE; + + if (off) { + pstatistic->enabled = _FALSE; + pstatistic->iperf_ver = 0; + pstatistic->dst_port = 0; + _rtw_memset(&pstatistic->ip, 0, 4); + } +} + ssize_t proc_reset_trx_info(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) { struct net_device *dev = data; @@ -1948,7 +2791,11 @@ ssize_t proc_reset_trx_info(struct file *file, const char __user *buffer, size_t } if (buffer && !copy_from_user(cmd, buffer, count)) { - int num = sscanf(cmd, "%hhx", &cnt); + int num = 0; + if (count > 12) + rtw_rx_dbg_ip_statistic_init(cmd, &(precvpriv->ip_statistic)); + else + num = sscanf(cmd, "%hhx", &cnt); if (num == 1 && cnt == 0) { precvpriv->dbg_rx_ampdu_drop_count = 0; @@ -1958,6 +2805,11 @@ ssize_t proc_reset_trx_info(struct file *file, const char __user *buffer, size_t precvpriv->dbg_rx_ampdu_window_shift_cnt = 0; precvpriv->dbg_rx_conflic_mac_addr_cnt = 0; precvpriv->dbg_rx_drop_count = 0; + /* Reset ip packet statistic */ + rtw_rx_dbg_ip_statistic_rest(&(precvpriv->ip_statistic), 0); + } else if ((num == 1) && (cnt == 2)) { + /* Disable ip packet statistic */ + rtw_rx_dbg_ip_statistic_rest(&(precvpriv->ip_statistic), 1); } } @@ -1990,15 +2842,23 @@ int proc_get_trx_info(struct seq_file *m, void *v) RTW_PRINT_SEL(m, "free_recvframe_cnt=%d\n" , precvpriv->free_recvframe_cnt); - for (i = 0; i < 4; i++) { + for (i = 0; i < pxmitpriv->hwxmit_entry; i++) { phwxmit = pxmitpriv->hwxmits + i; - RTW_PRINT_SEL(m, "%d, hwq.accnt=%d\n", i, phwxmit->accnt); +#ifdef CONFIG_RTW_MGMT_QUEUE + if (i == pxmitpriv->hwxmit_entry - 1) + RTW_PRINT_SEL(m, "%d, hw_mgmt_q.accnt=%d\n", i, phwxmit->accnt); + else +#endif + RTW_PRINT_SEL(m, "%d, hwq.accnt=%d\n", i, phwxmit->accnt); } rtw_hal_get_hwreg(padapter, HW_VAR_DUMP_MAC_TXFIFO, (u8 *)m); #ifdef CONFIG_USB_HCI RTW_PRINT_SEL(m, "rx_urb_pending_cn=%d\n", ATOMIC_READ(&(precvpriv->rx_pending_cnt))); +#ifdef CONFIG_USB_PROTECT_RX_CLONED_SKB + RTW_PRINT_SEL(m, "rx_cloned_skb_pending_cn=%d\n", skb_queue_len(&precvpriv->rx_cloned_skb_queue)); +#endif #endif dump_rx_bh_tk(m, &GET_PRIMARY_ADAPTER(padapter)->recvpriv); @@ -2015,6 +2875,21 @@ int proc_get_trx_info(struct seq_file *m, void *v) RTW_PRINT_SEL(m, "Rx: AMPDU BA window shift Count: %llu\n", (unsigned long long)precvpriv->dbg_rx_ampdu_window_shift_cnt); /*The same mac addr counts*/ RTW_PRINT_SEL(m, "Rx: Conflict MAC Address Frames Count: %llu\n", (unsigned long long)precvpriv->dbg_rx_conflic_mac_addr_cnt); + + if (precvpriv->ip_statistic.enabled) { + RTW_PRINT_SEL(m,"Rx : %u IP Packets, Frag %u at "IP_FMT":%u\n", + precvpriv->ip_statistic.ip_cnt, precvpriv->ip_statistic.frag_cnt, + IP_ARG(precvpriv->ip_statistic.ip), precvpriv->ip_statistic.dst_port); + RTW_PRINT_SEL(m, "Rx: TCP Count: %u, UDP Count : %u\n", + precvpriv->ip_statistic.tcp_cnt, precvpriv->ip_statistic.udp_cnt); + + if (precvpriv->ip_statistic.iperf_ver > 0) + RTW_PRINT_SEL(m, "Rx: Iperf Packet: %u, Error : %u, Out-of-Order: %u,\n", + precvpriv->ip_statistic.iperf_seq, precvpriv->ip_statistic.iperf_err_cnt, + precvpriv->ip_statistic.iperf_out_of_order_cnt); + /* Reset ip packet statistic */ + rtw_rx_dbg_ip_statistic_rest(&(precvpriv->ip_statistic), 0); + } return 0; } @@ -2418,47 +3293,6 @@ ssize_t proc_set_ap_linking_test(struct file *file, const char __user *buffer, s } #endif /* CONFIG_AP_MODE */ -#if defined(CONFIG_ALIBABA_ZEROCONFIG) -int proc_get_zeroconf_tgt_macaddr(struct seq_file *m, void *v) -{ - struct net_device *dev = m->private; - _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); - - RTW_PRINT_SEL(m, "target macaddr :"MAC_FMT"\n", MAC_ARG(GET_PRIMARY_ADAPTER(padapter)->target_macaddr)); - return 0; -} -ssize_t proc_set_zeroconf_tgt_macaddr(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) -{ - struct net_device *dev = data; - _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); - char tmp[32]; - char macaddr[ETH_ALEN]; - int i = 0; - u8 null_content[6] = {0}; - - if (count < 1) - return -EFAULT; - - if (count > sizeof(tmp)) { - rtw_warn_on(1); - return -EFAULT; - } - - if (buffer && !copy_from_user(tmp, buffer, count)) { - for(i=0;itarget_macaddr[i] = key_2char2num(tmp[i*2], tmp[i*2 + 1]); - } - RTW_INFO("set zeroconfig target macaddr : "MAC_FMT"\n", - MAC_ARG(GET_PRIMARY_ADAPTER(padapter)->target_macaddr)); - if(_rtw_memcmp(GET_PRIMARY_ADAPTER(padapter)->target_macaddr, null_content, ETH_ALEN)) - RTW_INFO("clear zeroconfig target macaddr\n"); - } - - return count; - -} -#endif /* CONFIG_ALIBABA_ZEROCONFIG */ - int proc_get_ps_dbg_info(struct seq_file *m, void *v) { struct net_device *dev = m->private; @@ -3240,6 +4074,66 @@ ssize_t proc_set_rx_ampdu(struct file *file, const char __user *buffer, size_t c return count; } +#ifdef CONFIG_SDIO_TX_ENABLE_AVAL_INT +int proc_get_tx_aval_th(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); + struct dvobj_priv *dvobj = adapter_to_dvobj(padapter); + + if (padapter) { + + switch(dvobj->tx_aval_int_thr_mode) { + case 0: + RTW_PRINT_SEL(m, "tx_aval_int_thr_mode = %u (auto) \n", dvobj->tx_aval_int_thr_mode); + break; + case 1: + RTW_PRINT_SEL(m, "tx_aval_int_thr_mode = %u (fixed)\n", dvobj->tx_aval_int_thr_mode); + RTW_PRINT_SEL(m, "tx_aval_threshold = 0x%x\n", dvobj->tx_aval_int_thr_value); + break; + case 2: + RTW_PRINT_SEL(m, "tx_aval_int_thr_mode = %u(by sdio_tx_max_len)\n", dvobj->tx_aval_int_thr_mode); + break; + default: + break; + } + } + return 0; +} + +ssize_t proc_set_tx_aval_th(struct file *file, const char __user *buffer + , size_t count, loff_t *pos, void *data) +{ + struct net_device *dev = data; + _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); + struct dvobj_priv *dvobj = adapter_to_dvobj(padapter); + char tmp[32]; + u32 mode; + u32 threshold; + + if (count < 1) + return -EFAULT; + + if (count > sizeof(tmp)) { + rtw_warn_on(1); + return -EFAULT; + } + + if (buffer && !copy_from_user(tmp, buffer, count)) { + + int num = sscanf(tmp, "%d %d ",&mode, &threshold); + + if(num >= 1) + dvobj->tx_aval_int_thr_mode = mode; + if(num >= 2) + dvobj->tx_aval_int_thr_value = threshold; + RTW_INFO("dvobj->tx_aval_int_thr_mode= 0x%x\n", mode); + RTW_INFO("dvobj->tx_aval_int_thr_value= 0x%x(range need 1~255)\n", threshold); + } + + return count; +} +#endif /*CONFIG_SDIO_TX_ENABLE_AVAL_INT*/ int proc_get_rx_ampdu_factor(struct seq_file *m, void *v) { @@ -3555,6 +4449,51 @@ ssize_t proc_set_tx_amsdu_rate(struct file *file, const char __user *buffer, siz } #endif /* CONFIG_TX_AMSDU */ #endif /* CONFIG_80211N_HT */ + +#ifdef CONFIG_80211AC_VHT +int proc_get_vht_24g_enable(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); + struct registry_priv *pregpriv = &padapter->registrypriv; + + if (pregpriv) + RTW_PRINT_SEL(m, "%d\n", pregpriv->vht_24g_enable); + + return 0; +} + +ssize_t proc_set_vht_24g_enable(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) +{ + struct net_device *dev = data; + _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); + struct registry_priv *pregpriv = &padapter->registrypriv; + char tmp[32]; + u32 mode; + + if (count < 1) + return -EFAULT; + + if (count > sizeof(tmp)) { + rtw_warn_on(1); + return -EFAULT; + } + + if (buffer && !copy_from_user(tmp, buffer, count)) { + + int num = sscanf(tmp, "%d ", &mode); + + if ((num == 1) && pregpriv && (mode < 2)) { + pregpriv->vht_24g_enable = mode; + RTW_INFO("vht_24g_enable = %d\n", pregpriv->vht_24g_enable); + } + } + + return count; + +} +#endif + ssize_t proc_set_dyn_rrsr(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) { struct net_device *dev = data; @@ -4013,7 +4952,8 @@ int proc_get_all_sta_info(struct seq_file *m, void *v) RTW_PRINT_SEL(m,"Vendor Realtek 8812\n"); #endif/*CONFIG_RTS_FULL_BW*/ #ifdef CONFIG_80211N_HT - RTW_PRINT_SEL(m, "qos_en=%d, ht_en=%d, init_rate=%d\n", psta->qos_option, psta->htpriv.ht_option, psta->init_rate); + RTW_PRINT_SEL(m, "qos_en=%d, ht_en=%d, init_rate=%d, ht_bitrate=%u\n", psta->qos_option, psta->htpriv.ht_option, psta->init_rate + , rtw_desc_rate_to_bitrate(psta->cmn.bw_mode, psta->init_rate, psta->cmn.bw_mode ? psta->htpriv.sgi_40m : psta->htpriv.sgi_20m) / 10); RTW_PRINT_SEL(m, "bwmode=%d, ch_offset=%d, sgi_20m=%d,sgi_40m=%d\n" , psta->cmn.bw_mode, psta->htpriv.ch_offset, psta->htpriv.sgi_20m, psta->htpriv.sgi_40m); RTW_PRINT_SEL(m, "ampdu_enable = %d\n", psta->htpriv.ampdu_enable); @@ -4021,7 +4961,8 @@ int proc_get_all_sta_info(struct seq_file *m, void *v) RTW_PRINT_SEL(m, "agg_enable_bitmap=%x, candidate_tid_bitmap=%x\n", psta->htpriv.agg_enable_bitmap, psta->htpriv.candidate_tid_bitmap); #endif /* CONFIG_80211N_HT */ #ifdef CONFIG_80211AC_VHT - RTW_PRINT_SEL(m, "vht_en=%d, vht_sgi_80m=%d\n", psta->vhtpriv.vht_option, psta->vhtpriv.sgi_80m); + RTW_PRINT_SEL(m, "vht_en=%d, vht_sgi_80m=%d, vht_bitrate=%u\n", psta->vhtpriv.vht_option, psta->vhtpriv.sgi_80m + , psta->vhtpriv.vht_option ? rtw_vht_mcs_to_data_rate(CHANNEL_WIDTH_80, psta->vhtpriv.sgi_80m, psta->vhtpriv.vht_highest_rate) / 2 : 0); RTW_PRINT_SEL(m, "vht_ldpc_cap=0x%x, vht_stbc_cap=0x%x, vht_beamform_cap=0x%x\n", psta->vhtpriv.ldpc_cap, psta->vhtpriv.stbc_cap, psta->vhtpriv.beamform_cap); RTW_PRINT_SEL(m, "vht_mcs_map=0x%x, vht_highest_rate=0x%x, vht_ampdu_len=%d\n", *(u16 *)psta->vhtpriv.vht_mcs_map, psta->vhtpriv.vht_highest_rate, psta->vhtpriv.ampdu_len); #endif @@ -4031,6 +4972,11 @@ int proc_get_all_sta_info(struct seq_file *m, void *v) RTW_PRINT_SEL(m, "sta_xmitpriv.be_q_qcnt=%d\n", psta->sta_xmitpriv.be_q.qcnt); RTW_PRINT_SEL(m, "sta_xmitpriv.bk_q_qcnt=%d\n", psta->sta_xmitpriv.bk_q.qcnt); +#ifdef CONFIG_RTW_MGMT_QUEUE + RTW_PRINT_SEL(m, "management sleepq_len=%d\n", psta->mgmt_sleepq_len); + RTW_PRINT_SEL(m, "sta_xmitpriv.mgmt_q_qcnt=%d\n", psta->sta_xmitpriv.mgmt_q.qcnt); +#endif + RTW_PRINT_SEL(m, "capability=0x%x\n", psta->capability); RTW_PRINT_SEL(m, "flags=0x%x\n", psta->flags); RTW_PRINT_SEL(m, "wpa_psk=0x%x\n", psta->wpa_psk); @@ -4070,6 +5016,9 @@ int proc_get_all_sta_info(struct seq_file *m, void *v) if (STA_OP_WFD_MODE(psta)) RTW_PRINT_SEL(m, "op_wfd_mode:0x%02x\n", STA_OP_WFD_MODE(psta)); + RTW_PRINT_SEL(m, "tx_bitrate_100kbps=%u\n", rtw_desc_rate_to_bitrate(psta->cmn.bw_mode, rtw_get_current_tx_rate(padapter, psta), rtw_get_current_tx_sgi(padapter, psta))); + RTW_PRINT_SEL(m, "rx_bitrate_100kbps=%u\n", rtw_desc_rate_to_bitrate(psta->cmn.bw_mode, psta->curr_rx_rate & 0x7f, (psta->curr_rx_rate & 0x80) >> 7)); + RTW_PRINT_SEL(m, "rssi=%d\n", psta->cmn.rssi_stat.rssi); RTW_PRINT_SEL(m, "==============================\n"); } @@ -4729,7 +5678,8 @@ int proc_get_tx_ring_ext(struct seq_file *m, void *v) struct rtw_tx_desc_backup *pbuf; int i, j, k, idx; - RTW_PRINT_SEL(m, "<<<< tx ring ext dump settings >>>>\n"); + RTW_PRINT_SEL(m, "<<<< tx ring ext dump settings (dump_txbd_desc=%d) >>>>\n", + pxmitpriv->dump_txbd_desc); RTW_PRINT_SEL(m, " - backup frame num: %d\n", TX_BAK_FRMAE_CNT); RTW_PRINT_SEL(m, " - backup max. desc size: %d bytes\n", TX_BAK_DESC_LEN); RTW_PRINT_SEL(m, " - backup data size: %d bytes\n\n", TX_BAK_DATA_LEN); @@ -4780,7 +5730,18 @@ int proc_get_tx_ring_ext(struct seq_file *m, void *v) RTW_PRINT_SEL(m, " Last idx: %d\n", idx); for (j = 0; j < TX_BAK_FRMAE_CNT; j++) { - RTW_PRINT_SEL(m, " desc[%03d]:\n", j); + RTW_PRINT_SEL(m, " txbd[%03d]:\n", j); + for (k = 0; k < TX_BAK_TXBD_LEN / 4; k++) { + if ((k % 4) == 0) + RTW_PRINT_SEL(m, " 0x%03x", k); + + RTW_PRINT_SEL(m, " 0x%08x ", ((int *)pbuf->tx_bak_txbd)[k]); + + if ((k % 4) == 3) + RTW_PRINT_SEL(m, "\n"); + } + + RTW_PRINT_SEL(m, "\n desc[%03d]:\n", j); for (k = 0; k < (pbuf->tx_desc_size) / 4; k++) { if ((k % 4) == 0) @@ -4809,7 +5770,8 @@ int proc_get_tx_ring_ext(struct seq_file *m, void *v) } #endif - RTW_PRINT_SEL(m, " R/W pointer: %d/%d\n", pbuf->tx_bak_rp, pbuf->tx_bak_wp); + RTW_PRINT_SEL(m, " R/W pointer: %d/%d, status=0x%08x\n", + pbuf->tx_bak_rp, pbuf->tx_bak_wp, pbuf->tx_dma_status); pbuf = pbuf + 1; } @@ -4820,6 +5782,135 @@ int proc_get_tx_ring_ext(struct seq_file *m, void *v) return 0; } +int core_get_tx_ring_ext(_adapter *padapter) +{ + _irqL irqL; + struct dvobj_priv *pdvobjpriv = adapter_to_dvobj(padapter); + struct xmit_priv *pxmitpriv = &padapter->xmitpriv; + struct rtw_tx_desc_backup *pbuf; + int i, j, k, idx; + char line[256]; + + printk("<<<< tx ring ext dump settings (dump_txbd_desc=%d) >>>>\n", pxmitpriv->dump_txbd_desc); + printk(" - backup frame num: %d\n", TX_BAK_FRMAE_CNT); + printk(" - backup max. desc size: %d bytes\n", TX_BAK_DESC_LEN); + printk(" - backup data size: %d bytes\n\n", TX_BAK_DATA_LEN); + + if (pxmitpriv->dump_txbd_desc == 0) { + printk("Dump function is disabled.\n"); + return 0; + } + + //_enter_critical(&pdvobjpriv->irq_th_lock, &irqL); + for (i = 0; i < HW_QUEUE_ENTRY; i++) { + struct rtw_tx_ring *tx_ring = &pxmitpriv->tx_ring[i]; + + idx = rtw_get_tx_desc_backup(padapter, i, &pbuf); + + memset(line, 0, sizeof(line)); + sprintf(line + strlen(line), "Tx ring[%d]", i); + switch (i) { + case 0: + sprintf(line + strlen(line), " (VO)\n"); + break; + case 1: + sprintf(line + strlen(line), " (VI)\n"); + break; + case 2: + sprintf(line + strlen(line), " (BE)\n"); + break; + case 3: + sprintf(line + strlen(line), " (BK)\n"); + break; + case 4: + sprintf(line + strlen(line), " (BCN)\n"); + break; + case 5: + sprintf(line + strlen(line), " (MGT)\n"); + break; + case 6: + sprintf(line + strlen(line), " (HIGH)\n"); + break; + case 7: + sprintf(line + strlen(line), " (TXCMD)\n"); + break; + default: + sprintf(line + strlen(line), " (?)\n"); + break; + } + + printk("%s", line ); + printk(" Entries: %d\n", TX_BAK_FRMAE_CNT); + printk(" Last idx: %d\n", idx); + + for (j = 0; j < TX_BAK_FRMAE_CNT; j++) { + printk("\n txbd[%03d]:\n", j); + memset(line, 0, sizeof(line)); + for (k = 0; k < TX_BAK_TXBD_LEN / 4; k++) { + if ((k % 4) == 0) + sprintf(line + strlen(line), " 0x%03x", k); + + sprintf(line + strlen(line), " 0x%08x ", ((int *)pbuf->tx_bak_txbd)[k]); + + if ((k % 4) == 3) { + //sprintf(line + strlen(line)"\n"); + printk("%s\n", line); + memset(line, 0, sizeof(line)); + } + } + if (((k - 1) % 4) != 3) + printk("%s\n", line); + + printk(" desc[%03d]:\n", j); + + memset(line, 0, sizeof(line)); + for (k = 0; k < (pbuf->tx_desc_size) / 4; k++) { + if ((k % 4) == 0) + sprintf(line + strlen(line), " 0x%03x", k); + + sprintf(line + strlen(line), " 0x%08x ", ((int *)pbuf->tx_bak_desc)[k]); + + if ((k % 4) == 3) { + printk("%s\n", line); + memset(line, 0, sizeof(line)); + } + } + if (((k - 1) % 4) != 3) + printk("%s\n", line); + +#if 1 /* data dump */ + if (pbuf->tx_desc_size) { + printk(" data[%03d]:\n", j); + + memset(line, 0, sizeof(line)); + for (k = 0; k < (TX_BAK_DATA_LEN) / 4; k++) { + if ((k % 4) == 0) + sprintf(line + strlen(line), " 0x%03x", k); + + sprintf(line + strlen(line), " 0x%08x ", ((int *)pbuf->tx_bak_data_hdr)[k]); + + if ((k % 4) == 3) { + printk("%s\n", line); + memset(line, 0, sizeof(line)); + } + } + if (((k - 1) % 4) != 3) + printk("%s\n", line); + } +#endif + + printk(" R/W pointer: %d/%d , status=0x%08x\n", + pbuf->tx_bak_rp, pbuf->tx_bak_wp, pbuf->tx_dma_status); + + pbuf = pbuf + 1; + } + printk("\n"); + } + //_exit_critical(&pdvobjpriv->irq_th_lock, &irqL); + + return 0; +} + ssize_t proc_set_tx_ring_ext(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) { _irqL irqL; @@ -5015,7 +6106,6 @@ ssize_t proc_set_pattern_info(struct file *file, const char __user *buffer, HW_VAR_WOWLAN, (u8 *)&poidparam); } else { index = pwrpriv->wowlan_pattern_idx; - tmp[MAX_WKFM_PATTERN_STR_LEN] = '\0'; ret = rtw_wowlan_parser_pattern_cmd(tmp, pwrpriv->patterns[index].content, &pwrpriv->patterns[index].len, @@ -5096,6 +6186,30 @@ int proc_get_wakeup_reason(struct seq_file *m, void *v) RTW_PRINT_SEL(m, "last wake reason: %#02x\n", val); return 0; } +#ifdef CONFIG_WOW_KEEP_ALIVE_PATTERN +int proc_dump_wow_keep_alive_info(struct seq_file *m, void *v) { + struct net_device *dev = m->private; + _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); + struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter); + int i; + + RTW_PRINT_SEL(m, "wowlan_keep_alive_mode: %d\n", pwrpriv->wowlan_keep_alive_mode); + RTW_PRINT_SEL(m,"LocKeepAlive: %d\n", pwrpriv->keep_alive_pattern_loc ); + RTW_PRINT_SEL(m, "keep_alive_pattern_len: %d\n", pwrpriv->keep_alive_pattern_len); + RTW_PRINT_SEL(m,"keep_alive_pattern= \n" ); + for (i=0 ; i < pwrpriv->keep_alive_pattern_len ; i++) { + RTW_PRINT_SEL(m,"[0x%x] ",pwrpriv->keep_alive_pattern[i]); + if(i%8 == 7) + RTW_PRINT_SEL(m,"\n"); + } + RTW_PRINT_SEL(m,"\n"); + RTW_PRINT_SEL(m," wowlan_keep_alive_period= %d ms\n", pwrpriv->wowlan_keep_alive_period*100); + RTW_PRINT_SEL(m," wowlan_keep_alive_retry_counter= %d\n", pwrpriv->wowlan_keep_alive_retry_counter); + RTW_PRINT_SEL(m," wowlan_keep_alive_retry_interval= %d ms\n", pwrpriv->wowlan_keep_alive_retry_interval*100); + return 0; +} +#endif /* CONFIG_WOW_KEEP_ALIVE_PATTERN*/ + #endif /*CONFIG_WOWLAN*/ #ifdef CONFIG_GPIO_WAKEUP @@ -5104,9 +6218,14 @@ int proc_get_wowlan_gpio_info(struct seq_file *m, void *v) struct net_device *dev = m->private; _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter); + u8 gpio_index = pwrpriv->wowlan_gpio_index; + u8 gpio_output_state = pwrpriv->wowlan_gpio_output_state; u8 val = pwrpriv->is_high_active; - RTW_PRINT_SEL(m, "wakeup_gpio_idx: %d\n", WAKEUP_GPIO_IDX); + RTW_PRINT_SEL(m, "wakeup_gpio_idx: %d\n", gpio_index); +#if (!defined(CONFIG_WAKEUP_GPIO_INPUT_MODE) && !defined(CONFIG_RTW_ONE_PIN_GPIO)) + RTW_PRINT_SEL(m, "current_gpio_output_state: %d\n", gpio_output_state); +#endif RTW_PRINT_SEL(m, "high_active: %d\n", val); return 0; @@ -5147,22 +6266,22 @@ ssize_t proc_set_wowlan_gpio_info(struct file *file, const char __user *buffer, rtw_ps_deny(padapter, PS_DENY_IOCTL); LeaveAllPowerSaveModeDirect(padapter); - #ifdef CONFIG_WAKEUP_GPIO_INPUT_MODE +#ifdef CONFIG_WAKEUP_GPIO_INPUT_MODE if (pwrpriv->is_high_active == 0) - rtw_hal_set_input_gpio(padapter, WAKEUP_GPIO_IDX); + rtw_hal_set_input_gpio(padapter, pwrpriv->wowlan_gpio_index); else - rtw_hal_set_output_gpio(padapter, WAKEUP_GPIO_IDX, 0); - #else + rtw_hal_set_output_gpio(padapter, pwrpriv->wowlan_gpio_index, + GPIO_OUTPUT_LOW); +#else val8 = (pwrpriv->is_high_active == 0) ? 1 : 0; - rtw_hal_switch_gpio_wl_ctrl(padapter, WAKEUP_GPIO_IDX, _TRUE); - rtw_hal_set_output_gpio(padapter, WAKEUP_GPIO_IDX, val8); - #endif + rtw_hal_switch_gpio_wl_ctrl(padapter, pwrpriv->wowlan_gpio_index, _TRUE); + rtw_hal_set_output_gpio(padapter, pwrpriv->wowlan_gpio_index, val8); +#endif rtw_ps_deny_cancel(padapter, PS_DENY_IOCTL); - RTW_INFO("set %s %d\n", "gpio_high_active", - pwrpriv->is_high_active); - RTW_INFO("%s: set GPIO_%d %d as default.\n", - __func__, WAKEUP_GPIO_IDX, val8); + RTW_INFO("%s set GPIO_%d to %s_ACTIVE\n", __func__, + pwrpriv->wowlan_gpio_index, + pwrpriv->is_high_active ? "HIGH" : "LOW"); } return count; @@ -5997,6 +7116,46 @@ ssize_t proc_set_monitor(struct file *file, const char __user *buffer, size_t co return count; } + +#ifdef RTW_SIMPLE_CONFIG +/* For RtwSimleConfig */ +int proc_get_simple_config(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); + + RTW_PRINT_SEL(m, "RTW Simple Config : %s\n", padapter->rtw_simple_config ? "Enable" : "Disable"); + + return 0; +} + +ssize_t proc_set_simple_config(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) +{ + char tmp[32]; + struct net_device *dev = data; + _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); + u8 ret; + + if (count < 1) { + RTW_INFO("argument size is less than 1\n"); + return -EFAULT; + } + + if (count > sizeof(tmp)) { + rtw_warn_on(1); + return -EFAULT; + } + + if (buffer && !copy_from_user(tmp, buffer, count)) { + int num = sscanf(tmp, "%hhd", &ret); + + padapter->rtw_simple_config = ret ? _TRUE : _FALSE; + } + + return count; +} +#endif + #ifdef DBG_XMIT_BLOCK int proc_get_xmit_block(struct seq_file *m, void *v) { @@ -6062,7 +7221,7 @@ int proc_get_efuse_map(struct seq_file *m, void *v) ips_mode = pwrctrlpriv->ips_mode; rtw_pm_set_ips(padapter, IPS_NONE); - +#ifdef CONFIG_EFUSE_CONFIG_FILE if (pHalData->efuse_file_status == EFUSE_FILE_LOADED) { RTW_PRINT_SEL(m, "File eFuse Map loaded! file path:%s\nDriver eFuse Map From File\n", EFUSE_MAP_PATH); if (pHalData->bautoload_fail_flag) @@ -6071,10 +7230,26 @@ int proc_get_efuse_map(struct seq_file *m, void *v) RTW_PRINT_SEL(m, "Open File eFuse Map Fail ! file path:%s\nDriver eFuse Map From Default\n", EFUSE_MAP_PATH); if (pHalData->bautoload_fail_flag) RTW_PRINT_SEL(m, "HW Autoload fail!!!\n"); - } else { - RTW_PRINT_SEL(m, "Driver eFuse Map From HW\n"); - if (pHalData->bautoload_fail_flag) - RTW_PRINT_SEL(m, "HW Autoload fail!!!\n"); + } else +#endif + + { +#ifdef CONFIG_MP_INCLUDED + if (rtw_mp_mode_check(padapter)) { + PEFUSE_HAL pEfuseHal = &pHalData->EfuseHal; + + if (GET_EFUSE_UPDATE_ON(padapter)) + RTW_PRINT_SEL(m, "Driver eFuse Map From fake\n"); + else + RTW_PRINT_SEL(m, "Driver eFuse Map From HW\n"); + } else +#endif + { + RTW_PRINT_SEL(m, "Driver eFuse Map From HW\n"); + + if (pHalData->bautoload_fail_flag) + RTW_PRINT_SEL(m, "HW Autoload fail!!!\n"); + } } for (i = 0; i < mapLen; i += 16) { RTW_PRINT_SEL(m, "0x%02x\t", i); @@ -6274,6 +7449,7 @@ ssize_t proc_set_tx_deauth(struct file *file, const char __user *buffer, size_t return count; /* TX unicast deauth to AP */ issue_deauth_11w(padapter, get_my_bssid(&(pmlmeinfo->network)), 0, (u8)key_type); +#ifdef CONFIG_AP_MODE } else if (check_fwstate(pmlmepriv, WIFI_AP_STATE) == _TRUE) { u8 updated = _FALSE; @@ -6324,6 +7500,7 @@ ssize_t proc_set_tx_deauth(struct file *file, const char __user *buffer, size_t } associated_clients_update(padapter, updated, STA_INFO_UPDATE_ALL); +#endif /* CONFIG_AP_MODE */ } return count; @@ -6354,7 +7531,7 @@ ssize_t proc_set_tx_auth(struct file *file, const char __user *buffer, size_t co char tmp[16]; u8 mac_addr[NUM_STA][ETH_ALEN]; u8 bc_addr[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; - u32 tx_auth = 0; + u32 tx_auth; u8 index; @@ -7438,6 +8615,65 @@ int proc_get_smps(struct seq_file *m, void *v) } #endif /*CONFIG_SUPPORT_STATIC_SMPS*/ +#if defined(CONFIG_CONCURRENT_MODE) && defined(CONFIG_AP_MODE) +ssize_t proc_set_ap_csa_cnt(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) +{ + struct net_device *dev = data; + _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); + struct rf_ctl_t *rfctl; + char tmp[6]; + u8 ap_csa_cnt; + rfctl = adapter_to_rfctl(adapter); + + if (buffer == NULL) { + RTW_INFO("input buffer is NULL!\n"); + return -EFAULT; + } + + if (count < 1) { + RTW_INFO("input length is 0!\n"); + return -EFAULT; + } + + if (count > sizeof(tmp)) { + RTW_INFO("input length is too large\n"); + rtw_warn_on(1); + return -EFAULT; + } + + if (buffer && !copy_from_user(tmp, buffer, count)) { + int num = sscanf(tmp, "%hhu", &ap_csa_cnt); + + if (num < 1) { + RTW_INFO("input parameters < 1\n"); + return -EINVAL; + } + + if (ap_csa_cnt > MAX_CSA_CNT) { + RTW_INFO("ap_csa_cnt can't set more than %u, so driver force ap_csa_cnt to %u.\n", MAX_CSA_CNT, MAX_CSA_CNT); + ap_csa_cnt = MAX_CSA_CNT; + } + + RTW_INFO("set rfctl->ap_csa_cnt_input to %u\n", ap_csa_cnt); + rfctl->ap_csa_cnt_input = ap_csa_cnt; + } + + return count; +} + +int proc_get_ap_csa_cnt(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); + struct rf_ctl_t *rfctl; + rfctl = adapter_to_rfctl(adapter); + + RTW_PRINT_SEL(m, "ap_csa_switch_cnt = %u\n", rfctl->ap_csa_cnt_input); + + return 0; +} +#endif + #endif /* CONFIG_PROC_DEBUG */ #define RTW_BUFDUMP_BSIZE 16 #if 1 diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_ft.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_ft.c new file mode 100755 index 00000000..f1e0776f --- /dev/null +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_ft.c @@ -0,0 +1,673 @@ +/****************************************************************************** + * + * Copyright(c) 2007 - 2017 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License 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. + * + *****************************************************************************/ + +#include +#include + +#ifdef CONFIG_RTW_80211R + +#ifndef RTW_FT_DBG + #define RTW_FT_DBG 0 +#endif +#if RTW_FT_DBG + #define RTW_FT_INFO(fmt, arg...) \ + RTW_INFO(fmt, arg) + #define RTW_FT_DUMP(str, data, len) \ + RTW_INFO_DUMP(str, data, len) +#else + #define RTW_FT_INFO(fmt, arg...) do {} while (0) + #define RTW_FT_DUMP(str, data, len) do {} while (0) +#endif + +void rtw_ft_info_init(struct ft_roam_info *pft) +{ + _rtw_memset(pft, 0, sizeof(struct ft_roam_info)); + pft->ft_flags = 0 + | RTW_FT_EN + /* | RTW_FT_OTD_EN */ +#ifdef CONFIG_RTW_BTM_ROAM + | RTW_FT_BTM_ROAM +#endif + ; + pft->ft_updated_bcn = _FALSE; + RTW_FT_INFO("%s : ft_flags=0x%02x\n", __func__, pft->ft_flags); +} + +ssize_t rtw_ft_proc_flags_set(struct file *file, + const char __user *buffer, size_t count, loff_t *pos, void *data) +{ + struct net_device *dev = data; + _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); + + char tmp[32]; + u8 flags; + + if (count < 1) + return -EFAULT; + + if (count > sizeof(tmp)) { + rtw_warn_on(1); + return -EFAULT; + } + + if (buffer && !copy_from_user(tmp, buffer, count)) { + int num = sscanf(tmp, "%hhx", &flags); + if (num == 1) + adapter->mlmepriv.ft_roam.ft_flags = flags; + } + + return count; + +} + +int rtw_ft_proc_flags_get(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); + + RTW_PRINT_SEL(m, "0x%02x\n", adapter->mlmepriv.ft_roam.ft_flags); + + return 0; +} + +u8 rtw_ft_chk_roaming_candidate( + _adapter *padapter, struct wlan_network *competitor) +{ + u8 *pmdie; + u32 mdie_len = 0; + struct ft_roam_info *pft_roam = &(padapter->mlmepriv.ft_roam); + + if (!(pmdie = rtw_get_ie(&competitor->network.IEs[12], + _MDIE_, &mdie_len, competitor->network.IELength-12))) { + RTW_INFO("FT : MDIE not foud in competitor!\n"); + return _FALSE; + } + + if (!_rtw_memcmp(&pft_roam->mdid, (pmdie+2), 2)) { + RTW_INFO("FT : unmatched MDIE!\n"); + return _FALSE; + } + + /*The candidate don't support over-the-DS*/ + if (rtw_ft_valid_otd_candidate(padapter, pmdie)) { + RTW_INFO("FT: ignore the candidate(" + MAC_FMT ") for over-the-DS\n", + MAC_ARG(competitor->network.MacAddress)); + /* rtw_ft_clr_flags(padapter, RTW_FT_PEER_OTD_EN); */ + return _FALSE; + } + + if (rtw_ft_chk_flags(padapter, RTW_FT_TEST_RSSI_ROAM)) { + if (!_rtw_memcmp(padapter->mlmepriv.cur_network.network.MacAddress, + competitor->network.MacAddress, ETH_ALEN) ) { + competitor->network.Rssi +=20; + RTW_FT_INFO("%s : update "MAC_FMT" RSSI to %d for RTW_FT_TEST_RSSI_ROAM\n", + __func__, MAC_ARG(competitor->network.MacAddress), + (int)competitor->network.Rssi); + rtw_ft_clr_flags(padapter, RTW_FT_TEST_RSSI_ROAM); + } + } + + return _TRUE; +} + +void rtw_ft_update_stainfo(_adapter *padapter, WLAN_BSSID_EX *pnetwork) +{ + struct sta_priv *pstapriv = &padapter->stapriv; + struct sta_info *psta = NULL; + + psta = rtw_get_stainfo(pstapriv, pnetwork->MacAddress); + if (psta == NULL) + psta = rtw_alloc_stainfo(pstapriv, pnetwork->MacAddress); + + if (padapter->securitypriv.dot11AuthAlgrthm == dot11AuthAlgrthm_8021X) { + + padapter->securitypriv.binstallGrpkey = _FALSE; + padapter->securitypriv.busetkipkey = _FALSE; + padapter->securitypriv.bgrpkey_handshake = _FALSE; + + psta->ieee8021x_blocked = _TRUE; + psta->dot118021XPrivacy = padapter->securitypriv.dot11PrivacyAlgrthm; + + _rtw_memset((u8 *)&psta->dot118021x_UncstKey, 0, sizeof(union Keytype)); + _rtw_memset((u8 *)&psta->dot11tkiprxmickey, 0, sizeof(union Keytype)); + _rtw_memset((u8 *)&psta->dot11tkiptxmickey, 0, sizeof(union Keytype)); + } + +} + +void rtw_ft_reassoc_event_callback(_adapter *padapter, u8 *pbuf) +{ + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + struct stassoc_event *pstassoc = (struct stassoc_event *)pbuf; + struct ft_roam_info *pft_roam = &(pmlmepriv->ft_roam); + struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); + struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); + WLAN_BSSID_EX *pnetwork = (WLAN_BSSID_EX *)&(pmlmeinfo->network); + struct cfg80211_ft_event_params ft_evt_parms; + _irqL irqL; + + _rtw_memset(&ft_evt_parms, 0, sizeof(ft_evt_parms)); + rtw_ft_update_stainfo(padapter, pnetwork); + ft_evt_parms.ies_len = pft_roam->ft_event.ies_len; + ft_evt_parms.ies = rtw_zmalloc(ft_evt_parms.ies_len); + if (ft_evt_parms.ies) + _rtw_memcpy((void *)ft_evt_parms.ies, pft_roam->ft_event.ies, ft_evt_parms.ies_len); + else + goto err_2; + + ft_evt_parms.target_ap = rtw_zmalloc(ETH_ALEN); + if (ft_evt_parms.target_ap) + _rtw_memcpy((void *)ft_evt_parms.target_ap, pstassoc->macaddr, ETH_ALEN); + else + goto err_1; + + ft_evt_parms.ric_ies = pft_roam->ft_event.ric_ies; + ft_evt_parms.ric_ies_len = pft_roam->ft_event.ric_ies_len; + + /* It's a KERNEL issue between v4.11 ~ v4.16, + * <= v4.10, NLMSG_DEFAULT_SIZE is used for nlmsg_new(). + * v4.11 ~ v4.16, only used "100 + >ric_ies_len" for nlmsg_new() + * even then DRIVER don't support RIC. + * >= v4.17, issue should correct as "100 + ies_len + ric_ies_len". + */ + #if ((LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)) && \ + (LINUX_VERSION_CODE < KERNEL_VERSION(4, 17, 0))) + if (!ft_evt_parms.ric_ies_len) + ft_evt_parms.ric_ies_len = ft_evt_parms.ies_len; + else + ft_evt_parms.ric_ies_len += ft_evt_parms.ies_len; + #endif + + rtw_ft_lock_set_status(padapter, RTW_FT_AUTHENTICATED_STA, &irqL); + rtw_cfg80211_ft_event(padapter, &ft_evt_parms); + RTW_INFO("%s: to "MAC_FMT"\n", __func__, MAC_ARG(ft_evt_parms.target_ap)); + + rtw_mfree((u8 *)pft_roam->ft_event.target_ap, ETH_ALEN); +err_1: + rtw_mfree((u8 *)ft_evt_parms.ies, ft_evt_parms.ies_len); +err_2: + return; +} + +void rtw_ft_validate_akm_type(_adapter *padapter, + struct wlan_network *pnetwork) +{ + struct security_priv *psecuritypriv = &(padapter->securitypriv); + struct ft_roam_info *pft_roam = &(padapter->mlmepriv.ft_roam); + u32 tmp_len; + u8 *ptmp; + + /*IEEE802.11-2012 Std. Table 8-101-AKM suite selectors*/ + if (rtw_ft_valid_akm(padapter, psecuritypriv->rsn_akm_suite_type)) { + ptmp = rtw_get_ie(&pnetwork->network.IEs[12], + _MDIE_, &tmp_len, (pnetwork->network.IELength-12)); + if (ptmp) { + pft_roam->mdid = *(u16 *)(ptmp+2); + pft_roam->ft_cap = *(ptmp+4); + + RTW_INFO("FT: target " MAC_FMT " mdid=(0x%2x), capacity=(0x%2x)\n", + MAC_ARG(pnetwork->network.MacAddress), pft_roam->mdid, pft_roam->ft_cap); + rtw_ft_set_flags(padapter, RTW_FT_PEER_EN); + RTW_FT_INFO("%s : peer support FTOTA(0x%02x)\n", __func__, pft_roam->ft_flags); + + if (rtw_ft_otd_roam_en(padapter)) { + rtw_ft_set_flags(padapter, RTW_FT_PEER_OTD_EN); + RTW_FT_INFO("%s : peer support FTOTD(0x%02x)\n", __func__, pft_roam->ft_flags); + } + } else { + /* Don't use FT roaming if target AP cannot support FT */ + rtw_ft_clr_flags(padapter, (RTW_FT_PEER_EN|RTW_FT_PEER_OTD_EN)); + rtw_ft_reset_status(padapter); + } + } else { + /* It could be a non-FT connection */ + rtw_ft_clr_flags(padapter, (RTW_FT_PEER_EN|RTW_FT_PEER_OTD_EN)); + rtw_ft_reset_status(padapter); + } + + RTW_FT_INFO("%s : ft_flags=0x%02x\n", __func__, pft_roam->ft_flags); +} + +void rtw_ft_update_bcn(_adapter *padapter, union recv_frame *precv_frame) +{ + struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; + struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); + struct mlme_priv *pmlmepriv = &padapter->mlmepriv; + u8 *pframe = precv_frame->u.hdr.rx_data; + uint len = precv_frame->u.hdr.len; + WLAN_BSSID_EX *pbss; + + if (rtw_ft_chk_status(padapter,RTW_FT_ASSOCIATED_STA) + && (pmlmepriv->ft_roam.ft_updated_bcn == _FALSE)) { + pbss = (WLAN_BSSID_EX*)rtw_malloc(sizeof(WLAN_BSSID_EX)); + if (pbss) { + if (collect_bss_info(padapter, precv_frame, pbss) == _SUCCESS) { + struct beacon_keys recv_beacon; + + update_network(&(pmlmepriv->cur_network.network), pbss, padapter, _TRUE); + /* Move into rtw_get_bcn_keys */ + /* rtw_get_bcn_info(&(pmlmepriv->cur_network)); */ + + /* update bcn keys */ + if (rtw_get_bcn_keys(padapter, pframe, len, &recv_beacon) == _TRUE) { + RTW_FT_INFO("%s: beacon keys ready\n", __func__); + _rtw_memcpy(&pmlmepriv->cur_beacon_keys, + &recv_beacon, sizeof(recv_beacon)); + if (is_hidden_ssid(recv_beacon.ssid, recv_beacon.ssid_len)) { + _rtw_memcpy(pmlmepriv->cur_beacon_keys.ssid, pmlmeinfo->network.Ssid.Ssid, IW_ESSID_MAX_SIZE); + pmlmepriv->cur_beacon_keys.ssid_len = pmlmeinfo->network.Ssid.SsidLength; + } + } else { + RTW_ERR("%s: get beacon keys failed\n", __func__); + _rtw_memset(&pmlmepriv->cur_beacon_keys, 0, sizeof(recv_beacon)); + } + #ifdef CONFIG_BCN_CNT_CONFIRM_HDL + pmlmepriv->new_beacon_cnts = 0; + #endif + } + rtw_mfree((u8*)pbss, sizeof(WLAN_BSSID_EX)); + } + + /* check the vendor of the assoc AP */ + pmlmeinfo->assoc_AP_vendor = + check_assoc_AP(pframe+sizeof(struct rtw_ieee80211_hdr_3addr), + (len - sizeof(struct rtw_ieee80211_hdr_3addr))); + + rtw_phydm_update_ap_vendor_ie(padapter); + + /* update TSF Value */ + update_TSF(pmlmeext, pframe, len); + pmlmeext->bcn_cnt = 0; + pmlmeext->last_bcn_cnt = 0; + pmlmepriv->ft_roam.ft_updated_bcn = _TRUE; + } +} + +void rtw_ft_start_clnt_join(_adapter *padapter) +{ + struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); + struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + struct ft_roam_info *pft_roam = &(pmlmepriv->ft_roam); + + if (rtw_ft_otd_roam(padapter)) { + pmlmeinfo->state = WIFI_FW_AUTH_SUCCESS | WIFI_FW_STATION_STATE; + pft_roam->ft_event.ies = + (pft_roam->ft_action + sizeof(struct rtw_ieee80211_hdr_3addr) + 16); + pft_roam->ft_event.ies_len = + (pft_roam->ft_action_len - sizeof(struct rtw_ieee80211_hdr_3addr)); + + /*Not support RIC*/ + pft_roam->ft_event.ric_ies = NULL; + pft_roam->ft_event.ric_ies_len = 0; + rtw_ft_report_evt(padapter); + return; + } + + pmlmeinfo->state = WIFI_FW_AUTH_NULL | WIFI_FW_STATION_STATE; + start_clnt_auth(padapter); +} + +u8 rtw_ft_update_rsnie( + _adapter *padapter, u8 bwrite, + struct pkt_attrib *pattrib, u8 **pframe) +{ + struct ft_roam_info *pft_roam = &(padapter->mlmepriv.ft_roam); + u8 *pie; + u32 len; + + pie = rtw_get_ie(pft_roam->updated_ft_ies, EID_WPA2, &len, + pft_roam->updated_ft_ies_len); + + if (!bwrite) + return (pie)?_SUCCESS:_FAIL; + + if (pie) { + *pframe = rtw_set_ie(((u8 *)*pframe), EID_WPA2, len, + pie+2, &(pattrib->pktlen)); + } else + return _FAIL; + + return _SUCCESS; +} + +static u8 rtw_ft_update_mdie( + _adapter *padapter, struct pkt_attrib *pattrib, u8 **pframe) +{ + struct ft_roam_info *pft_roam = &(padapter->mlmepriv.ft_roam); + u8 *pie, mdie[3]; + u32 len = 3; + + if (rtw_ft_roam(padapter)) { + if ((pie = rtw_get_ie(pft_roam->updated_ft_ies, _MDIE_, + &len, pft_roam->updated_ft_ies_len))) { + pie = (pie + 2); /* ignore md-id & length */ + } else + return _FAIL; + } else { + *((u16 *)&mdie[0]) = pft_roam->mdid; + mdie[2] = pft_roam->ft_cap; + pie = &mdie[0]; + } + + *pframe = rtw_set_ie(((u8 *)*pframe), _MDIE_, len , pie, &(pattrib->pktlen)); + return _SUCCESS; +} + +static u8 rtw_ft_update_ftie( + _adapter *padapter, struct pkt_attrib *pattrib, u8 **pframe) +{ + struct ft_roam_info *pft_roam = &(padapter->mlmepriv.ft_roam); + u8 *pie; + u32 len; + + if ((pie = rtw_get_ie(pft_roam->updated_ft_ies, _FTIE_, &len, + pft_roam->updated_ft_ies_len)) != NULL) { + *pframe = rtw_set_ie(*pframe, _FTIE_, len , + (pie+2), &(pattrib->pktlen)); + } else + return _FAIL; + + return _SUCCESS; +} + +void rtw_ft_build_auth_req_ies(_adapter *padapter, + struct pkt_attrib *pattrib, u8 **pframe) +{ + u8 ftie_append = _TRUE; + + if (!pattrib || !(*pframe)) + return; + + if (!rtw_ft_roam(padapter)) + return; + + ftie_append = rtw_ft_update_rsnie(padapter, _TRUE, pattrib, pframe); + rtw_ft_update_mdie(padapter, pattrib, pframe); + if (ftie_append) + rtw_ft_update_ftie(padapter, pattrib, pframe); +} + +void rtw_ft_build_assoc_req_ies(_adapter *padapter, + u8 is_reassoc, struct pkt_attrib *pattrib, u8 **pframe) +{ + if (!pattrib || !(*pframe)) + return; + + if (rtw_ft_chk_flags(padapter, RTW_FT_PEER_EN)) + rtw_ft_update_mdie(padapter, pattrib, pframe); + + if ((!is_reassoc) || (!rtw_ft_roam(padapter))) + return; + + if (rtw_ft_update_rsnie(padapter, _FALSE, pattrib, pframe)) + rtw_ft_update_ftie(padapter, pattrib, pframe); +} + +u8 rtw_ft_update_auth_rsp_ies(_adapter *padapter, u8 *pframe, u32 len) +{ + u8 ret = _SUCCESS; + u8 target_ap_addr[ETH_ALEN] = {0}; + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + struct ft_roam_info *pft_roam = &(pmlmepriv->ft_roam); + + if (!rtw_ft_roam(padapter)) + return _FAIL; + + /*rtw_ft_report_reassoc_evt already, + * and waiting for cfg80211_rtw_update_ft_ies */ + if (rtw_ft_authed_sta(padapter)) + return ret; + + if (!pframe || !len) + return _FAIL; + + rtw_buf_update(&pmlmepriv->auth_rsp, + &pmlmepriv->auth_rsp_len, pframe, len); + pft_roam->ft_event.ies = + (pmlmepriv->auth_rsp + sizeof(struct rtw_ieee80211_hdr_3addr) + 6); + pft_roam->ft_event.ies_len = + (pmlmepriv->auth_rsp_len - sizeof(struct rtw_ieee80211_hdr_3addr) - 6); + + /*Not support RIC*/ + pft_roam->ft_event.ric_ies = NULL; + pft_roam->ft_event.ric_ies_len = 0; + _rtw_memcpy(target_ap_addr, pmlmepriv->assoc_bssid, ETH_ALEN); + rtw_ft_report_reassoc_evt(padapter, target_ap_addr); + + return ret; +} + +static void rtw_ft_start_clnt_action(_adapter *padapter, u8 *pTargetAddr) +{ + struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; + + rtw_ft_set_status(padapter, RTW_FT_REQUESTING_STA); + rtw_ft_issue_action_req(padapter, pTargetAddr); + _set_timer(&pmlmeext->ft_link_timer, REASSOC_FT_TO); +} + +void rtw_ft_start_roam(_adapter *padapter, u8 *pTargetAddr) +{ + struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; + + if (rtw_ft_otd_roam(padapter)) { + RTW_FT_INFO("%s : try OTD roaming\n", __func__); + rtw_ft_start_clnt_action(padapter, pTargetAddr); + } else { + /*wait a little time to retrieve packets buffered in the current ap while scan*/ + RTW_FT_INFO("%s : start roaming timer\n", __func__); + _set_timer(&pmlmeext->ft_roam_timer, 1); + } +} + +void rtw_ft_issue_action_req(_adapter *padapter, u8 *pTargetAddr) +{ + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + struct xmit_priv *pxmitpriv = &(padapter->xmitpriv); + struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); + struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); + struct xmit_frame *pmgntframe; + struct rtw_ieee80211_hdr *pwlanhdr; + struct pkt_attrib *pattrib; + u8 *pframe; + u8 category = RTW_WLAN_CATEGORY_FT; + u8 action = RTW_WLAN_ACTION_FT_REQ; + + pmgntframe = alloc_mgtxmitframe(pxmitpriv); + if (pmgntframe == NULL) + return; + + pattrib = &pmgntframe->attrib; + update_mgntframe_attrib(padapter, pattrib); + _rtw_memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET); + + pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET; + pwlanhdr = (struct rtw_ieee80211_hdr *)pframe; + pwlanhdr->frame_ctl = 0; + + _rtw_memcpy(pwlanhdr->addr1, get_my_bssid(&pmlmeinfo->network), ETH_ALEN); + _rtw_memcpy(pwlanhdr->addr2, adapter_mac_addr(padapter), ETH_ALEN); + _rtw_memcpy(pwlanhdr->addr3, get_my_bssid(&pmlmeinfo->network), ETH_ALEN); + + SetSeqNum(pwlanhdr, pmlmeext->mgnt_seq); + pmlmeext->mgnt_seq++; + set_frame_sub_type(pframe, WIFI_ACTION); + + pframe += sizeof(struct rtw_ieee80211_hdr_3addr); + pattrib->pktlen = sizeof(struct rtw_ieee80211_hdr_3addr); + + pframe = rtw_set_fixed_ie(pframe, 1, &(category), &(pattrib->pktlen)); + pframe = rtw_set_fixed_ie(pframe, 1, &(action), &(pattrib->pktlen)); + + _rtw_memcpy(pframe, adapter_mac_addr(padapter), ETH_ALEN); + pframe += ETH_ALEN; + pattrib->pktlen += ETH_ALEN; + + _rtw_memcpy(pframe, pTargetAddr, ETH_ALEN); + pframe += ETH_ALEN; + pattrib->pktlen += ETH_ALEN; + + rtw_ft_update_mdie(padapter, pattrib, &pframe); + if (rtw_ft_update_rsnie(padapter, _TRUE, pattrib, &pframe)) + rtw_ft_update_ftie(padapter, pattrib, &pframe); + + RTW_INFO("FT : issue RTW_WLAN_ACTION_FT_REQ\n"); + pattrib->last_txcmdsz = pattrib->pktlen; + dump_mgntframe(padapter, pmgntframe); +} + +void rtw_ft_report_evt(_adapter *padapter) +{ + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + struct ft_roam_info *pft_roam = &(pmlmepriv->ft_roam); + struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); + struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); + WLAN_BSSID_EX *pnetwork = (WLAN_BSSID_EX *)&(pmlmeinfo->network); + struct cfg80211_ft_event_params ft_evt_parms; + _irqL irqL; + + _rtw_memset(&ft_evt_parms, 0, sizeof(ft_evt_parms)); + rtw_ft_update_stainfo(padapter, pnetwork); + + if (!pnetwork) + goto err_2; + + ft_evt_parms.ies_len = pft_roam->ft_event.ies_len; + ft_evt_parms.ies = rtw_zmalloc(ft_evt_parms.ies_len); + if (ft_evt_parms.ies) + _rtw_memcpy((void *)ft_evt_parms.ies, pft_roam->ft_event.ies, ft_evt_parms.ies_len); + else + goto err_2; + + ft_evt_parms.target_ap = rtw_zmalloc(ETH_ALEN); + if (ft_evt_parms.target_ap) + _rtw_memcpy((void *)ft_evt_parms.target_ap, pnetwork->MacAddress, ETH_ALEN); + else + goto err_1; + + ft_evt_parms.ric_ies = pft_roam->ft_event.ric_ies; + ft_evt_parms.ric_ies_len = pft_roam->ft_event.ric_ies_len; + + /* It's a KERNEL issue between v4.11 ~ v4.16, + * <= v4.10, NLMSG_DEFAULT_SIZE is used for nlmsg_new(). + * v4.11 ~ v4.16, only used "100 + >ric_ies_len" for nlmsg_new() + * even then DRIVER don't support RIC. + * >= v4.17, issue should correct as "100 + ies_len + ric_ies_len". + */ + #if ((LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)) && \ + (LINUX_VERSION_CODE < KERNEL_VERSION(4, 17, 0))) + ft_evt_parms.ric_ies_len = (ft_evt_parms.ies_len <= 100 )? + (0):(ft_evt_parms.ies_len - 100); + #endif + + rtw_ft_lock_set_status(padapter, RTW_FT_AUTHENTICATED_STA, &irqL); + rtw_cfg80211_ft_event(padapter, &ft_evt_parms); + RTW_INFO("FT: rtw_ft_report_evt\n"); + rtw_mfree((u8 *)pft_roam->ft_event.target_ap, ETH_ALEN); +err_1: + rtw_mfree((u8 *)ft_evt_parms.ies, ft_evt_parms.ies_len); +err_2: + return; +} + +void rtw_ft_report_reassoc_evt(_adapter *padapter, u8 *pMacAddr) +{ + struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); + struct cmd_priv *pcmdpriv = &(padapter->cmdpriv); + struct cmd_obj *pcmd_obj = NULL; + struct stassoc_event *passoc_sta_evt = NULL; + struct rtw_evt_header *evt_hdr = NULL; + u8 *pevtcmd = NULL; + u32 cmdsz = 0; + + pcmd_obj = (struct cmd_obj *)rtw_zmalloc(sizeof(struct cmd_obj)); + if (pcmd_obj == NULL) + return; + + cmdsz = (sizeof(struct stassoc_event) + sizeof(struct rtw_evt_header)); + pevtcmd = (u8 *)rtw_zmalloc(cmdsz); + if (pevtcmd == NULL) { + rtw_mfree((u8 *)pcmd_obj, sizeof(struct cmd_obj)); + return; + } + + _rtw_init_listhead(&pcmd_obj->list); + pcmd_obj->cmdcode = CMD_SET_MLME_EVT; + pcmd_obj->cmdsz = cmdsz; + pcmd_obj->parmbuf = pevtcmd; + pcmd_obj->rsp = NULL; + pcmd_obj->rspsz = 0; + + evt_hdr = (struct rtw_evt_header *)(pevtcmd); + evt_hdr->len = sizeof(struct stassoc_event); + evt_hdr->id = EVT_FT_REASSOC; + evt_hdr->seq = ATOMIC_INC_RETURN(&pmlmeext->event_seq); + + passoc_sta_evt = (struct stassoc_event *)(pevtcmd + sizeof(struct rtw_evt_header)); + _rtw_memcpy((unsigned char *)(&(passoc_sta_evt->macaddr)), pMacAddr, ETH_ALEN); + rtw_enqueue_cmd(pcmdpriv, pcmd_obj); +} + +void rtw_ft_link_timer_hdl(void *ctx) +{ + _adapter *padapter = (_adapter *)ctx; + struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); + struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + struct ft_roam_info *pft_roam = &(pmlmepriv->ft_roam); + + if (pmlmepriv->roam_network) + pmlmepriv->roam_buf_pkt = 1; + + if (rtw_ft_chk_status(padapter, RTW_FT_REQUESTING_STA)) { + if (pft_roam->ft_req_retry_cnt < RTW_FT_ACTION_REQ_LMT) { + pft_roam->ft_req_retry_cnt++; + rtw_ft_issue_action_req(padapter, (u8 *)pmlmepriv->roam_network->network.MacAddress); + _set_timer(&pmlmeext->ft_link_timer, REASSOC_FT_TO); + } else { + pft_roam->ft_req_retry_cnt = 0; + if (pmlmeinfo->state & WIFI_FW_ASSOC_SUCCESS) + rtw_ft_set_status(padapter, RTW_FT_ASSOCIATED_STA); + else + rtw_ft_reset_status(padapter); + } + } +} + +void rtw_ft_roam_timer_hdl(void *ctx) +{ + _adapter *padapter = (_adapter *)ctx; + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + + RTW_FT_INFO("%s : try roaming\n", __func__); + receive_disconnect(padapter, pmlmepriv->cur_network.network.MacAddress + , WLAN_REASON_ACTIVE_ROAM, _FALSE); +} + +void rtw_ft_roam_status_reset(_adapter *padapter) +{ + struct ft_roam_info *pft_roam = &(padapter->mlmepriv.ft_roam); + + if ((rtw_to_roam(padapter) > 0) && + (!rtw_ft_chk_status(padapter, RTW_FT_REQUESTED_STA))) { + rtw_ft_reset_status(padapter); + } + + padapter->mlmepriv.ft_roam.ft_updated_bcn = _FALSE; +} + +#endif /* CONFIG_RTW_80211R */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_ieee80211.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_ieee80211.c old mode 100644 new mode 100755 index 163edaa4..52d95366 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_ieee80211.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_ieee80211.c @@ -84,6 +84,20 @@ u8 WIFI_OFDMRATES[] = { IEEE80211_OFDM_RATE_54MB }; +const char *MGN_RATE_STR(enum MGN_RATE rate) +{ + u8 hw_rate; + + if (rate == MGN_MCS32) + return "MCS32"; + + hw_rate = MRateToHwRate(rate); + if (hw_rate == DESC_RATE1M && rate != MGN_1M) + hw_rate = DESC_RATE_NUM; /* invalid case */ + + return HDATA_RATE(hw_rate); +} + u8 mgn_rates_cck[4] = {MGN_1M, MGN_2M, MGN_5_5M, MGN_11M}; u8 mgn_rates_ofdm[8] = {MGN_6M, MGN_9M, MGN_12M, MGN_18M, MGN_24M, MGN_36M, MGN_48M, MGN_54M}; u8 mgn_rates_mcs0_7[8] = {MGN_MCS0, MGN_MCS1, MGN_MCS2, MGN_MCS3, MGN_MCS4, MGN_MCS5, MGN_MCS6, MGN_MCS7}; @@ -252,7 +266,7 @@ u8 *rtw_set_ie ( u8 *pbuf, sint index, - uint len, + uint len, /* IE content length, not entire IE length */ const u8 *source, uint *frlen /* frame length */ ) @@ -270,6 +284,15 @@ u8 *rtw_set_ie return pbuf + len + 2; } +u8 *rtw_set_ie_tpc_report(u8 *buf, u32 *buf_len, u8 tx_power, u8 link_margin) +{ + u8 ie_data[2]; + + ie_data[0] = tx_power; + ie_data[1] = link_margin; + return rtw_set_ie(buf, WLAN_EID_TPC_REPORT, 2, ie_data, buf_len); +} + inline u8 *rtw_set_ie_ch_switch(u8 *buf, u32 *buf_len, u8 ch_switch_mode, u8 new_ch, u8 ch_switch_cnt) { @@ -399,6 +422,61 @@ u8 *rtw_get_ie_ex(const u8 *in_ie, uint in_len, u8 eid, const u8 *oui, u8 oui_le return (u8 *)target_ie; } +/** + * rtw_ies_update_ie - Find matching IEs and update it + * + * @ies: address of IEs to search + * @ies_len: address of length of ies, will update to new length + * @offset: the offset to start scarch + * @eid: element ID to match + * @content: new content will update to matching element + * @content_len: length of new content + * Returns: _SUCCESS: ies is updated, _FAIL: not updated + */ +u8 rtw_ies_update_ie(u8 *ies, uint *ies_len, uint ies_offset, u8 eid, const u8 *content, u8 content_len) +{ + u8 ret = _FAIL; + u8 *target_ie; + u32 target_ielen; + u8 *start, *remain_ies = NULL, *backup_ies = NULL; + uint search_len, remain_len = 0; + sint offset; + + if (ies == NULL || *ies_len == 0 || *ies_len <= ies_offset) + goto exit; + + start = ies + ies_offset; + search_len = *ies_len - ies_offset; + + target_ie = rtw_get_ie(start, eid, &target_ielen, search_len); + if (target_ie && target_ielen) { + if (target_ielen != content_len) { + remain_ies = target_ie + 2 + target_ielen; + remain_len = search_len - (remain_ies - start); + + backup_ies = rtw_malloc(remain_len); + if (!backup_ies) + goto exit; + + _rtw_memcpy(backup_ies, remain_ies, remain_len); + } + + _rtw_memcpy(target_ie + 2, content, content_len); + *(target_ie + 1) = content_len; + ret = _SUCCESS; + + if (target_ielen != content_len) { + remain_ies = target_ie + 2 + content_len; + _rtw_memcpy(remain_ies, backup_ies, remain_len); + rtw_mfree(backup_ies, remain_len); + offset = content_len - target_ielen; + *ies_len = *ies_len + offset; + } + } +exit: + return ret; +} + /** * rtw_ies_remove_ie - Find matching IEs and remove * @ies: Address of IEs to search @@ -523,17 +601,24 @@ u8 rtw_update_rate_bymode(WLAN_BSSID_EX *pbss_network, u32 mode) pbss_network->IELength -= ie_len; } network_type = WIRELESS_11B; - } else if ((mode & WIRELESS_11B) == 0) { - /* Remove CCK in support_rate IE */ - rtw_filter_suppport_rateie(pbss_network, OFDM); - if (pbss_network->Configuration.DSConfig > 14) + } else { + if (pbss_network->Configuration.DSConfig > 14) { + /* Remove CCK in support_rate IE */ + rtw_filter_suppport_rateie(pbss_network, OFDM); network_type = WIRELESS_11A; - else - network_type = WIRELESS_11G; - } else - network_type = WIRELESS_11BG; /* do nothing */ + } else { + if ((mode & WIRELESS_11B) == 0) { + /* Remove CCK in support_rate IE */ + rtw_filter_suppport_rateie(pbss_network, OFDM); + network_type = WIRELESS_11G; + } else { + network_type = WIRELESS_11BG; + } + } + } rtw_set_supported_rate(pbss_network->SupportedRates, network_type); + return network_type; } @@ -854,6 +939,7 @@ int rtw_parse_wpa_ie(u8 *wpa_ie, int wpa_ie_len, int *group_cipher, int rtw_rsne_info_parse(const u8 *ie, uint ie_len, struct rsne_info *info) { const u8 *pos = ie; + u16 ver; u16 cnt; _rtw_memset(info, 0, sizeof(struct rsne_info)); @@ -863,7 +949,13 @@ int rtw_rsne_info_parse(const u8 *ie, uint ie_len, struct rsne_info *info) if (*ie != WLAN_EID_RSN || *(ie + 1) != ie_len - 2) goto err; - pos += 2 + 2; + pos += 2; + + /* Version */ + ver = RTW_GET_LE16(pos); + if(1 != ver) + goto err; + pos += 2; /* Group CS */ if (ie + ie_len < pos + 4) { @@ -925,11 +1017,8 @@ int rtw_rsne_info_parse(const u8 *ie, uint ie_len, struct rsne_info *info) } cnt = RTW_GET_LE16(pos); pos += 2; - if (ie + ie_len < pos + 16 * cnt) { - if (ie + ie_len != pos) - goto err; - goto exit; - } + if (ie + ie_len < pos + 16 * cnt) + goto err; info->pmkid_cnt = cnt; info->pmkid_list = (u8 *)pos; pos += 16 * cnt; @@ -969,8 +1058,10 @@ int rtw_parse_wpa2_ie(u8 *rsn_ie, int rsn_ie_len, int *group_cipher, if (pairwise_cipher) { *pairwise_cipher = 0; - for (i = 0; i < info.pcs_cnt; i++) - *pairwise_cipher |= rtw_get_rsn_cipher_suite(info.pcs_list + 4 * i); + if (info.pcs_list) { + for (i = 0; i < info.pcs_cnt; i++) + *pairwise_cipher |= rtw_get_rsn_cipher_suite(info.pcs_list + 4 * i); + } } if (gmcs) { @@ -982,8 +1073,10 @@ int rtw_parse_wpa2_ie(u8 *rsn_ie, int rsn_ie_len, int *group_cipher, if (akm) { *akm = 0; - for (i = 0; i < info.akm_cnt; i++) - *akm |= rtw_get_akm_suite_bitmap(info.akm_list + 4 * i); + if (info.akm_list) { + for (i = 0; i < info.akm_cnt; i++) + *akm |= rtw_get_akm_suite_bitmap(info.akm_list + 4 * i); + } } if (mfp_opt) { @@ -991,7 +1084,7 @@ int rtw_parse_wpa2_ie(u8 *rsn_ie, int rsn_ie_len, int *group_cipher, if (info.cap) *mfp_opt = GET_RSN_CAP_MFP_OPTION(info.cap); } - + if (spp_opt) { *spp_opt = 0; if (info.cap) @@ -1244,6 +1337,7 @@ u8 *rtw_get_wps_attr(u8 *wps_ie, uint wps_ielen, u16 target_attr_id , u8 *buf_at * @wps_ielen: Length limit from wps_ie * @target_attr_id: The attribute ID of WPS attribute to search * @buf_content: If not NULL and the WPS attribute is found, WPS attribute content will be copied to the buf starting from buf_content + * If len_content is NULL, only copy one byte. * @len_content: If not NULL and the WPS attribute is found, will set to the length of the WPS attribute content * * Returns: the address of the specific WPS attribute content found, or NULL @@ -1253,21 +1347,26 @@ u8 *rtw_get_wps_attr_content(u8 *wps_ie, uint wps_ielen, u16 target_attr_id , u8 u8 *attr_ptr; u32 attr_len; - if (len_content) - *len_content = 0; - attr_ptr = rtw_get_wps_attr(wps_ie, wps_ielen, target_attr_id, NULL, &attr_len); if (attr_ptr && attr_len) { - if (buf_content) - _rtw_memcpy(buf_content, attr_ptr + 4, attr_len - 4); + if (len_content) { + if ((buf_content && (*len_content > (attr_len - 4))) || !buf_content) + *len_content = attr_len - 4; + } - if (len_content) - *len_content = attr_len - 4; + if (len_content && buf_content) { + _rtw_memcpy(buf_content, attr_ptr + 4, *len_content); + } else if (buf_content) { + _rtw_memcpy(buf_content, attr_ptr + 4, 1); + } return attr_ptr + 4; } + if (len_content) + *len_content = 0; + return NULL; } @@ -1327,6 +1426,102 @@ u8 *rtw_get_owe_ie(const u8 *in_ie, uint in_len, u8 *owe_ie, uint *owe_ielen) return (u8 *)oweie_ptr; } +/* Add extended capabilities element infomation into ext_cap_data of driver */ +void rtw_add_ext_cap_info(u8 *ext_cap_data, u8 *ext_cap_data_len, u8 cap_info) +{ + u8 byte_offset = cap_info >> 3; + u8 bit_offset = cap_info % 8; + + ext_cap_data[byte_offset] |= BIT(bit_offset); + + /* Enlarge the length of EXT_CAP_IE */ + if (byte_offset + 1 > *ext_cap_data_len) + *ext_cap_data_len = byte_offset + 1; + + #ifdef DBG_EXT_CAP_IE + RTW_INFO("%s : cap_info = %u, byte_offset = %u, bit_offset = %u, ext_cap_data_len = %u\n", \ + __func__, cap_info, byte_offset, bit_offset, *ext_cap_data_len); + #endif +} + +/* Remvoe extended capabilities element infomation from ext_cap_data of driver */ +void rtw_remove_ext_cap_info(u8 *ext_cap_data, u8 *ext_cap_data_len, u8 cap_info) +{ + u8 byte_offset = cap_info >> 3; + u8 bit_offset = cap_info % 8; + u8 i, max_len = 0; + + ext_cap_data[byte_offset] &= (~BIT(bit_offset)); + + /* Reduce the length of EXT_CAP_IE */ + for (i = 0; i < WLAN_EID_EXT_CAP_MAX_LEN; i++) { + if (ext_cap_data[i] != 0x0) + max_len = i + 1; + } + *ext_cap_data_len = max_len; + + #ifdef DBG_EXT_CAP_IE + RTW_INFO("%s : cap_info = %u, byte_offset = %u, bit_offset = %u, ext_cap_data_len = %u\n", \ + __func__, cap_info, byte_offset, bit_offset, *ext_cap_data_len); + #endif +} + +/** + * rtw_update_ext_cap_ie - add/update/remove the extended capabilities element of frame + * + * @ext_cap_data: from &(mlme_priv->ext_capab_ie_data) + * @ext_cap_data_len: length of ext_cap_data + * @ies: address of ies, e.g. pnetwork->IEs + * @ies_len: address of length of ies, e.g. &(pnetwork->IELength) + * @ies_offset: offset of ies, e.g. _BEACON_IE_OFFSET_ + */ +u8 rtw_update_ext_cap_ie(u8 *ext_cap_data, u8 ext_cap_data_len, u8 *ies, u32 *ies_len, u8 ies_offset) +{ + u8 *extcap_ie; + uint extcap_len_field = 0; + uint ie_len = 0; + + if (ext_cap_data_len != 0) { + extcap_ie = rtw_get_ie(ies + ies_offset, WLAN_EID_EXT_CAP, &extcap_len_field, *ies_len - ies_offset); + + if (extcap_ie == NULL) { + rtw_set_ie(ies + *ies_len, WLAN_EID_EXT_CAP, ext_cap_data_len, ext_cap_data, &ie_len); + *ies_len += ie_len; + } else { + rtw_ies_update_ie(ies, ies_len, ies_offset, WLAN_EID_EXT_CAP, ext_cap_data, ext_cap_data_len); + } + } else { + rtw_ies_remove_ie(ies, ies_len, ies_offset, WLAN_EID_EXT_CAP, NULL, 0); + } + + return _SUCCESS; +} + +void rtw_parse_ext_cap_ie(u8 *ext_cap_data, u8 *ext_cap_data_len, u8 *ies, u32 ies_len, u8 ies_offset) +{ + u8 *extcap_ie; + uint extcap_len_field = 0; + u8 i; + + extcap_ie = rtw_get_ie(ies + ies_offset, WLAN_EID_EXT_CAP, &extcap_len_field, ies_len - ies_offset); + + if (extcap_ie != NULL) { + extcap_ie = extcap_ie + 2; /* element id and length filed */ + if (*ext_cap_data_len == 0) { + _rtw_memcpy(ext_cap_data, extcap_ie, extcap_len_field); + *ext_cap_data_len = extcap_len_field; + } else { + for (i = 0; i < extcap_len_field; i++) + ext_cap_data[i] |= extcap_ie[i]; + } + + #ifdef DBG_EXT_CAP_IE + for (i = 0; i < extcap_len_field; i++) + RTW_INFO("%s : Parse extended capabilties[%u] = 0x%x\n", __func__, i, extcap_ie[i]); + #endif + } +} + static int rtw_ieee802_11_parse_vendor_specific(u8 *pos, uint elen, struct rtw_ieee802_11_elems *elems, int show_errors) @@ -1723,7 +1918,7 @@ extern char *rtw_initmac; void rtw_macaddr_cfg(u8 *out, const u8 *hw_mac_addr) { #define DEFAULT_RANDOM_MACADDR 1 - u8 mac[ETH_ALEN]= {0}; + u8 mac[ETH_ALEN]; if (out == NULL) { rtw_warn_on(1); @@ -1773,9 +1968,9 @@ err_chk: _rtw_memcpy(out, mac, ETH_ALEN); RTW_INFO("%s mac addr:"MAC_FMT"\n", __func__, MAC_ARG(out)); - RTW_INFO(" %s <====\n", __func__); } +#ifdef CONFIG_RTW_DEBUG #ifdef CONFIG_80211N_HT void dump_ht_cap_ie_content(void *sel, const u8 *buf, u32 buf_len) { @@ -1838,36 +2033,6 @@ void dump_ht_op_ie(void *sel, const u8 *ie, u32 ie_len) } #endif /* CONFIG_80211N_HT */ -void dump_ies(void *sel, const u8 *buf, u32 buf_len) -{ - const u8 *pos = buf; - u8 id, len; - - while (pos - buf + 1 < buf_len) { - id = *pos; - len = *(pos + 1); - - RTW_PRINT_SEL(sel, "%s ID:%u, LEN:%u\n", __FUNCTION__, id, len); -#ifdef CONFIG_80211N_HT - dump_ht_cap_ie(sel, pos, len + 2); - dump_ht_op_ie(sel, pos, len + 2); -#endif -#ifdef CONFIG_80211AC_VHT - dump_vht_cap_ie(sel, pos, len + 2); - dump_vht_op_ie(sel, pos, len + 2); -#endif - dump_wps_ie(sel, pos, len + 2); -#ifdef CONFIG_P2P - dump_p2p_ie(sel, pos, len + 2); -#ifdef CONFIG_WFD - dump_wfd_ie(sel, pos, len + 2); -#endif -#endif - - pos += (2 + len); - } -} - void dump_wps_ie(void *sel, const u8 *ie, u32 ie_len) { const u8 *pos = ie; @@ -1892,6 +2057,41 @@ void dump_wps_ie(void *sel, const u8 *ie, u32 ie_len) pos += (4 + len); } } +#endif /* CONFIG_RTW_DEBUG */ +void dump_ies(void *sel, const u8 *buf, u32 buf_len) +{ +#ifdef CONFIG_RTW_DEBUG + const u8 *pos = buf; + u8 id, len; + + while (pos - buf + 1 < buf_len) { + id = *pos; + len = *(pos + 1); + + RTW_PRINT_SEL(sel, "%s ID:%u, LEN:%u\n", __FUNCTION__, id, len); +#ifdef CONFIG_80211N_HT + dump_ht_cap_ie(sel, pos, len + 2); + dump_ht_op_ie(sel, pos, len + 2); +#endif +#ifdef CONFIG_80211AC_VHT + dump_vht_cap_ie(sel, pos, len + 2); + dump_vht_op_ie(sel, pos, len + 2); +#endif + dump_wps_ie(sel, pos, len + 2); +#ifdef CONFIG_P2P + dump_p2p_ie(sel, pos, len + 2); +#ifdef CONFIG_WFD + dump_wfd_ie(sel, pos, len + 2); +#endif +#endif +#ifdef CONFIG_RTW_MULTI_AP + dump_multi_ap_ie(sel, pos, len + 2); +#endif + + pos += (2 + len); + } +#endif /* CONFIG_RTW_DEBUG */ +} /** * rtw_ies_get_chbw - get operation ch, bw, offset from IEs of BSS. @@ -2073,6 +2273,7 @@ void rtw_sync_chbw(u8 *req_ch, u8 *req_bw, u8 *req_offset } } +#ifdef CONFIG_P2P /** * rtw_get_p2p_merged_len - Get merged ie length from muitiple p2p ies. * @in_ie: Pointer of the first p2p ie @@ -2281,6 +2482,7 @@ u8 *rtw_get_p2p_attr(u8 *p2p_ie, uint p2p_ielen, u8 target_attr_id , u8 *buf_att * @p2p_ielen: Length limit from p2p_ie * @target_attr_id: The attribute ID of P2P attribute to search * @buf_content: If not NULL and the P2P attribute is found, P2P attribute content will be copied to the buf starting from buf_content + * If len_content is NULL, only copy one byte. * @len_content: If not NULL and the P2P attribute is found, will set to the length of the P2P attribute content * * Returns: the address of the specific P2P attribute content found, or NULL @@ -2290,21 +2492,26 @@ u8 *rtw_get_p2p_attr_content(u8 *p2p_ie, uint p2p_ielen, u8 target_attr_id , u8 u8 *attr_ptr; u32 attr_len; - if (len_content) - *len_content = 0; - attr_ptr = rtw_get_p2p_attr(p2p_ie, p2p_ielen, target_attr_id, NULL, &attr_len); if (attr_ptr && attr_len) { - if (buf_content) - _rtw_memcpy(buf_content, attr_ptr + 3, attr_len - 3); + if (len_content) { + if ((buf_content && (*len_content > (attr_len - 3))) || !buf_content) + *len_content = attr_len - 3; + } - if (len_content) - *len_content = attr_len - 3; + if (len_content && buf_content) { + _rtw_memcpy(buf_content, attr_ptr + 3, *len_content); + } else if (buf_content) { + _rtw_memcpy(buf_content, attr_ptr + 3, 1); + } return attr_ptr + 3; } + if (len_content) + *len_content = 0; + return NULL; } @@ -2482,31 +2689,7 @@ void rtw_bss_ex_del_p2p_attr(WLAN_BSSID_EX *bss_ex, u8 attr_id) break; } } - -void dump_wfd_ie(void *sel, const u8 *ie, u32 ie_len) -{ - const u8 *pos = ie; - u8 id; - u16 len; - - const u8 *wfd_ie; - uint wfd_ielen; - - wfd_ie = rtw_get_wfd_ie(ie, ie_len, NULL, &wfd_ielen); - if (wfd_ie != ie || wfd_ielen == 0) - return; - - pos += 6; - while (pos - ie + 3 <= ie_len) { - id = *pos; - len = RTW_GET_BE16(pos + 1); - - RTW_PRINT_SEL(sel, "%s ID:%u, LEN:%u%s\n", __func__, id, len - , ((pos - ie + 3 + len) <= ie_len) ? "" : "(exceed ie_len)"); - - pos += (3 + len); - } -} +#endif /* CONFIG_P2P */ /** * rtw_get_wfd_ie - Search WFD IE from a series of IEs @@ -2562,6 +2745,84 @@ u8 *rtw_get_wfd_ie(const u8 *in_ie, int in_len, u8 *wfd_ie, uint *wfd_ielen) return (u8 *)wfd_ie_ptr; } +uint rtw_del_wfd_ie(u8 *ies, uint ies_len_ori, const char *msg) +{ +#define DBG_DEL_WFD_IE 0 + + u8 *target_ie; + u32 target_ie_len; + uint ies_len = ies_len_ori; + int index = 0; + + while (1) { + target_ie = rtw_get_wfd_ie(ies, ies_len, NULL, &target_ie_len); + if (target_ie && target_ie_len) { + u8 *next_ie = target_ie + target_ie_len; + uint remain_len = ies_len - (next_ie - ies); + + if (DBG_DEL_WFD_IE && msg) { + RTW_INFO("%s %d before\n", __func__, index); + dump_ies(RTW_DBGDUMP, ies, ies_len); + + RTW_INFO("ies:%p, ies_len:%u\n", ies, ies_len); + RTW_INFO("target_ie:%p, target_ie_len:%u\n", target_ie, target_ie_len); + RTW_INFO("next_ie:%p, remain_len:%u\n", next_ie, remain_len); + } + + _rtw_memmove(target_ie, next_ie, remain_len); + _rtw_memset(target_ie + remain_len, 0, target_ie_len); + ies_len -= target_ie_len; + + if (DBG_DEL_WFD_IE && msg) { + RTW_INFO("%s %d after\n", __func__, index); + dump_ies(RTW_DBGDUMP, ies, ies_len); + } + + index++; + } else + break; + } + + return ies_len; +} + +void rtw_bss_ex_del_wfd_ie(WLAN_BSSID_EX *bss_ex) +{ +#define DBG_BSS_EX_DEL_WFD_IE 0 + u8 *ies = BSS_EX_TLV_IES(bss_ex); + uint ies_len_ori = BSS_EX_TLV_IES_LEN(bss_ex); + uint ies_len; + + ies_len = rtw_del_wfd_ie(ies, ies_len_ori, DBG_BSS_EX_DEL_WFD_IE ? __func__ : NULL); + bss_ex->IELength -= ies_len_ori - ies_len; +} + +#ifdef CONFIG_WFD +void dump_wfd_ie(void *sel, const u8 *ie, u32 ie_len) +{ + const u8 *pos = ie; + u8 id; + u16 len; + + const u8 *wfd_ie; + uint wfd_ielen; + + wfd_ie = rtw_get_wfd_ie(ie, ie_len, NULL, &wfd_ielen); + if (wfd_ie != ie || wfd_ielen == 0) + return; + + pos += 6; + while (pos - ie + 3 <= ie_len) { + id = *pos; + len = RTW_GET_BE16(pos + 1); + + RTW_PRINT_SEL(sel, "%s ID:%u, LEN:%u%s\n", __func__, id, len + , ((pos - ie + 3 + len) <= ie_len) ? "" : "(exceed ie_len)"); + + pos += (3 + len); + } +} + /** * rtw_get_wfd_attr - Search a specific WFD attribute from a given WFD IE * @wfd_ie: Address of WFD IE to search @@ -2652,47 +2913,6 @@ u8 *rtw_get_wfd_attr_content(u8 *wfd_ie, uint wfd_ielen, u8 target_attr_id, u8 * return NULL; } -uint rtw_del_wfd_ie(u8 *ies, uint ies_len_ori, const char *msg) -{ -#define DBG_DEL_WFD_IE 0 - - u8 *target_ie; - u32 target_ie_len; - uint ies_len = ies_len_ori; - int index = 0; - - while (1) { - target_ie = rtw_get_wfd_ie(ies, ies_len, NULL, &target_ie_len); - if (target_ie && target_ie_len) { - u8 *next_ie = target_ie + target_ie_len; - uint remain_len = ies_len - (next_ie - ies); - - if (DBG_DEL_WFD_IE && msg) { - RTW_INFO("%s %d before\n", __func__, index); - dump_ies(RTW_DBGDUMP, ies, ies_len); - - RTW_INFO("ies:%p, ies_len:%u\n", ies, ies_len); - RTW_INFO("target_ie:%p, target_ie_len:%u\n", target_ie, target_ie_len); - RTW_INFO("next_ie:%p, remain_len:%u\n", next_ie, remain_len); - } - - _rtw_memmove(target_ie, next_ie, remain_len); - _rtw_memset(target_ie + remain_len, 0, target_ie_len); - ies_len -= target_ie_len; - - if (DBG_DEL_WFD_IE && msg) { - RTW_INFO("%s %d after\n", __func__, index); - dump_ies(RTW_DBGDUMP, ies, ies_len); - } - - index++; - } else - break; - } - - return ies_len; -} - uint rtw_del_wfd_attr(u8 *ie, uint ielen_ori, u8 attr_id) { #define DBG_DEL_WFD_ATTR 0 @@ -2740,17 +2960,6 @@ inline u8 *rtw_bss_ex_get_wfd_ie(WLAN_BSSID_EX *bss_ex, u8 *wfd_ie, uint *wfd_ie return rtw_get_wfd_ie(BSS_EX_TLV_IES(bss_ex), BSS_EX_TLV_IES_LEN(bss_ex), wfd_ie, wfd_ielen); } -void rtw_bss_ex_del_wfd_ie(WLAN_BSSID_EX *bss_ex) -{ -#define DBG_BSS_EX_DEL_WFD_IE 0 - u8 *ies = BSS_EX_TLV_IES(bss_ex); - uint ies_len_ori = BSS_EX_TLV_IES_LEN(bss_ex); - uint ies_len; - - ies_len = rtw_del_wfd_ie(ies, ies_len_ori, DBG_BSS_EX_DEL_WFD_IE ? __func__ : NULL); - bss_ex->IELength -= ies_len_ori - ies_len; -} - void rtw_bss_ex_del_wfd_attr(WLAN_BSSID_EX *bss_ex, u8 attr_id) { #define DBG_BSS_EX_DEL_WFD_ATTR 0 @@ -2808,6 +3017,79 @@ void rtw_bss_ex_del_wfd_attr(WLAN_BSSID_EX *bss_ex, u8 attr_id) break; } } +#endif /* CONFIG_WFD */ + +#ifdef CONFIG_RTW_MULTI_AP +void dump_multi_ap_ie(void *sel, const u8 *ie, u32 ie_len) +{ + const u8 *pos = ie; + u8 id; + u8 len; + + const u8 *multi_ap_ie; + uint multi_ap_ielen; + + multi_ap_ie = rtw_get_ie_ex(ie, ie_len, WLAN_EID_VENDOR_SPECIFIC, MULTI_AP_OUI, 4, NULL, &multi_ap_ielen); + if (multi_ap_ie != ie || multi_ap_ielen == 0) + return; + + pos += 6; + while (pos - ie + 2 <= ie_len) { + id = *pos; + len = *(pos + 1); + + RTW_PRINT_SEL(sel, "%s ID:%u, LEN:%u%s\n", __func__, id, len + , ((pos - ie + 2 + len) <= ie_len) ? "" : "(exceed ie_len)"); + RTW_DUMP_SEL(sel, pos + 2, len); + + pos += (2 + len); + } +} + +/** + * rtw_get_multi_ap_ext - Search Multi-AP IE from a series of IEs and return extension subelement value + * @ies: Address of IEs to search + * @ies_len: Length limit from in_ie + * + * Returns: The address of the target IE found, or NULL + */ +u8 rtw_get_multi_ap_ie_ext(const u8 *ies, int ies_len) +{ + u8 *ie; + uint ielen; + u8 val = 0; + + ie = rtw_get_ie_ex(ies, ies_len, WLAN_EID_VENDOR_SPECIFIC, MULTI_AP_OUI, 4, NULL, &ielen); + if (ielen < 9) + goto exit; + + if (ie[6] != MULTI_AP_SUB_ELEM_TYPE) + goto exit; + + val = ie[8]; + +exit: + return val; +} + +u8 *rtw_set_multi_ap_ie_ext(u8 *pbuf, uint *frlen, u8 val) +{ + u8 cont_len = 7; + + *pbuf++ = WLAN_EID_VENDOR_SPECIFIC; + *pbuf++ = cont_len; + _rtw_memcpy(pbuf, MULTI_AP_OUI, 4); + pbuf += 4; + *pbuf++ = MULTI_AP_SUB_ELEM_TYPE; + *pbuf++ = 1; /* len */ + *pbuf++ = val; + + if (frlen) + *frlen = *frlen + (cont_len + 2); + + return pbuf; +} +#endif /* CONFIG_RTW_MULTI_AP */ /* Baron adds to avoid FreeBSD warning */ int ieee80211_is_empty_essid(const char *essid, int essid_len) @@ -2963,6 +3245,23 @@ u16 rtw_ht_mcs_rate(u8 bw_40MHz, u8 short_GI, unsigned char *MCS_rate) return max_rate; } +u8 rtw_ht_cap_get_rx_nss(u8 *ht_cap) +{ + u8 *ht_mcs_set = HT_CAP_ELE_SUP_MCS_SET(ht_cap); + + return rtw_ht_mcsset_to_nss(ht_mcs_set); +} + +u8 rtw_ht_cap_get_tx_nss(u8 *ht_cap) +{ + u8 *ht_mcs_set = HT_CAP_ELE_SUP_MCS_SET(ht_cap); + + if (GET_HT_CAP_ELE_TX_MCS_DEF(ht_cap) && GET_HT_CAP_ELE_TRX_MCS_NEQ(ht_cap)) + return GET_HT_CAP_ELE_TX_MAX_SS(ht_cap) + 1; + + return rtw_ht_cap_get_rx_nss(ht_cap); +} + int rtw_action_frame_parse(const u8 *frame, u32 frame_len, u8 *category, u8 *action) { const u8 *frame_body = frame + sizeof(struct rtw_ieee80211_hdr_3addr); @@ -2995,23 +3294,41 @@ int rtw_action_frame_parse(const u8 *frame, u32 frame_len, u8 *category, u8 *act } static const char *_action_public_str[] = { - "ACT_PUB_BSSCOEXIST", - "ACT_PUB_DSE_ENABLE", - "ACT_PUB_DSE_DEENABLE", - "ACT_PUB_DSE_REG_LOCATION", - "ACT_PUB_EXT_CHL_SWITCH", - "ACT_PUB_DSE_MSR_REQ", - "ACT_PUB_DSE_MSR_RPRT", - "ACT_PUB_MP", - "ACT_PUB_DSE_PWR_CONSTRAINT", - "ACT_PUB_VENDOR", - "ACT_PUB_GAS_INITIAL_REQ", - "ACT_PUB_GAS_INITIAL_RSP", - "ACT_PUB_GAS_COMEBACK_REQ", - "ACT_PUB_GAS_COMEBACK_RSP", - "ACT_PUB_TDLS_DISCOVERY_RSP", - "ACT_PUB_LOCATION_TRACK", - "ACT_PUB_RSVD", + [ACT_PUBLIC_BSSCOEXIST] = "ACT_PUB_BSSCOEXIST", + [ACT_PUBLIC_DSE_ENABLE] = "ACT_PUB_DSE_ENABLE", + [ACT_PUBLIC_DSE_DEENABLE] = "ACT_PUB_DSE_DEENABLE", + [ACT_PUBLIC_DSE_REG_LOCATION] = "ACT_PUB_DSE_REG_LOCATION", + [ACT_PUBLIC_EXT_CHL_SWITCH] = "ACT_PUB_EXT_CHL_SWITCH", + [ACT_PUBLIC_DSE_MSR_REQ] = "ACT_PUB_DSE_MSR_REQ", + [ACT_PUBLIC_DSE_MSR_RPRT] = "ACT_PUB_DSE_MSR_RPRT", + [ACT_PUBLIC_MP] = "ACT_PUB_MP", + [ACT_PUBLIC_DSE_PWR_CONSTRAINT] = "ACT_PUB_DSE_PWR_CONSTRAINT", + [ACT_PUBLIC_VENDOR] = "ACT_PUB_VENDOR", + [ACT_PUBLIC_GAS_INITIAL_REQ] = "ACT_PUB_GAS_INITIAL_REQ", + [ACT_PUBLIC_GAS_INITIAL_RSP] = "ACT_PUB_GAS_INITIAL_RSP", + [ACT_PUBLIC_GAS_COMEBACK_REQ] = "ACT_PUB_GAS_COMEBACK_REQ", + [ACT_PUBLIC_GAS_COMEBACK_RSP] = "ACT_PUB_GAS_COMEBACK_RSP", + [ACT_PUBLIC_TDLS_DISCOVERY_RSP] = "ACT_PUB_TDLS_DISCOVERY_RSP", + [ACT_PUBLIC_LOCATION_TRACK] = "ACT_PUB_LOCATION_TRACK", + [ACT_PUBLIC_QAB_REQ] = "ACT_PUB_QAB_REQ", + [ACT_PUBLIC_QAB_RSP] = "ACT_PUB_QAB_RSP", + [ACT_PUBLIC_QMF_POLICY] = "ACT_PUB_QMF_POLICY", + [ACT_PUBLIC_QMF_POLICY_CHANGE] = "ACT_PUB_QMF_POLICY_CHANGE", + [ACT_PUBLIC_QLOAD_REQ] = "ACT_PUB_QLOAD_REQ", + [ACT_PUBLIC_QLOAD_REPORT] = "ACT_PUB_QLOAD_REPORT", + [ACT_PUBLIC_HCCA_TXOP_ADV] = "ACT_PUB_HCCA_TXOP_ADV", + [ACT_PUBLIC_HCCA_TXOP_RSP] = "ACT_PUB_HCCA_TXOP_RSP", + [ACT_PUBLIC_PUBLIC_KEY] = "ACT_PUB_PUBLIC_KEY", + [ACT_PUBLIC_CH_AVAILABILITY_QUERY] = "ACT_PUB_CH_AVAILABILITY_QUERY", + [ACT_PUBLIC_CH_SCHEDULE_MGMT] = "ACT_PUB_CH_SCHEDULE_MGMT", + [ACT_PUBLIC_CONTACT_VERI_SIGNAL] = "ACT_PUB_CONTACT_VERI_SIGNAL", + [ACT_PUBLIC_GDD_ENABLE_REQ] = "ACT_PUB_GDD_ENABLE_REQ", + [ACT_PUBLIC_GDD_ENABLE_RSP] = "ACT_PUB_GDD_ENABLE_RSP", + [ACT_PUBLIC_NETWORK_CH_CONTROL] = "ACT_PUB_NETWORK_CH_CONTROL", + [ACT_PUBLIC_WHITE_SPACE_MAP_ANN] = "ACT_PUB_WHITE_SPACE_MAP_ANN", + [ACT_PUBLIC_FTM_REQ] = "ACT_PUB_FTM_REQ", + [ACT_PUBLIC_FTM] = "ACT_PUB_FTM", + [ACT_PUBLIC_MAX] = "ACT_PUB_RSVD", }; const char *action_public_str(u8 action) @@ -3070,4 +3387,3 @@ u8 rtw_check_amsdu_disable(u8 mode, u8 spp_opt) return ret; } - diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_io.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_io.c index 7a2be91e..c5e2fa08 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_io.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_io.c @@ -443,7 +443,6 @@ int rtw_init_io_priv(_adapter *padapter, void (*set_intf_ops)(_adapter *padapter struct io_priv *piopriv = &padapter->iopriv; struct intf_hdl *pintf = &piopriv->intf; - RTW_INFO(" ====> %s\n", __func__); if (set_intf_ops == NULL) return _FAIL; @@ -453,7 +452,6 @@ int rtw_init_io_priv(_adapter *padapter, void (*set_intf_ops)(_adapter *padapter set_intf_ops(padapter, &pintf->io_ops); - RTW_INFO(" %s <====\n", __func__); return _SUCCESS; } @@ -548,6 +546,12 @@ const struct rtw_io_sniff_ent write_sniff[] = { RTW_IO_SNIFF_EN_ENT(MAX_CHIP_TYPE, RTW_USB, 0x02, 0x1E0, 1, "USB 0x02[8:5] not all 0"), RTW_IO_SNIFF_EN_ENT(MAX_CHIP_TYPE, RTW_PCIE, 0x02, 0x01C, 1, "PCI 0x02[4:2] not all 0"), #endif +#ifdef DBG_IO_SIFS_SETTING + RTW_IO_SNIFF_RANGE_ENT(MAX_CHIP_TYPE, 0, 0x428, 0x429, 0, "SIFS"), + RTW_IO_SNIFF_RANGE_ENT(MAX_CHIP_TYPE, 0, 0x514, 0x517, 0, "SIFS"), + RTW_IO_SNIFF_RANGE_ENT(MAX_CHIP_TYPE, 0, 0x63a, 0x63b, 0, "SIFS"), + RTW_IO_SNIFF_RANGE_ENT(MAX_CHIP_TYPE, 0, 0x63c, 0x63f, 0, "SIFS"), +#endif #ifdef DBG_IO_8822C_1TX_PATH_EN RTW_IO_SNIFF_VALUE_ENT(RTL8822C, 0, 0x1a04, 0xc0000000, 0x02, 1, 0, "write tx_path_en_cck A enabled"), RTW_IO_SNIFF_VALUE_ENT(RTL8822C, 0, 0x1a04, 0xc0000000, 0x01, 1, 0, "write tx_path_en_cck B enabled"), diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_ioctl_set.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_ioctl_set.c index f06321bb..35bf6c3c 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_ioctl_set.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_ioctl_set.c @@ -27,7 +27,7 @@ extern void indicate_wx_scan_complete_event(_adapter *padapter); (addr[4] == 0xff) && (addr[5] == 0xff)) ? _TRUE : _FALSE \ ) -u8 rtw_validate_bssid(u8 *bssid) +u8 rtw_validate_bssid(const u8 *bssid) { u8 ret = _TRUE; @@ -137,10 +137,20 @@ u8 rtw_do_join(_adapter *padapter) _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL); select_ret = rtw_select_and_join_from_scanned_queue(pmlmepriv); if (select_ret == _SUCCESS) { + u32 join_timeout = MAX_JOIN_TIMEOUT; + +#if defined(CONFIG_CONCURRENT_MODE) && defined(CONFIG_AP_MODE) + struct rf_ctl_t *rfctl; + rfctl = adapter_to_rfctl(padapter); + if (rfctl->ap_csa_en == CSA_STA_JOINBSS) + join_timeout += (rfctl->ap_csa_switch_cnt * 100); +#endif + pmlmepriv->to_join = _FALSE; - _set_timer(&pmlmepriv->assoc_timer, MAX_JOIN_TIMEOUT); + _set_timer(&pmlmepriv->assoc_timer, join_timeout); } else { if (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) == _TRUE) { + #ifdef CONFIG_AP_MODE /* submit createbss_cmd to change to a ADHOC_MASTER */ /* pmlmepriv->lock has been acquired by caller... */ @@ -164,8 +174,7 @@ u8 rtw_do_join(_adapter *padapter) } pmlmepriv->to_join = _FALSE; - - + #endif /* CONFIG_AP_MODE */ } else { /* can't associate ; reset under-linking */ _clr_fwstate_(pmlmepriv, WIFI_UNDER_LINKING); @@ -373,7 +382,7 @@ exit: } u8 rtw_set_802_11_connect(_adapter *padapter, - u8 *bssid, NDIS_802_11_SSID *ssid, u16 ch) + const u8 *bssid, NDIS_802_11_SSID *ssid, u16 ch) { _irqL irqL; u8 status = _SUCCESS; @@ -654,7 +663,7 @@ u8 rtw_set_acs_sitesurvey(_adapter *adapter) center_chs_num = center_chs_2g_num; center_chs = center_chs_2g; } else - #ifdef CONFIG_IEEE80211_BAND_5GHZ + #if CONFIG_IEEE80211_BAND_5GHZ if (band == BAND_ON_5G) { center_chs_num = center_chs_5g_num; center_chs = center_chs_5g; @@ -671,7 +680,7 @@ u8 rtw_set_acs_sitesurvey(_adapter *adapter) if (rfctl->ch_sel_within_same_band) { if (rtw_is_2g_ch(uch) && band != BAND_ON_2_4G) continue; - #ifdef CONFIG_IEEE80211_BAND_5GHZ + #if CONFIG_IEEE80211_BAND_5GHZ if (rtw_is_5g_ch(uch) && band != BAND_ON_5G) continue; #endif @@ -880,10 +889,14 @@ int rtw_set_scan_mode(_adapter *adapter, RT_SCAN_TYPE scan_mode) * * Return _SUCCESS or _FAIL */ -int rtw_set_channel_plan(_adapter *adapter, u8 channel_plan) +int rtw_set_channel_plan(_adapter *adapter, u8 channel_plan, u8 chplan_6g, enum rtw_regd_inr inr) { - /* handle by cmd_thread to sync with scan operation */ - return rtw_set_chplan_cmd(adapter, RTW_CMDF_WAIT_ACK, channel_plan, 1); + struct registry_priv *regsty = adapter_to_regsty(adapter); + + if (!REGSTY_REGD_SRC_FROM_OS(regsty)) + return rtw_set_chplan_cmd(adapter, RTW_CMDF_WAIT_ACK, channel_plan, chplan_6g, inr); + RTW_WARN("%s(): not applied\n", __func__); + return _SUCCESS; } /* @@ -893,14 +906,16 @@ int rtw_set_channel_plan(_adapter *adapter, u8 channel_plan) * * Return _SUCCESS or _FAIL */ -int rtw_set_country(_adapter *adapter, const char *country_code) +int rtw_set_country(_adapter *adapter, const char *country_code, enum rtw_regd_inr inr) { #ifdef CONFIG_RTW_IOCTL_SET_COUNTRY - return rtw_set_country_cmd(adapter, RTW_CMDF_WAIT_ACK, country_code, 1); -#else - RTW_INFO("%s(): not applied\n", __func__); - return _SUCCESS; + struct registry_priv *regsty = adapter_to_regsty(adapter); + + if (!REGSTY_REGD_SRC_FROM_OS(regsty)) + return rtw_set_country_cmd(adapter, RTW_CMDF_WAIT_ACK, country_code, inr); #endif + RTW_WARN("%s(): not applied\n", __func__); + return _SUCCESS; } /* diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_iol.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_iol.c index 6063ea6f..714a3f44 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_iol.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_iol.c @@ -24,7 +24,7 @@ struct xmit_frame *rtw_IOL_accquire_xmit_frame(ADAPTER *adapter) struct xmit_priv *pxmitpriv = &(adapter->xmitpriv); #if 1 - xmit_frame = rtw_alloc_xmitframe(pxmitpriv); + xmit_frame = rtw_alloc_xmitframe(pxmitpriv, 0); if (xmit_frame == NULL) { RTW_INFO("%s rtw_alloc_xmitframe return null\n", __FUNCTION__); goto exit; diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_mbo.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_mbo.c new file mode 100755 index 00000000..9aba825f --- /dev/null +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_mbo.c @@ -0,0 +1,805 @@ +/****************************************************************************** + * + * Copyright(c) 2007 - 2017 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License 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. + * + *****************************************************************************/ + +#include +#include + +#ifdef CONFIG_RTW_MBO + +#ifndef RTW_MBO_DBG +#define RTW_MBO_DBG 0 +#endif +#if RTW_MBO_DBG + #define RTW_MBO_INFO(fmt, arg...) \ + RTW_INFO(fmt, arg) + #define RTW_MBO_DUMP(str, data, len) \ + RTW_INFO_DUMP(str, data, len) +#else + #define RTW_MBO_INFO(fmt, arg...) do {} while (0) + #define RTW_MBO_DUMP(str, data, len) do {} while (0) +#endif + +/* Cellular Data Connectivity field + * 1 : Cellular data connection available + * 2 : Cellular data connection not available + * 3 : Not Cellular data capable + * otherwise : Reserved +*/ +int rtw_mbo_cell_data_conn = 2; +module_param(rtw_mbo_cell_data_conn, int, 0644); + +static u8 wfa_mbo_oui[] = {0x50, 0x6F, 0x9A, 0x16}; + +#define rtw_mbo_get_oui(p) ((u8 *)(p) + 2) + +#define rtw_mbo_get_attr_id(p) ((u8 *)(p)) + +#define rtw_mbo_get_disallow_res(p) ((u8 *)(p) + 3) + +#define rtw_mbo_set_1byte_ie(p, v, l) \ + rtw_set_fixed_ie((p), 1, (v), (l)) + +#define rtw_mbo_set_4byte_ie(p, v, l) \ + rtw_set_fixed_ie((p), 4, (v), (l)) + +#define rtw_mbo_set_nbyte_ie(p, sz, v, l) \ + rtw_set_fixed_ie((p), (sz), (v), (l)) + +#define rtw_mbo_subfield_set(p, offset, val) (*(p + offset) = val) + +#define rtw_mbo_subfields_set(p, offset, buf, len) \ + do { \ + u32 _offset = 0; \ + u8 *_p = p + offset; \ + while(_offset < len) { \ + *(_p + _offset) = *(buf + _offset); \ + _offset++; \ + } \ + } while(0) + +static u8 *rtw_mbo_ie_get(u8 *pie, u32 *plen, u32 limit) +{ + const u8 *p = pie; + u32 tmp, i; + + if (limit <= 1) + return NULL; + + i = 0; + *plen = 0; + while (1) { + if ((*p == _VENDOR_SPECIFIC_IE_) && + (_rtw_memcmp(rtw_mbo_get_oui(p), wfa_mbo_oui, 4))) { + *plen = *(p + 1); + RTW_MBO_DUMP("VENDOR_SPECIFIC_IE MBO: ", p, *(p + 1)); + return (u8 *)p; + } else { + tmp = *(p + 1); + p += (tmp + 2); + i += (tmp + 2); + } + + if (i >= limit) + break; + } + + return NULL; +} + +static u8 *rtw_mbo_attrs_get(u8 *pie, u32 limit, u8 attr_id, u32 *attr_len) +{ + u8 *p = NULL; + u32 offset, plen = 0; + + if ((pie == NULL) || (limit <= 1)) + goto exit; + + if ((p = rtw_mbo_ie_get(pie, &plen, limit)) == NULL) + goto exit; + + /* shift 2 + OUI size and move to attributes content */ + p = p + 2 + sizeof(wfa_mbo_oui); + plen = plen - 4; + RTW_MBO_DUMP("Attributes contents: ", p, plen); + + if ((p = rtw_get_ie(p, attr_id, attr_len, plen)) == NULL) + goto exit; + + RTW_MBO_INFO("%s : id=%u(len=%u)\n", __func__, attr_id, *attr_len); + RTW_MBO_DUMP("contents : ", p, *attr_len); + +exit: + return p; + +} + +static u32 rtw_mbo_attr_sz_get( + _adapter *padapter, u8 id) +{ + u32 len = 0; + + switch (id) { + case RTW_MBO_ATTR_NPREF_CH_RPT_ID: + { + struct rf_ctl_t *prfctl = adapter_to_rfctl(padapter); + struct npref_ch_rtp *prpt = &(prfctl->ch_rtp); + struct npref_ch* pch; + u32 i, attr_len, offset; + + for (i=0; i < prpt->nm_of_rpt; i++) { + pch = &prpt->ch_rpt[i]; + /*attr_len = ch list + op class + preference + reason */ + attr_len = pch->nm_of_ch + 3; + /* offset = id + len field + attr_len */ + offset = attr_len + 2; + len += offset; + } + } + break; + case RTW_MBO_ATTR_CELL_DATA_CAP_ID: + case RTW_MBO_ATTR_TRANS_REJ_ID: + len = 3; + break; + default: + break; + } + + return len; +} + +static void rtw_mbo_build_mbo_ie_hdr( + u8 **pframe, struct pkt_attrib *pattrib, u8 payload_len) +{ + u8 eid = RTW_MBO_EID; + u8 len = payload_len + 4; + + *pframe = rtw_mbo_set_1byte_ie(*pframe, &eid, &(pattrib->pktlen)); + *pframe = rtw_mbo_set_1byte_ie(*pframe, &len, &(pattrib->pktlen)); + *pframe = rtw_mbo_set_4byte_ie(*pframe, wfa_mbo_oui, &(pattrib->pktlen)); +} + +void rtw_mbo_build_cell_data_cap_attr( + _adapter *padapter, u8 **pframe, struct pkt_attrib *pattrib) +{ + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + u8 attr_id = RTW_MBO_ATTR_CELL_DATA_CAP_ID; + u8 attr_len = 1; + u8 cell_data_con = rtw_mbo_cell_data_conn; + + /* used Cellular Data Capabilities from supplicant */ + if (!rtw_mbo_wifi_logo_test(padapter) && + pmlmepriv->pcell_data_cap_ie && pmlmepriv->cell_data_cap_len == 1) { + cell_data_con = *pmlmepriv->pcell_data_cap_ie; + RTW_MBO_INFO("%s : used Cellular Data Capabilities(%u) from supplicant!\n", + __func__, *pmlmepriv->pcell_data_cap_ie); + } + + *pframe = rtw_mbo_set_1byte_ie(*pframe, &attr_id, &(pattrib->pktlen)); + *pframe = rtw_mbo_set_1byte_ie(*pframe, &attr_len, &(pattrib->pktlen)); + *pframe = rtw_mbo_set_1byte_ie(*pframe, &cell_data_con, &(pattrib->pktlen)); +} + +static void rtw_mbo_update_cell_data_cap( + _adapter *padapter, u8 *pie, u32 ie_len) +{ + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + u8 *mbo_attr; + u32 mbo_attrlen; + + if ((pie == NULL) || (ie_len == 0)) + return; + + mbo_attr = rtw_mbo_attrs_get(pie, ie_len, + RTW_MBO_ATTR_CELL_DATA_CAP_ID, &mbo_attrlen); + + if ((mbo_attr == NULL) || (mbo_attrlen == 0) ) { + RTW_INFO("MBO : Cellular Data Capabilities not found!\n"); + return; + } + + rtw_buf_update(&pmlmepriv->pcell_data_cap_ie, + &pmlmepriv->cell_data_cap_len, (mbo_attr + 2), mbo_attrlen); + RTW_MBO_DUMP("rtw_mbo_update_cell_data_cap : ", + pmlmepriv->pcell_data_cap_ie, pmlmepriv->cell_data_cap_len); +} + +void rtw_mbo_update_ie_data( + _adapter *padapter, u8 *pie, u32 ie_len) +{ + rtw_mbo_update_cell_data_cap(padapter, pie, ie_len); +} + +static u8 rtw_mbo_current_op_class_get(_adapter *padapter) +{ + struct rf_ctl_t *prfctl = adapter_to_rfctl(padapter); + struct p2p_channels *pch_list = &(prfctl->channel_list); + struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); + struct p2p_reg_class *preg_class; + int class_idx, ch_idx; + u8 cur_op_class = 0; + + for(class_idx =0; class_idx < pch_list->reg_classes; class_idx++) { + preg_class = &pch_list->reg_class[class_idx]; + for (ch_idx = 0; ch_idx <= preg_class->channels; ch_idx++) { + if (pmlmeext->cur_channel == preg_class->channel[ch_idx]) { + cur_op_class = preg_class->reg_class; + RTW_MBO_INFO("%s : current ch : %d, op class : %d\n", + __func__, pmlmeext->cur_channel, cur_op_class); + break; + } + } + } + + return cur_op_class; +} + +static void rtw_mbo_supp_op_classes_get(_adapter *padapter, u8 *pclasses) +{ + struct rf_ctl_t *prfctl = adapter_to_rfctl(padapter); + struct p2p_channels *pch_list = &(prfctl->channel_list); + int class_idx; + + if (pclasses == NULL) + return; + + RTW_MBO_INFO("%s : support op class \n", __func__); + for(class_idx = 0; class_idx < pch_list->reg_classes; class_idx++) { + *(pclasses + class_idx) = pch_list->reg_class[class_idx].reg_class; + RTW_MBO_INFO("%u ,", *(pclasses + class_idx)); + } + + RTW_MBO_INFO("%s : \n", __func__); +} + +void rtw_mbo_build_supp_op_class_elem( + _adapter *padapter, u8 **pframe, struct pkt_attrib *pattrib) +{ + struct rf_ctl_t *prfctl = adapter_to_rfctl(padapter); + u8 payload[32] = {0}; + u8 delimiter_130 = 130; /*0x82*/ + u8 reg_class_nm, len; + + if ((reg_class_nm = prfctl->channel_list.reg_classes) == 0) + return; + + payload[0] = rtw_mbo_current_op_class_get(padapter); + rtw_mbo_supp_op_classes_get(padapter, &payload[1]); + + /* IEEE 802.11 Std Current Operating Class Extension Sequence */ + payload[reg_class_nm + 1] = delimiter_130; + payload[reg_class_nm + 2] = 0x00; + + RTW_MBO_DUMP("op class :", payload, reg_class_nm); + + /* Current Operating Class field + Operating Class field + + OneHundredAndThirty Delimiter field */ + len = reg_class_nm + 3; + *pframe = rtw_set_ie(*pframe, EID_SupRegulatory, len , + payload, &(pattrib->pktlen)); +} + +static u8 rtw_mbo_construct_npref_ch_rpt_attr( + _adapter *padapter, u8 *pbuf, u32 buf_len, u32 *plen) +{ + struct rf_ctl_t *prfctl = adapter_to_rfctl(padapter); + struct npref_ch_rtp *prpt = &(prfctl->ch_rtp); + struct npref_ch* pch; + u32 attr_len, offset; + int i; + u8 *p = pbuf; + + if (prpt->nm_of_rpt == 0) { + *plen = 0; + return _FALSE; + } + + for (i=0; i < prpt->nm_of_rpt; i++) { + pch = &prpt->ch_rpt[i]; + /* attr_len = ch list + op class + preference + reason */ + attr_len = pch->nm_of_ch + 3; + /* offset = id + len field + attr_len */ + offset = attr_len + 2; + rtw_mbo_subfield_set(p, 0, RTW_MBO_ATTR_NPREF_CH_RPT_ID); + rtw_mbo_subfield_set(p, 1, attr_len); + rtw_mbo_subfield_set(p, 2, pch->op_class); + rtw_mbo_subfields_set(p, 3, pch->chs, pch->nm_of_ch); + rtw_mbo_subfield_set(p, (offset - 2), pch->preference); + rtw_mbo_subfield_set(p, (offset - 1), pch->reason); + p += offset; + *plen += offset; + + if (*plen >= buf_len) { + RTW_ERR("MBO : construct non-preferred channel report fail!\n"); + return _FALSE; + } + } + + return _TRUE; +} + +void rtw_mbo_build_npref_ch_rpt_attr( + _adapter *padapter, u8 **pframe, struct pkt_attrib *pattrib) +{ + struct rf_ctl_t *prfctl = adapter_to_rfctl(padapter); + struct npref_ch_rtp *prpt = &(prfctl->ch_rtp); + u32 tmp_sz = 0, body_len = 0; + u8 *ptmp; + + tmp_sz = prpt->nm_of_rpt * sizeof(struct npref_ch); + ptmp = rtw_zmalloc(tmp_sz); + if (ptmp == NULL) + return; + + if (rtw_mbo_construct_npref_ch_rpt_attr(padapter, ptmp, tmp_sz, &body_len) == _FALSE) { + rtw_mfree(ptmp, tmp_sz); + return; + } + + RTW_MBO_DUMP("Non-preferred Channel Report :", ptmp, body_len); + *pframe = rtw_mbo_set_nbyte_ie(*pframe, body_len, ptmp, &(pattrib->pktlen)); + + rtw_mfree(ptmp, tmp_sz); +} + +void rtw_mbo_build_trans_reject_reason_attr( + _adapter *padapter, u8 **pframe, struct pkt_attrib *pattrib, u8 *pres) +{ + u8 attr_id = RTW_MBO_ATTR_TRANS_REJ_ID; + u8 attr_len = 1; + u32 len = 0; + + len = rtw_mbo_attr_sz_get(padapter, RTW_MBO_ATTR_TRANS_REJ_ID); + if ((len == 0) || (len > 3)) { + RTW_ERR("MBO : build Transition Rejection Reason attribute fail(len=%u)\n", len); + return; + } + + rtw_mbo_build_mbo_ie_hdr(pframe, pattrib, len); + *pframe = rtw_mbo_set_1byte_ie(*pframe, &attr_id, &(pattrib->pktlen)); + *pframe = rtw_mbo_set_1byte_ie(*pframe, &attr_len, &(pattrib->pktlen)); + *pframe = rtw_mbo_set_1byte_ie(*pframe, pres, &(pattrib->pktlen)); +} + +u8 rtw_mbo_disallowed_network(struct wlan_network *pnetwork) +{ + u8 *p, *attr_id, *res; + u32 attr_len = 0; + u8 disallow = _FALSE; + + if (pnetwork == NULL) + goto exit; + + p = rtw_mbo_attrs_get(pnetwork->network.IEs, + pnetwork->network.IELength, + RTW_MBO_ATTR_ASSOC_DISABLED_ID, + &attr_len); + + if (p == NULL) { + RTW_MBO_INFO("%s :Assoc Disallowed attribute not found!\n",__func__); + goto exit; + } + + RTW_MBO_DUMP("Association Disallowed attribute :",p , attr_len + 2); + RTW_INFO("MBO : block "MAC_FMT" assoc disallowed reason %d\n", + MAC_ARG(pnetwork->network.MacAddress), *(rtw_mbo_get_disallow_res(p))); + + disallow = _TRUE; +exit: + return disallow; +} + +void rtw_mbo_build_exented_cap( + _adapter *padapter, u8 **pframe, struct pkt_attrib *pattrib) +{ + u8 content[8] = { 0 }; + + rtw_wnm_set_ext_cap_btm(content, 1); + rtw_mbo_set_ext_cap_internw(content, 1); + *pframe = rtw_set_ie(*pframe, + WLAN_EID_EXT_CAP, + 8, + content, + &(pattrib->pktlen)); +} + +static void rtw_mbo_non_pref_chans_dump(struct npref_ch* pch) +{ + int i; + u8 buf[128] = {0}; + + for (i=0; i < pch->nm_of_ch; i++) + rtw_sprintf(buf, 128, "%s,%d", buf, pch->chs[i]); + + RTW_MBO_INFO("%s : op_class=%01x, ch=%s, preference=%d, reason=%d\n", + __func__, pch->op_class, buf, pch->preference, pch->reason); +} + +static u8 rtw_mbo_non_pref_chan_exist(struct npref_ch* pch, u8 ch) +{ + u32 i; + u8 found = _FALSE; + + for (i=0; i < pch->nm_of_ch; i++) { + if (pch->chs[i] == ch) { + found = _TRUE; + break; + } + } + + return found; +} + +static struct npref_ch* rtw_mbo_non_pref_chan_get( + _adapter *padapter, u8 op_class, u8 prefe, u8 res) +{ + struct rf_ctl_t *prfctl = adapter_to_rfctl(padapter); + struct npref_ch_rtp *prpt = &(prfctl->ch_rtp); + struct npref_ch* pch = NULL; + int i; + + if (prpt->nm_of_rpt == 0) + return pch; + + for (i=0; i < prpt->nm_of_rpt; i++) { + if ((prpt->ch_rpt[i].op_class == op_class) && + (prpt->ch_rpt[i].preference == prefe) && + (prpt->ch_rpt[i].reason == res)) { + pch = &prpt->ch_rpt[i]; + break; + } + } + + return pch; +} + +static void rtw_mbo_non_pref_chan_set( + struct npref_ch* pch, u8 op_class, u8 ch, u8 prefe, u8 res, u8 update) +{ + u32 offset = pch->nm_of_ch; + + if (update) { + if (rtw_mbo_non_pref_chan_exist(pch, ch) == _FALSE) { + pch->chs[offset] = ch; + pch->nm_of_ch++; + } + } else { + pch->op_class = op_class; + pch->chs[0] = ch; + pch->preference = prefe; + pch->reason = res; + pch->nm_of_ch = 1; + } +} + +static void rtw_mbo_non_pref_chans_update( + _adapter *padapter, u8 op_class, u8 ch, u8 prefe, u8 res) +{ + struct rf_ctl_t *prfctl = adapter_to_rfctl(padapter); + struct npref_ch_rtp *pch_rpt = &(prfctl->ch_rtp); + struct npref_ch* pch; + + if (pch_rpt->nm_of_rpt >= RTW_MBO_MAX_CH_RPT_NUM) { + RTW_ERR("MBO : %d non_pref_chan entries supported!", + RTW_MBO_MAX_CH_RPT_NUM); + return; + } + + if (pch_rpt->nm_of_rpt == 0) { + pch = &pch_rpt->ch_rpt[0]; + rtw_mbo_non_pref_chan_set(pch, op_class, ch, prefe, res, _FALSE); + pch_rpt->nm_of_rpt = 1; + return; + } + + pch = rtw_mbo_non_pref_chan_get(padapter, op_class, prefe, res); + if (pch == NULL) { + pch = &pch_rpt->ch_rpt[pch_rpt->nm_of_rpt]; + rtw_mbo_non_pref_chan_set(pch, op_class, ch, prefe, res, _FALSE); + pch_rpt->nm_of_rpt++; + } else + rtw_mbo_non_pref_chan_set(pch, op_class, ch, prefe, res, _TRUE); + + rtw_mbo_non_pref_chans_dump(pch); +} + +static void rtw_mbo_non_pref_chans_set( + _adapter *padapter, char *param, ssize_t sz) +{ + char *pnext; + u32 op_class, ch, prefe, res; + int i = 0; + + do { + pnext = strsep(¶m, " "); + if (pnext == NULL) + break; + + sscanf(pnext, "%d:%d:%d:%d", &op_class, &ch, &prefe, &res); + rtw_mbo_non_pref_chans_update(padapter, op_class, ch, prefe, res); + + if ((i++) > 10) { + RTW_ERR("MBO : overflow %d \n", i); + break; + } + + } while(param); + +} + +static void rtw_mbo_non_pref_chans_del( + _adapter *padapter, char *param, ssize_t sz) +{ + struct rf_ctl_t *prfctl = adapter_to_rfctl(padapter); + struct npref_ch_rtp *prpt = &(prfctl->ch_rtp); + + RTW_INFO("%s : delete non_pref_chan %s\n", __func__, param); + _rtw_memset(prpt, 0, sizeof(struct npref_ch_rtp)); +} + +ssize_t rtw_mbo_proc_non_pref_chans_set( + struct file *pfile, const char __user *buffer, + size_t count, loff_t *pos, void *pdata) +{ + struct net_device *dev = pdata; + _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); + struct mlme_priv *pmlmepriv = &padapter->mlmepriv; + u8 tmp[128] = {0}; + + if (count < 1) + return -EFAULT; + + if (count > sizeof(tmp)) { + rtw_warn_on(1); + return -EFAULT; + } + + if (buffer && !copy_from_user(tmp, buffer, count)) { + if (strncmp(tmp, "add", 3) == 0) + rtw_mbo_non_pref_chans_set(padapter, &tmp[4], (count - 4)); + else if (strncmp(tmp, "delete", 6) == 0) + rtw_mbo_non_pref_chans_del(padapter, &tmp[7], (count - 7)); + else { + RTW_ERR("MBO : Invalid format : echo [add|delete] :::\n"); + return -EFAULT; + } + } + +#ifdef CONFIG_RTW_WNM + if (check_fwstate(pmlmepriv, WIFI_ASOC_STATE) && + check_fwstate(pmlmepriv, WIFI_STATION_STATE)) + rtw_wnm_issue_action(padapter, RTW_WLAN_ACTION_WNM_NOTIF_REQ, 0, 0); +#endif + + return count; +} + +int rtw_mbo_proc_non_pref_chans_get( + struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); + struct rf_ctl_t *prfctl = adapter_to_rfctl(padapter); + struct npref_ch_rtp *prpt = &(prfctl->ch_rtp); + struct npref_ch* pch; + int i,j; + u8 buf[32] = {0}; + + RTW_PRINT_SEL(m, "op_class ch preference reason \n"); + RTW_PRINT_SEL(m, "=======================================================\n"); + + + if (prpt->nm_of_rpt == 0) { + RTW_PRINT_SEL(m, " empty table \n"); + return 0; + } + + for (i=0; i < prpt->nm_of_rpt; i++) { + pch = &prpt->ch_rpt[i]; + buf[0]='\0'; + for (j=0; j < pch->nm_of_ch; j++) { + if (j == 0) + rtw_sprintf(buf, 32, "%02u", pch->chs[j]); + else + rtw_sprintf(buf, 32, "%s,%02u", buf, pch->chs[j]); + } + + RTW_PRINT_SEL(m, " %04u %20s %02u %02u\n", + pch->op_class, buf, pch->preference, pch->reason); + } + + return 0; +} + +ssize_t rtw_mbo_proc_cell_data_set( + struct file *pfile, const char __user *buffer, + size_t count, loff_t *pos, void *pdata) +{ + struct net_device *dev = pdata; + _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); + struct mlme_priv *pmlmepriv = &padapter->mlmepriv; + int mbo_cell_data = 0; + u8 tmp[8] = {0}; + + if (count < 1) + return -EFAULT; + + if (count > sizeof(tmp)) + return -EFAULT; + + if (buffer && !copy_from_user(tmp, buffer, count)) { + int num = sscanf(tmp, "%d", &mbo_cell_data); + if (num == 1) { + rtw_mbo_cell_data_conn = mbo_cell_data; + #ifdef CONFIG_RTW_WNM + if (check_fwstate(pmlmepriv, WIFI_ASOC_STATE) && + check_fwstate(pmlmepriv, WIFI_STATION_STATE)) + rtw_wnm_issue_action(padapter, RTW_WLAN_ACTION_WNM_NOTIF_REQ, 0, 0); + #endif + } + } + + + return count; +} + +int rtw_mbo_proc_cell_data_get( + struct seq_file *m, void *v) +{ +#if 0 + struct net_device *dev = m->private; + _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); +#endif + + RTW_PRINT_SEL(m, "Cellular Data Connectivity : %d\n", rtw_mbo_cell_data_conn); + return 0; +} + +static void rtw_mbo_non_pref_chan_subelem_parsing( + _adapter *padapter, u8 *subelem, size_t subelem_len) +{ + u8 *pnon_pref_chans; + u32 non_pref_chan_offset, op_subelem_len; + u32 oui_offset = 3; + /* wpa_supplicant don't apped OUI Type */ + u32 oui_type_offset = 0; + + RTW_MBO_DUMP("Non-preferred Channel subelem : ", subelem , subelem_len); + + /* Subelem : + Vendor Specific | Length | WFA OUI | OUI Type | MBO Attributes */ + non_pref_chan_offset = 2 + oui_offset + oui_type_offset; + pnon_pref_chans = subelem + non_pref_chan_offset; + op_subelem_len = subelem_len - non_pref_chan_offset; + + /* wpa_supplicant don't indicate non_pref_chan length, + so we cannot get how many non_pref_chan in a wnm notification */ + RTW_MBO_DUMP("Non-preferred Channel : ", pnon_pref_chans, op_subelem_len); +} + +void rtw_mbo_wnm_notification_parsing( + _adapter *padapter, const u8 *pdata, size_t data_len) +{ + u8 *paction; + u8 category, action, dialog, type; + u32 len; + + if ((pdata == NULL) || (data_len == 0)) + return; + + RTW_MBO_DUMP("WNM notification data : ", pdata, data_len); + paction = (u8 *)pdata + sizeof(struct rtw_ieee80211_hdr_3addr); + category = paction[0]; + action = paction[1]; + dialog = paction[2]; + type = paction[3]; + + if ((action == RTW_WLAN_ACTION_WNM_NOTIF_REQ) && + (type == WLAN_EID_VENDOR_SPECIFIC)) { + rtw_mbo_non_pref_chan_subelem_parsing(padapter, &paction[4], + (data_len - sizeof(struct rtw_ieee80211_hdr_3addr))); + } + +} + +void rtw_mbo_build_wnm_notification( + _adapter *padapter, u8 **pframe, struct pkt_attrib *pattrib) +{ + struct rf_ctl_t *prfctl = adapter_to_rfctl(padapter); + struct npref_ch_rtp *prpt = &(prfctl->ch_rtp); + struct npref_ch* pch; + u8 subelem_id = WLAN_EID_VENDOR_SPECIFIC; + u8 non_pref_ch_oui[] = {0x50, 0x6F, 0x9A, 0x2}; + u8 cell_data_cap_oui[] = {0x50, 0x6F, 0x9A, 0x3}; + u8 cell_data_con = rtw_mbo_cell_data_conn; + u8 len, cell_data_con_len = 0, *pcont = *pframe; + int i; + + if (rtw_mbo_cell_data_conn > 0) { + len = 0x5; + *pframe = rtw_mbo_set_1byte_ie(*pframe, &subelem_id, &(pattrib->pktlen)); + *pframe = rtw_mbo_set_1byte_ie(*pframe, &len, &(pattrib->pktlen)); + *pframe = rtw_mbo_set_4byte_ie(*pframe, cell_data_cap_oui, &(pattrib->pktlen)); + *pframe = rtw_mbo_set_1byte_ie(*pframe, &cell_data_con, &(pattrib->pktlen)); + RTW_MBO_INFO("%s : Cellular Data Capabilities subelemen\n", __func__); + RTW_MBO_DUMP(":", pcont, len + 2); + pcont += len + 2 ; + } + + if (prpt->nm_of_rpt == 0) { + len = 0x4; + *pframe = rtw_mbo_set_1byte_ie(*pframe, &subelem_id, &(pattrib->pktlen)); + *pframe = rtw_mbo_set_1byte_ie(*pframe, &len, &(pattrib->pktlen)); + *pframe = rtw_mbo_set_4byte_ie(*pframe, non_pref_ch_oui, &(pattrib->pktlen)); + RTW_MBO_INFO("%s :Non-preferred Channel Report subelement without data\n", __func__); + return; + } + + for (i=0; i < prpt->nm_of_rpt; i++) { + pch = &prpt->ch_rpt[i]; + /* OUI(3B) + OUT-type(1B) + op-class(1B) + ch list(nB) + + Preference(1B) + reason(1B) */ + len = pch->nm_of_ch + 7; + *pframe = rtw_mbo_set_1byte_ie(*pframe, &subelem_id, &(pattrib->pktlen)); + *pframe = rtw_mbo_set_1byte_ie(*pframe, &len, &(pattrib->pktlen)); + *pframe = rtw_mbo_set_4byte_ie(*pframe, non_pref_ch_oui, &(pattrib->pktlen)); + *pframe = rtw_mbo_set_1byte_ie(*pframe, &pch->op_class, &(pattrib->pktlen)); + *pframe = rtw_mbo_set_nbyte_ie(*pframe, pch->nm_of_ch, pch->chs, &(pattrib->pktlen)); + *pframe = rtw_mbo_set_1byte_ie(*pframe, &pch->preference, &(pattrib->pktlen)); + *pframe = rtw_mbo_set_1byte_ie(*pframe, &pch->reason, &(pattrib->pktlen)); + RTW_MBO_INFO("%s :Non-preferred Channel Report subelement\n", __func__); + RTW_MBO_DUMP(":", pcont, len); + pcont = *pframe; + } +} + +void rtw_mbo_build_probe_req_ies( + _adapter *padapter, u8 **pframe, struct pkt_attrib *pattrib) +{ + u32 len =0; + + rtw_mbo_build_exented_cap(padapter, pframe, pattrib); + + len = rtw_mbo_attr_sz_get(padapter, RTW_MBO_ATTR_CELL_DATA_CAP_ID); + if ((len == 0) || (len > 3)) { + RTW_ERR("MBO : build Cellular Data Capabilities attribute fail(len=%u)\n", len); + return; + } + + rtw_mbo_build_mbo_ie_hdr(pframe, pattrib, len); + rtw_mbo_build_cell_data_cap_attr(padapter, pframe, pattrib); +} + +void rtw_mbo_build_assoc_req_ies( + _adapter *padapter, u8 **pframe, struct pkt_attrib *pattrib) +{ + u32 len = 0; + +#ifndef CONFIG_ECSA + rtw_mbo_build_supp_op_class_elem(padapter, pframe, pattrib); +#endif + + len += rtw_mbo_attr_sz_get(padapter, RTW_MBO_ATTR_CELL_DATA_CAP_ID); + len += rtw_mbo_attr_sz_get(padapter, RTW_MBO_ATTR_NPREF_CH_RPT_ID); + if ((len == 0)|| (len < 3)) { + RTW_ERR("MBO : build assoc MBO IE fail(len=%u)\n", len); + return; + } + + rtw_mbo_build_mbo_ie_hdr(pframe, pattrib, len); + rtw_mbo_build_cell_data_cap_attr(padapter, pframe, pattrib); + rtw_mbo_build_npref_ch_rpt_attr(padapter, pframe, pattrib); +} + +#endif /* CONFIG_RTW_MBO */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_mem.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_mem.c index d9f5652f..d42a4fb0 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_mem.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_mem.c @@ -21,6 +21,49 @@ MODULE_DESCRIPTION("Realtek Wireless Lan Driver"); MODULE_AUTHOR("Realtek Semiconductor Corp."); MODULE_VERSION("DRIVERVERSION"); +/* for MAX_RECVBUF_SZ */ +#if defined(CONFIG_RTL8188E) +#include +#elif defined(CONFIG_RTL8188F) +#include +#elif defined(CONFIG_RTL8188GTV) +#include +#elif defined(CONFIG_RTL8710B) +#include +#elif defined(CONFIG_RTL8192E) +#include +#elif defined(CONFIG_RTL8192F) +#include +#elif defined(CONFIG_RTL8723B) +#include +#elif defined(CONFIG_RTL8703B) +#include +#elif defined(CONFIG_RTL8723D) +#include +#elif defined(CONFIG_RTL8812A) || defined(CONFIG_RTL8821A) +#include +#elif defined(CONFIG_RTL8822B) +#include +#elif defined(CONFIG_RTL8822C) +#include +#elif defined(CONFIG_RTL8814A) +#include +#elif defined(CONFIG_RTL8814B) +#include +#endif + +#if defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI) +#define MAX_RTKM_RECVBUF_SZ MAX_RECVBUF_SZ +#define MAX_RTKM_NR_PREALLOC_RECV_SKB NR_RECVBUFF +#else /* !CONFIG_SDIO_HCI */ +#ifdef CONFIG_PLATFORM_MSTAR_HIGH + #define MAX_RTKM_RECVBUF_SZ (31744) /* 31k */ +#else + #define MAX_RTKM_RECVBUF_SZ (15360) /* 15k */ +#endif /* CONFIG_PLATFORM_MSTAR_HIGH */ +#define MAX_RTKM_NR_PREALLOC_RECV_SKB 16 +#endif /* !CONFIG_SDIO_HCI */ + struct sk_buff_head rtk_skb_mem_q; struct u8 *rtk_buf_mem[NR_RECVBUFF]; diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_mi.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_mi.c index e803d7fe..3081625e 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_mi.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_mi.c @@ -20,11 +20,15 @@ void rtw_mi_update_union_chan_inf(_adapter *adapter, u8 ch, u8 offset , u8 bw) { struct dvobj_priv *dvobj = adapter_to_dvobj(adapter); - struct mi_state *iface_state = &dvobj->iface_state; - iface_state->union_ch = ch; - iface_state->union_bw = bw; - iface_state->union_offset = offset; + if (!ch) { + dvobj->union_ch_bak = dvobj->union_ch; + dvobj->union_bw_bak = dvobj->union_bw; + dvobj->union_offset_bak = dvobj->union_offset; + } + dvobj->union_ch = ch; + dvobj->union_bw = bw; + dvobj->union_offset = offset; } #ifdef DBG_IFACE_STATUS @@ -183,7 +187,6 @@ inline int rtw_mi_get_ch_setting_union_no_self(_adapter *adapter, u8 *ch, u8 *bw return rtw_mi_get_ch_setting_union_by_ifbmp(adapter_to_dvobj(adapter), 0xFF & ~BIT(adapter->iface_id), ch, bw, offset); } -/* For now, not return union_ch/bw/offset */ void rtw_mi_status_by_ifbmp(struct dvobj_priv *dvobj, u8 ifbmp, struct mi_state *mstate) { _adapter *iface; @@ -259,10 +262,10 @@ void rtw_mi_status_by_ifbmp(struct dvobj_priv *dvobj, u8 ifbmp, struct mi_state #ifdef CONFIG_IOCTL_CFG80211 if (rtw_cfg80211_get_is_mgmt_tx(iface)) MSTATE_MGMT_TX_NUM(mstate)++; - #ifdef CONFIG_P2P + if (rtw_cfg80211_get_is_roch(iface) == _TRUE) MSTATE_ROCH_NUM(mstate)++; - #endif + #endif /* CONFIG_IOCTL_CFG80211 */ #ifdef CONFIG_P2P if (MLME_IS_PD(iface)) @@ -286,7 +289,6 @@ inline void rtw_mi_status_no_others(_adapter *adapter, struct mi_state *mstate) return rtw_mi_status_by_ifbmp(adapter_to_dvobj(adapter), BIT(adapter->iface_id), mstate); } -/* For now, not handle union_ch/bw/offset */ inline void rtw_mi_status_merge(struct mi_state *d, struct mi_state *a) { d->sta_num += a->sta_num; @@ -367,7 +369,6 @@ inline void rtw_mi_update_iface_status(struct mlme_priv *pmlmepriv, sint state) struct dvobj_priv *dvobj = adapter_to_dvobj(adapter); struct mi_state *iface_state = &dvobj->iface_state; struct mi_state tmp_mstate; - u8 u_ch, u_offset, u_bw; if (state == WIFI_MONITOR_STATE || state == 0xFFFFFFFF @@ -380,16 +381,6 @@ inline void rtw_mi_update_iface_status(struct mlme_priv *pmlmepriv, sint state) rtw_mi_status(adapter, &tmp_mstate); _rtw_memcpy(iface_state, &tmp_mstate, sizeof(struct mi_state)); - if (rtw_mi_get_ch_setting_union(adapter, &u_ch, &u_bw, &u_offset)) - rtw_mi_update_union_chan_inf(adapter , u_ch, u_offset , u_bw); - else { - if (0) { - dump_adapters_status(RTW_DBGDUMP , dvobj); - RTW_INFO("%s-[ERROR] cannot get union channel\n", __func__); - rtw_warn_on(1); - } - } - #ifdef DBG_IFACE_STATUS DBG_IFACE_STATUS_DUMP(adapter); #endif @@ -807,10 +798,11 @@ static u8 _rtw_mi_set_scan_deny(_adapter *adapter, void *data) rtw_set_scan_deny(adapter, ms); return _TRUE; } -void rtw_mi_set_scan_deny(_adapter *adapter, u32 ms) +void rtw_mi_set_scan_deny(_adapter *adapter, u32 ms, char *reason) { u32 in_data = ms; + RTW_INFO(ADPT_FMT" - set_scan_deny(%dms) - %s\n", ADPT_ARG(adapter), ms, reason); _rtw_mi_process(adapter, _FALSE, &in_data, _rtw_mi_set_scan_deny); } void rtw_mi_buddy_set_scan_deny(_adapter *adapter, u32 ms) @@ -821,6 +813,7 @@ void rtw_mi_buddy_set_scan_deny(_adapter *adapter, u32 ms) } #endif /*CONFIG_SET_SCAN_DENY_TIMER*/ +#ifdef CONFIG_AP_MODE static u8 _rtw_mi_beacon_update(_adapter *padapter, void *data) { if (!MLME_IS_STA(padapter) @@ -841,6 +834,21 @@ void rtw_mi_buddy_beacon_update(_adapter *padapter) _rtw_mi_process(padapter, _TRUE, NULL, _rtw_mi_beacon_update); } +static u8 _rtw_mi_update_csa(_adapter *adapter, void *data) +{ + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + + if (check_fwstate(&adapter->mlmepriv, WIFI_AP_STATE) == _TRUE) + _update_beacon(adapter, WLAN_EID_CHANNEL_SWITCH, NULL, _TRUE, 0, "update CSA count"); + return _TRUE; +} + +void rtw_mi_update_csa(_adapter *adapter) +{ + _rtw_mi_process(adapter, _FALSE, NULL, _rtw_mi_update_csa); +} +#endif /* CONFIG_AP_MODE */ + #ifndef CONFIG_MI_WITH_MBSSID_CAM static u8 _rtw_mi_hal_dump_macaddr(_adapter *padapter, void *sel) { @@ -1156,7 +1164,7 @@ u8 rtw_mi_sreset_adapter_hdl(_adapter *padapter, u8 bstart) return _rtw_mi_process(padapter, _FALSE, &in_data, _rtw_mi_sreset_adapter_hdl); } -#if defined(DBG_CONFIG_ERROR_RESET) && defined(CONFIG_CONCURRENT_MODE) +#if defined(CONFIG_AP_MODE) && defined(DBG_CONFIG_ERROR_RESET) && defined(CONFIG_CONCURRENT_MODE) void rtw_mi_ap_info_restore(_adapter *adapter) { int i; @@ -1184,6 +1192,8 @@ u8 rtw_mi_buddy_sreset_adapter_hdl(_adapter *padapter, u8 bstart) return _rtw_mi_process(padapter, _TRUE, &in_data, _rtw_mi_sreset_adapter_hdl); } + +#ifdef CONFIG_AP_MODE static u8 _rtw_mi_tx_beacon_hdl(_adapter *adapter, void *data) { if ((MLME_IS_AP(adapter) || MLME_IS_MESH(adapter)) @@ -1225,6 +1235,7 @@ u8 rtw_mi_buddy_set_tx_beacon_cmd(_adapter *padapter) { return _rtw_mi_process(padapter, _TRUE, NULL, _rtw_mi_set_tx_beacon_cmd); } +#endif /* CONFIG_AP_MODE */ #ifdef CONFIG_P2P static u8 _rtw_mi_p2p_chk_state(_adapter *adapter, void *data) @@ -1548,3 +1559,22 @@ u8 rtw_mi_get_assoc_if_num(_adapter *adapter) #endif return n_assoc_iface; } + +_adapter *rtw_mi_get_linking_adapter(_adapter *adapter) +{ + struct dvobj_priv *dvobj = adapter_to_dvobj(adapter); + _adapter *iface = NULL; + u8 i; + + for (i = 0; i < dvobj->iface_nums; i++) { + iface = dvobj->padapters[i]; + if (!iface) + continue; + + if (check_fwstate(&iface->mlmepriv, WIFI_UNDER_LINKING) == _TRUE) + break; + + iface = NULL; + } + return iface; +} diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_mlme.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_mlme.c index 7096bfb1..6621dc50 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_mlme.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_mlme.c @@ -15,6 +15,9 @@ #define _RTW_MLME_C_ #include +#ifdef CONFIG_PLATFORM_CMAP_INTFS +#include "../os_dep/linux/custom_multiap_intfs/custom_multiap_intfs.h" +#endif extern void indicate_wx_scan_complete_event(_adapter *padapter); extern u8 rtw_do_join(_adapter *padapter); @@ -45,6 +48,9 @@ sint _rtw_init_mlme_priv(_adapter *padapter) struct mlme_priv *pmlmepriv = &padapter->mlmepriv; struct rf_ctl_t *rfctl = adapter_to_rfctl(padapter); sint res = _SUCCESS; +#ifdef CONFIG_RTW_MULTI_AP + struct unassoc_sta_info *unassoc_sta; +#endif /* We don't need to memset padapter->XXX to zero, because adapter is allocated by rtw_zvmalloc(). */ @@ -100,6 +106,35 @@ sint _rtw_init_mlme_priv(_adapter *padapter) pnetwork++; } +#ifdef CONFIG_RTW_MULTI_AP + if (is_primary_adapter(padapter)) { + _rtw_init_queue(&(pmlmepriv->free_unassoc_sta_queue)); + _rtw_init_queue(&(pmlmepriv->unassoc_sta_queue)); + for (i = 0; i < UNASOC_STA_SRC_NUM; i++) + pmlmepriv->unassoc_sta_mode_of_stype[i] = padapter->registrypriv.unassoc_sta_mode_of_stype[i]; + if (padapter->registrypriv.max_unassoc_sta_cnt != 0) + pmlmepriv->max_unassoc_sta_cnt = padapter->registrypriv.max_unassoc_sta_cnt; + else if (rfctl->max_chan_nums <= MAX_CHANNEL_NUM_2G) + pmlmepriv->max_unassoc_sta_cnt = MAX_UNASSOC_STA_CNT; + else + pmlmepriv->max_unassoc_sta_cnt = MAX_UNASSOC_STA_CNT * 2; + pbuf = rtw_zvmalloc(pmlmepriv->max_unassoc_sta_cnt * (sizeof(struct unassoc_sta_info))); + if (pbuf == NULL) { + res = _FAIL; + goto exit; + } + pmlmepriv->free_unassoc_sta_buf = pbuf; + unassoc_sta = (struct unassoc_sta_info *) pbuf; + for (i = 0; i < pmlmepriv->max_unassoc_sta_cnt; i++) { + _rtw_init_listhead(&(unassoc_sta->list)); + rtw_list_insert_tail(&(unassoc_sta->list), &(pmlmepriv->free_unassoc_sta_queue.queue)); + unassoc_sta++; + } + } +#ifdef CONFIG_PLATFORM_CMAP_INTFS + rtw_init_timer(&pmlmepriv->cmap_unassoc_sta_timer, padapter, cmap_unassoc_sta_report_info_timer, padapter); +#endif +#endif /* allocate DMA-able/Non-Page memory for cmd_buf and rsp_buf */ rtw_clear_scan_deny(padapter); @@ -110,26 +145,36 @@ sint _rtw_init_mlme_priv(_adapter *padapter) #ifdef CONFIG_LAYER2_ROAMING #define RTW_ROAM_SCAN_RESULT_EXP_MS (5*1000) -#define RTW_ROAM_RSSI_DIFF_TH 10 +#define RTW_ROAM_IDLE_RSSI_DIFF_TH 5 +#define RTW_ROAM_BUSY_RSSI_DIFF_TH 10 #define RTW_ROAM_SCAN_INTERVAL (5) /* 5*(2 second)*/ -#define RTW_ROAM_RSSI_THRESHOLD 70 - - pmlmepriv->roam_flags = 0 - | RTW_ROAM_ON_EXPIRED -#ifdef CONFIG_LAYER2_ROAMING_RESUME - | RTW_ROAM_ON_RESUME -#endif -#ifdef CONFIG_LAYER2_ROAMING_ACTIVE - | RTW_ROAM_ACTIVE -#endif - ; +#define RTW_ROAM_IDLE_RSSI_THRESHOLD 35 +#define RTW_ROAM_BUSY_RSSI_THRESHOLD 30 +#define RTW_ROAM_DICONNECT_DELAY 20 + _rtw_spinlock_init(&pmlmepriv->clnt_auth_lock); + pmlmepriv->roam_flags = CONFIG_ROAMING_FLAG; pmlmepriv->roam_scanr_exp_ms = RTW_ROAM_SCAN_RESULT_EXP_MS; - pmlmepriv->roam_rssi_diff_th = RTW_ROAM_RSSI_DIFF_TH; - pmlmepriv->roam_scan_int = RTW_ROAM_SCAN_INTERVAL; - pmlmepriv->roam_rssi_threshold = RTW_ROAM_RSSI_THRESHOLD; + pmlmepriv->roam_idle_rssi_diff_th = RTW_ROAM_IDLE_RSSI_DIFF_TH; + pmlmepriv->roam_busy_rssi_diff_th = RTW_ROAM_BUSY_RSSI_DIFF_TH; + + pmlmepriv->roam_scan_int = RTW_ROAM_SCAN_INTERVAL; /* 10 sec */ + pmlmepriv->roam_scan_int1 = RTW_ROAM_SCAN_INTERVAL*3; /* 30 sec */ + pmlmepriv->roam_scan_int2 = RTW_ROAM_SCAN_INTERVAL*12; /* 2 min */ + pmlmepriv->roam_scan_int3 = RTW_ROAM_SCAN_INTERVAL*30; /* 5 min */ + + pmlmepriv->roam_scan_round1 = 3; + pmlmepriv->roam_scan_round2 = 6; + pmlmepriv->roam_scan_round3 = 9; + + pmlmepriv->roam_idle_rssi_threshold = RTW_ROAM_IDLE_RSSI_THRESHOLD; + pmlmepriv->roam_busy_rssi_threshold = RTW_ROAM_BUSY_RSSI_THRESHOLD; pmlmepriv->need_to_roam = _FALSE; pmlmepriv->last_roaming = rtw_get_current_time(); + pmlmepriv->roam_act_cnt = pmlmepriv->roam_scan_int; + pmlmepriv->roam_rssi_base = 0; + pmlmepriv->roam_try_cnt = 0; + _rtw_memset(pmlmepriv->roam_from, 0, ETH_ALEN); #endif /* CONFIG_LAYER2_ROAMING */ #ifdef CONFIG_RTW_80211R @@ -138,7 +183,6 @@ sint _rtw_init_mlme_priv(_adapter *padapter) #ifdef CONFIG_LAYER2_ROAMING #if defined(CONFIG_RTW_WNM) || defined(CONFIG_RTW_80211K) rtw_roam_nb_info_init(padapter); - pmlmepriv->ch_cnt = 0; #endif #endif @@ -157,48 +201,54 @@ void rtw_mfree_mlme_priv_lock(struct mlme_priv *pmlmepriv); void rtw_mfree_mlme_priv_lock(struct mlme_priv *pmlmepriv) { _rtw_spinlock_free(&pmlmepriv->lock); +#ifdef CONFIG_LAYER2_ROAMING + _rtw_spinlock_free(&pmlmepriv->clnt_auth_lock); +#endif _rtw_spinlock_free(&(pmlmepriv->free_bss_pool.lock)); _rtw_spinlock_free(&(pmlmepriv->scanned_queue.lock)); -} - -static void rtw_free_mlme_ie_data(u8 **ppie, u32 *plen) -{ - if (*ppie) { - rtw_mfree(*ppie, *plen); - *plen = 0; - *ppie = NULL; +#ifdef CONFIG_RTW_MULTI_AP + if (is_primary_adapter(mlme_to_adapter(pmlmepriv))) { + _rtw_spinlock_free(&(pmlmepriv->unassoc_sta_queue.lock)); + _rtw_spinlock_free(&(pmlmepriv->free_unassoc_sta_queue.lock)); } +#endif } void rtw_free_mlme_priv_ie_data(struct mlme_priv *pmlmepriv) { -#if defined(CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME) rtw_buf_free(&pmlmepriv->assoc_req, &pmlmepriv->assoc_req_len); rtw_buf_free(&pmlmepriv->assoc_rsp, &pmlmepriv->assoc_rsp_len); - rtw_free_mlme_ie_data(&pmlmepriv->wps_beacon_ie, &pmlmepriv->wps_beacon_ie_len); - rtw_free_mlme_ie_data(&pmlmepriv->wps_probe_req_ie, &pmlmepriv->wps_probe_req_ie_len); - rtw_free_mlme_ie_data(&pmlmepriv->wps_probe_resp_ie, &pmlmepriv->wps_probe_resp_ie_len); - rtw_free_mlme_ie_data(&pmlmepriv->wps_assoc_resp_ie, &pmlmepriv->wps_assoc_resp_ie_len); +#ifdef CONFIG_80211D + rtw_buf_free(&pmlmepriv->recv_country_ie, &pmlmepriv->recv_country_ie_len); +#endif +#if defined(CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME) + rtw_buf_free(&pmlmepriv->wps_beacon_ie, &pmlmepriv->wps_beacon_ie_len); + rtw_buf_free(&pmlmepriv->wps_probe_req_ie, &pmlmepriv->wps_probe_req_ie_len); + rtw_buf_free(&pmlmepriv->wps_probe_resp_ie, &pmlmepriv->wps_probe_resp_ie_len); + rtw_buf_free(&pmlmepriv->wps_assoc_resp_ie, &pmlmepriv->wps_assoc_resp_ie_len); - rtw_free_mlme_ie_data(&pmlmepriv->p2p_beacon_ie, &pmlmepriv->p2p_beacon_ie_len); - rtw_free_mlme_ie_data(&pmlmepriv->p2p_probe_req_ie, &pmlmepriv->p2p_probe_req_ie_len); - rtw_free_mlme_ie_data(&pmlmepriv->p2p_probe_resp_ie, &pmlmepriv->p2p_probe_resp_ie_len); - rtw_free_mlme_ie_data(&pmlmepriv->p2p_go_probe_resp_ie, &pmlmepriv->p2p_go_probe_resp_ie_len); - rtw_free_mlme_ie_data(&pmlmepriv->p2p_assoc_req_ie, &pmlmepriv->p2p_assoc_req_ie_len); - rtw_free_mlme_ie_data(&pmlmepriv->p2p_assoc_resp_ie, &pmlmepriv->p2p_assoc_resp_ie_len); + rtw_buf_free(&pmlmepriv->p2p_beacon_ie, &pmlmepriv->p2p_beacon_ie_len); + rtw_buf_free(&pmlmepriv->p2p_probe_req_ie, &pmlmepriv->p2p_probe_req_ie_len); + rtw_buf_free(&pmlmepriv->p2p_probe_resp_ie, &pmlmepriv->p2p_probe_resp_ie_len); + rtw_buf_free(&pmlmepriv->p2p_go_probe_resp_ie, &pmlmepriv->p2p_go_probe_resp_ie_len); + rtw_buf_free(&pmlmepriv->p2p_assoc_req_ie, &pmlmepriv->p2p_assoc_req_ie_len); + rtw_buf_free(&pmlmepriv->p2p_assoc_resp_ie, &pmlmepriv->p2p_assoc_resp_ie_len); #endif #if defined(CONFIG_WFD) && defined(CONFIG_IOCTL_CFG80211) - rtw_free_mlme_ie_data(&pmlmepriv->wfd_beacon_ie, &pmlmepriv->wfd_beacon_ie_len); - rtw_free_mlme_ie_data(&pmlmepriv->wfd_probe_req_ie, &pmlmepriv->wfd_probe_req_ie_len); - rtw_free_mlme_ie_data(&pmlmepriv->wfd_probe_resp_ie, &pmlmepriv->wfd_probe_resp_ie_len); - rtw_free_mlme_ie_data(&pmlmepriv->wfd_go_probe_resp_ie, &pmlmepriv->wfd_go_probe_resp_ie_len); - rtw_free_mlme_ie_data(&pmlmepriv->wfd_assoc_req_ie, &pmlmepriv->wfd_assoc_req_ie_len); - rtw_free_mlme_ie_data(&pmlmepriv->wfd_assoc_resp_ie, &pmlmepriv->wfd_assoc_resp_ie_len); + rtw_buf_free(&pmlmepriv->wfd_beacon_ie, &pmlmepriv->wfd_beacon_ie_len); + rtw_buf_free(&pmlmepriv->wfd_probe_req_ie, &pmlmepriv->wfd_probe_req_ie_len); + rtw_buf_free(&pmlmepriv->wfd_probe_resp_ie, &pmlmepriv->wfd_probe_resp_ie_len); + rtw_buf_free(&pmlmepriv->wfd_go_probe_resp_ie, &pmlmepriv->wfd_go_probe_resp_ie_len); + rtw_buf_free(&pmlmepriv->wfd_assoc_req_ie, &pmlmepriv->wfd_assoc_req_ie_len); + rtw_buf_free(&pmlmepriv->wfd_assoc_resp_ie, &pmlmepriv->wfd_assoc_resp_ie_len); #endif #ifdef CONFIG_RTW_80211R - rtw_free_mlme_ie_data(&pmlmepriv->auth_rsp, &pmlmepriv->auth_rsp_len); + rtw_buf_free(&pmlmepriv->auth_rsp, &pmlmepriv->auth_rsp_len); +#endif +#ifdef CONFIG_RTW_MBO + rtw_buf_free(&pmlmepriv->pcell_data_cap_ie, &pmlmepriv->cell_data_cap_len); #endif } @@ -313,6 +363,15 @@ void _rtw_free_mlme_priv(struct mlme_priv *pmlmepriv) if (pmlmepriv->free_bss_buf) rtw_vmfree(pmlmepriv->free_bss_buf, pmlmepriv->max_bss_cnt * sizeof(struct wlan_network)); +#ifdef CONFIG_RTW_MULTI_AP + if (is_primary_adapter(adapter)) { + if (pmlmepriv->free_unassoc_sta_buf) + rtw_vmfree(pmlmepriv->free_unassoc_sta_buf, pmlmepriv->max_unassoc_sta_cnt * sizeof(struct unassoc_sta_info)); + } +#ifdef CONFIG_PLATFORM_CMAP_INTFS + _cancel_timer_ex(&pmlmepriv->cmap_unassoc_sta_timer); +#endif +#endif } exit: return; @@ -863,7 +922,9 @@ void update_network(WLAN_BSSID_EX *dst, WLAN_BSSID_EX *src, dst->Reserved[1] = src->Reserved[1]; _rtw_memcpy((u8 *)dst, (u8 *)src, get_WLAN_BSSID_EX_sz(src)); } - +#ifdef CONFIG_LAYER2_ROAMING + dst->tsf = src->tsf; +#endif dst->PhyInfo.SignalStrength = ss_final; dst->PhyInfo.SignalQuality = sq_final; dst->Rssi = rssi_final; @@ -940,7 +1001,7 @@ Caller must hold pmlmepriv->lock first. */ -bool rtw_update_scanned_network(_adapter *adapter, WLAN_BSSID_EX *target) +struct wlan_network *rtw_update_scanned_network(_adapter *adapter, WLAN_BSSID_EX *target, bool *upd_ie) { _irqL irqL; _list *plist, *phead; @@ -1053,7 +1114,9 @@ bool rtw_update_scanned_network(_adapter *adapter, WLAN_BSSID_EX *target) pnetwork->acnode_stime = 0; pnetwork->acnode_notify_etime = 0; #endif - +#ifdef CONFIG_LAYER2_ROAMING + pnetwork->network.tsf = target->tsf; +#endif pnetwork->network_type = 0; pnetwork->aid = 0; pnetwork->join_res = 0; @@ -1160,35 +1223,486 @@ unlock_scan_queue: rtw_chk_candidate_peer_notify(adapter, pnetwork); #endif - return update_ie; + *upd_ie = update_ie; + + return pnetwork; } -void rtw_add_network(_adapter *adapter, WLAN_BSSID_EX *pnetwork); -void rtw_add_network(_adapter *adapter, WLAN_BSSID_EX *pnetwork) +struct wlan_network *rtw_add_network(_adapter *adapter, WLAN_BSSID_EX *bss); +struct wlan_network *rtw_add_network(_adapter *adapter, WLAN_BSSID_EX *bss) { - bool update_ie; + bool update_ie = _FALSE; + struct wlan_network *pnetwork = NULL; + /* _queue *queue = &(pmlmepriv->scanned_queue); */ /* _enter_critical_bh(&queue->lock, &irqL); */ #if defined(CONFIG_P2P) && defined(CONFIG_P2P_REMOVE_GROUP_INFO) if (adapter->registrypriv.wifi_spec == 0) - rtw_bss_ex_del_p2p_attr(pnetwork, P2P_ATTR_GROUP_INFO); + rtw_bss_ex_del_p2p_attr(bss, P2P_ATTR_GROUP_INFO); #endif - if (!hal_chk_wl_func(adapter, WL_FUNC_MIRACAST)) - rtw_bss_ex_del_wfd_ie(pnetwork); - + rtw_bss_ex_del_wfd_ie(bss); /* Wi-Fi driver will update the current network if the scan result of the connected AP be updated by scan. */ - update_ie = rtw_update_scanned_network(adapter, pnetwork); + pnetwork = rtw_update_scanned_network(adapter, bss, &update_ie); if (update_ie) - update_current_network(adapter, pnetwork); + update_current_network(adapter, bss); /* _exit_critical_bh(&queue->lock, &irqL); */ + return pnetwork; +} + +#ifdef CONFIG_RTW_MULTI_AP +void rtw_unassoc_sta_set_mode(_adapter *adapter, u8 stype, u8 mode) +{ + if (stype >= UNASOC_STA_SRC_NUM + || mode >= UNASOC_STA_MODE_NUM) + return; + + adapter = GET_PRIMARY_ADAPTER(adapter); + + if (adapter->mlmepriv.unassoc_sta_mode_of_stype[stype] == mode) + return; + + adapter->mlmepriv.unassoc_sta_mode_of_stype[stype] = mode; + + rtw_run_in_thread_cmd_wait(adapter, ((void *)(rtw_hal_rcr_set_chk_bssid_act_non)), adapter, 2000); +} + +bool rtw_unassoc_sta_src_chk(_adapter *adapter, u8 stype) +{ + if (stype >= UNASOC_STA_SRC_NUM) + return 0; + + adapter = GET_PRIMARY_ADAPTER(adapter); + + return adapter->mlmepriv.unassoc_sta_mode_of_stype[stype] == UNASOC_STA_MODE_ALL + || (adapter->mlmepriv.unassoc_sta_mode_of_stype[stype] == UNASOC_STA_MODE_INTERESTED + && adapter->mlmepriv.interested_unassoc_sta_cnt) + ; +} + +const char *unasoc_sta_src_str[] = { + "BMC", + "NMY_UC", +}; + +const char *unasoc_sta_mode_str[] = { + "DISABLED", + "INTERESTED", + "ALL", +}; + +void dump_unassoc_sta(void *sel, _adapter *adapter) +{ + struct mlme_priv *mlmepriv; + _queue *queue; + _list *list, *head; + struct unassoc_sta_info **unassoc_sta_arr; + struct unassoc_sta_info *unassoc_sta; + u16 i, unassoc_sta_cnt = 0; + + adapter = GET_PRIMARY_ADAPTER(adapter); + mlmepriv = &(adapter->mlmepriv); + queue = &(mlmepriv->unassoc_sta_queue); + + for (i = 0; i < UNASOC_STA_SRC_NUM; i++) { + RTW_PRINT_SEL(sel, "[%u]%-6s:%u(%s)\n", i, unasoc_sta_src_str[i] + , mlmepriv->unassoc_sta_mode_of_stype[i], unasoc_sta_mode_str[mlmepriv->unassoc_sta_mode_of_stype[i]]); + } + RTW_PRINT_SEL(sel, "interested_unassoc_sta_cnt:%u\n", mlmepriv->interested_unassoc_sta_cnt); + + unassoc_sta_arr = rtw_zvmalloc(mlmepriv->max_unassoc_sta_cnt * sizeof(struct unassoc_sta_info *)); + if (!unassoc_sta_arr) + return; + + enter_critical_bh(&queue->lock); + head = get_list_head(queue); + list = get_next(head); + + while (rtw_end_of_queue_search(head, list) == _FALSE) { + unassoc_sta = LIST_CONTAINOR(list, struct unassoc_sta_info, list); + list = get_next(list); + + unassoc_sta_arr[unassoc_sta_cnt++] = unassoc_sta; + } + + exit_critical_bh(&queue->lock); + + RTW_PRINT_SEL(sel, " %17s %18s %6s\n", "mac_addr", "measure_delta_time", "rssi"); + + for (i = 0; i < unassoc_sta_cnt; i++) { + u8 rcpi; + s8 rx_power; + u32 measure_delta_time; + + unassoc_sta = unassoc_sta_arr[i]; + + measure_delta_time = rtw_systime_to_ms(rtw_get_current_time() - unassoc_sta->time); + + RTW_PRINT_SEL(sel, "%c "MAC_FMT" %18u %6d\n" + , unassoc_sta->interested ? '*' : ' ' + , MAC_ARG(unassoc_sta->addr), measure_delta_time, unassoc_sta->recv_signal_power); + } + + rtw_vmfree(unassoc_sta_arr, mlmepriv->max_unassoc_sta_cnt * sizeof(struct unassoc_sta_info *)); +} + +static void del_unassoc_sta(struct mlme_priv *mlmepriv, struct unassoc_sta_info *unassoc_sta) +{ + _irqL irqL; + _queue *free_queue = &(mlmepriv->free_unassoc_sta_queue); + + if (unassoc_sta->interested) + mlmepriv->interested_unassoc_sta_cnt--; + if (mlmepriv->interested_unassoc_sta_cnt == 0) { + rtw_run_in_thread_cmd(mlme_to_adapter(mlmepriv) + , ((void *)(rtw_hal_rcr_set_chk_bssid_act_non)), mlme_to_adapter(mlmepriv)); + } + + _enter_critical_bh(&free_queue->lock, &irqL); + rtw_list_delete(&(unassoc_sta->list)); + rtw_list_insert_tail(&(unassoc_sta->list), &(free_queue->queue)); + _exit_critical_bh(&free_queue->lock, &irqL); +} + +static u8 del_unassoc_sta_chk(struct mlme_priv *mlmepriv, struct unassoc_sta_info *unassoc_sta) +{ + systime cur, lifetime; + + if (unassoc_sta == NULL) + return UNASOC_STA_DEL_CHK_SKIP; + + if (unassoc_sta->interested) + return UNASOC_STA_DEL_CHK_SKIP; + + cur = rtw_get_current_time(); + lifetime = unassoc_sta->time + rtw_ms_to_systime(UNASSOC_STA_LIFETIME_MS); + if (rtw_time_before(cur, lifetime)) + return UNASOC_STA_DEL_CHK_ALIVE; + + del_unassoc_sta(mlmepriv, unassoc_sta); + + return UNASOC_STA_DEL_CHK_DELETED; +} + +static struct unassoc_sta_info *alloc_unassoc_sta(struct mlme_priv *mlmepriv) +{ + _irqL irqL; + struct unassoc_sta_info *unassoc_sta; + _queue *free_queue = &mlmepriv->free_unassoc_sta_queue; + _list *list = NULL; + + + _enter_critical_bh(&free_queue->lock, &irqL); + + if (_rtw_queue_empty(free_queue) == _TRUE) { + unassoc_sta = NULL; + goto exit; + } + list = get_next(&(free_queue->queue)); + + unassoc_sta = LIST_CONTAINOR(list, struct unassoc_sta_info, list); + + rtw_list_delete(&unassoc_sta->list); + + _rtw_memset(unassoc_sta->addr, 0, ETH_ALEN); + unassoc_sta->recv_signal_power = 0; + unassoc_sta->time = 0; + unassoc_sta->interested = 0; +exit: + _exit_critical_bh(&free_queue->lock, &irqL); + + return unassoc_sta; } +void rtw_del_unassoc_sta_queue(_adapter *adapter) +{ + struct unassoc_sta_info *unassoc_sta; + struct mlme_priv *mlmepriv; + _queue *queue; + _irqL irqL; + _list *head, *list; + + adapter = GET_PRIMARY_ADAPTER(adapter); + mlmepriv = &(adapter->mlmepriv); + queue = &(mlmepriv->unassoc_sta_queue); + + _enter_critical_bh(&queue->lock, &irqL); + head = get_list_head(queue); + list = get_next(head); + + while ((rtw_end_of_queue_search(head, list)) == _FALSE) { + unassoc_sta = LIST_CONTAINOR(list , struct unassoc_sta_info, list); + list = get_next(list); + + del_unassoc_sta(mlmepriv, unassoc_sta); + } + + _exit_critical_bh(&queue->lock, &irqL); + +} + +void rtw_del_unassoc_sta(_adapter *adapter, u8 *addr) +{ + struct unassoc_sta_info *unassoc_sta; + struct mlme_priv *mlmepriv; + _queue *queue; + _irqL irqL; + _list *head, *list; + + adapter = GET_PRIMARY_ADAPTER(adapter); + mlmepriv = &(adapter->mlmepriv); + queue = &(mlmepriv->unassoc_sta_queue); + + _enter_critical_bh(&queue->lock, &irqL); + head = get_list_head(queue); + list = get_next(head); + + while ((rtw_end_of_queue_search(head, list)) == _FALSE) { + unassoc_sta = LIST_CONTAINOR(list , struct unassoc_sta_info, list); + list = get_next(list); + + if (_rtw_memcmp(addr, unassoc_sta->addr, ETH_ALEN) == _TRUE) { + del_unassoc_sta(mlmepriv, unassoc_sta); + goto unlock_unassoc_sta_queue; + } + } + +unlock_unassoc_sta_queue: + _exit_critical_bh(&queue->lock, &irqL); +} + +void rtw_rx_add_unassoc_sta(_adapter *adapter, u8 stype, u8 *addr, s8 recv_signal_power) +{ + struct unassoc_sta_info *unassoc_sta; + struct unassoc_sta_info *oldest_unassoc_sta = NULL; + struct mlme_priv *mlmepriv; + _queue *queue; + _irqL irqL; + _list *head, *list; + + adapter = GET_PRIMARY_ADAPTER(adapter); + mlmepriv = &(adapter->mlmepriv); + queue = &(mlmepriv->unassoc_sta_queue); + + _enter_critical_bh(&queue->lock, &irqL); + head = get_list_head(queue); + list = get_next(head); + + while ((rtw_end_of_queue_search(head, list)) == _FALSE) { + unassoc_sta = LIST_CONTAINOR(list , struct unassoc_sta_info, list); + list = get_next(list); + + if (_rtw_memcmp(addr, unassoc_sta->addr, ETH_ALEN) == _TRUE) { + if (unassoc_sta->interested + || mlmepriv->unassoc_sta_mode_of_stype[stype] >= UNASOC_STA_MODE_ALL + ) { + unassoc_sta->recv_signal_power = recv_signal_power; + unassoc_sta->time = rtw_get_current_time(); + goto unlock_unassoc_sta_queue; + } + } + + if (del_unassoc_sta_chk(mlmepriv, unassoc_sta) == UNASOC_STA_DEL_CHK_ALIVE) { + if (oldest_unassoc_sta == NULL) + oldest_unassoc_sta = unassoc_sta; + else if (rtw_time_before(unassoc_sta->time, oldest_unassoc_sta->time)) + oldest_unassoc_sta = unassoc_sta; + } + } + + if (mlmepriv->unassoc_sta_mode_of_stype[stype] <= UNASOC_STA_MODE_INTERESTED) + goto unlock_unassoc_sta_queue; + + unassoc_sta = alloc_unassoc_sta(mlmepriv); + if (unassoc_sta == NULL) { + if (oldest_unassoc_sta) { + del_unassoc_sta(mlmepriv, oldest_unassoc_sta); + unassoc_sta = alloc_unassoc_sta(mlmepriv); + } else + goto unlock_unassoc_sta_queue; + } + _rtw_memcpy(unassoc_sta->addr, addr, ETH_ALEN); + unassoc_sta->recv_signal_power = recv_signal_power; + unassoc_sta->time = rtw_get_current_time(); + rtw_list_insert_tail(&(unassoc_sta->list), &(queue->queue)); + +unlock_unassoc_sta_queue: + _exit_critical_bh(&queue->lock, &irqL); +} + +void rtw_add_interested_unassoc_sta(_adapter *adapter, u8 *addr) +{ + struct unassoc_sta_info *unassoc_sta; + struct unassoc_sta_info *oldest_unassoc_sta = NULL; + struct mlme_priv *mlmepriv; + _queue *queue; + _irqL irqL; + _list *head, *list; + + adapter = GET_PRIMARY_ADAPTER(adapter); + mlmepriv = &(adapter->mlmepriv); + queue = &(mlmepriv->unassoc_sta_queue); + + _enter_critical_bh(&queue->lock, &irqL); + head = get_list_head(queue); + list = get_next(head); + + while ((rtw_end_of_queue_search(head, list)) == _FALSE) { + unassoc_sta = LIST_CONTAINOR(list , struct unassoc_sta_info, list); + list = get_next(list); + + if (_rtw_memcmp(addr, unassoc_sta->addr, ETH_ALEN) == _TRUE) { + if (!unassoc_sta->interested) { + unassoc_sta->interested = 1; + mlmepriv->interested_unassoc_sta_cnt++; + if (mlmepriv->interested_unassoc_sta_cnt == 1) { + rtw_run_in_thread_cmd(mlme_to_adapter(mlmepriv) + , ((void *)(rtw_hal_rcr_set_chk_bssid_act_non)), mlme_to_adapter(mlmepriv)); + } + } + goto unlock_unassoc_sta_queue; + } + + if (del_unassoc_sta_chk(mlmepriv, unassoc_sta) == UNASOC_STA_DEL_CHK_ALIVE) { + if (oldest_unassoc_sta == NULL) + oldest_unassoc_sta = unassoc_sta; + else if (rtw_time_after(unassoc_sta->time, oldest_unassoc_sta->time)) + oldest_unassoc_sta = unassoc_sta; + } + } + unassoc_sta = alloc_unassoc_sta(mlmepriv); + if (unassoc_sta == NULL) { + RTW_INFO(FUNC_ADPT_FMT": Allocate fail\n", FUNC_ADPT_ARG(adapter)); + if (oldest_unassoc_sta) { + RTW_INFO(FUNC_ADPT_FMT": Delete oldest entry and try again.\n", FUNC_ADPT_ARG(adapter)); + del_unassoc_sta(mlmepriv, oldest_unassoc_sta); + unassoc_sta = alloc_unassoc_sta(mlmepriv); + } else + goto unlock_unassoc_sta_queue; + } + _rtw_memcpy(unassoc_sta->addr, addr, ETH_ALEN); + unassoc_sta->interested = 1; + unassoc_sta->recv_signal_power = 0; + unassoc_sta->time = rtw_get_current_time() - rtw_ms_to_systime(UNASSOC_STA_LIFETIME_MS); + rtw_list_insert_tail(&(unassoc_sta->list), &(queue->queue)); + mlmepriv->interested_unassoc_sta_cnt++; + if (mlmepriv->interested_unassoc_sta_cnt == 1) { + rtw_run_in_thread_cmd(mlme_to_adapter(mlmepriv) + , ((void *)(rtw_hal_rcr_set_chk_bssid_act_non)), mlme_to_adapter(mlmepriv)); + } + +unlock_unassoc_sta_queue: + _exit_critical_bh(&queue->lock, &irqL); +} + +void rtw_undo_interested_unassoc_sta(_adapter *adapter, u8 *addr) +{ + struct unassoc_sta_info *unassoc_sta; + struct mlme_priv *mlmepriv; + _queue *queue; + _irqL irqL; + _list *head, *list; + + adapter = GET_PRIMARY_ADAPTER(adapter); + mlmepriv = &(adapter->mlmepriv); + queue = &(mlmepriv->unassoc_sta_queue); + + _enter_critical_bh(&queue->lock, &irqL); + head = get_list_head(queue); + list = get_next(head); + + while ((rtw_end_of_queue_search(head, list)) == _FALSE) { + unassoc_sta = LIST_CONTAINOR(list , struct unassoc_sta_info, list); + list = get_next(list); + + if (_rtw_memcmp(addr, unassoc_sta->addr, ETH_ALEN) == _TRUE) { + if (unassoc_sta->interested) { + unassoc_sta->interested = 0; + mlmepriv->interested_unassoc_sta_cnt--; + if (mlmepriv->interested_unassoc_sta_cnt == 0) { + rtw_run_in_thread_cmd(mlme_to_adapter(mlmepriv) + , ((void *)(rtw_hal_rcr_set_chk_bssid_act_non)), mlme_to_adapter(mlmepriv)); + } + } + goto unlock_unassoc_sta_queue; + } + } +unlock_unassoc_sta_queue: + _exit_critical_bh(&queue->lock, &irqL); +} + +void rtw_undo_all_interested_unassoc_sta(_adapter *adapter) +{ + struct unassoc_sta_info *unassoc_sta; + struct mlme_priv *mlmepriv; + _queue *queue; + _irqL irqL; + _list *head, *list; + + adapter = GET_PRIMARY_ADAPTER(adapter); + mlmepriv = &(adapter->mlmepriv); + queue = &(mlmepriv->unassoc_sta_queue); + + _enter_critical_bh(&queue->lock, &irqL); + head = get_list_head(queue); + list = get_next(head); + + while ((rtw_end_of_queue_search(head, list)) == _FALSE) { + unassoc_sta = LIST_CONTAINOR(list , struct unassoc_sta_info, list); + list = get_next(list); + + if (unassoc_sta->interested) { + unassoc_sta->interested = 0; + mlmepriv->interested_unassoc_sta_cnt--; + if (mlmepriv->interested_unassoc_sta_cnt == 0) { + rtw_run_in_thread_cmd(mlme_to_adapter(mlmepriv) + , ((void *)(rtw_hal_rcr_set_chk_bssid_act_non)), mlme_to_adapter(mlmepriv)); + goto unlock_unassoc_sta_queue; + } + } + } +unlock_unassoc_sta_queue: + _exit_critical_bh(&queue->lock, &irqL); +} + +u8 rtw_search_unassoc_sta(_adapter *adapter, u8 *addr, struct unassoc_sta_info *ret_sta) +{ + struct unassoc_sta_info *unassoc_sta = NULL; + struct mlme_priv *mlmepriv; + _queue *queue; + _irqL irqL; + _list *head, *list; + u8 searched = 0; + + adapter = GET_PRIMARY_ADAPTER(adapter); + mlmepriv = &(adapter->mlmepriv); + queue = &(mlmepriv->unassoc_sta_queue); + + _enter_critical_bh(&queue->lock, &irqL); + head = get_list_head(queue); + list = get_next(head); + + while ((rtw_end_of_queue_search(head, list)) == _FALSE) { + unassoc_sta = LIST_CONTAINOR(list , struct unassoc_sta_info, list); + list = get_next(list); + + if (_rtw_memcmp(addr, unassoc_sta->addr, ETH_ALEN) == _TRUE) { + memcpy(ret_sta, unassoc_sta, sizeof(struct unassoc_sta_info)); + searched = 1; + break; + } + } + _exit_critical_bh(&queue->lock, &irqL); + + return searched; +} +#endif /* CONFIG_RTW_MULTI_AP */ + /* select the desired network based on the capability of the (i)bss. * check items: (1) security * (2) network_type @@ -1244,6 +1758,10 @@ int rtw_is_desired_network(_adapter *adapter, struct wlan_network *pnetwork) bselected = _FALSE; } +#ifdef CONFIG_RTW_MBO + if (rtw_mbo_disallowed_network(pnetwork) == _TRUE) + bselected = _FALSE; +#endif return bselected; } @@ -1252,31 +1770,52 @@ void rtw_survey_event_callback(_adapter *adapter, u8 *pbuf) { _irqL irqL; u32 len; - WLAN_BSSID_EX *pnetwork; + u8 val8; + WLAN_BSSID_EX *bss; struct mlme_priv *pmlmepriv = &(adapter->mlmepriv); + struct wlan_network *pnetwork = NULL; + struct wlan_network *candidate = NULL; +#ifdef CONFIG_LAYER2_ROAMING + struct ss_res *ss = &adapter->mlmeextpriv.sitesurvey_res; +#endif + bss = (WLAN_BSSID_EX *)pbuf; - pnetwork = (WLAN_BSSID_EX *)pbuf; - - len = get_WLAN_BSSID_EX_sz(pnetwork); + len = get_WLAN_BSSID_EX_sz(bss); if (len > (sizeof(WLAN_BSSID_EX))) { return; } +#ifdef CONFIG_RTW_80211K + val8 = 0; + rtw_hal_get_hwreg(adapter, HW_VAR_FREECNT, &val8); + + /* use TSF if no free run counter */ + if (val8==0) + bss->PhyInfo.free_cnt = (u32)rtw_hal_get_tsftr_by_port( + adapter, rtw_hal_get_port(adapter)); +#endif + + if (bss->InfrastructureMode == Ndis802_11Infrastructure) { + if (MLME_IS_SCAN(adapter)) { + adapter->mlmeextpriv.sitesurvey_res.activate_ch_cnt + += rtw_process_beacon_hint(adapter, bss, 0); + } + } _enter_critical_bh(&pmlmepriv->lock, &irqL); /* update IBSS_network 's timestamp */ if ((check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE)) == _TRUE) { - if (_rtw_memcmp(&(pmlmepriv->cur_network.network.MacAddress), pnetwork->MacAddress, ETH_ALEN)) { + if (_rtw_memcmp(&(pmlmepriv->cur_network.network.MacAddress), bss->MacAddress, ETH_ALEN)) { struct wlan_network *ibss_wlan = NULL; _irqL irqL; - _rtw_memcpy(pmlmepriv->cur_network.network.IEs, pnetwork->IEs, 8); + _rtw_memcpy(pmlmepriv->cur_network.network.IEs, bss->IEs, 8); _enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL); - ibss_wlan = _rtw_find_network(&pmlmepriv->scanned_queue, pnetwork->MacAddress); + ibss_wlan = _rtw_find_network(&pmlmepriv->scanned_queue, bss->MacAddress); if (ibss_wlan) { - _rtw_memcpy(ibss_wlan->network.IEs , pnetwork->IEs, 8); + _rtw_memcpy(ibss_wlan->network.IEs , bss->IEs, 8); _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL); goto exit; } @@ -1286,9 +1825,38 @@ void rtw_survey_event_callback(_adapter *adapter, u8 *pbuf) /* lock pmlmepriv->lock when you accessing network_q */ if ((check_fwstate(pmlmepriv, WIFI_UNDER_LINKING)) == _FALSE) { - if (pnetwork->Ssid.Ssid[0] == 0) - pnetwork->Ssid.SsidLength = 0; - rtw_add_network(adapter, pnetwork); + if (bss->Ssid.Ssid[0] == 0) + bss->Ssid.SsidLength = 0; + pnetwork = rtw_add_network(adapter, bss); + +#ifdef CONFIG_LAYER2_ROAMING + if ((ss->reason & RTW_AUTO_SCAN_REASON_ROAM) && + (pnetwork != pmlmepriv->cur_network_scanned)) { + + /* got specific addr to roam */ + if (!is_zero_mac_addr(pmlmepriv->roam_tgt_addr)) { + if (_rtw_memcmp(pmlmepriv->roam_tgt_addr, + pnetwork->network.MacAddress, ETH_ALEN) == _TRUE) { + RTW_INFO("Specifid roam target "MAC_FMT", ch:%u abort scan\n", + MAC_ARG(pmlmepriv->roam_tgt_addr), + pnetwork->network.Configuration.DSConfig); + pmlmepriv->roam_network = pnetwork; + rtw_scan_abort_no_wait(adapter); + goto exit; + } + } + rtw_check_roaming_candidate(pmlmepriv, &candidate, pnetwork, 0); + + if (candidate) { + pmlmepriv->roam_network = candidate; + RTW_INFO("%s() found a roaming candidate. abort scan\n", __func__); + rtw_scan_abort_no_wait(adapter); + } + /* find second best candidate */ + if (!candidate && IS_5G_BSS(pnetwork->network)) + rtw_check_roaming_candidate(pmlmepriv, &pmlmepriv->candidate_5G, pnetwork, 1); + } +#endif } exit: @@ -1304,9 +1872,7 @@ void rtw_surveydone_event_callback(_adapter *adapter, u8 *pbuf) _irqL irqL; struct surveydone_event *parm = (struct surveydone_event *)pbuf; struct mlme_priv *pmlmepriv = &(adapter->mlmepriv); -#ifdef CONFIG_RTW_80211R struct mlme_ext_priv *pmlmeext = &adapter->mlmeextpriv; -#endif #ifdef CONFIG_MLME_EXT mlmeext_surveydone_event_callback(adapter); @@ -1327,6 +1893,9 @@ void rtw_surveydone_event_callback(_adapter *adapter, u8 *pbuf) /* rtw_warn_on(1); */ } + if (pmlmeext->scan_abort == _TRUE) + pmlmeext->scan_abort = _FALSE; + _clr_fwstate_(pmlmepriv, WIFI_UNDER_SURVEY); _exit_critical_bh(&pmlmepriv->lock, &irqL); @@ -1345,6 +1914,7 @@ void rtw_surveydone_event_callback(_adapter *adapter, u8 *pbuf) if (rtw_select_and_join_from_scanned_queue(pmlmepriv) == _SUCCESS) _set_timer(&pmlmepriv->assoc_timer, MAX_JOIN_TIMEOUT); + #ifdef CONFIG_AP_MODE else { WLAN_BSSID_EX *pdev_network = &(adapter->registrypriv.dev_network); u8 *pibss = adapter->registrypriv.dev_network.MacAddress; @@ -1367,6 +1937,7 @@ void rtw_surveydone_event_callback(_adapter *adapter, u8 *pbuf) pmlmepriv->to_join = _FALSE; } + #endif /* CONFIG_AP_MODE */ } } else { int s_ret; @@ -1404,17 +1975,26 @@ void rtw_surveydone_event_callback(_adapter *adapter, u8 *pbuf) } } } else { - if (rtw_chk_roam_flags(adapter, RTW_ROAM_ACTIVE)) { + if (rtw_chk_roam_flags(adapter, RTW_ROAM_ACTIVE) + #if (defined(CONFIG_RTW_WNM) && defined(CONFIG_RTW_80211R)) + || rtw_wnm_btm_roam_triggered(adapter) + #endif + ) { if (check_fwstate(pmlmepriv, WIFI_STATION_STATE) - && check_fwstate(pmlmepriv, WIFI_ASOC_STATE)) { + && check_fwstate(pmlmepriv, WIFI_ASOC_STATE) + #ifdef CONFIG_LAYER2_ROAMING + && pmlmepriv->need_to_roam == _TRUE + #endif + ) { if (rtw_select_roaming_candidate(pmlmepriv) == _SUCCESS) { -#ifdef CONFIG_RTW_80211R + pmlmepriv->last_roaming = rtw_get_current_time(); + #ifdef CONFIG_RTW_80211R rtw_ft_start_roam(adapter, (u8 *)pmlmepriv->roam_network->network.MacAddress); -#else + #else receive_disconnect(adapter, pmlmepriv->cur_network.network.MacAddress , WLAN_REASON_ACTIVE_ROAM, _FALSE); -#endif + #endif } } } @@ -1454,6 +2034,18 @@ void rtw_surveydone_event_callback(_adapter *adapter, u8 *pbuf) rtw_cfg80211_indicate_scan_done_for_buddy(adapter, _FALSE); #endif + if (parm->activate_ch_cnt) { + #ifdef CONFIG_IOCTL_CFG80211 + struct get_chplan_resp *chplan; + + if (rtw_get_chplan_cmd(adapter, RTW_CMDF_DIRECTLY, &chplan) != _SUCCESS + || rtw_regd_change_complete_async(adapter_to_wiphy(adapter), chplan) != _SUCCESS) + rtw_warn_on(1); + #endif + op_class_pref_apply_regulatory(adapter, REG_BEACON_HINT); + rtw_nlrtw_reg_beacon_hint_event(adapter); + } + #ifdef CONFIG_RTW_MESH #if CONFIG_RTW_MESH_OFFCH_CAND if (rtw_mesh_offch_candidate_accepted(adapter)) { @@ -1474,7 +2066,7 @@ void rtw_surveydone_event_callback(_adapter *adapter, u8 *pbuf) #endif #endif /* CONFIG_RTW_MESH */ -#ifdef CONFIG_RTW_ACS +#if defined(CONFIG_AP_MODE) && defined(CONFIG_RTW_ACS) if (parm->acs) { u8 ifbmp = rtw_mi_get_ap_mesh_ifbmp(adapter); @@ -1535,7 +2127,7 @@ u8 _rtw_sitesurvey_condition_check(const char *caller, _adapter *adapter, bool c } #ifdef CONFIG_ADAPTIVITY_DENY_SCAN - if (registry_par->adaptivity_en + if (adapter_to_rfctl(adapter)->adaptivity_en && rtw_phydm_get_edcca_flag(adapter) && rtw_is_2g_ch(GET_HAL_DATA(adapter)->current_channel)) { RTW_WARN(FUNC_ADPT_FMT": Adaptivity block scan! (ch=%u)\n", @@ -1759,11 +2351,16 @@ void rtw_indicate_connect(_adapter *padapter) rtw_led_control(padapter, LED_CTL_LINK); rtw_os_indicate_connect(padapter); + + #ifdef CONFIG_RTW_WDS + if (MLME_IS_STA(padapter)) + rtw_wds_gptr_tbl_init(padapter); + #endif } rtw_set_to_roam(padapter, 0); if (!MLME_IS_AP(padapter) && !MLME_IS_MESH(padapter)) - rtw_mi_set_scan_deny(padapter, 3000); + rtw_mi_set_scan_deny(padapter, 3000, "connect"); } @@ -1823,6 +2420,13 @@ void rtw_indicate_disconnect(_adapter *padapter, u16 reason, u8 locally_generate if (check_fwstate(&padapter->mlmepriv, WIFI_ASOC_STATE) || (rtw_to_roam(padapter) <= 0) ) { + #ifdef CONFIG_RTW_WDS + adapter_set_use_wds(padapter, 0); + rtw_wds_gptr_tbl_unregister(padapter); + #endif + #ifdef CONFIG_RTW_MULTI_AP + padapter->multi_ap = 0; + #endif #ifdef CONFIG_RTW_TOKEN_BASED_XMIT if (ATOMIC_READ(&padapter->tbtx_tx_pause) == _TRUE) { @@ -1830,6 +2434,11 @@ void rtw_indicate_disconnect(_adapter *padapter, u16 reason, u8 locally_generate rtw_tx_control_cmd(padapter); } #endif +#ifdef CONFIG_LAYER2_ROAMING + pmlmepriv->roam_network = NULL; + pmlmepriv->candidate_5G = NULL; + _rtw_memset(pmlmepriv->roam_from, 0, ETH_ALEN); +#endif rtw_os_indicate_disconnect(padapter, reason, locally_generated); @@ -2004,10 +2613,12 @@ static struct sta_info *rtw_joinbss_update_stainfo(_adapter *padapter, struct wl struct recv_reorder_ctrl *preorder_ctrl; struct sta_priv *pstapriv = &padapter->stapriv; struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; -#ifdef CONFIG_RTS_FULL_BW +#if defined(CONFIG_RTS_FULL_BW) || defined(CONFIG_RTW_MULTI_AP) struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); +#endif +#ifdef CONFIG_RTS_FULL_BW struct wlan_network *cur_network = &(pmlmepriv->cur_network); -#endif/*CONFIG_RTS_FULL_BW*/ +#endif psta = rtw_get_stainfo(pstapriv, pnetwork->network.MacAddress); if (psta == NULL) @@ -2055,6 +2666,7 @@ static struct sta_info *rtw_joinbss_update_stainfo(_adapter *padapter, struct wl if (padapter->securitypriv.mfp_opt >= MFP_OPTIONAL && mfp_opt >= MFP_OPTIONAL) psta->flags |= WLAN_STA_MFP; } + if (padapter->securitypriv.dot11PrivacyAlgrthm != _NO_PRIVACY_ ) { /*check if amsdu is allowed */ if (rtw_check_amsdu_disable(padapter->registrypriv.amsdu_mode, spp_opt) == _TRUE) @@ -2103,6 +2715,17 @@ static struct sta_info *rtw_joinbss_update_stainfo(_adapter *padapter, struct wl #ifdef CONFIG_RTW_80211K _rtw_memcpy(&psta->rm_en_cap, pnetwork->network.PhyInfo.rm_en_cap, 5); #endif +#ifdef CONFIG_RTW_MULTI_AP + if (padapter->multi_ap & MULTI_AP_BACKHAUL_STA) { + u8 multi_ap = rtw_get_multi_ap_ie_ext(pmlmepriv->assoc_rsp + sizeof(struct rtw_ieee80211_hdr_3addr) + 6 + , pmlmepriv->assoc_rsp_len - sizeof(struct rtw_ieee80211_hdr_3addr) - 6); + + if (multi_ap & MULTI_AP_BACKHAUL_BSS) /* backhaul bss, enable WDS */ + psta->flags |= WLAN_STA_MULTI_AP | WLAN_STA_WDS; + else if (multi_ap & MULTI_AP_FRONTHAUL_BSS) /* fronthaul bss only */ + psta->flags |= WLAN_STA_MULTI_AP; + } +#endif #ifdef CONFIG_RTS_FULL_BW rtw_parse_sta_vendor_ie_8812(padapter, psta, BSS_EX_TLV_IES(&cur_network->network), BSS_EX_TLV_IES_LEN(&cur_network->network)); #endif @@ -2293,6 +2916,8 @@ void rtw_joinbss_event_prehandle(_adapter *adapter, u8 *pbuf, u16 status) _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL); } else if (pnetwork->join_res == -4) { + + /* TODO: skip fail BSS for next trial */ rtw_reset_securitypriv(adapter); pmlmepriv->join_status = status; _set_timer(&pmlmepriv->assoc_timer, 1); @@ -2513,10 +3138,6 @@ void rtw_stassoc_event_callback(_adapter *adapter, u8 *pbuf) if (passoc_req) { assoc_req_len = psta->assoc_req_len; _rtw_memcpy(passoc_req, psta->passoc_req, assoc_req_len); - - rtw_mfree(psta->passoc_req , psta->assoc_req_len); - psta->passoc_req = NULL; - psta->assoc_req_len = 0; } } _exit_critical_bh(&psta->lock, &irqL); @@ -2536,9 +3157,13 @@ void rtw_stassoc_event_callback(_adapter *adapter, u8 *pbuf) #endif/*CONFIG_BEAMFORMING*/ if (is_wep_enc(adapter->securitypriv.dot11PrivacyAlgrthm)) rtw_ap_wep_pk_setting(adapter, psta); - #ifdef CONFIG_SUPPORT_DYNAMIC_TXPWR - rtw_hal_dtp_macid_set(adapter, 1, psta->cmn.mac_id, pstassoc->macaddr); - #endif + + #ifdef CONFIG_PLATFORM_CMAP_INTFS + if (MLME_IS_AP(adapter)) { + cmap_intfs_nl_sta_event(psta->cmn.mac_addr, adapter_mac_addr(adapter), 1 + , psta->passoc_req + IEEE80211_3ADDR_LEN, psta->assoc_req_len - IEEE80211_3ADDR_LEN); + } + #endif } goto exit; } @@ -2597,12 +3222,12 @@ exit: #ifdef CONFIG_IEEE80211W void rtw_sta_timeout_event_callback(_adapter *adapter, u8 *pbuf) { +#ifdef CONFIG_AP_MODE _irqL irqL; struct sta_info *psta; struct stadel_event *pstadel = (struct stadel_event *)pbuf; struct sta_priv *pstapriv = &adapter->stapriv; - psta = rtw_get_stainfo(&adapter->stapriv, pstadel->macaddr); if (psta) { @@ -2622,189 +3247,10 @@ void rtw_sta_timeout_event_callback(_adapter *adapter, u8 *pbuf) associated_clients_update(adapter, updated, STA_INFO_UPDATE_ALL); } - - - +#endif /* CONFIG_AP_MODE */ } #endif /* CONFIG_IEEE80211W */ -#ifdef CONFIG_RTW_80211R -void rtw_ft_info_init(struct ft_roam_info *pft) -{ - _rtw_memset(pft, 0, sizeof(struct ft_roam_info)); - pft->ft_flags = 0 - | RTW_FT_EN - | RTW_FT_OTD_EN -#ifdef CONFIG_RTW_BTM_ROAM - | RTW_FT_BTM_ROAM -#endif - ; - pft->ft_updated_bcn = _FALSE; -} - -u8 rtw_ft_chk_roaming_candidate( - _adapter *padapter, struct wlan_network *competitor) -{ - u8 *pmdie; - u32 mdie_len = 0; - struct ft_roam_info *pft_roam = &(padapter->mlmepriv.ft_roam); - - if (!(pmdie = rtw_get_ie(&competitor->network.IEs[12], - _MDIE_, &mdie_len, competitor->network.IELength-12))) - return _FALSE; - - if (!_rtw_memcmp(&pft_roam->mdid, (pmdie+2), 2)) - return _FALSE; - - /*The candidate don't support over-the-DS*/ - if (rtw_ft_valid_otd_candidate(padapter, pmdie)) { - RTW_INFO("FT: ignore the candidate(" - MAC_FMT ") for over-the-DS\n", - MAC_ARG(competitor->network.MacAddress)); - rtw_ft_clr_flags(padapter, RTW_FT_PEER_OTD_EN); - return _FALSE; - } - - return _TRUE; -} - -void rtw_ft_update_stainfo(_adapter *padapter, WLAN_BSSID_EX *pnetwork) -{ - struct sta_priv *pstapriv = &padapter->stapriv; - struct sta_info *psta = NULL; - - psta = rtw_get_stainfo(pstapriv, pnetwork->MacAddress); - if (psta == NULL) - psta = rtw_alloc_stainfo(pstapriv, pnetwork->MacAddress); - - if (padapter->securitypriv.dot11AuthAlgrthm == dot11AuthAlgrthm_8021X) { - - padapter->securitypriv.binstallGrpkey = _FALSE; - padapter->securitypriv.busetkipkey = _FALSE; - padapter->securitypriv.bgrpkey_handshake = _FALSE; - - psta->ieee8021x_blocked = _TRUE; - psta->dot118021XPrivacy = padapter->securitypriv.dot11PrivacyAlgrthm; - - _rtw_memset((u8 *)&psta->dot118021x_UncstKey, 0, sizeof(union Keytype)); - _rtw_memset((u8 *)&psta->dot11tkiprxmickey, 0, sizeof(union Keytype)); - _rtw_memset((u8 *)&psta->dot11tkiptxmickey, 0, sizeof(union Keytype)); - } - -} - -void rtw_ft_reassoc_event_callback(_adapter *padapter, u8 *pbuf) -{ - struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); - struct stassoc_event *pstassoc = (struct stassoc_event *)pbuf; - struct ft_roam_info *pft_roam = &(pmlmepriv->ft_roam); - struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); - struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); - WLAN_BSSID_EX *pnetwork = (WLAN_BSSID_EX *)&(pmlmeinfo->network); - struct cfg80211_ft_event_params ft_evt_parms; - _irqL irqL; - - _rtw_memset(&ft_evt_parms, 0, sizeof(ft_evt_parms)); - rtw_ft_update_stainfo(padapter, pnetwork); - ft_evt_parms.ies_len = pft_roam->ft_event.ies_len; - ft_evt_parms.ies = rtw_zmalloc(ft_evt_parms.ies_len); - if (ft_evt_parms.ies) - _rtw_memcpy((void *)ft_evt_parms.ies, pft_roam->ft_event.ies, ft_evt_parms.ies_len); - else - goto err_2; - - ft_evt_parms.target_ap = rtw_zmalloc(ETH_ALEN); - if (ft_evt_parms.target_ap) - _rtw_memcpy((void *)ft_evt_parms.target_ap, pstassoc->macaddr, ETH_ALEN); - else - goto err_1; - - ft_evt_parms.ric_ies = pft_roam->ft_event.ric_ies; - ft_evt_parms.ric_ies_len = pft_roam->ft_event.ric_ies_len; - - rtw_ft_lock_set_status(padapter, RTW_FT_AUTHENTICATED_STA, &irqL); - rtw_cfg80211_ft_event(padapter, &ft_evt_parms); - RTW_INFO("%s: to "MAC_FMT"\n", __func__, MAC_ARG(ft_evt_parms.target_ap)); - - rtw_mfree((u8 *)pft_roam->ft_event.target_ap, ETH_ALEN); -err_1: - rtw_mfree((u8 *)ft_evt_parms.ies, ft_evt_parms.ies_len); -err_2: - return; -} -#endif - -#if defined(CONFIG_RTW_WNM) || defined(CONFIG_RTW_80211K) -void rtw_roam_nb_info_init(_adapter *padapter) -{ - struct roam_nb_info *pnb = &(padapter->mlmepriv.nb_info); - - _rtw_memset(&pnb->nb_rpt, 0, sizeof(pnb->nb_rpt)); - _rtw_memset(&pnb->nb_rpt_ch_list, 0, sizeof(pnb->nb_rpt_ch_list)); - _rtw_memset(&pnb->roam_target_addr, 0, ETH_ALEN); - pnb->nb_rpt_valid = _FALSE; - pnb->nb_rpt_ch_list_num = 0; - pnb->preference_en = _FALSE; - pnb->nb_rpt_is_same = _TRUE; - pnb->last_nb_rpt_entries = 0; -#ifdef CONFIG_RTW_WNM - rtw_init_timer(&pnb->roam_scan_timer, - padapter, rtw_wnm_roam_scan_hdl, - padapter); -#endif -} - -u8 rtw_roam_nb_scan_list_set( - _adapter *padapter, struct sitesurvey_parm *pparm) -{ - u8 ret = _FALSE; - u32 i; - struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); - struct roam_nb_info *pnb = &(pmlmepriv->nb_info); - - if (!rtw_chk_roam_flags(padapter, RTW_ROAM_ACTIVE)) - return ret; - - if (!pmlmepriv->need_to_roam) - return ret; - - if ((!pmlmepriv->nb_info.nb_rpt_valid) || (!pnb->nb_rpt_ch_list_num)) - return ret; - - if (!pparm) - return ret; - - rtw_init_sitesurvey_parm(padapter, pparm); - if (rtw_roam_busy_scan(padapter, pnb)) { - pparm->ch_num = 1; - pparm->ch[pmlmepriv->ch_cnt].hw_value = - pnb->nb_rpt_ch_list[pmlmepriv->ch_cnt].hw_value; - pmlmepriv->ch_cnt++; - ret = _TRUE; - if (pmlmepriv->ch_cnt == pnb->nb_rpt_ch_list_num) { - pmlmepriv->nb_info.nb_rpt_valid = _FALSE; - pmlmepriv->ch_cnt = 0; - } - goto set_bssid_list; - } - - pparm->ch_num = (pnb->nb_rpt_ch_list_num > RTW_CHANNEL_SCAN_AMOUNT)? - (RTW_CHANNEL_SCAN_AMOUNT):(pnb->nb_rpt_ch_list_num); - for (i=0; ich_num; i++) { - pparm->ch[i].hw_value = pnb->nb_rpt_ch_list[i].hw_value; - pparm->ch[i].flags = RTW_IEEE80211_CHAN_PASSIVE_SCAN; - } - - pmlmepriv->nb_info.nb_rpt_valid = _FALSE; - pmlmepriv->ch_cnt = 0; - ret = _TRUE; - -set_bssid_list: - rtw_set_802_11_bssid_list_scan(padapter, pparm); - return ret; -} -#endif - void rtw_sta_mstatus_disc_rpt(_adapter *adapter, u8 mac_id) { struct macid_ctl_t *macid_ctl = &adapter->dvobj->macid_ctl; @@ -2816,6 +3262,7 @@ void rtw_sta_mstatus_disc_rpt(_adapter *adapter, u8 mac_id) , mac_id, id_is_shared ? " shared" : ""); if (!id_is_shared) { + rtw_hal_macid_drop(adapter, mac_id); rtw_hal_set_FwMediaStatusRpt_single_cmd(adapter, 0, 0, 0, 0, mac_id); /* * For safety, prevent from keeping macid sleep. @@ -2861,13 +3308,15 @@ void rtw_stadel_event_callback(_adapter *adapter, u8 *pbuf) struct mlme_priv *pmlmepriv = &(adapter->mlmepriv); struct stadel_event *pstadel = (struct stadel_event *)pbuf; struct wlan_network *tgt_network = &(pmlmepriv->cur_network); + u8 diconnect_delay = RTW_ROAM_DICONNECT_DELAY; RTW_INFO("%s(mac_id=%d)=" MAC_FMT "\n", __func__, pstadel->mac_id, MAC_ARG(pstadel->macaddr)); +#ifdef CONFIG_LAYER2_ROAMING + if (pmlmepriv->roam_network) + rtw_hal_set_hwreg(adapter, HW_VAR_CHECK_TXBUF, &diconnect_delay); +#endif rtw_sta_mstatus_disc_rpt(adapter, pstadel->mac_id); -#ifdef CONFIG_SUPPORT_DYNAMIC_TXPWR - rtw_hal_dtp_macid_set(adapter, 0, pstadel->mac_id, pstadel->macaddr); -#endif #ifdef CONFIG_MCC_MODE rtw_hal_mcc_update_macid_bitmap(adapter, pstadel->mac_id, _FALSE); #endif /* CONFIG_MCC_MODE */ @@ -2887,6 +3336,7 @@ void rtw_stadel_event_callback(_adapter *adapter, u8 *pbuf) goto exit; } +#ifdef CONFIG_AP_MODE if (MLME_IS_AP(adapter)) { #ifdef CONFIG_IOCTL_CFG80211 #ifdef COMPAT_KERNEL_RELEASE @@ -2896,10 +3346,15 @@ void rtw_stadel_event_callback(_adapter *adapter, u8 *pbuf) #endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 37)) || defined(CONFIG_CFG80211_FORCE_COMPATIBLE_2_6_37_UNDER) */ #endif /* CONFIG_IOCTL_CFG80211 */ + #ifdef CONFIG_PLATFORM_CMAP_INTFS + cmap_intfs_nl_sta_event(pstadel->macaddr, adapter_mac_addr(adapter), 0, NULL, 0); + #endif + rtw_free_stainfo(adapter, psta); goto exit; } +#endif /* CONFIG_AP_MODE */ mlmeext_sta_del_event_callback(adapter); @@ -2925,6 +3380,14 @@ void rtw_stadel_event_callback(_adapter *adapter, u8 *pbuf) roam = _TRUE; roam_target = pmlmepriv->roam_network; } + +#ifdef CONFIG_RTW_80211R + if (reason == WLAN_REASON_ACTIVE_ROAM && rtw_ft_chk_flags(adapter, RTW_FT_BTM_ROAM)) { + roam = _TRUE; + roam_target = pmlmepriv->roam_network; + } +#endif + if (roam == _TRUE) { if (rtw_to_roam(adapter) > 0) rtw_dec_to_roam(adapter); /* this stadel_event is caused by roaming, decrease to_roam */ @@ -2941,9 +3404,12 @@ void rtw_stadel_event_callback(_adapter *adapter, u8 *pbuf) rtw_indicate_disconnect(adapter, *(u16 *)pstadel->rsvd, pstadel->locally_generated); +#ifdef CONFIG_LAYER2_ROAMING _rtw_roaming(adapter, roam_target); +#endif } +#ifdef CONFIG_AP_MODE if (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) || check_fwstate(pmlmepriv, WIFI_ADHOC_STATE)) { @@ -2986,7 +3452,7 @@ void rtw_stadel_event_callback(_adapter *adapter, u8 *pbuf) } } - +#endif /* CONFIG_AP_MODE */ _exit_critical_bh(&pmlmepriv->lock, &irqL2); exit: #ifdef CONFIG_RTS_FULL_BW @@ -3035,6 +3501,17 @@ void rtw_join_timeout_handler(void *ctx) rtw_dec_to_roam(adapter); if (rtw_to_roam(adapter) != 0) { /* try another */ int do_join_r; + + if (pmlmepriv->roam_network) { + RTW_INFO("remove bad candidate ("MAC_FMT")\n", + MAC_ARG(pmlmepriv->roam_network->network.MacAddress)); + _enter_critical_bh(&pmlmepriv->scanned_queue.lock, &irqL); + _rtw_free_network(pmlmepriv, pmlmepriv->roam_network, _TRUE); + _exit_critical_bh(&pmlmepriv->scanned_queue.lock, &irqL); + pmlmepriv->roam_network = NULL; + pmlmepriv->candidate_5G = NULL; + _rtw_memset(pmlmepriv->roam_from, 0, ETH_ALEN); + } RTW_INFO("%s try another roaming\n", __FUNCTION__); do_join_r = rtw_do_join(adapter); if (_SUCCESS != do_join_r) { @@ -3044,6 +3521,7 @@ void rtw_join_timeout_handler(void *ctx) break; } else { RTW_INFO("%s We've try roaming but fail\n", __FUNCTION__); + pmlmepriv->need_to_roam = _FALSE; #ifdef CONFIG_RTW_80211R rtw_ft_clr_flags(adapter, RTW_FT_PEER_EN|RTW_FT_PEER_OTD_EN); rtw_ft_reset_status(adapter); @@ -3151,20 +3629,25 @@ void rtw_mlme_reset_auto_scan_int(_adapter *adapter, u8 *reason) return; } -void rtw_drv_scan_by_self(_adapter *padapter, u8 reason) +u8 rtw_drv_scan_by_self(_adapter *padapter, u8 reason) { struct sitesurvey_parm parm; struct mlme_priv *pmlmepriv = &padapter->mlmepriv; int i; -#if 1 - u8 ssc_chk; + u8 ssc_chk, rtn = _FAIL; +#if defined(CONFIG_RTW_WNM) || defined(CONFIG_RTW_80211K) + struct roam_nb_info *pnb = &(padapter->mlmepriv.nb_info); +#endif + + rtw_init_sitesurvey_parm(padapter, &parm); + parm.reason = reason; ssc_chk = rtw_sitesurvey_condition_check(padapter, _FALSE); if( ssc_chk == SS_DENY_BUSY_TRAFFIC) { #ifdef CONFIG_LAYER2_ROAMING - if (rtw_chk_roam_flags(padapter, RTW_ROAM_ACTIVE) && pmlmepriv->need_to_roam == _TRUE) { + if (rtw_chk_roam_flags(padapter, RTW_ROAM_ACTIVE) && pmlmepriv->need_to_roam == _TRUE) RTW_INFO(FUNC_ADPT_FMT" need to roam, don't care BusyTraffic\n", FUNC_ADPT_ARG(padapter)); - } else + else #endif { RTW_INFO(FUNC_ADPT_FMT" exit BusyTraffic\n", FUNC_ADPT_ARG(padapter)); @@ -3176,64 +3659,42 @@ void rtw_drv_scan_by_self(_adapter *padapter, u8 reason) if (!rtw_is_adapter_up(padapter)) goto exit; -#else - if (rtw_is_scan_deny(padapter)) - goto exit; - - if (!rtw_is_adapter_up(padapter)) - goto exit; - - if (rtw_mi_busy_traffic_check(padapter)) { -#ifdef CONFIG_LAYER2_ROAMING - if (rtw_chk_roam_flags(padapter, RTW_ROAM_ACTIVE) && pmlmepriv->need_to_roam == _TRUE) { - RTW_INFO("need to roam, don't care BusyTraffic\n"); - } else -#endif - { - RTW_INFO(FUNC_ADPT_FMT" exit BusyTraffic\n", FUNC_ADPT_ARG(padapter)); - goto exit; - } - } - if (check_fwstate(pmlmepriv, WIFI_AP_STATE) && check_fwstate(pmlmepriv, WIFI_UNDER_WPS)) { - RTW_INFO(FUNC_ADPT_FMT" WIFI_AP_STATE && WIFI_UNDER_WPS\n", FUNC_ADPT_ARG(padapter)); - goto exit; - } - if (check_fwstate(pmlmepriv, (WIFI_UNDER_SURVEY | WIFI_UNDER_LINKING)) == _TRUE) { - RTW_INFO(FUNC_ADPT_FMT" WIFI_UNDER_SURVEY|WIFI_UNDER_LINKING\n", FUNC_ADPT_ARG(padapter)); - goto exit; - } - -#ifdef CONFIG_CONCURRENT_MODE - if (rtw_mi_buddy_check_fwstate(padapter, (WIFI_UNDER_SURVEY | WIFI_UNDER_LINKING | WIFI_UNDER_WPS))) { - RTW_INFO(FUNC_ADPT_FMT", but buddy_intf is under scanning or linking or wps_phase\n", FUNC_ADPT_ARG(padapter)); - goto exit; - } -#endif -#endif RTW_INFO(FUNC_ADPT_FMT" reason:0x%02x\n", FUNC_ADPT_ARG(padapter), reason); /* only for 20/40 BSS */ - if (reason == RTW_AUTO_SCAN_REASON_2040_BSS) { - rtw_init_sitesurvey_parm(padapter, &parm); + if (reason & RTW_AUTO_SCAN_REASON_2040_BSS) { for (i=0;i<14;i++) { parm.ch[i].hw_value = i + 1; parm.ch[i].flags = RTW_IEEE80211_CHAN_PASSIVE_SCAN; } parm.ch_num = 14; - rtw_set_802_11_bssid_list_scan(padapter, &parm); + rtn = rtw_set_802_11_bssid_list_scan(padapter, &parm); goto exit; } #if defined(CONFIG_RTW_WNM) || defined(CONFIG_RTW_80211K) - if ((reason == RTW_AUTO_SCAN_REASON_ROAM) - && (rtw_roam_nb_scan_list_set(padapter, &parm))) - goto exit; -#endif + if (reason & RTW_AUTO_SCAN_REASON_ROAM) { + if (pmlmepriv->cur_network_scanned) { + _rtw_memcpy(&parm.ssid[0], &pmlmepriv->cur_network_scanned->network.Ssid, + sizeof(struct _NDIS_802_11_SSID)); + parm.ssid_num = 1; + } - rtw_set_802_11_bssid_list_scan(padapter, NULL); + if (pnb->nb_rpt_ch_list_num) { + for (i = 0; i < pnb->nb_rpt_ch_list_num; i++) { + _rtw_memcpy(parm.nb[i].bssid, pnb->nb_rpt[i].bssid, ETH_ALEN); + parm.nb[i].ch = pnb->nb_rpt[i].ch_num; + parm.nb_num++; + } + } + rtn = rtw_roam_nb_scan_list_set(padapter, &parm); + } +#endif + if (!rtn) + rtn = rtw_set_802_11_bssid_list_scan(padapter, &parm); exit: - return; + return rtn; } static void rtw_auto_scan_handler(_adapter *padapter) @@ -3278,9 +3739,7 @@ static u8 is_drv_in_lps(_adapter *adapter) } void rtw_iface_dynamic_check_timer_handlder(_adapter *adapter) { -#ifdef CONFIG_AP_MODE struct mlme_priv *pmlmepriv = &adapter->mlmepriv; -#endif /* CONFIG_AP_MODE */ if (adapter->net_closed == _TRUE) return; @@ -3289,6 +3748,7 @@ void rtw_iface_dynamic_check_timer_handlder(_adapter *adapter) u8 bEnterPS; linked_status_chk(adapter, 1); + roamed_status_chk(adapter, 1); bEnterPS = traffic_status_watchdog(adapter, 1); if (bEnterPS) { @@ -3317,7 +3777,7 @@ void rtw_iface_dynamic_check_timer_handlder(_adapter *adapter) #ifdef CONFIG_BR_EXT - +if (!adapter_use_wds(adapter)) { #if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 35)) rcu_read_lock(); #endif /* (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 35)) */ @@ -3342,7 +3802,7 @@ void rtw_iface_dynamic_check_timer_handlder(_adapter *adapter) #if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 35)) rcu_read_unlock(); #endif /* (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 35)) */ - +} #endif /* CONFIG_BR_EXT */ } @@ -3502,8 +3962,9 @@ inline bool rtw_is_scan_deny(_adapter *adapter) inline void rtw_clear_scan_deny(_adapter *adapter) { struct mlme_priv *mlmepriv = &adapter->mlmepriv; + ATOMIC_SET(&mlmepriv->set_scan_deny, 0); - if (0) + if (1) RTW_INFO(FUNC_ADPT_FMT"\n", FUNC_ADPT_ARG(adapter)); } @@ -3529,19 +3990,24 @@ void rtw_set_scan_deny(_adapter *adapter, u32 ms) * @return _TRUE: candidate is updated * @return _FALSE: candidate is not updated */ -static int rtw_check_roaming_candidate(struct mlme_priv *mlme - , struct wlan_network **candidate, struct wlan_network *competitor) +int rtw_check_roaming_candidate(struct mlme_priv *mlme + , struct wlan_network **candidate, struct wlan_network *competitor, u8 potential_5G) { int updated = _FALSE; _adapter *adapter = container_of(mlme, _adapter, mlmepriv); struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + struct wlan_network *cur_network = mlme->cur_network_scanned; RT_CHANNEL_INFO *chset = rfctl->channel_set; u8 ch = competitor->network.Configuration.DSConfig; + u8 *result = NULL; + + if (potential_5G && (competitor == mlme->cur_network_scanned)) + goto exit; if (rtw_chset_search_ch(chset, ch) < 0) goto exit; if (IS_DFS_SLAVE_WITH_RD(rfctl) - && !rtw_odm_dfs_domain_unknown(rfctl_to_dvobj(rfctl)) + && !rtw_rfctl_dfs_domain_unknown(rfctl) && rtw_chset_is_ch_non_ocp(chset, ch)) goto exit; @@ -3550,66 +4016,105 @@ static int rtw_check_roaming_candidate(struct mlme_priv *mlme goto update; goto exit; #endif - if (is_same_ess(&competitor->network, &mlme->cur_network.network) == _FALSE) goto exit; if (rtw_is_desired_network(adapter, competitor) == _FALSE) goto exit; +#ifdef CONFIG_RTW_ROAM_QUICKSCAN + if (competitor->network.PhyInfo.SignalStrength > CONFIG_RTW_ROAM_QUICKSCAN_TH) + adapter->mlmeextpriv.quickscan_next = _TRUE; +#endif + #ifdef CONFIG_LAYER2_ROAMING if (mlme->need_to_roam == _FALSE) goto exit; #endif - -#ifdef CONFIG_RTW_80211R - if (rtw_ft_chk_flags(adapter, RTW_FT_PEER_EN)) { - if (rtw_ft_chk_roaming_candidate(adapter, competitor) == _FALSE) - goto exit; - } -#endif - - RTW_INFO("roam candidate:%s %s("MAC_FMT", ch%3u) rssi:%d, age:%5d\n", - (competitor == mlme->cur_network_scanned) ? "*" : " " , - competitor->network.Ssid.Ssid, - MAC_ARG(competitor->network.MacAddress), - competitor->network.Configuration.DSConfig, - (int)competitor->network.Rssi, - rtw_get_passing_time_ms(competitor->last_scanned) - ); - /* got specific addr to roam */ if (!is_zero_mac_addr(mlme->roam_tgt_addr)) { if (_rtw_memcmp(mlme->roam_tgt_addr, competitor->network.MacAddress, ETH_ALEN) == _TRUE) goto update; - else - goto exit; - } -#if 1 - if (rtw_get_passing_time_ms(competitor->last_scanned) >= mlme->roam_scanr_exp_ms) + result = "mac"; goto exit; + } -#if defined(CONFIG_RTW_80211R) && defined(CONFIG_RTW_WNM) - if (rtw_wnm_btm_diff_bss(adapter) && +#ifdef CONFIG_RTW_80211R + if (rtw_ft_chk_flags(adapter, RTW_FT_PEER_EN)) { + if (rtw_ft_chk_roaming_candidate(adapter, competitor) == _FALSE) { + result = "ft"; + goto exit; + } + } +#ifdef CONFIG_RTW_WNM + if (rtw_wnm_btm_diff_bss(adapter) && rtw_wnm_btm_roam_candidate(adapter, competitor)) { goto update; - } + } +#endif #endif - if (competitor->network.Rssi - mlme->cur_network_scanned->network.Rssi < mlme->roam_rssi_diff_th) - goto exit; - - if (*candidate != NULL && (*candidate)->network.Rssi >= competitor->network.Rssi) +#ifdef DBG_UNIT_TEST_ROAM + if (_rtw_memcmp(cur_network->network.MacAddress, + competitor->network.MacAddress, ETH_ALEN) == _TRUE) { + printk("roam: omit self candidate\n"); + result ="self"; goto exit; + } #else - goto exit; + if (!potential_5G && + rtw_get_passing_time_ms(competitor->last_scanned) >= mlme->roam_scanr_exp_ms) { + result = "age"; + goto exit; + } + + /* prefer younger candidate */ + if (*candidate != NULL && + rtw_get_passing_time_ms(competitor->last_scanned) >= \ + rtw_get_passing_time_ms((*candidate)->last_scanned)) { + result = "old"; + goto exit; + } + + if (potential_5G) { + /* use idle TH as thread */ + if (competitor->network.PhyInfo.SignalStrength - + cur_network->network.PhyInfo.SignalStrength < mlme->roam_idle_rssi_diff_th) { + result = "diff"; + goto exit; + } + } else { + /* TH refer to traffic status */ + if (competitor->network.PhyInfo.SignalStrength - + cur_network->network.PhyInfo.SignalStrength < roam_rssi_diff_th(mlme)) { + result = "diff"; + goto exit; + } + } + + if (*candidate != NULL && (*candidate)->network.Rssi >= competitor->network.Rssi) { + result = "rssi"; + goto exit; + } #endif update: + result = "ok"; *candidate = competitor; updated = _TRUE; exit: + if (result) + RTW_INFO("%s:%s %s("MAC_FMT", ch%3u) rssi:%d dBm, age:%5d [%4s]\n", + potential_5G ? "secondary" : "candidate", + (competitor == mlme->cur_network_scanned) ? "*" : " " , + competitor->network.Ssid.Ssid, + MAC_ARG(competitor->network.MacAddress), + competitor->network.Configuration.DSConfig, + translate_percentage_to_dbm(competitor->network.PhyInfo.SignalStrength), + rtw_get_passing_time_ms(competitor->last_scanned), + result + ); return updated; } @@ -3621,19 +4126,29 @@ int rtw_select_roaming_candidate(struct mlme_priv *mlme) _adapter *adapter; _queue *queue = &(mlme->scanned_queue); struct wlan_network *pnetwork = NULL; - struct wlan_network *candidate = NULL; + struct wlan_network *candidate = mlme->roam_network; + struct wlan_network *candidate_5G = mlme->candidate_5G; + char *info = NULL; + + mlme->roam_network = NULL; + mlme->candidate_5G = NULL; if (mlme->cur_network_scanned == NULL) { rtw_warn_on(1); goto exit; } - +#if 0 _enter_critical_bh(&(mlme->scanned_queue.lock), &irqL); + phead = get_list_head(queue); adapter = (_adapter *)mlme->nic_hdl; - mlme->pscanned = get_next(phead); + if (candidate && !IS_2G_BSS(mlme->cur_network_scanned->network)) + goto select_done; + + if (candidate == candidate_5G) + candidate_5G = NULL; /* candidate was copy from candidate_5G */ while (!rtw_end_of_queue_search(phead, mlme->pscanned)) { pnetwork = LIST_CONTAINOR(mlme->pscanned, struct wlan_network, list); @@ -3649,11 +4164,75 @@ int rtw_select_roaming_candidate(struct mlme_priv *mlme) , pnetwork->network.Ssid.Ssid , MAC_ARG(pnetwork->network.MacAddress) , pnetwork->network.Configuration.DSConfig - , (int)pnetwork->network.Rssi); - - rtw_check_roaming_candidate(mlme, &candidate, pnetwork); + , translate_percentage_to_dbm(pnetwork->network.PhyInfo.SignalStrength)); +#if 0 /* DO NOT check scan list again */ + if (!mlme->roam_network) + rtw_check_roaming_candidate(mlme, &candidate, pnetwork, 0); +#endif + /* Get potentional 5G when we connects to 2G */ + if (!mlme->roam_network || + (IS_5G_BSS(pnetwork->network) && (IS_2G_BSS(mlme->cur_network_scanned->network)))) + rtw_check_roaming_candidate(mlme, &candidate_5G, pnetwork, 1); } + _exit_critical_bh(&(mlme->scanned_queue.lock), &irqL); + +select_done: +#endif + if (candidate) + RTW_INFO("candidate: %s("MAC_FMT", ch%3u) rssi:%d dBm, age:%5d\n", + candidate->network.Ssid.Ssid, + MAC_ARG(candidate->network.MacAddress), + candidate->network.Configuration.DSConfig, + (int)candidate->network.Rssi, + rtw_get_passing_time_ms(candidate->last_scanned)); + + if (candidate_5G) + RTW_INFO("secondary: %s("MAC_FMT", ch%3u) rssi:%d dBm, age:%5d\n", + candidate_5G->network.Ssid.Ssid, + MAC_ARG(candidate_5G->network.MacAddress), + candidate_5G->network.Configuration.DSConfig, + (int)candidate_5G->network.Rssi, + rtw_get_passing_time_ms(candidate_5G->last_scanned)); + + /* got specific addr to roam */ + if (!is_zero_mac_addr(mlme->roam_tgt_addr)) { + if (_rtw_memcmp(mlme->roam_tgt_addr, candidate->network.MacAddress, ETH_ALEN) == _TRUE) { + RTW_INFO("Specifid roam target "MAC_FMT", ch:%u\n", + MAC_ARG(mlme->roam_tgt_addr), candidate->network.Configuration.DSConfig); + info = "[roam_tgt]"; + candidate_5G = NULL; + } + } + +#ifdef CONFIG_RTW_PREFER_5G + if (candidate && IS_5G_BSS(candidate->network)) { + ; + } else if (!candidate && candidate_5G) { + candidate = candidate_5G; + info = "[next_best]"; + + } else if (candidate && IS_2G_BSS(candidate->network)) { + /* candidate is 2G */ + if (candidate_5G) { + candidate = candidate_5G; + info = "[prefer 5G]"; + } else if (IS_5G_BSS(mlme->cur_network_scanned->network)) { + candidate = NULL; + info = "[stay on 5G]"; + } else { + info = "[Go 2G]"; + } + } +#else + if (!candidate && candidate_5G) { + candidate = candidate_5G; + info = "[next_best]"; + } +#endif + + RTW_INFO("roam criteria: rssi_diff_th greater than %d dbm and age less than %d ms\n", + roam_rssi_diff_th(mlme), mlme->roam_scanr_exp_ms); if (candidate == NULL) { /* if parent note lost the path to root and there is no other cadidate, report disconnection */ @@ -3669,7 +4248,7 @@ int rtw_select_roaming_candidate(struct mlme_priv *mlme) receive_disconnect(adapter, mlme->cur_network_scanned->network.MacAddress , WLAN_REASON_EXPIRATION_CHK, _FALSE); #endif - RTW_INFO("%s: return _FAIL(candidate == NULL)\n", __FUNCTION__); + RTW_INFO("%s: return _FAIL(candidate == NULL) %s\n", __FUNCTION__, info ? info:""); ret = _FAIL; goto exit; } else { @@ -3683,9 +4262,9 @@ int rtw_select_roaming_candidate(struct mlme_priv *mlme) candidate->network.Ssid.Ssid, MAC_ARG(candidate->network.MacAddress), candidate->network.Configuration.DSConfig, rson_score); #else - RTW_INFO("%s: candidate: %s("MAC_FMT", ch:%u)\n", __FUNCTION__, + RTW_INFO("%s: candidate: %s("MAC_FMT", ch:%u) %s\n", __FUNCTION__, candidate->network.Ssid.Ssid, MAC_ARG(candidate->network.MacAddress), - candidate->network.Configuration.DSConfig); + candidate->network.Configuration.DSConfig, info ? info:""); #endif mlme->roam_network = candidate; @@ -3695,7 +4274,6 @@ int rtw_select_roaming_candidate(struct mlme_priv *mlme) ret = _SUCCESS; exit: - _exit_critical_bh(&(mlme->scanned_queue.lock), &irqL); return ret; } @@ -3718,7 +4296,7 @@ static int rtw_check_join_candidate(struct mlme_priv *mlme if (rtw_chset_search_ch(chset, ch) < 0) goto exit; if (IS_DFS_SLAVE_WITH_RD(rfctl) - && !rtw_odm_dfs_domain_unknown(rfctl_to_dvobj(rfctl)) + && !rtw_rfctl_dfs_domain_unknown(rfctl) && rtw_chset_is_ch_non_ocp(chset, ch)) goto exit; @@ -3774,7 +4352,7 @@ static int rtw_check_join_candidate(struct mlme_priv *mlme if (updated) { RTW_INFO("[by_bssid:%u][assoc_ssid:%s][to_roam:%u] " - "new candidate: %s("MAC_FMT", ch%u) rssi:%d\n", + "new candidate: %s("MAC_FMT", ch%u) rssi:%d dBm\n", mlme->assoc_by_bssid, mlme->assoc_ssid.Ssid, rtw_to_roam(adapter), @@ -3820,7 +4398,6 @@ int rtw_select_and_join_from_scanned_queue(struct mlme_priv *pmlmepriv) #ifdef CONFIG_LAYER2_ROAMING if (pmlmepriv->roam_network) { candidate = pmlmepriv->roam_network; - pmlmepriv->roam_network = NULL; goto candidate_exist; } #endif @@ -3898,6 +4475,35 @@ candidate_exist: } #endif set_fwstate(pmlmepriv, WIFI_UNDER_LINKING); + +#if defined(CONFIG_CONCURRENT_MODE) && defined(CONFIG_AP_MODE) +{ + u8 ifbmp = 0; + u8 csa_cnt; + struct mi_state mstate; + struct rf_ctl_t *rfctl; + + rfctl = adapter_to_rfctl(adapter); + csa_cnt = rfctl->ap_csa_cnt_input; + ifbmp = rtw_mi_get_ap_mesh_ifbmp(adapter); + rtw_mi_status_no_self(adapter, &mstate); + + if (csa_cnt > 0 && ifbmp && MSTATE_AP_LD_NUM(&mstate) && + rtw_mi_get_union_chan(adapter) != candidate->network.Configuration.DSConfig) { + rfctl->ap_csa_en = CSA_STA_JOINBSS; + rfctl->ap_csa_switch_cnt = csa_cnt; + rtw_bss_get_chbw(&(candidate->network), &rfctl->ap_csa_ch + , &rfctl->ap_csa_ch_width, &rfctl->ap_csa_ch_offset, 1, 1); + rtw_set_ap_csa_cmd(adapter); + + /* Store candidata network until softap switch channel done */ + _rtw_memcpy(&(pmlmepriv->candidate_network), candidate, sizeof(struct wlan_network)); + ret = _SUCCESS; + goto exit; + } +} +#endif + ret = rtw_joinbss_cmd(adapter, candidate); exit: @@ -4256,67 +4862,123 @@ int rtw_cached_pmkid(_adapter *Adapter, u8 *bssid) return SecIsInPMKIDList(Adapter, bssid); } -int rtw_rsn_sync_pmkid(_adapter *adapter, u8 *ie, uint ie_len, int i_ent) +int rtw_get_empty_pmkid_entry(_adapter *Adapter) { + struct security_priv *sec = &Adapter->securitypriv; + int i = 0, age_id = 0; + u32 age_ms = 0, tmp_ms = 0; + + do { + if (sec->PMKIDList[i].bUsed) { + tmp_ms = rtw_get_passing_time_ms(sec->PMKIDList[i].last_use); + if (age_ms < tmp_ms) { + age_ms = tmp_ms; + age_id = i; + } + i++; /* continue; */ + } else { + age_id = i; + break; + } + } while (i < NUM_PMKID_CACHE); + + return age_id; +} + +void rtw_set_pmksa(_adapter *padapter, u8 *bssid, u8 *pmkid) +{ + struct security_priv *psecuritypriv = &padapter->securitypriv; + int index; + + /* overwrite PMKID */ + index = rtw_cached_pmkid(padapter, bssid); + + if (index >= 0) { + /* BSSID is matched, the same AP => rewrite with new PMKID. */ + RTW_INFO("BSSID("MAC_FMT") exists in the PMKList.\n", MAC_ARG(bssid)); + } else { + index = rtw_get_empty_pmkid_entry(padapter); + RTW_INFO("Use the new entry index = %d for PMKID.\n", index); + + _rtw_memcpy(psecuritypriv->PMKIDList[index].Bssid, bssid, ETH_ALEN); + } + RTW_INFO(MAC_FMT" set pmkid:"KEY_FMT"\n", MAC_ARG(bssid), KEY_ARG(pmkid)); + + _rtw_memcpy(psecuritypriv->PMKIDList[index].PMKID, pmkid, WLAN_PMKID_LEN); + psecuritypriv->PMKIDList[index].bUsed = _TRUE; + psecuritypriv->PMKIDList[index].last_use = rtw_get_current_time(); +} + +int rtw_pmkid_sync_rsn(_adapter *adapter, u8 *ie, uint ie_len, int i_ent) +{ + struct mlme_priv *pmlmepriv = &adapter->mlmepriv; struct security_priv *sec = &adapter->securitypriv; struct rsne_info info; - u8 gm_cs[4]; - int i; + u8 rbuf[128], *pmk_pos; + u16 val16 = cpu_to_le16(1); + int i, rlen = 0; rtw_rsne_info_parse(ie, ie_len, &info); if (info.err) { - RTW_WARN(FUNC_ADPT_FMT" rtw_rsne_info_parse error\n" - , FUNC_ADPT_ARG(adapter)); - return 0; + RTW_INFO(" rtw_rsne_info_parse fail\n"); + info.pmkid_cnt = 0; /* Do NOT refer ie's pmkid */ } - if (i_ent < 0 && info.pmkid_cnt == 0) - goto exit; - - if (info.pmkid_list == NULL) - goto exit; - - if (i_ent >= 0 && info.pmkid_cnt == 1 && _rtw_memcmp(info.pmkid_list, sec->PMKIDList[i_ent].PMKID, 16)) { - RTW_INFO(FUNC_ADPT_FMT" has carried the same PMKID:"KEY_FMT"\n" - , FUNC_ADPT_ARG(adapter), KEY_ARG(&sec->PMKIDList[i_ent].PMKID)); + if (i_ent < 0 && info.pmkid_cnt == 0) { + RTW_INFO(MAC_FMT" pmkid not found\n", MAC_ARG(pmlmepriv->assoc_bssid)); goto exit; } - /* bakcup group mgmt cs */ - if (info.gmcs) - _rtw_memcpy(gm_cs, info.gmcs, 4); + if (i_ent >= 0 && info.pmkid_cnt == 1) { + if (pmlmepriv->assoc_by_bssid) { + RTW_INFO(MAC_FMT" origin pmkid:"KEY_FMT"\n", + MAC_ARG(pmlmepriv->assoc_bssid), KEY_ARG(info.pmkid_list)); + } else { + if (info.pmkid_list) { + memcpy(info.pmkid_list, sec->PMKIDList[i_ent].PMKID, 16); + sec->PMKIDList[i_ent].last_use = rtw_get_current_time(); + } + RTW_INFO(MAC_FMT" replace pmkid:"KEY_FMT"\n", + MAC_ARG(sec->PMKIDList[i_ent].Bssid), KEY_ARG(sec->PMKIDList[i_ent].PMKID)); + } + goto exit; - if (info.pmkid_cnt) { - RTW_INFO(FUNC_ADPT_FMT" remove original PMKID, count:%u\n" - , FUNC_ADPT_ARG(adapter), info.pmkid_cnt); - for (i = 0; i < info.pmkid_cnt; i++) - RTW_INFO(" "KEY_FMT"\n", KEY_ARG(info.pmkid_list + i * 16)); + } else if (i_ent < 0 && info.pmkid_cnt == 1 && pmlmepriv->assoc_by_bssid) { + /* ADD new entry */ + rtw_set_pmksa(adapter, pmlmepriv->assoc_bssid, info.pmkid_list); + + } else if (i_ent >= 0 && info.pmkid_cnt == 0) { + + /* insert PMKID to info->cap + 2 */ + RTW_INFO(MAC_FMT" append pmkid:"KEY_FMT"\n", + MAC_ARG(sec->PMKIDList[i_ent].Bssid), KEY_ARG(sec->PMKIDList[i_ent].PMKID)); + + if (info.cap) { + sec->PMKIDList[i_ent].last_use = rtw_get_current_time(); + pmk_pos = info.cap + 2; + rlen = ie_len - (info.cap - pmk_pos); + + if (rlen >= sizeof(rbuf)) { + RTW_WARN("rlen=%d over buffer size\n", rlen); + goto exit; + } + /* backup copy remain ie */ + memset(rbuf, 0, sizeof(rbuf)); + memcpy(rbuf, pmk_pos, rlen); + + /* insert pmkid from cache */ + memcpy(pmk_pos, &val16, 2); + pmk_pos += 2; + memcpy(pmk_pos, sec->PMKIDList[i_ent].PMKID, 16); + pmk_pos += 16; + /* restore remain */ + memcpy(pmk_pos, rbuf, rlen); + /* update length */ + ie[1] += 18; + ie_len += 18; + } } - - if (i_ent >= 0) { - RTW_INFO(FUNC_ADPT_FMT" append PMKID:"KEY_FMT"\n" - , FUNC_ADPT_ARG(adapter), KEY_ARG(sec->PMKIDList[i_ent].PMKID)); - - info.pmkid_cnt = 1; /* update new pmkid_cnt */ - _rtw_memcpy(info.pmkid_list, sec->PMKIDList[i_ent].PMKID, 16); - } else - info.pmkid_cnt = 0; /* update new pmkid_cnt */ - - RTW_PUT_LE16(info.pmkid_list - 2, info.pmkid_cnt); - if (info.gmcs) - _rtw_memcpy(info.pmkid_list + 16 * info.pmkid_cnt, gm_cs, 4); - - ie_len = 1 + 1 + 2 + 4 - + 2 + 4 * info.pcs_cnt - + 2 + 4 * info.akm_cnt - + 2 - + 2 + 16 * info.pmkid_cnt - + (info.gmcs ? 4 : 0) - ; - - ie[1] = (u8)(ie_len - 2); - exit: return ie_len; } @@ -4357,7 +5019,15 @@ sint rtw_restruct_sec_ie(_adapter *adapter, u8 *out_ie) if (authmode == WLAN_EID_RSN) { iEntry = SecIsInPMKIDList(adapter, pmlmepriv->assoc_bssid); - ielength = rtw_rsn_sync_pmkid(adapter, out_ie, ielength, iEntry); + ielength = rtw_pmkid_sync_rsn(adapter, out_ie, ielength, iEntry); + } + + if ((psecuritypriv->rsnx_ie_len >= 3)) { + u8 *_pos = out_ie + (psecuritypriv->supplicant_ie[1] + 2); + _rtw_memcpy(_pos, psecuritypriv->rsnx_ie, + psecuritypriv->rsnx_ie_len); + ielength += psecuritypriv->rsnx_ie_len; + RTW_INFO_DUMP("update IE for RSNX :", out_ie, ielength); } return ielength; @@ -4528,10 +5198,13 @@ void rtw_ht_use_default_setting(_adapter *padapter) CLEAR_FLAGS(phtpriv->beamform_cap); #ifdef CONFIG_BEAMFORMING #ifdef RTW_BEAMFORMING_VERSION_2 +#ifdef CONFIG_CONCURRENT_MODE /* only enable beamforming in STA client mode */ - if (MLME_IS_STA(padapter) && !MLME_IS_GC(padapter) - && !MLME_IS_ADHOC(padapter) - && !MLME_IS_MESH(padapter)) + if (MLME_IS_STA(padapter) && !MLME_IS_GC(padapter)) +#else + if ((MLME_IS_AP(padapter) && !MLME_IS_GO(padapter)) || + (MLME_IS_STA(padapter) && !MLME_IS_GC(padapter))) +#endif #endif { rtw_hal_get_def_var(padapter, HAL_DEF_EXPLICIT_BEAMFORMER, (u8 *)&bHwSupportBeamformer); @@ -4563,13 +5236,14 @@ void rtw_build_wmm_ie_ht(_adapter *padapter, u8 *out_ie, uint *pout_len) } #if defined(CONFIG_80211N_HT) /* the fucntion is >= passive_level */ -unsigned int rtw_restructure_ht_ie(_adapter *padapter, u8 *in_ie, u8 *out_ie, uint in_len, uint *pout_len, u8 channel) +unsigned int rtw_restructure_ht_ie(_adapter *padapter, u8 *in_ie, u8 *out_ie, uint in_len, uint *pout_len, u8 channel, struct country_chplan *req_chplan) { u32 ielen, out_len; u32 rx_packet_offset, max_recvbuf_sz; HT_CAP_AMPDU_FACTOR max_rx_ampdu_factor; HT_CAP_AMPDU_DENSITY best_ampdu_density; unsigned char *p, *pframe; + BAND_TYPE band = channel > 14 ? BAND_ON_5G : BAND_ON_2_4G; struct rtw_ieee80211_ht_cap ht_capie; u8 cbw40_enable = 0, rf_num = 0, rx_stbc_nss = 0, rx_nss = 0; struct registry_priv *pregistrypriv = &padapter->registrypriv; @@ -4594,10 +5268,10 @@ unsigned int rtw_restructure_ht_ie(_adapter *padapter, u8 *in_ie, u8 *out_ie, ui /* check if 40MHz is allowed according to hal cap and registry */ if (hal_chk_bw_cap(padapter, BW_CAP_40M)) { - if (channel > 14) { + if (band == BAND_ON_5G) { if (REGSTY_IS_BW_5G_SUPPORT(pregistrypriv, CHANNEL_WIDTH_40)) cbw40_enable = 1; - } else { + } else if (band == BAND_ON_2_4G) { if (REGSTY_IS_BW_2G_SUPPORT(pregistrypriv, CHANNEL_WIDTH_40)) cbw40_enable = 1; } @@ -4633,6 +5307,30 @@ unsigned int rtw_restructure_ht_ie(_adapter *padapter, u8 *in_ie, u8 *out_ie, ui } } } + + /* IOT issue : AP TP-link Archer C7, correct the secondary channel offset of 5G channel */ + if (oper_bw == CHANNEL_WIDTH_40 && p && ielen == HT_OP_IE_LEN) { + u8 primary_ch = GET_HT_OP_ELE_PRI_CHL(p + 2); + u8 offset_bak = oper_offset; + + if (primary_ch > 14) { + rtw_get_offset_by_chbw(primary_ch, oper_bw, &oper_offset); + + /* secondary channel offset is wrong */ + if (offset_bak != oper_offset) { + RTW_INFO(FUNC_ADPT_FMT": secondary channel offset is wrong, so workaround\n", FUNC_ADPT_ARG(padapter)); + switch (oper_offset) { + case HAL_PRIME_CHNL_OFFSET_LOWER: + SET_HT_OP_ELE_2ND_CHL_OFFSET(p + 2, SCA); + break; + case HAL_PRIME_CHNL_OFFSET_UPPER: + SET_HT_OP_ELE_2ND_CHL_OFFSET(p + 2, SCB); + break; + } + } + } + } + // IOT issue : AP TP-Link WDR6500 if(oper_bw == CHANNEL_WIDTH_40){ p = rtw_get_ie(in_ie, WLAN_EID_HT_CAP, &ielen, in_len); @@ -4647,17 +5345,20 @@ unsigned int rtw_restructure_ht_ie(_adapter *padapter, u8 *in_ie, u8 *out_ie, ui /* adjust bw to fit in channel plan setting */ if (oper_bw == CHANNEL_WIDTH_40 && oper_offset != HAL_PRIME_CHNL_OFFSET_DONT_CARE /* check this because TDLS has no info to set offset */ - && (!rtw_chset_is_chbw_valid(chset, channel, oper_bw, oper_offset) - || (IS_DFS_SLAVE_WITH_RD(rfctl) - && !rtw_odm_dfs_domain_unknown(rfctl_to_dvobj(rfctl)) - && rtw_chset_is_chbw_non_ocp(chset, channel, oper_bw, oper_offset)) - ) ) { - oper_bw = CHANNEL_WIDTH_20; - oper_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE; - rtw_warn_on(!rtw_chset_is_chbw_valid(chset, channel, oper_bw, oper_offset)); - if (IS_DFS_SLAVE_WITH_RD(rfctl) && !rtw_odm_dfs_domain_unknown(rfctl_to_dvobj(rfctl))) - rtw_warn_on(rtw_chset_is_chbw_non_ocp(chset, channel, oper_bw, oper_offset)); + if ((req_chplan && !rtw_country_chplan_is_chbw_valid(req_chplan, band, channel, oper_bw, oper_offset, 1, 1, pregistrypriv)) + || (!req_chplan && !rtw_chset_is_chbw_valid(chset, channel, oper_bw, oper_offset, 1, 1)) + || (IS_DFS_SLAVE_WITH_RD(rfctl) + && !rtw_rfctl_dfs_domain_unknown(rfctl) + && rtw_chset_is_chbw_non_ocp(chset, channel, oper_bw, oper_offset)) + ) { + oper_bw = CHANNEL_WIDTH_20; + oper_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE; + rtw_warn_on(req_chplan && !rtw_country_chplan_is_chbw_valid(req_chplan, band, channel, oper_bw, oper_offset, 1, 1, pregistrypriv)); + rtw_warn_on(!req_chplan && !rtw_chset_is_chbw_valid(chset, channel, oper_bw, oper_offset, 1, 1)); + if (IS_DFS_SLAVE_WITH_RD(rfctl) && !rtw_rfctl_dfs_domain_unknown(rfctl)) + rtw_warn_on(rtw_chset_is_chbw_non_ocp(chset, channel, oper_bw, oper_offset)); + } } if (oper_bw == CHANNEL_WIDTH_40) { @@ -4894,16 +5595,16 @@ void rtw_update_ht_cap(_adapter *padapter, u8 *pie, uint ie_len, u8 channel) (pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info & BIT(1)) && (pmlmeinfo->HT_info.infos[0] & BIT(2))) { int i; - u8 tx_nss = 0; + u8 rx_nss = 0; - tx_nss = GET_HAL_TX_NSS(padapter); + rx_nss = GET_HAL_RX_NSS(padapter); /* update the MCS set */ for (i = 0; i < 16; i++) pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate[i] &= pmlmeext->default_supported_mcs_set[i]; /* update the MCS rates */ - switch (tx_nss) { + switch (rx_nss) { case 1: set_mcs_rate_by_mask(pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate, MCS_RATE_1R); break; @@ -4922,7 +5623,7 @@ void rtw_update_ht_cap(_adapter *padapter, u8 *pie, uint ie_len, u8 channel) set_mcs_rate_by_mask(pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate, MCS_RATE_4R); break; default: - RTW_WARN("tx_nss:%u is not expected\n", tx_nss); + RTW_WARN("rx_nss:%u is not expected\n", rx_nss); } /* switch to the 40M Hz mode accoring to the AP */ @@ -5068,34 +5769,39 @@ void rtw_issue_addbareq_cmd(_adapter *padapter, struct xmit_frame *pxmitframe, u } #endif /* CONFIG_80211N_HT */ -void rtw_append_exented_cap(_adapter *padapter, u8 *out_ie, uint *pout_len) +void rtw_append_extended_cap(_adapter *padapter, u8 *out_ie, uint *pout_len) { - struct mlme_priv *pmlmepriv = &padapter->mlmepriv; - struct ht_priv *phtpriv = &pmlmepriv->htpriv; + struct mlme_priv *pmlmepriv = &padapter->mlmepriv; + struct ht_priv *phtpriv = &pmlmepriv->htpriv; #ifdef CONFIG_80211AC_VHT - struct vht_priv *pvhtpriv = &pmlmepriv->vhtpriv; + struct vht_priv *pvhtpriv = &pmlmepriv->vhtpriv; #endif /* CONFIG_80211AC_VHT */ - u8 cap_content[8] = { 0 }; - u8 *pframe; - u8 null_content[8] = {0}; + u8 *ext_cap_data = pmlmepriv->ext_capab_ie_data; + u8 *ext_cap_data_len = &(pmlmepriv->ext_capab_ie_len); if (phtpriv->bss_coexist) - SET_EXT_CAPABILITY_ELE_BSS_COEXIST(cap_content, 1); - + rtw_add_ext_cap_info(ext_cap_data, ext_cap_data_len, BSS_COEXT); +#ifdef CONFIG_ECSA + rtw_add_ext_cap_info(ext_cap_data, ext_cap_data_len, EXT_CH_SWITCH); +#endif #ifdef CONFIG_80211AC_VHT if (pvhtpriv->vht_option) - SET_EXT_CAPABILITY_ELE_OP_MODE_NOTIF(cap_content, 1); + rtw_add_ext_cap_info(ext_cap_data, ext_cap_data_len, OP_MODE_NOTIFICATION); #endif /* CONFIG_80211AC_VHT */ #ifdef CONFIG_RTW_WNM - rtw_wnm_set_ext_cap_btm(cap_content, 1); + rtw_add_ext_cap_info(ext_cap_data, ext_cap_data_len, BSS_TRANSITION); #endif + +#ifdef CONFIG_RTW_MBO + rtw_add_ext_cap_info(ext_cap_data, ext_cap_data_len, INTERWORKING); +#endif + /* From 802.11 specification,if a STA does not support any of capabilities defined in the Extended Capabilities element, then the STA is not required to transmit the Extended Capabilities element. */ - if (_FALSE == _rtw_memcmp(cap_content, null_content, 8)) - pframe = rtw_set_ie(out_ie + *pout_len, EID_EXTCapability, 8, cap_content , pout_len); + rtw_update_ext_cap_ie(ext_cap_data, *ext_cap_data_len, out_ie, pout_len, _BEACON_IE_OFFSET_); } #endif @@ -5137,6 +5843,7 @@ void _rtw_roaming(_adapter *padapter, struct wlan_network *tgt_network) RTW_INFO("roaming from %s("MAC_FMT"), length:%d\n", cur_network->network.Ssid.Ssid, MAC_ARG(cur_network->network.MacAddress), cur_network->network.Ssid.SsidLength); + _rtw_memcpy(&pmlmepriv->roam_from, &cur_network->network.MacAddress, ETH_ALEN); _rtw_memcpy(&pmlmepriv->assoc_ssid, &cur_network->network.Ssid, sizeof(NDIS_802_11_SSID)); pmlmepriv->assoc_ch = 0; pmlmepriv->assoc_by_bssid = _FALSE; diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_mlme_ext.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_mlme_ext.c index 9f90e5da..02a7149b 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_mlme_ext.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_mlme_ext.c @@ -15,11 +15,10 @@ #define _RTW_MLME_EXT_C_ #include -#ifdef CONFIG_IOCTL_CFG80211 - #include -#endif /* CONFIG_IOCTL_CFG80211 */ #include +#define DBG_XMIT_ACK +#define DBG_SITESURVEY struct mlme_handler mlme_sta_tbl[] = { {WIFI_ASSOCREQ, "OnAssocReq", &OnAssocReq}, @@ -109,6 +108,7 @@ unsigned char WPS_OUI[] = {0x00, 0x50, 0xf2, 0x04}; unsigned char P2P_OUI[] = {0x50, 0x6F, 0x9A, 0x09}; unsigned char WFD_OUI[] = {0x50, 0x6F, 0x9A, 0x0A}; unsigned char DPP_OUI[] = {0x50, 0x6F, 0x9A, 0x1A}; +unsigned char MULTI_AP_OUI[] = {0x50, 0x6F, 0x9A, 0x1B}; unsigned char WMM_INFO_OUI[] = {0x00, 0x50, 0xf2, 0x02, 0x00, 0x01}; unsigned char WMM_PARA_OUI[] = {0x00, 0x50, 0xf2, 0x02, 0x01, 0x01}; @@ -177,126 +177,245 @@ static void init_channel_list(_adapter *padapter, RT_CHANNEL_INFO *channel_set } +#if CONFIG_TXPWR_LIMIT +static void rtw_txpwr_init_regd_default(struct rf_ctl_t *rfctl) +{ + bool country_txpwr_lmt_override = 0; + u8 txpwr_lmt[BAND_MAX]; + const char *name[BAND_MAX]; + u8 unknown_bmp = 0; /* unknown bitmap */ + char buf[TXPWR_NAMES_STR_LEN]; + u8 band; + bool altenate_applied = 0; + + for (band = 0; band < BAND_MAX; band++) { + txpwr_lmt[band] = TXPWR_LMT_NONE; + name[band] = NULL; + unknown_bmp |= BIT(band); + } + + if (rfctl->txpwr_lmt_override != TXPWR_LMT_DEF) { + country_txpwr_lmt_override = 1; + for (band = 0; band < BAND_MAX; band++) + txpwr_lmt[band] = rfctl->txpwr_lmt_override; + } else { + txpwr_lmt[BAND_ON_2_4G] = rtw_regd_to_txpwr_lmt(rtw_chplan_get_default_regd_2g(rfctl->ChannelPlan)); + #if CONFIG_IEEE80211_BAND_5GHZ + txpwr_lmt[BAND_ON_5G] = rtw_regd_to_txpwr_lmt(rtw_chplan_get_default_regd_5g(rfctl->ChannelPlan)); + #endif + #if CONFIG_IEEE80211_BAND_6GHZ + txpwr_lmt[BAND_ON_6G] = rtw_regd_to_txpwr_lmt(rtw_chplan_get_default_regd_6g(rfctl->chplan_6g)); + #endif + } + + for (band = 0; band < BAND_MAX; band++) { + name[band] = txpwr_lmt_str(txpwr_lmt[band]); + if (txpwr_lmt[band] == TXPWR_LMT_NONE || txpwr_lmt[band] == TXPWR_LMT_WW || txpwr_lmt[band] == TXPWR_LMT_NUM + || _rtw_txpwr_lmt_get_by_name(rfctl, name[band])) + unknown_bmp &= ~BIT(band); + } + + if (country_txpwr_lmt_override) { + RTW_PRINT("default mapping country:%c%c to txpwr_lmt:%s\n" + , rfctl->alpha2[0], rfctl->alpha2[1] + , rtw_get_txpwr_lmt_names_str(buf, name, unknown_bmp) + ); + } else { + RTW_PRINT("default mapping domain to txpwr_lmt:%s\n" + , rtw_get_txpwr_lmt_names_str(buf, name, unknown_bmp)); + } + if (unknown_bmp == 0) + goto exit; + + for (band = 0; band < BAND_MAX; band++) { + if (!(unknown_bmp & BIT(band))) + continue; + if (TXPWR_LMT_ALTERNATE_DEFINED(txpwr_lmt[band])) { + /* + * To support older chips without new predefined txpwr_lmt: + * - use txpwr_lmt_alternate() to get alternate if the selection is not found + */ + altenate_applied = 1; + txpwr_lmt[band] = txpwr_lmt_alternate(txpwr_lmt[band]); + name[band] = txpwr_lmt_str(txpwr_lmt[band]); + if (_rtw_txpwr_lmt_get_by_name(rfctl, name[band])) + unknown_bmp &= ~BIT(band); + } + } + if (altenate_applied) { + RTW_PRINT("alternate applied txpwr_lmt:%s\n" + , rtw_get_txpwr_lmt_names_str(buf, name, unknown_bmp)); + if (unknown_bmp == 0) + goto exit; + } + + for (band = 0; band < BAND_MAX; band++) { + if (!(unknown_bmp & BIT(band))) + continue; + txpwr_lmt[band] = TXPWR_LMT_WW; + name[band] = txpwr_lmt_str(txpwr_lmt[band]); + unknown_bmp &= ~BIT(band); + } + RTW_PRINT("world wide applied txpwr_lmt:%s\n" + , rtw_get_txpwr_lmt_names_str(buf, name, unknown_bmp)); + +exit: + for (band = 0; band < BAND_MAX; band++) + rfctl->txpwr_lmt_name[band] = name[band]; +} + void rtw_txpwr_init_regd(struct rf_ctl_t *rfctl) { - u8 regd; + const char *name = NULL; + u8 band; struct regd_exc_ent *exc; struct txpwr_lmt_ent *ent; _irqL irqL; _enter_critical_mutex(&rfctl->txpwr_lmt_mutex, &irqL); - rfctl->regd_name = NULL; + for (band = 0; band < BAND_MAX; band++) + rfctl->txpwr_lmt_name[band] = NULL; - if (rfctl->txpwr_regd_num == 0) { + if (rfctl->txpwr_lmt_num == 0) { RTW_PRINT("there is no any txpwr_regd\n"); goto release_lock; } /* search from exception mapping */ - exc = _rtw_regd_exc_search(rfctl - , rfctl->country_ent ? rfctl->country_ent->alpha2 : NULL - , rfctl->ChannelPlan); + exc = _rtw_regd_exc_search(rfctl, rfctl->alpha2, rfctl->ChannelPlan); if (exc) { u8 has_country = (exc->country[0] == '\0' && exc->country[1] == '\0') ? 0 : 1; - if (strcmp(exc->regd_name, regd_str(TXPWR_LMT_NONE)) == 0) - rfctl->regd_name = regd_str(TXPWR_LMT_NONE); - else if (strcmp(exc->regd_name, regd_str(TXPWR_LMT_WW)) == 0) - rfctl->regd_name = regd_str(TXPWR_LMT_WW); + if (strcmp(exc->lmt_name, txpwr_lmt_str(TXPWR_LMT_NONE)) == 0) + name = txpwr_lmt_str(TXPWR_LMT_NONE); + else if (strcmp(exc->lmt_name, txpwr_lmt_str(TXPWR_LMT_WW)) == 0) + name = txpwr_lmt_str(TXPWR_LMT_WW); else { - ent = _rtw_txpwr_lmt_get_by_name(rfctl, exc->regd_name); + ent = _rtw_txpwr_lmt_get_by_name(rfctl, exc->lmt_name); if (ent) - rfctl->regd_name = ent->regd_name; + name = ent->name; } - RTW_PRINT("exception mapping country:%c%c domain:0x%02x to%s regd_name:%s\n" - , has_country ? exc->country[0] : '0' - , has_country ? exc->country[1] : '0' + RTW_PRINT("exception mapping country:%c%c domain:0x%02x to%s txpwr_lmt:%s\n" + , has_country ? exc->country[0] : '-' + , has_country ? exc->country[1] : '-' , exc->domain - , rfctl->regd_name ? "" : " unknown" - , exc->regd_name + , name ? "" : " unknown" + , exc->lmt_name ); - if (rfctl->regd_name) + if (name) { + for (band = 0; band < BAND_MAX; band++) + rfctl->txpwr_lmt_name[band] = name; goto release_lock; + } } +#ifdef CONFIG_REGD_SRC_FROM_OS + if (rfctl->regd_src == REGD_SRC_OS) { + if (RFCTL_REG_WORLDWIDE(rfctl)) + name = txpwr_lmt_str(TXPWR_LMT_WW); + else { + char alpha2[3] = { + rfctl->alpha2[0], rfctl->alpha2[1], 0}; + + ent = _rtw_txpwr_lmt_get_by_name(rfctl, alpha2); + if (ent) + name = ent->name; + } + + if (name) { + for (band = 0; band < BAND_MAX; band++) + rfctl->txpwr_lmt_name[band] = name; + RTW_PRINT("mapping country:%c%c to txpwr_lmt:%s\n" + , rfctl->alpha2[0] + , rfctl->alpha2[1] + , name + ); + goto release_lock; + } + + if (rfctl->ChannelPlan == RTW_CHPLAN_UNSPECIFIED) { + name = txpwr_lmt_str(TXPWR_LMT_WW); + for (band = 0; band < BAND_MAX; band++) + rfctl->txpwr_lmt_name[band] = name; + RTW_PRINT("mapping unsupported country:%c%c to txpwr_lmt:%s\n" + , rfctl->alpha2[0] + , rfctl->alpha2[1] + , name + ); + goto release_lock; + } + } +#endif + /* follow default channel plan mapping */ - regd = rtw_chplan_get_default_regd(rfctl->ChannelPlan); - if (regd == TXPWR_LMT_NONE) - rfctl->regd_name = regd_str(TXPWR_LMT_NONE); - else if (regd == TXPWR_LMT_WW) - rfctl->regd_name = regd_str(TXPWR_LMT_WW); - else { - ent = _rtw_txpwr_lmt_get_by_name(rfctl, regd_str(regd)); - if (ent) - rfctl->regd_name = ent->regd_name; - } - - RTW_PRINT("default mapping domain:0x%02x to%s regd_name:%s\n" - , rfctl->ChannelPlan - , rfctl->regd_name ? "" : " unknown" - , regd_str(regd) - ); - if (rfctl->regd_name) - goto release_lock; - - switch (regd) { - /* - * To support older chips without new predefined regd: - * - use FCC if IC or CHILE or MEXICO not found - * - use ETSI if KCC or ACMA not found - */ - case TXPWR_LMT_IC: - case TXPWR_LMT_KCC: - case TXPWR_LMT_ACMA: - case TXPWR_LMT_CHILE: - case TXPWR_LMT_MEXICO: - if (regd == TXPWR_LMT_IC || regd == TXPWR_LMT_CHILE || regd == TXPWR_LMT_MEXICO) - regd = TXPWR_LMT_FCC; - else if (regd == TXPWR_LMT_KCC || regd == TXPWR_LMT_ACMA) - regd = TXPWR_LMT_ETSI; - ent = _rtw_txpwr_lmt_get_by_name(rfctl, regd_str(regd)); - if (ent) - rfctl->regd_name = ent->regd_name; - RTW_PRINT("alternate regd_name:%s %s\n" - , regd_str(regd) - , rfctl->regd_name ? "is used" : "not found" - ); - if (rfctl->regd_name) - break; - default: - rfctl->regd_name = regd_str(TXPWR_LMT_WW); - RTW_PRINT("assign %s for default case\n", regd_str(TXPWR_LMT_WW)); - break; - }; + rtw_txpwr_init_regd_default(rfctl); release_lock: _exit_critical_mutex(&rfctl->txpwr_lmt_mutex, &irqL); } -void rtw_rfctl_init(_adapter *adapter) +bool rtw_rfctl_is_current_txpwr_lmt(struct rf_ctl_t *rfctl, const char *name) { - struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + int band; - rfctl->max_chan_nums = init_channel_set(adapter, rfctl->ChannelPlan, rfctl->channel_set); - init_channel_list(adapter, rfctl->channel_set, &rfctl->channel_list); + for (band = 0; band < BAND_MAX; band++) + if (rfctl->txpwr_lmt_name[band] && strcmp(name, rfctl->txpwr_lmt_name[band]) == 0) + return 1; + + return 0; +} +#endif /* CONFIG_TXPWR_LIMIT */ + +int rtw_rfctl_init(_adapter *adapter) +{ + struct registry_priv *regsty = adapter_to_regsty(adapter); + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + int ret; _rtw_mutex_init(&rfctl->offch_mutex); + rfctl->user_ChannelPlan = RTW_CHPLAN_UNSPECIFIED; +#if CONFIG_IEEE80211_BAND_6GHZ + rfctl->user_chplan_6g = RTW_CHPLAN_6G_UNSPECIFIED; +#endif + +#ifdef CONFIG_80211D + rfctl->country_ie_slave_en_role = regsty->country_ie_slave_en_role; + rfctl->country_ie_slave_en_ifbmp = regsty->country_ie_slave_en_ifbmp; + rfctl->effected_cisr_id = CONFIG_IFACE_NUMBER; +#endif + +#if CONFIG_TXPWR_LIMIT _rtw_mutex_init(&rfctl->txpwr_lmt_mutex); _rtw_init_listhead(&rfctl->reg_exc_list); _rtw_init_listhead(&rfctl->txpwr_lmt_list); +#endif rfctl->ch_sel_within_same_band = 1; #ifdef CONFIG_DFS_MASTER + rfctl->dfs_region_domain = regsty->dfs_region_domain; rfctl->cac_start_time = rfctl->cac_end_time = RTW_CAC_STOPPED; rtw_init_timer(&(rfctl->radar_detect_timer), adapter, rtw_dfs_rd_timer_hdl, rfctl); #endif #if CONFIG_DFS_SLAVE_WITH_RADAR_DETECT rfctl->dfs_slave_with_rd = 1; #endif + + if (regsty->antenna_gain != UNSPECIFIED_MBM) + rfctl->antenna_gain = regsty->antenna_gain; + +#if defined(CONFIG_CONCURRENT_MODE) && defined(CONFIG_AP_MODE) + rfctl->ap_csa_cnt_input = DEFAULT_CSA_CNT; +#endif + + ret = op_class_pref_init(adapter); + if (ret != _SUCCESS) + op_class_pref_deinit(adapter); + + return ret; } void rtw_rfctl_deinit(_adapter *adapter) @@ -305,9 +424,312 @@ void rtw_rfctl_deinit(_adapter *adapter) _rtw_mutex_free(&rfctl->offch_mutex); +#if CONFIG_TXPWR_LIMIT rtw_regd_exc_list_free(rfctl); rtw_txpwr_lmt_list_free(rfctl); _rtw_mutex_free(&rfctl->txpwr_lmt_mutex); +#endif + + op_class_pref_deinit(adapter); +} + +/* + * Description: + * Use hardware(efuse), driver parameter(registry) and default channel plan + * to decide which one should be used. + * + * Parameters: + * rfctl pointer of rfctl + * hw_alpha2 country code from HW (efuse/eeprom/mapfile) + * hw_chplan domain code from HW (efuse/eeprom/mapfile) + * hw_chplan_6g 6g domain code from HW (efuse/eeprom/mapfile) + * hw_force_chplan if forcing HW channel plan setting (efuse/eeprom/mapfile) + * will modified tif HW channel plan setting is invlid, will + */ +void rtw_rfctl_decide_init_chplan(struct rf_ctl_t *rfctl, + const char *hw_alpha2, u8 hw_chplan, u8 hw_chplan_6g, u8 hw_force_chplan) +{ + struct registry_priv *regsty; + char *sw_alpha2; + const struct country_chplan *country_ent = NULL; + struct country_chplan ent; + int chplan = -1; + int chplan_6g = -1; + + u8 sw_chplan; + u8 def_chplan = RTW_CHPLAN_WORLDWIDE; /* worldwide, used when HW, SW both invalid */ +#if CONFIG_IEEE80211_BAND_6GHZ + u8 sw_chplan_6g; + u8 def_chplan_6g = RTW_CHPLAN_6G_WORLDWIDE; /* worldwide, used when HW, SW both invalid */ +#endif + + if (hw_alpha2) { + if (rtw_get_chplan_from_country(hw_alpha2, &ent)) { + /* get chplan from hw country code, by pass hw chplan setting */ + country_ent = &ent; + chplan = ent.chplan; + #if CONFIG_IEEE80211_BAND_6GHZ + chplan_6g = ent.chplan_6g; + #endif + goto chk_sw_config; + } else + RTW_PRINT("%s unsupported hw_alpha2:\"%c%c\"\n", __func__, hw_alpha2[0], hw_alpha2[1]); + } + + if (rtw_is_channel_plan_valid(hw_chplan)) + chplan = hw_chplan; + else if (hw_force_chplan == _TRUE) { + RTW_PRINT("%s unsupported hw_chplan:0x%02X\n", __func__, hw_chplan); + /* hw infomaton invalid, refer to sw information */ + hw_force_chplan = _FALSE; + } + +#if CONFIG_IEEE80211_BAND_6GHZ + if (rtw_is_channel_plan_6g_valid(hw_chplan_6g)) + chplan_6g = hw_chplan_6g; + else if (hw_force_chplan == _TRUE) { + RTW_PRINT("%s unsupported hw_chplan_6g:0x%02X\n", __func__, hw_chplan_6g); + /* hw infomaton invalid, refer to sw information */ + hw_force_chplan = _FALSE; + } +#endif + +chk_sw_config: + if (hw_force_chplan == _TRUE) + goto done; + + regsty = dvobj_to_regsty(rfctl_to_dvobj(rfctl)); + sw_alpha2 = regsty->alpha2; + sw_chplan = regsty->channel_plan; + #if CONFIG_IEEE80211_BAND_6GHZ + sw_chplan_6g = regsty->channel_plan_6g; + #endif + + if (sw_alpha2 && !IS_ALPHA2_UNSPEC(sw_alpha2)) { + if (IS_ALPHA2_WORLDWIDE(sw_alpha2) + || rtw_get_chplan_from_country(sw_alpha2, &ent) + ) { + /* get chplan from sw country code, by pass sw chplan setting */ + if (IS_ALPHA2_WORLDWIDE(sw_alpha2)) + rtw_get_chplan_worldwide(&ent); + country_ent = &ent; + chplan = ent.chplan; + #if CONFIG_IEEE80211_BAND_6GHZ + chplan_6g = ent.chplan_6g; + #endif + goto done; + } else + RTW_PRINT("%s unsupported sw_alpha2:\"%c%c\"\n", __func__, sw_alpha2[0], sw_alpha2[1]); + } + + if (rtw_is_channel_plan_valid(sw_chplan)) { + /* cancel hw_alpha2 because chplan is specified by sw_chplan */ + country_ent = NULL; + chplan = sw_chplan; + } else if (sw_chplan != RTW_CHPLAN_UNSPECIFIED) + RTW_PRINT("%s unsupported sw_chplan:0x%02X\n", __func__, sw_chplan); + +#if CONFIG_IEEE80211_BAND_6GHZ + if (rtw_is_channel_plan_6g_valid(sw_chplan_6g)) { + /* cancel hw_alpha2 because chplan_6g is specified by sw_chplan_6g */ + country_ent = NULL; + chplan_6g = sw_chplan_6g; + } else if (sw_chplan_6g != RTW_CHPLAN_6G_UNSPECIFIED) + RTW_PRINT("%s unsupported sw_chplan_6g:0x%02X\n", __func__, sw_chplan_6g); +#endif + +done: + if (chplan == -1) { + RTW_PRINT("%s use def_chplan:0x%02X\n", __func__, def_chplan); + chplan = def_chplan; + } else + RTW_PRINT("%s chplan:0x%02X\n", __func__, chplan); + +#if CONFIG_IEEE80211_BAND_6GHZ + if (chplan_6g == -1) { + RTW_PRINT("%s use def_chplan_6g:0x%02X\n", __func__, def_chplan_6g); + chplan_6g = def_chplan_6g; + } else + RTW_PRINT("%s chplan_6g:0x%02X\n", __func__, chplan_6g); +#endif + + if (!country_ent) { + if (rtw_chplan_ids_is_world_wide(chplan, chplan_6g)) + rtw_get_chplan_worldwide(&ent); + else { + SET_UNSPEC_ALPHA2(ent.alpha2); + ent.edcca_mode_2g_override = RTW_EDCCA_DEF; + #if CONFIG_IEEE80211_BAND_5GHZ + ent.edcca_mode_5g_override = RTW_EDCCA_DEF; + #endif + #if CONFIG_IEEE80211_BAND_6GHZ + ent.edcca_mode_6g_override = RTW_EDCCA_DEF; + #endif + ent.txpwr_lmt_override = TXPWR_LMT_DEF; + #if defined(CONFIG_80211AX_HE) || defined(CONFIG_80211AC_VHT) + ent.proto_en = CHPLAN_PROTO_EN_ALL; + #endif + } + } else { + RTW_PRINT("%s country code:\"%c%c\"\n", __func__ + , country_ent->alpha2[0], country_ent->alpha2[1]); + } + + rfctl->disable_sw_chplan = hw_force_chplan; + + rfctl->regd_inr = RTW_REGD_SET_BY_INIT; + rfctl->init_alpha2[0] = rfctl->alpha2[0] = ent.alpha2[0]; + rfctl->init_alpha2[1] = rfctl->alpha2[1] = ent.alpha2[1]; + rfctl->init_ChannelPlan = rfctl->ChannelPlan = chplan; +#if CONFIG_IEEE80211_BAND_6GHZ + rfctl->init_chplan_6g = rfctl->chplan_6g = chplan_6g; +#endif + rfctl->edcca_mode_2g_override = ent.edcca_mode_2g_override; +#if CONFIG_IEEE80211_BAND_5GHZ + rfctl->edcca_mode_5g_override = ent.edcca_mode_5g_override; +#endif +#if CONFIG_IEEE80211_BAND_6GHZ + rfctl->edcca_mode_6g_override = ent.edcca_mode_6g_override; +#endif +#if CONFIG_TXPWR_LIMIT + rfctl->txpwr_lmt_override = ent.txpwr_lmt_override; +#endif +#if defined(CONFIG_80211AX_HE) || defined(CONFIG_80211AC_VHT) + rfctl->proto_en = ent.proto_en; +#endif +} + +void rtw_rfctl_chplan_init(_adapter *adapter) +{ + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + + init_channel_set(adapter); + op_class_pref_apply_regulatory(adapter, REG_CHANGE); + init_channel_list(adapter, rfctl->channel_set, &rfctl->channel_list); +} + +bool rtw_rfctl_is_disable_sw_channel_plan(struct dvobj_priv *dvobj) +{ + return dvobj_to_rfctl(dvobj)->disable_sw_chplan; +} + +void rtw_rfctl_update_op_mode(struct rf_ctl_t *rfctl, u8 ifbmp_mod, u8 if_op) +{ + struct dvobj_priv *dvobj = rfctl_to_dvobj(rfctl); + _adapter *iface; + struct mlme_ext_priv *mlmeext; + u8 op_class = 0; + u8 op_ch = 0; + s16 op_txpwr_max; + u8 if_op_class[CONFIG_IFACE_NUMBER] = {0}; + u8 if_op_ch[CONFIG_IFACE_NUMBER] = {0}; + u8 ch, bw, offset; + u8 u_ch = 0, u_bw, u_offset; + bool notify = 0; + int i; + + for (i = 0; i < dvobj->iface_nums; i++) { + iface = dvobj->padapters[i]; + if (!iface) + continue; + mlmeext = &iface->mlmeextpriv; + + if (ifbmp_mod & BIT(i)) { + if (!if_op) + continue; + } else if (!MLME_IS_ASOC(iface) || MLME_IS_OPCH_SW(iface)) + continue; + + ch = mlmeext->cur_channel; + bw = mlmeext->cur_bwmode; + offset = mlmeext->cur_ch_offset; + if_op_class[i] = rtw_get_op_class_by_chbw(ch, bw, offset); + if_op_ch[i] = if_op_class[i] ? ch : 0; + + if (!u_ch) { + u_ch = ch; + u_bw = bw; + u_offset = offset; + } else { + rtw_warn_on(!rtw_is_chbw_grouped(u_ch, u_bw, u_offset, ch, bw, offset)); + rtw_sync_chbw(&ch, &bw, &offset, &u_ch, &u_bw, &u_offset); + } + } + + op_class = rtw_get_op_class_by_chbw(u_ch, u_bw, u_offset); + op_ch = op_class ? u_ch : 0; + op_txpwr_max = rtw_rfctl_get_oper_txpwr_max_mbm(rfctl, u_ch, u_bw, u_offset, ifbmp_mod, if_op, 1); + + if (op_class != rfctl->op_class + || op_ch != rfctl->op_ch + || op_txpwr_max != rfctl->op_txpwr_max + || _rtw_memcmp(if_op_class, rfctl->if_op_class, sizeof(u8) * CONFIG_IFACE_NUMBER) == _FALSE + || _rtw_memcmp(if_op_ch, rfctl->if_op_ch, sizeof(u8) * CONFIG_IFACE_NUMBER) == _FALSE) + notify = 1; + + rfctl->op_class = op_class; + rfctl->op_ch = op_ch; + rfctl->op_txpwr_max = op_txpwr_max; + _rtw_memcpy(rfctl->if_op_class, if_op_class, sizeof(u8) * CONFIG_IFACE_NUMBER); + _rtw_memcpy(rfctl->if_op_ch, if_op_ch, sizeof(u8) * CONFIG_IFACE_NUMBER); + + if (0) + RTW_INFO("radio: %u,%u,%u %d notify:%d\n", u_ch, u_bw, u_offset, op_txpwr_max, notify); + for (i = 0; i < dvobj->iface_nums; i++) { + iface = dvobj->padapters[i]; + if (!iface) + continue; + mlmeext = &iface->mlmeextpriv; + + if (ifbmp_mod & BIT(i)) { + if (!if_op) + continue; + } else if (!MLME_IS_ASOC(iface)) + continue; + if (0) + RTW_INFO(ADPT_FMT": %u,%u,%u\n", ADPT_ARG(iface) + , mlmeext->cur_channel, mlmeext->cur_bwmode, mlmeext->cur_ch_offset); + } + + if (notify) + rtw_nlrtw_radio_opmode_notify(rfctl); + +#ifdef CONFIG_PLATFORM_CMAP_INTFS + for (i = 0; i < dvobj->iface_nums; i++) { + iface = dvobj->padapters[i]; + if (!iface) + continue; + cmap_intfs_nl_bss_status_event(iface, 0); + } +#endif +} + +/* domain status specific beacon hint rules */ +#ifndef RTW_CHPLAN_BEACON_HINT_SPECIFIC_COUNTRY +#define RTW_CHPLAN_BEACON_HINT_SPECIFIC_COUNTRY 0 +#endif + +bool rtw_rfctl_reg_allow_beacon_hint(struct rf_ctl_t *rfctl) +{ + return RTW_CHPLAN_BEACON_HINT_SPECIFIC_COUNTRY || RFCTL_REG_WORLDWIDE(rfctl) || RFCTL_REG_ALPHA2_UNSPEC(rfctl); +} + +inline u8 rtw_rfctl_get_dfs_domain(struct rf_ctl_t *rfctl) +{ +#ifdef CONFIG_DFS_MASTER + return rfctl->dfs_region_domain; +#else + return RTW_DFS_REGD_NONE; +#endif +} + +inline u8 rtw_rfctl_dfs_domain_unknown(struct rf_ctl_t *rfctl) +{ +#ifdef CONFIG_DFS_MASTER + return rtw_rfctl_get_dfs_domain(rfctl) == RTW_DFS_REGD_NONE; +#else + return 1; +#endif } #ifdef CONFIG_DFS_MASTER @@ -357,11 +779,13 @@ bool rtw_is_cac_reset_needed(struct rf_ctl_t *rfctl, u8 ch, u8 bw, u8 offset) needed = _TRUE; } else if (rtw_is_range_a_in_b(cur_hi, cur_lo, hi, lo)) { /* request is supper set of current */ - if ((hi != cur_hi && rtw_is_dfs_range(hi, cur_hi)) || (lo != cur_lo && rtw_is_dfs_range(cur_lo, lo))) + if ((hi != cur_hi && rtw_chset_is_dfs_range(rfctl->channel_set, hi, cur_hi)) + || (lo != cur_lo && rtw_chset_is_dfs_range(rfctl->channel_set, cur_lo, lo))) needed = _TRUE; } else { /* request is not supper set of current, but has overlap */ - if ((lo < cur_lo && rtw_is_dfs_range(cur_lo, lo)) || (hi > cur_hi && rtw_is_dfs_range(hi, cur_hi))) + if ((lo < cur_lo && rtw_chset_is_dfs_range(rfctl->channel_set, cur_lo, lo)) + || (hi > cur_hi && rtw_chset_is_dfs_range(rfctl->channel_set, hi, cur_hi))) needed = _TRUE; } @@ -490,10 +914,11 @@ exit: * @offset: bandwidth offset on which radar is detected * @ms: ms to add from now to update non_ocp_end_time, ms < 0 means use NON_OCP_TIME_MS */ -static void _rtw_chset_update_non_ocp(RT_CHANNEL_INFO *ch_set, u8 ch, u8 bw, u8 offset, int ms) +static bool _rtw_chset_update_non_ocp(RT_CHANNEL_INFO *ch_set, u8 ch, u8 bw, u8 offset, int ms) { u32 hi = 0, lo = 0; int i; + bool updated = 0; if (rtw_chbw_to_freq_range(ch, bw, offset, &hi, &lo) == _FALSE) goto exit; @@ -511,21 +936,84 @@ static void _rtw_chset_update_non_ocp(RT_CHANNEL_INFO *ch_set, u8 ch, u8 bw, u8 ch_set[i].non_ocp_end_time = rtw_get_current_time() + rtw_ms_to_systime(ms); else ch_set[i].non_ocp_end_time = rtw_get_current_time() + rtw_ms_to_systime(NON_OCP_TIME_MS); + ch_set[i].flags |= RTW_CHF_NON_OCP; + updated = 1; } } exit: - return; + return updated; } -inline void rtw_chset_update_non_ocp(RT_CHANNEL_INFO *ch_set, u8 ch, u8 bw, u8 offset) +inline bool rtw_chset_update_non_ocp(RT_CHANNEL_INFO *ch_set, u8 ch, u8 bw, u8 offset) { - _rtw_chset_update_non_ocp(ch_set, ch, bw, offset, -1); + return _rtw_chset_update_non_ocp(ch_set, ch, bw, offset, -1); } -inline void rtw_chset_update_non_ocp_ms(RT_CHANNEL_INFO *ch_set, u8 ch, u8 bw, u8 offset, int ms) +inline bool rtw_chset_update_non_ocp_ms(RT_CHANNEL_INFO *ch_set, u8 ch, u8 bw, u8 offset, int ms) { - _rtw_chset_update_non_ocp(ch_set, ch, bw, offset, ms); + return _rtw_chset_update_non_ocp(ch_set, ch, bw, offset, ms); +} + +static bool rtw_chset_chk_non_ocp_finish_for_chbw(struct rf_ctl_t *rfctl, u8 ch, u8 bw, u8 offset) +{ + RT_CHANNEL_INFO *ch_set = rfctl->channel_set; + u8 cch; + u8 *op_chs; + u8 op_ch_num; + int i; + int ch_idx; + bool ret = 0; + + cch = rtw_get_center_ch(ch, bw, offset); + + if (!rtw_get_op_chs_by_cch_bw(cch, bw, &op_chs, &op_ch_num)) + goto exit; + + for (i = 0; i < op_ch_num; i++) { + if (0) + RTW_INFO("%u,%u,%u - cch:%u, bw:%u, op_ch:%u\n", ch, bw, offset, cch, bw, *(op_chs + i)); + ch_idx = rtw_chset_search_ch(ch_set, *(op_chs + i)); + if (ch_idx == -1) + break; + if (!(ch_set[ch_idx].flags & RTW_CHF_NON_OCP) || CH_IS_NON_OCP(&ch_set[ch_idx])) + break; + } + + if (op_ch_num != 0 && i == op_ch_num) { + ret = 1; + /* clear RTTW_CHF_NON_OCP flag */ + for (i = 0; i < op_ch_num; i++) { + ch_idx = rtw_chset_search_ch(ch_set, *(op_chs + i)); + ch_set[ch_idx].flags &= ~RTW_CHF_NON_OCP; + } + rtw_nlrtw_nop_finish_event(dvobj_get_primary_adapter(rfctl_to_dvobj(rfctl)), cch, bw); + } + +exit: + return ret; +} + +/* called by watchdog to clear RTW_CHF_NON_OCP and generate NON_OCP finish event */ +void rtw_chset_chk_non_ocp_finish(struct rf_ctl_t *rfctl) +{ + u8 ch, bw, offset; + int i; + + bw = CHANNEL_WIDTH_160; + while (1) { + for (i = 0; i < rfctl->max_chan_nums; i++) { + ch = rfctl->channel_set[i].ChannelNum; + if (!(rfctl->channel_set[i].flags & RTW_CHF_NON_OCP)) + continue; + if (!rtw_get_offset_by_chbw(ch, bw, &offset)) + continue; + + rtw_chset_chk_non_ocp_finish_for_chbw(rfctl, ch, bw, offset); + } + if (bw-- == CHANNEL_WIDTH_20) + break; + } } u32 rtw_get_ch_waiting_ms(struct rf_ctl_t *rfctl, u8 ch, u8 bw, u8 offset, u32 *r_non_ocp_ms, u32 *r_cac_ms) @@ -557,14 +1045,14 @@ u32 rtw_get_ch_waiting_ms(struct rf_ctl_t *rfctl, u8 ch, u8 bw, u8 offset, u32 * in_rd_range = 1; } - if (!rtw_is_dfs_chbw(ch, bw, offset)) + if (!rtw_chset_is_dfs_chbw(rfctl->channel_set, ch, bw, offset)) cac_ms = 0; else if (in_rd_range && !non_ocp_ms) { if (IS_CH_WAITING(rfctl)) cac_ms = rtw_systime_to_ms(rfctl->cac_end_time - rtw_get_current_time()); else cac_ms = 0; - } else if (rtw_is_long_cac_ch(ch, bw, offset, rtw_odm_get_dfs_domain(dvobj))) + } else if (rtw_is_long_cac_ch(ch, bw, offset, rtw_rfctl_get_dfs_domain(rfctl))) cac_ms = CAC_TIME_CE_MS; else cac_ms = CAC_TIME_MS; @@ -636,7 +1124,7 @@ u32 rtw_force_stop_cac(struct rf_ctl_t *rfctl, u32 timeout_ms) /* choose channel with shortest waiting (non ocp + cac) time */ bool rtw_choose_shortest_waiting_ch(struct rf_ctl_t *rfctl, u8 sel_ch, u8 max_bw , u8 *dec_ch, u8 *dec_bw, u8 *dec_offset - , u8 d_flags, u8 cur_ch, bool by_int_info, u8 mesh_only) + , u8 e_flags, u8 d_flags, u8 cur_ch, bool by_int_info, u8 mesh_only) { #ifndef DBG_CHOOSE_SHORTEST_WAITING_CH #define DBG_CHOOSE_SHORTEST_WAITING_CH 0 @@ -657,8 +1145,8 @@ bool rtw_choose_shortest_waiting_ch(struct rf_ctl_t *rfctl, u8 sel_ch, u8 max_bw return _FALSE; } - RTW_INFO("%s: sel_ch:%u max_bw:%u d_flags:0x%02x cur_ch:%u within_sb:%d%s%s\n" - , __func__, sel_ch, max_bw, d_flags, cur_ch, rfctl->ch_sel_within_same_band + RTW_INFO("%s: sel_ch:%u max_bw:%u e_flags:0x%02x d_flags:0x%02x cur_ch:%u within_sb:%d%s%s\n" + , __func__, sel_ch, max_bw, e_flags, d_flags, cur_ch, rfctl->ch_sel_within_same_band , by_int_info ? " int" : "", mesh_only ? " mesh_only" : ""); /* full search and narrow bw judegement first to avoid potetial judegement timing issue */ @@ -671,6 +1159,9 @@ bool rtw_choose_shortest_waiting_ch(struct rf_ctl_t *rfctl, u8 sel_ch, u8 max_bw u32 cac_ms = 0; u32 waiting_ms = 0; u16 int_factor = 0; + bool dfs_ch; + bool non_ocp; + bool long_cac; ch = rfctl->channel_set[i].ChannelNum; if (sel_ch) { @@ -679,12 +1170,6 @@ bool rtw_choose_shortest_waiting_ch(struct rf_ctl_t *rfctl, u8 sel_ch, u8 max_bw } else if (rfctl->ch_sel_within_same_band && !rtw_is_same_band(cur_ch, ch)) continue; - if ((d_flags & RTW_CHF_2G) && ch <= 14) - continue; - - if ((d_flags & RTW_CHF_5G) && ch > 14) - continue; - if (ch > 14) { if (bw > REGSTY_BW_5G(regsty)) continue; @@ -699,23 +1184,29 @@ bool rtw_choose_shortest_waiting_ch(struct rf_ctl_t *rfctl, u8 sel_ch, u8 max_bw if (!rtw_get_offset_by_chbw(ch, bw, &offset)) continue; - if (!rtw_chset_is_chbw_valid(rfctl->channel_set, ch, bw, offset)) + if (!rtw_chset_is_chbw_valid(rfctl->channel_set, ch, bw, offset, 0, 0)) continue; - if ((d_flags & RTW_CHF_NON_OCP) && rtw_chset_is_chbw_non_ocp(rfctl->channel_set, ch, bw, offset)) - continue; + if ((e_flags & RTW_CHF_DFS) || (d_flags & RTW_CHF_DFS)) { + dfs_ch = rtw_chset_is_dfs_chbw(rfctl->channel_set, ch, bw, offset); + if (((e_flags & RTW_CHF_DFS) && !dfs_ch) + || ((d_flags & RTW_CHF_DFS) && dfs_ch)) + continue; + } - if ((d_flags & RTW_CHF_DFS) && rtw_is_dfs_chbw(ch, bw, offset)) - continue; + if ((e_flags & RTW_CHF_LONG_CAC) || (d_flags & RTW_CHF_LONG_CAC)) { + long_cac = rtw_is_long_cac_ch(ch, bw, offset, rtw_rfctl_get_dfs_domain(rfctl)); + if (((e_flags & RTW_CHF_LONG_CAC) && !long_cac) + || ((d_flags & RTW_CHF_LONG_CAC) && long_cac)) + continue; + } - if ((d_flags & RTW_CHF_LONG_CAC) && rtw_is_long_cac_ch(ch, bw, offset, rtw_odm_get_dfs_domain(dvobj))) - continue; - - if ((d_flags & RTW_CHF_NON_DFS) && !rtw_is_dfs_chbw(ch, bw, offset)) - continue; - - if ((d_flags & RTW_CHF_NON_LONG_CAC) && !rtw_is_long_cac_ch(ch, bw, offset, rtw_odm_get_dfs_domain(dvobj))) - continue; + if ((e_flags & RTW_CHF_NON_OCP) || (d_flags & RTW_CHF_NON_OCP)) { + non_ocp = rtw_chset_is_chbw_non_ocp(rfctl->channel_set, ch, bw, offset); + if (((e_flags & RTW_CHF_NON_OCP) && !non_ocp) + || ((d_flags & RTW_CHF_NON_OCP) && non_ocp)) + continue; + } #ifdef CONFIG_DFS_MASTER waiting_ms = rtw_get_ch_waiting_ms(rfctl, ch, bw, offset, &non_ocp_ms, &cac_ms); @@ -770,58 +1261,136 @@ bool rtw_choose_shortest_waiting_ch(struct rf_ctl_t *rfctl, u8 sel_ch, u8 max_bw return _FALSE; } -void dump_chset(void *sel, RT_CHANNEL_INFO *ch_set) +#ifdef CONFIG_PROC_DEBUG +#define RTW_CHF_FMT "%s%s%s%s%s%s" + +#define RTW_CHF_ARG_NO_IR(flags) (flags & RTW_CHF_NO_IR) ? " NO_IR" : "" +#define RTW_CHF_ARG_DFS(flags) , (flags & RTW_CHF_DFS) ? " DFS" : "" +#define RTW_CHF_ARG_NO_HT40U(flags) , (flags & RTW_CHF_NO_HT40U) ? " NO_40M+" : "" +#define RTW_CHF_ARG_NO_HT40L(flags) , (flags & RTW_CHF_NO_HT40L) ? " NO_40M-" : "" +#define RTW_CHF_ARG_NO_80MHZ(flags) , (flags & RTW_CHF_NO_80MHZ) ? " NO_80M" : "" +#define RTW_CHF_ARG_NO_160MHZ(flags) , (flags & RTW_CHF_NO_160MHZ) ? " NO_160M" : "" + +#define RTW_CHF_ARG(flags) \ + RTW_CHF_ARG_NO_IR(flags) \ + RTW_CHF_ARG_DFS(flags) \ + RTW_CHF_ARG_NO_HT40U(flags) \ + RTW_CHF_ARG_NO_HT40L(flags) \ + RTW_CHF_ARG_NO_80MHZ(flags) \ + RTW_CHF_ARG_NO_160MHZ(flags) + +static void dump_chset(void *sel, RT_CHANNEL_INFO *ch_set, u8 chset_num) { - u8 i; + char buf[8]; + u8 i; - for (i = 0; i < MAX_CHANNEL_NUM && ch_set[i].ChannelNum != 0; i++) { - RTW_PRINT_SEL(sel, "ch:%3u, freq:%u, scan_type:%d" - , ch_set[i].ChannelNum, rtw_ch2freq(ch_set[i].ChannelNum), ch_set[i].ScanType); + RTW_PRINT_SEL(sel, "%-3s %-4s %-4s flags\n", "ch", "freq", "nocp"); -#ifdef CONFIG_FIND_BEST_CHANNEL - _RTW_PRINT_SEL(sel, ", rx_count:%u", ch_set[i].rx_count); -#endif + for (i = 0; i < MAX_CHANNEL_NUM && i < chset_num && ch_set[i].ChannelNum != 0; i++) { + #ifdef CONFIG_DFS_MASTER + if ((ch_set[i].flags & RTW_CHF_DFS) && CH_IS_NON_OCP(&ch_set[i])) + snprintf(buf, 8, "%d", rtw_systime_to_ms(ch_set[i].non_ocp_end_time - rtw_get_current_time()) / 1000); + else + #endif + snprintf(buf, 8, "0"); -#ifdef CONFIG_DFS_MASTER - if (rtw_is_dfs_ch(ch_set[i].ChannelNum)) { - if (CH_IS_NON_OCP(&ch_set[i])) - _RTW_PRINT_SEL(sel, ", non_ocp:%d" - , rtw_systime_to_ms(ch_set[i].non_ocp_end_time - rtw_get_current_time())); - else - _RTW_PRINT_SEL(sel, ", non_ocp:N/A"); - } -#endif - - _RTW_PRINT_SEL(sel, "\n"); + RTW_PRINT_SEL(sel, "%3u %4u %4s"RTW_CHF_FMT"\n" + , ch_set[i].ChannelNum, rtw_ch2freq_by_band(ch_set[i].band, ch_set[i].ChannelNum), buf + , RTW_CHF_ARG(ch_set[i].flags) + ); } RTW_PRINT_SEL(sel, "total ch number:%d\n", i); } +static void dump_chplan_txpwr_lmts(void *sel, struct get_chplan_resp *chplan) +{ + char buf[TXPWR_NAMES_STR_LEN]; + + RTW_PRINT_SEL(sel, "txpwr_lmt:%s\n", rtw_get_txpwr_lmt_names_str(buf, chplan->txpwr_lmt_name, 0)); +} + +static void dump_chplan_edcca_modes(void *sel, struct get_chplan_resp *chplan) +{ + u8 modes[BAND_MAX]; + char buf[EDCCA_MODES_STR_LEN]; + + modes[BAND_ON_2_4G] = chplan->edcca_mode_2g; +#if CONFIG_IEEE80211_BAND_5GHZ + modes[BAND_ON_5G] = chplan->edcca_mode_5g; +#endif +#if CONFIG_IEEE80211_BAND_6GHZ + modes[BAND_ON_6G] = chplan->edcca_mode_6g; +#endif + + RTW_PRINT_SEL(sel, "edcca_mode:%s\n", rtw_get_edcca_modes_str(buf, modes)); +} + +void dump_cur_country(void *sel, struct rf_ctl_t *rfctl) +{ + struct dvobj_priv *dvobj = rfctl_to_dvobj(rfctl); + struct get_chplan_resp *chplan; + int i; + + if (rtw_get_chplan_cmd(dvobj_get_primary_adapter(dvobj), RTW_CMDF_WAIT_ACK, &chplan) == _FAIL) + return; + + RTW_PRINT_SEL(sel, "%c%c\n", chplan->alpha2[0], chplan->alpha2[1]); + + rtw_vmfree(chplan, sizeof(struct get_chplan_resp) + sizeof(RT_CHANNEL_INFO) * chplan->chset_num); +} + void dump_cur_chset(void *sel, struct rf_ctl_t *rfctl) { struct dvobj_priv *dvobj = rfctl_to_dvobj(rfctl); struct registry_priv *regsty = dvobj_to_regsty(dvobj); + struct get_chplan_resp *chplan; int i; - if (rfctl->country_ent) - dump_country_chplan(sel, rfctl->country_ent); - else - RTW_PRINT_SEL(sel, "chplan:0x%02X\n", rfctl->ChannelPlan); + if (rtw_get_chplan_cmd(dvobj_get_primary_adapter(dvobj), RTW_CMDF_WAIT_ACK, &chplan) == _FAIL) + return; - RTW_PRINT_SEL(sel, "PLS regd:%s\n", rfctl->regd_name); + RTW_PRINT_SEL(sel, "regd_src:%s(%d)\n", regd_src_str(chplan->regd_src), chplan->regd_src); + RTW_PRINT_SEL(sel, "regd_inr:%s\n", regd_inr_str(chplan->regd_inr)); -#ifdef CONFIG_DFS_MASTER - RTW_PRINT_SEL(sel, "dfs_domain:%u\n", rtw_odm_get_dfs_domain(dvobj)); + RTW_PRINT_SEL(sel, "alpha2:%c%c\n", chplan->alpha2[0], chplan->alpha2[1]); + +#ifdef CONFIG_80211AX_HE + RTW_PRINT_SEL(sel, "ax:%d\n", (chplan->proto_en & CHPLAN_PROTO_EN_AX) ? 1 : 0); +#endif +#ifdef CONFIG_80211AC_VHT + RTW_PRINT_SEL(sel, "ac:%d\n", (chplan->proto_en & CHPLAN_PROTO_EN_AC) ? 1 : 0); #endif - for (i = 0; i < MAX_CHANNEL_NUM; i++) + if (chplan->channel_plan == RTW_CHPLAN_UNSPECIFIED) + RTW_PRINT_SEL(sel, "chplan:NA\n"); + else + RTW_PRINT_SEL(sel, "chplan:0x%02X\n", chplan->channel_plan); + +#if CONFIG_IEEE80211_BAND_6GHZ + if (chplan->chplan_6g == RTW_CHPLAN_6G_UNSPECIFIED) + RTW_PRINT_SEL(sel, "chplan_6g:NA\n"); + else + RTW_PRINT_SEL(sel, "chplan_6g:0x%02X\n", chplan->chplan_6g); +#endif + +#if CONFIG_TXPWR_LIMIT + dump_chplan_txpwr_lmts(sel, chplan); +#endif + + dump_chplan_edcca_modes(sel, chplan); + +#ifdef CONFIG_DFS_MASTER + RTW_PRINT_SEL(sel, "dfs_domain:%s(%u)\n", rtw_dfs_regd_str(chplan->dfs_domain), chplan->dfs_domain); +#endif + + for (i = 0; i < MAX_CHANNEL_NUM_2G_5G; i++) if (regsty->excl_chs[i] != 0) break; - if (i < MAX_CHANNEL_NUM) { + if (i < MAX_CHANNEL_NUM_2G_5G) { RTW_PRINT_SEL(sel, "excl_chs:"); - for (i = 0; i < MAX_CHANNEL_NUM; i++) { + for (i = 0; i < MAX_CHANNEL_NUM_2G_5G; i++) { if (regsty->excl_chs[i] == 0) break; _RTW_PRINT_SEL(sel, "%u ", regsty->excl_chs[i]); @@ -829,7 +1398,47 @@ void dump_cur_chset(void *sel, struct rf_ctl_t *rfctl) _RTW_PRINT_SEL(sel, "\n"); } - dump_chset(sel, rfctl->channel_set); +#if CONFIG_IEEE80211_BAND_6GHZ + for (i = 0; i < MAX_CHANNEL_NUM_6G; i++) + if (regsty->excl_chs_6g[i] != 0) + break; + + if (i < MAX_CHANNEL_NUM_6G) { + RTW_PRINT_SEL(sel, "excl_chs_6g:"); + for (i = 0; i < MAX_CHANNEL_NUM_6G; i++) { + if (regsty->excl_chs_6g[i] == 0) + break; + _RTW_PRINT_SEL(sel, "%u ", regsty->excl_chs_6g[i]); + } + _RTW_PRINT_SEL(sel, "\n"); + } +#endif + + dump_chset(sel, chplan->chset, chplan->chset_num); + + rtw_vmfree(chplan, sizeof(struct get_chplan_resp) + sizeof(RT_CHANNEL_INFO) * chplan->chset_num); +} +#endif /* CONFIG_PROC_DEBUG */ +/* + * Search the @param ch in given @param ch_list + * @ch_list: the given channel list + * @ch: the given channel number + * + * return the index of channel_num in channel_set, -1 if not found + */ +int rtw_chlist_search_ch(struct rtw_ieee80211_channel *ch_list, int len, const u32 ch) +{ + int i; + + if (ch == 0) + return -1; + + for (i = 0; i < len && ch_list[i].hw_value != 0; i++) { + if (ch == ch_list[i].hw_value) + return i; + } + + return -1; } /* @@ -854,6 +1463,29 @@ int rtw_chset_search_ch(RT_CHANNEL_INFO *ch_set, const u32 ch) return -1; } +/* + * Search the @param ch of @param band in given @param ch_set + * @ch_set: the given channel set + * @band: the given band + * @ch: the given channel number + * + * return the index of channel_num in channel_set, -1 if not found + */ +int rtw_chset_search_ch_by_band(RT_CHANNEL_INFO *ch_set, BAND_TYPE band, const u32 ch) +{ + int i; + + if (ch == 0) + return -1; + + for (i = 0; i < MAX_CHANNEL_NUM && ch_set[i].ChannelNum != 0; i++) { + if (band == ch_set[i].band && ch == ch_set[i].ChannelNum) + return i; + } + + return -1; +} + /* * Check if the @param ch, bw, offset is valid for the given @param ch_set * @ch_set: the given channel set @@ -863,13 +1495,15 @@ int rtw_chset_search_ch(RT_CHANNEL_INFO *ch_set, const u32 ch) * * return valid (1) or not (0) */ -u8 rtw_chset_is_chbw_valid(RT_CHANNEL_INFO *ch_set, u8 ch, u8 bw, u8 offset) +u8 rtw_chset_is_chbw_valid(RT_CHANNEL_INFO *ch_set, u8 ch, u8 bw, u8 offset + , bool allow_primary_passive, bool allow_passive) { u8 cch; u8 *op_chs; u8 op_ch_num; u8 valid = 0; int i; + int ch_idx; cch = rtw_get_center_ch(ch, bw, offset); @@ -879,7 +1513,23 @@ u8 rtw_chset_is_chbw_valid(RT_CHANNEL_INFO *ch_set, u8 ch, u8 bw, u8 offset) for (i = 0; i < op_ch_num; i++) { if (0) RTW_INFO("%u,%u,%u - cch:%u, bw:%u, op_ch:%u\n", ch, bw, offset, cch, bw, *(op_chs + i)); - if (rtw_chset_search_ch(ch_set, *(op_chs + i)) == -1) + ch_idx = rtw_chset_search_ch(ch_set, *(op_chs + i)); + if (ch_idx == -1) + break; + if (ch_set[ch_idx].flags & RTW_CHF_NO_IR) { + if (!allow_passive + || (!allow_primary_passive && ch_set[ch_idx].ChannelNum == ch)) + break; + } + if (bw >= CHANNEL_WIDTH_40) { + if ((ch_set[ch_idx].flags & RTW_CHF_NO_HT40U) && i % 2 == 0) + break; + if ((ch_set[ch_idx].flags & RTW_CHF_NO_HT40L) && i % 2 == 1) + break; + } + if (bw >= CHANNEL_WIDTH_80 && (ch_set[ch_idx].flags & RTW_CHF_NO_80MHZ)) + break; + if (bw >= CHANNEL_WIDTH_160 && (ch_set[ch_idx].flags & RTW_CHF_NO_160MHZ)) break; } @@ -899,9 +1549,11 @@ exit: * @g_ch: pointer of the ongoing group ch * @g_bw: pointer of the ongoing group bw, may be modified further * @g_offset: pointer of the ongoing group offset, may be modified further + * @allow_primary_passive: if allow passive primary ch when deciding chbw + * @allow_passive: if allow passive ch (not primary) when deciding chbw */ void rtw_chset_sync_chbw(RT_CHANNEL_INFO *ch_set, u8 *req_ch, u8 *req_bw, u8 *req_offset - , u8 *g_ch, u8 *g_bw, u8 *g_offset) + , u8 *g_ch, u8 *g_bw, u8 *g_offset, bool allow_primary_passive, bool allow_passive) { u8 r_ch, r_bw, r_offset; u8 u_ch, u_bw, u_offset; @@ -917,7 +1569,7 @@ void rtw_chset_sync_chbw(RT_CHANNEL_INFO *ch_set, u8 *req_ch, u8 *req_bw, u8 *re rtw_sync_chbw(&r_ch, &r_bw, &r_offset, &u_ch, &u_bw, &u_offset); - if (rtw_chset_is_chbw_valid(ch_set, r_ch, r_bw, r_offset)) + if (rtw_chset_is_chbw_valid(ch_set, r_ch, r_bw, r_offset, allow_primary_passive, allow_passive)) break; if (cur_bw == CHANNEL_WIDTH_20) { rtw_warn_on(1); @@ -1072,10 +1724,13 @@ static void init_mlme_ext_priv_value(_adapter *padapter) pmlmeext->cur_wireless_mode = padapter->registrypriv.wireless_mode; init_mlme_default_rate_set(padapter); - if ((pmlmeext->cur_channel > 14) || ((padapter->registrypriv.wireless_mode & WIRELESS_11B) == 0)) + if ((pmlmeext->cur_channel > 14) || ((padapter->registrypriv.wireless_mode & WIRELESS_11B) == 0)) { pmlmeext->tx_rate = IEEE80211_OFDM_RATE_6MB; - else + pmlmeext->tx_rate_section = OFDM; + } else { pmlmeext->tx_rate = IEEE80211_CCK_RATE_1MB; + pmlmeext->tx_rate_section = CCK; + } mlmeext_set_scan_state(pmlmeext, SCAN_DISABLE); pmlmeext->sitesurvey_res.channel_idx = 0; @@ -1084,9 +1739,18 @@ static void init_mlme_ext_priv_value(_adapter *padapter) pmlmeext->sitesurvey_res.rx_ampdu_accept = RX_AMPDU_ACCEPT_INVALID; pmlmeext->sitesurvey_res.rx_ampdu_size = RX_AMPDU_SIZE_INVALID; #ifdef CONFIG_SCAN_BACKOP - mlmeext_assign_scan_backop_flags_sta(pmlmeext, /*SS_BACKOP_EN|*/SS_BACKOP_PS_ANNC | SS_BACKOP_TX_RESUME); +#ifdef CONFIG_LAYER2_ROAMING + if (padapter->mlmepriv.roam_flags & BIT2) + mlmeext_assign_scan_backop_flags_sta(pmlmeext, SS_BACKOP_EN | SS_BACKOP_PS_ANNC | SS_BACKOP_TX_RESUME); + else +#endif + mlmeext_assign_scan_backop_flags_sta(pmlmeext, /*SS_BACKOP_EN |*/ SS_BACKOP_PS_ANNC | SS_BACKOP_TX_RESUME); #ifdef CONFIG_AP_MODE - mlmeext_assign_scan_backop_flags_ap(pmlmeext, SS_BACKOP_EN | SS_BACKOP_PS_ANNC | SS_BACKOP_TX_RESUME); + #ifdef CONFIG_CUSTOMER_EZVIZ_CHIME2 + mlmeext_assign_scan_backop_flags_ap(pmlmeext, SS_BACKOP_EN | SS_BACKOP_PS_ANNC | SS_BACKOP_TX_RESUME | SS_BACKOP_EN_NL); + #else + mlmeext_assign_scan_backop_flags_ap(pmlmeext, SS_BACKOP_EN | SS_BACKOP_PS_ANNC | SS_BACKOP_TX_RESUME); + #endif #endif #ifdef CONFIG_RTW_MESH mlmeext_assign_scan_backop_flags_mesh(pmlmeext, /*SS_BACKOP_EN | */SS_BACKOP_PS_ANNC | SS_BACKOP_TX_RESUME); @@ -1126,6 +1790,9 @@ static void init_mlme_ext_priv_value(_adapter *padapter) _rtw_memset(pmlmeinfo->SupportedRates_infra_ap, 0, NDIS_802_11_LENGTH_RATES_EX); pmlmeinfo->ht_vht_received = 0; #endif /* ROKU_PRIVATE */ +#ifdef CONFIG_WRITE_BCN_LEN_TO_FW + pmlmeinfo->last_bcn_len = 0; +#endif } void init_mlme_ext_timer(_adapter *padapter) @@ -1146,6 +1813,9 @@ void init_mlme_ext_timer(_adapter *padapter) rtw_init_timer(&pmlmeext->tbtx_xmit_timer, padapter, rtw_tbtx_xmit_timer_hdl, padapter); rtw_init_timer(&pmlmeext->tbtx_token_dispatch_timer, padapter, rtw_tbtx_token_dispatch_timer_hdl, padapter); #endif +#ifdef CONFIG_DFS + rtw_init_timer(&pmlmeext->csa_timer, padapter->pnetdev, csa_timer_hdl, padapter); +#endif } int init_mlme_ext_priv(_adapter *padapter) @@ -1202,9 +1872,9 @@ int init_mlme_ext_priv(_adapter *padapter) pmlmeext->txss_tp_th = TXSS_TP_TH; pmlmeext->txss_tp_chk_cnt = TXSS_TP_CHK_CNT; #endif + pmlmeext->iqk_band = 0; return res; - } void free_mlme_ext_priv(struct mlme_ext_priv *pmlmeext) @@ -1217,6 +1887,9 @@ void free_mlme_ext_priv(struct mlme_ext_priv *pmlmeext) if (rtw_is_drv_stopped(padapter)) { _cancel_timer_ex(&pmlmeext->survey_timer); _cancel_timer_ex(&pmlmeext->link_timer); +#ifdef CONFIG_DFS + _cancel_timer_ex(&pmlmeext->csa_timer); +#endif /* CONFIG_DFS */ } } @@ -1249,7 +1922,7 @@ static void _mgt_dispatcher(_adapter *padapter, struct mlme_handler *ptable, uni /* receive the frames that ra(a1) is my address or ra(a1) is bc address. */ if (!_rtw_memcmp(GetAddr1Ptr(pframe), adapter_mac_addr(padapter), ETH_ALEN) && !_rtw_memcmp(GetAddr1Ptr(pframe), bc_addr, ETH_ALEN)) -#ifdef CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI +#if defined(CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI) || defined(CONFIG_RTW_SCAN_RAND) { struct rtw_wdev_priv *pwdev_priv = adapter_wdev_data(padapter); @@ -1295,7 +1968,6 @@ void mgt_dispatcher(_adapter *padapter, union recv_frame *precv_frame) RTW_INFO("A3-%x:%x:%x:%x:%x:%x\n", *pbuf, *(pbuf + 1), *(pbuf + 2), *(pbuf + 3), *(pbuf + 4), *(pbuf + 5)); } #endif - if (GetFrameType(pframe) != WIFI_MGT_TYPE) { return; } @@ -1303,7 +1975,7 @@ void mgt_dispatcher(_adapter *padapter, union recv_frame *precv_frame) /* receive the frames that ra(a1) is my address or ra(a1) is bc address. */ if (!_rtw_memcmp(GetAddr1Ptr(pframe), adapter_mac_addr(padapter), ETH_ALEN) && !_rtw_memcmp(GetAddr1Ptr(pframe), bc_addr, ETH_ALEN)) -#ifdef CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI +#if defined(CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI) || defined(CONFIG_RTW_SCAN_RAND) { struct rtw_wdev_priv *pwdev_priv = adapter_wdev_data(padapter); @@ -1368,7 +2040,8 @@ void mgt_dispatcher(_adapter *padapter, union recv_frame *precv_frame) ptable->func = &OnAuth; else ptable->func = &OnAuthClient; - /* fall through */ + fallthrough; + /* fall through */ case WIFI_ASSOCREQ: case WIFI_REASSOCREQ: _mgt_dispatcher(padapter, ptable, precv_frame); @@ -1454,9 +2127,6 @@ u32 p2p_listen_state_process(_adapter *padapter, unsigned char *da) Following are the callback functions for each subtype of the management frames *****************************************************************************/ -#if defined(CONFIG_ALIBABA_ZEROCONFIG) -extern int rtw_genl_send(char* buf, int buf_len); -#endif unsigned int OnProbeReq(_adapter *padapter, union recv_frame *precv_frame) { @@ -1469,9 +2139,6 @@ unsigned int OnProbeReq(_adapter *padapter, union recv_frame *precv_frame) u8 *pframe = precv_frame->u.hdr.rx_data; uint len = precv_frame->u.hdr.len; u8 is_valid_p2p_probereq = _FALSE; -#if defined(CONFIG_ALIBABA_ZEROCONFIG) - u8 null_content[ETH_ALEN ] = {0}; -#endif #ifdef CONFIG_ATMEL_RC_PATCH u8 *target_ie = NULL, *wps_ie = NULL; @@ -1481,20 +2148,21 @@ unsigned int OnProbeReq(_adapter *padapter, union recv_frame *precv_frame) struct sta_priv *pstapriv = &padapter->stapriv; #endif - #ifdef CONFIG_P2P struct wifidirect_info *pwdinfo = &(padapter->wdinfo); struct rx_pkt_attrib *pattrib = &precv_frame->u.hdr.attrib; u8 wifi_test_chk_rate = 1; #ifdef CONFIG_IOCTL_CFG80211 - if ((pwdinfo->driver_interface == DRIVER_CFG80211) - && !rtw_p2p_chk_state(pwdinfo, P2P_STATE_NONE) - && (GET_CFG80211_REPORT_MGMT(adapter_wdev_data(padapter), IEEE80211_STYPE_PROBE_REQ) == _TRUE) - ) { +#ifdef CONFIG_P2P + if ((adapter_to_dvobj(padapter)->wpas_type == RTW_WPAS_W1FI) && + !rtw_p2p_chk_state(pwdinfo, P2P_STATE_NONE) && + (GET_CFG80211_REPORT_MGMT(adapter_wdev_data(padapter), + IEEE80211_STYPE_PROBE_REQ) == _TRUE)) { rtw_cfg80211_rx_probe_request(padapter, precv_frame); return _SUCCESS; } +#endif #endif /* CONFIG_IOCTL_CFG80211 */ if (!rtw_p2p_chk_state(pwdinfo, P2P_STATE_NONE) && @@ -1539,23 +2207,6 @@ unsigned int OnProbeReq(_adapter *padapter, union recv_frame *precv_frame) _continue: #endif /* CONFIG_P2P */ -#if defined(CONFIG_ALIBABA_ZEROCONFIG) - if(is_primary_adapter(padapter) && padapter->genl_bind_pid!= -1){ - if(_rtw_memcmp( padapter->target_macaddr, null_content, ETH_ALEN ) == _TRUE) { - rtw_genl_send(pframe, len); - return _SUCCESS; - } else { - if ( _rtw_memcmp( get_sa(pframe), padapter->target_macaddr, ETH_ALEN ) == _TRUE ) { - #ifdef CONFIG_ALIBABA_ZEROCONFIG_DBG - RTW_INFO("[WIFIDBG] tgt_sa probe req!!!\n"); - #endif - rtw_genl_send(pframe, len); - return _SUCCESS; - } - } - } -#endif - if (check_fwstate(pmlmepriv, WIFI_STATION_STATE)) return _SUCCESS; @@ -1750,7 +2401,10 @@ unsigned int OnProbeRsp(_adapter *padapter, union recv_frame *precv_frame) #ifdef CONFIG_P2P struct wifidirect_info *pwdinfo = &padapter->wdinfo; #endif + struct mlme_priv *pmlmepriv = &padapter->mlmepriv; + if (pmlmepriv->roam_network) + RTW_INFO("%s() "MAC_FMT"\n", __func__, MAC_ARG(get_addr2_ptr(precv_frame))); #ifdef CONFIG_P2P if (rtw_p2p_chk_state(pwdinfo, P2P_STATE_TX_PROVISION_DIS_REQ)) { @@ -1828,18 +2482,17 @@ unsigned int OnProbeRsp(_adapter *padapter, union recv_frame *precv_frame) } /* for 11n Logo 4.2.31/4.2.32 */ +#ifdef CONFIG_AP_MODE static void rtw_check_legacy_ap(_adapter *padapter, u8 *pframe, u32 len) { - struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; struct mlme_priv *pmlmepriv = &padapter->mlmepriv; if (!padapter->registrypriv.wifi_spec) return; - + if(!MLME_IS_AP(padapter)) return; - if (pmlmeext->bstart_bss == _TRUE) { int left; @@ -1867,9 +2520,33 @@ static void rtw_check_legacy_ap(_adapter *padapter, u8 *pframe, u32 len) ATOMIC_SET(&pmlmepriv->olbc, _TRUE); ATOMIC_SET(&pmlmepriv->olbc_ht, _TRUE); } - } } +#endif /* CONFIG_AP_MODE */ + +void parse_qbss(_adapter *padapter, u8* ies, int ie_len, WLAN_BSSID_EX *bssid) +{ + int len; + u8 *p; + u8 ie_offset = _FIXED_IE_LENGTH_; + + /* QBSS */ + p = rtw_get_ie(ies + ie_offset, EID_QBSSLoad, &len, ie_len - ie_offset); + if (p) { + memcpy(&bssid->qbss_sta_cnt, (void *)p + 2, 2); + bssid->qbss_ch_util = *(p + 4); + bssid->qbss_valid = 1; + #if 0 + RTW_INFO("QBSS "MAC_FMT" util=%d, cnt=%d %s\n" , MAC_ARG(bssid->MacAddress), + bssid->qbss_ch_util, bssid->qbss_sta_cnt, bssid->Ssid.Ssid); + #endif + } else { + bssid->qbss_sta_cnt = 0; + bssid->qbss_ch_util = 0; + bssid->qbss_valid = 0; + } + +} unsigned int OnBeacon(_adapter *padapter, union recv_frame *precv_frame) { @@ -1889,6 +2566,9 @@ unsigned int OnBeacon(_adapter *padapter, union recv_frame *precv_frame) struct tdls_ch_switch *pchsw_info = &padapter->tdlsinfo.chsw_info; #endif #endif /* CONFIG_TDLS */ +#ifdef CONFIG_LAYER2_ROAMING + _irqL irqL; +#endif if (validate_beacon_len(pframe, len) == _FALSE) return _SUCCESS; @@ -1908,12 +2588,30 @@ unsigned int OnBeacon(_adapter *padapter, union recv_frame *precv_frame) rtw_mi_report_survey_event(padapter, precv_frame); return _SUCCESS; } + + if (pmlmepriv->roam_network) + RTW_INFO("%s() "MAC_FMT"\n", __func__, MAC_ARG(get_addr2_ptr(pframe))); + +#ifdef CONFIG_WRITE_BCN_LEN_TO_FW + if (check_fwstate(pmlmepriv, WIFI_ASOC_STATE) + && (_rtw_memcmp(GetAddr3Ptr(pframe), get_my_bssid(&pmlmeinfo->network), ETH_ALEN))) { + struct rx_pkt_attrib *pattrib = &precv_frame->u.hdr.attrib; + + if (pmlmeinfo->last_bcn_len != pattrib->pkt_len) { + pmlmeinfo->last_bcn_len = pattrib->pkt_len; + rtw_write_bcnlen_to_fw_cmd(padapter, pattrib->pkt_len); + } + } +#endif + #ifdef CONFIG_RTW_REPEATER_SON if (padapter->rtw_rson_scanstage == RSON_SCAN_PROCESS) rtw_mi_report_survey_event(padapter, precv_frame); #endif +#ifdef CONFIG_AP_MODE rtw_check_legacy_ap(padapter, pframe, len); +#endif if (_rtw_memcmp(GetAddr3Ptr(pframe), get_my_bssid(&pmlmeinfo->network), ETH_ALEN)) { if ((pmlmeinfo->state & WIFI_FW_AUTH_NULL) @@ -1923,7 +2621,9 @@ unsigned int OnBeacon(_adapter *padapter, union recv_frame *precv_frame) set_link_timer(pmlmeext, 1); return _SUCCESS; } - +#ifdef CONFIG_LAYER2_ROAMING + _enter_critical_bh(&pmlmepriv->clnt_auth_lock, &irqL); +#endif /* we should update current network before auth, or some IE is wrong */ pbss = (WLAN_BSSID_EX *)rtw_malloc(sizeof(WLAN_BSSID_EX)); if (pbss) { @@ -1955,6 +2655,8 @@ unsigned int OnBeacon(_adapter *padapter, union recv_frame *precv_frame) /* check the vendor of the assoc AP */ pmlmeinfo->assoc_AP_vendor = check_assoc_AP(pframe + sizeof(struct rtw_ieee80211_hdr_3addr), len - sizeof(struct rtw_ieee80211_hdr_3addr)); + rtw_phydm_update_ap_vendor_ie(padapter); + /* update TSF Value */ update_TSF(pmlmeext, pframe, len); pmlmeext->bcn_cnt = 0; @@ -1978,7 +2680,9 @@ unsigned int OnBeacon(_adapter *padapter, union recv_frame *precv_frame) /* start auth */ start_clnt_auth(padapter); - +#ifdef CONFIG_LAYER2_ROAMING + _exit_critical_bh(&pmlmepriv->clnt_auth_lock, &irqL); +#endif return _SUCCESS; } @@ -2013,7 +2717,13 @@ unsigned int OnBeacon(_adapter *padapter, union recv_frame *precv_frame) } pmlmepriv->cur_network_scanned->network.Rssi = precv_frame->u.hdr.attrib.phy_info.recv_signal_power; + pmlmepriv->cur_network_scanned->last_scanned = rtw_get_current_time(); pmlmeext->bcn_cnt++; + + parse_qbss(padapter, pframe + sizeof(struct rtw_ieee80211_hdr_3addr), + precv_frame->u.hdr.len - sizeof(struct rtw_ieee80211_hdr_3addr), + &pmlmepriv->cur_network_scanned->network); + #ifdef CONFIG_BCN_RECV_TIME rtw_rx_bcn_time_update(padapter, len, precv_frame->u.hdr.attrib.data_rate); #endif @@ -2039,6 +2749,12 @@ unsigned int OnBeacon(_adapter *padapter, union recv_frame *precv_frame) , len - (WLAN_HDR_A3_LEN + _BEACON_IE_OFFSET_)); #endif + #ifdef CONFIG_80211D + process_country_ie(padapter + , pframe + WLAN_HDR_A3_LEN + _BEACON_IE_OFFSET_ + , len - (WLAN_HDR_A3_LEN + _BEACON_IE_OFFSET_)); + #endif + #ifdef CONFIG_P2P_PS process_p2p_ps_ie(padapter, (pframe + WLAN_HDR_A3_LEN), (len - WLAN_HDR_A3_LEN)); #endif /* CONFIG_P2P_PS */ @@ -2099,6 +2815,7 @@ _END_ONBEACON_: } +#ifdef CONFIG_AP_MODE static u32 rtw_get_sta_num_by_state(_adapter *padapter, u32 state) { _irqL irqL; @@ -2143,6 +2860,7 @@ static u8 rtw_defs_attack_chk(_adapter *padapter) /* RTW_INFO("%s : current linking num=%u\n", __func__, sta_limit); */ return is_reject; } +#endif unsigned int OnAuth(_adapter *padapter, union recv_frame *precv_frame) { @@ -2182,7 +2900,7 @@ unsigned int OnAuth(_adapter *padapter, union recv_frame *precv_frame) return rtw_mesh_on_auth(padapter, precv_frame); #endif - RTW_INFO("+OnAuth\n"); + RTW_INFO("+OnAuth from "MAC_FMT"\n", MAC_ARG(get_addr2_ptr(pframe))); sa = get_addr2_ptr(pframe); @@ -2434,11 +3152,30 @@ auth_fail: issue_auth(padapter, pstat, (unsigned short)status); #endif -#endif +#endif /* CONFIG_AP_MODE */ return _FAIL; } +static void recv_ack(_adapter *padapter, bool en) +{ + struct mlme_priv *pmlmepriv = &padapter->mlmepriv; + u16 reg; + + pmlmepriv->roam_ack = 0; + reg = rtw_read16(padapter, 0x6a2); + + if (en) + reg |= BIT(13); + else + reg &= ~BIT(13); + + rtw_write16(padapter, 0x6a2, reg); + + reg = rtw_read16(padapter, 0x6a2); +} + + unsigned int OnAuthClient(_adapter *padapter, union recv_frame *precv_frame) { unsigned int seq, len, status, algthm, offset; @@ -2473,6 +3210,7 @@ normal: if (!(pmlmeinfo->state & WIFI_FW_AUTH_STATE) || pmlmeext->join_abort) return _SUCCESS; + recv_ack(padapter, false); offset = (GetPrivacy(pframe)) ? 4 : 0; algthm = le16_to_cpu(*(unsigned short *)((SIZE_PTR)pframe + WLAN_HDR_A3_LEN + offset)); @@ -2505,10 +3243,19 @@ normal: goto authclnt_fail; } + if (len > sizeof(pmlmeinfo->chg_txt)) { + goto authclnt_fail; + } + _rtw_memcpy((void *)(pmlmeinfo->chg_txt), (void *)(p + 2), len); pmlmeinfo->auth_seq = 3; issue_auth(padapter, NULL, 0); - set_link_timer(pmlmeext, REAUTH_TO); +#ifdef CONFIG_RTW_80211R + if (rtw_ft_roam(padapter)) + set_link_timer(pmlmeext, REAUTH_FT_TO); + else +#endif + set_link_timer(pmlmeext, REAUTH_TO); return _SUCCESS; } else { @@ -2610,7 +3357,7 @@ unsigned int OnAssocReq(_adapter *padapter, union recv_frame *precv_frame) goto asoc_class2_error; } - RTW_INFO("%s\n", __FUNCTION__); + RTW_INFO("%s from "MAC_FMT"\n", __FUNCTION__, MAC_ARG(get_addr2_ptr(pframe))); if (pstat->authalg == WLAN_AUTH_SAE) { /* WPA3-SAE */ @@ -2755,6 +3502,8 @@ unsigned int OnAssocReq(_adapter *padapter, union recv_frame *precv_frame) pstat->p2p_status_code = p2p_status_code; #endif /* CONFIG_P2P */ + rtw_ap_parse_sta_multi_ap_ie(padapter, pstat, pos, left); + #ifdef CONFIG_RTW_REPEATER_SON if (rtw_rson_ap_check_sta(padapter, pframe, pkt_len, ie_offset)) goto OnAssocReqFail; @@ -2772,14 +3521,17 @@ unsigned int OnAssocReq(_adapter *padapter, union recv_frame *precv_frame) /* AID assignment */ if (pstat->cmn.aid > 0) - RTW_INFO(FUNC_ADPT_FMT" old AID=%d\n", FUNC_ADPT_ARG(padapter), pstat->cmn.aid); + RTW_INFO(FUNC_ADPT_FMT" use old AID=%d for "MAC_FMT"\n", + FUNC_ADPT_ARG(padapter), pstat->cmn.aid, MAC_ARG(pstat->cmn.mac_addr)); else { if (!rtw_aid_alloc(padapter, pstat)) { - RTW_INFO(FUNC_ADPT_FMT" no room for more AIDs\n", FUNC_ADPT_ARG(padapter)); + RTW_INFO(FUNC_ADPT_FMT" no room for more AIDs for "MAC_FMT"\n", + FUNC_ADPT_ARG(padapter), MAC_ARG(pstat->cmn.mac_addr)); status = WLAN_STATUS_AP_UNABLE_TO_HANDLE_NEW_STA; goto OnAssocReqFail; } - RTW_INFO(FUNC_ADPT_FMT" allocate new AID=%d\n", FUNC_ADPT_ARG(padapter), pstat->cmn.aid); + RTW_INFO(FUNC_ADPT_FMT" allocate new AID=%d for "MAC_FMT"\n", + FUNC_ADPT_ARG(padapter), pstat->cmn.aid, MAC_ARG(pstat->cmn.mac_addr)); } pstat->state &= (~WIFI_FW_ASSOC_STATE); @@ -2896,7 +3648,7 @@ OnAssocReqFail: } #if defined(CONFIG_LAYER2_ROAMING) && defined(CONFIG_RTW_80211K) -void rtw_roam_nb_discover(_adapter *padapter, u8 bfroce) +static unsigned int rtw_roam_nb_discover(_adapter *padapter, u8 bfroce, u32 delay_start) { struct mlme_priv *pmlmepriv = &padapter->mlmepriv; struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; @@ -2906,23 +3658,24 @@ void rtw_roam_nb_discover(_adapter *padapter, u8 bfroce) u8 nb_req_issue = _FALSE; if (!check_fwstate(pmlmepriv, WIFI_ASOC_STATE)) - return; + return _FAIL; if (!rtw_chk_roam_flags(padapter, RTW_ROAM_ACTIVE)) - return; + return _FAIL; psta = rtw_get_stainfo(pstapriv, pmlmeinfo->network.MacAddress); if (!psta) - return; + return _FAIL; - if (bfroce || (!pmlmepriv->nb_info.nb_rpt_is_same)) + if (bfroce || (!pmlmepriv->nb_info.nb_rpt_valid)) nb_req_issue = _TRUE; - if (nb_req_issue && (psta->rm_en_cap[0] & RTW_RRM_NB_RPT_EN)) - rm_add_nb_req(padapter, psta); + if (nb_req_issue && (psta->rm_en_cap[0] & RTW_RRM_NB_RPT_EN)) + return rm_add_nb_req(padapter, psta, delay_start); + + return _FAIL; } #endif - unsigned int OnAssocRsp(_adapter *padapter, union recv_frame *precv_frame) { uint i; @@ -2951,6 +3704,7 @@ unsigned int OnAssocRsp(_adapter *padapter, union recv_frame *precv_frame) if (pmlmeinfo->state & WIFI_FW_ASSOC_SUCCESS) return _SUCCESS; + recv_ack(padapter, false); _cancel_timer_ex(&pmlmeext->link_timer); /* status */ @@ -3029,7 +3783,7 @@ unsigned int OnAssocRsp(_adapter *padapter, union recv_frame *precv_frame) ERP_IE_handler(padapter, pIE); break; #ifdef CONFIG_TDLS - case _EXT_CAP_IE_: + case WLAN_EID_EXT_CAP: if (check_ap_tdls_prohibited(pIE->data, pIE->Length) == _TRUE) padapter->tdlsinfo.ap_prohibited = _TRUE; if (check_ap_tdls_ch_switching_prohibited(pIE->data, pIE->Length) == _TRUE) @@ -3061,7 +3815,7 @@ unsigned int OnAssocRsp(_adapter *padapter, union recv_frame *precv_frame) } #ifdef CONFIG_WAPI_SUPPORT - rtw_wapi_on_assoc_ok(padapter, pIE); + rtw_wapi_on_assoc_ok(padapter, pWapiIE); #endif pmlmeinfo->state &= (~WIFI_FW_ASSOC_STATE); @@ -3078,8 +3832,17 @@ report_assoc_result: report_join_res(padapter, res, status); -#if defined(CONFIG_LAYER2_ROAMING) && defined(CONFIG_RTW_80211K) - rtw_roam_nb_discover(padapter, _TRUE); +#ifdef CONFIG_LAYER2_ROAMING + if (res > 0 && status == 0) { + + pmlmepriv->last_roaming = rtw_get_current_time(); + pmlmepriv->roam_act_cnt = pmlmepriv->roam_scan_int; + pmlmepriv->roam_rssi_base = 0; + pmlmepriv->roam_try_cnt = 0; +#ifdef CONFIG_RTW_80211K + rtw_roam_nb_discover(padapter, _TRUE, 0); +#endif + } #endif return _SUCCESS; } @@ -3242,6 +4005,9 @@ unsigned int OnDisassoc(_adapter *padapter, union recv_frame *precv_frame) RTW_PRINT(FUNC_ADPT_FMT" reason=%u, ta=%pM\n" , FUNC_ADPT_ARG(padapter), reason, get_addr2_ptr(pframe)); + #ifdef CONFIG_RTW_WNM + if (rtw_wnm_try_btm_roam_imnt(padapter) > 0) + #endif receive_disconnect(padapter, get_addr2_ptr(pframe), reason, _FALSE); } pmlmepriv->LinkDetectInfo.bBusyTraffic = _FALSE; @@ -3400,12 +4166,43 @@ unsigned int on_action_wnm(_adapter *adapter, union recv_frame *rframe) #ifdef CONFIG_RTW_80211R case RTW_WLAN_ACTION_WNM_BTM_REQ: if (check_fwstate(pmlmepriv, WIFI_STATION_STATE) == _TRUE) { - RTW_INFO("WNM: RTW_WLAN_ACTION_WNM_BTM_REQ recv.\n"); + RTW_INFO("WNM: BSS Transition Management Request recv.\n"); rtw_wnm_process_btm_req(adapter, frame_body, frame_body_len); } ret = _SUCCESS; break; -#endif +#endif + case RTW_WLAN_ACTION_WNM_BTM_RSP: + if ((check_fwstate(pmlmepriv, WIFI_AP_STATE) == _TRUE) && + (pmlmepriv->nb_info.features & RTW_WNM_FEATURE_BTM_REQ_EN)) { + struct btm_rsp_hdr rsp; + u32 sz; + + RTW_INFO("WNM: BSS Transition Management Response recv.\n"); + sz = rtw_wnm_btm_rsp_candidates_sz_get(adapter, + frame_body, frame_body_len); + _rtw_memset(&rsp, 0, sizeof(rsp)); + + if (sz > 0) + rsp.pcandidates = rtw_zmalloc(sz); + + rtw_wnm_process_btm_rsp(adapter, frame_body, frame_body_len, &rsp); + /* TODO : handle candidates info in rsp.pcandidates for upper-layer services */ + #ifdef CONFIG_PLATFORM_CMAP_INTFS + cmap_intfs_nl_btm_resp_event(adapter, sta->cmn.mac_addr, + adapter_mac_addr(adapter), + rsp.status, rsp.bssid, + rsp.pcandidates, + rsp.candidates_num); + #endif + if (0 && rsp.pcandidates && (rsp.candidates_num > 0)) + RTW_INFO_DUMP("pcandidates : ", rsp.pcandidates, sz); + + if ((sz > 0) && (rsp.pcandidates != NULL)) + rtw_mfree(rsp.pcandidates, sz); + } + fallthrough; + /* fall through */ default: #ifdef CONFIG_IOCTL_CFG80211 cnt += sprintf((msg + cnt), "ACT_WNM %u", action); @@ -3709,7 +4506,7 @@ u16 rtw_rx_ampdu_apply(_adapter *adapter) adj_cnt += rx_ampdu_apply_sta(adapter, sta, accept, sta_size); } /* TODO: TDLS peer */ - +#ifdef CONFIG_AP_MODE } else if (MLME_IS_AP(adapter) || MLME_IS_MESH(adapter)) { _irqL irqL; _list *phead, *plist; @@ -3746,6 +4543,7 @@ u16 rtw_rx_ampdu_apply(_adapter *adapter) adj_cnt += rx_ampdu_apply_sta(adapter, sta, accept, sta_size); } } +#endif /* CONFIG_AP_MODE */ } /* TODO: ADHOC */ @@ -3822,7 +4620,7 @@ unsigned int OnAction_back(_adapter *padapter, union recv_frame *precv_frame) status = RTW_GET_LE16(&frame_body[3]); tid = ((frame_body[5] >> 2) & 0x7); if (status == 0) { - /* successful */ + /* successful */ RTW_INFO("agg_enable for TID=%d\n", tid); psta->htpriv.agg_enable_bitmap |= 1 << tid; psta->htpriv.candidate_tid_bitmap &= ~BIT(tid); @@ -3838,12 +4636,14 @@ unsigned int OnAction_back(_adapter *padapter, union recv_frame *precv_frame) } else psta->htpriv.agg_enable_bitmap &= ~BIT(tid); + #ifdef CONFIG_AP_MODE if (psta->state & WIFI_STA_ALIVE_CHK_STATE) { RTW_INFO("%s alive check - rx ADDBA response\n", __func__); psta->htpriv.agg_enable_bitmap &= ~BIT(tid); psta->expire_to = pstapriv->expire_to; psta->state ^= WIFI_STA_ALIVE_CHK_STATE; } + #endif /* RTW_INFO("marc: ADDBA RSP: %x\n", pmlmeinfo->agg_enable_bitmap); */ break; @@ -4368,6 +5168,7 @@ void issue_p2p_GO_response(_adapter *padapter, u8 *raddr, u8 *frame_body, uint l /* Try to get the device password ID from the WPS IE of group negotiation request frame */ /* WiFi Direct test plan 5.1.15 */ rtw_get_wps_ie(frame_body + _PUBLIC_ACTION_IE_OFFSET_, len - _PUBLIC_ACTION_IE_OFFSET_, wpsie, &wpsielen); + wps_devicepassword_id_len = sizeof(wps_devicepassword_id); rtw_get_wps_attr_content(wpsie, wpsielen, WPS_ATTR_DEVICE_PWID, (u8 *) &wps_devicepassword_id, &wps_devicepassword_id_len); wps_devicepassword_id = be16_to_cpu(wps_devicepassword_id); @@ -6270,7 +7071,7 @@ int issue_probereq_p2p_ex(_adapter *adapter, u8 *da, int try_cnt, int wait_ms) if (ret != _FAIL) { ret = _SUCCESS; #ifndef DBG_XMIT_ACK - goto exit; + return ret; #endif } @@ -6284,7 +7085,6 @@ int issue_probereq_p2p_ex(_adapter *adapter, u8 *da, int try_cnt, int wait_ms) FUNC_ADPT_ARG(adapter), rtw_get_oper_ch(adapter), ret == _SUCCESS ? ", acked" : "", i, try_cnt, rtw_get_passing_time_ms(start)); } -exit: return ret; } @@ -6329,6 +7129,9 @@ unsigned int on_action_public_p2p(union recv_frame *precv_frame) u8 empty_addr[ETH_ALEN] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; u8 *merged_p2pie = NULL; u32 merged_p2p_ielen = 0; +#ifdef CONFIG_CONCURRENT_MODE + struct roch_info *prochinfo = &padapter->rochinfo; +#endif #endif /* CONFIG_P2P */ frame_body = (unsigned char *)(pframe + sizeof(struct rtw_ieee80211_hdr_3addr)); @@ -6365,7 +7168,7 @@ unsigned int on_action_public_p2p(union recv_frame *precv_frame) } #ifdef CONFIG_CONCURRENT_MODE if (rtw_mi_buddy_check_fwstate(padapter, WIFI_ASOC_STATE)) - _cancel_timer_ex(&pwdinfo->ap_p2p_switch_timer); + _cancel_timer_ex(&prochinfo->ap_roch_ch_switch_timer); #endif /* CONFIG_CONCURRENT_MODE */ /* Commented by Kurt 20110902 */ @@ -6466,9 +7269,11 @@ unsigned int on_action_public_p2p(union recv_frame *precv_frame) merged_p2p_ielen = rtw_p2p_merge_ies(frame_body + _PUBLIC_ACTION_IE_OFFSET_, len - _PUBLIC_ACTION_IE_OFFSET_, merged_p2pie); + attr_contentlen = sizeof(invitation_flag); rtw_get_p2p_attr_content(merged_p2pie, merged_p2p_ielen, P2P_ATTR_INVITATION_FLAGS, &invitation_flag, &attr_contentlen); if (attr_contentlen) { + attr_contentlen = sizeof(pwdinfo->p2p_peer_interface_addr); rtw_get_p2p_attr_content(merged_p2pie, merged_p2p_ielen, P2P_ATTR_GROUP_BSSID, pwdinfo->p2p_peer_interface_addr, &attr_contentlen); /* Commented by Albert 20120510 */ /* Copy to the pwdinfo->p2p_peer_interface_addr. */ @@ -6487,6 +7292,7 @@ unsigned int on_action_public_p2p(union recv_frame *precv_frame) /* Re-invoke the persistent group. */ _rtw_memset(&group_id, 0x00, sizeof(struct group_id_info)); + attr_contentlen = sizeof(struct group_id_info); rtw_get_p2p_attr_content(merged_p2pie, merged_p2p_ielen, P2P_ATTR_GROUP_ID, (u8 *) &group_id, &attr_contentlen); if (attr_contentlen) { if (_rtw_memcmp(group_id.go_device_addr, adapter_mac_addr(padapter), ETH_ALEN)) { @@ -6498,6 +7304,7 @@ unsigned int on_action_public_p2p(union recv_frame *precv_frame) /* The p2p device sending this p2p invitation request wants to be the persistent GO. */ if (is_matched_in_profilelist(pwdinfo->p2p_peer_interface_addr, &pwdinfo->profileinfo[0])) { u8 operatingch_info[5] = { 0x00 }; + attr_contentlen = sizeof(operatingch_info); if (rtw_get_p2p_attr_content(merged_p2pie, merged_p2p_ielen, P2P_ATTR_OPERATING_CH, operatingch_info, &attr_contentlen)) { if (rtw_chset_search_ch(adapter_to_chset(padapter), (u32)operatingch_info[4]) >= 0) { @@ -6541,6 +7348,7 @@ unsigned int on_action_public_p2p(union recv_frame *precv_frame) /* Received the invitation to join a P2P group. */ _rtw_memset(&group_id, 0x00, sizeof(struct group_id_info)); + attr_contentlen = sizeof(struct group_id_info); rtw_get_p2p_attr_content(merged_p2pie, merged_p2p_ielen, P2P_ATTR_GROUP_ID, (u8 *) &group_id, &attr_contentlen); if (attr_contentlen) { if (_rtw_memcmp(group_id.go_device_addr, adapter_mac_addr(padapter), ETH_ALEN)) { @@ -6585,6 +7393,7 @@ unsigned int on_action_public_p2p(union recv_frame *precv_frame) _cancel_timer_ex(&pwdinfo->restore_p2p_state_timer); p2p_ie = rtw_get_p2p_ie(frame_body + _PUBLIC_ACTION_IE_OFFSET_, len - _PUBLIC_ACTION_IE_OFFSET_, NULL, &p2p_ielen); if (p2p_ie) { + attr_contentlen = sizeof(attr_content); rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_STATUS, &attr_content, &attr_contentlen); if (attr_contentlen == 1) { @@ -6761,249 +7570,6 @@ exit: return ret; } -#if defined(CONFIG_RTW_WNM) || defined(CONFIG_RTW_80211K) -static u8 rtw_wnm_nb_elem_parsing( - u8* pdata, u32 data_len, u8 from_btm, - u32 *nb_rpt_num, u8 *nb_rpt_is_same, - struct roam_nb_info *pnb, struct wnm_btm_cant *pcandidates) -{ - u8 bfound = _FALSE, ret = _SUCCESS; - u8 *ptr, *pend, *op; - u32 elem_len, subelem_len, op_len; - u32 i, nb_rpt_entries = 0; - struct nb_rpt_hdr *pie; - struct wnm_btm_cant *pcandidate; - - if ((!pdata) || (!pnb)) - return _FAIL; - - if ((from_btm) && (!pcandidates)) - return _FAIL; - - ptr = pdata; - pend = ptr + data_len; - elem_len = data_len; - subelem_len = (u32)*(pdata+1); - - for (i=0; i < RTW_MAX_NB_RPT_NUM; i++) { - if (((ptr + 7) > pend) || (elem_len < subelem_len)) - break; - - if (*ptr != 0x34) { - RTW_ERR("WNM: invalid data(0x%2x)!\n", *ptr); - ret = _FAIL; - break; - } - - pie = (struct nb_rpt_hdr *)ptr; - if (from_btm) { - op = rtw_get_ie((u8 *)(ptr+15), - WNM_BTM_CAND_PREF_SUBEID, - &op_len, (subelem_len - 15)); - } - - ptr = (u8 *)(ptr + subelem_len + 2); - elem_len -= (subelem_len +2); - subelem_len = *(ptr+1); - if (from_btm) { - pcandidate = (pcandidates + i); - _rtw_memcpy(&pcandidate->nb_rpt, pie, sizeof(struct nb_rpt_hdr)); - if (op && (op_len !=0)) { - pcandidate->preference = *(op + 2); - bfound = _TRUE; - } else - pcandidate->preference = 0; - - RTW_DBG("WNM: preference check bssid("MAC_FMT - ") ,bss_info(0x%04X), reg_class(0x%02X), ch(%d)," - " phy_type(0x%02X), preference(0x%02X)\n", - MAC_ARG(pcandidate->nb_rpt.bssid), pcandidate->nb_rpt.bss_info, - pcandidate->nb_rpt.reg_class, pcandidate->nb_rpt.ch_num, - pcandidate->nb_rpt.phy_type, pcandidate->preference); - } else { - if (_rtw_memcmp(&pnb->nb_rpt[i], pie, sizeof(struct nb_rpt_hdr)) == _FALSE) - *nb_rpt_is_same = _FALSE; - _rtw_memcpy(&pnb->nb_rpt[i], pie, sizeof(struct nb_rpt_hdr)); - } - nb_rpt_entries++; - } - - if (from_btm) - pnb->preference_en = (bfound)?_TRUE:_FALSE; - - *nb_rpt_num = nb_rpt_entries; - return ret; -} - -/* selection sorting based on preference value - * : nb_rpt_entries - candidate num - * / : pcandidates - candidate list - * return : TRUE - means pcandidates is updated. - */ -static u8 rtw_wnm_candidates_sorting( - u32 nb_rpt_entries, struct wnm_btm_cant *pcandidates) -{ - u8 updated = _FALSE; - u32 i, j, pos; - struct wnm_btm_cant swap; - struct wnm_btm_cant *pcant_1, *pcant_2; - - if ((!nb_rpt_entries) || (!pcandidates)) - return updated; - - for (i=0; i < (nb_rpt_entries - 1); i++) { - pos = i; - for (j=(i + 1); j < nb_rpt_entries; j++) { - pcant_1 = pcandidates+pos; - pcant_2 = pcandidates+j; - if ((pcant_1->preference) < (pcant_2->preference)) - pos = j; - } - - if (pos != i) { - updated = _TRUE; - _rtw_memcpy(&swap, (pcandidates+i), sizeof(struct wnm_btm_cant)); - _rtw_memcpy((pcandidates+i), (pcandidates+pos), sizeof(struct wnm_btm_cant)); - _rtw_memcpy((pcandidates+pos), &swap, sizeof(struct wnm_btm_cant)); - } - } - return updated; -} - -static void rtw_wnm_nb_info_update( - u32 nb_rpt_entries, u8 from_btm, - struct roam_nb_info *pnb, struct wnm_btm_cant *pcandidates, - u8 *nb_rpt_is_same) -{ - u8 is_found; - u32 i, j; - struct wnm_btm_cant *pcand; - - if (!pnb) - return; - - pnb->nb_rpt_ch_list_num = 0; - for (i=0; inb_rpt[i], &pcand->nb_rpt, - sizeof(struct nb_rpt_hdr)) == _FALSE) - *nb_rpt_is_same = _FALSE; - _rtw_memcpy(&pnb->nb_rpt[i], &pcand->nb_rpt, sizeof(struct nb_rpt_hdr)); - } - - RTW_DBG("WNM: bssid(" MAC_FMT - ") , bss_info(0x%04X), reg_class(0x%02X), ch_num(%d), phy_type(0x%02X)\n", - MAC_ARG(pnb->nb_rpt[i].bssid), pnb->nb_rpt[i].bss_info, - pnb->nb_rpt[i].reg_class, pnb->nb_rpt[i].ch_num, - pnb->nb_rpt[i].phy_type); - - if (pnb->nb_rpt[i].ch_num == 0) - continue; - - for (j=0; jnb_rpt[i].ch_num == pnb->nb_rpt_ch_list[j].hw_value) { - is_found = _TRUE; - break; - } - } - - if (!is_found) { - pnb->nb_rpt_ch_list[pnb->nb_rpt_ch_list_num].hw_value = pnb->nb_rpt[i].ch_num; - pnb->nb_rpt_ch_list_num++; - } - } -} - -static void rtw_wnm_btm_candidate_select(_adapter *padapter) -{ - struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); - struct roam_nb_info *pnb = &(padapter->mlmepriv.nb_info); - struct wlan_network *pnetwork; - u8 bfound = _FALSE; - u32 i; - - for (i = 0; i < pnb->last_nb_rpt_entries; i++) { - pnetwork = rtw_find_network( - &(pmlmepriv->scanned_queue), - pnb->nb_rpt[i].bssid); - - if (pnetwork) { - bfound = _TRUE; - break; - } - } - - if (bfound) { - _rtw_memcpy(pnb->roam_target_addr, pnb->nb_rpt[i].bssid, ETH_ALEN); - RTW_INFO("WNM : select btm entry(%d) - %s("MAC_FMT", ch%u) rssi:%d\n" - , i - , pnetwork->network.Ssid.Ssid - , MAC_ARG(pnetwork->network.MacAddress) - , pnetwork->network.Configuration.DSConfig - , (int)pnetwork->network.Rssi); - } else - _rtw_memset(pnb->roam_target_addr,0, ETH_ALEN); -} - -u32 rtw_wnm_btm_candidates_survey( - _adapter *padapter, u8* pframe, u32 elem_len, u8 from_btm) -{ - struct roam_nb_info *pnb = &(padapter->mlmepriv.nb_info); - struct wnm_btm_cant *pcandidate_list = NULL; - u8 nb_rpt_is_same = _TRUE; - u32 ret = _FAIL; - u32 nb_rpt_entries = 0; - - if (from_btm) { - u32 mlen = sizeof(struct wnm_btm_cant) * RTW_MAX_NB_RPT_NUM; - pcandidate_list = (struct wnm_btm_cant *)rtw_malloc(mlen); - if (pcandidate_list == NULL) - goto exit; - } - - /*clean the status set last time*/ - _rtw_memset(&pnb->nb_rpt_ch_list, 0, sizeof(pnb->nb_rpt_ch_list)); - pnb->nb_rpt_valid = _FALSE; - if (!rtw_wnm_nb_elem_parsing( - pframe, elem_len, from_btm, - &nb_rpt_entries, &nb_rpt_is_same, - pnb, pcandidate_list)) - goto exit; - - if (nb_rpt_entries != 0) { - if ((from_btm) && (rtw_wnm_btm_preference_cap(padapter))) - rtw_wnm_candidates_sorting(nb_rpt_entries, pcandidate_list); - - rtw_wnm_nb_info_update( - nb_rpt_entries, from_btm, - pnb, pcandidate_list, &nb_rpt_is_same); - } - - RTW_INFO("nb_rpt_is_same = %d, nb_rpt_entries = %d, last_nb_rpt_entries = %d\n", - nb_rpt_is_same, nb_rpt_entries, pnb->last_nb_rpt_entries); - if ((nb_rpt_is_same == _TRUE) && (nb_rpt_entries == pnb->last_nb_rpt_entries)) - pnb->nb_rpt_is_same = _TRUE; - else { - pnb->nb_rpt_is_same = _FALSE; - pnb->last_nb_rpt_entries = nb_rpt_entries; - } - - if ((from_btm) && (nb_rpt_entries != 0)) - rtw_wnm_btm_candidate_select(padapter); - - pnb->nb_rpt_valid = _TRUE; - ret = _SUCCESS; - -exit: - if (from_btm && pcandidate_list) - rtw_mfree((u8 *)pcandidate_list, sizeof(struct wnm_btm_cant) * RTW_MAX_NB_RPT_NUM); - - return ret; -} -#endif - unsigned int OnAction_ft(_adapter *padapter, union recv_frame *precv_frame) { #ifdef CONFIG_RTW_80211R @@ -7013,7 +7579,7 @@ unsigned int OnAction_ft(_adapter *padapter, union recv_frame *precv_frame) u8 category = 0; u8 *pframe = NULL; u8 *pframe_body = NULL; - u8 tgt_addr[ETH_ALEN]; + u8 tgt_addr[ETH_ALEN]; u8 *pie = NULL; u32 ft_ie_len = 0; u32 status_code = 0; @@ -7090,238 +7656,6 @@ exit: #endif } -#ifdef CONFIG_RTW_WNM -u8 rtw_wmn_btm_rsp_reason_decision(_adapter *padapter, u8* req_mode) -{ - struct recv_priv *precvpriv = &padapter->recvpriv; - struct mlme_priv *pmlmepriv = &padapter->mlmepriv; - u8 reason = 0; - - if (!rtw_wnm_btm_diff_bss(padapter)) { - /* Reject - No suitable BSS transition candidates */ - reason = 7; - goto candidate_remove; - } - -#ifdef CONFIG_RTW_80211R - if (rtw_ft_chk_flags(padapter, RTW_FT_BTM_ROAM)) { - /* Accept */ - reason = 0; - goto under_survey; - } -#endif - - if (((*req_mode) & DISASSOC_IMMINENT) == 0) { - /* Reject - Unspecified reject reason */ - reason = 1; - goto candidate_remove; - } - - if (precvpriv->signal_strength_data.avg_val >= pmlmepriv->roam_rssi_threshold) { - reason = 1; - goto candidate_remove; - } - -under_survey: - if (check_fwstate(pmlmepriv, WIFI_UNDER_SURVEY)) { - RTW_INFO("%s reject due to WIFI_UNDER_SURVEY\n", __func__); - reason = 1; - } - -candidate_remove: - if (reason !=0) - rtw_wnm_reset_btm_candidate(&padapter->mlmepriv.nb_info); - - return reason; -} - -static u32 rtw_wnm_btm_candidates_offset_get(u8* pframe) -{ - u8 *pos = pframe; - u32 offset = 0; - - if (!pframe) - return 0; - - offset += 7; - pos += offset; - - /* BSS Termination Duration check */ - if (wnm_btm_bss_term_inc(pframe)) { - offset += 12; - pos += offset; - } - - /* Session Information URL check*/ - if (wnm_btm_ess_disassoc_im(pframe)) { - /*URL length field + URL variable length*/ - offset = 1 + *(pframe + offset); - pos += offset; - } - - offset = (pos - pframe); - return offset; -} - -static void rtw_wnm_btm_req_hdr_parsing(u8* pframe, struct btm_req_hdr *phdr) -{ - u8 *pos = pframe; - u32 offset = 0; - - if (!pframe || !phdr) - return; - - _rtw_memset(phdr, 0, sizeof(struct btm_req_hdr)); - phdr->req_mode = wnm_btm_req_mode(pframe); - phdr->disassoc_timer = wnm_btm_disassoc_timer(pframe); - phdr->validity_interval = wnm_btm_valid_interval(pframe); - if (wnm_btm_bss_term_inc(pframe)) { - _rtw_memcpy(&phdr->term_duration, - wnm_btm_term_duration_offset(pframe), - sizeof(struct btm_term_duration)); - } - - RTW_DBG("WNM: req_mode(%1x), disassoc_timer(%02x), interval(%x)\n", - phdr->req_mode, phdr->disassoc_timer, phdr->validity_interval); - if (wnm_btm_bss_term_inc(pframe)) - RTW_INFO("WNM: tsf(%llx), duration(%2x)\n", - phdr->term_duration.tsf, phdr->term_duration.duration); -} - -void rtw_wnm_roam_scan_hdl(void *ctx) -{ - _adapter *padapter = (_adapter *)ctx; - struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); - - if (rtw_is_scan_deny(padapter)) - RTW_INFO("WNM: roam scan would abort by scan_deny!\n"); - - pmlmepriv->need_to_roam = _TRUE; - rtw_drv_scan_by_self(padapter, RTW_AUTO_SCAN_REASON_ROAM); -} - -static void rtw_wnm_roam_scan(_adapter *padapter) -{ - struct roam_nb_info *pnb = &(padapter->mlmepriv.nb_info); - - if (rtw_is_scan_deny(padapter)) { - _cancel_timer_ex(&pnb->roam_scan_timer); - _set_timer(&pnb->roam_scan_timer, 1000); - } else - rtw_wnm_roam_scan_hdl((void *)padapter); -} - -void rtw_wnm_process_btm_req(_adapter *padapter, u8* pframe, u32 frame_len) -{ - struct roam_nb_info *pnb = &(padapter->mlmepriv.nb_info); - struct btm_req_hdr req_hdr; - u8 *ptr, reason; - u32 elem_len, offset; - - rtw_wnm_btm_req_hdr_parsing(pframe, &req_hdr); - offset = rtw_wnm_btm_candidates_offset_get(pframe); - if ((offset == 0) || ((frame_len - offset) <= 15)) - return; - - ptr = (pframe + offset); - elem_len = (frame_len - offset); - rtw_wnm_btm_candidates_survey(padapter, ptr, elem_len, _TRUE); - reason = rtw_wmn_btm_rsp_reason_decision(padapter, &pframe[3]); - rtw_wnm_issue_action(padapter, - RTW_WLAN_ACTION_WNM_BTM_RSP, reason); - - if (reason == 0) - rtw_wnm_roam_scan(padapter); -} - -void rtw_wnm_reset_btm_candidate(struct roam_nb_info *pnb) -{ - pnb->preference_en = _FALSE; - _rtw_memset(pnb->roam_target_addr, 0, ETH_ALEN); -} - -void rtw_wnm_reset_btm_state(_adapter *padapter) -{ - struct roam_nb_info *pnb = &(padapter->mlmepriv.nb_info); - - pnb->last_nb_rpt_entries = 0; - pnb->nb_rpt_is_same = _TRUE; - pnb->nb_rpt_valid = _FALSE; - pnb->nb_rpt_ch_list_num = 0; - rtw_wnm_reset_btm_candidate(pnb); - _rtw_memset(&pnb->nb_rpt, 0, sizeof(pnb->nb_rpt)); - _rtw_memset(&pnb->nb_rpt_ch_list, 0, sizeof(pnb->nb_rpt_ch_list)); -} - -void rtw_wnm_issue_action(_adapter *padapter, u8 action, u8 reason) -{ - struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); - struct xmit_priv *pxmitpriv = &(padapter->xmitpriv); - struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); - struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); - struct xmit_frame *pmgntframe; - struct rtw_ieee80211_hdr *pwlanhdr; - struct pkt_attrib *pattrib; - u8 category, dialog_token, termination_delay, *pframe; - u16 *fctrl; - - if ((pmgntframe = alloc_mgtxmitframe(pxmitpriv)) == NULL) - return ; - - pattrib = &(pmgntframe->attrib); - update_mgntframe_attrib(padapter, pattrib); - _rtw_memset(pmgntframe->buf_addr, 0, (WLANHDR_OFFSET + TXDESC_OFFSET)); - - pframe = (u8 *)(pmgntframe->buf_addr + TXDESC_OFFSET); - pwlanhdr = (struct rtw_ieee80211_hdr *)pframe; - - fctrl = &(pwlanhdr->frame_ctl); - *(fctrl) = 0; - - _rtw_memcpy(pwlanhdr->addr1, get_my_bssid(&pmlmeinfo->network), ETH_ALEN); - _rtw_memcpy(pwlanhdr->addr2, adapter_mac_addr(padapter), ETH_ALEN); - _rtw_memcpy(pwlanhdr->addr3, get_my_bssid(&pmlmeinfo->network), ETH_ALEN); - - SetSeqNum(pwlanhdr, pmlmeext->mgnt_seq); - pmlmeext->mgnt_seq++; - set_frame_sub_type(pframe, WIFI_ACTION); - - pframe += sizeof(struct rtw_ieee80211_hdr_3addr); - pattrib->pktlen = sizeof(struct rtw_ieee80211_hdr_3addr); - - category = RTW_WLAN_CATEGORY_WNM; - pframe = rtw_set_fixed_ie(pframe, 1, &(category), &(pattrib->pktlen)); - pframe = rtw_set_fixed_ie(pframe, 1, &(action), &(pattrib->pktlen)); - - switch (action) { - case RTW_WLAN_ACTION_WNM_BTM_QUERY: - pframe = rtw_set_fixed_ie(pframe, 1, &(dialog_token), &(pattrib->pktlen)); - pframe = rtw_set_fixed_ie(pframe, 1, &(reason), &(pattrib->pktlen)); - RTW_INFO("WNM: RTW_WLAN_ACTION_WNM_BTM_QUERY sent.\n"); - break; - case RTW_WLAN_ACTION_WNM_BTM_RSP: - termination_delay = 0; - pframe = rtw_set_fixed_ie(pframe, 1, &(dialog_token), &(pattrib->pktlen)); - pframe = rtw_set_fixed_ie(pframe, 1, &(reason), &(pattrib->pktlen)); - pframe = rtw_set_fixed_ie(pframe, 1, &(termination_delay), &(pattrib->pktlen)); - if (!is_zero_mac_addr(pmlmepriv->nb_info.roam_target_addr)) { - pframe = rtw_set_fixed_ie(pframe, 6, - pmlmepriv->nb_info.roam_target_addr, &(pattrib->pktlen)); - } - RTW_INFO("WNM: RTW_WLAN_ACTION_WNM_BTM_RSP sent. reason = %d\n", reason); - break; - default: - goto exit; - } - - pattrib->last_txcmdsz = pattrib->pktlen; - dump_mgntframe(padapter, pmgntframe); - -exit: - return; -} -#endif - unsigned int OnAction_ht(_adapter *padapter, union recv_frame *precv_frame) { u8 *pframe = precv_frame->u.hdr.rx_data; @@ -7763,6 +8097,7 @@ void update_mgnt_tx_rate(_adapter *padapter, u8 rate) struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); pmlmeext->tx_rate = rate; + pmlmeext->tx_rate_section = mgn_rate_to_rs(rate); /* RTW_INFO("%s(): rate = %x\n",__FUNCTION__, rate); */ } @@ -7786,7 +8121,7 @@ void update_monitor_frame_attrib(_adapter *padapter, struct pkt_attrib *pattrib) pattrib->pktlen = 0; - if (pmlmeext->tx_rate == IEEE80211_CCK_RATE_1MB) + if (IS_CCK_RATE(pmlmeext->tx_rate)) wireless_mode = WIRELESS_11B; else wireless_mode = WIRELESS_11G; @@ -7827,12 +8162,35 @@ void update_monitor_frame_attrib(_adapter *padapter, struct pkt_attrib *pattrib) } +#ifdef CONFIG_RTW_MGMT_QUEUE +void update_mgntframe_subtype(_adapter *padapter, struct xmit_frame *pmgntframe) +{ + struct pkt_attrib *pattrib = &pmgntframe->attrib; + u8 *pframe; + u8 subtype, category ,action; + + pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET; + subtype = get_frame_sub_type(pframe); /* bit(7)~bit(2) */ + pattrib->subtype = subtype; + + rtw_action_frame_parse(pframe, pattrib->pktlen, &category, &action); + + if ((subtype == WIFI_ACTION && !(action == ACT_PUBLIC_FTM_REQ || action == ACT_PUBLIC_FTM)) || + subtype == WIFI_DISASSOC || subtype == WIFI_DEAUTH || + (subtype == WIFI_PROBERSP && MLME_IS_ADHOC(padapter))) + pattrib->ps_dontq = 0; + else + pattrib->ps_dontq = 1; +} +#endif void update_mgntframe_attrib(_adapter *padapter, struct pkt_attrib *pattrib) { u8 wireless_mode; struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); struct xmit_priv *pxmitpriv = &padapter->xmitpriv; + struct sta_priv *pstapriv = &padapter->stapriv; + struct sta_info *psta; #ifdef CONFIG_P2P_PS_NOA_USE_MACID_SLEEP struct wifidirect_info *pwdinfo = &(padapter->wdinfo); @@ -7860,8 +8218,6 @@ void update_mgntframe_attrib(_adapter *padapter, struct pkt_attrib *pattrib) struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); WLAN_BSSID_EX *cur_network = &(pmlmeinfo->network); - struct sta_priv *pstapriv = &padapter->stapriv; - struct sta_info *psta; psta = rtw_get_stainfo(pstapriv, cur_network->MacAddress); if (psta) { @@ -7876,7 +8232,6 @@ void update_mgntframe_attrib(_adapter *padapter, struct pkt_attrib *pattrib) } #endif /* CONFIG_P2P_PS_NOA_USE_MACID_SLEEP */ - pattrib->pktlen = 0; if (IS_CCK_RATE(pmlmeext->tx_rate)) @@ -7901,14 +8256,17 @@ void update_mgntframe_attrib(_adapter *padapter, struct pkt_attrib *pattrib) pattrib->mbssid = 0; pattrib->hw_ssn_sel = pxmitpriv->hw_ssn_seq_no; +#ifdef CONFIG_RTW_MGMT_QUEUE + pattrib->ps_dontq = 1; +#endif } void update_mgntframe_attrib_addr(_adapter *padapter, struct xmit_frame *pmgntframe) { - u8 *pframe; - struct pkt_attrib *pattrib = &pmgntframe->attrib; -#if defined(CONFIG_BEAMFORMING) || defined(CONFIG_ANTENNA_DIVERSITY) - struct sta_info *sta = NULL; + u8 *pframe; + struct pkt_attrib *pattrib = &pmgntframe->attrib; +#if defined(CONFIG_BEAMFORMING) || defined(CONFIG_ANTENNA_DIVERSITY) || defined(CONFIG_RTW_MGMT_QUEUE) + struct sta_info *sta = NULL; #endif pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET; @@ -7916,17 +8274,18 @@ void update_mgntframe_attrib_addr(_adapter *padapter, struct xmit_frame *pmgntfr _rtw_memcpy(pattrib->ra, GetAddr1Ptr(pframe), ETH_ALEN); _rtw_memcpy(pattrib->ta, get_addr2_ptr(pframe), ETH_ALEN); -#if defined(CONFIG_BEAMFORMING) || defined(CONFIG_ANTENNA_DIVERSITY) +#if defined(CONFIG_BEAMFORMING) || defined(CONFIG_ANTENNA_DIVERSITY) || defined(CONFIG_RTW_MGMT_QUEUE) sta = pattrib->psta; if (!sta) { sta = rtw_get_stainfo(&padapter->stapriv, pattrib->ra); pattrib->psta = sta; } + #ifdef CONFIG_BEAMFORMING if (sta) update_attrib_txbf_info(padapter, pattrib, sta); #endif -#endif /* defined(CONFIG_BEAMFORMING) || defined(CONFIG_ANTENNA_DIVERSITY) */ +#endif /* defined(CONFIG_BEAMFORMING) || defined(CONFIG_ANTENNA_DIVERSITY) || defined(CONFIG_RTW_MGMT_QUEUE) */ } void dump_mgntframe(_adapter *padapter, struct xmit_frame *pmgntframe) @@ -7959,7 +8318,11 @@ s32 dump_mgntframe_and_wait(_adapter *padapter, struct xmit_frame *pmgntframe, i ret = rtw_hal_mgnt_xmit(padapter, pmgntframe); - if (ret == _SUCCESS) + if (ret == _SUCCESS +#ifdef CONFIG_RTW_MGMT_QUEUE + || ret == RTW_QUEUE_MGMT +#endif + ) ret = rtw_sctx_wait(&sctx, __func__); _enter_critical(&pxmitpriv->lock_sctx, &irqL); @@ -7987,7 +8350,14 @@ s32 dump_mgntframe_and_wait_ack_timeout(_adapter *padapter, struct xmit_frame *p pxmitpriv->seq_no = seq_no++; pmgntframe->ack_report = 1; rtw_sctx_init(&(pxmitpriv->ack_tx_ops), timeout_ms); - if (rtw_hal_mgnt_xmit(padapter, pmgntframe) == _SUCCESS) + + ret = rtw_hal_mgnt_xmit(padapter, pmgntframe); + + if (ret == _SUCCESS +#ifdef CONFIG_RTW_MGMT_QUEUE + || ret == RTW_QUEUE_MGMT +#endif + ) ret = rtw_sctx_wait(&(pxmitpriv->ack_tx_ops), __func__); pxmitpriv->ack_tx = _FALSE; @@ -8003,8 +8373,8 @@ s32 dump_mgntframe_and_wait_ack_timeout(_adapter *padapter, struct xmit_frame *p s32 dump_mgntframe_and_wait_ack(_adapter *padapter, struct xmit_frame *pmgntframe) { - /* In this case, use 500 ms as the default wait_ack timeout */ - return dump_mgntframe_and_wait_ack_timeout(padapter, pmgntframe, 500); + /* In this case, use 30 ms as the default wait_ack timeout */ + return dump_mgntframe_and_wait_ack_timeout(padapter, pmgntframe, 30); } @@ -8043,6 +8413,7 @@ int update_hidden_ssid(u8 *ies, u32 ies_len, u8 hidden_ssid_mode) return len_diff; } +#ifdef CONFIG_AP_MODE void issue_beacon(_adapter *padapter, int timeout_ms) { struct xmit_frame *pmgntframe; @@ -8240,12 +8611,6 @@ void issue_beacon(_adapter *padapter, int timeout_ms) _clr_fwstate_(pmlmepriv, WIFI_UNDER_WPS); } -#ifdef CONFIG_RTW_80211K - pframe = rtw_set_ie(pframe, _EID_RRM_EN_CAP_IE_, - sizeof(padapter->rmpriv.rm_en_cap_def), - padapter->rmpriv.rm_en_cap_def, &pattrib->pktlen); -#endif - #ifdef CONFIG_P2P if (rtw_p2p_chk_role(pwdinfo, P2P_ROLE_GO)) { u32 len; @@ -8369,6 +8734,7 @@ _issue_bcn: dump_mgntframe(padapter, pmgntframe); } +#endif /* CONFIG_AP_MODE */ void issue_probersp(_adapter *padapter, unsigned char *da, u8 is_valid_p2p_probereq) { @@ -8569,12 +8935,6 @@ void issue_probersp(_adapter *padapter, unsigned char *da, u8 is_valid_p2p_probe } -#ifdef CONFIG_RTW_80211K - pframe = rtw_set_ie(pframe, _EID_RRM_EN_CAP_IE_, - sizeof(padapter->rmpriv.rm_en_cap_def), - padapter->rmpriv.rm_en_cap_def, &pattrib->pktlen); -#endif - #ifdef CONFIG_P2P if (rtw_p2p_chk_role(pwdinfo, P2P_ROLE_GO) /* IOT issue, When wifi_spec is not set, send probe_resp with P2P IE even if probe_req has no P2P IE */ @@ -8650,69 +9010,6 @@ void issue_probersp(_adapter *padapter, unsigned char *da, u8 is_valid_p2p_probe } -#ifdef CONFIG_ALIBABA_ZEROCONFIG -void issue_probersp_zeroconf(_adapter *padapter, char *buf, int buf_len) -{ - struct xmit_frame *pmgntframe; - struct pkt_attrib *pattrib; - unsigned char *pframe; - struct rtw_ieee80211_hdr *pwlanhdr; - unsigned short *fctrl; - unsigned char *mac, *bssid; - struct xmit_priv *pxmitpriv = &(padapter->xmitpriv); - - struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); - struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); - WLAN_BSSID_EX *cur_network = &(pmlmeinfo->network); - unsigned int rate_len; - - if (rtw_rfctl_is_tx_blocked_by_ch_waiting(adapter_to_rfctl(padapter))) - return; - - pmgntframe = alloc_mgtxmitframe(pxmitpriv); - if (pmgntframe == NULL) { - RTW_INFO("%s, alloc mgnt frame fail\n", __FUNCTION__); - return; - } - if(buf == NULL || buf_len <=0) { - RTW_ERR("%s buf is NULL\n", __func__); - return; - } -#ifdef CONFIG_ALIBABA_ZEROCONFIG_DBG - RTW_INFO("%s ======= dump buf: =======\n", __func__); - RTW_INFO_DUMP(NULL, buf, buf_len); -#endif - /* update attribute */ - pattrib = &pmgntframe->attrib; - update_mgntframe_attrib(padapter, pattrib); - - _rtw_memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET); - - pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET; - pwlanhdr = (struct rtw_ieee80211_hdr *)pframe; - - fctrl = &(pwlanhdr->frame_ctl); - *(fctrl) = 0; - // Copy genl_recv probersp - _rtw_memcpy(pframe, buf, buf_len); - - SetSeqNum(pwlanhdr, pmlmeext->mgnt_seq); - pmlmeext->mgnt_seq++; - - pattrib->hdrlen = sizeof(struct rtw_ieee80211_hdr_3addr); - pattrib->pktlen = buf_len; -#ifdef CONFIG_ALIBABA_ZEROCONFIG_DBG - RTW_INFO("%s ======= dump pframe: =======\n", __func__); - RTW_INFO_DUMP(NULL, pframe, pattrib->pktlen); -#endif - pattrib->last_txcmdsz = pattrib->pktlen; - dump_mgntframe(padapter, pmgntframe); - - return; - -} -#endif - int _issue_probereq(_adapter *padapter, const NDIS_802_11_SSID *pssid, const u8 *da, u8 ch, bool append_wps, int wait_ack) { int ret = _FAIL; @@ -8728,7 +9025,7 @@ int _issue_probereq(_adapter *padapter, const NDIS_802_11_SSID *pssid, const u8 struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); int bssrate_len = 0; u8 bc_addr[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; -#ifdef CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI +#if defined(CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI) || defined(CONFIG_RTW_SCAN_RAND) struct rtw_wdev_priv *pwdev_priv = adapter_wdev_data(padapter); #endif @@ -8749,7 +9046,7 @@ int _issue_probereq(_adapter *padapter, const NDIS_802_11_SSID *pssid, const u8 pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET; pwlanhdr = (struct rtw_ieee80211_hdr *)pframe; -#ifdef CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI +#if defined(CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI) || defined(CONFIG_RTW_SCAN_RAND) if ((pwdev_priv->pno_mac_addr[0] != 0xFF) && (check_fwstate(&padapter->mlmepriv, WIFI_STATION_STATE) == _TRUE) && (check_fwstate(&padapter->mlmepriv, WIFI_ASOC_STATE) == _FALSE)) @@ -8773,7 +9070,7 @@ int _issue_probereq(_adapter *padapter, const NDIS_802_11_SSID *pssid, const u8 _rtw_memcpy(pwlanhdr->addr2, mac, ETH_ALEN); -#ifdef CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI +#if defined(CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI) || defined(CONFIG_RTW_SCAN_RAND) if ((pwdev_priv->pno_mac_addr[0] != 0xFF) && (check_fwstate(&padapter->mlmepriv, WIFI_STATION_STATE) == _TRUE) && (check_fwstate(&padapter->mlmepriv, WIFI_ASOC_STATE) == _FALSE)) { @@ -8839,6 +9136,10 @@ int _issue_probereq(_adapter *padapter, const NDIS_802_11_SSID *pssid, const u8 #endif/*CONFIG_RTL8812A*/ +#ifdef CONFIG_RTW_MBO + rtw_mbo_build_probe_req_ies( padapter, &pframe, pattrib); +#endif + pattrib->last_txcmdsz = pattrib->pktlen; @@ -8870,6 +9171,18 @@ int issue_probereq_ex(_adapter *padapter, const NDIS_802_11_SSID *pssid, const u int i = 0; systime start = rtw_get_current_time(); +#if 0 /* DEBUG */ + if (da && pssid) + RTW_INFO(FUNC_ADPT_FMT" to %s ("MAC_FMT") ch:%u\n", + FUNC_ADPT_ARG(padapter), pssid->Ssid, MAC_ARG(da), rtw_get_oper_ch(padapter)); + else if (pssid) + RTW_INFO(FUNC_ADPT_FMT" to %s (ff:ff:ff:ff:ff:ff) ch:%u\n", + FUNC_ADPT_ARG(padapter), pssid->Ssid, rtw_get_oper_ch(padapter)); + else + RTW_INFO(FUNC_ADPT_FMT" to * (ff:ff:ff:ff:ff:ff) ch:%u\n", + FUNC_ADPT_ARG(padapter), rtw_get_oper_ch(padapter)); +#endif + if (rtw_rfctl_is_tx_blocked_by_ch_waiting(adapter_to_rfctl(padapter))) goto exit; @@ -9054,7 +9367,7 @@ void issue_auth(_adapter *padapter, struct sta_info *psta, unsigned short status pattrib->last_txcmdsz = pattrib->pktlen; rtw_wep_encrypt(padapter, (u8 *)pmgntframe); - RTW_INFO("%s\n", __FUNCTION__); + RTW_INFO("%s to "MAC_FMT" status:%u\n", __FUNCTION__, MAC_ARG(pwlanhdr->addr1), status); dump_mgntframe(padapter, pmgntframe); return; @@ -9075,7 +9388,8 @@ void issue_asocrsp(_adapter *padapter, unsigned short status, struct sta_info *p struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); WLAN_BSSID_EX *pnetwork = &(pmlmeinfo->network); - u8 *ie = pnetwork->IEs; + u8 *ie = pnetwork->IEs, cap[5], i; + struct security_priv *psecuritypriv = &(padapter->securitypriv); #ifdef CONFIG_P2P struct wifidirect_info *pwdinfo = &(padapter->wdinfo); #ifdef CONFIG_WFD @@ -9087,7 +9401,7 @@ void issue_asocrsp(_adapter *padapter, unsigned short status, struct sta_info *p if (rtw_rfctl_is_tx_blocked_by_ch_waiting(adapter_to_rfctl(padapter))) return; - RTW_INFO("%s\n", __FUNCTION__); + RTW_INFO("%s to "MAC_FMT" status:%u\n", __FUNCTION__, MAC_ARG(pstat->cmn.mac_addr), status); pmgntframe = alloc_mgtxmitframe(pxmitpriv); if (pmgntframe == NULL) @@ -9124,7 +9438,9 @@ void issue_asocrsp(_adapter *padapter, unsigned short status, struct sta_info *p /* capability */ val = *(unsigned short *)rtw_get_capability_from_ie(ie); - +#ifdef CONFIG_RTW_80211K + val |= cap_RM; +#endif pframe = rtw_set_fixed_ie(pframe, _CAPABILITY_ , (unsigned char *)&val, &(pattrib->pktlen)); ie_status = cpu_to_le16(status); @@ -9181,7 +9497,7 @@ void issue_asocrsp(_adapter *padapter, unsigned short status, struct sta_info *p if (pmlmepriv->ext_capab_ie_len > 0) { uint ie_len = 0; - pbuf = rtw_get_ie(ie + _BEACON_IE_OFFSET_, _EXT_CAP_IE_, &ie_len, (pnetwork->IELength - _BEACON_IE_OFFSET_)); + pbuf = rtw_get_ie(ie + _BEACON_IE_OFFSET_, WLAN_EID_EXT_CAP, &ie_len, (pnetwork->IELength - _BEACON_IE_OFFSET_)); if (pbuf && ie_len > 0) { _rtw_memcpy(pframe, pbuf, ie_len + 2); pframe += (ie_len + 2); @@ -9213,6 +9529,17 @@ void issue_asocrsp(_adapter *padapter, unsigned short status, struct sta_info *p } #endif /* CONFIG_80211AC_VHT */ +#ifdef CONFIG_RTW_80211K + /* FILL RM Enabled Capabilities with joint capabilities */ + for (i = 0; i < 5; i++) { + cap[i] = padapter->rmpriv.rm_en_cap_def[i] + & pstat->rm_en_cap[i]; + } + if (pstat->capability & cap_RM) + pframe = rtw_set_ie(pframe, _EID_RRM_EN_CAP_IE_, 5, + (u8 *)cap, &(pattrib->pktlen)); +#endif /* CONFIG_RTW_80211K */ + /* FILL WMM IE */ if ((pstat->flags & WLAN_STA_WME) && (pmlmepriv->qospriv.qos_option)) { uint ie_len = 0; @@ -9246,6 +9573,14 @@ void issue_asocrsp(_adapter *padapter, unsigned short status, struct sta_info *p pattrib->pktlen += pmlmepriv->wps_assoc_resp_ie_len; } + + if ((psecuritypriv->auth_type == MLME_AUTHTYPE_SAE) && + pmlmepriv->assoc_rsp && pmlmepriv->assoc_rsp_len > 0) { + _rtw_memcpy(pframe, pmlmepriv->assoc_rsp, pmlmepriv->assoc_rsp_len); + pframe += pmlmepriv->assoc_rsp_len; + pattrib->pktlen += pmlmepriv->assoc_rsp_len; + } + #ifdef CONFIG_P2P if (rtw_p2p_chk_role(pwdinfo, P2P_ROLE_GO) && (pstat->is_p2p_device == _TRUE)) { u32 len; @@ -9255,6 +9590,9 @@ void issue_asocrsp(_adapter *padapter, unsigned short status, struct sta_info *p if (pmlmepriv->p2p_assoc_resp_ie && pmlmepriv->p2p_assoc_resp_ie_len > 0) { len = pmlmepriv->p2p_assoc_resp_ie_len; _rtw_memcpy(pframe, pmlmepriv->p2p_assoc_resp_ie, len); + } else if (pmlmepriv->assoc_rsp && pmlmepriv->assoc_rsp_len > 0) { + len = pmlmepriv->assoc_rsp_len; + _rtw_memcpy(pframe, pmlmepriv->assoc_rsp, len); } } else len = build_assoc_resp_p2p_ie(pwdinfo, pframe, pstat->p2p_status_code); @@ -9271,6 +9609,12 @@ void issue_asocrsp(_adapter *padapter, unsigned short status, struct sta_info *p #endif #endif /* CONFIG_P2P */ + +#ifdef CONFIG_RTW_MULTI_AP + if (padapter->multi_ap && (pstat->flags & WLAN_STA_MULTI_AP)) + pframe = rtw_set_multi_ap_ie_ext(pframe, &pattrib->pktlen, padapter->multi_ap); +#endif + #ifdef CONFIG_APPEND_VENDOR_IE_ENABLE pattrib->pktlen += rtw_build_vendor_ie(padapter , &pframe , WIFI_ASSOCRESP_VENDOR_IE_BIT); #endif @@ -9309,6 +9653,40 @@ exit: return len; } +#ifdef CONFIG_ECSA +u8 *build_supported_op_class_ie(_adapter *padapter, u8 *pbuf, int *pktlen) +{ + u8 buf[32]; + int ie_len = 0; + + ie_len = get_supported_op_class(padapter, buf, sizeof(buf)); + pbuf = rtw_set_ie(pbuf, EID_SupRegulatory , ie_len, + (unsigned char *)buf, pktlen); + return pbuf; +} +#endif /* CONFIG_ECSA */ + +static u8 * rtw_set_rtk_vendor_ie(_adapter *padapter , u8 *pframe ,uint *frlen ) { + int vender_len; + systime current_time; + unsigned char vendor_info[255]; + unsigned char REALTEK_OUI[] = {0x00, 0xe0, 0x4c}; + unsigned char *ptr; + + current_time = rtw_get_current_time(); + _rtw_memset(vendor_info,0,255); + _rtw_memcpy(vendor_info, REALTEK_OUI, 3); + ptr = vendor_info + 3; + snprintf(ptr , sizeof(vendor_info) - 3, "%s-%ld", DRIVERVERSION, current_time); + vender_len = strlen(ptr) + 3; + + RTW_INFO("Realtek vendor IE %s\n", ptr); + + pframe = rtw_set_ie(pframe, _VENDOR_SPECIFIC_IE_, vender_len, vendor_info , frlen); + + return pframe; +} + void _issue_assocreq(_adapter *padapter, u8 is_reassoc) { int ret = _FAIL; @@ -9351,7 +9729,6 @@ void _issue_assocreq(_adapter *padapter, u8 is_reassoc) pattrib = &pmgntframe->attrib; update_mgntframe_attrib(padapter, pattrib); - _rtw_memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET); pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET; @@ -9378,6 +9755,9 @@ void _issue_assocreq(_adapter *padapter, u8 is_reassoc) #if CONFIG_DFS _rtw_memcpy(&cap, rtw_get_capability_from_ie(pmlmeinfo->network.IEs), 2); cap |= cap_SpecMgmt; +#ifdef CONFIG_RTW_80211K + cap |= cap_RM; +#endif _rtw_memcpy(pframe, &cap, 2); #else _rtw_memcpy(pframe, rtw_get_capability_from_ie(pmlmeinfo->network.IEs), 2); @@ -9395,7 +9775,12 @@ void _issue_assocreq(_adapter *padapter, u8 is_reassoc) /*Construct Current AP Field for Reassoc-Req only*/ if (is_reassoc == _TRUE) { - _rtw_memcpy(pframe, get_my_bssid(&(pmlmeinfo->network)), ETH_ALEN); + #ifdef CONFIG_LAYER2_ROAMING + if (pmlmepriv->roam_network && !is_zero_mac_addr(pmlmepriv->roam_from)) + _rtw_memcpy(pframe, pmlmepriv->roam_from, ETH_ALEN); + else + #endif + _rtw_memcpy(pframe, get_my_bssid(&(pmlmeinfo->network)), ETH_ALEN); pframe += ETH_ALEN; pattrib->pktlen += ETH_ALEN; } @@ -9511,14 +9896,22 @@ void _issue_assocreq(_adapter *padapter, u8 is_reassoc) else RTW_INFO("%s: Connect to AP without 11b and 11g data rate!\n", __FUNCTION__); +#ifdef CONFIG_ECSA + pframe = build_supported_op_class_ie(padapter, pframe, &pattrib->pktlen); +#endif /* CONFIG_ECSA */ + + pframe = rtw_set_rtk_vendor_ie(padapter, pframe, &pattrib->pktlen); + +#ifdef CONFIG_RTW_MBO + rtw_mbo_build_assoc_req_ies(padapter, &pframe, pattrib); +#endif +#ifdef CONFIG_RTW_80211R + rtw_ft_build_assoc_req_ies(padapter, is_reassoc, pattrib, &pframe); +#endif #ifdef CONFIG_RTW_80211K - if (pmlmeinfo->network.PhyInfo.rm_en_cap[0] /* RM Enabled Capabilities */ - | pmlmeinfo->network.PhyInfo.rm_en_cap[1] - | pmlmeinfo->network.PhyInfo.rm_en_cap[2] - | pmlmeinfo->network.PhyInfo.rm_en_cap[3] - | pmlmeinfo->network.PhyInfo.rm_en_cap[4]) - pframe = rtw_set_ie(pframe, _EID_RRM_EN_CAP_IE_, 5, - (u8 *)padapter->rmpriv.rm_en_cap_def, &(pattrib->pktlen)); + pframe = rtw_set_ie(pframe, _EID_RRM_EN_CAP_IE_, 5, + (u8 *)padapter->rmpriv.rm_en_cap_def, + &(pattrib->pktlen)); #endif /* CONFIG_RTW_80211K */ /* vendor specific IE, such as WPA, WMM, WPS */ @@ -9550,20 +9943,15 @@ void _issue_assocreq(_adapter *padapter, u8 is_reassoc) } else #endif { -#ifdef CONFIG_IOCTL_CFG80211 - if (rtw_sec_chk_auth_alg(padapter, WLAN_AUTH_OPEN) && - rtw_sec_chk_auth_type(padapter, MLME_AUTHTYPE_SAE)) { - s32 entry = rtw_cached_pmkid(padapter, pmlmepriv->assoc_bssid); - - rtw_rsn_sync_pmkid(padapter, (u8 *)pIE, (pIE->Length + 2), entry); - } -#endif /* CONFIG_IOCTL_CFG80211 */ - pframe = rtw_set_ie(pframe, EID_WPA2, pIE->Length, pIE->data, &(pattrib->pktlen)); /* tmp: update rsn's spp related opt. */ /*rtw_set_spp_amsdu_mode(padapter->registrypriv.amsdu_mode, pframe - (pIE->Length + 2), pIE->Length +2);*/ } break; + case WLAN_EID_RSNX: + pframe = rtw_set_ie(pframe, WLAN_EID_RSNX, pIE->Length, + pIE->data, &(pattrib->pktlen)); + break; #ifdef CONFIG_80211N_HT case EID_HTCapability: if (padapter->mlmepriv.htpriv.ht_option == _TRUE) { @@ -9576,12 +9964,12 @@ void _issue_assocreq(_adapter *padapter, u8 is_reassoc) } } break; - - case EID_EXTCapability: - if (padapter->mlmepriv.htpriv.ht_option == _TRUE) - pframe = rtw_set_ie(pframe, EID_EXTCapability, pIE->Length, pIE->data, &(pattrib->pktlen)); - break; #endif /* CONFIG_80211N_HT */ + + case WLAN_EID_EXT_CAP: + pframe = rtw_set_ie(pframe, WLAN_EID_EXT_CAP, pIE->Length, pIE->data, &(pattrib->pktlen)); + break; + #ifdef CONFIG_80211AC_VHT case EID_VHTCapability: if (padapter->mlmepriv.vhtpriv.vht_option == _TRUE) @@ -9760,6 +10148,11 @@ void _issue_assocreq(_adapter *padapter, u8 is_reassoc) #endif #endif /* CONFIG_P2P */ +#ifdef CONFIG_RTW_MULTI_AP + if (padapter->multi_ap) + pframe = rtw_set_multi_ap_ie_ext(pframe, &pattrib->pktlen, padapter->multi_ap); +#endif + /* OWE */ { u32 owe_ie_len; @@ -9780,19 +10173,19 @@ void _issue_assocreq(_adapter *padapter, u8 is_reassoc) pframe = rtw_hal_set_8812a_vendor_ie(padapter, pframe, &pattrib->pktlen ); #endif/*CONFIG_RTL8812A*/ -#ifdef CONFIG_RTW_80211R - rtw_ft_build_assoc_req_ies(padapter, is_reassoc, pattrib, &pframe); -#endif - pattrib->last_txcmdsz = pattrib->pktlen; dump_mgntframe(padapter, pmgntframe); ret = _SUCCESS; exit: - if (ret == _SUCCESS) + if (ret == _SUCCESS) { rtw_buf_update(&pmlmepriv->assoc_req, &pmlmepriv->assoc_req_len, (u8 *)pwlanhdr, pattrib->pktlen); - else + #ifdef CONFIG_RTW_WNM + if (is_reassoc == _TRUE) + rtw_wnm_update_reassoc_req_ie(padapter); + #endif + } else rtw_buf_free(&pmlmepriv->assoc_req, &pmlmepriv->assoc_req_len); return; @@ -9928,7 +10321,7 @@ int issue_nulldata(_adapter *padapter, unsigned char *da, unsigned int power_mod break; if (i < try_cnt && wait_ms > 0 && ret == _FAIL) - rtw_msleep_os(wait_ms); + rtw_msleep_os(1); } while ((i < try_cnt) && ((ret == _FAIL) || (wait_ms == 0))); @@ -10489,6 +10882,7 @@ static int issue_action_ba(_adapter *padapter, unsigned char *raddr, unsigned ch if (psta->flags & WLAN_STA_AMSDU_DISABLE) BA_para_set &= ~BIT(0); } + BA_para_set = cpu_to_le16(BA_para_set); pframe = rtw_set_fixed_ie(pframe, 2, (unsigned char *)(&(BA_para_set)), &(pattrib->pktlen)); @@ -11129,6 +11523,7 @@ unsigned int send_delba(_adapter *padapter, u8 initiator, u8 *addr) return _SUCCESS; } +#ifdef CONFIG_AP_MODE unsigned int send_beacon(_adapter *padapter) { #if defined(CONFIG_PCI_HCI) && !defined(CONFIG_PCI_BCN_POLLING) @@ -11258,6 +11653,7 @@ unsigned int send_beacon(_adapter *padapter) #endif /*defined(CONFIG_USB_HCI) || defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI)*/ } +#endif /* CONFIG_AP_MODE */ /**************************************************************************** @@ -11297,7 +11693,9 @@ u8 collect_bss_info(_adapter *padapter, union recv_frame *precv_frame, WLAN_BSSI struct registry_priv *pregistrypriv = &padapter->registrypriv; struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); - +#ifdef CONFIG_LAYER2_ROAMING + u32 *pbuf; +#endif len = packet_len - sizeof(struct rtw_ieee80211_hdr_3addr); @@ -11379,11 +11777,13 @@ u8 collect_bss_info(_adapter *padapter, union recv_frame *precv_frame, WLAN_BSSI RTW_INFO("%s()-%d: IE too long (%d) for survey event\n", __FUNCTION__, __LINE__, len); return _FAIL; } +#ifdef CONFIG_CHECK_SPECIFIC_IE_CONTENT if (rtw_validate_value(_SUPPORTEDRATES_IE_, p+2, len) == _FALSE) { rtw_absorb_ssid_ifneed(padapter, bssid, pframe); RTW_DBG_DUMP("Invalidated Support Rate IE --", p, len+2); return _FAIL; } +#endif /* #ifdef CONFIG_CHECK_SPECIFIC_IE_CONTENT */ _rtw_memcpy(bssid->SupportedRates, (p + 2), len); i = len; } @@ -11394,11 +11794,13 @@ u8 collect_bss_info(_adapter *padapter, union recv_frame *precv_frame, WLAN_BSSI RTW_INFO("%s()-%d: IE too long (%d) for survey event\n", __FUNCTION__, __LINE__, len); return _FAIL; } +#ifdef CONFIG_CHECK_SPECIFIC_IE_CONTENT if (rtw_validate_value(_EXT_SUPPORTEDRATES_IE_, p+2, len) == _FALSE) { rtw_absorb_ssid_ifneed(padapter, bssid, pframe); RTW_DBG_DUMP("Invalidated EXT Support Rate IE --", p, len+2); return _FAIL; } +#endif /* #ifdef CONFIG_CHECK_SPECIFIC_IE_CONTENT */ _rtw_memcpy(bssid->SupportedRates + i, (p + 2), len); } @@ -11412,6 +11814,7 @@ u8 collect_bss_info(_adapter *padapter, union recv_frame *precv_frame, WLAN_BSSI u32 attr_contentlen = 0; u8 listen_ch[5] = { 0x00 }; + attr_contentlen = sizeof(listen_ch); rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_LISTEN_CH, listen_ch, &attr_contentlen); bssid->Configuration.DSConfig = listen_ch[4]; } else { @@ -11526,6 +11929,9 @@ u8 collect_bss_info(_adapter *padapter, union recv_frame *precv_frame, WLAN_BSSI } + /* QBSS */ + parse_qbss(padapter, bssid->IEs, bssid->IELength, bssid); + #if defined(DBG_RX_SIGNAL_DISPLAY_SSID_MONITORED) & 1 if (strcmp(bssid->Ssid.Ssid, DBG_RX_SIGNAL_DISPLAY_SSID_MONITORED) == 0) { RTW_INFO("Receiving %s("MAC_FMT", DSConfig:%u) from ch%u with ss:%3u, sq:%3u, RawRSSI:%3ld\n" @@ -11543,14 +11949,22 @@ u8 collect_bss_info(_adapter *padapter, union recv_frame *precv_frame, WLAN_BSSI #ifdef CONFIG_RTW_80211K p = rtw_get_ie(bssid->IEs + ie_offset, _EID_RRM_EN_CAP_IE_, &len, bssid->IELength - ie_offset); if (p) - _rtw_memcpy(bssid->PhyInfo.rm_en_cap, (p + 2), *(p + 1)); + _rtw_memcpy(bssid->PhyInfo.rm_en_cap, (p + 2), MIN(*(p + 1), + sizeof(bssid->PhyInfo.rm_en_cap))); /* save freerun counter */ bssid->PhyInfo.free_cnt = precv_frame->u.hdr.attrib.free_cnt; +#endif +#ifdef CONFIG_LAYER2_ROAMING + pbuf = (u32 *)((u8 *)pframe + sizeof(struct rtw_ieee80211_hdr_3addr)); + bssid->tsf = le32_to_cpu(*(pbuf + 1)); + bssid->tsf = bssid->tsf << 32; + bssid->tsf |= le32_to_cpu(*pbuf); #endif return _SUCCESS; } +#ifdef CONFIG_AP_MODE void start_create_ibss(_adapter *padapter) { unsigned short caps; @@ -11615,6 +12029,7 @@ void start_create_ibss(_adapter *padapter) update_bmc_sta(padapter); } +#endif /* CONFIG_AP_MODE */ void start_clnt_join(_adapter *padapter) { @@ -11698,9 +12113,16 @@ void start_clnt_join(_adapter *padapter) /* and enable a timer */ beacon_timeout = decide_wait_for_beacon_timeout(pmlmeinfo->bcn_interval); set_link_timer(pmlmeext, beacon_timeout); - _set_timer(&padapter->mlmepriv.assoc_timer, - (REAUTH_TO * REAUTH_LIMIT) + (REASSOC_TO * REASSOC_LIMIT) + beacon_timeout); - +#ifdef CONFIG_RTW_80211R + if (rtw_ft_roam(padapter)) + _set_timer(&padapter->mlmepriv.assoc_timer, + (REAUTH_FT_TO * REAUTH_LIMIT) + + (REASSOC_FT_TO * REASSOC_LIMIT) + beacon_timeout); + else +#endif + _set_timer(&padapter->mlmepriv.assoc_timer, + (REAUTH_TO * REAUTH_LIMIT) + + (REASSOC_TO * REASSOC_LIMIT) + beacon_timeout); #ifdef CONFIG_RTW_80211R if (rtw_ft_roam(padapter)) { rtw_ft_start_clnt_join(padapter); @@ -11767,9 +12189,13 @@ void start_clnt_auth(_adapter *padapter) no_external_auth: #endif /* CONFIG_IOCTL_CFG80211 */ + recv_ack(padapter, true); issue_auth(padapter, NULL, 0); - set_link_timer(pmlmeext, REAUTH_TO); + if (rtw_ft_roam(padapter)) + set_link_timer(pmlmeext, REAUTH_FT_TO); + else + set_link_timer(pmlmeext, REAUTH_TO); } @@ -11778,32 +12204,56 @@ void start_clnt_assoc(_adapter *padapter) { struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); +#ifdef CONFIG_LAYER2_ROAMING + struct mlme_priv *pmlmepriv = &padapter->mlmepriv; +#endif _cancel_timer_ex(&pmlmeext->link_timer); pmlmeinfo->state &= (~(WIFI_FW_AUTH_NULL | WIFI_FW_AUTH_STATE)); pmlmeinfo->state |= (WIFI_FW_AUTH_SUCCESS | WIFI_FW_ASSOC_STATE); + recv_ack(padapter, true); #ifdef CONFIG_RTW_80211R - if (rtw_ft_roam(padapter)) + if (rtw_ft_roam(padapter) + #ifdef CONFIG_RTW_WNM + || rtw_wnm_btm_reassoc_req(padapter) + #endif + #ifdef CONFIG_LAYER2_ROAMING + || pmlmepriv->roam_network + #endif + ) issue_reassocreq(padapter); else #endif issue_assocreq(padapter); - set_link_timer(pmlmeext, REASSOC_TO); +#ifdef CONFIG_RTW_80211R + if (rtw_ft_roam(padapter)) + set_link_timer(pmlmeext, REASSOC_FT_TO); + else +#endif + set_link_timer(pmlmeext, REASSOC_TO); } unsigned int receive_disconnect(_adapter *padapter, unsigned char *MacAddr, unsigned short reason, u8 locally_generated) { struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); +#ifdef CONFIG_LAYER2_ROAMING + struct mlme_priv *pmlmepriv = &padapter->mlmepriv; +#endif if (!(_rtw_memcmp(MacAddr, get_my_bssid(&pmlmeinfo->network), ETH_ALEN))) return _SUCCESS; RTW_INFO("%s\n", __FUNCTION__); +#ifdef CONFIG_LAYER2_ROAMING + if (pmlmepriv->roam_network) + pmlmepriv->roam_buf_pkt = 1; +#endif + #ifdef CONFIG_RTW_REPEATER_SON rtw_rson_do_disconnect(padapter); #endif @@ -11816,9 +12266,17 @@ unsigned int receive_disconnect(_adapter *padapter, unsigned char *MacAddr, unsi pmlmeinfo->state = WIFI_FW_NULL_STATE; } else RTW_INFO(FUNC_ADPT_FMT" - End to Disconnect\n", FUNC_ADPT_ARG(padapter)); + + rtw_clr_dfs_beacon_hint(padapter); #ifdef CONFIG_RTW_80211R rtw_ft_roam_status_reset(padapter); #endif +#ifdef CONFIG_LAYER2_ROAMING + pmlmepriv->last_roaming = rtw_get_current_time(); + pmlmepriv->roam_act_cnt = pmlmepriv->roam_scan_int; + pmlmepriv->roam_rssi_base = 0; + pmlmepriv->roam_try_cnt = 0; +#endif #ifdef CONFIG_RTW_WNM rtw_wnm_reset_btm_state(padapter); #endif @@ -11827,257 +12285,24 @@ unsigned int receive_disconnect(_adapter *padapter, unsigned char *MacAddr, unsi return _SUCCESS; } -#ifdef CONFIG_80211D -static void process_80211d(PADAPTER padapter, WLAN_BSSID_EX *bssid) +static void rtw_hidden_ssid_bss_count(_adapter *adapter, WLAN_BSSID_EX *bss) { - struct rf_ctl_t *rfctl = adapter_to_rfctl(padapter); - struct registry_priv *pregistrypriv; - struct mlme_ext_priv *pmlmeext; - RT_CHANNEL_INFO *chplan_new; - u8 channel; - u8 i; + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + RT_CHANNEL_INFO *chset = rfctl->channel_set; + int chset_idx; + if (bss->InfrastructureMode != Ndis802_11Infrastructure) + return; - pregistrypriv = &padapter->registrypriv; - pmlmeext = &padapter->mlmeextpriv; + if (!hidden_ssid_ap(bss)) + return; - /* Adjust channel plan by AP Country IE */ - if (pregistrypriv->enable80211d - && (!pmlmeext->update_channel_plan_by_ap_done)) { - u8 *ie, *p; - u32 len; - RT_CHANNEL_PLAN chplan_ap; - RT_CHANNEL_INFO *chplan_sta = NULL; - u8 country[4]; - u8 fcn; /* first channel number */ - u8 noc; /* number of channel */ - u8 j, k; - - ie = rtw_get_ie(bssid->IEs + _FIXED_IE_LENGTH_, _COUNTRY_IE_, &len, bssid->IELength - _FIXED_IE_LENGTH_); - if (!ie) - return; - if (len < 6) - return; - - ie += 2; - p = ie; - ie += len; - - _rtw_memset(country, 0, 4); - _rtw_memcpy(country, p, 3); - p += 3; - RTW_INFO("%s: 802.11d country=%s\n", __FUNCTION__, country); - - i = 0; - while ((ie - p) >= 3) { - fcn = *(p++); - noc = *(p++); - p++; - - for (j = 0; j < noc; j++) { - if (fcn <= 14) - channel = fcn + j; /* 2.4 GHz */ - else - channel = fcn + j * 4; /* 5 GHz */ - - chplan_ap.Channel[i++] = channel; - } - } - chplan_ap.Len = i; - -#ifdef CONFIG_RTW_DEBUG - i = 0; - RTW_INFO("%s: AP[%s] channel plan {", __FUNCTION__, bssid->Ssid.Ssid); - while ((i < chplan_ap.Len) && (chplan_ap.Channel[i] != 0)) { - _RTW_INFO("%02d,", chplan_ap.Channel[i]); - i++; - } - _RTW_INFO("}\n"); -#endif - - chplan_sta = rtw_malloc(sizeof(RT_CHANNEL_INFO) * MAX_CHANNEL_NUM); - if (!chplan_sta) - goto done_update_chplan_from_ap; - - _rtw_memcpy(chplan_sta, rfctl->channel_set, sizeof(RT_CHANNEL_INFO) * MAX_CHANNEL_NUM); -#ifdef CONFIG_RTW_DEBUG - i = 0; - RTW_INFO("%s: STA channel plan {", __FUNCTION__); - while ((i < MAX_CHANNEL_NUM) && (chplan_sta[i].ChannelNum != 0)) { - _RTW_INFO("%02d(%c),", chplan_sta[i].ChannelNum, chplan_sta[i].ScanType == SCAN_PASSIVE ? 'p' : 'a'); - i++; - } - _RTW_INFO("}\n"); -#endif - - _rtw_memset(rfctl->channel_set, 0, sizeof(rfctl->channel_set)); - chplan_new = rfctl->channel_set; - - i = j = k = 0; - if (pregistrypriv->wireless_mode & WIRELESS_11G) { - do { - if ((i == MAX_CHANNEL_NUM) - || (chplan_sta[i].ChannelNum == 0) - || (chplan_sta[i].ChannelNum > 14)) - break; - - if ((j == chplan_ap.Len) || (chplan_ap.Channel[j] > 14)) - break; - - if (chplan_sta[i].ChannelNum == chplan_ap.Channel[j]) { - chplan_new[k].ChannelNum = chplan_ap.Channel[j]; - chplan_new[k].ScanType = SCAN_ACTIVE; - i++; - j++; - k++; - } else if (chplan_sta[i].ChannelNum < chplan_ap.Channel[j]) { - chplan_new[k].ChannelNum = chplan_sta[i].ChannelNum; -#if 0 - chplan_new[k].ScanType = chplan_sta[i].ScanType; -#else - chplan_new[k].ScanType = SCAN_PASSIVE; -#endif - i++; - k++; - } else if (chplan_sta[i].ChannelNum > chplan_ap.Channel[j]) { - chplan_new[k].ChannelNum = chplan_ap.Channel[j]; - chplan_new[k].ScanType = SCAN_ACTIVE; - j++; - k++; - } - } while (1); - - /* change AP not support channel to Passive scan */ - while ((i < MAX_CHANNEL_NUM) - && (chplan_sta[i].ChannelNum != 0) - && (chplan_sta[i].ChannelNum <= 14)) { - chplan_new[k].ChannelNum = chplan_sta[i].ChannelNum; -#if 0 - chplan_new[k].ScanType = chplan_sta[i].ScanType; -#else - chplan_new[k].ScanType = SCAN_PASSIVE; -#endif - i++; - k++; - } - - /* add channel AP supported */ - while ((j < chplan_ap.Len) && (chplan_ap.Channel[j] <= 14)) { - chplan_new[k].ChannelNum = chplan_ap.Channel[j]; - chplan_new[k].ScanType = SCAN_ACTIVE; - j++; - k++; - } - } else { - /* keep original STA 2.4G channel plan */ - while ((i < MAX_CHANNEL_NUM) - && (chplan_sta[i].ChannelNum != 0) - && (chplan_sta[i].ChannelNum <= 14)) { - chplan_new[k].ChannelNum = chplan_sta[i].ChannelNum; - chplan_new[k].ScanType = chplan_sta[i].ScanType; - i++; - k++; - } - - /* skip AP 2.4G channel plan */ - while ((j < chplan_ap.Len) && (chplan_ap.Channel[j] <= 14)) - j++; - } - - if (pregistrypriv->wireless_mode & WIRELESS_11A) { - do { - if ((i >= MAX_CHANNEL_NUM) - || (chplan_sta[i].ChannelNum == 0)) - break; - - if ((j == chplan_ap.Len) || (chplan_ap.Channel[j] == 0)) - break; - - if (chplan_sta[i].ChannelNum == chplan_ap.Channel[j]) { - chplan_new[k].ChannelNum = chplan_ap.Channel[j]; - chplan_new[k].ScanType = SCAN_ACTIVE; - i++; - j++; - k++; - } else if (chplan_sta[i].ChannelNum < chplan_ap.Channel[j]) { - chplan_new[k].ChannelNum = chplan_sta[i].ChannelNum; -#if 0 - chplan_new[k].ScanType = chplan_sta[i].ScanType; -#else - chplan_new[k].ScanType = SCAN_PASSIVE; -#endif - i++; - k++; - } else if (chplan_sta[i].ChannelNum > chplan_ap.Channel[j]) { - chplan_new[k].ChannelNum = chplan_ap.Channel[j]; - chplan_new[k].ScanType = SCAN_ACTIVE; - j++; - k++; - } - } while (1); - - /* change AP not support channel to Passive scan */ - while ((i < MAX_CHANNEL_NUM) && (chplan_sta[i].ChannelNum != 0)) { - chplan_new[k].ChannelNum = chplan_sta[i].ChannelNum; -#if 0 - chplan_new[k].ScanType = chplan_sta[i].ScanType; -#else - chplan_new[k].ScanType = SCAN_PASSIVE; -#endif - i++; - k++; - } - - /* add channel AP supported */ - while ((j < chplan_ap.Len) && (chplan_ap.Channel[j] != 0)) { - chplan_new[k].ChannelNum = chplan_ap.Channel[j]; - chplan_new[k].ScanType = SCAN_ACTIVE; - j++; - k++; - } - } else { - /* keep original STA 5G channel plan */ - while ((i < MAX_CHANNEL_NUM) && (chplan_sta[i].ChannelNum != 0)) { - chplan_new[k].ChannelNum = chplan_sta[i].ChannelNum; - chplan_new[k].ScanType = chplan_sta[i].ScanType; - i++; - k++; - } - } - - pmlmeext->update_channel_plan_by_ap_done = 1; - -#ifdef CONFIG_RTW_DEBUG - k = 0; - RTW_INFO("%s: new STA channel plan {", __FUNCTION__); - while ((k < MAX_CHANNEL_NUM) && (chplan_new[k].ChannelNum != 0)) { - _RTW_INFO("%02d(%c),", chplan_new[k].ChannelNum, chplan_new[k].ScanType == SCAN_PASSIVE ? 'p' : 'c'); - k++; - } - _RTW_INFO("}\n"); -#endif - -#if 0 - /* recover the right channel index */ - channel = chplan_sta[pmlmeext->sitesurvey_res.channel_idx].ChannelNum; - k = 0; - while ((k < MAX_CHANNEL_NUM) && (chplan_new[k].ChannelNum != 0)) { - if (chplan_new[k].ChannelNum == channel) { - RTW_INFO("%s: change mlme_ext sitesurvey channel index from %d to %d\n", - __FUNCTION__, pmlmeext->sitesurvey_res.channel_idx, k); - pmlmeext->sitesurvey_res.channel_idx = k; - break; - } - k++; - } -#endif - -done_update_chplan_from_ap: - if (chplan_sta) - rtw_mfree(chplan_sta, sizeof(RT_CHANNEL_INFO) * MAX_CHANNEL_NUM); - } + chset_idx = rtw_chset_search_ch(chset, bss->Configuration.DSConfig); + if (chset_idx < 0) + return; + + chset[chset_idx].hidden_bss_cnt++; } -#endif /**************************************************************************** @@ -12096,15 +12321,12 @@ void report_survey_event(_adapter *padapter, union recv_frame *precv_frame) struct cmd_priv *pcmdpriv; /* u8 *pframe = precv_frame->u.hdr.rx_data; */ /* uint len = precv_frame->u.hdr.len; */ - RT_CHANNEL_INFO *chset; - int ch_set_idx = -1; if (!padapter) return; pmlmeext = &padapter->mlmeextpriv; pcmdpriv = &padapter->cmdpriv; - chset = adapter_to_chset(padapter); pcmd_obj = (struct cmd_obj *)rtw_zmalloc(sizeof(struct cmd_obj)); if (pcmd_obj == NULL) @@ -12139,25 +12361,7 @@ void report_survey_event(_adapter *padapter, union recv_frame *precv_frame) return; } -#ifdef CONFIG_80211D - process_80211d(padapter, &psurvey_evt->bss); -#endif - - ch_set_idx = rtw_chset_search_ch(chset, psurvey_evt->bss.Configuration.DSConfig); - if (ch_set_idx >= 0) { - if (psurvey_evt->bss.InfrastructureMode == Ndis802_11Infrastructure) { - if (chset[ch_set_idx].ScanType == SCAN_PASSIVE - && !rtw_is_dfs_ch(psurvey_evt->bss.Configuration.DSConfig) - ) { - RTW_INFO("%s: change ch:%d to active\n", __func__, psurvey_evt->bss.Configuration.DSConfig); - chset[ch_set_idx].ScanType = SCAN_ACTIVE; - } - #if CONFIG_IEEE80211_BAND_5GHZ && CONFIG_DFS - if (hidden_ssid_ap(&psurvey_evt->bss)) - chset[ch_set_idx].hidden_bss_cnt++; - #endif - } - } + rtw_hidden_ssid_bss_count(padapter, &psurvey_evt->bss); rtw_enqueue_cmd(pcmdpriv, pcmd_obj); @@ -12207,6 +12411,7 @@ void report_surveydone_event(_adapter *padapter, bool acs) psurveydone_evt = (struct surveydone_event *)(pevtcmd + sizeof(struct rtw_evt_header)); psurveydone_evt->bss_cnt = pmlmeext->sitesurvey_res.bss_cnt; + psurveydone_evt->activate_ch_cnt = pmlmeext->sitesurvey_res.activate_ch_cnt; psurveydone_evt->acs = acs; RTW_INFO("survey done event(%x) band:%d for "ADPT_FMT"\n", psurveydone_evt->bss_cnt, padapter->setband, ADPT_ARG(padapter)); @@ -12609,6 +12814,58 @@ void update_sta_info(_adapter *padapter, struct sta_info *psta) } +#ifdef CONFIG_80211D +static void rtw_joinbss_update_regulatory(_adapter *adapter, const WLAN_BSSID_EX *network) +{ + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + + if (rfctl->regd_src == REGD_SRC_RTK_PRIV + && !rtw_rfctl_is_disable_sw_channel_plan(rfctl_to_dvobj(rfctl)) + ) { + struct mlme_priv *mlme = &adapter->mlmepriv; + const u8 *country_ie = NULL; + sint country_ie_len = 0; + + if (network) { + if (rtw_iface_accept_country_ie(adapter)) { + country_ie = rtw_get_ie(BSS_EX_TLV_IES(network) + , WLAN_EID_COUNTRY, &country_ie_len, BSS_EX_TLV_IES_LEN(network)); + if (country_ie) { + if (country_ie_len < 6) { + country_ie = NULL; + country_ie_len = 0; + } else + country_ie_len += 2; + } + } + } + + if (country_ie) { + rtw_buf_update(&mlme->recv_country_ie, &mlme->recv_country_ie_len, country_ie, country_ie_len); + if (rtw_apply_recv_country_ie_cmd(adapter, RTW_CMDF_DIRECTLY + , network->Configuration.DSConfig > 14 ? BAND_ON_5G : BAND_ON_2_4G + , network->Configuration.DSConfig, country_ie) != _SUCCESS + ) + RTW_WARN(FUNC_ADPT_FMT" rtw_apply_recv_country_ie_cmd() fail\n", FUNC_ADPT_ARG(adapter)); + } else + rtw_buf_free(&mlme->recv_country_ie, &mlme->recv_country_ie_len); + } +} + +static void rtw_leavebss_update_regulatory(_adapter *adapter) +{ + struct dvobj_priv *dvobj = adapter_to_dvobj(adapter); + struct rf_ctl_t *rfctl = dvobj_to_rfctl(dvobj); + + if (rfctl->regd_src == REGD_SRC_RTK_PRIV + && !rtw_rfctl_is_disable_sw_channel_plan(dvobj) + ) { + if (rtw_apply_recv_country_ie_cmd(adapter, RTW_CMDF_DIRECTLY, 0, 0, NULL) != _SUCCESS) + RTW_WARN(FUNC_ADPT_FMT" rtw_apply_recv_country_ie_cmd() fail\n", FUNC_ADPT_ARG(adapter)); + } +} +#endif /* CONFIG_80211D */ + static void rtw_mlmeext_disconnect(_adapter *padapter) { struct mlme_priv *pmlmepriv = &padapter->mlmepriv; @@ -12681,18 +12938,26 @@ static void rtw_mlmeext_disconnect(_adapter *padapter) rtw_hal_set_hwreg(padapter, HW_VAR_STOP_FCS_MODE, NULL); #endif - if (!(MLME_IS_STA(padapter) && MLME_IS_OPCH_SW(padapter))) { - /* DFS and channel status no need to check here for STA under OPCH_SW */ +#ifdef CONFIG_80211D + if (self_action == MLME_STA_DISCONNECTED) + rtw_leavebss_update_regulatory(padapter); +#endif + + #ifdef CONFIG_DFS_MASTER + if (!CHK_MLME_STATE(padapter, WIFI_AP_STATE | WIFI_MESH_STATE | WIFI_OP_CH_SWITCHING)) { + /* radar detect status no need to check here for AP/MESH or iface under OPCH_SW */ + rtw_dfs_rd_en_decision(padapter, self_action, 0); + } + #endif + + if (!MLME_IS_OPCH_SW(padapter)) { + /* channel status no need to check here for iface under OPCH_SW */ u8 ch, bw, offset; - #ifdef CONFIG_DFS_MASTER - rtw_dfs_rd_en_decision(padapter, self_action, 0); - #endif - - if (rtw_mi_get_ch_setting_union_no_self(padapter, &ch, &bw, &offset) != 0) { + if (rtw_mi_get_ch_setting_union_no_self(padapter, &ch, &bw, &offset) != 0) set_channel_bwmode(padapter, ch, offset, bw); - rtw_mi_update_union_chan_inf(padapter, ch, offset, bw); - } + rtw_mi_update_union_chan_inf(padapter, ch, offset, bw); + rtw_rfctl_update_op_mode(adapter_to_rfctl(padapter), BIT(padapter->iface_id), 0); } flush_all_cam_entry(padapter); @@ -12725,6 +12990,8 @@ static void rtw_mlmeext_disconnect(_adapter *padapter) rtw_set_rts_bw(padapter); #endif/*CONFIG_RTS_FULL_BW*/ + pmlmeinfo->assoc_AP_vendor = HT_IOT_PEER_UNKNOWN; + rtw_phydm_update_ap_vendor_ie(padapter); } void mlmeext_joinbss_event_callback(_adapter *padapter, int join_res) @@ -12737,7 +13004,7 @@ void mlmeext_joinbss_event_callback(_adapter *padapter, int join_res) u8 join_type; struct mlme_priv *pmlmepriv = &padapter->mlmepriv; -#ifndef CONFIG_IOCTL_CFG80211 +#if (!defined(CONFIG_IOCTL_CFG80211)) || defined(CONFIG_LAYER2_ROAMING) struct security_priv *psecuritypriv = &padapter->securitypriv; #endif @@ -12752,7 +13019,7 @@ void mlmeext_joinbss_event_callback(_adapter *padapter, int join_res) rtw_hal_rcr_set_chk_bssid(padapter, MLME_STA_DISCONNECTED); rtw_btcoex_connect_notify(padapter, join_type); - + pmlmeinfo->assoc_AP_vendor = HT_IOT_PEER_UNKNOWN; goto exit_mlmeext_joinbss_event_callback; } @@ -12761,11 +13028,12 @@ void mlmeext_joinbss_event_callback(_adapter *padapter, int join_res) pmlmepriv->GetGatewayTryCnt = 0; #endif +#ifdef CONFIG_AP_MODE if ((pmlmeinfo->state & 0x03) == WIFI_FW_ADHOC_STATE) { /* update bc/mc sta_info */ update_bmc_sta(padapter); } - +#endif /* turn on dynamic functions */ /* Switch_DM_Func(padapter, DYNAMIC_ALL_FUNC_ENABLE, _TRUE); */ @@ -12810,10 +13078,6 @@ void mlmeext_joinbss_event_callback(_adapter *padapter, int join_res) rtw_hal_macid_wakeup(padapter, psta->cmn.mac_id); rtw_xmit_queue_clear(psta); - #ifdef CONFIG_SUPPORT_DYNAMIC_TXPWR - rtw_hal_dtp_macid_set(padapter, 1, - psta->cmn.mac_id, cur_network->MacAddress); - #endif } #ifndef CONFIG_IOCTL_CFG80211 @@ -12852,11 +13116,38 @@ void mlmeext_joinbss_event_callback(_adapter *padapter, int join_res) exit_mlmeext_joinbss_event_callback: + rtw_phydm_update_ap_vendor_ie(padapter); + rtw_join_done_chk_ch(padapter, join_res); #ifdef CONFIG_RTW_REPEATER_SON rtw_rson_join_done(padapter); #endif +#ifdef CONFIG_LAYER2_ROAMING + if ((psecuritypriv->dot11PrivacyAlgrthm == _NO_PRIVACY_) && + (pmlmepriv->roam_network)) { + struct xmit_frame *rframe; + struct xmit_priv *pxmitpriv = &padapter->xmitpriv; + _list *plist, *phead; + _irqL irqL; + _pkt *pkt; + + padapter->mlmepriv.roam_network = NULL; + padapter->mlmepriv.candidate_5G = NULL; + padapter->mlmepriv.roam_buf_pkt = 0; + _enter_critical_bh(&pxmitpriv->rpkt_queue.lock, &irqL); + phead = get_list_head(&pxmitpriv->rpkt_queue); + plist = get_next(phead); + while ((rtw_end_of_queue_search(phead, plist)) == _FALSE) { + rframe = LIST_CONTAINOR(plist, struct xmit_frame, list); + plist = get_next(plist); + rtw_list_delete(&rframe->list); + pkt = rframe->pkt; + rtw_xmit_posthandle(padapter, rframe, pkt); + } + _exit_critical_bh(&pxmitpriv->rpkt_queue.lock, &irqL); + } +#endif RTW_INFO("=>%s - End to Connection without 4-way\n", __FUNCTION__); } @@ -12873,6 +13164,7 @@ void mlmeext_sta_add_event_callback(_adapter *padapter, struct sta_info *psta) if (pmlmeinfo->state & WIFI_FW_ASSOC_SUCCESS) { /* adhoc master or sta_count>1 */ /* nothing to do */ } else { /* adhoc client */ + #ifdef CONFIG_AP_MODE /* update TSF Value */ /* update_TSF(pmlmeext, pframe, len); */ @@ -12884,6 +13176,7 @@ void mlmeext_sta_add_event_callback(_adapter *padapter, struct sta_info *psta) rtw_warn_on(1); pmlmeinfo->state |= WIFI_FW_ASSOC_SUCCESS; + #endif } join_type = 2; @@ -12967,6 +13260,7 @@ void rtw_delba_check(_adapter *padapter, struct sta_info *psta, u8 from_timer) } } + u8 chk_ap_is_alive(_adapter *padapter, struct sta_info *psta) { u8 ret = _FALSE; @@ -12974,13 +13268,13 @@ u8 chk_ap_is_alive(_adapter *padapter, struct sta_info *psta) struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); - RTW_INFO(FUNC_ADPT_FMT" rx:"STA_PKTS_FMT", beacon:%llu, probersp_to_self:%llu" + RTW_INFO(FUNC_ADPT_FMT" rx:"STA_PKTS_FMT", beacon:%llu" /*", probersp_bm:%llu, probersp_uo:%llu, probereq:%llu, BI:%u"*/ ", retry:%u\n" , FUNC_ADPT_ARG(padapter) , STA_RX_PKTS_DIFF_ARG(psta) , psta->sta_stats.rx_beacon_pkts - psta->sta_stats.last_rx_beacon_pkts - , psta->sta_stats.rx_probersp_pkts - psta->sta_stats.last_rx_probersp_pkts + //, psta->sta_stats.rx_probersp_pkts - psta->sta_stats.last_rx_probersp_pkts /*, psta->sta_stats.rx_probersp_bm_pkts - psta->sta_stats.last_rx_probersp_bm_pkts , psta->sta_stats.rx_probersp_uo_pkts - psta->sta_stats.last_rx_probersp_uo_pkts , psta->sta_stats.rx_probereq_pkts - psta->sta_stats.last_rx_probereq_pkts @@ -12988,10 +13282,12 @@ u8 chk_ap_is_alive(_adapter *padapter, struct sta_info *psta) , pmlmeext->retry ); +#if 0 RTW_INFO(FUNC_ADPT_FMT" tx_pkts:%llu, link_count:%u\n", FUNC_ADPT_ARG(padapter) , sta_tx_pkts(psta) , pmlmeinfo->link_count ); +#endif #endif if ((sta_rx_data_pkts(psta) == sta_last_rx_data_pkts(psta)) @@ -13072,7 +13368,7 @@ void linked_status_chk_tdls(_adapter *padapter) _rtw_memset(checkalive, 0x00, sizeof(checkalive)); _rtw_memset(teardown, 0x00, sizeof(teardown)); - if ((padapter->tdlsinfo.link_established == _TRUE)) { + if (padapter->tdlsinfo.link_established == _TRUE) { _enter_critical_bh(&pstapriv->sta_hash_lock, &irqL); for (i = 0; i < NUM_STA; i++) { phead = &(pstapriv->sta_hash[i]); @@ -13153,15 +13449,17 @@ void linked_status_chk(_adapter *padapter, u8 from_timer) struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); struct sta_priv *pstapriv = &padapter->stapriv; -#if defined(CONFIG_ARP_KEEP_ALIVE) || defined(CONFIG_LAYER2_ROAMING) struct mlme_priv *pmlmepriv = &padapter->mlmepriv; -#endif -#ifdef CONFIG_LAYER2_ROAMING - struct recv_priv *precvpriv = &padapter->recvpriv; + +#ifdef CONFIG_RTW_WDS + rtw_wds_gptr_expire(padapter); #endif if (padapter->registrypriv.mp_mode == _TRUE) return; + + if (check_fwstate(pmlmepriv, WIFI_CSA_UPDATE_BEACON)) + return; if (is_client_associated_to_ap(padapter)) { /* linked infrastructure client mode */ @@ -13170,23 +13468,6 @@ void linked_status_chk(_adapter *padapter, u8 from_timer) int rx_chk_limit; int link_count_limit; -#if defined(CONFIG_RTW_REPEATER_SON) - rtw_rson_scan_wk_cmd(padapter, RSON_SCAN_PROCESS); -#elif defined(CONFIG_LAYER2_ROAMING) - if (rtw_chk_roam_flags(padapter, RTW_ROAM_ACTIVE)) { - RTW_INFO("signal_strength_data.avg_val = %d\n", precvpriv->signal_strength_data.avg_val); - if ((precvpriv->signal_strength_data.avg_val < pmlmepriv->roam_rssi_threshold) - && (rtw_get_passing_time_ms(pmlmepriv->last_roaming) >= pmlmepriv->roam_scan_int*2000)) { -#ifdef CONFIG_RTW_80211K - rtw_roam_nb_discover(padapter, _FALSE); -#endif - pmlmepriv->need_to_roam = _TRUE; - rtw_drv_scan_by_self(padapter, RTW_AUTO_SCAN_REASON_ROAM); - pmlmepriv->last_roaming = rtw_get_current_time(); - } else - pmlmepriv->need_to_roam = _FALSE; - } -#endif #ifdef CONFIG_MCC_MODE /* * due to tx ps null date to ao, so ap doest not tx pkt to driver @@ -13240,6 +13521,7 @@ void linked_status_chk(_adapter *padapter, u8 from_timer) psta = rtw_get_stainfo(pstapriv, pmlmeinfo->network.MacAddress); if (psta != NULL) { bool is_p2p_enable = _FALSE; + _irqL irqL; #ifdef CONFIG_P2P is_p2p_enable = !rtw_p2p_chk_state(&padapter->wdinfo, P2P_STATE_NONE); #endif @@ -13248,8 +13530,14 @@ void linked_status_chk(_adapter *padapter, u8 from_timer) /*issue delba when ap does not tx data packet that is Broadcom ap */ rtw_delba_check(padapter, psta, from_timer); #endif - if (chk_ap_is_alive(padapter, psta) == _FALSE) + if (chk_ap_is_alive(padapter, psta) == _FALSE) { rx_chk = _FAIL; + if (pmlmepriv->cur_network_scanned) { + _enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL); + pmlmepriv->cur_network_scanned->network.Rssi = -99; + _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL); + } + } if (sta_last_tx_pkts(psta) == sta_tx_pkts(psta)) tx_chk = _FAIL; @@ -13399,6 +13687,147 @@ bypass_active_keep_alive: } +void roamed_status_chk(_adapter *padapter, u8 from_timer) +{ + struct mlme_priv *pmlmepriv = &padapter->mlmepriv; +#if defined(CONFIG_LAYER2_ROAMING) && defined(CONFIG_RTW_80211K) + struct wlan_network *ap = pmlmepriv->cur_network_scanned; + int wait_times = 10; /* unit 10ms */ + struct roam_nb_info *pnb = &(pmlmepriv->nb_info); + struct recv_priv *precvpriv = &padapter->recvpriv; + u8 roam_cur_rssi_th; + u8 roam_cur_rssi_diff, pulse_cur_rssi_diff; + u8 int_facotr = 1, skip_time_chk = 0, skip_rssi_chk = 0; + u8 reason = RTW_AUTO_SCAN_REASON_ROAM; + u32 wait_ms = 0, pass_ms = 0, remain_ms = 0; + int val = 0; +#endif + + if (padapter->registrypriv.mp_mode == _TRUE) + return; + + if (check_fwstate(pmlmepriv, WIFI_CSA_UPDATE_BEACON)) + return; + + if (!is_client_associated_to_ap(padapter)) + return; + + if(check_fwstate(pmlmepriv, WIFI_UNDER_WPS)) + return; + + if (check_fwstate(pmlmepriv, WIFI_UNDER_SURVEY)) + return; + + if (pmlmepriv->roam_act_cnt == pmlmepriv->roam_scan_int) { + if (ap->network.qbss_valid) { + RTW_INFO("ServingAP:* %s("MAC_FMT", ch%3u) rssi:%d dBm, load:%d%c, sta:%d\n", + ap->network.Ssid.Ssid, + MAC_ARG(ap->network.MacAddress), + ap->network.Configuration.DSConfig, + translate_percentage_to_dbm(ap->network.PhyInfo.SignalStrength), + ap->network.qbss_ch_util*100/255, '%', + ap->network.qbss_sta_cnt); + } else { + RTW_INFO("ServingAP:* %s("MAC_FMT", ch%3u) rssi:%d dBm, load:-%c, sta:-\n", + ap->network.Ssid.Ssid, + MAC_ARG(ap->network.MacAddress), + ap->network.Configuration.DSConfig, + translate_percentage_to_dbm(ap->network.PhyInfo.SignalStrength), '%'); + } + } + +#ifdef CONFIG_RTW_PREFER_5G + if (IS_2G_BSS(pmlmepriv->cur_network_scanned->network)) + skip_rssi_chk = 1; +#endif + +#ifdef CONFIG_LAYER2_ROAMING + if (!rtw_chk_roam_flags(padapter, RTW_ROAM_ACTIVE)) + return; + + roam_cur_rssi_th = roam_rssi_threshold(pmlmepriv); + roam_cur_rssi_diff = roam_rssi_diff_th(pmlmepriv); + +#ifdef CONFIG_RTW_PREFER_5G + if (pmlmepriv->roam_rssi_base != 0) { + if (pmlmepriv->roam_rssi_base >= precvpriv->signal_strength) + val = pmlmepriv->roam_rssi_base - precvpriv->signal_strength; + else + val = precvpriv->signal_strength - pmlmepriv->roam_rssi_base; + + if (pmlmepriv->roam_rssi_base > 30) + pulse_cur_rssi_diff = roam_cur_rssi_diff; + else + pulse_cur_rssi_diff = pmlmepriv->roam_idle_rssi_diff_th; + + //if (val >= pmlmepriv->roam_busy_rssi_diff_th) { + if (val >= pulse_cur_rssi_diff) { + /* RSSI pulse */ + RTW_INFO("RSSI pulse = %d (B%u)\n", + padapter->recvpriv.signal_strength, pmlmepriv->roam_rssi_base); + + skip_time_chk = 1; + skip_rssi_chk = 1; + + /* reset retry to aggresive */ + pmlmepriv->roam_rssi_base = 0; + pmlmepriv->roam_try_cnt = 0; + } + } +#endif + /* extend roam scan interval */ + if (pmlmepriv->roam_try_cnt > pmlmepriv->roam_scan_round3) { + wait_ms = pmlmepriv->roam_scan_int3 * 2000; + } else if (pmlmepriv->roam_try_cnt > pmlmepriv->roam_scan_round2) { + wait_ms = pmlmepriv->roam_scan_int2 * 2000; + } else if (pmlmepriv->roam_try_cnt > pmlmepriv->roam_scan_round1) { + wait_ms = pmlmepriv->roam_scan_int1 * 2000; + if (pmlmepriv->roam_rssi_base == 0) + pmlmepriv->roam_rssi_base = precvpriv->signal_strength; + } else { + wait_ms = pmlmepriv->roam_scan_int * 2000; + } + + pass_ms = rtw_get_passing_time_ms(pmlmepriv->last_roaming); + remain_ms = (wait_ms <= pass_ms) ? 0 : ((wait_ms - pass_ms)/2000); +#endif /* CONFIG_LAYER2_ROAMING */ + + /* linked infrastructure client mode */ + +#if defined(CONFIG_RTW_REPEATER_SON) + rtw_rson_scan_wk_cmd(padapter, RSON_SCAN_PROCESS); +#elif defined(CONFIG_LAYER2_ROAMING) + + RTW_INFO("signal_strength = %d (%s,D%u,T%u - B%u,r%u,t%u)\n", + padapter->recvpriv.signal_strength, + pmlmepriv->LinkDetectInfo.bBusyTraffic?"busy":"idle", roam_cur_rssi_diff, + roam_cur_rssi_th, pmlmepriv->roam_rssi_base, pmlmepriv->roam_try_cnt, + !pmlmepriv->need_to_roam ? 0 : skip_time_chk ? 0 : remain_ms); + + if (skip_rssi_chk || (padapter->recvpriv.signal_strength < roam_cur_rssi_th)) { + + pmlmepriv->need_to_roam = _TRUE; + + if (skip_time_chk || remain_ms == 0) { +#ifdef CONFIG_RTW_80211K + if (rtw_roam_nb_discover(padapter, _FALSE, 0)) + while (!pmlmepriv->nb_info.nb_rpt_valid && wait_times--) + mdelay(10); /* max wait 100ms for NB report ready */ +#endif + if (rtw_drv_scan_by_self(padapter, reason)) { + pmlmepriv->roam_try_cnt++; + pmlmepriv->last_roaming = rtw_get_current_time(); + } + } + } else { + pmlmepriv->need_to_roam = _FALSE; + pmlmepriv->roam_rssi_base = 0; + pmlmepriv->roam_try_cnt = 0; + } +#endif + +} + void survey_timer_hdl(void *ctx) { _adapter *padapter = (_adapter *)ctx; @@ -13554,6 +13983,9 @@ void link_timer_hdl(void *ctx) struct sta_info *psta = NULL; WLAN_BSSID_EX *pnetwork = (WLAN_BSSID_EX *)(&(pmlmeinfo->network)); #endif +#ifdef CONFIG_LAYER2_ROAMING + struct mlme_priv *pmlmepriv = &padapter->mlmepriv; +#endif if (rtw_sta_linking_test_force_fail()) RTW_INFO("rtw_sta_linking_test_force_fail\n"); @@ -13577,7 +14009,12 @@ void link_timer_hdl(void *ctx) #endif /* CONFIG_IOCTL_CFG80211 */ /* re-auth timer */ - if (++pmlmeinfo->reauth_count > REAUTH_LIMIT) { + if (++pmlmeinfo->reauth_count > REAUTH_LIMIT +#ifdef CONFIG_LAYER2_ROAMING + || (pmlmepriv->roam_network && pmlmepriv->roam_ack) +#endif + ) { + recv_ack(padapter, false); /* if (pmlmeinfo->auth_algo != dot11AuthAlgrthm_Auto) */ /* { */ pmlmeinfo->state = 0; @@ -13598,10 +14035,20 @@ void link_timer_hdl(void *ctx) RTW_INFO("link_timer_hdl: auth timeout and try again\n"); pmlmeinfo->auth_seq = 1; issue_auth(padapter, NULL, 0); - set_link_timer(pmlmeext, REAUTH_TO); +#ifdef CONFIG_RTW_80211R + if (rtw_ft_roam(padapter)) + set_link_timer(pmlmeext, REAUTH_FT_TO); + else +#endif + set_link_timer(pmlmeext, REAUTH_TO); } else if (pmlmeinfo->state & WIFI_FW_ASSOC_STATE) { /* re-assoc timer */ - if (++pmlmeinfo->reassoc_count > REASSOC_LIMIT) { + if (++pmlmeinfo->reassoc_count > REASSOC_LIMIT +#ifdef CONFIG_LAYER2_ROAMING + || (pmlmepriv->roam_network && pmlmepriv->roam_ack) +#endif + ) { + recv_ack(padapter, false); pmlmeinfo->state = WIFI_FW_NULL_STATE; #ifdef CONFIG_RTW_80211R if (rtw_ft_roam(padapter)) { @@ -13615,7 +14062,11 @@ void link_timer_hdl(void *ctx) } #ifdef CONFIG_RTW_80211R - if (rtw_ft_roam(padapter)) { + if (rtw_ft_roam(padapter) +#ifdef CONFIG_LAYER2_ROAMING + || pmlmepriv->roam_network +#endif + ) { RTW_INFO("link_timer_hdl: reassoc timeout and try again\n"); issue_reassocreq(padapter); } else @@ -13625,7 +14076,12 @@ void link_timer_hdl(void *ctx) issue_assocreq(padapter); } - set_link_timer(pmlmeext, REASSOC_TO); +#ifdef CONFIG_RTW_80211R + if (rtw_ft_roam(padapter)) + set_link_timer(pmlmeext, REASSOC_FT_TO); + else +#endif + set_link_timer(pmlmeext, REASSOC_TO); } exit: @@ -13736,428 +14192,6 @@ void sa_query_timer_hdl(void *ctx) #endif /* CONFIG_IEEE80211W */ -#ifdef CONFIG_RTW_80211R -void rtw_ft_update_bcn(_adapter *padapter, union recv_frame *precv_frame) -{ - struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; - struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); - struct mlme_priv *pmlmepriv = &padapter->mlmepriv; - u8 *pframe = precv_frame->u.hdr.rx_data; - uint len = precv_frame->u.hdr.len; - WLAN_BSSID_EX *pbss; - - if (rtw_ft_chk_status(padapter,RTW_FT_ASSOCIATED_STA) - && (pmlmepriv->ft_roam.ft_updated_bcn == _FALSE)) { - pbss = (WLAN_BSSID_EX*)rtw_malloc(sizeof(WLAN_BSSID_EX)); - if (pbss) { - if (collect_bss_info(padapter, precv_frame, pbss) == _SUCCESS) { - struct beacon_keys recv_beacon; - - update_network(&(pmlmepriv->cur_network.network), pbss, padapter, _TRUE); - - /* update bcn keys */ - if (rtw_get_bcn_keys(padapter, pframe, len, &recv_beacon) == _TRUE) { - RTW_INFO("%s: beacon keys ready\n", __func__); - _rtw_memcpy(&pmlmepriv->cur_beacon_keys, - &recv_beacon, sizeof(recv_beacon)); - if (is_hidden_ssid(recv_beacon.ssid, recv_beacon.ssid_len)) { - _rtw_memcpy(pmlmepriv->cur_beacon_keys.ssid, pmlmeinfo->network.Ssid.Ssid, IW_ESSID_MAX_SIZE); - pmlmepriv->cur_beacon_keys.ssid_len = pmlmeinfo->network.Ssid.SsidLength; - } - } else { - RTW_ERR("%s: get beacon keys failed\n", __func__); - _rtw_memset(&pmlmepriv->cur_beacon_keys, 0, sizeof(recv_beacon)); - } - #ifdef CONFIG_BCN_CNT_CONFIRM_HDL - pmlmepriv->new_beacon_cnts = 0; - #endif - } - rtw_mfree((u8*)pbss, sizeof(WLAN_BSSID_EX)); - } - - /* check the vendor of the assoc AP */ - pmlmeinfo->assoc_AP_vendor = - check_assoc_AP(pframe+sizeof(struct rtw_ieee80211_hdr_3addr), - (len - sizeof(struct rtw_ieee80211_hdr_3addr))); - - /* update TSF Value */ - update_TSF(pmlmeext, pframe, len); - pmlmeext->bcn_cnt = 0; - pmlmeext->last_bcn_cnt = 0; - pmlmepriv->ft_roam.ft_updated_bcn = _TRUE; - } -} - -void rtw_ft_start_clnt_join(_adapter *padapter) -{ - struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); - struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); - struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); - struct ft_roam_info *pft_roam = &(pmlmepriv->ft_roam); - - if (rtw_ft_otd_roam(padapter)) { - pmlmeinfo->state = WIFI_FW_AUTH_SUCCESS | WIFI_FW_STATION_STATE; - pft_roam->ft_event.ies = - (pft_roam->ft_action + sizeof(struct rtw_ieee80211_hdr_3addr) + 16); - pft_roam->ft_event.ies_len = - (pft_roam->ft_action_len - sizeof(struct rtw_ieee80211_hdr_3addr)); - - /*Not support RIC*/ - pft_roam->ft_event.ric_ies = NULL; - pft_roam->ft_event.ric_ies_len = 0; - rtw_ft_report_evt(padapter); - return; - } - - pmlmeinfo->state = WIFI_FW_AUTH_NULL | WIFI_FW_STATION_STATE; - start_clnt_auth(padapter); -} - -u8 rtw_ft_update_rsnie( - _adapter *padapter, u8 bwrite, - struct pkt_attrib *pattrib, u8 **pframe) -{ - struct ft_roam_info *pft_roam = &(padapter->mlmepriv.ft_roam); - u8 *pie; - u32 len; - - pie = rtw_get_ie(pft_roam->updated_ft_ies, EID_WPA2, &len, - pft_roam->updated_ft_ies_len); - - if (!bwrite) - return (pie)?_SUCCESS:_FAIL; - - if (pie) { - *pframe = rtw_set_ie(((u8 *)*pframe), EID_WPA2, len, - pie+2, &(pattrib->pktlen)); - } else - return _FAIL; - - return _SUCCESS; -} - -static u8 rtw_ft_update_mdie( - _adapter *padapter, struct pkt_attrib *pattrib, u8 **pframe) -{ - struct ft_roam_info *pft_roam = &(padapter->mlmepriv.ft_roam); - u8 *pie, mdie[3]; - u32 len = 3; - - if (rtw_ft_roam(padapter)) { - if ((pie = rtw_get_ie(pft_roam->updated_ft_ies, _MDIE_, - &len, pft_roam->updated_ft_ies_len))) { - pie = (pie + 2); /* ignore md-id & length */ - } else - return _FAIL; - } else { - *((u16 *)&mdie[0]) = pft_roam->mdid; - mdie[2] = pft_roam->ft_cap; - pie = &mdie[0]; - } - - *pframe = rtw_set_ie(((u8 *)*pframe), _MDIE_, len , pie, &(pattrib->pktlen)); - return _SUCCESS; -} - -static u8 rtw_ft_update_ftie( - _adapter *padapter, struct pkt_attrib *pattrib, u8 **pframe) -{ - struct ft_roam_info *pft_roam = &(padapter->mlmepriv.ft_roam); - u8 *pie; - u32 len; - - if ((pie = rtw_get_ie(pft_roam->updated_ft_ies, _FTIE_, &len, - pft_roam->updated_ft_ies_len)) != NULL) { - *pframe = rtw_set_ie(*pframe, _FTIE_, len , - (pie+2), &(pattrib->pktlen)); - } else - return _FAIL; - - return _SUCCESS; -} - -void rtw_ft_build_auth_req_ies(_adapter *padapter, - struct pkt_attrib *pattrib, u8 **pframe) -{ - u8 ftie_append = _TRUE; - - if (!pattrib || !(*pframe)) - return; - - if (!rtw_ft_roam(padapter)) - return; - - ftie_append = rtw_ft_update_rsnie(padapter, _TRUE, pattrib, pframe); - rtw_ft_update_mdie(padapter, pattrib, pframe); - if (ftie_append) - rtw_ft_update_ftie(padapter, pattrib, pframe); -} - -void rtw_ft_build_assoc_req_ies(_adapter *padapter, - u8 is_reassoc, struct pkt_attrib *pattrib, u8 **pframe) -{ - if (!pattrib || !(*pframe)) - return; - - if (rtw_ft_chk_flags(padapter, RTW_FT_PEER_EN)) - rtw_ft_update_mdie(padapter, pattrib, pframe); - - if ((!is_reassoc) || (!rtw_ft_roam(padapter))) - return; - - if (rtw_ft_update_rsnie(padapter, _FALSE, pattrib, pframe)) - rtw_ft_update_ftie(padapter, pattrib, pframe); -} - -u8 rtw_ft_update_auth_rsp_ies(_adapter *padapter, u8 *pframe, u32 len) -{ - u8 ret = _SUCCESS; - u8 target_ap_addr[ETH_ALEN] = {0}; - struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); - struct ft_roam_info *pft_roam = &(pmlmepriv->ft_roam); - - if (!rtw_ft_roam(padapter)) - return _FAIL; - - /*rtw_ft_report_reassoc_evt already, - * and waiting for cfg80211_rtw_update_ft_ies */ - if (rtw_ft_authed_sta(padapter)) - return ret; - - if (!pframe || !len) - return _FAIL; - - rtw_buf_update(&pmlmepriv->auth_rsp, - &pmlmepriv->auth_rsp_len, pframe, len); - pft_roam->ft_event.ies = - (pmlmepriv->auth_rsp + sizeof(struct rtw_ieee80211_hdr_3addr) + 6); - pft_roam->ft_event.ies_len = - (pmlmepriv->auth_rsp_len - sizeof(struct rtw_ieee80211_hdr_3addr) - 6); - - /*Not support RIC*/ - pft_roam->ft_event.ric_ies = NULL; - pft_roam->ft_event.ric_ies_len = 0; - _rtw_memcpy(target_ap_addr, pmlmepriv->assoc_bssid, ETH_ALEN); - rtw_ft_report_reassoc_evt(padapter, target_ap_addr); - - return ret; -} - -static void rtw_ft_start_clnt_action(_adapter *padapter, u8 *pTargetAddr) -{ - struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; - - rtw_ft_set_status(padapter, RTW_FT_REQUESTING_STA); - rtw_ft_issue_action_req(padapter, pTargetAddr); - _set_timer(&pmlmeext->ft_link_timer, REASSOC_TO); -} - -void rtw_ft_start_roam(_adapter *padapter, u8 *pTargetAddr) -{ - struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; - - if (rtw_ft_otd_roam(padapter)) { - rtw_ft_start_clnt_action(padapter, pTargetAddr); - } else { - /*wait a little time to retrieve packets buffered in the current ap while scan*/ - _set_timer(&pmlmeext->ft_roam_timer, 30); - } -} - -void rtw_ft_issue_action_req(_adapter *padapter, u8 *pTargetAddr) -{ - struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); - struct xmit_priv *pxmitpriv = &(padapter->xmitpriv); - struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); - struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); - struct xmit_frame *pmgntframe; - struct rtw_ieee80211_hdr *pwlanhdr; - struct pkt_attrib *pattrib; - u8 *pframe; - u8 category = RTW_WLAN_CATEGORY_FT; - u8 action = RTW_WLAN_ACTION_FT_REQ; - - pmgntframe = alloc_mgtxmitframe(pxmitpriv); - if (pmgntframe == NULL) - return; - - pattrib = &pmgntframe->attrib; - update_mgntframe_attrib(padapter, pattrib); - _rtw_memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET); - - pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET; - pwlanhdr = (struct rtw_ieee80211_hdr *)pframe; - pwlanhdr->frame_ctl = 0; - - _rtw_memcpy(pwlanhdr->addr1, get_my_bssid(&pmlmeinfo->network), ETH_ALEN); - _rtw_memcpy(pwlanhdr->addr2, adapter_mac_addr(padapter), ETH_ALEN); - _rtw_memcpy(pwlanhdr->addr3, get_my_bssid(&pmlmeinfo->network), ETH_ALEN); - - SetSeqNum(pwlanhdr, pmlmeext->mgnt_seq); - pmlmeext->mgnt_seq++; - set_frame_sub_type(pframe, WIFI_ACTION); - - pframe += sizeof(struct rtw_ieee80211_hdr_3addr); - pattrib->pktlen = sizeof(struct rtw_ieee80211_hdr_3addr); - - pframe = rtw_set_fixed_ie(pframe, 1, &(category), &(pattrib->pktlen)); - pframe = rtw_set_fixed_ie(pframe, 1, &(action), &(pattrib->pktlen)); - - _rtw_memcpy(pframe, adapter_mac_addr(padapter), ETH_ALEN); - pframe += ETH_ALEN; - pattrib->pktlen += ETH_ALEN; - - _rtw_memcpy(pframe, pTargetAddr, ETH_ALEN); - pframe += ETH_ALEN; - pattrib->pktlen += ETH_ALEN; - - rtw_ft_update_mdie(padapter, pattrib, &pframe); - if (rtw_ft_update_rsnie(padapter, _TRUE, pattrib, &pframe)) - rtw_ft_update_ftie(padapter, pattrib, &pframe); - - pattrib->last_txcmdsz = pattrib->pktlen; - dump_mgntframe(padapter, pmgntframe); -} - -void rtw_ft_report_evt(_adapter *padapter) -{ - struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); - struct ft_roam_info *pft_roam = &(pmlmepriv->ft_roam); - struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); - struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); - WLAN_BSSID_EX *pnetwork = (WLAN_BSSID_EX *)&(pmlmeinfo->network); - struct cfg80211_ft_event_params ft_evt_parms; - _irqL irqL; - - _rtw_memset(&ft_evt_parms, 0, sizeof(ft_evt_parms)); - rtw_ft_update_stainfo(padapter, pnetwork); - - if (!pnetwork) - goto err_2; - - ft_evt_parms.ies_len = pft_roam->ft_event.ies_len; - ft_evt_parms.ies = rtw_zmalloc(ft_evt_parms.ies_len); - if (ft_evt_parms.ies) - _rtw_memcpy((void *)ft_evt_parms.ies, pft_roam->ft_event.ies, ft_evt_parms.ies_len); - else - goto err_2; - - ft_evt_parms.target_ap = rtw_zmalloc(ETH_ALEN); - if (ft_evt_parms.target_ap) - _rtw_memcpy((void *)ft_evt_parms.target_ap, pnetwork->MacAddress, ETH_ALEN); - else - goto err_1; - - ft_evt_parms.ric_ies = pft_roam->ft_event.ric_ies; - ft_evt_parms.ric_ies_len = pft_roam->ft_event.ric_ies_len; - - - /* It's a KERNEL issue between v4.11 ~ v4.16, - * <= v4.10, NLMSG_DEFAULT_SIZE is used for nlmsg_new(). - * v4.11 ~ v4.16, only used "100 + >ric_ies_len" for nlmsg_new() - * even then DRIVER don't support RIC. - * >= v4.17, issue should correct as "100 + ies_len + ric_ies_len". - */ - #if ((LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)) && \ - (LINUX_VERSION_CODE < KERNEL_VERSION(4, 17, 0))) - ft_evt_parms.ric_ies_len = (ft_evt_parms.ies_len <= 100 )? - (0):(ft_evt_parms.ies_len - 100); - #endif - - rtw_ft_lock_set_status(padapter, RTW_FT_AUTHENTICATED_STA, &irqL); - rtw_cfg80211_ft_event(padapter, &ft_evt_parms); - RTW_INFO("FT: rtw_ft_report_evt\n"); - rtw_mfree((u8 *)pft_roam->ft_event.target_ap, ETH_ALEN); -err_1: - rtw_mfree((u8 *)ft_evt_parms.ies, ft_evt_parms.ies_len); -err_2: - return; -} - -void rtw_ft_report_reassoc_evt(_adapter *padapter, u8 *pMacAddr) -{ - struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); - struct cmd_priv *pcmdpriv = &(padapter->cmdpriv); - struct cmd_obj *pcmd_obj = NULL; - struct stassoc_event *passoc_sta_evt = NULL; - struct rtw_evt_header *evt_hdr = NULL; - u8 *pevtcmd = NULL; - u32 cmdsz = 0; - - pcmd_obj = (struct cmd_obj *)rtw_zmalloc(sizeof(struct cmd_obj)); - if (pcmd_obj == NULL) - return; - - cmdsz = (sizeof(struct stassoc_event) + sizeof(struct rtw_evt_header)); - pevtcmd = (u8 *)rtw_zmalloc(cmdsz); - if (pevtcmd == NULL) { - rtw_mfree((u8 *)pcmd_obj, sizeof(struct cmd_obj)); - return; - } - - _rtw_init_listhead(&pcmd_obj->list); - pcmd_obj->cmdcode = CMD_SET_MLME_EVT; - pcmd_obj->cmdsz = cmdsz; - pcmd_obj->parmbuf = pevtcmd; - pcmd_obj->rsp = NULL; - pcmd_obj->rspsz = 0; - - evt_hdr = (struct rtw_evt_header *)(pevtcmd); - evt_hdr->len = sizeof(struct stassoc_event); - evt_hdr->id = EVT_FT_REASSOC; - evt_hdr->seq = ATOMIC_INC_RETURN(&pmlmeext->event_seq); - - passoc_sta_evt = (struct stassoc_event *)(pevtcmd + sizeof(struct rtw_evt_header)); - _rtw_memcpy((unsigned char *)(&(passoc_sta_evt->macaddr)), pMacAddr, ETH_ALEN); - rtw_enqueue_cmd(pcmdpriv, pcmd_obj); -} - -void rtw_ft_link_timer_hdl(void *ctx) -{ - _adapter *padapter = (_adapter *)ctx; - struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); - struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); - struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); - struct ft_roam_info *pft_roam = &(pmlmepriv->ft_roam); - - if (rtw_ft_chk_status(padapter, RTW_FT_REQUESTING_STA)) { - if (pft_roam->ft_req_retry_cnt < RTW_FT_ACTION_REQ_LMT) { - pft_roam->ft_req_retry_cnt++; - rtw_ft_issue_action_req(padapter, (u8 *)pmlmepriv->roam_network->network.MacAddress); - _set_timer(&pmlmeext->ft_link_timer, REASSOC_TO); - } else { - pft_roam->ft_req_retry_cnt = 0; - if (pmlmeinfo->state & WIFI_FW_ASSOC_SUCCESS) - rtw_ft_set_status(padapter, RTW_FT_ASSOCIATED_STA); - else - rtw_ft_reset_status(padapter); - } - } -} - -void rtw_ft_roam_timer_hdl(void *ctx) -{ - _adapter *padapter = (_adapter *)ctx; - struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); - - receive_disconnect(padapter, pmlmepriv->cur_network.network.MacAddress - , WLAN_REASON_ACTIVE_ROAM, _FALSE); -} - -void rtw_ft_roam_status_reset(_adapter *padapter) -{ - struct ft_roam_info *pft_roam = &(padapter->mlmepriv.ft_roam); - - if ((rtw_to_roam(padapter) > 0) && - (!rtw_ft_chk_status(padapter, RTW_FT_REQUESTED_STA))) { - rtw_ft_reset_status(padapter); - } - - padapter->mlmepriv.ft_roam.ft_updated_bcn = _FALSE; -} -#endif - - #ifdef CONFIG_AUTO_AP_MODE void rtw_auto_ap_rx_msg_dump(_adapter *padapter, union recv_frame *precv_frame, u8 *ehdr_pos) { @@ -14305,11 +14339,24 @@ u8 tx_control_hdl(_adapter *adapter) #ifdef CONFIG_AP_MODE u8 stop_ap_hdl(_adapter *adapter) { + u8 self_action = MLME_ACTION_UNKNOWN; + RTW_INFO(FUNC_ADPT_FMT"\n", FUNC_ADPT_ARG(adapter)); + if (MLME_IS_AP(adapter)) + self_action = MLME_AP_STOPPED; + else if (MLME_IS_MESH(adapter)) + self_action = MLME_MESH_STOPPED; + else + rtw_warn_on(1); + rtw_set_802_11_infrastructure_mode(adapter, Ndis802_11Infrastructure, RTW_CMDF_DIRECTLY); rtw_setopmode_cmd(adapter, Ndis802_11Infrastructure, RTW_CMDF_DIRECTLY); +#ifdef CONFIG_DFS_MASTER + rtw_dfs_rd_en_decision(adapter, self_action, 0); +#endif + return H2C_SUCCESS; } #endif @@ -14362,6 +14409,12 @@ u8 setopmode_hdl(_adapter *padapter, u8 *pbuf) } } +#ifdef CONFIG_FW_MULTI_PORT_SUPPORT + /* Enable beacon early interrupt IMR of AP mode after port switch done */ + if (MLME_IS_AP(padapter)) + rtw_hal_set_ap_bcn_imr_cmd(padapter, 1); +#endif + #ifdef CONFIG_BT_COEXIST if (psetop->mode == Ndis802_11APMode || psetop->mode == Ndis802_11_mesh @@ -14379,6 +14432,7 @@ u8 setopmode_hdl(_adapter *padapter, u8 *pbuf) u8 createbss_hdl(_adapter *padapter, u8 *pbuf) { +#ifdef CONFIG_AP_MODE struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); WLAN_BSSID_EX *pnetwork = (WLAN_BSSID_EX *)(&(pmlmeinfo->network)); @@ -14386,15 +14440,20 @@ u8 createbss_hdl(_adapter *padapter, u8 *pbuf) struct createbss_parm *parm = (struct createbss_parm *)pbuf; u8 ret = H2C_SUCCESS; /* u8 initialgain; */ + struct dvobj_priv *dvobj = adapter_to_dvobj(padapter); + struct rf_ctl_t *rfctl = dvobj_to_rfctl(dvobj); -#ifdef CONFIG_AP_MODE if ((parm->req_ch == 0 && pmlmeinfo->state == WIFI_FW_AP_STATE) || parm->req_ch != 0 ) { start_bss_network(padapter, parm); + if (rfctl->ap_csa_en) { + u8 enable = 0; + rfctl->ap_csa_en = AP_CSA_DISABLE; + rtw_hal_set_hwreg(padapter, HW_VAR_BCN_EARLY_C2H_RPT, &enable); + } goto exit; } -#endif /* below is for ad-hoc master */ if (parm->adhoc) { @@ -14438,6 +14497,24 @@ ibss_post_hdl: exit: return ret; +#else + return H2C_SUCCESS; +#endif /* CONFIG_AP_MODE */ +} + +u8 get_iqk_band(u8 ch) +{ + u8 band = 0; + + if (ch < 36) + band = 1; + else if (ch >= 36 && ch <= 64) + band = 2; + else if (ch >= 100 && ch <= 144) + band = 3; + else if (ch >= 149 && ch <= 165) + band = 4; + return band; } u8 join_cmd_hdl(_adapter *padapter, u8 *pbuf) @@ -14450,6 +14527,14 @@ u8 join_cmd_hdl(_adapter *padapter, u8 *pbuf) #ifdef CONFIG_ANTENNA_DIVERSITY struct joinbss_parm *pparm = (struct joinbss_parm *)pbuf; #endif /* CONFIG_ANTENNA_DIVERSITY */ +#ifdef CONFIG_LAYER2_ROAMING + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + struct wlan_network *rnetwork = pmlmepriv->roam_network; + struct beacon_keys bcn_keys; + u32 roam_ielen; + _irqL irqL; +#endif + u8 new_band; u32 i; /* u8 initialgain; */ /* u32 acparm; */ @@ -14611,11 +14696,19 @@ u8 join_cmd_hdl(_adapter *padapter, u8 *pbuf) rtw_btcoex_connect_notify(padapter, join_type); - doiqk = _TRUE; - rtw_hal_set_hwreg(padapter , HW_VAR_DO_IQK , &doiqk); - +#if 1 + new_band = get_iqk_band(u_ch); + RTW_INFO("iqk_band=%d, new =%d\n", pmlmeext->iqk_band, new_band); + if (pmlmeext->iqk_band != new_band) { + doiqk = _TRUE; + rtw_hal_set_hwreg(padapter , HW_VAR_DO_IQK , &doiqk); + pmlmeext->iqk_band = new_band; + } +#else + doiqk = _TRUE; + rtw_hal_set_hwreg(padapter , HW_VAR_DO_IQK , &doiqk); +#endif set_channel_bwmode(padapter, u_ch, u_offset, u_bw); - rtw_mi_update_union_chan_inf(padapter, u_ch, u_offset, u_bw); doiqk = _FALSE; rtw_hal_set_hwreg(padapter , HW_VAR_DO_IQK , &doiqk); @@ -14625,6 +14718,47 @@ u8 join_cmd_hdl(_adapter *padapter, u8 *pbuf) start_clnt_join(padapter); +#ifdef CONFIG_LAYER2_ROAMING + _enter_critical_bh(&pmlmepriv->clnt_auth_lock, &irqL); + if (rnetwork && (pmlmeinfo->state & (WIFI_FW_AUTH_NULL | WIFI_FW_AUTH_STATE)) + #ifdef CONFIG_RTW_80211R + && (!rtw_ft_roam(padapter)) + #endif + ) { + struct beacon_keys bcn_keys; + u32 roam_ielen; + + roam_ielen = rnetwork->network.IELength; + update_network(&(pmlmepriv->cur_network.network), &(rnetwork->network), padapter, _TRUE); + + /* update bcn keys */ + if (rtw_get_bcn_keys_from_bss(&rnetwork->network, &bcn_keys) == _TRUE) { + _rtw_memcpy(&pmlmepriv->cur_beacon_keys, &bcn_keys, sizeof(bcn_keys)); + if (is_hidden_ssid(bcn_keys.ssid, bcn_keys.ssid_len)) { + _rtw_memcpy(pmlmepriv->cur_beacon_keys.ssid, pmlmeinfo->network.Ssid.Ssid, IW_ESSID_MAX_SIZE); + pmlmepriv->cur_beacon_keys.ssid_len = pmlmeinfo->network.Ssid.SsidLength; + } + } else { + RTW_ERR("%s: get beacon keys failed\n", __func__); + _rtw_memset(&pmlmepriv->cur_beacon_keys, 0, sizeof(bcn_keys)); + } + #ifdef CONFIG_BCN_CNT_CONFIRM_HDL + pmlmepriv->new_beacon_cnts = 0; + #endif + + /* check the vendor of the assoc AP */ + pmlmeinfo->assoc_AP_vendor = check_assoc_AP(rnetwork->network.IEs, rnetwork->network.IELength); + rtw_phydm_update_ap_vendor_ie(padapter); + + /* update TSF Value */ + pmlmeext->TSFValue = rnetwork->network.tsf + rtw_get_passing_time_ms(rnetwork->last_scanned)*1000; + pmlmeext->bcn_cnt = 0; + pmlmeext->last_bcn_cnt = 0; + /* start auth */ + start_clnt_auth(padapter); + } + _exit_critical_bh(&pmlmepriv->clnt_auth_lock, &irqL); +#endif return H2C_SUCCESS; } @@ -14661,12 +14795,12 @@ u8 disconnect_hdl(_adapter *padapter, unsigned char *pbuf) } #endif + rtw_sta_mstatus_report(padapter); + rtw_mlmeext_disconnect(padapter); rtw_free_uc_swdec_pending_queue(padapter); - rtw_sta_mstatus_report(padapter); - return H2C_SUCCESS; } @@ -14719,7 +14853,6 @@ static bool scan_abort_hdl(_adapter *adapter) , ss->channel_idx ); } - pmlmeext->scan_abort = _FALSE; ret = _TRUE; } @@ -14739,11 +14872,6 @@ u8 rtw_scan_sparse(_adapter *adapter, struct rtw_ieee80211_channel *ch, u8 ch_nu #ifndef RTW_SCAN_SPARSE_CH_NUM_BG #define RTW_SCAN_SPARSE_CH_NUM_BG 4 #endif -#ifdef CONFIG_LAYER2_ROAMING -#ifndef RTW_SCAN_SPARSE_CH_NUM_ROAMING_ACTIVE -#define RTW_SCAN_SPARSE_CH_NUM_ROAMING_ACTIVE 1 -#endif -#endif #define SCAN_SPARSE_CH_NUM_INVALID 255 @@ -14784,14 +14912,6 @@ u8 rtw_scan_sparse(_adapter *adapter, struct rtw_ieee80211_channel *ch, u8 ch_nu max_allow_ch = rtw_min(max_allow_ch, RTW_SCAN_SPARSE_CH_NUM_BG); #endif -#if defined(CONFIG_LAYER2_ROAMING) && defined(RTW_SCAN_SPARSE_ROAMING_ACTIVE) - if (rtw_chk_roam_flags(adapter, RTW_ROAM_ACTIVE)) { - if (busy_traffic == _TRUE && adapter->mlmepriv.need_to_roam == _TRUE) - max_allow_ch = rtw_min(max_allow_ch, RTW_SCAN_SPARSE_CH_NUM_ROAMING_ACTIVE); - } -#endif - - if (max_allow_ch != SCAN_SPARSE_CH_NUM_INVALID) { int i; int k = 0; @@ -14849,7 +14969,7 @@ u8 rtw_scan_backop_decision(_adapter *adapter) } #endif -#define SCANNING_TIMEOUT_EX 2000 +#define SCANNING_TIMEOUT_EX 6000 u32 rtw_scan_timeout_decision(_adapter *padapter) { u32 back_op_times= 0; @@ -14860,7 +14980,7 @@ u32 rtw_scan_timeout_decision(_adapter *padapter) if (is_supported_5g(padapter->registrypriv.wireless_mode) && IsSupported24G(padapter->registrypriv.wireless_mode)) - max_chan_num = MAX_CHANNEL_NUM;/* dual band */ + max_chan_num = MAX_CHANNEL_NUM_2G_5G;/* dual band */ else max_chan_num = MAX_CHANNEL_NUM_2G;/*single band*/ @@ -14873,7 +14993,8 @@ u32 rtw_scan_timeout_decision(_adapter *padapter) scan_ms = ss->duration; else #if defined(CONFIG_RTW_ACS) && defined(CONFIG_RTW_ACS_DBG) - if (IS_ACS_ENABLE(padapter) && rtw_is_acs_st_valid(padapter)) + if (IS_ACS_ENABLE(padapter) && rtw_is_acs_st_valid(padapter) && + !(ss->reason & RTW_AUTO_SCAN_REASON_ROAM)) scan_ms = rtw_acs_get_adv_st(padapter); else #endif /*CONFIG_RTW_ACS*/ @@ -14887,19 +15008,41 @@ u32 rtw_scan_timeout_decision(_adapter *padapter) } static int rtw_scan_ch_decision(_adapter *padapter, struct rtw_ieee80211_channel *out, - u32 out_num, struct rtw_ieee80211_channel *in, u32 in_num, bool no_sparse) + u32 out_num, struct rtw_ieee80211_channel *in, u32 in_num, bool no_sparse, int reason) { - int i, j; + int i, j, k, l, m, r, amount_ch; int set_idx; u8 chan; struct rf_ctl_t *rfctl = adapter_to_rfctl(padapter); struct registry_priv *regsty = dvobj_to_regsty(adapter_to_dvobj(padapter)); +#ifdef CONFIG_RTW_ROAM_QUICKSCAN + struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; +#endif + struct rtw_ieee80211_channel out2[MAX_CHANNEL_NUM_2G]; + struct rtw_ieee80211_channel out2_noir[MAX_CHANNEL_NUM_2G]; + struct rtw_ieee80211_channel out5[MAX_CHANNEL_NUM_5G]; + struct rtw_ieee80211_channel out5_noir[MAX_CHANNEL_NUM_5G]; + struct rtw_ieee80211_channel out_roam[RTW_MAX_NB_RPT_NUM]; + /* clear first */ _rtw_memset(out, 0, sizeof(struct rtw_ieee80211_channel) * out_num); + _rtw_memset(out2, 0, sizeof(out2)); + _rtw_memset(out2_noir, 0, sizeof(out2_noir)); + _rtw_memset(out5, 0, sizeof(out5)); + _rtw_memset(out5_noir, 0, sizeof(out5_noir)); + _rtw_memset(out_roam, 0, sizeof(out_roam)); + j = k = l = m = r = amount_ch = 0; +#ifdef CONFIG_RTW_ROAM_QUICKSCAN + if ((reason & RTW_AUTO_SCAN_REASON_ROAM) && (pmlmeext->quickscan_next)) { + pmlmeext->quickscan_next = _FALSE; + _rtw_memcpy(out, pmlmeext->roam_ch, sizeof(struct rtw_ieee80211_channel)*RTW_CHANNEL_SCAN_AMOUNT); + return pmlmeext->roam_ch_num; + } +#endif + /* scan channel order NB list(when ROAM), 5G, 5G_NO_IR, 2G, 2G_NO_IR */ /* acquire channels from in */ - j = 0; for (i = 0; i < in_num; i++) { if (0) @@ -14911,73 +15054,183 @@ static int rtw_scan_ch_decision(_adapter *padapter, struct rtw_ieee80211_channel continue; set_idx = rtw_chset_search_ch(rfctl->channel_set, in[i].hw_value); - if (set_idx >= 0) { - if (j >= out_num) { - RTW_PRINT(FUNC_ADPT_FMT" out_num:%u not enough\n", - FUNC_ADPT_ARG(padapter), out_num); - break; + + if (set_idx < 0) + continue; + + if (rfctl->channel_set[set_idx].band == BAND_ON_5G) { + + if (rfctl->channel_set[set_idx].flags & (RTW_CHF_NO_IR /*| RTW_CHF_DFS*/)) { + /* 5G DFS and NO_IR */ + _rtw_memcpy(&out5_noir[k], &in[i], sizeof(struct rtw_ieee80211_channel)); + out5_noir[k].flags |= RTW_IEEE80211_CHAN_PASSIVE_SCAN; + k++; + } else { + /* 5G Active channel */ + _rtw_memcpy(&out5[j], &in[i], sizeof(struct rtw_ieee80211_channel)); + j++; } - _rtw_memcpy(&out[j], &in[i], sizeof(struct rtw_ieee80211_channel)); + } else { /* 2G */ - if (rfctl->channel_set[set_idx].ScanType == SCAN_PASSIVE) - out[j].flags |= RTW_IEEE80211_CHAN_PASSIVE_SCAN; - - j++; + if (rfctl->channel_set[set_idx].flags & (RTW_CHF_NO_IR /*| RTW_CHF_DFS*/)) { + /* 2G NO_IR */ + _rtw_memcpy(&out2_noir[m], &in[i], sizeof(struct rtw_ieee80211_channel)); + out2_noir[m].flags |= RTW_IEEE80211_CHAN_PASSIVE_SCAN; + m++; + } else { + /* 2G Active channel */ + _rtw_memcpy(&out2[l], &in[i], sizeof(struct rtw_ieee80211_channel)); + l++; + } } - if (j >= out_num) - break; + } + + amount_ch = j + k + l + m; + + if (reason & RTW_AUTO_SCAN_REASON_ROAM) { + + amount_ch = 0; + if (j && (RTW_MAX_NB_RPT_NUM >= (amount_ch + j))) { + _rtw_memcpy(&out_roam[amount_ch], out5, sizeof(struct rtw_ieee80211_channel)*j); + amount_ch += j; + } + + if (k && (RTW_MAX_NB_RPT_NUM >= (amount_ch + k))) { + _rtw_memcpy(&out_roam[amount_ch], out5_noir, sizeof(struct rtw_ieee80211_channel)*k); + amount_ch += k; + } + + if (l && (RTW_MAX_NB_RPT_NUM >= (amount_ch + l))) { + _rtw_memcpy(&out_roam[amount_ch], out2, sizeof(struct rtw_ieee80211_channel)*l); + amount_ch += l; + } + + if (m && (RTW_MAX_NB_RPT_NUM >= (amount_ch + m))) { + _rtw_memcpy(&out_roam[amount_ch], out2_noir, sizeof(struct rtw_ieee80211_channel)*m); + amount_ch += m; + } + + r = amount_ch; + + /* reset */ + _rtw_memset(out2, 0, sizeof(out2)); + _rtw_memset(out2_noir, 0, sizeof(out2_noir)); + _rtw_memset(out5, 0, sizeof(out5)); + _rtw_memset(out5_noir, 0, sizeof(out5_noir)); + j = k = l = m = amount_ch = 0; } /* if out is empty, use channel_set as default */ - if (j == 0) { + if (amount_ch == 0) { + /* 5G */ for (i = 0; i < rfctl->max_chan_nums; i++) { + if (rfctl->channel_set[i].band != BAND_ON_5G) + continue; + chan = rfctl->channel_set[i].ChannelNum; if (rtw_mlme_band_check(padapter, chan) == _TRUE) { if (rtw_mlme_ignore_chan(padapter, chan) == _TRUE) continue; + if ((reason & RTW_AUTO_SCAN_REASON_ROAM) && + rtw_chlist_search_ch(out_roam, r, chan) != -1) + continue; if (0) RTW_INFO(FUNC_ADPT_FMT" ch:%u\n", FUNC_ADPT_ARG(padapter), chan); - if (j >= out_num) { - RTW_PRINT(FUNC_ADPT_FMT" out_num:%u not enough\n", - FUNC_ADPT_ARG(padapter), out_num); - break; + if (rfctl->channel_set[i].flags & (RTW_CHF_NO_IR /*| RTW_CHF_DFS*/)) { + /* 5G NOIR */ + out5_noir[k].hw_value = chan; + out5_noir[k].flags |= RTW_IEEE80211_CHAN_PASSIVE_SCAN; + k++; + } else { + /* 5G active */ + out5[j].hw_value = chan; + j++; } - - out[j].hw_value = chan; - - if (rfctl->channel_set[i].ScanType == SCAN_PASSIVE) - out[j].flags |= RTW_IEEE80211_CHAN_PASSIVE_SCAN; - - j++; } } + + /* 2G */ + for (i = 0; i < rfctl->max_chan_nums; i++) { + if (rfctl->channel_set[i].band != BAND_ON_2_4G) + break; + + chan = rfctl->channel_set[i].ChannelNum; + + if (rtw_mlme_band_check(padapter, chan) == _TRUE) { + if (rtw_mlme_ignore_chan(padapter, chan) == _TRUE) + continue; + + if ((reason & RTW_AUTO_SCAN_REASON_ROAM) && + rtw_chlist_search_ch(out_roam, r, chan) != -1) + continue; + + if (0) + RTW_INFO(FUNC_ADPT_FMT" ch:%u\n", FUNC_ADPT_ARG(padapter), chan); + + if (rfctl->channel_set[i].flags & (RTW_CHF_NO_IR /*| RTW_CHF_DFS*/)) { + /* 2G NOIR */ + out2_noir[m].hw_value = chan; + out2_noir[m].flags |= RTW_IEEE80211_CHAN_PASSIVE_SCAN; + m++; + + } else { + /* 2G activate */ + out2[l].hw_value = chan; + l++; + } + } + } + } + amount_ch = 0; + if (r && (out_num >= (amount_ch + r))) { + _rtw_memcpy(&out[amount_ch], out_roam, sizeof(struct rtw_ieee80211_channel)*r); + amount_ch += r; + } + + if (j && (out_num >= (amount_ch + j))) { + _rtw_memcpy(&out[amount_ch], out5, sizeof(struct rtw_ieee80211_channel)*j); + amount_ch += j; + } + + if (k && (out_num >= (amount_ch + k))) { + _rtw_memcpy(&out[amount_ch], out5_noir, sizeof(struct rtw_ieee80211_channel)*k); + amount_ch += k; + } + + if (l && (out_num >= (amount_ch + l))) { + _rtw_memcpy(&out[amount_ch], out2, sizeof(struct rtw_ieee80211_channel)*l); + amount_ch += l; + } + + if (m && (out_num >= (amount_ch + m))) { + _rtw_memcpy(&out[amount_ch], out2_noir, sizeof(struct rtw_ieee80211_channel)*m); + amount_ch += m; } if (!no_sparse && !regsty->wifi_spec - && j > 6 /* assume ch_num > 6 is normal scan */ + && amount_ch > 6 /* assume ch_num > 6 is normal scan */ ) { /* scan_sparse */ - j = rtw_scan_sparse(padapter, out, j); + amount_ch = rtw_scan_sparse(padapter, out, amount_ch); } - return j; + return amount_ch; } static void sitesurvey_res_reset(_adapter *adapter, struct sitesurvey_parm *parm) { struct ss_res *ss = &adapter->mlmeextpriv.sitesurvey_res; RT_CHANNEL_INFO *chset = adapter_to_chset(adapter); - int i; + int i, reason = 0; ss->bss_cnt = 0; + ss->activate_ch_cnt = 0; ss->channel_idx = 0; -#if CONFIG_IEEE80211_BAND_5GHZ && CONFIG_DFS - ss->dfs_ch_ssid_scan = 0; -#endif + ss->force_ssid_scan = 0; ss->igi_scan = 0; ss->igi_before_scan = 0; #ifdef CONFIG_SCAN_BACKOP @@ -14995,17 +15248,16 @@ static void sitesurvey_res_reset(_adapter *adapter, struct sitesurvey_parm *parm } else ss->ssid[i].SsidLength = 0; } - + reason = parm->reason; ss->ch_num = rtw_scan_ch_decision(adapter , ss->ch, RTW_CHANNEL_SCAN_AMOUNT , parm->ch, parm->ch_num , parm->acs + , reason ); -#if CONFIG_IEEE80211_BAND_5GHZ && CONFIG_DFS for (i = 0; i < MAX_CHANNEL_NUM; i++) chset[i].hidden_bss_cnt = 0; -#endif ss->bw = parm->bw; ss->igi = parm->igi; @@ -15013,7 +15265,14 @@ static void sitesurvey_res_reset(_adapter *adapter, struct sitesurvey_parm *parm ss->duration = parm->duration; ss->scan_mode = parm->scan_mode; ss->token = parm->token; + ss->reason = parm->reason; ss->acs = parm->acs; + +#ifdef CONFIG_LAYER2_ROAMING + ss->nb_num = parm->nb_num; + for (i = 0; i < ss->nb_num; i++) + _rtw_memcpy(&ss->nb[i], &parm->nb[i], sizeof(struct nb_bssid)); +#endif } static u8 sitesurvey_pick_ch_behavior(_adapter *padapter, u8 *ch, RT_SCAN_TYPE *type) @@ -15050,7 +15309,7 @@ static u8 sitesurvey_pick_ch_behavior(_adapter *padapter, u8 *ch, RT_SCAN_TYPE * scan_ch = pwdinfo->social_chan[ss->channel_idx]; ch_set_idx = rtw_chset_search_ch(rfctl->channel_set, scan_ch); if (ch_set_idx >= 0) - scan_type = rfctl->channel_set[ch_set_idx].ScanType; + scan_type = rfctl->channel_set[ch_set_idx].flags & RTW_CHF_NO_IR ? SCAN_PASSIVE : SCAN_ACTIVE; else scan_type = SCAN_ACTIVE; } else @@ -15062,41 +15321,40 @@ static u8 sitesurvey_pick_ch_behavior(_adapter *padapter, u8 *ch, RT_SCAN_TYPE * backop_flags = rtw_scan_backop_decision(padapter); #endif -#if CONFIG_IEEE80211_BAND_5GHZ && CONFIG_DFS #ifdef CONFIG_SCAN_BACKOP if (!(backop_flags && ss->scan_cnt >= ss->scan_cnt_max)) #endif { #ifdef CONFIG_RTW_WIFI_HAL if (adapter_to_dvobj(padapter)->nodfs) { - while ( ss->channel_idx < ss->ch_num && rtw_is_dfs_ch(ss->ch[ss->channel_idx].hw_value)) + while (ss->channel_idx < ss->ch_num && rtw_chset_is_dfs_ch(rfctl->channel_set, ss->ch[ss->channel_idx].hw_value)) ss->channel_idx++; } else #endif - if (ss->channel_idx != 0 && ss->dfs_ch_ssid_scan == 0 + if (ss->channel_idx != 0 && ss->force_ssid_scan == 0 && pmlmeext->sitesurvey_res.ssid_num - && rtw_is_dfs_ch(ss->ch[ss->channel_idx - 1].hw_value) + && (ss->ch[ss->channel_idx - 1].flags & RTW_IEEE80211_CHAN_PASSIVE_SCAN) ) { ch_set_idx = rtw_chset_search_ch(rfctl->channel_set, ss->ch[ss->channel_idx - 1].hw_value); if (ch_set_idx != -1 && rfctl->channel_set[ch_set_idx].hidden_bss_cnt && (!IS_DFS_SLAVE_WITH_RD(rfctl) - || rtw_odm_dfs_domain_unknown(rfctl_to_dvobj(rfctl)) + || rtw_rfctl_dfs_domain_unknown(rfctl) || !CH_IS_NON_OCP(&rfctl->channel_set[ch_set_idx])) ) { ss->channel_idx--; - ss->dfs_ch_ssid_scan = 1; + ss->force_ssid_scan = 1; } } else - ss->dfs_ch_ssid_scan = 0; + ss->force_ssid_scan = 0; } -#endif /* CONFIG_IEEE80211_BAND_5GHZ && CONFIG_DFS */ if (ss->channel_idx < ss->ch_num) { ch = &ss->ch[ss->channel_idx]; scan_ch = ch->hw_value; #if defined(CONFIG_RTW_ACS) && defined(CONFIG_RTW_ACS_DBG) - if (IS_ACS_ENABLE(padapter) && rtw_is_acs_passiv_scan(padapter)) + if (IS_ACS_ENABLE(padapter) && rtw_is_acs_passiv_scan(padapter) && + !(ss->reason & RTW_AUTO_SCAN_REASON_ROAM)) scan_type = SCAN_PASSIVE; else #endif /*CONFIG_RTW_ACS*/ @@ -15179,66 +15437,111 @@ void site_survey(_adapter *padapter, u8 survey_channel, RT_SCAN_TYPE ScanType) struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; struct ss_res *ss = &pmlmeext->sitesurvey_res; u8 ssid_scan = 0; + int i, j, found = 0, found_all = 0; #ifdef CONFIG_P2P #ifndef CONFIG_IOCTL_CFG80211 struct wifidirect_info *pwdinfo = &(padapter->wdinfo); #endif #endif - - if (survey_channel != 0) { - set_channel_bwmode(padapter, survey_channel, HAL_PRIME_CHNL_OFFSET_DONT_CARE, CHANNEL_WIDTH_20); - -#if CONFIG_IEEE80211_BAND_5GHZ && CONFIG_DFS - if (ScanType == SCAN_PASSIVE && ss->dfs_ch_ssid_scan) - ssid_scan = 1; - else -#endif - if (ScanType == SCAN_ACTIVE) { -#ifdef CONFIG_P2P - #ifdef CONFIG_IOCTL_CFG80211 - if (rtw_cfg80211_is_p2p_scan(padapter)) - #else - if (rtw_p2p_chk_state(pwdinfo, P2P_STATE_SCAN) - || rtw_p2p_chk_state(pwdinfo, P2P_STATE_FIND_PHASE_SEARCH)) - #endif - { - issue_probereq_p2p(padapter, NULL); - issue_probereq_p2p(padapter, NULL); - issue_probereq_p2p(padapter, NULL); - } else -#endif /* CONFIG_P2P */ - { - if (pmlmeext->sitesurvey_res.scan_mode == SCAN_ACTIVE) { - /* IOT issue, When wifi_spec is not set, send one probe req without WPS IE. */ - if (padapter->registrypriv.wifi_spec) - issue_probereq(padapter, NULL, NULL); - else - issue_probereq_ex(padapter, NULL, NULL, 0, 0, 0, 0); - issue_probereq(padapter, NULL, NULL); - } - - ssid_scan = 1; - } - } - - if (ssid_scan) { - int i; - - for (i = 0; i < RTW_SSID_SCAN_AMOUNT; i++) { - if (pmlmeext->sitesurvey_res.ssid[i].SsidLength) { - /* IOT issue, When wifi_spec is not set, send one probe req without WPS IE. */ - if (padapter->registrypriv.wifi_spec) - issue_probereq(padapter, &(pmlmeext->sitesurvey_res.ssid[i]), NULL); - else - issue_probereq_ex(padapter, &(pmlmeext->sitesurvey_res.ssid[i]), NULL, 0, 0, 0, 0); - issue_probereq(padapter, &(pmlmeext->sitesurvey_res.ssid[i]), NULL); - } - } - } - } else { - /* channel number is 0 or this channel is not valid. */ + if (survey_channel == 0) { rtw_warn_on(1); + return; + } + + set_channel_bwmode(padapter, survey_channel, HAL_PRIME_CHNL_OFFSET_DONT_CARE, CHANNEL_WIDTH_20); + + if ((ScanType == SCAN_PASSIVE && ss->force_ssid_scan) || + (ss->reason & RTW_AUTO_SCAN_REASON_ROAM)) + ssid_scan = 1; + else if (ScanType == SCAN_ACTIVE) { +#ifdef CONFIG_P2P + #ifdef CONFIG_IOCTL_CFG80211 + if (rtw_cfg80211_is_p2p_scan(padapter)) + #else + if (rtw_p2p_chk_state(pwdinfo, P2P_STATE_SCAN) + || rtw_p2p_chk_state(pwdinfo, P2P_STATE_FIND_PHASE_SEARCH)) + #endif + { + issue_probereq_p2p(padapter, NULL); + issue_probereq_p2p(padapter, NULL); + issue_probereq_p2p(padapter, NULL); + } else +#endif /* CONFIG_P2P */ + { + if (pmlmeext->sitesurvey_res.scan_mode == SCAN_ACTIVE) { + /* IOT issue, When wifi_spec is not set, send one probe req without WPS IE. */ + if (padapter->registrypriv.wifi_spec) + issue_probereq(padapter, NULL, NULL); + else + issue_probereq_ex(padapter, NULL, NULL, 0, 0, 0, 0); + issue_probereq(padapter, NULL, NULL); + } + + ssid_scan = 1; + } + } + + if (!ssid_scan) + return; + + if (ss->reason & RTW_AUTO_SCAN_REASON_ROAM) { + if (ScanType != SCAN_ACTIVE) + return; +#ifdef CONFIG_LAYER2_ROAMING + for (i = 0; i < RTW_SSID_SCAN_AMOUNT; i++) { + found = 0; + if (ss->ssid[i].SsidLength) { + if (ss->nb_num) { + for (j = 0; j < ss->nb_num; j++) { + if (survey_channel == ss->nb[j].ch) { + found++; + if (padapter->registrypriv.wifi_spec) + issue_probereq(padapter, &ss->ssid[i], NULL); + else + issue_probereq_ex(padapter, &ss->ssid[i], + (const u8 *)&ss->nb[j].bssid, + 0, 0, 0, 0); + } + } + } +#ifndef DBG_UNIT_TEST_ROAM + if (!found) +#endif + { + /* IOT issue, When wifi_spec is not set, + * send one probe req without WPS IE. */ + found++; + if (padapter->registrypriv.wifi_spec) + issue_probereq(padapter, &ss->ssid[i], NULL); + else + issue_probereq_ex(padapter, &ss->ssid[i], NULL, 0, 0, 0, 0); + } + } + found_all += found; + } + /* IOT issue, When wifi_spec is not set, + * send one probe req without WPS IE. */ + if (!found_all) { + if (padapter->registrypriv.wifi_spec) + issue_probereq(padapter, NULL, NULL); + else + issue_probereq_ex(padapter, NULL, NULL, 0, 0, 0, 0); + } +#endif + } else { + + for (i = 0; i < RTW_SSID_SCAN_AMOUNT; i++) { + if (ss->ssid[i].SsidLength) { + /* IOT issue, When wifi_spec is not set, + * send one probe req without WPS IE. */ + if (padapter->registrypriv.wifi_spec) + issue_probereq(padapter, &ss->ssid[i], NULL); + else + issue_probereq_ex(padapter, &ss->ssid[i], NULL, 0, 0, 0, 0); + issue_probereq(padapter, &ss->ssid[i], NULL); + } + } } return; @@ -15429,7 +15732,8 @@ void sitesurvey_set_igi(_adapter *adapter) igi = ss->igi; else #if defined(CONFIG_RTW_ACS) && defined(CONFIG_RTW_ACS_DBG) - if (IS_ACS_ENABLE(adapter) && rtw_is_acs_igi_valid(adapter)) + if (IS_ACS_ENABLE(adapter) && rtw_is_acs_igi_valid(adapter) && + !(ss->reason & RTW_AUTO_SCAN_REASON_ROAM)) igi = rtw_acs_get_adv_igi(adapter); else #endif /*CONFIG_RTW_ACS*/ @@ -15515,6 +15819,68 @@ void sitesurvey_set_offch_state(_adapter *adapter, u8 scan_state) _exit_critical_mutex(&rfctl->offch_mutex, NULL); } +#ifdef CONFIG_RTW_ROAM_QUICKSCAN +extern inline int is_same_ess(WLAN_BSSID_EX *a, WLAN_BSSID_EX *b); +extern int rtw_is_desired_network(_adapter *adapter, struct wlan_network *pnetwork); +void generate_quickss(_adapter *padapter) +{ + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + struct wlan_network *pnetwork = NULL; + struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; + struct rtw_ieee80211_channel *roam_ch = pmlmeext->roam_ch; + struct rf_ctl_t *rfctl = adapter_to_rfctl(padapter); + int chan; + _irqL irqL; + _list *plist, *phead; + u8 *target_ssid=NULL, *ssid=NULL, ds_cfg, j, ch_num; + u32 target_ssid_len=0, ssid_len=0; + u8 mark[166]; + + target_ssid = pmlmepriv->cur_network.network.Ssid.Ssid; + target_ssid_len = pmlmepriv->cur_network.network.Ssid.SsidLength; + _rtw_memset(mark, 0, sizeof(u8)*166); + + _enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL); + phead = get_list_head(&(pmlmepriv->scanned_queue)); + if (!phead) { + _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL); + return; + } + plist = get_next(phead); + if (!plist) { + _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL); + return; + } + while (1) { + if (rtw_end_of_queue_search(phead, plist) == _TRUE) + break; + + pnetwork = LIST_CONTAINOR(plist, struct wlan_network, list); + if (!pnetwork) + break; + + ds_cfg = pnetwork->network.Configuration.DSConfig; + if (is_same_ess(&pnetwork->network, &pmlmepriv->cur_network.network) && + rtw_is_desired_network(padapter, pnetwork)) + mark[ds_cfg] = 1; + + plist = get_next(plist); + } + /* ex: assume roaming channel=1/6/40/165, then mark[1]/[6]/[40]/[165] are 1. */ + _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL); + + ch_num = 0; + for (j = 0; j < rfctl->max_chan_nums; j++) { + chan = rfctl->channel_set[j].ChannelNum; + if (mark[chan]) { + roam_ch[ch_num].hw_value = chan; + roam_ch[ch_num++].flags = rfctl->channel_set[j].flags; + } + } + pmlmeext->roam_ch_num = ch_num; +} +#endif + u8 sitesurvey_cmd_hdl(_adapter *padapter, u8 *pbuf) { struct sitesurvey_parm *pparm = (struct sitesurvey_parm *)pbuf; @@ -15524,13 +15890,18 @@ u8 sitesurvey_cmd_hdl(_adapter *padapter, u8 *pbuf) #endif struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; struct ss_res *ss = &pmlmeext->sitesurvey_res; -#ifdef CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI - struct rtw_wdev_priv *pwdev_priv = adapter_wdev_data(padapter); +#if defined(CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI) || defined(CONFIG_RTW_SCAN_RAND) + struct rtw_wdev_priv *pwdev_priv = adapter_wdev_data(padapter); #endif + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + struct wlan_network *ap = pmlmepriv->cur_network_scanned; u8 val8; #ifdef CONFIG_P2P struct wifidirect_info *pwdinfo = &padapter->wdinfo; +#ifdef CONFIG_CONCURRENT_MODE + struct roch_info *prochinfo = &padapter->rochinfo; +#endif #endif #ifdef DBG_CHECK_FW_PS_STATE @@ -15558,17 +15929,29 @@ operation_by_state: sitesurvey_res_reset(padapter, pparm); mlmeext_set_scan_state(pmlmeext, SCAN_START); + + /* show current serving AP */ + if (ss->reason & RTW_AUTO_SCAN_REASON_ROAM && ap) + RTW_INFO("ServingAP:* %s("MAC_FMT", ch%3u) rssi:%d dBm, age:%5d\n", + ap->network.Ssid.Ssid, + MAC_ARG(ap->network.MacAddress), + ap->network.Configuration.DSConfig, + translate_percentage_to_dbm(ap->network.PhyInfo.SignalStrength), + rtw_get_passing_time_ms(ap->last_scanned)); + goto operation_by_state; case SCAN_START: -#ifdef CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI +#if defined(CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI) || defined(CONFIG_RTW_SCAN_RAND) if ((pwdev_priv->pno_mac_addr[0] != 0xFF) && (check_fwstate(&padapter->mlmepriv, WIFI_STATION_STATE) == _TRUE) && (check_fwstate(&padapter->mlmepriv, WIFI_ASOC_STATE) == _FALSE)) { u16 seq_num; +#ifdef CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI rtw_hal_pno_random_gen_mac_addr(padapter); - rtw_hal_set_hw_mac_addr(padapter, pwdev_priv->pno_mac_addr); +#endif + rtw_hal_set_hw_macaddr(padapter, pwdev_priv->pno_mac_addr); get_random_bytes(&seq_num, 2); pwdev_priv->pno_scan_seq_num = seq_num & 0xFFF; RTW_INFO("%s pno_scan_seq_num %d\n", __func__, @@ -15598,7 +15981,11 @@ operation_by_state: if (rtw_ps_annc(padapter, 1)) { mlmeext_set_scan_state(pmlmeext, SCAN_PS_ANNC_WAIT); mlmeext_set_scan_next_state(pmlmeext, SCAN_ENTER); +#ifdef CONFIG_XMIT_ACK + set_survey_timer(pmlmeext, 1); +#else set_survey_timer(pmlmeext, 50); /* delay 50ms to protect nulldata(1) */ +#endif } else { mlmeext_set_scan_state(pmlmeext, SCAN_ENTER); goto operation_by_state; @@ -15633,50 +16020,37 @@ operation_by_state: u32 scan_ms; #ifdef CONFIG_RTW_ACS - if (IS_ACS_ENABLE(padapter)) + if (IS_ACS_ENABLE(padapter) && + !(ss->reason & RTW_AUTO_SCAN_REASON_ROAM)) rtw_acs_get_rst(padapter); #endif next_state = sitesurvey_pick_ch_behavior(padapter, &scan_ch, &scan_type); +#ifdef CONFIG_LAYER2_ROAMING +#ifdef CONFIG_RTW_PREFER_5G + if ((ss->reason & RTW_AUTO_SCAN_REASON_ROAM) && + (next_state == SCAN_PROCESS)) { + if ((scan_ch < 36) && pmlmepriv->candidate_5G) { + RTW_INFO("%s() has 2'nd roam candidate, abort scan!\n", __func__); + next_state = SCAN_COMPLETE; + pmlmeext->scan_abort = _TRUE; + scan_abort_hdl(padapter); + } + } +#endif +#endif if (next_state != SCAN_PROCESS) { mlmeext_set_scan_state(pmlmeext, next_state); goto operation_by_state; } /* still SCAN_PROCESS state */ - #ifdef DBG_SITESURVEY - #ifdef CONFIG_P2P - RTW_INFO(FUNC_ADPT_FMT" %s ch:%u (cnt:%u,idx:%d) at %dms, %c%c%c%c\n" - , FUNC_ADPT_ARG(padapter) - , mlmeext_scan_state_str(pmlmeext) - , scan_ch - , pwdinfo->find_phase_state_exchange_cnt, ss->channel_idx - , rtw_get_passing_time_ms(padapter->mlmepriv.scan_start_time) - , scan_type ? 'A' : 'P', ss->scan_mode ? 'A' : 'P' - , ss->ssid[0].SsidLength ? 'S' : ' ' - , ss->dfs_ch_ssid_scan ? 'D' : ' ' - ); - #else - RTW_INFO(FUNC_ADPT_FMT" %s ch:%u (idx:%d) at %dms, %c%c%c%c\n" - , FUNC_ADPT_ARG(padapter) - , mlmeext_scan_state_str(pmlmeext) - , scan_ch - , ss->channel_idx - , rtw_get_passing_time_ms(padapter->mlmepriv.scan_start_time) - , scan_type ? 'A' : 'P', ss->scan_mode ? 'A' : 'P' - , ss->ssid[0].SsidLength ? 'S' : ' ' - , ss->dfs_ch_ssid_scan ? 'D' : ' ' - ); - #endif /* CONFIG_P2P */ - #endif /*DBG_SITESURVEY*/ #ifdef DBG_FIXED_CHAN if (pmlmeext->fixed_chan != 0xff) RTW_INFO(FUNC_ADPT_FMT" fixed_chan:%u\n", pmlmeext->fixed_chan); #endif - site_survey(padapter, scan_ch, scan_type); - #if defined(CONFIG_ATMEL_RC_PATCH) if (check_fwstate(pmlmepriv, WIFI_ASOC_STATE) == _TRUE) scan_ms = 20; @@ -15684,20 +16058,27 @@ operation_by_state: scan_ms = 40; #else #if defined(CONFIG_RTW_ACS) && defined(CONFIG_RTW_ACS_DBG) - if (IS_ACS_ENABLE(padapter) && rtw_is_acs_st_valid(padapter)) + if (IS_ACS_ENABLE(padapter) && rtw_is_acs_st_valid(padapter) && + !(ss->reason & RTW_AUTO_SCAN_REASON_ROAM)) scan_ms = rtw_acs_get_adv_st(padapter); else #endif /*CONFIG_RTW_ACS*/ scan_ms = ss->scan_ch_ms; #endif + if (ss->reason & RTW_AUTO_SCAN_REASON_ROAM && scan_type == SCAN_ACTIVE) + scan_ms = 20; + else + scan_ms = ss->scan_ch_ms; + #if defined(CONFIG_ANTENNA_DIVERSITY) || defined(DBG_SCAN_SW_ANTDIV_BL) if (ss->is_sw_antdiv_bl_scan) scan_ms = scan_ms / 2; #endif #ifdef CONFIG_RTW_ACS - if (IS_ACS_ENABLE(padapter)) { + if (IS_ACS_ENABLE(padapter) && + !(ss->reason & RTW_AUTO_SCAN_REASON_ROAM)) { if (pparm->token) rtw_acs_trigger(padapter, scan_ms, scan_ch, NHM_PID_IEEE_11K_HIGH); else @@ -15710,6 +16091,34 @@ operation_by_state: rtw_noise_measure(padapter, scan_ch, _FALSE, 0, scan_ms / 2); #endif set_survey_timer(pmlmeext, scan_ms); + #ifdef DBG_SITESURVEY + #ifdef CONFIG_P2P + RTW_INFO(FUNC_ADPT_FMT" %s ch:%u (cnt:%u,idx:%d) at %dms, %c%c%c%c, R=%d(%dms)\n" + , FUNC_ADPT_ARG(padapter) + , mlmeext_scan_state_str(pmlmeext) + , scan_ch + , pwdinfo->find_phase_state_exchange_cnt, ss->channel_idx + , rtw_get_passing_time_ms(padapter->mlmepriv.scan_start_time) + , scan_type ? 'A' : 'P', ss->scan_mode ? 'A' : 'P' + , ss->ssid[0].SsidLength ? 'S' : ' ' + , ss->force_ssid_scan ? 'F' : ' ' + , ss->reason + , scan_ms + ); + #else + RTW_INFO(FUNC_ADPT_FMT" %s ch:%u (idx:%d) at %dms, %c%c%c%c\n" + , FUNC_ADPT_ARG(padapter) + , mlmeext_scan_state_str(pmlmeext) + , scan_ch + , ss->channel_idx + , rtw_get_passing_time_ms(padapter->mlmepriv.scan_start_time) + , scan_type ? 'A' : 'P', ss->scan_mode ? 'A' : 'P' + , ss->ssid[0].SsidLength ? 'S' : ' ' + , ss->force_ssid_scan ? 'F' : ' ' + ); + #endif /* CONFIG_P2P */ + #endif /*DBG_SITESURVEY*/ + site_survey(padapter, scan_ch, scan_type); break; } @@ -15724,8 +16133,12 @@ operation_by_state: #endif /* CONFIG_MCC_MODE */ if (need_ch_setting_union) { - if (rtw_mi_get_ch_setting_union(padapter, &back_ch, &back_bw, &back_ch_offset) == 0) + if (rtw_mi_get_ch_setting_union(padapter, &back_ch, &back_bw, &back_ch_offset) == 0) { rtw_warn_on(1); + back_ch = pmlmeext->cur_channel; + back_bw = pmlmeext->cur_bwmode; + back_ch_offset = pmlmeext->cur_ch_offset; + } } #ifdef DBG_SITESURVEY @@ -15783,7 +16196,11 @@ operation_by_state: ) { mlmeext_set_scan_state(pmlmeext, SCAN_PS_ANNC_WAIT); mlmeext_set_scan_next_state(pmlmeext, SCAN_LEAVE_OP); +#ifdef CONFIG_XMIT_ACK + set_survey_timer(pmlmeext, 1); +#else set_survey_timer(pmlmeext, 50); /* delay 50ms to protect nulldata(1) */ +#endif } else { mlmeext_set_scan_state(pmlmeext, SCAN_LEAVE_OP); goto operation_by_state; @@ -15850,8 +16267,8 @@ operation_by_state: #endif /* CONFIG_P2P */ case SCAN_COMPLETE: -#ifdef CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI - rtw_hal_set_hw_mac_addr(padapter, adapter_mac_addr(padapter)); +#if defined(CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI) || defined(CONFIG_RTW_SCAN_RAND) + rtw_hal_set_hw_macaddr(padapter, adapter_mac_addr(padapter)); #endif #ifdef CONFIG_P2P if (rtw_p2p_chk_state(pwdinfo, P2P_STATE_SCAN) @@ -15860,7 +16277,7 @@ operation_by_state: #ifdef CONFIG_CONCURRENT_MODE if (pwdinfo->driver_interface == DRIVER_WEXT) { if (rtw_mi_check_status(padapter, MI_LINKED)) - _set_timer(&pwdinfo->ap_p2p_switch_timer, 500); + _set_timer(&prochinfo->ap_roch_ch_switch_timer, 500); } #endif @@ -15898,7 +16315,8 @@ operation_by_state: report_surveydone_event(padapter, ss->acs); #ifdef CONFIG_RTW_ACS - if (IS_ACS_ENABLE(padapter)) + if (IS_ACS_ENABLE(padapter) && + !(ss->reason & RTW_AUTO_SCAN_REASON_ROAM)) rtw_acs_select_best_chan(padapter); #endif @@ -15914,7 +16332,10 @@ operation_by_state: if (ss->token) rm_post_event(padapter, ss->token, RM_EV_survey_done); #endif /* CONFIG_RTW_80211K */ - +#ifdef CONFIG_RTW_ROAM_QUICKSCAN + if (padapter->mlmepriv.need_to_roam == _TRUE) + generate_quickss(padapter); +#endif break; } @@ -15933,12 +16354,13 @@ u8 setauth_hdl(_adapter *padapter, unsigned char *pbuf) return H2C_SUCCESS; } -static u8 amsdu_spp_enable(_adapter *pdapter,u8 type) +static u8 amsdu_spp_enable(_adapter *pdapter, enum security_type type) { u8 ret = _FALSE; if (pdapter->registrypriv.amsdu_mode == RTW_AMSDU_MODE_SPP) { - if (type == _AES_) + if ( type == _AES_ || type == _CCMP_256_ + || type == _GCMP_ || type == _GCMP_256_ ) ret = _SUCCESS; } @@ -15967,6 +16389,7 @@ u8 setkey_hdl(_adapter *padapter, u8 *pbuf) struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); unsigned char null_addr[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); u8 *addr; bool used = _FALSE; @@ -16037,12 +16460,9 @@ u8 setkey_hdl(_adapter *padapter, u8 *pbuf) RTW_INFO_DUMP("GTK : ", pparm->key, sizeof(pparm->key)); ctrl |= BIT(9); } - if (amsdu_spp_enable(padapter, pparm->algorithm) == _SUCCESS) ctrl |= BIT(7); - - write_cam(padapter, cam_id, ctrl, addr, pparm->key, - pparm->algorithm & _SEC_TYPE_256_); + write_cam(padapter, cam_id, ctrl, addr, pparm->key); /* if ((cam_id > 3) && (((pmlmeinfo->state&0x03) == WIFI_FW_AP_STATE) || ((pmlmeinfo->state&0x03) == WIFI_FW_ADHOC_STATE)))*/ #ifndef SEC_DEFAULT_KEY_SEARCH @@ -16088,7 +16508,31 @@ u8 setkey_hdl(_adapter *padapter, u8 *pbuf) enable_mc: /* allow multicast packets to driver */ rtw_hal_set_hwreg(padapter, HW_VAR_ON_RCR_AM, null_addr); +#ifdef CONFIG_LAYER2_ROAMING + if (padapter->mlmepriv.roam_network) { + struct xmit_frame *rframe; + struct xmit_priv *pxmitpriv = &padapter->xmitpriv; + _list *plist, *phead; + _irqL irqL; + _pkt *pkt; + padapter->mlmepriv.roam_network = NULL; + padapter->mlmepriv.candidate_5G = NULL; + padapter->mlmepriv.roam_buf_pkt = 0; + _rtw_memset(pmlmepriv->roam_from, 0, ETH_ALEN); + _enter_critical_bh(&pxmitpriv->rpkt_queue.lock, &irqL); + phead = get_list_head(&pxmitpriv->rpkt_queue); + plist = get_next(phead); + while ((rtw_end_of_queue_search(phead, plist)) == _FALSE) { + rframe = LIST_CONTAINOR(plist, struct xmit_frame, list); + plist = get_next(plist); + rtw_list_delete(&rframe->list); + pkt = rframe->pkt; + rtw_xmit_posthandle(padapter, rframe, pkt); + } + _exit_critical_bh(&pxmitpriv->rpkt_queue.lock, &irqL); + } +#endif return H2C_SUCCESS; } @@ -16188,12 +16632,11 @@ write_to_cam: RTW_INFO_DUMP("PTK : ", pparm->key, sizeof(pparm->key)); ctrl |= BIT(9); } + if (amsdu_spp_enable(padapter, pparm->algorithm) == _SUCCESS) ctrl |= BIT(7); - write_cam(padapter, cam_id, ctrl, pparm->addr, pparm->key, - pparm->algorithm & _SEC_TYPE_256_); - + write_cam(padapter, cam_id, ctrl, pparm->addr, pparm->key); if (!(pparm->gk)) ATOMIC_INC(&psta->keytrack); /*CVE-2020-24587*/ } @@ -16487,6 +16930,7 @@ u8 chk_bmc_sleepq_hdl(_adapter *padapter, unsigned char *pbuf) u8 tx_beacon_hdl(_adapter *padapter, unsigned char *pbuf) { +#ifdef CONFIG_AP_MODE /*RTW_INFO(FUNC_ADPT_FMT, FUNC_ADPT_ARG(padapter));*/ #ifdef CONFIG_SWTIMER_BASED_TXBCN @@ -16502,7 +16946,7 @@ u8 tx_beacon_hdl(_adapter *padapter, unsigned char *pbuf) /* tx bc/mc frames after update TIM */ chk_bmc_sleepq_hdl(padapter, NULL); #endif - +#endif /* CONFIG_AP_MODE */ return H2C_SUCCESS; } @@ -16512,6 +16956,7 @@ u8 tx_beacon_hdl(_adapter *padapter, unsigned char *pbuf) * set WLAN_BSSID_EX.SupportedRates * update WLAN_BSSID_EX.IEs's Supported Rate and Extended Supported Rate ie */ +#ifdef CONFIG_AP_MODE void change_band_update_ie(_adapter *padapter, WLAN_BSSID_EX *pnetwork, u8 ch) { u8 network_type, rate_len, total_rate_len, remainder_rate_len; @@ -16528,10 +16973,11 @@ void change_band_update_ie(_adapter *padapter, WLAN_BSSID_EX *pnetwork, u8 ch) if ((pmlmepriv->htpriv.ht_option == _TRUE) && REGSTY_IS_11AC_ENABLE(&padapter->registrypriv) && is_supported_vht(padapter->registrypriv.wireless_mode) - && (!rfctl->country_ent || COUNTRY_CHPLAN_EN_11AC(rfctl->country_ent)) + && RFCTL_REG_EN_11AC(rfctl) ) { - if (REGSTY_IS_11AC_AUTO(&padapter->registrypriv) - || pmlmepriv->ori_vht_en) + if (pmlmepriv->vhtpriv.upper_layer_setting) + rtw_reattach_vht_ies(padapter, pnetwork); + else if (REGSTY_IS_11AC_AUTO(&padapter->registrypriv)) rtw_vht_ies_attach(padapter, pnetwork); } #endif @@ -16573,6 +17019,7 @@ void change_band_update_ie(_adapter *padapter, WLAN_BSSID_EX *pnetwork, u8 ch) pnetwork->Length = get_WLAN_BSSID_EX_sz(pnetwork); } +#endif /* CONFIG_AP_MODE */ void rtw_join_done_chk_ch(_adapter *adapter, int join_res) { @@ -16583,7 +17030,7 @@ void rtw_join_done_chk_ch(_adapter *adapter, int join_res) struct mlme_priv *mlme; struct mlme_ext_priv *mlmeext; u8 u_ch, u_offset, u_bw; - int i; + int i, ret; dvobj = adapter_to_dvobj(adapter); @@ -16592,19 +17039,20 @@ void rtw_join_done_chk_ch(_adapter *adapter, int join_res) dump_adapters_status(RTW_DBGDUMP , dvobj); } - if (join_res >= 0) { + ret = rtw_mi_get_ch_setting_union(adapter, &u_ch, &u_bw, &u_offset); + if (join_res >= 0 && ret <= 0) { + join_res = -1; + dump_adapters_status(RTW_DBGDUMP , dvobj); + rtw_warn_on(1); + } + if (join_res >= 0) { #ifdef CONFIG_MCC_MODE /* MCC setting success, don't go to ch union process */ if (rtw_hal_set_mcc_setting_join_done_chk_ch(adapter)) return; #endif /* CONFIG_MCC_MODE */ - if (rtw_mi_get_ch_setting_union(adapter, &u_ch, &u_bw, &u_offset) <= 0) { - dump_adapters_status(RTW_DBGDUMP , dvobj); - rtw_warn_on(1); - } - for (i = 0; i < dvobj->iface_nums; i++) { iface = dvobj->padapters[i]; mlme = &iface->mlmepriv; @@ -16613,6 +17061,7 @@ void rtw_join_done_chk_ch(_adapter *adapter, int join_res) if (!iface || iface == adapter) continue; +#ifdef CONFIG_AP_MODE if ((MLME_IS_AP(iface) || MLME_IS_MESH(iface)) && check_fwstate(mlme, WIFI_ASOC_STATE) ) { @@ -16638,7 +17087,7 @@ void rtw_join_done_chk_ch(_adapter *adapter, int join_res) rtw_chset_sync_chbw(adapter_to_chset(adapter) , &mlmeext->cur_channel, &mlmeext->cur_bwmode, &mlmeext->cur_ch_offset - , &u_ch, &u_bw, &u_offset); + , &u_ch, &u_bw, &u_offset, 1, 0); RTW_INFO(FUNC_ADPT_FMT" %u,%u,%u => %u,%u,%u\n", FUNC_ADPT_ARG(iface) , ori_ch, ori_bw, ori_offset @@ -16667,8 +17116,13 @@ void rtw_join_done_chk_ch(_adapter *adapter, int join_res) } clr_fwstate(mlme, WIFI_OP_CH_SWITCHING); + #ifdef CONFIG_ACTIVE_TPC_REPORT + if (MLME_ACTIVE_TPC_REPORT(mlme)) + update_beacon(iface, WLAN_EID_TPC_REPORT, NULL, _FALSE, 0); + #endif update_beacon(iface, 0xFF, NULL, _TRUE, 0); } +#endif /* CONFIG_AP_MODE */ } #ifdef CONFIG_DFS_MASTER @@ -16682,14 +17136,20 @@ void rtw_join_done_chk_ch(_adapter *adapter, int join_res) if (!iface || iface == adapter) continue; - +#ifdef CONFIG_AP_MODE if ((MLME_IS_AP(iface) || MLME_IS_MESH(iface)) && check_fwstate(mlme, WIFI_ASOC_STATE) ) { clr_fwstate(mlme, WIFI_OP_CH_SWITCHING); update_beacon(iface, 0xFF, NULL, _TRUE, 0); } +#endif } + + #ifdef CONFIG_80211D + rtw_leavebss_update_regulatory(adapter); + #endif + #ifdef CONFIG_DFS_MASTER rtw_dfs_rd_en_decision(adapter, MLME_STA_DISCONNECTED, 0); #endif @@ -16698,9 +17158,13 @@ void rtw_join_done_chk_ch(_adapter *adapter, int join_res) if (rtw_mi_get_ch_setting_union(adapter, &u_ch, &u_bw, &u_offset)) { RTW_INFO(FUNC_ADPT_FMT" union:%u,%u,%u\n", FUNC_ADPT_ARG(adapter), u_ch, u_bw, u_offset); set_channel_bwmode(adapter, u_ch, u_offset, u_bw); - rtw_mi_update_union_chan_inf(adapter, u_ch, u_offset, u_bw); } + rtw_mi_update_union_chan_inf(adapter, u_ch, u_offset, u_bw); + + if (join_res >= 0) + rtw_rfctl_update_op_mode(adapter_to_rfctl(adapter), BIT(adapter->iface_id), 1); + if (DUMP_ADAPTERS_STATUS) { RTW_INFO(FUNC_ADPT_FMT" exit\n", FUNC_ADPT_ARG(adapter)); dump_adapters_status(RTW_DBGDUMP , dvobj); @@ -16710,6 +17174,7 @@ void rtw_join_done_chk_ch(_adapter *adapter, int join_res) int rtw_chk_start_clnt_join(_adapter *adapter, u8 *ch, u8 *bw, u8 *offset) { #ifdef CONFIG_CONCURRENT_MODE + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); bool chbw_allow = _TRUE; #endif bool connect_allow = _TRUE; @@ -16829,6 +17294,7 @@ connect_allow_hdl: if (!iface || iface == adapter) continue; + #ifdef CONFIG_AP_MODE if ((MLME_IS_AP(iface) || MLME_IS_MESH(iface)) && check_fwstate(mlme, WIFI_ASOC_STATE) ) { @@ -16837,12 +17303,14 @@ connect_allow_hdl: rtw_ap_inform_ch_switch(iface, pmlmeext->cur_channel , pmlmeext->cur_ch_offset); else #endif + if (rfctl->ap_csa_en == AP_CSA_DISABLE) rtw_sta_flush(iface, _FALSE); rtw_hal_set_hwreg(iface, HW_VAR_CHECK_TXBUF, 0); set_fwstate(mlme, WIFI_OP_CH_SWITCHING); - - } else if (check_fwstate(mlme, WIFI_STATION_STATE) + } else + #endif /* CONFIG_AP_MODE */ + if (check_fwstate(mlme, WIFI_STATION_STATE) && check_fwstate(mlme, WIFI_ASOC_STATE) ) { rtw_disassoc_cmd(iface, 500, RTW_CMDF_DIRECTLY); @@ -16851,17 +17319,30 @@ connect_allow_hdl: } } } - - #ifdef CONFIG_DFS_MASTER - rtw_dfs_rd_en_decision(adapter, MLME_STA_CONNECTING, 0); - #endif } #endif /* CONFIG_CONCURRENT_MODE */ + #ifdef CONFIG_80211D + rtw_joinbss_update_regulatory(adapter, &adapter->mlmeextpriv.mlmext_info.network); + #endif + + #ifdef CONFIG_DFS_MASTER + rtw_dfs_rd_en_decision(adapter, MLME_STA_CONNECTING, 0); + #endif + exit: +#if defined(CONFIG_CONCURRENT_MODE) && defined(CONFIG_AP_MODE) + if (rfctl->ap_csa_en != AP_CSA_DISABLE) { + u8 enable = 0; + rfctl->ap_csa_en = AP_CSA_DISABLE; + rtw_hal_set_hwreg(adapter, HW_VAR_BCN_EARLY_C2H_RPT, &enable); + } +#endif + if (connect_allow == _TRUE) { RTW_INFO(FUNC_ADPT_FMT" union: %u,%u,%u\n", FUNC_ADPT_ARG(adapter), u_ch, u_bw, u_offset); + rtw_mi_update_union_chan_inf(adapter, u_ch, u_offset, u_bw); *ch = u_ch; *bw = u_bw; *offset = u_offset; @@ -16908,10 +17389,19 @@ void rtw_set_external_auth_status(_adapter *padapter, #endif /* CONFIG_IOCTL_CFG80211 */ } +u8 rtw_iqk_hdl(_adapter *padapter, unsigned char *pbuf) +{ + rtw_hal_phydm_cal_trigger(padapter); + return H2C_SUCCESS; +} + u8 rtw_set_chbw_hdl(_adapter *padapter, u8 *pbuf) { struct set_ch_parm *set_ch_parm; struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; + u8 ifbmp_s = rtw_mi_get_ld_sta_ifbmp(padapter); + struct dvobj_priv *dvobj = adapter_to_dvobj(padapter); + u8 u_ch, u_bw, u_offset; if (!pbuf) return H2C_PARAMETERS_ERROR; @@ -16922,41 +17412,434 @@ u8 rtw_set_chbw_hdl(_adapter *padapter, u8 *pbuf) FUNC_NDEV_ARG(padapter->pnetdev), set_ch_parm->ch, set_ch_parm->bw, set_ch_parm->ch_offset); - pmlmeext->cur_channel = set_ch_parm->ch; - pmlmeext->cur_ch_offset = set_ch_parm->ch_offset; - pmlmeext->cur_bwmode = set_ch_parm->bw; + /* update ch, bw, offset for all asoc STA ifaces */ + if (ifbmp_s) { + _adapter *iface; + int i; + for (i = 0; i < dvobj->iface_nums; i++) { + iface = dvobj->padapters[i]; + if (!iface || !(ifbmp_s & BIT(iface->iface_id))) + continue; + + /* update STA mode ch/bw/offset */ + iface->mlmeextpriv.cur_channel = set_ch_parm->ch; + iface->mlmeextpriv.cur_bwmode = set_ch_parm->bw; + iface->mlmeextpriv.cur_ch_offset = set_ch_parm->ch_offset; + /* updaet STA mode DSConfig , ap mode will update in rtw_change_bss_chbw_cmd */ + iface->mlmepriv.cur_network.network.Configuration.DSConfig = set_ch_parm->ch; + } + } + + LeaveAllPowerSaveModeDirect(padapter); + set_channel_bwmode(padapter, set_ch_parm->ch, set_ch_parm->ch_offset, set_ch_parm->bw); + rtw_mi_get_ch_setting_union(padapter, &u_ch, &u_bw, &u_offset); + rtw_mi_update_union_chan_inf(padapter, u_ch, u_offset, u_bw); + rtw_rfctl_update_op_mode(dvobj_to_rfctl(dvobj), 0, 0); + return H2C_SUCCESS; } -u8 set_chplan_hdl(_adapter *padapter, unsigned char *pbuf) +static void get_str_of_set_chplan_keys(char *buf, u8 buf_len, struct SetChannelPlan_param *param) { - struct SetChannelPlan_param *setChannelPlan_param; + char *pos = buf; + +#ifdef CONFIG_80211D + if (param->has_cisr) { + pos += snprintf(pos, buf_len - (pos - buf), "alpha2:"ALPHA2_FMT" %s" + , ALPHA2_ARG(param->cisr.alpha2), cis_status_str(param->cisr.status)); + } else +#endif + if (param->has_country) + pos += snprintf(pos, buf_len - (pos - buf), "alpha2:"ALPHA2_FMT, ALPHA2_ARG(param->country_ent.alpha2)); + else { + if (param->channel_plan == RTW_CHPLAN_UNSPECIFIED) + pos += snprintf(pos, buf_len - (pos - buf), "chplan:NA"); + else + pos += snprintf(pos, buf_len - (pos - buf), "chplan:0x%02X", param->channel_plan); + + #if CONFIG_IEEE80211_BAND_6GHZ + if (param->channel_plan_6g == RTW_CHPLAN_6G_UNSPECIFIED) + pos += snprintf(pos, buf_len - (pos - buf), " chplan_6g:NA"); + else + pos += snprintf(pos, buf_len - (pos - buf), " chplan_6g:0x%02X", param->channel_plan_6g); + #endif + } +} + +#ifdef CONFIG_80211D +static bool rtw_chplan_rtk_priv_req_prehdl_country_ie(_adapter *adapter, struct SetChannelPlan_param *param, const char *caller) +{ + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + int i; + bool effected = 1; + +#ifdef CONFIG_RTW_DEBUG + if (rtw_drv_log_level >= _DRV_DEBUG_) { + RTW_PRINT("%s cisr before\n", caller); + dump_country_ie_slave_records(RTW_DBGDUMP, rfctl, 0); + } +#endif + + if (param->inr == RTW_REGD_SET_BY_USER + && rfctl->effected_cisr_id != CONFIG_IFACE_NUMBER + ) { + /* country IE setting is applied, user setting is only recorded but not applied */ + effected = 0; + goto exit; + } + + if (param->inr == RTW_REGD_SET_BY_COUNTRY_IE) { + struct country_ie_slave_record ori_cisr = rfctl->cisr[adapter->iface_id]; + struct country_ie_slave_record ori_ecisr; + u8 ori_ecisr_id = rfctl->effected_cisr_id; + u8 new_ecisr_id = CONFIG_IFACE_NUMBER; + u8 status_score[] = { /* conservative policy */ + [COUNTRY_IE_SLAVE_UNKNOWN] = 3, + [COUNTRY_IE_SLAVE_OPCH_NOEXIST] = 2, + [COUNTRY_IE_SLAVE_APPLICABLE] = 1, + }; + char buf[32]; + + if (_rtw_memcmp(&rfctl->cisr[adapter->iface_id], ¶m->cisr, sizeof(param->cisr)) == _TRUE) { + /* record no change */ + effected = 0; + goto exit; + } + + if (ori_ecisr_id != CONFIG_IFACE_NUMBER) + _rtw_memcpy(&ori_ecisr, &rfctl->cisr[ori_ecisr_id], sizeof(ori_ecisr)); + + _rtw_memcpy(&rfctl->cisr[adapter->iface_id], ¶m->cisr, sizeof(param->cisr)); + if ((ori_cisr.status == COUNTRY_IE_SLAVE_NOCOUNTRY + && rfctl->cisr[adapter->iface_id].status == COUNTRY_IE_SLAVE_NOCOUNTRY) + || (ori_cisr.status == COUNTRY_IE_SLAVE_UNKNOWN + && rfctl->cisr[adapter->iface_id].status == COUNTRY_IE_SLAVE_UNKNOWN) + ) { + /* will take no effect */ + effected = 0; + goto exit; + } + + for (i = 0; i < CONFIG_IFACE_NUMBER; i++) { + if (rfctl->cisr[i].status == COUNTRY_IE_SLAVE_NOCOUNTRY) + continue; + if (new_ecisr_id == CONFIG_IFACE_NUMBER + /* high score */ + || status_score[rfctl->cisr[i].status] > status_score[rfctl->cisr[new_ecisr_id].status] + /* same score, prefer the same alpha2 as current effected(same score) one */ + || (status_score[rfctl->cisr[i].status] == status_score[rfctl->cisr[new_ecisr_id].status] + && ori_ecisr_id != CONFIG_IFACE_NUMBER + && rfctl->cisr[ori_ecisr_id].status == rfctl->cisr[new_ecisr_id].status + && _rtw_memcmp(rfctl->cisr[ori_ecisr_id].alpha2, rfctl->cisr[new_ecisr_id].alpha2, 2) == _FALSE + && _rtw_memcmp(rfctl->cisr[ori_ecisr_id].alpha2, rfctl->cisr[i].alpha2, 2) == _TRUE) + ) + new_ecisr_id = i; + } + + rfctl->effected_cisr_id = new_ecisr_id; + + if (rfctl->effected_cisr_id == CONFIG_IFACE_NUMBER) { + /* no country IE setting */ + const char *alpha2; + + if (strncmp(rfctl->user_alpha2, "\x00\x00", 2) != 0) { + /* restore to user setting */ + param->inr = RTW_REGD_SET_BY_USER; + alpha2 = rfctl->user_alpha2; + param->channel_plan = rfctl->user_ChannelPlan; + #if CONFIG_IEEE80211_BAND_6GHZ + param->channel_plan_6g = rfctl->user_chplan_6g; + #endif + } else { + /* restore to init setting */ + param->inr = RTW_REGD_SET_BY_INIT; + alpha2 = rfctl->init_alpha2; + param->channel_plan = rfctl->init_ChannelPlan; + #if CONFIG_IEEE80211_BAND_6GHZ + param->channel_plan_6g = rfctl->init_chplan_6g; + #endif + } + + if (IS_ALPHA2_UNSPEC(alpha2) || IS_ALPHA2_WORLDWIDE(alpha2)) + param->has_country = 0; + else if (rtw_get_chplan_from_country(alpha2, ¶m->country_ent)) { + param->channel_plan = param->country_ent.chplan; + #if CONFIG_IEEE80211_BAND_6GHZ + param->channel_plan_6g = param->country_ent.chplan_6g; + #endif + param->has_country = 1; + } else { + RTW_WARN("%s unexpected country_code:\"%c%c\", set to \"00\"\n", caller, alpha2[0], alpha2[1]); + rtw_warn_on(1); + rtw_get_chplan_worldwide(¶m->country_ent); + param->channel_plan = param->country_ent.chplan; + #if CONFIG_IEEE80211_BAND_6GHZ + param->channel_plan_6g = param->country_ent.chplan_6g; + #endif + param->has_country = 1; + } + param->has_cisr = 0; + + get_str_of_set_chplan_keys(buf, 32, param); + RTW_INFO("%s restore inr:%s %s\n", caller, regd_inr_str(param->inr), buf); + } + else { + /* has country IE setting */ + if (ori_ecisr_id != CONFIG_IFACE_NUMBER) { + /* has country IE setting originally */ + if (_rtw_memcmp(&ori_ecisr, &rfctl->cisr[new_ecisr_id], sizeof(ori_ecisr)) == _TRUE) { + /* same record content, no effect */ + effected = 0; + goto exit; + } + } + rtw_get_chplan_from_cisrs(rfctl, ¶m->country_ent, caller); + param->channel_plan = param->country_ent.chplan; + #if CONFIG_IEEE80211_BAND_6GHZ + param->channel_plan_6g = param->country_ent.chplan_6g; + #endif + param->has_country = 1; + param->has_cisr = 0; + + get_str_of_set_chplan_keys(buf, 32, param); + RTW_INFO("%s trigger inr:%s %s\n", caller, regd_inr_str(param->inr), buf); + } + } + +exit: +#ifdef CONFIG_RTW_DEBUG + if (rtw_drv_log_level >= _DRV_DEBUG_) { + RTW_PRINT("%s cisr after\n", caller); + dump_country_ie_slave_records(RTW_DBGDUMP, rfctl, 0); + } +#endif + + return effected; +} +#endif /* CONFIG_80211D */ + +static bool rtw_chplan_rtk_priv_req_prehdl_domain_code(_adapter *adapter, struct SetChannelPlan_param *param, const char *caller) +{ + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + + /* disallow invalid input */ + if ((param->channel_plan != RTW_CHPLAN_UNSPECIFIED + && !rtw_is_channel_plan_valid(param->channel_plan)) + ) { + RTW_WARN("%s invalid chplan:0x%02X\n", caller, param->channel_plan); + return _FAIL; + } + + #if CONFIG_IEEE80211_BAND_6GHZ + if (param->channel_plan_6g != RTW_CHPLAN_6G_UNSPECIFIED + && !rtw_is_channel_plan_6g_valid(param->channel_plan_6g) + ) { + RTW_WARN("%s invalid chplan_6g:0x%02X\n", caller, param->channel_plan_6g); + return _FAIL; + } + #endif + + /* use original value when unspecified */ + if (param->channel_plan == RTW_CHPLAN_UNSPECIFIED) + param->channel_plan = rfctl->ChannelPlan; + #if CONFIG_IEEE80211_BAND_6GHZ + if (param->channel_plan_6g == RTW_CHPLAN_6G_UNSPECIFIED) + param->channel_plan_6g = rfctl->chplan_6g; + #endif + + return _SUCCESS; +} + +static void rtw_chplan_rtk_priv_req_prehdl_country_ent(struct SetChannelPlan_param *param) +{ + if (!param->has_country) { + u8 chplan_6g = RTW_CHPLAN_6G_NULL; + + #if CONFIG_IEEE80211_BAND_6GHZ + chplan_6g = param->channel_plan_6g; + #endif + + if (rtw_chplan_ids_is_world_wide(param->channel_plan, chplan_6g)) + rtw_get_chplan_worldwide(¶m->country_ent); + else { + SET_UNSPEC_ALPHA2(param->country_ent.alpha2); + param->country_ent.edcca_mode_2g_override = RTW_EDCCA_DEF; + #if CONFIG_IEEE80211_BAND_5GHZ + param->country_ent.edcca_mode_5g_override = RTW_EDCCA_DEF; + #endif + #if CONFIG_IEEE80211_BAND_6GHZ + param->country_ent.edcca_mode_6g_override = RTW_EDCCA_DEF; + #endif + param->country_ent.txpwr_lmt_override = TXPWR_LMT_DEF; + #if defined(CONFIG_80211AX_HE) || defined(CONFIG_80211AC_VHT) + param->country_ent.proto_en = CHPLAN_PROTO_EN_ALL; + #endif + } + param->has_country = 1; + } +} + +u8 rtw_set_chplan_hdl(_adapter *padapter, unsigned char *pbuf) +{ + struct SetChannelPlan_param *param; struct rf_ctl_t *rfctl = adapter_to_rfctl(padapter); + bool effected = 1; + char buf[32]; + enum rtw_regd_inr ori_inr; +#ifdef CONFIG_IOCTL_CFG80211 + struct get_chplan_resp *chplan; +#endif if (!pbuf) return H2C_PARAMETERS_ERROR; - setChannelPlan_param = (struct SetChannelPlan_param *)pbuf; + param = (struct SetChannelPlan_param *)pbuf; + ori_inr = param->inr; - if (!rtw_is_channel_plan_valid(setChannelPlan_param->channel_plan)) - return H2C_PARAMETERS_ERROR; + get_str_of_set_chplan_keys(buf, 32, param); + RTW_INFO("%s iface_id:%u src:%s inr:%s %s\n", __func__, padapter->iface_id + , regd_src_str(param->regd_src), regd_inr_str(param->inr), buf); - rfctl->country_ent = setChannelPlan_param->country_ent; - rfctl->ChannelPlan = setChannelPlan_param->channel_plan; + /* check input parameter */ + if (param->regd_src == REGD_SRC_RTK_PRIV) { + #ifdef CONFIG_80211D + effected = rtw_chplan_rtk_priv_req_prehdl_country_ie(padapter, param, __func__); + #endif - rfctl->max_chan_nums = init_channel_set(padapter, rfctl->ChannelPlan, rfctl->channel_set); - init_channel_list(padapter, rfctl->channel_set, &rfctl->channel_list); + if (rtw_chplan_rtk_priv_req_prehdl_domain_code(padapter, param, __func__) != _SUCCESS) + return H2C_PARAMETERS_ERROR; + + rtw_chplan_rtk_priv_req_prehdl_country_ent(param); + } + + rtw_warn_on(!param->has_country); + + if (param->inr == RTW_REGD_SET_BY_USER) { + rfctl->user_alpha2[0] = param->country_ent.alpha2[0]; + rfctl->user_alpha2[1] = param->country_ent.alpha2[1]; + rfctl->user_ChannelPlan = param->channel_plan; + #if CONFIG_IEEE80211_BAND_6GHZ + rfctl->user_chplan_6g = param->channel_plan_6g; + #endif + } + + if (!effected) + goto exit; + + rfctl->regd_src = param->regd_src; + rfctl->regd_inr = param->inr; + rfctl->alpha2[0] = param->country_ent.alpha2[0]; + rfctl->alpha2[1] = param->country_ent.alpha2[1]; + rfctl->edcca_mode_2g_override = param->country_ent.edcca_mode_2g_override; +#if CONFIG_IEEE80211_BAND_5GHZ + rfctl->edcca_mode_5g_override = param->country_ent.edcca_mode_5g_override; +#endif +#if CONFIG_IEEE80211_BAND_6GHZ + rfctl->edcca_mode_6g_override = param->country_ent.edcca_mode_6g_override; +#endif +#if CONFIG_TXPWR_LIMIT + rfctl->txpwr_lmt_override = param->country_ent.txpwr_lmt_override; +#endif +#if defined(CONFIG_80211AX_HE) || defined(CONFIG_80211AC_VHT) + rfctl->proto_en = param->country_ent.proto_en; +#endif + + rfctl->ChannelPlan = param->channel_plan; +#if CONFIG_IEEE80211_BAND_6GHZ + rfctl->chplan_6g = param->channel_plan_6g; +#endif + +#if CONFIG_TXPWR_LIMIT rtw_txpwr_init_regd(rfctl); +#endif - rtw_hal_set_odm_var(padapter, HAL_ODM_REGULATION, NULL, _TRUE); + rtw_edcca_mode_update(rfctl_to_dvobj(rfctl)); + rtw_odm_adaptivity_update(rfctl_to_dvobj(rfctl)); + + rtw_rfctl_chplan_init(padapter); #ifdef CONFIG_IOCTL_CFG80211 - rtw_regd_apply_flags(adapter_to_wiphy(padapter)); + if (rfctl->regd_src != REGD_SRC_OS) + rtw_chset_hook_os_channels(rfctl); + + if (rtw_get_chplan_cmd(padapter, RTW_CMDF_DIRECTLY, &chplan) == _SUCCESS) { + if (!param->rtnl_lock_needed) + rtw_regd_change_complete_sync(adapter_to_wiphy(padapter), chplan, 0); + else + rtw_warn_on(rtw_regd_change_complete_async(adapter_to_wiphy(padapter), chplan) != _SUCCESS); + } else + rtw_warn_on(1); #endif + rtw_nlrtw_reg_change_event(padapter); + + #ifdef CONFIG_LPS + LPS_Leave(padapter, "SET_CHPLAN"); + #endif + + if (GET_HAL_DATA(padapter)->txpwr_limit_loaded + && rtw_get_hw_init_completed(padapter)) + rtw_hal_update_txpwr_level(padapter); + +exit: + return H2C_SUCCESS; +} + +u8 rtw_get_chplan_hdl(_adapter *padapter, unsigned char *pbuf) +{ + struct get_channel_plan_param *param; + struct get_chplan_resp *chplan; + struct rf_ctl_t *rfctl; + int i; + + if (!pbuf) + return H2C_PARAMETERS_ERROR; + + rfctl = adapter_to_rfctl(padapter); + param = (struct get_channel_plan_param *)pbuf; + + chplan = rtw_vmalloc(sizeof(struct get_chplan_resp) + sizeof(RT_CHANNEL_INFO) * rfctl->max_chan_nums); + if (!chplan) + return H2C_CMD_FAIL; + + chplan->regd_src = rfctl->regd_src; + chplan->regd_inr = rfctl->regd_inr; + + chplan->alpha2[0] = rfctl->alpha2[0]; + chplan->alpha2[1] = rfctl->alpha2[1]; + + chplan->channel_plan = rfctl->ChannelPlan; +#if CONFIG_IEEE80211_BAND_6GHZ + chplan->chplan_6g = rfctl->chplan_6g; +#endif +#if CONFIG_TXPWR_LIMIT + for (i = 0; i < BAND_MAX; i++) + chplan->txpwr_lmt_name[i] = rfctl->txpwr_lmt_name[i]; +#endif + chplan->edcca_mode_2g = rfctl->edcca_mode_2g; +#if CONFIG_IEEE80211_BAND_5GHZ + chplan->edcca_mode_5g = rfctl->edcca_mode_5g; +#endif +#if CONFIG_IEEE80211_BAND_6GHZ + chplan->edcca_mode_6g = rfctl->edcca_mode_6g; +#endif +#ifdef CONFIG_DFS_MASTER + chplan->dfs_domain = rtw_rfctl_get_dfs_domain(rfctl); +#endif + + chplan->proto_en = 0 + #if defined(CONFIG_80211AX_HE) || defined(CONFIG_80211AC_VHT) + | rfctl->proto_en + #endif + ; + + chplan->chset_num = rfctl->max_chan_nums; + _rtw_memcpy(chplan->chset, rfctl->channel_set, sizeof(RT_CHANNEL_INFO) * rfctl->max_chan_nums); + *param->chplan = chplan; + return H2C_SUCCESS; } @@ -16976,6 +17859,41 @@ u8 led_blink_hdl(_adapter *padapter, unsigned char *pbuf) return H2C_SUCCESS; } +void csa_timer_hdl(void *FunctionContext) +{ + _adapter *padapter = (_adapter *)FunctionContext; + struct dvobj_priv *dvobj = adapter_to_dvobj(padapter); + struct rf_ctl_t *rfctl = dvobj_to_rfctl(dvobj); + u8 i; + + for (i = 0; i < dvobj->iface_nums; i++) { + _adapter *iface; + iface = dvobj->padapters[i]; + if (!iface) + continue; + if (check_fwstate(&(iface->mlmepriv), WIFI_CSA_UPDATE_BEACON)) { + clr_fwstate(&(iface->mlmepriv), WIFI_CSA_UPDATE_BEACON); + RTW_INFO(FUNC_ADPT_FMT" wait beacons more than 70 seconds\n", FUNC_ADPT_ARG(iface)); + return; + } + } + + if (rfctl->csa_ch == 0) { + RTW_INFO("channel switch done\n"); + return ; + } + + /* channel switch */ + if (rtw_set_csa_cmd(padapter) != _SUCCESS) { + rfctl->csa_ch = 0; + rfctl->csa_switch_cnt = 0; + rfctl->csa_ch_offset = 0; + rfctl->csa_ch_width = 0; + rfctl->csa_ch_freq_seg0 = 0; + rfctl->csa_ch_freq_seg1 = 0; + } +} + u8 set_csa_hdl(_adapter *adapter, unsigned char *pbuf) { #if CONFIG_DFS @@ -16987,6 +17905,26 @@ u8 set_csa_hdl(_adapter *adapter, unsigned char *pbuf) return H2C_SUCCESS; } +u8 set_ap_csa_hdl(_adapter *adapter, unsigned char *pbuf) +{ +#ifdef CONFIG_AP_MODE + struct dvobj_priv *dvobj = adapter_to_dvobj(adapter); + u8 ifbmp_m = rtw_mi_get_ap_mesh_ifbmp(adapter); + u8 enable = 1; + int i; + _adapter *iface; + + for (i = 0; i < dvobj->iface_nums; i++) { + iface = dvobj->padapters[i]; + if (!iface || !(ifbmp_m & BIT(iface->iface_id))) + continue; + RTW_INFO("%s, HW_VAR_BCN_EARLY_C2H_RPT enable=%d\n", __FUNCTION__, enable); + rtw_hal_set_hwreg(iface, HW_VAR_BCN_EARLY_C2H_RPT, &enable); + } +#endif + return H2C_SUCCESS; +} + u8 tdls_hdl(_adapter *padapter, unsigned char *pbuf) { #ifdef CONFIG_TDLS @@ -17005,7 +17943,7 @@ u8 tdls_hdl(_adapter *padapter, unsigned char *pbuf) struct tdls_txmgmt txmgmt; u32 setchtime, resp_sleep = 0, wait_time; u8 zaddr[ETH_ALEN] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - u8 ret = H2C_SUCCESS; + u8 ret; u8 doiqk; u64 tx_ra_bitmap = 0; @@ -17034,12 +17972,7 @@ u8 tdls_hdl(_adapter *padapter, unsigned char *pbuf) u8 sta_band = 0; /* leave ALL PS when TDLS is established */ - if (_FAIL == rtw_pwr_wakeup(padapter)) { - RTW_INFO("%s(): rtw_pwr_wakeup fail !!!\n", __func__); - rtw_tdls_cmd(padapter, ptdls_sta->cmn.mac_addr, TDLS_TEARDOWN_STA); - ret = H2C_REJECTED; - break; - } + rtw_pwr_wakeup(padapter); rtw_hal_rcr_set_chk_bssid(padapter, MLME_TDLS_LINKED); RTW_INFO("Created Direct Link with "MAC_FMT"\n", MAC_ARG(ptdls_sta->cmn.mac_addr)); @@ -17097,8 +18030,7 @@ u8 tdls_hdl(_adapter *padapter, unsigned char *pbuf) issue_nulldata(padapter, NULL, 1, 3, 3); RTW_INFO("[TDLS ] issue tdls channel switch response\n"); - ret = (issue_tdls_ch_switch_rsp(padapter, &txmgmt, _TRUE) == _SUCCESS) ? - H2C_SUCCESS : H2C_REJECTED; + ret = issue_tdls_ch_switch_rsp(padapter, &txmgmt, _TRUE); /* If we receive TDLS_CH_SW_REQ at off channel which it's target is AP's channel */ /* then we just switch to AP's channel*/ @@ -17107,7 +18039,7 @@ u8 tdls_hdl(_adapter *padapter, unsigned char *pbuf) break; } - if (ret == H2C_SUCCESS) + if (ret == _SUCCESS) rtw_tdls_cmd(padapter, ptdls_sta->cmn.mac_addr, TDLS_CH_SW_TO_OFF_CHNL); else RTW_INFO("[TDLS] issue_tdls_ch_switch_rsp wait ack fail !!!!!!!!!!\n"); @@ -17124,7 +18056,11 @@ u8 tdls_hdl(_adapter *padapter, unsigned char *pbuf) rtw_hal_set_hwreg(padapter, HW_VAR_DO_IQK, &doiqk); /* switch back to base-chnl */ + doiqk = _TRUE; + rtw_hal_set_hwreg(padapter, HW_VAR_DO_IQK, &doiqk); set_channel_bwmode(padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_offset, pmlmeext->cur_bwmode); + doiqk = _FALSE; + rtw_hal_set_hwreg(padapter, HW_VAR_DO_IQK, &doiqk); rtw_tdls_cmd(padapter, ptdls_sta->cmn.mac_addr, TDLS_CH_SW_START); @@ -17204,9 +18140,13 @@ u8 tdls_hdl(_adapter *padapter, unsigned char *pbuf) rtw_hal_rcr_set_chk_bssid(padapter, MLME_TDLS_NOLINK); break; case TDLS_TEARDOWN_STA: + case TDLS_TEARDOWN_STA_TOOFAR: case TDLS_TEARDOWN_STA_NO_WAIT: _rtw_memset(&txmgmt, 0x00, sizeof(struct tdls_txmgmt)); - txmgmt.status_code = _RSON_TDLS_TEAR_UN_RSN_; + if (option == TDLS_TEARDOWN_STA_TOOFAR) + txmgmt.status_code = _RSON_TDLS_TEAR_TOOFAR_; + else + txmgmt.status_code = _RSON_TDLS_TEAR_UN_RSN_; _rtw_memcpy(txmgmt.peer, ptdls_sta->cmn.mac_addr, ETH_ALEN); issue_tdls_teardown(padapter, &txmgmt, (option == TDLS_TEARDOWN_STA) ? _TRUE : _FALSE); @@ -17237,7 +18177,7 @@ u8 tdls_hdl(_adapter *padapter, unsigned char *pbuf) /* _exit_critical_bh(&(ptdlsinfo->hdl_lock), &irqL); */ - return ret; + return H2C_SUCCESS; #else return H2C_REJECTED; #endif /* CONFIG_TDLS */ @@ -17320,3 +18260,24 @@ exit: #endif /* CONFIG_IOCTL_CFG80211 */ } +/* Needs to confirm with FW the value of REG_RX_BEACON_LENGTH */ +u8 rtw_write_bcnlen_hdl(_adapter *padapter, u8 *pbuf) +{ +#ifdef CONFIG_WRITE_BCN_LEN_TO_FW + struct write_bcnlen_param *parm = (struct write_bcnlen_param *)pbuf; + u16 bcn_len = parm->bcn_len; + + rtw_write16(padapter, REG_RX_BEACON_LENGTH + 2, bcn_len); +#endif + return H2C_SUCCESS; +} + +u8 rtw_reqtxrpt_cmd_hdl(_adapter *adapter, u8 *pbuf) +{ + struct reqtxrpt_param *parm = (struct reqtxrpt_param *)pbuf; + + rtw_hal_reqtxrpt(adapter, parm->macid); + + return H2C_SUCCESS; +} + diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_mp.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_mp.c old mode 100644 new mode 100755 index acfe70fd..0c5b11e4 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_mp.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_mp.c @@ -123,6 +123,7 @@ static void _init_mp_priv_(struct mp_priv *pmp_priv) pmp_priv->prime_channel_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE; pmp_priv->rateidx = RATE_1M; pmp_priv->txpoweridx = 0x2A; + pmp_priv->txpower_dbm_offset = 0; pmp_priv->antenna_tx = ANTENNA_A; pmp_priv->antenna_rx = ANTENNA_AB; @@ -237,6 +238,8 @@ s32 init_mp_priv(PADAPTER padapter) pmppriv->pktInterval = 0; pmppriv->pktLength = 1000; pmppriv->bprocess_mp_mode = _FALSE; + pmppriv->efuse_update_file= _FALSE; + pmppriv->efuse_update_on = _FALSE; mp_init_xmit_attrib(&pmppriv->tx, padapter); @@ -392,7 +395,14 @@ void mpt_InitHWConfig(PADAPTER Adapter) PlatformEFIOWrite2Byte(Adapter, REG_RXFLTMAP1_8814B, 0x2000); } #endif - +#if defined(CONFIG_RTL8723F) + /* todo: 8723F not verify yet */ + else if (IS_HARDWARE_TYPE_8723F(Adapter)) { + /* 8723F mac is similar with 8723D, + * but can't find 8723D here. + */ + } +#endif } static void PHY_IQCalibrate(PADAPTER padapter, u8 bReCovery) @@ -517,6 +527,10 @@ static void PHY_SetRFPathSwitch(PADAPTER padapter , BOOLEAN bMain) { } else if (IS_HARDWARE_TYPE_8814B(padapter)) { #ifdef CONFIG_RTL8814B /* phy_set_rf_path_switch_8814b(phydm, bMain); */ +#endif + } else if (IS_HARDWARE_TYPE_8723F(padapter)) { +#ifdef CONFIG_RTL8723F + phy_set_rf_path_switch_8723f(phydm, bMain); #endif } } @@ -1004,6 +1018,8 @@ void mp_stop_test(PADAPTER padapter) struct mp_priv *pmppriv = &padapter->mppriv; struct mlme_priv *pmlmepriv = &padapter->mlmepriv; struct wlan_network *tgt_network = &pmlmepriv->cur_network; + struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; + struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info; struct sta_info *psta; #ifdef CONFIG_PCI_HCI struct registry_priv *registry_par = &padapter->registrypriv; @@ -1036,6 +1052,8 @@ void mp_stop_test(PADAPTER padapter) _clr_fwstate_(pmlmepriv, WIFI_MP_STATE); + pmlmeinfo->state = WIFI_FW_NULL_STATE; + end_of_mp_stop_test: _exit_critical_bh(&pmlmepriv->lock, &irqL); @@ -1282,7 +1300,7 @@ static struct xmit_frame *alloc_mp_xmitframe(struct xmit_priv *pxmitpriv) struct xmit_frame *pmpframe; struct xmit_buf *pxmitbuf; - pmpframe = rtw_alloc_xmitframe(pxmitpriv); + pmpframe = rtw_alloc_xmitframe(pxmitpriv, 0); if (pmpframe == NULL) return NULL; @@ -2005,6 +2023,11 @@ void SetPacketTx(PADAPTER padapter) rtl8814b_prepare_mp_txdesc(padapter, pmp_priv); #endif /* CONFIG_RTL8814B */ +#if defined(CONFIG_RTL8723F) + if (IS_HARDWARE_TYPE_8723F(padapter)) + rtl8723f_prepare_mp_txdesc(padapter, pmp_priv); +#endif /* CONFIG_RTL8723F */ + /* 3 4. make wlan header, make_wlanhdr() */ hdr = (struct rtw_ieee80211_hdr *)pkt_start; set_frame_sub_type(&hdr->frame_ctl, pattrib->subtype); @@ -2124,6 +2147,7 @@ void SetPacketRx(PADAPTER pAdapter, u8 bStartRx, u8 bAB) pHalData->ReceiveConfig |= RCR_APP_PHYST_RXFF; #if defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8822C) +/* todo: 8723F */ write_bbreg(pAdapter, 0x550, BIT3, bEnable); #endif rtw_write16(pAdapter, REG_RXFLTMAP0, 0xFFEF); /* REG_RXFLTMAP0 (RX Filter Map Group 0) */ @@ -2365,7 +2389,9 @@ static u32 rtw_GetPSDData(PADAPTER pAdapter, u32 point) { u32 psd_val = 0; -#if defined(CONFIG_RTL8812A) || defined(CONFIG_RTL8821A) || defined(CONFIG_RTL8814A) || defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8822C) +#if defined(CONFIG_RTL8812A) || defined(CONFIG_RTL8821A) || defined(CONFIG_RTL8814A) \ + || defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) + u16 psd_reg = 0x910; u16 psd_regL = 0xF44; #else @@ -2440,12 +2466,12 @@ u32 mp_query_psd(PADAPTER pAdapter, u8 *data) data[0] = '\0'; pdata = data; - if (psd_stop > 1536 || psd_stop < 1) { + if (psd_stop > 1920 || psd_stop < 1) { rtw_warn_on(1); - psd_stop = 1536; + psd_stop = 1920; } - if (IS_HARDWARE_TYPE_8822C(pAdapter)) { + if (IS_HARDWARE_TYPE_8822C(pAdapter) || IS_HARDWARE_TYPE_8723F(pAdapter)) { u32 *psdbuf = rtw_zmalloc(sizeof(u32)*256); if (psdbuf == NULL) { diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_odm.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_odm.c index 8a358162..cd2e5bbb 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_odm.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_odm.c @@ -71,6 +71,7 @@ void rtw_odm_adaptivity_ver_msg(void *sel, _adapter *adapter) #define RTW_ADAPTIVITY_EN_DISABLE 0 #define RTW_ADAPTIVITY_EN_ENABLE 1 +#define RTW_ADAPTIVITY_EN_AUTO 2 void rtw_odm_adaptivity_en_msg(void *sel, _adapter *adapter) { @@ -82,6 +83,8 @@ void rtw_odm_adaptivity_en_msg(void *sel, _adapter *adapter) _RTW_PRINT_SEL(sel, "DISABLE\n"); else if (regsty->adaptivity_en == RTW_ADAPTIVITY_EN_ENABLE) _RTW_PRINT_SEL(sel, "ENABLE\n"); + else if (regsty->adaptivity_en == RTW_ADAPTIVITY_EN_AUTO) + _RTW_PRINT_SEL(sel, "AUTO\n"); else _RTW_PRINT_SEL(sel, "INVALID\n"); } @@ -93,6 +96,9 @@ void rtw_odm_adaptivity_mode_msg(void *sel, _adapter *adapter) { struct registry_priv *regsty = &adapter->registrypriv; + if (regsty->adaptivity_en != RTW_ADAPTIVITY_EN_ENABLE) + return; + RTW_PRINT_SEL(sel, "RTW_ADAPTIVITY_MODE_"); if (regsty->adaptivity_mode == RTW_ADAPTIVITY_MODE_NORMAL) @@ -115,12 +121,34 @@ bool rtw_odm_adaptivity_needed(_adapter *adapter) struct registry_priv *regsty = &adapter->registrypriv; bool ret = _FALSE; - if (regsty->adaptivity_en == RTW_ADAPTIVITY_EN_ENABLE) + if (regsty->adaptivity_en) ret = _TRUE; return ret; } +void rtw_odm_adaptivity_update(struct dvobj_priv *dvobj) +{ + HAL_DATA_TYPE *hal_data = GET_HAL_DATA(dvobj_get_primary_adapter(dvobj)); + struct rf_ctl_t *rfctl = dvobj_to_rfctl(dvobj); + struct dm_struct *odm = dvobj_to_phydm(dvobj); + u8 edcca_mode = RTW_EDCCA_NORMAL; + + if (hal_data->current_band_type == BAND_ON_2_4G) + edcca_mode = rfctl->edcca_mode_2g; + #if CONFIG_IEEE80211_BAND_5GHZ + else if (hal_data->current_band_type == BAND_ON_5G) + edcca_mode = rfctl->edcca_mode_5g; + #endif + #if CONFIG_IEEE80211_BAND_6GHZ + else if (hal_data->current_band_type == BAND_ON_6G) + edcca_mode = rfctl->edcca_mode_6g; + #endif + + rfctl->adaptivity_en = (edcca_mode == RTW_EDCCA_NORMAL || edcca_mode == RTW_EDCCA_MODE_NUM) ? 0 : 1; + phydm_adaptivity_info_init(odm, PHYDM_ADAPINFO_CARRIER_SENSE_ENABLE, edcca_mode == RTW_EDCCA_CS ? TRUE : FALSE); +} + void rtw_odm_adaptivity_parm_msg(void *sel, _adapter *adapter) { struct dm_struct *odm = adapter_to_phydm(adapter); @@ -160,6 +188,7 @@ void rtw_odm_acquirespinlock(_adapter *adapter, enum rt_spinlock_type type) switch (type) { case RT_IQK_SPINLOCK: _enter_critical_bh(&pHalData->IQKSpinLock, &irqL); + break; default: break; } @@ -173,29 +202,15 @@ void rtw_odm_releasespinlock(_adapter *adapter, enum rt_spinlock_type type) switch (type) { case RT_IQK_SPINLOCK: _exit_critical_bh(&pHalData->IQKSpinLock, &irqL); + break; default: break; } } -inline u8 rtw_odm_get_dfs_domain(struct dvobj_priv *dvobj) +s16 rtw_odm_get_tx_power_mbm(struct dm_struct *dm, u8 rfpath, u8 rate, u8 bw, u8 cch) { -#ifdef CONFIG_DFS_MASTER - struct dm_struct *pDM_Odm = dvobj_to_phydm(dvobj); - - return pDM_Odm->dfs_region_domain; -#else - return PHYDM_DFS_DOMAIN_UNKNOWN; -#endif -} - -inline u8 rtw_odm_dfs_domain_unknown(struct dvobj_priv *dvobj) -{ -#ifdef CONFIG_DFS_MASTER - return rtw_odm_get_dfs_domain(dvobj) == PHYDM_DFS_DOMAIN_UNKNOWN; -#else - return 1; -#endif + return phy_get_txpwr_single_mbm(dm->adapter, rfpath, mgn_rate_to_rs(rate), rate, bw, cch, 0, 0, 0, NULL); } #ifdef CONFIG_DFS_MASTER @@ -220,6 +235,20 @@ inline BOOLEAN rtw_odm_radar_detect(_adapter *adapter) return phydm_radar_detect(adapter_to_phydm(adapter)); } +static enum phydm_dfs_region_domain _rtw_dfs_regd_to_phydm[] = { + [RTW_DFS_REGD_NONE] = PHYDM_DFS_DOMAIN_UNKNOWN, + [RTW_DFS_REGD_FCC] = PHYDM_DFS_DOMAIN_FCC, + [RTW_DFS_REGD_MKK] = PHYDM_DFS_DOMAIN_MKK, + [RTW_DFS_REGD_ETSI] = PHYDM_DFS_DOMAIN_ETSI, +}; + +#define rtw_dfs_regd_to_phydm(region) (((region) >= RTW_DFS_REGD_NUM) ? _rtw_dfs_regd_to_phydm[RTW_DFS_REGD_NONE] : _rtw_dfs_regd_to_phydm[(region)]) + +void rtw_odm_update_dfs_region(struct dvobj_priv *dvobj) +{ + odm_cmn_info_init(dvobj_to_phydm(dvobj), ODM_CMNINFO_DFS_REGION_DOMAIN, rtw_dfs_regd_to_phydm(rtw_rfctl_get_dfs_domain(dvobj_to_rfctl(dvobj)))); +} + inline u8 rtw_odm_radar_detect_polling_int_ms(struct dvobj_priv *dvobj) { return phydm_dfs_polling_time(dvobj_to_phydm(dvobj)); diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_p2p.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_p2p.c index 65b5eb1d..61eba1d4 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_p2p.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_p2p.c @@ -2287,6 +2287,7 @@ u32 process_assoc_req_p2p_ie(struct wifidirect_info *pwdinfo, u8 *pframe, uint l while (p2p_ie) { /* Check P2P Capability ATTR */ + attr_contentlen = sizeof(cap_attr); if (rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_CAPABILITY, (u8 *)&cap_attr, (uint *) &attr_contentlen)) { RTW_INFO("[%s] Got P2P Capability Attr!!\n", __FUNCTION__); cap_attr = le16_to_cpu(cap_attr); @@ -2304,7 +2305,6 @@ u32 process_assoc_req_p2p_ie(struct wifidirect_info *pwdinfo, u8 *pframe, uint l u8 num_of_secdev_type; u16 dev_name_len; - rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_DEVICE_INFO , pattr_content, (uint *)&attr_contentlen); _rtw_memcpy(psta->dev_addr, pattr_content, ETH_ALEN);/* P2P Device Address */ @@ -2384,10 +2384,11 @@ u32 process_p2p_devdisc_req(struct wifidirect_info *pwdinfo, u8 *pframe, uint le u8 dev_addr[ETH_ALEN] = { 0x00 }; u32 attr_contentlen = 0; + attr_contentlen = sizeof(groupid); if (rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_GROUP_ID, groupid, &attr_contentlen)) { if (_rtw_memcmp(pwdinfo->device_addr, groupid, ETH_ALEN) && _rtw_memcmp(pwdinfo->p2p_group_ssid, groupid + ETH_ALEN, pwdinfo->p2p_group_ssid_len)) { - attr_contentlen = 0; + attr_contentlen = sizeof(dev_addr); if (rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_DEVICE_ID, dev_addr, &attr_contentlen)) { _irqL irqL; _list *phead, *plist; @@ -2455,6 +2456,7 @@ u8 process_p2p_provdisc_req(struct wifidirect_info *pwdinfo, u8 *pframe, uint l wpsie = rtw_get_wps_ie(frame_body + _PUBLIC_ACTION_IE_OFFSET_, len - _PUBLIC_ACTION_IE_OFFSET_, NULL, &wps_ielen); if (wpsie) { + attr_contentlen = sizeof(uconfig_method); if (rtw_get_wps_attr_content(wpsie, wps_ielen, WPS_ATTR_CONF_METHOD , (u8 *) &uconfig_method, &attr_contentlen)) { uconfig_method = be16_to_cpu(uconfig_method); switch (uconfig_method) { @@ -2552,6 +2554,7 @@ u8 process_p2p_group_negotation_req(struct wifidirect_info *pwdinfo, u8 *pframe, /* If some device wants to do p2p handshake without sending prov_disc_req */ /* We have to get peer_req_cm from here. */ if (_rtw_memcmp(pwdinfo->rx_prov_disc_info.strconfig_method_desc_of_prov_disc_req, "000", 3)) { + wps_devicepassword_id_len = sizeof(wps_devicepassword_id); rtw_get_wps_attr_content(wpsie, wps_ielen, WPS_ATTR_DEVICE_PWID, (u8 *) &wps_devicepassword_id, &wps_devicepassword_id_len); wps_devicepassword_id = be16_to_cpu(wps_devicepassword_id); @@ -2595,6 +2598,7 @@ u8 process_p2p_group_negotation_req(struct wifidirect_info *pwdinfo, u8 *pframe, rtw_p2p_set_state(pwdinfo, P2P_STATE_GONEGO_ING); /* Check P2P Capability ATTR */ + attr_contentlen = sizeof(cap_attr); if (rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_CAPABILITY, (u8 *)&cap_attr, (uint *)&attr_contentlen)) { cap_attr = le16_to_cpu(cap_attr); @@ -2604,6 +2608,7 @@ u8 process_p2p_group_negotation_req(struct wifidirect_info *pwdinfo, u8 *pframe, #endif /* defined(CONFIG_WFD) && defined(CONFIG_TDLS) */ } + attr_contentlen = sizeof(attr_content); if (rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_GO_INTENT , &attr_content, &attr_contentlen)) { RTW_INFO("[%s] GO Intent = %d, tie = %d\n", __FUNCTION__, attr_content >> 1, attr_content & 0x01); pwdinfo->peer_intent = attr_content; /* include both intent and tie breaker values. */ @@ -2631,17 +2636,19 @@ u8 process_p2p_group_negotation_req(struct wifidirect_info *pwdinfo, u8 *pframe, } } + attr_contentlen = sizeof(listen_ch_attr); if (rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_LISTEN_CH, (u8 *)listen_ch_attr, (uint *) &attr_contentlen) && attr_contentlen == 5) pwdinfo->nego_req_info.peer_ch = listen_ch_attr[4]; RTW_INFO(FUNC_ADPT_FMT" listen channel :%u\n", FUNC_ADPT_ARG(padapter), pwdinfo->nego_req_info.peer_ch); - attr_contentlen = 0; + attr_contentlen = sizeof(pwdinfo->p2p_peer_interface_addr); if (rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_INTENDED_IF_ADDR, pwdinfo->p2p_peer_interface_addr, &attr_contentlen)) { if (attr_contentlen != ETH_ALEN) _rtw_memset(pwdinfo->p2p_peer_interface_addr, 0x00, ETH_ALEN); } + ch_cnt = sizeof(ch_content); if (rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_CH_LIST, ch_content, &ch_cnt)) { peer_ch_num = rtw_p2p_get_peer_ch_list(pwdinfo, ch_content, ch_cnt, peer_ch_list); ch_num_inclusioned = rtw_p2p_ch_inclusion(padapter, peer_ch_list, peer_ch_num, ch_list_inclusioned); @@ -2667,8 +2674,8 @@ u8 process_p2p_group_negotation_req(struct wifidirect_info *pwdinfo, u8 *pframe, #endif /* CONFIG_CONCURRENT_MODE */ { u8 operatingch_info[5] = { 0x00 }, peer_operating_ch = 0; - attr_contentlen = 0; + attr_contentlen = sizeof(operatingch_info); if (rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_OPERATING_CH, operatingch_info, &attr_contentlen)) peer_operating_ch = operatingch_info[4]; @@ -2754,6 +2761,7 @@ u8 process_p2p_group_negotation_resp(struct wifidirect_info *pwdinfo, u8 *pframe while (p2p_ie) { /* Found the P2P IE. */ /* Check P2P Capability ATTR */ + attr_contentlen = sizeof(cap_attr); if (rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_CAPABILITY, (u8 *)&cap_attr, (uint *)&attr_contentlen)) { cap_attr = le16_to_cpu(cap_attr); #ifdef CONFIG_TDLS @@ -2762,6 +2770,7 @@ u8 process_p2p_group_negotation_resp(struct wifidirect_info *pwdinfo, u8 *pframe #endif /* CONFIG_TDLS */ } + attr_contentlen = sizeof(attr_content); rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_STATUS, &attr_content, &attr_contentlen); if (attr_contentlen == 1) { RTW_INFO("[%s] Status = %d\n", __FUNCTION__, attr_content); @@ -2779,7 +2788,7 @@ u8 process_p2p_group_negotation_resp(struct wifidirect_info *pwdinfo, u8 *pframe } /* Try to get the peer's interface address */ - attr_contentlen = 0; + attr_contentlen = sizeof(pwdinfo->p2p_peer_interface_addr); if (rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_INTENDED_IF_ADDR, pwdinfo->p2p_peer_interface_addr, &attr_contentlen)) { if (attr_contentlen != ETH_ALEN) _rtw_memset(pwdinfo->p2p_peer_interface_addr, 0x00, ETH_ALEN); @@ -2787,7 +2796,7 @@ u8 process_p2p_group_negotation_resp(struct wifidirect_info *pwdinfo, u8 *pframe /* Try to get the peer's intent and tie breaker value. */ attr_content = 0x00; - attr_contentlen = 0; + attr_contentlen = sizeof(attr_content); if (rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_GO_INTENT , &attr_content, &attr_contentlen)) { RTW_INFO("[%s] GO Intent = %d, tie = %d\n", __FUNCTION__, attr_content >> 1, attr_content & 0x01); pwdinfo->peer_intent = attr_content; /* include both intent and tie breaker values. */ @@ -2826,13 +2835,14 @@ u8 process_p2p_group_negotation_resp(struct wifidirect_info *pwdinfo, u8 *pframe /* Try to get the operation channel information */ - attr_contentlen = 0; + attr_contentlen = sizeof(operatingch_info); if (rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_OPERATING_CH, operatingch_info, &attr_contentlen)) { RTW_INFO("[%s] Peer's operating channel = %d\n", __FUNCTION__, operatingch_info[4]); pwdinfo->peer_operating_ch = operatingch_info[4]; } /* Try to get the channel list information */ + pwdinfo->channel_list_attr_len = sizeof(pwdinfo->channel_list_attr); if (rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_CH_LIST, pwdinfo->channel_list_attr, &pwdinfo->channel_list_attr_len)) { RTW_INFO("[%s] channel list attribute found, len = %d\n", __FUNCTION__, pwdinfo->channel_list_attr_len); @@ -2860,7 +2870,7 @@ u8 process_p2p_group_negotation_resp(struct wifidirect_info *pwdinfo, u8 *pframe #endif /* CONFIG_CONCURRENT_MODE */ { u8 operatingch_info[5] = { 0x00 }, peer_operating_ch = 0; - attr_contentlen = 0; + attr_contentlen = sizeof(operatingch_info); if (rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_OPERATING_CH, operatingch_info, &attr_contentlen)) peer_operating_ch = operatingch_info[4]; @@ -2886,8 +2896,8 @@ u8 process_p2p_group_negotation_resp(struct wifidirect_info *pwdinfo, u8 *pframe RTW_INFO("[%s] channel list attribute not found!\n", __FUNCTION__); /* Try to get the group id information if peer is GO */ - attr_contentlen = 0; _rtw_memset(groupid, 0x00, 38); + attr_contentlen = sizeof(groupid); if (rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_GROUP_ID, groupid, &attr_contentlen)) { _rtw_memcpy(pwdinfo->groupid_info.go_device_addr, &groupid[0], ETH_ALEN); _rtw_memcpy(pwdinfo->groupid_info.ssid, &groupid[6], attr_contentlen - ETH_ALEN); @@ -2911,6 +2921,7 @@ u8 process_p2p_group_negotation_confirm(struct wifidirect_info *pwdinfo, u8 *pfr { #ifdef CONFIG_CONCURRENT_MODE _adapter *padapter = pwdinfo->padapter; + struct roch_info *prochinfo = &padapter->rochinfo; #endif u8 *ies; u32 ies_len; @@ -2927,6 +2938,7 @@ u8 process_p2p_group_negotation_confirm(struct wifidirect_info *pwdinfo, u8 *pfr u32 attr_contentlen = 0; pwdinfo->negotiation_dialog_token = 1; + attr_contentlen = sizeof(attr_content); rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_STATUS, &attr_content, &attr_contentlen); if (attr_contentlen == 1) { RTW_INFO("[%s] Status = %d\n", __FUNCTION__, attr_content); @@ -2956,7 +2968,7 @@ u8 process_p2p_group_negotation_confirm(struct wifidirect_info *pwdinfo, u8 *pfr if (rtw_mi_check_status(padapter, MI_LINKED) && padapter->registrypriv.full_ch_in_p2p_handshake == 0) { /* Switch back to the AP channel soon. */ - _set_timer(&pwdinfo->ap_p2p_switch_timer, 100); + _set_timer(&prochinfo->ap_roch_ch_switch_timer, 100); } #endif } else { @@ -2967,15 +2979,15 @@ u8 process_p2p_group_negotation_confirm(struct wifidirect_info *pwdinfo, u8 *pfr } /* Try to get the group id information */ - attr_contentlen = 0; _rtw_memset(groupid, 0x00, 38); + attr_contentlen = sizeof(groupid); if (rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_GROUP_ID, groupid, &attr_contentlen)) { RTW_INFO("[%s] Ssid = %s, ssidlen = %zu\n", __FUNCTION__, &groupid[ETH_ALEN], strlen(&groupid[ETH_ALEN])); _rtw_memcpy(pwdinfo->groupid_info.go_device_addr, &groupid[0], ETH_ALEN); _rtw_memcpy(pwdinfo->groupid_info.ssid, &groupid[6], attr_contentlen - ETH_ALEN); } - attr_contentlen = 0; + attr_contentlen = sizeof(operatingch_info); if (rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_OPERATING_CH, operatingch_info, &attr_contentlen)) { RTW_INFO("[%s] Peer's operating channel = %d\n", __FUNCTION__, operatingch_info[4]); pwdinfo->peer_operating_ch = operatingch_info[4]; @@ -3029,8 +3041,6 @@ void find_phase_handler(_adapter *padapter) } -void p2p_concurrent_handler(_adapter *padapter); - void restore_p2p_state_handler(_adapter *padapter) { struct wifidirect_info *pwdinfo = &padapter->wdinfo; @@ -3055,7 +3065,7 @@ void restore_p2p_state_handler(_adapter *padapter) if (rtw_p2p_chk_role(pwdinfo, P2P_ROLE_DEVICE)) { #ifdef CONFIG_CONCURRENT_MODE - p2p_concurrent_handler(padapter); + rtw_concurrent_handler(padapter); #else /* In the P2P client mode, the driver should not switch back to its listen channel */ /* because this P2P client should stay at the operating channel of P2P GO. */ @@ -3102,379 +3112,7 @@ void pre_tx_negoreq_handler(_adapter *padapter) } -#ifdef CONFIG_CONCURRENT_MODE -void p2p_concurrent_handler(_adapter *padapter) -{ - struct rtw_wdev_priv *pwdev_priv = adapter_wdev_data(padapter); - struct dvobj_priv *pdvobj = adapter_to_dvobj(padapter); - struct wifidirect_info *pwdinfo = &padapter->wdinfo; - u8 val8; - #ifdef CONFIG_IOCTL_CFG80211 - if (pwdinfo->driver_interface == DRIVER_CFG80211 - && !rtw_cfg80211_get_is_roch(padapter)) - return; -#endif - - if (rtw_mi_check_status(padapter, MI_LINKED)) { - u8 union_ch = rtw_mi_get_union_chan(padapter); - u8 union_bw = rtw_mi_get_union_bw(padapter); - u8 union_offset = rtw_mi_get_union_offset(padapter); - unsigned int duration; - - pwdinfo->operating_channel = union_ch; - - if (pwdinfo->driver_interface == DRIVER_CFG80211) { - _enter_critical_mutex(&pwdev_priv->roch_mutex, NULL); - - if (rtw_get_oper_ch(padapter) != union_ch) { - /* Current channel is not AP's channel - switching to AP's channel */ - RTW_INFO("%s, switch ch back to union=%u,%u, %u\n" - , __func__, union_ch, union_bw, union_offset); - set_channel_bwmode(padapter, union_ch, union_offset, union_bw); - rtw_back_opch(padapter); - - /* Now, the driver stays on AP's channel. We should stay on AP's - * channel for min_home_dur (duration) and next switch channel is - * listen channel. - */ - duration = pwdinfo->min_home_dur; - } else { - /* Current channel is AP's channel - switching to listen channel */ - RTW_INFO("%s, switch ch to roch=%u\n" - , __func__, pwdinfo->listen_channel); - rtw_leave_opch(padapter); - set_channel_bwmode(padapter, - pwdinfo->listen_channel, HAL_PRIME_CHNL_OFFSET_DONT_CARE, CHANNEL_WIDTH_20); - - /* Now, the driver stays on listen channel. We should stay on listen - * channel for max_away_dur (duration) and next switch channel is AP's - * channel. - */ - duration = pwdinfo->max_away_dur; - } - - /* set channel switch timer */ - ATOMIC_SET(&pwdev_priv->switch_ch_to, 0); - _set_timer(&pwdinfo->ap_p2p_switch_timer, duration); - RTW_INFO("%s, set switch ch timer, duration=%d\n", __func__, duration); - - _exit_critical_mutex(&pwdev_priv->roch_mutex, NULL); - } else if (pwdinfo->driver_interface == DRIVER_WEXT) { - if (rtw_p2p_chk_state(pwdinfo, P2P_STATE_IDLE)) { - /* Now, the driver stays on the AP's channel. */ - /* If the pwdinfo->ext_listen_period = 0, that means the P2P listen state is not available on listen channel. */ - if (pwdinfo->ext_listen_period > 0) { - RTW_INFO("[%s] P2P_STATE_IDLE, ext_listen_period = %d\n", __FUNCTION__, pwdinfo->ext_listen_period); - - if (union_ch != pwdinfo->listen_channel) { - rtw_leave_opch(padapter); - set_channel_bwmode(padapter, pwdinfo->listen_channel, HAL_PRIME_CHNL_OFFSET_DONT_CARE, CHANNEL_WIDTH_20); - } - - rtw_p2p_set_state(pwdinfo, P2P_STATE_LISTEN); - - if (!rtw_mi_check_mlmeinfo_state(padapter, WIFI_FW_AP_STATE)) { - val8 = 1; - rtw_hal_set_hwreg(padapter, HW_VAR_MLME_SITESURVEY, (u8 *)(&val8)); - } - /* Todo: To check the value of pwdinfo->ext_listen_period is equal to 0 or not. */ - _set_timer(&pwdinfo->ap_p2p_switch_timer, pwdinfo->ext_listen_period); - } - - } else if (rtw_p2p_chk_state(pwdinfo, P2P_STATE_LISTEN) || - rtw_p2p_chk_state(pwdinfo, P2P_STATE_GONEGO_FAIL) || - (rtw_p2p_chk_state(pwdinfo, P2P_STATE_GONEGO_ING) && pwdinfo->nego_req_info.benable == _FALSE) || - rtw_p2p_chk_state(pwdinfo, P2P_STATE_RX_PROVISION_DIS_REQ)) { - /* Now, the driver is in the listen state of P2P mode. */ - RTW_INFO("[%s] P2P_STATE_IDLE, ext_listen_interval = %d\n", __FUNCTION__, pwdinfo->ext_listen_interval); - - /* Commented by Albert 2012/11/01 */ - /* If the AP's channel is the same as the listen channel, we should still be in the listen state */ - /* Other P2P device is still able to find this device out even this device is in the AP's channel. */ - /* So, configure this device to be able to receive the probe request frame and set it to listen state. */ - if (union_ch != pwdinfo->listen_channel) { - - set_channel_bwmode(padapter, union_ch, union_offset, union_bw); - if (!rtw_mi_check_status(padapter, MI_AP_MODE)) { - val8 = 0; - rtw_hal_set_hwreg(padapter, HW_VAR_MLME_SITESURVEY, (u8 *)(&val8)); - } - rtw_p2p_set_state(pwdinfo, P2P_STATE_IDLE); - rtw_back_opch(padapter); - } - - /* Todo: To check the value of pwdinfo->ext_listen_interval is equal to 0 or not. */ - _set_timer(&pwdinfo->ap_p2p_switch_timer, pwdinfo->ext_listen_interval); - - } else if (rtw_p2p_chk_state(pwdinfo, P2P_STATE_GONEGO_OK)) { - /* The driver had finished the P2P handshake successfully. */ - val8 = 0; - rtw_hal_set_hwreg(padapter, HW_VAR_MLME_SITESURVEY, (u8 *)(&val8)); - set_channel_bwmode(padapter, union_ch, union_offset, union_bw); - rtw_back_opch(padapter); - - } else if (rtw_p2p_chk_state(pwdinfo, P2P_STATE_TX_PROVISION_DIS_REQ)) { - val8 = 1; - set_channel_bwmode(padapter, pwdinfo->tx_prov_disc_info.peer_channel_num[0], HAL_PRIME_CHNL_OFFSET_DONT_CARE, CHANNEL_WIDTH_20); - rtw_hal_set_hwreg(padapter, HW_VAR_MLME_SITESURVEY, (u8 *)(&val8)); - issue_probereq_p2p(padapter, NULL); - _set_timer(&pwdinfo->pre_tx_scan_timer, P2P_TX_PRESCAN_TIMEOUT); - } else if (rtw_p2p_chk_state(pwdinfo, P2P_STATE_GONEGO_ING) && pwdinfo->nego_req_info.benable == _TRUE) { - val8 = 1; - set_channel_bwmode(padapter, pwdinfo->nego_req_info.peer_channel_num[0], HAL_PRIME_CHNL_OFFSET_DONT_CARE, CHANNEL_WIDTH_20); - rtw_hal_set_hwreg(padapter, HW_VAR_MLME_SITESURVEY, (u8 *)(&val8)); - issue_probereq_p2p(padapter, NULL); - _set_timer(&pwdinfo->pre_tx_scan_timer, P2P_TX_PRESCAN_TIMEOUT); - } else if (rtw_p2p_chk_state(pwdinfo, P2P_STATE_TX_INVITE_REQ) && pwdinfo->invitereq_info.benable == _TRUE) { - /* - val8 = 1; - set_channel_bwmode(padapter, , HAL_PRIME_CHNL_OFFSET_DONT_CARE, CHANNEL_WIDTH_20); - rtw_hal_set_hwreg(padapter, HW_VAR_MLME_SITESURVEY, (u8 *)(&val8)); - issue_probereq_p2p(padapter, NULL); - _set_timer( &pwdinfo->pre_tx_scan_timer, P2P_TX_PRESCAN_TIMEOUT ); - */ - } - } - } else { - /* In p2p+softap. When in P2P_STATE_GONEGO_OK, not back to listen channel.*/ - if (!rtw_p2p_chk_state(pwdinfo , P2P_STATE_GONEGO_OK) || padapter->registrypriv.full_ch_in_p2p_handshake == 0) - set_channel_bwmode(padapter, pwdinfo->listen_channel, HAL_PRIME_CHNL_OFFSET_DONT_CARE, CHANNEL_WIDTH_20); - else - RTW_INFO("%s, buddy not linked, go nego ok, not back to listen channel\n", __func__); - } - -} -#endif - -#ifdef CONFIG_IOCTL_CFG80211 -u8 roch_stay_in_cur_chan(_adapter *padapter) -{ - int i; - _adapter *iface; - struct mlme_priv *pmlmepriv; - struct dvobj_priv *dvobj = adapter_to_dvobj(padapter); - u8 rst = _FALSE; - - for (i = 0; i < dvobj->iface_nums; i++) { - iface = dvobj->padapters[i]; - if (iface) { - pmlmepriv = &iface->mlmepriv; - - if (check_fwstate(pmlmepriv, WIFI_UNDER_LINKING | WIFI_UNDER_WPS | WIFI_UNDER_KEY_HANDSHAKE) == _TRUE) { - RTW_INFO(ADPT_FMT"- WIFI_UNDER_LINKING |WIFI_UNDER_WPS | WIFI_UNDER_KEY_HANDSHAKE (mlme state:0x%x)\n", - ADPT_ARG(iface), get_fwstate(&iface->mlmepriv)); - rst = _TRUE; - break; - } - #ifdef CONFIG_AP_MODE - if (MLME_IS_AP(iface) || MLME_IS_MESH(iface)) { - if (rtw_ap_sta_states_check(iface) == _TRUE) { - rst = _TRUE; - break; - } - } - #endif - } - } - - return rst; -} - -static int ro_ch_handler(_adapter *adapter, u8 *buf) -{ - int ret = H2C_SUCCESS; - struct p2p_roch_parm *roch_parm = (struct p2p_roch_parm *)buf; - struct rtw_wdev_priv *pwdev_priv = adapter_wdev_data(adapter); - struct cfg80211_wifidirect_info *pcfg80211_wdinfo = &adapter->cfg80211_wdinfo; -#ifdef CONFIG_CONCURRENT_MODE - struct mlme_ext_priv *pmlmeext = &adapter->mlmeextpriv; -#ifdef RTW_ROCH_BACK_OP - struct wifidirect_info *pwdinfo = &adapter->wdinfo; -#endif -#endif - u8 ready_on_channel = _FALSE; - u8 remain_ch; - unsigned int duration; - - _enter_critical_mutex(&pwdev_priv->roch_mutex, NULL); - - if (rtw_cfg80211_get_is_roch(adapter) != _TRUE) - goto exit; - - remain_ch = (u8)ieee80211_frequency_to_channel(roch_parm->ch.center_freq); - duration = roch_parm->duration; - - RTW_INFO(FUNC_ADPT_FMT" ch:%u duration:%d, cookie:0x%llx\n" - , FUNC_ADPT_ARG(adapter), remain_ch, roch_parm->duration, roch_parm->cookie); - - if (roch_parm->wdev && roch_parm->cookie) { - if (pcfg80211_wdinfo->ro_ch_wdev != roch_parm->wdev) { - RTW_WARN(FUNC_ADPT_FMT" ongoing wdev:%p, wdev:%p\n" - , FUNC_ADPT_ARG(adapter), pcfg80211_wdinfo->ro_ch_wdev, roch_parm->wdev); - rtw_warn_on(1); - } - - if (pcfg80211_wdinfo->remain_on_ch_cookie != roch_parm->cookie) { - RTW_WARN(FUNC_ADPT_FMT" ongoing cookie:0x%llx, cookie:0x%llx\n" - , FUNC_ADPT_ARG(adapter), pcfg80211_wdinfo->remain_on_ch_cookie, roch_parm->cookie); - rtw_warn_on(1); - } - } - - if (roch_stay_in_cur_chan(adapter) == _TRUE) { - remain_ch = rtw_mi_get_union_chan(adapter); - RTW_INFO(FUNC_ADPT_FMT" stay in union ch:%d\n", FUNC_ADPT_ARG(adapter), remain_ch); - } - - #ifdef CONFIG_CONCURRENT_MODE - if (rtw_mi_check_status(adapter, MI_LINKED) && (0 != rtw_mi_get_union_chan(adapter))) { - if ((remain_ch != rtw_mi_get_union_chan(adapter)) && !check_fwstate(&adapter->mlmepriv, WIFI_ASOC_STATE)) { - if (remain_ch != pmlmeext->cur_channel - #ifdef RTW_ROCH_BACK_OP - || ATOMIC_READ(&pwdev_priv->switch_ch_to) == 1 - #endif - ) { - rtw_leave_opch(adapter); - - #ifdef RTW_ROCH_BACK_OP - RTW_INFO("%s, set switch ch timer, duration=%d\n", __func__, pwdinfo->max_away_dur); - ATOMIC_SET(&pwdev_priv->switch_ch_to, 0); - /* remain_ch is not same as union channel. duration is max_away_dur to - * back to AP's channel. - */ - _set_timer(&pwdinfo->ap_p2p_switch_timer, pwdinfo->max_away_dur); - #endif - } - } - ready_on_channel = _TRUE; - } else - #endif /* CONFIG_CONCURRENT_MODE */ - { - if (remain_ch != rtw_get_oper_ch(adapter)) - ready_on_channel = _TRUE; - } - - if (ready_on_channel == _TRUE) { - #ifndef RTW_SINGLE_WIPHY - if (!check_fwstate(&adapter->mlmepriv, WIFI_ASOC_STATE)) - #endif - { - #ifdef CONFIG_CONCURRENT_MODE - if (rtw_get_oper_ch(adapter) != remain_ch) - #endif - { - /* if (!padapter->mlmepriv.LinkDetectInfo.bBusyTraffic) */ - set_channel_bwmode(adapter, remain_ch, HAL_PRIME_CHNL_OFFSET_DONT_CARE, CHANNEL_WIDTH_20); - } - } - } - - #ifdef CONFIG_BT_COEXIST - rtw_btcoex_ScanNotify(adapter, _TRUE); - #endif - - RTW_INFO("%s, set ro ch timer, duration=%d\n", __func__, duration); - _set_timer(&pcfg80211_wdinfo->remain_on_ch_timer, duration); - -exit: - _exit_critical_mutex(&pwdev_priv->roch_mutex, NULL); - - return ret; -} - -static int cancel_ro_ch_handler(_adapter *padapter, u8 *buf) -{ - int ret = H2C_SUCCESS; - struct p2p_roch_parm *roch_parm = (struct p2p_roch_parm *)buf; - struct rtw_wdev_priv *pwdev_priv = adapter_wdev_data(padapter); - struct cfg80211_wifidirect_info *pcfg80211_wdinfo = &padapter->cfg80211_wdinfo; - struct wireless_dev *wdev; - struct wifidirect_info *pwdinfo = &padapter->wdinfo; - u8 ch, bw, offset; - - _enter_critical_mutex(&pwdev_priv->roch_mutex, NULL); - - if (rtw_cfg80211_get_is_roch(padapter) != _TRUE) - goto exit; - - if (roch_parm->wdev && roch_parm->cookie) { - if (pcfg80211_wdinfo->ro_ch_wdev != roch_parm->wdev) { - RTW_WARN(FUNC_ADPT_FMT" ongoing wdev:%p, wdev:%p\n" - , FUNC_ADPT_ARG(padapter), pcfg80211_wdinfo->ro_ch_wdev, roch_parm->wdev); - rtw_warn_on(1); - } - - if (pcfg80211_wdinfo->remain_on_ch_cookie != roch_parm->cookie) { - RTW_WARN(FUNC_ADPT_FMT" ongoing cookie:0x%llx, cookie:0x%llx\n" - , FUNC_ADPT_ARG(padapter), pcfg80211_wdinfo->remain_on_ch_cookie, roch_parm->cookie); - rtw_warn_on(1); - } - } - -#if defined(RTW_ROCH_BACK_OP) && defined(CONFIG_CONCURRENT_MODE) - _cancel_timer_ex(&pwdinfo->ap_p2p_switch_timer); - ATOMIC_SET(&pwdev_priv->switch_ch_to, 1); -#endif - - if (rtw_mi_get_ch_setting_union(padapter, &ch, &bw, &offset) != 0) { - if (0) - RTW_INFO(FUNC_ADPT_FMT" back to linked/linking union - ch:%u, bw:%u, offset:%u\n", - FUNC_ADPT_ARG(padapter), ch, bw, offset); - } else if (adapter_wdev_data(padapter)->p2p_enabled && pwdinfo->listen_channel) { - ch = pwdinfo->listen_channel; - bw = CHANNEL_WIDTH_20; - offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE; - if (0) - RTW_INFO(FUNC_ADPT_FMT" back to listen ch - ch:%u, bw:%u, offset:%u\n", - FUNC_ADPT_ARG(padapter), ch, bw, offset); - } else { - ch = pcfg80211_wdinfo->restore_channel; - bw = CHANNEL_WIDTH_20; - offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE; - if (0) - RTW_INFO(FUNC_ADPT_FMT" back to restore ch - ch:%u, bw:%u, offset:%u\n", - FUNC_ADPT_ARG(padapter), ch, bw, offset); - } - - set_channel_bwmode(padapter, ch, offset, bw); - rtw_back_opch(padapter); - - rtw_p2p_set_state(pwdinfo, rtw_p2p_pre_state(pwdinfo)); -#ifdef CONFIG_DEBUG_CFG80211 - RTW_INFO("%s, role=%d, p2p_state=%d\n", __func__, rtw_p2p_role(pwdinfo), rtw_p2p_state(pwdinfo)); -#endif - - wdev = pcfg80211_wdinfo->ro_ch_wdev; - - rtw_cfg80211_set_is_roch(padapter, _FALSE); - pcfg80211_wdinfo->ro_ch_wdev = NULL; - rtw_cfg80211_set_last_ro_ch_time(padapter); - - rtw_cfg80211_remain_on_channel_expired(wdev - , pcfg80211_wdinfo->remain_on_ch_cookie - , &pcfg80211_wdinfo->remain_on_ch_channel - , pcfg80211_wdinfo->remain_on_ch_type, GFP_KERNEL); - - RTW_INFO("cfg80211_remain_on_channel_expired cookie:0x%llx\n" - , pcfg80211_wdinfo->remain_on_ch_cookie); - -#ifdef CONFIG_BT_COEXIST - rtw_btcoex_ScanNotify(padapter, _FALSE); -#endif - -exit: - _exit_critical_mutex(&pwdev_priv->roch_mutex, NULL); - - return ret; -} - -static void ro_ch_timer_process(void *FunctionContext) -{ - _adapter *adapter = (_adapter *)FunctionContext; - - p2p_cancel_roch_cmd(adapter, 0, NULL, 0); -} #if 0 static void rtw_change_p2pie_op_ch(_adapter *padapter, const u8 *frame_body, u32 len, u8 ch) @@ -4310,15 +3948,6 @@ int rtw_p2p_check_frames(_adapter *padapter, const u8 *buf, u32 len, u8 tx) return is_p2p_frame; } - -void rtw_init_cfg80211_wifidirect_info(_adapter *padapter) -{ - struct cfg80211_wifidirect_info *pcfg80211_wdinfo = &padapter->cfg80211_wdinfo; - - _rtw_memset(pcfg80211_wdinfo, 0x00, sizeof(struct cfg80211_wifidirect_info)); - - rtw_init_timer(&pcfg80211_wdinfo->remain_on_ch_timer, padapter, ro_ch_timer_process, padapter); -} #endif /* CONFIG_IOCTL_CFG80211 */ s32 p2p_protocol_wk_hdl(_adapter *padapter, int intCmdType, u8 *buf) @@ -4337,7 +3966,7 @@ s32 p2p_protocol_wk_hdl(_adapter *padapter, int intCmdType, u8 *buf) case P2P_PRE_TX_PROVDISC_PROCESS_WK: #ifdef CONFIG_CONCURRENT_MODE if (rtw_mi_check_status(padapter, MI_LINKED)) - p2p_concurrent_handler(padapter); + rtw_concurrent_handler(padapter); else pre_tx_provdisc_handler(padapter); #else @@ -4348,7 +3977,7 @@ s32 p2p_protocol_wk_hdl(_adapter *padapter, int intCmdType, u8 *buf) case P2P_PRE_TX_INVITEREQ_PROCESS_WK: #ifdef CONFIG_CONCURRENT_MODE if (rtw_mi_check_status(padapter, MI_LINKED)) - p2p_concurrent_handler(padapter); + rtw_concurrent_handler(padapter); else pre_tx_invitereq_handler(padapter); #else @@ -4359,7 +3988,7 @@ s32 p2p_protocol_wk_hdl(_adapter *padapter, int intCmdType, u8 *buf) case P2P_PRE_TX_NEGOREQ_PROCESS_WK: #ifdef CONFIG_CONCURRENT_MODE if (rtw_mi_check_status(padapter, MI_LINKED)) - p2p_concurrent_handler(padapter); + rtw_concurrent_handler(padapter); else pre_tx_negoreq_handler(padapter); #else @@ -4367,21 +3996,6 @@ s32 p2p_protocol_wk_hdl(_adapter *padapter, int intCmdType, u8 *buf) #endif break; -#ifdef CONFIG_CONCURRENT_MODE - case P2P_AP_P2P_CH_SWITCH_PROCESS_WK: - p2p_concurrent_handler(padapter); - break; -#endif - -#ifdef CONFIG_IOCTL_CFG80211 - case P2P_RO_CH_WK: - ret = ro_ch_handler(padapter, buf); - break; - case P2P_CANCEL_RO_CH_WK: - ret = cancel_ro_ch_handler(padapter, buf); - break; -#endif - default: rtw_warn_on(1); break; @@ -4412,6 +4026,7 @@ int process_p2p_cross_connect_ie(PADAPTER padapter, u8 *IEs, u32 IELength) while (p2p_ie) { /* Get P2P Manageability IE. */ + attr_contentlen = sizeof(p2p_attr); if (rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_MANAGEABILITY, p2p_attr, &attr_contentlen)) { if ((p2p_attr[0] & (BIT(0) | BIT(1))) == 0x01) ret = _FALSE; @@ -4534,13 +4149,16 @@ void p2p_ps_wk_hdl(_adapter *padapter, u8 p2p_ps_state) rtw_hal_set_hwreg(padapter, HW_VAR_H2C_FW_P2P_PS_OFFLOAD, (u8 *)(&p2p_ps_state)); +#ifdef CONFIG_LPS if (pwdinfo->opp_ps == 1) { if (pwrpriv->smart_ps == 0) { pwrpriv->smart_ps = 2; if (pwrpriv->pwr_mode != PS_MODE_ACTIVE) - rtw_hal_set_hwreg(padapter, HW_VAR_H2C_FW_PWRMODE, (u8 *)(&(pwrpriv->pwr_mode))); + rtw_exec_lps(padapter, pwrpriv->pwr_mode); } } +#endif /* CONFIG_LPS */ + pwdinfo->noa_index = 0; pwdinfo->ctwindow = 0; pwdinfo->opp_ps = 0; @@ -4571,14 +4189,17 @@ void p2p_ps_wk_hdl(_adapter *padapter, u8 p2p_ps_state) #endif /* CONFIG_MCC_MODE */ pwdinfo->p2p_ps_state = p2p_ps_state; +#ifdef CONFIG_LPS if (pwdinfo->ctwindow > 0) { if (pwrpriv->smart_ps != 0) { pwrpriv->smart_ps = 0; RTW_INFO("%s(): Enter CTW, change SmartPS\n", __FUNCTION__); if (pwrpriv->pwr_mode != PS_MODE_ACTIVE) - rtw_hal_set_hwreg(padapter, HW_VAR_H2C_FW_PWRMODE, (u8 *)(&(pwrpriv->pwr_mode))); + rtw_exec_lps(padapter, pwrpriv->pwr_mode); } } +#endif /* CONFIG_LPS */ + rtw_hal_set_hwreg(padapter, HW_VAR_H2C_FW_P2P_PS_OFFLOAD, (u8 *)(&p2p_ps_state)); } break; @@ -4743,26 +4364,6 @@ static void find_phase_timer_process(void *FunctionContext) p2p_protocol_wk_cmd(adapter, P2P_FIND_PHASE_WK); } -#ifdef CONFIG_CONCURRENT_MODE -void ap_p2p_switch_timer_process(void *FunctionContext) -{ - _adapter *adapter = (_adapter *)FunctionContext; - struct wifidirect_info *pwdinfo = &adapter->wdinfo; -#ifdef CONFIG_IOCTL_CFG80211 - struct rtw_wdev_priv *pwdev_priv = adapter_wdev_data(adapter); -#endif - - if (rtw_p2p_chk_state(pwdinfo, P2P_STATE_NONE)) - return; - -#ifdef CONFIG_IOCTL_CFG80211 - ATOMIC_SET(&pwdev_priv->switch_ch_to, 1); -#endif - - p2p_protocol_wk_cmd(adapter, P2P_AP_P2P_CH_SWITCH_PROCESS_WK); -} -#endif - void reset_global_wifidirect_info(_adapter *padapter) { struct wifidirect_info *pwdinfo; @@ -4994,9 +4595,6 @@ void rtw_init_wifidirect_timers(_adapter *padapter) rtw_init_timer(&pwdinfo->pre_tx_scan_timer, padapter, pre_tx_scan_timer_process, padapter); rtw_init_timer(&pwdinfo->reset_ch_sitesurvey, padapter, reset_ch_sitesurvey_timer_process, padapter); rtw_init_timer(&pwdinfo->reset_ch_sitesurvey2, padapter, reset_ch_sitesurvey_timer_process2, padapter); -#ifdef CONFIG_CONCURRENT_MODE - rtw_init_timer(&pwdinfo->ap_p2p_switch_timer, padapter, ap_p2p_switch_timer_process, padapter); -#endif } void rtw_init_wifidirect_addrs(_adapter *padapter, u8 *dev_addr, u8 *iface_addr) @@ -5131,9 +4729,6 @@ void init_wifidirect_info(_adapter *padapter, enum P2P_ROLE role) #ifdef CONFIG_IOCTL_CFG80211 pwdinfo->ext_listen_interval = 1000; /* The interval to be available with legacy AP during p2p0-find/scan */ pwdinfo->ext_listen_period = 3000; /* The time period to be available for P2P during nego */ - - pwdinfo->min_home_dur = 1500; /* min duration for traffic, home_time */ - pwdinfo->max_away_dur = 250; /* max acceptable away duration, home_away_time */ #else /* !CONFIG_IOCTL_CFG80211 */ /* pwdinfo->ext_listen_interval = 3000; */ /* pwdinfo->ext_listen_period = 400; */ @@ -5326,6 +4921,9 @@ int rtw_p2p_enable(_adapter *padapter, enum P2P_ROLE role) { int ret = _SUCCESS; struct wifidirect_info *pwdinfo = &(padapter->wdinfo); +#ifdef CONFIG_CONCURRENT_MODE + struct roch_info *prochinfo = &padapter->rochinfo; +#endif if (role == P2P_ROLE_DEVICE || role == P2P_ROLE_CLIENT || role == P2P_ROLE_GO) { #if defined(CONFIG_CONCURRENT_MODE) && (!defined(RTW_P2P_GROUP_INTERFACE) || !RTW_P2P_GROUP_INTERFACE) @@ -5389,7 +4987,7 @@ int rtw_p2p_enable(_adapter *padapter, enum P2P_ROLE role) reset_ch_sitesurvey_timer_process(padapter); reset_ch_sitesurvey_timer_process2(padapter); #ifdef CONFIG_CONCURRENT_MODE - _cancel_timer_ex(&pwdinfo->ap_p2p_switch_timer); + _cancel_timer_ex(&prochinfo->ap_roch_ch_switch_timer); #endif rtw_p2p_set_state(pwdinfo, P2P_STATE_NONE); rtw_p2p_set_pre_state(pwdinfo, P2P_STATE_NONE); diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_pwrctrl.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_pwrctrl.c old mode 100644 new mode 100755 index a2da7698..a617590c --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_pwrctrl.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_pwrctrl.c @@ -232,7 +232,7 @@ bool rtw_pwr_unassociated_idle(_adapter *adapter) || MLME_IS_AP(iface) || MLME_IS_MESH(iface) || check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE | WIFI_ADHOC_STATE) - #if defined(CONFIG_P2P) && defined(CONFIG_IOCTL_CFG80211) + #if defined(CONFIG_IOCTL_CFG80211) || rtw_cfg80211_get_is_roch(iface) == _TRUE || (rtw_cfg80211_is_ro_ch_once(adapter) && rtw_cfg80211_get_last_ro_ch_passing_ms(adapter) < 3000) @@ -665,7 +665,7 @@ u8 PS_RDY_CHECK(_adapter *padapter) || MLME_IS_MESH(padapter) || MLME_IS_MONITOR(padapter) || check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE | WIFI_ADHOC_STATE) - #if defined(CONFIG_P2P) && defined(CONFIG_IOCTL_CFG80211) + #if defined(CONFIG_IOCTL_CFG80211) || rtw_cfg80211_get_is_roch(padapter) == _TRUE #endif || rtw_is_scan_deny(padapter) @@ -692,14 +692,101 @@ u8 PS_RDY_CHECK(_adapter *padapter) return _TRUE; } +#ifdef CONFIG_LPS_LCLK +void rtw_set_lps_lclk(_adapter *padapter, u8 enable) +{ + struct pwrctrl_priv *pwrctl = adapter_to_pwrctl(padapter); + u8 val8 = 0; + u8 polling_cnt = 0; + u8 cpwm_orig = 0; + u8 cpwm_now = 0; + u8 result = _FAIL; + systime start_time; + + if (enable) { + /* set rpwm to enter 32k */ + rtw_hal_get_hwreg(padapter, HW_VAR_RPWM_TOG, &val8); + RTW_INFO("%s: read rpwm=%02x\n", __func__, val8); + val8 += PS_TOGGLE; + val8 |= PS_LCLK; + rtw_hal_set_hwreg(padapter, HW_VAR_SET_RPWM, (u8 *)(&val8)); + RTW_INFO("%s: write rpwm=%02x\n", __func__, val8); + pwrctl->tog = (val8 + PS_TOGGLE) & PS_TOGGLE; + + /* When using PNO, the FW may scan first, so polling register 100 + * may not see 0xEA at this point. + */ + if (!pwrctl->wowlan_pno_enable) { + do { + val8 = rtw_read8(padapter, REG_CR); + polling_cnt++; + RTW_INFO("%s polling 0x100=0x%x, cnt=%d\n", + __func__, val8, polling_cnt); + RTW_INFO("%s 0x08:%02x, 0x03:%02x\n", + __func__, + rtw_read8(padapter, 0x08), + rtw_read8(padapter, 0x03)); + rtw_mdelay_os(10); + } while (polling_cnt < 20 && (val8 != 0xEA)); + } + } else { + /* for polling cpwm */ + rtw_hal_get_hwreg(padapter, HW_VAR_CPWM, &cpwm_orig); + + /* set rpwm to leave 32k */ + rtw_hal_get_hwreg(padapter, HW_VAR_RPWM_TOG, &val8); + RTW_INFO("%s: read rpwm=%02x\n", __func__, val8); + val8 += PS_TOGGLE; + val8 |= PS_ACK; + rtw_hal_set_hwreg(padapter, HW_VAR_SET_RPWM, (u8 *)(&val8)); + RTW_INFO("%s: write rpwm=%02x\n", __func__, val8); + pwrctl->tog = (val8 + PS_TOGGLE) & PS_TOGGLE; + + /* do polling cpwm */ + start_time = rtw_get_current_time(); + do { + rtw_mdelay_os(1); + + rtw_hal_get_hwreg(padapter, HW_VAR_CPWM, &cpwm_now); + if ((cpwm_orig ^ cpwm_now) & PS_TOGGLE) + break; + + if (rtw_get_passing_time_ms(start_time) > 100) { + RTW_INFO("%s: polling cpwm timeout\n", + __func__); + break; + } + } while (1); + +#ifdef CONFIG_PNO_SUPPORT + if (pwrctl->wowlan_pno_enable) { + do { + rtw_mdelay_os(1); + + val8 = rtw_read8(padapter, REG_CR); + if (val8 != 0xEA) { + result = _SUCCESS; + break; + } + + polling_cnt++; + } while (polling_cnt < 100); + + if (result == _FAIL ) + RTW_INFO("%s: It is not finished to leave 32K\n", + __func__); + } +#endif + } +} +#endif + #if defined(CONFIG_FWLPS_IN_IPS) void rtw_set_fw_in_ips_mode(PADAPTER padapter, u8 enable) { struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter); int cnt = 0; - systime start_time; u8 val8 = 0; - u8 cpwm_orig = 0, cpwm_now = 0; u8 parm[H2C_INACTIVE_PS_LEN] = {0}; if (padapter->netif_up == _FALSE) { @@ -737,64 +824,15 @@ void rtw_set_fw_in_ips_mode(PADAPTER padapter, u8 enable) #ifdef CONFIG_LPS_LCLK /* H2C done, enter 32k */ - if (val8 == 0) { - /* ser rpwm to enter 32k */ - rtw_hal_get_hwreg(padapter, HW_VAR_RPWM_TOG, &val8); - RTW_INFO("%s: read rpwm=%02x\n", __FUNCTION__, val8); - val8 += 0x80; - val8 |= BIT(0); - rtw_hal_set_hwreg(padapter, HW_VAR_SET_RPWM, (u8 *)(&val8)); - RTW_INFO("%s: write rpwm=%02x\n", __FUNCTION__, val8); - adapter_to_pwrctl(padapter)->tog = (val8 + 0x80) & 0x80; - cnt = val8 = 0; - if (parm[1] == 0 || parm[2] == 0) { - do { - val8 = rtw_read8(padapter, REG_CR); - cnt++; - RTW_INFO("%s polling 0x100=0x%x, cnt=%d\n", - __func__, val8, cnt); - RTW_INFO("%s 0x08:%02x, 0x03:%02x\n", - __func__, - rtw_read8(padapter, 0x08), - rtw_read8(padapter, 0x03)); - rtw_mdelay_os(10); - } while (cnt < 20 && (val8 != 0xEA)); - } - } + if (val8 == 0) + rtw_set_lps_lclk(padapter, _TRUE); #endif } else { /* Leave IPS */ RTW_INFO("%s: Leaving IPS in FWLPS state\n", __func__); #ifdef CONFIG_LPS_LCLK - /* for polling cpwm */ - cpwm_orig = 0; - rtw_hal_get_hwreg(padapter, HW_VAR_CPWM, &cpwm_orig); - - /* ser rpwm */ - rtw_hal_get_hwreg(padapter, HW_VAR_RPWM_TOG, &val8); - val8 += 0x80; - val8 |= BIT(6); - rtw_hal_set_hwreg(padapter, HW_VAR_SET_RPWM, (u8 *)(&val8)); - RTW_INFO("%s: write rpwm=%02x\n", __FUNCTION__, val8); - adapter_to_pwrctl(padapter)->tog = (val8 + 0x80) & 0x80; - - /* do polling cpwm */ - start_time = rtw_get_current_time(); - do { - - rtw_mdelay_os(1); - - rtw_hal_get_hwreg(padapter, HW_VAR_CPWM, &cpwm_now); - if ((cpwm_orig ^ cpwm_now) & 0x80) - break; - - if (rtw_get_passing_time_ms(start_time) > 100) { - RTW_INFO("%s: polling cpwm timeout when leaving IPS in FWLPS state\n", __FUNCTION__); - break; - } - } while (1); - + rtw_set_lps_lclk(padapter, _FALSE); #endif parm[0] = 0x0; parm[1] = 0x0; @@ -806,24 +844,128 @@ void rtw_set_fw_in_ips_mode(PADAPTER padapter, u8 enable) #endif } } -#endif /* CONFIG_PNO_SUPPORT */ +#endif /* CONFIG_FWLPS_IN_IPS */ - -void rtw_leave_lps_and_chk(_adapter *padapter, u8 ps_mode) +void rtw_exec_lps(_adapter *padapter, u8 ps_mode) { struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter); + if (ps_mode == PS_MODE_ACTIVE) { +#ifdef CONFIG_LPS_ACK + _enter_critical_mutex(&pwrpriv->lps_ack_mutex, NULL); + rtw_sctx_init(&pwrpriv->lps_ack_sctx, 100); +#endif /* CONFIG_LPS_ACK */ + + rtw_hal_set_hwreg(padapter, HW_VAR_H2C_FW_PWRMODE, (u8 *)(&ps_mode)); + rtw_hal_set_hwreg(padapter, HW_VAR_LPS_STATE_CHK, (u8 *)(&ps_mode)); + +#ifdef CONFIG_LPS_ACK + _exit_critical_mutex(&pwrpriv->lps_ack_mutex, NULL); +#endif /* CONFIG_LPS_ACK */ + } else { + if (MLME_IS_ASOC(padapter)) + rtw_hal_set_hwreg(padapter, HW_VAR_H2C_FW_PWRMODE, (u8 *)(&ps_mode)); + else + RTW_INFO(FUNC_ADPT_FMT": It can't execute LPS without Wi-Fi connection!\n", + FUNC_ADPT_ARG(padapter)); + } +} + +void rtw_lps_rfon_ctrl(_adapter *padapter, u8 rfon_ctrl) +{ + struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter); + u8 rpwm = 0; + + if (pwrpriv->bFwCurrentInPSMode && pwrpriv->pwr_mode != PS_MODE_ACTIVE) { + if (rfon_ctrl == rf_on) { +#ifdef CONFIG_LPS_LCLK + if (pwrpriv->lps_level >= LPS_LCLK) { + s32 ready = _FAIL; + systime stime; + s32 utime; + u32 timeout; /* unit: ms */ + +#ifdef LPS_RPWM_WAIT_MS + timeout = LPS_RPWM_WAIT_MS; +#else + timeout = 30; +#endif /* !LPS_RPWM_WAIT_MS */ + + stime = rtw_get_current_time(); + do { + ready = rtw_register_task_alive(padapter, LPS_ALIVE); + if (ready == _SUCCESS) + break; + + utime = rtw_get_passing_time_ms(stime); + if (utime > timeout) + break; + + rtw_msleep_os(1); + } while (1); + + if (ready == _FAIL) + RTW_INFO(FUNC_ADPT_FMT": It is not ready to leave 32K !!!\n", + FUNC_ADPT_ARG(padapter)); + } +#endif /* CONFIG_LPS_LCLK */ + #ifdef CONFIG_LPS_ACK _enter_critical_mutex(&pwrpriv->lps_ack_mutex, NULL); rtw_sctx_init(&pwrpriv->lps_ack_sctx, 100); #endif /* CONFIG_LPS_ACK */ - rtw_hal_set_hwreg(padapter, HW_VAR_H2C_FW_PWRMODE, (u8 *)(&ps_mode)); - rtw_hal_set_hwreg(padapter, HW_VAR_LPS_STATE_CHK, (u8 *)(&ps_mode)); + + rtw_hal_set_hwreg(padapter, HW_VAR_H2C_FW_PWRMODE_RFON_CTRL, (u8 *)(&rfon_ctrl)); + rtw_hal_set_hwreg(padapter, HW_VAR_LPS_RFON_CHK, (u8 *)(&rfon_ctrl)); #ifdef CONFIG_LPS_ACK _exit_critical_mutex(&pwrpriv->lps_ack_mutex, NULL); #endif /* CONFIG_LPS_ACK */ - + } else { + if (MLME_IS_ASOC(padapter)) { +#ifdef CONFIG_LPS_PG + if (pwrpriv->lps_level == LPS_PG) { + if (rtw_hal_set_lps_pg_info_cmd(padapter) == _FAIL) + RTW_INFO(FUNC_ADPT_FMT": Send PG H2C command Fail! \n", + FUNC_ADPT_ARG(padapter)); + } +#endif /* CONFIG_LPS_PG */ + rtw_hal_set_hwreg(padapter, HW_VAR_H2C_FW_PWRMODE_RFON_CTRL, (u8 *)(&rfon_ctrl)); + } else { + RTW_INFO(FUNC_ADPT_FMT": It can't execute RFON without Wi-Fi connection!\n", + FUNC_ADPT_ARG(padapter)); + } + +#ifdef CONFIG_LPS_LCLK + if (pwrpriv->lps_level >= LPS_LCLK) { + rtw_unregister_task_alive(padapter, LPS_ALIVE); + + if (pwrpriv->alives == 0) { + u8 polling_cnt = 0; + u8 reg_val8 = 0; + u8 result = _FAIL; + + do { + rtw_msleep_os(1); + reg_val8 = rtw_read8(padapter, REG_CR); + if (reg_val8 == 0xEA) { + result= _SUCCESS; + break; + } + polling_cnt++; + } while (polling_cnt < 100); + + if (result == _FAIL ) + RTW_INFO(FUNC_ADPT_FMT": It is not finished to enter 32K !!!\n", + FUNC_ADPT_ARG(padapter)); + } + } +#endif /* CONFIG_LPS_LCLK */ + } + } else { + RTW_INFO(FUNC_ADPT_FMT": RFON can't work due to ps state is not in LPS !\n", + FUNC_ADPT_ARG(padapter)); + } } void rtw_set_ps_mode(PADAPTER padapter, u8 ps_mode, u8 smart_ps, u8 bcn_ant_mode, const char *msg) @@ -971,7 +1113,7 @@ void rtw_set_ps_mode(PADAPTER padapter, u8 ps_mode, u8 smart_ps, u8 bcn_ant_mode rtw_hal_set_hwreg(padapter, HW_VAR_H2C_INACTIVE_IPS, (u8 *)(&ps_mode)); #endif /* CONFIG_WOWLAN */ - rtw_leave_lps_and_chk(padapter, ps_mode); + rtw_exec_lps(padapter, ps_mode); #ifdef CONFIG_LPS_PG if (pwrpriv->lps_level == LPS_PG) { @@ -1052,9 +1194,8 @@ void rtw_set_ps_mode(PADAPTER padapter, u8 ps_mode, u8 smart_ps, u8 bcn_ant_mode pwrpriv->wmm_smart_ps = pregistrypriv->wmm_smart_ps; #endif /* CONFIG_WMMPS_STA */ + rtw_exec_lps(padapter, ps_mode); - if (check_fwstate(pmlmepriv, WIFI_ASOC_STATE)) - rtw_hal_set_hwreg(padapter, HW_VAR_H2C_FW_PWRMODE, (u8 *)(&ps_mode)); #ifdef CONFIG_WOWLAN if (pwrpriv->wowlan_mode == _TRUE) rtw_hal_set_hwreg(padapter, HW_VAR_H2C_INACTIVE_IPS, (u8 *)(&ps_mode)); @@ -1323,7 +1464,7 @@ void LeaveAllPowerSaveModeDirect(PADAPTER Adapter) } else { if (pwrpriv->rf_pwrstate == rf_off) { -#if defined(CONFIG_FWLPS_IN_IPS) || defined(CONFIG_SWLPS_IN_IPS) || defined(CONFIG_RTL8188E) +#if defined(CONFIG_FWLPS_IN_IPS) || defined(CONFIG_SWLPS_IN_IPS) || defined(CONFIG_RTL8188E) || defined(CONFIG_PNO_SUPPORT) #ifdef CONFIG_IPS if (_FALSE == ips_leave(pri_padapter)) RTW_INFO("======> ips_leave fail.............\n"); @@ -1518,7 +1659,8 @@ static void dma_event_callback(struct work_struct *work) #ifdef CONFIG_LPS_RPWM_TIMER #define DBG_CPWM_CHK_FAIL -#if defined(DBG_CPWM_CHK_FAIL) && (defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8822C)) +#if defined(DBG_CPWM_CHK_FAIL) && (defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8822C) \ + || defined(CONFIG_RTL8723F)) #define CPU_EXCEPTION_CODE 0xFAFAFAFA static void rtw_cpwm_chk_fail_debug(_adapter *padapter) { @@ -1587,7 +1729,8 @@ static void rpwmtimeout_workitem_callback(struct work_struct *work) pwrpriv->rpwm_retry = 0; _exit_pwrlock(&pwrpriv->lock); -#if defined(DBG_CPWM_CHK_FAIL) && (defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8822C)) +#if defined(DBG_CPWM_CHK_FAIL) && (defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8822C) \ + || defined(CONFIG_RTL8723F)) RTW_INFO("+%s: rpwm=0x%02X cpwm=0x%02X\n", __func__, pwrpriv->rpwm, pwrpriv->cpwm); rtw_cpwm_chk_fail_debug(padapter); #endif @@ -2084,7 +2227,7 @@ void rtw_init_pwrctrl_priv(PADAPTER padapter) struct registry_priv *registry_par = &padapter->registrypriv; #endif #ifdef CONFIG_GPIO_WAKEUP - u8 val8 = 0; + PHAL_DATA_TYPE pHalData = GET_HAL_DATA(padapter); #endif #if defined(CONFIG_CONCURRENT_MODE) @@ -2191,23 +2334,38 @@ void rtw_init_pwrctrl_priv(PADAPTER padapter) #endif /* CONFIG_HAS_EARLYSUSPEND || CONFIG_ANDROID_POWER */ #ifdef CONFIG_GPIO_WAKEUP + pwrctrlpriv->wowlan_gpio_index = WAKEUP_GPIO_IDX; + /* set output low state in initial */ + pwrctrlpriv->wowlan_gpio_output_state = GPIO_OUTPUT_LOW; /*default low active*/ pwrctrlpriv->is_high_active = HIGH_ACTIVE_DEV2HST; pwrctrlpriv->hst2dev_high_active = HIGH_ACTIVE_HST2DEV; + +#if (defined(CONFIG_RTL8192F) && defined(CONFIG_USB_HCI) && defined(CONFIG_BT_COEXIST)) + if (pHalData->EEPROMBluetoothCoexist == _TRUE) { + /* for 8725AU case */ + pwrctrlpriv->wowlan_gpio_index = WAKEUP_GPIO_IDX_8725AU; + pwrctrlpriv->is_high_active = HIGH_ACTIVE_DEV2HST_8725AU; + } +#endif #ifdef CONFIG_RTW_ONE_PIN_GPIO - rtw_hal_switch_gpio_wl_ctrl(padapter, WAKEUP_GPIO_IDX, _TRUE); - rtw_hal_set_input_gpio(padapter, WAKEUP_GPIO_IDX); + rtw_hal_switch_gpio_wl_ctrl(padapter, pwrctrlpriv->wowlan_gpio_index, _TRUE); + rtw_hal_set_input_gpio(padapter, pwrctrlpriv->wowlan_gpio_index); #else #ifdef CONFIG_WAKEUP_GPIO_INPUT_MODE if (pwrctrlpriv->is_high_active == 0) - rtw_hal_set_input_gpio(padapter, WAKEUP_GPIO_IDX); + rtw_hal_set_input_gpio(padapter, pwrctrlpriv->wowlan_gpio_index); else - rtw_hal_set_output_gpio(padapter, WAKEUP_GPIO_IDX, 0); + rtw_hal_set_output_gpio(padapter, pwrctrlpriv->wowlan_gpio_index, + GPIO_OUTPUT_LOW); #else - val8 = (pwrctrlpriv->is_high_active == 0) ? 1 : 0; - rtw_hal_set_output_gpio(padapter, WAKEUP_GPIO_IDX, val8); - RTW_INFO("%s: set GPIO_%d %d as default.\n", - __func__, WAKEUP_GPIO_IDX, val8); + rtw_hal_set_output_gpio(padapter, pwrctrlpriv->wowlan_gpio_index + , pwrctrlpriv->wowlan_gpio_output_state); + rtw_hal_switch_gpio_wl_ctrl(padapter, pwrctrlpriv->wowlan_gpio_index, _TRUE); + RTW_INFO("%s: set GPIO_%d to OUTPUT %s state in initial and %s_ACTIVE.\n", + __func__, pwrctrlpriv->wowlan_gpio_index, + pwrctrlpriv->wowlan_gpio_output_state ? "HIGH" : "LOW", + pwrctrlpriv->is_high_active ? "HIGI" : "LOW"); #endif /*CONFIG_WAKEUP_GPIO_INPUT_MODE*/ #endif /* CONFIG_RTW_ONE_PIN_GPIO */ #endif /* CONFIG_GPIO_WAKEUP */ @@ -2241,13 +2399,25 @@ void rtw_init_pwrctrl_priv(PADAPTER padapter) #ifdef CONFIG_PNO_SUPPORT pwrctrlpriv->pno_inited = _FALSE; pwrctrlpriv->pnlo_info = NULL; + #ifndef RTW_HALMAC pwrctrlpriv->pscan_info = NULL; + #endif pwrctrlpriv->pno_ssid_list = NULL; #endif /* CONFIG_PNO_SUPPORT */ #ifdef CONFIG_WOW_PATTERN_HW_CAM _rtw_mutex_init(&pwrctrlpriv->wowlan_pattern_cam_mutex); #endif + +#ifdef CONFIG_WOW_KEEP_ALIVE_PATTERN + pwrctrlpriv->wowlan_keep_alive_ack_index = 0xFF; + pwrctrlpriv->wowlan_wake_pattern_index = 0xFF; +#endif/*CONFIG_WOW_KEEP_ALIVE_PATTERN*/ pwrctrlpriv->wowlan_aoac_rpt_loc = 0; +#ifdef CONFIG_WAR_OFFLOAD +#if defined(CONFIG_OFFLOAD_MDNS_V4) || defined(CONFIG_OFFLOAD_MDNS_V6) + rtw_wow_war_mdns_parms_reset(padapter, _TRUE); +#endif /* defined(CONFIG_OFFLOAD_MDNS_V4) || defined(CONFIG_OFFLOAD_MDNS_V6) */ +#endif /* CONFIG_WAR_OFFLOAD */ #endif /* CONFIG_WOWLAN */ #ifdef CONFIG_LPS_POFF @@ -2306,8 +2476,10 @@ void rtw_free_pwrctrl_priv(PADAPTER adapter) if (pwrctrlpriv->pnlo_info != NULL) printk("****** pnlo_info memory leak********\n"); + #ifndef RTW_HALMAC if (pwrctrlpriv->pscan_info != NULL) printk("****** pscan_info memory leak********\n"); + #endif if (pwrctrlpriv->pno_ssid_list != NULL) printk("****** pno_ssid_list memory leak********\n"); diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_recv.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_recv.c index 181fac9a..862054b2 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_recv.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_recv.c @@ -144,12 +144,15 @@ sint _rtw_init_recv_priv(struct recv_priv *precvpriv, _adapter *padapter) #ifdef CONFIG_NEW_SIGNAL_STAT_PROCESS rtw_init_timer(&precvpriv->signal_stat_timer, padapter, rtw_signal_stat_timer_hdl, padapter); - precvpriv->signal_stat_sampling_interval = 2000; /* ms */ + precvpriv->signal_stat_sampling_interval = 1000; /* ms */ /* precvpriv->signal_stat_converging_constant = 5000; */ /* ms */ rtw_set_signal_stat_timer(precvpriv); #endif /* CONFIG_NEW_SIGNAL_STAT_PROCESS */ + _rtw_memset(&precvpriv->ip_statistic, 0, + sizeof(struct rtw_ip_dbg_cnt_statistic)); + exit: @@ -397,16 +400,32 @@ u32 rtw_free_uc_swdec_pending_queue(_adapter *adapter) } +#ifndef CONFIG_RECVBUF_QUEUE_LOCK_BH +#ifdef CONFIG_SDIO_HCI +#define CONFIG_RECVBUF_QUEUE_LOCK_BH 1 +#else +#define CONFIG_RECVBUF_QUEUE_LOCK_BH 0 +#endif +#endif /* CONFIG_RECVBUF_QUEUE_LOCK_BH */ + sint rtw_enqueue_recvbuf_to_head(struct recv_buf *precvbuf, _queue *queue) { _irqL irqL; +#if CONFIG_RECVBUF_QUEUE_LOCK_BH _enter_critical_bh(&queue->lock, &irqL); +#else + _enter_critical_ex(&queue->lock, &irqL); +#endif rtw_list_delete(&precvbuf->list); rtw_list_insert_head(&precvbuf->list, get_list_head(queue)); +#if CONFIG_RECVBUF_QUEUE_LOCK_BH _exit_critical_bh(&queue->lock, &irqL); +#else + _exit_critical_ex(&queue->lock, &irqL); +#endif return _SUCCESS; } @@ -414,20 +433,23 @@ sint rtw_enqueue_recvbuf_to_head(struct recv_buf *precvbuf, _queue *queue) sint rtw_enqueue_recvbuf(struct recv_buf *precvbuf, _queue *queue) { _irqL irqL; -#ifdef CONFIG_SDIO_HCI + +#if CONFIG_RECVBUF_QUEUE_LOCK_BH _enter_critical_bh(&queue->lock, &irqL); #else _enter_critical_ex(&queue->lock, &irqL); -#endif/*#ifdef CONFIG_SDIO_HCI*/ +#endif rtw_list_delete(&precvbuf->list); rtw_list_insert_tail(&precvbuf->list, get_list_head(queue)); -#ifdef CONFIG_SDIO_HCI + +#if CONFIG_RECVBUF_QUEUE_LOCK_BH _exit_critical_bh(&queue->lock, &irqL); #else _exit_critical_ex(&queue->lock, &irqL); -#endif/*#ifdef CONFIG_SDIO_HCI*/ +#endif + return _SUCCESS; } @@ -438,11 +460,11 @@ struct recv_buf *rtw_dequeue_recvbuf(_queue *queue) struct recv_buf *precvbuf; _list *plist, *phead; -#ifdef CONFIG_SDIO_HCI +#if CONFIG_RECVBUF_QUEUE_LOCK_BH _enter_critical_bh(&queue->lock, &irqL); #else _enter_critical_ex(&queue->lock, &irqL); -#endif/*#ifdef CONFIG_SDIO_HCI*/ +#endif if (_rtw_queue_empty(queue) == _TRUE) precvbuf = NULL; @@ -457,11 +479,11 @@ struct recv_buf *rtw_dequeue_recvbuf(_queue *queue) } -#ifdef CONFIG_SDIO_HCI +#if CONFIG_RECVBUF_QUEUE_LOCK_BH _exit_critical_bh(&queue->lock, &irqL); #else _exit_critical_ex(&queue->lock, &irqL); -#endif/*#ifdef CONFIG_SDIO_HCI*/ +#endif return precvbuf; @@ -509,11 +531,19 @@ sint recvframe_chkmic(_adapter *adapter, union recv_frame *precvframe) mickey = &stainfo->dot11tkiprxmickey.skey[0]; } + if (precvframe->u.hdr.len <= prxattrib->hdrlen) { + RTW_INFO("%s pkt_len <= hdrlen!!!\n", __func__); + return _FAIL; + } datalen = precvframe->u.hdr.len - prxattrib->hdrlen - prxattrib->iv_len - prxattrib->icv_len - 8; /* icv_len included the mic code */ pframe = precvframe->u.hdr.rx_data; payload = pframe + prxattrib->hdrlen + prxattrib->iv_len; + if (datalen > precvframe->u.hdr.rx_tail - precvframe->u.hdr.rx_data || datalen > precvframe->u.hdr.rx_end - precvframe->u.hdr.rx_data){ + RTW_INFO("%s datalen is abnormal, too big!!!\n", __func__); + return _FAIL; + } /* rtw_seccalctkipmic(&stainfo->dot11tkiprxmickey.skey[0],pframe,payload, datalen ,&miccode[0],(unsigned char)prxattrib->priority); */ /* care the length of the data */ rtw_seccalctkipmic(mickey, pframe, payload, datalen , &miccode[0], (unsigned char)prxattrib->priority); /* care the length of the data */ @@ -936,7 +966,7 @@ void process_pwrbit_data(_adapter *padapter, union recv_frame *precv_frame, stru /* psta->state ^= WIFI_SLEEP_STATE; */ /* rtw_tim_map_clear(padapter, pstapriv->sta_dz_bitmap, BIT(psta->cmn.aid)); */ - wakeup_sta_to_xmit(padapter, psta); + wakeup_sta_to_xmit(padapter, psta, ALL_FRAME); /* RTW_INFO_DUMP("to wakeup, sta_dz_bitmap=", pstapriv->sta_dz_bitmap, pstapriv->aid_bmp_len); */ } } @@ -1113,6 +1143,102 @@ exit: return ret; } + +sint rtw_tdls_rx_data_validate_hdr( + _adapter *adapter, + union recv_frame *precv_frame, + struct sta_info **psta +) +{ + u8 *ptr = precv_frame->u.hdr.rx_data; + sint ret = _SUCCESS; + struct rx_pkt_attrib *pattrib = &precv_frame->u.hdr.attrib; + struct sta_priv *pstapriv = &adapter->stapriv; + struct mlme_priv *pmlmepriv = &adapter->mlmepriv; + u8 *mybssid = get_bssid(pmlmepriv); + u8 *myhwaddr = adapter_mac_addr(adapter); + u8 *sta_addr = pattrib->ta; + sint bmcast = IS_MCAST(pattrib->dst); + + struct tdls_info *ptdlsinfo = &adapter->tdlsinfo; +#ifdef CONFIG_TDLS_CH_SW + struct tdls_ch_switch *pchsw_info = &ptdlsinfo->chsw_info; +#endif + struct sta_info *ptdls_sta = NULL; + u8 *psnap_type = ptr + pattrib->hdrlen + pattrib->iv_len + SNAP_SIZE; + /* frame body located after [+2]: ether-type, [+1]: payload type */ + u8 *pframe_body = psnap_type + 2 + 1; + + *psta = ptdls_sta = rtw_get_stainfo(pstapriv, pattrib->ta); + if (ptdls_sta == NULL) { + ret = _FAIL; + goto exit; + } else if (ptdls_sta->tdls_sta_state & TDLS_LINKED_STATE) { + /* filter packets that SA is myself or multicast or broadcast */ + if (_rtw_memcmp(myhwaddr, pattrib->src, ETH_ALEN)) { + ret = _FAIL; + goto exit; + } + /* da should be for me */ + if ((!_rtw_memcmp(myhwaddr, pattrib->dst, ETH_ALEN)) && (!bmcast)) { + ret = _FAIL; + goto exit; + } + /* check BSSID */ + if (_rtw_memcmp(pattrib->bssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) || + _rtw_memcmp(mybssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) || + (!_rtw_memcmp(pattrib->bssid, mybssid, ETH_ALEN))) { + ret = _FAIL; + goto exit; + } + +#ifdef CONFIG_TDLS_CH_SW + if (ATOMIC_READ(&pchsw_info->chsw_on) == _TRUE) { + if (adapter->mlmeextpriv.cur_channel != rtw_get_oper_ch(adapter)) { + pchsw_info->ch_sw_state |= TDLS_PEER_AT_OFF_STATE; + if (!(pchsw_info->ch_sw_state & TDLS_CH_SW_INITIATOR_STATE)) + _cancel_timer_ex(&ptdls_sta->ch_sw_timer); + /* On_TDLS_Peer_Traffic_Rsp(adapter, precv_frame); */ + } + } +#endif + + /* process UAPSD tdls sta */ + process_pwrbit_data(adapter, precv_frame, ptdls_sta); + + /* if NULL-frame, check pwrbit */ + if ((get_frame_sub_type(ptr) & WIFI_DATA_NULL) == WIFI_DATA_NULL) { + /* NULL-frame with pwrbit=1, buffer_STA should buffer frames for sleep_STA */ + if (GetPwrMgt(ptr)) { + /* it would be triggered when we are off channel and receiving NULL DATA */ + /* we can confirm that peer STA is at off channel */ + RTW_INFO("TDLS: recv peer null frame with pwr bit 1\n"); + /* ptdls_sta->tdls_sta_state|=TDLS_PEER_SLEEP_STATE; */ + } + + /* TODO: Updated BSSID's seq. */ + /* RTW_INFO("drop Null Data\n"); */ + ptdls_sta->tdls_sta_state &= ~(TDLS_WAIT_PTR_STATE); + ret = _FAIL; + goto exit; + } + + /* receive some of all TDLS management frames, process it at ON_TDLS */ + if (_rtw_memcmp(psnap_type, SNAP_ETH_TYPE_TDLS, 2)) { + ret = OnTDLS(adapter, precv_frame); + goto exit; + } + + if ((get_frame_sub_type(ptr) & WIFI_QOS_DATA_TYPE) == WIFI_QOS_DATA_TYPE) + process_wmmps_data(adapter, precv_frame, ptdls_sta); + + ptdls_sta->tdls_sta_state &= ~(TDLS_WAIT_PTR_STATE); + + } + +exit: + return ret; +} #endif /* CONFIG_TDLS */ void count_rx_stats(_adapter *padapter, union recv_frame *prframe, struct sta_info *sta) @@ -1176,6 +1302,170 @@ void count_rx_stats(_adapter *padapter, union recv_frame *prframe, struct sta_in } +int rtw_sta_rx_data_validate_hdr(_adapter *adapter, union recv_frame *rframe, struct sta_info **sta) +{ +#ifdef CONFIG_LAYER2_ROAMING + struct mlme_priv *pmlmepriv = &adapter->mlmepriv; +#endif + struct sta_priv *stapriv = &adapter->stapriv; + u8 *mybssid = get_bssid(&adapter->mlmepriv); + u8 *myhwaddr = adapter_mac_addr(adapter); + struct rx_pkt_attrib *rattrib = &rframe->u.hdr.attrib; + u8 *whdr = get_recvframe_data(rframe); + u8 is_ra_bmc = IS_MCAST(GetAddr1Ptr(whdr)) ? 1 : 0; + sint ret = _FAIL; + + if (rattrib->to_fr_ds == 0) { + _rtw_memcpy(rattrib->ra, GetAddr1Ptr(whdr), ETH_ALEN); + _rtw_memcpy(rattrib->ta, get_addr2_ptr(whdr), ETH_ALEN); + _rtw_memcpy(rattrib->dst, GetAddr1Ptr(whdr), ETH_ALEN); + _rtw_memcpy(rattrib->src, get_addr2_ptr(whdr), ETH_ALEN); + _rtw_memcpy(rattrib->bssid, GetAddr3Ptr(whdr), ETH_ALEN); + + #ifdef CONFIG_TDLS + if (adapter->tdlsinfo.link_established == _TRUE) + ret = rtw_tdls_rx_data_validate_hdr(adapter, rframe, sta); + else + #endif + { + /* For Station mode, sa and bssid should always be BSSID, and DA is my mac-address */ + if (!_rtw_memcmp(rattrib->bssid, rattrib->src, ETH_ALEN)) + goto exit; + + *sta = rtw_get_stainfo(stapriv, get_addr2_ptr(whdr)); + if (*sta) + ret = _SUCCESS; + } + goto exit; + } + + if (!(MLME_STATE(adapter) & (WIFI_ASOC_STATE | WIFI_UNDER_LINKING))) { + if (!is_ra_bmc + #ifdef CONFIG_LAYER2_ROAMING + && !pmlmepriv->roam_network + #endif + ) { + + /* for AP multicast issue , modify by yiwei */ + static systime send_issue_deauth_time = 0; + + /* RTW_INFO("After send deauth , %u ms has elapsed.\n", rtw_get_passing_time_ms(send_issue_deauth_time)); */ + if (rtw_get_passing_time_ms(send_issue_deauth_time) > 10000 || send_issue_deauth_time == 0) { + send_issue_deauth_time = rtw_get_current_time(); + RTW_INFO(FUNC_ADPT_FMT" issue_deauth to "MAC_FMT" with reason(7), mlme_state:0x%x\n" + , FUNC_ADPT_ARG(adapter), MAC_ARG(get_addr2_ptr(whdr)), MLME_STATE(adapter)); + issue_deauth(adapter, get_addr2_ptr(whdr), WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA); + } + } + #ifdef DBG_RX_DROP_FRAME + RTW_INFO("DBG_RX_DROP_FRAME "FUNC_ADPT_FMT" fw_state:0x%x\n" + , FUNC_ADPT_ARG(adapter), MLME_STATE(adapter)); + #endif + goto exit; + } + + _rtw_memcpy(rattrib->ra, GetAddr1Ptr(whdr), ETH_ALEN); + _rtw_memcpy(rattrib->ta, get_addr2_ptr(whdr), ETH_ALEN); + + switch (rattrib->to_fr_ds) { + case 2: + _rtw_memcpy(rattrib->dst, GetAddr1Ptr(whdr), ETH_ALEN); + _rtw_memcpy(rattrib->src, GetAddr3Ptr(whdr), ETH_ALEN); /* may change after checking AMSDU subframe header */ + _rtw_memcpy(rattrib->bssid, get_addr2_ptr(whdr), ETH_ALEN); + break; + case 3: + _rtw_memcpy(rattrib->dst, GetAddr3Ptr(whdr), ETH_ALEN); /* may change after checking AMSDU subframe header */ + _rtw_memcpy(rattrib->src, GetAddr4Ptr(whdr), ETH_ALEN); /* may change after checking AMSDU subframe header */ + _rtw_memcpy(rattrib->bssid, get_addr2_ptr(whdr), ETH_ALEN); + break; + default: + ret = RTW_RX_HANDLED; /* don't count for drop */ + goto exit; + } + + /* filter packets that SA is myself */ + if (!rattrib->amsdu && _rtw_memcmp(myhwaddr, rattrib->src, ETH_ALEN)) { + #ifdef DBG_RX_DROP_FRAME + RTW_INFO("DBG_RX_DROP_FRAME "FUNC_ADPT_FMT" SA="MAC_FMT", myhwaddr="MAC_FMT"\n" + , FUNC_ADPT_ARG(adapter), MAC_ARG(rattrib->src), MAC_ARG(myhwaddr)); + #endif + goto exit; + } + + *sta = rtw_get_stainfo(stapriv, rattrib->ta); + if (*sta == NULL) { + #ifndef CONFIG_CUSTOMER_ALIBABA_GENERAL + if (!is_ra_bmc && !IS_RADAR_DETECTED(adapter_to_rfctl(adapter)) + #ifdef CONFIG_LAYER2_ROAMING + && !pmlmepriv->roam_network + #endif + ) { + + RTW_INFO(FUNC_ADPT_FMT" issue_deauth to "MAC_FMT" with reason(7), unknown TA\n" + , FUNC_ADPT_ARG(adapter), MAC_ARG(rattrib->ta)); + issue_deauth(adapter, rattrib->ta, WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA); + } + #endif + #ifdef DBG_RX_DROP_FRAME + RTW_INFO("DBG_RX_DROP_FRAME "FUNC_ADPT_FMT" can't get psta under STATION_MODE ; drop pkt\n" + , FUNC_ADPT_ARG(adapter)); + #endif + goto exit; + } + +#ifdef CONFIG_RTW_WDS_AUTO_EN + if (rattrib->to_fr_ds == 3 && !(sta->flags & WLAN_STA_WDS)) + sta->flags |= WLAN_STA_WDS; +#endif + + /*if ((get_frame_sub_type(whdr) & WIFI_QOS_DATA_TYPE) == WIFI_QOS_DATA_TYPE) { + } + */ + + if (get_frame_sub_type(whdr) & BIT(6)) { + /* No data, will not indicate to upper layer, temporily count it here */ + count_rx_stats(adapter, rframe, *sta); + ret = RTW_RX_HANDLED; + goto exit; + } + +#ifdef CONFIG_RTW_WDS + if (adapter_use_wds(adapter) + && !rattrib->amsdu && IS_MCAST(rattrib->dst) + && rtw_rx_wds_gptr_check(adapter, rattrib->src) + ) { + /* will not indicate to upper layer, temporily count it here */ + count_rx_stats(adapter, rframe, *sta); + ret = RTW_RX_HANDLED; + goto exit; + } +#endif + + ret = _SUCCESS; + +exit: + return ret; +} + +int rtw_sta_rx_amsdu_act_check(union recv_frame *rframe + , const u8 *da, const u8 *sa) +{ + int act = RTW_RX_MSDU_ACT_INDICATE; + +#ifdef CONFIG_RTW_WDS + _adapter *adapter = rframe->u.hdr.adapter; + + if (adapter_use_wds(adapter) + && IS_MCAST(da) + && rtw_rx_wds_gptr_check(adapter, sa) + ) { + act = 0; + } +#endif + + return act; +} + sint sta2sta_data_frame( _adapter *adapter, union recv_frame *precv_frame, @@ -1192,18 +1482,6 @@ sint sta2sta_data_frame( u8 *sta_addr = pattrib->ta; sint bmcast = IS_MCAST(pattrib->dst); -#ifdef CONFIG_TDLS - struct tdls_info *ptdlsinfo = &adapter->tdlsinfo; -#ifdef CONFIG_TDLS_CH_SW - struct tdls_ch_switch *pchsw_info = &ptdlsinfo->chsw_info; -#endif - struct sta_info *ptdls_sta = NULL; - u8 *psnap_type = ptr + pattrib->hdrlen + pattrib->iv_len + SNAP_SIZE; - /* frame body located after [+2]: ether-type, [+1]: payload type */ - u8 *pframe_body = psnap_type + 2 + 1; -#endif - - /* RTW_INFO("[%s] %d, seqnum:%d\n", __FUNCTION__, __LINE__, pattrib->seq_num); */ if ((check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) == _TRUE) || @@ -1227,102 +1505,6 @@ sint sta2sta_data_frame( goto exit; } - } else if (check_fwstate(pmlmepriv, WIFI_STATION_STATE) == _TRUE) { -#ifdef CONFIG_TDLS - - /* direct link data transfer */ - if (ptdlsinfo->link_established == _TRUE) { - *psta = ptdls_sta = rtw_get_stainfo(pstapriv, pattrib->ta); - if (ptdls_sta == NULL) { - ret = _FAIL; - goto exit; - } else if (ptdls_sta->tdls_sta_state & TDLS_LINKED_STATE) { - /* filter packets that SA is myself or multicast or broadcast */ - if (_rtw_memcmp(myhwaddr, pattrib->src, ETH_ALEN)) { - ret = _FAIL; - goto exit; - } - /* da should be for me */ - if ((!_rtw_memcmp(myhwaddr, pattrib->dst, ETH_ALEN)) && (!bmcast)) { - ret = _FAIL; - goto exit; - } - /* check BSSID */ - if (_rtw_memcmp(pattrib->bssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) || - _rtw_memcmp(mybssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) || - (!_rtw_memcmp(pattrib->bssid, mybssid, ETH_ALEN))) { - ret = _FAIL; - goto exit; - } - -#ifdef CONFIG_TDLS_CH_SW - if (ATOMIC_READ(&pchsw_info->chsw_on) == _TRUE) { - if (adapter->mlmeextpriv.cur_channel != rtw_get_oper_ch(adapter)) { - pchsw_info->ch_sw_state |= TDLS_PEER_AT_OFF_STATE; - if (!(pchsw_info->ch_sw_state & TDLS_CH_SW_INITIATOR_STATE)) - _cancel_timer_ex(&ptdls_sta->ch_sw_timer); - /* On_TDLS_Peer_Traffic_Rsp(adapter, precv_frame); */ - } - } -#endif - - /* process UAPSD tdls sta */ - process_pwrbit_data(adapter, precv_frame, ptdls_sta); - - /* if NULL-frame, check pwrbit */ - if ((get_frame_sub_type(ptr) & WIFI_DATA_NULL) == WIFI_DATA_NULL) { - /* NULL-frame with pwrbit=1, buffer_STA should buffer frames for sleep_STA */ - if (GetPwrMgt(ptr)) { - /* it would be triggered when we are off channel and receiving NULL DATA */ - /* we can confirm that peer STA is at off channel */ - RTW_INFO("TDLS: recv peer null frame with pwr bit 1\n"); - /* ptdls_sta->tdls_sta_state|=TDLS_PEER_SLEEP_STATE; */ - } - - /* TODO: Updated BSSID's seq. */ - /* RTW_INFO("drop Null Data\n"); */ - ptdls_sta->tdls_sta_state &= ~(TDLS_WAIT_PTR_STATE); - ret = _FAIL; - goto exit; - } - - /* receive some of all TDLS management frames, process it at ON_TDLS */ - if (_rtw_memcmp(psnap_type, SNAP_ETH_TYPE_TDLS, 2)) { - ret = OnTDLS(adapter, precv_frame); - goto exit; - } - - if ((get_frame_sub_type(ptr) & WIFI_QOS_DATA_TYPE) == WIFI_QOS_DATA_TYPE) - process_wmmps_data(adapter, precv_frame, ptdls_sta); - - ptdls_sta->tdls_sta_state &= ~(TDLS_WAIT_PTR_STATE); - - } - } else -#endif /* CONFIG_TDLS */ - { - /* For Station mode, sa and bssid should always be BSSID, and DA is my mac-address */ - if (!_rtw_memcmp(pattrib->bssid, pattrib->src, ETH_ALEN)) { - ret = _FAIL; - goto exit; - } - } - - } else if (check_fwstate(pmlmepriv, WIFI_AP_STATE) == _TRUE) { - if (bmcast) { - /* For AP mode, if DA == MCAST, then BSSID should be also MCAST */ - if (!IS_MCAST(pattrib->bssid)) { - ret = _FAIL; - goto exit; - } - } else { /* not mc-frame */ - /* For AP mode, if DA is non-MCAST, then it must be BSSID, and bssid == BSSID */ - if (!_rtw_memcmp(pattrib->bssid, pattrib->dst, ETH_ALEN)) { - ret = _FAIL; - goto exit; - } - } - } else if (check_fwstate(pmlmepriv, WIFI_MP_STATE) == _TRUE) { _rtw_memcpy(pattrib->dst, GetAddr1Ptr(ptr), ETH_ALEN); _rtw_memcpy(pattrib->src, get_addr2_ptr(ptr), ETH_ALEN); @@ -1334,11 +1516,7 @@ sint sta2sta_data_frame( } else ret = _FAIL; -#ifdef CONFIG_TDLS - if (ptdls_sta == NULL) -#endif - *psta = rtw_get_stainfo(pstapriv, sta_addr); - + *psta = rtw_get_stainfo(pstapriv, sta_addr); if (*psta == NULL) { #ifdef CONFIG_MP_INCLUDED if (adapter->registrypriv.mp_mode == 1) { @@ -1352,7 +1530,6 @@ sint sta2sta_data_frame( exit: return ret; - } sint ap2sta_data_frame( @@ -1365,79 +1542,10 @@ sint ap2sta_data_frame( sint ret = _SUCCESS; struct sta_priv *pstapriv = &adapter->stapriv; struct mlme_priv *pmlmepriv = &adapter->mlmepriv; - u8 *mybssid = get_bssid(pmlmepriv); u8 *myhwaddr = adapter_mac_addr(adapter); sint bmcast = IS_MCAST(pattrib->dst); - - if ((check_fwstate(pmlmepriv, WIFI_STATION_STATE) == _TRUE) - && (check_fwstate(pmlmepriv, WIFI_ASOC_STATE) == _TRUE - || check_fwstate(pmlmepriv, WIFI_UNDER_LINKING) == _TRUE) - ) { - - /* filter packets that SA is myself or multicast or broadcast */ - if (_rtw_memcmp(myhwaddr, pattrib->src, ETH_ALEN)) { - #ifdef DBG_RX_DROP_FRAME - RTW_INFO("DBG_RX_DROP_FRAME "FUNC_ADPT_FMT" SA="MAC_FMT", myhwaddr="MAC_FMT"\n" - , FUNC_ADPT_ARG(adapter), MAC_ARG(pattrib->src), MAC_ARG(myhwaddr)); - #endif - ret = _FAIL; - goto exit; - } - - /* da should be for me */ - if ((!_rtw_memcmp(myhwaddr, pattrib->dst, ETH_ALEN)) && (!bmcast)) { - #ifdef DBG_RX_DROP_FRAME - RTW_INFO("DBG_RX_DROP_FRAME "FUNC_ADPT_FMT" DA="MAC_FMT"\n" - , FUNC_ADPT_ARG(adapter), MAC_ARG(pattrib->dst)); - #endif - ret = _FAIL; - goto exit; - } - - - /* check BSSID */ - if (_rtw_memcmp(pattrib->bssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) || - _rtw_memcmp(mybssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) || - (!_rtw_memcmp(pattrib->bssid, mybssid, ETH_ALEN))) { - #ifdef DBG_RX_DROP_FRAME - RTW_INFO("DBG_RX_DROP_FRAME "FUNC_ADPT_FMT" BSSID="MAC_FMT", mybssid="MAC_FMT"\n" - , FUNC_ADPT_ARG(adapter), MAC_ARG(pattrib->bssid), MAC_ARG(mybssid)); - #endif -#ifndef CONFIG_CUSTOMER_ALIBABA_GENERAL - if (!bmcast - && !IS_RADAR_DETECTED(adapter_to_rfctl(adapter)) - ) { - RTW_INFO(ADPT_FMT" -issue_deauth to the nonassociated ap=" MAC_FMT " for the reason(7)\n", ADPT_ARG(adapter), MAC_ARG(pattrib->bssid)); - issue_deauth(adapter, pattrib->bssid, WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA); - } -#endif - ret = _FAIL; - goto exit; - } - - *psta = rtw_get_stainfo(pstapriv, pattrib->ta); - if (*psta == NULL) { - #ifdef DBG_RX_DROP_FRAME - RTW_INFO("DBG_RX_DROP_FRAME "FUNC_ADPT_FMT" can't get psta under STATION_MODE ; drop pkt\n" - , FUNC_ADPT_ARG(adapter)); - #endif - ret = _FAIL; - goto exit; - } - - /*if ((get_frame_sub_type(ptr) & WIFI_QOS_DATA_TYPE) == WIFI_QOS_DATA_TYPE) { - } - */ - - if (get_frame_sub_type(ptr) & BIT(6)) { - /* No data, will not indicate to upper layer, temporily count it here */ - count_rx_stats(adapter, precv_frame, *psta); - ret = RTW_RX_HANDLED; - goto exit; - } - - } else if ((check_fwstate(pmlmepriv, WIFI_MP_STATE) == _TRUE) && + if ((check_fwstate(pmlmepriv, WIFI_MP_STATE) == _TRUE) && (check_fwstate(pmlmepriv, WIFI_ASOC_STATE) == _TRUE)) { _rtw_memcpy(pattrib->dst, GetAddr1Ptr(ptr), ETH_ALEN); _rtw_memcpy(pattrib->src, get_addr2_ptr(ptr), ETH_ALEN); @@ -1456,11 +1564,6 @@ sint ap2sta_data_frame( goto exit; } - - } else if (check_fwstate(pmlmepriv, WIFI_AP_STATE) == _TRUE) { - /* Special case */ - ret = RTW_RX_HANDLED; - goto exit; } else { if (_rtw_memcmp(myhwaddr, pattrib->dst, ETH_ALEN) && (!bmcast)) { *psta = rtw_get_stainfo(pstapriv, pattrib->ta); @@ -1489,8 +1592,6 @@ sint ap2sta_data_frame( } exit: - - return ret; } @@ -1507,39 +1608,7 @@ sint sta2ap_data_frame( unsigned char *mybssid = get_bssid(pmlmepriv); sint ret = _SUCCESS; - - if (check_fwstate(pmlmepriv, WIFI_AP_STATE) == _TRUE) { - /* For AP mode, RA=BSSID, TX=STA(SRC_ADDR), A3=DST_ADDR */ - if (!_rtw_memcmp(pattrib->bssid, mybssid, ETH_ALEN)) { - ret = _FAIL; - goto exit; - } - - *psta = rtw_get_stainfo(pstapriv, pattrib->ta); - if (*psta == NULL) { - if (!IS_RADAR_DETECTED(adapter_to_rfctl(adapter))) { -#ifndef CONFIG_CUSTOMER_ALIBABA_GENERAL - RTW_INFO("issue_deauth to sta=" MAC_FMT " for the reason(7)\n", MAC_ARG(pattrib->src)); - issue_deauth(adapter, pattrib->src, WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA); -#endif - } - - ret = RTW_RX_HANDLED; - goto exit; - } - - process_pwrbit_data(adapter, precv_frame, *psta); - - if ((get_frame_sub_type(ptr) & WIFI_QOS_DATA_TYPE) == WIFI_QOS_DATA_TYPE) - process_wmmps_data(adapter, precv_frame, *psta); - - if (get_frame_sub_type(ptr) & BIT(6)) { - /* No data, will not indicate to upper layer, temporily count it here */ - count_rx_stats(adapter, precv_frame, *psta); - ret = RTW_RX_HANDLED; - goto exit; - } - } else if ((check_fwstate(pmlmepriv, WIFI_MP_STATE) == _TRUE) && + if ((check_fwstate(pmlmepriv, WIFI_MP_STATE) == _TRUE) && (check_fwstate(pmlmepriv, WIFI_ASOC_STATE) == _TRUE)) { /* RTW_INFO("%s ,in WIFI_MP_STATE\n",__func__); */ _rtw_memcpy(pattrib->dst, GetAddr1Ptr(ptr), ETH_ALEN); @@ -1587,6 +1656,11 @@ sint validate_recv_ctrl_frame(_adapter *padapter, union recv_frame *precv_frame) struct sta_priv *pstapriv = &padapter->stapriv; u8 *pframe = precv_frame->u.hdr.rx_data; struct sta_info *psta = NULL; + u8 dataq_null = _TRUE; + #ifdef CONFIG_RTW_MGMT_QUEUE + u8 mgmtq_null = _TRUE; + #endif + /* uint len = precv_frame->u.hdr.len; */ /* RTW_INFO("+validate_recv_ctrl_frame\n"); */ @@ -1654,6 +1728,36 @@ sint validate_recv_ctrl_frame(_adapter *padapter, union recv_frame *precv_frame) /* _enter_critical_bh(&psta->sleep_q.lock, &irqL); */ _enter_critical_bh(&pxmitpriv->lock, &irqL); +#ifdef CONFIG_RTW_MGMT_QUEUE + xmitframe_phead = get_list_head(&psta->mgmt_sleep_q); + xmitframe_plist = get_next(xmitframe_phead); + + if ((rtw_end_of_queue_search(xmitframe_phead, xmitframe_plist)) == _FALSE) { + pxmitframe = LIST_CONTAINOR(xmitframe_plist, struct xmit_frame, list); + + xmitframe_plist = get_next(xmitframe_plist); + + rtw_list_delete(&pxmitframe->list); + + #ifdef DBG_MGMT_QUEUE + RTW_INFO("%s seq_num = %u, subtype = 0x%x\n", + __func__, pxmitframe->attrib.seqnum, pxmitframe->attrib.subtype); + #endif + + psta->mgmt_sleepq_len--; + + if (psta->mgmt_sleepq_len > 0) + pxmitframe->attrib.mdata = 1; + else + pxmitframe->attrib.mdata = 0; + + pxmitframe->attrib.triggered = 1; + + rtw_hal_mgmt_xmitframe_enqueue(padapter, pxmitframe); + + mgmtq_null = _FALSE; + } +#endif xmitframe_phead = get_list_head(&psta->sleep_q); xmitframe_plist = get_next(xmitframe_phead); @@ -1684,43 +1788,52 @@ sint validate_recv_ctrl_frame(_adapter *padapter, union recv_frame *precv_frame) #endif rtw_hal_xmitframe_enqueue(padapter, pxmitframe); - if (psta->sleepq_len == 0) { - rtw_tim_map_clear(padapter, pstapriv->tim_bitmap, psta->cmn.aid); + dataq_null = _FALSE; + } - /* RTW_INFO("after handling ps-poll\n"); */ - /* RTW_INFO_DUMP("after handling, tim=", pstapriv->tim_bitmap, pstapriv->aid_bmp_len); */ + _exit_critical_bh(&pxmitpriv->lock, &irqL); + /* _exit_critical_bh(&psta->sleep_q.lock, &irqL); */ - /* upate BCN for TIM IE */ - /* update_BCNTIM(padapter); */ - update_beacon(padapter, _TIM_IE_, NULL, _TRUE, 0); - } + /* Error handler : TIM is setted, but data queue and management queue is empty. */ + if (dataq_null + #ifdef CONFIG_RTW_MGMT_QUEUE + && mgmtq_null + #endif + && rtw_tim_map_is_set(padapter, pstapriv->tim_bitmap, psta->cmn.aid)) { - /* _exit_critical_bh(&psta->sleep_q.lock, &irqL); */ - _exit_critical_bh(&pxmitpriv->lock, &irqL); + if (psta->sleepq_len == 0 + #ifdef CONFIG_RTW_MGMT_QUEUE + && psta->mgmt_sleepq_len == 0 + #endif + ) { + RTW_INFO("No buffered packets to xmit\n"); - } else { - /* _exit_critical_bh(&psta->sleep_q.lock, &irqL); */ - _exit_critical_bh(&pxmitpriv->lock, &irqL); - - /* RTW_INFO("no buffered packets to xmit\n"); */ - if (rtw_tim_map_is_set(padapter, pstapriv->tim_bitmap, psta->cmn.aid)) { - if (psta->sleepq_len == 0) { - RTW_INFO("no buffered packets to xmit\n"); - - /* issue nulldata with More data bit = 0 to indicate we have no buffered packets */ - issue_nulldata(padapter, psta->cmn.mac_addr, 0, 0, 0); - } else { + /* issue nulldata with More data bit = 0 to indicate we have no buffered packets */ + issue_nulldata(padapter, psta->cmn.mac_addr, 0, 0, 0); + } else { + if (psta->sleepq_len != 0) { RTW_INFO("error!psta->sleepq_len=%d\n", psta->sleepq_len); psta->sleepq_len = 0; } - - rtw_tim_map_clear(padapter, pstapriv->tim_bitmap, psta->cmn.aid); - - /* upate BCN for TIM IE */ - /* update_BCNTIM(padapter); */ - update_beacon(padapter, _TIM_IE_, NULL, _TRUE, 0); + #ifdef CONFIG_RTW_MGMT_QUEUE + if (psta->mgmt_sleepq_len != 0) { + RTW_INFO("error!psta->mgmt_sleepq_len=%d\n", psta->mgmt_sleepq_len); + psta->mgmt_sleepq_len = 0; + } + #endif } } + + if (psta->sleepq_len == 0 + #ifdef CONFIG_RTW_MGMT_QUEUE + && psta->mgmt_sleepq_len == 0 + #endif + ) { + rtw_tim_map_clear(padapter, pstapriv->tim_bitmap, psta->cmn.aid); + + /* upate BCN for TIM IE */ + update_beacon(padapter, _TIM_IE_, NULL, _TRUE, 0); + } } #endif /* CONFIG_AP_MODE */ } else if (get_frame_sub_type(pframe) == WIFI_NDPA) { @@ -2049,8 +2162,18 @@ sint validate_recv_data_frame(_adapter *adapter, union recv_frame *precv_frame) if (MLME_IS_MESH(adapter)) { ret = rtw_mesh_rx_data_validate_hdr(adapter, precv_frame, &psta); goto pre_validate_status_chk; - } + } else #endif +#ifdef CONFIG_AP_MODE + if (MLME_IS_AP(adapter)) { + ret = rtw_ap_rx_data_validate_hdr(adapter, precv_frame, &psta); + goto pre_validate_status_chk; + } else +#endif + if (MLME_IS_STA(adapter)) { + ret = rtw_sta_rx_data_validate_hdr(adapter, precv_frame, &psta); + goto pre_validate_status_chk; + } switch (pattrib->to_fr_ds) { case 0: @@ -2065,19 +2188,19 @@ sint validate_recv_data_frame(_adapter *adapter, union recv_frame *precv_frame) case 1: _rtw_memcpy(pattrib->ra, GetAddr1Ptr(ptr), ETH_ALEN); _rtw_memcpy(pattrib->ta, get_addr2_ptr(ptr), ETH_ALEN); - _rtw_memcpy(pattrib->dst, GetAddr1Ptr(ptr), ETH_ALEN); - _rtw_memcpy(pattrib->src, GetAddr3Ptr(ptr), ETH_ALEN); - _rtw_memcpy(pattrib->bssid, get_addr2_ptr(ptr), ETH_ALEN); - ret = ap2sta_data_frame(adapter, precv_frame, &psta); + _rtw_memcpy(pattrib->dst, GetAddr3Ptr(ptr), ETH_ALEN); + _rtw_memcpy(pattrib->src, get_addr2_ptr(ptr), ETH_ALEN); + _rtw_memcpy(pattrib->bssid, GetAddr1Ptr(ptr), ETH_ALEN); + ret = sta2ap_data_frame(adapter, precv_frame, &psta); break; case 2: _rtw_memcpy(pattrib->ra, GetAddr1Ptr(ptr), ETH_ALEN); _rtw_memcpy(pattrib->ta, get_addr2_ptr(ptr), ETH_ALEN); - _rtw_memcpy(pattrib->dst, GetAddr3Ptr(ptr), ETH_ALEN); - _rtw_memcpy(pattrib->src, get_addr2_ptr(ptr), ETH_ALEN); - _rtw_memcpy(pattrib->bssid, GetAddr1Ptr(ptr), ETH_ALEN); - ret = sta2ap_data_frame(adapter, precv_frame, &psta); + _rtw_memcpy(pattrib->dst, GetAddr1Ptr(ptr), ETH_ALEN); + _rtw_memcpy(pattrib->src, GetAddr3Ptr(ptr), ETH_ALEN); + _rtw_memcpy(pattrib->bssid, get_addr2_ptr(ptr), ETH_ALEN); + ret = ap2sta_data_frame(adapter, precv_frame, &psta); break; case 3: @@ -2087,9 +2210,8 @@ sint validate_recv_data_frame(_adapter *adapter, union recv_frame *precv_frame) break; } -#ifdef CONFIG_RTW_MESH pre_validate_status_chk: -#endif + if (ret == _FAIL) { #ifdef DBG_RX_DROP_FRAME RTW_INFO("DBG_RX_DROP_FRAME "FUNC_ADPT_FMT" case:%d, res:%d, ra="MAC_FMT", ta="MAC_FMT"\n" @@ -2200,7 +2322,7 @@ pre_validate_status_chk: u16 ether_type; u8* ether_ptr = NULL; u16 eapol_type = 0x888e; - ether_ptr = ptr + pattrib->hdrlen + pattrib->iv_len + LLC_HEADER_SIZE; + ether_ptr = ptr + pattrib->hdrlen + pattrib->iv_len + RATTRIB_GET_MCTRL_LEN(pattrib) + LLC_HEADER_SIZE; _rtw_memcpy(ðer_type, ether_ptr, 2); ether_type = ntohs((unsigned short)ether_type); @@ -2238,19 +2360,22 @@ pre_validate_status_chk: } } else { /* CVE-2020-26140, CVE-2020-26143, CVE-2020-26147 */ - if (!pattrib->privacy) { - #ifdef DBG_RX_DROP_FRAME - RTW_INFO("DBG_RX_DROP_FRAME "FUNC_ADPT_FMT"recv plaintext packet for sta="MAC_FMT"\n" - , FUNC_ADPT_ARG(adapter), MAC_ARG(psta->cmn.mac_addr)); - #endif - ret = _FAIL; - goto exit; + if (!pattrib->privacy + #ifdef CONFIG_WAPI_SUPPORT + && (0x88b4 != ether_type) /* Let WAI packet pass here */ + #endif + ) { + #ifdef DBG_RX_DROP_FRAME + RTW_INFO("DBG_RX_DROP_FRAME "FUNC_ADPT_FMT"recv plaintext packet for sta="MAC_FMT"\n" + , FUNC_ADPT_ARG(adapter), MAC_ARG(psta->cmn.mac_addr)); + #endif + ret = _FAIL; + goto exit; } } } } - #ifdef CONFIG_RTW_MESH if (!pattrib->amsdu && pattrib->mesh_ctrl_present @@ -2304,6 +2429,7 @@ sint validate_recv_frame(_adapter *adapter, union recv_frame *precv_frame) u16 sc; u8 external_len = 0; #endif + struct mlme_priv *pmlmepriv = &adapter->mlmepriv; #ifdef CONFIG_FIND_BEST_CHANNEL @@ -2380,6 +2506,14 @@ sint validate_recv_frame(_adapter *adapter, union recv_frame *precv_frame) retval = _FAIL; /* only data frame return _SUCCESS */ break; case WIFI_CTRL_TYPE: /* ctrl */ + + if (subtype == 0xd4) + printk("ACK %02x %02x\n",type, subtype); + +#ifdef CONFIG_LAYER2_ROAMING + if (pmlmepriv->roam_network && pmlmepriv->roam_ack) + pmlmepriv->roam_ack = 1; +#endif DBG_COUNTER(adapter->rx_logs.core_rx_pre_ctrl); retval = validate_recv_ctrl_frame(adapter, precv_frame); if (retval == _FAIL) { @@ -2458,89 +2592,62 @@ exit: return retval; } +/* Reture expected handling for LLC */ +enum rtw_rx_llc_hdl rtw_recv_llc_parse(u8 *msdu, u16 msdu_len) +{ + u16 eth_type; + + if (msdu_len < 8) + return RTW_RX_LLC_KEEP; + + eth_type = RTW_GET_BE16(msdu + SNAP_SIZE); + + if ((_rtw_memcmp(msdu, rtw_rfc1042_header, SNAP_SIZE) + && eth_type != ETH_P_AARP && eth_type != ETH_P_IPX) + || _rtw_memcmp(msdu, rtw_bridge_tunnel_header, SNAP_SIZE)) { + /* remove RFC1042 or Bridge-Tunnel encapsulation and replace EtherType */ + return RTW_RX_LLC_REMOVE; + } else { + /* Leave Ethernet header part of hdr and full payload */ + return RTW_RX_LLC_KEEP; + } + + /* TODO: VLAN tagged */ +} /* remove the wlanhdr and add the eth_hdr */ -sint wlanhdr_to_ethhdr(union recv_frame *precvframe) +sint wlanhdr_to_ethhdr(union recv_frame *precvframe, enum rtw_rx_llc_hdl llc_hdl) { - sint rmv_len; - u16 eth_type, len; - u8 bsnaphdr; - u8 *psnap_type; - struct ieee80211_snap_hdr *psnap; - - sint ret = _SUCCESS; - _adapter *adapter = precvframe->u.hdr.adapter; - struct mlme_priv *pmlmepriv = &adapter->mlmepriv; - u8 *ptr = get_recvframe_data(precvframe) ; /* point to frame_ctrl field */ struct rx_pkt_attrib *pattrib = &precvframe->u.hdr.attrib; - + sint rmv_len; + u16 eth_type, len; + sint ret = _SUCCESS; if (pattrib->encrypt) recvframe_pull_tail(precvframe, pattrib->icv_len); - psnap = (struct ieee80211_snap_hdr *)(ptr + pattrib->hdrlen + pattrib->iv_len + RATTRIB_GET_MCTRL_LEN(pattrib)); - psnap_type = ptr + pattrib->hdrlen + pattrib->iv_len + RATTRIB_GET_MCTRL_LEN(pattrib) + SNAP_SIZE; - /* convert hdr + possible LLC headers into Ethernet header */ - /* eth_type = (psnap_type[0] << 8) | psnap_type[1]; */ - if ((_rtw_memcmp(psnap, rtw_rfc1042_header, SNAP_SIZE) && - (_rtw_memcmp(psnap_type, SNAP_ETH_TYPE_IPX, 2) == _FALSE) && - (_rtw_memcmp(psnap_type, SNAP_ETH_TYPE_APPLETALK_AARP, 2) == _FALSE)) || - /* eth_type != ETH_P_AARP && eth_type != ETH_P_IPX) || */ - _rtw_memcmp(psnap, rtw_bridge_tunnel_header, SNAP_SIZE)) { - /* remove RFC1042 or Bridge-Tunnel encapsulation and replace EtherType */ - bsnaphdr = _TRUE; - } else { - /* Leave Ethernet header part of hdr and full payload */ - bsnaphdr = _FALSE; - } - - rmv_len = pattrib->hdrlen + pattrib->iv_len + RATTRIB_GET_MCTRL_LEN(pattrib) + (bsnaphdr ? SNAP_SIZE : 0); + rmv_len = pattrib->hdrlen + pattrib->iv_len + RATTRIB_GET_MCTRL_LEN(pattrib) + (llc_hdl ? SNAP_SIZE : 0); len = precvframe->u.hdr.len - rmv_len; - - _rtw_memcpy(ð_type, ptr + rmv_len, 2); - eth_type = ntohs((unsigned short)eth_type); /* pattrib->ether_type */ - pattrib->eth_type = eth_type; - - - if ((check_fwstate(pmlmepriv, WIFI_MP_STATE) == _TRUE)) { - ptr += rmv_len ; - *ptr = 0x87; - *(ptr + 1) = 0x12; - - eth_type = 0x8712; - /* append rx status for mp test packets */ - ptr = recvframe_pull(precvframe, (rmv_len - sizeof(struct ethhdr) + 2) - 24); - if (!ptr) { - ret = _FAIL; - goto exiting; - } - _rtw_memcpy(ptr, get_rxmem(precvframe), 24); - ptr += 24; - } else { - ptr = recvframe_pull(precvframe, (rmv_len - sizeof(struct ethhdr) + (bsnaphdr ? 2 : 0))); - if (!ptr) { - ret = _FAIL; - goto exiting; - } + ptr = recvframe_pull(precvframe, (rmv_len - sizeof(struct ethhdr) + (llc_hdl ? 2 : 0))); + if (!ptr) { + ret = _FAIL; + goto exiting; } - if (ptr) { - _rtw_memcpy(ptr, pattrib->dst, ETH_ALEN); - _rtw_memcpy(ptr + ETH_ALEN, pattrib->src, ETH_ALEN); + _rtw_memcpy(ptr, pattrib->dst, ETH_ALEN); + _rtw_memcpy(ptr + ETH_ALEN, pattrib->src, ETH_ALEN); - if (!bsnaphdr) { - len = htons(len); - _rtw_memcpy(ptr + 12, &len, 2); - } - - rtw_rframe_set_os_pkt(precvframe); + if (!llc_hdl) { + len = htons(len); + _rtw_memcpy(ptr + 12, &len, 2); } + rtw_rframe_set_os_pkt(precvframe); + exiting: return ret; - } #if defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI) @@ -2701,8 +2808,6 @@ union recv_frame *recvframe_defrag(_adapter *adapter, _queue *defrag_q) return NULL; } - curfragnum++; - /* copy the 2nd~n fragment frame's payload to the first fragment */ /* get the 2nd~last fragment frame's payload */ @@ -2710,6 +2815,15 @@ union recv_frame *recvframe_defrag(_adapter *adapter, _queue *defrag_q) recvframe_pull(pnextrframe, wlanhdr_offset); + if ((pfhdr->rx_end - pfhdr->rx_tail) < pnfhdr->len) { + RTW_INFO("Not enough buffer space, drop fragmented frame!\n"); + rtw_free_recvframe(prframe, pfree_recv_queue); + rtw_free_recvframe_queue(defrag_q, pfree_recv_queue); + return NULL; + } + + curfragnum++; + /* append to first fragment frame's tail (if privacy frame, pull the ICV) */ recvframe_pull_tail(prframe, pfhdr->attrib.icv_len); @@ -2937,32 +3051,32 @@ exit: return ret; } -#ifdef CONFIG_RTW_MESH -static void recv_free_fwd_resource(_adapter *adapter, struct xmit_frame *fwd_frame, _list *b2u_list) +#if defined(CONFIG_AP_MODE) || defined(CONFIG_RTW_MESH) +static void recv_free_fwd_resource(_adapter *adapter, struct xmit_frame *fwd_frame, _list *f_list) { struct xmit_priv *xmitpriv = &adapter->xmitpriv; if (fwd_frame) rtw_free_xmitframe(xmitpriv, fwd_frame); -#if CONFIG_RTW_MESH_DATA_BMC_TO_UC - if (!rtw_is_list_empty(b2u_list)) { - struct xmit_frame *b2uframe; +#if defined(CONFIG_RTW_WDS) || CONFIG_RTW_DATA_BMC_TO_UC + if (!rtw_is_list_empty(f_list)) { + struct xmit_frame *fframe; _list *list; - list = get_next(b2u_list); - while (rtw_end_of_queue_search(b2u_list, list) == _FALSE) { - b2uframe = LIST_CONTAINOR(list, struct xmit_frame, list); + list = get_next(f_list); + while (rtw_end_of_queue_search(f_list, list) == _FALSE) { + fframe = LIST_CONTAINOR(list, struct xmit_frame, list); list = get_next(list); - rtw_list_delete(&b2uframe->list); - rtw_free_xmitframe(xmitpriv, b2uframe); + rtw_list_delete(&fframe->list); + rtw_free_xmitframe(xmitpriv, fframe); } } #endif } static void recv_fwd_pkt_hdl(_adapter *adapter, _pkt *pkt - , u8 act, struct xmit_frame *fwd_frame, _list *b2u_list) + , u8 act, struct xmit_frame *fwd_frame, _list *f_list) { struct xmit_priv *xmitpriv = &adapter->xmitpriv; _pkt *fwd_pkt = pkt; @@ -2973,31 +3087,31 @@ static void recv_fwd_pkt_hdl(_adapter *adapter, _pkt *pkt #ifdef DBG_TX_DROP_FRAME RTW_INFO("DBG_TX_DROP_FRAME %s rtw_os_pkt_copy fail\n", __func__); #endif - recv_free_fwd_resource(adapter, fwd_frame, b2u_list); + recv_free_fwd_resource(adapter, fwd_frame, f_list); goto exit; } } -#if CONFIG_RTW_MESH_DATA_BMC_TO_UC - if (!rtw_is_list_empty(b2u_list)) { - _list *list = get_next(b2u_list); - struct xmit_frame *b2uframe; +#if defined(CONFIG_RTW_WDS) || CONFIG_RTW_DATA_BMC_TO_UC + if (!rtw_is_list_empty(f_list)) { + _list *list = get_next(f_list); + struct xmit_frame *fframe; - while (rtw_end_of_queue_search(b2u_list, list) == _FALSE) { - b2uframe = LIST_CONTAINOR(list, struct xmit_frame, list); + while (rtw_end_of_queue_search(f_list, list) == _FALSE) { + fframe = LIST_CONTAINOR(list, struct xmit_frame, list); list = get_next(list); - rtw_list_delete(&b2uframe->list); + rtw_list_delete(&fframe->list); - if (!fwd_frame && rtw_is_list_empty(b2u_list)) /* the last fwd_pkt */ - b2uframe->pkt = fwd_pkt; + if (!fwd_frame && rtw_is_list_empty(f_list)) /* the last fwd_pkt */ + fframe->pkt = fwd_pkt; else - b2uframe->pkt = rtw_os_pkt_copy(fwd_pkt); - if (!b2uframe->pkt) { - rtw_free_xmitframe(xmitpriv, b2uframe); + fframe->pkt = rtw_os_pkt_copy(fwd_pkt); + if (!fframe->pkt) { + rtw_free_xmitframe(xmitpriv, fframe); continue; } - rtw_xmit_posthandle(adapter, b2uframe, b2uframe->pkt); + rtw_xmit_posthandle(adapter, fframe, fframe->pkt); } } #endif @@ -3015,7 +3129,7 @@ static void recv_fwd_pkt_hdl(_adapter *adapter, _pkt *pkt exit: return; } -#endif /* CONFIG_RTW_MESH */ +#endif /* defined(CONFIG_AP_MODE) || defined(CONFIG_RTW_MESH) */ /* * From WFA suggestion: * @@ -3037,13 +3151,13 @@ static u8 validate_amsdu_content(_adapter *padapter, union recv_frame *prframe, padapter->securitypriv.dot11PrivacyAlgrthm != _NO_PRIVACY_) { /* 1.check From DS */ - if (pattrib->to_fr_ds == 1) { + if (pattrib->to_fr_ds == 2) { if (_rtw_memcmp(da, pattrib->ra, ETH_ALEN) == _FALSE) ret = _FAIL; } /* 2.check To DS */ - if (pattrib->to_fr_ds == 2) { + if (pattrib->to_fr_ds == 1) { if (_rtw_memcmp(sa, pattrib->ta, ETH_ALEN) == _FALSE) ret = _FAIL; } @@ -3070,10 +3184,11 @@ int amsdu_to_msdu(_adapter *padapter, union recv_frame *prframe) _queue *pfree_recv_queue = &(precvpriv->free_recv_queue); const u8 *da, *sa; int act; -#ifdef CONFIG_RTW_MESH /* TODO: move AP mode forward & b2u logic here */ +#if defined(CONFIG_AP_MODE) || defined(CONFIG_RTW_MESH) struct xmit_frame *fwd_frame; - _list b2u_list; + _list f_list; #endif + enum rtw_rx_llc_hdl llc_hdl; u8 mctrl_len = 0; int ret = _SUCCESS; @@ -3083,6 +3198,8 @@ int amsdu_to_msdu(_adapter *padapter, union recv_frame *prframe) if (rattrib->iv_len > 0) recvframe_pull(prframe, rattrib->iv_len); + if (rattrib->encrypt) + recvframe_pull_tail(prframe, rattrib->icv_len); a_len = prframe->u.hdr.len; pdata = prframe->u.hdr.rx_data; @@ -3096,10 +3213,11 @@ int amsdu_to_msdu(_adapter *padapter, union recv_frame *prframe) } act = RTW_RX_MSDU_ACT_INDICATE; + #if defined(CONFIG_AP_MODE) || defined(CONFIG_RTW_MESH) + fwd_frame = NULL; + #endif #ifdef CONFIG_RTW_MESH - fwd_frame = NULL; - if (MLME_IS_MESH(padapter)) { u8 *mda = pdata, *msa = pdata + ETH_ALEN; struct rtw_ieee80211s_hdr *mctrl = (struct rtw_ieee80211s_hdr *)(pdata + ETH_HLEN); @@ -3116,8 +3234,11 @@ int amsdu_to_msdu(_adapter *padapter, union recv_frame *prframe) if (v_ret != _SUCCESS) goto move_to_next; + llc_hdl = rtw_recv_llc_parse(pdata + ETH_HLEN + mctrl_len, nSubframe_Length - mctrl_len); act = rtw_mesh_rx_msdu_act_check(prframe - , mda, msa, da, sa, mctrl, &fwd_frame, &b2u_list); + , mda, msa, da, sa, mctrl + , pdata + ETH_HLEN + mctrl_len, llc_hdl + , &fwd_frame, &f_list); } else #endif { @@ -3129,37 +3250,44 @@ int amsdu_to_msdu(_adapter *padapter, union recv_frame *prframe) break; } + llc_hdl = rtw_recv_llc_parse(pdata + ETH_HLEN, nSubframe_Length); + #ifdef CONFIG_AP_MODE + if (MLME_IS_AP(padapter)) { + act = rtw_ap_rx_msdu_act_check(prframe, da, sa + , pdata + ETH_HLEN, llc_hdl, &fwd_frame, &f_list); + } else + #endif + if (MLME_IS_STA(padapter)) + act = rtw_sta_rx_amsdu_act_check(prframe, da, sa); } - #ifdef CONFIG_RTW_MESH if (!act) goto move_to_next; - #endif rtw_led_rx_control(padapter, da); sub_pkt = rtw_os_alloc_msdu_pkt(prframe, da, sa - , pdata + ETH_HLEN + mctrl_len, nSubframe_Length - mctrl_len); + , pdata + ETH_HLEN + mctrl_len, nSubframe_Length - mctrl_len, llc_hdl); if (sub_pkt == NULL) { if (act & RTW_RX_MSDU_ACT_INDICATE) { #ifdef DBG_RX_DROP_FRAME RTW_INFO("DBG_RX_DROP_FRAME %s rtw_os_alloc_msdu_pkt fail\n", __func__); #endif } - #ifdef CONFIG_RTW_MESH + #if defined(CONFIG_AP_MODE) || defined(CONFIG_RTW_MESH) if (act & RTW_RX_MSDU_ACT_FORWARD) { #ifdef DBG_TX_DROP_FRAME RTW_INFO("DBG_TX_DROP_FRAME %s rtw_os_alloc_msdu_pkt fail\n", __func__); #endif - recv_free_fwd_resource(padapter, fwd_frame, &b2u_list); + recv_free_fwd_resource(padapter, fwd_frame, &f_list); } #endif break; } - #ifdef CONFIG_RTW_MESH + #if defined(CONFIG_AP_MODE) || defined(CONFIG_RTW_MESH) if (act & RTW_RX_MSDU_ACT_FORWARD) { - recv_fwd_pkt_hdl(padapter, sub_pkt, act, fwd_frame, &b2u_list); + recv_fwd_pkt_hdl(padapter, sub_pkt, act, fwd_frame, &f_list); if (!(act & RTW_RX_MSDU_ACT_INDICATE)) goto move_to_next; } @@ -3170,9 +3298,7 @@ int amsdu_to_msdu(_adapter *padapter, union recv_frame *prframe) else rtw_os_pkt_free(sub_pkt); -#ifdef CONFIG_RTW_MESH move_to_next: -#endif /* move the data point to data content */ pdata += ETH_HLEN; a_len -= ETH_HLEN; @@ -3229,22 +3355,35 @@ static int recv_process_mpdu(_adapter *padapter, union recv_frame *prframe) goto exit; } } else { + u8 *msdu = get_recvframe_data(prframe) + + pattrib->hdrlen + pattrib->iv_len + RATTRIB_GET_MCTRL_LEN(pattrib); + u16 msdu_len = prframe->u.hdr.len + - pattrib->hdrlen - pattrib->iv_len - RATTRIB_GET_MCTRL_LEN(pattrib) + - (pattrib->encrypt ? pattrib->icv_len : 0); + enum rtw_rx_llc_hdl llc_hdl = rtw_recv_llc_parse(msdu, msdu_len); int act = RTW_RX_MSDU_ACT_INDICATE; - #ifdef CONFIG_RTW_MESH /* TODO: move AP mode forward & b2u logic here */ + #if defined(CONFIG_AP_MODE) || defined(CONFIG_RTW_MESH) struct xmit_frame *fwd_frame = NULL; - _list b2u_list; - - if (MLME_IS_MESH(padapter) && pattrib->mesh_ctrl_present) { - act = rtw_mesh_rx_msdu_act_check(prframe - , pattrib->mda, pattrib->msa - , pattrib->dst, pattrib->src - , (struct rtw_ieee80211s_hdr *)(get_recvframe_data(prframe) + pattrib->hdrlen + pattrib->iv_len) - , &fwd_frame, &b2u_list); - } - #endif + _list f_list; #ifdef CONFIG_RTW_MESH + if (MLME_IS_MESH(padapter)) { + if (pattrib->mesh_ctrl_present) + act = rtw_mesh_rx_msdu_act_check(prframe + , pattrib->mda, pattrib->msa + , pattrib->dst, pattrib->src + , (struct rtw_ieee80211s_hdr *)(msdu - RATTRIB_GET_MCTRL_LEN(pattrib)) + , msdu, llc_hdl + , &fwd_frame, &f_list); + } else + #endif + if (MLME_IS_AP(padapter)) + act = rtw_ap_rx_msdu_act_check(prframe, pattrib->dst, pattrib->src + , msdu, llc_hdl, &fwd_frame, &f_list); + #endif + + #if defined(CONFIG_AP_MODE) || defined(CONFIG_RTW_MESH) if (!act) { rtw_free_recvframe(prframe, pfree_recv_queue); ret = _FAIL; @@ -3254,7 +3393,7 @@ static int recv_process_mpdu(_adapter *padapter, union recv_frame *prframe) rtw_led_rx_control(padapter, pattrib->dst); - ret = wlanhdr_to_ethhdr(prframe); + ret = wlanhdr_to_ethhdr(prframe, llc_hdl); if (ret != _SUCCESS) { if (act & RTW_RX_MSDU_ACT_INDICATE) { #ifdef DBG_RX_DROP_FRAME @@ -3262,21 +3401,21 @@ static int recv_process_mpdu(_adapter *padapter, union recv_frame *prframe) , FUNC_ADPT_ARG(padapter)); #endif } - #ifdef CONFIG_RTW_MESH + #if defined(CONFIG_AP_MODE) || defined(CONFIG_RTW_MESH) if (act & RTW_RX_MSDU_ACT_FORWARD) { #ifdef DBG_TX_DROP_FRAME RTW_INFO("DBG_TX_DROP_FRAME %s wlanhdr_to_ethhdr fail\n", __func__); #endif - recv_free_fwd_resource(padapter, fwd_frame, &b2u_list); + recv_free_fwd_resource(padapter, fwd_frame, &f_list); } #endif rtw_free_recvframe(prframe, pfree_recv_queue); goto exit; } - #ifdef CONFIG_RTW_MESH + #if defined(CONFIG_AP_MODE) || defined(CONFIG_RTW_MESH) if (act & RTW_RX_MSDU_ACT_FORWARD) { - recv_fwd_pkt_hdl(padapter, prframe->u.hdr.pkt, act, fwd_frame, &b2u_list); + recv_fwd_pkt_hdl(padapter, prframe->u.hdr.pkt, act, fwd_frame, &f_list); if (!(act & RTW_RX_MSDU_ACT_INDICATE)) { prframe->u.hdr.pkt = NULL; rtw_free_recvframe(prframe, pfree_recv_queue); @@ -3592,8 +3731,15 @@ static int recv_indicatepkt_reorder(_adapter *padapter, union recv_frame *prfram if(rtw_test_and_clear_bit(RTW_RECV_ACK_OR_TIMEOUT, &preorder_ctrl->rec_abba_rsp_ack)) preorder_ctrl->indicate_seq = 0xFFFF; + if(rtw_test_and_clear_bit(RTW_RECV_REORDER_WOW, &preorder_ctrl->rec_abba_rsp_ack)) { + preorder_ctrl->indicate_seq = 0xFFFF; + RTW_INFO("DBG_RX_SEQ %s:preorder_ctrl->rec_abba_rsp_ack = %lu,indicate_seq = %d\n" + , __func__ + , preorder_ctrl->rec_abba_rsp_ack + , preorder_ctrl->indicate_seq); + } #ifdef DBG_RX_SEQ - RTW_INFO("DBG_RX_SEQ %s:preorder_ctrl->rec_abba_rsp_ack = %u,indicate_seq = %d\n" + RTW_INFO("DBG_RX_SEQ %s:preorder_ctrl->rec_abba_rsp_ack = %lu,indicate_seq = %d\n" , __func__ , preorder_ctrl->rec_abba_rsp_ack , preorder_ctrl->indicate_seq); @@ -3758,7 +3904,7 @@ int validate_mp_recv_frame(_adapter *adapter, union recv_frame *precv_frame) type = GetFrameType(ptr); subtype = get_frame_sub_type(ptr); /* bit(7)~bit(2) */ - RTW_INFO("hdr len = %d iv_len=%d \n", pattrib->hdrlen , pattrib->iv_len); + RTW_DBG("hdr len = %d iv_len=%d \n", pattrib->hdrlen , pattrib->iv_len); prx_data = ptr + pattrib->hdrlen + pattrib->iv_len; for (i = 0; i < precv_frame->u.hdr.len; i++) { @@ -3782,7 +3928,6 @@ int validate_mp_recv_frame(_adapter *adapter, union recv_frame *precv_frame) for (i = 0; i < precv_frame->u.hdr.len; i = i + 8) RTW_INFO("%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:\n", *(ptr + i), *(ptr + i + 1), *(ptr + i + 2) , *(ptr + i + 3) , *(ptr + i + 4), *(ptr + i + 5), *(ptr + i + 6), *(ptr + i + 7)); - RTW_INFO("#############################\n"); _rtw_memset(pmppriv->mplink_buf, '\0' , sizeof(pmppriv->mplink_buf)); _rtw_memcpy(pmppriv->mplink_buf, ptr, precv_frame->u.hdr.len); @@ -3825,55 +3970,31 @@ int validate_mp_recv_frame(_adapter *adapter, union recv_frame *precv_frame) static sint MPwlanhdr_to_ethhdr(union recv_frame *precvframe) { sint rmv_len; - u16 eth_type, len; - u8 bsnaphdr; - u8 *psnap_type; + u16 len; u8 mcastheadermac[] = {0x01, 0x00, 0x5e}; - - struct ieee80211_snap_hdr *psnap; - sint ret = _SUCCESS; _adapter *adapter = precvframe->u.hdr.adapter; u8 *ptr = get_recvframe_data(precvframe) ; /* point to frame_ctrl field */ struct rx_pkt_attrib *pattrib = &precvframe->u.hdr.attrib; + enum rtw_rx_llc_hdl llc_hdl; if (pattrib->encrypt) recvframe_pull_tail(precvframe, pattrib->icv_len); - psnap = (struct ieee80211_snap_hdr *)(ptr + pattrib->hdrlen + pattrib->iv_len); - psnap_type = ptr + pattrib->hdrlen + pattrib->iv_len + SNAP_SIZE; - /* convert hdr + possible LLC headers into Ethernet header */ - /* eth_type = (psnap_type[0] << 8) | psnap_type[1]; */ - if ((_rtw_memcmp(psnap, rtw_rfc1042_header, SNAP_SIZE) && - (_rtw_memcmp(psnap_type, SNAP_ETH_TYPE_IPX, 2) == _FALSE) && - (_rtw_memcmp(psnap_type, SNAP_ETH_TYPE_APPLETALK_AARP, 2) == _FALSE)) || - /* eth_type != ETH_P_AARP && eth_type != ETH_P_IPX) || */ - _rtw_memcmp(psnap, rtw_bridge_tunnel_header, SNAP_SIZE)) { - /* remove RFC1042 or Bridge-Tunnel encapsulation and replace EtherType */ - bsnaphdr = _TRUE; - } else { - /* Leave Ethernet header part of hdr and full payload */ - bsnaphdr = _FALSE; - } + llc_hdl = rtw_recv_llc_parse(ptr + pattrib->hdrlen + pattrib->iv_len + , precvframe->u.hdr.len - pattrib->hdrlen - pattrib->iv_len); - rmv_len = pattrib->hdrlen + pattrib->iv_len + (bsnaphdr ? SNAP_SIZE : 0); + rmv_len = pattrib->hdrlen + pattrib->iv_len + (llc_hdl ? SNAP_SIZE : 0); len = precvframe->u.hdr.len - rmv_len; - - _rtw_memcpy(ð_type, ptr + rmv_len, 2); - eth_type = ntohs((unsigned short)eth_type); /* pattrib->ether_type */ - pattrib->eth_type = eth_type; - - { - ptr = recvframe_pull(precvframe, (rmv_len - sizeof(struct ethhdr) + (bsnaphdr ? 2 : 0))); - } + ptr = recvframe_pull(precvframe, (rmv_len - sizeof(struct ethhdr) + (llc_hdl ? 2 : 0))); _rtw_memcpy(ptr, pattrib->dst, ETH_ALEN); _rtw_memcpy(ptr + ETH_ALEN, pattrib->src, ETH_ALEN); - if (!bsnaphdr) { + if (!llc_hdl) { len = htons(len); _rtw_memcpy(ptr + 12, &len, 2); } @@ -3952,18 +4073,16 @@ int mp_recv_frame(_adapter *padapter, union recv_frame *rframe) _rtw_memcpy(pattrib->ta, psa, ETH_ALEN); ret = sta2sta_data_frame(padapter, rframe, &psta); break; - case 1: - _rtw_memcpy(pattrib->ra, pda, ETH_ALEN); - _rtw_memcpy(pattrib->ta, pbssid, ETH_ALEN); - ret = ap2sta_data_frame(padapter, rframe, &psta); - break; - - case 2: _rtw_memcpy(pattrib->ra, pbssid, ETH_ALEN); _rtw_memcpy(pattrib->ta, psa, ETH_ALEN); ret = sta2ap_data_frame(padapter, rframe, &psta); break; + case 2: + _rtw_memcpy(pattrib->ra, pda, ETH_ALEN); + _rtw_memcpy(pattrib->ta, pbssid, ETH_ALEN); + ret = ap2sta_data_frame(padapter, rframe, &psta); + break; case 3: _rtw_memcpy(pattrib->ra, GetAddr1Ptr(ptr), ETH_ALEN); _rtw_memcpy(pattrib->ta, get_addr2_ptr(ptr), ETH_ALEN); @@ -4229,12 +4348,16 @@ int recv_func(_adapter *padapter, union recv_frame *rframe) struct recv_priv *recvpriv = &padapter->recvpriv; struct security_priv *psecuritypriv = &padapter->securitypriv; struct mlme_priv *mlmepriv = &padapter->mlmepriv; + u8 *ptr = rframe->u.hdr.rx_data; #ifdef CONFIG_CUSTOMER_ALIBABA_GENERAL u8 type; - u8 *ptr = rframe->u.hdr.rx_data; #endif - if (check_fwstate(mlmepriv, WIFI_MONITOR_STATE)) { + if (check_fwstate(mlmepriv, WIFI_MONITOR_STATE) +#ifdef RTW_SIMPLE_CONFIG + || (check_fwstate(mlmepriv, WIFI_AP_STATE) && padapter->rtw_simple_config == _TRUE && IS_MCAST(get_ra(ptr))) +#endif + ) { #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 24)) recv_frame_monitor(padapter, rframe); #endif @@ -4350,6 +4473,49 @@ static void rtw_signal_stat_timer_hdl(void *ctx) u32 num_signal_strength = 0; u32 num_signal_qual = 0; u8 ratio_pre_stat = 0, ratio_curr_stat = 0, ratio_total = 0, ratio_profile = SIGNAL_STAT_CALC_PROFILE_0; +#ifdef RTW_RSSI_DBG + int old_s = 0, i, s, l; + u8 row[256]; + u8 avg[256]; + + i = recvpriv->signal_row_idx ? (recvpriv->signal_row_idx - 1) : ROW_LEN - 1; + old_s = recvpriv->signal_strength; + + if (recvpriv->signal_row[i] != 0) { + memset (row, 0, sizeof(row)); + memset (avg, 0, sizeof(row)); + sprintf(row, "[ROW]"); + sprintf(avg, "[AVG]"); + + s = 0; + l = recvpriv->signal_row_idx; + if (recvpriv->signal_row[recvpriv->signal_row_idx] != 0) { + /* round-wrap */ + s = recvpriv->signal_row_idx + 1; /* next one is the 1'st entry */ + l = ROW_LEN; + } + + for (i = 0; i < l; i++) { + sprintf(row + strlen(row), " %2d", recvpriv->signal_row[(s+i)%ROW_LEN]); + sprintf(avg + strlen(avg), " %2d", recvpriv->signal_avg[(s+i)%ROW_LEN]); + + if ((i+1)%16 == 0) { + printk("%s\n%s\n", row, avg); + memset (row, 0, sizeof(row)); + memset (avg, 0, sizeof(row)); + sprintf(row, "[ROW]"); + sprintf(avg, "[AVG]"); + } + } + + if ((i)%16 != 0) + printk("%s\n%s\n", row, avg); + + recvpriv->signal_row_idx = 0; + memset (recvpriv->signal_row, 0, ROW_LEN); + memset (recvpriv->signal_avg, 0, ROW_LEN); + } +#endif if (adapter->recvpriv.is_signal_dbg) { /* update the user specific value, signal_strength_dbg, to signal_strength, rssi */ @@ -4378,9 +4544,15 @@ static void rtw_signal_stat_timer_hdl(void *ctx) goto set_timer; } +#ifdef CONFIG_SCAN_BACKOP + if (/*check_fwstate(&adapter->mlmepriv, WIFI_UNDER_SURVEY) == _TRUE + ||*/ check_fwstate(&adapter->mlmepriv, WIFI_ASOC_STATE) == _FALSE + ) +#else if (check_fwstate(&adapter->mlmepriv, WIFI_UNDER_SURVEY) == _TRUE || check_fwstate(&adapter->mlmepriv, WIFI_ASOC_STATE) == _FALSE ) +#endif goto set_timer; #ifdef CONFIG_CONCURRENT_MODE @@ -4417,6 +4589,12 @@ static void rtw_signal_stat_timer_hdl(void *ctx) recvpriv->rssi = (s8)translate_percentage_to_dbm(tmp_s); recvpriv->signal_qual = tmp_q; + if (MLME_IS_STA(adapter)) + adapter->mlmepriv.cur_network_scanned->network.PhyInfo.SignalStrength = recvpriv->signal_strength; +#ifdef RTW_RSSI_DBG + printk("%d + %d --> %d\n", old_s, avg_signal_strength, recvpriv->signal_strength); + RTW_INFO("signal_strength:%3u\n", recvpriv->signal_strength); +#endif #if defined(DBG_RX_SIGNAL_DISPLAY_PROCESSING) && 1 RTW_INFO(FUNC_ADPT_FMT" signal_strength:%3u, rssi:%3d, signal_qual:%3u" ", num_signal_strength:%u, num_signal_qual:%u" @@ -4458,8 +4636,16 @@ static void rx_process_rssi(_adapter *padapter, union recv_frame *prframe) } signal_stat->total_num++; - signal_stat->total_val += pattrib->phy_info.signal_strength; + signal_stat->total_val += pattrib->phy_info.signal_strength; signal_stat->avg_val = signal_stat->total_val / signal_stat->total_num; + +#ifdef RTW_RSSI_DBG + padapter->recvpriv.signal_row[padapter->recvpriv.signal_row_idx] = + pattrib->phy_info.signal_strength; + padapter->recvpriv.signal_avg[padapter->recvpriv.signal_row_idx] = + signal_stat->avg_val; + padapter->recvpriv.signal_row_idx = (padapter->recvpriv.signal_row_idx + 1) % ROW_LEN; +#endif #else /* CONFIG_NEW_SIGNAL_STAT_PROCESS */ /* Adapter->RxStats.RssiCalculateCnt++; */ /* For antenna Test */ @@ -4546,16 +4732,22 @@ static void rx_process_link_qual(_adapter *padapter, union recv_frame *prframe) void rx_process_phy_info(_adapter *padapter, union recv_frame *rframe) { - /* Check RSSI */ - rx_process_rssi(padapter, rframe); + u8 *wlanhdr; - /* Check PWDB */ - /* process_PWDB(padapter, rframe); */ + wlanhdr = get_recvframe_data(rframe); - /* UpdateRxSignalStatistics8192C(Adapter, pRfd); */ + if (get_frame_sub_type(wlanhdr) == WIFI_BEACON) { + /* Check RSSI */ + rx_process_rssi(padapter, rframe); - /* Check EVM */ - rx_process_link_qual(padapter, rframe); + /* Check PWDB */ + /* process_PWDB(padapter, rframe); */ + + /* UpdateRxSignalStatistics8192C(Adapter, pRfd); */ + + /* Check EVM */ + rx_process_link_qual(padapter, rframe); + } rtw_store_phy_info(padapter, rframe); } @@ -4633,7 +4825,9 @@ void rx_query_phy_status( pkt_info.is_packet_beacon = pkt_info.is_packet_match_bssid && (get_frame_sub_type(wlanhdr) == WIFI_BEACON); - if (psta && IsFrameTypeData(wlanhdr)) { + if (psta && IsFrameTypeData(wlanhdr) + && !(get_frame_sub_type(wlanhdr) & BIT(6)) /* don't count NULL data */ + ) { if (is_ra_bmc) psta->curr_rx_rate_bmc = pattrib->data_rate; else @@ -4712,6 +4906,12 @@ u8 adapter_allow_bmc_data_rx(_adapter *adapter) if (check_fwstate(&adapter->mlmepriv, WIFI_MONITOR_STATE | WIFI_MP_STATE) == _TRUE) return 1; +#ifdef RTW_SIMPLE_CONFIG + /* allow AP to receive multicast packet for RtwSimpleConfigV4 */ + if (MLME_IS_AP(adapter) && adapter->rtw_simple_config) + return 1; +#endif + if (MLME_IS_AP(adapter)) return 0; @@ -4725,49 +4925,89 @@ s32 pre_recv_entry(union recv_frame *precvframe, u8 *pphy_status) { s32 ret = _SUCCESS; u8 *pbuf = precvframe->u.hdr.rx_data; - u8 *pda = get_ra(pbuf); - u8 ra_is_bmc = IS_MCAST(pda); + u8 *ra = get_ra(pbuf); + u8 ra_is_bmc = IS_MCAST(ra); + bool phy_queried = 0; _adapter *primary_padapter = precvframe->u.hdr.adapter; -#ifdef CONFIG_CONCURRENT_MODE _adapter *iface = NULL; - #ifdef CONFIG_MP_INCLUDED +#ifdef CONFIG_MP_INCLUDED if (rtw_mp_mode_check(primary_padapter)) - goto bypass_concurrent_hdl; - #endif + goto query_phy_status; +#endif +#ifdef CONFIG_WIFI_MONITOR + if (MLME_IS_MONITOR(primary_padapter)) + goto query_phy_status; +#endif - if (ra_is_bmc == _FALSE) { /*unicast packets*/ - iface = rtw_get_iface_by_macddr(primary_padapter , pda); - if (NULL == iface) { - #ifdef CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI - if (_rtw_memcmp(pda, adapter_pno_mac_addr(primary_padapter), - ETH_ALEN) != _TRUE) - #endif - RTW_INFO("%s [WARN] Cannot find appropriate adapter - mac_addr : "MAC_FMT"\n", __func__, MAC_ARG(pda)); - /*rtw_warn_on(1);*/ - } else + if (ra_is_bmc == _FALSE) { + /* UC frame */ + iface = rtw_get_iface_by_macddr(primary_padapter , ra); + if (!iface) { + #if defined(CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI) || defined(CONFIG_RTW_SCAN_RAND) + if (_rtw_memcmp(ra, adapter_pno_mac_addr(primary_padapter), ETH_ALEN)) + goto query_phy_status; + #endif + + #ifdef CONFIG_RTW_MULTI_AP + /* unasoc STA RCPI */ + if (rtw_unassoc_sta_src_chk(primary_padapter, UNASOC_STA_SRC_RX_NMY_UC)) { + if (pphy_status) { + rx_query_phy_status(precvframe, pphy_status); + rtw_rx_add_unassoc_sta(primary_padapter, UNASOC_STA_SRC_RX_NMY_UC, get_ta(pbuf) + , precvframe->u.hdr.attrib.phy_info.recv_signal_power); + } + } else + #endif + RTW_INFO("%s [WARN] Cannot find appropriate adapter - mac_addr : "MAC_FMT"\n" + , __func__, MAC_ARG(ra)); + + rtw_free_recvframe(precvframe, &precvframe->u.hdr.adapter->recvpriv.free_recv_queue); + goto exit; + } + #ifdef CONFIG_CONCURRENT_MODE + else precvframe->u.hdr.adapter = iface; - } else /* Handle BC/MC Packets */ + #endif + + } else { + /* BMC frame */ + #ifdef CONFIG_CONCURRENT_MODE rtw_mi_buddy_clone_bcmc_packet(primary_padapter, precvframe, pphy_status); -bypass_concurrent_hdl: -#endif /* CONFIG_CONCURRENT_MODE */ - if (primary_padapter->registrypriv.mp_mode != 1) { - /* skip unnecessary bmc data frame for primary adapter */ - if (ra_is_bmc == _TRUE && GetFrameType(pbuf) == WIFI_DATA_TYPE + #endif + + #ifdef CONFIG_RTW_MULTI_AP + /* unasoc STA RCPI */ + if (pphy_status + && rtw_unassoc_sta_src_chk(primary_padapter, UNASOC_STA_SRC_RX_BMC) + ) { + phy_queried = 1; + rx_query_phy_status(precvframe, pphy_status); + rtw_rx_add_unassoc_sta(primary_padapter, UNASOC_STA_SRC_RX_BMC, get_ta(pbuf) + , precvframe->u.hdr.attrib.phy_info.recv_signal_power); + } + #endif + + /* skip unnecessary BMC data frame for primary adapter */ + if (GetFrameType(pbuf) == WIFI_DATA_TYPE && !adapter_allow_bmc_data_rx(precvframe->u.hdr.adapter) ) { rtw_free_recvframe(precvframe, &precvframe->u.hdr.adapter->recvpriv.free_recv_queue); goto exit; } } - - if (pphy_status) { - rx_query_phy_status(precvframe, pphy_status); - -#ifdef CONFIG_WIFI_MONITOR - rx_query_moinfo(&precvframe->u.hdr.attrib, pphy_status); +#if defined(CONFIG_MP_INCLUDED) || defined(CONFIG_WIFI_MONITOR) || defined(CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI) || defined(CONFIG_RTW_SCAN_RAND) +query_phy_status: #endif + if (pphy_status) { + if (!phy_queried) + rx_query_phy_status(precvframe, pphy_status); + #ifdef CONFIG_WIFI_MONITOR + if (MLME_IS_MONITOR(primary_padapter)) + rx_query_moinfo(&precvframe->u.hdr.attrib, pphy_status); + #endif } + ret = rtw_recv_entry(precvframe); exit: diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_rf.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_rf.c index fe6458bc..b70f23fd 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_rf.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_rf.c @@ -26,6 +26,8 @@ u8 center_ch_2g[CENTER_CH_2G_NUM] = { /* G05 */14 }; +#define ch_to_cch_2g_idx(ch) ((ch) - 1) + u8 center_ch_2g_40m[CENTER_CH_2G_40M_NUM] = { 3, 4, @@ -94,6 +96,13 @@ u8 center_ch_5g_20m[CENTER_CH_5G_20M_NUM] = { /* G13 */173, 177 }; +#define ch_to_cch_5g_20m_idx(ch) \ + ( \ + ((ch) >= 36 && (ch) <= 64) ? (((ch) - 36) >> 2) : \ + ((ch) >= 100 && (ch) <= 144) ? 8 + (((ch) - 100) >> 2) : \ + ((ch) >= 149 && (ch) <= 177) ? 20 + (((ch) - 149) >> 2) : 255 \ + ) + u8 center_ch_5g_40m[CENTER_CH_5G_40M_NUM] = { /* G00 */38, /* G01 */46, @@ -304,7 +313,7 @@ inline u8 center_chs_2g(u8 bw, u8 id) inline u8 center_chs_5g_num(u8 bw) { - if (bw > CHANNEL_WIDTH_80) + if (bw > CHANNEL_WIDTH_160) return 0; return center_chs_5g_by_bw[bw].ch_num; @@ -312,7 +321,7 @@ inline u8 center_chs_5g_num(u8 bw) inline u8 center_chs_5g(u8 bw, u8 id) { - if (bw > CHANNEL_WIDTH_80) + if (bw > CHANNEL_WIDTH_160) return 0; if (id >= center_chs_5g_num(bw)) @@ -368,6 +377,131 @@ exit: return valid; } +u8 rtw_get_offset_by_chbw(u8 ch, u8 bw, u8 *r_offset) +{ + u8 valid = 1; + u8 offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE; + + if (bw == CHANNEL_WIDTH_20) + goto exit; + + if (bw >= CHANNEL_WIDTH_80 && ch <= 14) { + valid = 0; + goto exit; + } + + if (ch >= 1 && ch <= 4) + offset = HAL_PRIME_CHNL_OFFSET_LOWER; + else if (ch >= 5 && ch <= 9) { + if (*r_offset == HAL_PRIME_CHNL_OFFSET_LOWER || *r_offset == HAL_PRIME_CHNL_OFFSET_UPPER) + offset = *r_offset; /* both lower and upper is valid, obey input value */ + else + offset = HAL_PRIME_CHNL_OFFSET_UPPER; /* default use upper */ + } else if (ch >= 10 && ch <= 13) + offset = HAL_PRIME_CHNL_OFFSET_UPPER; + else if (ch == 14) { + valid = 0; /* ch14 doesn't support 40MHz bandwidth */ + goto exit; + } else if (ch >= 36 && ch <= 177) { + switch (ch) { + case 36: + case 44: + case 52: + case 60: + case 100: + case 108: + case 116: + case 124: + case 132: + case 140: + case 149: + case 157: + case 165: + case 173: + offset = HAL_PRIME_CHNL_OFFSET_LOWER; + break; + case 40: + case 48: + case 56: + case 64: + case 104: + case 112: + case 120: + case 128: + case 136: + case 144: + case 153: + case 161: + case 169: + case 177: + offset = HAL_PRIME_CHNL_OFFSET_UPPER; + break; + default: + valid = 0; + break; + } + } else + valid = 0; + +exit: + if (valid && r_offset) + *r_offset = offset; + return valid; +} + +u8 rtw_get_center_ch(u8 ch, u8 bw, u8 offset) +{ + u8 cch = ch; + + if (bw == CHANNEL_WIDTH_160) { + if (ch % 4 == 0) { + if (ch >= 36 && ch <= 64) + cch = 50; + else if (ch >= 100 && ch <= 128) + cch = 114; + } else if (ch % 4 == 1) { + if (ch >= 149 && ch <= 177) + cch = 163; + } + + } else if (bw == CHANNEL_WIDTH_80) { + if (ch <= 14) + cch = 7; /* special case for 2.4G */ + else if (ch % 4 == 0) { + if (ch >= 36 && ch <= 48) + cch = 42; + else if (ch >= 52 && ch <= 64) + cch = 58; + else if (ch >= 100 && ch <= 112) + cch = 106; + else if (ch >= 116 && ch <= 128) + cch = 122; + else if (ch >= 132 && ch <= 144) + cch = 138; + } else if (ch % 4 == 1) { + if (ch >= 149 && ch <= 161) + cch = 155; + else if (ch >= 165 && ch <= 177) + cch = 171; + } + + } else if (bw == CHANNEL_WIDTH_40) { + if (offset == HAL_PRIME_CHNL_OFFSET_LOWER) + cch = ch + 2; + else if (offset == HAL_PRIME_CHNL_OFFSET_UPPER) + cch = ch - 2; + + } else if (bw == CHANNEL_WIDTH_20 + || bw == CHANNEL_WIDTH_10 + || bw == CHANNEL_WIDTH_5 + ) + ; /* same as ch */ + else + rtw_warn_on(1); + + return cch; +} + u8 rtw_get_ch_group(u8 ch, u8 *group, u8 *cck_group) { BAND_TYPE band = BAND_MAX; @@ -446,6 +580,16 @@ exit: return band; } +#if CONFIG_IEEE80211_BAND_6GHZ +int rtw_6gch2freq(int chan) +{ + if (chan >= 1 && chan <= 253) + return 5950 + chan * 5; + + return 0; /* not supported */ +} +#endif + int rtw_ch2freq(int chan) { /* see 802.11 17.3.8.3.2 and Annex J @@ -467,6 +611,16 @@ int rtw_ch2freq(int chan) return 0; /* not supported */ } +int rtw_ch2freq_by_band(BAND_TYPE band, int ch) +{ +#if CONFIG_IEEE80211_BAND_6GHZ + if (band == BAND_ON_6G) + return rtw_6gch2freq(ch); + else +#endif + return rtw_ch2freq(ch); +} + int rtw_freq2ch(int freq) { /* see 802.11 17.3.8.3.2 and Annex J */ @@ -476,14 +630,54 @@ int rtw_freq2ch(int freq) return (freq - 2407) / 5; else if (freq >= 4910 && freq <= 4980) return (freq - 4000) / 5; - else if (freq <= 45000) /* DMG band lower limit */ + else if (freq >= 5000 && freq < 5950) return (freq - 5000) / 5; + else if (freq >= 5950 && freq <= 7215) + return (freq - 5950) / 5; else if (freq >= 58320 && freq <= 64800) return (freq - 56160) / 2160; else return 0; } +BAND_TYPE rtw_freq2band(int freq) +{ + if (freq <= 2484) + return BAND_ON_2_4G; + else if (freq >= 5000 && freq < 5950) + return BAND_ON_5G; +#if CONFIG_IEEE80211_BAND_6GHZ + else if (freq >= 5950 && freq <= 7215) + return BAND_ON_6G; +#endif + else + return BAND_MAX; +} + +bool rtw_freq_consecutive(int a, int b) +{ + BAND_TYPE band_a, band_b; + + band_a = rtw_freq2band(a); + if (band_a == BAND_MAX) + return 0; + band_b = rtw_freq2band(b); + if (band_b == BAND_MAX || band_a != band_b) + return 0; + + switch (band_a) { + case BAND_ON_2_4G: + return rtw_abs(a - b) == 5; + case BAND_ON_5G: +#if CONFIG_IEEE80211_BAND_6GHZ + case BAND_ON_6G: +#endif + return rtw_abs(a - b) == 20; + default: + return 0; + } +} + bool rtw_chbw_to_freq_range(u8 ch, u8 bw, u8 offset, u32 *hi, u32 *lo) { u8 c_ch; @@ -504,7 +698,10 @@ bool rtw_chbw_to_freq_range(u8 ch, u8 bw, u8 offset, u32 *hi, u32 *lo) goto exit; } - if (bw == CHANNEL_WIDTH_80) { + if (bw == CHANNEL_WIDTH_160) { + hi_ret = freq + 80; + lo_ret = freq - 80; + } else if (bw == CHANNEL_WIDTH_80) { hi_ret = freq + 40; lo_ret = freq - 40; } else if (bw == CHANNEL_WIDTH_40) { @@ -528,120 +725,852 @@ exit: } const char *const _ch_width_str[CHANNEL_WIDTH_MAX] = { - "20MHz", - "40MHz", - "80MHz", - "160MHz", - "80_80MHz", - "5MHz", - "10MHz", + [CHANNEL_WIDTH_20] = "20MHz", + [CHANNEL_WIDTH_40] = "40MHz", + [CHANNEL_WIDTH_80] = "80MHz", + [CHANNEL_WIDTH_160] = "160MHz", + [CHANNEL_WIDTH_80_80] = "80_80MHz", + [CHANNEL_WIDTH_5] = "5MHz", + [CHANNEL_WIDTH_10] = "10MHz", }; const u8 _ch_width_to_bw_cap[CHANNEL_WIDTH_MAX] = { - BW_CAP_20M, - BW_CAP_40M, - BW_CAP_80M, - BW_CAP_160M, - BW_CAP_80_80M, - BW_CAP_5M, - BW_CAP_10M, + [CHANNEL_WIDTH_20] = BW_CAP_20M, + [CHANNEL_WIDTH_40] = BW_CAP_40M, + [CHANNEL_WIDTH_80] = BW_CAP_80M, + [CHANNEL_WIDTH_160] = BW_CAP_160M, + [CHANNEL_WIDTH_80_80] = BW_CAP_80_80M, + [CHANNEL_WIDTH_5] = BW_CAP_5M, + [CHANNEL_WIDTH_10] = BW_CAP_10M, }; const char *const _band_str[] = { - "2.4G", - "5G", - "BAND_MAX", + [BAND_ON_2_4G] = "2.4G", + [BAND_ON_5G] = "5G", +#if CONFIG_IEEE80211_BAND_6GHZ + [BAND_ON_6G] = "6G", +#endif + [BAND_MAX] = "BAND_MAX", }; const u8 _band_to_band_cap[] = { - BAND_CAP_2G, - BAND_CAP_5G, - 0, + [BAND_ON_2_4G] = BAND_CAP_2G, + [BAND_ON_5G] = BAND_CAP_5G, +#if CONFIG_IEEE80211_BAND_6GHZ + [BAND_ON_6G] = BAND_CAP_6G, +#endif + [BAND_MAX] = 0, }; -const u8 _rf_type_to_rf_tx_cnt[] = { - 1, /*RF_1T1R*/ - 1, /*RF_1T2R*/ - 2, /*RF_2T2R*/ - 2, /*RF_2T3R*/ - 2, /*RF_2T4R*/ - 3, /*RF_3T3R*/ - 3, /*RF_3T4R*/ - 4, /*RF_4T4R*/ - 1, /*RF_TYPE_MAX*/ +const char *const _opc_bw_str[OPC_BW_NUM] = { + "20M ", /* OPC_BW20 */ + "40M+", /* OPC_BW40PLUS */ + "40M-", /* OPC_BW40MINUS */ + "80M ", /* OPC_BW80 */ + "160M ", /* OPC_BW160 */ + "80+80M ", /* OPC_BW80P80 */ }; -const u8 _rf_type_to_rf_rx_cnt[] = { - 1, /*RF_1T1R*/ - 2, /*RF_1T2R*/ - 2, /*RF_2T2R*/ - 3, /*RF_2T3R*/ - 4, /*RF_2T4R*/ - 3, /*RF_3T3R*/ - 4, /*RF_3T4R*/ - 4, /*RF_4T4R*/ - 1, /*RF_TYPE_MAX*/ +const u8 _opc_bw_to_ch_width[OPC_BW_NUM] = { + CHANNEL_WIDTH_20, /* OPC_BW20 */ + CHANNEL_WIDTH_40, /* OPC_BW40PLUS */ + CHANNEL_WIDTH_40, /* OPC_BW40MINUS */ + CHANNEL_WIDTH_80, /* OPC_BW80 */ + CHANNEL_WIDTH_160, /* OPC_BW160 */ + CHANNEL_WIDTH_80_80, /* OPC_BW80P80 */ }; -const char *const _rf_type_to_rfpath_str[] = { - "RF_1T1R", - "RF_1T2R", - "RF_2T2R", - "RF_2T3R", - "RF_2T4R", - "RF_3T3R", - "RF_3T4R", - "RF_4T4R", - "RF_TYPE_MAX" +/* global operating class database */ + +struct op_class_t { + u8 class_id; + BAND_TYPE band; + enum opc_bw bw; + u8 *len_ch_attr; +}; + +#define OPC_CH_LIST_LEN(_opc) (_opc.len_ch_attr[0]) +#define OPC_CH_LIST_CH(_opc, _i) (_opc.len_ch_attr[_i + 1]) + +#define OP_CLASS_ENT(_class, _band, _bw, _len, arg...) \ + {.class_id = _class, .band = _band, .bw = _bw, .len_ch_attr = (uint8_t[_len + 1]) {_len, ##arg},} + +/* 802.11-2020, 802.11ax-2021 Table E-4, partial */ +static const struct op_class_t global_op_class[] = { + /* 2G ch1~13, 20M */ + OP_CLASS_ENT(81, BAND_ON_2_4G, OPC_BW20, 13, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13), + /* 2G ch14, 20M */ + OP_CLASS_ENT(82, BAND_ON_2_4G, OPC_BW20, 1, 14), + /* 2G, 40M */ + OP_CLASS_ENT(83, BAND_ON_2_4G, OPC_BW40PLUS, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9), + OP_CLASS_ENT(84, BAND_ON_2_4G, OPC_BW40MINUS, 9, 5, 6, 7, 8, 9, 10, 11, 12, 13), + /* 5G band 1, 20M & 40M */ + OP_CLASS_ENT(115, BAND_ON_5G, OPC_BW20, 4, 36, 40, 44, 48), + OP_CLASS_ENT(116, BAND_ON_5G, OPC_BW40PLUS, 2, 36, 44), + OP_CLASS_ENT(117, BAND_ON_5G, OPC_BW40MINUS, 2, 40, 48), + /* 5G band 2, 20M & 40M */ + OP_CLASS_ENT(118, BAND_ON_5G, OPC_BW20, 4, 52, 56, 60, 64), + OP_CLASS_ENT(119, BAND_ON_5G, OPC_BW40PLUS, 2, 52, 60), + OP_CLASS_ENT(120, BAND_ON_5G, OPC_BW40MINUS, 2, 56, 64), + /* 5G band 3, 20M & 40M */ + OP_CLASS_ENT(121, BAND_ON_5G, OPC_BW20, 12, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 144), + OP_CLASS_ENT(122, BAND_ON_5G, OPC_BW40PLUS, 6, 100, 108, 116, 124, 132, 140), + OP_CLASS_ENT(123, BAND_ON_5G, OPC_BW40MINUS, 6, 104, 112, 120, 128, 136, 144), + /* 5G band 4, 20M & 40M */ + OP_CLASS_ENT(124, BAND_ON_5G, OPC_BW20, 4, 149, 153, 157, 161), + OP_CLASS_ENT(125, BAND_ON_5G, OPC_BW20, 8, 149, 153, 157, 161, 165, 169, 173, 177), + OP_CLASS_ENT(126, BAND_ON_5G, OPC_BW40PLUS, 4, 149, 157, 165, 173), + OP_CLASS_ENT(127, BAND_ON_5G, OPC_BW40MINUS, 4, 153, 161, 169, 177), + /* 5G, 80M & 160M */ + OP_CLASS_ENT(128, BAND_ON_5G, OPC_BW80, 28, 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 144, 149, 153, 157, 161, 165, 169, 173, 177), + OP_CLASS_ENT(129, BAND_ON_5G, OPC_BW160, 24, 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 149, 153, 157, 161, 165, 169, 173, 177), + #if 0 /* TODO */ + /* 5G, 80+80M */ + OP_CLASS_ENT(130, BAND_ON_5G, OPC_BW80P80, 28, 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 144, 149, 153, 157, 161, 165, 169, 173, 177), + #endif +}; + +static const int global_op_class_num = sizeof(global_op_class) / sizeof(struct op_class_t); + +static const struct op_class_t *get_global_op_class_by_id(u8 gid) +{ + int i; + + for (i = 0; i < global_op_class_num; i++) + if (global_op_class[i].class_id == gid) + break; + + return i < global_op_class_num ? &global_op_class[i] : NULL; +} + +bool is_valid_global_op_class_id(u8 gid) +{ + return get_global_op_class_by_id(gid) ? 1 : 0; +} + +static bool is_valid_global_op_class_ch(const struct op_class_t *opc, u8 ch) +{ + int array_idx; + int i; + + if (opc < global_op_class + || (((u8 *)opc) - ((u8 *)global_op_class)) % sizeof(struct op_class_t) + ) { + RTW_ERR("Invalid opc pointer:%p (global_op_class:%p, sizeof(struct op_class_t):%zu, %zu)\n" + , opc, global_op_class, sizeof(struct op_class_t), (((u8 *)opc) - ((u8 *)global_op_class)) % sizeof(struct op_class_t)); + return 0; + } + + array_idx = (((u8 *)opc) - ((u8 *)global_op_class)) / sizeof(struct op_class_t); + + for (i = 0; i < OPC_CH_LIST_LEN(global_op_class[array_idx]); i++) + if (OPC_CH_LIST_CH(global_op_class[array_idx], i) == ch) + break; + + return i < OPC_CH_LIST_LEN(global_op_class[array_idx]); +} + +static enum opc_bw get_global_opc_bw_by_id(u8 gid) +{ + int i; + + for (i = 0; i < global_op_class_num; i++) + if (global_op_class[i].class_id == gid) + break; + + return i < global_op_class_num ? global_op_class[i].bw : OPC_BW_NUM; +} + +/* -2: logic error, -1: error, 0: is already BW20 */ +s16 get_sub_op_class(u8 gid, u8 ch) +{ + const struct op_class_t *opc = get_global_op_class_by_id(gid); + int i; + enum channel_width bw; + + if (!opc) + return -1; + + if (!is_valid_global_op_class_ch(opc, ch)) { + return -1; + } + + if (opc->bw == OPC_BW20) + return 0; + + bw = opc_bw_to_ch_width(opc->bw); + + for (i = 0; i < global_op_class_num; i++) { + if (bw != opc_bw_to_ch_width(global_op_class[i].bw) + 1) + continue; + if (is_valid_global_op_class_ch(&global_op_class[i], ch)) + break; + } + + return i < global_op_class_num ? global_op_class[i].class_id : -2; +} + +static void dump_op_class_ch_title(void *sel) +{ + RTW_PRINT_SEL(sel, "%-5s %-4s %-7s ch_list\n" + , "class", "band", "bw"); +} + +static void dump_global_op_class_ch_single(void *sel, u8 gid) +{ + u8 i; + + RTW_PRINT_SEL(sel, "%5u %4s %7s" + , global_op_class[gid].class_id + , band_str(global_op_class[gid].band) + , opc_bw_str(global_op_class[gid].bw)); + + for (i = 0; i < OPC_CH_LIST_LEN(global_op_class[gid]); i++) + _RTW_PRINT_SEL(sel, " %u", OPC_CH_LIST_CH(global_op_class[gid], i)); + + _RTW_PRINT_SEL(sel, "\n"); +} + +#ifdef CONFIG_RTW_DEBUG +static bool dbg_global_op_class_validate(u8 gid) +{ + u8 i; + u8 ch, bw, offset, cch; + bool ret = 1; + + switch (global_op_class[gid].bw) { + case OPC_BW20: + bw = CHANNEL_WIDTH_20; + offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE; + break; + case OPC_BW40PLUS: + bw = CHANNEL_WIDTH_40; + offset = HAL_PRIME_CHNL_OFFSET_LOWER; + break; + case OPC_BW40MINUS: + bw = CHANNEL_WIDTH_40; + offset = HAL_PRIME_CHNL_OFFSET_UPPER; + break; + case OPC_BW80: + bw = CHANNEL_WIDTH_80; + offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE; + break; + case OPC_BW160: + bw = CHANNEL_WIDTH_160; + offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE; + break; + case OPC_BW80P80: /* TODO */ + default: + RTW_ERR("%s class:%u unsupported opc_bw:%u\n" + , __func__, global_op_class[gid].class_id, global_op_class[gid].bw); + ret = 0; + goto exit; + } + + for (i = 0; i < OPC_CH_LIST_LEN(global_op_class[gid]); i++) { + u8 *op_chs; + u8 op_ch_num; + u8 k; + + ch = OPC_CH_LIST_CH(global_op_class[gid], i); + cch = rtw_get_center_ch(ch ,bw, offset); + if (!cch) { + RTW_ERR("%s can't get cch from class:%u ch:%u\n" + , __func__, global_op_class[gid].class_id, ch); + ret = 0; + continue; + } + + if (!rtw_get_op_chs_by_cch_bw(cch, bw, &op_chs, &op_ch_num)) { + RTW_ERR("%s can't get op chs from class:%u cch:%u\n" + , __func__, global_op_class[gid].class_id, cch); + ret = 0; + continue; + } + + for (k = 0; k < op_ch_num; k++) { + if (*(op_chs + k) == ch) + break; + } + if (k >= op_ch_num) { + RTW_ERR("%s can't get ch:%u from op_chs class:%u cch:%u\n" + , __func__, ch, global_op_class[i].class_id, cch); + ret = 0; + } + } + +exit: + return ret; +} +#endif /* CONFIG_RTW_DEBUG */ + +void dump_global_op_class(void *sel) +{ + u8 i; + + dump_op_class_ch_title(sel); + + for (i = 0; i < global_op_class_num; i++) + dump_global_op_class_ch_single(sel, i); +} + +u8 rtw_get_op_class_by_chbw(u8 ch, u8 bw, u8 offset) +{ + BAND_TYPE band = BAND_MAX; + int i; + u8 gid = 0; /* invalid */ + + if (rtw_is_2g_ch(ch)) + band = BAND_ON_2_4G; + else if (rtw_is_5g_ch(ch)) + band = BAND_ON_5G; + else + goto exit; + + switch (bw) { + case CHANNEL_WIDTH_20: + case CHANNEL_WIDTH_40: + case CHANNEL_WIDTH_80: + case CHANNEL_WIDTH_160: + #if 0 /* TODO */ + case CHANNEL_WIDTH_80_80: + #endif + break; + default: + goto exit; + } + + for (i = 0; i < global_op_class_num; i++) { + if (band != global_op_class[i].band) + continue; + + if (opc_bw_to_ch_width(global_op_class[i].bw) != bw) + continue; + + if ((global_op_class[i].bw == OPC_BW40PLUS + && offset != HAL_PRIME_CHNL_OFFSET_LOWER) + || (global_op_class[i].bw == OPC_BW40MINUS + && offset != HAL_PRIME_CHNL_OFFSET_UPPER) + ) + continue; + + if (is_valid_global_op_class_ch(&global_op_class[i], ch)) + goto get; + } + +get: + if (i < global_op_class_num) { + #if 0 /* TODO */ + if (bw == CHANNEL_WIDTH_80_80) { + /* search another ch */ + if (!is_valid_global_op_class_ch(&global_op_class[i], ch2)) + goto exit; + } + #endif + + gid = global_op_class[i].class_id; + } + +exit: + return gid; +} + +u8 rtw_get_bw_offset_by_op_class_ch(u8 gid, u8 ch, u8 *bw, u8 *offset) +{ + enum opc_bw opc_bw; + u8 valid = 0; + int i; + + opc_bw = get_global_opc_bw_by_id(gid); + if (opc_bw == OPC_BW_NUM) + goto exit; + + *bw = opc_bw_to_ch_width(opc_bw); + + if (opc_bw == OPC_BW40PLUS) + *offset = HAL_PRIME_CHNL_OFFSET_LOWER; + else if (opc_bw == OPC_BW40MINUS) + *offset = HAL_PRIME_CHNL_OFFSET_UPPER; + + if (rtw_get_offset_by_chbw(ch, *bw, offset)) + valid = 1; + +exit: + return valid; +} + +#ifdef CONFIG_ECSA +int get_supported_op_class(_adapter *padapter, u8 *op_set, int len) +{ + struct registry_priv *regsty = adapter_to_regsty(padapter); + struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); + struct rf_ctl_t *rfctl = adapter_to_rfctl(padapter); + RT_CHANNEL_INFO *ch_set = rfctl->channel_set; + int match, i = 0, j, k = 0; + const struct op_class_t *cl; + u8 cur_op_class; + u8 *ch; + + cur_op_class = rtw_get_op_class_by_chbw(pmlmeext->cur_channel, + pmlmeext->cur_bwmode, + pmlmeext->cur_ch_offset); + if (cur_op_class && k < len) { + /* current op class SHALL be the 1st supported op class */ + *op_set = cur_op_class; + k++; + } + + for (i = 0; i < global_op_class_num; i++) { + cl = &global_op_class[i]; + + match = -1; + ch = cl->len_ch_attr; + for (j = 0; j < ch[0]; j++) + if ((match = rtw_chset_search_ch(ch_set, ch[j+1])) == -1) + break; /* for() */ + if (match != -1 && cl->class_id != cur_op_class && k < len) + op_set[k++] = cl->class_id; + } + return (k > len ? len : k); +} +#endif /* CONFIG_ECSA */ + +static struct op_class_pref_t *opc_pref_alloc(u8 class_id) +{ + int i, j; + struct op_class_pref_t *opc_pref = NULL; + u8 ch_num; + + for (i = 0; i < global_op_class_num; i++) + if (global_op_class[i].class_id == class_id) + break; + + if (i >= global_op_class_num) + goto exit; + + ch_num = OPC_CH_LIST_LEN(global_op_class[i]); + opc_pref = rtw_zmalloc(sizeof(*opc_pref) + (sizeof(struct op_ch_t) * ch_num)); + if (!opc_pref) + goto exit; + + opc_pref->class_id = global_op_class[i].class_id; + opc_pref->band = global_op_class[i].band; + opc_pref->bw = global_op_class[i].bw; + + for (j = 0; j < OPC_CH_LIST_LEN(global_op_class[i]); j++) { + opc_pref->chs[j].ch = OPC_CH_LIST_CH(global_op_class[i], j); + opc_pref->chs[j].static_non_op = 1; + opc_pref->chs[j].no_ir = 1; + opc_pref->chs[j].max_txpwr = UNSPECIFIED_MBM; + } + opc_pref->ch_num = ch_num; + +exit: + return opc_pref; +} + +static void opc_pref_free(struct op_class_pref_t *opc_pref) +{ + rtw_mfree(opc_pref, sizeof(*opc_pref) + (sizeof(struct op_ch_t) * opc_pref->ch_num)); +} + +int op_class_pref_init(_adapter *adapter) +{ + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + struct registry_priv *regsty = adapter_to_regsty(adapter); + u8 bw; + struct op_class_pref_t *opc_pref; + int i; + u8 op_class_num = 0; + u8 band_bmp = 0; + u8 bw_bmp[BAND_MAX] = {0}; + int ret = _FAIL; + + rfctl->spt_op_class_ch = rtw_zmalloc(sizeof(struct op_class_pref_t *) * global_op_class_num); + if (!rfctl->spt_op_class_ch) { + RTW_ERR("%s alloc rfctl->spt_op_class_ch fail\n", __func__); + goto exit; + } + + if (IsSupported24G(regsty->wireless_mode) && hal_chk_band_cap(adapter, BAND_CAP_2G)) + band_bmp |= BAND_CAP_2G; + if (is_supported_5g(regsty->wireless_mode) && hal_chk_band_cap(adapter, BAND_CAP_5G)) + band_bmp |= BAND_CAP_5G; + + bw_bmp[BAND_ON_2_4G] = (ch_width_to_bw_cap(REGSTY_BW_2G(regsty) + 1) - 1) & (GET_HAL_SPEC(adapter)->bw_cap); + bw_bmp[BAND_ON_5G] = (ch_width_to_bw_cap(REGSTY_BW_5G(regsty) + 1) - 1) & (GET_HAL_SPEC(adapter)->bw_cap); + if (!REGSTY_IS_11AC_ENABLE(regsty) + || !is_supported_vht(regsty->wireless_mode) + ) + bw_bmp[BAND_ON_5G] &= ~(BW_CAP_80M | BW_CAP_160M); + + if (0) { + RTW_INFO("REGSTY_BW_2G(regsty):%u\n", REGSTY_BW_2G(regsty)); + RTW_INFO("REGSTY_BW_5G(regsty):%u\n", REGSTY_BW_5G(regsty)); + RTW_INFO("GET_HAL_SPEC(adapter)->bw_cap:0x%x\n", GET_HAL_SPEC(adapter)->bw_cap); + RTW_INFO("band_bmp:0x%x\n", band_bmp); + RTW_INFO("bw_bmp[2G]:0x%x\n", bw_bmp[BAND_ON_2_4G]); + RTW_INFO("bw_bmp[5G]:0x%x\n", bw_bmp[BAND_ON_5G]); + } + + for (i = 0; i < global_op_class_num; i++) { + #ifdef CONFIG_RTW_DEBUG + rtw_warn_on(!dbg_global_op_class_validate(i)); + #endif + + if (!(band_bmp & band_to_band_cap(global_op_class[i].band))) + continue; + + bw = opc_bw_to_ch_width(global_op_class[i].bw); + if (bw == CHANNEL_WIDTH_MAX + || bw == CHANNEL_WIDTH_80_80 /* TODO */ + ) + continue; + + if (!(bw_bmp[global_op_class[i].band] & ch_width_to_bw_cap(bw))) + continue; + + opc_pref = opc_pref_alloc(global_op_class[i].class_id); + if (!opc_pref) { + RTW_ERR("%s opc_pref_alloc(%u) fail\n", __func__, global_op_class[i].class_id); + goto exit; + } + + if (opc_pref->ch_num) { + rfctl->spt_op_class_ch[i] = opc_pref; + op_class_num++; + } else + opc_pref_free(opc_pref); + } + + rfctl->cap_spt_op_class_num = op_class_num; + ret = _SUCCESS; + +exit: + return ret; +} + +void op_class_pref_deinit(_adapter *adapter) +{ + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + int i; + + if (!rfctl->spt_op_class_ch) + return; + + for (i = 0; i < global_op_class_num; i++) { + if (rfctl->spt_op_class_ch[i]) { + opc_pref_free(rfctl->spt_op_class_ch[i]); + rfctl->spt_op_class_ch[i] = NULL; + } + } + + rtw_mfree(rfctl->spt_op_class_ch, sizeof(struct op_class_pref_t *) * global_op_class_num); + rfctl->spt_op_class_ch = NULL; +} + +void op_class_pref_apply_regulatory(_adapter *adapter, u8 reason) +{ + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + RT_CHANNEL_INFO *chset = rfctl->channel_set; + struct registry_priv *regsty = adapter_to_regsty(adapter); + u8 ch, bw, offset, cch; + struct op_class_pref_t *opc_pref; + int i, j; + u8 reg_op_class_num = 0; + u8 op_class_num = 0; + + for (i = 0; i < global_op_class_num; i++) { + if (!rfctl->spt_op_class_ch[i]) + continue; + opc_pref = rfctl->spt_op_class_ch[i]; + + /* reset all channel */ + for (j = 0; j < opc_pref->ch_num; j++) { + if (reason >= REG_CHANGE) + opc_pref->chs[j].static_non_op = 1; + if (reason != REG_TXPWR_CHANGE) + opc_pref->chs[j].no_ir = 1; + if (reason >= REG_TXPWR_CHANGE) + opc_pref->chs[j].max_txpwr = UNSPECIFIED_MBM; + } + if (reason >= REG_CHANGE) + opc_pref->op_ch_num = 0; + if (reason != REG_TXPWR_CHANGE) + opc_pref->ir_ch_num = 0; + + switch (opc_pref->bw) { + case OPC_BW20: + bw = CHANNEL_WIDTH_20; + offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE; + break; + case OPC_BW40PLUS: + bw = CHANNEL_WIDTH_40; + offset = HAL_PRIME_CHNL_OFFSET_LOWER; + break; + case OPC_BW40MINUS: + bw = CHANNEL_WIDTH_40; + offset = HAL_PRIME_CHNL_OFFSET_UPPER; + break; + case OPC_BW80: + bw = CHANNEL_WIDTH_80; + offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE; + break; + case OPC_BW160: + bw = CHANNEL_WIDTH_160; + offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE; + break; + case OPC_BW80P80: /* TODO */ + default: + continue; + } + + if (!RFCTL_REG_EN_11AC(rfctl) + && (bw == CHANNEL_WIDTH_80 || bw == CHANNEL_WIDTH_160)) + continue; + + for (j = 0; j < opc_pref->ch_num; j++) { + u8 *op_chs; + u8 op_ch_num; + u8 k, l; + int chset_idx; + + ch = opc_pref->chs[j].ch; + + if (reason >= REG_TXPWR_CHANGE) + opc_pref->chs[j].max_txpwr = rtw_rfctl_get_reg_max_txpwr_mbm(rfctl, ch, bw, offset, 1); + + if (reason == REG_TXPWR_CHANGE) + continue; + + cch = rtw_get_center_ch(ch ,bw, offset); + if (!cch) + continue; + + if (!rtw_get_op_chs_by_cch_bw(cch, bw, &op_chs, &op_ch_num)) + continue; + + for (k = 0, l = 0; k < op_ch_num; k++) { + chset_idx = rtw_chset_search_ch(chset, *(op_chs + k)); + if (chset_idx == -1) + break; + if (bw >= CHANNEL_WIDTH_40) { + if ((chset[chset_idx].flags & RTW_CHF_NO_HT40U) && k % 2 == 0) + break; + if ((chset[chset_idx].flags & RTW_CHF_NO_HT40L) && k % 2 == 1) + break; + } + if (bw >= CHANNEL_WIDTH_80 && (chset[chset_idx].flags & RTW_CHF_NO_80MHZ)) + break; + if (bw >= CHANNEL_WIDTH_160 && (chset[chset_idx].flags & RTW_CHF_NO_160MHZ)) + break; + if ((chset[chset_idx].flags & RTW_CHF_DFS) && rtw_rfctl_dfs_domain_unknown(rfctl)) + continue; + if (chset[chset_idx].flags & RTW_CHF_NO_IR) + continue; + l++; + } + if (k < op_ch_num) + continue; + + if (reason >= REG_CHANGE) { + opc_pref->chs[j].static_non_op = 0; + opc_pref->op_ch_num++; + } + + if (l >= op_ch_num) { + opc_pref->chs[j].no_ir = 0; + opc_pref->ir_ch_num++; + } + } + + if (opc_pref->op_ch_num) + reg_op_class_num++; + if (opc_pref->ir_ch_num) + op_class_num++; + } + + rfctl->reg_spt_op_class_num = reg_op_class_num; + rfctl->cur_spt_op_class_num = op_class_num; +} + +static void dump_opc_pref_single(void *sel, struct op_class_pref_t *opc_pref, bool show_snon_ocp, bool show_no_ir, bool detail) +{ + u8 i; + u8 ch_num = 0; + + if (!show_snon_ocp && !opc_pref->op_ch_num) + return; + if (!show_no_ir && !opc_pref->ir_ch_num) + return; + + RTW_PRINT_SEL(sel, "%5u %4s %7s" + , opc_pref->class_id + , band_str(opc_pref->band) + , opc_bw_str(opc_pref->bw)); + for (i = 0; i < opc_pref->ch_num; i++) { + if ((show_snon_ocp || !opc_pref->chs[i].static_non_op) + && (show_no_ir || !opc_pref->chs[i].no_ir) + ) { + if (detail) + _RTW_PRINT_SEL(sel, " %4u", opc_pref->chs[i].ch); + else + _RTW_PRINT_SEL(sel, " %u", opc_pref->chs[i].ch); + } + } + _RTW_PRINT_SEL(sel, "\n"); + + if (!detail) + return; + + RTW_PRINT_SEL(sel, " "); + for (i = 0; i < opc_pref->ch_num; i++) { + if ((show_snon_ocp || !opc_pref->chs[i].static_non_op) + && (show_no_ir || !opc_pref->chs[i].no_ir) + ) { + _RTW_PRINT_SEL(sel, " %c%c" + , opc_pref->chs[i].no_ir ? ' ' : 'I' + , opc_pref->chs[i].static_non_op ? ' ' : 'E' + ); + } + } + _RTW_PRINT_SEL(sel, "\n"); + + RTW_PRINT_SEL(sel, " "); + for (i = 0; i < opc_pref->ch_num; i++) { + if ((show_snon_ocp || !opc_pref->chs[i].static_non_op) + && (show_no_ir || !opc_pref->chs[i].no_ir) + ) { + if (opc_pref->chs[i].max_txpwr == UNSPECIFIED_MBM) + _RTW_PRINT_SEL(sel, " "); + else + _RTW_PRINT_SEL(sel, " %4d", opc_pref->chs[i].max_txpwr); + } + } + _RTW_PRINT_SEL(sel, "\n"); +} + +void dump_cap_spt_op_class_ch(void *sel, struct rf_ctl_t *rfctl, bool detail) +{ + u8 i; + + dump_op_class_ch_title(sel); + + for (i = 0; i < global_op_class_num; i++) { + if (!rfctl->spt_op_class_ch[i]) + continue; + dump_opc_pref_single(sel, rfctl->spt_op_class_ch[i], 1, 1, detail); + } + + RTW_PRINT_SEL(sel, "op_class number:%d\n", rfctl->cap_spt_op_class_num); +} + +void dump_reg_spt_op_class_ch(void *sel, struct rf_ctl_t *rfctl, bool detail) +{ + u8 i; + + dump_op_class_ch_title(sel); + + for (i = 0; i < global_op_class_num; i++) { + if (!rfctl->spt_op_class_ch[i]) + continue; + dump_opc_pref_single(sel, rfctl->spt_op_class_ch[i], 0, 1, detail); + } + + RTW_PRINT_SEL(sel, "op_class number:%d\n", rfctl->reg_spt_op_class_num); +} + +void dump_cur_spt_op_class_ch(void *sel, struct rf_ctl_t *rfctl, bool detail) +{ + u8 i; + + dump_op_class_ch_title(sel); + + for (i = 0; i < global_op_class_num; i++) { + if (!rfctl->spt_op_class_ch[i]) + continue; + dump_opc_pref_single(sel, rfctl->spt_op_class_ch[i], 0, 0, detail); + } + + RTW_PRINT_SEL(sel, "op_class number:%d\n", rfctl->cur_spt_op_class_num); +} + +const u8 _rf_type_to_rf_tx_cnt[RF_TYPE_MAX] = { + [RF_1T1R] = 1, + [RF_1T2R] = 1, + [RF_1T3R] = 1, + [RF_1T4R] = 1, + [RF_2T1R] = 2, + [RF_2T2R] = 2, + [RF_2T3R] = 2, + [RF_2T4R] = 2, + [RF_3T1R] = 3, + [RF_3T2R] = 3, + [RF_3T3R] = 3, + [RF_3T4R] = 3, + [RF_4T1R] = 4, + [RF_4T2R] = 4, + [RF_4T3R] = 4, + [RF_4T4R] = 4, +}; + +const u8 _rf_type_to_rf_rx_cnt[RF_TYPE_MAX] = { + [RF_1T1R] = 1, + [RF_1T2R] = 2, + [RF_1T3R] = 3, + [RF_1T4R] = 4, + [RF_2T1R] = 1, + [RF_2T2R] = 2, + [RF_2T3R] = 3, + [RF_2T4R] = 4, + [RF_3T1R] = 1, + [RF_3T2R] = 2, + [RF_3T3R] = 3, + [RF_3T4R] = 4, + [RF_4T1R] = 1, + [RF_4T2R] = 2, + [RF_4T3R] = 3, + [RF_4T4R] = 4, +}; + +const char *const _rf_type_to_rfpath_str[RF_TYPE_MAX] = { + [RF_1T1R] = "RF_1T1R", + [RF_1T2R] = "RF_1T2R", + [RF_1T3R] = "RF_1T3R", + [RF_1T4R] = "RF_1T4R", + [RF_2T1R] = "RF_2T1R", + [RF_2T2R] = "RF_2T2R", + [RF_2T3R] = "RF_2T3R", + [RF_2T4R] = "RF_2T4R", + [RF_3T1R] = "RF_3T1R", + [RF_3T2R] = "RF_3T2R", + [RF_3T3R] = "RF_3T3R", + [RF_3T4R] = "RF_3T4R", + [RF_4T1R] = "RF_4T1R", + [RF_4T2R] = "RF_4T2R", + [RF_4T3R] = "RF_4T3R", + [RF_4T4R] = "RF_4T4R", }; void rf_type_to_default_trx_bmp(enum rf_type rf, enum bb_path *tx, enum bb_path *rx) { - switch (rf) { - case RF_1T1R: - *tx = BB_PATH_A; - *rx = BB_PATH_A; - break; - case RF_1T2R: - *tx = BB_PATH_A; - *rx = BB_PATH_AB; - break; - case RF_2T2R: - *tx = BB_PATH_AB; - *rx = BB_PATH_AB; - break; - case RF_2T3R: - *tx = BB_PATH_AB; - *rx = BB_PATH_ABC; - break; - case RF_2T4R: - *tx = BB_PATH_AB; - *rx = BB_PATH_ABCD; - break; - case RF_3T3R: - *tx = BB_PATH_ABC; - *rx = BB_PATH_ABC; - break; - case RF_3T4R: - *tx = BB_PATH_ABC; - *rx = BB_PATH_ABCD; - break; - case RF_4T4R: - *tx = BB_PATH_ABCD; - *rx = BB_PATH_ABCD; - break; - default: - *tx = BB_PATH_A; - *rx = BB_PATH_A; - break; - } + u8 tx_num = rf_type_to_rf_tx_cnt(rf); + u8 rx_num = rf_type_to_rf_rx_cnt(rf); + int i; + + *tx = *rx = 0; + + for (i = 0; i < tx_num; i++) + *tx |= BIT(i); + for (i = 0; i < rx_num; i++) + *rx |= BIT(i); } static const u8 _trx_num_to_rf_type[RF_PATH_MAX][RF_PATH_MAX] = { - {RF_1T1R, RF_1T2R, RF_TYPE_MAX, RF_TYPE_MAX}, - {RF_TYPE_MAX, RF_2T2R, RF_2T3R, RF_2T4R}, - {RF_TYPE_MAX, RF_TYPE_MAX, RF_3T3R, RF_3T4R}, - {RF_TYPE_MAX, RF_TYPE_MAX, RF_TYPE_MAX, RF_4T4R}, + {RF_1T1R, RF_1T2R, RF_1T3R, RF_1T4R}, + {RF_2T1R, RF_2T2R, RF_2T3R, RF_2T4R}, + {RF_3T1R, RF_3T2R, RF_3T3R, RF_3T4R}, + {RF_4T1R, RF_4T2R, RF_4T3R, RF_4T4R}, }; enum rf_type trx_num_to_rf_type(u8 tx_num, u8 rx_num) @@ -768,19 +1697,6 @@ void tx_path_nss_set_full_tx(enum bb_path txpath_nss[], u8 txpath_num_nss[], u8 } } -const char *const _regd_str[] = { - "NONE", - "FCC", - "MKK", - "ETSI", - "IC", - "KCC", - "ACMA", - "CHILE", - "MEXICO", - "WW", -}; - /* * input with txpwr value in unit of txpwr index * return string in length 6 at least (for -xx.xx) @@ -849,6 +1765,7 @@ s16 mb_of_ntx(u8 ntx) return _mb_of_ntx[ntx - 1]; } +#if CONFIG_TXPWR_LIMIT void _dump_regd_exc_list(void *sel, struct rf_ctl_t *rfctl) { struct regd_exc_ent *ent; @@ -859,7 +1776,7 @@ void _dump_regd_exc_list(void *sel, struct rf_ctl_t *rfctl) if (!rfctl->regd_exc_num) goto exit; - RTW_PRINT_SEL(sel, "%-7s %-6s %-9s\n", "country", "domain", "regd_name"); + RTW_PRINT_SEL(sel, "%-7s %-6s %-8s\n", "country", "domain", "lmt_name"); head = &rfctl->reg_exc_list; cur = get_next(head); @@ -875,7 +1792,7 @@ void _dump_regd_exc_list(void *sel, struct rf_ctl_t *rfctl) , has_country ? ent->country[0] : '0' , has_country ? ent->country[1] : '0' , ent->domain - , ent->regd_name + , ent->lmt_name ); } @@ -892,12 +1809,12 @@ inline void dump_regd_exc_list(void *sel, struct rf_ctl_t *rfctl) _exit_critical_mutex(&rfctl->txpwr_lmt_mutex, &irqL); } -void rtw_regd_exc_add_with_nlen(struct rf_ctl_t *rfctl, const char *country, u8 domain, const char *regd_name, u32 nlen) +void rtw_regd_exc_add_with_nlen(struct rf_ctl_t *rfctl, const char *country, u8 domain, const char *lmt_name, u32 nlen) { struct regd_exc_ent *ent; _irqL irqL; - if (!regd_name || !nlen) { + if (!lmt_name || !nlen) { rtw_warn_on(1); goto exit; } @@ -910,7 +1827,7 @@ void rtw_regd_exc_add_with_nlen(struct rf_ctl_t *rfctl, const char *country, u8 if (country) _rtw_memcpy(ent->country, country, 2); ent->domain = domain; - _rtw_memcpy(ent->regd_name, regd_name, nlen); + _rtw_memcpy(ent->lmt_name, lmt_name, nlen); _enter_critical_mutex(&rfctl->txpwr_lmt_mutex, &irqL); @@ -923,9 +1840,9 @@ exit: return; } -inline void rtw_regd_exc_add(struct rf_ctl_t *rfctl, const char *country, u8 domain, const char *regd_name) +inline void rtw_regd_exc_add(struct rf_ctl_t *rfctl, const char *country, u8 domain, const char *lmt_name) { - rtw_regd_exc_add_with_nlen(rfctl, country, domain, regd_name, strlen(regd_name)); + rtw_regd_exc_add_with_nlen(rfctl, country, domain, lmt_name, strlen(lmt_name)); } struct regd_exc_ent *_rtw_regd_exc_search(struct rf_ctl_t *rfctl, const char *country, u8 domain) @@ -998,7 +1915,7 @@ void rtw_regd_exc_list_free(struct rf_ctl_t *rfctl) ent = LIST_CONTAINOR(cur, struct regd_exc_ent, list); cur = get_next(cur); rtw_list_delete(&ent->list); - rtw_mfree((u8 *)ent, sizeof(struct regd_exc_ent) + strlen(ent->regd_name) + 1); + rtw_mfree((u8 *)ent, sizeof(struct regd_exc_ent) + strlen(ent->lmt_name) + 1); } rfctl->regd_exc_num = 0; @@ -1023,10 +1940,10 @@ void dump_txpwr_lmt(void *sel, _adapter *adapter) _dump_regd_exc_list(sel, rfctl); RTW_PRINT_SEL(sel, "\n"); - if (!rfctl->txpwr_regd_num) + if (!rfctl->txpwr_lmt_num) goto release_lock; - lmt_idx = rtw_malloc(sizeof(s8) * RF_PATH_MAX * rfctl->txpwr_regd_num); + lmt_idx = rtw_malloc(sizeof(s8) * RF_PATH_MAX * rfctl->txpwr_lmt_num); if (!lmt_idx) { RTW_ERR("%s alloc fail\n", __func__); goto release_lock; @@ -1146,16 +2063,16 @@ void dump_txpwr_lmt(void *sel, _adapter *adapter) ent = LIST_CONTAINOR(cur, struct txpwr_lmt_ent, list); cur = get_next(cur); - sprintf(fmt, "%%%zus%%s ", strlen(ent->regd_name) >= 6 ? 1 : 6 - strlen(ent->regd_name)); + sprintf(fmt, "%%%zus%%s ", strlen(ent->name) >= 6 ? 1 : 6 - strlen(ent->name)); snprintf(tmp_str, TMP_STR_LEN, fmt - , strcmp(ent->regd_name, rfctl->regd_name) == 0 ? "*" : "" - , ent->regd_name); + , rtw_rfctl_is_current_txpwr_lmt(rfctl, ent->name) ? "*" : "" + , ent->name); _RTW_PRINT_SEL(sel, "%s", tmp_str); } - sprintf(fmt, "%%%zus%%s ", strlen(regd_str(TXPWR_LMT_WW)) >= 6 ? 1 : 6 - strlen(regd_str(TXPWR_LMT_WW))); + sprintf(fmt, "%%%zus%%s ", strlen(txpwr_lmt_str(TXPWR_LMT_WW)) >= 6 ? 1 : 6 - strlen(txpwr_lmt_str(TXPWR_LMT_WW))); snprintf(tmp_str, TMP_STR_LEN, fmt - , strcmp(rfctl->regd_name, regd_str(TXPWR_LMT_WW)) == 0 ? "*" : "" - , regd_str(TXPWR_LMT_WW)); + , rtw_rfctl_is_current_txpwr_lmt(rfctl, txpwr_lmt_str(TXPWR_LMT_WW)) ? "*" : "" + , txpwr_lmt_str(TXPWR_LMT_WW)); _RTW_PRINT_SEL(sel, "%s", tmp_str); /* header for limit offset */ @@ -1169,10 +2086,10 @@ void dump_txpwr_lmt(void *sel, _adapter *adapter) ent = LIST_CONTAINOR(cur, struct txpwr_lmt_ent, list); cur = get_next(cur); _RTW_PRINT_SEL(sel, "%3c " - , strcmp(ent->regd_name, rfctl->regd_name) == 0 ? rf_path_char(path) : ' '); + , rtw_rfctl_is_current_txpwr_lmt(rfctl, ent->name) ? rf_path_char(path) : ' '); } _RTW_PRINT_SEL(sel, "%3c " - , strcmp(rfctl->regd_name, regd_str(TXPWR_LMT_WW)) == 0 ? rf_path_char(path) : ' '); + , rtw_rfctl_is_current_txpwr_lmt(rfctl, txpwr_lmt_str(TXPWR_LMT_WW)) ? rf_path_char(path) : ' '); } _RTW_PRINT_SEL(sel, "\n"); @@ -1198,12 +2115,12 @@ void dump_txpwr_lmt(void *sel, _adapter *adapter) while ((rtw_end_of_queue_search(head, cur)) == _FALSE) { ent = LIST_CONTAINOR(cur, struct txpwr_lmt_ent, list); cur = get_next(cur); - lmt = phy_get_txpwr_lmt(adapter, ent->regd_name, band, bw, tlrs, ntx_idx, ch, 0); - txpwr_idx_get_dbm_str(lmt, hal_spec->txgi_max, hal_spec->txgi_pdbm, strlen(ent->regd_name), tmp_str, TMP_STR_LEN); + lmt = phy_get_txpwr_lmt(adapter, ent->name, band, bw, tlrs, ntx_idx, ch, 0); + txpwr_idx_get_dbm_str(lmt, hal_spec->txgi_max, hal_spec->txgi_pdbm, strlen(ent->name), tmp_str, TMP_STR_LEN); _RTW_PRINT_SEL(sel, "%s ", tmp_str); } - lmt = phy_get_txpwr_lmt(adapter, regd_str(TXPWR_LMT_WW), band, bw, tlrs, ntx_idx, ch, 0); - txpwr_idx_get_dbm_str(lmt, hal_spec->txgi_max, hal_spec->txgi_pdbm, strlen(regd_str(TXPWR_LMT_WW)), tmp_str, TMP_STR_LEN); + lmt = phy_get_txpwr_lmt(adapter, txpwr_lmt_str(TXPWR_LMT_WW), band, bw, tlrs, ntx_idx, ch, 0); + txpwr_idx_get_dbm_str(lmt, hal_spec->txgi_max, hal_spec->txgi_pdbm, strlen(txpwr_lmt_str(TXPWR_LMT_WW)), tmp_str, TMP_STR_LEN); _RTW_PRINT_SEL(sel, "%s ", tmp_str); /* dump limit offset of each path */ @@ -1220,7 +2137,7 @@ void dump_txpwr_lmt(void *sel, _adapter *adapter) while ((rtw_end_of_queue_search(head, cur)) == _FALSE) { ent = LIST_CONTAINOR(cur, struct txpwr_lmt_ent, list); cur = get_next(cur); - lmt_offset = phy_get_txpwr_lmt_diff(adapter, ent->regd_name, band, bw, path, rs, tlrs, ntx_idx, ch, 0); + lmt_offset = phy_get_txpwr_lmt_diff(adapter, ent->name, band, bw, path, rs, tlrs, ntx_idx, ch, 0); if (lmt_offset == hal_spec->txgi_max) { *(lmt_idx + i * RF_PATH_MAX + path) = hal_spec->txgi_max; _RTW_PRINT_SEL(sel, "%3s ", "NA"); @@ -1230,7 +2147,7 @@ void dump_txpwr_lmt(void *sel, _adapter *adapter) } i++; } - lmt_offset = phy_get_txpwr_lmt_diff(adapter, regd_str(TXPWR_LMT_WW), band, bw, path, rs, tlrs, ntx_idx, ch, 0); + lmt_offset = phy_get_txpwr_lmt_diff(adapter, txpwr_lmt_str(TXPWR_LMT_WW), band, bw, path, rs, tlrs, ntx_idx, ch, 0); if (lmt_offset == hal_spec->txgi_max) _RTW_PRINT_SEL(sel, "%3s ", "NA"); else @@ -1240,7 +2157,7 @@ void dump_txpwr_lmt(void *sel, _adapter *adapter) /* compare limit_idx of each path, print 'x' when mismatch */ if (rfpath_num > 1) { - for (i = 0; i < rfctl->txpwr_regd_num; i++) { + for (i = 0; i < rfctl->txpwr_lmt_num; i++) { for (path = 0; path < RF_PATH_MAX; path++) { if (path >= rfpath_num) break; @@ -1263,14 +2180,14 @@ void dump_txpwr_lmt(void *sel, _adapter *adapter) } /* loop for bands */ if (lmt_idx) - rtw_mfree(lmt_idx, sizeof(s8) * RF_PATH_MAX * rfctl->txpwr_regd_num); + rtw_mfree(lmt_idx, sizeof(s8) * RF_PATH_MAX * rfctl->txpwr_lmt_num); release_lock: _exit_critical_mutex(&rfctl->txpwr_lmt_mutex, &irqL); } /* search matcing first, if not found, alloc one */ -void rtw_txpwr_lmt_add_with_nlen(struct rf_ctl_t *rfctl, const char *regd_name, u32 nlen +void rtw_txpwr_lmt_add_with_nlen(struct rf_ctl_t *rfctl, const char *lmt_name, u32 nlen , u8 band, u8 bw, u8 tlrs, u8 ntx_idx, u8 ch_idx, s8 lmt) { struct hal_spec_t *hal_spec = GET_HAL_SPEC(dvobj_get_primary_adapter(rfctl_to_dvobj(rfctl))); @@ -1279,7 +2196,7 @@ void rtw_txpwr_lmt_add_with_nlen(struct rf_ctl_t *rfctl, const char *regd_name, _list *cur, *head; s8 pre_lmt; - if (!regd_name || !nlen) { + if (!lmt_name || !nlen) { rtw_warn_on(1); goto exit; } @@ -1293,8 +2210,8 @@ void rtw_txpwr_lmt_add_with_nlen(struct rf_ctl_t *rfctl, const char *regd_name, ent = LIST_CONTAINOR(cur, struct txpwr_lmt_ent, list); cur = get_next(cur); - if (strlen(ent->regd_name) == nlen - && _rtw_memcmp(ent->regd_name, regd_name, nlen) == _TRUE) + if (strlen(ent->name) == nlen + && _rtw_memcmp(ent->name, lmt_name, nlen) == _TRUE) goto chk_lmt_val; } @@ -1304,7 +2221,7 @@ void rtw_txpwr_lmt_add_with_nlen(struct rf_ctl_t *rfctl, const char *regd_name, goto release_lock; _rtw_init_listhead(&ent->list); - _rtw_memcpy(ent->regd_name, regd_name, nlen); + _rtw_memcpy(ent->name, lmt_name, nlen); { u8 j, k, l, m; @@ -1323,7 +2240,7 @@ void rtw_txpwr_lmt_add_with_nlen(struct rf_ctl_t *rfctl, const char *regd_name, } rtw_list_insert_tail(&ent->list, &rfctl->txpwr_lmt_list); - rfctl->txpwr_regd_num++; + rfctl->txpwr_lmt_num++; chk_lmt_val: if (band == BAND_ON_2_4G) @@ -1337,7 +2254,7 @@ chk_lmt_val: if (pre_lmt != hal_spec->txgi_max) RTW_PRINT("duplicate txpwr_lmt for [%s][%s][%s][%s][%uT][%d]\n" - , regd_name, band_str(band), ch_width_str(bw), txpwr_lmt_rs_str(tlrs), ntx_idx + 1 + , lmt_name, band_str(band), ch_width_str(bw), txpwr_lmt_rs_str(tlrs), ntx_idx + 1 , band == BAND_ON_2_4G ? ch_idx + 1 : center_ch_5g_all[ch_idx]); lmt = rtw_min(pre_lmt, lmt); @@ -1350,7 +2267,7 @@ chk_lmt_val: if (0) RTW_PRINT("%s, %4s, %6s, %7s, %uT, ch%3d = %d\n" - , regd_name, band_str(band), ch_width_str(bw), txpwr_lmt_rs_str(tlrs), ntx_idx + 1 + , lmt_name, band_str(band), ch_width_str(bw), txpwr_lmt_rs_str(tlrs), ntx_idx + 1 , band == BAND_ON_2_4G ? ch_idx + 1 : center_ch_5g_all[ch_idx] , lmt); @@ -1361,14 +2278,14 @@ exit: return; } -inline void rtw_txpwr_lmt_add(struct rf_ctl_t *rfctl, const char *regd_name +inline void rtw_txpwr_lmt_add(struct rf_ctl_t *rfctl, const char *lmt_name , u8 band, u8 bw, u8 tlrs, u8 ntx_idx, u8 ch_idx, s8 lmt) { - rtw_txpwr_lmt_add_with_nlen(rfctl, regd_name, strlen(regd_name) + rtw_txpwr_lmt_add_with_nlen(rfctl, lmt_name, strlen(lmt_name) , band, bw, tlrs, ntx_idx, ch_idx, lmt); } -struct txpwr_lmt_ent *_rtw_txpwr_lmt_get_by_name(struct rf_ctl_t *rfctl, const char *regd_name) +struct txpwr_lmt_ent *_rtw_txpwr_lmt_get_by_name(struct rf_ctl_t *rfctl, const char *lmt_name) { struct txpwr_lmt_ent *ent; _list *cur, *head; @@ -1381,7 +2298,7 @@ struct txpwr_lmt_ent *_rtw_txpwr_lmt_get_by_name(struct rf_ctl_t *rfctl, const c ent = LIST_CONTAINOR(cur, struct txpwr_lmt_ent, list); cur = get_next(cur); - if (strcmp(ent->regd_name, regd_name) == 0) { + if (strcmp(ent->name, lmt_name) == 0) { found = 1; break; } @@ -1392,13 +2309,13 @@ struct txpwr_lmt_ent *_rtw_txpwr_lmt_get_by_name(struct rf_ctl_t *rfctl, const c return NULL; } -inline struct txpwr_lmt_ent *rtw_txpwr_lmt_get_by_name(struct rf_ctl_t *rfctl, const char *regd_name) +inline struct txpwr_lmt_ent *rtw_txpwr_lmt_get_by_name(struct rf_ctl_t *rfctl, const char *lmt_name) { struct txpwr_lmt_ent *ent; _irqL irqL; _enter_critical_mutex(&rfctl->txpwr_lmt_mutex, &irqL); - ent = _rtw_txpwr_lmt_get_by_name(rfctl, regd_name); + ent = _rtw_txpwr_lmt_get_by_name(rfctl, lmt_name); _exit_critical_mutex(&rfctl->txpwr_lmt_mutex, &irqL); return ent; @@ -1409,6 +2326,7 @@ void rtw_txpwr_lmt_list_free(struct rf_ctl_t *rfctl) struct txpwr_lmt_ent *ent; _irqL irqL; _list *cur, *head; + int band; _enter_critical_mutex(&rfctl->txpwr_lmt_mutex, &irqL); @@ -1418,15 +2336,17 @@ void rtw_txpwr_lmt_list_free(struct rf_ctl_t *rfctl) while ((rtw_end_of_queue_search(head, cur)) == _FALSE) { ent = LIST_CONTAINOR(cur, struct txpwr_lmt_ent, list); cur = get_next(cur); - if (ent->regd_name == rfctl->regd_name) - rfctl->regd_name = regd_str(TXPWR_LMT_NONE); rtw_list_delete(&ent->list); - rtw_vmfree((u8 *)ent, sizeof(struct txpwr_lmt_ent) + strlen(ent->regd_name) + 1); + rtw_vmfree((u8 *)ent, sizeof(struct txpwr_lmt_ent) + strlen(ent->name) + 1); } - rfctl->txpwr_regd_num = 0; + rfctl->txpwr_lmt_num = 0; + + for (band = 0; band < BAND_MAX; band++) + rfctl->txpwr_lmt_name[band] = NULL; _exit_critical_mutex(&rfctl->txpwr_lmt_mutex, &irqL); } +#endif /* CONFIG_TXPWR_LIMIT */ int rtw_ch_to_bb_gain_sel(int ch) { @@ -1480,7 +2400,8 @@ exit: void rtw_rf_set_tx_gain_offset(_adapter *adapter, u8 path, s8 offset) { -#if !defined(CONFIG_RTL8814A) && !defined(CONFIG_RTL8822B) && !defined(CONFIG_RTL8821C) && !defined(CONFIG_RTL8822C) +#if !defined(CONFIG_RTL8814A) && !defined(CONFIG_RTL8822B) && !defined(CONFIG_RTL8821C) && !defined(CONFIG_RTL8822C) \ + && !defined(CONFIG_RTL8723F) u8 write_value; #endif u8 target_path = 0; @@ -1540,15 +2461,17 @@ void rtw_rf_set_tx_gain_offset(_adapter *adapter, u8 path, s8 offset) rtw_hal_write_rfreg(adapter, target_path, 0x55, 0x0f8000, write_value); break; #endif /* CONFIG_RTL8821A */ -#if defined(CONFIG_RTL8814A) || defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8192F) || defined(CONFIG_RTL8822C) +#if defined(CONFIG_RTL8814A) || defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8192F) || defined(CONFIG_RTL8822C) \ + || defined(CONFIG_RTL8723F) case RTL8814A: case RTL8822B: case RTL8822C: case RTL8821C: case RTL8192F: + case RTL8723F: RTW_INFO("\nkfree by PhyDM on the sw CH. path %d\n", path); break; -#endif /* CONFIG_RTL8814A || CONFIG_RTL8822B || CONFIG_RTL8821C */ +#endif /* CONFIG_RTL8814A || CONFIG_RTL8822B || CONFIG_RTL8821C || CONFIG_RTL8723F */ default: rtw_warn_on(1); @@ -1586,34 +2509,9 @@ void rtw_rf_apply_tx_gain_offset(_adapter *adapter, u8 ch) } } -inline u8 rtw_is_dfs_range(u32 hi, u32 lo) -{ - return rtw_is_range_overlap(hi, lo, 5720 + 10, 5260 - 10); -} - -u8 rtw_is_dfs_ch(u8 ch) -{ - u32 hi, lo; - - if (!rtw_chbw_to_freq_range(ch, CHANNEL_WIDTH_20, HAL_PRIME_CHNL_OFFSET_DONT_CARE, &hi, &lo)) - return 0; - - return rtw_is_dfs_range(hi, lo); -} - -u8 rtw_is_dfs_chbw(u8 ch, u8 bw, u8 offset) -{ - u32 hi, lo; - - if (!rtw_chbw_to_freq_range(ch, bw, offset, &hi, &lo)) - return 0; - - return rtw_is_dfs_range(hi, lo); -} - bool rtw_is_long_cac_range(u32 hi, u32 lo, u8 dfs_region) { - return (dfs_region == PHYDM_DFS_DOMAIN_ETSI && rtw_is_range_overlap(hi, lo, 5650, 5600)) ? _TRUE : _FALSE; + return (dfs_region == RTW_DFS_REGD_ETSI && rtw_is_range_overlap(hi, lo, 5650, 5600)) ? _TRUE : _FALSE; } bool rtw_is_long_cac_ch(u8 ch, u8 bw, u8 offset, u8 dfs_region) diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_rm.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_rm.c index 10e149bf..ae72957b 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_rm.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_rm.c @@ -21,6 +21,9 @@ #endif #define pstr(s) s+strlen(s) +#ifndef MIN +#define MIN(x, y) (((x) < (y)) ? (x) : (y)) +#endif u8 rm_post_event_hdl(_adapter *padapter, u8 *pbuf) { @@ -33,6 +36,20 @@ u8 rm_post_event_hdl(_adapter *padapter, u8 *pbuf) return H2C_SUCCESS; } +void rm_update_cap(u8 *frame_head, _adapter *pa, u32 pktlen, int offset) +{ +#ifdef CONFIG_RTW_80211K + u8 *res; + sint len; + + res = rtw_get_ie(frame_head + offset, _EID_RRM_EN_CAP_IE_, &len, + pktlen - offset); + if (res != NULL) + _rtw_memcpy((void *)pa->rmpriv.rm_en_cap_def, (res + 2), + MIN(len, sizeof(pa->rmpriv.rm_en_cap_def))); +#endif +} + #ifdef CONFIG_RTW_80211K struct cmd_meas_type_ { u8 id; @@ -189,10 +206,8 @@ int rm_en_cap_chk_and_set(struct rm_obj *prm, enum rm_cap_en en) } /* for caller outside rm */ -u8 rm_add_nb_req(_adapter *padapter, struct sta_info *psta) +u8 rm_add_nb_req(_adapter *padapter, struct sta_info *psta, u32 delay_start) { - struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; - struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info; struct rm_obj *prm; @@ -205,16 +220,11 @@ u8 rm_add_nb_req(_adapter *padapter, struct sta_info *psta) prm->psta = psta; prm->q.category = RTW_WLAN_CATEGORY_RADIO_MEAS; - do { - pmlmeinfo->dialogToken++; - } while (pmlmeinfo->dialogToken == 0); - - prm->q.diag_token = pmlmeinfo->dialogToken; - prm->q.m_token = 1; - - prm->rmid = psta->cmn.aid << 16 - | prm->q.diag_token << 8 - | RM_MASTER; + prm->q.diag_token = rm_gen_dialog_token(padapter); + prm->q.m_token = rm_gen_meas_token(padapter); + prm->q.delay_start = delay_start; + prm->q.retry = 3; + prm->rmid = rm_gen_rmid(padapter, prm, RM_MASTER); prm->q.action_code = RM_ACT_NB_REP_REQ; @@ -370,8 +380,8 @@ int ready_for_scan(struct rm_obj *prm) int rm_sitesurvey(struct rm_obj *prm) { - int meas_ch_num=0; - u8 ch_num=0, op_class=0, val8; + int meas_ch_amount=0; + u8 op_class=0, val8; struct rtw_ieee80211_channel *pch_set; struct sitesurvey_parm parm; @@ -381,33 +391,40 @@ int rm_sitesurvey(struct rm_obj *prm) pch_set = &prm->q.ch_set[0]; _rtw_memset(pch_set, 0, - sizeof(struct rtw_ieee80211_channel) * MAX_OP_CHANNEL_SET_NUM); + sizeof(struct rtw_ieee80211_channel) * RTW_CHANNEL_SCAN_AMOUNT); + op_class = prm->q.op_class; if (prm->q.ch_num == 0) { /* ch_num=0 : scan all ch in operating class */ - op_class = prm->q.op_class; + meas_ch_amount = rm_get_ch_set(pch_set, + op_class, prm->q.ch_num); } else if (prm->q.ch_num == 255) { - /* 802.11 p.499 */ - /* ch_num=255 : scan all ch in current operating class */ - op_class = rm_get_oper_class_via_ch( - (u8)prm->psta->padapter->mlmeextpriv.cur_channel); + /* 802.11 p.1066 */ + /* ch_num=255 : If the Channel Number is 255 and includes + * AP Channel Report subelements + */ + meas_ch_amount = rm_get_ch_set_from_bcn_req_opt(pch_set, &prm->q.opt.bcn); } else - ch_num = prm->q.ch_num; + meas_ch_amount = rm_get_ch_set(pch_set, op_class, prm->q.ch_num); /* get means channel */ - meas_ch_num = rm_get_ch_set(pch_set, op_class, ch_num); - prm->q.ch_set_ch_amount = meas_ch_num; + prm->q.ch_set_ch_amount = meas_ch_amount; + +#if (RM_MORE_DBG_MSG) + RTW_INFO("survey (%d) chaannels\n", meas_ch_amount); +#endif _rtw_memset(&parm, 0, sizeof(struct sitesurvey_parm)); _rtw_memcpy(parm.ch, pch_set, - sizeof(struct rtw_ieee80211_channel) * MAX_OP_CHANNEL_SET_NUM); + sizeof(struct rtw_ieee80211_channel) * + MIN(meas_ch_amount, RTW_CHANNEL_SCAN_AMOUNT)); _rtw_memcpy(&parm.ssid[0], &prm->q.opt.bcn.ssid, IW_ESSID_MAX_SIZE); parm.ssid_num = 1; parm.scan_mode = prm->q.m_mode; - parm.ch_num = meas_ch_num; + parm.ch_num = meas_ch_amount; parm.igi = 0; parm.token = prm->rmid; parm.duration = prm->q.meas_dur; @@ -501,6 +518,8 @@ static int rm_parse_bcn_req_s_elem(struct rm_obj *prm, u8 *pbody, int req_len) u8 *popt_id; int i, p=0; /* position */ int len = req_len; + int ap_ch_rpt_idx = 0; + struct _RT_OPERATING_CLASS *op; /* opt length,2:pbody[0]+ pbody[1] */ @@ -525,16 +544,15 @@ static int rm_parse_bcn_req_s_elem(struct rm_obj *prm, u8 *pbody, int req_len) RTW_INFO("DBG set ssid to %s\n",DBG_BCN_REQ_SSID_NAME); i = strlen(DBG_BCN_REQ_SSID_NAME); prm->q.opt.bcn.ssid.SsidLength = i; - _rtw_memcpy(&(prm->q.opt.bcn.ssid.Ssid), - DBG_BCN_REQ_SSID_NAME, i); + _rtw_memcpy(&(prm->q.opt.bcn.ssid.Ssid), DBG_BCN_REQ_SSID_NAME, + MIN(i, sizeof(prm->q.opt.bcn.ssid.Ssid)-1)); #else /* original */ prm->q.opt.bcn.ssid.SsidLength = pbody[p+1]; - _rtw_memcpy(&(prm->q.opt.bcn.ssid.Ssid), - &pbody[p+2], pbody[p+1]); + _rtw_memcpy(&(prm->q.opt.bcn.ssid.Ssid), &pbody[p+2], + MIN(pbody[p+1], sizeof(prm->q.opt.bcn.ssid.Ssid)-1)); #endif #endif - RTW_INFO("RM: bcn_req_ssid=%s\n", prm->q.opt.bcn.ssid.Ssid); @@ -587,11 +605,32 @@ static int rm_parse_bcn_req_s_elem(struct rm_obj *prm, u8 *pbody, int req_len) popt_id[prm->q.opt.bcn.opt_id_num++] = pbody[p]; break; - case bcn_req_ac_ch_rep: + case bcn_req_ap_ch_rep: #if (RM_MORE_DBG_MSG) - RTW_INFO("RM: bcn_req_ac_ch_rep\n"); + RTW_INFO("RM: bcn_req_ap_ch_rep\n"); #endif + if (ap_ch_rpt_idx > BCN_REQ_OPT_AP_CH_RPT_MAX_NUM) { + RTW_ERR("RM: bcn_req_ap_ch_rep over size\n"); + break; + } + popt_id[prm->q.opt.bcn.opt_id_num++] = pbody[p]; + /* get channel list + * EID:len:op-class:ch-list + */ + op = rtw_malloc(sizeof (*op)); + op->global_op_class = pbody[p + 2]; + i = pbody[p + 1] - 1; /* ch list len; (-1) is op class */ + +#if (RM_MORE_DBG_MSG) + RTW_INFO("%d op class %d has %d ch\n", + ap_ch_rpt_idx,op->global_op_class,i); +#endif + op->Len = i; + memcpy(op->Channel, &pbody[p + 3], + MIN(i, MAX_CH_NUM_IN_OP_CLASS)); + prm->q.opt.bcn.ap_ch_rpt[ap_ch_rpt_idx++] = op; + prm->q.opt.bcn.ap_ch_rpt_num = ap_ch_rpt_idx; break; default: @@ -703,10 +742,7 @@ int rm_recv_radio_mens_req(_adapter *padapter, prm->q.m_token = pmeas_body[2]; prm->q.m_mode = pmeas_body[3]; prm->q.m_type = pmeas_body[4]; - - prm->rmid = psta->cmn.aid << 16 - | prm->q.diag_token << 8 - | RM_SLAVE; + prm->rmid = rm_gen_rmid(padapter, prm, RM_SLAVE); RTW_INFO("RM: rmid=%x, bssid " MAC_FMT "\n", prm->rmid, MAC_ARG(prm->psta->cmn.mac_addr)); @@ -762,16 +798,36 @@ done: return _SUCCESS; } +static u8 cnt_rm_report_ies(struct rm_obj *prm, u8 eid, u8 *buf, u32 buf_len) +{ + u8 *pos = buf; + u8 id, len, cnt = 0; + + while (pos - buf + 1 < buf_len) { + id = *pos; + len = *(pos + 1); + + if (id == eid) + cnt++; + /*indicate_beacon_report(prm->psta->cmn.mac_addr,*/ + /*1, 2 + len, pos);*/ + + pos += (2 + len); + } + return cnt; +} + /* receive measurement report */ int rm_recv_radio_mens_rep(_adapter *padapter, union recv_frame *precv_frame, struct sta_info *psta) { - int ret = _FALSE; + u32 len; struct rm_obj *prm; u32 rmid; u8 *pdiag_body = (u8 *)(precv_frame->u.hdr.rx_data + sizeof(struct rtw_ieee80211_hdr_3addr)); u8 *pmeas_body = &pdiag_body[3]; + u8 bcn_rpt_cnt; rmid = psta->cmn.aid << 16 @@ -779,8 +835,11 @@ int rm_recv_radio_mens_rep(_adapter *padapter, | RM_MASTER; prm = rm_get_rmobj(padapter, rmid); - if (prm == NULL) - return _FALSE; + if (prm == NULL) { + /* not belong to us, report to upper */ + rtw_cfg80211_rx_rrm_action(psta->padapter, precv_frame); + return _TRUE; + } prm->p.action_code = pdiag_body[1]; prm->p.diag_token = pdiag_body[2]; @@ -807,7 +866,20 @@ int rm_recv_radio_mens_rep(_adapter *padapter, RTW_INFO("RM: recv %s\n", rm_type_rep_name(prm->p.m_type)); rm_post_event(padapter, prm->rmid, RM_EV_recv_rep); - return ret; + /* report to upper via ioctl */ + if ((prm->from_ioctl == true) && + prm->q.m_type == bcn_req) { + len = precv_frame->u.hdr.len - + sizeof(struct rtw_ieee80211_hdr_3addr) - + 3; /* Category + Action code + token */ + + bcn_rpt_cnt = cnt_rm_report_ies(prm, _MEAS_RSP_IE_, + pmeas_body, len); + if (bcn_rpt_cnt > 0) + indicate_beacon_report(prm->psta->cmn.mac_addr, + bcn_rpt_cnt, len, pmeas_body); + } + return _TRUE; } /* receive link measurement request */ @@ -840,10 +912,7 @@ int rm_recv_link_mens_req(_adapter *padapter, prm->q.rx_rate = hw_rate_to_m_rate(precv_frame->u.hdr.attrib.data_rate); prm->q.rx_bw = precv_frame->u.hdr.attrib.bw; prm->q.rx_rsni = rm_get_frame_rsni(prm, precv_frame); - - prm->rmid = psta->cmn.aid << 16 - | prm->q.diag_token << 8 - | RM_SLAVE; + prm->rmid = rm_gen_rmid(padapter, prm, RM_SLAVE); RTW_INFO("RM: rmid=%x, bssid" MAC_FMT " rx_pwr=%ddBm, rate=%s\n", prm->rmid, MAC_ARG(prm->psta->cmn.mac_addr), prm->q.rx_pwr, @@ -879,8 +948,9 @@ int rm_recv_link_mens_rep(_adapter *padapter, prm = rm_get_rmobj(padapter, rmid); if (prm == NULL) { - RTW_ERR("RM: rmid 0x%08x not found\n", rmid); - return ret; + /* not belong to us, report to upper */ + rtw_cfg80211_rx_rrm_action(psta->padapter, precv_frame); + return _TRUE; } RTW_INFO("RM: rmid=%x, bssid " MAC_FMT "\n", prm->rmid, @@ -922,8 +992,12 @@ int rm_radio_mens_nb_rep(_adapter *padapter, | RM_MASTER; prm = rm_get_rmobj(padapter, rmid); - if (prm == NULL) - return _FALSE; + + if (prm == NULL) { + /* not belong to us, report to upper */ + rtw_cfg80211_rx_rrm_action(psta->padapter, precv_frame); + return _TRUE; + } prm->p.action_code = pdiag_body[1]; prm->p.diag_token = pdiag_body[2]; @@ -1108,6 +1182,9 @@ static u8 *rm_gen_bcn_detail_elem(_adapter *padapter, u8 *pframe, continue; #if (RM_MORE_DBG_MSG) switch (eid) { + case EID_SsId: + RTW_INFO("RM: EID_SSID\n"); + break; case EID_QBSSLoad: RTW_INFO("RM: EID_QBSSLoad\n"); break; @@ -1117,16 +1194,24 @@ static u8 *rm_gen_bcn_detail_elem(_adapter *padapter, u8 *pframe, case _MDIE_: RTW_INFO("RM: EID_MobilityDomain\n"); break; + case EID_Vendor: + RTW_INFO("RM: EID_Vendor\n"); + break; default: RTW_INFO("RM: EID %d todo\n",eid); break; } #endif pframe = rtw_set_ie(pframe, eid, - len,ptr+2, &my_len); + len, ptr+2, &my_len); } /* for() */ break; - case bcn_req_ac_ch_rep: + case bcn_req_rep_detail: + RTW_INFO("RM: bcn_req_rep_detail\n"); + break; + case bcn_req_ap_ch_rep: + RTW_INFO("RM: bcn_req_ap_ch_rep\n"); + break; default: RTW_INFO("RM: OPT %d TODO\n",prm->q.opt.bcn.opt_id[j]); break; @@ -1236,7 +1321,10 @@ static u8 *rm_gen_bcn_rep_ie (struct rm_obj *prm, pframe = rtw_set_fixed_ie(pframe, 1, &val8, &my_len); /* ParentTSF */ - val32 = prm->meas_start_time + pnetwork->network.PhyInfo.free_cnt; + val32 = pnetwork->network.PhyInfo.free_cnt; + if (prm->free_run_counter_valid) + val32 += prm->meas_start_time; + pframe = rtw_set_fixed_ie(pframe, 4, (u8 *)&val32, &my_len); /* Generate Beacon detail */ @@ -1255,6 +1343,99 @@ static u8 *rm_gen_bcn_rep_ie (struct rm_obj *prm, return pframe; } +#if 0 /* check MBO logo */ +static int rm_match_sub_elem(_adapter *padapter, + struct rm_obj *prm, struct wlan_network *pnetwork) +{ + WLAN_BSSID_EX *pbss = &pnetwork->network; + unsigned int my_len; + int j, k, len; + u8 *plen; + u8 *ptr; + u8 val8, eid; + + + my_len = 0; + /* Reporting Detail values + * 0: No fixed length fields or elements + * 1: All fixed length fields and any requested elements + * in the Request info element if present + * 2: All fixed length fields and elements + * 3-255: Reserved + */ + + /* report_detail != 1 */ + if (prm->q.opt.bcn.rep_detail != 1) + return _TRUE; + + /* report_detail = 1 */ + + for (j = 0; j < prm->q.opt.bcn.opt_id_num; j++) { + switch (prm->q.opt.bcn.opt_id[j]) { + case bcn_req_ssid: + /* SSID */ +#if (RM_MORE_DBG_MSG) + RTW_INFO("RM: bcn_req_ssid\n"); +#endif + if (pbss->Ssid.SsidLength == 0) + return _FALSE; + break; + case bcn_req_req: + if (prm->q.opt.bcn.req_start == NULL) + break; +#if (RM_MORE_DBG_MSG) + RTW_INFO("RM: bcn_req_req"); +#endif + for (k=0; kq.opt.bcn.req_len; k++) { + eid = prm->q.opt.bcn.req_start[k]; + + val8 = pbss->IELength - _FIXED_IE_LENGTH_; + ptr = rtw_get_ie(pbss->IEs + _FIXED_IE_LENGTH_, + eid, &len, val8); + +#if (RM_MORE_DBG_MSG) + switch (eid) { + case EID_SsId: + RTW_INFO("RM: EID_SSID\n"); + break; + case EID_QBSSLoad: + RTW_INFO("RM: EID_QBSSLoad\n"); + break; + case EID_HTCapability: + RTW_INFO("RM: EID_HTCapability\n"); + break; + case _MDIE_: + RTW_INFO("RM: EID_MobilityDomain\n"); + break; + case EID_Vendor: + RTW_INFO("RM: EID_Vendor\n"); + break; + default: + RTW_INFO("RM: EID %d todo\n",eid); + break; + } +#endif + if (!ptr) { + RTW_INFO("RM: EID %d not found\n",eid); + return _FALSE; + } + } /* for() */ + break; + case bcn_req_rep_detail: + RTW_INFO("RM: bcn_req_rep_detail\n"); + break; + case bcn_req_ap_ch_rep: + RTW_INFO("RM: bcn_req_ap_ch_rep\n"); + break; + default: + RTW_INFO("RM: OPT %d TODO\n",prm->q.opt.bcn.opt_id[j]); + break; + } + } + return _TRUE; +} +#endif + static int retrieve_scan_result(struct rm_obj *prm) { _irqL irqL; @@ -1264,7 +1445,7 @@ static int retrieve_scan_result(struct rm_obj *prm) struct rtw_ieee80211_channel *pch_set; struct wlan_network *pnetwork = NULL; struct mlme_priv *pmlmepriv = &padapter->mlmepriv; - int i, meas_ch_num=0; + int i; PWLAN_BSSID_EX pbss; unsigned int matched_network; int len, my_len; @@ -1287,7 +1468,6 @@ static int retrieve_scan_result(struct rm_obj *prm) /* get requested measurement channel set */ pch_set = prm->q.ch_set; - meas_ch_num = prm->q.ch_set_ch_amount; /* search scan queue to find requested SSID */ while (1) { @@ -1298,88 +1478,98 @@ static int retrieve_scan_result(struct rm_obj *prm) pnetwork = LIST_CONTAINOR(plist, struct wlan_network, list); pbss = &pnetwork->network; +#if 0 + RTW_INFO("RM: ooo ch %u ssid %s bssid "MAC_FMT"\n", + pbss->Configuration.DSConfig, pbss->Ssid.Ssid, + MAC_ARG(pbss->MacAddress)); /* * report network if requested channel set contains * the channel matchs selected network */ if (rtw_chset_search_ch(adapter_to_chset(padapter), - pbss->Configuration.DSConfig) == 0) + pbss->Configuration.DSConfig) < 0) /* not match */ goto next; if (rtw_mlme_band_check(padapter, pbss->Configuration.DSConfig) == _FALSE) goto next; - +#endif if (rtw_validate_ssid(&(pbss->Ssid)) == _FALSE) goto next; + /* match bssid */ + if (is_wildcard_bssid(prm->q.bssid) == FALSE) + if (_rtw_memcmp(prm->q.bssid, + pbss->MacAddress, 6) == _FALSE) + //continue; + goto next; + /* + * default wildcard SSID. wildcard SSID: + * A SSID value (null) used to represent all SSIDs + */ + + /* match ssid */ + if ((prm->q.opt.bcn.ssid.SsidLength > 0) && + _rtw_memcmp(prm->q.opt.bcn.ssid.Ssid, + pbss->Ssid.Ssid, + prm->q.opt.bcn.ssid.SsidLength) == _FALSE) + goto next; + /* go through measurement requested channels */ - for (i = 0; i < meas_ch_num; i++) { + for (i = 0; i < prm->q.ch_set_ch_amount; i++) { + if ((pch_set[i].hw_value) == + (pbss->Configuration.DSConfig)) /* match ch */ + break; + } + if (i >= prm->q.ch_set_ch_amount) /* channel mismatch */ + goto next; - /* match channel */ - if (pch_set[i].hw_value != pbss->Configuration.DSConfig) - continue; - - /* match bssid */ - if (is_wildcard_bssid(prm->q.bssid) == FALSE) - if (_rtw_memcmp(prm->q.bssid, - pbss->MacAddress, 6) == _FALSE) { - continue; - } - /* - * default wildcard SSID. wildcard SSID: - * A SSID value (null) used to represent all SSIDs - */ - - /* match ssid */ - if ((prm->q.opt.bcn.ssid.SsidLength > 0) && - _rtw_memcmp(prm->q.opt.bcn.ssid.Ssid, - pbss->Ssid.Ssid, - prm->q.opt.bcn.ssid.SsidLength) == _FALSE) - continue; - - /* match condition */ - if (rm_bcn_req_cond_mach(prm, pnetwork) == _FALSE) { - RTW_INFO("RM: condition mismatch ch %u ssid %s bssid "MAC_FMT"\n", - pch_set[i].hw_value, pbss->Ssid.Ssid, - MAC_ARG(pbss->MacAddress)); - RTW_INFO("RM: condition %u:%u\n", - prm->q.opt.bcn.rep_cond.cond, - prm->q.opt.bcn.rep_cond.threshold); - continue; - } - - /* Found a matched SSID */ - matched_network++; - - RTW_INFO("RM: ch %u Found %s bssid "MAC_FMT"\n", - pch_set[i].hw_value, pbss->Ssid.Ssid, + /* match condition */ + if (rm_bcn_req_cond_mach(prm, pnetwork) == _FALSE) { + RTW_INFO("RM: condition mismatch ch %u ssid %s bssid "MAC_FMT"\n", + pbss->Configuration.DSConfig, pbss->Ssid.Ssid, MAC_ARG(pbss->MacAddress)); + RTW_INFO("RM: condition %u:%u\n", + prm->q.opt.bcn.rep_cond.cond, + prm->q.opt.bcn.rep_cond.threshold); + goto next; + //continue; + } +#if 0 /* check MBO logo */ + /* match subelement */ + if (rm_match_sub_elem(padapter, prm, pnetwork) == _FALSE) + goto next; +#endif + /* Found a matched SSID */ + matched_network++; - len = 0; - _rtw_memset(tmp_buf, 0, MAX_XMIT_EXTBUF_SZ); - rm_gen_bcn_rep_ie(prm, tmp_buf, pnetwork, &len); + RTW_INFO("RM: ch %u Found %s bssid "MAC_FMT"\n", + pbss->Configuration.DSConfig, pbss->Ssid.Ssid, + MAC_ARG(pbss->MacAddress)); + + len = 0; + _rtw_memset(tmp_buf, 0, MAX_XMIT_EXTBUF_SZ); + rm_gen_bcn_rep_ie(prm, tmp_buf, pnetwork, &len); new_packet: - if (my_len == 0) { - pbuf = rtw_malloc(MAX_XMIT_EXTBUF_SZ); - if (pbuf == NULL) - goto fail; - prm->buf[buf_idx].pbuf = pbuf; - } + if (my_len == 0) { + pbuf = rtw_malloc(MAX_XMIT_EXTBUF_SZ); + if (pbuf == NULL) + goto fail; + prm->buf[buf_idx].pbuf = pbuf; + } - if ((MAX_XMIT_EXTBUF_SZ - (my_len+len+24+4)) > 0) { - pbuf = rtw_set_fixed_ie(pbuf, - len, tmp_buf, &my_len); - prm->buf[buf_idx].len = my_len; - } else { - if (my_len == 0) /* not enough space */ - goto fail; + if ((MAX_XMIT_EXTBUF_SZ - (my_len+len+24+4)) > 0) { + pbuf = rtw_set_fixed_ie(pbuf, + len, tmp_buf, &my_len); + prm->buf[buf_idx].len = my_len; + } else { + if (my_len == 0) /* not enough space */ + goto fail; - my_len = 0; - buf_idx++; - goto new_packet; - } - } /* for() */ + my_len = 0; + buf_idx++; + goto new_packet; + } next: plist = get_next(plist); } /* while() */ @@ -1647,17 +1837,96 @@ int issue_link_meas_rep(struct rm_obj *prm) } static u8 *rm_gen_bcn_req_s_elem(_adapter *padapter, - u8 *pframe, unsigned int *fr_len) + struct rm_obj *prm, u8 *pframe, unsigned int *fr_len) { - u8 val8; + u8 val8, l; + int i; unsigned int my_len = 0; - u8 bssid[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; - + struct _RT_OPERATING_CLASS *op; + /* meas mode */ val8 = bcn_req_active; /* measurement mode T8-64 */ pframe = rtw_set_fixed_ie(pframe, 1, &val8, &my_len); - pframe = rtw_set_fixed_ie(pframe, 6, bssid, &my_len); + /* bssid */ + pframe = rtw_set_fixed_ie(pframe, 6, prm->q.bssid, &my_len); + + /* + * opt ssid (0) + */ + l = MIN(32, (int)prm->q.opt.bcn.ssid.SsidLength); + + l = (int)prm->q.opt.bcn.ssid.SsidLength; + + if (l > 32) + RTW_ERR("RM: %s SSID len over size %d! skip it!\n",__func__, l); + + if (l > 0 && l <= 32) { + /* Type */ + val8 = bcn_req_ssid; + pframe = rtw_set_fixed_ie(pframe, 1, + &val8, &my_len); + /* Len */ + pframe = rtw_set_fixed_ie(pframe, 1, + &l, &my_len); + /* Value */ + pframe = rtw_set_fixed_ie(pframe, l, + prm->q.opt.bcn.ssid.Ssid, &my_len); + } + + /* + * opt reporting detail (2) + */ + /* Type */ + val8 = bcn_req_rep_detail; + pframe = rtw_set_fixed_ie(pframe, 1, + &val8, &my_len); + /* Len */ + l = 1; + pframe = rtw_set_fixed_ie(pframe, 1, + &l, &my_len); + /* Value */ + pframe = rtw_set_fixed_ie(pframe, l, + &prm->q.opt.bcn.rep_detail, &my_len); + + /* + * opt request (10) + */ + + if (prm->q.opt.bcn.req_id_num > 0) { + /* Type */ + val8 = bcn_req_req; + pframe = rtw_set_fixed_ie(pframe, 1, + &val8, &my_len); + /* Len */ + l = prm->q.opt.bcn.req_id_num; + pframe = rtw_set_fixed_ie(pframe, 1, + &l, &my_len); + /* Value */ + pframe = rtw_set_fixed_ie(pframe, l, + prm->q.opt.bcn.req_id, &my_len); + } + + /* + * opt ap channel report (51) + */ + for (i = 0; i < prm->q.opt.bcn.ap_ch_rpt_num; i++) { + op = prm->q.opt.bcn.ap_ch_rpt[i]; + if (op == NULL) + break; + /* Type */ + val8 = bcn_req_ap_ch_rep; + pframe = rtw_set_fixed_ie(pframe, 1, &val8, &my_len); + l = (u8)op->Len + 1; + /* length */ + pframe = rtw_set_fixed_ie(pframe, 1, &l, &my_len); + + /* op class */ + val8 = op->global_op_class; + pframe = rtw_set_fixed_ie(pframe, 1, &val8, &my_len); + /* channel */ + pframe = rtw_set_fixed_ie(pframe, op->Len, op->Channel, &my_len); + } /* update length to caller */ *fr_len += my_len; @@ -1738,6 +2007,8 @@ int issue_radio_meas_req(struct rm_obj *prm) } pattr = &pmgntframe->attrib; pframe = build_wlan_hdr(padapter, pmgntframe, prm->psta, WIFI_ACTION); + + /* Category, Action code, Dialog token */ pframe = rtw_set_fixed_ie(pframe, 3, &prm->q.category, &pattr->pktlen); /* repeat */ @@ -1747,22 +2018,21 @@ int issue_radio_meas_req(struct rm_obj *prm) my_len = 0; plen = pframe + 1; + /* Element ID, Length, Meas token, Meas Mode, Meas type, op class, ch */ pframe = rtw_set_fixed_ie(pframe, 7, &prm->q.e_id, &my_len); /* random interval */ - val16 = 100; /* 100 TU */ - val16 = cpu_to_le16(val16); + val16 = cpu_to_le16(prm->q.rand_intvl); /* TU */ pframe = rtw_set_fixed_ie(pframe, 2, (u8 *)&val16, &my_len); /* measurement duration */ - val16 = 100; - val16 = cpu_to_le16(val16); + val16 = cpu_to_le16(prm->q.meas_dur); pframe = rtw_set_fixed_ie(pframe, 2, (u8 *)&val16, &my_len); /* optional subelement */ switch (prm->q.m_type) { case bcn_req: - pframe = rm_gen_bcn_req_s_elem(padapter, pframe, &my_len); + pframe = rm_gen_bcn_req_s_elem(padapter, prm, pframe, &my_len); break; case ch_load_req: pframe = rm_gen_ch_load_req_s_elem(padapter, pframe, &my_len); @@ -1804,9 +2074,11 @@ int rm_radio_meas_report_cond(struct rm_obj *prm) case ch_load_cond_anpi_equal_greater: if (val8 >= prm->q.opt.clm.rep_cond.threshold) return _SUCCESS; + break; case ch_load_cond_anpi_equal_less: if (val8 <= prm->q.opt.clm.rep_cond.threshold) return _SUCCESS; + break; default: break; } @@ -1964,8 +2236,9 @@ void rtw_ap_parse_sta_rm_en_cap(_adapter *padapter, if (elem->rm_en_cap) { RTW_INFO("assoc.rm_en_cap="RM_CAP_FMT"\n", RM_CAP_ARG(elem->rm_en_cap)); - _rtw_memcpy(psta->rm_en_cap, - (elem->rm_en_cap), elem->rm_en_cap_len); + + _rtw_memcpy(psta->rm_en_cap, (elem->rm_en_cap), + MIN(elem->rm_en_cap_len, sizeof(psta->rm_en_cap))); } } @@ -1973,7 +2246,8 @@ void RM_IE_handler(_adapter *padapter, PNDIS_802_11_VARIABLE_IEs pIE) { int i; - _rtw_memcpy(&padapter->rmpriv.rm_en_cap_assoc, pIE->data, pIE->Length); + _rtw_memcpy(&padapter->rmpriv.rm_en_cap_assoc, pIE->data, + MIN(pIE->Length, sizeof(padapter->rmpriv.rm_en_cap_assoc))); RTW_INFO("assoc.rm_en_cap="RM_CAP_FMT"\n", RM_CAP_ARG(pIE->data)); } @@ -2116,7 +2390,6 @@ done: static int rm_dbg_modify_meas(_adapter *padapter, char *s) { struct rm_priv *prmpriv = &padapter->rmpriv; - struct mlme_ext_info *pmlmeinfo = &padapter->mlmeextpriv.mlmext_info; struct rm_obj *prm; struct sta_info *psta; char *pmac, *ptr, *paid, *prpt, *pnbp, *pclm, *pnhm, *pbcn, *plnk; @@ -2147,7 +2420,7 @@ static int rm_dbg_modify_meas(_adapter *padapter, char *s) } } prm = (struct rm_obj *)prmpriv->prm_sel; - prm->q.m_token = 1; + prm->q.m_token = rm_gen_meas_token(padapter); psta = prm->psta; if (paid) { /* find sta_info according to aid */ @@ -2166,26 +2439,16 @@ static int rm_dbg_modify_meas(_adapter *padapter, char *s) if (psta) { prm->psta = psta; - -#if 0 - prm->q.diag_token = psta->rm_diag_token++; -#else - /* TODO dialog should base on sta_info */ - do { - pmlmeinfo->dialogToken++; - } while (pmlmeinfo->dialogToken == 0); - - prm->q.diag_token = pmlmeinfo->dialogToken; -#endif - prm->rmid = psta->cmn.aid << 16 - | prm->q.diag_token << 8 - | RM_MASTER; + prm->q.diag_token = rm_gen_dialog_token(padapter); + prm->rmid = rm_gen_rmid(padapter, prm, RM_MASTER); } else return _FAIL; prm->q.action_code = RM_ACT_RADIO_MEAS_REQ; if (pbcn) { prm->q.m_type = bcn_req; + prm->q.rand_intvl = le16_to_cpu(100); + prm->q.meas_dur = le16_to_cpu(100); } else if (pnhm) { prm->q.m_type = noise_histo_req; } else if (pclm) { @@ -2242,6 +2505,108 @@ static void rm_dbg_activate_meas(_adapter *padapter, char *s) prmpriv->prm_sel = NULL; } +/* for ioctl */ +int rm_send_bcn_reqs(_adapter *padapter, u8 *sta_addr, u8 op_class, u8 ch, + u16 measure_duration, u8 measure_mode, u8 *bssid, u8 *ssid, + u8 reporting_detail, + u8 n_ap_ch_rpt, struct _RT_OPERATING_CLASS *rpt, + u8 n_elem_id, u8 *elem_id_list) + +{ + struct rm_obj *prm; + char *pact; + struct sta_info *psta; + struct _RT_OPERATING_CLASS *prpt; + void *ptr; + int i,j,sz; + u8 bcast[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; + + + if (n_ap_ch_rpt > BCN_REQ_OPT_AP_CH_RPT_MAX_NUM) { + RTW_ERR("RM: chset num %d > %d\n", + n_ap_ch_rpt, BCN_REQ_OPT_AP_CH_RPT_MAX_NUM); + return -1; + } + /* dest sta */ + psta = rtw_get_stainfo(&padapter->stapriv, sta_addr); + if (!psta) { + RTW_ERR("RM: psta not found\n"); + return -2; + } + prm = rm_alloc_rmobj(padapter); + if (prm == NULL) { + RTW_ERR("RM: unable to alloc rm obj for requeset\n"); + return -3; + } + + prm->psta = psta; + prm->q.meas_dur = measure_duration; + + /* Figure 8-104 Measurement Requested format */ + prm->q.category = RTW_WLAN_CATEGORY_RADIO_MEAS; + prm->q.action_code = RM_ACT_RADIO_MEAS_REQ; + prm->q.m_mode = measure_mode; + prm->q.m_type = bcn_req; + prm->q.diag_token = rm_gen_dialog_token(padapter); + prm->q.m_token = rm_gen_meas_token(padapter); + prm->rmid = rm_gen_rmid(padapter, prm, RM_MASTER); + + prm->q.e_id = _MEAS_REQ_IE_; /* 38 */ + prm->q.ch_num = ch; + prm->q.op_class = op_class; + prm->from_ioctl = true; + + if (bssid != NULL) + memcpy(prm->q.bssid, bssid, ETH_ALEN); + else + memcpy(prm->q.bssid, bcast, ETH_ALEN); + + if (ssid != NULL) { + i = MIN(32, strlen(ssid)); + prm->q.opt.bcn.ssid.SsidLength = i; + memcpy(prm->q.opt.bcn.ssid.Ssid, ssid, i); + } + + if (n_ap_ch_rpt > 0) { + prm->q.opt.bcn.ap_ch_rpt_num = n_ap_ch_rpt; + j = 0; + for (i = 0; i < n_ap_ch_rpt; i++) { + prpt = rpt++; + if (prpt == NULL) + break; + + sz = sizeof(struct _RT_OPERATING_CLASS) * prpt->Len; + ptr = rtw_malloc(sz); + _rtw_memcpy(ptr, prpt, sz); + prm->q.opt.bcn.ap_ch_rpt[i] = (struct _RT_OPERATING_CLASS *)ptr; + } + } + prm->q.opt.bcn.rep_detail = reporting_detail; + + if ((n_elem_id > 0) && (n_elem_id < BCN_REQ_REQ_OPT_MAX_NUM)) { + prm->q.opt.bcn.req_id_num = n_elem_id; + _rtw_memcpy(prm->q.opt.bcn.req_id, elem_id_list, n_elem_id); + } + /* enquee rmobj */ + rm_enqueue_rmobj(padapter, prm, _FALSE); + + RTW_INFO("\nAdd rmid=%x, meas_type=%s ok\n", + prm->rmid, rm_type_req_name(prm->q.m_type)); + + if (prm->psta) + RTW_INFO("mac="MAC_FMT"\n", MAC_ARG(prm->psta->cmn.mac_addr)); + return 0; +} + +void indicate_beacon_report(u8 *sta_addr, + u8 n_measure_rpt, u32 elem_len, u8 *elem) +{ + RTW_INFO("RM: recv bcn reprot from mac="MAC_FMT"\n", MAC_ARG(sta_addr)); +#ifdef CONFIG_PLATFORM_CMAP_INTFS + cmap_intfs_nl_beacon_report_event(sta_addr, n_measure_rpt, elem_len, elem); +#endif +} + static void rm_dbg_add_meas(_adapter *padapter, char *s) { struct rm_priv *prmpriv = &(padapter->rmpriv); @@ -2411,6 +2776,37 @@ static void rm_dbg_list_meas(_adapter *padapter, char *s) } #endif /* RM_SUPPORT_IWPRIV_DBG */ +int verify_bcn_req(_adapter *padapter, struct sta_info *psta) +{ + char *bssid = NULL; + char ssid[] = "RealKungFu"; + u8 op_class = 0; + u8 ch = 255; + u16 measure_duration = 100; + u8 reporting_detaial = 0; + u8 n_ap_ch_rpt = 6; + u8 measure_mode = bcn_req_active; + u8 req[] = {1,2,3}; + u8 req_len = sizeof(req); + + + static RT_OPERATING_CLASS US[] = { + /* 0, OP_CLASS_NULL */ //{ 0, 0, {}}, + /* 1, OP_CLASS_1 */ {115, 4, {36, 40, 44, 48}}, + /* 2, OP_CLASS_2 */ {118, 4, {52, 56, 60, 64}}, + /* 3, OP_CLASS_3 */ {124, 4, {149, 153, 157, 161}}, + /* 4, OP_CLASS_4 */ {121, 11, {100, 104, 108, 112, 116, 120, 124, + 128, 132, 136, 140}}, + /* 5, OP_CLASS_5 */ {125, 5, {149, 153, 157, 161, 165}}, + /* 6, OP_CLASS_12 */ { 81, 11, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}} + }; + + rm_send_bcn_reqs(padapter, psta->cmn.mac_addr, op_class, ch, + measure_duration, measure_mode, bssid, ssid, + reporting_detaial, n_ap_ch_rpt, US, req_len, req); + return 0; +} + void rm_dbg_cmd(_adapter *padapter, char *s) { unsigned val; @@ -2421,6 +2817,19 @@ void rm_dbg_cmd(_adapter *padapter, char *s) if (_rtw_memcmp(s, "help", 4)) { rm_dbg_help(padapter, s); + } else if (_rtw_memcmp(s, "send_bcn_req", 12)) { + + /* rtwpriv wls1 rrm send_bcn_req aid=1 */ + paid = strstr(s, "aid="); + if (paid) { /* find sta_info according to aid */ + paid += 4; /* skip aid= */ + sscanf(paid, "%u", &val); /* aid=x */ + psta = rm_get_sta(padapter, val, NULL); + + if (psta) + verify_bcn_req(padapter, psta); + } + } else if (_rtw_memcmp(s, "list_sta", 8)) { rm_dbg_list_sta(padapter, s); @@ -2449,7 +2858,7 @@ void rm_dbg_cmd(_adapter *padapter, char *s) psta = rm_get_sta(padapter, val, NULL); if (psta) - rm_add_nb_req(padapter, psta); + rm_add_nb_req(padapter, psta, 0); } } #else diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_rm_fsm.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_rm_fsm.c index 02d4666e..172c6acc 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_rm_fsm.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_rm_fsm.c @@ -122,6 +122,7 @@ int rtw_init_rm(_adapter *padapter) padapter, rm_timer_callback, padapter); _set_timer(&prmpriv->rm_timer, CLOCK_UNIT); + prmpriv->meas_token = 1; return _SUCCESS; } @@ -570,6 +571,24 @@ static int rm_state_idle(struct rm_obj *prm, enum RM_EV_ID evid) break; } /* switch() */ + if (prm->q.rand_intvl) { + /* get low tsf to generate random interval */ + val32 = rtw_read32(padapter, REG_TSFTR); + val32 = val32 % prm->q.rand_intvl; + RTW_INFO("RM: rmid=%x rand_intval=%d, rand=%d\n", + prm->rmid, (int)prm->q.rand_intvl,val32); + rm_set_clock(prm, prm->q.rand_intvl, + RM_EV_delay_timer_expire); + return _SUCCESS; + + } else if (prm->q.delay_start) { + RTW_INFO("RM: rmid=%x delay_start=%d\n", + prm->rmid, (int)prm->q.delay_start); + rm_set_clock(prm, prm->q.delay_start, + RM_EV_delay_timer_expire); + return _SUCCESS; + } + if (prm->rmid & RM_MASTER) { if (rm_issue_meas_req(prm) == _SUCCESS) rm_state_goto(prm, RM_ST_WAIT_MEAS); @@ -586,19 +605,19 @@ static int rm_state_idle(struct rm_obj *prm, enum RM_EV_ID evid) rm_state_goto(prm, RM_ST_END); return _SUCCESS; } - if (prm->q.rand_intvl) { - /* get low tsf to generate random interval */ - val32 = rtw_read32(padapter, REG_TSFTR); - val32 = val32 % prm->q.rand_intvl; - RTW_INFO("RM: rmid=%x rand_intval=%d, rand=%d\n", - prm->rmid, (int)prm->q.rand_intvl,val32); - rm_set_clock(prm, prm->q.rand_intvl, - RM_EV_delay_timer_expire); - return _SUCCESS; - } + break; case RM_EV_delay_timer_expire: - rm_state_goto(prm, RM_ST_DO_MEAS); + if (prm->rmid & RM_MASTER) { + if (rm_issue_meas_req(prm) == _SUCCESS) + rm_state_goto(prm, RM_ST_WAIT_MEAS); + else + rm_state_goto(prm, RM_ST_END); + return _SUCCESS; + } else { + rm_state_goto(prm, RM_ST_DO_MEAS); + return _SUCCESS; + } break; case RM_EV_cancel: rm_state_goto(prm, RM_ST_END); @@ -668,8 +687,9 @@ static int rm_state_do_meas(struct rm_obj *prm, enum RM_EV_ID evid) switch (prm->q.m_type) { case bcn_req: val8 = 1; /* Enable free run counter */ - rtw_hal_set_hwreg(padapter, - HW_VAR_FREECNT, &val8); + prm->free_run_counter_valid = rtw_hal_set_hwreg( + padapter, HW_VAR_FREECNT, &val8); + rm_sitesurvey(prm); break; case ch_load_req: @@ -769,13 +789,32 @@ static int rm_state_wait_meas(struct rm_obj *prm, enum RM_EV_ID evid) switch (evid) { case RM_EV_state_in: /* we create meas_req, waiting for peer report */ - rm_set_clock(prm, RM_REQ_TIMEOUT, - RM_EV_request_timer_expire); + if (prm->q.action_code == RM_ACT_NB_REP_REQ) + rm_set_clock(prm, RM_REQ_RETRY_TIMEOUT, + RM_EV_request_timer_expire); + else + rm_set_clock(prm, RM_REQ_TIMEOUT, + RM_EV_request_timer_expire); break; case RM_EV_recv_rep: rm_state_goto(prm, RM_ST_RECV_REPORT); break; case RM_EV_request_timer_expire: + + if (prm->q.retry) { + RTW_INFO("RM: rmid=%x retry=%u\n", prm->rmid, prm->q.retry--); + rm_issue_meas_req(prm); + if (prm->q.action_code == RM_ACT_NB_REP_REQ) + rm_set_clock(prm, RM_REQ_RETRY_TIMEOUT, + RM_EV_request_timer_expire); + else + rm_set_clock(prm, RM_REQ_TIMEOUT, + RM_EV_request_timer_expire); + break; + } + rm_state_goto(prm, RM_ST_END); + + break; case RM_EV_cancel: rm_state_goto(prm, RM_ST_END); break; diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_rm_util.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_rm_util.c index 053152f2..1df0110c 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_rm_util.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_rm_util.c @@ -65,6 +65,29 @@ done: return ch_amount; } +u8 rm_get_ch_set_from_bcn_req_opt( + struct rtw_ieee80211_channel *pch_set, struct bcn_req_opt *opt) +{ + int i,j,k,sz; + struct _RT_OPERATING_CLASS *ap_ch_rpt; + u8 ch_amount = 0; + + k = 0; + for (i = 0; i < opt->ap_ch_rpt_num; i++) { + if (opt->ap_ch_rpt[i] == NULL) + break; + ap_ch_rpt = opt->ap_ch_rpt[i]; + for (j = 0; j < ap_ch_rpt->Len; j++) { + pch_set[k].hw_value = + ap_ch_rpt->Channel[j]; + RTW_INFO("RM: meas_ch[%d].hw_value = %u\n", + j, pch_set[k].hw_value); + k++; + } + } + return k; +} + u8 rm_get_oper_class_via_ch(u8 ch) { int i,j,sz; @@ -123,48 +146,24 @@ u8 rm_get_bcn_rcpi(struct rm_obj *prm, struct wlan_network *pnetwork) u8 rm_get_frame_rsni(struct rm_obj *prm, union recv_frame *pframe) { - int i; - u8 val8, snr, rx_num; - struct hal_spec_t *hal_spec = GET_HAL_SPEC(prm->psta->padapter); + s8 pwr; + u8 ch; - if (IS_CCK_RATE((hw_rate_to_m_rate(pframe->u.hdr.attrib.data_rate)))) - val8 = 255; - else { - snr = rx_num = 0; - for (i = 0; i < hal_spec->rf_reg_path_num; i++) { - if (GET_HAL_RX_PATH_BMP(prm->psta->padapter) & BIT(i)) { - snr += pframe->u.hdr.attrib.phy_info.rx_snr[i]; - rx_num++; - } - } - snr = snr / rx_num; - val8 = (u8)(snr + 10)*2; - } - return val8; + pwr = pframe->u.hdr.attrib.phy_info.recv_signal_power; + ch = pframe->u.hdr.attrib.phy_info.channel; + + return rtw_acs_get_rsni(prm->psta->padapter, pwr, ch); } u8 rm_get_bcn_rsni(struct rm_obj *prm, struct wlan_network *pnetwork) { - int i; - u8 val8, snr, rx_num; - struct hal_spec_t *hal_spec = GET_HAL_SPEC(prm->psta->padapter); + s8 pwr; + u8 ch; - if (pnetwork->network.PhyInfo.is_cck_rate) { - /* current HW doesn't have CCK RSNI */ - /* 255 indicates RSNI is unavailable */ - val8 = 255; - } else { - snr = rx_num = 0; - for (i = 0; i < hal_spec->rf_reg_path_num; i++) { - if (GET_HAL_RX_PATH_BMP(prm->psta->padapter) & BIT(i)) { - snr += pnetwork->network.PhyInfo.rx_snr[i]; - rx_num++; - } - } - snr = snr / rx_num; - val8 = (u8)(snr + 10)*2; - } - return val8; + pwr = (u8)pnetwork->network.Rssi; + ch = pnetwork->network.Configuration.DSConfig; + + return rtw_acs_get_rsni(prm->psta->padapter, pwr, ch); } /* output: pwr (unit dBm) */ @@ -431,4 +430,48 @@ int rm_get_path_a_max_tx_power(_adapter *adapter, s8 *path_a) return 0; } +u8 rm_gen_dialog_token(_adapter *padapter) +{ + struct rm_priv *prmpriv = &(padapter->rmpriv); + struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; + struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info; + + do { + pmlmeinfo->dialogToken++; + } while (pmlmeinfo->dialogToken == 0); + + return pmlmeinfo->dialogToken; +} + +u8 rm_gen_meas_token(_adapter *padapter) +{ + struct rm_priv *prmpriv = &(padapter->rmpriv); + + do { + prmpriv->meas_token++; + } while (prmpriv->meas_token == 0); + + return prmpriv->meas_token; +} + +u32 rm_gen_rmid(_adapter *padapter, struct rm_obj *prm, u8 role) +{ + u32 rmid; + + if (prm->psta == NULL) + goto err; + + if (prm->q.diag_token == 0) + goto err; + + rmid = prm->psta->cmn.aid << 16 + | prm->q.diag_token << 8 + | role; + + return rmid; +err: + RTW_ERR("RM: unable to gen rmid\n"); + return 0; +} + #endif /* CONFIG_RTW_80211K */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_roch.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_roch.c new file mode 100644 index 00000000..2674fe65 --- /dev/null +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_roch.c @@ -0,0 +1,591 @@ +/****************************************************************************** + * + * Copyright(c) 2007 - 2020 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License 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. + * + *****************************************************************************/ + +#include + +#ifdef CONFIG_IOCTL_CFG80211 +u8 rtw_roch_stay_in_cur_chan(_adapter *padapter) +{ + int i; + _adapter *iface; + struct mlme_priv *pmlmepriv; + struct dvobj_priv *dvobj = adapter_to_dvobj(padapter); + u8 rst = _FALSE; + + for (i = 0; i < dvobj->iface_nums; i++) { + iface = dvobj->padapters[i]; + if (iface) { + pmlmepriv = &iface->mlmepriv; + + if (check_fwstate(pmlmepriv, WIFI_UNDER_LINKING | WIFI_UNDER_WPS | WIFI_UNDER_KEY_HANDSHAKE) == _TRUE) { + RTW_INFO(ADPT_FMT"- WIFI_UNDER_LINKING |WIFI_UNDER_WPS | WIFI_UNDER_KEY_HANDSHAKE (mlme state:0x%x)\n", + ADPT_ARG(iface), get_fwstate(&iface->mlmepriv)); + rst = _TRUE; + break; + } + #ifdef CONFIG_AP_MODE + if (MLME_IS_AP(iface) || MLME_IS_MESH(iface)) { + if (rtw_ap_sta_states_check(iface) == _TRUE) { + rst = _TRUE; + break; + } + } + #endif + } + } + + return rst; +} + +static int rtw_ro_ch_handler(_adapter *adapter, u8 *buf) +{ + int ret = H2C_SUCCESS; + struct rtw_roch_parm *roch_parm = (struct rtw_roch_parm *)buf; + struct rtw_wdev_priv *pwdev_priv = adapter_wdev_data(adapter); + struct roch_info *prochinfo = &adapter->rochinfo; +#ifdef CONFIG_CONCURRENT_MODE + struct mlme_ext_priv *pmlmeext = &adapter->mlmeextpriv; +#endif + u8 ready_on_channel = _FALSE; + u8 remain_ch; + unsigned int duration; + + _enter_critical_mutex(&pwdev_priv->roch_mutex, NULL); + + if (rtw_cfg80211_get_is_roch(adapter) != _TRUE) + goto exit; + + remain_ch = (u8)ieee80211_frequency_to_channel(roch_parm->ch.center_freq); + duration = roch_parm->duration; + + RTW_INFO(FUNC_ADPT_FMT" ch:%u duration:%d, cookie:0x%llx\n" + , FUNC_ADPT_ARG(adapter), remain_ch, roch_parm->duration, roch_parm->cookie); + + if (roch_parm->wdev && roch_parm->cookie) { + if (prochinfo->ro_ch_wdev != roch_parm->wdev) { + RTW_WARN(FUNC_ADPT_FMT" ongoing wdev:%p, wdev:%p\n" + , FUNC_ADPT_ARG(adapter), prochinfo->ro_ch_wdev, roch_parm->wdev); + rtw_warn_on(1); + } + + if (prochinfo->remain_on_ch_cookie != roch_parm->cookie) { + RTW_WARN(FUNC_ADPT_FMT" ongoing cookie:0x%llx, cookie:0x%llx\n" + , FUNC_ADPT_ARG(adapter), prochinfo->remain_on_ch_cookie, roch_parm->cookie); + rtw_warn_on(1); + } + } + + if (rtw_roch_stay_in_cur_chan(adapter) == _TRUE) { + remain_ch = rtw_mi_get_union_chan(adapter); + RTW_INFO(FUNC_ADPT_FMT" stay in union ch:%d\n", FUNC_ADPT_ARG(adapter), remain_ch); + } + + #ifdef CONFIG_CONCURRENT_MODE + if (rtw_mi_check_status(adapter, MI_LINKED) && (0 != rtw_mi_get_union_chan(adapter))) { + if ((remain_ch != rtw_mi_get_union_chan(adapter)) && !check_fwstate(&adapter->mlmepriv, WIFI_ASOC_STATE)) { + if (remain_ch != pmlmeext->cur_channel + #ifdef RTW_ROCH_BACK_OP + || ATOMIC_READ(&pwdev_priv->switch_ch_to) == 1 + #endif + ) { + rtw_leave_opch(adapter); + + #ifdef RTW_ROCH_BACK_OP + RTW_INFO("%s, set switch ch timer, duration=%d\n", __func__, prochinfo->max_away_dur); + ATOMIC_SET(&pwdev_priv->switch_ch_to, 0); + /* remain_ch is not same as union channel. duration is max_away_dur to + * back to AP's channel. + */ + _set_timer(&prochinfo->ap_roch_ch_switch_timer, prochinfo->max_away_dur); + #endif + } + } + ready_on_channel = _TRUE; + } else + #endif /* CONFIG_CONCURRENT_MODE */ + { + if (remain_ch != rtw_get_oper_ch(adapter)) + ready_on_channel = _TRUE; + } + + if (ready_on_channel == _TRUE) { + #ifndef RTW_SINGLE_WIPHY + if (!check_fwstate(&adapter->mlmepriv, WIFI_ASOC_STATE)) + #endif + { + #ifdef CONFIG_CONCURRENT_MODE + if (rtw_get_oper_ch(adapter) != remain_ch) + #endif + { + /* if (!padapter->mlmepriv.LinkDetectInfo.bBusyTraffic) */ + set_channel_bwmode(adapter, remain_ch, HAL_PRIME_CHNL_OFFSET_DONT_CARE, CHANNEL_WIDTH_20); + } + } + } + + #ifdef CONFIG_BT_COEXIST + rtw_btcoex_ScanNotify(adapter, _TRUE); + #endif + + RTW_INFO("%s, set ro ch timer, duration=%d\n", __func__, duration); + _set_timer(&prochinfo->remain_on_ch_timer, duration); + +exit: + _exit_critical_mutex(&pwdev_priv->roch_mutex, NULL); + + return ret; +} + +static int rtw_cancel_ro_ch_handler(_adapter *padapter, u8 *buf) +{ + int ret = H2C_SUCCESS; + struct rtw_roch_parm *roch_parm = (struct rtw_roch_parm *)buf; + struct rtw_wdev_priv *pwdev_priv = adapter_wdev_data(padapter); + struct roch_info *prochinfo = &padapter->rochinfo; + struct wireless_dev *wdev; +#ifdef CONFIG_P2P + struct wifidirect_info *pwdinfo = &padapter->wdinfo; +#endif + u8 ch, bw, offset; + + _enter_critical_mutex(&pwdev_priv->roch_mutex, NULL); + + if (rtw_cfg80211_get_is_roch(padapter) != _TRUE) + goto exit; + + if (roch_parm->wdev && roch_parm->cookie) { + if (prochinfo->ro_ch_wdev != roch_parm->wdev) { + RTW_WARN(FUNC_ADPT_FMT" ongoing wdev:%p, wdev:%p\n" + , FUNC_ADPT_ARG(padapter), prochinfo->ro_ch_wdev, roch_parm->wdev); + rtw_warn_on(1); + } + + if (prochinfo->remain_on_ch_cookie != roch_parm->cookie) { + RTW_WARN(FUNC_ADPT_FMT" ongoing cookie:0x%llx, cookie:0x%llx\n" + , FUNC_ADPT_ARG(padapter), prochinfo->remain_on_ch_cookie, roch_parm->cookie); + rtw_warn_on(1); + } + } + +#if defined(RTW_ROCH_BACK_OP) && defined(CONFIG_CONCURRENT_MODE) + _cancel_timer_ex(&prochinfo->ap_roch_ch_switch_timer); + ATOMIC_SET(&pwdev_priv->switch_ch_to, 1); +#endif + + if (rtw_mi_get_ch_setting_union(padapter, &ch, &bw, &offset) != 0) { + if (0) + RTW_INFO(FUNC_ADPT_FMT" back to linked/linking union - ch:%u, bw:%u, offset:%u\n", + FUNC_ADPT_ARG(padapter), ch, bw, offset); +#ifdef CONFIG_P2P + } else if (adapter_wdev_data(padapter)->p2p_enabled && pwdinfo->listen_channel) { + ch = pwdinfo->listen_channel; + bw = CHANNEL_WIDTH_20; + offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE; + if (0) + RTW_INFO(FUNC_ADPT_FMT" back to listen ch - ch:%u, bw:%u, offset:%u\n", + FUNC_ADPT_ARG(padapter), ch, bw, offset); +#endif + } else { + ch = prochinfo->restore_channel; + bw = CHANNEL_WIDTH_20; + offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE; + if (0) + RTW_INFO(FUNC_ADPT_FMT" back to restore ch - ch:%u, bw:%u, offset:%u\n", + FUNC_ADPT_ARG(padapter), ch, bw, offset); + } + + set_channel_bwmode(padapter, ch, offset, bw); + rtw_back_opch(padapter); +#ifdef CONFIG_P2P + rtw_p2p_set_state(pwdinfo, rtw_p2p_pre_state(pwdinfo)); +#ifdef CONFIG_DEBUG_CFG80211 + RTW_INFO("%s, role=%d, p2p_state=%d\n", __func__, rtw_p2p_role(pwdinfo), rtw_p2p_state(pwdinfo)); +#endif +#endif + + wdev = prochinfo->ro_ch_wdev; + + rtw_cfg80211_set_is_roch(padapter, _FALSE); + prochinfo->ro_ch_wdev = NULL; + rtw_cfg80211_set_last_ro_ch_time(padapter); + + rtw_cfg80211_remain_on_channel_expired(wdev + , prochinfo->remain_on_ch_cookie + , &prochinfo->remain_on_ch_channel + , prochinfo->remain_on_ch_type, GFP_KERNEL); + + RTW_INFO("cfg80211_remain_on_channel_expired cookie:0x%llx\n" + , prochinfo->remain_on_ch_cookie); + +#ifdef CONFIG_BT_COEXIST + rtw_btcoex_ScanNotify(padapter, _FALSE); +#endif + +exit: + _exit_critical_mutex(&pwdev_priv->roch_mutex, NULL); + + return ret; +} + +static void rtw_ro_ch_timer_process(void *FunctionContext) +{ + _adapter *adapter = (_adapter *)FunctionContext; + + rtw_cancel_roch_cmd(adapter, 0, NULL, 0); +} +#endif /* CONFIG_IOCTL_CFG80211 */ + +#if (defined(CONFIG_P2P) && defined(CONFIG_CONCURRENT_MODE)) || defined(CONFIG_IOCTL_CFG80211) +s32 rtw_roch_wk_hdl(_adapter *padapter, int intCmdType, u8 *buf) +{ + int ret = H2C_SUCCESS; + + switch (intCmdType) { + +#ifdef CONFIG_IOCTL_CFG80211 + case ROCH_RO_CH_WK: + ret = rtw_ro_ch_handler(padapter, buf); + break; + case ROCH_CANCEL_RO_CH_WK: + ret = rtw_cancel_ro_ch_handler(padapter, buf); + break; +#endif + +#ifdef CONFIG_CONCURRENT_MODE + case ROCH_AP_ROCH_CH_SWITCH_PROCESS_WK: + rtw_concurrent_handler(padapter); + break; +#endif + + default: + rtw_warn_on(1); + break; + } + + return ret; +} + +static int get_roch_parm_size(struct rtw_roch_parm *roch_parm) +{ +#ifdef CONFIG_IOCTL_CFG80211 + return (roch_parm ? sizeof(*roch_parm) : 0); +#else + rtw_warn_on(roch_parm); + return 0; +#endif +} + +u8 rtw_roch_wk_cmd(_adapter *padapter, int intCmdType, struct rtw_roch_parm *roch_parm, u8 flags) +{ + struct cmd_obj *ph2c = NULL; + struct drvextra_cmd_parm *pdrvextra_cmd_parm = NULL; + struct cmd_priv *pcmdpriv = &padapter->cmdpriv; + struct submit_ctx sctx; + u8 res = _SUCCESS; + + if (flags & RTW_CMDF_DIRECTLY) { + /* no need to enqueue, do the cmd hdl directly and free cmd parameter */ + if (H2C_SUCCESS != rtw_roch_wk_hdl(padapter, intCmdType, (u8 *)roch_parm)) + res = _FAIL; + goto free_parm; + } else { + ph2c = (struct cmd_obj *)rtw_zmalloc(sizeof(struct cmd_obj)); + if (!ph2c) { + res = _FAIL; + goto free_parm; + } + + pdrvextra_cmd_parm = (struct drvextra_cmd_parm *)rtw_zmalloc(sizeof(struct drvextra_cmd_parm)); + if (!pdrvextra_cmd_parm) { + res = _FAIL; + goto free_parm; + } + + pdrvextra_cmd_parm->ec_id = ROCH_WK_CID; + pdrvextra_cmd_parm->type = intCmdType; + pdrvextra_cmd_parm->size = get_roch_parm_size(roch_parm); + pdrvextra_cmd_parm->pbuf = (u8 *)roch_parm; + + init_h2fwcmd_w_parm_no_rsp(ph2c, pdrvextra_cmd_parm, CMD_SET_DRV_EXTRA); + + if (flags & RTW_CMDF_WAIT_ACK) { + ph2c->sctx = &sctx; + rtw_sctx_init(&sctx, 10 * 1000); + } + + res = rtw_enqueue_cmd(pcmdpriv, ph2c); + + if (res == _SUCCESS && (flags & RTW_CMDF_WAIT_ACK)) { + rtw_sctx_wait(&sctx, __func__); + _enter_critical_mutex(&pcmdpriv->sctx_mutex, NULL); + if (sctx.status == RTW_SCTX_SUBMITTED) + ph2c->sctx = NULL; + _exit_critical_mutex(&pcmdpriv->sctx_mutex, NULL); + if (sctx.status != RTW_SCTX_DONE_SUCCESS) + res = _FAIL; + } + } + + return res; + +free_parm: + if (roch_parm) + rtw_mfree((u8 *)roch_parm, get_roch_parm_size(roch_parm)); + if (ph2c) + rtw_mfree((u8 *)ph2c, sizeof(*ph2c)); + + return res; +} + +#ifdef CONFIG_CONCURRENT_MODE +void rtw_ap_roch_ch_switch_timer_process(void *ctx) +{ + _adapter *adapter = (_adapter *)ctx; +#ifdef CONFIG_IOCTL_CFG80211 + struct rtw_wdev_priv *pwdev_priv = adapter_wdev_data(adapter); +#endif + +#ifdef CONFIG_IOCTL_CFG80211 + ATOMIC_SET(&pwdev_priv->switch_ch_to, 1); +#endif + + rtw_roch_wk_cmd(adapter, ROCH_AP_ROCH_CH_SWITCH_PROCESS_WK, NULL, 0); +} + +static bool chk_need_stay_in_cur_chan(_adapter *padapter) +{ +#ifdef CONFIG_P2P + struct wifidirect_info *pwdinfo = &padapter->wdinfo; + + /* When CONFIG_FULL_CH_IN_P2P_HANDSHAKE is defined and the + * interface is in the P2P_STATE_GONEGO_OK state, do not let the + * interface switch to the listen channel, because the interface will + * switch to the OP channel after the GO negotiation is successful. + */ + if (padapter->registrypriv.full_ch_in_p2p_handshake == 1 && rtw_p2p_chk_state(pwdinfo , P2P_STATE_GONEGO_OK)) { + RTW_INFO("%s, No linked interface now, but go nego ok, do not back to listen channel\n", __func__); + return _TRUE; + } +#endif + + return _FALSE; +} + +static bool chk_driver_interface(_adapter *padapter, u8 driver_interface) +{ +#ifdef CONFIG_P2P + struct wifidirect_info *pwdinfo = &padapter->wdinfo; + + if (pwdinfo->driver_interface == driver_interface) + return _TRUE; +#elif defined(CONFIG_IOCTL_CFG80211) + if (driver_interface == DRIVER_CFG80211) + return _TRUE; +#endif + + return _FALSE; +} + +static u8 get_remain_ch(_adapter *padapter) +{ + struct roch_info *prochinfo = &padapter->rochinfo; +#ifdef CONFIG_P2P + struct wifidirect_info *pwdinfo = &padapter->wdinfo; +#endif + u8 remain_ch; + +#ifdef CONFIG_P2P + remain_ch = pwdinfo->listen_channel; +#elif defined(CONFIG_IOCTL_CFG80211) + if (chk_driver_interface(padapter, DRIVER_CFG80211)) + remain_ch = ieee80211_frequency_to_channel(prochinfo->remain_on_ch_channel.center_freq); + else + rtw_warn_on(1); +#endif + + return remain_ch; +} + +void rtw_concurrent_handler(_adapter *padapter) +{ +#ifdef CONFIG_IOCTL_CFG80211 + struct rtw_wdev_priv *pwdev_priv = adapter_wdev_data(padapter); +#endif + struct dvobj_priv *pdvobj = adapter_to_dvobj(padapter); + struct roch_info *prochinfo = &padapter->rochinfo; +#ifdef CONFIG_P2P + struct wifidirect_info *pwdinfo = &padapter->wdinfo; + u8 val8; +#endif + u8 remain_ch = get_remain_ch(padapter); + +#ifdef CONFIG_IOCTL_CFG80211 + if (chk_driver_interface(padapter, DRIVER_CFG80211) + && !rtw_cfg80211_get_is_roch(padapter)) + return; +#endif + + if (rtw_mi_check_status(padapter, MI_LINKED)) { + u8 union_ch = rtw_mi_get_union_chan(padapter); + u8 union_bw = rtw_mi_get_union_bw(padapter); + u8 union_offset = rtw_mi_get_union_offset(padapter); + unsigned int duration; + + #ifdef CONFIG_P2P + pwdinfo->operating_channel = union_ch; + #endif + + if (chk_driver_interface(padapter, DRIVER_CFG80211)) { + #ifdef CONFIG_IOCTL_CFG80211 + _enter_critical_mutex(&pwdev_priv->roch_mutex, NULL); + + if (rtw_get_oper_ch(padapter) != union_ch) { + /* Current channel is not AP's channel - switching to AP's channel */ + RTW_INFO("%s, switch ch back to union=%u,%u, %u\n" + , __func__, union_ch, union_bw, union_offset); + set_channel_bwmode(padapter, union_ch, union_offset, union_bw); + rtw_back_opch(padapter); + + /* Now, the driver stays on AP's channel. We should stay on AP's + * channel for min_home_dur (duration) and next switch channel is + * listen channel. + */ + duration = prochinfo->min_home_dur; + } else { + /* Current channel is AP's channel - switching to listen channel */ + RTW_INFO("%s, switch ch to roch=%u\n" + , __func__, remain_ch); + rtw_leave_opch(padapter); + set_channel_bwmode(padapter, + remain_ch, HAL_PRIME_CHNL_OFFSET_DONT_CARE, CHANNEL_WIDTH_20); + + /* Now, the driver stays on listen channel. We should stay on listen + * channel for max_away_dur (duration) and next switch channel is AP's + * channel. + */ + duration = prochinfo->max_away_dur; + } + + /* set channel switch timer */ + ATOMIC_SET(&pwdev_priv->switch_ch_to, 0); + _set_timer(&prochinfo->ap_roch_ch_switch_timer, duration); + RTW_INFO("%s, set switch ch timer, duration=%d\n", __func__, duration); + + _exit_critical_mutex(&pwdev_priv->roch_mutex, NULL); + #endif + } + #ifdef CONFIG_P2P + else if (chk_driver_interface(padapter, DRIVER_WEXT)) { + if (rtw_p2p_chk_state(pwdinfo, P2P_STATE_IDLE)) { + /* Now, the driver stays on the AP's channel. */ + /* If the pwdinfo->ext_listen_period = 0, that means the P2P listen state is not available on listen channel. */ + if (pwdinfo->ext_listen_period > 0) { + RTW_INFO("[%s] P2P_STATE_IDLE, ext_listen_period = %d\n", __FUNCTION__, pwdinfo->ext_listen_period); + + if (union_ch != pwdinfo->listen_channel) { + rtw_leave_opch(padapter); + set_channel_bwmode(padapter, pwdinfo->listen_channel, HAL_PRIME_CHNL_OFFSET_DONT_CARE, CHANNEL_WIDTH_20); + } + + rtw_p2p_set_state(pwdinfo, P2P_STATE_LISTEN); + + if (!rtw_mi_check_mlmeinfo_state(padapter, WIFI_FW_AP_STATE)) { + val8 = 1; + rtw_hal_set_hwreg(padapter, HW_VAR_MLME_SITESURVEY, (u8 *)(&val8)); + } + /* Todo: To check the value of pwdinfo->ext_listen_period is equal to 0 or not. */ + _set_timer(&prochinfo->ap_roch_ch_switch_timer, pwdinfo->ext_listen_period); + } + + } else if (rtw_p2p_chk_state(pwdinfo, P2P_STATE_LISTEN) || + rtw_p2p_chk_state(pwdinfo, P2P_STATE_GONEGO_FAIL) || + (rtw_p2p_chk_state(pwdinfo, P2P_STATE_GONEGO_ING) && pwdinfo->nego_req_info.benable == _FALSE) || + rtw_p2p_chk_state(pwdinfo, P2P_STATE_RX_PROVISION_DIS_REQ)) { + /* Now, the driver is in the listen state of P2P mode. */ + RTW_INFO("[%s] P2P_STATE_IDLE, ext_listen_interval = %d\n", __FUNCTION__, pwdinfo->ext_listen_interval); + + /* Commented by Albert 2012/11/01 */ + /* If the AP's channel is the same as the listen channel, we should still be in the listen state */ + /* Other P2P device is still able to find this device out even this device is in the AP's channel. */ + /* So, configure this device to be able to receive the probe request frame and set it to listen state. */ + if (union_ch != pwdinfo->listen_channel) { + + set_channel_bwmode(padapter, union_ch, union_offset, union_bw); + if (!rtw_mi_check_status(padapter, MI_AP_MODE)) { + val8 = 0; + rtw_hal_set_hwreg(padapter, HW_VAR_MLME_SITESURVEY, (u8 *)(&val8)); + } + rtw_p2p_set_state(pwdinfo, P2P_STATE_IDLE); + rtw_back_opch(padapter); + } + + /* Todo: To check the value of pwdinfo->ext_listen_interval is equal to 0 or not. */ + _set_timer(&prochinfo->ap_roch_ch_switch_timer, pwdinfo->ext_listen_interval); + + } else if (rtw_p2p_chk_state(pwdinfo, P2P_STATE_GONEGO_OK)) { + /* The driver had finished the P2P handshake successfully. */ + val8 = 0; + rtw_hal_set_hwreg(padapter, HW_VAR_MLME_SITESURVEY, (u8 *)(&val8)); + set_channel_bwmode(padapter, union_ch, union_offset, union_bw); + rtw_back_opch(padapter); + + } else if (rtw_p2p_chk_state(pwdinfo, P2P_STATE_TX_PROVISION_DIS_REQ)) { + val8 = 1; + set_channel_bwmode(padapter, pwdinfo->tx_prov_disc_info.peer_channel_num[0], HAL_PRIME_CHNL_OFFSET_DONT_CARE, CHANNEL_WIDTH_20); + rtw_hal_set_hwreg(padapter, HW_VAR_MLME_SITESURVEY, (u8 *)(&val8)); + issue_probereq_p2p(padapter, NULL); + _set_timer(&pwdinfo->pre_tx_scan_timer, P2P_TX_PRESCAN_TIMEOUT); + } else if (rtw_p2p_chk_state(pwdinfo, P2P_STATE_GONEGO_ING) && pwdinfo->nego_req_info.benable == _TRUE) { + val8 = 1; + set_channel_bwmode(padapter, pwdinfo->nego_req_info.peer_channel_num[0], HAL_PRIME_CHNL_OFFSET_DONT_CARE, CHANNEL_WIDTH_20); + rtw_hal_set_hwreg(padapter, HW_VAR_MLME_SITESURVEY, (u8 *)(&val8)); + issue_probereq_p2p(padapter, NULL); + _set_timer(&pwdinfo->pre_tx_scan_timer, P2P_TX_PRESCAN_TIMEOUT); + } else if (rtw_p2p_chk_state(pwdinfo, P2P_STATE_TX_INVITE_REQ) && pwdinfo->invitereq_info.benable == _TRUE) { + /* + val8 = 1; + set_channel_bwmode(padapter, , HAL_PRIME_CHNL_OFFSET_DONT_CARE, CHANNEL_WIDTH_20); + rtw_hal_set_hwreg(padapter, HW_VAR_MLME_SITESURVEY, (u8 *)(&val8)); + issue_probereq_p2p(padapter, NULL); + _set_timer( &pwdinfo->pre_tx_scan_timer, P2P_TX_PRESCAN_TIMEOUT ); + */ + } + } + #endif /* CONFIG_P2P */ + } else if (!chk_need_stay_in_cur_chan(padapter)) { + set_channel_bwmode(padapter, remain_ch, HAL_PRIME_CHNL_OFFSET_DONT_CARE, CHANNEL_WIDTH_20); + } +} +#endif /* CONFIG_CONCURRENT_MODE */ + +void rtw_init_roch_info(_adapter *padapter) +{ + struct roch_info *prochinfo = &padapter->rochinfo; + + _rtw_memset(prochinfo, 0x00, sizeof(struct roch_info)); + +#ifdef CONFIG_CONCURRENT_MODE + rtw_init_timer(&prochinfo->ap_roch_ch_switch_timer, padapter, rtw_ap_roch_ch_switch_timer_process, padapter); +#ifdef CONFIG_IOCTL_CFG80211 + prochinfo->min_home_dur = 1500; /* min duration for traffic, home_time */ + prochinfo->max_away_dur = 250; /* max acceptable away duration, home_away_time */ +#endif +#endif + +#ifdef CONFIG_IOCTL_CFG80211 + rtw_init_timer(&prochinfo->remain_on_ch_timer, padapter, rtw_ro_ch_timer_process, padapter); +#endif +} +#endif /* (defined(CONFIG_P2P) && defined(CONFIG_CONCURRENT_MODE)) || defined(CONFIG_IOCTL_CFG80211) */ \ No newline at end of file diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_rson.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_rson.c index f99bdfca..dba8fb73 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_rson.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_rson.c @@ -1,6 +1,6 @@ /****************************************************************************** * - * Copyright(c) 2007 - 2011 Realtek Corporation. + * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. * * This program is free software; you can redistribute it and/or modify it * under the terms of version 2 of the GNU General Public License as @@ -11,7 +11,12 @@ * 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, USA + * + * + ******************************************************************************/ #define _RTW_RSON_C_ #include @@ -280,7 +285,9 @@ void rtw_rson_do_disconnect(_adapter *padapter) pdvobj->rson_data.hopcnt = RTW_RSON_HC_NOTREADY; pdvobj->rson_data.connectible = RTW_RSON_DENYCONNECT; pdvobj->rson_data.loading = 0; + #ifdef CONFIG_AP_MODE rtw_mi_tx_beacon_hdl(padapter); + #endif #endif } @@ -306,7 +313,9 @@ void rtw_rson_join_done(_adapter *padapter) pdvobj->rson_data.hopcnt = rson_data.hopcnt + 1; pdvobj->rson_data.connectible = RTW_RSON_ALLOWCONNECT; pdvobj->rson_data.loading = 0; + #ifdef CONFIG_AP_MODE rtw_mi_tx_beacon_hdl(padapter); + #endif #endif } diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_security.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_security.c index b5e41d80..ae573d49 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_security.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_security.c @@ -1014,7 +1014,6 @@ static void construct_mic_header1( u8 *mpdu, uint frtype);/* add for CONFIG_IEEE80211W, none 11w also can use */ static void construct_mic_header2( - _adapter *padapter, u8 *mic_header2, u8 *mpdu, sint a4_exists, @@ -1294,7 +1293,6 @@ static void construct_mic_header1( /* header fields. */ /************************************************/ static void construct_mic_header2( - _adapter *padapter, u8 *mic_header2, u8 *mpdu, sint a4_exists, @@ -1324,26 +1322,16 @@ static void construct_mic_header2( } if (qc_exists && !a4_exists) { - if (padapter->registrypriv.amsdu_mode == RTW_AMSDU_MODE_SPP) { - mic_header2[8] = mpdu[24] & 0x8f; /* QC & 0x8F */ - mic_header2[9] = mpdu[25] & 0x00; - } else { - mic_header2[8] = mpdu[24] & 0x0f; /* mute bits 15 - 4 */ - mic_header2[9] = mpdu[25] & 0x00; - } + mic_header2[8] = mpdu[24] & 0x0f; /* mute bits 15 - 4 */ + mic_header2[9] = mpdu[25] & 0x00; } if (qc_exists && a4_exists) { for (i = 0; i < 6; i++) mic_header2[8 + i] = mpdu[24 + i]; /* A4 */ - if (padapter->registrypriv.amsdu_mode == RTW_AMSDU_MODE_SPP) { - mic_header2[14] = mpdu[30] & 0x8f; /* QC & 0x8F */ - mic_header2[15] = mpdu[31] & 0x00; - } else { - mic_header2[14] = mpdu[30] & 0x0f; /* mute bits 15 - 4 */ - mic_header2[15] = mpdu[31] & 0x00; - } + mic_header2[14] = mpdu[30] & 0x0f; + mic_header2[15] = mpdu[31] & 0x00; } } @@ -1407,7 +1395,7 @@ static void bitwise_xor(u8 *ina, u8 *inb, u8 *out) } -static sint aes_cipher(_adapter *padapter, u8 *key, uint hdrlen, +static sint aes_cipher(u8 *key, uint hdrlen, u8 *pframe, uint plen) { /* static unsigned char message[MAX_MSG_SIZE]; */ @@ -1489,7 +1477,6 @@ static sint aes_cipher(_adapter *padapter, u8 *key, uint hdrlen, frtype /* add for CONFIG_IEEE80211W, none 11w also can use */ ); construct_mic_header2( - padapter, mic_header2, pframe, /* message, */ a4_exists, @@ -1631,8 +1618,8 @@ u32 rtw_aes_encrypt(_adapter *padapter, u8 *pxmitframe) pframe = ((struct xmit_frame *)pxmitframe)->buf_addr + hw_hdr_offset; /* start to encrypt each fragment */ - if ((pattrib->encrypt == _CCMP_256_) || - (pattrib->encrypt == _AES_) ) { + if ((pattrib->encrypt == _AES_) || + (pattrib->encrypt == _CCMP_256_)) { if (IS_MCAST(pattrib->ra)) prwskey = psecuritypriv->dot118021XGrpKey[psecuritypriv->dot118021XGrpKeyid].skey; @@ -1647,26 +1634,23 @@ u32 rtw_aes_encrypt(_adapter *padapter, u8 *pxmitframe) ptdls_sta = rtw_get_stainfo(&padapter->stapriv, &pattrib->dst[0]); if ((ptdls_sta != NULL) && (ptdls_sta->tdls_sta_state & TDLS_LINKED_STATE)) { RTW_INFO("[%s] for tdls link\n", __FUNCTION__); - if (pattrib->encrypt == _CCMP_256_) { - RTW_WARN("%s: not support 256-bit key length if TDLS\n", __func__); - return _FAIL; - } prwskey = &ptdls_sta->tpk.tk[0]; } } #endif /* CONFIG_TDLS */ prwskeylen = (pattrib->encrypt == _CCMP_256_) ? 32 : 16; + for (curfragnum = 0; curfragnum < pattrib->nr_frags; curfragnum++) { if ((curfragnum + 1) == pattrib->nr_frags) { /* the last fragment */ plen = pattrib->last_txcmdsz - pattrib->hdrlen - pattrib->iv_len - pattrib->icv_len; - _rtw_ccmp_encrypt(prwskey, prwskeylen, pattrib->hdrlen, pframe, plen); + _rtw_ccmp_encrypt(padapter, prwskey, prwskeylen, pattrib->hdrlen, pframe, plen); } else { plen = pxmitpriv->frag_len - pattrib->hdrlen - pattrib->iv_len - pattrib->icv_len; - _rtw_ccmp_encrypt(prwskey, prwskeylen, pattrib->hdrlen, pframe, plen); + _rtw_ccmp_encrypt(padapter, prwskey, prwskeylen, pattrib->hdrlen, pframe, plen); pframe += pxmitpriv->frag_len; pframe = (u8 *)RND4((SIZE_PTR)(pframe)); @@ -1768,11 +1752,11 @@ u32 rtw_aes_encrypt(_adapter *padapter, u8 *pxmitframe) if ((curfragnum + 1) == pattrib->nr_frags) { /* 4 the last fragment */ length = pattrib->last_txcmdsz - pattrib->hdrlen - pattrib->iv_len - pattrib->icv_len; - aes_cipher(padapter, prwskey, pattrib->hdrlen, pframe, length); + aes_cipher(prwskey, pattrib->hdrlen, pframe, length); } else { length = pxmitpriv->frag_len - pattrib->hdrlen - pattrib->iv_len - pattrib->icv_len ; - aes_cipher(padapter, prwskey, pattrib->hdrlen, pframe, length); + aes_cipher(prwskey, pattrib->hdrlen, pframe, length); pframe += pxmitpriv->frag_len; pframe = (u8 *)RND4((SIZE_PTR)(pframe)); @@ -1796,7 +1780,7 @@ u32 rtw_aes_encrypt(_adapter *padapter, u8 *pxmitframe) #endif #if (NEW_CRYPTO == 0) -static sint aes_decipher(_adapter *padapter, u8 *key, uint hdrlen, +static sint aes_decipher(u8 *key, uint hdrlen, u8 *pframe, uint plen) { static u8 message[MAX_MSG_SIZE]; @@ -1943,7 +1927,6 @@ static sint aes_decipher(_adapter *padapter, u8 *key, uint hdrlen, frtype /* add for CONFIG_IEEE80211W, none 11w also can use */ ); construct_mic_header2( - padapter, mic_header2, message, a4_exists, @@ -2135,7 +2118,7 @@ u32 rtw_aes_decrypt(_adapter *padapter, u8 *precvframe) } else prwskey = &stainfo->dot118021x_UncstKey.skey[0]; - res = _rtw_ccmp_decrypt(prwskey, + res = _rtw_ccmp_decrypt(padapter, prwskey, prxattrib->encrypt == _CCMP_256_ ? 32 : 16, prxattrib->hdrlen, pframe, ((union recv_frame *)precvframe)->u.hdr.len); @@ -2261,7 +2244,7 @@ u32 rtw_aes_decrypt(_adapter *padapter, u8 *precvframe) } #endif - res = aes_decipher(padapter, prwskey, prxattrib->hdrlen, pframe, length); + res = aes_decipher(prwskey, prxattrib->hdrlen, pframe, length); AES_SW_DEC_CNT_INC(psecuritypriv, prxattrib->ra); } else { @@ -2644,11 +2627,11 @@ u32 rtw_gcmp_encrypt(_adapter *padapter, u8 *pxmitframe) /* the last fragment */ plen = pattrib->last_txcmdsz - pattrib->hdrlen - pattrib->iv_len - pattrib->icv_len; - _rtw_gcmp_encrypt(prwskey, prwskeylen, pattrib->hdrlen, pframe, plen); + _rtw_gcmp_encrypt(padapter, prwskey, prwskeylen, pattrib->hdrlen, pframe, plen); } else { plen = pxmitpriv->frag_len - pattrib->hdrlen - pattrib->iv_len - pattrib->icv_len; - _rtw_gcmp_encrypt(prwskey, prwskeylen, pattrib->hdrlen, pframe, plen); + _rtw_gcmp_encrypt(padapter, prwskey, prwskeylen, pattrib->hdrlen, pframe, plen); pframe += pxmitpriv->frag_len; pframe = (u8 *)RND4((SIZE_PTR)(pframe)); } @@ -2733,7 +2716,7 @@ u32 rtw_gcmp_decrypt(_adapter *padapter, u8 *precvframe) } else prwskey = &stainfo->dot118021x_UncstKey.skey[0]; - res = _rtw_gcmp_decrypt(prwskey, + res = _rtw_gcmp_decrypt(padapter, prwskey, prxattrib->encrypt == _GCMP_256_ ? 32 : 16, prxattrib->hdrlen, pframe, ((union recv_frame *)precvframe)->u.hdr.len); diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_sreset.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_sreset.c index c04360bc..21cc18bc 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_sreset.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_sreset.c @@ -204,10 +204,14 @@ void sreset_restore_network_status(_adapter *padapter) if (check_fwstate(mlmepriv, WIFI_STATION_STATE)) { RTW_INFO(FUNC_ADPT_FMT" fwstate:0x%08x - WIFI_STATION_STATE\n", FUNC_ADPT_ARG(padapter), get_fwstate(mlmepriv)); sreset_restore_network_station(padapter); - } else if (MLME_IS_AP(padapter) || MLME_IS_MESH(padapter)) { + } +#ifdef CONFIG_AP_MODE + else if (MLME_IS_AP(padapter) || MLME_IS_MESH(padapter)) { RTW_INFO(FUNC_ADPT_FMT" %s\n", FUNC_ADPT_ARG(padapter), MLME_IS_AP(padapter) ? "AP" : "MESH"); rtw_ap_restore_network(padapter); - } else if (check_fwstate(mlmepriv, WIFI_ADHOC_STATE)) + } +#endif + else if (check_fwstate(mlmepriv, WIFI_ADHOC_STATE)) RTW_INFO(FUNC_ADPT_FMT" fwstate:0x%08x - WIFI_ADHOC_STATE\n", FUNC_ADPT_ARG(padapter), get_fwstate(mlmepriv)); else RTW_INFO(FUNC_ADPT_FMT" fwstate:0x%08x - ???\n", FUNC_ADPT_ARG(padapter), get_fwstate(mlmepriv)); @@ -298,7 +302,7 @@ void sreset_reset(_adapter *padapter) _ips_enter(padapter); _ips_leave(padapter); #endif -#ifdef CONFIG_CONCURRENT_MODE +#if defined(CONFIG_AP_MODE) && defined(CONFIG_CONCURRENT_MODE) rtw_mi_ap_info_restore(padapter); #endif rtw_mi_sreset_adapter_hdl(padapter, _TRUE);/*sreset_start_adapter*/ diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_sta_mgt.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_sta_mgt.c index 1363f0e7..d0966567 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_sta_mgt.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_sta_mgt.c @@ -203,7 +203,9 @@ void _rtw_init_stainfo(struct sta_info *psta) /* _rtw_init_listhead(&psta->wakeup_list); */ _rtw_init_queue(&psta->sleep_q); - +#ifdef CONFIG_RTW_MGMT_QUEUE + _rtw_init_queue(&psta->mgmt_sleep_q); +#endif _rtw_init_sta_xmit_priv(&psta->sta_xmitpriv); _rtw_init_sta_recv_priv(&psta->sta_recvpriv); @@ -303,17 +305,18 @@ u32 _rtw_init_sta_priv(struct sta_priv *pstapriv) #endif pstapriv->max_num_sta = NUM_STA; -#endif - #if CONFIG_RTW_MACADDR_ACL for (i = 0; i < RTW_ACL_PERIOD_NUM; i++) rtw_macaddr_acl_init(adapter, i); #endif +#endif /* CONFIG_AP_MODE */ #if CONFIG_RTW_PRE_LINK_STA rtw_pre_link_sta_ctl_init(pstapriv); #endif + _rtw_spinlock_init(&pstapriv->tx_rpt_lock); + #if defined(DBG_ROAMING_TEST) || defined(CONFIG_RTW_REPEATER_SON) rtw_set_rx_chk_limit(adapter,1); #elif defined(CONFIG_ACTIVE_KEEP_ALIVE_CHECK) && !defined(CONFIG_LPS_LCLK_WD_TIMER) @@ -368,6 +371,9 @@ void _rtw_free_sta_xmit_priv_lock(struct sta_xmit_priv *psta_xmitpriv) _rtw_spinlock_free(&(psta_xmitpriv->bk_q.sta_pending.lock)); _rtw_spinlock_free(&(psta_xmitpriv->vi_q.sta_pending.lock)); _rtw_spinlock_free(&(psta_xmitpriv->vo_q.sta_pending.lock)); +#ifdef CONFIG_RTW_MGMT_QUEUE + _rtw_spinlock_free(&(psta_xmitpriv->mgmt_q.sta_pending.lock)); +#endif } static void _rtw_free_sta_recv_priv_lock(struct sta_recv_priv *psta_recvpriv) @@ -478,6 +484,8 @@ u32 _rtw_free_sta_priv(struct sta_priv *pstapriv) rtw_pre_link_sta_ctl_deinit(pstapriv); #endif + _rtw_spinlock_free(&pstapriv->tx_rpt_lock); + if (pstapriv->pallocated_stainfo_buf) rtw_vmfree(pstapriv->pallocated_stainfo_buf, sizeof(struct sta_info) * NUM_STA + MEM_ALIGNMENT_OFFSET); @@ -564,6 +572,8 @@ struct sta_info *rtw_alloc_stainfo(struct sta_priv *pstapriv, const u8 *hwaddr) _rtw_memcpy(&psta->sta_recvpriv.bmc_tid_rxseq[i], &wRxSeqInitialValue, 2); _rtw_memset(&psta->sta_recvpriv.rxcache.iv[i], 0, sizeof(psta->sta_recvpriv.rxcache.iv[i])); } + _rtw_memcpy(&psta->sta_recvpriv.nonqos_bmc_rxseq,&wRxSeqInitialValue,2); + _rtw_memcpy(&psta->sta_recvpriv.nonqos_rxseq,&wRxSeqInitialValue,2); rtw_init_timer(&psta->addba_retry_timer, psta->padapter, addba_timer_hdl, psta); #ifdef CONFIG_IEEE80211W @@ -585,7 +595,6 @@ struct sta_info *rtw_alloc_stainfo(struct sta_priv *pstapriv, const u8 *hwaddr) , FUNC_ADPT_ARG(pstapriv->padapter), i, preorder_ctrl->indicate_seq); #endif preorder_ctrl->wend_b = 0xffff; - /* preorder_ctrl->wsize_b = (NR_RECVBUFF-2); */ preorder_ctrl->wsize_b = 64;/* 64; */ preorder_ctrl->ampdu_size = RX_AMPDU_SIZE_INVALID; @@ -644,7 +653,6 @@ u32 rtw_free_stainfo(_adapter *padapter , struct sta_info *psta) struct hw_xmit *phwxmit; struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); - int pending_qcnt[4]; u8 is_pre_link_sta = _FALSE; _list *phead, *plist; @@ -693,6 +701,11 @@ u32 rtw_free_stainfo(_adapter *padapter , struct sta_info *psta) rtw_free_xmitframe_queue(pxmitpriv, &psta->sleep_q); psta->sleepq_len = 0; +#ifdef CONFIG_RTW_MGMT_QUEUE + rtw_free_mgmt_xmitframe_queue(pxmitpriv, &psta->mgmt_sleep_q); + psta->mgmt_sleepq_len = 0; +#endif + /* vo */ /* _enter_critical_bh(&(pxmitpriv->vo_pending.lock), &irqL0); */ rtw_free_xmitframe_queue(pxmitpriv, &pstaxmitpriv->vo_q.sta_pending); @@ -733,6 +746,15 @@ u32 rtw_free_stainfo(_adapter *padapter , struct sta_info *psta) pstaxmitpriv->bk_q.qcnt = 0; /* _exit_critical_bh(&(pxmitpriv->bk_pending.lock), &irqL0); */ +#ifdef CONFIG_RTW_MGMT_QUEUE + /* mgmt */ + rtw_free_xmitframe_queue(pxmitpriv, &pstaxmitpriv->mgmt_q.sta_pending); + rtw_list_delete(&(pstaxmitpriv->mgmt_q.tx_pending)); + phwxmit = pxmitpriv->hwxmits + 4; + phwxmit->accnt -= pstaxmitpriv->mgmt_q.qcnt; + pstaxmitpriv->mgmt_q.qcnt = 0; +#endif + rtw_os_wake_queue_at_free_stainfo(padapter, pending_qcnt); _exit_critical_bh(&pxmitpriv->lock, &irqL0); @@ -849,9 +871,9 @@ u32 rtw_free_stainfo(_adapter *padapter , struct sta_info *psta) #endif /* CONFIG_NATIVEAP_MLME */ -#ifdef CONFIG_TX_MCAST2UNI +#if !defined(CONFIG_ACTIVE_KEEP_ALIVE_CHECK) && defined(CONFIG_80211N_HT) psta->under_exist_checking = 0; -#endif /* CONFIG_TX_MCAST2UNI */ +#endif #endif /* CONFIG_AP_MODE */ @@ -982,7 +1004,6 @@ u32 rtw_init_bcmc_stainfo(_adapter *padapter) NDIS_802_11_MAC_ADDRESS bcast_addr = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; struct sta_priv *pstapriv = &padapter->stapriv; - /* _queue *pstapending = &padapter->xmitpriv.bm_pending; */ psta = rtw_alloc_stainfo(pstapriv, bcast_addr); diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_swcrypto.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_swcrypto.c index 3659b357..2f1c343b 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_swcrypto.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_swcrypto.c @@ -27,20 +27,20 @@ * @frame: the frame including the mac header, pn and payload * @plen: payload length, i.e., length of the plain text, without PN and MIC */ -int _rtw_ccmp_encrypt(u8 *key, u32 key_len, uint hdrlen, u8 *frame, uint plen) +int _rtw_ccmp_encrypt(_adapter *padapter, u8 *key, u32 key_len, uint hdrlen, u8 *frame, uint plen) { u8 *enc = NULL; size_t enc_len = 0; if (key_len == 16) { /* 128 bits */ - enc = ccmp_encrypt(key, + enc = ccmp_encrypt(padapter, key, frame, hdrlen + plen, hdrlen, (hdrlen == 26) ? (frame + hdrlen - 2) : NULL, NULL, 0, &enc_len); } else if (key_len == 32) { /* 256 bits */ - enc = ccmp_256_encrypt(key, + enc = ccmp_256_encrypt(padapter, key, frame, hdrlen + plen, hdrlen, @@ -68,7 +68,7 @@ int _rtw_ccmp_encrypt(u8 *key, u32 key_len, uint hdrlen, u8 *frame, uint plen) * @frame: the raw frame (@hdrlen + PN + enc_data + MIC) * @plen: length of the frame (@hdrlen + PN + enc_data + MIC) */ -int _rtw_ccmp_decrypt(u8 *key, u32 key_len, uint hdrlen, u8 *frame, +int _rtw_ccmp_decrypt(_adapter * padapter, u8 *key, u32 key_len, uint hdrlen, u8 *frame, uint plen) { u8 *plain = NULL; @@ -78,13 +78,13 @@ int _rtw_ccmp_decrypt(u8 *key, u32 key_len, uint hdrlen, u8 *frame, hdr = (const struct ieee80211_hdr *)frame; if (key_len == 16) { /* 128 bits */ - plain = ccmp_decrypt(key, + plain = ccmp_decrypt(padapter, key, hdr, frame + hdrlen, /* PN + enc_data + MIC */ plen - hdrlen, /* PN + enc_data + MIC */ &plain_len); } else if (key_len == 32) { /* 256 bits */ - plain = ccmp_256_decrypt(key, + plain = ccmp_256_decrypt(padapter, key, hdr, frame + hdrlen, /* PN + enc_data + MIC */ plen - hdrlen, /* PN + enc_data + MIC */ @@ -131,12 +131,12 @@ int _aes_siv_decrypt(const u8 *key, size_t key_len, * @frame: the frame including the mac header, pn and payload * @plen: payload length, i.e., length of the plain text, without PN and MIC */ -int _rtw_gcmp_encrypt(u8 *key, u32 key_len, uint hdrlen, u8 *frame, uint plen) +int _rtw_gcmp_encrypt(_adapter * padapter, u8 *key, u32 key_len, uint hdrlen, u8 *frame, uint plen) { u8 *enc = NULL; size_t enc_len = 0; - enc = gcmp_encrypt(key, key_len, + enc = gcmp_encrypt(padapter, key, key_len, frame, hdrlen + plen, hdrlen, @@ -162,7 +162,7 @@ int _rtw_gcmp_encrypt(u8 *key, u32 key_len, uint hdrlen, u8 *frame, uint plen) * @frame: the raw frame (@hdrlen + PN + enc_data + MIC) * @plen: length of the frame (@hdrlen + PN + enc_data + MIC) */ -int _rtw_gcmp_decrypt(u8 *key, u32 key_len, uint hdrlen, u8 *frame, uint plen) +int _rtw_gcmp_decrypt(_adapter *padapter, u8 *key, u32 key_len, uint hdrlen, u8 *frame, uint plen) { u8 *plain = NULL; size_t plain_len = 0; @@ -170,7 +170,7 @@ int _rtw_gcmp_decrypt(u8 *key, u32 key_len, uint hdrlen, u8 *frame, uint plen) hdr = (const struct ieee80211_hdr *)frame; - plain = gcmp_decrypt(key, key_len, + plain = gcmp_decrypt(padapter, key, key_len, hdr, frame + hdrlen, /* PN + enc_data + MIC */ plen - hdrlen, /* PN + enc_data + MIC */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_tdls.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_tdls.c index ee4537e6..b7bf5091 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_tdls.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_tdls.c @@ -522,7 +522,7 @@ u8 *rtw_tdls_set_ht_cap(_adapter *padapter, u8 *pframe, struct pkt_attrib *pattr padapter->mlmepriv.htpriv.sgi_40m = _FALSE; } - rtw_restructure_ht_ie(padapter, NULL, pframe, 0, &(pattrib->pktlen), padapter->mlmeextpriv.cur_channel); + rtw_restructure_ht_ie(padapter, NULL, pframe, 0, &(pattrib->pktlen), padapter->mlmeextpriv.cur_channel, NULL); return pframe + pattrib->pktlen; } @@ -560,7 +560,8 @@ void rtw_tdls_process_vht_cap(_adapter *padapter, struct sta_info *ptdls_sta, u8 if (ptdls_sta->flags & WLAN_STA_VHT) { if (REGSTY_IS_11AC_ENABLE(&padapter->registrypriv) && is_supported_vht(padapter->registrypriv.wireless_mode) - && (!rfctl->country_ent || COUNTRY_CHPLAN_EN_11AC(rfctl->country_ent))) { + && RFCTL_REG_EN_11AC(rfctl) + ) { ptdls_sta->vhtpriv.vht_option = _TRUE; ptdls_sta->cmn.ra_info.is_vht_enable = _TRUE; } @@ -739,7 +740,7 @@ u8 *rtw_tdls_set_rsnie(struct tdls_txmgmt *ptxmgmt, u8 *pframe, struct pkt_attri u8 *rtw_tdls_set_ext_cap(u8 *pframe, struct pkt_attrib *pattrib) { - return rtw_set_ie(pframe, _EXT_CAP_IE_ , sizeof(TDLS_EXT_CAPIE), TDLS_EXT_CAPIE, &(pattrib->pktlen)); + return rtw_set_ie(pframe, WLAN_EID_EXT_CAP , sizeof(TDLS_EXT_CAPIE), TDLS_EXT_CAPIE, &(pattrib->pktlen)); } u8 *rtw_tdls_set_qos_cap(u8 *pframe, struct pkt_attrib *pattrib) @@ -930,6 +931,7 @@ u8 *rtw_tdls_set_ch_sw(u8 *pframe, struct pkt_attrib *pattrib, struct sta_info * void rtw_tdls_set_ch_sw_oper_control(_adapter *padapter, u8 enable) { HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter); + u8 bcn_early_case; if (enable == _TRUE) { #ifdef CONFIG_TDLS_CH_SW_V2 @@ -939,14 +941,18 @@ void rtw_tdls_set_ch_sw_oper_control(_adapter *padapter, u8 enable) #ifdef CONFIG_TDLS_CH_SW_BY_DRV pHalData->ch_switch_offload = _FALSE; #endif + bcn_early_case = TDLS_BCN_ERLY_ON; } - else + else { pHalData->ch_switch_offload = _FALSE; - + bcn_early_case = TDLS_BCN_ERLY_OFF; + } + if (ATOMIC_READ(&padapter->tdlsinfo.chsw_info.chsw_on) != enable) ATOMIC_SET(&padapter->tdlsinfo.chsw_info.chsw_on, enable); - rtw_hal_set_hwreg(padapter, HW_VAR_TDLS_BCN_EARLY_C2H_RPT, &enable); + rtw_hal_set_hwreg(padapter, HW_VAR_BCN_EARLY_C2H_RPT, &enable); + rtw_hal_set_hwreg(padapter, HW_VAR_SET_DRV_ERLY_INT, &bcn_early_case); RTW_INFO("[TDLS] %s Bcn Early C2H Report\n", (enable == _TRUE) ? "Start" : "Stop"); } @@ -962,6 +968,7 @@ void rtw_tdls_ch_sw_back_to_base_chnl(_adapter *padapter) rtw_tdls_cmd(padapter, pchsw_info->addr, TDLS_CH_SW_TO_BASE_CHNL_UNSOLICITED); } +#ifndef CONFIG_TDLS_CH_SW_V2 static void rtw_tdls_chsw_oper_init(_adapter *padapter, u32 timeout_ms) { struct submit_ctx *chsw_sctx = &padapter->tdlsinfo.chsw_info.chsw_sctx; @@ -982,6 +989,7 @@ void rtw_tdls_chsw_oper_done(_adapter *padapter) rtw_sctx_done(&chsw_sctx); } +#endif s32 rtw_tdls_do_ch_sw(_adapter *padapter, struct sta_info *ptdls_sta, u8 chnl_type, u8 channel, u8 channel_offset, u16 bwmode, u16 ch_switch_time) { @@ -1308,7 +1316,7 @@ int _issue_tdls_teardown(_adapter *padapter, struct tdls_txmgmt *ptxmgmt, struct if (pmgntframe == NULL) goto exit; - rtw_mi_set_scan_deny(padapter, 550); + rtw_mi_set_scan_deny(padapter, 550, "teardown"); rtw_mi_scan_abort(padapter, _TRUE); pattrib = &pmgntframe->attrib; @@ -1831,7 +1839,7 @@ sint On_TDLS_Setup_Req(_adapter *padapter, union recv_frame *precv_frame, struct struct security_priv *psecuritypriv = &padapter->securitypriv; _irqL irqL; struct rx_pkt_attrib *prx_pkt_attrib = &precv_frame->u.hdr.attrib; - u8 *pftie = NULL, *prsnie, *ppairwise_cipher; + u8 *prsnie, *ppairwise_cipher; u8 i, k; u8 ccmp_included = 0, rsnie_included = 0; u16 j, pairwise_count; @@ -1911,13 +1919,15 @@ sint On_TDLS_Setup_Req(_adapter *padapter, union recv_frame *precv_frame, struct switch (pIE->ElementID) { case _SUPPORTEDRATES_IE_: - _rtw_memcpy(supportRate, pIE->data, pIE->Length); - supportRateNum = pIE->Length; + if (pIE->Length <= sizeof(supportRate)) { + _rtw_memcpy(supportRate, pIE->data, pIE->Length); + supportRateNum = pIE->Length; + } break; - case _COUNTRY_IE_: + case WLAN_EID_COUNTRY: break; case _EXT_SUPPORTEDRATES_IE_: - if (supportRateNum < sizeof(supportRate)) { + if ((supportRateNum + pIE->Length) <= sizeof(supportRate)) { _rtw_memcpy(supportRate + supportRateNum, pIE->data, pIE->Length); supportRateNum += pIE->Length; } @@ -1930,7 +1940,8 @@ sint On_TDLS_Setup_Req(_adapter *padapter, union recv_frame *precv_frame, struct prsnie = (u8 *)pIE; /* Check CCMP pairwise_cipher presence. */ ppairwise_cipher = prsnie + 10; - _rtw_memcpy(ptdls_sta->TDLS_RSNIE, pIE->data, pIE->Length); + _rtw_memcpy(ptdls_sta->TDLS_RSNIE, pIE->data, + (pIE->Length <= sizeof(ptdls_sta->TDLS_RSNIE) ? pIE->Length : sizeof(ptdls_sta->TDLS_RSNIE))); pairwise_count = *(u16 *)(ppairwise_cipher - 2); for (k = 0; k < pairwise_count; k++) { if (_rtw_memcmp(ppairwise_cipher + 4 * k, RSN_CIPHER_SUITE_CCMP, 4) == _TRUE) @@ -1941,12 +1952,11 @@ sint On_TDLS_Setup_Req(_adapter *padapter, union recv_frame *precv_frame, struct txmgmt.status_code = _STATS_INVALID_RSNIE_; } break; - case _EXT_CAP_IE_: + case WLAN_EID_EXT_CAP: break; case _VENDOR_SPECIFIC_IE_: break; case _FTIE_: - pftie = (u8 *)pIE; if (prx_pkt_attrib->encrypt) _rtw_memcpy(SNonce, (ptr + j + 52), 32); break; @@ -2000,10 +2010,7 @@ sint On_TDLS_Setup_Req(_adapter *padapter, union recv_frame *precv_frame, struct ptdls_sta->tdls_sta_state |= TDLS_INITIATOR_STATE; if (prx_pkt_attrib->encrypt) { - if (pftie == NULL) - RTW_WARN("%s: SNonce is null\n", __func__); - else - _rtw_memcpy(ptdls_sta->SNonce, SNonce, 32); + _rtw_memcpy(ptdls_sta->SNonce, SNonce, 32); if (timeout_interval <= 300) ptdls_sta->TDLS_PeerKey_Lifetime = TDLS_TPK_RESEND_COUNT; @@ -2097,13 +2104,15 @@ int On_TDLS_Setup_Rsp(_adapter *padapter, union recv_frame *precv_frame, struct switch (pIE->ElementID) { case _SUPPORTEDRATES_IE_: - _rtw_memcpy(supportRate, pIE->data, pIE->Length); - supportRateNum = pIE->Length; + if (pIE->Length <= sizeof(supportRate)) { + _rtw_memcpy(supportRate, pIE->data, pIE->Length); + supportRateNum = pIE->Length; + } break; - case _COUNTRY_IE_: + case WLAN_EID_COUNTRY: break; case _EXT_SUPPORTEDRATES_IE_: - if (supportRateNum < sizeof(supportRate)) { + if ((supportRateNum + pIE->Length) <= sizeof(supportRate)) { _rtw_memcpy(supportRate + supportRateNum, pIE->data, pIE->Length); supportRateNum += pIE->Length; } @@ -2119,7 +2128,8 @@ int On_TDLS_Setup_Rsp(_adapter *padapter, union recv_frame *precv_frame, struct if (_rtw_memcmp(ppairwise_cipher + 4 * k, RSN_CIPHER_SUITE_CCMP, 4) == _TRUE) verify_ccmp = 1; } - case _EXT_CAP_IE_: + break; + case WLAN_EID_EXT_CAP: break; case _VENDOR_SPECIFIC_IE_: if (_rtw_memcmp((u8 *)pIE + 2, WMM_INFO_OUI, 6) == _TRUE) { @@ -2169,11 +2179,7 @@ int On_TDLS_Setup_Rsp(_adapter *padapter, union recv_frame *precv_frame, struct ptdls_sta->bssratelen = supportRateNum; _rtw_memcpy(ptdls_sta->bssrateset, supportRate, supportRateNum); - - if (pftie == NULL) - RTW_WARN("%s: ANonce is null\n", __func__); - else - _rtw_memcpy(ptdls_sta->ANonce, ANonce, 32); + _rtw_memcpy(ptdls_sta->ANonce, ANonce, 32); #ifdef CONFIG_WFD rtw_tdls_process_wfd_ie(ptdlsinfo, ptr + FIXED_IE, parsing_length); @@ -2591,6 +2597,7 @@ sint On_TDLS_Ch_Switch_Req(_adapter *padapter, union recv_frame *precv_frame, st RTW_GET_LE16(pIE->data + 2) : TDLS_CH_SWITCH_TIMEOUT * 1000; RTW_INFO("[TDLS] %s ch_switch_time:%d, ch_switch_timeout:%d\n" , __FUNCTION__, RTW_GET_LE16(pIE->data), RTW_GET_LE16(pIE->data + 2)); + break; default: break; } @@ -2598,6 +2605,7 @@ sint On_TDLS_Ch_Switch_Req(_adapter *padapter, union recv_frame *precv_frame, st j += (pIE->Length + 2); } +#ifndef CONFIG_TDLS_CH_SW_V2 rtw_hal_get_hwreg(padapter, HW_VAR_CH_SW_NEED_TO_TAKE_CARE_IQK_INFO, &take_care_iqk); if (take_care_iqk == _TRUE) { u8 central_chnl; @@ -2612,6 +2620,7 @@ sint On_TDLS_Ch_Switch_Req(_adapter *padapter, union recv_frame *precv_frame, st return _FAIL; } } +#endif /* cancel ch sw monitor timer for responder */ if (!(pchsw_info->ch_sw_state & TDLS_CH_SW_INITIATOR_STATE)) @@ -2864,8 +2873,8 @@ void rtw_build_tdls_setup_req_ies(_adapter *padapter, struct xmit_frame *pxmitfr if ((padapter->mlmepriv.htpriv.ht_option == _TRUE) && (pmlmeext->cur_channel > 14) && REGSTY_IS_11AC_ENABLE(pregistrypriv) && is_supported_vht(pregistrypriv->wireless_mode) - && (!rfctl->country_ent || COUNTRY_CHPLAN_EN_11AC(rfctl->country_ent)) - ) { + && RFCTL_REG_EN_11AC(rfctl) + ) { pframe = rtw_tdls_set_aid(padapter, pframe, pattrib); pframe = rtw_tdls_set_vht_cap(padapter, pframe, pattrib); } @@ -2959,8 +2968,8 @@ void rtw_build_tdls_setup_rsp_ies(_adapter *padapter, struct xmit_frame *pxmitfr if ((padapter->mlmepriv.htpriv.ht_option == _TRUE) && (pmlmeext->cur_channel > 14) && REGSTY_IS_11AC_ENABLE(pregistrypriv) && is_supported_vht(pregistrypriv->wireless_mode) - && (!rfctl->country_ent || COUNTRY_CHPLAN_EN_11AC(rfctl->country_ent)) - ) { + && RFCTL_REG_EN_11AC(rfctl) + ) { pframe = rtw_tdls_set_aid(padapter, pframe, pattrib); pframe = rtw_tdls_set_vht_cap(padapter, pframe, pattrib); pframe = rtw_tdls_set_vht_op_mode_notify(padapter, pframe, pattrib, pmlmeext->cur_bwmode); @@ -3036,8 +3045,8 @@ void rtw_build_tdls_setup_cfm_ies(_adapter *padapter, struct xmit_frame *pxmitfr && (ptdls_sta->vhtpriv.vht_option == _TRUE) && (pmlmeext->cur_channel > 14) && REGSTY_IS_11AC_ENABLE(pregistrypriv) && is_supported_vht(pregistrypriv->wireless_mode) - && (!rfctl->country_ent || COUNTRY_CHPLAN_EN_11AC(rfctl->country_ent)) - ) { + && RFCTL_REG_EN_11AC(rfctl) + ) { pframe = rtw_tdls_set_vht_operation(padapter, pframe, pattrib, pmlmeext->cur_channel); pframe = rtw_tdls_set_vht_op_mode_notify(padapter, pframe, pattrib, pmlmeext->cur_bwmode); } @@ -3361,11 +3370,6 @@ void _tdls_handshake_timer_hdl(void *FunctionContext) { struct sta_info *ptdls_sta = (struct sta_info *)FunctionContext; _adapter *padapter = NULL; - struct tdls_txmgmt txmgmt; - - _rtw_memset(&txmgmt, 0x00, sizeof(struct tdls_txmgmt)); - _rtw_memcpy(txmgmt.peer, ptdls_sta->cmn.mac_addr, ETH_ALEN); - txmgmt.status_code = _RSON_TDLS_TEAR_UN_RSN_; if (ptdls_sta != NULL) { padapter = ptdls_sta->padapter; @@ -3382,11 +3386,6 @@ void _tdls_pti_timer_hdl(void *FunctionContext) { struct sta_info *ptdls_sta = (struct sta_info *)FunctionContext; _adapter *padapter = NULL; - struct tdls_txmgmt txmgmt; - - _rtw_memset(&txmgmt, 0x00, sizeof(struct tdls_txmgmt)); - _rtw_memcpy(txmgmt.peer, ptdls_sta->cmn.mac_addr, ETH_ALEN); - txmgmt.status_code = _RSON_TDLS_TEAR_TOOFAR_; if (ptdls_sta != NULL) { padapter = ptdls_sta->padapter; @@ -3394,7 +3393,7 @@ void _tdls_pti_timer_hdl(void *FunctionContext) if (ptdls_sta->tdls_sta_state & TDLS_WAIT_PTR_STATE) { RTW_INFO("[TDLS] Doesn't receive PTR from peer dev:"MAC_FMT"; " "Send TDLS Tear Down\n", MAC_ARG(ptdls_sta->cmn.mac_addr)); - rtw_tdls_cmd(padapter, ptdls_sta->cmn.mac_addr, TDLS_TEARDOWN_STA); + rtw_tdls_cmd(padapter, ptdls_sta->cmn.mac_addr, TDLS_TEARDOWN_STA_TOOFAR); } } } diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_vht.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_vht.c old mode 100644 new mode 100755 index 63f2487d..cd35aebd --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_vht.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_vht.c @@ -32,6 +32,7 @@ const u8 _vht_sup_ch_width_set_to_bw_cap[] = { 0, }; +#ifdef CONFIG_RTW_DEBUG const char *const _vht_sup_ch_width_set_str[] = { "80MHz", "160MHz", @@ -86,11 +87,15 @@ void dump_vht_op_ie_content(void *sel, const u8 *buf, u32 buf_len) return; } - RTW_PRINT_SEL(sel, "%s, ch0:%u, ch1:%u\n" - , vht_op_ch_width_str(GET_VHT_OPERATION_ELE_CHL_WIDTH(buf)) - , GET_VHT_OPERATION_ELE_CENTER_FREQ1(buf) - , GET_VHT_OPERATION_ELE_CENTER_FREQ2(buf) - ); + RTW_PRINT_SEL(sel, "\tVHT Operation Info:\n"); + RTW_PRINT_SEL(sel, "\tChannel Width: %u\n" + , GET_VHT_OPERATION_ELE_CHL_WIDTH(buf)); + RTW_PRINT_SEL(sel, "\tCenter Frequency Channel for 80 and 160 MHz Operation: %u\n" + , GET_VHT_OPERATION_ELE_CENTER_FREQ1(buf)); + RTW_PRINT_SEL(sel, "\tCenter Frequency Channel for 80+80 MHz Operation: %u\n" + , GET_VHT_OPERATION_ELE_CENTER_FREQ2(buf)); + RTW_PRINT_SEL(sel, "\tVHT Basic MCS Set: 0x%04x\n" + , GET_VHT_OPERATION_ELE_BASIC_MCS_SET(buf)); } void dump_vht_op_ie(void *sel, const u8 *ie, u32 ie_len) @@ -104,40 +109,47 @@ void dump_vht_op_ie(void *sel, const u8 *ie, u32 ie_len) dump_vht_op_ie_content(sel, vht_op_ie + 2, vht_op_ielen); } +#endif /* 20/40/80, ShortGI, MCS Rate */ -const u16 VHT_MCS_DATA_RATE[3][2][30] = { +const u16 VHT_MCS_DATA_RATE[3][2][40] = { /* unit: 0.5M */ { { 13, 26, 39, 52, 78, 104, 117, 130, 156, 156, 26, 52, 78, 104, 156, 208, 234, 260, 312, 312, - 39, 78, 117, 156, 234, 312, 351, 390, 468, 520 + 39, 78, 117, 156, 234, 312, 351, 390, 468, 520, + 52, 104, 156, 208, 312, 416, 468, 520, 624, 624, }, /* Long GI, 20MHz */ { 14, 29, 43, 58, 87, 116, 130, 144, 173, 173, 29, 58, 87, 116, 173, 231, 260, 289, 347, 347, - 43, 87, 130, 173, 260, 347, 390, 433, 520, 578 + 43, 87, 130, 173, 260, 347, 390, 433, 520, 578, + 58, 116, 173, 231, 347, 462, 520, 578, 693, 693, } }, /* Short GI, 20MHz */ { { 27, 54, 81, 108, 162, 216, 243, 270, 324, 360, 54, 108, 162, 216, 324, 432, 486, 540, 648, 720, - 81, 162, 243, 324, 486, 648, 729, 810, 972, 1080 + 81, 162, 243, 324, 486, 648, 729, 810, 972, 1080, + 108, 216, 324, 432, 648, 864, 972, 1080, 1296, 1440, }, /* Long GI, 40MHz */ { 30, 60, 90, 120, 180, 240, 270, 300, 360, 400, 60, 120, 180, 240, 360, 480, 540, 600, 720, 800, - 90, 180, 270, 360, 540, 720, 810, 900, 1080, 1200 + 90, 180, 270, 360, 540, 720, 810, 900, 1080, 1200, + 120, 240, 360, 480, 720, 960, 1080, 1200, 1440, 1600, } }, /* Short GI, 40MHz */ { { - 59, 117, 176, 234, 351, 468, 527, 585, 702, 780, + 59, 117, 176, 234, 351, 468, 527, 585, 702, 780, 117, 234, 351, 468, 702, 936, 1053, 1170, 1404, 1560, - 176, 351, 527, 702, 1053, 1404, 1580, 1755, 2106, 2340 + 176, 351, 527, 702, 1053, 1404, 1580, 1755, 2106, 2340, + 234, 468, 702, 936, 1404, 1872, 2106, 2340, 2808, 3120, }, /* Long GI, 80MHz */ { 65, 130, 195, 260, 390, 520, 585, 650, 780, 867, 130, 260, 390, 520, 780, 1040, 1170, 1300, 1560, 1734, - 195, 390, 585, 780, 1170, 1560, 1755, 1950, 2340, 2600 + 195, 390, 585, 780, 1170, 1560, 1755, 1950, 2340, 2600, + 260, 520, 780, 1040, 1560, 2080, 2340, 2600, 3120, 3467, } } /* Short GI, 80MHz */ }; @@ -209,26 +221,41 @@ void rtw_vht_nss_to_mcsmap(u8 nss, u8 *target_mcs_map, u8 *cur_mcs_map) u16 rtw_vht_mcs_to_data_rate(u8 bw, u8 short_GI, u8 vht_mcs_rate) { - if (vht_mcs_rate > MGN_VHT3SS_MCS9) - vht_mcs_rate = MGN_VHT3SS_MCS9; + if (vht_mcs_rate > MGN_VHT4SS_MCS9) + vht_mcs_rate = MGN_VHT4SS_MCS9; /* RTW_INFO("bw=%d, short_GI=%d, ((vht_mcs_rate - MGN_VHT1SS_MCS0)&0x3f)=%d\n", bw, short_GI, ((vht_mcs_rate - MGN_VHT1SS_MCS0)&0x3f)); */ return VHT_MCS_DATA_RATE[bw][short_GI][((vht_mcs_rate - MGN_VHT1SS_MCS0) & 0x3f)]; } -void rtw_vht_use_default_setting(_adapter *padapter) +void rtw_vht_use_default_setting(_adapter *padapter) { - struct mlme_priv *pmlmepriv = &padapter->mlmepriv; - struct vht_priv *pvhtpriv = &pmlmepriv->vhtpriv; - struct registry_priv *pregistrypriv = &padapter->registrypriv; - BOOLEAN bHwLDPCSupport = _FALSE, bHwSTBCSupport = _FALSE; + struct mlme_priv *pmlmepriv = &padapter->mlmepriv; + struct vht_priv *pvhtpriv = &pmlmepriv->vhtpriv; + struct registry_priv *pregistrypriv = &padapter->registrypriv; + BOOLEAN bHwLDPCSupport = _FALSE, bHwSTBCSupport = _FALSE; #ifdef CONFIG_BEAMFORMING - BOOLEAN bHwSupportBeamformer = _FALSE, bHwSupportBeamformee = _FALSE; - u8 mu_bfer, mu_bfee; + BOOLEAN bHwSupportBeamformer = _FALSE, bHwSupportBeamformee = _FALSE; + u8 mu_bfer, mu_bfee; #endif /* CONFIG_BEAMFORMING */ u8 tx_nss, rx_nss; - struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); - struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); - pvhtpriv->sgi_80m = TEST_FLAG(pregistrypriv->short_gi, BIT2) ? _TRUE : _FALSE; + u8 rf_type = 0; + struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); + struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); + + pvhtpriv->sgi_80m = 0; + pvhtpriv->sgi_160m = 0; + pvhtpriv->txop_ps = 0; + pvhtpriv->htc_vht = 1; + pvhtpriv->link_adap_cap = 0; + pvhtpriv->tx_ant_pattern= 0; + pvhtpriv->rx_ant_pattern= 0; + pvhtpriv->ext_nss_bw = 0; + + if (TEST_FLAG(pregistrypriv->short_gi, BIT2) && hal_chk_bw_cap(padapter, BW_CAP_80M)) + pvhtpriv->sgi_80m = 1; + + if (TEST_FLAG(pregistrypriv->short_gi, BIT3) && hal_chk_bw_cap(padapter, BW_CAP_160M)) + pvhtpriv->sgi_160m = 1; /* LDPC support */ rtw_hal_get_def_var(padapter, HAL_DEF_RX_LDPC, (u8 *)&bHwLDPCSupport); @@ -252,11 +279,12 @@ void rtw_vht_use_default_setting(_adapter *padapter) if (TEST_FLAG(pregistrypriv->stbc_cap, BIT1)) SET_FLAG(pvhtpriv->stbc_cap, STBC_VHT_ENABLE_TX); } - rtw_hal_get_def_var(padapter, HAL_DEF_RX_STBC, (u8 *)&bHwSTBCSupport); - if (bHwSTBCSupport) { - if (TEST_FLAG(pregistrypriv->stbc_cap, BIT0)) - SET_FLAG(pvhtpriv->stbc_cap, STBC_VHT_ENABLE_RX); + + rtw_hal_get_def_var(padapter, HAL_DEF_RX_STBC, (u8 *)(&pvhtpriv->rx_stbc_nss)); + if (pvhtpriv->rx_stbc_nss && TEST_FLAG(pregistrypriv->stbc_cap, BIT0)) { + SET_FLAG(pvhtpriv->stbc_cap, STBC_VHT_ENABLE_RX); } + if (pvhtpriv->stbc_cap) RTW_INFO("[VHT] Support STBC = 0x%02X\n", pvhtpriv->stbc_cap); @@ -264,10 +292,13 @@ void rtw_vht_use_default_setting(_adapter *padapter) CLEAR_FLAGS(pvhtpriv->beamform_cap); #ifdef CONFIG_BEAMFORMING #ifdef RTW_BEAMFORMING_VERSION_2 +#ifdef CONFIG_CONCURRENT_MODE /* only enable beamforming in STA client mode */ - if (MLME_IS_STA(padapter) && !MLME_IS_GC(padapter) - && !MLME_IS_ADHOC(padapter) - && !MLME_IS_MESH(padapter)) + if (MLME_IS_STA(padapter) && !MLME_IS_GC(padapter)) +#else + if ((MLME_IS_AP(padapter) && !MLME_IS_GO(padapter)) || + (MLME_IS_STA(padapter) && !MLME_IS_GC(padapter))) +#endif #endif { rtw_hal_get_def_var(padapter, HAL_DEF_EXPLICIT_BEAMFORMER, @@ -336,13 +367,13 @@ u64 rtw_vht_mcs_map_to_bitmap(u8 *mcs_map, u8 nss) switch (tmp) { case 2: - bitmap = bitmap | (0x03ff << j); + bitmap = bitmap | ((u64)0x03ff << j); break; case 1: - bitmap = bitmap | (0x01ff << j); + bitmap = bitmap | ((u64)0x01ff << j); break; case 0: - bitmap = bitmap | (0x00ff << j); + bitmap = bitmap | ((u64)0x00ff << j); break; default: break; @@ -747,7 +778,6 @@ u32 rtw_build_vht_operation_ie(_adapter *padapter, u8 *pbuf, u8 channel) ChnlWidth = 0; } - SET_VHT_OPERATION_ELE_CHL_WIDTH(operation, ChnlWidth); /* center frequency */ SET_VHT_OPERATION_ELE_CHL_CENTER_FREQ1(operation, center_freq);/* Todo: need to set correct center channel */ @@ -785,44 +815,50 @@ u32 rtw_build_vht_op_mode_notify_ie(_adapter *padapter, u8 *pbuf, u8 bw) u32 rtw_build_vht_cap_ie(_adapter *padapter, u8 *pbuf) { - u8 bw, rf_num, rx_stbc_nss = 0; - u16 HighestRate; - u8 *pcap, *pcap_mcs; - u32 len = 0; + u8 bw, rf_num; + u16 HighestRate; + u8 *pcap, *pcap_mcs; + u32 len = 0; u32 rx_packet_offset, max_recvbuf_sz; struct registry_priv *pregistrypriv = &padapter->registrypriv; - struct mlme_priv *pmlmepriv = &padapter->mlmepriv; - struct vht_priv *pvhtpriv = &pmlmepriv->vhtpriv; - struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; - struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); + struct mlme_priv *pmlmepriv = &padapter->mlmepriv; + struct vht_priv *pvhtpriv = &pmlmepriv->vhtpriv; + struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; + struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); pcap = pvhtpriv->vht_cap; _rtw_memset(pcap, 0, 32); + /* + * VHT Capabilities Information field : B0 to B31 + */ /* B0 B1 Maximum MPDU Length */ rtw_hal_get_def_var(padapter, HAL_DEF_RX_PACKET_OFFSET, &rx_packet_offset); rtw_hal_get_def_var(padapter, HAL_DEF_MAX_RECVBUF_SZ, &max_recvbuf_sz); - RTW_DBG("%s, line%d, Available RX buf size = %d bytes\n", __FUNCTION__, __LINE__, max_recvbuf_sz - rx_packet_offset); + RTW_DBG("%s, Available RX buf size = %d bytes\n", __FUNCTION__, max_recvbuf_sz - rx_packet_offset); if ((max_recvbuf_sz - rx_packet_offset) >= 11454) { SET_VHT_CAPABILITY_ELE_MAX_MPDU_LENGTH(pcap, 2); - RTW_INFO("%s, line%d, Set MAX MPDU len = 11454 bytes\n", __FUNCTION__, __LINE__); + RTW_INFO("[VHT] Declare supporting MAX MPDU len = 11454 bytes\n"); } else if ((max_recvbuf_sz - rx_packet_offset) >= 7991) { SET_VHT_CAPABILITY_ELE_MAX_MPDU_LENGTH(pcap, 1); - RTW_INFO("%s, line%d, Set MAX MPDU len = 7991 bytes\n", __FUNCTION__, __LINE__); + RTW_INFO("[VHT] Declare supporting MAX MPDU len = 7991 bytes\n"); } else if ((max_recvbuf_sz - rx_packet_offset) >= 3895) { SET_VHT_CAPABILITY_ELE_MAX_MPDU_LENGTH(pcap, 0); - RTW_INFO("%s, line%d, Set MAX MPDU len = 3895 bytes\n", __FUNCTION__, __LINE__); + RTW_INFO("[VHT] Declare supporting MAX MPDU len = 3895 bytes\n"); } else - RTW_ERR("%s, line%d, Error!! Available RX buf size < 3895 bytes\n", __FUNCTION__, __LINE__); + RTW_ERR("[VHT] Error!! Available RX buf size < 3895 bytes\n"); /* B2 B3 Supported Channel Width Set */ if (hal_chk_bw_cap(padapter, BW_CAP_160M) && REGSTY_IS_BW_5G_SUPPORT(pregistrypriv, CHANNEL_WIDTH_160)) { - if (hal_chk_bw_cap(padapter, BW_CAP_80_80M) && REGSTY_IS_BW_5G_SUPPORT(pregistrypriv, CHANNEL_WIDTH_80_80)) + if (hal_chk_bw_cap(padapter, BW_CAP_80_80M) && REGSTY_IS_BW_5G_SUPPORT(pregistrypriv, CHANNEL_WIDTH_80_80)) { SET_VHT_CAPABILITY_ELE_CHL_WIDTH(pcap, 2); - else + RTW_INFO("[VHT] Declare supporting 160MHz and 80+80MHz\n"); + } else { SET_VHT_CAPABILITY_ELE_CHL_WIDTH(pcap, 1); + RTW_INFO("[VHT] Declare supporting 160MHz\n"); + } } else SET_VHT_CAPABILITY_ELE_CHL_WIDTH(pcap, 0); @@ -833,12 +869,15 @@ u32 rtw_build_vht_cap_ie(_adapter *padapter, u8 *pbuf) } /* B5 ShortGI for 80MHz */ - SET_VHT_CAPABILITY_ELE_SHORT_GI80M(pcap, pvhtpriv->sgi_80m ? 1 : 0); /* We can receive Short GI of 80M */ + SET_VHT_CAPABILITY_ELE_SHORT_GI80M(pcap, pvhtpriv->sgi_80m ? 1 : 0); if (pvhtpriv->sgi_80m) RTW_INFO("[VHT] Declare supporting SGI 80MHz\n"); - /* B6 ShortGI for 160MHz */ - /* SET_VHT_CAPABILITY_ELE_SHORT_GI160M(pcap, pvhtpriv->sgi_80m? 1 : 0); */ + /* B6 Short GI for 160 and 80+80 MHz */ + SET_VHT_CAPABILITY_ELE_SHORT_GI160M(pcap, pvhtpriv->sgi_160m ? 1 : 0); + if (pvhtpriv->sgi_160m) { + RTW_INFO("[VHT] Declare supporting SGI 160MHz and 80+80MHz\n"); + } /* B7 Tx STBC */ if (TEST_FLAG(pvhtpriv->stbc_cap, STBC_VHT_ENABLE_TX)) { @@ -848,62 +887,89 @@ u32 rtw_build_vht_cap_ie(_adapter *padapter, u8 *pbuf) /* B8 B9 B10 Rx STBC */ if (TEST_FLAG(pvhtpriv->stbc_cap, STBC_VHT_ENABLE_RX)) { - rtw_hal_get_def_var(padapter, HAL_DEF_RX_STBC, (u8 *)(&rx_stbc_nss)); - - SET_VHT_CAPABILITY_ELE_RX_STBC(pcap, rx_stbc_nss); - RTW_INFO("[VHT] Declare supporting RX STBC = %d\n", rx_stbc_nss); + SET_VHT_CAPABILITY_ELE_RX_STBC(pcap, pvhtpriv->rx_stbc_nss); + RTW_INFO("[VHT] Declare supporting %uSS RX STBC\n", pvhtpriv->rx_stbc_nss); } + #ifdef CONFIG_BEAMFORMING /* B11 SU Beamformer Capable */ if (TEST_FLAG(pvhtpriv->beamform_cap, BEAMFORMING_VHT_BEAMFORMER_ENABLE)) { SET_VHT_CAPABILITY_ELE_SU_BFER(pcap, 1); - RTW_INFO("[VHT] Declare supporting SU Bfer\n"); + RTW_INFO("[VHT] Declare supporting SU Beamformer\n"); /* B16 17 18 Number of Sounding Dimensions */ rtw_hal_get_def_var(padapter, HAL_DEF_BEAMFORMER_CAP, (u8 *)&rf_num); SET_VHT_CAPABILITY_ELE_SOUNDING_DIMENSIONS(pcap, rf_num); /* B19 MU Beamformer Capable */ if (TEST_FLAG(pvhtpriv->beamform_cap, BEAMFORMING_VHT_MU_MIMO_AP_ENABLE)) { SET_VHT_CAPABILITY_ELE_MU_BFER(pcap, 1); - RTW_INFO("[VHT] Declare supporting MU Bfer\n"); + RTW_INFO("[VHT] Declare supporting MU Beamformer\n"); } } /* B12 SU Beamformee Capable */ if (TEST_FLAG(pvhtpriv->beamform_cap, BEAMFORMING_VHT_BEAMFORMEE_ENABLE)) { SET_VHT_CAPABILITY_ELE_SU_BFEE(pcap, 1); - RTW_INFO("[VHT] Declare supporting SU Bfee\n"); + RTW_INFO("[VHT] Declare supporting SU Beamformee\n"); rtw_hal_get_def_var(padapter, HAL_DEF_BEAMFORMEE_CAP, (u8 *)&rf_num); /* IOT action suggested by Yu Chen 2017/3/3 */ -#ifdef CONFIG_80211AC_VHT if ((pmlmeinfo->assoc_AP_vendor == HT_IOT_PEER_BROADCOM) && !pvhtpriv->ap_bf_cap.is_mu_bfer && pvhtpriv->ap_bf_cap.su_sound_dim == 2) rf_num = (rf_num >= 2 ? 2 : rf_num); -#endif - /* B13 14 15 Compressed Steering Number of Beamformer Antennas Supported */ - SET_VHT_CAPABILITY_ELE_BFER_ANT_SUPP(pcap, rf_num); - /* B20 SU Beamformee Capable */ + + /* B13 14 15 Beamformee STS Capability */ + SET_VHT_CAPABILITY_ELE_SU_BFEE_STS_CAP(pcap, rf_num); + + /* B20 MU Beamformee Capable */ if (TEST_FLAG(pvhtpriv->beamform_cap, BEAMFORMING_VHT_MU_MIMO_STA_ENABLE)) { SET_VHT_CAPABILITY_ELE_MU_BFEE(pcap, 1); - RTW_INFO("[VHT] Declare supporting MU Bfee\n"); + RTW_INFO("[VHT] Declare supporting MU Beamformee\n"); } } #endif/*CONFIG_BEAMFORMING*/ /* B21 VHT TXOP PS */ - SET_VHT_CAPABILITY_ELE_TXOP_PS(pcap, 0); - /* B22 +HTC-VHT Capable */ - SET_VHT_CAPABILITY_ELE_HTC_VHT(pcap, 1); - /* B23 24 25 Maximum A-MPDU Length Exponent */ - if (pregistrypriv->ampdu_factor != 0xFE) - SET_VHT_CAPABILITY_ELE_MAX_RXAMPDU_FACTOR(pcap, pregistrypriv->ampdu_factor); - else - SET_VHT_CAPABILITY_ELE_MAX_RXAMPDU_FACTOR(pcap, 7); - /* B26 27 VHT Link Adaptation Capable */ - SET_VHT_CAPABILITY_ELE_LINK_ADAPTION(pcap, 0); + if (pvhtpriv->txop_ps) { + SET_VHT_CAPABILITY_ELE_TXOP_PS(pcap, 1); + RTW_INFO("[VHT] Declare supporting VHT TXOP power save\n"); + } + /* B22 +HTC-VHT Capable */ + if (pvhtpriv->htc_vht) { + SET_VHT_CAPABILITY_ELE_HTC_VHT(pcap, 1); + RTW_INFO("[VHT] Declare supporting VHT variant HT Control\n"); + } + + /* B23 24 25 Maximum A-MPDU Length Exponent */ + SET_VHT_CAPABILITY_ELE_MAX_RXAMPDU_FACTOR(pcap, pvhtpriv->ampdu_len); + RTW_INFO("[VHT] Declare supporting RX A-MPDU Length Exponent = %u\n", pvhtpriv->ampdu_len); + + /* B26 27 VHT Link Adaptation Capable */ + if (pvhtpriv->link_adap_cap) { + SET_VHT_CAPABILITY_ELE_LINK_ADAPTION(pcap, 1); + RTW_INFO("[VHT] Declare supporting link adaptation using VHT variant HT Control\n"); + } + + /* B28 Rx Antenna Pattern Consistency */ + if (pvhtpriv->rx_ant_pattern) { + SET_VHT_CAPABILITY_ELE_RX_ANT_PATTERN(pcap, 1); + RTW_INFO("[VHT] Declare supporting RX Antenna Pattern Consistency\n"); + } + + /* B29 Tx Antenna Pattern Consistency */ + if (pvhtpriv->tx_ant_pattern) { + SET_VHT_CAPABILITY_ELE_TX_ANT_PATTERN(pcap, 1); + RTW_INFO("[VHT] Declare supporting TX Antenna Pattern Consistency\n"); + } + + /* B30 B31 Extended NSS BW Support */ + SET_VHT_CAPABILITY_ELE_EXT_NSS_BW(pcap, pvhtpriv->ext_nss_bw); + + /* + * Supported VHT-MCS and NSS Set : 8 bytes + */ pcap_mcs = GET_VHT_CAPABILITY_ELE_RX_MCS(pcap); _rtw_memcpy(pcap_mcs, pvhtpriv->vht_mcs_map, 2); @@ -913,13 +979,7 @@ u32 rtw_build_vht_cap_ie(_adapter *padapter, u8 *pbuf) /* find the largest bw supported by both registry and hal */ bw = hal_largest_bw(padapter, REGSTY_BW_5G(pregistrypriv)); - if(bw < ARRAY_SIZE(VHT_MCS_DATA_RATE)){ - HighestRate = VHT_MCS_DATA_RATE[bw][pvhtpriv->sgi_80m][((pvhtpriv->vht_highest_rate - MGN_VHT1SS_MCS0) & 0x3f)]; - } else { - RTW_WARN("BW parameter value is out of range:%u\n", bw); - HighestRate = VHT_MCS_DATA_RATE[ARRAY_SIZE(VHT_MCS_DATA_RATE) - 1][pvhtpriv->sgi_80m][((pvhtpriv->vht_highest_rate - MGN_VHT1SS_MCS0) & 0x3f)]; - } - + HighestRate = VHT_MCS_DATA_RATE[bw][pvhtpriv->sgi_80m][((pvhtpriv->vht_highest_rate - MGN_VHT1SS_MCS0) & 0x3f)]; HighestRate = (HighestRate + 1) >> 1; SET_VHT_CAPABILITY_ELE_MCS_RX_HIGHEST_RATE(pcap, HighestRate); /* indicate we support highest rx rate is 600Mbps. */ @@ -927,11 +987,10 @@ u32 rtw_build_vht_cap_ie(_adapter *padapter, u8 *pbuf) pbuf = rtw_set_ie(pbuf, EID_VHTCapability, 12, pcap, &len); - return len; } -u32 rtw_restructure_vht_ie(_adapter *padapter, u8 *in_ie, u8 *out_ie, uint in_len, uint *pout_len) +u32 rtw_restructure_vht_ie(_adapter *padapter, u8 *in_ie, u8 *out_ie, uint in_len, uint *pout_len, struct country_chplan *req_chplan) { struct rf_ctl_t *rfctl = adapter_to_rfctl(padapter); RT_CHANNEL_INFO *chset = rfctl->channel_set; @@ -996,9 +1055,10 @@ u32 rtw_restructure_vht_ie(_adapter *padapter, u8 *in_ie, u8 *out_ie, uint in_le oper_bw = rtw_min(oper_bw, max_bw); /* try downgrage bw to fit in channel plan setting */ - while (!rtw_chset_is_chbw_valid(chset, oper_ch, oper_bw, oper_offset) + while ((req_chplan && !rtw_country_chplan_is_chbw_valid(req_chplan, BAND_ON_5G, oper_ch, oper_bw, oper_offset, 1, 1, pregistrypriv)) + || (!req_chplan && !rtw_chset_is_chbw_valid(chset, oper_ch, oper_bw, oper_offset, 1, 1)) || (IS_DFS_SLAVE_WITH_RD(rfctl) - && !rtw_odm_dfs_domain_unknown(rfctl_to_dvobj(rfctl)) + && !rtw_rfctl_dfs_domain_unknown(rfctl) && rtw_chset_is_chbw_non_ocp(chset, oper_ch, oper_bw, oper_offset)) ) { oper_bw--; @@ -1010,8 +1070,9 @@ u32 rtw_restructure_vht_ie(_adapter *padapter, u8 *in_ie, u8 *out_ie, uint in_le } } - rtw_warn_on(!rtw_chset_is_chbw_valid(chset, oper_ch, oper_bw, oper_offset)); - if (IS_DFS_SLAVE_WITH_RD(rfctl) && !rtw_odm_dfs_domain_unknown(rfctl_to_dvobj(rfctl))) + rtw_warn_on(req_chplan && !rtw_country_chplan_is_chbw_valid(req_chplan, BAND_ON_5G, oper_ch, oper_bw, oper_offset, 1, 1, pregistrypriv)); + rtw_warn_on(!req_chplan && !rtw_chset_is_chbw_valid(chset, oper_ch, oper_bw, oper_offset, 1, 1)); + if (IS_DFS_SLAVE_WITH_RD(rfctl) && !rtw_rfctl_dfs_domain_unknown(rfctl)) rtw_warn_on(rtw_chset_is_chbw_non_ocp(chset, oper_ch, oper_bw, oper_offset)); /* update VHT_OP_IE */ @@ -1064,6 +1125,7 @@ void VHTOnAssocRsp(_adapter *padapter) rtw_hal_set_hwreg(padapter, HW_VAR_AMPDU_MAX_TIME, (u8 *)(&pvhtpriv->vht_highest_rate)); } +#ifdef CONFIG_AP_MODE void rtw_vht_ies_attach(_adapter *padapter, WLAN_BSSID_EX *pnetwork) { struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); @@ -1080,10 +1142,9 @@ void rtw_vht_ies_attach(_adapter *padapter, WLAN_BSSID_EX *pnetwork) rtw_vht_use_default_setting(padapter); /* VHT Operation mode notifiy bit in Extended IE (127) */ - SET_EXT_CAPABILITY_ELE_OP_MODE_NOTIF(pmlmepriv->ext_capab_ie_data, 1); - pmlmepriv->ext_capab_ie_len = 10; - rtw_set_ie(pnetwork->IEs + pnetwork->IELength, EID_EXTCapability, 8, pmlmepriv->ext_capab_ie_data, &len); - pnetwork->IELength += pmlmepriv->ext_capab_ie_len; + rtw_add_ext_cap_info(pmlmepriv->ext_capab_ie_data, &(pmlmepriv->ext_capab_ie_len), OP_MODE_NOTIFICATION); + rtw_update_ext_cap_ie(pmlmepriv->ext_capab_ie_data, pmlmepriv->ext_capab_ie_len, pnetwork->IEs \ + , &(pnetwork->IELength), _BEACON_IE_OFFSET_); /* VHT Capabilities element */ cap_len = rtw_build_vht_cap_ie(padapter, pnetwork->IEs + pnetwork->IELength); @@ -1103,9 +1164,13 @@ void rtw_vht_ies_detach(_adapter *padapter, WLAN_BSSID_EX *pnetwork) { struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); - rtw_remove_bcn_ie(padapter, pnetwork, EID_EXTCapability); + rtw_remove_ext_cap_info(pmlmepriv->ext_capab_ie_data, &(pmlmepriv->ext_capab_ie_len), OP_MODE_NOTIFICATION); + rtw_update_ext_cap_ie(pmlmepriv->ext_capab_ie_data, pmlmepriv->ext_capab_ie_len, pnetwork->IEs \ + , &(pnetwork->IELength), _BEACON_IE_OFFSET_); + rtw_remove_bcn_ie(padapter, pnetwork, EID_VHTCapability); rtw_remove_bcn_ie(padapter, pnetwork, EID_VHTOperation); + rtw_remove_bcn_ie(padapter, pnetwork, EID_VHTTransmitPower); pmlmepriv->vhtpriv.vht_option = _FALSE; } @@ -1132,4 +1197,86 @@ void rtw_check_for_vht20(_adapter *adapter, u8 *ies, int ies_len) } } } + +/* We need to update the (mlmepriv->vhtpriv) */ +void rtw_update_drv_vht_cap(_adapter *padapter, u8 *vht_cap_ie) +{ + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + struct vht_priv *pvhtpriv = &(pmlmepriv->vhtpriv); + struct registry_priv *pregpriv = &padapter->registrypriv; + s32 ie_len = 0; + u32 rx_packet_offset, max_recvbuf_sz, available_mpdu_sz; + u8 cap_val; + u8 *pvht_cap; + + /* Initialize VHT capability element */ + rtw_vht_use_default_setting(padapter); + + RTW_INFO("Don't setting VHT capability IE from hostap, builded by driver temporarily\n"); + rtw_build_vht_cap_ie(padapter, vht_cap_ie); +} + +void rtw_set_vht_ext_cap(_adapter *padapter, WLAN_BSSID_EX *pnetwork) +{ + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + struct vht_priv *pvhtpriv = &(pmlmepriv->vhtpriv); + u32 frlen = 0; + u32 ie_len; + u32 ies_len = pnetwork->IELength - _BEACON_IE_OFFSET_; + u8 *ies = pnetwork->IEs + _BEACON_IE_OFFSET_; + u8 *pbuf; + + rtw_add_ext_cap_info(pmlmepriv->ext_capab_ie_data, &(pmlmepriv->ext_capab_ie_len), OP_MODE_NOTIFICATION); + rtw_update_ext_cap_ie(pmlmepriv->ext_capab_ie_data, pmlmepriv->ext_capab_ie_len, pnetwork->IEs \ + , &(pnetwork->IELength), _BEACON_IE_OFFSET_); +} + +void rtw_check_vht_ies(_adapter *padapter, WLAN_BSSID_EX *pnetwork) +{ + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + struct vht_priv *pvhtpriv = &(pmlmepriv->vhtpriv); + u32 ie_len; + u32 ies_len = pnetwork->IELength - _BEACON_IE_OFFSET_; + u8 *ies = pnetwork->IEs + _BEACON_IE_OFFSET_; + u8 *vht_cap_ie, *vht_op_ie; + + vht_cap_ie = rtw_get_ie(ies, EID_VHTCapability, &ie_len, ies_len); + vht_op_ie = rtw_get_ie(ies, EID_VHTOperation, &ie_len, ies_len); + + rtw_update_drv_vht_cap(padapter, vht_cap_ie); + rtw_set_vht_ext_cap(padapter, pnetwork); + + /* Backup these two VHT IEs from hostapd/wpa_supplicant for restore usage */ + if (vht_cap_ie != NULL) + _rtw_memcpy(pvhtpriv->vht_cap_ie_backup, vht_cap_ie + 2, VHT_CAP_IE_LEN); + + if (vht_op_ie != NULL) + _rtw_memcpy(pvhtpriv->vht_op_ie_backup, vht_op_ie + 2, VHT_OP_IE_LEN); + + /* TODO : We don't handle this IE like before, so remove it */ + rtw_remove_bcn_ie(padapter, pnetwork, EID_VHTTransmitPower); +} + +void rtw_reattach_vht_ies(_adapter *padapter, WLAN_BSSID_EX *pnetwork) +{ + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + struct vht_priv *pvhtpriv = &(pmlmepriv->vhtpriv); + u8 *vht_cap_ie = pnetwork->IEs + pnetwork->IELength; + u8 *vht_op_ie; + + RTW_INFO(FUNC_ADPT_FMT"\n", FUNC_ADPT_ARG(padapter)); + + if (pnetwork->IEs != NULL) { + vht_op_ie = rtw_set_ie(vht_cap_ie, EID_VHTCapability, VHT_CAP_IE_LEN, + pvhtpriv->vht_cap_ie_backup, &(pnetwork->IELength)); + + rtw_set_ie(vht_op_ie, EID_VHTOperation, VHT_OP_IE_LEN, + pvhtpriv->vht_op_ie_backup, &(pnetwork->IELength)); + + rtw_set_vht_ext_cap(padapter, pnetwork); + } + + pmlmepriv->vhtpriv.vht_option = _TRUE; +} +#endif /* CONFIG_AP_MODE */ #endif /* CONFIG_80211AC_VHT */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_wapi.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_wapi.c index 07a14646..affe1c8d 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_wapi.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_wapi.c @@ -284,7 +284,7 @@ u8 WapiWriteOneCamEntry( usConfig |= (0x01 << 5); } - write_cam(padapter, EntryId, usConfig, pMacAddr, pKey, false); + write_cam(padapter, EntryId, usConfig, pMacAddr, pKey); WAPI_TRACE(WAPI_API, "===========> %s\n", __FUNCTION__); return 1; @@ -296,7 +296,7 @@ void rtw_wapi_init(_adapter *padapter) int i; WAPI_TRACE(WAPI_INIT, "===========> %s\n", __FUNCTION__); - RT_ASSERT_RET(padapter); + RT_WAPI_ASSERT_RET(padapter); if (!padapter->WapiSupport) { WAPI_TRACE(WAPI_INIT, "<========== %s, WAPI not supported!\n", __FUNCTION__); @@ -330,7 +330,7 @@ void rtw_wapi_init(_adapter *padapter) void rtw_wapi_free(_adapter *padapter) { WAPI_TRACE(WAPI_INIT, "===========> %s\n", __FUNCTION__); - RT_ASSERT_RET(padapter); + RT_WAPI_ASSERT_RET(padapter); if (!padapter->WapiSupport) { WAPI_TRACE(WAPI_INIT, "<========== %s, WAPI not supported!\n", __FUNCTION__); @@ -345,7 +345,7 @@ void rtw_wapi_free(_adapter *padapter) void rtw_wapi_disable_tx(_adapter *padapter) { WAPI_TRACE(WAPI_INIT, "===========> %s\n", __FUNCTION__); - RT_ASSERT_RET(padapter); + RT_WAPI_ASSERT_RET(padapter); if (!padapter->WapiSupport) { WAPI_TRACE(WAPI_INIT, "<========== %s, WAPI not supported!\n", __FUNCTION__); @@ -476,14 +476,7 @@ u8 rtw_wapi_check_for_drop( if (precv_hdr->bIsWaiPacket != 0) { if (precv_hdr->bIsWaiPacket == 0x8) { - - RTW_INFO("rtw_wapi_check_for_drop: dump packet\n"); - for (i = 0; i < 50; i++) { - RTW_INFO("%02X ", ptr[i]); - if ((i + 1) % 8 == 0) - RTW_INFO("\n"); - } - RTW_INFO("\n rtw_wapi_check_for_drop: dump packet\n"); + WAPI_DATA(WAPI_RX, "rtw_wapi_check_for_drop() dump packet", ptr, 50); for (i = 0; i < 16; i++) { if (ptr[i + 27] != 0) diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_wlan_util.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_wlan_util.c index 40389258..b883dd84 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_wlan_util.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_wlan_util.c @@ -26,10 +26,6 @@ #define IPv6_PROTOCOL_OFFSET 20 #endif -#if defined(CONFIG_TEGRA_SYSTEM_TYPE_ACK) -MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver); -#endif - unsigned char ARTHEROS_OUI1[] = {0x00, 0x03, 0x7f}; unsigned char ARTHEROS_OUI2[] = {0x00, 0x13, 0x74}; @@ -477,114 +473,6 @@ inline void rtw_set_oper_choffset(_adapter *adapter, u8 offset) adapter_to_dvobj(adapter)->oper_ch_offset = offset; } -u8 rtw_get_offset_by_chbw(u8 ch, u8 bw, u8 *r_offset) -{ - u8 valid = 1; - u8 offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE; - - if (bw == CHANNEL_WIDTH_20) - goto exit; - - if (bw >= CHANNEL_WIDTH_80 && ch <= 14) { - valid = 0; - goto exit; - } - - if (ch >= 1 && ch <= 4) - offset = HAL_PRIME_CHNL_OFFSET_LOWER; - else if (ch >= 5 && ch <= 9) { - if (*r_offset == HAL_PRIME_CHNL_OFFSET_LOWER || *r_offset == HAL_PRIME_CHNL_OFFSET_UPPER) - offset = *r_offset; /* both lower and upper is valid, obey input value */ - else - offset = HAL_PRIME_CHNL_OFFSET_UPPER; /* default use upper */ - } else if (ch >= 10 && ch <= 13) - offset = HAL_PRIME_CHNL_OFFSET_UPPER; - else if (ch == 14) { - valid = 0; /* ch14 doesn't support 40MHz bandwidth */ - goto exit; - } else if (ch >= 36 && ch <= 177) { - switch (ch) { - case 36: - case 44: - case 52: - case 60: - case 100: - case 108: - case 116: - case 124: - case 132: - case 140: - case 149: - case 157: - case 165: - case 173: - offset = HAL_PRIME_CHNL_OFFSET_LOWER; - break; - case 40: - case 48: - case 56: - case 64: - case 104: - case 112: - case 120: - case 128: - case 136: - case 144: - case 153: - case 161: - case 169: - case 177: - offset = HAL_PRIME_CHNL_OFFSET_UPPER; - break; - default: - valid = 0; - break; - } - } else - valid = 0; - -exit: - if (valid && r_offset) - *r_offset = offset; - return valid; -} - -u8 rtw_get_center_ch(u8 channel, u8 chnl_bw, u8 chnl_offset) -{ - u8 center_ch = channel; - - if (chnl_bw == CHANNEL_WIDTH_80) { - if (channel == 36 || channel == 40 || channel == 44 || channel == 48) - center_ch = 42; - else if (channel == 52 || channel == 56 || channel == 60 || channel == 64) - center_ch = 58; - else if (channel == 100 || channel == 104 || channel == 108 || channel == 112) - center_ch = 106; - else if (channel == 116 || channel == 120 || channel == 124 || channel == 128) - center_ch = 122; - else if (channel == 132 || channel == 136 || channel == 140 || channel == 144) - center_ch = 138; - else if (channel == 149 || channel == 153 || channel == 157 || channel == 161) - center_ch = 155; - else if (channel == 165 || channel == 169 || channel == 173 || channel == 177) - center_ch = 171; - else if (channel <= 14) - center_ch = 7; - } else if (chnl_bw == CHANNEL_WIDTH_40) { - if (chnl_offset == HAL_PRIME_CHNL_OFFSET_LOWER) - center_ch = channel + 2; - else - center_ch = channel - 2; - } else if (chnl_bw == CHANNEL_WIDTH_20 || - chnl_bw == CHANNEL_WIDTH_10 || - chnl_bw == CHANNEL_WIDTH_5) - center_ch = channel; - else - rtw_warn_on(1); - - return center_ch; -} - inline systime rtw_get_on_oper_ch_time(_adapter *adapter) { return adapter_to_dvobj(adapter)->on_oper_ch_time; @@ -666,6 +554,8 @@ void set_channel_bwmode(_adapter *padapter, unsigned char channel, unsigned char rtw_hal_ch_sw_iqk_info_backup(padapter); #endif + rtw_odm_adaptivity_update(adapter_to_dvobj(padapter)); + #ifdef CONFIG_DFS_MASTER if (new_overlap_radar_detect_ch) rtw_odm_radar_detect_enable(padapter); @@ -792,7 +682,7 @@ void _clear_cam_entry(_adapter *padapter, u8 entry) rtw_sec_write_cam_ent(padapter, entry, 0, null_sta, null_key); } -static void _write_cam(_adapter *adapter, u8 id, u16 ctrl, u8 *mac, u8 *key) +inline void _write_cam(_adapter *adapter, u8 id, u16 ctrl, u8 *mac, u8 *key) { #ifdef CONFIG_WRITE_CACHE_ONLY write_cam_cache(adapter, id , ctrl, mac, key); @@ -802,9 +692,9 @@ static void _write_cam(_adapter *adapter, u8 id, u16 ctrl, u8 *mac, u8 *key) #endif } -void write_cam(_adapter *adapter, u8 id, u16 ctrl, u8 *mac, u8 *key, bool ext) +inline void write_cam(_adapter *adapter, u8 id, u16 ctrl, u8 *mac, u8 *key) { - if (ext) { + if (ctrl & BIT(9)) { _write_cam(adapter, id, ctrl, mac, key); _write_cam(adapter, (id + 1), ctrl | BIT(5), mac, (key + 16)); RTW_INFO_DUMP("key-0: ", key, 16); @@ -1393,12 +1283,12 @@ inline void rtw_sec_cam_swap(_adapter *adapter, u8 cam_id_a, u8 cam_id_b) /*setp-3. set cam_info*/ if (cam_a_used) { - _write_cam(adapter, cam_id_b, cache_a.ctrl, cache_a.mac, cache_a.key); + write_cam(adapter, cam_id_b, cache_a.ctrl, cache_a.mac, cache_a.key); rtw_camid_set(adapter, cam_id_b); } if (cam_b_used) { - _write_cam(adapter, cam_id_a, cache_b.ctrl, cache_b.mac, cache_b.key); + write_cam(adapter, cam_id_a, cache_b.ctrl, cache_b.mac, cache_b.key); rtw_camid_set(adapter, cam_id_a); } } @@ -1441,9 +1331,12 @@ void rtw_clean_hw_dk_cam(_adapter *adapter) { int i; - for (i = 0; i < 4; i++) - rtw_sec_clr_cam_ent(adapter, i); - /*_clear_cam_entry(adapter, i);*/ + for (i = 0; i < 4; i++) { + if (_rtw_camctl_chk_cap(adapter, SEC_CAP_CHK_WRITE_CAM_NEW_RULE)) + _clear_cam_entry(adapter, i); + else + rtw_sec_clr_cam_ent(adapter, i); + } } void flush_all_cam_entry(_adapter *padapter) @@ -1465,6 +1358,7 @@ void flush_all_cam_entry(_adapter *padapter) rtw_clearstakey_cmd(padapter, psta, _FALSE); } } else if (MLME_IS_AP(padapter) || MLME_IS_MESH(padapter)) { +#ifdef CONFIG_AP_MODE #ifndef SEC_DEFAULT_KEY_SEARCH int cam_id = -1; u8 *addr = adapter_mac_addr(padapter); @@ -1492,6 +1386,7 @@ void flush_all_cam_entry(_adapter *padapter) /* clear default key related key search setting */ rtw_hal_set_hwreg(padapter, HW_VAR_SEC_DK_CFG, (u8 *)_FALSE); #endif +#endif /* CONFIG_AP_MODE */ } #else /*NON CONFIG_CONCURRENT_MODE*/ @@ -1938,7 +1833,7 @@ void HT_caps_handler(_adapter *padapter, PNDIS_802_11_VARIABLE_IEs pIE) #ifdef CONFIG_80211N_HT unsigned int i; u8 max_AMPDU_len, min_MPDU_spacing; - u8 cur_ldpc_cap = 0, cur_stbc_cap = 0, cur_beamform_cap = 0, tx_nss = 0; + u8 cur_ldpc_cap = 0, cur_stbc_cap = 0, cur_beamform_cap = 0, rx_nss = 0; struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); struct mlme_priv *pmlmepriv = &padapter->mlmepriv; @@ -1989,9 +1884,9 @@ void HT_caps_handler(_adapter *padapter, PNDIS_802_11_VARIABLE_IEs pIE) for (i = 0; i < 16; i++) pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate[i] &= pmlmeext->default_supported_mcs_set[i]; - tx_nss = GET_HAL_TX_NSS(padapter); + rx_nss = GET_HAL_RX_NSS(padapter); - switch (tx_nss) { + switch (rx_nss) { case 1: set_mcs_rate_by_mask(pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate, MCS_RATE_1R); break; @@ -2010,7 +1905,7 @@ void HT_caps_handler(_adapter *padapter, PNDIS_802_11_VARIABLE_IEs pIE) set_mcs_rate_by_mask(pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate, MCS_RATE_4R); break; default: - RTW_WARN("rf_type:%d or tx_nss:%u is not expected\n", GET_HAL_RFPATH(padapter), tx_nss); + RTW_WARN("rf_type:%d or rx_nss:%u is not expected\n", GET_HAL_RFPATH(padapter), rx_nss); } if (check_fwstate(pmlmepriv, WIFI_AP_STATE)) { @@ -2331,7 +2226,7 @@ int validate_beacon_len(u8 *pframe, u32 len) return _TRUE; } - +#ifdef CONFIG_CHECK_SPECIFIC_IE_CONTENT u8 support_rate_ranges[] = { IEEE80211_CCK_RATE_1MB, IEEE80211_CCK_RATE_2MB, @@ -2347,6 +2242,7 @@ u8 support_rate_ranges[] = { IEEE80211_OFDM_RATE_36MB, IEEE80211_OFDM_RATE_48MB, IEEE80211_OFDM_RATE_54MB, + IEEE80211_BSS_MEMBERSHIP_SELECTOR_SAE_H2E_ONLY, }; inline bool match_ranges(u16 EID, u32 value) @@ -2402,6 +2298,7 @@ bool rtw_validate_value(u16 EID, u8 *p, u16 len) }; return _TRUE; } +#endif /* CONFIG_CHECK_SPECIFIC_IE_CONTENT */ bool is_hidden_ssid(char *ssid, int len) { @@ -2647,6 +2544,7 @@ int rtw_update_bcn_keys_of_network(struct wlan_network *network) void rtw_dump_bcn_keys(void *sel, struct beacon_keys *recv_beacon) { +#if defined(CONFIG_RTW_DEBUG) || defined(CONFIG_PROC_DEBUG) u8 ssid[IW_ESSID_MAX_SIZE + 1]; _rtw_memcpy(ssid, recv_beacon->ssid, recv_beacon->ssid_len); @@ -2661,6 +2559,18 @@ void rtw_dump_bcn_keys(void *sel, struct beacon_keys *recv_beacon) RTW_PRINT_SEL(sel, "sec = %d, group = 0x%x, pair = 0x%x, akm = 0x%08x\n" , recv_beacon->encryp_protocol, recv_beacon->group_cipher , recv_beacon->pairwise_cipher, recv_beacon->akm); +#endif +} + +void rtw_bcn_key_err_fix(struct beacon_keys *cur, struct beacon_keys *recv) +{ + if ((recv->ch == cur->ch) && (recv->bw == cur->bw) && (recv->bw > CHANNEL_WIDTH_20)) { + if ((recv->offset == HAL_PRIME_CHNL_OFFSET_DONT_CARE) + && (cur->offset != HAL_PRIME_CHNL_OFFSET_DONT_CARE)) { + RTW_DBG("recv_bcn offset = %d is invalid, try to use cur_bcn offset = %d to replace it !\n", recv->offset, cur->offset); + recv->offset = cur->offset; + } + } } bool rtw_bcn_key_compare(struct beacon_keys *cur, struct beacon_keys *recv) @@ -2705,6 +2615,10 @@ int rtw_check_bcn_info(ADAPTER *Adapter, u8 *pframe, u32 packet_len) struct beacon_keys *cur_beacon = &pmlmepriv->cur_beacon_keys; struct beacon_keys recv_beacon; int ret = 0; + u8 ifbmp_m = rtw_mi_get_ap_mesh_ifbmp(Adapter); + u8 ifbmp_s = rtw_mi_get_ld_sta_ifbmp(Adapter); + struct dvobj_priv *dvobj = adapter_to_dvobj(Adapter); + struct mlme_ext_priv *pmlmeext = &Adapter->mlmeextpriv; if (is_client_associated_to_ap(Adapter) == _FALSE) goto exit_success; @@ -2713,7 +2627,7 @@ int rtw_check_bcn_info(ADAPTER *Adapter, u8 *pframe, u32 packet_len) goto exit_success; /* parsing failed => broken IE */ #ifdef DBG_RX_BCN - rtw_debug_bcn(Adapter, pframe, packet_len); + rtw_debug_rx_bcn(Adapter, pframe, packet_len); #endif /* hidden ssid, replace with current beacon ssid directly */ @@ -2722,6 +2636,95 @@ int rtw_check_bcn_info(ADAPTER *Adapter, u8 *pframe, u32 packet_len) recv_beacon.ssid_len = cur_beacon->ssid_len; } + if (check_fwstate(pmlmepriv, WIFI_CSA_UPDATE_BEACON)) { + u8 c_ch, c_bw, c_offset; + bool bw_offset_changed = _FALSE; + struct sta_info *psta = NULL; + + c_ch = pmlmeext->cur_channel; + c_bw = pmlmeext->cur_bwmode; + c_offset = pmlmeext->cur_ch_offset; + + /* + * Case 1 : channel is different + * AP doesn't udpate its beacon. + * Case 2 : channel is same + * AP may not update its beacon yet, so we wait 5 beacon. + * Case 3 : we already wait 5 beacon + * We assume that AP update its beacon. + */ + if (c_ch != recv_beacon.ch) { + goto exit_success; + } else if (c_ch == recv_beacon.ch && + pmlmepriv->bcn_cnts_after_csa < 5) { + pmlmepriv->bcn_cnts_after_csa += 1; + goto exit_success; + } else { + pmlmepriv->bcn_cnts_after_csa = 0; + } + + _rtw_memcpy(cur_beacon, &recv_beacon, sizeof(recv_beacon)); + RTW_INFO("csa : recv_beacon ch/bw/offset = %u,%u,%u\n", + recv_beacon.ch, recv_beacon.bw, recv_beacon.offset); + RTW_INFO("csa : before update our bw/offset, current bw/offset = %u,%u\n", + c_bw, c_offset); + /* rtw_dump_bcn_keys(RTW_DBGDUMP, &recv_beacon); */ + + clr_fwstate(pmlmepriv, WIFI_CSA_UPDATE_BEACON); + _cancel_timer_async(&pmlmeext->csa_timer); + + /* Current bw/offset is different from AP */ + if (c_bw != recv_beacon.bw || c_offset != recv_beacon.offset) { + RTW_INFO("csa : need to sync bw/offset with AP\n"); + bw_offset_changed = _TRUE; + pmlmeext->cur_bwmode = recv_beacon.bw; + pmlmeext->cur_ch_offset = recv_beacon.offset; + } + + if (rtw_adjust_chbw(Adapter, pmlmeext->cur_channel, + &pmlmeext->cur_bwmode, &pmlmeext->cur_ch_offset)) { + RTW_INFO("csa : limit bandwith by sw capability\n"); + bw_offset_changed = _TRUE; + } + + if (bw_offset_changed) { + c_bw = pmlmeext->cur_bwmode; + c_offset = pmlmeext->cur_ch_offset; + + #ifdef CONFIG_AP_MODE + if (ifbmp_m) { + rtw_change_bss_chbw_cmd(dvobj_get_primary_adapter(dvobj), 0 + , ifbmp_m, 0, recv_beacon.ch, REQ_BW_ORI, REQ_OFFSET_NONE); + } else + #endif + { + #ifdef CONFIG_DFS_MASTER + rtw_dfs_rd_en_decision(dvobj_get_primary_adapter(dvobj), MLME_OPCH_SWITCH, 0); + #endif + rtw_set_chbw_cmd(Adapter, c_ch, c_bw, c_offset, 0); + } + RTW_INFO("csa : after update bw/offset, new bw/offset = %u,%u\n", c_bw, c_offset); + } else { + RTW_INFO("csa : our bw/offset is same as AP\n"); + } + +#if defined(CONFIG_IOCTL_CFG80211) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0)) + { + u8 ht_option = 0; +#ifdef CONFIG_80211N_HT + ht_option = pmlmepriv->htpriv.ht_option; +#endif + rtw_cfg80211_ch_switch_notify(Adapter, c_ch, c_bw, c_offset, ht_option, 0); + } +#endif /* defined(CONFIG_IOCTL_CFG80211) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0)) */ + rtw_iqk_cmd(Adapter, 0); + psta = rtw_get_stainfo(&Adapter->stapriv, get_bssid(&Adapter->mlmepriv)); + if (psta) + rtw_dm_ra_mask_wk_cmd(Adapter, (u8 *)psta); + + RTW_INFO("csa : update beacon done, WIFI_CSA_UPDATE_BEACON is clear\n"); + } + #ifdef CONFIG_BCN_CNT_CONFIRM_HDL if (_rtw_memcmp(&recv_beacon, cur_beacon, sizeof(recv_beacon)) == _TRUE) pmlmepriv->new_beacon_cnts = 0; @@ -2756,6 +2759,8 @@ int rtw_check_bcn_info(ADAPTER *Adapter, u8 *pframe, u32 packet_len) RTW_INFO(FUNC_ADPT_FMT" new beacon key:\n", FUNC_ADPT_ARG(Adapter)); rtw_dump_bcn_keys(RTW_DBGDUMP, &recv_beacon); + rtw_bcn_key_err_fix(cur_beacon, &recv_beacon); + if (rtw_bcn_key_compare(cur_beacon, &recv_beacon) == _FALSE) goto exit; @@ -2811,7 +2816,7 @@ void update_beacon_info(_adapter *padapter, u8 *pframe, uint pkt_len, struct sta break; #ifdef CONFIG_TDLS - case _EXT_CAP_IE_: + case WLAN_EID_EXT_CAP: if (check_ap_tdls_prohibited(pIE->data, pIE->Length) == _TRUE) ptdlsinfo->ap_prohibited = _TRUE; if (check_ap_tdls_ch_switching_prohibited(pIE->data, pIE->Length) == _TRUE) @@ -2830,21 +2835,92 @@ void update_beacon_info(_adapter *padapter, u8 *pframe, uint pkt_len, struct sta void process_csa_ie(_adapter *padapter, u8 *ies, uint ies_len) { struct rf_ctl_t *rfctl = adapter_to_rfctl(padapter); - unsigned int i; - PNDIS_802_11_VARIABLE_IEs pIE; - u8 ch = 0; + struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; + struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); + struct mlme_priv *pmlmepriv = &padapter->mlmepriv; + unsigned int i, j, countdown; + PNDIS_802_11_VARIABLE_IEs pIE, sub_pie; + u8 ch = 0, csa_ch_offset = 0, csa_ch_width = 0, csa_ch_freq_seg0 = 0, csa_ch_freq_seg1 = 0, csa_switch_cnt = 0; - /* TODO: compare with scheduling CSA */ - if (rfctl->csa_ch) + /* compare with scheduling CSA to block incoming CSA IE */ + if (rfctl->csa_ch || check_fwstate(pmlmepriv, WIFI_CSA_UPDATE_BEACON)) return; for (i = 0; i + 1 < ies_len;) { pIE = (PNDIS_802_11_VARIABLE_IEs)(ies + i); switch (pIE->ElementID) { - case _CH_SWTICH_ANNOUNCE_: + case WLAN_EID_CHANNEL_SWITCH: ch = *(pIE->data + 1); + csa_switch_cnt = *(pIE->data + 2); break; + case WLAN_EID_SECONDARY_CHANNEL_OFFSET: + csa_ch_offset = *(pIE->data); + break; + case WLAN_EID_WIDE_BANDWIDTH_CHANNEL_SWITCH: + csa_ch_width = *(pIE->data); + csa_ch_freq_seg0 = *(pIE->data+1); + csa_ch_freq_seg1 = *(pIE->data+2); + /* RTW_INFO("bw:%02x center_freq_0:%d center_freq_1:%d, ch=%d\n" + , csa_ch_width, csa_ch_freq_seg0, csa_ch_freq_seg1, ch); */ + break; + case WLAN_EID_CHANNEL_SWITCH_WRAPPER: + for(j=0; j + 1 < pIE->Length;) { + sub_pie = (PNDIS_802_11_VARIABLE_IEs)(ies + i + j + 2); + if(sub_pie->ElementID == WLAN_EID_WIDE_BANDWIDTH_CHANNEL_SWITCH) { + csa_ch_width = *(sub_pie->data); + csa_ch_freq_seg0 = *(sub_pie->data+1); + csa_ch_freq_seg1 = *(sub_pie->data+2); + /* RTW_INFO("2. sub_IE:%02x IE_length:%02x bw:%02x center_freq_0:%d center_freq_1:%d, ch=%d\n" + , sub_pie->ElementID, sub_pie->Length, csa_ch_width, csa_ch_freq_seg0, csa_ch_freq_seg1, ch); */ + } + j += (sub_pie->Length + 2); + } + break; +#ifdef CONFIG_ECSA + case WLAN_EID_ECSA: + rfctl->ecsa_mode = *(pIE->data + 0); + rfctl->ecsa_op_class = *(pIE->data + 1); + ch = *(pIE->data + 2); + csa_switch_cnt = *(pIE->data + 3); + + rtw_get_bw_offset_by_op_class_ch(rfctl->ecsa_op_class, + ch, &csa_ch_width, + &csa_ch_offset); + /* change to ieee offset */ + switch (csa_ch_offset) { + case HAL_PRIME_CHNL_OFFSET_LOWER: + csa_ch_offset = IEEE80211_HT_IE_CHA_SEC_BELOW; + break; + case HAL_PRIME_CHNL_OFFSET_UPPER: + csa_ch_offset = IEEE80211_HT_IE_CHA_SEC_ABOVE; + break; + default: + csa_ch_offset = IEEE80211_HT_IE_CHA_SEC_NONE; + break; + } + + /* change to ieee channel width */ + switch(csa_ch_width) { + case CHANNEL_WIDTH_20: + case CHANNEL_WIDTH_40: + csa_ch_width = 0; + break; + case CHANNEL_WIDTH_80: + case CHANNEL_WIDTH_160: + case CHANNEL_WIDTH_80_80: + csa_ch_width = 1; + break; + default: + csa_ch_width = 0; + break; + } + + RTW_INFO("ECSA: mode=%d, class=%d, ch=%d, cnt=%d\n", + rfctl->ecsa_mode, rfctl->ecsa_op_class, + ch, csa_switch_cnt); + break; +#endif default: break; } @@ -2853,13 +2929,104 @@ void process_csa_ie(_adapter *padapter, u8 *ies, uint ies_len) } if (ch != 0) { + struct dvobj_priv *dvobj = adapter_to_dvobj(padapter); + _adapter *pri_adapter = dvobj_get_primary_adapter(dvobj); + u8 ifbmp_m = rtw_mi_get_ap_mesh_ifbmp(pri_adapter); + rfctl->csa_ch = ch; - if (rtw_set_csa_cmd(padapter) != _SUCCESS) - rfctl->csa_ch = 0; + rfctl->csa_switch_cnt = csa_switch_cnt; + rfctl->csa_ch_offset = csa_ch_offset; + rfctl->csa_ch_width = csa_ch_width; + rfctl->csa_ch_freq_seg0 = csa_ch_freq_seg0; + rfctl->csa_ch_freq_seg1 = csa_ch_freq_seg1; + + #ifdef CONFIG_AP_MODE + if(ifbmp_m) { + rfctl->ap_csa_en = STA_RX_CSA; + rfctl->ap_csa_ch = ch; + rfctl->ap_csa_switch_cnt = csa_switch_cnt; + rtw_set_ap_csa_cmd(pri_adapter); + } + #endif + + countdown = pmlmeinfo->network.Configuration.BeaconPeriod * (csa_switch_cnt+1); /* ms */ + RTW_INFO("csa: set countdown timer to %d ms\n", countdown); + _set_timer(&pri_adapter->mlmeextpriv.csa_timer, countdown); + } } #endif /* CONFIG_DFS */ +#ifdef CONFIG_80211D +bool rtw_iface_accept_country_ie(_adapter *adapter) +{ + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + + if (!(BIT(adapter->iface_id) & rfctl->country_ie_slave_en_ifbmp)) + return 0; + if (!MLME_IS_STA(adapter)) + return 0; + if (!MLME_IS_GC(adapter)) { + if (!(rfctl->country_ie_slave_en_role & COUNTRY_IE_SLAVE_EN_ROLE_STA)) + return 0; + } else { + if (!(rfctl->country_ie_slave_en_role & COUNTRY_IE_SLAVE_EN_ROLE_GC)) + return 0; + } + return 1; +} + +void process_country_ie(_adapter *adapter, u8 *ies, uint ies_len) +{ + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + + if (rfctl->regd_src == REGD_SRC_RTK_PRIV + && !rtw_rfctl_is_disable_sw_channel_plan(rfctl_to_dvobj(rfctl)) + && !rfctl->csa_ch /* don't process country ie when under CSA processing */ + ) { + struct mlme_priv *mlme = &adapter->mlmepriv; + const u8 *ie = NULL; + sint ie_len = 0; + + if (rtw_iface_accept_country_ie(adapter)) { + ie = rtw_get_ie(ies, WLAN_EID_COUNTRY, &ie_len, ies_len); + if (ie) { + if (ie_len < 6) { + ie = NULL; + ie_len = 0; + } else + ie_len += 2; + } + } + + if (!mlme->recv_country_ie && !ie) + return; + if (mlme->recv_country_ie_len == ie_len + && _rtw_memcmp(mlme->recv_country_ie, ie, ie_len) == _TRUE) + return; + + if (!ie) { + rtw_buf_free(&mlme->recv_country_ie, &mlme->recv_country_ie_len); + rtw_apply_recv_country_ie_cmd(adapter, 0, 0, 0, NULL); + } else { + char ori_alpha2[2] = {0, 0}; + + if (mlme->recv_country_ie) + _rtw_memcpy(ori_alpha2, mlme->recv_country_ie + 2, 2); + + rtw_buf_update(&mlme->recv_country_ie, &mlme->recv_country_ie_len, ie, ie_len); + /* for now only country code is used */ + if (_rtw_memcmp(ori_alpha2, mlme->recv_country_ie + 2, 2) == _TRUE) + return; + RTW_INFO(FUNC_ADPT_FMT" country_ie alpha2 changed\n", FUNC_ADPT_ARG(adapter)); + rtw_apply_recv_country_ie_cmd(adapter, 0 + , mlme->cur_beacon_keys.ch > 14 ? BAND_ON_5G : BAND_ON_2_4G + , mlme->cur_beacon_keys.ch, mlme->recv_country_ie); + } + } +} +#endif /* CONFIG_80211D */ + enum eap_type parsing_eapol_packet(_adapter *padapter, u8 *key_payload, struct sta_info *psta, u8 trx_type) { struct security_priv *psecuritypriv = &(padapter->securitypriv); @@ -2938,7 +3105,7 @@ unsigned int is_ap_in_tkip(_adapter *padapter) case _RSN_IE_2_: if (_rtw_memcmp((pIE->data + 8), RSN_TKIP_CIPHER, 4)) return _TRUE; - + break; default: break; } @@ -2975,7 +3142,7 @@ unsigned int should_forbid_n_rate(_adapter *padapter) if ((_rtw_memcmp((pIE->data + 8), RSN_CIPHER_SUITE_CCMP, 4)) || (_rtw_memcmp((pIE->data + 12), RSN_CIPHER_SUITE_CCMP, 4))) return _FALSE; - + break; default: break; } @@ -3273,7 +3440,7 @@ unsigned char check_assoc_AP(u8 *pframe, uint len) i += (pIE->Length + 2); } - RTW_INFO("link to new AP\n"); + RTW_INFO("link to new AP (%s)\n", DRIVERVERSION); return HT_IOT_PEER_UNKNOWN; } @@ -3435,7 +3602,6 @@ void update_capinfo(PADAPTER Adapter, u16 updateCap) void update_wireless_mode(_adapter *padapter) { int ratelen, network_type = 0; - u32 SIFS_Timer; struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); WLAN_BSSID_EX *cur_network = &(pmlmeinfo->network); @@ -3475,22 +3641,8 @@ void update_wireless_mode(_adapter *padapter) #ifndef RTW_HALMAC /* HALMAC IC do not set HW_VAR_RESP_SIFS here */ -#if 0 - if ((pmlmeext->cur_wireless_mode == WIRELESS_11G) || - (pmlmeext->cur_wireless_mode == WIRELESS_11BG)) /* WIRELESS_MODE_G) */ - SIFS_Timer = 0x0a0a;/* CCK */ - else - SIFS_Timer = 0x0e0e;/* pHalData->SifsTime; //OFDM */ + rtw_hal_set_hwreg(padapter, HW_VAR_RESP_SIFS, NULL); #endif - - SIFS_Timer = 0x0a0a0808; /* 0x0808->for CCK, 0x0a0a->for OFDM - * change this value if having IOT issues. */ - - rtw_hal_set_hwreg(padapter, HW_VAR_RESP_SIFS, (u8 *)&SIFS_Timer); -#endif - - rtw_hal_set_hwreg(padapter, HW_VAR_WIRELESS_MODE, (u8 *)&(pmlmeext->cur_wireless_mode)); - if ((pmlmeext->cur_wireless_mode & WIRELESS_11B) #ifdef CONFIG_P2P && (rtw_p2p_chk_state(pwdinfo, P2P_STATE_NONE) @@ -3741,6 +3893,16 @@ void beacon_timing_control(_adapter *padapter) rtw_hal_bcn_related_reg_setting(padapter); } +inline bool _rtw_macid_ctl_chk_cap(_adapter *adapter, u8 cap) +{ + struct dvobj_priv *dvobj = adapter_to_dvobj(adapter); + struct macid_ctl_t *macid_ctl = &dvobj->macid_ctl; + + if (macid_ctl->macid_cap & cap) + return _TRUE; + return _FALSE; +} + void dump_macid_map(void *sel, struct macid_bmp *map, u8 max_num) { RTW_PRINT_SEL(sel, "0x%08x\n", map->m0); @@ -4209,6 +4371,12 @@ inline void rtw_macid_ctl_init_sleep_reg(struct macid_ctl_t *macid_ctl, u16 reg_ macid_ctl->reg_sleep_ctrl = reg_ctrl; macid_ctl->reg_sleep_info = reg_info; } +inline void rtw_macid_ctl_init_drop_reg(struct macid_ctl_t *macid_ctl, u16 reg_ctrl, u16 reg_info) +{ + macid_ctl->reg_drop_ctrl = reg_ctrl; + macid_ctl->reg_drop_info = reg_info; +} + #else inline void rtw_macid_ctl_init_sleep_reg(struct macid_ctl_t *macid_ctl, u16 m0, u16 m1, u16 m2, u16 m3) { @@ -4223,6 +4391,20 @@ inline void rtw_macid_ctl_init_sleep_reg(struct macid_ctl_t *macid_ctl, u16 m0, macid_ctl->reg_sleep_m3 = m3; #endif } + +inline void rtw_macid_ctl_init_drop_reg(struct macid_ctl_t *macid_ctl, u16 m0, u16 m1, u16 m2, u16 m3) +{ + macid_ctl->reg_drop_m0 = m0; +#if (MACID_NUM_SW_LIMIT > 32) + macid_ctl->reg_drop_m1 = m1; +#endif +#if (MACID_NUM_SW_LIMIT > 64) + macid_ctl->reg_drop_m2 = m2; +#endif +#if (MACID_NUM_SW_LIMIT > 96) + macid_ctl->reg_drop_m3 = m3; +#endif +} #endif inline void rtw_macid_ctl_init(struct macid_ctl_t *macid_ctl) @@ -4727,10 +4909,12 @@ void rtw_dump_priv_pattern(_adapter *adapter, u8 idx) void rtw_wow_pattern_sw_dump(_adapter *adapter) { - int i; + int i = 0, total = 0; + struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(adapter); + total = pwrpriv->wowlan_pattern_idx; RTW_INFO("********[RTK priv-patterns]*********\n"); - for (i = 0 ; i < MAX_WKFM_CAM_NUM; i++) + for (i = 0 ; i < total; i++) rtw_dump_priv_pattern(adapter, i); } @@ -4763,6 +4947,269 @@ void rtw_get_sec_iv(PADAPTER padapter, u8 *pcur_dot11txpn, u8 *StaAddr) pcur_dot11txpn[5], pcur_dot11txpn[6], pcur_dot11txpn[7]); } } + +#ifdef CONFIG_WAR_OFFLOAD +#if defined(CONFIG_OFFLOAD_MDNS_V4) || defined(CONFIG_OFFLOAD_MDNS_V6) +void rtw_wow_war_mdns_dump_buf(struct seq_file *m, u8 *title, u8 *buf, u32 len) +{ + u32 i; + + RTW_PRINT_SEL(m, "\t%s (%d)\n\t\t", title, len); + for (i = 1; i <= len; i++) + { + RTW_PRINT_SEL(m, "%2.2x-", *(buf + i - 1)); + if( (i%16 == 0) && (len != i) ) RTW_PRINT_SEL(m, "\n\t\t"); + } + RTW_PRINT_SEL(m, "\n\n"); +} + +void rtw_wow_war_mdns_dump_txt(struct seq_file *m, u8 *title, u8 *buf, u32 len) +{ + u16 idx=1, offset=0; /* offset = the location of L in the Length.Value */ + + RTW_PRINT_SEL(m, "\t%s (%d)\n\t", title, len); + for (; offset < len; idx++) + { + int item_len = buf[offset]; + u8 item_buf[256]={0}; + + _rtw_memcpy(item_buf, (buf + offset + 1), item_len); + RTW_PRINT_SEL(m, "\t[%d] => %s (%d)\n\t", idx, item_buf, item_len); + _rtw_memset(item_buf, 0, sizeof(item_buf)); + offset += (1+item_len); + } + RTW_PRINT_SEL(m, "\n\n"); +} + +bool rtw_wow_war_mdns_parser_pattern(u8 *input, char *target, + u32 *target_len, u32 type) +{ + char *cp = NULL, *end = NULL; + size_t len = 0; + int pos = 0, mask_pos = 0, res = 0; + u8 member[2] = {0}; + + /* reset */ + _rtw_memset(target, '\0', type); + (*target_len) = 0; + + cp = strchr(input, '='); + if (cp) { + *cp = 0; + cp++; + input = cp; + } + + while (1) { + cp = strchr(input, ':'); + + if (cp) { + len = strlen(input) - strlen(cp); + *cp = 0; + cp++; + } else + len = 2; + + { + u8 hex,idx=0, pos_in_unit_as_4bit = 0; + + strncpy(member, input, len); + res = sscanf(member, "%02hhx", &hex); + + target[pos] = hex; + + /* RTW_INFO("==> in; input-member = %s, hex = %x, target[%d] = %x\n", member, hex, target[pos], pos); */ + + for(idx = 0; idx<2;idx++) + { + pos_in_unit_as_4bit = pos*2 + (1-idx); + mask_pos = (pos_in_unit_as_4bit /8); + + if(!IsHexDigit(member[idx])) + { + RTW_ERR("%s:[ERROR] pattern is invalid!!(%c)\n",__func__, member[idx]); + goto error; + } + + /* RTW_INFO("==> in; pos = %d, pos_in_unit_as_4bit = %d, mask-pos = %d \n", pos, pos_in_unit_as_4bit, mask_pos); + RTW_INFO("==> in; hex(0x%02x), member(%c%c) \n", pattern[pos], member[1], member[0]); */ + } + /* RTW_INFO_DUMP("Pattern Mask: ",bit_mask, 6); */ + } + + pos++; + if (!cp) + break; + input = cp; + } + + (*target_len) = pos; + + return _TRUE; +error: + return _FALSE; + +} + +static struct war_mdns_service_info default_sinfo[] = { +/* example of default setting */ + RTW_MDNS_SRV_INFO("_ipp", 4, "_tcp", 4, "local", 5, 0x02, 0x77, 7200, "KM1", 3, 0), + RTW_MDNS_SRV_INFO("_ipps", 5, "_tcp", 4, "local", 5, 0x02, 0x77, 7200, "KM2", 3, 0), + RTW_MDNS_SRV_INFO("_http", 5, "_tcp", 4, "local", 5, 0x00, 0x50, 7200, "KM3", 3, 2), + RTW_MDNS_SRV_INFO("_privet", 7, "_tcp", 4, "local", 5, 0x00, 0x50, 7200, "KM4", 3, 3), + RTW_MDNS_SRV_INFO("_https", 6, "_tcp", 4, "local", 5, 0x01, 0xbb, 7200, "KM5", 3, 2), + RTW_MDNS_SRV_INFO("_uscan", 6, "_tcp", 4, "local", 5, 0x1f, 0x91, 7200, "KM6", 3, 4), + RTW_MDNS_SRV_INFO("_printer", 8, "_tcp", 4, "local", 5, 0x23, 0x8c, 7200, "KM7", 3, 1), + RTW_MDNS_SRV_INFO("_pdl-datastream", 15, "_tcp", 4, "local", 5, 0x23, 0x8c, 7200, "KM8", 3, 1) + +}; + +void rtw_wow_war_mdns_parms_reset(_adapter *adapter, u8 is_set_default) +{ + struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(adapter); + u8 i =0; + u16 offset=0; + u8 default_domain_name[] = "Generic"; + //u8 default_machine_name[] = { 0x0a, 0x5f, 0x75, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x61, 0x6c, 0x04, 0x5f, 0x73, 0x75, 0x62 }; + //u8 default_machine_name_len = 16; + u8 default_machine_name[] = { 0x0a, 0x5f, 0x75, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x61, 0x6c}; /* length : 10 name : _universal */ + u8 default_machine_name_len = 11; + + /* set default txt value*/ + char *default_txt_rsp_0_for_serive[2] = { "_ipp", "_ipps" }; + char *default_txt_rsp_0[25] = { + "txtvers=1", "qtotal=1", "usb_MFG=KONICA MINOLTA", "usb_MDL=C754Series", + "rp=ipp/print","priority=54","tr=Generic 35c-4", "product=DriverName", + "pdl=application/postscript,image/urf,application/octet-stream,image/jpeg", + "adminurl=http://KM00D91C.local./wcd/a_network.xml", + "note=Copy Room", "Transparent=T", "Binary=T", "TBCP=T", + "URF=V1,4,w8,SRGB24,ADOBERGB24-48,DEVW8,DEVRGB24,DEVCMYK32,RS150000000,IS19-20-21,MT1-3,OB1,PQ4,DM1,FN3-14,CP255", + "rfo=ipp/faxout", "Fax=T", "Scan=T", "Duplex=T", "Color=T", "air=none", + "Kind=document,envelope,photo", + "PaperMax=tabloid-A3", "UUID=6c183832-69ba-541b-baf6-6d947c144325", "TLS=1.2" + }; + + char *default_txt_rsp_1_for_serive[2] = { "_printer", "_pdl-datastream" }; + char *default_txt_rsp_1[13] = { + "txtvers=1", "qtotal=1", "usb_MFG=KONICA MINOLTA", "usb_MDL=C754Series", + "rp=print","priority=51","tr=Generic 35c-4", "product=DriverName", + "pdl=application/postscript", "note=Copy Room", "Transparent=T", "Binary=T", "TBCP=F" + }; + + char *default_txt_rsp_2_for_serive[2] = { "_http", "_https" }; + char *default_txt_rsp_2[1] = { + "Path=/" + }; + + char *default_txt_rsp_3_for_serive[1] = { "_privet" }; + char *default_txt_rsp_3[5] = { + "txtvers=1", "url=https://www.google.com/cloudprint", + "type=printer", "cs=not-configured","note=Copy Room" + }; + + char *default_txt_rsp_4_for_serive[1] = { "_uscan" }; + char *default_txt_rsp_4[11] = { + "txtvers=1", "vers=2.5", "adminurl=http://KM00D91C.local./wsd/a_network_airprint.xml", + "representation=http://KM00D91C.local./wcd/DeviceIcon_1283png", + "rs=eSCL", "ty=KONICA MINOLTA bishub C287", "note=japan", + "pdl=image/jpeg,image/tiff,application/pdf", + "UUID=dd5454cc-e196-5711-aa1f-35be49a6ca9f", + "cs=color,grayscale,binary", "is=platen,adf,duplex=T" + }; + + + /* reset ===> */ + + _rtw_memset(pwrpriv->wowlan_war_offload_mdns_domain_name, 0, MAX_MDNS_DOMAIN_NAME_LEN); + _rtw_memset(pwrpriv->wowlan_war_offload_mdns_mnane, 0, sizeof(pwrpriv->wowlan_war_offload_mdns_mnane)); + _rtw_memset(pwrpriv->wowlan_war_offload_mdns_service, 0, sizeof(pwrpriv->wowlan_war_offload_mdns_service)); + _rtw_memset(pwrpriv->wowlan_war_offload_mdns_txt_rsp, 0, sizeof(pwrpriv->wowlan_war_offload_mdns_txt_rsp)); + + pwrpriv->wowlan_war_offload_mdns_domain_name_len = 0; + pwrpriv->wowlan_war_offload_mdns_mnane_num = 0; + pwrpriv->wowlan_war_offload_mdns_service_info_num = 0; + pwrpriv->wowlan_war_offload_mdns_txt_rsp_num = 0; + pwrpriv->wowlan_war_offload_mdns_para_cur_size = 0; + pwrpriv->wowlan_war_offload_mdns_rsp_cur_size = 0; + + /* init ===> */ + + if(is_set_default) + { + // domain_name + pwrpriv->wowlan_war_offload_mdns_domain_name_len = strlen(default_domain_name); + _rtw_memcpy(pwrpriv->wowlan_war_offload_mdns_domain_name, default_domain_name, sizeof(default_domain_name)); + + // machine name + pwrpriv->wowlan_war_offload_mdns_mnane_num = 1; + pwrpriv->wowlan_war_offload_mdns_mnane[0].name_len = default_machine_name_len; + _rtw_memcpy(pwrpriv->wowlan_war_offload_mdns_mnane[0].name, default_machine_name, default_machine_name_len); + + // service info + pwrpriv->wowlan_war_offload_mdns_service_info_num = 8; + _rtw_memcpy(pwrpriv->wowlan_war_offload_mdns_service, default_sinfo, sizeof(default_sinfo)); + + // type txt rsp 0~5 + // 0 + for(offset=0, i=0; i<25; i++) + { + pwrpriv->wowlan_war_offload_mdns_txt_rsp[0].txt[offset++] = strlen(default_txt_rsp_0[i]); + _rtw_memcpy(pwrpriv->wowlan_war_offload_mdns_txt_rsp[0].txt + offset, default_txt_rsp_0[i], strlen(default_txt_rsp_0[i])); + offset += strlen(default_txt_rsp_0[i]); + RTW_INFO("==> default_txt_rsp_0[%d]: [%s](%zu), offset(%d)\n", i, default_txt_rsp_0[i], strlen(default_txt_rsp_0[i]), offset); + } + pwrpriv->wowlan_war_offload_mdns_txt_rsp[0].txt_len = offset; + // RTW_INFO("==> offset = %d\n\n", offset); + + + // 1 + for(offset=0, i=0; i<13; i++) + { + pwrpriv->wowlan_war_offload_mdns_txt_rsp[1].txt[offset++] = strlen(default_txt_rsp_1[i]); + _rtw_memcpy(pwrpriv->wowlan_war_offload_mdns_txt_rsp[1].txt + offset, default_txt_rsp_1[i], strlen(default_txt_rsp_1[i])); + offset += strlen(default_txt_rsp_1[i]); + } + pwrpriv->wowlan_war_offload_mdns_txt_rsp[1].txt_len = offset; + // RTW_INFO("==> offset = %d\n\n", offset); + + // 2 + for(offset=0, i=0; i<1; i++) + { + pwrpriv->wowlan_war_offload_mdns_txt_rsp[2].txt[offset++] = strlen(default_txt_rsp_2[i]); + _rtw_memcpy(pwrpriv->wowlan_war_offload_mdns_txt_rsp[2].txt + offset, default_txt_rsp_2[i], strlen(default_txt_rsp_2[i])); + offset += strlen(default_txt_rsp_2[i]); + } + pwrpriv->wowlan_war_offload_mdns_txt_rsp[2].txt_len = offset; + // RTW_INFO("==> offset = %d\n\n", offset); + + // 3 + for(offset=0, i=0; i<5; i++) + { + pwrpriv->wowlan_war_offload_mdns_txt_rsp[3].txt[offset++] = strlen(default_txt_rsp_3[i]); + _rtw_memcpy(pwrpriv->wowlan_war_offload_mdns_txt_rsp[3].txt + offset, default_txt_rsp_3[i], strlen(default_txt_rsp_3[i])); + offset += strlen(default_txt_rsp_3[i]); + } + pwrpriv->wowlan_war_offload_mdns_txt_rsp[3].txt_len = offset; + // RTW_INFO("==> offset = %d\n\n", offset); + + // 4 + for(offset=0, i=0; i<11; i++) + { + pwrpriv->wowlan_war_offload_mdns_txt_rsp[4].txt[offset++] = strlen(default_txt_rsp_4[i]); + _rtw_memcpy(pwrpriv->wowlan_war_offload_mdns_txt_rsp[4].txt + offset, default_txt_rsp_4[i], strlen(default_txt_rsp_4[i])); + offset += strlen(default_txt_rsp_4[i]); + } + pwrpriv->wowlan_war_offload_mdns_txt_rsp[4].txt_len = offset; + // RTW_INFO("==> offset = %d\n\n", offset); + + /* txt_rsp_num is always as MAX_MDNS_TXT_NUM because the input mechanism(new/append) makes the entities are not in order */ + pwrpriv->wowlan_war_offload_mdns_txt_rsp_num = MAX_MDNS_TXT_NUM; + } +} + + +#endif /* defined(CONFIG_OFFLOAD_MDNS_V4) || defined(CONFIG_OFFLOAD_MDNS_V6) */ +#endif /* CONFIG_WAR_OFFLOAD */ #endif /* CONFIG_WOWLAN */ inline bool _rtw_wow_chk_cap(_adapter *adapter, u8 cap) @@ -4921,6 +5368,8 @@ int rtw_dev_nlo_info_set(struct pno_nlo_info *nlo_info, pno_ssid_t *ssid, RTW_INFO("Error, wpa_supplicant.conf doesn't exist.\n"); RTW_INFO("Error, cipher array using default value.\n"); return 0; + } else { + RTW_INFO("Open wpa_supplicant.conf successfully.\n"); } len = i_size_read(fp->f_path.dentry->d_inode); @@ -4936,7 +5385,11 @@ int rtw_dev_nlo_info_set(struct pno_nlo_info *nlo_info, pno_ssid_t *ssid, source = rtw_zmalloc(2048); if (source != NULL) { + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)) + len = kernel_read(fp, source, len, &pos); + #else len = vfs_read(fp, source, len, &pos); + #endif rtw_parse_cipher_list(nlo_info, source); rtw_mfree(source, 2048); } @@ -4964,6 +5417,7 @@ int rtw_dev_ssid_list_set(struct pno_ssid_list *pno_ssid_list, return 0; } +#ifndef RTW_HALMAC int rtw_dev_scan_info_set(_adapter *padapter, pno_ssid_t *ssid, unsigned char ch, unsigned char ch_offset, unsigned short bw_mode) { @@ -4997,6 +5451,7 @@ int rtw_dev_scan_info_set(_adapter *padapter, pno_ssid_t *ssid, scan_info->orig_bw, scan_info->orig_40_offset); return 0; } +#endif int rtw_dev_pno_set(struct net_device *net, pno_ssid_t *ssid, int num, int pno_time, int pno_repeat, int pno_freq_expo_max) @@ -5021,14 +5476,18 @@ int rtw_dev_pno_set(struct net_device *net, pno_ssid_t *ssid, int num, (pno_nlo_info_t *)rtw_zmalloc(sizeof(pno_nlo_info_t)); pwrctl->pno_ssid_list = (pno_ssid_list_t *)rtw_zmalloc(sizeof(pno_ssid_list_t)); + #ifndef RTW_HALMAC pwrctl->pscan_info = (pno_scan_info_t *)rtw_zmalloc(sizeof(pno_scan_info_t)); + #endif } if (pwrctl->pnlo_info == NULL || + #ifndef RTW_HALMAC pwrctl->pscan_info == NULL || + #endif pwrctl->pno_ssid_list == NULL) { - RTW_INFO("%s, ERROR: alloc nlo_info, ssid_list, scan_info fail\n", __func__); + RTW_INFO("%s, ERROR: alloc memory fail\n", __func__); goto failing; } @@ -5042,9 +5501,11 @@ int rtw_dev_pno_set(struct net_device *net, pno_ssid_t *ssid, int num, /* SSID Info */ ret = rtw_dev_ssid_list_set(pwrctl->pno_ssid_list, ssid, num); + #ifndef RTW_HALMAC /* SCAN Info */ ret = rtw_dev_scan_info_set(padapter, ssid, pmlmeext->cur_channel, pmlmeext->cur_ch_offset, pmlmeext->cur_bwmode); + #endif RTW_INFO("+%s num: %d, pno_time: %d, pno_repeat:%d, pno_freq_expo_max:%d+\n", __func__, num, pno_time, pno_repeat, pno_freq_expo_max); @@ -5060,10 +5521,12 @@ failing: rtw_mfree((u8 *)pwrctl->pno_ssid_list, sizeof(pno_ssid_list_t)); pwrctl->pno_ssid_list = NULL; } + #ifndef RTW_HALMAC if (pwrctl->pscan_info) { rtw_mfree((u8 *)pwrctl->pscan_info, sizeof(pno_scan_info_t)); pwrctl->pscan_info = NULL; } + #endif return -1; } @@ -5090,6 +5553,7 @@ void rtw_dev_pno_debug(struct net_device *net) pwrctl->pnlo_info->ssid_cipher_info[i], pwrctl->pnlo_info->ssid_channel_info[i]); } + #ifndef RTW_HALMAC RTW_INFO("******SCAN_INFO******\n"); RTW_INFO("ch_num: %d\n", pwrctl->pscan_info->channel_num); RTW_INFO("orig_ch: %d\n", pwrctl->pscan_info->orig_ch); @@ -5102,6 +5566,7 @@ void rtw_dev_pno_debug(struct net_device *net) pwrctl->pscan_info->ssid_channel_info[i].tx_power, pwrctl->pscan_info->ssid_channel_info[i].channel); } + #endif RTW_INFO("*****************\n"); } #endif /* CONFIG_PNO_SET_DEBUG */ @@ -5119,3 +5584,391 @@ inline void rtw_collect_bcn_info(_adapter *adapter) /*TODO get offset of bcn's timestamp*/ /*pmlmeext->bcn_timestamp;*/ } + +static u32 rtw_get_vht_bitrate(u8 mcs, u8 bw, u8 nss, u8 sgi) +{ + static const u32 base[4][10] = { + { 6500000, + 13000000, + 19500000, + 26000000, + 39000000, + 52000000, + 58500000, + 65000000, + 78000000, + /* not in the spec, but some devices use this: */ + 86500000, + }, + { 13500000, + 27000000, + 40500000, + 54000000, + 81000000, + 108000000, + 121500000, + 135000000, + 162000000, + 180000000, + }, + { 29300000, + 58500000, + 87800000, + 117000000, + 175500000, + 234000000, + 263300000, + 292500000, + 351000000, + 390000000, + }, + { 58500000, + 117000000, + 175500000, + 234000000, + 351000000, + 468000000, + 526500000, + 585000000, + 702000000, + 780000000, + }, + }; + u32 bitrate; + int bw_idx; + + if (mcs > 9) { + RTW_INFO("Invalid mcs = %d\n", mcs); + return 0; + } + + if (nss > 4 || nss < 1) { + RTW_INFO("Now only support nss = 1, 2, 3, 4\n"); + } + + switch (bw) { + case CHANNEL_WIDTH_160: + bw_idx = 3; + break; + case CHANNEL_WIDTH_80: + bw_idx = 2; + break; + case CHANNEL_WIDTH_40: + bw_idx = 1; + break; + case CHANNEL_WIDTH_20: + bw_idx = 0; + break; + default: + RTW_INFO("bw = %d currently not supported\n", bw); + return 0; + } + + bitrate = base[bw_idx][mcs]; + bitrate *= nss; + + if (sgi) + bitrate = (bitrate / 9) * 10; + + /* do NOT round down here */ + return (bitrate + 50000) / 100000; +} + +static u32 rtw_get_ht_bitrate(u8 mcs, u8 bw, u8 sgi) +{ + int modulation, streams, bitrate; + + /* the formula below does only work for MCS values smaller than 32 */ + if (mcs >= 32) { + RTW_INFO("Invalid mcs = %d\n", mcs); + return 0; + } + + if (bw > 1) { + RTW_INFO("Now HT only support bw = 0(20Mhz), 1(40Mhz)\n"); + return 0; + } + + modulation = mcs & 7; + streams = (mcs >> 3) + 1; + + bitrate = (bw == 1) ? 13500000 : 6500000; + + if (modulation < 4) + bitrate *= (modulation + 1); + else if (modulation == 4) + bitrate *= (modulation + 2); + else + bitrate *= (modulation + 3); + + bitrate *= streams; + + if (sgi) + bitrate = (bitrate / 9) * 10; + + return (bitrate + 50000) / 100000; +} + +/** + * @bw: 0(20Mhz), 1(40Mhz), 2(80Mhz), 3(160Mhz) + * @rate_idx: DESC_RATEXXXX & 0x7f + * @sgi: DESC_RATEXXXX >> 7 + * Returns: bitrate in 100kbps + */ +u32 rtw_desc_rate_to_bitrate(u8 bw, u8 rate_idx, u8 sgi) +{ + u32 bitrate; + + if (rate_idx <= DESC_RATE54M){ + u16 ofdm_rate[12] = {10, 20, 55, 110, + 60, 90, 120, 180, 240, 360, 480, 540}; + + bitrate = ofdm_rate[rate_idx]; + } else if ((DESC_RATEMCS0 <= rate_idx) && + (rate_idx <= DESC_RATEMCS31)) { + u8 mcs = rate_idx - DESC_RATEMCS0; + + bitrate = rtw_get_ht_bitrate(mcs, bw, sgi); + } else if ((DESC_RATEVHTSS1MCS0 <= rate_idx) && + (rate_idx <= DESC_RATEVHTSS4MCS9)) { + u8 mcs = (rate_idx - DESC_RATEVHTSS1MCS0) % 10; + u8 nss = ((rate_idx - DESC_RATEVHTSS1MCS0) / 10) + 1; + + bitrate = rtw_get_vht_bitrate(mcs, bw, nss, sgi); + } else { + /* TODO: 60Ghz */ + bitrate = 1; + } + + return bitrate; +} + +#ifdef CONFIG_RTW_MULTI_AP +u8 rtw_get_ch_utilization(_adapter *adapter) +{ + u16 clm = rtw_phydm_clm_ratio(adapter); + u16 nhm = rtw_phydm_nhm_ratio(adapter); + u16 ch_util; + + ch_util = clm / 3 + (2 * (nhm / 3)); + /* For Multi-AP, scaling 0-100 to 0-255 */ + ch_util = 255 * ch_util / 100; + + return (u8)ch_util; +} + +void rtw_ch_util_rpt(_adapter *adapter) +{ + struct dvobj_priv *dvobj = adapter_to_dvobj(adapter); + _adapter *iface; + int i, j; + u8 i_rpts = 0; + u8 *ch_util; + u8 **bssid; + u8 threshold = GET_PRIMARY_ADAPTER(adapter)->ch_util_threshold; + u8 need_rpt = 0; + + if (threshold == 0) + return; + + ch_util = rtw_zmalloc(sizeof(u8) * dvobj->iface_nums); + if (!ch_util) + goto err_out; + bssid = (u8 **) rtw_zmalloc(sizeof(u8 *) * dvobj->iface_nums); + if (!bssid) + goto err_out1; + for (j = 0; j < dvobj->iface_nums; j++) { + *(bssid + j) = (u8 *) rtw_zmalloc(sizeof(u8) * ETH_ALEN); + if (!(*(bssid + j))) + goto err_out2; + } + + for (i = 0; i < dvobj->iface_nums; i++) { + iface = dvobj->padapters[i]; + if ((iface) && MLME_IS_AP(iface)) { + *(ch_util + i_rpts) = rtw_get_ch_utilization(iface); + _rtw_memcpy(*(bssid + i_rpts), iface->mac_addr, ETH_ALEN); + + if (*(ch_util + i_rpts) > threshold) + need_rpt = 1; + + i_rpts++; + } + } + + if (need_rpt) + rtw_nlrtw_ch_util_rpt(adapter, i_rpts, ch_util, bssid); + + rtw_mfree(ch_util, sizeof(u8) * dvobj->iface_nums); + for (i = 0; i < dvobj->iface_nums; i++) + rtw_mfree(*(bssid + i), ETH_ALEN); + rtw_mfree(bssid, sizeof(u8 *) * dvobj->iface_nums); + + return; + +err_out2: + for (i = 0; i < j; i++) + rtw_mfree(*(bssid + i), sizeof(u8) * ETH_ALEN); + rtw_mfree(bssid, sizeof(sizeof(u8 *) * dvobj->iface_nums)); +err_out1: + rtw_mfree(ch_util, sizeof(u8) * dvobj->iface_nums); +err_out: + RTW_INFO("[%s] rtw_zmalloc fail\n", __func__); +} +#endif + +inline u8 rtw_rx_dbg_monitor_condition_chk( + _adapter *padapter, u8 *ip, u32 port, u8 condition) +{ + struct recv_priv *precvpriv = &(padapter->recvpriv); + u8 need_chk = _FALSE; + + if (precvpriv->ip_statistic.enabled == _FALSE) + goto exit; + + switch (condition) { + case 1: + if (ip && _rtw_memcmp(precvpriv->ip_statistic.ip, ip, 4)) + need_chk = _TRUE; + break; + case 2: + if (precvpriv->ip_statistic.dst_port == port) + need_chk = _TRUE; + break; + default: + break; + } + +exit: + return need_chk; +} + +void rtw_dbg_rx_iperf_udp_data_chk(_adapter *padapter, u8 *pdata) +{ + struct recv_priv *precvpriv = &(padapter->recvpriv); + struct rtw_ip_dbg_cnt_statistic *st = &(precvpriv->ip_statistic); + u8 iperf_start_seq, iperf_seq_offset; + u16 udp_data_len; + u32 cur_iperf_seq, end_boundary = 0xffff; + + /* no application data */ + udp_data_len = __be16_to_cpu(*((u16 *)(pdata + 4))); + if (udp_data_len < 16) + return; + + /* RTW_INFO_DUMP("iperf data : ", pdata, 24); */ + if ((st->iperf_ver & 0x7f) >= 3) { + iperf_seq_offset = 16; + iperf_start_seq = 1 ; + } else { + iperf_seq_offset = 8; + iperf_start_seq = 0 ; + } + + cur_iperf_seq = __be32_to_cpu(*((u32 *)(pdata + iperf_seq_offset))); + if (cur_iperf_seq >= (st->iperf_seq + end_boundary)) { + RTW_INFO("%s : terminate for end/abnormal of iperf pkt\n", __func__); + return; + } + + if (cur_iperf_seq >= (iudp_ip_seq_get(st) + 1)) { + if (cur_iperf_seq > (iudp_ip_seq_get(st) + 1)) + iudp_err_cnt_update(st, cur_iperf_seq); + iudp_ip_seq_set(st, cur_iperf_seq); + } else + iperf_out_of_order_cnt_inc(st, cur_iperf_seq); +} + +void rtw_rx_dbg_monitor_ip_statistic(_adapter *padapter, _pkt *pkt) +{ + struct recv_priv *precvpriv = &(padapter->recvpriv); + u8 *ip_hdr, frag_flag, src_ip[4], frag_drop = _FALSE; + u16 ip_seq, frag_offset, sport = 0 , dport = 0; + u32 i; + + if (pkt->protocol != __constant_htons(ETH_P_IP)) + return; + + /* RTW_INFO_DUMP("ip hdr :", pkt->data, 32); */ + ip_hdr = pkt->data; + if ((GET_IPV4_PROTOCOL(ip_hdr) != 0x6) && + (GET_IPV4_PROTOCOL(ip_hdr) != 0x11)) { + /* filter all non-tcp/udp packets */ + return; + } + + for (i=0; i<=3; i++) + src_ip[i] = *IPV4_SRC(ip_hdr + i); + + if (!rtw_rx_dbg_monitor_condition_chk(padapter, src_ip, 0, 1)) { + /* filter all unmatched-packets by source-ip */ + return; + } + + ip_seq = be16_to_cpu(*((u16 *)(ip_hdr + 4))); + frag_offset = be16_to_cpu(*((u16 *)(ip_hdr + 6))); + frag_flag = frag_offset >> 13; + frag_offset &= 0x1fff; + + /* no-fragments or 1st-fragment */ + if ((frag_flag & BIT(1)) || (frag_offset == 0)) { + sport = GET_UDP_SRC(ip_hdr + 20); + dport = GET_UDP_DST(ip_hdr + 20); + + if (!rtw_rx_dbg_monitor_condition_chk(padapter, NULL, dport, 2)) { + /* filter all unmatched-packets by destination-port */ + return; + } + + /* 1st-fragment */ + if (frag_flag & BIT(0)) { + frag_cnt_inc(&precvpriv->ip_statistic); + if (need_to_chk_iudp_cnt(ip_hdr, &precvpriv->ip_statistic)) { + if (iudp_defrag_done_get(&precvpriv->ip_statistic) == _FALSE) + iudp_err_cnt_inc(&precvpriv->ip_statistic, "last-frag"); + + iudp_defrag_done_set(&precvpriv->ip_statistic, _FALSE); + iudp_ip_seq_chk_set(&precvpriv->ip_statistic, ip_seq); + iudp_frag_offset_chk_set(&precvpriv->ip_statistic, frag_offset); + iudp_max_frag_offset_chk_set(&precvpriv->ip_statistic, frag_offset); + } + } + + ip_cnt_inc(&precvpriv->ip_statistic); + tcp_udp_cnt_inc(ip_hdr, &precvpriv->ip_statistic); + if (need_to_chk_iudp_cnt(ip_hdr, &precvpriv->ip_statistic)) + rtw_dbg_rx_iperf_udp_data_chk(padapter, (ip_hdr + 20)); + + } else if (((frag_flag & BIT(0)) || (frag_flag == 0)) \ + && (frag_offset > 0)) { + /* more-or-last fragment */ + frag_cnt_inc(&precvpriv->ip_statistic); + if (need_to_chk_iudp_cnt(ip_hdr, &precvpriv->ip_statistic)) { + /* fragment-lenth in 8byte-blocks without ip-header */ + iudp_frag_offset_chk_set(&precvpriv->ip_statistic, + (iudp_frag_offset_chk_get(&precvpriv->ip_statistic) + ((pkt->len - 20)/8))); + iudp_max_frag_offset_chk_set(&precvpriv->ip_statistic, + (iudp_max_frag_offset_chk_get(&precvpriv->ip_statistic) + ((1500 - 20)/8))); + + /* more-frag check */ + if (frag_flag & BIT(0)) { + if ((ip_seq == iudp_ip_seq_chk_get(&precvpriv->ip_statistic)) + && (iudp_defrag_done_get(&precvpriv->ip_statistic) == _FALSE) \ + && (frag_offset > iudp_frag_offset_chk_get(&precvpriv->ip_statistic))) { + iudp_defrag_done_set(&precvpriv->ip_statistic, _TRUE); + iudp_err_cnt_inc(&precvpriv->ip_statistic, "more-frag"); + } + } else { + if ((ip_seq == iudp_ip_seq_chk_get(&precvpriv->ip_statistic)) + && (iudp_defrag_done_get(&precvpriv->ip_statistic) == _FALSE)) { + iudp_defrag_done_set(&precvpriv->ip_statistic, _TRUE); + if (frag_offset > iudp_max_frag_offset_chk_get(&precvpriv->ip_statistic)) + iudp_err_cnt_inc(&precvpriv->ip_statistic, "more-frag"); + } + } + } + + tcp_udp_cnt_inc(ip_hdr, &precvpriv->ip_statistic); + } +} + diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_wnm.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_wnm.c new file mode 100755 index 00000000..e46817aa --- /dev/null +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_wnm.c @@ -0,0 +1,1125 @@ +/****************************************************************************** + * + * Copyright(c) 2007 - 2017 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License 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. + * + *****************************************************************************/ + +#include +#include + +#ifndef RTW_WNM_DBG + #define RTW_WNM_DBG 0 +#endif +#if RTW_WNM_DBG + #define RTW_WNM_INFO(fmt, arg...) \ + RTW_INFO(fmt, arg) + #define RTW_WNM_DUMP(str, data, len) \ + RTW_INFO_DUMP(str, data, len) +#else + #define RTW_WNM_INFO(fmt, arg...) do {} while (0) + #define RTW_WNM_DUMP(str, data, len) do {} while (0) +#endif + +#ifdef CONFIG_RTW_WNM + +static u32 wnm_defualt_validity_time = 6000; +static u32 wnm_default_disassoc_time = 5000; +static u32 wnm_disassoc_wait_time = 500; + +/* for wifi test, need more validity time to wait scan done */ +static u32 wnm_ext_validity_time = 4000; + +static void rtw_wmn_btm_cache_update(_adapter *padapter, struct btm_req_hdr *phdr) +{ + struct btm_rpt_cache *pcache = &(padapter->mlmepriv.nb_info.btm_cache); + + pcache->dialog_token = phdr->dialog_token; + pcache->req_mode = phdr->req_mode; + pcache->disassoc_timer = le16_to_cpu(phdr->disassoc_timer); + + if (phdr->validity_interval > 0) + pcache->validity_interval = phdr->validity_interval; + + pcache->term_duration.id = phdr->term_duration.id; + pcache->term_duration.len = phdr->term_duration.len; + pcache->term_duration.tsf = le64_to_cpu(phdr->term_duration.tsf); + pcache->term_duration.duration = le16_to_cpu(phdr->term_duration.duration); + + RTW_WNM_INFO("%s: req_mode(0x%02x), disassoc_timer(0x%04x), " + "validity_interval(0x%02x %s), tsf(0x%llx), duration(0x%02x)\n", + __func__, pcache->req_mode, pcache->disassoc_timer, + pcache->validity_interval, (!phdr->validity_interval)?"default":"", + pcache->term_duration.tsf, + pcache->term_duration.duration); + + if (pcache->validity_interval > 0) { + pcache->validity_time = pcache->validity_interval * 100; + #ifdef CONFIG_RTW_MBO + if (rtw_mbo_wifi_logo_test(padapter)) + pcache->validity_time += wnm_ext_validity_time; + #endif + } + + if (pcache->disassoc_timer > 0) { + pcache->disassoc_time= pcache->disassoc_timer * 100; + #ifdef CONFIG_RTW_MBO + if (rtw_mbo_wifi_logo_test(padapter)) + pcache->disassoc_time += wnm_ext_validity_time; + #endif + } + + pcache->req_stime = rtw_get_current_time(); + + RTW_WNM_INFO("%s: validity_time=%u, disassoc_time=%u\n", + __func__, pcache->validity_time, pcache->disassoc_time); +} + +static u8 rtw_wnm_btm_candidate_validity(struct btm_rpt_cache *pcache, u8 flag) +{ + u8 is_validity =_TRUE; + u32 req_validity_time = rtw_get_passing_time_ms(pcache->req_stime); + + if ((flag & BIT(0)) && (req_validity_time > pcache->validity_time)) + is_validity = _FALSE; + + if ((flag & BIT(1)) && (req_validity_time > pcache->disassoc_time)) + is_validity = _FALSE; + + RTW_WNM_INFO("%s : validity=%u, rtime=%u, vtime=%u. dtime=%u\n", + __func__, is_validity, req_validity_time, + pcache->validity_time, pcache->disassoc_time); + return is_validity; +} + +u8 rtw_wmn_btm_rsp_reason_decision(_adapter *padapter, u8* req_mode) +{ + struct recv_priv *precvpriv = &padapter->recvpriv; + struct mlme_priv *pmlmepriv = &padapter->mlmepriv; + u8 reason = 0; + u8 roam_cur_rssi_threshold; + + if (!rtw_wnm_btm_diff_bss(padapter)) { + /* Reject - No suitable BSS transition candidates */ + RTW_WNM_INFO("tgt_addr:"MAC_FMT"cur_addr:"MAC_FMT"\n", + MAC_ARG(pmlmepriv->nb_info.roam_target_addr), + MAC_ARG(pmlmepriv->cur_network.network.MacAddress)); + reason = 7; + RTW_WNM_INFO("%s : Reject - Different BSS\n", __func__); + goto candidate_remove; + } + +#ifdef CONFIG_RTW_80211R + if (rtw_ft_chk_flags(padapter, RTW_FT_BTM_ROAM)) { + /* Accept */ + reason = 0; + goto under_survey; + } +#endif + + if (((*req_mode) & DISASSOC_IMMINENT) == 0) { + /* Reject - Unspecified reject reason */ + reason = 1; + RTW_WNM_INFO("%s : Reject - DISASSOC_IMMINENT\n", __func__); + goto candidate_remove; + } + + roam_cur_rssi_threshold = (pmlmepriv->LinkDetectInfo.bBusyTraffic) + ? (pmlmepriv->roam_busy_rssi_threshold) + : (pmlmepriv->roam_idle_rssi_threshold); + if (precvpriv->signal_strength_data.avg_val >= roam_cur_rssi_threshold) { + reason = 1; + RTW_WNM_INFO("%s : Reject - under high roam rssi(%u, %u) \n", + __func__, precvpriv->signal_strength_data.avg_val, + roam_cur_rssi_threshold); + goto candidate_remove; + } + +#ifdef CONFIG_RTW_80211R +under_survey: + if (check_fwstate(pmlmepriv, WIFI_UNDER_SURVEY)) { + RTW_WNM_INFO("%s Reject due to _FW_UNDER_SURVEY\n", __func__); + reason = 1; + } +#endif + +candidate_remove: + if (reason !=0) + rtw_wnm_reset_btm_candidate(&pmlmepriv->nb_info); + + return reason; +} + +static u32 rtw_wnm_btm_candidates_offset_get(u8* pframe) +{ + u32 offset = 0; + + if (!pframe) + return 0; + + offset += 7; + + /* BSS Termination Duration check */ + if (wnm_btm_bss_term_inc(pframe)) + offset += 12; + + /* Session Information URL check*/ + if (wnm_btm_ess_disassoc_im(pframe)) { + /*URL length field + URL variable length*/ + offset = 1 + *(pframe + offset); + } + + RTW_WNM_INFO("%s : hdr offset=%u\n", __func__, offset); + return offset; +} + +static void rtw_wnm_btm_req_hdr_parsing(u8* pframe, struct btm_req_hdr *phdr) +{ + u8 *pos; + u32 offset = 0; + + if (!pframe || !phdr) + return; + + _rtw_memset(phdr, 0, sizeof(struct btm_req_hdr)); + phdr->dialog_token = wnm_btm_dialog_token(pframe); + phdr->req_mode = wnm_btm_req_mode(pframe); + phdr->disassoc_timer = wnm_btm_disassoc_timer(pframe); + phdr->validity_interval = wnm_btm_valid_interval(pframe); + if (wnm_btm_bss_term_inc(pframe)) { + pos = wnm_btm_term_duration_offset(pframe); + if (*pos == WNM_BTM_TERM_DUR_SUBEID) { + phdr->term_duration.id = *pos; + phdr->term_duration.len = *(pos + 1); + phdr->term_duration.tsf = *((u64*)(pos + 2)); + phdr->term_duration.duration= *((u16*)(pos + 10)); + } else + RTW_WNM_INFO("%s : invaild BSS Termination Duration content!\n", __func__); + } + + RTW_WNM_INFO("WNM: req_mode(0x%02x), disassoc_timer(0x%04x), validity_interval(0x%02x)\n", + phdr->req_mode, phdr->disassoc_timer, phdr->validity_interval); + if (wnm_btm_bss_term_inc(pframe)) + RTW_WNM_INFO("WNM: tsf(0x%llx), duration(0x%4x)\n", + phdr->term_duration.tsf, phdr->term_duration.duration); +} + +u8 rtw_wnm_btm_reassoc_req(_adapter *padapter) +{ + struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); + struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + struct roam_nb_info *pnb = &(pmlmepriv->nb_info); + u8 breassoc = _FALSE; + + if (_rtw_memcmp(get_my_bssid(&(pmlmeinfo->network)), + pnb->roam_target_addr, ETH_ALEN)) { + RTW_WNM_INFO("%s : bss "MAC_FMT" found in roam_target "MAC_FMT"\n", + __func__, MAC_ARG(get_my_bssid(&(pmlmeinfo->network))), + MAC_ARG(pnb->roam_target_addr)); + + breassoc = _TRUE; + } + + return breassoc; +} + +void rtw_wnm_roam_scan_hdl(void *ctx) +{ + _adapter *padapter = (_adapter *)ctx; + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + struct roam_nb_info *pnb = &(padapter->mlmepriv.nb_info); + + if (rtw_is_scan_deny(padapter)) { + RTW_WNM_INFO("%s: scan_deny! postpone roam\n", __func__); + _set_timer(&pnb->roam_scan_timer, 500); + return; + } + +#ifdef CONFIG_RTW_80211R + if (rtw_ft_chk_flags(padapter, RTW_FT_BTM_ROAM)) { + pmlmepriv->need_to_roam = _TRUE; + rtw_set_to_roam(padapter, padapter->registrypriv.max_roaming_times); + RTW_WNM_INFO("%s : enable roaming\n", __func__); + } + + if (rtw_drv_scan_by_self(padapter, RTW_AUTO_SCAN_REASON_ROAM)) { + pmlmepriv->last_roaming = rtw_get_current_time(); + pmlmepriv->roam_rssi_base = 0; + pmlmepriv->roam_try_cnt = 0; + } +#endif +} + +static void rtw_wnm_roam_scan(_adapter *padapter) +{ + struct roam_nb_info *pnb = &(padapter->mlmepriv.nb_info); + + if (rtw_is_scan_deny(padapter)) { + _cancel_timer_ex(&pnb->roam_scan_timer); + _set_timer(&pnb->roam_scan_timer, 1000); + } else + rtw_wnm_roam_scan_hdl((void *)padapter); +} + +void rtw_wnm_disassoc_chk_hdl(void *ctx) +{ + _adapter *padapter = (_adapter *)ctx; + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + struct roam_nb_info *pnb = &(pmlmepriv->nb_info); + + RTW_WNM_INFO("%s : expired\n", __func__); + if (pnb->disassoc_waiting <= 0 ) { + RTW_WNM_INFO("%s : btm roam is interrupted by disassoc\n", __func__); + return; + } + + pnb->disassoc_waiting = _FALSE; + rtw_wnm_roam_scan(padapter); +} + +u8 rtw_wnm_try_btm_roam_imnt(_adapter *padapter) +{ + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + struct roam_nb_info *pnb = &(pmlmepriv->nb_info); + struct btm_rpt_cache *pcache = &(pnb->btm_cache); + u8 reason = 0, flag = 0; + + if (!rtw_wnm_btm_preference_cap(padapter)) { + RTW_WNM_INFO("%s : no btm candidate can be used!\n", __func__); + return 1; + } + + flag = BIT(0) | BIT(1); + if (!rtw_wnm_btm_candidate_validity(pcache, flag)) + return 1; + +#ifdef CONFIG_RTW_MBO + if (!rtw_mbo_wifi_logo_test(padapter) + && !(pcache->req_mode & DISASSOC_IMMINENT)) { + RTW_WNM_INFO("%s : non-disassoc imminet req\n", __func__); + return 1; + } +#endif + + RTW_WNM_INFO("%s : disassoc_waiting(%d)\n", __func__, pnb->disassoc_waiting); + if (pnb->disassoc_waiting) { + _cancel_timer_ex(&pnb->disassoc_chk_timer); + pnb->disassoc_waiting = _FALSE; + rtw_wnm_roam_scan_hdl((void *)padapter); + } else if (!pnb->disassoc_waiting) + RTW_WNM_INFO("%s : waiting for btm roaming start/finish\n", __func__); + else + reason = 1; + + return reason; +} + +void rtw_wnm_process_btm_req(_adapter *padapter, u8* pframe, u32 frame_len) +{ + struct roam_nb_info *pnb = &(padapter->mlmepriv.nb_info); + struct btm_req_hdr req_hdr; + u8 *ptr, reason; + u32 elem_len, offset; + + rtw_wnm_btm_req_hdr_parsing(pframe, &req_hdr); + offset = rtw_wnm_btm_candidates_offset_get(pframe); + if (offset == 0) + return; + + if ((frame_len - offset) <= 15) { + RTW_INFO("WNM : Reject - no suitable BSS transition candidates!\n"); + rtw_wnm_issue_action(padapter, + RTW_WLAN_ACTION_WNM_BTM_RSP, 7, req_hdr.dialog_token); + return; + } + + rtw_wmn_btm_cache_update(padapter, &req_hdr); + + ptr = (pframe + offset); + elem_len = (frame_len - offset); + rtw_wnm_btm_candidates_survey(padapter, ptr, elem_len, _TRUE); + reason = rtw_wmn_btm_rsp_reason_decision(padapter, &pframe[3]); + +#ifdef CONFIG_RTW_MBO + /* for wifi-test; AP2 could power-off when BTM-req received */ + if ((reason > 0) && (rtw_mbo_wifi_logo_test(padapter))) { + _rtw_memcpy(pnb->roam_target_addr, pnb->nb_rpt[0].bssid, ETH_ALEN); + RTW_WNM_INFO("%s : used report 0 as roam_target_addr(reason=%u)\n", + __func__, reason); + reason = 0; + pnb->preference_en = _TRUE; + pnb->nb_rpt_valid = _FALSE; + } +#endif + + rtw_wnm_issue_action(padapter, + RTW_WLAN_ACTION_WNM_BTM_RSP, reason, req_hdr.dialog_token); + + if (reason == 0) { + pnb->disassoc_waiting = _TRUE; + if (wnm_btm_bss_disassoc_im(pframe)) { + RTW_WNM_INFO("%s : wait AP dissociation\n", __func__); + _set_timer(&pnb->disassoc_chk_timer, wnm_disassoc_wait_time); + } else { + RTW_WNM_INFO("%s : roaming immediately\n", __func__); + _set_timer(&pnb->disassoc_chk_timer, 1); + } + } + +} + +void rtw_wnm_reset_btm_candidate(struct roam_nb_info *pnb) +{ + pnb->preference_en = _FALSE; + _rtw_memset(pnb->roam_target_addr, 0, ETH_ALEN); +} + +void rtw_wnm_reset_btm_cache(_adapter *padapter) +{ + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + struct roam_nb_info *pnb = &(pmlmepriv->nb_info); + struct btm_rpt_cache *pcache = &(pnb->btm_cache); + u8 flag = 0; + + flag |= BIT(0); + if (rtw_wnm_btm_candidate_validity(pcache, flag)) + return; + + rtw_wnm_reset_btm_candidate(pnb); + _rtw_memset(pcache, 0, sizeof(struct btm_rpt_cache)); + pcache->validity_time = wnm_defualt_validity_time; + pcache->disassoc_time= wnm_default_disassoc_time; + _rtw_memset(pmlmepriv->roam_from, 0, ETH_ALEN); + +#ifdef CONFIG_RTW_80211R + if (rtw_ft_chk_flags(padapter, RTW_FT_BTM_ROAM)) { + pmlmepriv->need_to_roam = _FALSE; + rtw_set_to_roam(padapter, 0); + RTW_WNM_INFO("%s : disabled roaming\n", __func__); + } +#endif +} + +void rtw_wnm_reset_btm_state(_adapter *padapter) +{ + struct roam_nb_info *pnb = &(padapter->mlmepriv.nb_info); + + pnb->last_nb_rpt_entries = 0; + pnb->nb_rpt_is_same = _TRUE; + pnb->nb_rpt_valid = _FALSE; + pnb->nb_rpt_ch_list_num = 0; + pnb->disassoc_waiting = -1; + _rtw_memset(&pnb->nb_rpt, 0, sizeof(pnb->nb_rpt)); + _rtw_memset(&pnb->nb_rpt_ch_list, 0, sizeof(pnb->nb_rpt_ch_list)); + rtw_wnm_reset_btm_cache(padapter); +} + +u32 rtw_wnm_btm_rsp_candidates_sz_get( + _adapter *padapter, u8* pframe, u32 frame_len) +{ + u32 num = 0, sz = 0; + u8 status; + u8 *ptr; + + if (!pframe || (frame_len <= 5)) + goto exit; + + status = wnm_btm_rsp_status(pframe); + if (((status != 0) && (status != 6)) || (frame_len < 23)) + goto exit; + + if (status == 0) + num = (frame_len - 5 - ETH_ALEN)/18; + else + num = (frame_len - 5)/18; + sz = sizeof(struct wnm_btm_cant) * num; +exit: + RTW_WNM_INFO("WNM: %u candidates(sz=%u) in BTM rsp\n", num, sz); + return sz; +} + +void rtw_wnm_process_btm_rsp(_adapter *padapter, + u8* pframe, u32 frame_len, struct btm_rsp_hdr *prsp) +{ + prsp->dialog_token = wnm_btm_dialog_token(pframe); + prsp->status = wnm_btm_rsp_status(pframe); + prsp->termination_delay = wnm_btm_rsp_term_delay(pframe); + + if ((pframe == NULL) || (frame_len == 0)) + return; + + prsp->status = *(pframe + 3); + prsp->termination_delay = *(pframe + 4); + + /* no Target BSSID & Candidate in frame */ + if (frame_len <= 5) + return; + + /* accept */ + if ((prsp->status == 0) && (frame_len >= 11)) + _rtw_memcpy(prsp->bssid, (pframe + 5), ETH_ALEN); + + /* STA BSS Transition Candidate List provided, + and at least one NB report exist */ + if (((prsp->status == 0) || (prsp->status == 6)) && (frame_len >= 23)) { + struct wnm_btm_cant cant; + u8 *ptr, *pend; + u32 idx = 0; + + ptr = pframe + 5; + if (prsp->status == 0) + ptr += ETH_ALEN; + + pend = ptr + frame_len; + prsp->candidates_num = 0; + while (ptr < pend) { + if (*ptr != RTW_WLAN_ACTION_WNM_NB_RPT_ELEM) + break; + _rtw_memset(&cant, 0, sizeof(cant)); + cant.nb_rpt.id = *ptr; + cant.nb_rpt.len = *(ptr + 1); + _rtw_memcpy(cant.nb_rpt.bssid, (ptr + 2), ETH_ALEN); + cant.nb_rpt.bss_info = *((u32 *)(ptr + 8)); + cant.nb_rpt.reg_class = *(ptr + 12); + cant.nb_rpt.ch_num = *(ptr + 13); + cant.nb_rpt.phy_type= *(ptr + 14); + + if (*(ptr + 15) == WNM_BTM_CAND_PREF_SUBEID) + cant.preference = *(ptr + 17); + ptr = ptr + cant.nb_rpt.len + 2; + if (prsp->pcandidates) { + prsp->candidates_num++; + _rtw_memcpy((prsp->pcandidates + sizeof(cant) * idx), &cant, sizeof(cant)); + } + + idx++; + RTW_WNM_INFO("WNM: btm rsp candidate bssid("MAC_FMT + ") ,bss_info(0x%04X), reg_class(0x%02X), ch(%d)," + " phy_type(0x%02X), preference(0x%02X)\n", + MAC_ARG(cant.nb_rpt.bssid), cant.nb_rpt.bss_info, + cant.nb_rpt.reg_class, cant.nb_rpt.ch_num, + cant.nb_rpt.phy_type, cant.preference); + if ((prsp->pcandidates) && (prsp->candidates_num > 0)) + RTW_WNM_DUMP("WNM candidates: ", prsp->pcandidates, + (sizeof(struct wnm_btm_cant) * prsp->candidates_num)); + } + } + +} + +void rtw_wnm_hdr_init(_adapter *padapter, + struct xmit_frame *pactionframe, u8 *pmac, + u8 action, u8 **pcontent) +{ + struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); + struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); + struct pkt_attrib *pattrib; + struct rtw_ieee80211_hdr *pwlanhdr; + u16 *pfctrl; + u8 category; + + pattrib = &(pactionframe->attrib); + update_mgntframe_attrib(padapter, pattrib); + _rtw_memset(pactionframe->buf_addr, 0, (WLANHDR_OFFSET + TXDESC_OFFSET)); + + *pcontent = (u8 *)(pactionframe->buf_addr + TXDESC_OFFSET); + pwlanhdr = (struct rtw_ieee80211_hdr *)(*pcontent); + pfctrl = &(pwlanhdr->frame_ctl); + *(pfctrl) = 0; + + _rtw_memcpy(pwlanhdr->addr1, pmac, ETH_ALEN); + _rtw_memcpy(pwlanhdr->addr2, adapter_mac_addr(padapter), ETH_ALEN); + _rtw_memcpy(pwlanhdr->addr3, get_my_bssid(&pmlmeinfo->network), ETH_ALEN); + + SetSeqNum(pwlanhdr, pmlmeext->mgnt_seq); + pmlmeext->mgnt_seq++; + set_frame_sub_type(*pcontent, WIFI_ACTION); + + *pcontent += sizeof(struct rtw_ieee80211_hdr_3addr); + pattrib->pktlen = sizeof(struct rtw_ieee80211_hdr_3addr); + + category = RTW_WLAN_CATEGORY_WNM; + *pcontent = rtw_set_fixed_ie(*pcontent, 1, &(category), &(pattrib->pktlen)); + *pcontent = rtw_set_fixed_ie(*pcontent, 1, &(action), &(pattrib->pktlen)); +} + +void rtw_wnm_build_btm_req_ies(_adapter *padapter, + u8 **pframe, struct pkt_attrib *pattrib, + struct btm_req_hdr *phdr, u8 *purl, u32 url_len, + u8 *pcandidates, u8 candidate_cnt) +{ + int i; + + *pframe = rtw_set_fixed_ie(*pframe, 1, + &phdr->dialog_token, &(pattrib->pktlen)); + *pframe = rtw_set_fixed_ie(*pframe, 1, + &phdr->req_mode, &(pattrib->pktlen)); + *pframe = rtw_set_fixed_ie(*pframe, 2, + (u8 *)&phdr->disassoc_timer, &(pattrib->pktlen)); + *pframe = rtw_set_fixed_ie(*pframe, 1, + &phdr->validity_interval, &(pattrib->pktlen)); + + if (phdr->req_mode & BSS_TERMINATION_INCLUDED) { + *pframe = rtw_set_fixed_ie(*pframe, 1, + &phdr->term_duration.id, &(pattrib->pktlen)); + *pframe = rtw_set_fixed_ie(*pframe, 1, + &phdr->term_duration.len, &(pattrib->pktlen)); + *pframe = rtw_set_fixed_ie(*pframe, 8, + (u8 *)&phdr->term_duration.tsf, &(pattrib->pktlen)); + *pframe = rtw_set_fixed_ie(*pframe, 2, + (u8 *)&phdr->term_duration.duration, &(pattrib->pktlen)); + } + + if ((purl != NULL) && (url_len > 0) && + (phdr->req_mode & ESS_DISASSOC_IMMINENT)) { + *pframe = rtw_set_fixed_ie(*pframe, 1, + (u8 *)&url_len, &(pattrib->pktlen)); + *pframe = rtw_set_fixed_ie(*pframe, + url_len, purl, &(pattrib->pktlen)); + } + + if ((pcandidates != NULL) && (candidate_cnt > 0)) { + for (i=0; inb_rpt); + + *pframe = rtw_set_fixed_ie(*pframe, 1, + &pcandidate->nb_rpt.id, &(pattrib->pktlen)); + *pframe = rtw_set_fixed_ie(*pframe, 1, + &pcandidate->nb_rpt.len, &(pattrib->pktlen)); + *pframe = rtw_set_fixed_ie(*pframe, ETH_ALEN, + pcandidate->nb_rpt.bssid, &(pattrib->pktlen)); + *pframe = rtw_set_fixed_ie(*pframe, 4, + (u8 *)&pcandidate->nb_rpt.bss_info, &(pattrib->pktlen)); + *pframe = rtw_set_fixed_ie(*pframe, 1, + &pcandidate->nb_rpt.reg_class, &(pattrib->pktlen)); + *pframe = rtw_set_fixed_ie(*pframe, 1, + &pcandidate->nb_rpt.ch_num, &(pattrib->pktlen)); + *pframe = rtw_set_fixed_ie(*pframe, 1, + &pcandidate->nb_rpt.phy_type, &(pattrib->pktlen)); + *pframe = rtw_set_ie(*pframe, WNM_BTM_CAND_PREF_SUBEID, 1, + (u8 *)&pcandidate->preference, &(pattrib->pktlen)); + } + } + +} + +void rtw_wnm_issue_btm_req(_adapter *padapter, + u8 *pmac, struct btm_req_hdr *phdr, u8 *purl, u32 url_len, + u8 *pcandidates, u8 candidate_cnt) +{ + struct roam_nb_info *pnb = &(padapter->mlmepriv.nb_info); + struct xmit_priv *pxmitpriv = &(padapter->xmitpriv); + struct xmit_frame *pmgntframe; + struct pkt_attrib *pattrib; + u8 action, *pframe, dialog_token = 0; + + if (!pmac || is_zero_mac_addr(pmac) + || is_broadcast_mac_addr(pmac)) + return ; + + if ((pmgntframe = alloc_mgtxmitframe(pxmitpriv)) == NULL) + return ; + + rtw_wnm_hdr_init(padapter, pmgntframe, pmac, + RTW_WLAN_ACTION_WNM_BTM_REQ, &pframe); + + pattrib = &(pmgntframe->attrib); + rtw_wnm_build_btm_req_ies(padapter, &pframe, pattrib, + phdr, purl, url_len, pcandidates, candidate_cnt); + + if (0) { + u8 *__p = (u8 *)(pmgntframe->buf_addr + TXDESC_OFFSET); + RTW_WNM_DUMP("WNM BTM REQ :", __p, pattrib->pktlen); + } + + pattrib->last_txcmdsz = pattrib->pktlen; + dump_mgntframe(padapter, pmgntframe); + RTW_INFO("WNM: BSS Transition Management Request sent\n"); +} + +void rtw_wnm_issue_action(_adapter *padapter, + u8 action, u8 reason, u8 dialog) +{ + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + struct xmit_priv *pxmitpriv = &(padapter->xmitpriv); + struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); + struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); + struct xmit_frame *pmgntframe; + struct rtw_ieee80211_hdr *pwlanhdr; + struct pkt_attrib *pattrib; + u8 category, termination_delay, *pframe, dialog_token = 0; +#ifdef CONFIG_RTW_MBO + u8 mbo_trans_rej_res = 1; /* Unspecified reason */ + u8 mbo_notif_req_type ; +#endif + u16 *fctrl; + + if ((pmgntframe = alloc_mgtxmitframe(pxmitpriv)) == NULL) + return ; + + pattrib = &(pmgntframe->attrib); + update_mgntframe_attrib(padapter, pattrib); + _rtw_memset(pmgntframe->buf_addr, 0, (WLANHDR_OFFSET + TXDESC_OFFSET)); + + pframe = (u8 *)(pmgntframe->buf_addr + TXDESC_OFFSET); + pwlanhdr = (struct rtw_ieee80211_hdr *)pframe; + + fctrl = &(pwlanhdr->frame_ctl); + *(fctrl) = 0; + + _rtw_memcpy(pwlanhdr->addr1, get_my_bssid(&pmlmeinfo->network), ETH_ALEN); + _rtw_memcpy(pwlanhdr->addr2, adapter_mac_addr(padapter), ETH_ALEN); + _rtw_memcpy(pwlanhdr->addr3, get_my_bssid(&pmlmeinfo->network), ETH_ALEN); + + SetSeqNum(pwlanhdr, pmlmeext->mgnt_seq); + pmlmeext->mgnt_seq++; + set_frame_sub_type(pframe, WIFI_ACTION); + + pframe += sizeof(struct rtw_ieee80211_hdr_3addr); + pattrib->pktlen = sizeof(struct rtw_ieee80211_hdr_3addr); + + category = RTW_WLAN_CATEGORY_WNM; + pframe = rtw_set_fixed_ie(pframe, 1, &(category), &(pattrib->pktlen)); + pframe = rtw_set_fixed_ie(pframe, 1, &(action), &(pattrib->pktlen)); + + switch (action) { + case RTW_WLAN_ACTION_WNM_BTM_QUERY: + dialog_token++; + pframe = rtw_set_fixed_ie(pframe, 1, &(dialog_token), &(pattrib->pktlen)); + pframe = rtw_set_fixed_ie(pframe, 1, &(reason), &(pattrib->pktlen)); + RTW_INFO("WNM: BSS Transition Management Query sent\n"); + break; + case RTW_WLAN_ACTION_WNM_BTM_RSP: + dialog_token = dialog; + termination_delay = 0; + pframe = rtw_set_fixed_ie(pframe, 1, &(dialog_token), &(pattrib->pktlen)); + pframe = rtw_set_fixed_ie(pframe, 1, &(reason), &(pattrib->pktlen)); + pframe = rtw_set_fixed_ie(pframe, 1, &(termination_delay), &(pattrib->pktlen)); + if (!reason && !is_zero_mac_addr(pmlmepriv->nb_info.roam_target_addr)) { + pframe = rtw_set_fixed_ie(pframe, 6, + pmlmepriv->nb_info.roam_target_addr, &(pattrib->pktlen)); + } + +#ifdef CONFIG_RTW_MBO + rtw_mbo_build_trans_reject_reason_attr(padapter, + &pframe, pattrib, &mbo_trans_rej_res); +#endif + + RTW_INFO("WNM: BSS Transition Management Response sent(reason:%d)\n", reason); + break; + case RTW_WLAN_ACTION_WNM_NOTIF_REQ: +#ifdef CONFIG_RTW_MBO + dialog_token++; + mbo_notif_req_type = WLAN_EID_VENDOR_SPECIFIC; + pframe = rtw_set_fixed_ie(pframe, 1, &(dialog_token), &(pattrib->pktlen)); + pframe = rtw_set_fixed_ie(pframe, 1, &(mbo_notif_req_type), &(pattrib->pktlen)); + rtw_mbo_build_wnm_notification(padapter, &pframe, pattrib); + RTW_INFO("WNM: Notification request sent\n"); +#endif + break; + default: + goto exit; + } + + pattrib->last_txcmdsz = pattrib->pktlen; + dump_mgntframe(padapter, pmgntframe); + +exit: + return; +} + +/* argument req_ie@cfg80211_roamed()/cfg80211_connect_result() + is association request IEs format. if driver used reassoc-req format, + RSN IE could not be parsed @supplicant process */ +void rtw_wnm_update_reassoc_req_ie(_adapter *padapter) +{ + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + u32 dup_len, offset; + u8 *pdup; + + if (!pmlmepriv->assoc_req || !pmlmepriv->assoc_req_len) + return; + + /* total len is assoc req len without Current AP Field*/ + dup_len = pmlmepriv->assoc_req_len - ETH_ALEN; + + /* offset is a len of 80211 header + capability(2B) + listen interval(2B) */ + offset = sizeof(struct rtw_ieee80211_hdr_3addr) + 4; + + pdup = rtw_zmalloc(dup_len); + if (pdup) { + /* remove Current AP Field @reassoc req IE */ + _rtw_memcpy(pdup, pmlmepriv->assoc_req, offset); + _rtw_memcpy(pdup + offset, pmlmepriv->assoc_req + offset + ETH_ALEN, + pmlmepriv->assoc_req_len - offset); + rtw_buf_update(&pmlmepriv->assoc_req, + &pmlmepriv->assoc_req_len, pdup, dup_len); + rtw_mfree(pdup, dup_len); + } +} +#endif /* CONFIG_RTW_WNM */ + +#if defined(CONFIG_RTW_WNM) || defined(CONFIG_RTW_80211K) +void rtw_roam_nb_info_init(_adapter *padapter) +{ + struct roam_nb_info *pnb = &(padapter->mlmepriv.nb_info); + struct btm_rpt_cache *pcache = &(pnb->btm_cache); + + _rtw_memset(&pnb->nb_rpt, 0, sizeof(pnb->nb_rpt)); + _rtw_memset(&pnb->nb_rpt_ch_list, 0, sizeof(pnb->nb_rpt_ch_list)); + _rtw_memset(&pnb->roam_target_addr, 0, ETH_ALEN); + pnb->nb_rpt_valid = _FALSE; + pnb->nb_rpt_ch_list_num = 0; + pnb->preference_en = _FALSE; + pnb->nb_rpt_is_same = _TRUE; + pnb->last_nb_rpt_entries = 0; + pnb->disassoc_waiting = -1; +#ifdef CONFIG_RTW_WNM + pnb->features = 0; + /* pnb->features |= RTW_WNM_FEATURE_BTM_REQ_EN; */ + +#ifdef CONFIG_PLATFORM_CMAP_INTFS + pnb->features |= RTW_WNM_FEATURE_BTM_REQ_EN; +#endif + + rtw_init_timer(&pnb->roam_scan_timer, + padapter, rtw_wnm_roam_scan_hdl, + padapter); + rtw_init_timer(&pnb->disassoc_chk_timer, + padapter, rtw_wnm_disassoc_chk_hdl, + padapter); + + _rtw_memset(pcache, 0, sizeof(struct btm_rpt_cache)); + pcache->validity_time = wnm_defualt_validity_time; + pcache->disassoc_time= wnm_default_disassoc_time ; +#endif +} + +u8 rtw_roam_nb_scan_list_set( + _adapter *padapter, struct sitesurvey_parm *pparm) +{ + u8 ret = _FALSE; + u32 i; + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + struct roam_nb_info *pnb = &(pmlmepriv->nb_info); + +#ifdef CONFIG_RTW_80211R + if (!rtw_chk_roam_flags(padapter, RTW_ROAM_ACTIVE) + && !rtw_ft_chk_flags(padapter, RTW_FT_BTM_ROAM)) + return ret; +#endif + + if (!pmlmepriv->need_to_roam) + return ret; + + if ((!pmlmepriv->nb_info.nb_rpt_valid) || (!pnb->nb_rpt_ch_list_num)) + return ret; + + if (!pparm) + return ret; +#if 0 + if (rtw_roam_busy_scan(padapter, pnb)) { + pparm->ch_num = 1; + pparm->ch[pmlmepriv->ch_cnt].hw_value = + pnb->nb_rpt_ch_list[pmlmepriv->ch_cnt].hw_value; + pmlmepriv->ch_cnt++; + ret = _TRUE; + + RTW_WNM_INFO("%s: ch_cnt=%u, (%u)hw_value=%u\n", + __func__, pparm->ch_num, pmlmepriv->ch_cnt, + pparm->ch[pmlmepriv->ch_cnt].hw_value); + + if (pmlmepriv->ch_cnt == pnb->nb_rpt_ch_list_num) { + pmlmepriv->nb_info.nb_rpt_valid = _FALSE; + pmlmepriv->ch_cnt = 0; + } + goto set_bssid_list; + } +#endif + pparm->ch_num = (pnb->nb_rpt_ch_list_num > RTW_CHANNEL_SCAN_AMOUNT)? + (RTW_CHANNEL_SCAN_AMOUNT):(pnb->nb_rpt_ch_list_num); + for (i=0; ich_num; i++) { + pparm->ch[i].hw_value = pnb->nb_rpt_ch_list[i].hw_value; + } + + //pmlmepriv->nb_info.nb_rpt_valid = _FALSE; + ret = _TRUE; + +//set_bssid_list: + rtw_set_802_11_bssid_list_scan(padapter, pparm); + return ret; +} + +static u8 rtw_wnm_nb_elem_parsing( + u8* pdata, u32 data_len, u8 from_btm, + u32 *nb_rpt_num, u8 *nb_rpt_is_same, + struct roam_nb_info *pnb, struct wnm_btm_cant *pcandidates) +{ + u8 bfound = _FALSE, ret = _SUCCESS; + u8 *ptr, *pend, *op; + u32 elem_len, subelem_len, op_len; + u32 i, nb_rpt_entries = 0; + struct nb_rpt_hdr *pie; + struct wnm_btm_cant *pcandidate; + + if ((!pdata) || (!pnb)) + return _FAIL; + + if ((from_btm) && (!pcandidates)) + return _FAIL; + + ptr = pdata; + pend = ptr + data_len; + elem_len = data_len; + subelem_len = (u32)*(pdata+1); + + for (i=0; i < RTW_MAX_NB_RPT_NUM; i++) { + if (((ptr + 7) > pend) || (elem_len < subelem_len)) + break; + + if (*ptr != RTW_WLAN_ACTION_WNM_NB_RPT_ELEM) { + RTW_WNM_INFO("WNM: end of data(0x%2x)!\n", *ptr); + break; + } + + pie = (struct nb_rpt_hdr *)ptr; + if (from_btm) { + op = rtw_get_ie((u8 *)(ptr+15), + WNM_BTM_CAND_PREF_SUBEID, + &op_len, (subelem_len - 15)); + } + + ptr = (u8 *)(ptr + subelem_len + 2); + elem_len -= (subelem_len +2); + subelem_len = *(ptr+1); + if (from_btm) { + pcandidate = (pcandidates + i); + _rtw_memcpy(&pcandidate->nb_rpt, pie, sizeof(struct nb_rpt_hdr)); + if (op && (op_len !=0)) { + pcandidate->preference = *(op + 2); + bfound = _TRUE; + } else + pcandidate->preference = 0; + + RTW_WNM_INFO("WNM: preference check bssid("MAC_FMT + ") ,bss_info(0x%04X), reg_class(0x%02X), ch(%d)," + " phy_type(0x%02X), preference(0x%02X)\n", + MAC_ARG(pcandidate->nb_rpt.bssid), pcandidate->nb_rpt.bss_info, + pcandidate->nb_rpt.reg_class, pcandidate->nb_rpt.ch_num, + pcandidate->nb_rpt.phy_type, pcandidate->preference); + } else { + if (_rtw_memcmp(&pnb->nb_rpt[i], pie, sizeof(struct nb_rpt_hdr)) == _FALSE) + *nb_rpt_is_same = _FALSE; + _rtw_memcpy(&pnb->nb_rpt[i], pie, sizeof(struct nb_rpt_hdr)); + } + nb_rpt_entries++; + } + + if (from_btm) + pnb->preference_en = (bfound)?_TRUE:_FALSE; + + *nb_rpt_num = nb_rpt_entries; + return ret; +} + +/* selection sorting based on preference value + * IN : nb_rpt_entries - candidate num + * IN/OUT : pcandidates - candidate list + * return : TRUE - means pcandidates is updated. + */ +static u8 rtw_wnm_candidates_sorting( + u32 nb_rpt_entries, struct wnm_btm_cant *pcandidates) +{ + u8 updated = _FALSE; + u32 i, j, pos; + struct wnm_btm_cant swap; + struct wnm_btm_cant *pcant_1, *pcant_2; + + if ((!nb_rpt_entries) || (!pcandidates)) + return updated; + + for (i=0; i < (nb_rpt_entries - 1); i++) { + pos = i; + for (j=(i + 1); j < nb_rpt_entries; j++) { + pcant_1 = pcandidates+pos; + pcant_2 = pcandidates+j; + if ((pcant_1->preference) < (pcant_2->preference)) + pos = j; + } + + if (pos != i) { + updated = _TRUE; + _rtw_memcpy(&swap, (pcandidates+i), sizeof(struct wnm_btm_cant)); + _rtw_memcpy((pcandidates+i), (pcandidates+pos), sizeof(struct wnm_btm_cant)); + _rtw_memcpy((pcandidates+pos), &swap, sizeof(struct wnm_btm_cant)); + } + } + return updated; +} + +static void rtw_wnm_nb_info_update(_adapter *adapter, + u32 nb_rpt_entries, u8 from_btm, + struct roam_nb_info *pnb, struct wnm_btm_cant *pcandidates, + u8 *nb_rpt_is_same) +{ + u8 is_found; + u32 i, j; + struct wnm_btm_cant *pcand; + WLAN_BSSID_EX bss; + + if (!pnb) + return; + + pnb->nb_rpt_ch_list_num = 0; + for (i=0; inb_rpt[i], &pcand->nb_rpt, + sizeof(struct nb_rpt_hdr)) == _FALSE) + *nb_rpt_is_same = _FALSE; + _rtw_memcpy(&pnb->nb_rpt[i], &pcand->nb_rpt, sizeof(struct nb_rpt_hdr)); + } + + RTW_WNM_INFO("WNM: bssid(" MAC_FMT + ") , bss_info(0x%04X), reg_class(0x%02X), ch_num(%d), phy_type(0x%02X)\n", + MAC_ARG(pnb->nb_rpt[i].bssid), pnb->nb_rpt[i].bss_info, + pnb->nb_rpt[i].reg_class, pnb->nb_rpt[i].ch_num, + pnb->nb_rpt[i].phy_type); + + if (pnb->nb_rpt[i].ch_num == 0) + continue; + + for (j=0; jnb_rpt[i].ch_num == pnb->nb_rpt_ch_list[j].hw_value) { + is_found = _TRUE; + break; + } + } + + if (!is_found) { + pnb->nb_rpt_ch_list[pnb->nb_rpt_ch_list_num].hw_value = pnb->nb_rpt[i].ch_num; + pnb->nb_rpt_ch_list_num++; + } + + bss.Configuration.DSConfig = pnb->nb_rpt[i].ch_num; + rtw_process_beacon_hint(adapter, &bss, RTW_AUTO_SCAN_REASON_ROAM); + } +} + +static void rtw_wnm_btm_candidate_select(_adapter *padapter) +{ + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + struct roam_nb_info *pnb = &(padapter->mlmepriv.nb_info); + struct wlan_network *pnetwork; + u8 bfound = _FALSE; + u8 ignore_currrent = _FALSE; + u32 i; + +#ifdef CONFIG_RTW_80211R + if (rtw_ft_chk_flags(padapter, RTW_FT_BTM_ROAM)) + ignore_currrent = _TRUE; +#endif + + for (i = 0; i < pnb->last_nb_rpt_entries; i++) { + if (ignore_currrent && + (_rtw_memcmp(pnb->nb_rpt[i].bssid,\ + padapter->mlmepriv.cur_network.network.MacAddress, ETH_ALEN))) { + RTW_WNM_INFO("WNM : ignore candidate "MAC_FMT" for it's connected(%u)!\n", + MAC_ARG(pnb->nb_rpt[i].bssid), i); + continue; + } + + pnetwork = rtw_find_network( + &(pmlmepriv->scanned_queue), + pnb->nb_rpt[i].bssid); + + if (pnetwork) { + bfound = _TRUE; + break; + } + } + + if (bfound) { + _rtw_memcpy(pnb->roam_target_addr, pnb->nb_rpt[i].bssid, ETH_ALEN); + RTW_INFO("WNM : select btm entry(%d) - %s("MAC_FMT", ch:%u) rssi:%d\n" + , i + , pnetwork->network.Ssid.Ssid + , MAC_ARG(pnetwork->network.MacAddress) + , pnetwork->network.Configuration.DSConfig + , (int)pnetwork->network.Rssi); + } else { + RTW_INFO("WNM : btm entry isn't in scan queue\n"); + _rtw_memset(pnb->roam_target_addr,0, ETH_ALEN); + } +} + +u32 rtw_wnm_btm_candidates_survey( + _adapter *padapter, u8* pframe, u32 elem_len, u8 from_btm) +{ + struct roam_nb_info *pnb = &(padapter->mlmepriv.nb_info); + struct wnm_btm_cant *pcandidate_list = NULL; + u8 nb_rpt_is_same = _TRUE; + u32 ret = _FAIL; + u32 nb_rpt_entries = 0; + + if (from_btm) { + u32 mlen = sizeof(struct wnm_btm_cant) * RTW_MAX_NB_RPT_NUM; + pcandidate_list = (struct wnm_btm_cant *)rtw_malloc(mlen); + if (pcandidate_list == NULL) + goto exit; + } + + /*clean the status set last time*/ + _rtw_memset(&pnb->nb_rpt_ch_list, 0, sizeof(pnb->nb_rpt_ch_list)); + pnb->nb_rpt_valid = _FALSE; + if (!rtw_wnm_nb_elem_parsing( + pframe, elem_len, from_btm, + &nb_rpt_entries, &nb_rpt_is_same, + pnb, pcandidate_list)) + goto exit; + + if (nb_rpt_entries != 0) { + if ((from_btm) && (rtw_wnm_btm_preference_cap(padapter))) + rtw_wnm_candidates_sorting(nb_rpt_entries, pcandidate_list); + + rtw_wnm_nb_info_update(padapter, + nb_rpt_entries, from_btm, + pnb, pcandidate_list, &nb_rpt_is_same); + } + + RTW_WNM_INFO("nb_rpt_is_same = %d, nb_rpt_entries = %d, last_nb_rpt_entries = %d\n", + nb_rpt_is_same, nb_rpt_entries, pnb->last_nb_rpt_entries); + if ((nb_rpt_is_same == _TRUE) && (nb_rpt_entries == pnb->last_nb_rpt_entries)) + pnb->nb_rpt_is_same = _TRUE; + else { + pnb->nb_rpt_is_same = _FALSE; + pnb->last_nb_rpt_entries = nb_rpt_entries; + } + + if ((from_btm) && (nb_rpt_entries != 0)) + rtw_wnm_btm_candidate_select(padapter); + + pnb->nb_rpt_valid = _TRUE; + ret = _SUCCESS; + +exit: + if (from_btm && pcandidate_list) + rtw_mfree((u8 *)pcandidate_list, sizeof(struct wnm_btm_cant) * RTW_MAX_NB_RPT_NUM); + + return ret; +} + +#endif /*defined(CONFIG_RTW_WNM) || defined(CONFIG_RTW_80211K) */ + diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_xmit.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_xmit.c old mode 100755 new mode 100644 index a26156f0..7bc45e34 --- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_xmit.c +++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_xmit.c @@ -43,6 +43,9 @@ void _rtw_init_sta_xmit_priv(struct sta_xmit_priv *psta_xmitpriv) _init_txservq(&psta_xmitpriv->bk_q); _init_txservq(&psta_xmitpriv->vi_q); _init_txservq(&psta_xmitpriv->vo_q); +#ifdef CONFIG_RTW_MGMT_QUEUE + _init_txservq(&psta_xmitpriv->mgmt_q); +#endif _rtw_init_listhead(&psta_xmitpriv->legacy_dz); _rtw_init_listhead(&psta_xmitpriv->apsd); @@ -92,12 +95,15 @@ s32 _rtw_init_xmit_priv(struct xmit_priv *pxmitpriv, _adapter *padapter) _rtw_init_queue(&pxmitpriv->bk_pending); _rtw_init_queue(&pxmitpriv->vi_pending); _rtw_init_queue(&pxmitpriv->vo_pending); - _rtw_init_queue(&pxmitpriv->bm_pending); + _rtw_init_queue(&pxmitpriv->mgmt_pending); /* _rtw_init_queue(&pxmitpriv->legacy_dz_queue); */ /* _rtw_init_queue(&pxmitpriv->apsd_queue); */ _rtw_init_queue(&pxmitpriv->free_xmit_queue); +#ifdef CONFIG_LAYER2_ROAMING + _rtw_init_queue(&pxmitpriv->rpkt_queue); +#endif /* Please allocate memory with the sz = (struct xmit_frame) * NR_XMITFRAME, @@ -341,7 +347,7 @@ s32 _rtw_init_xmit_priv(struct xmit_priv *pxmitpriv, _adapter *padapter) pxmitpriv->amsdu_debug_coalesce_two = 0; #endif #ifdef DBG_TXBD_DESC_DUMP - pxmitpriv->dump_txbd_desc = 0; + pxmitpriv->dump_txbd_desc = 1; #endif rtw_init_xmit_block(padapter); rtw_hal_init_xmit_priv(padapter); @@ -362,7 +368,7 @@ void rtw_mfree_xmit_priv_lock(struct xmit_priv *pxmitpriv) _rtw_spinlock_free(&pxmitpriv->bk_pending.lock); _rtw_spinlock_free(&pxmitpriv->vi_pending.lock); _rtw_spinlock_free(&pxmitpriv->vo_pending.lock); - _rtw_spinlock_free(&pxmitpriv->bm_pending.lock); + _rtw_spinlock_free(&pxmitpriv->mgmt_pending.lock); /* _rtw_spinlock_free(&pxmitpriv->legacy_dz_queue.lock); */ /* _rtw_spinlock_free(&pxmitpriv->apsd_queue.lock); */ @@ -420,7 +426,9 @@ void _rtw_free_xmit_priv(struct xmit_priv *pxmitpriv) /* free xmit extension buff */ _rtw_spinlock_free(&pxmitpriv->free_xmit_extbuf_queue.lock); - +#ifdef CONFIG_LAYER2_ROAMING + _rtw_spinlock_free(&pxmitpriv->rpkt_queue.lock); +#endif pxmitbuf = (struct xmit_buf *)pxmitpriv->pxmit_extbuf; for (i = 0; i < NR_XMIT_EXTBUFF; i++) { rtw_os_xmit_resource_free(padapter, pxmitbuf, (MAX_XMIT_EXTBUF_SZ + XMITBUF_ALIGN_SZ), _TRUE); @@ -565,7 +573,7 @@ void rtw_get_adapter_tx_rate_bmp(_adapter *adapter, u16 r_bmp_cck_ofdm[], u32 r_ bmp_vht |= tmp_vht; } if (bw == CHANNEL_WIDTH_20) - r_bmp_cck_ofdm[0] = bmp_cck_ofdm; + r_bmp_cck_ofdm[bw] = bmp_cck_ofdm; if (bw <= CHANNEL_WIDTH_40) r_bmp_ht[bw] = bmp_ht; if (bw <= CHANNEL_WIDTH_160) @@ -614,6 +622,7 @@ void rtw_update_tx_rate_bmp(struct dvobj_priv *dvobj) rf_ctl->rate_bmp_vht_by_bw[bw] = bmp_vht; } +#if CONFIG_TXPWR_LIMIT #ifndef DBG_HIGHEST_RATE_BMP_BW_CHANGE #define DBG_HIGHEST_RATE_BMP_BW_CHANGE 0 #endif @@ -676,8 +685,9 @@ void rtw_update_tx_rate_bmp(struct dvobj_priv *dvobj) /* TODO: per rfpath and rate section handling? */ if (update_ht_rs == _TRUE || update_vht_rs == _TRUE) - rtw_hal_set_tx_power_level(dvobj_get_primary_adapter(dvobj), hal_data->current_channel); + rtw_hal_update_txpwr_level(adapter); } +#endif /* CONFIG_TXPWR_LIMIT */ } u8 rtw_get_tx_bw_bmp_of_ht_rate(struct dvobj_priv *dvobj, u8 rate, u8 max_bw) @@ -734,7 +744,7 @@ exit: return bw_bmp; } -s16 rtw_adapter_get_oper_txpwr_max_mbm(_adapter *adapter) +s16 rtw_adapter_get_oper_txpwr_max_mbm(_adapter *adapter, bool eirp) { s16 mbm = -100 * MBM_PDBM; @@ -766,23 +776,22 @@ s16 rtw_adapter_get_oper_txpwr_max_mbm(_adapter *adapter) else if (IS_HT_HRATE(hw_rate)) bmp_ht |= BIT(hw_rate - DESC_RATEMCS0); else if (IS_VHT_HRATE(hw_rate)) - bmp_vht |= BIT(hw_rate - DESC_RATEVHTSS1MCS0); + bmp_vht |= BIT_ULL(hw_rate - DESC_RATEVHTSS1MCS0); mbm = phy_get_txpwr_total_max_mbm(adapter - , bw, cch, ch, bmp_cck_ofdm, bmp_ht, bmp_vht); + , bw, cch, ch, bmp_cck_ofdm, bmp_ht, bmp_vht, 0, eirp); } return mbm; } -s16 rtw_get_oper_txpwr_max_mbm(struct dvobj_priv *dvobj) +s16 rtw_rfctl_get_oper_txpwr_max_mbm(struct rf_ctl_t *rfctl, u8 ch, u8 bw, u8 offset, u8 ifbmp_mod, u8 if_op, bool eirp) { - struct rf_ctl_t *rfctl = dvobj_to_rfctl(dvobj); + struct dvobj_priv *dvobj = rfctl_to_dvobj(rfctl); _adapter *adapter = dvobj_get_primary_adapter(dvobj); s16 mbm = -100 * MBM_PDBM; - u8 ch, bw, offset; - if (rtw_mi_get_ch_setting_union(adapter, &ch, &bw, &offset)) { + if (ch) { u8 cch = rtw_get_center_ch(ch, bw, offset); u16 bmp_cck_ofdm = 0; u32 bmp_ht = 0; @@ -790,17 +799,27 @@ s16 rtw_get_oper_txpwr_max_mbm(struct dvobj_priv *dvobj) int i; for (i = 0; i < dvobj->iface_nums; i++) { - if (dvobj->padapters[i] && MLME_IS_ASOC(dvobj->padapters[i])) { - struct mlme_ext_priv *mlmeext = &(dvobj->padapters[i]->mlmeextpriv); - u8 hw_rate = MRateToHwRate(mlmeext->tx_rate); + struct mlme_ext_priv *mlmeext; + u8 hw_rate; - if (IS_LEGACY_HRATE(hw_rate)) - bmp_cck_ofdm |= BIT(hw_rate); - else if (IS_HT_HRATE(hw_rate)) - bmp_ht |= BIT(hw_rate - DESC_RATEMCS0); - else if (IS_VHT_HRATE(hw_rate)) - bmp_vht |= BIT(hw_rate - DESC_RATEVHTSS1MCS0); - } + if (!dvobj->padapters[i]) + continue; + + if (ifbmp_mod & BIT(i)) { + if (!if_op) + continue; + } else if (!MLME_IS_ASOC(dvobj->padapters[i])) + continue; + + mlmeext = &(dvobj->padapters[i]->mlmeextpriv); + hw_rate = MRateToHwRate(mlmeext->tx_rate); + + if (IS_LEGACY_HRATE(hw_rate)) + bmp_cck_ofdm |= BIT(hw_rate); + else if (IS_HT_HRATE(hw_rate)) + bmp_ht |= BIT(hw_rate - DESC_RATEMCS0); + else if (IS_VHT_HRATE(hw_rate)) + bmp_vht |= BIT_ULL(hw_rate - DESC_RATEVHTSS1MCS0); } bmp_cck_ofdm |= rfctl->rate_bmp_cck_ofdm; @@ -810,12 +829,92 @@ s16 rtw_get_oper_txpwr_max_mbm(struct dvobj_priv *dvobj) bmp_vht |= rfctl->rate_bmp_vht_by_bw[i]; mbm = phy_get_txpwr_total_max_mbm(adapter - , bw, cch, ch, bmp_cck_ofdm, bmp_ht, bmp_vht); + , bw, cch, ch, bmp_cck_ofdm, bmp_ht, bmp_vht, 0, eirp); } return mbm; } +s16 rtw_get_oper_txpwr_max_mbm(struct dvobj_priv *dvobj, bool eirp) +{ + struct rf_ctl_t *rfctl = dvobj_to_rfctl(dvobj); + _adapter *adapter = dvobj_get_primary_adapter(dvobj); + s16 mbm = -100 * MBM_PDBM; + u8 ch = rfctl->op_ch, bw, offset; + + if (rtw_get_bw_offset_by_op_class_ch(rfctl->op_class, ch, &bw, &offset)) + mbm = rtw_rfctl_get_oper_txpwr_max_mbm(rfctl, ch, bw, offset, 0, 0, eirp); + + return mbm; +} + +s16 rtw_rfctl_get_reg_max_txpwr_mbm(struct rf_ctl_t *rfctl, u8 ch, u8 bw, u8 offset, bool eirp) +{ + struct dvobj_priv *dvobj = rfctl_to_dvobj(rfctl); + struct registry_priv *regsty = dvobj_to_regsty(dvobj); + _adapter *adapter = dvobj_get_primary_adapter(dvobj); + s16 mbm = -100 * MBM_PDBM; + u8 cch = rtw_get_center_ch(ch, bw, offset); + u16 bmp_cck_ofdm = 0; + u32 bmp_ht = 0; + u64 bmp_vht = 0; + + if (ch <= 14) + bmp_cck_ofdm |= RATE_BMP_CCK; + + /* TODO: NO OFDM? */ + bmp_cck_ofdm |= RATE_BMP_OFDM; + +#ifdef CONFIG_80211N_HT + if (regsty->ht_enable && is_supported_ht(regsty->wireless_mode)) { + switch (GET_HAL_TX_NSS(adapter)) { + case 1: + bmp_ht |= RATE_BMP_HT_1SS; + break; + case 2: + bmp_ht |= RATE_BMP_HT_2SS | RATE_BMP_HT_1SS; + break; + case 3: + bmp_ht |= RATE_BMP_HT_3SS | RATE_BMP_HT_2SS | RATE_BMP_HT_1SS; + break; + case 4: + bmp_ht |= RATE_BMP_HT_4SS | RATE_BMP_HT_3SS | RATE_BMP_HT_2SS | RATE_BMP_HT_1SS; + break; + default: + rtw_warn_on(1); + } + } +#endif + +#ifdef CONFIG_80211AC_VHT + if (ch > 14 && REGSTY_IS_11AC_ENABLE(regsty) && is_supported_vht(regsty->wireless_mode) + && RFCTL_REG_EN_11AC(rfctl) + ) { + switch (GET_HAL_TX_NSS(adapter)) { + case 1: + bmp_vht |= RATE_BMP_VHT_1SS; + break; + case 2: + bmp_vht |= RATE_BMP_VHT_2SS | RATE_BMP_VHT_1SS; + break; + case 3: + bmp_vht |= RATE_BMP_VHT_3SS | RATE_BMP_VHT_2SS | RATE_BMP_VHT_1SS; + break; + case 4: + bmp_vht |= RATE_BMP_VHT_4SS | RATE_BMP_VHT_3SS | RATE_BMP_VHT_2SS | RATE_BMP_VHT_1SS; + break; + default: + rtw_warn_on(1); + } + } +#endif + + mbm = phy_get_txpwr_total_max_mbm(adapter + , bw, cch, ch, bmp_cck_ofdm, bmp_ht, bmp_vht, 1, eirp); + + return mbm; +} + u8 query_ra_short_GI(struct sta_info *psta, u8 bw) { u8 sgi = _FALSE, sgi_20m = _FALSE, sgi_40m = _FALSE, sgi_80m = _FALSE; @@ -845,14 +944,45 @@ u8 query_ra_short_GI(struct sta_info *psta, u8 bw) return sgi; } +/* This function references driver insmond parameters to decide vcs mode. */ +/* Driver insmond parameters: rtw_vrtl_carrier_sense and rtw_vcs_type */ +static u8 validate_vcs(_adapter *padapter, u8 mode) { + + u8 vcs_mode = NONE_VCS; + + switch(padapter->registrypriv.vrtl_carrier_sense) { + + case DISABLE_VCS: + vcs_mode = NONE_VCS; + break; + + case ENABLE_VCS: + vcs_mode = padapter->registrypriv.vcs_type; + break; + + case AUTO_VCS: + vcs_mode = mode; + break; + + default: + vcs_mode = NONE_VCS; + break; + } + + return vcs_mode; + +} + static void update_attrib_vcs_info(_adapter *padapter, struct xmit_frame *pxmitframe) { u32 sz; struct pkt_attrib *pattrib = &pxmitframe->attrib; - /* struct sta_info *psta = pattrib->psta; */ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); - + #ifdef RTW_FORCE_CTS_TO_SELF_UNDER_LOW_RSSI + s8 rssi = 0; + struct sta_info *psta = pattrib->psta; + #endif /* if(pattrib->psta) { @@ -919,7 +1049,6 @@ static void update_attrib_vcs_info(_adapter *padapter, struct xmit_frame *pxmitf break; } - /* check ERP protection */ if (pattrib->rtsen || pattrib->cts2self) { if (pattrib->rtsen) @@ -957,8 +1086,18 @@ static void update_attrib_vcs_info(_adapter *padapter, struct xmit_frame *pxmitf pattrib->vcs_mode = NONE_VCS; break; } + #ifdef RTW_FORCE_CTS_TO_SELF_UNDER_LOW_RSSI + /*RTStoCTS while let TP degree ,while enable full BW*/ + if (psta != NULL) { + rssi = psta->cmn.rssi_stat.rssi; + if ((rssi < 18) && (pattrib->vcs_mode == RTS_CTS)) + pattrib->vcs_mode = CTS_TO_SELF; + } + #endif } + pattrib->vcs_mode = validate_vcs(padapter, pattrib->vcs_mode); + /* for debug : force driver control vrtl_carrier_sense. */ if (padapter->driver_vcs_en == 1) { /* u8 driver_vcs_en; */ /* Enable=1, Disable=0 driver control vrtl_carrier_sense. */ @@ -1253,11 +1392,11 @@ static s32 update_attrib_sec_info(_adapter *padapter, struct pkt_attrib *pattrib pattrib->bswenc = _FALSE; #endif -exit: - if ((pattrib->encrypt) && (eapol_type == EAPOL_4_4)) pattrib->bswenc = _TRUE; +exit: + return res; } @@ -1370,7 +1509,7 @@ static void set_qos(_pkt *pkt, struct pkt_attrib *pattrib) null_pkt: pattrib->priority = UserPriority; - pattrib->hdrlen = WLAN_HDR_A3_QOS_LEN; + pattrib->hdrlen = XATTRIB_GET_WDS(pattrib) ? WLAN_HDR_A4_QOS_LEN : WLAN_HDR_A3_QOS_LEN; pattrib->subtype = WIFI_QOS_DATA_TYPE; } @@ -1465,7 +1604,8 @@ inline u8 rtw_get_hwseq_no(_adapter *padapter) u8 hwseq_num = 0; #ifdef CONFIG_CONCURRENT_MODE - #if defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8822C) || defined(CONFIG_RTL8814B) + #if defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8822C) || defined(CONFIG_RTL8814B) \ + || defined(CONFIG_RTL8723F) hwseq_num = padapter->iface_id; if (hwseq_num > 3) hwseq_num = 3; @@ -1527,30 +1667,36 @@ static s32 update_attrib(_adapter *padapter, _pkt *pkt, struct pkt_attrib *pattr pattrib->ether_type = ntohs(etherhdr.h_proto); - if (MLME_IS_MESH(padapter)) /* address resolve is done for mesh */ + if (MLME_STATE(padapter) & (WIFI_AP_STATE | WIFI_MESH_STATE)) /* address resolve is done for ap/mesh */ goto get_sta_info; _rtw_memcpy(pattrib->dst, ðerhdr.h_dest, ETH_ALEN); _rtw_memcpy(pattrib->src, ðerhdr.h_source, ETH_ALEN); + _rtw_memcpy(pattrib->ta, adapter_mac_addr(padapter), ETH_ALEN); if ((check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) == _TRUE) || (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) == _TRUE)) { _rtw_memcpy(pattrib->ra, pattrib->dst, ETH_ALEN); - _rtw_memcpy(pattrib->ta, adapter_mac_addr(padapter), ETH_ALEN); DBG_COUNTER(padapter->tx_logs.core_tx_upd_attrib_adhoc); } else if (check_fwstate(pmlmepriv, WIFI_STATION_STATE)) { -#ifdef CONFIG_TDLS + #ifdef CONFIG_TDLS if (rtw_check_tdls_established(padapter, pattrib) == _TRUE) _rtw_memcpy(pattrib->ra, pattrib->dst, ETH_ALEN); /* For TDLS direct link Tx, set ra to be same to dst */ else -#endif + #endif + { _rtw_memcpy(pattrib->ra, get_bssid(pmlmepriv), ETH_ALEN); - _rtw_memcpy(pattrib->ta, adapter_mac_addr(padapter), ETH_ALEN); + #ifdef CONFIG_RTW_WDS + if (adapter_use_wds(padapter) + && _rtw_memcmp(pattrib->src, pattrib->ta, ETH_ALEN) == _FALSE + ) { + pattrib->wds = 1; + if (IS_MCAST(pattrib->dst)) + rtw_tx_wds_gptr_update(padapter, pattrib->src); + } + #endif + } DBG_COUNTER(padapter->tx_logs.core_tx_upd_attrib_sta); - } else if (check_fwstate(pmlmepriv, WIFI_AP_STATE)) { - _rtw_memcpy(pattrib->ra, pattrib->dst, ETH_ALEN); - _rtw_memcpy(pattrib->ta, get_bssid(pmlmepriv), ETH_ALEN); - DBG_COUNTER(padapter->tx_logs.core_tx_upd_attrib_ap); } else DBG_COUNTER(padapter->tx_logs.core_tx_upd_attrib_unknown); @@ -1580,6 +1726,11 @@ get_sta_info: res = _FAIL; goto exit; } + + #ifdef CONFIG_RTW_WDS + if (XATTRIB_GET_WDS(pattrib) && !(psta->flags & WLAN_STA_WDS)) + pattrib->wds = 0; + #endif } if (!(psta->state & WIFI_ASOC_STATE)) { @@ -1677,13 +1828,17 @@ get_sta_info: #endif if ((pattrib->ether_type == 0x888e) || (pattrib->dhcp_pkt == 1)) - rtw_mi_set_scan_deny(padapter, 3000); + rtw_mi_set_scan_deny(padapter, 3000, "eap/dhcp"); if (check_fwstate(pmlmepriv, WIFI_STATION_STATE) && pattrib->ether_type == ETH_P_ARP && !IS_MCAST(pattrib->dst)) { - rtw_mi_set_scan_deny(padapter, 1000); - rtw_mi_scan_abort(padapter, _FALSE); /*rtw_scan_abort_no_wait*/ + if (check_fwstate(pmlmepriv, WIFI_UNDER_SURVEY)) { + rtw_mi_set_scan_deny(padapter, 300, "arp"); + rtw_mi_scan_abort(padapter, _FALSE); /*rtw_scan_abort_no_wait*/ + } else { + rtw_mi_set_scan_deny(padapter, 100, "arp"); + } } #ifdef CONFIG_LPS @@ -1710,7 +1865,7 @@ get_sta_info: /* get ether_hdr_len */ pattrib->pkt_hdrlen = ETH_HLEN;/* (pattrib->ether_type == 0x8100) ? (14 + 4 ): 14; */ /* vlan tag */ - pattrib->hdrlen = WLAN_HDR_A3_LEN; + pattrib->hdrlen = XATTRIB_GET_WDS(pattrib) ? WLAN_HDR_A4_LEN : WLAN_HDR_A3_LEN; pattrib->subtype = WIFI_DATA_TYPE; pattrib->qos_en = psta->qos_option; pattrib->priority = 0; @@ -2002,23 +2157,47 @@ s32 rtw_make_wlanhdr(_adapter *padapter , u8 *hdr, struct pkt_attrib *pattrib) } else #endif /* CONFIG_TDLS */ { - /* to_ds = 1, fr_ds = 0; */ - /* 1.Data transfer to AP */ - /* 2.Arp pkt will relayed by AP */ - SetToDs(fctrl); - _rtw_memcpy(pwlanhdr->addr1, get_bssid(pmlmepriv), ETH_ALEN); - _rtw_memcpy(pwlanhdr->addr2, pattrib->ta, ETH_ALEN); - _rtw_memcpy(pwlanhdr->addr3, pattrib->dst, ETH_ALEN); + #ifdef CONFIG_RTW_WDS + if (pattrib->wds) { + SetToDs(fctrl); + SetFrDs(fctrl); + _rtw_memcpy(pwlanhdr->addr1, pattrib->ra, ETH_ALEN); + _rtw_memcpy(pwlanhdr->addr2, pattrib->ta, ETH_ALEN); + _rtw_memcpy(pwlanhdr->addr3, pattrib->dst, ETH_ALEN); + _rtw_memcpy(pwlanhdr->addr4, pattrib->src, ETH_ALEN); + } else + #endif + { + /* to_ds = 1, fr_ds = 0; */ + /* 1.Data transfer to AP */ + /* 2.Arp pkt will relayed by AP */ + SetToDs(fctrl); + _rtw_memcpy(pwlanhdr->addr1, get_bssid(pmlmepriv), ETH_ALEN); + _rtw_memcpy(pwlanhdr->addr2, pattrib->ta, ETH_ALEN); + _rtw_memcpy(pwlanhdr->addr3, pattrib->dst, ETH_ALEN); + } if (pqospriv->qos_option) qos_option = _TRUE; } } else if ((check_fwstate(pmlmepriv, WIFI_AP_STATE) == _TRUE)) { - /* to_ds = 0, fr_ds = 1; */ - SetFrDs(fctrl); - _rtw_memcpy(pwlanhdr->addr1, pattrib->dst, ETH_ALEN); - _rtw_memcpy(pwlanhdr->addr2, get_bssid(pmlmepriv), ETH_ALEN); - _rtw_memcpy(pwlanhdr->addr3, pattrib->src, ETH_ALEN); + #ifdef CONFIG_RTW_WDS + if (pattrib->wds) { + SetToDs(fctrl); + SetFrDs(fctrl); + _rtw_memcpy(pwlanhdr->addr1, pattrib->ra, ETH_ALEN); + _rtw_memcpy(pwlanhdr->addr2, pattrib->ta, ETH_ALEN); + _rtw_memcpy(pwlanhdr->addr3, pattrib->dst, ETH_ALEN); + _rtw_memcpy(pwlanhdr->addr4, pattrib->src, ETH_ALEN); + } else + #endif + { + /* to_ds = 0, fr_ds = 1; */ + SetFrDs(fctrl); + _rtw_memcpy(pwlanhdr->addr1, pattrib->dst, ETH_ALEN); + _rtw_memcpy(pwlanhdr->addr2, get_bssid(pmlmepriv), ETH_ALEN); + _rtw_memcpy(pwlanhdr->addr3, pattrib->src, ETH_ALEN); + } if (pattrib->qos_en) qos_option = _TRUE; @@ -2157,7 +2336,11 @@ s32 rtw_txframes_pending(_adapter *padapter) return ((_rtw_queue_empty(&pxmitpriv->be_pending) == _FALSE) || (_rtw_queue_empty(&pxmitpriv->bk_pending) == _FALSE) || (_rtw_queue_empty(&pxmitpriv->vi_pending) == _FALSE) || - (_rtw_queue_empty(&pxmitpriv->vo_pending) == _FALSE)); + (_rtw_queue_empty(&pxmitpriv->vo_pending) == _FALSE) +#ifdef CONFIG_RTW_MGMT_QUEUE + || (_rtw_queue_empty(&pxmitpriv->mgmt_pending) == _FALSE) +#endif + ); } s32 rtw_txframes_sta_ac_pending(_adapter *padapter, struct pkt_attrib *pattrib) @@ -3484,7 +3667,7 @@ struct xmit_frame *__rtw_alloc_cmdxmitframe(struct xmit_priv *pxmitpriv, struct xmit_frame *pcmdframe; struct xmit_buf *pxmitbuf; - pcmdframe = rtw_alloc_xmitframe(pxmitpriv); + pcmdframe = rtw_alloc_xmitframe(pxmitpriv, 0); if (pcmdframe == NULL) { RTW_INFO("%s, alloc xmitframe fail\n", __FUNCTION__); return NULL; @@ -3747,7 +3930,7 @@ Otherwise, we must use _enter/_exit critical to protect free_xmit_queue... Must be very very cautious... */ -struct xmit_frame *rtw_alloc_xmitframe(struct xmit_priv *pxmitpriv)/* (_queue *pfree_xmit_queue) */ +struct xmit_frame *rtw_alloc_xmitframe(struct xmit_priv *pxmitpriv, u16 os_qid) { /* Please remember to use all the osdep_service api, @@ -3760,7 +3943,6 @@ struct xmit_frame *rtw_alloc_xmitframe(struct xmit_priv *pxmitpriv)/* (_queue *p _list *plist, *phead; _queue *pfree_xmit_queue = &pxmitpriv->free_xmit_queue; - _enter_critical_bh(&pfree_xmit_queue->lock, &irqL); if (_rtw_queue_empty(pfree_xmit_queue) == _TRUE) { @@ -3774,10 +3956,14 @@ struct xmit_frame *rtw_alloc_xmitframe(struct xmit_priv *pxmitpriv)/* (_queue *p rtw_list_delete(&(pxframe->list)); pxmitpriv->free_xmitframe_cnt--; + pxframe->os_qid = os_qid; } _exit_critical_bh(&pfree_xmit_queue->lock, &irqL); + if (pxframe) + rtw_os_check_stop_queue(pxmitpriv->adapter, os_qid); + rtw_init_xmitframe(pxframe); @@ -3885,6 +4071,9 @@ s32 rtw_free_xmitframe(struct xmit_priv *pxmitpriv, struct xmit_frame *pxmitfram _exit_critical_bh(&queue->lock, &irqL); + if (queue == &pxmitpriv->free_xmit_queue) + rtw_os_check_wakup_queue(padapter, pxmitframe->os_qid); + check_pkt_complete: if (pndis_pkt) @@ -3896,6 +4085,76 @@ exit: return _SUCCESS; } +#ifdef CONFIG_RTW_MGMT_QUEUE +void rtw_free_mgmt_xmitframe_queue(struct xmit_priv *pxmitpriv, _queue *mgmt_queue) +{ + _irqL irqL; + _list *plist, *phead; + struct xmit_frame *pxmitframe; + + _enter_critical_bh(&(mgmt_queue->lock), &irqL); + + phead = get_list_head(mgmt_queue); + plist = get_next(phead); + + while (rtw_end_of_queue_search(phead, plist) == _FALSE) { + + pxmitframe = LIST_CONTAINOR(plist, struct xmit_frame, list); + plist = get_next(plist); + + #ifdef DBG_MGMT_QUEUE + RTW_INFO("%s seq_num = %u\n", __func__, pxmitframe->attrib.seqnum); + #endif + + rtw_free_xmitbuf_ext(pxmitpriv, pxmitframe->pxmitbuf); + rtw_free_xmitframe(pxmitpriv, pxmitframe); + } + _exit_critical_bh(&(mgmt_queue->lock), &irqL); +} + +u8 rtw_mgmt_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe) +{ + struct sta_info *psta; + struct tx_servq *ptxservq; + struct pkt_attrib *pattrib = &(pxmitframe->attrib); + struct xmit_priv *pxmitpriv = &(padapter->xmitpriv); + struct hw_xmit *phwxmits = pxmitpriv->hwxmits; + u8 mgmt_idx = pxmitpriv->hwxmit_entry - 1; + + DBG_COUNTER(padapter->tx_logs.core_tx_enqueue_class); + + psta = rtw_get_stainfo(&padapter->stapriv, pattrib->ra); + if (pattrib->psta != psta) { + DBG_COUNTER(padapter->tx_logs.core_tx_enqueue_class_err_sta); + RTW_INFO("%s, pattrib->psta(%p) != psta(%p)\n", __func__, pattrib->psta, psta); + return _FAIL; + } + + if (psta == NULL) { + DBG_COUNTER(padapter->tx_logs.core_tx_enqueue_class_err_nosta); + RTW_INFO("rtw_xmit_classifier: psta == NULL\n"); + return _FAIL; + } + + if (!(psta->state & WIFI_ASOC_STATE)) { + DBG_COUNTER(padapter->tx_logs.core_tx_enqueue_class_err_fwlink); + RTW_INFO("%s, psta->state(0x%x) != WIFI_ASOC_STATE\n", __func__, psta->state); + return _FAIL; + } + + ptxservq = &(psta->sta_xmitpriv.mgmt_q); + + if (rtw_is_list_empty(&ptxservq->tx_pending)) + rtw_list_insert_tail(&ptxservq->tx_pending, get_list_head(phwxmits[mgmt_idx].sta_queue)); + + rtw_list_insert_tail(&pxmitframe->list, get_list_head(&ptxservq->sta_pending)); + ptxservq->qcnt++; + phwxmits[mgmt_idx].accnt++; + + return _SUCCESS; +} +#endif + void rtw_free_xmitframe_queue(struct xmit_priv *pxmitpriv, _queue *pframequeue) { _irqL irqL; @@ -3995,8 +4254,13 @@ struct xmit_frame *rtw_get_xframe(struct xmit_priv *pxmitpriv, int *num_frame) _irqL irqL0; _list *sta_plist, *sta_phead; struct hw_xmit *phwxmit_i = pxmitpriv->hwxmits; - sint entry = pxmitpriv->hwxmit_entry; - +#ifdef CONFIG_RTW_MGMT_QUEUE + /* This function gets xmit_frame from AC queue. */ + /* When mgmt queue is used, AC queue index is (hwxmit_entry - 1) */ + sint entry = pxmitpriv->hwxmit_entry - 1; +#else + sint entry = pxmitpriv->hwxmit_entry; +#endif struct hw_xmit *phwxmit; struct tx_servq *ptxservq = NULL; _queue *pframe_queue = NULL; @@ -4047,6 +4311,54 @@ exit: return pxmitframe; } +#ifdef CONFIG_RTW_MGMT_QUEUE +struct xmit_frame *rtw_dequeue_mgmt_xframe(struct xmit_priv *pxmitpriv) +{ + _irqL irqL0; + _list *sta_plist, *sta_phead; + struct hw_xmit *mgmt_hwxmit; + struct tx_servq *ptxservq = NULL; + _queue *pframe_queue = NULL; + struct xmit_frame *pxmitframe = NULL; + u8 mgmt_entry = pxmitpriv->hwxmit_entry - 1; + + _enter_critical_bh(&pxmitpriv->lock, &irqL0); + + /* management queue */ + mgmt_hwxmit = (pxmitpriv->hwxmits) + mgmt_entry; + + sta_phead = get_list_head(mgmt_hwxmit->sta_queue); + sta_plist = get_next(sta_phead); + + while ((rtw_end_of_queue_search(sta_phead, sta_plist)) == _FALSE) { + + ptxservq = LIST_CONTAINOR(sta_plist, struct tx_servq, tx_pending); + + pframe_queue = &ptxservq->sta_pending; + + pxmitframe = dequeue_one_xmitframe(pxmitpriv, mgmt_hwxmit, ptxservq, pframe_queue); + + #ifdef DBG_MGMT_QUEUE + RTW_INFO("%s dequeue mgmt frame (seq_num = %u) to TX\n", __func__, pxmitframe->attrib.seqnum); + #endif + + if (pxmitframe) { + mgmt_hwxmit->accnt--; + + /* Remove sta node when there is no pending packets. */ + if (_rtw_queue_empty(pframe_queue)) /* must be done after get_next and before break */ + rtw_list_delete(&ptxservq->tx_pending); + + goto exit; + } + sta_plist = get_next(sta_plist); + } +exit: + _exit_critical_bh(&pxmitpriv->lock, &irqL0); + + return pxmitframe; +} +#endif struct xmit_frame *rtw_dequeue_xframe(struct xmit_priv *pxmitpriv, struct hw_xmit *phwxmit_i, sint entry) { @@ -4057,9 +4369,13 @@ struct xmit_frame *rtw_dequeue_xframe(struct xmit_priv *pxmitpriv, struct hw_xmi _queue *pframe_queue = NULL; struct xmit_frame *pxmitframe = NULL; _adapter *padapter = pxmitpriv->adapter; - struct registry_priv *pregpriv = &padapter->registrypriv; + struct registry_priv *pregpriv = &padapter->registrypriv; int i, inx[4]; - +#ifdef CONFIG_RTW_MGMT_QUEUE + /* This function gets xmit_frame from AC queue. */ + /* When mgmt queue is used, AC queue index is (hwxmit_entry - 1) */ + entry--; +#endif inx[0] = 0; inx[1] = 1; inx[2] = 2; @@ -4126,7 +4442,6 @@ exit: return pxmitframe; } -#if 1 struct tx_servq *rtw_get_sta_pending(_adapter *padapter, struct sta_info *psta, sint up, u8 *ac) { struct tx_servq *ptxservq = NULL; @@ -4163,60 +4478,6 @@ struct tx_servq *rtw_get_sta_pending(_adapter *padapter, struct sta_info *psta, return ptxservq; } -#else -__inline static struct tx_servq *rtw_get_sta_pending -(_adapter *padapter, _queue **ppstapending, struct sta_info *psta, sint up) -{ - struct tx_servq *ptxservq; - struct hw_xmit *phwxmits = padapter->xmitpriv.hwxmits; - - -#ifdef CONFIG_RTL8711 - - if (IS_MCAST(psta->cmn.mac_addr)) { - ptxservq = &(psta->sta_xmitpriv.be_q); /* we will use be_q to queue bc/mc frames in BCMC_stainfo */ - *ppstapending = &padapter->xmitpriv.bm_pending; - } else -#endif - { - switch (up) { - case 1: - case 2: - ptxservq = &(psta->sta_xmitpriv.bk_q); - *ppstapending = &padapter->xmitpriv.bk_pending; - (phwxmits + 3)->accnt++; - break; - - case 4: - case 5: - ptxservq = &(psta->sta_xmitpriv.vi_q); - *ppstapending = &padapter->xmitpriv.vi_pending; - (phwxmits + 1)->accnt++; - break; - - case 6: - case 7: - ptxservq = &(psta->sta_xmitpriv.vo_q); - *ppstapending = &padapter->xmitpriv.vo_pending; - (phwxmits + 0)->accnt++; - break; - - case 0: - case 3: - default: - ptxservq = &(psta->sta_xmitpriv.be_q); - *ppstapending = &padapter->xmitpriv.be_pending; - (phwxmits + 2)->accnt++; - break; - - } - - } - - - return ptxservq; -} -#endif /* * Will enqueue pxmitframe to the proper queue, @@ -4305,49 +4566,27 @@ void rtw_alloc_hwxmits(_adapter *padapter) hwxmits = pxmitpriv->hwxmits; - if (pxmitpriv->hwxmit_entry == 5) { - /* pxmitpriv->bmc_txqueue.head = 0; */ - /* hwxmits[0] .phwtxqueue = &pxmitpriv->bmc_txqueue; */ - hwxmits[0] .sta_queue = &pxmitpriv->bm_pending; + rtw_warn_on(pxmitpriv->hwxmit_entry < 4); - /* pxmitpriv->vo_txqueue.head = 0; */ - /* hwxmits[1] .phwtxqueue = &pxmitpriv->vo_txqueue; */ - hwxmits[1] .sta_queue = &pxmitpriv->vo_pending; + /* pxmitpriv->vo_txqueue.head = 0; */ + /* hwxmits[0] .phwtxqueue = &pxmitpriv->vo_txqueue; */ + hwxmits[0].sta_queue = &pxmitpriv->vo_pending; - /* pxmitpriv->vi_txqueue.head = 0; */ - /* hwxmits[2] .phwtxqueue = &pxmitpriv->vi_txqueue; */ - hwxmits[2] .sta_queue = &pxmitpriv->vi_pending; + /* pxmitpriv->vi_txqueue.head = 0; */ + /* hwxmits[1] .phwtxqueue = &pxmitpriv->vi_txqueue; */ + hwxmits[1].sta_queue = &pxmitpriv->vi_pending; - /* pxmitpriv->bk_txqueue.head = 0; */ - /* hwxmits[3] .phwtxqueue = &pxmitpriv->bk_txqueue; */ - hwxmits[3] .sta_queue = &pxmitpriv->bk_pending; + /* pxmitpriv->be_txqueue.head = 0; */ + /* hwxmits[2] .phwtxqueue = &pxmitpriv->be_txqueue; */ + hwxmits[2].sta_queue = &pxmitpriv->be_pending; - /* pxmitpriv->be_txqueue.head = 0; */ - /* hwxmits[4] .phwtxqueue = &pxmitpriv->be_txqueue; */ - hwxmits[4] .sta_queue = &pxmitpriv->be_pending; - - } else if (pxmitpriv->hwxmit_entry == 4) { - - /* pxmitpriv->vo_txqueue.head = 0; */ - /* hwxmits[0] .phwtxqueue = &pxmitpriv->vo_txqueue; */ - hwxmits[0] .sta_queue = &pxmitpriv->vo_pending; - - /* pxmitpriv->vi_txqueue.head = 0; */ - /* hwxmits[1] .phwtxqueue = &pxmitpriv->vi_txqueue; */ - hwxmits[1] .sta_queue = &pxmitpriv->vi_pending; - - /* pxmitpriv->be_txqueue.head = 0; */ - /* hwxmits[2] .phwtxqueue = &pxmitpriv->be_txqueue; */ - hwxmits[2] .sta_queue = &pxmitpriv->be_pending; - - /* pxmitpriv->bk_txqueue.head = 0; */ - /* hwxmits[3] .phwtxqueue = &pxmitpriv->bk_txqueue; */ - hwxmits[3] .sta_queue = &pxmitpriv->bk_pending; - } else { - - - } + /* pxmitpriv->bk_txqueue.head = 0; */ + /* hwxmits[3] .phwtxqueue = &pxmitpriv->bk_txqueue; */ + hwxmits[3].sta_queue = &pxmitpriv->bk_pending; +#ifdef CONFIG_RTW_MGMT_QUEUE + hwxmits[4].sta_queue = &pxmitpriv->mgmt_pending; +#endif } @@ -4906,26 +5145,35 @@ s32 rtw_xmit_posthandle(_adapter *padapter, struct xmit_frame *pxmitframe, _pkt * 0 success, hardware will handle this xmit frame(packet) * <0 fail */ -s32 rtw_xmit(_adapter *padapter, _pkt **ppkt) +s32 rtw_xmit(_adapter *padapter, _pkt **ppkt, u16 os_qid) { static systime start = 0; static u32 drop_cnt = 0; struct xmit_priv *pxmitpriv = &padapter->xmitpriv; struct xmit_frame *pxmitframe = NULL; s32 res; +#ifdef CONFIG_LAYER2_ROAMING + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + struct sk_buff *skb = (struct sk_buff *)(*ppkt); + _irqL irqL; +#endif DBG_COUNTER(padapter->tx_logs.core_tx); if (IS_CH_WAITING(adapter_to_rfctl(padapter))) return -1; - if (rtw_linked_check(padapter) == _FALSE) + if ((rtw_linked_check(padapter) == _FALSE) +#ifdef CONFIG_LAYER2_ROAMING + &&(!padapter->mlmepriv.roam_buf_pkt) +#endif + ) return -1; if (start == 0) start = rtw_get_current_time(); - pxmitframe = rtw_alloc_xmitframe(pxmitpriv); + pxmitframe = rtw_alloc_xmitframe(pxmitpriv, os_qid); if (rtw_get_passing_time_ms(start) > 2000) { if (drop_cnt) @@ -4942,7 +5190,7 @@ s32 rtw_xmit(_adapter *padapter, _pkt **ppkt) } #ifdef CONFIG_BR_EXT - if (check_fwstate(&padapter->mlmepriv, WIFI_STATION_STATE | WIFI_ADHOC_STATE) == _TRUE) { + if (!adapter_use_wds(padapter) && check_fwstate(&padapter->mlmepriv, WIFI_STATION_STATE | WIFI_ADHOC_STATE) == _TRUE) { void *br_port = NULL; #if (LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 35)) @@ -4963,46 +5211,67 @@ s32 rtw_xmit(_adapter *padapter, _pkt **ppkt) } } #endif /* CONFIG_BR_EXT */ +#ifdef CONFIG_LAYER2_ROAMING + if ((pmlmepriv->roam_buf_pkt) && (skb->protocol != htons(0x888e))) { /* eapol never enqueue.*/ + pxmitframe->pkt = *ppkt; + rtw_list_delete(&pxmitframe->list); + _enter_critical_bh(&pxmitpriv->rpkt_queue.lock, &irqL); + rtw_list_insert_tail(&(pxmitframe->list), get_list_head(&(pxmitpriv->rpkt_queue))); + _exit_critical_bh(&pxmitpriv->rpkt_queue.lock, &irqL); + return 1; + } +#endif -#ifdef CONFIG_RTW_MESH - if (MLME_IS_MESH(padapter)) { - _list b2u_list; +#if defined(CONFIG_AP_MODE) || defined(CONFIG_RTW_MESH) + if (MLME_STATE(padapter) & (WIFI_AP_STATE | WIFI_MESH_STATE)) { + _list f_list; - res = rtw_mesh_addr_resolve(padapter, pxmitframe, *ppkt, &b2u_list); + #ifdef CONFIG_RTW_MESH + if (MLME_IS_MESH(padapter)) + res = rtw_mesh_addr_resolve(padapter, os_qid, pxmitframe, *ppkt, &f_list); + else + #endif + res = rtw_ap_addr_resolve(padapter, os_qid, pxmitframe, *ppkt, &f_list); if (res == RTW_RA_RESOLVING) return 1; if (res == _FAIL) return -1; - #if CONFIG_RTW_MESH_DATA_BMC_TO_UC - if (!rtw_is_list_empty(&b2u_list)) { - _list *list = get_next(&b2u_list); - struct xmit_frame *b2uframe; + #if defined(CONFIG_RTW_WDS) || CONFIG_RTW_DATA_BMC_TO_UC + if (!rtw_is_list_empty(&f_list)) { + _list *list = get_next(&f_list); + struct xmit_frame *fframe; - while ((rtw_end_of_queue_search(&b2u_list, list)) == _FALSE) { - b2uframe = LIST_CONTAINOR(list, struct xmit_frame, list); + while ((rtw_end_of_queue_search(&f_list, list)) == _FALSE) { + fframe = LIST_CONTAINOR(list, struct xmit_frame, list); list = get_next(list); - rtw_list_delete(&b2uframe->list); + rtw_list_delete(&fframe->list); - b2uframe->pkt = rtw_os_pkt_copy(*ppkt); - if (!b2uframe->pkt) { - if (res == RTW_BMC_NO_NEED) + if (res == RTW_ORI_NO_NEED && rtw_is_list_empty(&f_list)) { + fframe->pkt = pxmitframe->pkt; /* last frame */ + pxmitframe->pkt = NULL; + } else { + fframe->pkt = rtw_os_pkt_copy(*ppkt); + } + + if (!fframe->pkt) { + if (res == RTW_ORI_NO_NEED && IS_MCAST(pxmitframe->attrib.dst)) res = _SUCCESS; - rtw_free_xmitframe(pxmitpriv, b2uframe); + rtw_free_xmitframe(pxmitpriv, fframe); continue; } - rtw_xmit_posthandle(padapter, b2uframe, b2uframe->pkt); + rtw_xmit_posthandle(padapter, fframe, fframe->pkt); } } - #endif /* CONFIG_RTW_MESH_DATA_BMC_TO_UC */ + #endif - if (res == RTW_BMC_NO_NEED) { + if (res == RTW_ORI_NO_NEED) { rtw_free_xmitframe(&padapter->xmitpriv, pxmitframe); return 0; } } -#endif /* CONFIG_RTW_MESH */ +#endif /* defined(CONFIG_AP_MODE) || defined(CONFIG_RTW_MESH) */ pxmitframe->pkt = NULL; /* let rtw_xmit_posthandle not to free pkt inside */ res = rtw_xmit_posthandle(padapter, pxmitframe, *ppkt); @@ -5119,6 +5388,96 @@ inline bool xmitframe_hiq_filter(struct xmit_frame *xmitframe) } #if defined(CONFIG_AP_MODE) || defined(CONFIG_TDLS) +#ifdef CONFIG_RTW_MGMT_QUEUE +u8 mgmt_xmitframe_enqueue_for_sleeping_sta(_adapter *padapter, struct xmit_frame *pxmitframe) +{ + _irqL irqL; + struct pkt_attrib *pattrib = &pxmitframe->attrib; + struct sta_info *psta = pattrib->psta; + struct sta_priv *pstapriv = &padapter->stapriv; + bool update_tim = _FALSE; + u8 ret = _TRUE; + + if (is_broadcast_mac_addr(pattrib->ra) || pattrib->ps_dontq) + return _FALSE; + + if (psta == NULL) { + RTW_INFO("%s, psta==NUL don't need enqueue, pattrib->ra:"MAC_FMT"\n", + __func__, MAC_ARG(pattrib->ra)); + return _FALSE; + } + + if (!(psta->state & WIFI_ASOC_STATE)) { + DBG_COUNTER(padapter->tx_logs.core_tx_ap_enqueue_warn_link); + RTW_INFO("%s, psta->state(0x%x) != WIFI_ASOC_STATE\n", __func__, psta->state); + return _FALSE; + } + + _enter_critical_bh(&psta->mgmt_sleep_q.lock, &irqL); + + if (psta->state & WIFI_SLEEP_STATE && + rtw_tim_map_is_set(padapter, pstapriv->sta_dz_bitmap, psta->cmn.aid)) { + + rtw_list_delete(&pxmitframe->list); + rtw_list_insert_tail(&pxmitframe->list, get_list_head(&psta->mgmt_sleep_q)); + psta->mgmt_sleepq_len++; + + #ifdef DBG_MGMT_QUEUE + RTW_INFO("%s attrib->ra:"MAC_FMT" seq_num = %u, subtype = 0x%x\n", + __func__, MAC_ARG(pattrib->ra), pattrib->seqnum, pattrib->subtype); + #endif + + if (!(rtw_tim_map_is_set(padapter, pstapriv->tim_bitmap, psta->cmn.aid))) + update_tim = _TRUE; + + rtw_tim_map_set(padapter, pstapriv->tim_bitmap, psta->cmn.aid); + + /* upate BCN for TIM IE */ + if (update_tim == _TRUE) + _update_beacon(padapter, _TIM_IE_, NULL, _TRUE, 0, "buffer mgmt frame"); + + ret = RTW_QUEUE_MGMT; + DBG_COUNTER(padapter->tx_logs.core_tx_ap_enqueue_ucast); + } + + _exit_critical_bh(&psta->mgmt_sleep_q.lock, &irqL); + + return ret; +} + +static void dequeue_mgmt_xmitframe_to_sleepq(_adapter *padapter, struct sta_info *psta, _queue *pframequeue) +{ + sint ret; + _list *plist, *phead; + struct tx_servq *ptxservq; + struct pkt_attrib *pattrib; + struct xmit_frame *pxmitframe; + struct xmit_priv *pxmitpriv = &(padapter->xmitpriv); + struct hw_xmit *phwxmits = pxmitpriv->hwxmits; + u8 mgmt_idx = pxmitpriv->hwxmit_entry - 1; + + phead = get_list_head(pframequeue); + plist = get_next(phead); + + while (rtw_end_of_queue_search(phead, plist) == _FALSE) { + pxmitframe = LIST_CONTAINOR(plist, struct xmit_frame, list); + plist = get_next(plist); + + pattrib = &pxmitframe->attrib; + pattrib->triggered = 0; + + ret = mgmt_xmitframe_enqueue_for_sleeping_sta(padapter, pxmitframe); + + if (ret == RTW_QUEUE_MGMT) { + ptxservq = &(psta->sta_xmitpriv.mgmt_q); + ptxservq->qcnt--; + phwxmits[mgmt_idx].accnt--; + } else { + /* RTW_INFO("xmitframe_enqueue_for_sleeping_sta return _FALSE\n"); */ + } + } +} +#endif sint xmitframe_enqueue_for_sleeping_sta(_adapter *padapter, struct xmit_frame *pxmitframe) { @@ -5282,7 +5641,7 @@ sint xmitframe_enqueue_for_sleeping_sta(_adapter *padapter, struct xmit_frame *p /* if(psta->sleepq_len > (NR_XMITFRAME>>3)) */ /* { */ - /* wakeup_sta_to_xmit(padapter, psta); */ + /* wakeup_sta_to_xmit(padapter, psta, ALL_FRAME); */ /* } */ ret = _TRUE; @@ -5359,6 +5718,11 @@ void stop_sta_xmit(_adapter *padapter, struct sta_info *psta) #endif /* CONFIG_TDLS */ rtw_tim_map_set(padapter, pstapriv->sta_dz_bitmap, psta->cmn.aid); +#ifdef CONFIG_RTW_MGMT_QUEUE + dequeue_mgmt_xmitframe_to_sleepq(padapter, psta, &pstaxmitpriv->mgmt_q.sta_pending); + rtw_list_delete(&(pstaxmitpriv->mgmt_q.tx_pending)); +#endif + dequeue_xmitframes_to_sleeping_queue(padapter, psta, &pstaxmitpriv->vo_q.sta_pending); rtw_list_delete(&(pstaxmitpriv->vo_q.tx_pending)); dequeue_xmitframes_to_sleeping_queue(padapter, psta, &pstaxmitpriv->vi_q.sta_pending); @@ -5390,7 +5754,13 @@ void stop_sta_xmit(_adapter *padapter, struct sta_info *psta) } -void wakeup_sta_to_xmit(_adapter *padapter, struct sta_info *psta) +/** + * dequeue_type: decide which type of frame be dequeued + * UNI_BMC_DATA: unicast and broadcast/multicast data frame + * UNI_MGMT: unicast management frame + * ALL_FRAME: all frames + */ +void wakeup_sta_to_xmit(_adapter *padapter, struct sta_info *psta, u8 dequeue_type) { _irqL irqL; u8 update_mask = 0, wmmps_ac = 0; @@ -5400,75 +5770,109 @@ void wakeup_sta_to_xmit(_adapter *padapter, struct sta_info *psta) struct sta_priv *pstapriv = &padapter->stapriv; struct xmit_priv *pxmitpriv = &padapter->xmitpriv; - psta_bmc = rtw_get_bcmc_stainfo(padapter); - - /* _enter_critical_bh(&psta->sleep_q.lock, &irqL); */ _enter_critical_bh(&pxmitpriv->lock, &irqL); - xmitframe_phead = get_list_head(&psta->sleep_q); - xmitframe_plist = get_next(xmitframe_phead); +#ifdef CONFIG_RTW_MGMT_QUEUE + if (dequeue_type == UNI_MGMT || dequeue_type == ALL_FRAME) { + /* management queue */ + xmitframe_phead = get_list_head(&psta->mgmt_sleep_q); + xmitframe_plist = get_next(xmitframe_phead); - while ((rtw_end_of_queue_search(xmitframe_phead, xmitframe_plist)) == _FALSE) { - pxmitframe = LIST_CONTAINOR(xmitframe_plist, struct xmit_frame, list); + while ((rtw_end_of_queue_search(xmitframe_phead, xmitframe_plist)) == _FALSE) { + pxmitframe = LIST_CONTAINOR(xmitframe_plist, struct xmit_frame, list); - xmitframe_plist = get_next(xmitframe_plist); + xmitframe_plist = get_next(xmitframe_plist); - rtw_list_delete(&pxmitframe->list); + rtw_list_delete(&pxmitframe->list); - switch (pxmitframe->attrib.priority) { - case 1: - case 2: - wmmps_ac = psta->uapsd_bk & BIT(1); - break; - case 4: - case 5: - wmmps_ac = psta->uapsd_vi & BIT(1); - break; - case 6: - case 7: - wmmps_ac = psta->uapsd_vo & BIT(1); - break; - case 0: - case 3: - default: - wmmps_ac = psta->uapsd_be & BIT(1); - break; - } + #ifdef DBG_MGMT_QUEUE + RTW_INFO("%s seq_num = %u, subtype = 0x%x\n", + __func__, pxmitframe->attrib.seqnum, pxmitframe->attrib.subtype); + #endif - psta->sleepq_len--; - if (psta->sleepq_len > 0) - pxmitframe->attrib.mdata = 1; - else - pxmitframe->attrib.mdata = 0; + psta->mgmt_sleepq_len--; - if (wmmps_ac) { - psta->sleepq_ac_len--; - if (psta->sleepq_ac_len > 0) { + if (psta->mgmt_sleepq_len > 0) pxmitframe->attrib.mdata = 1; - pxmitframe->attrib.eosp = 0; - } else { + else pxmitframe->attrib.mdata = 0; - pxmitframe->attrib.eosp = 1; - } + + pxmitframe->attrib.triggered = 1; + + rtw_hal_mgmt_xmitframe_enqueue(padapter, pxmitframe); } + } +#endif /* CONFIG_RTW_MGMT_QUEUE */ - pxmitframe->attrib.triggered = 1; + if (dequeue_type == UNI_BMC_DATA || dequeue_type == ALL_FRAME) { + /* AC queue */ + xmitframe_phead = get_list_head(&psta->sleep_q); + xmitframe_plist = get_next(xmitframe_phead); - /* - _exit_critical_bh(&psta->sleep_q.lock, &irqL); - if(rtw_hal_xmit(padapter, pxmitframe) == _TRUE) - { - rtw_os_xmit_complete(padapter, pxmitframe); + while ((rtw_end_of_queue_search(xmitframe_phead, xmitframe_plist)) == _FALSE) { + pxmitframe = LIST_CONTAINOR(xmitframe_plist, struct xmit_frame, list); + + xmitframe_plist = get_next(xmitframe_plist); + + rtw_list_delete(&pxmitframe->list); + + switch (pxmitframe->attrib.priority) { + case 1: + case 2: + wmmps_ac = psta->uapsd_bk & BIT(1); + break; + case 4: + case 5: + wmmps_ac = psta->uapsd_vi & BIT(1); + break; + case 6: + case 7: + wmmps_ac = psta->uapsd_vo & BIT(1); + break; + case 0: + case 3: + default: + wmmps_ac = psta->uapsd_be & BIT(1); + break; + } + + psta->sleepq_len--; + if (psta->sleepq_len > 0) + pxmitframe->attrib.mdata = 1; + else + pxmitframe->attrib.mdata = 0; + + if (wmmps_ac) { + psta->sleepq_ac_len--; + if (psta->sleepq_ac_len > 0) { + pxmitframe->attrib.mdata = 1; + pxmitframe->attrib.eosp = 0; + } else { + pxmitframe->attrib.mdata = 0; + pxmitframe->attrib.eosp = 1; } - _enter_critical_bh(&psta->sleep_q.lock, &irqL); - */ - rtw_hal_xmitframe_enqueue(padapter, pxmitframe); + } + pxmitframe->attrib.triggered = 1; + /* + _exit_critical_bh(&psta->sleep_q.lock, &irqL); + if(rtw_hal_xmit(padapter, pxmitframe) == _TRUE) + { + rtw_os_xmit_complete(padapter, pxmitframe); + } + _enter_critical_bh(&psta->sleep_q.lock, &irqL); + */ + rtw_hal_xmitframe_enqueue(padapter, pxmitframe); + } } - if (psta->sleepq_len == 0) { + if (psta->sleepq_len == 0 +#ifdef CONFIG_RTW_MGMT_QUEUE + && psta->mgmt_sleepq_len == 0 +#endif + ) { #ifdef CONFIG_TDLS if (psta->tdls_sta_state & TDLS_LINKED_STATE) { if (psta->state & WIFI_SLEEP_STATE) @@ -5501,56 +5905,57 @@ void wakeup_sta_to_xmit(_adapter *padapter, struct sta_info *psta) rtw_tim_map_clear(padapter, pstapriv->sta_dz_bitmap, psta->cmn.aid); } - /* for BC/MC Frames */ - if (!psta_bmc) - goto _exit; + if (dequeue_type == UNI_BMC_DATA || dequeue_type == ALL_FRAME) { + psta_bmc = rtw_get_bcmc_stainfo(padapter); - if (!(rtw_tim_map_anyone_be_set_exclude_aid0(padapter, pstapriv->sta_dz_bitmap))) { /* no any sta in ps mode */ - xmitframe_phead = get_list_head(&psta_bmc->sleep_q); - xmitframe_plist = get_next(xmitframe_phead); + /* for BC/MC Frames */ + if (!psta_bmc) + goto _exit; - while ((rtw_end_of_queue_search(xmitframe_phead, xmitframe_plist)) == _FALSE) { - pxmitframe = LIST_CONTAINOR(xmitframe_plist, struct xmit_frame, list); + if (!(rtw_tim_map_anyone_be_set_exclude_aid0(padapter, pstapriv->sta_dz_bitmap))) { /* no any sta in ps mode */ + xmitframe_phead = get_list_head(&psta_bmc->sleep_q); + xmitframe_plist = get_next(xmitframe_phead); - xmitframe_plist = get_next(xmitframe_plist); + while ((rtw_end_of_queue_search(xmitframe_phead, xmitframe_plist)) == _FALSE) { + pxmitframe = LIST_CONTAINOR(xmitframe_plist, struct xmit_frame, list); - rtw_list_delete(&pxmitframe->list); + xmitframe_plist = get_next(xmitframe_plist); - psta_bmc->sleepq_len--; - if (psta_bmc->sleepq_len > 0) - pxmitframe->attrib.mdata = 1; - else - pxmitframe->attrib.mdata = 0; + rtw_list_delete(&pxmitframe->list); + psta_bmc->sleepq_len--; + if (psta_bmc->sleepq_len > 0) + pxmitframe->attrib.mdata = 1; + else + pxmitframe->attrib.mdata = 0; - pxmitframe->attrib.triggered = 1; - /* - _exit_critical_bh(&psta_bmc->sleep_q.lock, &irqL); - if(rtw_hal_xmit(padapter, pxmitframe) == _TRUE) - { - rtw_os_xmit_complete(padapter, pxmitframe); - } - _enter_critical_bh(&psta_bmc->sleep_q.lock, &irqL); + pxmitframe->attrib.triggered = 1; + /* + _exit_critical_bh(&psta_bmc->sleep_q.lock, &irqL); + if(rtw_hal_xmit(padapter, pxmitframe) == _TRUE) + { + rtw_os_xmit_complete(padapter, pxmitframe); + } + _enter_critical_bh(&psta_bmc->sleep_q.lock, &irqL); - */ - rtw_hal_xmitframe_enqueue(padapter, pxmitframe); + */ + rtw_hal_xmitframe_enqueue(padapter, pxmitframe); - } - - if (psta_bmc->sleepq_len == 0) { - if (rtw_tim_map_is_set(padapter, pstapriv->tim_bitmap, 0)) { - /* RTW_INFO("wakeup to xmit, qlen==0\n"); */ - /* RTW_INFO_DUMP("update_BCNTIM, tim=", pstapriv->tim_bitmap, pstapriv->aid_bmp_len); */ - /* upate BCN for TIM IE */ - /* update_BCNTIM(padapter); */ - update_mask |= BIT(1); } - rtw_tim_map_clear(padapter, pstapriv->tim_bitmap, 0); - rtw_tim_map_clear(padapter, pstapriv->sta_dz_bitmap, 0); + + if (psta_bmc->sleepq_len == 0) { + if (rtw_tim_map_is_set(padapter, pstapriv->tim_bitmap, 0)) { + /* RTW_INFO("wakeup to xmit, qlen==0\n"); */ + /* RTW_INFO_DUMP("update_BCNTIM, tim=", pstapriv->tim_bitmap, pstapriv->aid_bmp_len); */ + /* upate BCN for TIM IE */ + /* update_BCNTIM(padapter); */ + update_mask |= BIT(1); + } + rtw_tim_map_clear(padapter, pstapriv->tim_bitmap, 0); + rtw_tim_map_clear(padapter, pstapriv->sta_dz_bitmap, 0); + } } - } - _exit: /* _exit_critical_bh(&psta_bmc->sleep_q.lock, &irqL); */ @@ -5565,7 +5970,6 @@ _exit: else _update_beacon(padapter, _TIM_IE_, NULL, _TRUE, 0, "clear UC"); } - } void xmit_delivery_enabled_frames(_adapter *padapter, struct sta_info *psta) @@ -6105,7 +6509,8 @@ void rtw_amsdu_cancel_timer(_adapter *padapter, u8 priority) static struct rtw_tx_desc_backup tx_backup[HW_QUEUE_ENTRY][TX_BAK_FRMAE_CNT]; static u8 backup_idx[HW_QUEUE_ENTRY]; -void rtw_tx_desc_backup(_adapter *padapter, struct xmit_frame *pxmitframe, u8 desc_size, u8 hwq) +void rtw_tx_desc_backup(_adapter *padapter, u8 *txbd, struct xmit_frame *pxmitframe, + u8 desc_size, u8 hwq, u32 txdma_status) { u32 tmp32; u8 *pxmit_buf; @@ -6115,6 +6520,7 @@ void rtw_tx_desc_backup(_adapter *padapter, struct xmit_frame *pxmitframe, u8 de pxmit_buf = pxmitframe->pxmitbuf->pbuf; + _rtw_memcpy(tx_backup[hwq][backup_idx[hwq]].tx_bak_txbd, txbd, TX_BAK_TXBD_LEN); _rtw_memcpy(tx_backup[hwq][backup_idx[hwq]].tx_bak_desc, pxmit_buf, desc_size); _rtw_memcpy(tx_backup[hwq][backup_idx[hwq]].tx_bak_data_hdr, pxmit_buf+desc_size, TX_BAK_DATA_LEN); @@ -6124,6 +6530,7 @@ void rtw_tx_desc_backup(_adapter *padapter, struct xmit_frame *pxmitframe, u8 de tx_backup[hwq][backup_idx[hwq]].tx_bak_wp = tmp32&0xfff; tx_backup[hwq][backup_idx[hwq]].tx_desc_size = desc_size; + tx_backup[hwq][backup_idx[hwq]].tx_dma_status = txdma_status; backup_idx[hwq] = (backup_idx[hwq] + 1) % TX_BAK_FRMAE_CNT; } @@ -6290,3 +6697,20 @@ void rtw_ack_tx_done(struct xmit_priv *pxmitpriv, int status) RTW_INFO("%s ack_tx not set\n", __func__); } #endif /* CONFIG_XMIT_ACK */ + +void rtw_hci_flush(_adapter *padapter) +{ + u8 q; + + if (padapter->hal_func.hci_flush) { + for (q = 0; q < HW_QUEUE_ENTRY; q++) { + if ((q == BCN_QUEUE_INX) || (q == TXCMD_QUEUE_INX)) + continue; + + padapter->hal_func.hci_flush(padapter, q); + } + } + else + RTW_WARN("hal ops: hci_flush is NULL\n"); +} + diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/wds/rtw_wds.c b/drivers/net/wireless/realtek/rtl8822ce/core/wds/rtw_wds.c new file mode 100644 index 00000000..fd88b1c4 --- /dev/null +++ b/drivers/net/wireless/realtek/rtl8822ce/core/wds/rtw_wds.c @@ -0,0 +1,786 @@ +/****************************************************************************** + * + * Copyright(c) 2007 - 2017 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License 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. + * + *****************************************************************************/ +#define _RTW_WDS_C_ + +#include + +#if defined(CONFIG_RTW_WDS) +#include + +#if defined(CONFIG_AP_MODE) + +#ifdef PLATFORM_LINUX +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 0, 0)) +static void rtw_wpath_free_rcu(struct rtw_wds_path *wpath) +{ + kfree_rcu(wpath, rcu); + rtw_mstat_update(MSTAT_TYPE_PHY, MSTAT_FREE, sizeof(struct rtw_wds_path)); +} +#else +static void rtw_wpath_free_rcu_callback(rtw_rcu_head *head) +{ + struct rtw_wds_path *wpath; + + wpath = container_of(head, struct rtw_wds_path, rcu); + rtw_mfree(wpath, sizeof(struct rtw_wds_path)); +} + +static void rtw_wpath_free_rcu(struct rtw_wds_path *wpath) +{ + call_rcu(&wpath->rcu, rtw_wpath_free_rcu_callback); +} +#endif +#endif /* PLATFORM_LINUX */ + +static void rtw_wds_path_free_rcu(struct rtw_wds_table *tbl, struct rtw_wds_path *wpath); + +static u32 rtw_wds_table_hash(const void *addr, u32 len, u32 seed) +{ + /* Use last four bytes of hw addr as hash index */ + return jhash_1word(*(u32 *)(addr+2), seed); +} + +static const rtw_rhashtable_params rtw_wds_rht_params = { + .nelem_hint = 2, + .automatic_shrinking = true, + .key_len = ETH_ALEN, + .key_offset = offsetof(struct rtw_wds_path, dst), + .head_offset = offsetof(struct rtw_wds_path, rhash), + .hashfn = rtw_wds_table_hash, +}; + +static void rtw_wds_path_rht_free(void *ptr, void *tblptr) +{ + struct rtw_wds_path *wpath = ptr; + struct rtw_wds_table *tbl = tblptr; + + rtw_wds_path_free_rcu(tbl, wpath); +} + +static struct rtw_wds_table *rtw_wds_table_alloc(void) +{ + struct rtw_wds_table *newtbl; + + newtbl = rtw_malloc(sizeof(struct rtw_wds_table)); + if (!newtbl) + return NULL; + + return newtbl; +} + +static void rtw_wds_table_free(struct rtw_wds_table *tbl) +{ + rtw_rhashtable_free_and_destroy(&tbl->rhead, + rtw_wds_path_rht_free, tbl); + rtw_mfree(tbl, sizeof(struct rtw_wds_table)); +} + +void rtw_wds_path_assign_nexthop(struct rtw_wds_path *wpath, struct sta_info *sta) +{ + rtw_rcu_assign_pointer(wpath->next_hop, sta); +} + +static struct rtw_wds_path *rtw_wpath_lookup(struct rtw_wds_table *tbl, const u8 *dst) +{ + struct rtw_wds_path *wpath; + + if (!tbl) + return NULL; + + wpath = rtw_rhashtable_lookup_fast(&tbl->rhead, dst, rtw_wds_rht_params); + + return wpath; +} + +struct rtw_wds_path *rtw_wds_path_lookup(_adapter *adapter, const u8 *dst) +{ + return rtw_wpath_lookup(adapter->wds_paths, dst); +} + +static struct rtw_wds_path * +__rtw_wds_path_lookup_by_idx(struct rtw_wds_table *tbl, int idx) +{ + int i = 0, ret; + struct rtw_wds_path *wpath = NULL; + rtw_rhashtable_iter iter; + + if (!tbl) + return NULL; + + ret = rtw_rhashtable_walk_enter(&tbl->rhead, &iter); + if (ret) + return NULL; + + ret = rtw_rhashtable_walk_start(&iter); + if (ret && ret != -EAGAIN) + goto err; + + while ((wpath = rtw_rhashtable_walk_next(&iter))) { + if (IS_ERR(wpath) && PTR_ERR(wpath) == -EAGAIN) + continue; + if (IS_ERR(wpath)) + break; + if (i++ == idx) + break; + } +err: + rtw_rhashtable_walk_stop(&iter); + rtw_rhashtable_walk_exit(&iter); + + if (IS_ERR(wpath) || !wpath) + return NULL; + + return wpath; +} + +/** + * Locking: must be called within a read rcu section. + */ +struct rtw_wds_path * +rtw_wds_path_lookup_by_idx(_adapter *adapter, int idx) +{ + return __rtw_wds_path_lookup_by_idx(adapter->wds_paths, idx); +} + +void dump_wpath(void *sel, _adapter *adapter) +{ + struct rtw_wds_path *wpath; + int idx = 0; + char dst[ETH_ALEN]; + char next_hop[ETH_ALEN]; + u32 age_ms; + + RTW_PRINT_SEL(sel, "num:%d\n", ATOMIC_READ(&adapter->wds_path_num)); + RTW_PRINT_SEL(sel, "%-17s %-17s %-6s\n" + , "dst", "next_hop", "age" + ); + + do { + rtw_rcu_read_lock(); + + wpath = rtw_wds_path_lookup_by_idx(adapter, idx); + if (wpath) { + _rtw_memcpy(dst, wpath->dst, ETH_ALEN); + _rtw_memcpy(next_hop, wpath->next_hop->cmn.mac_addr, ETH_ALEN); + age_ms = rtw_get_passing_time_ms(wpath->last_update); + } + + rtw_rcu_read_unlock(); + + if (wpath) { + RTW_PRINT_SEL(sel, MAC_FMT" "MAC_FMT" %6u\n" + , MAC_ARG(dst), MAC_ARG(next_hop) + , age_ms < 999999 ? age_ms : 999999 + ); + } + + idx++; + } while (wpath); +} + +static +struct rtw_wds_path *rtw_wds_path_new(_adapter *adapter, + const u8 *dst) +{ + struct rtw_wds_path *new_wpath; + + new_wpath = rtw_zmalloc(sizeof(struct rtw_wds_path)); + if (!new_wpath) + return NULL; + + new_wpath->adapter = adapter; + _rtw_memcpy(new_wpath->dst, dst, ETH_ALEN); + new_wpath->last_update = rtw_get_current_time(); + + return new_wpath; +} + +/** + * Returns: 0 on success + * + * State: the initial state of the new path is set to 0 + */ +struct rtw_wds_path *rtw_wds_path_add(_adapter *adapter, + const u8 *dst, struct sta_info *next_hop) +{ + struct rtw_wds_table *tbl = adapter->wds_paths; + struct rtw_wds_path *wpath, *new_wpath; + int ret; + + if (!tbl) + return ERR_PTR(-ENOTSUPP); + + if (_rtw_memcmp(dst, adapter_mac_addr(adapter), ETH_ALEN) == _TRUE) + /* never add ourselves as neighbours */ + return ERR_PTR(-ENOTSUPP); + + if (IS_MCAST(dst)) + return ERR_PTR(-ENOTSUPP); + + if (ATOMIC_INC_UNLESS(&adapter->wds_path_num, RTW_WDS_MAX_PATHS) == 0) + return ERR_PTR(-ENOSPC); + + new_wpath = rtw_wds_path_new(adapter, dst); + if (!new_wpath) + return ERR_PTR(-ENOMEM); + + do { + ret = rtw_rhashtable_lookup_insert_fast(&tbl->rhead, + &new_wpath->rhash, + rtw_wds_rht_params); + + if (ret == -EEXIST) + wpath = rtw_rhashtable_lookup_fast(&tbl->rhead, + dst, + rtw_wds_rht_params); + + } while (unlikely(ret == -EEXIST && !wpath)); + + if (ret && ret != -EEXIST) + return ERR_PTR(ret); + + /* At this point either new_wpath was added, or we found a + * matching entry already in the table; in the latter case + * free the unnecessary new entry. + */ + if (ret == -EEXIST) { + rtw_mfree(new_wpath, sizeof(struct rtw_wds_path)); + new_wpath = wpath; + } + rtw_wds_path_assign_nexthop(new_wpath, next_hop); + + return new_wpath; +} + +static void rtw_wds_path_free_rcu(struct rtw_wds_table *tbl, + struct rtw_wds_path *wpath) +{ + _adapter *adapter = wpath->adapter; + + ATOMIC_DEC(&adapter->wds_path_num); + + rtw_wpath_free_rcu(wpath); +} + +static void __rtw_wds_path_del(struct rtw_wds_table *tbl, struct rtw_wds_path *wpath) +{ + rtw_rhashtable_remove_fast(&tbl->rhead, &wpath->rhash, rtw_wds_rht_params); + rtw_wds_path_free_rcu(tbl, wpath); +} + +void rtw_wds_path_flush_by_nexthop(struct sta_info *sta) +{ + _adapter *adapter = sta->padapter; + struct rtw_wds_table *tbl = adapter->wds_paths; + struct rtw_wds_path *wpath; + rtw_rhashtable_iter iter; + int ret; + + if (!tbl) + return; + + ret = rtw_rhashtable_walk_enter(&tbl->rhead, &iter); + if (ret) + return; + + ret = rtw_rhashtable_walk_start(&iter); + if (ret && ret != -EAGAIN) + goto out; + + while ((wpath = rtw_rhashtable_walk_next(&iter))) { + if (IS_ERR(wpath) && PTR_ERR(wpath) == -EAGAIN) + continue; + if (IS_ERR(wpath)) + break; + + if (rtw_rcu_access_pointer(wpath->next_hop) == sta) + __rtw_wds_path_del(tbl, wpath); + } +out: + rtw_rhashtable_walk_stop(&iter); + rtw_rhashtable_walk_exit(&iter); +} + +static void rtw_wds_table_flush_by_iface(struct rtw_wds_table *tbl) +{ + struct rtw_wds_path *wpath; + rtw_rhashtable_iter iter; + int ret; + + if (!tbl) + return; + + ret = rtw_rhashtable_walk_enter(&tbl->rhead, &iter); + if (ret) + return; + + ret = rtw_rhashtable_walk_start(&iter); + if (ret && ret != -EAGAIN) + goto out; + + while ((wpath = rtw_rhashtable_walk_next(&iter))) { + if (IS_ERR(wpath) && PTR_ERR(wpath) == -EAGAIN) + continue; + if (IS_ERR(wpath)) + break; + __rtw_wds_path_del(tbl, wpath); + } +out: + rtw_rhashtable_walk_stop(&iter); + rtw_rhashtable_walk_exit(&iter); +} + +void rtw_wds_path_flush_by_iface(_adapter *adapter) +{ + rtw_wds_table_flush_by_iface(adapter->wds_paths); +} + +static int rtw_wds_table_path_del(struct rtw_wds_table *tbl, + const u8 *addr) +{ + struct rtw_wds_path *wpath; + + if (!tbl) + return -ENXIO; + + rtw_rcu_read_lock(); + wpath = rtw_rhashtable_lookup_fast(&tbl->rhead, addr, rtw_wds_rht_params); + if (!wpath) { + rtw_rcu_read_unlock(); + return -ENXIO; + } + + __rtw_wds_path_del(tbl, wpath); + rtw_rcu_read_unlock(); + return 0; +} + +int rtw_wds_path_del(_adapter *adapter, const u8 *addr) +{ + int err; + + err = rtw_wds_table_path_del(adapter->wds_paths, addr); + return err; +} + +int rtw_wds_pathtbl_init(_adapter *adapter) +{ + struct rtw_wds_table *tbl_path; + int ret; + + tbl_path = rtw_wds_table_alloc(); + if (!tbl_path) + return -ENOMEM; + + rtw_rhashtable_init(&tbl_path->rhead, &rtw_wds_rht_params); + + ATOMIC_SET(&adapter->wds_path_num, 0); + adapter->wds_paths = tbl_path; + + return 0; +} + +static +void rtw_wds_path_tbl_expire(_adapter *adapter, + struct rtw_wds_table *tbl) +{ + struct rtw_wds_path *wpath; + rtw_rhashtable_iter iter; + int ret; + + if (!tbl) + return; + + ret = rtw_rhashtable_walk_enter(&tbl->rhead, &iter); + if (ret) + return; + + ret = rtw_rhashtable_walk_start(&iter); + if (ret && ret != -EAGAIN) + goto out; + + while ((wpath = rtw_rhashtable_walk_next(&iter))) { + if (IS_ERR(wpath) && PTR_ERR(wpath) == -EAGAIN) + continue; + if (IS_ERR(wpath)) + break; + if (rtw_time_after(rtw_get_current_time(), wpath->last_update + RTW_WDS_PATH_EXPIRE)) + __rtw_wds_path_del(tbl, wpath); + } + +out: + rtw_rhashtable_walk_stop(&iter); + rtw_rhashtable_walk_exit(&iter); +} + +void rtw_wds_path_expire(_adapter *adapter) +{ + rtw_wds_path_tbl_expire(adapter, adapter->wds_paths); +} + +void rtw_wds_pathtbl_unregister(_adapter *adapter) +{ + if (adapter->wds_paths) { + rtw_wds_table_free(adapter->wds_paths); + adapter->wds_paths = NULL; + } +} + +int rtw_wds_nexthop_lookup(_adapter *adapter, const u8 *da, u8 *ra) +{ + struct rtw_wds_path *wpath; + struct sta_info *next_hop; + int err = -ENOENT; + + rtw_rcu_read_lock(); + wpath = rtw_wds_path_lookup(adapter, da); + + if (!wpath) + goto endlookup; + + next_hop = rtw_rcu_dereference(wpath->next_hop); + if (next_hop) { + _rtw_memcpy(ra, next_hop->cmn.mac_addr, ETH_ALEN); + err = 0; + } + +endlookup: + rtw_rcu_read_unlock(); + return err; +} + +#endif /* defined(CONFIG_AP_MODE) */ + +/* WDS group adddressed proxy TX record */ +struct rtw_wds_gptr { + u8 src[ETH_ALEN]; + systime last_update; + rtw_rhash_head rhash; + _adapter *adapter; + rtw_rcu_head rcu; +}; + +#define RTW_WDS_GPTR_EXPIRE (2 * HZ) + +/* Maximum number of gptrs per interface */ +#define RTW_WDS_MAX_GPTRS 1024 + +#ifdef PLATFORM_LINUX +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 0, 0)) +static void rtw_wgptr_free_rcu(struct rtw_wds_gptr *wgptr) +{ + kfree_rcu(wgptr, rcu); + rtw_mstat_update(MSTAT_TYPE_PHY, MSTAT_FREE, sizeof(struct rtw_wds_gptr)); +} +#else +static void rtw_wgptr_free_rcu_callback(rtw_rcu_head *head) +{ + struct rtw_wds_gptr *wgptr; + + wgptr = container_of(head, struct rtw_wds_gptr, rcu); + rtw_mfree(wgptr, sizeof(struct rtw_wds_gptr)); +} + +static void rtw_wgptr_free_rcu(struct rtw_wds_gptr *wgptr) +{ + call_rcu(&wgptr->rcu, rtw_wgptr_free_rcu_callback); +} +#endif +#endif /* PLATFORM_LINUX */ + +static void rtw_wds_gptr_free_rcu(struct rtw_wds_gptr_table *tbl, struct rtw_wds_gptr *wgptr) +{ + _adapter *adapter = wgptr->adapter; + + ATOMIC_DEC(&adapter->wds_gpt_record_num); + + rtw_wgptr_free_rcu(wgptr); +} + +static u32 rtw_wds_gptr_table_hash(const void *addr, u32 len, u32 seed) +{ + /* Use last four bytes of hw addr as hash index */ + return jhash_1word(*(u32 *)(addr+2), seed); +} + +static const rtw_rhashtable_params rtw_wds_gptr_rht_params = { + .nelem_hint = 2, + .automatic_shrinking = true, + .key_len = ETH_ALEN, + .key_offset = offsetof(struct rtw_wds_gptr, src), + .head_offset = offsetof(struct rtw_wds_gptr, rhash), + .hashfn = rtw_wds_gptr_table_hash, +}; + +static void rtw_wds_gptr_rht_free(void *ptr, void *tblptr) +{ + struct rtw_wds_gptr *wgptr = ptr; + struct rtw_wds_gptr_table *tbl = tblptr; + + rtw_wds_gptr_free_rcu(tbl, wgptr); +} + +static struct rtw_wds_gptr_table *rtw_wds_gptr_table_alloc(void) +{ + struct rtw_wds_gptr_table *newtbl; + + newtbl = rtw_malloc(sizeof(struct rtw_wds_gptr_table)); + if (!newtbl) + return NULL; + + return newtbl; +} + +static void rtw_wds_gptr_table_free(struct rtw_wds_gptr_table *tbl) +{ + rtw_rhashtable_free_and_destroy(&tbl->rhead, + rtw_wds_gptr_rht_free, tbl); + rtw_mfree(tbl, sizeof(struct rtw_wds_gptr_table)); +} + +static struct rtw_wds_gptr *rtw_wds_gptr_lookup(_adapter *adapter, const u8 *src) +{ + struct rtw_wds_gptr_table *tbl = adapter->wds_gpt_records; + + if (!tbl) + return NULL; + + return rtw_rhashtable_lookup_fast(&tbl->rhead, src, rtw_wds_gptr_rht_params); +} + +/** + * Locking: must be called within a read rcu section. + */ +static struct rtw_wds_gptr *rtw_wds_gptr_lookup_by_idx(_adapter *adapter, int idx) +{ + int i = 0, ret; + struct rtw_wds_gptr_table *tbl = adapter->wds_gpt_records; + struct rtw_wds_gptr *wgptr = NULL; + rtw_rhashtable_iter iter; + + if (!tbl) + return NULL; + + ret = rtw_rhashtable_walk_enter(&tbl->rhead, &iter); + if (ret) + return NULL; + + ret = rtw_rhashtable_walk_start(&iter); + if (ret && ret != -EAGAIN) + goto err; + + while ((wgptr = rtw_rhashtable_walk_next(&iter))) { + if (IS_ERR(wgptr) && PTR_ERR(wgptr) == -EAGAIN) + continue; + if (IS_ERR(wgptr)) + break; + if (i++ == idx) + break; + } +err: + rtw_rhashtable_walk_stop(&iter); + rtw_rhashtable_walk_exit(&iter); + + if (IS_ERR(wgptr) || !wgptr) + return NULL; + + return wgptr; +} + +void dump_wgptr(void *sel, _adapter *adapter) +{ + struct rtw_wds_gptr *wgptr; + int idx = 0; + char src[ETH_ALEN]; + u32 age_ms; + + RTW_PRINT_SEL(sel, "num:%d\n", ATOMIC_READ(&adapter->wds_gpt_record_num)); + RTW_PRINT_SEL(sel, "%-17s %-6s\n" + , "src", "age" + ); + + do { + rtw_rcu_read_lock(); + + wgptr = rtw_wds_gptr_lookup_by_idx(adapter, idx); + if (wgptr) { + _rtw_memcpy(src, wgptr->src, ETH_ALEN); + age_ms = rtw_get_passing_time_ms(wgptr->last_update); + } + + rtw_rcu_read_unlock(); + + if (wgptr) { + RTW_PRINT_SEL(sel, MAC_FMT" %6u\n" + , MAC_ARG(src) + , age_ms < 999999 ? age_ms : 999999 + ); + } + + idx++; + } while (wgptr); +} + +static struct rtw_wds_gptr *rtw_wds_gptr_new(_adapter *adapter, const u8 *src) +{ + struct rtw_wds_gptr *new_wgptr; + + new_wgptr = rtw_zmalloc(sizeof(struct rtw_wds_gptr)); + if (!new_wgptr) + return NULL; + + new_wgptr->adapter = adapter; + _rtw_memcpy(new_wgptr->src, src, ETH_ALEN); + new_wgptr->last_update = rtw_get_current_time(); + + return new_wgptr; +} + +static struct rtw_wds_gptr *rtw_wds_gptr_add(_adapter *adapter, const u8 *src) +{ + struct rtw_wds_gptr_table *tbl = adapter->wds_gpt_records; + struct rtw_wds_gptr *wgptr, *new_wgptr; + int ret; + + if (!tbl) + return ERR_PTR(-ENOTSUPP); + + if (ATOMIC_INC_UNLESS(&adapter->wds_gpt_record_num, RTW_WDS_MAX_PATHS) == 0) + return ERR_PTR(-ENOSPC); + + new_wgptr = rtw_wds_gptr_new(adapter, src); + if (!new_wgptr) + return ERR_PTR(-ENOMEM); + + do { + ret = rtw_rhashtable_lookup_insert_fast(&tbl->rhead, + &new_wgptr->rhash, + rtw_wds_gptr_rht_params); + + if (ret == -EEXIST) + wgptr = rtw_rhashtable_lookup_fast(&tbl->rhead, + src, + rtw_wds_gptr_rht_params); + + } while (unlikely(ret == -EEXIST && !wgptr)); + + if (ret && ret != -EEXIST) + return ERR_PTR(ret); + + /* At this point either new_wgptr was added, or we found a + * matching entry already in the table; in the latter case + * free the unnecessary new entry. + */ + if (ret == -EEXIST) { + rtw_mfree(new_wgptr, sizeof(struct rtw_wds_gptr)); + new_wgptr = wgptr; + } + + return new_wgptr; +} + +bool rtw_rx_wds_gptr_check(_adapter *adapter, const u8 *src) +{ + struct rtw_wds_gptr *wgptr; + bool ret = 0; + + rtw_rcu_read_lock(); + + wgptr = rtw_wds_gptr_lookup(adapter, src); + if (wgptr) + ret = rtw_time_after(wgptr->last_update + RTW_WDS_GPTR_EXPIRE, rtw_get_current_time()); + + rtw_rcu_read_unlock(); + + return ret; +} + +void rtw_tx_wds_gptr_update(_adapter *adapter, const u8 *src) +{ + struct rtw_wds_gptr *wgptr; + + rtw_rcu_read_lock(); + wgptr = rtw_wds_gptr_lookup(adapter, src); + if (!wgptr) + rtw_wds_gptr_add(adapter, src); + else + wgptr->last_update = rtw_get_current_time(); + rtw_rcu_read_unlock(); +} + +static void __rtw_wds_gptr_del(struct rtw_wds_gptr_table *tbl, struct rtw_wds_gptr *wgptr) +{ + rtw_rhashtable_remove_fast(&tbl->rhead, &wgptr->rhash, rtw_wds_gptr_rht_params); + rtw_wds_gptr_free_rcu(tbl, wgptr); +} + +void rtw_wds_gptr_expire(_adapter *adapter) +{ + struct rtw_wds_gptr_table *tbl = adapter->wds_gpt_records; + struct rtw_wds_gptr *wgptr; + rtw_rhashtable_iter iter; + int ret; + + if (!tbl) + return; + + ret = rtw_rhashtable_walk_enter(&tbl->rhead, &iter); + if (ret) + return; + + ret = rtw_rhashtable_walk_start(&iter); + if (ret && ret != -EAGAIN) + goto out; + + while ((wgptr = rtw_rhashtable_walk_next(&iter))) { + if (IS_ERR(wgptr) && PTR_ERR(wgptr) == -EAGAIN) + continue; + if (IS_ERR(wgptr)) + break; + if (rtw_time_after(rtw_get_current_time(), wgptr->last_update + RTW_WDS_GPTR_EXPIRE)) + __rtw_wds_gptr_del(tbl, wgptr); + } + +out: + rtw_rhashtable_walk_stop(&iter); + rtw_rhashtable_walk_exit(&iter); +} + +int rtw_wds_gptr_tbl_init(_adapter *adapter) +{ + struct rtw_wds_gptr_table *tbl; + int ret; + + tbl = rtw_wds_gptr_table_alloc(); + if (!tbl) + return -ENOMEM; + + rtw_rhashtable_init(&tbl->rhead, &rtw_wds_gptr_rht_params); + + ATOMIC_SET(&adapter->wds_gpt_record_num, 0); + adapter->wds_gpt_records = tbl; + + return 0; +} + +void rtw_wds_gptr_tbl_unregister(_adapter *adapter) +{ + if (adapter->wds_gpt_records) { + rtw_wds_gptr_table_free(adapter->wds_gpt_records); + adapter->wds_gpt_records = NULL; + } +} +#endif /* defined(CONFIG_RTW_WDS) */ + diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/wds/rtw_wds.h b/drivers/net/wireless/realtek/rtl8822ce/core/wds/rtw_wds.h new file mode 100644 index 00000000..f1312c74 --- /dev/null +++ b/drivers/net/wireless/realtek/rtl8822ce/core/wds/rtw_wds.h @@ -0,0 +1,65 @@ +/****************************************************************************** + * + * Copyright(c) 2007 - 2019 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License 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. + * + *****************************************************************************/ +#ifndef __RTW_WDS_H_ +#define __RTW_WDS_H_ + +#ifdef CONFIG_AP_MODE +struct rtw_wds_path { + u8 dst[ETH_ALEN]; + rtw_rhash_head rhash; + _adapter *adapter; + struct sta_info __rcu *next_hop; + rtw_rcu_head rcu; + systime last_update; +}; + +struct rtw_wds_table { + rtw_rhashtable rhead; +}; + +#define RTW_WDS_PATH_EXPIRE (600 * HZ) + +/* Maximum number of paths per interface */ +#define RTW_WDS_MAX_PATHS 1024 + +int rtw_wds_nexthop_lookup(_adapter *adapter, const u8 *da, u8 *ra); + +struct rtw_wds_path *rtw_wds_path_lookup(_adapter *adapter, const u8 *dst); +void dump_wpath(void *sel, _adapter *adapter); + +void rtw_wds_path_expire(_adapter *adapter); + +struct rtw_wds_path *rtw_wds_path_add(_adapter *adapter, const u8 *dst, struct sta_info *next_hop); +void rtw_wds_path_assign_nexthop(struct rtw_wds_path *path, struct sta_info *sta); + +int rtw_wds_pathtbl_init(_adapter *adapter); +void rtw_wds_pathtbl_unregister(_adapter *adapter); + +void rtw_wds_path_flush_by_nexthop(struct sta_info *sta); +#endif /* CONFIG_AP_MODE */ + +struct rtw_wds_gptr_table { + rtw_rhashtable rhead; +}; + +void dump_wgptr(void *sel, _adapter *adapter); +bool rtw_rx_wds_gptr_check(_adapter *adapter, const u8 *src); +void rtw_tx_wds_gptr_update(_adapter *adapter, const u8 *src); +void rtw_wds_gptr_expire(_adapter *adapter); +int rtw_wds_gptr_tbl_init(_adapter *adapter); +void rtw_wds_gptr_tbl_unregister(_adapter *adapter); + +#endif /* __RTW_WDSH_ */ + diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/btc/halbtc8822c.c b/drivers/net/wireless/realtek/rtl8822ce/hal/btc/halbtc8822c.c old mode 100755 new mode 100644 index f0b874f7..89ad4670 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/btc/halbtc8822c.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/btc/halbtc8822c.c @@ -1,556 +1,630 @@ -/****************************************************************************** - * - * Copyright(c) 2016 - 2017 Realtek Corporation. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License 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. - * - *****************************************************************************/ - -#include "mp_precomp.h" - -#if (BT_SUPPORT == 1 && COEX_SUPPORT == 1) - -static u8 *trace_buf = &gl_btc_trace_buf[0]; - -static const u32 bt_desired_ver_8822c = 0x17; - -/* rssi express in percentage % (dbm = % - 100) */ -static const u8 wl_rssi_step_8822c[] = {60, 50, 44, 30}; -static const u8 bt_rssi_step_8822c[] = {8, 15, 20, 25}; - -/* Shared-Antenna Coex Table */ -static const struct btc_coex_table_para table_sant_8822c[] = { - {0xffffffff, 0xffffffff}, /*case-0*/ - {0x55555555, 0x55555555}, - {0x66555555, 0x66555555}, - {0xaaaaaaaa, 0xaaaaaaaa}, - {0x5a5a5a5a, 0x5a5a5a5a}, - {0xfafafafa, 0xfafafafa}, /*case-5*/ - {0x6a5a5555, 0xaaaaaaaa}, - {0x6a5a56aa, 0x6a5a56aa}, - {0x6a5a5a5a, 0x6a5a5a5a}, - {0x66555555, 0x5a5a5a5a}, - {0x66555555, 0x6a5a5a5a}, /*case-10*/ - {0x66555555, 0x6a5a5aaa}, - {0x66555555, 0x5a5a5aaa}, - {0x66555555, 0x6aaa5aaa}, - {0x66555555, 0xaaaa5aaa}, - {0x66555555, 0xaaaaaaaa}, /*case-15*/ - {0xffff55ff, 0xfafafafa}, - {0xffff55ff, 0x6afa5afa}, - {0xaaffffaa, 0xfafafafa}, - {0xaa5555aa, 0x5a5a5a5a}, - {0xaa5555aa, 0x6a5a5a5a}, /*case-20*/ - {0xaa5555aa, 0xaaaaaaaa}, - {0xffffffff, 0x5a5a5a5a}, - {0xffffffff, 0x5a5a5a5a}, - {0xffffffff, 0x55555555}, - {0xffffffff, 0x5a5a5aaa}, /*case-25*/ - {0x55555555, 0x5a5a5a5a}, - {0x55555555, 0xaaaaaaaa}, - {0x55555555, 0x6a5a6a5a}, - {0x66556655, 0x66556655}, - {0x66556aaa, 0x6a5a6aaa}, /*case-30*/ - {0xffffffff, 0x5aaa5aaa}, - {0x56555555, 0x5a5a5aaa}, - {0xdaffdaff, 0xdaffdaff} }; - -/* Non-Shared-Antenna Coex Table */ -static const struct btc_coex_table_para table_nsant_8822c[] = { - {0xffffffff, 0xffffffff}, /*case-100*/ - {0x55555555, 0x55555555}, - {0x66555555, 0x66555555}, - {0xaaaaaaaa, 0xaaaaaaaa}, - {0x5a5a5a5a, 0x5a5a5a5a}, - {0xfafafafa, 0xfafafafa}, /*case-105*/ - {0x5afa5afa, 0x5afa5afa}, - {0x55555555, 0xfafafafa}, - {0x66555555, 0xfafafafa}, - {0x66555555, 0x5a5a5a5a}, - {0x66555555, 0x6a5a5a5a}, /*case-110*/ - {0x66555555, 0xaaaaaaaa}, - {0xffff55ff, 0xfafafafa}, - {0xffff55ff, 0x5afa5afa}, - {0xffff55ff, 0xaaaaaaaa}, - {0xffff55ff, 0xffff55ff}, /*case-115*/ - {0xaaffffaa, 0x5afa5afa}, - {0xaaffffaa, 0xaaaaaaaa}, - {0xffffffff, 0xfafafafa}, - {0xffffffff, 0x5afa5afa}, - {0xffffffff, 0xaaaaaaaa},/*case-120*/ - {0x55ff55ff, 0x5afa5afa}, - {0x55ff55ff, 0xaaaaaaaa}, - {0x55ff55ff, 0x55ff55ff} }; - -/* Shared-Antenna TDMA*/ -static const struct btc_tdma_para tdma_sant_8822c[] = { - { {0x00, 0x00, 0x00, 0x00, 0x00} }, /*case-0*/ - { {0x61, 0x45, 0x03, 0x11, 0x11} }, /*case-1*/ - { {0x61, 0x3a, 0x03, 0x11, 0x11} }, - { {0x61, 0x30, 0x03, 0x11, 0x11} }, - { {0x61, 0x20, 0x03, 0x11, 0x11} }, - { {0x61, 0x10, 0x03, 0x11, 0x11} }, /*case-5*/ - { {0x61, 0x45, 0x03, 0x11, 0x10} }, - { {0x61, 0x3a, 0x03, 0x11, 0x10} }, - { {0x61, 0x30, 0x03, 0x11, 0x10} }, - { {0x61, 0x20, 0x03, 0x11, 0x10} }, - { {0x61, 0x10, 0x03, 0x11, 0x10} }, /*case-10*/ - { {0x61, 0x08, 0x03, 0x11, 0x14} }, - { {0x61, 0x08, 0x03, 0x10, 0x14} }, - { {0x51, 0x08, 0x03, 0x10, 0x54} }, - { {0x51, 0x08, 0x03, 0x10, 0x55} }, - { {0x51, 0x08, 0x07, 0x10, 0x54} }, /*case-15*/ - { {0x51, 0x45, 0x03, 0x10, 0x50} }, - { {0x51, 0x3a, 0x03, 0x10, 0x50} }, - { {0x51, 0x30, 0x03, 0x10, 0x50} }, - { {0x51, 0x20, 0x03, 0x10, 0x50} }, - { {0x51, 0x10, 0x03, 0x10, 0x50} }, /*case-20*/ - { {0x51, 0x4a, 0x03, 0x10, 0x50} }, - { {0x51, 0x0c, 0x03, 0x10, 0x54} }, - { {0x55, 0x08, 0x03, 0x10, 0x54} }, - { {0x65, 0x10, 0x03, 0x11, 0x10} }, - { {0x51, 0x10, 0x03, 0x10, 0x51} }, /*case-25*/ - { {0x51, 0x08, 0x03, 0x10, 0x50} }, - { {0x61, 0x08, 0x03, 0x11, 0x11} } }; - - -/* Non-Shared-Antenna TDMA*/ -static const struct btc_tdma_para tdma_nsant_8822c[] = { - { {0x00, 0x00, 0x00, 0x00, 0x00} }, /*case-100*/ - { {0x61, 0x45, 0x03, 0x11, 0x11} }, /*case-101*/ - { {0x61, 0x3a, 0x03, 0x11, 0x11} }, - { {0x61, 0x30, 0x03, 0x11, 0x11} }, - { {0x61, 0x20, 0x03, 0x11, 0x11} }, - { {0x61, 0x10, 0x03, 0x11, 0x11} }, /*case-105*/ - { {0x61, 0x45, 0x03, 0x11, 0x10} }, - { {0x61, 0x3a, 0x03, 0x11, 0x10} }, - { {0x61, 0x30, 0x03, 0x11, 0x10} }, - { {0x61, 0x20, 0x03, 0x11, 0x10} }, - { {0x61, 0x10, 0x03, 0x11, 0x10} }, /*case-110*/ - { {0x61, 0x08, 0x03, 0x11, 0x14} }, - { {0x61, 0x08, 0x03, 0x10, 0x14} }, - { {0x51, 0x08, 0x03, 0x10, 0x54} }, - { {0x51, 0x08, 0x03, 0x10, 0x55} }, - { {0x51, 0x08, 0x07, 0x10, 0x54} }, /*case-115*/ - { {0x51, 0x45, 0x03, 0x10, 0x50} }, - { {0x51, 0x3a, 0x03, 0x10, 0x50} }, - { {0x51, 0x30, 0x03, 0x10, 0x50} }, - { {0x51, 0x20, 0x03, 0x10, 0x50} }, - { {0x51, 0x10, 0x03, 0x10, 0x50} }, /*case-120*/ - { {0x51, 0x08, 0x03, 0x10, 0x50} }, - { {0x61, 0x30, 0x03, 0x10, 0x11} }, - { {0x61, 0x08, 0x03, 0x10, 0x11} }, - { {0x61, 0x08, 0x07, 0x10, 0x14} }, - { {0x61, 0x08, 0x03, 0x10, 0x10} } }; /*case-125*/ - -/* wl_tx_dec_power, bt_tx_dec_power, wl_rx_gain, bt_rx_lna_constrain */ -static const struct btc_rf_para rf_para_tx_8822c[] = { - {0, 0, FALSE, 7}, /* for normal */ - {0, 16, FALSE, 7}, /* for WL-CPT */ - {16, 4, TRUE, 4}, - {15, 5, TRUE, 4}, - {7, 8, TRUE, 4}, - {6, 10, TRUE, 4} }; - -static const struct btc_rf_para rf_para_rx_8822c[] = { - {0, 0, FALSE, 7}, /* for normal */ - {0, 16, FALSE, 7}, /* for WL-CPT */ - {14, 5, TRUE, 5}, - {13, 6, TRUE, 5}, - {6, 9, TRUE, 5}, - {4, 11, TRUE, 5} }; - -const struct btc_5g_afh_map afh_5g_8822c[] = { {0, 0, 0} }; - -const struct btc_chip_para btc_chip_para_8822c = { - "8822c", /*.chip_name */ - 20200103, /*.para_ver_date */ - 0x17, /*.para_ver */ - 0x17, /* bt_desired_ver */ - TRUE, /* scbd_support */ - TRUE, /* mailbox_support*/ - TRUE, /* lte_indirect_access */ - TRUE, /* new_scbd10_def */ - BTC_INDIRECT_1700, /* indirect_type */ - BTC_PSTDMA_FORCE_LPSOFF, /* pstdma_type */ - BTC_BTRSSI_DBM, /* bt_rssi_type */ - 15, /*.ant_isolation */ - 2, /*.rssi_tolerance */ - 2, /* rx_path_num */ - ARRAY_SIZE(wl_rssi_step_8822c), /*.wl_rssi_step_num */ - wl_rssi_step_8822c, /*.wl_rssi_step */ - ARRAY_SIZE(bt_rssi_step_8822c), /*.bt_rssi_step_num */ - bt_rssi_step_8822c, /*.bt_rssi_step */ - ARRAY_SIZE(table_sant_8822c), /*.table_sant_num */ - table_sant_8822c, /*.table_sant = */ - ARRAY_SIZE(table_nsant_8822c), /*.table_nsant_num */ - table_nsant_8822c, /*.table_nsant = */ - ARRAY_SIZE(tdma_sant_8822c), /*.tdma_sant_num */ - tdma_sant_8822c, /*.tdma_sant = */ - ARRAY_SIZE(tdma_nsant_8822c), /*.tdma_nsant_num */ - tdma_nsant_8822c, /*.tdma_nsant */ - ARRAY_SIZE(rf_para_tx_8822c), /* wl_rf_para_tx_num */ - rf_para_tx_8822c, /* wl_rf_para_tx */ - rf_para_rx_8822c, /* wl_rf_para_rx */ - 0x24, /*.bt_afh_span_bw20 */ - 0x36, /*.bt_afh_span_bw40 */ - ARRAY_SIZE(afh_5g_8822c), /*.afh_5g_num */ - afh_5g_8822c, /*.afh_5g */ - halbtc8822c_chip_setup /* chip_setup function */ -}; - -void halbtc8822c_cfg_init(struct btc_coexist *btc) -{ - u8 u8tmp = 0; - - /* enable TBTT nterrupt */ - btc->btc_write_1byte_bitmask(btc, 0x550, 0x8, 0x1); - - /* BT report packet sample rate */ - /* 0x790[5:0]=0x5 */ - btc->btc_write_1byte(btc, 0x790, 0x5); - - /* Enable BT counter statistics */ - btc->btc_write_1byte(btc, 0x778, 0x1); - - /* Enable PTA (3-wire function form BT side) */ - btc->btc_write_1byte_bitmask(btc, 0x40, 0x20, 0x1); - btc->btc_write_1byte_bitmask(btc, 0x41, 0x02, 0x1); - - /* Enable PTA (tx/rx signal form WiFi side) */ - btc->btc_write_1byte_bitmask(btc, 0x4c6, BIT(4), 0x1); - btc->btc_write_1byte_bitmask(btc, 0x4c6, BIT(5), 0x0); - /*GNT_BT=1 while select both */ - btc->btc_write_1byte_bitmask(btc, 0x763, BIT(4), 0x1); - - /* BT_CCA = ~GNT_WL_BB, (not or GNT_BT_BB, LTE_Rx */ - btc->btc_write_1byte_bitmask(btc, 0x4fc, 0x3, 0x0); - - /* To avoid RF parameter error */ - btc->btc_set_rf_reg(btc, BTC_RF_B, 0x1, 0xfffff, 0x40000); -} - -void halbtc8822c_cfg_ant_switch(struct btc_coexist *btc) -{} - -void halbtc8822c_cfg_gnt_fix(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; - u32 val = 0x40000; - - /* Because WL-S1 5G RF TRX mask affect by GNT_BT - * Set debug mode on: GNT_BT=0, GNT_WL=1, BT at BTG - */ - if (coex_sta->kt_ver == 0 && - coex_sta->wl_coex_mode == BTC_WLINK_5G) - val = 0x40021; - else if (coex_sta->coex_freerun) /* WL S1 force to GNT_WL=1, GNT_BT=0 */ - val = 0x40021; - else - val = 0x40000; - - if (btc->board_info.btdm_ant_num == 1) /* BT at S1 for 2-Ant */ - val = val | BIT(13); - - btc->btc_set_rf_reg(btc, BTC_RF_B, 0x1, 0xfffff, val); - - /* Because WL-S0 2G RF TRX can't masked by GNT_BT - * enable "WLS0 BB chage RF mode if GNT_BT = 1" for shared-antenna type - * disable:0x1860[3] = 1, enable:0x1860[3] = 0 - * - * enable "AFE DAC off if GNT_WL = 0" - * disable 0x1c30[22] = 0, - * enable: 0x1c30[22] = 1, 0x1c38[12] = 0, 0x1c38[28] = 1 - */ - if (coex_sta->wl_coex_mode == BTC_WLINK_2GFREE) { - btc->btc_write_1byte_bitmask(btc, 0x1c32, BIT(6), 0); - } else { - btc->btc_write_1byte_bitmask(btc, 0x1c32, BIT(6), 1); - btc->btc_write_1byte_bitmask(btc, 0x1c39, BIT(4), 0); - btc->btc_write_1byte_bitmask(btc, 0x1c3b, BIT(4), 1); - } - - /* disable WLS1 BB chage RF mode if GNT_BT - * since RF TRx mask can do it - */ - btc->btc_write_1byte_bitmask(btc, 0x4160, BIT(3), 1); - - /* for kt_ver >= 3: 0x1860[3] = 0 - * always set "WLS0 BB chage RF mode if GNT_WL = 0" - * But the BB DAC will be turned off by GNT_BT = 1 - * 0x1ca7[3] = 1, "don't off BB DAC if GNT_BT = 1" - */ - if (coex_sta->wl_coex_mode == BTC_WLINK_2GFREE) { - btc->btc_write_1byte_bitmask(btc, 0x1860, BIT(3), 1); - btc->btc_write_1byte_bitmask(btc, 0x1ca7, BIT(3), 1); - } else if (coex_sta->wl_coex_mode == BTC_WLINK_5G || - link_info_ext->is_all_under_5g) { - if (coex_sta->kt_ver >= 3) { - btc->btc_write_1byte_bitmask(btc, 0x1860, BIT(3), 0); - btc->btc_write_1byte_bitmask(btc, 0x1ca7, BIT(3), 1); - } else { - btc->btc_write_1byte_bitmask(btc, 0x1860, BIT(3), 1); - } - } else if (btc->board_info.btdm_ant_num == 2 || - coex_sta->wl_coex_mode == BTC_WLINK_25GMPORT) { - /* non-shared-antenna or MCC-2band */ - if (coex_sta->kt_ver >= 3) { - btc->btc_write_1byte_bitmask(btc, 0x1860, BIT(3), 0); - btc->btc_write_1byte_bitmask(btc, 0x1ca7, BIT(3), 1); - } else { - btc->btc_write_1byte_bitmask(btc, 0x1860, BIT(3), 1); - } - } else { /* shared-antenna */ - btc->btc_write_1byte_bitmask(btc, 0x1860, BIT(3), 0); - if (coex_sta->kt_ver >= 3) - btc->btc_write_1byte_bitmask(btc, 0x1ca7, BIT(3), 0); - } -} - -void halbtc8822c_cfg_gnt_debug(struct btc_coexist *btc) -{ - btc->btc_write_1byte_bitmask(btc, 0x66, BIT(4), 0); - btc->btc_write_1byte_bitmask(btc, 0x67, BIT(0), 0); - btc->btc_write_1byte_bitmask(btc, 0x42, BIT(3), 0); - btc->btc_write_1byte_bitmask(btc, 0x65, BIT(7), 0); - /* btc->btc_write_1byte_bitmask(btc, 0x73, BIT(3), 0); */ -} - -void halbtc8822c_cfg_rfe_type(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_rfe_type *rfe_type = &btc->rfe_type; - struct btc_board_info *board_info = &btc->board_info; - - rfe_type->rfe_module_type = board_info->rfe_type; - rfe_type->ant_switch_polarity = 0; - rfe_type->ant_switch_exist = FALSE; - rfe_type->ant_switch_with_bt = FALSE; - rfe_type->ant_switch_type = BTC_SWITCH_NONE; - rfe_type->ant_switch_diversity = FALSE; - - rfe_type->band_switch_exist = FALSE; - rfe_type->band_switch_type = 0; - rfe_type->band_switch_polarity = 0; - - if (btc->board_info.btdm_ant_num == 1) - rfe_type->wlg_at_btg = TRUE; - else - rfe_type->wlg_at_btg = FALSE; - - coex_sta->rf4ce_en = FALSE; - - /* Disable LTE Coex Function in WiFi side */ - btc->btc_write_linderct(btc, 0x38, BIT(7), 0); - - /* BTC_CTT_WL_VS_LTE */ - btc->btc_write_linderct(btc, 0xa0, 0xffff, 0xffff); - - /* BTC_CTT_BT_VS_LTE */ - btc->btc_write_linderct(btc, 0xa4, 0xffff, 0xffff); -} - -void halbtc8822c_cfg_coexinfo_hw(struct btc_coexist *btc) -{ - u8 *cli_buf = btc->cli_buf, u8tmp[4]; - u16 u16tmp[4]; - u32 u32tmp[4]; - boolean lte_coex_on = FALSE; - - u32tmp[0] = btc->btc_read_linderct(btc, 0x38); - u32tmp[1] = btc->btc_read_linderct(btc, 0x54); - u8tmp[0] = btc->btc_read_1byte(btc, 0x73); - lte_coex_on = ((u32tmp[0] & BIT(7)) >> 7) ? TRUE : FALSE; - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s/ %s", - "LTE Coex/Path Owner", ((lte_coex_on) ? "On" : "Off"), - ((u8tmp[0] & BIT(2)) ? "WL" : "BT")); - CL_PRINTF(cli_buf); - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n %-35s = RF:%s_BB:%s/ RF:%s_BB:%s/ %s", - "GNT_WL_Ctrl/GNT_BT_Ctrl/Dbg", - ((u32tmp[0] & BIT(12)) ? "SW" : "HW"), - ((u32tmp[0] & BIT(8)) ? "SW" : "HW"), - ((u32tmp[0] & BIT(14)) ? "SW" : "HW"), - ((u32tmp[0] & BIT(10)) ? "SW" : "HW"), - ((u8tmp[0] & BIT(3)) ? "On" : "Off")); - CL_PRINTF(cli_buf); - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d", - "GNT_WL/GNT_BT", (int)((u32tmp[1] & BIT(2)) >> 2), - (int)((u32tmp[1] & BIT(3)) >> 3)); - CL_PRINTF(cli_buf); - - u32tmp[0] = btc->btc_read_4byte(btc, 0x1c38); - u8tmp[0] = btc->btc_read_1byte(btc, 0x1860); - u8tmp[1] = btc->btc_read_1byte(btc, 0x4160); - u8tmp[2] = btc->btc_read_1byte(btc, 0x1c32); - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n %-35s = %d/ %d/ %d/ %d", - "1860[3]/4160[3]/1c30[22]/1c38[28]", - (int)((u8tmp[0] & BIT(3)) >> 3), - (int)((u8tmp[1] & BIT(3)) >> 3), - (int)((u8tmp[2] & BIT(6)) >> 6), - (int)((u32tmp[0] & BIT(28)) >> 28)); - CL_PRINTF(cli_buf); - - u32tmp[0] = btc->btc_read_4byte(btc, 0x430); - u32tmp[1] = btc->btc_read_4byte(btc, 0x434); - u16tmp[0] = btc->btc_read_2byte(btc, 0x42a); - u16tmp[1] = btc->btc_read_1byte(btc, 0x454); - u8tmp[0] = btc->btc_read_1byte(btc, 0x426); - u8tmp[1] = btc->btc_read_1byte(btc, 0x45e); - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x/ 0x%x/ 0x%x", - "430/434/42a/426/45e[3]/454", - u32tmp[0], u32tmp[1], u16tmp[0], u8tmp[0], - (int)((u8tmp[1] & BIT(3)) >> 3), u16tmp[1]); - CL_PRINTF(cli_buf); - - u32tmp[0] = btc->btc_read_4byte(btc, 0x4c); - u8tmp[2] = btc->btc_read_1byte(btc, 0x64); - u8tmp[0] = btc->btc_read_1byte(btc, 0x4c6); - u8tmp[1] = btc->btc_read_1byte(btc, 0x40); - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x/ 0x%x", - "4c[24:23]/64[0]/4c6[4]/40[5]/RF_0x1", - (int)(u32tmp[0] & (BIT(24) | BIT(23))) >> 23, u8tmp[2] & 0x1, - (int)((u8tmp[0] & BIT(4)) >> 4), - (int)((u8tmp[1] & BIT(5)) >> 5), - (int)(btc->btc_get_rf_reg(btc, BTC_RF_B, 0x1, 0xfffff))); - CL_PRINTF(cli_buf); - - u32tmp[0] = btc->btc_read_4byte(btc, 0x550); - u8tmp[0] = btc->btc_read_1byte(btc, 0x522); - u8tmp[1] = btc->btc_read_1byte(btc, 0x953); - u8tmp[2] = btc->btc_read_1byte(btc, 0xc50); - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n %-35s = 0x%x/ 0x%x/ %s/ 0x%x", - "550/522/4-RxAGC/c50", u32tmp[0], u8tmp[0], - (u8tmp[1] & 0x2) ? "On" : "Off", u8tmp[2]); - CL_PRINTF(cli_buf); - - u8tmp[0] = btc->btc_read_1byte(btc, 0xf8e); - u8tmp[1] = btc->btc_read_1byte(btc, 0xf8f); - u8tmp[2] = btc->btc_read_1byte(btc, 0xd14); - u8tmp[3] = btc->btc_read_1byte(btc, 0xd54); - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d/ %d", - "EVM_A/ EVM_B/ SNR_A/ SNR_B", - (u8tmp[0] > 127 ? u8tmp[0] - 256 : u8tmp[0]), - (u8tmp[1] > 127 ? u8tmp[1] - 256 : u8tmp[1]), - (u8tmp[2] > 127 ? u8tmp[2] - 256 : u8tmp[2]), - (u8tmp[3] > 127 ? u8tmp[3] - 256 : u8tmp[3])); - CL_PRINTF(cli_buf); -} - -void halbtc8822c_cfg_wl_tx_power(struct btc_coexist *btc) -{ - struct btc_coex_dm *coex_dm = &btc->coex_dm; - - btc->btc_reduce_wl_tx_power(btc, coex_dm->cur_wl_pwr_lvl); -} - -void halbtc8822c_cfg_wl_rx_gain(struct btc_coexist *btc) -{ - struct btc_coex_dm *coex_dm = &btc->coex_dm; - struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; - u8 i; - - /* WL Rx Low gain on */ - static const u32 wl_rx_gain_on_HT20[] = {0x00000000}; - static const u32 wl_rx_gain_on_HT40[] = {0x00000000}; - - /* WL Rx Low gain off */ - static const u32 wl_rx_gain_off_HT20[] = {0x00000000}; - static const u32 wl_rx_gain_off_HT40[] = {0x00000000}; - - u32 *wl_rx_gain_on, *wl_rx_gain_off; - - if (coex_dm->cur_wl_rx_low_gain_en) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], Hi-Li Table On!\n"); - BTC_TRACE(trace_buf); -#if 0 - if (link_info_ext->wifi_bw == BTC_WIFI_BW_HT40) - wl_rx_gain_on = wl_rx_gain_on_HT40; - else - wl_rx_gain_on = wl_rx_gain_on_HT20; - for (i = 0; i < ARRAY_SIZE(wl_rx_gain_on); i++) - btc->btc_write_4byte(btc, 0x1d90, wl_rx_gain_on[i]); -#endif - - /* set Rx filter corner RCK offset */ - btc->btc_set_rf_reg(btc, BTC_RF_A, 0xde, 0xfffff, 0x22); - btc->btc_set_rf_reg(btc, BTC_RF_A, 0x1d, 0xfffff, 0x36); - btc->btc_set_rf_reg(btc, BTC_RF_B, 0xde, 0xfffff, 0x22); - btc->btc_set_rf_reg(btc, BTC_RF_B, 0x1d, 0xfffff, 0x36); - } else { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], Hi-Li Table Off!\n"); - BTC_TRACE(trace_buf); - -#if 0 - if (link_info_ext->wifi_bw == BTC_WIFI_BW_HT40) - wl_rx_gain_off = wl_rx_gain_off_HT40; - else - wl_rx_gain_off = wl_rx_gain_off_HT20; - for (i = 0; i < ARRAY_SIZE(wl_rx_gain_off); i++) - btc->btc_write_4byte(btc, 0x1d90, wl_rx_gain_off[i]); -#endif - - /* set Rx filter corner RCK offset */ - btc->btc_set_rf_reg(btc, BTC_RF_A, 0xde, 0xfffff, 0x20); - btc->btc_set_rf_reg(btc, BTC_RF_A, 0x1d, 0xfffff, 0x0); - btc->btc_set_rf_reg(btc, BTC_RF_B, 0xde, 0xfffff, 0x20); - btc->btc_set_rf_reg(btc, BTC_RF_B, 0x1d, 0xfffff, 0x0); - } -} - -void halbtc8822c_cfg_wlan_act_ips(struct btc_coexist *btc) -{} - -void halbtc8822c_chip_setup(struct btc_coexist *btc, u8 type) -{ - switch (type) { - case BTC_CSETUP_INIT_HW: - halbtc8822c_cfg_init(btc); - break; - case BTC_CSETUP_ANT_SWITCH: - halbtc8822c_cfg_ant_switch(btc); - break; - case BTC_CSETUP_GNT_FIX: - halbtc8822c_cfg_gnt_fix(btc); - break; - case BTC_CSETUP_GNT_DEBUG: - halbtc8822c_cfg_gnt_debug(btc); - break; - case BTC_CSETUP_RFE_TYPE: - halbtc8822c_cfg_rfe_type(btc); - break; - case BTC_CSETUP_COEXINFO_HW: - halbtc8822c_cfg_coexinfo_hw(btc); - break; - case BTC_CSETUP_WL_TX_POWER: - halbtc8822c_cfg_wl_tx_power(btc); - break; - case BTC_CSETUP_WL_RX_GAIN: - halbtc8822c_cfg_wl_rx_gain(btc); - break; - case BTC_CSETUP_WLAN_ACT_IPS: - halbtc8822c_cfg_wlan_act_ips(btc); - break; - } -} -#endif +/****************************************************************************** + * + * Copyright(c) 2016 - 2017 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License 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. + * + *****************************************************************************/ + +#include "mp_precomp.h" + +#if (BT_SUPPORT == 1 && COEX_SUPPORT == 1) + +static u8 *trace_buf = &gl_btc_trace_buf[0]; + +/* rssi express in percentage % (dbm = % - 100) */ +static const u8 wl_rssi_step_8822c[] = {60, 50, 44, 30}; +static const u8 bt_rssi_step_8822c[] = {8, 15, 20, 25}; + +/* Shared-Antenna Coex Table */ +static const struct btc_coex_table_para table_sant_8822c[] = { + {0xffffffff, 0xffffffff}, /*case-0*/ + {0x55555555, 0x55555555}, + {0x66555555, 0x66555555}, + {0xaaaaaaaa, 0xaaaaaaaa}, + {0x5a5a5a5a, 0x5a5a5a5a}, + {0xfafafafa, 0xfafafafa}, /*case-5*/ + {0x6a5a5555, 0xaaaaaaaa}, + {0x6a5a56aa, 0x6a5a56aa}, + {0x6a5a5a5a, 0x6a5a5a5a}, + {0x66555555, 0x5a5a5a5a}, + {0x66555555, 0x6a5a5a5a}, /*case-10*/ + {0x66555555, 0xaaaaaaaa}, + {0x66555555, 0x5a5a5aaa}, + {0x66555555, 0x6aaa5aaa}, + {0x66555555, 0xaaaa5aaa}, + {0x66555555, 0xaaaaaaaa}, /*case-15*/ + {0xffff55ff, 0xfafafafa}, + {0xffff55ff, 0x6afa5afa}, + {0xaaffffaa, 0xfafafafa}, + {0xaa5555aa, 0x5a5a5a5a}, + {0xaa5555aa, 0x6a5a5a5a}, /*case-20*/ + {0xaa5555aa, 0xaaaaaaaa}, + {0xffffffff, 0x5a5a5a5a}, + {0xffffffff, 0x5a5a5a5a}, + {0xffffffff, 0x55555555}, + {0xffffffff, 0x5a5a5aaa}, /*case-25*/ + {0x55555555, 0x5a5a5a5a}, + {0x55555555, 0xaaaaaaaa}, + {0x55555555, 0x6a5a6a5a}, + {0x66556655, 0x66556655}, + {0x66556aaa, 0x6a5a6aaa}, /*case-30*/ + {0xffffffff, 0x5aaa5aaa}, + {0x56555555, 0x5a5a5aaa}, + {0xdaffdaff, 0xdaffdaff}, + {0x6a555a5a, 0x5a5a5a5a}, + {0xe5555555, 0xe5555555}, /*case-35*/ + {0xea5a5a5a, 0xea5a5a5a} }; + +/* Non-Shared-Antenna Coex Table */ +static const struct btc_coex_table_para table_nsant_8822c[] = { + {0xffffffff, 0xffffffff}, /*case-100*/ + {0x55555555, 0x55555555}, + {0x66555555, 0x66555555}, + {0xaaaaaaaa, 0xaaaaaaaa}, + {0x5a5a5a5a, 0x5a5a5a5a}, + {0xfafafafa, 0xfafafafa}, /*case-105*/ + {0x5afa5afa, 0x5afa5afa}, + {0x55555555, 0xfafafafa}, + {0x66555555, 0xfafafafa}, + {0x66555555, 0x5a5a5a5a}, + {0x66555555, 0x6a5a5a5a}, /*case-110*/ + {0x66555555, 0xaaaaaaaa}, + {0xffff55ff, 0xfafafafa}, + {0xffff55ff, 0x5afa5afa}, + {0xffff55ff, 0xaaaaaaaa}, + {0xffff55ff, 0xffff55ff}, /*case-115*/ + {0xaaffffaa, 0x5afa5afa}, + {0xaaffffaa, 0xaaaaaaaa}, + {0xffffffff, 0xfafafafa}, + {0xffffffff, 0x5afa5afa}, + {0xffffffff, 0xaaaaaaaa},/*case-120*/ + {0x55ff55ff, 0x5afa5afa}, + {0x55ff55ff, 0xaaaaaaaa}, + {0x55ff55ff, 0x55ff55ff}, + {0x6a555a5a, 0xfafafafa} }; + +/* Shared-Antenna TDMA*/ +static const struct btc_tdma_para tdma_sant_8822c[] = { + { {0x00, 0x00, 0x00, 0x00, 0x00} }, /*case-0*/ + { {0x61, 0x45, 0x03, 0x11, 0x11} }, /*case-1*/ + { {0x61, 0x3a, 0x03, 0x11, 0x11} }, + { {0x61, 0x30, 0x03, 0x11, 0x11} }, + { {0x61, 0x20, 0x03, 0x11, 0x11} }, + { {0x61, 0x10, 0x03, 0x11, 0x11} }, /*case-5*/ + { {0x61, 0x45, 0x03, 0x11, 0x10} }, + { {0x61, 0x3a, 0x03, 0x11, 0x10} }, + { {0x61, 0x30, 0x03, 0x11, 0x10} }, + { {0x61, 0x20, 0x03, 0x11, 0x10} }, + { {0x61, 0x10, 0x03, 0x11, 0x10} }, /*case-10*/ + { {0x61, 0x08, 0x03, 0x11, 0x14} }, + { {0x61, 0x08, 0x03, 0x10, 0x14} }, + { {0x51, 0x08, 0x03, 0x10, 0x54} }, + { {0x51, 0x08, 0x03, 0x10, 0x55} }, + { {0x51, 0x08, 0x07, 0x10, 0x54} }, /*case-15*/ + { {0x51, 0x45, 0x03, 0x10, 0x50} }, + { {0x51, 0x3a, 0x03, 0x10, 0x50} }, + { {0x51, 0x30, 0x03, 0x10, 0x50} }, + { {0x51, 0x20, 0x03, 0x10, 0x50} }, + { {0x51, 0x10, 0x03, 0x10, 0x50} }, /*case-20*/ + { {0x51, 0x4a, 0x03, 0x10, 0x50} }, + { {0x51, 0x0c, 0x03, 0x10, 0x54} }, + { {0x55, 0x08, 0x03, 0x10, 0x54} }, + { {0x65, 0x10, 0x03, 0x11, 0x10} }, + { {0x51, 0x10, 0x03, 0x10, 0x51} }, /*case-25*/ + { {0x51, 0x08, 0x03, 0x10, 0x50} }, + { {0x61, 0x08, 0x03, 0x11, 0x11} } }; + + +/* Non-Shared-Antenna TDMA*/ +static const struct btc_tdma_para tdma_nsant_8822c[] = { + { {0x00, 0x00, 0x00, 0x00, 0x00} }, /*case-100*/ + { {0x61, 0x45, 0x03, 0x11, 0x11} }, /*case-101*/ + { {0x61, 0x3a, 0x03, 0x11, 0x11} }, + { {0x61, 0x30, 0x03, 0x11, 0x11} }, + { {0x61, 0x20, 0x03, 0x11, 0x11} }, + { {0x61, 0x10, 0x03, 0x11, 0x11} }, /*case-105*/ + { {0x61, 0x45, 0x03, 0x11, 0x10} }, + { {0x61, 0x3a, 0x03, 0x11, 0x10} }, + { {0x61, 0x30, 0x03, 0x11, 0x10} }, + { {0x61, 0x20, 0x03, 0x11, 0x10} }, + { {0x61, 0x10, 0x03, 0x11, 0x10} }, /*case-110*/ + { {0x61, 0x08, 0x03, 0x11, 0x14} }, + { {0x61, 0x08, 0x03, 0x10, 0x14} }, + { {0x51, 0x08, 0x03, 0x10, 0x54} }, + { {0x51, 0x08, 0x03, 0x10, 0x55} }, + { {0x51, 0x08, 0x07, 0x10, 0x54} }, /*case-115*/ + { {0x51, 0x45, 0x03, 0x10, 0x50} }, + { {0x51, 0x3a, 0x03, 0x10, 0x50} }, + { {0x51, 0x30, 0x03, 0x10, 0x50} }, + { {0x51, 0x20, 0x03, 0x10, 0x50} }, + { {0x51, 0x10, 0x03, 0x10, 0x50} }, /*case-120*/ + { {0x51, 0x08, 0x03, 0x10, 0x50} }, + { {0x61, 0x30, 0x03, 0x10, 0x11} }, + { {0x61, 0x08, 0x03, 0x10, 0x11} }, + { {0x61, 0x08, 0x07, 0x10, 0x14} }, + { {0x61, 0x08, 0x03, 0x10, 0x10} }, /*case-125*/ + { {0x61, 0x08, 0x03, 0x11, 0x15} } }; + +/* wl_tx_dec_power, bt_tx_dec_power, wl_rx_gain, bt_rx_lna_constrain */ +static const struct btc_rf_para rf_para_tx_8822c[] = { + {0, 0, FALSE, 7}, /* for normal */ + {0, 16, FALSE, 7}, /* for WL-CPT */ + {16, 4, TRUE, 4}, /* 2 for RCU SDR */ + {15, 5, TRUE, 4}, + {7, 8, TRUE, 4}, + {6, 10, TRUE, 4}, + {16, 4, TRUE, 4}, /* 6 for RCU OFC */ + {15, 5, TRUE, 4}, + {7, 8, TRUE, 4}, + {6, 10, TRUE, 4}, + {16, 4, TRUE, 4}, /* 10 for A2DP SDR */ + {15, 5, TRUE, 4}, + {7, 8, TRUE, 4}, + {6, 10, TRUE, 4}, + {16, 4, TRUE, 4}, /* 14 for A2DP OFC */ + {15, 5, TRUE, 4}, + {7, 8, TRUE, 4}, + {6, 10, TRUE, 4}, + {16, 4, TRUE, 4}, /* 18 for A2DP+RCU SDR */ + {15, 5, TRUE, 4}, + {7, 8, TRUE, 4}, + {6, 10, TRUE, 4}, + {16, 4, TRUE, 4}, /* 22 for A2DP+RCU OFC */ + {15, 5, TRUE, 4}, + {7, 8, TRUE, 4}, + {6, 10, TRUE, 4} }; + +static const struct btc_rf_para rf_para_rx_8822c[] = { + {0, 0, FALSE, 7}, /* for normal */ + {0, 16, FALSE, 7}, /* for WL-CPT */ + {14, 5, TRUE, 5}, /* 2 for RCU SDR */ + {13, 6, TRUE, 5}, + {6, 9, TRUE, 5}, + {4, 11, TRUE, 5}, + {16, 4, TRUE, 4}, /* 6 for RCU OFC */ + {15, 5, TRUE, 4}, + {7, 8, TRUE, 4}, + {6, 10, TRUE, 4}, + {16, 4, TRUE, 4}, /* 10 for A2DP SDR */ + {15, 5, TRUE, 4}, + {7, 8, TRUE, 4}, + {6, 10, TRUE, 4}, + {16, 4, TRUE, 4}, /* 14 for A2DP OFC */ + {15, 5, TRUE, 4}, + {7, 8, TRUE, 4}, + {6, 10, TRUE, 4}, + {16, 4, TRUE, 4}, /* 18 for A2DP+RCU SDR */ + {15, 5, TRUE, 4}, + {7, 8, TRUE, 4}, + {6, 10, TRUE, 4}, + {16, 4, TRUE, 4}, /* 22 for A2DP+RCU OFC */ + {15, 5, TRUE, 4}, + {7, 8, TRUE, 4}, + {6, 10, TRUE, 4} }; + +const struct btc_5g_afh_map afh_5g_8822c[] = { {0, 0, 0} }; + +const struct btc_chip_para btc_chip_para_8822c = { + "8822c", /*.chip_name */ + 20240125, /*.para_ver_date */ + 0x27, /*.para_ver */ + 0x20, /* bt_desired_ver */ + 0x7001c, /* wl_desired_ver */ + TRUE, /* scbd_support */ + 0xaa, /* scbd_reg*/ + BTC_SCBD_16_BIT, /* scbd_bit_num */ + TRUE, /* mailbox_support*/ + TRUE, /* lte_indirect_access */ + TRUE, /* new_scbd10_def */ + BTC_INDIRECT_1700, /* indirect_type */ + BTC_PSTDMA_FORCE_LPSOFF, /* pstdma_type */ + BTC_BTRSSI_DBM, /* bt_rssi_type */ + 15, /*.ant_isolation */ + 2, /*.rssi_tolerance */ + 2, /* rx_path_num */ + ARRAY_SIZE(wl_rssi_step_8822c), /*.wl_rssi_step_num */ + wl_rssi_step_8822c, /*.wl_rssi_step */ + ARRAY_SIZE(bt_rssi_step_8822c), /*.bt_rssi_step_num */ + bt_rssi_step_8822c, /*.bt_rssi_step */ + ARRAY_SIZE(table_sant_8822c), /*.table_sant_num */ + table_sant_8822c, /*.table_sant = */ + ARRAY_SIZE(table_nsant_8822c), /*.table_nsant_num */ + table_nsant_8822c, /*.table_nsant = */ + ARRAY_SIZE(tdma_sant_8822c), /*.tdma_sant_num */ + tdma_sant_8822c, /*.tdma_sant = */ + ARRAY_SIZE(tdma_nsant_8822c), /*.tdma_nsant_num */ + tdma_nsant_8822c, /*.tdma_nsant */ + ARRAY_SIZE(rf_para_tx_8822c), /* wl_rf_para_tx_num */ + rf_para_tx_8822c, /* wl_rf_para_tx */ + rf_para_rx_8822c, /* wl_rf_para_rx */ + 0x24, /*.bt_afh_span_bw20 */ + 0x36, /*.bt_afh_span_bw40 */ + ARRAY_SIZE(afh_5g_8822c), /*.afh_5g_num */ + afh_5g_8822c, /*.afh_5g */ + halbtc8822c_chip_setup /* chip_setup function */ +}; + +void halbtc8822c_cfg_init(struct btc_coexist *btc) +{ + u8 u8tmp = 0; + + /* enable TBTT nterrupt */ + btc->btc_write_1byte_bitmask(btc, 0x550, 0x8, 0x1); + + /* BT report packet sample rate */ + /* 0x790[5:0]=0x5 */ + btc->btc_write_1byte(btc, 0x790, 0x5); + + /* Enable BT counter statistics */ + btc->btc_write_1byte(btc, 0x778, 0x1); + + /* Enable PTA (3-wire function form BT side) */ + btc->btc_write_1byte_bitmask(btc, 0x40, 0x20, 0x1); + btc->btc_write_1byte_bitmask(btc, 0x41, 0x02, 0x1); + + /* Enable PTA (tx/rx signal form WiFi side) */ + btc->btc_write_1byte_bitmask(btc, 0x4c6, BIT(4), 0x1); + btc->btc_write_1byte_bitmask(btc, 0x4c6, BIT(5), 0x0); + /*GNT_BT=1 while select both */ + btc->btc_write_1byte_bitmask(btc, 0x763, BIT(4), 0x1); + + /* BT_CCA = ~GNT_WL_BB, (not or GNT_BT_BB, LTE_Rx */ + btc->btc_write_1byte_bitmask(btc, 0x4fc, 0x3, 0x0); + + /* To avoid RF parameter error */ + btc->btc_set_rf_reg(btc, BTC_RF_B, 0x1, 0xfffff, 0x40000); +} + +void halbtc8822c_cfg_ant_switch(struct btc_coexist *btc) +{} + +void halbtc8822c_cfg_gnt_fix(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; + u32 val = 0x40000; + + /* Because WL-S1 5G RF TRX mask affect by GNT_BT + * Set debug mode on: GNT_BT=0, GNT_WL=1, BT at BTG + */ + if (coex_sta->kt_ver == 0 && + coex_sta->wl_coex_mode == BTC_WLINK_5G) + val = 0x40021; + else if (coex_sta->coex_freerun) /* WL S1 force to GNT_WL=1, GNT_BT=0 */ + val = 0x40021; + else + val = 0x40000; + + if (btc->board_info.btdm_ant_num == 1) /* BT at S1 for 2-Ant */ + val = val | BIT(13); + + btc->btc_set_rf_reg(btc, BTC_RF_B, 0x1, 0xfffff, val); + + /* Because WL-S0 2G RF TRX can't masked by GNT_BT + * enable "WLS0 BB chage RF mode if GNT_BT = 1" for shared-antenna type + * disable:0x1860[3] = 1, enable:0x1860[3] = 0 + * + * enable "AFE DAC off if GNT_WL = 0" + * disable 0x1c30[22] = 0, + * enable: 0x1c30[22] = 1, 0x1c38[12] = 0, 0x1c38[28] = 1 + */ + if (coex_sta->wl_coex_mode == BTC_WLINK_2GFREE) { + btc->btc_write_1byte_bitmask(btc, 0x1c32, BIT(6), 0); + } else { + btc->btc_write_1byte_bitmask(btc, 0x1c32, BIT(6), 1); + btc->btc_write_1byte_bitmask(btc, 0x1c39, BIT(4), 0); + btc->btc_write_1byte_bitmask(btc, 0x1c3b, BIT(4), 1); + } + + /* disable WLS1 BB chage RF mode if GNT_BT + * since RF TRx mask can do it + */ + btc->btc_write_1byte_bitmask(btc, 0x4160, BIT(3), 1); + + /* for kt_ver >= 3: 0x1860[3] = 0 + * always set "WLS0 BB chage RF mode if GNT_WL = 0" + * But the BB DAC will be turned off by GNT_BT = 1 + * 0x1ca7[3] = 1, "don't off BB DAC if GNT_BT = 1" + */ + if (coex_sta->wl_coex_mode == BTC_WLINK_2GFREE) { + btc->btc_write_1byte_bitmask(btc, 0x1860, BIT(3), 1); + btc->btc_write_1byte_bitmask(btc, 0x1ca7, BIT(3), 1); + } else if (coex_sta->wl_coex_mode == BTC_WLINK_5G || + link_info_ext->is_all_under_5g) { + if (coex_sta->kt_ver >= 3) { + btc->btc_write_1byte_bitmask(btc, 0x1860, BIT(3), 0); + btc->btc_write_1byte_bitmask(btc, 0x1ca7, BIT(3), 1); + } else { + btc->btc_write_1byte_bitmask(btc, 0x1860, BIT(3), 1); + } + } else if (btc->board_info.btdm_ant_num == 2 || + coex_sta->wl_coex_mode == BTC_WLINK_25GMPORT) { + /* non-shared-antenna or MCC-2band */ + if (coex_sta->kt_ver >= 3) { + btc->btc_write_1byte_bitmask(btc, 0x1860, BIT(3), 0); + btc->btc_write_1byte_bitmask(btc, 0x1ca7, BIT(3), 1); + } else { + btc->btc_write_1byte_bitmask(btc, 0x1860, BIT(3), 1); + } + } else { /* shared-antenna */ + btc->btc_write_1byte_bitmask(btc, 0x1860, BIT(3), 0); + if (coex_sta->kt_ver >= 3) + btc->btc_write_1byte_bitmask(btc, 0x1ca7, BIT(3), 0); + } +} + +void halbtc8822c_cfg_gnt_debug(struct btc_coexist *btc) +{ + btc->btc_write_1byte_bitmask(btc, 0x66, BIT(4), 0); + btc->btc_write_1byte_bitmask(btc, 0x67, BIT(0), 0); + btc->btc_write_1byte_bitmask(btc, 0x42, BIT(3), 0); + btc->btc_write_1byte_bitmask(btc, 0x65, BIT(7), 0); + /* btc->btc_write_1byte_bitmask(btc, 0x73, BIT(3), 0); */ +} + +void halbtc8822c_cfg_rfe_type(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_rfe_type *rfe_type = &btc->rfe_type; + struct btc_board_info *board_info = &btc->board_info; + + rfe_type->rfe_module_type = board_info->rfe_type; + rfe_type->ant_switch_polarity = 0; + rfe_type->ant_switch_exist = FALSE; + rfe_type->ant_switch_with_bt = FALSE; + rfe_type->ant_switch_type = BTC_SWITCH_NONE; + rfe_type->ant_switch_diversity = FALSE; + + rfe_type->band_switch_exist = FALSE; + rfe_type->band_switch_type = 0; + rfe_type->band_switch_polarity = 0; + + if (btc->board_info.btdm_ant_num == 1) + rfe_type->wlg_at_btg = TRUE; + else + rfe_type->wlg_at_btg = FALSE; + + coex_sta->rf4ce_en = FALSE; + + /* Disable LTE Coex Function in WiFi side */ + btc->btc_write_linderct(btc, 0x38, BIT(7), 0); + + /* BTC_CTT_WL_VS_LTE */ + btc->btc_write_linderct(btc, 0xa0, 0xffff, 0xffff); + + /* BTC_CTT_BT_VS_LTE */ + btc->btc_write_linderct(btc, 0xa4, 0xffff, 0xffff); +} + +void halbtc8822c_cfg_coexinfo_hw(struct btc_coexist *btc) +{ + u8 *cli_buf = btc->cli_buf, u8tmp[4]; + u16 u16tmp[4]; + u32 u32tmp[4]; + boolean lte_coex_on = FALSE; + + u32tmp[0] = btc->btc_read_linderct(btc, 0x38); + u32tmp[1] = btc->btc_read_linderct(btc, 0x54); + u8tmp[0] = btc->btc_read_1byte(btc, 0x73); + lte_coex_on = ((u32tmp[0] & BIT(7)) >> 7) ? TRUE : FALSE; + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s/ %s", + "LTE Coex/Path Owner", ((lte_coex_on) ? "On" : "Off"), + ((u8tmp[0] & BIT(2)) ? "WL" : "BT")); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = RF:%s_BB:%s/ RF:%s_BB:%s/ %s", + "GNT_WL_Ctrl/GNT_BT_Ctrl/Dbg", + ((u32tmp[0] & BIT(12)) ? "SW" : "HW"), + ((u32tmp[0] & BIT(8)) ? "SW" : "HW"), + ((u32tmp[0] & BIT(14)) ? "SW" : "HW"), + ((u32tmp[0] & BIT(10)) ? "SW" : "HW"), + ((u8tmp[0] & BIT(3)) ? "On" : "Off")); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d", + "GNT_WL/GNT_BT", (int)((u32tmp[1] & BIT(2)) >> 2), + (int)((u32tmp[1] & BIT(3)) >> 3)); + CL_PRINTF(cli_buf); + + u32tmp[0] = btc->btc_read_4byte(btc, 0x1c38); + u8tmp[0] = btc->btc_read_1byte(btc, 0x1860); + u8tmp[1] = btc->btc_read_1byte(btc, 0x4160); + u8tmp[2] = btc->btc_read_1byte(btc, 0x1c32); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %d/ %d/ %d/ %d", + "1860[3]/4160[3]/1c30[22]/1c38[28]", + (int)((u8tmp[0] & BIT(3)) >> 3), + (int)((u8tmp[1] & BIT(3)) >> 3), + (int)((u8tmp[2] & BIT(6)) >> 6), + (int)((u32tmp[0] & BIT(28)) >> 28)); + CL_PRINTF(cli_buf); + + u32tmp[0] = btc->btc_read_4byte(btc, 0x430); + u32tmp[1] = btc->btc_read_4byte(btc, 0x434); + u16tmp[0] = btc->btc_read_2byte(btc, 0x42a); + u16tmp[1] = btc->btc_read_1byte(btc, 0x454); + u8tmp[0] = btc->btc_read_1byte(btc, 0x426); + u8tmp[1] = btc->btc_read_1byte(btc, 0x45e); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x/ 0x%x/ 0x%x", + "430/434/42a/426/45e[3]/454", + u32tmp[0], u32tmp[1], u16tmp[0], u8tmp[0], + (int)((u8tmp[1] & BIT(3)) >> 3), u16tmp[1]); + CL_PRINTF(cli_buf); + + u32tmp[0] = btc->btc_read_4byte(btc, 0x4c); + u8tmp[2] = btc->btc_read_1byte(btc, 0x64); + u8tmp[0] = btc->btc_read_1byte(btc, 0x4c6); + u8tmp[1] = btc->btc_read_1byte(btc, 0x40); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x/ 0x%x", + "4c[24:23]/64[0]/4c6[4]/40[5]/RF_0x1", + (int)(u32tmp[0] & (BIT(24) | BIT(23))) >> 23, u8tmp[2] & 0x1, + (int)((u8tmp[0] & BIT(4)) >> 4), + (int)((u8tmp[1] & BIT(5)) >> 5), + (int)(btc->btc_get_rf_reg(btc, BTC_RF_B, 0x1, 0xfffff))); + CL_PRINTF(cli_buf); + + u32tmp[0] = btc->btc_read_4byte(btc, 0x550); + u8tmp[0] = btc->btc_read_1byte(btc, 0x522); + u8tmp[1] = btc->btc_read_1byte(btc, 0x953); + u8tmp[2] = btc->btc_read_1byte(btc, 0xc50); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = 0x%x/ 0x%x/ %s/ 0x%x", + "550/522/4-RxAGC/c50", u32tmp[0], u8tmp[0], + (u8tmp[1] & 0x2) ? "On" : "Off", u8tmp[2]); + CL_PRINTF(cli_buf); +} + +void halbtc8822c_cfg_wl_tx_power(struct btc_coexist *btc) +{ + struct btc_coex_dm *coex_dm = &btc->coex_dm; + + btc->btc_reduce_wl_tx_power(btc, coex_dm->cur_wl_pwr_lvl); +} + +void halbtc8822c_cfg_wl_rx_gain(struct btc_coexist *btc) +{ + struct btc_coex_dm *coex_dm = &btc->coex_dm; + struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; + u8 i; + + /* WL Rx Low gain on */ + static const u32 wl_rx_gain_on_HT20[] = {0xff000003, + 0xbd120003, 0xbe100003, 0xbf080003, 0xbf060003, 0xbf050003, + 0xbc140003, 0xbb160003, 0xba180003, 0xb91a0003, 0xb81c0003, + 0xb71e0003, 0xb4200003, 0xb5220003, 0xb4240003, 0xb3260003, + 0xb2280003, 0xb12a0003, 0xb02c0003, 0xaf2e0003, 0xae300003, + 0xad320003, 0xac340003, 0xab360003, 0x8d380003, 0x8c3a0003, + 0x8b3c0003, 0x8a3e0003, 0x6e400003, 0x6d420003, 0x6c440003, + 0x6b460003, 0x6a480003, 0x694a0003, 0x684c0003, 0x674e0003, + 0x66500003, 0x65520003, 0x64540003, 0x64560003, 0x007e0403}; + + static const u32 wl_rx_gain_on_HT40[] = {0xff000003, + 0xbd120003, 0xbe100003, 0xbf080003, 0xbf060003, 0xbf050003, + 0xbc140003, 0xbb160003, 0xba180003, 0xb91a0003, 0xb81c0003, + 0xb71e0003, 0xb4200003, 0xb5220003, 0xb4240003, 0xb3260003, + 0xb2280003, 0xb12a0003, 0xb02c0003, 0xaf2e0003, 0xae300003, + 0xad320003, 0xac340003, 0xab360003, 0x8d380003, 0x8c3a0003, + 0x8b3c0003, 0x8a3e0003, 0x6e400003, 0x6d420003, 0x6c440003, + 0x6b460003, 0x6a480003, 0x694a0003, 0x684c0003, 0x674e0003, + 0x66500003, 0x65520003, 0x64540003, 0x64560003, 0x007e0403}; + + /* WL Rx Low gain off */ + static const u32 wl_rx_gain_off_HT20[] = {0xff000003, + 0xf4120003, 0xf5100003, 0xf60e0003, 0xf70c0003, 0xf80a0003, + 0xf3140003, 0xf2160003, 0xf1180003, 0xf01a0003, 0xef1c0003, + 0xee1e0003, 0xed200003, 0xec220003, 0xeb240003, 0xea260003, + 0xe9280003, 0xe82a0003, 0xe72c0003, 0xe62e0003, 0xe5300003, + 0xc8320003, 0xc7340003, 0xc6360003, 0xc5380003, 0xc43a0003, + 0xc33c0003, 0xc23e0003, 0xc1400003, 0xc0420003, 0xa5440003, + 0xa4460003, 0xa3480003, 0xa24a0003, 0xa14c0003, 0x834e0003, + 0x82500003, 0x81520003, 0x80540003, 0x65560003, 0x007e0403}; + + static const u32 wl_rx_gain_off_HT40[] = {0xff000003, + 0xf4120003, 0xf5100003, 0xf60e0003, 0xf70c0003, 0xf80a0003, + 0xf3140003, 0xf2160003, 0xf1180003, 0xf01a0003, 0xef1c0003, + 0xee1e0003, 0xed200003, 0xec220003, 0xeb240003, 0xea260003, + 0xe9280003, 0xe82a0003, 0xe72c0003, 0xe62e0003, 0xe5300003, + 0xc8320003, 0xc7340003, 0xc6360003, 0xc5380003, 0xc43a0003, + 0xc33c0003, 0xc23e0003, 0xc1400003, 0xc0420003, 0xa5440003, + 0xa4460003, 0xa3480003, 0xa24a0003, 0xa14c0003, 0x834e0003, + 0x82500003, 0x81520003, 0x80540003, 0x65560003, 0x007e0403}; + + u32 *wl_rx_gain_on, *wl_rx_gain_off; + + if (coex_dm->cur_wl_rx_low_gain_en) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], Hi-Li Table On!\n"); + BTC_TRACE(trace_buf); +#if 0 + if (link_info_ext->wifi_bw == BTC_WIFI_BW_HT40) + wl_rx_gain_on = wl_rx_gain_on_HT40; + else + wl_rx_gain_on = wl_rx_gain_on_HT20; + for (i = 0; i < ARRAY_SIZE(wl_rx_gain_on); i++) + btc->btc_write_4byte(btc, 0x1d90, wl_rx_gain_on[i]); + + /* set Rx filter corner RCK offset */ + btc->btc_set_rf_reg(btc, BTC_RF_A, 0xde, 0xfffff, 0x22); + btc->btc_set_rf_reg(btc, BTC_RF_A, 0x1d, 0xfffff, 0x36); + btc->btc_set_rf_reg(btc, BTC_RF_B, 0xde, 0xfffff, 0x22); + btc->btc_set_rf_reg(btc, BTC_RF_B, 0x1d, 0xfffff, 0x36); +#endif + } else { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], Hi-Li Table Off!\n"); + BTC_TRACE(trace_buf); + +#if 0 + if (link_info_ext->wifi_bw == BTC_WIFI_BW_HT40) + wl_rx_gain_off = wl_rx_gain_off_HT40; + else + wl_rx_gain_off = wl_rx_gain_off_HT20; + for (i = 0; i < ARRAY_SIZE(wl_rx_gain_off); i++) + btc->btc_write_4byte(btc, 0x1d90, wl_rx_gain_off[i]); + + /* set Rx filter corner RCK offset */ + btc->btc_set_rf_reg(btc, BTC_RF_A, 0xde, 0xfffff, 0x20); + btc->btc_set_rf_reg(btc, BTC_RF_A, 0x1d, 0xfffff, 0x0); + btc->btc_set_rf_reg(btc, BTC_RF_B, 0xde, 0xfffff, 0x20); + btc->btc_set_rf_reg(btc, BTC_RF_B, 0x1d, 0xfffff, 0x0); +#endif + + } +} + +void halbtc8822c_cfg_wlan_act_ips(struct btc_coexist *btc) +{} + +void halbtc8822c_cfg_bt_ctrl_act(struct btc_coexist *btc) +{} + +void halbtc8822c_chip_setup(struct btc_coexist *btc, u8 type) +{ + switch (type) { + case BTC_CSETUP_INIT_HW: + halbtc8822c_cfg_init(btc); + break; + case BTC_CSETUP_ANT_SWITCH: + halbtc8822c_cfg_ant_switch(btc); + break; + case BTC_CSETUP_GNT_FIX: + halbtc8822c_cfg_gnt_fix(btc); + break; + case BTC_CSETUP_GNT_DEBUG: + halbtc8822c_cfg_gnt_debug(btc); + break; + case BTC_CSETUP_RFE_TYPE: + halbtc8822c_cfg_rfe_type(btc); + break; + case BTC_CSETUP_COEXINFO_HW: + halbtc8822c_cfg_coexinfo_hw(btc); + break; + case BTC_CSETUP_WL_TX_POWER: + halbtc8822c_cfg_wl_tx_power(btc); + break; + case BTC_CSETUP_WL_RX_GAIN: + halbtc8822c_cfg_wl_rx_gain(btc); + break; + case BTC_CSETUP_WLAN_ACT_IPS: + halbtc8822c_cfg_wlan_act_ips(btc); + break; + case BTC_CSETUP_BT_CTRL_ACT: + halbtc8822c_cfg_bt_ctrl_act(btc); + break; + } +} +#endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/btc/halbtc8822c.h b/drivers/net/wireless/realtek/rtl8822ce/hal/btc/halbtc8822c.h index 20c12703..dfdb2fd6 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/btc/halbtc8822c.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/btc/halbtc8822c.h @@ -23,5 +23,5 @@ void halbtc8822c_cfg_coexinfo_hw(struct btc_coexist *btc); void halbtc8822c_cfg_wl_tx_power(struct btc_coexist *btc); void halbtc8822c_cfg_wl_rx_gain(struct btc_coexist *btc); void halbtc8822c_cfg_wlan_act_ips(struct btc_coexist *btc); - +void halbtc8822c_cfg_bt_ctrl_act(struct btc_coexist *btc); diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/btc/halbtccommon.c b/drivers/net/wireless/realtek/rtl8822ce/hal/btc/halbtccommon.c old mode 100755 new mode 100644 index eed15240..e87b90ea --- a/drivers/net/wireless/realtek/rtl8822ce/hal/btc/halbtccommon.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/btc/halbtccommon.c @@ -1,5076 +1,5538 @@ -/****************************************************************************** - * - * Copyright(c) 2016 - 2017 Realtek Corporation. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License 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. - * - *****************************************************************************/ - -#include "mp_precomp.h" - -#if (BT_SUPPORT == 1 && COEX_SUPPORT == 1) - -static u8 *trace_buf = &gl_btc_trace_buf[0]; -static const u32 coex_ver_date = 20200103; -static const u32 coex_ver = 0x17; -static const u32 wl_fw_desired_ver = 0x70011; - -static u8 -rtw_btc_rssi_state(struct btc_coexist *btc, u8 pre_state, - u8 rssi, u8 rssi_thresh) -{ - const struct btc_chip_para *chip_para = btc->chip_para; - u8 next_state, tol = chip_para->rssi_tolerance; - - if (pre_state == BTC_RSSI_STATE_LOW || - pre_state == BTC_RSSI_STATE_STAY_LOW) { - if (rssi >= (rssi_thresh + tol)) - next_state = BTC_RSSI_STATE_HIGH; - else - next_state = BTC_RSSI_STATE_STAY_LOW; - } else { - if (rssi < rssi_thresh) - next_state = BTC_RSSI_STATE_LOW; - else - next_state = BTC_RSSI_STATE_STAY_HIGH; - } - - return next_state; -} - -static void -rtw_btc_limited_tx(struct btc_coexist *btc, boolean force_exec, - boolean tx_limit_en, boolean ampdu_limit_en) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; - const struct btc_chip_para *chip_para = btc->chip_para; - boolean wl_b_mode = FALSE; - - if (!chip_para->scbd_support) - return; - - /* Force Max Tx retry limit = 8 */ - if (!force_exec && tx_limit_en == coex_sta->wl_tx_limit_en && - ampdu_limit_en == coex_sta->wl_ampdu_limit_en) - return; - - /* backup MAC reg */ - if (!coex_sta->wl_tx_limit_en) { - coex_sta->wl_arfb1 = btc->btc_read_4byte(btc, REG_DARFRC); - coex_sta->wl_arfb2 = btc->btc_read_4byte(btc, REG_DARFRCH); - - coex_sta->wl_txlimit = btc->btc_read_2byte(btc, - REG_RETRY_LIMIT); - } - - if (!coex_sta->wl_ampdu_limit_en) - coex_sta->wl_ampdulen = - btc->btc_read_1byte(btc, REG_AMPDU_MAX_TIME_V1); - - coex_sta->wl_tx_limit_en = tx_limit_en; - coex_sta->wl_ampdu_limit_en = ampdu_limit_en; - - if (tx_limit_en) { - /* Set BT polluted packet on for Tx rate adaptive - * Set queue life time to avoid can't reach tx retry limit - * if tx is always break by GNT_BT. - */ - btc->btc_write_1byte_bitmask(btc, REG_TX_HANG_CTRL, - BIT_EN_GNT_BT_AWAKE, 0x1); - - /* queue life time can't on if 2-port */ - if (link_info_ext->num_of_active_port <= 1) - btc->btc_write_1byte_bitmask(btc, REG_LIFETIME_EN, 0xf, - 0xf); - - /* Max Tx retry limit = 8*/ - btc->btc_write_2byte(btc, REG_RETRY_LIMIT, 0x0808); - - btc->btc_get(btc, BTC_GET_BL_WIFI_UNDER_B_MODE, &wl_b_mode); - - /* Auto rate fallback step within 8 retry*/ - if (wl_b_mode) { - btc->btc_write_4byte(btc, REG_DARFRC, 0x1000000); - btc->btc_write_4byte(btc, REG_DARFRCH, 0x1010101); - } else { - btc->btc_write_4byte(btc, REG_DARFRC, 0x1000000); - btc->btc_write_4byte(btc, REG_DARFRCH, 0x4030201); - } - } else { - /* Set BT polluted packet on for Tx rate adaptive not - *including Tx retry break by PTA, 0x45c[19] =1 - */ - btc->btc_write_1byte_bitmask(btc, REG_TX_HANG_CTRL, - BIT_EN_GNT_BT_AWAKE, 0x0); - - /* Set queue life time to avoid can't reach tx retry limit - * if tx is always break by GNT_BT. - */ - btc->btc_write_1byte_bitmask(btc, REG_LIFETIME_EN, 0xf, 0x0); - - /* Recovery Max Tx retry limit*/ - btc->btc_write_2byte(btc, REG_RETRY_LIMIT, - coex_sta->wl_txlimit); - btc->btc_write_4byte(btc, REG_DARFRC, coex_sta->wl_arfb1); - btc->btc_write_4byte(btc, REG_DARFRCH, coex_sta->wl_arfb2); - } - - if (ampdu_limit_en) - btc->btc_write_1byte(btc, REG_AMPDU_MAX_TIME_V1, 0x20); - else - btc->btc_write_1byte(btc, REG_AMPDU_MAX_TIME_V1, - coex_sta->wl_ampdulen); -} - -static void -rtw_btc_low_penalty_ra(struct btc_coexist *btc, boolean force_exec, - boolean low_penalty_ra, u8 thres) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_coex_dm *coex_dm = &btc->coex_dm; - - if (!force_exec) { - if (low_penalty_ra == coex_dm->cur_low_penalty_ra && - thres == coex_sta->wl_ra_thres) - return; - } - - if (low_penalty_ra) - btc->btc_phydm_modify_RA_PCR_threshold(btc, 0, thres); - else - btc->btc_phydm_modify_RA_PCR_threshold(btc, 0, 0); - - coex_dm->cur_low_penalty_ra = low_penalty_ra; - coex_sta->wl_ra_thres = thres; -} - -static void -rtw_btc_limited_wl(struct btc_coexist *btc) -{ - struct btc_coex_dm *coex_dm = &btc->coex_dm; - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; - - if (link_info_ext->is_all_under_5g || - link_info_ext->num_of_active_port == 0 || - coex_dm->bt_status == BTC_BTSTATUS_NCON_IDLE) { - rtw_btc_low_penalty_ra(btc, NM_EXCU, FALSE, 0); - rtw_btc_limited_tx(btc, NM_EXCU, FALSE, FALSE); - } else if (link_info_ext->num_of_active_port > 1) { - rtw_btc_low_penalty_ra(btc, NM_EXCU, TRUE, 30); - rtw_btc_limited_tx(btc, NM_EXCU, TRUE, TRUE); - } else { - if (link_info_ext->is_p2p_connected) - rtw_btc_low_penalty_ra(btc, NM_EXCU, TRUE, 30); - else - rtw_btc_low_penalty_ra(btc, NM_EXCU, TRUE, 15); - - if (coex_sta->bt_hid_exist || coex_sta->bt_hid_pair_num > 0 || - coex_sta->bt_hfp_exist) - rtw_btc_limited_tx(btc, NM_EXCU, TRUE, TRUE); - else - rtw_btc_limited_tx(btc, NM_EXCU, TRUE, FALSE); - } -} - -static void -rtw_btc_mailbox_operation(struct btc_coexist *btc, u8 h2c_id, u8 h2c_len, - u8 *h2c_para) -{ - const struct btc_chip_para *chip_para = btc->chip_para; - u8 buf[6] = {0}; - - if (chip_para->mailbox_support) { - btc->btc_fill_h2c(btc, h2c_id, h2c_len, h2c_para); - return; - } - - switch (h2c_id) { - case 0x61: - buf[0] = 3; - buf[1] = 0x1; /* polling enable, 1=enable, 0=disable */ - buf[2] = 0x2; /* polling time in seconds */ - buf[3] = 0x1; /* auto report enable, 1=enable, 0=disable */ - - btc->btc_set(btc, BTC_SET_ACT_CTRL_BT_INFO, (void *)&buf[0]); - break; - case 0x62: - buf[0] = 4; - buf[1] = 0x3; /* OP_Code */ - buf[2] = 0x2; /* OP_Code_Length */ - buf[3] = (h2c_para[0] != 0) ? 0x1 : 0x0; /* OP_Code_Content */ - buf[4] = h2c_para[0];/* pwr_level */ - - btc->btc_set(btc, BTC_SET_ACT_CTRL_BT_COEX, (void *)&buf[0]); - break; - case 0x63: - buf[0] = 3; - buf[1] = 0x1; /* OP_Code */ - buf[2] = 0x1; /* OP_Code_Length */ - buf[3] = (h2c_para[0] == 0x1) ? 0x1 : 0x0; /* OP_Code_Content */ - - btc->btc_set(btc, BTC_SET_ACT_CTRL_BT_COEX, (void *)&buf[0]); - break; - case 0x66: - buf[0] = 5; - buf[1] = 0x5; /* OP_Code */ - buf[2] = 0x3; /* OP_Code_Length */ - buf[3] = h2c_para[0]; /* OP_Code_Content */ - buf[4] = h2c_para[1]; - buf[5] = h2c_para[2]; - - btc->btc_set(btc, BTC_SET_ACT_CTRL_BT_COEX, (void *)&buf[0]); - break; - } -} - -static boolean -rtw_btc_freerun_check(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_coex_dm *coex_dm = &btc->coex_dm; - struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; - u8 bt_rssi; - - if (coex_sta->force_freerun) - return TRUE; - - if (coex_sta->force_tdd) - return FALSE; - - if (coex_sta->bt_disabled) - return FALSE; - - if (btc->board_info.btdm_ant_num == 1 || - btc->board_info.ant_distance <= 5 || !coex_sta->wl_gl_busy) - return FALSE; - - if (btc->board_info.ant_distance >= 40 || - coex_sta->bt_hid_pair_num >= 2) - return TRUE; - - /* ant_distance = 5 ~ 40 */ - if (BTC_RSSI_HIGH(coex_dm->wl_rssi_state[1]) && - BTC_RSSI_HIGH(coex_dm->bt_rssi_state[0])) - return TRUE; - - if (link_info_ext->traffic_dir == BTC_WIFI_TRAFFIC_TX) - bt_rssi = coex_dm->bt_rssi_state[0]; - else - bt_rssi = coex_dm->bt_rssi_state[1]; - - if (BTC_RSSI_HIGH(coex_dm->wl_rssi_state[3]) && - BTC_RSSI_HIGH(bt_rssi) && - coex_sta->cnt_wl[BTC_CNT_WL_SCANAP] <= 5) - return TRUE; - - return FALSE; -} - -static void -rtw_btc_wl_leakap(struct btc_coexist *btc, boolean enable) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - u8 h2c_para[2] = {0xc, 0}; - - if (coex_sta->wl_leak_ap == enable) - return; - - if (enable) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], turn on Leak-AP Rx Protection!!\n"); - - h2c_para[1] = 0x0; - } else { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], turn off Leak-AP Rx Protection!!\n"); - - h2c_para[1] = 0x1; - } - - BTC_TRACE(trace_buf); - btc->btc_fill_h2c(btc, 0x69, 2, h2c_para); - coex_sta->wl_leak_ap = enable; - coex_sta->cnt_wl[BTC_CNT_WL_LEAKAP_NORX] = 0; -} - -static void -rtw_btc_wl_ccklock_action(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - u8 h2c_parameter[2] = {0}, ap_leak_rx_cnt = 0; - boolean wifi_busy = FALSE; - - if (btc->manual_control || btc->stop_coex_dm) - return; - - if (!coex_sta->wl_gl_busy || - coex_sta->wl_iot_peer == BTC_IOT_PEER_CISCO) { - coex_sta->cnt_wl[BTC_CNT_WL_LEAKAP_NORX] = 0; - return; - } - - ap_leak_rx_cnt = coex_sta->wl_fw_dbg_info[7]; - /* Get realtime wifi_busy status */ - btc->btc_get(btc, BTC_GET_BL_WIFI_BUSY, &wifi_busy); - - if (coex_sta->wl_leak_ap && coex_sta->wl_force_lps_ctrl && - !coex_sta->wl_cck_lock_ever) { - if (ap_leak_rx_cnt <= 5 && wifi_busy) - coex_sta->cnt_wl[BTC_CNT_WL_LEAKAP_NORX]++; - else - coex_sta->cnt_wl[BTC_CNT_WL_LEAKAP_NORX] = 0; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], Leak-AP Rx extend cnt = %d!!\n", - coex_sta->cnt_wl[BTC_CNT_WL_LEAKAP_NORX]); - BTC_TRACE(trace_buf); - - /* If 7-streak ap_leak_rx_cnt <= 5, turn off leak-AP for TP*/ - if (coex_sta->cnt_wl[BTC_CNT_WL_LEAKAP_NORX] >= 7) - rtw_btc_wl_leakap(btc, FALSE); - } else if (!coex_sta->wl_leak_ap && coex_sta->wl_cck_lock) { - rtw_btc_wl_leakap(btc, TRUE); - } -} - -static void -rtw_btc_wl_ccklock_detect(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_coex_dm *coex_dm = &btc->coex_dm; - struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; - boolean is_cck_lock_rate = FALSE; - - if (coex_dm->bt_status == BTC_BTSTATUS_INQ_PAGE || - coex_sta->bt_setup_link) - return; - - if (coex_sta->wl_rx_rate <= BTC_CCK_2 || - coex_sta->wl_rts_rx_rate <= BTC_CCK_2) - is_cck_lock_rate = TRUE; - - if (link_info_ext->is_connected && coex_sta->wl_gl_busy && - BTC_RSSI_HIGH(coex_dm->wl_rssi_state[3]) && - (coex_dm->bt_status == BTC_BTSTATUS_ACL_BUSY || - coex_dm->bt_status == BTC_BTSTATUS_ACL_SCO_BUSY || - coex_dm->bt_status == BTC_BTSTATUS_SCO_BUSY)) { - if (is_cck_lock_rate) { - coex_sta->wl_cck_lock = TRUE; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], cck locking...\n"); - BTC_TRACE(trace_buf); - } else { - coex_sta->wl_cck_lock = FALSE; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], cck unlock...\n"); - BTC_TRACE(trace_buf); - } - } else { - coex_sta->wl_cck_lock = FALSE; - } - - /* CCK lock identification */ - if (coex_sta->wl_cck_lock && !coex_sta->wl_cck_lock_pre) - btc->btc_set_timer(btc, BTC_TIMER_WL_CCKLOCK, 3); - - coex_sta->wl_cck_lock_pre = coex_sta->wl_cck_lock; -} - -static void -rtw_btc_set_extend_btautoslot(struct btc_coexist *btc, u8 thres) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - u8 h2c_para[2] = {0x9, 0x32}; - - if (coex_sta->bt_ext_autoslot_thres == thres) - return; - - h2c_para[1] = thres; /* thres must be 50 ~ 80*/ - - coex_sta->bt_ext_autoslot_thres = h2c_para[1]; - - btc->btc_fill_h2c(btc, 0x69, 2, h2c_para); -} - -static void -rtw_btc_set_tdma_timer_base(struct btc_coexist *btc, u8 type) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - u16 tbtt_interval = 100; - u8 h2c_para[2] = {0xb, 0x1}; - - btc->btc_get(btc, BTC_GET_U2_BEACON_PERIOD, &tbtt_interval); - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], tbtt_interval = %d\n", tbtt_interval); - BTC_TRACE(trace_buf); - - /* Add for JIRA coex-256 */ - if (type == 3 && tbtt_interval >= 100) { /* 50ms-slot */ - if (coex_sta->tdma_timer_base == 3) - return; - - h2c_para[1] = (tbtt_interval / 50) - 1; - h2c_para[1] = h2c_para[1] | 0xc0; /* 50ms-slot */ - coex_sta->tdma_timer_base = 3; - } else if (tbtt_interval < 80 && tbtt_interval > 0) { - if (coex_sta->tdma_timer_base == 2) - return; - h2c_para[1] = (100 / tbtt_interval); - - if (100 % tbtt_interval != 0) - h2c_para[1] = h2c_para[1] + 1; - - h2c_para[1] = h2c_para[1] & 0x3f; - coex_sta->tdma_timer_base = 2; - } else if (tbtt_interval >= 180) { - if (coex_sta->tdma_timer_base == 1) - return; - h2c_para[1] = (tbtt_interval / 100); - - if (tbtt_interval % 100 <= 80) - h2c_para[1] = h2c_para[1] - 1; - - h2c_para[1] = h2c_para[1] & 0x3f; - h2c_para[1] = h2c_para[1] | 0x80; - coex_sta->tdma_timer_base = 1; - } else { - if (coex_sta->tdma_timer_base == 0) - return; - h2c_para[1] = 0x1; - coex_sta->tdma_timer_base = 0; - } - - btc->btc_fill_h2c(btc, 0x69, 2, h2c_para); - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): h2c_0x69 = 0x%x\n", __func__, h2c_para[1]); - BTC_TRACE(trace_buf); - - /* no 5ms_wl_slot_extend for 4-slot mode */ - if (coex_sta->tdma_timer_base == 3) - rtw_btc_wl_ccklock_action(btc); -} - -static void -rtw_btc_set_wl_pri_mask(struct btc_coexist *btc, u8 bitmap, u8 data) -{ - u32 addr; - - addr = REG_BT_COEX_TABLE_H + (bitmap / 8); - bitmap = bitmap % 8; - - btc->btc_write_1byte_bitmask(btc, addr, BIT(bitmap), data); -} - -static void -rtw_btc_set_bt_golden_rx_range(struct btc_coexist *btc, boolean force_exec, - u8 profile_id, u8 shift_level) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - u16 para; - - if (profile_id > 3) - return; - - if (!force_exec && - shift_level == coex_sta->bt_golden_rx_shift[profile_id]) - return; - - coex_sta->bt_golden_rx_shift[profile_id] = shift_level; - - para = (profile_id << 8) | ((0x100 - shift_level) & 0xff); - - btc->btc_set(btc, BTC_SET_BL_BT_GOLDEN_RX_RANGE, ¶); - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): para = 0x%04x\n", __func__, para); - BTC_TRACE(trace_buf); -} - -static void -rtw_btc_query_bt_info(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - u8 h2c_parameter[1] = {0x1}; - - if (coex_sta->bt_disabled) - return; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_mailbox_operation(btc, 0x61, 1, h2c_parameter); -} - -static void -rtw_btc_gnt_debug(struct btc_coexist *btc, boolean isenable) -{ - if (!isenable) - btc->btc_write_1byte_bitmask(btc, 0x73, 0x8, 0x0); - else - btc->chip_para->chip_setup(btc, BTC_CSETUP_GNT_DEBUG); -} - -static void -rtw_btc_gnt_workaround(struct btc_coexist *btc, boolean force_exec, u8 mode) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - - if (!force_exec) { - if (coex_sta->gnt_workaround_state == coex_sta->wl_coex_mode) - return; - } - - coex_sta->gnt_workaround_state = coex_sta->wl_coex_mode; - - btc->chip_para->chip_setup(btc, BTC_CSETUP_GNT_FIX); -} - -static void -rtw_btc_monitor_bt_enable(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_coex_dm *coex_dm = &btc->coex_dm; - const struct btc_chip_para *chip_para = btc->chip_para; - boolean bt_disabled = FALSE; - u16 scbd; - - if (chip_para->scbd_support) { - btc->btc_read_scbd(btc, &scbd); - bt_disabled = (scbd & BTC_SCBD_BT_ONOFF) ? FALSE : TRUE; - } else { - if (coex_sta->cnt_bt[BTC_CNT_BT_DISABLE] >= 2) - bt_disabled = TRUE; - } - - btc->btc_set(btc, BTC_SET_BL_BT_DISABLE, &bt_disabled); - - if (coex_sta->bt_disabled != bt_disabled) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], BT is from %s to %s!!\n", - (coex_sta->bt_disabled ? "disabled" : "enabled"), - (bt_disabled ? "disabled" : "enabled")); - BTC_TRACE(trace_buf); - coex_sta->bt_disabled = bt_disabled; - - coex_sta->bt_supported_feature = 0; - coex_sta->bt_supported_version = 0; - coex_sta->bt_ble_scan_type = 0; - coex_sta->bt_ble_scan_para[0] = 0; - coex_sta->bt_ble_scan_para[1] = 0; - coex_sta->bt_ble_scan_para[2] = 0; - coex_sta->bt_reg_vendor_ac = 0xffff; - coex_sta->bt_reg_vendor_ae = 0xffff; - coex_sta->bt_a2dp_vendor_id = 0; - coex_sta->bt_a2dp_device_name = 0; - coex_sta->bt_iqk_state = 0; - coex_dm->cur_bt_lna_lvl = 0; - btc->bt_info.bt_get_fw_ver = 0; - - /*for win10 BT disable->enable trigger wifi scan issue */ - if (!coex_sta->bt_disabled) { - coex_sta->bt_reenable = TRUE; - btc->btc_set_timer(btc, BTC_TIMER_BT_REENABLE, 15); - } else { - coex_sta->bt_reenable = FALSE; - } - } -} - -static void -rtw_btc_update_bt_sut_info(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - u32 val = 0; - - if (coex_sta->bt_profile_num == 0) { - /* clear golden rx range if no PAN exist */ - if (coex_sta->bt_golden_rx_shift[3] != 0) - rtw_btc_set_bt_golden_rx_range(btc, FC_EXCU, 3, 0); - return; - } - - if (coex_sta->bt_a2dp_exist) - rtw_btc_set_bt_golden_rx_range(btc, FC_EXCU, 2, 0); - else - coex_sta->bt_sut_pwr_lvl[2] = 0xff; - - if (coex_sta->bt_hfp_exist) - rtw_btc_set_bt_golden_rx_range(btc, FC_EXCU, 0, 0); - else - coex_sta->bt_sut_pwr_lvl[0] = 0xff; - - if (coex_sta->bt_hid_exist) - rtw_btc_set_bt_golden_rx_range(btc, FC_EXCU, 1, 0); - else - coex_sta->bt_sut_pwr_lvl[1] = 0xff; - - if (coex_sta->bt_pan_exist) { - rtw_btc_set_bt_golden_rx_range(btc, FC_EXCU, 3, - coex_sta->bt_golden_rx_shift[3]); - } else { - coex_sta->bt_golden_rx_shift[3] = 0; - coex_sta->bt_sut_pwr_lvl[3] = 0xff; - } -} - -static void -rtw_btc_update_wl_link_info(struct btc_coexist *btc, u8 reason) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_coex_dm *coex_dm = &btc->coex_dm; - struct btc_wifi_link_info_ext *linfo_ext = &btc->wifi_link_info_ext; - struct btc_wifi_link_info linfo; - const struct btc_chip_para *chip_para = btc->chip_para; - u8 wifi_central_chnl = 0, num_of_wifi_link = 0, i, rssi_state; - u32 wifi_link_status = 0, wifi_bw; - s32 wl_rssi; - boolean isunder5G = FALSE, ismcc25g = FALSE, is_p2p_connected = FALSE, - plus_bt = FALSE; - - btc->btc_get(btc, BTC_GET_BL_WIFI_SCAN, &linfo_ext->is_scan); - btc->btc_get(btc, BTC_GET_BL_WIFI_LINK, &linfo_ext->is_link); - btc->btc_get(btc, BTC_GET_BL_WIFI_ROAM, &linfo_ext->is_roam); - btc->btc_get(btc, BTC_GET_BL_WIFI_LW_PWR_STATE, &linfo_ext->is_32k); - btc->btc_get(btc, BTC_GET_BL_WIFI_4_WAY_PROGRESS, &linfo_ext->is_4way); - btc->btc_get(btc, BTC_GET_BL_WIFI_CONNECTED, &linfo_ext->is_connected); - btc->btc_get(btc, BTC_GET_U4_WIFI_TRAFFIC_DIR, &linfo_ext->traffic_dir); - btc->btc_get(btc, BTC_GET_U4_WIFI_BW, &linfo_ext->wifi_bw); - btc->btc_get(btc, BTC_GET_U4_WIFI_LINK_STATUS, &wifi_link_status); - linfo_ext->port_connect_status = wifi_link_status & 0xffff; - - btc->btc_get(btc, BTC_GET_BL_WIFI_LINK_INFO, &linfo); - btc->wifi_link_info = linfo; - - btc->btc_get(btc, BTC_GET_U1_WIFI_CENTRAL_CHNL, &wifi_central_chnl); - coex_sta->wl_center_ch = wifi_central_chnl; - - btc->btc_get(btc, BTC_GET_S4_WIFI_RSSI, &wl_rssi); - for (i = 0; i < 4; i++) { - rssi_state = coex_dm->wl_rssi_state[i]; - rssi_state = rtw_btc_rssi_state(btc, rssi_state, - (u8)(wl_rssi & 0xff), - chip_para->wl_rssi_step[i]); - coex_dm->wl_rssi_state[i] = rssi_state; - } - - if (coex_sta->wl_linkscan_proc || coex_sta->wl_hi_pri_task1 || - coex_sta->wl_hi_pri_task2 || coex_sta->wl_gl_busy) - btc->btc_write_scbd(btc, BTC_SCBD_SCAN, TRUE); - else - btc->btc_write_scbd(btc, BTC_SCBD_SCAN, FALSE); - - /* Check scan/connect/special-pkt action first */ - switch (reason) { - case BTC_RSN_5GSCANSTART: - case BTC_RSN_5GSWITCHBAND: - case BTC_RSN_5GCONSTART: - - isunder5G = TRUE; - break; - case BTC_RSN_2GSCANSTART: - case BTC_RSN_2GSWITCHBAND: - case BTC_RSN_2GCONSTART: - - isunder5G = FALSE; - break; - case BTC_RSN_2GCONFINISH: - case BTC_RSN_5GCONFINISH: - case BTC_RSN_2GMEDIA: - case BTC_RSN_5GMEDIA: - case BTC_RSN_BTINFO: - case BTC_RSN_PERIODICAL: - case BTC_RSN_TIMERUP: - case BTC_RSN_WLSTATUS: - case BTC_RSN_2GSPECIALPKT: - case BTC_RSN_5GSPECIALPKT: - default: - switch (linfo.link_mode) { - case BTC_LINK_5G_MCC_GO_STA: - case BTC_LINK_5G_MCC_GC_STA: - case BTC_LINK_5G_SCC_GO_STA: - case BTC_LINK_5G_SCC_GC_STA: - - isunder5G = TRUE; - break; - case BTC_LINK_2G_MCC_GO_STA: - case BTC_LINK_2G_MCC_GC_STA: - case BTC_LINK_2G_SCC_GO_STA: - case BTC_LINK_2G_SCC_GC_STA: - - isunder5G = FALSE; - break; - case BTC_LINK_25G_MCC_GO_STA: - case BTC_LINK_25G_MCC_GC_STA: - - isunder5G = FALSE; - ismcc25g = TRUE; - break; - case BTC_LINK_ONLY_STA: - if (linfo.sta_center_channel > 14) - isunder5G = TRUE; - else - isunder5G = FALSE; - break; - case BTC_LINK_ONLY_GO: - case BTC_LINK_ONLY_GC: - case BTC_LINK_ONLY_AP: - default: - if (linfo.p2p_center_channel > 14) - isunder5G = TRUE; - else - isunder5G = FALSE; - break; - } - break; - } - - linfo_ext->is_all_under_5g = isunder5G; - linfo_ext->is_mcc_25g = ismcc25g; - - if (wifi_link_status & WIFI_STA_CONNECTED) - num_of_wifi_link++; - - if (wifi_link_status & WIFI_AP_CONNECTED) - num_of_wifi_link++; - - if (wifi_link_status & WIFI_P2P_GO_CONNECTED) { - if (!(wifi_link_status & WIFI_AP_CONNECTED)) - num_of_wifi_link++; - is_p2p_connected = TRUE; - } - - if (wifi_link_status & WIFI_P2P_GC_CONNECTED) { - num_of_wifi_link++; - is_p2p_connected = TRUE; - } - - linfo_ext->num_of_active_port = num_of_wifi_link; - linfo_ext->is_p2p_connected = is_p2p_connected; - - if (linfo.link_mode == BTC_LINK_ONLY_GO && linfo.bhotspot) - linfo_ext->is_ap_mode = TRUE; - else - linfo_ext->is_ap_mode = FALSE; - - if (linfo_ext->is_p2p_connected && coex_sta->bt_link_exist) - plus_bt = TRUE; - - btc->btc_set(btc, BTC_SET_BL_MIRACAST_PLUS_BT, &plus_bt); - - if (linfo_ext->is_scan || linfo_ext->is_link || - linfo_ext->is_roam || linfo_ext->is_4way || - reason == BTC_RSN_2GSCANSTART || - reason == BTC_RSN_2GSWITCHBAND || - reason == BTC_RSN_2GCONSTART || - reason == BTC_RSN_2GSPECIALPKT) - coex_sta->wl_linkscan_proc = TRUE; - else - coex_sta->wl_linkscan_proc = FALSE; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], scan = %d, link = %d, roam = %d 4way = %d!!!\n", - linfo_ext->is_scan, linfo_ext->is_link, - linfo_ext->is_roam, - linfo_ext->is_4way); - BTC_TRACE(trace_buf); - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], wifi_link_info: link_mode=%d, STA_Ch=%d, P2P_Ch=%d, AnyClient_Join_Go=%d !\n", - linfo.link_mode, - linfo.sta_center_channel, - linfo.p2p_center_channel, - linfo.bany_client_join_go); - BTC_TRACE(trace_buf); - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], wifi_link_info: center_ch=%d, is_all_under_5g=%d, is_mcc_25g=%d!\n", - coex_sta->wl_center_ch, - linfo_ext->is_all_under_5g, - linfo_ext->is_mcc_25g); - BTC_TRACE(trace_buf); - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], wifi_link_info: port_connect_status=0x%x, active_port_cnt=%d, P2P_Connect=%d!\n", - linfo_ext->port_connect_status, - linfo_ext->num_of_active_port, - linfo_ext->is_p2p_connected); - BTC_TRACE(trace_buf); - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], Update reason = %s\n", - run_reason_string[reason]); - BTC_TRACE(trace_buf); - - if (btc->manual_control || btc->stop_coex_dm) - return; - - /* coex-276 P2P-Go beacon request can't release issue - * Only PCIe/USB can set 0x454[6] = 1 to solve this issue, - * WL SDIO/USB interface need driver support. - */ -#ifdef PLATFORM_WINDOWS - if (btc->chip_interface != BTC_INTF_SDIO) - btc->btc_write_1byte_bitmask(btc, REG_CCK_CHECK, - BIT_EN_BCN_PKT_REL, 0x1); - else - btc->btc_write_1byte_bitmask(btc, REG_CCK_CHECK, - BIT_EN_BCN_PKT_REL, 0x0); -#endif -} - -static void -rtw_btc_update_bt_link_info(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_coex_dm *coex_dm = &btc->coex_dm; - const struct btc_chip_para *chip_para = btc->chip_para; - boolean bt_busy = FALSE, increase_scan_dev_num = FALSE, - scan_type_change = FALSE; - u8 i, scan_type, rssi_state; - - /* update wl/bt rssi by btinfo */ - for (i = 0; i < 4; i++) { - rssi_state = coex_dm->bt_rssi_state[i]; - rssi_state = rtw_btc_rssi_state(btc, rssi_state, - coex_sta->bt_rssi, - chip_para->bt_rssi_step[i]); - coex_dm->bt_rssi_state[i] = rssi_state; - } - - if (coex_sta->bt_ble_scan_en) { - scan_type = btc->btc_get_ble_scan_type_from_bt(btc); - - if (scan_type != coex_sta->bt_ble_scan_type) - scan_type_change = TRUE; - - coex_sta->bt_ble_scan_type = scan_type; - } - - if (scan_type_change) { - u32 *p = NULL; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], BTinfo HiByte1[5] check, query BLE Scan type!!\n"); - BTC_TRACE(trace_buf); - - if ((coex_sta->bt_ble_scan_type & 0x1) == 0x1) { - coex_sta->bt_init_scan = TRUE; - p = &coex_sta->bt_ble_scan_para[0]; - *p = btc->btc_get_ble_scan_para_from_bt(btc, 0x1); - } else { - coex_sta->bt_init_scan = FALSE; - } - - if ((coex_sta->bt_ble_scan_type & 0x2) == 0x2) { - p = &coex_sta->bt_ble_scan_para[1]; - *p = btc->btc_get_ble_scan_para_from_bt(btc, 0x2); - } - - if ((coex_sta->bt_ble_scan_type & 0x4) == 0x4) { - p = &coex_sta->bt_ble_scan_para[2]; - *p = btc->btc_get_ble_scan_para_from_bt(btc, 0x4); - } - } - - coex_sta->bt_profile_num = 0; - - /* set link exist status */ - if (!(coex_sta->bt_info_lb2 & BTC_INFO_CONNECTION)) { - coex_sta->bt_link_exist = FALSE; - coex_sta->bt_pan_exist = FALSE; - coex_sta->bt_a2dp_exist = FALSE; - coex_sta->bt_hid_exist = FALSE; - coex_sta->bt_hfp_exist = FALSE; - coex_sta->bt_msft_mr_exist = FALSE; - } else { /* connection exists */ - coex_sta->bt_link_exist = TRUE; - if (coex_sta->bt_info_lb2 & BTC_INFO_FTP) { - coex_sta->bt_pan_exist = TRUE; - coex_sta->bt_profile_num++; - } else { - coex_sta->bt_pan_exist = FALSE; - } - - if (coex_sta->bt_info_lb2 & BTC_INFO_A2DP) { - coex_sta->bt_a2dp_exist = TRUE; - coex_sta->bt_profile_num++; - } else { - coex_sta->bt_a2dp_exist = FALSE; - } - - if (coex_sta->bt_info_lb2 & BTC_INFO_HID) { - coex_sta->bt_hid_exist = TRUE; - coex_sta->bt_profile_num++; - } else { - coex_sta->bt_hid_exist = FALSE; - } - - if (coex_sta->bt_info_lb2 & BTC_INFO_SCO_ESCO) { - coex_sta->bt_hfp_exist = TRUE; - coex_sta->bt_profile_num++; - } else { - coex_sta->bt_hfp_exist = FALSE; - } - } - - if (coex_sta->bt_info_lb2 & BTC_INFO_INQ_PAGE) { - coex_dm->bt_status = BTC_BTSTATUS_INQ_PAGE; - } else if (!(coex_sta->bt_info_lb2 & BTC_INFO_CONNECTION)) { - coex_dm->bt_status = BTC_BTSTATUS_NCON_IDLE; - coex_sta->bt_multi_link_remain = FALSE; - } else if (coex_sta->bt_info_lb2 == BTC_INFO_CONNECTION) { - if (coex_sta->bt_msft_mr_exist) - coex_dm->bt_status = BTC_BTSTATUS_ACL_BUSY; - else - coex_dm->bt_status = BTC_BTSTATUS_CON_IDLE; - } else if ((coex_sta->bt_info_lb2 & BTC_INFO_SCO_ESCO) || - (coex_sta->bt_info_lb2 & BTC_INFO_SCO_BUSY)) { - if (coex_sta->bt_info_lb2 & BTC_INFO_ACL_BUSY) - coex_dm->bt_status = BTC_BTSTATUS_ACL_SCO_BUSY; - else - coex_dm->bt_status = BTC_BTSTATUS_SCO_BUSY; - } else if (coex_sta->bt_info_lb2 & BTC_INFO_ACL_BUSY) { - coex_dm->bt_status = BTC_BTSTATUS_ACL_BUSY; - } else { - coex_dm->bt_status = BTC_BTSTATUS_MAX; - } - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s(), %s!!!\n", - __func__, bt_status_string[coex_dm->bt_status]); - BTC_TRACE(trace_buf); - - if (coex_dm->bt_status == BTC_BTSTATUS_ACL_BUSY || - coex_dm->bt_status == BTC_BTSTATUS_SCO_BUSY || - coex_dm->bt_status == BTC_BTSTATUS_ACL_SCO_BUSY) { - bt_busy = TRUE; - increase_scan_dev_num = TRUE; - } else { - bt_busy = FALSE; - increase_scan_dev_num = FALSE; - } - - btc->btc_set(btc, BTC_SET_BL_BT_TRAFFIC_BUSY, &bt_busy); - btc->btc_set(btc, BTC_SET_BL_INC_SCAN_DEV_NUM, &increase_scan_dev_num); - - if (coex_sta->bt_profile_num != coex_sta->bt_profile_num_pre) { - rtw_btc_update_bt_sut_info(btc); - coex_sta->bt_profile_num_pre = coex_sta->bt_profile_num; - - if (!coex_sta->bt_a2dp_exist) { - coex_sta->bt_a2dp_vendor_id = 0; - coex_sta->bt_a2dp_device_name = 0; - coex_sta->bt_a2dp_flush_time = 0; - } - } - - coex_sta->cnt_bt[BTC_CNT_BT_INFOUPDATE]++; -} - -static void -rtw_btc_update_wl_ch_info(struct btc_coexist *btc, u8 type) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_coex_dm *coex_dm = &btc->coex_dm; - const struct btc_chip_para *chip_para = btc->chip_para; - struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; - struct btc_wifi_link_info *link_info = &btc->wifi_link_info; - u8 h2c_para[3] = {0}, i, wl_center_ch = 0; - - if (btc->manual_control) - return; - - if (btc->stop_coex_dm || btc->wl_rf_state_off) { - wl_center_ch = 0; - } else if (type != BTC_MEDIA_DISCONNECT || - (type == BTC_MEDIA_DISCONNECT && - link_info_ext->num_of_active_port > 0)) { - if (link_info_ext->num_of_active_port == 1) { - if (link_info_ext->is_p2p_connected) - wl_center_ch = link_info->p2p_center_channel; - else - wl_center_ch = link_info->sta_center_channel; - } else { /* port > 2 */ - if (link_info->p2p_center_channel > 14 && - link_info->sta_center_channel > 14) - wl_center_ch = link_info->p2p_center_channel; - else if (link_info->p2p_center_channel <= 14) - wl_center_ch = link_info->p2p_center_channel; - else if (link_info->sta_center_channel <= 14) - wl_center_ch = link_info->sta_center_channel; - } - } - - if (wl_center_ch == 0 || - (btc->board_info.btdm_ant_num == 1 && wl_center_ch <= 14)) { - h2c_para[0] = 0; - h2c_para[1] = 0; - h2c_para[2] = 0; - } else if (wl_center_ch <= 14) { - h2c_para[0] = 0x1; - h2c_para[1] = wl_center_ch; - - if (link_info_ext->wifi_bw == BTC_WIFI_BW_HT40) - h2c_para[2] = chip_para->bt_afh_span_bw40; - else - h2c_para[2] = chip_para->bt_afh_span_bw20; - } else if (chip_para->afh_5g_num > 1) { /* for 5G */ - for (i = 0; i < chip_para->afh_5g_num; i++) { - if (wl_center_ch == chip_para->afh_5g[i].wl_5g_ch) { - h2c_para[0] = 0x3; - h2c_para[1] = chip_para->afh_5g[i].bt_skip_ch; - h2c_para[2] = chip_para->afh_5g[i].bt_skip_span; - break; - } - } - } - - coex_dm->wl_chnl_info[0] = h2c_para[0]; - coex_dm->wl_chnl_info[1] = h2c_para[1]; - coex_dm->wl_chnl_info[2] = h2c_para[2]; - rtw_btc_mailbox_operation(btc, 0x66, 3, h2c_para); - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s: para[0:2] = 0x%x 0x%x 0x%x\n", - __func__, h2c_para[0], h2c_para[1], h2c_para[2]); - BTC_TRACE(trace_buf); -} - -static void -rtw_btc_set_wl_tx_power(struct btc_coexist *btc, - boolean force_exec, u8 wl_pwr_dec_lvl) -{ - const struct btc_chip_para *chip_para = btc->chip_para; - struct btc_coex_dm *coex_dm = &btc->coex_dm; - - if (!force_exec && wl_pwr_dec_lvl == coex_dm->cur_wl_pwr_lvl) - return; - - coex_dm->cur_wl_pwr_lvl = wl_pwr_dec_lvl; - - chip_para->chip_setup(btc, BTC_CSETUP_WL_TX_POWER); - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s(): level = %d\n", - __func__, wl_pwr_dec_lvl); - BTC_TRACE(trace_buf); -} - -static void -rtw_btc_set_bt_tx_power(struct btc_coexist *btc, - boolean force_exec, u8 bt_pwr_dec_lvl) -{ - struct btc_coex_dm *coex_dm = &btc->coex_dm; - u8 h2c_para[1] = {0}; - - if (!force_exec && bt_pwr_dec_lvl == coex_dm->cur_bt_pwr_lvl) - return; - - h2c_para[0] = (0x100 - bt_pwr_dec_lvl) & 0xff; - - rtw_btc_mailbox_operation(btc, 0x62, 1, h2c_para); - - coex_dm->cur_bt_pwr_lvl = bt_pwr_dec_lvl; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(), bt_tx_power = 0x%x, level = %d\n", - __func__, h2c_para[0], bt_pwr_dec_lvl); - BTC_TRACE(trace_buf); -} - -static void -rtw_btc_set_wl_rx_gain(struct btc_coexist *btc, boolean force_exec, - boolean low_gain_en) -{ - struct btc_coex_dm *coex_dm = &btc->coex_dm; - const struct btc_chip_para *chip_para = btc->chip_para; - - if (!force_exec && low_gain_en == coex_dm->cur_wl_rx_low_gain_en) - return; - - coex_dm->cur_wl_rx_low_gain_en = low_gain_en; - - if (low_gain_en) - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], Hi-L Rx!\n"); - else - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], Nm-L Rx!\n"); - - BTC_TRACE(trace_buf); - - chip_para->chip_setup(btc, BTC_CSETUP_WL_RX_GAIN); -} - -static void -rtw_btc_set_bt_rx_gain(struct btc_coexist *btc, boolean force_exec, u8 lna_lvl) -{ - struct btc_coex_dm *coex_dm = &btc->coex_dm; - - if (!force_exec && lna_lvl == coex_dm->cur_bt_lna_lvl) - return; - - if (lna_lvl < 7) { - btc->btc_set(btc, BTC_SET_BL_BT_LNA_CONSTRAIN_LEVEL, &lna_lvl); - /* use scoreboard[4] to notify BT Rx gain table change */ - btc->btc_write_scbd(btc, BTC_SCBD_RXGAIN, TRUE); - } else { - btc->btc_write_scbd(btc, BTC_SCBD_RXGAIN, FALSE); - } - - coex_dm->cur_bt_lna_lvl = lna_lvl; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): bt_rx_LNA_level = %d\n", - __func__, lna_lvl); - BTC_TRACE(trace_buf); -} - -static void -rtw_btc_set_rf_para(struct btc_coexist *btc, boolean force_exec, - struct btc_rf_para para) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - u8 tmp = 0; - - if (coex_sta->coex_freerun) { - if (coex_sta->cnt_wl[BTC_CNT_WL_SCANAP] <= 5) - tmp = 3; - } - - rtw_btc_set_wl_tx_power(btc, force_exec, para.wl_pwr_dec_lvl); - rtw_btc_set_bt_tx_power(btc, force_exec, para.bt_pwr_dec_lvl + tmp); - rtw_btc_set_wl_rx_gain(btc, force_exec, para.wl_low_gain_en); - rtw_btc_set_bt_rx_gain(btc, force_exec, para.bt_lna_lvl); -} - -static void -rtw_btc_coex_ctrl_owner(struct btc_coexist *btc, boolean wifi_control) -{ - u8 val; - - val = (wifi_control) ? 1 : 0; /* 0x70[26] */ - btc->btc_write_1byte_bitmask(btc, REG_SYS_SDIO_CTRL3, BIT(2), val); - - if (!wifi_control) - btc->chip_para->chip_setup(btc, BTC_CSETUP_WLAN_ACT_IPS); -} - -static void -rtw_btc_set_gnt_bt(struct btc_coexist *btc, u8 state) -{ - btc->btc_write_linderct(btc, REG_LTE_IDR_COEX_CTRL, 0xc000, state); - btc->btc_write_linderct(btc, REG_LTE_IDR_COEX_CTRL, 0x0c00, state); -} - -static void -rtw_btc_set_gnt_wl(struct btc_coexist *btc, u8 state) -{ - btc->btc_write_linderct(btc, REG_LTE_IDR_COEX_CTRL, 0x3000, state); - btc->btc_write_linderct(btc, REG_LTE_IDR_COEX_CTRL, 0x0300, state); -} - -#ifdef PLATFORM_WINDOWS -static void -rtw_btc_mimo_ps(struct btc_coexist *btc, boolean force_exec, - u8 state) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - - if (!force_exec && state == coex_sta->wl_mimo_ps) - return; - - coex_sta->wl_mimo_ps = state; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): state = %d\n", __func__, state); - BTC_TRACE(trace_buf); - - btc->btc_set(btc, BTC_SET_MIMO_PS_MODE, &state); -} -#endif - -static void -rtw_btc_wltoggle_tableA(IN struct btc_coexist *btc, - IN boolean force_exec, IN u32 table_case) -{ - const struct btc_chip_para *chip_para = btc->chip_para; - u8 h2c_para[6] = {0}; - u32 table_wl = 0x5a5a5a5a; - - h2c_para[0] = 0xd; /* op_code, 0xd= wlan slot toggle-A*/ - h2c_para[1] = 0x1; /* no definition */ - - if (btc->board_info.btdm_ant_num == 1) { - if (table_case < chip_para->table_sant_num) - table_wl = chip_para->table_sant[table_case].wl; - } else { - if (table_case < chip_para->table_nsant_num) - table_wl = chip_para->table_nsant[table_case].wl; - } - - /* tell WL FW WL slot toggle table-A*/ - h2c_para[2] = (u8)(table_wl & 0xff); - h2c_para[3] = (u8)((table_wl & 0xff00) >> 8); - h2c_para[4] = (u8)((table_wl & 0xff0000) >> 16); - h2c_para[5] = (u8)((table_wl & 0xff000000) >> 24); - - btc->btc_fill_h2c(btc, 0x69, 6, h2c_para); - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): H2C = [%02x %02x %02x %02x %02x %02x]\n", - __func__, h2c_para[0], h2c_para[1], h2c_para[2], - h2c_para[3], h2c_para[4], h2c_para[5]); - BTC_TRACE(trace_buf); -} - -static void -rtw_btc_wltoggle_tableB(IN struct btc_coexist *btc, IN boolean force_exec, - IN u8 interval, IN u32 table) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - u8 cur_h2c_para[6] = {0}; - u8 i, match_cnt = 0; - - cur_h2c_para[0] = 0x7; /* op_code, 0x7= wlan slot toggle-B*/ - cur_h2c_para[1] = interval; - cur_h2c_para[2] = (u8)(table & 0xff); - cur_h2c_para[3] = (u8)((table & 0xff00) >> 8); - cur_h2c_para[4] = (u8)((table & 0xff0000) >> 16); - cur_h2c_para[5] = (u8)((table & 0xff000000) >> 24); - - if (ARRAY_SIZE(coex_sta->wl_toggle_para) != 6) - return; - - coex_sta->wl_toggle_interval = interval; - - for (i = 0; i <= 5; i++) - coex_sta->wl_toggle_para[i] = cur_h2c_para[i]; - - btc->btc_fill_h2c(btc, 0x69, 6, cur_h2c_para); - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): H2C = [%02x %02x %02x %02x %02x %02x]\n", - __func__, cur_h2c_para[0], cur_h2c_para[1], cur_h2c_para[2], - cur_h2c_para[3], cur_h2c_para[4], cur_h2c_para[5]); - BTC_TRACE(trace_buf); -} - -static void -rtw_btc_set_table(struct btc_coexist *btc, boolean force_exec, u32 val0x6c0, - u32 val0x6c4) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_coex_dm *coex_dm = &btc->coex_dm; - - /* If last tdma is wl slot toggle, force write table*/ - if (!force_exec && coex_sta->coex_run_reason != BTC_RSN_LPS) { - if (val0x6c0 == btc->btc_read_4byte(btc, REG_BT_COEX_TABLE0) && - val0x6c4 == btc->btc_read_4byte(btc, REG_BT_COEX_TABLE1)) - return; - } - - btc->btc_write_4byte(btc, REG_BT_COEX_TABLE0, val0x6c0); - btc->btc_write_4byte(btc, REG_BT_COEX_TABLE1, val0x6c4); - btc->btc_write_4byte(btc, REG_BT_COEX_BRK_TABLE, 0xf0ffffff); - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): 0x6c0 = %x, 0x6c4 = %x\n", - __func__, val0x6c0, val0x6c4); - BTC_TRACE(trace_buf); -} - -static void -rtw_btc_table(struct btc_coexist *btc, boolean force_exec, u8 type) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - const struct btc_chip_para *chip_para = btc->chip_para; - u8 h2c_para[6] = {0}; - u32 table_wl = 0x0; - - coex_sta->coex_table_type = type; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], ***** Coex_Table - %d *****\n", type); - BTC_TRACE(trace_buf); - - h2c_para[0] = 0xd; - h2c_para[1] = 0x1; - - if (btc->board_info.btdm_ant_num == 1) { - if (type < chip_para->table_sant_num) - rtw_btc_set_table(btc, force_exec, - chip_para->table_sant[type].bt, - chip_para->table_sant[type].wl); - } else { - type = type - 100; - if (type < chip_para->table_nsant_num) - rtw_btc_set_table(btc, force_exec, - chip_para->table_nsant[type].bt, - chip_para->table_nsant[type].wl); - } - - if (coex_sta->wl_slot_toggle_change) - rtw_btc_wltoggle_tableA(btc, FC_EXCU, type); -} - -static void -rtw_btc_ignore_wlan_act(struct btc_coexist *btc, boolean force_exec, - boolean enable) -{ - struct btc_coex_dm *coex_dm = &btc->coex_dm; - u8 h2c_para[1] = {0}; - - if (btc->manual_control || btc->stop_coex_dm) - return; - - if (!force_exec && enable == coex_dm->cur_ignore_wlan_act) - return; - - if (enable) - h2c_para[0] = 0x1; /* function enable */ - - rtw_btc_mailbox_operation(btc, 0x63, 1, h2c_para); - - coex_dm->cur_ignore_wlan_act = enable; -} - -static void -rtw_btc_lps_rpwm(struct btc_coexist *btc, boolean force_exec, u8 lps_val, - u8 rpwm_val) -{ - struct btc_coex_dm *coex_dm = &btc->coex_dm; - - if (!force_exec) { - if (lps_val == coex_dm->cur_lps && - rpwm_val == coex_dm->cur_rpwm) - return; - } - - btc->btc_set(btc, BTC_SET_U1_LPS_VAL, &lps_val); - btc->btc_set(btc, BTC_SET_U1_RPWM_VAL, &rpwm_val); - - coex_dm->cur_lps = lps_val; - coex_dm->cur_rpwm = rpwm_val; -} - -static void -rtw_btc_power_save_state(struct btc_coexist *btc, u8 ps_type, u8 lps_val, - u8 rpwm_val) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - boolean low_pwr_dis = FALSE; - u8 lps_mode = 0x0; - u8 h2c_para[5] = {0, 0, 0, 0, 0}; - - btc->btc_get(btc, BTC_GET_U1_LPS_MODE, &lps_mode); - - switch (ps_type) { - case BTC_PS_WIFI_NATIVE: - /* recover to original 32k low power setting */ - coex_sta->wl_force_lps_ctrl = FALSE; - btc->btc_set(btc, BTC_SET_ACT_PRE_NORMAL_LPS, NULL); - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): BTC_PS_WIFI_NATIVE\n", __func__); - break; - case BTC_PS_LPS_ON: - coex_sta->wl_force_lps_ctrl = TRUE; - /*set tdma off if LPS off */ - if (!lps_mode) - btc->btc_fill_h2c(btc, 0x60, 5, h2c_para); - rtw_btc_lps_rpwm(btc, NM_EXCU, lps_val, rpwm_val); - /* when coex force to enter LPS, do not enter 32k low power. */ - low_pwr_dis = TRUE; - btc->btc_set(btc, BTC_SET_ACT_DISABLE_LOW_POWER, &low_pwr_dis); - /* power save must executed before psTdma. */ - btc->btc_set(btc, BTC_SET_ACT_ENTER_LPS, NULL); - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): BTC_PS_LPS_ON\n", __func__); - break; - case BTC_PS_LPS_OFF: - coex_sta->wl_force_lps_ctrl = TRUE; - /*set tdma off if LPS on */ - if (lps_mode) - btc->btc_fill_h2c(btc, 0x60, 5, h2c_para); - if (btc->btc_set(btc, BTC_SET_ACT_LEAVE_LPS, NULL)) - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): BTC_PS_LPS_OFF\n", - __func__); - else - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): BTC_PS_LPS_OFF Fail!!\n", - __func__); - break; - default: - break; - } - - BTC_TRACE(trace_buf); -} - -static void -rtw_btc_set_tdma(struct btc_coexist *btc, u8 byte1, u8 byte2, u8 byte3, - u8 byte4, u8 byte5) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_coex_dm *coex_dm = &btc->coex_dm; - struct btc_wifi_link_info_ext *linfo_ext = &btc->wifi_link_info_ext; - u8 ps_type = BTC_PS_WIFI_NATIVE, - real_byte1 = byte1, real_byte5 = byte5; - - if (linfo_ext->is_ap_mode && (byte1 & BIT(4) && !(byte1 & BIT(5)))) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): AP mode\n", __func__); - BTC_TRACE(trace_buf); - - real_byte1 &= ~BIT(4); - real_byte1 |= BIT(5); - - real_byte5 |= BIT(5); - real_byte5 &= ~BIT(6); - - ps_type = BTC_PS_WIFI_NATIVE; - rtw_btc_power_save_state(btc, ps_type, 0x0, 0x0); - } else if (byte1 & BIT(4) && !(byte1 & BIT(5))) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): Force LPS (byte1 = 0x%x)\n", - __func__, byte1); - BTC_TRACE(trace_buf); - - if (btc->chip_para->pstdma_type == BTC_PSTDMA_FORCE_LPSOFF) - ps_type = BTC_PS_LPS_OFF; - else - ps_type = BTC_PS_LPS_ON; - rtw_btc_power_save_state(btc, ps_type, 0x50, 0x4); - } else { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): native power save (byte1 = 0x%x)\n", - __func__, byte1); - BTC_TRACE(trace_buf); - - ps_type = BTC_PS_WIFI_NATIVE; - rtw_btc_power_save_state(btc, ps_type, 0x0, 0x0); - } - - coex_dm->ps_tdma_para[0] = real_byte1; - coex_dm->ps_tdma_para[1] = byte2; - coex_dm->ps_tdma_para[2] = byte3; - coex_dm->ps_tdma_para[3] = byte4; - coex_dm->ps_tdma_para[4] = real_byte5; - - btc->btc_fill_h2c(btc, 0x60, 5, coex_dm->ps_tdma_para); - - /* Always forec excute rtw_btc_set_table To avoid - * coex table error if wl slot toggle mode on ->off - * ex: 5508031054 next state -> rtw_btc_table + 5108031054 - * rtw_btc_table may be changed by 5508031054 - */ - if (real_byte1 & BIT(2)) { - coex_sta->wl_slot_toggle = TRUE; - coex_sta->wl_slot_toggle_change = FALSE; - } else { - coex_sta->wl_slot_toggle_change = coex_sta->wl_slot_toggle; - coex_sta->wl_slot_toggle = FALSE; - } - - if (ps_type == BTC_PS_WIFI_NATIVE) - btc->btc_set(btc, BTC_SET_ACT_POST_NORMAL_LPS, NULL); -} - -static -void rtw_btc_tdma(struct btc_coexist *btc, boolean force_exec, u32 tcase) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_coex_dm *coex_dm = &btc->coex_dm; - const struct btc_chip_para *chip_para = btc->chip_para; - u8 type; - boolean turn_on; - - btc->btc_set_atomic(btc, &coex_dm->setting_tdma, TRUE); - /* tcase: bit0~7 --> tdma case index - * bit8 --> for 4-slot (50ms) mode - */ - - if (tcase & TDMA_4SLOT)/* 4-slot (50ms) mode */ - rtw_btc_set_tdma_timer_base(btc, 3); - else - rtw_btc_set_tdma_timer_base(btc, 0); - - type = (u8)(tcase & 0xff); - turn_on = (type == 0 || type == 100) ? FALSE : TRUE; - - /* To avoid TDMA H2C fail before Last LPS enter */ - if (!force_exec && coex_sta->coex_run_reason != BTC_RSN_LPS) { - if (turn_on == coex_dm->cur_ps_tdma_on && - type == coex_dm->cur_ps_tdma) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], Skip TDMA because no change TDMA(%s, %d)\n", - (coex_dm->cur_ps_tdma_on ? "on" : "off"), - coex_dm->cur_ps_tdma); - BTC_TRACE(trace_buf); - - btc->btc_set_atomic(btc, &coex_dm->setting_tdma, FALSE); - return; - } - } - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], ***** TDMA - %d *****\n", type); - BTC_TRACE(trace_buf); - - /* TRUE -> Page scan > ACL */ - if (!turn_on || - (coex_sta->bt_a2dp_exist && coex_sta->bt_inq_page_remain)) - btc->btc_write_scbd(btc, BTC_SCBD_TDMA, FALSE); - else - btc->btc_write_scbd(btc, BTC_SCBD_TDMA, TRUE); - - if (btc->board_info.btdm_ant_num == 1) { - if (type < chip_para->tdma_sant_num) - rtw_btc_set_tdma(btc, - chip_para->tdma_sant[type].para[0], - chip_para->tdma_sant[type].para[1], - chip_para->tdma_sant[type].para[2], - chip_para->tdma_sant[type].para[3], - chip_para->tdma_sant[type].para[4]); - } else { - type = type - 100; - if (type < chip_para->tdma_nsant_num) - rtw_btc_set_tdma(btc, - chip_para->tdma_nsant[type].para[0], - chip_para->tdma_nsant[type].para[1], - chip_para->tdma_nsant[type].para[2], - chip_para->tdma_nsant[type].para[3], - chip_para->tdma_nsant[type].para[4]); - } - - coex_dm->cur_ps_tdma_on = turn_on; - coex_dm->cur_ps_tdma = type; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "change TDMA(%s, %d)\n", - (coex_dm->cur_ps_tdma_on ? "on" : "off"), - coex_dm->cur_ps_tdma); - BTC_TRACE(trace_buf); - - btc->btc_set_atomic(btc, &coex_dm->setting_tdma, FALSE); -} - -static -void rtw_btc_set_ant_switch(struct btc_coexist *btc, boolean force_exec, - u8 ctrl_type, u8 pos_type) -{ - struct btc_coex_dm *coex_dm = &btc->coex_dm; - - if (!force_exec) { - if (((ctrl_type << 8) + pos_type) == coex_dm->cur_switch_status) - return; - } - - coex_dm->cur_switch_status = (ctrl_type << 8) + pos_type; - - btc->chip_para->chip_setup(btc, BTC_CSETUP_ANT_SWITCH); -} - -static -void rtw_btc_set_ant_path(struct btc_coexist *btc, boolean force_exec, - u8 phase) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_coex_dm *coex_dm = &btc->coex_dm; - struct btc_rfe_type *rfe_type = &btc->rfe_type; - u8 ctrl_type = BTC_SWITCH_CTRL_MAX, - pos_type = BTC_SWITCH_TO_MAX, cnt = 0; - u16 scbd = 0; - boolean is_btk, is_wlk; - - if (!force_exec && coex_dm->cur_ant_pos_type == phase) - return; - - coex_dm->cur_ant_pos_type = phase; - - /* To avoid switch coex_ctrl_owner during BT IQK */ - if (rfe_type->wlg_at_btg && btc->chip_para->scbd_support && - coex_sta->bt_iqk_state != 0xff) { - - /* BT RFK */ - is_btk = ((btc->btc_read_scbd(btc, &scbd) & BIT(5)) == BIT(5)); - - /* WL RFK */ - is_wlk = ((btc->btc_read_1byte(btc, 0x49c) & BIT(0)) == BIT(0)); - - while (++cnt < 12 && (is_btk || is_wlk)) { - delay_ms(50); - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], Ant Setup Delay by IQK\n, wlk=%d, btk=%d, cnt=%d\n", - is_wlk, is_btk, cnt); - BTC_TRACE(trace_buf); - } - /* wait timeout */ - if (cnt >= 12) - coex_sta->bt_iqk_state = 0xff; - } - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], coex_sta->bt_disabled = 0x%x\n", - coex_sta->bt_disabled); - BTC_TRACE(trace_buf); - - switch (phase) { - case BTC_ANT_POWERON: - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s() - PHASE_COEX_POWERON\n", __func__); - BTC_TRACE(trace_buf); - - /* set Path control owner to BT at power-on step */ - if (coex_sta->bt_disabled) - rtw_btc_coex_ctrl_owner(btc, BTC_OWNER_WL); - else - rtw_btc_coex_ctrl_owner(btc, BTC_OWNER_BT); - - /*Caution: Don't indirect access while power on phase */ - - ctrl_type = BTC_SWITCH_CTRL_BY_BBSW; - pos_type = BTC_SWITCH_TO_BT; - break; - case BTC_ANT_INIT: - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s() - PHASE_COEX_INIT\n", __func__); - BTC_TRACE(trace_buf); - - if (coex_sta->bt_disabled) { - /* set GNT_BT to SW low */ - rtw_btc_set_gnt_bt(btc, BTC_GNT_SW_LOW); - /* set GNT_WL to SW high */ - rtw_btc_set_gnt_wl(btc, BTC_GNT_SW_HIGH); - } else { - /* set GNT_BT to SW high */ - rtw_btc_set_gnt_bt(btc, BTC_GNT_SW_HIGH); - /* set GNT_WL to SW low */ - rtw_btc_set_gnt_wl(btc, BTC_GNT_SW_LOW); - } - - /* set Path control owner to WL at initial step */ - rtw_btc_coex_ctrl_owner(btc, BTC_OWNER_WL); - - ctrl_type = BTC_SWITCH_CTRL_BY_BBSW; - pos_type = BTC_SWITCH_TO_BT; - break; - case BTC_ANT_WONLY: - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s() - PHASE_WLANONLY_INIT\n", __func__); - BTC_TRACE(trace_buf); - - /* set GNT_BT to SW Low */ - rtw_btc_set_gnt_bt(btc, BTC_GNT_SW_LOW); - /* Set GNT_WL to SW high */ - rtw_btc_set_gnt_wl(btc, BTC_GNT_SW_HIGH); - /* set Path control owner to WL at initial step */ - rtw_btc_coex_ctrl_owner(btc, BTC_OWNER_WL); - - ctrl_type = BTC_SWITCH_CTRL_BY_BBSW; - pos_type = BTC_SWITCH_TO_WLG; - break; - case BTC_ANT_WOFF: - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s() - PHASE_WLAN_OFF\n", __func__); - BTC_TRACE(trace_buf); - - /* set Path control owner to BT */ - rtw_btc_coex_ctrl_owner(btc, BTC_OWNER_BT); - - ctrl_type = BTC_SWITCH_CTRL_BY_BT; - pos_type = BTC_SWITCH_TO_NOCARE; - break; - case BTC_ANT_2G: - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s() - PHASE_2G_RUNTIME\n", __func__); - BTC_TRACE(trace_buf); - - /* set GNT_BT to PTA */ - rtw_btc_set_gnt_bt(btc, BTC_GNT_HW_PTA); - /* Set GNT_WL to PTA */ - rtw_btc_set_gnt_wl(btc, BTC_GNT_HW_PTA); - - /* set Path control owner to WL at runtime step */ - rtw_btc_coex_ctrl_owner(btc, BTC_OWNER_WL); - - ctrl_type = BTC_SWITCH_CTRL_BY_PTA; - pos_type = BTC_SWITCH_TO_NOCARE; - break; - case BTC_ANT_5G: - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s() - PHASE_5G_RUNTIME\n", __func__); - BTC_TRACE(trace_buf); - - /* set GNT_BT to SW PTA */ - rtw_btc_set_gnt_bt(btc, BTC_GNT_HW_PTA); - /* Set GNT_WL to SW Hi */ - rtw_btc_set_gnt_wl(btc, BTC_GNT_SW_HIGH); - - /* set Path control owner to WL at runtime step */ - rtw_btc_coex_ctrl_owner(btc, BTC_OWNER_WL); - - ctrl_type = BTC_SWITCH_CTRL_BY_BBSW; - pos_type = BTC_SWITCH_TO_WLA; - break; - case BTC_ANT_2G_FREERUN: - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s() - PHASE_2G_FREERUN\n", __func__); - BTC_TRACE(trace_buf); - - /* set GNT_BT to SW PTA */ - rtw_btc_set_gnt_bt(btc, BTC_GNT_HW_PTA); - - /* Set GNT_WL to SW Hi */ - rtw_btc_set_gnt_wl(btc, BTC_GNT_SW_HIGH); - - /* set Path control owner to WL at runtime step */ - rtw_btc_coex_ctrl_owner(btc, BTC_OWNER_WL); - - ctrl_type = BTC_SWITCH_CTRL_BY_BBSW; - pos_type = BTC_SWITCH_TO_WLG_BT; - break; - case BTC_ANT_2G_WLBT: - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s() - PHASE_2G_WLBT\n", __func__); - BTC_TRACE(trace_buf); - - /* set GNT_BT to HW PTA */ - rtw_btc_set_gnt_bt(btc, BTC_GNT_HW_PTA); - /* Set GNT_WL to HW PTA */ - rtw_btc_set_gnt_wl(btc, BTC_GNT_HW_PTA); - /* set Path control owner to WL at runtime step */ - rtw_btc_coex_ctrl_owner(btc, BTC_OWNER_WL); - - ctrl_type = BTC_SWITCH_CTRL_BY_BBSW; - pos_type = BTC_SWITCH_TO_WLG_BT; - break; - case BTC_ANT_2G_WL: - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s() - PHASE_2G_WL\n", __func__); - BTC_TRACE(trace_buf); - - /* set GNT_BT to PTA */ - rtw_btc_set_gnt_bt(btc, BTC_GNT_HW_PTA); - /* Set GNT_WL to PTA */ - rtw_btc_set_gnt_wl(btc, BTC_GNT_HW_PTA); - /* set Path control owner to WL at runtime step */ - rtw_btc_coex_ctrl_owner(btc, BTC_OWNER_WL); - - ctrl_type = BTC_SWITCH_CTRL_BY_BBSW; - pos_type = BTC_SWITCH_TO_WLG; - break; - case BTC_ANT_2G_BT: - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s() - PHASE_2G_WL\n", __func__); - BTC_TRACE(trace_buf); - - /* set GNT_BT to PTA */ - rtw_btc_set_gnt_bt(btc, BTC_GNT_HW_PTA); - /* Set GNT_WL to PTA */ - rtw_btc_set_gnt_wl(btc, BTC_GNT_HW_PTA); - /* set Path control owner to WL at runtime step */ - rtw_btc_coex_ctrl_owner(btc, BTC_OWNER_WL); - - ctrl_type = BTC_SWITCH_CTRL_BY_BBSW; - pos_type = BTC_SWITCH_TO_BT; - break; - case BTC_ANT_BTMP: - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s() - PHASE_BTMP\n", __func__); - BTC_TRACE(trace_buf); - - /* set GNT_BT to SW Hi */ - rtw_btc_set_gnt_bt(btc, BTC_GNT_SW_HIGH); - /* Set GNT_WL to SW Lo */ - rtw_btc_set_gnt_wl(btc, BTC_GNT_SW_LOW); - /* set Path control owner to WL */ - rtw_btc_coex_ctrl_owner(btc, BTC_OWNER_WL); - - btc->stop_coex_dm = TRUE; - - ctrl_type = BTC_SWITCH_CTRL_BY_BBSW; - pos_type = BTC_SWITCH_TO_BT; - break; - case BTC_ANT_MCC: - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s() - PHASE_MCC\n", __func__); - BTC_TRACE(trace_buf); - - /* set GNT_BT to PTA */ - rtw_btc_set_gnt_bt(btc, BTC_GNT_HW_PTA); - /* Set GNT_WL to PTA */ - rtw_btc_set_gnt_wl(btc, BTC_GNT_HW_PTA); - /* set Path control owner to WL at runtime step */ - rtw_btc_coex_ctrl_owner(btc, BTC_OWNER_WL); - - ctrl_type = BTC_SWITCH_CTRL_BY_FW; - pos_type = BTC_SWITCH_TO_NOCARE; - break; - } - - if (ctrl_type < BTC_SWITCH_CTRL_MAX && pos_type < BTC_SWITCH_TO_MAX && - rfe_type->ant_switch_exist) - rtw_btc_set_ant_switch(btc, force_exec, ctrl_type, pos_type); -} - -static u8 rtw_btc_algorithm(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - u8 algorithm = BTC_COEX_NOPROFILE; - u8 profile_map = 0; - - if (coex_sta->bt_hfp_exist) - profile_map = profile_map | BTC_BTPROFILE_HFP; - - if (coex_sta->bt_hid_exist) - profile_map = profile_map | BTC_BTPROFILE_HID; - - if (coex_sta->bt_a2dp_exist) - profile_map = profile_map | BTC_BTPROFILE_A2DP; - - if (coex_sta->bt_pan_exist) - profile_map = profile_map | BTC_BTPROFILE_PAN; - - switch (profile_map) { - case BTC_BTPROFILE_NONE: - algorithm = BTC_COEX_NOPROFILE; - break; - case BTC_BTPROFILE_HFP: - algorithm = BTC_COEX_HFP; - break; - case BTC_BTPROFILE_HID: - algorithm = BTC_COEX_HID; - break; - case (BTC_BTPROFILE_HID | BTC_BTPROFILE_HFP): - algorithm = BTC_COEX_HID; - break; - case BTC_BTPROFILE_A2DP: - /* OPP may disappear during CPT_for_WiFi test */ - if (coex_sta->bt_multi_link && coex_sta->bt_hid_pair_num > 0) - algorithm = BTC_COEX_A2DP_HID; - else if (coex_sta->bt_multi_link) - algorithm = BTC_COEX_A2DP_PAN; - else - algorithm = BTC_COEX_A2DP; - break; - case (BTC_BTPROFILE_A2DP | BTC_BTPROFILE_HFP): - algorithm = BTC_COEX_A2DP_HID; - break; - case (BTC_BTPROFILE_A2DP | BTC_BTPROFILE_HID): - algorithm = BTC_COEX_A2DP_HID; - break; - case (BTC_BTPROFILE_A2DP | BTC_BTPROFILE_HID | BTC_BTPROFILE_HFP): - algorithm = BTC_COEX_A2DP_HID; - break; - case BTC_BTPROFILE_PAN: - algorithm = BTC_COEX_PAN; - break; - case (BTC_BTPROFILE_PAN | BTC_BTPROFILE_HFP): - algorithm = BTC_COEX_PAN_HID; - break; - case (BTC_BTPROFILE_PAN | BTC_BTPROFILE_HID): - algorithm = BTC_COEX_PAN_HID; - break; - case (BTC_BTPROFILE_PAN | BTC_BTPROFILE_HID | BTC_BTPROFILE_HFP): - algorithm = BTC_COEX_PAN_HID; - break; - case (BTC_BTPROFILE_PAN | BTC_BTPROFILE_A2DP): - algorithm = BTC_COEX_A2DP_PAN; - break; - case (BTC_BTPROFILE_PAN | BTC_BTPROFILE_A2DP | BTC_BTPROFILE_HFP): - algorithm = BTC_COEX_A2DP_PAN_HID; - break; - case (BTC_BTPROFILE_PAN | BTC_BTPROFILE_A2DP | BTC_BTPROFILE_HID): - algorithm = BTC_COEX_A2DP_PAN_HID; - break; - case BTC_BTPROFILE_MAX: - algorithm = BTC_COEX_A2DP_PAN_HID; - break; - } - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], BT Profile = %s => Algorithm = %s\n", - bt_profile_string[profile_map], - coex_algo_string[algorithm]); - BTC_TRACE(trace_buf); - - return algorithm; -} - -static void rtw_btc_action_coex_all_off(struct btc_coexist *btc) -{ - u8 table_case, tdma_case; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); - - /* To avoid rtw_btc_set_ant_path here */ - if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ - table_case = 2; - tdma_case = 0; - } else { /* Non-Shared-Ant */ - table_case = 100; - tdma_case = 100; - } - - rtw_btc_table(btc, NM_EXCU, table_case); - rtw_btc_tdma(btc, NM_EXCU, tdma_case); -} - -static void rtw_btc_action_freerun(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_coex_dm *coex_dm = &btc->coex_dm; - const struct btc_chip_para *cpara = btc->chip_para; - struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; - u8 level = 0, i; - boolean bt_afh_loss = TRUE; - - if (btc->board_info.btdm_ant_num != 2) - return; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - coex_sta->coex_freerun = TRUE; - - for (i = 0; i <= 8; i++) { - if (coex_sta->bt_afh_map[i] != 0xff) { - bt_afh_loss = FALSE; - break; - } - } - - if (bt_afh_loss) - rtw_btc_update_wl_ch_info(btc, BTC_MEDIA_CONNECT); - - rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G_FREERUN); - - btc->btc_write_scbd(btc, BTC_SCBD_FIX2M, FALSE); - - /* decrease more BT Tx power for clear case */ - if (BTC_RSSI_HIGH(coex_dm->wl_rssi_state[0])) - level = 2; - else if (BTC_RSSI_HIGH(coex_dm->wl_rssi_state[1])) - level = 3; - else if (BTC_RSSI_HIGH(coex_dm->wl_rssi_state[2])) - level = 4; - else - level = 5; - - if (level > cpara->wl_rf_para_tx_num - 1) - level = cpara->wl_rf_para_tx_num - 1; - - if (coex_sta->wl_coex_mode != BTC_WLINK_2G1PORT) - rtw_btc_set_rf_para(btc, NM_EXCU, cpara->wl_rf_para_rx[0]); - else if (link_info_ext->traffic_dir == BTC_WIFI_TRAFFIC_TX) - rtw_btc_set_rf_para(btc, NM_EXCU, cpara->wl_rf_para_tx[level]); - else - rtw_btc_set_rf_para(btc, NM_EXCU, cpara->wl_rf_para_rx[level]); - - rtw_btc_table(btc, NM_EXCU, 100); - rtw_btc_tdma(btc, NM_EXCU, 100); -} - -static void rtw_btc_action_rf4ce(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - const struct btc_chip_para *chip_para = btc->chip_para; - u8 table_case, tdma_case; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_set_rf_para(btc, NM_EXCU, chip_para->wl_rf_para_rx[0]); - rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); - - switch (coex_sta->ext_chip_mode) { - case 0: - table_case = 112; - tdma_case = 115; - - if (coex_sta->bt_slave) - rtw_btc_set_extend_btautoslot(btc, 0x3c); - else - rtw_btc_set_extend_btautoslot(btc, 0x32); - - rtw_btc_table(btc, NM_EXCU, table_case); - rtw_btc_tdma(btc, NM_EXCU, tdma_case); - break; - case 1: - table_case = 112; - tdma_case = 121; - - rtw_btc_table(btc, NM_EXCU, table_case); - rtw_btc_tdma(btc, NM_EXCU, tdma_case); - break; - } -} - -static void rtw_btc_action_ext_chip(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - - if (btc->board_info.ext_chip_id == BTC_EXT_CHIP_RF4CE) - rtw_btc_action_rf4ce(btc); -} - -u8 rtw_btc_action_rf4ce_new_tdma(struct btc_coexist *btc, u8 type) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - const struct btc_chip_para *chip_para = btc->chip_para; - u8 table_case, tdma_case; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - switch (type) { - case 0: /*BT idle*/ - if (coex_sta->ext_chip_mode == BTC_EXTMODE_VOICE) - tdma_case = 121; - else - tdma_case = 117; - break; - case 1: /*BT relink*/ - if (coex_sta->ext_chip_mode == BTC_EXTMODE_VOICE) - tdma_case = 121; - else - tdma_case = 117; - break; - case 2: /*WIFI linkscan*/ - if (coex_sta->ext_chip_mode == BTC_EXTMODE_VOICE) { - tdma_case = 125; - } else{ - if (coex_sta->bt_slave) - rtw_btc_set_extend_btautoslot(btc, 0x3c); - else - rtw_btc_set_extend_btautoslot(btc, 0x32); - - tdma_case = 124; - } - break; - case 3: /*WIFI only*/ - if (coex_sta->ext_chip_mode == BTC_EXTMODE_VOICE) { - tdma_case = 121; - } else{ - if (coex_sta->bt_slave) - rtw_btc_set_extend_btautoslot(btc, 0x3c); - else - rtw_btc_set_extend_btautoslot(btc, 0x32); - - tdma_case = 115; - } - break; - default: - tdma_case = 0; - break; - } - return tdma_case; -} - -u8 rtw_btc_ext_chip_new_tdma(struct btc_coexist *btc, u8 type) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - u8 tdma_case = 0; - - if (btc->board_info.ext_chip_id == BTC_EXT_CHIP_RF4CE) - tdma_case = rtw_btc_action_rf4ce_new_tdma(btc, type); - - return tdma_case; -} - -static void rtw_btc_action_bt_whql_test(struct btc_coexist *btc) -{ - u8 table_case, tdma_case; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); - rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); - - if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ - table_case = 2; - tdma_case = 0; - } else { /* Non-Shared-Ant */ - table_case = 100; - tdma_case = 100; - } - - rtw_btc_table(btc, NM_EXCU, table_case); - rtw_btc_tdma(btc, NM_EXCU, tdma_case); -} - -static void rtw_btc_action_bt_relink(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - u8 table_case, tdma_case; - u32 slot_type = 0; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); - rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); - - if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ - if (coex_sta->wl_gl_busy) { - table_case = 26; - - if (coex_sta->bt_hid_exist && - coex_sta->bt_profile_num == 1) { - slot_type = TDMA_4SLOT; - tdma_case = 20; - } else { - tdma_case = 20; - } - } else { - table_case = 1; - tdma_case = 0; - } - } else { /* Non-Shared-Ant */ - if (coex_sta->wl_gl_busy) - table_case = 115; - else - table_case = 100; - tdma_case = 100; - - if (coex_sta->wl_gl_busy && - btc->board_info.ext_chip_id != BTC_EXT_CHIP_NONE) - tdma_case = rtw_btc_ext_chip_new_tdma(btc, 1); - } - - rtw_btc_table(btc, NM_EXCU, table_case); - rtw_btc_tdma(btc, NM_EXCU, tdma_case | slot_type); -} - -static void rtw_btc_action_bt_idle(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_coex_dm *coex_dm = &btc->coex_dm; - struct btc_rfe_type *rfe_type = &btc->rfe_type; - struct btc_wifi_link_info *link_info = &btc->wifi_link_info; - u8 table_case = 0xff, tdma_case = 0xff; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); - - if (rfe_type->ant_switch_with_bt && - coex_dm->bt_status == BTC_BTSTATUS_NCON_IDLE) { - if (btc->board_info.btdm_ant_num == 1 && - BTC_RSSI_HIGH(coex_dm->wl_rssi_state[3]) && - coex_sta->wl_gl_busy) { - table_case = 0; - tdma_case = 0; - } else if (btc->board_info.btdm_ant_num == 2) { - table_case = 100; - tdma_case = 100; - } - - if (table_case != 0xff && tdma_case != 0xff) { - rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G_FREERUN); - goto exit; - } - } - - rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); - -#ifndef PLATFORM_WINDOWS - if (coex_sta->wl_noisy_level > 0) { - if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ - table_case = 1; - tdma_case = 0; - } else { /* Non-Shared-Ant */ - table_case = 123; - tdma_case = 0; - } - goto exit; - } -#endif - - if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ - if (!coex_sta->wl_gl_busy) { - table_case = 10; - tdma_case = 3; - } else if (coex_sta->bt_mesh) { - table_case = 26; - tdma_case = 7; - } else if (coex_dm->bt_status == BTC_BTSTATUS_NCON_IDLE) { - table_case = 11; - - if (coex_sta->bt_ctr_ok && - (coex_sta->lo_pri_rx + coex_sta->lo_pri_tx > 250)) - tdma_case = 17; - else - tdma_case = 7; - } else { - table_case = 12; - tdma_case = 7; - } - } else { /* Non-Shared-Ant */ - if (!coex_sta->wl_gl_busy) { - table_case = 112; - tdma_case = 104; - } else if ((coex_sta->bt_ble_scan_type & 0x2) && - coex_dm->bt_status == BTC_BTSTATUS_NCON_IDLE) { - table_case = 114; - tdma_case = 103; - } else { - table_case = 112; - tdma_case = 103; - } - if (coex_sta->wl_gl_busy && - btc->board_info.ext_chip_id != BTC_EXT_CHIP_NONE) - tdma_case = rtw_btc_ext_chip_new_tdma(btc, 0); - } - -exit: - rtw_btc_table(btc, NM_EXCU, table_case); - rtw_btc_tdma(btc, NM_EXCU, tdma_case); -} - -static void rtw_btc_action_bt_inquiry(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; - boolean wl_hi_pri = FALSE; - u8 table_case, tdma_case; - u32 slot_type = 0; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); - rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); - - if (coex_sta->wl_linkscan_proc || coex_sta->wl_hi_pri_task1 || - coex_sta->wl_hi_pri_task2) - wl_hi_pri = TRUE; - - if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ - if (wl_hi_pri) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], bt inq/page + wifi hi-pri task\n"); - - table_case = 15; - - if (coex_sta->bt_profile_num > 0) - tdma_case = 10; - else if (coex_sta->wl_hi_pri_task1) - tdma_case = 6; - else if (!coex_sta->bt_page) - tdma_case = 8; - else - tdma_case = 9; - } else if (coex_sta->wl_gl_busy) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], bt inq/page + wifi busy\n"); -#if 0 - table_case = 15; - tdma_case = 20; -#else - if (coex_sta->bt_profile_num == 0) { - table_case = 12; - tdma_case = 18; - } else if (coex_sta->bt_profile_num == 1 && - !coex_sta->bt_a2dp_exist) { - slot_type = TDMA_4SLOT; - table_case = 12; - tdma_case = 20; - } else { - slot_type = TDMA_4SLOT; - table_case = 12; - tdma_case = 26; - } -#endif - } else if (link_info_ext->is_connected) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], bt inq/page + wifi connected\n"); - - table_case = 9; - tdma_case = 27; - } else { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], bt inq/page + wifi not-connected\n"); - - table_case = 1; - tdma_case = 0; - } - } else { /* Non_Shared-Ant */ - if (wl_hi_pri) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], bt inq/page + wifi hi-pri task\n"); - - table_case = 114; - - if (coex_sta->bt_profile_num > 0) - tdma_case = 110; - else if (coex_sta->wl_hi_pri_task1) - tdma_case = 106; - else if (!coex_sta->bt_page) - tdma_case = 108; - else - tdma_case = 109; - } else if (coex_sta->wl_gl_busy) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], bt inq/page + wifi busy\n"); - - table_case = 114; - tdma_case = 121; - } else if (link_info_ext->is_connected) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], bt inq/page + wifi connected\n"); - - table_case = 101; - tdma_case = 100; - } else { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], bt inq/page + wifi not-connected\n"); - - table_case = 101; - tdma_case = 100; - } - } - - BTC_TRACE(trace_buf); - - rtw_btc_table(btc, NM_EXCU, table_case); - rtw_btc_tdma(btc, NM_EXCU, tdma_case | slot_type); -} - -static void rtw_btc_action_bt_hfp(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - u8 table_case, tdma_case; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); - rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); - - if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ -#ifdef PLATFORM_WINDOWS - if (coex_sta->wl_cck_lock_ever) { - coex_sta->wl_coex_mode = BTC_WLINK_2GFREE; - table_case = 33; - tdma_case = 0; - } else -#endif - if (coex_sta->bt_multi_link) { - table_case = 10; - tdma_case = 17; - } else { - table_case = 10; - tdma_case = 5; - } - } else { /* Non-Shared-Ant */ - if (coex_sta->bt_multi_link) { - table_case = 112; - tdma_case = 117; - } else { - table_case = 105; - tdma_case = 100; - } - } - - rtw_btc_table(btc, NM_EXCU, table_case); - rtw_btc_tdma(btc, NM_EXCU, tdma_case); -} - -static void rtw_btc_action_bt_hid(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - u8 table_case, tdma_case; - boolean is_toggle_table = FALSE, is_bt_ctr_hi = FALSE; - u32 slot_type = 0; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); - rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); - - if (coex_sta->bt_ctr_ok && - (coex_sta->lo_pri_rx + coex_sta->lo_pri_tx > 360)) - is_bt_ctr_hi = TRUE; - - if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ -#ifdef PLATFORM_WINDOWS - if (coex_sta->wl_cck_lock_ever) { - coex_sta->wl_coex_mode = BTC_WLINK_2GFREE; - table_case = 33; - tdma_case = 0; - } else -#endif - if (coex_sta->bt_ble_exist) { /* RCU */ - table_case = 26; - tdma_case = 2; - } else { /* Legacy HID */ - if (coex_sta->bt_profile_num == 1 && - (coex_sta->bt_multi_link || - is_bt_ctr_hi || - coex_sta->bt_slave || - coex_sta->bt_multi_link_remain)) { - slot_type = TDMA_4SLOT; - - if (coex_sta->wl_gl_busy && - (coex_sta->wl_rx_rate <= 3 || - coex_sta->wl_rts_rx_rate <= 3)) - table_case = 13; - else - table_case = 12; - - tdma_case = 26; - } else if (coex_sta->bt_a2dp_active) { - table_case = 9; - tdma_case = 18; - } else if (coex_sta->bt_418_hid_exist && - coex_sta->wl_gl_busy) { - slot_type = TDMA_4SLOT; - table_case = 32; - tdma_case = 27; - } else if (coex_sta->bt_ble_hid_exist && - coex_sta->wl_gl_busy) { - table_case = 32; - tdma_case = 9; - } else { - table_case = 9; - tdma_case = 9; - } - } - } else { /* Non-Shared-Ant */ - if (coex_sta->bt_ble_exist) { /* BLE */ - table_case = 110; - tdma_case = 105; - } else if (coex_sta->bt_a2dp_active) { - table_case = 113; - tdma_case = 118; - } else { - table_case = 113; - tdma_case = 104; - } - } - - rtw_btc_table(btc, NM_EXCU, table_case); - if (is_toggle_table) { - rtw_btc_wltoggle_tableA(btc, FC_EXCU, table_case); - rtw_btc_wltoggle_tableB(btc, NM_EXCU, 1, 0x5a5a5aaa); - } - - rtw_btc_tdma(btc, NM_EXCU, tdma_case | slot_type); -} - -static void rtw_btc_action_bt_a2dp(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_coex_dm *coex_dm = &btc->coex_dm; - u8 table_case, tdma_case; - u32 slot_type = 0; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); - rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); - - slot_type = TDMA_4SLOT; - - if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ - if (coex_sta->wl_gl_busy && coex_sta->wl_noisy_level == 0) - table_case = 12; - else - table_case = 9; - - if (coex_sta->wl_connecting || !coex_sta->wl_gl_busy) - tdma_case = 14; - else - tdma_case = 13; - } else { /* Non-Shared-Ant */ - table_case = 121; - tdma_case = 113; - } - - rtw_btc_table(btc, NM_EXCU, table_case); - rtw_btc_tdma(btc, NM_EXCU, tdma_case | slot_type); -} - -static void rtw_btc_action_bt_a2dpsink(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_coex_dm *coex_dm = &btc->coex_dm; - struct btc_wifi_link_info_ext *linfo_ext = &btc->wifi_link_info_ext; - u8 table_case, tdma_case; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); - rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); - - if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ - if (linfo_ext->is_ap_mode) { - table_case = 2; - tdma_case = 0; - } else if (coex_sta->wl_gl_busy) { - table_case = 28; - tdma_case = 20; - } else { - table_case = 28; - tdma_case = 26; - } - } else { /* Non-Shared-Ant */ - if (linfo_ext->is_ap_mode) { - table_case = 100; - tdma_case = 100; - } else { - table_case = 119; - tdma_case = 120; - } - } - - rtw_btc_table(btc, NM_EXCU, table_case); - rtw_btc_tdma(btc, NM_EXCU, tdma_case); -} - -static void rtw_btc_action_bt_pan(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - u8 table_case, tdma_case; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); - rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); - - if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ - if (coex_sta->wl_gl_busy && coex_sta->wl_noisy_level == 0) - table_case = 14; - else - table_case = 10; - - if (coex_sta->wl_gl_busy) - tdma_case = 17; - else - tdma_case = 20; - } else { /* Non-Shared-Ant */ - table_case = 112; - - if (coex_sta->wl_gl_busy) - tdma_case = 117; - else - tdma_case = 119; - } - - if (coex_sta->bt_slave && coex_sta->wl_gl_busy) - rtw_btc_set_bt_golden_rx_range(btc, NM_EXCU, 3, 20); - else - rtw_btc_set_bt_golden_rx_range(btc, NM_EXCU, 3, 0); - - rtw_btc_table(btc, NM_EXCU, table_case); - rtw_btc_tdma(btc, NM_EXCU, tdma_case); -} - -static void rtw_btc_action_bt_a2dp_hid(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_coex_dm *coex_dm = &btc->coex_dm; - u8 table_case, tdma_case; - boolean is_toggle_table = FALSE; - u32 slot_type = 0; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); - rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); - - if (coex_sta->wl_iot_peer != BTC_IOT_PEER_CISCO) - slot_type = TDMA_4SLOT; - - if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ - if (coex_sta->bt_ble_exist) - table_case = 26; /* for RCU */ - else - table_case = 9; - - if (coex_sta->wl_connecting || !coex_sta->wl_gl_busy) { - tdma_case = 14; - } else if (coex_sta->bt_418_hid_exist || - coex_sta->bt_ble_hid_exist) { - is_toggle_table = TRUE; - tdma_case = 23; - } else { - tdma_case = 13; - } - } else { /* Non-Shared-Ant */ - if (coex_sta->bt_ble_exist) - table_case = 110; - else - table_case = 121; - - tdma_case = 113; - } - - rtw_btc_table(btc, NM_EXCU, table_case); - if (is_toggle_table) { - rtw_btc_wltoggle_tableA(btc, FC_EXCU, table_case); - rtw_btc_wltoggle_tableB(btc, NM_EXCU, 1, 0x5a5a5aaa); - } - - rtw_btc_tdma(btc, NM_EXCU, tdma_case | slot_type); -} - -static void rtw_btc_action_bt_a2dp_pan(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_coex_dm *coex_dm = &btc->coex_dm; - const struct btc_chip_para *chip_para = btc->chip_para; - u8 table_case, tdma_case; - boolean wl_cpt_test = FALSE, bt_cpt_test = FALSE; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - if (btc->board_info.customer_id == RT_CID_LENOVO_CHINA && - coex_sta->cnt_wl[BTC_CNT_WL_SCANAP] <= 10 && - coex_sta->wl_iot_peer == BTC_IOT_PEER_ATHEROS) { - if (BTC_RSSI_LOW(coex_dm->wl_rssi_state[2])) - wl_cpt_test = TRUE; - else - bt_cpt_test = TRUE; - } - - if (wl_cpt_test) - rtw_btc_set_rf_para(btc, NM_EXCU, chip_para->wl_rf_para_rx[1]); - else - rtw_btc_set_rf_para(btc, NM_EXCU, chip_para->wl_rf_para_rx[0]); - - rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); - if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ - if (wl_cpt_test) { - if (coex_sta->wl_gl_busy) { - table_case = 20; - tdma_case = 17; - } else { - table_case = 10; - tdma_case = 15; - } - } else if (bt_cpt_test) { - table_case = 26; - tdma_case = 26; - } else { - if (coex_sta->wl_gl_busy && - coex_sta->wl_noisy_level == 0) - table_case = 14; - else - table_case = 10; - - if (coex_sta->wl_gl_busy) - tdma_case = 15; - else - tdma_case = 20; - } - } else { /* Non-Shared-Ant */ - table_case = 112; - - if (coex_sta->wl_gl_busy) - tdma_case = 115; - else - tdma_case = 120; - } - - if (coex_sta->bt_slave) - rtw_btc_set_extend_btautoslot(btc, 0x3c); - else - rtw_btc_set_extend_btautoslot(btc, 0x32); - - rtw_btc_table(btc, NM_EXCU, table_case); - rtw_btc_tdma(btc, NM_EXCU, tdma_case); -} - -static void rtw_btc_action_bt_pan_hid(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - u8 table_case, tdma_case; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); - rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); - - if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ - table_case = 9; - - if (coex_sta->wl_gl_busy) - tdma_case = 18; - else - tdma_case = 19; - } else { /* Non-Shared-Ant */ - table_case = 113; - - if (coex_sta->wl_gl_busy) - tdma_case = 117; - else - tdma_case = 119; - } - - rtw_btc_table(btc, NM_EXCU, table_case); - rtw_btc_tdma(btc, NM_EXCU, tdma_case); -} - -static void rtw_btc_action_bt_a2dp_pan_hid(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - u8 table_case, tdma_case; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); - rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); - - if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ - table_case = 10; - - if (coex_sta->wl_gl_busy) - tdma_case = 15; - else - tdma_case = 20; - } else { /* Non-Shared-Ant */ - table_case = 113; - - if (coex_sta->wl_gl_busy) - tdma_case = 115; - else - tdma_case = 120; - } - - if (coex_sta->bt_slave) - rtw_btc_set_extend_btautoslot(btc, 0x3c); - else - rtw_btc_set_extend_btautoslot(btc, 0x32); - - rtw_btc_table(btc, NM_EXCU, table_case); - rtw_btc_tdma(btc, NM_EXCU, tdma_case); -} - -static void rtw_btc_action_wl_off(struct btc_coexist *btc) -{ - rtw_btc_tdma(btc, FC_EXCU, 0); - rtw_btc_ignore_wlan_act(btc, FC_EXCU, TRUE); - rtw_btc_set_ant_path(btc, FC_EXCU, BTC_ANT_WOFF); - - btc->stop_coex_dm = TRUE; - btc->wl_rf_state_off = TRUE; - - /* must place in the last step */ - rtw_btc_update_wl_ch_info(btc, BTC_MEDIA_DISCONNECT); - btc->btc_write_scbd(btc, BTC_SCBD_ALL, FALSE); -} - -static void rtw_btc_action_wl_under5g(struct btc_coexist *btc) -{ - u8 table_case, tdma_case; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_set_ant_path(btc, FC_EXCU, BTC_ANT_5G); - rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); - - btc->btc_write_scbd(btc, BTC_SCBD_FIX2M, FALSE); - - if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ - table_case = 0; - tdma_case = 0; - } else { /* Non-Shared-Ant */ - table_case = 100; - tdma_case = 100; - } - - rtw_btc_table(btc, NM_EXCU, table_case); - rtw_btc_tdma(btc, NM_EXCU, tdma_case); -} - -static void rtw_btc_action_wl_only(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - u8 table_case, tdma_case; - - rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); - rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ - table_case = 2; - tdma_case = 0; - } else { /* Non-Shared-Ant */ - table_case = 100; - tdma_case = 100; - if (coex_sta->wl_gl_busy && - btc->board_info.ext_chip_id != BTC_EXT_CHIP_NONE) - tdma_case = rtw_btc_ext_chip_new_tdma(btc, 3); - } - - rtw_btc_table(btc, NM_EXCU, table_case); - rtw_btc_tdma(btc, NM_EXCU, tdma_case); -} - -static void rtw_btc_action_wl_native_lps(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; - u8 table_case, tdma_case; - - if (link_info_ext->is_all_under_5g) - return; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); - rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); - - if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ - table_case = 28; /*0x6c0 for A2DP, 0x6c4 for non-A2DP*/ - tdma_case = 0; - } else { /* Non-Shared-Ant */ - table_case = 100; - tdma_case = 100; - } - - rtw_btc_table(btc, NM_EXCU, table_case); - rtw_btc_tdma(btc, NM_EXCU, tdma_case); -} - -static void rtw_btc_action_wl_linkscan(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - u8 table_case, tdma_case; - u32 slot_type = 0; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); - rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); - - if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ - if (coex_sta->bt_a2dp_exist) { - slot_type = TDMA_4SLOT; - table_case = 9; - tdma_case = 11; - } else { - table_case = 9; - tdma_case = 7; - } - } else { /* Non-Shared-Ant */ - if (coex_sta->bt_a2dp_exist) { - slot_type = TDMA_4SLOT; - table_case = 112; - tdma_case = 111; - } else { - table_case = 112; - tdma_case = 107; - } - if (coex_sta->wl_gl_busy && - btc->board_info.ext_chip_id != BTC_EXT_CHIP_NONE) - tdma_case = rtw_btc_ext_chip_new_tdma(btc, 2); - } - - rtw_btc_table(btc, NM_EXCU, table_case); - rtw_btc_tdma(btc, NM_EXCU, tdma_case | slot_type); -} - -static void rtw_btc_action_wl_not_connected(struct btc_coexist *btc) -{ - struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; - struct btc_coex_sta *coex_sta = &btc->coex_sta; - u8 table_case, tdma_case; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - /* CCK Rx, Tx response, Tx beacon = low pri */ - if (link_info_ext->num_of_active_port == 0) - rtw_btc_set_wl_pri_mask(btc, BTC_WLPRI_RX_CCK, 0); - - coex_sta->wl_cck_lock_ever = FALSE; - coex_sta->wl_cck_lock = FALSE; - coex_sta->cnt_wl[BTC_CNT_WL_2G_TDDTRY] = FALSE; - coex_sta->cnt_wl[BTC_CNT_WL_2G_FDDSTAY] = FALSE; - - rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); - rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); - - if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ - table_case = 1; - tdma_case = 0; - } else { /* Non-Shared-Ant */ - table_case = 100; - tdma_case = 100; - } - - rtw_btc_table(btc, NM_EXCU, table_case); - rtw_btc_tdma(btc, NM_EXCU, tdma_case); -} - -static void rtw_btc_action_wl_connected(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - u8 algorithm; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - /*Leap-AP protection will reopen when connecting AP*/ - rtw_btc_wl_leakap(btc, TRUE); - - if ((btc->board_info.btdm_ant_num == 2) && - (btc->board_info.ext_chip_id != BTC_EXT_CHIP_NONE)) { - rtw_btc_action_ext_chip(btc); - return; - } - - algorithm = rtw_btc_algorithm(btc); - - switch (algorithm) { - case BTC_COEX_HFP: - rtw_btc_action_bt_hfp(btc); - break; - case BTC_COEX_HID: - if (rtw_btc_freerun_check(btc)) - rtw_btc_action_freerun(btc); - else - rtw_btc_action_bt_hid(btc); - break; - case BTC_COEX_A2DP: - if (rtw_btc_freerun_check(btc)) - rtw_btc_action_freerun(btc); - else if (coex_sta->bt_a2dp_sink) - rtw_btc_action_bt_a2dpsink(btc); - else - rtw_btc_action_bt_a2dp(btc); - break; - case BTC_COEX_PAN: - rtw_btc_action_bt_pan(btc); - break; - case BTC_COEX_A2DP_HID: - if (rtw_btc_freerun_check(btc)) - rtw_btc_action_freerun(btc); - else - rtw_btc_action_bt_a2dp_hid(btc); - break; - case BTC_COEX_A2DP_PAN: - rtw_btc_action_bt_a2dp_pan(btc); - break; - case BTC_COEX_PAN_HID: - rtw_btc_action_bt_pan_hid(btc); - break; - case BTC_COEX_A2DP_PAN_HID: - rtw_btc_action_bt_a2dp_pan_hid(btc); - break; - default: - case BTC_COEX_NOPROFILE: - rtw_btc_action_bt_idle(btc); - break; - } -} - -static void rtw_btc_action_wl_mcc25g(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - u8 table_case, tdma_case; - - rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_MCC); - rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); - btc->btc_write_scbd(btc, BTC_SCBD_FIX2M, FALSE); - - if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ - if (coex_sta->bt_setup_link) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): BT Relink\n", __func__); - - table_case = 24; - tdma_case = 0; - } else if (coex_sta->bt_inq_page) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): BT Inq-Pag\n", __func__); - - table_case = 23; - tdma_case = 0; - } else { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): BT on\n", __func__); - - if (coex_sta->wl_gl_busy) { - if (coex_sta->wl_rx_rate <= 3 || - coex_sta->wl_rts_rx_rate <= 3) - table_case = 31; - else if (coex_sta->bt_418_hid_exist || - coex_sta->bt_ble_hid_exist) - table_case = 25; - else - table_case = 23; - } else { - table_case = 23; - } - - tdma_case = 0; - } - } else { /* Non-Shared-Ant */ - if (coex_sta->bt_setup_link) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): BT Relink\n", __func__); - - table_case = 100; - tdma_case = 100; - } else if (coex_sta->bt_inq_page) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): BT Inq-Pag\n", __func__); - - table_case = 118; - tdma_case = 100; - } else { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): BT on!!\n", __func__); - - table_case = 118; - tdma_case = 100; - } - } - - BTC_TRACE(trace_buf); - - rtw_btc_table(btc, NM_EXCU, table_case); - rtw_btc_tdma(btc, NM_EXCU, tdma_case); -} - -static void rtw_btc_action_wl_scc2g(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - u8 table_case = 0xff, tdma_case = 0xff; - boolean is_toggle_table = FALSE; - u32 slot_type = 0; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - if (coex_sta->bt_profile_num == 1) { - if (coex_sta->bt_hid_exist || coex_sta->bt_hfp_exist) { - if (coex_sta->bt_a2dp_active) { - table_case = 9; - tdma_case = 21; - } else if (coex_sta->bt_418_hid_exist) { - table_case = 10; - tdma_case = 24; - is_toggle_table = TRUE; - slot_type = TDMA_4SLOT; - } else { - table_case = 2; - tdma_case = 0; - } - } else if (coex_sta->bt_a2dp_exist) { - table_case = 10; - tdma_case = 22; - slot_type = TDMA_4SLOT; - } else { /* PAN or OPP */ - table_case = 10; - tdma_case = 21; - } - } else { - if ((coex_sta->bt_hid_exist || coex_sta->bt_hfp_exist) && - coex_sta->bt_a2dp_exist) { - table_case = 9; - tdma_case = 22; - - slot_type = TDMA_4SLOT; - if (coex_sta->bt_418_hid_exist) - is_toggle_table = TRUE; - } else if (coex_sta->bt_pan_exist && coex_sta->bt_a2dp_exist) { - table_case = 10; - tdma_case = 22; - slot_type = TDMA_4SLOT; - } else { /* hid + pan */ - table_case = 9; - tdma_case = 21; - } - } - - rtw_btc_table(btc, NM_EXCU, table_case); - if (is_toggle_table) { - rtw_btc_wltoggle_tableA(btc, FC_EXCU, table_case); - rtw_btc_wltoggle_tableB(btc, NM_EXCU, 1, 0x5a5a5aaa); - } - - rtw_btc_tdma(btc, NM_EXCU, tdma_case | slot_type); -} - -static void rtw_btc_action_wl_p2p2g(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_rfe_type *rfe_type = &btc->rfe_type; - struct btc_wifi_link_info *link_info = &btc->wifi_link_info; - u8 table_case = 0xff, tdma_case = 0xff, ant_phase; - - if (rfe_type->ant_switch_with_bt) - ant_phase = BTC_ANT_2G_FREERUN; - else - ant_phase = BTC_ANT_2G; - - rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); - btc->btc_write_scbd(btc, BTC_SCBD_FIX2M, FALSE); - - if (coex_sta->bt_disabled) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): BT Disable!!\n", __func__); - BTC_TRACE(trace_buf); - rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); - - table_case = 0; - tdma_case = 0; - } else if (btc->board_info.btdm_ant_num == 2) { /* Non-Shared-Ant */ - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): Non_Shared_Ant!!\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_action_freerun(btc); - return; - } else if (coex_sta->bt_setup_link) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): BT Relink!!\n", __func__); - - rtw_btc_set_ant_path(btc, NM_EXCU, ant_phase); - - table_case = 1; - tdma_case = 0; - } else if (coex_sta->bt_inq_page) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): BT Inq-Page!!\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_set_ant_path(btc, NM_EXCU, ant_phase); - - table_case = 15; - tdma_case = 2; - } else if (coex_sta->bt_profile_num == 0) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): BT idle!!\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_set_ant_path(btc, NM_EXCU, ant_phase); - - if (btc->chip_interface == BTC_INTF_PCI && - (link_info->link_mode == BTC_LINK_ONLY_GO || - link_info->link_mode == BTC_LINK_ONLY_GC) && - coex_sta->wl_gl_busy) - table_case = 3; - else - table_case = 1; - - tdma_case = 0; - } else if (coex_sta->wl_linkscan_proc) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): WL scan!!\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_action_wl_linkscan(btc); - } else { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): BT busy!!\n", __func__); - BTC_TRACE(trace_buf); - - switch (link_info->link_mode) { - case BTC_LINK_2G_SCC_GC_STA: - case BTC_LINK_2G_SCC_GO_STA: - rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); - rtw_btc_action_wl_scc2g(btc); - break; - case BTC_LINK_ONLY_GO: - case BTC_LINK_ONLY_GC: - rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); -#ifdef PLATFORM_WINDOWS - if (btc->chip_interface == BTC_INTF_PCI && - coex_sta->bt_a2dp_exist && !coex_sta->bt_multi_link) - table_case = 3; - else -#endif - table_case = 2; - - tdma_case = 0; - break; - default: - rtw_btc_set_ant_path(btc, NM_EXCU, ant_phase); - table_case = 2; - tdma_case = 0; - break; - } - } - - if (table_case != 0xff && tdma_case != 0xff) { - rtw_btc_table(btc, NM_EXCU, table_case); - rtw_btc_tdma(btc, NM_EXCU, tdma_case); - } -} - -static void rtw_btc_run_coex(struct btc_coexist *btc, u8 reason) -{ - struct btc_coex_dm *coex_dm = &btc->coex_dm; - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; - struct btc_wifi_link_info *link_info = &btc->wifi_link_info; - const struct btc_chip_para *chip_para = btc->chip_para; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): reason = %d\n", __func__, reason); - BTC_TRACE(trace_buf); - - coex_sta->coex_run_reason = reason; - - /* update wifi_link_info_ext variable */ - rtw_btc_update_wl_link_info(btc, reason); - - rtw_btc_monitor_bt_enable(btc); - - if (btc->manual_control) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], return for Manual CTRL!!\n"); - BTC_TRACE(trace_buf); - return; - } - - if (btc->stop_coex_dm) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], return for Stop Coex DM!!\n"); - BTC_TRACE(trace_buf); - return; - } - - if (coex_sta->wl_under_ips) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], return for wifi is under IPS!!\n"); - BTC_TRACE(trace_buf); - return; - } - - if (coex_sta->wl_under_lps && link_info_ext->is_32k) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], return for wifi is under LPS-32K!!\n"); - BTC_TRACE(trace_buf); - return; - } - - if (coex_sta->coex_freeze && reason == BTC_RSN_BTINFO && - !coex_sta->bt_setup_link) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], return for coex_freeze!!\n"); - BTC_TRACE(trace_buf); - return; - } - - coex_sta->cnt_wl[BTC_CNT_WL_COEXRUN]++; - coex_sta->coex_freerun = FALSE; - - /* Pure-5G Coex Process */ - if (link_info_ext->is_all_under_5g) { - coex_sta->wl_coex_mode = BTC_WLINK_5G; - rtw_btc_action_wl_under5g(btc); - goto exit; - } - - if (link_info_ext->is_mcc_25g) { - coex_sta->wl_coex_mode = BTC_WLINK_25GMPORT; - rtw_btc_action_wl_mcc25g(btc); - goto exit; - } - - /* if multi-port, P2P-GO, P2P-GC */ - if (link_info_ext->num_of_active_port > 1 || - (link_info->link_mode == BTC_LINK_ONLY_GO && - !link_info_ext->is_ap_mode) || - link_info->link_mode == BTC_LINK_ONLY_GC) { - if (link_info->link_mode == BTC_LINK_ONLY_GO) - coex_sta->wl_coex_mode = BTC_WLINK_2GGO; - else if (link_info->link_mode == BTC_LINK_ONLY_GC) - coex_sta->wl_coex_mode = BTC_WLINK_2GGC; - else - coex_sta->wl_coex_mode = BTC_WLINK_2GMPORT; - rtw_btc_action_wl_p2p2g(btc); - goto exit; - } - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], WiFi is single-port 2G!!\n"); - BTC_TRACE(trace_buf); - - coex_sta->wl_coex_mode = BTC_WLINK_2G1PORT; - - /*For airpods 2 + HID glitch issue*/ - if (coex_sta->bt_a2dp_vendor_id == 0x4c && coex_sta->bt_multi_link) - btc->btc_write_scbd(btc, BTC_SCBD_FIX2M, TRUE); - else - btc->btc_write_scbd(btc, BTC_SCBD_FIX2M, FALSE); - - if (coex_sta->bt_disabled) { - if (!link_info_ext->is_connected) - rtw_btc_action_wl_not_connected(btc); - else - rtw_btc_action_wl_only(btc); - goto exit; - } - - if (coex_sta->wl_under_lps && !coex_sta->wl_force_lps_ctrl) { - rtw_btc_action_wl_native_lps(btc); - goto exit; - } - - if (coex_sta->bt_whck_test) { - rtw_btc_action_bt_whql_test(btc); - goto exit; - } - - if (coex_sta->bt_setup_link) { - rtw_btc_action_bt_relink(btc); - goto exit; - } - - if (coex_sta->bt_inq_page) { - rtw_btc_action_bt_inquiry(btc); - goto exit; - } - - if ((coex_dm->bt_status == BTC_BTSTATUS_NCON_IDLE || - coex_dm->bt_status == BTC_BTSTATUS_CON_IDLE) && - link_info_ext->is_connected) { - rtw_btc_action_bt_idle(btc); - goto exit; - } - - if (coex_sta->wl_linkscan_proc && !coex_sta->coex_freerun) { - rtw_btc_action_wl_linkscan(btc); - goto exit; - } - - if (link_info_ext->is_connected) { - rtw_btc_action_wl_connected(btc); - goto exit; - } else { - rtw_btc_action_wl_not_connected(btc); - goto exit; - } - -exit: -#ifdef PLATFORM_WINDOWS - /* 0:original, 1:1R */ - if (coex_sta->wl_coex_mode == BTC_WLINK_2GFREE && - chip_para->rx_path_num >= 2) - rtw_btc_mimo_ps(btc, FC_EXCU, 1); - else - rtw_btc_mimo_ps(btc, FC_EXCU, 0); -#endif - - rtw_btc_gnt_workaround(btc, NM_EXCU, coex_sta->wl_coex_mode); - rtw_btc_limited_wl(btc); -} - -static void rtw_btc_init_coex_var(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_coex_dm *coex_dm = &btc->coex_dm; - const struct btc_chip_para *chip_para = btc->chip_para; - u8 i; - - /* Reset Coex variable */ - btc->btc_set(btc, BTC_SET_RESET_COEX_VAR, NULL); - - /* Init Coex variables that are not zero */ - for (i = 0; i < ARRAY_SIZE(coex_dm->bt_rssi_state); i++) - coex_dm->bt_rssi_state[i] = BTC_RSSI_STATE_LOW; - - for (i = 0; i < ARRAY_SIZE(coex_dm->wl_rssi_state); i++) - coex_dm->wl_rssi_state[i] = BTC_RSSI_STATE_LOW; - - for (i = 0; i < ARRAY_SIZE(coex_sta->bt_sut_pwr_lvl); i++) - coex_sta->bt_sut_pwr_lvl[i] = 0xff; - - coex_sta->bt_reg_vendor_ac = 0xffff; - coex_sta->bt_reg_vendor_ae = 0xffff; - - coex_sta->gnt_workaround_state = BTC_WLINK_MAX; - btc->bt_info.bt_get_fw_ver = 0; -} - -static void -rtw_btc_init_hw_config(struct btc_coexist *btc, boolean wifi_only) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - u8 table_case = 1, tdma_case = 0; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - /* init coex_dm, coex_sta variable to sync with chip status */ - rtw_btc_init_coex_var(btc); - - /* 0xf0[15:12] --> chip kt info */ - coex_sta->kt_ver = (btc->btc_read_1byte(btc, 0xf1) & 0xf0) >> 4; - - rtw_btc_monitor_bt_enable(btc); - - /* TBTT enable */ - btc->btc_write_1byte_bitmask(btc, REG_BCN_CTRL, BIT_EN_BCN_FUNCTION, - 0x1); - - /* Setup RF front end type */ - btc->chip_para->chip_setup(btc, BTC_CSETUP_RFE_TYPE); - - /* Init coex relared register */ - btc->chip_para->chip_setup(btc, BTC_CSETUP_INIT_HW); - - /* set Tx response = Hi-Pri (ex: Transmitting ACK,BA,CTS) */ - rtw_btc_set_wl_pri_mask(btc, BTC_WLPRI_TX_RSP, 1); - - /* set Tx beacon = Hi-Pri */ - rtw_btc_set_wl_pri_mask(btc, BTC_WLPRI_TX_BEACON, 1); - - /* set Tx beacon queue = Hi-Pri */ - rtw_btc_set_wl_pri_mask(btc, BTC_WLPRI_TX_BEACONQ, 1); - - /* Antenna config */ - if (btc->wl_rf_state_off) { - rtw_btc_set_ant_path(btc, FC_EXCU, BTC_ANT_WOFF); - btc->btc_write_scbd(btc, BTC_SCBD_ALL, FALSE); - btc->stop_coex_dm = TRUE; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): RF Off\n", __func__); - BTC_TRACE(trace_buf); - } else if (wifi_only) { - rtw_btc_set_ant_path(btc, FC_EXCU, BTC_ANT_WONLY); - btc->btc_write_scbd(btc, BTC_SCBD_ACTIVE | BTC_SCBD_ON, TRUE); - btc->stop_coex_dm = TRUE; - } else { - rtw_btc_set_ant_path(btc, FC_EXCU, BTC_ANT_INIT); - btc->btc_write_scbd(btc, BTC_SCBD_ACTIVE | BTC_SCBD_ON, TRUE); - btc->stop_coex_dm = FALSE; - coex_sta->coex_freeze = TRUE; - } - - /* PTA parameter */ - rtw_btc_table(btc, FC_EXCU, table_case); - rtw_btc_tdma(btc, FC_EXCU, tdma_case); - - rtw_btc_query_bt_info(btc); -} - -void rtw_btc_ex_power_on_setting(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_board_info *board_info = &btc->board_info; - u8 table_case = 1; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - btc->stop_coex_dm = TRUE; - btc->wl_rf_state_off = FALSE; - - /* enable BB, REG_SYS_FUNC_EN to write reg correctly. */ - btc->btc_write_1byte_bitmask(btc, REG_SYS_FUNC_EN, - BIT_FEN_BB_GLB_RST | BIT_FEN_BB_RSTB, 0x3); - - rtw_btc_monitor_bt_enable(btc); - - /* Setup RF front end type */ - btc->chip_para->chip_setup(btc, BTC_CSETUP_RFE_TYPE); - - /* Set Antenna Path to BT side */ - rtw_btc_set_ant_path(btc, FC_EXCU, BTC_ANT_POWERON); - - rtw_btc_table(btc, FC_EXCU, table_case); - - /* SD1 Chunchu red x issue */ - btc->btc_write_1byte(btc, 0xff1a, 0x0); - - rtw_btc_gnt_debug(btc, TRUE); - - board_info->btdm_ant_pos = BTC_ANTENNA_AT_MAIN_PORT; -} - -void rtw_btc_ex_pre_load_firmware(struct btc_coexist *btc) {} - -void rtw_btc_ex_init_hw_config(struct btc_coexist *btc, boolean wifi_only) -{ - rtw_btc_init_hw_config(btc, wifi_only); -} - -void rtw_btc_ex_init_coex_dm(struct btc_coexist *btc) -{ -} - -void rtw_btc_ex_display_simple_coex_info(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_coex_dm *coex_dm = &btc->coex_dm; - const struct btc_chip_para *chip_para = btc->chip_para; - struct btc_rfe_type *rfe_type = &btc->rfe_type; - struct btc_board_info *board_info = &btc->board_info; - - u8 *cli_buf = btc->cli_buf; - u32 bt_patch_ver = 0, bt_coex_ver = 0, val = 0; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n _____[BT Coexist info]____"); - CL_PRINTF(cli_buf); - - if (btc->manual_control) { - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n __[Under Manual Control]_"); - CL_PRINTF(cli_buf); - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n _________________________"); - CL_PRINTF(cli_buf); - } - - if (btc->stop_coex_dm) { - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n ____[Coex is STOPPED]____"); - CL_PRINTF(cli_buf); - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n _________________________"); - CL_PRINTF(cli_buf); - } - - if (!coex_sta->bt_disabled && - (coex_sta->bt_supported_version == 0 || - coex_sta->bt_supported_version == 0xffff) && - coex_sta->cnt_wl[BTC_CNT_WL_COEXINFO2] % 3 == 0) { - btc->btc_get(btc, BTC_GET_U4_SUPPORTED_FEATURE, - &coex_sta->bt_supported_feature); - - btc->btc_get(btc, BTC_GET_U4_SUPPORTED_VERSION, - &coex_sta->bt_supported_version); - - val = btc->btc_get_bt_reg(btc, 3, 0xac); - coex_sta->bt_reg_vendor_ac = (u16)(val & 0xffff); - - val = btc->btc_get_bt_reg(btc, 3, 0xae); - coex_sta->bt_reg_vendor_ae = (u16)(val & 0xffff); - - btc->btc_get(btc, BTC_GET_U4_BT_PATCH_VER, &bt_patch_ver); - btc->bt_info.bt_get_fw_ver = bt_patch_ver; - } - - /* BT coex. info. */ - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n %-35s = %d/ %d/ %s / %d", - "Ant PG Num/ Mech/ Pos/ RFE", board_info->pg_ant_num, - board_info->btdm_ant_num, - (board_info->btdm_ant_pos == - BTC_ANTENNA_AT_MAIN_PORT ? "Main" : "Aux"), - rfe_type->rfe_module_type); - CL_PRINTF(cli_buf); - - bt_coex_ver = ((coex_sta->bt_supported_version & 0xff00) >> 8); - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n %-35s = %d_%02x/ %d_%02x/ 0x%02x/ 0x%02x (%s)", - "Ver Coex/ Para/ BT_Dez/ BT_Rpt", - coex_ver_date, coex_ver, chip_para->para_ver_date, - chip_para->para_ver, chip_para->bt_desired_ver, bt_coex_ver, - (bt_coex_ver == 0xff ? "Unknown" : - (coex_sta->bt_disabled ? "BT-disable" : - (bt_coex_ver >= chip_para->bt_desired_ver ? - "Match" : "Mis-Match")))); - CL_PRINTF(cli_buf); - - /* BT Status */ - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s", "BT status", - ((coex_sta->bt_disabled) ? ("disabled") : - ((coex_sta->bt_inq_page) ? ("inquiry/page") : - ((coex_dm->bt_status == BTC_BTSTATUS_NCON_IDLE) ? - "non-connected idle" : - ((coex_dm->bt_status == BTC_BTSTATUS_CON_IDLE) ? - "connected-idle" : "busy"))))); - CL_PRINTF(cli_buf); - - /* HW Settings */ - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d", - "0x770(Hi-pri rx/tx)", coex_sta->hi_pri_rx, - coex_sta->hi_pri_tx); - CL_PRINTF(cli_buf); - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d %s", - "0x774(Lo-pri rx/tx)", coex_sta->lo_pri_rx, - coex_sta->lo_pri_tx, (coex_sta->bt_slave ? - "(Slave!!)" : "")); - CL_PRINTF(cli_buf); - - coex_sta->cnt_wl[BTC_CNT_WL_COEXINFO2]++; -} - -void rtw_btc_ex_display_coex_info(struct btc_coexist *btc) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_coex_dm *coex_dm = &btc->coex_dm; - const struct btc_chip_para *chip_para = btc->chip_para; - struct btc_rfe_type *rfe_type = &btc->rfe_type; - struct btc_board_info *board_info = &btc->board_info; - - u8 *cli_buf = btc->cli_buf, i, ps_tdma_case = 0; - u16 scbd; - u32 phy_ver = 0, fw_ver = 0, - bt_coex_ver = 0, val = 0, - fa_ofdm, fa_cck, cca_ofdm, cca_cck, - ok_11b, ok_11g, ok_11n, ok_11vht, - err_11b, err_11g, err_11n, err_11vht; - boolean is_bt_reply = FALSE; - u8 * const p = &coex_sta->bt_afh_map[0]; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n ============[BT Coexist info %s]============", - chip_para->chip_name); - CL_PRINTF(cli_buf); - - if (btc->manual_control) { - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n ============[Under Manual Control]============"); - CL_PRINTF(cli_buf); - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n =========================================="); - CL_PRINTF(cli_buf); - } else if (btc->stop_coex_dm) { - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n ============[Coex is STOPPED]============"); - CL_PRINTF(cli_buf); - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n =========================================="); - CL_PRINTF(cli_buf); - } else if (coex_sta->coex_freeze) { - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n ============[coex_freeze]============"); - CL_PRINTF(cli_buf); - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n =========================================="); - CL_PRINTF(cli_buf); - } - - if (!coex_sta->bt_disabled && - coex_sta->cnt_wl[BTC_CNT_WL_COEXINFO1] % 3 == 0) { - if (coex_sta->bt_supported_version == 0 || - coex_sta->bt_supported_version == 0xffff) { - btc->btc_get(btc, BTC_GET_U4_SUPPORTED_VERSION, - &coex_sta->bt_supported_version); - - if (coex_sta->bt_supported_version > 0 && - coex_sta->bt_supported_version < 0xffff) - is_bt_reply = TRUE; - } else { - is_bt_reply = TRUE; - } - - if (coex_dm->bt_status != BTC_BTSTATUS_NCON_IDLE) { - btc->btc_get_bt_afh_map_from_bt(btc, 0, p); - val = btc->btc_get_bt_reg(btc, 1, 0xa); - coex_sta->bt_reg_modem_a = (u16)((val & 0x1c0) >> 6); - val = btc->btc_get_bt_reg(btc, 0, 0x2); - coex_sta->bt_reg_rf_2 = (u16)val; - } - } - - if (is_bt_reply) { - if (coex_sta->bt_supported_feature == 0) { - btc->btc_get(btc, BTC_GET_U4_SUPPORTED_FEATURE, - &coex_sta->bt_supported_feature); - - if (coex_sta->bt_supported_feature & BIT(11)) - coex_sta->bt_slave_latency = TRUE; - else - coex_sta->bt_slave_latency = FALSE; - } - - if (coex_sta->bt_reg_vendor_ac == 0xffff) { - val = btc->btc_get_bt_reg(btc, 3, 0xac); - coex_sta->bt_reg_vendor_ac = (u16)(val & 0xffff); - } - - if (coex_sta->bt_reg_vendor_ae == 0xffff) { - val = btc->btc_get_bt_reg(btc, 3, 0xae); - coex_sta->bt_reg_vendor_ae = (u16)(val & 0xffff); - } - - if (btc->bt_info.bt_get_fw_ver == 0) - btc->btc_get(btc, BTC_GET_U4_BT_PATCH_VER, - &btc->bt_info.bt_get_fw_ver); - - if (coex_sta->bt_a2dp_exist && - coex_sta->bt_a2dp_vendor_id == 0 && - coex_sta->bt_a2dp_device_name == 0) { - btc->btc_get(btc, BTC_GET_U4_BT_DEVICE_INFO, &val); - coex_sta->bt_a2dp_vendor_id = (u8)(val & 0xff); - coex_sta->bt_a2dp_device_name = (val & 0xffffff00) >> 8; - } - - if (coex_sta->bt_a2dp_exist && - coex_sta->bt_a2dp_flush_time == 0) { - btc->btc_get(btc, BTC_GET_U4_BT_A2DP_FLUSH_VAL, &val); - coex_sta->bt_a2dp_flush_time = val; - } - } - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %s/ %s / %d/ %d", - "Ant PG Num/ Mech/ Pos/ RFE/ Dist", board_info->pg_ant_num, - (board_info->btdm_ant_num == 1 ? "Shared" : "Non-Shared"), - (board_info->btdm_ant_pos == BTC_ANTENNA_AT_MAIN_PORT ? - "Main" : "Aux"), rfe_type->rfe_module_type, - board_info->ant_distance); - CL_PRINTF(cli_buf); - - btc->btc_get(btc, BTC_GET_U4_WIFI_FW_VER, &fw_ver); - btc->btc_get(btc, BTC_GET_U4_WIFI_PHY_VER, &phy_ver); - bt_coex_ver = ((coex_sta->bt_supported_version & 0xff00) >> 8); - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n %-35s = %d_%02x/ %d_%02x/ 0x%02x/ 0x%02x (%s)", - "Ver Coex/ Para/ BT_Dez/ BT_Rpt", - coex_ver_date, coex_ver, chip_para->para_ver_date, - chip_para->para_ver, chip_para->bt_desired_ver, bt_coex_ver, - (bt_coex_ver == 0xff ? "Unknown" : - (coex_sta->bt_disabled ? "BT-disable" : - (bt_coex_ver >= chip_para->bt_desired_ver ? - "Match" : "Mis-Match")))); - CL_PRINTF(cli_buf); - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n %-35s = 0x%x(%s)/ 0x%08x/ v%d/ %c", - "W_FW/ B_FW/ Phy/ Kt", fw_ver, - (fw_ver >= wl_fw_desired_ver ? "Match" : "Mis-Match"), - btc->bt_info.bt_get_fw_ver, phy_ver, coex_sta->kt_ver + 65); - CL_PRINTF(cli_buf); - - /* wifi status */ - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s", - "============[Wifi Status]============"); - CL_PRINTF(cli_buf); - btc->btc_disp_dbg_msg(btc, BTC_DBG_DISP_WIFI_STATUS); - - /*EXT CHIP status*/ - if (btc->board_info.ext_chip_id != BTC_EXT_CHIP_NONE) { - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s", - "============[EXT CHIP Status]============"); - CL_PRINTF(cli_buf); - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s/ %s", - "EXT CHIP ID/EXT CHIP mode", - ((btc->board_info.ext_chip_id == - BTC_EXT_CHIP_RF4CE) ? "RF4CE" : "unknown"), - ((coex_sta->ext_chip_mode == - BTC_EXTMODE_VOICE) ? "VOICE" : "NORMAL")); - CL_PRINTF(cli_buf); - } - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s", - "============[BT Status]============"); - CL_PRINTF(cli_buf); - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s/ %ddBm/ %d/ %d", - "BT status/ rssi/ retryCnt/ popCnt", - ((coex_sta->bt_disabled) ? ("disabled") : - ((coex_sta->bt_inq_page) ? ("inquiry-page") : - ((coex_dm->bt_status == BTC_BTSTATUS_NCON_IDLE) ? - "non-connecte-idle" : ((coex_dm->bt_status == - BTC_BTSTATUS_CON_IDLE) ? "connected-idle" : "busy")))), - coex_sta->bt_rssi - 100, coex_sta->cnt_bt[BTC_CNT_BT_RETRY], - coex_sta->cnt_bt[BTC_CNT_BT_POPEVENT]); - CL_PRINTF(cli_buf); - - if (coex_sta->bt_profile_num != 0) { - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n %-35s = %s%s%s%s%s%s (multilink = %d)", - "Profiles", ((coex_sta->bt_a2dp_exist) ? - ((coex_sta->bt_a2dp_sink) ? "A2DP sink," : - "A2DP,") : ""), - ((coex_sta->bt_hfp_exist) ? "HFP," : ""), - ((coex_sta->bt_hid_exist) ? - ((coex_sta->bt_ble_exist) ? "HID(RCU)" : - ((coex_sta->bt_hid_slot >= 2) ? "HID(4/18)," : - (coex_sta->bt_ble_hid_exist ? "HID(BLE)" : - "HID(2/18),"))) : ""), ((coex_sta->bt_pan_exist) ? - ((coex_sta->bt_opp_exist) ? "OPP," : "PAN,") : - ""), ((coex_sta->bt_ble_voice) ? "Voice," : ""), - ((coex_sta->bt_msft_mr_exist) ? "MR" : ""), - coex_sta->bt_multi_link); - CL_PRINTF(cli_buf); - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n %-35s = %d/ %d/ %d/ %d", - "SUT Power[3:0]", - coex_sta->bt_sut_pwr_lvl[3], - coex_sta->bt_sut_pwr_lvl[2], - coex_sta->bt_sut_pwr_lvl[1], - coex_sta->bt_sut_pwr_lvl[0]); - - CL_PRINTF(cli_buf); - } else { - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s", - "Profiles", - (coex_sta->bt_msft_mr_exist) ? "MR" : "None"); - - CL_PRINTF(cli_buf); - } - - /* for 8822b, Scoreboard[10]: 0: CQDDR off, 1: CQDDR on - * for 8822c, Scoreboard[10]: 0: CQDDR on, 1:CQDDR fix 2M - */ - - if (coex_sta->bt_a2dp_exist) { - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n %-35s = %s/ %d/ 0x%x/ 0x%x/ %d", - "CQDDR/Bitpool/V_ID/D_name/Flush", - (chip_para->new_scbd10_def ? - ((coex_sta->bt_fix_2M) ? "fix_2M" : "CQDDR_On") : - ((coex_sta->bt_fix_2M) ? "CQDDR_On" : "CQDDR_Off")), - coex_sta->bt_a2dp_bitpool, - coex_sta->bt_a2dp_vendor_id, - coex_sta->bt_a2dp_device_name, - coex_sta->bt_a2dp_flush_time); - - CL_PRINTF(cli_buf); - } - - if (coex_sta->bt_hid_exist) { - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d", - "HID PairNum", coex_sta->bt_hid_pair_num); - CL_PRINTF(cli_buf); - } - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s/ %d/ %s/ 0x%x", - "Role/RoleSwCnt/IgnWla/Feature", - ((coex_sta->bt_slave) ? "Slave" : "Master"), - coex_sta->cnt_bt[BTC_CNT_BT_ROLESWITCH], - ((coex_dm->cur_ignore_wlan_act) ? "Yes" : "No"), - coex_sta->bt_supported_feature); - CL_PRINTF(cli_buf); - - if (coex_sta->bt_ble_scan_en) { - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x", - "BLEScan Type/TV/Init/Ble", - coex_sta->bt_ble_scan_type, - (coex_sta->bt_ble_scan_type & 0x1 ? - coex_sta->bt_ble_scan_para[0] : 0x0), - (coex_sta->bt_ble_scan_type & 0x2 ? - coex_sta->bt_ble_scan_para[1] : 0x0), - (coex_sta->bt_ble_scan_type & 0x4 ? - coex_sta->bt_ble_scan_para[2] : 0x0)); - CL_PRINTF(cli_buf); - } - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n %-35s = %d/ %d/ %d/ %d/ %d/ %d/ %d %s", - "Init/ReLink/IgnWl/Pag/Inq/iqkO/iqkX", - coex_sta->cnt_bt[BTC_CNT_BT_REINIT], - coex_sta->cnt_bt[BTC_CNT_BT_SETUPLINK], - coex_sta->cnt_bt[BTC_CNT_BT_IGNWLANACT], - coex_sta->cnt_bt[BTC_CNT_BT_PAGE], - coex_sta->cnt_bt[BTC_CNT_BT_INQ], - coex_sta->cnt_bt[BTC_CNT_BT_IQK], - coex_sta->cnt_bt[BTC_CNT_BT_IQKFAIL], - (coex_sta->bt_setup_link ? "(Relink!!)" : "")); - CL_PRINTF(cli_buf); - - if (coex_sta->bt_reg_vendor_ae == 0xffff || - coex_sta->bt_reg_vendor_ac == 0xffff) - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n %-35s = x/ x/ 0x%04x", - "0xae[4]/0xac[1:0]/ScBd(B->W)", - btc->btc_read_scbd(btc, &scbd)); - else - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x/ 0x%04x/ %s", - "ae/ac/m_a[8:6]/rf_2/ScBd(B->W)/path", - coex_sta->bt_reg_vendor_ae, - coex_sta->bt_reg_vendor_ac, - coex_sta->bt_reg_modem_a, - coex_sta->bt_reg_rf_2, - btc->btc_read_scbd(btc, &scbd), - ((coex_sta->bt_reg_vendor_ae & BIT(4)) ? "S1" : "S0" - )); - CL_PRINTF(cli_buf); - - if (coex_dm->bt_status != BTC_BTSTATUS_NCON_IDLE) { - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n %-35s = %02x%02x%02x%02x %02x%02x%02x%02x %02x%02x", - "AFH MAP", coex_sta->bt_afh_map[0], - coex_sta->bt_afh_map[1], coex_sta->bt_afh_map[2], - coex_sta->bt_afh_map[3], coex_sta->bt_afh_map[4], - coex_sta->bt_afh_map[5], coex_sta->bt_afh_map[6], - coex_sta->bt_afh_map[7], coex_sta->bt_afh_map[8], - coex_sta->bt_afh_map[9]); - CL_PRINTF(cli_buf); - } - - for (i = 0; i < BTC_BTINFO_SRC_BT_IQK; i++) { - if (coex_sta->cnt_bt_info_c2h[i]) { - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n %-35s = %02x %02x %02x %02x %02x %02x %02x (%d)", - glbt_info_src[i], - coex_sta->bt_info_c2h[i][0], - coex_sta->bt_info_c2h[i][1], - coex_sta->bt_info_c2h[i][2], - coex_sta->bt_info_c2h[i][3], - coex_sta->bt_info_c2h[i][4], - coex_sta->bt_info_c2h[i][5], - coex_sta->bt_info_c2h[i][6], - coex_sta->cnt_bt_info_c2h[i]); - CL_PRINTF(cli_buf); - } - } - - if (btc->manual_control) { - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s", - "============[mechanisms] (under Manual)============"); - CL_PRINTF(cli_buf); - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n %-35s = %02x %02x %02x %02x %02x", - "TDMA_Now", - coex_dm->fw_tdma_para[0], coex_dm->fw_tdma_para[1], - coex_dm->fw_tdma_para[2], coex_dm->fw_tdma_para[3], - coex_dm->fw_tdma_para[4]); - CL_PRINTF(cli_buf); - } else { - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s", - "============[Mechanisms]============"); - CL_PRINTF(cli_buf); - - ps_tdma_case = coex_dm->cur_ps_tdma; - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n %-35s = %02x %02x %02x %02x %02x (case-%d, TDMA-%s, Ext-%d, Tog-%d)", - "TDMA", - coex_dm->ps_tdma_para[0], coex_dm->ps_tdma_para[1], - coex_dm->ps_tdma_para[2], coex_dm->ps_tdma_para[3], - coex_dm->ps_tdma_para[4], ps_tdma_case, - (coex_dm->cur_ps_tdma_on ? "On" : "Off"), - coex_sta->bt_ext_autoslot_thres, - coex_sta->wl_toggle_interval); - CL_PRINTF(cli_buf); - } - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s/ %s/ %d", - "Coex_Mode/Free_Run/Timer_base", - coex_mode_string[coex_sta->wl_coex_mode], - ((coex_sta->coex_freerun) ? "Yes" : "No"), - coex_sta->tdma_timer_base); - - CL_PRINTF(cli_buf); - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n %-35s = %d/ 0x%x/ 0x%x/ 0x%x", - "Table/0x6c0/0x6c4/0x6c8", coex_sta->coex_table_type, - btc->btc_read_4byte(btc, REG_BT_COEX_TABLE0), - btc->btc_read_4byte(btc, REG_BT_COEX_TABLE1), - btc->btc_read_4byte(btc, REG_BT_COEX_BRK_TABLE)); - CL_PRINTF(cli_buf); - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n %-35s = 0x%x/ 0x%x/ 0x%04x/ %d/ %s", - "0x778/0x6cc/ScBd(W->B)/RunCnt/Rsn", - btc->btc_read_1byte(btc, REG_BT_STAT_CTRL), - btc->btc_read_4byte(btc, REG_BT_COEX_TABLE_H), - coex_sta->score_board_WB, - coex_sta->cnt_wl[BTC_CNT_WL_COEXRUN], - run_reason_string[coex_sta->coex_run_reason]); - CL_PRINTF(cli_buf); - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n %-35s = %02x %02x %02x (RF-Ch = %d)", "AFH Map to BT", - coex_dm->wl_chnl_info[0], coex_dm->wl_chnl_info[1], - coex_dm->wl_chnl_info[2], coex_sta->wl_center_ch); - CL_PRINTF(cli_buf); - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s/ %s/ %s/ %d", - "AntDiv/BtCtrlLPS/LPRA/g_busy", - ((board_info->ant_div_cfg) ? "On" : "Off"), - ((coex_sta->wl_force_lps_ctrl) ? "On" : "Off"), - ((coex_dm->cur_low_penalty_ra) ? "On" : "Off"), - coex_sta->wl_gl_busy); - CL_PRINTF(cli_buf); - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d/ %d/ %d", - "Null All/Retry/Ack/BT_Empty/BT_Late", - coex_sta->wl_fw_dbg_info[1], coex_sta->wl_fw_dbg_info[2], - coex_sta->wl_fw_dbg_info[3], coex_sta->wl_fw_dbg_info[4], - coex_sta->wl_fw_dbg_info[5]); - CL_PRINTF(cli_buf); - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %s/ %d", - "Cnt TDMA_Togg/LkRx/LKAP_On/fw", - coex_sta->wl_fw_dbg_info[6], - coex_sta->wl_fw_dbg_info[7], - ((coex_sta->wl_leak_ap) ? "Yes" : "No"), - coex_sta->cnt_wl[BTC_CNT_WL_FW_NOTIFY]); - CL_PRINTF(cli_buf); - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %s/ %d", - "WL_TxPw/BT_TxPw/WL_Rx/BT_LNA_Lvl", - coex_dm->cur_wl_pwr_lvl, coex_dm->cur_bt_pwr_lvl, - ((coex_dm->cur_wl_rx_low_gain_en) ? "On" : "Off"), - coex_dm->cur_bt_lna_lvl); - CL_PRINTF(cli_buf); - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %s", - "MIMO_PS On/Recover/BlackAP", - coex_sta->cnt_wl[BTC_CNT_WL_2G_FDDSTAY], - coex_sta->cnt_wl[BTC_CNT_WL_2G_TDDTRY], - ((coex_sta->wl_blacklist_ap) ? "Yes": "No")); - CL_PRINTF(cli_buf); - - /* Hw setting */ - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s", - "============[Hw setting]============"); - CL_PRINTF(cli_buf); - - btc->chip_para->chip_setup(btc, BTC_CSETUP_COEXINFO_HW); - - fa_ofdm = btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_FA_OFDM); - fa_cck = btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_FA_CCK); - cca_ofdm = btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CCA_OFDM); - cca_cck = btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CCA_CCK); - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n %-35s = %d/ %d/ %d/ %d", - "CCK-CCA/CCK-FA/OFDM-CCA/OFDM-FA", cca_cck, fa_cck, cca_ofdm, - fa_ofdm); - CL_PRINTF(cli_buf); - - ok_11b = - btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_OK_CCK); - ok_11g = - btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_OK_LEGACY); - ok_11n = - btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_OK_HT); - ok_11vht = - btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_OK_VHT); - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d/ %d", - "CRC_OK CCK/11g/11n/11ac", ok_11b, ok_11g, ok_11n, ok_11vht); - CL_PRINTF(cli_buf); - - err_11b = - btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_ERROR_CCK); - err_11g = - btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_ERROR_LEGACY); - err_11n = - btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_ERROR_HT); - err_11vht = - btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_ERROR_VHT); - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d/ %d", - "CRC_Err CCK/11g/11n/11ac", - err_11b, err_11g, err_11n, err_11vht); - CL_PRINTF(cli_buf); - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, - "\r\n %-35s = %d/ %d/ %s-%d/ %d (Tx macid: %d)", - "Rate RxD/RxRTS/TxD/TxRetry_ratio", - coex_sta->wl_rx_rate, coex_sta->wl_rts_rx_rate, - (coex_sta->wl_tx_rate & 0x80 ? "SGI" : "LGI"), - coex_sta->wl_tx_rate & 0x7f, - coex_sta->wl_tx_retry_ratio, - coex_sta->wl_tx_macid); - CL_PRINTF(cli_buf); - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s/ %s/ %s/ %d", - "HiPr/ Locking/ Locked/ Noisy", - (coex_sta->wl_hi_pri_task1 ? "Yes" : "No"), - (coex_sta->wl_cck_lock ? "Yes" : "No"), - (coex_sta->wl_cck_lock_ever ? "Yes" : "No"), - coex_sta->wl_noisy_level); - CL_PRINTF(cli_buf); - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d", - "0x770(Hi-pri rx/tx)", coex_sta->hi_pri_rx, - coex_sta->hi_pri_tx); - CL_PRINTF(cli_buf); - - CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d %s", - "0x774(Lo-pri rx/tx)", coex_sta->lo_pri_rx, - coex_sta->lo_pri_tx, (coex_sta->bt_slave ? - "(Slave!!)" : "")); - CL_PRINTF(cli_buf); - - btc->btc_disp_dbg_msg(btc, BTC_DBG_DISP_COEX_STATISTICS); - - coex_sta->cnt_wl[BTC_CNT_WL_COEXINFO1]++; - - if (coex_sta->cnt_wl[BTC_CNT_WL_COEXINFO1] % 5 == 0) - coex_sta->cnt_bt[BTC_CNT_BT_POPEVENT] = 0; -} - -void rtw_btc_ex_ips_notify(struct btc_coexist *btc, u8 type) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - - if (btc->manual_control || btc->stop_coex_dm) - return; - - if (type == BTC_IPS_ENTER) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], IPS ENTER notify\n"); - BTC_TRACE(trace_buf); - coex_sta->wl_under_ips = TRUE; - - /* Write WL "Active" in Score-board for LPS off */ - btc->btc_write_scbd(btc, BTC_SCBD_ALL, FALSE); - - rtw_btc_set_ant_path(btc, FC_EXCU, BTC_ANT_WOFF); - rtw_btc_action_coex_all_off(btc); - } else if (type == BTC_IPS_LEAVE) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], IPS LEAVE notify\n"); - BTC_TRACE(trace_buf); - btc->btc_write_scbd(btc, BTC_SCBD_ACTIVE | BTC_SCBD_ON, TRUE); - - /*leave IPS : run ini hw config (exclude wifi only)*/ - rtw_btc_init_hw_config(btc, FALSE); - - coex_sta->wl_under_ips = FALSE; - } -} - -void rtw_btc_ex_lps_notify(struct btc_coexist *btc, u8 type) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - - if (btc->manual_control || btc->stop_coex_dm) - return; - - if (type == BTC_LPS_ENABLE) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], LPS ENABLE notify\n"); - BTC_TRACE(trace_buf); - coex_sta->wl_under_lps = TRUE; - - if (coex_sta->wl_force_lps_ctrl) { /* LPS No-32K */ - /* Write WL "Active" in Score-board for PS-TDMA */ - btc->btc_write_scbd(btc, BTC_SCBD_ACTIVE, TRUE); - } else { - /* Write WL "Non-Active" in Score-board for Native-PS */ - btc->btc_write_scbd(btc, BTC_SCBD_ACTIVE, FALSE); - btc->btc_write_scbd(btc, BTC_SCBD_WLBUSY, FALSE); - - rtw_btc_run_coex(btc, BTC_RSN_LPS); - } - } else if (type == BTC_LPS_DISABLE) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], LPS DISABLE notify\n"); - BTC_TRACE(trace_buf); - coex_sta->wl_under_lps = FALSE; - - /* Write WL "Active" in Score-board for LPS off */ - btc->btc_write_scbd(btc, BTC_SCBD_ACTIVE, TRUE); - - if (!coex_sta->wl_force_lps_ctrl) - rtw_btc_query_bt_info(btc); - - rtw_btc_run_coex(btc, BTC_RSN_LPS); - } -} - -void rtw_btc_ex_scan_notify(struct btc_coexist *btc, u8 type) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - - if (btc->manual_control || btc->stop_coex_dm) - return; - - coex_sta->coex_freeze = FALSE; - - btc->btc_write_scbd(btc, BTC_SCBD_ACTIVE | BTC_SCBD_ON, TRUE); - - if (type == BTC_SCAN_START_5G) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], SCAN START notify (5G)\n"); - BTC_TRACE(trace_buf); - - rtw_btc_set_ant_path(btc, FC_EXCU, BTC_ANT_5G); - rtw_btc_run_coex(btc, BTC_RSN_5GSCANSTART); - } else if (type == BTC_SCAN_START_2G || type == BTC_SCAN_START) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], SCAN START notify (2G)\n"); - BTC_TRACE(trace_buf); - - coex_sta->wl_hi_pri_task2 = TRUE; - - /* Force antenna setup for no scan result issue */ - rtw_btc_set_ant_path(btc, FC_EXCU, BTC_ANT_2G); - rtw_btc_run_coex(btc, BTC_RSN_2GSCANSTART); - } else { - btc->btc_get(btc, BTC_GET_U1_AP_NUM, - &coex_sta->cnt_wl[BTC_CNT_WL_SCANAP]); - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], SCAN FINISH notify (Scan-AP = %d)\n", - coex_sta->cnt_wl[BTC_CNT_WL_SCANAP]); - BTC_TRACE(trace_buf); - - coex_sta->wl_hi_pri_task2 = FALSE; - - rtw_btc_run_coex(btc, BTC_RSN_SCANFINISH); - } -} - -void rtw_btc_ex_scan_notify_without_bt(struct btc_coexist *btc, u8 type) -{ - struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; - struct btc_rfe_type *rfe_type = &btc->rfe_type; - u8 ctrl_type = BTC_SWITCH_CTRL_BY_BBSW, pos_type = BTC_SWITCH_TO_WLG; - - if (!rfe_type->ant_switch_exist) - return; - - if (type == BTC_SCAN_START && link_info_ext->is_all_under_5g) - pos_type = BTC_SWITCH_TO_WLA; - - rtw_btc_set_ant_switch(btc, FC_EXCU, ctrl_type, pos_type); -} - -void rtw_btc_ex_switchband_notify(struct btc_coexist *btc, u8 type) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - - if (btc->manual_control || btc->stop_coex_dm) - return; - - if (type == BTC_SWITCH_TO_5G) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): TO_5G\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_run_coex(btc, BTC_RSN_5GSWITCHBAND); - } else if (type == BTC_SWITCH_TO_24G_NOFORSCAN) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): TO_24G_NOFORSCAN\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_run_coex(btc, BTC_RSN_2GSWITCHBAND); - } else { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): TO_2G\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_ex_scan_notify(btc, BTC_SCAN_START_2G); - } -} - -void rtw_btc_ex_switchband_notify_without_bt(struct btc_coexist *btc, u8 type) -{ - struct btc_rfe_type *rfe_type = &btc->rfe_type; - u8 ctrl_type = BTC_SWITCH_CTRL_BY_BBSW, pos_type = BTC_SWITCH_TO_WLG; - - if (!rfe_type->ant_switch_exist) - return; - - if (type == BTC_SWITCH_TO_5G) { - pos_type = BTC_SWITCH_TO_WLA; - } else if (type == BTC_SWITCH_TO_24G_NOFORSCAN) { - pos_type = BTC_SWITCH_TO_WLG; - } else { - rtw_btc_ex_scan_notify_without_bt(btc, BTC_SCAN_START_2G); - return; - } - - rtw_btc_set_ant_switch(btc, FC_EXCU, ctrl_type, pos_type); -} - -void rtw_btc_ex_connect_notify(struct btc_coexist *btc, u8 type) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - - if (btc->manual_control || btc->stop_coex_dm) - return; - - btc->btc_write_scbd(btc, BTC_SCBD_ACTIVE | BTC_SCBD_ON, TRUE); - - if (type == BTC_ASSOCIATE_5G_START) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): 5G start\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_set_ant_path(btc, FC_EXCU, BTC_ANT_5G); - - rtw_btc_run_coex(btc, BTC_RSN_5GCONSTART); - } else if (type == BTC_ASSOCIATE_5G_FINISH) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): 5G finish\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_set_ant_path(btc, FC_EXCU, BTC_ANT_5G); - - rtw_btc_run_coex(btc, BTC_RSN_5GCONFINISH); - } else if (type == BTC_ASSOCIATE_START) { - coex_sta->wl_hi_pri_task1 = TRUE; - coex_sta->cnt_wl[BTC_CNT_WL_ARP] = 0; - coex_sta->wl_connecting = TRUE; - btc->btc_set_timer(btc, BTC_TIMER_WL_CONNPKT, 2); - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): 2G start\n", __func__); - BTC_TRACE(trace_buf); - - /* Force antenna setup for no scan result issue */ - rtw_btc_set_ant_path(btc, FC_EXCU, BTC_ANT_2G); - - rtw_btc_run_coex(btc, BTC_RSN_2GCONSTART); - - /* To keep TDMA case during connect process, - * to avoid changed by Btinfo and run_coex - */ - coex_sta->coex_freeze = TRUE; - btc->btc_set_timer(btc, BTC_TIMER_WL_COEXFREEZE, 5); - } else { - coex_sta->wl_hi_pri_task1 = FALSE; - coex_sta->coex_freeze = FALSE; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): 2G finish\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_run_coex(btc, BTC_RSN_2GCONFINISH); - } -} - -void rtw_btc_ex_media_status_notify(struct btc_coexist *btc, u8 type) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - boolean wl_b_mode = FALSE; - u8 i; - - if (btc->manual_control || btc->stop_coex_dm) - return; - - btc->btc_get(btc, BTC_GET_BL_WIFI_BSSID, btc->wifi_bssid); - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): BSSID = %02x %02X %02X %02x %02X %02X\n", - __func__, btc->wifi_bssid[0], - btc->wifi_bssid[1], btc->wifi_bssid[2], - btc->wifi_bssid[3], btc->wifi_bssid[4], - btc->wifi_bssid[5]); - BTC_TRACE(trace_buf); - - /* check if black-list ap */ - for (i = 0; i <= 5; i++) { - if (btc->wifi_bssid[i] != btc->wifi_black_bssid[i]) - break; - } - - if (i <= 5) - coex_sta->wl_blacklist_ap = FALSE; - else - coex_sta->wl_blacklist_ap = TRUE; - - if (type == BTC_MEDIA_CONNECT_5G) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): 5G\n", __func__); - BTC_TRACE(trace_buf); - - btc->btc_write_scbd(btc, BTC_SCBD_ACTIVE, TRUE); - - rtw_btc_set_ant_path(btc, FC_EXCU, BTC_ANT_5G); - - rtw_btc_run_coex(btc, BTC_RSN_5GMEDIA); - } else if (type == BTC_MEDIA_CONNECT) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): 2G\n", __func__); - BTC_TRACE(trace_buf); - - btc->btc_write_scbd(btc, BTC_SCBD_ACTIVE, TRUE); - - /* Force antenna setup for no scan result issue */ - rtw_btc_set_ant_path(btc, FC_EXCU, BTC_ANT_2G); - - btc->btc_get(btc, BTC_GET_BL_WIFI_UNDER_B_MODE, &wl_b_mode); - - /* Set CCK Tx/Rx high Pri except 11b mode */ - if (wl_b_mode)/* CCK Rx */ - rtw_btc_set_wl_pri_mask(btc, BTC_WLPRI_RX_CCK, 0); - else /* CCK Rx */ - rtw_btc_set_wl_pri_mask(btc, BTC_WLPRI_RX_CCK, 1); - - rtw_btc_run_coex(btc, BTC_RSN_2GMEDIA); - } else { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): disconnect!!\n", __func__); - BTC_TRACE(trace_buf); - coex_sta->cnt_wl[BTC_CNT_WL_ARP] = 0; - - rtw_btc_run_coex(btc, BTC_RSN_MEDIADISCON); - } - - btc->btc_get(btc, BTC_GET_U1_IOT_PEER, &coex_sta->wl_iot_peer); - rtw_btc_update_wl_ch_info(btc, type); -} - -void rtw_btc_ex_specific_packet_notify(struct btc_coexist *btc, u8 type) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - boolean under_4way = FALSE; - - if (btc->manual_control || btc->stop_coex_dm) - return; - - if (type & BTC_5G_BAND) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): 5G\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_run_coex(btc, BTC_RSN_5GSPECIALPKT); - return; - } - - btc->btc_get(btc, BTC_GET_BL_WIFI_4_WAY_PROGRESS, &under_4way); - - if (under_4way) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): under_4way!!\n", __func__); - BTC_TRACE(trace_buf); - - coex_sta->wl_hi_pri_task1 = TRUE; - btc->btc_set_timer(btc, BTC_TIMER_WL_SPECPKT, 2); - } else if (type == BTC_PACKET_ARP) { - coex_sta->cnt_wl[BTC_CNT_WL_ARP]++; - - if (coex_sta->wl_hi_pri_task1) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): ARP cnt = %d\n", - __func__, coex_sta->cnt_wl[BTC_CNT_WL_ARP]); - BTC_TRACE(trace_buf); - } - } else { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): DHCP or EAPOL Type = %d\n", - __func__, type); - BTC_TRACE(trace_buf); - - coex_sta->wl_hi_pri_task1 = TRUE; - btc->btc_set_timer(btc, BTC_TIMER_WL_SPECPKT, 2); - } - - if (coex_sta->wl_hi_pri_task1) - rtw_btc_run_coex(btc, BTC_RSN_2GSPECIALPKT); -} - -void rtw_btc_ex_bt_info_notify(struct btc_coexist *btc, u8 *tmp_buf, u8 length) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_coex_dm *coex_dm = &btc->coex_dm; - struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; - u8 i, rsp_source = 0, type; - - rsp_source = tmp_buf[0] & 0xf; - if (rsp_source >= BTC_BTINFO_SRC_MAX) - return; - - coex_sta->cnt_bt_info_c2h[rsp_source]++; - - /* bt_iqk_state-> 1: start, 0: ok, 2:fail */ - if (rsp_source == BTC_BTINFO_SRC_BT_IQK) { - coex_sta->bt_iqk_state = tmp_buf[1]; - if (coex_sta->bt_iqk_state == 0x0) - coex_sta->cnt_bt[BTC_CNT_BT_IQK]++; - else if (coex_sta->bt_iqk_state == 0x2) - coex_sta->cnt_bt[BTC_CNT_BT_IQKFAIL]++; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], BT IQK by bt_info, data0 = 0x%02x\n", - tmp_buf[1]); - BTC_TRACE(trace_buf); - return; - } - - if (rsp_source == BTC_BTINFO_SRC_BT_SCBD) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], BT Scoreboard change notify by WL FW c2h, 0xaa = 0x%02x, 0xab = 0x%02x\n", - tmp_buf[1], tmp_buf[2]); - BTC_TRACE(trace_buf); - rtw_btc_monitor_bt_enable(btc); - - if (coex_sta->bt_disabled != coex_sta->bt_disabled_pre) { - coex_sta->bt_disabled_pre = coex_sta->bt_disabled; - rtw_btc_run_coex(btc, BTC_RSN_BTINFO); - } - return; - } - - if (rsp_source == BTC_BTINFO_SRC_H2C60) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], H2C 0x60 content replied by WL FW: H2C_0x60 = [%02x %02x %02x %02x %02x]\n", - tmp_buf[1], tmp_buf[2], tmp_buf[3], tmp_buf[4], - tmp_buf[5]); - BTC_TRACE(trace_buf); - - for (i = 1; i <= 5; i++) - coex_dm->fw_tdma_para[i - 1] = tmp_buf[i]; - return; - } - - if (rsp_source == BTC_BTINFO_SRC_WL_FW) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], bt_info reply by WL FW\n"); - BTC_TRACE(trace_buf); - rtw_btc_update_bt_link_info(btc); - /* rtw_btc_run_coex(btc, BTC_RSN_BTINFO); */ - return; - } - - if (rsp_source == BTC_BTINFO_SRC_BT_RSP || - rsp_source == BTC_BTINFO_SRC_BT_ACT) { - if (coex_sta->bt_disabled) { - coex_sta->bt_disabled = FALSE; - coex_sta->bt_reenable = TRUE; - btc->btc_set_timer(btc, BTC_TIMER_BT_REENABLE, 15); - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], BT enable detected by bt_info\n"); - BTC_TRACE(trace_buf); - } - } - - if (length != 7) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], Bt_info length = %d invalid!!\n", - length); - BTC_TRACE(trace_buf); - return; - } - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], Bt_info[%d], len=%d, data=[%02x %02x %02x %02x %02x %02x]\n", - tmp_buf[0], length, tmp_buf[1], tmp_buf[2], tmp_buf[3], - tmp_buf[4], tmp_buf[5], tmp_buf[6]); - BTC_TRACE(trace_buf); - - for (i = 0; i < 7; i++) - coex_sta->bt_info_c2h[rsp_source][i] = tmp_buf[i]; - - if (coex_sta->bt_info_c2h[rsp_source][1] == coex_sta->bt_info_lb2 && - coex_sta->bt_info_c2h[rsp_source][2] == coex_sta->bt_info_lb3 && - coex_sta->bt_info_c2h[rsp_source][3] == coex_sta->bt_info_hb0 && - coex_sta->bt_info_c2h[rsp_source][4] == coex_sta->bt_info_hb1 && - coex_sta->bt_info_c2h[rsp_source][5] == coex_sta->bt_info_hb2 && - coex_sta->bt_info_c2h[rsp_source][6] == coex_sta->bt_info_hb3) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], Return because Btinfo duplicate!!\n"); - BTC_TRACE(trace_buf); - return; - } - - coex_sta->bt_info_lb2 = coex_sta->bt_info_c2h[rsp_source][1]; - coex_sta->bt_info_lb3 = coex_sta->bt_info_c2h[rsp_source][2]; - coex_sta->bt_info_hb0 = coex_sta->bt_info_c2h[rsp_source][3]; - coex_sta->bt_info_hb1 = coex_sta->bt_info_c2h[rsp_source][4]; - coex_sta->bt_info_hb2 = coex_sta->bt_info_c2h[rsp_source][5]; - coex_sta->bt_info_hb3 = coex_sta->bt_info_c2h[rsp_source][6]; - - /* ========== BT info Low-Byte2 ========== */ - /* if 0xff, it means BT is under WHCK test */ - coex_sta->bt_whck_test = (coex_sta->bt_info_lb2 == 0xff); - coex_sta->bt_inq_page = ((coex_sta->bt_info_lb2 & BIT(2)) == BIT(2)); - - if (coex_sta->bt_inq_page_pre != coex_sta->bt_inq_page) { - coex_sta->bt_inq_page_pre = coex_sta->bt_inq_page; - coex_sta->bt_inq_page_remain = TRUE; - - if (!coex_sta->bt_inq_page) - btc->btc_set_timer(btc, BTC_TIMER_BT_INQPAGE, 2); - } - coex_sta->bt_acl_busy = ((coex_sta->bt_info_lb2 & BIT(3)) == BIT(3)); - - /* ========== BT info Low-Byte3 ========== */ - coex_sta->cnt_bt[BTC_CNT_BT_RETRY] = coex_sta->bt_info_lb3 & 0xf; - - if (coex_sta->cnt_bt[BTC_CNT_BT_RETRY] >= 1) - coex_sta->cnt_bt[BTC_CNT_BT_POPEVENT]++; - - coex_sta->bt_fix_2M = ((coex_sta->bt_info_lb3 & BIT(4)) == BIT(4)); - - coex_sta->bt_inq = ((coex_sta->bt_info_lb3 & BIT(5)) == BIT(5)); - - coex_sta->bt_mesh = ((coex_sta->bt_info_lb3 & BIT(6)) == BIT(6)); - - if (coex_sta->bt_inq) - coex_sta->cnt_bt[BTC_CNT_BT_INQ]++; - - coex_sta->bt_page = ((coex_sta->bt_info_lb3 & BIT(7)) == BIT(7)); - - if (coex_sta->bt_page) - coex_sta->cnt_bt[BTC_CNT_BT_PAGE]++; - - /* ========== BT info High-Byte0 ========== */ - /* unit: %, value-100 to translate to unit: dBm */ - if (btc->chip_para->bt_rssi_type == BTC_BTRSSI_RATIO) { - coex_sta->bt_rssi = coex_sta->bt_info_hb0 * 2 + 10; - } else { /* coex_sta->bt_info_hb0 is just dbm */ - if (coex_sta->bt_info_hb0 <= 127) - coex_sta->bt_rssi = 100; - else if (256 - coex_sta->bt_info_hb0 <= 100) - coex_sta->bt_rssi = 100 - (256 - coex_sta->bt_info_hb0); - else - coex_sta->bt_rssi = 0; - } - - /* ========== BT info High-Byte1 ========== */ - coex_sta->bt_ble_exist = ((coex_sta->bt_info_hb1 & BIT(0)) == BIT(0)); - - if (coex_sta->bt_info_hb1 & BIT(1)) - coex_sta->cnt_bt[BTC_CNT_BT_REINIT]++; - - if ((coex_sta->bt_info_hb1 & BIT(2)) || - (coex_sta->bt_page && coex_sta->wl_pnp_wakeup)) { - coex_sta->cnt_bt[BTC_CNT_BT_SETUPLINK]++; - coex_sta->bt_setup_link = TRUE; - - if (coex_sta->bt_reenable) - btc->btc_set_timer(btc, BTC_TIMER_BT_RELINK, 6); - else - btc->btc_set_timer(btc, BTC_TIMER_BT_RELINK, 1); - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], Re-Link start in BT info!!\n"); - BTC_TRACE(trace_buf); - } - - if (coex_sta->bt_info_hb1 & BIT(3)) - coex_sta->cnt_bt[BTC_CNT_BT_IGNWLANACT]++; - - coex_sta->bt_ble_voice = ((coex_sta->bt_info_hb1 & BIT(4)) == BIT(4)); - coex_sta->bt_ble_scan_en = ((coex_sta->bt_info_hb1 & BIT(5)) == BIT(5)); - - if (coex_sta->bt_info_hb1 & BIT(6)) - coex_sta->cnt_bt[BTC_CNT_BT_ROLESWITCH]++; - - coex_sta->bt_multi_link = ((coex_sta->bt_info_hb1 & BIT(7)) == BIT(7)); - - /* for multi_link = 0 but bt pkt remain exist -> - * Use PS-TDMA to protect WL RX - */ - if (!coex_sta->bt_multi_link && coex_sta->bt_multi_link_pre) { - coex_sta->bt_multi_link_remain = TRUE; - btc->btc_set_timer(btc, BTC_TIMER_BT_MULTILINK, 3); - } - - coex_sta->bt_multi_link_pre = coex_sta->bt_multi_link; - - /* Here we need to resend some wifi info to BT */ - /* because bt is reset and loss of the info. */ - /* Re-Init */ - if ((coex_sta->bt_info_hb1 & BIT(1))) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], BT Re-init, send wifi BW & Chnl to BT!!\n"); - BTC_TRACE(trace_buf); - if (link_info_ext->is_connected) - type = BTC_MEDIA_CONNECT; - else - type = BTC_MEDIA_DISCONNECT; - rtw_btc_update_wl_ch_info(btc, type); - } - - /* If Ignore_WLanAct && not SetUp_Link */ - if ((coex_sta->bt_info_hb1 & BIT(3)) && - (!(coex_sta->bt_info_hb1 & BIT(2)))) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], BT ext info bit3 check, set BT NOT to ignore Wlan active!!\n"); - BTC_TRACE(trace_buf); - rtw_btc_ignore_wlan_act(btc, FC_EXCU, FALSE); - } - - /* ========== BT info High-Byte2 ========== */ - coex_sta->bt_opp_exist = ((coex_sta->bt_info_hb2 & BIT(0)) == BIT(0)); - - if (coex_sta->bt_info_hb2 & BIT(1)) - coex_sta->cnt_bt[BTC_CNT_BT_AFHUPDATE]++; - - coex_sta->bt_a2dp_active = ((coex_sta->bt_info_hb2 & BIT(2)) == BIT(2)); - coex_sta->bt_slave = ((coex_sta->bt_info_hb2 & BIT(3)) == BIT(3)); - coex_sta->bt_hid_slot = (coex_sta->bt_info_hb2 & 0x30) >> 4; - coex_sta->bt_hid_pair_num = (coex_sta->bt_info_hb2 & 0xc0) >> 6; - - if (coex_sta->bt_hid_pair_num > 0 && coex_sta->bt_hid_slot >= 2) { - coex_sta->bt_418_hid_exist = TRUE; - } else if (coex_sta->bt_hid_slot == 1 && coex_sta->bt_ctr_ok && - (coex_sta->hi_pri_rx + 100 < coex_sta->hi_pri_tx) && - coex_sta->hi_pri_rx < 100) { - coex_sta->bt_ble_hid_exist = TRUE; - } else if (coex_sta->bt_hid_pair_num == 0 || - coex_sta->bt_hid_slot == 1) { - coex_sta->bt_418_hid_exist = FALSE; - coex_sta->bt_ble_hid_exist = FALSE; - } - - /* ========== BT info High-Byte3 ========== */ - if ((coex_sta->bt_info_lb2 & 0x49) == 0x49) - coex_sta->bt_a2dp_bitpool = (coex_sta->bt_info_hb3 & 0x7f); - else - coex_sta->bt_a2dp_bitpool = 0; - - coex_sta->bt_a2dp_sink = ((coex_sta->bt_info_hb3 & BIT(7)) == BIT(7)); - - rtw_btc_update_bt_link_info(btc); - rtw_btc_run_coex(btc, BTC_RSN_BTINFO); -} - -void rtw_btc_ex_wl_fwdbginfo_notify(struct btc_coexist *btc, u8 *tmp_buf, - u8 length) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - u8 i = 0, val = 0; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], WiFi Fw Dbg info = %d %d %d %d %d %d %d %d (len = %d)\n", - tmp_buf[0], tmp_buf[1], tmp_buf[2], tmp_buf[3], tmp_buf[4], - tmp_buf[5], tmp_buf[6], tmp_buf[7], length); - BTC_TRACE(trace_buf); - - if (tmp_buf[0] != 0x8) - return; - - for (i = 1; i <= 7; i++) { - val = coex_sta->wl_fw_dbg_info_pre[i]; - if (tmp_buf[i] >= val) - coex_sta->wl_fw_dbg_info[i] = tmp_buf[i] - val; - else - coex_sta->wl_fw_dbg_info[i] = 255 - val + tmp_buf[i]; - - coex_sta->wl_fw_dbg_info_pre[i] = tmp_buf[i]; - } - - /* wl_fwdbginfo_notify is auto send by WL FW if TDMA slot toggle = 20 - * coex_sta->wl_fw_dbg_info[6] = TDMA slot toggle - * For debug, TDMA slot toggle should be calculated by 2-second - */ - coex_sta->cnt_wl[BTC_CNT_WL_FW_NOTIFY]++; - rtw_btc_wl_ccklock_action(btc); -} - -void rtw_btc_ex_rx_rate_change_notify(struct btc_coexist *btc, - BOOLEAN is_data_frame, u8 btc_rate_id) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - - if (is_data_frame) - coex_sta->wl_rx_rate = btc_rate_id; - - else - coex_sta->wl_rts_rx_rate = btc_rate_id; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): rate id = %d, RTS_Rate = %d\n", __func__, - coex_sta->wl_rx_rate, coex_sta->wl_rts_rx_rate); - BTC_TRACE(trace_buf); - - rtw_btc_wl_ccklock_detect(btc); -} - -void rtw_btc_ex_tx_rate_change_notify(struct btc_coexist *btc, u8 tx_rate, - u8 tx_retry_ratio, u8 macid) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): Tx_Rate = %d, Tx_Retry_Ratio = %d, macid =%d\n", - __func__, tx_rate, tx_retry_ratio, macid); - BTC_TRACE(trace_buf); - - coex_sta->wl_tx_rate = tx_rate; - coex_sta->wl_tx_retry_ratio = tx_retry_ratio; - coex_sta->wl_tx_macid = macid; -} - -void rtw_btc_ex_rf_status_notify(struct btc_coexist *btc, u8 type) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - - if (type == BTC_RF_ON) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): RF is turned ON!!\n", __func__); - BTC_TRACE(trace_buf); - btc->stop_coex_dm = FALSE; - btc->wl_rf_state_off = FALSE; - - } else if (type == BTC_RF_OFF) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): RF is turned Off!!\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_action_wl_off(btc); - } -} - -void rtw_btc_ex_halt_notify(struct btc_coexist *btc) -{ - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_action_wl_off(btc); -} - -void rtw_btc_ex_pnp_notify(struct btc_coexist *btc, u8 pnp_state) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; - u8 phase; - - if (pnp_state == BTC_WIFI_PNP_SLEEP || - pnp_state == BTC_WIFI_PNP_SLEEP_KEEP_ANT) { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): Sleep\n", __func__); - BTC_TRACE(trace_buf); - - btc->btc_write_scbd(btc, BTC_SCBD_ALL, FALSE); - - if (pnp_state == BTC_WIFI_PNP_SLEEP_KEEP_ANT) { - if (link_info_ext->is_all_under_5g) - phase = BTC_ANT_5G; - else - phase = BTC_ANT_2G; - } else { - phase = BTC_ANT_WOFF; - } - rtw_btc_set_ant_path(btc, FC_EXCU, phase); - - btc->stop_coex_dm = TRUE; - } else { - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): Wake up\n", __func__); - BTC_TRACE(trace_buf); - coex_sta->wl_pnp_wakeup = TRUE; - btc->btc_set_timer(btc, BTC_TIMER_WL_PNPWAKEUP, 3); - - /*WoWLAN*/ - if (coex_sta->wl_pnp_state_pre == BTC_WIFI_PNP_SLEEP_KEEP_ANT || - pnp_state == BTC_WIFI_PNP_WOWLAN) { - btc->stop_coex_dm = FALSE; - rtw_btc_run_coex(btc, BTC_RSN_PNP); - } - } - - coex_sta->wl_pnp_state_pre = pnp_state; -} - -void rtw_btc_ex_coex_dm_reset(struct btc_coexist *btc) -{ - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); - BTC_TRACE(trace_buf); - - rtw_btc_init_hw_config(btc, FALSE); -} - -void rtw_btc_ex_periodical(struct btc_coexist *btc) -{ - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], ============== Periodical ==============\n"); - BTC_TRACE(trace_buf); -} - -void rtw_btc_ex_timerup_notify(struct btc_coexist *btc, u32 type) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - boolean is_change = FALSE; - - if (type & BIT(BTC_TIMER_WL_STAYBUSY)) { - if (!coex_sta->wl_busy_pre) { - coex_sta->wl_gl_busy = FALSE; - is_change = TRUE; - rtw_btc_update_wl_ch_info(btc, BTC_MEDIA_DISCONNECT); - btc->btc_write_scbd(btc, BTC_SCBD_WLBUSY, FALSE); - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): WL busy -> idle!!\n", __func__); - BTC_TRACE(trace_buf); - } - } - - /*avoid no connect finish notify */ - if (type & BIT(BTC_TIMER_WL_COEXFREEZE)) { - coex_sta->coex_freeze = FALSE; - coex_sta->wl_hi_pri_task1 = FALSE; - is_change = TRUE; - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): Coex is de-freeze!!\n", __func__); - BTC_TRACE(trace_buf); - } - - if (type & BIT(BTC_TIMER_WL_SPECPKT)) { - if (!coex_sta->coex_freeze) { - coex_sta->wl_hi_pri_task1 = FALSE; - is_change = TRUE; - } - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): WL SPECPKT finish!\n", __func__); - BTC_TRACE(trace_buf); - } - - /*for A2DP glitch during connecting AP*/ - if (type & BIT(BTC_TIMER_WL_CONNPKT)) { - coex_sta->wl_connecting = FALSE; - is_change = TRUE; - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): WL connecting stop!!\n", __func__); - BTC_TRACE(trace_buf); - } - - if (type & BIT(BTC_TIMER_WL_PNPWAKEUP)) { - coex_sta->wl_pnp_wakeup = FALSE; - is_change = TRUE; - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): WL pnp wakeup stop!!\n", __func__); - BTC_TRACE(trace_buf); - } - - if (type & BIT(BTC_TIMER_WL_CCKLOCK)) { - if (coex_sta->wl_cck_lock_pre) { - coex_sta->wl_cck_lock_ever = TRUE; - is_change = TRUE; - } - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): WL CCK Lock Detect!!\n", __func__); - BTC_TRACE(trace_buf); - } - - if (type & BIT(BTC_TIMER_BT_RELINK)) { - coex_sta->bt_setup_link = FALSE; - is_change = TRUE; - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): Re-Link stop!!\n", __func__); - BTC_TRACE(trace_buf); - } - - if (type & BIT(BTC_TIMER_BT_REENABLE)) { - coex_sta->bt_reenable = FALSE; - is_change = TRUE; - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): BT renable finish!!\n", __func__); - BTC_TRACE(trace_buf); - } - - if (type & BIT(BTC_TIMER_BT_MULTILINK)) { - coex_sta->bt_multi_link_remain = FALSE; - is_change = TRUE; - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): BT multilink disappear !!\n", - __func__); - BTC_TRACE(trace_buf); - } - - if (type & BIT(BTC_TIMER_BT_INQPAGE)) { - coex_sta->bt_inq_page_remain = FALSE; - is_change = TRUE; - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): BT inq_page disappear !!\n", - __func__); - BTC_TRACE(trace_buf); - } - - if (is_change) - rtw_btc_run_coex(btc, BTC_RSN_TIMERUP); -} - -void rtw_btc_ex_wl_status_change_notify(struct btc_coexist *btc, u32 type) -{ - struct btc_coex_sta *coex_sta = &btc->coex_sta; - boolean is_change = FALSE; - - if (type & BIT(BTC_WLSTATUS_CHANGE_TOIDLE)) { /* if busy->idle */ - coex_sta->wl_busy_pre = FALSE; - btc->btc_set_timer(btc, BTC_TIMER_WL_STAYBUSY, 6); - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): WL busy -> idle!!\n", __func__); - BTC_TRACE(trace_buf); - } - - if (type & BIT(BTC_WLSTATUS_CHANGE_TOBUSY)) { /* if idle->busy */ - coex_sta->wl_gl_busy = TRUE; - coex_sta->wl_busy_pre = TRUE; - is_change = TRUE; - rtw_btc_update_wl_ch_info(btc, BTC_MEDIA_CONNECT); -#if 0 - btc->btc_write_scbd(btc, BTC_SCBD_WLBUSY, TRUE); -#endif - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): WL idle -> busy!!\n", __func__); - BTC_TRACE(trace_buf); - } - - if (type & BIT(BTC_WLSTATUS_CHANGE_RSSI)) { /* if RSSI change */ - is_change = TRUE; - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): WL RSSI change!!\n", __func__); - BTC_TRACE(trace_buf); - } - - if (type & BIT(BTC_WLSTATUS_CHANGE_LINKINFO)) { /* if linkinfo change */ - is_change = TRUE; - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): WL LinkInfo change!!\n", __func__); - BTC_TRACE(trace_buf); - } - - if (type & BIT(BTC_WLSTATUS_CHANGE_DIR)) { /*if WL UL-DL change*/ - is_change = TRUE; - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s(): WL UL-DL change!!\n", __func__); - BTC_TRACE(trace_buf); - } - - if (type & BIT(BTC_WLSTATUS_CHANGE_NOISY)) { /*if noisy level change*/ - is_change = TRUE; - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s():Noisy Level change!!\n", __func__); - BTC_TRACE(trace_buf); - } - - if (type & BIT(BTC_WLSTATUS_CHANGE_BTCNT)) { /*if BT counter change*/ - is_change = TRUE; - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s():BT counter change!!\n", __func__); - BTC_TRACE(trace_buf); - } - - if (type & BIT(BTC_WLSTATUS_CHANGE_LOCKTRY)) { /*if WL CCK lock try*/ - is_change = TRUE; - coex_sta->wl_cck_lock_ever = FALSE; - coex_sta->wl_cck_lock = FALSE; - BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s():WL CCK lock try!!\n", __func__); - BTC_TRACE(trace_buf); - } - - if (is_change) - rtw_btc_run_coex(btc, BTC_RSN_WLSTATUS); -} -#endif - /* #if (BT_SUPPORT == 1 && COEX_SUPPORT == 1) */ +/****************************************************************************** + * + * Copyright(c) 2016 - 2017 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License 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. + * + *****************************************************************************/ + +#include "mp_precomp.h" + +#if (BT_SUPPORT == 1 && COEX_SUPPORT == 1) + +static u8 *trace_buf = &gl_btc_trace_buf[0]; +static const u32 coex_ver_date = 20240125; +static const u32 coex_ver = 0x27; + +static u8 +rtw_btc_rssi_state(struct btc_coexist *btc, u8 pre_state, + u8 rssi, u8 rssi_thresh) +{ + const struct btc_chip_para *chip_para = btc->chip_para; + u8 next_state, tol = chip_para->rssi_tolerance; + + if (pre_state == BTC_RSSI_STATE_LOW || + pre_state == BTC_RSSI_STATE_STAY_LOW) { + if (rssi >= (rssi_thresh + tol)) + next_state = BTC_RSSI_STATE_HIGH; + else + next_state = BTC_RSSI_STATE_STAY_LOW; + } else { + if (rssi < rssi_thresh) + next_state = BTC_RSSI_STATE_LOW; + else + next_state = BTC_RSSI_STATE_STAY_HIGH; + } + + return next_state; +} + +static void +rtw_btc_limited_tx(struct btc_coexist *btc, boolean force_exec, + boolean tx_limit_en, boolean ampdu_limit_en) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; + const struct btc_chip_para *chip_para = btc->chip_para; + boolean wl_b_mode = FALSE; + + if (!chip_para->scbd_support) + return; + + /* Force Max Tx retry limit = 8 */ + if (!force_exec && tx_limit_en == coex_sta->wl_tx_limit_en && + ampdu_limit_en == coex_sta->wl_ampdu_limit_en) + return; + + /* backup MAC reg */ + if (!coex_sta->wl_tx_limit_en) { + coex_sta->wl_arfb1 = btc->btc_read_4byte(btc, REG_DARFRC); + coex_sta->wl_arfb2 = btc->btc_read_4byte(btc, REG_DARFRCH); + + coex_sta->wl_txlimit = btc->btc_read_2byte(btc, + REG_RETRY_LIMIT); + } + + if (!coex_sta->wl_ampdu_limit_en) + coex_sta->wl_ampdulen = + btc->btc_read_1byte(btc, REG_AMPDU_MAX_TIME_V1); + + coex_sta->wl_tx_limit_en = tx_limit_en; + coex_sta->wl_ampdu_limit_en = ampdu_limit_en; + + if (tx_limit_en) { + /* Set BT polluted packet on for Tx rate adaptive + * Set queue life time to avoid can't reach tx retry limit + * if tx is always break by GNT_BT. + */ + btc->btc_write_1byte_bitmask(btc, REG_TX_HANG_CTRL, + BIT_EN_GNT_BT_AWAKE, 0x1); + + /* queue life time can't on if 2-port */ + if (link_info_ext->num_of_active_port <= 1) + btc->btc_write_1byte_bitmask(btc, REG_LIFETIME_EN, 0xf, + 0xf); + else + btc->btc_write_1byte_bitmask(btc, REG_LIFETIME_EN, 0xf, + 0x0); + + /* Max Tx retry limit = 8*/ + btc->btc_write_2byte(btc, REG_RETRY_LIMIT, 0x0808); + + btc->btc_get(btc, BTC_GET_BL_WIFI_UNDER_B_MODE, &wl_b_mode); + + /* Auto rate fallback step within 8 retry*/ + if (wl_b_mode) { + btc->btc_write_4byte(btc, REG_DARFRC, 0x1000000); + btc->btc_write_4byte(btc, REG_DARFRCH, 0x1010101); + } else { + btc->btc_write_4byte(btc, REG_DARFRC, 0x1000000); + btc->btc_write_4byte(btc, REG_DARFRCH, 0x4030201); + } + } else { + /* Set BT polluted packet on for Tx rate adaptive not + *including Tx retry break by PTA, 0x45c[19] =1 + */ + btc->btc_write_1byte_bitmask(btc, REG_TX_HANG_CTRL, + BIT_EN_GNT_BT_AWAKE, 0x0); + + /* Set queue life time to avoid can't reach tx retry limit + * if tx is always break by GNT_BT. + */ + btc->btc_write_1byte_bitmask(btc, REG_LIFETIME_EN, 0xf, 0x0); + + /* Recovery Max Tx retry limit*/ + btc->btc_write_2byte(btc, REG_RETRY_LIMIT, + coex_sta->wl_txlimit); + btc->btc_write_4byte(btc, REG_DARFRC, coex_sta->wl_arfb1); + btc->btc_write_4byte(btc, REG_DARFRCH, coex_sta->wl_arfb2); + } + + if (ampdu_limit_en) + btc->btc_write_1byte(btc, REG_AMPDU_MAX_TIME_V1, 0x20); + else + btc->btc_write_1byte(btc, REG_AMPDU_MAX_TIME_V1, + coex_sta->wl_ampdulen); +} + +static void +rtw_btc_limited_rx(struct btc_coexist *btc, boolean force_exec, + boolean rej_ap_agg_pkt, boolean bt_ctrl_agg_buf_size, + u8 agg_buf_size) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + boolean reject_rx_agg = rej_ap_agg_pkt; + boolean bt_ctrl_rx_agg_size = bt_ctrl_agg_buf_size; + u8 rx_agg_size = agg_buf_size; + + if (!force_exec && + bt_ctrl_agg_buf_size == coex_sta->wl_rxagg_limit_en && + agg_buf_size == coex_sta->wl_rxagg_size) + return; + + coex_sta->wl_rxagg_limit_en = bt_ctrl_agg_buf_size; + coex_sta->wl_rxagg_size = agg_buf_size; + + /*btc->btc_set(btc, BTC_SET_BL_TO_REJ_AP_AGG_PKT, &reject_rx_agg);*/ + /* decide BT control aggregation buf size or not */ + btc->btc_set(btc, BTC_SET_BL_BT_CTRL_AGG_SIZE, &bt_ctrl_rx_agg_size); + /* aggregation buf size, only work + * when BT control Rx aggregation size + */ + btc->btc_set(btc, BTC_SET_U1_AGG_BUF_SIZE, &rx_agg_size); + /* real update aggregation setting */ + btc->btc_set(btc, BTC_SET_ACT_AGGREGATE_CTRL, NULL); + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], aggregation size = %d!!\n", agg_buf_size); + BTC_TRACE(trace_buf); +} + +static void +rtw_btc_low_penalty_ra(struct btc_coexist *btc, boolean force_exec, + boolean low_penalty_ra, u8 thres) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_coex_dm *coex_dm = &btc->coex_dm; + + if (!force_exec) { + if (low_penalty_ra == coex_dm->cur_low_penalty_ra && + thres == coex_sta->wl_ra_thres) + return; + } + + if (low_penalty_ra) + btc->btc_phydm_modify_RA_PCR_threshold(btc, 0, thres); + else + btc->btc_phydm_modify_RA_PCR_threshold(btc, 0, 0); + + coex_dm->cur_low_penalty_ra = low_penalty_ra; + coex_sta->wl_ra_thres = thres; +} + +static void +rtw_btc_limited_wl(struct btc_coexist *btc) +{ + struct btc_coex_dm *coex_dm = &btc->coex_dm; + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; + + if (link_info_ext->is_all_under_5g || + link_info_ext->num_of_active_port == 0 || + coex_dm->bt_status == BTC_BTSTATUS_NCON_IDLE) { + rtw_btc_low_penalty_ra(btc, NM_EXCU, FALSE, 0); + rtw_btc_limited_tx(btc, NM_EXCU, FALSE, FALSE); + rtw_btc_limited_rx(btc, NM_EXCU, FALSE, TRUE, 64); + } else if (link_info_ext->num_of_active_port > 1) { + rtw_btc_low_penalty_ra(btc, NM_EXCU, TRUE, 30); + rtw_btc_limited_tx(btc, NM_EXCU, TRUE, TRUE); + rtw_btc_limited_rx(btc, NM_EXCU, FALSE, TRUE, 16); + } else { + if (link_info_ext->is_p2p_connected) + rtw_btc_low_penalty_ra(btc, NM_EXCU, TRUE, 30); + else + rtw_btc_low_penalty_ra(btc, NM_EXCU, TRUE, 15); + + if (coex_sta->bt_hid_exist || coex_sta->bt_hid_pair_num > 0 || + coex_sta->bt_hfp_exist) + rtw_btc_limited_tx(btc, NM_EXCU, TRUE, TRUE); + else + rtw_btc_limited_tx(btc, NM_EXCU, TRUE, FALSE); + + /*COEX-361, solve wifi poor performance when BLE HID exists*/ + if ((coex_sta->bt_ble_hid_exist || coex_sta->bt_hfp_exist) && + coex_sta->wl_iot_peer != BTC_IOT_PEER_ATHEROS && + btc->board_info.btdm_ant_num == 1) + rtw_btc_limited_rx(btc, NM_EXCU, FALSE, TRUE, 4); + else + rtw_btc_limited_rx(btc, NM_EXCU, FALSE, TRUE, 64); + } + + +} + +static void +rtw_btc_mailbox_operation(struct btc_coexist *btc, u8 h2c_id, u8 h2c_len, + u8 *h2c_para) +{ + const struct btc_chip_para *chip_para = btc->chip_para; + u8 buf[6] = {0}; + + if (chip_para->mailbox_support) { + btc->btc_fill_h2c(btc, h2c_id, h2c_len, h2c_para); + return; + } + + switch (h2c_id) { + case 0x61: + buf[0] = 3; + buf[1] = 0x1; /* polling enable, 1=enable, 0=disable */ + buf[2] = 0x2; /* polling time in seconds */ + buf[3] = 0x1; /* auto report enable, 1=enable, 0=disable */ + + btc->btc_set(btc, BTC_SET_ACT_CTRL_BT_INFO, (void *)&buf[0]); + break; + case 0x62: + buf[0] = 4; + buf[1] = 0x3; /* OP_Code */ + buf[2] = 0x2; /* OP_Code_Length */ + buf[3] = (h2c_para[0] != 0) ? 0x1 : 0x0; /* OP_Code_Content */ + buf[4] = h2c_para[0];/* pwr_level */ + + btc->btc_set(btc, BTC_SET_ACT_CTRL_BT_COEX, (void *)&buf[0]); + break; + case 0x63: + buf[0] = 3; + buf[1] = 0x1; /* OP_Code */ + buf[2] = 0x1; /* OP_Code_Length */ + buf[3] = (h2c_para[0] == 0x1) ? 0x1 : 0x0; /* OP_Code_Content */ + + btc->btc_set(btc, BTC_SET_ACT_CTRL_BT_COEX, (void *)&buf[0]); + break; + case 0x66: + buf[0] = 5; + buf[1] = 0x5; /* OP_Code */ + buf[2] = 0x3; /* OP_Code_Length */ + buf[3] = h2c_para[0]; /* OP_Code_Content */ + buf[4] = h2c_para[1]; + buf[5] = h2c_para[2]; + + btc->btc_set(btc, BTC_SET_ACT_CTRL_BT_COEX, (void *)&buf[0]); + break; + } +} + +static boolean +rtw_btc_freerun_check(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_coex_dm *coex_dm = &btc->coex_dm; + struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; + u8 bt_rssi; + + if (coex_sta->force_freerun) + return TRUE; + + if (coex_sta->force_tdd) + return FALSE; + + if (coex_sta->bt_disabled) + return FALSE; + + if (btc->board_info.btdm_ant_num == 1 || + btc->board_info.ant_distance <= 5 || !coex_sta->wl_gl_busy) + return FALSE; + + if (btc->board_info.ant_distance >= 40 || + coex_sta->bt_hid_pair_num >= 2) + return TRUE; + + /* ant_distance = 5 ~ 40 */ + if (BTC_RSSI_HIGH(coex_dm->wl_rssi_state[1]) && + BTC_RSSI_HIGH(coex_dm->bt_rssi_state[0])) + return TRUE; + + if (link_info_ext->traffic_dir == BTC_WIFI_TRAFFIC_TX) + bt_rssi = coex_dm->bt_rssi_state[0]; + else + bt_rssi = coex_dm->bt_rssi_state[1]; + + if (BTC_RSSI_HIGH(coex_dm->wl_rssi_state[3]) && + BTC_RSSI_HIGH(bt_rssi) && + coex_sta->cnt_wl[BTC_CNT_WL_SCANAP] <= 5) + return TRUE; + + return FALSE; +} + +static void +rtw_btc_wl_leakap(struct btc_coexist *btc, boolean enable) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + u8 h2c_para[2] = {0xc, 0}; + + if (coex_sta->wl_leak_ap == enable) + return; + + if (enable) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], turn on Leak-AP Rx Protection!!\n"); + + h2c_para[1] = 0x0; + } else { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], turn off Leak-AP Rx Protection!!\n"); + + h2c_para[1] = 0x1; + } + + BTC_TRACE(trace_buf); + btc->btc_fill_h2c(btc, 0x69, 2, h2c_para); + coex_sta->wl_leak_ap = enable; + coex_sta->cnt_wl[BTC_CNT_WL_LEAKAP_NORX] = 0; +} + +static void +rtw_btc_wl_ccklock_action(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + u8 h2c_parameter[2] = {0}, ap_leak_rx_cnt = 0; + boolean wifi_busy = FALSE; + + if (btc->manual_control || btc->stop_coex_dm) + return; + + if (!coex_sta->wl_gl_busy || + coex_sta->wl_iot_peer == BTC_IOT_PEER_CISCO) { + coex_sta->cnt_wl[BTC_CNT_WL_LEAKAP_NORX] = 0; + return; + } + + ap_leak_rx_cnt = coex_sta->wl_fw_dbg_info[7]; + /* Get realtime wifi_busy status */ + btc->btc_get(btc, BTC_GET_BL_WIFI_BUSY, &wifi_busy); + + if (coex_sta->wl_leak_ap && coex_sta->wl_force_lps_ctrl && + !coex_sta->wl_cck_lock_ever) { + if (ap_leak_rx_cnt <= 5 && wifi_busy) + coex_sta->cnt_wl[BTC_CNT_WL_LEAKAP_NORX]++; + else + coex_sta->cnt_wl[BTC_CNT_WL_LEAKAP_NORX] = 0; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], Leak-AP Rx extend cnt = %d!!\n", + coex_sta->cnt_wl[BTC_CNT_WL_LEAKAP_NORX]); + BTC_TRACE(trace_buf); + + /* If 7-streak ap_leak_rx_cnt <= 5, turn off leak-AP for TP*/ + if (coex_sta->cnt_wl[BTC_CNT_WL_LEAKAP_NORX] >= 7) + rtw_btc_wl_leakap(btc, FALSE); + } else if (!coex_sta->wl_leak_ap && coex_sta->wl_cck_lock) { + rtw_btc_wl_leakap(btc, TRUE); + } +} + +static void +rtw_btc_wl_ccklock_detect(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_coex_dm *coex_dm = &btc->coex_dm; + struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; + boolean is_cck_lock_rate = FALSE; + + if (coex_dm->bt_status == BTC_BTSTATUS_INQ_PAGE || + coex_sta->bt_setup_link) + return; + + if (coex_sta->wl_rx_rate <= BTC_CCK_2 || + coex_sta->wl_rts_rx_rate <= BTC_CCK_2) + is_cck_lock_rate = TRUE; + + if (link_info_ext->is_connected && coex_sta->wl_gl_busy && + BTC_RSSI_HIGH(coex_dm->wl_rssi_state[3]) && + (coex_dm->bt_status == BTC_BTSTATUS_ACL_BUSY || + coex_dm->bt_status == BTC_BTSTATUS_ACL_SCO_BUSY || + coex_dm->bt_status == BTC_BTSTATUS_SCO_BUSY)) { + if (is_cck_lock_rate) { + coex_sta->wl_cck_lock = TRUE; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], cck locking...\n"); + BTC_TRACE(trace_buf); + } else { + coex_sta->wl_cck_lock = FALSE; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], cck unlock...\n"); + BTC_TRACE(trace_buf); + } + } else { + coex_sta->wl_cck_lock = FALSE; + } + + /* CCK lock identification */ + if (coex_sta->wl_cck_lock && !coex_sta->wl_cck_lock_pre) + btc->btc_set_timer(btc, BTC_TIMER_WL_CCKLOCK, 6); + + coex_sta->wl_cck_lock_pre = coex_sta->wl_cck_lock; +} + +static void +rtw_btc_set_extend_btautoslot(struct btc_coexist *btc, u8 thres) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + u8 h2c_para[2] = {0x9, 0x32}; + + if (coex_sta->bt_ext_autoslot_thres == thres) + return; + + h2c_para[1] = thres; /* thres must be 50 ~ 80*/ + + coex_sta->bt_ext_autoslot_thres = h2c_para[1]; + + btc->btc_fill_h2c(btc, 0x69, 2, h2c_para); +} + +static void +rtw_btc_set_tdma_timer_base(struct btc_coexist *btc, u8 type) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + u16 tbtt_interval = 100; + u8 h2c_para[2] = {0xb, 0x1}; + + btc->btc_get(btc, BTC_GET_U2_BEACON_PERIOD, &tbtt_interval); + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], tbtt_interval = %d\n", tbtt_interval); + BTC_TRACE(trace_buf); + + /* Add for JIRA coex-256 */ + if (type == 3 && tbtt_interval >= 100) { /* 50ms-slot */ + if (coex_sta->tdma_timer_base == 3) + return; + + h2c_para[1] = (tbtt_interval / 50) - 1; + h2c_para[1] = h2c_para[1] | 0xc0; /* 50ms-slot */ + coex_sta->tdma_timer_base = 3; + } else if (tbtt_interval < 80 && tbtt_interval > 0) { + if (coex_sta->tdma_timer_base == 2) + return; + h2c_para[1] = (100 / tbtt_interval); + + if (100 % tbtt_interval != 0) + h2c_para[1] = h2c_para[1] + 1; + + h2c_para[1] = h2c_para[1] & 0x3f; + coex_sta->tdma_timer_base = 2; + } else if (tbtt_interval >= 180) { + if (coex_sta->tdma_timer_base == 1) + return; + h2c_para[1] = (tbtt_interval / 100); + + if (tbtt_interval % 100 <= 80) + h2c_para[1] = h2c_para[1] - 1; + + h2c_para[1] = h2c_para[1] & 0x3f; + h2c_para[1] = h2c_para[1] | 0x80; + coex_sta->tdma_timer_base = 1; + } else { + if (coex_sta->tdma_timer_base == 0) + return; + h2c_para[1] = 0x1; + coex_sta->tdma_timer_base = 0; + } + + btc->btc_fill_h2c(btc, 0x69, 2, h2c_para); + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): h2c_0x69 = 0x%x\n", __func__, h2c_para[1]); + BTC_TRACE(trace_buf); +} + +static void +rtw_btc_set_wl_pri_mask(struct btc_coexist *btc, u8 bitmap, u8 data) +{ + u32 addr; + + addr = REG_BT_COEX_TABLE_H + (bitmap / 8); + bitmap = bitmap % 8; + + btc->btc_write_1byte_bitmask(btc, addr, BIT(bitmap), data); +} + +static void +rtw_btc_set_bt_golden_rx_range(struct btc_coexist *btc, boolean force_exec, + u8 profile_id, u8 shift_level) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + u16 para; + + if (profile_id > 3) + return; + + if (!force_exec && + shift_level == coex_sta->bt_golden_rx_shift[profile_id]) + return; + + coex_sta->bt_golden_rx_shift[profile_id] = shift_level; + + para = (profile_id << 8) | ((0x100 - shift_level) & 0xff); + + btc->btc_set(btc, BTC_SET_BL_BT_GOLDEN_RX_RANGE, ¶); + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): para = 0x%04x\n", __func__, para); + BTC_TRACE(trace_buf); +} + +static void +rtw_btc_query_bt_info(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + u8 h2c_parameter[1] = {0x1}; + + if (coex_sta->bt_disabled) + return; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_mailbox_operation(btc, 0x61, 1, h2c_parameter); +} + +static void +rtw_btc_gnt_debug(struct btc_coexist *btc, boolean isenable) +{ + if (!isenable) + btc->btc_write_1byte_bitmask(btc, 0x73, 0x8, 0x0); + else + btc->chip_para->chip_setup(btc, BTC_CSETUP_GNT_DEBUG); +} + +static void +rtw_btc_gnt_workaround(struct btc_coexist *btc, boolean force_exec, u8 mode) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + + if (!force_exec) { + if (coex_sta->gnt_workaround_state == coex_sta->wl_coex_mode) + return; + } + + coex_sta->gnt_workaround_state = coex_sta->wl_coex_mode; + + btc->chip_para->chip_setup(btc, BTC_CSETUP_GNT_FIX); +} + +static void +rtw_btc_monitor_bt_enable(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_coex_dm *coex_dm = &btc->coex_dm; + const struct btc_chip_para *chip_para = btc->chip_para; + boolean bt_disabled = FALSE; + u16 scbd; + u32 scbd_32; + + if (chip_para->scbd_support) { + if (chip_para->scbd_bit_num == BTC_SCBD_16_BIT) { + btc->btc_read_scbd(btc, &scbd); + bt_disabled = (scbd & BTC_SCBD_BT_ONOFF) ? FALSE : TRUE; + } else { + btc->btc_read_scbd_32bit(btc, &scbd_32); + bt_disabled = (scbd_32 & BTC_SCBD_BT_ONOFF) ? FALSE : TRUE; + } + + } else { + if (coex_sta->cnt_bt[BTC_CNT_BT_DISABLE] >= 2) + bt_disabled = TRUE; + } + + btc->btc_set(btc, BTC_SET_BL_BT_DISABLE, &bt_disabled); + + if (coex_sta->bt_disabled != bt_disabled) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], BT is from %s to %s!!\n", + (coex_sta->bt_disabled ? "disabled" : "enabled"), + (bt_disabled ? "disabled" : "enabled")); + BTC_TRACE(trace_buf); + coex_sta->bt_disabled = bt_disabled; + + coex_sta->bt_supported_feature = 0; + coex_sta->bt_supported_version = 0; + coex_sta->bt_ble_scan_type = 0; + coex_sta->bt_ble_scan_para[0] = 0; + coex_sta->bt_ble_scan_para[1] = 0; + coex_sta->bt_ble_scan_para[2] = 0; + coex_sta->bt_reg_vendor_ac = 0xffff; + coex_sta->bt_reg_vendor_ae = 0xffff; + coex_sta->bt_a2dp_vendor_id = 0; + coex_sta->bt_a2dp_device_name = 0; + coex_sta->bt_iqk_state = 0; + coex_dm->cur_bt_lna_lvl = 0; + btc->bt_info.bt_get_fw_ver = 0; + + /*for win10 BT disable->enable trigger wifi scan issue */ + if (!coex_sta->bt_disabled) { + coex_sta->bt_reenable = TRUE; + btc->btc_set_timer(btc, BTC_TIMER_BT_REENABLE, 15); + } else { + coex_sta->bt_reenable = FALSE; + } + } +} + +static void +rtw_btc_update_bt_sut_info(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + u32 val = 0; + + if (coex_sta->bt_profile_num == 0) { + /* clear golden rx range if no PAN exist */ + if (coex_sta->bt_golden_rx_shift[3] != 0) + rtw_btc_set_bt_golden_rx_range(btc, FC_EXCU, 3, 0); + return; + } + + if (coex_sta->bt_a2dp_exist) + rtw_btc_set_bt_golden_rx_range(btc, FC_EXCU, 2, 0); + else + coex_sta->bt_sut_pwr_lvl[2] = 0xff; + + if (coex_sta->bt_hfp_exist) + rtw_btc_set_bt_golden_rx_range(btc, FC_EXCU, 0, 0); + else + coex_sta->bt_sut_pwr_lvl[0] = 0xff; + + if (coex_sta->bt_hid_exist) + rtw_btc_set_bt_golden_rx_range(btc, FC_EXCU, 1, 0); + else + coex_sta->bt_sut_pwr_lvl[1] = 0xff; + + if (coex_sta->bt_pan_exist) { + rtw_btc_set_bt_golden_rx_range(btc, FC_EXCU, 3, + coex_sta->bt_golden_rx_shift[3]); + } else { + coex_sta->bt_golden_rx_shift[3] = 0; + coex_sta->bt_sut_pwr_lvl[3] = 0xff; + } +} + +static void +rtw_btc_update_wl_link_info(struct btc_coexist *btc, u8 reason) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_coex_dm *coex_dm = &btc->coex_dm; + struct btc_wifi_link_info_ext *linfo_ext = &btc->wifi_link_info_ext; + struct btc_wifi_link_info linfo; + const struct btc_chip_para *chip_para = btc->chip_para; + u8 wifi_central_chnl = 0, num_of_wifi_link = 0, i, rssi_state; + u32 wifi_link_status = 0, wifi_bw; + s32 wl_rssi; + boolean isunder5G = FALSE, ismcc25g = FALSE, is_p2p_connected = FALSE, + plus_bt = FALSE; + + btc->btc_get(btc, BTC_GET_BL_WIFI_SCAN, &linfo_ext->is_scan); + btc->btc_get(btc, BTC_GET_BL_WIFI_LINK, &linfo_ext->is_link); + btc->btc_get(btc, BTC_GET_BL_WIFI_ROAM, &linfo_ext->is_roam); + btc->btc_get(btc, BTC_GET_BL_WIFI_LW_PWR_STATE, &linfo_ext->is_32k); + btc->btc_get(btc, BTC_GET_BL_WIFI_4_WAY_PROGRESS, &linfo_ext->is_4way); + btc->btc_get(btc, BTC_GET_BL_WIFI_CONNECTED, &linfo_ext->is_connected); + btc->btc_get(btc, BTC_GET_U4_WIFI_TRAFFIC_DIR, &linfo_ext->traffic_dir); + btc->btc_get(btc, BTC_GET_U4_WIFI_BW, &linfo_ext->wifi_bw); + btc->btc_get(btc, BTC_GET_U4_WIFI_LINK_STATUS, &wifi_link_status); + linfo_ext->port_connect_status = wifi_link_status & 0xffff; + + btc->btc_get(btc, BTC_GET_BL_WIFI_LINK_INFO, &linfo); + btc->wifi_link_info = linfo; + + btc->btc_get(btc, BTC_GET_U1_WIFI_CENTRAL_CHNL, &wifi_central_chnl); + coex_sta->wl_center_ch = wifi_central_chnl; + + btc->btc_get(btc, BTC_GET_S4_WIFI_RSSI, &wl_rssi); + for (i = 0; i < 4; i++) { + rssi_state = coex_dm->wl_rssi_state[i]; + rssi_state = rtw_btc_rssi_state(btc, rssi_state, + (u8)(wl_rssi & 0xff), + chip_para->wl_rssi_step[i]); + coex_dm->wl_rssi_state[i] = rssi_state; + } + + if (coex_sta->wl_linkscan_proc || coex_sta->wl_hi_pri_task1 || + coex_sta->wl_hi_pri_task2 || coex_sta->wl_gl_busy) { + if (chip_para->scbd_bit_num == BTC_SCBD_16_BIT) + btc->btc_write_scbd(btc, BTC_SCBD_SCAN, TRUE); + else + btc->btc_write_scbd_32bit(btc, BTC_SCBD_SCAN, TRUE); + } else { + if (chip_para->scbd_bit_num == BTC_SCBD_16_BIT) + btc->btc_write_scbd(btc, BTC_SCBD_SCAN, FALSE); + else + btc->btc_write_scbd_32bit(btc, BTC_SCBD_SCAN, FALSE); + } + + /* Check scan/connect/special-pkt action first */ + switch (reason) { + case BTC_RSN_5GSCANSTART: + case BTC_RSN_5GSWITCHBAND: + case BTC_RSN_5GCONSTART: + + isunder5G = TRUE; + break; + case BTC_RSN_2GSCANSTART: + case BTC_RSN_2GSWITCHBAND: + case BTC_RSN_2GCONSTART: + + isunder5G = FALSE; + break; + case BTC_RSN_2GCONFINISH: + case BTC_RSN_5GCONFINISH: + case BTC_RSN_2GMEDIA: + case BTC_RSN_5GMEDIA: + case BTC_RSN_BTINFO: + case BTC_RSN_PERIODICAL: + case BTC_RSN_TIMERUP: + case BTC_RSN_WLSTATUS: + case BTC_RSN_2GSPECIALPKT: + case BTC_RSN_5GSPECIALPKT: + default: + switch (linfo.link_mode) { + case BTC_LINK_5G_MCC_GO_STA: + case BTC_LINK_5G_MCC_GC_STA: + case BTC_LINK_5G_SCC_GO_STA: + case BTC_LINK_5G_SCC_GC_STA: + + isunder5G = TRUE; + break; + case BTC_LINK_2G_MCC_GO_STA: + case BTC_LINK_2G_MCC_GC_STA: + case BTC_LINK_2G_SCC_GO_STA: + case BTC_LINK_2G_SCC_GC_STA: + + isunder5G = FALSE; + break; + case BTC_LINK_25G_MCC_GO_STA: + case BTC_LINK_25G_MCC_GC_STA: + + isunder5G = FALSE; + ismcc25g = TRUE; + break; + case BTC_LINK_ONLY_STA: + if (linfo.sta_center_channel > 14) + isunder5G = TRUE; + else if (coex_sta->wl_center_ch > 14) + isunder5G = TRUE; + else + isunder5G = FALSE; + break; + case BTC_LINK_ONLY_GO: + case BTC_LINK_ONLY_GC: + case BTC_LINK_ONLY_AP: + default: + if (linfo.p2p_center_channel > 14) + isunder5G = TRUE; + else if (linfo.sta_center_channel > 14) + isunder5G = TRUE; + else if (coex_sta->wl_center_ch > 14) + isunder5G = TRUE; + else + isunder5G = FALSE; + break; + } + break; + } + + linfo_ext->is_all_under_5g = isunder5G; + linfo_ext->is_mcc_25g = ismcc25g; + + if (wifi_link_status & WIFI_STA_CONNECTED) + num_of_wifi_link++; + + if (wifi_link_status & WIFI_AP_CONNECTED) + num_of_wifi_link++; + + if (wifi_link_status & WIFI_P2P_GO_CONNECTED) { + if (!(wifi_link_status & WIFI_AP_CONNECTED)) + num_of_wifi_link++; + is_p2p_connected = TRUE; + } + + if (wifi_link_status & WIFI_P2P_GC_CONNECTED) { + num_of_wifi_link++; + is_p2p_connected = TRUE; + } + + linfo_ext->num_of_active_port = num_of_wifi_link; + linfo_ext->is_p2p_connected = is_p2p_connected; + + if (linfo.link_mode == BTC_LINK_ONLY_GO && linfo.bhotspot) + linfo_ext->is_ap_mode = TRUE; + else + linfo_ext->is_ap_mode = FALSE; + + if (linfo_ext->is_p2p_connected && coex_sta->bt_link_exist) + plus_bt = TRUE; + + btc->btc_set(btc, BTC_SET_BL_MIRACAST_PLUS_BT, &plus_bt); + + if (linfo_ext->is_scan || linfo_ext->is_link || + linfo_ext->is_roam || linfo_ext->is_4way || + reason == BTC_RSN_2GSCANSTART || + reason == BTC_RSN_2GSWITCHBAND || + reason == BTC_RSN_2GCONSTART || + reason == BTC_RSN_2GSPECIALPKT) + coex_sta->wl_linkscan_proc = TRUE; + else + coex_sta->wl_linkscan_proc = FALSE; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], scan = %d, link = %d, roam = %d 4way = %d!!!\n", + linfo_ext->is_scan, linfo_ext->is_link, + linfo_ext->is_roam, + linfo_ext->is_4way); + BTC_TRACE(trace_buf); + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], wifi_link_info: link_mode=%d, STA_Ch=%d, P2P_Ch=%d, AnyClient_Join_Go=%d !\n", + linfo.link_mode, + linfo.sta_center_channel, + linfo.p2p_center_channel, + linfo.bany_client_join_go); + BTC_TRACE(trace_buf); + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], wifi_link_info: center_ch=%d, is_all_under_5g=%d, is_mcc_25g=%d!\n", + coex_sta->wl_center_ch, + linfo_ext->is_all_under_5g, + linfo_ext->is_mcc_25g); + BTC_TRACE(trace_buf); + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], wifi_link_info: port_connect_status=0x%x, active_port_cnt=%d, P2P_Connect=%d!\n", + linfo_ext->port_connect_status, + linfo_ext->num_of_active_port, + linfo_ext->is_p2p_connected); + BTC_TRACE(trace_buf); + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], Update reason = %s\n", + run_reason_string[reason]); + BTC_TRACE(trace_buf); + + if (btc->manual_control || btc->stop_coex_dm) + return; + + /* coex-276 P2P-Go beacon request can't release issue + * Only PCIe/USB can set 0x454[6] = 1 to solve this issue, + * WL SDIO/USB interface need driver support. + */ +#ifdef PLATFORM_WINDOWS + if (btc->chip_interface != BTC_INTF_SDIO) + btc->btc_write_1byte_bitmask(btc, REG_CCK_CHECK, + BIT_EN_BCN_PKT_REL, 0x1); + else + btc->btc_write_1byte_bitmask(btc, REG_CCK_CHECK, + BIT_EN_BCN_PKT_REL, 0x0); +#endif +} + +static void +rtw_btc_update_bt_link_info(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_coex_dm *coex_dm = &btc->coex_dm; + const struct btc_chip_para *chip_para = btc->chip_para; + boolean bt_busy = FALSE, increase_scan_dev_num = FALSE, + scan_type_change = FALSE; + u8 i, scan_type, rssi_state; + + /* update wl/bt rssi by btinfo */ + for (i = 0; i < 4; i++) { + rssi_state = coex_dm->bt_rssi_state[i]; + rssi_state = rtw_btc_rssi_state(btc, rssi_state, + coex_sta->bt_rssi, + chip_para->bt_rssi_step[i]); + coex_dm->bt_rssi_state[i] = rssi_state; + } + + if (coex_sta->bt_ble_scan_en) { + scan_type = btc->btc_get_ble_scan_type_from_bt(btc); + + if (scan_type != coex_sta->bt_ble_scan_type) + scan_type_change = TRUE; + + coex_sta->bt_ble_scan_type = scan_type; + } + + if (scan_type_change) { + u32 *p = NULL; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], BTinfo HiByte1[5] check, query BLE Scan type!!\n"); + BTC_TRACE(trace_buf); + + if ((coex_sta->bt_ble_scan_type & 0x1) == 0x1) { + coex_sta->bt_init_scan = TRUE; + p = &coex_sta->bt_ble_scan_para[0]; + *p = btc->btc_get_ble_scan_para_from_bt(btc, 0x1); + } else { + coex_sta->bt_init_scan = FALSE; + } + + if ((coex_sta->bt_ble_scan_type & 0x2) == 0x2) { + p = &coex_sta->bt_ble_scan_para[1]; + *p = btc->btc_get_ble_scan_para_from_bt(btc, 0x2); + } + + if ((coex_sta->bt_ble_scan_type & 0x4) == 0x4) { + p = &coex_sta->bt_ble_scan_para[2]; + *p = btc->btc_get_ble_scan_para_from_bt(btc, 0x4); + } + } + + coex_sta->bt_profile_num = 0; + + /* set link exist status */ + if (!(coex_sta->bt_info_lb2 & BTC_INFO_CONNECTION)) { + coex_sta->bt_link_exist = FALSE; + coex_sta->bt_pan_exist = FALSE; + coex_sta->bt_a2dp_exist = FALSE; + coex_sta->bt_hid_exist = FALSE; + coex_sta->bt_hfp_exist = FALSE; + coex_sta->bt_msft_mr_exist = FALSE; + } else { /* connection exists */ + coex_sta->bt_link_exist = TRUE; + if (coex_sta->bt_info_lb2 & BTC_INFO_FTP) { + coex_sta->bt_pan_exist = TRUE; + coex_sta->bt_profile_num++; + } else { + coex_sta->bt_pan_exist = FALSE; + } + + if (coex_sta->bt_info_lb2 & BTC_INFO_A2DP) { + coex_sta->bt_a2dp_exist = TRUE; + coex_sta->bt_profile_num++; + } else { + coex_sta->bt_a2dp_exist = FALSE; + } + + if (coex_sta->bt_info_lb2 & BTC_INFO_HID) { + coex_sta->bt_hid_exist = TRUE; + coex_sta->bt_profile_num++; + } else { + coex_sta->bt_hid_exist = FALSE; + } + + if (coex_sta->bt_info_lb2 & BTC_INFO_SCO_ESCO) { + coex_sta->bt_hfp_exist = TRUE; + coex_sta->bt_profile_num++; + } else { + coex_sta->bt_hfp_exist = FALSE; + } + } + + if (coex_sta->bt_info_lb2 & BTC_INFO_INQ_PAGE) { + coex_dm->bt_status = BTC_BTSTATUS_INQ_PAGE; + } else if (!(coex_sta->bt_info_lb2 & BTC_INFO_CONNECTION)) { + coex_dm->bt_status = BTC_BTSTATUS_NCON_IDLE; + coex_sta->bt_multi_link_remain = FALSE; + } else if (coex_sta->bt_info_lb2 == BTC_INFO_CONNECTION) { + if (coex_sta->bt_msft_mr_exist) + coex_dm->bt_status = BTC_BTSTATUS_ACL_BUSY; + else + coex_dm->bt_status = BTC_BTSTATUS_CON_IDLE; + } else if ((coex_sta->bt_info_lb2 & BTC_INFO_SCO_ESCO) || + (coex_sta->bt_info_lb2 & BTC_INFO_SCO_BUSY)) { + if (coex_sta->bt_info_lb2 & BTC_INFO_ACL_BUSY) + coex_dm->bt_status = BTC_BTSTATUS_ACL_SCO_BUSY; + else + coex_dm->bt_status = BTC_BTSTATUS_SCO_BUSY; + } else if (coex_sta->bt_info_lb2 & BTC_INFO_ACL_BUSY) { + coex_dm->bt_status = BTC_BTSTATUS_ACL_BUSY; + } else { + coex_dm->bt_status = BTC_BTSTATUS_MAX; + } + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s(), %s!!!\n", + __func__, bt_status_string[coex_dm->bt_status]); + BTC_TRACE(trace_buf); + + if (coex_dm->bt_status == BTC_BTSTATUS_ACL_BUSY || + coex_dm->bt_status == BTC_BTSTATUS_SCO_BUSY || + coex_dm->bt_status == BTC_BTSTATUS_ACL_SCO_BUSY) { + bt_busy = TRUE; + increase_scan_dev_num = TRUE; + } else { + bt_busy = FALSE; + increase_scan_dev_num = FALSE; + } + + btc->btc_set(btc, BTC_SET_BL_BT_TRAFFIC_BUSY, &bt_busy); + btc->btc_set(btc, BTC_SET_BL_INC_SCAN_DEV_NUM, &increase_scan_dev_num); + + if (coex_sta->bt_profile_num != coex_sta->bt_profile_num_pre) { + rtw_btc_update_bt_sut_info(btc); + coex_sta->bt_profile_num_pre = coex_sta->bt_profile_num; + + if (!coex_sta->bt_a2dp_exist) { + coex_sta->bt_a2dp_vendor_id = 0; + coex_sta->bt_a2dp_device_name = 0; + coex_sta->bt_a2dp_flush_time = 0; + } + } + + coex_sta->cnt_bt[BTC_CNT_BT_INFOUPDATE]++; +} + +static void +rtw_btc_update_wl_ch_info(struct btc_coexist *btc, u8 type) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_coex_dm *coex_dm = &btc->coex_dm; + const struct btc_chip_para *chip_para = btc->chip_para; + struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; + struct btc_wifi_link_info *link_info = &btc->wifi_link_info; + u8 h2c_para[3] = {0}, i, wl_center_ch = 0; + + if (btc->manual_control) + return; + + if (btc->stop_coex_dm || btc->wl_rf_state_off) { + wl_center_ch = 0; + } else if (type != BTC_MEDIA_DISCONNECT || + (type == BTC_MEDIA_DISCONNECT && + link_info_ext->num_of_active_port > 0)) { + if (link_info_ext->num_of_active_port == 1) { + if (link_info_ext->is_p2p_connected) + wl_center_ch = link_info->p2p_center_channel; + else + wl_center_ch = link_info->sta_center_channel; + } else { /* port > 2 */ + if (link_info->p2p_center_channel > 14 && + link_info->sta_center_channel > 14) + wl_center_ch = link_info->p2p_center_channel; + else if (link_info->p2p_center_channel <= 14) + wl_center_ch = link_info->p2p_center_channel; + else if (link_info->sta_center_channel <= 14) + wl_center_ch = link_info->sta_center_channel; + } + } + + if (wl_center_ch == 0) { + h2c_para[0] = 0x0; + h2c_para[1] = 0x0; + h2c_para[2] = 0x0; + } else if(btc->board_info.btdm_ant_num == 1 && wl_center_ch <= 14) { + h2c_para[0] = 0x1; + h2c_para[1] = wl_center_ch; + /* 8723f shared ant, BT should avoid wifi channel */ + if (link_info_ext->wifi_bw == BTC_WIFI_BW_HT40) + h2c_para[2] = 0x28; + else + h2c_para[2] = 0x14; + } else if (wl_center_ch <= 14) { + h2c_para[0] = 0x1; + h2c_para[1] = wl_center_ch; + + if (link_info_ext->wifi_bw == BTC_WIFI_BW_HT40) + h2c_para[2] = chip_para->bt_afh_span_bw40; + else + h2c_para[2] = chip_para->bt_afh_span_bw20; + } else if (chip_para->afh_5g_num > 1) { /* for 5G */ + for (i = 0; i < chip_para->afh_5g_num; i++) { + if (wl_center_ch == chip_para->afh_5g[i].wl_5g_ch) { + h2c_para[0] = 0x3; + h2c_para[1] = chip_para->afh_5g[i].bt_skip_ch; + h2c_para[2] = chip_para->afh_5g[i].bt_skip_span; + break; + } + } + } + + /* Only send mailbox if ch info change */ + if (coex_dm->wl_chnl_info[0] != h2c_para[0] && + coex_dm->wl_chnl_info[1] != h2c_para[1] && + coex_dm->wl_chnl_info[2] != h2c_para[2]) { + + coex_dm->wl_chnl_info[0] = h2c_para[0]; + coex_dm->wl_chnl_info[1] = h2c_para[1]; + coex_dm->wl_chnl_info[2] = h2c_para[2]; + rtw_btc_mailbox_operation(btc, 0x66, 3, h2c_para); + } + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s: para[0:2] = 0x%x 0x%x 0x%x\n", + __func__, h2c_para[0], h2c_para[1], h2c_para[2]); + BTC_TRACE(trace_buf); +} + +static void +rtw_btc_set_wl_tx_power(struct btc_coexist *btc, + boolean force_exec, u8 wl_pwr_dec_lvl) +{ + const struct btc_chip_para *chip_para = btc->chip_para; + struct btc_coex_dm *coex_dm = &btc->coex_dm; + + if (!force_exec && wl_pwr_dec_lvl == coex_dm->cur_wl_pwr_lvl) + return; + + coex_dm->cur_wl_pwr_lvl = wl_pwr_dec_lvl; + + chip_para->chip_setup(btc, BTC_CSETUP_WL_TX_POWER); + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s(): level = %d\n", + __func__, wl_pwr_dec_lvl); + BTC_TRACE(trace_buf); +} + +static void +rtw_btc_set_bt_tx_power(struct btc_coexist *btc, + boolean force_exec, u8 bt_pwr_dec_lvl) +{ + struct btc_coex_dm *coex_dm = &btc->coex_dm; + u8 h2c_para[1] = {0}; + + if (!force_exec && bt_pwr_dec_lvl == coex_dm->cur_bt_pwr_lvl) + return; + + h2c_para[0] = (0x100 - bt_pwr_dec_lvl) & 0xff; + + rtw_btc_mailbox_operation(btc, 0x62, 1, h2c_para); + + coex_dm->cur_bt_pwr_lvl = bt_pwr_dec_lvl; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(), bt_tx_power = 0x%x, level = %d\n", + __func__, h2c_para[0], bt_pwr_dec_lvl); + BTC_TRACE(trace_buf); +} + +static void +rtw_btc_set_wl_rx_gain(struct btc_coexist *btc, boolean force_exec, + boolean low_gain_en) +{ + struct btc_coex_dm *coex_dm = &btc->coex_dm; + const struct btc_chip_para *chip_para = btc->chip_para; + + if (!force_exec && low_gain_en == coex_dm->cur_wl_rx_low_gain_en) + return; + + coex_dm->cur_wl_rx_low_gain_en = low_gain_en; + + if (low_gain_en) + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], Hi-L Rx!\n"); + else + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], Nm-L Rx!\n"); + + BTC_TRACE(trace_buf); + + chip_para->chip_setup(btc, BTC_CSETUP_WL_RX_GAIN); +} + +static void +rtw_btc_set_bt_rx_gain(struct btc_coexist *btc, boolean force_exec, u8 lna_lvl) +{ + struct btc_coex_dm *coex_dm = &btc->coex_dm; + const struct btc_chip_para *chip_para = btc->chip_para; + + if (!force_exec && lna_lvl == coex_dm->cur_bt_lna_lvl) + return; + + if (lna_lvl < 7) { + btc->btc_set(btc, BTC_SET_BL_BT_LNA_CONSTRAIN_LEVEL, &lna_lvl); + /* use scoreboard[4] to notify BT Rx gain table change */ + if (chip_para->scbd_bit_num == BTC_SCBD_16_BIT) + btc->btc_write_scbd(btc, BTC_SCBD_RXGAIN, TRUE); + else + btc->btc_write_scbd_32bit(btc, BTC_SCBD_RXGAIN, TRUE); + } else { + if (chip_para->scbd_bit_num == BTC_SCBD_16_BIT) + btc->btc_write_scbd(btc, BTC_SCBD_RXGAIN, FALSE); + else + btc->btc_write_scbd_32bit(btc, BTC_SCBD_RXGAIN, FALSE); + } + + coex_dm->cur_bt_lna_lvl = lna_lvl; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): bt_rx_LNA_level = %d\n", + __func__, lna_lvl); + BTC_TRACE(trace_buf); +} + +static void +rtw_btc_set_rf_para(struct btc_coexist *btc, boolean force_exec, + struct btc_rf_para para) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + u8 tmp = 0; + + if (coex_sta->coex_freerun) { + if (coex_sta->cnt_wl[BTC_CNT_WL_SCANAP] <= 5) + tmp = 3; + } + + rtw_btc_set_wl_tx_power(btc, force_exec, para.wl_pwr_dec_lvl); + rtw_btc_set_bt_tx_power(btc, force_exec, para.bt_pwr_dec_lvl + tmp); + rtw_btc_set_wl_rx_gain(btc, force_exec, para.wl_low_gain_en); + rtw_btc_set_bt_rx_gain(btc, force_exec, para.bt_lna_lvl); +} + +static void +rtw_btc_coex_ctrl_owner(struct btc_coexist *btc, boolean wifi_control) +{ + u8 val; + + val = (wifi_control) ? 1 : 0; /* 0x70[26] */ + btc->btc_write_1byte_bitmask(btc, REG_SYS_SDIO_CTRL3, BIT(2), val); + + if (!wifi_control) + btc->chip_para->chip_setup(btc, BTC_CSETUP_BT_CTRL_ACT); +} + +static void +rtw_btc_set_gnt_bt(struct btc_coexist *btc, u8 state) +{ + if (btc->chip_para->lte_indirect_access) { + btc->btc_write_linderct(btc, REG_LTE_IDR_COEX_CTRL, 0xc000, state); + btc->btc_write_linderct(btc, REG_LTE_IDR_COEX_CTRL, 0x0c00, state); + } else { + switch (state) { + case BTC_GNT_HW_PTA: + btc->btc_write_1byte_bitmask(btc, 0x765, 0x1e, 0x0); + btc->btc_write_1byte_bitmask(btc, REG_SYS_SDIO_CTRL3, + 0x70, 0x0); + break; + case BTC_GNT_SW_LOW: + btc->btc_write_1byte_bitmask(btc, 0x765, 0x1e, 0xf); + btc->btc_write_1byte_bitmask(btc, REG_SYS_SDIO_CTRL3, + 0x70, 0x1); + break; + case BTC_GNT_SW_HIGH: + btc->btc_write_1byte_bitmask(btc, 0x765, 0x1e, 0xf); + btc->btc_write_1byte_bitmask(btc, REG_SYS_SDIO_CTRL3, + 0x70, 0x7); + break; + default: + break; + } + } +} + +static void +rtw_btc_set_gnt_wl(struct btc_coexist *btc, u8 state) +{ + if (btc->chip_para->lte_indirect_access) { + btc->btc_write_linderct(btc, REG_LTE_IDR_COEX_CTRL, 0x3000, state); + btc->btc_write_linderct(btc, REG_LTE_IDR_COEX_CTRL, 0x0300, state); + } else { + switch (state) { + case BTC_GNT_HW_PTA: + btc->btc_write_1byte_bitmask(btc, REG_SYS_SDIO_CTRL3, + BIT(4), 0x0); + btc->btc_write_1byte_bitmask(btc, REG_SYS_SDIO_CTRL3, + BIT(7), 0x0); + break; + case BTC_GNT_SW_LOW: + btc->btc_write_1byte_bitmask(btc, REG_SYS_SDIO_CTRL3, + BIT(4), 0x1); + btc->btc_write_1byte_bitmask(btc, REG_SYS_SDIO_CTRL3, + BIT(7), 0x0); + break; + case BTC_GNT_SW_HIGH: + btc->btc_write_1byte_bitmask(btc, REG_SYS_SDIO_CTRL3, + BIT(4), 0x1); + btc->btc_write_1byte_bitmask(btc, REG_SYS_SDIO_CTRL3, + BIT(7), 0x1); + break; + default: + break; + } + } +} + +#ifdef PLATFORM_WINDOWS +static void +rtw_btc_mimo_ps(struct btc_coexist *btc, boolean force_exec, + u8 state) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + + if (!force_exec && state == coex_sta->wl_mimo_ps) + return; + + coex_sta->wl_mimo_ps = state; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): state = %d\n", __func__, state); + BTC_TRACE(trace_buf); + + btc->btc_set(btc, BTC_SET_MIMO_PS_MODE, &state); +} +#endif + +static void +rtw_btc_wltoggle_tableA(IN struct btc_coexist *btc, + IN boolean force_exec, IN u32 table_case) +{ + const struct btc_chip_para *chip_para = btc->chip_para; + u8 h2c_para[6] = {0}; + u32 table_wl = 0x5a5a5a5a; + + h2c_para[0] = 0xd; /* op_code, 0xd= wlan slot toggle-A*/ + h2c_para[1] = 0x1; /* no definition */ + + if (btc->board_info.btdm_ant_num == 1) { + if (table_case < chip_para->table_sant_num) + table_wl = chip_para->table_sant[table_case].wl; + } else { + if (table_case < chip_para->table_nsant_num) + table_wl = chip_para->table_nsant[table_case].wl; + } + + /* tell WL FW WL slot toggle table-A*/ + h2c_para[2] = (u8)(table_wl & 0xff); + h2c_para[3] = (u8)((table_wl & 0xff00) >> 8); + h2c_para[4] = (u8)((table_wl & 0xff0000) >> 16); + h2c_para[5] = (u8)((table_wl & 0xff000000) >> 24); + + btc->btc_fill_h2c(btc, 0x69, 6, h2c_para); + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): H2C = [%02x %02x %02x %02x %02x %02x]\n", + __func__, h2c_para[0], h2c_para[1], h2c_para[2], + h2c_para[3], h2c_para[4], h2c_para[5]); + BTC_TRACE(trace_buf); +} + +static void +rtw_btc_wltoggle_tableB(IN struct btc_coexist *btc, IN boolean force_exec, + IN u8 interval, IN u32 table) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + u8 cur_h2c_para[6] = {0}; + u8 i, match_cnt = 0; + + cur_h2c_para[0] = 0x7; /* op_code, 0x7= wlan slot toggle-B*/ + cur_h2c_para[1] = interval; + cur_h2c_para[2] = (u8)(table & 0xff); + cur_h2c_para[3] = (u8)((table & 0xff00) >> 8); + cur_h2c_para[4] = (u8)((table & 0xff0000) >> 16); + cur_h2c_para[5] = (u8)((table & 0xff000000) >> 24); + + if (ARRAY_SIZE(coex_sta->wl_toggle_para) != 6) + return; + + coex_sta->wl_toggle_interval = interval; + + for (i = 0; i <= 5; i++) + coex_sta->wl_toggle_para[i] = cur_h2c_para[i]; + + btc->btc_fill_h2c(btc, 0x69, 6, cur_h2c_para); + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): H2C = [%02x %02x %02x %02x %02x %02x]\n", + __func__, cur_h2c_para[0], cur_h2c_para[1], cur_h2c_para[2], + cur_h2c_para[3], cur_h2c_para[4], cur_h2c_para[5]); + BTC_TRACE(trace_buf); +} + +static void +rtw_btc_set_table(struct btc_coexist *btc, boolean force_exec, u32 val0x6c0, + u32 val0x6c4) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_coex_dm *coex_dm = &btc->coex_dm; + + /* If last tdma is wl slot toggle, force write table*/ + if (!force_exec && coex_sta->coex_run_reason != BTC_RSN_LPS) { + if (val0x6c0 == btc->btc_read_4byte(btc, REG_BT_COEX_TABLE0) && + val0x6c4 == btc->btc_read_4byte(btc, REG_BT_COEX_TABLE1)) + return; + } + + btc->btc_write_4byte(btc, REG_BT_COEX_TABLE0, val0x6c0); + btc->btc_write_4byte(btc, REG_BT_COEX_TABLE1, val0x6c4); + btc->btc_write_4byte(btc, REG_BT_COEX_BRK_TABLE, 0xf0ffffff); + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): 0x6c0 = %x, 0x6c4 = %x\n", + __func__, val0x6c0, val0x6c4); + BTC_TRACE(trace_buf); +} + +static void +rtw_btc_table(struct btc_coexist *btc, boolean force_exec, u8 type) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + const struct btc_chip_para *chip_para = btc->chip_para; + u32 table_wl = 0x0; + + coex_sta->coex_table_type = type; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], ***** Coex_Table - %d *****\n", type); + BTC_TRACE(trace_buf); + + if (btc->board_info.btdm_ant_num == 1) { + if (type < chip_para->table_sant_num) + rtw_btc_set_table(btc, force_exec, + chip_para->table_sant[type].bt, + chip_para->table_sant[type].wl); + } else { + type = type - 100; + if (type < chip_para->table_nsant_num) + rtw_btc_set_table(btc, force_exec, + chip_para->table_nsant[type].bt, + chip_para->table_nsant[type].wl); + } + + if (coex_sta->wl_slot_toggle_change) + rtw_btc_wltoggle_tableA(btc, FC_EXCU, type); +} + +static void +rtw_btc_ignore_wlan_act(struct btc_coexist *btc, boolean force_exec, + boolean enable) +{ + struct btc_coex_dm *coex_dm = &btc->coex_dm; + u8 h2c_para[1] = {0}; + + if (btc->manual_control || btc->stop_coex_dm) + return; + + if (!force_exec && enable == coex_dm->cur_ignore_wlan_act) + return; + + if (enable) + h2c_para[0] = 0x1; /* function enable */ + + rtw_btc_mailbox_operation(btc, 0x63, 1, h2c_para); + + coex_dm->cur_ignore_wlan_act = enable; +} + +static void +rtw_btc_lps_rpwm(struct btc_coexist *btc, boolean force_exec, u8 lps_val, + u8 rpwm_val) +{ + struct btc_coex_dm *coex_dm = &btc->coex_dm; + + if (!force_exec) { + if (lps_val == coex_dm->cur_lps && + rpwm_val == coex_dm->cur_rpwm) + return; + } + + btc->btc_set(btc, BTC_SET_U1_LPS_VAL, &lps_val); + btc->btc_set(btc, BTC_SET_U1_RPWM_VAL, &rpwm_val); + + coex_dm->cur_lps = lps_val; + coex_dm->cur_rpwm = rpwm_val; +} + +static void +rtw_btc_power_save_state(struct btc_coexist *btc, u8 ps_type, u8 lps_val, + u8 rpwm_val) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + boolean low_pwr_dis = FALSE; + u8 lps_mode = 0x0; + u8 h2c_para[5] = {0, 0, 0, 0, 0}; + + btc->btc_get(btc, BTC_GET_U1_LPS_MODE, &lps_mode); + + switch (ps_type) { + case BTC_PS_WIFI_NATIVE: + /* recover to original 32k low power setting */ + coex_sta->wl_force_lps_ctrl = FALSE; + btc->btc_set(btc, BTC_SET_ACT_PRE_NORMAL_LPS, NULL); + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): BTC_PS_WIFI_NATIVE\n", __func__); + break; + case BTC_PS_LPS_ON: + /* WQCCE-1763: 8725A LPS lock issue*/ + if (coex_sta->coex_run_reason == BTC_RSN_LPS) + break; + + coex_sta->wl_force_lps_ctrl = TRUE; + /*set tdma off if LPS off */ + if (!lps_mode) + btc->btc_fill_h2c(btc, 0x60, 5, h2c_para); + rtw_btc_lps_rpwm(btc, NM_EXCU, lps_val, rpwm_val); + /* when coex force to enter LPS, do not enter 32k low power. */ + low_pwr_dis = TRUE; + btc->btc_set(btc, BTC_SET_ACT_DISABLE_LOW_POWER, &low_pwr_dis); + /* power save must executed before psTdma. */ + btc->btc_set(btc, BTC_SET_ACT_ENTER_LPS, NULL); + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): BTC_PS_LPS_ON\n", __func__); + break; + case BTC_PS_LPS_OFF: + coex_sta->wl_force_lps_ctrl = TRUE; + /*set tdma off if LPS on */ + if (lps_mode) + btc->btc_fill_h2c(btc, 0x60, 5, h2c_para); + if (btc->btc_set(btc, BTC_SET_ACT_LEAVE_LPS, NULL)) + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): BTC_PS_LPS_OFF\n", + __func__); + else + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): BTC_PS_LPS_OFF Fail!!\n", + __func__); + break; + default: + break; + } + + BTC_TRACE(trace_buf); +} + +static void +rtw_btc_set_tdma(struct btc_coexist *btc, u8 byte1, u8 byte2, u8 byte3, + u8 byte4, u8 byte5) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_coex_dm *coex_dm = &btc->coex_dm; + struct btc_wifi_link_info_ext *linfo_ext = &btc->wifi_link_info_ext; + u8 ps_type = BTC_PS_WIFI_NATIVE, + real_byte1 = byte1, real_byte5 = byte5; + + if (linfo_ext->is_ap_mode && (byte1 & BIT(4) && !(byte1 & BIT(5)))) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): AP mode\n", __func__); + BTC_TRACE(trace_buf); + + real_byte1 &= ~BIT(4); + real_byte1 |= BIT(5); + + real_byte5 |= BIT(5); + real_byte5 &= ~BIT(6); + + ps_type = BTC_PS_WIFI_NATIVE; + rtw_btc_power_save_state(btc, ps_type, 0x0, 0x0); + } else if (byte1 & BIT(4) && !(byte1 & BIT(5))) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): Force LPS (byte1 = 0x%x)\n", + __func__, byte1); + BTC_TRACE(trace_buf); + + if (btc->chip_para->pstdma_type == BTC_PSTDMA_FORCE_LPSOFF) + ps_type = BTC_PS_LPS_OFF; + else + ps_type = BTC_PS_LPS_ON; + rtw_btc_power_save_state(btc, ps_type, 0x50, 0x4); + } else { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): native power save (byte1 = 0x%x)\n", + __func__, byte1); + BTC_TRACE(trace_buf); + + ps_type = BTC_PS_WIFI_NATIVE; + rtw_btc_power_save_state(btc, ps_type, 0x0, 0x0); + } + + coex_dm->ps_tdma_para[0] = real_byte1; + coex_dm->ps_tdma_para[1] = byte2; + coex_dm->ps_tdma_para[2] = byte3; + coex_dm->ps_tdma_para[3] = byte4; + coex_dm->ps_tdma_para[4] = real_byte5; + + btc->btc_fill_h2c(btc, 0x60, 5, coex_dm->ps_tdma_para); + + /* Always forec excute rtw_btc_set_table To avoid + * coex table error if wl slot toggle mode on ->off + * ex: 5508031054 next state -> rtw_btc_table + 5108031054 + * rtw_btc_table may be changed by 5508031054 + */ + if (real_byte1 & BIT(2)) { + coex_sta->wl_slot_toggle = TRUE; + coex_sta->wl_slot_toggle_change = FALSE; + } else { + coex_sta->wl_slot_toggle_change = coex_sta->wl_slot_toggle; + coex_sta->wl_slot_toggle = FALSE; + } + + if (ps_type == BTC_PS_WIFI_NATIVE) + btc->btc_set(btc, BTC_SET_ACT_POST_NORMAL_LPS, NULL); +} + +static +void rtw_btc_tdma(struct btc_coexist *btc, boolean force_exec, u32 tcase) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_coex_dm *coex_dm = &btc->coex_dm; + const struct btc_chip_para *chip_para = btc->chip_para; + u8 type; + boolean turn_on, wifi_busy = FALSE; + + btc->btc_get(btc, BTC_GET_BL_WIFI_BUSY, &wifi_busy); + + btc->btc_set_atomic(btc, &coex_dm->setting_tdma, TRUE); + /* tcase: bit0~7 --> tdma case index + * bit8 --> for 4-slot (50ms) mode + */ + + if (tcase & TDMA_4SLOT)/* 4-slot (50ms) mode */ + rtw_btc_set_tdma_timer_base(btc, 3); + else + rtw_btc_set_tdma_timer_base(btc, 0); + + type = (u8)(tcase & 0xff); + turn_on = (type == 0 || type == 100) ? FALSE : TRUE; + + /* To avoid TDMA H2C fail before Last LPS enter */ + if (!force_exec && coex_sta->coex_run_reason != BTC_RSN_LPS) { + if (turn_on == coex_dm->cur_ps_tdma_on && + type == coex_dm->cur_ps_tdma) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], Skip TDMA because no change TDMA(%s, %d)\n", + (coex_dm->cur_ps_tdma_on ? "on" : "off"), + coex_dm->cur_ps_tdma); + BTC_TRACE(trace_buf); + + btc->btc_set_atomic(btc, &coex_dm->setting_tdma, FALSE); + return; + } + } + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], ***** TDMA - %d *****\n", type); + BTC_TRACE(trace_buf); + + /* TRUE -> Page scan > ACL */ + if (!wifi_busy || + (coex_sta->bt_a2dp_exist && coex_sta->bt_inq_page_remain)) { + if (chip_para->scbd_bit_num == BTC_SCBD_16_BIT) + btc->btc_write_scbd(btc, BTC_SCBD_TDMA, FALSE); + else + btc->btc_write_scbd_32bit(btc, BTC_SCBD_TDMA, FALSE); + } else { + if (chip_para->scbd_bit_num == BTC_SCBD_16_BIT) + btc->btc_write_scbd(btc, BTC_SCBD_TDMA, TRUE); + else + btc->btc_write_scbd_32bit(btc, BTC_SCBD_TDMA, TRUE); + } + + if (btc->board_info.btdm_ant_num == 1) { + if (type < chip_para->tdma_sant_num) + rtw_btc_set_tdma(btc, + chip_para->tdma_sant[type].para[0], + chip_para->tdma_sant[type].para[1], + chip_para->tdma_sant[type].para[2], + chip_para->tdma_sant[type].para[3], + chip_para->tdma_sant[type].para[4]); + } else { + type = type - 100; + if (type < chip_para->tdma_nsant_num) + rtw_btc_set_tdma(btc, + chip_para->tdma_nsant[type].para[0], + chip_para->tdma_nsant[type].para[1], + chip_para->tdma_nsant[type].para[2], + chip_para->tdma_nsant[type].para[3], + chip_para->tdma_nsant[type].para[4]); + } + + coex_dm->cur_ps_tdma_on = turn_on; + coex_dm->cur_ps_tdma = type; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "change TDMA(%s, %d)\n", + (coex_dm->cur_ps_tdma_on ? "on" : "off"), + coex_dm->cur_ps_tdma); + BTC_TRACE(trace_buf); + + btc->btc_set_atomic(btc, &coex_dm->setting_tdma, FALSE); +} + +static +void rtw_btc_set_ant_switch(struct btc_coexist *btc, boolean force_exec, + u8 ctrl_type, u8 pos_type) +{ + struct btc_coex_dm *coex_dm = &btc->coex_dm; + + if (!force_exec) { + if (((ctrl_type << 8) + pos_type) == coex_dm->cur_switch_status) + return; + } + + coex_dm->cur_switch_status = (ctrl_type << 8) + pos_type; + + btc->chip_para->chip_setup(btc, BTC_CSETUP_ANT_SWITCH); +} + +static +void rtw_btc_set_ant_path(struct btc_coexist *btc, boolean force_exec, + u8 phase) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_coex_dm *coex_dm = &btc->coex_dm; + struct btc_rfe_type *rfe_type = &btc->rfe_type; + struct btc_wifi_link_info_ext *linfo_ext = &btc->wifi_link_info_ext; + const struct btc_chip_para *chip_para = btc->chip_para; + u8 ctrl_type = BTC_SWITCH_CTRL_MAX, + pos_type = BTC_SWITCH_TO_MAX, cnt = 0; + u16 scbd = 0; + u32 scbd_32 = 0; + boolean is_btk = 0, is_wlk = 0; + + if (!force_exec && coex_dm->cur_ant_pos_type == phase) + return; + + coex_dm->cur_ant_pos_type = phase; + + /* To avoid switch coex_ctrl_owner during BT IQK */ + if (btc->chip_para->scbd_support && coex_sta->bt_iqk_state != 0xff) { + + while (++cnt < 60) { + /* BT RFK */ + if (chip_para->scbd_bit_num == BTC_SCBD_16_BIT) { + if (btc->btc_read_scbd(btc, &scbd) & BIT(5)) + is_btk = TRUE; + else + is_btk = FALSE; + } else { + if (btc->btc_read_scbd_32bit(btc, &scbd_32) & BIT(5)) + is_btk = TRUE; + else + is_btk = FALSE; + } + /* WL RFK */ + if ((phase != BTC_ANT_WOFF) && + ((btc->btc_read_1byte(btc, 0x49c) & BIT(0)) || + coex_sta->wl_rfk)) + is_wlk = TRUE; + else + is_wlk = FALSE; + + if ((!is_btk && !is_wlk) || scbd == 0x7ff) + break; + + delay_ms(10); + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], Ant Setup Delay by IQK\n, wlk=%d, btk=%d, cnt=%d\n", + is_wlk, is_btk, cnt); + BTC_TRACE(trace_buf); + } + /* wait timeout */ + if (cnt >= 60) + coex_sta->bt_iqk_state = 0xff; + } + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], coex_sta->bt_disabled = 0x%x\n", + coex_sta->bt_disabled); + BTC_TRACE(trace_buf); + + switch (phase) { + case BTC_ANT_POWERON: + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s() - PHASE_COEX_POWERON\n", __func__); + BTC_TRACE(trace_buf); + + /* set Path control owner to BT at power-on step */ + if (coex_sta->bt_disabled) + rtw_btc_coex_ctrl_owner(btc, BTC_OWNER_WL); + else + rtw_btc_coex_ctrl_owner(btc, BTC_OWNER_BT); + + /*Caution: Don't indirect access while power on phase */ + + ctrl_type = BTC_SWITCH_CTRL_BY_BBSW; + pos_type = BTC_SWITCH_TO_BT; + break; + case BTC_ANT_INIT: + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s() - PHASE_COEX_INIT\n", __func__); + BTC_TRACE(trace_buf); + + if (coex_sta->bt_disabled) { + /* set GNT_BT to SW low */ + rtw_btc_set_gnt_bt(btc, BTC_GNT_SW_LOW); + /* set GNT_WL to SW high */ + rtw_btc_set_gnt_wl(btc, BTC_GNT_SW_HIGH); + } else { + /* set GNT_BT to SW high */ + rtw_btc_set_gnt_bt(btc, BTC_GNT_SW_HIGH); + /* set GNT_WL to SW low */ + rtw_btc_set_gnt_wl(btc, BTC_GNT_SW_LOW); + } + + /* set Path control owner to WL at initial step */ + rtw_btc_coex_ctrl_owner(btc, BTC_OWNER_WL); + + ctrl_type = BTC_SWITCH_CTRL_BY_BBSW; + pos_type = BTC_SWITCH_TO_BT; + break; + case BTC_ANT_WONLY: + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s() - PHASE_WLANONLY_INIT\n", __func__); + BTC_TRACE(trace_buf); + + /* set GNT_BT to SW Low */ + rtw_btc_set_gnt_bt(btc, BTC_GNT_SW_LOW); + /* Set GNT_WL to SW high */ + rtw_btc_set_gnt_wl(btc, BTC_GNT_SW_HIGH); + /* set Path control owner to WL at initial step */ + rtw_btc_coex_ctrl_owner(btc, BTC_OWNER_WL); + + ctrl_type = BTC_SWITCH_CTRL_BY_BBSW; + pos_type = BTC_SWITCH_TO_WLG; + break; + case BTC_ANT_WOFF: + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s() - PHASE_WLAN_OFF\n", __func__); + BTC_TRACE(trace_buf); + + /* set Path control owner to BT */ + rtw_btc_coex_ctrl_owner(btc, BTC_OWNER_BT); + + ctrl_type = BTC_SWITCH_CTRL_BY_BT; + pos_type = BTC_SWITCH_TO_NOCARE; + break; + case BTC_ANT_2G: + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s() - PHASE_2G_RUNTIME\n", __func__); + BTC_TRACE(trace_buf); + + /* set GNT_BT to PTA */ + rtw_btc_set_gnt_bt(btc, BTC_GNT_HW_PTA); + /* Set GNT_WL to PTA */ + rtw_btc_set_gnt_wl(btc, BTC_GNT_HW_PTA); + + /* set Path control owner to WL at runtime step */ + rtw_btc_coex_ctrl_owner(btc, BTC_OWNER_WL); + + ctrl_type = BTC_SWITCH_CTRL_BY_PTA; + pos_type = BTC_SWITCH_TO_NOCARE; + break; + case BTC_ANT_5G: + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s() - PHASE_5G_RUNTIME\n", __func__); + BTC_TRACE(trace_buf); + + if (linfo_ext->is_ap_mode && + strcmp(btc->chip_para->chip_name, "8723f") != 0) { + /* set GNT_BT to SW PTA + 8723f cannot set GNT_BT PTA control when SW control*/ + rtw_btc_set_gnt_bt(btc, BTC_GNT_HW_PTA); + } else { + /* set GNT_BT to SW Hi */ + rtw_btc_set_gnt_bt(btc, BTC_GNT_SW_HIGH); + } + + /* Set GNT_WL to SW Hi */ + rtw_btc_set_gnt_wl(btc, BTC_GNT_SW_HIGH); + + /* set Path control owner to WL at runtime step */ + rtw_btc_coex_ctrl_owner(btc, BTC_OWNER_WL); + + ctrl_type = BTC_SWITCH_CTRL_BY_BBSW; + pos_type = BTC_SWITCH_TO_WLA; + break; + case BTC_ANT_2G_FREERUN: + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s() - PHASE_2G_FREERUN\n", __func__); + BTC_TRACE(trace_buf); + + /*8723f cannot set GNT_BT PTA control when SW control*/ + if (strcmp(btc->chip_para->chip_name, "8723f") == 0) { + /* Set GNT_BT to SW Hi */ + rtw_btc_set_gnt_bt(btc, BTC_GNT_SW_HIGH); + } else { + /* set GNT_BT to SW PTA */ + rtw_btc_set_gnt_bt(btc, BTC_GNT_HW_PTA); + } + + /* Set GNT_WL to SW Hi */ + rtw_btc_set_gnt_wl(btc, BTC_GNT_SW_HIGH); + + /* set Path control owner to WL at runtime step */ + rtw_btc_coex_ctrl_owner(btc, BTC_OWNER_WL); + + ctrl_type = BTC_SWITCH_CTRL_BY_BBSW; + pos_type = BTC_SWITCH_TO_WLG_BT; + break; + case BTC_ANT_2G_WLBT: + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s() - PHASE_2G_WLBT\n", __func__); + BTC_TRACE(trace_buf); + + /* set GNT_BT to HW PTA */ + rtw_btc_set_gnt_bt(btc, BTC_GNT_HW_PTA); + /* Set GNT_WL to HW PTA */ + rtw_btc_set_gnt_wl(btc, BTC_GNT_HW_PTA); + /* set Path control owner to WL at runtime step */ + rtw_btc_coex_ctrl_owner(btc, BTC_OWNER_WL); + + ctrl_type = BTC_SWITCH_CTRL_BY_BBSW; + pos_type = BTC_SWITCH_TO_WLG_BT; + break; + case BTC_ANT_2G_WL: + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s() - PHASE_2G_WL\n", __func__); + BTC_TRACE(trace_buf); + + /* set GNT_BT to PTA */ + rtw_btc_set_gnt_bt(btc, BTC_GNT_HW_PTA); + /* Set GNT_WL to PTA */ + rtw_btc_set_gnt_wl(btc, BTC_GNT_HW_PTA); + /* set Path control owner to WL at runtime step */ + rtw_btc_coex_ctrl_owner(btc, BTC_OWNER_WL); + + ctrl_type = BTC_SWITCH_CTRL_BY_BBSW; + pos_type = BTC_SWITCH_TO_WLG; + break; + case BTC_ANT_2G_BT: + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s() - PHASE_2G_WL\n", __func__); + BTC_TRACE(trace_buf); + + /* set GNT_BT to PTA */ + rtw_btc_set_gnt_bt(btc, BTC_GNT_HW_PTA); + /* Set GNT_WL to PTA */ + rtw_btc_set_gnt_wl(btc, BTC_GNT_HW_PTA); + /* set Path control owner to WL at runtime step */ + rtw_btc_coex_ctrl_owner(btc, BTC_OWNER_WL); + + ctrl_type = BTC_SWITCH_CTRL_BY_BBSW; + pos_type = BTC_SWITCH_TO_BT; + break; + case BTC_ANT_BTMP: + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s() - PHASE_BTMP\n", __func__); + BTC_TRACE(trace_buf); + + /* set GNT_BT to SW Hi */ + rtw_btc_set_gnt_bt(btc, BTC_GNT_SW_HIGH); + /* Set GNT_WL to SW Lo */ + rtw_btc_set_gnt_wl(btc, BTC_GNT_SW_LOW); + /* set Path control owner to WL */ + rtw_btc_coex_ctrl_owner(btc, BTC_OWNER_WL); + + btc->stop_coex_dm = TRUE; + + ctrl_type = BTC_SWITCH_CTRL_BY_BBSW; + pos_type = BTC_SWITCH_TO_BT; + break; + case BTC_ANT_MCC: + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s() - PHASE_MCC\n", __func__); + BTC_TRACE(trace_buf); + + /* set GNT_BT to PTA */ + rtw_btc_set_gnt_bt(btc, BTC_GNT_HW_PTA); + /* Set GNT_WL to PTA */ + rtw_btc_set_gnt_wl(btc, BTC_GNT_HW_PTA); + /* set Path control owner to WL at runtime step */ + rtw_btc_coex_ctrl_owner(btc, BTC_OWNER_WL); + + ctrl_type = BTC_SWITCH_CTRL_BY_FW; + pos_type = BTC_SWITCH_TO_NOCARE; + break; + } + + if (ctrl_type < BTC_SWITCH_CTRL_MAX && pos_type < BTC_SWITCH_TO_MAX && + rfe_type->ant_switch_exist) + rtw_btc_set_ant_switch(btc, force_exec, ctrl_type, pos_type); +} + +static u8 rtw_btc_algorithm(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + u8 algorithm = BTC_COEX_NOPROFILE; + u8 profile_map = 0; + + if (coex_sta->bt_hfp_exist) + profile_map = profile_map | BTC_BTPROFILE_HFP; + + if (coex_sta->bt_hid_exist) + profile_map = profile_map | BTC_BTPROFILE_HID; + + if (coex_sta->bt_a2dp_exist) + profile_map = profile_map | BTC_BTPROFILE_A2DP; + + if (coex_sta->bt_pan_exist) + profile_map = profile_map | BTC_BTPROFILE_PAN; + + switch (profile_map) { + case BTC_BTPROFILE_NONE: + algorithm = BTC_COEX_NOPROFILE; + break; + case BTC_BTPROFILE_HFP: + algorithm = BTC_COEX_HFP; + break; + case BTC_BTPROFILE_HID: + algorithm = BTC_COEX_HID; + break; + case (BTC_BTPROFILE_HID | BTC_BTPROFILE_HFP): + algorithm = BTC_COEX_HFP; + break; + case BTC_BTPROFILE_A2DP: + /* OPP may disappear during CPT_for_WiFi test */ + if (coex_sta->bt_multi_link && coex_sta->bt_hid_pair_num > 0) + algorithm = BTC_COEX_A2DP_HID; + else if (coex_sta->bt_multi_link) + algorithm = BTC_COEX_A2DP_PAN; + else + algorithm = BTC_COEX_A2DP; + break; + case (BTC_BTPROFILE_A2DP | BTC_BTPROFILE_HFP): + algorithm = BTC_COEX_A2DP_HID; + break; + case (BTC_BTPROFILE_A2DP | BTC_BTPROFILE_HID): + algorithm = BTC_COEX_A2DP_HID; + break; + case (BTC_BTPROFILE_A2DP | BTC_BTPROFILE_HID | BTC_BTPROFILE_HFP): + algorithm = BTC_COEX_A2DP_HID; + break; + case BTC_BTPROFILE_PAN: + algorithm = BTC_COEX_PAN; + break; + case (BTC_BTPROFILE_PAN | BTC_BTPROFILE_HFP): + algorithm = BTC_COEX_PAN_HID; + break; + case (BTC_BTPROFILE_PAN | BTC_BTPROFILE_HID): + algorithm = BTC_COEX_PAN_HID; + break; + case (BTC_BTPROFILE_PAN | BTC_BTPROFILE_HID | BTC_BTPROFILE_HFP): + algorithm = BTC_COEX_PAN_HID; + break; + case (BTC_BTPROFILE_PAN | BTC_BTPROFILE_A2DP): + algorithm = BTC_COEX_A2DP_PAN; + break; + case (BTC_BTPROFILE_PAN | BTC_BTPROFILE_A2DP | BTC_BTPROFILE_HFP): + algorithm = BTC_COEX_A2DP_PAN_HID; + break; + case (BTC_BTPROFILE_PAN | BTC_BTPROFILE_A2DP | BTC_BTPROFILE_HID): + algorithm = BTC_COEX_A2DP_PAN_HID; + break; + case BTC_BTPROFILE_MAX: + algorithm = BTC_COEX_A2DP_PAN_HID; + break; + } + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], BT Profile = %s => Algorithm = %s\n", + bt_profile_string[profile_map], + coex_algo_string[algorithm]); + BTC_TRACE(trace_buf); + + return algorithm; +} + +static void rtw_btc_action_coex_all_off(struct btc_coexist *btc) +{ + u8 table_case, tdma_case; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); + + /* To avoid rtw_btc_set_ant_path here */ + if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ + table_case = 2; + tdma_case = 0; + } else { /* Non-Shared-Ant */ + table_case = 100; + tdma_case = 100; + } + + rtw_btc_table(btc, NM_EXCU, table_case); + rtw_btc_tdma(btc, NM_EXCU, tdma_case); +} + +static void rtw_btc_action_freerun(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_coex_dm *coex_dm = &btc->coex_dm; + const struct btc_chip_para *cpara = btc->chip_para; + struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; + u8 level = 0, i, base = 0; + boolean bt_afh_loss = TRUE; + u32 ap_cnt; + + if (btc->board_info.btdm_ant_num != 2) + return; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + coex_sta->coex_freerun = TRUE; + + for (i = 0; i <= 8; i++) { + if (coex_sta->bt_afh_map[i] != 0xff) { + bt_afh_loss = FALSE; + break; + } + } + + ap_cnt = coex_sta->cnt_wl[BTC_CNT_WL_SCANAP]; + + if (bt_afh_loss) + rtw_btc_update_wl_ch_info(btc, BTC_MEDIA_CONNECT); + + rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G_FREERUN); + + if (cpara->scbd_bit_num == BTC_SCBD_16_BIT) + btc->btc_write_scbd(btc, BTC_SCBD_FIX2M, FALSE); + else + btc->btc_write_scbd_32bit(btc, BTC_SCBD_FIX2M, FALSE); + + /* select array index base for profile */ + if (coex_sta->bt_hid_exist && !coex_sta->bt_multi_link) + base = 2; + else if (coex_sta->bt_a2dp_exist && !coex_sta->bt_multi_link) + base = 10; + else if (coex_sta->bt_hid_exist && coex_sta->bt_a2dp_exist + && coex_sta->bt_profile_num == 2) + base = 18; + + if (ap_cnt > 10) /* for office case */ + base = base + 4; + + /* decrease more BT Tx power for clear case */ + if (BTC_RSSI_HIGH(coex_dm->wl_rssi_state[0])) + level = 0; + else if (BTC_RSSI_HIGH(coex_dm->wl_rssi_state[1])) + level = 1; + else if (BTC_RSSI_HIGH(coex_dm->wl_rssi_state[2])) + level = 2; + else + level = 3; + + level = level + base; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], level = %d\n", + level); + BTC_TRACE(trace_buf); + + if (level > cpara->wl_rf_para_tx_num - 1) + level = cpara->wl_rf_para_tx_num - 1; + + if (coex_sta->wl_coex_mode != BTC_WLINK_2G1PORT) + rtw_btc_set_rf_para(btc, NM_EXCU, cpara->wl_rf_para_rx[0]); + else if (link_info_ext->traffic_dir == BTC_WIFI_TRAFFIC_TX) + rtw_btc_set_rf_para(btc, NM_EXCU, cpara->wl_rf_para_tx[level]); + else + rtw_btc_set_rf_para(btc, NM_EXCU, cpara->wl_rf_para_rx[level]); + + rtw_btc_table(btc, NM_EXCU, 100); + rtw_btc_tdma(btc, NM_EXCU, 100); +} + +static void rtw_btc_action_rf4ce(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + const struct btc_chip_para *chip_para = btc->chip_para; + u8 table_case, tdma_case; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_set_rf_para(btc, NM_EXCU, chip_para->wl_rf_para_rx[0]); + rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); + + switch (coex_sta->ext_chip_mode) { + case 0: + table_case = 112; + tdma_case = 115; + + if (coex_sta->bt_slave) + rtw_btc_set_extend_btautoslot(btc, 0x3c); + else + rtw_btc_set_extend_btautoslot(btc, 0x32); + + rtw_btc_table(btc, NM_EXCU, table_case); + rtw_btc_tdma(btc, NM_EXCU, tdma_case); + break; + case 1: + table_case = 112; + tdma_case = 121; + + rtw_btc_table(btc, NM_EXCU, table_case); + rtw_btc_tdma(btc, NM_EXCU, tdma_case); + break; + } +} + +static void rtw_btc_action_ext_chip(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + + if (btc->board_info.ext_chip_id == BTC_EXT_CHIP_RF4CE) + rtw_btc_action_rf4ce(btc); +} + +u8 rtw_btc_action_rf4ce_new_tdma(struct btc_coexist *btc, u8 type) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + const struct btc_chip_para *chip_para = btc->chip_para; + u8 table_case, tdma_case; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + switch (type) { + case 0: /*BT idle*/ + if (coex_sta->ext_chip_mode == BTC_EXTMODE_VOICE) + tdma_case = 121; + else + tdma_case = 117; + break; + case 1: /*BT relink*/ + if (coex_sta->ext_chip_mode == BTC_EXTMODE_VOICE) + tdma_case = 121; + else + tdma_case = 117; + break; + case 2: /*WIFI linkscan*/ + if (coex_sta->ext_chip_mode == BTC_EXTMODE_VOICE) { + tdma_case = 125; + } else{ + if (coex_sta->bt_slave) + rtw_btc_set_extend_btautoslot(btc, 0x3c); + else + rtw_btc_set_extend_btautoslot(btc, 0x32); + + tdma_case = 124; + } + break; + case 3: /*WIFI only*/ + if (coex_sta->ext_chip_mode == BTC_EXTMODE_VOICE) { + tdma_case = 121; + } else{ + if (coex_sta->bt_slave) + rtw_btc_set_extend_btautoslot(btc, 0x3c); + else + rtw_btc_set_extend_btautoslot(btc, 0x32); + + tdma_case = 115; + } + break; + default: + tdma_case = 0; + break; + } + return tdma_case; +} + +u8 rtw_btc_ext_chip_new_tdma(struct btc_coexist *btc, u8 type) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + u8 tdma_case = 0; + + if (btc->board_info.ext_chip_id == BTC_EXT_CHIP_RF4CE) + tdma_case = rtw_btc_action_rf4ce_new_tdma(btc, type); + + return tdma_case; +} + +static void rtw_btc_action_bt_whql_test(struct btc_coexist *btc) +{ + u8 table_case, tdma_case; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); + rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); + + if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ + table_case = 2; + tdma_case = 0; + } else { /* Non-Shared-Ant */ + table_case = 100; + tdma_case = 100; + } + + rtw_btc_table(btc, NM_EXCU, table_case); + rtw_btc_tdma(btc, NM_EXCU, tdma_case); +} + +static void rtw_btc_action_bt_relink(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + u8 table_case, tdma_case; + u32 slot_type = 0; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); + rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); + + if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ + if (coex_sta->wl_gl_busy) { + table_case = 26; + + if (coex_sta->bt_hid_exist && + coex_sta->bt_profile_num == 1) { + slot_type = TDMA_4SLOT; + tdma_case = 20; + } else { + tdma_case = 20; + } + } else { + table_case = 1; + tdma_case = 0; + } + } else { /* Non-Shared-Ant */ + if (coex_sta->wl_gl_busy) + table_case = 115; + else + table_case = 100; + tdma_case = 100; + + if (coex_sta->wl_gl_busy && + btc->board_info.ext_chip_id != BTC_EXT_CHIP_NONE) + tdma_case = rtw_btc_ext_chip_new_tdma(btc, 1); + } + + rtw_btc_table(btc, NM_EXCU, table_case); + rtw_btc_tdma(btc, NM_EXCU, tdma_case | slot_type); +} + +static void rtw_btc_action_bt_idle(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_coex_dm *coex_dm = &btc->coex_dm; + struct btc_rfe_type *rfe_type = &btc->rfe_type; + struct btc_wifi_link_info *link_info = &btc->wifi_link_info; + u8 table_case = 0xff, tdma_case = 0xff; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); + + if (rfe_type->ant_switch_with_bt && + coex_dm->bt_status == BTC_BTSTATUS_NCON_IDLE) { + if (btc->board_info.btdm_ant_num == 1 && + BTC_RSSI_HIGH(coex_dm->wl_rssi_state[3]) && + coex_sta->wl_gl_busy) { + table_case = 0; + tdma_case = 0; + } else if (btc->board_info.btdm_ant_num == 2) { + table_case = 100; + tdma_case = 100; + } + + if (table_case != 0xff && tdma_case != 0xff) { + rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G_FREERUN); + goto exit; + } + } + + rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); +#if 0 +#ifndef PLATFORM_WINDOWS + if (coex_sta->wl_noisy_level > 0) { + if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ + table_case = 1; + tdma_case = 0; + } else { /* Non-Shared-Ant */ + table_case = 123; + tdma_case = 0; + } + goto exit; + } +#endif +#endif + if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ + if (!coex_sta->wl_gl_busy) { + table_case = 10; + tdma_case = 3; + } else if (coex_sta->bt_mesh) { + table_case = 26; + tdma_case = 7; + } else if (coex_dm->bt_status == BTC_BTSTATUS_NCON_IDLE) { + table_case = 11; + + if (coex_sta->bt_ctr_ok && + (coex_sta->lo_pri_rx + coex_sta->lo_pri_tx > 250)) + tdma_case = 17; + else + tdma_case = 7; + } else { + table_case = 12; + tdma_case = 7; + } + } else { /* Non-Shared-Ant */ + if (!coex_sta->wl_gl_busy) { + table_case = 112; + tdma_case = 104; + } else if ((coex_sta->bt_ble_scan_type & 0x2) && + coex_dm->bt_status == BTC_BTSTATUS_NCON_IDLE) { + table_case = 114; + tdma_case = 103; + } else { + table_case = 112; + tdma_case = 103; + } + if (coex_sta->wl_gl_busy && + btc->board_info.ext_chip_id != BTC_EXT_CHIP_NONE) + tdma_case = rtw_btc_ext_chip_new_tdma(btc, 0); + } + +exit: + rtw_btc_table(btc, NM_EXCU, table_case); + rtw_btc_tdma(btc, NM_EXCU, tdma_case); +} + +static void rtw_btc_action_bt_inquiry(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; + boolean wl_hi_pri = FALSE; + u8 table_case, tdma_case; + u32 slot_type = 0; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); + rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); + + if (coex_sta->wl_linkscan_proc || coex_sta->wl_hi_pri_task1 || + coex_sta->wl_hi_pri_task2) + wl_hi_pri = TRUE; + + if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ + if (wl_hi_pri) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], bt inq/page + wifi hi-pri task\n"); + + table_case = 15; + + if (coex_sta->bt_profile_num > 0) + tdma_case = 10; + else if (coex_sta->wl_hi_pri_task1) + tdma_case = 6; + else if (!coex_sta->bt_page) + tdma_case = 8; + else + tdma_case = 9; + } else if (coex_sta->wl_gl_busy) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], bt inq/page + wifi busy\n"); +#if 0 + table_case = 15; + tdma_case = 20; +#else + if (coex_sta->bt_profile_num == 0) { + table_case = 12; + tdma_case = 18; + } else if (coex_sta->bt_profile_num == 1 && + !coex_sta->bt_a2dp_exist) { + slot_type = TDMA_4SLOT; + table_case = 12; + tdma_case = 20; + } else { + slot_type = TDMA_4SLOT; + table_case = 12; + tdma_case = 26; + } +#endif + } else if (link_info_ext->is_connected) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], bt inq/page + wifi connected\n"); + + table_case = 9; + tdma_case = 27; + } else { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], bt inq/page + wifi not-connected\n"); + + table_case = 1; + tdma_case = 0; + } + } else { /* Non_Shared-Ant */ + if (wl_hi_pri) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], bt inq/page + wifi hi-pri task\n"); + + table_case = 100; + tdma_case = 100; + } else if (coex_sta->wl_gl_busy) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], bt inq/page + wifi busy\n"); + + table_case = 114; + tdma_case = 121; + } else if (link_info_ext->is_connected) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], bt inq/page + wifi connected\n"); + + table_case = 101; + tdma_case = 100; + } else { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], bt inq/page + wifi not-connected\n"); + + table_case = 101; + tdma_case = 100; + } + } + + BTC_TRACE(trace_buf); + + rtw_btc_table(btc, NM_EXCU, table_case); + rtw_btc_tdma(btc, NM_EXCU, tdma_case | slot_type); +} + +static void rtw_btc_action_bt_hfp(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + u8 table_case, tdma_case; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); + rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); + + if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ + if (coex_sta->wl_cck_lock_ever) { + coex_sta->wl_coex_mode = BTC_WLINK_2GFREE; + table_case = 33; + tdma_case = 0; + } else { + table_case = 10; + tdma_case = 5; + } + } else { /* Non-Shared-Ant */ + if (coex_sta->bt_multi_link) { + table_case = 112; + tdma_case = 117; + } else { + table_case = 105; + tdma_case = 100; + } + } + + rtw_btc_table(btc, NM_EXCU, table_case); + rtw_btc_tdma(btc, NM_EXCU, tdma_case); +} + +static void rtw_btc_action_bt_hid(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + u8 table_case, tdma_case; + boolean is_toggle_table = FALSE, is_bt_ctr_hi = FALSE; + u32 slot_type = 0; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); + rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); + + if (coex_sta->bt_ctr_ok && + (coex_sta->lo_pri_rx + coex_sta->lo_pri_tx > 360)) + is_bt_ctr_hi = TRUE; + + if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ +#ifdef PLATFORM_WINDOWS + if (coex_sta->wl_cck_lock_ever) { + coex_sta->wl_coex_mode = BTC_WLINK_2GFREE; + table_case = 33; + tdma_case = 0; + } else +#endif + if (coex_sta->bt_ble_exist) { /* RCU */ + table_case = 26; + tdma_case = 2; + } else { /* Legacy HID */ + if (coex_sta->bt_profile_num == 1 && + (coex_sta->bt_multi_link || + is_bt_ctr_hi || + coex_sta->bt_slave || + coex_sta->bt_multi_link_remain)) { + slot_type = TDMA_4SLOT; + + if (coex_sta->wl_gl_busy && + (coex_sta->wl_rx_rate <= 3 || + coex_sta->wl_rts_rx_rate <= 3)) + table_case = 13; + else + table_case = 12; + + tdma_case = 26; + } else if (coex_sta->bt_a2dp_active) { + table_case = 9; + tdma_case = 18; + } else if (coex_sta->bt_418_hid_exist && + coex_sta->wl_gl_busy) { + slot_type = TDMA_4SLOT; + table_case = 32; + tdma_case = 27; + } else if (coex_sta->bt_ble_hid_exist && + coex_sta->wl_gl_busy) { + table_case = 32; + tdma_case = 9; + } else { + table_case = 9; + tdma_case = 9; + } + } + } else { /* Non-Shared-Ant */ + if (coex_sta->bt_ble_exist) { /* BLE */ + table_case = 110; + tdma_case = 105; + } else if (coex_sta->bt_a2dp_active) { + table_case = 113; + tdma_case = 118; + } else { + table_case = 113; + tdma_case = 104; + } + } + + rtw_btc_table(btc, NM_EXCU, table_case); + if (is_toggle_table) { + rtw_btc_wltoggle_tableA(btc, FC_EXCU, table_case); + rtw_btc_wltoggle_tableB(btc, NM_EXCU, 1, 0x5a5a5aaa); + } + + rtw_btc_tdma(btc, NM_EXCU, tdma_case | slot_type); +} + +static void rtw_btc_action_bt_a2dp(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_coex_dm *coex_dm = &btc->coex_dm; + u8 table_case, tdma_case; + u32 slot_type = 0; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); + rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); + + slot_type = TDMA_4SLOT; + + if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ + if (coex_sta->wl_gl_busy && coex_sta->wl_noisy_level == 0) + table_case = 12; + else + table_case = 9; + + if (coex_sta->wl_connecting || !coex_sta->wl_gl_busy) + tdma_case = 14; + else + tdma_case = 13; + } else { /* Non-Shared-Ant */ + table_case = 121; + tdma_case = 113; + } + + rtw_btc_table(btc, NM_EXCU, table_case); + rtw_btc_tdma(btc, NM_EXCU, tdma_case | slot_type); +} + +static void rtw_btc_action_bt_a2dpsink(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_coex_dm *coex_dm = &btc->coex_dm; + struct btc_wifi_link_info_ext *linfo_ext = &btc->wifi_link_info_ext; + u8 table_case, tdma_case; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); + rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); + + if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ + if (linfo_ext->is_ap_mode) { + table_case = 2; + tdma_case = 0; + } else if (coex_sta->wl_gl_busy) { + table_case = 28; + tdma_case = 20; + } else { + table_case = 28; + tdma_case = 26; + } + } else { /* Non-Shared-Ant */ + if (linfo_ext->is_ap_mode) { + table_case = 100; + tdma_case = 100; + } else { + table_case = 119; + tdma_case = 120; + } + } + + rtw_btc_table(btc, NM_EXCU, table_case); + rtw_btc_tdma(btc, NM_EXCU, tdma_case); +} + +static void rtw_btc_action_bt_pan(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + u8 table_case, tdma_case; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); + rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); + + if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ + if (coex_sta->wl_gl_busy && coex_sta->wl_noisy_level == 0) + table_case = 14; + else + table_case = 10; + + if (coex_sta->wl_gl_busy) + tdma_case = 17; + else + tdma_case = 20; + } else { /* Non-Shared-Ant */ + table_case = 112; + + if (coex_sta->wl_gl_busy) + tdma_case = 117; + else + tdma_case = 119; + } + + if (coex_sta->bt_slave && coex_sta->wl_gl_busy) + rtw_btc_set_bt_golden_rx_range(btc, NM_EXCU, 3, 20); + else + rtw_btc_set_bt_golden_rx_range(btc, NM_EXCU, 3, 0); + + rtw_btc_table(btc, NM_EXCU, table_case); + rtw_btc_tdma(btc, NM_EXCU, tdma_case); +} + +static void rtw_btc_action_bt_a2dp_hid(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_coex_dm *coex_dm = &btc->coex_dm; + u8 table_case = 0, tdma_case = 0, interval = 0; + boolean is_toggle_table = FALSE; + u32 slot_type = 0, tableB = 0; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); + rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); + + if (coex_sta->wl_iot_peer != BTC_IOT_PEER_CISCO) + slot_type = TDMA_4SLOT; + + if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ + if (coex_sta->bt_ble_exist) { + table_case = 26; /* for RCU */ + } else if (coex_sta->bt_418_hid_exist) { /*for 4/18 HID*/ + table_case = 9; + tableB = 0x5a5a5aaa; + interval = 1; + } else { + table_case = 9; /*for 2/18 HID, BLE HID*/ + } + + if (coex_sta->wl_connecting || !coex_sta->wl_gl_busy) { + tdma_case = 14; + } else if (coex_sta->bt_418_hid_exist) { + is_toggle_table = TRUE; + tdma_case = 23; + } else { + tdma_case = 13; + } + } else { /* Non-Shared-Ant */ + if (coex_sta->bt_ble_exist) + table_case = 110; + else + table_case = 121; + + tdma_case = 113; + } + + rtw_btc_table(btc, NM_EXCU, table_case); + if (is_toggle_table) { + rtw_btc_wltoggle_tableA(btc, FC_EXCU, table_case); + rtw_btc_wltoggle_tableB(btc, NM_EXCU, interval, tableB); + } + + rtw_btc_tdma(btc, NM_EXCU, tdma_case | slot_type); +} + +static void rtw_btc_action_bt_a2dp_pan(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_coex_dm *coex_dm = &btc->coex_dm; + const struct btc_chip_para *chip_para = btc->chip_para; + u8 table_case, tdma_case; + boolean wl_cpt_test = FALSE, bt_cpt_test = FALSE; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + if (btc->board_info.customer_id == RT_CID_LENOVO_CHINA && + coex_sta->cnt_wl[BTC_CNT_WL_SCANAP] <= 10 && + coex_sta->wl_iot_peer == BTC_IOT_PEER_ATHEROS) { + if (BTC_RSSI_LOW(coex_dm->wl_rssi_state[2])) + wl_cpt_test = TRUE; + else + bt_cpt_test = TRUE; + } + + if (wl_cpt_test) + rtw_btc_set_rf_para(btc, NM_EXCU, chip_para->wl_rf_para_rx[1]); + else + rtw_btc_set_rf_para(btc, NM_EXCU, chip_para->wl_rf_para_rx[0]); + + rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); + if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ + if (wl_cpt_test) { + if (coex_sta->wl_gl_busy) { + table_case = 20; + tdma_case = 17; + } else { + table_case = 10; + tdma_case = 15; + } + } else if (bt_cpt_test) { + table_case = 26; + tdma_case = 26; + } else { + if (coex_sta->wl_gl_busy && + coex_sta->wl_noisy_level == 0) + table_case = 14; + else + table_case = 10; + + if (coex_sta->wl_gl_busy) + tdma_case = 15; + else + tdma_case = 20; + } + } else { /* Non-Shared-Ant */ + table_case = 112; + + if (coex_sta->wl_gl_busy) + tdma_case = 115; + else + tdma_case = 120; + } + + if (coex_sta->bt_slave) + rtw_btc_set_extend_btautoslot(btc, 0x3c); + else + rtw_btc_set_extend_btautoslot(btc, 0x32); + + rtw_btc_table(btc, NM_EXCU, table_case); + rtw_btc_tdma(btc, NM_EXCU, tdma_case); +} + +static void rtw_btc_action_bt_pan_hid(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + u8 table_case, tdma_case; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); + rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); + + if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ + table_case = 9; + + if (coex_sta->wl_gl_busy) + tdma_case = 18; + else + tdma_case = 19; + } else { /* Non-Shared-Ant */ + table_case = 113; + + if (coex_sta->wl_gl_busy) + tdma_case = 117; + else + tdma_case = 119; + } + + rtw_btc_table(btc, NM_EXCU, table_case); + rtw_btc_tdma(btc, NM_EXCU, tdma_case); +} + +static void rtw_btc_action_bt_a2dp_pan_hid(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + u8 table_case, tdma_case; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); + rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); + + if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ + table_case = 10; + + if (coex_sta->wl_gl_busy) + tdma_case = 15; + else + tdma_case = 20; + } else { /* Non-Shared-Ant */ + table_case = 113; + + if (coex_sta->wl_gl_busy) + tdma_case = 115; + else + tdma_case = 120; + } + + if (coex_sta->bt_slave) + rtw_btc_set_extend_btautoslot(btc, 0x3c); + else + rtw_btc_set_extend_btautoslot(btc, 0x32); + + rtw_btc_table(btc, NM_EXCU, table_case); + rtw_btc_tdma(btc, NM_EXCU, tdma_case); +} + +static void rtw_btc_action_wl_off(struct btc_coexist *btc) +{ + const struct btc_chip_para *chip_para = btc->chip_para; + + rtw_btc_tdma(btc, FC_EXCU, 0); + rtw_btc_ignore_wlan_act(btc, FC_EXCU, TRUE); + rtw_btc_set_ant_path(btc, FC_EXCU, BTC_ANT_WOFF); + rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); + + btc->stop_coex_dm = TRUE; + btc->wl_rf_state_off = TRUE; + + /* must place in the last step */ + rtw_btc_update_wl_ch_info(btc, BTC_MEDIA_DISCONNECT); + if (chip_para->scbd_bit_num == BTC_SCBD_16_BIT) + btc->btc_write_scbd(btc, BTC_SCBD_ALL, FALSE); + else + btc->btc_write_scbd_32bit(btc, BTC_SCBD_ALL_32BIT, FALSE); +} + +static void rtw_btc_action_wl_under5g(struct btc_coexist *btc) +{ + u8 table_case, tdma_case; + const struct btc_chip_para *chip_para = btc->chip_para; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_set_ant_path(btc, FC_EXCU, BTC_ANT_5G); + rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); + + if (chip_para->scbd_bit_num == BTC_SCBD_16_BIT) + btc->btc_write_scbd(btc, BTC_SCBD_FIX2M, FALSE); + else + btc->btc_write_scbd_32bit(btc, BTC_SCBD_FIX2M, FALSE); + + if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ + table_case = 0; + tdma_case = 0; + } else { /* Non-Shared-Ant */ + table_case = 100; + tdma_case = 100; + } + + rtw_btc_table(btc, NM_EXCU, table_case); + rtw_btc_tdma(btc, NM_EXCU, tdma_case); +} + +static void rtw_btc_action_wl_only(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + u8 table_case, tdma_case; + + rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); + rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ + table_case = 2; + tdma_case = 0; + } else { /* Non-Shared-Ant */ + table_case = 100; + tdma_case = 100; + if (coex_sta->wl_gl_busy && + btc->board_info.ext_chip_id != BTC_EXT_CHIP_NONE) + tdma_case = rtw_btc_ext_chip_new_tdma(btc, 3); + } + + rtw_btc_table(btc, NM_EXCU, table_case); + rtw_btc_tdma(btc, NM_EXCU, tdma_case); +} + +static void rtw_btc_action_wl_native_lps(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; + u8 table_case, tdma_case; + + if (link_info_ext->is_all_under_5g) + return; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); + rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); + + if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ + table_case = 28; /*0x6c0 for A2DP, 0x6c4 for non-A2DP*/ + tdma_case = 0; + } else { /* Non-Shared-Ant */ + table_case = 100; + tdma_case = 100; + } + + rtw_btc_table(btc, NM_EXCU, table_case); + rtw_btc_tdma(btc, NM_EXCU, tdma_case); +} + +static void rtw_btc_action_wl_linkscan(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; + u8 table_case, tdma_case; + u32 slot_type = 0; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); + rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); + + if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ + if (coex_sta->bt_pan_exist) { + table_case = 34; + tdma_case = 8; + } else if (coex_sta->bt_a2dp_exist) { + slot_type = TDMA_4SLOT; + table_case = 9; + tdma_case = 11; + } else if (coex_sta->bt_hid_exist) { + if (link_info_ext->is_connected) { + table_case = 36; + } else { + table_case = 35; + } + tdma_case = 5; + } else { + table_case = 9; + tdma_case = 7; + } + } else { /* Non-Shared-Ant */ + if (coex_sta->bt_pan_exist) { + table_case = 124; + tdma_case = 108; + } else if (coex_sta->bt_a2dp_exist) { + slot_type = TDMA_4SLOT; + table_case = 124; + tdma_case = 126; + } else { + table_case = 112; + tdma_case = 107; + } + if (coex_sta->wl_gl_busy && + btc->board_info.ext_chip_id != BTC_EXT_CHIP_NONE) + tdma_case = rtw_btc_ext_chip_new_tdma(btc, 2); + } + + rtw_btc_table(btc, NM_EXCU, table_case); + rtw_btc_tdma(btc, NM_EXCU, tdma_case | slot_type); +} + +static void rtw_btc_action_wl_not_connected(struct btc_coexist *btc) +{ + struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; + struct btc_coex_sta *coex_sta = &btc->coex_sta; + u8 table_case, tdma_case; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + /* CCK Rx, Tx response, Tx beacon = low pri */ + if (link_info_ext->num_of_active_port == 0) + rtw_btc_set_wl_pri_mask(btc, BTC_WLPRI_RX_CCK, 0); + + coex_sta->wl_cck_lock_ever = FALSE; + coex_sta->wl_cck_lock = FALSE; + coex_sta->cnt_wl[BTC_CNT_WL_2G_TDDTRY] = FALSE; + coex_sta->cnt_wl[BTC_CNT_WL_2G_FDDSTAY] = FALSE; + + rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); + rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); + + if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ + table_case = 1; + tdma_case = 0; + } else { /* Non-Shared-Ant */ + table_case = 100; + tdma_case = 100; + } + + rtw_btc_table(btc, NM_EXCU, table_case); + rtw_btc_tdma(btc, NM_EXCU, tdma_case); +} + +static void rtw_btc_action_wl_connected(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + u8 algorithm; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + /*Leap-AP protection will reopen when connecting AP*/ + rtw_btc_wl_leakap(btc, TRUE); + + if ((btc->board_info.btdm_ant_num == 2) && + (btc->board_info.ext_chip_id != BTC_EXT_CHIP_NONE)) { + rtw_btc_action_ext_chip(btc); + return; + } + + algorithm = rtw_btc_algorithm(btc); + + switch (algorithm) { + case BTC_COEX_HFP: + if (rtw_btc_freerun_check(btc)) + rtw_btc_action_freerun(btc); + else + rtw_btc_action_bt_hfp(btc); + break; + case BTC_COEX_HID: + if (rtw_btc_freerun_check(btc)) + rtw_btc_action_freerun(btc); + else + rtw_btc_action_bt_hid(btc); + break; + case BTC_COEX_A2DP: + if (rtw_btc_freerun_check(btc)) + rtw_btc_action_freerun(btc); + else if (coex_sta->bt_a2dp_sink) + rtw_btc_action_bt_a2dpsink(btc); + else + rtw_btc_action_bt_a2dp(btc); + break; + case BTC_COEX_PAN: + rtw_btc_action_bt_pan(btc); + break; + case BTC_COEX_A2DP_HID: + if (rtw_btc_freerun_check(btc)) + rtw_btc_action_freerun(btc); + else + rtw_btc_action_bt_a2dp_hid(btc); + break; + case BTC_COEX_A2DP_PAN: + rtw_btc_action_bt_a2dp_pan(btc); + break; + case BTC_COEX_PAN_HID: + rtw_btc_action_bt_pan_hid(btc); + break; + case BTC_COEX_A2DP_PAN_HID: + rtw_btc_action_bt_a2dp_pan_hid(btc); + break; + default: + case BTC_COEX_NOPROFILE: + rtw_btc_action_bt_idle(btc); + break; + } +} + +static void rtw_btc_action_wl_mcc25g(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + const struct btc_chip_para *chip_para = btc->chip_para; + u8 table_case, tdma_case; + + rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_MCC); + rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); + + if (chip_para->scbd_bit_num == BTC_SCBD_16_BIT) + btc->btc_write_scbd(btc, BTC_SCBD_FIX2M, FALSE); + else + btc->btc_write_scbd_32bit(btc, BTC_SCBD_FIX2M, FALSE); + + if (btc->board_info.btdm_ant_num == 1) { /* Shared-Ant */ + if (coex_sta->bt_setup_link) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): BT Relink\n", __func__); + + table_case = 24; + tdma_case = 0; + } else if (coex_sta->bt_inq_page) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): BT Inq-Pag\n", __func__); + + table_case = 23; + tdma_case = 0; + } else { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): BT on\n", __func__); + + if (coex_sta->wl_gl_busy) { + if (coex_sta->wl_rx_rate <= 3 || + coex_sta->wl_rts_rx_rate <= 3) + table_case = 31; + else if (coex_sta->bt_hid_exist || + coex_sta->bt_hfp_exist) + table_case = 26; + else + table_case = 27; + } else { + table_case = 27; + } + + tdma_case = 0; + } + } else { /* Non-Shared-Ant */ + if (coex_sta->bt_setup_link) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): BT Relink\n", __func__); + + table_case = 100; + tdma_case = 100; + } else if (coex_sta->bt_inq_page) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): BT Inq-Pag\n", __func__); + + table_case = 118; + tdma_case = 100; + } else { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): BT on!!\n", __func__); + + table_case = 118; + tdma_case = 100; + } + } + + BTC_TRACE(trace_buf); + + rtw_btc_table(btc, NM_EXCU, table_case); + rtw_btc_tdma(btc, NM_EXCU, tdma_case); +} + +static void rtw_btc_action_wl_scc2g(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + u8 table_case = 0xff, tdma_case = 0xff; + boolean is_toggle_table = FALSE; + u32 slot_type = 0; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + if (coex_sta->bt_profile_num == 1) { + if (coex_sta->bt_hid_exist || coex_sta->bt_hfp_exist) { + if (coex_sta->bt_a2dp_active) { + table_case = 9; + tdma_case = 21; + } else if (coex_sta->bt_418_hid_exist) { + table_case = 10; + tdma_case = 24; + is_toggle_table = TRUE; + slot_type = TDMA_4SLOT; + } else { + table_case = 2; + tdma_case = 0; + } + } else if (coex_sta->bt_a2dp_exist) { + table_case = 10; + tdma_case = 22; + slot_type = TDMA_4SLOT; + } else { /* PAN or OPP */ + table_case = 10; + tdma_case = 21; + } + } else { + if ((coex_sta->bt_hid_exist || coex_sta->bt_hfp_exist) && + coex_sta->bt_a2dp_exist) { + table_case = 9; + tdma_case = 22; + + slot_type = TDMA_4SLOT; + if (coex_sta->bt_418_hid_exist) + is_toggle_table = TRUE; + } else if (coex_sta->bt_pan_exist && coex_sta->bt_a2dp_exist) { + table_case = 10; + tdma_case = 22; + slot_type = TDMA_4SLOT; + } else { /* hid + pan */ + table_case = 9; + tdma_case = 21; + } + } + + rtw_btc_table(btc, NM_EXCU, table_case); + if (is_toggle_table) { + rtw_btc_wltoggle_tableA(btc, FC_EXCU, table_case); + rtw_btc_wltoggle_tableB(btc, NM_EXCU, 1, 0x5a5a5aaa); + } + + rtw_btc_tdma(btc, NM_EXCU, tdma_case | slot_type); +} + +static void rtw_btc_action_wl_p2p2g(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_rfe_type *rfe_type = &btc->rfe_type; + struct btc_wifi_link_info *link_info = &btc->wifi_link_info; + const struct btc_chip_para *chip_para = btc->chip_para; + u8 table_case = 0xff, tdma_case = 0xff, ant_phase; + + if (rfe_type->ant_switch_with_bt) + ant_phase = BTC_ANT_2G_FREERUN; + else + ant_phase = BTC_ANT_2G; + + rtw_btc_set_rf_para(btc, NM_EXCU, btc->chip_para->wl_rf_para_rx[0]); + + if (chip_para->scbd_bit_num == BTC_SCBD_16_BIT) + btc->btc_write_scbd(btc, BTC_SCBD_FIX2M, FALSE); + else + btc->btc_write_scbd_32bit(btc, BTC_SCBD_FIX2M, FALSE); + + if (coex_sta->bt_disabled) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): BT Disable!!\n", __func__); + BTC_TRACE(trace_buf); + rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); + + table_case = 0; + tdma_case = 0; + } else if (btc->board_info.btdm_ant_num == 2) { /* Non-Shared-Ant */ + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): Non_Shared_Ant!!\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_action_freerun(btc); + return; + } else if (coex_sta->bt_setup_link) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): BT Relink!!\n", __func__); + + rtw_btc_set_ant_path(btc, NM_EXCU, ant_phase); + + table_case = 1; + tdma_case = 0; + } else if (coex_sta->bt_inq_page) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): BT Inq-Page!!\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_set_ant_path(btc, NM_EXCU, ant_phase); + + table_case = 15; + tdma_case = 2; + } else if (coex_sta->bt_profile_num == 0) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): BT idle!!\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_set_ant_path(btc, NM_EXCU, ant_phase); + + if (btc->chip_interface == BTC_INTF_PCI && + (link_info->link_mode == BTC_LINK_ONLY_GO || + link_info->link_mode == BTC_LINK_ONLY_GC) && + coex_sta->wl_gl_busy) + table_case = 3; + else + table_case = 1; + + tdma_case = 0; + } else if (coex_sta->wl_linkscan_proc) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): WL scan!!\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_action_wl_linkscan(btc); + } else { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): BT busy!!\n", __func__); + BTC_TRACE(trace_buf); + + switch (link_info->link_mode) { + case BTC_LINK_2G_SCC_GC_STA: + case BTC_LINK_2G_SCC_GO_STA: + rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); + rtw_btc_action_wl_scc2g(btc); + break; + case BTC_LINK_ONLY_GO: + case BTC_LINK_ONLY_GC: + rtw_btc_set_ant_path(btc, NM_EXCU, BTC_ANT_2G); +#ifdef PLATFORM_WINDOWS + if (btc->chip_interface == BTC_INTF_PCI && + coex_sta->bt_a2dp_exist && !coex_sta->bt_multi_link) + table_case = 3; + else +#endif + table_case = 2; + + tdma_case = 0; + break; + default: + rtw_btc_set_ant_path(btc, NM_EXCU, ant_phase); + table_case = 2; + tdma_case = 0; + break; + } + } + + if (table_case != 0xff && tdma_case != 0xff) { + rtw_btc_table(btc, NM_EXCU, table_case); + rtw_btc_tdma(btc, NM_EXCU, tdma_case); + } +} + +static void rtw_btc_run_coex(struct btc_coexist *btc, u8 reason) +{ + struct btc_coex_dm *coex_dm = &btc->coex_dm; + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; + struct btc_wifi_link_info *link_info = &btc->wifi_link_info; + const struct btc_chip_para *chip_para = btc->chip_para; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): reason = %d\n", __func__, reason); + BTC_TRACE(trace_buf); + + coex_sta->coex_run_reason = reason; + + /* update wifi_link_info_ext variable */ + rtw_btc_update_wl_link_info(btc, reason); + + rtw_btc_monitor_bt_enable(btc); + + if (btc->manual_control) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], return for Manual CTRL!!\n"); + BTC_TRACE(trace_buf); + return; + } + + if (btc->stop_coex_dm) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], return for Stop Coex DM!!\n"); + BTC_TRACE(trace_buf); + return; + } + + if (coex_sta->wl_under_ips) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], return for wifi is under IPS!!\n"); + BTC_TRACE(trace_buf); + return; + } + + if (coex_sta->wl_under_lps && link_info_ext->is_32k) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], return for wifi is under LPS-32K!!\n"); + BTC_TRACE(trace_buf); + return; + } + + if (coex_sta->coex_freeze && reason == BTC_RSN_BTINFO && + !coex_sta->bt_setup_link) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], return for coex_freeze!!\n"); + BTC_TRACE(trace_buf); + return; + } + + coex_sta->cnt_wl[BTC_CNT_WL_COEXRUN]++; + coex_sta->coex_freerun = FALSE; + + /* Pure-5G Coex Process */ + if (link_info_ext->is_all_under_5g) { + coex_sta->wl_coex_mode = BTC_WLINK_5G; + rtw_btc_action_wl_under5g(btc); + goto exit; + } + + if (link_info_ext->is_mcc_25g) { + coex_sta->wl_coex_mode = BTC_WLINK_25GMPORT; + rtw_btc_action_wl_mcc25g(btc); + goto exit; + } + + /* if multi-port, P2P-GO, P2P-GC */ + if (link_info_ext->num_of_active_port > 1 || + (link_info->link_mode == BTC_LINK_ONLY_GO && + !link_info_ext->is_ap_mode) || + link_info->link_mode == BTC_LINK_ONLY_GC) { + if (link_info->link_mode == BTC_LINK_ONLY_GO) + coex_sta->wl_coex_mode = BTC_WLINK_2GGO; + else if (link_info->link_mode == BTC_LINK_ONLY_GC) + coex_sta->wl_coex_mode = BTC_WLINK_2GGC; + else + coex_sta->wl_coex_mode = BTC_WLINK_2GMPORT; + rtw_btc_action_wl_p2p2g(btc); + goto exit; + } + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], WiFi is single-port 2G!!\n"); + BTC_TRACE(trace_buf); + + coex_sta->wl_coex_mode = BTC_WLINK_2G1PORT; + + if (coex_sta->bt_disabled) { + if (!link_info_ext->is_connected) + rtw_btc_action_wl_not_connected(btc); + else + rtw_btc_action_wl_only(btc); + goto exit; + } + + if (coex_sta->wl_under_lps && !coex_sta->wl_force_lps_ctrl) { + rtw_btc_action_wl_native_lps(btc); + goto exit; + } + + if (coex_sta->bt_whck_test) { + rtw_btc_action_bt_whql_test(btc); + goto exit; + } + + if (coex_sta->bt_setup_link) { + rtw_btc_action_bt_relink(btc); + goto exit; + } + + if (coex_sta->bt_inq_page) { + rtw_btc_action_bt_inquiry(btc); + goto exit; + } + + if ((coex_dm->bt_status == BTC_BTSTATUS_NCON_IDLE || + coex_dm->bt_status == BTC_BTSTATUS_CON_IDLE) && + link_info_ext->is_connected) { + rtw_btc_action_bt_idle(btc); + goto exit; + } + + if (coex_sta->wl_linkscan_proc && !coex_sta->coex_freerun) { + rtw_btc_action_wl_linkscan(btc); + goto exit; + } + + if (link_info_ext->is_connected) { + rtw_btc_action_wl_connected(btc); + goto exit; + } else { + rtw_btc_action_wl_not_connected(btc); + goto exit; + } + +exit: +#ifdef PLATFORM_WINDOWS + /* 0:original, 1:1R */ + if (coex_sta->wl_coex_mode == BTC_WLINK_2GFREE && + chip_para->rx_path_num >= 2) + rtw_btc_mimo_ps(btc, FC_EXCU, 1); + else + rtw_btc_mimo_ps(btc, FC_EXCU, 0); +#endif + + rtw_btc_gnt_workaround(btc, NM_EXCU, coex_sta->wl_coex_mode); + rtw_btc_limited_wl(btc); +} + +static void rtw_btc_init_coex_var(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_coex_dm *coex_dm = &btc->coex_dm; + const struct btc_chip_para *chip_para = btc->chip_para; + u8 i; + + /* Reset Coex variable */ + btc->btc_set(btc, BTC_SET_RESET_COEX_VAR, NULL); + + /* Init Coex variables that are not zero */ + for (i = 0; i < ARRAY_SIZE(coex_dm->bt_rssi_state); i++) + coex_dm->bt_rssi_state[i] = BTC_RSSI_STATE_LOW; + + for (i = 0; i < ARRAY_SIZE(coex_dm->wl_rssi_state); i++) + coex_dm->wl_rssi_state[i] = BTC_RSSI_STATE_LOW; + + for (i = 0; i < ARRAY_SIZE(coex_sta->bt_sut_pwr_lvl); i++) + coex_sta->bt_sut_pwr_lvl[i] = 0xff; + + coex_sta->bt_reg_vendor_ac = 0xffff; + coex_sta->bt_reg_vendor_ae = 0xffff; + + coex_sta->gnt_workaround_state = BTC_WLINK_MAX; + btc->bt_info.bt_get_fw_ver = 0; +} + +static void +rtw_btc_init_hw_config(struct btc_coexist *btc, boolean wifi_only) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + const struct btc_chip_para *chip_para = btc->chip_para; + u8 table_case = 1, tdma_case = 0; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + /* init coex_dm, coex_sta variable to sync with chip status */ + rtw_btc_init_coex_var(btc); + + /* 0xf0[15:12] --> chip kt info */ + coex_sta->kt_ver = (btc->btc_read_1byte(btc, 0xf1) & 0xf0) >> 4; + + rtw_btc_monitor_bt_enable(btc); + + /* TBTT enable */ + btc->btc_write_1byte_bitmask(btc, REG_BCN_CTRL, BIT_EN_BCN_FUNCTION, + 0x1); + + /* Setup RF front end type */ + btc->chip_para->chip_setup(btc, BTC_CSETUP_RFE_TYPE); + + /* Init coex relared register */ + btc->chip_para->chip_setup(btc, BTC_CSETUP_INIT_HW); + + /* set Tx response = Hi-Pri (ex: Transmitting ACK,BA,CTS) */ + rtw_btc_set_wl_pri_mask(btc, BTC_WLPRI_TX_RSP, 1); + + /* set Tx beacon = Hi-Pri */ + rtw_btc_set_wl_pri_mask(btc, BTC_WLPRI_TX_BEACON, 1); + + /* set Tx beacon queue = Hi-Pri */ + rtw_btc_set_wl_pri_mask(btc, BTC_WLPRI_TX_BEACONQ, 1); + + /* Antenna config */ + if (btc->wl_rf_state_off) { + rtw_btc_set_ant_path(btc, FC_EXCU, BTC_ANT_WOFF); + if (chip_para->scbd_bit_num == BTC_SCBD_16_BIT) + btc->btc_write_scbd(btc, BTC_SCBD_ALL, FALSE); + else + btc->btc_write_scbd_32bit(btc, BTC_SCBD_ALL_32BIT, FALSE); + btc->stop_coex_dm = TRUE; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): RF Off\n", __func__); + BTC_TRACE(trace_buf); + } else if (wifi_only) { + rtw_btc_set_ant_path(btc, FC_EXCU, BTC_ANT_WONLY); + if (chip_para->scbd_bit_num == BTC_SCBD_16_BIT) + btc->btc_write_scbd(btc, BTC_SCBD_ACTIVE | BTC_SCBD_ON, TRUE); + else + btc->btc_write_scbd_32bit(btc, BTC_SCBD_ACTIVE | BTC_SCBD_ON, TRUE); + btc->stop_coex_dm = TRUE; + } else { + rtw_btc_set_ant_path(btc, FC_EXCU, BTC_ANT_INIT); + if (chip_para->scbd_bit_num == BTC_SCBD_16_BIT) + btc->btc_write_scbd(btc, BTC_SCBD_ACTIVE | BTC_SCBD_ON, TRUE); + else + btc->btc_write_scbd_32bit(btc, BTC_SCBD_ACTIVE | BTC_SCBD_ON, TRUE); + btc->stop_coex_dm = FALSE; + coex_sta->coex_freeze = TRUE; + } + + /* PTA parameter */ + rtw_btc_table(btc, FC_EXCU, table_case); + rtw_btc_tdma(btc, FC_EXCU, tdma_case); + + rtw_btc_query_bt_info(btc); +} + +void rtw_btc_ex_power_on_setting(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_board_info *board_info = &btc->board_info; + u8 table_case = 1; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + btc->stop_coex_dm = TRUE; + btc->wl_rf_state_off = FALSE; + + /* enable BB, REG_SYS_FUNC_EN to write reg correctly. */ + btc->btc_write_1byte_bitmask(btc, REG_SYS_FUNC_EN, + BIT_FEN_BB_GLB_RST | BIT_FEN_BB_RSTB, 0x3); + + rtw_btc_monitor_bt_enable(btc); + + /* Setup RF front end type */ + btc->chip_para->chip_setup(btc, BTC_CSETUP_RFE_TYPE); + + /* Set Antenna Path to BT side */ + rtw_btc_set_ant_path(btc, FC_EXCU, BTC_ANT_POWERON); + + rtw_btc_table(btc, FC_EXCU, table_case); + + /* SD1 Chunchu red x issue */ + btc->btc_write_1byte(btc, 0xff1a, 0x0); + + rtw_btc_gnt_debug(btc, TRUE); + + board_info->btdm_ant_pos = BTC_ANTENNA_AT_MAIN_PORT; +} + +void rtw_btc_ex_pre_load_firmware(struct btc_coexist *btc) {} + +void rtw_btc_ex_init_hw_config(struct btc_coexist *btc, boolean wifi_only) +{ + rtw_btc_init_hw_config(btc, wifi_only); +} + +void rtw_btc_ex_init_coex_dm(struct btc_coexist *btc) +{ +} + +void rtw_btc_ex_display_simple_coex_info(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_coex_dm *coex_dm = &btc->coex_dm; + const struct btc_chip_para *chip_para = btc->chip_para; + struct btc_rfe_type *rfe_type = &btc->rfe_type; + struct btc_board_info *board_info = &btc->board_info; + + u8 *cli_buf = btc->cli_buf; + u32 bt_patch_ver = 0, bt_coex_ver = 0, val = 0; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n _____[BT Coexist info]____"); + CL_PRINTF(cli_buf); + + if (btc->manual_control) { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n __[Under Manual Control]_"); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n _________________________"); + CL_PRINTF(cli_buf); + } + + if (btc->stop_coex_dm) { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n ____[Coex is STOPPED]____"); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n _________________________"); + CL_PRINTF(cli_buf); + } + + if (!coex_sta->bt_disabled && + (coex_sta->bt_supported_version == 0 || + coex_sta->bt_supported_version == 0xffff) && + coex_sta->cnt_wl[BTC_CNT_WL_COEXINFO2] % 3 == 0) { + btc->btc_get(btc, BTC_GET_U4_SUPPORTED_FEATURE, + &coex_sta->bt_supported_feature); + + btc->btc_get(btc, BTC_GET_U4_SUPPORTED_VERSION, + &coex_sta->bt_supported_version); + + val = btc->btc_get_bt_reg(btc, 3, 0xac); + coex_sta->bt_reg_vendor_ac = (u16)(val & 0xffff); + + val = btc->btc_get_bt_reg(btc, 3, 0xae); + coex_sta->bt_reg_vendor_ae = (u16)(val & 0xffff); + + btc->btc_get(btc, BTC_GET_U4_BT_PATCH_VER, &bt_patch_ver); + btc->bt_info.bt_get_fw_ver = bt_patch_ver; + } + + /* BT coex. info. */ + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %d/ %d/ %s / %d", + "Ant PG Num/ Mech/ Pos/ RFE", board_info->pg_ant_num, + board_info->btdm_ant_num, + (board_info->btdm_ant_pos == + BTC_ANTENNA_AT_MAIN_PORT ? "Main" : "Aux"), + rfe_type->rfe_module_type); + CL_PRINTF(cli_buf); + + bt_coex_ver = ((coex_sta->bt_supported_version & 0xff00) >> 8); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %d_%02x/ %d_%02x/ 0x%02x/ 0x%02x (%s)", + "Ver Coex/ Para/ BT_Dez/ BT_Rpt", + coex_ver_date, coex_ver, chip_para->para_ver_date, + chip_para->para_ver, chip_para->bt_desired_ver, bt_coex_ver, + (bt_coex_ver == 0xff ? "Unknown" : + (coex_sta->bt_disabled ? "BT-disable" : + (bt_coex_ver >= chip_para->bt_desired_ver ? + "Match" : "Mis-Match")))); + CL_PRINTF(cli_buf); + + /* BT Status */ + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s", "BT status", + ((coex_sta->bt_disabled) ? ("disabled") : + ((coex_sta->bt_inq_page) ? ("inquiry/page") : + ((coex_dm->bt_status == BTC_BTSTATUS_NCON_IDLE) ? + "non-connected idle" : + ((coex_dm->bt_status == BTC_BTSTATUS_CON_IDLE) ? + "connected-idle" : "busy"))))); + CL_PRINTF(cli_buf); + + /* HW Settings */ + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d", + "0x770(Hi-pri rx/tx)", coex_sta->hi_pri_rx, + coex_sta->hi_pri_tx); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d %s", + "0x774(Lo-pri rx/tx)", coex_sta->lo_pri_rx, + coex_sta->lo_pri_tx, (coex_sta->bt_slave ? + "(Slave!!)" : "")); + CL_PRINTF(cli_buf); + + coex_sta->cnt_wl[BTC_CNT_WL_COEXINFO2]++; +} + +void rtw_btc_ex_display_coex_info(struct btc_coexist *btc) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_coex_dm *coex_dm = &btc->coex_dm; + const struct btc_chip_para *chip_para = btc->chip_para; + struct btc_rfe_type *rfe_type = &btc->rfe_type; + struct btc_board_info *board_info = &btc->board_info; + + u8 *cli_buf = btc->cli_buf, i, ps_tdma_case = 0; + u16 scbd; + u32 phy_ver = 0, fw_ver = 0, + bt_coex_ver = 0, val = 0, + fa_ofdm, fa_cck, cca_ofdm, cca_cck, + ok_11b, ok_11g, ok_11n, ok_11vht, + err_11b, err_11g, err_11n, err_11vht, + scbd_32, bt_slot_max , bt_slot_min, bt_slot_sum = 0; + boolean is_bt_reply = FALSE; + u8 * const p = &coex_sta->bt_afh_map[0]; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n ============[BT Coexist info %s]============", + chip_para->chip_name); + CL_PRINTF(cli_buf); + + if (btc->manual_control) { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n ============[Under Manual Control]============"); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n =========================================="); + CL_PRINTF(cli_buf); + } else if (btc->stop_coex_dm) { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n ============[Coex is STOPPED]============"); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n =========================================="); + CL_PRINTF(cli_buf); + } else if (coex_sta->coex_freeze) { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n ============[coex_freeze]============"); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n =========================================="); + CL_PRINTF(cli_buf); + } + + if (!coex_sta->bt_disabled && + coex_sta->cnt_wl[BTC_CNT_WL_COEXINFO1] % 3 == 0) { + if (coex_sta->bt_supported_version == 0 || + coex_sta->bt_supported_version == 0xffff) { + btc->btc_get(btc, BTC_GET_U4_SUPPORTED_VERSION, + &coex_sta->bt_supported_version); + + if (coex_sta->bt_supported_version > 0 && + coex_sta->bt_supported_version < 0xffff) + is_bt_reply = TRUE; + } else { + is_bt_reply = TRUE; + } + + if (coex_dm->bt_status != BTC_BTSTATUS_NCON_IDLE) { + btc->btc_get_bt_afh_map_from_bt(btc, 0, p); + val = btc->btc_get_bt_reg(btc, 1, 0xa); + coex_sta->bt_reg_modem_a = (u16)((val & 0x1c0) >> 6); + val = btc->btc_get_bt_reg(btc, 0, 0x2); + coex_sta->bt_reg_rf_2 = (u16)val; + } + } + + if (is_bt_reply) { + if (coex_sta->bt_supported_feature == 0) { + btc->btc_get(btc, BTC_GET_U4_SUPPORTED_FEATURE, + &coex_sta->bt_supported_feature); + + if (coex_sta->bt_supported_feature & BIT(11)) + coex_sta->bt_slave_latency = TRUE; + else + coex_sta->bt_slave_latency = FALSE; + } + + if (strcmp(btc->chip_para->chip_name, "8723f") == 0) { + /*8723f cannot read ae because ALIGNMENT_UNIT = 4byte + 8723f should read bt vendor reg 0xdac*/ + if (coex_sta->bt_reg_vendor_dac == 0xffffffff) { + val = btc->btc_get_bt_reg(btc, 3, 0xdac); + coex_sta->bt_reg_vendor_dac = val; + } + } else { + if (coex_sta->bt_reg_vendor_ac == 0xffff) { + val = btc->btc_get_bt_reg(btc, 3, 0xac); + coex_sta->bt_reg_vendor_ac = (u16)(val & 0xffff); + } + + if (coex_sta->bt_reg_vendor_ae == 0xffff) { + val = btc->btc_get_bt_reg(btc, 3, 0xae); + coex_sta->bt_reg_vendor_ae = (u16)(val & 0xffff); + } + } + + val = btc->btc_get_bt_reg(btc, 4, 0x200); + coex_sta->bt_reg_le_200 = (u16)(val & 0xffff); + + if (btc->bt_info.bt_get_fw_ver == 0) + btc->btc_get(btc, BTC_GET_U4_BT_PATCH_VER, + &btc->bt_info.bt_get_fw_ver); + + if (coex_sta->bt_a2dp_exist && + coex_sta->bt_a2dp_vendor_id == 0 && + coex_sta->bt_a2dp_device_name == 0) { + btc->btc_get(btc, BTC_GET_U4_BT_DEVICE_INFO, &val); + coex_sta->bt_a2dp_vendor_id = (u8)(val & 0xff); + coex_sta->bt_a2dp_device_name = (val & 0xffffff00) >> 8; + } + + if (coex_sta->bt_a2dp_exist && + coex_sta->bt_a2dp_flush_time == 0) { + btc->btc_get(btc, BTC_GET_U4_BT_A2DP_FLUSH_VAL, &val); + coex_sta->bt_a2dp_flush_time = val; + } + } + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %s/ %s / %d/ %d", + "Ant PG Num/ Mech/ Pos/ RFE/ Dist", board_info->pg_ant_num, + (board_info->btdm_ant_num == 1 ? "Shared" : "Non-Shared"), + (board_info->btdm_ant_pos == BTC_ANTENNA_AT_MAIN_PORT ? + "Main" : "Aux"), rfe_type->rfe_module_type, + board_info->ant_distance); + CL_PRINTF(cli_buf); + + btc->btc_get(btc, BTC_GET_U4_WIFI_FW_VER, &fw_ver); + btc->btc_get(btc, BTC_GET_U4_WIFI_PHY_VER, &phy_ver); + bt_coex_ver = ((coex_sta->bt_supported_version & 0xff00) >> 8); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %d_%02x/ %d_%02x/ 0x%02x/ 0x%02x (%s)", + "Ver Coex/ Para/ BT_Dez/ BT_Rpt", + coex_ver_date, coex_ver, chip_para->para_ver_date, + chip_para->para_ver, chip_para->bt_desired_ver, bt_coex_ver, + (bt_coex_ver == 0xff ? "Unknown" : + (coex_sta->bt_disabled ? "BT-disable" : + (bt_coex_ver >= chip_para->bt_desired_ver ? + "Match" : "Mis-Match")))); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = 0x%x(%s)/ 0x%08x/ v%d/ %c", + "W_FW/ B_FW/ Phy/ Kt", fw_ver, + (fw_ver >= chip_para->wl_desired_ver ? "Match" : "Mis-Match"), + btc->bt_info.bt_get_fw_ver, phy_ver, coex_sta->kt_ver + 65); + CL_PRINTF(cli_buf); + + /* wifi status */ + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s", + "============[Wifi Status]============"); + CL_PRINTF(cli_buf); + btc->btc_disp_dbg_msg(btc, BTC_DBG_DISP_WIFI_STATUS); + + /*EXT CHIP status*/ + if (btc->board_info.ext_chip_id != BTC_EXT_CHIP_NONE) { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s", + "============[EXT CHIP Status]============"); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s/ %s", + "EXT CHIP ID/EXT CHIP mode", + ((btc->board_info.ext_chip_id == + BTC_EXT_CHIP_RF4CE) ? "RF4CE" : "unknown"), + ((coex_sta->ext_chip_mode == + BTC_EXTMODE_VOICE) ? "VOICE" : "NORMAL")); + CL_PRINTF(cli_buf); + } + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s", + "============[BT Status]============"); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s/ %ddBm/ %d/ %d", + "BT status/ rssi/ retryCnt/ popCnt", + ((coex_sta->bt_disabled) ? ("disabled") : + ((coex_sta->bt_inq_page) ? ("inquiry-page") : + ((coex_dm->bt_status == BTC_BTSTATUS_NCON_IDLE) ? + "non-connecte-idle" : ((coex_dm->bt_status == + BTC_BTSTATUS_CON_IDLE) ? "connected-idle" : "busy")))), + coex_sta->bt_rssi - 100, coex_sta->cnt_bt[BTC_CNT_BT_RETRY], + coex_sta->cnt_bt[BTC_CNT_BT_POPEVENT]); + CL_PRINTF(cli_buf); + + if (coex_sta->bt_profile_num != 0) { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %s%s%s%s%s%s (multilink = %d)", + "Profiles", ((coex_sta->bt_a2dp_exist) ? + ((coex_sta->bt_a2dp_sink) ? "A2DP sink," : + "A2DP,") : ""), + ((coex_sta->bt_hfp_exist) ? "HFP," : ""), + ((coex_sta->bt_hid_exist) ? + ((coex_sta->bt_ble_exist) ? "HID(RCU)" : + ((coex_sta->bt_hid_slot >= 2) ? "HID(4/18)," : + (coex_sta->bt_ble_hid_exist ? "HID(BLE)" : + "HID(2/18),"))) : ""), ((coex_sta->bt_pan_exist) ? + ((coex_sta->bt_opp_exist) ? "OPP," : "PAN,") : + ""), ((coex_sta->bt_ble_voice) ? "Voice," : ""), + ((coex_sta->bt_msft_mr_exist) ? "MR" : ""), + coex_sta->bt_multi_link); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %d/ %d/ %d/ %d", + "SUT Power[3:0]", + coex_sta->bt_sut_pwr_lvl[3], + coex_sta->bt_sut_pwr_lvl[2], + coex_sta->bt_sut_pwr_lvl[1], + coex_sta->bt_sut_pwr_lvl[0]); + + CL_PRINTF(cli_buf); + } else { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s", + "Profiles", + (coex_sta->bt_msft_mr_exist) ? "MR" : "None"); + + CL_PRINTF(cli_buf); + } + + /* for 8822b, Scoreboard[10]: 0: CQDDR off, 1: CQDDR on + * for 8822c, Scoreboard[10]: 0: CQDDR on, 1:CQDDR fix 2M + */ + + if (coex_sta->bt_a2dp_exist) { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %s/ %d/ 0x%x/ 0x%x/ %d", + "CQDDR/Bitpool/V_ID/D_name/Flush", + (chip_para->new_scbd10_def ? + ((coex_sta->bt_fix_2M) ? "fix_2M" : "CQDDR_On") : + ((coex_sta->bt_fix_2M) ? "CQDDR_On" : "CQDDR_Off")), + coex_sta->bt_a2dp_bitpool, + coex_sta->bt_a2dp_vendor_id, + coex_sta->bt_a2dp_device_name, + coex_sta->bt_a2dp_flush_time); + + CL_PRINTF(cli_buf); + } + + if (coex_sta->bt_hid_exist) { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d", + "HID PairNum", coex_sta->bt_hid_pair_num); + CL_PRINTF(cli_buf); + } + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s/ %d/ %s/ 0x%x", + "Role/RoleSwCnt/IgnWla/Feature", + ((coex_sta->bt_slave) ? "Slave" : "Master"), + coex_sta->cnt_bt[BTC_CNT_BT_ROLESWITCH], + ((coex_dm->cur_ignore_wlan_act) ? "Yes" : "No"), + coex_sta->bt_supported_feature); + CL_PRINTF(cli_buf); + + if (coex_sta->bt_ble_scan_en) { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x", + "BLEScan Type/TV/Init/Ble", + coex_sta->bt_ble_scan_type, + (coex_sta->bt_ble_scan_type & 0x1 ? + coex_sta->bt_ble_scan_para[0] : 0x0), + (coex_sta->bt_ble_scan_type & 0x2 ? + coex_sta->bt_ble_scan_para[1] : 0x0), + (coex_sta->bt_ble_scan_type & 0x4 ? + coex_sta->bt_ble_scan_para[2] : 0x0)); + CL_PRINTF(cli_buf); + } + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %d/ %d/ %d/ %d/ %d/ %d/ %d %s", + "Init/ReLink/IgnWl/Pag/Inq/iqkO/iqkX", + coex_sta->cnt_bt[BTC_CNT_BT_REINIT], + coex_sta->cnt_bt[BTC_CNT_BT_SETUPLINK], + coex_sta->cnt_bt[BTC_CNT_BT_IGNWLANACT], + coex_sta->cnt_bt[BTC_CNT_BT_PAGE], + coex_sta->cnt_bt[BTC_CNT_BT_INQ], + coex_sta->cnt_bt[BTC_CNT_BT_IQK], + coex_sta->cnt_bt[BTC_CNT_BT_IQKFAIL], + (coex_sta->bt_setup_link ? "(Relink!!)" : "")); + CL_PRINTF(cli_buf); + + if (coex_sta->bt_reg_vendor_ae != 0xffff || + coex_sta->bt_reg_vendor_ac != 0xffff || + coex_sta->bt_reg_vendor_dac != 0xffffffff) { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x/ 0x%x/ %s", + "ae/ac/dac/m_a[8:6]/ScBd(B->W)/path", + coex_sta->bt_reg_vendor_ae, + coex_sta->bt_reg_vendor_ac, + coex_sta->bt_reg_vendor_dac, + coex_sta->bt_reg_modem_a, + ((chip_para->scbd_bit_num == BTC_SCBD_16_BIT) ? + btc->btc_read_scbd(btc, &scbd) : + btc->btc_read_scbd_32bit(btc, &scbd_32)), + ((coex_sta->bt_reg_vendor_ae & BIT(4)) ? "S1" : "S0" + )); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = 0x%x/ 0x%x", + "rf_2/rf_9", + coex_sta->bt_reg_rf_2, + coex_sta->bt_reg_rf_9); + } else { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = x/ x/ x/ 0x%x", + "0xae[4]/0xac[1:0]/0xdac/ScBd(B->W)", + ((chip_para->scbd_bit_num == BTC_SCBD_16_BIT) ? + btc->btc_read_scbd(btc, &scbd) : + btc->btc_read_scbd_32bit(btc, &scbd_32))); + } + CL_PRINTF(cli_buf); + + /* COEX-662: LE reg 0x200[3:0] -> forbidden slot num */ + if (coex_sta->bt_reg_le_200 == 0xffff) + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = x", + "LE_FBDSLT_num"); + else + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = 0x%x", + "LE_FBDSLT_num", + coex_sta->bt_reg_le_200 & 0xf); + CL_PRINTF(cli_buf); + + if (coex_dm->bt_status != BTC_BTSTATUS_NCON_IDLE) { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %02x%02x%02x%02x %02x%02x%02x%02x %02x%02x", + "AFH MAP", coex_sta->bt_afh_map[0], + coex_sta->bt_afh_map[1], coex_sta->bt_afh_map[2], + coex_sta->bt_afh_map[3], coex_sta->bt_afh_map[4], + coex_sta->bt_afh_map[5], coex_sta->bt_afh_map[6], + coex_sta->bt_afh_map[7], coex_sta->bt_afh_map[8], + coex_sta->bt_afh_map[9]); + CL_PRINTF(cli_buf); + } + + for (i = 0; i < BTC_BTINFO_SRC_BT_IQK; i++) { + if (coex_sta->cnt_bt_info_c2h[i]) { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %02x %02x %02x %02x %02x %02x %02x (%d)", + glbt_info_src[i], + coex_sta->bt_info_c2h[i][0], + coex_sta->bt_info_c2h[i][1], + coex_sta->bt_info_c2h[i][2], + coex_sta->bt_info_c2h[i][3], + coex_sta->bt_info_c2h[i][4], + coex_sta->bt_info_c2h[i][5], + coex_sta->bt_info_c2h[i][6], + coex_sta->cnt_bt_info_c2h[i]); + CL_PRINTF(cli_buf); + } + } + + if (btc->manual_control) { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s", + "============[mechanisms] (under Manual)============"); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %02x %02x %02x %02x %02x", + "TDMA_Now", + coex_dm->fw_tdma_para[0], coex_dm->fw_tdma_para[1], + coex_dm->fw_tdma_para[2], coex_dm->fw_tdma_para[3], + coex_dm->fw_tdma_para[4]); + CL_PRINTF(cli_buf); + } else { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s", + "============[Mechanisms]============"); + CL_PRINTF(cli_buf); + + ps_tdma_case = coex_dm->cur_ps_tdma; + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %02x %02x %02x %02x %02x (case-%d, TDMA-%s, Ext-%d, Tog-%d)", + "TDMA", + coex_dm->ps_tdma_para[0], coex_dm->ps_tdma_para[1], + coex_dm->ps_tdma_para[2], coex_dm->ps_tdma_para[3], + coex_dm->ps_tdma_para[4], ps_tdma_case, + (coex_dm->cur_ps_tdma_on ? "On" : "Off"), + coex_sta->bt_ext_autoslot_thres, + coex_sta->wl_toggle_interval); + CL_PRINTF(cli_buf); + } + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s/ %s/ %d", + "Coex_Mode/Free_Run/Timer_base", + coex_mode_string[coex_sta->wl_coex_mode], + ((coex_sta->coex_freerun) ? "Yes" : "No"), + coex_sta->tdma_timer_base); + + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %d/ 0x%x/ 0x%x/ 0x%x", + "Table/0x6c0/0x6c4/0x6c8", coex_sta->coex_table_type, + btc->btc_read_4byte(btc, REG_BT_COEX_TABLE0), + btc->btc_read_4byte(btc, REG_BT_COEX_TABLE1), + btc->btc_read_4byte(btc, REG_BT_COEX_BRK_TABLE)); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ %d/ %s", + "0x778/0x6cc/ScBd(W->B)/RunCnt/Rsn", + btc->btc_read_1byte(btc, REG_BT_STAT_CTRL), + btc->btc_read_4byte(btc, REG_BT_COEX_TABLE_H), + ((chip_para->scbd_bit_num == BTC_SCBD_16_BIT) ? + coex_sta->score_board_WB : coex_sta->score_board_WB_32bit), + coex_sta->cnt_wl[BTC_CNT_WL_COEXRUN], + run_reason_string[coex_sta->coex_run_reason]); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %02x %02x %02x (RF-Ch = %d)", "AFH Map to BT", + coex_dm->wl_chnl_info[0], coex_dm->wl_chnl_info[1], + coex_dm->wl_chnl_info[2], coex_sta->wl_center_ch); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s/ %s/ %s/ %d", + "AntDiv/BtCtrlLPS/LPRA/g_busy", + ((board_info->ant_div_cfg) ? "On" : "Off"), + ((coex_sta->wl_force_lps_ctrl) ? "On" : "Off"), + ((coex_dm->cur_low_penalty_ra) ? "On" : "Off"), + coex_sta->wl_gl_busy); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d/ %d/ %d", + "Null All/Retry/Ack/BT_Empty/BT_Late", + coex_sta->wl_fw_dbg_info[1], coex_sta->wl_fw_dbg_info[2], + coex_sta->wl_fw_dbg_info[3], coex_sta->wl_fw_dbg_info[4], + coex_sta->wl_fw_dbg_info[5]); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %s/ %d", + "Cnt TDMA_Togg/LkRx/LKAP_On/fw", + coex_sta->wl_fw_dbg_info[6], + coex_sta->wl_fw_dbg_info[7], + ((coex_sta->wl_leak_ap) ? "Yes" : "No"), + coex_sta->cnt_wl[BTC_CNT_WL_FW_NOTIFY]); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %s/ %d", + "WL_TxPw/BT_TxPw/WL_Rx/BT_LNA_Lvl", + coex_dm->cur_wl_pwr_lvl, coex_dm->cur_bt_pwr_lvl, + ((coex_dm->cur_wl_rx_low_gain_en) ? "On" : "Off"), + coex_dm->cur_bt_lna_lvl); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %s", + "MIMO_PS On/Recover/BlackAP", + coex_sta->cnt_wl[BTC_CNT_WL_2G_FDDSTAY], + coex_sta->cnt_wl[BTC_CNT_WL_2G_TDDTRY], + ((coex_sta->wl_blacklist_ap) ? "Yes": "No")); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %02d %02d %02d %02d %02d %02d %02d %02d %02d %02d", + "BT slot length1 (ms)", + coex_dm->bt_slot_length1[0], coex_dm->bt_slot_length1[1], + coex_dm->bt_slot_length1[2], coex_dm->bt_slot_length1[3], + coex_dm->bt_slot_length1[4], coex_dm->bt_slot_length1[5], + coex_dm->bt_slot_length1[6], coex_dm->bt_slot_length1[7], + coex_dm->bt_slot_length1[8], coex_dm->bt_slot_length1[9]); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %02d %02d %02d %02d %02d %02d %02d %02d %02d %02d", + "BT slot length2 (ms)", + coex_dm->bt_slot_length2[0], coex_dm->bt_slot_length2[1], + coex_dm->bt_slot_length2[2], coex_dm->bt_slot_length2[3], + coex_dm->bt_slot_length2[4], coex_dm->bt_slot_length2[5], + coex_dm->bt_slot_length2[6], coex_dm->bt_slot_length2[7], + coex_dm->bt_slot_length2[8], coex_dm->bt_slot_length2[9]); + CL_PRINTF(cli_buf); + + for(i = 0; i < 10; i++){ + bt_slot_sum += coex_dm->bt_slot_length1[i]; + bt_slot_sum += coex_dm->bt_slot_length2[i]; + } + + bt_slot_min = coex_dm->bt_slot_length1[0]; + for(i = 0; i < 10; i++){ + if (bt_slot_min > coex_dm->bt_slot_length1[i]) + bt_slot_min = coex_dm->bt_slot_length1[i]; + if (bt_slot_min > coex_dm->bt_slot_length2[i]) + bt_slot_min = coex_dm->bt_slot_length2[i]; + } + + bt_slot_max = coex_dm->bt_slot_length1[0]; + for(i = 0; i < 10; i++){ + if (bt_slot_max < coex_dm->bt_slot_length1[i]) + bt_slot_max = coex_dm->bt_slot_length1[i]; + if (bt_slot_max < coex_dm->bt_slot_length2[i]) + bt_slot_max = coex_dm->bt_slot_length2[i]; + } + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %02d %02d %02d", + "BT slot avg/BT slot max/BT slot min", + bt_slot_sum/20, bt_slot_max, bt_slot_min); + CL_PRINTF(cli_buf); + + /* Hw setting */ + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s", + "============[Hw setting]============"); + CL_PRINTF(cli_buf); + + btc->chip_para->chip_setup(btc, BTC_CSETUP_COEXINFO_HW); + + fa_ofdm = btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_FA_OFDM); + fa_cck = btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_FA_CCK); + cca_ofdm = btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CCA_OFDM); + cca_cck = btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CCA_CCK); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %d/ %d/ %d/ %d", + "CCK-CCA/CCK-FA/OFDM-CCA/OFDM-FA", cca_cck, fa_cck, cca_ofdm, + fa_ofdm); + CL_PRINTF(cli_buf); + + ok_11b = + btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_OK_CCK); + ok_11g = + btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_OK_LEGACY); + ok_11n = + btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_OK_HT); + ok_11vht = + btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_OK_VHT); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d/ %d", + "CRC_OK CCK/11g/11n/11ac", ok_11b, ok_11g, ok_11n, ok_11vht); + CL_PRINTF(cli_buf); + + err_11b = + btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_ERROR_CCK); + err_11g = + btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_ERROR_LEGACY); + err_11n = + btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_ERROR_HT); + err_11vht = + btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_ERROR_VHT); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d/ %d", + "CRC_Err CCK/11g/11n/11ac", + err_11b, err_11g, err_11n, err_11vht); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %d/ %d/ %s-%d/ %d (Tx macid: %d)", + "Rate RxD/RxRTS/TxD/TxRetry_ratio", + coex_sta->wl_rx_rate, coex_sta->wl_rts_rx_rate, + (coex_sta->wl_tx_rate & 0x80 ? "SGI" : "LGI"), + coex_sta->wl_tx_rate & 0x7f, + coex_sta->wl_tx_retry_ratio, + coex_sta->wl_tx_macid); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s/ %s/ %s/ %d", + "HiPr/ Locking/ Locked/ Noisy", + (coex_sta->wl_hi_pri_task1 ? "Yes" : "No"), + (coex_sta->wl_cck_lock ? "Yes" : "No"), + (coex_sta->wl_cck_lock_ever ? "Yes" : "No"), + coex_sta->wl_noisy_level); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d", + "0x770(Hi-pri rx/tx)", coex_sta->hi_pri_rx, + coex_sta->hi_pri_tx); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d %s", + "0x774(Lo-pri rx/tx)", coex_sta->lo_pri_rx, + coex_sta->lo_pri_tx, (coex_sta->bt_slave ? + "(Slave!!)" : "")); + CL_PRINTF(cli_buf); + + btc->btc_disp_dbg_msg(btc, BTC_DBG_DISP_COEX_STATISTICS); + + coex_sta->cnt_wl[BTC_CNT_WL_COEXINFO1]++; + + if (coex_sta->cnt_wl[BTC_CNT_WL_COEXINFO1] % 5 == 0) + coex_sta->cnt_bt[BTC_CNT_BT_POPEVENT] = 0; +} + +void rtw_btc_ex_ips_notify(struct btc_coexist *btc, u8 type) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + const struct btc_chip_para *chip_para = btc->chip_para; + + if (btc->manual_control || btc->stop_coex_dm) + return; + + if (type == BTC_IPS_ENTER) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], IPS ENTER notify\n"); + BTC_TRACE(trace_buf); + coex_sta->wl_under_ips = TRUE; + + /* Write WL "Active" in Score-board for LPS off */ + if (chip_para->scbd_bit_num == BTC_SCBD_16_BIT) + btc->btc_write_scbd(btc, BTC_SCBD_ALL, FALSE); + else + btc->btc_write_scbd_32bit(btc, BTC_SCBD_ALL_32BIT, FALSE); + btc->chip_para->chip_setup(btc, BTC_CSETUP_WLAN_ACT_IPS); + rtw_btc_set_ant_path(btc, FC_EXCU, BTC_ANT_WOFF); + rtw_btc_action_coex_all_off(btc); + } else if (type == BTC_IPS_LEAVE) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], IPS LEAVE notify\n"); + BTC_TRACE(trace_buf); + if (chip_para->scbd_bit_num == BTC_SCBD_16_BIT) + btc->btc_write_scbd(btc, BTC_SCBD_ACTIVE | BTC_SCBD_ON, TRUE); + else + btc->btc_write_scbd_32bit(btc, BTC_SCBD_ACTIVE | BTC_SCBD_ON, TRUE); + /*leave IPS : run ini hw config (exclude wifi only)*/ + rtw_btc_init_hw_config(btc, FALSE); + + coex_sta->wl_under_ips = FALSE; + } +} + +void rtw_btc_ex_lps_notify(struct btc_coexist *btc, u8 type) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + const struct btc_chip_para *chip_para = btc->chip_para; + + if (btc->manual_control || btc->stop_coex_dm) + return; + + if (type == BTC_LPS_ENABLE) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], LPS ENABLE notify\n"); + BTC_TRACE(trace_buf); + coex_sta->wl_under_lps = TRUE; + + if (coex_sta->wl_force_lps_ctrl) { /* LPS No-32K */ + /* Write WL "Active" in Score-board for PS-TDMA */ + if (chip_para->scbd_bit_num == BTC_SCBD_16_BIT) + btc->btc_write_scbd(btc, BTC_SCBD_ACTIVE, TRUE); + else + btc->btc_write_scbd_32bit(btc, BTC_SCBD_ACTIVE, TRUE); + } else { + /* Write WL "Non-Active" in Score-board for Native-PS */ + if (chip_para->scbd_bit_num == BTC_SCBD_16_BIT) { + btc->btc_write_scbd(btc, BTC_SCBD_ACTIVE, FALSE); + btc->btc_write_scbd(btc, BTC_SCBD_WLBUSY, FALSE); + } else { + btc->btc_write_scbd_32bit(btc, BTC_SCBD_ACTIVE, FALSE); + btc->btc_write_scbd_32bit(btc, BTC_SCBD_WLBUSY, FALSE); + } + + rtw_btc_run_coex(btc, BTC_RSN_LPS); + } + } else if (type == BTC_LPS_DISABLE) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], LPS DISABLE notify\n"); + BTC_TRACE(trace_buf); + coex_sta->wl_under_lps = FALSE; + + /* Write WL "Active" in Score-board for LPS off */ + if (chip_para->scbd_bit_num == BTC_SCBD_16_BIT) + btc->btc_write_scbd(btc, BTC_SCBD_ACTIVE, TRUE); + else + btc->btc_write_scbd_32bit(btc, BTC_SCBD_ACTIVE, TRUE); + + if (!coex_sta->wl_force_lps_ctrl) + rtw_btc_query_bt_info(btc); + + rtw_btc_run_coex(btc, BTC_RSN_LPS); + } else if (type == BTC_LPS_PRE) { + /* COEX-649, prevent LeisurePSLeave() is called in LeisurePSEnter()*/ + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], LPS PRE notify(before enter LPS)\n"); + BTC_TRACE(trace_buf); + + coex_sta->wl_in_lps_enter = TRUE; + } else if (type == BTC_LPS_RET) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], LPS RET notify(LPS enter end)\n"); + BTC_TRACE(trace_buf); + + coex_sta->wl_in_lps_enter = FALSE; + rtw_btc_run_coex(btc, BTC_RSN_LPS); + } else { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], LPS unknown notify!!\n"); + BTC_TRACE(trace_buf); + } +} + +void rtw_btc_ex_scan_notify(struct btc_coexist *btc, u8 type) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + const struct btc_chip_para *chip_para = btc->chip_para; + + if (btc->manual_control || btc->stop_coex_dm) + return; + + coex_sta->coex_freeze = FALSE; + + if (chip_para->scbd_bit_num == BTC_SCBD_16_BIT) + btc->btc_write_scbd(btc, BTC_SCBD_ACTIVE | BTC_SCBD_ON, TRUE); + else + btc->btc_write_scbd_32bit(btc, BTC_SCBD_ACTIVE | BTC_SCBD_ON, TRUE); + + if (type == BTC_SCAN_START_5G) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], SCAN START notify (5G)\n"); + BTC_TRACE(trace_buf); + + rtw_btc_set_ant_path(btc, FC_EXCU, BTC_ANT_5G); + rtw_btc_run_coex(btc, BTC_RSN_5GSCANSTART); + } else if (type == BTC_SCAN_START_2G || type == BTC_SCAN_START) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], SCAN START notify (2G)\n"); + BTC_TRACE(trace_buf); + + coex_sta->wl_hi_pri_task2 = TRUE; + + /* Force antenna setup for no scan result issue */ + rtw_btc_set_ant_path(btc, FC_EXCU, BTC_ANT_2G); + rtw_btc_run_coex(btc, BTC_RSN_2GSCANSTART); + } else { + btc->btc_get(btc, BTC_GET_U1_AP_NUM, + &coex_sta->cnt_wl[BTC_CNT_WL_SCANAP]); + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], SCAN FINISH notify (Scan-AP = %d)\n", + coex_sta->cnt_wl[BTC_CNT_WL_SCANAP]); + BTC_TRACE(trace_buf); + + coex_sta->wl_hi_pri_task2 = FALSE; + + rtw_btc_run_coex(btc, BTC_RSN_SCANFINISH); + } +} + +void rtw_btc_ex_scan_notify_without_bt(struct btc_coexist *btc, u8 type) +{ + struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; + struct btc_rfe_type *rfe_type = &btc->rfe_type; + u8 ctrl_type = BTC_SWITCH_CTRL_BY_BBSW, pos_type = BTC_SWITCH_TO_WLG; + + if (!rfe_type->ant_switch_exist) + return; + + if (type == BTC_SCAN_START && link_info_ext->is_all_under_5g) + pos_type = BTC_SWITCH_TO_WLA; + + rtw_btc_set_ant_switch(btc, FC_EXCU, ctrl_type, pos_type); +} + +void rtw_btc_ex_switchband_notify(struct btc_coexist *btc, u8 type) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + + if (btc->manual_control || btc->stop_coex_dm) + return; + + if (type == BTC_SWITCH_TO_5G) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): TO_5G\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_run_coex(btc, BTC_RSN_5GSWITCHBAND); + } else if (type == BTC_SWITCH_TO_24G_NOFORSCAN) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): TO_24G_NOFORSCAN\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_run_coex(btc, BTC_RSN_2GSWITCHBAND); + } else { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): TO_2G\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_ex_scan_notify(btc, BTC_SCAN_START_2G); + } +} + +void rtw_btc_ex_switchband_notify_without_bt(struct btc_coexist *btc, u8 type) +{ + struct btc_rfe_type *rfe_type = &btc->rfe_type; + u8 ctrl_type = BTC_SWITCH_CTRL_BY_BBSW, pos_type = BTC_SWITCH_TO_WLG; + + if (!rfe_type->ant_switch_exist) + return; + + if (type == BTC_SWITCH_TO_5G) { + pos_type = BTC_SWITCH_TO_WLA; + } else if (type == BTC_SWITCH_TO_24G_NOFORSCAN) { + pos_type = BTC_SWITCH_TO_WLG; + } else { + rtw_btc_ex_scan_notify_without_bt(btc, BTC_SCAN_START_2G); + return; + } + + rtw_btc_set_ant_switch(btc, FC_EXCU, ctrl_type, pos_type); +} + +void rtw_btc_ex_connect_notify(struct btc_coexist *btc, u8 type) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + const struct btc_chip_para *chip_para = btc->chip_para; + + if (btc->manual_control || btc->stop_coex_dm) + return; + + if (chip_para->scbd_bit_num == BTC_SCBD_16_BIT) + btc->btc_write_scbd(btc, BTC_SCBD_ACTIVE | BTC_SCBD_ON, TRUE); + else + btc->btc_write_scbd_32bit(btc, BTC_SCBD_ACTIVE | BTC_SCBD_ON, TRUE); + + if (type == BTC_ASSOCIATE_5G_START) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): 5G start\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_set_ant_path(btc, FC_EXCU, BTC_ANT_5G); + + rtw_btc_run_coex(btc, BTC_RSN_5GCONSTART); + } else if (type == BTC_ASSOCIATE_5G_FINISH) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): 5G finish\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_set_ant_path(btc, FC_EXCU, BTC_ANT_5G); + + rtw_btc_run_coex(btc, BTC_RSN_5GCONFINISH); + } else if (type == BTC_ASSOCIATE_START) { + coex_sta->wl_hi_pri_task1 = TRUE; + coex_sta->cnt_wl[BTC_CNT_WL_ARP] = 0; + coex_sta->wl_connecting = TRUE; + btc->btc_set_timer(btc, BTC_TIMER_WL_CONNPKT, 2); + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): 2G start\n", __func__); + BTC_TRACE(trace_buf); + + /* Force antenna setup for no scan result issue */ + rtw_btc_set_ant_path(btc, FC_EXCU, BTC_ANT_2G); + + rtw_btc_run_coex(btc, BTC_RSN_2GCONSTART); + + /* To keep TDMA case during connect process, + * to avoid changed by Btinfo and run_coex + */ + coex_sta->coex_freeze = TRUE; + btc->btc_set_timer(btc, BTC_TIMER_WL_COEXFREEZE, 5); + } else { + coex_sta->wl_hi_pri_task1 = FALSE; + coex_sta->coex_freeze = FALSE; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): 2G finish\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_run_coex(btc, BTC_RSN_2GCONFINISH); + } +} + +void rtw_btc_ex_media_status_notify(struct btc_coexist *btc, u8 type) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + const struct btc_chip_para *chip_para = btc->chip_para; + boolean wl_b_mode = FALSE; + u8 i; + + if (btc->manual_control || btc->stop_coex_dm) + return; + + coex_sta->coex_freeze = FALSE; + + btc->btc_get(btc, BTC_GET_BL_WIFI_BSSID, btc->wifi_bssid); + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): BSSID = %02x %02X %02X %02x %02X %02X\n", + __func__, btc->wifi_bssid[0], + btc->wifi_bssid[1], btc->wifi_bssid[2], + btc->wifi_bssid[3], btc->wifi_bssid[4], + btc->wifi_bssid[5]); + BTC_TRACE(trace_buf); + + /* check if black-list ap */ + for (i = 0; i <= 5; i++) { + if (btc->wifi_bssid[i] != btc->wifi_black_bssid[i]) + break; + } + + if (i <= 5) + coex_sta->wl_blacklist_ap = FALSE; + else + coex_sta->wl_blacklist_ap = TRUE; + + if (type == BTC_MEDIA_CONNECT_5G) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): 5G\n", __func__); + BTC_TRACE(trace_buf); + + if (chip_para->scbd_bit_num == BTC_SCBD_16_BIT) + btc->btc_write_scbd(btc, BTC_SCBD_ACTIVE, TRUE); + else + btc->btc_write_scbd_32bit(btc, BTC_SCBD_ACTIVE, TRUE); + rtw_btc_set_ant_path(btc, FC_EXCU, BTC_ANT_5G); + + rtw_btc_run_coex(btc, BTC_RSN_5GMEDIA); + } else if (type == BTC_MEDIA_CONNECT) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): 2G\n", __func__); + BTC_TRACE(trace_buf); + + if (chip_para->scbd_bit_num == BTC_SCBD_16_BIT) + btc->btc_write_scbd(btc, BTC_SCBD_ACTIVE, TRUE); + else + btc->btc_write_scbd_32bit(btc, BTC_SCBD_ACTIVE, TRUE); + + /* Force antenna setup for no scan result issue */ + rtw_btc_set_ant_path(btc, FC_EXCU, BTC_ANT_2G); + + btc->btc_get(btc, BTC_GET_BL_WIFI_UNDER_B_MODE, &wl_b_mode); + + /* Set CCK Tx/Rx high Pri except 11b mode */ + if (wl_b_mode)/* CCK Rx */ + rtw_btc_set_wl_pri_mask(btc, BTC_WLPRI_RX_CCK, 0); + else /* CCK Rx */ + rtw_btc_set_wl_pri_mask(btc, BTC_WLPRI_RX_CCK, 1); + + rtw_btc_run_coex(btc, BTC_RSN_2GMEDIA); + } else { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): disconnect!!\n", __func__); + BTC_TRACE(trace_buf); + coex_sta->cnt_wl[BTC_CNT_WL_ARP] = 0; + + rtw_btc_run_coex(btc, BTC_RSN_MEDIADISCON); + } + + btc->btc_get(btc, BTC_GET_U1_IOT_PEER, &coex_sta->wl_iot_peer); + rtw_btc_update_wl_ch_info(btc, type); +} + +void rtw_btc_ex_specific_packet_notify(struct btc_coexist *btc, u8 type) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + boolean under_4way = FALSE; + + if (btc->manual_control || btc->stop_coex_dm) + return; + + if (type & BTC_5G_BAND) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): 5G\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_run_coex(btc, BTC_RSN_5GSPECIALPKT); + return; + } + + btc->btc_get(btc, BTC_GET_BL_WIFI_4_WAY_PROGRESS, &under_4way); + + if (under_4way) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): under_4way!!\n", __func__); + BTC_TRACE(trace_buf); + + coex_sta->wl_hi_pri_task1 = TRUE; + btc->btc_set_timer(btc, BTC_TIMER_WL_SPECPKT, 2); + } else if (type == BTC_PACKET_ARP) { + coex_sta->cnt_wl[BTC_CNT_WL_ARP]++; + + if (coex_sta->wl_hi_pri_task1) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): ARP cnt = %d\n", + __func__, coex_sta->cnt_wl[BTC_CNT_WL_ARP]); + BTC_TRACE(trace_buf); + } + } else { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): DHCP or EAPOL Type = %d\n", + __func__, type); + BTC_TRACE(trace_buf); + + coex_sta->wl_hi_pri_task1 = TRUE; + btc->btc_set_timer(btc, BTC_TIMER_WL_SPECPKT, 2); + } + + if (coex_sta->wl_hi_pri_task1) + rtw_btc_run_coex(btc, BTC_RSN_2GSPECIALPKT); +} + +void rtw_btc_ex_bt_info_notify(struct btc_coexist *btc, u8 *tmp_buf, u8 length) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_coex_dm *coex_dm = &btc->coex_dm; + struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; + u8 i, rsp_source = 0, type; + + rsp_source = tmp_buf[0] & 0xf; + if (rsp_source >= BTC_BTINFO_SRC_MAX) + return; + + /* COEX-649, prevent TDMA parametet change in LeisurePSEnter()*/ + if (coex_sta->wl_in_lps_enter) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): wl_in_LPSenter = %d\n", + __func__, coex_sta->wl_in_lps_enter); + BTC_TRACE(trace_buf); + } + + coex_sta->cnt_bt_info_c2h[rsp_source]++; + + /* bt_iqk_state-> 1: start, 0: ok, 2:fail */ + if (rsp_source == BTC_BTINFO_SRC_BT_IQK) { + coex_sta->bt_iqk_state = tmp_buf[1]; + if (coex_sta->bt_iqk_state == 0x0) + coex_sta->cnt_bt[BTC_CNT_BT_IQK]++; + else if (coex_sta->bt_iqk_state == 0x2) + coex_sta->cnt_bt[BTC_CNT_BT_IQKFAIL]++; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], BT IQK by bt_info, data0 = 0x%02x\n", + tmp_buf[1]); + BTC_TRACE(trace_buf); + return; + } + + if (rsp_source == BTC_BTINFO_SRC_BT_SCBD) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], BT Scoreboard change notify by WL FW c2h, 0xaa = 0x%02x, 0xab = 0x%02x\n", + tmp_buf[1], tmp_buf[2]); + BTC_TRACE(trace_buf); + rtw_btc_monitor_bt_enable(btc); + + if (coex_sta->bt_disabled != coex_sta->bt_disabled_pre) { + coex_sta->bt_disabled_pre = coex_sta->bt_disabled; + rtw_btc_run_coex(btc, BTC_RSN_BTINFO); + } + return; + } + + if (rsp_source == BTC_BTINFO_SRC_H2C60) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], H2C 0x60 content replied by WL FW: H2C_0x60 = [%02x %02x %02x %02x %02x]\n", + tmp_buf[1], tmp_buf[2], tmp_buf[3], tmp_buf[4], + tmp_buf[5]); + BTC_TRACE(trace_buf); + + for (i = 1; i <= 5; i++) + coex_dm->fw_tdma_para[i - 1] = tmp_buf[i]; + return; + } + + if (rsp_source == BTC_BTINFO_SRC_WL_FW) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], bt_info reply by WL FW\n"); + BTC_TRACE(trace_buf); + rtw_btc_update_bt_link_info(btc); + /* rtw_btc_run_coex(btc, BTC_RSN_BTINFO); */ + return; + } + + if (rsp_source == BTC_BTINFO_SRC_BT_RSP || + rsp_source == BTC_BTINFO_SRC_BT_ACT) { + if (coex_sta->bt_disabled) { + coex_sta->bt_disabled = FALSE; + coex_sta->bt_reenable = TRUE; + btc->btc_set_timer(btc, BTC_TIMER_BT_REENABLE, 15); + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], BT enable detected by bt_info\n"); + BTC_TRACE(trace_buf); + } + } + + if (rsp_source == BTC_BTINFO_SRC_BT_SLOT1) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], BT slot length = [%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x]\n", + tmp_buf[1], tmp_buf[2], tmp_buf[3], tmp_buf[4], + tmp_buf[5], tmp_buf[6], tmp_buf[7], tmp_buf[8], + tmp_buf[9], tmp_buf[10]); + BTC_TRACE(trace_buf); + + for (i = 1; i <= 10; i++) + coex_dm->bt_slot_length1[i - 1] = tmp_buf[i]; + return; + } + + if (rsp_source == BTC_BTINFO_SRC_BT_SLOT2) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], BT slot length = [%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x]\n", + tmp_buf[1], tmp_buf[2], tmp_buf[3], tmp_buf[4], + tmp_buf[5], tmp_buf[6], tmp_buf[7], tmp_buf[8], + tmp_buf[9], tmp_buf[10]); + BTC_TRACE(trace_buf); + + for (i = 1; i <= 10; i++) + coex_dm->bt_slot_length2[i - 1] = tmp_buf[i]; + return; + } + + if (length != 7) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], Bt_info length = %d invalid!!\n", + length); + BTC_TRACE(trace_buf); + return; + } + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], Bt_info[%d], len=%d, data=[%02x %02x %02x %02x %02x %02x]\n", + tmp_buf[0], length, tmp_buf[1], tmp_buf[2], tmp_buf[3], + tmp_buf[4], tmp_buf[5], tmp_buf[6]); + BTC_TRACE(trace_buf); + + for (i = 0; i < 7; i++) + coex_sta->bt_info_c2h[rsp_source][i] = tmp_buf[i]; + + if (coex_sta->bt_info_c2h[rsp_source][1] == coex_sta->bt_info_lb2 && + coex_sta->bt_info_c2h[rsp_source][2] == coex_sta->bt_info_lb3 && + coex_sta->bt_info_c2h[rsp_source][3] == coex_sta->bt_info_hb0 && + coex_sta->bt_info_c2h[rsp_source][4] == coex_sta->bt_info_hb1 && + coex_sta->bt_info_c2h[rsp_source][5] == coex_sta->bt_info_hb2 && + coex_sta->bt_info_c2h[rsp_source][6] == coex_sta->bt_info_hb3) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], Return because Btinfo duplicate!!\n"); + BTC_TRACE(trace_buf); + return; + } + + coex_sta->bt_info_lb2 = coex_sta->bt_info_c2h[rsp_source][1]; + coex_sta->bt_info_lb3 = coex_sta->bt_info_c2h[rsp_source][2]; + coex_sta->bt_info_hb0 = coex_sta->bt_info_c2h[rsp_source][3]; + coex_sta->bt_info_hb1 = coex_sta->bt_info_c2h[rsp_source][4]; + coex_sta->bt_info_hb2 = coex_sta->bt_info_c2h[rsp_source][5]; + coex_sta->bt_info_hb3 = coex_sta->bt_info_c2h[rsp_source][6]; + + /* ========== BT info Low-Byte2 ========== */ + /* if 0xff, it means BT is under WHCK test */ + coex_sta->bt_whck_test = (coex_sta->bt_info_lb2 == 0xff); + coex_sta->bt_inq_page = ((coex_sta->bt_info_lb2 & BIT(2)) == BIT(2)); + + if (coex_sta->bt_inq_page_pre != coex_sta->bt_inq_page) { + coex_sta->bt_inq_page_pre = coex_sta->bt_inq_page; + coex_sta->bt_inq_page_remain = TRUE; + + if (!coex_sta->bt_inq_page) + btc->btc_set_timer(btc, BTC_TIMER_BT_INQPAGE, 2); + } + coex_sta->bt_acl_busy = ((coex_sta->bt_info_lb2 & BIT(3)) == BIT(3)); + + if (coex_sta->bt_info_lb2 & BIT(5)) { + if ((coex_sta->bt_info_hb1 & BIT(0)) == BIT(0)) { + /*BLE HID*/ + coex_sta->bt_ble_hid_exist = TRUE; + coex_sta->bt_ble_exist = FALSE; + } + } else if ((coex_sta->bt_info_hb1 & BIT(0)) == BIT(0)) { + /*RCU*/ + coex_sta->bt_ble_exist = TRUE; + } else { + coex_sta->bt_ble_hid_exist = FALSE; + coex_sta->bt_ble_exist = FALSE; + } + + /* ========== BT info Low-Byte3 ========== */ + coex_sta->cnt_bt[BTC_CNT_BT_RETRY] = coex_sta->bt_info_lb3 & 0xf; + + if (coex_sta->cnt_bt[BTC_CNT_BT_RETRY] >= 1) + coex_sta->cnt_bt[BTC_CNT_BT_POPEVENT]++; + + coex_sta->bt_fix_2M = ((coex_sta->bt_info_lb3 & BIT(4)) == BIT(4)); + + coex_sta->bt_inq = ((coex_sta->bt_info_lb3 & BIT(5)) == BIT(5)); + + coex_sta->bt_mesh = ((coex_sta->bt_info_lb3 & BIT(6)) == BIT(6)); + + if (coex_sta->bt_inq) + coex_sta->cnt_bt[BTC_CNT_BT_INQ]++; + + coex_sta->bt_page = ((coex_sta->bt_info_lb3 & BIT(7)) == BIT(7)); + + if (coex_sta->bt_page) + coex_sta->cnt_bt[BTC_CNT_BT_PAGE]++; + + /* ========== BT info High-Byte0 ========== */ + /* unit: %, value-100 to translate to unit: dBm */ + if (btc->chip_para->bt_rssi_type == BTC_BTRSSI_RATIO) { + coex_sta->bt_rssi = coex_sta->bt_info_hb0 * 2 + 10; + } else { /* coex_sta->bt_info_hb0 is just dbm */ + if (coex_sta->bt_info_hb0 <= 127) + coex_sta->bt_rssi = 100; + else if (256 - coex_sta->bt_info_hb0 <= 100) + coex_sta->bt_rssi = 100 - (256 - coex_sta->bt_info_hb0); + else + coex_sta->bt_rssi = 0; + } + + /* ========== BT info High-Byte1 ========== */ + if (coex_sta->bt_info_hb1 & BIT(1)) + coex_sta->cnt_bt[BTC_CNT_BT_REINIT]++; + + if ((coex_sta->bt_info_hb1 & BIT(2)) || + (coex_sta->bt_page && coex_sta->wl_pnp_wakeup)) { + coex_sta->cnt_bt[BTC_CNT_BT_SETUPLINK]++; + coex_sta->bt_setup_link = TRUE; + + if (coex_sta->bt_reenable) + btc->btc_set_timer(btc, BTC_TIMER_BT_RELINK, 6); + else + btc->btc_set_timer(btc, BTC_TIMER_BT_RELINK, 1); + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], Re-Link start in BT info!!\n"); + BTC_TRACE(trace_buf); + } + + if (coex_sta->bt_info_hb1 & BIT(3)) + coex_sta->cnt_bt[BTC_CNT_BT_IGNWLANACT]++; + + coex_sta->bt_ble_voice = ((coex_sta->bt_info_hb1 & BIT(4)) == BIT(4)); + coex_sta->bt_ble_scan_en = ((coex_sta->bt_info_hb1 & BIT(5)) == BIT(5)); + + if (coex_sta->bt_info_hb1 & BIT(6)) + coex_sta->cnt_bt[BTC_CNT_BT_ROLESWITCH]++; + + coex_sta->bt_multi_link = ((coex_sta->bt_info_hb1 & BIT(7)) == BIT(7)); + + /* for multi_link = 0 but bt pkt remain exist -> + * Use PS-TDMA to protect WL RX + */ + if (!coex_sta->bt_multi_link && coex_sta->bt_multi_link_pre) { + coex_sta->bt_multi_link_remain = TRUE; + btc->btc_set_timer(btc, BTC_TIMER_BT_MULTILINK, 3); + } + + coex_sta->bt_multi_link_pre = coex_sta->bt_multi_link; + + /* Here we need to resend some wifi info to BT */ + /* because bt is reset and loss of the info. */ + /* Re-Init */ + if ((coex_sta->bt_info_hb1 & BIT(1))) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], BT Re-init, send wifi BW & Chnl to BT!!\n"); + BTC_TRACE(trace_buf); + if (link_info_ext->is_connected) + type = BTC_MEDIA_CONNECT; + else + type = BTC_MEDIA_DISCONNECT; + rtw_btc_update_wl_ch_info(btc, type); + } + + /* If Ignore_WLanAct && not SetUp_Link */ + if ((coex_sta->bt_info_hb1 & BIT(3)) && + (!(coex_sta->bt_info_hb1 & BIT(2)))) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], BT ext info bit3 check, set BT NOT to ignore Wlan active!!\n"); + BTC_TRACE(trace_buf); + rtw_btc_ignore_wlan_act(btc, FC_EXCU, FALSE); + } + + /* ========== BT info High-Byte2 ========== */ + coex_sta->bt_opp_exist = ((coex_sta->bt_info_hb2 & BIT(0)) == BIT(0)); + + if (coex_sta->bt_info_hb2 & BIT(1)) + coex_sta->cnt_bt[BTC_CNT_BT_AFHUPDATE]++; + + coex_sta->bt_a2dp_active = ((coex_sta->bt_info_hb2 & BIT(2)) == BIT(2)); + + /*for a2dp_active = 0 but bt pkt remain exist -> + * Use PS-TDMA to protect WL RX*/ + if (!coex_sta->bt_a2dp_active && coex_sta->bt_a2dp_active_pre) { + coex_sta->bt_a2dp_active_remain = TRUE; + btc->btc_set_timer(btc, BTC_TIMER_BT_A2DP_ACT, 5); + } + + coex_sta->bt_a2dp_active_pre = coex_sta->bt_a2dp_active; + + coex_sta->bt_slave = ((coex_sta->bt_info_hb2 & BIT(3)) == BIT(3)); + coex_sta->bt_hid_slot = (coex_sta->bt_info_hb2 & 0x30) >> 4; + coex_sta->bt_hid_pair_num = (coex_sta->bt_info_hb2 & 0xc0) >> 6; + + if (coex_sta->bt_hid_pair_num > 0 && coex_sta->bt_hid_slot >= 2) { + coex_sta->bt_418_hid_exist = TRUE; + } else if (coex_sta->bt_hid_pair_num == 0 || + coex_sta->bt_hid_slot == 1) { + coex_sta->bt_418_hid_exist = FALSE; + } + + /* ========== BT info High-Byte3 ========== */ + if ((coex_sta->bt_info_lb2 & 0x49) == 0x49) + coex_sta->bt_a2dp_bitpool = (coex_sta->bt_info_hb3 & 0x7f); + else + coex_sta->bt_a2dp_bitpool = 0; + + coex_sta->bt_a2dp_sink = ((coex_sta->bt_info_hb3 & BIT(7)) == BIT(7)); + + rtw_btc_update_bt_link_info(btc); + + if (!coex_sta->wl_in_lps_enter) + rtw_btc_run_coex(btc, BTC_RSN_BTINFO); +} + +void rtw_btc_ex_wl_fwdbginfo_notify(struct btc_coexist *btc, u8 *tmp_buf, + u8 length) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + u8 i = 0, val = 0; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], WiFi Fw Dbg info = %d %d %d %d %d %d %d %d (len = %d)\n", + tmp_buf[0], tmp_buf[1], tmp_buf[2], tmp_buf[3], tmp_buf[4], + tmp_buf[5], tmp_buf[6], tmp_buf[7], length); + BTC_TRACE(trace_buf); + + if (tmp_buf[0] != 0x8) + return; + + for (i = 1; i <= 7; i++) { + val = coex_sta->wl_fw_dbg_info_pre[i]; + if (tmp_buf[i] >= val) + coex_sta->wl_fw_dbg_info[i] = tmp_buf[i] - val; + else + coex_sta->wl_fw_dbg_info[i] = 255 - val + tmp_buf[i]; + + coex_sta->wl_fw_dbg_info_pre[i] = tmp_buf[i]; + } + + /* wl_fwdbginfo_notify is auto send by WL FW if TDMA slot toggle = 20 + * coex_sta->wl_fw_dbg_info[6] = TDMA slot toggle + * For debug, TDMA slot toggle should be calculated by 2-second + */ + coex_sta->cnt_wl[BTC_CNT_WL_FW_NOTIFY]++; + rtw_btc_wl_ccklock_action(btc); +} + +void rtw_btc_ex_rx_rate_change_notify(struct btc_coexist *btc, + BOOLEAN is_data_frame, u8 btc_rate_id) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + + if (is_data_frame) + coex_sta->wl_rx_rate = btc_rate_id; + + else + coex_sta->wl_rts_rx_rate = btc_rate_id; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): rate id = %d, RTS_Rate = %d\n", __func__, + coex_sta->wl_rx_rate, coex_sta->wl_rts_rx_rate); + BTC_TRACE(trace_buf); + + rtw_btc_wl_ccklock_detect(btc); +} + +void rtw_btc_ex_tx_rate_change_notify(struct btc_coexist *btc, u8 tx_rate, + u8 tx_retry_ratio, u8 macid) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): Tx_Rate = %d, Tx_Retry_Ratio = %d, macid =%d\n", + __func__, tx_rate, tx_retry_ratio, macid); + BTC_TRACE(trace_buf); + + coex_sta->wl_tx_rate = tx_rate; + coex_sta->wl_tx_retry_ratio = tx_retry_ratio; + coex_sta->wl_tx_macid = macid; +} + +void rtw_btc_ex_rf_status_notify(struct btc_coexist *btc, u8 type) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + + if (type == BTC_RF_ON) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): RF is turned ON!!\n", __func__); + BTC_TRACE(trace_buf); + btc->stop_coex_dm = FALSE; + btc->wl_rf_state_off = FALSE; + + } else if (type == BTC_RF_OFF) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): RF is turned Off!!\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_action_wl_off(btc); + } +} + +void rtw_btc_ex_halt_notify(struct btc_coexist *btc) +{ + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_action_wl_off(btc); +} + +void rtw_btc_ex_pnp_notify(struct btc_coexist *btc, u8 pnp_state) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + struct btc_wifi_link_info_ext *link_info_ext = &btc->wifi_link_info_ext; + const struct btc_chip_para *chip_para = btc->chip_para; + u8 phase; + + if (pnp_state == BTC_WIFI_PNP_SLEEP || + pnp_state == BTC_WIFI_PNP_SLEEP_KEEP_ANT) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): Sleep\n", __func__); + BTC_TRACE(trace_buf); + + if (chip_para->scbd_bit_num == BTC_SCBD_16_BIT) + btc->btc_write_scbd(btc, BTC_SCBD_ALL, FALSE); + else + btc->btc_write_scbd_32bit(btc, BTC_SCBD_ALL_32BIT, FALSE); + + if (pnp_state == BTC_WIFI_PNP_SLEEP_KEEP_ANT) { + if (link_info_ext->is_all_under_5g) + phase = BTC_ANT_5G; + else + phase = BTC_ANT_2G; + } else { + phase = BTC_ANT_WOFF; + } + rtw_btc_set_ant_path(btc, FC_EXCU, phase); + + btc->stop_coex_dm = TRUE; + } else { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): Wake up\n", __func__); + BTC_TRACE(trace_buf); + coex_sta->wl_pnp_wakeup = TRUE; + btc->btc_set_timer(btc, BTC_TIMER_WL_PNPWAKEUP, 3); + + /*WoWLAN*/ + if (coex_sta->wl_pnp_state_pre == BTC_WIFI_PNP_SLEEP_KEEP_ANT || + pnp_state == BTC_WIFI_PNP_WOWLAN) { + btc->stop_coex_dm = FALSE; + rtw_btc_run_coex(btc, BTC_RSN_PNP); + } + } + + coex_sta->wl_pnp_state_pre = pnp_state; +} + +void rtw_btc_ex_coex_dm_reset(struct btc_coexist *btc) +{ + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, "[BTCoex], %s()\n", __func__); + BTC_TRACE(trace_buf); + + rtw_btc_init_hw_config(btc, FALSE); +} + +void rtw_btc_ex_periodical(struct btc_coexist *btc) +{ + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], ============== Periodical ==============\n"); + BTC_TRACE(trace_buf); +} + +void rtw_btc_ex_timerup_notify(struct btc_coexist *btc, u32 type) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + const struct btc_chip_para *chip_para = btc->chip_para; + boolean is_change = FALSE; + + /* COEX-649, prevent TDMA parametet change in LeisurePSEnter()*/ + if (coex_sta->wl_in_lps_enter) { + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): wl_in_LPSenter = %d\n", + __func__, coex_sta->wl_in_lps_enter); + BTC_TRACE(trace_buf); + } + + if (type & BIT(BTC_TIMER_WL_STAYBUSY)) { + if (!coex_sta->wl_busy_pre) { + coex_sta->wl_gl_busy = FALSE; + is_change = TRUE; + rtw_btc_update_wl_ch_info(btc, BTC_MEDIA_DISCONNECT); + if (chip_para->scbd_bit_num == BTC_SCBD_16_BIT) + btc->btc_write_scbd(btc, BTC_SCBD_WLBUSY, FALSE); + else + btc->btc_write_scbd_32bit(btc, BTC_SCBD_WLBUSY, FALSE); + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): WL busy -> idle!!\n", __func__); + BTC_TRACE(trace_buf); + } + } + + /*avoid no connect finish notify */ + if (type & BIT(BTC_TIMER_WL_COEXFREEZE)) { + coex_sta->coex_freeze = FALSE; + coex_sta->wl_hi_pri_task1 = FALSE; + is_change = TRUE; + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): Coex is de-freeze!!\n", __func__); + BTC_TRACE(trace_buf); + } + + if (type & BIT(BTC_TIMER_WL_SPECPKT)) { + if (!coex_sta->coex_freeze) { + coex_sta->wl_hi_pri_task1 = FALSE; + is_change = TRUE; + } + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): WL SPECPKT finish!\n", __func__); + BTC_TRACE(trace_buf); + } + + /*for A2DP glitch during connecting AP*/ + if (type & BIT(BTC_TIMER_WL_CONNPKT)) { + coex_sta->wl_connecting = FALSE; + is_change = TRUE; + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): WL connecting stop!!\n", __func__); + BTC_TRACE(trace_buf); + } + + if (type & BIT(BTC_TIMER_WL_PNPWAKEUP)) { + coex_sta->wl_pnp_wakeup = FALSE; + is_change = TRUE; + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): WL pnp wakeup stop!!\n", __func__); + BTC_TRACE(trace_buf); + } + + if (type & BIT(BTC_TIMER_WL_CCKLOCK)) { + if (coex_sta->wl_cck_lock_pre) { + coex_sta->wl_cck_lock_ever = TRUE; + is_change = TRUE; + } + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): WL CCK Lock Detect!!\n", __func__); + BTC_TRACE(trace_buf); + } + + if (type & BIT(BTC_TIMER_BT_RELINK)) { + coex_sta->bt_setup_link = FALSE; + is_change = TRUE; + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): Re-Link stop!!\n", __func__); + BTC_TRACE(trace_buf); + } + + if (type & BIT(BTC_TIMER_BT_REENABLE)) { + coex_sta->bt_reenable = FALSE; + is_change = TRUE; + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): BT renable finish!!\n", __func__); + BTC_TRACE(trace_buf); + } + + if (type & BIT(BTC_TIMER_BT_MULTILINK)) { + coex_sta->bt_multi_link_remain = FALSE; + is_change = TRUE; + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): BT multilink disappear !!\n", + __func__); + BTC_TRACE(trace_buf); + } + + if (type & BIT(BTC_TIMER_BT_INQPAGE)) { + coex_sta->bt_inq_page_remain = FALSE; + is_change = TRUE; + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): BT inq_page disappear !!\n", + __func__); + BTC_TRACE(trace_buf); + } + + if (type & BIT(BTC_TIMER_BT_A2DP_ACT)) { + coex_sta->bt_a2dp_active_remain = FALSE; + is_change = TRUE; + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): BT A2DP active disappear !!\n", + __func__); + BTC_TRACE(trace_buf); + } + + if (is_change && !coex_sta->wl_in_lps_enter) + rtw_btc_run_coex(btc, BTC_RSN_TIMERUP); +} + +void rtw_btc_ex_wl_status_change_notify(struct btc_coexist *btc, u32 type) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + boolean is_change = FALSE; + + if (type & BIT(BTC_WLSTATUS_CHANGE_TOIDLE)) { /* if busy->idle */ + coex_sta->wl_busy_pre = FALSE; + btc->btc_set_timer(btc, BTC_TIMER_WL_STAYBUSY, 6); + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): WL busy -> idle!!\n", __func__); + BTC_TRACE(trace_buf); + } + + if (type & BIT(BTC_WLSTATUS_CHANGE_TOBUSY)) { /* if idle->busy */ + coex_sta->wl_gl_busy = TRUE; + coex_sta->wl_busy_pre = TRUE; + is_change = TRUE; + rtw_btc_update_wl_ch_info(btc, BTC_MEDIA_CONNECT); +#if 0 + btc->btc_write_scbd(btc, BTC_SCBD_WLBUSY, TRUE); +#endif + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): WL idle -> busy!!\n", __func__); + BTC_TRACE(trace_buf); + } + + if (type & BIT(BTC_WLSTATUS_CHANGE_RSSI)) { /* if RSSI change */ + is_change = TRUE; + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): WL RSSI change!!\n", __func__); + BTC_TRACE(trace_buf); + } + + if (type & BIT(BTC_WLSTATUS_CHANGE_LINKINFO)) { /* if linkinfo change */ + is_change = TRUE; + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): WL LinkInfo change!!\n", __func__); + BTC_TRACE(trace_buf); + } + + if (type & BIT(BTC_WLSTATUS_CHANGE_DIR)) { /*if WL UL-DL change*/ + is_change = TRUE; + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(): WL UL-DL change!!\n", __func__); + BTC_TRACE(trace_buf); + } + + if (type & BIT(BTC_WLSTATUS_CHANGE_NOISY)) { /*if noisy level change*/ + is_change = TRUE; + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s():Noisy Level change!!\n", __func__); + BTC_TRACE(trace_buf); + } + + if (type & BIT(BTC_WLSTATUS_CHANGE_BTCNT)) { /*if BT counter change*/ + is_change = TRUE; + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s():BT counter change!!\n", __func__); + BTC_TRACE(trace_buf); + } + + if (type & BIT(BTC_WLSTATUS_CHANGE_LOCKTRY)) { /*if WL CCK lock try*/ + is_change = TRUE; + coex_sta->wl_cck_lock_ever = FALSE; + coex_sta->wl_cck_lock = FALSE; + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s():WL CCK lock try!!\n", __func__); + BTC_TRACE(trace_buf); + } + + if (is_change) + rtw_btc_run_coex(btc, BTC_RSN_WLSTATUS); +} + +void rtw_btc_ex_wl_rfk_notify(struct btc_coexist *btc, u8 path, u8 type, u8 state) +{ + struct btc_coex_sta *coex_sta = &btc->coex_sta; + + BTC_SPRINTF(trace_buf, BT_TMP_BUF_SIZE, + "[BTCoex], %s(), RFK path = %d, type = %d, state = %d\n", + __func__, path, type, state); + BTC_TRACE(trace_buf); + + if (state == BTC_RFK_START) { + coex_sta->wl_rfk = TRUE; + } else { + coex_sta->wl_rfk = FALSE; + + /*Run coex due to RFK end*/ + rtw_btc_run_coex(btc, BTC_RSN_RFK); + } +} +#endif + /* #if (BT_SUPPORT == 1 && COEX_SUPPORT == 1) */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/btc/halbtccommon.h b/drivers/net/wireless/realtek/rtl8822ce/hal/btc/halbtccommon.h old mode 100755 new mode 100644 index a20e8e27..99b7af4c --- a/drivers/net/wireless/realtek/rtl8822ce/hal/btc/halbtccommon.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/btc/halbtccommon.h @@ -50,6 +50,8 @@ void rtw_btc_ex_display_simple_coex_info(struct btc_coexist *btc); void rtw_btc_ex_display_coex_info(struct btc_coexist *btc); void rtw_btc_ex_dbg_control(struct btc_coexist *btc, u8 op_code, u8 op_len, u8 *pdata); +void rtw_btc_ex_wl_rfk_notify(struct btc_coexist *btc, u8 path, + u8 type, u8 state); #else #define rtw_btc_ex_power_on_setting(btc) @@ -79,4 +81,5 @@ void rtw_btc_ex_dbg_control(struct btc_coexist *btc, u8 op_code, u8 op_len, #define rtw_btc_ex_wl_status_change_notify(btc, type) #define rtw_btc_ex_display_coex_info(btc) #define rtw_btc_ex_dbg_control(btc, op_code, op_len, pdata) +#define rtw_btc_ex_wl_rfk_notify(btc, path, type, state) #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/btc/halbtcoutsrc.h b/drivers/net/wireless/realtek/rtl8822ce/hal/btc/halbtcoutsrc.h index 898f30d2..90f58fef 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/btc/halbtcoutsrc.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/btc/halbtcoutsrc.h @@ -243,6 +243,7 @@ typedef enum _BTC_CHIP_TYPE { BTC_CHIP_RTL8723D = 10, BTC_CHIP_RTL8703B = 11, BTC_CHIP_RTL8725A = 12, + BTC_CHIP_RTL8723F = 13, BTC_CHIP_MAX } BTC_CHIP_TYPE, *PBTC_CHIP_TYPE; @@ -329,6 +330,9 @@ enum btc_btinfo_src { BTC_BTINFO_SRC_BT_IQK = 0x3, BTC_BTINFO_SRC_BT_SCBD = 0x4, BTC_BTINFO_SRC_H2C60 = 0x5, + BTC_BTINFO_SRC_BT_PSD = 0x6, + BTC_BTINFO_SRC_BT_SLOT1 = 0x7, + BTC_BTINFO_SRC_BT_SLOT2 = 0x8, BTC_BTINFO_SRC_MAX }; @@ -409,6 +413,7 @@ enum btc_ext_ant_switch_type { BTC_SWITCH_NONE = 0x0, BTC_SWITCH_SPDT = 0x1, BTC_SWITCH_SP3T = 0x2, + BTC_SWITCH_DPDT = 0x3, BTC_SWITCH_ANTMAX }; @@ -458,13 +463,19 @@ enum btc_wl2bt_scoreboard { BTC_SCBD_EXTFEM = BIT(8), BTC_SCBD_TDMA = BIT(9), BTC_SCBD_FIX2M = BIT(10), - BTC_SCBD_ALL = 0xffff + BTC_SCBD_MAILBOX_DBG = BIT(14), + BTC_SCBD_ALL = 0xffff, + BTC_SCBD_ALL_32BIT = 0xffffffff }; enum btc_bt2wl_scoreboard { BTC_SCBD_BT_ONOFF = BIT(1), BTC_SCBD_BT_LPS = BIT(7) }; +enum btc_scoreboard_bit_num { + BTC_SCBD_16_BIT = BIT(0), + BTC_SCBD_32_BIT = BIT(1) +}; enum btc_runreason { BTC_RSN_2GSCANSTART = 0x0, @@ -488,6 +499,7 @@ enum btc_runreason { BTC_RSN_TIMERUP = 0x12, BTC_RSN_WLSTATUS = 0x13, BTC_RSN_BTCNT = 0x14, + BTC_RSN_RFK = 0x15, BTC_RSN_MAX }; @@ -513,6 +525,7 @@ static const char *const run_reason_string[] = { "TimerUp", "WL_STATUS_CHANGE", "BT_CNT_CHANGE", + "WL_RFK", "Reason Max" }; @@ -535,7 +548,9 @@ static const char *const coex_mode_string[] = { "5G", "2G-P2P-GO", "2G-P2P-GC", - "BT-MR" + "BT-MR", + "2G1RFREE", + "unknow" }; enum btc_bt_state_cnt { @@ -600,6 +615,7 @@ enum btc_timer_cnt { BTC_TIMER_BT_REENABLE = 0x8, BTC_TIMER_BT_MULTILINK = 0x9, BTC_TIMER_BT_INQPAGE = 0xa, + BTC_TIMER_BT_A2DP_ACT = 0xb, BTC_TIMER_MAX }; @@ -625,6 +641,7 @@ enum btc_commom_chip_setup { BTC_CSETUP_WL_TX_POWER = 0x6, BTC_CSETUP_WL_RX_GAIN = 0x7, BTC_CSETUP_WLAN_ACT_IPS = 0x8, + BTC_CSETUP_BT_CTRL_ACT = 0x9, BTC_CSETUP_MAX }; @@ -670,6 +687,21 @@ enum btc_ext_chip_mode{ BTC_EXTMODE_MAX }; +enum btc_wl_rfk_type { + BTC_PWR_TRK = 0, + BTC_IQK = 1, + BTC_LCK = 2, + BTC_DPK = 3, + BTC_TXGAPK = 4, + BTC_RFK_TYPE_MAX +}; + +enum btc_wl_rfk_state { + BTC_RFK_START = 0, + BTC_RFK_END = 1, + BTC_RFK_STATE_MAX +}; + struct btc_board_info { /* The following is some board information */ u8 bt_chip_type; @@ -714,6 +746,8 @@ struct btc_coex_dm { u8 bt_status; u8 wl_chnl_info[3]; u8 cur_toggle_para[6]; + u8 bt_slot_length1[10]; + u8 bt_slot_length2[10]; u32 cur_ant_pos_type; u32 cur_switch_status; u32 setting_tdma; @@ -754,6 +788,8 @@ struct btc_coex_sta { boolean bt_ble_scan_en; boolean bt_slave; boolean bt_a2dp_active; + boolean bt_a2dp_active_pre; + boolean bt_a2dp_active_remain; boolean bt_slave_latency; boolean bt_init_scan; boolean bt_418_hid_exist; @@ -762,6 +798,7 @@ struct btc_coex_sta { boolean bt_ctr_ok; boolean wl_under_lps; + boolean wl_in_lps_enter; boolean wl_under_ips; boolean wl_under_4way; boolean wl_hi_pri_task1; @@ -785,6 +822,7 @@ struct btc_coex_sta { boolean wl_slot_toggle_change; /* if toggle to no-toggle */ boolean wl_leak_ap; /* !is_no_wl_5ms_extend */ boolean wl_blacklist_ap; + boolean wl_rfk; u8 coex_table_type; u8 coex_run_reason; @@ -833,13 +871,18 @@ struct btc_coex_sta { u8 wl_toggle_interval; u16 score_board_BW; - u16 score_board_WB; + u32 score_board_WB; u16 bt_reg_vendor_ac; u16 bt_reg_vendor_ae; + u32 bt_reg_vendor_dac; u16 bt_reg_modem_a; u16 bt_reg_rf_2; + u16 bt_reg_rf_9; + u16 bt_reg_le_200; u16 wl_txlimit; + u32 score_board_BW_32bit; + u32 score_board_WB_32bit; u32 hi_pri_tx; u32 hi_pri_rx; u32 lo_pri_tx; @@ -1165,6 +1208,8 @@ typedef enum _BTC_NOTIFY_TYPE_IPS { typedef enum _BTC_NOTIFY_TYPE_LPS { BTC_LPS_DISABLE = 0x0, BTC_LPS_ENABLE = 0x1, + BTC_LPS_PRE = 0x2, + BTC_LPS_RET = 0x3, BTC_LPS_MAX } BTC_NOTIFY_TYPE_LPS, *PBTC_NOTIFY_TYPE_LPS; typedef enum _BTC_NOTIFY_TYPE_SCAN { @@ -1454,6 +1499,11 @@ typedef u2Byte IN PVOID pBtcContext, IN pu2Byte score_board_val ); +typedef u4Byte +(*BFP_BTC_R_SCBD_32BIT)( + IN PVOID pBtcContext, + IN pu4Byte score_board_val + ); typedef VOID (*BFP_BTC_W_SCBD)( IN PVOID pBtcContext, @@ -1461,6 +1511,12 @@ typedef VOID IN BOOLEAN state ); typedef VOID +(*BFP_BTC_W_SCBD_32BIT)( + IN PVOID pBtcContext, + IN u4Byte bitpos, + IN BOOLEAN state + ); +typedef VOID (*BFP_BTC_W_LINDIRECT)( IN PVOID pBtcContext, IN u2Byte reg_addr, @@ -1773,7 +1829,10 @@ struct btc_coexist { BFP_BTC_R_LINDIRECT btc_read_linderct; BFP_BTC_W_LINDIRECT btc_write_linderct; BFP_BTC_R_SCBD btc_read_scbd; + BFP_BTC_R_SCBD_32BIT btc_read_scbd_32bit; BFP_BTC_W_SCBD btc_write_scbd; + BFP_BTC_W_SCBD_32BIT btc_write_scbd_32bit; + /* read/write bb related */ BFP_BTC_SET_BB_REG btc_set_bb_reg; BFP_BTC_GET_BB_REG btc_get_bb_reg; @@ -1879,7 +1938,10 @@ struct btc_chip_para { u32 para_ver_date; u32 para_ver; u32 bt_desired_ver; + u32 wl_desired_ver; boolean scbd_support; + u32 scbd_reg; + u8 scbd_bit_num; boolean mailbox_support; boolean lte_indirect_access; boolean new_scbd10_def; /* TRUE: 1:fix 2M(8822c) */ @@ -2023,6 +2085,13 @@ EXhalbtcoutsrc_WLStatusChangeNotify( IN u4Byte change_type ); VOID +EXhalbtcoutsrc_WL_RFK_Notify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte path, + IN u1Byte type, + IN u1Byte state + ); +VOID EXhalbtcoutsrc_CoexDmSwitch( IN PBTC_COEXIST pBtCoexist ); diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/btc/mp_precomp.h b/drivers/net/wireless/realtek/rtl8822ce/hal/btc/mp_precomp.h index 26259369..42645498 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/btc/mp_precomp.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/btc/mp_precomp.h @@ -124,6 +124,11 @@ struct btc_coexist; #include "halbtc8822c.h" #endif +#ifdef CONFIG_RTL8723F +#include "halbtc8723fwifionly.h" +#include "halbtc8723f.h" +#endif + #ifdef CONFIG_RTL8192F #include "halbtc8192f.h" #endif @@ -150,6 +155,10 @@ struct btc_coexist; #include "halbtc8822cwifionly.h" #endif +#ifdef CONFIG_RTL8723F +#include "halbtc8723fwifionly.h" +#endif + #ifdef CONFIG_RTL8814B #include "halbtc8814bwifionly.h" #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/efuse/efuse_mask.h b/drivers/net/wireless/realtek/rtl8822ce/hal/efuse/efuse_mask.h index 139a1efd..dc4fdce2 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/efuse/efuse_mask.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/efuse/efuse_mask.h @@ -76,6 +76,10 @@ #if defined(CONFIG_RTL8814B) #include "rtl8814b/HalEfuseMask8814B_USB.h" #endif + + #if defined(CONFIG_RTL8723F) + #include "rtl8723f/HalEfuseMask8723F_USB.h" + #endif #endif /*CONFIG_USB_HCI*/ #ifdef CONFIG_PCI_HCI @@ -178,4 +182,7 @@ #include "rtl8822c/HalEfuseMask8822C_SDIO.h" #endif + #if defined(CONFIG_RTL8723F) + #include "rtl8723f/HalEfuseMask8723F_SDIO.h" + #endif #endif /*CONFIG_SDIO_HCI*/ diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/efuse/rtl8822c/HalEfuseMask8822C_PCIE.c b/drivers/net/wireless/realtek/rtl8822ce/hal/efuse/rtl8822c/HalEfuseMask8822C_PCIE.c index 949284aa..ece7a31b 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/efuse/rtl8822c/HalEfuseMask8822C_PCIE.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/efuse/rtl8822c/HalEfuseMask8822C_PCIE.c @@ -1,16 +1,16 @@ /****************************************************************************** - * +* * Copyright(c) 2015 - 2017 Realtek Corporation. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License 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. - * +* +* This program is free software; you can redistribute it and/or modify it +* under the terms of version 2 of the GNU General Public License 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. +* *****************************************************************************/ #include diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/efuse/rtl8822c/HalEfuseMask8822C_PCIE.h b/drivers/net/wireless/realtek/rtl8822ce/hal/efuse/rtl8822c/HalEfuseMask8822C_PCIE.h index d657c0ba..57824d0f 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/efuse/rtl8822c/HalEfuseMask8822C_PCIE.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/efuse/rtl8822c/HalEfuseMask8822C_PCIE.h @@ -1,16 +1,16 @@ /****************************************************************************** - * +* * Copyright(c) 2015 - 2017 Realtek Corporation. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License 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. - * +* +* This program is free software; you can redistribute it and/or modify it +* under the terms of version 2 of the GNU General Public License 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. +* *****************************************************************************/ diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/efuse/rtl8822c/HalEfuseMask8822C_SDIO.c b/drivers/net/wireless/realtek/rtl8822ce/hal/efuse/rtl8822c/HalEfuseMask8822C_SDIO.c index 5b4c2836..7c5fd998 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/efuse/rtl8822c/HalEfuseMask8822C_SDIO.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/efuse/rtl8822c/HalEfuseMask8822C_SDIO.c @@ -1,16 +1,16 @@ /****************************************************************************** - * +* * Copyright(c) 2015 - 2017 Realtek Corporation. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License 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. - * +* +* This program is free software; you can redistribute it and/or modify it +* under the terms of version 2 of the GNU General Public License 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. +* *****************************************************************************/ #include diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/efuse/rtl8822c/HalEfuseMask8822C_SDIO.h b/drivers/net/wireless/realtek/rtl8822ce/hal/efuse/rtl8822c/HalEfuseMask8822C_SDIO.h index 144c3cb5..62919814 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/efuse/rtl8822c/HalEfuseMask8822C_SDIO.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/efuse/rtl8822c/HalEfuseMask8822C_SDIO.h @@ -1,16 +1,16 @@ /****************************************************************************** - * +* * Copyright(c) 2015 - 2017 Realtek Corporation. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License 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. - * +* +* This program is free software; you can redistribute it and/or modify it +* under the terms of version 2 of the GNU General Public License 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. +* *****************************************************************************/ diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/efuse/rtl8822c/HalEfuseMask8822C_USB.c b/drivers/net/wireless/realtek/rtl8822ce/hal/efuse/rtl8822c/HalEfuseMask8822C_USB.c index 357ef520..5becf8bb 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/efuse/rtl8822c/HalEfuseMask8822C_USB.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/efuse/rtl8822c/HalEfuseMask8822C_USB.c @@ -1,16 +1,16 @@ /****************************************************************************** - * +* * Copyright(c) 2015 - 2017 Realtek Corporation. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License 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. - * +* +* This program is free software; you can redistribute it and/or modify it +* under the terms of version 2 of the GNU General Public License 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. +* *****************************************************************************/ #include diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/efuse/rtl8822c/HalEfuseMask8822C_USB.h b/drivers/net/wireless/realtek/rtl8822ce/hal/efuse/rtl8822c/HalEfuseMask8822C_USB.h index b1017962..476fa923 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/efuse/rtl8822c/HalEfuseMask8822C_USB.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/efuse/rtl8822c/HalEfuseMask8822C_USB.h @@ -1,16 +1,16 @@ /****************************************************************************** - * +* * Copyright(c) 2015 - 2017 Realtek Corporation. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License 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. - * +* +* This program is free software; you can redistribute it and/or modify it +* under the terms of version 2 of the GNU General Public License 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. +* *****************************************************************************/ diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/hal_btcoex.c b/drivers/net/wireless/realtek/rtl8822ce/hal/hal_btcoex.c index 679b12ed..f0997e66 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/hal_btcoex.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/hal_btcoex.c @@ -267,7 +267,7 @@ static void halbtcoutsrc_DbgInit(void) u8 i; for (i = 0; i < COMP_MAX; i++) - GLBtcDbgType[i] = 0; + GLBtcDbgType[i] = 0xff; } static void halbtcoutsrc_EnterPwrLock(PBTC_COEXIST pBtCoexist) @@ -722,6 +722,34 @@ struct btc_wifi_link_info halbtcoutsrc_getwifilinkinfo(PBTC_COEXIST pBtCoexist) wifi_link_info.link_mode = BTC_LINK_25G_MCC_GC_STA; } } + + if (sta_iface && ap_iface) { + u8 band_sta = sta_iface->mlmeextpriv.cur_channel > 14 ? BAND_ON_5G : BAND_ON_2_4G; + u8 band_ap = ap_iface->mlmeextpriv.cur_channel > 14 ? BAND_ON_5G : BAND_ON_2_4G; + + if (band_sta == band_ap) { + switch (band_sta) { + case BAND_ON_2_4G: + #ifdef CONFIG_MCC_MODE + wifi_link_info.link_mode = + mcc_en == _TRUE ? BTC_LINK_2G_MCC_GO_STA : BTC_LINK_2G_SCC_GO_STA; + #else /* !CONFIG_MCC_MODE */ + wifi_link_info.link_mode = BTC_LINK_2G_SCC_GO_STA; + #endif /* CONFIG_MCC_MODE */ + break; + case BAND_ON_5G: + #ifdef CONFIG_MCC_MODE + wifi_link_info.link_mode = + mcc_en == _TRUE ? BTC_LINK_5G_MCC_GO_STA : BTC_LINK_5G_SCC_GO_STA; + #else /* !CONFIG_MCC_MODE */ + wifi_link_info.link_mode = BTC_LINK_5G_SCC_GO_STA; + #endif /* CONFIG_MCC_MODE */ + break; + } + } else { + wifi_link_info.link_mode = BTC_LINK_25G_MCC_GO_STA; + } + } } else { if (pBtCoexist->board_info.btdm_ant_num == 1) RTW_ERR("%s do not support n_assoc_iface > 2 (ant_num == 1)", __func__); @@ -1060,6 +1088,11 @@ u32 halbtcoutsrc_GetPhydmVersion(void *pBtcContext) #ifdef CONFIG_RTL8814B return RELEASE_VERSION_8814B; #endif + +#ifdef CONFIG_RTL8723F + return RELEASE_VERSION_8723F; +#endif + } u8 halbtcoutsrc_Get(void *pBtcContext, u8 getType, void *pOutBuf) @@ -2305,19 +2338,35 @@ u16 halbtcoutsrc_Read_scbd(void *pBtcContext, u16* score_board_val) if (!chip_para->scbd_support) return 0; - *score_board_val = (btc->btc_read_2byte(btc, 0xaa)) & 0x7fff; + *score_board_val = (btc->btc_read_2byte(btc, chip_para->scbd_reg)) + & 0x7fff; coex_sta->score_board_BW = *score_board_val; return coex_sta->score_board_BW; } +u32 halbtcoutsrc_Read_scbd_32bit(void *pBtcContext, u32* score_board_val) +{ + PBTC_COEXIST btc = (PBTC_COEXIST)pBtcContext; + struct btc_coex_sta *coex_sta = &btc->coex_sta; + const struct btc_chip_para *chip_para = btc->chip_para; + + if (!chip_para->scbd_support) + return 0; + + *score_board_val = (btc->btc_read_4byte(btc, chip_para->scbd_reg)) + & 0x7fffffff; + coex_sta->score_board_BW_32bit = *score_board_val; + + return coex_sta->score_board_BW_32bit; +} + void halbtcoutsrc_Write_scbd(void *pBtcContext, u16 bitpos, u8 state) { PBTC_COEXIST btc = (PBTC_COEXIST)pBtcContext; struct btc_coex_sta *coex_sta = &btc->coex_sta; const struct btc_chip_para *chip_para = btc->chip_para; u16 val = 0x2; - u8* btc_dbg_buf = &gl_btc_trace_buf[0]; if (!chip_para->scbd_support) return; @@ -2342,16 +2391,52 @@ void halbtcoutsrc_Write_scbd(void *pBtcContext, u16 bitpos, u8 state) if (val != coex_sta->score_board_WB) { coex_sta->score_board_WB = val; val = val | 0x8000; - btc->btc_write_2byte(btc, 0xaa, val); - BTC_SPRINTF(btc_dbg_buf, BT_TMP_BUF_SIZE, - "[BTCoex], write scoreboard 0x%x\n", val); + btc->btc_write_2byte(btc, chip_para->scbd_reg, val); + + RTW_DBG("[BTC], write scoreboard 0x%x\n", val); } else { - BTC_SPRINTF(btc_dbg_buf, BT_TMP_BUF_SIZE, - "[BTCoex], %s: return for nochange\n", __func__); + RTW_DBG("[BTC], return for nochange\n"); + } +} + +void halbtcoutsrc_Write_scbd_32bit(void *pBtcContext, u32 bitpos, u8 state) +{ + PBTC_COEXIST btc = (PBTC_COEXIST)pBtcContext; + struct btc_coex_sta *coex_sta = &btc->coex_sta; + const struct btc_chip_para *chip_para = btc->chip_para; + u32 val = 0x2; + + if (!chip_para->scbd_support) + return; + + val = val | coex_sta->score_board_WB_32bit; + + /* for 8822b, Scoreboard[10]: 0: CQDDR off, 1: CQDDR on + * for 8822c, Scoreboard[10]: 0: CQDDR on, 1:CQDDR fix 2M + */ + if (!btc->chip_para->new_scbd10_def && (bitpos & BTC_SCBD_FIX2M)) { + if (state) + val = val & (~BTC_SCBD_FIX2M); + else + val = val | BTC_SCBD_FIX2M; + } else { + if (state) + val = val | bitpos; + else + val = val & (~bitpos); } - BTC_TRACE(btc_dbg_buf); + if (val != coex_sta->score_board_WB_32bit) { + coex_sta->score_board_WB_32bit = val; + val = val | 0x80000000; + + btc->btc_write_4byte(btc, chip_para->scbd_reg, val); + + RTW_DBG("[BTC], write scoreboard 0x%x\n", val); + } else { + RTW_DBG("[BTC], return for nochange\n"); + } } void halbtcoutsrc_SetBbReg(void *pBtcContext, u32 RegAddr, u32 BitMask, u32 Data) @@ -2908,7 +2993,7 @@ void halbtcoutsrc_reduce_wl_tx_power(void *pBtcContext, s8 tx_power) HAL_DATA_TYPE *pHalData = GET_HAL_DATA((PADAPTER)pBtCoexist->Adapter); /* The reduction of wl tx pwr should be processed inside the set tx pwr lvl function */ - if (IS_HARDWARE_TYPE_8822C(pBtCoexist->Adapter)) + if (IS_HARDWARE_TYPE_8822C(pBtCoexist->Adapter) || IS_HARDWARE_TYPE_8723F(pBtCoexist->Adapter)) rtw_hal_set_tx_power_level(pBtCoexist->Adapter, pHalData->current_channel); } @@ -3173,6 +3258,14 @@ u8 EXhalbtcoutsrc_BindBtCoexWithAdapter(void *padapter) pBtCoexist->chip_type = BTC_CHIP_RTL8725A; pBtCoexist->chip_para = &btc_chip_para_8192f; } +#endif +#ifdef PLATFORM_LINUX +#ifdef CONFIG_RTL8723F + else if (IS_HARDWARE_TYPE_8723F(padapter)) { + pBtCoexist->chip_type = BTC_CHIP_RTL8723F; + pBtCoexist->chip_para = &btc_chip_para_8723f; + } +#endif #endif else { pBtCoexist->chip_type = BTC_CHIP_UNDEF; @@ -3248,7 +3341,9 @@ u8 EXhalbtcoutsrc_InitlizeVariables(void *padapter) pBtCoexist->btc_write_linderct = halbtcoutsrc_WriteLIndirectReg; pBtCoexist->btc_read_scbd = halbtcoutsrc_Read_scbd; + pBtCoexist->btc_read_scbd_32bit = halbtcoutsrc_Read_scbd_32bit; pBtCoexist->btc_write_scbd = halbtcoutsrc_Write_scbd; + pBtCoexist->btc_write_scbd_32bit = halbtcoutsrc_Write_scbd_32bit; pBtCoexist->btc_set_bb_reg = halbtcoutsrc_SetBbReg; pBtCoexist->btc_get_bb_reg = halbtcoutsrc_GetBbReg; @@ -3817,7 +3912,7 @@ void EXhalbtcoutsrc_lps_notify(PBTC_COEXIST pBtCoexist, u8 type) void EXhalbtcoutsrc_scan_notify(PBTC_COEXIST pBtCoexist, u8 type) { - u8 scanType; + u8 scanType = type; if (!halbtcoutsrc_IsBtCoexistAvailable(pBtCoexist)) return; @@ -3825,13 +3920,10 @@ void EXhalbtcoutsrc_scan_notify(PBTC_COEXIST pBtCoexist, u8 type) if (pBtCoexist->manual_control) return; - if (type) { - scanType = BTC_SCAN_START; - GLBtcWiFiInScanState = _TRUE; - } else { - scanType = BTC_SCAN_FINISH; + if (type == BTC_SCAN_FINISH) GLBtcWiFiInScanState = _FALSE; - } + else + GLBtcWiFiInScanState = _TRUE; /* All notify is called in cmd thread, don't need to leave low power again * halbtcoutsrc_LeaveLowPower(pBtCoexist); */ @@ -4923,6 +5015,14 @@ void EXhalbtcoutsrc_status_monitor(PBTC_COEXIST pBtCoexist) } #endif +void EXhalbtcoutsrc_WL_RFK_Notify(PBTC_COEXIST pBtCoexist, u8 path, u8 type, u8 state) +{ + #if (CONFIG_BTCOEX_SUPPORT_BTC_CMN == 1) + rtw_btc_ex_wl_rfk_notify(pBtCoexist, path, type, state); + #endif + return; +} + void EXhalbtcoutsrc_periodical(PBTC_COEXIST pBtCoexist) { if (!halbtcoutsrc_IsBtCoexistAvailable(pBtCoexist)) @@ -5868,6 +5968,11 @@ void hal_btcoex_IQKNotify(PADAPTER padapter, u8 state) GLBtcWiFiInIQKState = state; } +void hal_btcoex_WLRFKNotify(PADAPTER padapter, u8 path, u8 type, u8 state) +{ + EXhalbtcoutsrc_WL_RFK_Notify(&GLBtCoexist, path, type, state); +} + void hal_btcoex_BtInfoNotify(PADAPTER padapter, u8 length, u8 *tmpBuf) { if (GLBtcWiFiInIQKState == _TRUE) diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/hal_btcoex_wifionly.c b/drivers/net/wireless/realtek/rtl8822ce/hal/hal_btcoex_wifionly.c index 4752bc38..a9ef07f1 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/hal_btcoex_wifionly.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/hal_btcoex_wifionly.c @@ -132,6 +132,11 @@ void hal_btcoex_wifionly_switchband_notify(PADAPTER padapter) else if (IS_HARDWARE_TYPE_8814B(padapter)) ex_hal8814b_wifi_only_switchbandnotify(&GLBtCoexistWifiOnly, is_5g); #endif + +#ifdef CONFIG_RTL8723F + else if (IS_HARDWARE_TYPE_8723F(padapter)) + ex_hal8723f_wifi_only_switchbandnotify(&GLBtCoexistWifiOnly, is_5g); +#endif } void hal_btcoex_wifionly_scan_notify(PADAPTER padapter) @@ -192,6 +197,11 @@ void hal_btcoex_wifionly_connect_notify(PADAPTER padapter) else if (IS_HARDWARE_TYPE_8814B(padapter)) ex_hal8814b_wifi_only_connectnotify(&GLBtCoexistWifiOnly, is_5g); #endif + +#ifdef CONFIG_RTL8723F + else if (IS_HARDWARE_TYPE_8723F(padapter)) + ex_hal8723f_wifi_only_connectnotify(&GLBtCoexistWifiOnly, is_5g); +#endif } void hal_btcoex_wifionly_hw_config(PADAPTER padapter) @@ -223,6 +233,11 @@ void hal_btcoex_wifionly_hw_config(PADAPTER padapter) else if (IS_HARDWARE_TYPE_8814B(padapter)) ex_hal8814b_wifi_only_hw_config(pwifionlycfg); #endif + +#ifdef CONFIG_RTL8723F + else if (IS_HARDWARE_TYPE_8723F(padapter)) + ex_hal8723f_wifi_only_hw_config(pwifionlycfg); +#endif } void hal_btcoex_wifionly_initlizevariables(PADAPTER padapter) diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/hal_com.c b/drivers/net/wireless/realtek/rtl8822ce/hal/hal_com.c old mode 100644 new mode 100755 index 0eb1df83..f7e09b06 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/hal_com.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/hal_com.c @@ -269,6 +269,10 @@ void dump_chip_info(HAL_VERSION ChipVersion) cnt += sprintf((buf + cnt), "Chip Version Info: CHIP_8192F_"); else if (IS_8822C_SERIES(ChipVersion)) cnt += sprintf((buf + cnt), "Chip Version Info: CHIP_8822C_"); + else if (IS_8814B_SERIES(ChipVersion)) + cnt += sprintf((buf + cnt), "Chip Version Info: CHIP_8814B_"); + else if (IS_8723F_SERIES(ChipVersion)) + cnt += sprintf((buf + cnt), "Chip Version Info: CHIP_8723F_"); else cnt += sprintf((buf + cnt), "Chip Version Info: CHIP_UNKNOWN_"); @@ -338,12 +342,14 @@ u8 rtw_hal_get_port(_adapter *adapter) rtw_warn_on(1); } } + #ifdef CONFIG_AP_MODE else if (MLME_IS_AP(adapter) || MLME_IS_MESH(adapter)) { if (hw_port != HW_PORT0) { RTW_ERR(ADPT_FMT" @@@@@ AP / MESH port != 0 @@@@@\n", ADPT_ARG(adapter)); rtw_warn_on(1); } } + #endif if (0) RTW_INFO(ADPT_FMT" - HP:%d,CP:%d\n", ADPT_ARG(adapter), get_hw_port(adapter), get_clt_port(adapter)); #endif /*DBG_HW_PORT*/ @@ -368,105 +374,58 @@ u8 rtw_hal_get_port(_adapter *adapter) * BIT[6:0] Channel Plan * sw_alpha2 country code from HW (registry/module param) * sw_chplan channel plan from SW (registry/module param) - * def_chplan channel plan used when HW/SW both invalid * AutoLoadFail efuse autoload fail or not * */ -int hal_com_config_channel_plan( +void hal_com_config_channel_plan( PADAPTER padapter, - char *hw_alpha2, + const char *hw_alpha2, u8 hw_chplan, - char *sw_alpha2, - u8 sw_chplan, - u8 def_chplan, + u8 hw_chplan_6g, BOOLEAN AutoLoadFail ) { - struct rf_ctl_t *rfctl = adapter_to_rfctl(padapter); - PHAL_DATA_TYPE pHalData; + HAL_DATA_TYPE *hal_data = GET_HAL_DATA(padapter); u8 force_hw_chplan = _FALSE; - int chplan = -1; - const struct country_chplan *country_ent = NULL, *ent; - pHalData = GET_HAL_DATA(padapter); #ifdef CONFIG_HEXFILE_CHANNEL_PLAN - if (rtw_get_channel_plan_from_file(RTW_HEXFILE_NAME)) { - RTW_WARN("get channel plan hexfile fail\n"); - return -1; - } + if (rtw_get_channel_plan_from_file(RTW_HEXFILE_NAME)) { + RTW_WARN("get channel plan hexfile fail\n"); + } #endif - /* treat 0xFF as invalid value, bypass hw_chplan & force_hw_chplan parsing */ - if (hw_chplan == 0xFF) - goto chk_hw_country_code; + /* + * autoload fail, by pass all hw settings + */ + if (AutoLoadFail == _TRUE) { + hw_alpha2 = NULL; + hw_chplan = RTW_CHPLAN_UNSPECIFIED; + goto init; + } - if (AutoLoadFail == _TRUE) - goto chk_sw_config; + /* + * treat {0xFF, 0xFF} as unspecified + */ + if (hw_alpha2 && strncmp(hw_alpha2, "\xFF\xFF", 2) == 0) + hw_alpha2 = NULL; + + /* + * treat 0xFF as invalid value, bypass hw_chplan & force_hw_chplan parsing + * and check hw setting with only country code + */ + if (hw_chplan == 0xFF) { + hw_chplan = RTW_CHPLAN_UNSPECIFIED; + goto init; + } #ifndef CONFIG_FORCE_SW_CHANNEL_PLAN if (hw_chplan & EEPROM_CHANNEL_PLAN_BY_HW_MASK) force_hw_chplan = _TRUE; #endif - hw_chplan &= (~EEPROM_CHANNEL_PLAN_BY_HW_MASK); -chk_hw_country_code: - if (hw_alpha2 && !IS_ALPHA2_NO_SPECIFIED(hw_alpha2)) { - ent = rtw_get_chplan_from_country(hw_alpha2); - if (ent) { - /* get chplan from hw country code, by pass hw chplan setting */ - country_ent = ent; - chplan = ent->chplan; - goto chk_sw_config; - } else - RTW_PRINT("%s unsupported hw_alpha2:\"%c%c\"\n", __func__, hw_alpha2[0], hw_alpha2[1]); - } - - if (rtw_is_channel_plan_valid(hw_chplan)) - chplan = hw_chplan; - else if (force_hw_chplan == _TRUE) { - RTW_PRINT("%s unsupported hw_chplan:0x%02X\n", __func__, hw_chplan); - /* hw infomaton invalid, refer to sw information */ - force_hw_chplan = _FALSE; - } - -chk_sw_config: - if (force_hw_chplan == _TRUE) - goto done; - - if (sw_alpha2 && !IS_ALPHA2_NO_SPECIFIED(sw_alpha2)) { - ent = rtw_get_chplan_from_country(sw_alpha2); - if (ent) { - /* get chplan from sw country code, by pass sw chplan setting */ - country_ent = ent; - chplan = ent->chplan; - goto done; - } else - RTW_PRINT("%s unsupported sw_alpha2:\"%c%c\"\n", __func__, sw_alpha2[0], sw_alpha2[1]); - } - - if (rtw_is_channel_plan_valid(sw_chplan)) { - /* cancel hw_alpha2 because chplan is specified by sw_chplan*/ - country_ent = NULL; - chplan = sw_chplan; - } else if (sw_chplan != RTW_CHPLAN_UNSPECIFIED) - RTW_PRINT("%s unsupported sw_chplan:0x%02X\n", __func__, sw_chplan); - -done: - if (chplan == -1) { - RTW_PRINT("%s use def_chplan:0x%02X\n", __func__, def_chplan); - chplan = def_chplan; - } else if (country_ent) { - RTW_PRINT("%s country code:\"%c%c\" with chplan:0x%02X\n", __func__ - , country_ent->alpha2[0], country_ent->alpha2[1], country_ent->chplan); - } else - RTW_PRINT("%s chplan:0x%02X\n", __func__, chplan); - - rfctl->country_ent = country_ent; - rfctl->ChannelPlan = chplan; - pHalData->bDisableSWChannelPlan = force_hw_chplan; - - return 0; +init: + rtw_rfctl_decide_init_chplan(adapter_to_rfctl(padapter), hw_alpha2, hw_chplan, hw_chplan_6g, force_hw_chplan); } BOOLEAN @@ -495,539 +454,333 @@ HAL_IsLegalChannel( return bLegalChannel; } -u8 MRateToHwRate(u8 rate) +static const u8 _MRateToHwRate[MGN_UNKNOWN] = { + [MGN_1M] = DESC_RATE1M, + [MGN_2M] = DESC_RATE2M, + [MGN_5_5M] = DESC_RATE5_5M, + [MGN_11M] = DESC_RATE11M, + [MGN_6M] = DESC_RATE6M, + [MGN_9M] = DESC_RATE9M, + [MGN_12M] = DESC_RATE12M, + [MGN_18M] = DESC_RATE18M, + [MGN_24M] = DESC_RATE24M, + [MGN_36M] = DESC_RATE36M, + [MGN_48M] = DESC_RATE48M, + [MGN_54M] = DESC_RATE54M, + [MGN_MCS0] = DESC_RATEMCS0, + [MGN_MCS1] = DESC_RATEMCS1, + [MGN_MCS2] = DESC_RATEMCS2, + [MGN_MCS3] = DESC_RATEMCS3, + [MGN_MCS4] = DESC_RATEMCS4, + [MGN_MCS5] = DESC_RATEMCS5, + [MGN_MCS6] = DESC_RATEMCS6, + [MGN_MCS7] = DESC_RATEMCS7, + [MGN_MCS8] = DESC_RATEMCS8, + [MGN_MCS9] = DESC_RATEMCS9, + [MGN_MCS10] = DESC_RATEMCS10, + [MGN_MCS11] = DESC_RATEMCS11, + [MGN_MCS12] = DESC_RATEMCS12, + [MGN_MCS13] = DESC_RATEMCS13, + [MGN_MCS14] = DESC_RATEMCS14, + [MGN_MCS15] = DESC_RATEMCS15, + [MGN_MCS16] = DESC_RATEMCS16, + [MGN_MCS17] = DESC_RATEMCS17, + [MGN_MCS18] = DESC_RATEMCS18, + [MGN_MCS19] = DESC_RATEMCS19, + [MGN_MCS20] = DESC_RATEMCS20, + [MGN_MCS21] = DESC_RATEMCS21, + [MGN_MCS22] = DESC_RATEMCS22, + [MGN_MCS23] = DESC_RATEMCS23, + [MGN_MCS24] = DESC_RATEMCS24, + [MGN_MCS25] = DESC_RATEMCS25, + [MGN_MCS26] = DESC_RATEMCS26, + [MGN_MCS27] = DESC_RATEMCS27, + [MGN_MCS28] = DESC_RATEMCS28, + [MGN_MCS29] = DESC_RATEMCS29, + [MGN_MCS30] = DESC_RATEMCS30, + [MGN_MCS31] = DESC_RATEMCS31, + [MGN_VHT1SS_MCS0] = DESC_RATEVHTSS1MCS0, + [MGN_VHT1SS_MCS1] = DESC_RATEVHTSS1MCS1, + [MGN_VHT1SS_MCS2] = DESC_RATEVHTSS1MCS2, + [MGN_VHT1SS_MCS3] = DESC_RATEVHTSS1MCS3, + [MGN_VHT1SS_MCS4] = DESC_RATEVHTSS1MCS4, + [MGN_VHT1SS_MCS5] = DESC_RATEVHTSS1MCS5, + [MGN_VHT1SS_MCS6] = DESC_RATEVHTSS1MCS6, + [MGN_VHT1SS_MCS7] = DESC_RATEVHTSS1MCS7, + [MGN_VHT1SS_MCS8] = DESC_RATEVHTSS1MCS8, + [MGN_VHT1SS_MCS9] = DESC_RATEVHTSS1MCS9, + [MGN_VHT2SS_MCS0] = DESC_RATEVHTSS2MCS0, + [MGN_VHT2SS_MCS1] = DESC_RATEVHTSS2MCS1, + [MGN_VHT2SS_MCS2] = DESC_RATEVHTSS2MCS2, + [MGN_VHT2SS_MCS3] = DESC_RATEVHTSS2MCS3, + [MGN_VHT2SS_MCS4] = DESC_RATEVHTSS2MCS4, + [MGN_VHT2SS_MCS5] = DESC_RATEVHTSS2MCS5, + [MGN_VHT2SS_MCS6] = DESC_RATEVHTSS2MCS6, + [MGN_VHT2SS_MCS7] = DESC_RATEVHTSS2MCS7, + [MGN_VHT2SS_MCS8] = DESC_RATEVHTSS2MCS8, + [MGN_VHT2SS_MCS9] = DESC_RATEVHTSS2MCS9, + [MGN_VHT3SS_MCS0] = DESC_RATEVHTSS3MCS0, + [MGN_VHT3SS_MCS1] = DESC_RATEVHTSS3MCS1, + [MGN_VHT3SS_MCS2] = DESC_RATEVHTSS3MCS2, + [MGN_VHT3SS_MCS3] = DESC_RATEVHTSS3MCS3, + [MGN_VHT3SS_MCS4] = DESC_RATEVHTSS3MCS4, + [MGN_VHT3SS_MCS5] = DESC_RATEVHTSS3MCS5, + [MGN_VHT3SS_MCS6] = DESC_RATEVHTSS3MCS6, + [MGN_VHT3SS_MCS7] = DESC_RATEVHTSS3MCS7, + [MGN_VHT3SS_MCS8] = DESC_RATEVHTSS3MCS8, + [MGN_VHT3SS_MCS9] = DESC_RATEVHTSS3MCS9, + [MGN_VHT4SS_MCS0] = DESC_RATEVHTSS4MCS0, + [MGN_VHT4SS_MCS1] = DESC_RATEVHTSS4MCS1, + [MGN_VHT4SS_MCS2] = DESC_RATEVHTSS4MCS2, + [MGN_VHT4SS_MCS3] = DESC_RATEVHTSS4MCS3, + [MGN_VHT4SS_MCS4] = DESC_RATEVHTSS4MCS4, + [MGN_VHT4SS_MCS5] = DESC_RATEVHTSS4MCS5, + [MGN_VHT4SS_MCS6] = DESC_RATEVHTSS4MCS6, + [MGN_VHT4SS_MCS7] = DESC_RATEVHTSS4MCS7, + [MGN_VHT4SS_MCS8] = DESC_RATEVHTSS4MCS8, + [MGN_VHT4SS_MCS9] = DESC_RATEVHTSS4MCS9, +}; + +u8 MRateToHwRate(enum MGN_RATE rate) { - u8 ret = DESC_RATE1M; + u8 hw_rate = DESC_RATE1M; /* default value, also is zero */ - switch (rate) { - case MGN_1M: - ret = DESC_RATE1M; - break; - case MGN_2M: - ret = DESC_RATE2M; - break; - case MGN_5_5M: - ret = DESC_RATE5_5M; - break; - case MGN_11M: - ret = DESC_RATE11M; - break; - case MGN_6M: - ret = DESC_RATE6M; - break; - case MGN_9M: - ret = DESC_RATE9M; - break; - case MGN_12M: - ret = DESC_RATE12M; - break; - case MGN_18M: - ret = DESC_RATE18M; - break; - case MGN_24M: - ret = DESC_RATE24M; - break; - case MGN_36M: - ret = DESC_RATE36M; - break; - case MGN_48M: - ret = DESC_RATE48M; - break; - case MGN_54M: - ret = DESC_RATE54M; - break; + if (rate < MGN_UNKNOWN) + hw_rate = _MRateToHwRate[rate]; - case MGN_MCS0: - ret = DESC_RATEMCS0; - break; - case MGN_MCS1: - ret = DESC_RATEMCS1; - break; - case MGN_MCS2: - ret = DESC_RATEMCS2; - break; - case MGN_MCS3: - ret = DESC_RATEMCS3; - break; - case MGN_MCS4: - ret = DESC_RATEMCS4; - break; - case MGN_MCS5: - ret = DESC_RATEMCS5; - break; - case MGN_MCS6: - ret = DESC_RATEMCS6; - break; - case MGN_MCS7: - ret = DESC_RATEMCS7; - break; - case MGN_MCS8: - ret = DESC_RATEMCS8; - break; - case MGN_MCS9: - ret = DESC_RATEMCS9; - break; - case MGN_MCS10: - ret = DESC_RATEMCS10; - break; - case MGN_MCS11: - ret = DESC_RATEMCS11; - break; - case MGN_MCS12: - ret = DESC_RATEMCS12; - break; - case MGN_MCS13: - ret = DESC_RATEMCS13; - break; - case MGN_MCS14: - ret = DESC_RATEMCS14; - break; - case MGN_MCS15: - ret = DESC_RATEMCS15; - break; - case MGN_MCS16: - ret = DESC_RATEMCS16; - break; - case MGN_MCS17: - ret = DESC_RATEMCS17; - break; - case MGN_MCS18: - ret = DESC_RATEMCS18; - break; - case MGN_MCS19: - ret = DESC_RATEMCS19; - break; - case MGN_MCS20: - ret = DESC_RATEMCS20; - break; - case MGN_MCS21: - ret = DESC_RATEMCS21; - break; - case MGN_MCS22: - ret = DESC_RATEMCS22; - break; - case MGN_MCS23: - ret = DESC_RATEMCS23; - break; - case MGN_MCS24: - ret = DESC_RATEMCS24; - break; - case MGN_MCS25: - ret = DESC_RATEMCS25; - break; - case MGN_MCS26: - ret = DESC_RATEMCS26; - break; - case MGN_MCS27: - ret = DESC_RATEMCS27; - break; - case MGN_MCS28: - ret = DESC_RATEMCS28; - break; - case MGN_MCS29: - ret = DESC_RATEMCS29; - break; - case MGN_MCS30: - ret = DESC_RATEMCS30; - break; - case MGN_MCS31: - ret = DESC_RATEMCS31; - break; + if (rate != MGN_1M && hw_rate == DESC_RATE1M) + RTW_WARN("Invalid rate 0x%x in %s\n", rate, __FUNCTION__); - case MGN_VHT1SS_MCS0: - ret = DESC_RATEVHTSS1MCS0; - break; - case MGN_VHT1SS_MCS1: - ret = DESC_RATEVHTSS1MCS1; - break; - case MGN_VHT1SS_MCS2: - ret = DESC_RATEVHTSS1MCS2; - break; - case MGN_VHT1SS_MCS3: - ret = DESC_RATEVHTSS1MCS3; - break; - case MGN_VHT1SS_MCS4: - ret = DESC_RATEVHTSS1MCS4; - break; - case MGN_VHT1SS_MCS5: - ret = DESC_RATEVHTSS1MCS5; - break; - case MGN_VHT1SS_MCS6: - ret = DESC_RATEVHTSS1MCS6; - break; - case MGN_VHT1SS_MCS7: - ret = DESC_RATEVHTSS1MCS7; - break; - case MGN_VHT1SS_MCS8: - ret = DESC_RATEVHTSS1MCS8; - break; - case MGN_VHT1SS_MCS9: - ret = DESC_RATEVHTSS1MCS9; - break; - case MGN_VHT2SS_MCS0: - ret = DESC_RATEVHTSS2MCS0; - break; - case MGN_VHT2SS_MCS1: - ret = DESC_RATEVHTSS2MCS1; - break; - case MGN_VHT2SS_MCS2: - ret = DESC_RATEVHTSS2MCS2; - break; - case MGN_VHT2SS_MCS3: - ret = DESC_RATEVHTSS2MCS3; - break; - case MGN_VHT2SS_MCS4: - ret = DESC_RATEVHTSS2MCS4; - break; - case MGN_VHT2SS_MCS5: - ret = DESC_RATEVHTSS2MCS5; - break; - case MGN_VHT2SS_MCS6: - ret = DESC_RATEVHTSS2MCS6; - break; - case MGN_VHT2SS_MCS7: - ret = DESC_RATEVHTSS2MCS7; - break; - case MGN_VHT2SS_MCS8: - ret = DESC_RATEVHTSS2MCS8; - break; - case MGN_VHT2SS_MCS9: - ret = DESC_RATEVHTSS2MCS9; - break; - case MGN_VHT3SS_MCS0: - ret = DESC_RATEVHTSS3MCS0; - break; - case MGN_VHT3SS_MCS1: - ret = DESC_RATEVHTSS3MCS1; - break; - case MGN_VHT3SS_MCS2: - ret = DESC_RATEVHTSS3MCS2; - break; - case MGN_VHT3SS_MCS3: - ret = DESC_RATEVHTSS3MCS3; - break; - case MGN_VHT3SS_MCS4: - ret = DESC_RATEVHTSS3MCS4; - break; - case MGN_VHT3SS_MCS5: - ret = DESC_RATEVHTSS3MCS5; - break; - case MGN_VHT3SS_MCS6: - ret = DESC_RATEVHTSS3MCS6; - break; - case MGN_VHT3SS_MCS7: - ret = DESC_RATEVHTSS3MCS7; - break; - case MGN_VHT3SS_MCS8: - ret = DESC_RATEVHTSS3MCS8; - break; - case MGN_VHT3SS_MCS9: - ret = DESC_RATEVHTSS3MCS9; - break; - case MGN_VHT4SS_MCS0: - ret = DESC_RATEVHTSS4MCS0; - break; - case MGN_VHT4SS_MCS1: - ret = DESC_RATEVHTSS4MCS1; - break; - case MGN_VHT4SS_MCS2: - ret = DESC_RATEVHTSS4MCS2; - break; - case MGN_VHT4SS_MCS3: - ret = DESC_RATEVHTSS4MCS3; - break; - case MGN_VHT4SS_MCS4: - ret = DESC_RATEVHTSS4MCS4; - break; - case MGN_VHT4SS_MCS5: - ret = DESC_RATEVHTSS4MCS5; - break; - case MGN_VHT4SS_MCS6: - ret = DESC_RATEVHTSS4MCS6; - break; - case MGN_VHT4SS_MCS7: - ret = DESC_RATEVHTSS4MCS7; - break; - case MGN_VHT4SS_MCS8: - ret = DESC_RATEVHTSS4MCS8; - break; - case MGN_VHT4SS_MCS9: - ret = DESC_RATEVHTSS4MCS9; - break; - default: - break; - } - - return ret; + return hw_rate; } -u8 hw_rate_to_m_rate(u8 rate) +const char * const _HDATA_RATE[DESC_RATE_NUM + 1] = { + [DESC_RATE1M] = "CCK_1M", + [DESC_RATE2M] = "CCK_2M", + [DESC_RATE5_5M] = "CCK5_5M", + [DESC_RATE11M] = "CCK_11M", + [DESC_RATE6M] = "OFDM_6M", + [DESC_RATE9M] = "OFDM_9M", + [DESC_RATE12M] = "OFDM_12M", + [DESC_RATE18M] = "OFDM_18M", + [DESC_RATE24M] = "OFDM_24M", + [DESC_RATE36M] = "OFDM_36M", + [DESC_RATE48M] = "OFDM_48M", + [DESC_RATE54M] = "OFDM_54M", + [DESC_RATEMCS0] = "MCS0", + [DESC_RATEMCS1] = "MCS1", + [DESC_RATEMCS2] = "MCS2", + [DESC_RATEMCS3] = "MCS3", + [DESC_RATEMCS4] = "MCS4", + [DESC_RATEMCS5] = "MCS5", + [DESC_RATEMCS6] = "MCS6", + [DESC_RATEMCS7] = "MCS7", + [DESC_RATEMCS8] = "MCS8", + [DESC_RATEMCS9] = "MCS9", + [DESC_RATEMCS10] = "MCS10", + [DESC_RATEMCS11] = "MCS11", + [DESC_RATEMCS12] = "MCS12", + [DESC_RATEMCS13] = "MCS13", + [DESC_RATEMCS14] = "MCS14", + [DESC_RATEMCS15] = "MCS15", + [DESC_RATEMCS16] = "MCS16", + [DESC_RATEMCS17] = "MCS17", + [DESC_RATEMCS18] = "MCS18", + [DESC_RATEMCS19] = "MCS19", + [DESC_RATEMCS20] = "MCS20", + [DESC_RATEMCS21] = "MCS21", + [DESC_RATEMCS22] = "MCS22", + [DESC_RATEMCS23] = "MCS23", + [DESC_RATEMCS24] = "MCS24", + [DESC_RATEMCS25] = "MCS25", + [DESC_RATEMCS26] = "MCS26", + [DESC_RATEMCS27] = "MCS27", + [DESC_RATEMCS28] = "MCS28", + [DESC_RATEMCS29] = "MCS29", + [DESC_RATEMCS30] = "MCS30", + [DESC_RATEMCS31] = "MCS31", + [DESC_RATEVHTSS1MCS0] = "VHT1SMCS0", + [DESC_RATEVHTSS1MCS1] = "VHT1SMCS1", + [DESC_RATEVHTSS1MCS2] = "VHT1SMCS2", + [DESC_RATEVHTSS1MCS3] = "VHT1SMCS3", + [DESC_RATEVHTSS1MCS4] = "VHT1SMCS4", + [DESC_RATEVHTSS1MCS5] = "VHT1SMCS5", + [DESC_RATEVHTSS1MCS6] = "VHT1SMCS6", + [DESC_RATEVHTSS1MCS7] = "VHT1SMCS7", + [DESC_RATEVHTSS1MCS8] = "VHT1SMCS8", + [DESC_RATEVHTSS1MCS9] = "VHT1SMCS9", + [DESC_RATEVHTSS2MCS0] = "VHT2SMCS0", + [DESC_RATEVHTSS2MCS1] = "VHT2SMCS1", + [DESC_RATEVHTSS2MCS2] = "VHT2SMCS2", + [DESC_RATEVHTSS2MCS3] = "VHT2SMCS3", + [DESC_RATEVHTSS2MCS4] = "VHT2SMCS4", + [DESC_RATEVHTSS2MCS5] = "VHT2SMCS5", + [DESC_RATEVHTSS2MCS6] = "VHT2SMCS6", + [DESC_RATEVHTSS2MCS7] = "VHT2SMCS7", + [DESC_RATEVHTSS2MCS8] = "VHT2SMCS8", + [DESC_RATEVHTSS2MCS9] = "VHT2SMCS9", + [DESC_RATEVHTSS3MCS0] = "VHT3SMCS0", + [DESC_RATEVHTSS3MCS1] = "VHT3SMCS1", + [DESC_RATEVHTSS3MCS2] = "VHT3SMCS2", + [DESC_RATEVHTSS3MCS3] = "VHT3SMCS3", + [DESC_RATEVHTSS3MCS4] = "VHT3SMCS4", + [DESC_RATEVHTSS3MCS5] = "VHT3SMCS5", + [DESC_RATEVHTSS3MCS6] = "VHT3SMCS6", + [DESC_RATEVHTSS3MCS7] = "VHT3SMCS7", + [DESC_RATEVHTSS3MCS8] = "VHT3SMCS8", + [DESC_RATEVHTSS3MCS9] = "VHT3SMCS9", + [DESC_RATEVHTSS4MCS0] = "VHT4SMCS0", + [DESC_RATEVHTSS4MCS1] = "VHT4SMCS1", + [DESC_RATEVHTSS4MCS2] = "VHT4SMCS2", + [DESC_RATEVHTSS4MCS3] = "VHT4SMCS3", + [DESC_RATEVHTSS4MCS4] = "VHT4SMCS4", + [DESC_RATEVHTSS4MCS5] = "VHT4SMCS5", + [DESC_RATEVHTSS4MCS6] = "VHT4SMCS6", + [DESC_RATEVHTSS4MCS7] = "VHT4SMCS7", + [DESC_RATEVHTSS4MCS8] = "VHT4SMCS8", + [DESC_RATEVHTSS4MCS9] = "VHT4SMCS9", + [DESC_RATE_NUM] = "UNKNOWN", +}; + +static const u8 _hw_rate_to_m_rate[DESC_RATE_NUM] = { + [DESC_RATE1M] = MGN_1M, + [DESC_RATE2M] = MGN_2M, + [DESC_RATE5_5M] = MGN_5_5M, + [DESC_RATE11M] = MGN_11M, + [DESC_RATE6M] = MGN_6M, + [DESC_RATE9M] = MGN_9M, + [DESC_RATE12M] = MGN_12M, + [DESC_RATE18M] = MGN_18M, + [DESC_RATE24M] = MGN_24M, + [DESC_RATE36M] = MGN_36M, + [DESC_RATE48M] = MGN_48M, + [DESC_RATE54M] = MGN_54M, + [DESC_RATEMCS0] = MGN_MCS0, + [DESC_RATEMCS1] = MGN_MCS1, + [DESC_RATEMCS2] = MGN_MCS2, + [DESC_RATEMCS3] = MGN_MCS3, + [DESC_RATEMCS4] = MGN_MCS4, + [DESC_RATEMCS5] = MGN_MCS5, + [DESC_RATEMCS6] = MGN_MCS6, + [DESC_RATEMCS7] = MGN_MCS7, + [DESC_RATEMCS8] = MGN_MCS8, + [DESC_RATEMCS9] = MGN_MCS9, + [DESC_RATEMCS10] = MGN_MCS10, + [DESC_RATEMCS11] = MGN_MCS11, + [DESC_RATEMCS12] = MGN_MCS12, + [DESC_RATEMCS13] = MGN_MCS13, + [DESC_RATEMCS14] = MGN_MCS14, + [DESC_RATEMCS15] = MGN_MCS15, + [DESC_RATEMCS16] = MGN_MCS16, + [DESC_RATEMCS17] = MGN_MCS17, + [DESC_RATEMCS18] = MGN_MCS18, + [DESC_RATEMCS19] = MGN_MCS19, + [DESC_RATEMCS20] = MGN_MCS20, + [DESC_RATEMCS21] = MGN_MCS21, + [DESC_RATEMCS22] = MGN_MCS22, + [DESC_RATEMCS23] = MGN_MCS23, + [DESC_RATEMCS24] = MGN_MCS24, + [DESC_RATEMCS25] = MGN_MCS25, + [DESC_RATEMCS26] = MGN_MCS26, + [DESC_RATEMCS27] = MGN_MCS27, + [DESC_RATEMCS28] = MGN_MCS28, + [DESC_RATEMCS29] = MGN_MCS29, + [DESC_RATEMCS30] = MGN_MCS30, + [DESC_RATEMCS31] = MGN_MCS31, + [DESC_RATEVHTSS1MCS0] = MGN_VHT1SS_MCS0, + [DESC_RATEVHTSS1MCS1] = MGN_VHT1SS_MCS1, + [DESC_RATEVHTSS1MCS2] = MGN_VHT1SS_MCS2, + [DESC_RATEVHTSS1MCS3] = MGN_VHT1SS_MCS3, + [DESC_RATEVHTSS1MCS4] = MGN_VHT1SS_MCS4, + [DESC_RATEVHTSS1MCS5] = MGN_VHT1SS_MCS5, + [DESC_RATEVHTSS1MCS6] = MGN_VHT1SS_MCS6, + [DESC_RATEVHTSS1MCS7] = MGN_VHT1SS_MCS7, + [DESC_RATEVHTSS1MCS8] = MGN_VHT1SS_MCS8, + [DESC_RATEVHTSS1MCS9] = MGN_VHT1SS_MCS9, + [DESC_RATEVHTSS2MCS0] = MGN_VHT2SS_MCS0, + [DESC_RATEVHTSS2MCS1] = MGN_VHT2SS_MCS1, + [DESC_RATEVHTSS2MCS2] = MGN_VHT2SS_MCS2, + [DESC_RATEVHTSS2MCS3] = MGN_VHT2SS_MCS3, + [DESC_RATEVHTSS2MCS4] = MGN_VHT2SS_MCS4, + [DESC_RATEVHTSS2MCS5] = MGN_VHT2SS_MCS5, + [DESC_RATEVHTSS2MCS6] = MGN_VHT2SS_MCS6, + [DESC_RATEVHTSS2MCS7] = MGN_VHT2SS_MCS7, + [DESC_RATEVHTSS2MCS8] = MGN_VHT2SS_MCS8, + [DESC_RATEVHTSS2MCS9] = MGN_VHT2SS_MCS9, + [DESC_RATEVHTSS3MCS0] = MGN_VHT3SS_MCS0, + [DESC_RATEVHTSS3MCS1] = MGN_VHT3SS_MCS1, + [DESC_RATEVHTSS3MCS2] = MGN_VHT3SS_MCS2, + [DESC_RATEVHTSS3MCS3] = MGN_VHT3SS_MCS3, + [DESC_RATEVHTSS3MCS4] = MGN_VHT3SS_MCS4, + [DESC_RATEVHTSS3MCS5] = MGN_VHT3SS_MCS5, + [DESC_RATEVHTSS3MCS6] = MGN_VHT3SS_MCS6, + [DESC_RATEVHTSS3MCS7] = MGN_VHT3SS_MCS7, + [DESC_RATEVHTSS3MCS8] = MGN_VHT3SS_MCS8, + [DESC_RATEVHTSS3MCS9] = MGN_VHT3SS_MCS9, + [DESC_RATEVHTSS4MCS0] = MGN_VHT4SS_MCS0, + [DESC_RATEVHTSS4MCS1] = MGN_VHT4SS_MCS1, + [DESC_RATEVHTSS4MCS2] = MGN_VHT4SS_MCS2, + [DESC_RATEVHTSS4MCS3] = MGN_VHT4SS_MCS3, + [DESC_RATEVHTSS4MCS4] = MGN_VHT4SS_MCS4, + [DESC_RATEVHTSS4MCS5] = MGN_VHT4SS_MCS5, + [DESC_RATEVHTSS4MCS6] = MGN_VHT4SS_MCS6, + [DESC_RATEVHTSS4MCS7] = MGN_VHT4SS_MCS7, + [DESC_RATEVHTSS4MCS8] = MGN_VHT4SS_MCS8, + [DESC_RATEVHTSS4MCS9] = MGN_VHT4SS_MCS9, +}; + +u8 hw_rate_to_m_rate(u8 hw_rate) { - u8 ret_rate = MGN_1M; + u8 rate = MGN_1M; /* default value */ - switch (rate) { + if (hw_rate < DESC_RATE_NUM) + rate = _hw_rate_to_m_rate[hw_rate]; + else + RTW_WARN("Invalid hw_rate 0x%x in %s\n", hw_rate, __FUNCTION__); - case DESC_RATE1M: - ret_rate = MGN_1M; - break; - case DESC_RATE2M: - ret_rate = MGN_2M; - break; - case DESC_RATE5_5M: - ret_rate = MGN_5_5M; - break; - case DESC_RATE11M: - ret_rate = MGN_11M; - break; - case DESC_RATE6M: - ret_rate = MGN_6M; - break; - case DESC_RATE9M: - ret_rate = MGN_9M; - break; - case DESC_RATE12M: - ret_rate = MGN_12M; - break; - case DESC_RATE18M: - ret_rate = MGN_18M; - break; - case DESC_RATE24M: - ret_rate = MGN_24M; - break; - case DESC_RATE36M: - ret_rate = MGN_36M; - break; - case DESC_RATE48M: - ret_rate = MGN_48M; - break; - case DESC_RATE54M: - ret_rate = MGN_54M; - break; - case DESC_RATEMCS0: - ret_rate = MGN_MCS0; - break; - case DESC_RATEMCS1: - ret_rate = MGN_MCS1; - break; - case DESC_RATEMCS2: - ret_rate = MGN_MCS2; - break; - case DESC_RATEMCS3: - ret_rate = MGN_MCS3; - break; - case DESC_RATEMCS4: - ret_rate = MGN_MCS4; - break; - case DESC_RATEMCS5: - ret_rate = MGN_MCS5; - break; - case DESC_RATEMCS6: - ret_rate = MGN_MCS6; - break; - case DESC_RATEMCS7: - ret_rate = MGN_MCS7; - break; - case DESC_RATEMCS8: - ret_rate = MGN_MCS8; - break; - case DESC_RATEMCS9: - ret_rate = MGN_MCS9; - break; - case DESC_RATEMCS10: - ret_rate = MGN_MCS10; - break; - case DESC_RATEMCS11: - ret_rate = MGN_MCS11; - break; - case DESC_RATEMCS12: - ret_rate = MGN_MCS12; - break; - case DESC_RATEMCS13: - ret_rate = MGN_MCS13; - break; - case DESC_RATEMCS14: - ret_rate = MGN_MCS14; - break; - case DESC_RATEMCS15: - ret_rate = MGN_MCS15; - break; - case DESC_RATEMCS16: - ret_rate = MGN_MCS16; - break; - case DESC_RATEMCS17: - ret_rate = MGN_MCS17; - break; - case DESC_RATEMCS18: - ret_rate = MGN_MCS18; - break; - case DESC_RATEMCS19: - ret_rate = MGN_MCS19; - break; - case DESC_RATEMCS20: - ret_rate = MGN_MCS20; - break; - case DESC_RATEMCS21: - ret_rate = MGN_MCS21; - break; - case DESC_RATEMCS22: - ret_rate = MGN_MCS22; - break; - case DESC_RATEMCS23: - ret_rate = MGN_MCS23; - break; - case DESC_RATEMCS24: - ret_rate = MGN_MCS24; - break; - case DESC_RATEMCS25: - ret_rate = MGN_MCS25; - break; - case DESC_RATEMCS26: - ret_rate = MGN_MCS26; - break; - case DESC_RATEMCS27: - ret_rate = MGN_MCS27; - break; - case DESC_RATEMCS28: - ret_rate = MGN_MCS28; - break; - case DESC_RATEMCS29: - ret_rate = MGN_MCS29; - break; - case DESC_RATEMCS30: - ret_rate = MGN_MCS30; - break; - case DESC_RATEMCS31: - ret_rate = MGN_MCS31; - break; - case DESC_RATEVHTSS1MCS0: - ret_rate = MGN_VHT1SS_MCS0; - break; - case DESC_RATEVHTSS1MCS1: - ret_rate = MGN_VHT1SS_MCS1; - break; - case DESC_RATEVHTSS1MCS2: - ret_rate = MGN_VHT1SS_MCS2; - break; - case DESC_RATEVHTSS1MCS3: - ret_rate = MGN_VHT1SS_MCS3; - break; - case DESC_RATEVHTSS1MCS4: - ret_rate = MGN_VHT1SS_MCS4; - break; - case DESC_RATEVHTSS1MCS5: - ret_rate = MGN_VHT1SS_MCS5; - break; - case DESC_RATEVHTSS1MCS6: - ret_rate = MGN_VHT1SS_MCS6; - break; - case DESC_RATEVHTSS1MCS7: - ret_rate = MGN_VHT1SS_MCS7; - break; - case DESC_RATEVHTSS1MCS8: - ret_rate = MGN_VHT1SS_MCS8; - break; - case DESC_RATEVHTSS1MCS9: - ret_rate = MGN_VHT1SS_MCS9; - break; - case DESC_RATEVHTSS2MCS0: - ret_rate = MGN_VHT2SS_MCS0; - break; - case DESC_RATEVHTSS2MCS1: - ret_rate = MGN_VHT2SS_MCS1; - break; - case DESC_RATEVHTSS2MCS2: - ret_rate = MGN_VHT2SS_MCS2; - break; - case DESC_RATEVHTSS2MCS3: - ret_rate = MGN_VHT2SS_MCS3; - break; - case DESC_RATEVHTSS2MCS4: - ret_rate = MGN_VHT2SS_MCS4; - break; - case DESC_RATEVHTSS2MCS5: - ret_rate = MGN_VHT2SS_MCS5; - break; - case DESC_RATEVHTSS2MCS6: - ret_rate = MGN_VHT2SS_MCS6; - break; - case DESC_RATEVHTSS2MCS7: - ret_rate = MGN_VHT2SS_MCS7; - break; - case DESC_RATEVHTSS2MCS8: - ret_rate = MGN_VHT2SS_MCS8; - break; - case DESC_RATEVHTSS2MCS9: - ret_rate = MGN_VHT2SS_MCS9; - break; - case DESC_RATEVHTSS3MCS0: - ret_rate = MGN_VHT3SS_MCS0; - break; - case DESC_RATEVHTSS3MCS1: - ret_rate = MGN_VHT3SS_MCS1; - break; - case DESC_RATEVHTSS3MCS2: - ret_rate = MGN_VHT3SS_MCS2; - break; - case DESC_RATEVHTSS3MCS3: - ret_rate = MGN_VHT3SS_MCS3; - break; - case DESC_RATEVHTSS3MCS4: - ret_rate = MGN_VHT3SS_MCS4; - break; - case DESC_RATEVHTSS3MCS5: - ret_rate = MGN_VHT3SS_MCS5; - break; - case DESC_RATEVHTSS3MCS6: - ret_rate = MGN_VHT3SS_MCS6; - break; - case DESC_RATEVHTSS3MCS7: - ret_rate = MGN_VHT3SS_MCS7; - break; - case DESC_RATEVHTSS3MCS8: - ret_rate = MGN_VHT3SS_MCS8; - break; - case DESC_RATEVHTSS3MCS9: - ret_rate = MGN_VHT3SS_MCS9; - break; - case DESC_RATEVHTSS4MCS0: - ret_rate = MGN_VHT4SS_MCS0; - break; - case DESC_RATEVHTSS4MCS1: - ret_rate = MGN_VHT4SS_MCS1; - break; - case DESC_RATEVHTSS4MCS2: - ret_rate = MGN_VHT4SS_MCS2; - break; - case DESC_RATEVHTSS4MCS3: - ret_rate = MGN_VHT4SS_MCS3; - break; - case DESC_RATEVHTSS4MCS4: - ret_rate = MGN_VHT4SS_MCS4; - break; - case DESC_RATEVHTSS4MCS5: - ret_rate = MGN_VHT4SS_MCS5; - break; - case DESC_RATEVHTSS4MCS6: - ret_rate = MGN_VHT4SS_MCS6; - break; - case DESC_RATEVHTSS4MCS7: - ret_rate = MGN_VHT4SS_MCS7; - break; - case DESC_RATEVHTSS4MCS8: - ret_rate = MGN_VHT4SS_MCS8; - break; - case DESC_RATEVHTSS4MCS9: - ret_rate = MGN_VHT4SS_MCS9; - break; - - default: - RTW_INFO("hw_rate_to_m_rate(): Non supported Rate [%x]!!!\n", rate); - break; - } - - return ret_rate; + return rate; } +#ifdef CONFIG_RTW_DEBUG +void dump_hw_rate_map_test(void *sel) +{ + RATE_SECTION rs; + u8 hw_rate; + enum MGN_RATE m_rate; + int i; + + for (rs = 0; rs < RATE_SECTION_NUM; rs++) { + for (i = 0; i < rates_by_sections[rs].rate_num; i++) { + hw_rate = MRateToHwRate(rates_by_sections[rs].rates[i]); + RTW_PRINT_SEL(sel, "m_rate:%s(%d) to hw_rate:%s(%d)\n" + , MGN_RATE_STR(rates_by_sections[rs].rates[i]), rates_by_sections[rs].rates[i] + , HDATA_RATE(hw_rate), hw_rate + ); + } + if (rs == HT_4SS) { /* show MCS32 after MCS31 */ + hw_rate = MRateToHwRate(MGN_MCS32); + RTW_PRINT_SEL(sel, "m_rate:%s(%d) to hw_rate:%s(%d)\n" + , MGN_RATE_STR(MGN_MCS32), MGN_MCS32 + , HDATA_RATE(hw_rate), hw_rate + ); + } + } + hw_rate = MRateToHwRate(MGN_UNKNOWN); + RTW_PRINT_SEL(sel, "m_rate:%s(%d) to hw_rate:%s(%d)\n" + , MGN_RATE_STR(MGN_UNKNOWN), MGN_UNKNOWN + , HDATA_RATE(hw_rate), hw_rate + ); + + for (i = DESC_RATE1M; i <= DESC_RATE_NUM; i++) { + m_rate = hw_rate_to_m_rate(i); + RTW_PRINT_SEL(sel, "hw_rate:%s(%d) to m_rate:%s(%d)\n" + , HDATA_RATE(i), i + , MGN_RATE_STR(m_rate), m_rate + ); + } +} +#endif /* CONFIG_RTW_DEBUG */ + void HalSetBrateCfg( PADAPTER Adapter, u8 *mBratesOS, @@ -1271,6 +1024,53 @@ void rtw_hal_reqtxrpt(_adapter *padapter, u8 macid) padapter->hal_func.reqtxrpt(padapter, macid); } +int rtw_get_sta_tx_stat(_adapter *adapter, u8 mac_id, u8 *macaddr) +{ + struct sta_priv *pstapriv_primary = &(GET_PRIMARY_ADAPTER(adapter))->stapriv; + struct submit_ctx gotc2h; + u8 cmd_ret; + int ret = _SUCCESS; + + if (!adapter->hal_func.reqtxrpt) { + RTW_INFO("Not support.\n"); + ret = RTW_NOT_SUPPORT; + goto exit; + } + + if (pstapriv_primary->gotc2h != NULL) { + RTW_INFO("sta tx stat is processing.\n"); + ret = RTW_BUSY; + goto exit; + } + + rtw_sctx_init(&gotc2h, 60); + pstapriv_primary->gotc2h = &gotc2h; + _rtw_memcpy(pstapriv_primary->c2h_sta_mac, macaddr, ETH_ALEN); + pstapriv_primary->c2h_adapter_id = adapter->iface_id; + + cmd_ret = rtw_reqtxrpt_cmd(adapter, mac_id); + if (cmd_ret != _SUCCESS) { + RTW_WARN("rtw_reqtxrpt_cmd fail\n"); + ret = _FAIL; + } else + rtw_sctx_wait(&gotc2h, __func__); + + enter_critical_bh(&pstapriv_primary->tx_rpt_lock); + pstapriv_primary->gotc2h = NULL; + exit_critical_bh(&pstapriv_primary->tx_rpt_lock); + + if (cmd_ret == _SUCCESS && gotc2h.status != RTW_SCTX_DONE_SUCCESS) { + RTW_WARN("wait for C2H timeout, operation abort!!\n"); + ret = _FAIL; + } + + _rtw_memset(pstapriv_primary->c2h_sta_mac, 0, ETH_ALEN); + pstapriv_primary->c2h_adapter_id = CONFIG_IFACE_NUMBER; + +exit: + return ret; +} + void rtw_hal_dump_macaddr(void *sel, _adapter *adapter) { int i; @@ -1285,6 +1085,30 @@ void rtw_hal_dump_macaddr(void *sel, _adapter *adapter) #endif } +/** + * rtw_hal_set_hw_macaddr() - Set HW MAC address + * @adapter: struct PADAPTER + * @mac_addr: 6-bytes mac address + * + * Set Wifi Mac address by writing to the relative HW registers, + * + */ +void rtw_hal_set_hw_macaddr(PADAPTER adapter, u8 *mac_addr) +{ + rtw_ps_deny(adapter, PS_DENY_IOCTL); + LeaveAllPowerSaveModeDirect(adapter); + +#ifdef CONFIG_MI_WITH_MBSSID_CAM + rtw_hal_change_macaddr_mbid(adapter, mac_addr); +#else + rtw_hal_set_hwreg(adapter, HW_VAR_MAC_ADDR, mac_addr); +#endif +#ifdef CONFIG_RTW_DEBUG + rtw_hal_dump_macaddr(RTW_DBGDUMP, adapter); +#endif + rtw_ps_deny_cancel(adapter, PS_DENY_IOCTL); +} + #ifdef RTW_HALMAC void rtw_hal_hw_port_enable(_adapter *adapter) { @@ -1349,7 +1173,7 @@ void rtw_mi_set_mac_addr(_adapter *adapter) rtw_hal_set_hwreg(iface, HW_VAR_MAC_ADDR, adapter_mac_addr(iface)); } #endif - if (1) + if (0) rtw_hal_dump_macaddr(RTW_DBGDUMP, adapter); } @@ -1729,6 +1553,32 @@ int c2h_mac_hidden_rpt_2_hdl(_adapter *adapter, u8 *data, u8 len) } #endif + #if defined(CONFIG_8723F) + if (IS_8723F_SERIES(hal_data->version_id)) { + #define GET_C2H_MAC_HIDDEN_RPT_BT_SUPPORT(_data) LE_BITS_TO_1BYTE(((u8 *)(_data)) + 4, 0, 1) + #define GET_C2H_MAC_HIDDEN_RPT_5G_SUPPORT(_data) LE_BITS_TO_1BYTE(((u8 *)(_data)) + 4, 1, 1) + + struct hal_spec_t *hal_spec; + u8 bt_support = GET_C2H_MAC_HIDDEN_RPT_BT_SUPPORT(data); + u8 band_5g_support = GET_C2H_MAC_HIDDEN_RPT_5G_SUPPORT(data); + + hal_spec = GET_HAL_SPEC(adapter); + + if (DBG_C2H_MAC_HIDDEN_RPT_HANDLE) { + RTW_PRINT("bt support:%u\n", bt_support); + RTW_PRINT("band 5g support:%u\n", band_5g_support); + } + + hal_spec->rfpath_num_5g = (band_5g_support ? hal_spec->rfpath_num_5g : 0); + if(!band_5g_support) + hal_spec->band_cap &= ~BAND_CAP_5G; + + hal_data->EEPROMBluetoothCoexist = bt_support; + /* 0 : solo module, 1 : combo module */ + hal_data->InterfaceSel = bt_support; + } + #endif + ret = _SUCCESS; exit: @@ -2184,8 +2034,12 @@ int c2h_lps_status_rpt(PADAPTER adapter, u8 *data, u8 len) status_code = GET_C2H_LPS_STATUS_RPT_GET_STATUS_CODE(data); /* action=0: report force leave null data status */ + /* action=1: report Rf on status when receiving a SetPwrMode H2C with PwrState = RFON */ switch (action) { - case 0: + case 0: + /* status code 0: success, 1: no ack, 2: timeout, 3: cancel */ + case 1: + /* status code 0: FW has already turn to RFON */ pwrpriv->lps_ack_status = status_code; if (DBG_LPS_STATUS_RPT) @@ -2215,10 +2069,10 @@ void rtw_hal_update_sta_wset(_adapter *adapter, struct sta_info *psta) if ((psta->wireless_mode & WIRELESS_11G) || (psta->wireless_mode & WIRELESS_11A)) w_set |= WIRELESS_OFDM; - if (psta->wireless_mode & WIRELESS_11_24N) + if ((psta->wireless_mode & WIRELESS_11_24N) || (psta->wireless_mode & WIRELESS_11_5N)) w_set |= WIRELESS_HT; - if ((psta->wireless_mode & WIRELESS_11AC) || (psta->wireless_mode & WIRELESS_11_5N)) + if (psta->wireless_mode & WIRELESS_11AC) w_set |= WIRELESS_VHT; psta->cmn.support_wireless_set = w_set; @@ -3297,8 +3151,12 @@ void rtw_ap_multi_bcn_cfg(_adapter *adapter) rtw_write8(adapter, REG_ATIMWND, 0x0c); /* 12ms */ #ifndef CONFIG_HW_P0_TSF_SYNC + #ifdef CONFIG_RTL8192F + rtw_write16(adapter, REG_TSFTR_SYN_OFFSET, 0x640);/*unit:32us*/ + #else/*not CONFIG_RTL8192F*/ rtw_write16(adapter, REG_TSFTR_SYN_OFFSET, 0x7fff);/* +32767 (~32ms) */ #endif + #endif /*reset TSF*/ rtw_write8(adapter, REG_DUAL_TSF_RST, BIT(0)); @@ -3473,7 +3331,7 @@ static void rtw_hal_get_macaddr_port(_adapter *adapter, u8 *mac_addr) } #endif /* !RTW_HALMAC */ - RTW_INFO("%s "ADPT_FMT"- hw port(%d) mac_addr ="MAC_FMT"\n", __func__, + RTW_DBG("%s "ADPT_FMT"- hw port(%d) mac_addr ="MAC_FMT"\n", __func__, ADPT_ARG(adapter), hwport, MAC_ARG(mac_addr)); } #endif/*#ifdef CONFIG_MI_WITH_MBSSID_CAM*/ @@ -3788,14 +3646,14 @@ void rtw_hal_rcr_set_chk_bssid(_adapter *adapter, u8 self_action) HAL_DATA_TYPE *hal_data = GET_HAL_DATA(adapter); struct hal_spec_t *hal_spec = GET_HAL_SPEC(adapter); u32 rcr, rcr_new; +#if !defined(CONFIG_MI_WITH_MBSSID_CAM) || defined(CONFIG_CLIENT_PORT_CFG) || defined(CONFIG_RTW_MULTI_AP) struct mi_state mstate, mstate_s; +#endif rtw_hal_get_hwreg(adapter, HW_VAR_RCR, (u8 *)&rcr); rcr_new = rcr; -#if defined(CONFIG_MI_WITH_MBSSID_CAM) && !defined(CONFIG_CLIENT_PORT_CFG) - rcr_new &= ~(RCR_CBSSID_BCN | RCR_CBSSID_DATA); -#else +#if !defined(CONFIG_MI_WITH_MBSSID_CAM) || defined(CONFIG_CLIENT_PORT_CFG) || defined(CONFIG_RTW_MULTI_AP) rtw_mi_status_no_self(adapter, &mstate); rtw_mi_status_no_others(adapter, &mstate_s); @@ -3855,7 +3713,11 @@ void rtw_hal_rcr_set_chk_bssid(_adapter *adapter, u8 self_action) }; rtw_mi_status_merge(&mstate, &mstate_s); +#endif /* !defined(CONFIG_MI_WITH_MBSSID_CAM) || defined(CONFIG_CLIENT_PORT_CFG) || defined(CONFIG_RTW_MULTI_AP) */ +#if defined(CONFIG_MI_WITH_MBSSID_CAM) && !defined(CONFIG_CLIENT_PORT_CFG) + rcr_new &= ~(RCR_CBSSID_BCN | RCR_CBSSID_DATA); +#else if (MSTATE_AP_NUM(&mstate) || MSTATE_MESH_NUM(&mstate) || MSTATE_TDLS_LD_NUM(&mstate) #ifdef CONFIG_FIND_BEST_CHANNEL || MSTATE_SCAN_ENTER_NUM(&mstate) @@ -3885,6 +3747,15 @@ void rtw_hal_rcr_set_chk_bssid(_adapter *adapter, u8 self_action) #endif #endif /* CONFIG_MI_WITH_MBSSID_CAM */ +#ifdef CONFIG_RTW_MULTI_AP + if (MSTATE_AP_NUM(&mstate) + && rtw_unassoc_sta_src_chk(adapter, UNASOC_STA_SRC_RX_NMY_UC) + ) { + rcr_new |= RCR_AAP; + } else + rcr_new &= ~RCR_AAP; +#endif + if (rcr == rcr_new) return; @@ -3900,6 +3771,11 @@ void rtw_hal_rcr_set_chk_bssid(_adapter *adapter, u8 self_action) rtw_hal_tsf_update_restore(adapter); } +void rtw_hal_rcr_set_chk_bssid_act_non(_adapter *adapter) +{ + rtw_hal_rcr_set_chk_bssid(adapter, MLME_ACTION_NONE); +} + static void hw_var_set_rcr_am(_adapter *adapter, u8 enable) { u32 rcr = RCR_AM; @@ -4084,9 +3960,6 @@ void rtw_hal_set_tx_aclt_conf(_adapter *adapter, u8 conf_idx, struct tx_aclt_con void rtw_hal_update_tx_aclt(_adapter *adapter) { -#ifdef CONFIG_TX_MCAST2UNI - extern int rtw_mc2u_disable; -#endif struct dvobj_priv *dvobj = adapter_to_dvobj(adapter); struct macid_ctl_t *macid_ctl = adapter_to_macidctl(adapter); u8 lt_en = 0, lt_en_ori; @@ -4094,6 +3967,24 @@ void rtw_hal_update_tx_aclt(_adapter *adapter) u32 lt, lt_ori; struct tx_aclt_conf_t *conf; int i; +#ifdef CONFIG_AP_MODE +#if CONFIG_RTW_AP_DATA_BMC_TO_UC + _adapter *iface; + u8 ap_m2u_num = 0; + + for (i = 0; i < dvobj->iface_nums; i++) { + iface = dvobj->padapters[i]; + if (!iface) + continue; + + if (MLME_IS_AP(iface) + && ((iface->b2u_flags_ap_src & RTW_AP_B2U_IP_MCAST) + || (iface->b2u_flags_ap_fwd & RTW_AP_B2U_IP_MCAST)) + ) + ap_m2u_num++; + } +#endif +#endif /* CONFIG_AP_MODE */ lt_en_ori = rtw_read8(adapter, REG_LIFETIME_EN); lt_ori = rtw_read32(adapter, REG_PKT_LIFE_TIME); @@ -4112,11 +4003,12 @@ void rtw_hal_update_tx_aclt(_adapter *adapter) if (conf->be_bk) lt_be_bk = conf->be_bk; } - #if defined(CONFIG_TX_MCAST2UNI) || defined(CONFIG_RTW_MESH) + #ifdef CONFIG_AP_MODE + #if CONFIG_RTW_AP_DATA_BMC_TO_UC || defined(CONFIG_RTW_MESH) else if (0 - #ifdef CONFIG_TX_MCAST2UNI + #if CONFIG_RTW_AP_DATA_BMC_TO_UC || (i == TX_ACLT_CONF_AP_M2U - && !rtw_mc2u_disable + && ap_m2u_num && macid_ctl->op_num[H2C_MSR_ROLE_STA] /* having AP mode with STA connected */) #endif #ifdef CONFIG_RTW_MESH @@ -4132,6 +4024,7 @@ void rtw_hal_update_tx_aclt(_adapter *adapter) lt_be_bk = conf->be_bk; } #endif + #endif /* CONFIG_AP_MODE */ } if (dvobj->tx_aclt_force_val.en != 0xFF) @@ -4715,6 +4608,49 @@ void rtw_set_p2p_ps_offload_cmd(_adapter *adapter, u8 p2p_ps_state) #endif /* RTW_HALMAC */ #endif /* CONFIG_P2P */ +#if defined(CONFIG_RTL8822C) && defined(CONFIG_SUPPORT_DYNAMIC_TXPWR) +static void _rtw_hal_dtp_macid_set( + _adapter *padapter, u8 opmode, u8 mac_id) +{ + struct macid_ctl_t *macid_ctl = &(padapter->dvobj->macid_ctl); + struct sta_info *psta; + u8 h2c_cmd[H2C_FW_CRC5_SEARCH_LEN] = {0}; + u8 mac_addr[ETH_ALEN] = {0}; + + if (opmode) { + psta = macid_ctl->sta[mac_id]; + if (psta) + _rtw_memcpy(mac_addr, psta->cmn.mac_addr, ETH_ALEN); + + if (rtw_check_invalid_mac_address(mac_addr, _FALSE)) + return; + } + /* else DON'T CARE H2C_FW_CRC5_SEARCH mac addr in disconnected case */ + + if (rtw_get_chip_type(padapter) == RTL8822C) { + SET_H2CCMD_FW_CRC5_SEARCH_EN(h2c_cmd, opmode); + SET_H2CCMD_FW_CRC5_SEARCH_MACID(h2c_cmd, mac_id); + SET_H2CCMD_FW_CRC5_SEARCH_MAC(&h2c_cmd[1], mac_addr); + if (rtw_hal_fill_h2c_cmd(padapter, H2C_FW_CRC5_SEARCH, + H2C_FW_CRC5_SEARCH_LEN, h2c_cmd) != _SUCCESS) + RTW_WARN("%s : set h2c - 0x%02x fail!\n", __func__, H2C_FW_CRC5_SEARCH); + } +} + +static void rtw_hal_dtp_macid_set(_adapter *padapter, u8 opmode, + bool macid_ind, u8 mac_id, u8 macid_end) +{ + int i; + + if (macid_ind == 0) { + _rtw_hal_dtp_macid_set(padapter, opmode, mac_id); + } else { + for (i = mac_id; i <= macid_end; i++) + _rtw_hal_dtp_macid_set(padapter, opmode, i); + } +} +#endif + /* * rtw_hal_set_FwMediaStatusRpt_cmd - * @@ -4738,6 +4674,10 @@ s32 rtw_hal_set_FwMediaStatusRpt_cmd(_adapter *adapter, bool opmode, bool miraca #endif u8 op_num_change_bmp = 0; +#if defined(CONFIG_RTL8822C) && defined(CONFIG_SUPPORT_DYNAMIC_TXPWR) + rtw_hal_dtp_macid_set(adapter, opmode, macid_ind, macid, macid_end); +#endif + SET_H2CCMD_MSRRPT_PARM_OPMODE(parm, opmode); SET_H2CCMD_MSRRPT_PARM_MACID_IND(parm, macid_ind); SET_H2CCMD_MSRRPT_PARM_MIRACAST(parm, miracast); @@ -4873,7 +4813,7 @@ void rtw_hal_switch_gpio_wl_ctrl(_adapter *padapter, u8 index, u8 enable) void rtw_hal_set_output_gpio(_adapter *padapter, u8 index, u8 outputval) { #if defined(CONFIG_RTL8192F) - rtw_hal_set_hwreg(padapter, HW_VAR_WOW_OUTPUT_GPIO, (u8 *)(&index)); + rtw_hal_set_hwreg(padapter, HW_VAR_WOW_OUTPUT_GPIO, (u8 *)(&outputval)); #else if (index <= 7) { /* config GPIO mode */ @@ -5009,7 +4949,7 @@ void rtw_hal_set_FwAoacRsvdPage_cmd(PADAPTER padapter, PRSVDPAGE_LOC rsvdpageloc u1H2CAoacRsvdPageParm); pwrpriv->wowlan_aoac_rpt_loc = rsvdpageloc->LocAOACReport; } -#ifdef CONFIG_PNO_SUPPORT +#if defined(CONFIG_PNO_SUPPORT) && !defined(RTW_HALMAC) else { if (!pwrpriv->wowlan_in_resume) { @@ -5024,7 +4964,7 @@ void rtw_hal_set_FwAoacRsvdPage_cmd(PADAPTER padapter, PRSVDPAGE_LOC rsvdpageloc u1H2CAoacRsvdPageParm); } } -#endif /* CONFIG_PNO_SUPPORT */ +#endif /* defined(CONFIG_PNO_SUPPORT) && !defined(RTW_HALMAC) */ #endif /* CONFIG_WOWLAN */ } @@ -5113,6 +5053,7 @@ int rtw_hal_get_rsvd_page(_adapter *adapter, u32 page_offset, void rtw_dump_rsvd_page(void *sel, _adapter *adapter, u8 page_offset, u8 page_num) { +#if defined(CONFIG_RTW_DEBUG) || defined(CONFIG_PROC_DEBUG) u32 page_size = 0; u8 *buffer = NULL; u32 buf_size = 0; @@ -5138,6 +5079,7 @@ void rtw_dump_rsvd_page(void *sel, _adapter *adapter, u8 page_offset, u8 page_nu RTW_PRINT_SEL(sel, "ERROR - Tx page size is zero ??\n"); RTW_PRINT_SEL(sel, "==========================\n"); +#endif } #ifdef CONFIG_SUPPORT_FIFO_DUMP @@ -5404,7 +5346,7 @@ static u8 rtw_hal_check_wow_ctrl(_adapter *adapter, u8 chk_type) return res; } -#ifdef CONFIG_PNO_SUPPORT +#if defined(CONFIG_PNO_SUPPORT) && !defined(RTW_HALMAC) static u8 rtw_hal_check_pno_enabled(_adapter *adapter) { struct pwrctrl_priv *ppwrpriv = adapter_to_pwrctl(adapter); @@ -5717,7 +5659,31 @@ static void rtw_hal_update_sw_security_info(_adapter *adapter) _rtw_memset(psecpriv->iv_seq, 0, sz); #endif } +#ifdef CONFIG_CUSTOM_PULSE +static u8 rtw_hal_set_gpio_custom_cmd(_adapter *adapter, u8 enable) +{ + u8 H2CGpioCustomParm[H2C_GPIO_CUSTOM_LEN] = {0}; + u8 customid = 0x2, special_wakeup_reason = RX_MAGIC_PKT, custom_for_wakeup_reason=0x1; + u8 ret = _FAIL; + RTW_INFO("%s(): enable = %d\n", __func__, enable); + + if(enable) { + SET_H2CCMD_CUSTOMERID(H2CGpioCustomParm, customid); + SET_H2CCMD_SPECIAL_WAKE_REASON(H2CGpioCustomParm, special_wakeup_reason); + SET_H2CCMD_CUSTOM_WAKE_REASON(H2CGpioCustomParm, custom_for_wakeup_reason); + + ret = rtw_hal_fill_h2c_cmd(adapter, + H2C_GPIO_CUSTOM, + H2C_GPIO_CUSTOM_LEN, + H2CGpioCustomParm); + RTW_DBG("%s(): H2C_cmd=%x, cmd=%02x, %02x, %02x\n", __func__, H2C_GPIO_CUSTOM, + H2CGpioCustomParm[0], H2CGpioCustomParm[1], H2CGpioCustomParm[2]); + } + + return ret; +} +#endif /* CONFIG_CUSTOM_PULSE */ static u8 rtw_hal_set_keep_alive_cmd(_adapter *adapter, u8 enable, u8 pkt_type) { u8 u1H2CKeepAliveParm[H2C_KEEP_ALIVE_CTRL_LEN] = {0}; @@ -5743,16 +5709,78 @@ static u8 rtw_hal_set_keep_alive_cmd(_adapter *adapter, u8 enable, u8 pkt_type) return ret; } +#ifdef CONFIG_WOW_KEEP_ALIVE_PATTERN +static u8 rtw_hal_set_keep_alive_pattern_cmd(PADAPTER adapter, u8 enable) +{ + struct pwrctrl_priv *pwrctl = adapter_to_pwrctl(adapter); + u8 u1H2CKeepAliveParm[H2C_KEEP_ALIVE_PATTERN_LEN] = {0}; + u8 ret = _FAIL; + int i; + + /* If keep alive pattern is set, FW will use pattern for keep alive action */ + if(enable == 0 || (pwrctl->wowlan_keep_alive_mode == wow_keep_alive_pattern_disable)) { + SET_H2CCMD_UDP_KEEP_ALIVE_EN(u1H2CKeepAliveParm, _FALSE); + SET_H2CCMD_UDP_KEEP_ALIVE_ACK_PATTERN_EN(u1H2CKeepAliveParm, _FALSE); + SET_H2CCMD_UDP_KEEP_ALIVE_WAKE_EN(u1H2CKeepAliveParm, _FALSE); + return ret; + } + /*step1:set keep alive period*/ + SET_H2CCMD_UDP_KEEP_ALIVE_PERIOD_LOW_BIT(u1H2CKeepAliveParm, pwrctl->wowlan_keep_alive_period & 0x00FF); + SET_H2CCMD_UDP_KEEP_ALIVE_PERIOD_HI_BIT(u1H2CKeepAliveParm, ((pwrctl->wowlan_keep_alive_period & 0xFF00)>> 8)); + + if (pwrctl->wowlan_keep_alive_mode == wow_keep_alive_pattern_tx) { + SET_H2CCMD_UDP_KEEP_ALIVE_EN(u1H2CKeepAliveParm, _TRUE); + SET_H2CCMD_UDP_KEEP_ALIVE_ACK_PATTERN_EN(u1H2CKeepAliveParm, _FALSE); + SET_H2CCMD_UDP_KEEP_ALIVE_WAKE_EN(u1H2CKeepAliveParm, _FALSE); + SET_H2CCMD_UDP_KEEP_ALIVE_PACKET_LOC(u1H2CKeepAliveParm, pwrctl->keep_alive_pattern_loc); + goto exit; + } + if (pwrctl->wowlan_keep_alive_mode == wow_keep_alive_pattern_trx) { + SET_H2CCMD_UDP_KEEP_ALIVE_EN(u1H2CKeepAliveParm, _TRUE); + SET_H2CCMD_UDP_KEEP_ALIVE_ACK_PATTERN_EN(u1H2CKeepAliveParm, _TRUE); + SET_H2CCMD_UDP_KEEP_ALIVE_WAKE_EN(u1H2CKeepAliveParm, _FALSE); + SET_H2CCMD_UDP_KEEP_ALIVE_PACKET_LOC(u1H2CKeepAliveParm, pwrctl->keep_alive_pattern_loc); + SET_H2CCMD_UDP_KEEP_ALIVE_ACK_PATTERN_idx(u1H2CKeepAliveParm, pwrctl->wowlan_keep_alive_ack_index); + SET_H2CCMD_UDP_KEEP_ALIVE_RETRY_INTERVAL(u1H2CKeepAliveParm, pwrctl->wowlan_keep_alive_retry_interval); + SET_H2CCMD_UDP_KEEP_ALIVE_RETRY_LIMIT(u1H2CKeepAliveParm, pwrctl->wowlan_keep_alive_retry_counter); + goto exit; + } + if (pwrctl->wowlan_keep_alive_mode == wow_keep_alive_pattern_trx_with_ack) { + SET_H2CCMD_UDP_KEEP_ALIVE_EN(u1H2CKeepAliveParm, _TRUE); + SET_H2CCMD_UDP_KEEP_ALIVE_ACK_PATTERN_EN(u1H2CKeepAliveParm, _TRUE); + SET_H2CCMD_UDP_KEEP_ALIVE_WAKE_EN(u1H2CKeepAliveParm, _TRUE); + SET_H2CCMD_UDP_KEEP_ALIVE_PACKET_LOC(u1H2CKeepAliveParm, pwrctl->keep_alive_pattern_loc); + SET_H2CCMD_UDP_KEEP_ALIVE_ACK_PATTERN_idx(u1H2CKeepAliveParm, pwrctl->wowlan_keep_alive_ack_index); + SET_H2CCMD_UDP_KEEP_ALIVE_WAKE_PATTERN_idx(u1H2CKeepAliveParm, pwrctl->wowlan_wake_pattern_index); + SET_H2CCMD_UDP_KEEP_ALIVE_RETRY_INTERVAL(u1H2CKeepAliveParm, pwrctl->wowlan_keep_alive_retry_interval); + SET_H2CCMD_UDP_KEEP_ALIVE_RETRY_LIMIT(u1H2CKeepAliveParm, pwrctl->wowlan_keep_alive_retry_counter); + goto exit; + } +exit: + for(i=0; iregistrypriv; u8 hw_port = rtw_hal_get_port(adapter); SET_H2CCMD_DISCONDECISION_PARM_ENABLE(u1H2CDisconDecisionParm, enable); SET_H2CCMD_DISCONDECISION_PARM_ADOPT(u1H2CDisconDecisionParm, adopt); - /* SET_H2CCMD_DISCONDECISION_PARM_DISCONNECT_EN(u1H2CDisconDecisionParm, adopt); */ + if (!(pregistry->wakeup_event & BIT(2))) + SET_H2CCMD_DISCONDECISION_PARM_DISCONNECT_EN(u1H2CDisconDecisionParm, adopt); SET_H2CCMD_DISCONDECISION_PARM_CHECK_PERIOD(u1H2CDisconDecisionParm, check_period); SET_H2CCMD_DISCONDECISION_PARM_TRY_PKT_NUM(u1H2CDisconDecisionParm, trypkt_num); #ifdef CONFIG_FW_MULTI_PORT_SUPPORT @@ -5790,7 +5818,7 @@ static u8 rtw_hal_set_wowlan_ctrl_cmd(_adapter *adapter, u8 enable, u8 change_un #ifdef CONFIG_GPIO_WAKEUP gpio_high_active = ppwrpriv->is_high_active; - gpionum = WAKEUP_GPIO_IDX; + gpionum = ppwrpriv->wowlan_gpio_index; sdio_wakeup_enable = 0; #endif /* CONFIG_GPIO_WAKEUP */ @@ -5802,11 +5830,6 @@ static u8 rtw_hal_set_wowlan_ctrl_cmd(_adapter *adapter, u8 enable, u8 change_un registry_par->wakeup_event & BIT(0) && !no_wake) magic_pkt = enable; - if ((registry_par->wakeup_event & BIT(1)) && - (psecpriv->dot11PrivacyAlgrthm == _WEP40_ || - psecpriv->dot11PrivacyAlgrthm == _WEP104_) && !no_wake) - hw_unicast = 1; - if (registry_par->wakeup_event & BIT(2) && !no_wake) discont_wake = enable; @@ -5910,8 +5933,6 @@ static u8 rtw_hal_set_remote_wake_ctrl_cmd(_adapter *adapter, u8 enable) if (!ppwrpriv->wowlan_pno_enable) { SET_H2CCMD_REMOTE_WAKECTRL_ENABLE( u1H2CRemoteWakeCtrlParm, enable); - SET_H2CCMD_REMOTE_WAKE_CTRL_ARP_OFFLOAD_EN( - u1H2CRemoteWakeCtrlParm, 1); #ifdef CONFIG_GTK_OL if (psecuritypriv->binstallKCK_KEK == _TRUE && (psecuritypriv->ndisauthtype == Ndis802_11AuthModeWPA2PSK || _rtw_wow_chk_cap(adapter, WOW_CAP_TKIP_OL))) { @@ -5948,16 +5969,6 @@ static u8 rtw_hal_set_remote_wake_ctrl_cmd(_adapter *adapter, u8 enable) } #endif /* CONFIG_RTL8192F */ #endif - if ((psecuritypriv->dot11PrivacyAlgrthm == _AES_) || - (psecuritypriv->dot11PrivacyAlgrthm == _TKIP_) || - (psecuritypriv->dot11PrivacyAlgrthm == _NO_PRIVACY_)) { - SET_H2CCMD_REMOTE_WAKE_CTRL_ARP_ACTION( - u1H2CRemoteWakeCtrlParm, 0); - } else { - SET_H2CCMD_REMOTE_WAKE_CTRL_ARP_ACTION( - u1H2CRemoteWakeCtrlParm, 1); - } - if (psecuritypriv->dot11PrivacyAlgrthm == _TKIP_) { #ifdef CONFIG_GTK_OL if(_rtw_wow_chk_cap(adapter, WOW_CAP_TKIP_OL)) @@ -5968,11 +5979,33 @@ static u8 rtw_hal_set_remote_wake_ctrl_cmd(_adapter *adapter, u8 enable) IS_HARDWARE_TYPE_8812(adapter)) { SET_H2CCMD_REMOTE_WAKE_CTRL_TKIP_OFFLOAD_EN( u1H2CRemoteWakeCtrlParm, 0); - SET_H2CCMD_REMOTE_WAKE_CTRL_ARP_ACTION( - u1H2CRemoteWakeCtrlParm, 1); } } - + + if (0) { + /* ARP wake up case */ + SET_H2CCMD_REMOTE_WAKE_CTRL_ARP_OFFLOAD_EN( + u1H2CRemoteWakeCtrlParm, 1); + SET_H2CCMD_REMOTE_WAKE_CTRL_ARP_ACTION( + u1H2CRemoteWakeCtrlParm, 1); + } else if (pregistrypriv->wakeup_event) { + /* ARP no wake up case */ + if ((psecuritypriv->dot11PrivacyAlgrthm == _AES_) || + (psecuritypriv->dot11PrivacyAlgrthm == _NO_PRIVACY_)) { + SET_H2CCMD_REMOTE_WAKE_CTRL_ARP_OFFLOAD_EN( + u1H2CRemoteWakeCtrlParm, 1); + } + #ifdef CONFIG_GTK_OL + else if (psecuritypriv->dot11PrivacyAlgrthm == _TKIP_ && + _rtw_wow_chk_cap(adapter, WOW_CAP_TKIP_OL)) { + SET_H2CCMD_REMOTE_WAKE_CTRL_ARP_OFFLOAD_EN( + u1H2CRemoteWakeCtrlParm, 1); + } + #endif + } else { + /* ARP no wake up and no ARP response case */ + } + SET_H2CCMD_REMOTE_WAKE_CTRL_FW_PARSING_UNTIL_WAKEUP( u1H2CRemoteWakeCtrlParm, 1); } @@ -6004,6 +6037,67 @@ static u8 rtw_hal_set_remote_wake_ctrl_cmd(_adapter *adapter, u8 enable) return ret; } +#ifdef CONFIG_WAR_OFFLOAD +static u8 rtw_hal_set_war_offload_ctrl_cmd(_adapter *adapter, u8 enable) +{ + struct pwrctrl_priv *ppwrpriv = adapter_to_pwrctl(adapter); + u8 u1H2CWarOffloadParm[H2C_WAR_OFFLOAD_LEN] = {0}; + u8 ret = _FAIL; + + RTW_INFO("%s(): enable=%d\n", __func__, enable); + + if (_TRUE == ppwrpriv->wowlan_war_offload_mode) { + SET_H2CCMD_WAR_CFG_EN(u1H2CWarOffloadParm, enable); + SET_H2CCMD_WAR_CFG_ARP_RSP_EN(u1H2CWarOffloadParm, 1); + +#ifdef CONFIG_OFFLOAD_MDNS_V4 + if (WAR_MDNS_V4_RSP_EN & ppwrpriv->wowlan_war_offload_ctrl) { + SET_H2CCMD_WAR_CFG_MDNSV4_RSP_EN(u1H2CWarOffloadParm, 1); + } + if (WAR_MDNS_V4_WAKEUP_EN& ppwrpriv->wowlan_war_offload_ctrl) { + SET_H2CCMD_WAR_CFG_MDNSV4_WAKE_EN(u1H2CWarOffloadParm, 1); + } +#endif /* CONFIG_OFFLOAD_MDNS_V4 */ + +#ifdef CONFIG_OFFLOAD_MDNS_V6 + if (WAR_MDNS_V6_RSP_EN & ppwrpriv->wowlan_war_offload_ctrl) { + SET_H2CCMD_WAR_CFG_MDNSV6_RSP_EN(u1H2CWarOffloadParm, 1); + } + if (WAR_MDNS_V6_WAKEUP_EN & ppwrpriv->wowlan_war_offload_ctrl) { + SET_H2CCMD_WAR_CFG_MDNSV6_WAKE_EN(u1H2CWarOffloadParm, 1); + } +#endif /* CONFIG_OFFLOAD_MDNS_V6 */ + + } + + ret = rtw_hal_fill_h2c_cmd(adapter, + H2C_WAR_OFFLOAD, + H2C_WAR_OFFLOAD_LEN, + u1H2CWarOffloadParm); + return ret; +} + +static u8 rtw_hal_set_war_offload_parm(_adapter *adapter, PRSVDPAGE_LOC rsvdpageloc) +{ + struct pwrctrl_priv *ppwrpriv = adapter_to_pwrctl(adapter); + u8 u1H2CWarOfldParm[H2C_WAROFLD_RSVDPAGE1_LEN] = {0}; + u8 ret = _FAIL; + + SET_H2CCMD_WAROFLD_RSVDPAGE1_LOC_PARM(u1H2CWarOfldParm, rsvdpageloc->LocIpParm); + RTW_INFO("%s(): LocIpParm = %d\n", __func__, rsvdpageloc->LocIpParm); + + + ret = rtw_hal_fill_h2c_cmd(adapter, + H2C_WAROFLD_RSVDPAGE1, + H2C_WAROFLD_RSVDPAGE1_LEN, + u1H2CWarOfldParm); + + return ret; +} +#endif /* CONFIG_WAR_OFFLOAD */ + + + static u8 rtw_hal_set_global_info_cmd(_adapter *adapter, u8 group_alg, u8 pairwise_alg) { u8 ret = _FAIL; @@ -6029,8 +6123,9 @@ static u8 rtw_hal_set_scan_offload_info_cmd(_adapter *adapter, PRSVDPAGE_LOC rsvdpageloc, u8 enable) { struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(adapter); + u8 ret = _FAIL; +#ifndef RTW_HALMAC u8 u1H2CScanOffloadInfoParm[H2C_SCAN_OFFLOAD_CTRL_LEN] = {0}; - u8 res = 0, count = 0, ret = _FAIL; RTW_INFO("%s: loc_probe_packet:%d, loc_scan_info: %d loc_ssid_info:%d\n", __func__, rsvdpageloc->LocProbePacket, @@ -6050,6 +6145,25 @@ static u8 rtw_hal_set_scan_offload_info_cmd(_adapter *adapter, H2C_D0_SCAN_OFFLOAD_INFO, H2C_SCAN_OFFLOAD_CTRL_LEN, u1H2CScanOffloadInfoParm); +#else + u8 u1H2CNLOINFOInfoParm[H2C_NLO_INFO_LEN] = {0}; + + RTW_INFO("%s: loc_nlo_info: %d enable %d\n", __func__, + rsvdpageloc->LocPNOInfo, enable); + + SET_H2CCMD_NLO_FUN_EN(u1H2CNLOINFOInfoParm, enable); +#ifdef CONFIG_LPS_LCLK + // TODO(Owen): Controlled by wowlan lps level + /* This H2C bit requires driver leave LCLK in rtw_resume_process_wow() */ + SET_H2CCMD_NLO_PS_32K(u1H2CNLOINFOInfoParm, enable); +#endif + SET_H2CCMD_NLO_LOC_NLO_INFO(u1H2CNLOINFOInfoParm, rsvdpageloc->LocPNOInfo); + + ret = rtw_hal_fill_h2c_cmd(adapter, + H2C_NLO_INFO, + H2C_NLO_INFO_LEN, + u1H2CNLOINFOInfoParm); +#endif return ret; } #endif /* CONFIG_PNO_SUPPORT */ @@ -6077,7 +6191,7 @@ void rtw_hal_set_fw_wow_related_cmd(_adapter *padapter, u8 enable) psecpriv->dot11PrivacyAlgrthm); if (!(ppwrpriv->wowlan_pno_enable)) { - if (pregistry->wakeup_event & BIT(2) && !no_wake) + if (!no_wake) rtw_hal_set_disconnect_decision_cmd(padapter, enable); #ifdef CONFIG_ARP_KEEP_ALIVE @@ -6089,13 +6203,20 @@ void rtw_hal_set_fw_wow_related_cmd(_adapter *padapter, u8 enable) #else pkt_type = 0; #endif /* CONFIG_ARP_KEEP_ALIVE */ - if(!no_wake) + if(!no_wake) { + #ifdef CONFIG_WOW_KEEP_ALIVE_PATTERN + rtw_hal_set_keep_alive_pattern_cmd(padapter,enable); + #endif /*CONFIG_WOW_KEEP_ALIVE_PATTERN*/ rtw_hal_set_keep_alive_cmd(padapter, enable, pkt_type); + } } - rtw_hal_set_remote_wake_ctrl_cmd(padapter, enable); -#ifdef CONFIG_PNO_SUPPORT +#if defined(CONFIG_PNO_SUPPORT) && !defined(RTW_HALMAC) rtw_hal_check_pno_enabled(padapter); -#endif /* CONFIG_PNO_SUPPORT */ +#endif /* defined(CONFIG_PNO_SUPPORT) && !defined(RTW_HALMAC) */ +#ifdef CONFIG_WAR_OFFLOAD + rtw_hal_set_war_offload_ctrl_cmd(padapter, enable); +#endif /* CONFIG_WAR_OFFLOAD */ + } else { #if 0 { @@ -6104,9 +6225,11 @@ void rtw_hal_set_fw_wow_related_cmd(_adapter *padapter, u8 enable) dump_TX_FIFO(padapter, 4, PageSize); } #endif - - rtw_hal_set_remote_wake_ctrl_cmd(padapter, enable); } +#ifdef CONFIG_CUSTOM_PULSE + rtw_hal_set_gpio_custom_cmd(padapter, enable); +#endif /* CONFIG_CUSTOM_PULSE */ + rtw_hal_set_remote_wake_ctrl_cmd(padapter, enable); RTW_PRINT("-%s()-\n", __func__); } #endif /* CONFIG_WOWLAN */ @@ -6125,7 +6248,7 @@ static u8 rtw_hal_set_ap_wowlan_ctrl_cmd(_adapter *adapter, u8 enable) #ifdef CONFIG_GPIO_WAKEUP gpio_high_active = ppwrpriv->is_high_active; - gpionum = WAKEUP_GPIO_IDX; + gpionum = ppwrpriv->wowlan_gpio_index; sdio_wakeup_enable = 0; #endif /*CONFIG_GPIO_WAKEUP*/ @@ -6246,6 +6369,7 @@ static void rtw_hal_ap_wow_enable(_adapter *padapter) { struct security_priv *psecuritypriv = &padapter->securitypriv; struct mlme_priv *pmlmepriv = &padapter->mlmepriv; + struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter); struct sta_info *psta = NULL; PHAL_DATA_TYPE pHalData = GET_HAL_DATA(padapter); #ifdef DBG_CHECK_FW_PS_STATE @@ -6254,6 +6378,9 @@ static void rtw_hal_ap_wow_enable(_adapter *padapter) #endif /*DBG_CHECK_FW_PS_STATE*/ int res; u16 media_status_rpt; +#ifdef CONFIG_GPIO_WAKEUP + u8 val8 = 0; +#endif RTW_INFO("%s, WOWLAN_AP_ENABLE\n", __func__); #ifdef DBG_CHECK_FW_PS_STATE @@ -6290,8 +6417,28 @@ static void rtw_hal_ap_wow_enable(_adapter *padapter) #endif #ifdef CONFIG_GPIO_WAKEUP - rtw_hal_switch_gpio_wl_ctrl(padapter, WAKEUP_GPIO_IDX, _TRUE); -#endif +#ifdef CONFIG_RTW_ONE_PIN_GPIO + rtw_hal_switch_gpio_wl_ctrl(padapter, pwrpriv->wowlan_gpio_index, _TRUE); + rtw_hal_set_input_gpio(padapter, pwrpriv->wowlan_gpio_index); +#else +#ifdef CONFIG_WAKEUP_GPIO_INPUT_MODE + if (pwrctrlpriv->is_high_active == 0) + rtw_hal_set_input_gpio(padapter, pwrpriv->wowlan_gpio_index); + else + rtw_hal_set_output_gpio(padapter, pwrpriv->wowlan_gpio_index, + GPIO_OUTPUT_LOW); +#else + val8 = (pwrpriv->is_high_active == 0) ? 1 : 0; + rtw_hal_set_output_gpio(padapter, pwrpriv->wowlan_gpio_index, val8); + rtw_hal_switch_gpio_wl_ctrl(padapter, pwrpriv->wowlan_gpio_index, _TRUE); + RTW_INFO("%s: set GPIO_%d to OUTPUT %s state in ap wow suspend and %s_ACTIVE.\n", + __func__, pwrpriv->wowlan_gpio_index, + pwrpriv->wowlan_gpio_output_state ? "HIGH" : "LOW", + pwrpriv->is_high_active ? "HIGI" : "LOW"); +#endif /* CONFIG_WAKEUP_GPIO_INPUT_MODE */ +#endif /* CONFIG_RTW_ONE_PIN_GPIO */ +#endif /* CONFIG_GPIO_WAKEUP */ + /* 5. Set Enable WOWLAN H2C command. */ RTW_PRINT("Set Enable AP WOWLan cmd\n"); rtw_hal_set_fw_ap_wow_related_cmd(padapter, 1); @@ -6317,7 +6464,6 @@ static void rtw_hal_ap_wow_disable(_adapter *padapter) struct debug_priv *pdbgpriv = &psdpriv->drv_dbg; #endif /*DBG_CHECK_FW_PS_STATE*/ u16 media_status_rpt; - u8 val8; RTW_INFO("%s, WOWLAN_AP_DISABLE\n", __func__); /* 1. Read wakeup reason*/ @@ -6347,22 +6493,24 @@ static void rtw_hal_ap_wow_disable(_adapter *padapter) #ifdef CONFIG_GPIO_WAKEUP #ifdef CONFIG_RTW_ONE_PIN_GPIO - rtw_hal_set_input_gpio(padapter, WAKEUP_GPIO_IDX); + rtw_hal_set_input_gpio(padapter, pwrctl->wowlan_gpio_index); #else - #ifdef CONFIG_WAKEUP_GPIO_INPUT_MODE +#ifdef CONFIG_WAKEUP_GPIO_INPUT_MODE if (pwrctl->is_high_active == 0) - rtw_hal_set_input_gpio(padapter, WAKEUP_GPIO_IDX); + rtw_hal_set_input_gpio(padapter, pwrctl->wowlan_gpio_index); else - rtw_hal_set_output_gpio(padapter, WAKEUP_GPIO_IDX, 0); - #else - val8 = (pwrctl->is_high_active == 0) ? 1 : 0; - RTW_PRINT("Set Wake GPIO to default(%d).\n", val8); - rtw_hal_set_output_gpio(padapter, WAKEUP_GPIO_IDX, val8); - - rtw_hal_switch_gpio_wl_ctrl(padapter, WAKEUP_GPIO_IDX, _FALSE); - #endif/*CONFIG_WAKEUP_GPIO_INPUT_MODE*/ + rtw_hal_set_output_gpio(padapter, pwrctl->wowlan_gpio_index + , GPIO_OUTPUT_LOW); +#else + rtw_hal_set_output_gpio(padapter, pwrctl->wowlan_gpio_index, + pwrctl->wowlan_gpio_output_state); + RTW_INFO("%s: set GPIO_%d to OUTPUT %s state in ap wow resume and %s_ACTIVE.\n", + __func__, pwrctl->wowlan_gpio_index, + pwrctl->wowlan_gpio_output_state ? "HIGH" : "LOW", + pwrctl->is_high_active ? "HIGI" : "LOW"); +#endif /*CONFIG_WAKEUP_GPIO_INPUT_MODE*/ #endif /* CONFIG_RTW_ONE_PIN_GPIO */ -#endif +#endif /* CONFIG_GPIO_WAKEUP */ media_status_rpt = RT_MEDIA_CONNECT; rtw_hal_set_hwreg(padapter, HW_VAR_H2C_FW_JOINBSSRPT, @@ -8106,7 +8254,6 @@ static void rtw_hal_append_tkip_mic(PADAPTER padapter, u8 mic[8]; u8 priority[4] = {0x0}; u8 null_key[16] = {0x0}; - _rtw_memset(&micdata, 0, sizeof(struct mic_data)); RTW_INFO("%s(): Add MIC, offset: %d\n", __func__, offset); @@ -8267,6 +8414,116 @@ static void rtw_hal_construct_ARPRsp( *pLength += 8; } } +#ifdef CONFIG_WOW_KEEP_ALIVE_PATTERN +/* + * Description: + * Construct the Keep Alive packet to support specific Keep Alive packet. + * */ +static void rtw_hal_construct_keepalive( PADAPTER padapter, + u8 *pframe, + u32 *pLength +){ + struct rtw_ieee80211_hdr *pwlanhdr; + u16 *fctrl; + u32 pktlen; + struct mlme_priv *pmlmepriv = &padapter->mlmepriv; + struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); + struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); + struct security_priv *psecuritypriv = &padapter->securitypriv; + struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter); + static u8 LLCHeader[6] = {0xAA, 0xAA, 0x03, 0x00, 0x00, 0x00}; + u8 *pKeepAlivePkt = pframe; + /* for TKIP Cal MIC */ + u8 *payload = pframe; + u8 EncryptionHeadOverhead = 0, frame_offset = 0; + int i; + + pwlanhdr = (struct rtw_ieee80211_hdr *)pframe; + + fctrl = &pwlanhdr->frame_ctl; + *(fctrl) = 0; + + RTW_INFO("%s======>\n", __func__); + + + /* ------------------------------------------------------------------------- */ + /* MAC Header. */ + /* ------------------------------------------------------------------------- */ + SetFrameType(fctrl, WIFI_DATA); + /* set_frame_sub_type(fctrl, 0); */ + SetToDs(fctrl); + _rtw_memcpy(pwlanhdr->addr1, get_my_bssid(&(pmlmeinfo->network)), ETH_ALEN); + _rtw_memcpy(pwlanhdr->addr2, pwrpriv->keep_alive_pattern+6, ETH_ALEN); + _rtw_memcpy(pwlanhdr->addr3,pwrpriv->keep_alive_pattern, ETH_ALEN); + + SetSeqNum(pwlanhdr, 0); + set_duration(pwlanhdr, 0); + +#ifdef CONFIG_WAPI_SUPPORT + *pLength = sMacHdrLng; +#else + *pLength = 24; +#endif + switch (psecuritypriv->dot11PrivacyAlgrthm) { + case _WEP40_: + case _WEP104_: + EncryptionHeadOverhead = 4; + break; + case _TKIP_: + EncryptionHeadOverhead = 8; + break; + case _AES_: + EncryptionHeadOverhead = 8; + break; +#ifdef CONFIG_WAPI_SUPPORT + case _SMS4_: + EncryptionHeadOverhead = 18; + break; +#endif + default: + EncryptionHeadOverhead = 0; + } + + if (EncryptionHeadOverhead > 0) { + _rtw_memset(&(pframe[*pLength]), 0, EncryptionHeadOverhead); + *pLength += EncryptionHeadOverhead; + /* SET_80211_HDR_WEP(pARPRspPkt, 1); */ /* Suggested by CCW. */ + SetPrivacy(fctrl); + } + + /* ------------------------------------------------------------------------- */ + /* Frame Body. */ + /* ------------------------------------------------------------------------- */ + frame_offset = *pLength; + pKeepAlivePkt = (u8 *)(pframe + frame_offset); + payload = pKeepAlivePkt; /* Get Payload pointer */ + /* LLC header */ + _rtw_memcpy(pKeepAlivePkt, LLCHeader, 6); + *pLength += 6; + + /*From protocol type*/ + pKeepAlivePkt+=6; + + _rtw_memcpy(pKeepAlivePkt,pwrpriv->keep_alive_pattern+12,pwrpriv->keep_alive_pattern_len-12); + + *pLength+=pwrpriv->keep_alive_pattern_len-12; + + if (psecuritypriv->dot11PrivacyAlgrthm == _TKIP_) { + *pLength += 8; + } + + /* for debug + for (i=0; i< (*pLength) ;i++) { + RTW_INFO("KA_Pkt[0x%x]=x%0x", i,pKeepAlivePkt[i]); + if((i%8) == 7) + RTW_INFO("\n"); + } + */ + + RTW_INFO("%s <======\n", __func__); +} + +#endif/*CONFIG_WOW_KEEP_ALIVE_PATTERN*/ #ifdef CONFIG_IPV6 /* @@ -8448,8 +8705,8 @@ static void rtw_hal_construct_ndp_info(_adapter *padapter, #endif /* CONFIG_IPV6 */ #ifdef CONFIG_PNO_SUPPORT -static void rtw_hal_construct_ProbeReq(_adapter *padapter, u8 *pframe, - u32 *pLength, pno_ssid_t *ssid) +void rtw_hal_construct_ProbeReq(_adapter *padapter, u8 *pframe, + u32 *pLength, pno_ssid_t *ssid) { struct rtw_ieee80211_hdr *pwlanhdr; u16 *fctrl; @@ -8512,6 +8769,11 @@ static void rtw_hal_construct_PNO_info(_adapter *padapter, _rtw_memcpy(pPnoInfoPkt, &pwrctl->pnlo_info->hidden_ssid_num, 1); pPnoInfoPkt += 3; +#ifdef RTW_HALMAC + /* Pattern check for 3081 ICs */ + _rtw_memset(pPnoInfoPkt, 0xA5A5A5A5, 4); + pPnoInfoPkt += 12; +#else _rtw_memcpy(pPnoInfoPkt, &pwrctl->pnlo_info->fast_scan_period, 1); pPnoInfoPkt += 4; @@ -8521,6 +8783,7 @@ static void rtw_hal_construct_PNO_info(_adapter *padapter, _rtw_memcpy(pPnoInfoPkt, &pwrctl->pnlo_info->slow_scan_period, 4); pPnoInfoPkt += 4; +#endif _rtw_memcpy(pPnoInfoPkt, &pwrctl->pnlo_info->ssid_length, MAX_PNO_LIST_COUNT); pPnoInfoPkt += MAX_PNO_LIST_COUNT; @@ -8534,13 +8797,15 @@ static void rtw_hal_construct_PNO_info(_adapter *padapter, pPnoInfoPkt += MAX_HIDDEN_AP; - /* - SSID is located at 128th Byte in NLO info Page - */ - +#ifdef RTW_HALMAC + /* SSID is located at 72th byte in NLO info Page for ICs that have HAMMAC */ + *pLength += 72; + pPnoInfoPkt = pframe + 72; +#else + /* SSID is located at 128th Byte in NLO info Page for ICs that don't have HAMMAC */ *pLength += 128; pPnoInfoPkt = pframe + 128; - +#endif for (i = 0; i < pwrctl->pnlo_info->ssid_num ; i++) { _rtw_memcpy(pPnoInfoPkt, &pwrctl->pno_ssid_list->node[i].SSID, pwrctl->pnlo_info->ssid_length[i]); @@ -8549,6 +8814,7 @@ static void rtw_hal_construct_PNO_info(_adapter *padapter, } } +#ifndef RTW_HALMAC static void rtw_hal_construct_ssid_list(_adapter *padapter, u8 *pframe, u32 *pLength) { @@ -8622,8 +8888,273 @@ static void rtw_hal_construct_scan_info(_adapter *padapter, pScanInfoPkt += 4; } } +#endif /* !RTW_HALMAC */ #endif /* CONFIG_PNO_SUPPORT */ +#ifdef CONFIG_WAR_OFFLOAD +#ifdef CONFIG_OFFLOAD_MDNS_V4 + +/* + * Description: + * Construct the MDNS V4 response packet to support MDNS offload. + * + */ +static void rtw_hal_construct_mdns_rsp_v4( + PADAPTER padapter, + u8 *pframe, + u32 *pLength, + u8 *pIPAddress +) +{ + struct rtw_ieee80211_hdr *pwlanhdr; + u16 *fctrl; + u32 pktlen; + struct mlme_priv *pmlmepriv = &padapter->mlmepriv; + struct wlan_network *cur_network = &pmlmepriv->cur_network; + struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); + struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); + struct security_priv *psecuritypriv = &padapter->securitypriv; + static u8 ICMPLLCHeader[8] = {0xAA, 0xAA, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00}; + u8 mulicast_ipv4_addr[4] = {0xe0, 0x00, 0x00, 0xfb}; + u8 mulicast_mac_addr_for_mdns[6] = {0x01, 0x00, 0x5e, 0x00, 0x00, 0xfb}; + u8 *pMdnsRspPkt = pframe; + /* for TKIP Cal MIC */ + u8 EncryptionHeadOverhead = 0, mdns_offset = 0; + + struct dvobj_priv *dvobj = adapter_to_dvobj(padapter); + struct pwrctrl_priv *pwrpriv = dvobj_to_pwrctl(dvobj); + + pwlanhdr = (struct rtw_ieee80211_hdr *)pframe; + + fctrl = &pwlanhdr->frame_ctl; + *(fctrl) = 0; + + /* ------------------------------------------------------------------------- */ + /* MAC Header. */ + /* ------------------------------------------------------------------------- */ + SetFrameType(fctrl, WIFI_DATA); + /* set_frame_sub_type(fctrl, 0); */ + SetToDs(fctrl); + //_rtw_memcpy(pwlanhdr->addr1, get_my_bssid(&(pmlmeinfo->network)), ETH_ALEN); + _rtw_memcpy(pwlanhdr->addr1, get_my_bssid(&(pmlmeinfo->network)), ETH_ALEN); + _rtw_memcpy(pwlanhdr->addr2, adapter_mac_addr(padapter), ETH_ALEN); + _rtw_memcpy(pwlanhdr->addr3, mulicast_mac_addr_for_mdns, ETH_ALEN ); + + SetSeqNum(pwlanhdr, 0); + set_duration(pwlanhdr, 0); + +#ifdef CONFIG_WAPI_SUPPORT + *pLength = sMacHdrLng; +#else + *pLength = 24; +#endif + switch (psecuritypriv->dot11PrivacyAlgrthm) { + case _WEP40_: + case _WEP104_: + EncryptionHeadOverhead = 4; + break; + case _TKIP_: + EncryptionHeadOverhead = 8; + break; + case _AES_: + EncryptionHeadOverhead = 8; + break; +#ifdef CONFIG_WAPI_SUPPORT + case _SMS4_: + EncryptionHeadOverhead = 18; + break; +#endif + default: + EncryptionHeadOverhead = 0; + } + + if (EncryptionHeadOverhead > 0) { + _rtw_memset(&(pframe[*pLength]), 0, EncryptionHeadOverhead); + *pLength += EncryptionHeadOverhead; + /* SET_80211_HDR_WEP(pARPRspPkt, 1); */ /* Suggested by CCW. */ + SetPrivacy(fctrl); + } + + /* ------------------------------------------------------------------------- */ + /* Frame Body. */ + /* ------------------------------------------------------------------------- */ + mdns_offset = *pLength; + pMdnsRspPkt = (u8 *)(pframe + mdns_offset); + /* LLC header */ + _rtw_memcpy(pMdnsRspPkt, ICMPLLCHeader, 8); + *pLength += 8; + + /* IP element */ + pMdnsRspPkt += 8; + SET_IPHDR_VERSION(pMdnsRspPkt, 0x45); + SET_IPHDR_DSCP(pMdnsRspPkt, 0); + SET_IPHDR_TOTAL_LEN(pMdnsRspPkt, 0); // filled by fw + SET_IPHDR_IDENTIFIER(pMdnsRspPkt, 0); // filled by fw + SET_IPHDR_FLAGS(pMdnsRspPkt, 0x40); + SET_IPHDR_FRAG_OFFSET(pMdnsRspPkt, 0); + SET_IPHDR_TTL(pMdnsRspPkt, 0x40); + SET_IPHDR_PROTOCOL(pMdnsRspPkt, 0x11); // ICMP-UDP + SET_IPHDR_HDR_CHECKSUM(pMdnsRspPkt, 0); // filled by fw + SET_IPHDR_SRC_IP_ADDR(pMdnsRspPkt, pIPAddress); + SET_IPHDR_DST_IP_ADDR(pMdnsRspPkt, mulicast_ipv4_addr); // filled by fw + + *pLength += 20; + + if (psecuritypriv->dot11PrivacyAlgrthm == _TKIP_) { + if (IS_HARDWARE_TYPE_8188E(padapter) || + IS_HARDWARE_TYPE_8812(padapter)) { + rtw_hal_append_tkip_mic(padapter, pframe, mdns_offset); + } + *pLength += 8; + } + + /* UDP element */ + pMdnsRspPkt += 20; + SET_UDP_SRC_PORT(pMdnsRspPkt, 0xe914); // MDNS + SET_UDP_DST_PORT(pMdnsRspPkt, 0xe914); // MDNS + SET_UDP_LEN(pMdnsRspPkt, 0); // filled by fw + SET_UDP_CHECKSUM(pMdnsRspPkt, 0); // filled by fw + *pLength += 8; + + /* MDNS Header */ + pMdnsRspPkt += 8; + SET_MDNS_HDR_FLAG(pMdnsRspPkt, 0x84); + *pLength += 12; + +} + +#endif /* CONFIG_OFFLOAD_MDNS_V4 */ + +#ifdef CONFIG_OFFLOAD_MDNS_V6 + +/* + * Description: + * Construct the MDNS response V6 packet to support MDNS offload. + * + */ +static void rtw_hal_construct_mdns_rsp_v6( + PADAPTER padapter, + u8 *pframe, + u32 *pLength, + u8 *pIPAddress +) +{ + struct rtw_ieee80211_hdr *pwlanhdr; + u16 *fctrl; + u32 pktlen; + struct mlme_priv *pmlmepriv = &padapter->mlmepriv; + struct wlan_network *cur_network = &pmlmepriv->cur_network; + struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); + struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); + struct security_priv *psecuritypriv = &padapter->securitypriv; + static u8 ICMPLLCHeader[8] = {0xAA, 0xAA, 0x03, 0x00, 0x00, 0x00, 0x86, 0xDD}; + u8 mulicast_ipv6_addr[16] = {0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb}; + u8 mulicast_mac_addr_for_mdns[6] = {0x33, 0x33, 0x00, 0x00, 0x00, 0xfb}; /* could be revise by fw */ + u8 *pMdnsRspPkt = pframe; + /* for TKIP Cal MIC */ + u8 EncryptionHeadOverhead = 0, mdns_offset = 0; + /* RTW_INFO("%s:%d\n", __FUNCTION__, bForcePowerSave); */ + + struct dvobj_priv *dvobj = adapter_to_dvobj(padapter); + struct pwrctrl_priv *pwrpriv = dvobj_to_pwrctl(dvobj); + + pwlanhdr = (struct rtw_ieee80211_hdr *)pframe; + + fctrl = &pwlanhdr->frame_ctl; + *(fctrl) = 0; + + /* ------------------------------------------------------------------------- */ + /* MAC Header. */ + /* ------------------------------------------------------------------------- */ + SetFrameType(fctrl, WIFI_DATA); + /* set_frame_sub_type(fctrl, 0); */ + SetToDs(fctrl); + //_rtw_memcpy(pwlanhdr->addr1, mulicast_mac_addr_for_mdns, ETH_ALEN); + _rtw_memcpy(pwlanhdr->addr1, get_my_bssid(&(pmlmeinfo->network)), ETH_ALEN); + _rtw_memcpy(pwlanhdr->addr2, adapter_mac_addr(padapter), ETH_ALEN); + //_rtw_memcpy(pwlanhdr->addr3, get_my_bssid(&(pmlmeinfo->network)), ETH_ALEN); + _rtw_memcpy(pwlanhdr->addr3, mulicast_mac_addr_for_mdns, ETH_ALEN); + + SetSeqNum(pwlanhdr, 0); + set_duration(pwlanhdr, 0); + +#ifdef CONFIG_WAPI_SUPPORT + *pLength = sMacHdrLng; +#else + *pLength = 24; +#endif + switch (psecuritypriv->dot11PrivacyAlgrthm) { + case _WEP40_: + case _WEP104_: + EncryptionHeadOverhead = 4; + break; + case _TKIP_: + EncryptionHeadOverhead = 8; + break; + case _AES_: + EncryptionHeadOverhead = 8; + break; +#ifdef CONFIG_WAPI_SUPPORT + case _SMS4_: + EncryptionHeadOverhead = 18; + break; +#endif + default: + EncryptionHeadOverhead = 0; + } + + if (EncryptionHeadOverhead > 0) { + _rtw_memset(&(pframe[*pLength]), 0, EncryptionHeadOverhead); + *pLength += EncryptionHeadOverhead; + SetPrivacy(fctrl); + } + + /* ------------------------------------------------------------------------- */ + /* Frame Body. */ + /* ------------------------------------------------------------------------- */ + mdns_offset = *pLength; + pMdnsRspPkt = (u8 *)(pframe + mdns_offset); + /* LLC header */ + _rtw_memcpy(pMdnsRspPkt, ICMPLLCHeader, 8); + *pLength += 8; + + /* ICMP element */ + pMdnsRspPkt += 8; + SET_IPHDRV6_VERSION(pMdnsRspPkt, 0x06); + SET_IPHDRV6_PAYLOAD_LENGTH(pMdnsRspPkt, 0); // filled by fw + SET_IPHDRV6_NEXT_HEADER(pMdnsRspPkt, 0x3A); + SET_IPHDRV6_HOP_LIMIT(pMdnsRspPkt, 0xFF); + SET_IPHDRV6_SRC_IP_ADDR(pMdnsRspPkt, pIPAddress); // filled by fw + SET_IPHDRV6_DST_IP_ADDR(pMdnsRspPkt, mulicast_ipv6_addr); // filled by fw + + *pLength += 40; + + if (psecuritypriv->dot11PrivacyAlgrthm == _TKIP_) { + if (IS_HARDWARE_TYPE_8188E(padapter) || + IS_HARDWARE_TYPE_8812(padapter)) { + rtw_hal_append_tkip_mic(padapter, pframe, mdns_offset); + } + *pLength += 8; + } + + /* UDP element */ + pMdnsRspPkt += 40; + SET_UDP_SRC_PORT(pMdnsRspPkt, 0xe914); // SNMP + SET_UDP_DST_PORT(pMdnsRspPkt, 0xe914); // SNMP + SET_UDP_LEN(pMdnsRspPkt, 0); // filled by fw + SET_UDP_CHECKSUM(pMdnsRspPkt, 0); // filled by fw + *pLength += 8; + + /* MDNS Header */ + pMdnsRspPkt += 8; + SET_MDNS_HDR_FLAG(pMdnsRspPkt, 0x84); + *pLength += 12; + +} + +#endif /* CONFIG_OFFLOAD_MDNS_V6 */ +#endif + #ifdef CONFIG_GTK_OL static void rtw_hal_construct_GTKRsp( PADAPTER padapter, @@ -8807,304 +9338,6 @@ static void rtw_hal_construct_remote_control_info(_adapter *adapter, } } -void rtw_hal_set_wow_fw_rsvd_page(_adapter *adapter, u8 *pframe, u16 index, - u8 tx_desc, u32 page_size, u8 *page_num, u32 *total_pkt_len, - RSVDPAGE_LOC *rsvd_page_loc) -{ - struct security_priv *psecuritypriv = &adapter->securitypriv; - struct mlme_priv *pmlmepriv = &adapter->mlmepriv; - struct pwrctrl_priv *pwrctl = adapter_to_pwrctl(adapter); - struct mlme_ext_priv *pmlmeext; - struct mlme_ext_info *pmlmeinfo; - u32 ARPLength = 0, GTKLength = 0, PNOLength = 0, ScanInfoLength = 0; - u32 ProbeReqLength = 0, ns_len = 0, rc_len = 0; - u8 CurtPktPageNum = 0; - -#ifdef CONFIG_GTK_OL - struct sta_priv *pstapriv = &adapter->stapriv; - struct sta_info *psta; - struct security_priv *psecpriv = &adapter->securitypriv; - u8 kek[RTW_KEK_LEN]; - u8 kck[RTW_KCK_LEN]; -#endif /* CONFIG_GTK_OL */ -#ifdef CONFIG_PNO_SUPPORT - int pno_index; - u8 ssid_num; -#endif /* CONFIG_PNO_SUPPORT */ - - pmlmeext = &adapter->mlmeextpriv; - pmlmeinfo = &pmlmeext->mlmext_info; - - if (pwrctl->wowlan_pno_enable == _FALSE) { - /* ARP RSP * 1 page */ - - rsvd_page_loc->LocArpRsp = *page_num; - - RTW_INFO("LocArpRsp: %d\n", rsvd_page_loc->LocArpRsp); - - rtw_hal_construct_ARPRsp(adapter, &pframe[index], - &ARPLength, pmlmeinfo->ip_addr); - - rtw_hal_fill_fake_txdesc(adapter, - &pframe[index - tx_desc], - ARPLength, _FALSE, _FALSE, _TRUE); - - CurtPktPageNum = (u8)PageNum(tx_desc + ARPLength, page_size); - - *page_num += CurtPktPageNum; - - index += (CurtPktPageNum * page_size); - RSVD_PAGE_CFG("WOW-ARPRsp", CurtPktPageNum, *page_num, 0); - -#ifdef CONFIG_IPV6 - /* 2 NS offload and NDP Info*/ - if (pwrctl->wowlan_ns_offload_en == _TRUE) { - rsvd_page_loc->LocNbrAdv = *page_num; - RTW_INFO("LocNbrAdv: %d\n", rsvd_page_loc->LocNbrAdv); - rtw_hal_construct_na_message(adapter, - &pframe[index], &ns_len); - rtw_hal_fill_fake_txdesc(adapter, - &pframe[index - tx_desc], - ns_len, _FALSE, - _FALSE, _TRUE); - CurtPktPageNum = (u8)PageNum(tx_desc + ns_len, - page_size); - *page_num += CurtPktPageNum; - index += (CurtPktPageNum * page_size); - RSVD_PAGE_CFG("WOW-NbrAdv", CurtPktPageNum, *page_num, 0); - - rsvd_page_loc->LocNDPInfo = *page_num; - RTW_INFO("LocNDPInfo: %d\n", - rsvd_page_loc->LocNDPInfo); - - rtw_hal_construct_ndp_info(adapter, - &pframe[index - tx_desc], - &ns_len); - CurtPktPageNum = - (u8)PageNum(tx_desc + ns_len, page_size); - *page_num += CurtPktPageNum; - index += (CurtPktPageNum * page_size); - RSVD_PAGE_CFG("WOW-NDPInfo", CurtPktPageNum, *page_num, 0); - - } -#endif /*CONFIG_IPV6*/ - /* 3 Remote Control Info. * 1 page */ - rsvd_page_loc->LocRemoteCtrlInfo = *page_num; - RTW_INFO("LocRemoteCtrlInfo: %d\n", rsvd_page_loc->LocRemoteCtrlInfo); - rtw_hal_construct_remote_control_info(adapter, - &pframe[index - tx_desc], - &rc_len); - CurtPktPageNum = (u8)PageNum(rc_len, page_size); - *page_num += CurtPktPageNum; - *total_pkt_len = index + rc_len; - RSVD_PAGE_CFG("WOW-RCI", CurtPktPageNum, *page_num, *total_pkt_len); -#ifdef CONFIG_GTK_OL - index += (CurtPktPageNum * page_size); - - /* if the ap staion info. exists, get the kek, kck from staion info. */ - psta = rtw_get_stainfo(pstapriv, get_bssid(pmlmepriv)); - if (psta == NULL) { - _rtw_memset(kek, 0, RTW_KEK_LEN); - _rtw_memset(kck, 0, RTW_KCK_LEN); - RTW_INFO("%s, KEK, KCK download rsvd page all zero\n", - __func__); - } else { - _rtw_memcpy(kek, psta->kek, RTW_KEK_LEN); - _rtw_memcpy(kck, psta->kck, RTW_KCK_LEN); - } - - /* 3 KEK, KCK */ - rsvd_page_loc->LocGTKInfo = *page_num; - RTW_INFO("LocGTKInfo: %d\n", rsvd_page_loc->LocGTKInfo); - - if (IS_HARDWARE_TYPE_8188E(adapter) || IS_HARDWARE_TYPE_8812(adapter)) { - struct security_priv *psecpriv = NULL; - - psecpriv = &adapter->securitypriv; - _rtw_memcpy(pframe + index - tx_desc, - &psecpriv->dot11PrivacyAlgrthm, 1); - _rtw_memcpy(pframe + index - tx_desc + 1, - &psecpriv->dot118021XGrpPrivacy, 1); - _rtw_memcpy(pframe + index - tx_desc + 2, - kck, RTW_KCK_LEN); - _rtw_memcpy(pframe + index - tx_desc + 2 + RTW_KCK_LEN, - kek, RTW_KEK_LEN); - CurtPktPageNum = (u8)PageNum(tx_desc + 2 + RTW_KCK_LEN + RTW_KEK_LEN, page_size); - } else { - - _rtw_memcpy(pframe + index - tx_desc, kck, RTW_KCK_LEN); - _rtw_memcpy(pframe + index - tx_desc + RTW_KCK_LEN, - kek, RTW_KEK_LEN); - GTKLength = tx_desc + RTW_KCK_LEN + RTW_KEK_LEN; - - if (psta != NULL && - psecuritypriv->dot118021XGrpPrivacy == _TKIP_) { - _rtw_memcpy(pframe + index - tx_desc + 56, - &psta->dot11tkiptxmickey, RTW_TKIP_MIC_LEN); - GTKLength += RTW_TKIP_MIC_LEN; - } - CurtPktPageNum = (u8)PageNum(GTKLength, page_size); - } -#if 0 - { - int i; - printk("\ntoFW KCK: "); - for (i = 0; i < 16; i++) - printk(" %02x ", kck[i]); - printk("\ntoFW KEK: "); - for (i = 0; i < 16; i++) - printk(" %02x ", kek[i]); - printk("\n"); - } - - RTW_INFO("%s(): HW_VAR_SET_TX_CMD: KEK KCK %p %d\n", - __FUNCTION__, &pframe[index - tx_desc], - (tx_desc + RTW_KCK_LEN + RTW_KEK_LEN)); -#endif - - *page_num += CurtPktPageNum; - - index += (CurtPktPageNum * page_size); - RSVD_PAGE_CFG("WOW-GTKInfo", CurtPktPageNum, *page_num, 0); - - /* 3 GTK Response */ - rsvd_page_loc->LocGTKRsp = *page_num; - RTW_INFO("LocGTKRsp: %d\n", rsvd_page_loc->LocGTKRsp); - rtw_hal_construct_GTKRsp(adapter, &pframe[index], >KLength); - - rtw_hal_fill_fake_txdesc(adapter, &pframe[index - tx_desc], - GTKLength, _FALSE, _FALSE, _TRUE); -#if 0 - { - int gj; - printk("123GTK pkt=>\n"); - for (gj = 0; gj < GTKLength + tx_desc; gj++) { - printk(" %02x ", pframe[index - tx_desc + gj]); - if ((gj + 1) % 16 == 0) - printk("\n"); - } - printk(" <=end\n"); - } - - RTW_INFO("%s(): HW_VAR_SET_TX_CMD: GTK RSP %p %d\n", - __FUNCTION__, &pframe[index - tx_desc], - (tx_desc + GTKLength)); -#endif - - CurtPktPageNum = (u8)PageNum(tx_desc + GTKLength, page_size); - - *page_num += CurtPktPageNum; - - index += (CurtPktPageNum * page_size); - RSVD_PAGE_CFG("WOW-GTKRsp", CurtPktPageNum, *page_num, 0); - - /* below page is empty for GTK extension memory */ - /* 3(11) GTK EXT MEM */ - rsvd_page_loc->LocGTKEXTMEM = *page_num; - RTW_INFO("LocGTKEXTMEM: %d\n", rsvd_page_loc->LocGTKEXTMEM); - CurtPktPageNum = 2; - - if (page_size >= 256) - CurtPktPageNum = 1; - - *page_num += CurtPktPageNum; - /* extension memory for FW */ - *total_pkt_len = index + (page_size * CurtPktPageNum); - RSVD_PAGE_CFG("WOW-GTKEXTMEM", CurtPktPageNum, *page_num, *total_pkt_len); -#endif /* CONFIG_GTK_OL */ - - index += (CurtPktPageNum * page_size); - - /*Reserve 1 page for AOAC report*/ - rsvd_page_loc->LocAOACReport = *page_num; - RTW_INFO("LocAOACReport: %d\n", rsvd_page_loc->LocAOACReport); - *page_num += 1; - *total_pkt_len = index + (page_size * 1); - RSVD_PAGE_CFG("WOW-AOAC", 1, *page_num, *total_pkt_len); - } else { -#ifdef CONFIG_PNO_SUPPORT - if (pwrctl->wowlan_in_resume == _FALSE && - pwrctl->pno_inited == _TRUE) { - - /* Broadcast Probe Request */ - rsvd_page_loc->LocProbePacket = *page_num; - - RTW_INFO("loc_probe_req: %d\n", - rsvd_page_loc->LocProbePacket); - - rtw_hal_construct_ProbeReq( - adapter, - &pframe[index], - &ProbeReqLength, - NULL); - - rtw_hal_fill_fake_txdesc(adapter, - &pframe[index - tx_desc], - ProbeReqLength, _FALSE, _FALSE, _FALSE); - - CurtPktPageNum = - (u8)PageNum(tx_desc + ProbeReqLength, page_size); - - *page_num += CurtPktPageNum; - - index += (CurtPktPageNum * page_size); - RSVD_PAGE_CFG("WOW-ProbeReq", CurtPktPageNum, *page_num, 0); - - /* Hidden SSID Probe Request */ - ssid_num = pwrctl->pnlo_info->hidden_ssid_num; - - for (pno_index = 0 ; pno_index < ssid_num ; pno_index++) { - pwrctl->pnlo_info->loc_probe_req[pno_index] = - *page_num; - - rtw_hal_construct_ProbeReq( - adapter, - &pframe[index], - &ProbeReqLength, - &pwrctl->pno_ssid_list->node[pno_index]); - - rtw_hal_fill_fake_txdesc(adapter, - &pframe[index - tx_desc], - ProbeReqLength, _FALSE, _FALSE, _FALSE); - - CurtPktPageNum = - (u8)PageNum(tx_desc + ProbeReqLength, page_size); - - *page_num += CurtPktPageNum; - - index += (CurtPktPageNum * page_size); - RSVD_PAGE_CFG("WOW-ProbeReq", CurtPktPageNum, *page_num, 0); - } - - /* PNO INFO Page */ - rsvd_page_loc->LocPNOInfo = *page_num; - RTW_INFO("LocPNOInfo: %d\n", rsvd_page_loc->LocPNOInfo); - rtw_hal_construct_PNO_info(adapter, - &pframe[index - tx_desc], - &PNOLength); - - CurtPktPageNum = (u8)PageNum(PNOLength, page_size); - *page_num += CurtPktPageNum; - index += (CurtPktPageNum * page_size); - RSVD_PAGE_CFG("WOW-PNOInfo", CurtPktPageNum, *page_num, 0); - - /* Scan Info Page */ - rsvd_page_loc->LocScanInfo = *page_num; - RTW_INFO("LocScanInfo: %d\n", rsvd_page_loc->LocScanInfo); - rtw_hal_construct_scan_info(adapter, - &pframe[index - tx_desc], - &ScanInfoLength); - - CurtPktPageNum = (u8)PageNum(ScanInfoLength, page_size); - *page_num += CurtPktPageNum; - *total_pkt_len = index + ScanInfoLength; - index += (CurtPktPageNum * page_size); - RSVD_PAGE_CFG("WOW-ScanInfo", CurtPktPageNum, *page_num, *total_pkt_len); - } -#endif /* CONFIG_PNO_SUPPORT */ - } -} - static void rtw_hal_gate_bb(_adapter *adapter, bool stop) { struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(adapter); @@ -9252,7 +9485,30 @@ static u8 rtw_hal_wow_pattern_generate(_adapter *adapter, u8 idx, struct rtl_wow return _SUCCESS; } +void rtw_dump_wow_pattern(void *sel, struct rtl_wow_pattern *pwow_pattern, u8 idx) +{ + int j; + + RTW_PRINT_SEL(sel, "=======WOW CAM-ID[%d]=======\n", idx); + RTW_PRINT_SEL(sel, "[WOW CAM] type:%d\n", pwow_pattern->type); + RTW_PRINT_SEL(sel, "[WOW CAM] crc:0x%04x\n", pwow_pattern->crc); + for (j = 0; j < 4; j++) + RTW_PRINT_SEL(sel, "[WOW CAM] Mask:0x%08x\n", pwow_pattern->mask[j]); +} +/*bit definition of pattern match format*/ +#define WOW_VALID_BIT BIT31 +#ifndef CONFIG_WOW_PATTERN_IN_TXFIFO +#define WOW_BC_BIT BIT26 +#define WOW_MC_BIT BIT25 +#define WOW_UC_BIT BIT24 +#else +#define WOW_BC_BIT BIT18 +#define WOW_UC_BIT BIT17 +#define WOW_MC_BIT BIT16 +#endif /*CONFIG_WOW_PATTERN_IN_TXFIFO*/ + #ifndef CONFIG_WOW_PATTERN_HW_CAM +#ifndef CONFIG_WOW_PATTERN_IN_TXFIFO static void rtw_hal_reset_mac_rx(_adapter *adapter) { u8 val8 = 0; @@ -9298,7 +9554,7 @@ static void rtw_hal_set_wow_rxff_boundary(_adapter *adapter, bool wow_mode) rtw_read16(adapter, (REG_TRXFF_BNDY + 2))); } } - +#endif /* CONFIG_WOW_PATTERN_IN_TXFIFO*/ #ifndef CONFIG_WOW_PATTERN_IN_TXFIFO bool rtw_read_from_frame_mask(_adapter *adapter, u8 idx) { @@ -9444,13 +9700,13 @@ bool rtw_write_to_frame_mask(_adapter *adapter, u8 idx, if (i == 0) { if (context->type == PATTERN_VALID) - data = BIT(31); + data = WOW_VALID_BIT; else if (context->type == PATTERN_BROADCAST) - data = BIT(31) | BIT(26); + data = WOW_VALID_BIT | WOW_BC_BIT; else if (context->type == PATTERN_MULTICAST) - data = BIT(31) | BIT(25); + data = WOW_VALID_BIT | WOW_MC_BIT; else if (context->type == PATTERN_UNICAST) - data = BIT(31) | BIT(24); + data = WOW_VALID_BIT | WOW_UC_BIT; if (context->crc != 0) data |= context->crc; @@ -9492,16 +9748,45 @@ bool rtw_write_to_frame_mask(_adapter *adapter, u8 idx, return res; } +void rtw_fill_pattern(_adapter *adapter) +{ + int i = 0, total = 0, index; + struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(adapter); + struct rtl_wow_pattern wow_pattern; + + total = pwrpriv->wowlan_pattern_idx; + + if (total > MAX_WKFM_CAM_NUM) + total = MAX_WKFM_CAM_NUM; + + for (i = 0 ; i < total ; i++) { + if (_SUCCESS == rtw_hal_wow_pattern_generate(adapter, i, &wow_pattern)) { + + index = i; + if (!pwrpriv->bInSuspend) + index += 2; + rtw_dump_wow_pattern(RTW_DBGDUMP, &wow_pattern, i); + if (rtw_write_to_frame_mask(adapter, index, &wow_pattern) == _FALSE) + RTW_INFO("%s: ERROR!! idx: %d write_to_frame_mask_cam fail\n", __func__, i); + } + + } + rtw_write8(adapter, REG_WKFMCAM_NUM, total); + +} #else /* CONFIG_WOW_PATTERN_IN_TXFIFO */ bool rtw_read_from_frame_mask(_adapter *adapter, u8 idx) { - u32 data_l = 0, data_h = 0, rx_dma_buff_sz = 0, page_sz = 0; + u32 data_l = 0, data_h = 0, page_sz = 0; u16 tx_page_start, tx_buf_ptr = 0; u16 cam_start_offset = 0; u16 ctrl_l = 0, ctrl_h = 0; u8 count = 0, tmp = 0, last_entry = 0; int i = 0; bool res = _TRUE; + struct pwrctrl_priv *pwrctl = adapter_to_pwrctl(adapter); + u32 buffer[WKFMCAM_ADDR_NUM]; + if (idx > MAX_WKFM_CAM_NUM) { RTW_INFO("[Error]: %s, pattern index is out of range\n", @@ -9521,52 +9806,70 @@ bool rtw_read_from_frame_mask(_adapter *adapter, u8 idx) return _FALSE; } - /* use the last 2 pages for wow pattern e.g. 0xfe and 0xff */ - tx_page_start = last_entry - 1; - cam_start_offset = tx_page_start * page_sz / 8; - ctrl_l = 0x0; - ctrl_h = 0x0; - /* Enable TX packet buffer access */ - rtw_write8(adapter, REG_PKT_BUFF_ACCESS_CTRL, TXPKT_BUF_SELECT); - - /* Read the WKFM CAM */ - for (i = 0; i < (WKFMCAM_ADDR_NUM / 2); i++) { - /* - * Set Tx packet buffer offset. - * TxBufer pointer increases 1, we can access 8 bytes in Tx packet buffer. - * CAM start offset (unit: 1 byte) = Index*WKFMCAM_SIZE - * TxBufer pointer addr = (CAM start offset + per entry offset of a WKFMCAM)/8 - * * Index: The index of the wake up frame mask - * * WKFMCAM_SIZE: the total size of one WKFM CAM - * * per entry offset of a WKFM CAM: Addr i * 4 bytes + if(_rtw_wow_chk_cap(adapter, WOW_CAP_HALMAC_ACCESS_PATTERN_IN_TXFIFO)) { + /* 8723F cannot indirect access tx fifo + * rtw_halmac_dump_fifo(dvobj, fifo_sel, fifo_addr, buf_sz, buf) */ - tx_buf_ptr = - (cam_start_offset + idx * WKFMCAM_SIZE + i * 8) >> 3; - rtw_write16(adapter, REG_PKTBUF_DBG_CTRL, tx_buf_ptr); - rtw_write16(adapter, REG_RXPKTBUF_CTRL, ctrl_l); - data_l = rtw_read32(adapter, REG_PKTBUF_DBG_DATA_L); - data_h = rtw_read32(adapter, REG_PKTBUF_DBG_DATA_H); + #ifdef RTW_HALMAC + rtw_halmac_dump_fifo(adapter_to_dvobj(adapter), + 2, + (pwrctl->pattern_rsvd_page_loc * page_sz) + (idx * WKFMCAM_ADDR_NUM * 4), + WKFMCAM_ADDR_NUM*4, (u8*)buffer); + #endif - RTW_INFO("[%d]: %08x %08x\n", i, data_h, data_l); - - count = 0; - - do { - tmp = rtw_read32(adapter, REG_PKTBUF_DBG_CTRL) & BIT23; - rtw_udelay_os(2); - count++; - } while (!tmp && count < 100); - - if (count >= 100) { - RTW_INFO("%s count:%d\n", __func__, count); - res = _FALSE; + for (i = 0; i < (WKFMCAM_ADDR_NUM / 2); i++) { + RTW_INFO("[%d]: %08x %08x\n", i, *(buffer + i*2), *(buffer + i*2 + 1)); } + } else { + /* use the last 2 pages for wow pattern e.g. 0xfe and 0xff */ + tx_page_start = last_entry - 1; + cam_start_offset = tx_page_start * page_sz / 8; + ctrl_l = 0x0; + ctrl_h = 0x0; + + /* Enable TX packet buffer access */ + rtw_write8(adapter, REG_PKT_BUFF_ACCESS_CTRL, TXPKT_BUF_SELECT); + + /* Read the WKFM CAM */ + for (i = 0; i < (WKFMCAM_ADDR_NUM / 2); i++) { + /* + * Set Tx packet buffer offset. + * TxBufer pointer increases 1, we can access 8 bytes in Tx packet buffer. + * CAM start offset (unit: 1 byte) = Index*WKFMCAM_SIZE + * TxBufer pointer addr = (CAM start offset + per entry offset of a WKFMCAM)/8 + * * Index: The index of the wake up frame mask + * * WKFMCAM_SIZE: the total size of one WKFM CAM + * * per entry offset of a WKFM CAM: Addr i * 4 bytes + */ + tx_buf_ptr = + (cam_start_offset + idx * WKFMCAM_SIZE + i * 8) >> 3; + rtw_write16(adapter, REG_PKTBUF_DBG_CTRL, tx_buf_ptr); + rtw_write16(adapter, REG_RXPKTBUF_CTRL, ctrl_l); + data_l = rtw_read32(adapter, REG_PKTBUF_DBG_DATA_L); + data_h = rtw_read32(adapter, REG_PKTBUF_DBG_DATA_H); + + RTW_INFO("[%d]: %08x %08x\n", i, data_h, data_l); + + count = 0; + + do { + tmp = rtw_read32(adapter, REG_PKTBUF_DBG_CTRL) & BIT23; + rtw_udelay_os(2); + count++; + } while (!tmp && count < 100); + + if (count >= 100) { + RTW_INFO("%s count:%d\n", __func__, count); + res = _FALSE; + } + } + + /* Disable RX packet buffer access */ + rtw_write8(adapter, REG_PKT_BUFF_ACCESS_CTRL, + DISABLE_TRXPKT_BUF_ACCESS); } - /* Disable RX packet buffer access */ - rtw_write8(adapter, REG_PKT_BUFF_ACCESS_CTRL, - DISABLE_TRXPKT_BUF_ACCESS); return res; } @@ -9623,13 +9926,13 @@ bool rtw_write_to_frame_mask(_adapter *adapter, u8 idx, if (i == 0) { if (context->type == PATTERN_VALID) - data_l = BIT(31); + data_l = WOW_VALID_BIT; else if (context->type == PATTERN_BROADCAST) - data_l = BIT(31) | BIT(26); + data_l = WOW_VALID_BIT | WOW_BC_BIT; else if (context->type == PATTERN_MULTICAST) - data_l = BIT(31) | BIT(25); + data_l = WOW_VALID_BIT | WOW_MC_BIT; else if (context->type == PATTERN_UNICAST) - data_l = BIT(31) | BIT(24); + data_l = WOW_VALID_BIT | WOW_UC_BIT; if (context->crc != 0) data_l |= context->crc; @@ -9642,7 +9945,7 @@ bool rtw_write_to_frame_mask(_adapter *adapter, u8 idx, rtw_write32(adapter, REG_PKTBUF_DBG_DATA_H, data_h); } - rtw_write32(adapter, REG_PKTBUF_DBG_CTRL, (tx_buf_ptr & 0xFFFF) | BIT23 | (0xff <<24)); + rtw_write32(adapter, REG_PKTBUF_DBG_CTRL, (tx_buf_ptr & 0x1FFF) | BIT23 | (0xff <<24)); count = 0; do { tmp = rtw_read32(adapter, REG_PKTBUF_DBG_CTRL) & BIT23; @@ -9663,6 +9966,65 @@ bool rtw_write_to_frame_mask(_adapter *adapter, u8 idx, rtw_write8(adapter, REG_PKT_BUFF_ACCESS_CTRL, DISABLE_TRXPKT_BUF_ACCESS); return res; } +bool rtw_write_to_frame_mask_buf(_adapter *adapter, u8 idx, + struct rtl_wow_pattern *context, char *pattern_info, u32 *ppattern_info_len) +{ + + struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(adapter); + u32 page_sz = 0; + int res = _FALSE, i = 0; + u32 tmp_pattern_buf[6] = {0}; + + if (pattern_info == NULL) { + RTW_ERR("[Error]: %s, pattern info is NULL\n", __func__); + } + if (idx > MAX_WKFM_CAM_NUM) { + RTW_ERR("[Error]: %s, pattern index is out of range\n", + __func__); + return _FALSE; + } + + rtw_hal_get_def_var(adapter, HAL_DEF_TX_PAGE_SIZE, (u8 *)&page_sz); + if (page_sz == 0) { + RTW_ERR("[Error]: %s, page_sz is 0!!\n", __func__); + return _FALSE; + } + + /* Fill WKFM */ + for (i = 0; i < WKFMCAM_ADDR_NUM / 2; i++) { + if (i == 0) { + if (context->type == PATTERN_VALID) + tmp_pattern_buf[0] = WOW_VALID_BIT; + else if (context->type == PATTERN_BROADCAST) + tmp_pattern_buf[0] = WOW_VALID_BIT | WOW_BC_BIT; + else if (context->type == PATTERN_MULTICAST) + tmp_pattern_buf[0] = WOW_VALID_BIT | WOW_MC_BIT; + else if (context->type == PATTERN_UNICAST) + tmp_pattern_buf[0] = WOW_VALID_BIT | WOW_UC_BIT; + + if (context->crc != 0) + tmp_pattern_buf[0] |= context->crc; + /* pattern[1] is reserved in pattern format, dont care. */ + + } else { + tmp_pattern_buf[i * 2] = context->mask[i * 2 - 2]; + tmp_pattern_buf[i * 2 + 1] = context->mask[i * 2 - 1]; + } + } + + + /* put pattern to pattern_buf */ + _rtw_memcpy((pattern_info + idx * WKFMCAM_SIZE) , tmp_pattern_buf, WKFMCAM_SIZE); + *ppattern_info_len += WKFMCAM_SIZE; + #ifdef CONFIG_WOW_PATTERN_IN_TXFIFO_DBG + RTW_INFO("\nidx : %u pattern_info_len : %u\n", idx, *ppattern_info_len); + RTW_INFO_DUMP("", (pattern_info + idx * WKFMCAM_SIZE), WKFMCAM_SIZE); + #endif + res = _TRUE; + + + return res; +} #endif /* CONFIG_WOW_PATTERN_IN_TXFIFO */ void rtw_clean_pattern(_adapter *adapter) @@ -9674,9 +10036,7 @@ void rtw_clean_pattern(_adapter *adapter) _rtw_memset(&zero_pattern, 0, sizeof(struct rtl_wow_pattern)); zero_pattern.type = PATTERN_INVALID; - - for (i = 0; i < MAX_WKFM_CAM_NUM; i++) - rtw_write_to_frame_mask(adapter, i, &zero_pattern); + /* pattern in tx fifo do not need clear to zero*/ rtw_write8(adapter, REG_WKFMCAM_NUM, 0); } @@ -9795,42 +10155,9 @@ static int rtw_hal_set_pattern(_adapter *adapter, u8 *pattern, return res; } #endif - -void rtw_fill_pattern(_adapter *adapter) -{ - int i = 0, total = 0, index; - struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(adapter); - struct rtl_wow_pattern wow_pattern; - - total = pwrpriv->wowlan_pattern_idx; - - if (total > MAX_WKFM_CAM_NUM) - total = MAX_WKFM_CAM_NUM; - - for (i = 0 ; i < total ; i++) { - if (_SUCCESS == rtw_hal_wow_pattern_generate(adapter, i, &wow_pattern)) { - - index = i; - if (!pwrpriv->bInSuspend) - index += 2; - - if (rtw_write_to_frame_mask(adapter, index, &wow_pattern) == _FALSE) - RTW_INFO("%s: ERROR!! idx: %d write_to_frame_mask_cam fail\n", __func__, i); - } - - } - rtw_write8(adapter, REG_WKFMCAM_NUM, total); - -} - #else /*CONFIG_WOW_PATTERN_HW_CAM*/ #define WOW_CAM_ACCESS_TIMEOUT_MS 200 -#define WOW_VALID_BIT BIT31 -#define WOW_BC_BIT BIT26 -#define WOW_MC_BIT BIT25 -#define WOW_UC_BIT BIT24 - static u32 _rtw_wow_pattern_read_cam(_adapter *adapter, u8 addr) { struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(adapter); @@ -10012,18 +10339,6 @@ void rtw_clean_pattern(_adapter *adapter) if (_FAIL == _rtw_wow_pattern_clean_cam(adapter)) RTW_ERR("rtw_clean_pattern failed\n"); } - -void rtw_dump_wow_pattern(void *sel, struct rtl_wow_pattern *pwow_pattern, u8 idx) -{ - int j; - - RTW_PRINT_SEL(sel, "=======WOW CAM-ID[%d]=======\n", idx); - RTW_PRINT_SEL(sel, "[WOW CAM] type:%d\n", pwow_pattern->type); - RTW_PRINT_SEL(sel, "[WOW CAM] crc:0x%04x\n", pwow_pattern->crc); - for (j = 0; j < 4; j++) - RTW_PRINT_SEL(sel, "[WOW CAM] Mask:0x%08x\n", pwow_pattern->mask[j]); -} - void rtw_fill_pattern(_adapter *adapter) { int i = 0, total = 0; @@ -10048,9 +10363,14 @@ void rtw_wow_pattern_cam_dump(_adapter *adapter) { #ifndef CONFIG_WOW_PATTERN_HW_CAM - int i; + int i = 0, total = 0; + struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(adapter); + total = pwrpriv->wowlan_pattern_idx; - for (i = 0 ; i < MAX_WKFM_CAM_NUM; i++) { + if (total > MAX_WKFM_CAM_NUM) + total = MAX_WKFM_CAM_NUM; + + for (i = 0 ; i < total; i++) { RTW_INFO("=======[%d]=======\n", i); rtw_read_from_frame_mask(adapter, i); } @@ -10077,9 +10397,13 @@ static void rtw_hal_dl_pattern(_adapter *adapter, u8 mode) RTW_INFO("%s: total patterns: %d\n", __func__, pwrpriv->wowlan_pattern_idx); break; case 1: + #if defined(CONFIG_WOW_PATTERN_IN_TXFIFO) + RTW_INFO("%s Patterns have been downloaded in rsvd pages\n", __func__); + #else rtw_set_default_pattern(adapter); rtw_fill_pattern(adapter); RTW_INFO("%s: pattern total: %d downloaded\n", __func__, pwrpriv->wowlan_pattern_idx); + #endif break; case 2: rtw_clean_pattern(adapter); @@ -10102,8 +10426,13 @@ static void rtw_hal_wow_enable(_adapter *adapter) PHAL_DATA_TYPE pHalData = GET_HAL_DATA(adapter); int res; u16 media_status_rpt; - u8 no_wake = 0; - + u8 no_wake = 0, i; + struct dvobj_priv *dvobj = adapter_to_dvobj(adapter); + _adapter *iface; +#ifdef CONFIG_GPIO_WAKEUP + u8 val8 = 0; +#endif + #ifdef CONFIG_LPS_PG u8 lps_pg_hdl_id = 0; #endif @@ -10116,6 +10445,16 @@ static void rtw_hal_wow_enable(_adapter *adapter) RTW_PRINT(FUNC_ADPT_FMT " WOWLAN_ENABLE\n", FUNC_ADPT_ARG(adapter)); rtw_hal_gate_bb(adapter, _TRUE); + + for (i = 0; i < dvobj->iface_nums; i++) { + iface = dvobj->padapters[i]; + /* Start Usb TxDMA */ + if(iface) { + RTW_INFO(ADPT_FMT "enable TX\n", ADPT_ARG(iface)); + RTW_ENABLE_FUNC(iface, DF_TX_BIT); + } + } + #ifdef CONFIG_GTK_OL if (psecuritypriv->binstallKCK_KEK == _TRUE) rtw_hal_fw_sync_cam_id(adapter); @@ -10143,7 +10482,9 @@ static void rtw_hal_wow_enable(_adapter *adapter) #ifndef CONFIG_WOW_PATTERN_HW_CAM /* Reconfig RX_FF Boundary */ + #ifndef CONFIG_WOW_PATTERN_IN_TXFIFO rtw_hal_set_wow_rxff_boundary(adapter, _TRUE); + #endif /*CONFIG_WOW_PATTERN_IN_TXFIFO*/ #endif /* redownload wow pattern */ @@ -10164,13 +10505,19 @@ static void rtw_hal_wow_enable(_adapter *adapter) } #ifdef CONFIG_FW_MULTI_PORT_SUPPORT else { - pwrctl->current_lps_hw_port_id = get_hw_port(adapter); - if(registry_par->suspend_type == FW_IPS_WRC) - rtw_hal_set_default_port_id_cmd(adapter, pwrctl->current_lps_hw_port_id); - RTW_DBG("pwrctl->current_lps_hw_port_id = %d \n", pwrctl->current_lps_hw_port_id); + if(registry_par->suspend_type == FW_IPS_WRC) { + adapter_to_dvobj(adapter)->dft.port_id = 0xFF; + adapter_to_dvobj(adapter)->dft.mac_id = 0xFF; + rtw_hal_set_default_port_id_cmd(adapter, 0); + } } #endif /* CONFIG_FW_MULTI_PORT_SUPPORT */ } +#ifdef CONFIG_FW_MULTI_PORT_SUPPORT + else { + rtw_hal_set_default_port_id_cmd(adapter, 0); + } +#endif /* CONFIG_FW_MULTI_PORT_SUPPORT */ #if defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI) /* Enable CPWM2 only. */ @@ -10179,8 +10526,27 @@ static void rtw_hal_wow_enable(_adapter *adapter) RTW_PRINT("[WARNING] enable cpwm2 fail\n"); #endif #ifdef CONFIG_GPIO_WAKEUP - rtw_hal_switch_gpio_wl_ctrl(adapter, WAKEUP_GPIO_IDX, _TRUE); -#endif +#ifdef CONFIG_RTW_ONE_PIN_GPIO + rtw_hal_switch_gpio_wl_ctrl(adapter, pwrctl->wowlan_gpio_index, _TRUE); + rtw_hal_set_input_gpio(adapter, pwrctl->wowlan_gpio_index); +#else +#ifdef CONFIG_WAKEUP_GPIO_INPUT_MODE + if (pwrctl->is_high_active == 0) + rtw_hal_set_input_gpio(adapter, pwrctl->wowlan_gpio_index); + else + rtw_hal_set_output_gpio(adapter, pwrctl->wowlan_gpio_index, + GPIO_OUTPUT_LOW); +#else + val8 = (pwrctl->is_high_active == 0) ? 1 : 0; + rtw_hal_set_output_gpio(adapter, pwrctl->wowlan_gpio_index, val8); + rtw_hal_switch_gpio_wl_ctrl(adapter, pwrctl->wowlan_gpio_index, _TRUE); + RTW_INFO("%s: set GPIO_%d to OUTPUT %s state in wow suspend and %s_ACTIVE.\n", + __func__, pwrctl->wowlan_gpio_index, + pwrctl->wowlan_gpio_output_state ? "HIGH" : "LOW", + pwrctl->is_high_active ? "HIGI" : "LOW"); +#endif /* CONFIG_WAKEUP_GPIO_INPUT_MODE */ +#endif /* CONFIG_RTW_ONE_PIN_GPIO */ +#endif /* CONFIG_GPIO_WAKEUP */ /* Set WOWLAN H2C command. */ RTW_PRINT("Set WOWLan cmd\n"); rtw_hal_set_fw_wow_related_cmd(adapter, 1); @@ -10195,6 +10561,12 @@ static void rtw_hal_wow_enable(_adapter *adapter) RTW_PRINT("wowlan_wake_reason: 0x%02x\n", pwrctl->wowlan_wake_reason); + +#if defined(RTW_HALMAC) && defined(CONFIG_PNO_SUPPORT) + if(pwrctl->wowlan_pno_enable) + rtw_halmac_pno_scanoffload(adapter->dvobj, 1); +#endif + #ifdef CONFIG_GTK_OL_DBG dump_sec_cam(RTW_DBGDUMP, adapter); dump_sec_cam_cache(RTW_DBGDUMP, adapter); @@ -10251,6 +10623,8 @@ void _dbg_rtw_wake_up_reason(_adapter *adapter, u8 reason) _dbg_wake_up_reason_string(adapter, "Rx unicast packet"); else if (RX_PATTERN_PKT == reason) _dbg_wake_up_reason_string(adapter, "Rx pattern packet"); + else if (RX_PNO == reason) + _dbg_wake_up_reason_string(adapter, "RX PNO"); else if (RTD3_SSID_MATCH == reason) _dbg_wake_up_reason_string(adapter, "RTD3 SSID match"); else if (RX_REALWOW_V2_WAKEUP_PKT == reason) @@ -10269,6 +10643,12 @@ void _dbg_rtw_wake_up_reason(_adapter *adapter, u8 reason) _dbg_wake_up_reason_string(adapter, "RTIME fail DMA idle"); else if (CLK_32K_LOCK == reason) _dbg_wake_up_reason_string(adapter, "clk 32k lock"); + #ifdef CONFIG_WOW_KEEP_ALIVE_PATTERN + else if (WOW_KEEPALIVE_ACK_TIMEOUT == reason) + _dbg_wake_up_reason_string(adapter, "rx keep alive ack timeout"); + else if (WOW_KEEPALIVE_WAKE == reason) + _dbg_wake_up_reason_string(adapter, "rx keep alive wake pattern"); + #endif /*CONFIG_WOW_KEEP_ALIVE_PATTERN*/ else _dbg_wake_up_reason_string(adapter, "unknown reasoen"); } @@ -10276,6 +10656,8 @@ void _dbg_rtw_wake_up_reason(_adapter *adapter, u8 reason) static void rtw_hal_wow_disable(_adapter *adapter) { + int i; + struct recv_reorder_ctrl *preorder_ctrl; struct pwrctrl_priv *pwrctl = adapter_to_pwrctl(adapter); struct security_priv *psecuritypriv = &adapter->securitypriv; struct mlme_priv *pmlmepriv = &adapter->mlmepriv; @@ -10283,15 +10665,14 @@ static void rtw_hal_wow_disable(_adapter *adapter) struct registry_priv *registry_par = &adapter->registrypriv; int res; u16 media_status_rpt; - u8 val8; RTW_PRINT("%s, WOWLAN_DISABLE\n", __func__); - + if(registry_par->suspend_type == FW_IPS_DISABLE_BBRF && !check_fwstate(pmlmepriv, WIFI_ASOC_STATE)) { RTW_INFO("FW_IPS_DISABLE_BBRF resume\n"); return; } - + if (!pwrctl->wowlan_pno_enable) { psta = rtw_get_stainfo(&adapter->stapriv, get_bssid(pmlmepriv)); if (psta != NULL) @@ -10299,6 +10680,11 @@ static void rtw_hal_wow_disable(_adapter *adapter) else RTW_INFO("%s: psta is null\n", __func__); } +#if defined(RTW_HALMAC) && defined(CONFIG_PNO_SUPPORT) + else { + rtw_halmac_pno_scanoffload(adapter->dvobj, 0); + } +#endif if (0) { RTW_INFO("0x630:0x%02x\n", rtw_read8(adapter, 0x630)); @@ -10319,6 +10705,23 @@ static void rtw_hal_wow_disable(_adapter *adapter) res = rtw_hal_check_wow_ctrl(adapter, _FALSE); + #if defined(CONFIG_RTL8188E) + if (IS_HARDWARE_TYPE_8188E(adapter)) + rtw_hal_enable_tx_report(adapter); + #endif + + if ((pwrctl->wowlan_wake_reason != RX_DISASSOC) && + (pwrctl->wowlan_wake_reason != RX_DEAUTH) && + (pwrctl->wowlan_wake_reason != FW_DECISION_DISCONNECT) && + (pwrctl->wowlan_wake_reason != NO_WAKE_RX_PAIRWISEKEY) && + (pwrctl->wowlan_wake_reason != NO_WAKE_RX_GTK) && + (pwrctl->wowlan_wake_reason != NO_WAKE_RX_DISASSOC) && + (pwrctl->wowlan_wake_reason != NO_WAKE_RX_DEAUTH) && + (pwrctl->wowlan_wake_reason != NO_WAKE_RX_EAPREQ_IDENTIFY)) { + rtw_hal_get_aoac_rpt(adapter); + rtw_hal_update_sw_security_info(adapter); + } + if (res == _FALSE) { RTW_INFO("[Error]%s: disable WOW cmd fail\n!!", __func__); rtw_hal_force_enable_rxdma(adapter); @@ -10335,43 +10738,35 @@ static void rtw_hal_wow_disable(_adapter *adapter) #ifndef CONFIG_WOW_PATTERN_HW_CAM /* config RXFF boundary to original */ + #ifndef CONFIG_WOW_PATTERN_IN_TXFIFO rtw_hal_set_wow_rxff_boundary(adapter, _FALSE); + #endif /*CONFIG_WOW_PATTERN_IN_TXFIFO*/ #endif rtw_hal_release_rx_dma(adapter); - #if defined(CONFIG_RTL8188E) - if (IS_HARDWARE_TYPE_8188E(adapter)) - rtw_hal_enable_tx_report(adapter); - #endif - - if ((pwrctl->wowlan_wake_reason != RX_DISASSOC) && - (pwrctl->wowlan_wake_reason != RX_DEAUTH) && - (pwrctl->wowlan_wake_reason != FW_DECISION_DISCONNECT)) { - rtw_hal_get_aoac_rpt(adapter); - rtw_hal_update_sw_security_info(adapter); - } - rtw_hal_fw_dl(adapter, _FALSE); #ifdef CONFIG_GPIO_WAKEUP #ifdef CONFIG_RTW_ONE_PIN_GPIO - rtw_hal_set_input_gpio(adapter, WAKEUP_GPIO_IDX); + rtw_hal_set_input_gpio(adapter, pwrctl->wowlan_gpio_index); #else #ifdef CONFIG_WAKEUP_GPIO_INPUT_MODE if (pwrctl->is_high_active == 0) - rtw_hal_set_input_gpio(adapter, WAKEUP_GPIO_IDX); + rtw_hal_set_input_gpio(adapter, pwrctl->wowlan_gpio_index); else - rtw_hal_set_output_gpio(adapter, WAKEUP_GPIO_IDX, 0); + rtw_hal_set_output_gpio(adapter, pwrctl->wowlan_gpio_index, + GPIO_OUTPUT_LOW); #else - val8 = (pwrctl->is_high_active == 0) ? 1 : 0; - RTW_PRINT("Set Wake GPIO to default(%d).\n", val8); - - rtw_hal_set_output_gpio(adapter, WAKEUP_GPIO_IDX, val8); - rtw_hal_switch_gpio_wl_ctrl(adapter, WAKEUP_GPIO_IDX, _FALSE); -#endif + rtw_hal_set_output_gpio(adapter, pwrctl->wowlan_gpio_index + , pwrctl->wowlan_gpio_output_state); + RTW_INFO("%s: set GPIO_%d to OUTPUT %s state in wow resume and %s_ACTIVE.\n", + __func__, pwrctl->wowlan_gpio_index, + pwrctl->wowlan_gpio_output_state ? "HIGH" : "LOW", + pwrctl->is_high_active ? "HIGI" : "LOW"); +#endif /* CONFIG_WAKEUP_GPIO_INPUT_MODE */ #endif /* CONFIG_RTW_ONE_PIN_GPIO */ -#endif +#endif /* CONFIG_GPIO_WAKEUP */ if ((pwrctl->wowlan_wake_reason != FW_DECISION_DISCONNECT) && (pwrctl->wowlan_wake_reason != RX_PAIRWISEKEY) && (pwrctl->wowlan_wake_reason != RX_DISASSOC) && @@ -10390,8 +10785,697 @@ static void rtw_hal_wow_disable(_adapter *adapter) rtw_sta_media_status_rpt(adapter, psta, 1); } } + + if (psta != NULL) { + RTW_PRINT("rtw_set_bit RTW_RECV_REORDER_WOW\n"); + for (i = 0; i < TID_NUM; i++) { + preorder_ctrl = &psta->recvreorder_ctrl[i]; + rtw_set_bit(RTW_RECV_REORDER_WOW, + &preorder_ctrl->rec_abba_rsp_ack); + } + } + rtw_hal_gate_bb(adapter, _FALSE); } +#if defined(CONFIG_WOW_PATTERN_IN_TXFIFO) +static void rtw_hal_construct_pattern_info( + PADAPTER padapter, + u8 *pframe, + u32 *pLength +) +{ + + u32 pattern_info_len = 0; + int i = 0, total = 0, index; + struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter); + struct rtl_wow_pattern wow_pattern; + u32 page_sz = 0; + + total = pwrpriv->wowlan_pattern_idx; + + if (total > MAX_WKFM_CAM_NUM) + total = MAX_WKFM_CAM_NUM; + + /* Generate default pattern */ + rtw_set_default_pattern(padapter); + + /* Convert pattern to WKFM_CAM pattern */ + for (i = 0 ; i < total ; i++) { + if (_SUCCESS == rtw_hal_wow_pattern_generate(padapter, i, &wow_pattern)) { + + index = i; + if (!pwrpriv->bInSuspend) + index += 2; + #ifdef CONFIG_WOW_PATTERN_IN_TXFIFO_DBG + rtw_dump_wow_pattern(RTW_DBGDUMP, &wow_pattern, i); + #endif + + if (rtw_write_to_frame_mask_buf(padapter, index, &wow_pattern, + pframe, &pattern_info_len) == _FALSE) + RTW_INFO("%s: ERROR!! idx: %d write_to_frame_mask_cam fail\n", __func__, i); + } + } + *pLength = pattern_info_len; + + +} +#endif /* CONFIG_WOW_PATTERN_IN_TXFIFO */ +void rtw_hal_set_wow_fw_rsvd_page(_adapter *adapter, u8 *pframe, u16 index, + u8 tx_desc, u32 page_size, u8 *page_num, u32 *total_pkt_len, + RSVDPAGE_LOC *rsvd_page_loc) +{ + struct security_priv *psecuritypriv = &adapter->securitypriv; + struct mlme_priv *pmlmepriv = &adapter->mlmepriv; + struct pwrctrl_priv *pwrctl = adapter_to_pwrctl(adapter); + struct mlme_ext_priv *pmlmeext; + struct mlme_ext_info *pmlmeinfo; + u32 ARPLength = 0, GTKLength = 0, PNOLength = 0, ScanInfoLength = 0; + u32 ProbeReqLength = 0, ns_len = 0, rc_len = 0; + u8 CurtPktPageNum = 0; +#ifdef CONFIG_WOW_KEEP_ALIVE_PATTERN + u32 keep_alive_len=0; + int i; +#endif /*CONFIG_WOW_KEEP_ALIVE_PATTERN */ +#ifdef CONFIG_WAR_OFFLOAD + u16 tmp_idx = 0; + u32 buf_len = 0; +#endif + +#ifdef CONFIG_GTK_OL + struct sta_priv *pstapriv = &adapter->stapriv; + struct sta_info *psta; + struct security_priv *psecpriv = &adapter->securitypriv; + u8 kek[RTW_KEK_LEN]; + u8 kck[RTW_KCK_LEN]; +#endif /* CONFIG_GTK_OL */ +#ifdef CONFIG_PNO_SUPPORT + int pno_index; + u8 ssid_num; +#endif /* CONFIG_PNO_SUPPORT */ +#ifdef CONFIG_WOW_PATTERN_IN_TXFIFO + u32 PatternLen = 0; + u32 cam_start_offset = 0; + u32 reg_cam_start_offset_val = 0; +#endif /* CONFIG_WOW_PATTERN_IN_TXFIFO */ + + pmlmeext = &adapter->mlmeextpriv; + pmlmeinfo = &pmlmeext->mlmext_info; + + if (pwrctl->wowlan_pno_enable == _FALSE) { + /* ARP RSP * 1 page */ + + rsvd_page_loc->LocArpRsp = *page_num; + + RTW_INFO("LocArpRsp: %d\n", rsvd_page_loc->LocArpRsp); + +#ifdef CONFIG_WAR_OFFLOAD + if ((0 != pwrctl->wowlan_war_offload_ipv4.ip_addr[0]) && + (_FALSE == _rtw_memcmp(&pwrctl->wowlan_war_offload_ipv4.ip_addr[0], pmlmeinfo->ip_addr, 4))) { + _rtw_memcpy(pmlmeinfo->ip_addr, &pwrctl->wowlan_war_offload_ipv4.ip_addr[0], 4); + RTW_INFO("Update IP(%d.%d.%d.%d) to arp rsvd page\n", + pmlmeinfo->ip_addr[0], pmlmeinfo->ip_addr[1], + pmlmeinfo->ip_addr[2], pmlmeinfo->ip_addr[3]); + } +#endif /* CONFIG_WAR_OFFLOAD */ + + + rtw_hal_construct_ARPRsp(adapter, &pframe[index], + &ARPLength, pmlmeinfo->ip_addr); + + rtw_hal_fill_fake_txdesc(adapter, + &pframe[index - tx_desc], + ARPLength, _FALSE, _FALSE, _TRUE); + + CurtPktPageNum = (u8)PageNum(tx_desc + ARPLength, page_size); + + *page_num += CurtPktPageNum; + + index += (CurtPktPageNum * page_size); + RSVD_PAGE_CFG("WOW-ARPRsp", CurtPktPageNum, *page_num, 0); +#ifdef CONFIG_WOW_KEEP_ALIVE_PATTERN + /* Keep Alive * ? page*/ + if(pwrctl->keep_alive_pattern_len){ + rsvd_page_loc->LocKeepAlive = *page_num; + pwrctl->keep_alive_pattern_loc = rsvd_page_loc->LocKeepAlive; + RTW_INFO("pwrctl->keep_alive_pattern_loc: %d\n", pwrctl->keep_alive_pattern_loc); + rtw_hal_construct_keepalive(adapter,&pframe[index],&keep_alive_len); + rtw_hal_fill_fake_txdesc(adapter, + &pframe[index - tx_desc], + keep_alive_len, _FALSE, _FALSE, _TRUE); + CurtPktPageNum = (u8)PageNum(tx_desc + keep_alive_len, page_size); + *page_num += CurtPktPageNum; + index += (CurtPktPageNum * page_size); + RSVD_PAGE_CFG("WOW-KeepAlive:", CurtPktPageNum, *page_num, 0); + } +#endif /* CONFIG_WOW_KEEP_ALIVE_PATTERN*/ + +#ifdef CONFIG_IPV6 + /* 2 NS offload and NDP Info*/ + if (pwrctl->wowlan_ns_offload_en == _TRUE) { + rsvd_page_loc->LocNbrAdv = *page_num; + RTW_INFO("LocNbrAdv: %d\n", rsvd_page_loc->LocNbrAdv); + rtw_hal_construct_na_message(adapter, + &pframe[index], &ns_len); + rtw_hal_fill_fake_txdesc(adapter, + &pframe[index - tx_desc], + ns_len, _FALSE, + _FALSE, _TRUE); + CurtPktPageNum = (u8)PageNum(tx_desc + ns_len, + page_size); + *page_num += CurtPktPageNum; + index += (CurtPktPageNum * page_size); + RSVD_PAGE_CFG("WOW-NbrAdv", CurtPktPageNum, *page_num, 0); + + rsvd_page_loc->LocNDPInfo = *page_num; + RTW_INFO("LocNDPInfo: %d\n", + rsvd_page_loc->LocNDPInfo); + + rtw_hal_construct_ndp_info(adapter, + &pframe[index - tx_desc], + &ns_len); + CurtPktPageNum = + (u8)PageNum(tx_desc + ns_len, page_size); + *page_num += CurtPktPageNum; + index += (CurtPktPageNum * page_size); + RSVD_PAGE_CFG("WOW-NDPInfo", CurtPktPageNum, *page_num, 0); + + } +#endif /*CONFIG_IPV6*/ + /* 3 Remote Control Info. * 1 page */ + rsvd_page_loc->LocRemoteCtrlInfo = *page_num; + RTW_INFO("LocRemoteCtrlInfo: %d\n", rsvd_page_loc->LocRemoteCtrlInfo); + rtw_hal_construct_remote_control_info(adapter, + &pframe[index - tx_desc], + &rc_len); + CurtPktPageNum = (u8)PageNum(rc_len, page_size); + *page_num += CurtPktPageNum; + *total_pkt_len = index + rc_len; + RSVD_PAGE_CFG("WOW-RCI", CurtPktPageNum, *page_num, *total_pkt_len); +#ifdef CONFIG_GTK_OL + index += (CurtPktPageNum * page_size); + + /* if the ap staion info. exists, get the kek, kck from staion info. */ + psta = rtw_get_stainfo(pstapriv, get_bssid(pmlmepriv)); + if (psta == NULL) { + _rtw_memset(kek, 0, RTW_KEK_LEN); + _rtw_memset(kck, 0, RTW_KCK_LEN); + RTW_INFO("%s, KEK, KCK download rsvd page all zero\n", + __func__); + } else { + _rtw_memcpy(kek, psta->kek, RTW_KEK_LEN); + _rtw_memcpy(kck, psta->kck, RTW_KCK_LEN); + } + + /* 3 KEK, KCK */ + rsvd_page_loc->LocGTKInfo = *page_num; + RTW_INFO("LocGTKInfo: %d\n", rsvd_page_loc->LocGTKInfo); + + if (IS_HARDWARE_TYPE_8188E(adapter) || IS_HARDWARE_TYPE_8812(adapter)) { + struct security_priv *psecpriv = NULL; + + psecpriv = &adapter->securitypriv; + _rtw_memcpy(pframe + index - tx_desc, + &psecpriv->dot11PrivacyAlgrthm, 1); + _rtw_memcpy(pframe + index - tx_desc + 1, + &psecpriv->dot118021XGrpPrivacy, 1); + _rtw_memcpy(pframe + index - tx_desc + 2, + kck, RTW_KCK_LEN); + _rtw_memcpy(pframe + index - tx_desc + 2 + RTW_KCK_LEN, + kek, RTW_KEK_LEN); + CurtPktPageNum = (u8)PageNum(tx_desc + 2 + RTW_KCK_LEN + RTW_KEK_LEN, page_size); + } else { + + _rtw_memcpy(pframe + index - tx_desc, kck, RTW_KCK_LEN); + _rtw_memcpy(pframe + index - tx_desc + RTW_KCK_LEN, + kek, RTW_KEK_LEN); + GTKLength = tx_desc + RTW_KCK_LEN + RTW_KEK_LEN; + + if (psta != NULL && + psecuritypriv->dot118021XGrpPrivacy == _TKIP_) { + _rtw_memcpy(pframe + index - tx_desc + 56, + &psta->dot11tkiptxmickey, RTW_TKIP_MIC_LEN); + GTKLength += RTW_TKIP_MIC_LEN; + } + CurtPktPageNum = (u8)PageNum(GTKLength, page_size); + } +#if 0 + { + int i; + printk("\ntoFW KCK: "); + for (i = 0; i < 16; i++) + printk(" %02x ", kck[i]); + printk("\ntoFW KEK: "); + for (i = 0; i < 16; i++) + printk(" %02x ", kek[i]); + printk("\n"); + } + + RTW_INFO("%s(): HW_VAR_SET_TX_CMD: KEK KCK %p %d\n", + __FUNCTION__, &pframe[index - tx_desc], + (tx_desc + RTW_KCK_LEN + RTW_KEK_LEN)); +#endif + + *page_num += CurtPktPageNum; + + index += (CurtPktPageNum * page_size); + RSVD_PAGE_CFG("WOW-GTKInfo", CurtPktPageNum, *page_num, 0); + + /* 3 GTK Response */ + rsvd_page_loc->LocGTKRsp = *page_num; + RTW_INFO("LocGTKRsp: %d\n", rsvd_page_loc->LocGTKRsp); + rtw_hal_construct_GTKRsp(adapter, &pframe[index], >KLength); + + rtw_hal_fill_fake_txdesc(adapter, &pframe[index - tx_desc], + GTKLength, _FALSE, _FALSE, _TRUE); +#if 0 + { + int gj; + printk("123GTK pkt=>\n"); + for (gj = 0; gj < GTKLength + tx_desc; gj++) { + printk(" %02x ", pframe[index - tx_desc + gj]); + if ((gj + 1) % 16 == 0) + printk("\n"); + } + printk(" <=end\n"); + } + + RTW_INFO("%s(): HW_VAR_SET_TX_CMD: GTK RSP %p %d\n", + __FUNCTION__, &pframe[index - tx_desc], + (tx_desc + GTKLength)); +#endif + + CurtPktPageNum = (u8)PageNum(tx_desc + GTKLength, page_size); + + *page_num += CurtPktPageNum; + + index += (CurtPktPageNum * page_size); + RSVD_PAGE_CFG("WOW-GTKRsp", CurtPktPageNum, *page_num, 0); + + /* below page is empty for GTK extension memory */ + /* 3(11) GTK EXT MEM */ + rsvd_page_loc->LocGTKEXTMEM = *page_num; + RTW_INFO("LocGTKEXTMEM: %d\n", rsvd_page_loc->LocGTKEXTMEM); + CurtPktPageNum = 2; + + if (page_size >= 256) + CurtPktPageNum = 1; + + *page_num += CurtPktPageNum; + /* extension memory for FW */ + *total_pkt_len = index + (page_size * CurtPktPageNum); + RSVD_PAGE_CFG("WOW-GTKEXTMEM", CurtPktPageNum, *page_num, *total_pkt_len); +#endif /* CONFIG_GTK_OL */ + + index += (CurtPktPageNum * page_size); + +#ifdef CONFIG_WAR_OFFLOAD + if(_TRUE == pwrctl->wowlan_war_offload_mode) { + u8 zero_ary[16] = {0x00}; + u8 war_tmp_cnt = 0; + + /* Reserve 2 page for Ip parameters */ + /* First page + | Byte 15 -----------Byte 0 | + | IP-4 | IP-3 | IP-2 | IP-1 | + | location of each feature | mac addr | + | NetBIOS name | + | location of each feature | + Second page + | IPv6 - 1 | + | IPv6 - 2 | + | IPv6 - 3 | + | IPv6 - 4 | + | IPv6 - 5 | + | IPv6 - 6 | + | IPv6 - 7 | + | IPv6 - 8 | + */ + + /* location of each feature : Byte 22 ~ Byte 31 + * Byte22 : location of SNMP RX + * Byte23 : location of SNMP V4 + * Byte24 : location of SNMP V6 + * Byte25 : location of MDNS Param + * Byte26 : location of MDNS V4 + * Byte27 : location of MDNS V6 + * Byte28 : location of SSDP pattern + * Byte29 : location of WSD pattern + * Byte30 : location of SLP pattern + * Byte31 : location of LLMNR + */ + + /* ipv4 : 4 */ + if (0 == pwrctl->wowlan_war_offload_ipv4.ip_addr[0]) + _rtw_memcpy(&pwrctl->wowlan_war_offload_ipv4.ip_addr[0], pmlmeinfo->ip_addr, 4); + for(war_tmp_cnt=0; war_tmp_cnt<4 ;war_tmp_cnt++) + _rtw_memcpy(pframe + index - tx_desc + (war_tmp_cnt*4), &pwrctl->wowlan_war_offload_ipv4.ip_addr[war_tmp_cnt], 4); + + if (is_zero_mac_addr(pwrctl->wowlan_war_offload_mac)) { + _rtw_memcpy(pwrctl->wowlan_war_offload_mac, adapter_mac_addr(adapter), 6); + } + _rtw_memcpy(pframe + index + 16 - tx_desc, pwrctl->wowlan_war_offload_mac, 6); + + + /* ipv6 : 8 */ + if (_TRUE == _rtw_memcmp(pwrctl->wowlan_war_offload_ipv6.ipv6_addr[0], zero_ary, RTW_IPv6_ADDR_LEN)) + _rtw_memcpy(pwrctl->wowlan_war_offload_ipv6.ipv6_addr[0], pmlmeinfo->ip6_addr, RTW_IPv6_ADDR_LEN); + + for(war_tmp_cnt=0; war_tmp_cnt<8 ;war_tmp_cnt++) + _rtw_memcpy(pframe + index + page_size - tx_desc + (war_tmp_cnt*16), pwrctl->wowlan_war_offload_ipv6.ipv6_addr[war_tmp_cnt], 16); + + rsvd_page_loc->LocIpParm = *page_num; + + tmp_idx = index; + CurtPktPageNum = 2; + *page_num += CurtPktPageNum; + *total_pkt_len = index + (page_size * CurtPktPageNum); + index += (CurtPktPageNum * page_size); + + +#if defined(CONFIG_OFFLOAD_MDNS_V4) || defined(CONFIG_OFFLOAD_MDNS_V6) + if ( (WAR_MDNS_V4_RSP_EN & pwrctl->wowlan_war_offload_ctrl) || + (WAR_MDNS_V6_RSP_EN & pwrctl->wowlan_war_offload_ctrl) || + (WAR_MDNS_V4_WAKEUP_EN & pwrctl->wowlan_war_offload_ctrl) || + (WAR_MDNS_V6_WAKEUP_EN & pwrctl->wowlan_war_offload_ctrl)) { + + struct war_mdns_service_info *psinfo = pwrctl->wowlan_war_offload_mdns_service; + u8 txt_in_ptr[31]={ 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x13, 0x09, 0x74, 0x78, 0x74, 0x76, 0x65, 0x72, 0x73, + 0x3d, 0x31, 0x08, 0x71, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x3d, 0x31}; + u16 mdns_offset = index - tx_desc; + u8 i = 0; + + rsvd_page_loc->LocMdnsPara = *page_num; + RTW_INFO("LocMdnsPara : %d\n", rsvd_page_loc->LocMdnsPara); + + /* 1. service info */ + pframe[mdns_offset] = 0x01; // TLV(T) + mdns_offset += 1; + _rtw_memcpy(pframe + mdns_offset, &pwrctl->wowlan_war_offload_mdns_service_info_num, 1); + mdns_offset += 1; + + for(i=0; iwowlan_war_offload_mdns_service_info_num ;i++) + { + u16 srv_rsp_len = 0; + + // 1.1 : construct service name string + // : length of total service name string (service+transport+domain) + pframe[mdns_offset] = psinfo[i].service_len + psinfo[i].transport_len + psinfo[i].domain_len + 4; + mdns_offset += 1; + + // : service name + pframe[mdns_offset] = psinfo[i].service_len; + mdns_offset += 1; + _rtw_memcpy(pframe + mdns_offset, &psinfo[i].service, psinfo[i].service_len); + mdns_offset += psinfo[i].service_len; + + // : transport name + pframe[mdns_offset] = psinfo[i].transport_len; + mdns_offset += 1; + _rtw_memcpy(pframe + mdns_offset, &psinfo[i].transport, psinfo[i].transport_len); + mdns_offset += psinfo[i].transport_len; + + // : domain name + pframe[mdns_offset] = psinfo[i].domain_len; + mdns_offset += 1; + _rtw_memcpy(pframe + mdns_offset, &psinfo[i].domain, psinfo[i].domain_len); + mdns_offset += psinfo[i].domain_len; + + // : delimiter + mdns_offset += 1; + + // 1.2 : construct type srv rsp + pframe[mdns_offset] = psinfo[i].target_len + 19; // length + pframe[mdns_offset + 2] = 0x21; // rsp type (srv) + pframe[mdns_offset + 4] = 0x01; // cache flush + class + _rtw_memcpy(pframe + mdns_offset + 5, &psinfo[i].ttl, 4); // ttl + pframe[mdns_offset + 5] = (u8) ( (psinfo[i].ttl & 0xff000000) >> 24); // ttl - byte0 + pframe[mdns_offset + 6] = (u8) ( (psinfo[i].ttl & 0x00ff0000) >> 16); // ttl - byte1 + pframe[mdns_offset + 7] = (u8) ( (psinfo[i].ttl & 0x0000ff00) >> 8 ); // ttl - byte2 + pframe[mdns_offset + 8] = (u8) (psinfo[i].ttl & 0x000000ff); // ttl - byte3 + pframe[mdns_offset + 10] = psinfo[i].target_len + 9; // data length + _rtw_memcpy(pframe + mdns_offset + 15, &psinfo[i].port, 2); // port + _rtw_memcpy(pframe + mdns_offset + 17, &psinfo[i].target_len, 1); // target len + _rtw_memcpy(pframe + mdns_offset + 18, &psinfo[i].target, psinfo[i].target_len); // target + pframe[mdns_offset + 18 + psinfo[i].target_len] = 0xc0; // message compresion, offset will be filled by fw. + mdns_offset += (1 + psinfo[i].target_len + 19); + + // 1.3 : set the idx of txt rsp + pframe[mdns_offset] = psinfo[i].txt_rsp_idx; + mdns_offset += 1; + } + + /* 2. machine name */ + pframe[mdns_offset] = 0x02; // TLV(T) + mdns_offset += 1; + _rtw_memcpy(pframe + mdns_offset, &pwrctl->wowlan_war_offload_mdns_mnane_num, 1); // NUM + mdns_offset += 1; + + for(i=0; iwowlan_war_offload_mdns_mnane_num; i++) + { + pframe[mdns_offset] = pwrctl->wowlan_war_offload_mdns_mnane[i].name_len; + _rtw_memcpy(pframe + mdns_offset + 1, pwrctl->wowlan_war_offload_mdns_mnane[i].name, + pwrctl->wowlan_war_offload_mdns_mnane[i].name_len); // machine name + mdns_offset += (1+pwrctl->wowlan_war_offload_mdns_mnane[i].name_len); + } + + /* 3. A rsp */ + pframe[mdns_offset] = 0x03; // TLV(T) + pframe[mdns_offset + 1] = 14; // TLV(L) + pframe[mdns_offset + 3] = 0x01; // rsp type (a) + pframe[mdns_offset + 5] = 0x01; // cache flush + class + pframe[mdns_offset + 9] = 0xf0; // ttl (240 sec) + pframe[mdns_offset + 11] = 4; // length of ipv4 addr. + _rtw_memcpy(pframe + mdns_offset + 12, &pwrctl->wowlan_war_offload_ipv4.ip_addr[0], 4); + mdns_offset += (2 + 14); + + /* 4. AAAA rsp */ + pframe[mdns_offset] = 0x04; // TLV(T) + pframe[mdns_offset + 1] = 26; // TLV(L) + pframe[mdns_offset + 3] = 0x1c; // rsp type (aaaa) + pframe[mdns_offset + 5] = 0x01; // cache flush + class + pframe[mdns_offset + 9] = 0xf0; // ttl (240 sec) + pframe[mdns_offset + 11] = 16; // length of ipv6 addr. + _rtw_memcpy(pframe + mdns_offset + 12, &pwrctl->wowlan_war_offload_ipv6.ipv6_addr[0], 16); + mdns_offset += (2 + 26); + + /* 5. PTR rsp */ + pframe[mdns_offset] = 0x05; // TLV(T) + pframe[mdns_offset + 1] = 13 + pwrctl->wowlan_war_offload_mdns_domain_name_len; // TLV(L) + pframe[mdns_offset + 3] = 0x0c; // rsp type (aaaa) + pframe[mdns_offset + 5] = 0x01; // cache flush + class + pframe[mdns_offset + 8] = 0x1c; // ttl + pframe[mdns_offset + 9] = 0x20; // ttl (7200 sec) + pframe[mdns_offset + 11] = 3 + pwrctl->wowlan_war_offload_mdns_domain_name_len; // data length + pframe[mdns_offset + 12] = pwrctl->wowlan_war_offload_mdns_domain_name_len; // domain name length + _rtw_memcpy(pframe + mdns_offset + 13, &pwrctl->wowlan_war_offload_mdns_domain_name, + pwrctl->wowlan_war_offload_mdns_domain_name_len); + pframe[mdns_offset + 13 + pwrctl->wowlan_war_offload_mdns_domain_name_len] = 0xc0; // message compression + mdns_offset += (2 + 13 + pwrctl->wowlan_war_offload_mdns_domain_name_len); + + /* 6. TXT in PTR rsp */ + pframe[mdns_offset] = 0x06; // TLV(T) + pframe[mdns_offset + 1] = 31; // TLV(L) + _rtw_memcpy(pframe + mdns_offset + 2, &txt_in_ptr, 31); + mdns_offset += (2 + 31); + + /* 7. TXT rsp */ + pframe[mdns_offset] = 0x07; // TLV(T) + mdns_offset += 1; + _rtw_memcpy(pframe + mdns_offset, &pwrctl->wowlan_war_offload_mdns_txt_rsp_num, 1); // NUM + mdns_offset += 1; + + for(i=0; iwowlan_war_offload_mdns_txt_rsp_num; i++) + { + u16 txt_rsp_len = pwrctl->wowlan_war_offload_mdns_txt_rsp[i].txt_len; + + if(pwrctl->wowlan_war_offload_mdns_txt_rsp[i].txt_len==0) + { + _rtw_memcpy(pframe + mdns_offset, &txt_rsp_len, 2); + mdns_offset += ( 2 + txt_rsp_len ); + continue; + } + + txt_rsp_len += 10; + _rtw_memcpy(pframe + mdns_offset, &txt_rsp_len, 2); + pframe[mdns_offset + 3] = 0x10; // rsp type (txt) + pframe[mdns_offset + 5] = 0x01; // cache flush + class + pframe[mdns_offset + 8] = 0x1c; // ttl + pframe[mdns_offset + 9] = 0x20; // ttl (7200 sec) + pframe[mdns_offset + 10] = (u8) ((pwrctl->wowlan_war_offload_mdns_txt_rsp[i].txt_len & 0xff00) >> 8); + pframe[mdns_offset + 11] = (u8) (pwrctl->wowlan_war_offload_mdns_txt_rsp[i].txt_len & 0x00ff); + _rtw_memcpy(pframe + mdns_offset + 12, &pwrctl->wowlan_war_offload_mdns_txt_rsp[i].txt, + pwrctl->wowlan_war_offload_mdns_txt_rsp[i].txt_len); + mdns_offset += ( 2 + txt_rsp_len ); + } + + CurtPktPageNum = (u8)PageNum(mdns_offset - index, page_size)+1; + *page_num += CurtPktPageNum; + *total_pkt_len = index + (page_size * CurtPktPageNum); + index += (CurtPktPageNum * page_size); + } +#endif /* defined(CONFIG_OFFLOAD_MDNS_V4) || defined(CONFIG_OFFLOAD_MDNS_V6) */ + +#ifdef CONFIG_OFFLOAD_MDNS_V4 + if (WAR_MDNS_V4_RSP_EN & pwrctl->wowlan_war_offload_ctrl) { + rsvd_page_loc->LocMdnsv4 = *page_num; + RTW_INFO("LocMdnsv4: %d\n", rsvd_page_loc->LocMdnsv4); + + rtw_hal_construct_mdns_rsp_v4(adapter, &pframe[index], &buf_len, pmlmeinfo->ip_addr); + rtw_hal_fill_fake_txdesc(adapter, &pframe[index - tx_desc], buf_len, _FALSE, _FALSE, _TRUE); + CurtPktPageNum = 16; + *page_num += CurtPktPageNum; + index += (CurtPktPageNum * page_size); + } +#endif /* CONFIG_OFFLOAD_MDNS_V4 */ + +#ifdef CONFIG_OFFLOAD_MDNS_V6 + if (WAR_MDNS_V6_RSP_EN & pwrctl->wowlan_war_offload_ctrl) { + rsvd_page_loc->LocMdnsv6 = *page_num; + RTW_INFO("LocMdnsv6: %d\n", rsvd_page_loc->LocMdnsv6); + + rtw_hal_construct_mdns_rsp_v6(adapter, &pframe[index], &buf_len, pmlmeinfo->ip_addr); + rtw_hal_fill_fake_txdesc(adapter, &pframe[index - tx_desc], buf_len, _FALSE, _FALSE, _TRUE); + CurtPktPageNum = 16; + *page_num += CurtPktPageNum; + index += (CurtPktPageNum * page_size); + } +#endif /* CONFIG_OFFLOAD_MDNS_V6 */ + +#if defined(CONFIG_OFFLOAD_MDNS_V4) || defined(CONFIG_OFFLOAD_MDNS_V6) + *(pframe+tmp_idx+25-tx_desc) = rsvd_page_loc->LocMdnsPara; + *(pframe+tmp_idx+26-tx_desc) = rsvd_page_loc->LocMdnsv4; + *(pframe+tmp_idx+27-tx_desc) = rsvd_page_loc->LocMdnsv6; +#endif /* defined(CONFIG_OFFLOAD_MDNS_V4) || defined(CONFIG_OFFLOAD_MDNS_V6) */ + + } + //rtw_dump_rsvd_page(RTW_DBGDUMP, adapter, rsvd_page_loc->LocIpParm, 46); +#endif /* CONFIG_WAR_OFFLOAD */ + +#if defined(CONFIG_WOW_PATTERN_IN_TXFIFO) + /* pattern_rsvd_page_loc will be used by rtw_read_from_frame_mask() */ + pwrctl->pattern_rsvd_page_loc = *page_num; + RTW_INFO("LocPatternInfo: %d\n", pwrctl->pattern_rsvd_page_loc); + rtw_hal_construct_pattern_info(adapter, + &pframe[index - tx_desc], + &PatternLen); + + /* Set cam_start_offset to REG_TXBUF_WKCAM_OFFSET + * Cam address(TxBufer pointer) access 8 bytes at a time + */ + + // Get rsvd page start page number + pattern located page + cam_start_offset = rtw_read8(adapter, REG_BCNQ_BDNY) + *page_num; + cam_start_offset *= page_size; + cam_start_offset /= 8; + + reg_cam_start_offset_val = rtw_read32(adapter, REG_TXBUF_WKCAM_OFFSET); + reg_cam_start_offset_val &= ~(WKCAM_OFFSET_BIT_MASK << WKCAM_OFFSET_BIT_MASK_OFFSET); + reg_cam_start_offset_val |= (cam_start_offset << WKCAM_OFFSET_BIT_MASK_OFFSET); + rtw_write32(adapter, REG_TXBUF_WKCAM_OFFSET, reg_cam_start_offset_val); + + /* Set pattern number to REG_WKFMCAM_NUM */ + rtw_write8(adapter, REG_WKFMCAM_NUM, PatternLen / WKFMCAM_SIZE); + + CurtPktPageNum = (u8)PageNum(PatternLen, page_size); + *page_num += CurtPktPageNum; + index += (CurtPktPageNum * page_size); + RSVD_PAGE_CFG("WOW-PatternInfo", CurtPktPageNum, *page_num, index); + +#endif /* CONFIG_WOW_PATTERN_IN_TXFIFO */ + + /*Reserve 1 page for AOAC report*/ + rsvd_page_loc->LocAOACReport = *page_num; + RTW_INFO("LocAOACReport: %d\n", rsvd_page_loc->LocAOACReport); + *page_num += 1; + *total_pkt_len = index + (page_size * 1); + RSVD_PAGE_CFG("WOW-AOAC", 1, *page_num, *total_pkt_len); + + + } else { +#ifdef CONFIG_PNO_SUPPORT + if (pwrctl->wowlan_in_resume == _FALSE && + pwrctl->pno_inited == _TRUE) { +#ifndef RTW_HALMAC + /* Broadcast Probe Request */ + rsvd_page_loc->LocProbePacket = *page_num; + + RTW_INFO("loc_probe_req: %d\n", + rsvd_page_loc->LocProbePacket); + + rtw_hal_construct_ProbeReq( + adapter, + &pframe[index], + &ProbeReqLength, + NULL); + + rtw_hal_fill_fake_txdesc(adapter, + &pframe[index - tx_desc], + ProbeReqLength, _FALSE, _FALSE, _FALSE); + + CurtPktPageNum = + (u8)PageNum(tx_desc + ProbeReqLength, page_size); + + *page_num += CurtPktPageNum; + + index += (CurtPktPageNum * page_size); + RSVD_PAGE_CFG("WOW-ProbeReq", CurtPktPageNum, *page_num, 0); + + /* Scan Info Page */ + rsvd_page_loc->LocScanInfo = *page_num; + RTW_INFO("LocScanInfo: %d\n", rsvd_page_loc->LocScanInfo); + rtw_hal_construct_scan_info(adapter, + &pframe[index - tx_desc], + &ScanInfoLength); + + CurtPktPageNum = (u8)PageNum(ScanInfoLength, page_size); + *page_num += CurtPktPageNum; + + index += (CurtPktPageNum * page_size); + RSVD_PAGE_CFG("WOW-ScanInfo", CurtPktPageNum, *page_num, *total_pkt_len); +#endif + /* Hidden SSID Probe Request */ + ssid_num = pwrctl->pnlo_info->hidden_ssid_num; + + for (pno_index = 0 ; pno_index < ssid_num ; pno_index++) { + pwrctl->pnlo_info->loc_probe_req[pno_index] = + *page_num; + + rtw_hal_construct_ProbeReq( + adapter, + &pframe[index], + &ProbeReqLength, + &pwrctl->pno_ssid_list->node[pno_index]); + + rtw_hal_fill_fake_txdesc(adapter, + &pframe[index - tx_desc], + ProbeReqLength, _FALSE, _FALSE, _FALSE); + + CurtPktPageNum = + (u8)PageNum(tx_desc + ProbeReqLength, page_size); + + *page_num += CurtPktPageNum; + + index += (CurtPktPageNum * page_size); + RSVD_PAGE_CFG("WOW-ProbeReq", CurtPktPageNum, *page_num, 0); + } + + /* PNO INFO Page */ + rsvd_page_loc->LocPNOInfo = *page_num; + RTW_INFO("LocPNOInfo: %d\n", rsvd_page_loc->LocPNOInfo); + rtw_hal_construct_PNO_info(adapter, + &pframe[index - tx_desc], + &PNOLength); + + CurtPktPageNum = (u8)PageNum(PNOLength, page_size); + *page_num += CurtPktPageNum; + *total_pkt_len = index + PNOLength; + index += (CurtPktPageNum * page_size); + RSVD_PAGE_CFG("WOW-PNOInfo", CurtPktPageNum, *page_num, 0); + } +#endif /* CONFIG_PNO_SUPPORT */ + } +} #endif /*CONFIG_WOWLAN*/ #ifdef CONFIG_P2P_WOWLAN @@ -10827,7 +11911,7 @@ static void rtw_lps_pg_set_rsvd_page(_adapter *adapter, u8 *frame, u16 *index rsvd_page_cache_free(cache); } -static u8 rtw_hal_set_lps_pg_info_cmd(_adapter *adapter) +u8 rtw_hal_set_lps_pg_info_cmd(_adapter *adapter) { struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(adapter); struct mlme_priv *pmlmepriv = &adapter->mlmepriv; @@ -10865,9 +11949,15 @@ static u8 rtw_hal_set_lps_pg_info_cmd(_adapter *adapter) SET_H2CCMD_LPSPG_LOC(lpspg_info, pwrpriv->lpspg_info.loc); #ifdef CONFIG_RTL8822C - SET_H2CCMD_LPSPG_DPK_INFO_LOC(lpspg_info, pwrpriv->lpspg_dpk_info.loc); - if (!GET_HAL_DATA(adapter)->RegIQKFWOffload) - SET_H2CCMD_LPSPG_IQK_INFO_LOC(lpspg_info, pwrpriv->lpspg_iqk_info.loc); + if (pwrpriv->bFwCurrentInPSMode == _FALSE) { + SET_H2CCMD_LPSPG_DPK_INFO_LOC(lpspg_info, pwrpriv->lpspg_dpk_info.loc); + if (!GET_HAL_DATA(adapter)->RegIQKFWOffload) + SET_H2CCMD_LPSPG_IQK_INFO_LOC(lpspg_info, pwrpriv->lpspg_iqk_info.loc); + } else { + SET_H2CCMD_LPSPG_DPK_INFO_LOC(lpspg_info, 0); + if (!GET_HAL_DATA(adapter)->RegIQKFWOffload) + SET_H2CCMD_LPSPG_IQK_INFO_LOC(lpspg_info, 0); + } #endif #if (DBG_LPSPG_INFO_DUMP >= 1) @@ -11166,7 +12256,7 @@ static void _rtw_hal_set_fw_rsvd_page(_adapter *adapter, bool finished, u8 *page BeaconLength = MAX_BEACON_LEN - TxDescLen; CurtPktPageNum = (u8)PageNum((TxDescLen + BeaconLength), PageSize); -#ifdef CONFIG_FW_HANDLE_TXBCN +#if defined(CONFIG_FW_HANDLE_TXBCN) || defined(CONFIG_PORT_BASED_TXBCN) CurtPktPageNum = CurtPktPageNum * CONFIG_LIMITED_AP_NUM; #endif TotalPageNum += CurtPktPageNum; @@ -11288,7 +12378,7 @@ static void _rtw_hal_set_fw_rsvd_page(_adapter *adapter, bool finished, u8 *page pwrctl->wowlan_in_resume == _TRUE) {/*Normal mode*/ ap_iface = adapter; - #ifdef CONFIG_CONCURRENT_MODE + #if defined (CONFIG_CONCURRENT_MODE) && defined(CONFIG_AP_MODE) if (!MLME_IS_AP(ap_iface) && DEV_AP_NUM(adapter_to_dvobj(ap_iface))) { /*DEV_AP_STARTING_NUM*/ ap_iface = _rtw_search_ap_iface(adapter); RTW_INFO("get ("ADPT_FMT") to create BTQoSNull\n", ADPT_ARG(ap_iface)); @@ -11357,11 +12447,13 @@ static void _rtw_hal_set_fw_rsvd_page(_adapter *adapter, bool finished, u8 *page #ifdef CONFIG_WOWLAN /*======== WOW * n page ======== */ if (pwrctl->wowlan_mode == _TRUE && - pwrctl->wowlan_in_resume == _FALSE && - check_fwstate(pmlmepriv, WIFI_ASOC_STATE)) {/*WOW mode*/ + pwrctl->wowlan_in_resume == _FALSE) { rtw_hal_set_wow_fw_rsvd_page(adapter, ReservedPagePacket, BufIndex, TxDescLen, PageSize, &TotalPageNum, &TotalPacketLen, &RsvdPageLoc); +#ifdef CONFIG_WAR_OFFLOAD + rtw_hal_set_war_offload_parm(adapter, &RsvdPageLoc); +#endif /* CONFIG_WAR_OFFLOAD */ } #endif /* CONFIG_WOWLAN */ @@ -11461,12 +12553,70 @@ error: void rtw_hal_set_fw_rsvd_page(struct _ADAPTER *adapter, bool finished) { +#ifdef CONFIG_AP_MODE if (finished) rtw_mi_tx_beacon_hdl(adapter); else +#endif _rtw_hal_set_fw_rsvd_page(adapter, finished, NULL); } +static u8 rtw_hal_set_fw_bcn_early_c2h_rpt_cmd(struct _ADAPTER *adapter, u8 enable) +{ + u8 u1H2CSetPwrMode[H2C_PWRMODE_LEN] = {0}; + u8 ret = _FAIL; + +#ifdef CONFIG_TDLS +#ifdef CONFIG_TDLS_CH_SW + if (ATOMIC_READ(&adapter->tdlsinfo.chsw_info.chsw_on) == _TRUE) + { + SET_H2CCMD_PWRMODE_PARM_RLBM(u1H2CSetPwrMode, 1); + SET_H2CCMD_PWRMODE_PARM_SMART_PS(u1H2CSetPwrMode, 0); + } +#endif +#endif + + SET_H2CCMD_PWRMODE_PARM_MODE(u1H2CSetPwrMode, 0); + SET_H2CCMD_PWRMODE_PARM_PWR_STATE(u1H2CSetPwrMode, 0x0C); + SET_H2CCMD_PWRMODE_PARM_BCN_EARLY_C2H_RPT(u1H2CSetPwrMode, enable); + + ret = rtw_hal_fill_h2c_cmd(adapter, + H2C_SET_PWR_MODE, + H2C_PWRMODE_LEN, + u1H2CSetPwrMode); + + RTW_PRINT("-%s()-\n", __func__); + + return ret; +} + +#ifdef CONFIG_FW_MULTI_PORT_SUPPORT +u8 rtw_hal_set_ap_bcn_imr_cmd(struct _ADAPTER *adapter, u8 enable) +{ + u8 ap_port_id; + u8 ret = _FAIL; + + if (!MLME_IS_AP(adapter)) + goto exit; + + ap_port_id = get_hw_port(adapter); + if (ap_port_id != HW_PORT0) { + RTW_WARN("AP mode should use port0\n"); + goto exit; + } + + ret = rtw_hal_fill_h2c_cmd(adapter, + H2C_SET_AP_BCN_IMR, + H2C_AP_BCN_MIR_LEN, + &enable); + + RTW_INFO(FUNC_ADPT_FMT" : AP mode %s beacon early IMR\n", + FUNC_ADPT_ARG(adapter), enable ? "enable" : "disable"); +exit: + return ret; +} +#endif + /** * rtw_hal_get_rsvd_page_num() - Get needed reserved page number * @adapter: struct _ADAPTER* @@ -11660,10 +12810,12 @@ static void hw_var_set_mlme_sitesurvey(_adapter *adapter, u8 enable) } #endif + #ifdef CONFIG_AP_MODE if (rtw_mi_get_ap_num(adapter) || rtw_mi_get_mesh_num(adapter)) { ResumeTxBeacon(adapter); rtw_mi_tx_beacon_hdl(adapter); } + #endif } } @@ -11976,6 +13128,7 @@ void hw_var_set_correct_tsf(PADAPTER adapter, u8 mlme_state) } } break; +#ifdef CONFIG_AP_MODE case MLME_AP_STARTED : case MLME_MESH_STARTED : { @@ -12015,6 +13168,7 @@ void hw_var_set_correct_tsf(PADAPTER adapter, u8 mlme_state) } } break; +#endif /* CONFIG_AP_MODE */ default : RTW_ERR(FUNC_ADPT_FMT" unknow state(0x%02x)\n", FUNC_ADPT_ARG(adapter), mlme_state); break; @@ -12108,6 +13262,7 @@ static void hw_var_set_correct_tsf(_adapter *adapter, u8 mlme_state) if (iface == adapter) continue; + #ifdef CONFIG_AP_MODE if ((MLME_IS_AP(iface) || MLME_IS_MESH(iface)) && check_fwstate(&iface->mlmepriv, WIFI_ASOC_STATE) == _TRUE ) { @@ -12117,7 +13272,14 @@ static void hw_var_set_correct_tsf(_adapter *adapter, u8 mlme_state) RTW_INFO("%s-[ERROR] "ADPT_FMT" Reset port%d TSF fail\n" , __func__, ADPT_ARG(iface), iface->hw_port); #endif /* CONFIG_TSF_RESET_OFFLOAD*/ + #ifdef CONFIG_TSF_SYNC + if(iface->hw_port == HW_PORT0) + rtw_write8(iface, REG_DUAL_TSF_RST, rtw_read8(iface, REG_DUAL_TSF_RST) | BIT(2)); + else if(iface->hw_port == HW_PORT1) + rtw_write8(iface, REG_DUAL_TSF_RST, rtw_read8(iface, REG_DUAL_TSF_RST) | BIT(3)); + #endif } + #endif /* CONFIG_AP_MODE */ } } #endif /* CONFIG_CONCURRENT_MODE */ @@ -12315,8 +13477,8 @@ void rtw_lps_state_chk(_adapter *adapter, u8 ps_mode) return; } #endif /* CONFIG_LPS_ACK */ + } } -} void rtw_var_set_basic_rate(PADAPTER padapter, u8 *val) { @@ -12372,10 +13534,10 @@ void rtw_var_set_basic_rate(PADAPTER padapter, u8 *val) { RTW_INFO("HW_VAR_BASIC_RATE: %#x->%#x->%#x\n", input_b, masked, ioted); /* Set RRSR rate table. */ - temp_RRSR = rtw_read32(padapter, REG_RRSR); - temp_RRSR &=0xFFFF0000; - temp_RRSR |=BrateCfg; - rtw_phydm_set_rrsr(padapter, temp_RRSR, TRUE); + temp_RRSR = rtw_read32(padapter, REG_RRSR); + temp_RRSR &=0xFFFF0000; + temp_RRSR |=BrateCfg; + rtw_phydm_set_rrsr(padapter, temp_RRSR, TRUE); rtw_write8(padapter, REG_RRSR + 2, rtw_read8(padapter, REG_RRSR + 2) & 0xf0); @@ -12692,6 +13854,9 @@ u8 SetHwReg(_adapter *adapter, u8 variable, u8 *val) rtw_read8(adapter, REG_CR + 1) & ~BIT(0)); break; #endif + case HW_VAR_BCN_EARLY_C2H_RPT: + rtw_hal_set_fw_bcn_early_c2h_rpt_cmd(adapter, *(u8 *)val); + break; default: if (0) RTW_PRINT(FUNC_ADPT_FMT" variable(%d) not defined!\n", @@ -13229,7 +14394,8 @@ void rtw_hal_check_rxfifo_full(_adapter *adapter) IS_8192E(pHalData->version_id) || IS_8703B_SERIES(pHalData->version_id) || IS_8723D_SERIES(pHalData->version_id) || - IS_8192F_SERIES(pHalData->version_id)) { + IS_8192F_SERIES(pHalData->version_id) || + IS_8822C_SERIES(pHalData->version_id)) { rtw_write8(adapter, REG_RXERR_RPT + 3, rtw_read8(adapter, REG_RXERR_RPT + 3) | 0xa0); save_cnt = _TRUE; } else { @@ -13635,6 +14801,15 @@ int hal_efuse_macaddr_offset(_adapter *adapter) addr_offset = EEPROM_MAC_ADDR_8814BE; break; #endif /* CONFIG_RTL8814B */ + +#ifdef CONFIG_RTL8723F + case RTL8723F: + if (interface_type == RTW_USB) + addr_offset = EEPROM_MAC_ADDR_8723FU; + else if (interface_type == RTW_SDIO) + addr_offset = EEPROM_MAC_ADDR_8723FS; + break; +#endif /* CONFIG_RTL8723F */ } if (addr_offset == -1) { @@ -13675,8 +14850,14 @@ void rtw_dump_cur_efuse(PADAPTER padapter) #ifdef CONFIG_RTW_DEBUG if (hal_data->efuse_file_status == EFUSE_FILE_LOADED) RTW_MAP_DUMP_SEL(RTW_DBGDUMP, "EFUSE FILE", hal_data->efuse_eeprom_data, mapsize); - else - RTW_MAP_DUMP_SEL(RTW_DBGDUMP, "HW EFUSE", hal_data->efuse_eeprom_data, mapsize); + else { +#ifdef CONFIG_MP_INCLUDED + if (rtw_mp_mode_check(padapter) && GET_EFUSE_UPDATE_ON(padapter)) + RTW_MAP_DUMP_SEL(RTW_DBGDUMP, "FAKE EFUSE", hal_data->efuse_eeprom_data, mapsize); + else +#endif + RTW_MAP_DUMP_SEL(RTW_DBGDUMP, "HW EFUSE", hal_data->efuse_eeprom_data, mapsize); + } #endif } @@ -13687,6 +14868,9 @@ u32 Hal_readPGDataFromConfigFile(PADAPTER padapter) HAL_DATA_TYPE *hal_data = GET_HAL_DATA(padapter); u32 ret = _FALSE; u32 maplen = 0; +#ifdef CONFIG_MP_INCLUDED + struct mp_priv *pmp_priv = &padapter->mppriv; +#endif EFUSE_GetEfuseDefinition(padapter, EFUSE_WIFI, TYPE_EFUSE_MAP_LEN , (void *)&maplen, _FALSE); @@ -13694,8 +14878,16 @@ u32 Hal_readPGDataFromConfigFile(PADAPTER padapter) RTW_ERR("eFuse length error :%d\n", maplen); return _FALSE; } - - ret = rtw_read_efuse_from_file(EFUSE_MAP_PATH, hal_data->efuse_eeprom_data, maplen); +#ifdef CONFIG_MP_INCLUDED + if (pmp_priv->efuse_update_file == _TRUE && (rtw_mp_mode_check(padapter))) { + RTW_INFO("%s, eFuse read from file :%s\n", __func__, pmp_priv->efuse_file_path); + ret = rtw_read_efuse_from_file(pmp_priv->efuse_file_path, hal_data->efuse_eeprom_data, maplen); + pmp_priv->efuse_update_file = _FALSE; + } else +#endif + { + ret = rtw_read_efuse_from_file(EFUSE_MAP_PATH, hal_data->efuse_eeprom_data, maplen); + } hal_data->efuse_file_status = ((ret == _FAIL) ? EFUSE_FILE_FAILED : EFUSE_FILE_LOADED); @@ -14018,7 +15210,8 @@ void dm_DynamicUsbTxAgg(_adapter *padapter, u8 from_timer) #ifdef RTW_HALMAC if (IS_HARDWARE_TYPE_8822BU(padapter) || IS_HARDWARE_TYPE_8821CU(padapter) - || IS_HARDWARE_TYPE_8822CU(padapter) || IS_HARDWARE_TYPE_8814BU(padapter)) + || IS_HARDWARE_TYPE_8822CU(padapter) || IS_HARDWARE_TYPE_8814BU(padapter) + || IS_HARDWARE_TYPE_8723FU(padapter)) rtw_hal_set_hwreg(padapter, HW_VAR_RXDMA_AGG_PG_TH, NULL); #else /* !RTW_HALMAC */ if (IS_HARDWARE_TYPE_8821U(padapter)) { /* || IS_HARDWARE_TYPE_8192EU(padapter)) */ @@ -14065,6 +15258,7 @@ void dm_DynamicUsbTxAgg(_adapter *padapter, u8 from_timer) /* bus-agg check for SoftAP mode */ inline u8 rtw_hal_busagg_qsel_check(_adapter *padapter, u8 pre_qsel, u8 next_qsel) { +#ifdef CONFIG_AP_MODE struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); u8 chk_rst = _SUCCESS; @@ -14081,8 +15275,12 @@ inline u8 rtw_hal_busagg_qsel_check(_adapter *padapter, u8 pre_qsel, u8 next_qse chk_rst = _FAIL; } return chk_rst; +#else + return _SUCCESS; +#endif /* CONFIG_AP_MODE */ } +#ifdef CONFIG_WOWLAN /* * Description: * dump_TX_FIFO: This is only used to dump TX_FIFO for debug WoW mode offload @@ -14127,6 +15325,7 @@ void dump_TX_FIFO(_adapter *padapter, u8 page_num, u16 page_size) printk(" %08x %08x\n", rtw_read32(padapter, 0x144), rtw_read32(padapter, 0x148)); } } +#endif #ifdef CONFIG_GPIO_API u8 rtw_hal_get_gpio(_adapter *adapter, u8 gpio_num) @@ -14481,7 +15680,15 @@ void rtw_dump_phy_rx_counters(_adapter *padapter, struct dbg_rx_counter *rx_coun vht_err = phy_query_bb_reg(padapter, 0x2c0c, 0xffff0000); CCK_FA = phy_query_bb_reg(padapter, 0x1a5c, bMaskLWord); OFDM_FA = phy_query_bb_reg(padapter, 0x2d00, bMaskLWord) - phy_query_bb_reg(padapter, 0x2de0, bMaskLWord); - + } else if(IS_HARDWARE_TYPE_JAGUAR3_11N(padapter)){ + cckok = phy_query_bb_reg(padapter, 0x2aac, 0xffff); + ofdmok = phy_query_bb_reg(padapter, 0x2c14, 0xffff); + htok = phy_query_bb_reg(padapter, 0x2c10, 0xffff); + cckcrc = phy_query_bb_reg(padapter, 0x2aac, 0xffff0000); + ofdmcrc = phy_query_bb_reg(padapter, 0x2c14, 0xffff0000); + htcrc = phy_query_bb_reg(padapter, 0x2c10, 0xffff0000); + CCK_FA = phy_query_bb_reg(padapter, 0x2aa8, 0xffff0000) + phy_query_bb_reg(padapter, 0x2aa8, 0x0000ffff); + OFDM_FA = phy_query_bb_reg(padapter, 0x2d00, bMaskLWord) - phy_query_bb_reg(padapter, 0x2de0, bMaskLWord); } else { cckok = phy_query_bb_reg(padapter, 0xF88, bMaskDWord); ofdmok = phy_query_bb_reg(padapter, 0xF94, bMaskLWord); @@ -14491,9 +15698,9 @@ void rtw_dump_phy_rx_counters(_adapter *padapter, struct dbg_rx_counter *rx_coun ofdmcrc = phy_query_bb_reg(padapter, 0xF94, bMaskHWord); htcrc = phy_query_bb_reg(padapter, 0xF90, bMaskHWord); vht_err = 0; - OFDM_FA = phy_query_bb_reg(padapter, 0xCF0, bMaskLWord) + phy_query_bb_reg(padapter, 0xCF2, bMaskLWord) + - phy_query_bb_reg(padapter, 0xDA2, bMaskLWord) + phy_query_bb_reg(padapter, 0xDA4, bMaskLWord) + - phy_query_bb_reg(padapter, 0xDA6, bMaskLWord) + phy_query_bb_reg(padapter, 0xDA8, bMaskLWord); + OFDM_FA = phy_query_bb_reg(padapter, 0xCF0, bMaskLWord) + phy_query_bb_reg(padapter, 0xCF0, bMaskHWord) + + phy_query_bb_reg(padapter, 0xDA0, bMaskHWord) + phy_query_bb_reg(padapter, 0xDA4, bMaskLWord) + + phy_query_bb_reg(padapter, 0xDA4, bMaskHWord) + phy_query_bb_reg(padapter, 0xDA8, bMaskLWord); CCK_FA = (rtw_read8(padapter, 0xA5B) << 8) | (rtw_read8(padapter, 0xA5C)); } @@ -14510,7 +15717,7 @@ void rtw_reset_phy_trx_ok_counters(_adapter *padapter) if (IS_HARDWARE_TYPE_JAGUAR(padapter) || IS_HARDWARE_TYPE_JAGUAR2(padapter)) { phy_set_bb_reg(padapter, 0xB58, BIT0, 0x1); phy_set_bb_reg(padapter, 0xB58, BIT0, 0x0); - } else if(IS_HARDWARE_TYPE_JAGUAR3(padapter)) { + } else if(IS_HARDWARE_TYPE_JAGUAR3(padapter) || IS_HARDWARE_TYPE_JAGUAR3_11N(padapter)) { phy_set_bb_reg(padapter, 0x1EB4, BIT25, 0x1); phy_set_bb_reg(padapter, 0x1EB4, BIT25, 0x0); } else { @@ -14532,6 +15739,12 @@ void rtw_reset_phy_rx_counters(_adapter *padapter) phy_set_bb_reg(padapter, 0x1a2c, BIT(13) | BIT(12), 2); rtw_reset_phy_trx_ok_counters(padapter); + } else if (IS_HARDWARE_TYPE_JAGUAR3_11N(padapter)) { + /* reset CCK FA and CCK CCA counter */ + phy_set_bb_reg(padapter, 0x2a44, BIT21, 0); + phy_set_bb_reg(padapter, 0x2a44, BIT21, 1); + rtw_reset_phy_trx_ok_counters(padapter); + } else if (IS_HARDWARE_TYPE_JAGUAR(padapter) || IS_HARDWARE_TYPE_JAGUAR2(padapter)) { rtw_reset_phy_trx_ok_counters(padapter); @@ -14834,6 +16047,11 @@ int hal_spec_init(_adapter *adapter) case RTL8814B: rtl8814b_init_hal_spec(adapter); break; +#endif +#ifdef CONFIG_RTL8723F + case RTL8723F: + rtl8723f_init_hal_spec(adapter); + break; #endif default: RTW_ERR("%s: unknown chip_type:%u\n" @@ -14880,6 +16098,7 @@ void dump_hal_spec(void *sel, _adapter *adapter) int i; RTW_PRINT_SEL(sel, "macid_num:%u\n", hal_spec->macid_num); + RTW_PRINT_SEL(sel, "macid_cap:%u\n", hal_spec->macid_cap); RTW_PRINT_SEL(sel, "sec_cap:0x%02x\n", hal_spec->sec_cap); RTW_PRINT_SEL(sel, "sec_cam_ent_num:%u\n", hal_spec->sec_cam_ent_num); @@ -15026,25 +16245,41 @@ u8 hal_largest_bw(_adapter *adapter, u8 in_bw) #ifndef CONFIG_HAS_TX_BEACON_PAUSE void ResumeTxBeacon(_adapter *padapter) { + RTW_DBG("ResumeTxBeacon\n"); + #ifdef CONFIG_STOP_RESUME_BCN_BY_TXPAUSE + rtw_write8(padapter, REG_TXPAUSE, + rtw_read8(padapter, REG_TXPAUSE) & (~BIT6)); + #else rtw_write8(padapter, REG_FWHW_TXQ_CTRL + 2, rtw_read8(padapter, REG_FWHW_TXQ_CTRL + 2) | BIT(6)); + #endif #ifdef RTW_HALMAC /* Add this for driver using HALMAC because driver doesn't have setup time init by self */ /* TBTT setup time */ rtw_write8(padapter, REG_TBTT_PROHIBIT, TBTT_PROHIBIT_SETUP_TIME); #endif - /* TBTT hold time: 0x540[19:8] */ - rtw_write8(padapter, REG_TBTT_PROHIBIT + 1, TBTT_PROHIBIT_HOLD_TIME & 0xFF); +#ifdef CONFIG_NARROWBAND_SUPPORTING + if (padapter->registrypriv.rtw_nb_config == RTW_NB_CONFIG_WIDTH_10) + rtw_write8(padapter, REG_TBTT_PROHIBIT + 1, 0xc8); + else +#endif + rtw_write8(padapter, REG_TBTT_PROHIBIT + 1, TBTT_PROHIBIT_HOLD_TIME & 0xFF); rtw_write8(padapter, REG_TBTT_PROHIBIT + 2, (rtw_read8(padapter, REG_TBTT_PROHIBIT + 2) & 0xF0) | (TBTT_PROHIBIT_HOLD_TIME >> 8)); } void StopTxBeacon(_adapter *padapter) { + RTW_DBG("StopTxBeacon\n"); + #ifdef CONFIG_STOP_RESUME_BCN_BY_TXPAUSE + rtw_write8(padapter, REG_TXPAUSE, + rtw_read8(padapter, REG_TXPAUSE) | BIT6); + #else rtw_write8(padapter, REG_FWHW_TXQ_CTRL + 2, rtw_read8(padapter, REG_FWHW_TXQ_CTRL + 2) & (~BIT6)); + #endif /* TBTT hold time: 0x540[19:8] */ rtw_write8(padapter, REG_TBTT_PROHIBIT + 1, TBTT_PROHIBIT_HOLD_TIME_STOP_BCN & 0xFF); @@ -15227,6 +16462,7 @@ void rtw_hal_antdiv_rssi_compared(_adapter *padapter, WLAN_BSSID_EX *dst, WLAN_B } #endif +#ifdef CONFIG_PROC_DEBUG #ifdef CONFIG_PHY_CAPABILITY_QUERY void rtw_dump_phy_cap_by_phydmapi(void *sel, _adapter *adapter) { @@ -15327,6 +16563,7 @@ void rtw_dump_phy_cap(void *sel, _adapter *adapter) rtw_dump_phy_cap_by_hal(sel, adapter); #endif } +#endif inline s16 translate_dbm_to_percentage(s16 signal) { @@ -15422,6 +16659,7 @@ void rtw_hal_switch_chnl_and_set_bw_offload(_adapter *adapter, u8 central_ch, u8 SET_H2CCMD_SINGLE_CH_SWITCH_V2_CENTRAL_CH_NUM(h2c, central_ch); SET_H2CCMD_SINGLE_CH_SWITCH_V2_PRIMARY_CH_IDX(h2c, pri_ch_idx); SET_H2CCMD_SINGLE_CH_SWITCH_V2_BW(h2c, bw); + SET_H2CCMD_SINGLE_CH_SWITCH_V2_IQK_UPDATE_EN(h2c, 1); rtw_sctx_init(chsw_sctx, 10); rtw_hal_fill_h2c_cmd(adapter, H2C_SINGLE_CHANNELSWITCH_V2, H2C_SINGLE_CHANNELSWITCH_V2_LEN, h2c); @@ -15429,17 +16667,33 @@ void rtw_hal_switch_chnl_and_set_bw_offload(_adapter *adapter, u8 central_ch, u8 } #endif /* RTW_CHANNEL_SWITCH_OFFLOAD */ -u8 phy_get_current_tx_num( - PADAPTER pAdapter, - u8 Rate -) +u8 phy_get_capable_tx_num(_adapter *adapter, enum MGN_RATE rate) { - HAL_DATA_TYPE *hal_data = GET_HAL_DATA(pAdapter); - u8 tx_num = 0; - PHAL_DATA_TYPE hal = GET_HAL_DATA(pAdapter); + HAL_DATA_TYPE *hal_data = GET_HAL_DATA(adapter); + u8 tx_num = 0; + + if (IS_1T_RATE(rate)) + tx_num = hal_data->txpath_cap_num_nss[0]; + else if (IS_2T_RATE(rate)) + tx_num = hal_data->txpath_cap_num_nss[1]; + else if (IS_3T_RATE(rate)) + tx_num = hal_data->txpath_cap_num_nss[2]; + else if (IS_4T_RATE(rate)) + tx_num = hal_data->txpath_cap_num_nss[3]; + else + rtw_warn_on(1); + + return tx_num == 0 ? RF_1TX : tx_num - 1; +} + +u8 phy_get_current_tx_num(_adapter *adapter, enum MGN_RATE rate) +{ + HAL_DATA_TYPE *hal_data = GET_HAL_DATA(adapter); + u8 tx_num = 0; + PHAL_DATA_TYPE hal = GET_HAL_DATA(adapter); ANTENNA_PATH anttx = hal->antenna_tx_path; - if (rtw_mp_mode_check(pAdapter)) { + if (rtw_mp_mode_check(adapter)) { switch (anttx) { case ANTENNA_A: case ANTENNA_B: @@ -15471,13 +16725,13 @@ u8 phy_get_current_tx_num( return tx_num; } else { - if (IS_1T_RATE(Rate)) + if (IS_1T_RATE(rate)) tx_num = hal_data->txpath_num_nss[0]; - else if (IS_2T_RATE(Rate)) + else if (IS_2T_RATE(rate)) tx_num = hal_data->txpath_num_nss[1]; - else if (IS_3T_RATE(Rate)) + else if (IS_3T_RATE(rate)) tx_num = hal_data->txpath_num_nss[2]; - else if (IS_4T_RATE(Rate)) + else if (IS_4T_RATE(rate)) tx_num = hal_data->txpath_num_nss[3]; else rtw_warn_on(1); @@ -15630,3 +16884,79 @@ void rtw_leave_protsel_macsleep(_adapter *padapter) rtw_leave_protsel(&padapter->dvobj->protsel_macsleep); } #endif + +void rtw_hal_bcn_early_rpt_c2h_handler(_adapter *padapter) +{ + if(0) + RTW_INFO("Recv Bcn Early report!!\n"); + +#ifdef CONFIG_AP_MODE + rtw_mi_update_csa(padapter); +#endif + +#ifdef CONFIG_TDLS +#ifdef CONFIG_TDLS_CH_SW + if (ATOMIC_READ(&padapter->tdlsinfo.chsw_info.chsw_on) == _TRUE) + rtw_tdls_ch_sw_back_to_base_chnl(padapter); +#endif +#endif +} + +#ifndef RTW_HALMAC +void rtw_hal_init_sifs_backup(_adapter *adapter) +{ + HAL_DATA_TYPE *hal_data = GET_HAL_DATA(adapter); + + hal_data->init_reg_0x428 = rtw_read16(adapter, 0x428); + hal_data->init_reg_0x514 = rtw_read32(adapter, 0x514); + hal_data->init_reg_0x63a = rtw_read16(adapter, 0x63a); + hal_data->init_reg_0x63c = rtw_read32(adapter, 0x63c); + +#ifndef RTW_SIFS_INIT_CHK +#define RTW_SIFS_INIT_CHK 1 +#endif + +#if RTW_SIFS_INIT_CHK +/* +the expected initial values: +0x428[15:0]=0x100A +0x514[31:0]=0x0E0A0E0A +0x63A[15:0]=0x100A +0x63C[31:0]=0x0E0E0A0A +*/ +#define INIT_REG_0x428 0x100A +#define INIT_REG_0x514 0x0E0A0E0A +#define INIT_REG_0x63A 0x100A +#define INIT_REG_0x63C 0x0E0E0A0A + + if (hal_data->init_reg_0x428 != INIT_REG_0x428) { + RTW_WARN("init_reg_0x428:0x%04x != 0x%04x\n", hal_data->init_reg_0x428, INIT_REG_0x428); + #if RTW_SIFS_INIT_CHK > 1 + hal_data->init_reg_0x428 = INIT_REG_0x428; + rtw_write16(adapter, 0x428, hal_data->init_reg_0x428); + #endif + } + if (hal_data->init_reg_0x514 != INIT_REG_0x514) { + RTW_WARN("init_reg_0x514:0x%08x != 0x%08x\n", hal_data->init_reg_0x514, INIT_REG_0x514); + #if RTW_SIFS_INIT_CHK > 1 + hal_data->init_reg_0x514 = INIT_REG_0x514; + rtw_write32(adapter, 0x514, hal_data->init_reg_0x514); + #endif + } + if (hal_data->init_reg_0x63a != INIT_REG_0x63A) { + RTW_WARN("init_reg_0x63a:0x%04x != 0x%04x\n", hal_data->init_reg_0x63a, INIT_REG_0x63A); + #if RTW_SIFS_INIT_CHK > 1 + hal_data->init_reg_0x63a = INIT_REG_0x63A; + rtw_write16(adapter, 0x63a, hal_data->init_reg_0x63a); + #endif + } + if (hal_data->init_reg_0x63c != INIT_REG_0x63C) { + RTW_WARN("init_reg_0x63c:0x%08x != 0x%08x\n", hal_data->init_reg_0x63c, INIT_REG_0x63C); + #if RTW_SIFS_INIT_CHK > 1 + hal_data->init_reg_0x63c = INIT_REG_0x63C; + rtw_write32(adapter, 0x63c, hal_data->init_reg_0x63c); + #endif + } +#endif +} +#endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/hal_com_c2h.h b/drivers/net/wireless/realtek/rtl8822ce/hal/hal_com_c2h.h index 54f2d068..b9aa9ffc 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/hal_com_c2h.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/hal_com_c2h.h @@ -137,4 +137,6 @@ void c2h_txpwr_idx_offload_done(_adapter *adapter, u8 *data, u8 len); int c2h_txpwr_idx_offload_wait(_adapter *adapter); #endif +void rtw_hal_bcn_early_rpt_c2h_handler(_adapter *adapter); + #endif /* __COMMON_C2H_H__ */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/hal_com_phycfg.c b/drivers/net/wireless/realtek/rtl8822ce/hal/hal_com_phycfg.c index cc572fe9..36b6bea8 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/hal_com_phycfg.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/hal_com_phycfg.c @@ -410,6 +410,19 @@ static const struct map_t rtl8822c_pg_txpwr_def_info = ); #endif +#ifdef CONFIG_RTL8723F +static const struct map_t rtl8723f_pg_txpwr_def_info = + MAP_ENT(0xB8, 1, 0xFF + , MAPSEG_ARRAY_ENT(0x10, 82, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x02, 0x00, 0x00, 0xFF, 0xFF, + 0xFF, 0xFF, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x02, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x02, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x33, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x02, 0x00, 0xFF, 0xFF, 0x00, 0xFF, + 0x00, 0x00) + ); +#endif + #ifdef CONFIG_RTL8814A static const struct map_t rtl8814a_pg_txpwr_def_info = MAP_ENT(0xB8, 1, 0xFF @@ -456,6 +469,18 @@ static const struct map_t rtl8814b_pg_txpwr_def_info = ); #endif +#ifdef CONFIG_TXPWR_PG_WITH_TSSI_OFFSET + #ifdef CONFIG_RTL8723F + #define EEPROM_TX_PWR_CALIBRATE_RATE EEPROM_TX_PWR_CALIBRATE_RATE_8723F + #endif + #ifdef CONFIG_RTL8814B + #define EEPROM_TX_PWR_CALIBRATE_RATE EEPROM_TX_PWR_CALIBRATE_RATE_8814B + #endif + #ifdef CONFIG_RTL8822C + #define EEPROM_TX_PWR_CALIBRATE_RATE EEPROM_TX_PWR_CALIBRATE_RATE_8822C + #endif +#endif /* CONFIG_TXPWR_PG_WITH_TSSI_OFFSET */ + const struct map_t *hal_pg_txpwr_def_info(_adapter *adapter) { u8 interface_type = 0; @@ -543,6 +568,11 @@ const struct map_t *hal_pg_txpwr_def_info(_adapter *adapter) case RTL8814B: map = &rtl8814b_pg_txpwr_def_info; break; +#endif +#ifdef CONFIG_RTL8723F + case RTL8723F: + map = &rtl8723f_pg_txpwr_def_info; + break; #endif } @@ -1086,6 +1116,27 @@ int check_phy_efuse_tx_power_info_valid(_adapter *adapter) u8 valid_5g_path_bmp = 0; #endif +#ifdef CONFIG_TXPWR_PG_WITH_TSSI_OFFSET + u8 tpt_mode = (pg_data[EEPROM_TX_PWR_CALIBRATE_RATE] & 0xF0) >> 4; +#endif + +#ifdef CONFIG_MP_INCLUDED + struct mp_priv *pmp_priv = &adapter->mppriv; + + + if (pmp_priv->efuse_update_file == _TRUE && (rtw_mp_mode_check(adapter))) { + RTW_INFO("%s: To use efuse_update_file !!!\n", __func__); + return _FALSE; + } +#endif + +#ifdef CONFIG_TXPWR_PG_WITH_TSSI_OFFSET + if (tpt_mode >= 4 && tpt_mode <= 7) { /* 4~7: TSSI */ + RTW_INFO("%s: tpt_mode is TSSI, skip check\n", __func__); + return _TRUE; + } +#endif + /* NOTE: TSSI offset use the same layout as TXPWR base */ for (path = 0; path < MAX_RF_PATH; path++) { @@ -1653,6 +1704,9 @@ static void phy_txpwr_by_rate_chk_for_path_dup(_adapter *adapter) } } +static s8 _phy_get_txpwr_by_rate(_adapter *adapter + , BAND_TYPE band, enum rf_path rfpath, enum MGN_RATE rate); + void phy_store_target_tx_power(PADAPTER pAdapter) { struct hal_spec_t *hal_spec = GET_HAL_SPEC(pAdapter); @@ -1682,7 +1736,7 @@ void phy_store_target_tx_power(PADAPTER pAdapter) if (regsty->target_tx_pwr_valid == _TRUE) base = hal_spec->txgi_pdbm * rtw_regsty_get_target_tx_power(pAdapter, band, path, rs); else - base = _PHY_GetTxPowerByRate(pAdapter, band, path, rate_sec_base[rs]); + base = _phy_get_txpwr_by_rate(pAdapter, band, path, rate_sec_base[rs]); phy_set_target_txpwr(pAdapter, band, path, rs, base); } } @@ -2112,7 +2166,7 @@ PHY_StoreTxPowerByRateNew( } for (i = 0; i < rateNum; ++i) { - u8 rate_idx = PHY_GetRateIndexOfTxPowerByRate(rates[i]); + u8 rate_idx = phy_get_rate_idx_of_txpwr_by_rate(rates[i]); pHalData->TxPwrByRate[Band][RfPath][rate_idx] = PwrByRateVal[i]; } @@ -2475,346 +2529,229 @@ PHY_GetTxPowerTrackingOffset( return offset; } +static const u8 _phy_get_rate_idx_of_txpwr_by_rate[MGN_UNKNOWN] = { + [MGN_1M] = 0, + [MGN_2M] = 1, + [MGN_5_5M] = 2, + [MGN_11M] = 3, + [MGN_6M] = 4, + [MGN_9M] = 5, + [MGN_12M] = 6, + [MGN_18M] = 7, + [MGN_24M] = 8, + [MGN_36M] = 9, + [MGN_48M] = 10, + [MGN_54M] = 11, + [MGN_MCS0] = 12, + [MGN_MCS1] = 13, + [MGN_MCS2] = 14, + [MGN_MCS3] = 15, + [MGN_MCS4] = 16, + [MGN_MCS5] = 17, + [MGN_MCS6] = 18, + [MGN_MCS7] = 19, + [MGN_MCS8] = 20, + [MGN_MCS9] = 21, + [MGN_MCS10] = 22, + [MGN_MCS11] = 23, + [MGN_MCS12] = 24, + [MGN_MCS13] = 25, + [MGN_MCS14] = 26, + [MGN_MCS15] = 27, + [MGN_MCS16] = 28, + [MGN_MCS17] = 29, + [MGN_MCS18] = 30, + [MGN_MCS19] = 31, + [MGN_MCS20] = 32, + [MGN_MCS21] = 33, + [MGN_MCS22] = 34, + [MGN_MCS23] = 35, + [MGN_MCS24] = 36, + [MGN_MCS25] = 37, + [MGN_MCS26] = 38, + [MGN_MCS27] = 39, + [MGN_MCS28] = 40, + [MGN_MCS29] = 41, + [MGN_MCS30] = 42, + [MGN_MCS31] = 43, + [MGN_VHT1SS_MCS0] = 44, + [MGN_VHT1SS_MCS1] = 45, + [MGN_VHT1SS_MCS2] = 46, + [MGN_VHT1SS_MCS3] = 47, + [MGN_VHT1SS_MCS4] = 48, + [MGN_VHT1SS_MCS5] = 49, + [MGN_VHT1SS_MCS6] = 50, + [MGN_VHT1SS_MCS7] = 51, + [MGN_VHT1SS_MCS8] = 52, + [MGN_VHT1SS_MCS9] = 53, + [MGN_VHT2SS_MCS0] = 54, + [MGN_VHT2SS_MCS1] = 55, + [MGN_VHT2SS_MCS2] = 56, + [MGN_VHT2SS_MCS3] = 57, + [MGN_VHT2SS_MCS4] = 58, + [MGN_VHT2SS_MCS5] = 59, + [MGN_VHT2SS_MCS6] = 60, + [MGN_VHT2SS_MCS7] = 61, + [MGN_VHT2SS_MCS8] = 62, + [MGN_VHT2SS_MCS9] = 63, + [MGN_VHT3SS_MCS0] = 64, + [MGN_VHT3SS_MCS1] = 65, + [MGN_VHT3SS_MCS2] = 66, + [MGN_VHT3SS_MCS3] = 67, + [MGN_VHT3SS_MCS4] = 68, + [MGN_VHT3SS_MCS5] = 69, + [MGN_VHT3SS_MCS6] = 70, + [MGN_VHT3SS_MCS7] = 71, + [MGN_VHT3SS_MCS8] = 72, + [MGN_VHT3SS_MCS9] = 73, + [MGN_VHT4SS_MCS0] = 74, + [MGN_VHT4SS_MCS1] = 75, + [MGN_VHT4SS_MCS2] = 76, + [MGN_VHT4SS_MCS3] = 77, + [MGN_VHT4SS_MCS4] = 78, + [MGN_VHT4SS_MCS5] = 79, + [MGN_VHT4SS_MCS6] = 80, + [MGN_VHT4SS_MCS7] = 81, + [MGN_VHT4SS_MCS8] = 82, + [MGN_VHT4SS_MCS9] = 83, +}; + /*The same as MRateToHwRate in hal_com.c*/ -u8 -PHY_GetRateIndexOfTxPowerByRate( - u8 Rate -) +u8 phy_get_rate_idx_of_txpwr_by_rate(enum MGN_RATE rate) { - u8 index = 0; - switch (Rate) { - case MGN_1M: - index = 0; - break; - case MGN_2M: - index = 1; - break; - case MGN_5_5M: - index = 2; - break; - case MGN_11M: - index = 3; - break; - case MGN_6M: - index = 4; - break; - case MGN_9M: - index = 5; - break; - case MGN_12M: - index = 6; - break; - case MGN_18M: - index = 7; - break; - case MGN_24M: - index = 8; - break; - case MGN_36M: - index = 9; - break; - case MGN_48M: - index = 10; - break; - case MGN_54M: - index = 11; - break; - case MGN_MCS0: - index = 12; - break; - case MGN_MCS1: - index = 13; - break; - case MGN_MCS2: - index = 14; - break; - case MGN_MCS3: - index = 15; - break; - case MGN_MCS4: - index = 16; - break; - case MGN_MCS5: - index = 17; - break; - case MGN_MCS6: - index = 18; - break; - case MGN_MCS7: - index = 19; - break; - case MGN_MCS8: - index = 20; - break; - case MGN_MCS9: - index = 21; - break; - case MGN_MCS10: - index = 22; - break; - case MGN_MCS11: - index = 23; - break; - case MGN_MCS12: - index = 24; - break; - case MGN_MCS13: - index = 25; - break; - case MGN_MCS14: - index = 26; - break; - case MGN_MCS15: - index = 27; - break; - case MGN_MCS16: - index = 28; - break; - case MGN_MCS17: - index = 29; - break; - case MGN_MCS18: - index = 30; - break; - case MGN_MCS19: - index = 31; - break; - case MGN_MCS20: - index = 32; - break; - case MGN_MCS21: - index = 33; - break; - case MGN_MCS22: - index = 34; - break; - case MGN_MCS23: - index = 35; - break; - case MGN_MCS24: - index = 36; - break; - case MGN_MCS25: - index = 37; - break; - case MGN_MCS26: - index = 38; - break; - case MGN_MCS27: - index = 39; - break; - case MGN_MCS28: - index = 40; - break; - case MGN_MCS29: - index = 41; - break; - case MGN_MCS30: - index = 42; - break; - case MGN_MCS31: - index = 43; - break; - case MGN_VHT1SS_MCS0: - index = 44; - break; - case MGN_VHT1SS_MCS1: - index = 45; - break; - case MGN_VHT1SS_MCS2: - index = 46; - break; - case MGN_VHT1SS_MCS3: - index = 47; - break; - case MGN_VHT1SS_MCS4: - index = 48; - break; - case MGN_VHT1SS_MCS5: - index = 49; - break; - case MGN_VHT1SS_MCS6: - index = 50; - break; - case MGN_VHT1SS_MCS7: - index = 51; - break; - case MGN_VHT1SS_MCS8: - index = 52; - break; - case MGN_VHT1SS_MCS9: - index = 53; - break; - case MGN_VHT2SS_MCS0: - index = 54; - break; - case MGN_VHT2SS_MCS1: - index = 55; - break; - case MGN_VHT2SS_MCS2: - index = 56; - break; - case MGN_VHT2SS_MCS3: - index = 57; - break; - case MGN_VHT2SS_MCS4: - index = 58; - break; - case MGN_VHT2SS_MCS5: - index = 59; - break; - case MGN_VHT2SS_MCS6: - index = 60; - break; - case MGN_VHT2SS_MCS7: - index = 61; - break; - case MGN_VHT2SS_MCS8: - index = 62; - break; - case MGN_VHT2SS_MCS9: - index = 63; - break; - case MGN_VHT3SS_MCS0: - index = 64; - break; - case MGN_VHT3SS_MCS1: - index = 65; - break; - case MGN_VHT3SS_MCS2: - index = 66; - break; - case MGN_VHT3SS_MCS3: - index = 67; - break; - case MGN_VHT3SS_MCS4: - index = 68; - break; - case MGN_VHT3SS_MCS5: - index = 69; - break; - case MGN_VHT3SS_MCS6: - index = 70; - break; - case MGN_VHT3SS_MCS7: - index = 71; - break; - case MGN_VHT3SS_MCS8: - index = 72; - break; - case MGN_VHT3SS_MCS9: - index = 73; - break; - case MGN_VHT4SS_MCS0: - index = 74; - break; - case MGN_VHT4SS_MCS1: - index = 75; - break; - case MGN_VHT4SS_MCS2: - index = 76; - break; - case MGN_VHT4SS_MCS3: - index = 77; - break; - case MGN_VHT4SS_MCS4: - index = 78; - break; - case MGN_VHT4SS_MCS5: - index = 79; - break; - case MGN_VHT4SS_MCS6: - index = 80; - break; - case MGN_VHT4SS_MCS7: - index = 81; - break; - case MGN_VHT4SS_MCS8: - index = 82; - break; - case MGN_VHT4SS_MCS9: - index = 83; - break; - default: - RTW_INFO("Invalid rate 0x%x in %s\n", Rate, __FUNCTION__); - break; - }; + u8 index = 0; + + if (rate < MGN_UNKNOWN) + index = _phy_get_rate_idx_of_txpwr_by_rate[rate]; + + if (rate != MGN_1M && index == 0) + RTW_WARN("Invalid rate 0x%x in %s\n", rate, __FUNCTION__); return index; } -s8 -_PHY_GetTxPowerByRate( - PADAPTER pAdapter, - u8 Band, - enum rf_path RFPath, - u8 Rate -) +static s8 _phy_get_txpwr_by_rate(_adapter *adapter + , BAND_TYPE band, enum rf_path rfpath, enum MGN_RATE rate) { - HAL_DATA_TYPE *pHalData = GET_HAL_DATA(pAdapter); + HAL_DATA_TYPE *pHalData = GET_HAL_DATA(adapter); s8 value = 0; - u8 rateIndex = PHY_GetRateIndexOfTxPowerByRate(Rate); + u8 rate_idx = phy_get_rate_idx_of_txpwr_by_rate(rate); - if (Band != BAND_ON_2_4G && Band != BAND_ON_5G) { - RTW_INFO("Invalid band %d in %s\n", Band, __func__); + if (band != BAND_ON_2_4G && band != BAND_ON_5G) { + RTW_INFO("Invalid band %d in %s\n", band, __func__); goto exit; } - if (RFPath > RF_PATH_D) { - RTW_INFO("Invalid RfPath %d in %s\n", RFPath, __func__); + if (rfpath > RF_PATH_D) { + RTW_INFO("Invalid RfPath %d in %s\n", rfpath, __func__); goto exit; } - if (rateIndex >= TX_PWR_BY_RATE_NUM_RATE) { - RTW_INFO("Invalid RateIndex %d in %s\n", rateIndex, __func__); + if (rate_idx >= TX_PWR_BY_RATE_NUM_RATE) { + RTW_INFO("Invalid RateIndex %d in %s\n", rate_idx, __func__); goto exit; } - value = pHalData->TxPwrByRate[Band][RFPath][rateIndex]; + value = pHalData->TxPwrByRate[band][rfpath][rate_idx]; exit: return value; } - -s8 -PHY_GetTxPowerByRate( - PADAPTER pAdapter, - u8 Band, - enum rf_path RFPath, - RATE_SECTION rs, - enum MGN_RATE rate -) +/* +* Return value in unit of TX Gain Index +*/ +s8 phy_get_txpwr_by_rate(_adapter *adapter + , BAND_TYPE band, enum rf_path rfpath, RATE_SECTION rs, enum MGN_RATE rate) { - if (phy_is_tx_power_by_rate_needed(pAdapter)) - return _PHY_GetTxPowerByRate(pAdapter, Band, RFPath, rate); - return phy_get_target_txpwr(pAdapter, Band, RFPath, rs); + if (phy_is_tx_power_by_rate_needed(adapter)) + return _phy_get_txpwr_by_rate(adapter, band, rfpath, rate); + return phy_get_target_txpwr(adapter, band, rfpath, rs); } -void -PHY_SetTxPowerByRate( - PADAPTER pAdapter, - u8 Band, - enum rf_path RFPath, - u8 Rate, - s8 Value -) +/* get txpowr in mBm for single path */ +s16 phy_get_txpwr_by_rate_single_mbm(_adapter *adapter + , BAND_TYPE band, enum rf_path rfpath, RATE_SECTION rs, enum MGN_RATE rate, bool eirp) { - HAL_DATA_TYPE *pHalData = GET_HAL_DATA(pAdapter); - u8 rateIndex = PHY_GetRateIndexOfTxPowerByRate(Rate); + struct hal_spec_t *hal_spec = GET_HAL_SPEC(adapter); + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + s16 val; - if (Band != BAND_ON_2_4G && Band != BAND_ON_5G) { - RTW_INFO("Invalid band %d in %s\n", Band, __FUNCTION__); - return; - } - if (RFPath > RF_PATH_D) { - RTW_INFO("Invalid RfPath %d in %s\n", RFPath, __FUNCTION__); - return; - } - if (rateIndex >= TX_PWR_BY_RATE_NUM_RATE) { - RTW_INFO("Invalid RateIndex %d in %s\n", rateIndex, __FUNCTION__); - return; + val = phy_get_txpwr_by_rate(adapter, band, rfpath, rs, rate); + if (val == hal_spec->txgi_max) + val = UNSPECIFIED_MBM; + else { + val = (val * MBM_PDBM) / hal_spec->txgi_pdbm; + if (eirp) + val += rfctl->antenna_gain; } - pHalData->TxPwrByRate[Band][RFPath][rateIndex] = Value; + return val; +} + +/* get txpowr in mBm with effect of N-TX */ +s16 phy_get_txpwr_by_rate_total_mbm(_adapter *adapter + , BAND_TYPE band, RATE_SECTION rs, enum MGN_RATE rate, bool cap, bool eirp) +{ + s16 val; + u8 tx_num; + + if (cap) + tx_num = phy_get_capable_tx_num(adapter, rate) + 1; + else + tx_num = phy_get_current_tx_num(adapter, rate) + 1; + + /* assume all path have same txpower target */ + val = phy_get_txpwr_by_rate_single_mbm(adapter, band, RF_PATH_A, rs, rate, eirp); + if (val != UNSPECIFIED_MBM) + val += mb_of_ntx(tx_num); + + return val; +} + +static s16 _phy_get_txpwr_by_rate_max_mbm(_adapter *adapter, BAND_TYPE band, s8 rfpath, bool cap, bool eirp) +{ + struct hal_spec_t *hal_spec = GET_HAL_SPEC(adapter); + HAL_DATA_TYPE *hal_data = GET_HAL_DATA(adapter); + u8 tx_num; + RATE_SECTION rs; + int i; + s16 max = UNSPECIFIED_MBM, mbm; + + for (rs = 0; rs < RATE_SECTION_NUM; rs++) { + tx_num = rate_section_to_tx_num(rs); + if (tx_num + 1 > hal_data->tx_nss) + continue; + + if (band == BAND_ON_5G && IS_CCK_RATE_SECTION(rs)) + continue; + + if (IS_VHT_RATE_SECTION(rs) && !IS_HARDWARE_TYPE_JAGUAR_ALL(adapter)) + continue; + + for (i = 0; i < rates_by_sections[rs].rate_num; i++) { + if (rfpath < 0) /* total */ + mbm = phy_get_txpwr_by_rate_total_mbm(adapter, band, rs, rates_by_sections[rs].rates[i], cap, eirp); + else + mbm = phy_get_txpwr_by_rate_single_mbm(adapter, band, rfpath, rs, rates_by_sections[rs].rates[i], eirp); + if (mbm == UNSPECIFIED_MBM) + continue; + if (max == UNSPECIFIED_MBM || mbm > max) + max = mbm; + } + } + + return max; +} + +/* get txpowr in mBm for single path */ +s16 phy_get_txpwr_by_rate_single_max_mbm(_adapter *adapter, BAND_TYPE band, enum rf_path rfpath, bool eirp) +{ + return _phy_get_txpwr_by_rate_max_mbm(adapter, band, rfpath, 0 /* single don't care */, eirp); +} + +/* get txpowr in mBm with effect of N-TX */ +s16 phy_get_txpwr_by_rate_total_max_mbm(_adapter *adapter, BAND_TYPE band, bool cap, bool eirp) +{ + return _phy_get_txpwr_by_rate_max_mbm(adapter, band, -1, cap, eirp); } u8 phy_check_under_survey_ch(_adapter *adapter) @@ -2885,6 +2822,7 @@ phy_set_tx_power_level_by_path( } } +#if CONFIG_TXPWR_LIMIT const char *const _txpwr_lmt_rs_str[] = { "CCK", "OFDM", @@ -2937,7 +2875,7 @@ static s8 phy_txpwr_ww_lmt_value(_adapter *adapter) */ s8 phy_get_txpwr_lmt( PADAPTER Adapter, - const char *regd_name, + const char *lmt_name, BAND_TYPE Band, enum channel_width bw, u8 tlrs, @@ -2976,18 +2914,25 @@ s8 phy_get_txpwr_lmt( if (lock) _enter_critical_mutex(&rfctl->txpwr_lmt_mutex, &irqL); - if (!regd_name) /* no regd_name specified, use currnet */ - regd_name = rfctl->regd_name; + if (!lmt_name) { /* no name specified, use currnet */ + if (Band < BAND_MAX) + lmt_name = rfctl->txpwr_lmt_name[Band]; + else { + rtw_warn_on(1); + goto release_lock; + } + } - if (rfctl->txpwr_regd_num == 0 - || strcmp(regd_name, regd_str(TXPWR_LMT_NONE)) == 0) + if (rfctl->txpwr_lmt_num == 0 + || lmt_name == NULL + || strcmp(lmt_name, txpwr_lmt_str(TXPWR_LMT_NONE)) == 0) goto release_lock; - if (strcmp(regd_name, regd_str(TXPWR_LMT_WW)) == 0) + if (strcmp(lmt_name, txpwr_lmt_str(TXPWR_LMT_WW)) == 0) is_ww_regd = 1; if (!is_ww_regd) { - ent = _rtw_txpwr_lmt_get_by_name(rfctl, regd_name); + ent = _rtw_txpwr_lmt_get_by_name(rfctl, lmt_name); if (!ent) goto release_lock; } @@ -3034,6 +2979,11 @@ s8 phy_get_txpwr_lmt( } } #endif + #if CONFIG_IEEE80211_BAND_6GHZ + else if (Band == BAND_ON_6G) { + rtw_warn_on(1); + } + #endif release_lock: if (lock) @@ -3048,14 +2998,14 @@ exit: * hal_spec->txgi_max is returned when NO limit */ inline s8 phy_get_txpwr_lmt_diff(_adapter *adapter - , const char *regd_name + , const char *lmt_name , BAND_TYPE band, enum channel_width bw , u8 rfpath, u8 rs, u8 tlrs, u8 ntx_idx, u8 cch, u8 lock ) { HAL_DATA_TYPE *hal_data = GET_HAL_DATA(adapter); struct hal_spec_t *hal_spec = GET_HAL_SPEC(adapter); - s8 lmt = phy_get_txpwr_lmt(adapter, regd_name, band, bw, tlrs, ntx_idx, cch, lock); + s8 lmt = phy_get_txpwr_lmt(adapter, lmt_name, band, bw, tlrs, ntx_idx, cch, lock); if (lmt != hal_spec->txgi_max) { /* return diff value */ @@ -3066,7 +3016,7 @@ inline s8 phy_get_txpwr_lmt_diff(_adapter *adapter } /* -* May search for secondary channels for min limit +* May search for secondary channels for max/min limit * @opch: used to specify operating channel position to get * cch of every bandwidths which differ from current hal_data.cch20, 40, 80... * @@ -3074,9 +3024,9 @@ inline s8 phy_get_txpwr_lmt_diff(_adapter *adapter * hsl_spec->txgi_max is returned when NO limit */ s8 phy_get_txpwr_lmt_sub_chs(_adapter *adapter - , const char *regd_name + , const char *lmt_name , BAND_TYPE band, enum channel_width bw - , u8 rfpath, u8 rate, u8 ntx_idx, u8 cch, u8 opch) + , u8 rfpath, u8 rate, u8 ntx_idx, u8 cch, u8 opch, bool reg_max) { struct dvobj_priv *dvobj = adapter_to_dvobj(adapter); struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); @@ -3089,10 +3039,17 @@ s8 phy_get_txpwr_lmt_sub_chs(_adapter *adapter u8 tmp_cch = 0; u8 tmp_bw; u8 bw_bmp = 0; - s8 min_lmt = hal_spec->txgi_max; - u8 final_bw = bw, final_cch = cch; + s8 final_lmt = reg_max ? 0 : hal_spec->txgi_max; + u8 final_bw = CHANNEL_WIDTH_MAX, final_cch = cch; _irqL irqL; + if ((adapter->registrypriv.RegEnableTxPowerLimit == 2 && hal_data->EEPROMRegulatory != 1) || + adapter->registrypriv.RegEnableTxPowerLimit == 0 + ) { + final_lmt = hal_spec->txgi_max; + goto exit; + } + #ifdef CONFIG_MP_INCLUDED /* MP mode channel don't use secondary channel */ if (rtw_mp_mode_check(adapter) == _TRUE) @@ -3129,19 +3086,31 @@ s8 phy_get_txpwr_lmt_sub_chs(_adapter *adapter } /* - * find the possible tx bandwidth bmp for this rate, and then will get center channel for each bandwidth - * if no possible tx bandwidth bmp, select valid bandwidth up to current RF bandwidth into bmp + * reg_max: + * get valid full bandwidth bmp up to @bw + * + * !reg_max: + * find the possible tx bandwidth bmp for this rate + * if no possible tx bandwidth bmp, select valid bandwidth bmp up to @bw */ if (tlrs == TXPWR_LMT_RS_CCK || tlrs == TXPWR_LMT_RS_OFDM) bw_bmp = BW_CAP_20M; /* CCK, OFDM only BW 20M */ else if (tlrs == TXPWR_LMT_RS_HT) { - bw_bmp = rtw_get_tx_bw_bmp_of_ht_rate(dvobj, rate, bw); - if (bw_bmp == 0) - bw_bmp = ch_width_to_bw_cap(bw > CHANNEL_WIDTH_40 ? CHANNEL_WIDTH_40 : bw); + if (reg_max) + bw_bmp = ch_width_to_bw_cap(bw > CHANNEL_WIDTH_40 ? CHANNEL_WIDTH_40 + 1 : bw + 1) - 1; + else { + bw_bmp = rtw_get_tx_bw_bmp_of_ht_rate(dvobj, rate, bw); + if (bw_bmp == 0) + bw_bmp = ch_width_to_bw_cap(bw > CHANNEL_WIDTH_40 ? CHANNEL_WIDTH_40 : bw); + } } else if (tlrs == TXPWR_LMT_RS_VHT) { - bw_bmp = rtw_get_tx_bw_bmp_of_vht_rate(dvobj, rate, bw); - if (bw_bmp == 0) - bw_bmp = ch_width_to_bw_cap(bw > CHANNEL_WIDTH_160 ? CHANNEL_WIDTH_160 : bw); + if (reg_max) + bw_bmp = ch_width_to_bw_cap(bw > CHANNEL_WIDTH_160 ? CHANNEL_WIDTH_160 + 1 : bw + 1) - 1; + else { + bw_bmp = rtw_get_tx_bw_bmp_of_vht_rate(dvobj, rate, bw); + if (bw_bmp == 0) + bw_bmp = ch_width_to_bw_cap(bw > CHANNEL_WIDTH_160 ? CHANNEL_WIDTH_160 : bw); + } } else rtw_warn_on(1); } @@ -3151,12 +3120,13 @@ s8 phy_get_txpwr_lmt_sub_chs(_adapter *adapter _enter_critical_mutex(&rfctl->txpwr_lmt_mutex, &irqL); - /* loop for each possible tx bandwidth to find minimum limit */ + /* loop for each possible tx bandwidth to find final limit */ for (tmp_bw = CHANNEL_WIDTH_20; tmp_bw <= bw; tmp_bw++) { if (!(ch_width_to_bw_cap(tmp_bw) & bw_bmp)) continue; if (no_sc == _FALSE) { + /* get center channel for each bandwidth */ if (tmp_bw == CHANNEL_WIDTH_20) tmp_cch = cch_20; else if (tmp_bw == CHANNEL_WIDTH_40) @@ -3169,29 +3139,36 @@ s8 phy_get_txpwr_lmt_sub_chs(_adapter *adapter } } - lmt = phy_get_txpwr_lmt(adapter, regd_name, band, tmp_bw, tlrs, ntx_idx, tmp_cch, 0); + lmt = phy_get_txpwr_lmt(adapter, lmt_name, band, tmp_bw, tlrs, ntx_idx, tmp_cch, 0); - if (min_lmt >= lmt) { - min_lmt = lmt; - final_cch = tmp_cch; - final_bw = tmp_bw; + if (final_lmt > lmt) { + if (reg_max) + continue; + } else if (final_lmt < lmt) { + if (!reg_max) + continue; + } else { /* equal */ + if (final_bw == bw) + continue; } + final_lmt = lmt; + final_cch = tmp_cch; + final_bw = tmp_bw; } _exit_critical_mutex(&rfctl->txpwr_lmt_mutex, &irqL); -exit: - if (0) { if (final_bw != bw && (IS_HT_RATE(rate) || IS_VHT_RATE(rate))) - RTW_INFO("%s min_lmt: %s ch%u -> %s ch%u\n" + RTW_INFO("%s final_lmt: %s ch%u -> %s ch%u\n" , MGN_RATE_STR(rate) , ch_width_str(bw), cch , ch_width_str(final_bw), final_cch); } - return min_lmt; +exit: + return final_lmt; } static void phy_txpwr_lmt_cck_ofdm_mt_chk(_adapter *adapter) @@ -3322,7 +3299,7 @@ static void phy_txpwr_lmt_cross_ref_ht_vht(_adapter *adapter) if (0) RTW_INFO("reg:%s, bw:%u, ch:%u, %s-%uT ref %s-%uT\n" - , ent->regd_name, bw, channel + , ent->name, bw, channel , txpwr_lmt_rs_str(tlrs), ntx_idx + 1 , txpwr_lmt_rs_str(ref_tlrs), ntx_idx + 1); @@ -3468,7 +3445,7 @@ void phy_txpwr_limit_bandwidth_chk(_adapter *adapter) cur = get_next(cur); for (bw_pos = bw; bw_pos < CHANNEL_WIDTH_160; bw_pos--) - lmt[bw_pos] = phy_get_txpwr_lmt(adapter, ent->regd_name, band, bw_pos, tlrs, ntx_idx, cch_by_bw[bw_pos], 0); + lmt[bw_pos] = phy_get_txpwr_lmt(adapter, ent->name, band, bw_pos, tlrs, ntx_idx, cch_by_bw[bw_pos], 0); for (bw_pos = bw; bw_pos > CHANNEL_WIDTH_20; bw_pos--) if (lmt[bw_pos] > lmt[bw_pos - 1]) @@ -3481,7 +3458,7 @@ void phy_txpwr_limit_bandwidth_chk(_adapter *adapter) , ch_width_str(bw) , txpwr_lmt_rs_str(tlrs) , ntx_idx + 1 - , ent->regd_name + , ent->name ); for (bw_pos = bw; bw_pos < CHANNEL_WIDTH_160; bw_pos--) _RTW_PRINT_SEL(RTW_DBGDUMP, "%03u ", cch_by_bw[bw_pos]); @@ -3499,7 +3476,7 @@ void phy_txpwr_limit_bandwidth_chk(_adapter *adapter) _RTW_PRINT_SEL(RTW_DBGDUMP, "\n"); } for (bw_pos = bw; bw_pos < CHANNEL_WIDTH_160; bw_pos--) - lmt[bw_pos] = phy_get_txpwr_lmt(adapter, regd_str(TXPWR_LMT_WW), band, bw_pos, tlrs, ntx_idx, cch_by_bw[bw_pos], 0); + lmt[bw_pos] = phy_get_txpwr_lmt(adapter, txpwr_lmt_str(TXPWR_LMT_WW), band, bw_pos, tlrs, ntx_idx, cch_by_bw[bw_pos], 0); for (bw_pos = bw; bw_pos > CHANNEL_WIDTH_20; bw_pos--) if (lmt[bw_pos] > lmt[bw_pos - 1]) @@ -3510,7 +3487,7 @@ void phy_txpwr_limit_bandwidth_chk(_adapter *adapter) , ch_width_str(bw) , txpwr_lmt_rs_str(tlrs) , ntx_idx + 1 - , regd_str(TXPWR_LMT_WW) + , txpwr_lmt_str(TXPWR_LMT_WW) ); for (bw_pos = bw; bw_pos < CHANNEL_WIDTH_160; bw_pos--) _RTW_PRINT_SEL(RTW_DBGDUMP, "%03u ", cch_by_bw[bw_pos]); @@ -3588,6 +3565,7 @@ GetS1ByteIntegerFromStringInDecimal( return _TRUE; } +#endif /* CONFIG_TXPWR_LIMIT */ /* * phy_set_tx_power_limit - Parsing TX power limit from phydm array, called by odm_ConfigBB_TXPWR_LMT_XXX in phydm @@ -3595,7 +3573,7 @@ GetS1ByteIntegerFromStringInDecimal( void phy_set_tx_power_limit( struct dm_struct *pDM_Odm, - u8 *Regulation, + u8 *lmt_name, u8 *Band, u8 *Bandwidth, u8 *RateSection, @@ -3604,6 +3582,7 @@ phy_set_tx_power_limit( u8 *PowerLimit ) { +#if CONFIG_TXPWR_LIMIT PADAPTER Adapter = pDM_Odm->adapter; HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter); struct hal_spec_t *hal_spec = GET_HAL_SPEC(Adapter); @@ -3613,8 +3592,8 @@ phy_set_tx_power_limit( s8 ww_lmt_val = phy_txpwr_ww_lmt_value(Adapter); if (0) - RTW_INFO("Index of power limit table [regulation %s][band %s][bw %s][rate section %s][ntx %s][chnl %s][val %s]\n" - , Regulation, Band, Bandwidth, RateSection, ntx, Channel, PowerLimit); + RTW_INFO("Index of power limit table [lmt_name %s][band %s][bw %s][rate section %s][ntx %s][chnl %s][val %s]\n" + , lmt_name, Band, Bandwidth, RateSection, ntx, Channel, PowerLimit); if (GetU1ByteIntegerFromStringInDecimal((char *)Channel, &channel) == _FALSE || GetS1ByteIntegerFromStringInDecimal((char *)PowerLimit, &powerLimit) == _FALSE @@ -3686,7 +3665,7 @@ phy_set_tx_power_limit( return; } - rtw_txpwr_lmt_add(adapter_to_rfctl(Adapter), Regulation, band, bandwidth, tlrs, ntx_idx, channelIndex, powerLimit); + rtw_txpwr_lmt_add(adapter_to_rfctl(Adapter), lmt_name, band, bandwidth, tlrs, ntx_idx, channelIndex, powerLimit); } #if CONFIG_IEEE80211_BAND_5GHZ else if (strncmp(Band, "5G", 2) == 0) { @@ -3698,22 +3677,15 @@ phy_set_tx_power_limit( return; } - rtw_txpwr_lmt_add(adapter_to_rfctl(Adapter), Regulation, band, bandwidth, tlrs, ntx_idx, channelIndex, powerLimit); + rtw_txpwr_lmt_add(adapter_to_rfctl(Adapter), lmt_name, band, bandwidth, tlrs, ntx_idx, channelIndex, powerLimit); } #endif else { RTW_PRINT("unknown/unsupported band:%s\n", Band); return; } +#endif } - -u8 phy_get_tx_power_index_ex(_adapter *adapter - , enum rf_path rfpath, RATE_SECTION rs, enum MGN_RATE rate - , enum channel_width bw, BAND_TYPE band, u8 cch, u8 opch) -{ - return rtw_hal_get_tx_power_index(adapter, rfpath, rs, rate, bw, band, cch, opch, NULL); -} - static void phy_set_tx_power_limit_hex(PADAPTER Adapter, u8* Regulation, u8 band, u8 bandwidth, u8 tlrs, @@ -3767,8 +3739,177 @@ phy_set_tx_power_limit_hex(PADAPTER Adapter, } } -u8 -phy_get_tx_power_index( +void +phy_set_tx_power_limit_ex( + struct dm_struct *pDM_Odm, + u8 phydm_id, + u8 Band, + u8 Bandwidth, + u8 RateSection, + u8 ntx, + u8 channel, + s8 powerLimit +) +{ +#if CONFIG_TXPWR_LIMIT + PADAPTER Adapter = pDM_Odm->adapter; + HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter); + struct hal_spec_t *hal_spec = GET_HAL_SPEC(Adapter); + u8 lmt_id; + u8 band = 0, bandwidth = 0, tlrs = 0; + u8 ntx_idx; + s8 prevPowerLimit, channelIndex; + s8 ww_lmt_val = phy_txpwr_ww_lmt_value(Adapter); + + if (0) + RTW_INFO("Index of power limit table [phydm_id %d][band %d][bw %d][rate section %d][ntx %d][chnl %d][val %d]\n" + , phydm_id, Band, Bandwidth, RateSection, ntx, channel, powerLimit); + + if (powerLimit != ww_lmt_val) { + if (powerLimit < -hal_spec->txgi_max || powerLimit > hal_spec->txgi_max) + RTW_PRINT("Illegal power limit value [ch %d][val %d]\n", channel, powerLimit); + + if (powerLimit > hal_spec->txgi_max) + powerLimit = hal_spec->txgi_max; + else if (powerLimit < -hal_spec->txgi_max) + powerLimit = ww_lmt_val + 1; + } + + switch (phydm_id) { + case PW_LMT_REGU_FCC: + lmt_id = TXPWR_LMT_FCC; + break; + case PW_LMT_REGU_ETSI: + lmt_id = TXPWR_LMT_ETSI; + break; + case PW_LMT_REGU_MKK: + lmt_id = TXPWR_LMT_MKK; + break; + case PW_LMT_REGU_IC: + lmt_id = TXPWR_LMT_IC; + break; + case PW_LMT_REGU_KCC: + lmt_id = TXPWR_LMT_KCC; + break; + case PW_LMT_REGU_ACMA: + lmt_id = TXPWR_LMT_ACMA; + break; + case PW_LMT_REGU_CHILE: + lmt_id = TXPWR_LMT_CHILE; + break; + case PW_LMT_REGU_UKRAINE: + lmt_id = TXPWR_LMT_UKRAINE; + break; + case PW_LMT_REGU_MEXICO: + lmt_id = TXPWR_LMT_MEXICO; + break; + case PW_LMT_REGU_CN: + lmt_id = TXPWR_LMT_CN; + break; + case PW_LMT_REGU_WW13: + default: + RTW_PRINT("Wrong phydm_id:%d\n", phydm_id); + return; + } + + switch (RateSection) { + case PW_LMT_RS_CCK: + tlrs = TXPWR_LMT_RS_CCK; + break; + case PW_LMT_RS_OFDM: + tlrs = TXPWR_LMT_RS_OFDM; + break; + case PW_LMT_RS_HT: + tlrs = TXPWR_LMT_RS_HT; + break; + case PW_LMT_RS_VHT: + tlrs = TXPWR_LMT_RS_VHT; + break; + default: + RTW_PRINT("Wrong rate section:%d\n", RateSection); + return; + } + + switch (ntx) { + case PW_LMT_PH_1T: + ntx_idx = RF_1TX; + break; + case PW_LMT_PH_2T: + ntx_idx = RF_2TX; + break; + case PW_LMT_PH_3T: + ntx_idx = RF_3TX; + break; + case PW_LMT_PH_4T: + ntx_idx = RF_4TX; + break; + default: + RTW_PRINT("Wrong tx num:%d\n", ntx); + return; + } + + switch (Bandwidth) { + case PW_LMT_BW_20M: + bandwidth = CHANNEL_WIDTH_20; + break; + case PW_LMT_BW_40M: + bandwidth = CHANNEL_WIDTH_40; + break; + case PW_LMT_BW_80M: + bandwidth = CHANNEL_WIDTH_80; + break; + case PW_LMT_BW_160M: + bandwidth = CHANNEL_WIDTH_160; + break; + default: + RTW_PRINT("unknown bandwidth: %d\n", Bandwidth); + return; + } + + if (Band == PW_LMT_BAND_2_4G) { + band = BAND_ON_2_4G; + channelIndex = phy_GetChannelIndexOfTxPowerLimit(BAND_ON_2_4G, channel); + + if (channelIndex == -1) { + RTW_PRINT("unsupported channel: %d at 2.4G\n", channel); + return; + } + + if (bandwidth >= MAX_2_4G_BANDWIDTH_NUM) { + RTW_PRINT("unsupported bandwidth: %s at 2.4G\n", ch_width_str(bandwidth)); + return; + } + + rtw_txpwr_lmt_add(adapter_to_rfctl(Adapter), txpwr_lmt_str(lmt_id), band, bandwidth, tlrs, ntx_idx, channelIndex, powerLimit); + } +#if CONFIG_IEEE80211_BAND_5GHZ + else if (Band == PW_LMT_BAND_5G) { + band = BAND_ON_5G; + channelIndex = phy_GetChannelIndexOfTxPowerLimit(BAND_ON_5G, channel); + + if (channelIndex == -1) { + RTW_PRINT("unsupported channel: %d at 5G\n", channel); + return; + } + + rtw_txpwr_lmt_add(adapter_to_rfctl(Adapter), txpwr_lmt_str(lmt_id), band, bandwidth, tlrs, ntx_idx, channelIndex, powerLimit); + } +#endif + else { + RTW_PRINT("unknown/unsupported band:%d\n", Band); + return; + } +#endif +} + +u8 phy_get_tx_power_index_ex(_adapter *adapter + , enum rf_path rfpath, RATE_SECTION rs, enum MGN_RATE rate + , enum channel_width bw, BAND_TYPE band, u8 cch, u8 opch) +{ + return rtw_hal_get_tx_power_index(adapter, rfpath, rs, rate, bw, band, cch, opch, NULL); +} + +u8 phy_get_tx_power_index( PADAPTER pAdapter, enum rf_path RFPath, u8 Rate, @@ -3798,22 +3939,25 @@ void dump_tx_power_index_inline(void *sel, _adapter *adapter, u8 rfpath, enum ch struct hal_spec_t *hal_spec = GET_HAL_SPEC(adapter); if (tic->utarget == hal_spec->txgi_max) { - RTW_PRINT_SEL(sel, "TXPWR: [%c][%s]cch:%u, %s %uT, idx:%u(0x%02x) = base(%d) + min((byr(%d) + btc(%d) + extra(%d)), lmt(%d), ulmt(%d)) + tpt(%d) + dpd(%d)\n" + RTW_PRINT_SEL(sel, "TXPWR: [%c][%s]cch:%u, %s %uT, idx:%u(0x%02x) = base(%d) + min((byr(%d) + btc(%d) + extra(%d)), rlmt(%d), lmt(%d), ulmt(%d)) + tpc(%d) + tpt(%d) + dpd(%d)\n" , rf_path_char(rfpath), ch_width_str(bw), cch , MGN_RATE_STR(rate), tic->ntx_idx + 1 , pwr_idx, pwr_idx, tic->base - , tic->by_rate, tic->btc, tic->extra, tic->limit, tic->ulimit + , tic->by_rate, tic->btc, tic->extra, tic->rlimit, tic->limit, tic->ulimit + , tic->tpc , tic->tpt, tic->dpd); } else { - RTW_PRINT_SEL(sel, "TXPWR: [%c][%s]cch:%u, %s %uT, idx:%u(0x%02x) = base(%d) + min(utgt(%d), lmt(%d), ulmt(%d)) + tpt(%d) + dpd(%d)\n" + RTW_PRINT_SEL(sel, "TXPWR: [%c][%s]cch:%u, %s %uT, idx:%u(0x%02x) = base(%d) + min(utgt(%d), rlmt(%d), lmt(%d), ulmt(%d)) + tpc(%d) + tpt(%d) + dpd(%d)\n" , rf_path_char(rfpath), ch_width_str(bw), cch , MGN_RATE_STR(rate), tic->ntx_idx + 1 , pwr_idx, pwr_idx, tic->base - , tic->utarget, tic->limit, tic->ulimit + , tic->utarget, tic->rlimit, tic->limit, tic->ulimit + , tic->tpc , tic->tpt, tic->dpd); } } +#ifdef CONFIG_PROC_DEBUG void dump_tx_power_idx_value(void *sel, _adapter *adapter, u8 rfpath, enum MGN_RATE rate, u8 pwr_idx, struct txpwr_idx_comp *tic) { struct hal_spec_t *hal_spec = GET_HAL_SPEC(adapter); @@ -3823,17 +3967,19 @@ void dump_tx_power_idx_value(void *sel, _adapter *adapter, u8 rfpath, enum MGN_R if (tic->utarget == hal_spec->txgi_max) { RTW_PRINT_SEL(sel, "%4c %9s %uT %s %3u(0x%02x)" - " %4d ((%4d %3d %5d) %4d %4d) %3d %3d\n" + " %4d ((%4d %3d %5d) %4d %4d %4d) %3d %3d %3d\n" , rf_path_char(rfpath), MGN_RATE_STR(rate), tic->ntx_idx + 1 , tmp_str, pwr_idx, pwr_idx - , tic->base, tic->by_rate, tic->btc, tic->extra, tic->limit, tic->ulimit + , tic->base, tic->by_rate, tic->btc, tic->extra, tic->rlimit, tic->limit, tic->ulimit + , tic->tpc , tic->tpt, tic->dpd); } else { RTW_PRINT_SEL(sel, "%4c %9s %uT %s %3u(0x%02x)" - " %4d (%4d %4d %4d) %3d %3d\n" + " %4d (%4d %4d %4d %4d) %3d %3d %3d\n" , rf_path_char(rfpath), MGN_RATE_STR(rate), tic->ntx_idx + 1 , tmp_str, pwr_idx, pwr_idx - , tic->base, tic->utarget, tic->limit, tic->ulimit + , tic->base, tic->utarget, tic->rlimit, tic->limit, tic->ulimit + , tic->tpc , tic->tpt, tic->dpd); } } @@ -3859,15 +4005,17 @@ void dump_tx_power_idx_title(void *sel, _adapter *adapter, enum channel_width bw if (!phy_is_txpwr_user_target_specified(adapter)) { RTW_PRINT_SEL(sel, "%-4s %-9s %2s %-6s %-3s%6s" - " = %-4s + min((%-4s + %-3s + %-5s), %-4s, %-4s) + %-3s + %-3s\n" + " = %-4s + min((%-4s + %-3s + %-5s), %-4s, %-4s, %-4s) + %-3s + %-3s + %-3s\n" , "path", "rate", "", "dBm", "idx", "" - , "base", "byr", "btc", "extra", "lmt", "ulmt" + , "base", "byr", "btc", "extra", "rlmt", "lmt", "ulmt" + , "tpc" , "tpt", "dpd"); } else { RTW_PRINT_SEL(sel, "%-4s %-9s %2s %-6s %-3s%6s" - " = %-4s + min(%-4s, %-4s, %-4s) + %-3s + %-3s\n" + " = %-4s + min(%-4s, %-4s, %-4s, %-4s) + %-3s + %-3s + %-3s\n" , "path", "rate", "", "dBm", "idx", "" - , "base", "utgt", "lmt", "ulmt" + , "base", "utgt", "rlmt", "lmt", "ulmt" + , "tpc" , "tpt", "dpd"); } } @@ -3915,49 +4063,62 @@ void dump_tx_power_idx(void *sel, _adapter *adapter, enum channel_width bw, u8 c } void dump_txpwr_total_dbm_value(void *sel, _adapter *adapter, enum MGN_RATE rate, u8 ntx_idx - , s16 target, s16 byr, s16 btc, s16 extra, s16 lmt, s16 ulmt) + , s16 target, s16 byr, s16 btc, s16 extra, s16 rlmt, s16 lmt, s16 ulmt, s16 tpc) { char target_str[8]; char byr_str[8]; char btc_str[8]; char extra_str[8]; + char rlmt_str[8]; char lmt_str[8]; char ulmt_str[8]; + char tpc_str[8]; txpwr_mbm_get_dbm_str(target, 0, target_str, 8); txpwr_mbm_get_dbm_str(byr, 0, byr_str, 8); txpwr_mbm_get_dbm_str(btc, 0, btc_str, 8); txpwr_mbm_get_dbm_str(extra, 0, extra_str, 8); + txpwr_mbm_get_dbm_str(rlmt, 0, rlmt_str, 8); txpwr_mbm_get_dbm_str(lmt, 0, lmt_str, 8); txpwr_mbm_get_dbm_str(ulmt, 0, ulmt_str, 8); + txpwr_mbm_get_dbm_str(tpc, 0, tpc_str, 8); - RTW_PRINT_SEL(sel, "%9s %uT %s = ((%s %s %s), %s, %s)\n" + RTW_PRINT_SEL(sel, "%9s %uT %s = ((%s %s %s), %s, %s, %s) %s\n" , MGN_RATE_STR(rate), ntx_idx + 1 - , target_str, byr_str, btc_str, extra_str, lmt_str, ulmt_str); + , target_str, byr_str, btc_str, extra_str, rlmt_str, lmt_str, ulmt_str, tpc_str); } void dump_txpwr_total_dbm_value_utgt(void *sel, _adapter *adapter, enum MGN_RATE rate, u8 ntx_idx - , s16 target, s16 utgt, s16 lmt, s16 ulmt) + , s16 target, s16 utgt, s16 rlmt, s16 lmt, s16 ulmt, s16 tpc) { char target_str[8]; char utgt_str[8]; + char rlmt_str[8]; char lmt_str[8]; char ulmt_str[8]; + char tpc_str[8]; txpwr_mbm_get_dbm_str(target, 0, target_str, 8); txpwr_mbm_get_dbm_str(utgt, 0, utgt_str, 8); + txpwr_mbm_get_dbm_str(rlmt, 0, rlmt_str, 8); txpwr_mbm_get_dbm_str(lmt, 0, lmt_str, 8); txpwr_mbm_get_dbm_str(ulmt, 0, ulmt_str, 8); + txpwr_mbm_get_dbm_str(tpc, 0, tpc_str, 8); - RTW_PRINT_SEL(sel, "%9s %uT %s = (%s, %s, %s)\n" + RTW_PRINT_SEL(sel, "%9s %uT %s = (%s, %s, %s, %s) %s\n" , MGN_RATE_STR(rate), ntx_idx + 1 - , target_str, utgt_str, lmt_str, ulmt_str); + , target_str, utgt_str, rlmt_str, lmt_str, ulmt_str, tpc_str); } void dump_txpwr_total_dbm_title(void *sel, _adapter *adapter, enum channel_width bw, u8 cch, u8 opch) { + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + char antenna_gain_str[8]; u8 cch_20, cch_40, cch_80; + txpwr_mbm_get_dbm_str(rfctl->antenna_gain, 0, antenna_gain_str, 8); + RTW_PRINT_SEL(sel, "antenna_gain:%s\n", antenna_gain_str); + cch_80 = bw == CHANNEL_WIDTH_80 ? cch : 0; cch_40 = bw == CHANNEL_WIDTH_40 ? cch : 0; cch_20 = bw == CHANNEL_WIDTH_20 ? cch : 0; @@ -3974,11 +4135,11 @@ void dump_txpwr_total_dbm_title(void *sel, _adapter *adapter, enum channel_width _RTW_PRINT_SEL(sel, ", cch20:%u\n", cch_20); if (!phy_is_txpwr_user_target_specified(adapter)) { - RTW_PRINT_SEL(sel, "%-9s %2s %-6s = min((%-6s + %-6s + %-6s), %-6s, %-6s)\n" - , "rate", "", "target", "byr", "btc", "extra", "lmt", "ulmt"); + RTW_PRINT_SEL(sel, "%-9s %2s %-6s = min((%-6s + %-6s + %-6s), %-6s, %-6s, %-6s) + %-6s\n" + , "rate", "", "target", "byr", "btc", "extra", "rlmt", "lmt", "ulmt", "tpc"); } else { - RTW_PRINT_SEL(sel, "%-9s %2s %-6s = min(%-6s, %-6s, %-6s)\n" - , "rate", "", "target", "utgt", "lmt", "ulmt"); + RTW_PRINT_SEL(sel, "%-9s %2s %-6s = min(%-6s, %-6s, %-6s, %-6s) + %-6s\n" + , "rate", "", "target", "utgt", "rlmt", "lmt", "ulmt", "tpc"); } } @@ -4003,11 +4164,15 @@ void dump_txpwr_total_dbm_by_rs(void *sel, _adapter *adapter, u8 rs, enum channe for (i = 0; i < rates_by_sections[rs].rate_num; i++) { struct txpwr_idx_comp tic; - s16 target, byr, btc, extra, utgt, lmt, ulmt; + s16 target, byr, tpc, btc, extra, utgt, rlmt, lmt, ulmt; u8 tx_num; - target = phy_get_txpwr_total_mbm(adapter, rs, rates_by_sections[rs].rates[i], bw, cch, opch, &tic); + target = phy_get_txpwr_total_mbm(adapter, rs, rates_by_sections[rs].rates[i], bw, cch, opch, 0, 0, &tic); tx_num = tic.ntx_idx + 1; + if (tic.rlimit == hal_spec->txgi_max) + rlmt = UNSPECIFIED_MBM; + else + rlmt = ((tic.rlimit * MBM_PDBM) / hal_spec->txgi_pdbm) + mb_of_ntx(tx_num); if (tic.limit == hal_spec->txgi_max) lmt = UNSPECIFIED_MBM; else @@ -4016,17 +4181,18 @@ void dump_txpwr_total_dbm_by_rs(void *sel, _adapter *adapter, u8 rs, enum channe ulmt = UNSPECIFIED_MBM; else ulmt = ((tic.ulimit * MBM_PDBM) / hal_spec->txgi_pdbm) + mb_of_ntx(tx_num); + tpc = (tic.tpc * MBM_PDBM) / hal_spec->txgi_pdbm; if (tic.utarget == hal_spec->txgi_max) { byr = ((tic.by_rate * MBM_PDBM) / hal_spec->txgi_pdbm) + mb_of_ntx(tx_num); btc = (tic.btc * MBM_PDBM) / hal_spec->txgi_pdbm; extra = (tic.extra * MBM_PDBM) / hal_spec->txgi_pdbm; dump_txpwr_total_dbm_value(sel, adapter, rates_by_sections[rs].rates[i], tic.ntx_idx - , target, byr, btc, extra, lmt, ulmt); + , target, byr, btc, extra, rlmt, lmt, ulmt, tpc); } else { utgt = ((tic.utarget * MBM_PDBM) / hal_spec->txgi_pdbm) + mb_of_ntx(tx_num); dump_txpwr_total_dbm_value_utgt(sel, adapter, rates_by_sections[rs].rates[i], tic.ntx_idx - , target, utgt, lmt, ulmt); + , target, utgt, rlmt, lmt, ulmt, tpc); } } } @@ -4040,15 +4206,18 @@ void dump_txpwr_total_dbm(void *sel, _adapter *adapter, enum channel_width bw, u for (rs = CCK; rs < RATE_SECTION_NUM; rs++) dump_txpwr_total_dbm_by_rs(sel, adapter, rs, bw, cch, opch); } +#endif bool phy_is_tx_power_limit_needed(_adapter *adapter) { +#if CONFIG_TXPWR_LIMIT HAL_DATA_TYPE *hal_data = GET_HAL_DATA(adapter); struct registry_priv *regsty = dvobj_to_regsty(adapter_to_dvobj(adapter)); if (regsty->RegEnableTxPowerLimit == 1 || (regsty->RegEnableTxPowerLimit == 2 && hal_data->EEPROMRegulatory == 1)) return _TRUE; +#endif return _FALSE; } @@ -4111,6 +4280,7 @@ exit: return ret; } +#if CONFIG_TXPWR_LIMIT static u8 rtw_hex_setting_buf[RTW_HEXFILE_LEN]; static int rtw_config_tx_powerlimit_from_hex(PADAPTER Adapter, const char *path) { @@ -4139,9 +4309,12 @@ static int rtw_config_tx_powerlimit_from_hex(PADAPTER Adapter, const char *path) i += 5; while (i < len) { if (j < sec_2) { - i += (rtw_hex_setting_buf[i] + 1); + if(rtw_hex_setting_buf[i]) + i += (rtw_hex_setting_buf[i] + 2); + else + i += (rtw_hex_setting_buf[i] + 1); } else if (j >= sec_2 && j < sec_3) { - i += 3; + i += 4; } else { if (i + 5 >= len) return -1; @@ -4208,6 +4381,7 @@ post_hdl: exit: return ret; } +#endif /* CONFIG_TXPWR_LIMIT */ void phy_load_tx_power_ext_info(_adapter *adapter, u8 chk_file) { @@ -4223,20 +4397,25 @@ void phy_load_tx_power_ext_info(_adapter *adapter, u8 chk_file) phy_load_tx_power_by_rate(adapter, chk_file); /* power limit */ +#if CONFIG_TXPWR_LIMIT if (phy_is_tx_power_limit_needed(adapter)) phy_load_tx_power_limit(adapter, chk_file); +#endif } inline void phy_reload_tx_power_ext_info(_adapter *adapter) { phy_load_tx_power_ext_info(adapter, 1); + op_class_pref_apply_regulatory(adapter, REG_TXPWR_CHANGE); } inline void phy_reload_default_tx_power_ext_info(_adapter *adapter) { phy_load_tx_power_ext_info(adapter, 0); + op_class_pref_apply_regulatory(adapter, REG_TXPWR_CHANGE); } +#ifdef CONFIG_PROC_DEBUG void dump_tx_power_ext_info(void *sel, _adapter *adapter) { struct registry_priv *regsty = adapter_to_regsty(adapter); @@ -4350,7 +4529,7 @@ void dump_tx_power_by_rate(void *sel, _adapter *adapter) /* dump power by rate in db */ for (n = rate_num - 1; n >= 0; n--) { - by_rate = PHY_GetTxPowerByRate(adapter, band, path, rs, rates_by_sections[rs].rates[n]); + by_rate = phy_get_txpwr_by_rate(adapter, band, path, rs, rates_by_sections[rs].rates[n]); if (by_rate % hal_spec->txgi_pdbm) { _RTW_PRINT_SEL(sel, "%2d.%d ", by_rate / hal_spec->txgi_pdbm , (by_rate % hal_spec->txgi_pdbm) * 100 / hal_spec->txgi_pdbm); @@ -4364,7 +4543,7 @@ void dump_tx_power_by_rate(void *sel, _adapter *adapter) /* dump power by rate in offset */ for (n = rate_num - 1; n >= 0; n--) { - by_rate = PHY_GetTxPowerByRate(adapter, band, path, rs, rates_by_sections[rs].rates[n]); + by_rate = phy_get_txpwr_by_rate(adapter, band, path, rs, rates_by_sections[rs].rates[n]); base = phy_get_target_txpwr(adapter, band, path, rs); _RTW_PRINT_SEL(sel, "%3d ", by_rate - base); } @@ -4374,7 +4553,7 @@ void dump_tx_power_by_rate(void *sel, _adapter *adapter) } } } - +#endif /* * phy file path is stored in global char array rtw_phy_para_file_path * need to care about racing @@ -5235,6 +5414,7 @@ PHY_ConfigRFWithTxPwrTrackParaFile( return rtStatus; } +#if CONFIG_TXPWR_LIMIT #ifndef DBG_TXPWR_LMT_FILE_PARSE #define DBG_TXPWR_LMT_FILE_PARSE 0 @@ -5368,7 +5548,7 @@ phy_ParsePowerLimitTableFile( u32 i = 0, forCnt = 0; char *szLine, *ptmp; char band[10], bandwidth[10], rateSection[10], ntx[10], colNumBuf[10]; - char **regulation = NULL; + char **lmt_names = NULL; u8 colNum = 0; if (Adapter->registrypriv.RegDecryptCustomFile == 1) @@ -5473,9 +5653,9 @@ phy_ParsePowerLimitTableFile( if (DBG_TXPWR_LMT_FILE_PARSE) RTW_PRINT("[%s][%s][%s][%s] column num:%d\n", band, bandwidth, rateSection, ntx, colNum); - regulation = (char **)rtw_zmalloc(sizeof(char *) * colNum); - if (!regulation) { - RTW_ERR("Regulation alloc fail\n"); + lmt_names = (char **)rtw_zmalloc(sizeof(char *) * colNum); + if (!lmt_names) { + RTW_ERR("lmt_names alloc fail\n"); goto exit; } @@ -5490,20 +5670,20 @@ phy_ParsePowerLimitTableFile( while (szLine[i] != ' ' && szLine[i] != '\t' && szLine[i] != '\0') i++; - regulation[forCnt] = (char *)rtw_malloc(i - i_ns + 1); - if (!regulation[forCnt]) { - RTW_ERR("Regulation alloc fail\n"); + lmt_names[forCnt] = (char *)rtw_malloc(i - i_ns + 1); + if (!lmt_names[forCnt]) { + RTW_ERR("lmt_name alloc fail\n"); goto exit; } - _rtw_memcpy(regulation[forCnt], szLine + i_ns, i - i_ns); - regulation[forCnt][i - i_ns] = '\0'; + _rtw_memcpy(lmt_names[forCnt], szLine + i_ns, i - i_ns); + lmt_names[forCnt][i - i_ns] = '\0'; } if (DBG_TXPWR_LMT_FILE_PARSE) { RTW_PRINT("column name:"); for (forCnt = 0; forCnt < colNum; ++forCnt) - _RTW_PRINT(" %s", regulation[forCnt]); + _RTW_PRINT(" %s", lmt_names[forCnt]); _RTW_PRINT("\n"); } @@ -5520,15 +5700,15 @@ phy_ParsePowerLimitTableFile( if (strncmp((u8 *)(szLine + i), "END", 3) == 0) { loadingStage = LD_STAGE_TAB_DEFINE; - if (regulation) { + if (lmt_names) { for (forCnt = 0; forCnt < colNum; ++forCnt) { - if (regulation[forCnt]) { - rtw_mfree(regulation[forCnt], strlen(regulation[forCnt]) + 1); - regulation[forCnt] = NULL; + if (lmt_names[forCnt]) { + rtw_mfree(lmt_names[forCnt], strlen(lmt_names[forCnt]) + 1); + lmt_names[forCnt] = NULL; } } - rtw_mfree((u8 *)regulation, sizeof(char *) * colNum); - regulation = NULL; + rtw_mfree((u8 *)lmt_names, sizeof(char *) * colNum); + lmt_names = NULL; } colNum = 0; continue; @@ -5615,7 +5795,7 @@ phy_ParsePowerLimitTableFile( } /* store the power limit value */ - phy_set_tx_power_limit(pDM_Odm, (u8 *)regulation[forCnt], (u8 *)band, + phy_set_tx_power_limit(pDM_Odm, (u8 *)lmt_names[forCnt], (u8 *)band, (u8 *)bandwidth, (u8 *)rateSection, (u8 *)ntx, (u8 *)channel, (u8 *)powerLimit); } @@ -5625,15 +5805,15 @@ phy_ParsePowerLimitTableFile( rtStatus = _SUCCESS; exit: - if (regulation) { + if (lmt_names) { for (forCnt = 0; forCnt < colNum; ++forCnt) { - if (regulation[forCnt]) { - rtw_mfree(regulation[forCnt], strlen(regulation[forCnt]) + 1); - regulation[forCnt] = NULL; + if (lmt_names[forCnt]) { + rtw_mfree(lmt_names[forCnt], strlen(lmt_names[forCnt]) + 1); + lmt_names[forCnt] = NULL; } } - rtw_mfree((u8 *)regulation, sizeof(char *) * colNum); - regulation = NULL; + rtw_mfree((u8 *)lmt_names, sizeof(char *) * colNum); + lmt_names = NULL; } RTW_INFO("%s return %d\n", __func__, rtStatus); @@ -5685,6 +5865,7 @@ PHY_ConfigRFWithPowerLimitTableParaFile( return rtStatus; } +#endif /* CONFIG_TXPWR_LIMIT */ void phy_free_filebuf_mask(_adapter *padapter, u8 mask) { @@ -5739,6 +5920,36 @@ inline void phy_free_filebuf(_adapter *padapter) #endif +/* +* TX power limit of regulatory without HAL consideration +* Return value in unit of TX Gain Index +* hal_spec.txgi_max means unspecified +*/ +s8 phy_get_txpwr_regd_lmt(_adapter *adapter, struct hal_spec_t *hal_spec, u8 cch, enum channel_width bw, u8 ntx_idx) +{ + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + HAL_DATA_TYPE *hal_data = GET_HAL_DATA(adapter); + s16 total_mbm = UNSPECIFIED_MBM; + s8 lmt; + + if ((adapter->registrypriv.RegEnableTxPowerLimit == 2 && hal_data->EEPROMRegulatory != 1) || + adapter->registrypriv.RegEnableTxPowerLimit == 0) + goto exit; + +#ifdef CONFIG_REGD_SRC_FROM_OS + if (rfctl->regd_src == REGD_SRC_OS) + total_mbm = rtw_os_get_total_txpwr_regd_lmt_mbm(adapter, cch, bw); +#endif + +exit: + if (total_mbm != UNSPECIFIED_MBM) + lmt = (total_mbm - mb_of_ntx(ntx_idx + 1) - rfctl->antenna_gain) * hal_spec->txgi_pdbm / MBM_PDBM; + else + lmt = hal_spec->txgi_max; + + return lmt; +} + /* * check if user specified mbm is valid */ @@ -5770,6 +5981,7 @@ bool phy_is_txpwr_user_target_specified(_adapter *adapter) */ s8 phy_get_txpwr_user_target(_adapter *adapter, struct hal_spec_t *hal_spec, u8 ntx_idx) { + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); s16 total_mbm = UNSPECIFIED_MBM; s8 target; @@ -5777,7 +5989,7 @@ s8 phy_get_txpwr_user_target(_adapter *adapter, struct hal_spec_t *hal_spec, u8 total_mbm = rtw_cfg80211_dev_get_total_txpwr_target_mbm(adapter_to_dvobj(adapter)); #endif if (total_mbm != UNSPECIFIED_MBM) - target = (total_mbm - mb_of_ntx(ntx_idx + 1)) * hal_spec->txgi_pdbm / MBM_PDBM; + target = (total_mbm - mb_of_ntx(ntx_idx + 1) - rfctl->antenna_gain) * hal_spec->txgi_pdbm / MBM_PDBM; else target = hal_spec->txgi_max; @@ -5790,6 +6002,7 @@ s8 phy_get_txpwr_user_target(_adapter *adapter, struct hal_spec_t *hal_spec, u8 */ s8 phy_get_txpwr_user_lmt(_adapter *adapter, struct hal_spec_t *hal_spec, u8 ntx_idx) { + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); s16 total_mbm = UNSPECIFIED_MBM; s8 lmt; @@ -5797,32 +6010,69 @@ s8 phy_get_txpwr_user_lmt(_adapter *adapter, struct hal_spec_t *hal_spec, u8 ntx total_mbm = rtw_cfg80211_dev_get_total_txpwr_lmt_mbm(adapter_to_dvobj(adapter)); #endif if (total_mbm != UNSPECIFIED_MBM) - lmt = (total_mbm - mb_of_ntx(ntx_idx + 1)) * hal_spec->txgi_pdbm / MBM_PDBM; + lmt = (total_mbm - mb_of_ntx(ntx_idx + 1) - rfctl->antenna_gain) * hal_spec->txgi_pdbm / MBM_PDBM; else lmt = hal_spec->txgi_max; return lmt; } +/* +* Return value in unit of TX Gain Index +* 0 means unspecified +*/ +s8 phy_get_txpwr_tpc(_adapter *adapter, struct hal_spec_t *hal_spec) +{ + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + u16 cnst = 0; + + if (rfctl->tpc_mode == TPC_MODE_MANUAL) + cnst = rfctl->tpc_manual_constraint * hal_spec->txgi_pdbm / MBM_PDBM; + + return -cnst; +} + +void dump_txpwr_tpc_settings(void *sel, _adapter *adapter) +{ + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + + if (rfctl->tpc_mode == TPC_MODE_DISABLE) + RTW_PRINT_SEL(sel, "mode:DISABLE(%d)\n", rfctl->tpc_mode); + else if (rfctl->tpc_mode == TPC_MODE_MANUAL) { + RTW_PRINT_SEL(sel, "mode:MANUAL(%d)\n", rfctl->tpc_mode); + RTW_PRINT_SEL(sel, "constraint:%d (mB)\n", rfctl->tpc_manual_constraint); + } +} + +void dump_txpwr_antenna_gain(void *sel, _adapter *adapter) +{ + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + + RTW_PRINT_SEL(sel, "%d (mBi)\n", rfctl->antenna_gain); +} + /* * Return value in unit of TX Gain Index */ s8 phy_get_txpwr_target(_adapter *adapter, u8 rfpath, RATE_SECTION rs, u8 rate, u8 ntx_idx - , enum channel_width bw, BAND_TYPE band, u8 cch, u8 opch, struct txpwr_idx_comp *tic) + , enum channel_width bw, BAND_TYPE band, u8 cch, u8 opch, bool reg_max, struct txpwr_idx_comp *tic) { HAL_DATA_TYPE *hal_data = GET_HAL_DATA(adapter); struct hal_spec_t *hal_spec = GET_HAL_SPEC(adapter); s8 target, by_rate = 0, btc_diff = 0, extra = 0; - s8 lmt, utgt, ulmt; + s8 lmt, rlmt, utgt, ulmt; + s8 tpc = 0; - lmt = utgt = ulmt = hal_spec->txgi_max; + rlmt = lmt = utgt = ulmt = hal_spec->txgi_max; if (band != BAND_ON_2_4G && IS_CCK_RATE(rate)) goto exit; - utgt = phy_get_txpwr_user_target(adapter, hal_spec, ntx_idx); - if (utgt != hal_spec->txgi_max) - goto get_lmt; + if (!reg_max) { + utgt = phy_get_txpwr_user_target(adapter, hal_spec, ntx_idx); + if (utgt != hal_spec->txgi_max) + goto get_lmt; + } #ifdef CONFIG_RTL8812A if (IS_HARDWARE_TYPE_8812(adapter) @@ -5830,33 +6080,44 @@ s8 phy_get_txpwr_target(_adapter *adapter, u8 rfpath, RATE_SECTION rs, u8 rate, by_rate = phy_get_target_txpwr(adapter, band, rfpath, rs); else #endif - by_rate = PHY_GetTxPowerByRate(adapter, band, rfpath, rs, rate); + by_rate = phy_get_txpwr_by_rate(adapter, band, rfpath, rs, rate); if (by_rate == hal_spec->txgi_max) by_rate = 0; #ifdef CONFIG_BT_COEXIST - if (hal_data->EEPROMBluetoothCoexist == _TRUE) - btc_diff = -(rtw_btcoex_query_reduced_wl_pwr_lvl(adapter) * hal_spec->txgi_pdbm); + if (!reg_max) { + if (hal_data->EEPROMBluetoothCoexist == _TRUE) + btc_diff = -(rtw_btcoex_query_reduced_wl_pwr_lvl(adapter) * hal_spec->txgi_pdbm); + } #endif extra = rtw_hal_get_txpwr_target_extra_bias(adapter, rfpath, rs, rate, bw, band, cch); get_lmt: - lmt = phy_get_txpwr_lmt_sub_chs(adapter, NULL, band, bw, rfpath, rate, ntx_idx, cch, opch); - ulmt = phy_get_txpwr_user_lmt(adapter, hal_spec, ntx_idx); + rlmt = phy_get_txpwr_regd_lmt(adapter, hal_spec, cch, bw, ntx_idx); + lmt = phy_get_txpwr_lmt_sub_chs(adapter, NULL, band, bw, rfpath, rate, ntx_idx, cch, opch, reg_max); + if (!reg_max) + ulmt = phy_get_txpwr_user_lmt(adapter, hal_spec, ntx_idx); /* TODO: limit from outer source, ex: 11d */ + if (!reg_max) + tpc = phy_get_txpwr_tpc(adapter, hal_spec); + exit: if (utgt != hal_spec->txgi_max) target = utgt; else target = by_rate + btc_diff + extra; + if (target > rlmt) + target = rlmt; if (target > lmt) target = lmt; if (target > ulmt) target = ulmt; + target += tpc; + if (tic) { tic->target = target; if (utgt == hal_spec->txgi_max) { @@ -5865,8 +6126,10 @@ exit: tic->extra = extra; } tic->utarget = utgt; + tic->rlimit = rlmt; tic->limit = lmt; tic->ulimit = ulmt; + tic->tpc = tpc; } return target; @@ -5921,7 +6184,7 @@ s8 phy_get_tssi_txpwr_by_rate_ref(_adapter *adapter, enum rf_path path s8 pwr_idx; pwr_idx = phy_get_txpwr_target(adapter, path, HT_1SS, MGN_MCS7 - , ntx_idx, bw, band, cch, opch, NULL); + , ntx_idx, bw, band, cch, opch, 0, NULL); pwr_idx += phy_get_txpwr_amends(adapter, path, HT_1SS, MGN_MCS7 , ntx_idx, bw, band, cch, NULL); @@ -5944,7 +6207,7 @@ u8 hal_com_get_txpwr_idx(_adapter *adapter, enum rf_path rfpath u8 ntx_idx = phy_get_current_tx_num(adapter, rate); /* target */ - rate_target = phy_get_txpwr_target(adapter, rfpath, rs, rate, ntx_idx, bw, band, cch, opch, tic); + rate_target = phy_get_txpwr_target(adapter, rfpath, rs, rate, ntx_idx, bw, band, cch, opch, 0, tic); /* amends */ rate_amends = phy_get_txpwr_amends(adapter, rfpath, rs, rate, ntx_idx, bw, band, cch, tic); @@ -5969,6 +6232,8 @@ u8 hal_com_get_txpwr_idx(_adapter *adapter, enum rf_path rfpath tic->by_rate -= rs_target; else tic->utarget -= rs_target; + if (tic->rlimit != hal_spec->txgi_max) + tic->rlimit -= rs_target; if (tic->limit != hal_spec->txgi_max) tic->limit -= rs_target; if (tic->ulimit != hal_spec->txgi_max) @@ -5986,11 +6251,16 @@ u8 hal_com_get_txpwr_idx(_adapter *adapter, enum rf_path rfpath * 3. amends diff (per rate) * base is selected that power index of MCS7 == halrf_get_tssi_codeword_for_txindex() */ +#if defined(CONFIG_RTL8822C) || defined(CONFIG_RTL8814B) s8 mcs7_idx; mcs7_idx = phy_get_tssi_txpwr_by_rate_ref(adapter, rfpath, bw, cch, opch); base = halrf_get_tssi_codeword_for_txindex(adapter_to_phydm(adapter)) - mcs7_idx; power_idx = base + rate_target + rate_amends; +#else + base = 0; + power_idx = rate_target + rate_amends; +#endif } break; #endif @@ -6015,39 +6285,64 @@ u8 hal_com_get_txpwr_idx(_adapter *adapter, enum rf_path rfpath return power_idx; } -/* get txpowr in mBm for single path */ -s16 phy_get_txpwr_single_mbm(_adapter *adapter, u8 rfpath, RATE_SECTION rs, u8 rate - , enum channel_width bw, u8 cch, u8 opch, struct txpwr_idx_comp *tic) +static s16 phy_get_txpwr_mbm(_adapter *adapter, u8 rfpath, RATE_SECTION rs, u8 rate + , enum channel_width bw, u8 cch, u8 opch, bool total, bool reg_max, bool eirp, struct txpwr_idx_comp *tic) { struct hal_spec_t *hal_spec = GET_HAL_SPEC(adapter); + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); BAND_TYPE band = cch <= 14 ? BAND_ON_2_4G : BAND_ON_5G; - u8 ntx_idx = phy_get_current_tx_num(adapter, rate); - s16 val; + u8 ntx_idx_max, ntx_idx, i; + s16 val, max = UNSPECIFIED_MBM; + + if (reg_max) { + ntx_idx_max = phy_get_capable_tx_num(adapter, rate); + ntx_idx = rate_section_to_tx_num(rs); + if (ntx_idx > ntx_idx_max) { + rtw_warn_on(1); + return 0; + } + } else + ntx_idx_max = ntx_idx = phy_get_current_tx_num(adapter, rate); + + for (i = 0; ntx_idx + i <= ntx_idx_max; i++) { + val = phy_get_txpwr_target(adapter, rfpath, rs, rate, ntx_idx, bw, band, cch, opch, reg_max, tic); + val = (val * MBM_PDBM) / hal_spec->txgi_pdbm; + if (total) + val += mb_of_ntx(ntx_idx + 1); + if (eirp) + val += rfctl->antenna_gain; + + if (max == UNSPECIFIED_MBM || max < val) + max = val; + } - val = phy_get_txpwr_target(adapter, rfpath, rs, rate, ntx_idx, bw, band, cch, opch, tic); - val = (val * MBM_PDBM) / hal_spec->txgi_pdbm; if (tic) tic->ntx_idx = ntx_idx; - return val; + if (max == UNSPECIFIED_MBM) { + rtw_warn_on(1); + max = 0; + } + return max; +} + +/* get txpowr in mBm for single path */ +s16 phy_get_txpwr_single_mbm(_adapter *adapter, u8 rfpath, RATE_SECTION rs, u8 rate + , enum channel_width bw, u8 cch, u8 opch, bool reg_max, bool eirp, struct txpwr_idx_comp *tic) +{ + return phy_get_txpwr_mbm(adapter, rfpath, rs, rate, bw, cch, opch, 0, reg_max, eirp, tic); } /* get txpowr in mBm with effect of N-TX */ s16 phy_get_txpwr_total_mbm(_adapter *adapter, RATE_SECTION rs, u8 rate - , enum channel_width bw, u8 cch, u8 opch, struct txpwr_idx_comp *tic) + , enum channel_width bw, u8 cch, u8 opch, bool reg_max, bool eirp, struct txpwr_idx_comp *tic) { - s16 val; - u8 tx_num = phy_get_current_tx_num(adapter, rate) + 1; - /* assume all path have same txpower target */ - val = phy_get_txpwr_single_mbm(adapter, RF_PATH_A, rs, rate, bw, cch, opch, tic); - val += mb_of_ntx(tx_num); - - return val; + return phy_get_txpwr_mbm(adapter, RF_PATH_A, rs, rate, bw, cch, opch, 1, reg_max, eirp, tic); } static s16 _phy_get_txpwr_max_mbm(_adapter *adapter, s8 rfpath - , enum channel_width bw, u8 cch, u8 opch, u16 bmp_cck_ofdm, u32 bmp_ht, u64 bmp_vht) + , enum channel_width bw, u8 cch, u8 opch, u16 bmp_cck_ofdm, u32 bmp_ht, u64 bmp_vht, bool reg_max, bool eirp) { struct hal_spec_t *hal_spec = GET_HAL_SPEC(adapter); HAL_DATA_TYPE *hal_data = GET_HAL_DATA(adapter); @@ -6081,14 +6376,14 @@ static s16 _phy_get_txpwr_max_mbm(_adapter *adapter, s8 rfpath if (!(bmp_ht & BIT(hw_rate - DESC_RATEMCS0))) continue; } else if (IS_VHT_HRATE(hw_rate)) { - if (!(bmp_vht & BIT(hw_rate - DESC_RATEVHTSS1MCS0))) + if (!(bmp_vht & BIT_ULL(hw_rate - DESC_RATEVHTSS1MCS0))) continue; } if (rfpath < 0) /* total */ - mbm = phy_get_txpwr_total_mbm(adapter, rs, rates_by_sections[rs].rates[i], bw, cch, opch, NULL); + mbm = phy_get_txpwr_total_mbm(adapter, rs, rates_by_sections[rs].rates[i], bw, cch, opch, reg_max, eirp, NULL); else - mbm = phy_get_txpwr_single_mbm(adapter, rfpath, rs, rates_by_sections[rs].rates[i], bw, cch, opch, NULL); + mbm = phy_get_txpwr_single_mbm(adapter, rfpath, rs, rates_by_sections[rs].rates[i], bw, cch, opch, reg_max, eirp, NULL); if (max == UNSPECIFIED_MBM || mbm > max) max = mbm; @@ -6099,15 +6394,15 @@ static s16 _phy_get_txpwr_max_mbm(_adapter *adapter, s8 rfpath } s16 phy_get_txpwr_single_max_mbm(_adapter *adapter, u8 rfpath - , enum channel_width bw, u8 cch, u8 opch, u16 bmp_cck_ofdm, u32 bmp_ht, u64 bmp_vht) + , enum channel_width bw, u8 cch, u8 opch, u16 bmp_cck_ofdm, u32 bmp_ht, u64 bmp_vht, bool reg_max, bool eirp) { - return _phy_get_txpwr_max_mbm(adapter, rfpath, bw, cch, opch, bmp_cck_ofdm, bmp_ht, bmp_vht); + return _phy_get_txpwr_max_mbm(adapter, rfpath, bw, cch, opch, bmp_cck_ofdm, bmp_ht, bmp_vht, reg_max, eirp); } s16 phy_get_txpwr_total_max_mbm(_adapter *adapter - , enum channel_width bw, u8 cch, u8 opch, u16 bmp_cck_ofdm, u32 bmp_ht, u64 bmp_vht) + , enum channel_width bw, u8 cch, u8 opch, u16 bmp_cck_ofdm, u32 bmp_ht, u64 bmp_vht, bool reg_max, bool eirp) { - return _phy_get_txpwr_max_mbm(adapter, -1, bw, cch, opch, bmp_cck_ofdm, bmp_ht, bmp_vht); + return _phy_get_txpwr_max_mbm(adapter, -1, bw, cch, opch, bmp_cck_ofdm, bmp_ht, bmp_vht, reg_max, eirp); } s8 @@ -6120,7 +6415,7 @@ phy_get_tx_power_final_absolute_value(_adapter *adapter, u8 rfpath, u8 rate, s8 val; val = phy_get_txpwr_target(adapter, rfpath - , rs, rate, phy_get_current_tx_num(adapter, rate), bw, band, cch, 0, NULL); + , rs, rate, phy_get_current_tx_num(adapter, rate), bw, band, cch, 0, 0, NULL); val /= hal_spec->txgi_pdbm; diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/hal_dm.c b/drivers/net/wireless/realtek/rtl8822ce/hal/hal_dm.c old mode 100644 new mode 100755 index a3514e89..722ca8c4 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/hal_dm.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/hal_dm.c @@ -86,7 +86,8 @@ void rtw_hal_update_iqk_fw_offload_cap(_adapter *adapter) } } -#if ((RTL8822B_SUPPORT == 1) || (RTL8821C_SUPPORT == 1) || (RTL8814B_SUPPORT == 1) || (RTL8822C_SUPPORT == 1)) +#if ((RTL8822B_SUPPORT == 1) || (RTL8821C_SUPPORT == 1) || (RTL8814B_SUPPORT == 1) || (RTL8822C_SUPPORT == 1) \ + || (RTL8723F_SUPPORT == 1)) void rtw_phydm_iqk_trigger(_adapter *adapter) { struct dm_struct *p_dm_odm = adapter_to_phydm(adapter); @@ -95,7 +96,7 @@ void rtw_phydm_iqk_trigger(_adapter *adapter) u8 rfk_forbidden = _FALSE; halrf_cmn_info_set(p_dm_odm, HALRF_CMNINFO_RFK_FORBIDDEN, rfk_forbidden); -#if (RTL8822C_SUPPORT == 1) || (RTL8814B_SUPPORT == 1) +#if (RTL8822C_SUPPORT == 1) || (RTL8814B_SUPPORT == 1) || (RTL8723F_SUPPORT == 1) /* halrf_cmn_info_set(p_dm_odm, HALRF_CMNINFO_IQK_SEGMENT, segment); to do */ halrf_rf_k_connect_trigger(p_dm_odm, _TRUE, SEGMENT_FREE); #else @@ -106,6 +107,30 @@ void rtw_phydm_iqk_trigger(_adapter *adapter) } #endif +void rtw_phydm_iqk_trigger_all(_adapter *adapter) +{ + struct dm_struct *p_dm_odm = adapter_to_phydm(adapter); + u8 clear = _TRUE; + u8 segment = _FALSE; + u8 rfk_forbidden = _FALSE; + +#if ((RTL8822B_SUPPORT == 1) || (RTL8821C_SUPPORT == 1) || (RTL8814B_SUPPORT == 1) || (RTL8822C_SUPPORT == 1) \ + || (RTL8723F_SUPPORT == 1)) + halrf_cmn_info_set(p_dm_odm, HALRF_CMNINFO_RFK_FORBIDDEN, rfk_forbidden); +#if (RTL8822C_SUPPORT == 1) || (RTL8814B_SUPPORT == 1) || (RTL8723F_SUPPORT == 1) + /* halrf_cmn_info_set(p_dm_odm, HALRF_CMNINFO_IQK_SEGMENT, segment); to do */ + halrf_rf_k_connect_trigger(p_dm_odm, _TRUE, SEGMENT_FREE); +#else + /*segment = _rtw_phydm_iqk_segment_chk(adapter);*/ + halrf_cmn_info_set(p_dm_odm, HALRF_CMNINFO_IQK_SEGMENT, segment); + halrf_segment_iqk_trigger(p_dm_odm, clear, segment); +#endif /* (RTL8822C_SUPPORT == 1) || (RTL8814B_SUPPORT == 1) (RTL8723F_SUPPORT == 1) */ +#else + halrf_iqk_trigger(p_dm_odm, _FALSE); +#endif /* ((RTL8822B_SUPPORT == 1) || (RTL8821C_SUPPORT == 1) || (RTL8814B_SUPPORT == 1) || (RTL8822C_SUPPORT == 1)) + (RTL8723F_SUPPORT == 1) */ +} + void rtw_phydm_iqk_trigger_dbg(_adapter *adapter, bool recovery, bool clear, bool segment) { struct dm_struct *p_dm_odm = adapter_to_phydm(adapter); @@ -122,6 +147,19 @@ void rtw_phydm_lck_trigger(_adapter *adapter) halrf_lck_trigger(p_dm_odm); } + +void rtw_hal_phydm_cal_trigger(_adapter *adapter) +{ + struct dm_struct *p_dm_odm = adapter_to_phydm(adapter); + + rtw_ps_deny(adapter, PS_DENY_IOCTL); + LeaveAllPowerSaveModeDirect(adapter); + + rtw_phydm_iqk_trigger_all(adapter); + + rtw_ps_deny_cancel(adapter, PS_DENY_IOCTL); +} + #ifdef CONFIG_DBG_RF_CAL void rtw_hal_iqk_test(_adapter *adapter, bool recovery, bool clear, bool segment) { @@ -318,10 +356,9 @@ void Init_ODM_ComInfo(_adapter *adapter) PHAL_DATA_TYPE pHalData = GET_HAL_DATA(adapter); struct dm_struct *pDM_Odm = &(pHalData->odmpriv); struct pwrctrl_priv *pwrctl = adapter_to_pwrctl(adapter); + struct rf_ctl_t *rfctl = dvobj_to_rfctl(dvobj); int i; - pHalData->shift_rxagc = 0; - /*phydm_op_mode could be change for different scenarios: ex: SoftAP - PHYDM_BALANCE_MODE*/ pHalData->phydm_op_mode = PHYDM_PERFORMANCE_MODE;/*Service one device*/ rtw_odm_init_ic_type(adapter); @@ -369,10 +406,8 @@ void Init_ODM_ComInfo(_adapter *adapter) /* 1 ============== End of BoardType ============== */ } - rtw_hal_set_odm_var(adapter, HAL_ODM_REGULATION, NULL, _TRUE); - #ifdef CONFIG_DFS_MASTER - odm_cmn_info_init(pDM_Odm, ODM_CMNINFO_DFS_REGION_DOMAIN, adapter->registrypriv.dfs_region_domain); + rtw_odm_update_dfs_region(dvobj); odm_cmn_info_hook(pDM_Odm, ODM_CMNINFO_DFS_MASTER_ENABLE, &(adapter_to_rfctl(adapter)->radar_detect_enabled)); #endif @@ -398,13 +433,16 @@ void Init_ODM_ComInfo(_adapter *adapter) odm_cmn_info_init(pDM_Odm, ODM_CMNINFO_EFUSE0X3D7, pHalData->efuse0x3d7); odm_cmn_info_init(pDM_Odm, ODM_CMNINFO_EFUSE0X3D8, pHalData->efuse0x3d8); + odm_cmn_info_init(pDM_Odm, ODM_CMNINFO_EN_NBI_DETECT, adapter->registrypriv.nbi_en); + /* waiting for PhyDMV034 support*/ odm_cmn_info_hook(pDM_Odm, ODM_CMNINFO_MANUAL_SUPPORTABILITY, &(adapter->registrypriv.phydm_ability)); + /*Add by YuChen for adaptivity init*/ - odm_cmn_info_hook(pDM_Odm, ODM_CMNINFO_ADAPTIVITY, &(adapter->registrypriv.adaptivity_en)); - phydm_adaptivity_info_init(pDM_Odm, PHYDM_ADAPINFO_CARRIER_SENSE_ENABLE, (adapter->registrypriv.adaptivity_mode != 0) ? TRUE : FALSE); + odm_cmn_info_hook(pDM_Odm, ODM_CMNINFO_ADAPTIVITY, &rfctl->adaptivity_en); phydm_adaptivity_info_init(pDM_Odm, PHYDM_ADAPINFO_TH_L2H_INI, adapter->registrypriv.adaptivity_th_l2h_ini); phydm_adaptivity_info_init(pDM_Odm, PHYDM_ADAPINFO_TH_EDCCA_HL_DIFF, adapter->registrypriv.adaptivity_th_edcca_hl_diff); + rtw_odm_adaptivity_update(dvobj); /*halrf info init*/ halrf_cmn_info_init(pDM_Odm, HALRF_CMNINFO_EEPROM_THERMAL_VALUE, pHalData->eeprom_thermal_meter); @@ -603,7 +641,7 @@ void rtw_hal_turbo_edca(_adapter *adapter) return; } - if ((pregpriv->wifi_spec == 1)) { /* || (pmlmeinfo->HT_enable == 0)) */ + if (pregpriv->wifi_spec == 1) { /* || (pmlmeinfo->HT_enable == 0)) */ precvpriv->is_any_non_be_pkts = _FALSE; return; } @@ -934,11 +972,6 @@ void SetHalODMVar( case HAL_ODM_WIFI_DISPLAY_STATE: odm_cmn_info_update(podmpriv, ODM_CMNINFO_WIFI_DISPLAY, bSet); break; - case HAL_ODM_REGULATION: - /* used to auto enable/disable adaptivity by SD7 */ - phydm_adaptivity_info_update(podmpriv, PHYDM_ADAPINFO_DOMAIN_CODE_2G, 0); - phydm_adaptivity_info_update(podmpriv, PHYDM_ADAPINFO_DOMAIN_CODE_5G, 0); - break; case HAL_ODM_INITIAL_GAIN: { u8 rx_gain = *((u8 *)(pValue1)); /*printk("rx_gain:%x\n",rx_gain);*/ @@ -1038,8 +1071,7 @@ void GetHalODMVar( #ifdef RTW_HALMAC #include "../hal_halmac.h" #endif - -int rtw_phydm_rfe_ctrl_gpio( +bool rtw_phydm_rfe_ctrl_gpio( _adapter *adapter, u8 gpio_num ) @@ -1048,8 +1080,8 @@ int rtw_phydm_rfe_ctrl_gpio( if(rtw_halmac_rfe_ctrl_cfg(adapter_to_dvobj(adapter), gpio_num)) return _TRUE; else - return _FALSE; #endif/*RTW_HALMAC*/ + return _FALSE; } enum hal_status @@ -1176,6 +1208,7 @@ rtw_phydm_cfg_phy_para( void rtw_phydm_wd_lps_lclk_hdl(_adapter *adapter) { struct mlme_priv *pmlmepriv = &adapter->mlmepriv; + struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(adapter); PHAL_DATA_TYPE pHalData = GET_HAL_DATA(adapter); struct sta_priv *pstapriv = &adapter->stapriv; struct sta_info *psta = NULL; @@ -1197,6 +1230,14 @@ void rtw_phydm_wd_lps_lclk_hdl(_adapter *adapter) odm_cmn_info_update(&pHalData->odmpriv, ODM_CMNINFO_LINK, is_linked); phydm_watchdog_lps_32k(&pHalData->odmpriv); + +#ifdef CONFIG_LPS_PG + if (pwrpriv->lps_level == LPS_PG) { + if (rtw_hal_set_lps_pg_info_cmd(adapter) == _FAIL) + RTW_INFO(FUNC_ADPT_FMT": Send PG H2C command Fail! \n", + FUNC_ADPT_ARG(adapter)); + } +#endif /* CONFIG_LPS_PG */ } void rtw_phydm_watchdog_in_lps_lclk(_adapter *adapter) @@ -1396,14 +1437,7 @@ void rtw_phydm_trx_cfg(_adapter *adapter, bool tx_1ss) } #endif - -/* -* trx_mode init - 8822B / 8822C / 8192F -* 1ssNTx - 8192E / 8812A / 8822B / 8822C / 8192F -* Path-diversity - 8822B / 8822C / 8192F -* PHYDM API - phydm_api_trx_mode -*/ -static u8 rtw_phydm_config_trx_path(_adapter *adapter) +u8 rtw_hal_runtime_trx_path_decision(_adapter *adapter) { HAL_DATA_TYPE *hal_data = GET_HAL_DATA(adapter); enum bb_path txpath; @@ -1462,13 +1496,6 @@ static u8 rtw_phydm_config_trx_path(_adapter *adapter) } else txpath_1ss = txpath; - if (phydm_api_trx_mode(adapter_to_phydm(adapter), txpath, rxpath, txpath_1ss) == FALSE) { - RTW_ERR("%s txpath=0x%x, rxpath=0x%x, txpath_1ss=0x%x fail\n", __func__ - , txpath, rxpath, txpath_1ss); - rtw_warn_on(1); - goto exit; - } - if (hal_data->txpath_nss[0] != txpath_1ss) { hal_data->txpath_nss[0] = txpath_1ss; if (txpath_1ss == BB_PATH_AUTO) @@ -1484,23 +1511,14 @@ static u8 rtw_phydm_config_trx_path(_adapter *adapter) } #elif defined(CONFIG_RTL8814B) { - if (config_phydm_trx_mode_8814b(adapter_to_phydm(adapter), txpath, rxpath) == FALSE) { - RTW_ERR("%s txpath=0x%x, rxpath=0x%x fail\n", __func__ - , txpath, rxpath); - rtw_warn_on(1); - goto exit; - } - /* 8814B is always full-TX */ tx_path_nss_set_full_tx(hal_data->txpath_nss, hal_data->txpath_num_nss, txpath); } #elif defined(CONFIG_RTL8812A) || defined(CONFIG_RTL8192E) { #ifdef CONFIG_RTW_TX_NPATH_EN - if (adapter->registrypriv.tx_npath == 1) { - phydm_tx_2path(adapter_to_phydm(adapter)); + if (adapter->registrypriv.tx_npath == 1) tx_path_nss_set_full_tx(hal_data->txpath_nss, hal_data->txpath_num_nss, txpath); - } #endif } #endif @@ -1514,6 +1532,61 @@ exit: return rst; } +/* +* trx_mode init - 8822B / 8822C / 8192F +* 1ssNTx - 8192E / 8812A / 8822B / 8822C / 8192F +* Path-diversity - 8822B / 8822C / 8192F +* PHYDM API - phydm_api_trx_mode +*/ +static u8 rtw_phydm_config_trx_path(_adapter *adapter) +{ + u8 rst = _SUCCESS; + +#if defined(CONFIG_RTL8192F) || defined(CONFIG_RTL8822B) ||defined(CONFIG_RTL8822C) +{ + HAL_DATA_TYPE *hal_data = GET_HAL_DATA(adapter); + enum bb_path txpath = hal_data->txpath; + enum bb_path rxpath = hal_data->rxpath; + enum bb_path txpath_1ss = hal_data->txpath_nss[0]; + + if (phydm_api_trx_mode(adapter_to_phydm(adapter), txpath, rxpath, txpath_1ss) == FALSE) { + RTW_ERR("%s txpath=0x%x, rxpath=0x%x, txpath_1ss=0x%x fail\n", __func__ + , txpath, rxpath, txpath_1ss); + rtw_warn_on(1); + rst = _FAIL; + } +} +#elif defined(CONFIG_RTL8814B) +{ + HAL_DATA_TYPE *hal_data = GET_HAL_DATA(adapter); + enum bb_path txpath = hal_data->txpath; + enum bb_path rxpath = hal_data->rxpath; + + if (txpath == BB_PATH_ABCD && rxpath == BB_PATH_ABCD) + rst = config_phydm_trx_mode_8814b(adapter_to_phydm(adapter), txpath, rxpath); + else + rst = config_phydm_trx_mode_ext_8814b(adapter_to_phydm(adapter), txpath, + rxpath, + txpath, txpath, txpath); + if (rst == FALSE) { + RTW_ERR("%s txpath=0x%x, rxpath=0x%x fail\n", __func__ + , txpath, rxpath); + rtw_warn_on(1); + rst = _FAIL; + } +} +#elif defined(CONFIG_RTL8812A) || defined(CONFIG_RTL8192E) +{ + HAL_DATA_TYPE *hal_data = GET_HAL_DATA(adapter); + + if (hal_data->txpath_num_nss[0] == 2) + phydm_tx_2path(adapter_to_phydm(adapter)); +} +#endif + + return rst; +} + void rtw_phydm_init(_adapter *adapter) { PHAL_DATA_TYPE hal_data = GET_HAL_DATA(adapter); @@ -1780,6 +1853,36 @@ void rtw_phydm_pwr_tracking_directly(_adapter *adapter) } #endif +void rtw_phydm_update_ap_vendor_ie(_adapter *adapter) +{ + u8 i; + _adapter *iface; + struct mlme_ext_priv *pmlmeext ; + struct mlme_ext_info *pmlmeinfo ; + struct dm_struct *phydm = adapter_to_phydm(adapter); + struct dvobj_priv *dvobj = adapter_to_dvobj(adapter); + bool HUAWEI_HWID = FALSE; + bool ATHEROS_HWID = FALSE; + + for (i = 0; i < dvobj->iface_nums; i++){ + iface = dvobj->padapters[i]; + if (iface!= NULL) { + pmlmeext = &(iface->mlmeextpriv); + pmlmeinfo = &(pmlmeext->mlmext_info); + if( pmlmeinfo->assoc_AP_vendor == HT_IOT_PEER_ATHEROS){ + HUAWEI_HWID = TRUE; + ATHEROS_HWID = TRUE; + goto exit; + } + } + } + +exit: + RTW_INFO("%s ODM_CMNINFO_HUAWEI_HWID:%d ATHEROS_HWID:%d\n", __func__, HUAWEI_HWID, ATHEROS_HWID); + odm_cmn_info_update(phydm, ODM_CMNINFO_HUAWEI_HWID, HUAWEI_HWID); + odm_cmn_info_update(phydm, ODM_CMNINFO_ATHEROS_HWID, ATHEROS_HWID); +} + void rtw_phydm_watchdog(_adapter *adapter, bool in_lps) { u8 bLinked = _FALSE; diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/hal_dm.h b/drivers/net/wireless/realtek/rtl8822ce/hal/hal_dm.h index d7792818..e7bb7696 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/hal_dm.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/hal_dm.h @@ -48,12 +48,14 @@ void rtw_dyn_soml_config(_adapter *adapter); #endif void rtw_phydm_set_rrsr(_adapter *adapter, u32 rrsr_value, bool write_rrsr); void rtw_phydm_dyn_rrsr_en(_adapter *adapter, bool en_rrsr); +void rtw_phydm_update_ap_vendor_ie(_adapter *adapter); void rtw_phydm_watchdog(_adapter *adapter, bool in_lps); void rtw_hal_update_iqk_fw_offload_cap(_adapter *adapter); void dump_sta_info(void *sel, struct sta_info *psta); void dump_sta_traffic(void *sel, _adapter *adapter, struct sta_info *psta); +void rtw_hal_phydm_cal_trigger(_adapter *adapter); #ifdef CONFIG_DBG_RF_CAL void rtw_hal_iqk_test(_adapter *adapter, bool recovery, bool clear, bool segment); void rtw_hal_lck_test(_adapter *adapter); @@ -94,7 +96,8 @@ enum phy_cnt { CRC32_ERROR_CCK, }; u32 rtw_phydm_get_phy_cnt(_adapter *adapter, enum phy_cnt cnt); -#if ((RTL8822B_SUPPORT == 1) || (RTL8821C_SUPPORT == 1) || (RTL8814B_SUPPORT == 1) || (RTL8822C_SUPPORT == 1)) +#if ((RTL8822B_SUPPORT == 1) || (RTL8821C_SUPPORT == 1) || (RTL8814B_SUPPORT == 1) || (RTL8822C_SUPPORT == 1) \ + || (RTL8723F_SUPPORT == 1)) void rtw_phydm_iqk_trigger(_adapter *adapter); #endif void rtw_phydm_read_efuse(_adapter *adapter); @@ -114,5 +117,6 @@ void rtw_phydm_pwr_tracking_directly(_adapter *adapter); #ifdef CONFIG_CTRL_TXSS_BY_TP void rtw_phydm_trx_cfg(_adapter *adapter, bool tx_1ss); #endif -int rtw_phydm_rfe_ctrl_gpio(_adapter *adapter, u8 gpio_num); +u8 rtw_hal_runtime_trx_path_decision(_adapter *adapter); +bool rtw_phydm_rfe_ctrl_gpio(_adapter *adapter, u8 gpio_num); #endif /* __HAL_DM_H__ */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/hal_dm_acs.c b/drivers/net/wireless/realtek/rtl8822ce/hal/hal_dm_acs.c index 5c19d999..0fa34146 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/hal_dm_acs.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/hal_dm_acs.c @@ -87,8 +87,16 @@ u8 rtw_phydm_nhm_ratio(_adapter *adapter) { struct dm_struct *phydm = adapter_to_phydm(adapter); - return phydm_cmn_info_query(phydm, (enum phydm_info_query) PHYDM_INFO_NHM_RATIO); + return phydm_cmn_info_query(phydm, (enum phydm_info_query) PHYDM_INFO_NHM_ENV_RATIO); } + +u8 rtw_phydm_nhm_noise_pwr(_adapter *adapter) +{ + struct dm_struct *phydm = adapter_to_phydm(adapter); + + return phydm_cmn_info_query(phydm, (enum phydm_info_query) PHYDM_INFO_NHM_PWR); +} + void rtw_acs_reset(_adapter *adapter) { HAL_DATA_TYPE *hal_data = GET_HAL_DATA(adapter); @@ -203,7 +211,8 @@ void rtw_acs_get_rst(_adapter *adapter) (rpt.clm_rpt_stamp == hal_data->acs.trig_rpt.clm_rpt_stamp) && (rpt.nhm_rpt_stamp == hal_data->acs.trig_rpt.nhm_rpt_stamp)){ hal_data->acs.clm_ratio[chan_idx] = rpt.clm_ratio; - hal_data->acs.nhm_ratio[chan_idx] = rpt.nhm_ratio; + hal_data->acs.nhm_ratio[chan_idx] = rpt.nhm_env_ratio; + hal_data->acs.env_mntr_rpt[chan_idx] = (rpt.nhm_noise_pwr -100); _rtw_memcpy(&hal_data->acs.nhm[chan_idx][0], rpt.nhm_result, NHM_RPT_NUM); /*RTW_INFO("[ACS] get_rst success (rst = 0x%02x, clm_stamp:%d:%d, nhm_stamp:%d:%d)\n", @@ -228,6 +237,8 @@ void rtw_acs_get_rst(_adapter *adapter) #ifdef CONFIG_RTW_ACS_DBG RTW_INFO("[ACS] Result CH:%d, CLM:%d NHM:%d\n", cur_chan, hal_data->acs.clm_ratio[chan_idx], hal_data->acs.nhm_ratio[chan_idx]); + RTW_INFO("[ACS] Result NHM(dBm):%d\n", + hal_data->acs.env_mntr_rpt[chan_idx] ); #endif } @@ -246,9 +257,9 @@ void _rtw_phydm_acs_select_best_chan(_adapter *adapter) for (ch_idx = 0; ch_idx < max_chan_nums; ch_idx++) { if (pbss_nums[ch_idx]) - pinterference_time[ch_idx] = (pclm_ratio[ch_idx] / 2) + pnhm_ratio[ch_idx]; + pinterference_time[ch_idx] = (pclm_ratio[ch_idx] / 2) + (pnhm_ratio[ch_idx] / 2); else - pinterference_time[ch_idx] = pclm_ratio[ch_idx] + pnhm_ratio[ch_idx]; + pinterference_time[ch_idx] = (pclm_ratio[ch_idx] / 3) + ((pnhm_ratio[ch_idx] * 2) / 3); if (rtw_get_ch_num_by_idx(adapter, ch_idx) < 14) { if (pinterference_time[ch_idx] < min_itf_24g) { @@ -358,6 +369,18 @@ u8 rtw_acs_get_nhm_ratio_by_ch_num(_adapter *adapter, u8 chan) return hal_data->acs.nhm_ratio[chan_idx]; } +u8 rtw_acs_get_nhm_noise_pwr_by_ch_idx(_adapter *adapter, u8 ch_idx) +{ + HAL_DATA_TYPE *hal_data = GET_HAL_DATA(adapter); + + if (ch_idx >= MAX_CHANNEL_NUM) { + RTW_ERR("%s [ACS] ch_idx(%d) is invalid\n", __func__, ch_idx); + return 0; + } + + return hal_data->acs.env_mntr_rpt[ch_idx]; +} + u8 rtw_acs_get_num_ratio_by_ch_idx(_adapter *adapter, u8 ch_idx) { HAL_DATA_TYPE *hal_data = GET_HAL_DATA(adapter); @@ -429,6 +452,36 @@ void rtw_acs_update_current_info(_adapter *adapter) rtw_acs_current_info_dump(RTW_DBGDUMP, adapter); #endif } +/* +rsni +para1:rcpi=>RSSI in dbm +para2:anpi=>nhm in dbm +range:0~255 +255: is not available (defined by 802.11k spec) + +*/ +u8 rtw_acs_get_rsni(_adapter *adapter, s8 rcpi, u8 ch) +{ + struct dm_struct *phydm = adapter_to_phydm(adapter); + HAL_DATA_TYPE *hal_data = GET_HAL_DATA(adapter); + u8 rsni = 255; + s8 anpi = 0; + int chan_idx = -1; + + if(ch == 0) + goto exit; + + chan_idx = rtw_chset_search_ch(adapter_to_chset(adapter), ch); + if(chan_idx == -1) + goto exit; + + anpi = rtw_acs_get_nhm_noise_pwr_by_ch_idx(adapter, chan_idx); + if((rcpi != 0) && (anpi != 0)) + rsni = phydm_env_mntr_get_802_11_k_rsni(phydm, rcpi, anpi); + RTW_DBG("[ACS][RSNI]ch=%d chan_idx=%d RSNI=%u RSSI=%d NHM=%d\n", ch, chan_idx, rsni,rcpi, anpi); +exit: + return rsni; +} #endif /*CONFIG_RTW_ACS*/ #ifdef CONFIG_BACKGROUND_NOISE_MONITOR diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/hal_dm_acs.h b/drivers/net/wireless/realtek/rtl8822ce/hal/hal_dm_acs.h index 871c1448..f9620011 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/hal_dm_acs.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/hal_dm_acs.h @@ -80,6 +80,7 @@ struct auto_chan_sel { bool triggered; u8 clm_ratio[MAX_CHANNEL_NUM]; u8 nhm_ratio[MAX_CHANNEL_NUM]; + s8 env_mntr_rpt[MAX_CHANNEL_NUM]; /*unit:dbm*/ #if (RTK_ACS_VERSION == 3) u8 nhm[MAX_CHANNEL_NUM][NHM_RPT_NUM]; #endif @@ -124,8 +125,13 @@ void rtw_acs_adv_reset(_adapter *adapter); u8 rtw_acs_get_clm_ratio_by_ch_num(_adapter *adapter, u8 chan); u8 rtw_acs_get_clm_ratio_by_ch_idx(_adapter *adapter, u8 ch_idx); u8 rtw_acs_get_nhm_ratio_by_ch_num(_adapter *adapter, u8 chan); +u8 rtw_acs_get_nhm_noise_pwr_by_ch_idx(_adapter *adapter, u8 ch_idx); u8 rtw_acs_get_num_ratio_by_ch_idx(_adapter *adapter, u8 ch_idx); +u8 rtw_phydm_clm_ratio(_adapter *adapter); +u8 rtw_phydm_nhm_ratio(_adapter *adapter); +u8 rtw_phydm_nhm_noise_pwr(_adapter *adapter); + void rtw_acs_reset(_adapter *adapter); void rtw_acs_trigger(_adapter *adapter, u16 scan_time_ms, u8 scan_chan, enum NHM_PID pid); void rtw_acs_get_rst(_adapter *adapter); @@ -137,7 +143,7 @@ void rtw_acs_current_info_dump(void *sel, _adapter *adapter); void rtw_acs_start(_adapter *adapter); void rtw_acs_stop(_adapter *adapter); - +u8 rtw_acs_get_rsni(_adapter *adapter, s8 rcpi, u8 ch); #endif /*CONFIG_RTW_ACS*/ #ifdef CONFIG_BACKGROUND_NOISE_MONITOR diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/hal_halmac.c b/drivers/net/wireless/realtek/rtl8822ce/hal/hal_halmac.c index cb9252a2..2636ddf7 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/hal_halmac.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/hal_halmac.c @@ -1,6 +1,6 @@ /****************************************************************************** * - * Copyright(c) 2015 - 2019 Realtek Corporation. + * Copyright(c) 2015 - 2021 Realtek Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms of version 2 of the GNU General Public License as @@ -728,8 +728,6 @@ static u8 _halmac_event_indication(void *p, enum halmac_feature_id feature_id, u8 *buf, u32 size) { struct dvobj_priv *d; - PADAPTER adapter; - PHAL_DATA_TYPE hal; struct halmac_indicator *tbl, *indicator; struct submit_ctx *sctx; u32 cpsz; @@ -737,8 +735,6 @@ static u8 _halmac_event_indication(void *p, enum halmac_feature_id feature_id, d = (struct dvobj_priv *)p; - adapter = dvobj_get_primary_adapter(d); - hal = GET_HAL_DATA(adapter); tbl = d->hmpriv.indicator; /* Filter(Skip) middle status indication */ @@ -1209,8 +1205,8 @@ void rtw_halmac_get_version(char *str, u32 len) if (status != HALMAC_RET_SUCCESS) return; - rtw_sprintf(str, len, "V%d_%02d_%02d", - ver.major_ver, ver.prototype_ver, ver.minor_ver); + rtw_sprintf(str, len, "V%d_%02d_%02d_%02d", + ver.major_ver, ver.prototype_ver, ver.minor_ver, HALMAC_PATCH_VER); } int rtw_halmac_init_adapter(struct dvobj_priv *d, struct halmac_platform_api *pf_api) @@ -1283,9 +1279,13 @@ int rtw_halmac_init_adapter(struct dvobj_priv *d, struct halmac_platform_api *pf /* Convert clock speed unit to MHz from Hz */ info.clock_speed = RTW_DIV_ROUND_UP(rtw_sdio_get_clock(d), 1000000); info.block_size = rtw_sdio_get_block_size(d); - RTW_DBG("%s: SDIO ver=%u clock=%uMHz blk_size=%u bytes\n", + if (d->hmpriv.sdio_io_indir == 2) + info.io_indir_flag = 0; + else + info.io_indir_flag = 1; /* Default enable indirect I/O */ + RTW_DBG("%s: SDIO ver=%u clock=%uMHz blk_size=%u bytes, io_indir=%u\n", __FUNCTION__, info.spec_ver+2, info.clock_speed, - info.block_size); + info.block_size, info.io_indir_flag); status = api->halmac_sdio_hw_info(halmac, &info); if (status != HALMAC_RET_SUCCESS) { RTW_ERR("%s: halmac_sdio_hw_info fail!(status=%d)\n", @@ -2388,59 +2388,58 @@ out: */ int rtw_halmac_set_aid(struct dvobj_priv *d, enum _hw_port hwport, u16 aid) { + int err = -1; +#if 0 struct halmac_adapter *halmac; struct halmac_api *api; enum halmac_portid port; enum halmac_ret_status status; - int err = -1; halmac = dvobj_to_halmac(d); api = HALMAC_GET_API(halmac); port = _hw_port_drv2halmac(hwport); -#if 0 status = api->halmac_cfg_aid(halmac, port, aid); if (status != HALMAC_RET_SUCCESS) goto out; #else -{ struct _ADAPTER *a; u32 addr; u16 val; a = dvobj_get_primary_adapter(d); - switch (port) { - case 0: + switch (hwport) { + case HW_PORT0: addr = REG_BCN_PSR_RPT; val = rtw_read16(a, addr); val = BIT_SET_PS_AID_0(val, aid); rtw_write16(a, addr, val); break; - case 1: + case HW_PORT1: addr = REG_BCN_PSR_RPT1; val = rtw_read16(a, addr); val = BIT_SET_PS_AID_1(val, aid); rtw_write16(a, addr, val); break; - case 2: + case HW_PORT2: addr = REG_BCN_PSR_RPT2; val = rtw_read16(a, addr); val = BIT_SET_PS_AID_2(val, aid); rtw_write16(a, addr, val); break; - case 3: + case HW_PORT3: addr = REG_BCN_PSR_RPT3; val = rtw_read16(a, addr); val = BIT_SET_PS_AID_3(val, aid); rtw_write16(a, addr, val); break; - case 4: + case HW_PORT4: addr = REG_BCN_PSR_RPT4; val = rtw_read16(a, addr); val = BIT_SET_PS_AID_4(val, aid); @@ -2450,7 +2449,6 @@ int rtw_halmac_set_aid(struct dvobj_priv *d, enum _hw_port hwport, u16 aid) default: goto out; } -} #endif err = 0; @@ -2764,6 +2762,21 @@ int rtw_halmac_poweron(struct dvobj_priv *d) * Work around for warm reboot but device not power off, * but it would also fall into this case when auto power on is enabled. */ +#ifdef CONFIG_NARROWBAND_SUPPORTING + { + struct registry_priv *regsty = dvobj_to_regsty(d); + u32 bw_type; + + if (regsty->rtw_nb_config == RTW_NB_CONFIG_WIDTH_10) + bw_type = HALMAC_BW_10; + else if (regsty->rtw_nb_config == RTW_NB_CONFIG_WIDTH_5) + bw_type = HALMAC_BW_5; + else + bw_type = HALMAC_BW_20; + + api->halmac_set_hw_value(dvobj_to_halmac(d), HALMAC_HW_BANDWIDTH, &bw_type); + } +#endif _power_switch(halmac, api, HALMAC_MAC_POWER_OFF); status = _power_switch(halmac, api, HALMAC_MAC_POWER_ON); RTW_WARN("%s: Power state abnormal, try to recover...%s\n", @@ -2868,13 +2881,19 @@ static enum halmac_drv_rsvd_pg_num _rsvd_page_num_drv2halmac(u16 num) return HALMAC_RSVD_PG_NUM64; if (num <= 128) return HALMAC_RSVD_PG_NUM128; + if (num <= 256) + return HALMAC_RSVD_PG_NUM256; + if (num <= 512) + return HALMAC_RSVD_PG_NUM512; + if (num <= 1024) + return HALMAC_RSVD_PG_NUM1024; - if (num > 256) + if (num > 1460) RTW_WARN("%s: Fail to allocate RSVD page(%d)!!" - " The MAX RSVD page number is 256...\n", + " The MAX RSVD page number is 1460...\n", __FUNCTION__, num); - return HALMAC_RSVD_PG_NUM256; + return HALMAC_RSVD_PG_NUM1460; } static u16 _rsvd_page_num_halmac2drv(enum halmac_drv_rsvd_pg_num rsvd_page_number) @@ -2910,6 +2929,18 @@ static u16 _rsvd_page_num_halmac2drv(enum halmac_drv_rsvd_pg_num rsvd_page_numbe case HALMAC_RSVD_PG_NUM256: num = 256; break; + + case HALMAC_RSVD_PG_NUM512: + num = 512; + break; + + case HALMAC_RSVD_PG_NUM1024: + num = 1024; + break; + + case HALMAC_RSVD_PG_NUM1460: + num = 1460; + break; } return num; @@ -3104,7 +3135,7 @@ static int _send_general_info(struct dvobj_priv *d) case HALMAC_RET_NO_DLFW: RTW_WARN("%s: halmac_send_general_info() fail because fw not dl!\n", __FUNCTION__); - /* go through */ + fallthrough; default: return -1; } @@ -3225,12 +3256,16 @@ static void _debug_dlfw_fail(struct dvobj_priv *d) static enum halmac_ret_status _enter_cpu_sleep_mode(struct dvobj_priv *d) { +#if defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) struct hal_com_data *hal; +#endif struct halmac_adapter *mac; struct halmac_api *api; +#if defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) hal = GET_HAL_DATA(dvobj_get_primary_adapter(d)); +#endif mac = dvobj_to_halmac(d); api = HALMAC_GET_API(mac); @@ -3447,8 +3482,6 @@ exit: static int init_mac_flow(struct dvobj_priv *d) { - PADAPTER p; - struct hal_com_data *hal; struct halmac_adapter *halmac; struct halmac_api *api; enum halmac_drv_rsvd_pg_num rsvd_page_number; @@ -3460,14 +3493,12 @@ static int init_mac_flow(struct dvobj_priv *d) int err, err_ret = -1; - p = dvobj_get_primary_adapter(d); - hal = GET_HAL_DATA(p); halmac = dvobj_to_halmac(d); api = HALMAC_GET_API(halmac); #ifdef CONFIG_SUPPORT_TRX_SHARED status = api->halmac_cfg_rxff_expand_mode(halmac, - _rtw_get_trx_share_mode(p)); + _rtw_get_trx_share_mode(dvobj_get_primary_adapter(d))); if (status != HALMAC_RET_SUCCESS) goto out; #endif @@ -3672,9 +3703,7 @@ int rtw_halmac_init_hal(struct dvobj_priv *d) */ int rtw_halmac_init_hal_fw(struct dvobj_priv *d, u8 *fw, u32 fwsize) { - RTW_INFO(" ====> %s\n", __func__); return _halmac_init_hal(d, fw, fwsize); - RTW_INFO(" %s <====\n", __func__); } /* @@ -4044,14 +4073,12 @@ int rtw_halmac_dlfw_from_file(struct dvobj_priv *d, u8 *fwpath) */ int rtw_halmac_phy_power_switch(struct dvobj_priv *d, u8 enable) { - PADAPTER adapter; struct halmac_adapter *halmac; struct halmac_api *api; enum halmac_ret_status status; u8 on; - adapter = dvobj_get_primary_adapter(d); halmac = dvobj_to_halmac(d); if (!halmac) return -1; @@ -4646,7 +4673,9 @@ _exit: int rtw_halmac_rx_agg_switch(struct dvobj_priv *d, u8 enable) { struct _ADAPTER *adapter; +#ifdef RTW_RX_AGGREGATION struct hal_com_data *hal; +#endif struct halmac_adapter *halmac; struct halmac_api *api; struct halmac_rxagg_cfg rxaggcfg; @@ -4654,7 +4683,9 @@ int rtw_halmac_rx_agg_switch(struct dvobj_priv *d, u8 enable) adapter = dvobj_get_primary_adapter(d); +#ifdef RTW_RX_AGGREGATION hal = GET_HAL_DATA(adapter); +#endif halmac = dvobj_to_halmac(d); api = HALMAC_GET_API(halmac); _rtw_memset((void *)&rxaggcfg, 0, sizeof(rxaggcfg)); @@ -5162,36 +5193,28 @@ void rtw_halmac_led_switch(struct dvobj_priv *d, u8 on) api->halmac_pinmux_wl_led_sw_ctrl(halmac, on); } -static int _gpio_cfg(struct dvobj_priv *d, enum halmac_gpio_func func, u8 enable) +static int _gpio_cfg(struct dvobj_priv *d, enum halmac_gpio_func gpio, u8 enable) { struct halmac_adapter *halmac; struct halmac_api *api; - u8 enable_org = 0; enum halmac_ret_status status; halmac = dvobj_to_halmac(d); api = HALMAC_GET_API(halmac); - api->halmac_pinmux_get_func(halmac, func, &enable_org); - if ((enable && enable_org) || (!enable && !enable_org)) { - RTW_INFO("%s: pinmux set GPIO func(%d) %s already done\n", - __FUNCTION__, func, enable?"enable":"disable"); - return 0; - } - if (enable) { - status = api->halmac_pinmux_set_func(halmac, func); + status = api->halmac_pinmux_set_func(halmac, gpio); if (status != HALMAC_RET_SUCCESS) { - RTW_ERR("%s: pinmux set GPIO func(%d) fail!(0x%x)\n", - __FUNCTION__, func, status); + RTW_ERR("%s: pinmux set GPIO(%d) fail!(0x%x)\n", + __FUNCTION__, gpio, status); return -1; } } else { - status = api->halmac_pinmux_free_func(halmac, func); + status = api->halmac_pinmux_free_func(halmac, gpio); if (status != HALMAC_RET_SUCCESS) { - RTW_ERR("%s: pinmux free GPIO func(%d) fail!(0x%x)\n", - __FUNCTION__, func, status); + RTW_ERR("%s: pinmux free GPIO(%d) fail!(0x%x)\n", + __FUNCTION__, gpio, status); return -1; } } @@ -5251,7 +5274,7 @@ static enum halmac_gpio_func _gpio_to_func_for_rfe_ctrl(u8 gpio) * @d: struct dvobj_priv* * @gpio: gpio number * - * Configure pinmux to enable RFE control GPIO for BB. + * Configure pinmux to enable RFE control GPIO. * * Return 0 for OK, otherwise fail. */ @@ -5324,7 +5347,7 @@ static int _halmac_scanoffload(struct dvobj_priv *d, u32 enable, u8 nlo, if (ssid) { if (ssid_len > sizeof(pnossid.SSID)) { RTW_ERR("%s: SSID length(%d) is too long(>%d)!!\n", - __FUNCTION__, ssid_len, sizeof(pnossid.SSID)); + __FUNCTION__, ssid_len, WLAN_SSID_MAXLEN); return -1; } @@ -5467,6 +5490,37 @@ int rtw_halmac_pno_scanoffload(struct dvobj_priv *d, u32 enable) #ifdef CONFIG_SDIO_HCI +/** + * rtw_halmac_preinit_sdio_io_indirect() - Enable indirect I/O or not + * @d: struct dvobj_priv* + * @enable: true: enable, false: disable + * + * Enable register access using direct I/O or indirect. This function should be + * called before rtw_halmac_init_adapter(), and the life cycle is the same as + * driver until removing driver. + * + * Return 0 for OK, otherwise fail. + */ +int rtw_halmac_preinit_sdio_io_indirect(struct dvobj_priv *d, bool enable) +{ + struct halmac_adapter *halmac; + struct halmacpriv *priv; + + + halmac = dvobj_to_halmac(d); + if (halmac) { + RTW_WARN("%s: illegal operation! " + "preinit function only could be called before init!\n", + __FUNCTION__); + return -1; + } + + priv = &d->hmpriv; + priv->sdio_io_indir = (enable ? 1 : 2); + + return 0; +} + /* * Description: * Update queue allocated page number to driver @@ -5480,7 +5534,6 @@ int rtw_halmac_pno_scanoffload(struct dvobj_priv *d, u32 enable) */ int rtw_halmac_query_tx_page_num(struct dvobj_priv *d) { - PADAPTER adapter; struct halmacpriv *hmpriv; struct halmac_adapter *halmac; struct halmac_api *api; @@ -5491,7 +5544,6 @@ int rtw_halmac_query_tx_page_num(struct dvobj_priv *d) u8 i; - adapter = dvobj_get_primary_adapter(d); hmpriv = &d->hmpriv; halmac = dvobj_to_halmac(d); api = HALMAC_GET_API(halmac); @@ -5717,18 +5769,16 @@ static inline enum halmac_usb_mode _usb_mode_drv2halmac(enum RTW_USB_SPEED usb_m u8 rtw_halmac_switch_usb_mode(struct dvobj_priv *d, enum RTW_USB_SPEED usb_mode) { - PADAPTER adapter; struct halmac_adapter *mac; struct halmac_api *api; enum halmac_ret_status status; enum halmac_usb_mode halmac_usb_mode; - adapter = dvobj_get_primary_adapter(d); + mac = dvobj_to_halmac(d); api = HALMAC_GET_API(mac); halmac_usb_mode = _usb_mode_drv2halmac(usb_mode); status = api->halmac_set_hw_value(mac, HALMAC_HW_USB_MODE, (void *)&halmac_usb_mode); - if (HALMAC_RET_SUCCESS != status) return _FAIL; diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/hal_halmac.h b/drivers/net/wireless/realtek/rtl8822ce/hal/hal_halmac.h index 03e351fa..41614139 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/hal_halmac.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/hal_halmac.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * Copyright(c) 2015 - 2019 Realtek Corporation. + * Copyright(c) 2015 - 2021 Realtek Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms of version 2 of the GNU General Public License as @@ -17,7 +17,11 @@ #include /* adapter_to_dvobj(), struct intf_hdl and etc. */ #include /* struct hal_spec_t */ +#ifdef CONFIG_HALMAC_RS +#include "halmac-rs/halmac_api.h" /* struct halmac_adapter* and etc. */ +#else /* !CONFIG_HALMAC_RS */ #include "halmac/halmac_api.h" /* struct halmac_adapter* and etc. */ +#endif /* !CONFIG_HALMAC_RS */ /* HALMAC Definition for Driver */ #define RTW_HALMAC_H2C_MAX_SIZE 8 @@ -116,6 +120,9 @@ int rtw_halmac_write32(struct intf_hdl *, u32 addr, u32 value); /* Software Information */ void rtw_halmac_get_version(char *str, u32 len); +/* Software setting before Initialization */ +int rtw_halmac_preinit_sdio_io_indirect(struct dvobj_priv *d, bool enable); + /* Software Initialization */ int rtw_halmac_init_adapter(struct dvobj_priv *d, struct halmac_platform_api *pf_api); int rtw_halmac_deinit_adapter(struct dvobj_priv *); diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/hal_intf.c b/drivers/net/wireless/realtek/rtl8822ce/hal/hal_intf.c old mode 100755 new mode 100644 index f6cd3ea3..8aa1341f --- a/drivers/net/wireless/realtek/rtl8822ce/hal/hal_intf.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/hal_intf.c @@ -36,14 +36,13 @@ const u32 _chip_type_to_odm_ic_type[] = { ODM_RTL8192F, ODM_RTL8822C, ODM_RTL8814B, + ODM_RTL8723F, 0, }; void rtw_hal_chip_configure(_adapter *padapter) { - RTW_INFO(" ====> %s\n", __func__); padapter->hal_func.intf_chip_configure(padapter); - RTW_INFO(" %s <====\n", __func__); } /* @@ -60,7 +59,6 @@ u8 rtw_hal_read_chip_info(_adapter *padapter) u8 hci_type = rtw_get_intf_type(padapter); systime start = rtw_get_current_time(); - RTW_INFO(" ====> %s\n", __func__); /* before access eFuse, make sure card enable has been called */ if ((hci_type == RTW_SDIO || hci_type == RTW_GSPI) && !rtw_is_hw_init_completed(padapter)) @@ -74,16 +72,13 @@ u8 rtw_hal_read_chip_info(_adapter *padapter) RTW_INFO("%s in %d ms\n", __func__, rtw_get_passing_time_ms(start)); - RTW_INFO(" %s <====\n", __func__); return rtn; } void rtw_hal_read_chip_version(_adapter *padapter) { - RTW_INFO(" ====> %s\n", __func__); padapter->hal_func.read_chip_version(padapter); rtw_odm_init_ic_type(padapter); - RTW_INFO(" %s <====\n", __func__); } static void rtw_init_wireless_mode(_adapter *padapter) @@ -92,13 +87,12 @@ static void rtw_init_wireless_mode(_adapter *padapter) struct hal_spec_t *hal_spec = GET_HAL_SPEC(padapter); if(hal_spec->proto_cap & PROTO_CAP_11B) proto_wireless_mode |= WIRELESS_11B; - + if(hal_spec->proto_cap & PROTO_CAP_11G) proto_wireless_mode |= WIRELESS_11G; -#ifdef CONFIG_80211AC_VHT + if(hal_spec->band_cap & BAND_CAP_5G) proto_wireless_mode |= WIRELESS_11A; -#endif #ifdef CONFIG_80211N_HT if(hal_spec->proto_cap & PROTO_CAP_11N) { @@ -143,7 +137,6 @@ void rtw_hal_def_value_init(_adapter *padapter) u8 rtw_hal_data_init(_adapter *padapter) { - RTW_INFO(" ====> %s\n", __func__); if (is_primary_adapter(padapter)) { padapter->hal_data_sz = sizeof(HAL_DATA_TYPE); padapter->HalData = rtw_zvmalloc(padapter->hal_data_sz); @@ -153,7 +146,6 @@ u8 rtw_hal_data_init(_adapter *padapter) } rtw_phydm_priv_init(padapter); } - RTW_INFO(" %s <====\n", __func__); return _SUCCESS; } @@ -260,6 +252,7 @@ void dump_hal_trx_mode(void *sel, _adapter *adapter) { struct registry_priv *regpriv = &adapter->registrypriv; PHAL_DATA_TYPE hal_data = GET_HAL_DATA(adapter); + int i; RTW_PRINT_SEL(sel, "trx_path_bmp:0x%02x(%s), NumTotalRFPath:%u, max_tx_cnt:%u\n" , hal_data->trx_path_bmp @@ -269,6 +262,9 @@ void dump_hal_trx_mode(void *sel, _adapter *adapter) ); RTW_PRINT_SEL(sel, "tx_nss:%u, rx_nss:%u\n" , hal_data->tx_nss, hal_data->rx_nss); + for (i = 0; i < hal_data->tx_nss; i++) + RTW_PRINT_SEL(sel, "txpath_cap_num_%uss:%u\n" + , i + 1, hal_data->txpath_cap_num_nss[i]); RTW_PRINT_SEL(sel, "\n"); dump_hal_runtime_trx_mode(sel, adapter); @@ -377,9 +373,9 @@ void _dump_trx_nss(void *sel, _adapter *adapter) struct registry_priv *regpriv = &adapter->registrypriv; struct hal_spec_t *hal_spec = GET_HAL_SPEC(adapter); - RTW_PRINT_SEL(sel, "[TRX_Nss] HALSPEC - tx_nss :%d, rx_nss:%d\n", hal_spec->tx_nss_num, hal_spec->rx_nss_num); - RTW_PRINT_SEL(sel, "[TRX_Nss] Registry - tx_nss :%d, rx_nss:%d\n", regpriv->tx_nss, regpriv->rx_nss); - RTW_PRINT_SEL(sel, "[TRX_Nss] HALDATA - tx_nss :%d, rx_nss:%d\n", GET_HAL_TX_NSS(adapter), GET_HAL_RX_NSS(adapter)); + RTW_PRINT_SEL(sel, "[TRX_Nss] HALSPEC - tx_nss:%d, rx_nss:%d\n", hal_spec->tx_nss_num, hal_spec->rx_nss_num); + RTW_PRINT_SEL(sel, "[TRX_Nss] Registry - tx_nss:%d, rx_nss:%d\n", regpriv->tx_nss, regpriv->rx_nss); + RTW_PRINT_SEL(sel, "[TRX_Nss] HALDATA - tx_nss:%d, rx_nss:%d\n", GET_HAL_TX_NSS(adapter), GET_HAL_RX_NSS(adapter)); } #define NSS_VALID(nss) (nss > 0) @@ -390,6 +386,7 @@ u8 rtw_hal_trxnss_init(_adapter *adapter) struct hal_spec_t *hal_spec = GET_HAL_SPEC(adapter); PHAL_DATA_TYPE hal_data = GET_HAL_DATA(adapter); enum rf_type rf_path = GET_HAL_RFPATH(adapter); + int i; hal_data->tx_nss = hal_spec->tx_nss_num; hal_data->rx_nss = hal_spec->rx_nss_num; @@ -401,6 +398,23 @@ u8 rtw_hal_trxnss_init(_adapter *adapter) hal_data->rx_nss = rtw_min(hal_data->rx_nss, regpriv->rx_nss); hal_data->rx_nss = rtw_min(hal_data->rx_nss, rf_type_to_rf_rx_cnt(rf_path)); + for (i = 0; i < 4; i++) { + if (hal_data->tx_nss < i + 1) + break; + + if (IS_HARDWARE_TYPE_8814B(adapter) /* 8814B is always full-TX */ + #ifdef CONFIG_RTW_TX_NPATH_EN + /* these IC is capable of full-TX when macro defined */ + || IS_HARDWARE_TYPE_8192E(adapter) || IS_HARDWARE_TYPE_8192F(adapter) + || IS_HARDWARE_TYPE_8812(adapter) || IS_HARDWARE_TYPE_8822B(adapter) + || IS_HARDWARE_TYPE_8822C(adapter) + #endif + ) + hal_data->txpath_cap_num_nss[i] = hal_data->max_tx_cnt; + else + hal_data->txpath_cap_num_nss[i] = i + 1; + } + if (1) _dump_trx_nss(RTW_DBGDUMP, adapter); @@ -697,11 +711,9 @@ void rtw_hal_enable_interrupt(_adapter *padapter) /* FOR SDIO & PCIE */ void rtw_hal_disable_interrupt(_adapter *padapter) { - RTW_INFO(" ====> %s\n", __func__); #if defined(CONFIG_PCI_HCI) || defined(CONFIG_SDIO_HCI) || defined (CONFIG_GSPI_HCI) padapter->hal_func.disable_interrupt(padapter); #endif /* #if defined(CONFIG_PCI_HCI) || defined (CONFIG_SDIO_HCI) || defined (CONFIG_GSPI_HCI) */ - RTW_INFO(" %s <====\n", __func__); } @@ -760,10 +772,8 @@ void rtw_hal_clear_interrupt(_adapter *padapter) #if defined(CONFIG_USB_HCI) || defined(CONFIG_PCI_HCI) u32 rtw_hal_inirp_init(_adapter *padapter) { - RTW_INFO(" ====> %s\n", __func__); if (is_primary_adapter(padapter)) return padapter->hal_func.inirp_init(padapter); - RTW_INFO(" %s <====\n", __func__); return _SUCCESS; } u32 rtw_hal_inirp_deinit(_adapter *padapter) @@ -843,6 +853,13 @@ u8 rtw_hal_intf_ps_func(_adapter *padapter, HAL_INTF_PS_FUNC efunc_id, u8 *val) return _FAIL; } +#ifdef CONFIG_RTW_MGMT_QUEUE +s32 rtw_hal_mgmt_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe) +{ + return padapter->hal_func.hal_mgmt_xmitframe_enqueue(padapter, pxmitframe); +} +#endif + s32 rtw_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe) { return padapter->hal_func.hal_xmitframe_enqueue(padapter, pxmitframe); @@ -858,9 +875,16 @@ s32 rtw_hal_xmit(_adapter *padapter, struct xmit_frame *pxmitframe) */ s32 rtw_hal_mgnt_xmit(_adapter *padapter, struct xmit_frame *pmgntframe) { +#ifdef CONFIG_RTW_MGMT_QUEUE + _irqL irqL; + struct xmit_priv *pxmitpriv = &(padapter->xmitpriv); +#endif s32 ret = _FAIL; update_mgntframe_attrib_addr(padapter, pmgntframe); +#ifdef CONFIG_RTW_MGMT_QUEUE + update_mgntframe_subtype(padapter, pmgntframe); +#endif #if defined(CONFIG_IEEE80211W) || defined(CONFIG_RTW_MESH) if ((!MLME_IS_MESH(padapter) && SEC_IS_BIP_KEY_INSTALLED(&padapter->securitypriv) == _TRUE) @@ -871,6 +895,25 @@ s32 rtw_hal_mgnt_xmit(_adapter *padapter, struct xmit_frame *pmgntframe) rtw_mgmt_xmitframe_coalesce(padapter, pmgntframe->pkt, pmgntframe); #endif +#if defined(CONFIG_AP_MODE) || defined(CONFIG_TDLS) +#ifdef CONFIG_RTW_MGMT_QUEUE + if (MLME_IS_AP(padapter) || MLME_IS_MESH(padapter)) { + _enter_critical_bh(&pxmitpriv->lock, &irqL); + ret = mgmt_xmitframe_enqueue_for_sleeping_sta(padapter, pmgntframe); + _exit_critical_bh(&pxmitpriv->lock, &irqL); + + #ifdef DBG_MGMT_QUEUE + if (ret == _TRUE) + RTW_INFO("%s doesn't be queued, dattrib->ra:"MAC_FMT" seq_num = %u, subtype = 0x%x\n", + __func__, MAC_ARG(pmgntframe->attrib.ra), pmgntframe->attrib.seqnum, pmgntframe->attrib.subtype); + #endif + + if (ret == RTW_QUEUE_MGMT) + return ret; + } +#endif +#endif + ret = padapter->hal_func.mgnt_xmit(padapter, pmgntframe); return ret; } @@ -1273,13 +1316,16 @@ s32 c2h_handler(_adapter *adapter, u8 id, u8 seq, u8 plen, u8 *payload) #if defined(CONFIG_TDLS) && defined(CONFIG_TDLS_CH_SW) case C2H_FW_CHNL_SWITCH_COMPLETE: +#ifndef CONFIG_TDLS_CH_SW_V2 rtw_tdls_chsw_oper_done(adapter); - break; - case C2H_BCN_EARLY_RPT: - rtw_tdls_ch_sw_back_to_base_chnl(adapter); +#endif break; #endif + case C2H_BCN_EARLY_RPT: + rtw_hal_bcn_early_rpt_c2h_handler(adapter); + break; + #ifdef CONFIG_MCC_MODE case C2H_MCC: rtw_hal_mcc_c2h_handler(adapter, plen, payload); @@ -1325,6 +1371,8 @@ s32 c2h_handler(_adapter *adapter, u8 id, u8 seq, u8 plen, u8 *payload) case C2H_EXTEND: sub_id = payload[0]; /* no handle, goto default */ + fallthrough; + /* fall through */ default: if (phydm_c2H_content_parsing(adapter_to_phydm(adapter), id, plen, payload) != TRUE) @@ -1373,11 +1421,6 @@ s32 rtw_hal_c2h_id_handle_directly(_adapter *adapter, u8 id, u8 seq, u8 plen, u8 } #endif /* !RTW_HALMAC */ -s32 rtw_hal_is_disable_sw_channel_plan(PADAPTER padapter) -{ - return GET_HAL_DATA(padapter)->bDisableSWChannelPlan; -} - #ifdef CONFIG_PROTSEL_MACSLEEP static s32 _rtw_hal_macid_sleep(_adapter *adapter, u8 macid, u8 sleep) { @@ -1668,6 +1711,170 @@ inline s32 rtw_hal_macid_wakeup_all_used(_adapter *adapter) return _rtw_hal_macid_bmp_sleep(adapter, &macid_ctl->used, 0); } +static s32 _rtw_hal_macid_drop(_adapter *adapter, u8 macid, u8 drop) +{ + struct macid_ctl_t *macid_ctl = adapter_to_macidctl(adapter); +#ifndef CONFIG_PROTSEL_MACSLEEP + u16 reg_drop = 0; +#else + u16 reg_drop_info = macid_ctl->reg_drop_info; + u16 reg_drop_ctrl = macid_ctl->reg_drop_ctrl; + const u32 sel_mask_sel = BIT(0) | BIT(1) | BIT(2); +#endif /* CONFIG_PROTSEL_MACSLEEP */ + u8 bit_shift; + u32 val32; + s32 ret = _FAIL; +/* some IC doesn't have this register */ +#ifndef REG_PKT_BUFF_ACCESS_CTRL +#define REG_PKT_BUFF_ACCESS_CTRL 0 +#endif + + if (macid >= macid_ctl->num) { + RTW_ERR(ADPT_FMT" %s invalid macid(%u)\n" + , ADPT_ARG(adapter), drop ? "drop" : "undrop" , macid); + goto exit; + } + + if(_rtw_macid_ctl_chk_cap(adapter, MACID_DROP)) { + if (macid < 32) { +#ifndef CONFIG_PROTSEL_MACSLEEP + reg_drop = macid_ctl->reg_drop_m0; +#endif /* CONFIG_PROTSEL_MACSLEEP */ + bit_shift = macid; + #if (MACID_NUM_SW_LIMIT > 32) + } else if (macid < 64) { +#ifndef CONFIG_PROTSEL_MACSLEEP + reg_drop = macid_ctl->reg_drop_m1; +#endif /* CONFIG_PROTSEL_MACSLEEP */ + bit_shift = macid - 32; + #endif + #if (MACID_NUM_SW_LIMIT > 64) + } else if (macid < 96) { +#ifndef CONFIG_PROTSEL_MACSLEEP + reg_drop = macid_ctl->reg_drop_m2; +#endif /* CONFIG_PROTSEL_MACSLEEP */ + bit_shift = macid - 64; + #endif + #if (MACID_NUM_SW_LIMIT > 96) + } else if (macid < 128) { +#ifndef CONFIG_PROTSEL_MACSLEEP + reg_drop = macid_ctl->reg_drop_m3; +#endif /* CONFIG_PROTSEL_MACSLEEP */ + bit_shift = macid - 96; + #endif + } else { + rtw_warn_on(1); + goto exit; + } + +#ifndef CONFIG_PROTSEL_MACSLEEP + if (!reg_drop) { + rtw_warn_on(1); + goto exit; + } + val32 = rtw_read32(adapter, reg_drop); + /*RTW_INFO(ADPT_FMT" %s macid=%d, ori reg_0x%03x=0x%08x \n" + , ADPT_ARG(adapter), drop ? "drop" : "undrop" + , macid, reg_drop, val32);*/ +#else + if (!reg_drop_ctrl || !reg_drop_info) { + rtw_warn_on(1); + goto exit; + } + + val32 = rtw_read32(adapter, reg_drop_ctrl); + val32 = (val32 &~sel_mask_sel) | ((macid / 32) & sel_mask_sel); + rtw_write32(adapter, reg_drop_ctrl, val32); + + val32 = rtw_read32(adapter, reg_drop_info); + /*RTW_INFO(ADPT_FMT" %s macid=%d, ori reg_0x%03x=0x%08x\n" + , ADPT_ARG(adapter), drop ? "drop" : "undrop" + , macid, reg_drop_info, val32);*/ +#endif /* CONFIG_PROTSEL_MACSLEEP */ + ret = _SUCCESS; + + if (drop) { + if (val32 & BIT(bit_shift)) + goto exit; + val32 |= BIT(bit_shift); + } else { + if (!(val32 & BIT(bit_shift))) + goto exit; + val32 &= ~BIT(bit_shift); + } + +#ifndef CONFIG_PROTSEL_MACSLEEP + rtw_write32(adapter, reg_drop, val32); + RTW_INFO(ADPT_FMT" %s macid=%d, done reg_0x%03x=0x%08x\n" + , ADPT_ARG(adapter), drop ? "drop" : "undrop" + , macid, reg_drop, val32); +#else + rtw_write32(adapter, reg_drop_info, val32); + RTW_INFO(ADPT_FMT" %s macid=%d, done reg_0x%03x=0x%08x\n" + , ADPT_ARG(adapter), drop ? "drop" : "undrop" + , macid, reg_drop_info, val32); +#endif /* CONFIG_PROTSEL_MACSLEEP */ + + + } else if(_rtw_macid_ctl_chk_cap(adapter, MACID_DROP_INDIRECT)) { + u16 start_addr = macid_ctl->macid_txrpt/8; + u32 txrpt_h4b = 0; + u8 i; + + /* each address means 1 byte */ + start_addr += macid*(macid_ctl->macid_txrpt_pgsz/8); + /* select tx report buffer */ + rtw_write8(adapter, REG_PKT_BUFF_ACCESS_CTRL, TXREPORT_BUF_SELECT); + /* set tx report buffer start address for reading */ + rtw_write32(adapter, REG_PKTBUF_DBG_CTRL, start_addr); + txrpt_h4b = rtw_read32(adapter, REG_PKTBUF_DBG_DATA_H); + /* OFFSET5 BIT2 is BIT10 of high 4 bytes */ + if (drop) { + if (txrpt_h4b & BIT(10)) + goto exit; + txrpt_h4b |= BIT(10); + } else { + if (!(txrpt_h4b & BIT(10))) + goto exit; + txrpt_h4b &= ~BIT(10); + } + /* set to macid drop field */ + rtw_write32(adapter, REG_PKTBUF_DBG_DATA_H, txrpt_h4b); + /* 0x20800000 only write BIT10 of tx report buf */ + rtw_write32(adapter, REG_PKTBUF_DBG_CTRL, 0x20800000 | start_addr); +#if 0 /* some ICs doesn't clear the write done bit */ + /* checking TX queue status */ + for (i = 0 ; i < 50 ; i++) { + txrpt_h4b = rtw_read32(adapter, REG_PKTBUF_DBG_CTRL); + if (txrpt_h4b & BIT(23)) { + RTW_INFO("%s: wait to write TX RTP buf (%d)!\n", __func__, i); + rtw_mdelay_os(10); + } else { + RTW_INFO("%s: wait to write TX RTP buf done (%d)!\n", __func__, i); + break; + } + } +#endif + rtw_write32(adapter, REG_PKTBUF_DBG_CTRL, start_addr); + RTW_INFO("start_addr=%x, data_H:%08x, data_L:%08x, macid=%d, txrpt_h4b=%x\n", start_addr + ,rtw_read32(adapter, REG_PKTBUF_DBG_DATA_H), rtw_read32(adapter, REG_PKTBUF_DBG_DATA_L), macid, txrpt_h4b); + } else { + RTW_INFO("There is no definition for camctl cap , please correct it\n"); + } +exit: + return ret; +} + +inline s32 rtw_hal_macid_drop(_adapter *adapter, u8 macid) +{ + return _rtw_hal_macid_drop(adapter, macid, 1); +} + +inline s32 rtw_hal_macid_undrop(_adapter *adapter, u8 macid) +{ + return _rtw_hal_macid_drop(adapter, macid, 0); +} + s32 rtw_hal_fill_h2c_cmd(PADAPTER padapter, u8 ElementID, u32 CmdLen, u8 *pCmdBuffer) { _adapter *pri_adapter = GET_PRIMARY_ADAPTER(padapter); @@ -1753,8 +1960,31 @@ void rtw_hal_set_tx_power_level(_adapter *adapter, u8 channel) void rtw_hal_update_txpwr_level(_adapter *adapter) { HAL_DATA_TYPE *hal_data = GET_HAL_DATA(adapter); +#ifdef CONFIG_ACTIVE_TPC_REPORT + struct dvobj_priv *dvobj = adapter_to_dvobj(adapter); + int i; +#endif rtw_hal_set_tx_power_level(adapter, hal_data->current_channel); + rtw_rfctl_update_op_mode(adapter_to_rfctl(adapter), 0, 0); + +#ifdef CONFIG_ACTIVE_TPC_REPORT + for (i = 0; i < dvobj->iface_nums; i++) { + struct mlme_priv *mlme; + + if (!dvobj->padapters[i]) + continue; + if (!CHK_MLME_STATE(dvobj->padapters[i], WIFI_AP_STATE | WIFI_MESH_STATE) + || !MLME_IS_ASOC(dvobj->padapters[i]) || MLME_IS_OPCH_SW(dvobj->padapters[i])) + continue; + if (dvobj->padapters[i]->mlmeextpriv.bstart_bss != _TRUE) + continue; + + mlme = &(dvobj->padapters[i]->mlmepriv); + if (MLME_ACTIVE_TPC_REPORT(mlme)) + update_beacon(dvobj->padapters[i], WLAN_EID_TPC_REPORT, NULL, 1, 0); + } +#endif } void rtw_hal_set_txpwr_done(_adapter *adapter) @@ -1833,14 +2063,6 @@ bool rtw_hal_rfkill_poll(_adapter *adapter, u8 *valid) } #endif -#ifdef CONFIG_SUPPORT_DYNAMIC_TXPWR -void rtw_hal_dtp_macid_set(_adapter *padapter, u8 opmode, u8 mac_id, u8 *paddr) -{ - if (padapter->hal_func.dtp_macid_set) - padapter->hal_func.dtp_macid_set(padapter, opmode, mac_id, paddr); -} -#endif - #define rtw_hal_error_msg(ops_fun) \ RTW_PRINT("### %s - Error : Please hook hal_func.%s ###\n", __FUNCTION__, ops_fun) diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/hal_mcc.c b/drivers/net/wireless/realtek/rtl8822ce/hal/hal_mcc.c index 03d36303..90432181 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/hal_mcc.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/hal_mcc.c @@ -386,7 +386,7 @@ static void mcc_cfg_phdym_rf_ch (_adapter *adapter) set_channel_bwmode(adapter, mlmeext->cur_channel, mlmeext->cur_ch_offset, mlmeext->cur_bwmode); order = mccadapriv->order; - mcc_dm->mcc_rf_ch[order] = phy_query_rf_reg(adapter, RF_PATH_A, 0x18, 0xffffffff); + mcc_dm->mcc_rf_ch[order] = phy_query_rf_reg(adapter, RF_PATH_A, 0x18, 0x03ff); } static void mcc_cfg_phdym_update_macid (_adapter *adapter, u8 add, u8 mac_id) @@ -1273,6 +1273,12 @@ u8 rtw_hal_dl_mcc_fw_rsvd_page(_adapter *adapter, u8 *pframe, u16 *index, struct hal_com_data *hal = GET_HAL_DATA(adapter); struct hal_spec_t *hal_spec = GET_HAL_SPEC(adapter); struct mcc_adapter_priv *mccadapriv = NULL; +#if defined(CONFIG_RTL8822C) + struct dm_struct *phydm = adapter_to_phydm(adapter); + struct txagc_table_8822c tab; + u8 agc_buff[2][NUM_RATE_AC_2SS]; /* tatol 0x40 rate index for PATH A/B */ +#endif + u8 ret = _SUCCESS, i = 0, j =0, order = 0, CurtPktPageNum = 0; u8 *start = NULL; u8 path = RF_PATH_A; @@ -1349,7 +1355,8 @@ u8 rtw_hal_dl_mcc_fw_rsvd_page(_adapter *adapter, u8 *pframe, u16 *index, } for (i = 0; i < MAX_MCC_NUM; i++) { - u8 center_ch = 0, band, ch = 0, bw = 0, bw_offset = 0; + u8 center_ch = 0, ch = 0, bw = 0, bw_offset = 0; + BAND_TYPE band = BAND_MAX; u8 power_index = 0; u8 rate_array_sz = 0; u8 *rates = NULL; @@ -1376,7 +1383,7 @@ u8 rtw_hal_dl_mcc_fw_rsvd_page(_adapter *adapter, u8 *pframe, u16 *index, i, pmccobjpriv->mcc_pwr_idx_rsvd_page[i]); total_rate_offset = start; - +#if !defined(CONFIG_RTL8822C) for (path = RF_PATH_A; path < hal_spec->rf_reg_path_num; ++path) { total_rate = 0; /* PATH A for 0~63 byte, PATH B for 64~127 byte*/ @@ -1395,7 +1402,7 @@ u8 rtw_hal_dl_mcc_fw_rsvd_page(_adapter *adapter, u8 *pframe, u16 *index, rates = rates_by_sections[CCK].rates; for (j = 0; j < rate_array_sz; ++j) { power_index = phy_get_tx_power_index_ex(iface, path, CCK, rates[j], bw, band, center_ch, ch); - rate = PHY_GetRateIndexOfTxPowerByRate(rates[j]); + rate = phy_get_rate_idx_of_txpwr_by_rate(rates[j]); shift = rate % 4; if (shift == 0) { @@ -1437,7 +1444,7 @@ u8 rtw_hal_dl_mcc_fw_rsvd_page(_adapter *adapter, u8 *pframe, u16 *index, rates = rates_by_sections[OFDM].rates; for (j = 0; j < rate_array_sz; ++j) { power_index = phy_get_tx_power_index_ex(iface, path, OFDM, rates[j], bw, band, center_ch, ch); - rate = PHY_GetRateIndexOfTxPowerByRate(rates[j]); + rate = phy_get_rate_idx_of_txpwr_by_rate(rates[j]); shift = rate % 4; if (shift == 0) { @@ -1477,7 +1484,7 @@ u8 rtw_hal_dl_mcc_fw_rsvd_page(_adapter *adapter, u8 *pframe, u16 *index, rates = rates_by_sections[HT_MCS0_MCS7].rates; for (j = 0; j < rate_array_sz; ++j) { power_index = phy_get_tx_power_index_ex(iface, path, HT_1SS, rates[j], bw, band, center_ch, ch); - rate = PHY_GetRateIndexOfTxPowerByRate(rates[j]); + rate = phy_get_rate_idx_of_txpwr_by_rate(rates[j]); shift = rate % 4; if (shift == 0) { @@ -1517,7 +1524,7 @@ u8 rtw_hal_dl_mcc_fw_rsvd_page(_adapter *adapter, u8 *pframe, u16 *index, rates = rates_by_sections[HT_MCS8_MCS15].rates; for (j = 0; j < rate_array_sz; ++j) { power_index = phy_get_tx_power_index_ex(iface, path, HT_2SS, rates[j], bw, band, center_ch, ch); - rate = PHY_GetRateIndexOfTxPowerByRate(rates[j]); + rate = phy_get_rate_idx_of_txpwr_by_rate(rates[j]); shift = rate % 4; if (shift == 0) { @@ -1556,7 +1563,7 @@ u8 rtw_hal_dl_mcc_fw_rsvd_page(_adapter *adapter, u8 *pframe, u16 *index, rates = rates_by_sections[VHT_1SSMCS0_1SSMCS9].rates; for (j = 0; j < rate_array_sz; ++j) { power_index = phy_get_tx_power_index_ex(iface, path, VHT_1SS, rates[j], bw, band, center_ch, ch); - rate = PHY_GetRateIndexOfTxPowerByRate(rates[j]); + rate = phy_get_rate_idx_of_txpwr_by_rate(rates[j]); shift = rate % 4; if (shift == 0) { @@ -1592,7 +1599,7 @@ u8 rtw_hal_dl_mcc_fw_rsvd_page(_adapter *adapter, u8 *pframe, u16 *index, rates = rates_by_sections[VHT_2SSMCS0_2SSMCS9].rates; for (j = 0; j < rate_array_sz; ++j) { power_index = phy_get_tx_power_index_ex(iface, path, VHT_2SS, rates[j], bw, band, center_ch, ch); - rate = PHY_GetRateIndexOfTxPowerByRate(rates[j]); + rate = phy_get_rate_idx_of_txpwr_by_rate(rates[j]); shift = rate % 4; if (shift == 0) { @@ -1638,6 +1645,91 @@ u8 rtw_hal_dl_mcc_fw_rsvd_page(_adapter *adapter, u8 *pframe, u16 *index, *total_page_num += CurtPktPageNum; *index += (CurtPktPageNum * page_size); RSVD_PAGE_CFG("mcc_pwr_idx_rsvd_page", CurtPktPageNum, *total_page_num, *index); +#else /* 8822C */ + for (path = RF_PATH_A; path < hal_spec->rf_reg_path_num; ++path) { + /* CCK */ + if (ch <= 14) { + rate_array_sz = rates_by_sections[CCK].rate_num; + rates = rates_by_sections[CCK].rates; + for (j = 0; j < rate_array_sz; ++j) { + power_index = phy_get_tx_power_index_ex(iface, path, CCK, rates[j], bw, band, center_ch, ch); + rate = phy_get_rate_idx_of_txpwr_by_rate(rates[j]); + agc_buff[path][rate] = power_index; + } + } + + /* OFDM */ + rate_array_sz = rates_by_sections[OFDM].rate_num; + rates = rates_by_sections[OFDM].rates; + for (j = 0; j < rate_array_sz; ++j) { + power_index = phy_get_tx_power_index_ex(iface, path, OFDM, rates[j], bw, band, center_ch, ch); + rate = phy_get_rate_idx_of_txpwr_by_rate(rates[j]); + agc_buff[path][rate] = power_index; + } + /* HT */ + rate_array_sz = rates_by_sections[HT_MCS0_MCS7].rate_num; + rates = rates_by_sections[HT_MCS0_MCS7].rates; + for (j = 0; j < rate_array_sz; ++j) { + power_index = phy_get_tx_power_index_ex(iface, path, HT_1SS, rates[j], bw, band, center_ch, ch); + rate = phy_get_rate_idx_of_txpwr_by_rate(rates[j]); + agc_buff[path][rate] = power_index; + } + + rate_array_sz = rates_by_sections[HT_MCS8_MCS15].rate_num; + rates = rates_by_sections[HT_MCS8_MCS15].rates; + for (j = 0; j < rate_array_sz; ++j) { + power_index = phy_get_tx_power_index_ex(iface, path, HT_2SS, rates[j], bw, band, center_ch, ch); + rate = phy_get_rate_idx_of_txpwr_by_rate(rates[j]); + agc_buff[path][rate] = power_index; + } + /* VHT */ + rate_array_sz = rates_by_sections[VHT_1SSMCS0_1SSMCS9].rate_num; + rates = rates_by_sections[VHT_1SSMCS0_1SSMCS9].rates; + for (j = 0; j < rate_array_sz; ++j) { + power_index = phy_get_tx_power_index_ex(iface, path, VHT_1SS, rates[j], bw, band, center_ch, ch); + rate = phy_get_rate_idx_of_txpwr_by_rate(rates[j]); + agc_buff[path][rate] = power_index; + } + + rate_array_sz = rates_by_sections[VHT_2SSMCS0_2SSMCS9].rate_num; + rates = rates_by_sections[VHT_2SSMCS0_2SSMCS9].rates; + for (j = 0; j < rate_array_sz; ++j) { + power_index = phy_get_tx_power_index_ex(iface, path, VHT_2SS, rates[j], bw, band, center_ch, ch); + rate = phy_get_rate_idx_of_txpwr_by_rate(rates[j]); + agc_buff[path][rate] = power_index; + } + } + phydm_get_txagc_ref_and_diff_8822c(phydm, agc_buff, NUM_RATE_AC_2SS, &tab); + *start = tab.ref_pow_cck[0]; + start++; + *start = tab.ref_pow_cck[1]; + start++; + *start = tab.ref_pow_ofdm[0]; + start++; + *start = tab.ref_pow_ofdm[1]; + start++; + _rtw_memcpy(start, tab.diff_t, sizeof(tab.diff_t)); + CurtPktPageNum = 1; + *total_page_num += CurtPktPageNum; + *index += (CurtPktPageNum * page_size); + RSVD_PAGE_CFG("mcc_pwr_idx_rsvd_page", CurtPktPageNum, *total_page_num, *index); + #ifdef DBG_PWR_IDX_RSVD_PAGE + if (1) { + u8 path_idx; + for (path_idx = 0; path_idx < 2; path_idx++) { + for (j = 0; j < NUM_RATE_AC_2SS; j++) + RTW_INFO("agc_buff[%d][%d]=%x\n", i, j, agc_buff[i][j]); + } + RTW_INFO("tab->ref_pow_cck[0]=%x\n", tab.ref_pow_cck[0]); + RTW_INFO("tab->ref_pow_cck[1]=%x\n", tab.ref_pow_cck[1]); + RTW_INFO("tab->ref_pow_ofdm[0]=%x\n", tab.ref_pow_ofdm[0]); + RTW_INFO("tab->ref_pow_ofdm[1]=%x\n", tab.ref_pow_ofdm[1]); + RTW_INFO_DUMP("diff_t ", tab.diff_t, NUM_RATE_AC_2SS); + RTW_INFO_DUMP("tab ", (u8 *)&tab, sizeof(tab)); + } + #endif + +#endif } exit: @@ -1662,6 +1754,7 @@ static void rtw_hal_set_fw_mcc_rsvd_page(PADAPTER padapter) rtw_hal_set_hwreg(port0_iface, HW_VAR_H2C_FW_JOINBSSRPT, (u8 *)(&mstatus)); +#ifdef CONFIG_AP_MODE /* Re-Download beacon */ for (i = 0; i < MAX_MCC_NUM; i++) { iface = pmccobjpriv->iface[i]; @@ -1675,6 +1768,7 @@ static void rtw_hal_set_fw_mcc_rsvd_page(PADAPTER padapter) tx_beacon_hdl(iface, NULL); } } +#endif } static void rtw_hal_set_mcc_rsvdpage_cmd(_adapter *padapter) @@ -2216,6 +2310,15 @@ static void rtw_hal_mcc_start_prehdl(PADAPTER padapter) mccadapriv = &iface->mcc_adapterpriv; mccadapriv->role = MCC_ROLE_MAX; } + +#ifdef CONFIG_RTL8822C + if (IS_HARDWARE_TYPE_8822C(padapter)) { + HAL_DATA_TYPE *hal = GET_HAL_DATA(padapter); + struct dm_struct *dm = &hal->odmpriv; + + odm_cmn_info_update(dm, ODM_CMNINFO_IS_DOWNLOAD_FW, hal->bFWReady); + } +#endif } static u8 rtw_hal_set_mcc_start_setting(PADAPTER padapter, u8 status) @@ -2381,6 +2484,15 @@ static void rtw_hal_mcc_stop_posthdl(PADAPTER padapter) #ifdef CONFIG_MCC_PHYDM_OFFLOAD rtw_hal_mcc_cfg_phydm(padapter, MCC_CFG_PHYDM_STOP, NULL); #endif + +#ifdef CONFIG_RTL8822C + if (IS_HARDWARE_TYPE_8822C(padapter)) { + HAL_DATA_TYPE *hal = GET_HAL_DATA(padapter); + struct dm_struct *dm = &hal->odmpriv; + + odm_cmn_info_update(dm, ODM_CMNINFO_IS_DOWNLOAD_FW, _FALSE); + } +#endif } static void rtw_hal_mcc_start_posthdl(PADAPTER padapter) @@ -2432,7 +2544,7 @@ static u8 rtw_hal_set_mcc_setting(PADAPTER padapter, u8 status) u8 ret = _FAIL; struct mcc_obj_priv *pmccobjpriv = &(adapter_to_dvobj(padapter)->mcc_objpriv); u8 stop = (status < MCC_SETCMD_STATUS_START_CONNECT) ? _TRUE : _FALSE; - u32 start_time = rtw_get_current_time(); + systime start_time = rtw_get_current_time(); RTW_INFO("===> "FUNC_ADPT_FMT"\n", FUNC_ADPT_ARG(padapter)); @@ -2652,8 +2764,11 @@ static u8 mcc_get_reg_hdl(PADAPTER adapter, const u8 *val) _adapter *cur_iface = NULL; u8 ret = _SUCCESS; u8 cur_order = 0; - + #ifdef CONFIG_RTL8822C + u16 dbg_reg[DBG_MCC_REG_NUM] = {0x4d4,0x522,0x1d70}; + #else u16 dbg_reg[DBG_MCC_REG_NUM] = {0x4d4,0x522,0xc50,0xe50}; + #endif u16 dbg_rf_reg[DBG_MCC_RF_REG_NUM] = {0x18}; u8 i; u32 reg_val; @@ -3286,14 +3401,34 @@ u8 rtw_hal_set_mcc_setting_start_bss_network(PADAPTER padapter, u8 chbw_allow) if (MCC_EN(padapter)) { /* channel bw offset can not be allowed, start MCC */ if (chbw_allow == _FALSE) { - struct mcc_obj_priv *pmccobjpriv = &(adapter_to_dvobj(padapter)->mcc_objpriv); + struct mcc_obj_priv *pmccobjpriv = &(adapter_to_dvobj(padapter)->mcc_objpriv); - rtw_hal_mcc_restore_iqk_val(padapter); - _enter_critical_mutex(&pmccobjpriv->mcc_mutex, NULL); - ret = rtw_hal_set_mcc_setting(padapter, MCC_SETCMD_STATUS_START_CONNECT); - _exit_critical_mutex(&pmccobjpriv->mcc_mutex, NULL); + //rtw_hal_mcc_restore_iqk_val(padapter); + _enter_critical_mutex(&pmccobjpriv->mcc_mutex, NULL); + ret = rtw_hal_set_mcc_setting(padapter, MCC_SETCMD_STATUS_START_CONNECT); + _exit_critical_mutex(&pmccobjpriv->mcc_mutex, NULL); + + if (ret == _FAIL) { /* MCC Start fail, AP/GO switch to buddy's channel */ + u8 ch_to_set = 0, bw_to_set, offset_to_set; + + rtw_hal_set_mcc_status(padapter, MCC_STATUS_NEED_MCC | MCC_STATUS_DOING_MCC); + rtw_hal_set_mcc_setting_disconnect(padapter); + if (rtw_mi_get_ch_setting_union_no_self( + padapter, &ch_to_set, &bw_to_set, + &offset_to_set) != 0) { + PHAL_DATA_TYPE hal = GET_HAL_DATA(padapter); + u8 doiqk = _TRUE; + + rtw_hal_set_hwreg(padapter, HW_VAR_DO_IQK, &doiqk); + hal->current_channel = 0; + hal->current_channel_bw = CHANNEL_WIDTH_MAX; + set_channel_bwmode(padapter, ch_to_set, offset_to_set, bw_to_set); + doiqk = _FALSE; + rtw_hal_set_hwreg(padapter, HW_VAR_DO_IQK, &doiqk); + } } } + } return ret; } @@ -3363,9 +3498,17 @@ u8 rtw_hal_set_mcc_setting_join_done_chk_ch(PADAPTER padapter) _enter_critical_mutex(&pmccobjpriv->mcc_mutex, NULL); ret = rtw_hal_set_mcc_setting(padapter, MCC_SETCMD_STATUS_START_CONNECT); _exit_critical_mutex(&pmccobjpriv->mcc_mutex, NULL); + + if (ret == _FAIL) { /* MCC Start Fail, then disconenct client join */ + rtw_hal_set_mcc_status(padapter, MCC_STATUS_NEED_MCC | MCC_STATUS_DOING_MCC); + rtw_disassoc_cmd(padapter, 0, RTW_CMDF_DIRECTLY); + rtw_indicate_disconnect(padapter, 0, _FALSE); + rtw_free_assoc_resources(padapter, _TRUE); + rtw_free_network_queue(padapter, _TRUE); + } + } } } - } return ret; } diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/hal_mp.c b/drivers/net/wireless/realtek/rtl8822ce/hal/hal_mp.c old mode 100644 new mode 100755 index c486e2ea..a24491ba --- a/drivers/net/wireless/realtek/rtl8822ce/hal/hal_mp.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/hal_mp.c @@ -180,7 +180,7 @@ void hal_mpt_CCKTxPowerAdjust(PADAPTER Adapter, BOOLEAN bInCH14) } else if (IS_HARDWARE_TYPE_8723D(Adapter)) { /* 2.4G CCK TX DFIR */ /* 2016.01.20 Suggest from RS BB mingzhi*/ - if ((u1Channel == 14)) { + if (u1Channel == 14) { phy_set_bb_reg(Adapter, rCCK0_TxFilter2, bMaskDWord, 0x0000B81C); phy_set_bb_reg(Adapter, rCCK0_DebugPort, bMaskDWord, 0x00000000); phy_set_bb_reg(Adapter, 0xAAC, bMaskDWord, 0x00003667); @@ -434,12 +434,16 @@ mpt_SetTxPower( u8 path = 0 , i = 0, MaxRate = MGN_6M; u8 StartPath = RF_PATH_A, EndPath = RF_PATH_B; + u8 tx_nss = 2; - if (IS_HARDWARE_TYPE_8814A(pAdapter) || IS_HARDWARE_TYPE_8814B(pAdapter)) + if (IS_HARDWARE_TYPE_8814A(pAdapter) || IS_HARDWARE_TYPE_8814B(pAdapter)) { EndPath = RF_PATH_D; - else if (IS_HARDWARE_TYPE_8188F(pAdapter) || IS_HARDWARE_TYPE_8188GTV(pAdapter) - || IS_HARDWARE_TYPE_8723D(pAdapter) || IS_HARDWARE_TYPE_8821C(pAdapter)) + tx_nss = 4; + } else if (IS_HARDWARE_TYPE_8188F(pAdapter) || IS_HARDWARE_TYPE_8188GTV(pAdapter) + || IS_HARDWARE_TYPE_8723D(pAdapter) || IS_HARDWARE_TYPE_8821C(pAdapter) || IS_HARDWARE_TYPE_8723F(pAdapter)) { EndPath = RF_PATH_A; + tx_nss = 1; + } switch (Rate) { case MPT_CCK: { @@ -471,14 +475,15 @@ mpt_SetTxPower( MGN_MCS25, MGN_MCS26, MGN_MCS27, MGN_MCS28, MGN_MCS29, MGN_MCS30, MGN_MCS31, }; - if (pHalData->rf_type == RF_4T4R) + if (tx_nss == 4) MaxRate = MGN_MCS31; - else if (pHalData->rf_type == RF_3T3R) + else if (tx_nss == 3) MaxRate = MGN_MCS23; - else if (pHalData->rf_type == RF_2T2R) + else if (tx_nss == 2) MaxRate = MGN_MCS15; else MaxRate = MGN_MCS7; + for (path = StartPath; path <= EndPath; path++) { for (i = 0; i < sizeof(rate); ++i) { if (rate[i] > MaxRate) @@ -499,11 +504,11 @@ mpt_SetTxPower( MGN_VHT4SS_MCS0, MGN_VHT4SS_MCS1, MGN_VHT4SS_MCS2, MGN_VHT4SS_MCS3, MGN_VHT4SS_MCS4, MGN_VHT4SS_MCS5, MGN_VHT4SS_MCS6, MGN_VHT4SS_MCS7, MGN_VHT4SS_MCS8, MGN_VHT4SS_MCS9, }; - if (pHalData->rf_type == RF_4T4R) + if (tx_nss == 4) MaxRate = MGN_VHT4SS_MCS9; - else if (pHalData->rf_type == RF_3T3R) + else if (tx_nss == 3) MaxRate = MGN_VHT3SS_MCS9; - else if (pHalData->rf_type == RF_2T2R || pHalData->rf_type == RF_2T4R) + else if (tx_nss == 2) MaxRate = MGN_VHT2SS_MCS9; else MaxRate = MGN_VHT1SS_MCS9; @@ -597,6 +602,20 @@ void hal_mpt_SetDataRate(PADAPTER pAdapter) #endif } +u32 hal_mpt_tssi_turn_target_power(PADAPTER padapter, s16 power_offset, u8 path) +{ + HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter); + struct dm_struct *pdm = &pHalData->odmpriv; + u32 pout = 0; + +#ifdef CONFIG_RTL8723F + pout = halrf_tssi_turn_target_power(pdm, power_offset, path); +#endif + RTW_INFO("%s()===> pout %d\n", __func__, pout); + + return pout; +} + #define RF_PATH_AB 22 #ifdef CONFIG_RTL8814A @@ -860,7 +879,8 @@ void mpt_SetRFPath_8814A(PADAPTER pAdapter) } #endif /* CONFIG_RTL8814A */ -#if defined(CONFIG_RTL8814A) || defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8822C) || defined(CONFIG_RTL8814B) +#if defined(CONFIG_RTL8814A) || defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) \ + || defined(CONFIG_RTL8822C) || defined(CONFIG_RTL8814B) || defined(CONFIG_RTL8723F) void mpt_SetSingleTone_8814A( PADAPTER pAdapter, @@ -956,7 +976,7 @@ mpt_SetSingleTone_8814A( phy_set_bb_reg(pAdapter, rCCAonSec_Jaguar, BIT1, 0x0); /* Enable CCA*/ if (bEnPMacTx == FALSE) { - if(IS_HARDWARE_TYPE_JAGUAR3(pAdapter)) { + if (IS_HARDWARE_TYPE_JAGUAR3(pAdapter) || IS_HARDWARE_TYPE_JAGUAR3_11N(pAdapter)) { #ifdef PHYDM_MP_SUPPORT phydm_stop_ofdm_cont_tx(pAdapter); pMptCtx->bCckContTx = FALSE; @@ -1670,7 +1690,7 @@ s32 hal_mpt_SetThermalMeter(PADAPTER pAdapter, u8 target_ther) void hal_mpt_TriggerRFThermalMeter(PADAPTER pAdapter) { - if (IS_HARDWARE_TYPE_JAGUAR3(pAdapter)) { + if (IS_HARDWARE_TYPE_JAGUAR3(pAdapter) || IS_HARDWARE_TYPE_JAGUAR3_11N(pAdapter)) { phy_set_rf_reg(pAdapter, RF_PATH_A, 0x42, BIT19, 0x1); phy_set_rf_reg(pAdapter, RF_PATH_A, 0x42, BIT19, 0x0); phy_set_rf_reg(pAdapter, RF_PATH_A, 0x42, BIT19, 0x1); @@ -1690,7 +1710,7 @@ u8 hal_mpt_ReadRFThermalMeter(PADAPTER pAdapter, u8 rf_path) s8 thermal_offset = 0; u32 thermal_reg_mask = 0; - if (IS_8822C_SERIES(GET_HAL_DATA(pAdapter)->version_id)) + if (IS_8822C_SERIES(GET_HAL_DATA(pAdapter)->version_id) || IS_8723F_SERIES(GET_HAL_DATA(pAdapter)->version_id)) thermal_reg_mask = 0x007e; /*0x42: RF Reg[6:1], 35332(themal K & bias k & power trim) & 35325(tssi )*/ else thermal_reg_mask = 0xfc00; /*0x42: RF Reg[15:10]*/ @@ -1747,8 +1767,9 @@ void hal_mpt_SetSingleCarrierTx(PADAPTER pAdapter, u8 bStart) phy_set_bb_reg(pAdapter, rCCK0_System, bCCKScramble, 1); /*/ 4. Turn On Continue Tx and turn off the other test modes.*/ -#if defined(CONFIG_RTL8812A) || defined(CONFIG_RTL8821A) || defined(CONFIG_RTL8814A) || defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) - if (IS_HARDWARE_TYPE_JAGUAR_ALL(pAdapter)) +#if defined(CONFIG_RTL8812A) || defined(CONFIG_RTL8821A) || defined(CONFIG_RTL8814A)\ + || defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8723F) + if (IS_HARDWARE_TYPE_JAGUAR_ALL(pAdapter) || IS_HARDWARE_TYPE_JAGUAR3_11N(pAdapter)) phy_set_bb_reg(pAdapter, rSingleTone_ContTx_Jaguar, BIT18 | BIT17 | BIT16, OFDM_SingleCarrier); else #endif /* CONFIG_RTL8812A || CONFIG_RTL8821A || CONFIG_RTL8814A || CONFIG_RTL8822B || CONFIG_RTL8821C */ @@ -1758,8 +1779,9 @@ void hal_mpt_SetSingleCarrierTx(PADAPTER pAdapter, u8 bStart) /*/ Stop Single Carrier.*/ /*/ Stop Single Carrier.*/ /*/ Turn off all test modes.*/ -#if defined(CONFIG_RTL8812A) || defined(CONFIG_RTL8821A) || defined(CONFIG_RTL8814A) || defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) - if (IS_HARDWARE_TYPE_JAGUAR_ALL(pAdapter)) +#if defined(CONFIG_RTL8812A) || defined(CONFIG_RTL8821A) || defined(CONFIG_RTL8814A) || defined(CONFIG_RTL8822B)\ + || defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8723F) + if (IS_HARDWARE_TYPE_JAGUAR_ALL(pAdapter)|| IS_HARDWARE_TYPE_JAGUAR3_11N(pAdapter)) phy_set_bb_reg(pAdapter, rSingleTone_ContTx_Jaguar, BIT18 | BIT17 | BIT16, OFDM_ALL_OFF); else #endif /* CONFIG_RTL8812A || CONFIG_RTL8821A || CONFIG_RTL8814A || CONFIG_RTL8822B || CONFIG_RTL8821C */ @@ -1782,7 +1804,7 @@ void hal_mpt_SetSingleToneTx(PADAPTER pAdapter, u8 bStart) static u32 regRF = 0, regBB0 = 0, regBB1 = 0, regBB2 = 0, regBB3 = 0; u8 rfPath; - if (IS_HARDWARE_TYPE_JAGUAR3(pAdapter)) { + if (IS_HARDWARE_TYPE_JAGUAR3(pAdapter) || IS_HARDWARE_TYPE_JAGUAR3_11N(pAdapter)) { #ifdef PHYDM_MP_SUPPORT #ifdef CONFIG_RTL8814B if(pHalData->current_channel_bw == CHANNEL_WIDTH_80_80) @@ -2052,7 +2074,7 @@ void hal_mpt_SetCarrierSuppressionTx(PADAPTER pAdapter, u8 bStart) pAdapter->mppriv.mpt_ctx.is_carrier_suppression = bStart; - if (IS_HARDWARE_TYPE_JAGUAR3(pAdapter)) { + if (IS_HARDWARE_TYPE_JAGUAR3(pAdapter) || IS_HARDWARE_TYPE_JAGUAR3_11N(pAdapter)) { #ifdef PHYDM_MP_SUPPORT phydm_mp_set_carrier_supp(pdm_odm, bStart, pAdapter->mppriv.rateidx); #endif @@ -2067,7 +2089,7 @@ void hal_mpt_SetCarrierSuppressionTx(PADAPTER pAdapter, u8 bStart) write_bbreg(pAdapter, rFPGA0_RFMOD, bCCKEn, bEnable);/*set CCK block on*/ /*/Turn Off All Test Mode*/ - if (IS_HARDWARE_TYPE_JAGUAR_ALL(pAdapter)) + if (IS_HARDWARE_TYPE_JAGUAR_ALL(pAdapter) || IS_HARDWARE_TYPE_JAGUAR3_11N(pAdapter)) phy_set_bb_reg(pAdapter, 0x914, BIT18 | BIT17 | BIT16, OFDM_ALL_OFF); /* rSingleTone_ContTx_Jaguar*/ else phy_set_bb_reg(pAdapter, rOFDM1_LSTF, BIT30 | BIT29 | BIT28, OFDM_ALL_OFF); @@ -2111,7 +2133,7 @@ u32 hal_mpt_query_phytxok(PADAPTER pAdapter) struct dm_struct *dm = (struct dm_struct *)&pHalData->odmpriv; struct phydm_mp *mp = &dm->dm_mp_table; - if (IS_HARDWARE_TYPE_JAGUAR3(pAdapter)) { + if (IS_HARDWARE_TYPE_JAGUAR3(pAdapter) || IS_HARDWARE_TYPE_JAGUAR3_11N(pAdapter)) { phydm_mp_get_tx_ok(&pHalData->odmpriv, pAdapter->mppriv.rateidx); count = mp->tx_phy_ok_cnt; @@ -2149,7 +2171,7 @@ static void mpt_StopCckContTx( phy_set_bb_reg(pAdapter, rCCK0_System, bCCKBBMode, 0x0); /*normal mode*/ phy_set_bb_reg(pAdapter, rCCK0_System, bCCKScramble, 0x1); /*turn on scramble setting*/ - if (!IS_HARDWARE_TYPE_JAGUAR_ALL(pAdapter)) { + if (!IS_HARDWARE_TYPE_JAGUAR_ALL(pAdapter) && !IS_HARDWARE_TYPE_JAGUAR3_11N(pAdapter)) { phy_set_bb_reg(pAdapter, 0xa14, 0x300, 0x0); /* 0xa15[1:0] = 2b00*/ phy_set_bb_reg(pAdapter, rOFDM0_TRMuxPar, 0x10000, 0x0); /* 0xc08[16] = 0*/ @@ -2162,9 +2184,11 @@ static void mpt_StopCckContTx( phy_set_bb_reg(pAdapter, rPMAC_Reset, bBBResetB, 0x0); phy_set_bb_reg(pAdapter, rPMAC_Reset, bBBResetB, 0x1); - if (!IS_HARDWARE_TYPE_JAGUAR_ALL(pAdapter)) { - phy_set_bb_reg(pAdapter, rFPGA0_XA_HSSIParameter1, bMaskDWord, 0x01000100); - phy_set_bb_reg(pAdapter, rFPGA0_XB_HSSIParameter1, bMaskDWord, 0x01000100); + if (!IS_HARDWARE_TYPE_JAGUAR_ALL(pAdapter) && !IS_HARDWARE_TYPE_JAGUAR3_11N(pAdapter) + && !IS_HARDWARE_TYPE_8723D(pAdapter) && !IS_HARDWARE_TYPE_8192F(pAdapter) + && !IS_HARDWARE_TYPE_8188F(pAdapter)) { + phy_set_bb_reg(pAdapter, rFPGA0_XA_HSSIParameter1, bMaskDWord, 0x01000100); + phy_set_bb_reg(pAdapter, rFPGA0_XB_HSSIParameter1, bMaskDWord, 0x01000100); } if (IS_HARDWARE_TYPE_8188E(pAdapter) || IS_HARDWARE_TYPE_8723B(pAdapter) || @@ -2189,14 +2213,14 @@ static void mpt_StopOfdmContTx( pMptCtx->bCckContTx = FALSE; pMptCtx->bOfdmContTx = FALSE; - if (IS_HARDWARE_TYPE_JAGUAR_ALL(pAdapter)) + if (IS_HARDWARE_TYPE_JAGUAR_ALL(pAdapter) || IS_HARDWARE_TYPE_JAGUAR3_11N(pAdapter)) phy_set_bb_reg(pAdapter, 0x914, BIT18 | BIT17 | BIT16, OFDM_ALL_OFF); else phy_set_bb_reg(pAdapter, rOFDM1_LSTF, BIT30 | BIT29 | BIT28, OFDM_ALL_OFF); rtw_mdelay_os(10); - if (!IS_HARDWARE_TYPE_JAGUAR_ALL(pAdapter)){ + if (!IS_HARDWARE_TYPE_JAGUAR_ALL(pAdapter) && !IS_HARDWARE_TYPE_JAGUAR3_11N(pAdapter)){ phy_set_bb_reg(pAdapter, 0xa14, 0x300, 0x0); /* 0xa15[1:0] = 0*/ phy_set_bb_reg(pAdapter, rOFDM0_TRMuxPar, 0x10000, 0x0); /* 0xc08[16] = 0*/ } @@ -2205,9 +2229,11 @@ static void mpt_StopOfdmContTx( phy_set_bb_reg(pAdapter, rPMAC_Reset, bBBResetB, 0x0); phy_set_bb_reg(pAdapter, rPMAC_Reset, bBBResetB, 0x1); - if (!IS_HARDWARE_TYPE_JAGUAR_ALL(pAdapter)) { - phy_set_bb_reg(pAdapter, rFPGA0_XA_HSSIParameter1, bMaskDWord, 0x01000100); - phy_set_bb_reg(pAdapter, rFPGA0_XB_HSSIParameter1, bMaskDWord, 0x01000100); + if (!IS_HARDWARE_TYPE_JAGUAR_ALL(pAdapter) && !IS_HARDWARE_TYPE_JAGUAR3_11N(pAdapter) + && !IS_HARDWARE_TYPE_8723D(pAdapter) && !IS_HARDWARE_TYPE_8192F(pAdapter) + && !IS_HARDWARE_TYPE_8188F(pAdapter)) { + phy_set_bb_reg(pAdapter, rFPGA0_XA_HSSIParameter1, bMaskDWord, 0x01000100); + phy_set_bb_reg(pAdapter, rFPGA0_XB_HSSIParameter1, bMaskDWord, 0x01000100); } } /* mpt_StopOfdmContTx */ @@ -2225,7 +2251,7 @@ static void mpt_StartCckContTx( phy_set_bb_reg(pAdapter, rFPGA0_RFMOD, bCCKEn, 1);/*set CCK block on*/ /*Turn Off All Test Mode*/ - if (IS_HARDWARE_TYPE_JAGUAR_ALL(pAdapter)) + if (IS_HARDWARE_TYPE_JAGUAR_ALL(pAdapter) || IS_HARDWARE_TYPE_JAGUAR3_11N(pAdapter)) phy_set_bb_reg(pAdapter, 0x914, BIT18 | BIT17 | BIT16, OFDM_ALL_OFF); else phy_set_bb_reg(pAdapter, rOFDM1_LSTF, BIT30 | BIT29 | BIT28, OFDM_ALL_OFF); @@ -2237,7 +2263,7 @@ static void mpt_StartCckContTx( phy_set_bb_reg(pAdapter, rCCK0_System, bCCKBBMode, 0x2); /*transmit mode*/ phy_set_bb_reg(pAdapter, rCCK0_System, bCCKScramble, 0x1); /*turn on scramble setting*/ - if (!IS_HARDWARE_TYPE_JAGUAR_ALL(pAdapter)) { + if (!IS_HARDWARE_TYPE_JAGUAR_ALL(pAdapter) && !IS_HARDWARE_TYPE_JAGUAR3_11N(pAdapter)) { phy_set_bb_reg(pAdapter, 0xa14, 0x300, 0x3); /* 0xa15[1:0] = 11 force cck rxiq = 0*/ phy_set_bb_reg(pAdapter, rOFDM0_TRMuxPar, 0x10000, 0x1); /* 0xc08[16] = 1 force ofdm rxiq = ofdm txiq*/ phy_set_bb_reg(pAdapter, rFPGA0_XA_HSSIParameter2, BIT14, 1); @@ -2245,7 +2271,9 @@ static void mpt_StartCckContTx( phy_set_bb_reg(pAdapter, 0x0B34, BIT14, 1); } - if (!IS_HARDWARE_TYPE_JAGUAR_ALL(pAdapter)) { + if (!IS_HARDWARE_TYPE_JAGUAR_ALL(pAdapter) && !IS_HARDWARE_TYPE_JAGUAR3_11N(pAdapter) + && !IS_HARDWARE_TYPE_8723D(pAdapter) && !IS_HARDWARE_TYPE_8192F(pAdapter) + && !IS_HARDWARE_TYPE_8188F(pAdapter)) { phy_set_bb_reg(pAdapter, rFPGA0_XA_HSSIParameter1, bMaskDWord, 0x01000500); phy_set_bb_reg(pAdapter, rFPGA0_XB_HSSIParameter1, bMaskDWord, 0x01000500); } @@ -2283,18 +2311,20 @@ static void mpt_StartOfdmContTx( /* 3. turn on scramble setting*/ phy_set_bb_reg(pAdapter, rCCK0_System, bCCKScramble, 1); - if (!IS_HARDWARE_TYPE_JAGUAR_ALL(pAdapter)) { + if (!IS_HARDWARE_TYPE_JAGUAR_ALL(pAdapter) && !IS_HARDWARE_TYPE_JAGUAR3_11N(pAdapter)) { phy_set_bb_reg(pAdapter, 0xa14, 0x300, 0x3); /* 0xa15[1:0] = 2b'11*/ phy_set_bb_reg(pAdapter, rOFDM0_TRMuxPar, 0x10000, 0x1); /* 0xc08[16] = 1*/ } /* 4. Turn On Continue Tx and turn off the other test modes.*/ - if (IS_HARDWARE_TYPE_JAGUAR_ALL(pAdapter)) + if (IS_HARDWARE_TYPE_JAGUAR_ALL(pAdapter) || IS_HARDWARE_TYPE_JAGUAR3_11N(pAdapter)) phy_set_bb_reg(pAdapter, 0x914, BIT18 | BIT17 | BIT16, OFDM_ContinuousTx); else phy_set_bb_reg(pAdapter, rOFDM1_LSTF, BIT30 | BIT29 | BIT28, OFDM_ContinuousTx); - if (!IS_HARDWARE_TYPE_JAGUAR_ALL(pAdapter)) { + if (!IS_HARDWARE_TYPE_JAGUAR_ALL(pAdapter) && !IS_HARDWARE_TYPE_JAGUAR3_11N(pAdapter) + && !IS_HARDWARE_TYPE_8723D(pAdapter) && !IS_HARDWARE_TYPE_8192F(pAdapter) + && !IS_HARDWARE_TYPE_8188F(pAdapter)) { phy_set_bb_reg(pAdapter, rFPGA0_XA_HSSIParameter1, bMaskDWord, 0x01000500); phy_set_bb_reg(pAdapter, rFPGA0_XB_HSSIParameter1, bMaskDWord, 0x01000500); } @@ -2303,45 +2333,54 @@ static void mpt_StartOfdmContTx( pMptCtx->bOfdmContTx = TRUE; } /* mpt_StartOfdmContTx */ -#if defined(CONFIG_RTL8814A) || defined(CONFIG_RTL8821B) || defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8822C) || defined(CONFIG_RTL8814B) +#if defined(CONFIG_RTL8814A) || defined(CONFIG_RTL8821B) || defined(CONFIG_RTL8822B) \ + || defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8822C) || defined(CONFIG_RTL8814B) \ + || defined(CONFIG_RTL8723F) #ifdef PHYDM_PMAC_TX_SETTING_SUPPORT static void mpt_convert_phydm_txinfo_for_jaguar3( - RT_PMAC_TX_INFO pMacTxInfo, struct phydm_pmac_info *phydmtxinfo) + RT_PMAC_TX_INFO *pMacTxInfo, struct phydm_pmac_info *phydmtxinfo) { - phydmtxinfo->en_pmac_tx = pMacTxInfo.bEnPMacTx; - phydmtxinfo->mode = pMacTxInfo.Mode; - phydmtxinfo->tx_rate = MRateToHwRate(mpt_to_mgnt_rate(pMacTxInfo.TX_RATE)); - phydmtxinfo->tx_sc = pMacTxInfo.TX_SC; - phydmtxinfo->is_short_preamble = pMacTxInfo.bSPreamble; - phydmtxinfo->ndp_sound = pMacTxInfo.NDP_sound; - phydmtxinfo->bw = pMacTxInfo.BandWidth; - phydmtxinfo->m_stbc = pMacTxInfo.m_STBC; - phydmtxinfo->packet_period = pMacTxInfo.PacketPeriod; - phydmtxinfo->packet_count = pMacTxInfo.PacketCount; - phydmtxinfo->packet_pattern = pMacTxInfo.PacketPattern; - phydmtxinfo->sfd = pMacTxInfo.SFD; - phydmtxinfo->signal_field = pMacTxInfo.SignalField; - phydmtxinfo->service_field = pMacTxInfo.ServiceField; - phydmtxinfo->length = pMacTxInfo.LENGTH; - _rtw_memcpy(&phydmtxinfo->crc16,pMacTxInfo.CRC16, 2); - _rtw_memcpy(&phydmtxinfo->lsig , pMacTxInfo.LSIG,3); - _rtw_memcpy(&phydmtxinfo->ht_sig , pMacTxInfo.HT_SIG,6); - _rtw_memcpy(&phydmtxinfo->vht_sig_a , pMacTxInfo.VHT_SIG_A,6); - _rtw_memcpy(&phydmtxinfo->vht_sig_b , pMacTxInfo.VHT_SIG_B,4); - phydmtxinfo->vht_sig_b_crc = pMacTxInfo.VHT_SIG_B_CRC; - _rtw_memcpy(&phydmtxinfo->vht_delimiter,pMacTxInfo.VHT_Delimiter,4); + phydmtxinfo->en_pmac_tx = pMacTxInfo->bEnPMacTx; + phydmtxinfo->mode = pMacTxInfo->Mode; + phydmtxinfo->tx_rate = MRateToHwRate(mpt_to_mgnt_rate(pMacTxInfo->TX_RATE)); + phydmtxinfo->tx_sc = pMacTxInfo->TX_SC; + phydmtxinfo->is_short_preamble = pMacTxInfo->bSPreamble; + phydmtxinfo->ndp_sound = pMacTxInfo->NDP_sound; + phydmtxinfo->bw = pMacTxInfo->BandWidth; + phydmtxinfo->m_stbc = pMacTxInfo->m_STBC; + phydmtxinfo->packet_period = pMacTxInfo->PacketPeriod; + phydmtxinfo->packet_count = pMacTxInfo->PacketCount; + phydmtxinfo->packet_pattern = pMacTxInfo->PacketPattern; + phydmtxinfo->sfd = pMacTxInfo->SFD; + phydmtxinfo->signal_field = pMacTxInfo->SignalField; + phydmtxinfo->service_field = pMacTxInfo->ServiceField; + phydmtxinfo->length = pMacTxInfo->LENGTH; +#if defined(CONFIG_RTL8723F) + if (IS_MPT_CCK_RATE(pMacTxInfo->TX_RATE)) + phydmtxinfo->service_field_bit2= 0x1; + phydmtxinfo->packet_length = pMacTxInfo->PacketLength; +#endif + _rtw_memcpy(&phydmtxinfo->crc16,pMacTxInfo->CRC16, 2); + _rtw_memcpy(&phydmtxinfo->lsig , pMacTxInfo->LSIG,3); + _rtw_memcpy(&phydmtxinfo->ht_sig , pMacTxInfo->HT_SIG,6); + _rtw_memcpy(&phydmtxinfo->vht_sig_a , pMacTxInfo->VHT_SIG_A,6); + _rtw_memcpy(&phydmtxinfo->vht_sig_b , pMacTxInfo->VHT_SIG_B,4); + phydmtxinfo->vht_sig_b_crc = pMacTxInfo->VHT_SIG_B_CRC; + _rtw_memcpy(&phydmtxinfo->vht_delimiter,pMacTxInfo->VHT_Delimiter,4); } #endif /* for HW TX mode */ -void mpt_ProSetPMacTx(PADAPTER Adapter) +u8 mpt_ProSetPMacTx(PADAPTER Adapter) { HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter); PMPT_CONTEXT pMptCtx = &(Adapter->mppriv.mpt_ctx); struct mp_priv *pmppriv = &Adapter->mppriv; + struct hal_spec_t *hal_spec = GET_HAL_SPEC(Adapter); RT_PMAC_TX_INFO PMacTxInfo = pMptCtx->PMacTxInfo; - u32 u4bTmp; struct dm_struct *p_dm_odm; + u32 u4bTmp; + u8 status = _TRUE; p_dm_odm = &pHalData->odmpriv; @@ -2366,24 +2405,55 @@ void mpt_ProSetPMacTx(PADAPTER Adapter) RTW_INFO("TXSC %d BandWidth %d PacketPeriod %d PacketCount %d PacketLength %d PacketPattern %d\n", PMacTxInfo.TX_SC, PMacTxInfo.BandWidth, PMacTxInfo.PacketPeriod, PMacTxInfo.PacketCount, PMacTxInfo.PacketLength, PMacTxInfo.PacketPattern); - if (IS_HARDWARE_TYPE_JAGUAR3(Adapter)) { + if (hal_spec->tx_nss_num < 2 && MPT_IS_2SS_RATE(PMacTxInfo.TX_RATE)) + return _FALSE; + if (hal_spec->tx_nss_num < 3 && MPT_IS_3SS_RATE(PMacTxInfo.TX_RATE)) + return _FALSE; + if (hal_spec->tx_nss_num < 4 && MPT_IS_4SS_RATE(PMacTxInfo.TX_RATE)) + return _FALSE; + if (!is_supported_vht(Adapter->registrypriv.wireless_mode) && MPT_IS_VHT_RATE(PMacTxInfo.TX_RATE)) + return _FALSE; + if (!is_supported_ht(Adapter->registrypriv.wireless_mode) && MPT_IS_HT_RATE(PMacTxInfo.TX_RATE)) + return _FALSE; + + if (PMacTxInfo.BandWidth == 1 && hal_chk_bw_cap(Adapter, BW_CAP_40M)) + PMacTxInfo.BandWidth = CHANNEL_WIDTH_40; + else if (PMacTxInfo.BandWidth == 2 && hal_chk_bw_cap(Adapter, BW_CAP_80M)) + PMacTxInfo.BandWidth = CHANNEL_WIDTH_80; + else + PMacTxInfo.BandWidth = CHANNEL_WIDTH_20; + + if (IS_HARDWARE_TYPE_JAGUAR3(Adapter) || IS_HARDWARE_TYPE_JAGUAR3_11N(Adapter)) { #ifdef PHYDM_PMAC_TX_SETTING_SUPPORT struct phydm_pmac_info phydm_mactxinfo; if (PMacTxInfo.bEnPMacTx == TRUE) { pMptCtx->HWTxmode = PMacTxInfo.Mode; pMptCtx->mpt_rate_index = PMacTxInfo.TX_RATE; - if (PMacTxInfo.Mode == CONTINUOUS_TX) + if (PMacTxInfo.Mode != PACKETS_TX) hal_mpt_SetTxPower(Adapter); } else { PMacTxInfo.Mode = pMptCtx->HWTxmode; PMacTxInfo.TX_RATE = pMptCtx->mpt_rate_index; pMptCtx->HWTxmode = TEST_NONE; } - mpt_convert_phydm_txinfo_for_jaguar3(PMacTxInfo, &phydm_mactxinfo); + if (PMacTxInfo.Mode == OFDM_Single_Tone_TX) { + phydm_mp_set_single_tone(p_dm_odm, PMacTxInfo.bEnPMacTx ,pMptCtx->mpt_rf_path); + RTW_INFO("To set Tx mode OFDM_Single_Tone_TX\n"); + return status; + } + + if (PMacTxInfo.Mode == CCK_Carrier_Suppression_TX) { + phydm_mp_set_carrier_supp(p_dm_odm, PMacTxInfo.bEnPMacTx ,PMacTxInfo.TX_RATE); + + RTW_INFO("To set Tx mode CCK_Carrier_Suppression_TX\n"); + return status; + } + + mpt_convert_phydm_txinfo_for_jaguar3(&PMacTxInfo, &phydm_mactxinfo); phydm_set_pmac_tx(p_dm_odm, &phydm_mactxinfo, pMptCtx->mpt_rf_path); #endif - return; + return status; } if (PMacTxInfo.bEnPMacTx == FALSE) { @@ -2410,7 +2480,7 @@ void mpt_ProSetPMacTx(PADAPTER Adapter) mpt_SetSingleTone_8814A(Adapter, FALSE, TRUE); } pMptCtx->HWTxmode = TEST_NONE; - return; + return status; } pMptCtx->mpt_rate_index = PMacTxInfo.TX_RATE; @@ -2574,6 +2644,7 @@ void mpt_ProSetPMacTx(PADAPTER Adapter) if (PMacTxInfo.Mode == OFDM_Single_Tone_TX) mpt_SetSingleTone_8814A(Adapter, TRUE, TRUE); + return status; } #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_8822c/halmac_init_8822c.c b/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_8822c/halmac_init_8822c.c index 54c072ac..0c415c52 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_8822c/halmac_init_8822c.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_8822c/halmac_init_8822c.c @@ -56,33 +56,65 @@ #define RX_DLK_TIME 0x14 #define WLAN_SLOT_TIME 0x09 +#define WLAN_SLOT_TIME_5M 0x15 +#define WLAN_SLOT_TIME_10M 0x0D #define WLAN_PIFS_TIME 0x1C +#define WLAN_PIFS_TIME_5M 0x55 +#define WLAN_PIFS_TIME_10M 0x2D #define WLAN_SIFS_CCK_CONT_TX 0x0A #define WLAN_SIFS_OFDM_CONT_TX 0x0E +#define WLAN_SIFS_OFDM_CONT_TX_5M 0x38 +#define WLAN_SIFS_OFDM_CONT_TX_10M 0x1C #define WLAN_SIFS_CCK_TRX 0x0A #define WLAN_SIFS_OFDM_TRX 0x10 +#define WLAN_SIFS_OFDM_TRX_5M 0x40 +#define WLAN_SIFS_OFDM_TRX_10M 0x20 +#define WLAN_SIFS_OFDM_5M 0x40 +#define WLAN_SIFS_OFDM_10M 0x20 #define WLAN_NAV_MAX 0xC8 #define WLAN_RDG_NAV 0x05 #define WLAN_TXOP_NAV 0x1B #define WLAN_CCK_RX_TSF 0x30 #define WLAN_OFDM_RX_TSF 0x30 #define WLAN_TBTT_PROHIBIT 0x04 /* unit : 32us */ +#define WLAN_TBTT_PROHIBIT_5M 0x0F +#define WLAN_TBTT_PROHIBIT_10M 0x08 #define WLAN_TBTT_HOLD_TIME 0x064 /* unit : 32us */ +#define WLAN_TBTT_HOLD_TIME_5M 0x190 +#define WLAN_TBTT_HOLD_TIME_10M 0x0C8 #define WLAN_DRV_EARLY_INT 0x04 #define WLAN_BCN_CTRL_CLT0 0x10 #define WLAN_BCN_DMA_TIME 0x02 #define WLAN_BCN_MAX_ERR 0xFF #define WLAN_SIFS_CCK_DUR_TUNE 0x0A #define WLAN_SIFS_OFDM_DUR_TUNE 0x10 +#define WLAN_SIFS_OFDM_DUR_TUNE_5M 0x40 +#define WLAN_SIFS_OFDM_DUR_TUNE_10M 0x20 #define WLAN_SIFS_CCK_CTX 0x0A #define WLAN_SIFS_CCK_IRX 0x0A #define WLAN_SIFS_OFDM_CTX 0x0E +#define WLAN_SIFS_OFDM_CTX_5M 0x38 +#define WLAN_SIFS_OFDM_CTX_10M 0x1C #define WLAN_SIFS_OFDM_IRX 0x0E +#define WLAN_SIFS_OFDM_IRX_5M 0x38 +#define WLAN_SIFS_OFDM_IRX_10M 0x1C #define WLAN_EIFS_DUR_TUNE 0x40 +#define WLAN_EIFS_DUR_TUNE_5M 0xE2 +#define WLAN_EIFS_DUR_TUNE_10M 0x76 #define WLAN_EDCA_VO_PARAM 0x002FA226 +#define WLAN_EDCA_VO_PARAM_5M 0x002FA27A +#define WLAN_EDCA_VO_PARAM_10M 0x002FA242 #define WLAN_EDCA_VI_PARAM 0x005EA328 +#define WLAN_EDCA_VI_PARAM_5M 0x005EA382 +#define WLAN_EDCA_VI_PARAM_10M 0x005EA346 #define WLAN_EDCA_BE_PARAM 0x005EA42B +#define WLAN_EDCA_BE_PARAM_5M 0x005EA48E +#define WLAN_EDCA_BE_PARAM_10M 0x005EA44C #define WLAN_EDCA_BK_PARAM 0x0000A44F +#define WLAN_EDCA_BK_PARAM_5M 0x0000A4D3 +#define WLAN_EDCA_BK_PARAM_10M 0x0000A47B +#define WLAN_CPUMGQ_AIFS_5M 0x72 +#define WLAN_CPUMGQ_AIFS_10M 0x3E #define WLAN_RX_FILTER0 0xFFFFFFFF #define WLAN_RX_FILTER2 0xFFFF @@ -105,7 +137,11 @@ #define WLAN_RA_TRY_RATE_AGG_LIMIT 0x08 #define WLAN_RESP_TXRATE 0x84 #define WLAN_ACK_TO 0x21 +#define WLAN_ACK_TO_5M 0x75 +#define WLAN_ACK_TO_10M 0x3D #define WLAN_ACK_TO_CCK 0x6A +#define WLAN_CTS2TO_5M 0x50 +#define WLAN_CTS2TO_10M 0x28 #define WLAN_DATA_RATE_FB_CNT_1_4 0x01000000 #define WLAN_DATA_RATE_FB_CNT_5_8 0x08070504 #define WLAN_RTS_RATE_FB_CNT_5_8 0x08070504 @@ -124,16 +160,45 @@ #define WLAN_MAC_OPT_LB_FUNC1 0x80 #define WLAN_MAC_OPT_FUNC2 0xB1810041 +#define WLAN_PHY_REQ_DELAY_5M 0xE +#define WLAN_PHY_REQ_DELAY_10M 0xA +#define WLAN_PHY_REQ_DELAY 0xC + #define WLAN_SIFS_CFG (WLAN_SIFS_CCK_CONT_TX | \ (WLAN_SIFS_OFDM_CONT_TX << BIT_SHIFT_SIFS_OFDM_CTX) | \ (WLAN_SIFS_CCK_TRX << BIT_SHIFT_SIFS_CCK_TRX) | \ (WLAN_SIFS_OFDM_TRX << BIT_SHIFT_SIFS_OFDM_TRX)) +#define WLAN_SIFS_CFG_5M (WLAN_SIFS_CCK_CONT_TX | \ + (WLAN_SIFS_OFDM_CONT_TX_5M << \ + BIT_SHIFT_SIFS_OFDM_CTX) | \ + (WLAN_SIFS_CCK_TRX << \ + BIT_SHIFT_SIFS_CCK_TRX) | \ + (WLAN_SIFS_OFDM_TRX_5M<< \ + BIT_SHIFT_SIFS_OFDM_TRX)) +#define WLAN_SIFS_CFG_10M (WLAN_SIFS_CCK_CONT_TX | \ + (WLAN_SIFS_OFDM_CONT_TX_10M << \ + BIT_SHIFT_SIFS_OFDM_CTX) | \ + (WLAN_SIFS_CCK_TRX << \ + BIT_SHIFT_SIFS_CCK_TRX) | \ + (WLAN_SIFS_OFDM_TRX_10M << \ + BIT_SHIFT_SIFS_OFDM_TRX)) + #define WLAN_SIFS_DUR_TUNE (WLAN_SIFS_CCK_DUR_TUNE | \ (WLAN_SIFS_OFDM_DUR_TUNE << 8)) +#define WLAN_SIFS_DUR_TUNE_5M (WLAN_SIFS_CCK_DUR_TUNE | \ + (WLAN_SIFS_OFDM_DUR_TUNE_5M << 8)) +#define WLAN_SIFS_DUR_TUNE_10M (WLAN_SIFS_CCK_DUR_TUNE | \ + (WLAN_SIFS_OFDM_DUR_TUNE_10M<< 8)) #define WLAN_TBTT_TIME (WLAN_TBTT_PROHIBIT |\ (WLAN_TBTT_HOLD_TIME << BIT_SHIFT_TBTT_HOLD_TIME_AP)) +#define WLAN_TBTT_TIME_5M (WLAN_TBTT_PROHIBIT_5M |\ + (WLAN_TBTT_HOLD_TIME_5M << \ + BIT_SHIFT_TBTT_HOLD_TIME_AP)) +#define WLAN_TBTT_TIME_10M (WLAN_TBTT_PROHIBIT_10M |\ + (WLAN_TBTT_HOLD_TIME_10M << \ + BIT_SHIFT_TBTT_HOLD_TIME_AP)) #define WLAN_NAV_CFG (WLAN_RDG_NAV | (WLAN_TXOP_NAV << 16)) #define WLAN_RX_TSF_CFG (WLAN_CCK_RX_TSF | (WLAN_OFDM_RX_TSF) << 8) @@ -484,22 +549,13 @@ init_trx_cfg_8822c(struct halmac_adapter *adapter, enum halmac_trx_mode mode) if (fwff_is_empty_88xx(adapter) != HALMAC_RET_SUCCESS) PLTFM_MSG_ERR("[ERR]fwff is not empty\n"); } - -#if 1 - value16 = HALMAC_REG_R16(REG_CR); - PLTFM_MSG_TRACE("value16=0x%x\n", value16); - HALMAC_REG_W16(REG_CR, value16&0xFF00); -#else value8 = 0; HALMAC_REG_W8(REG_CR, value8); -#endif - value16 = HALMAC_REG_R16(REG_FWFF_PKT_INFO); HALMAC_REG_W16(REG_FWFF_CTRL, value16); value8 = MAC_TRX_ENABLE; HALMAC_REG_W8(REG_CR, value8); - if (en_fwff) HALMAC_REG_W8_SET(REG_WMAC_FWPKT_CR, BIT_FWEN); HALMAC_REG_W32(REG_H2CQ_CSR, BIT(31)); @@ -783,6 +839,9 @@ init_system_cfg_8822c(struct halmac_adapter *adapter) u32 value32; enum halmac_ret_status status; u8 hwval; +#if HALMAC_SDIO_SUPPORT + enum halmac_sdio_tx_format sdio_tx_format; +#endif PLTFM_MSG_TRACE("[TRACE]%s ===>\n", __func__); @@ -793,6 +852,15 @@ init_system_cfg_8822c(struct halmac_adapter *adapter) if (status != HALMAC_RET_SUCCESS) return status; } +#if HALMAC_SDIO_SUPPORT + if (adapter->intf == HALMAC_INTERFACE_SDIO) { + sdio_tx_format = HALMAC_SDIO_AGG_MODE; + status = set_hw_value_8822c(adapter, HALMAC_HW_SDIO_TX_FORMAT, + &sdio_tx_format); + if (status != HALMAC_RET_SUCCESS) + return status; + } +#endif value32 = HALMAC_REG_R32(REG_CPU_DMEM_CON); value32 |= (BIT_WL_PLATFORM_RST | BIT_DDMA_EN); @@ -802,7 +870,13 @@ init_system_cfg_8822c(struct halmac_adapter *adapter) HALMAC_REG_W8(REG_SYS_FUNC_EN + 1, value8); /*PHY_REQ_DELAY reg 0x1100[27:24] = 0x0C*/ - value8 = (HALMAC_REG_R8(REG_CR_EXT + 3) & 0xF0) | 0x0C; + value8 = HALMAC_REG_R8(REG_CR_EXT + 3) & 0xF0; + if (adapter->curr_bw == HALMAC_BW_5) + value8 |= WLAN_PHY_REQ_DELAY_5M; + else if (adapter->curr_bw == HALMAC_BW_10) + value8 |= WLAN_PHY_REQ_DELAY_10M; + else + value8 |= WLAN_PHY_REQ_DELAY; HALMAC_REG_W8(REG_CR_EXT + 3, value8); /*disable boot-from-flash for driver's DL FW*/ @@ -965,12 +1039,33 @@ init_edca_cfg_8822c(struct halmac_adapter *adapter) PLTFM_MSG_TRACE("[TRACE]%s ===>\n", __func__); - HALMAC_REG_W32(REG_EDCA_VO_PARAM, WLAN_EDCA_VO_PARAM); - HALMAC_REG_W32(REG_EDCA_VI_PARAM, WLAN_EDCA_VI_PARAM); - HALMAC_REG_W32(REG_EDCA_BE_PARAM, WLAN_EDCA_BE_PARAM); - HALMAC_REG_W32(REG_EDCA_BK_PARAM, WLAN_EDCA_BK_PARAM); - - HALMAC_REG_W8(REG_PIFS, WLAN_PIFS_TIME); + if (adapter->curr_bw == HALMAC_BW_5) { + HALMAC_REG_W8(REG_SLOT, WLAN_SLOT_TIME_5M); + HALMAC_REG_W8(REG_PIFS, WLAN_PIFS_TIME_5M); + HALMAC_REG_W32(REG_TBTT_PROHIBIT, WLAN_TBTT_TIME_5M); + HALMAC_REG_W32(REG_EDCA_VO_PARAM, WLAN_EDCA_VO_PARAM_5M); + HALMAC_REG_W32(REG_EDCA_VI_PARAM, WLAN_EDCA_VI_PARAM_5M); + HALMAC_REG_W32(REG_EDCA_BE_PARAM, WLAN_EDCA_BE_PARAM_5M); + HALMAC_REG_W32(REG_EDCA_BK_PARAM, WLAN_EDCA_BK_PARAM_5M); + HALMAC_REG_W8(REG_CPUMGQ_PARAMETER, WLAN_CPUMGQ_AIFS_5M); + } else if (adapter->curr_bw == HALMAC_BW_10) { + HALMAC_REG_W8(REG_SLOT, WLAN_SLOT_TIME_10M); + HALMAC_REG_W8(REG_PIFS, WLAN_PIFS_TIME_10M); + HALMAC_REG_W32(REG_TBTT_PROHIBIT, WLAN_TBTT_TIME_10M); + HALMAC_REG_W32(REG_EDCA_VO_PARAM, WLAN_EDCA_VO_PARAM_10M); + HALMAC_REG_W32(REG_EDCA_VI_PARAM, WLAN_EDCA_VI_PARAM_10M); + HALMAC_REG_W32(REG_EDCA_BE_PARAM, WLAN_EDCA_BE_PARAM_10M); + HALMAC_REG_W32(REG_EDCA_BK_PARAM, WLAN_EDCA_BK_PARAM_10M); + HALMAC_REG_W8(REG_CPUMGQ_PARAMETER, WLAN_CPUMGQ_AIFS_10M); + } else { + HALMAC_REG_W8(REG_SLOT, WLAN_SLOT_TIME); + HALMAC_REG_W8(REG_PIFS, WLAN_PIFS_TIME); + HALMAC_REG_W32(REG_TBTT_PROHIBIT, WLAN_TBTT_TIME); + HALMAC_REG_W32(REG_EDCA_VO_PARAM, WLAN_EDCA_VO_PARAM); + HALMAC_REG_W32(REG_EDCA_VI_PARAM, WLAN_EDCA_VI_PARAM); + HALMAC_REG_W32(REG_EDCA_BE_PARAM, WLAN_EDCA_BE_PARAM); + HALMAC_REG_W32(REG_EDCA_BK_PARAM, WLAN_EDCA_BK_PARAM); + } HALMAC_REG_W8_CLR(REG_TX_PTCL_CTRL + 1, BIT(4)); @@ -990,8 +1085,6 @@ init_edca_cfg_8822c(struct halmac_adapter *adapter) /* Clear TX pause */ HALMAC_REG_W16(REG_TXPAUSE, 0x0000); - HALMAC_REG_W8(REG_SLOT, WLAN_SLOT_TIME); - HALMAC_REG_W32(REG_RD_NAV_NXT, WLAN_NAV_CFG); HALMAC_REG_W16(REG_RXTSF_OFFSET_CCK, WLAN_RX_TSF_CFG); @@ -1000,7 +1093,6 @@ init_edca_cfg_8822c(struct halmac_adapter *adapter) BIT_EN_BCN_FUNCTION)); /* Set send beacon related registers */ - HALMAC_REG_W32(REG_TBTT_PROHIBIT, WLAN_TBTT_TIME); HALMAC_REG_W8(REG_DRVERLYINT, WLAN_DRV_EARLY_INT); HALMAC_REG_W8(REG_BCN_CTRL_CLINT0, WLAN_BCN_CTRL_CLT0); HALMAC_REG_W8(REG_BCNDMATIM, WLAN_BCN_DMA_TIME); @@ -1032,12 +1124,28 @@ init_sifs_ctrl_8822c(struct halmac_adapter *adapter) { struct halmac_api *api = (struct halmac_api *)adapter->halmac_api; - HALMAC_REG_W16(REG_SPEC_SIFS, WLAN_SIFS_DUR_TUNE); - HALMAC_REG_W32(REG_SIFS, WLAN_SIFS_CFG); + if (adapter->curr_bw == HALMAC_BW_5) { + HALMAC_REG_W16(REG_RESP_SIFS_OFDM, + WLAN_SIFS_OFDM_CTX_5M | WLAN_SIFS_OFDM_IRX_5M << 8); + HALMAC_REG_W16(REG_SPEC_SIFS, WLAN_SIFS_DUR_TUNE_5M); + HALMAC_REG_W32(REG_SIFS, WLAN_SIFS_CFG_5M); + HALMAC_REG_W16(REG_MAC_SPEC_SIFS + 1, WLAN_SIFS_OFDM_5M); + } else if (adapter->curr_bw == HALMAC_BW_10) { + HALMAC_REG_W16(REG_RESP_SIFS_OFDM, + WLAN_SIFS_OFDM_CTX_10M | WLAN_SIFS_OFDM_IRX_10M << 8); + HALMAC_REG_W16(REG_SPEC_SIFS, WLAN_SIFS_DUR_TUNE_10M); + HALMAC_REG_W32(REG_SIFS, WLAN_SIFS_CFG_10M); + HALMAC_REG_W16(REG_MAC_SPEC_SIFS + 1, WLAN_SIFS_OFDM_10M); + } else { + HALMAC_REG_W16(REG_RESP_SIFS_OFDM, + WLAN_SIFS_OFDM_CTX | WLAN_SIFS_OFDM_IRX << 8); + HALMAC_REG_W16(REG_SPEC_SIFS, WLAN_SIFS_DUR_TUNE); + HALMAC_REG_W32(REG_SIFS, WLAN_SIFS_CFG); + } + HALMAC_REG_W16(REG_RESP_SIFS_CCK, WLAN_SIFS_CCK_CTX | WLAN_SIFS_CCK_IRX << 8); - HALMAC_REG_W16(REG_RESP_SIFS_OFDM, - WLAN_SIFS_OFDM_CTX | WLAN_SIFS_OFDM_IRX << 8); + } static void @@ -1075,13 +1183,25 @@ init_wmac_cfg_8822c(struct halmac_adapter *adapter) PLTFM_MSG_TRACE("[TRACE]%s ===>\n", __func__); + if (adapter->curr_bw == HALMAC_BW_5) { + HALMAC_REG_W8(REG_ACKTO, WLAN_ACK_TO_5M); + HALMAC_REG_W8(REG_CTS2TO, WLAN_CTS2TO_5M); + HALMAC_REG_W16(REG_EIFS, WLAN_EIFS_DUR_TUNE_5M); + } else if (adapter->curr_bw == HALMAC_BW_10) { + HALMAC_REG_W8(REG_ACKTO, WLAN_ACK_TO_10M); + HALMAC_REG_W8(REG_CTS2TO, WLAN_CTS2TO_10M); + HALMAC_REG_W16(REG_EIFS, WLAN_EIFS_DUR_TUNE_10M); + } else { + HALMAC_REG_W8(REG_ACKTO, WLAN_ACK_TO); + HALMAC_REG_W16(REG_EIFS, WLAN_EIFS_DUR_TUNE); + } + HALMAC_REG_W32(REG_MAR, 0xFFFFFFFF); HALMAC_REG_W32(REG_MAR + 4, 0xFFFFFFFF); HALMAC_REG_W8(REG_BBPSF_CTRL + 2, WLAN_RESP_TXRATE); - HALMAC_REG_W8(REG_ACKTO, WLAN_ACK_TO); + HALMAC_REG_W8(REG_ACKTO_CCK, WLAN_ACK_TO_CCK); - HALMAC_REG_W16(REG_EIFS, WLAN_EIFS_DUR_TUNE); HALMAC_REG_W8(REG_NAV_CTRL + 2, WLAN_NAV_MAX); @@ -1101,7 +1221,8 @@ init_wmac_cfg_8822c(struct halmac_adapter *adapter) HALMAC_REG_W8(REG_TCR + 2, WLAN_TX_FUNC_CFG2); HALMAC_REG_W8(REG_TCR + 1, WLAN_TX_FUNC_CFG1); - HALMAC_REG_W16_SET(REG_GENERAL_OPTION, BIT_DUMMY_FCS_READY_MASK_EN); + HALMAC_REG_W16_SET(REG_GENERAL_OPTION, + BIT_DUMMY_FCS_READY_MASK_EN | BIT_RXFIFO_GNT_CUT); HALMAC_REG_W8_SET(REG_SND_PTCL_CTRL, BIT_R_DISABLE_CHECK_VHTSIGB_CRC); @@ -1188,3 +1309,4 @@ pre_init_system_cfg_8822c(struct halmac_adapter *adapter) } #endif /* HALMAC_8822C_SUPPORT */ + diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_8822c/halmac_pwr_seq_8822c.c b/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_8822c/halmac_pwr_seq_8822c.c index abcd6b2c..52ecd7f8 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_8822c/halmac_pwr_seq_8822c.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_8822c/halmac_pwr_seq_8822c.c @@ -102,23 +102,23 @@ static struct halmac_wlan_pwr_cfg TRANS_CARDEMU_TO_ACT_8822C[] = { HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_ADDR_MAC, - HALMAC_PWR_CMD_WRITE, BIT(0), BIT(0)}, - {0x0005, - HALMAC_PWR_CUT_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, - HALMAC_PWR_ADDR_MAC, - HALMAC_PWR_CMD_WRITE, (BIT(4) | BIT(3)), 0}, - {0x1018, - HALMAC_PWR_CUT_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, - HALMAC_PWR_ADDR_MAC, - HALMAC_PWR_CMD_WRITE, BIT(2), BIT(2)}, - {0x0005, - HALMAC_PWR_CUT_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, - HALMAC_PWR_ADDR_MAC, - HALMAC_PWR_CMD_WRITE, BIT(0), BIT(0)}, - {0x0005, + HALMAC_PWR_CMD_WRITE, BIT(0), BIT(0)}, + {0x0005, + HALMAC_PWR_CUT_ALL_MSK, + HALMAC_PWR_INTF_ALL_MSK, + HALMAC_PWR_ADDR_MAC, + HALMAC_PWR_CMD_WRITE, (BIT(4) | BIT(3)), 0}, + {0x1018, + HALMAC_PWR_CUT_ALL_MSK, + HALMAC_PWR_INTF_ALL_MSK, + HALMAC_PWR_ADDR_MAC, + HALMAC_PWR_CMD_WRITE, BIT(2), BIT(2)}, + {0x0005, + HALMAC_PWR_CUT_ALL_MSK, + HALMAC_PWR_INTF_ALL_MSK, + HALMAC_PWR_ADDR_MAC, + HALMAC_PWR_CMD_WRITE, BIT(0), BIT(0)}, + {0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_ADDR_MAC, diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_8822c/halmac_pwr_seq_8822c.h b/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_8822c/halmac_pwr_seq_8822c.h index 3c42213a..ea3031ef 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_8822c/halmac_pwr_seq_8822c.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_8822c/halmac_pwr_seq_8822c.h @@ -15,19 +15,19 @@ #ifndef HALMAC_POWER_SEQUENCE_8822C #define HALMAC_POWER_SEQUENCE_8822C - -#include "../../halmac_pwr_seq_cmd.h" -#include "../../halmac_hw_cfg.h" - -#if HALMAC_8822C_SUPPORT - + +#include "../../halmac_pwr_seq_cmd.h" +#include "../../halmac_hw_cfg.h" + +#if HALMAC_8822C_SUPPORT + #define HALMAC_8822C_PWR_SEQ_VER "V16" - -extern struct halmac_wlan_pwr_cfg *card_en_flow_8822c[]; -extern struct halmac_wlan_pwr_cfg *card_dis_flow_8822c[]; - -#if HALMAC_PLATFORM_TESTPROGRAM -extern struct halmac_wlan_pwr_cfg *suspend_flow_8822c[]; + +extern struct halmac_wlan_pwr_cfg *card_en_flow_8822c[]; +extern struct halmac_wlan_pwr_cfg *card_dis_flow_8822c[]; + +#if HALMAC_PLATFORM_TESTPROGRAM +extern struct halmac_wlan_pwr_cfg *suspend_flow_8822c[]; extern struct halmac_wlan_pwr_cfg *resume_flow_8822c[]; extern struct halmac_wlan_pwr_cfg *hwpdn_flow_8822c[]; extern struct halmac_wlan_pwr_cfg *enter_lps_flow_8822c[]; diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_cfg_wmac_88xx.c b/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_cfg_wmac_88xx.c index 053a552d..db987c5f 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_cfg_wmac_88xx.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_cfg_wmac_88xx.c @@ -20,6 +20,8 @@ #if HALMAC_88XX_SUPPORT #define MAC_CLK_SPEED 80 /* 80M */ +#define MAC_CLK_SPEED_BW_5M_10M 20 /* 20M */ + #define EFUSE_PCB_INFO_OFFSET 0xCA enum mac_clock_hw_def { @@ -588,14 +590,21 @@ cfg_bw_88xx(struct halmac_adapter *adapter, enum halmac_bw bw) switch (bw) { case HALMAC_BW_80: + adapter->curr_bw = HALMAC_BW_80; value32 = value32 | BIT(8); break; case HALMAC_BW_40: + adapter->curr_bw = HALMAC_BW_40; value32 = value32 | BIT(7); break; case HALMAC_BW_20: + adapter->curr_bw = HALMAC_BW_20; + break; case HALMAC_BW_10: + adapter->curr_bw = HALMAC_BW_10; + break; case HALMAC_BW_5: + adapter->curr_bw = HALMAC_BW_5; break; default: break; @@ -715,11 +724,18 @@ cfg_mac_clk_88xx(struct halmac_adapter *adapter) struct halmac_api *api = (struct halmac_api *)adapter->halmac_api; value32 = HALMAC_REG_R32(REG_AFE_CTRL1) & ~(BIT(20) | BIT(21)); - value32 |= (MAC_CLK_HW_DEF_80M << BIT_SHIFT_MAC_CLK_SEL); - HALMAC_REG_W32(REG_AFE_CTRL1, value32); - - HALMAC_REG_W8(REG_USTIME_TSF, MAC_CLK_SPEED); - HALMAC_REG_W8(REG_USTIME_EDCA, MAC_CLK_SPEED); + if (adapter->curr_bw == HALMAC_BW_5 || + adapter->curr_bw == HALMAC_BW_10) { + value32 |= (MAC_CLK_HW_DEF_20M << BIT_SHIFT_MAC_CLK_SEL); + HALMAC_REG_W32(REG_AFE_CTRL1, value32); + HALMAC_REG_W8(REG_USTIME_TSF, MAC_CLK_SPEED_BW_5M_10M); + HALMAC_REG_W8(REG_USTIME_EDCA, MAC_CLK_SPEED_BW_5M_10M); + } else { + value32 |= (MAC_CLK_HW_DEF_80M << BIT_SHIFT_MAC_CLK_SEL); + HALMAC_REG_W32(REG_AFE_CTRL1, value32); + HALMAC_REG_W8(REG_USTIME_TSF, MAC_CLK_SPEED); + HALMAC_REG_W8(REG_USTIME_EDCA, MAC_CLK_SPEED); + } } /** diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_common_88xx.c b/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_common_88xx.c index 00f5a2f0..ddc9342c 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_common_88xx.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_common_88xx.c @@ -2712,7 +2712,7 @@ wlhdr_data_valid_88xx(struct halmac_adapter *adapter, /** * get_version_88xx() - get HALMAC version - * @ver : return version of major, prototype and minor information + * @ver : return version of major, prototype, minor and patch information * Author : KaiYuan Chang / Ivan Lin * Return : enum halmac_ret_status * More details of status code can be found in prototype document @@ -2725,6 +2725,7 @@ get_version_88xx(struct halmac_adapter *adapter, struct halmac_ver *ver) ver->major_ver = (u8)HALMAC_MAJOR_VER; ver->prototype_ver = (u8)HALMAC_PROTOTYPE_VER; ver->minor_ver = (u8)HALMAC_MINOR_VER; + ver->patch_ver = (u8)HALMAC_PATCH_VER; PLTFM_MSG_TRACE("[TRACE]%s <===\n", __func__); @@ -2956,6 +2957,15 @@ cfg_drv_rsvd_pg_num_88xx(struct halmac_adapter *adapter, case HALMAC_RSVD_PG_NUM256: adapter->txff_alloc.rsvd_drv_pg_num = 256; break; + case HALMAC_RSVD_PG_NUM512: + adapter->txff_alloc.rsvd_drv_pg_num = 512; + break; + case HALMAC_RSVD_PG_NUM1024: + adapter->txff_alloc.rsvd_drv_pg_num = 1024; + break; + case HALMAC_RSVD_PG_NUM1460: + adapter->txff_alloc.rsvd_drv_pg_num = 1460; + break; } PLTFM_MSG_TRACE("[TRACE]%s <===\n", __func__); @@ -3221,6 +3231,15 @@ parse_intf_phy_88xx(struct halmac_adapter *adapter, } else if (intf_phy == HAL_INTF_PHY_USB2 || intf_phy == HAL_INTF_PHY_USB3) { #if HALMAC_USB_SUPPORT + if (offset > 0x100) + usb_page_switch_88xx(adapter, + intf_phy, + 1); + else + usb_page_switch_88xx(adapter, + intf_phy, + 0); + offset = offset & 0xFF; result = usbphy_write_88xx(adapter, (u8)offset, value, intf_phy); if (result != HALMAC_RET_SUCCESS) diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_efuse_88xx.c b/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_efuse_88xx.c index c40df153..184c2df5 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_efuse_88xx.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_efuse_88xx.c @@ -33,6 +33,8 @@ #define SUPER_USB_RE_PG_CK_ZONE0_START 0x15D #define SUPER_USB_RE_PG_CK_ZONE0_END 0x164 +static u8 bt_switch = 0; + static enum halmac_cmd_construct_state efuse_cmd_cnstr_state_88xx(struct halmac_adapter *adapter); @@ -258,13 +260,23 @@ dump_efuse_map_bt_88xx(struct halmac_adapter *adapter, PLTFM_MSG_ERR("[ERR]switch efuse bank!!\n"); return status; } + bt_switch = 1; status = read_hw_efuse_88xx(adapter, 0, size, map); if (status != HALMAC_RET_SUCCESS) { + bt_switch = 0; PLTFM_MSG_ERR("[ERR]read hw efuse\n"); return status; } + status = switch_efuse_bank_88xx(adapter, HALMAC_EFUSE_BANK_WIFI); + if (status != HALMAC_RET_SUCCESS) { + bt_switch = 0; + PLTFM_MSG_ERR("[ERR]switch efuse bank!!\n"); + return status; + } + bt_switch = 0; + if (cnv_efuse_state_88xx(adapter, HALMAC_CMD_CNSTR_IDLE) != HALMAC_RET_SUCCESS) return HALMAC_RET_ERROR_STATE; @@ -320,13 +332,23 @@ write_efuse_bt_88xx(struct halmac_adapter *adapter, u32 offset, u8 value, PLTFM_MSG_ERR("[ERR]switch efuse bank!!\n"); return status; } + bt_switch = 1; status = write_hw_efuse_88xx(adapter, offset, value); if (status != HALMAC_RET_SUCCESS) { + bt_switch = 0; PLTFM_MSG_ERR("[ERR]write efuse\n"); return status; } + status = switch_efuse_bank_88xx(adapter, HALMAC_EFUSE_BANK_WIFI); + if (status != HALMAC_RET_SUCCESS) { + bt_switch = 0; + PLTFM_MSG_ERR("[ERR]switch efuse bank!!\n"); + return status; + } + bt_switch = 0; + if (cnv_efuse_state_88xx(adapter, HALMAC_CMD_CNSTR_IDLE) != HALMAC_RET_SUCCESS) return HALMAC_RET_ERROR_STATE; @@ -382,13 +404,23 @@ read_efuse_bt_88xx(struct halmac_adapter *adapter, u32 offset, u8 *value, PLTFM_MSG_ERR("[ERR]switch efuse bank\n"); return status; } + bt_switch = 1; status = read_efuse_88xx(adapter, offset, 1, value); if (status != HALMAC_RET_SUCCESS) { + bt_switch = 0; PLTFM_MSG_ERR("[ERR]read efuse\n"); return status; } + status = switch_efuse_bank_88xx(adapter, HALMAC_EFUSE_BANK_WIFI); + if (status != HALMAC_RET_SUCCESS) { + bt_switch = 0; + PLTFM_MSG_ERR("[ERR]switch efuse bank!!\n"); + return status; + } + bt_switch = 0; + if (cnv_efuse_state_88xx(adapter, HALMAC_CMD_CNSTR_IDLE) != HALMAC_RET_SUCCESS) return HALMAC_RET_ERROR_STATE; @@ -966,9 +998,11 @@ switch_efuse_bank_88xx(struct halmac_adapter *adapter, u8 reg_value; struct halmac_api *api = (struct halmac_api *)adapter->halmac_api; - if (cnv_efuse_state_88xx(adapter, HALMAC_CMD_CNSTR_BUSY) != - HALMAC_RET_SUCCESS) - return HALMAC_RET_ERROR_STATE; + if (!bt_switch) { + if (cnv_efuse_state_88xx(adapter, HALMAC_CMD_CNSTR_BUSY) != + HALMAC_RET_SUCCESS) + return HALMAC_RET_ERROR_STATE; + } reg_value = HALMAC_REG_R8(REG_LDO_EFUSE_CTRL + 1); diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_init_88xx.c b/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_init_88xx.c index 1cdd0e1f..99c442f4 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_init_88xx.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_init_88xx.c @@ -163,6 +163,7 @@ init_adapter_param_88xx(struct halmac_adapter *adapter) adapter->pcie_refautok_en = 1; adapter->pwr_off_flow_flag = 0; + adapter->curr_bw = HALMAC_BW_20; adapter->rx_ignore_info.hdr_chk_mask = 1; adapter->rx_ignore_info.fcs_chk_mask = 1; diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_mimo_88xx.c b/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_mimo_88xx.c index d59bb3df..26de2edb 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_mimo_88xx.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_88xx/halmac_mimo_88xx.c @@ -63,8 +63,10 @@ cfg_txbf_88xx(struct halmac_adapter *adapter, u8 userid, enum halmac_bw bw, switch (bw) { case HALMAC_BW_80: tmp42c |= BIT_R_TXBF0_80M; + fallthrough; case HALMAC_BW_40: tmp42c |= BIT_R_TXBF0_40M; + fallthrough; case HALMAC_BW_20: tmp42c |= BIT_R_TXBF0_20M; break; diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_api.c b/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_api.c index d6f531d3..bec705cc 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_api.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_api.c @@ -473,7 +473,7 @@ chk_pltfm_api(void *drv_adapter, enum halmac_interface intf, /** * halmac_get_version() - get HALMAC version - * @version : return version of major, prototype and minor information + * @version : return version of major, prototype, minor and patch information * Author : KaiYuan Chang / Ivan Lin * Return : enum halmac_ret_status * More details of status code can be found in prototype document @@ -484,6 +484,7 @@ halmac_get_version(struct halmac_ver *version) version->major_ver = (u8)HALMAC_MAJOR_VER; version->prototype_ver = (u8)HALMAC_PROTOTYPE_VER; version->minor_ver = (u8)HALMAC_MINOR_VER; + version->patch_ver = (u8)HALMAC_PATCH_VER; return HALMAC_RET_SUCCESS; } diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_api.h b/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_api.h index 17ac09ae..6453cc7e 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_api.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_api.h @@ -16,18 +16,18 @@ #ifndef _HALMAC_API_H_ #define _HALMAC_API_H_ -#define HALMAC_SVN_VER "51432M" +#define HALMAC_SVN_VER "55772M" #define HALMAC_MAJOR_VER 1 #define HALMAC_PROTOTYPE_VER 6 #define HALMAC_MINOR_VER 6 -#define HALMAC_PATCH_VER 16 +#define HALMAC_PATCH_VER 26 #define HALMAC_88XX_SUPPORT (HALMAC_8821C_SUPPORT || \ HALMAC_8822B_SUPPORT || \ - HALMAC_8822C_SUPPORT || \ - HALMAC_8812F_SUPPORT) - + HALMAC_8822C_SUPPORT || \ + HALMAC_8812F_SUPPORT) + #define HALMAC_88XX_V1_SUPPORT HALMAC_8814B_SUPPORT #include "halmac_2_platform.h" diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_type.h b/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_type.h index 108b877c..cc694a14 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_type.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_type.h @@ -566,6 +566,13 @@ enum halmac_chip_ver { HALMAC_CHIP_VER_D_CUT = 0x03, HALMAC_CHIP_VER_E_CUT = 0x04, HALMAC_CHIP_VER_F_CUT = 0x05, + HALMAC_CHIP_VER_G_CUT = 0x06, + HALMAC_CHIP_VER_H_CUT = 0x07, + HALMAC_CHIP_VER_I_CUT = 0x08, + HALMAC_CHIP_VER_J_CUT = 0x09, + HALMAC_CHIP_VER_K_CUT = 0x0A, + HALMAC_CHIP_VER_L_CUT = 0x0B, + HALMAC_CHIP_VER_M_CUT = 0x0C, HALMAC_CHIP_VER_TEST = 0xFF, HALMAC_CHIP_VER_UNDEFINE = 0x7FFF, }; @@ -1298,6 +1305,9 @@ enum halmac_drv_rsvd_pg_num { HALMAC_RSVD_PG_NUM64, /* 8K */ HALMAC_RSVD_PG_NUM128, /* 16K */ HALMAC_RSVD_PG_NUM256, /* 32K */ + HALMAC_RSVD_PG_NUM512, /* 64K */ + HALMAC_RSVD_PG_NUM1024, /* 128K */ + HALMAC_RSVD_PG_NUM1460, /* 182K */ }; enum halmac_pcie_cfg { @@ -1497,6 +1507,7 @@ struct halmac_ver { u8 major_ver; u8 prototype_ver; u8 minor_ver; + u8 patch_ver; }; enum halmac_api_id { @@ -2173,6 +2184,7 @@ struct halmac_adapter { u8 pcie_refautok_en; u8 pwr_off_flow_flag; u8 nlo_flag; + enum halmac_bw curr_bw; struct halmac_rx_ignore_info rx_ignore_info; struct halmac_watcher watcher; #if HALMAC_PLATFORM_TESTPROGRAM diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_usb_reg.h b/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_usb_reg.h index f53c2435..dd7a0162 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_usb_reg.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/halmac/halmac_usb_reg.h @@ -16,4 +16,6 @@ #ifndef __HALMAC_USB_REG_H__ #define __HALMAC_USB_REG_H__ +#define USB_REG_PAGE 0xF4 + #endif/* __HALMAC_USB_REG_H__ */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/led/hal_led.c b/drivers/net/wireless/realtek/rtl8822ce/hal/led/hal_led.c index 95d3daa2..2a753f9c 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/led/hal_led.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/led/hal_led.c @@ -63,7 +63,7 @@ void rtw_led_set_strategy(_adapter *adapter, u8 strategy) rtw_hal_sw_led_deinit(pri_adapter); #endif - rtw_led_control(pri_adapter, RTW_LED_OFF); + rtw_led_control(pri_adapter, LED_CTL_POWER_OFF); } #ifdef CONFIG_RTW_SW_LED diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/ap_makefile.mk b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/ap_makefile.mk index 668174fd..980bc851 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/ap_makefile.mk +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/ap_makefile.mk @@ -122,7 +122,8 @@ ifeq ($(CONFIG_WLAN_HAL_8812FE),y) _PHYDM_FILES += \ phydm/rtl8812f/halhwimg8812f_bb.o\ phydm/rtl8812f/phydm_regconfig8812f.o\ - phydm/rtl8812f/phydm_hal_api8812f.o + phydm/rtl8812f/phydm_hal_api8812f.o\ + phydm/rtl8812f/phydm_rtl8812f.o endif endif @@ -135,7 +136,8 @@ ifeq ($(CONFIG_WLAN_HAL_8821CE),y) phydm/rtl8821c/halhwimg8821c_bb.o\ phydm/rtl8821c/halhwimg8821c_mac.o\ phydm/rtl8821c/phydm_regconfig8821c.o\ - phydm/rtl8821c/phydm_hal_api8821c.o + phydm/rtl8821c/phydm_hal_api8821c.o\ + phydm/rtl8821c/phydm_rtl8821c.o endif endif @@ -193,12 +195,24 @@ ifeq ($(CONFIG_WLAN_HAL_8814BE),y) _PHYDM_FILES += phydm/halrf/rtl8814b/halrf_txgapk_8814b.o _PHYDM_FILES += phydm/halrf/rtl8814b/halrf_rfk_init_8814b.o _PHYDM_FILES += phydm/halrf/rtl8814b/halhwimg8814b_rf.o + ifeq ($(CONFIG_WLAN_HAL_8814CR),y) + _PHYDM_FILES += phydm/halrf/rtl8814c/halrf_8814c.o + _PHYDM_FILES += phydm/halrf/rtl8814c/halrf_iqk_8814c.o + _PHYDM_FILES += phydm/halrf/rtl8814c/halrf_dpk_8814c.o + _PHYDM_FILES += phydm/halrf/rtl8814c/halrf_txgapk_8814c.o + _PHYDM_FILES += phydm/halrf/rtl8814c/halrf_rfk_init_8814c.o + _PHYDM_FILES += phydm/halrf/rtl8814c/halhwimg8814c_rf.o + endif ifeq ($(CONFIG_RTL_ODM_WLAN_DRIVER),y) _PHYDM_FILES += \ phydm/rtl8814b/phydm_hal_api8814b.o\ phydm/rtl8814b/halhwimg8814b_bb.o\ + phydm/rtl8814c/halhwimg8814c_bb.o\ phydm/rtl8814b/phydm_regconfig8814b.o \ - phydm/halrf/rtl8814b/halrf_8814b.o + phydm/rtl8814b/phydm_extraagc8814b.o \ + phydm/rtl8814c/phydm_extraagc8814c.o \ + phydm/halrf/rtl8814b/halrf_8814b.o \ + phydm/halrf/rtl8814c/halrf_8814c.o endif endif @@ -215,7 +229,20 @@ ifeq ($(CONFIG_WLAN_HAL_8197G),y) phydm/rtl8197g/halhwimg8197g_bb.o\ phydm/rtl8197g/halhwimg8197g_mac.o\ phydm/rtl8197g/phydm_regconfig8197g.o \ + phydm/rtl8197g/phydm_rtl8197g.o \ phydm/halrf/rtl8197g/halrf_8197g.o endif endif - +ifeq ($(CONFIG_WLAN_HAL_8723FE),y) + _PHYDM_FILES += phydm/halrf/rtl8723f/halrf_8723f.o + _PHYDM_FILES += phydm/halrf/rtl8723f/halrf_iqk_8723f.o + _PHYDM_FILES += phydm/halrf/rtl8723f/halrf_dpk_8723f.o + _PHYDM_FILES += phydm/halrf/rtl8723f/halrf_rfk_init_8723f.o + _PHYDM_FILES += phydm/halrf/rtl8723f/halhwimg8723f_rf.o + ifeq ($(CONFIG_RTL_ODM_WLAN_DRIVER),y) + _PHYDM_FILES += \ + phydm/rtl8723f/halhwimg8723f_bb.o\ + phydm/rtl8723f/phydm_regconfig8723f.o\ + phydm/rtl8723f/phydm_hal_api8723f.o + endif +endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halphyrf_ap.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halphyrf_ap.c index 47bbe294..0cafd697 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halphyrf_ap.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halphyrf_ap.c @@ -121,6 +121,12 @@ void configure_txpower_track( configure_txpower_track_8197g(config); #endif +#if RTL8814C_SUPPORT + if (dm->support_ic_type == ODM_RTL8814C) + configure_txpower_track_8814c(config); +#endif + + } #if (RTL8192E_SUPPORT == 1) @@ -355,7 +361,7 @@ odm_txpowertracking_callback_thermal_meter_92e( } #endif -#if (RTL8814B_SUPPORT == 1 || RTL8812F_SUPPORT == 1 || RTL8822C_SUPPORT == 1 || RTL8197G_SUPPORT == 1) +#if (RTL8814B_SUPPORT == 1 || RTL8812F_SUPPORT == 1 || RTL8822C_SUPPORT == 1 || RTL8197G_SUPPORT == 1 || RTL8814C_SUPPORT == 1) void odm_txpowertracking_callback_thermal_meter_jaguar_series4(void *dm_void) { @@ -394,7 +400,7 @@ odm_txpowertracking_callback_thermal_meter_jaguar_series4(void *dm_void) (u8 **)&pwrtrk_tab_up_a, (u8 **)&pwrtrk_tab_down_a, (u8 **)&pwrtrk_tab_up_b, (u8 **)&pwrtrk_tab_down_b); - if (GET_CHIP_VER(priv) == VERSION_8814B) { + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { (*c.get_delta_swing_table8814only)(dm, (u8 **)&pwrtrk_tab_up_c, (u8 **)&pwrtrk_tab_down_c, (u8 **)&pwrtrk_tab_up_d, (u8 **)&pwrtrk_tab_down_d); @@ -433,14 +439,17 @@ odm_txpowertracking_callback_thermal_meter_jaguar_series4(void *dm_void) priv->pmib->dot11RFEntry.thermal[i] == 0x0) return; } - if (dm->support_ic_type & (ODM_RTL8822C | ODM_RTL8812F | ODM_RTL8197G)) { + if (dm->support_ic_type & (ODM_RTL8822C | ODM_RTL8812F)) { for (i = 0; i < c.rf_path_count; i++) thermal_value[i] = (u8)odm_get_rf_reg(dm, i, c.thermal_reg_addr, 0x7e); /* 0x42: RF Reg[6:1] Thermal Trim*/ + } else if (dm->support_ic_type == ODM_RTL8197G) { + for (i = 0; i < c.rf_path_count; i++) + thermal_value[i] = (u8)odm_get_rf_reg(dm, i, RF_0xf6, 0x7E000); } else { for (i = 0; i < c.rf_path_count; i++) { thermal_value[i] = (u8)odm_get_rf_reg(dm, i, c.thermal_reg_addr, 0xfc00); /* 0x42: RF Reg[15:10] 88E */ - if (dm->support_ic_type == ODM_RTL8814B) { + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { thermal_value_temp[i] = (s8)thermal_value[i] + phydm_get_multi_thermal_offset(dm, i); RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "thermal_value_temp[%d](%d) = thermal_value[%d](%d) + multi_thermal_trim(%d)\n", i, thermal_value_temp[i], i, thermal_value[i], phydm_get_multi_thermal_offset(dm, i)); @@ -589,14 +598,13 @@ odm_txpowertracking_callback_thermal_meter_jaguar_series4(void *dm_void) } } - if (dm->support_ic_type == ODM_RTL8822C || dm->support_ic_type == ODM_RTL8812F || - dm->support_ic_type == ODM_RTL8814B || dm->support_ic_type == ODM_RTL8197G) + if (dm->support_ic_type & (ODM_RTL8822C | ODM_RTL8812F | ODM_RTL8814B | ODM_RTL8197G | ODM_RTL8814C)) for (p = RF_PATH_A; p < c.rf_path_count; p++) (*c.odm_tx_pwr_track_set_pwr)(dm, tracking_method, p, 0); #endif /* Wait sacn to do IQK by RF Jenyu*/ - if ((*dm->is_scan_in_process == false) && (!iqk_info->rfk_forbidden) && dm->is_linked) { + if ((*dm->is_scan_in_process == false) && (!iqk_info->rfk_forbidden) && (dm->is_linked || *dm->mp_mode)) { /*Delta temperature is equal to or larger than 20 centigrade (When threshold is 8).*/ if (delta_IQK >= c.threshold_iqk) { cali_info->thermal_value_iqk = thermal_value[RF_PATH_A]; @@ -606,9 +614,12 @@ odm_txpowertracking_callback_thermal_meter_jaguar_series4(void *dm_void) /* (*c.do_iqk)(dm, delta_IQK, thermal_value[RF_PATH_A], 8);*/ /*RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "Do IQK\n");*/ - /*if (!cali_info->is_iqk_in_progress)*/ - /* (*c.do_tssi_dck)(dm, true);*/ - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "Do TSSI DCK\n"); + if (dm->support_ic_type == ODM_RTL8814C) { + if ( (!cali_info->is_iqk_in_progress) && (!cali_info->is_lck_in_progress) ) + (*c.do_tssi_dck)(dm, true); + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "Do TSSI DCK\n"); + } + } } @@ -1339,8 +1350,8 @@ odm_txpowertracking_callback_thermal_meter( struct dm_iqk_info *iqk_info = &dm->IQK_info; -#if (RTL8814B_SUPPORT == 1 || RTL8812F_SUPPORT == 1 || RTL8822C_SUPPORT == 1 || RTL8197G_SUPPORT == 1) - if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8812F | ODM_RTL8822C | ODM_RTL8197G)) { +#if (RTL8814B_SUPPORT == 1 || RTL8812F_SUPPORT == 1 || RTL8822C_SUPPORT == 1 || RTL8197G_SUPPORT == 1 || RTL8814C_SUPPORT == 1) + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8812F | ODM_RTL8822C | ODM_RTL8197G | ODM_RTL8814C)) { odm_txpowertracking_callback_thermal_meter_jaguar_series4(dm); return; } diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halphyrf_ce.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halphyrf_ce.c index 89b7d3ae..6ba96060 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halphyrf_ce.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halphyrf_ce.c @@ -115,6 +115,10 @@ void configure_txpower_track(void *dm_void, struct txpwrtrack_cfg *config) configure_txpower_track_8814b(config); #endif +#if RTL8723F_SUPPORT + if (dm->support_ic_type == ODM_RTL8723F) + configure_txpower_track_8723f(config); +#endif } @@ -788,7 +792,7 @@ void odm_txpowertracking_callback_thermal_meter(void *adapter) /* Wait sacn to do IQK by RF Jenyu*/ if (!(*dm->is_scan_in_process) && !iqk_info->rfk_forbidden && - !cali_info->is_iqk_in_progress && (dm->is_linked || *dm->mp_mode)) { + !cali_info->is_iqk_in_progress && dm->is_linked) { if (!(dm->support_ic_type & ODM_RTL8723B)) { /*Delta temperature is equal or larger than 20 Celsius*/ /*When threshold is 8*/ @@ -848,7 +852,7 @@ void odm_txpowertracking_callback_thermal_meter(void *adapter) cali_info->tx_powercount = 0; } -#if (RTL8822C_SUPPORT == 1 || RTL8814B_SUPPORT == 1) +#if (RTL8822C_SUPPORT == 1 || RTL8814B_SUPPORT == 1 || RTL8723F_SUPPORT == 1) void odm_txpowertracking_new_callback_thermal_meter(void *dm_void) { @@ -860,7 +864,7 @@ odm_txpowertracking_new_callback_thermal_meter(void *dm_void) u8 thermal_value[MAX_RF_PATH] = {0}, delta[MAX_RF_PATH] = {0}; u8 delta_swing_table_idx_tup[DELTA_SWINGIDX_SIZE] = {0}; u8 delta_swing_table_idx_tdown[DELTA_SWINGIDX_SIZE] = {0}; - u8 delta_LCK = 0, delta_IQK = 0, delta_tssi = 0, i = 0, j = 0, p; + u8 delta_LCK = 0, delta_IQK = 0, i = 0, j = 0, p; u8 thermal_value_avg_count[MAX_RF_PATH] = {0}; u32 thermal_value_avg[MAX_RF_PATH] = {0}; s8 thermal_value_temp[MAX_RF_PATH] = {0}; @@ -960,17 +964,6 @@ odm_txpowertracking_new_callback_thermal_meter(void *dm_void) delta_IQK = (thermal_value[0] > cali_info->thermal_value_iqk) ? (thermal_value[0] - cali_info->thermal_value_iqk) : (cali_info->thermal_value_iqk - thermal_value[0]); } - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] thermal_value[0]=%d tssi->tssi_thermal[0]=%d\n", - thermal_value[0], tssi->tssi_thermal[0]); - - delta_tssi = (thermal_value[0] > tssi->tssi_thermal[0]) ? (thermal_value[0] - tssi->tssi_thermal[0]) : (tssi->tssi_thermal[0] - thermal_value[0]); - if (delta_tssi >= 8) { - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] delta_tssi >= 8 !!!!!! thermal_value[0]=%d tssi->tssi_thermal[0]=%d\n", - thermal_value[0], tssi->tssi_thermal[0]); - tssi->tssi_thermal[0] = thermal_value[0]; - tssi->retry_sacan_tssi = 1; - } - /*4 6. If necessary, do LCK.*/ for (i = 0; i < c.rf_path_count; i++) diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halphyrf_iot.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halphyrf_iot.c index ff0bf523..b87d5e97 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halphyrf_iot.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halphyrf_iot.c @@ -125,6 +125,7 @@ odm_txpowertracking_callback_thermal_meter( u8 power_tracking_type = rf->pwt_type; u8 xtal_offset_eanble = 0; s8 thermal_value_temp = 0; + u8 xtal_track_efuse = 0; struct txpwrtrack_cfg c = {0}; @@ -157,9 +158,12 @@ odm_txpowertracking_callback_thermal_meter( #endif /*for Xtal Offset*/ + odm_efuse_one_byte_read(dm, 0xf7, &xtal_track_efuse, false); + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "Read efuse 0xf7=0x%x\n", xtal_track_efuse); + xtal_track_efuse = xtal_track_efuse & 0x3; if (dm->support_ic_type == ODM_RTL8195B || dm->support_ic_type == ODM_RTL8721D || - dm->support_ic_type == ODM_RTL8710C) + (dm->support_ic_type == ODM_RTL8710C && xtal_track_efuse == 0x2)) (*c.get_delta_swing_xtal_table)(dm, (s8 **)&delta_swing_table_xtal_up, (s8 **)&delta_swing_table_xtal_down); @@ -316,7 +320,7 @@ odm_txpowertracking_callback_thermal_meter( /* JJ ADD 20161014 */ if (dm->support_ic_type == ODM_RTL8195B || dm->support_ic_type == ODM_RTL8721D || - dm->support_ic_type == ODM_RTL8710C) { + (dm->support_ic_type == ODM_RTL8710C && xtal_track_efuse == 0x2)) { /*Save xtal_offset from Xtal table*/ cali_info->xtal_offset_last = cali_info->xtal_offset; /*recording last Xtal offset*/ RF_DBG(dm, DBG_RF_TX_PWR_TRACK, @@ -371,7 +375,7 @@ odm_txpowertracking_callback_thermal_meter( if (dm->support_ic_type == ODM_RTL8195B || dm->support_ic_type == ODM_RTL8721D || - dm->support_ic_type == ODM_RTL8710C) { + (dm->support_ic_type == ODM_RTL8710C && xtal_track_efuse == 0x2)) { /*Save xtal_offset from Xtal table*/ cali_info->xtal_offset_last = cali_info->xtal_offset; /*recording last Xtal offset*/ RF_DBG(dm, DBG_RF_TX_PWR_TRACK, @@ -456,8 +460,7 @@ odm_txpowertracking_callback_thermal_meter( RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "**********Enter POWER Tracking MIX_MODE**********\n"); for (p = RF_PATH_A; p < c.rf_path_count; p++) - (*c.odm_tx_pwr_track_set_pwr)(dm, MIX_MODE, p, - indexforchannel); + (*c.odm_tx_pwr_track_set_pwr)(dm, MIX_MODE, p, 0); /*Record last time Power Tracking result as base.*/ cali_info->bb_swing_idx_cck_base = cali_info->bb_swing_idx_cck; @@ -539,9 +542,17 @@ odm_txpowertracking_callback_thermal_meter( } #endif /* JJ ADD 20161014 */ + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, + "cali_info->xtal_offset_last=%d cali_info->xtal_offset=%d\n", + cali_info->xtal_offset_last, cali_info->xtal_offset); + + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, + "xtal_offset_eanble=%d cali_info->txpowertrack_control=%d rf->eeprom_thermal=%d xtal_track_efuse=%d\n", + xtal_offset_eanble, cali_info->txpowertrack_control, rf->eeprom_thermal, xtal_track_efuse); + if (dm->support_ic_type == ODM_RTL8195B || dm->support_ic_type == ODM_RTL8721D || - dm->support_ic_type == ODM_RTL8710C) { + (dm->support_ic_type == ODM_RTL8710C && xtal_track_efuse == 0x2)) { if (xtal_offset_eanble != 0 && cali_info->txpowertrack_control && (rf->eeprom_thermal != 0xff)) { RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "**********Enter Xtal Tracking**********\n"); @@ -559,7 +570,7 @@ odm_txpowertracking_callback_thermal_meter( } #if (!RTL8721D_SUPPORT) /* Wait sacn to do IQK by RF Jenyu*/ - if ((!*dm->is_scan_in_process) && (!iqk_info->rfk_forbidden) && dm->is_linked) { + if ((!*dm->is_scan_in_process) && (!iqk_info->rfk_forbidden) && (dm->is_linked || *dm->mp_mode)) { /*Delta temperature is equal to or larger than 20 centigrade (When threshold is 8).*/ if (delta_IQK >= c.threshold_iqk) { cali_info->thermal_value_iqk = thermal_value; diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halphyrf_win.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halphyrf_win.c index eeae00b9..3f7778f9 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halphyrf_win.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halphyrf_win.c @@ -109,6 +109,16 @@ void configure_txpower_track( configure_txpower_track_8814b(config); #endif +#if RTL8723F_SUPPORT + if (dm->support_ic_type == ODM_RTL8723F) + configure_txpower_track_8723f(config); +#endif + +#if RTL8814C_SUPPORT + if (dm->support_ic_type == ODM_RTL8814C) + configure_txpower_track_8814c(config); +#endif + } @@ -230,8 +240,11 @@ odm_txpowertracking_callback_thermal_meter( rf_calibrate_info.rega24 will be initialized when ODM HW configuring, but MP configures with para files. */ #if (DM_ODM_SUPPORT_TYPE & ODM_WIN) #if (MP_DRIVER == 1) +#ifndef RTL8723F_SUPPORT cali_info->rega24 = 0x090e1317; #endif +#endif + #elif (DM_ODM_SUPPORT_TYPE & ODM_CE) if (*(dm->mp_mode) == true) cali_info->rega24 = 0x090e1317; @@ -700,7 +713,7 @@ odm_txpowertracking_callback_thermal_meter( #if !(DM_ODM_SUPPORT_TYPE & ODM_AP) /* Wait sacn to do IQK by RF Jenyu*/ - if ((*dm->is_scan_in_process == false) && (!iqk_info->rfk_forbidden) && (dm->is_linked || *dm->mp_mode)) { + if ((*dm->is_scan_in_process == false) && (!iqk_info->rfk_forbidden) && dm->is_linked) { if (!IS_HARDWARE_TYPE_8723B(adapter)) { /*Delta temperature is equal to or larger than 20 centigrade (When threshold is 8).*/ if (delta_IQK >= c.threshold_iqk) { @@ -753,7 +766,7 @@ odm_txpowertracking_callback_thermal_meter( cali_info->tx_powercount = 0; } -#if (RTL8822C_SUPPORT == 1 || RTL8814B_SUPPORT == 1) +#if (RTL8822C_SUPPORT == 1 || RTL8814B_SUPPORT == 1 || RTL8723F_SUPPORT == 1 || RTL8814C_SUPPORT == 1) void odm_txpowertracking_new_callback_thermal_meter(void *dm_void) { @@ -765,7 +778,7 @@ odm_txpowertracking_new_callback_thermal_meter(void *dm_void) u8 thermal_value[MAX_RF_PATH] = {0}, delta[MAX_RF_PATH] = {0}; u8 delta_swing_table_idx_tup[DELTA_SWINGIDX_SIZE] = {0}; u8 delta_swing_table_idx_tdown[DELTA_SWINGIDX_SIZE] = {0}; - u8 delta_LCK = 0, delta_IQK = 0, delta_tssi = 0, i = 0, j = 0, p; + u8 delta_LCK = 0, delta_IQK = 0, i = 0, j = 0, p; u8 thermal_value_avg_count[MAX_RF_PATH] = {0}; u32 thermal_value_avg[MAX_RF_PATH] = {0}; s8 thermal_value_temp[MAX_RF_PATH] = {0}; @@ -787,7 +800,7 @@ odm_txpowertracking_new_callback_thermal_meter(void *dm_void) (*c.get_delta_swing_table)(dm, (u8 **)&delta_swing_table_idx_tup_a, (u8 **)&delta_swing_table_idx_tdown_a, (u8 **)&delta_swing_table_idx_tup_b, (u8 **)&delta_swing_table_idx_tdown_b); - if (dm->support_ic_type == ODM_RTL8814B) { + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { (*c.get_delta_swing_table)(dm, (u8 **)&delta_swing_table_idx_tup_c, (u8 **)&delta_swing_table_idx_tdown_c, (u8 **)&delta_swing_table_idx_tup_d, (u8 **)&delta_swing_table_idx_tdown_d); } @@ -810,7 +823,7 @@ odm_txpowertracking_new_callback_thermal_meter(void *dm_void) for (i = 0; i < c.rf_path_count; i++) { thermal_value[i] = (u8)odm_get_rf_reg(dm, i, c.thermal_reg_addr, 0xfc00); /* 0x42: RF Reg[15:10] 88E */ - if (dm->support_ic_type == ODM_RTL8814B) { + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { thermal_value_temp[i] = (s8)thermal_value[i] + phydm_get_multi_thermal_offset(dm, i); RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "thermal_value_temp[%d](%d) = thermal_value[%d](%d) + multi_thermal_trim(%d)\n", i, thermal_value_temp[i], i, thermal_value[i], phydm_get_multi_thermal_offset(dm, i)); @@ -864,17 +877,6 @@ odm_txpowertracking_new_callback_thermal_meter(void *dm_void) delta_IQK = (thermal_value[0] > cali_info->thermal_value_iqk) ? (thermal_value[0] - cali_info->thermal_value_iqk) : (cali_info->thermal_value_iqk - thermal_value[0]); } - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] thermal_value[0]=%d tssi->tssi_thermal[0]=%d\n", - thermal_value[0], tssi->tssi_thermal[0]); - - delta_tssi = (thermal_value[0] > tssi->tssi_thermal[0]) ? (thermal_value[0] - tssi->tssi_thermal[0]) : (tssi->tssi_thermal[0] - thermal_value[0]); - if (delta_tssi >= 8) { - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] delta_tssi >= 8 !!!!!! thermal_value[0]=%d tssi->tssi_thermal[0]=%d\n", - thermal_value[0], tssi->tssi_thermal[0]); - tssi->tssi_thermal[0] = thermal_value[0]; - tssi->retry_sacan_tssi = 1; - } - /*4 6. If necessary, do LCK.*/ for (i = 0; i < c.rf_path_count; i++) @@ -888,7 +890,9 @@ odm_txpowertracking_new_callback_thermal_meter(void *dm_void) cali_info->thermal_value_lck = thermal_value[RF_PATH_A]; /*Use RTLCK, so close power tracking driver LCK*/ - if ((!(dm->support_ic_type & ODM_RTL8814A)) && (!(dm->support_ic_type & ODM_RTL8822B))) { + if ((!(dm->support_ic_type & ODM_RTL8814A)) && + (!(dm->support_ic_type & ODM_RTL8822B)) && + (!(dm->support_ic_type & ODM_RTL8723F))) { if (c.phy_lc_calibrate) (*c.phy_lc_calibrate)(dm); } else @@ -972,7 +976,7 @@ odm_txpowertracking_new_callback_thermal_meter(void *dm_void) } } - if (dm->support_ic_type == ODM_RTL8822C || dm->support_ic_type == ODM_RTL8814B) + if (dm->support_ic_type & (ODM_RTL8822C | ODM_RTL8814B | ODM_RTL8814C)) for (p = RF_PATH_A; p < c.rf_path_count; p++) (*c.odm_tx_pwr_track_set_pwr)(dm, tracking_method, p, 0); @@ -1043,26 +1047,39 @@ odm_iq_calibrate( if (*dm->is_fcs_mode_enable) return; #endif + if (dm->is_linked) { + RF_DBG(dm, DBG_RF_IQK, + "interval=%d ch=%d prech=%d scan=%s rfk_f =%s\n", + dm->linked_interval, *dm->channel, dm->pre_channel, + *dm->is_scan_in_process == TRUE ? "TRUE":"FALSE", + iqk_info->rfk_forbidden == TRUE ? "TRUE":"FALSE"); - if ((dm->is_linked) && (!iqk_info->rfk_forbidden)) { - RF_DBG(dm, DBG_RF_IQK, "interval=%d ch=%d prech=%d scan=%s\n", dm->linked_interval, - *dm->channel, dm->pre_channel, *dm->is_scan_in_process == TRUE ? "TRUE":"FALSE"); + if (iqk_info->rfk_forbidden) { + RF_DBG(dm, DBG_RF_IQK, "return by rfk_forbidden\n"); + return; + } + + if (*dm->is_scan_in_process) { + RF_DBG(dm, DBG_RF_IQK, "return by is_scan_in_process\n"); + return; + } if (*dm->channel != dm->pre_channel) { dm->pre_channel = *dm->channel; dm->linked_interval = 0; } - if ((dm->linked_interval < 3) && (!*dm->is_scan_in_process)) + if (dm->linked_interval < 3) dm->linked_interval++; if (dm->linked_interval == 2) PHY_IQCalibrate(adapter, false); - } else + } else { dm->linked_interval = 0; - - RF_DBG(dm, DBG_RF_IQK, "<=%s interval=%d ch=%d prech=%d scan=%s\n", __FUNCTION__, dm->linked_interval, - *dm->channel, dm->pre_channel, *dm->is_scan_in_process == TRUE?"TRUE":"FALSE"); + RF_DBG(dm, DBG_RF_IQK, "is_linked =%s, interval =%d\n", + dm->is_linked == TRUE ? "TRUE":"FALSE", + dm->linked_interval); + } } void phydm_rf_init(struct dm_struct *dm) diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halphyrf_win.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halphyrf_win.h index 3769d60a..0d5fc97a 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halphyrf_win.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halphyrf_win.h @@ -108,7 +108,7 @@ odm_txpowertracking_callback_thermal_meter( #endif ); -#if (RTL8822C_SUPPORT == 1 || RTL8814B_SUPPORT == 1) +#if (RTL8822C_SUPPORT == 1 || RTL8814B_SUPPORT == 1 || RTL8814C_SUPPORT == 1) void odm_txpowertracking_new_callback_thermal_meter(void *dm_void); #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf.c index 443bdc01..ebe51b4f 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf.c @@ -35,7 +35,7 @@ RTL8195B_SUPPORT == 1 || RTL8198F_SUPPORT == 1 ||\ RTL8814B_SUPPORT == 1 || RTL8822C_SUPPORT == 1 ||\ RTL8812F_SUPPORT == 1 || RTL8710C_SUPPORT == 1 ||\ - RTL8197G_SUPPORT == 1) + RTL8197G_SUPPORT == 1 || RTL8814C_SUPPORT == 1 ) void _iqk_check_if_reload(void *dm_void) { @@ -96,7 +96,8 @@ u32 halrf_psd_log2base(u32 val) return result; } #if (RTL8822B_SUPPORT == 1 || RTL8821C_SUPPORT == 1 ||\ - RTL8814B_SUPPORT == 1 || RTL8822C_SUPPORT == 1) + RTL8814B_SUPPORT == 1 || RTL8822C_SUPPORT == 1 ||\ + RTL8814C_SUPPORT == 1) void halrf_iqk_xym_enable(struct dm_struct *dm, u8 xym_enable) { struct dm_iqk_info *iqk_info = &dm->IQK_info; @@ -307,7 +308,8 @@ void halrf_iqk_info_dump(void *dm_void, u32 *_used, char *output, u32 *_out_len) "rfk_forbidden", (iqk_info->rfk_forbidden) ? "True" : "False"); #if (RTL8814A_SUPPORT == 1 || RTL8822B_SUPPORT == 1 || \ RTL8821C_SUPPORT == 1 || RTL8195B_SUPPORT == 1 ||\ - RTL8814B_SUPPORT == 1 || RTL8822C_SUPPORT == 1) + RTL8814B_SUPPORT == 1 || RTL8822C_SUPPORT == 1||\ + RTL8814C_SUPPORT == 1 ) PDM_SNPF(out_len, used, output + used, out_len - used, "%-20s: %s\n", "segment_iqk", (iqk_info->segment_iqk) ? "True" : "False"); #endif @@ -431,7 +433,8 @@ void halrf_iqk_dbg(void *dm_void) (iqk_info->rfk_forbidden) ? "True" : "False"); #if (RTL8814A_SUPPORT == 1 || RTL8822B_SUPPORT == 1 || \ RTL8821C_SUPPORT == 1 || RTL8195B_SUPPORT == 1 ||\ - RTL8814B_SUPPORT == 1 || RTL8822C_SUPPORT == 1) + RTL8814B_SUPPORT == 1 || RTL8822C_SUPPORT == 1||\ + RTL8814C_SUPPORT == 1) RF_DBG(dm, DBG_RF_IQK, "%-20s: %s\n", "segment_iqk", (iqk_info->segment_iqk) ? "True" : "False"); #endif @@ -440,11 +443,13 @@ void halrf_iqk_dbg(void *dm_void) dm->rf_calibrate_info.iqk_progressing_time, "(ms)"); tmp = odm_read_4byte(dm, 0x1bf0); - for (rf_path = RF_PATH_A; rf_path <= RF_PATH_B; rf_path++) + for (rf_path = RF_PATH_A; rf_path <= RF_PATH_B; rf_path++) { + if (rf_path >= NUM) + break; for (j = 0; j < 2; j++) iqk_result[0][rf_path][j] = (boolean) (tmp & (BIT(rf_path + (j * 4)) >> (rf_path + (j * 4)))); - + } RF_DBG(dm, DBG_RF_IQK, "%-20s: 0x%08x\n", "Reg0x1bf0", tmp); RF_DBG(dm, DBG_RF_IQK, "%-20s: 0x%08x\n", "Reg0x1be8", odm_read_4byte(dm, 0x1be8)); @@ -491,6 +496,12 @@ void phydm_get_iqk_cfir(void *dm_void, u8 idx, u8 path, boolean debug) phy_get_iqk_cfir_8814b(dm, idx, path, debug); break; #endif +#if (RTL8814C_SUPPORT == 1) + case ODM_RTL8814C: + phy_get_iqk_cfir_8814c(dm, idx, path, debug); + break; +#endif + default: break; } @@ -519,6 +530,12 @@ void halrf_iqk_dbg_cfir_backup(void *dm_void) phy_iqk_dbg_cfir_backup_8814b(dm); break; #endif +#if (RTL8814C_SUPPORT == 1) + case ODM_RTL8814C: + phy_iqk_dbg_cfir_backup_8814c(dm); + break; +#endif + default: break; } @@ -538,13 +555,19 @@ void halrf_iqk_dbg_cfir_backup_update(void *dm_void) #if (RTL8822B_SUPPORT == 1) case ODM_RTL8822B: phy_iqk_dbg_cfir_backup_update_8822b(dm); - break; + break; #endif #if (RTL8822C_SUPPORT == 1) case ODM_RTL8822C: phy_iqk_dbg_cfir_backup_update_8822c(dm); - break; + break; #endif +#if (RTL8814C_SUPPORT == 1) + case ODM_RTL8814C: + phy_iqk_dbg_cfir_backup_update_8814c(dm); + break; +#endif + default: break; } @@ -568,8 +591,14 @@ void halrf_iqk_dbg_cfir_reload(void *dm_void) #if (RTL8822C_SUPPORT == 1) case ODM_RTL8822C: phy_iqk_dbg_cfir_reload_8822c(dm); - break; + break; #endif +#if (RTL8814C_SUPPORT == 1) + case ODM_RTL8814C: + phy_iqk_dbg_cfir_reload_8814c(dm); + break; +#endif + default: break; } @@ -592,6 +621,12 @@ void halrf_iqk_dbg_cfir_write(void *dm_void, u8 type, u32 path, u32 idx, phy_iqk_dbg_cfir_write_8822c(dm, type, path, idx, i, data); break; #endif +#if (RTL8814C_SUPPORT == 1) + case ODM_RTL8814C: + phy_iqk_dbg_cfir_write_8814c(dm, type, path, idx, i, data); + break; +#endif + default: break; } @@ -614,6 +649,12 @@ void halrf_iqk_dbg_cfir_backup_show(void *dm_void) phy_iqk_dbg_cfir_backup_8822c(dm); break; #endif +#if (RTL8814C_SUPPORT == 1) + case ODM_RTL8814C: + phy_iqk_dbg_cfir_backup_8814c(dm); + break; +#endif + default: break; } @@ -640,7 +681,8 @@ void halrf_do_imr_test(void *dm_void, u8 flag_imr_test) } } -#if (RTL8822B_SUPPORT == 1 || RTL8821C_SUPPORT == 1 || RTL8822C_SUPPORT == 1 || RTL8814B_SUPPORT == 1) +#if (RTL8822B_SUPPORT == 1 || RTL8821C_SUPPORT == 1 || RTL8822C_SUPPORT == 1 ||\ + RTL8814B_SUPPORT == 1 || RTL8814C_SUPPORT == 1) void halrf_iqk_debug(void *dm_void, u32 *const dm_value, u32 *_used, char *output, u32 *_out_len) { @@ -790,10 +832,25 @@ void halrf_rf_lna_setting(void *dm_void, enum halrf_lna_set type) halrf_rf_lna_setting_8821c(dm_void, type); break; #endif -#if (RTL8814B_SUPPORT == 1) - case ODM_RTL8814B: - break; +#if (RTL8710C_SUPPORT == 1) + case ODM_RTL8710C: + halrf_rf_lna_setting_8710c(dm_void, type); + break; #endif +#if (RTL8721D_SUPPORT == 1) + case ODM_RTL8721D: + halrf_rf_lna_setting_8721d(dm, type); + break; +#endif +#if (RTL8814B_SUPPORT == 1) + case ODM_RTL8814B: + break; +#endif +#if (RTL8814C_SUPPORT == 1) + case ODM_RTL8814C: + break; +#endif + default: break; } @@ -987,7 +1044,8 @@ void halrf_cmn_info_set(void *dm_void, u32 cmn_info, u64 value) break; #if (RTL8814A_SUPPORT == 1 || RTL8822B_SUPPORT == 1 || \ RTL8821C_SUPPORT == 1 || RTL8195B_SUPPORT == 1 ||\ - RTL8814B_SUPPORT == 1 || RTL8822C_SUPPORT == 1) + RTL8814B_SUPPORT == 1 || RTL8822C_SUPPORT == 1||\ + RTL8814C_SUPPORT == 1 ) case HALRF_CMNINFO_IQK_SEGMENT: dm->IQK_info.segment_iqk = (boolean)value; break; @@ -1023,7 +1081,6 @@ u64 halrf_cmn_info_get(void *dm_void, u32 cmn_info) /* This init variable may be changed in run time. */ struct dm_struct *dm = (struct dm_struct *)dm_void; struct _hal_rf_ *rf = &dm->rf_table; - struct _halrf_tssi_data *tssi = &rf->halrf_tssi_data; u64 return_value = 0; switch (cmn_info) { @@ -1035,7 +1092,8 @@ u64 halrf_cmn_info_get(void *dm_void, u32 cmn_info) break; #if (RTL8814A_SUPPORT == 1 || RTL8822B_SUPPORT == 1 || \ RTL8821C_SUPPORT == 1 || RTL8195B_SUPPORT == 1 ||\ - RTL8814B_SUPPORT == 1 || RTL8822C_SUPPORT == 1) + RTL8814B_SUPPORT == 1 || RTL8822C_SUPPORT == 1||\ + RTL8814C_SUPPORT == 1) case HALRF_CMNINFO_IQK_SEGMENT: return_value = dm->IQK_info.segment_iqk; break; @@ -1043,9 +1101,6 @@ u64 halrf_cmn_info_get(void *dm_void, u32 cmn_info) return_value = dm->IQK_info.iqk_times; break; #endif - case HALRF_CMNINFO_TSSI_RETRY_SPECIAL_SCAN: - return_value = tssi->retry_sacan_tssi; - break; default: /* do nothing */ break; @@ -1111,7 +1166,7 @@ void halrf_supportability_init_mp(void *dm_void) #if (RTL8195B_SUPPORT == 1) case ODM_RTL8195B: rf->rf_supportability = - HAL_RF_TX_PWR_TRACK | + /*HAL_RF_TX_PWR_TRACK |*/ HAL_RF_IQK | HAL_RF_LCK | HAL_RF_DPK | @@ -1195,6 +1250,31 @@ void halrf_supportability_init_mp(void *dm_void) 0; break; #endif +#if (RTL8723F_SUPPORT == 1) + case ODM_RTL8723F: + rf->rf_supportability = + HAL_RF_TX_PWR_TRACK | + HAL_RF_IQK | + HAL_RF_LCK | + HAL_RF_DPK | + HAL_RF_TXGAPK | + HAL_RF_DPK_TRACK | + 0; + break; +#endif + case ODM_RTL8814C: +#if (RTL8814C_SUPPORT == 1) + rf->rf_supportability = + /*HAL_RF_TX_PWR_TRACK |*/ + HAL_RF_IQK | + HAL_RF_LCK | + HAL_RF_DPK | + HAL_RF_DACK | + HAL_RF_TXGAPK | + HAL_RF_DPK_TRACK | + 0; +#endif + break; default: rf->rf_supportability = @@ -1355,6 +1435,31 @@ void halrf_supportability_init(void *dm_void) 0; break; #endif +#if (RTL8723F_SUPPORT == 1) + case ODM_RTL8723F: + rf->rf_supportability = + HAL_RF_TX_PWR_TRACK | + HAL_RF_IQK | + HAL_RF_LCK | + HAL_RF_DPK | + HAL_RF_TXGAPK | + HAL_RF_DPK_TRACK | + 0; + break; +#endif + case ODM_RTL8814C: +#if (RTL8814C_SUPPORT == 1) + rf->rf_supportability = + HAL_RF_TX_PWR_TRACK | + HAL_RF_IQK | + HAL_RF_LCK | + HAL_RF_DPK | + HAL_RF_DACK | + HAL_RF_DPK_TRACK | + HAL_RF_TXGAPK | + 0; +#endif + break; default: rf->rf_supportability = @@ -1378,13 +1483,20 @@ void halrf_watchdog(void *dm_void) #if 0 /*RF_DBG(dm, DBG_RF_TMP, "%s\n", __func__);*/ #endif - if (rf->is_dpk_in_progress || dm->rf_calibrate_info.is_iqk_in_progress || rf->is_tssi_in_progress) return; - phydm_rf_watchdog(dm); + if (!(dm->support_ic_type & ODM_RTL8723F)) + phydm_rf_watchdog(dm); + halrf_dpk_track(dm); +#if (RTL8723F_SUPPORT == 1) + if (dm->support_ic_type & ODM_RTL8723F){ + halrf_xtal_thermal_track(dm); + halrf_powertracking_thermal(dm); + } +#endif } #if 0 @@ -1433,6 +1545,17 @@ void halrf_rfk_power_save(void *dm_void, boolean is_power_save) halrf_rfk_power_save_8822c(dm, is_power_save); break; #endif + +#if (RTL8723F_SUPPORT == 1) + case ODM_RTL8723F: + halrf_rfk_power_save_8723f(dm, is_power_save); + break; +#endif +#if (RTL8814C_SUPPORT == 1) + case ODM_RTL8814C: + break; +#endif + default: break; } @@ -1455,6 +1578,17 @@ void halrf_reload_iqk(void *dm_void, boolean reset) iqk_reload_iqk_8822c(dm, reset); break; #endif +#if (RTL8195B_SUPPORT == 1) + case ODM_RTL8195B: + iqk_reload_iqk_8195b(dm, reset); + break; +#endif +#if (RTL8814C_SUPPORT == 1) + case ODM_RTL8814C: + iqk_reload_iqk_8814c(dm, reset); + break; +#endif + default: break; } @@ -1477,6 +1611,21 @@ void halrf_rfk_handshake(void *dm_void, boolean is_before_k) halrf_rfk_handshake_8822c(dm, is_before_k); break; #endif +#if (RTL8710C_SUPPORT == 1) + case ODM_RTL8710C: + halrf_rfk_handshake_8710c(dm, is_before_k); + break; +#endif +#if (RTL8723F_SUPPORT == 1) + case ODM_RTL8723F: + halrf_rfk_handshake_8723f(dm, is_before_k); + break; +#endif +#if (RTL8814C_SUPPORT == 1) + case ODM_RTL8814C: + break; +#endif + default: break; } @@ -1493,6 +1642,12 @@ void halrf_bbreset(void *dm_void) phydm_bb_reset_8814b(dm); break; #endif +#if (RTL8814C_SUPPORT == 1) + case ODM_RTL8814C: + phydm_bb_reset_8814c(dm); + break; +#endif + default: break; } @@ -1501,7 +1656,7 @@ void halrf_bbreset(void *dm_void) void halrf_rf_k_connect_trigger(void *dm_void, boolean is_recovery, enum halrf_k_segment_time seg_time) { - struct dm_struct *dm = (struct dm_struct *)dm_void; + struct dm_struct *dm = (struct dm_struct *)dm_void; struct dm_dpk_info *dpk_info = &dm->dpk_info; struct _hal_rf_ *rf = &dm->rf_table; @@ -1509,12 +1664,13 @@ void halrf_rf_k_connect_trigger(void *dm_void, boolean is_recovery, return; if (dm->mp_mode && rf->is_con_tx && rf->is_single_tone && - rf->is_carrier_suppresion) { - if (*dm->mp_mode && - (*rf->is_con_tx || *rf->is_single_tone || - *rf->is_carrier_suppresion)) + rf->is_carrier_suppresion) { + if (*dm->mp_mode & + (*rf->is_con_tx || *rf->is_single_tone || + *rf->is_carrier_suppresion)) return; } + /*[TX GAP K]*/ halrf_txgapk_trigger(dm); @@ -1523,16 +1679,18 @@ void halrf_rf_k_connect_trigger(void *dm_void, boolean is_recovery, /*[TSSI Trk]*/ halrf_tssi_trigger(dm); - /*[DPK]*/ +#if 1 if(dpk_info->is_dpk_by_channel == true) halrf_dpk_trigger(dm); else halrf_dpk_reload(dm); - +#endif //ADDA restore to MP_UI setting; config_halrf_path_adda_setting_trigger(dm); + halrf_spur_compensation(dm); + halrf_bbreset(dm); } @@ -1544,6 +1702,11 @@ void config_halrf_path_adda_setting_trigger(void *dm_void) if (dm->support_ic_type & ODM_RTL8814B) config_phydm_path_adda_setting_8814b(dm); #endif +#if (RTL8814C_SUPPORT == 1) + if (dm->support_ic_type & ODM_RTL8814C) + config_phydm_path_adda_setting_8814c(dm); +#endif + } @@ -1560,6 +1723,12 @@ void halrf_dack_restore(void *dm_void) halrf_dack_restore_8822c(dm); break; #endif +#if (RTL8814C_SUPPORT == 1) + case ODM_RTL8814C: + //halrf_dack_restore_8814c(dm); + break; +#endif + default: break; } @@ -1592,6 +1761,12 @@ void halrf_dack_trigger(void *dm_void, boolean force) halrf_dac_cal_8814b(dm); break; #endif +#if (RTL8814C_SUPPORT == 1) + case ODM_RTL8814C: + halrf_dac_cal_8814c(dm); + break; +#endif + default: break; } @@ -1639,15 +1814,13 @@ void halrf_segment_iqk_trigger(void *dm_void, boolean clear, if (!dm->mp_mode) return; - if (dm->mp_mode && - rf->is_con_tx && - rf->is_single_tone && - rf->is_carrier_suppresion) - if (*dm->mp_mode && - ((*rf->is_con_tx || - *rf->is_single_tone || - *rf->is_carrier_suppresion))) + if (dm->mp_mode && rf->is_con_tx && rf->is_single_tone && + rf->is_carrier_suppresion) { + if (*dm->mp_mode & + (*rf->is_con_tx || *rf->is_single_tone || + *rf->is_carrier_suppresion)) return; + } if (!(rf->rf_supportability & HAL_RF_IQK)) return; @@ -1658,6 +1831,7 @@ void halrf_segment_iqk_trigger(void *dm_void, boolean clear, if (iqk_info->rfk_forbidden) return; + rf->rfk_type = RF01_IQK; halrf_rfk_handshake(dm, true); if (!dm->rf_calibrate_info.is_iqk_in_progress) { @@ -1779,6 +1953,18 @@ void halrf_segment_iqk_trigger(void *dm_void, boolean clear, phy_iq_calibrate_8814a(dm, false); break; #endif +#if (RTL8723F_SUPPORT == 1) + case ODM_RTL8723F: + phy_iq_calibrate_8723f(dm, false); + break; +#endif +#if (RTL8814C_SUPPORT == 1) + case ODM_RTL8814C: + phy_iq_calibrate_8814c(dm, clear, segment_iqk); + break; +#endif + + default: break; } @@ -1817,15 +2003,13 @@ void halrf_iqk_trigger(void *dm_void, boolean is_recovery) if (!dm->mp_mode) return; - if (dm->mp_mode && - rf->is_con_tx && - rf->is_single_tone && - rf->is_carrier_suppresion) - if (*dm->mp_mode && - ((*rf->is_con_tx || - *rf->is_single_tone || - *rf->is_carrier_suppresion))) + if (dm->mp_mode && rf->is_con_tx && rf->is_single_tone && + rf->is_carrier_suppresion) { + if (*dm->mp_mode & + (*rf->is_con_tx || *rf->is_single_tone || + *rf->is_carrier_suppresion)) return; + } if (!(rf->rf_supportability & HAL_RF_IQK)) return; @@ -1837,6 +2021,7 @@ void halrf_iqk_trigger(void *dm_void, boolean is_recovery) if (iqk_info->rfk_forbidden) return; + rf->rfk_type = RF01_IQK; halrf_rfk_handshake(dm, true); if (!dm->rf_calibrate_info.is_iqk_in_progress) { @@ -1956,6 +2141,17 @@ void halrf_iqk_trigger(void *dm_void, boolean is_recovery) phy_iq_calibrate_8197g(dm, false, false); break; #endif +#if (RTL8723F_SUPPORT == 1) + case ODM_RTL8723F: + phy_iq_calibrate_8723f(dm, is_recovery); + break; +#endif +#if (RTL8814C_SUPPORT == 1) + case ODM_RTL8814C: + phy_iq_calibrate_8814c(dm, false, false); + break; +#endif + default: break; } @@ -1990,15 +2186,13 @@ void halrf_lck_trigger(void *dm_void) if (!dm->mp_mode) return; - if (dm->mp_mode && - rf->is_con_tx && - rf->is_single_tone && - rf->is_carrier_suppresion) - if (*dm->mp_mode && - ((*rf->is_con_tx || - *rf->is_single_tone || - *rf->is_carrier_suppresion))) + if (dm->mp_mode && rf->is_con_tx && rf->is_single_tone && + rf->is_carrier_suppresion) { + if (*dm->mp_mode & + (*rf->is_con_tx || *rf->is_single_tone || + *rf->is_carrier_suppresion)) return; + } if (!(rf->rf_supportability & HAL_RF_LCK)) return; @@ -2009,7 +2203,7 @@ void halrf_lck_trigger(void *dm_void) if (iqk_info->rfk_forbidden) return; while (*dm->is_scan_in_process) { - RF_DBG(dm, DBG_RF_IQK, "[LCK]scan is in process, bypass LCK\n"); + RF_DBG(dm, DBG_RF_LCK, "[LCK]scan is in process, bypass LCK\n"); return; } @@ -2106,6 +2300,17 @@ void halrf_lck_trigger(void *dm_void) #endif #if (RTL8814B_SUPPORT == 1) case ODM_RTL8814B: + phy_lc_calibrate_8814b(dm); + break; +#endif +#if (RTL8197G_SUPPORT == 1) + case ODM_RTL8197G: + phy_lc_calibrate_8197g(dm); + break; +#endif +#if (RTL8198F_SUPPORT == 1) + case ODM_RTL8198F: + phy_lc_calibrate_8198f(dm); break; #endif #if (RTL8710C_SUPPORT == 1) @@ -2113,12 +2318,24 @@ void halrf_lck_trigger(void *dm_void) phy_lc_calibrate_8710c(dm); break; #endif +#if (RTL8723F_SUPPORT == 1) + case ODM_RTL8723F: + phy_lc_calibrate_8723f(dm); + break; +#endif +#if (RTL8814C_SUPPORT == 1) + case ODM_RTL8814C: + phy_lc_calibrate_8814c(dm); + break; +#endif + + default: break; } dm->rf_calibrate_info.lck_progressing_time = odm_get_progressing_time(dm, start_time); - RF_DBG(dm, DBG_RF_IQK, "[IQK]LCK progressing_time = %lld ms\n", + RF_DBG(dm, DBG_RF_LCK, "[LCK]LCK progressing_time = %lld ms\n", dm->rf_calibrate_info.lck_progressing_time); #if (RTL8822B_SUPPORT == 1 || RTL8821C_SUPPORT == 1) halrf_lck_dbg(dm); @@ -2127,8 +2344,8 @@ void halrf_lck_trigger(void *dm_void) dm->rf_calibrate_info.is_lck_in_progress = false; odm_release_spin_lock(dm, RT_IQK_SPINLOCK); } else { - RF_DBG(dm, DBG_RF_IQK, - "= Return the LCK CMD, because RFK is in Progress =\n"); + RF_DBG(dm, DBG_RF_LCK, + "[LCK]= Return the LCK CMD, because RFK is in Progress =\n"); } } @@ -2191,6 +2408,12 @@ void halrf_x2k_check(struct dm_struct *dm) phy_x2_check_8812f(dm); break; #endif + case ODM_RTL8723F: +#if (RTL8723F_SUPPORT == 1) + phy_x2_check_8723f(dm); + break; +#endif + default: break; } @@ -2232,27 +2455,6 @@ void halrf_rfe_definition(struct dm_struct *dm) } } -void halrf_rfe_type_setting(struct dm_struct *dm) -{ - switch (dm->support_ic_type) { - case ODM_RTL8822C: -#if (RTL8822C_SUPPORT == 1) - if (dm->rfe_type == 21 || dm->rfe_type == 22) { - phydm_rfe_ctrl_gpio(dm, 1); - phydm_rfe_ctrl_gpio(dm, 2); - phydm_rfe_ctrl_gpio(dm, 3); - phydm_rfe_ctrl_gpio(dm, 6); - phydm_rfe_ctrl_gpio(dm, 7); - phydm_rfe_ctrl_gpio(dm, 13); - } -#endif - break; - - default: - break; - } -} - void halrf_init(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; @@ -2262,10 +2464,7 @@ void halrf_init(void *dm_void) rf->aac_checked = false; halrf_init_debug_setting(dm); halrf_set_rfsupportability(dm); - - /*RF Type Setting*/ halrf_rfe_definition(dm); - halrf_rfe_type_setting(dm); #if 1 /*Init all RF funciton*/ halrf_aac_check(dm); @@ -2277,11 +2476,13 @@ void halrf_init(void *dm_void) phydm_config_new_kfree(dm); /*TSSI Init*/ - halrf_tssi_dck_scan(dm); halrf_tssi_dck(dm, true); halrf_tssi_get_efuse(dm); halrf_tssi_set_de(dm); - halrf_tssi_set_tssi_tx_counter(dm, 2, 2); +#if (RTL8723F_SUPPORT == 1) + halrf_do_tssi(dm); + halrf_rx_port_ctl_8723f(dm); +#endif /*TX Gap K*/ halrf_txgapk_write_gain_table(dm); @@ -2304,15 +2505,13 @@ void halrf_dpk_trigger(void *dm_void) if (!dm->mp_mode) return; - if (dm->mp_mode && - rf->is_con_tx && - rf->is_single_tone && - rf->is_carrier_suppresion) - if (*dm->mp_mode && - ((*rf->is_con_tx || - *rf->is_single_tone || - *rf->is_carrier_suppresion))) + if (dm->mp_mode && rf->is_con_tx && rf->is_single_tone && + rf->is_carrier_suppresion) { + if (*dm->mp_mode & + (*rf->is_con_tx || *rf->is_single_tone || + *rf->is_carrier_suppresion)) return; + } if (!(rf->rf_supportability & HAL_RF_DPK)) return; @@ -2324,6 +2523,7 @@ void halrf_dpk_trigger(void *dm_void) if (iqk_info->rfk_forbidden) return; + rf->rfk_type = RF03_DPK; halrf_rfk_handshake(dm, true); if (!rf->is_dpk_in_progress) { @@ -2336,7 +2536,12 @@ void halrf_dpk_trigger(void *dm_void) #if (RTL8822C_SUPPORT == 1) case ODM_RTL8822C: do_dpk_8822c(dm); - break; + break; +#endif +#if (RTL8814C_SUPPORT == 1) + case ODM_RTL8814C: + do_dpk_8814c(dm); + break; #endif #if (DM_ODM_SUPPORT_TYPE & (ODM_AP)) @@ -2374,6 +2579,11 @@ void halrf_dpk_trigger(void *dm_void) do_dpk_8814b(dm); break; #endif +#if (RTL8723F_SUPPORT == 1) + case ODM_RTL8723F: + do_dpk_8723f(dm); + break; +#endif #if (DM_ODM_SUPPORT_TYPE & (ODM_IOT)) #if (RTL8195B_SUPPORT == 1) @@ -2386,6 +2596,7 @@ void halrf_dpk_trigger(void *dm_void) do_dpk_8721d(dm); break; #endif + #endif default: break; @@ -2428,6 +2639,12 @@ void halrf_set_dpkbychannel(void *dm_void, boolean dpk_by_ch) break; #endif #endif +#if (RTL8814C_SUPPORT == 1) + case ODM_RTL8814C: + dpk_set_dpkbychannel_8814c(dm, dpk_by_ch); + break; +#endif + default: if (dpk_by_ch) dpk_info->is_dpk_by_channel = 1; @@ -2467,6 +2684,12 @@ void halrf_set_dpkenable(void *dm_void, boolean is_dpk_enable) #endif #endif +#if (RTL8814C_SUPPORT == 1) + case ODM_RTL8814C: + dpk_set_is_dpk_enable_8814c(dm, is_dpk_enable); + break; +#endif + default: break; } @@ -2495,6 +2718,13 @@ boolean halrf_get_dpkbychannel(void *dm_void) #endif #endif +#if (RTL8814C_SUPPORT == 1) + case ODM_RTL8814C: + is_dpk_by_channel = dpk_get_dpkbychannel_8814c(dm); + break; +#endif + + default: break; } @@ -2526,6 +2756,12 @@ boolean halrf_get_dpkenable(void *dm_void) break; #endif #endif +#if (RTL8814C_SUPPORT == 1) + case ODM_RTL8814C: + is_dpk_enable = dpk_get_is_dpk_enable_8814c(dm); + break; +#endif + default: break; } @@ -2605,6 +2841,15 @@ u8 halrf_dpk_result_check(void *dm_void) result = 0; break; #endif +#if (RTL8814C_SUPPORT == 1) + case ODM_RTL8814C: + if (dpk_info->dpk_path_ok == 0xf) + result = 1; + else + result = 0; + break; +#endif + #if (RTL8812F_SUPPORT == 1) case ODM_RTL8812F: @@ -2694,7 +2939,14 @@ void halrf_dpk_sram_read(void *dm_void) break; #endif +#if (RTL8814C_SUPPORT == 1) + case ODM_RTL8814C: + dpk_sram_read_8814c(dm); + break; #endif + +#endif + default: break; } @@ -2767,6 +3019,17 @@ void halrf_dpk_enable_disable(void *dm_void) break; #endif +#if (RTL8723F_SUPPORT == 1) + case ODM_RTL8723F: + dpk_enable_disable_8723f(dm); + break; +#endif +#if (RTL8814C_SUPPORT == 1) + case ODM_RTL8814C: + dpk_enable_disable_8814c(dm); + break; +#endif + #endif default: break; @@ -2793,17 +3056,22 @@ void halrf_dpk_track(void *dm_void) || rf->is_txgapk_in_progress) return; +#if (DM_ODM_SUPPORT_TYPE == ODM_WIN) + if (*dm->is_fcs_mode_enable) + return; +#endif + switch (dm->support_ic_type) { #if (RTL8814B_SUPPORT == 1) case ODM_RTL8814B: dpk_track_8814b(dm); - break; + break; #endif #if (RTL8822C_SUPPORT == 1) case ODM_RTL8822C: dpk_track_8822c(dm); - break; + break; #endif #if (RTL8195B_SUPPORT == 1) @@ -2818,6 +3086,12 @@ void halrf_dpk_track(void *dm_void) break; #endif +#if (RTL8723F_SUPPORT == 1) + case ODM_RTL8723F: + dpk_track_8723f(dm); + break; +#endif + #if (DM_ODM_SUPPORT_TYPE & (ODM_AP)) #if (RTL8197F_SUPPORT == 1) @@ -2835,22 +3109,28 @@ void halrf_dpk_track(void *dm_void) #if (RTL8198F_SUPPORT == 1) case ODM_RTL8198F: dpk_track_8198f(dm); - break; + break; #endif #if (RTL8812F_SUPPORT == 1) case ODM_RTL8812F: dpk_track_8812f(dm); - break; + break; #endif #if (RTL8197G_SUPPORT == 1) case ODM_RTL8197G: dpk_track_8197g(dm); - break; + break; #endif #endif +#if (RTL8814C_SUPPORT == 1) + case ODM_RTL8814C: + dpk_track_8814c(dm); + break; +#endif + default: break; } @@ -2917,6 +3197,14 @@ void halrf_dpk_reload(void *dm_void) break; #endif +#if (RTL8814C_SUPPORT == 1) + case ODM_RTL8814C: + if (dpk_info->dpk_path_ok > 0) + dpk_reload_8814c(dm); + break; +#endif + + #endif default: break; @@ -2954,13 +3242,13 @@ void _halrf_dpk_info_by_chip(void *dm_void, u32 *_used, char *output, u32 *_out_ #if (RTL8822C_SUPPORT == 1) case ODM_RTL8822C: dpk_info_by_8822c(dm, &used, output, &out_len); - break; + break; #endif #if (RTL8812F_SUPPORT == 1) case ODM_RTL8812F: dpk_info_by_8812f(dm, &used, output, &out_len); - break; + break; #endif #if (RTL8197G_SUPPORT == 1) @@ -2986,6 +3274,7 @@ void _halrf_display_dpk_info(void *dm_void, u32 *_used, char *output, u32 *_out_ u32 used = *_used; u32 out_len = *_out_len; char *ic_name = NULL; + u8 path; switch (dm->support_ic_type) { @@ -3042,6 +3331,13 @@ void _halrf_display_dpk_info(void *dm_void, u32 *_used, char *output, u32 *_out_ ic_name = "8195B"; break; #endif +#if (RTL8814C_SUPPORT) + case ODM_RTL8814C: + ic_name = "8814C"; + break; +#endif + default: + break; } PDM_SNPF(out_len, used, output + used, out_len - used, @@ -3051,8 +3347,11 @@ void _halrf_display_dpk_info(void *dm_void, u32 *_used, char *output, u32 *_out_ "DPK type", (dm->fw_offload_ability & PHYDM_RF_DPK_OFFLOAD) ? "FW" : "Driver", (dpk_info->is_dpk_by_channel) ? "(By channel)" : "(By group)"); + PDM_SNPF(out_len, used, output + used, out_len - used, " %-25s = %d (%d)\n", + "FW Ver (Sub Ver)", dm->fw_version, dm->fw_sub_version); + PDM_SNPF(out_len, used, output + used, out_len - used, " %-25s = %s\n", - "DPK ver", HALRF_DPK_VER); + "DPK Ver", HALRF_DPK_VER); PDM_SNPF(out_len, used, output + used, out_len - used, " %-25s = %s\n", "RFK init ver", HALRF_RFK_INIT_VER); @@ -3066,11 +3365,15 @@ void _halrf_display_dpk_info(void *dm_void, u32 *_used, char *output, u32 *_out_ return; } + PDM_SNPF(out_len, used, output + used, out_len - used, " %-25s = %d / %d / %d\n", + "DPK Cal / OK / Reload", dpk_info->dpk_cal_cnt, dpk_info->dpk_ok_cnt, + dpk_info->dpk_reload_cnt); + PDM_SNPF(out_len, used, output + used, out_len - used, " %-25s = %s\n", "RFK H2C timeout", (rf->is_rfk_h2c_timeout) ? "Yes" : "No"); PDM_SNPF(out_len, used, output + used, out_len - used, " %-25s = %s\n", - "DPD Reload", (dpk_info->is_reload) ? "Yes" : "No"); + "DPD Reload", (dpk_info->dpk_status & BIT(0)) ? "Yes" : "No"); PDM_SNPF(out_len, used, output + used, out_len - used, " %-25s = %s\n", "DPD status", dpk_info->is_dpk_enable ? "Enable" : "Disable"); @@ -3088,10 +3391,18 @@ void _halrf_display_dpk_info(void *dm_void, u32 *_used, char *output, u32 *_out_ (dm->support_ic_type & ODM_IC_2SS) ? ((dpk_info->dpk_path_ok & BIT(1)) >> 1 ? "OK" : "Fail") : "NA", (dm->support_ic_type & ODM_IC_3SS) ? ((dpk_info->dpk_path_ok & BIT(2)) >> 2 ? "OK" : "Fail") : "NA", (dm->support_ic_type & ODM_IC_4SS) ? ((dpk_info->dpk_path_ok & BIT(3)) >> 3 ? "OK" : "Fail") : "NA"); - +#if 0 PDM_SNPF(out_len, used, output + used, out_len - used, " %-25s = %d / %d / %d / %d\n", "DPK thermal (path)", dpk_info->thermal_dpk[0], dpk_info->thermal_dpk[1], dpk_info->thermal_dpk[2], dpk_info->thermal_dpk[3]); +#endif + PDM_SNPF(out_len, used, output + used, out_len - used, " %-25s = ", + "DPK thermal (path)"); + for (path = 0; path < KPATH; path++) { + PDM_SNPF(out_len, used, output + used, out_len - used, + path == (KPATH - 1) ? "%d\n" : "%d / ", + dpk_info->thermal_dpk[path]); + } PDM_SNPF(out_len, used, output + used, out_len - used, " %-25s = 0x%x\n", "DPK bkup GNT control", dpk_info->gnt_control); @@ -3106,7 +3417,7 @@ void _halrf_display_dpk_info(void *dm_void, u32 *_used, char *output, u32 *_out_ } void halrf_dpk_debug_cmd(void *dm_void, char input[][16], u32 *_used, - char *output, u32 *_out_len) + char *output, u32 *_out_len) { struct dm_struct *dm = (struct dm_struct *)dm_void; struct dm_dpk_info *dpk_info = &dm->dpk_info; @@ -3216,6 +3527,12 @@ void halrf_iqk_info_rsvd_page(void *dm_void, u8 *buf, u32 *buf_size) iqk_info_rsvd_page_8822c(dm, buf, buf_size); break; #endif +#if (RTL8195B_SUPPORT == 1) + case ODM_RTL8195B: + iqk_info_rsvd_page_8195b(dm, buf, buf_size); + break; +#endif + default: break; } @@ -3276,19 +3593,26 @@ halrf_config_rfk_with_header_file(void *dm_void, u32 config_type) odm_read_and_config_mp_8721d_cal_init(dm); } #endif - if (dm->fw_offload_ability & PHYDM_PHY_PARAM_OFFLOAD) { - result = phydm_set_reg_by_fw(dm, - PHYDM_HALMAC_CMD_END, - 0, - 0, - 0, - (enum rf_path)0, - 0); - - RF_DBG(dm, DBG_RF_IQK, "phy param offload end!result = %d", result); +#if (RTL8723F_SUPPORT == 1) + if (dm->support_ic_type == ODM_RTL8723F) { + if (config_type == CONFIG_BB_RF_CAL_INIT) + odm_read_and_config_mp_8723f_cal_init(dm); } +#endif +#if (RTL8814C_SUPPORT == 1) + if (dm->support_ic_type == ODM_RTL8814C) { + if (config_type == CONFIG_BB_RF_CAL_INIT) + odm_read_and_config_mp_8814c_cal_init(dm); + } +#endif +#if 1 + if (dm->fw_offload_ability & PHYDM_PHY_PARAM_OFFLOAD) { + result = phydm_set_reg_by_fw(dm, PHYDM_HALMAC_CMD_END, 0, 0, 0, (enum rf_path)0, 0); + RF_DBG(dm, DBG_RF_IQK,"phy param offload end!result = %d", result); + } +#endif return result; } @@ -3301,6 +3625,7 @@ void halrf_txgapk_trigger(void *dm_void) if (!(rf->rf_supportability & HAL_RF_TXGAPK)) return; + rf->rfk_type = RF04_TXGAPK; halrf_rfk_handshake(dm, true); start_time = odm_get_current_time(dm); @@ -3308,15 +3633,16 @@ void halrf_txgapk_trigger(void *dm_void) halrf_rfk_power_save(dm, false); switch (dm->support_ic_type) { + #if (DM_ODM_SUPPORT_TYPE & (ODM_IOT)) #if (RTL8195B_SUPPORT == 1) case ODM_RTL8195B: - phy_txgap_calibrate_8195b(dm, false); + /*phy_txgap_calibrate_8195b(dm, false);*/ break; #endif #if (RTL8721D_SUPPORT == 1) case ODM_RTL8721D: - phy_txgap_calibrate_8721d(dm, false); + /*phy_txgap_calibrate_8721d(dm, false);*/ break; #endif @@ -3324,19 +3650,32 @@ void halrf_txgapk_trigger(void *dm_void) #if (RTL8814B_SUPPORT == 1) case ODM_RTL8814B: - phy_txgap_calibrate_8814b(dm, false); + /*phy_txgap_calibrate_8814b(dm, false);*/ break; #endif +#if (RTL8814C_SUPPORT == 1) + case ODM_RTL8814C: + halrf_txgapk_8814c(dm); + break; +#endif + + #if (RTL8822C_SUPPORT == 1) case ODM_RTL8822C: halrf_txgapk_8822c(dm); break; #endif +#if (RTL8723F_SUPPORT == 1) + case ODM_RTL8723F: + halrf_txgapk_8723f(dm); + break; +#endif + default: break; - } + } halrf_rfk_power_save(dm, true); rf->is_txgapk_in_progress = false; @@ -3348,6 +3687,23 @@ void halrf_txgapk_trigger(void *dm_void) rf->dpk_progressing_time); } +void halrf_spur_compensation(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + + switch (dm->support_ic_type) { +#if (RTL8723F_SUPPORT == 1) + case ODM_RTL8723F: + halrf_rfk_power_save(dm, false); + halrf_spur_compensation_8723f(dm); + halrf_rfk_power_save(dm, true); + break; +#endif + default: + break; + } +} + void halrf_tssi_get_efuse(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; @@ -3378,6 +3734,19 @@ void halrf_tssi_get_efuse(void *dm_void) } #endif +#if (RTL8723F_SUPPORT == 1) + if (dm->support_ic_type & ODM_RTL8723F) { + halrf_tssi_get_efuse_8723f(dm); + } +#endif + +#if (RTL8814C_SUPPORT == 1) + if (dm->support_ic_type & ODM_RTL8814C) { + halrf_tssi_get_efuse_8814c(dm); + halrf_get_efuse_thermal_pwrtype_8814c(dm); + } +#endif + } void halrf_do_rxbb_dck(void *dm_void) @@ -3389,6 +3758,11 @@ void halrf_do_rxbb_dck(void *dm_void) if (dm->support_ic_type == ODM_RTL8814B) halrf_do_rxbb_dck_8814b(dm); #endif +#if (RTL8814C_SUPPORT == 1) + if (dm->support_ic_type == ODM_RTL8814C) + halrf_do_rxbb_dck_8814c(dm); +#endif + } @@ -3411,28 +3785,36 @@ void halrf_do_tssi(void *dm_void) halrf_do_tssi_8197g(dm); #endif +#if (RTL8723F_SUPPORT == 1) + if (dm->support_ic_type == ODM_RTL8723F) { + halrf_rfk_power_save(dm, false); + halrf_do_tssi_8723f(dm); + halrf_rfk_power_save(dm, true); + } +#endif + +#if (RTL8814C_SUPPORT == 1) + if (dm->support_ic_type == ODM_RTL8814C) + halrf_tssi_trigger_bit_reset_8814c(dm); +#endif + } -void halrf_do_tssi_scan(void *dm_void) +u8 halrf_do_tssi_by_manual(void *dm_void, u8 path) { struct dm_struct *dm = (struct dm_struct *)dm_void; -#if (RTL8822C_SUPPORT == 1) - if (dm->support_ic_type == ODM_RTL8822C) - halrf_do_tssi_scan_8822c(dm); +#if (RTL8814B_SUPPORT == 1) + if (dm->support_ic_type & ODM_RTL8814B) + return halrf_do_tssi_8814b(dm, path); #endif -} -void halrf_tssi_set_tssi_tx_counter(void *dm_void, u8 special_scan_num, - u8 connect_ch_num) -{ - struct dm_struct *dm = (struct dm_struct *)dm_void; - -#if (RTL8822C_SUPPORT == 1) - if (dm->support_ic_type == ODM_RTL8822C) - halrf_tssi_set_tssi_tx_counter_8822c(dm, special_scan_num, - connect_ch_num); +#if (RTL8814C_SUPPORT == 1) + if (dm->support_ic_type & ODM_RTL8814C) + return halrf_do_tssi_8814c(dm, path); #endif + + return 0; } void halrf_set_tssi_enable(void *dm_void, boolean enable) @@ -3475,6 +3857,14 @@ u32 halrf_set_tssi_value(void *dm_void, u32 tssi_value) if (dm->support_ic_type & ODM_RTL8814B) return halrf_set_tssi_value_8814b(dm, tssi_value); #endif +#if (RTL8723F_SUPPORT == 1) + if (dm->support_ic_type & ODM_RTL8723F) + return halrf_tssi_set_de_8723f(dm, tssi_value); +#endif +#if (RTL8814C_SUPPORT == 1) + if (dm->support_ic_type & ODM_RTL8814C) + return halrf_set_tssi_value_8814c(dm, tssi_value); +#endif return 0; } @@ -3507,6 +3897,46 @@ void halrf_tssi_set_de_for_tx_verify(void *dm_void, u32 tssi_de, u8 path) halrf_tssi_set_de_for_tx_verify_8812f(dm, tssi_de, path); #endif +#if (RTL8197G_SUPPORT == 1) + if (dm->support_ic_type & ODM_RTL8197G) + halrf_tssi_set_de_for_tx_verify_8197g(dm, tssi_de, path); +#endif + +#if (RTL8723F_SUPPORT == 1) + if (dm->support_ic_type & ODM_RTL8723F) + halrf_tssi_set_de_for_tx_verify_8723f(dm, tssi_de, path); +#endif +#if (RTL8814C_SUPPORT == 1) + if (dm->support_ic_type & ODM_RTL8814C) + halrf_tssi_set_de_for_tx_verify_8814c(dm, tssi_de, path); +#endif + +} + +u32 halrf_tssi_turn_target_power(void *dm_void, s16 power_offset, u8 path) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + u32 pout = 0; + + if (dm->mp_mode) { + if (*dm->mp_mode) { +#if (RTL8723F_SUPPORT == 1) + if (dm->support_ic_type & ODM_RTL8723F) + pout = halrf_tssi_set_powerbyrate_pout_8723f(dm, power_offset, path); +#endif + } + } + return pout; +} + +void halrf_tssi_set_power_offset(void *dm_void, s16 power_offset, u8 path) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + +#if (RTL8723F_SUPPORT == 1) + if (dm->support_ic_type & ODM_RTL8723F) + _halrf_tssi_set_powerlevel_8723f(dm, power_offset, path); +#endif } @@ -3523,6 +3953,11 @@ u32 halrf_query_tssi_value(void *dm_void) if (dm->support_ic_type & ODM_RTL8814B) return halrf_query_tssi_value_8814b(dm); #endif +#if (RTL8814C_SUPPORT == 1) + if (dm->support_ic_type & ODM_RTL8814C) + return halrf_query_tssi_value_8814c(dm); +#endif + return 0; } @@ -3557,72 +3992,11 @@ void halrf_tssi_set_de(void *dm_void) if (dm->support_ic_type & ODM_RTL8814B) halrf_tssi_set_de_8814b(dm); #endif -} - -void halrf_tssi_scan_set_tssi_setting( - void *dm_void) -{ - struct dm_struct *dm = (struct dm_struct *)dm_void; - -#if (RTL8822C_SUPPORT == 1) - if (dm->support_ic_type & ODM_RTL8822C) - halrf_tssi_scan_set_tssi_setting_8822c(dm); +#if (RTL8814C_SUPPORT == 1) + if (dm->support_ic_type & ODM_RTL8814C) + halrf_tssi_set_de_8814c(dm); #endif -} -void halrf_tssi_scan_save_txagc_offset( - void *dm_void, u8 path) -{ - struct dm_struct *dm = (struct dm_struct *)dm_void; - -#if (RTL8822C_SUPPORT == 1) - if (dm->support_ic_type & ODM_RTL8822C) - halrf_tssi_scan_save_txagc_offset_8822c(dm, path); -#endif -} - -void halrf_tssi_scan_reload_txagc_offset( - void *dm_void) -{ - struct dm_struct *dm = (struct dm_struct *)dm_void; - -#if (RTL8822C_SUPPORT == 1) - if (dm->support_ic_type & ODM_RTL8822C) - halrf_tssi_scan_reload_txagc_offset_8822c(dm); -#endif -} - -void halrf_tssi_lps_get_txagc_offset( - void *dm_void, u8 *txagc_offset) -{ - struct dm_struct *dm = (struct dm_struct *)dm_void; - -#if (RTL8822C_SUPPORT == 1) - if (dm->support_ic_type & ODM_RTL8822C) - halrf_tssi_lps_get_txagc_offset_8822c(dm, txagc_offset); -#endif -} - -void halrf_enable_tssi( - void *dm_void) -{ - struct dm_struct *dm = (struct dm_struct *)dm_void; - -#if (RTL8822C_SUPPORT == 1) - if (dm->support_ic_type & ODM_RTL8822C) - halrf_enable_tssi_8822c(dm); -#endif -} - -void halrf_disable_tssi( - void *dm_void) -{ - struct dm_struct *dm = (struct dm_struct *)dm_void; - -#if (RTL8822C_SUPPORT == 1) - if (dm->support_ic_type & ODM_RTL8822C) - halrf_disable_tssi_8822c(dm); -#endif } void halrf_tssi_dck(void *dm_void, u8 direct_do) @@ -3658,34 +4032,24 @@ void halrf_tssi_dck(void *dm_void, u8 direct_do) if (dm->support_ic_type == ODM_RTL8197G) halrf_tssi_dck_8197g(dm); #endif +#if (RTL8814C_SUPPORT == 1) + if (dm->support_ic_type & ODM_RTL8814C) { +#if (DM_ODM_SUPPORT_TYPE & (ODM_AP)) + if (dm->rfe_type == 1 || dm->rfe_type == 4 || dm->rfe_type == 5) + return; +#else + if (dm->rfe_type == 1 || dm->rfe_type == 6) + return; +#endif + halrf_tssi_dck_8814c(dm, direct_do); + } +#endif + halrf_rfk_handshake(dm, false); } -void halrf_tssi_dck_scan(void *dm_void) -{ - struct dm_struct *dm = (struct dm_struct *)dm_void; - - halrf_rfk_handshake(dm, true); - -#if (RTL8822C_SUPPORT == 1) - if (dm->support_ic_type & ODM_RTL8822C) - halrf_tssi_dck_scan_8822c(dm); -#endif - halrf_rfk_handshake(dm, false); -} - -void halrf_set_tssi_codeword_scan(void *dm_void) -{ - struct dm_struct *dm = (struct dm_struct *)dm_void; - -#if (RTL8822C_SUPPORT == 1) - if (dm->support_ic_type & ODM_RTL8822C) - halrf_set_tssi_codeword_scan_8822c(dm); -#endif -} - void halrf_calculate_tssi_codeword(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; @@ -3698,7 +4062,12 @@ void halrf_calculate_tssi_codeword(void *dm_void) #if (RTL8822C_SUPPORT == 1) if (dm->support_ic_type & ODM_RTL8822C) halrf_calculate_tssi_codeword_8822c(dm); -#endif +#endif +#if (RTL8814C_SUPPORT == 1) + if (dm->support_ic_type & ODM_RTL8814C) + halrf_calculate_tssi_codeword_8814c(dm, RF_PATH_A); +#endif + } void halrf_set_tssi_codeword(void *dm_void) @@ -3719,6 +4088,11 @@ void halrf_set_tssi_codeword(void *dm_void) halrf_set_tssi_codeword_8822c(dm, tssi->tssi_codeword); #endif +#if (RTL8814C_SUPPORT == 1) + if (dm->support_ic_type & ODM_RTL8814C) + halrf_set_tssi_codeword_8814c(dm, tssi->tssi_codeword); +#endif + } u8 halrf_get_tssi_codeword_for_txindex(void *dm_void) @@ -3728,7 +4102,7 @@ u8 halrf_get_tssi_codeword_for_txindex(void *dm_void) #if (RTL8814B_SUPPORT == 1) if (dm->support_ic_type & ODM_RTL8814B) { #if (DM_ODM_SUPPORT_TYPE & (ODM_AP)) - return 100; + return 80; #else return 60; #endif @@ -3749,7 +4123,15 @@ u8 halrf_get_tssi_codeword_for_txindex(void *dm_void) if (dm->support_ic_type & ODM_RTL8197G) return 100; #endif - +#if (RTL8814C_SUPPORT == 1) + if (dm->support_ic_type & ODM_RTL8814C) { +#if (DM_ODM_SUPPORT_TYPE & (ODM_AP)) + return 80; +#else + return 60; +#endif + } +#endif return 60; } @@ -3772,7 +4154,10 @@ void halrf_tssi_clean_de( if (dm->support_ic_type & ODM_RTL8197G) halrf_tssi_clean_de_8197g(dm); #endif - +#if (RTL8814C_SUPPORT == 1) + if (dm->support_ic_type & ODM_RTL8814C) + halrf_tssi_clean_de_8814c(dm); +#endif } u32 halrf_tssi_trigger_de(void *dm_void, u8 path) @@ -3793,6 +4178,11 @@ u32 halrf_tssi_trigger_de(void *dm_void, u8 path) if (dm->support_ic_type & ODM_RTL8197G) return halrf_tssi_trigger_de_8197g(dm, path); #endif + +#if (RTL8814C_SUPPORT == 1) + if (dm->support_ic_type & ODM_RTL8814C) + return halrf_tssi_trigger_de_8814c(dm, path); +#endif return 0; } @@ -3818,6 +4208,21 @@ u32 halrf_tssi_get_de(void *dm_void, u8 path) #if (RTL8197G_SUPPORT == 1) if (dm->support_ic_type & ODM_RTL8197G) return halrf_tssi_get_de_8197g(dm, path); +#endif +#if (RTL8814C_SUPPORT == 1) + if (dm->support_ic_type & ODM_RTL8814C) + return halrf_tssi_get_de_8814c(dm, path); +#endif + return 0; +} + +u32 halrf_get_online_tssi_de(void *dm_void, u8 path, s32 pout) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + +#if (RTL8723F_SUPPORT == 1) + if (dm->support_ic_type & ODM_RTL8723F) + return halrf_get_online_tssi_de_8723f(dm, path, pout); #endif return 0; } @@ -3863,6 +4268,11 @@ void halrf_txgapk_write_gain_table(void *dm_void) if (dm->support_ic_type & ODM_RTL8822C) halrf_txgapk_save_all_tx_gain_table_8822c(dm); #endif +#if (RTL8814C_SUPPORT == 1) + if (dm->support_ic_type & ODM_RTL8814C) + halrf_txgapk_save_all_tx_gain_table_8814c(dm); +#endif + } void halrf_txgapk_reload_tx_gain(void *dm_void) @@ -3873,6 +4283,12 @@ void halrf_txgapk_reload_tx_gain(void *dm_void) if (dm->support_ic_type & ODM_RTL8822C) halrf_txgapk_reload_tx_gain_8822c(dm); #endif +/* +#if (RTL8814C_SUPPORT == 1) + if (dm->support_ic_type & ODM_RTL8814C) + halrf_txgapk_reload_tx_gain_8814c(dm); +#endif +*/ } void halrf_txgap_enable_disable(void *dm_void, u8 enable) @@ -3889,6 +4305,285 @@ void halrf_txgap_enable_disable(void *dm_void, u8 enable) } } +#if (RTL8723F_SUPPORT == 1) +s8 _halrf_get_power_offset_by_thermal_8723f(void *dm_void, u8 path, s8 thermal_detla) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct dm_rf_calibration_struct *cali_info = &dm->rf_calibrate_info; + u8 channel = *dm->channel; + u8 tx_rate = phydm_get_tx_rate(dm); + s8 power_offset = 0; + u8 i = 0; + u8 thermal_up_a[DELTA_SWINGIDX_SIZE] = {0}, thermal_down_a[DELTA_SWINGIDX_SIZE] = {0}; + u8 thermal_up_b[DELTA_SWINGIDX_SIZE] = {0}, thermal_down_b[DELTA_SWINGIDX_SIZE] = {0}; + u8 txagc_offset_2g_cck_a_p[] = { + 0, 0, 0, 1, 1, 2, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6}; + u8 txagc_offset_2g_cck_a_n[] = { + 0, 0, 0, 1, 1, 2, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6}; + u8 txagc_offset_2g_cck_b_p[] = { + 0, 0, 0, 1, 1, 2, 2, 2, 3, 3, 4, 4, 4, 5, 5, + 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6}; + u8 txagc_offset_2g_cck_b_n[] = { + 0, 0, 0, 1, 1, 2, 2, 2, 3, 3, 4, 4, 4, 5, + 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6}; + u8 txagc_offset_2ga_p[] = { + 0, 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, + 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7}; + u8 txagc_offset_2ga_n[] = { + 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, + 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6}; + u8 txagc_offset_2gb_p[] = { + 0, 0, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, + 5, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7}; + u8 txagc_offset_2gb_n[] = { + 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, + 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6}; + u8 txagc_offset_5ga_n[][30] = { + {0, 0, 2, 2, 2, 2, 3, 3, 4, 4, 4, 4, 5, 5, 5, 6, 6, + 6, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8}, + {0, 0, 2, 2, 2, 2, 3, 3, 4, 4, 4, 4, 5, 5, 5, 6, 6, + 6, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8}, + {0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 4, 5, 5, 5, 6, 6, + 6, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8}, + }; + u8 txagc_offset_5ga_p[][30] = { + {0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 4, 6, 6, 6, 6, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, + {0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 4, 6, 6, 6, 6, 8, + 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9}, + {0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 6, 6, 6, 6, 7, 7, 8, + 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9}, + }; + RF_DBG(dm, DBG_RF_TX_PWR_TRACK,"[RF][TSSI] ======>%s\n", __func__); + + if (channel >= 1 && channel <= 14) { + if (IS_CCK_RATE(tx_rate)) { + odm_move_memory(dm, thermal_up_a, txagc_offset_2g_cck_a_p, sizeof(thermal_up_a)); + odm_move_memory(dm, thermal_down_a, txagc_offset_2g_cck_a_n, sizeof(thermal_down_a)); + odm_move_memory(dm, thermal_up_b, txagc_offset_2g_cck_b_p, sizeof(thermal_up_b)); + odm_move_memory(dm, thermal_down_b, txagc_offset_2g_cck_b_n, sizeof(thermal_down_b)); + } else { + odm_move_memory(dm, thermal_up_a, txagc_offset_2ga_p, sizeof(thermal_up_a)); + odm_move_memory(dm, thermal_down_a, txagc_offset_2ga_n, sizeof(thermal_down_a)); + odm_move_memory(dm, thermal_up_b, txagc_offset_2gb_p, sizeof(thermal_up_b)); + odm_move_memory(dm, thermal_down_b, txagc_offset_2gb_n, sizeof(thermal_down_b)); + } + } + + if (channel >= 36 && channel <= 64) { + odm_move_memory(dm, thermal_up_a, txagc_offset_5ga_p[0], sizeof(thermal_up_a)); + odm_move_memory(dm, thermal_down_a, txagc_offset_5ga_n[0], sizeof(thermal_down_a)); + } else if (channel >= 100 && channel <= 144) { + odm_move_memory(dm, thermal_up_a, txagc_offset_5ga_p[1], sizeof(thermal_up_a)); + odm_move_memory(dm, thermal_down_a, txagc_offset_5ga_n[1], sizeof(thermal_down_a)); + } else if (channel >= 149 && channel <= 177) { + odm_move_memory(dm, thermal_up_a, txagc_offset_5ga_p[2], sizeof(thermal_up_a)); + odm_move_memory(dm, thermal_down_a, txagc_offset_5ga_n[2], sizeof(thermal_down_a)); + } + + if(thermal_detla < 0) { + if (thermal_detla < -29) + i = 29; + else + i = (u8)(-1 * thermal_detla); + + if (path ==0 ) + power_offset = thermal_down_a[i]; + else + power_offset = thermal_down_b[i]; + + RF_DBG(dm, DBG_RF_TX_PWR_TRACK,"[RF][TSSI] Temp is lower\n"); + } else { + if (thermal_detla >= 30) + i = 29; + else + i = thermal_detla; + + if (path ==0 ) + power_offset = thermal_up_a[i]; + else + power_offset = thermal_up_b[i]; + RF_DBG(dm, DBG_RF_TX_PWR_TRACK,"[RF][TSSI] Temp is higher\n"); + } + + return power_offset; +} + +void halrf_powertracking_thermal(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct _hal_rf_ *rf = &dm->rf_table; + struct _halrf_tssi_data *tssi = &rf->halrf_tssi_data; + struct dm_rf_calibration_struct *cali_info = &(dm->rf_calibrate_info); + s8 thermal_value = 0, thermal_detla = 0; + s8 power_offset0 = 0, power_offset1 = 0; + u8 thermal_base = 0, temp[2] = {0}; + u8 path; + u8 rate = phydm_get_tx_rate(dm); + //RF_DBG(dm, DBG_RF_TX_PWR_TRACK,"[RF][TSSI] ======>%s\n", __func__); + + if(rf->is_tssi_in_progress == 1) + return; + if (*dm->mp_mode == 1) { + if (cali_info->txpowertrack_control <= 2) { + RF_DBG(dm, DBG_RF_TX_PWR_TRACK,"[RF][TSSI] return!! txpowertrack_control = %d\n", + cali_info->txpowertrack_control); + return; + } + } else { + if (!(rf->rf_supportability & HAL_RF_TX_PWR_TRACK)) { + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, + "[RF][TSSI] ===>is_txpowertracking is false, return!!\n"); + return; + } + } + + if (odm_get_bb_reg(dm, R_0x4318, BIT30) == 1){ + RF_DBG(dm, DBG_RF_TX_PWR_TRACK,"[RF][TSSI] return!! txpowertrack_control = %d, 0x4318 = 0x%x\n", + cali_info->txpowertrack_control,odm_get_bb_reg(dm, R_0x4318, MASKDWORD)); + return; + } + path = (u8)odm_get_bb_reg(dm, 0x1884, BIT(20)); + thermal_base = tssi->thermal_cal; + thermal_value = (s8)odm_get_rf_reg(dm, 0, RF_0x42, 0x7E);/*path0*/ + thermal_detla = (s8)(thermal_value - thermal_base); + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[RF][TSSI] thermal_value = 0x%x, thermal_base = 0x%x\n", + thermal_value, thermal_base); + power_offset0 = _halrf_get_power_offset_by_thermal_8723f(dm, 0, thermal_detla); + power_offset1 = _halrf_get_power_offset_by_thermal_8723f(dm, 1, thermal_detla); + + if (rate == ODM_MGN_1M || rate == ODM_MGN_2M || rate == ODM_MGN_5_5M || rate == ODM_MGN_11M){ + temp[0] = tssi->txagc_offset_thermaltrack[0] -0x18 + 4*(power_offset0);/*s0*/ + temp[1] = tssi->txagc_offset_thermaltrack[1] - 0x8 + 4*(power_offset1);/*s1*/ + } else { + temp[0] = tssi->txagc_offset_thermaltrack[0] + 4*(power_offset0); + temp[1] = tssi->txagc_offset_thermaltrack[1] + 4*(power_offset1); + } + /*S0:in the same index,cck_pwr-ofdm_pwr=7dB*/ + odm_set_bb_reg(dm, R_0x4388, MASKBYTE0, temp[0]);/*s0*/ + /*S1:in the same index,cck_pwr-ofdm_pwr=5dB*/ + odm_set_bb_reg(dm, R_0x4388, MASKBYTE2, temp[1]);/*s1*/ + + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[RF][TSSI] current_Path = %d, tx_rate = 0x%x\n", path, rate); + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[RF][TSSI] txagc_offset = 0x%x\n", + tssi->txagc_offset_thermaltrack[path]); + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, + "[RF][TSSI] thermal_detla = %d, thermal_offset_s0 = 0x%x, thermal_offset_s1 = 0x%x\n", + thermal_detla, power_offset0, power_offset1); + RF_DBG(dm, DBG_RF_TX_PWR_TRACK,"[RF][TSSI] 0x4388 = 0x%x\n", + odm_get_bb_reg(dm, R_0x4388, MASKDWORD)); + + +} +void halrf_xtal_thermal_track(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct _hal_rf_ *rf = &dm->rf_table; + struct _halrf_tssi_data *tssi = &rf->halrf_tssi_data; + struct dm_rf_calibration_struct *cali_info = &(dm->rf_calibrate_info); + s8 *delta_swing_table_xtal_up = NULL; + u8 xtal_offset_eanble = 0, i =0; + s8 thermal_value = 0, thermal_detla = 0; + u8 thermal_base = 0; + s8 xtal_table_up[DELTA_SWINGIDX_SIZE] = {0}; + s8 xtal_table_down[DELTA_SWINGIDX_SIZE] = {0}; + u32 reg_val = 0, crystal_cap = 0; + + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, + "[RF][xtal] ======>%s\n", __func__); + + if ( dm->support_ic_type == ODM_RTL8723F) { + if (rf->is_dpk_in_progress || dm->rf_calibrate_info.is_iqk_in_progress || + dm->is_psd_in_process || rf->is_tssi_in_progress || + !(rf->rf_supportability & HAL_RF_DPK_TRACK) || + rf->is_txgapk_in_progress) + return; + + if(tssi->thermal[0] == 0xff) { + //RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[RF][xtal] thermal 0xFF, return!\n"); + return; + } else { + thermal_base = tssi->thermal[0]; + //RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[RF][xtal] thermal_base = 0x%x\n", thermal_base); + } + + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[RF][xtal] thermal_base = 0x%x\n", thermal_base); + + thermal_value = (s8)odm_get_rf_reg(dm, RF_PATH_A, RF_0x42, 0x7E); /* 0x42: RF Reg[6:1]*/ + + thermal_detla = (s8)(thermal_value - thermal_base); + + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[RF][xtal] cali_info->xtal_offset = 0x%x\n", cali_info->xtal_offset); + + cali_info->xtal_offset_last = cali_info->xtal_offset; + /* + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, + "[RF][Xtal] cali_info->delta_swing_table_xtal_p = %d\n", cali_info->delta_swing_table_xtal_p[2]); + */ + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, + "[RF][Xtal] thermal_value = 0x%x, thermal_detla = 0x%x, xtal_offset_last = 0x%x\n", + thermal_value, thermal_detla, cali_info->xtal_offset_last); + odm_move_memory(dm, xtal_table_up, cali_info->delta_swing_table_xtal_p, sizeof(xtal_table_up));//(void *) + odm_move_memory(dm, xtal_table_down, cali_info->delta_swing_table_xtal_n, sizeof(xtal_table_down)); + /* + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, + "[RF][Xtal] xtal_table_up[1] = %d\n", xtal_table_up[1]);*/ + if(thermal_detla < 0) { + + if (thermal_detla < -29) + i = 29; + else + i = (u8)(-1 * thermal_detla); + cali_info->xtal_offset = xtal_table_down[i]; + } else { + + if (thermal_detla >= 30) + i = 29; + else + i = thermal_detla; + + cali_info->xtal_offset = xtal_table_up[i]; + } + + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, + "[RF][Xtal] xtal_offset = %d\n", cali_info->xtal_offset); + if (cali_info->xtal_offset_last == cali_info->xtal_offset) + xtal_offset_eanble = 0; + else + xtal_offset_eanble = 1; + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, + "[RF][Xtal] xtal_offset_eanble = %d\n", xtal_offset_eanble); + if (xtal_offset_eanble != 0) { + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "**********Enter Xtal Tracking**********\n"); + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, + "[RF][Xtal] R_0x103c[16:10] = 0x%x\n", odm_get_mac_reg(dm, R_0x103c, 0x0001FC00)); + + crystal_cap = dm->dm_cfo_track.crystal_cap_default & 0x7F; + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, + "[RF][Xtal] DEFAULT crystal_cap = 0x%x\n", crystal_cap); + reg_val = crystal_cap + cali_info->xtal_offset; + //reg_val = (u32)(odm_get_mac_reg(dm, R_0x103c, 0x0001FC00) + cali_info->xtal_offset); + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, + "[RF][Xtal] reg_val = 0x%x\n", reg_val); + /* write 0x103c[23:17] = 0x103c[16:10] = crystal_cap */ + crystal_cap = reg_val | (reg_val << 7); + odm_set_mac_reg(dm, R_0x103c, 0x00FFFC00, crystal_cap); + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, + "[RF][Xtal] R_0x103c[16:10] = 0x%x\n", odm_get_mac_reg(dm, R_0x103c, 0x0001FC00)); + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, + "[RF][Xtal] R_0x103c[23:17] = 0x%x\n", odm_get_mac_reg(dm, R_0x103c, 0x00FE0000)); + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "**********End Xtal Tracking**********\n"); + } + //odm_set_rf_reg(dm, RF_PATH_A, RF_0x42, 0x30000, 0x3); + //delay + } + /*RF_DBG(dm, DBG_RF_TX_PWR_TRACK, + "[RF][xtal] <======%s\n", __func__);*/ +} +#endif + void _halrf_dump_subpage(void *dm_void, u32 *_used, char *output, u32 *_out_len, u8 page) { struct dm_struct *dm = (struct dm_struct *)dm_void; @@ -3900,15 +4595,22 @@ void _halrf_dump_subpage(void *dm_void, u32 *_used, char *output, u32 *_out_len, PDM_SNPF(out_len, used, output + used, out_len - used, "\n===============[ Subpage_%d start]===============\n", page); + RF_DBG(dm, DBG_RF_RFK, " ===============[ Subpage_%d start]===============\n", page); + odm_set_bb_reg(dm, R_0x1b00, BIT(2) | BIT(1), page); for (addr = 0x1b00; addr < 0x1c00; addr += 0x10) { PDM_SNPF(out_len, used, output + used, out_len - used, " 0x%x : 0x%08x 0x%08x 0x%08x 0x%08x\n", addr, odm_get_bb_reg(dm, addr, MASKDWORD), - odm_get_bb_reg(dm, addr + 0x4, MASKDWORD), - odm_get_bb_reg(dm, addr + 0x8, MASKDWORD), - odm_get_bb_reg(dm, addr + 0xc, MASKDWORD)); + odm_get_bb_reg(dm, addr + 0x4, MASKDWORD), + odm_get_bb_reg(dm, addr + 0x8, MASKDWORD), + odm_get_bb_reg(dm, addr + 0xc, MASKDWORD)); + RF_DBG(dm, DBG_RF_RFK, " 0x%x : 0x%08x 0x%08x 0x%08x 0x%08x\n", addr, + odm_get_bb_reg(dm, addr, MASKDWORD), + odm_get_bb_reg(dm, addr + 0x4, MASKDWORD), + odm_get_bb_reg(dm, addr + 0x8, MASKDWORD), + odm_get_bb_reg(dm, addr + 0xc, MASKDWORD)); } *_used = used; @@ -3931,14 +4633,24 @@ void halrf_dump_rfk_reg(void *dm_void, char input[][16], u32 *_used, if (!(dm->support_ic_type & (ODM_IC_11AC_SERIES | ODM_IC_JGR3_SERIES))) { PDM_SNPF(out_len, used, output + used, out_len - used, "CMD is Unsupported due to IC type!!!\n"); + RF_DBG(dm, DBG_RF_RFK, "[RFK] CMD is Unsupported due to IC type!!!\n"); return; } else if (rf->is_dpk_in_progress || dm->rf_calibrate_info.is_iqk_in_progress || dm->is_psd_in_process || rf->is_tssi_in_progress || rf->is_txgapk_in_progress) { - PDM_SNPF(out_len, used, output + used, out_len - used, + PDM_SNPF(out_len, used, output + used, out_len - used, "Bypass CMD due to RFK is doing!!!\n"); + RF_DBG(dm, DBG_RF_RFK, "[RFK] Bypass CMD due to RFK is doing!!!\n"); return; } +#if (DM_ODM_SUPPORT_TYPE == ODM_WIN) + if (*dm->is_fcs_mode_enable) { + PDM_SNPF(out_len, used, output + used, out_len - used, + "Bypass CMD due to FCS mode!!!\n"); + RF_DBG(dm, DBG_RF_RFK, "[RFK] Bypass CMD due to FCS mode!!!\n"); + return; + } +#endif supportability = rf->rf_supportability; /*to avoid DPK track interruption*/ diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf.h index a8245195..36caa945 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf.h @@ -61,6 +61,14 @@ #include "halrf/rtl8814b/halrf_txgapk_8814b.h" #endif +#if (RTL8814C_SUPPORT == 1) +#include "halrf/rtl8814c/halrf_rfk_init_8814c.h" +#include "halrf/rtl8814c/halrf_iqk_8814c.h" +#include "halrf/rtl8814c/halrf_dpk_8814c.h" +#include "halrf/rtl8814c/halrf_txgapk_8814c.h" +#endif + + /*@============================================================*/ /*@Definition */ /*@============================================================*/ @@ -71,12 +79,12 @@ #define IQK_VER_8192F "0x01" #define IQK_VER_8723B "0x1e" #define IQK_VER_8812A "0x02" -#define IQK_VER_8821A "0x01" +#define IQK_VER_8821A "0x02" #elif (DM_ODM_SUPPORT_TYPE & (ODM_CE)) #define IQK_VER_8188E "0x01" #define IQK_VER_8192E "0x01" #define IQK_VER_8192F "0x01" -#define IQK_VER_8723B "0x1e" +#define IQK_VER_8723B "0x1f" #define IQK_VER_8812A "0x01" #define IQK_VER_8821A "0x01" #elif (DM_ODM_SUPPORT_TYPE & (ODM_AP)) @@ -100,20 +108,22 @@ #define IQK_VER_8703B "0x05" #define IQK_VER_8710B "0x01" #define IQK_VER_8723D "0x02" -#define IQK_VER_8822B "0x31" +#define IQK_VER_8822B "0x32" #define IQK_VER_8822C "0x14" #define IQK_VER_8821C "0x23" #define IQK_VER_8198F "0x0b" -#define IQK_VER_8814B "0x13" -#define IQK_VER_8812F "0x0a" -#define IQK_VER_8710C "0x05" +#define IQK_VER_8814B "0x15" +#define IQK_VER_8812F "0x0c" +#define IQK_VER_8710C "0x0a" #define IQK_VER_8197G "0x03" +#define IQK_VER_8723F "0x00" +#define IQK_VER_8814C "0x00" /*LCK version*/ -#define LCK_VER_8188E "0x01" -#define LCK_VER_8192E "0x01" +#define LCK_VER_8188E "0x02" +#define LCK_VER_8192E "0x02" #define LCK_VER_8192F "0x01" -#define LCK_VER_8723B "0x01" +#define LCK_VER_8723B "0x02" #define LCK_VER_8812A "0x01" #define LCK_VER_8821A "0x01" #define LCK_VER_8814A "0x01" @@ -124,11 +134,13 @@ #define LCK_VER_8723D "0x01" #define LCK_VER_8822B "0x02" #define LCK_VER_8822C "0x00" -#define LCK_VER_8821C "0x02" -#define LCK_VER_8814B "0x01" +#define LCK_VER_8821C "0x03" +#define LCK_VER_8814B "0x02" #define LCK_VER_8195B "0x02" -#define LCK_VER_8710C "0x01" -#define LCK_VER_8197G "0x00" +#define LCK_VER_8710C "0x02" +#define LCK_VER_8197G "0x01" +#define LCK_VER_8198F "0x01" +#define LCK_VER_8814C "0x00" /*power tracking version*/ #define PWRTRK_VER_8188E "0x01" @@ -148,6 +160,7 @@ #define PWRTRK_VER_8821C "0x01" #define PWRTRK_VER_8814B "0x00" #define PWRTRK_VER_8197G "0x00" +#define PWRTRK_VER_8814C "0x00" /*DPK version*/ #define DPK_VER_8188E "NONE" @@ -164,12 +177,13 @@ #define DPK_VER_8822B "NONE" #define DPK_VER_8822C "0x20" #define DPK_VER_8821C "NONE" -#define DPK_VER_8192F "0x0d" +#define DPK_VER_8192F "0x13" #define DPK_VER_8198F "0x0e" -#define DPK_VER_8814B "0x0b" +#define DPK_VER_8814B "0x0f" #define DPK_VER_8195B "0x0c" -#define DPK_VER_8812F "0x07" -#define DPK_VER_8197G "0x06" +#define DPK_VER_8812F "0x0a" +#define DPK_VER_8197G "0x09" +#define DPK_VER_8814C "0x01" /*RFK_INIT version*/ #define RFK_INIT_VER_8822B "0x8" @@ -177,12 +191,14 @@ #define RFK_INIT_VER_8195B "0x1" #define RFK_INIT_VER_8198F "0x8" #define RFK_INIT_VER_8814B "0xa" -#define RFK_INIT_VER_8812F "0x3" -#define RFK_INIT_VER_8197G "0x3" +#define RFK_INIT_VER_8812F "0x4" +#define RFK_INIT_VER_8197G "0x4" +#define RFK_INIT_VER_8814C "0x0" /*DACK version*/ #define DACK_VER_8822C "0xa" -#define DACK_VER_8814B "0x3" +#define DACK_VER_8814B "0x4" +#define DACK_VER_8814C "0x0" /*TXGAPK version*/ #define TXGAPK_VER_8814B "0x1" @@ -229,6 +245,7 @@ #define TSSI_VER_8821C "0x1" #define TSSI_VER_8814B "0x1" #define TSSI_VER_8197G "0x1" +#define TSSI_VER_8723F "0x1" /*PA Bias Calibration version*/ #define PABIASK_VER_8188E \ @@ -284,6 +301,7 @@ (dm->support_ic_type == ODM_RTL8821C) ? IQK_VER_8821C : \ (dm->support_ic_type == ODM_RTL8814B) ? IQK_VER_8814B : \ (dm->support_ic_type == ODM_RTL8710C) ? IQK_VER_8710C : \ + (dm->support_ic_type == ODM_RTL8723F) ? IQK_VER_8723F : \ (dm->support_ic_type == ODM_RTL8197G) ? IQK_VER_8197G : "unknown" #define HALRF_LCK_VER \ @@ -368,7 +386,8 @@ (dm->support_ic_type == ODM_RTL8822C) ? TSSI_VER_8822C : \ (dm->support_ic_type == ODM_RTL8821C) ? TSSI_VER_8821C : \ (dm->support_ic_type == ODM_RTL8814B) ? TSSI_VER_8814B : \ - (dm->support_ic_type == ODM_RTL8197G) ? TSSI_VER_8197G : "unknown" + (dm->support_ic_type == ODM_RTL8197G) ? TSSI_VER_8197G : \ + (dm->support_ic_type == ODM_RTL8723F) ? TSSI_VER_8723F : "unknown" #define HALRF_PABIASK_VER \ (dm->support_ic_type == ODM_RTL8188E) ? PABIASK_VER_8188E : \ @@ -403,7 +422,7 @@ #define IQK_THRESHOLD 8 #define DPK_THRESHOLD 4 -#define HALRF_ABS(a, b) ((a > b) ? (a - b) : (b - a)) +#define HALRF_ABS(a,b) ((a>b) ? (a-b) : (b-a)) #define SN 100 #define CCK_TSSI_NUM 6 @@ -432,7 +451,8 @@ enum halrf_func_idx { /*F_XXX = PHYDM XXX function*/ RF05_DACK = 5, RF06_DPK_TRK = 6, RF07_2GBAND_SHIFT = 7, - RF08_RXDCK = 8 + RF08_RXDCK = 8, + RF09_RFK = 9 }; enum halrf_ability { @@ -460,6 +480,8 @@ enum halrf_dbg_comp { DBG_RF_DPK = BIT(RF03_DPK), DBG_RF_TXGAPK = BIT(RF04_TXGAPK), DBG_RF_DACK = BIT(RF05_DACK), + DBG_RF_DPK_TRACK = BIT(RF06_DPK_TRK), + DBG_RF_RFK = BIT(RF09_RFK), DBG_RF_MP = BIT(29), DBG_RF_TMP = BIT(30), DBG_RF_INIT = BIT(31) @@ -479,8 +501,7 @@ enum halrf_cmninfo_init { HALRF_CMNINFO_MP_PSD_AVERAGE, HALRF_CMNINFO_IQK_TIMES, HALRF_CMNINFO_MP_POWER_TRACKING_TYPE, - HALRF_CMNINFO_POWER_TRACK_CONTROL, - HALRF_CMNINFO_TSSI_RETRY_SPECIAL_SCAN + HALRF_CMNINFO_POWER_TRACK_CONTROL }; enum halrf_cmninfo_hook { @@ -513,18 +534,17 @@ enum halrf_k_segment_time { #define TSSI_EFUSE_NUM 25 #define TSSI_EFUSE_KFREE_NUM 4 - -#define TSSI_CHANNEL_NUM 70 +#define TSSI_DE_DIFF_EFUSE_NUM 10 struct _halrf_tssi_data { s32 cck_offset_patha; s32 cck_offset_pathb; - s32 power_track_offset[PHYDM_MAX_RF_PATH]; s32 tssi_trk_txagc_offset[PHYDM_MAX_RF_PATH]; s32 delta_tssi_txagc_offset[PHYDM_MAX_RF_PATH]; s16 txagc_codeword[TSSI_CODE_NUM]; u16 tssi_codeword[TSSI_CODE_NUM]; s8 tssi_efuse[PHYDM_MAX_RF_PATH][TSSI_EFUSE_NUM]; + s8 tssi_de_diff_efuse[PHYDM_MAX_RF_PATH][TSSI_DE_DIFF_EFUSE_NUM]; s8 tssi_kfree_efuse[PHYDM_MAX_RF_PATH][TSSI_EFUSE_KFREE_NUM]; u8 thermal[PHYDM_MAX_RF_PATH]; u32 index[PHYDM_MAX_RF_PATH][14]; @@ -532,12 +552,11 @@ struct _halrf_tssi_data { u8 get_thermal; u8 tssi_finish_bit[PHYDM_MAX_RF_PATH]; u8 thermal_trigger; - s8 txagc_offset[PHYDM_MAX_RF_PATH][TSSI_CHANNEL_NUM]; - u8 tssi_thermal[PHYDM_MAX_RF_PATH]; - u8 retry_sacan_tssi; - u8 special_scan_num; - u8 connect_ch_num; - u32 tssi_dck[4][PHYDM_MAX_RF_PATH]; + s8 tssi_de; +#if (RTL8723F_SUPPORT == 1) + s8 txagc_offset_thermaltrack[MAX_PATH_NUM_8723F]; + u8 thermal_cal; +#endif }; struct _halrf_txgapk_info { @@ -584,12 +603,13 @@ struct _hal_rf_ { u32 p_rate_index; u8 pwt_type; u32 rf_dbg_comp; + u8 rfk_type; + u32 gnt_control; u8 ext_lna; /*@with 2G external LNA NO/Yes = 0/1*/ u8 ext_lna_5g; /*@with 5G external LNA NO/Yes = 0/1*/ u8 ext_pa; /*@with 2G external PNA NO/Yes = 0/1*/ u8 ext_pa_5g; /*@with 5G external PNA NO/Yes = 0/1*/ - #if !(DM_ODM_SUPPORT_TYPE & ODM_IOT) struct _halrf_psd_data halrf_psd_data; struct _halrf_tssi_data halrf_tssi_data; @@ -727,10 +747,8 @@ void halrf_tssi_get_efuse(void *dm_void); void halrf_do_tssi(void *dm_void); -void halrf_do_tssi_scan(void *dm_void); +u8 halrf_do_tssi_by_manual(void *dm_void, u8 path); -void halrf_tssi_set_tssi_tx_counter(void *dm_void, u8 special_scan_num, - u8 connect_ch_num); void halrf_set_tssi_enable(void *dm_void, boolean enable); @@ -750,24 +768,8 @@ void halrf_thermal_cck(void *dm_void); void halrf_tssi_set_de(void *dm_void); -void halrf_tssi_scan_set_tssi_setting(void *dm_void); - -void halrf_tssi_scan_save_txagc_offset(void *dm_void, u8 path); - -void halrf_tssi_scan_reload_txagc_offset(void *dm_void); - -void halrf_tssi_lps_get_txagc_offset(void *dm_void, u8 *txagc_offset); - -void halrf_enable_tssi(void *dm_void); - -void halrf_disable_tssi(void *dm_void); - void halrf_tssi_dck(void *dm_void, u8 direct_do); -void halrf_tssi_dck_scan(void *dm_void); - -void halrf_set_tssi_codeword_scan(void *dm_void); - void halrf_calculate_tssi_codeword(void *dm_void); void halrf_set_tssi_codeword(void *dm_void); @@ -780,8 +782,12 @@ u32 halrf_tssi_trigger_de(void *dm_void, u8 path); u32 halrf_tssi_get_de(void *dm_void, u8 path); +u32 halrf_get_online_tssi_de(void *dm_void, u8 path, s32 pout); + void halrf_tssi_trigger(void *dm_void); +void halrf_spur_compensation(void *dm_void); + void halrf_txgapk_write_gain_table(void *dm_void); void halrf_txgapk_reload_tx_gain(void *dm_void); @@ -823,6 +829,14 @@ void halrf_delay_10us(u16 v1); void halrf_dump_rfk_reg(void *dm_void, char input[][16], u32 *_used, char *output, u32 *_out_len); +void halrf_xtal_thermal_track(void *dm_void); + +void halrf_powertracking_thermal(void *dm_void); + +u32 halrf_tssi_turn_target_power(void *dm_void, s16 power_offset, u8 path); + +void halrf_tssi_set_power_offset(void *dm_void, s16 power_offset, u8 path); + void halrf_rfk_power_save(void *dm_void, boolean is_power_save); #endif /*__HALRF_H__*/ diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_debug.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_debug.c index b0b8fffb..3f2d142b 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_debug.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_debug.c @@ -173,6 +173,9 @@ void halrf_debug_trace(void *dm_void, char input[][16], u32 *_used, PDM_SNPF(out_len, used, output + used, out_len - used, "04. (( %s ))TXGAPK\n", ((rf->rf_dbg_comp & DBG_RF_TXGAPK) ? ("V") : ("."))); + PDM_SNPF(out_len, used, output + used, out_len - used, + "06. (( %s ))DPK_TRACK\n", + ((rf->rf_dbg_comp & DBG_RF_DPK_TRACK) ? ("V") : ("."))); PDM_SNPF(out_len, used, output + used, out_len - used, "29. (( %s ))MP\n", ((rf->rf_dbg_comp & DBG_RF_MP) ? ("V") : ("."))); @@ -373,15 +376,17 @@ void halrf_init_debug_setting(void *dm_void) rf->rf_dbg_comp = + DBG_RF_RFK | #if DBG -#if 0 - /*DBG_RF_TX_PWR_TRACK |*/ +#if 1 + /*DBG_RF_TX_PWR_TRACK | */ /*DBG_RF_IQK | */ /*DBG_RF_LCK | */ /*DBG_RF_DPK | */ - /*DBG_RF_DACK | */ /*DBG_RF_TXGAPK | */ - /*DBG_RF_MP | */ + /*DBG_RF_DACK | */ + /*DBG_RF_DPK_TRACK | */ + /*DBG_RF_MP | */ /*DBG_RF_TMP | */ /*DBG_RF_INIT | */ #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_debug.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_debug.h index ff1ff96d..c13f3c56 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_debug.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_debug.h @@ -96,6 +96,23 @@ static __inline void RF_DBG(PDM_ODM_T dm, int comp, char *fmt, ...) #if (DM_ODM_SUPPORT_TYPE == ODM_WIN) static __inline void RF_DBG(struct dm_struct *dm, int comp, char *fmt, ...) { +#if 0 + RT_STATUS rt_status; + va_list args; + char buf[128] = {0};/*PRINT_MAX_SIZE*/ + + if ((comp & dm->rf_table.rf_dbg_comp) == 0) + return; + + if (NULL != fmt) { + va_start(args, fmt); + rt_status = (RT_STATUS)RtlStringCbVPrintfA(buf, sizeof(buf), fmt, args); + va_end(args); + if (rt_status == RT_STATUS_SUCCESS) { + halrf_rt_trace(buf); + } + } +#endif } #else #define RF_DBG(dm, comp, fmt, args...) diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_dpk.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_dpk.h index c8b21f8c..f51ff6f6 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_dpk.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_dpk.h @@ -43,6 +43,22 @@ #define AVG_THERMAL_NUM_DPK 8 #define THERMAL_DPK_AVG_NUM 4 +/*define RF path numer*/ +#if (RTL8198F_SUPPORT == 1 || RTL8814B_SUPPORT == 1|| RTL8814C_SUPPORT == 1) +#define KPATH 4 +#elif (RTL8192F_SUPPORT == 1 || RTL8197F_SUPPORT == 1 ||RTL8197G_SUPPORT == 1 ||\ + RTL8822C_SUPPORT == 1 || RTL8812F_SUPPORT == 1 || RTL8723F_SUPPORT == 1) +#define KPATH 2 +#else +#define KPATH 1 +#endif + +#if (RTL8814B_SUPPORT == 1 || RTL8721D_SUPPORT == 1) +#define GROUP_5G 6 +#elif (RTL8195B_SUPPORT == 1) +#define GROUP_5G 13 +#endif + /*@---------------------------End Define Parameters---------------------------*/ struct dm_dpk_info { @@ -51,19 +67,23 @@ struct dm_dpk_info { boolean is_dpk_pwr_on; boolean is_dpk_by_channel; boolean is_tssi_mode; - boolean is_reload; - u16 dpk_path_ok; + u8 dpk_status; /*bit[0]:reload;bit[1]:cal;bit[2]:cal_ok*/ + u16 dpk_path_ok; /*@BIT(15)~BIT(12) : 5G reserved, BIT(11)~BIT(8) 5G_S3~5G_S0*/ /*@BIT(7)~BIT(4) : 2G reserved, BIT(3)~BIT(0) 2G_S3~2G_S0*/ - u8 thermal_dpk[4]; /*path*/ - u8 thermal_dpk_avg[4][AVG_THERMAL_NUM_DPK]; /*path*/ - u8 pre_pwsf[4]; + u8 thermal_dpk[KPATH]; /*path*/ + u8 thermal_dpk_avg[KPATH][AVG_THERMAL_NUM_DPK]; /*path*/ + u8 pre_pwsf[KPATH]; u8 thermal_dpk_avg_index; u32 gnt_control; u32 gnt_value; u8 dpk_ch; u8 dpk_band; u8 dpk_bw; + u32 dpk_rf18[2]; + u32 dpk_cal_cnt; + u32 dpk_ok_cnt; + u32 dpk_reload_cnt; #if (RTL8822C_SUPPORT == 1 || RTL8812F_SUPPORT == 1 || RTL8197G_SUPPORT == 1) u16 dc_i[2]; /*MDPD DC I path*/ @@ -81,59 +101,94 @@ struct dm_dpk_info { #endif #if (RTL8198F_SUPPORT == 1 || RTL8192F_SUPPORT == 1 || RTL8197F_SUPPORT == 1 ||\ - RTL8814B_SUPPORT == 1 || RTL8197G_SUPPORT == 1) + RTL8814B_SUPPORT == 1 || RTL8197G_SUPPORT == 1) /*2G DPK data*/ - u8 dpk_result[4][3]; /*path/group*/ - u8 pwsf_2g[4][3]; /*path/group*/ - u32 lut_2g_even[4][3][64]; /*path/group/LUT data*/ - u32 lut_2g_odd[4][3][64]; /*path/group/LUT data*/ + u8 dpk_result[KPATH][3]; /*path/group*/ + u8 pwsf_2g[KPATH][3]; /*path/group*/ + u32 lut_2g_even[KPATH][3][64]; /*path/group/LUT data*/ + u32 lut_2g_odd[KPATH][3][64]; /*path/group/LUT data*/ s16 tmp_pas_i[32]; /*PAScan I data*/ s16 tmp_pas_q[32]; /*PAScan Q data*/ +#endif + +#if (RTL8814B_SUPPORT == 1) /*5G DPK data*/ - u8 dpk_5g_result[4][6]; /*path/group*/ - u8 pwsf_5g[4][6]; /*path/group*/ - u32 lut_5g[4][6][64]; /*path/group/LUT data*/ - u32 lut_2g[4][3][64]; /*path/group/LUT data*/ - /*8814B*/ + u8 dpk_5g_result[KPATH][GROUP_5G]; /*path/group*/ + u8 pwsf_5g[KPATH][GROUP_5G]; /*path/group*/ + u32 lut_5g[KPATH][GROUP_5G][64]; /*path/group/LUT data*/ + u32 lut_2g[KPATH][3][64]; /*path/group/LUT data*/ u8 rxbb[4]; /*path/group*/ u8 txbb[4]; /*path/group*/ u8 tx_gain; #endif +#if (RTL8814C_SUPPORT == 1) + u8 thr_pwsf[KPATH]; +#endif + + #if (RTL8195B_SUPPORT == 1) + u8 dpk_txagc; /*2G DPK data*/ - u8 dpk_2g_result[1][3]; /*path/group*/ - u8 pwsf_2g[1][3]; /*path/group*/ - u32 lut_2g_even[1][3][16]; /*path/group/LUT data*/ - u32 lut_2g_odd[1][3][16]; /*path/group/LUT data*/ + u8 dpk_2g_result[KPATH][3]; /*path/group*/ + u8 pwsf_2g[KPATH][3]; /*path/group*/ + u32 lut_2g_even[KPATH][3][16]; /*path/group/LUT data*/ + u32 lut_2g_odd[KPATH][3][16]; /*path/group/LUT data*/ /*5G DPK data*/ - u8 dpk_5g_result[1][13]; /*path/group*/ - u8 pwsf_5g[1][13]; /*path/group*/ - u32 lut_5g_even[1][13][16]; /*path/group/LUT data*/ - u32 lut_5g_odd[1][13][16]; /*path/group/LUT data*/ + u8 dpk_5g_result[KPATH][GROUP_5G]; /*path/group*/ + u8 pwsf_5g[KPATH][GROUP_5G]; /*path/group*/ + u32 lut_5g_even[KPATH][GROUP_5G][16]; /*path/group/LUT data*/ + u32 lut_5g_odd[KPATH][GROUP_5G][16]; /*path/group/LUT data*/ #endif #if (RTL8721D_SUPPORT == 1) - u8 dpk_txagc; - /*2G DPK data*/ - u8 dpk_2g_result[1][3]; /*path/group*/ - u8 pwsf_2g[1][3]; /*path/group*/ - u32 lut_2g_even[1][3][16]; /*path/group/LUT data*/ - u32 lut_2g_odd[1][3][16]; /*path/group/LUT data*/ - /*5G DPK data*/ - u8 dpk_5g_result[1][6]; /*path/group*/ - u8 pwsf_5g[1][6]; /*path/group*/ - u32 lut_5g_even[1][6][16]; /*path/group/LUT data*/ - u32 lut_5g_odd[1][6][16]; /*path/group/LUT data*/ + s16 tmp_pas_i[32]; /*PAScan I data*/ + s16 tmp_pas_q[32]; /*PAScan Q data*/ + u8 dpk_txagc; /*path*/ +#if (DPK_BY_GROUP_K_8721D) + /*2G DPK data*/ + u8 dpk_2g_result[1][3]; /*path/group*/ + u8 pwsf_2g[1][3]; /*path/group*/ + u32 lut_2g_even[1][3][16]; /*path/group/LUT data*/ + u32 lut_2g_odd[1][3][16]; /*path/group/LUT data*/ + /*5G DPK data*/ + u8 dpk_5g_result[1][6]; /*path/group*/ + u8 pwsf_5g[1][6]; /*path/group*/ + u32 lut_5g_even[1][6][16]; /*path/group/LUT data*/ + u32 lut_5g_odd[1][6][16]; /*path/group/LUT data*/ +#else + u8 dpk_2g_result[1][1]; /*path/group*/ + u8 pwsf_2g[1][1]; /*path/group*/ + u32 lut_2g_even[1][1][16]; /*path/group/LUT data*/ + u32 lut_2g_odd[1][1][16]; /*path/group/LUT data*/ + u8 dpk_5g_result[1][1]; /*path/group*/ + u8 pwsf_5g[1][1]; /*path/group*/ + u32 lut_5g_even[1][1][16]; /*path/group/LUT data*/ + u32 lut_5g_odd[1][1][16]; /*path/group/LUT data*/ +#endif #endif +#if(RTL8723F_SUPPORT == 1) + u8 one_shot_cnt; + u8 dpk_current_path; + u8 thermal_init[KPATH]; + u8 dpk_delta_thermal[KPATH]; /*path*/ + s8 last_offset[KPATH]; /*path*/ + u8 txagc[KPATH]; /*path*/ + u8 tssi_txagc[KPATH][2]; /*path/0:txagc_rf,1:tssi_offset*/ + u16 digital_bbgain[KPATH]; /*path*/ + u16 pwsf[KPATH]; /*path*/ + +#endif }; #if (RTL8822C_SUPPORT == 1) struct dm_dpk_c2h_report { - u8 path_ok[2]; /*path0_ok/path1_ok*/ + u8 result[2]; /*ch0_result/ch1_result*/ u8 therm[2][2]; /*therm0_s0/therm0_s1/therm1_s0/therm1_s1*/ u8 therm_delta[2][2]; /*therm_delta0_s0/therm_delta0_s1/therm_delta1_s0/therm_delta1_s1*/ + u32 dpk_rf18[2]; /*dpk_ch0/dpk_ch1*/ + u8 dpk_status; /*dpk_status*/ }; #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_iqk.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_iqk.h index 93dc4aa7..0c7fe30f 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_iqk.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_iqk.h @@ -40,10 +40,11 @@ #define TXWBIQK_EN 1 #define RXWBIQK_EN 1 #if (RTL8814A_SUPPORT == 1 || RTL8198F_SUPPORT == 1 ||\ - RTL8814B_SUPPORT) + RTL8814B_SUPPORT ||RTL8814C_SUPPORT == 1) #define NUM 4 #elif (RTL8822B_SUPPORT == 1 || RTL8822C_SUPPORT == 1 ||\ - RTL8812F_SUPPORT == 1 || RTL8197G_SUPPORT == 1) + RTL8812F_SUPPORT == 1 || RTL8197G_SUPPORT == 1 ||\ + RTL8723F_SUPPORT == 1) #define NUM 2 #else #define NUM 1 @@ -85,22 +86,32 @@ struct dm_iqk_info { RTL8195B_SUPPORT == 1 || RTL8198F_SUPPORT == 1 ||\ RTL8814B_SUPPORT == 1 || RTL8822C_SUPPORT == 1 ||\ RTL8812F_SUPPORT == 1 || RTL8197G_SUPPORT == 1 ||\ - RTL8710C_SUPPORT == 1) + RTL8710C_SUPPORT == 1 || RTL8723F_SUPPORT == 1 ||\ + RTL8814C_SUPPORT == 1) u32 iqk_channel[2]; - u32 nbtxk_1b38[2]; - u32 nbrxk_1b3c[2]; boolean iqk_fail_report[2][NUM][2]; /*channel/path/TRX(TX:0, RX:1) */ /*channel / path / TRX(TX:0, RX:1) / CFIR_real*/ /*channel index = 2 is just for debug*/ -#if (RTL8814B_SUPPORT == 1) +#if (RTL8814B_SUPPORT == 1||RTL8814C_SUPPORT == 1) u16 iqk_cfir_real[3][NUM][2][19]; u16 iqk_cfir_imag[3][NUM][2][19]; + u32 rx_cfir_real[2][NUM][17]; + u32 rx_cfir_imag[2][NUM][17]; + u32 rx_cfir[2][NUM]; #elif (RTL8812F_SUPPORT == 1 || RTL8822C_SUPPORT == 1 ) u16 iqk_cfir_real[3][2][2][17]; /*channel / path / TRX(TX:0, RX:1) / CFIR_imag*/ /*channel index = 2 is just for debug*/ u16 iqk_cfir_imag[3][2][2][17]; + u32 rx_cfir_real[2][2][17]; + u32 rx_cfir_imag[2][2][17]; + u32 rx_cfir[2][2]; /*times/path*/ +#elif (RTL8195B_SUPPORT == 1) + u32 iqk_cfir_real[3][NUM][2][9]; + u32 iqk_cfir_imag[3][NUM][2][9]; + /*channel / path / TRX(TX:0, RX:1) / CFIR_imag*/ + /*channel index = 2 is just for debug*/ #else u32 iqk_cfir_real[3][NUM][2][8]; /*channel / path / TRX(TX:0, RX:1) / CFIR_imag*/ @@ -108,11 +119,6 @@ struct dm_iqk_info { u32 iqk_cfir_imag[3][NUM][2][8]; #endif -#if (RTL8812F_SUPPORT == 1 || RTL8822C_SUPPORT == 1 ) - u32 rx_cfir_real[2][2][17]; - u32 rx_cfir_imag[2][2][17]; - u32 rx_cfir[2][2]; -#endif u8 retry_count[2][NUM][3]; /* channel / path / (TXK:0, RXK1:1, RXK2:2) */ u8 gs_retry_count[2][NUM][2]; /* channel / path / (GSRXK1:0, GSRXK2:1) */ /* channel / path 0:SRXK1 fail, 1:RXK1 fail 2:RXK2 fail */ @@ -135,11 +141,18 @@ struct dm_iqk_info { u32 gs1_xym[2][6]; u32 gs2_xym[2][6]; u32 rxk1_xym[2][6]; + u32 nbtxk_1b38[2]; + u32 nbrxk_1b3c[2]; #endif #if (RTL8710C_SUPPORT == 1 || RTL8197G_SUPPORT == 1 ) u32 txxy[2][2]; u32 rxxy[2][2]; #endif +#if (RTL8723F_SUPPORT == 1) + u32 txxy[2][2]; + u32 rxxy[2][2][2]; +#endif + #endif }; diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_kfree.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_kfree.c index 8f14ba3f..66a9a707 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_kfree.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_kfree.c @@ -774,6 +774,9 @@ void phydm_get_thermal_trim_offset_8198f(void *dm_void) odm_efuse_one_byte_read(dm, PPG_THERMAL_OFFSET_98F, &pg_therm, false); + RF_DBG(dm, DBG_RF_MP, "[kfree] 8198f efuse thermal trim 0x%X=0x%X\n", + PPG_THERMAL_OFFSET_98F, pg_therm); + if (pg_therm != 0) { pg_therm = pg_therm & 0x1f; if ((pg_therm & BIT(0)) == 0) @@ -797,33 +800,51 @@ void phydm_get_power_trim_offset_8198f(void *dm_void) struct dm_struct *dm = (struct dm_struct *)dm_void; struct odm_power_trim_data *power_trim_info = &dm->power_trim_data; - u8 pg_power = 0, i, j; + u8 i, j; + u8 power_trim[6] = {0}; - odm_efuse_one_byte_read(dm, PPG_2GL_TXAB_98F, &pg_power, false); + odm_efuse_one_byte_read(dm, PPG_2GL_TXAB_98F, &power_trim[0], false); + odm_efuse_one_byte_read(dm, PPG_2GL_TXCD_98F, &power_trim[1], false); + odm_efuse_one_byte_read(dm, PPG_2GM_TXAB_98F, &power_trim[2], false); + odm_efuse_one_byte_read(dm, PPG_2GM_TXCD_98F, &power_trim[3], false); + odm_efuse_one_byte_read(dm, PPG_2GH_TXAB_98F, &power_trim[4], false); + odm_efuse_one_byte_read(dm, PPG_2GH_TXCD_98F, &power_trim[5], false); - if (pg_power != 0) { - power_trim_info->bb_gain[0][0] = pg_power & 0xf; - power_trim_info->bb_gain[0][1] = (pg_power & 0xf0) >> 4; + RF_DBG(dm, DBG_RF_MP, "[kfree] 8198f efuse Power Trim 0x%X=0x%X 0x%X=0x%X 0x%X=0x%X 0x%X=0x%X 0x%X=0x%X 0x%X=0x%X\n", + PPG_2GL_TXAB_98F, power_trim[0], + PPG_2GL_TXCD_98F, power_trim[1], + PPG_2GM_TXAB_98F, power_trim[2], + PPG_2GM_TXCD_98F, power_trim[3], + PPG_2GH_TXAB_98F, power_trim[4], + PPG_2GH_TXCD_98F, power_trim[5] + ); - odm_efuse_one_byte_read(dm, PPG_2GL_TXCD_98F, &pg_power, false); - power_trim_info->bb_gain[0][2] = pg_power & 0xf; - power_trim_info->bb_gain[0][3] = (pg_power & 0xf0) >> 4; + j = 0; + for (i = 0; i < 6; i++) { + if (power_trim[i] == 0x0) + j++; + } - odm_efuse_one_byte_read(dm, PPG_2GM_TXAB_98F, &pg_power, false); - power_trim_info->bb_gain[1][0] = pg_power & 0xf; - power_trim_info->bb_gain[1][1] = (pg_power & 0xf0) >> 4; + if (j == 6) { + RF_DBG(dm, DBG_RF_MP, "[kfree] 8198f Power Trim no pg\n"); + } else { + power_trim_info->bb_gain[0][0] = power_trim[0] & 0xf; + power_trim_info->bb_gain[0][1] = (power_trim[0] & 0xf0) >> 4; - odm_efuse_one_byte_read(dm, PPG_2GM_TXCD_98F, &pg_power, false); - power_trim_info->bb_gain[1][2] = pg_power & 0xf; - power_trim_info->bb_gain[1][3] = (pg_power & 0xf0) >> 4; + power_trim_info->bb_gain[0][2] = power_trim[1] & 0xf; + power_trim_info->bb_gain[0][3] = (power_trim[1] & 0xf0) >> 4; - odm_efuse_one_byte_read(dm, PPG_2GH_TXAB_98F, &pg_power, false); - power_trim_info->bb_gain[2][0] = pg_power & 0xf; - power_trim_info->bb_gain[2][1] = (pg_power & 0xf0) >> 4; + power_trim_info->bb_gain[1][0] = power_trim[2] & 0xf; + power_trim_info->bb_gain[1][1] = (power_trim[2] & 0xf0) >> 4; - odm_efuse_one_byte_read(dm, PPG_2GH_TXCD_98F, &pg_power, false); - power_trim_info->bb_gain[2][2] = pg_power & 0xf; - power_trim_info->bb_gain[2][3] = (pg_power & 0xf0) >> 4; + power_trim_info->bb_gain[1][2] = power_trim[3] & 0xf; + power_trim_info->bb_gain[1][3] = (power_trim[3] & 0xf0) >> 4; + + power_trim_info->bb_gain[2][0] = power_trim[4] & 0xf; + power_trim_info->bb_gain[2][1] = (power_trim[4] & 0xf0) >> 4; + + power_trim_info->bb_gain[2][2] = power_trim[5] & 0xf; + power_trim_info->bb_gain[2][3] = (power_trim[5] & 0xf0) >> 4; power_trim_info->flag = power_trim_info->flag | KFREE_FLAG_ON | KFREE_FLAG_ON_2G; @@ -848,23 +869,32 @@ void phydm_get_pa_bias_offset_8198f(void *dm_void) struct dm_struct *dm = (struct dm_struct *)dm_void; struct odm_power_trim_data *power_trim_info = &dm->power_trim_data; - u8 pg_pa_bias = 0, i; + u8 i, j; + u8 pa_bias[2] = {0}; u8 tx_pa_bias[4] = {0}; - odm_efuse_one_byte_read(dm, PPG_PABIAS_2GAB_98F, &pg_pa_bias, false); + odm_efuse_one_byte_read(dm, PPG_PABIAS_2GAB_98F, &pa_bias[0], false); + odm_efuse_one_byte_read(dm, PPG_PABIAS_2GCD_98F, &pa_bias[1], false); - if (pg_pa_bias != 0) { + RF_DBG(dm, DBG_RF_MP, "[kfree] 8198f efuse Tx PA Bias 0x%X=0x%X 0x%X=0x%X\n", + PPG_PABIAS_2GAB_98F, pa_bias[0], PPG_PABIAS_2GCD_98F, pa_bias[1]); + + j = 0; + for (i = 0; i < 2; i++) { + if (pa_bias[i] == 0x0) + j++; + } + + if (j == 2) { + RF_DBG(dm, DBG_RF_MP, "[kfree] 8198f Tx PA Bias no pg\n"); + } else { /*paht ab*/ - odm_efuse_one_byte_read(dm, PPG_PABIAS_2GAB_98F, - &pg_pa_bias, false); - tx_pa_bias[0] = pg_pa_bias & 0xf; - tx_pa_bias[1] = ((pg_pa_bias & 0xf0) >> 4); + tx_pa_bias[0] = pa_bias[0] & 0xf; + tx_pa_bias[1] = ((pa_bias[0] & 0xf0) >> 4); /*paht cd*/ - odm_efuse_one_byte_read(dm, PPG_PABIAS_2GCD_98F, - &pg_pa_bias, false); - tx_pa_bias[2] = pg_pa_bias & 0xf; - tx_pa_bias[3] = ((pg_pa_bias & 0xf0) >> 4); + tx_pa_bias[2] = pa_bias[1] & 0xf; + tx_pa_bias[3] = ((pa_bias[1] & 0xf0) >> 4); for (i = RF_PATH_A; i < 4; i++) { if ((tx_pa_bias[i] & 0x1) == 1) @@ -885,8 +915,6 @@ void phydm_get_pa_bias_offset_8198f(void *dm_void) odm_set_rf_reg(dm, i, 0x60, 0x0000f000, tx_pa_bias[i]); power_trim_info->pa_bias_flag |= PA_BIAS_FLAG_ON; - } else { - RF_DBG(dm, DBG_RF_MP, "[kfree] 8198f tx pa bias no pg\n"); } } @@ -895,34 +923,39 @@ void phydm_get_set_lna_offset_8198f(void *dm_void) struct dm_struct *dm = (struct dm_struct *)dm_void; struct odm_power_trim_data *power_trim_info = &dm->power_trim_data; - u8 pg_pa_bias = 0, i; + u8 i, j; + u8 lna_trim[4] = {0}; u8 cg[4] = {0}, cs[4] = {0}; u32 rf_reg; - odm_efuse_one_byte_read(dm, PPG_LNA_2GA_98F, &pg_pa_bias, false); + odm_efuse_one_byte_read(dm, PPG_LNA_2GA_98F, &lna_trim[0], false); + odm_efuse_one_byte_read(dm, PPG_LNA_2GB_98F, &lna_trim[1], false); + odm_efuse_one_byte_read(dm, PPG_LNA_2GC_98F, &lna_trim[2], false); + odm_efuse_one_byte_read(dm, PPG_LNA_2GD_98F, &lna_trim[3], false); - if (pg_pa_bias != 0) { - odm_efuse_one_byte_read(dm, PPG_LNA_2GA_98F, - &pg_pa_bias, false); - cg[0] = (pg_pa_bias & 0xc) >> 2; - cs[0] = pg_pa_bias & 0x3; + RF_DBG(dm, DBG_RF_MP, "[kfree] 8198f efuse LNA Trim 0x%X=0x%X 0x%X=0x%X 0x%X=0x%X 0x%X=0x%X\n", + PPG_LNA_2GA_98F, lna_trim[0], + PPG_LNA_2GB_98F, lna_trim[1], + PPG_LNA_2GC_98F, lna_trim[2], + PPG_LNA_2GD_98F, lna_trim[3] + ); - odm_efuse_one_byte_read(dm, PPG_LNA_2GB_98F, - &pg_pa_bias, false); - cg[1] = (pg_pa_bias & 0xc) >> 2; - cs[1] = pg_pa_bias & 0x3; + j = 0; + for (i = 0; i < 4; i++) { + if (lna_trim[i] == 0x0) + j++; + } - odm_efuse_one_byte_read(dm, PPG_LNA_2GC_98F, - &pg_pa_bias, false); - cg[2] = (pg_pa_bias & 0xc) >> 2; - cs[2] = pg_pa_bias & 0x3; + if (j == 4) { + RF_DBG(dm, DBG_RF_MP, "[kfree] 8198f LNA no pg\n"); + } else { - odm_efuse_one_byte_read(dm, PPG_LNA_2GD_98F, - &pg_pa_bias, false); - cg[3] = (pg_pa_bias & 0xc) >> 2; - cs[3] = pg_pa_bias & 0x3; + for (i = 0; i < 4; i++) { + cg[i] = (lna_trim[i] & 0xc) >> 2; + cs[i] = lna_trim[i] & 0x3; + } - for (i = RF_PATH_A; i < 4; i++) { + for (i = RF_PATH_A; i <= RF_PATH_D; i++) { RF_DBG(dm, DBG_RF_MP, "[kfree] 8198f lna cg[%d]=0x%x cs[%d]=0x%x\n", i, cg[i], i, cs[i]); @@ -949,8 +982,6 @@ void phydm_get_set_lna_offset_8198f(void *dm_void) } power_trim_info->lna_flag |= LNA_FLAG_ON; - } else { - RF_DBG(dm, DBG_RF_MP, "[kfree] 8198f lna no pg\n"); } } @@ -959,7 +990,7 @@ void phydm_set_kfree_to_rf_8198f(void *dm_void, u8 e_rf_path, u8 data) { struct dm_struct *dm = (struct dm_struct *)dm_void; struct odm_power_trim_data *power_trim_info = &dm->power_trim_data; - u32 band, i; + u32 i; s8 pwr_offset[3]; RF_DBG(dm, DBG_RF_MP, @@ -1000,10 +1031,11 @@ void phydm_set_kfree_to_rf_8198f(void *dm_void, u8 e_rf_path, u8 data) void phydm_clear_kfree_to_rf_8198f(void *dm_void, u8 e_rf_path, u8 data) { struct dm_struct *dm = (struct dm_struct *)dm_void; +#if 0 RF_DBG(dm, DBG_RF_MP, "[kfree] %s:Clear kfree to rf 0x55\n", __func__); -#if 0 + /*power_trim based on 55[19:14]*/ odm_set_rf_reg(dm, e_rf_path, RF_0x55, BIT(5), 1); /*enable 55[14] for 0.5db step*/ @@ -1032,7 +1064,6 @@ void phydm_clear_kfree_to_rf_8198f(void *dm_void, u8 e_rf_path, u8 data) odm_set_rf_reg(dm, e_rf_path, RF_0xf5, BIT(18), 0); /*write disable*/ odm_set_rf_reg(dm, e_rf_path, RF_0xef, BIT(7), 0); -#else odm_set_rf_reg(dm, e_rf_path, RF_0xdf, BIT(7), 1); /*odm_set_rf_reg(dm, e_rf_path, RF_0xf5, BIT(18), 0);*/ @@ -1247,7 +1278,7 @@ void phydm_get_tssi_trim_offset_8822c(void *dm_void) struct dm_struct *dm = (struct dm_struct *)dm_void; struct odm_power_trim_data *power_trim_info = &dm->power_trim_data; - u8 i, j = 0; + u8 i, j; u8 pg_power[16] = {0}; odm_efuse_one_byte_read(dm, TSSI_2GM_TXA_22C, &pg_power[0], false); @@ -1267,14 +1298,14 @@ void phydm_get_tssi_trim_offset_8822c(void *dm_void) odm_efuse_one_byte_read(dm, TSSI_5GH2_TXA_22C, &pg_power[14], false); odm_efuse_one_byte_read(dm, TSSI_5GH2_TXB_22C, &pg_power[15], false); + j = 0; for (i = 0; i < 16; i++) { if (pg_power[i] == 0xff) j++; } - if (j == 15) { + if (j == 16) { RF_DBG(dm, DBG_RF_MP, "[kfree] 8822c tssi trim no PG\n"); - return; } else { power_trim_info->tssi_trim[0][0] = (s8)pg_power[0]; power_trim_info->tssi_trim[0][1] = (s8)pg_power[1]; @@ -1410,7 +1441,7 @@ void phydm_get_set_thermal_trim_offset_8812f(void *dm_void) odm_efuse_one_byte_read(dm, PPG_THERMAL_A_OFFSET_22C, &pg_therm, false); - if (pg_therm != 0xff) { + if (pg_therm != 0xff && pg_therm != 0x0) { /*s0*/ pg_therm = pg_therm & 0x1f; @@ -1518,8 +1549,10 @@ void phydm_get_set_power_trim_offset_8812f(void *dm_void) odm_efuse_one_byte_read(dm, PPG_5GL2_TXB_22C, &pg_power4, false); odm_efuse_one_byte_read(dm, PPG_5GM1_TXA_22C, &pg_power5, false); - if (pg_power1 != 0xff || pg_power2 != 0xff || pg_power3 != 0xff || - pg_power4 != 0xff || pg_power5 != 0xff) { + if ((pg_power1 != 0xff || pg_power2 != 0xff || pg_power3 != 0xff || + pg_power4 != 0xff || pg_power5 != 0xff) && + (pg_power1 != 0x0 || pg_power2 != 0x0 || pg_power3 != 0x0 || + pg_power4 != 0x0 || pg_power5 != 0x0)) { #if 0 odm_efuse_one_byte_read(dm, PPG_2GL_TXAB_22C, &pg_power, false); if (pg_power == 0xff) @@ -1609,7 +1642,7 @@ void phydm_get_tssi_trim_offset_8812f(void *dm_void) struct dm_struct *dm = (struct dm_struct *)dm_void; struct odm_power_trim_data *power_trim_info = &dm->power_trim_data; - u8 i, j = 0; + u8 i, j ; u8 pg_power[16] = {0}; #if 0 @@ -1631,14 +1664,14 @@ void phydm_get_tssi_trim_offset_8812f(void *dm_void) odm_efuse_one_byte_read(dm, TSSI_5GH2_TXA_22C, &pg_power[14], false); odm_efuse_one_byte_read(dm, TSSI_5GH2_TXB_22C, &pg_power[15], false); + j = 0; for (i = 4; i < 16; i++) { - if (pg_power[i] == 0xff) + if (pg_power[i] == 0xff || pg_power[i] == 0x0) j++; } if (j == 12) { RF_DBG(dm, DBG_RF_MP, "[kfree] 8812f tssi trim no PG\n"); - return; } else { #if 0 power_trim_info->tssi_trim[0][0] = (s8)pg_power[0]; @@ -1721,7 +1754,7 @@ void phydm_get_set_pa_bias_offset_8812f(void *dm_void) odm_efuse_one_byte_read(dm, PPG_PABIAS_5GA_22C, &pg_pa_bias, false); - if (pg_pa_bias != 0xff) { + if (pg_pa_bias != 0xff && pg_pa_bias != 0x0) { #if 0 /*2G s0*/ odm_efuse_one_byte_read(dm, PPG_PABIAS_2GA_22C, @@ -1798,43 +1831,48 @@ void phydm_set_power_trim_rf_8195b(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; struct odm_power_trim_data *power_trim_info = &dm->power_trim_data; - u32 band, i; - s8 pwr_offset[3]; RF_DBG(dm, DBG_RF_MP, "[kfree] %s:Set kfree to rf 0x33\n", __func__); - odm_set_rf_reg(dm, RF_PATH_A, RF_0xee, BIT(19), 1); + if (power_trim_info->flag & KFREE_FLAG_ON) { + odm_set_rf_reg(dm, RF_PATH_A, RF_0xee, BIT(19), 1); - odm_set_rf_reg(dm, RF_PATH_A, RF_0x33, RFREGOFFSETMASK, 0x0); - odm_set_rf_reg(dm, RF_PATH_A, RF_0x3f, 0x0000003f, - power_trim_info->bb_gain[0][RF_PATH_A]); - odm_set_rf_reg(dm, RF_PATH_A, RF_0x33, RFREGOFFSETMASK, 0x1); - odm_set_rf_reg(dm, RF_PATH_A, RF_0x3f, 0x0000003f, - power_trim_info->bb_gain[1][RF_PATH_A]); - odm_set_rf_reg(dm, RF_PATH_A, RF_0x33, RFREGOFFSETMASK, 0x2); - odm_set_rf_reg(dm, RF_PATH_A, RF_0x3f, 0x0000003f, - power_trim_info->bb_gain[2][RF_PATH_A]); - odm_set_rf_reg(dm, RF_PATH_A, RF_0x33, RFREGOFFSETMASK, 0x4); - odm_set_rf_reg(dm, RF_PATH_A, RF_0x3f, 0x0000003f, - power_trim_info->bb_gain[3][RF_PATH_A]); - odm_set_rf_reg(dm, RF_PATH_A, RF_0x33, RFREGOFFSETMASK, 0x5); - odm_set_rf_reg(dm, RF_PATH_A, RF_0x3f, 0x0000003f, - power_trim_info->bb_gain[4][RF_PATH_A]); - odm_set_rf_reg(dm, RF_PATH_A, RF_0x33, RFREGOFFSETMASK, 0x6); - odm_set_rf_reg(dm, RF_PATH_A, RF_0x3f, 0x0000003f, - power_trim_info->bb_gain[5][RF_PATH_A]); - odm_set_rf_reg(dm, RF_PATH_A, RF_0x33, RFREGOFFSETMASK, 0x7); - odm_set_rf_reg(dm, RF_PATH_A, RF_0x3f, 0x0000003f, - power_trim_info->bb_gain[6][RF_PATH_A]); - odm_set_rf_reg(dm, RF_PATH_A, RF_0x33, RFREGOFFSETMASK, 0x8); - odm_set_rf_reg(dm, RF_PATH_A, RF_0x3f, 0x0000003f, - power_trim_info->bb_gain[7][RF_PATH_A]); - odm_set_rf_reg(dm, RF_PATH_A, RF_0x33, RFREGOFFSETMASK, 0xe); - odm_set_rf_reg(dm, RF_PATH_A, RF_0x3f, 0x0000003f, - power_trim_info->bb_gain[7][RF_PATH_A]); + if (power_trim_info->flag & KFREE_FLAG_ON_2G) { + odm_set_rf_reg(dm, RF_PATH_A, RF_0x33, RFREGOFFSETMASK, 0x0); + odm_set_rf_reg(dm, RF_PATH_A, RF_0x3f, 0x0000003f, + power_trim_info->bb_gain[0][RF_PATH_A]); + odm_set_rf_reg(dm, RF_PATH_A, RF_0x33, RFREGOFFSETMASK, 0x1); + odm_set_rf_reg(dm, RF_PATH_A, RF_0x3f, 0x0000003f, + power_trim_info->bb_gain[1][RF_PATH_A]); + odm_set_rf_reg(dm, RF_PATH_A, RF_0x33, RFREGOFFSETMASK, 0x2); + odm_set_rf_reg(dm, RF_PATH_A, RF_0x3f, 0x0000003f, + power_trim_info->bb_gain[2][RF_PATH_A]); + } - odm_set_rf_reg(dm, RF_PATH_A, RF_0xee, BIT(19), 0); + if (power_trim_info->flag & KFREE_FLAG_ON_5G) { + odm_set_rf_reg(dm, RF_PATH_A, RF_0x33, RFREGOFFSETMASK, 0x4); + odm_set_rf_reg(dm, RF_PATH_A, RF_0x3f, 0x0000003f, + power_trim_info->bb_gain[3][RF_PATH_A]); + odm_set_rf_reg(dm, RF_PATH_A, RF_0x33, RFREGOFFSETMASK, 0x5); + odm_set_rf_reg(dm, RF_PATH_A, RF_0x3f, 0x0000003f, + power_trim_info->bb_gain[4][RF_PATH_A]); + odm_set_rf_reg(dm, RF_PATH_A, RF_0x33, RFREGOFFSETMASK, 0x6); + odm_set_rf_reg(dm, RF_PATH_A, RF_0x3f, 0x0000003f, + power_trim_info->bb_gain[5][RF_PATH_A]); + odm_set_rf_reg(dm, RF_PATH_A, RF_0x33, RFREGOFFSETMASK, 0x7); + odm_set_rf_reg(dm, RF_PATH_A, RF_0x3f, 0x0000003f, + power_trim_info->bb_gain[6][RF_PATH_A]); + odm_set_rf_reg(dm, RF_PATH_A, RF_0x33, RFREGOFFSETMASK, 0x8); + odm_set_rf_reg(dm, RF_PATH_A, RF_0x3f, 0x0000003f, + power_trim_info->bb_gain[7][RF_PATH_A]); + odm_set_rf_reg(dm, RF_PATH_A, RF_0x33, RFREGOFFSETMASK, 0xe); + odm_set_rf_reg(dm, RF_PATH_A, RF_0x3f, 0x0000003f, + power_trim_info->bb_gain[7][RF_PATH_A]); + } + + odm_set_rf_reg(dm, RF_PATH_A, RF_0xee, BIT(19), 0); + } } @@ -1848,6 +1886,7 @@ void phydm_get_set_power_trim_offset_8195b(void *dm_void) odm_efuse_one_byte_read(dm, PPG_2GL_TXA_95B, &pg_power, false); if (pg_power != 0xff) { + odm_efuse_one_byte_read(dm, PPG_2GL_TXA_95B, &pg_power, false); power_trim_info->bb_gain[0][0] = pg_power & 0xf; odm_efuse_one_byte_read(dm, PPG_2GM_TXA_95B, &pg_power, false); @@ -1856,6 +1895,15 @@ void phydm_get_set_power_trim_offset_8195b(void *dm_void) odm_efuse_one_byte_read(dm, PPG_2GH_TXA_95B, &pg_power, false); power_trim_info->bb_gain[2][0] = pg_power & 0xf; + power_trim_info->flag = + power_trim_info->flag | KFREE_FLAG_ON | KFREE_FLAG_ON_2G; + } + + pg_power = 0xff; + + odm_efuse_one_byte_read(dm, PPG_5GL1_TXA_95B, &pg_power, false); + + if (pg_power != 0xff) { odm_efuse_one_byte_read(dm, PPG_5GL1_TXA_95B, &pg_power, false); power_trim_info->bb_gain[3][0] = pg_power & 0x1f; @@ -1871,13 +1919,12 @@ void phydm_get_set_power_trim_offset_8195b(void *dm_void) odm_efuse_one_byte_read(dm, PPG_5GH1_TXA_95B, &pg_power, false); power_trim_info->bb_gain[7][0] = pg_power & 0x1f; - phydm_set_power_trim_rf_8195b(dm); - power_trim_info->flag = - power_trim_info->flag | - KFREE_FLAG_ON | KFREE_FLAG_ON_2G | KFREE_FLAG_ON_5G; + power_trim_info->flag | KFREE_FLAG_ON | KFREE_FLAG_ON_5G; } + phydm_set_power_trim_rf_8195b(dm); + RF_DBG(dm, DBG_RF_MP, "[kfree] 8195b power trim flag:0x%02x\n", power_trim_info->flag); @@ -1901,10 +1948,10 @@ void phydm_get_set_pa_bias_offset_8195b(void *dm_void) RF_DBG(dm, DBG_RF_MP, "======>%s\n", __func__); + /*2G*/ odm_efuse_one_byte_read(dm, PPG_PABIAS_2GA_95B, &pg_pa_bias, false); if (pg_pa_bias != 0xff) { - /*2G*/ odm_efuse_one_byte_read(dm, PPG_PABIAS_2GA_95B, &pg_pa_bias, false); pg_pa_bias = pg_pa_bias & 0xf; @@ -1912,8 +1959,16 @@ void phydm_get_set_pa_bias_offset_8195b(void *dm_void) RF_DBG(dm, DBG_RF_MP, "[kfree] 2G pa_bias=0x%x\n", pg_pa_bias); odm_set_rf_reg(dm, RF_PATH_A, 0x60, 0x0000f000, pg_pa_bias); + } else { + RF_DBG(dm, DBG_RF_MP, "[kfree] 8195b 2G tx pa bias no pg\n"); + } - /*5G*/ + /*5G*/ + pg_pa_bias = 0xff; + + odm_efuse_one_byte_read(dm, PPG_PABIAS_5GA_95B, &pg_pa_bias, false); + + if (pg_pa_bias != 0xff) { odm_efuse_one_byte_read(dm, PPG_PABIAS_5GA_95B, &pg_pa_bias, false); pg_pa_bias = pg_pa_bias & 0xf; @@ -1924,7 +1979,7 @@ void phydm_get_set_pa_bias_offset_8195b(void *dm_void) power_trim_info->pa_bias_flag |= PA_BIAS_FLAG_ON; } else { - RF_DBG(dm, DBG_RF_MP, "[kfree] 8195b tx pa bias no pg\n"); + RF_DBG(dm, DBG_RF_MP, "[kfree] 8195b 5G tx pa bias no pg\n"); } } @@ -2091,11 +2146,12 @@ void phydm_get_set_power_trim_offset_8721d(void *dm_void) void phydm_get_set_pa_bias_offset_8721d(void *dm_void) { +#if 0 struct dm_struct *dm = (struct dm_struct *)dm_void; struct odm_power_trim_data *power_trim_info = &dm->power_trim_data; u8 pg_pa_bias = 0xff; -#if 0 + RF_DBG(dm, DBG_RF_MP, "======>%s\n", __func__); odm_efuse_one_byte_read(dm, PPG_PABIAS_2GA_95B, &pg_pa_bias, false); @@ -2131,16 +2187,25 @@ void phydm_get_thermal_trim_offset_8197g(void *dm_void) struct dm_struct *dm = (struct dm_struct *)dm_void; struct odm_power_trim_data *power_trim_info = &dm->power_trim_data; - u8 pg_therm = 0; + u8 pg_therm = 0xff, i; - odm_efuse_one_byte_read(dm, PPG_THERMAL_OFFSET_97G, &pg_therm, false); + odm_efuse_one_byte_read(dm, PPG_THERMAL_A_OFFSET_97G, &pg_therm, false); - if (pg_therm != 0) { - pg_therm = pg_therm & 0x1f; - if ((pg_therm & BIT(0)) == 0) - power_trim_info->thermal = (-1 * (pg_therm >> 1)); - else - power_trim_info->thermal = (pg_therm >> 1); + if (pg_therm != 0x0) { + for (i = 0; i < 2; i++) { + if (i == 0) + odm_efuse_one_byte_read(dm, PPG_THERMAL_A_OFFSET_97G, &pg_therm, false); + else if (i == 1) + odm_efuse_one_byte_read(dm, PPG_THERMAL_B_OFFSET_97G, &pg_therm, false); + + RF_DBG(dm, DBG_RF_MP, "[kfree] 8197g Efuse thermal S%d:0x%x\n", i, pg_therm); + + pg_therm = pg_therm & 0x1f; + if ((pg_therm & BIT(0)) == 0) + power_trim_info->multi_thermal[i] = (-1 * (pg_therm >> 1)); + else + power_trim_info->multi_thermal[i] = (pg_therm >> 1); + } power_trim_info->flag |= KFREE_FLAG_THERMAL_K_ON; } @@ -2148,9 +2213,11 @@ void phydm_get_thermal_trim_offset_8197g(void *dm_void) RF_DBG(dm, DBG_RF_MP, "[kfree] 8197g thermal trim flag:0x%02x\n", power_trim_info->flag); - if (power_trim_info->flag & KFREE_FLAG_THERMAL_K_ON) - RF_DBG(dm, DBG_RF_MP, "[kfree] 8197g thermal:%d\n", - power_trim_info->thermal); + for (i = 0; i < 2; i++) { + if (power_trim_info->flag & KFREE_FLAG_THERMAL_K_ON) + RF_DBG(dm, DBG_RF_MP, "[kfree] 8197g thermal S%d:%d\n", + i ,power_trim_info->multi_thermal[i]); + } } void phydm_set_power_trim_offset_8197g(void *dm_void) @@ -2228,6 +2295,70 @@ void phydm_get_set_power_trim_offset_8197g(void *dm_void) } } +void phydm_get_tssi_trim_offset_8197g(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct odm_power_trim_data *power_trim_info = &dm->power_trim_data; + + u8 i, j; + u8 pg_power[4] = {0}; + + odm_efuse_one_byte_read(dm, TSSI_2GL_TXA_97G, &pg_power[0], false); + odm_efuse_one_byte_read(dm, TSSI_2GL_TXB_97G, &pg_power[1], false); + odm_efuse_one_byte_read(dm, TSSI_2GH_TXA_97G, &pg_power[2], false); + odm_efuse_one_byte_read(dm, TSSI_2GH_TXB_97G, &pg_power[3], false); + + j = 0; + for (i = 0; i < 4; i++) { + if (pg_power[i] == 0x0) + j++; + } + + if (j == 4) { + RF_DBG(dm, DBG_RF_MP, "[kfree] 8197g tssi trim no PG\n"); + } else { + power_trim_info->tssi_trim[0][0] = (s8)pg_power[0]; + power_trim_info->tssi_trim[0][1] = (s8)pg_power[1]; + power_trim_info->tssi_trim[1][0] = (s8)pg_power[0]; + power_trim_info->tssi_trim[1][1] = (s8)pg_power[1]; + power_trim_info->tssi_trim[2][0] = (s8)pg_power[2]; + power_trim_info->tssi_trim[2][1] = (s8)pg_power[3]; + + power_trim_info->flag = + power_trim_info->flag | TSSI_TRIM_FLAG_ON; + + for (i = 0; i < KFREE_BAND_NUM; i++) { + for (j = 0; j < MAX_PATH_NUM_8197G; j++) { + RF_DBG(dm, DBG_RF_MP, + "[kfree] 8197g tssi_trim[%d][%d]=0x%X\n", + i, j, power_trim_info->tssi_trim[i][j]); + } + } + } +} + +s8 phydm_get_tssi_trim_de_8197g(void *dm_void, u8 path) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct odm_power_trim_data *power_trim_info = &dm->power_trim_data; + + u8 channel = *dm->channel, group = 0; + + if (channel >= 1 && channel <= 3) + group = 0; + else if (channel >= 4 && channel <= 9) + group = 1; + else if (channel >= 10 && channel <= 14) + group = 2; + else { + RF_DBG(dm, DBG_RF_MP, "[kfree] Channel(%d) is not exist in Group\n", + channel); + return 0; + } + + return power_trim_info->tssi_trim[group][path]; +} + void phydm_get_set_pa_bias_offset_8197g(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; @@ -2238,7 +2369,7 @@ void phydm_get_set_pa_bias_offset_8197g(void *dm_void) odm_efuse_one_byte_read(dm, PPG_PABIAS_2GAB_97G, &pg_pa_bias, false); - if (pg_pa_bias != 0xff) { + if (pg_pa_bias != 0x0) { /*paht ab*/ odm_efuse_one_byte_read(dm, PPG_PABIAS_2GAB_97G, &pg_pa_bias, false); @@ -2264,7 +2395,6 @@ void phydm_get_set_lna_offset_8197g(void *dm_void) struct odm_power_trim_data *power_trim_info = &dm->power_trim_data; u8 pg_lna[2] = {0}, i, pg_lna_tmp = 0; - u32 rf_reg; u32 lna_trim_addr[2] = {0x1884, 0x4184}; odm_efuse_one_byte_read(dm, PPG_LNA_2GA_97G, &pg_lna_tmp, false); @@ -2432,6 +2562,735 @@ void phydm_get_set_pa_bias_offset_8710c(void *dm_void) } } +void phydm_set_power_trim_offset_8814b(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct odm_power_trim_data *power_trim_info = &dm->power_trim_data; + u8 e_rf_path; + + for (e_rf_path = RF_PATH_A; e_rf_path < MAX_PATH_NUM_8814B; e_rf_path++) + { + if (power_trim_info->flag & KFREE_FLAG_ON) { + odm_set_rf_reg(dm, e_rf_path, RF_0xee, BIT(19), 1); + + if (power_trim_info->flag & KFREE_FLAG_ON_2G) { + odm_set_rf_reg(dm, e_rf_path, RF_0x33, RFREGOFFSETMASK, 0x0); + odm_set_rf_reg(dm, e_rf_path, RF_0x30, RFREGOFFSETMASK, + power_trim_info->bb_gain[0][e_rf_path]); + odm_set_rf_reg(dm, e_rf_path, RF_0x33, RFREGOFFSETMASK, 0x1); + odm_set_rf_reg(dm, e_rf_path, RF_0x30, RFREGOFFSETMASK, + power_trim_info->bb_gain[0][e_rf_path]); + odm_set_rf_reg(dm, e_rf_path, RF_0x33, RFREGOFFSETMASK, 0x2); + odm_set_rf_reg(dm, e_rf_path, RF_0x30, RFREGOFFSETMASK, + power_trim_info->bb_gain[0][e_rf_path]); + odm_set_rf_reg(dm, e_rf_path, RF_0x33, RFREGOFFSETMASK, 0x3); + odm_set_rf_reg(dm, e_rf_path, RF_0x30, RFREGOFFSETMASK, + power_trim_info->bb_gain[0][e_rf_path]); + } + + if (power_trim_info->flag & KFREE_FLAG_ON_5G) { + odm_set_rf_reg(dm, e_rf_path, RF_0x33, RFREGOFFSETMASK, 0x4); + odm_set_rf_reg(dm, e_rf_path, RF_0x30, RFREGOFFSETMASK, + power_trim_info->bb_gain[3][e_rf_path]); + odm_set_rf_reg(dm, e_rf_path, RF_0x33, RFREGOFFSETMASK, 0x5); + odm_set_rf_reg(dm, e_rf_path, RF_0x30, RFREGOFFSETMASK, + power_trim_info->bb_gain[4][e_rf_path]); + odm_set_rf_reg(dm, e_rf_path, RF_0x33, RFREGOFFSETMASK, 0x6); + odm_set_rf_reg(dm, e_rf_path, RF_0x30, RFREGOFFSETMASK, + power_trim_info->bb_gain[5][e_rf_path]); + odm_set_rf_reg(dm, e_rf_path, RF_0x33, RFREGOFFSETMASK, 0x7); + odm_set_rf_reg(dm, e_rf_path, RF_0x30, RFREGOFFSETMASK, + power_trim_info->bb_gain[6][e_rf_path]); + odm_set_rf_reg(dm, e_rf_path, RF_0x33, RFREGOFFSETMASK, 0x8); + odm_set_rf_reg(dm, e_rf_path, RF_0x30, RFREGOFFSETMASK, + power_trim_info->bb_gain[7][e_rf_path]); + odm_set_rf_reg(dm, e_rf_path, RF_0x33, RFREGOFFSETMASK, 0x9); + odm_set_rf_reg(dm, e_rf_path, RF_0x30, RFREGOFFSETMASK, + power_trim_info->bb_gain[3][e_rf_path]); + odm_set_rf_reg(dm, e_rf_path, RF_0x33, RFREGOFFSETMASK, 0xa); + odm_set_rf_reg(dm, e_rf_path, RF_0x30, RFREGOFFSETMASK, + power_trim_info->bb_gain[4][e_rf_path]); + odm_set_rf_reg(dm, e_rf_path, RF_0x33, RFREGOFFSETMASK, 0xb); + odm_set_rf_reg(dm, e_rf_path, RF_0x30, RFREGOFFSETMASK, + power_trim_info->bb_gain[5][e_rf_path]); + odm_set_rf_reg(dm, e_rf_path, RF_0x33, RFREGOFFSETMASK, 0xc); + odm_set_rf_reg(dm, e_rf_path, RF_0x30, RFREGOFFSETMASK, + power_trim_info->bb_gain[6][e_rf_path]); + odm_set_rf_reg(dm, e_rf_path, RF_0x33, RFREGOFFSETMASK, 0xd); + odm_set_rf_reg(dm, e_rf_path, RF_0x30, RFREGOFFSETMASK, + power_trim_info->bb_gain[7][e_rf_path]); + odm_set_rf_reg(dm, e_rf_path, RF_0x33, RFREGOFFSETMASK, 0xe); + odm_set_rf_reg(dm, e_rf_path, RF_0x30, RFREGOFFSETMASK, + power_trim_info->bb_gain[7][e_rf_path]); + } + + odm_set_rf_reg(dm, e_rf_path, RF_0xee, BIT(19), 0); + } + } +} + +void phydm_get_set_power_trim_offset_8814b(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct odm_power_trim_data *power_trim_info = &dm->power_trim_data; + + u8 i, j; + u8 pg_power1, pg_power2; + u8 pg_power_2g[2] = {0}, pg_power_5g[20] = {0}; + + odm_efuse_one_byte_read(dm, PPG_2GL_TXAB_14B, &pg_power_2g[0], false); + odm_efuse_one_byte_read(dm, PPG_2GL_TXCD_14B, &pg_power_2g[1], false); + + j = 0; + for (i = 0; i < 2; i++) { + if (pg_power_2g[i] == 0xff) + j++; + } + + if (j == 2) { + RF_DBG(dm, DBG_RF_MP, "[kfree] 8814b 2G power trim no PG\n"); + } else { + power_trim_info->bb_gain[0][RF_PATH_A] = pg_power_2g[0] & 0xf; + power_trim_info->bb_gain[0][RF_PATH_B] = (pg_power_2g[0] & 0xf0) >> 4; + + power_trim_info->bb_gain[0][RF_PATH_C] = pg_power_2g[1] & 0xf; + power_trim_info->bb_gain[0][RF_PATH_D] = (pg_power_2g[1] & 0xf0) >> 4; + + power_trim_info->flag = + power_trim_info->flag | KFREE_FLAG_ON | KFREE_FLAG_ON_2G; + } + + odm_efuse_one_byte_read(dm, PPG_5GL1_TXA_14B, &pg_power_5g[0], false); + odm_efuse_one_byte_read(dm, PPG_5GL1_TXB_14B, &pg_power_5g[1], false); + odm_efuse_one_byte_read(dm, PPG_5GL1_TXC_14B, &pg_power_5g[2], false); + odm_efuse_one_byte_read(dm, PPG_5GL1_TXD_14B, &pg_power_5g[3], false); + odm_efuse_one_byte_read(dm, PPG_5GL2_TXA_14B, &pg_power_5g[4], false); + odm_efuse_one_byte_read(dm, PPG_5GL2_TXB_14B, &pg_power_5g[5], false); + odm_efuse_one_byte_read(dm, PPG_5GL2_TXC_14B, &pg_power_5g[6], false); + odm_efuse_one_byte_read(dm, PPG_5GL2_TXD_14B, &pg_power_5g[7], false); + odm_efuse_one_byte_read(dm, PPG_5GM1_TXA_14B, &pg_power_5g[8], false); + odm_efuse_one_byte_read(dm, PPG_5GM1_TXB_14B, &pg_power_5g[9], false); + odm_efuse_one_byte_read(dm, PPG_5GM1_TXC_14B, &pg_power_5g[10], false); + odm_efuse_one_byte_read(dm, PPG_5GM1_TXD_14B, &pg_power_5g[11], false); + odm_efuse_one_byte_read(dm, PPG_5GM2_TXA_14B, &pg_power_5g[12], false); + odm_efuse_one_byte_read(dm, PPG_5GM2_TXB_14B, &pg_power_5g[13], false); + odm_efuse_one_byte_read(dm, PPG_5GM2_TXC_14B, &pg_power_5g[14], false); + odm_efuse_one_byte_read(dm, PPG_5GM2_TXD_14B, &pg_power_5g[15], false); + odm_efuse_one_byte_read(dm, PPG_5GH1_TXA_14B, &pg_power_5g[16], false); + odm_efuse_one_byte_read(dm, PPG_5GH1_TXB_14B, &pg_power_5g[17], false); + odm_efuse_one_byte_read(dm, PPG_5GH1_TXC_14B, &pg_power_5g[18], false); + odm_efuse_one_byte_read(dm, PPG_5GH1_TXD_14B, &pg_power_5g[19], false); + + j = 0; + for (i = 0; i < 20; i++) { + if (pg_power_5g[i] == 0xff) + j++; + } + + if (j == 20) { + RF_DBG(dm, DBG_RF_MP, "[kfree] 8814b 5G power trim no PG\n"); + } else { + power_trim_info->bb_gain[3][RF_PATH_A] = pg_power_5g[0] & 0x1f; + power_trim_info->bb_gain[3][RF_PATH_B] = pg_power_5g[1] & 0x1f; + power_trim_info->bb_gain[3][RF_PATH_C] = pg_power_5g[2] & 0x1f; + power_trim_info->bb_gain[3][RF_PATH_D] = pg_power_5g[3] & 0x1f; + + power_trim_info->bb_gain[4][RF_PATH_A] = pg_power_5g[4] & 0x1f; + power_trim_info->bb_gain[4][RF_PATH_B] = pg_power_5g[5] & 0x1f; + power_trim_info->bb_gain[4][RF_PATH_C] = pg_power_5g[6] & 0x1f; + power_trim_info->bb_gain[4][RF_PATH_D] = pg_power_5g[7] & 0x1f; + + power_trim_info->bb_gain[5][RF_PATH_A] = pg_power_5g[8] & 0x1f; + power_trim_info->bb_gain[5][RF_PATH_B] = pg_power_5g[9] & 0x1f; + power_trim_info->bb_gain[5][RF_PATH_C] = pg_power_5g[10] & 0x1f; + power_trim_info->bb_gain[5][RF_PATH_D] = pg_power_5g[11] & 0x1f; + + power_trim_info->bb_gain[6][RF_PATH_A] = pg_power_5g[12] & 0x1f; + power_trim_info->bb_gain[6][RF_PATH_B] = pg_power_5g[13] & 0x1f; + power_trim_info->bb_gain[6][RF_PATH_C] = pg_power_5g[14] & 0x1f; + power_trim_info->bb_gain[6][RF_PATH_D] = pg_power_5g[15] & 0x1f; + + power_trim_info->bb_gain[7][RF_PATH_A] = pg_power_5g[16] & 0x1f; + power_trim_info->bb_gain[7][RF_PATH_B] = pg_power_5g[17] & 0x1f; + power_trim_info->bb_gain[7][RF_PATH_C] = pg_power_5g[18] & 0x1f; + power_trim_info->bb_gain[7][RF_PATH_D] = pg_power_5g[19] & 0x1f; + + power_trim_info->flag = + power_trim_info->flag | KFREE_FLAG_ON | KFREE_FLAG_ON_5G; + + } + + phydm_set_power_trim_offset_8814b(dm); + + RF_DBG(dm, DBG_RF_MP, "[kfree] 8814b power trim flag:0x%02x\n", + power_trim_info->flag); + + if (power_trim_info->flag & KFREE_FLAG_ON) { + for (i = 0; i < KFREE_BAND_NUM; i++) { + for (j = 0; j < MAX_PATH_NUM_8814B; j++) { + RF_DBG(dm, DBG_RF_MP, + "[kfree] 8814b pwr_trim->bb_gain[%d][%d]=0x%X\n", + i, j, power_trim_info->bb_gain[i][j]); + } + } + } +} + +void phydm_get_tssi_trim_offset_8814b(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct odm_power_trim_data *power_trim_info = &dm->power_trim_data; + + u8 i, j; + u8 tssi_trim_2g[8] = {0}, tssi_trim_5g[24] = {0}; + + odm_efuse_one_byte_read(dm, TSSI_2GM_TXA_14B, &tssi_trim_2g[0], false); + odm_efuse_one_byte_read(dm, TSSI_2GM_TXB_14B, &tssi_trim_2g[1], false); + odm_efuse_one_byte_read(dm, TSSI_2GM_TXC_14B, &tssi_trim_2g[2], false); + odm_efuse_one_byte_read(dm, TSSI_2GM_TXD_14B, &tssi_trim_2g[3], false); + odm_efuse_one_byte_read(dm, TSSI_2GH_TXA_14B, &tssi_trim_2g[4], false); + odm_efuse_one_byte_read(dm, TSSI_2GH_TXB_14B, &tssi_trim_2g[5], false); + odm_efuse_one_byte_read(dm, TSSI_2GH_TXC_14B, &tssi_trim_2g[6], false); + odm_efuse_one_byte_read(dm, TSSI_2GH_TXD_14B, &tssi_trim_2g[7], false); + + j = 0; + for (i = 0; i < 8; i++) { + if (tssi_trim_2g[i] == 0xff) + j++; + } + + if (j == 8) { + RF_DBG(dm, DBG_RF_MP, "[kfree] 8814b 2g tssi trim no PG\n"); + } else { + power_trim_info->tssi_trim[0][RF_PATH_A] = (s8)tssi_trim_2g[0]; + power_trim_info->tssi_trim[0][RF_PATH_B] = (s8)tssi_trim_2g[1]; + power_trim_info->tssi_trim[0][RF_PATH_C] = (s8)tssi_trim_2g[2]; + power_trim_info->tssi_trim[0][RF_PATH_D] = (s8)tssi_trim_2g[3]; + power_trim_info->tssi_trim[1][RF_PATH_A] = (s8)tssi_trim_2g[0]; + power_trim_info->tssi_trim[1][RF_PATH_B] = (s8)tssi_trim_2g[1]; + power_trim_info->tssi_trim[1][RF_PATH_C] = (s8)tssi_trim_2g[2]; + power_trim_info->tssi_trim[1][RF_PATH_D] = (s8)tssi_trim_2g[3]; + power_trim_info->tssi_trim[2][RF_PATH_A] = (s8)tssi_trim_2g[4]; + power_trim_info->tssi_trim[2][RF_PATH_B] = (s8)tssi_trim_2g[5]; + power_trim_info->tssi_trim[2][RF_PATH_C] = (s8)tssi_trim_2g[6]; + power_trim_info->tssi_trim[2][RF_PATH_D] = (s8)tssi_trim_2g[7]; + + power_trim_info->flag = + power_trim_info->flag | TSSI_TRIM_FLAG_ON | KFREE_FLAG_ON_2G; + + for (i = 0; i < KFREE_BAND_NUM; i++) { + for (j = 0; j < MAX_PATH_NUM_8814B; j++) { + RF_DBG(dm, DBG_RF_MP, + "[kfree] 8814b 2g tssi_trim[%d][%d]=0x%X\n", + i, j, power_trim_info->tssi_trim[i][j]); + } + } + } + + odm_efuse_one_byte_read(dm, TSSI_5GL1_TXA_14B, &tssi_trim_5g[0], false); + odm_efuse_one_byte_read(dm, TSSI_5GL1_TXB_14B, &tssi_trim_5g[1], false); + odm_efuse_one_byte_read(dm, TSSI_5GL1_TXC_14B, &tssi_trim_5g[2], false); + odm_efuse_one_byte_read(dm, TSSI_5GL1_TXD_14B, &tssi_trim_5g[3], false); + odm_efuse_one_byte_read(dm, TSSI_5GL2_TXA_14B, &tssi_trim_5g[4], false); + odm_efuse_one_byte_read(dm, TSSI_5GL2_TXB_14B, &tssi_trim_5g[5], false); + odm_efuse_one_byte_read(dm, TSSI_5GL2_TXC_14B, &tssi_trim_5g[6], false); + odm_efuse_one_byte_read(dm, TSSI_5GL2_TXD_14B, &tssi_trim_5g[7], false); + odm_efuse_one_byte_read(dm, TSSI_5GM1_TXA_14B, &tssi_trim_5g[8], false); + odm_efuse_one_byte_read(dm, TSSI_5GM1_TXB_14B, &tssi_trim_5g[9], false); + odm_efuse_one_byte_read(dm, TSSI_5GM1_TXC_14B, &tssi_trim_5g[10], false); + odm_efuse_one_byte_read(dm, TSSI_5GM1_TXD_14B, &tssi_trim_5g[11], false); + odm_efuse_one_byte_read(dm, TSSI_5GM2_TXA_14B, &tssi_trim_5g[12], false); + odm_efuse_one_byte_read(dm, TSSI_5GM2_TXB_14B, &tssi_trim_5g[13], false); + odm_efuse_one_byte_read(dm, TSSI_5GM2_TXC_14B, &tssi_trim_5g[14], false); + odm_efuse_one_byte_read(dm, TSSI_5GM2_TXD_14B, &tssi_trim_5g[15], false); + odm_efuse_one_byte_read(dm, TSSI_5GH1_TXA_14B, &tssi_trim_5g[16], false); + odm_efuse_one_byte_read(dm, TSSI_5GH1_TXB_14B, &tssi_trim_5g[17], false); + odm_efuse_one_byte_read(dm, TSSI_5GH1_TXC_14B, &tssi_trim_5g[18], false); + odm_efuse_one_byte_read(dm, TSSI_5GH1_TXD_14B, &tssi_trim_5g[19], false); + odm_efuse_one_byte_read(dm, TSSI_5GH2_TXA_14B, &tssi_trim_5g[20], false); + odm_efuse_one_byte_read(dm, TSSI_5GH2_TXB_14B, &tssi_trim_5g[21], false); + odm_efuse_one_byte_read(dm, TSSI_5GH2_TXC_14B, &tssi_trim_5g[22], false); + odm_efuse_one_byte_read(dm, TSSI_5GH2_TXD_14B, &tssi_trim_5g[23], false); + + j = 0; + for (i = 0; i < 24; i++) { + if (tssi_trim_5g[i] == 0xff) + j++; + } + + if (j == 24) { + RF_DBG(dm, DBG_RF_MP, "[kfree] 8814b 5g tssi trim no PG\n"); + } else { + power_trim_info->tssi_trim[3][RF_PATH_A] = (s8)tssi_trim_5g[0]; + power_trim_info->tssi_trim[3][RF_PATH_B] = (s8)tssi_trim_5g[1]; + power_trim_info->tssi_trim[3][RF_PATH_C] = (s8)tssi_trim_5g[2]; + power_trim_info->tssi_trim[3][RF_PATH_D] = (s8)tssi_trim_5g[3]; + power_trim_info->tssi_trim[4][RF_PATH_A] = (s8)tssi_trim_5g[4]; + power_trim_info->tssi_trim[4][RF_PATH_B] = (s8)tssi_trim_5g[5]; + power_trim_info->tssi_trim[4][RF_PATH_C] = (s8)tssi_trim_5g[6]; + power_trim_info->tssi_trim[4][RF_PATH_D] = (s8)tssi_trim_5g[7]; + power_trim_info->tssi_trim[5][RF_PATH_A] = (s8)tssi_trim_5g[8]; + power_trim_info->tssi_trim[5][RF_PATH_B] = (s8)tssi_trim_5g[9]; + power_trim_info->tssi_trim[5][RF_PATH_C] = (s8)tssi_trim_5g[10]; + power_trim_info->tssi_trim[5][RF_PATH_D] = (s8)tssi_trim_5g[11]; + power_trim_info->tssi_trim[6][RF_PATH_A] = (s8)tssi_trim_5g[12]; + power_trim_info->tssi_trim[6][RF_PATH_B] = (s8)tssi_trim_5g[13]; + power_trim_info->tssi_trim[6][RF_PATH_C] = (s8)tssi_trim_5g[14]; + power_trim_info->tssi_trim[6][RF_PATH_D] = (s8)tssi_trim_5g[15]; + power_trim_info->tssi_trim[7][RF_PATH_A] = (s8)tssi_trim_5g[16]; + power_trim_info->tssi_trim[7][RF_PATH_B] = (s8)tssi_trim_5g[17]; + power_trim_info->tssi_trim[7][RF_PATH_C] = (s8)tssi_trim_5g[18]; + power_trim_info->tssi_trim[7][RF_PATH_D] = (s8)tssi_trim_5g[19]; + power_trim_info->tssi_trim[8][RF_PATH_A] = (s8)tssi_trim_5g[20]; + power_trim_info->tssi_trim[8][RF_PATH_B] = (s8)tssi_trim_5g[21]; + power_trim_info->tssi_trim[8][RF_PATH_C] = (s8)tssi_trim_5g[22]; + power_trim_info->tssi_trim[8][RF_PATH_D] = (s8)tssi_trim_5g[23]; + + power_trim_info->flag = + power_trim_info->flag | TSSI_TRIM_FLAG_ON | KFREE_FLAG_ON_5G; + + for (i = 0; i < KFREE_BAND_NUM; i++) { + for (j = 0; j < MAX_PATH_NUM_8814B; j++) { + RF_DBG(dm, DBG_RF_MP, + "[kfree] 8814b 5g tssi_trim[%d][%d]=0x%X\n", + i, j, power_trim_info->tssi_trim[i][j]); + } + } + } +} + +s8 phydm_get_tssi_trim_de_8814b(void *dm_void, u8 path) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct odm_power_trim_data *power_trim_info = &dm->power_trim_data; + + u8 channel = *dm->channel, group = 0; + + if (channel >= 1 && channel <= 3) + group = 0; + else if (channel >= 4 && channel <= 9) + group = 1; + else if (channel >= 10 && channel <= 14) + group = 2; + else if (channel >= 36 && channel <= 50) + group = 3; + else if (channel >= 52 && channel <= 64) + group = 4; + else if (channel >= 100 && channel <= 118) + group = 5; + else if (channel >= 120 && channel <= 144) + group = 6; + else if (channel >= 149 && channel <= 165) + group = 7; + else if (channel >= 167 && channel <= 177) + group = 8; + else { + RF_DBG(dm, DBG_RF_MP, "[kfree] Channel(%d) is not exist in Group\n", + channel); + return 0; + } + + return power_trim_info->tssi_trim[group][path]; +} + +void phydm_set_pabias_bandedge_2g_rf_8814b(void *dm_void) +{ +#if 0 + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct odm_power_trim_data *power_trim_info = &dm->power_trim_data; + + u32 rf_reg_51 = 0, rf_reg_52 = 0, rf_reg_53 = 0, rf_reg_3f = 0; + u8 i, j; + s32 pa_bias_tmp, bandedge_tmp, reg_tmp; + +#if 0 + /*2.4G bias*/ + /*rf3f == rf53*/ +#endif + for (i = 0; i < MAX_PATH_NUM_8814B; i++) { + rf_reg_51 = odm_get_rf_reg(dm, i, RF_0x51, RFREGOFFSETMASK); + rf_reg_52 = odm_get_rf_reg(dm, i, RF_0x52, RFREGOFFSETMASK); + rf_reg_53 = odm_get_rf_reg(dm, i, RF_0x53, RFREGOFFSETMASK); + + RF_DBG(dm, DBG_RF_MP, + "[kfree] 8814b 2g rf(0x51)=0x%X rf(0x52)=0x%X rf(0x53)=0x%X path=%d\n", + rf_reg_51, rf_reg_52, rf_reg_53, i); + + /*2.4G bias*/ + rf_reg_3f = rf_reg_53; + pa_bias_tmp = rf_reg_3f & 0xf; + + reg_tmp = pa_bias_tmp + power_trim_info->pa_bias_trim[0][i]; + + RF_DBG(dm, DBG_RF_MP, + "[kfree] 8814b 2g pa bias reg_tmp(%d) = pa_bias_tmp(%d) + power_trim_info->pa_bias_trim[0][%d](%d)\n", + reg_tmp, pa_bias_tmp, i, power_trim_info->pa_bias_trim[0][i]); + +#if 0 + if (reg_tmp < 0) { + reg_tmp = 0; + RF_DBG(dm, DBG_RF_MP, + "[kfree] 2g pa bias reg_tmp < 0. Set 0 path=%d\n", i); + } else if (reg_tmp > 7) { + reg_tmp = 7; + RF_DBG(dm, DBG_RF_MP, + "[kfree] 2g pa bias reg_tmp > 7. Set 7 path=%d\n", i); + } +#endif + + rf_reg_3f = ((rf_reg_3f & 0xffff0) | reg_tmp); + rf_reg_3f = ((rf_reg_3f & 0x0ffff) | 0x10000); + + odm_set_rf_reg(dm, i, RF_0xef, BIT(10), 0x1); + for (j = 0; j <= 0xf; j++) { + odm_set_rf_reg(dm, i, RF_0x30, RFREGOFFSETMASK, (j << 16)); + odm_set_rf_reg(dm, i, RF_0x3f, RFREGOFFSETMASK, rf_reg_3f); + RF_DBG(dm, DBG_RF_MP, + "[kfree] 8814b 2G pa bias write RF_0x30=0x%05x RF_0x3f=0x%x path=%d\n", + (j << 16), rf_reg_3f, i); + } + odm_set_rf_reg(dm, i, RF_0xef, BIT(10), 0x0); + +#if 0 + /*2.4G bandedge*/ + /*rf3f =>*/ + /*rf51[3:1] = rf3f[17:15]*/ + /*rf52[2:0] = rf3f[14:12]*/ + /*rf52[18] = rf3f[11]*/ + /*rf51[6:4] = rf3f[10:8]*/ + /*rf51[11:8] = rf3f[7:4]*/ + /*rf51[16:13] = rf3f[3:0]*/ +#endif + /*2.4G bandedge*/ + rf_reg_3f = (((rf_reg_51 & 0xe) >> 1) << 15) | + ((rf_reg_52 & 0x7) << 12) | + (((rf_reg_52 & 0x40000) >> 18) << 11) | + (((rf_reg_51 & 0x70) >> 4) << 8) | + (((rf_reg_51 & 0xf00) >> 8) << 4) | + ((rf_reg_51 & 0x1e000) >> 13); + + bandedge_tmp = rf_reg_3f & 0xf; + + reg_tmp = bandedge_tmp + power_trim_info->pa_bias_trim[0][i]; + + RF_DBG(dm, DBG_RF_MP, + "[kfree] 8814b 2g bandedge reg_tmp(%d) = bandedge_tmp(%d) + power_trim_info->pa_bias_trim[0][%d](%d)\n", + reg_tmp, bandedge_tmp, i, power_trim_info->pa_bias_trim[0][i]); + +#if 0 + if (reg_tmp < 0) { + reg_tmp = 0; + RF_DBG(dm, DBG_RF_MP, + "[kfree] 2g bandedge reg_tmp < 0. Set 0 path=%d\n", i); + } else if (reg_tmp > 7) { + reg_tmp = 7; + RF_DBG(dm, DBG_RF_MP, + "[kfree] 2g bandedge reg_tmp > 7. Set 7 path=%d\n", i); + } +#endif + + rf_reg_3f = ((rf_reg_3f & 0xffff0) | reg_tmp); + + RF_DBG(dm, DBG_RF_MP, + "[kfree] 8814b 2G bandedge RF_0x30=0x%05X RF_0x3f=0x%x path=%d\n", + 0x00001, rf_reg_3f, i); + RF_DBG(dm, DBG_RF_MP, + "[kfree] 8814b 2G bandedge RF_0x30=0x%05X RF_0x3f=0x%x path=%d\n", + 0x0000b, rf_reg_3f, i); + RF_DBG(dm, DBG_RF_MP, + "[kfree] 8814b 2G bandedge RF_0x30=0x%05X RF_0x3f=0x%x path=%d\n", + 0x00023, rf_reg_3f, i); + RF_DBG(dm, DBG_RF_MP, + "[kfree] 8814b 2G bandedge RF_0x30=0x%05X RF_0x3f=0x%x path=%d\n", + 0x00029, rf_reg_3f, i); + RF_DBG(dm, DBG_RF_MP, + "[kfree] 8814b 2G bandedge RF_0x30=0x%05X RF_0x3f=0x%x path=%d\n", + 0x0002a, rf_reg_3f, i); + + odm_set_rf_reg(dm, i, RF_0xef, BIT(8), 0x1); + odm_set_rf_reg(dm, i, RF_0x33, RFREGOFFSETMASK, 0x00001); + odm_set_rf_reg(dm, i, RF_0x3f, RFREGOFFSETMASK, rf_reg_3f); + odm_set_rf_reg(dm, i, RF_0x33, RFREGOFFSETMASK, 0x0000b); + odm_set_rf_reg(dm, i, RF_0x3f, RFREGOFFSETMASK, rf_reg_3f); + odm_set_rf_reg(dm, i, RF_0x33, RFREGOFFSETMASK, 0x00023); + odm_set_rf_reg(dm, i, RF_0x3f, RFREGOFFSETMASK, rf_reg_3f); + odm_set_rf_reg(dm, i, RF_0x33, RFREGOFFSETMASK, 0x00029); + odm_set_rf_reg(dm, i, RF_0x3f, RFREGOFFSETMASK, rf_reg_3f); + odm_set_rf_reg(dm, i, RF_0x33, RFREGOFFSETMASK, 0x0002a); + odm_set_rf_reg(dm, i, RF_0x3f, RFREGOFFSETMASK, rf_reg_3f); + odm_set_rf_reg(dm, i, RF_0xef, BIT(8), 0x0); + + } +#endif +} + +void phydm_set_pabias_bandedge_5g_rf_8814b(void *dm_void) +{ +#if 0 + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct odm_power_trim_data *power_trim_info = &dm->power_trim_data; + + u32 rf_reg_18[MAX_PATH_NUM_8814B] = {0}, + rf_reg_61[15][MAX_PATH_NUM_8814B] = {0}, + rf_reg_62[3][MAX_PATH_NUM_8814B] = {0}; + u8 i, j; + u32 bandedge[15][MAX_PATH_NUM_8814B] = {0}, + pa_bias[3][MAX_PATH_NUM_8814B] = {0}; + + s32 pa_bias_tmp, reg_tmp; + + + for (i = 0; i < MAX_PATH_NUM_8814B; i++) { + rf_reg_18[i] = odm_get_rf_reg(dm, i, RF_0x18, RFREGOFFSETMASK); + + for (j = 0; j < 3; j++) { + if (j == 0) + odm_set_rf_reg(dm, i, RF_0x18, RFREGOFFSETMASK, 0x10d24); + else if (j == 1) + odm_set_rf_reg(dm, i, RF_0x18, RFREGOFFSETMASK, 0x30d64); + else if (j == 2) + odm_set_rf_reg(dm, i, RF_0x18, RFREGOFFSETMASK, 0x50da9); + + rf_reg_62[j][i] = odm_get_rf_reg(dm, i, 0x62, RFREGOFFSETMASK); + +#if 0 + /*5G bias*/ + /*rf62[19:16] == rf30[11:8]*/ + /*rf62[15:12] == rf30[7:4]*/ + /*rf62[11:8] == rf3030[3:0]*/ +#endif + pa_bias[j][i] = (((rf_reg_62[j][i] & 0xf0000) >> 16) << 8) | + (((rf_reg_62[j][i] & 0xf000) >> 12) << 4) | + ((rf_reg_62[j][i] & 0xf00) >> 8); + } + + for (j = 0; j < 15; j++) { + if (j == 0) + odm_set_rf_reg(dm, i, RF_0x18, RFREGOFFSETMASK, 0x10d24);/*ch36*/ + else if (j == 1) + odm_set_rf_reg(dm, i, RF_0x18, RFREGOFFSETMASK, 0x11926);/*ch38*/ + else if (j == 2) + odm_set_rf_reg(dm, i, RF_0x18, RFREGOFFSETMASK, 0x1252a);/*ch42*/ + else if (j == 3) + odm_set_rf_reg(dm, i, RF_0x18, RFREGOFFSETMASK, 0x1253a);/*ch58*/ + else if (j == 4) + odm_set_rf_reg(dm, i, RF_0x18, RFREGOFFSETMASK, 0x1193e);/*ch62*/ + else if (j == 5) + odm_set_rf_reg(dm, i, RF_0x18, RFREGOFFSETMASK, 0x10d40);/*ch64*/ + else if (j == 6) + odm_set_rf_reg(dm, i, RF_0x18, RFREGOFFSETMASK, 0x30d64);/*ch100*/ + else if (j == 7) + odm_set_rf_reg(dm, i, RF_0x18, RFREGOFFSETMASK, 0x31966);/*ch102*/ + else if (j == 8) + odm_set_rf_reg(dm, i, RF_0x18, RFREGOFFSETMASK, 0x3256a);/*ch106*/ + else if (j == 9) + odm_set_rf_reg(dm, i, RF_0x18, RFREGOFFSETMASK, 0x3257a);/*ch122*/ + else if (j == 10) + odm_set_rf_reg(dm, i, RF_0x18, RFREGOFFSETMASK, 0x31986);/*ch134*/ + else if (j == 11) + odm_set_rf_reg(dm, i, RF_0x18, RFREGOFFSETMASK, 0x30d8c);/*ch140*/ + else if (j == 12) + odm_set_rf_reg(dm, i, RF_0x18, RFREGOFFSETMASK, 0x50d95);/*ch149*/ + else if (j == 13) + odm_set_rf_reg(dm, i, RF_0x18, RFREGOFFSETMASK, 0x51997);/*ch151*/ + else if (j == 14) + odm_set_rf_reg(dm, i, RF_0x18, RFREGOFFSETMASK, 0x5259b);/*ch155*/ + + + rf_reg_61[j][i] = odm_get_rf_reg(dm, i, RF_0x61, RFREGOFFSETMASK); +#if 0 + /*5G bandedge*/ + /*rf61[11:8] == rf30[11:8]*/ + /*rf61[7:4] == rf30[7:4]*/ + /*rf61[3:0] == rf3030[3:0]*/ +#endif + bandedge[j][i] = rf_reg_61[j][i] & 0xfff; + } + + odm_set_rf_reg(dm, i, RF_0x18, RFREGOFFSETMASK, rf_reg_18[i]); + } + + for (i = 0; i < MAX_PATH_NUM_8814B; i++) { + for (j = 0; j < 3; j++) { + RF_DBG(dm, DBG_RF_MP, + "[kfree] pa_bias[%d][%d]=0x%x\n", j, i, pa_bias[j][i]); + } + } + + for (i = 0; i < MAX_PATH_NUM_8814B; i++) { + for (j = 0; j < 15; j++) { + RF_DBG(dm, DBG_RF_MP, + "[kfree] bandedge[%d][%d]=0x%x\n", j, i, bandedge[j][i]); + } + } + + /*5G bias*/ + for (i = 0; i < MAX_PATH_NUM_8814B; i++) { + odm_set_rf_reg(dm, i, RF_0xee, BIT(8), 0x1); + for (j = 0; j <= 0xb; j++) { + + if (j >= 0 && j <= 3) + pa_bias_tmp = pa_bias[0][i] & 0xf; + else if (j >= 4 && j <= 0x7) + pa_bias_tmp = pa_bias[1][i] & 0xf; + else if (j >= 0x8 && j <= 0xb) + pa_bias_tmp = pa_bias[2][i] & 0xf; + + reg_tmp = pa_bias_tmp + power_trim_info->pa_bias_trim[1][i]; + + RF_DBG(dm, DBG_RF_MP, + "[kfree] 8814b 5g pa bias reg_tmp(%d) = pa_bias_tmp(%d) + power_trim_info->pa_bias_trim[1][%d](%d)\n", + reg_tmp, pa_bias_tmp, i, power_trim_info->pa_bias_trim[1][i]); +#if 0 + if (reg_tmp < 0) { + reg_tmp = 0; + RF_DBG(dm, DBG_RF_MP, + "[kfree] 5g pa bias reg_tmp < 0. Set 0 path=%d\n", i); + } else if (reg_tmp > 7) { + reg_tmp = 7; + RF_DBG(dm, DBG_RF_MP, + "[kfree] 5g pa bias reg_tmp > 7. Set 7 path=%d\n", i); + } +#endif + if (j >= 0 && j <= 3) + reg_tmp = ((pa_bias[0][i] & 0xffff0) | reg_tmp | (j << 12)); + else if (j >= 4 && j <= 0x7) + reg_tmp = ((pa_bias[1][i] & 0xffff0) | reg_tmp | (j << 12)); + else if (j >= 0x8 && j <= 0xb) + reg_tmp = ((pa_bias[2][i] & 0xffff0) | reg_tmp | (j << 12)); + + RF_DBG(dm, DBG_RF_MP, + "[kfree] 8814b write RF_0x30=0x%05x path=%d\n", + reg_tmp, i); + + odm_set_rf_reg(dm, i, RF_0x30, RFREGOFFSETMASK, reg_tmp); + } + odm_set_rf_reg(dm, i, RF_0xee, BIT(8), 0x0); + } + + /*5G bandedge*/ + for (i = 0; i < MAX_PATH_NUM_8814B; i++) { + odm_set_rf_reg(dm, i, RF_0xee, BIT(9), 0x1); + for (j = 0; j <= 0xe; j++) { + reg_tmp = bandedge[j][i] + power_trim_info->pa_bias_trim[1][i]; + + RF_DBG(dm, DBG_RF_MP, + "[kfree] 8814b 5g bandedge reg_tmp(%d)(0x%X) = bandedge_org(%d) + power_trim_info->pa_bias_trim[1][%d](%d)\n", + reg_tmp, reg_tmp, bandedge[j][i], i, power_trim_info->pa_bias_trim[1][i]); +#if 0 + if (reg_tmp < 0) { + reg_tmp = 0; + RF_DBG(dm, DBG_RF_MP, + "[kfree] 5g bandedge reg_tmp < 0. Set 0 path=%d\n", i); + } else if (reg_tmp > 7) { + reg_tmp = 7; + RF_DBG(dm, DBG_RF_MP, + "[kfree] 5g bandedge reg_tmp > 7. Set 7 path=%d\n", i); + } +#endif + + reg_tmp = ((bandedge[j][i] & 0xffff0) | reg_tmp | (j << 12)); + + RF_DBG(dm, DBG_RF_MP, + "[kfree] 8814b write RF_0x30=0x%05x path=%d\n", + reg_tmp, i); + + odm_set_rf_reg(dm, i, RF_0x30, RFREGOFFSETMASK, reg_tmp); + } + odm_set_rf_reg(dm, i, RF_0xee, BIT(9), 0x0); + } + +#endif +} + + +void phydm_get_pa_bias_offset_8814b(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct odm_power_trim_data *power_trim_info = &dm->power_trim_data; + + u8 i, j, k; + u8 tssi_pa_bias_2g[2] = {0}, tssi_pa_bias_5g[2] = {0}; + + odm_efuse_one_byte_read(dm, PPG_PABIAS_2GAC_14B, &tssi_pa_bias_2g[0], false); + odm_efuse_one_byte_read(dm, PPG_PABIAS_2GBD_14B, &tssi_pa_bias_2g[1], false); + + j = 0; + for (i = 0; i < 2; i++) { + if (tssi_pa_bias_2g[i] == 0xff) + j++; + } + + if (j == 2) { + RF_DBG(dm, DBG_RF_MP, "[kfree] 8814b 2g PA Bias K no PG\n"); + } else { + power_trim_info->pa_bias_trim[0][RF_PATH_A] = tssi_pa_bias_2g[0] & 0xf; + power_trim_info->pa_bias_trim[0][RF_PATH_C] = (tssi_pa_bias_2g[0] & 0xf0) >> 4; + power_trim_info->pa_bias_trim[0][RF_PATH_B] = tssi_pa_bias_2g[1] & 0xf; + power_trim_info->pa_bias_trim[0][RF_PATH_D] = (tssi_pa_bias_2g[1] & 0xf0) >> 4; + + for (k = 0; k < MAX_PATH_NUM_8814B; k++) { + RF_DBG(dm, DBG_RF_MP, "[kfree] 8814b 2g PA Bias K efuse:0x%x path=%d\n", + power_trim_info->pa_bias_trim[0][k], k); + odm_set_rf_reg(dm, k, 0x60, 0x0000f000, power_trim_info->pa_bias_trim[0][k]); + } + +#if 0 + for (k = 0; k < MAX_PATH_NUM_8814B; k++) { + if ((power_trim_info->pa_bias_trim[0][k] & BIT(0)) == 0) + power_trim_info->pa_bias_trim[0][k] = (-1 * (power_trim_info->pa_bias_trim[0][k] >> 1)); + else + power_trim_info->pa_bias_trim[0][k] = (power_trim_info->pa_bias_trim[0][k] >> 1); + + RF_DBG(dm, DBG_RF_MP, "[kfree] 8814b 2g PA Bias K power_trim_info->pa_bias_trim[0][%d]=0x%x\n", + k, power_trim_info->pa_bias_trim[0][k]); + } + + phydm_set_pabias_bandedge_2g_rf_8814b(dm); +#endif + } + + odm_efuse_one_byte_read(dm, PPG_PABIAS_5GAC_14B, &tssi_pa_bias_5g[0], false); + odm_efuse_one_byte_read(dm, PPG_PABIAS_5GBD_14B, &tssi_pa_bias_5g[1], false); + + j = 0; + for (i = 0; i < 2; i++) { + if (tssi_pa_bias_5g[i] == 0xff) + j++; + } + + if (j == 2) { + RF_DBG(dm, DBG_RF_MP, "[kfree] 8814b 5g PA Bias K no PG\n"); + } else { + power_trim_info->pa_bias_trim[1][RF_PATH_A] = tssi_pa_bias_5g[0] & 0xf; + power_trim_info->pa_bias_trim[1][RF_PATH_C] = (tssi_pa_bias_5g[0] & 0xf0) >> 4; + power_trim_info->pa_bias_trim[1][RF_PATH_B] = tssi_pa_bias_5g[1] & 0xf; + power_trim_info->pa_bias_trim[1][RF_PATH_D] = (tssi_pa_bias_5g[1] & 0xf0) >> 4; + + for (k = 0; k < MAX_PATH_NUM_8814B; k++) { + RF_DBG(dm, DBG_RF_MP, "[kfree] 8814b 5g PA Bias K efuse:0x%x path=%d\n", + power_trim_info->pa_bias_trim[1][k], k); + + odm_set_rf_reg(dm, k, 0x60, 0x000f0000, power_trim_info->pa_bias_trim[1][k]); + } +#if 0 + for (k = 0; k < MAX_PATH_NUM_8814B; k++) { + if ((power_trim_info->pa_bias_trim[1][k] & BIT(0)) == 0) + power_trim_info->pa_bias_trim[1][k] = (-1 * (power_trim_info->pa_bias_trim[1][k] >> 1)); + else + power_trim_info->pa_bias_trim[1][k] = (power_trim_info->pa_bias_trim[1][k] >> 1); + + RF_DBG(dm, DBG_RF_MP, "[kfree] 8814b 5g PA Bias K power_trim_info->pa_bias_trim[1][%d]=0x%x\n", + k, power_trim_info->pa_bias_trim[1][k]); + } + + phydm_set_pabias_bandedge_5g_rf_8814b(dm); +#endif + } + + +} + void phydm_get_thermal_trim_offset_8814b(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; @@ -2442,7 +3301,7 @@ void phydm_get_thermal_trim_offset_8814b(void *dm_void) odm_efuse_one_byte_read(dm, PPG_THERMAL_A_OFFSET_14B, &pg_therm, false); if (pg_therm != 0xff) { - for (i = 0; i < MAX_RF_PATH; i++) { + for (i = 0; i < MAX_PATH_NUM_8814B; i++) { if (i == 0) odm_efuse_one_byte_read(dm, PPG_THERMAL_A_OFFSET_14B, &pg_therm, false); else if (i == 1) @@ -2473,6 +3332,310 @@ void phydm_get_thermal_trim_offset_8814b(void *dm_void) } } +void phydm_get_thermal_trim_offset_8723f(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct odm_power_trim_data *power_trim_info = &dm->power_trim_data; + u8 pg_therm = 0xff; + +#if 1 + odm_efuse_one_byte_read(dm, PPG_THERMAL_OFFSET_8723F, &pg_therm, false); + + if (pg_therm != 0xff) { + pg_therm = pg_therm & 0x1f; + if ((pg_therm & BIT(0)) == 0) + power_trim_info->thermal = (-1 * (pg_therm >> 1)); + else + power_trim_info->thermal = (pg_therm >> 1); + + power_trim_info->flag |= KFREE_FLAG_THERMAL_K_ON; + } + /*if (pg_therm != 0xff) { + pg_therm = pg_therm & 0x1f; + thermal[RF_PATH_A] =((pg_therm & 0x1) << 3) | ((pg_therm >> 1) & 0x7); + odm_set_rf_reg(dm, RF_PATH_A, RF_0x43, 0x000f0000, thermal[RF_PATH_A]); + }*/ + + RF_DBG(dm, DBG_RF_MP, "[kfree] 8723F thermal trim flag:0x%02x\n", + power_trim_info->flag); + + if (power_trim_info->flag & KFREE_FLAG_THERMAL_K_ON) + RF_DBG(dm, DBG_RF_MP, "[kfree] 8723F thermal:%d\n", + power_trim_info->thermal); +#endif +} + +void phydm_get_set_power_trim_offset_8723f(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct odm_power_trim_data *power_trim_info = &dm->power_trim_data; + u8 pg_power = 0xff, i, j; + u8 pg_power1, pg_power2 , pg_power3, pg_power4, pg_power5; +#if 0 + odm_efuse_one_byte_read(dm, PPG_2GL_TXAB_22C, &pg_power1, false); + odm_efuse_one_byte_read(dm, PPG_2GM_TXAB_22C, &pg_power2, false); + odm_efuse_one_byte_read(dm, PPG_2GH_TXAB_22C, &pg_power3, false); + odm_efuse_one_byte_read(dm, PPG_5GL1_TXA_22C, &pg_power4, false); + odm_efuse_one_byte_read(dm, PPG_5GL1_TXB_22C, &pg_power5, false); + + if (pg_power1 != 0xff || pg_power2 != 0xff || pg_power3 != 0xff || + pg_power4 != 0xff || pg_power5 != 0xff) { + odm_efuse_one_byte_read(dm, PPG_2GL_TXAB_22C, &pg_power, false); + if (pg_power == 0xff) + pg_power = 0; + power_trim_info->bb_gain[0][0] = pg_power & 0xf; + power_trim_info->bb_gain[0][1] = (pg_power & 0xf0) >> 4; + + odm_efuse_one_byte_read(dm, PPG_2GM_TXAB_22C, &pg_power, false); + if (pg_power == 0xff) + pg_power = 0; + power_trim_info->bb_gain[1][0] = pg_power & 0xf; + power_trim_info->bb_gain[1][1] = (pg_power & 0xf0) >> 4; + + odm_efuse_one_byte_read(dm, PPG_2GH_TXAB_22C, &pg_power, false); + if (pg_power == 0xff) + pg_power = 0; + power_trim_info->bb_gain[2][0] = pg_power & 0xf; + power_trim_info->bb_gain[2][1] = (pg_power & 0xf0) >> 4; + + odm_efuse_one_byte_read(dm, PPG_5GL1_TXA_22C, &pg_power, false); + if (pg_power == 0xff) + pg_power = 0; + power_trim_info->bb_gain[3][0] = pg_power & 0x1f; + odm_efuse_one_byte_read(dm, PPG_5GL1_TXB_22C, &pg_power, false); + if (pg_power == 0xff) + pg_power = 0; + power_trim_info->bb_gain[3][1] = pg_power & 0x1f; + + odm_efuse_one_byte_read(dm, PPG_5GL2_TXA_22C, &pg_power, false); + if (pg_power == 0xff) + pg_power = 0; + power_trim_info->bb_gain[4][0] = pg_power & 0x1f; + odm_efuse_one_byte_read(dm, PPG_5GL2_TXB_22C, &pg_power, false); + if (pg_power == 0xff) + pg_power = 0; + power_trim_info->bb_gain[4][1] = pg_power & 0x1f; + + odm_efuse_one_byte_read(dm, PPG_5GM1_TXA_22C, &pg_power, false); + if (pg_power == 0xff) + pg_power = 0; + power_trim_info->bb_gain[5][0] = pg_power & 0x1f; + odm_efuse_one_byte_read(dm, PPG_5GM1_TXB_22C, &pg_power, false); + if (pg_power == 0xff) + pg_power = 0; + power_trim_info->bb_gain[5][1] = pg_power & 0x1f; + + odm_efuse_one_byte_read(dm, PPG_5GM2_TXA_22C, &pg_power, false); + if (pg_power == 0xff) + pg_power = 0; + power_trim_info->bb_gain[6][0] = pg_power & 0x1f; + odm_efuse_one_byte_read(dm, PPG_5GM2_TXB_22C, &pg_power, false); + if (pg_power == 0xff) + pg_power = 0; + power_trim_info->bb_gain[6][1] = pg_power & 0x1f; + + odm_efuse_one_byte_read(dm, PPG_5GH1_TXA_22C, &pg_power, false); + if (pg_power == 0xff) + pg_power = 0; + power_trim_info->bb_gain[7][0] = pg_power & 0x1f; + odm_efuse_one_byte_read(dm, PPG_5GH1_TXB_22C, &pg_power, false); + if (pg_power == 0xff) + pg_power = 0; + power_trim_info->bb_gain[7][1] = pg_power & 0x1f; + + power_trim_info->flag = + power_trim_info->flag | KFREE_FLAG_ON | + KFREE_FLAG_ON_2G | + KFREE_FLAG_ON_5G; + + phydm_set_power_trim_offset_8822c(dm); + } + + RF_DBG(dm, DBG_RF_MP, "[kfree] 8822c power trim flag:0x%02x\n", + power_trim_info->flag); + + if (power_trim_info->flag & KFREE_FLAG_ON) { + for (i = 0; i < KFREE_BAND_NUM; i++) { + for (j = 0; j < 2; j++) { + RF_DBG(dm, DBG_RF_MP, + "[kfree] 8822c pwr_trim->bb_gain[%d][%d]=0x%X\n", + i, j, power_trim_info->bb_gain[i][j]); + } + } + } +#endif +} + +void phydm_get_tssi_trim_offset_8723f(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct odm_power_trim_data *power_trim_info = &dm->power_trim_data; + u8 i, j, k; + u8 pg_power[16] = {0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff}; +#if 1 + odm_efuse_one_byte_read(dm, PPG_S0_CH3_TSSIDE_8723F, &pg_power[0], false); + odm_efuse_one_byte_read(dm, PPG_S1_CH3_TSSIDE_8723F, &pg_power[1], false); + odm_efuse_one_byte_read(dm, PPG_S0_CH11_TSSIDE_8723F, &pg_power[2], false); + odm_efuse_one_byte_read(dm, PPG_S1_CH11_TSSIDE_8723F, &pg_power[3], false); + odm_efuse_one_byte_read(dm, PPG_S0_CH42_TSSIDE_8723F, &pg_power[4], false); + odm_efuse_one_byte_read(dm, PPG_S0_CH58_TSSIDE_8723F, &pg_power[6], false); + odm_efuse_one_byte_read(dm, PPG_S0_CH110_TSSIDE_8723F, &pg_power[8], false); + odm_efuse_one_byte_read(dm, PPG_S0_CH134_TSSIDE_8723F, &pg_power[10], false); + odm_efuse_one_byte_read(dm, PPG_S0_CH159_TSSIDE_8723F, &pg_power[12], false); + odm_efuse_one_byte_read(dm, PPG_S0_CH171_TSSIDE_8723F, &pg_power[14], false); + + j = 0; + for (i = 0; i < 16; i++) { + if ((pg_power[i] & 0xff) == 0xff) + j++; + } + + if (j == 16) { + for (i = 0; i < 9; i++) + for(k = 0; i < 2; i++) + power_trim_info->tssi_trim[i][k] = 0; + RF_DBG(dm, DBG_RF_MP, "[kfree] 8723F tssi trim no PG\n"); + } else { + power_trim_info->tssi_trim[0][0] = (s8)pg_power[0]; + power_trim_info->tssi_trim[0][1] = (s8)pg_power[1]; + power_trim_info->tssi_trim[1][0] = (s8)pg_power[2]; + power_trim_info->tssi_trim[1][1] = (s8)pg_power[3]; + power_trim_info->tssi_trim[2][0] = (s8)pg_power[4]; + power_trim_info->tssi_trim[2][1] = 0; + power_trim_info->tssi_trim[3][0] = (s8)pg_power[6]; + power_trim_info->tssi_trim[3][1] = 0; + power_trim_info->tssi_trim[4][0] = (s8)pg_power[8]; + power_trim_info->tssi_trim[4][1] = 0; + power_trim_info->tssi_trim[5][0] = (s8)pg_power[10]; + power_trim_info->tssi_trim[5][1] = 0; + power_trim_info->tssi_trim[6][0] = (s8)pg_power[12]; + power_trim_info->tssi_trim[6][1] = 0; + power_trim_info->tssi_trim[7][0] = (s8)pg_power[14]; + power_trim_info->tssi_trim[7][1] = 0; + + power_trim_info->flag = + power_trim_info->flag | TSSI_TRIM_FLAG_ON; + + if (power_trim_info->flag & TSSI_TRIM_FLAG_ON) { + for (i = 0; i < 8; i++) { //KFREE_BAND_NUM + for (j = 0; j < 2; j++) { + RF_DBG(dm, DBG_RF_MP, + "[kfree] 8723F tssi_trim[%d][%d]=0x%X\n", + i, j, power_trim_info->tssi_trim[i][j]); + } + } + } + } +#endif +} + +s8 phydm_get_tssi_trim_de_8723f(void *dm_void, u8 path) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct odm_power_trim_data *power_trim_info = &dm->power_trim_data; + u8 channel = *dm->channel, group = 0; + + if (channel >= 1 && channel <= 7) { + group = 0; + } else if (channel >= 8 && channel <= 14) { + group = 1; + } else if (channel >= 36 && channel <= 50) { + group = 2; + } else if (channel >= 52 && channel <= 64) { + group = 3; + } else if (channel >= 100 && channel <= 128) { + group = 4; + } else if (channel >= 129 && channel <= 144) { + group = 5; + } else if (channel >= 149 && channel <= 163) { + group = 6; + } else if (channel >= 164 && channel <= 177) { + group = 7; + } else { + RF_DBG(dm, DBG_RF_MP, "[kfree] Channel(%d) is not exist in Group\n", channel); + return 0; + } + + return power_trim_info->tssi_trim[group][path]; +} + +void phydm_get_set_pa_bias_offset_8723f(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct odm_power_trim_data *power_trim_info = &dm->power_trim_data; + + u8 i; + u8 ppa_bias_2g[2] = {0}, ppa_bias_5g = 0; + + odm_efuse_one_byte_read(dm, PPG_PABIAS_2GA_8723F, &ppa_bias_2g[0], false); + odm_efuse_one_byte_read(dm, PPG_PABIAS_2GB_8723F, &ppa_bias_2g[1], false); + odm_efuse_one_byte_read(dm, PPG_PABIAS_5GA_8723F, &ppa_bias_5g, false); + + if (ppa_bias_2g[0] == 0xff && ppa_bias_2g[1] == 0xff) { + RF_DBG(dm, DBG_RF_MP, "[kfree] 8723f 2g PA Bias K no PG\n"); + } else { + for (i = 0; i < MAX_PATH_NUM_8723F; i++) { + power_trim_info->pa_bias_trim[0][i] = ppa_bias_2g[i] & 0xf; + RF_DBG(dm, DBG_RF_MP, + "[kfree] 8723f S%d 2g PA Bias K efuse:0x%x\n", + i, power_trim_info->pa_bias_trim[0][i]); + odm_set_rf_reg(dm, i, RF_0x60, 0x0f000, power_trim_info->pa_bias_trim[0][i]); + } + power_trim_info->pa_bias_flag |= PA_BIAS_FLAG_ON; + } + + if (ppa_bias_5g == 0xff) { + RF_DBG(dm, DBG_RF_MP, "[kfree] 8723f 5g PA Bias K no PG\n"); + } else { + power_trim_info->pa_bias_trim[1][RF_PATH_A] = ppa_bias_5g & 0xf; + RF_DBG(dm, DBG_RF_MP, "[kfree] 8723f 5g PA Bias K efuse:0x%x\n", + power_trim_info->pa_bias_trim[1][RF_PATH_A]); + + odm_set_rf_reg(dm, RF_PATH_A, RF_0x60, 0xf0000, power_trim_info->pa_bias_trim[1][0]); + power_trim_info->pa_bias_flag |= PA_BIAS_FLAG_ON; + } +} + +void phydm_get_set_lna_offset_8723f(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct odm_power_trim_data *power_trim_info = &dm->power_trim_data; + + u8 i; + u8 pg_lna_2g[2] = {0}, pg_lna_5g = 0; + + odm_efuse_one_byte_read(dm, PPG_LNA_2GA_8723F, &pg_lna_2g[0], false); + odm_efuse_one_byte_read(dm, PPG_LNA_2GB_8723F, &pg_lna_2g[1], false); + odm_efuse_one_byte_read(dm, PPG_LNA_5GA_8723F, &pg_lna_5g, false); + + if (pg_lna_2g[0] == 0xff && pg_lna_2g[1] == 0xff) { + RF_DBG(dm, DBG_RF_MP, "[kfree] 8723f 2g LNA Bias K no PG\n"); + } else { + for (i = 0; i < MAX_PATH_NUM_8723F; i++) { + power_trim_info->lna_trim[i] = pg_lna_2g[i] & 0x3f; + RF_DBG(dm, DBG_RF_MP, + "[kfree] 8723f S%d 2g LNA Bias K efuse:0x%x\n", + i, power_trim_info->lna_trim[i]); + odm_set_rf_reg(dm, i, RF_0x88, 0x003f0, power_trim_info->lna_trim[i]); + } + power_trim_info->lna_flag |= LNA_FLAG_ON; + } + + if (pg_lna_5g == 0xff) { + RF_DBG(dm, DBG_RF_MP, "[kfree] 8723f 5g LNA Bias K no PG\n"); + } else { + power_trim_info->lna_trim[2] = pg_lna_5g & 0x3f; + RF_DBG(dm, DBG_RF_MP, "[kfree] 8723f 5g LNA Bias K efuse:0x%x\n", + power_trim_info->lna_trim[2]); + + odm_set_rf_reg(dm, RF_PATH_A, RF_0x8b, 0x03f00, power_trim_info->lna_trim[2]); + power_trim_info->lna_flag |= LNA_FLAG_ON; + } +} + s8 phydm_get_tssi_trim_de(void *dm_void, u8 path) { struct dm_struct *dm = (struct dm_struct *)dm_void; @@ -2481,8 +3644,14 @@ s8 phydm_get_tssi_trim_de(void *dm_void, u8 path) return phydm_get_tssi_trim_de_8822c(dm, path); else if (dm->support_ic_type & ODM_RTL8812F) return phydm_get_tssi_trim_de_8812f(dm, path); + else if (dm->support_ic_type & ODM_RTL8197G) + return phydm_get_tssi_trim_de_8197g(dm, path); + else if (dm->support_ic_type & ODM_RTL8814B) + return phydm_get_tssi_trim_de_8814b(dm, path); + else if (dm->support_ic_type & ODM_RTL8723F) + return phydm_get_tssi_trim_de_8723f(dm, path); else - return 0; + return 0; } void phydm_do_new_kfree(void *dm_void) @@ -2515,14 +3684,16 @@ void phydm_do_new_kfree(void *dm_void) /*phydm_get_set_pa_bias_offset_8721d(dm);*/ } - if (dm->support_ic_type & ODM_RTL8198F) + if (dm->support_ic_type & ODM_RTL8198F) { + phydm_get_pa_bias_offset_8198f(dm); phydm_get_set_lna_offset_8198f(dm); + } if (dm->support_ic_type & ODM_RTL8197G) { phydm_get_thermal_trim_offset_8197g(dm); phydm_get_set_power_trim_offset_8197g(dm); phydm_get_set_pa_bias_offset_8197g(dm); - /*phydm_get_tssi_trim_offset_8197g(dm);*/ + phydm_get_tssi_trim_offset_8197g(dm); phydm_get_set_lna_offset_8197g(dm); } @@ -2534,8 +3705,16 @@ void phydm_do_new_kfree(void *dm_void) if (dm->support_ic_type & ODM_RTL8814B) { phydm_get_thermal_trim_offset_8814b(dm); - /*phydm_get_set_power_trim_offset_8814b(dm);*/ - /*phydm_get_set_pa_bias_offset_8814b(dm);*/ + phydm_get_set_power_trim_offset_8814b(dm); + phydm_get_pa_bias_offset_8814b(dm); + phydm_get_tssi_trim_offset_8814b(dm); + } + if (dm->support_ic_type & ODM_RTL8723F) { + phydm_get_thermal_trim_offset_8723f(dm); + phydm_get_set_power_trim_offset_8723f(dm); + phydm_get_set_pa_bias_offset_8723f(dm); + phydm_get_set_lna_offset_8723f(dm); + phydm_get_tssi_trim_offset_8723f(dm); } } @@ -2644,9 +3823,6 @@ void phydm_get_pa_bias_offset(void *dm_void) if (dm->support_ic_type & ODM_RTL8822B) phydm_get_pa_bias_offset_8822b(dm_void); - - if (dm->support_ic_type & ODM_RTL8198F) - phydm_get_pa_bias_offset_8198f(dm); } s8 phydm_get_thermal_offset(void *dm_void) diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_kfree.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_kfree.h index 437c644d..0446c4b6 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_kfree.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_kfree.h @@ -163,11 +163,36 @@ #define PPG_5GM2_TXA_8721D 0x1EA #define PPG_5GH1_TXA_8721D 0x1E9 +/*8723F*/ +/*#define KFREE_BAND_NUM_8723F*/ +#define PPG_THERMAL_OFFSET_8723F 0x1EF +#define PPG_S0_CH3_TSSIDE_8723F 0x1DD +#define PPG_S1_CH3_TSSIDE_8723F 0x1DC +#define PPG_S0_CH11_TSSIDE_8723F 0x1DB +#define PPG_S1_CH11_TSSIDE_8723F 0x1DA +#define PPG_S0_CH42_TSSIDE_8723F 0x1D9 +#define PPG_S0_CH58_TSSIDE_8723F 0x1D8 +#define PPG_S0_CH110_TSSIDE_8723F 0x1D7 +#define PPG_S0_CH134_TSSIDE_8723F 0x1D6 +#define PPG_S0_CH159_TSSIDE_8723F 0x1D5 +#define PPG_S0_CH171_TSSIDE_8723F 0x1D4 +#define PPG_PABIAS_5GA_8723F 0x1E8 +#define PPG_PABIAS_2GA_8723F 0x1E7 +#define PPG_PABIAS_2GB_8723F 0x1E6 +#define PPG_LNA_2GA_8723F 0x1E3 +#define PPG_LNA_2GB_8723F 0x1E2 +#define PPG_LNA_5GA_8723F 0x1E1 + /*8197G*/ -#define PPG_THERMAL_OFFSET_97G 0x50 +#define PPG_THERMAL_A_OFFSET_97G 0x50 +#define PPG_THERMAL_B_OFFSET_97G 0x27 #define PPG_2GM_TXAB_97G 0x51 #define PPG_2GL_TXAB_97G 0x53 #define PPG_2GH_TXAB_97G 0x55 +#define TSSI_2GL_TXA_97G 0x1c +#define TSSI_2GL_TXB_97G 0x1d +#define TSSI_2GH_TXA_97G 0x1e +#define TSSI_2GH_TXB_97G 0x1f #define PPG_PABIAS_2GAB_97G 0x57 #define PPG_LNA_2GA_97G 0x21 #define PPG_LNA_2GB_97G 0x22 @@ -181,17 +206,79 @@ #define PPG_LNA_10C 0x1D0 /*8814B*/ +#define PPG_2GL_TXAB_14B 0x3ee +#define PPG_2GL_TXCD_14B 0x3ed +#define PPG_5GL1_TXA_14B 0x3ec +#define PPG_5GL1_TXB_14B 0x3eb +#define PPG_5GL1_TXC_14B 0x3ea +#define PPG_5GL1_TXD_14B 0x3e9 +#define PPG_5GL2_TXA_14B 0x3e8 +#define PPG_5GL2_TXB_14B 0x3e7 +#define PPG_5GL2_TXC_14B 0x3e6 +#define PPG_5GL2_TXD_14B 0x3e5 +#define PPG_5GM1_TXA_14B 0x3e4 +#define PPG_5GM1_TXB_14B 0x3e3 +#define PPG_5GM1_TXC_14B 0x3e2 +#define PPG_5GM1_TXD_14B 0x3e1 +#define PPG_5GM2_TXA_14B 0x3e0 +#define PPG_5GM2_TXB_14B 0x3df +#define PPG_5GM2_TXC_14B 0x3de +#define PPG_5GM2_TXD_14B 0x3dd +#define PPG_5GH1_TXA_14B 0x3dc +#define PPG_5GH1_TXB_14B 0x3db +#define PPG_5GH1_TXC_14B 0x3da +#define PPG_5GH1_TXD_14B 0x3d9 +#define PPG_PABIAS_5GAC_14B 0x3d8 +#define PPG_PABIAS_5GBD_14B 0x3d7 +#define PPG_PABIAS_2GAC_14B 0x3d6 +#define PPG_PABIAS_2GBD_14B 0x3d5 + #define PPG_THERMAL_A_OFFSET_14B 0x3D4 #define PPG_THERMAL_B_OFFSET_14B 0x3D3 #define PPG_THERMAL_C_OFFSET_14B 0x3D2 #define PPG_THERMAL_D_OFFSET_14B 0x3D1 +#define TSSI_2GM_TXA_14B 0x3c0 +#define TSSI_2GM_TXB_14B 0x3bf +#define TSSI_2GM_TXC_14B 0x3be +#define TSSI_2GM_TXD_14B 0x3bd +#define TSSI_2GH_TXA_14B 0x3bc +#define TSSI_2GH_TXB_14B 0x3bb +#define TSSI_2GH_TXC_14B 0x3ba +#define TSSI_2GH_TXD_14B 0x3b9 +#define TSSI_5GL1_TXA_14B 0x3b8 +#define TSSI_5GL1_TXB_14B 0x3b7 +#define TSSI_5GL1_TXC_14B 0x3b6 +#define TSSI_5GL1_TXD_14B 0x3b5 +#define TSSI_5GL2_TXA_14B 0x3b4 +#define TSSI_5GL2_TXB_14B 0x3b3 +#define TSSI_5GL2_TXC_14B 0x3b2 +#define TSSI_5GL2_TXD_14B 0x3b1 +#define TSSI_5GM1_TXA_14B 0x3b0 +#define TSSI_5GM1_TXB_14B 0x3af +#define TSSI_5GM1_TXC_14B 0x3ae +#define TSSI_5GM1_TXD_14B 0x3ad +#define TSSI_5GM2_TXA_14B 0x3ac +#define TSSI_5GM2_TXB_14B 0x3ab +#define TSSI_5GM2_TXC_14B 0x3aa +#define TSSI_5GM2_TXD_14B 0x3a9 +#define TSSI_5GH1_TXA_14B 0x3a8 +#define TSSI_5GH1_TXB_14B 0x3a7 +#define TSSI_5GH1_TXC_14B 0x3a6 +#define TSSI_5GH1_TXD_14B 0x3a5 +#define TSSI_5GH2_TXA_14B 0x3a4 +#define TSSI_5GH2_TXB_14B 0x3a3 +#define TSSI_5GH2_TXC_14B 0x3a2 +#define TSSI_5GH2_TXD_14B 0x3a1 + + struct odm_power_trim_data { u8 flag; u8 pa_bias_flag; u8 lna_flag; s8 bb_gain[KFREE_BAND_NUM][MAX_RF_PATH]; s8 tssi_trim[KFREE_BAND_NUM][MAX_RF_PATH]; + s8 pa_bias_trim[KFREE_BAND_NUM][MAX_RF_PATH]; s8 lna_trim[MAX_RF_PATH]; s8 thermal; s8 multi_thermal[MAX_RF_PATH]; diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking.c index 04709cab..3ccbf748 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking.c @@ -162,17 +162,25 @@ void halrf_set_pwr_track(void *dm_void, u8 enable) configure_txpower_track(dm, &c); if (enable) { rf->rf_supportability = rf->rf_supportability | HAL_RF_TX_PWR_TRACK; - if (cali_info->txpowertrack_control == 1 || cali_info->txpowertrack_control == 3) { - halrf_segment_iqk_trigger(dm, true, 0); - halrf_tssi_trigger(dm); + + if (dm->support_ic_type != ODM_RTL8723F) { + if (cali_info->txpowertrack_control == 1 || cali_info->txpowertrack_control == 3) + halrf_do_tssi(dm); } + + halrf_tssi_get_efuse(dm); + halrf_do_tssi(dm); + } else { rf->rf_supportability = rf->rf_supportability & ~HAL_RF_TX_PWR_TRACK; odm_clear_txpowertracking_state(dm); halrf_do_tssi(dm); + halrf_calculate_tssi_codeword(dm); + halrf_set_tssi_codeword(dm); for (i = 0; i < c.rf_path_count; i++) (*c.odm_tx_pwr_track_set_pwr)(dm, CLEAN_MODE, i, 0); + } if (cali_info->txpowertrack_control == 2 || diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_ap.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_ap.c index db427626..aaadf887 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_ap.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_ap.c @@ -738,7 +738,7 @@ u8 cck_swing_table_ch14_92e[CCK_TABLE_SIZE_92E][8] = { #if (RTL8814A_SUPPORT == 1 || RTL8822B_SUPPORT == 1 ||\ RTL8821C_SUPPORT == 1 || RTL8198F_SUPPORT == 1 ||\ - RTL8814B_SUPPORT == 1) + RTL8814B_SUPPORT == 1 || RTL8814C_SUPPORT == 1) u32 tx_scaling_table_jaguar[TXSCALE_TABLE_SIZE] = { 0x081, /* 0, -12.0dB */ 0x088, /* 1, -11.5dB */ @@ -927,7 +927,8 @@ odm_txpowertracking_init( { struct dm_struct *dm = (struct dm_struct *)dm_void; #if (DM_ODM_SUPPORT_TYPE & (ODM_AP)) - if (!(dm->support_ic_type & (ODM_RTL8814A | ODM_RTL8822B | ODM_IC_11N_SERIES))) + if (!(dm->support_ic_type & (ODM_RTL8814A | ODM_RTL8822B | + ODM_RTL8814B | ODM_RTL8814C | ODM_IC_11N_SERIES))) return; #endif @@ -987,6 +988,46 @@ get_swing_index( return i; } +u8 get_cck_swing_index(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct rtl8192cd_priv *priv = dm->priv; + + u8 i = 0; + u32 bb_cck_swing; + +#if (RTL8192F_SUPPORT == 1) + if (GET_CHIP_VER(priv) == VERSION_8192F) { + bb_cck_swing = odm_get_bb_reg(dm, R_0xab4, 0x7ff); + + for (i = 0; i < CCK_TABLE_SIZE; i++) { + if (bb_cck_swing == cck_swing_table_ch1_ch14_8192f[i]) + break; + } + } +#endif + + return i; +} + +s8 +get_txagc_default_index( + void *dm_void +) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + s8 tmp; + +#if (RTL8814B_SUPPORT == 1 || RTL8814C_SUPPORT == 1) + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { + tmp = (s8)(odm_get_bb_reg(dm, R_0x18a0, 0x7f) & 0xff); + if (tmp & BIT(6)) + tmp = tmp | 0x80; + return tmp; + } else + return 0; +#endif +} void odm_txpowertracking_thermal_meter_init( @@ -995,12 +1036,18 @@ odm_txpowertracking_thermal_meter_init( { struct dm_struct *dm = (struct dm_struct *)dm_void; struct dm_rf_calibration_struct *cali_info = &(dm->rf_calibrate_info); + struct _hal_rf_ *rf = &dm->rf_table; + struct _halrf_tssi_data *tssi = &rf->halrf_tssi_data; struct rtl8192cd_priv *priv = dm->priv; u8 p; u8 default_swing_index; + u8 default_cckswing_idx; + u8 i; #if (RTL8197F_SUPPORT == 1 || RTL8822B_SUPPORT == 1 || RTL8192F_SUPPORT == 1) if ((GET_CHIP_VER(priv) == VERSION_8197F) || (GET_CHIP_VER(priv) == VERSION_8822B) ||(GET_CHIP_VER(priv) == VERSION_8192F)) default_swing_index = get_swing_index(dm); + if (GET_CHIP_VER(priv) == VERSION_8192F) + default_cckswing_idx = get_cck_swing_index(dm); #endif #if (DM_ODM_SUPPORT_TYPE == ODM_WIN) @@ -1074,7 +1121,7 @@ odm_txpowertracking_thermal_meter_init( #if (RTL8192F_SUPPORT == 1) if (GET_CHIP_VER(priv) == VERSION_8192F) { cali_info->default_ofdm_index = (default_swing_index >= (OFDM_TABLE_SIZE_92D - 1)) ? 30 : default_swing_index; - cali_info->default_cck_index = 28; + cali_info->default_cck_index = (default_cckswing_idx >= (CCK_TABLE_SIZE_8192F - 1)) ? 28 : default_cckswing_idx; } #endif @@ -1087,10 +1134,27 @@ odm_txpowertracking_thermal_meter_init( #if RTL8188E_SUPPORT - cali_info->default_cck_index = 20; /* -6 dB */ -#elif RTL8192E_SUPPORT - cali_info->default_cck_index = 8; /* -12 dB */ + if (GET_CHIP_VER(priv) == VERSION_8188E) { + cali_info->default_cck_index = 20; /* -6 dB */ + } #endif + +#if RTL8192E_SUPPORT + if (GET_CHIP_VER(priv) == VERSION_8192E) { + cali_info->default_cck_index = 8; /* -12 dB */ + } +#endif + +#if (RTL8814B_SUPPORT == 1 || RTL8814C_SUPPORT == 1) + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { + cali_info->default_txagc_index = get_txagc_default_index(dm); + + for (i = 0; i < MAX_PATH_NUM_8814B; i++) + tssi->tssi_trk_txagc_offset[i] = + cali_info->default_txagc_index; + } +#endif + cali_info->bb_swing_idx_ofdm_base = cali_info->default_ofdm_index; cali_info->bb_swing_idx_cck_base = cali_info->default_cck_index; dm->rf_calibrate_info.CCK_index = cali_info->default_cck_index; @@ -1207,7 +1271,7 @@ odm_txpowertracking_check_ap( struct _hal_rf_ *rf = &dm->rf_table; struct _halrf_tssi_data *tssi = &rf->halrf_tssi_data; -#if ((RTL8188E_SUPPORT == 1) || (RTL8192E_SUPPORT == 1) || (RTL8812A_SUPPORT == 1) || (RTL8881A_SUPPORT == 1) || (RTL8814A_SUPPORT == 1) || (RTL8197F_SUPPORT == 1) || (RTL8192F_SUPPORT == 1) || (RTL8198F_SUPPORT == 1) || (RTL8814B_SUPPORT == 1) || (RTL8812F_SUPPORT == 1)) +#if ((RTL8188E_SUPPORT == 1) || (RTL8192E_SUPPORT == 1) || (RTL8812A_SUPPORT == 1) || (RTL8881A_SUPPORT == 1) || (RTL8814A_SUPPORT == 1) || (RTL8197F_SUPPORT == 1) || (RTL8192F_SUPPORT == 1) || (RTL8198F_SUPPORT == 1) || (RTL8814B_SUPPORT == 1) || (RTL8812F_SUPPORT == 1) || (RTL8197G_SUPPORT == 1) || (RTL8814C_SUPPORT == 1)) if (!dm->rf_calibrate_info.tm_trigger) { if (dm->support_ic_type & (ODM_RTL8188E | ODM_RTL8192E | ODM_RTL8812 | ODM_RTL8881A | ODM_RTL8814A | ODM_RTL8197F | ODM_RTL8822B | ODM_RTL8821C | ODM_RTL8192F | ODM_RTL8198F)) { odm_set_rf_reg(dm, RF_PATH_A, 0x42, (BIT(17) | BIT(16)), 0x3); @@ -1219,14 +1283,22 @@ odm_txpowertracking_check_ap( odm_set_rf_reg(dm, RF_PATH_B, R_0x42, BIT(19), 0x01); odm_set_rf_reg(dm, RF_PATH_B, R_0x42, BIT(19), 0x00); odm_set_rf_reg(dm, RF_PATH_B, R_0x42, BIT(19), 0x01); - } else if (dm->support_ic_type & ODM_RTL8814B) { + } else if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { odm_set_rf_reg(dm, RF_PATH_A, 0x42, BIT(17), 0x1); odm_set_rf_reg(dm, RF_PATH_B, 0x42, BIT(17), 0x1); odm_set_rf_reg(dm, RF_PATH_C, 0x42, BIT(17), 0x1); odm_set_rf_reg(dm, RF_PATH_D, 0x42, BIT(17), 0x1); + } else if (dm->support_ic_type & ODM_RTL8197G) { + odm_set_rf_reg(dm, RF_PATH_A, RF_0x42, BIT(17), 0x1); + odm_set_rf_reg(dm, RF_PATH_A, RF_0x42, BIT(17), 0x0); + odm_set_rf_reg(dm, RF_PATH_A, RF_0x42, BIT(17), 0x1); + + odm_set_rf_reg(dm, RF_PATH_B, RF_0x42, BIT(17), 0x1); + odm_set_rf_reg(dm, RF_PATH_B, RF_0x42, BIT(17), 0x0); + odm_set_rf_reg(dm, RF_PATH_B, RF_0x42, BIT(17), 0x1); } - if (dm->support_ic_type & ODM_RTL8814B) { + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { ODM_delay_us(300); odm_txpowertracking_callback_thermal_meter(dm); tssi->thermal_trigger = 1; @@ -1235,7 +1307,7 @@ odm_txpowertracking_check_ap( dm->rf_calibrate_info.tm_trigger = 1; } else { odm_txpowertracking_callback_thermal_meter(dm); - if (dm->support_ic_type & ODM_RTL8814B) + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) tssi->thermal_trigger = 0; dm->rf_calibrate_info.tm_trigger = 0; } diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_ap.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_ap.h index dfeb3233..098e2845 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_ap.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_ap.h @@ -228,6 +228,7 @@ struct dm_rf_calibration_struct { u8 bb_swing_idx_cck_base; u8 default_ofdm_index; u8 default_cck_index; + s8 default_txagc_index; boolean bb_swing_flag_cck; s8 absolute_ofdm_swing_idx[MAX_RF_PATH]; diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_ce.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_ce.c index 33caf5a0..4fd3de0e 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_ce.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_ce.c @@ -664,6 +664,23 @@ u8 get_cck_swing_index(void *dm_void) return i; } +s8 +get_txagc_default_index( + void *dm_void +) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + s8 tmp; + + if (dm->support_ic_type == ODM_RTL8814B) { + tmp = (s8)(odm_get_bb_reg(dm, R_0x18a0, 0x7f) & 0xff); + if (tmp & BIT(6)) + tmp = tmp | 0x80; + return tmp; + } else + return 0; +} + void odm_txpowertracking_thermal_meter_init(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; @@ -696,8 +713,9 @@ void odm_txpowertracking_thermal_meter_init(void *dm_void) cali_info->thermal_value_iqk = rf->eeprom_thermal; cali_info->thermal_value_lck = rf->eeprom_thermal; -#if (RTL8822C_SUPPORT == 1 || RTL8814B_SUPPORT == 1) - if (dm->support_ic_type == ODM_RTL8822C) { +#if (RTL8822C_SUPPORT == 1 || RTL8814B_SUPPORT == 1 || RTL8723F_SUPPORT == 1) + if (dm->support_ic_type == ODM_RTL8822C || + dm->support_ic_type == ODM_RTL8723F) { cali_info->thermal_value_path[RF_PATH_A] = tssi->thermal[RF_PATH_A]; cali_info->thermal_value_path[RF_PATH_B] = tssi->thermal[RF_PATH_B]; cali_info->thermal_value_iqk = tssi->thermal[RF_PATH_A]; @@ -717,7 +735,7 @@ void odm_txpowertracking_thermal_meter_init(void *dm_void) if (!cali_info->default_bb_swing_index_flag) { if (dm->support_ic_type & (ODM_RTL8188E | ODM_RTL8723B | ODM_RTL8192E | - ODM_RTL8703B)) { + ODM_RTL8703B | ODM_RTL8821)) { if (swing_idx >= OFDM_TABLE_SIZE) cali_info->default_ofdm_index = 30; else @@ -748,6 +766,8 @@ void odm_txpowertracking_thermal_meter_init(void *dm_void) else cali_info->default_ofdm_index = swing_idx; + cali_info->default_txagc_index = get_txagc_default_index(dm); + cali_info->default_cck_index = 24; } cali_info->default_bb_swing_index_flag = true; @@ -805,6 +825,12 @@ void odm_txpowertracking_check_ce(void *dm_void) #if (DM_ODM_SUPPORT_TYPE == ODM_CE) if (!(rf->rf_supportability & HAL_RF_TX_PWR_TRACK)) return; +#if (RTL8723F_SUPPORT == 1) + if (dm->support_ic_type & ODM_RTL8723F) { + /*RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[RF][TSSI] Pwrtrack return!\n");*/ + return; + } +#endif if ((rf->power_track_type & 0xf0) >> 4 != 0) { if (dm->support_ic_type & ODM_RTL8822C) { @@ -868,10 +894,17 @@ odm_txpowertracking_direct_ce(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; struct _hal_rf_ *rf = &dm->rf_table; + #if (DM_ODM_SUPPORT_TYPE == ODM_CE) if (!(rf->rf_supportability & HAL_RF_TX_PWR_TRACK)) return; + if (dm->support_ic_type & ODM_RTL8723F) { +#if (RTL8723F_SUPPORT == 1) + /*RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[RF]===>%s 8723F TSSI, return!\n", __func__);*/ + return; +#endif + } if (dm->support_ic_type & ODM_RTL8822C) { /*halrf_tssi_cck(dm);*/ diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_ce.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_ce.h index 2f3067ac..3fec1abf 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_ce.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_ce.h @@ -199,6 +199,7 @@ struct dm_rf_calibration_struct { u8 bb_swing_idx_cck_base; u8 default_ofdm_index; u8 default_cck_index; + s8 default_txagc_index; boolean bb_swing_flag_cck; s8 absolute_ofdm_swing_idx[MAX_RF_PATH]; diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_iot.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_iot.c index dd6e02b3..494fdec3 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_iot.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_iot.c @@ -34,7 +34,7 @@ * ************************************************************ */ -u32 ofdm_swing_table[OFDM_TABLE_SIZE] = { +const u32 ofdm_swing_table[OFDM_TABLE_SIZE] = { 0x7f8001fe, /* 0, +6.0dB */ 0x788001e2, /* 1, +5.5dB */ 0x71c001c7, /* 2, +5.0dB*/ @@ -74,7 +74,7 @@ u32 ofdm_swing_table[OFDM_TABLE_SIZE] = { 0x10000040, /* 36, -12.0dB*/ }; -u8 cck_swing_table_ch1_ch13[CCK_TABLE_SIZE][8] = { +const u8 cck_swing_table_ch1_ch13[CCK_TABLE_SIZE][8] = { {0x36, 0x35, 0x2e, 0x25, 0x1c, 0x12, 0x09, 0x04}, /* 0, +0dB */ {0x33, 0x32, 0x2b, 0x23, 0x1a, 0x11, 0x08, 0x04}, /* 1, -0.5dB */ {0x30, 0x2f, 0x29, 0x21, 0x19, 0x10, 0x08, 0x03}, /* 2, -1.0dB*/ @@ -110,7 +110,7 @@ u8 cck_swing_table_ch1_ch13[CCK_TABLE_SIZE][8] = { {0x09, 0x08, 0x07, 0x06, 0x04, 0x03, 0x01, 0x01} /* 32, -16.0dB*/ }; -u8 cck_swing_table_ch14[CCK_TABLE_SIZE][8] = { +const u8 cck_swing_table_ch14[CCK_TABLE_SIZE][8] = { {0x36, 0x35, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00}, /* 0, +0dB */ {0x33, 0x32, 0x2b, 0x19, 0x00, 0x00, 0x00, 0x00}, /* 1, -0.5dB */ {0x30, 0x2f, 0x29, 0x18, 0x00, 0x00, 0x00, 0x00}, /* 2, -1.0dB */ @@ -146,7 +146,7 @@ u8 cck_swing_table_ch14[CCK_TABLE_SIZE][8] = { {0x09, 0x08, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00} /* 32, -16.0dB*/ }; -u32 ofdm_swing_table_new[OFDM_TABLE_SIZE] = { +const u32 ofdm_swing_table_new[OFDM_TABLE_SIZE] = { 0x0b40002d, /* 0, -15.0dB */ 0x0c000030, /* 1, -14.5dB*/ 0x0cc00033, /* 2, -14.0dB*/ @@ -192,7 +192,7 @@ u32 ofdm_swing_table_new[OFDM_TABLE_SIZE] = { 0x7f8001fe /* 42, +6.0dB*/ }; -u8 cck_swing_table_ch1_ch14_88f[CCK_TABLE_SIZE_88F][16] = { +const u8 cck_swing_table_ch1_ch14_88f[CCK_TABLE_SIZE_88F][16] = { {0x44, 0x42, 0x3C, 0x33, 0x28, 0x1C, 0x13, 0x0B, 0x05, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /*-16dB*/ {0x48, 0x46, 0x3F, 0x36, 0x2A, 0x1E, 0x14, 0x0B, 0x05, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /*-15.5dB*/ {0x4D, 0x4A, 0x43, 0x39, 0x2C, 0x20, 0x15, 0x0C, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /*-15dB*/ @@ -216,7 +216,7 @@ u8 cck_swing_table_ch1_ch14_88f[CCK_TABLE_SIZE_88F][16] = { {0xD8, 0xD1, 0xBD, 0xA0, 0x7D, 0x5A, 0x3B, 0x22, 0x10, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} /*-6dB*/ }; -u8 cck_swing_table_ch1_ch13_88f[CCK_TABLE_SIZE_88F][16] = { +const u8 cck_swing_table_ch1_ch13_88f[CCK_TABLE_SIZE_88F][16] = { {0x44, 0x42, 0x3C, 0x33, 0x28, 0x1C, 0x13, 0x0B, 0x05, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /*-16dB*/ {0x48, 0x46, 0x3F, 0x36, 0x2A, 0x1E, 0x14, 0x0B, 0x05, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /*-15.5dB*/ {0x4D, 0x4A, 0x43, 0x39, 0x2C, 0x20, 0x15, 0x0C, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /*-15dB*/ @@ -240,7 +240,7 @@ u8 cck_swing_table_ch1_ch13_88f[CCK_TABLE_SIZE_88F][16] = { {0xD8, 0xD1, 0xBD, 0xA0, 0x7D, 0x5A, 0x3B, 0x22, 0x10, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} /*-6dB*/ }; -u8 cck_swing_table_ch14_88f[CCK_TABLE_SIZE_88F][16] = { +const u8 cck_swing_table_ch14_88f[CCK_TABLE_SIZE_88F][16] = { {0x44, 0x42, 0x3C, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /*-16dB*/ {0x48, 0x46, 0x3F, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /*-15.5dB*/ {0x4D, 0x4A, 0x43, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /*-15dB*/ @@ -264,7 +264,7 @@ u8 cck_swing_table_ch14_88f[CCK_TABLE_SIZE_88F][16] = { {0xD8, 0xD1, 0xBD, 0x7D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} /*-6dB*/ }; -u8 cck_swing_table_ch1_ch13_new[CCK_TABLE_SIZE][8] = { +const u8 cck_swing_table_ch1_ch13_new[CCK_TABLE_SIZE][8] = { {0x09, 0x08, 0x07, 0x06, 0x04, 0x03, 0x01, 0x01}, /* 0, -16.0dB*/ {0x09, 0x09, 0x08, 0x06, 0x05, 0x03, 0x01, 0x01}, /* 1, -15.5dB*/ {0x0a, 0x09, 0x08, 0x07, 0x05, 0x03, 0x02, 0x01}, /* 2, -15.0dB*/ @@ -300,7 +300,7 @@ u8 cck_swing_table_ch1_ch13_new[CCK_TABLE_SIZE][8] = { {0x36, 0x35, 0x2e, 0x25, 0x1c, 0x12, 0x09, 0x04} /* 32, +0dB*/ }; -u8 cck_swing_table_ch14_new[CCK_TABLE_SIZE][8] = { +const u8 cck_swing_table_ch14_new[CCK_TABLE_SIZE][8] = { {0x09, 0x08, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00}, /* 0, -16.0dB*/ {0x09, 0x09, 0x08, 0x05, 0x00, 0x00, 0x00, 0x00}, /* 1, -15.5dB*/ {0x0a, 0x09, 0x08, 0x05, 0x00, 0x00, 0x00, 0x00}, /* 2, -15.0dB*/ @@ -336,7 +336,7 @@ u8 cck_swing_table_ch14_new[CCK_TABLE_SIZE][8] = { {0x36, 0x35, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00} /* 32, +0dB */ }; -u32 cck_swing_table_ch1_ch14_8723d[CCK_TABLE_SIZE_8723D] = { +const u32 cck_swing_table_ch1_ch14_8723d[CCK_TABLE_SIZE_8723D] = { 0x0CD, /*0 , -20dB*/ 0x0D9, 0x0E6, @@ -381,7 +381,7 @@ u32 cck_swing_table_ch1_ch14_8723d[CCK_TABLE_SIZE_8723D] = { }; /* JJ ADD 20161014 */ -u32 cck_swing_table_ch1_ch14_8710b[CCK_TABLE_SIZE_8710B] = { +const u32 cck_swing_table_ch1_ch14_8710b[CCK_TABLE_SIZE_8710B] = { 0x0CD, /*0 , -20dB*/ 0x0D9, 0x0E6, @@ -426,7 +426,7 @@ u32 cck_swing_table_ch1_ch14_8710b[CCK_TABLE_SIZE_8710B] = { }; /* Winnita ADD 20171116 PathA 0xAB4[10:0],PathB 0xAB4[21:11]*/ -u32 cck_swing_table_ch1_ch14_8192f[CCK_TABLE_SIZE_8192F] = { +const u32 cck_swing_table_ch1_ch14_8192f[CCK_TABLE_SIZE_8192F] = { 0x0CD, /*0 , -20dB*/ 0x0D9, 0x0E6, @@ -471,7 +471,7 @@ u32 cck_swing_table_ch1_ch14_8192f[CCK_TABLE_SIZE_8192F] = { }; /* Winnita ADD 201805 PathA 0xAB4[10:0]*/ -u32 cck_swing_table_ch1_ch14_8721d[CCK_TABLE_SIZE_8721D] = { +const u32 cck_swing_table_ch1_ch14_8721d[CCK_TABLE_SIZE_8721D] = { 0x0CD, /*0 , -20dB*/ 0x0D9, 0x0E6, @@ -515,7 +515,7 @@ u32 cck_swing_table_ch1_ch14_8721d[CCK_TABLE_SIZE_8721D] = { 0x7FF, }; -u32 cck_swing_table_ch1_ch14_8710c[CCK_TABLE_SIZE_8710C] = { +const u32 cck_swing_table_ch1_ch14_8710c[CCK_TABLE_SIZE_8710C] = { 0x0CD, /*0 , -20dB*/ 0x0D9, 0x0E6, @@ -559,7 +559,7 @@ u32 cck_swing_table_ch1_ch14_8710c[CCK_TABLE_SIZE_8710C] = { 0x7FF, }; -u32 cck_swing_table_03db_ch1_ch14_8710c[CCK_03DB_TABLE_SIZE_8710C] = { +const u32 cck_swing_table_03db_ch1_ch14_8710c[CCK_03DB_TABLE_SIZE_8710C] = { 0x143, /*0 , -4dB*/ 0x14C, /*1 , -3.75dB*/ 0x156, /*2 , -3.5dB*/ @@ -643,7 +643,7 @@ u32 cck_swing_table_03db_ch1_ch14_8710c[CCK_03DB_TABLE_SIZE_8710C] = { 0xCA3 /*80 , +16dB*/ }; -u32 ofdm_swing_table_03DB_8710c[OFDM_03DB_TABLE_SIZE_8710C] = { +const u32 ofdm_swing_table_03DB_8710c[OFDM_03DB_TABLE_SIZE_8710C] = { 0xE4, /*0 , -7dB*/ 0xEB, /*1 , -6.75dB*/ 0xF2, /*2 , -6.5dB*/ @@ -729,7 +729,7 @@ u32 ofdm_swing_table_03DB_8710c[OFDM_03DB_TABLE_SIZE_8710C] = { -u32 tx_scaling_table_jaguar[TXSCALE_TABLE_SIZE] = { +const u32 tx_scaling_table_jaguar[TXSCALE_TABLE_SIZE] = { 0x081, /* 0, -12.0dB*/ 0x088, /* 1, -11.5dB*/ 0x090, /* 2, -11.0dB*/ @@ -792,6 +792,7 @@ get_swing_index( u32 *swing_table; u32 table_value; +#if (RTL8710C_SUPPORT == 1) if (dm->support_ic_type == ODM_RTL8710C) { bb_swing = odm_get_bb_reg(dm, R_0xcc8, 0x000007ff); @@ -800,10 +801,10 @@ get_swing_index( break; } } - +#elif (RTL8195B_SUPPORT == 1) if (dm->support_ic_type == ODM_RTL8195B) { bb_swing = odm_get_bb_reg(dm, R_0xc1c, 0xFFE00000); - swing_table = tx_scaling_table_jaguar; + swing_table = (u32*)tx_scaling_table_jaguar; swing_table_size = TXSCALE_TABLE_SIZE; for (i = 0; i < swing_table_size; i++) { @@ -814,7 +815,7 @@ get_swing_index( break; } } - +#endif return i; } @@ -828,6 +829,7 @@ get_cck_swing_index( u8 i = 0; u32 bb_cck_swing; +#if (RTL8188E_SUPPORT == 1 || RTL8723B_SUPPORT == 1 || RTL8192E_SUPPORT == 1) if (dm->support_ic_type == ODM_RTL8188E || dm->support_ic_type == ODM_RTL8723B || dm->support_ic_type == ODM_RTL8192E) { bb_cck_swing = odm_read_1byte(dm, 0xa22); @@ -836,14 +838,18 @@ get_cck_swing_index( if (bb_cck_swing == cck_swing_table_ch1_ch13_new[i][0]) break; } - } else if (dm->support_ic_type == ODM_RTL8703B) { + } +#elif (RTL8703B_SUPPORT == 1) + if (dm->support_ic_type == ODM_RTL8703B) { bb_cck_swing = odm_read_1byte(dm, 0xa22); for (i = 0; i < CCK_TABLE_SIZE_88F; i++) { if (bb_cck_swing == cck_swing_table_ch1_ch14_88f[i][0]) break; } - } else if (dm->support_ic_type == ODM_RTL8710C) { + } +#elif (RTL8710C_SUPPORT == 1) + if (dm->support_ic_type == ODM_RTL8710C) { bb_cck_swing = odm_get_bb_reg(dm, R_0xab4, 0x7ff); RF_DBG(dm, DBG_RF_TX_PWR_TRACK, @@ -854,10 +860,28 @@ get_cck_swing_index( break; } } +#endif return i; } +s8 +get_txagc_default_index( + void *dm_void +) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + s8 tmp; + + if (dm->support_ic_type == ODM_RTL8814B) { + tmp = (s8)(odm_get_bb_reg(dm, R_0x18a0, 0x7f) & 0xff); + if (tmp & BIT(6)) + tmp = tmp | 0x80; + return tmp; + } else + return 0; +} + void odm_txpowertracking_thermal_meter_init( void *dm_void diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_iot.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_iot.h index 81ddde2d..082e248c 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_iot.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_iot.h @@ -62,26 +62,26 @@ #define IQK_MATRIX_SETTINGS_NUM (14+24+21) /* Channels_2_4G_NUM + Channels_5G_20M_NUM + Channels_5G */ #endif -extern u32 ofdm_swing_table[OFDM_TABLE_SIZE]; -extern u8 cck_swing_table_ch1_ch13[CCK_TABLE_SIZE][8]; -extern u8 cck_swing_table_ch14[CCK_TABLE_SIZE][8]; +extern const u32 ofdm_swing_table[OFDM_TABLE_SIZE]; +extern const u8 cck_swing_table_ch1_ch13[CCK_TABLE_SIZE][8]; +extern const u8 cck_swing_table_ch14[CCK_TABLE_SIZE][8]; -extern u32 ofdm_swing_table_new[OFDM_TABLE_SIZE]; -extern u8 cck_swing_table_ch1_ch13_new[CCK_TABLE_SIZE][8]; -extern u8 cck_swing_table_ch14_new[CCK_TABLE_SIZE][8]; -extern u8 cck_swing_table_ch1_ch14_88f[CCK_TABLE_SIZE_88F][16]; -extern u8 cck_swing_table_ch1_ch13_88f[CCK_TABLE_SIZE_88F][16]; -extern u8 cck_swing_table_ch14_88f[CCK_TABLE_SIZE_88F][16]; -extern u32 cck_swing_table_ch1_ch14_8723d[CCK_TABLE_SIZE_8723D]; +extern const u32 ofdm_swing_table_new[OFDM_TABLE_SIZE]; +extern const u8 cck_swing_table_ch1_ch13_new[CCK_TABLE_SIZE][8]; +extern const u8 cck_swing_table_ch14_new[CCK_TABLE_SIZE][8]; +extern const u8 cck_swing_table_ch1_ch14_88f[CCK_TABLE_SIZE_88F][16]; +extern const u8 cck_swing_table_ch1_ch13_88f[CCK_TABLE_SIZE_88F][16]; +extern const u8 cck_swing_table_ch14_88f[CCK_TABLE_SIZE_88F][16]; +extern const u32 cck_swing_table_ch1_ch14_8723d[CCK_TABLE_SIZE_8723D]; /* JJ ADD 20161014 */ -extern u32 cck_swing_table_ch1_ch14_8710b[CCK_TABLE_SIZE_8710B]; -extern u32 cck_swing_table_ch1_ch14_8192f[CCK_TABLE_SIZE_8192F]; -extern u32 cck_swing_table_ch1_ch14_8721d[CCK_TABLE_SIZE_8721D]; -extern u32 cck_swing_table_ch1_ch14_8710c[CCK_TABLE_SIZE_8710C]; -extern u32 cck_swing_table_03db_ch1_ch14_8710c[CCK_03DB_TABLE_SIZE_8710C]; -extern u32 ofdm_swing_table_03DB_8710c[OFDM_03DB_TABLE_SIZE_8710C]; +extern const u32 cck_swing_table_ch1_ch14_8710b[CCK_TABLE_SIZE_8710B]; +extern const u32 cck_swing_table_ch1_ch14_8192f[CCK_TABLE_SIZE_8192F]; +extern const u32 cck_swing_table_ch1_ch14_8721d[CCK_TABLE_SIZE_8721D]; +extern const u32 cck_swing_table_ch1_ch14_8710c[CCK_TABLE_SIZE_8710C]; +extern const u32 cck_swing_table_03db_ch1_ch14_8710c[CCK_03DB_TABLE_SIZE_8710C]; +extern const u32 ofdm_swing_table_03DB_8710c[OFDM_03DB_TABLE_SIZE_8710C]; -extern u32 tx_scaling_table_jaguar[TXSCALE_TABLE_SIZE]; +extern const u32 tx_scaling_table_jaguar[TXSCALE_TABLE_SIZE]; /* <20121018, Kordan> In case fail to read TxPowerTrack.txt, we use the table of 88E as the default table. */ #if (DM_ODM_SUPPORT_TYPE == ODM_CE) && defined(DM_ODM_CE_MAC80211) @@ -99,7 +99,7 @@ odm_txpowertracking_init( struct iqk_matrix_regs_setting { boolean is_iqk_done; - s32 value[3][iqk_matrix_reg_num]; + s32 value[1][iqk_matrix_reg_num]; boolean is_bw_iqk_result_saved[3]; }; @@ -149,8 +149,10 @@ struct dm_rf_calibration_struct { s8 xtal_offset; s8 xtal_offset_last; -#if (RTL8710B_SUPPORT == 1 || RTL8721D_SUPPORT == 1) +#if (RTL8710B_SUPPORT == 1) struct iqk_matrix_regs_setting iqk_matrix_reg_setting[IQK_MATRIX_SETTINGS_NUM]; +#elif (RTL8721D_SUPPORT == 1) + struct iqk_matrix_regs_setting iqk_matrix_reg_setting[1]; #endif u8 delta_lck; s8 bb_swing_diff_2g, bb_swing_diff_5g; /* Unit: dB */ @@ -175,7 +177,7 @@ struct dm_rf_calibration_struct { u8 delta_swing_table_idx_2gd_n[DELTA_SWINGIDX_SIZE]; #endif -#if (RTL8195B_SUPPORT == 1) +#if (RTL8195B_SUPPORT == 1 || RTL8721D_SUPPORT == 1) u8 delta_swing_table_idx_5ga_p[BAND_NUM][DELTA_SWINGIDX_SIZE]; u8 delta_swing_table_idx_5ga_n[BAND_NUM][DELTA_SWINGIDX_SIZE]; u8 delta_swing_table_idx_5gb_p[BAND_NUM][DELTA_SWINGIDX_SIZE]; @@ -221,6 +223,7 @@ struct dm_rf_calibration_struct { u8 bb_swing_idx_cck_base; u8 default_ofdm_index; u8 default_cck_index; + s8 default_txagc_index; boolean bb_swing_flag_cck; s8 absolute_ofdm_swing_idx[MAX_RF_PATH]; diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_win.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_win.c index 5e15b406..90d2a913 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_win.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_win.c @@ -587,6 +587,22 @@ get_cck_swing_index( return i; } +s8 +get_txagc_default_index( + void *dm_void +) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + s8 tmp; + + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)){ + tmp = (s8)(odm_get_bb_reg(dm, R_0x18a0, 0x7f) & 0xff); + if (tmp & BIT(6)) + tmp = tmp | 0x80; + return tmp; + } else + return 0; +} void odm_txpowertracking_thermal_meter_init( @@ -661,15 +677,16 @@ odm_txpowertracking_thermal_meter_init( cali_info->thermal_value_iqk = hal_data->eeprom_thermal_meter; cali_info->thermal_value_lck = hal_data->eeprom_thermal_meter; -#if (RTL8822C_SUPPORT == 1 || RTL8814B_SUPPORT == 1) - if (dm->support_ic_type == ODM_RTL8822C) { +#if (RTL8822C_SUPPORT == 1 || RTL8814B_SUPPORT == 1 || RTL8723F_SUPPORT == 1 || RTL8814C_SUPPORT == 1) + if (dm->support_ic_type == ODM_RTL8822C || + dm->support_ic_type == ODM_RTL8723F) { cali_info->thermal_value_path[RF_PATH_A] = tssi->thermal[RF_PATH_A]; cali_info->thermal_value_path[RF_PATH_B] = tssi->thermal[RF_PATH_B]; cali_info->thermal_value_iqk = tssi->thermal[RF_PATH_A]; cali_info->thermal_value_lck = tssi->thermal[RF_PATH_A]; } - if (dm->support_ic_type == ODM_RTL8814B) { + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { cali_info->thermal_value_path[RF_PATH_A] = tssi->thermal[RF_PATH_A]; cali_info->thermal_value_path[RF_PATH_B] = tssi->thermal[RF_PATH_B]; cali_info->thermal_value_path[RF_PATH_C] = tssi->thermal[RF_PATH_C]; @@ -702,6 +719,7 @@ odm_txpowertracking_thermal_meter_init( } else { cali_info->default_ofdm_index = (default_swing_index >= TXSCALE_TABLE_SIZE) ? 24 : default_swing_index; cali_info->default_cck_index = 24; + cali_info->default_txagc_index = get_txagc_default_index(dm); } cali_info->default_bb_swing_index_flag = true; } @@ -836,8 +854,14 @@ odm_txpowertracking_direct_call( HAL_DATA_TYPE *hal_data = GET_HAL_DATA(((PADAPTER)adapter)); struct dm_struct *dm = &hal_data->DM_OutSrc; - if (dm->support_ic_type & (ODM_RTL8822C | ODM_RTL8814B)) { -#if (RTL8822C_SUPPORT == 1 || RTL8814B_SUPPORT == 1) + if (dm->support_ic_type & ODM_RTL8723F) { +#if (RTL8723F_SUPPORT == 1) + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[RF]===>%s 8723F TSSI, return!\n", __func__); + return; +#endif + } + if (dm->support_ic_type & (ODM_RTL8822C | ODM_RTL8814B | ODM_RTL8814C)) { +#if (RTL8822C_SUPPORT == 1 || RTL8814B_SUPPORT == 1 || RTL8814C_SUPPORT == 1) odm_txpowertracking_new_callback_thermal_meter(dm); #endif } else @@ -875,15 +899,20 @@ odm_txpowertracking_thermal_meter_check( odm_set_rf_reg(dm, RF_PATH_B, R_0x42, BIT(19), 0x01); odm_set_rf_reg(dm, RF_PATH_B, R_0x42, BIT(19), 0x00); odm_set_rf_reg(dm, RF_PATH_B, R_0x42, BIT(19), 0x01); - } else if (IS_HARDWARE_TYPE_8814B(adapter)) { + } else if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { odm_set_rf_reg(dm, RF_PATH_A, 0x42, BIT(17), 0x1); odm_set_rf_reg(dm, RF_PATH_B, 0x42, BIT(17), 0x1); odm_set_rf_reg(dm, RF_PATH_C, 0x42, BIT(17), 0x1); odm_set_rf_reg(dm, RF_PATH_D, 0x42, BIT(17), 0x1); - } else + } else if (IS_HARDWARE_TYPE_8723F(adapter)) { + odm_set_rf_reg(dm, RF_PATH_A, R_0x42, BIT(16), 0x01); + odm_set_rf_reg(dm, RF_PATH_A, R_0x42, BIT(16), 0x00); + odm_set_rf_reg(dm, RF_PATH_A, R_0x42, BIT(16), 0x01); + } + else PHY_SetRFReg(adapter, RF_PATH_A, RF_T_METER, RFREGOFFSETMASK, 0x60); - if (dm->support_ic_type & ODM_RTL8814B) { + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { ODM_delay_us(300); odm_txpowertracking_direct_call(adapter); tssi->thermal_trigger = 1; @@ -897,7 +926,7 @@ odm_txpowertracking_thermal_meter_check( RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, ("Schedule TxPowerTracking direct call!!\n")); odm_txpowertracking_direct_call(adapter); - if (dm->support_ic_type & ODM_RTL8814B) + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) tssi->thermal_trigger = 0; tm_trigger = 0; diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_win.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_win.h index 24025488..f84d440d 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_win.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_powertracking_win.h @@ -216,6 +216,7 @@ struct dm_rf_calibration_struct { u8 bb_swing_idx_cck_base; u8 default_ofdm_index; u8 default_cck_index; + s8 default_txagc_index; boolean bb_swing_flag_cck; s8 absolute_ofdm_swing_idx[MAX_RF_PATH]; diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_psd.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_psd.c index bab7d09a..16fe9b96 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_psd.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_psd.c @@ -260,18 +260,103 @@ void _halrf_psd_iqk_init(struct dm_struct *dm) odm_set_bb_reg(dm, 0x1bcc, 0x3f, 0x3f); } - -u32 halrf_get_iqk_psd_data( - struct dm_struct *dm, - u32 point) +void _halrf_iqk_psd_init_8723f(void *dm_void, boolean onoff) { + struct dm_struct *dm = (struct dm_struct *)dm_void; + u8 s; + + s = (u8)odm_get_bb_reg(dm, 0x1884, BIT(20)); + + if (onoff) { + /*01_8723F_AFE_ON_BB_settings.txt*/ + odm_set_bb_reg(dm, 0x1c38, MASKDWORD, 0x0); + odm_set_bb_reg(dm, R_0x1830, BIT(30), 0x0); + odm_set_bb_reg(dm, R_0x1860, 0xF0000000, 0xf); + odm_set_bb_reg(dm, R_0x1860, 0x0FFFF000, 0x0041); + odm_set_bb_reg(dm, 0x09f0, 0x0000FFFF, 0xbbbb); + odm_set_bb_reg(dm, 0x1d40, BIT(3), 0x1); + odm_set_bb_reg(dm, 0x1d40, 0x00000007, 0x3); + odm_set_bb_reg(dm, 0x09b4, 0x00000700, 0x3); + odm_set_bb_reg(dm, 0x09b4, 0x00003800, 0x3); + odm_set_bb_reg(dm, 0x09b4, 0x0001C000, 0x3); + odm_set_bb_reg(dm, 0x09b4, 0x000E0000, 0x3); + odm_set_bb_reg(dm, R_0x1c20, BIT(5), 0x1); + odm_set_bb_reg(dm, R_0x1e24, BIT(31), 0x0); + odm_set_bb_reg(dm, R_0x1e28, 0x0000000F, 0x1); + odm_set_bb_reg(dm, R_0x824, 0x000F0000, 0x1); + odm_set_bb_reg(dm, R_0x1cd0, 0xF0000000, 0x7); + odm_set_bb_reg(dm, R_0x2a24, BIT(13), 0x1); + odm_set_bb_reg(dm, R_0x1c68, BIT(24), 0x1); + odm_set_bb_reg(dm, R_0x1864, BIT(31), 0x1); + odm_set_bb_reg(dm, R_0x180c, BIT(27), 0x1); + odm_set_bb_reg(dm, R_0x180c, BIT(30), 0x1); + odm_set_bb_reg(dm, R_0x1e24, BIT(17), 0x1); + odm_set_bb_reg(dm, R_0x1880, BIT(21), 0x0); + odm_set_bb_reg(dm, R_0x1c38, MASKDWORD, 0xffffffff); + /*02_IQK_Preset.txt*/ + //odm_set_rf_reg(dm, RF_PATH_A, 0x05, BIT(0), 0x0); + //odm_set_rf_reg(dm, RF_PATH_B, 0x05, BIT(0), 0x0); + odm_set_bb_reg(dm, R_0x1b08, MASKDWORD, 0x00000080); + //odm_set_bb_reg(dm, R_0x1bd8, MASKDWORD, 0x00000002); + //switch path 10 od 0x1b38 0x1/0x3 [1:0] + if (s == 0) + odm_set_bb_reg(dm, R_0x1b00, MASKDWORD, 0x00000008); + else + odm_set_bb_reg(dm, R_0x1b00, MASKDWORD, 0x0000000a); + + odm_set_bb_reg(dm, R_0x1b18, MASKDWORD, 0x40010101); + odm_set_bb_reg(dm, R_0x1b14, MASKDWORD, 0x40010100); + //odm_set_bb_reg(dm, R_0x1b1c, MASKDWORD, 0xA2103C00); + odm_set_bb_reg(dm, R_0x1b0c, 0x00000C00, 0x2); + odm_set_bb_reg(dm, R_0x1bcc, 0x0000003F, 0x3f); + //DbgPrint("[PSD][8723F]iqkpsd init!\n"); + } else { + /*10_IQK_Reg_PSD_Restore.txt*/ + //odm_set_bb_reg(dm, R_0x1b1c, MASKDWORD, 0xA2103C00); + odm_set_bb_reg(dm, R_0x1b08, MASKDWORD, 0x00000000); + odm_set_bb_reg(dm, R_0x1b38, BIT(0), 0x0); + odm_set_bb_reg(dm, R_0x1bcc, 0x0000003F, 0x0); + //odm_set_rf_reg(dm, RF_PATH_A, 0x05, BIT(0), 0x1); + //odm_set_rf_reg(dm, RF_PATH_B, 0x05, BIT(0), 0x1); + /*11_8723F_restore_AFE_BB_settings.txt*/ + odm_set_bb_reg(dm, 0x1c38, MASKDWORD, 0x0); + odm_set_bb_reg(dm, R_0x1830, BIT(30), 0x1); + odm_set_bb_reg(dm, R_0x1e24, BIT(31), 0x1); + odm_set_bb_reg(dm, R_0x2a24, BIT(13), 0x0); + odm_set_bb_reg(dm, R_0x1c68, BIT(24), 0x0); + odm_set_bb_reg(dm, R_0x1864, BIT(31), 0x0); + odm_set_bb_reg(dm, R_0x180c, BIT(27), 0x0); + odm_set_bb_reg(dm, R_0x180c, BIT(30), 0x0); + odm_set_bb_reg(dm, R_0x1880, BIT(21), 0x0); + odm_set_bb_reg(dm, R_0x1c38, MASKDWORD, 0xffa1005e); + //DbgPrint("[PSD][8723F]iqkpsd resotre!\n"); + } +} + +void _halrf_psd_iqk_init_8814c(struct dm_struct *dm) +{ + odm_set_bb_reg(dm, 0x1b04, MASKDWORD, 0x0); + odm_set_bb_reg(dm, 0x1b08, MASKDWORD, 0x80); + odm_set_bb_reg(dm, 0x1b0c, 0xc00, 0x3); + odm_set_bb_reg(dm, 0x1b14, MASKDWORD, 0x0); + odm_set_bb_reg(dm, 0x1b18, BIT(0), 0x1); + odm_set_bb_reg(dm, 0x1b28, MASKDWORD, 0x0); + odm_set_bb_reg(dm, 0x1b30, MASKDWORD, 0x40000000); + odm_set_bb_reg(dm, 0x1bcc, 0x3f, 0x3f); +} + + +u64 halrf_get_iqk_psd_data(void *dm_void, u32 point) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; struct _hal_rf_ *rf = &(dm->rf_table); struct _halrf_psd_data *psd = &(rf->halrf_psd_data); - u32 psd_val, psd_val1, psd_val2, psd_point, i, delay_time = 0; + u64 psd_val, psd_val1, psd_val2; + u32 psd_point, i, delay_time = 0; #if (DEV_BUS_TYPE == RT_USB_INTERFACE) || (DEV_BUS_TYPE == RT_SDIO_INTERFACE) if (dm->support_interface == ODM_ITRF_USB || dm->support_interface == ODM_ITRF_SDIO) { - if (dm->support_ic_type & ODM_RTL8822C) + if (dm->support_ic_type & (ODM_RTL8822C | ODM_RTL8723F | ODM_RTL8814C)) delay_time = 1000; else delay_time = 0; @@ -279,7 +364,7 @@ u32 halrf_get_iqk_psd_data( #endif #if (DEV_BUS_TYPE == RT_PCI_INTERFACE) if (dm->support_interface == ODM_ITRF_PCIE) { - if (dm->support_ic_type & ODM_RTL8822C) + if (dm->support_ic_type & (ODM_RTL8822C | ODM_RTL8814C)) delay_time = 1000; else delay_time = 150; @@ -320,6 +405,14 @@ u32 halrf_get_iqk_psd_data( psd_val2 = odm_get_bb_reg(dm, R_0x1bfc, MASKDWORD); psd_val = (psd_val1 << 27) + (psd_val2 >> 5); + } else if (dm->support_ic_type & ODM_RTL8723F) { + odm_set_bb_reg(dm, R_0x1bd4, MASKDWORD, 0x00210001); + psd_val1 = odm_get_bb_reg(dm, R_0x1bfc, MASKDWORD); + psd_val1 = (psd_val1 & 0x00FF0000) >> 16; + odm_set_bb_reg(dm, R_0x1bd4, MASKDWORD, 0x00220001); + psd_val2 = odm_get_bb_reg(dm, R_0x1bfc, MASKDWORD); + //psd_val = (psd_val1 << 27) + (psd_val2 >> 5); + psd_val = (psd_val1 << 32) + psd_val2; } else { odm_set_bb_reg(dm, R_0x1bd4, MASKDWORD, 0x00250001); @@ -357,8 +450,8 @@ void halrf_iqk_psd( mode = average >> 16; if (mode == 2) { - if (dm->support_ic_type & ODM_RTL8822C) - average_tmp = 1; + if (dm->support_ic_type & (ODM_RTL8822C | ODM_RTL8723F | ODM_RTL8814C)) + average_tmp = 1; //HW average else { reg_tmp = odm_get_bb_reg(dm, R_0x1b1c, 0x000e0000); if (reg_tmp == 0) @@ -381,63 +474,85 @@ void halrf_iqk_psd( average_tmp = 16; else if (reg_tmp == 5) average_tmp = 32; - odm_set_bb_reg(dm, R_0x1b1c, 0x000e0000, 0x0); + if (!(dm->support_ic_type & ODM_RTL8723F)) + odm_set_bb_reg(dm, R_0x1b1c, 0x000e0000, 0x0); } #if 0 DbgPrint("[PSD]point=%d, start_point=%d, stop_point=%d, average=0x%x, average_tmp=%d, buf_size=%d, mode=%d\n", - point, start_point, stop_point, average, average_tmp, psd->buf_size, mode); + point, start_point, stop_point, average, average_tmp, psd->buf_size, mode); #endif for (i = 0; i < psd->buf_size; i++) psd->psd_data[i] = 0; i = start_point; - while (i < stop_point) { - data_tatal = 0; - if (i >= point) - point_temp = i - point; - else - { - if (dm->support_ic_type & ODM_RTL8814B) - { - s_point_tmp = i - point - 1; - point_temp = s_point_tmp & 0xfff; - } + if (dm->support_ic_type & ODM_RTL8723F) { + while (i < stop_point) { + data_tatal = 0; + + if (i >= point) + point_temp = i - point; else - point_temp = i; - } + point_temp = i + 0xB00; + //-640:0xD80,640:0x280,0x280+0xB00 =0xD80 + //point_temp = i + 0xC00; + //-512:0xE00,512:0x200,0x200+0xC00 = 0xE00 - for (k = 0; k < average_tmp; k++) { data_temp[k] = halrf_get_iqk_psd_data(dm, point_temp); - /*data_tatal = data_tatal + (data_temp[k] * data_temp[k]);*/ - data_tatal = data_tatal + data_temp[k]; + data_tatal = data_temp[k]; + psd->psd_data[j] = (u32)data_tatal; + i++; + j++; + } + } else { + while (i < stop_point) { + data_tatal = 0; + + if (i >= point) + point_temp = i - point; + else + { + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) + { + s_point_tmp = i - point - 1; + point_temp = s_point_tmp & 0xfff; + } + else + point_temp = i; + } + + for (k = 0; k < average_tmp; k++) { + data_temp[k] = halrf_get_iqk_psd_data(dm, point_temp); + /*data_tatal = data_tatal + (data_temp[k] * data_temp[k]);*/ + data_tatal = data_tatal + data_temp[k]; #if 0 - if ((k % 20) == 0) - DbgPrint("\n "); + if ((k % 20) == 0) + DbgPrint("\n "); - DbgPrint("0x%x ", data_temp[k]); + DbgPrint("0x%x ", data_temp[k]); #endif + } + + data_tatal = phydm_division64((data_tatal * 10), average_tmp); + psd->psd_data[j] = (u32)data_tatal; + + i++; + j++; } - data_tatal = phydm_division64((data_tatal * 10), average_tmp); - psd->psd_data[j] = (u32)data_tatal; - - i++; - j++; - } - - if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8198F | ODM_RTL8197G)) - odm_set_bb_reg(dm, R_0x1b1c, 0x000e0000, reg_tmp); - + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8198F | ODM_RTL8197G)) + odm_set_bb_reg(dm, R_0x1b1c, 0x000e0000, reg_tmp); + } + #if 0 DbgPrint("\n [iqk psd]psd result:\n"); for (i = 0; i < psd->buf_size; i++) { if ((i % 20) == 0) - DbgPrint("\n "); + DbgPrint("\n "); DbgPrint("0x%x ", psd->psd_data[i]); } @@ -455,22 +570,58 @@ halrf_psd_init( struct _hal_rf_ *rf = &(dm->rf_table); struct _halrf_psd_data *psd = &(rf->halrf_psd_data); -#if 0 - u32 bb_backup[12]; + u32 bb_backup[18]; + u32 backup_bb_addr[18] = {0}; + u32 bk_counter = 18; + u32 backup_bb_reg[12] = {0x1b04, 0x1b08, 0x1b0c, 0x1b14, 0x1b18, 0x1b1c, 0x1b28, 0x1bcc, 0x1b2c, 0x1b34, 0x1bd4, 0x1bfc}; -#endif + + u32 backup_bb_reg_8723f[11] = {0x09f0, 0x09b4, 0x1c38, 0x1860, 0x1cd0, + 0x824, 0x2a24, 0x1d40, 0x1c20, 0x1880, + 0x180c}; + + u32 backup_bb_reg_8814c[18] = {0x1e24, 0x1cd0, 0x1b08, 0x1d58, 0x1834, + 0x4134, 0x5234, 0x5334, 0x180c, 0x410c, + 0x520c, 0x530c, 0x186c, 0x416c, 0x526c, + 0x536c, 0x1a00, 0x1c38}; + + if (dm->support_ic_type & ODM_RTL8723F) { + odm_move_memory(dm, backup_bb_addr, backup_bb_reg_8723f, + sizeof(backup_bb_addr)); + bk_counter = 11; + } else if (dm->support_ic_type & ODM_RTL8814C) { + odm_move_memory(dm, backup_bb_addr, backup_bb_reg_8814c, + sizeof(backup_bb_addr)); + bk_counter = 18; + } else { + odm_move_memory(dm, backup_bb_addr, backup_bb_reg, + sizeof(backup_bb_addr)); + bk_counter = 12; + } if (psd->psd_progress) { ret_status = RT_STATUS_PENDING; } else { psd->psd_progress = 1; - if (dm->support_ic_type & (ODM_RTL8822C | ODM_RTL8814B | ODM_RTL8198F | ODM_RTL8197G)) { - /*backup_bb_register(dm, bb_backup, backup_bb_reg, 12);*/ + if (dm->support_ic_type & ODM_RTL8723F) { + backup_bb_register(dm, bb_backup, backup_bb_addr, bk_counter); + _halrf_iqk_psd_init_8723f(dm, true); + halrf_iqk_psd(dm, psd->point, psd->start_point, psd->stop_point, psd->average); + _halrf_iqk_psd_init_8723f(dm, false); + restore_bb_register(dm, bb_backup, backup_bb_addr, bk_counter); + } else if (dm->support_ic_type & ODM_RTL8814C) { + backup_bb_register(dm, bb_backup, backup_bb_addr, bk_counter); + _halrf_psd_iqk_init_8814c(dm); + halrf_iqk_psd(dm, psd->point, psd->start_point, psd->stop_point, psd->average); + restore_bb_register(dm, bb_backup, backup_bb_addr, bk_counter); + } else if (dm->support_ic_type & + (ODM_RTL8822C | ODM_RTL8814B | ODM_RTL8198F | ODM_RTL8197G)) { + backup_bb_register(dm, bb_backup, backup_bb_addr, bk_counter); _halrf_psd_iqk_init(dm); halrf_iqk_psd(dm, psd->point, psd->start_point, psd->stop_point, psd->average); - /*restore_bb_register(dm, bb_backup, backup_bb_reg, 12);*/ + restore_bb_register(dm, bb_backup, backup_bb_addr, bk_counter); } else halrf_psd(dm, psd->point, psd->start_point, psd->stop_point, psd->average); psd->psd_progress = 0; diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_psd.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_psd.h index f4a76746..d714a562 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_psd.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_psd.h @@ -31,6 +31,16 @@ u32 halrf_psd_init( void *dm_void); +void +_halrf_iqk_psd_init_8723f( + void *dm_void, + boolean onoff); + +u64 +halrf_get_iqk_psd_data( + void *dm_void, + u32 point); + u32 halrf_psd_query( void *dm_void, diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halhwimg8822c_rf.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halhwimg8822c_rf.c index 3d23b081..1870113a 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halhwimg8822c_rf.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halhwimg8822c_rf.c @@ -23,7 +23,7 @@ * *****************************************************************************/ -/*Image2HeaderVersion: R3 1.5.10*/ +/*Image2HeaderVersion: R3 1.5.12*/ #include "mp_precomp.h" #define ODM_WIN 0x08 @@ -41,81 +41,117 @@ #define D_S_SIZE DELTA_SWINGIDX_SIZE #define D_ST_SIZE DELTA_SWINTSSI_SIZE +#define CUT_DONT_CARE 0xf +#define RFE_DONT_CARE 0xff +#define PARA_IF 0x8 +#define PARA_ELSE_IF 0x9 +#define PARA_ELSE 0xa +#define PARA_END 0xb +#define PARA_CHK 0x4 + + #if (RTL8822C_SUPPORT == 1) static boolean -check_positive(struct dm_struct *dm, - const u32 condition1, - const u32 condition2, - const u32 condition3, - const u32 condition4 -) +halbb_sel_headline(struct dm_struct *dm, u32 *array, u32 array_len, + u8 *headline_size, u8 *headline_idx) { - u32 cond1 = condition1, cond2 = condition2, - cond3 = condition3, cond4 = condition4; + boolean case_match = false; + u32 cut_drv = (u32)dm->cut_version; + u32 rfe_drv = (u32)dm->rfe_type; + u32 cut_para = 0, rfe_para = 0; + u32 compare_target = 0; + u32 cut_max = 0; + u32 i = 0; - u8 cut_version_for_para = - (dm->cut_version == ODM_CUT_A) ? 15 : dm->cut_version; + *headline_idx = 0; + *headline_size = 0; - u8 pkg_type_for_para = - (dm->package_type == 0) ? 15 : dm->package_type; + while ((i + 1) < array_len) { + if ((array[i] >> 28) != 0xf) { + *headline_size = (u8)i; + break; + } + PHYDM_DBG(dm, ODM_COMP_INIT, "array[%02d]=0x%08x, array[%02d]=0x%08x\n", + i, array[i], i+1, array[i+1]); + i += 2; + } - u32 driver1 = cut_version_for_para << 24 | - (dm->support_interface & 0xF0) << 16 | - dm->support_platform << 16 | - pkg_type_for_para << 12 | - (dm->support_interface & 0x0F) << 8 | - dm->rfe_type; + PHYDM_DBG(dm, ODM_COMP_INIT, "headline_size=%d\n", i); - u32 driver2 = (dm->type_glna & 0xFF) << 0 | - (dm->type_gpa & 0xFF) << 8 | - (dm->type_alna & 0xFF) << 16 | - (dm->type_apa & 0xFF) << 24; - - u32 driver3 = 0; - - u32 driver4 = (dm->type_glna & 0xFF00) >> 8 | - (dm->type_gpa & 0xFF00) | - (dm->type_alna & 0xFF00) << 8 | - (dm->type_apa & 0xFF00) << 16; - - PHYDM_DBG(dm, ODM_COMP_INIT, - "===> %s (cond1, cond2, cond3, cond4) = (0x%X 0x%X 0x%X 0x%X)\n", - __func__, cond1, cond2, cond3, cond4); - PHYDM_DBG(dm, ODM_COMP_INIT, - "===> %s (driver1, driver2, driver3, driver4) = (0x%X 0x%X 0x%X 0x%X)\n", - __func__, driver1, driver2, driver3, driver4); - - PHYDM_DBG(dm, ODM_COMP_INIT, - " (Platform, Interface) = (0x%X, 0x%X)\n", - dm->support_platform, dm->support_interface); - PHYDM_DBG(dm, ODM_COMP_INIT, " (RFE, Package) = (0x%X, 0x%X)\n", - dm->rfe_type, dm->package_type); - - /*============== value Defined Check ===============*/ - /*cut version [27:24] need to do value check*/ - if (((cond1 & 0x0F000000) != 0) && - ((cond1 & 0x0F000000) != (driver1 & 0x0F000000))) - return false; - - /*pkg type [15:12] need to do value check*/ - if (((cond1 & 0x0000F000) != 0) && - ((cond1 & 0x0000F000) != (driver1 & 0x0000F000))) - return false; - - /*interface [11:8] need to do value check*/ - if (((cond1 & 0x00000F00) != 0) && - ((cond1 & 0x00000F00) != (driver1 & 0x00000F00))) - return false; - /*=============== Bit Defined Check ================*/ - /* We don't care [31:28] */ - - cond1 &= 0x000000FF; - driver1 &= 0x000000FF; - - if (cond1 == driver1) + if (i == 0) return true; - else - return false; + + /*case_idx:1 {RFE:Match, CUT:Match}*/ + compare_target = ((cut_drv & 0x0f) << 24) | (rfe_drv & 0xff); + PHYDM_DBG(dm, ODM_COMP_INIT, "[1] CHK {RFE:Match, CUT:Match}\n"); + for (i = 0; i < *headline_size; i += 2) { + if ((array[i] & 0x0f0000ff) == compare_target) { + *headline_idx = (u8)(i >> 1); + return true; + } + } + PHYDM_DBG(dm, ODM_COMP_INIT, " fail\n"); + + /*case_idx:2 {RFE:Match, CUT:Dont care}*/ + compare_target = (CUT_DONT_CARE << 24) | (rfe_drv & 0xff); + PHYDM_DBG(dm, ODM_COMP_INIT, "[2] CHK {RFE:Match, CUT:Dont_Care}\n"); + for (i = 0; i < *headline_size; i += 2) { + if ((array[i] & 0x0f0000ff) == compare_target) { + *headline_idx = (u8)(i >> 1); + return true; + } + } + PHYDM_DBG(dm, ODM_COMP_INIT, " fail\n"); + + /*case_idx:3 {RFE:Match, CUT:Max_in_table}*/ + PHYDM_DBG(dm, ODM_COMP_INIT, "[3] CHK {RFE:Match, CUT:Max_in_Table}\n"); + for (i = 0; i < *headline_size; i += 2) { + rfe_para = array[i] & 0xff; + cut_para = (array[i] & 0x0f000000) >> 24; + if (rfe_para == rfe_drv) { + if (cut_para >= cut_max) { + cut_max = cut_para; + *headline_idx = (u8)(i >> 1); + PHYDM_DBG(dm, ODM_COMP_INIT, "cut_max:%d\n", cut_max); + case_match = true; + } + } + } + if (case_match) { + return true; + } + PHYDM_DBG(dm, ODM_COMP_INIT, " fail\n"); + + /*case_idx:4 {RFE:Dont Care, CUT:Max_in_table}*/ + PHYDM_DBG(dm, ODM_COMP_INIT, "[4] CHK {RFE:Dont_Care, CUT:Max_in_Table}\n"); + for (i = 0; i < *headline_size; i += 2) { + rfe_para = array[i] & 0xff; + cut_para = (array[i] & 0x0f000000) >> 24; + if (rfe_para == RFE_DONT_CARE) { + if (cut_para >= cut_max) { + cut_max = cut_para; + *headline_idx = (u8)(i >> 1); + PHYDM_DBG(dm, ODM_COMP_INIT, "cut_max:%d\n", cut_max); + case_match = true; + } + } + } + if (case_match) { + return true; + } + PHYDM_DBG(dm, ODM_COMP_INIT, " fail\n"); + + /*case_idx:5 {RFE:Not_Match, CUT:Not_Match}*/ + PHYDM_DBG(dm, ODM_COMP_INIT, "[5] CHK {RFE:Not_Match, CUT:Not_Match}\n"); + PHYDM_DBG(dm, ODM_COMP_INIT, " all fail\n"); + return false; +} + +static void +halbb_flag_2_default(boolean *is_matched, boolean *find_target) +{ + *is_matched = true; + *find_target = false; } @@ -124,41 +160,99 @@ check_positive(struct dm_struct *dm, ******************************************************************************/ const u32 array_mp_8822c_radioa[] = { + 0xF0FFFF00, 0x00000000, + 0xF0FFFF01, 0x00000001, + 0xF1FFFF01, 0x00000002, + 0xF1FFFF02, 0x00000003, + 0xF2FFFF01, 0x00000004, + 0xF2FFFF02, 0x00000005, + 0xF3FFFF01, 0x00000006, + 0xF3FFFF02, 0x00000007, + 0xF3FFFF03, 0x00000008, + 0xF3FFFF04, 0x00000009, + 0xF3FFFF05, 0x0000000A, + 0xF3FFFF06, 0x0000000B, + 0xF3FFFF15, 0x0000000C, + 0xF3FFFF16, 0x0000000D, + 0xF4FFFF01, 0x0000000E, + 0xF4FFFF02, 0x0000000F, + 0xF4FFFF03, 0x00000010, + 0xF4FFFF04, 0x00000011, + 0xF4FFFF05, 0x00000012, + 0xF4FFFF06, 0x00000013, + 0xF4FFFF15, 0x00000014, + 0xF4FFFF16, 0x00000015, + 0xF5FFFF01, 0x00000016, + 0xF5FFFF02, 0x00000017, + 0xF5FFFF03, 0x00000018, + 0xF5FFFF04, 0x00000019, + 0xF5FFFF05, 0x0000001A, + 0xF5FFFF06, 0x0000001B, + 0xF5FFFF15, 0x0000001C, + 0xF5FFFF16, 0x0000001D, 0x000, 0x00030000, 0x018, 0x00013124, 0x093, 0x0008483F, 0x0DE, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x08E, 0x000A5540, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x08E, 0x000A5540, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000B9140, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000B9140, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000A5540, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000A5540, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000A5540, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000A5540, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000A5540, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000A5540, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000A5540, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000A5540, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000A5540, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000A5540, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000A5540, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000A5540, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000A5540, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x08E, 0x000A5540, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x08E, 0x000A5540, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x08E, 0x000A5540, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x08E, 0x000A5540, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x08E, 0x000A5540, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x08E, 0x000A5540, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x08E, 0x000A5540, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x08E, 0x000A5540, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x08E, 0x000A5540, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x08E, 0x000A5540, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x08E, 0x000A5540, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x08E, 0x000A5540, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000A5540, 0xA0000000, 0x00000000, 0x08E, 0x000A5540, @@ -166,42 +260,88 @@ const u32 array_mp_8822c_radioa[] = { 0x081, 0x0000FC01, 0x081, 0x0002FC01, 0x081, 0x0003FC01, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, 0x085, 0x0006A06C, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, 0x085, 0x0006A06C, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x085, 0x0006A06C, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x085, 0x0006A06C, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x085, 0x0006A06C, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x085, 0x0006A06C, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x085, 0x0006A06C, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x085, 0x0006A06C, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x085, 0x0006A06C, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x085, 0x0006A06C, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x085, 0x0006A06C, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x085, 0x0006A06C, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x085, 0x0006A06C, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x085, 0x0006A06C, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x085, 0x0006A06C, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x085, 0x0006A06C, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x085, 0x0006A06C, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x085, 0x0006A06C, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x085, 0x0006A06C, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x085, 0x0006A06C, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x085, 0x0006A06C, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x085, 0x0006A06C, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x085, 0x0006A06C, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x085, 0x0006A06C, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x085, 0x0006A06C, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x085, 0x0006A06C, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x085, 0x0006A06C, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x085, 0x0006A06C, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x085, 0x0006A06C, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x085, 0x0006A06C, 0xA0000000, 0x00000000, 0x085, 0x0006A06C, 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x0EE, 0x00000010, + 0x033, 0x00000001, + 0x03F, 0x0000003F, + 0x033, 0x00000001, + 0x03F, 0x0000003F, + 0x033, 0x00000002, + 0x03F, 0x0000003F, + 0x0EE, 0x00000000, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0EE, 0x00000010, + 0x033, 0x00000001, + 0x03F, 0x0000003F, + 0x033, 0x00000001, + 0x03F, 0x0000003F, + 0x033, 0x00000002, + 0x03F, 0x0000003F, + 0x0EE, 0x00000000, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -210,7 +350,7 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -219,7 +359,7 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -228,7 +368,7 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -237,7 +377,7 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -246,7 +386,7 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -255,7 +395,7 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -264,7 +404,7 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -273,7 +413,7 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -282,7 +422,7 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -291,7 +431,7 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -300,7 +440,7 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -309,7 +449,7 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -318,7 +458,7 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -327,7 +467,7 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -336,7 +476,115 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x0EE, 0x00000010, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000002, + 0x03F, 0x0000002A, + 0x0EE, 0x00000000, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x0EE, 0x00000010, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000002, + 0x03F, 0x0000002A, + 0x0EE, 0x00000000, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x0EE, 0x00000010, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000002, + 0x03F, 0x0000002A, + 0x0EE, 0x00000000, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x0EE, 0x00000010, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000002, + 0x03F, 0x0000002A, + 0x0EE, 0x00000000, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x0EE, 0x00000010, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000002, + 0x03F, 0x0000002A, + 0x0EE, 0x00000000, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0EE, 0x00000010, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000002, + 0x03F, 0x0000002A, + 0x0EE, 0x00000000, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x0EE, 0x00000010, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000002, + 0x03F, 0x0000002A, + 0x0EE, 0x00000000, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x0EE, 0x00000010, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000002, + 0x03F, 0x0000002A, + 0x0EE, 0x00000000, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x0EE, 0x00000010, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000002, + 0x03F, 0x0000002A, + 0x0EE, 0x00000000, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x0EE, 0x00000010, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000002, + 0x03F, 0x0000002A, + 0x0EE, 0x00000000, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x0EE, 0x00000010, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000002, + 0x03F, 0x0000002A, + 0x0EE, 0x00000000, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x0EE, 0x00000010, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000002, + 0x03F, 0x0000002A, + 0x0EE, 0x00000000, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -355,7 +603,59 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x0000003F, 0x0EE, 0x00000000, 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773E8, + 0x033, 0x0000000E, + 0x03F, 0x000FF3A0, + 0x033, 0x0000000D, + 0x03F, 0x00000380, + 0x033, 0x0000000C, + 0x03F, 0x000FF380, + 0x033, 0x0000000B, + 0x03F, 0x00000300, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000280, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773E8, + 0x033, 0x0000000E, + 0x03F, 0x000FF3A0, + 0x033, 0x0000000D, + 0x03F, 0x00000380, + 0x033, 0x0000000C, + 0x03F, 0x000FF380, + 0x033, 0x0000000B, + 0x03F, 0x00000300, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000280, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00010000, 0x033, 0x0000000F, 0x03F, 0x000773C0, @@ -381,7 +681,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000004, 0x03F, 0x00000040, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00010000, 0x033, 0x0000000F, 0x03F, 0x000773C0, @@ -407,7 +707,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000004, 0x03F, 0x00000040, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00010000, 0x033, 0x0000000F, 0x03F, 0x000773C0, @@ -433,7 +733,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000004, 0x03F, 0x00000040, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00010000, 0x033, 0x0000000F, 0x03F, 0x000773C0, @@ -459,7 +759,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000004, 0x03F, 0x00000040, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00010000, 0x033, 0x0000000F, 0x03F, 0x000773C0, @@ -485,7 +785,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000004, 0x03F, 0x00000040, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00010000, 0x033, 0x0000000F, 0x03F, 0x000773C0, @@ -511,7 +811,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000004, 0x03F, 0x00000040, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00010000, 0x033, 0x0000000F, 0x03F, 0x000773C0, @@ -537,7 +837,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000004, 0x03F, 0x00000040, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00010000, 0x033, 0x0000000F, 0x03F, 0x000773C0, @@ -563,59 +863,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000004, 0x03F, 0x00000040, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x0EF, 0x00010000, - 0x033, 0x0000000F, - 0x03F, 0x000773C0, - 0x033, 0x0000000E, - 0x03F, 0x000FF3C0, - 0x033, 0x0000000D, - 0x03F, 0x000773E8, - 0x033, 0x0000000C, - 0x03F, 0x000FF3E8, - 0x033, 0x0000000B, - 0x03F, 0x00000287, - 0x033, 0x0000000A, - 0x03F, 0x000002A8, - 0x033, 0x00000009, - 0x03F, 0x00000207, - 0x033, 0x00000008, - 0x03F, 0x000FF280, - 0x033, 0x00000007, - 0x03F, 0x00000200, - 0x033, 0x00000006, - 0x03F, 0x000001C0, - 0x033, 0x00000005, - 0x03F, 0x00000180, - 0x033, 0x00000004, - 0x03F, 0x00000040, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x0EF, 0x00010000, - 0x033, 0x0000000F, - 0x03F, 0x000773C0, - 0x033, 0x0000000E, - 0x03F, 0x000FF3C0, - 0x033, 0x0000000D, - 0x03F, 0x000773E8, - 0x033, 0x0000000C, - 0x03F, 0x000FF3E8, - 0x033, 0x0000000B, - 0x03F, 0x00000287, - 0x033, 0x0000000A, - 0x03F, 0x000002A8, - 0x033, 0x00000009, - 0x03F, 0x00000207, - 0x033, 0x00000008, - 0x03F, 0x000FF280, - 0x033, 0x00000007, - 0x03F, 0x00000200, - 0x033, 0x00000006, - 0x03F, 0x000001C0, - 0x033, 0x00000005, - 0x03F, 0x00000180, - 0x033, 0x00000004, - 0x03F, 0x00000040, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00010000, 0x033, 0x0000000F, 0x03F, 0x000773C0, @@ -641,7 +889,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000004, 0x03F, 0x00000040, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00010000, 0x033, 0x0000000F, 0x03F, 0x000773C0, @@ -667,7 +915,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000004, 0x03F, 0x00000040, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00010000, 0x033, 0x0000000F, 0x03F, 0x000773C0, @@ -693,7 +941,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000004, 0x03F, 0x00000040, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00010000, 0x033, 0x0000000F, 0x03F, 0x000773C0, @@ -719,7 +967,59 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000004, 0x03F, 0x00000040, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773C0, + 0x033, 0x0000000E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000000D, + 0x03F, 0x000773E8, + 0x033, 0x0000000C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000000B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000280, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773C0, + 0x033, 0x0000000E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000000D, + 0x03F, 0x000773E8, + 0x033, 0x0000000C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000000B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000280, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00010000, 0x033, 0x0000000F, 0x03F, 0x000773C0, @@ -745,7 +1045,319 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000004, 0x03F, 0x00000040, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773C0, + 0x033, 0x0000000E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000000D, + 0x03F, 0x000773E8, + 0x033, 0x0000000C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000000B, + 0x03F, 0x00000287, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000207, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773C0, + 0x033, 0x0000000E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000000D, + 0x03F, 0x000773E8, + 0x033, 0x0000000C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000000B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000280, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773C0, + 0x033, 0x0000000E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000000D, + 0x03F, 0x000773E8, + 0x033, 0x0000000C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000000B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000280, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773C0, + 0x033, 0x0000000E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000000D, + 0x03F, 0x000773E8, + 0x033, 0x0000000C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000000B, + 0x03F, 0x00000287, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000207, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773C0, + 0x033, 0x0000000E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000000D, + 0x03F, 0x000773E8, + 0x033, 0x0000000C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000000B, + 0x03F, 0x00000287, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000207, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773C0, + 0x033, 0x0000000E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000000D, + 0x03F, 0x000773E8, + 0x033, 0x0000000C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000000B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000280, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773C0, + 0x033, 0x0000000E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000000D, + 0x03F, 0x000773E8, + 0x033, 0x0000000C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000000B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000280, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773C0, + 0x033, 0x0000000E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000000D, + 0x03F, 0x000773E8, + 0x033, 0x0000000C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000000B, + 0x03F, 0x00000287, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000207, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773C0, + 0x033, 0x0000000E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000000D, + 0x03F, 0x000773E8, + 0x033, 0x0000000C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000000B, + 0x03F, 0x00000287, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000207, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773C0, + 0x033, 0x0000000E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000000D, + 0x03F, 0x000773E8, + 0x033, 0x0000000C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000000B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000280, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773C0, + 0x033, 0x0000000E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000000D, + 0x03F, 0x000773E8, + 0x033, 0x0000000C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000000B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000280, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773C0, + 0x033, 0x0000000E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000000D, + 0x03F, 0x000773E8, + 0x033, 0x0000000C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000000B, + 0x03F, 0x00000287, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000207, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00010000, 0x033, 0x0000000F, 0x03F, 0x000773C0, @@ -800,7 +1412,57 @@ const u32 array_mp_8822c_radioa[] = { 0xB0000000, 0x00000000, 0x033, 0x00000003, 0x03F, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773E8, + 0x033, 0x0000001E, + 0x03F, 0x000FF3A0, + 0x033, 0x0000001D, + 0x03F, 0x00000380, + 0x033, 0x0000001C, + 0x03F, 0x000FF380, + 0x033, 0x0000001B, + 0x03F, 0x00000300, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000280, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773E8, + 0x033, 0x0000001E, + 0x03F, 0x000FF3A0, + 0x033, 0x0000001D, + 0x03F, 0x00000380, + 0x033, 0x0000001C, + 0x03F, 0x000FF380, + 0x033, 0x0000001B, + 0x03F, 0x00000300, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000280, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000001F, 0x03F, 0x000773C0, 0x033, 0x0000001E, @@ -825,7 +1487,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000014, 0x03F, 0x00000040, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000001F, 0x03F, 0x000773C0, 0x033, 0x0000001E, @@ -850,7 +1512,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000014, 0x03F, 0x00000040, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000001F, 0x03F, 0x000773C0, 0x033, 0x0000001E, @@ -875,7 +1537,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000014, 0x03F, 0x00000040, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000001F, 0x03F, 0x000773C0, 0x033, 0x0000001E, @@ -900,7 +1562,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000014, 0x03F, 0x00000040, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000001F, 0x03F, 0x000773C0, 0x033, 0x0000001E, @@ -925,7 +1587,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000014, 0x03F, 0x00000040, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000001F, 0x03F, 0x000773C0, 0x033, 0x0000001E, @@ -950,7 +1612,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000014, 0x03F, 0x00000040, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000001F, 0x03F, 0x000773C0, 0x033, 0x0000001E, @@ -975,7 +1637,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000014, 0x03F, 0x00000040, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000001F, 0x03F, 0x000773C0, 0x033, 0x0000001E, @@ -1000,57 +1662,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000014, 0x03F, 0x00000040, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x033, 0x0000001F, - 0x03F, 0x000773C0, - 0x033, 0x0000001E, - 0x03F, 0x000FF3C0, - 0x033, 0x0000001D, - 0x03F, 0x000773E8, - 0x033, 0x0000001C, - 0x03F, 0x000FF3E8, - 0x033, 0x0000001B, - 0x03F, 0x00000287, - 0x033, 0x0000001A, - 0x03F, 0x000002A8, - 0x033, 0x00000019, - 0x03F, 0x00000207, - 0x033, 0x00000018, - 0x03F, 0x000FF280, - 0x033, 0x00000017, - 0x03F, 0x00000200, - 0x033, 0x00000016, - 0x03F, 0x000001C0, - 0x033, 0x00000015, - 0x03F, 0x00000180, - 0x033, 0x00000014, - 0x03F, 0x00000040, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x033, 0x0000001F, - 0x03F, 0x000773C0, - 0x033, 0x0000001E, - 0x03F, 0x000FF3C0, - 0x033, 0x0000001D, - 0x03F, 0x000773E8, - 0x033, 0x0000001C, - 0x03F, 0x000FF3E8, - 0x033, 0x0000001B, - 0x03F, 0x00000287, - 0x033, 0x0000001A, - 0x03F, 0x000002A8, - 0x033, 0x00000019, - 0x03F, 0x00000207, - 0x033, 0x00000018, - 0x03F, 0x000FF280, - 0x033, 0x00000017, - 0x03F, 0x00000200, - 0x033, 0x00000016, - 0x03F, 0x000001C0, - 0x033, 0x00000015, - 0x03F, 0x00000180, - 0x033, 0x00000014, - 0x03F, 0x00000040, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000001F, 0x03F, 0x000773C0, 0x033, 0x0000001E, @@ -1075,7 +1687,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000014, 0x03F, 0x00000040, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000001F, 0x03F, 0x000773C0, 0x033, 0x0000001E, @@ -1100,7 +1712,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000014, 0x03F, 0x00000040, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000001F, 0x03F, 0x000773C0, 0x033, 0x0000001E, @@ -1125,7 +1737,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000014, 0x03F, 0x00000040, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000001F, 0x03F, 0x000773C0, 0x033, 0x0000001E, @@ -1150,7 +1762,57 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000014, 0x03F, 0x00000040, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773C0, + 0x033, 0x0000001E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000001D, + 0x03F, 0x000773E8, + 0x033, 0x0000001C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000001B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000280, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773C0, + 0x033, 0x0000001E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000001D, + 0x03F, 0x000773E8, + 0x033, 0x0000001C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000001B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000280, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000001F, 0x03F, 0x000773C0, 0x033, 0x0000001E, @@ -1175,7 +1837,307 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000014, 0x03F, 0x00000040, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773C0, + 0x033, 0x0000001E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000001D, + 0x03F, 0x000773E8, + 0x033, 0x0000001C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000001B, + 0x03F, 0x00000287, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000207, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773C0, + 0x033, 0x0000001E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000001D, + 0x03F, 0x000773E8, + 0x033, 0x0000001C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000001B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000280, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773C0, + 0x033, 0x0000001E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000001D, + 0x03F, 0x000773E8, + 0x033, 0x0000001C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000001B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000280, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773C0, + 0x033, 0x0000001E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000001D, + 0x03F, 0x000773E8, + 0x033, 0x0000001C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000001B, + 0x03F, 0x00000287, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000207, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773C0, + 0x033, 0x0000001E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000001D, + 0x03F, 0x000773E8, + 0x033, 0x0000001C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000001B, + 0x03F, 0x00000287, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000207, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773C0, + 0x033, 0x0000001E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000001D, + 0x03F, 0x000773E8, + 0x033, 0x0000001C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000001B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000280, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773C0, + 0x033, 0x0000001E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000001D, + 0x03F, 0x000773E8, + 0x033, 0x0000001C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000001B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000280, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773C0, + 0x033, 0x0000001E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000001D, + 0x03F, 0x000773E8, + 0x033, 0x0000001C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000001B, + 0x03F, 0x00000287, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000207, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773C0, + 0x033, 0x0000001E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000001D, + 0x03F, 0x000773E8, + 0x033, 0x0000001C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000001B, + 0x03F, 0x00000287, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000207, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773C0, + 0x033, 0x0000001E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000001D, + 0x03F, 0x000773E8, + 0x033, 0x0000001C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000001B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000280, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773C0, + 0x033, 0x0000001E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000001D, + 0x03F, 0x000773E8, + 0x033, 0x0000001C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000001B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000280, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773C0, + 0x033, 0x0000001E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000001D, + 0x03F, 0x000773E8, + 0x033, 0x0000001C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000001B, + 0x03F, 0x00000287, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000207, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000001F, 0x03F, 0x000773C0, 0x033, 0x0000001E, @@ -1228,7 +2190,57 @@ const u32 array_mp_8822c_radioa[] = { 0xB0000000, 0x00000000, 0x033, 0x00000013, 0x03F, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773E8, + 0x033, 0x0000002E, + 0x03F, 0x000FF3A0, + 0x033, 0x0000002D, + 0x03F, 0x00000380, + 0x033, 0x0000002C, + 0x03F, 0x000FF380, + 0x033, 0x0000002B, + 0x03F, 0x00000300, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000280, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773E8, + 0x033, 0x0000002E, + 0x03F, 0x000FF3A0, + 0x033, 0x0000002D, + 0x03F, 0x00000380, + 0x033, 0x0000002C, + 0x03F, 0x000FF380, + 0x033, 0x0000002B, + 0x03F, 0x00000300, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000280, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000002F, 0x03F, 0x000773C0, 0x033, 0x0000002E, @@ -1253,7 +2265,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000024, 0x03F, 0x00000040, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000002F, 0x03F, 0x000773C0, 0x033, 0x0000002E, @@ -1278,7 +2290,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000024, 0x03F, 0x00000040, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000002F, 0x03F, 0x000773C0, 0x033, 0x0000002E, @@ -1303,7 +2315,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000024, 0x03F, 0x00000040, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000002F, 0x03F, 0x000773C0, 0x033, 0x0000002E, @@ -1328,7 +2340,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000024, 0x03F, 0x00000040, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000002F, 0x03F, 0x000773C0, 0x033, 0x0000002E, @@ -1353,7 +2365,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000024, 0x03F, 0x00000040, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000002F, 0x03F, 0x000773C0, 0x033, 0x0000002E, @@ -1378,7 +2390,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000024, 0x03F, 0x00000040, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000002F, 0x03F, 0x000773C0, 0x033, 0x0000002E, @@ -1403,7 +2415,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000024, 0x03F, 0x00000040, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000002F, 0x03F, 0x000773C0, 0x033, 0x0000002E, @@ -1428,57 +2440,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000024, 0x03F, 0x00000040, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x033, 0x0000002F, - 0x03F, 0x000773C0, - 0x033, 0x0000002E, - 0x03F, 0x000FF3C0, - 0x033, 0x0000002D, - 0x03F, 0x000773E8, - 0x033, 0x0000002C, - 0x03F, 0x000FF3E8, - 0x033, 0x0000002B, - 0x03F, 0x00000287, - 0x033, 0x0000002A, - 0x03F, 0x000002A8, - 0x033, 0x00000029, - 0x03F, 0x00000207, - 0x033, 0x00000028, - 0x03F, 0x000FF280, - 0x033, 0x00000027, - 0x03F, 0x00000200, - 0x033, 0x00000026, - 0x03F, 0x000001C0, - 0x033, 0x00000025, - 0x03F, 0x00000180, - 0x033, 0x00000024, - 0x03F, 0x00000040, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x033, 0x0000002F, - 0x03F, 0x000773C0, - 0x033, 0x0000002E, - 0x03F, 0x000FF3C0, - 0x033, 0x0000002D, - 0x03F, 0x000773E8, - 0x033, 0x0000002C, - 0x03F, 0x000FF3E8, - 0x033, 0x0000002B, - 0x03F, 0x00000287, - 0x033, 0x0000002A, - 0x03F, 0x000002A8, - 0x033, 0x00000029, - 0x03F, 0x00000207, - 0x033, 0x00000028, - 0x03F, 0x000FF280, - 0x033, 0x00000027, - 0x03F, 0x00000200, - 0x033, 0x00000026, - 0x03F, 0x000001C0, - 0x033, 0x00000025, - 0x03F, 0x00000180, - 0x033, 0x00000024, - 0x03F, 0x00000040, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000002F, 0x03F, 0x000773C0, 0x033, 0x0000002E, @@ -1503,7 +2465,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000024, 0x03F, 0x00000040, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000002F, 0x03F, 0x000773C0, 0x033, 0x0000002E, @@ -1528,7 +2490,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000024, 0x03F, 0x00000040, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000002F, 0x03F, 0x000773C0, 0x033, 0x0000002E, @@ -1553,7 +2515,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000024, 0x03F, 0x00000040, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000002F, 0x03F, 0x000773C0, 0x033, 0x0000002E, @@ -1578,7 +2540,57 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000024, 0x03F, 0x00000040, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773C0, + 0x033, 0x0000002E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000002D, + 0x03F, 0x000773E8, + 0x033, 0x0000002C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000002B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000280, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773C0, + 0x033, 0x0000002E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000002D, + 0x03F, 0x000773E8, + 0x033, 0x0000002C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000002B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000280, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000002F, 0x03F, 0x000773C0, 0x033, 0x0000002E, @@ -1603,7 +2615,307 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000024, 0x03F, 0x00000040, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773C0, + 0x033, 0x0000002E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000002D, + 0x03F, 0x000773E8, + 0x033, 0x0000002C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000002B, + 0x03F, 0x00000287, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000207, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773C0, + 0x033, 0x0000002E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000002D, + 0x03F, 0x000773E8, + 0x033, 0x0000002C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000002B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000280, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773C0, + 0x033, 0x0000002E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000002D, + 0x03F, 0x000773E8, + 0x033, 0x0000002C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000002B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000280, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773C0, + 0x033, 0x0000002E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000002D, + 0x03F, 0x000773E8, + 0x033, 0x0000002C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000002B, + 0x03F, 0x00000287, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000207, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773C0, + 0x033, 0x0000002E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000002D, + 0x03F, 0x000773E8, + 0x033, 0x0000002C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000002B, + 0x03F, 0x00000287, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000207, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773C0, + 0x033, 0x0000002E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000002D, + 0x03F, 0x000773E8, + 0x033, 0x0000002C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000002B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000280, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773C0, + 0x033, 0x0000002E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000002D, + 0x03F, 0x000773E8, + 0x033, 0x0000002C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000002B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000280, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773C0, + 0x033, 0x0000002E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000002D, + 0x03F, 0x000773E8, + 0x033, 0x0000002C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000002B, + 0x03F, 0x00000287, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000207, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773C0, + 0x033, 0x0000002E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000002D, + 0x03F, 0x000773E8, + 0x033, 0x0000002C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000002B, + 0x03F, 0x00000287, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000207, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773C0, + 0x033, 0x0000002E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000002D, + 0x03F, 0x000773E8, + 0x033, 0x0000002C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000002B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000280, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773C0, + 0x033, 0x0000002E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000002D, + 0x03F, 0x000773E8, + 0x033, 0x0000002C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000002B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000280, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773C0, + 0x033, 0x0000002E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000002D, + 0x03F, 0x000773E8, + 0x033, 0x0000002C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000002B, + 0x03F, 0x00000287, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000207, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000002F, 0x03F, 0x000773C0, 0x033, 0x0000002E, @@ -1656,7 +2968,57 @@ const u32 array_mp_8822c_radioa[] = { 0xB0000000, 0x00000000, 0x033, 0x00000023, 0x03F, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773E8, + 0x033, 0x0000003E, + 0x03F, 0x000FF3A0, + 0x033, 0x0000003D, + 0x03F, 0x00000380, + 0x033, 0x0000003C, + 0x03F, 0x000FF380, + 0x033, 0x0000003B, + 0x03F, 0x00000300, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000280, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773E8, + 0x033, 0x0000003E, + 0x03F, 0x000FF3A0, + 0x033, 0x0000003D, + 0x03F, 0x00000380, + 0x033, 0x0000003C, + 0x03F, 0x000FF380, + 0x033, 0x0000003B, + 0x03F, 0x00000300, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000280, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000003F, 0x03F, 0x000773C0, 0x033, 0x0000003E, @@ -1681,7 +3043,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000034, 0x03F, 0x00000040, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000003F, 0x03F, 0x000773C0, 0x033, 0x0000003E, @@ -1706,7 +3068,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000034, 0x03F, 0x00000040, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000003F, 0x03F, 0x000773C0, 0x033, 0x0000003E, @@ -1731,7 +3093,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000034, 0x03F, 0x00000040, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000003F, 0x03F, 0x000773C0, 0x033, 0x0000003E, @@ -1756,7 +3118,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000034, 0x03F, 0x00000040, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000003F, 0x03F, 0x000773C0, 0x033, 0x0000003E, @@ -1781,7 +3143,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000034, 0x03F, 0x00000040, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000003F, 0x03F, 0x000773C0, 0x033, 0x0000003E, @@ -1806,7 +3168,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000034, 0x03F, 0x00000040, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000003F, 0x03F, 0x000773C0, 0x033, 0x0000003E, @@ -1831,7 +3193,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000034, 0x03F, 0x00000040, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000003F, 0x03F, 0x000773C0, 0x033, 0x0000003E, @@ -1856,57 +3218,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000034, 0x03F, 0x00000040, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x033, 0x0000003F, - 0x03F, 0x000773C0, - 0x033, 0x0000003E, - 0x03F, 0x000FF3C0, - 0x033, 0x0000003D, - 0x03F, 0x000773E8, - 0x033, 0x0000003C, - 0x03F, 0x000FF3E8, - 0x033, 0x0000003B, - 0x03F, 0x00000287, - 0x033, 0x0000003A, - 0x03F, 0x000002A8, - 0x033, 0x00000039, - 0x03F, 0x00000207, - 0x033, 0x00000038, - 0x03F, 0x000FF280, - 0x033, 0x00000037, - 0x03F, 0x00000200, - 0x033, 0x00000036, - 0x03F, 0x000001C0, - 0x033, 0x00000035, - 0x03F, 0x00000180, - 0x033, 0x00000034, - 0x03F, 0x00000040, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x033, 0x0000003F, - 0x03F, 0x000773C0, - 0x033, 0x0000003E, - 0x03F, 0x000FF3C0, - 0x033, 0x0000003D, - 0x03F, 0x000773E8, - 0x033, 0x0000003C, - 0x03F, 0x000FF3E8, - 0x033, 0x0000003B, - 0x03F, 0x00000287, - 0x033, 0x0000003A, - 0x03F, 0x000002A8, - 0x033, 0x00000039, - 0x03F, 0x00000207, - 0x033, 0x00000038, - 0x03F, 0x000FF280, - 0x033, 0x00000037, - 0x03F, 0x00000200, - 0x033, 0x00000036, - 0x03F, 0x000001C0, - 0x033, 0x00000035, - 0x03F, 0x00000180, - 0x033, 0x00000034, - 0x03F, 0x00000040, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000003F, 0x03F, 0x000773C0, 0x033, 0x0000003E, @@ -1931,7 +3243,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000034, 0x03F, 0x00000040, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000003F, 0x03F, 0x000773C0, 0x033, 0x0000003E, @@ -1956,7 +3268,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000034, 0x03F, 0x00000040, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000003F, 0x03F, 0x000773C0, 0x033, 0x0000003E, @@ -1981,7 +3293,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000034, 0x03F, 0x00000040, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000003F, 0x03F, 0x000773C0, 0x033, 0x0000003E, @@ -2006,7 +3318,57 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000034, 0x03F, 0x00000040, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773C0, + 0x033, 0x0000003E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000003D, + 0x03F, 0x000773E8, + 0x033, 0x0000003C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000003B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000280, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773C0, + 0x033, 0x0000003E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000003D, + 0x03F, 0x000773E8, + 0x033, 0x0000003C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000003B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000280, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000003F, 0x03F, 0x000773C0, 0x033, 0x0000003E, @@ -2031,7 +3393,307 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000034, 0x03F, 0x00000040, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773C0, + 0x033, 0x0000003E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000003D, + 0x03F, 0x000773E8, + 0x033, 0x0000003C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000003B, + 0x03F, 0x00000287, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000207, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773C0, + 0x033, 0x0000003E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000003D, + 0x03F, 0x000773E8, + 0x033, 0x0000003C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000003B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000280, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773C0, + 0x033, 0x0000003E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000003D, + 0x03F, 0x000773E8, + 0x033, 0x0000003C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000003B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000280, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773C0, + 0x033, 0x0000003E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000003D, + 0x03F, 0x000773E8, + 0x033, 0x0000003C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000003B, + 0x03F, 0x00000287, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000207, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773C0, + 0x033, 0x0000003E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000003D, + 0x03F, 0x000773E8, + 0x033, 0x0000003C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000003B, + 0x03F, 0x00000287, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000207, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773C0, + 0x033, 0x0000003E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000003D, + 0x03F, 0x000773E8, + 0x033, 0x0000003C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000003B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000280, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773C0, + 0x033, 0x0000003E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000003D, + 0x03F, 0x000773E8, + 0x033, 0x0000003C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000003B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000280, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773C0, + 0x033, 0x0000003E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000003D, + 0x03F, 0x000773E8, + 0x033, 0x0000003C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000003B, + 0x03F, 0x00000287, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000207, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773C0, + 0x033, 0x0000003E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000003D, + 0x03F, 0x000773E8, + 0x033, 0x0000003C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000003B, + 0x03F, 0x00000287, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000207, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773C0, + 0x033, 0x0000003E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000003D, + 0x03F, 0x000773E8, + 0x033, 0x0000003C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000003B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000280, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773C0, + 0x033, 0x0000003E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000003D, + 0x03F, 0x000773E8, + 0x033, 0x0000003C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000003B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000280, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773C0, + 0x033, 0x0000003E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000003D, + 0x03F, 0x000773E8, + 0x033, 0x0000003C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000003B, + 0x03F, 0x00000287, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000207, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000003F, 0x03F, 0x000773C0, 0x033, 0x0000003E, @@ -2084,7 +3746,57 @@ const u32 array_mp_8822c_radioa[] = { 0xB0000000, 0x00000000, 0x033, 0x00000033, 0x03F, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773E8, + 0x033, 0x0000004E, + 0x03F, 0x000FF3A0, + 0x033, 0x0000004D, + 0x03F, 0x00000380, + 0x033, 0x0000004C, + 0x03F, 0x000FF380, + 0x033, 0x0000004B, + 0x03F, 0x00000300, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000280, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773E8, + 0x033, 0x0000004E, + 0x03F, 0x000FF3A0, + 0x033, 0x0000004D, + 0x03F, 0x00000380, + 0x033, 0x0000004C, + 0x03F, 0x000FF380, + 0x033, 0x0000004B, + 0x03F, 0x00000300, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000280, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000004F, 0x03F, 0x000773C0, 0x033, 0x0000004E, @@ -2109,7 +3821,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000044, 0x03F, 0x00000040, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000004F, 0x03F, 0x000773C0, 0x033, 0x0000004E, @@ -2134,7 +3846,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000044, 0x03F, 0x00000040, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000004F, 0x03F, 0x000773C0, 0x033, 0x0000004E, @@ -2159,7 +3871,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000044, 0x03F, 0x00000040, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000004F, 0x03F, 0x000773C0, 0x033, 0x0000004E, @@ -2184,7 +3896,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000044, 0x03F, 0x00000040, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000004F, 0x03F, 0x000773C0, 0x033, 0x0000004E, @@ -2209,7 +3921,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000044, 0x03F, 0x00000040, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000004F, 0x03F, 0x000773C0, 0x033, 0x0000004E, @@ -2234,7 +3946,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000044, 0x03F, 0x00000040, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000004F, 0x03F, 0x000773C0, 0x033, 0x0000004E, @@ -2259,7 +3971,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000044, 0x03F, 0x00000040, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000004F, 0x03F, 0x000773C0, 0x033, 0x0000004E, @@ -2284,57 +3996,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000044, 0x03F, 0x00000040, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x033, 0x0000004F, - 0x03F, 0x000773C0, - 0x033, 0x0000004E, - 0x03F, 0x000FF3C0, - 0x033, 0x0000004D, - 0x03F, 0x000773E8, - 0x033, 0x0000004C, - 0x03F, 0x000FF3E8, - 0x033, 0x0000004B, - 0x03F, 0x00000287, - 0x033, 0x0000004A, - 0x03F, 0x000002A8, - 0x033, 0x00000049, - 0x03F, 0x00000207, - 0x033, 0x00000048, - 0x03F, 0x000FF280, - 0x033, 0x00000047, - 0x03F, 0x00000200, - 0x033, 0x00000046, - 0x03F, 0x000001C0, - 0x033, 0x00000045, - 0x03F, 0x00000180, - 0x033, 0x00000044, - 0x03F, 0x00000040, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x033, 0x0000004F, - 0x03F, 0x000773C0, - 0x033, 0x0000004E, - 0x03F, 0x000FF3C0, - 0x033, 0x0000004D, - 0x03F, 0x000773E8, - 0x033, 0x0000004C, - 0x03F, 0x000FF3E8, - 0x033, 0x0000004B, - 0x03F, 0x00000287, - 0x033, 0x0000004A, - 0x03F, 0x000002A8, - 0x033, 0x00000049, - 0x03F, 0x00000207, - 0x033, 0x00000048, - 0x03F, 0x000FF280, - 0x033, 0x00000047, - 0x03F, 0x00000200, - 0x033, 0x00000046, - 0x03F, 0x000001C0, - 0x033, 0x00000045, - 0x03F, 0x00000180, - 0x033, 0x00000044, - 0x03F, 0x00000040, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000004F, 0x03F, 0x000773C0, 0x033, 0x0000004E, @@ -2359,7 +4021,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000044, 0x03F, 0x00000040, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000004F, 0x03F, 0x000773C0, 0x033, 0x0000004E, @@ -2384,7 +4046,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000044, 0x03F, 0x00000040, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000004F, 0x03F, 0x000773C0, 0x033, 0x0000004E, @@ -2409,7 +4071,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000044, 0x03F, 0x00000040, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000004F, 0x03F, 0x000773C0, 0x033, 0x0000004E, @@ -2434,7 +4096,57 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000044, 0x03F, 0x00000040, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773C0, + 0x033, 0x0000004E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000004D, + 0x03F, 0x000773E8, + 0x033, 0x0000004C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000004B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000280, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773C0, + 0x033, 0x0000004E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000004D, + 0x03F, 0x000773E8, + 0x033, 0x0000004C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000004B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000280, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000004F, 0x03F, 0x000773C0, 0x033, 0x0000004E, @@ -2459,7 +4171,307 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000044, 0x03F, 0x00000040, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773C0, + 0x033, 0x0000004E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000004D, + 0x03F, 0x000773E8, + 0x033, 0x0000004C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000004B, + 0x03F, 0x00000287, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000207, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773C0, + 0x033, 0x0000004E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000004D, + 0x03F, 0x000773E8, + 0x033, 0x0000004C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000004B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000280, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773C0, + 0x033, 0x0000004E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000004D, + 0x03F, 0x000773E8, + 0x033, 0x0000004C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000004B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000280, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773C0, + 0x033, 0x0000004E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000004D, + 0x03F, 0x000773E8, + 0x033, 0x0000004C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000004B, + 0x03F, 0x00000287, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000207, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773C0, + 0x033, 0x0000004E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000004D, + 0x03F, 0x000773E8, + 0x033, 0x0000004C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000004B, + 0x03F, 0x00000287, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000207, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773C0, + 0x033, 0x0000004E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000004D, + 0x03F, 0x000773E8, + 0x033, 0x0000004C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000004B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000280, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773C0, + 0x033, 0x0000004E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000004D, + 0x03F, 0x000773E8, + 0x033, 0x0000004C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000004B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000280, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773C0, + 0x033, 0x0000004E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000004D, + 0x03F, 0x000773E8, + 0x033, 0x0000004C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000004B, + 0x03F, 0x00000287, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000207, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773C0, + 0x033, 0x0000004E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000004D, + 0x03F, 0x000773E8, + 0x033, 0x0000004C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000004B, + 0x03F, 0x00000287, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000207, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773C0, + 0x033, 0x0000004E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000004D, + 0x03F, 0x000773E8, + 0x033, 0x0000004C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000004B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000280, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773C0, + 0x033, 0x0000004E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000004D, + 0x03F, 0x000773E8, + 0x033, 0x0000004C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000004B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000280, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773C0, + 0x033, 0x0000004E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000004D, + 0x03F, 0x000773E8, + 0x033, 0x0000004C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000004B, + 0x03F, 0x00000287, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000207, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000004F, 0x03F, 0x000773C0, 0x033, 0x0000004E, @@ -2512,7 +4524,57 @@ const u32 array_mp_8822c_radioa[] = { 0xB0000000, 0x00000000, 0x033, 0x00000043, 0x03F, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773E8, + 0x033, 0x0000005E, + 0x03F, 0x000FF3A0, + 0x033, 0x0000005D, + 0x03F, 0x00000380, + 0x033, 0x0000005C, + 0x03F, 0x000FF380, + 0x033, 0x0000005B, + 0x03F, 0x00000300, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000280, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773E8, + 0x033, 0x0000005E, + 0x03F, 0x000FF3A0, + 0x033, 0x0000005D, + 0x03F, 0x00000380, + 0x033, 0x0000005C, + 0x03F, 0x000FF380, + 0x033, 0x0000005B, + 0x03F, 0x00000300, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000280, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000005F, 0x03F, 0x000773C0, 0x033, 0x0000005E, @@ -2537,7 +4599,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000054, 0x03F, 0x00000040, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000005F, 0x03F, 0x000773C0, 0x033, 0x0000005E, @@ -2562,7 +4624,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000054, 0x03F, 0x00000040, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000005F, 0x03F, 0x000773C0, 0x033, 0x0000005E, @@ -2587,7 +4649,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000054, 0x03F, 0x00000040, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000005F, 0x03F, 0x000773C0, 0x033, 0x0000005E, @@ -2612,7 +4674,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000054, 0x03F, 0x00000040, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000005F, 0x03F, 0x000773C0, 0x033, 0x0000005E, @@ -2637,7 +4699,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000054, 0x03F, 0x00000040, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000005F, 0x03F, 0x000773C0, 0x033, 0x0000005E, @@ -2662,7 +4724,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000054, 0x03F, 0x00000040, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000005F, 0x03F, 0x000773C0, 0x033, 0x0000005E, @@ -2687,7 +4749,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000054, 0x03F, 0x00000040, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000005F, 0x03F, 0x000773C0, 0x033, 0x0000005E, @@ -2712,57 +4774,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000054, 0x03F, 0x00000040, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x033, 0x0000005F, - 0x03F, 0x000773C0, - 0x033, 0x0000005E, - 0x03F, 0x000FF3C0, - 0x033, 0x0000005D, - 0x03F, 0x000773E8, - 0x033, 0x0000005C, - 0x03F, 0x000FF3E8, - 0x033, 0x0000005B, - 0x03F, 0x00000287, - 0x033, 0x0000005A, - 0x03F, 0x000002A8, - 0x033, 0x00000059, - 0x03F, 0x00000207, - 0x033, 0x00000058, - 0x03F, 0x000FF280, - 0x033, 0x00000057, - 0x03F, 0x00000200, - 0x033, 0x00000056, - 0x03F, 0x000001C0, - 0x033, 0x00000055, - 0x03F, 0x00000180, - 0x033, 0x00000054, - 0x03F, 0x00000040, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x033, 0x0000005F, - 0x03F, 0x000773C0, - 0x033, 0x0000005E, - 0x03F, 0x000FF3C0, - 0x033, 0x0000005D, - 0x03F, 0x000773E8, - 0x033, 0x0000005C, - 0x03F, 0x000FF3E8, - 0x033, 0x0000005B, - 0x03F, 0x00000287, - 0x033, 0x0000005A, - 0x03F, 0x000002A8, - 0x033, 0x00000059, - 0x03F, 0x00000207, - 0x033, 0x00000058, - 0x03F, 0x000FF280, - 0x033, 0x00000057, - 0x03F, 0x00000200, - 0x033, 0x00000056, - 0x03F, 0x000001C0, - 0x033, 0x00000055, - 0x03F, 0x00000180, - 0x033, 0x00000054, - 0x03F, 0x00000040, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000005F, 0x03F, 0x000773C0, 0x033, 0x0000005E, @@ -2787,7 +4799,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000054, 0x03F, 0x00000040, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000005F, 0x03F, 0x000773C0, 0x033, 0x0000005E, @@ -2812,7 +4824,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000054, 0x03F, 0x00000040, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000005F, 0x03F, 0x000773C0, 0x033, 0x0000005E, @@ -2837,7 +4849,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000054, 0x03F, 0x00000040, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000005F, 0x03F, 0x000773C0, 0x033, 0x0000005E, @@ -2862,7 +4874,57 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000054, 0x03F, 0x00000040, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773C0, + 0x033, 0x0000005E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000005D, + 0x03F, 0x000773E8, + 0x033, 0x0000005C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000005B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000280, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773C0, + 0x033, 0x0000005E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000005D, + 0x03F, 0x000773E8, + 0x033, 0x0000005C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000005B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000280, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000005F, 0x03F, 0x000773C0, 0x033, 0x0000005E, @@ -2887,7 +4949,307 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000180, 0x033, 0x00000054, 0x03F, 0x00000040, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773C0, + 0x033, 0x0000005E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000005D, + 0x03F, 0x000773E8, + 0x033, 0x0000005C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000005B, + 0x03F, 0x00000287, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000207, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773C0, + 0x033, 0x0000005E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000005D, + 0x03F, 0x000773E8, + 0x033, 0x0000005C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000005B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000280, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773C0, + 0x033, 0x0000005E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000005D, + 0x03F, 0x000773E8, + 0x033, 0x0000005C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000005B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000280, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773C0, + 0x033, 0x0000005E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000005D, + 0x03F, 0x000773E8, + 0x033, 0x0000005C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000005B, + 0x03F, 0x00000287, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000207, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773C0, + 0x033, 0x0000005E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000005D, + 0x03F, 0x000773E8, + 0x033, 0x0000005C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000005B, + 0x03F, 0x00000287, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000207, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773C0, + 0x033, 0x0000005E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000005D, + 0x03F, 0x000773E8, + 0x033, 0x0000005C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000005B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000280, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773C0, + 0x033, 0x0000005E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000005D, + 0x03F, 0x000773E8, + 0x033, 0x0000005C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000005B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000280, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773C0, + 0x033, 0x0000005E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000005D, + 0x03F, 0x000773E8, + 0x033, 0x0000005C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000005B, + 0x03F, 0x00000287, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000207, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773C0, + 0x033, 0x0000005E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000005D, + 0x03F, 0x000773E8, + 0x033, 0x0000005C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000005B, + 0x03F, 0x00000287, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000207, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773C0, + 0x033, 0x0000005E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000005D, + 0x03F, 0x000773E8, + 0x033, 0x0000005C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000005B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000280, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773C0, + 0x033, 0x0000005E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000005D, + 0x03F, 0x000773E8, + 0x033, 0x0000005C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000005B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000280, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773C0, + 0x033, 0x0000005E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000005D, + 0x03F, 0x000773E8, + 0x033, 0x0000005C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000005B, + 0x03F, 0x00000287, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000207, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000005F, 0x03F, 0x000773C0, 0x033, 0x0000005E, @@ -2940,37 +5302,65 @@ const u32 array_mp_8822c_radioa[] = { 0xB0000000, 0x00000000, 0x033, 0x00000053, 0x03F, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00000000, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00000000, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00000000, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00000000, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00000000, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00000000, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00000000, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00000000, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00000000, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00000000, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00000000, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00000000, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, 0xA0000000, 0x00000000, 0x0EF, 0x00000000, @@ -2989,7 +5379,301 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x00000002, 0x03F, 0x00000000, 0x0EF, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001910, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000008, + 0x03E, 0x00001910, + 0x03F, 0x00020000, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000010, + 0x03E, 0x00001910, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001910, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001910, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001910, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001910, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000008, + 0x03E, 0x00001910, + 0x03F, 0x00020000, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000010, + 0x03E, 0x00001910, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001910, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001910, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001910, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00020000, 0x033, 0x00000000, 0x03E, 0x00001C86, @@ -3136,7 +5820,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03E, 0x00000000, 0x03F, 0x0002C010, 0x0EF, 0x00000000, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00020000, 0x033, 0x00000000, 0x03E, 0x00001C86, @@ -3283,7 +5967,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03E, 0x00000000, 0x03F, 0x0002C010, 0x0EF, 0x00000000, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00020000, 0x033, 0x00000000, 0x03E, 0x00001C86, @@ -3430,7 +6114,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03E, 0x00000000, 0x03F, 0x0002C010, 0x0EF, 0x00000000, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00020000, 0x033, 0x00000000, 0x03E, 0x00001C86, @@ -3577,7 +6261,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03E, 0x00000000, 0x03F, 0x0002C010, 0x0EF, 0x00000000, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00020000, 0x033, 0x00000000, 0x03E, 0x00001C86, @@ -3724,7 +6408,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03E, 0x00000000, 0x03F, 0x0002C010, 0x0EF, 0x00000000, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00020000, 0x033, 0x00000000, 0x03E, 0x00001C86, @@ -3871,7 +6555,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03E, 0x00000000, 0x03F, 0x0002C010, 0x0EF, 0x00000000, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00020000, 0x033, 0x00000000, 0x03E, 0x00001C86, @@ -4018,7 +6702,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03E, 0x00000000, 0x03F, 0x0002C010, 0x0EF, 0x00000000, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00020000, 0x033, 0x00000000, 0x03E, 0x00001C86, @@ -4165,7 +6849,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03E, 0x00000000, 0x03F, 0x0002C010, 0x0EF, 0x00000000, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00020000, 0x033, 0x00000000, 0x03E, 0x00001C86, @@ -4312,7 +6996,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03E, 0x00000000, 0x03F, 0x0002C010, 0x0EF, 0x00000000, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00020000, 0x033, 0x00000000, 0x03E, 0x00001C86, @@ -4459,7 +7143,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03E, 0x00000000, 0x03F, 0x0002C010, 0x0EF, 0x00000000, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00020000, 0x033, 0x00000000, 0x03E, 0x00001C86, @@ -4606,7 +7290,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03E, 0x00000000, 0x03F, 0x0002C010, 0x0EF, 0x00000000, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00020000, 0x033, 0x00000000, 0x03E, 0x00001C86, @@ -4753,7 +7437,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03E, 0x00000000, 0x03F, 0x0002C010, 0x0EF, 0x00000000, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00020000, 0x033, 0x00000000, 0x03E, 0x00001C86, @@ -4900,7 +7584,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03E, 0x00000000, 0x03F, 0x0002C010, 0x0EF, 0x00000000, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00020000, 0x033, 0x00000000, 0x03E, 0x00001C86, @@ -5047,7 +7731,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03E, 0x00000000, 0x03F, 0x0002C010, 0x0EF, 0x00000000, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00020000, 0x033, 0x00000000, 0x03E, 0x00001C86, @@ -5194,7 +7878,1771 @@ const u32 array_mp_8822c_radioa[] = { 0x03E, 0x00000000, 0x03F, 0x0002C010, 0x0EF, 0x00000000, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000008, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000010, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000008, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000010, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000008, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000010, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000008, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000010, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000008, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000010, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000008, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000010, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000008, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000010, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000008, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000010, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000008, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000010, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000008, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000010, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000008, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000010, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000008, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000010, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00020000, 0x033, 0x00000000, 0x03E, 0x00001C86, @@ -5493,43 +9941,125 @@ const u32 array_mp_8822c_radioa[] = { 0x01B, 0x00003A40, 0x061, 0x0000D233, 0x062, 0x0004D232, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x063, 0x00000C02, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x063, 0x00000C02, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x063, 0x00000002, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x063, 0x00000002, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x063, 0x00000002, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x063, 0x00000002, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x063, 0x00000002, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x063, 0x00000002, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x063, 0x00000002, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x063, 0x00000002, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x063, 0x00000002, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x063, 0x00000002, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x063, 0x00000002, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x063, 0x00000002, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, 0xA0000000, 0x00000000, 0x063, 0x00000C02, 0xB0000000, 0x00000000, 0x0EF, 0x00000200, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000233, + 0x030, 0x00001233, + 0x030, 0x00002233, + 0x030, 0x00003233, + 0x030, 0x00004203, + 0x030, 0x00005233, + 0x030, 0x00006233, + 0x030, 0x00007233, + 0x030, 0x00008203, + 0x030, 0x00009233, + 0x030, 0x0000A233, + 0x030, 0x0000B233, + 0x030, 0x0000C233, + 0x030, 0x0000D233, + 0x030, 0x0000E203, + 0x030, 0x0000F233, + 0x030, 0x00010233, + 0x030, 0x00011233, + 0x030, 0x00012203, + 0x030, 0x00013233, + 0x030, 0x00014233, + 0x030, 0x00015233, + 0x030, 0x00016203, + 0x030, 0x00017233, + 0x030, 0x00018203, + 0x030, 0x00019233, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000233, + 0x030, 0x00001233, + 0x030, 0x00002233, + 0x030, 0x00003233, + 0x030, 0x00004203, + 0x030, 0x00005233, + 0x030, 0x00006233, + 0x030, 0x00007233, + 0x030, 0x00008203, + 0x030, 0x00009233, + 0x030, 0x0000A233, + 0x030, 0x0000B233, + 0x030, 0x0000C233, + 0x030, 0x0000D233, + 0x030, 0x0000E203, + 0x030, 0x0000F233, + 0x030, 0x00010233, + 0x030, 0x00011233, + 0x030, 0x00012203, + 0x030, 0x00013233, + 0x030, 0x00014233, + 0x030, 0x00015233, + 0x030, 0x00016203, + 0x030, 0x00017233, + 0x030, 0x00018203, + 0x030, 0x00019233, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000237, 0x030, 0x00001237, 0x030, 0x00002237, @@ -5556,7 +10086,7 @@ const u32 array_mp_8822c_radioa[] = { 0x030, 0x00017237, 0x030, 0x00018207, 0x030, 0x00019237, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000237, 0x030, 0x00001237, 0x030, 0x00002237, @@ -5583,7 +10113,7 @@ const u32 array_mp_8822c_radioa[] = { 0x030, 0x00017237, 0x030, 0x00018207, 0x030, 0x00019237, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000237, 0x030, 0x00001237, 0x030, 0x00002237, @@ -5610,7 +10140,7 @@ const u32 array_mp_8822c_radioa[] = { 0x030, 0x00017237, 0x030, 0x00018207, 0x030, 0x00019237, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000237, 0x030, 0x00001237, 0x030, 0x00002237, @@ -5637,7 +10167,7 @@ const u32 array_mp_8822c_radioa[] = { 0x030, 0x00017237, 0x030, 0x00018207, 0x030, 0x00019237, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000238, 0x030, 0x00001238, 0x030, 0x00002238, @@ -5664,7 +10194,7 @@ const u32 array_mp_8822c_radioa[] = { 0x030, 0x00017238, 0x030, 0x00018228, 0x030, 0x00019238, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000238, 0x030, 0x00001238, 0x030, 0x00002238, @@ -5691,7 +10221,7 @@ const u32 array_mp_8822c_radioa[] = { 0x030, 0x00017238, 0x030, 0x00018228, 0x030, 0x00019238, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000239, 0x030, 0x00001239, 0x030, 0x00002239, @@ -5718,7 +10248,7 @@ const u32 array_mp_8822c_radioa[] = { 0x030, 0x00017239, 0x030, 0x00018209, 0x030, 0x00019239, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000239, 0x030, 0x00001239, 0x030, 0x00002239, @@ -5745,61 +10275,7 @@ const u32 array_mp_8822c_radioa[] = { 0x030, 0x00017239, 0x030, 0x00018209, 0x030, 0x00019239, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x030, 0x00000239, - 0x030, 0x00001239, - 0x030, 0x00002239, - 0x030, 0x00003239, - 0x030, 0x00004239, - 0x030, 0x00005239, - 0x030, 0x00006239, - 0x030, 0x00007239, - 0x030, 0x00008239, - 0x030, 0x00009239, - 0x030, 0x0000A239, - 0x030, 0x0000B239, - 0x030, 0x0000C239, - 0x030, 0x0000D239, - 0x030, 0x0000E209, - 0x030, 0x0000F239, - 0x030, 0x00010239, - 0x030, 0x00011239, - 0x030, 0x00012209, - 0x030, 0x00013239, - 0x030, 0x00014239, - 0x030, 0x00015239, - 0x030, 0x00016209, - 0x030, 0x00017239, - 0x030, 0x00018209, - 0x030, 0x00019239, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x030, 0x00000239, - 0x030, 0x00001239, - 0x030, 0x00002239, - 0x030, 0x00003239, - 0x030, 0x00004239, - 0x030, 0x00005239, - 0x030, 0x00006239, - 0x030, 0x00007239, - 0x030, 0x00008239, - 0x030, 0x00009239, - 0x030, 0x0000A239, - 0x030, 0x0000B239, - 0x030, 0x0000C239, - 0x030, 0x0000D239, - 0x030, 0x0000E209, - 0x030, 0x0000F239, - 0x030, 0x00010239, - 0x030, 0x00011239, - 0x030, 0x00012209, - 0x030, 0x00013239, - 0x030, 0x00014239, - 0x030, 0x00015239, - 0x030, 0x00016209, - 0x030, 0x00017239, - 0x030, 0x00018209, - 0x030, 0x00019239, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000238, 0x030, 0x00001238, 0x030, 0x00002238, @@ -5826,7 +10302,7 @@ const u32 array_mp_8822c_radioa[] = { 0x030, 0x00017238, 0x030, 0x00018228, 0x030, 0x00019238, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000238, 0x030, 0x00001238, 0x030, 0x00002238, @@ -5853,7 +10329,7 @@ const u32 array_mp_8822c_radioa[] = { 0x030, 0x00017238, 0x030, 0x00018228, 0x030, 0x00019238, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000239, 0x030, 0x00001239, 0x030, 0x00002239, @@ -5880,7 +10356,7 @@ const u32 array_mp_8822c_radioa[] = { 0x030, 0x00017239, 0x030, 0x00018209, 0x030, 0x00019239, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000239, 0x030, 0x00001239, 0x030, 0x00002239, @@ -5907,7 +10383,61 @@ const u32 array_mp_8822c_radioa[] = { 0x030, 0x00017239, 0x030, 0x00018209, 0x030, 0x00019239, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000238, + 0x030, 0x00001238, + 0x030, 0x00002238, + 0x030, 0x00003238, + 0x030, 0x00004228, + 0x030, 0x00005238, + 0x030, 0x00006238, + 0x030, 0x00007238, + 0x030, 0x00008228, + 0x030, 0x00009238, + 0x030, 0x0000A238, + 0x030, 0x0000B238, + 0x030, 0x0000C238, + 0x030, 0x0000D238, + 0x030, 0x0000E228, + 0x030, 0x0000F238, + 0x030, 0x00010238, + 0x030, 0x00011238, + 0x030, 0x00012228, + 0x030, 0x00013238, + 0x030, 0x00014238, + 0x030, 0x00015238, + 0x030, 0x00016228, + 0x030, 0x00017238, + 0x030, 0x00018228, + 0x030, 0x00019238, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000238, + 0x030, 0x00001238, + 0x030, 0x00002238, + 0x030, 0x00003238, + 0x030, 0x00004228, + 0x030, 0x00005238, + 0x030, 0x00006238, + 0x030, 0x00007238, + 0x030, 0x00008228, + 0x030, 0x00009238, + 0x030, 0x0000A238, + 0x030, 0x0000B238, + 0x030, 0x0000C238, + 0x030, 0x0000D238, + 0x030, 0x0000E228, + 0x030, 0x0000F238, + 0x030, 0x00010238, + 0x030, 0x00011238, + 0x030, 0x00012228, + 0x030, 0x00013238, + 0x030, 0x00014238, + 0x030, 0x00015238, + 0x030, 0x00016228, + 0x030, 0x00017238, + 0x030, 0x00018228, + 0x030, 0x00019238, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000239, 0x030, 0x00001239, 0x030, 0x00002239, @@ -5934,7 +10464,331 @@ const u32 array_mp_8822c_radioa[] = { 0x030, 0x00017239, 0x030, 0x00018209, 0x030, 0x00019239, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000239, + 0x030, 0x00001239, + 0x030, 0x00002239, + 0x030, 0x00003239, + 0x030, 0x00004239, + 0x030, 0x00005239, + 0x030, 0x00006239, + 0x030, 0x00007239, + 0x030, 0x00008239, + 0x030, 0x00009239, + 0x030, 0x0000A239, + 0x030, 0x0000B239, + 0x030, 0x0000C239, + 0x030, 0x0000D239, + 0x030, 0x0000E209, + 0x030, 0x0000F239, + 0x030, 0x00010239, + 0x030, 0x00011239, + 0x030, 0x00012209, + 0x030, 0x00013239, + 0x030, 0x00014239, + 0x030, 0x00015239, + 0x030, 0x00016209, + 0x030, 0x00017239, + 0x030, 0x00018209, + 0x030, 0x00019239, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000238, + 0x030, 0x00001238, + 0x030, 0x00002238, + 0x030, 0x00003238, + 0x030, 0x00004228, + 0x030, 0x00005238, + 0x030, 0x00006238, + 0x030, 0x00007238, + 0x030, 0x00008228, + 0x030, 0x00009238, + 0x030, 0x0000A238, + 0x030, 0x0000B238, + 0x030, 0x0000C238, + 0x030, 0x0000D238, + 0x030, 0x0000E228, + 0x030, 0x0000F238, + 0x030, 0x00010238, + 0x030, 0x00011238, + 0x030, 0x00012228, + 0x030, 0x00013238, + 0x030, 0x00014238, + 0x030, 0x00015238, + 0x030, 0x00016228, + 0x030, 0x00017238, + 0x030, 0x00018228, + 0x030, 0x00019238, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000238, + 0x030, 0x00001238, + 0x030, 0x00002238, + 0x030, 0x00003238, + 0x030, 0x00004228, + 0x030, 0x00005238, + 0x030, 0x00006238, + 0x030, 0x00007238, + 0x030, 0x00008228, + 0x030, 0x00009238, + 0x030, 0x0000A238, + 0x030, 0x0000B238, + 0x030, 0x0000C238, + 0x030, 0x0000D238, + 0x030, 0x0000E228, + 0x030, 0x0000F238, + 0x030, 0x00010238, + 0x030, 0x00011238, + 0x030, 0x00012228, + 0x030, 0x00013238, + 0x030, 0x00014238, + 0x030, 0x00015238, + 0x030, 0x00016228, + 0x030, 0x00017238, + 0x030, 0x00018228, + 0x030, 0x00019238, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000239, + 0x030, 0x00001239, + 0x030, 0x00002239, + 0x030, 0x00003239, + 0x030, 0x00004239, + 0x030, 0x00005239, + 0x030, 0x00006239, + 0x030, 0x00007239, + 0x030, 0x00008239, + 0x030, 0x00009239, + 0x030, 0x0000A239, + 0x030, 0x0000B239, + 0x030, 0x0000C239, + 0x030, 0x0000D239, + 0x030, 0x0000E209, + 0x030, 0x0000F239, + 0x030, 0x00010239, + 0x030, 0x00011239, + 0x030, 0x00012209, + 0x030, 0x00013239, + 0x030, 0x00014239, + 0x030, 0x00015239, + 0x030, 0x00016209, + 0x030, 0x00017239, + 0x030, 0x00018209, + 0x030, 0x00019239, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000239, + 0x030, 0x00001239, + 0x030, 0x00002239, + 0x030, 0x00003239, + 0x030, 0x00004239, + 0x030, 0x00005239, + 0x030, 0x00006239, + 0x030, 0x00007239, + 0x030, 0x00008239, + 0x030, 0x00009239, + 0x030, 0x0000A239, + 0x030, 0x0000B239, + 0x030, 0x0000C239, + 0x030, 0x0000D239, + 0x030, 0x0000E209, + 0x030, 0x0000F239, + 0x030, 0x00010239, + 0x030, 0x00011239, + 0x030, 0x00012209, + 0x030, 0x00013239, + 0x030, 0x00014239, + 0x030, 0x00015239, + 0x030, 0x00016209, + 0x030, 0x00017239, + 0x030, 0x00018209, + 0x030, 0x00019239, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000238, + 0x030, 0x00001238, + 0x030, 0x00002238, + 0x030, 0x00003238, + 0x030, 0x00004228, + 0x030, 0x00005238, + 0x030, 0x00006238, + 0x030, 0x00007238, + 0x030, 0x00008228, + 0x030, 0x00009238, + 0x030, 0x0000A238, + 0x030, 0x0000B238, + 0x030, 0x0000C238, + 0x030, 0x0000D238, + 0x030, 0x0000E228, + 0x030, 0x0000F238, + 0x030, 0x00010238, + 0x030, 0x00011238, + 0x030, 0x00012228, + 0x030, 0x00013238, + 0x030, 0x00014238, + 0x030, 0x00015238, + 0x030, 0x00016228, + 0x030, 0x00017238, + 0x030, 0x00018228, + 0x030, 0x00019238, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000238, + 0x030, 0x00001238, + 0x030, 0x00002238, + 0x030, 0x00003238, + 0x030, 0x00004228, + 0x030, 0x00005238, + 0x030, 0x00006238, + 0x030, 0x00007238, + 0x030, 0x00008228, + 0x030, 0x00009238, + 0x030, 0x0000A238, + 0x030, 0x0000B238, + 0x030, 0x0000C238, + 0x030, 0x0000D238, + 0x030, 0x0000E228, + 0x030, 0x0000F238, + 0x030, 0x00010238, + 0x030, 0x00011238, + 0x030, 0x00012228, + 0x030, 0x00013238, + 0x030, 0x00014238, + 0x030, 0x00015238, + 0x030, 0x00016228, + 0x030, 0x00017238, + 0x030, 0x00018228, + 0x030, 0x00019238, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000239, + 0x030, 0x00001239, + 0x030, 0x00002239, + 0x030, 0x00003239, + 0x030, 0x00004239, + 0x030, 0x00005239, + 0x030, 0x00006239, + 0x030, 0x00007239, + 0x030, 0x00008239, + 0x030, 0x00009239, + 0x030, 0x0000A239, + 0x030, 0x0000B239, + 0x030, 0x0000C239, + 0x030, 0x0000D239, + 0x030, 0x0000E209, + 0x030, 0x0000F239, + 0x030, 0x00010239, + 0x030, 0x00011239, + 0x030, 0x00012209, + 0x030, 0x00013239, + 0x030, 0x00014239, + 0x030, 0x00015239, + 0x030, 0x00016209, + 0x030, 0x00017239, + 0x030, 0x00018209, + 0x030, 0x00019239, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000239, + 0x030, 0x00001239, + 0x030, 0x00002239, + 0x030, 0x00003239, + 0x030, 0x00004239, + 0x030, 0x00005239, + 0x030, 0x00006239, + 0x030, 0x00007239, + 0x030, 0x00008239, + 0x030, 0x00009239, + 0x030, 0x0000A239, + 0x030, 0x0000B239, + 0x030, 0x0000C239, + 0x030, 0x0000D239, + 0x030, 0x0000E209, + 0x030, 0x0000F239, + 0x030, 0x00010239, + 0x030, 0x00011239, + 0x030, 0x00012209, + 0x030, 0x00013239, + 0x030, 0x00014239, + 0x030, 0x00015239, + 0x030, 0x00016209, + 0x030, 0x00017239, + 0x030, 0x00018209, + 0x030, 0x00019239, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000238, + 0x030, 0x00001238, + 0x030, 0x00002238, + 0x030, 0x00003238, + 0x030, 0x00004228, + 0x030, 0x00005238, + 0x030, 0x00006238, + 0x030, 0x00007238, + 0x030, 0x00008228, + 0x030, 0x00009238, + 0x030, 0x0000A238, + 0x030, 0x0000B238, + 0x030, 0x0000C238, + 0x030, 0x0000D238, + 0x030, 0x0000E228, + 0x030, 0x0000F238, + 0x030, 0x00010238, + 0x030, 0x00011238, + 0x030, 0x00012228, + 0x030, 0x00013238, + 0x030, 0x00014238, + 0x030, 0x00015238, + 0x030, 0x00016228, + 0x030, 0x00017238, + 0x030, 0x00018228, + 0x030, 0x00019238, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000238, + 0x030, 0x00001238, + 0x030, 0x00002238, + 0x030, 0x00003238, + 0x030, 0x00004228, + 0x030, 0x00005238, + 0x030, 0x00006238, + 0x030, 0x00007238, + 0x030, 0x00008228, + 0x030, 0x00009238, + 0x030, 0x0000A238, + 0x030, 0x0000B238, + 0x030, 0x0000C238, + 0x030, 0x0000D238, + 0x030, 0x0000E228, + 0x030, 0x0000F238, + 0x030, 0x00010238, + 0x030, 0x00011238, + 0x030, 0x00012228, + 0x030, 0x00013238, + 0x030, 0x00014238, + 0x030, 0x00015238, + 0x030, 0x00016228, + 0x030, 0x00017238, + 0x030, 0x00018228, + 0x030, 0x00019238, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000239, + 0x030, 0x00001239, + 0x030, 0x00002239, + 0x030, 0x00003239, + 0x030, 0x00004239, + 0x030, 0x00005239, + 0x030, 0x00006239, + 0x030, 0x00007239, + 0x030, 0x00008239, + 0x030, 0x00009239, + 0x030, 0x0000A239, + 0x030, 0x0000B239, + 0x030, 0x0000C239, + 0x030, 0x0000D239, + 0x030, 0x0000E209, + 0x030, 0x0000F239, + 0x030, 0x00010239, + 0x030, 0x00011239, + 0x030, 0x00012209, + 0x030, 0x00013239, + 0x030, 0x00014239, + 0x030, 0x00015239, + 0x030, 0x00016209, + 0x030, 0x00017239, + 0x030, 0x00018209, + 0x030, 0x00019239, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000239, 0x030, 0x00001239, 0x030, 0x00002239, @@ -5991,7 +10845,33 @@ const u32 array_mp_8822c_radioa[] = { 0xB0000000, 0x00000000, 0x0EF, 0x00000000, 0x0EF, 0x00000080, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000232, + 0x030, 0x00001232, + 0x030, 0x00002232, + 0x030, 0x00003232, + 0x030, 0x00004232, + 0x030, 0x00005232, + 0x030, 0x00006232, + 0x030, 0x00007232, + 0x030, 0x00008232, + 0x030, 0x00009232, + 0x030, 0x0000A232, + 0x030, 0x0000B232, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000232, + 0x030, 0x00001232, + 0x030, 0x00002232, + 0x030, 0x00003232, + 0x030, 0x00004232, + 0x030, 0x00005232, + 0x030, 0x00006232, + 0x030, 0x00007232, + 0x030, 0x00008232, + 0x030, 0x00009232, + 0x030, 0x0000A232, + 0x030, 0x0000B232, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -6004,7 +10884,7 @@ const u32 array_mp_8822c_radioa[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -6017,7 +10897,7 @@ const u32 array_mp_8822c_radioa[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -6030,7 +10910,7 @@ const u32 array_mp_8822c_radioa[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -6043,7 +10923,7 @@ const u32 array_mp_8822c_radioa[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -6056,7 +10936,7 @@ const u32 array_mp_8822c_radioa[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -6069,7 +10949,7 @@ const u32 array_mp_8822c_radioa[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -6082,7 +10962,7 @@ const u32 array_mp_8822c_radioa[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -6095,7 +10975,7 @@ const u32 array_mp_8822c_radioa[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -6108,7 +10988,7 @@ const u32 array_mp_8822c_radioa[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -6121,7 +11001,7 @@ const u32 array_mp_8822c_radioa[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -6134,7 +11014,7 @@ const u32 array_mp_8822c_radioa[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -6147,7 +11027,7 @@ const u32 array_mp_8822c_radioa[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -6160,7 +11040,7 @@ const u32 array_mp_8822c_radioa[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -6173,7 +11053,7 @@ const u32 array_mp_8822c_radioa[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -6186,7 +11066,163 @@ const u32 array_mp_8822c_radioa[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000334, + 0x030, 0x00001334, + 0x030, 0x00002334, + 0x030, 0x00003334, + 0x030, 0x00004334, + 0x030, 0x00005334, + 0x030, 0x00006334, + 0x030, 0x00007334, + 0x030, 0x00008334, + 0x030, 0x00009334, + 0x030, 0x0000A334, + 0x030, 0x0000B334, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000334, + 0x030, 0x00001334, + 0x030, 0x00002334, + 0x030, 0x00003334, + 0x030, 0x00004334, + 0x030, 0x00005334, + 0x030, 0x00006334, + 0x030, 0x00007334, + 0x030, 0x00008334, + 0x030, 0x00009334, + 0x030, 0x0000A334, + 0x030, 0x0000B334, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000334, + 0x030, 0x00001334, + 0x030, 0x00002334, + 0x030, 0x00003334, + 0x030, 0x00004334, + 0x030, 0x00005334, + 0x030, 0x00006334, + 0x030, 0x00007334, + 0x030, 0x00008334, + 0x030, 0x00009334, + 0x030, 0x0000A334, + 0x030, 0x0000B334, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000334, + 0x030, 0x00001334, + 0x030, 0x00002334, + 0x030, 0x00003334, + 0x030, 0x00004334, + 0x030, 0x00005334, + 0x030, 0x00006334, + 0x030, 0x00007334, + 0x030, 0x00008334, + 0x030, 0x00009334, + 0x030, 0x0000A334, + 0x030, 0x0000B334, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000334, + 0x030, 0x00001334, + 0x030, 0x00002334, + 0x030, 0x00003334, + 0x030, 0x00004334, + 0x030, 0x00005334, + 0x030, 0x00006334, + 0x030, 0x00007334, + 0x030, 0x00008334, + 0x030, 0x00009334, + 0x030, 0x0000A334, + 0x030, 0x0000B334, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000334, + 0x030, 0x00001334, + 0x030, 0x00002334, + 0x030, 0x00003334, + 0x030, 0x00004334, + 0x030, 0x00005334, + 0x030, 0x00006334, + 0x030, 0x00007334, + 0x030, 0x00008334, + 0x030, 0x00009334, + 0x030, 0x0000A334, + 0x030, 0x0000B334, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000334, + 0x030, 0x00001334, + 0x030, 0x00002334, + 0x030, 0x00003334, + 0x030, 0x00004334, + 0x030, 0x00005334, + 0x030, 0x00006334, + 0x030, 0x00007334, + 0x030, 0x00008334, + 0x030, 0x00009334, + 0x030, 0x0000A334, + 0x030, 0x0000B334, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000334, + 0x030, 0x00001334, + 0x030, 0x00002334, + 0x030, 0x00003334, + 0x030, 0x00004334, + 0x030, 0x00005334, + 0x030, 0x00006334, + 0x030, 0x00007334, + 0x030, 0x00008334, + 0x030, 0x00009334, + 0x030, 0x0000A334, + 0x030, 0x0000B334, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000334, + 0x030, 0x00001334, + 0x030, 0x00002334, + 0x030, 0x00003334, + 0x030, 0x00004334, + 0x030, 0x00005334, + 0x030, 0x00006334, + 0x030, 0x00007334, + 0x030, 0x00008334, + 0x030, 0x00009334, + 0x030, 0x0000A334, + 0x030, 0x0000B334, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000334, + 0x030, 0x00001334, + 0x030, 0x00002334, + 0x030, 0x00003334, + 0x030, 0x00004334, + 0x030, 0x00005334, + 0x030, 0x00006334, + 0x030, 0x00007334, + 0x030, 0x00008334, + 0x030, 0x00009334, + 0x030, 0x0000A334, + 0x030, 0x0000B334, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000334, + 0x030, 0x00001334, + 0x030, 0x00002334, + 0x030, 0x00003334, + 0x030, 0x00004334, + 0x030, 0x00005334, + 0x030, 0x00006334, + 0x030, 0x00007334, + 0x030, 0x00008334, + 0x030, 0x00009334, + 0x030, 0x0000A334, + 0x030, 0x0000B334, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000334, + 0x030, 0x00001334, + 0x030, 0x00002334, + 0x030, 0x00003334, + 0x030, 0x00004334, + 0x030, 0x00005334, + 0x030, 0x00006334, + 0x030, 0x00007334, + 0x030, 0x00008334, + 0x030, 0x00009334, + 0x030, 0x0000A334, + 0x030, 0x0000B334, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -6226,7 +11262,283 @@ const u32 array_mp_8822c_radioa[] = { 0x030, 0x0000C330, 0x0EF, 0x00000000, 0x0EE, 0x00010000, - 0x83000015, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000200, 0x03F, 0x00000005, 0x033, 0x00000201, @@ -6249,7 +11561,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000074, 0x033, 0x0000020A, 0x03F, 0x00000077, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000200, 0x03F, 0x00000005, 0x033, 0x00000201, @@ -6272,7 +11584,145 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000074, 0x033, 0x0000020A, 0x03F, 0x00000077, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000200, 0x03F, 0x00000005, 0x033, 0x00000201, @@ -6295,7 +11745,191 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000074, 0x033, 0x0000020A, 0x03F, 0x00000077, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x00000005, + 0x033, 0x00000201, + 0x03F, 0x00000008, + 0x033, 0x00000202, + 0x03F, 0x0000000B, + 0x033, 0x00000203, + 0x03F, 0x0000000E, + 0x033, 0x00000204, + 0x03F, 0x0000002B, + 0x033, 0x00000205, + 0x03F, 0x0000002E, + 0x033, 0x00000206, + 0x03F, 0x0000006B, + 0x033, 0x00000207, + 0x03F, 0x0000006E, + 0x033, 0x00000208, + 0x03F, 0x00000071, + 0x033, 0x00000209, + 0x03F, 0x00000074, + 0x033, 0x0000020A, + 0x03F, 0x00000077, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x00000005, + 0x033, 0x00000201, + 0x03F, 0x00000008, + 0x033, 0x00000202, + 0x03F, 0x0000000B, + 0x033, 0x00000203, + 0x03F, 0x0000000E, + 0x033, 0x00000204, + 0x03F, 0x0000002B, + 0x033, 0x00000205, + 0x03F, 0x0000002E, + 0x033, 0x00000206, + 0x03F, 0x0000006B, + 0x033, 0x00000207, + 0x03F, 0x0000006E, + 0x033, 0x00000208, + 0x03F, 0x00000071, + 0x033, 0x00000209, + 0x03F, 0x00000074, + 0x033, 0x0000020A, + 0x03F, 0x00000077, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000200, 0x03F, 0x00000005, 0x033, 0x00000201, @@ -6342,7 +11976,283 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x0000020A, 0x03F, 0x00000CF7, 0xB0000000, 0x00000000, - 0x83000015, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000280, 0x03F, 0x00000005, 0x033, 0x00000281, @@ -6365,7 +12275,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000074, 0x033, 0x0000028A, 0x03F, 0x00000077, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000280, 0x03F, 0x00000005, 0x033, 0x00000281, @@ -6388,7 +12298,145 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000074, 0x033, 0x0000028A, 0x03F, 0x00000077, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000280, 0x03F, 0x00000005, 0x033, 0x00000281, @@ -6411,7 +12459,191 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000074, 0x033, 0x0000028A, 0x03F, 0x00000077, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x00000005, + 0x033, 0x00000281, + 0x03F, 0x00000008, + 0x033, 0x00000282, + 0x03F, 0x0000000B, + 0x033, 0x00000283, + 0x03F, 0x0000000E, + 0x033, 0x00000284, + 0x03F, 0x0000002B, + 0x033, 0x00000285, + 0x03F, 0x0000002E, + 0x033, 0x00000286, + 0x03F, 0x0000006B, + 0x033, 0x00000287, + 0x03F, 0x0000006E, + 0x033, 0x00000288, + 0x03F, 0x00000071, + 0x033, 0x00000289, + 0x03F, 0x00000074, + 0x033, 0x0000028A, + 0x03F, 0x00000077, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x00000005, + 0x033, 0x00000281, + 0x03F, 0x00000008, + 0x033, 0x00000282, + 0x03F, 0x0000000B, + 0x033, 0x00000283, + 0x03F, 0x0000000E, + 0x033, 0x00000284, + 0x03F, 0x0000002B, + 0x033, 0x00000285, + 0x03F, 0x0000002E, + 0x033, 0x00000286, + 0x03F, 0x0000006B, + 0x033, 0x00000287, + 0x03F, 0x0000006E, + 0x033, 0x00000288, + 0x03F, 0x00000071, + 0x033, 0x00000289, + 0x03F, 0x00000074, + 0x033, 0x0000028A, + 0x03F, 0x00000077, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000280, 0x03F, 0x00000005, 0x033, 0x00000281, @@ -6458,7 +12690,295 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x0000028A, 0x03F, 0x00000CF7, 0xB0000000, 0x00000000, - 0x83000015, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000300, 0x03F, 0x00000005, 0x033, 0x00000301, @@ -6482,7 +13002,7 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x0000030A, 0x03F, 0x000000D1, 0x0EE, 0x00000000, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000300, 0x03F, 0x00000005, 0x033, 0x00000301, @@ -6506,7 +13026,151 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x0000030A, 0x03F, 0x000000D1, 0x0EE, 0x00000000, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000300, 0x03F, 0x00000005, 0x033, 0x00000301, @@ -6530,7 +13194,199 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x0000030A, 0x03F, 0x000000D1, 0x0EE, 0x00000000, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x00000005, + 0x033, 0x00000301, + 0x03F, 0x00000008, + 0x033, 0x00000302, + 0x03F, 0x0000000B, + 0x033, 0x00000303, + 0x03F, 0x0000000E, + 0x033, 0x00000304, + 0x03F, 0x0000002B, + 0x033, 0x00000305, + 0x03F, 0x0000002E, + 0x033, 0x00000306, + 0x03F, 0x00000031, + 0x033, 0x00000307, + 0x03F, 0x00000034, + 0x033, 0x00000308, + 0x03F, 0x00000053, + 0x033, 0x00000309, + 0x03F, 0x00000056, + 0x033, 0x0000030A, + 0x03F, 0x000000D1, + 0x0EE, 0x00000000, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x00000005, + 0x033, 0x00000301, + 0x03F, 0x00000008, + 0x033, 0x00000302, + 0x03F, 0x0000000B, + 0x033, 0x00000303, + 0x03F, 0x0000000E, + 0x033, 0x00000304, + 0x03F, 0x0000002B, + 0x033, 0x00000305, + 0x03F, 0x0000002E, + 0x033, 0x00000306, + 0x03F, 0x00000031, + 0x033, 0x00000307, + 0x03F, 0x00000034, + 0x033, 0x00000308, + 0x03F, 0x00000053, + 0x033, 0x00000309, + 0x03F, 0x00000056, + 0x033, 0x0000030A, + 0x03F, 0x000000D1, + 0x0EE, 0x00000000, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000300, 0x03F, 0x00000005, 0x033, 0x00000301, @@ -6580,37 +13436,65 @@ const u32 array_mp_8822c_radioa[] = { 0x0EE, 0x00000000, 0xB0000000, 0x00000000, 0x051, 0x0003C800, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x052, 0x000942CA, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x052, 0x000942CA, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x052, 0x000902CA, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x052, 0x000902CA, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x052, 0x000902CA, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x052, 0x000902CA, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x052, 0x000902CA, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x052, 0x000902CA, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x052, 0x000902CA, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x052, 0x000902CA, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x052, 0x000902CA, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x052, 0x000902CA, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x052, 0x000902CA, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x052, 0x000902CA, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, 0xA0000000, 0x00000000, 0x052, 0x000942CA, @@ -6621,1598 +13505,2848 @@ const u32 array_mp_8822c_radioa[] = { 0x0EF, 0x00000020, 0x033, 0x00000000, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x00000001, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x00000002, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00030246, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00030246, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00030246, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00030246, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00030246, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00030246, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00030246, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00030246, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00030246, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00030246, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00030246, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00030246, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x00000003, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x00000004, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x00000005, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x00000006, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x00000007, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x00000008, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x00000009, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x0000000A, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x0000000B, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x0000000C, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x0000000D, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00028246, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00028246, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x0000000E, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00010E46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00030246, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00030246, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x0000000F, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x00000010, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x00000011, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x00000012, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x00000013, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x00000014, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x00000015, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x00000016, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x00000017, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x00000018, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x00000019, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x0000001A, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x0000001B, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x0000001C, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x0000001D, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00031E46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00031E46, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x0000001E, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x0000001F, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x00000020, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x00000021, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x00000022, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x00000023, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x00000024, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x00000025, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x00000026, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x00000027, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x00000028, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00025E46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00025E46, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x00000029, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00031E46, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0003D646, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x033, 0x0000002A, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00002A46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0000EA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00021E46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00021E46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00021E46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00021E46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00021E46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00021E46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00021E46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00021E46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00021E46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00021E46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00021E46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00021E46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00021E46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00021E46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00021E46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00021E46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00021E46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00021E46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00021E46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00021E46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00021E46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00021E46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00021E46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00021E46, 0xA0000000, 0x00000000, 0x03F, 0x00002A46, 0xB0000000, 0x00000000, 0x0EF, 0x00000000, 0x0EE, 0x00010000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000060, + 0x03F, 0x00000487, + 0x033, 0x00000061, + 0x03F, 0x00000887, + 0x033, 0x00000062, + 0x03F, 0x00000947, + 0x033, 0x00000063, + 0x03F, 0x00000D48, + 0x033, 0x00000064, + 0x03F, 0x00000D88, + 0x033, 0x00000065, + 0x03F, 0x00000DE8, + 0x033, 0x00000066, + 0x03F, 0x00000DEB, + 0x033, 0x00000067, + 0x03F, 0x00000DEE, + 0x033, 0x00000068, + 0x03F, 0x00000DF1, + 0x033, 0x00000069, + 0x03F, 0x00000DF4, + 0x033, 0x0000006A, + 0x03F, 0x00000DF7, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000060, + 0x03F, 0x00000487, + 0x033, 0x00000061, + 0x03F, 0x00000887, + 0x033, 0x00000062, + 0x03F, 0x00000947, + 0x033, 0x00000063, + 0x03F, 0x00000D48, + 0x033, 0x00000064, + 0x03F, 0x00000D88, + 0x033, 0x00000065, + 0x03F, 0x00000DE8, + 0x033, 0x00000066, + 0x03F, 0x00000DEB, + 0x033, 0x00000067, + 0x03F, 0x00000DEE, + 0x033, 0x00000068, + 0x03F, 0x00000DF1, + 0x033, 0x00000069, + 0x03F, 0x00000DF4, + 0x033, 0x0000006A, + 0x03F, 0x00000DF7, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000468, 0x033, 0x00000061, @@ -8235,7 +16369,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000DF4, 0x033, 0x0000006A, 0x03F, 0x00000DF7, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000468, 0x033, 0x00000061, @@ -8258,7 +16392,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000DF4, 0x033, 0x0000006A, 0x03F, 0x00000DF7, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000468, 0x033, 0x00000061, @@ -8281,7 +16415,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000DF4, 0x033, 0x0000006A, 0x03F, 0x00000DF7, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000468, 0x033, 0x00000061, @@ -8304,7 +16438,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000DF4, 0x033, 0x0000006A, 0x03F, 0x00000DF7, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000467, 0x033, 0x00000061, @@ -8312,22 +16446,22 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x00000062, 0x03F, 0x00000908, 0x033, 0x00000063, - 0x03F, 0x00000D09, + 0x03F, 0x000008C8, 0x033, 0x00000064, - 0x03F, 0x00000D49, + 0x03F, 0x000008CB, 0x033, 0x00000065, - 0x03F, 0x00000D8A, + 0x03F, 0x000008CE, 0x033, 0x00000066, - 0x03F, 0x00000DEB, + 0x03F, 0x000008D1, 0x033, 0x00000067, - 0x03F, 0x00000DEE, + 0x03F, 0x000008D4, 0x033, 0x00000068, - 0x03F, 0x00000DF1, + 0x03F, 0x00000DD1, 0x033, 0x00000069, - 0x03F, 0x00000DF4, + 0x03F, 0x00000DD4, 0x033, 0x0000006A, - 0x03F, 0x00000DF7, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00000DD7, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000467, 0x033, 0x00000061, @@ -8335,22 +16469,22 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x00000062, 0x03F, 0x00000908, 0x033, 0x00000063, - 0x03F, 0x00000D09, + 0x03F, 0x000008C8, 0x033, 0x00000064, - 0x03F, 0x00000D49, + 0x03F, 0x000008CB, 0x033, 0x00000065, - 0x03F, 0x00000D8A, + 0x03F, 0x000008CE, 0x033, 0x00000066, - 0x03F, 0x00000DEB, + 0x03F, 0x000008D1, 0x033, 0x00000067, - 0x03F, 0x00000DEE, + 0x03F, 0x000008D4, 0x033, 0x00000068, - 0x03F, 0x00000DF1, + 0x03F, 0x00000DD1, 0x033, 0x00000069, - 0x03F, 0x00000DF4, + 0x03F, 0x00000DD4, 0x033, 0x0000006A, - 0x03F, 0x00000DF7, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00000DD7, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000467, 0x033, 0x00000061, @@ -8358,22 +16492,22 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x00000062, 0x03F, 0x00000908, 0x033, 0x00000063, - 0x03F, 0x00000D09, + 0x03F, 0x000008C8, 0x033, 0x00000064, - 0x03F, 0x00000D49, + 0x03F, 0x000008CB, 0x033, 0x00000065, - 0x03F, 0x00000D8A, + 0x03F, 0x000008CE, 0x033, 0x00000066, - 0x03F, 0x00000DEB, + 0x03F, 0x000008D1, 0x033, 0x00000067, - 0x03F, 0x00000DEE, + 0x03F, 0x000008D4, 0x033, 0x00000068, - 0x03F, 0x00000DF1, + 0x03F, 0x00000DD1, 0x033, 0x00000069, - 0x03F, 0x00000DF4, + 0x03F, 0x00000DD4, 0x033, 0x0000006A, - 0x03F, 0x00000DF7, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00000DD7, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000467, 0x033, 0x00000061, @@ -8381,22 +16515,22 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x00000062, 0x03F, 0x00000908, 0x033, 0x00000063, - 0x03F, 0x00000D09, + 0x03F, 0x000008C8, 0x033, 0x00000064, - 0x03F, 0x00000D49, + 0x03F, 0x000008CB, 0x033, 0x00000065, - 0x03F, 0x00000D8A, + 0x03F, 0x000008CE, 0x033, 0x00000066, - 0x03F, 0x00000DEB, + 0x03F, 0x000008D1, 0x033, 0x00000067, - 0x03F, 0x00000DEE, + 0x03F, 0x000008D4, 0x033, 0x00000068, - 0x03F, 0x00000DF1, + 0x03F, 0x00000DD1, 0x033, 0x00000069, - 0x03F, 0x00000DF4, + 0x03F, 0x00000DD4, 0x033, 0x0000006A, - 0x03F, 0x00000DF7, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00000DD7, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000467, 0x033, 0x00000061, @@ -8404,22 +16538,22 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x00000062, 0x03F, 0x00000908, 0x033, 0x00000063, - 0x03F, 0x00000D09, + 0x03F, 0x000008C8, 0x033, 0x00000064, - 0x03F, 0x00000D49, + 0x03F, 0x000008CB, 0x033, 0x00000065, - 0x03F, 0x00000D8A, + 0x03F, 0x000008CE, 0x033, 0x00000066, - 0x03F, 0x00000DEB, + 0x03F, 0x000008D1, 0x033, 0x00000067, - 0x03F, 0x00000DEE, + 0x03F, 0x000008D4, 0x033, 0x00000068, - 0x03F, 0x00000DF1, + 0x03F, 0x00000DD1, 0x033, 0x00000069, - 0x03F, 0x00000DF4, + 0x03F, 0x00000DD4, 0x033, 0x0000006A, - 0x03F, 0x00000DF7, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00000DD7, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000467, 0x033, 0x00000061, @@ -8427,22 +16561,22 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x00000062, 0x03F, 0x00000908, 0x033, 0x00000063, - 0x03F, 0x00000D09, + 0x03F, 0x000008C8, 0x033, 0x00000064, - 0x03F, 0x00000D49, + 0x03F, 0x000008CB, 0x033, 0x00000065, - 0x03F, 0x00000D8A, + 0x03F, 0x000008CE, 0x033, 0x00000066, - 0x03F, 0x00000DEB, + 0x03F, 0x000008D1, 0x033, 0x00000067, - 0x03F, 0x00000DEE, + 0x03F, 0x000008D4, 0x033, 0x00000068, - 0x03F, 0x00000DF1, + 0x03F, 0x00000DD1, 0x033, 0x00000069, - 0x03F, 0x00000DF4, + 0x03F, 0x00000DD4, 0x033, 0x0000006A, - 0x03F, 0x00000DF7, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00000DD7, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000467, 0x033, 0x00000061, @@ -8450,22 +16584,22 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x00000062, 0x03F, 0x00000908, 0x033, 0x00000063, - 0x03F, 0x00000D09, + 0x03F, 0x000008C8, 0x033, 0x00000064, - 0x03F, 0x00000D49, + 0x03F, 0x000008CB, 0x033, 0x00000065, - 0x03F, 0x00000D8A, + 0x03F, 0x000008CE, 0x033, 0x00000066, - 0x03F, 0x00000DEB, + 0x03F, 0x000008D1, 0x033, 0x00000067, - 0x03F, 0x00000DEE, + 0x03F, 0x000008D4, 0x033, 0x00000068, - 0x03F, 0x00000DF1, + 0x03F, 0x00000DD1, 0x033, 0x00000069, - 0x03F, 0x00000DF4, + 0x03F, 0x00000DD4, 0x033, 0x0000006A, - 0x03F, 0x00000DF7, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00000DD7, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000467, 0x033, 0x00000061, @@ -8473,22 +16607,22 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x00000062, 0x03F, 0x00000908, 0x033, 0x00000063, - 0x03F, 0x00000D09, + 0x03F, 0x000008C8, 0x033, 0x00000064, - 0x03F, 0x00000D49, + 0x03F, 0x000008CB, 0x033, 0x00000065, - 0x03F, 0x00000D8A, + 0x03F, 0x000008CE, 0x033, 0x00000066, - 0x03F, 0x00000DEB, + 0x03F, 0x000008D1, 0x033, 0x00000067, - 0x03F, 0x00000DEE, + 0x03F, 0x000008D4, 0x033, 0x00000068, - 0x03F, 0x00000DF1, + 0x03F, 0x00000DD1, 0x033, 0x00000069, - 0x03F, 0x00000DF4, + 0x03F, 0x00000DD4, 0x033, 0x0000006A, - 0x03F, 0x00000DF7, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00000DD7, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000467, 0x033, 0x00000061, @@ -8496,22 +16630,22 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x00000062, 0x03F, 0x00000908, 0x033, 0x00000063, - 0x03F, 0x00000D09, + 0x03F, 0x000008C8, 0x033, 0x00000064, - 0x03F, 0x00000D49, + 0x03F, 0x000008CB, 0x033, 0x00000065, - 0x03F, 0x00000D8A, + 0x03F, 0x000008CE, 0x033, 0x00000066, - 0x03F, 0x00000DEB, + 0x03F, 0x000008D1, 0x033, 0x00000067, - 0x03F, 0x00000DEE, + 0x03F, 0x000008D4, 0x033, 0x00000068, - 0x03F, 0x00000DF1, + 0x03F, 0x00000DD1, 0x033, 0x00000069, - 0x03F, 0x00000DF4, + 0x03F, 0x00000DD4, 0x033, 0x0000006A, - 0x03F, 0x00000DF7, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00000DD7, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000467, 0x033, 0x00000061, @@ -8519,22 +16653,22 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x00000062, 0x03F, 0x00000908, 0x033, 0x00000063, - 0x03F, 0x00000D09, + 0x03F, 0x000008C8, 0x033, 0x00000064, - 0x03F, 0x00000D49, + 0x03F, 0x000008CB, 0x033, 0x00000065, - 0x03F, 0x00000D8A, + 0x03F, 0x000008CE, 0x033, 0x00000066, - 0x03F, 0x00000DEB, + 0x03F, 0x000008D1, 0x033, 0x00000067, - 0x03F, 0x00000DEE, + 0x03F, 0x000008D4, 0x033, 0x00000068, - 0x03F, 0x00000DF1, + 0x03F, 0x00000DD1, 0x033, 0x00000069, - 0x03F, 0x00000DF4, + 0x03F, 0x00000DD4, 0x033, 0x0000006A, - 0x03F, 0x00000DF7, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00000DD7, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000467, 0x033, 0x00000061, @@ -8542,22 +16676,22 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x00000062, 0x03F, 0x00000908, 0x033, 0x00000063, - 0x03F, 0x00000D09, + 0x03F, 0x000008C8, 0x033, 0x00000064, - 0x03F, 0x00000D49, + 0x03F, 0x000008CB, 0x033, 0x00000065, - 0x03F, 0x00000D8A, + 0x03F, 0x000008CE, 0x033, 0x00000066, - 0x03F, 0x00000DEB, + 0x03F, 0x000008D1, 0x033, 0x00000067, - 0x03F, 0x00000DEE, + 0x03F, 0x00000DCE, 0x033, 0x00000068, - 0x03F, 0x00000DF1, + 0x03F, 0x00000DD1, 0x033, 0x00000069, - 0x03F, 0x00000DF4, + 0x03F, 0x00000DD4, 0x033, 0x0000006A, - 0x03F, 0x00000DF7, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00000DD7, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000467, 0x033, 0x00000061, @@ -8565,21 +16699,297 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x00000062, 0x03F, 0x00000908, 0x033, 0x00000063, - 0x03F, 0x00000D09, + 0x03F, 0x000008C8, 0x033, 0x00000064, - 0x03F, 0x00000D49, + 0x03F, 0x000008CB, 0x033, 0x00000065, - 0x03F, 0x00000D8A, + 0x03F, 0x000008CE, 0x033, 0x00000066, - 0x03F, 0x00000DEB, + 0x03F, 0x000008D1, 0x033, 0x00000067, - 0x03F, 0x00000DEE, + 0x03F, 0x00000DCE, 0x033, 0x00000068, - 0x03F, 0x00000DF1, + 0x03F, 0x00000DD1, 0x033, 0x00000069, - 0x03F, 0x00000DF4, + 0x03F, 0x00000DD4, 0x033, 0x0000006A, - 0x03F, 0x00000DF7, + 0x03F, 0x00000DD7, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000060, + 0x03F, 0x00000467, + 0x033, 0x00000061, + 0x03F, 0x00000867, + 0x033, 0x00000062, + 0x03F, 0x00000908, + 0x033, 0x00000063, + 0x03F, 0x000008C8, + 0x033, 0x00000064, + 0x03F, 0x000008CB, + 0x033, 0x00000065, + 0x03F, 0x000008CE, + 0x033, 0x00000066, + 0x03F, 0x000008D1, + 0x033, 0x00000067, + 0x03F, 0x000008D4, + 0x033, 0x00000068, + 0x03F, 0x00000DD1, + 0x033, 0x00000069, + 0x03F, 0x00000DD4, + 0x033, 0x0000006A, + 0x03F, 0x00000DD7, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000060, + 0x03F, 0x00000467, + 0x033, 0x00000061, + 0x03F, 0x00000867, + 0x033, 0x00000062, + 0x03F, 0x00000908, + 0x033, 0x00000063, + 0x03F, 0x000008C8, + 0x033, 0x00000064, + 0x03F, 0x000008CB, + 0x033, 0x00000065, + 0x03F, 0x000008CE, + 0x033, 0x00000066, + 0x03F, 0x000008D1, + 0x033, 0x00000067, + 0x03F, 0x000008D4, + 0x033, 0x00000068, + 0x03F, 0x00000DD1, + 0x033, 0x00000069, + 0x03F, 0x00000DD4, + 0x033, 0x0000006A, + 0x03F, 0x00000DD7, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000060, + 0x03F, 0x00000467, + 0x033, 0x00000061, + 0x03F, 0x00000867, + 0x033, 0x00000062, + 0x03F, 0x00000908, + 0x033, 0x00000063, + 0x03F, 0x000008C8, + 0x033, 0x00000064, + 0x03F, 0x000008CB, + 0x033, 0x00000065, + 0x03F, 0x000008CE, + 0x033, 0x00000066, + 0x03F, 0x000008D1, + 0x033, 0x00000067, + 0x03F, 0x000008D4, + 0x033, 0x00000068, + 0x03F, 0x00000DD1, + 0x033, 0x00000069, + 0x03F, 0x00000DD4, + 0x033, 0x0000006A, + 0x03F, 0x00000DD7, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000060, + 0x03F, 0x00000467, + 0x033, 0x00000061, + 0x03F, 0x00000867, + 0x033, 0x00000062, + 0x03F, 0x00000908, + 0x033, 0x00000063, + 0x03F, 0x000008C8, + 0x033, 0x00000064, + 0x03F, 0x000008CB, + 0x033, 0x00000065, + 0x03F, 0x000008CE, + 0x033, 0x00000066, + 0x03F, 0x000008D1, + 0x033, 0x00000067, + 0x03F, 0x000008D4, + 0x033, 0x00000068, + 0x03F, 0x00000DD1, + 0x033, 0x00000069, + 0x03F, 0x00000DD4, + 0x033, 0x0000006A, + 0x03F, 0x00000DD7, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000060, + 0x03F, 0x00000467, + 0x033, 0x00000061, + 0x03F, 0x00000867, + 0x033, 0x00000062, + 0x03F, 0x00000908, + 0x033, 0x00000063, + 0x03F, 0x000008C8, + 0x033, 0x00000064, + 0x03F, 0x000008CB, + 0x033, 0x00000065, + 0x03F, 0x000008CE, + 0x033, 0x00000066, + 0x03F, 0x000008D1, + 0x033, 0x00000067, + 0x03F, 0x000008D4, + 0x033, 0x00000068, + 0x03F, 0x00000DD1, + 0x033, 0x00000069, + 0x03F, 0x00000DD4, + 0x033, 0x0000006A, + 0x03F, 0x00000DD7, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000060, + 0x03F, 0x00000467, + 0x033, 0x00000061, + 0x03F, 0x00000867, + 0x033, 0x00000062, + 0x03F, 0x00000908, + 0x033, 0x00000063, + 0x03F, 0x000008C8, + 0x033, 0x00000064, + 0x03F, 0x000008CB, + 0x033, 0x00000065, + 0x03F, 0x000008CE, + 0x033, 0x00000066, + 0x03F, 0x000008D1, + 0x033, 0x00000067, + 0x03F, 0x000008D4, + 0x033, 0x00000068, + 0x03F, 0x00000DD1, + 0x033, 0x00000069, + 0x03F, 0x00000DD4, + 0x033, 0x0000006A, + 0x03F, 0x00000DD7, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000060, + 0x03F, 0x00000467, + 0x033, 0x00000061, + 0x03F, 0x00000867, + 0x033, 0x00000062, + 0x03F, 0x00000908, + 0x033, 0x00000063, + 0x03F, 0x000008C8, + 0x033, 0x00000064, + 0x03F, 0x000008CB, + 0x033, 0x00000065, + 0x03F, 0x000008CE, + 0x033, 0x00000066, + 0x03F, 0x000008D1, + 0x033, 0x00000067, + 0x03F, 0x000008D4, + 0x033, 0x00000068, + 0x03F, 0x00000DD1, + 0x033, 0x00000069, + 0x03F, 0x00000DD4, + 0x033, 0x0000006A, + 0x03F, 0x00000DD7, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000060, + 0x03F, 0x00000467, + 0x033, 0x00000061, + 0x03F, 0x00000867, + 0x033, 0x00000062, + 0x03F, 0x00000908, + 0x033, 0x00000063, + 0x03F, 0x000008C8, + 0x033, 0x00000064, + 0x03F, 0x000008CB, + 0x033, 0x00000065, + 0x03F, 0x000008CE, + 0x033, 0x00000066, + 0x03F, 0x000008D1, + 0x033, 0x00000067, + 0x03F, 0x000008D4, + 0x033, 0x00000068, + 0x03F, 0x00000DD1, + 0x033, 0x00000069, + 0x03F, 0x00000DD4, + 0x033, 0x0000006A, + 0x03F, 0x00000DD7, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000060, + 0x03F, 0x00000467, + 0x033, 0x00000061, + 0x03F, 0x00000867, + 0x033, 0x00000062, + 0x03F, 0x00000908, + 0x033, 0x00000063, + 0x03F, 0x000008C8, + 0x033, 0x00000064, + 0x03F, 0x000008CB, + 0x033, 0x00000065, + 0x03F, 0x000008CE, + 0x033, 0x00000066, + 0x03F, 0x000008D1, + 0x033, 0x00000067, + 0x03F, 0x000008D4, + 0x033, 0x00000068, + 0x03F, 0x00000DD1, + 0x033, 0x00000069, + 0x03F, 0x00000DD4, + 0x033, 0x0000006A, + 0x03F, 0x00000DD7, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000060, + 0x03F, 0x00000467, + 0x033, 0x00000061, + 0x03F, 0x00000867, + 0x033, 0x00000062, + 0x03F, 0x00000908, + 0x033, 0x00000063, + 0x03F, 0x000008C8, + 0x033, 0x00000064, + 0x03F, 0x000008CB, + 0x033, 0x00000065, + 0x03F, 0x000008CE, + 0x033, 0x00000066, + 0x03F, 0x000008D1, + 0x033, 0x00000067, + 0x03F, 0x000008D4, + 0x033, 0x00000068, + 0x03F, 0x00000DD1, + 0x033, 0x00000069, + 0x03F, 0x00000DD4, + 0x033, 0x0000006A, + 0x03F, 0x00000DD7, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000060, + 0x03F, 0x00000467, + 0x033, 0x00000061, + 0x03F, 0x00000867, + 0x033, 0x00000062, + 0x03F, 0x00000908, + 0x033, 0x00000063, + 0x03F, 0x000008C8, + 0x033, 0x00000064, + 0x03F, 0x000008CB, + 0x033, 0x00000065, + 0x03F, 0x000008CE, + 0x033, 0x00000066, + 0x03F, 0x000008D1, + 0x033, 0x00000067, + 0x03F, 0x000008D4, + 0x033, 0x00000068, + 0x03F, 0x00000DD1, + 0x033, 0x00000069, + 0x03F, 0x00000DD4, + 0x033, 0x0000006A, + 0x03F, 0x00000DD7, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000060, + 0x03F, 0x00000467, + 0x033, 0x00000061, + 0x03F, 0x00000867, + 0x033, 0x00000062, + 0x03F, 0x00000908, + 0x033, 0x00000063, + 0x03F, 0x000008C8, + 0x033, 0x00000064, + 0x03F, 0x000008CB, + 0x033, 0x00000065, + 0x03F, 0x000008CE, + 0x033, 0x00000066, + 0x03F, 0x000008D1, + 0x033, 0x00000067, + 0x03F, 0x000008D4, + 0x033, 0x00000068, + 0x03F, 0x00000DD1, + 0x033, 0x00000069, + 0x03F, 0x00000DD4, + 0x033, 0x0000006A, + 0x03F, 0x00000DD7, 0xA0000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000487, @@ -8604,7 +17014,53 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x0000006A, 0x03F, 0x00000DF7, 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000020, + 0x03F, 0x00000487, + 0x033, 0x00000021, + 0x03F, 0x00000887, + 0x033, 0x00000022, + 0x03F, 0x00000947, + 0x033, 0x00000023, + 0x03F, 0x00000D48, + 0x033, 0x00000024, + 0x03F, 0x00000D88, + 0x033, 0x00000025, + 0x03F, 0x00000DE8, + 0x033, 0x00000026, + 0x03F, 0x00000DEB, + 0x033, 0x00000027, + 0x03F, 0x00000DEE, + 0x033, 0x00000028, + 0x03F, 0x00000DF1, + 0x033, 0x00000029, + 0x03F, 0x00000DF4, + 0x033, 0x0000002A, + 0x03F, 0x00000DF7, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000020, + 0x03F, 0x00000487, + 0x033, 0x00000021, + 0x03F, 0x00000887, + 0x033, 0x00000022, + 0x03F, 0x00000947, + 0x033, 0x00000023, + 0x03F, 0x00000D48, + 0x033, 0x00000024, + 0x03F, 0x00000D88, + 0x033, 0x00000025, + 0x03F, 0x00000DE8, + 0x033, 0x00000026, + 0x03F, 0x00000DEB, + 0x033, 0x00000027, + 0x03F, 0x00000DEE, + 0x033, 0x00000028, + 0x03F, 0x00000DF1, + 0x033, 0x00000029, + 0x03F, 0x00000DF4, + 0x033, 0x0000002A, + 0x03F, 0x00000DF7, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000468, 0x033, 0x00000021, @@ -8627,7 +17083,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000468, 0x033, 0x00000021, @@ -8650,7 +17106,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000468, 0x033, 0x00000021, @@ -8673,7 +17129,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000468, 0x033, 0x00000021, @@ -8696,7 +17152,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000467, 0x033, 0x00000021, @@ -8719,7 +17175,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000467, 0x033, 0x00000021, @@ -8742,7 +17198,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000467, 0x033, 0x00000021, @@ -8765,7 +17221,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000467, 0x033, 0x00000021, @@ -8788,7 +17244,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000467, 0x033, 0x00000021, @@ -8811,7 +17267,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000467, 0x033, 0x00000021, @@ -8834,7 +17290,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000467, 0x033, 0x00000021, @@ -8857,7 +17313,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000467, 0x033, 0x00000021, @@ -8880,7 +17336,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000467, 0x033, 0x00000021, @@ -8903,7 +17359,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000467, 0x033, 0x00000021, @@ -8926,7 +17382,7 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000467, 0x033, 0x00000021, @@ -8949,7 +17405,283 @@ const u32 array_mp_8822c_radioa[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000020, + 0x03F, 0x00000467, + 0x033, 0x00000021, + 0x03F, 0x00000867, + 0x033, 0x00000022, + 0x03F, 0x00000908, + 0x033, 0x00000023, + 0x03F, 0x00000D09, + 0x033, 0x00000024, + 0x03F, 0x00000D49, + 0x033, 0x00000025, + 0x03F, 0x00000D8A, + 0x033, 0x00000026, + 0x03F, 0x00000DEB, + 0x033, 0x00000027, + 0x03F, 0x00000DEE, + 0x033, 0x00000028, + 0x03F, 0x00000DF1, + 0x033, 0x00000029, + 0x03F, 0x00000DF4, + 0x033, 0x0000002A, + 0x03F, 0x00000DF7, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000020, + 0x03F, 0x00000467, + 0x033, 0x00000021, + 0x03F, 0x00000867, + 0x033, 0x00000022, + 0x03F, 0x00000908, + 0x033, 0x00000023, + 0x03F, 0x00000D09, + 0x033, 0x00000024, + 0x03F, 0x00000D49, + 0x033, 0x00000025, + 0x03F, 0x00000D8A, + 0x033, 0x00000026, + 0x03F, 0x00000DEB, + 0x033, 0x00000027, + 0x03F, 0x00000DEE, + 0x033, 0x00000028, + 0x03F, 0x00000DF1, + 0x033, 0x00000029, + 0x03F, 0x00000DF4, + 0x033, 0x0000002A, + 0x03F, 0x00000DF7, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000020, + 0x03F, 0x00000467, + 0x033, 0x00000021, + 0x03F, 0x00000867, + 0x033, 0x00000022, + 0x03F, 0x00000908, + 0x033, 0x00000023, + 0x03F, 0x00000D09, + 0x033, 0x00000024, + 0x03F, 0x00000D49, + 0x033, 0x00000025, + 0x03F, 0x00000D8A, + 0x033, 0x00000026, + 0x03F, 0x00000DEB, + 0x033, 0x00000027, + 0x03F, 0x00000DEE, + 0x033, 0x00000028, + 0x03F, 0x00000DF1, + 0x033, 0x00000029, + 0x03F, 0x00000DF4, + 0x033, 0x0000002A, + 0x03F, 0x00000DF7, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000020, + 0x03F, 0x00000467, + 0x033, 0x00000021, + 0x03F, 0x00000867, + 0x033, 0x00000022, + 0x03F, 0x00000908, + 0x033, 0x00000023, + 0x03F, 0x00000D09, + 0x033, 0x00000024, + 0x03F, 0x00000D49, + 0x033, 0x00000025, + 0x03F, 0x00000D8A, + 0x033, 0x00000026, + 0x03F, 0x00000DEB, + 0x033, 0x00000027, + 0x03F, 0x00000DEE, + 0x033, 0x00000028, + 0x03F, 0x00000DF1, + 0x033, 0x00000029, + 0x03F, 0x00000DF4, + 0x033, 0x0000002A, + 0x03F, 0x00000DF7, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000020, + 0x03F, 0x00000467, + 0x033, 0x00000021, + 0x03F, 0x00000867, + 0x033, 0x00000022, + 0x03F, 0x00000908, + 0x033, 0x00000023, + 0x03F, 0x00000D09, + 0x033, 0x00000024, + 0x03F, 0x00000D49, + 0x033, 0x00000025, + 0x03F, 0x00000D8A, + 0x033, 0x00000026, + 0x03F, 0x00000DEB, + 0x033, 0x00000027, + 0x03F, 0x00000DEE, + 0x033, 0x00000028, + 0x03F, 0x00000DF1, + 0x033, 0x00000029, + 0x03F, 0x00000DF4, + 0x033, 0x0000002A, + 0x03F, 0x00000DF7, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000020, + 0x03F, 0x00000467, + 0x033, 0x00000021, + 0x03F, 0x00000867, + 0x033, 0x00000022, + 0x03F, 0x00000908, + 0x033, 0x00000023, + 0x03F, 0x00000D09, + 0x033, 0x00000024, + 0x03F, 0x00000D49, + 0x033, 0x00000025, + 0x03F, 0x00000D8A, + 0x033, 0x00000026, + 0x03F, 0x00000DEB, + 0x033, 0x00000027, + 0x03F, 0x00000DEE, + 0x033, 0x00000028, + 0x03F, 0x00000DF1, + 0x033, 0x00000029, + 0x03F, 0x00000DF4, + 0x033, 0x0000002A, + 0x03F, 0x00000DF7, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000020, + 0x03F, 0x00000467, + 0x033, 0x00000021, + 0x03F, 0x00000867, + 0x033, 0x00000022, + 0x03F, 0x00000908, + 0x033, 0x00000023, + 0x03F, 0x00000D09, + 0x033, 0x00000024, + 0x03F, 0x00000D49, + 0x033, 0x00000025, + 0x03F, 0x00000D8A, + 0x033, 0x00000026, + 0x03F, 0x00000DEB, + 0x033, 0x00000027, + 0x03F, 0x00000DEE, + 0x033, 0x00000028, + 0x03F, 0x00000DF1, + 0x033, 0x00000029, + 0x03F, 0x00000DF4, + 0x033, 0x0000002A, + 0x03F, 0x00000DF7, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000020, + 0x03F, 0x00000467, + 0x033, 0x00000021, + 0x03F, 0x00000867, + 0x033, 0x00000022, + 0x03F, 0x00000908, + 0x033, 0x00000023, + 0x03F, 0x00000D09, + 0x033, 0x00000024, + 0x03F, 0x00000D49, + 0x033, 0x00000025, + 0x03F, 0x00000D8A, + 0x033, 0x00000026, + 0x03F, 0x00000DEB, + 0x033, 0x00000027, + 0x03F, 0x00000DEE, + 0x033, 0x00000028, + 0x03F, 0x00000DF1, + 0x033, 0x00000029, + 0x03F, 0x00000DF4, + 0x033, 0x0000002A, + 0x03F, 0x00000DF7, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000020, + 0x03F, 0x00000467, + 0x033, 0x00000021, + 0x03F, 0x00000867, + 0x033, 0x00000022, + 0x03F, 0x00000908, + 0x033, 0x00000023, + 0x03F, 0x00000D09, + 0x033, 0x00000024, + 0x03F, 0x00000D49, + 0x033, 0x00000025, + 0x03F, 0x00000D8A, + 0x033, 0x00000026, + 0x03F, 0x00000DEB, + 0x033, 0x00000027, + 0x03F, 0x00000DEE, + 0x033, 0x00000028, + 0x03F, 0x00000DF1, + 0x033, 0x00000029, + 0x03F, 0x00000DF4, + 0x033, 0x0000002A, + 0x03F, 0x00000DF7, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000020, + 0x03F, 0x00000467, + 0x033, 0x00000021, + 0x03F, 0x00000867, + 0x033, 0x00000022, + 0x03F, 0x00000908, + 0x033, 0x00000023, + 0x03F, 0x00000D09, + 0x033, 0x00000024, + 0x03F, 0x00000D49, + 0x033, 0x00000025, + 0x03F, 0x00000D8A, + 0x033, 0x00000026, + 0x03F, 0x00000DEB, + 0x033, 0x00000027, + 0x03F, 0x00000DEE, + 0x033, 0x00000028, + 0x03F, 0x00000DF1, + 0x033, 0x00000029, + 0x03F, 0x00000DF4, + 0x033, 0x0000002A, + 0x03F, 0x00000DF7, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000020, + 0x03F, 0x00000467, + 0x033, 0x00000021, + 0x03F, 0x00000867, + 0x033, 0x00000022, + 0x03F, 0x00000908, + 0x033, 0x00000023, + 0x03F, 0x00000D09, + 0x033, 0x00000024, + 0x03F, 0x00000D49, + 0x033, 0x00000025, + 0x03F, 0x00000D8A, + 0x033, 0x00000026, + 0x03F, 0x00000DEB, + 0x033, 0x00000027, + 0x03F, 0x00000DEE, + 0x033, 0x00000028, + 0x03F, 0x00000DF1, + 0x033, 0x00000029, + 0x03F, 0x00000DF4, + 0x033, 0x0000002A, + 0x03F, 0x00000DF7, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000020, + 0x03F, 0x00000467, + 0x033, 0x00000021, + 0x03F, 0x00000867, + 0x033, 0x00000022, + 0x03F, 0x00000908, + 0x033, 0x00000023, + 0x03F, 0x00000D09, + 0x033, 0x00000024, + 0x03F, 0x00000D49, + 0x033, 0x00000025, + 0x03F, 0x00000D8A, + 0x033, 0x00000026, + 0x03F, 0x00000DEB, + 0x033, 0x00000027, + 0x03F, 0x00000DEE, + 0x033, 0x00000028, + 0x03F, 0x00000DF1, + 0x033, 0x00000029, + 0x03F, 0x00000DF4, + 0x033, 0x0000002A, + 0x03F, 0x00000DF7, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000467, 0x033, 0x00000021, @@ -9005,58 +17737,130 @@ const u32 array_mp_8822c_radioa[] = { 0x0B0, 0x0001F0FC, 0x0B1, 0x0007DBE4, 0x0B2, 0x00022400, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x0007C760, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x0007C760, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x0007C760, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x0007C760, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x0007C760, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x0007C760, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, 0xA0000000, 0x00000000, 0x0B3, 0x0007C760, 0xB0000000, 0x00000000, 0x0B4, 0x00099D40, 0x0B5, 0x0004103F, - 0x83000003, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x0B6, 0x000187F8, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0B6, 0x000187F8, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0B6, 0x000187F8, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x0B6, 0x000187F8, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0B6, 0x000187F8, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x0B6, 0x000187F8, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0B6, 0x000187F8, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x0B6, 0x000187F8, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x0B6, 0x000387F8, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x0B6, 0x000387F8, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x0B6, 0x000187F8, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x0B6, 0x000187F8, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x0B6, 0x000387F8, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x0B6, 0x000387F8, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0B6, 0x000187F8, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x0B6, 0x000187F8, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x0B6, 0x000387F8, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x0B6, 0x000387F8, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x0B6, 0x000187F8, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x0B6, 0x000187F8, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, 0x0B6, 0x000387F8, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x0B6, 0x000387F8, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0B6, 0x000187F8, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x0B6, 0x000187F8, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x0B6, 0x000387F8, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x0B6, 0x000387F8, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x0B6, 0x000187F8, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x0B6, 0x000187F8, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x0B6, 0x000387F8, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x0B6, 0x000387F8, 0xA0000000, 0x00000000, 0x0B6, 0x000187F8, @@ -9072,37 +17876,65 @@ const u32 array_mp_8822c_radioa[] = { 0x0CA, 0x00080001, 0x0FE, 0x00000000, 0x0B0, 0x0001F0F8, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x0007C700, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x0007C700, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x0007C700, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x0007C700, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x0007C700, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x0007C700, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, 0xA0000000, 0x00000000, 0x0B3, 0x0007C700, @@ -9111,37 +17943,65 @@ const u32 array_mp_8822c_radioa[] = { 0xFFE, 0x00000000, 0xFFE, 0x00000000, 0xFFE, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x0007C760, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x0007C760, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x0007C760, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x0007C760, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x0007C760, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x0007C760, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x0B3, 0x000FC760, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x0B3, 0x000FC760, 0xA0000000, 0x00000000, 0x0B3, 0x0007C760, @@ -9166,29 +18026,65 @@ const u32 array_mp_8822c_radioa[] = { 0x033, 0x00000001, 0x03F, 0x0000000F, 0x0ED, 0x00000000, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x0DD, 0x00000500, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0DD, 0x00000500, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0DD, 0x00000500, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x0DD, 0x00000500, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0DD, 0x00000500, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x0DD, 0x00000500, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0DD, 0x00000540, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0DD, 0x00000540, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x0DD, 0x00000540, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x0DD, 0x00000540, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x0DD, 0x00000540, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x0DD, 0x00000540, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x0DD, 0x00000540, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x0DD, 0x00000540, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0DD, 0x00000540, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0DD, 0x00000540, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x0DD, 0x00000540, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x0DD, 0x00000540, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x0DD, 0x00000540, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x0DD, 0x00000540, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x0DD, 0x00000540, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x0DD, 0x00000540, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0DD, 0x00000540, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x0DD, 0x00000540, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x0DD, 0x00000540, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x0DD, 0x00000540, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x0DD, 0x00000540, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x0DD, 0x00000540, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x0DD, 0x00000540, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x0DD, 0x00000540, 0xA0000000, 0x00000000, 0x0DD, 0x00000500, @@ -9295,67 +18191,93 @@ const u32 array_mp_8822c_radioa[] = { void odm_read_and_config_mp_8822c_radioa(struct dm_struct *dm) { - u32 i = 0; - u8 c_cond; - boolean is_matched = true, is_skipped = false; - u32 array_len = - sizeof(array_mp_8822c_radioa) / sizeof(u32); - u32 *array = (u32 *)array_mp_8822c_radioa; - - u32 v1 = 0, v2 = 0, pre_v1 = 0, pre_v2 = 0; - u32 a1 = 0, a2 = 0, a3 = 0, a4 = 0; + boolean is_matched, find_target; + u32 cfg_target = 0, cfg_para = 0; + u32 i = 0; + u32 array_len = 0; + u32 *array = NULL; + u32 v1 = 0, v2 = 0; + u8 h_size = 0; + u8 h_idx = 0; PHYDM_DBG(dm, ODM_COMP_INIT, "===> %s\n", __func__); + array_len = + sizeof(array_mp_8822c_radioa) / sizeof(u32); + array = (u32 *)array_mp_8822c_radioa; + + if (!halbb_sel_headline(dm, array, array_len, &h_size, &h_idx)) { + PHYDM_DBG(dm, ODM_COMP_INIT, "No any match case.\n"); + return; + } + PHYDM_DBG(dm, ODM_COMP_INIT, "len = %d, h_size = %d, h_idx = %d\n", + array_len, h_size, h_idx); + + if (h_size != 0) { + cfg_target = array[h_idx << 1] & 0x0fffffff; + } + + i += h_size; + + PHYDM_DBG(dm, ODM_COMP_INIT, "cfg_target = 0x%x\n", cfg_target); + PHYDM_DBG(dm, ODM_COMP_INIT, "array[i] = 0x%x, array[i+1] = 0x%x\n", + array[i], array[i + 1]); + + halbb_flag_2_default(&is_matched, &find_target); while ((i + 1) < array_len) { v1 = array[i]; v2 = array[i + 1]; + i += 2; - if (v1 & (BIT(31) | BIT(30))) {/*positive & negative condition*/ - if (v1 & BIT(31)) {/* positive condition*/ - c_cond = - (u8)((v1 & (BIT(29) | BIT(28))) >> 28); - if (c_cond == COND_ENDIF) {/*end*/ - is_matched = true; - is_skipped = false; - PHYDM_DBG(dm, ODM_COMP_INIT, "ENDIF\n"); - } else if (c_cond == COND_ELSE) { /*else*/ - is_matched = is_skipped ? false : true; - PHYDM_DBG(dm, ODM_COMP_INIT, "ELSE\n"); - } else {/*if , else if*/ - pre_v1 = v1; - pre_v2 = v2; - PHYDM_DBG(dm, ODM_COMP_INIT, - "IF or ELSE IF\n"); - } - } else if (v1 & BIT(30)) { /*negative condition*/ - if (!is_skipped) { - a1 = pre_v1; a2 = pre_v2; - a3 = v1; a4 = v2; - if (check_positive(dm, - a1, a2, a3, a4)) { - is_matched = true; - is_skipped = true; - } else { - is_matched = false; - is_skipped = false; - } - } else { - is_matched = false; - } + switch (v1 >> 28) { + case PARA_IF: + case PARA_ELSE_IF: + cfg_para = v1 & 0x0fffffff; + PHYDM_DBG(dm, ODM_COMP_INIT, "*if (cart=%d, rfe=%d)\n", + (cfg_para & 0x0f000000) >> 24, cfg_para & 0xff); + break; + case PARA_ELSE: + PHYDM_DBG(dm, ODM_COMP_INIT, "*else\n"); + is_matched = false; + if (!find_target) { + PHYDM_DBG(dm, ODM_COMP_INIT, "Init Fail in idx %d\n", i); + return; } - } else { + break; + case PARA_END: + PHYDM_DBG(dm, ODM_COMP_INIT, "*endif\n"); + halbb_flag_2_default(&is_matched, &find_target); + break; + case PARA_CHK: + /*Check this para meets driver's requirement or not*/ + if (find_target) { + PHYDM_DBG(dm, ODM_COMP_INIT, " skip\n"); + is_matched = false; + break; + } + + if (cfg_para == cfg_target) { + is_matched = true; + find_target = true; + } else { + is_matched = false; + find_target = false; + } + PHYDM_DBG(dm, ODM_COMP_INIT, " match=%d\n", is_matched); + break; + default: if (is_matched) - odm_config_rf_radio_a_8822c(dm, v1, v2); + odm_config_rf_radio_a_8822c(dm, v1, v2); + break; } - i = i + 2; } + PHYDM_DBG(dm, ODM_COMP_INIT, "BBCR Init Success\n"); } u32 odm_get_version_mp_8822c_radioa(void) { - return 47; + return 67; } /****************************************************************************** @@ -9363,71 +18285,165 @@ odm_get_version_mp_8822c_radioa(void) ******************************************************************************/ const u32 array_mp_8822c_radiob[] = { + 0xF0FFFF00, 0x00000000, + 0xF0FFFF01, 0x00000001, + 0xF1FFFF01, 0x00000002, + 0xF1FFFF02, 0x00000003, + 0xF2FFFF01, 0x00000004, + 0xF2FFFF02, 0x00000005, + 0xF3FFFF01, 0x00000006, + 0xF3FFFF02, 0x00000007, + 0xF3FFFF03, 0x00000008, + 0xF3FFFF04, 0x00000009, + 0xF3FFFF05, 0x0000000A, + 0xF3FFFF06, 0x0000000B, + 0xF3FFFF15, 0x0000000C, + 0xF3FFFF16, 0x0000000D, + 0xF4FFFF01, 0x0000000E, + 0xF4FFFF02, 0x0000000F, + 0xF4FFFF03, 0x00000010, + 0xF4FFFF04, 0x00000011, + 0xF4FFFF05, 0x00000012, + 0xF4FFFF06, 0x00000013, + 0xF4FFFF15, 0x00000014, + 0xF4FFFF16, 0x00000015, + 0xF5FFFF01, 0x00000016, + 0xF5FFFF02, 0x00000017, + 0xF5FFFF03, 0x00000018, + 0xF5FFFF04, 0x00000019, + 0xF5FFFF05, 0x0000001A, + 0xF5FFFF06, 0x0000001B, + 0xF5FFFF15, 0x0000001C, + 0xF5FFFF16, 0x0000001D, 0x000, 0x00030000, 0x018, 0x00013124, 0x093, 0x0008483F, 0x0EF, 0x00080000, 0x033, 0x00000001, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00091230, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00091230, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00091230, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00091230, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00091230, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00091230, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0009123E, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0009123E, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0009123E, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0009123E, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0009123E, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0009123E, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0009123E, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0009123E, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0009123E, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0009123E, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0009123E, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0009123E, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0009123E, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0009123E, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0009123E, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0009123E, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0009123E, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0009123E, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0009123E, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0009123E, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0009123E, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0009123E, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0009123E, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0009123E, 0xA0000000, 0x00000000, 0x03F, 0x00091230, 0xB0000000, 0x00000000, 0x0EF, 0x00000000, 0x0DE, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x08E, 0x000A5540, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x08E, 0x000A5540, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000B9140, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000B9140, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000A5540, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000A5540, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000A5540, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000A5540, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000A5540, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000A5540, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000A5540, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000A5540, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000A5540, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000A5540, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000A5540, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000A5540, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000A5540, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x08E, 0x000A5540, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x08E, 0x000A5540, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x08E, 0x000A5540, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x08E, 0x000A5540, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x08E, 0x000A5540, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x08E, 0x000A5540, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x08E, 0x000A5540, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x08E, 0x000A5540, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x08E, 0x000A5540, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x08E, 0x000A5540, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x08E, 0x000A5540, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x08E, 0x000A5540, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x08E, 0x000A5540, 0xA0000000, 0x00000000, 0x08E, 0x000A5540, @@ -9436,7 +18452,25 @@ const u32 array_mp_8822c_radiob[] = { 0x081, 0x0002FC01, 0x081, 0x0003FC01, 0x085, 0x0006A06C, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x0EE, 0x00000010, + 0x033, 0x00000001, + 0x03F, 0x0000003F, + 0x033, 0x00000001, + 0x03F, 0x0000003F, + 0x033, 0x00000002, + 0x03F, 0x0000003F, + 0x0EE, 0x00000000, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0EE, 0x00000010, + 0x033, 0x00000001, + 0x03F, 0x0000003F, + 0x033, 0x00000001, + 0x03F, 0x0000003F, + 0x033, 0x00000002, + 0x03F, 0x0000003F, + 0x0EE, 0x00000000, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -9445,7 +18479,7 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -9454,7 +18488,7 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -9463,7 +18497,7 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -9472,7 +18506,7 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -9481,7 +18515,7 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -9490,7 +18524,7 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -9499,7 +18533,7 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -9508,7 +18542,7 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -9517,7 +18551,7 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -9526,7 +18560,7 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -9535,7 +18569,7 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -9544,7 +18578,7 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -9553,7 +18587,7 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -9562,7 +18596,7 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -9571,7 +18605,115 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x00000002, 0x03F, 0x0000002A, 0x0EE, 0x00000000, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x0EE, 0x00000010, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000002, + 0x03F, 0x0000002A, + 0x0EE, 0x00000000, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x0EE, 0x00000010, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000002, + 0x03F, 0x0000002A, + 0x0EE, 0x00000000, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x0EE, 0x00000010, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000002, + 0x03F, 0x0000002A, + 0x0EE, 0x00000000, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x0EE, 0x00000010, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000002, + 0x03F, 0x0000002A, + 0x0EE, 0x00000000, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x0EE, 0x00000010, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000002, + 0x03F, 0x0000002A, + 0x0EE, 0x00000000, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0EE, 0x00000010, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000002, + 0x03F, 0x0000002A, + 0x0EE, 0x00000000, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x0EE, 0x00000010, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000002, + 0x03F, 0x0000002A, + 0x0EE, 0x00000000, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x0EE, 0x00000010, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000002, + 0x03F, 0x0000002A, + 0x0EE, 0x00000000, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x0EE, 0x00000010, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000002, + 0x03F, 0x0000002A, + 0x0EE, 0x00000000, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x0EE, 0x00000010, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000002, + 0x03F, 0x0000002A, + 0x0EE, 0x00000000, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x0EE, 0x00000010, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000002, + 0x03F, 0x0000002A, + 0x0EE, 0x00000000, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x0EE, 0x00000010, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000001, + 0x03F, 0x0000002A, + 0x033, 0x00000002, + 0x03F, 0x0000002A, + 0x0EE, 0x00000000, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x0EE, 0x00000010, 0x033, 0x00000001, 0x03F, 0x0000002A, @@ -9590,7 +18732,59 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x0000003F, 0x0EE, 0x00000000, 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773E8, + 0x033, 0x0000000E, + 0x03F, 0x000FF3A0, + 0x033, 0x0000000D, + 0x03F, 0x00000380, + 0x033, 0x0000000C, + 0x03F, 0x000FF380, + 0x033, 0x0000000B, + 0x03F, 0x00000300, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000280, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773E8, + 0x033, 0x0000000E, + 0x03F, 0x000FF3A0, + 0x033, 0x0000000D, + 0x03F, 0x00000380, + 0x033, 0x0000000C, + 0x03F, 0x000FF380, + 0x033, 0x0000000B, + 0x03F, 0x00000300, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000280, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00010000, 0x033, 0x0000000F, 0x03F, 0x000773C0, @@ -9616,7 +18810,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000004, 0x03F, 0x00000040, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00010000, 0x033, 0x0000000F, 0x03F, 0x000773C0, @@ -9642,7 +18836,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000004, 0x03F, 0x00000040, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00010000, 0x033, 0x0000000F, 0x03F, 0x000773C0, @@ -9668,7 +18862,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000004, 0x03F, 0x00000040, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00010000, 0x033, 0x0000000F, 0x03F, 0x000773C0, @@ -9694,7 +18888,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000004, 0x03F, 0x00000040, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00010000, 0x033, 0x0000000F, 0x03F, 0x000773C0, @@ -9720,7 +18914,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000004, 0x03F, 0x00000040, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00010000, 0x033, 0x0000000F, 0x03F, 0x000773C0, @@ -9746,7 +18940,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000004, 0x03F, 0x00000040, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00010000, 0x033, 0x0000000F, 0x03F, 0x000773C0, @@ -9772,7 +18966,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000004, 0x03F, 0x00000040, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00010000, 0x033, 0x0000000F, 0x03F, 0x000773C0, @@ -9798,59 +18992,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000004, 0x03F, 0x00000040, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x0EF, 0x00010000, - 0x033, 0x0000000F, - 0x03F, 0x000773C0, - 0x033, 0x0000000E, - 0x03F, 0x000FF3C0, - 0x033, 0x0000000D, - 0x03F, 0x000773E8, - 0x033, 0x0000000C, - 0x03F, 0x000FF3E8, - 0x033, 0x0000000B, - 0x03F, 0x00000287, - 0x033, 0x0000000A, - 0x03F, 0x000002A8, - 0x033, 0x00000009, - 0x03F, 0x00000207, - 0x033, 0x00000008, - 0x03F, 0x000FF280, - 0x033, 0x00000007, - 0x03F, 0x00000200, - 0x033, 0x00000006, - 0x03F, 0x000001C0, - 0x033, 0x00000005, - 0x03F, 0x00000180, - 0x033, 0x00000004, - 0x03F, 0x00000040, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x0EF, 0x00010000, - 0x033, 0x0000000F, - 0x03F, 0x000773C0, - 0x033, 0x0000000E, - 0x03F, 0x000FF3C0, - 0x033, 0x0000000D, - 0x03F, 0x000773E8, - 0x033, 0x0000000C, - 0x03F, 0x000FF3E8, - 0x033, 0x0000000B, - 0x03F, 0x00000287, - 0x033, 0x0000000A, - 0x03F, 0x000002A8, - 0x033, 0x00000009, - 0x03F, 0x00000207, - 0x033, 0x00000008, - 0x03F, 0x000FF280, - 0x033, 0x00000007, - 0x03F, 0x00000200, - 0x033, 0x00000006, - 0x03F, 0x000001C0, - 0x033, 0x00000005, - 0x03F, 0x00000180, - 0x033, 0x00000004, - 0x03F, 0x00000040, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00010000, 0x033, 0x0000000F, 0x03F, 0x000773C0, @@ -9876,7 +19018,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000004, 0x03F, 0x00000040, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00010000, 0x033, 0x0000000F, 0x03F, 0x000773C0, @@ -9902,7 +19044,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000004, 0x03F, 0x00000040, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00010000, 0x033, 0x0000000F, 0x03F, 0x000773C0, @@ -9928,7 +19070,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000004, 0x03F, 0x00000040, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00010000, 0x033, 0x0000000F, 0x03F, 0x000773C0, @@ -9954,7 +19096,59 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000004, 0x03F, 0x00000040, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773C0, + 0x033, 0x0000000E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000000D, + 0x03F, 0x000773E8, + 0x033, 0x0000000C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000000B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000280, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773C0, + 0x033, 0x0000000E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000000D, + 0x03F, 0x000773E8, + 0x033, 0x0000000C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000000B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000280, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00010000, 0x033, 0x0000000F, 0x03F, 0x000773C0, @@ -9980,7 +19174,319 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000004, 0x03F, 0x00000040, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773C0, + 0x033, 0x0000000E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000000D, + 0x03F, 0x000773E8, + 0x033, 0x0000000C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000000B, + 0x03F, 0x00000287, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000207, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773C0, + 0x033, 0x0000000E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000000D, + 0x03F, 0x000773E8, + 0x033, 0x0000000C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000000B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000280, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773C0, + 0x033, 0x0000000E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000000D, + 0x03F, 0x000773E8, + 0x033, 0x0000000C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000000B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000280, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773C0, + 0x033, 0x0000000E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000000D, + 0x03F, 0x000773E8, + 0x033, 0x0000000C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000000B, + 0x03F, 0x00000287, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000207, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773C0, + 0x033, 0x0000000E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000000D, + 0x03F, 0x000773E8, + 0x033, 0x0000000C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000000B, + 0x03F, 0x00000287, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000207, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773C0, + 0x033, 0x0000000E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000000D, + 0x03F, 0x000773E8, + 0x033, 0x0000000C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000000B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000280, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773C0, + 0x033, 0x0000000E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000000D, + 0x03F, 0x000773E8, + 0x033, 0x0000000C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000000B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000280, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773C0, + 0x033, 0x0000000E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000000D, + 0x03F, 0x000773E8, + 0x033, 0x0000000C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000000B, + 0x03F, 0x00000287, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000207, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773C0, + 0x033, 0x0000000E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000000D, + 0x03F, 0x000773E8, + 0x033, 0x0000000C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000000B, + 0x03F, 0x00000287, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000207, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773C0, + 0x033, 0x0000000E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000000D, + 0x03F, 0x000773E8, + 0x033, 0x0000000C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000000B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000280, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773C0, + 0x033, 0x0000000E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000000D, + 0x03F, 0x000773E8, + 0x033, 0x0000000C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000000B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000280, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00010000, + 0x033, 0x0000000F, + 0x03F, 0x000773C0, + 0x033, 0x0000000E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000000D, + 0x03F, 0x000773E8, + 0x033, 0x0000000C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000000B, + 0x03F, 0x00000287, + 0x033, 0x0000000A, + 0x03F, 0x000002A8, + 0x033, 0x00000009, + 0x03F, 0x00000207, + 0x033, 0x00000008, + 0x03F, 0x000FF280, + 0x033, 0x00000007, + 0x03F, 0x00000200, + 0x033, 0x00000006, + 0x03F, 0x000001C0, + 0x033, 0x00000005, + 0x03F, 0x00000180, + 0x033, 0x00000004, + 0x03F, 0x00000040, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00010000, 0x033, 0x0000000F, 0x03F, 0x000773C0, @@ -10035,7 +19541,57 @@ const u32 array_mp_8822c_radiob[] = { 0xB0000000, 0x00000000, 0x033, 0x00000003, 0x03F, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773E8, + 0x033, 0x0000001E, + 0x03F, 0x000FF3A0, + 0x033, 0x0000001D, + 0x03F, 0x00000380, + 0x033, 0x0000001C, + 0x03F, 0x000FF380, + 0x033, 0x0000001B, + 0x03F, 0x00000300, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000280, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773E8, + 0x033, 0x0000001E, + 0x03F, 0x000FF3A0, + 0x033, 0x0000001D, + 0x03F, 0x00000380, + 0x033, 0x0000001C, + 0x03F, 0x000FF380, + 0x033, 0x0000001B, + 0x03F, 0x00000300, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000280, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000001F, 0x03F, 0x000773C0, 0x033, 0x0000001E, @@ -10060,7 +19616,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000014, 0x03F, 0x00000040, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000001F, 0x03F, 0x000773C0, 0x033, 0x0000001E, @@ -10085,7 +19641,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000014, 0x03F, 0x00000040, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000001F, 0x03F, 0x000773C0, 0x033, 0x0000001E, @@ -10110,7 +19666,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000014, 0x03F, 0x00000040, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000001F, 0x03F, 0x000773C0, 0x033, 0x0000001E, @@ -10135,7 +19691,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000014, 0x03F, 0x00000040, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000001F, 0x03F, 0x000773C0, 0x033, 0x0000001E, @@ -10160,7 +19716,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000014, 0x03F, 0x00000040, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000001F, 0x03F, 0x000773C0, 0x033, 0x0000001E, @@ -10185,7 +19741,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000014, 0x03F, 0x00000040, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000001F, 0x03F, 0x000773C0, 0x033, 0x0000001E, @@ -10210,7 +19766,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000014, 0x03F, 0x00000040, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000001F, 0x03F, 0x000773C0, 0x033, 0x0000001E, @@ -10235,57 +19791,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000014, 0x03F, 0x00000040, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x033, 0x0000001F, - 0x03F, 0x000773C0, - 0x033, 0x0000001E, - 0x03F, 0x000FF3C0, - 0x033, 0x0000001D, - 0x03F, 0x000773E8, - 0x033, 0x0000001C, - 0x03F, 0x000FF3E8, - 0x033, 0x0000001B, - 0x03F, 0x00000287, - 0x033, 0x0000001A, - 0x03F, 0x000002A8, - 0x033, 0x00000019, - 0x03F, 0x00000207, - 0x033, 0x00000018, - 0x03F, 0x000FF280, - 0x033, 0x00000017, - 0x03F, 0x00000200, - 0x033, 0x00000016, - 0x03F, 0x000001C0, - 0x033, 0x00000015, - 0x03F, 0x00000180, - 0x033, 0x00000014, - 0x03F, 0x00000040, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x033, 0x0000001F, - 0x03F, 0x000773C0, - 0x033, 0x0000001E, - 0x03F, 0x000FF3C0, - 0x033, 0x0000001D, - 0x03F, 0x000773E8, - 0x033, 0x0000001C, - 0x03F, 0x000FF3E8, - 0x033, 0x0000001B, - 0x03F, 0x00000287, - 0x033, 0x0000001A, - 0x03F, 0x000002A8, - 0x033, 0x00000019, - 0x03F, 0x00000207, - 0x033, 0x00000018, - 0x03F, 0x000FF280, - 0x033, 0x00000017, - 0x03F, 0x00000200, - 0x033, 0x00000016, - 0x03F, 0x000001C0, - 0x033, 0x00000015, - 0x03F, 0x00000180, - 0x033, 0x00000014, - 0x03F, 0x00000040, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000001F, 0x03F, 0x000773C0, 0x033, 0x0000001E, @@ -10310,7 +19816,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000014, 0x03F, 0x00000040, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000001F, 0x03F, 0x000773C0, 0x033, 0x0000001E, @@ -10335,7 +19841,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000014, 0x03F, 0x00000040, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000001F, 0x03F, 0x000773C0, 0x033, 0x0000001E, @@ -10360,7 +19866,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000014, 0x03F, 0x00000040, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000001F, 0x03F, 0x000773C0, 0x033, 0x0000001E, @@ -10385,7 +19891,57 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000014, 0x03F, 0x00000040, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773C0, + 0x033, 0x0000001E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000001D, + 0x03F, 0x000773E8, + 0x033, 0x0000001C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000001B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000280, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773C0, + 0x033, 0x0000001E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000001D, + 0x03F, 0x000773E8, + 0x033, 0x0000001C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000001B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000280, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000001F, 0x03F, 0x000773C0, 0x033, 0x0000001E, @@ -10410,7 +19966,307 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000014, 0x03F, 0x00000040, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773C0, + 0x033, 0x0000001E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000001D, + 0x03F, 0x000773E8, + 0x033, 0x0000001C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000001B, + 0x03F, 0x00000287, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000207, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773C0, + 0x033, 0x0000001E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000001D, + 0x03F, 0x000773E8, + 0x033, 0x0000001C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000001B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000280, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773C0, + 0x033, 0x0000001E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000001D, + 0x03F, 0x000773E8, + 0x033, 0x0000001C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000001B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000280, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773C0, + 0x033, 0x0000001E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000001D, + 0x03F, 0x000773E8, + 0x033, 0x0000001C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000001B, + 0x03F, 0x00000287, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000207, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773C0, + 0x033, 0x0000001E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000001D, + 0x03F, 0x000773E8, + 0x033, 0x0000001C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000001B, + 0x03F, 0x00000287, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000207, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773C0, + 0x033, 0x0000001E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000001D, + 0x03F, 0x000773E8, + 0x033, 0x0000001C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000001B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000280, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773C0, + 0x033, 0x0000001E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000001D, + 0x03F, 0x000773E8, + 0x033, 0x0000001C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000001B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000280, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773C0, + 0x033, 0x0000001E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000001D, + 0x03F, 0x000773E8, + 0x033, 0x0000001C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000001B, + 0x03F, 0x00000287, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000207, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773C0, + 0x033, 0x0000001E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000001D, + 0x03F, 0x000773E8, + 0x033, 0x0000001C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000001B, + 0x03F, 0x00000287, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000207, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773C0, + 0x033, 0x0000001E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000001D, + 0x03F, 0x000773E8, + 0x033, 0x0000001C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000001B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000280, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773C0, + 0x033, 0x0000001E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000001D, + 0x03F, 0x000773E8, + 0x033, 0x0000001C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000001B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000280, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000001F, + 0x03F, 0x000773C0, + 0x033, 0x0000001E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000001D, + 0x03F, 0x000773E8, + 0x033, 0x0000001C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000001B, + 0x03F, 0x00000287, + 0x033, 0x0000001A, + 0x03F, 0x000002A8, + 0x033, 0x00000019, + 0x03F, 0x00000207, + 0x033, 0x00000018, + 0x03F, 0x000FF280, + 0x033, 0x00000017, + 0x03F, 0x00000200, + 0x033, 0x00000016, + 0x03F, 0x000001C0, + 0x033, 0x00000015, + 0x03F, 0x00000180, + 0x033, 0x00000014, + 0x03F, 0x00000040, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000001F, 0x03F, 0x000773C0, 0x033, 0x0000001E, @@ -10463,7 +20319,57 @@ const u32 array_mp_8822c_radiob[] = { 0xB0000000, 0x00000000, 0x033, 0x00000013, 0x03F, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773E8, + 0x033, 0x0000002E, + 0x03F, 0x000FF3A0, + 0x033, 0x0000002D, + 0x03F, 0x00000380, + 0x033, 0x0000002C, + 0x03F, 0x000FF380, + 0x033, 0x0000002B, + 0x03F, 0x00000300, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000280, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773E8, + 0x033, 0x0000002E, + 0x03F, 0x000FF3A0, + 0x033, 0x0000002D, + 0x03F, 0x00000380, + 0x033, 0x0000002C, + 0x03F, 0x000FF380, + 0x033, 0x0000002B, + 0x03F, 0x00000300, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000280, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000002F, 0x03F, 0x000773C0, 0x033, 0x0000002E, @@ -10488,7 +20394,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000024, 0x03F, 0x00000040, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000002F, 0x03F, 0x000773C0, 0x033, 0x0000002E, @@ -10513,7 +20419,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000024, 0x03F, 0x00000040, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000002F, 0x03F, 0x000773C0, 0x033, 0x0000002E, @@ -10538,7 +20444,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000024, 0x03F, 0x00000040, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000002F, 0x03F, 0x000773C0, 0x033, 0x0000002E, @@ -10563,7 +20469,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000024, 0x03F, 0x00000040, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000002F, 0x03F, 0x000773C0, 0x033, 0x0000002E, @@ -10588,7 +20494,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000024, 0x03F, 0x00000040, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000002F, 0x03F, 0x000773C0, 0x033, 0x0000002E, @@ -10613,7 +20519,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000024, 0x03F, 0x00000040, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000002F, 0x03F, 0x000773C0, 0x033, 0x0000002E, @@ -10638,7 +20544,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000024, 0x03F, 0x00000040, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000002F, 0x03F, 0x000773C0, 0x033, 0x0000002E, @@ -10663,57 +20569,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000024, 0x03F, 0x00000040, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x033, 0x0000002F, - 0x03F, 0x000773C0, - 0x033, 0x0000002E, - 0x03F, 0x000FF3C0, - 0x033, 0x0000002D, - 0x03F, 0x000773E8, - 0x033, 0x0000002C, - 0x03F, 0x000FF3E8, - 0x033, 0x0000002B, - 0x03F, 0x00000287, - 0x033, 0x0000002A, - 0x03F, 0x000002A8, - 0x033, 0x00000029, - 0x03F, 0x00000207, - 0x033, 0x00000028, - 0x03F, 0x000FF280, - 0x033, 0x00000027, - 0x03F, 0x00000200, - 0x033, 0x00000026, - 0x03F, 0x000001C0, - 0x033, 0x00000025, - 0x03F, 0x00000180, - 0x033, 0x00000024, - 0x03F, 0x00000040, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x033, 0x0000002F, - 0x03F, 0x000773C0, - 0x033, 0x0000002E, - 0x03F, 0x000FF3C0, - 0x033, 0x0000002D, - 0x03F, 0x000773E8, - 0x033, 0x0000002C, - 0x03F, 0x000FF3E8, - 0x033, 0x0000002B, - 0x03F, 0x00000287, - 0x033, 0x0000002A, - 0x03F, 0x000002A8, - 0x033, 0x00000029, - 0x03F, 0x00000207, - 0x033, 0x00000028, - 0x03F, 0x000FF280, - 0x033, 0x00000027, - 0x03F, 0x00000200, - 0x033, 0x00000026, - 0x03F, 0x000001C0, - 0x033, 0x00000025, - 0x03F, 0x00000180, - 0x033, 0x00000024, - 0x03F, 0x00000040, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000002F, 0x03F, 0x000773C0, 0x033, 0x0000002E, @@ -10738,7 +20594,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000024, 0x03F, 0x00000040, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000002F, 0x03F, 0x000773C0, 0x033, 0x0000002E, @@ -10763,7 +20619,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000024, 0x03F, 0x00000040, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000002F, 0x03F, 0x000773C0, 0x033, 0x0000002E, @@ -10788,7 +20644,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000024, 0x03F, 0x00000040, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000002F, 0x03F, 0x000773C0, 0x033, 0x0000002E, @@ -10813,7 +20669,57 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000024, 0x03F, 0x00000040, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773C0, + 0x033, 0x0000002E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000002D, + 0x03F, 0x000773E8, + 0x033, 0x0000002C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000002B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000280, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773C0, + 0x033, 0x0000002E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000002D, + 0x03F, 0x000773E8, + 0x033, 0x0000002C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000002B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000280, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000002F, 0x03F, 0x000773C0, 0x033, 0x0000002E, @@ -10838,7 +20744,307 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000024, 0x03F, 0x00000040, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773C0, + 0x033, 0x0000002E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000002D, + 0x03F, 0x000773E8, + 0x033, 0x0000002C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000002B, + 0x03F, 0x00000287, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000207, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773C0, + 0x033, 0x0000002E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000002D, + 0x03F, 0x000773E8, + 0x033, 0x0000002C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000002B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000280, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773C0, + 0x033, 0x0000002E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000002D, + 0x03F, 0x000773E8, + 0x033, 0x0000002C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000002B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000280, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773C0, + 0x033, 0x0000002E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000002D, + 0x03F, 0x000773E8, + 0x033, 0x0000002C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000002B, + 0x03F, 0x00000287, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000207, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773C0, + 0x033, 0x0000002E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000002D, + 0x03F, 0x000773E8, + 0x033, 0x0000002C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000002B, + 0x03F, 0x00000287, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000207, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773C0, + 0x033, 0x0000002E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000002D, + 0x03F, 0x000773E8, + 0x033, 0x0000002C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000002B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000280, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773C0, + 0x033, 0x0000002E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000002D, + 0x03F, 0x000773E8, + 0x033, 0x0000002C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000002B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000280, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773C0, + 0x033, 0x0000002E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000002D, + 0x03F, 0x000773E8, + 0x033, 0x0000002C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000002B, + 0x03F, 0x00000287, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000207, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773C0, + 0x033, 0x0000002E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000002D, + 0x03F, 0x000773E8, + 0x033, 0x0000002C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000002B, + 0x03F, 0x00000287, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000207, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773C0, + 0x033, 0x0000002E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000002D, + 0x03F, 0x000773E8, + 0x033, 0x0000002C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000002B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000280, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773C0, + 0x033, 0x0000002E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000002D, + 0x03F, 0x000773E8, + 0x033, 0x0000002C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000002B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000280, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000002F, + 0x03F, 0x000773C0, + 0x033, 0x0000002E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000002D, + 0x03F, 0x000773E8, + 0x033, 0x0000002C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000002B, + 0x03F, 0x00000287, + 0x033, 0x0000002A, + 0x03F, 0x000002A8, + 0x033, 0x00000029, + 0x03F, 0x00000207, + 0x033, 0x00000028, + 0x03F, 0x000FF280, + 0x033, 0x00000027, + 0x03F, 0x00000200, + 0x033, 0x00000026, + 0x03F, 0x000001C0, + 0x033, 0x00000025, + 0x03F, 0x00000180, + 0x033, 0x00000024, + 0x03F, 0x00000040, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000002F, 0x03F, 0x000773C0, 0x033, 0x0000002E, @@ -10891,7 +21097,57 @@ const u32 array_mp_8822c_radiob[] = { 0xB0000000, 0x00000000, 0x033, 0x00000023, 0x03F, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773E8, + 0x033, 0x0000003E, + 0x03F, 0x000FF3A0, + 0x033, 0x0000003D, + 0x03F, 0x00000380, + 0x033, 0x0000003C, + 0x03F, 0x000FF380, + 0x033, 0x0000003B, + 0x03F, 0x00000300, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000280, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773E8, + 0x033, 0x0000003E, + 0x03F, 0x000FF3A0, + 0x033, 0x0000003D, + 0x03F, 0x00000380, + 0x033, 0x0000003C, + 0x03F, 0x000FF380, + 0x033, 0x0000003B, + 0x03F, 0x00000300, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000280, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000003F, 0x03F, 0x000773C0, 0x033, 0x0000003E, @@ -10916,7 +21172,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000034, 0x03F, 0x00000040, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000003F, 0x03F, 0x000773C0, 0x033, 0x0000003E, @@ -10941,7 +21197,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000034, 0x03F, 0x00000040, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000003F, 0x03F, 0x000773C0, 0x033, 0x0000003E, @@ -10966,7 +21222,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000034, 0x03F, 0x00000040, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000003F, 0x03F, 0x000773C0, 0x033, 0x0000003E, @@ -10991,7 +21247,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000034, 0x03F, 0x00000040, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000003F, 0x03F, 0x000773C0, 0x033, 0x0000003E, @@ -11016,7 +21272,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000034, 0x03F, 0x00000040, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000003F, 0x03F, 0x000773C0, 0x033, 0x0000003E, @@ -11041,7 +21297,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000034, 0x03F, 0x00000040, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000003F, 0x03F, 0x000773C0, 0x033, 0x0000003E, @@ -11066,7 +21322,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000034, 0x03F, 0x00000040, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000003F, 0x03F, 0x000773C0, 0x033, 0x0000003E, @@ -11091,57 +21347,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000034, 0x03F, 0x00000040, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x033, 0x0000003F, - 0x03F, 0x000773C0, - 0x033, 0x0000003E, - 0x03F, 0x000FF3C0, - 0x033, 0x0000003D, - 0x03F, 0x000773E8, - 0x033, 0x0000003C, - 0x03F, 0x000FF3E8, - 0x033, 0x0000003B, - 0x03F, 0x00000287, - 0x033, 0x0000003A, - 0x03F, 0x000002A8, - 0x033, 0x00000039, - 0x03F, 0x00000207, - 0x033, 0x00000038, - 0x03F, 0x000FF280, - 0x033, 0x00000037, - 0x03F, 0x00000200, - 0x033, 0x00000036, - 0x03F, 0x000001C0, - 0x033, 0x00000035, - 0x03F, 0x00000180, - 0x033, 0x00000034, - 0x03F, 0x00000040, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x033, 0x0000003F, - 0x03F, 0x000773C0, - 0x033, 0x0000003E, - 0x03F, 0x000FF3C0, - 0x033, 0x0000003D, - 0x03F, 0x000773E8, - 0x033, 0x0000003C, - 0x03F, 0x000FF3E8, - 0x033, 0x0000003B, - 0x03F, 0x00000287, - 0x033, 0x0000003A, - 0x03F, 0x000002A8, - 0x033, 0x00000039, - 0x03F, 0x00000207, - 0x033, 0x00000038, - 0x03F, 0x000FF280, - 0x033, 0x00000037, - 0x03F, 0x00000200, - 0x033, 0x00000036, - 0x03F, 0x000001C0, - 0x033, 0x00000035, - 0x03F, 0x00000180, - 0x033, 0x00000034, - 0x03F, 0x00000040, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000003F, 0x03F, 0x000773C0, 0x033, 0x0000003E, @@ -11166,7 +21372,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000034, 0x03F, 0x00000040, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000003F, 0x03F, 0x000773C0, 0x033, 0x0000003E, @@ -11191,7 +21397,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000034, 0x03F, 0x00000040, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000003F, 0x03F, 0x000773C0, 0x033, 0x0000003E, @@ -11216,7 +21422,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000034, 0x03F, 0x00000040, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000003F, 0x03F, 0x000773C0, 0x033, 0x0000003E, @@ -11241,7 +21447,57 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000034, 0x03F, 0x00000040, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773C0, + 0x033, 0x0000003E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000003D, + 0x03F, 0x000773E8, + 0x033, 0x0000003C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000003B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000280, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773C0, + 0x033, 0x0000003E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000003D, + 0x03F, 0x000773E8, + 0x033, 0x0000003C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000003B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000280, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000003F, 0x03F, 0x000773C0, 0x033, 0x0000003E, @@ -11266,7 +21522,307 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000034, 0x03F, 0x00000040, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773C0, + 0x033, 0x0000003E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000003D, + 0x03F, 0x000773E8, + 0x033, 0x0000003C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000003B, + 0x03F, 0x00000287, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000207, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773C0, + 0x033, 0x0000003E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000003D, + 0x03F, 0x000773E8, + 0x033, 0x0000003C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000003B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000280, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773C0, + 0x033, 0x0000003E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000003D, + 0x03F, 0x000773E8, + 0x033, 0x0000003C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000003B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000280, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773C0, + 0x033, 0x0000003E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000003D, + 0x03F, 0x000773E8, + 0x033, 0x0000003C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000003B, + 0x03F, 0x00000287, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000207, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773C0, + 0x033, 0x0000003E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000003D, + 0x03F, 0x000773E8, + 0x033, 0x0000003C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000003B, + 0x03F, 0x00000287, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000207, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773C0, + 0x033, 0x0000003E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000003D, + 0x03F, 0x000773E8, + 0x033, 0x0000003C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000003B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000280, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773C0, + 0x033, 0x0000003E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000003D, + 0x03F, 0x000773E8, + 0x033, 0x0000003C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000003B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000280, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773C0, + 0x033, 0x0000003E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000003D, + 0x03F, 0x000773E8, + 0x033, 0x0000003C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000003B, + 0x03F, 0x00000287, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000207, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773C0, + 0x033, 0x0000003E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000003D, + 0x03F, 0x000773E8, + 0x033, 0x0000003C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000003B, + 0x03F, 0x00000287, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000207, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773C0, + 0x033, 0x0000003E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000003D, + 0x03F, 0x000773E8, + 0x033, 0x0000003C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000003B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000280, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773C0, + 0x033, 0x0000003E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000003D, + 0x03F, 0x000773E8, + 0x033, 0x0000003C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000003B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000280, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000003F, + 0x03F, 0x000773C0, + 0x033, 0x0000003E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000003D, + 0x03F, 0x000773E8, + 0x033, 0x0000003C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000003B, + 0x03F, 0x00000287, + 0x033, 0x0000003A, + 0x03F, 0x000002A8, + 0x033, 0x00000039, + 0x03F, 0x00000207, + 0x033, 0x00000038, + 0x03F, 0x000FF280, + 0x033, 0x00000037, + 0x03F, 0x00000200, + 0x033, 0x00000036, + 0x03F, 0x000001C0, + 0x033, 0x00000035, + 0x03F, 0x00000180, + 0x033, 0x00000034, + 0x03F, 0x00000040, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000003F, 0x03F, 0x000773C0, 0x033, 0x0000003E, @@ -11319,7 +21875,57 @@ const u32 array_mp_8822c_radiob[] = { 0xB0000000, 0x00000000, 0x033, 0x00000033, 0x03F, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773E8, + 0x033, 0x0000004E, + 0x03F, 0x000FF3A0, + 0x033, 0x0000004D, + 0x03F, 0x00000380, + 0x033, 0x0000004C, + 0x03F, 0x000FF380, + 0x033, 0x0000004B, + 0x03F, 0x00000300, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000280, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773E8, + 0x033, 0x0000004E, + 0x03F, 0x000FF3A0, + 0x033, 0x0000004D, + 0x03F, 0x00000380, + 0x033, 0x0000004C, + 0x03F, 0x000FF380, + 0x033, 0x0000004B, + 0x03F, 0x00000300, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000280, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000004F, 0x03F, 0x000773C0, 0x033, 0x0000004E, @@ -11344,7 +21950,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000044, 0x03F, 0x00000040, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000004F, 0x03F, 0x000773C0, 0x033, 0x0000004E, @@ -11369,7 +21975,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000044, 0x03F, 0x00000040, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000004F, 0x03F, 0x000773C0, 0x033, 0x0000004E, @@ -11394,7 +22000,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000044, 0x03F, 0x00000040, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000004F, 0x03F, 0x000773C0, 0x033, 0x0000004E, @@ -11419,7 +22025,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000044, 0x03F, 0x00000040, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000004F, 0x03F, 0x000773C0, 0x033, 0x0000004E, @@ -11444,7 +22050,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000044, 0x03F, 0x00000040, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000004F, 0x03F, 0x000773C0, 0x033, 0x0000004E, @@ -11469,7 +22075,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000044, 0x03F, 0x00000040, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000004F, 0x03F, 0x000773C0, 0x033, 0x0000004E, @@ -11494,7 +22100,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000044, 0x03F, 0x00000040, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000004F, 0x03F, 0x000773C0, 0x033, 0x0000004E, @@ -11519,57 +22125,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000044, 0x03F, 0x00000040, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x033, 0x0000004F, - 0x03F, 0x000773C0, - 0x033, 0x0000004E, - 0x03F, 0x000FF3C0, - 0x033, 0x0000004D, - 0x03F, 0x000773E8, - 0x033, 0x0000004C, - 0x03F, 0x000FF3E8, - 0x033, 0x0000004B, - 0x03F, 0x00000287, - 0x033, 0x0000004A, - 0x03F, 0x000002A8, - 0x033, 0x00000049, - 0x03F, 0x00000207, - 0x033, 0x00000048, - 0x03F, 0x000FF280, - 0x033, 0x00000047, - 0x03F, 0x00000200, - 0x033, 0x00000046, - 0x03F, 0x000001C0, - 0x033, 0x00000045, - 0x03F, 0x00000180, - 0x033, 0x00000044, - 0x03F, 0x00000040, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x033, 0x0000004F, - 0x03F, 0x000773C0, - 0x033, 0x0000004E, - 0x03F, 0x000FF3C0, - 0x033, 0x0000004D, - 0x03F, 0x000773E8, - 0x033, 0x0000004C, - 0x03F, 0x000FF3E8, - 0x033, 0x0000004B, - 0x03F, 0x00000287, - 0x033, 0x0000004A, - 0x03F, 0x000002A8, - 0x033, 0x00000049, - 0x03F, 0x00000207, - 0x033, 0x00000048, - 0x03F, 0x000FF280, - 0x033, 0x00000047, - 0x03F, 0x00000200, - 0x033, 0x00000046, - 0x03F, 0x000001C0, - 0x033, 0x00000045, - 0x03F, 0x00000180, - 0x033, 0x00000044, - 0x03F, 0x00000040, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000004F, 0x03F, 0x000773C0, 0x033, 0x0000004E, @@ -11594,7 +22150,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000044, 0x03F, 0x00000040, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000004F, 0x03F, 0x000773C0, 0x033, 0x0000004E, @@ -11619,7 +22175,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000044, 0x03F, 0x00000040, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000004F, 0x03F, 0x000773C0, 0x033, 0x0000004E, @@ -11644,7 +22200,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000044, 0x03F, 0x00000040, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000004F, 0x03F, 0x000773C0, 0x033, 0x0000004E, @@ -11669,7 +22225,57 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000044, 0x03F, 0x00000040, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773C0, + 0x033, 0x0000004E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000004D, + 0x03F, 0x000773E8, + 0x033, 0x0000004C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000004B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000280, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773C0, + 0x033, 0x0000004E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000004D, + 0x03F, 0x000773E8, + 0x033, 0x0000004C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000004B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000280, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000004F, 0x03F, 0x000773C0, 0x033, 0x0000004E, @@ -11694,7 +22300,307 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000044, 0x03F, 0x00000040, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773C0, + 0x033, 0x0000004E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000004D, + 0x03F, 0x000773E8, + 0x033, 0x0000004C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000004B, + 0x03F, 0x00000287, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000207, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773C0, + 0x033, 0x0000004E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000004D, + 0x03F, 0x000773E8, + 0x033, 0x0000004C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000004B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000280, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773C0, + 0x033, 0x0000004E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000004D, + 0x03F, 0x000773E8, + 0x033, 0x0000004C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000004B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000280, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773C0, + 0x033, 0x0000004E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000004D, + 0x03F, 0x000773E8, + 0x033, 0x0000004C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000004B, + 0x03F, 0x00000287, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000207, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773C0, + 0x033, 0x0000004E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000004D, + 0x03F, 0x000773E8, + 0x033, 0x0000004C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000004B, + 0x03F, 0x00000287, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000207, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773C0, + 0x033, 0x0000004E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000004D, + 0x03F, 0x000773E8, + 0x033, 0x0000004C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000004B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000280, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773C0, + 0x033, 0x0000004E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000004D, + 0x03F, 0x000773E8, + 0x033, 0x0000004C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000004B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000280, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773C0, + 0x033, 0x0000004E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000004D, + 0x03F, 0x000773E8, + 0x033, 0x0000004C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000004B, + 0x03F, 0x00000287, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000207, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773C0, + 0x033, 0x0000004E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000004D, + 0x03F, 0x000773E8, + 0x033, 0x0000004C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000004B, + 0x03F, 0x00000287, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000207, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773C0, + 0x033, 0x0000004E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000004D, + 0x03F, 0x000773E8, + 0x033, 0x0000004C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000004B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000280, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773C0, + 0x033, 0x0000004E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000004D, + 0x03F, 0x000773E8, + 0x033, 0x0000004C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000004B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000280, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000004F, + 0x03F, 0x000773C0, + 0x033, 0x0000004E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000004D, + 0x03F, 0x000773E8, + 0x033, 0x0000004C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000004B, + 0x03F, 0x00000287, + 0x033, 0x0000004A, + 0x03F, 0x000002A8, + 0x033, 0x00000049, + 0x03F, 0x00000207, + 0x033, 0x00000048, + 0x03F, 0x000FF280, + 0x033, 0x00000047, + 0x03F, 0x00000200, + 0x033, 0x00000046, + 0x03F, 0x000001C0, + 0x033, 0x00000045, + 0x03F, 0x00000180, + 0x033, 0x00000044, + 0x03F, 0x00000040, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000004F, 0x03F, 0x000773C0, 0x033, 0x0000004E, @@ -11747,7 +22653,57 @@ const u32 array_mp_8822c_radiob[] = { 0xB0000000, 0x00000000, 0x033, 0x00000043, 0x03F, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773E8, + 0x033, 0x0000005E, + 0x03F, 0x000FF3A0, + 0x033, 0x0000005D, + 0x03F, 0x00000380, + 0x033, 0x0000005C, + 0x03F, 0x000FF380, + 0x033, 0x0000005B, + 0x03F, 0x00000300, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000280, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773E8, + 0x033, 0x0000005E, + 0x03F, 0x000FF3A0, + 0x033, 0x0000005D, + 0x03F, 0x00000380, + 0x033, 0x0000005C, + 0x03F, 0x000FF380, + 0x033, 0x0000005B, + 0x03F, 0x00000300, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000280, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000005F, 0x03F, 0x000773C0, 0x033, 0x0000005E, @@ -11772,7 +22728,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000054, 0x03F, 0x00000040, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000005F, 0x03F, 0x000773C0, 0x033, 0x0000005E, @@ -11797,7 +22753,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000054, 0x03F, 0x00000040, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000005F, 0x03F, 0x000773C0, 0x033, 0x0000005E, @@ -11822,7 +22778,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000054, 0x03F, 0x00000040, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000005F, 0x03F, 0x000773C0, 0x033, 0x0000005E, @@ -11847,7 +22803,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000054, 0x03F, 0x00000040, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000005F, 0x03F, 0x000773C0, 0x033, 0x0000005E, @@ -11872,7 +22828,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000054, 0x03F, 0x00000040, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000005F, 0x03F, 0x000773C0, 0x033, 0x0000005E, @@ -11897,7 +22853,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000054, 0x03F, 0x00000040, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000005F, 0x03F, 0x000773C0, 0x033, 0x0000005E, @@ -11922,7 +22878,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000054, 0x03F, 0x00000040, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000005F, 0x03F, 0x000773C0, 0x033, 0x0000005E, @@ -11947,57 +22903,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000054, 0x03F, 0x00000040, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x033, 0x0000005F, - 0x03F, 0x000773C0, - 0x033, 0x0000005E, - 0x03F, 0x000FF3C0, - 0x033, 0x0000005D, - 0x03F, 0x000773E8, - 0x033, 0x0000005C, - 0x03F, 0x000FF3E8, - 0x033, 0x0000005B, - 0x03F, 0x00000287, - 0x033, 0x0000005A, - 0x03F, 0x000002A8, - 0x033, 0x00000059, - 0x03F, 0x00000207, - 0x033, 0x00000058, - 0x03F, 0x000FF280, - 0x033, 0x00000057, - 0x03F, 0x00000200, - 0x033, 0x00000056, - 0x03F, 0x000001C0, - 0x033, 0x00000055, - 0x03F, 0x00000180, - 0x033, 0x00000054, - 0x03F, 0x00000040, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x033, 0x0000005F, - 0x03F, 0x000773C0, - 0x033, 0x0000005E, - 0x03F, 0x000FF3C0, - 0x033, 0x0000005D, - 0x03F, 0x000773E8, - 0x033, 0x0000005C, - 0x03F, 0x000FF3E8, - 0x033, 0x0000005B, - 0x03F, 0x00000287, - 0x033, 0x0000005A, - 0x03F, 0x000002A8, - 0x033, 0x00000059, - 0x03F, 0x00000207, - 0x033, 0x00000058, - 0x03F, 0x000FF280, - 0x033, 0x00000057, - 0x03F, 0x00000200, - 0x033, 0x00000056, - 0x03F, 0x000001C0, - 0x033, 0x00000055, - 0x03F, 0x00000180, - 0x033, 0x00000054, - 0x03F, 0x00000040, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000005F, 0x03F, 0x000773C0, 0x033, 0x0000005E, @@ -12022,7 +22928,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000054, 0x03F, 0x00000040, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000005F, 0x03F, 0x000773C0, 0x033, 0x0000005E, @@ -12047,7 +22953,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000054, 0x03F, 0x00000040, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000005F, 0x03F, 0x000773C0, 0x033, 0x0000005E, @@ -12072,7 +22978,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000054, 0x03F, 0x00000040, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000005F, 0x03F, 0x000773C0, 0x033, 0x0000005E, @@ -12097,7 +23003,57 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000054, 0x03F, 0x00000040, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773C0, + 0x033, 0x0000005E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000005D, + 0x03F, 0x000773E8, + 0x033, 0x0000005C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000005B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000280, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773C0, + 0x033, 0x0000005E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000005D, + 0x03F, 0x000773E8, + 0x033, 0x0000005C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000005B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000280, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000005F, 0x03F, 0x000773C0, 0x033, 0x0000005E, @@ -12122,7 +23078,307 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000180, 0x033, 0x00000054, 0x03F, 0x00000040, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773C0, + 0x033, 0x0000005E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000005D, + 0x03F, 0x000773E8, + 0x033, 0x0000005C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000005B, + 0x03F, 0x00000287, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000207, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773C0, + 0x033, 0x0000005E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000005D, + 0x03F, 0x000773E8, + 0x033, 0x0000005C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000005B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000280, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773C0, + 0x033, 0x0000005E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000005D, + 0x03F, 0x000773E8, + 0x033, 0x0000005C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000005B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000280, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773C0, + 0x033, 0x0000005E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000005D, + 0x03F, 0x000773E8, + 0x033, 0x0000005C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000005B, + 0x03F, 0x00000287, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000207, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773C0, + 0x033, 0x0000005E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000005D, + 0x03F, 0x000773E8, + 0x033, 0x0000005C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000005B, + 0x03F, 0x00000287, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000207, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773C0, + 0x033, 0x0000005E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000005D, + 0x03F, 0x000773E8, + 0x033, 0x0000005C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000005B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000280, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773C0, + 0x033, 0x0000005E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000005D, + 0x03F, 0x000773E8, + 0x033, 0x0000005C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000005B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000280, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773C0, + 0x033, 0x0000005E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000005D, + 0x03F, 0x000773E8, + 0x033, 0x0000005C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000005B, + 0x03F, 0x00000287, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000207, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773C0, + 0x033, 0x0000005E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000005D, + 0x03F, 0x000773E8, + 0x033, 0x0000005C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000005B, + 0x03F, 0x00000287, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000207, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773C0, + 0x033, 0x0000005E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000005D, + 0x03F, 0x000773E8, + 0x033, 0x0000005C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000005B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000280, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773C0, + 0x033, 0x0000005E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000005D, + 0x03F, 0x000773E8, + 0x033, 0x0000005C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000005B, + 0x03F, 0x000FF3A0, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000280, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x0000005F, + 0x03F, 0x000773C0, + 0x033, 0x0000005E, + 0x03F, 0x000FF3C0, + 0x033, 0x0000005D, + 0x03F, 0x000773E8, + 0x033, 0x0000005C, + 0x03F, 0x000FF3E8, + 0x033, 0x0000005B, + 0x03F, 0x00000287, + 0x033, 0x0000005A, + 0x03F, 0x000002A8, + 0x033, 0x00000059, + 0x03F, 0x00000207, + 0x033, 0x00000058, + 0x03F, 0x000FF280, + 0x033, 0x00000057, + 0x03F, 0x00000200, + 0x033, 0x00000056, + 0x03F, 0x000001C0, + 0x033, 0x00000055, + 0x03F, 0x00000180, + 0x033, 0x00000054, + 0x03F, 0x00000040, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x0000005F, 0x03F, 0x000773C0, 0x033, 0x0000005E, @@ -12175,37 +23431,65 @@ const u32 array_mp_8822c_radiob[] = { 0xB0000000, 0x00000000, 0x033, 0x00000053, 0x03F, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00000000, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00000000, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00000000, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00000000, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00000000, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00000000, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00000000, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00000000, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00000000, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00000000, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00000000, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00000000, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00000000, 0xA0000000, 0x00000000, 0x0EF, 0x00000000, @@ -12224,7 +23508,301 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x00000002, 0x03F, 0x00000000, 0x0EF, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001910, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000008, + 0x03E, 0x00001910, + 0x03F, 0x00020000, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000010, + 0x03E, 0x00001910, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001910, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001910, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001910, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001910, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000008, + 0x03E, 0x00001910, + 0x03F, 0x00020000, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000010, + 0x03E, 0x00001910, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001910, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001910, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001910, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00020000, 0x033, 0x00000000, 0x03E, 0x00001C86, @@ -12371,7 +23949,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03E, 0x00000000, 0x03F, 0x0002C010, 0x0EF, 0x00000000, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00020000, 0x033, 0x00000000, 0x03E, 0x00001C86, @@ -12518,7 +24096,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03E, 0x00000000, 0x03F, 0x0002C010, 0x0EF, 0x00000000, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00020000, 0x033, 0x00000000, 0x03E, 0x00001C86, @@ -12665,7 +24243,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03E, 0x00000000, 0x03F, 0x0002C010, 0x0EF, 0x00000000, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00020000, 0x033, 0x00000000, 0x03E, 0x00001C86, @@ -12812,7 +24390,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03E, 0x00000000, 0x03F, 0x0002C010, 0x0EF, 0x00000000, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00020000, 0x033, 0x00000000, 0x03E, 0x00001C86, @@ -12959,7 +24537,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03E, 0x00000000, 0x03F, 0x0002C010, 0x0EF, 0x00000000, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00020000, 0x033, 0x00000000, 0x03E, 0x00001C86, @@ -13106,7 +24684,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03E, 0x00000000, 0x03F, 0x0002C010, 0x0EF, 0x00000000, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00020000, 0x033, 0x00000000, 0x03E, 0x00001C86, @@ -13253,7 +24831,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03E, 0x00000000, 0x03F, 0x0002C010, 0x0EF, 0x00000000, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00020000, 0x033, 0x00000000, 0x03E, 0x00001C86, @@ -13400,301 +24978,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03E, 0x00000000, 0x03F, 0x0002C010, 0x0EF, 0x00000000, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x0EF, 0x00020000, - 0x033, 0x00000000, - 0x03E, 0x00001C86, - 0x03F, 0x00020000, - 0x033, 0x00000001, - 0x03E, 0x00001C02, - 0x03F, 0x00020000, - 0x033, 0x00000002, - 0x03E, 0x00000F02, - 0x03F, 0x00020000, - 0x033, 0x00000003, - 0x03E, 0x00000F00, - 0x03F, 0x00020000, - 0x033, 0x00000004, - 0x03E, 0x00000086, - 0x03F, 0x00020000, - 0x033, 0x00000005, - 0x03E, 0x00000002, - 0x03F, 0x00020000, - 0x033, 0x00000006, - 0x03E, 0x00000000, - 0x03F, 0x00020000, - 0x033, 0x00000007, - 0x03E, 0x00000000, - 0x03F, 0x0002F81C, - 0x033, 0x00000008, - 0x03E, 0x00000000, - 0x03F, 0x0002F81C, - 0x033, 0x00000009, - 0x03E, 0x00001C02, - 0x03F, 0x00020000, - 0x033, 0x0000000A, - 0x03E, 0x00000F02, - 0x03F, 0x00020000, - 0x033, 0x0000000B, - 0x03E, 0x00000F00, - 0x03F, 0x00020000, - 0x033, 0x0000000C, - 0x03E, 0x00000086, - 0x03F, 0x00020000, - 0x033, 0x0000000D, - 0x03E, 0x00000002, - 0x03F, 0x00020000, - 0x033, 0x0000000E, - 0x03E, 0x00000000, - 0x03F, 0x00020000, - 0x033, 0x0000000F, - 0x03E, 0x00000000, - 0x03F, 0x0002F81C, - 0x033, 0x00000010, - 0x03E, 0x00001C86, - 0x03F, 0x00020000, - 0x033, 0x00000011, - 0x03E, 0x00001C02, - 0x03F, 0x00020000, - 0x033, 0x00000012, - 0x03E, 0x00000F02, - 0x03F, 0x00020000, - 0x033, 0x00000013, - 0x03E, 0x00000F00, - 0x03F, 0x00020000, - 0x033, 0x00000014, - 0x03E, 0x00000086, - 0x03F, 0x00020000, - 0x033, 0x00000015, - 0x03E, 0x00000002, - 0x03F, 0x00020000, - 0x033, 0x00000016, - 0x03E, 0x00000000, - 0x03F, 0x00020000, - 0x033, 0x00000017, - 0x03E, 0x00000000, - 0x03F, 0x0002C010, - 0x033, 0x00000018, - 0x03E, 0x00001C86, - 0x03F, 0x00020000, - 0x033, 0x00000019, - 0x03E, 0x00001C02, - 0x03F, 0x00020000, - 0x033, 0x0000001A, - 0x03E, 0x00000F02, - 0x03F, 0x00020000, - 0x033, 0x0000001B, - 0x03E, 0x00000F00, - 0x03F, 0x00020000, - 0x033, 0x0000001C, - 0x03E, 0x00000086, - 0x03F, 0x00020000, - 0x033, 0x0000001D, - 0x03E, 0x00000002, - 0x03F, 0x00020000, - 0x033, 0x0000001E, - 0x03E, 0x00000000, - 0x03F, 0x00020000, - 0x033, 0x0000001F, - 0x03E, 0x00000000, - 0x03F, 0x0002C010, - 0x033, 0x00000020, - 0x03E, 0x00001C86, - 0x03F, 0x00020000, - 0x033, 0x00000021, - 0x03E, 0x00001C02, - 0x03F, 0x00020000, - 0x033, 0x00000022, - 0x03E, 0x00000F02, - 0x03F, 0x00020000, - 0x033, 0x00000023, - 0x03E, 0x00000F00, - 0x03F, 0x00020000, - 0x033, 0x00000024, - 0x03E, 0x00000086, - 0x03F, 0x00020000, - 0x033, 0x00000025, - 0x03E, 0x00000002, - 0x03F, 0x00020000, - 0x033, 0x00000026, - 0x03E, 0x00000000, - 0x03F, 0x00020000, - 0x033, 0x00000027, - 0x03E, 0x00000000, - 0x03F, 0x0002C010, - 0x033, 0x00000028, - 0x03E, 0x00001C86, - 0x03F, 0x00020000, - 0x033, 0x00000029, - 0x03E, 0x00001C02, - 0x03F, 0x00020000, - 0x033, 0x0000002A, - 0x03E, 0x00000F02, - 0x03F, 0x00020000, - 0x033, 0x0000002B, - 0x03E, 0x00000F00, - 0x03F, 0x00020000, - 0x033, 0x0000002C, - 0x03E, 0x00000086, - 0x03F, 0x00020000, - 0x033, 0x0000002D, - 0x03E, 0x00000002, - 0x03F, 0x00020000, - 0x033, 0x0000002E, - 0x03E, 0x00000000, - 0x03F, 0x00020000, - 0x033, 0x0000002F, - 0x03E, 0x00000000, - 0x03F, 0x0002C010, - 0x0EF, 0x00000000, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x0EF, 0x00020000, - 0x033, 0x00000000, - 0x03E, 0x00001C86, - 0x03F, 0x00020000, - 0x033, 0x00000001, - 0x03E, 0x00001C02, - 0x03F, 0x00020000, - 0x033, 0x00000002, - 0x03E, 0x00000F02, - 0x03F, 0x00020000, - 0x033, 0x00000003, - 0x03E, 0x00000F00, - 0x03F, 0x00020000, - 0x033, 0x00000004, - 0x03E, 0x00000086, - 0x03F, 0x00020000, - 0x033, 0x00000005, - 0x03E, 0x00000002, - 0x03F, 0x00020000, - 0x033, 0x00000006, - 0x03E, 0x00000000, - 0x03F, 0x00020000, - 0x033, 0x00000007, - 0x03E, 0x00000000, - 0x03F, 0x0002F81C, - 0x033, 0x00000008, - 0x03E, 0x00000000, - 0x03F, 0x0002F81C, - 0x033, 0x00000009, - 0x03E, 0x00001C02, - 0x03F, 0x00020000, - 0x033, 0x0000000A, - 0x03E, 0x00000F02, - 0x03F, 0x00020000, - 0x033, 0x0000000B, - 0x03E, 0x00000F00, - 0x03F, 0x00020000, - 0x033, 0x0000000C, - 0x03E, 0x00000086, - 0x03F, 0x00020000, - 0x033, 0x0000000D, - 0x03E, 0x00000002, - 0x03F, 0x00020000, - 0x033, 0x0000000E, - 0x03E, 0x00000000, - 0x03F, 0x00020000, - 0x033, 0x0000000F, - 0x03E, 0x00000000, - 0x03F, 0x0002F81C, - 0x033, 0x00000010, - 0x03E, 0x00001C86, - 0x03F, 0x00020000, - 0x033, 0x00000011, - 0x03E, 0x00001C02, - 0x03F, 0x00020000, - 0x033, 0x00000012, - 0x03E, 0x00000F02, - 0x03F, 0x00020000, - 0x033, 0x00000013, - 0x03E, 0x00000F00, - 0x03F, 0x00020000, - 0x033, 0x00000014, - 0x03E, 0x00000086, - 0x03F, 0x00020000, - 0x033, 0x00000015, - 0x03E, 0x00000002, - 0x03F, 0x00020000, - 0x033, 0x00000016, - 0x03E, 0x00000000, - 0x03F, 0x00020000, - 0x033, 0x00000017, - 0x03E, 0x00000000, - 0x03F, 0x0002C010, - 0x033, 0x00000018, - 0x03E, 0x00001C86, - 0x03F, 0x00020000, - 0x033, 0x00000019, - 0x03E, 0x00001C02, - 0x03F, 0x00020000, - 0x033, 0x0000001A, - 0x03E, 0x00000F02, - 0x03F, 0x00020000, - 0x033, 0x0000001B, - 0x03E, 0x00000F00, - 0x03F, 0x00020000, - 0x033, 0x0000001C, - 0x03E, 0x00000086, - 0x03F, 0x00020000, - 0x033, 0x0000001D, - 0x03E, 0x00000002, - 0x03F, 0x00020000, - 0x033, 0x0000001E, - 0x03E, 0x00000000, - 0x03F, 0x00020000, - 0x033, 0x0000001F, - 0x03E, 0x00000000, - 0x03F, 0x0002C010, - 0x033, 0x00000020, - 0x03E, 0x00001C86, - 0x03F, 0x00020000, - 0x033, 0x00000021, - 0x03E, 0x00001C02, - 0x03F, 0x00020000, - 0x033, 0x00000022, - 0x03E, 0x00000F02, - 0x03F, 0x00020000, - 0x033, 0x00000023, - 0x03E, 0x00000F00, - 0x03F, 0x00020000, - 0x033, 0x00000024, - 0x03E, 0x00000086, - 0x03F, 0x00020000, - 0x033, 0x00000025, - 0x03E, 0x00000002, - 0x03F, 0x00020000, - 0x033, 0x00000026, - 0x03E, 0x00000000, - 0x03F, 0x00020000, - 0x033, 0x00000027, - 0x03E, 0x00000000, - 0x03F, 0x0002C010, - 0x033, 0x00000028, - 0x03E, 0x00001C86, - 0x03F, 0x00020000, - 0x033, 0x00000029, - 0x03E, 0x00001C02, - 0x03F, 0x00020000, - 0x033, 0x0000002A, - 0x03E, 0x00000F02, - 0x03F, 0x00020000, - 0x033, 0x0000002B, - 0x03E, 0x00000F00, - 0x03F, 0x00020000, - 0x033, 0x0000002C, - 0x03E, 0x00000086, - 0x03F, 0x00020000, - 0x033, 0x0000002D, - 0x03E, 0x00000002, - 0x03F, 0x00020000, - 0x033, 0x0000002E, - 0x03E, 0x00000000, - 0x03F, 0x00020000, - 0x033, 0x0000002F, - 0x03E, 0x00000000, - 0x03F, 0x0002C010, - 0x0EF, 0x00000000, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00020000, 0x033, 0x00000000, 0x03E, 0x00001C86, @@ -13841,7 +25125,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03E, 0x00000000, 0x03F, 0x0002C010, 0x0EF, 0x00000000, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00020000, 0x033, 0x00000000, 0x03E, 0x00001C86, @@ -13988,301 +25272,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03E, 0x00000000, 0x03F, 0x0002C010, 0x0EF, 0x00000000, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x0EF, 0x00020000, - 0x033, 0x00000000, - 0x03E, 0x00001C86, - 0x03F, 0x00020000, - 0x033, 0x00000001, - 0x03E, 0x00001C02, - 0x03F, 0x00020000, - 0x033, 0x00000002, - 0x03E, 0x00000F02, - 0x03F, 0x00020000, - 0x033, 0x00000003, - 0x03E, 0x00000F00, - 0x03F, 0x00020000, - 0x033, 0x00000004, - 0x03E, 0x00000086, - 0x03F, 0x00020000, - 0x033, 0x00000005, - 0x03E, 0x00000002, - 0x03F, 0x00020000, - 0x033, 0x00000006, - 0x03E, 0x00000000, - 0x03F, 0x00020000, - 0x033, 0x00000007, - 0x03E, 0x00000000, - 0x03F, 0x0002C010, - 0x033, 0x00000008, - 0x03E, 0x00000000, - 0x03F, 0x0002F81C, - 0x033, 0x00000009, - 0x03E, 0x00001C02, - 0x03F, 0x00020000, - 0x033, 0x0000000A, - 0x03E, 0x00000F02, - 0x03F, 0x00020000, - 0x033, 0x0000000B, - 0x03E, 0x00000F00, - 0x03F, 0x00020000, - 0x033, 0x0000000C, - 0x03E, 0x00000086, - 0x03F, 0x00020000, - 0x033, 0x0000000D, - 0x03E, 0x00000002, - 0x03F, 0x00020000, - 0x033, 0x0000000E, - 0x03E, 0x00000000, - 0x03F, 0x00020000, - 0x033, 0x0000000F, - 0x03E, 0x00000000, - 0x03F, 0x0002F81C, - 0x033, 0x00000010, - 0x03E, 0x00001C86, - 0x03F, 0x00020000, - 0x033, 0x00000011, - 0x03E, 0x00001C02, - 0x03F, 0x00020000, - 0x033, 0x00000012, - 0x03E, 0x00000F02, - 0x03F, 0x00020000, - 0x033, 0x00000013, - 0x03E, 0x00000F00, - 0x03F, 0x00020000, - 0x033, 0x00000014, - 0x03E, 0x00000086, - 0x03F, 0x00020000, - 0x033, 0x00000015, - 0x03E, 0x00000002, - 0x03F, 0x00020000, - 0x033, 0x00000016, - 0x03E, 0x00000000, - 0x03F, 0x00020000, - 0x033, 0x00000017, - 0x03E, 0x00000000, - 0x03F, 0x0002C010, - 0x033, 0x00000018, - 0x03E, 0x00001C86, - 0x03F, 0x00020000, - 0x033, 0x00000019, - 0x03E, 0x00001C02, - 0x03F, 0x00020000, - 0x033, 0x0000001A, - 0x03E, 0x00000F02, - 0x03F, 0x00020000, - 0x033, 0x0000001B, - 0x03E, 0x00000F00, - 0x03F, 0x00020000, - 0x033, 0x0000001C, - 0x03E, 0x00000086, - 0x03F, 0x00020000, - 0x033, 0x0000001D, - 0x03E, 0x00000002, - 0x03F, 0x00020000, - 0x033, 0x0000001E, - 0x03E, 0x00000000, - 0x03F, 0x00020000, - 0x033, 0x0000001F, - 0x03E, 0x00000000, - 0x03F, 0x0002C010, - 0x033, 0x00000020, - 0x03E, 0x00001C86, - 0x03F, 0x00020000, - 0x033, 0x00000021, - 0x03E, 0x00001C02, - 0x03F, 0x00020000, - 0x033, 0x00000022, - 0x03E, 0x00000F02, - 0x03F, 0x00020000, - 0x033, 0x00000023, - 0x03E, 0x00000F00, - 0x03F, 0x00020000, - 0x033, 0x00000024, - 0x03E, 0x00000086, - 0x03F, 0x00020000, - 0x033, 0x00000025, - 0x03E, 0x00000002, - 0x03F, 0x00020000, - 0x033, 0x00000026, - 0x03E, 0x00000000, - 0x03F, 0x00020000, - 0x033, 0x00000027, - 0x03E, 0x00000000, - 0x03F, 0x0002C010, - 0x033, 0x00000028, - 0x03E, 0x00001C86, - 0x03F, 0x00020000, - 0x033, 0x00000029, - 0x03E, 0x00001C02, - 0x03F, 0x00020000, - 0x033, 0x0000002A, - 0x03E, 0x00000F02, - 0x03F, 0x00020000, - 0x033, 0x0000002B, - 0x03E, 0x00000F00, - 0x03F, 0x00020000, - 0x033, 0x0000002C, - 0x03E, 0x00000086, - 0x03F, 0x00020000, - 0x033, 0x0000002D, - 0x03E, 0x00000002, - 0x03F, 0x00020000, - 0x033, 0x0000002E, - 0x03E, 0x00000000, - 0x03F, 0x00020000, - 0x033, 0x0000002F, - 0x03E, 0x00000000, - 0x03F, 0x0002C010, - 0x0EF, 0x00000000, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x0EF, 0x00020000, - 0x033, 0x00000000, - 0x03E, 0x00001C86, - 0x03F, 0x00020000, - 0x033, 0x00000001, - 0x03E, 0x00001C02, - 0x03F, 0x00020000, - 0x033, 0x00000002, - 0x03E, 0x00000F02, - 0x03F, 0x00020000, - 0x033, 0x00000003, - 0x03E, 0x00000F00, - 0x03F, 0x00020000, - 0x033, 0x00000004, - 0x03E, 0x00000086, - 0x03F, 0x00020000, - 0x033, 0x00000005, - 0x03E, 0x00000002, - 0x03F, 0x00020000, - 0x033, 0x00000006, - 0x03E, 0x00000000, - 0x03F, 0x00020000, - 0x033, 0x00000007, - 0x03E, 0x00000000, - 0x03F, 0x0002C010, - 0x033, 0x00000008, - 0x03E, 0x00000000, - 0x03F, 0x0002F81C, - 0x033, 0x00000009, - 0x03E, 0x00001C02, - 0x03F, 0x00020000, - 0x033, 0x0000000A, - 0x03E, 0x00000F02, - 0x03F, 0x00020000, - 0x033, 0x0000000B, - 0x03E, 0x00000F00, - 0x03F, 0x00020000, - 0x033, 0x0000000C, - 0x03E, 0x00000086, - 0x03F, 0x00020000, - 0x033, 0x0000000D, - 0x03E, 0x00000002, - 0x03F, 0x00020000, - 0x033, 0x0000000E, - 0x03E, 0x00000000, - 0x03F, 0x00020000, - 0x033, 0x0000000F, - 0x03E, 0x00000000, - 0x03F, 0x0002F81C, - 0x033, 0x00000010, - 0x03E, 0x00001C86, - 0x03F, 0x00020000, - 0x033, 0x00000011, - 0x03E, 0x00001C02, - 0x03F, 0x00020000, - 0x033, 0x00000012, - 0x03E, 0x00000F02, - 0x03F, 0x00020000, - 0x033, 0x00000013, - 0x03E, 0x00000F00, - 0x03F, 0x00020000, - 0x033, 0x00000014, - 0x03E, 0x00000086, - 0x03F, 0x00020000, - 0x033, 0x00000015, - 0x03E, 0x00000002, - 0x03F, 0x00020000, - 0x033, 0x00000016, - 0x03E, 0x00000000, - 0x03F, 0x00020000, - 0x033, 0x00000017, - 0x03E, 0x00000000, - 0x03F, 0x0002C010, - 0x033, 0x00000018, - 0x03E, 0x00001C86, - 0x03F, 0x00020000, - 0x033, 0x00000019, - 0x03E, 0x00001C02, - 0x03F, 0x00020000, - 0x033, 0x0000001A, - 0x03E, 0x00000F02, - 0x03F, 0x00020000, - 0x033, 0x0000001B, - 0x03E, 0x00000F00, - 0x03F, 0x00020000, - 0x033, 0x0000001C, - 0x03E, 0x00000086, - 0x03F, 0x00020000, - 0x033, 0x0000001D, - 0x03E, 0x00000002, - 0x03F, 0x00020000, - 0x033, 0x0000001E, - 0x03E, 0x00000000, - 0x03F, 0x00020000, - 0x033, 0x0000001F, - 0x03E, 0x00000000, - 0x03F, 0x0002C010, - 0x033, 0x00000020, - 0x03E, 0x00001C86, - 0x03F, 0x00020000, - 0x033, 0x00000021, - 0x03E, 0x00001C02, - 0x03F, 0x00020000, - 0x033, 0x00000022, - 0x03E, 0x00000F02, - 0x03F, 0x00020000, - 0x033, 0x00000023, - 0x03E, 0x00000F00, - 0x03F, 0x00020000, - 0x033, 0x00000024, - 0x03E, 0x00000086, - 0x03F, 0x00020000, - 0x033, 0x00000025, - 0x03E, 0x00000002, - 0x03F, 0x00020000, - 0x033, 0x00000026, - 0x03E, 0x00000000, - 0x03F, 0x00020000, - 0x033, 0x00000027, - 0x03E, 0x00000000, - 0x03F, 0x0002C010, - 0x033, 0x00000028, - 0x03E, 0x00001C86, - 0x03F, 0x00020000, - 0x033, 0x00000029, - 0x03E, 0x00001C02, - 0x03F, 0x00020000, - 0x033, 0x0000002A, - 0x03E, 0x00000F02, - 0x03F, 0x00020000, - 0x033, 0x0000002B, - 0x03E, 0x00000F00, - 0x03F, 0x00020000, - 0x033, 0x0000002C, - 0x03E, 0x00000086, - 0x03F, 0x00020000, - 0x033, 0x0000002D, - 0x03E, 0x00000002, - 0x03F, 0x00020000, - 0x033, 0x0000002E, - 0x03E, 0x00000000, - 0x03F, 0x00020000, - 0x033, 0x0000002F, - 0x03E, 0x00000000, - 0x03F, 0x0002C010, - 0x0EF, 0x00000000, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00020000, 0x033, 0x00000000, 0x03E, 0x00001C86, @@ -14429,7 +25419,2359 @@ const u32 array_mp_8822c_radiob[] = { 0x03E, 0x00000000, 0x03F, 0x0002C010, 0x0EF, 0x00000000, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000008, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000010, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000008, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000010, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000008, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000010, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000008, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000010, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000008, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000010, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000008, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000010, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000008, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000010, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000008, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000010, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000008, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000010, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000008, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000010, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000008, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000010, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000008, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000010, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000008, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000010, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000008, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000010, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000008, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000010, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x0EF, 0x00020000, + 0x033, 0x00000000, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000001, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000002, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000003, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000004, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000005, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000006, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000007, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000008, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000009, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000000A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000000B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000000C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000000D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000000E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000000F, + 0x03E, 0x00000000, + 0x03F, 0x0002F81C, + 0x033, 0x00000010, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000011, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000012, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000013, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000014, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000015, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000016, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000017, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000018, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000019, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000001A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000001B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000001C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000001D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000001E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000001F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000020, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000021, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x00000022, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x00000023, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x00000024, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x00000025, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x00000026, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x00000027, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x033, 0x00000028, + 0x03E, 0x00001C86, + 0x03F, 0x00020000, + 0x033, 0x00000029, + 0x03E, 0x00001C02, + 0x03F, 0x00020000, + 0x033, 0x0000002A, + 0x03E, 0x00000F02, + 0x03F, 0x00020000, + 0x033, 0x0000002B, + 0x03E, 0x00000F00, + 0x03F, 0x00020000, + 0x033, 0x0000002C, + 0x03E, 0x00000086, + 0x03F, 0x00020000, + 0x033, 0x0000002D, + 0x03E, 0x00000002, + 0x03F, 0x00020000, + 0x033, 0x0000002E, + 0x03E, 0x00000000, + 0x03F, 0x00020000, + 0x033, 0x0000002F, + 0x03E, 0x00000000, + 0x03F, 0x0002C010, + 0x0EF, 0x00000000, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x0EF, 0x00020000, 0x033, 0x00000000, 0x03E, 0x00001C86, @@ -14728,43 +28070,125 @@ const u32 array_mp_8822c_radiob[] = { 0x01B, 0x00003A40, 0x061, 0x0000D233, 0x062, 0x0004D232, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x063, 0x00000C02, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x063, 0x00000C02, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x063, 0x00000002, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x063, 0x00000002, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x063, 0x00000002, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x063, 0x00000002, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x063, 0x00000002, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x063, 0x00000002, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x063, 0x00000002, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x063, 0x00000002, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x063, 0x00000002, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x063, 0x00000002, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x063, 0x00000002, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x063, 0x00000002, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x063, 0x00000002, 0xA0000000, 0x00000000, 0x063, 0x00000C02, 0xB0000000, 0x00000000, 0x0EF, 0x00000200, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000233, + 0x030, 0x00001233, + 0x030, 0x00002233, + 0x030, 0x00003233, + 0x030, 0x00004203, + 0x030, 0x00005233, + 0x030, 0x00006233, + 0x030, 0x00007233, + 0x030, 0x00008203, + 0x030, 0x00009233, + 0x030, 0x0000A233, + 0x030, 0x0000B233, + 0x030, 0x0000C233, + 0x030, 0x0000D233, + 0x030, 0x0000E203, + 0x030, 0x0000F233, + 0x030, 0x00010233, + 0x030, 0x00011233, + 0x030, 0x00012203, + 0x030, 0x00013233, + 0x030, 0x00014233, + 0x030, 0x00015233, + 0x030, 0x00016203, + 0x030, 0x00017233, + 0x030, 0x00018203, + 0x030, 0x00019233, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000233, + 0x030, 0x00001233, + 0x030, 0x00002233, + 0x030, 0x00003233, + 0x030, 0x00004203, + 0x030, 0x00005233, + 0x030, 0x00006233, + 0x030, 0x00007233, + 0x030, 0x00008203, + 0x030, 0x00009233, + 0x030, 0x0000A233, + 0x030, 0x0000B233, + 0x030, 0x0000C233, + 0x030, 0x0000D233, + 0x030, 0x0000E203, + 0x030, 0x0000F233, + 0x030, 0x00010233, + 0x030, 0x00011233, + 0x030, 0x00012203, + 0x030, 0x00013233, + 0x030, 0x00014233, + 0x030, 0x00015233, + 0x030, 0x00016203, + 0x030, 0x00017233, + 0x030, 0x00018203, + 0x030, 0x00019233, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000237, 0x030, 0x00001237, 0x030, 0x00002237, @@ -14791,7 +28215,7 @@ const u32 array_mp_8822c_radiob[] = { 0x030, 0x00017237, 0x030, 0x00018207, 0x030, 0x00019237, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000237, 0x030, 0x00001237, 0x030, 0x00002237, @@ -14818,7 +28242,7 @@ const u32 array_mp_8822c_radiob[] = { 0x030, 0x00017237, 0x030, 0x00018207, 0x030, 0x00019237, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000237, 0x030, 0x00001237, 0x030, 0x00002237, @@ -14845,7 +28269,7 @@ const u32 array_mp_8822c_radiob[] = { 0x030, 0x00017237, 0x030, 0x00018207, 0x030, 0x00019237, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000237, 0x030, 0x00001237, 0x030, 0x00002237, @@ -14872,7 +28296,7 @@ const u32 array_mp_8822c_radiob[] = { 0x030, 0x00017237, 0x030, 0x00018207, 0x030, 0x00019237, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000238, 0x030, 0x00001238, 0x030, 0x00002238, @@ -14899,7 +28323,7 @@ const u32 array_mp_8822c_radiob[] = { 0x030, 0x00017238, 0x030, 0x00018228, 0x030, 0x00019238, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000238, 0x030, 0x00001238, 0x030, 0x00002238, @@ -14926,7 +28350,7 @@ const u32 array_mp_8822c_radiob[] = { 0x030, 0x00017238, 0x030, 0x00018228, 0x030, 0x00019238, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000239, 0x030, 0x00001239, 0x030, 0x00002239, @@ -14953,7 +28377,7 @@ const u32 array_mp_8822c_radiob[] = { 0x030, 0x00017239, 0x030, 0x00018209, 0x030, 0x00019239, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000239, 0x030, 0x00001239, 0x030, 0x00002239, @@ -14980,61 +28404,7 @@ const u32 array_mp_8822c_radiob[] = { 0x030, 0x00017239, 0x030, 0x00018209, 0x030, 0x00019239, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x030, 0x00000239, - 0x030, 0x00001239, - 0x030, 0x00002239, - 0x030, 0x00003239, - 0x030, 0x00004239, - 0x030, 0x00005239, - 0x030, 0x00006239, - 0x030, 0x00007239, - 0x030, 0x00008239, - 0x030, 0x00009239, - 0x030, 0x0000A239, - 0x030, 0x0000B239, - 0x030, 0x0000C239, - 0x030, 0x0000D239, - 0x030, 0x0000E209, - 0x030, 0x0000F239, - 0x030, 0x00010239, - 0x030, 0x00011239, - 0x030, 0x00012209, - 0x030, 0x00013239, - 0x030, 0x00014239, - 0x030, 0x00015239, - 0x030, 0x00016209, - 0x030, 0x00017239, - 0x030, 0x00018209, - 0x030, 0x00019239, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x030, 0x00000239, - 0x030, 0x00001239, - 0x030, 0x00002239, - 0x030, 0x00003239, - 0x030, 0x00004239, - 0x030, 0x00005239, - 0x030, 0x00006239, - 0x030, 0x00007239, - 0x030, 0x00008239, - 0x030, 0x00009239, - 0x030, 0x0000A239, - 0x030, 0x0000B239, - 0x030, 0x0000C239, - 0x030, 0x0000D239, - 0x030, 0x0000E209, - 0x030, 0x0000F239, - 0x030, 0x00010239, - 0x030, 0x00011239, - 0x030, 0x00012209, - 0x030, 0x00013239, - 0x030, 0x00014239, - 0x030, 0x00015239, - 0x030, 0x00016209, - 0x030, 0x00017239, - 0x030, 0x00018209, - 0x030, 0x00019239, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000238, 0x030, 0x00001238, 0x030, 0x00002238, @@ -15061,7 +28431,7 @@ const u32 array_mp_8822c_radiob[] = { 0x030, 0x00017238, 0x030, 0x00018228, 0x030, 0x00019238, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000238, 0x030, 0x00001238, 0x030, 0x00002238, @@ -15088,7 +28458,7 @@ const u32 array_mp_8822c_radiob[] = { 0x030, 0x00017238, 0x030, 0x00018228, 0x030, 0x00019238, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000239, 0x030, 0x00001239, 0x030, 0x00002239, @@ -15115,7 +28485,7 @@ const u32 array_mp_8822c_radiob[] = { 0x030, 0x00017239, 0x030, 0x00018209, 0x030, 0x00019239, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000239, 0x030, 0x00001239, 0x030, 0x00002239, @@ -15142,7 +28512,61 @@ const u32 array_mp_8822c_radiob[] = { 0x030, 0x00017239, 0x030, 0x00018209, 0x030, 0x00019239, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000238, + 0x030, 0x00001238, + 0x030, 0x00002238, + 0x030, 0x00003238, + 0x030, 0x00004228, + 0x030, 0x00005238, + 0x030, 0x00006238, + 0x030, 0x00007238, + 0x030, 0x00008228, + 0x030, 0x00009238, + 0x030, 0x0000A238, + 0x030, 0x0000B238, + 0x030, 0x0000C238, + 0x030, 0x0000D238, + 0x030, 0x0000E228, + 0x030, 0x0000F238, + 0x030, 0x00010238, + 0x030, 0x00011238, + 0x030, 0x00012228, + 0x030, 0x00013238, + 0x030, 0x00014238, + 0x030, 0x00015238, + 0x030, 0x00016228, + 0x030, 0x00017238, + 0x030, 0x00018228, + 0x030, 0x00019238, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000238, + 0x030, 0x00001238, + 0x030, 0x00002238, + 0x030, 0x00003238, + 0x030, 0x00004228, + 0x030, 0x00005238, + 0x030, 0x00006238, + 0x030, 0x00007238, + 0x030, 0x00008228, + 0x030, 0x00009238, + 0x030, 0x0000A238, + 0x030, 0x0000B238, + 0x030, 0x0000C238, + 0x030, 0x0000D238, + 0x030, 0x0000E228, + 0x030, 0x0000F238, + 0x030, 0x00010238, + 0x030, 0x00011238, + 0x030, 0x00012228, + 0x030, 0x00013238, + 0x030, 0x00014238, + 0x030, 0x00015238, + 0x030, 0x00016228, + 0x030, 0x00017238, + 0x030, 0x00018228, + 0x030, 0x00019238, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000239, 0x030, 0x00001239, 0x030, 0x00002239, @@ -15169,7 +28593,331 @@ const u32 array_mp_8822c_radiob[] = { 0x030, 0x00017239, 0x030, 0x00018209, 0x030, 0x00019239, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000239, + 0x030, 0x00001239, + 0x030, 0x00002239, + 0x030, 0x00003239, + 0x030, 0x00004239, + 0x030, 0x00005239, + 0x030, 0x00006239, + 0x030, 0x00007239, + 0x030, 0x00008239, + 0x030, 0x00009239, + 0x030, 0x0000A239, + 0x030, 0x0000B239, + 0x030, 0x0000C239, + 0x030, 0x0000D239, + 0x030, 0x0000E209, + 0x030, 0x0000F239, + 0x030, 0x00010239, + 0x030, 0x00011239, + 0x030, 0x00012209, + 0x030, 0x00013239, + 0x030, 0x00014239, + 0x030, 0x00015239, + 0x030, 0x00016209, + 0x030, 0x00017239, + 0x030, 0x00018209, + 0x030, 0x00019239, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000238, + 0x030, 0x00001238, + 0x030, 0x00002238, + 0x030, 0x00003238, + 0x030, 0x00004228, + 0x030, 0x00005238, + 0x030, 0x00006238, + 0x030, 0x00007238, + 0x030, 0x00008228, + 0x030, 0x00009238, + 0x030, 0x0000A238, + 0x030, 0x0000B238, + 0x030, 0x0000C238, + 0x030, 0x0000D238, + 0x030, 0x0000E228, + 0x030, 0x0000F238, + 0x030, 0x00010238, + 0x030, 0x00011238, + 0x030, 0x00012228, + 0x030, 0x00013238, + 0x030, 0x00014238, + 0x030, 0x00015238, + 0x030, 0x00016228, + 0x030, 0x00017238, + 0x030, 0x00018228, + 0x030, 0x00019238, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000238, + 0x030, 0x00001238, + 0x030, 0x00002238, + 0x030, 0x00003238, + 0x030, 0x00004228, + 0x030, 0x00005238, + 0x030, 0x00006238, + 0x030, 0x00007238, + 0x030, 0x00008228, + 0x030, 0x00009238, + 0x030, 0x0000A238, + 0x030, 0x0000B238, + 0x030, 0x0000C238, + 0x030, 0x0000D238, + 0x030, 0x0000E228, + 0x030, 0x0000F238, + 0x030, 0x00010238, + 0x030, 0x00011238, + 0x030, 0x00012228, + 0x030, 0x00013238, + 0x030, 0x00014238, + 0x030, 0x00015238, + 0x030, 0x00016228, + 0x030, 0x00017238, + 0x030, 0x00018228, + 0x030, 0x00019238, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000239, + 0x030, 0x00001239, + 0x030, 0x00002239, + 0x030, 0x00003239, + 0x030, 0x00004239, + 0x030, 0x00005239, + 0x030, 0x00006239, + 0x030, 0x00007239, + 0x030, 0x00008239, + 0x030, 0x00009239, + 0x030, 0x0000A239, + 0x030, 0x0000B239, + 0x030, 0x0000C239, + 0x030, 0x0000D239, + 0x030, 0x0000E209, + 0x030, 0x0000F239, + 0x030, 0x00010239, + 0x030, 0x00011239, + 0x030, 0x00012209, + 0x030, 0x00013239, + 0x030, 0x00014239, + 0x030, 0x00015239, + 0x030, 0x00016209, + 0x030, 0x00017239, + 0x030, 0x00018209, + 0x030, 0x00019239, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000239, + 0x030, 0x00001239, + 0x030, 0x00002239, + 0x030, 0x00003239, + 0x030, 0x00004239, + 0x030, 0x00005239, + 0x030, 0x00006239, + 0x030, 0x00007239, + 0x030, 0x00008239, + 0x030, 0x00009239, + 0x030, 0x0000A239, + 0x030, 0x0000B239, + 0x030, 0x0000C239, + 0x030, 0x0000D239, + 0x030, 0x0000E209, + 0x030, 0x0000F239, + 0x030, 0x00010239, + 0x030, 0x00011239, + 0x030, 0x00012209, + 0x030, 0x00013239, + 0x030, 0x00014239, + 0x030, 0x00015239, + 0x030, 0x00016209, + 0x030, 0x00017239, + 0x030, 0x00018209, + 0x030, 0x00019239, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000238, + 0x030, 0x00001238, + 0x030, 0x00002238, + 0x030, 0x00003238, + 0x030, 0x00004228, + 0x030, 0x00005238, + 0x030, 0x00006238, + 0x030, 0x00007238, + 0x030, 0x00008228, + 0x030, 0x00009238, + 0x030, 0x0000A238, + 0x030, 0x0000B238, + 0x030, 0x0000C238, + 0x030, 0x0000D238, + 0x030, 0x0000E228, + 0x030, 0x0000F238, + 0x030, 0x00010238, + 0x030, 0x00011238, + 0x030, 0x00012228, + 0x030, 0x00013238, + 0x030, 0x00014238, + 0x030, 0x00015238, + 0x030, 0x00016228, + 0x030, 0x00017238, + 0x030, 0x00018228, + 0x030, 0x00019238, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000238, + 0x030, 0x00001238, + 0x030, 0x00002238, + 0x030, 0x00003238, + 0x030, 0x00004228, + 0x030, 0x00005238, + 0x030, 0x00006238, + 0x030, 0x00007238, + 0x030, 0x00008228, + 0x030, 0x00009238, + 0x030, 0x0000A238, + 0x030, 0x0000B238, + 0x030, 0x0000C238, + 0x030, 0x0000D238, + 0x030, 0x0000E228, + 0x030, 0x0000F238, + 0x030, 0x00010238, + 0x030, 0x00011238, + 0x030, 0x00012228, + 0x030, 0x00013238, + 0x030, 0x00014238, + 0x030, 0x00015238, + 0x030, 0x00016228, + 0x030, 0x00017238, + 0x030, 0x00018228, + 0x030, 0x00019238, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000239, + 0x030, 0x00001239, + 0x030, 0x00002239, + 0x030, 0x00003239, + 0x030, 0x00004239, + 0x030, 0x00005239, + 0x030, 0x00006239, + 0x030, 0x00007239, + 0x030, 0x00008239, + 0x030, 0x00009239, + 0x030, 0x0000A239, + 0x030, 0x0000B239, + 0x030, 0x0000C239, + 0x030, 0x0000D239, + 0x030, 0x0000E209, + 0x030, 0x0000F239, + 0x030, 0x00010239, + 0x030, 0x00011239, + 0x030, 0x00012209, + 0x030, 0x00013239, + 0x030, 0x00014239, + 0x030, 0x00015239, + 0x030, 0x00016209, + 0x030, 0x00017239, + 0x030, 0x00018209, + 0x030, 0x00019239, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000239, + 0x030, 0x00001239, + 0x030, 0x00002239, + 0x030, 0x00003239, + 0x030, 0x00004239, + 0x030, 0x00005239, + 0x030, 0x00006239, + 0x030, 0x00007239, + 0x030, 0x00008239, + 0x030, 0x00009239, + 0x030, 0x0000A239, + 0x030, 0x0000B239, + 0x030, 0x0000C239, + 0x030, 0x0000D239, + 0x030, 0x0000E209, + 0x030, 0x0000F239, + 0x030, 0x00010239, + 0x030, 0x00011239, + 0x030, 0x00012209, + 0x030, 0x00013239, + 0x030, 0x00014239, + 0x030, 0x00015239, + 0x030, 0x00016209, + 0x030, 0x00017239, + 0x030, 0x00018209, + 0x030, 0x00019239, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000238, + 0x030, 0x00001238, + 0x030, 0x00002238, + 0x030, 0x00003238, + 0x030, 0x00004228, + 0x030, 0x00005238, + 0x030, 0x00006238, + 0x030, 0x00007238, + 0x030, 0x00008228, + 0x030, 0x00009238, + 0x030, 0x0000A238, + 0x030, 0x0000B238, + 0x030, 0x0000C238, + 0x030, 0x0000D238, + 0x030, 0x0000E228, + 0x030, 0x0000F238, + 0x030, 0x00010238, + 0x030, 0x00011238, + 0x030, 0x00012228, + 0x030, 0x00013238, + 0x030, 0x00014238, + 0x030, 0x00015238, + 0x030, 0x00016228, + 0x030, 0x00017238, + 0x030, 0x00018228, + 0x030, 0x00019238, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000238, + 0x030, 0x00001238, + 0x030, 0x00002238, + 0x030, 0x00003238, + 0x030, 0x00004228, + 0x030, 0x00005238, + 0x030, 0x00006238, + 0x030, 0x00007238, + 0x030, 0x00008228, + 0x030, 0x00009238, + 0x030, 0x0000A238, + 0x030, 0x0000B238, + 0x030, 0x0000C238, + 0x030, 0x0000D238, + 0x030, 0x0000E228, + 0x030, 0x0000F238, + 0x030, 0x00010238, + 0x030, 0x00011238, + 0x030, 0x00012228, + 0x030, 0x00013238, + 0x030, 0x00014238, + 0x030, 0x00015238, + 0x030, 0x00016228, + 0x030, 0x00017238, + 0x030, 0x00018228, + 0x030, 0x00019238, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000239, + 0x030, 0x00001239, + 0x030, 0x00002239, + 0x030, 0x00003239, + 0x030, 0x00004239, + 0x030, 0x00005239, + 0x030, 0x00006239, + 0x030, 0x00007239, + 0x030, 0x00008239, + 0x030, 0x00009239, + 0x030, 0x0000A239, + 0x030, 0x0000B239, + 0x030, 0x0000C239, + 0x030, 0x0000D239, + 0x030, 0x0000E209, + 0x030, 0x0000F239, + 0x030, 0x00010239, + 0x030, 0x00011239, + 0x030, 0x00012209, + 0x030, 0x00013239, + 0x030, 0x00014239, + 0x030, 0x00015239, + 0x030, 0x00016209, + 0x030, 0x00017239, + 0x030, 0x00018209, + 0x030, 0x00019239, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000239, 0x030, 0x00001239, 0x030, 0x00002239, @@ -15226,7 +28974,33 @@ const u32 array_mp_8822c_radiob[] = { 0xB0000000, 0x00000000, 0x0EF, 0x00000000, 0x0EF, 0x00000080, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000232, + 0x030, 0x00001232, + 0x030, 0x00002232, + 0x030, 0x00003232, + 0x030, 0x00004232, + 0x030, 0x00005232, + 0x030, 0x00006232, + 0x030, 0x00007232, + 0x030, 0x00008232, + 0x030, 0x00009232, + 0x030, 0x0000A232, + 0x030, 0x0000B232, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000232, + 0x030, 0x00001232, + 0x030, 0x00002232, + 0x030, 0x00003232, + 0x030, 0x00004232, + 0x030, 0x00005232, + 0x030, 0x00006232, + 0x030, 0x00007232, + 0x030, 0x00008232, + 0x030, 0x00009232, + 0x030, 0x0000A232, + 0x030, 0x0000B232, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -15239,7 +29013,7 @@ const u32 array_mp_8822c_radiob[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -15252,7 +29026,7 @@ const u32 array_mp_8822c_radiob[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -15265,7 +29039,7 @@ const u32 array_mp_8822c_radiob[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -15278,7 +29052,7 @@ const u32 array_mp_8822c_radiob[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -15291,7 +29065,7 @@ const u32 array_mp_8822c_radiob[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -15304,7 +29078,7 @@ const u32 array_mp_8822c_radiob[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -15317,7 +29091,7 @@ const u32 array_mp_8822c_radiob[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -15330,7 +29104,7 @@ const u32 array_mp_8822c_radiob[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -15343,7 +29117,7 @@ const u32 array_mp_8822c_radiob[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -15356,7 +29130,7 @@ const u32 array_mp_8822c_radiob[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -15369,7 +29143,7 @@ const u32 array_mp_8822c_radiob[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -15382,7 +29156,7 @@ const u32 array_mp_8822c_radiob[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -15395,7 +29169,7 @@ const u32 array_mp_8822c_radiob[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -15408,7 +29182,7 @@ const u32 array_mp_8822c_radiob[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -15421,7 +29195,163 @@ const u32 array_mp_8822c_radiob[] = { 0x030, 0x00009334, 0x030, 0x0000A334, 0x030, 0x0000B334, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000334, + 0x030, 0x00001334, + 0x030, 0x00002334, + 0x030, 0x00003334, + 0x030, 0x00004334, + 0x030, 0x00005334, + 0x030, 0x00006334, + 0x030, 0x00007334, + 0x030, 0x00008334, + 0x030, 0x00009334, + 0x030, 0x0000A334, + 0x030, 0x0000B334, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000334, + 0x030, 0x00001334, + 0x030, 0x00002334, + 0x030, 0x00003334, + 0x030, 0x00004334, + 0x030, 0x00005334, + 0x030, 0x00006334, + 0x030, 0x00007334, + 0x030, 0x00008334, + 0x030, 0x00009334, + 0x030, 0x0000A334, + 0x030, 0x0000B334, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000334, + 0x030, 0x00001334, + 0x030, 0x00002334, + 0x030, 0x00003334, + 0x030, 0x00004334, + 0x030, 0x00005334, + 0x030, 0x00006334, + 0x030, 0x00007334, + 0x030, 0x00008334, + 0x030, 0x00009334, + 0x030, 0x0000A334, + 0x030, 0x0000B334, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000334, + 0x030, 0x00001334, + 0x030, 0x00002334, + 0x030, 0x00003334, + 0x030, 0x00004334, + 0x030, 0x00005334, + 0x030, 0x00006334, + 0x030, 0x00007334, + 0x030, 0x00008334, + 0x030, 0x00009334, + 0x030, 0x0000A334, + 0x030, 0x0000B334, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000334, + 0x030, 0x00001334, + 0x030, 0x00002334, + 0x030, 0x00003334, + 0x030, 0x00004334, + 0x030, 0x00005334, + 0x030, 0x00006334, + 0x030, 0x00007334, + 0x030, 0x00008334, + 0x030, 0x00009334, + 0x030, 0x0000A334, + 0x030, 0x0000B334, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000334, + 0x030, 0x00001334, + 0x030, 0x00002334, + 0x030, 0x00003334, + 0x030, 0x00004334, + 0x030, 0x00005334, + 0x030, 0x00006334, + 0x030, 0x00007334, + 0x030, 0x00008334, + 0x030, 0x00009334, + 0x030, 0x0000A334, + 0x030, 0x0000B334, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000334, + 0x030, 0x00001334, + 0x030, 0x00002334, + 0x030, 0x00003334, + 0x030, 0x00004334, + 0x030, 0x00005334, + 0x030, 0x00006334, + 0x030, 0x00007334, + 0x030, 0x00008334, + 0x030, 0x00009334, + 0x030, 0x0000A334, + 0x030, 0x0000B334, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000334, + 0x030, 0x00001334, + 0x030, 0x00002334, + 0x030, 0x00003334, + 0x030, 0x00004334, + 0x030, 0x00005334, + 0x030, 0x00006334, + 0x030, 0x00007334, + 0x030, 0x00008334, + 0x030, 0x00009334, + 0x030, 0x0000A334, + 0x030, 0x0000B334, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000334, + 0x030, 0x00001334, + 0x030, 0x00002334, + 0x030, 0x00003334, + 0x030, 0x00004334, + 0x030, 0x00005334, + 0x030, 0x00006334, + 0x030, 0x00007334, + 0x030, 0x00008334, + 0x030, 0x00009334, + 0x030, 0x0000A334, + 0x030, 0x0000B334, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000334, + 0x030, 0x00001334, + 0x030, 0x00002334, + 0x030, 0x00003334, + 0x030, 0x00004334, + 0x030, 0x00005334, + 0x030, 0x00006334, + 0x030, 0x00007334, + 0x030, 0x00008334, + 0x030, 0x00009334, + 0x030, 0x0000A334, + 0x030, 0x0000B334, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000334, + 0x030, 0x00001334, + 0x030, 0x00002334, + 0x030, 0x00003334, + 0x030, 0x00004334, + 0x030, 0x00005334, + 0x030, 0x00006334, + 0x030, 0x00007334, + 0x030, 0x00008334, + 0x030, 0x00009334, + 0x030, 0x0000A334, + 0x030, 0x0000B334, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x030, 0x00000334, + 0x030, 0x00001334, + 0x030, 0x00002334, + 0x030, 0x00003334, + 0x030, 0x00004334, + 0x030, 0x00005334, + 0x030, 0x00006334, + 0x030, 0x00007334, + 0x030, 0x00008334, + 0x030, 0x00009334, + 0x030, 0x0000A334, + 0x030, 0x0000B334, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x030, 0x00000334, 0x030, 0x00001334, 0x030, 0x00002334, @@ -15461,7 +29391,283 @@ const u32 array_mp_8822c_radiob[] = { 0x030, 0x0000C330, 0x0EF, 0x00000000, 0x0EE, 0x00010000, - 0x83000015, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000200, 0x03F, 0x00000005, 0x033, 0x00000201, @@ -15484,7 +29690,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000074, 0x033, 0x0000020A, 0x03F, 0x00000077, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000200, 0x03F, 0x00000005, 0x033, 0x00000201, @@ -15507,7 +29713,145 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000074, 0x033, 0x0000020A, 0x03F, 0x00000077, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000200, 0x03F, 0x00000005, 0x033, 0x00000201, @@ -15530,7 +29874,191 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000074, 0x033, 0x0000020A, 0x03F, 0x00000077, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x00000005, + 0x033, 0x00000201, + 0x03F, 0x00000008, + 0x033, 0x00000202, + 0x03F, 0x0000000B, + 0x033, 0x00000203, + 0x03F, 0x0000000E, + 0x033, 0x00000204, + 0x03F, 0x0000002B, + 0x033, 0x00000205, + 0x03F, 0x0000002E, + 0x033, 0x00000206, + 0x03F, 0x0000006B, + 0x033, 0x00000207, + 0x03F, 0x0000006E, + 0x033, 0x00000208, + 0x03F, 0x00000071, + 0x033, 0x00000209, + 0x03F, 0x00000074, + 0x033, 0x0000020A, + 0x03F, 0x00000077, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x0000006A, + 0x033, 0x00000201, + 0x03F, 0x0000006D, + 0x033, 0x00000202, + 0x03F, 0x0000046A, + 0x033, 0x00000203, + 0x03F, 0x0000086A, + 0x033, 0x00000204, + 0x03F, 0x00000C89, + 0x033, 0x00000205, + 0x03F, 0x00000CE8, + 0x033, 0x00000206, + 0x03F, 0x00000CEB, + 0x033, 0x00000207, + 0x03F, 0x00000CEE, + 0x033, 0x00000208, + 0x03F, 0x00000CF1, + 0x033, 0x00000209, + 0x03F, 0x00000CF4, + 0x033, 0x0000020A, + 0x03F, 0x00000CF7, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000200, + 0x03F, 0x00000005, + 0x033, 0x00000201, + 0x03F, 0x00000008, + 0x033, 0x00000202, + 0x03F, 0x0000000B, + 0x033, 0x00000203, + 0x03F, 0x0000000E, + 0x033, 0x00000204, + 0x03F, 0x0000002B, + 0x033, 0x00000205, + 0x03F, 0x0000002E, + 0x033, 0x00000206, + 0x03F, 0x0000006B, + 0x033, 0x00000207, + 0x03F, 0x0000006E, + 0x033, 0x00000208, + 0x03F, 0x00000071, + 0x033, 0x00000209, + 0x03F, 0x00000074, + 0x033, 0x0000020A, + 0x03F, 0x00000077, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000200, 0x03F, 0x00000005, 0x033, 0x00000201, @@ -15577,7 +30105,283 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x0000020A, 0x03F, 0x00000CF7, 0xB0000000, 0x00000000, - 0x83000015, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000280, 0x03F, 0x00000005, 0x033, 0x00000281, @@ -15600,7 +30404,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000074, 0x033, 0x0000028A, 0x03F, 0x00000077, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000280, 0x03F, 0x00000005, 0x033, 0x00000281, @@ -15623,7 +30427,145 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000074, 0x033, 0x0000028A, 0x03F, 0x00000077, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000280, 0x03F, 0x00000005, 0x033, 0x00000281, @@ -15646,7 +30588,191 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000074, 0x033, 0x0000028A, 0x03F, 0x00000077, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x00000005, + 0x033, 0x00000281, + 0x03F, 0x00000008, + 0x033, 0x00000282, + 0x03F, 0x0000000B, + 0x033, 0x00000283, + 0x03F, 0x0000000E, + 0x033, 0x00000284, + 0x03F, 0x0000002B, + 0x033, 0x00000285, + 0x03F, 0x0000002E, + 0x033, 0x00000286, + 0x03F, 0x0000006B, + 0x033, 0x00000287, + 0x03F, 0x0000006E, + 0x033, 0x00000288, + 0x03F, 0x00000071, + 0x033, 0x00000289, + 0x03F, 0x00000074, + 0x033, 0x0000028A, + 0x03F, 0x00000077, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x0000006A, + 0x033, 0x00000281, + 0x03F, 0x0000006D, + 0x033, 0x00000282, + 0x03F, 0x0000046A, + 0x033, 0x00000283, + 0x03F, 0x0000086A, + 0x033, 0x00000284, + 0x03F, 0x00000C89, + 0x033, 0x00000285, + 0x03F, 0x00000CE8, + 0x033, 0x00000286, + 0x03F, 0x00000CEB, + 0x033, 0x00000287, + 0x03F, 0x00000CEE, + 0x033, 0x00000288, + 0x03F, 0x00000CF1, + 0x033, 0x00000289, + 0x03F, 0x00000CF4, + 0x033, 0x0000028A, + 0x03F, 0x00000CF7, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000280, + 0x03F, 0x00000005, + 0x033, 0x00000281, + 0x03F, 0x00000008, + 0x033, 0x00000282, + 0x03F, 0x0000000B, + 0x033, 0x00000283, + 0x03F, 0x0000000E, + 0x033, 0x00000284, + 0x03F, 0x0000002B, + 0x033, 0x00000285, + 0x03F, 0x0000002E, + 0x033, 0x00000286, + 0x03F, 0x0000006B, + 0x033, 0x00000287, + 0x03F, 0x0000006E, + 0x033, 0x00000288, + 0x03F, 0x00000071, + 0x033, 0x00000289, + 0x03F, 0x00000074, + 0x033, 0x0000028A, + 0x03F, 0x00000077, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000280, 0x03F, 0x00000005, 0x033, 0x00000281, @@ -15693,7 +30819,295 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x0000028A, 0x03F, 0x00000CF7, 0xB0000000, 0x00000000, - 0x83000015, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000300, 0x03F, 0x00000005, 0x033, 0x00000301, @@ -15717,7 +31131,7 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x0000030A, 0x03F, 0x000000D1, 0x0EE, 0x00000000, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000300, 0x03F, 0x00000005, 0x033, 0x00000301, @@ -15741,7 +31155,151 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x0000030A, 0x03F, 0x000000D1, 0x0EE, 0x00000000, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000300, 0x03F, 0x00000005, 0x033, 0x00000301, @@ -15765,7 +31323,199 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x0000030A, 0x03F, 0x000000D1, 0x0EE, 0x00000000, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x00000005, + 0x033, 0x00000301, + 0x03F, 0x00000008, + 0x033, 0x00000302, + 0x03F, 0x0000000B, + 0x033, 0x00000303, + 0x03F, 0x0000000E, + 0x033, 0x00000304, + 0x03F, 0x0000002B, + 0x033, 0x00000305, + 0x03F, 0x0000002E, + 0x033, 0x00000306, + 0x03F, 0x00000031, + 0x033, 0x00000307, + 0x03F, 0x00000034, + 0x033, 0x00000308, + 0x03F, 0x00000053, + 0x033, 0x00000309, + 0x03F, 0x00000056, + 0x033, 0x0000030A, + 0x03F, 0x000000D1, + 0x0EE, 0x00000000, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x0000006A, + 0x033, 0x00000301, + 0x03F, 0x0000006D, + 0x033, 0x00000302, + 0x03F, 0x0000046A, + 0x033, 0x00000303, + 0x03F, 0x0000086A, + 0x033, 0x00000304, + 0x03F, 0x00000C89, + 0x033, 0x00000305, + 0x03F, 0x00000CE8, + 0x033, 0x00000306, + 0x03F, 0x00000CEB, + 0x033, 0x00000307, + 0x03F, 0x00000CEE, + 0x033, 0x00000308, + 0x03F, 0x00000CF1, + 0x033, 0x00000309, + 0x03F, 0x00000CF4, + 0x033, 0x0000030A, + 0x03F, 0x00000CF7, + 0x0EE, 0x00000000, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000300, + 0x03F, 0x00000005, + 0x033, 0x00000301, + 0x03F, 0x00000008, + 0x033, 0x00000302, + 0x03F, 0x0000000B, + 0x033, 0x00000303, + 0x03F, 0x0000000E, + 0x033, 0x00000304, + 0x03F, 0x0000002B, + 0x033, 0x00000305, + 0x03F, 0x0000002E, + 0x033, 0x00000306, + 0x03F, 0x00000031, + 0x033, 0x00000307, + 0x03F, 0x00000034, + 0x033, 0x00000308, + 0x03F, 0x00000053, + 0x033, 0x00000309, + 0x03F, 0x00000056, + 0x033, 0x0000030A, + 0x03F, 0x000000D1, + 0x0EE, 0x00000000, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000300, 0x03F, 0x00000005, 0x033, 0x00000301, @@ -15815,37 +31565,65 @@ const u32 array_mp_8822c_radiob[] = { 0x0EE, 0x00000000, 0xB0000000, 0x00000000, 0x051, 0x0003C800, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x052, 0x000942C0, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x052, 0x000942C0, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x052, 0x000902CA, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x052, 0x000902CA, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x052, 0x000902CA, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x052, 0x000902CA, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x052, 0x000902CA, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x052, 0x000902CA, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x052, 0x000902CA, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x052, 0x000902CA, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x052, 0x000902CA, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x052, 0x000902CA, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x052, 0x000902CA, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x052, 0x000902CA, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x052, 0x000902CA, 0xA0000000, 0x00000000, 0x052, 0x000942C0, @@ -15855,2353 +31633,3719 @@ const u32 array_mp_8822c_radiob[] = { 0x057, 0x0004C80A, 0x0EF, 0x00000020, 0x033, 0x00000000, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0000C246, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0000C246, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, 0xA0000000, 0x00000000, 0x03E, 0x00000020, - 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0xA0000000, 0x00000000, 0x03F, 0x0000C246, 0xB0000000, 0x00000000, 0x033, 0x00000001, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0000C246, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0000C246, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, 0xA0000000, 0x00000000, 0x03E, 0x00000020, - 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0xA0000000, 0x00000000, 0x03F, 0x0000C246, 0xB0000000, 0x00000000, 0x033, 0x00000002, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0000C246, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0000C246, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00024246, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00024246, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00024246, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00024246, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, 0xA0000000, 0x00000000, 0x03F, 0x0000C246, 0xB0000000, 0x00000000, 0x033, 0x00000003, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0000C246, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0000C246, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, 0xA0000000, 0x00000000, 0x03E, 0x00000020, - 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0xA0000000, 0x00000000, 0x03F, 0x0000C246, 0xB0000000, 0x00000000, 0x033, 0x00000004, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0000C246, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0000C246, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, 0xA0000000, 0x00000000, 0x03E, 0x00000020, - 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0xA0000000, 0x00000000, 0x03F, 0x0000C246, 0xB0000000, 0x00000000, 0x033, 0x00000005, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0000C246, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0000C246, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00024246, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00024246, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00024246, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00024246, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, 0xA0000000, 0x00000000, 0x03F, 0x0000C246, 0xB0000000, 0x00000000, 0x033, 0x00000006, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0000C246, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0000C246, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, 0xA0000000, 0x00000000, 0x03E, 0x00000020, - 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0xA0000000, 0x00000000, 0x03F, 0x0000C246, 0xB0000000, 0x00000000, 0x033, 0x00000007, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0000C246, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0000C246, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, 0xA0000000, 0x00000000, 0x03E, 0x00000020, - 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0xA0000000, 0x00000000, 0x03F, 0x0000C246, 0xB0000000, 0x00000000, 0x033, 0x00000008, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0000C246, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0000C246, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00024246, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00024246, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00024246, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00024246, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, 0xA0000000, 0x00000000, 0x03F, 0x0000C246, 0xB0000000, 0x00000000, 0x033, 0x00000009, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, 0xA0000000, 0x00000000, 0x03E, 0x00000020, - 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x0000000A, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, 0xA0000000, 0x00000000, 0x03E, 0x00000020, - 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x0000000B, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00024246, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00024246, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00024246, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00024246, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x0000000C, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, 0xA0000000, 0x00000000, 0x03E, 0x00000020, - 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x0000000D, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000241C6, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000241C6, 0xA0000000, 0x00000000, 0x03E, 0x00000020, - 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000241C6, - 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x0000000E, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00024246, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00024246, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00024246, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00024246, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002C246, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002C246, 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x0000000F, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, 0xA0000000, 0x00000000, 0x03E, 0x00000020, - 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x00000010, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00024246, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, 0xA0000000, 0x00000000, 0x03E, 0x00000020, - 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x00024246, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x00000011, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00024246, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00024246, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00024246, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x00024246, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x00000012, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, 0xA0000000, 0x00000000, 0x03E, 0x00000020, - 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x00000013, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, 0xA0000000, 0x00000000, 0x03E, 0x00000020, - 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x00000014, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x00000015, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, 0xA0000000, 0x00000000, 0x03E, 0x00000020, - 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x00000016, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, 0xA0000000, 0x00000000, 0x03E, 0x00000020, - 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x00000017, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x00000018, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, 0xA0000000, 0x00000000, 0x03E, 0x00000020, - 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x00000019, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, 0xA0000000, 0x00000000, 0x03E, 0x00000020, - 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x0000001A, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x0000001B, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, 0xA0000000, 0x00000000, 0x03E, 0x00000020, - 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x0000001C, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, 0xA0000000, 0x00000000, 0x03E, 0x00000020, - 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x0000001D, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x0000001E, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, 0xA0000000, 0x00000000, 0x03E, 0x00000020, - 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x0000001F, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, 0xA0000000, 0x00000000, 0x03E, 0x00000020, - 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x00000020, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x00000021, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, 0xA0000000, 0x00000000, 0x03E, 0x00000020, - 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x00000022, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, 0xA0000000, 0x00000000, 0x03E, 0x00000020, - 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x00000023, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000020, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000020, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000020, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0001CA46, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000020, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0001CA46, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000020, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0001CA46, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000020, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0001CA46, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000020, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000020, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000020, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000020, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000020, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000020, + 0x03F, 0x0002CA46, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0002CA46, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0002CA46, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0002CA46, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0002CA46, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0002CA46, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0002CA46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0002CA46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0002CA46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0002CA46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0002CA46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0002CA46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0002CA46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0002CA46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0002CA46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0002CA46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0002CA46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0002CA46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0002CA46, 0xA0000000, 0x00000000, 0x03E, 0x00000020, - 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0002CA46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0002CA46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0002CA46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0002CA46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0002CA46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0002CA46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0002CA46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0002CA46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0002CA46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0002CA46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0002CA46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0002CA46, - 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x00000024, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, 0xA0000000, 0x00000000, 0x03E, 0x00000020, - 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x00000025, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, 0xA0000000, 0x00000000, 0x03E, 0x00000020, - 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x00000026, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x00000027, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, 0xA0000000, 0x00000000, 0x03E, 0x00000020, - 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x00000028, - 0x83000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000020, + 0x03F, 0x0001CA46, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x000209C6, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03E, 0x00000030, + 0x03F, 0x000209C6, 0xA0000000, 0x00000000, 0x03E, 0x00000020, - 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x0001CA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, - 0x03F, 0x000209C6, - 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x00000029, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0002CA46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0002CA46, 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x033, 0x0000002A, 0x03E, 0x00000020, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00008E46, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00008E46, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0001CA46, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0001CA46, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0001CA46, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0001CA46, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0001CA46, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0001CA46, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0001CA46, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0001CA46, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0001CA46, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0001CA46, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0001CA46, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x0001CA46, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x03F, 0x0001CA46, 0xA0000000, 0x00000000, 0x03F, 0x00008E46, 0xB0000000, 0x00000000, 0x0EF, 0x00000000, 0x0EE, 0x00010000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000060, + 0x03F, 0x00000487, + 0x033, 0x00000061, + 0x03F, 0x00000887, + 0x033, 0x00000062, + 0x03F, 0x00000947, + 0x033, 0x00000063, + 0x03F, 0x00000D48, + 0x033, 0x00000064, + 0x03F, 0x00000D88, + 0x033, 0x00000065, + 0x03F, 0x00000DE8, + 0x033, 0x00000066, + 0x03F, 0x00000DEB, + 0x033, 0x00000067, + 0x03F, 0x00000DEE, + 0x033, 0x00000068, + 0x03F, 0x00000DF1, + 0x033, 0x00000069, + 0x03F, 0x00000DF4, + 0x033, 0x0000006A, + 0x03F, 0x00000DF7, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000060, + 0x03F, 0x00000487, + 0x033, 0x00000061, + 0x03F, 0x00000887, + 0x033, 0x00000062, + 0x03F, 0x00000947, + 0x033, 0x00000063, + 0x03F, 0x00000D48, + 0x033, 0x00000064, + 0x03F, 0x00000D88, + 0x033, 0x00000065, + 0x03F, 0x00000DE8, + 0x033, 0x00000066, + 0x03F, 0x00000DEB, + 0x033, 0x00000067, + 0x03F, 0x00000DEE, + 0x033, 0x00000068, + 0x03F, 0x00000DF1, + 0x033, 0x00000069, + 0x03F, 0x00000DF4, + 0x033, 0x0000006A, + 0x03F, 0x00000DF7, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000468, 0x033, 0x00000061, @@ -18224,7 +35368,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000DF4, 0x033, 0x0000006A, 0x03F, 0x00000DF7, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000468, 0x033, 0x00000061, @@ -18247,7 +35391,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000DF4, 0x033, 0x0000006A, 0x03F, 0x00000DF7, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000468, 0x033, 0x00000061, @@ -18270,7 +35414,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000DF4, 0x033, 0x0000006A, 0x03F, 0x00000DF7, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000468, 0x033, 0x00000061, @@ -18293,7 +35437,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000DF4, 0x033, 0x0000006A, 0x03F, 0x00000DF7, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000467, 0x033, 0x00000061, @@ -18301,22 +35445,22 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x00000062, 0x03F, 0x00000908, 0x033, 0x00000063, - 0x03F, 0x00000D09, + 0x03F, 0x00000CC6, 0x033, 0x00000064, - 0x03F, 0x00000D49, + 0x03F, 0x00000CC9, 0x033, 0x00000065, - 0x03F, 0x00000D8A, + 0x03F, 0x00000CCC, 0x033, 0x00000066, - 0x03F, 0x00000DEB, + 0x03F, 0x00000CCF, 0x033, 0x00000067, - 0x03F, 0x00000DEE, + 0x03F, 0x00000CD2, 0x033, 0x00000068, - 0x03F, 0x00000DF1, + 0x03F, 0x00000CD5, 0x033, 0x00000069, - 0x03F, 0x00000DF4, + 0x03F, 0x00000DD4, 0x033, 0x0000006A, - 0x03F, 0x00000DF7, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00000DD7, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000467, 0x033, 0x00000061, @@ -18324,22 +35468,22 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x00000062, 0x03F, 0x00000908, 0x033, 0x00000063, - 0x03F, 0x00000D09, + 0x03F, 0x00000CC6, 0x033, 0x00000064, - 0x03F, 0x00000D49, + 0x03F, 0x00000CC9, 0x033, 0x00000065, - 0x03F, 0x00000D8A, + 0x03F, 0x00000CCC, 0x033, 0x00000066, - 0x03F, 0x00000DEB, + 0x03F, 0x00000CCF, 0x033, 0x00000067, - 0x03F, 0x00000DEE, + 0x03F, 0x00000CD2, 0x033, 0x00000068, - 0x03F, 0x00000DF1, + 0x03F, 0x00000CD5, 0x033, 0x00000069, - 0x03F, 0x00000DF4, + 0x03F, 0x00000DD4, 0x033, 0x0000006A, - 0x03F, 0x00000DF7, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00000DD7, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000467, 0x033, 0x00000061, @@ -18347,22 +35491,22 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x00000062, 0x03F, 0x00000908, 0x033, 0x00000063, - 0x03F, 0x00000D09, + 0x03F, 0x00000CC6, 0x033, 0x00000064, - 0x03F, 0x00000D49, + 0x03F, 0x00000CC9, 0x033, 0x00000065, - 0x03F, 0x00000D8A, + 0x03F, 0x00000CCC, 0x033, 0x00000066, - 0x03F, 0x00000DEB, + 0x03F, 0x00000CCF, 0x033, 0x00000067, - 0x03F, 0x00000DEE, + 0x03F, 0x00000CD2, 0x033, 0x00000068, - 0x03F, 0x00000DF1, + 0x03F, 0x00000CD5, 0x033, 0x00000069, - 0x03F, 0x00000DF4, + 0x03F, 0x00000DD4, 0x033, 0x0000006A, - 0x03F, 0x00000DF7, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00000DD7, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000467, 0x033, 0x00000061, @@ -18370,22 +35514,22 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x00000062, 0x03F, 0x00000908, 0x033, 0x00000063, - 0x03F, 0x00000D09, + 0x03F, 0x00000CC6, 0x033, 0x00000064, - 0x03F, 0x00000D49, + 0x03F, 0x00000CC9, 0x033, 0x00000065, - 0x03F, 0x00000D8A, + 0x03F, 0x00000CCC, 0x033, 0x00000066, - 0x03F, 0x00000DEB, + 0x03F, 0x00000CCF, 0x033, 0x00000067, - 0x03F, 0x00000DEE, + 0x03F, 0x00000CD2, 0x033, 0x00000068, - 0x03F, 0x00000DF1, + 0x03F, 0x00000CD5, 0x033, 0x00000069, - 0x03F, 0x00000DF4, + 0x03F, 0x00000DD4, 0x033, 0x0000006A, - 0x03F, 0x00000DF7, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00000DD7, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000467, 0x033, 0x00000061, @@ -18393,22 +35537,22 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x00000062, 0x03F, 0x00000908, 0x033, 0x00000063, - 0x03F, 0x00000D09, + 0x03F, 0x00000CC6, 0x033, 0x00000064, - 0x03F, 0x00000D49, + 0x03F, 0x00000CC9, 0x033, 0x00000065, - 0x03F, 0x00000D8A, + 0x03F, 0x00000CCC, 0x033, 0x00000066, - 0x03F, 0x00000DEB, + 0x03F, 0x00000CCF, 0x033, 0x00000067, - 0x03F, 0x00000DEE, + 0x03F, 0x00000CD2, 0x033, 0x00000068, - 0x03F, 0x00000DF1, + 0x03F, 0x00000CD5, 0x033, 0x00000069, - 0x03F, 0x00000DF4, + 0x03F, 0x00000DD4, 0x033, 0x0000006A, - 0x03F, 0x00000DF7, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00000DD7, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000467, 0x033, 0x00000061, @@ -18416,22 +35560,22 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x00000062, 0x03F, 0x00000908, 0x033, 0x00000063, - 0x03F, 0x00000D09, + 0x03F, 0x00000CC6, 0x033, 0x00000064, - 0x03F, 0x00000D49, + 0x03F, 0x00000CC9, 0x033, 0x00000065, - 0x03F, 0x00000D8A, + 0x03F, 0x00000CCC, 0x033, 0x00000066, - 0x03F, 0x00000DEB, + 0x03F, 0x00000CCF, 0x033, 0x00000067, - 0x03F, 0x00000DEE, + 0x03F, 0x00000CD2, 0x033, 0x00000068, - 0x03F, 0x00000DF1, + 0x03F, 0x00000CD5, 0x033, 0x00000069, - 0x03F, 0x00000DF4, + 0x03F, 0x00000DD4, 0x033, 0x0000006A, - 0x03F, 0x00000DF7, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00000DD7, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000467, 0x033, 0x00000061, @@ -18439,22 +35583,22 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x00000062, 0x03F, 0x00000908, 0x033, 0x00000063, - 0x03F, 0x00000D09, + 0x03F, 0x00000CC6, 0x033, 0x00000064, - 0x03F, 0x00000D49, + 0x03F, 0x00000CC9, 0x033, 0x00000065, - 0x03F, 0x00000D8A, + 0x03F, 0x00000CCC, 0x033, 0x00000066, - 0x03F, 0x00000DEB, + 0x03F, 0x00000CCF, 0x033, 0x00000067, - 0x03F, 0x00000DEE, + 0x03F, 0x00000CD2, 0x033, 0x00000068, - 0x03F, 0x00000DF1, + 0x03F, 0x00000CD5, 0x033, 0x00000069, - 0x03F, 0x00000DF4, + 0x03F, 0x00000DD4, 0x033, 0x0000006A, - 0x03F, 0x00000DF7, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00000DD7, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000467, 0x033, 0x00000061, @@ -18462,22 +35606,22 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x00000062, 0x03F, 0x00000908, 0x033, 0x00000063, - 0x03F, 0x00000D09, + 0x03F, 0x00000CC6, 0x033, 0x00000064, - 0x03F, 0x00000D49, + 0x03F, 0x00000CC9, 0x033, 0x00000065, - 0x03F, 0x00000D8A, + 0x03F, 0x00000CCC, 0x033, 0x00000066, - 0x03F, 0x00000DEB, + 0x03F, 0x00000CCF, 0x033, 0x00000067, - 0x03F, 0x00000DEE, + 0x03F, 0x00000CD2, 0x033, 0x00000068, - 0x03F, 0x00000DF1, + 0x03F, 0x00000CD5, 0x033, 0x00000069, - 0x03F, 0x00000DF4, + 0x03F, 0x00000DD4, 0x033, 0x0000006A, - 0x03F, 0x00000DF7, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00000DD7, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000467, 0x033, 0x00000061, @@ -18485,22 +35629,22 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x00000062, 0x03F, 0x00000908, 0x033, 0x00000063, - 0x03F, 0x00000D09, + 0x03F, 0x00000CC6, 0x033, 0x00000064, - 0x03F, 0x00000D49, + 0x03F, 0x00000CC9, 0x033, 0x00000065, - 0x03F, 0x00000D8A, + 0x03F, 0x00000CCC, 0x033, 0x00000066, - 0x03F, 0x00000DEB, + 0x03F, 0x00000CCF, 0x033, 0x00000067, - 0x03F, 0x00000DEE, + 0x03F, 0x00000CD2, 0x033, 0x00000068, - 0x03F, 0x00000DF1, + 0x03F, 0x00000CD5, 0x033, 0x00000069, - 0x03F, 0x00000DF4, + 0x03F, 0x00000DD4, 0x033, 0x0000006A, - 0x03F, 0x00000DF7, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00000DD7, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000467, 0x033, 0x00000061, @@ -18508,22 +35652,22 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x00000062, 0x03F, 0x00000908, 0x033, 0x00000063, - 0x03F, 0x00000D09, + 0x03F, 0x00000CC6, 0x033, 0x00000064, - 0x03F, 0x00000D49, + 0x03F, 0x00000CC9, 0x033, 0x00000065, - 0x03F, 0x00000D8A, + 0x03F, 0x00000CCC, 0x033, 0x00000066, - 0x03F, 0x00000DEB, + 0x03F, 0x00000CCF, 0x033, 0x00000067, - 0x03F, 0x00000DEE, + 0x03F, 0x00000CD2, 0x033, 0x00000068, - 0x03F, 0x00000DF1, + 0x03F, 0x00000CD5, 0x033, 0x00000069, - 0x03F, 0x00000DF4, + 0x03F, 0x00000DD4, 0x033, 0x0000006A, - 0x03F, 0x00000DF7, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00000DD7, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000467, 0x033, 0x00000061, @@ -18531,22 +35675,22 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x00000062, 0x03F, 0x00000908, 0x033, 0x00000063, - 0x03F, 0x00000D09, + 0x03F, 0x00000CC6, 0x033, 0x00000064, - 0x03F, 0x00000D49, + 0x03F, 0x00000CC9, 0x033, 0x00000065, - 0x03F, 0x00000D8A, + 0x03F, 0x00000CCC, 0x033, 0x00000066, - 0x03F, 0x00000DEB, + 0x03F, 0x00000CCF, 0x033, 0x00000067, - 0x03F, 0x00000DEE, + 0x03F, 0x00000CD2, 0x033, 0x00000068, - 0x03F, 0x00000DF1, + 0x03F, 0x00000CD5, 0x033, 0x00000069, - 0x03F, 0x00000DF4, + 0x03F, 0x00000DD4, 0x033, 0x0000006A, - 0x03F, 0x00000DF7, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x03F, 0x00000DD7, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000467, 0x033, 0x00000061, @@ -18554,21 +35698,297 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x00000062, 0x03F, 0x00000908, 0x033, 0x00000063, - 0x03F, 0x00000D09, + 0x03F, 0x00000CC6, 0x033, 0x00000064, - 0x03F, 0x00000D49, + 0x03F, 0x00000CC9, 0x033, 0x00000065, - 0x03F, 0x00000D8A, + 0x03F, 0x00000CCC, 0x033, 0x00000066, - 0x03F, 0x00000DEB, + 0x03F, 0x00000CCF, 0x033, 0x00000067, - 0x03F, 0x00000DEE, + 0x03F, 0x00000CD2, 0x033, 0x00000068, - 0x03F, 0x00000DF1, + 0x03F, 0x00000CD5, 0x033, 0x00000069, - 0x03F, 0x00000DF4, + 0x03F, 0x00000DD4, 0x033, 0x0000006A, - 0x03F, 0x00000DF7, + 0x03F, 0x00000DD7, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000060, + 0x03F, 0x00000467, + 0x033, 0x00000061, + 0x03F, 0x00000867, + 0x033, 0x00000062, + 0x03F, 0x00000908, + 0x033, 0x00000063, + 0x03F, 0x00000CC6, + 0x033, 0x00000064, + 0x03F, 0x00000CC9, + 0x033, 0x00000065, + 0x03F, 0x00000CCC, + 0x033, 0x00000066, + 0x03F, 0x00000CCF, + 0x033, 0x00000067, + 0x03F, 0x00000CD2, + 0x033, 0x00000068, + 0x03F, 0x00000CD5, + 0x033, 0x00000069, + 0x03F, 0x00000DD4, + 0x033, 0x0000006A, + 0x03F, 0x00000DD7, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000060, + 0x03F, 0x00000467, + 0x033, 0x00000061, + 0x03F, 0x00000867, + 0x033, 0x00000062, + 0x03F, 0x00000908, + 0x033, 0x00000063, + 0x03F, 0x00000CC6, + 0x033, 0x00000064, + 0x03F, 0x00000CC9, + 0x033, 0x00000065, + 0x03F, 0x00000CCC, + 0x033, 0x00000066, + 0x03F, 0x00000CCF, + 0x033, 0x00000067, + 0x03F, 0x00000CD2, + 0x033, 0x00000068, + 0x03F, 0x00000CD5, + 0x033, 0x00000069, + 0x03F, 0x00000DD4, + 0x033, 0x0000006A, + 0x03F, 0x00000DD7, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000060, + 0x03F, 0x00000467, + 0x033, 0x00000061, + 0x03F, 0x00000867, + 0x033, 0x00000062, + 0x03F, 0x00000908, + 0x033, 0x00000063, + 0x03F, 0x00000CC6, + 0x033, 0x00000064, + 0x03F, 0x00000CC9, + 0x033, 0x00000065, + 0x03F, 0x00000CCC, + 0x033, 0x00000066, + 0x03F, 0x00000CCF, + 0x033, 0x00000067, + 0x03F, 0x00000CD2, + 0x033, 0x00000068, + 0x03F, 0x00000CD5, + 0x033, 0x00000069, + 0x03F, 0x00000DD4, + 0x033, 0x0000006A, + 0x03F, 0x00000DD7, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000060, + 0x03F, 0x00000467, + 0x033, 0x00000061, + 0x03F, 0x00000867, + 0x033, 0x00000062, + 0x03F, 0x00000908, + 0x033, 0x00000063, + 0x03F, 0x00000CC6, + 0x033, 0x00000064, + 0x03F, 0x00000CC9, + 0x033, 0x00000065, + 0x03F, 0x00000CCC, + 0x033, 0x00000066, + 0x03F, 0x00000CCF, + 0x033, 0x00000067, + 0x03F, 0x00000CD2, + 0x033, 0x00000068, + 0x03F, 0x00000CD5, + 0x033, 0x00000069, + 0x03F, 0x00000DD4, + 0x033, 0x0000006A, + 0x03F, 0x00000DD7, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000060, + 0x03F, 0x00000467, + 0x033, 0x00000061, + 0x03F, 0x00000867, + 0x033, 0x00000062, + 0x03F, 0x00000908, + 0x033, 0x00000063, + 0x03F, 0x00000CC6, + 0x033, 0x00000064, + 0x03F, 0x00000CC9, + 0x033, 0x00000065, + 0x03F, 0x00000CCC, + 0x033, 0x00000066, + 0x03F, 0x00000CCF, + 0x033, 0x00000067, + 0x03F, 0x00000CD2, + 0x033, 0x00000068, + 0x03F, 0x00000CD5, + 0x033, 0x00000069, + 0x03F, 0x00000DD4, + 0x033, 0x0000006A, + 0x03F, 0x00000DD7, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000060, + 0x03F, 0x00000467, + 0x033, 0x00000061, + 0x03F, 0x00000867, + 0x033, 0x00000062, + 0x03F, 0x00000908, + 0x033, 0x00000063, + 0x03F, 0x00000CC6, + 0x033, 0x00000064, + 0x03F, 0x00000CC9, + 0x033, 0x00000065, + 0x03F, 0x00000CCC, + 0x033, 0x00000066, + 0x03F, 0x00000CCF, + 0x033, 0x00000067, + 0x03F, 0x00000CD2, + 0x033, 0x00000068, + 0x03F, 0x00000CD5, + 0x033, 0x00000069, + 0x03F, 0x00000DD4, + 0x033, 0x0000006A, + 0x03F, 0x00000DD7, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000060, + 0x03F, 0x00000467, + 0x033, 0x00000061, + 0x03F, 0x00000867, + 0x033, 0x00000062, + 0x03F, 0x00000908, + 0x033, 0x00000063, + 0x03F, 0x00000CC6, + 0x033, 0x00000064, + 0x03F, 0x00000CC9, + 0x033, 0x00000065, + 0x03F, 0x00000CCC, + 0x033, 0x00000066, + 0x03F, 0x00000CCF, + 0x033, 0x00000067, + 0x03F, 0x00000CD2, + 0x033, 0x00000068, + 0x03F, 0x00000CD5, + 0x033, 0x00000069, + 0x03F, 0x00000DD4, + 0x033, 0x0000006A, + 0x03F, 0x00000DD7, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000060, + 0x03F, 0x00000467, + 0x033, 0x00000061, + 0x03F, 0x00000867, + 0x033, 0x00000062, + 0x03F, 0x00000908, + 0x033, 0x00000063, + 0x03F, 0x00000CC6, + 0x033, 0x00000064, + 0x03F, 0x00000CC9, + 0x033, 0x00000065, + 0x03F, 0x00000CCC, + 0x033, 0x00000066, + 0x03F, 0x00000CCF, + 0x033, 0x00000067, + 0x03F, 0x00000CD2, + 0x033, 0x00000068, + 0x03F, 0x00000CD5, + 0x033, 0x00000069, + 0x03F, 0x00000DD4, + 0x033, 0x0000006A, + 0x03F, 0x00000DD7, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000060, + 0x03F, 0x00000467, + 0x033, 0x00000061, + 0x03F, 0x00000867, + 0x033, 0x00000062, + 0x03F, 0x00000908, + 0x033, 0x00000063, + 0x03F, 0x00000CC6, + 0x033, 0x00000064, + 0x03F, 0x00000CC9, + 0x033, 0x00000065, + 0x03F, 0x00000CCC, + 0x033, 0x00000066, + 0x03F, 0x00000CCF, + 0x033, 0x00000067, + 0x03F, 0x00000CD2, + 0x033, 0x00000068, + 0x03F, 0x00000CD5, + 0x033, 0x00000069, + 0x03F, 0x00000DD4, + 0x033, 0x0000006A, + 0x03F, 0x00000DD7, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000060, + 0x03F, 0x00000467, + 0x033, 0x00000061, + 0x03F, 0x00000867, + 0x033, 0x00000062, + 0x03F, 0x00000908, + 0x033, 0x00000063, + 0x03F, 0x00000CC6, + 0x033, 0x00000064, + 0x03F, 0x00000CC9, + 0x033, 0x00000065, + 0x03F, 0x00000CCC, + 0x033, 0x00000066, + 0x03F, 0x00000CCF, + 0x033, 0x00000067, + 0x03F, 0x00000CD2, + 0x033, 0x00000068, + 0x03F, 0x00000CD5, + 0x033, 0x00000069, + 0x03F, 0x00000DD4, + 0x033, 0x0000006A, + 0x03F, 0x00000DD7, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000060, + 0x03F, 0x00000467, + 0x033, 0x00000061, + 0x03F, 0x00000867, + 0x033, 0x00000062, + 0x03F, 0x00000908, + 0x033, 0x00000063, + 0x03F, 0x00000CC6, + 0x033, 0x00000064, + 0x03F, 0x00000CC9, + 0x033, 0x00000065, + 0x03F, 0x00000CCC, + 0x033, 0x00000066, + 0x03F, 0x00000CCF, + 0x033, 0x00000067, + 0x03F, 0x00000CD2, + 0x033, 0x00000068, + 0x03F, 0x00000CD5, + 0x033, 0x00000069, + 0x03F, 0x00000DD4, + 0x033, 0x0000006A, + 0x03F, 0x00000DD7, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000060, + 0x03F, 0x00000467, + 0x033, 0x00000061, + 0x03F, 0x00000867, + 0x033, 0x00000062, + 0x03F, 0x00000908, + 0x033, 0x00000063, + 0x03F, 0x00000CC6, + 0x033, 0x00000064, + 0x03F, 0x00000CC9, + 0x033, 0x00000065, + 0x03F, 0x00000CCC, + 0x033, 0x00000066, + 0x03F, 0x00000CCF, + 0x033, 0x00000067, + 0x03F, 0x00000CD2, + 0x033, 0x00000068, + 0x03F, 0x00000CD5, + 0x033, 0x00000069, + 0x03F, 0x00000DD4, + 0x033, 0x0000006A, + 0x03F, 0x00000DD7, 0xA0000000, 0x00000000, 0x033, 0x00000060, 0x03F, 0x00000487, @@ -18593,7 +36013,53 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x0000006A, 0x03F, 0x00000DF7, 0xB0000000, 0x00000000, - 0x81000001, 0x00000000, 0x40000000, 0x00000000, + 0x80ffff00, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000020, + 0x03F, 0x00000487, + 0x033, 0x00000021, + 0x03F, 0x00000887, + 0x033, 0x00000022, + 0x03F, 0x00000947, + 0x033, 0x00000023, + 0x03F, 0x00000D48, + 0x033, 0x00000024, + 0x03F, 0x00000D88, + 0x033, 0x00000025, + 0x03F, 0x00000DE8, + 0x033, 0x00000026, + 0x03F, 0x00000DEB, + 0x033, 0x00000027, + 0x03F, 0x00000DEE, + 0x033, 0x00000028, + 0x03F, 0x00000DF1, + 0x033, 0x00000029, + 0x03F, 0x00000DF4, + 0x033, 0x0000002A, + 0x03F, 0x00000DF7, + 0x90ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000020, + 0x03F, 0x00000487, + 0x033, 0x00000021, + 0x03F, 0x00000887, + 0x033, 0x00000022, + 0x03F, 0x00000947, + 0x033, 0x00000023, + 0x03F, 0x00000D48, + 0x033, 0x00000024, + 0x03F, 0x00000D88, + 0x033, 0x00000025, + 0x03F, 0x00000DE8, + 0x033, 0x00000026, + 0x03F, 0x00000DEB, + 0x033, 0x00000027, + 0x03F, 0x00000DEE, + 0x033, 0x00000028, + 0x03F, 0x00000DF1, + 0x033, 0x00000029, + 0x03F, 0x00000DF4, + 0x033, 0x0000002A, + 0x03F, 0x00000DF7, + 0x91ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000468, 0x033, 0x00000021, @@ -18616,7 +36082,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x91000002, 0x00000000, 0x40000000, 0x00000000, + 0x91ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000468, 0x033, 0x00000021, @@ -18639,7 +36105,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x92000001, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000468, 0x033, 0x00000021, @@ -18662,7 +36128,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x92000002, 0x00000000, 0x40000000, 0x00000000, + 0x92ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000468, 0x033, 0x00000021, @@ -18685,7 +36151,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x93000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000467, 0x033, 0x00000021, @@ -18708,7 +36174,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x93000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000467, 0x033, 0x00000021, @@ -18731,7 +36197,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x93000003, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff03, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000467, 0x033, 0x00000021, @@ -18754,7 +36220,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x93000004, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff04, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000467, 0x033, 0x00000021, @@ -18777,7 +36243,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x93000015, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff05, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000467, 0x033, 0x00000021, @@ -18800,7 +36266,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff06, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000467, 0x033, 0x00000021, @@ -18823,7 +36289,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x94000001, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000467, 0x033, 0x00000021, @@ -18846,7 +36312,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x94000002, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000467, 0x033, 0x00000021, @@ -18869,7 +36335,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x94000003, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff01, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000467, 0x033, 0x00000021, @@ -18892,7 +36358,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x94000004, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff02, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000467, 0x033, 0x00000021, @@ -18915,7 +36381,7 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff03, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000467, 0x033, 0x00000021, @@ -18938,7 +36404,283 @@ const u32 array_mp_8822c_radiob[] = { 0x03F, 0x00000DF4, 0x033, 0x0000002A, 0x03F, 0x00000DF7, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000020, + 0x03F, 0x00000467, + 0x033, 0x00000021, + 0x03F, 0x00000867, + 0x033, 0x00000022, + 0x03F, 0x00000908, + 0x033, 0x00000023, + 0x03F, 0x00000D09, + 0x033, 0x00000024, + 0x03F, 0x00000D49, + 0x033, 0x00000025, + 0x03F, 0x00000D8A, + 0x033, 0x00000026, + 0x03F, 0x00000DEB, + 0x033, 0x00000027, + 0x03F, 0x00000DEE, + 0x033, 0x00000028, + 0x03F, 0x00000DF1, + 0x033, 0x00000029, + 0x03F, 0x00000DF4, + 0x033, 0x0000002A, + 0x03F, 0x00000DF7, + 0x94ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000020, + 0x03F, 0x00000467, + 0x033, 0x00000021, + 0x03F, 0x00000867, + 0x033, 0x00000022, + 0x03F, 0x00000908, + 0x033, 0x00000023, + 0x03F, 0x00000D09, + 0x033, 0x00000024, + 0x03F, 0x00000D49, + 0x033, 0x00000025, + 0x03F, 0x00000D8A, + 0x033, 0x00000026, + 0x03F, 0x00000DEB, + 0x033, 0x00000027, + 0x03F, 0x00000DEE, + 0x033, 0x00000028, + 0x03F, 0x00000DF1, + 0x033, 0x00000029, + 0x03F, 0x00000DF4, + 0x033, 0x0000002A, + 0x03F, 0x00000DF7, + 0x94ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000020, + 0x03F, 0x00000467, + 0x033, 0x00000021, + 0x03F, 0x00000867, + 0x033, 0x00000022, + 0x03F, 0x00000908, + 0x033, 0x00000023, + 0x03F, 0x00000D09, + 0x033, 0x00000024, + 0x03F, 0x00000D49, + 0x033, 0x00000025, + 0x03F, 0x00000D8A, + 0x033, 0x00000026, + 0x03F, 0x00000DEB, + 0x033, 0x00000027, + 0x03F, 0x00000DEE, + 0x033, 0x00000028, + 0x03F, 0x00000DF1, + 0x033, 0x00000029, + 0x03F, 0x00000DF4, + 0x033, 0x0000002A, + 0x03F, 0x00000DF7, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000020, + 0x03F, 0x00000467, + 0x033, 0x00000021, + 0x03F, 0x00000867, + 0x033, 0x00000022, + 0x03F, 0x00000908, + 0x033, 0x00000023, + 0x03F, 0x00000D09, + 0x033, 0x00000024, + 0x03F, 0x00000D49, + 0x033, 0x00000025, + 0x03F, 0x00000D8A, + 0x033, 0x00000026, + 0x03F, 0x00000DEB, + 0x033, 0x00000027, + 0x03F, 0x00000DEE, + 0x033, 0x00000028, + 0x03F, 0x00000DF1, + 0x033, 0x00000029, + 0x03F, 0x00000DF4, + 0x033, 0x0000002A, + 0x03F, 0x00000DF7, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000020, + 0x03F, 0x00000467, + 0x033, 0x00000021, + 0x03F, 0x00000867, + 0x033, 0x00000022, + 0x03F, 0x00000908, + 0x033, 0x00000023, + 0x03F, 0x00000D09, + 0x033, 0x00000024, + 0x03F, 0x00000D49, + 0x033, 0x00000025, + 0x03F, 0x00000D8A, + 0x033, 0x00000026, + 0x03F, 0x00000DEB, + 0x033, 0x00000027, + 0x03F, 0x00000DEE, + 0x033, 0x00000028, + 0x03F, 0x00000DF1, + 0x033, 0x00000029, + 0x03F, 0x00000DF4, + 0x033, 0x0000002A, + 0x03F, 0x00000DF7, + 0x95ffff01, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000020, + 0x03F, 0x00000467, + 0x033, 0x00000021, + 0x03F, 0x00000867, + 0x033, 0x00000022, + 0x03F, 0x00000908, + 0x033, 0x00000023, + 0x03F, 0x00000D09, + 0x033, 0x00000024, + 0x03F, 0x00000D49, + 0x033, 0x00000025, + 0x03F, 0x00000D8A, + 0x033, 0x00000026, + 0x03F, 0x00000DEB, + 0x033, 0x00000027, + 0x03F, 0x00000DEE, + 0x033, 0x00000028, + 0x03F, 0x00000DF1, + 0x033, 0x00000029, + 0x03F, 0x00000DF4, + 0x033, 0x0000002A, + 0x03F, 0x00000DF7, + 0x95ffff02, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000020, + 0x03F, 0x00000467, + 0x033, 0x00000021, + 0x03F, 0x00000867, + 0x033, 0x00000022, + 0x03F, 0x00000908, + 0x033, 0x00000023, + 0x03F, 0x00000D09, + 0x033, 0x00000024, + 0x03F, 0x00000D49, + 0x033, 0x00000025, + 0x03F, 0x00000D8A, + 0x033, 0x00000026, + 0x03F, 0x00000DEB, + 0x033, 0x00000027, + 0x03F, 0x00000DEE, + 0x033, 0x00000028, + 0x03F, 0x00000DF1, + 0x033, 0x00000029, + 0x03F, 0x00000DF4, + 0x033, 0x0000002A, + 0x03F, 0x00000DF7, + 0x95ffff03, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000020, + 0x03F, 0x00000467, + 0x033, 0x00000021, + 0x03F, 0x00000867, + 0x033, 0x00000022, + 0x03F, 0x00000908, + 0x033, 0x00000023, + 0x03F, 0x00000D09, + 0x033, 0x00000024, + 0x03F, 0x00000D49, + 0x033, 0x00000025, + 0x03F, 0x00000D8A, + 0x033, 0x00000026, + 0x03F, 0x00000DEB, + 0x033, 0x00000027, + 0x03F, 0x00000DEE, + 0x033, 0x00000028, + 0x03F, 0x00000DF1, + 0x033, 0x00000029, + 0x03F, 0x00000DF4, + 0x033, 0x0000002A, + 0x03F, 0x00000DF7, + 0x95ffff04, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000020, + 0x03F, 0x00000467, + 0x033, 0x00000021, + 0x03F, 0x00000867, + 0x033, 0x00000022, + 0x03F, 0x00000908, + 0x033, 0x00000023, + 0x03F, 0x00000D09, + 0x033, 0x00000024, + 0x03F, 0x00000D49, + 0x033, 0x00000025, + 0x03F, 0x00000D8A, + 0x033, 0x00000026, + 0x03F, 0x00000DEB, + 0x033, 0x00000027, + 0x03F, 0x00000DEE, + 0x033, 0x00000028, + 0x03F, 0x00000DF1, + 0x033, 0x00000029, + 0x03F, 0x00000DF4, + 0x033, 0x0000002A, + 0x03F, 0x00000DF7, + 0x95ffff05, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000020, + 0x03F, 0x00000467, + 0x033, 0x00000021, + 0x03F, 0x00000867, + 0x033, 0x00000022, + 0x03F, 0x00000908, + 0x033, 0x00000023, + 0x03F, 0x00000D09, + 0x033, 0x00000024, + 0x03F, 0x00000D49, + 0x033, 0x00000025, + 0x03F, 0x00000D8A, + 0x033, 0x00000026, + 0x03F, 0x00000DEB, + 0x033, 0x00000027, + 0x03F, 0x00000DEE, + 0x033, 0x00000028, + 0x03F, 0x00000DF1, + 0x033, 0x00000029, + 0x03F, 0x00000DF4, + 0x033, 0x0000002A, + 0x03F, 0x00000DF7, + 0x95ffff06, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000020, + 0x03F, 0x00000467, + 0x033, 0x00000021, + 0x03F, 0x00000867, + 0x033, 0x00000022, + 0x03F, 0x00000908, + 0x033, 0x00000023, + 0x03F, 0x00000D09, + 0x033, 0x00000024, + 0x03F, 0x00000D49, + 0x033, 0x00000025, + 0x03F, 0x00000D8A, + 0x033, 0x00000026, + 0x03F, 0x00000DEB, + 0x033, 0x00000027, + 0x03F, 0x00000DEE, + 0x033, 0x00000028, + 0x03F, 0x00000DF1, + 0x033, 0x00000029, + 0x03F, 0x00000DF4, + 0x033, 0x0000002A, + 0x03F, 0x00000DF7, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x033, 0x00000020, + 0x03F, 0x00000467, + 0x033, 0x00000021, + 0x03F, 0x00000867, + 0x033, 0x00000022, + 0x03F, 0x00000908, + 0x033, 0x00000023, + 0x03F, 0x00000D09, + 0x033, 0x00000024, + 0x03F, 0x00000D49, + 0x033, 0x00000025, + 0x03F, 0x00000D8A, + 0x033, 0x00000026, + 0x03F, 0x00000DEB, + 0x033, 0x00000027, + 0x03F, 0x00000DEE, + 0x033, 0x00000028, + 0x03F, 0x00000DF1, + 0x033, 0x00000029, + 0x03F, 0x00000DF4, + 0x033, 0x0000002A, + 0x03F, 0x00000DF7, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x033, 0x00000020, 0x03F, 0x00000467, 0x033, 0x00000021, @@ -19036,77 +36778,99 @@ const u32 array_mp_8822c_radiob[] = { 0x033, 0x00000007, 0x03F, 0x00000002, 0x0EF, 0x00000000, - 0x0EF, 0x00080000, - 0x033, 0x00000001, - 0x03F, 0x000916BF, - 0x0EF, 0x00000000, }; void odm_read_and_config_mp_8822c_radiob(struct dm_struct *dm) { - u32 i = 0; - u8 c_cond; - boolean is_matched = true, is_skipped = false; - u32 array_len = - sizeof(array_mp_8822c_radiob) / sizeof(u32); - u32 *array = (u32 *)array_mp_8822c_radiob; - - u32 v1 = 0, v2 = 0, pre_v1 = 0, pre_v2 = 0; - u32 a1 = 0, a2 = 0, a3 = 0, a4 = 0; + boolean is_matched, find_target; + u32 cfg_target = 0, cfg_para = 0; + u32 i = 0; + u32 array_len = 0; + u32 *array = NULL; + u32 v1 = 0, v2 = 0; + u8 h_size = 0; + u8 h_idx = 0; PHYDM_DBG(dm, ODM_COMP_INIT, "===> %s\n", __func__); + array_len = + sizeof(array_mp_8822c_radiob) / sizeof(u32); + array = (u32 *)array_mp_8822c_radiob; + + if (!halbb_sel_headline(dm, array, array_len, &h_size, &h_idx)) { + PHYDM_DBG(dm, ODM_COMP_INIT, "No any match case.\n"); + return; + } + PHYDM_DBG(dm, ODM_COMP_INIT, "len = %d, h_size = %d, h_idx = %d\n", + array_len, h_size, h_idx); + + if (h_size != 0) { + cfg_target = array[h_idx << 1] & 0x0fffffff; + } + + i += h_size; + + PHYDM_DBG(dm, ODM_COMP_INIT, "cfg_target = 0x%x\n", cfg_target); + PHYDM_DBG(dm, ODM_COMP_INIT, "array[i] = 0x%x, array[i+1] = 0x%x\n", + array[i], array[i + 1]); + + halbb_flag_2_default(&is_matched, &find_target); while ((i + 1) < array_len) { v1 = array[i]; v2 = array[i + 1]; + i += 2; - if (v1 & (BIT(31) | BIT(30))) {/*positive & negative condition*/ - if (v1 & BIT(31)) {/* positive condition*/ - c_cond = - (u8)((v1 & (BIT(29) | BIT(28))) >> 28); - if (c_cond == COND_ENDIF) {/*end*/ - is_matched = true; - is_skipped = false; - PHYDM_DBG(dm, ODM_COMP_INIT, "ENDIF\n"); - } else if (c_cond == COND_ELSE) { /*else*/ - is_matched = is_skipped ? false : true; - PHYDM_DBG(dm, ODM_COMP_INIT, "ELSE\n"); - } else {/*if , else if*/ - pre_v1 = v1; - pre_v2 = v2; - PHYDM_DBG(dm, ODM_COMP_INIT, - "IF or ELSE IF\n"); - } - } else if (v1 & BIT(30)) { /*negative condition*/ - if (!is_skipped) { - a1 = pre_v1; a2 = pre_v2; - a3 = v1; a4 = v2; - if (check_positive(dm, - a1, a2, a3, a4)) { - is_matched = true; - is_skipped = true; - } else { - is_matched = false; - is_skipped = false; - } - } else { - is_matched = false; - } + switch (v1 >> 28) { + case PARA_IF: + case PARA_ELSE_IF: + cfg_para = v1 & 0x0fffffff; + PHYDM_DBG(dm, ODM_COMP_INIT, "*if (cart=%d, rfe=%d)\n", + (cfg_para & 0x0f000000) >> 24, cfg_para & 0xff); + break; + case PARA_ELSE: + PHYDM_DBG(dm, ODM_COMP_INIT, "*else\n"); + is_matched = false; + if (!find_target) { + PHYDM_DBG(dm, ODM_COMP_INIT, "Init Fail in idx %d\n", i); + return; } - } else { + break; + case PARA_END: + PHYDM_DBG(dm, ODM_COMP_INIT, "*endif\n"); + halbb_flag_2_default(&is_matched, &find_target); + break; + case PARA_CHK: + /*Check this para meets driver's requirement or not*/ + if (find_target) { + PHYDM_DBG(dm, ODM_COMP_INIT, " skip\n"); + is_matched = false; + break; + } + + if (cfg_para == cfg_target) { + is_matched = true; + find_target = true; + } else { + is_matched = false; + find_target = false; + } + PHYDM_DBG(dm, ODM_COMP_INIT, " match=%d\n", is_matched); + break; + default: if (is_matched) - odm_config_rf_radio_b_8822c(dm, v1, v2); + odm_config_rf_radio_b_8822c(dm, v1, v2); + break; } - i = i + 2; } + PHYDM_DBG(dm, ODM_COMP_INIT, "BBCR Init Success\n"); } u32 odm_get_version_mp_8822c_radiob(void) { - return 47; + return 67; } /****************************************************************************** diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halhwimg8822c_rf.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halhwimg8822c_rf.h index 18be1ef3..2eadd2b4 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halhwimg8822c_rf.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halhwimg8822c_rf.h @@ -23,7 +23,7 @@ * *****************************************************************************/ -/*Image2HeaderVersion: R3 1.5.10*/ +/*Image2HeaderVersion: R3 1.5.17*/ #if (RTL8822C_SUPPORT == 1) #ifndef __INC_MP_RF_HW_IMG_8822C_H #define __INC_MP_RF_HW_IMG_8822C_H @@ -32,6 +32,7 @@ * into driver source code to reduce code size if necessary. * #define CONFIG_8822C_DRV_DIS * #define CONFIG_8822CTSSI_DRV_DIS + * #define CONFIG_8822C_TYPE5_DRV_DIS */ #define CONFIG_8822C @@ -44,6 +45,21 @@ #undef CONFIG_8822CTSSI #endif +#define CONFIG_8822C_TYPE5 +#ifdef CONFIG_8822C_TYPE5_DRV_DIS + #undef CONFIG_8822C_TYPE5 +#endif + +struct txpwr_lmt_t_8822c { + u8 reg; + u8 band:1; + u8 bw:3; + u8 rs:2; + u8 ntx:2; + u8 ch; + s8 val; +}; + /****************************************************************************** * radioa.TXT ******************************************************************************/ @@ -87,6 +103,15 @@ u32 odm_get_version_mp_8822c_txpowertracktssi(void); /* tc: Test Chip, mp: mp Chip*/ u32 odm_get_version_mp_8822c_txpwr_lmt(void); +/****************************************************************************** + * txpwr_lmt_type5.TXT + ******************************************************************************/ + +/* tc: Test Chip, mp: mp Chip*/ +void +odm_read_and_config_mp_8822c_txpwr_lmt_type5(struct dm_struct *dm); +u32 odm_get_version_mp_8822c_txpwr_lmt_type5(void); + #endif #endif /* end of HWIMG_SUPPORT*/ diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_8822c.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_8822c.c index 50a12464..efc10960 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_8822c.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_8822c.c @@ -191,7 +191,7 @@ void _phy_aac_calibrate_8822c(struct dm_struct *dm) u32 cnt = 0; RF_DBG(dm, DBG_RF_LCK, "[AACK]AACK start!!!!!!!\n"); - odm_set_rf_reg(dm, RF_PATH_A, 0xbb, RFREGOFFSETMASK, 0x80010); + //odm_set_rf_reg(dm, RF_PATH_A, 0xbb, RFREGOFFSETMASK, 0x80010); odm_set_rf_reg(dm, RF_PATH_A, 0xb0, RFREGOFFSETMASK, 0x1F0FA); ODM_delay_ms(1); odm_set_rf_reg(dm, RF_PATH_A, RF_0xca, RFREGOFFSETMASK, 0x80000); @@ -203,7 +203,7 @@ void _phy_aac_calibrate_8822c(struct dm_struct *dm) } odm_set_rf_reg(dm, RF_PATH_A, RF_0xb0, RFREGOFFSETMASK, 0x1F0F8); - odm_set_rf_reg(dm, RF_PATH_B, 0xbb, RFREGOFFSETMASK, 0x80010); + //odm_set_rf_reg(dm, RF_PATH_B, 0xbb, RFREGOFFSETMASK, 0x80010); RF_DBG(dm, DBG_RF_IQK, "[AACK]AACK end!!!!!!!\n"); #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_dpk_8822c.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_dpk_8822c.c index 4af93262..0dce6127 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_dpk_8822c.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_dpk_8822c.c @@ -257,11 +257,11 @@ void _dpk_information_8822c( else dpk_info->is_tssi_mode = false; - reg_rf18 = odm_get_rf_reg(dm, RF_PATH_A, RF_0x18, RFREG_MASK); + dpk_info->dpk_rf18[0] = odm_get_rf_reg(dm, RF_PATH_A, RF_0x18, RFREG_MASK); - dpk_info->dpk_band = (u8)((reg_rf18 & BIT(16)) >> 16); /*0/1:G/A*/ - dpk_info->dpk_ch = (u8)reg_rf18 & 0xff; - dpk_info->dpk_bw = (u8)((reg_rf18 & 0x3000) >> 12); /*3/2/1:20/40/80*/ + dpk_info->dpk_band = (u8)((dpk_info->dpk_rf18[0] & BIT(16)) >> 16); /*0/1:G/A*/ + dpk_info->dpk_ch = (u8)dpk_info->dpk_rf18[0] & 0xff; + dpk_info->dpk_bw = (u8)((dpk_info->dpk_rf18[0] & 0x3000) >> 12); /*3/2/1:20/40/80*/ RF_DBG(dm, DBG_RF_DPK, "[DPK] TSSI/ Band/ CH/ BW = %d / %s / %d / %s\n", dpk_info->is_tssi_mode, dpk_info->dpk_band == 0 ? "2G" : "5G", @@ -1294,7 +1294,7 @@ void _dpk_fill_result_8822c( else odm_write_1byte(dm, R_0x1b67, 0x00); - dpk_info->result[path] = result; + dpk_info->result[0] = dpk_info->result[0] | (result << path); dpk_info->dpk_txagc[path] = odm_read_1byte(dm, R_0x1b67); RF_DBG(dm, DBG_RF_DPK, @@ -1537,9 +1537,9 @@ void _dpk_cal_coef1_8822c( for (path = 0; path < DPK_RF_PATH_NUM_8822C; path++) { - i_scaling = 0x16c00 / dpk_info->dpk_gs[path]; /*0x16c00 = 0x400 * 0x5b*/ + i_scaling = 0x16c00 / dpk_info->dpk_gs[path]; /*0x16c00 = 0x400 * 0x5b*/ - RF_DBG(dm, DBG_RF_DPK, "[DPK] S%d i_scaling = 0x%x\n", path, i_scaling); + RF_DBG(dm, DBG_RF_DPK, "[DPK] S%d i_scaling = 0x%x\n", path, i_scaling); /*write 4th I value*/ odm_set_bb_reg(dm, 0x1b18 + path * 0x58, MASKHWORD, i_scaling); @@ -1557,7 +1557,7 @@ void _dpk_cal_coef1_8822c( #endif } - } +} void _dpk_on_8822c( struct dm_struct *dm, @@ -1624,7 +1624,9 @@ void _dpk_result_reset_8822c( u8 path; - dpk_info->dpk_path_ok = 0; + dpk_info->dpk_path_ok = 0x0; + dpk_info->dpk_status = 0x0; + dpk_info->result[0] = 0x0; for (path = 0; path < DPK_RF_PATH_NUM_8822C; path++) { @@ -1632,7 +1634,6 @@ void _dpk_result_reset_8822c( odm_set_bb_reg(dm, R_0x1b58, 0x0000007f, 0x0); dpk_info->dpk_txagc[path] = 0; - dpk_info->result[path] = 0; dpk_info->dpk_gs[path] = 0x5b; dpk_info->pre_pwsf[path] = 0; @@ -1640,11 +1641,6 @@ void _dpk_result_reset_8822c( RF_DBG(dm, DBG_RF_DPK, "[DPK] init thermal S%d = %d\n", path, dpk_info->thermal_dpk[path]); -#if 0 - RF_DBG(dm, DBG_RF_DPK, - "[DPK][reset] S%d pwsf=0x%x, dpk_result=%d\n", - path, dpk_info->pwsf[path], dpk_info->result[path], -#endif } } @@ -1652,8 +1648,6 @@ void _dpk_calibrate_8822c( struct dm_struct *dm, u8 path) { - struct dm_dpk_info *dpk_info = &dm->dpk_info; - u8 dpk_fail = 1, retry_cnt; u32 dpk_txagc = 0; @@ -1661,6 +1655,7 @@ void _dpk_calibrate_8822c( "[DPK] =========== S%d DPK Start ===========\n", path); for (retry_cnt = 0; retry_cnt < 1; retry_cnt++) { + RF_DBG(dm, DBG_RF_DPK, "[DPK] retry = %d\n", retry_cnt); dpk_txagc = _dpk_gainloss_8822c(dm, path); @@ -1673,10 +1668,6 @@ void _dpk_calibrate_8822c( RF_DBG(dm, DBG_RF_DPK, "[DPK] =========== S%d DPK Finish ==========\n", path); - - if (dpk_info->result[path]) - dpk_info->dpk_path_ok = dpk_info->dpk_path_ok | BIT(path); - } void _dpk_path_select_8822c( @@ -1684,6 +1675,8 @@ void _dpk_path_select_8822c( { struct dm_dpk_info *dpk_info = &dm->dpk_info; + dpk_info->dpk_status = dpk_info->dpk_status | BIT(1); + #if (DPK_PATH_A_8822C) _dpk_calibrate_8822c(dm, RF_PATH_A); #endif @@ -1691,10 +1684,30 @@ void _dpk_path_select_8822c( #if (DPK_PATH_B_8822C) _dpk_calibrate_8822c(dm, RF_PATH_B); #endif + dpk_info->dpk_path_ok = dpk_info->result[0]; + _dpk_on_8822c(dm, RF_PATH_A); _dpk_on_8822c(dm, RF_PATH_B); _dpk_cal_coef1_8822c(dm); + + if (dpk_info->result[0] == 0x3) + dpk_info->dpk_status = dpk_info->dpk_status | BIT(2); + +} + +void _dpk_count_8822c( + void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct dm_dpk_info *dpk_info = &dm->dpk_info; + + dpk_info->dpk_cal_cnt += (dpk_info->dpk_status & BIT(1)) >> 1; + dpk_info->dpk_ok_cnt += (dpk_info->dpk_status & BIT(2)) >> 2; + dpk_info->dpk_reload_cnt += dpk_info->dpk_status & BIT(0); + + RF_DBG(dm, DBG_RF_DPK, "[DPK] Cal / OK / Reload = %d / %d / %d\n", + dpk_info->dpk_cal_cnt, dpk_info->dpk_ok_cnt, dpk_info->dpk_reload_cnt); } void _dpk_result_summary_8822c( @@ -1709,11 +1722,8 @@ void _dpk_result_summary_8822c( for (path = 0; path < DPK_RF_PATH_NUM_8822C; path++) { RF_DBG(dm, DBG_RF_DPK, - "[DPK] S%d dpk_txagc = 0x%x, dpk_result = %d\n", - path, dpk_info->dpk_txagc[path], dpk_info->result[path]); - - RF_DBG(dm, DBG_RF_DPK, "[DPK] S%d gain scaling = 0x%x\n", - path, dpk_info->dpk_gs[path]); + "[DPK] S%d dpk_txagc = 0x%x, gain scaling = 0x%x\n", + path, dpk_info->dpk_txagc[path], dpk_info->dpk_gs[path]); RF_DBG(dm, DBG_RF_DPK, "[DPK] S%d DPK is %s\n", path, ((dpk_info->dpk_path_ok & BIT(path)) >> path) ? @@ -1726,17 +1736,44 @@ void _dpk_result_summary_8822c( } +u8 _dpk_reload_index_8822c( + struct dm_struct *dm) +{ + struct dm_dpk_info *dpk_info = &dm->dpk_info; + + u32 reg_rf18; + u8 i = 99; + + reg_rf18 = odm_get_rf_reg(dm, RF_PATH_A, RF_0x18, RFREG_MASK); + + if (reg_rf18 == dpk_info->dpk_rf18[0]) + i = 0; + else if (reg_rf18 == dpk_info->dpk_rf18[1]) + i = 1; + + if (i != 99) { + dpk_info->dpk_path_ok = dpk_info->result[i]; + dpk_info->dpk_band = (u8)((reg_rf18 & BIT(16)) >> 16); /*0/1:G/A*/ + dpk_info->dpk_ch = (u8)(reg_rf18 & 0xff); + dpk_info->dpk_bw = (u8)((reg_rf18 & 0x3000) >> 12); /*3/2/1:20/40/80*/ + } + +#if 1 + RF_DBG(dm, DBG_RF_DPK, "[DPK] Current RF0x18 = 0x%x, reload idx = %d\n", + reg_rf18, i); +#endif + return i; +} + void _dpk_reload_data_8822c( - void *dm_void) + void *dm_void, + u8 reload_idx) { struct dm_struct *dm = (struct dm_struct *)dm_void; struct dm_dpk_info *dpk_info = &dm->dpk_info; u8 path; - if ((dpk_info->dpk_path_ok == 0) && (dpk_info->dpk_ch == 0)) - return; /*never do DPK before*/ - for (path = 0; path < DPK_RF_PATH_NUM_8822C; path++) { odm_set_bb_reg(dm, R_0x1b00, 0x0000000f, 0x8 | (path << 1)); @@ -1768,19 +1805,22 @@ u8 dpk_reload_8822c( struct dm_struct *dm = (struct dm_struct *)dm_void; struct dm_dpk_info *dpk_info = &dm->dpk_info; - u8 channel; + u8 i; - dpk_info->is_reload = false; + dpk_info->dpk_status = 0x0; - channel = (u8)(odm_get_rf_reg(dm, RF_PATH_A, RF_0x18, RFREG_MASK) & 0xff); + if (dpk_info->dpk_rf18[0] == 0) + return false; /*never do DPK before*/ - if (channel == dpk_info->dpk_ch) { - RF_DBG(dm, DBG_RF_DPK, "[DPK] DPK reload for CH%d!!\n", dpk_info->dpk_ch); - _dpk_reload_data_8822c(dm); - dpk_info->is_reload = true; + i = _dpk_reload_index_8822c(dm); + + if (i != 99) { + RF_DBG(dm, DBG_RF_DPK, "[DPK] DPK reload for RF0x18 0x%x!!\n", dpk_info->dpk_rf18[i]); + _dpk_reload_data_8822c(dm, i); + dpk_info->dpk_status = dpk_info->dpk_status | BIT(0); } - return dpk_info->is_reload; + return dpk_info->dpk_status; } void _dpk_by_fw_8822c( @@ -1790,6 +1830,9 @@ void _dpk_by_fw_8822c( RF_DBG(dm, DBG_RF_DPK, "[DPK] DPK by FW !!\n"); + RF_DBG(dm, DBG_RF_DPK, "[DPK] FW Ver (Sub_Ver) = %d (%d)\n", + dm->fw_version, dm->fw_sub_version); + status = odm_dpk_by_fw(dm); if (status == HAL_STATUS_SUCCESS) @@ -1876,11 +1919,13 @@ void do_dpk_8822c( } else if (!(*dm->mp_mode) && (dm->fw_offload_ability & PHYDM_RF_DPK_OFFLOAD)) { _dpk_by_fw_8822c(dm); return; - } else if (!(*dm->mp_mode) && dpk_reload_8822c(dm)) + } else if (!(*dm->mp_mode) && dpk_reload_8822c(dm)) { + _dpk_count_8822c(dm); return; + } RF_DBG(dm, DBG_RF_DPK, - "[DPK] ****** DPK Start (Ver: %s), Cut: %d ******\n", + "[DPK] ****** DPK Start (Ver: %s), Cv: %d ******\n", DPK_VER_8822C, dm->cut_version); _dpk_information_8822c(dm); @@ -1898,6 +1943,7 @@ void do_dpk_8822c( _dpk_result_reset_8822c(dm); _dpk_path_select_8822c(dm); _dpk_result_summary_8822c(dm); + _dpk_count_8822c(dm); _dpk_manual_txagc_8822c(dm, false); _dpk_afe_setting_8822c(dm, false); @@ -1939,12 +1985,12 @@ void dpk_enable_disable_8822c( } else { if (dpk_info->dpk_path_ok & BIT(0)) { odm_set_bb_reg(dm, R_0x1b08, BIT(15) | BIT(14), 0x3); - odm_set_bb_reg(dm, R_0x1b04, 0x000000ff,0x5b); + odm_set_bb_reg(dm, R_0x1b04, 0x000000ff, 0x5b); RF_DBG(dm, DBG_RF_DPK, "[DPK] S0 DPK bypass !!!\n"); } if ((dpk_info->dpk_path_ok & BIT(1)) >> 1) { odm_set_bb_reg(dm, R_0x1b60, BIT(15) | BIT(14), 0x3); - odm_set_bb_reg(dm, R_0x1b5c, 0x000000ff,0x5b); + odm_set_bb_reg(dm, R_0x1b5c, 0x000000ff, 0x5b); RF_DBG(dm, DBG_RF_DPK, "[DPK] S1 DPK bypass !!!\n"); } } @@ -1963,17 +2009,18 @@ void dpk_track_8822c( s8 offset[2], delta_dpk[2]; if ((dpk_info->thermal_dpk[0] == 0) && (dpk_info->thermal_dpk[1] == 0)) { - RF_DBG(dm, DBG_RF_DPK, "[DPK_track] Bypass DPK tracking!!!!\n"); + RF_DBG(dm, DBG_RF_DPK_TRACK, "[DPK_track] Bypass DPK tracking!!!!\n"); return; } else - RF_DBG(dm, DBG_RF_DPK | DBG_RF_TX_PWR_TRACK, - "[DPK_track] =======================================\n"); + RF_DBG(dm, DBG_RF_DPK_TRACK, + "[DPK_track] ================[CH %d]================\n", + dpk_info->dpk_ch); /*get thermal meter*/ for (path = 0; path < DPK_RF_PATH_NUM_8822C; path++) { thermal_value[path] = _dpk_thermal_read_8822c(dm, path); - RF_DBG(dm, DBG_RF_DPK | DBG_RF_TX_PWR_TRACK, + RF_DBG(dm, DBG_RF_DPK_TRACK, "[DPK_track] S%d thermal now = %d\n", path, thermal_value[path]); } @@ -2010,11 +2057,11 @@ void dpk_track_8822c( thermal_value[0] = (u8)(thermal_dpk_avg[0] / thermal_dpk_avg_count); thermal_value[1] = (u8)(thermal_dpk_avg[1] / thermal_dpk_avg_count); - RF_DBG(dm, DBG_RF_DPK | DBG_RF_TX_PWR_TRACK, + RF_DBG(dm, DBG_RF_DPK_TRACK, "[DPK_track] S0 thermal avg = %d (DPK @ %d)\n", thermal_value[0], dpk_info->thermal_dpk[0]); - RF_DBG(dm, DBG_RF_DPK | DBG_RF_TX_PWR_TRACK, + RF_DBG(dm, DBG_RF_DPK_TRACK, "[DPK_track] S1 thermal avg = %d (DPK @ %d)\n", thermal_value[1], dpk_info->thermal_dpk[1]); } @@ -2024,27 +2071,33 @@ void dpk_track_8822c( offset[path] = (delta_dpk[path] - dpk_info->thermal_dpk_delta[path]) & 0x7f; - RF_DBG(dm, DBG_RF_DPK | DBG_RF_TX_PWR_TRACK, + RF_DBG(dm, DBG_RF_DPK_TRACK, "[DPK_track] S%d thermal_diff= %d, cal_diff= %d, offset= %d\n", path, delta_dpk[path], dpk_info->thermal_dpk_delta[path], offset[path] > 64 ? offset[path] - 128 : offset[path]); } if (rf->is_dpk_in_progress || dm->rf_calibrate_info.is_iqk_in_progress || - rf->is_tssi_in_progress) + rf->is_tssi_in_progress || rf->is_txgapk_in_progress || + !(rf->rf_supportability & HAL_RF_DPK_TRACK)) return; +#if (DM_ODM_SUPPORT_TYPE == ODM_WIN) + if (*dm->is_fcs_mode_enable) + return; +#endif + for (path = 0; path < DPK_RF_PATH_NUM_8822C; path++) { if (offset[path] != dpk_info->pre_pwsf[path]) { odm_set_bb_reg(dm, R_0x1b00, 0x0000000f, 0x8 | (path << 1)); odm_set_bb_reg(dm, R_0x1b58, 0x0000007f, offset[path]); dpk_info->pre_pwsf[path] = offset[path]; - RF_DBG(dm, DBG_RF_DPK | DBG_RF_TX_PWR_TRACK, + RF_DBG(dm, DBG_RF_DPK_TRACK, "[DPK_track] S%d new pwsf is 0x%x, 0x1b58=0x%x\n", path, dpk_info->pre_pwsf[path], odm_get_bb_reg(dm, R_0x1b58, MASKDWORD)); } else - RF_DBG(dm, DBG_RF_DPK | DBG_RF_TX_PWR_TRACK, + RF_DBG(dm, DBG_RF_DPK_TRACK, "[DPK_track] S%d pwsf unchanged (0x%x)\n", path, dpk_info->pre_pwsf[path]); } @@ -2071,7 +2124,7 @@ void dpk_info_by_8822c( PDM_SNPF(out_len, used, output + used, out_len - used, " %-25s = %d / %d\n", "S1 DC (I/Q)", dpk_info->dc_i[1], dpk_info->dc_q[1]); - + PDM_SNPF(out_len, used, output + used, out_len - used, " %-25s = %d / %d\n", "S1 Corr (idx/val)", dpk_info->corr_idx[1], dpk_info->corr_val[1]); @@ -2087,7 +2140,7 @@ void dpk_info_by_8822c( for (path = 0; path < DPK_RF_PATH_NUM_8822C; path++) { for (addr = 0; addr < 20; addr++) PDM_SNPF(out_len, used, output + used, out_len - used, " Read S%d coef[%02d] = 0x%08x\n", - path, addr, dpk_info->coef[path][addr]); + path, addr, dpk_info->coef[path][addr]); } PDM_SNPF(out_len, used, output + used, out_len - used, @@ -2108,6 +2161,8 @@ void dpk_info_rsvd_page_8822c( odm_move_memory(dm, buf + 4, dpk_info->dpk_gs, 4); odm_move_memory(dm, buf + 8, dpk_info->coef, 160); odm_move_memory(dm, buf + 168, &(dpk_info->dpk_ch), 1); + odm_move_memory(dm, buf + 169, dpk_info->result, 2); + odm_move_memory(dm, buf + 171, dpk_info->dpk_rf18, 8); } if (buf_size) @@ -2124,43 +2179,77 @@ void dpk_c2h_report_transfer_8822c( struct dm_dpk_info *dpk_info = &dm->dpk_info; struct dm_dpk_c2h_report dpk_c2h_report; - u8 i, j; + u8 i, j, idx; u8 path_status = 0; if (!is_ok) { - RF_DBG(dm, DBG_RF_DPK, "[DPK]FW DPK C2H data fail!!!\n"); + RF_DBG(dm, DBG_RF_DPK, "[DPK] FW DPK C2H data fail!!!\n"); return; } else if (buf_size < DPK_C2H_REPORT_LEN_8822C) { - RF_DBG(dm, DBG_RF_DPK, "[DPK]FW DPK: error buf size(%d)!!!\n", buf_size); + RF_DBG(dm, DBG_RF_DPK, "[DPK] FW DPK: error buf size(%d)!!!\n", buf_size); + return; + } else if (!(dm->fw_offload_ability & PHYDM_RF_DPK_OFFLOAD)) { + RF_DBG(dm, DBG_RF_DPK, + "[DPK] Skip FW DPK transfer (DPK OFFLOAD not support)\n"); return; } + RF_DBG(dm, DBG_RF_DPK, "[DPK] FW DPK data transfer start!!\n"); + + /*copy C2H data to struct dpk_c2h_report*/ for (i = 0; i < 2; i++) { - odm_move_memory(dm, &(dpk_c2h_report.path_ok[i]), buf + i, 1); + odm_move_memory(dm, &(dpk_c2h_report.result[i]), buf + i, 1); for (j = 0; j < DPK_RF_PATH_NUM_8822C; j++) { odm_move_memory(dm, &(dpk_c2h_report.therm[i][j]), - buf + 2 + i + j, 1); + buf + 2 + i * 2 + j, 1); odm_move_memory(dm, &(dpk_c2h_report.therm_delta[i][j]), - buf + 6 + i + j, 1); + buf + 6 + i * 2 + j, 1); } + + odm_move_memory(dm, &(dpk_c2h_report.dpk_rf18[i]), buf + 10 + i * 4, 4); } + odm_move_memory(dm, &dpk_c2h_report.dpk_status, buf + 18, 1); + + /*check abnormal*/ + if (dpk_c2h_report.dpk_rf18[0] == 0x0) { + RF_DBG(dm, DBG_RF_DPK, "[DPK] Check C2H RF0x18 data fail!!!\n"); + return; + } + + /*copy struct dpk_c2h_report to struct dpk_info*/ + dpk_info->dpk_status = dpk_c2h_report.dpk_status; + + _dpk_count_8822c(dm); + + for (i = 0; i < 2; i++) { + dpk_info->dpk_rf18[i] = dpk_c2h_report.dpk_rf18[i]; + dpk_info->result[i] = dpk_c2h_report.result[i]; + } + + idx = _dpk_reload_index_8822c(dm); for (i = 0; i < DPK_RF_PATH_NUM_8822C; i++) { - dpk_info->thermal_dpk[i]= dpk_c2h_report.therm[0][i]; - dpk_info->thermal_dpk_delta[i]= dpk_c2h_report.therm_delta[0][i]; + dpk_info->thermal_dpk[i] = dpk_c2h_report.therm[idx][i]; + dpk_info->thermal_dpk_delta[i] = dpk_c2h_report.therm_delta[idx][i]; } - dpk_info->dpk_path_ok = dpk_c2h_report.path_ok[0]; - #if 0 - for (i = 0; i < 9; i++) + for (i = 0; i < DPK_C2H_REPORT_LEN_8822C; i++) RF_DBG(dm, DBG_RF_DPK, "[DPK] buf[%d] = 0x%x\n", i, *(buf + i)); - RF_DBG(dm, DBG_RF_DPK, "[DPK] dpk_path_ok = 0x%x\n", dpk_c2h_report.path_ok[0]); - RF_DBG(dm, DBG_RF_DPK, "[DPK] thermal_dpk[0] = 0x%x\n", dpk_c2h_report.therm[0][0]); - RF_DBG(dm, DBG_RF_DPK, "[DPK] thermal_dpk[1] = 0x%x\n", dpk_c2h_report.therm[0][1]); - RF_DBG(dm, DBG_RF_DPK, "[DPK] thermal_dpk_delta[0] = 0x%x\n", dpk_c2h_report.therm_delta[0][0]); - RF_DBG(dm, DBG_RF_DPK, "[DPK] thermal_dpk_delta[1] = 0x%x\n", dpk_c2h_report.therm_delta[0][1]); + RF_DBG(dm, DBG_RF_DPK, "[DPK] result[0] = 0x%x\n", dpk_c2h_report.result[0]); + RF_DBG(dm, DBG_RF_DPK, "[DPK] result[1] = 0x%x\n", dpk_c2h_report.result[1]); + RF_DBG(dm, DBG_RF_DPK, "[DPK] thermal_dpk[0][0] = 0x%x\n", dpk_c2h_report.therm[0][0]); + RF_DBG(dm, DBG_RF_DPK, "[DPK] thermal_dpk[0][1] = 0x%x\n", dpk_c2h_report.therm[0][1]); + RF_DBG(dm, DBG_RF_DPK, "[DPK] thermal_dpk[1][0] = 0x%x\n", dpk_c2h_report.therm[1][0]); + RF_DBG(dm, DBG_RF_DPK, "[DPK] thermal_dpk[1][1] = 0x%x\n", dpk_c2h_report.therm[1][1]); + RF_DBG(dm, DBG_RF_DPK, "[DPK] thermal_dpk_delta[0][0] = 0x%x\n", dpk_c2h_report.therm_delta[0][0]); + RF_DBG(dm, DBG_RF_DPK, "[DPK] thermal_dpk_delta[0][1] = 0x%x\n", dpk_c2h_report.therm_delta[0][1]); + RF_DBG(dm, DBG_RF_DPK, "[DPK] thermal_dpk_delta[1][0] = 0x%x\n", dpk_c2h_report.therm_delta[1][0]); + RF_DBG(dm, DBG_RF_DPK, "[DPK] thermal_dpk_delta[1][1] = 0x%x\n", dpk_c2h_report.therm_delta[1][1]); + RF_DBG(dm, DBG_RF_DPK, "[DPK] dpk_rf18[0] = 0x%x\n", dpk_c2h_report.dpk_rf18[0]); + RF_DBG(dm, DBG_RF_DPK, "[DPK] dpk_rf18[1] = 0x%x\n", dpk_c2h_report.dpk_rf18[1]); + RF_DBG(dm, DBG_RF_DPK, "[DPK] dpk_status = 0x%x\n", dpk_c2h_report.dpk_status); #endif } #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_dpk_8822c.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_dpk_8822c.h index 2dd77d5c..3fb65e7a 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_dpk_8822c.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_dpk_8822c.h @@ -42,8 +42,8 @@ #define DPK_PATH_A_8822C 1 #define DPK_PATH_B_8822C 1 #define DPK_THRESHOLD_8822C 6 -#define DPK_INFO_RSVD_LEN_8822C 169 -#define DPK_C2H_REPORT_LEN_8822C 10 +#define DPK_INFO_RSVD_LEN_8822C 179 +#define DPK_C2H_REPORT_LEN_8822C 19 /*---------------------------End Define Parameters----------------------------*/ @@ -80,7 +80,7 @@ void dpk_info_rsvd_page_8822c( void dpk_c2h_report_transfer_8822c( void *dm_void, boolean is_ok, - u8 *buf, + u8 *buf, u8 buf_size); #endif /* RTL8822C_SUPPORT */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_iqk_8822c.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_iqk_8822c.c index 576c6b2f..7cb70b75 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_iqk_8822c.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_iqk_8822c.c @@ -66,8 +66,9 @@ _iqk_check_cal_8822c( } odm_write_1byte(dm, 0x1b10, 0x0); // disable slef-mixer for rx mode - odm_set_rf_reg(dm, (enum rf_path)path, 0x8f, BIT(14), 0x0); - odm_set_rf_reg(dm, (enum rf_path)path, 0x0, 0xf0000, 0x1); + //odm_set_rf_reg(dm, (enum rf_path)path, 0x0, 0xf0000, 0x1); + if(dm->cut_version == ODM_CUT_E) + odm_set_rf_reg(dm, (enum rf_path)path, 0x8f, BIT(14), 0x0); halrf_delay_10us(1); odm_write_4byte(dm, 0x1b00, 0x8 | path << 1); if(!fail) @@ -75,7 +76,7 @@ _iqk_check_cal_8822c( else odm_set_bb_reg(dm, R_0x1b20, BIT(26) | BIT(25), 0x0); //RF_DBG(dm, DBG_RF_IQK, "[IQK]delay count = 0x%x!!!\n", delay_count); - //return fail; + //return fail; return false; } @@ -541,19 +542,22 @@ void _iqk_set_gnt_wl_high_8822c(struct dm_struct *dm) /*GNT_WL = 1*/ val = (state << 1) | 0x1; - _iqk_btc_write_indirect_reg_8822c(dm, 0x38, 0x3000, val); /*0x38[13:12]*/ - _iqk_btc_write_indirect_reg_8822c(dm, 0x38, 0x0300, val); /*0x38[9:8]*/ + _iqk_btc_write_indirect_reg_8822c(dm, 0x38, 0xff00, 0x77); /*0x38[13:12]*/ + //_iqk_btc_write_indirect_reg_8822c(dm, 0x38, 0x0300, val); /*0x38[9:8]*/ } void _iqk_set_gnt_bt_low_8822c(struct dm_struct *dm) { +#if 0 u32 val = 0; u8 state = 0x0, sw_control = 0x1; /*GNT_BT = 0*/ val = (sw_control) ? ((state << 1) | 0x1) : 0; - _iqk_btc_write_indirect_reg_8822c(dm, 0x38, 0xc000, val); /*0x38[15:14]*/ - _iqk_btc_write_indirect_reg_8822c(dm, 0x38, 0x0c00, val); /*0x38[11:10]*/ + //_iqk_btc_write_indirect_reg_8822c(dm, 0x38, 0xc000, val); /*0x38[15:14]*/ + //_iqk_btc_write_indirect_reg_8822c(dm, 0x38, 0x0c00, val); /*0x38[11:10]*/ +#endif + return; } void _iqk_set_gnt_wl_gnt_bt_8822c(struct dm_struct *dm, boolean beforeK) @@ -562,7 +566,7 @@ void _iqk_set_gnt_wl_gnt_bt_8822c(struct dm_struct *dm, boolean beforeK) if (beforeK) { _iqk_set_gnt_wl_high_8822c(dm); - _iqk_set_gnt_bt_low_8822c(dm); + //_iqk_set_gnt_bt_low_8822c(dm); } else { _iqk_btc_write_indirect_reg_8822c(dm, 0x38, MASKDWORD, iqk_info->tmp_gntwl); } @@ -2996,7 +3000,7 @@ void _iqk_reload_iqk_setting_8822c( odm_set_bb_reg(dm, R_0x1b20, BIT(26), 0x0); odm_set_bb_reg(dm, 0x1b38, MASKDWORD, iqk_info->nbtxk_1b38[path]); odm_set_bb_reg(dm, 0x1b3c, MASKDWORD, iqk_info->nbrxk_1b3c[path]); - } else { + } else { odm_set_bb_reg(dm, R_0x1b20, BIT(26), 0x1); odm_set_bb_reg(dm, R_0x1b38, MASKDWORD, 0x40000000); odm_set_bb_reg(dm, R_0x1b3c, MASKDWORD, 0x40000000); @@ -3540,8 +3544,11 @@ _iqk_rx_iqk_gain_search_fail_8822c( IQK_CMD = (0x208 | (1 << (path + 4)) | (path << 1)); RF_DBG(dm, DBG_RF_IQK, "[IQK]S%d GS%d_Trigger = 0x%x\n", path, step, IQK_CMD); - odm_set_rf_reg(dm, (enum rf_path)path, 0x0, 0xf0000, 0x4); - odm_set_rf_reg(dm, (enum rf_path)path, 0x8f, BIT(14), 0x1); + + if(dm->cut_version == ODM_CUT_E) { + odm_set_rf_reg(dm, (enum rf_path)path, 0x0, 0xf0000, 0x4); + odm_set_rf_reg(dm, (enum rf_path)path, 0x8f, BIT(14), 0x1); + } halrf_delay_10us(1); odm_write_4byte(dm, 0x1b00, IQK_CMD); odm_write_4byte(dm, 0x1b00, IQK_CMD + 0x1); @@ -3560,8 +3567,11 @@ _iqk_rx_iqk_gain_search_fail_8822c( IQK_CMD = (0x308 | (1 << (path + 4)) | (path << 1)); RF_DBG(dm, DBG_RF_IQK, "[IQK]S%d GS%d_Trigger = 0x%x\n", path, step, IQK_CMD); - odm_set_rf_reg(dm, (enum rf_path)path, 0x0, 0xf0000, 0x7); - odm_set_rf_reg(dm, (enum rf_path)path, 0x8f, BIT(14), 0x0); + + if(dm->cut_version == ODM_CUT_E) { + odm_set_rf_reg(dm, (enum rf_path)path, 0x0, 0xf0000, 0x7); + odm_set_rf_reg(dm, (enum rf_path)path, 0x8f, BIT(14), 0x0); + } halrf_delay_10us(1); odm_write_4byte(dm, 0x1b00, IQK_CMD); odm_write_4byte(dm, 0x1b00, IQK_CMD + 0x1); @@ -3596,11 +3606,11 @@ _iqk_rx_iqk_gain_search_fail_8822c( fail = false; iqk->isbnd = false; } - + if (iqk->isbnd) fail = false; - if(idx < 5) - iqk->tmp1bcc = IQMUX[idx]; + + iqk->tmp1bcc = IQMUX[idx]; if (fail == false){ tmp = (iqk->tmp1bcc << 8) | bb_idx ; @@ -3608,10 +3618,10 @@ _iqk_rx_iqk_gain_search_fail_8822c( RF_DBG(dm, DBG_RF_IQK, "[IQK]S%d 0x1be8 = %x\n",path, tmp); } } - + return fail; - + } boolean @@ -3656,23 +3666,39 @@ _lok_one_shot_8822c( u32 IQK_CMD = 0x0; u8 idac_i, idac_q; + _iqk_set_gnt_wl_gnt_bt_8822c(dm, true); if (for_rxk) { RF_DBG(dm, DBG_RF_IQK, "[IQK]======S%d LOK for RXK======\n", path); IQK_CMD = 0x8 | (1 << (4 + path)) | (path << 1); - odm_set_rf_reg(dm, (enum rf_path)path, 0x0, 0xf0000, 0x6); - odm_set_rf_reg(dm, (enum rf_path)path, 0x8f, BIT(14), 0x1); + if(dm->cut_version == ODM_CUT_E) { + odm_set_rf_reg(dm, (enum rf_path)path, 0x0, 0xf0000, 0x6); + odm_set_rf_reg(dm, (enum rf_path)path, 0x8f, BIT(14), 0x1); + RF_DBG(dm, DBG_RF_IQK, "[IQK]0x00 =%x, 0x8f = 0x%x\n", odm_get_rf_reg(dm, path, 0x0, 0xfffff), odm_get_rf_reg(dm, path, 0x8f, 0xfffff)); + RF_DBG(dm, DBG_RF_IQK, "[IQK]0x38 =%x, 0x8f = 0x%x\n", _iqk_btc_read_indirect_reg_8822c(dm, 0x38), odm_get_bb_reg(dm, 0x70, 0xff000000)); + + } halrf_delay_10us(1); } else { RF_DBG(dm, DBG_RF_IQK, "[IQK]======S%d LOK======\n", path); IQK_CMD = 0x8 | (1 << (4 + path)) | (path << 1); - odm_set_rf_reg(dm, (enum rf_path)path, 0x0, 0xf0000, 0x4); - odm_set_rf_reg(dm, (enum rf_path)path, 0x8f, BIT(14), 0x1); + + if(dm->cut_version == ODM_CUT_E) { + odm_set_rf_reg(dm, (enum rf_path)path, 0x0, 0xf0000, 0x4); + odm_set_rf_reg(dm, (enum rf_path)path, 0x8f, BIT(14), 0x1); + RF_DBG(dm, DBG_RF_IQK, "[IQK]0x00 =%x, 0x8f = 0x%x\n", odm_get_rf_reg(dm, path, 0x0, 0xfffff), odm_get_rf_reg(dm, path, 0x8f, 0xfffff)); + RF_DBG(dm, DBG_RF_IQK, "[IQK]0x38 =%x, 0x8f = 0x%x\n", _iqk_btc_read_indirect_reg_8822c(dm, 0x38), odm_get_bb_reg(dm, 0x70, 0xff000000)); + + } halrf_delay_10us(1); } RF_DBG(dm, DBG_RF_IQK, "[IQK]LOK_Trigger = 0x%x\n", IQK_CMD); - _iqk_set_gnt_wl_gnt_bt_8822c(dm, true); + + RF_DBG(dm, DBG_RF_IQK, "[IQK]0x00 =%x, 0x8f = 0x%x\n", odm_get_rf_reg(dm, path, 0x0, 0xfffff), odm_get_rf_reg(dm, path, 0x8f, 0xfffff)); + RF_DBG(dm, DBG_RF_IQK, "[IQK]0x38 =%x, 0x8f = 0x%x\n", _iqk_btc_read_indirect_reg_8822c(dm, 0x38), odm_get_bb_reg(dm, 0x70, 0xff000000)); + + _iqk_rf_direct_access_8822c(dm, (enum rf_path)path, false); odm_write_4byte(dm, 0x1b00, IQK_CMD); odm_write_4byte(dm, 0x1b00, IQK_CMD + 1); @@ -3685,7 +3711,7 @@ _lok_one_shot_8822c( odm_set_rf_reg(dm, (enum rf_path)path, RF_0xef, BIT(4), 0x0); LOK_notready = _iqk_check_cal_8822c(dm, path, 0x0); -#if 0 +#if 1 if (path == RF_PATH_B) odm_set_rf_reg(dm, (enum rf_path)path, RF_0x00, 0xf0000, 0x1); #endif @@ -3726,6 +3752,8 @@ _iqk_one_shot_8822c( if ((*dm->band_width == CHANNEL_WIDTH_5) ||(*dm->band_width == CHANNEL_WIDTH_10)) is_NB_IQK = true; + _iqk_set_gnt_wl_gnt_bt_8822c(dm, true); + if (idx == TXIQK) { if (is_NB_IQK) temp = (0x1 << 8) | (1 << (path + 4)) | (path << 1); @@ -3733,8 +3761,11 @@ _iqk_one_shot_8822c( temp = ((*dm->band_width + 4) << 8) | (1 << (path + 4)) | (path << 1); iqk_cmd = 0x8 | temp; RF_DBG(dm, DBG_RF_IQK, "[IQK]TXK_Trigger = 0x%x\n", iqk_cmd); - odm_set_rf_reg(dm, (enum rf_path)path, 0x0, 0xf0000, 0x4); - odm_set_rf_reg(dm, (enum rf_path)path, 0x8f, BIT(14), 0x1); + + if(dm->cut_version == ODM_CUT_E){ + odm_set_rf_reg(dm, (enum rf_path)path, 0x0, 0xf0000, 0x4); + odm_set_rf_reg(dm, (enum rf_path)path, 0x8f, BIT(14), 0x1); + } halrf_delay_10us(1); /*{0xf8000118, 0xf800012a} ==> NB TXK (CMD = 1)*/ /*{0xf8000418, 0xf800042a} ==> 20 WBTXK (CMD = 3)*/ @@ -3747,8 +3778,11 @@ _iqk_one_shot_8822c( temp = ((*dm->band_width + 7) << 8) | (1 << (path + 4)) | (path << 1); iqk_cmd = 0x8 | temp; RF_DBG(dm, DBG_RF_IQK, "[IQK]RXK1_Trigger = 0x%x\n", iqk_cmd); - odm_set_rf_reg(dm, (enum rf_path)path, 0x0, 0xf0000, 0x6); - odm_set_rf_reg(dm, (enum rf_path)path, 0x8f, BIT(14), 0x1); + + if(dm->cut_version == ODM_CUT_E){ + odm_set_rf_reg(dm, (enum rf_path)path, 0x0, 0xf0000, 0x6); + odm_set_rf_reg(dm, (enum rf_path)path, 0x8f, BIT(14), 0x1); + } halrf_delay_10us(1); /*{0xf8000218, 0xf800021a} ==> NB RXK1 (CMD = 1)*/ /*{0xf8000718, 0xf800071a} ==> 20 WBRXK1 (CMD = 7)*/ @@ -3761,32 +3795,39 @@ _iqk_one_shot_8822c( temp = ((*dm->band_width + 0xa) << 8) | (1 << (path + 4)) | (path << 1); iqk_cmd = 0x8 | temp; RF_DBG(dm, DBG_RF_IQK, "[IQK]RXK2_Trigger = 0x%x\n", iqk_cmd); - odm_set_rf_reg(dm, (enum rf_path)path, 0x0, 0xf0000, 0x7); - odm_set_rf_reg(dm, (enum rf_path)path, 0x8f, BIT(14), 0x0); + + if(dm->cut_version == ODM_CUT_E) { + odm_set_rf_reg(dm, (enum rf_path)path, 0x0, 0xf0000, 0x7); + odm_set_rf_reg(dm, (enum rf_path)path, 0x8f, BIT(14), 0x0); + } halrf_delay_10us(1); /*{0xf8000318, 0xf800031a} ==> NB RXK2 (CMD = 3)*/ /*{0xf8000918, 0xf8000a1a} ==> 20 WBRXK2 (CMD = a)*/ /*{0xf8000a18, 0xf8000b1a} ==> 40 WBRXK2 (CMD = b)*/ /*{0xf8000b18, 0xf8000c1a} ==> 80 WBRXK2 (CMD = c)*/ } + + RF_DBG(dm, DBG_RF_IQK, "[IQK]0x0 =%x, 0x8f = 0x%x\n", odm_get_rf_reg(dm, path, 0x0, 0xfffff), odm_get_rf_reg(dm, path, 0x8f, 0xfffff)); + RF_DBG(dm, DBG_RF_IQK, "[IQK]0x38 =%x, 0x73 = 0x%x\n", _iqk_btc_read_indirect_reg_8822c(dm, 0x38), odm_get_bb_reg(dm, 0x70, 0xff000000)); + if (rf->rf_dbg_comp & DBG_RF_IQK) { if (idx != TXIQK) { odm_write_4byte(dm, 0x1b00, 0x8 | path << 1); RF_DBG(dm, DBG_RF_IQK, "[IQK]0x1bcc =0x%x\n", odm_read_1byte(dm, 0x1bcc)); } } - _iqk_set_gnt_wl_gnt_bt_8822c(dm, true); + //_iqk_set_gnt_wl_gnt_bt_8822c(dm, true); odm_write_4byte(dm, 0x1b00, iqk_cmd); odm_write_4byte(dm, 0x1b00, iqk_cmd + 0x1); fail = _iqk_check_cal_8822c(dm, path, 0x1); -#if 0 +#if 1 if (path == RF_PATH_B) odm_set_rf_reg(dm, (enum rf_path)path, RF_0x00, 0xf0000, 0x1); #endif _iqk_set_gnt_wl_gnt_bt_8822c(dm, false); - if (idx == TXIQK) { + if (idx == TXIQK) { odm_write_4byte(dm, 0x1b00, 0x8 | path << 1); iqk_info->iqk_fail_report[0][path][TXIQK] = fail; if (!fail){ @@ -3796,7 +3837,7 @@ _iqk_one_shot_8822c( _iqk_backup_iqk_8822c(dm, 0x2, path); } } - if (idx == RXIQK2) { + if (idx == RXIQK2) { odm_write_4byte(dm, 0x1b00, 0x8 | path << 1); temp = odm_get_rf_reg(dm,(enum rf_path)path, RF_0x0, MASK20BITS) >> 5; temp = temp & 0xff; @@ -4514,7 +4555,7 @@ void _iqk_rximr_test_8822c( boolean kfail; u8 i, step, count, side; u32 imr_result = 0, tone_index; - u32 temp = 0, temp1b38[2][15] = {0}; + u32 temp = 0, temp1b38[2][15]; char *freq[15] = {"1.25MHz", "3.75MHz", "6.25MHz", "8.75MHz", "11.25MHz", "13.75MHz", "16.25MHz", "18.75MHz", "21.25MHz", "23.75MHz", "26.25MHz", "28.75MHz", "31.25MHz", "33.75MHz", "36.25MHz"}; @@ -4658,6 +4699,8 @@ void _phy_iq_calibrate_8822c( if (*dm->mp_mode) is_mp = true; + else + is_mp = false; #if 0 if (!is_mp) if (_iqk_reload_iqk_8822c(dm, reset)) @@ -4767,10 +4810,6 @@ void phy_iq_calibrate_8822c( if (!(rf->rf_supportability & HAL_RF_IQK)) return; - if (dm->mp_mode) - if (*dm->mp_mode) - halrf_iqk_hwtx_check(dm, true); - //if (!(*dm->mp_mode)) // _iqk_check_coex_status(dm, true); @@ -4786,9 +4825,6 @@ void phy_iq_calibrate_8822c( _phy_iq_calibrate_8822c(dm, clear, segment_iqk); } _iqk_fail_count_8822c(dm); - if (dm->mp_mode) - if (*dm->mp_mode) - halrf_iqk_hwtx_check(dm, false); #if (DM_ODM_SUPPORT_TYPE & ODM_AP) _iqk_iqk_fail_report_8822c(dm); #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_rfk_init_8822c.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_rfk_init_8822c.c index 79430b09..08cb4c68 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_rfk_init_8822c.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_rfk_init_8822c.c @@ -2525,4 +2525,4 @@ void odm_read_and_config_mp_8822c_cal_init(void *dm_void) #endif } -#endif \ No newline at end of file +#endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_tssi_8822c.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_tssi_8822c.c index 34e4e9e7..15e5d6d9 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_tssi_8822c.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_tssi_8822c.c @@ -254,107 +254,6 @@ s8 _halrf_get_kfree_tssi_offset_8822c( return offset = tssi->tssi_kfree_efuse[0][offset_index]; } - -void halrf_calculate_tssi_codeword_8822c( - void *dm_void) -{ - struct dm_struct *dm = (struct dm_struct *)dm_void; - struct _hal_rf_ *rf = &dm->rf_table; - struct _halrf_tssi_data *tssi = &rf->halrf_tssi_data; - - u8 i, rate; - u8 channel = *dm->channel, bandwidth = *dm->band_width; - /*u32 big_a, small_a;*/ - u32 slope = 8440; - s32 samll_b = 64, db_temp; - /*u32 big_a_reg[2] = {0x18a8, 0x1eec};*/ - /*u32 big_a_bit_mask[2] = {0x7ffc, 0x1fff};*/ - -#if 0 - big_a = odm_get_bb_reg(dm, 0x18a8, 0x7ffc); - - if (big_a == 0) { - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, - "======>%s big_a = %d rf_path=%d return !!!\n", - __func__, big_a, RF_PATH_A); - return; - } - - big_a = (big_a * 100) / 128; /* 100 * big_a */ - small_a = 434295 / big_a; /* 1000 * small_a */ - slope = 1000000 / small_a; /* 1000 * slope */ - - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, - "======>%s 0x18a8[14:2] = 0x%x(%d) 100*big_a(%d) = 0x18a8[14:2] / 128 path=%d\n", - __func__, odm_get_bb_reg(dm, 0x18a8, 0x7ffc), - odm_get_bb_reg(dm, 0x18a8, 0x7ffc), big_a, RF_PATH_A); - - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, - "1000 * small_a(%d) = 434295 / big_a(%d) 1000*slope(%d) = 1000000/small_a path=%d\n", - small_a, big_a, slope, RF_PATH_A); -#endif - for (i = 0; i < TSSI_CODE_NUM; i++) { - rate = _halrf_tssi_rate_to_driver_rate_8822c(dm, i); - db_temp = (s32)phydm_get_tx_power_dbm(dm, RF_PATH_A, rate, bandwidth, channel); - - if (dm->rfe_type == 21 || dm->rfe_type == 22) { - if (channel >= 1 && channel <= 14) { - slope = 8440; - samll_b = 64; - } else { - if (db_temp <= 10) { - slope = 8000; - samll_b = 35; - } else if (db_temp > 10 && db_temp <= 18) { - slope = 8000; - samll_b = 35; - } else if (db_temp > 18) { - slope = 8000; - samll_b = 35; - } - } - } else { - if (channel >= 1 && channel <= 14) { - slope = 8440; - samll_b = 64; - } else { - if (db_temp <= 10) { - slope = 8440; - samll_b = 64; - } else if (db_temp > 10 && db_temp <= 18) { - slope = 7600; - samll_b = 78; - } else if (db_temp > 18) { - slope = 5400; - samll_b = 117; - } - } - } - - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, - "channel(%d), %ddBm, 1000 * slope(%d), samll_b(%d), path=%d\n", - channel, db_temp, slope, samll_b, RF_PATH_A); - - db_temp = db_temp * slope; - db_temp = db_temp / 1000 + samll_b; - - if (db_temp < 0) - tssi->tssi_codeword[i] = 0; - else if (db_temp > 0xff) - tssi->tssi_codeword[i] = 0xff; - else - tssi->tssi_codeword[i] = (u16)(db_temp); - - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "phydm_get_tx_power_dbm = %d, rate=0x%x(%d) bandwidth=%d channel=%d rf_path=%d\n", - phydm_get_tx_power_dbm(dm, RF_PATH_A, rate, bandwidth, channel), - rate, rate, bandwidth, channel, RF_PATH_A); - - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "tssi_codeword[%d] = 0x%x(%d)\n", - i, tssi->tssi_codeword[i], tssi->tssi_codeword[i]); - } - -} - void _halrf_calculate_set_thermal_codeword_8822c( void *dm_void) { @@ -613,27 +512,6 @@ void _halrf_set_txagc_codeword_8822c( #endif } -void halrf_set_tssi_codeword_8822c( - void *dm_void, u16 *tssi_value) -{ - struct dm_struct *dm = (struct dm_struct *)dm_void; - u32 i, j, k = 0, tssi_value_tmp; - - /*power by rate table (tssi codeword)*/ - for (i = 0x3a54; i <= 0x3aa4; i = i + 4) { - tssi_value_tmp = 0; - - for (j = 0; j < 31; j = j + 8) - tssi_value_tmp = tssi_value_tmp | ((tssi_value[k++] & 0xff) << j); - - odm_set_bb_reg(dm, i, MASKDWORD, tssi_value_tmp); - - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, - "===>%s write addr:0x%x value=0x%08x\n", - __func__, i, tssi_value_tmp); - } -} - void _halrf_set_efuse_kfree_offset_8822c( void *dm_void) { @@ -737,7 +615,7 @@ void _halrf_tssi_8822c( odm_set_bb_reg(dm, R_0x1834, 0x80000000, 0x0); odm_set_bb_reg(dm, R_0x18a4, 0x10000000, 0x0); odm_set_bb_reg(dm, R_0x18e8, 0x00000001, 0x0); - odm_set_bb_reg(dm, R_0x18a4, 0xe0000000, tssi->connect_ch_num); + odm_set_bb_reg(dm, R_0x18a4, 0xe0000000, 0x0); odm_set_bb_reg(dm, R_0x18a8, 0x00000003, 0x2); odm_set_bb_reg(dm, R_0x18ec, 0x80000000, 0x1); odm_set_bb_reg(dm, R_0x1880, 0x80000000, 0x1); @@ -761,10 +639,9 @@ void _halrf_tssi_8822c( odm_set_bb_reg(dm, R_0x1804, 0x40000000, 0x0); odm_set_bb_reg(dm, R_0x18ec, 0x20000000, 0x0); odm_set_bb_reg(dm, R_0x18ec, 0x40000000, 0x0); - odm_set_bb_reg(dm, R_0x18a4, 0xe0000000, tssi->connect_ch_num); + odm_set_bb_reg(dm, R_0x18a4, 0xe0000000, 0x0); odm_set_bb_reg(dm, R_0x1e7c, 0x80000000, 0x1); odm_set_bb_reg(dm, R_0x18a0, 0x0000007f, 0x00); - odm_set_bb_reg(dm, R_0x1ea4, 0x04000000, 0x1); } else { odm_set_bb_reg(dm, R_0x1c38, MASKDWORD, 0xf7d5005e); /*odm_set_bb_reg(dm, R_0x1860, 0x00007000, 0x2);*/ @@ -790,44 +667,19 @@ void _halrf_tssi_8822c( odm_set_bb_reg(dm, R_0x18ec, 0x00c00000, 0x2); odm_set_bb_reg(dm, R_0x1834, 0x80000000, 0x0); odm_set_bb_reg(dm, R_0x18a4, 0x10000000, 0x0); - odm_set_bb_reg(dm, R_0x18e0, 0x00000001, 0x0); - odm_set_bb_reg(dm, R_0x18e8, 0x00000001, 0x0); //?????????? - odm_set_bb_reg(dm, R_0x18a4, 0xe0000000, tssi->connect_ch_num); + odm_set_bb_reg(dm, R_0x18e8, 0x00000001, 0x0); + odm_set_bb_reg(dm, R_0x18a4, 0xe0000000, 0x0); odm_set_bb_reg(dm, R_0x18a8, 0x00000003, 0x2); odm_set_bb_reg(dm, R_0x1880, 0x80000000, 0x1); - - if (dm->rfe_type == 21 || dm->rfe_type == 22) { - if (channel >= 36 && channel <= 64) - odm_set_bb_reg(dm, R_0x18a8, 0x00007ffc, 0x1ab0); - else if (channel >= 100 && channel <= 144) - odm_set_bb_reg(dm, R_0x18a8, 0x00007ffc, 0x1b50); - else if (channel >= 149 && channel <= 177) - odm_set_bb_reg(dm, R_0x18a8, 0x00007ffc, 0x1ce0); - } else - odm_set_bb_reg(dm, R_0x18a8, 0x00007ffc, 0x1266); - + odm_set_bb_reg(dm, R_0x18a8, 0x00007ffc, 0x1266); odm_set_bb_reg(dm, R_0x18a8, 0x00ff8000, 0x000); /*odm_set_bb_reg(dm, R_0x18a8, 0xff000000, 0x00);*/ - - if (dm->rfe_type == 21 || dm->rfe_type == 22) - odm_set_bb_reg(dm, R_0x18e8, 0x000003fe, 0x100); - else - odm_set_bb_reg(dm, R_0x18e8, 0x000003fe, 0x110); - + odm_set_bb_reg(dm, R_0x18e8, 0x000003fe, 0x110); odm_set_rf_reg(dm, RF_PATH_A, RF_0x7f, 0x00100, 0x1); odm_set_rf_reg(dm, RF_PATH_A, RF_0x65, 0x03000, 0x3); odm_set_rf_reg(dm, RF_PATH_A, RF_0x67, 0x00003, 0x3); - - if (dm->rfe_type == 21 || dm->rfe_type == 22) - odm_set_rf_reg(dm, RF_PATH_A, RF_0x67, 0x00030, 0x3); - else - odm_set_rf_reg(dm, RF_PATH_A, RF_0x67, 0x00030, 0x2); - + odm_set_rf_reg(dm, RF_PATH_A, RF_0x67, 0x00030, 0x2); odm_set_rf_reg(dm, RF_PATH_A, RF_0x6f, 0x001e0, 0x0); - - if (dm->rfe_type == 21 || dm->rfe_type == 22) - odm_set_rf_reg(dm, RF_PATH_A, RF_0x6f, 0x00004, 0x1); - odm_set_bb_reg(dm, R_0x180c, 0x08000000, 0x1); odm_set_bb_reg(dm, R_0x180c, 0x40000000, 0x1); odm_set_bb_reg(dm, R_0x1800, 0x80000000, 0x1); @@ -837,10 +689,9 @@ void _halrf_tssi_8822c( odm_set_bb_reg(dm, R_0x1804, 0x40000000, 0x0); odm_set_bb_reg(dm, R_0x18ec, 0x20000000, 0x0); odm_set_bb_reg(dm, R_0x18ec, 0x40000000, 0x0); - odm_set_bb_reg(dm, R_0x18a4, 0xe0000000, tssi->connect_ch_num); + odm_set_bb_reg(dm, R_0x18a4, 0xe0000000, 0x0); odm_set_bb_reg(dm, R_0x1e7c, 0x80000000, 0x1); odm_set_bb_reg(dm, R_0x18a0, 0x0000007f, 0x00); - odm_set_bb_reg(dm, R_0x1ea4, 0x04000000, 0x1); } /*path s1*/ @@ -870,7 +721,7 @@ void _halrf_tssi_8822c( odm_set_bb_reg(dm, R_0x4134, 0x80000000, 0x0); odm_set_bb_reg(dm, R_0x41a4, 0x10000000, 0x0); odm_set_bb_reg(dm, R_0x41e8, 0x00000001, 0x0); - odm_set_bb_reg(dm, R_0x41a4, 0xe0000000, tssi->connect_ch_num); + odm_set_bb_reg(dm, R_0x41a4, 0xe0000000, 0x0); odm_set_bb_reg(dm, R_0x41a8, 0x00000003, 0x2); odm_set_bb_reg(dm, R_0x41ec, 0x80000000, 0x1); odm_set_bb_reg(dm, R_0x4180, 0x80000000, 0x1); @@ -894,8 +745,7 @@ void _halrf_tssi_8822c( odm_set_bb_reg(dm, R_0x41ec, 0x20000000, 0x0); odm_set_bb_reg(dm, R_0x41ec, 0x40000000, 0x0); odm_set_bb_reg(dm, R_0x1e7c, 0x00800000, 0x0); - odm_set_bb_reg(dm, R_0x41a4, 0xe0000000, tssi->connect_ch_num); - odm_set_bb_reg(dm, R_0x1ea4, 0x04000000, 0x1); + odm_set_bb_reg(dm, R_0x41a4, 0xe0000000, 0x1); /*odm_set_bb_reg(dm, R_0x1c20, 0x03f00000, 0x26);*/ } else { odm_set_bb_reg(dm, R_0x1c38, MASKDWORD, 0xf7d5005e); @@ -922,44 +772,19 @@ void _halrf_tssi_8822c( odm_set_bb_reg(dm, R_0x41ec, 0x00c00000, 0x2); odm_set_bb_reg(dm, R_0x4134, 0x80000000, 0x0); odm_set_bb_reg(dm, R_0x41a4, 0x10000000, 0x0); - odm_set_bb_reg(dm, R_0x41e0, 0x00000001, 0x0); - odm_set_bb_reg(dm, R_0x41e8, 0x00000001, 0x0); //?????????? - odm_set_bb_reg(dm, R_0x41a4, 0xe0000000, tssi->connect_ch_num); + odm_set_bb_reg(dm, R_0x41e8, 0x00000001, 0x0); + odm_set_bb_reg(dm, R_0x41a4, 0xe0000000, 0x0); odm_set_bb_reg(dm, R_0x41a8, 0x00000003, 0x2); odm_set_bb_reg(dm, R_0x4180, 0x80000000, 0x1); - - if (dm->rfe_type == 21 || dm->rfe_type == 22) { - if (channel >= 36 && channel <= 64) - odm_set_bb_reg(dm, R_0x1eec, 0x00001fff, 0x1bb0); - else if (channel >= 100 && channel <= 144) - odm_set_bb_reg(dm, R_0x1eec, 0x00001fff, 0x1cf0); - else if (channel >= 149 && channel <= 177) - odm_set_bb_reg(dm, R_0x1eec, 0x00001fff, 0x1fe0); - } else - odm_set_bb_reg(dm, R_0x1eec, 0x00001fff, 0x1266); - + odm_set_bb_reg(dm, R_0x1eec, 0x00001fff, 0x1266); odm_set_bb_reg(dm, R_0x1eec, 0x003fe000, 0x000); /*odm_set_bb_reg(dm, R_0x1eec, 0x3fc00000, 0x00);*/ - - if (dm->rfe_type == 21 || dm->rfe_type == 22) - odm_set_bb_reg(dm, R_0x1ef0, 0x000001ff, 0x100); - else - odm_set_bb_reg(dm, R_0x1ef0, 0x000001ff, 0x110); - + odm_set_bb_reg(dm, R_0x1ef0, 0x000001ff, 0x110); odm_set_rf_reg(dm, RF_PATH_B, RF_0x7f, 0x00100, 0x1); odm_set_rf_reg(dm, RF_PATH_B, RF_0x65, 0x03000, 0x3); odm_set_rf_reg(dm, RF_PATH_B, RF_0x67, 0x00003, 0x3); - - if (dm->rfe_type == 21 || dm->rfe_type == 22) - odm_set_rf_reg(dm, RF_PATH_B, RF_0x67, 0x00030, 0x3); - else - odm_set_rf_reg(dm, RF_PATH_B, RF_0x67, 0x00030, 0x2); - + odm_set_rf_reg(dm, RF_PATH_B, RF_0x67, 0x00030, 0x2); odm_set_rf_reg(dm, RF_PATH_B, RF_0x6f, 0x001e0, 0x0); - - if (dm->rfe_type == 21 || dm->rfe_type == 22) - odm_set_rf_reg(dm, RF_PATH_B, RF_0x6f, 0x00004, 0x1); - odm_set_bb_reg(dm, R_0x410c, 0x08000000, 0x1); odm_set_bb_reg(dm, R_0x410c, 0x40000000, 0x1); odm_set_bb_reg(dm, R_0x4100, 0x80000000, 0x1); @@ -969,194 +794,11 @@ void _halrf_tssi_8822c( odm_set_bb_reg(dm, R_0x41ec, 0x20000000, 0x0); odm_set_bb_reg(dm, R_0x41ec, 0x40000000, 0x0); odm_set_bb_reg(dm, R_0x1e7c, 0x00800000, 0x0); - odm_set_bb_reg(dm, R_0x41a4, 0xe0000000, tssi->connect_ch_num); - odm_set_bb_reg(dm, R_0x1ea4, 0x04000000, 0x1); + odm_set_bb_reg(dm, R_0x41a4, 0xe0000000, 0x1); /*odm_set_bb_reg(dm, R_0x1c20, 0x03f00000, 0x26);*/ } } -u32 _halrf_tssi_channel_to_index( - void *dm_void) -{ - struct dm_struct *dm = (struct dm_struct *)dm_void; - u8 channel = *dm->channel; - u32 idx; - - if (channel >= 1 && channel <= 14) - idx = channel - 1; - else if (channel >= 36 && channel <= 64) - idx = ((channel - 36) / 2) + 14; - else if (channel >= 100 && channel <= 144) - idx = ((channel - 100) / 2) + 29; - else if (channel >= 149 && channel <= 177) - idx = ((channel - 149) / 2) + 52; - else - idx = 0; - - return idx; -} - -void _halrf_tssi_scan_8822c( - void *dm_void) -{ - struct dm_struct *dm = (struct dm_struct *)dm_void; - struct _hal_rf_ *rf = &dm->rf_table; - struct _halrf_tssi_data *tssi = &rf->halrf_tssi_data; - u8 channel = *dm->channel; - - /*path s0*/ - if (channel >= 1 && channel <= 14) { - odm_set_bb_reg(dm, R_0x1c38, MASKDWORD, 0xf7d5005e); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x700b8041); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x701f0044); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x702f0044); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x703f0044); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x704f0044); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x705b8041); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x706f0044); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x707b8041); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x708b8041); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x709b8041); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x70ab8041); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x70bb8041); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x70cb8041); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x70db8041); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x70eb8041); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x70fb8041); - odm_set_bb_reg(dm, R_0x18ec, 0x80000000, 0x1); - odm_set_bb_reg(dm, R_0x1880, 0x7fc00000, 0x000); - odm_set_rf_reg(dm, RF_PATH_A, RF_0x7f, 0x00002, 0x1); - odm_set_rf_reg(dm, RF_PATH_A, RF_0x65, 0x03000, 0x3); - odm_set_rf_reg(dm, RF_PATH_A, RF_0x67, 0x0000c, 0x3); - odm_set_rf_reg(dm, RF_PATH_A, RF_0x67, 0x000c0, 0x0); - odm_set_rf_reg(dm, RF_PATH_A, RF_0x6e, 0x001e0, 0x0); - } else { - odm_set_bb_reg(dm, R_0x1c38, MASKDWORD, 0xf7d5005e); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x700b8041); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x701f0042); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x702f0042); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x703f0042); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x704f0042); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x705b8041); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x706f0042); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x707b8041); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x708b8041); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x709b8041); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x70ab8041); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x70bb8041); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x70cb8041); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x70db8041); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x70eb8041); - odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x70fb8041); - - if (dm->rfe_type == 21 || dm->rfe_type == 22) { - if (channel >= 36 && channel <= 64) - odm_set_bb_reg(dm, R_0x18a8, 0x00007ffc, 0x1ab0); - else if (channel >= 100 && channel <= 144) - odm_set_bb_reg(dm, R_0x18a8, 0x00007ffc, 0x1b50); - else if (channel >= 149 && channel <= 177) - odm_set_bb_reg(dm, R_0x18a8, 0x00007ffc, 0x1ce0); - } else - odm_set_bb_reg(dm, R_0x18a8, 0x00007ffc, 0x1266); - - if (dm->rfe_type == 21 || dm->rfe_type == 22) - odm_set_bb_reg(dm, R_0x18e8, 0x000003fe, 0x100); - else - odm_set_bb_reg(dm, R_0x18e8, 0x000003fe, 0x110); - - odm_set_rf_reg(dm, RF_PATH_A, RF_0x7f, 0x00100, 0x1); - odm_set_rf_reg(dm, RF_PATH_A, RF_0x65, 0x03000, 0x3); - odm_set_rf_reg(dm, RF_PATH_A, RF_0x67, 0x00003, 0x3); - - if (dm->rfe_type == 21 || dm->rfe_type == 22) - odm_set_rf_reg(dm, RF_PATH_A, RF_0x67, 0x00030, 0x3); - else - odm_set_rf_reg(dm, RF_PATH_A, RF_0x67, 0x00030, 0x2); - - odm_set_rf_reg(dm, RF_PATH_A, RF_0x6f, 0x001e0, 0x0); - - if (dm->rfe_type == 21 || dm->rfe_type == 22) - odm_set_rf_reg(dm, RF_PATH_A, RF_0x6f, 0x00004, 0x1); - } - - /*path s1*/ - if (channel >= 1 && channel <= 14) { - odm_set_bb_reg(dm, R_0x1c38, MASKDWORD, 0xf7d5005e); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x700b8041); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x701f0044); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x702f0044); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x703f0044); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x704f0044); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x705b8041); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x706f0044); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x707b8041); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x708b8041); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x709b8041); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x70ab8041); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x70bb8041); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x70cb8041); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x70db8041); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x70eb8041); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x70fb8041); - odm_set_bb_reg(dm, R_0x41ec, 0x80000000, 0x1); - odm_set_bb_reg(dm, R_0x4180, 0x7fc00000, 0x000); - odm_set_rf_reg(dm, RF_PATH_B, RF_0x7f, 0x00002, 0x1); - odm_set_rf_reg(dm, RF_PATH_B, RF_0x65, 0x03000, 0x3); - odm_set_rf_reg(dm, RF_PATH_B, RF_0x67, 0x0000c, 0x3); - odm_set_rf_reg(dm, RF_PATH_B, RF_0x67, 0x000c0, 0x0); - odm_set_rf_reg(dm, RF_PATH_B, RF_0x6e, 0x001e0, 0x0); - } else { - odm_set_bb_reg(dm, R_0x1c38, MASKDWORD, 0xf7d5005e); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x700b8041); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x701f0042); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x702f0042); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x703f0042); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x704f0042); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x705b8041); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x706f0042); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x707b8041); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x708b8041); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x709b8041); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x70ab8041); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x70bb8041); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x70cb8041); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x70db8041); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x70eb8041); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x70fb8041); - - if (dm->rfe_type == 21 || dm->rfe_type == 22) { - if (channel >= 36 && channel <= 64) - odm_set_bb_reg(dm, R_0x1eec, 0x00001fff, 0x1bb0); - else if (channel >= 100 && channel <= 144) - odm_set_bb_reg(dm, R_0x1eec, 0x00001fff, 0x1cf0); - else if (channel >= 149 && channel <= 177) - odm_set_bb_reg(dm, R_0x1eec, 0x00001fff, 0x1fe0); - } else - odm_set_bb_reg(dm, R_0x1eec, 0x00001fff, 0x1266); - - odm_set_bb_reg(dm, R_0x1eec, 0x003fe000, 0x000); - - if (dm->rfe_type == 21 || dm->rfe_type == 22) - odm_set_bb_reg(dm, R_0x1ef0, 0x000001ff, 0x100); - else - odm_set_bb_reg(dm, R_0x1ef0, 0x000001ff, 0x110); - - odm_set_rf_reg(dm, RF_PATH_B, RF_0x7f, 0x00100, 0x1); - odm_set_rf_reg(dm, RF_PATH_B, RF_0x65, 0x03000, 0x3); - odm_set_rf_reg(dm, RF_PATH_B, RF_0x67, 0x00003, 0x3); - - if (dm->rfe_type == 21 || dm->rfe_type == 22) - odm_set_rf_reg(dm, RF_PATH_B, RF_0x67, 0x00030, 0x3); - else - odm_set_rf_reg(dm, RF_PATH_B, RF_0x67, 0x00030, 0x2); - - odm_set_rf_reg(dm, RF_PATH_B, RF_0x6f, 0x001e0, 0x0); - - if (dm->rfe_type == 21 || dm->rfe_type == 22) - odm_set_rf_reg(dm, RF_PATH_B, RF_0x6f, 0x00004, 0x1); - } -} - void _halrf_thermal_init_8822c( void *dm_void) { @@ -1166,77 +808,93 @@ void _halrf_thermal_init_8822c( struct _halrf_tssi_data *tssi = &rf->halrf_tssi_data; _halrf_calculate_set_thermal_codeword_8822c(dm); - /*_halrf_calculate_tssi_codeword_8822c(dm);*/ + /*halrf_calculate_tssi_codeword_8822c(dm);*/ /*_halrf_calculate_txagc_codeword_8822c(dm, tssi->tssi_codeword, tssi->txagc_codeword);*/ /*_halrf_set_txagc_codeword_8822c(dm, tssi->txagc_codeword);*/ - /*_halrf_set_tssi_codeword_8822c(dm, tssi->tssi_codeword);*/ + /*halrf_set_tssi_codeword_8822c(dm, tssi->tssi_codeword);*/ /*_halrf_set_efuse_kfree_offset_8822c(dm);*/ #endif } -void _halrf_tssi_reload_dck_8822c( +void halrf_calculate_tssi_codeword_8822c( void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; struct _hal_rf_ *rf = &dm->rf_table; struct _halrf_tssi_data *tssi = &rf->halrf_tssi_data; - u8 channel = *dm->channel, i; - - u32 dc_offset[2] = {R_0x189c, R_0x419c}; - - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] ======>%s\n", __func__); - - for (i = 0; i < MAX_PATH_NUM_8822C; i++){ - if (channel >= 1 && channel <= 14) { - odm_set_bb_reg(dm, dc_offset[i], 0x0003ff00, tssi->tssi_dck[0][i]); - - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] Set TSSI DCK Offset 0x%x[17:8]=0x%x channel=%d\n", - dc_offset[i], tssi->tssi_dck[0][i], channel); - } else { - odm_set_bb_reg(dm, dc_offset[i], 0x0003ff00, tssi->tssi_dck[1][i]); - - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] Set TSSI DCK Offset 0x%x[17:8]=0x%x channel=%d\n", - dc_offset[i], tssi->tssi_dck[1][i], channel); - } + + u8 i, rate; + u8 channel = *dm->channel, bandwidth = *dm->band_width; + u32 big_a, small_a, slope, db_temp; + s32 samll_b = 64; + /*u32 big_a_reg[2] = {0x18a8, 0x1eec};*/ + /*u32 big_a_bit_mask[2] = {0x7ffc, 0x1fff};*/ + + big_a = odm_get_bb_reg(dm, 0x18a8, 0x7ffc); + + if (big_a == 0) { + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, + "======>%s big_a = %d rf_path=%d return !!!\n", + __func__, big_a, RF_PATH_A); + return; } + big_a = (big_a * 100) / 128; /* 100 * big_a */ + small_a = 434295 / big_a; /* 1000 * small_a */ + slope = 1000000 / small_a; /* 1000 * slope */ + + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, + "======>%s 0x18a8[14:2] = 0x%x(%d) 100*big_a(%d) = 0x18a8[14:2] / 128 path=%d\n", + __func__, odm_get_bb_reg(dm, 0x18a8, 0x7ffc), + odm_get_bb_reg(dm, 0x18a8, 0x7ffc), big_a, RF_PATH_A); + + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, + "1000 * small_a(%d) = 434295 / big_a(%d) 1000*slope(%d) = 1000000/small_a path=%d\n", + small_a, big_a, slope, RF_PATH_A); + + for (i = 0; i < TSSI_CODE_NUM; i++) { + rate = _halrf_tssi_rate_to_driver_rate_8822c(dm, i); + db_temp = (u32)phydm_get_tx_power_dbm(dm, RF_PATH_A, rate, bandwidth, channel); + + db_temp = db_temp * slope; + db_temp = db_temp / 1000 + samll_b; + + if (db_temp > 0xff) + db_temp = 0xff; + else if ((s32)db_temp < 0) + db_temp = 0x0; + + tssi->tssi_codeword[i] = (u16)(db_temp); + + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "phydm_get_tx_power_dbm = %d, rate=0x%x(%d) bandwidth=%d channel=%d rf_path=%d\n", + phydm_get_tx_power_dbm(dm, RF_PATH_A, rate, bandwidth, channel), + rate, rate, bandwidth, channel, RF_PATH_A); + + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "tssi_codeword[%d] = 0x%x(%d)\n", + i, tssi->tssi_codeword[i], tssi->tssi_codeword[i]); + } + } -void halrf_tssi_set_tssi_tx_counter_8822c( - void *dm_void, u8 special_scan_num, u8 connect_ch_num) +void halrf_set_tssi_codeword_8822c( + void *dm_void, u16 *tssi_value) { struct dm_struct *dm = (struct dm_struct *)dm_void; - struct _hal_rf_ *rf = &dm->rf_table; - struct _halrf_tssi_data *tssi = &rf->halrf_tssi_data; + u32 i, j, k = 0, tssi_value_tmp; - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] ======>%s\n", __func__); + /*power by rate table (tssi codeword)*/ + for (i = 0x3a54; i <= 0x3aa4; i = i + 4) { + tssi_value_tmp = 0; - tssi->special_scan_num = special_scan_num; - tssi->connect_ch_num = connect_ch_num; -} + for (j = 0; j < 31; j = j + 8) + tssi_value_tmp = tssi_value_tmp | ((tssi_value[k++] & 0xff) << j); -void halrf_tssi_lps_get_txagc_offset_8822c( - void *dm_void, u8 *txagc_offset) -{ - struct dm_struct *dm = (struct dm_struct *)dm_void; - u8 channel = *dm->channel; + odm_set_bb_reg(dm, i, MASKDWORD, tssi_value_tmp); - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] ======>%s channel=%d\n", - __func__, channel); - - /*s0*/ - phydm_set_bb_dbg_port(dm, DBGPORT_PRI_2, 0x944); - txagc_offset[RF_PATH_A] = (u8)((phydm_get_bb_dbg_port_val(dm) & 0xff00) >> 8); - phydm_release_bb_dbg_port(dm); - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] S0 channel=%d txagc_offset=0x%x\n", - channel, txagc_offset[RF_PATH_A]); - - /*s1*/ - phydm_set_bb_dbg_port(dm, DBGPORT_PRI_2, 0xb44); - txagc_offset[RF_PATH_B] = (u8)((phydm_get_bb_dbg_port_val(dm) & 0xff00) >> 8); - phydm_release_bb_dbg_port(dm); - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] S1 channel=%d txagc_offset=0x%x\n", - channel, txagc_offset[RF_PATH_B]); + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, + "===>%s write addr:0x%x value=0x%08x\n", + __func__, i, tssi_value_tmp); + } } void halrf_tssi_dck_8822c( @@ -1248,11 +906,10 @@ void halrf_tssi_dck_8822c( u32 reg = 0, dck_check; s32 reg_tmp = 0; - u32 bb_reg[14] = {R_0x1800, R_0x4100, R_0x820, R_0x1e2c, R_0x1d08, - R_0x1c3c, R_0x2dbc, R_0x1e70, R_0x18a4, R_0x41a4, - 0x18a8, 0x1eec, R_0x18e8, R_0x1ef0}; - u32 bb_reg_backup[14] = {0}; - u32 backup_num = 14; + u32 bb_reg[8] = {R_0x1800, R_0x4100, R_0x820, R_0x1e2c, R_0x1d08, + R_0x1c3c, R_0x2dbc, R_0x1e70}; + u32 bb_reg_backup[8] = {0}; + u32 backup_num = 8; u32 tssi_setting[2] = {R_0x1830, R_0x4130}; u32 dc_offset[2] = {R_0x189c, R_0x419c}; @@ -1265,7 +922,6 @@ void halrf_tssi_dck_8822c( u32 addr_d_bitmask[2] = {0xff000000, 0x3fc00000}; u32 addr_cck_d[2] = {R_0x18e8, R_0x1ef0}; u32 addr_cck_d_bitmask[2] = {0x01fe0000, 0x0001fe00}; - u32 dck_check_min, dck_check_max; RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] ======>%s channel=%d\n", __func__, channel); @@ -1280,8 +936,6 @@ void halrf_tssi_dck_8822c( odm_set_bb_reg(dm, addr_d[i], addr_d_bitmask[i], 0x0); } - _halrf_tssi_8822c(dm); - halrf_disable_tssi_8822c(dm); for (i = 0; i < 2 ; i++){ @@ -1458,10 +1112,6 @@ void halrf_tssi_dck_8822c( odm_set_bb_reg(dm, dc_offset[i], 0x0003ff00, 0x0); - - if (dm->rfe_type == 21 || dm->rfe_type == 22) - odm_set_bb_reg(dm, R_0x1c38, 0x00000018, 0x0); - odm_set_bb_reg(dm, R_0x820, 0x00000003, i + 1); odm_set_bb_reg(dm, R_0x1e2c, MASKDWORD, 0xe4e40000); odm_set_bb_reg(dm, R_0x1e28, 0x0000000f, 0x3); @@ -1472,16 +1122,8 @@ void halrf_tssi_dck_8822c( odm_set_rf_reg(dm, i, RF_0x7f, 0x100, 0x1); odm_set_rf_reg(dm, i, RF_0x65, 0x03000, 0x3); odm_set_rf_reg(dm, i, RF_0x67, 0x00003, 0x3); - - if (dm->rfe_type == 21 || dm->rfe_type == 22) - odm_set_rf_reg(dm, i, RF_0x67, 0x00030, 0x3); - else - odm_set_rf_reg(dm, i, RF_0x67, 0x00030, 0x2); - + odm_set_rf_reg(dm, i, RF_0x67, 0x00030, 0x2); odm_set_rf_reg(dm, i, RF_0x6f, 0x001e0, 0x0); - - if (dm->rfe_type == 21 || dm->rfe_type == 22) - odm_set_rf_reg(dm, i, RF_0x6f, 0x00004, 0x0); odm_set_bb_reg(dm, tssi_enalbe[i], 0x08000000, 0x1); odm_set_bb_reg(dm, tssi_enalbe[i], 0x40000000, 0x1); @@ -1518,26 +1160,12 @@ void halrf_tssi_dck_8822c( phydm_release_bb_dbg_port(dm); reg_tmp = reg; - - if (dm->rfe_type == 21 || dm->rfe_type == 22) { - reg = 1024 - (((reg_tmp - 512) * 4) & 0x000003ff) + 0x50; - odm_set_bb_reg(dm, dc_offset[i], 0x0003ff00, (reg & 0x03ff)); - } else { - reg = 1024 - (((reg_tmp - 512) * 4) & 0x000003ff) + 5; - odm_set_bb_reg(dm, dc_offset[i], 0x0003ff00, (reg & 0x03ff)); - } + reg = 1024 - (((reg_tmp - 512) * 4) & 0x000003ff) + 5; + odm_set_bb_reg(dm, dc_offset[i], 0x0003ff00, (reg & 0x03ff)); RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] 0x%x[17:8]=0x%x reg=0x%x\n", dc_offset[i], odm_get_bb_reg(dm, dc_offset[i], 0x0003ff00), reg); - if (dm->rfe_type == 21 || dm->rfe_type == 22){ - dck_check_min = 0x214; - dck_check_max = 0x219; - } else { - dck_check_min = 0x1ff; - dck_check_max = 0x202; - } - for (j = 0; j < 3; j++) { /*odm_set_bb_reg(dm, R_0x1c3c, 0x000fff00, 0x930);*/ phydm_set_bb_dbg_port(dm, DBGPORT_PRI_2, debug_port[i]); @@ -1547,22 +1175,22 @@ void halrf_tssi_dck_8822c( dck_check = phydm_get_bb_dbg_port_val(dm) & 0x000003ff; phydm_release_bb_dbg_port(dm); - if (dck_check < dck_check_min) { + if (dck_check < 0x1ff) { if (reg >= 0x3fb) reg = 0x3ff; else reg = reg + 4; odm_set_bb_reg(dm, dc_offset[i], 0x0003ff00, reg); - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] 0x2dbc[23:12]=0x%x < 0x%x Set 0x%x retry=%d\n", - dck_check, reg, dck_check_min, j); - } else if (dck_check > dck_check_max) { + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] 0x2dbc[23:12]=0x%x < 0x1ff Set 0x%x retry=%d\n", + dck_check, reg, j); + } else if (dck_check > 0x202) { if (reg <= 4) reg = 0; else reg = reg - 4; odm_set_bb_reg(dm, dc_offset[i], 0x0003ff00, reg); - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] 0x2dbc[23:12]=0x%x > 0x%x Set 0x%x retry=%d\n", - dck_check, reg, dck_check_max, j); + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] 0x2dbc[23:12]=0x%x > 0x202 Set 0x%x retry=%d\n", + dck_check, reg, j); } else { RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] 0x2dbc[23:12]=0x%x OK!!! retry=%d\n", dck_check, j); @@ -1599,10 +1227,6 @@ void halrf_tssi_dck_8822c( odm_set_bb_reg(dm, tssi_counter[i], 0x10000000, 0x0); odm_set_bb_reg(dm, R_0x1d08, 0x00000001, 0x0); #endif - - if (dm->rfe_type == 21 || dm->rfe_type == 22) - odm_set_bb_reg(dm, R_0x1c38, 0x00000018, 0x3); - odm_set_bb_reg(dm, R_0x1d58, 0x00000008, 0x0); odm_set_bb_reg(dm, R_0x1d58, 0x00000ff0, 0x0); odm_set_bb_reg(dm, R_0x1a00, 0x00000003, 0x0); @@ -1617,516 +1241,6 @@ void halrf_tssi_dck_8822c( } -void halrf_tssi_dck_scan_8822c( - void *dm_void) -{ - struct dm_struct *dm = (struct dm_struct *)dm_void; - struct _hal_rf_ *rf = &dm->rf_table; - struct _halrf_tssi_data *tssi = &rf->halrf_tssi_data; - u8 channel = *dm->channel, i, j, k; - - u32 reg = 0, dck_check; - s32 reg_tmp = 0; - u32 bb_reg[14] = {R_0x1800, R_0x4100, R_0x820, R_0x1e2c, R_0x1d08, - R_0x1c3c, R_0x2dbc, R_0x1e70, R_0x18a4, R_0x41a4, - 0x18a8, 0x1eec, R_0x18e8, R_0x1ef0}; - u32 bb_reg_backup[14] = {0}; - u32 backup_num = 14; - - u32 tssi_setting[2] = {R_0x1830, R_0x4130}; - u32 dc_offset[2] = {R_0x189c, R_0x419c}; - u32 path_setting[2] = {R_0x1800, R_0x4100}; - u32 tssi_counter[2] = {R_0x18a4, R_0x41a4}; - u32 tssi_enalbe[2] = {R_0x180c, R_0x410c}; - u32 debug_port[2] = {0x930, 0xb30}; - - u32 addr_d[2] = {0x18a8, 0x1eec}; - u32 addr_d_bitmask[2] = {0xff000000, 0x3fc00000}; - u32 addr_cck_d[2] = {R_0x18e8, R_0x1ef0}; - u32 addr_cck_d_bitmask[2] = {0x01fe0000, 0x0001fe00}; - u32 dck_check_min, dck_check_max; - - u32 rf_reg_18[MAX_PATH_NUM_8822C] = {0}; - - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] ======>%s\n", __func__); - - rf->is_tssi_in_progress = 1; - - _backup_bb_registers_8822c(dm, bb_reg, bb_reg_backup, backup_num); - - for (i = 0; i < MAX_PATH_NUM_8822C; i++) { - odm_set_bb_reg(dm, addr_cck_d[i], addr_cck_d_bitmask[i], 0x0); - odm_set_bb_reg(dm, addr_d[i], addr_d_bitmask[i], 0x0); - } - - _halrf_tssi_8822c(dm); - - halrf_disable_tssi_8822c(dm); - - for (i = 0; i < MAX_PATH_NUM_8822C; i++){ - rf_reg_18[i] = odm_get_rf_reg(dm, i, RF_0x18, RFREGOFFSETMASK); - - /*CH 7*/ - odm_set_rf_reg(dm, i, RF_0x18, RFREGOFFSETMASK, 0x03007); - - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, - "[TSSI] ============== Path - %d ch 7==============\n", - i); - - for (k = 0; k < 3; k++) { - odm_set_bb_reg(dm, R_0x1c38, MASKDWORD, 0xf7d5005e); - - odm_set_bb_reg(dm, R_0x1d58, 0x00000008, 0x1); - odm_set_bb_reg(dm, R_0x1d58, 0x00000ff0, 0xff); - odm_set_bb_reg(dm, R_0x1a00, 0x00000003, 0x2); - - /*odm_set_bb_reg(dm, R_0x1860, 0x00007000, 0x4);*/ - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x700b8041); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x701f0044); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x702f0044); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x703f0044); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x704f0044); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x705b8041); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x706f0044); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x707b8041); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x708b8041); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x709b8041); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x70ab8041); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x70bb8041); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x70cb8041); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x70db8041); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x70eb8041); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x70fb8041); - - odm_set_bb_reg(dm, tssi_counter[i], 0xe0000000, 0x0); - ODM_delay_us(200); - - odm_set_rf_reg(dm, i, RF_0x7f, 0x00002, 0x1); - odm_set_rf_reg(dm, i, RF_0x65, 0x03000, 0x3); - odm_set_rf_reg(dm, i, RF_0x67, 0x0000c, 0x3); - odm_set_rf_reg(dm, i, RF_0x67, 0x000c0, 0x0); - odm_set_rf_reg(dm, i, RF_0x6e, 0x001e0, 0x0); - - odm_set_bb_reg(dm, tssi_enalbe[i], 0x08000000, 0x1); - odm_set_bb_reg(dm, tssi_enalbe[i], 0x40000000, 0x1); - odm_set_bb_reg(dm, R_0x1d08, 0x00000001, 0x1); - odm_set_bb_reg(dm, R_0x1ca4, 0x00000001, 0x1); - odm_set_bb_reg(dm, R_0x1b00, 0x00000006, i); - odm_set_bb_reg(dm, R_0x1bcc, 0x0000003f, 0x3f); - odm_set_rf_reg(dm, i, RF_0xde, 0x10000, 0x1); - odm_set_rf_reg(dm, i, RF_0x56, 0x000ff, 0x0); - - btc_set_gnt_wl_bt_8822c(dm, true); - - odm_set_bb_reg(dm, dc_offset[i], 0x0003ff00, 0xc00); - odm_set_bb_reg(dm, R_0x820, 0x00000003, i + 1); - odm_set_bb_reg(dm, R_0x1e2c, MASKDWORD, 0xe4e40000); - odm_set_bb_reg(dm, R_0x1e28, 0x0000000f, 0x3); - odm_set_bb_reg(dm, path_setting[i], 0x000fffff, 0x33312); - odm_set_bb_reg(dm, path_setting[i], 0x80000000, 0x1); - - odm_set_bb_reg(dm, R_0x1e70, 0x00000004, 0x1); - odm_set_bb_reg(dm, tssi_counter[i], 0x10000000, 0x1); - - /*odm_set_bb_reg(dm, R_0x1c3c, 0x000fff00, 0x930);*/ - phydm_set_bb_dbg_port(dm, DBGPORT_PRI_2, debug_port[i]); - odm_set_bb_reg(dm, tssi_counter[i], 0x10000000, 0x0); - odm_set_bb_reg(dm, tssi_counter[i], 0x10000000, 0x1); - /*reg = odm_get_bb_reg(dm, R_0x2dbc, 0x000003ff);*/ - reg = phydm_get_bb_dbg_port_val(dm) & 0x000003ff; - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] 0x2dbc[9:0]=0x%x\n", reg); - phydm_release_bb_dbg_port(dm); - - reg_tmp = reg; - reg = 1024 - (((reg_tmp - 512) * 4) & 0x000003ff) + 0; - odm_set_bb_reg(dm, dc_offset[i], 0x0003ff00, (reg & 0x03ff)); - tssi->tssi_dck[0][i] = reg & 0x03ff; - - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] 0x%x[17:8]=0x%x reg=0x%x\n", - dc_offset[i], odm_get_bb_reg(dm, dc_offset[i], 0x0003ff00), reg); - - for (j = 0; j < 3; j++) { - /*odm_set_bb_reg(dm, R_0x1c3c, 0x000fff00, 0x930);*/ - phydm_set_bb_dbg_port(dm, DBGPORT_PRI_2, debug_port[i]); - odm_set_bb_reg(dm, tssi_counter[i], 0x10000000, 0x0); - odm_set_bb_reg(dm, tssi_counter[i], 0x10000000, 0x1); - /*dck_check = odm_get_bb_reg(dm, R_0x2dbc, 0x000003ff);*/ - dck_check = phydm_get_bb_dbg_port_val(dm) & 0x000003ff; - phydm_release_bb_dbg_port(dm); - - if (dck_check < 0x1ff) { - if (reg >= 0x3fb) - reg = 0x3ff; - else - reg = reg + 4; - odm_set_bb_reg(dm, dc_offset[i], 0x0003ff00, reg); - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] 0x2dbc[23:12]=0x%x < 0x1ff Set 0x%x retry=%d\n", - dck_check, reg, j); - tssi->tssi_dck[0][i] = reg & 0x03ff; - } else if (dck_check > 0x202) { - if (reg <= 4) - reg = 0; - else - reg = reg - 4; - odm_set_bb_reg(dm, dc_offset[i], 0x0003ff00, reg); - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] 0x2dbc[23:12]=0x%x > 0x202 Set 0x%x retry=%d\n", - dck_check, reg, j); - tssi->tssi_dck[0][i] = reg & 0x03ff; - } else { - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] 0x2dbc[23:12]=0x%x OK!!! retry=%d\n", - dck_check, j); - k = 3; - break; - } - } - - btc_set_gnt_wl_bt_8822c(dm, false); - } - - odm_set_bb_reg(dm, R_0x1e70, 0x0000000f, 0x2); - odm_set_rf_reg(dm, i, RF_0xde, 0x10000, 0x0); - odm_set_bb_reg(dm, R_0x1bcc, 0x0000003f, 0x0); - odm_set_bb_reg(dm, R_0x1b00, 0x00000006, i); - odm_set_bb_reg(dm, R_0x1ca4, 0x00000001, 0x0); - odm_set_bb_reg(dm, R_0x1d08, 0x00000001, 0x0); - - odm_set_rf_reg(dm, i, RF_0x7f, 0x00002, 0x0); - ODM_delay_us(100); - odm_set_bb_reg(dm, tssi_enalbe[i], 0x08000000, 0x0); - odm_set_bb_reg(dm, tssi_enalbe[i], 0x40000000, 0x0); - ODM_delay_us(100); - odm_set_bb_reg(dm, tssi_counter[i], 0x10000000, 0x0); - ODM_delay_us(100); - odm_set_bb_reg(dm, R_0x1d58, 0x00000008, 0x0); - odm_set_bb_reg(dm, R_0x1d58, 0x00000ff0, 0x0); - odm_set_bb_reg(dm, R_0x1a00, 0x00000003, 0x0); - - /*CH 100*/ - odm_set_rf_reg(dm, i, RF_0x18, RFREGOFFSETMASK, 0x33164); - - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, - "[TSSI] ============== Path - %d ch 100==============\n", i); - - for (k = 0; k < 3; k++) { - odm_set_bb_reg(dm, R_0x1c38, MASKDWORD, 0xf7d5005e); - - odm_set_bb_reg(dm, R_0x1d58, 0x00000008, 0x1); - odm_set_bb_reg(dm, R_0x1d58, 0x00000ff0, 0xff); - odm_set_bb_reg(dm, R_0x1a00, 0x00000003, 0x2); - - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x700b8041); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x701f0042); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x702f0042); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x703f0042); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x704f0042); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x705b8041); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x706f0042); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x707b8041); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x708b8041); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x709b8041); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x70ab8041); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x70bb8041); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x70cb8041); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x70db8041); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x70eb8041); - odm_set_bb_reg(dm, tssi_setting[i], MASKDWORD, 0x70fb8041); - - - odm_set_bb_reg(dm, dc_offset[i], 0x0003ff00, 0x0); - - if (dm->rfe_type == 21 || dm->rfe_type == 22) - odm_set_bb_reg(dm, R_0x1c38, 0x00000018, 0x0); - - odm_set_bb_reg(dm, R_0x820, 0x00000003, i + 1); - odm_set_bb_reg(dm, R_0x1e2c, MASKDWORD, 0xe4e40000); - odm_set_bb_reg(dm, R_0x1e28, 0x0000000f, 0x3); - odm_set_bb_reg(dm, path_setting[i], 0x000fffff, 0x33312); - odm_set_bb_reg(dm, path_setting[i], 0x80000000, 0x1); - odm_set_bb_reg(dm, tssi_counter[i], 0xe0000000, 0x0); - ODM_delay_us(200); - odm_set_rf_reg(dm, i, RF_0x7f, 0x100, 0x1); - odm_set_rf_reg(dm, i, RF_0x65, 0x03000, 0x3); - odm_set_rf_reg(dm, i, RF_0x67, 0x00003, 0x3); - - if (dm->rfe_type == 21 || dm->rfe_type == 22) - odm_set_rf_reg(dm, i, RF_0x67, 0x00030, 0x3); - else - odm_set_rf_reg(dm, i, RF_0x67, 0x00030, 0x2); - - odm_set_rf_reg(dm, i, RF_0x6f, 0x001e0, 0x0); - - if (dm->rfe_type == 21 || dm->rfe_type == 22) - odm_set_rf_reg(dm, i, RF_0x6f, 0x00004, 0x0); - - odm_set_bb_reg(dm, tssi_enalbe[i], 0x08000000, 0x1); - odm_set_bb_reg(dm, tssi_enalbe[i], 0x40000000, 0x1); - odm_set_bb_reg(dm, R_0x1d08, 0x00000001, 0x1); - odm_set_bb_reg(dm, R_0x1ca4, 0x00000001, 0x1); - odm_set_bb_reg(dm, R_0x1b00, 0x00000006, i); - odm_set_bb_reg(dm, R_0x1bcc, 0x0000003f, 0x3f); - odm_set_rf_reg(dm, i, RF_0xde, 0x10000, 0x1); - odm_set_rf_reg(dm, i, RF_0x56, 0x000ff, 0x0); - - /*Set OFDM Packet Type*/ - odm_set_bb_reg(dm, R_0x900, 0x00000004, 0x1); - odm_set_bb_reg(dm, R_0x900, 0x30000000, 0x2); - odm_set_bb_reg(dm, R_0x908, 0x00ffffff, 0x21b6b); - odm_set_bb_reg(dm, R_0x90c, 0x00ffffff, 0x800006); - odm_set_bb_reg(dm, R_0x910, 0x00ffffff, 0x13600); - odm_set_bb_reg(dm, R_0x914, 0x1fffffff, 0x6000fa); - odm_set_bb_reg(dm, R_0x938, 0x0000ffff, 0x4b0f); - odm_set_bb_reg(dm, R_0x940, MASKDWORD, 0x4ee33e41); - odm_set_bb_reg(dm, R_0xa58, 0x003f8000, 0x2c); - - odm_set_bb_reg(dm, R_0x1e70, 0x00000004, 0x1); - odm_set_bb_reg(dm, tssi_counter[i], 0x10000000, 0x1); - - /*odm_set_bb_reg(dm, R_0x1c3c, 0x000fff00, 0x930);*/ - phydm_set_bb_dbg_port(dm, DBGPORT_PRI_2, debug_port[i]); - odm_set_bb_reg(dm, tssi_counter[i], 0x10000000, 0x0); - odm_set_bb_reg(dm, tssi_counter[i], 0x10000000, 0x1); - /*reg = odm_get_bb_reg(dm, R_0x2dbc, 0x000003ff);*/ - reg = phydm_get_bb_dbg_port_val(dm) & 0x000003ff; - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] 0x2dbc[9:0]=0x%x\n", reg); - phydm_release_bb_dbg_port(dm); - - reg_tmp = reg; - - if (dm->rfe_type == 21 || dm->rfe_type == 22) { - reg = 1024 - (((reg_tmp - 512) * 4) & 0x000003ff) + 0x50; - odm_set_bb_reg(dm, dc_offset[i], 0x0003ff00, (reg & 0x03ff)); - tssi->tssi_dck[1][i] = reg & 0x03ff; - } else { - reg = 1024 - (((reg_tmp - 512) * 4) & 0x000003ff) + 5; - odm_set_bb_reg(dm, dc_offset[i], 0x0003ff00, (reg & 0x03ff)); - tssi->tssi_dck[1][i] = reg & 0x03ff; - } - - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] 0x%x[17:8]=0x%x reg=0x%x\n", - dc_offset[i], odm_get_bb_reg(dm, dc_offset[i], 0x0003ff00), reg); - - if (dm->rfe_type == 21 || dm->rfe_type == 22){ - dck_check_min = 0x214; - dck_check_max = 0x219; - } else { - dck_check_min = 0x1ff; - dck_check_max = 0x202; - } - - for (j = 0; j < 3; j++) { - /*odm_set_bb_reg(dm, R_0x1c3c, 0x000fff00, 0x930);*/ - phydm_set_bb_dbg_port(dm, DBGPORT_PRI_2, debug_port[i]); - odm_set_bb_reg(dm, tssi_counter[i], 0x10000000, 0x0); - odm_set_bb_reg(dm, tssi_counter[i], 0x10000000, 0x1); - /*dck_check = odm_get_bb_reg(dm, R_0x2dbc, 0x000003ff);*/ - dck_check = phydm_get_bb_dbg_port_val(dm) & 0x000003ff; - phydm_release_bb_dbg_port(dm); - - if (dck_check < dck_check_min) { - if (reg >= 0x3fb) - reg = 0x3ff; - else - reg = reg + 4; - odm_set_bb_reg(dm, dc_offset[i], 0x0003ff00, reg); - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] 0x2dbc[23:12]=0x%x < 0x%x Set 0x%x retry=%d\n", - dck_check, reg, dck_check_min, j); - tssi->tssi_dck[1][i] = reg & 0x03ff; - } else if (dck_check > dck_check_max) { - if (reg <= 4) - reg = 0; - else - reg = reg - 4; - odm_set_bb_reg(dm, dc_offset[i], 0x0003ff00, reg); - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] 0x2dbc[23:12]=0x%x > 0x%x Set 0x%x retry=%d\n", - dck_check, reg, dck_check_max, j); - tssi->tssi_dck[1][i] = reg & 0x03ff; - } else { - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] 0x2dbc[23:12]=0x%x OK!!! retry=%d\n", - dck_check, j); - k = 3; - break; - } - } - } - - odm_set_bb_reg(dm, R_0x1e70, 0x0000000f, 0x2); - odm_set_rf_reg(dm, i, RF_0xde, 0x10000, 0x0); - odm_set_bb_reg(dm, R_0x1bcc, 0x0000003f, 0x0); - odm_set_bb_reg(dm, R_0x1b00, 0x00000006, i); - odm_set_bb_reg(dm, R_0x1ca4, 0x00000001, 0x0); - odm_set_bb_reg(dm, R_0x1d08, 0x00000001, 0x0); - - odm_set_rf_reg(dm, i, RF_0x7f, 0x100, 0x0); - ODM_delay_us(100); - odm_set_bb_reg(dm, tssi_enalbe[i], 0x08000000, 0x0); - odm_set_bb_reg(dm, tssi_enalbe[i], 0x40000000, 0x0); - ODM_delay_us(100); - odm_set_bb_reg(dm, tssi_counter[i], 0x10000000, 0x0); - ODM_delay_us(100); - - if (dm->rfe_type == 21 || dm->rfe_type == 22) - odm_set_bb_reg(dm, R_0x1c38, 0x00000018, 0x3); - - odm_set_bb_reg(dm, R_0x1d58, 0x00000008, 0x0); - odm_set_bb_reg(dm, R_0x1d58, 0x00000ff0, 0x0); - odm_set_bb_reg(dm, R_0x1a00, 0x00000003, 0x0); - - odm_set_rf_reg(dm, i, RF_0x18, RFREGOFFSETMASK, rf_reg_18[i]); - } - - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] tssi->tssi_dck[2G][PathA]=0x%x tssi->tssi_dck[2G][PathB]=0x%x\n", - tssi->tssi_dck[0][0], tssi->tssi_dck[0][1]); - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] tssi->tssi_dck[5G][PathA]=0x%x tssi->tssi_dck[5G][PathB]=0x%x\n", - tssi->tssi_dck[1][0], tssi->tssi_dck[1][1]); - - _reload_bb_registers_8822c(dm, bb_reg, bb_reg_backup, backup_num); - rf->is_tssi_in_progress = 0; -} - -void halrf_set_tssi_codeword_scan_8822c( - void *dm_void) -{ - struct dm_struct *dm = (struct dm_struct *)dm_void; - struct _hal_rf_ *rf = &dm->rf_table; - struct _halrf_tssi_data *tssi = &rf->halrf_tssi_data; - - u8 i, rate; - u8 channel = *dm->channel, bandwidth = *dm->band_width; - u32 slope = 8440, db_temp; - s32 samll_b = 64; - u32 tssi_value_tmp = 0; - - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] ======>%s channel=%d\n", - __func__, channel); - - for (i = 0; i <= 3; i++) { - rate = _halrf_tssi_rate_to_driver_rate_8822c(dm, i); - db_temp = (u32)phydm_get_tx_power_dbm(dm, RF_PATH_A, rate, bandwidth, channel); - - if (dm->rfe_type == 21 || dm->rfe_type == 22) { - if (channel >= 1 && channel <= 14) { - slope = 8440; - samll_b = 64; - } else { - if (db_temp <= 10) { - slope = 8000; - samll_b = 35; - } else if (db_temp > 10 && db_temp <= 18) { - slope = 8000; - samll_b = 35; - } else if (db_temp > 18) { - slope = 8000; - samll_b = 35; - } - } - } else { - if (channel >= 1 && channel <= 14) { - slope = 8440; - samll_b = 64; - } else { - if (db_temp <= 10) { - slope = 8440; - samll_b = 64; - } else if (db_temp > 10 && db_temp <= 18) { - slope = 7600; - samll_b = 78; - } else if (db_temp > 18) { - slope = 5400; - samll_b = 117; - } - } - } - - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, - "channel(%d), %ddBm, 1000 * slope(%d), samll_b(%d), path=%d\n", - channel, db_temp, slope, samll_b, RF_PATH_A); - - db_temp = db_temp * slope; - db_temp = db_temp / 1000 + samll_b; - - if (db_temp > 0xff) - db_temp = 0xff; - else if ((s32)db_temp < 0) - db_temp = 0x0; - - tssi_value_tmp = tssi_value_tmp | (db_temp << (i * 8)); - - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "phydm_get_tx_power_dbm = %d, rate=0x%x(%d) bandwidth=%d channel=%d rf_path=%d\n", - phydm_get_tx_power_dbm(dm, RF_PATH_A, rate, bandwidth, channel), - rate, rate, bandwidth, channel, RF_PATH_A); - - } - - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "tssi_value_tmp = 0x%x\n", - tssi_value_tmp); - - odm_set_bb_reg(dm, R_0x3a54, MASKDWORD, tssi_value_tmp); - - tssi_value_tmp = 0; - for (i = 4; i <= 7; i++) { - rate = _halrf_tssi_rate_to_driver_rate_8822c(dm, i); - db_temp = (u32)phydm_get_tx_power_dbm(dm, RF_PATH_A, rate, bandwidth, channel); - - if (dm->rfe_type == 21 || dm->rfe_type == 22) { - if (channel >= 1 && channel <= 14) { - slope = 8440; - samll_b = 64; - } else { - if (db_temp <= 10) { - slope = 8000; - samll_b = 35; - } else if (db_temp > 10 && db_temp <= 18) { - slope = 8000; - samll_b = 35; - } else if (db_temp > 18) { - slope = 8000; - samll_b = 35; - } - } - } else { - if (channel >= 1 && channel <= 14) { - slope = 8440; - samll_b = 64; - } else { - if (db_temp <= 10) { - slope = 8440; - samll_b = 64; - } else if (db_temp > 10 && db_temp <= 18) { - slope = 7600; - samll_b = 78; - } else if (db_temp > 18) { - slope = 5400; - samll_b = 117; - } - } - } - - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, - "channel(%d), %ddBm, 1000 * slope(%d), samll_b(%d), path=%d\n", - channel, db_temp, slope, samll_b, RF_PATH_A); - - db_temp = db_temp * slope; - db_temp = db_temp / 1000 + samll_b; - - if (db_temp > 0xff) - db_temp = 0xff; - else if ((s32)db_temp < 0) - db_temp = 0x0; - - tssi_value_tmp = tssi_value_tmp | (db_temp << ((i - 4) * 8)); - - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "phydm_get_tx_power_dbm = %d, rate=0x%x(%d) bandwidth=%d channel=%d rf_path=%d\n", - phydm_get_tx_power_dbm(dm, RF_PATH_A, rate, bandwidth, channel), - rate, rate, bandwidth, channel, RF_PATH_A); - } - - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "tssi_value_tmp = 0x%x\n", - tssi_value_tmp); - - odm_set_bb_reg(dm, R_0x3a58, MASKDWORD, tssi_value_tmp); - -} - void halrf_tssi_get_efuse_8822c( void *dm_void) { @@ -2605,7 +1719,6 @@ void halrf_enable_tssi_8822c( else odm_set_bb_reg(dm, R_0x18a4, 0x0003e000, 0xd); - odm_set_bb_reg(dm, R_0x18a0, 0x7f, 0x0); odm_set_bb_reg(dm, R_0x180c, 0x08000000, 0x1); odm_set_bb_reg(dm, R_0x180c, 0x40000000, 0x1); odm_set_bb_reg(dm, R_0x1c64, 0x00007f00, 0x00); @@ -2618,14 +1731,10 @@ void halrf_enable_tssi_8822c( odm_set_bb_reg(dm, R_0x186c, 0x0000ff00, 0xff); odm_set_bb_reg(dm, R_0x1834, 0x80000000, 0x0); odm_set_bb_reg(dm, R_0x1860, 0x00000800, 0x0); -#if 0 odm_set_bb_reg(dm, R_0x18a4, 0x10000000, 0x0); - odm_set_bb_reg(dm, R_0x41a4, 0x10000000, 0x0); odm_set_bb_reg(dm, R_0x1e7c, 0x40000000, 0x0); odm_set_bb_reg(dm, R_0x1e7c, 0x40000000, 0x1); odm_set_bb_reg(dm, R_0x18a4, 0x10000000, 0x1); - odm_set_bb_reg(dm, R_0x41a4, 0x10000000, 0x1); -#endif /*path s1*/ if (channel >= 1 && channel <= 14) @@ -2633,7 +1742,6 @@ void halrf_enable_tssi_8822c( else odm_set_bb_reg(dm, R_0x41a4, 0x0003e000, 0xd); - odm_set_bb_reg(dm, R_0x41a0, 0x7f, 0x0); odm_set_bb_reg(dm, R_0x410c, 0x08000000, 0x1); odm_set_bb_reg(dm, R_0x410c, 0x40000000, 0x1); odm_set_bb_reg(dm, R_0x1c64, 0x00007f00, 0x00); @@ -2646,11 +1754,9 @@ void halrf_enable_tssi_8822c( odm_set_bb_reg(dm, R_0x1d04, 0x07f00000, 0x00); odm_set_bb_reg(dm, R_0x4134, 0x80000000, 0x0); odm_set_bb_reg(dm, R_0x4160, 0x00000800, 0x0); - odm_set_bb_reg(dm, R_0x18a4, 0x10000000, 0x0); odm_set_bb_reg(dm, R_0x41a4, 0x10000000, 0x0); odm_set_bb_reg(dm, R_0x1e7c, 0x40000000, 0x0); odm_set_bb_reg(dm, R_0x1e7c, 0x40000000, 0x1); - odm_set_bb_reg(dm, R_0x18a4, 0x10000000, 0x1); odm_set_bb_reg(dm, R_0x41a4, 0x10000000, 0x1); } @@ -2769,188 +1875,6 @@ void halrf_do_tssi_8822c( /*odm_release_spin_lock(dm, RT_IQK_SPINLOCK);*/ } -void halrf_do_tssi_scan_8822c( - void *dm_void) -{ - struct dm_struct *dm = (struct dm_struct *)dm_void; - struct dm_rf_calibration_struct *cali_info = &(dm->rf_calibrate_info); - struct _hal_rf_ *rf = &(dm->rf_table); - struct _halrf_tssi_data *tssi = &rf->halrf_tssi_data; - struct dm_dpk_info *dpk_info = &dm->dpk_info; - - u32 bb_reg[7] = {R_0x820, R_0x1e2c, R_0x1d08, R_0x1c3c, R_0x1e28, - R_0x18a0, R_0x41a0}; - u32 bb_reg_backup[7] = {0}; - u32 backup_num = 7; - - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] ======>%s\n", __func__); - - if (odm_get_bb_reg(dm, R_0x1e7c, 0x40000000) == 0) - return; - - /*odm_acquire_spin_lock(dm, RT_IQK_SPINLOCK);*/ - rf->is_tssi_in_progress = 1; - - _backup_bb_registers_8822c(dm, bb_reg, bb_reg_backup, backup_num); - - _halrf_tssi_reload_dck_8822c(dm); - halrf_tssi_set_de_8822c(dm); - halrf_disable_tssi_8822c(dm); - halrf_calculate_tssi_codeword_8822c(dm); - halrf_set_tssi_codeword_8822c(dm, tssi->tssi_codeword); - _halrf_tssi_scan_8822c(dm); - - if (!(rf->rf_supportability & HAL_RF_TX_PWR_TRACK)) { - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, - "[TSSI] rf_supportability HAL_RF_TX_PWR_TRACK=%d, return!!!\n", - (rf->rf_supportability & HAL_RF_TX_PWR_TRACK)); - _reload_bb_registers_8822c(dm, bb_reg, bb_reg_backup, backup_num); - rf->is_tssi_in_progress = 0; - /*odm_release_spin_lock(dm, RT_IQK_SPINLOCK);*/ - return; - } - - if (*dm->mp_mode == 1) { - if (cali_info->txpowertrack_control == 3) { - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, - "[TSSI] cali_info->txpowertrack_control=%d, TSSI Mode\n", - cali_info->txpowertrack_control); - halrf_enable_tssi_8822c(dm); - _reload_bb_registers_8822c(dm, bb_reg, bb_reg_backup, backup_num); - rf->is_tssi_in_progress = 0; - /*odm_release_spin_lock(dm, RT_IQK_SPINLOCK);*/ - return; - } - } else { - if (rf->power_track_type >= 4 && rf->power_track_type <= 7) { - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, - "[TSSI] cali_info->txpowertrack_control=%d, TSSI Mode\n", - cali_info->txpowertrack_control); - /*halrf_disable_tssi_8822c(dm);*/ - halrf_enable_tssi_8822c(dm); - _reload_bb_registers_8822c(dm, bb_reg, bb_reg_backup, backup_num); - rf->is_tssi_in_progress = 0; - /*odm_release_spin_lock(dm, RT_IQK_SPINLOCK);*/ - return; - } - } - - _reload_bb_registers_8822c(dm, bb_reg, bb_reg_backup, backup_num); - rf->is_tssi_in_progress = 0; - /*odm_release_spin_lock(dm, RT_IQK_SPINLOCK);*/ -} - -void halrf_tssi_scan_set_tssi_setting_8822c( - void *dm_void) -{ - struct dm_struct *dm = (struct dm_struct *)dm_void; - struct _hal_rf_ *rf = &dm->rf_table; - struct _halrf_tssi_data *tssi = &rf->halrf_tssi_data; - - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] ======>%s\n", __func__); - - _halrf_tssi_reload_dck_8822c(dm); - halrf_tssi_set_de_8822c(dm); - halrf_set_tssi_codeword_scan_8822c(dm); - - odm_set_bb_reg(dm, R_0x18a4, 0xe0000000, tssi->special_scan_num); - odm_set_bb_reg(dm, R_0x41a4, 0xe0000000, tssi->special_scan_num); -} - - -void halrf_tssi_scan_save_txagc_offset_8822c( - void *dm_void, u8 path) -{ - struct dm_struct *dm = (struct dm_struct *)dm_void; - struct _hal_rf_ *rf = &dm->rf_table; - struct _halrf_tssi_data *tssi = &rf->halrf_tssi_data; - u8 channel = *dm->channel, i; - u32 idx; - - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] ======>%s channel=%d\n", - __func__, channel); - - //_halrf_tssi_reload_dck_8822c(dm); - //halrf_tssi_set_de_8822c(dm); - //halrf_calculate_tssi_codeword_8822c(dm); - //halrf_set_tssi_codeword_8822c(dm, tssi->tssi_codeword); - - //halrf_set_tssi_codeword_scan_8822c(dm); - - /*s0*/ - if (path == RF_PATH_A) { - idx = _halrf_tssi_channel_to_index(dm); - phydm_set_bb_dbg_port(dm, DBGPORT_PRI_2, 0x944); - tssi->txagc_offset[RF_PATH_A][idx] = (s8)((phydm_get_bb_dbg_port_val(dm) & 0xff00) >> 8); - tssi->txagc_offset[RF_PATH_A][idx] = tssi->txagc_offset[RF_PATH_A][idx] - 8; - phydm_release_bb_dbg_port(dm); - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] S0 channel=%d tssi->txagc_offset[RF_PATH_A][%d]=0x%x\n", - channel, idx, tssi->txagc_offset[RF_PATH_A][idx]); - } - - /*s1*/ - if (path == RF_PATH_B) { - idx = _halrf_tssi_channel_to_index(dm); - phydm_set_bb_dbg_port(dm, DBGPORT_PRI_2, 0xb44); - tssi->txagc_offset[RF_PATH_B][idx] = (s8)((phydm_get_bb_dbg_port_val(dm) & 0xff00) >> 8); - tssi->txagc_offset[RF_PATH_B][idx] = tssi->txagc_offset[RF_PATH_B][idx] - 8; - phydm_release_bb_dbg_port(dm); - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] S1 channel=%d tssi->txagc_offset[RF_PATH_B][%d]=0x%x\n", - channel, idx, tssi->txagc_offset[RF_PATH_B][idx]); - } - - odm_set_rf_reg(dm, RF_PATH_A, R_0x42, BIT(19), 0x01); - odm_set_rf_reg(dm, RF_PATH_A, R_0x42, BIT(19), 0x00); - odm_set_rf_reg(dm, RF_PATH_A, R_0x42, BIT(19), 0x01); - - odm_set_rf_reg(dm, RF_PATH_B, R_0x42, BIT(19), 0x01); - odm_set_rf_reg(dm, RF_PATH_B, R_0x42, BIT(19), 0x00); - odm_set_rf_reg(dm, RF_PATH_B, R_0x42, BIT(19), 0x01); - - - /* 0x42: RF Reg[6:1] Thermal Trim*/ - for (i = 0; i < 2; i++) - tssi->tssi_thermal[i] = (u8)odm_get_rf_reg(dm, i, R_0x42, 0x7e); - - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] tssi->tssi_thermal[0]=%d tssi->tssi_thermal[1]=%d\n", - tssi->tssi_thermal[0], tssi->tssi_thermal[1]); - - odm_set_bb_reg(dm, R_0x18a4, 0xe0000000, tssi->connect_ch_num); - odm_set_bb_reg(dm, R_0x41a4, 0xe0000000, tssi->connect_ch_num); - - tssi->retry_sacan_tssi = 0; -} - -void halrf_tssi_scan_reload_txagc_offset_8822c( - void *dm_void) -{ - struct dm_struct *dm = (struct dm_struct *)dm_void; - struct _hal_rf_ *rf = &dm->rf_table; - struct _halrf_tssi_data *tssi = &rf->halrf_tssi_data; - u8 channel = *dm->channel; - u32 idx; - u32 bitmask_6_0 = BIT(6) | BIT(5) | BIT(4) | BIT(3) | - BIT(2) | BIT(1) | BIT(0); - - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] ======>%s channel=%d\n", - __func__, channel); - - idx = _halrf_tssi_channel_to_index(dm); - - /*s0*/ - odm_set_bb_reg(dm, R_0x18a0, bitmask_6_0, (tssi->txagc_offset[RF_PATH_A][idx] & 0x7f)); - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, - "0x%x=0x%x\n", R_0x18a0, - odm_get_bb_reg(dm, R_0x18a0, bitmask_6_0)); - - /*s1*/ - odm_set_bb_reg(dm, R_0x41a0, bitmask_6_0, (tssi->txagc_offset[RF_PATH_B][idx] & 0x7f)); - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, - "0x%x=0x%x\n", R_0x41a0, - odm_get_bb_reg(dm, R_0x41a0, bitmask_6_0)); - -} - void halrf_do_thermal_8822c( void *dm_void) { diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_tssi_8822c.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_tssi_8822c.h index af9e530d..174fdb39 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_tssi_8822c.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_tssi_8822c.h @@ -86,24 +86,15 @@ /*---------------------------End Define Parameters----------------------------*/ -void halrf_tssi_set_tssi_tx_counter_8822c( - void *dm_void, u8 special_scan_num, u8 connect_ch_num); - -void halrf_tssi_dck_8822c( - void *dm_void); - -void halrf_tssi_dck_scan_8822c( - void *dm_void); - -void halrf_set_tssi_codeword_scan_8822c( - void *dm_void); - void halrf_calculate_tssi_codeword_8822c( void *dm_void); void halrf_set_tssi_codeword_8822c( void *dm_void, u16 *tssi_value); +void halrf_tssi_dck_8822c( + void *dm_void); + void halrf_tssi_get_efuse_8822c( void *dm_void); @@ -125,21 +116,6 @@ void halrf_disable_tssi_8822c( void halrf_do_tssi_8822c( void *dm_void); -void halrf_do_tssi_scan_8822c( - void *dm_void); - -void halrf_tssi_scan_set_tssi_setting_8822c( - void *dm_void); - -void halrf_tssi_scan_save_txagc_offset_8822c( - void *dm_void, u8 path); - -void halrf_tssi_scan_reload_txagc_offset_8822c( - void *dm_void); - -void halrf_tssi_lps_get_txagc_offset_8822c( - void *dm_void, u8 *txagc_offset); - void halrf_do_thermal_8822c( void *dm_void); diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_txgapk_8822c.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_txgapk_8822c.c index 74ea6db2..f86392bf 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_txgapk_8822c.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/halrf_txgapk_8822c.c @@ -48,7 +48,7 @@ void _halrf_txgapk_backup_bb_registers_8822c( for (i = 0; i < reg_num; i++) { reg_backup[i] = odm_get_bb_reg(dm, reg[i], MASKDWORD); - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] Backup BB 0x%x = 0x%x\n", + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TXGAPK] Backup BB 0x%x = 0x%x\n", reg[i], reg_backup[i]); } } @@ -65,11 +65,33 @@ void _halrf_txgapk_reload_bb_registers_8822c( for (i = 0; i < reg_num; i++) { odm_set_bb_reg(dm, reg[i], MASKDWORD, reg_backup[i]); - RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TSSI] Reload BB 0x%x = 0x%x\n", + RF_DBG(dm, DBG_RF_TX_PWR_TRACK, "[TXGAPK] Reload BB 0x%x = 0x%x\n", reg[i], reg_backup[i]); } } +void _halrf_txgapk_tx_pause_8822c( + struct dm_struct *dm) +{ + u8 reg_rf0_a, reg_rf0_b; + u16 count = 0; + + odm_write_1byte(dm, R_0x522, 0xff); + odm_set_bb_reg(dm, R_0x1e70, 0x0000000f, 0x2); /*hw tx stop*/ + + reg_rf0_a = (u8)odm_get_rf_reg(dm, RF_PATH_A, RF_0x00, 0xF0000); + reg_rf0_b = (u8)odm_get_rf_reg(dm, RF_PATH_B, RF_0x00, 0xF0000); + + while (((reg_rf0_a == 2) || (reg_rf0_b == 2)) && count < 2500) { + reg_rf0_a = (u8)odm_get_rf_reg(dm, RF_PATH_A, RF_0x00, 0xF0000); + reg_rf0_b = (u8)odm_get_rf_reg(dm, RF_PATH_B, RF_0x00, 0xF0000); + ODM_delay_us(2); + count++; + } + + RF_DBG(dm, DBG_RF_DPK, "[TXGAPK] Tx pause!!\n"); +} + void _halrf_txgapk_bb_dpk_8822c( void *dm_void, u8 path) { @@ -291,7 +313,8 @@ void _halrf_txgapk_write_gain_bb_table_8822c( for (path_idx = RF_PATH_A; path_idx < MAX_PATH_NUM_8822C; path_idx++) { odm_set_bb_reg(dm, R_0x1b00, 0x00000006, path_idx); - if (band_idx == 0 || band_idx == 1) /*2G*/ + //if (band_idx == 0 || band_idx == 1) /*2G*/ + if (band_idx == 1) odm_set_bb_reg(dm, R_0x1b98, 0x00007000, 0x0); else if (band_idx == 2) /*5GL*/ odm_set_bb_reg(dm, R_0x1b98, 0x00007000, 0x2); @@ -584,8 +607,8 @@ void _halrf_txgapk_write_tx_gain_8822c( RF_DBG(dm, DBG_RF_TXGAPK, "[TXGAPK] ======>%s\n", __func__); if (channel >= 1 && channel <= 14) { - tmp = 0x20; /*2G CCK*/ - tmp1 = 0x60; /*2G OFDM*/ + tmp = 0x20; /*2G OFDM*/ + tmp1 = 0x60; /*2G CCK*/ band_idx = 1; } else if (channel >= 36 && channel <= 64) { tmp = 0x200; /*5G L*/ @@ -637,6 +660,7 @@ void _halrf_txgapk_write_tx_gain_8822c( j++; } +#if 0 if (tmp1 == 0x60) { j = 0; for (i = tmp1; i <= (tmp1 + 10); i++) { @@ -652,7 +676,7 @@ void _halrf_txgapk_write_tx_gain_8822c( j++; } } - +#endif odm_set_rf_reg(dm, path_idx, 0xee, 0xfffff, 0x0); } } @@ -693,6 +717,7 @@ void halrf_txgapk_save_all_tx_gain_table_8822c( u32 three_wire[2] = {R_0x180c, R_0x410c}, rf18; u8 ch_num[5] = {1, 1, 36, 100, 149}; u8 band_num[5] = {0x0, 0x0, 0x1, 0x3, 0x5}; + u8 cck[5] = {0x1, 0x0, 0x0, 0x0, 0x0}; u8 path_idx, band_idx, gain_idx, rf0_idx; RF_DBG(dm, DBG_RF_TXGAPK, "[TXGAPK] ======>%s\n", __func__); @@ -711,6 +736,8 @@ void halrf_txgapk_save_all_tx_gain_table_8822c( odm_set_rf_reg(dm, path_idx, RF_0x18, 0x000ff, ch_num[band_idx]); odm_set_rf_reg(dm, path_idx, RF_0x18, 0x70000, band_num[band_idx]); + odm_set_rf_reg(dm, path_idx, RF_0x1a, 0x00001, cck[band_idx]); + odm_set_rf_reg(dm, path_idx, RF_0x1a, 0x10000, cck[band_idx]); gain_idx = 0; for (rf0_idx = 1; rf0_idx < 32; rf0_idx = rf0_idx + 3) { @@ -746,8 +773,8 @@ void halrf_txgapk_reload_tx_gain_8822c( for (band_idx = 1; band_idx <= 4; band_idx++) { if (band_idx == 1) { - tmp = 0x20; /*2G CCK*/ - tmp1 = 0x60; /*2G OFDM*/ + tmp = 0x20; /*2G OFDM*/ + tmp1 = 0x60; /*2G CCK*/ } else if (band_idx == 2) { tmp = 0x200; /*5G L*/ tmp1 = 0x0; @@ -774,6 +801,7 @@ void halrf_txgapk_reload_tx_gain_8822c( j++; } +#if 0 if (tmp1 == 0x60) { j = 0; for (i = tmp1; i <= (tmp1 + 10); i++) { @@ -787,7 +815,7 @@ void halrf_txgapk_reload_tx_gain_8822c( j++; } } - +#endif odm_set_rf_reg(dm, path_idx, 0xee, 0xfffff, 0x0); } } @@ -801,6 +829,8 @@ void halrf_txgapk_8822c( struct _halrf_txgapk_info *txgapk = &rf->halrf_txgapk_info; struct dm_rf_calibration_struct *cali_info = &dm->rf_calibrate_info; u8 path_idx; + u32 bb_reg_backup[2]; + u32 bb_reg[2] = {R_0x520, R_0x1e70}; RF_DBG(dm, DBG_RF_TXGAPK, "[TXGAPK] ======>%s\n", __func__); @@ -828,6 +858,10 @@ void halrf_txgapk_8822c( /*_halrf_txgapk_disable_power_trim_8822c(dm);*/ + _halrf_txgapk_backup_bb_registers_8822c(dm, bb_reg, bb_reg_backup, 2); + + _halrf_txgapk_tx_pause_8822c(dm); + for (path_idx = 0; path_idx < MAX_PATH_NUM_8822C; path_idx++) { _halrf_txgapk_bb_dpk_8822c(dm, path_idx); _halrf_txgapk_afe_dpk_8822c(dm, path_idx); @@ -839,6 +873,8 @@ void halrf_txgapk_8822c( _halrf_txgapk_write_tx_gain_8822c(dm); + _halrf_txgapk_reload_bb_registers_8822c(dm, bb_reg, bb_reg_backup, 2); + /*_halrf_txgapk_enable_power_trim_8822c(dm);*/ rf->is_tssi_in_progress = 0; diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/version_rtl8822c_rf.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/version_rtl8822c_rf.h index 3ecbf592..177a3616 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/version_rtl8822c_rf.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/rtl8822c/version_rtl8822c_rf.h @@ -23,4 +23,4 @@ * *****************************************************************************/ /*RTL8822C RF Parameters*/ -#define RF_RELEASE_VERSION_8822C 28 +#define RF_RELEASE_VERSION_8822C 42 diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm.c index a4c04d95..3b2e948b 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm.c @@ -129,13 +129,17 @@ void phydm_cck_new_agc_chk(struct dm_struct *dm) ODM_RTL8721D | ODM_RTL8710C)) { new_agc_addr = R_0xa9c; } else if (dm->support_ic_type & (ODM_RTL8198F | ODM_RTL8822C | - ODM_RTL8814B | ODM_RTL8197G)) { + ODM_RTL8814B | ODM_RTL8197G | ODM_RTL8814C)) { new_agc_addr = R_0x1a9c; } /*@1: new agc 0: old agc*/ dm->cck_new_agc = (boolean)odm_get_bb_reg(dm, new_agc_addr, BIT(17)); #endif +#if (RTL8723F_SUPPORT) + if (dm->support_ic_type & (ODM_RTL8723F)) + dm->cck_new_agc = true; +#endif } /*select 3 or 4 bit LNA */ @@ -224,6 +228,10 @@ void phydm_init_hw_info_by_rfe(struct dm_struct *dm) if (dm->support_ic_type & ODM_RTL8197F) phydm_init_hw_info_by_rfe_type_8197f(dm); #endif + #if (RTL8197G_SUPPORT) + if (dm->support_ic_type & ODM_RTL8197G) + phydm_init_hw_info_by_rfe_type_8197g(dm); + #endif } #endif @@ -312,13 +320,12 @@ void phydm_common_info_self_init(struct dm_struct *dm) dm->csi_wgt = 4; /*@-------------------------------------------------------@*/ #endif - dm->pause_lv_table.lv_cckpd = PHYDM_PAUSE_RELEASE; - dm->pause_lv_table.lv_dig = PHYDM_PAUSE_RELEASE; dm->pre_is_linked = false; dm->is_linked = false; /*dym bw thre and it can config by registry*/ if (dm->en_auto_bw_th == 0) dm->en_auto_bw_th = 20; + #if (DM_ODM_SUPPORT_TYPE == ODM_WIN) if (!(dm->is_fcs_mode_enable)) { dm->is_fcs_mode_enable = &dm->boolean_dummy; @@ -346,6 +353,11 @@ void phydm_iot_patch_id_update(void *dm_void, u32 iot_idx, boolean en) PHYDM_DBG(dm, DBG_CMN, "[IOT] patch_id_10120200 = %d\n", iot_table->patch_id_10120200); break; + case 0x40010700: + iot_table->patch_id_40010700 = en; + PHYDM_DBG(dm, DBG_CMN, "[IOT] patch_id_40010700 = %d\n", + iot_table->patch_id_40010700); + break; case 0x021f0800: iot_table->patch_id_021f0800 = en; PHYDM_DBG(dm, DBG_CMN, "[IOT] patch_id_021f0800 = %d\n", @@ -534,6 +546,10 @@ void phydm_phy_info_update(struct dm_struct *dm) void phydm_hw_setting(struct dm_struct *dm) { +#if (RTL8188F_SUPPORT) + if (dm->support_ic_type & ODM_RTL8188F) + odm_hw_setting_8188F(dm); +#endif #if (RTL8821A_SUPPORT) if (dm->support_ic_type & ODM_RTL8821) odm_hw_setting_8821a(dm); @@ -569,6 +585,26 @@ void phydm_hw_setting(struct dm_struct *dm) phydm_hwsetting_8822c(dm); #endif +#if (RTL8197G_SUPPORT) + if (dm->support_ic_type & ODM_RTL8197G) + phydm_hwsetting_8197g(dm); +#endif + +#if (RTL8723F_SUPPORT) + if (dm->support_ic_type & ODM_RTL8723F) + phydm_hwsetting_8723f(dm); +#endif + +#if (RTL8821C_SUPPORT) + if (dm->support_ic_type & ODM_RTL8821C) + phydm_hwsetting_8821c(dm); +#endif + +#if (RTL8812F_SUPPORT) + if (dm->support_ic_type & ODM_RTL8812F) + phydm_hwsetting_8812f(dm); +#endif + #ifdef PHYDM_CCK_RX_PATHDIV_SUPPORT phydm_cck_rx_pathdiv_watchdog(dm); #endif @@ -617,6 +653,18 @@ boolean phydm_chk_bb_rf_pkg_set_valid(struct dm_struct *dm) RELEASE_VERSION_8814B, RF_RELEASE_VERSION_8814B); #endif + #if (RTL8814C_SUPPORT) + } else if (dm->support_ic_type == ODM_RTL8814C) { + valid = phydm_chk_pkg_set_valid_8814b(dm, + RELEASE_VERSION_8814C, + RF_RELEASE_VERSION_8814C); + #endif + #if (RTL8723F_SUPPORT) + } else if (dm->support_ic_type == ODM_RTL8723F) { + valid = phydm_chk_pkg_set_valid_8723f(dm, + RELEASE_VERSION_8723F, + RF_RELEASE_VERSION_8723F); + #endif } return valid; @@ -883,6 +931,22 @@ u64 phydm_supportability_init_win( break; #endif +#if (RTL8723F_SUPPORT) + case ODM_RTL8723F: + support_ability |= + ODM_BB_DIG | + ODM_BB_RA_MASK | + /* ODM_BB_DYNAMIC_TXPWR |*/ + ODM_BB_FA_CNT | + ODM_BB_RSSI_MONITOR | + ODM_BB_CCK_PD | + /*ODM_BB_PWR_TRAIN |*/ + ODM_BB_RATE_ADAPTIVE | + ODM_BB_ADAPTIVITY | + ODM_BB_CFO_TRACKING | + ODM_BB_ENV_MONITOR; + break; +#endif default: support_ability |= ODM_BB_DIG | @@ -1114,7 +1178,7 @@ u64 phydm_supportability_init_ce(void *dm_void) support_ability |= ODM_BB_DIG | ODM_BB_RA_MASK | - /*@ODM_BB_DYNAMIC_TXPWR |*/ + ODM_BB_DYNAMIC_TXPWR | ODM_BB_FA_CNT | ODM_BB_RSSI_MONITOR | ODM_BB_CCK_PD | @@ -1161,7 +1225,22 @@ u64 phydm_supportability_init_ce(void *dm_void) /*ODM_BB_ENV_MONITOR;*/ break; #endif - +#if (RTL8723F_SUPPORT) + case ODM_RTL8723F: + support_ability |= + ODM_BB_DIG | + ODM_BB_RA_MASK | + ODM_BB_DYNAMIC_TXPWR | + ODM_BB_FA_CNT | + ODM_BB_RSSI_MONITOR | + ODM_BB_CCK_PD | + ODM_BB_RATE_ADAPTIVE | + /* ODM_BB_PATH_DIV | */ + ODM_BB_ADAPTIVITY | + ODM_BB_CFO_TRACKING | + ODM_BB_ENV_MONITOR; + break; +#endif default: support_ability |= ODM_BB_DIG | @@ -1380,8 +1459,21 @@ u64 phydm_supportability_init_ap( /*ODM_BB_PWR_TRAIN |*/ /*ODM_BB_RATE_ADAPTIVE |*/ ODM_BB_ADAPTIVITY | - ODM_BB_CFO_TRACKING; - /*ODM_BB_ENV_MONITOR;*/ + ODM_BB_CFO_TRACKING | + ODM_BB_ENV_MONITOR; + break; + case ODM_RTL8814C: + support_ability |= + ODM_BB_DIG | + ODM_BB_RA_MASK | + ODM_BB_FA_CNT | + ODM_BB_RSSI_MONITOR | + ODM_BB_CCK_PD | + /*ODM_BB_PWR_TRAIN |*/ + /*ODM_BB_RATE_ADAPTIVE |*/ + ODM_BB_ADAPTIVITY | + ODM_BB_CFO_TRACKING | + ODM_BB_ENV_MONITOR; break; #endif @@ -1418,6 +1510,21 @@ u64 phydm_supportability_init_ap( break; #endif +#if (RTL8723F_SUPPORT) + case ODM_RTL8723F: + support_ability |= + ODM_BB_DIG | + ODM_BB_RA_MASK | + ODM_BB_FA_CNT | + ODM_BB_RSSI_MONITOR | + ODM_BB_CCK_PD | + /*ODM_BB_PWR_TRAIN |*/ + ODM_BB_RATE_ADAPTIVE | + ODM_BB_ADAPTIVITY | + ODM_BB_CFO_TRACKING | + ODM_BB_ENV_MONITOR; + break; +#endif default: support_ability |= ODM_BB_DIG | @@ -1491,8 +1598,8 @@ u64 phydm_supportability_init_iot( /*ODM_BB_PWR_TRAIN |*/ ODM_BB_RATE_ADAPTIVE | ODM_BB_ADAPTIVITY | - ODM_BB_CFO_TRACKING; - /*ODM_BB_ENV_MONITOR*/ + ODM_BB_CFO_TRACKING | + ODM_BB_ENV_MONITOR; break; #endif @@ -1635,6 +1742,14 @@ void phydm_supportability_init(void *dm_void) if (IS_FUNC_EN(dm->en_adap_soml)) support_ability |= ODM_BB_ADAPTIVE_SOML; + /*@[DYNAMIC_TXPWR and TSSI cannot coexist]*/ + if(IS_FUNC_EN(&dm->en_tssi_mode) && + (dm->support_ic_type & ODM_RTL8822C)) + support_ability &= ~ODM_BB_DYNAMIC_TXPWR; + /*@[DYNAMIC_TXPWR and TSSI cannot coexist]*/ + if(IS_FUNC_EN(&dm->en_tssi_mode) && + (dm->support_ic_type & ODM_RTL8723F)) + support_ability &= ~ODM_BB_DYNAMIC_TXPWR; } dm->support_ability = support_ability; PHYDM_DBG(dm, ODM_COMP_INIT, "IC=0x%x, mp=%d, Supportability=0x%llx\n", @@ -1652,6 +1767,41 @@ void phydm_rfe_init(void *dm_void) #endif } +#ifdef CONFIG_DYNAMIC_TXCOLLISION_TH +void phydm_tx_collsion_th_init(void *dm_void) +{ + +struct dm_struct *dm = (struct dm_struct *)dm_void; + +#if (RTL8197G_SUPPORT) + if (dm->support_ic_type & ODM_RTL8197G) + phydm_tx_collsion_th_init_8197g(dm); +#endif + +#if (RTL8812F_SUPPORT) + if (dm->support_ic_type & ODM_RTL8812F) + phydm_tx_collsion_th_init_8812f(dm); +#endif + +} + +void phydm_tx_collsion_th_set(void *dm_void, u8 val_r2t, u8 val_t2r) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + +#if (RTL8197G_SUPPORT) + if (dm->support_ic_type & ODM_RTL8197G) + phydm_tx_collsion_th_set_8197g(dm, val_r2t, val_t2r); +#endif + +#if (RTL8812F_SUPPORT) + if (dm->support_ic_type & ODM_RTL8812F) + phydm_tx_collsion_th_set_8812f(dm, val_r2t, val_t2r); +#endif + +} +#endif + void phydm_dm_early_init(struct dm_struct *dm) { #if (DM_ODM_SUPPORT_TYPE == ODM_CE) @@ -1670,6 +1820,7 @@ enum phydm_init_result odm_dm_init(struct dm_struct *dm) halrf_init(dm); phydm_supportability_init(dm); + phydm_pause_func_init(dm); phydm_rfe_init(dm); phydm_common_info_self_init(dm); phydm_rx_phy_status_init(dm); @@ -1678,6 +1829,9 @@ enum phydm_init_result odm_dm_init(struct dm_struct *dm) #endif phydm_dig_init(dm); #ifdef PHYDM_SUPPORT_CCKPD +#ifdef PHYDM_DCC_ENHANCE + phydm_dig_cckpd_coex_init(dm); +#endif phydm_cck_pd_init(dm); #endif phydm_env_monitor_init(dm); @@ -1739,6 +1893,10 @@ enum phydm_init_result odm_dm_init(struct dm_struct *dm) phydm_mu_rsoml_init(dm); #endif +#ifdef CONFIG_DYNAMIC_TXCOLLISION_TH + phydm_tx_collsion_th_init(dm); +#endif + return result; } @@ -1762,8 +1920,7 @@ void phydm_supportability_en(void *dm_void, char input[][16], u32 *_used, u8 i; for (i = 0; i < 5; i++) { - if (input[i + 1]) - PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &dm_value[i]); + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &dm_value[i]); } pre_support_ability = dm->support_ability; @@ -1834,7 +1991,6 @@ void phydm_supportability_en(void *dm_void, char input[][16], u32 *_used, PDM_SNPF(out_len, used, output + used, out_len - used, "18. (( %s ))LNA_SAT_CHK\n", ((comp & ODM_BB_LNA_SAT_CHK) ? ("V") : ("."))); - PDM_SNPF(out_len, used, output + used, out_len - used, "================================\n"); PDM_SNPF(out_len, used, output + used, out_len - used, @@ -1933,6 +2089,18 @@ void phydm_pause_dm_watchdog(void *dm_void, enum phydm_pause_type pause_type) } } +void phydm_pause_func_init(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + + dm->pause_lv_table.lv_cckpd = PHYDM_PAUSE_RELEASE; + dm->pause_lv_table.lv_dig = PHYDM_PAUSE_RELEASE; + dm->pause_lv_table.lv_antdiv = PHYDM_PAUSE_RELEASE; + dm->pause_lv_table.lv_dig = PHYDM_PAUSE_RELEASE; + dm->pause_lv_table.lv_adapt = PHYDM_PAUSE_RELEASE; + dm->pause_lv_table.lv_adsl = PHYDM_PAUSE_RELEASE; +} + u8 phydm_pause_func(void *dm_void, enum phydm_func_idx pause_func, enum phydm_pause_type pause_type, enum phydm_pause_level pause_lv, u8 val_lehgth, @@ -2139,8 +2307,7 @@ void phydm_pause_func_console(void *dm_void, char input[][16], u32 *_used, } for (i = 0; i < 10; i++) { - if (input[i + 1]) - PHYDM_SSCANF(input[i + 1], DCMD_HEX, &var1[i]); + PHYDM_SSCANF(input[i + 1], DCMD_HEX, &var1[i]); } func = (enum phydm_func_idx)var1[0]; @@ -2256,20 +2423,34 @@ void phydm_watchdog(struct dm_struct *dm) phydm_hw_setting(dm); - #ifdef PHYDM_TDMA_DIG_SUPPORT - if (dm->original_dig_restore == 0) + phydm_env_mntr_result_watchdog(dm); + +#ifdef PHYDM_TDMA_DIG_SUPPORT + if (dm->original_dig_restore == 0) { phydm_tdma_dig_timer_check(dm); - else - #endif + } else +#endif { phydm_false_alarm_counter_statistics(dm); - phydm_noisy_detection(dm); + #if (ODM_IC_11N_SERIES_SUPPORT || ODM_IC_11AC_SERIES_SUPPORT) + if (dm->support_ic_type & (ODM_IC_11N_SERIES | + ODM_IC_11AC_SERIES)) + phydm_noisy_detection(dm); + #endif + + #if defined(PHYDM_DCC_ENHANCE) && defined(PHYDM_SUPPORT_CCKPD) + phydm_dig_cckpd_coex(dm); + #else phydm_dig(dm); #ifdef PHYDM_SUPPORT_CCKPD phydm_cck_pd_th(dm); #endif + #endif } +#ifdef PHYDM_HW_IGI + phydm_hwigi(dm); +#endif #ifdef PHYDM_POWER_TRAINING_SUPPORT phydm_update_power_training_state(dm); #endif @@ -2304,7 +2485,7 @@ void phydm_watchdog(struct dm_struct *dm) odm_dtc(dm); #endif - phydm_env_mntr_watchdog(dm); + phydm_env_mntr_set_watchdog(dm); #ifdef PHYDM_LNA_SAT_CHK_SUPPORT phydm_lna_sat_chk_watchdog(dm); @@ -2321,6 +2502,46 @@ void phydm_watchdog(struct dm_struct *dm) phydm_common_info_self_reset(dm); } +void phydm_fw_dm_ctrl_en(void *dm_void, enum phydm_func_idx fun_idx, + boolean enable) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + u8 h2c_val[H2C_MAX_LENGTH] = {0}; + u8 para4[4]; /*4 bit*/ + u8 para8[4]; /*8 bit*/ + u8 i = 0; + + for (i = 0; i < 4; i++) { + para4[i] = 0; + para8[i] = 0; + } + + switch (fun_idx) { + case F00_DIG: + phydm_fill_fw_dig_info(dm, &enable, para4, para8); + break; + default: + pr_debug("[Warning] %s\n", __func__); + return; + } + + h2c_val[0] = (u8)((fun_idx & 0x3f) | (enable << 6)); + h2c_val[1] = para8[0]; + h2c_val[2] = para8[1]; + h2c_val[3] = para8[2]; + h2c_val[4] = para8[3]; + h2c_val[5] = (para4[0] & 0xf) | ((para4[1] & 0xf) << 3); + h2c_val[6] = (para4[2] & 0xf) | ((para4[3] & 0xf) << 3); + + PHYDM_DBG(dm, DBG_FW_DM, + "H2C[0x59] fun_idx=%d,en=%d,para8={%x %x %x %x},para4={%x %x %x %x}\n", + fun_idx, enable, + para8[0], para8[1], para8[2], para8[3], + para4[0], para4[1], para4[2], para4[3]); + + odm_fill_h2c_cmd(dm, PHYDM_H2C_FW_DM_CTRL, H2C_MAX_LENGTH, h2c_val); +} + /*@ * Init /.. Fixed HW value. Only init time. */ @@ -2523,6 +2744,9 @@ void odm_cmn_info_init(struct dm_struct *dm, enum odm_cmninfo cmn_info, case ODM_CMNINFO_EN_AUTO_BW_TH: dm->en_auto_bw_th = (u8)value; break; + case ODM_CMNINFO_EN_NBI_DETECT: + dm->en_nbi_detect = (boolean)value; + break; #if (RTL8721D_SUPPORT) case ODM_CMNINFO_POWER_VOLTAGE: dm->power_voltage = (u8)value; @@ -2530,6 +2754,9 @@ void odm_cmn_info_init(struct dm_struct *dm, enum odm_cmninfo cmn_info, case ODM_CMNINFO_ANTDIV_GPIO: dm->antdiv_gpio = (u8)value; break; + case ODM_CMNINFO_PEAK_DETECT_MODE: + dm->peak_detect_mode = (u8)value; + break; #endif default: break; @@ -2683,6 +2910,12 @@ void odm_cmn_info_hook(struct dm_struct *dm, enum odm_cmninfo cmn_info, break; case ODM_CMNINFO_EN_DYM_BW_INDICATION: dm->dis_dym_bw_indication = (u8 *)value; + break; +#if (RTL8192F_SUPPORT || RTL8721D_SUPPORT || RTL8710C_SUPPORT) + case ODM_ANTI_INTERFERENCE_EN: + dm->anti_interference_en = (u8 *)value; + break; +#endif default: /*do nothing*/ break; @@ -2729,7 +2962,9 @@ void odm_cmn_info_update(struct dm_struct *dm, u32 cmn_info, u64 value) break; case ODM_CMNINFO_RSSI_MIN: +#if 0 dm->rssi_min = (u8)value; +#endif break; case ODM_CMNINFO_RSSI_MIN_BY_PATH: @@ -2788,6 +3023,18 @@ void odm_cmn_info_update(struct dm_struct *dm, u32 cmn_info, u64 value) case ODM_CMNINFO_LINKED_BF_SUPPORT: dm->linked_bf_support = (u8)value; break; + case ODM_CMNINFO_FLATNESS_TYPE: + dm->flatness_type = (u8)value; + break; + case ODM_CMNINFO_TSSI_ENABLE: + dm->en_tssi_mode = (u8)value; + break; + case ODM_CMNINFO_HUAWEI_HWID: + dm->is_dig_low_bond = (boolean)value; + break; + case ODM_CMNINFO_ATHEROS_HWID: + dm->is_R2R_CCA_MASKT_TIME_SHORT = (boolean)value; + break; default: break; } @@ -2879,6 +3126,14 @@ u32 phydm_cmn_info_query(struct dm_struct *dm, enum phydm_info_query info_type) return (u32)ccx_info->nhm_ratio; case PHYDM_INFO_NHM_NOISE_PWR: return (u32)ccx_info->nhm_level; + case PHYDM_INFO_NHM_PWR: + return (u32)ccx_info->nhm_pwr; + case PHYDM_INFO_NHM_ENV_RATIO: + return (u32)ccx_info->nhm_env_ratio; + case PHYDM_INFO_TXEN_CCK: + return (u32)fa_t->cnt_cck_txen; + case PHYDM_INFO_TXEN_OFDM: + return (u32)fa_t->cnt_ofdm_txen; default: return 0xffffffff; } @@ -3317,7 +3572,8 @@ void phydm_dc_cancellation(struct dm_struct *dm) } odm_write_dig(dm, 0x7e); /*@Disable LNA*/ - if (dm->support_ic_type & ODM_RTL8821C) + if (dm->support_ic_type & (ODM_RTL8821C | ODM_RTL8721D | + ODM_RTL8710C)) halrf_rf_lna_setting(dm, HALRF_LNA_DISABLE); /*Turn off 3-wire*/ phydm_stop_3_wire(dm, PHYDM_SET); @@ -3394,7 +3650,8 @@ void phydm_dc_cancellation(struct dm_struct *dm) /* @Turn on 3-wire*/ phydm_stop_3_wire(dm, PHYDM_REVERT); /* @Enable LNA*/ - if (dm->support_ic_type & ODM_RTL8821C) + if (dm->support_ic_type & (ODM_RTL8821C | ODM_RTL8721D | + ODM_RTL8710C)) halrf_rf_lna_setting(dm, HALRF_LNA_ENABLE); odm_write_dig(dm, 0x20); @@ -3504,12 +3761,18 @@ void phydm_dc_cancellation(struct dm_struct *dm) offset_i_hex[0] = (reg_value32[0] & 0xff80000) >> 19; offset_q_hex[0] = (reg_value32[0] & 0x3fe00) >> 9; - /*@Before filling into registers, - *offset should be multiplexed (-1) - */ - offset_i_hex[0] = 0x200 - offset_i_hex[0]; - offset_q_hex[0] = 0x200 - offset_q_hex[0]; - + if ((offset_i_hex[0] > 0xF && offset_i_hex[0] < 0x1F1) + || (offset_q_hex[0] > 0xF && offset_q_hex[0] < 0x1F1)) { + /*@Discard outliers*/ + offset_i_hex[0] = 0x0; + offset_q_hex[0] = 0x0; + } else { + /*@Before filling into registers, + *offset should be multiplexed (-1) + */ + offset_i_hex[0] = 0x200 - offset_i_hex[0]; + offset_q_hex[0] = 0x200 - offset_q_hex[0]; + } odm_set_bb_reg(dm, R_0x950, 0x1ff, offset_i_hex[0]); odm_set_bb_reg(dm, R_0x950, 0x1ff0000, offset_q_hex[0]); } @@ -3597,4 +3860,5 @@ void phydm_dyn_bw_indication(void *dm_void) phydm_bw_fixed_setting(dm); #endif -} \ No newline at end of file +} + diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm.h index 629258c1..eb7c0671 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm.h @@ -204,6 +204,8 @@ extern const u16 phy_rate_table[84]; #define PHY_HIST_SIZE 12 #define PHY_HIST_TH_SIZE (PHY_HIST_SIZE - 1) +#define S_TO_US 1000000 + /*@============================================================*/ /*structure and define*/ /*@============================================================*/ @@ -240,6 +242,9 @@ struct phydm_bb_ram_ctrl { /* For type == 2'b11, 0x1e70[30:24] = tx_pwr_offset_reg1, 0x1e70[31] = enable */ boolean tx_pwr_ofst_reg1_en; u8 tx_pwr_ofst_reg1; + boolean hwigi_watchdog_en; + u64 macid_is_linked; + u64 hwigi_macid_is_linked; }; #endif @@ -433,11 +438,15 @@ enum odm_cmninfo { ODM_CMNINFO_X_CAP_SETTING, ODM_CMNINFO_ADVANCE_OTA, ODM_CMNINFO_HP_HWID, - ODM_CMNINFO_TSSI_ENABLE, + ODM_CMNINFO_HUAWEI_HWID, + ODM_CMNINFO_ATHEROS_HWID, + ODM_CMNINFO_TSSI_ENABLE, /*also for cmn_info_update*/ ODM_CMNINFO_DIS_DPD, ODM_CMNINFO_POWER_VOLTAGE, ODM_CMNINFO_ANTDIV_GPIO, ODM_CMNINFO_EN_AUTO_BW_TH, + ODM_CMNINFO_PEAK_DETECT_MODE, + ODM_CMNINFO_EN_NBI_DETECT, /*@-----------HOOK BEFORE REG INIT-----------*/ /*@Dynamic value:*/ @@ -477,6 +486,7 @@ enum odm_cmninfo { ODM_CMNINFO_BF_ANTDIV_DECISION, ODM_CMNINFO_MANUAL_SUPPORTABILITY, ODM_CMNINFO_EN_DYM_BW_INDICATION, + ODM_ANTI_INTERFERENCE_EN, /*@--------- POINTER REFERENCE-----------*/ /*@------------CALL BY VALUE-------------*/ @@ -507,6 +517,7 @@ enum odm_cmninfo { ODM_CMNINFO_PHYDM_PATCH_ID, ODM_CMNINFO_RRSR_VAL, ODM_CMNINFO_LINKED_BF_SUPPORT, + ODM_CMNINFO_FLATNESS_TYPE, /*@------------CALL BY VALUE-------------*/ /*@Dynamic ptr array hook itms.*/ @@ -561,6 +572,11 @@ enum phydm_info_query { PHYDM_INFO_CLM_RATIO, PHYDM_INFO_NHM_RATIO, PHYDM_INFO_NHM_NOISE_PWR, + PHYDM_INFO_NHM_PWR, + PHYDM_INFO_NHM_ENV_RATIO, + PHYDM_INFO_TXEN_CCK, + PHYDM_INFO_TXEN_OFDM, + }; enum phydm_api { @@ -636,7 +652,6 @@ enum phydm_dbg_comp { DBG_PRI_CCA = BIT(F16_PRI_CCA), DBG_ADPTV_SOML = BIT(F17_ADPTV_SOML), DBG_LNA_SAT_CHK = BIT(F18_LNA_SAT_CHK), - /*BIT(19)*/ /*Neet to re-arrange*/ DBG_PHY_STATUS = BIT(20), DBG_TMP = BIT(21), @@ -644,7 +659,7 @@ enum phydm_dbg_comp { DBG_TXBF = BIT(23), DBG_COMMON_FLOW = BIT(24), DBG_COMP_MCC = BIT(25), - /*BIT(26)*/ + DBG_FW_DM = BIT(26), DBG_DM_SUMMARY = BIT(27), ODM_PHY_CONFIG = BIT(28), ODM_COMP_INIT = BIT(29), @@ -720,6 +735,7 @@ struct phydm_iot_center { u8 win_patch_id; /*Customer ID*/ boolean patch_id_100f0401; boolean patch_id_10120200; + boolean patch_id_40010700; boolean patch_id_021f0800; boolean patch_id_011f0500; u32 phydm_patch_id; /*temp for CCX IOT */ @@ -752,7 +768,7 @@ struct _phydm_mcc_dm_ { }; #endif -#if (RTL8822C_SUPPORT || RTL8812F_SUPPORT || RTL8197G_SUPPORT) +#if (RTL8822C_SUPPORT || RTL8812F_SUPPORT || RTL8197G_SUPPORT || RTL8723F_SUPPORT) struct phydm_physts { u8 cck_gi_u_bnd; u8 cck_gi_l_bnd; @@ -784,9 +800,19 @@ struct dm_struct { u32 last_num_qry_phy_status_all; u32 rx_pwdb_ave; boolean is_init_hw_info_by_rfe; + boolean is_R2R_CCA_MASKT_TIME_SHORT; +#if (DM_ODM_SUPPORT_TYPE & ODM_WIN) + u32 rts_drop_cnt; + u32 low_rate_tx_fail_cnt; + u32 low_rate_tx_ok_cnt; +#endif //TSSI u8 en_tssi_mode; + #if (RTL8723F_SUPPORT) + //ZWDFS for 80M + u8 en_zwdfs_bw80; + #endif /*@------ ODM HANDLE, DRIVER NEEDS NOT TO HOOK------*/ boolean is_cck_high_power; @@ -856,11 +882,16 @@ struct dm_struct { boolean en_dis_dpd; u16 dis_dpd_rate; u8 en_auto_bw_th; + boolean is_pause_dig; + boolean en_nbi_detect; #if (RTL8822C_SUPPORT || RTL8814B_SUPPORT || RTL8197G_SUPPORT) u8 txagc_buff[RF_PATH_MEM_SIZE][PHY_NUM_RATE_IDX]; u32 bp_0x9b0; + #elif (RTL8723F_SUPPORT) + u8 txagc_buff[2][PHY_NUM_RATE_IDX]; + u32 bp_0x9b0; #endif - #if (RTL8822C_SUPPORT) + #if (RTL8822C_SUPPORT || RTL8723F_SUPPORT) u8 ofdm_rxagc_l_bnd[16]; boolean l_bnd_detect[16]; u16 agc_rf_gain_ori[16][64];/*[table][mp_gain_idx]*/ @@ -909,6 +940,7 @@ struct dm_struct { u8 *bb_op_mode; u32 *manual_supportability; u8 *dis_dym_bw_indication; + u8 *anti_interference_en; /*@===========================================================*/ /*@====[ CALL BY VALUE ]===========================================*/ /*@===========================================================*/ @@ -976,6 +1008,7 @@ struct dm_struct { u32 txagc_offset_value_b; boolean is_txagc_offset_positive_b; u8 ap_total_num; + boolean flatness_type; /*@[traffic]*/ u8 traffic_load; u8 pre_traffic_load; @@ -996,6 +1029,7 @@ struct dm_struct { boolean MPDIG_2G; /*off MPDIG*/ u8 times_2g; /*@for MP DIG*/ u8 force_igi; /*@for debug*/ + boolean is_dig_low_bond; /*@[TDMA-DIG]*/ u8 tdma_dig_timer_ms; @@ -1066,13 +1100,17 @@ struct dm_struct { boolean en_reg_mntr_mac; boolean en_reg_mntr_byte; /*@--------------------------------------------------------------*/ -#if (RTL8814B_SUPPORT || RTL8812F_SUPPORT) - /*@--- for spur detection ---------------------------------------*/ +#if (RTL8814B_SUPPORT || RTL8812F_SUPPORT || RTL8198F_SUPPORT) u8 dsde_sel; u8 nbi_path_sel; u8 csi_wgt; - /*@------------------------------------------*/ #endif +#if (RTL8814B_SUPPORT || RTL8198F_SUPPORT) + u8 csi_wgt_th_db[5]; /*@wgt 4,3,2,1,0 */ + /* ^ ^ ^ ^ ^ */ +#endif + /*@------------------------------------------*/ + /*@--- for noise detection ---------------------------------------*/ boolean is_noisy_state; boolean noisy_decision; /*@b_noisy*/ @@ -1112,7 +1150,7 @@ struct dm_struct { boolean bsomlenabled; /* @D-SoML control */ u8 no_ndp_cnts; - u8 ndp_cnt_pre; + u16 ndp_cnt_pre; boolean is_beamformed; u8 linked_bf_support; boolean bhtstfdisabled; /* @dynamic HTSTF gain control*/ @@ -1163,7 +1201,7 @@ struct dm_struct { u32 radar_detect_reg_f74; /*@---For zero-wait DFS---------------------------------------*/ boolean seg1_dfs_flag; - /*@-----------------------------------------------------------*/ + /*@---For ETSI 302 ---------------------------------------*/ /*@-----------------------------------------------------------*/ #endif @@ -1175,6 +1213,7 @@ struct dm_struct { u8 cca_cbw20_lev; u8 cca_cbw40_lev; u8 antdiv_gpio; + u8 peak_detect_mode; #endif /*@=== PHYDM Timer ========================================== (start)*/ @@ -1253,6 +1292,15 @@ struct dm_struct { struct sw_antenna_switch dm_swat_table; #endif struct phydm_dig_struct dm_dig_table; + +#ifdef PHYDM_SUPPORT_CCKPD + struct phydm_cckpd_struct dm_cckpd_table; + + #ifdef PHYDM_DCC_ENHANCE + struct phydm_dcc_struct dm_dcc_info; /*dig cckpd coex*/ + #endif +#endif + #ifdef PHYDM_LNA_SAT_CHK_SUPPORT struct phydm_lna_sat_t dm_lna_sat_info; #endif @@ -1261,10 +1309,6 @@ struct dm_struct { struct _phydm_mcc_dm_ mcc_dm; #endif -#ifdef PHYDM_SUPPORT_CCKPD - struct phydm_cckpd_struct dm_cckpd_table; -#endif - #ifdef PHYDM_PRIMARY_CCA struct phydm_pricca_struct dm_pri_cca; #endif @@ -1329,7 +1373,7 @@ struct dm_struct { #endif /*@==========================================================*/ -#if (RTL8822C_SUPPORT || RTL8812F_SUPPORT || RTL8197G_SUPPORT) +#if (RTL8822C_SUPPORT || RTL8812F_SUPPORT || RTL8197G_SUPPORT || RTL8723F_SUPPORT) /*@-------------------phydm_phystatus report --------------------*/ struct phydm_physts dm_physts_table; #endif @@ -1453,6 +1497,9 @@ phydm_watchdog(struct dm_struct *dm); void phydm_watchdog_mp(struct dm_struct *dm); +void +phydm_pause_func_init(void *dm_void); + u8 phydm_pause_func(void *dm_void, enum phydm_func_idx pause_func, enum phydm_pause_type pause_type, @@ -1465,6 +1512,9 @@ phydm_pause_func_console(void *dm_void, char input[][16], u32 *_used, void phydm_pause_dm_by_asso_pkt(struct dm_struct *dm, enum phydm_pause_type pause_type, u8 rssi); +void phydm_fw_dm_ctrl_en(void *dm_void, enum phydm_func_idx fun_idx, + boolean enable); + void odm_cmn_info_init(struct dm_struct *dm, enum odm_cmninfo cmn_info, u64 value); @@ -1501,6 +1551,15 @@ phydm_dyn_bw_indication(void *dm_void); void phydm_iot_patch_id_update(void *dm_void, u32 iot_idx, boolean en); + +#ifdef CONFIG_DYNAMIC_TXCOLLISION_TH +void +phydm_tx_collsion_th_init(void *dm_void); + +void +phydm_tx_collsion_th_set(void *dm_void, u8 val_r2t, u8 val_t2r); +#endif + #if (DM_ODM_SUPPORT_TYPE == ODM_WIN) void odm_init_all_work_items( diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm.mk b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm.mk index 8bfe6c1e..2c007b79 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm.mk +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm.mk @@ -1,4 +1,4 @@ -EXTRA_CFLAGS += -I$(SOURCETREE)/hal/phydm +EXTRA_CFLAGS += -I$(src)/hal/phydm _PHYDM_FILES := hal/phydm/phydm_debug.o \ hal/phydm/phydm_antdiv.o\ @@ -180,6 +180,7 @@ _PHYDM_FILES += hal/phydm/$(RTL871X)/halhwimg8821c_bb.o \ hal/phydm/$(RTL871X)/halhwimg8821c_mac.o \ hal/phydm/$(RTL871X)/phydm_hal_api8821c.o \ hal/phydm/$(RTL871X)/phydm_regconfig8821c.o\ + hal/phydm/$(RTL871X)/phydm_rtl8821c.o\ hal/phydm/halrf/$(RTL871X)/halhwimg8821c_rf.o \ hal/phydm/halrf/$(RTL871X)/halrf_8821c.o\ hal/phydm/halrf/$(RTL871X)/halrf_iqk_8821c.o @@ -224,10 +225,35 @@ RTL871X = rtl8814b _PHYDM_FILES += hal/phydm/$(RTL871X)/halhwimg8814b_bb.o\ hal/phydm/$(RTL871X)/phydm_hal_api8814b.o\ hal/phydm/$(RTL871X)/phydm_regconfig8814b.o\ + hal/phydm/$(RTL871X)/phydm_extraagc8814b.o\ hal/phydm/halrf/$(RTL871X)/halhwimg8814b_rf.o\ hal/phydm/halrf/$(RTL871X)/halrf_8814b.o \ hal/phydm/halrf/$(RTL871X)/halrf_iqk_8814b.o \ hal/phydm/halrf/$(RTL871X)/halrf_dpk_8814b.o\ hal/phydm/halrf/$(RTL871X)/halrf_rfk_init_8814b.o\ hal/phydm/halrf/$(RTL871X)/halrf_txgapk_8814b.o + ifeq ($(CONFIG_RTL8814C), y) + _PHYDM_FILES += hal/phydm/halrf/rtl8814c/halrf_8814c.o\ + hal/phydm/halrf/rtl8814c/halrf_iqk_8814c.o\ + hal/phydm/halrf/rtl8814c/halrf_dpk_8814c.o\ + hal/phydm/halrf/rtl8814c/halrf_rfk_init_8814c.o\ + hal/phydm/halrf/rtl8814c/halhwimg8814c_rf.o\ + hal/phydm/halrf/rtl8814c/halrf_8814c.o\ + hal/phydm/rtl8814c/halhwimg8814c_bb.o\ + hal/phydm/rtl8814c/phydm_extraagc8814c.o + endif endif +ifeq ($(CONFIG_RTL8723F), y) +RTL871X = rtl8723f +_PHYDM_FILES += hal/phydm/$(RTL871X)/halhwimg8723f_bb.o\ + hal/phydm/$(RTL871X)/phydm_hal_api8723f.o\ + hal/phydm/$(RTL871X)/phydm_regconfig8723f.o\ + hal/phydm/$(RTL871X)/phydm_rtl8723f.o\ + hal/phydm/halrf/$(RTL871X)/halrf_8723f.o\ + hal/phydm/halrf/$(RTL871X)/halrf_iqk_8723f.o\ + hal/phydm/halrf/$(RTL871X)/halrf_tssi_8723f.o\ + hal/phydm/halrf/$(RTL871X)/halrf_dpk_8723f.o\ + hal/phydm/halrf/$(RTL871X)/halrf_txgapk_8723f.o\ + hal/phydm/halrf/$(RTL871X)/halrf_rfk_init_8723f.o\ + hal/phydm/halrf/$(RTL871X)/halhwimg8723f_rf.o +endif \ No newline at end of file diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_adaptivity.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_adaptivity.c index 87466890..ed6fea4d 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_adaptivity.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_adaptivity.c @@ -146,6 +146,335 @@ void phydm_check_adaptivity(void *dm_void) *dm->edcca_mode = PHYDM_EDCCA_ADAPT_MODE; } +void phydm_set_l2h_th_ini_win(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + + /*@ [New Format: JGR3]IGI-idx:45 = RSSI:35 = -65dBm*/ + if (dm->support_ic_type & ODM_IC_JGR3_SERIES) { + if (dm->support_ic_type & (ODM_RTL8822C | ODM_RTL8723F)) + dm->th_l2h_ini = 45; + else if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) + dm->th_l2h_ini = 49; + } else if (dm->support_ic_type & ODM_IC_11AC_SERIES) { + /*@ [Old Format] -11+base(50) = IGI_idx:39 = RSSI:29 = -71dBm*/ + if (dm->support_ic_type & (ODM_RTL8821 | ODM_RTL8812)) { + dm->th_l2h_ini = -17; + } else { + if (*dm->band_type == ODM_BAND_5G) + dm->th_l2h_ini = -14; + else if (*dm->band_type == ODM_BAND_2_4G) + dm->th_l2h_ini = -9; + } + } else { /*ODM_IC_11N_SERIES*/ + dm->th_l2h_ini = -9; + } +} + +void phydm_l2h_ini_recorder_reset(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_adaptivity_struct *adapt = &dm->adaptivity; + struct phydm_l2h_ini_recorder_strcut *adapt_rc = &adapt->l2h_ini_recorder_t; + + PHYDM_DBG(dm, DBG_ADPTVTY, "%s ======>\n", __func__); + + odm_memory_set(dm, &adapt_rc->l2h_ini_bitmap, 0, + sizeof(struct phydm_l2h_ini_recorder_strcut)); +} + + +void phydm_l2h_ini_recorder(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_adaptivity_struct *adapt = &dm->adaptivity; + struct phydm_l2h_ini_recorder_strcut *adapt_rc = &adapt->l2h_ini_recorder_t; + u32 low_rate_tx_fail_cnt = dm->low_rate_tx_fail_cnt; + s8 l2h_ini_curr = dm->th_l2h_ini; + s8 l2h_ini_pre = adapt_rc->l2h_ini_hist[0]; + s8 l2h_ini_down = 0; + + if (!dm->is_linked || adapt->is_adapt_by_dig || adapt->rts_drop_en) + return; + + PHYDM_DBG(dm, DBG_ADPTVTY, "%s ======>\n", __func__); + + if (dm->first_connect) { + phydm_l2h_ini_recorder_reset(dm); + adapt_rc->l2h_ini_hist[0] = l2h_ini_curr; + return; + } + + l2h_ini_down = (l2h_ini_curr < l2h_ini_pre) ? 1 : 0; + adapt_rc->l2h_ini_bitmap = ((adapt_rc->l2h_ini_bitmap << 1) & 0xfe) | l2h_ini_down; + + adapt_rc->l2h_ini_hist[3] = adapt_rc->l2h_ini_hist[2]; + adapt_rc->l2h_ini_hist[2] = adapt_rc->l2h_ini_hist[1]; + adapt_rc->l2h_ini_hist[1] = adapt_rc->l2h_ini_hist[0]; + adapt_rc->l2h_ini_hist[0] = l2h_ini_curr; + + adapt_rc->low_rate_tx_fail_hist[3] = adapt_rc->low_rate_tx_fail_hist[2]; + adapt_rc->low_rate_tx_fail_hist[2] = adapt_rc->low_rate_tx_fail_hist[1]; + adapt_rc->low_rate_tx_fail_hist[1] = adapt_rc->low_rate_tx_fail_hist[0]; + adapt_rc->low_rate_tx_fail_hist[0] = low_rate_tx_fail_cnt; + + PHYDM_DBG(dm, DBG_ADPTVTY, "l2h_ini_hist[3:0] = {0x%x, 0x%x, 0x%x, 0x%x}\n", + adapt_rc->l2h_ini_hist[3], adapt_rc->l2h_ini_hist[2], + adapt_rc->l2h_ini_hist[1], adapt_rc->l2h_ini_hist[0]); + PHYDM_DBG(dm, DBG_ADPTVTY, "low_rate_tx_fail_hist[3:0] = {%d, %d, %d, %d}\n", + adapt_rc->low_rate_tx_fail_hist[3], adapt_rc->low_rate_tx_fail_hist[2], + adapt_rc->low_rate_tx_fail_hist[1], adapt_rc->low_rate_tx_fail_hist[0]); + PHYDM_DBG(dm, DBG_ADPTVTY, "l2h_ini_bitmap = {%d, %d, %d, %d} = 0x%x\n", + (u8)((adapt_rc->l2h_ini_bitmap & BIT(3)) >> 3), + (u8)((adapt_rc->l2h_ini_bitmap & BIT(2)) >> 2), + (u8)((adapt_rc->l2h_ini_bitmap & BIT(1)) >> 1), + (u8)(adapt_rc->l2h_ini_bitmap & BIT(0)), + adapt_rc->l2h_ini_bitmap); +} + +void phydm_rts_drop_chk(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_adaptivity_struct *adapt = &dm->adaptivity; + u32 time_tmp = 0; + + if (!dm->is_linked || adapt->is_adapt_by_dig) + return; + + PHYDM_DBG(dm, DBG_ADPTVTY, "%s ======>\n", __func__); + + if (dm->rts_drop_cnt > 0) { + adapt->rts_drop_en = 1; + adapt->rts_drop_limit_time = dm->phydm_sys_up_time; + } + + /*@== Fix l2h_ini to l2h_ini_range_min================================*/ + if (adapt->rts_drop_en) { + PHYDM_DBG(dm, DBG_ADPTVTY, + "[RTS DROP!] rts_drop_limit_time=%d, phydm_sys_up_time=%d\n", + adapt->rts_drop_limit_time, dm->phydm_sys_up_time); + + time_tmp = adapt->rts_drop_limit_time + L2H_INI_LIMIT_PERIOD; + dm->th_l2h_ini = adapt->l2h_ini_range_min; + + if (time_tmp < dm->phydm_sys_up_time && dm->rts_drop_cnt == 0) { + adapt->rts_drop_en = 0; + PHYDM_DBG(dm, DBG_ADPTVTY, "rts_drop_cnt=%d\n", + dm->rts_drop_cnt); + } + } + return; +} + + +void phydm_l2h_ini_damping_chk(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_adaptivity_struct *adapt = &dm->adaptivity; + struct phydm_l2h_ini_recorder_strcut *adapt_rc = &adapt->l2h_ini_recorder_t; + u8 l2h_ini_bitmap_4bit = adapt_rc->l2h_ini_bitmap & 0xf; + s8 diff1 = 0, diff2 = 0, min_l2h_ini = 0x7f; + u32 tx_fail_low_th = adapt->low_rate_tx_fail_th[0]; + u32 tx_fail_high_th = adapt->low_rate_tx_fail_th[1]; + u32 tx_fail_high_th2 = adapt->low_rate_tx_fail_th[2]; + u8 tx_fail_pattern_match = 0; + u32 time_tmp = 0; + u8 i = 0; + + if (!dm->is_linked || adapt->is_adapt_by_dig || adapt->rts_drop_en) + return; + + PHYDM_DBG(dm, DBG_ADPTVTY, "%s ======>\n", __func__); + + /*@== Release Damping ================================================*/ + if (adapt_rc->damping_limit_en) { + PHYDM_DBG(dm, DBG_ADPTVTY, + "[Damping Limit!] limit_time=%d, phydm_sys_up_time=%d\n", + adapt_rc->limit_time, dm->phydm_sys_up_time); + + time_tmp = adapt_rc->limit_time + L2H_INI_LIMIT_PERIOD; + + if (DIFF_2(dm->low_rate_tx_fail_cnt, adapt_rc->limit_low_rate_tx_fail) > 3 || + time_tmp < dm->phydm_sys_up_time) { + adapt_rc->damping_limit_en = 0; + PHYDM_DBG(dm, DBG_ADPTVTY, "low_rate_tx_fail_cnt=%d, limit_low_rate_tx_fail=%d\n", + dm->low_rate_tx_fail_cnt, adapt_rc->limit_low_rate_tx_fail); + } + return; + } + + /*@== Damping Pattern Check===========================================*/ + PHYDM_DBG(dm, DBG_ADPTVTY, "low_rate_tx_fail_th{H, L}= {%d,%d}\n", tx_fail_high_th, tx_fail_low_th); + + switch (l2h_ini_bitmap_4bit) { + case 0x5: + /*@ 4b'0101 + * L2H_INI: [3]up(40) ->[2]down(38)->[1]up(40) ->[0]down(38)->[new](Lock @ 38) + * low_rate_tx_fail_cnt: [3] >high1 ->[2] [1] >high1 ->[0] [new] [2]down(40)->[1]up(42) ->[0]down(37)->[new](Lock @ 37) + * low_rate_tx_fail_cnt: [3] >high2 ->[2] [1] >high2 ->[0] [new] l2h_ini_hist[0] < adapt_rc->l2h_ini_hist[1]) + diff1 = adapt_rc->l2h_ini_hist[1] - adapt_rc->l2h_ini_hist[0]; + + if (adapt_rc->l2h_ini_hist[2] < adapt_rc->l2h_ini_hist[3]) + diff2 = adapt_rc->l2h_ini_hist[3] - adapt_rc->l2h_ini_hist[2]; + + if (adapt_rc->low_rate_tx_fail_hist[0] < tx_fail_low_th && + adapt_rc->low_rate_tx_fail_hist[1] > tx_fail_high_th && + adapt_rc->low_rate_tx_fail_hist[2] < tx_fail_low_th && + adapt_rc->low_rate_tx_fail_hist[3] > tx_fail_high_th) { + /*@Check each rts drop element*/ + tx_fail_pattern_match = 1; + } + break; + case 0x9: + /*@ 4b'1001 + * L2H_INI: [3]down(40)->[2]up(42)->[1]up(44) ->[0]down(39)->[new](Lock @ 39) + * low_rate_tx_fail_cnt: [3] [2] [1] >high2 ->[0] [new] l2h_ini_hist[0] < adapt_rc->l2h_ini_hist[1]) + diff1 = adapt_rc->l2h_ini_hist[1] - adapt_rc->l2h_ini_hist[0]; + + if (adapt_rc->l2h_ini_hist[2] > adapt_rc->l2h_ini_hist[3]) + diff2 = adapt_rc->l2h_ini_hist[2] - adapt_rc->l2h_ini_hist[3]; + + if (adapt_rc->low_rate_tx_fail_hist[0] < tx_fail_low_th && + adapt_rc->low_rate_tx_fail_hist[1] > tx_fail_high_th2 && + adapt_rc->low_rate_tx_fail_hist[2] < tx_fail_low_th && + adapt_rc->low_rate_tx_fail_hist[3] < tx_fail_low_th) { + /*@Check each fa element*/ + tx_fail_pattern_match = 1; + } + break; + default: + break; + } + + if (diff1 >= 2 && diff2 >= 2 && tx_fail_pattern_match) { + for (i = 0; i < L2H_INI_RECORD_NUM; i++) { + if (min_l2h_ini > adapt_rc->l2h_ini_hist[i]) + min_l2h_ini = adapt_rc->l2h_ini_hist[i]; + } + + adapt_rc->damping_limit_en = 1; + adapt_rc->damping_limit_val = min_l2h_ini; + adapt_rc->limit_time = dm->phydm_sys_up_time; + adapt_rc->limit_low_rate_tx_fail = dm->low_rate_tx_fail_cnt; + + PHYDM_DBG(dm, DBG_ADPTVTY, + "[Start damping_limit!] l2h_ini_min=0x%x, limit_time=%d, limit_low_rate_tx_fail=%d\n", + adapt_rc->damping_limit_val, + adapt_rc->limit_time, adapt_rc->limit_low_rate_tx_fail); + } + + PHYDM_DBG(dm, DBG_ADPTVTY, "damping_limit=%d\n", adapt_rc->damping_limit_en); +} + +void phydm_low_rate_tx_fail_threshold_check(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_adaptivity_struct *adapt = &dm->adaptivity; + + if (adapt->is_dbg_low_rate_tx_fail_th) { + PHYDM_DBG(dm, DBG_ADPTVTY, "Manual Fix low_rate_tx_fail_th\n"); + } else { + adapt->low_rate_tx_fail_th[0] = 2; + adapt->low_rate_tx_fail_th[1] = 2; + adapt->low_rate_tx_fail_th[2] = 5; + } + + PHYDM_DBG(dm, DBG_ADPTVTY, "low_rate_tx_fail_th={%d,%d,%d}\n", adapt->low_rate_tx_fail_th[0], + adapt->low_rate_tx_fail_th[1], adapt->low_rate_tx_fail_th[2]); +} + +s8 phydm_new_l2h_ini_by_low_rate_tx_fail(void *dm_void, s8 l2h_ini, + u8 *step_size) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_adaptivity_struct *adapt = &dm->adaptivity; + u32 low_rate_tx_fail_cnt = dm->low_rate_tx_fail_cnt; + + if (low_rate_tx_fail_cnt > adapt->low_rate_tx_fail_th[2]) + l2h_ini = l2h_ini - step_size[2]; + else if (low_rate_tx_fail_cnt > adapt->low_rate_tx_fail_th[1]) + l2h_ini = l2h_ini - step_size[1]; + else if (low_rate_tx_fail_cnt < adapt->low_rate_tx_fail_th[0]) + l2h_ini = l2h_ini + step_size[0]; + + return l2h_ini; +} + + +void phydm_get_new_l2h_ini(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_adaptivity_struct *adapt = &dm->adaptivity; + struct phydm_l2h_ini_recorder_strcut *adapt_rc = &adapt->l2h_ini_recorder_t; + u8 step[3] = {1, 2, 5}; + u32 low_rate_tx_fail_cnt = dm->low_rate_tx_fail_cnt; + u32 low_rate_tx_ok_cnt = dm->low_rate_tx_ok_cnt; + s8 l2h_ini = dm->th_l2h_ini; + + if (!dm->is_linked || adapt->is_adapt_by_dig || adapt->rts_drop_en) + return; + + if (adapt_rc->damping_limit_en) { + dm->th_l2h_ini = adapt_rc->damping_limit_val; + PHYDM_DBG(dm, DBG_ADPTVTY, "[Limit by Damping] l2h_ini: 0x%x -> 0x%x\n", + l2h_ini, dm->th_l2h_ini); + return; + } + + l2h_ini = phydm_new_l2h_ini_by_low_rate_tx_fail(dm, l2h_ini, step); + + PHYDM_DBG(dm, DBG_ADPTVTY, "step = {-%d, -%d, +%d}\n", step[2], step[1], + step[0]); + + /*@Check th_l2h_ini by dyn-upper/lower bound */ + if (l2h_ini < adapt->l2h_ini_range_min) + l2h_ini = adapt->l2h_ini_range_min; + + if (l2h_ini > adapt->l2h_ini_range_max) + l2h_ini = adapt->l2h_ini_range_max; + + PHYDM_DBG(dm, DBG_ADPTVTY, "low_rate_tx_fail_cnt = %d, low_rate_tx_ok_cnt = %d, l2h_ini: 0x%x -> 0x%x\n", + low_rate_tx_fail_cnt, low_rate_tx_ok_cnt, dm->th_l2h_ini, + l2h_ini); + + dm->th_l2h_ini = l2h_ini; +} + +void phydm_dyn_l2h_ini(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_adaptivity_struct *adapt = &dm->adaptivity; + + if (dm->rssi_min <= 20 || !dm->is_linked) { + phydm_set_l2h_th_ini_win(dm); + PHYDM_DBG(dm, DBG_ADPTVTY, "th_l2h_ini = %d\n", dm->th_l2h_ini); + return; + } + + /*Check rts drop*/ + phydm_rts_drop_chk(dm); + + /*Record l2h_ini History*/ + phydm_l2h_ini_recorder(dm); + + /*@l2h_ini Damping Check*/ + phydm_l2h_ini_damping_chk(dm); + + /*@low_rate_tx_fail threshold decision */ + phydm_low_rate_tx_fail_threshold_check(dm); + + /*Select new l2h_ini by tx_fail */ + phydm_get_new_l2h_ini(dm); + PHYDM_DBG(dm, DBG_ADPTVTY, "Adjust l2h init @ linked, th_l2h_ini = %d\n", + dm->th_l2h_ini); +} + #endif void phydm_dig_up_bound_lmt_en(void *dm_void) @@ -305,9 +634,9 @@ void phydm_set_l2h_th_ini(void *dm_void) /*@ [New Format: JGR3]IGI-idx:45 = RSSI:35 = -65dBm*/ if (dm->support_ic_type & ODM_IC_JGR3_SERIES) { - if (dm->support_ic_type & ODM_RTL8822C) + if (dm->support_ic_type & (ODM_RTL8822C | ODM_RTL8723F)) dm->th_l2h_ini = 45; - else if (dm->support_ic_type & ODM_RTL8814B) + else if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) dm->th_l2h_ini = 49; } else if (dm->support_ic_type & ODM_IC_11AC_SERIES) { /*@ [Old Format] -11+base(50) = IGI_idx:39 = RSSI:29 = -71dBm*/ @@ -365,6 +694,7 @@ void phydm_adaptivity_debug(void *dm_void, char input[][16], u32 *_used, { struct dm_struct *dm = (struct dm_struct *)dm_void; struct phydm_adaptivity_struct *adaptivity = &dm->adaptivity; + struct phydm_l2h_ini_recorder_strcut *adapt_rc = &adaptivity->l2h_ini_recorder_t; u32 used = *_used; u32 out_len = *_out_len; char help[] = "-h"; @@ -373,11 +703,9 @@ void phydm_adaptivity_debug(void *dm_void, char input[][16], u32 *_used, u32 reg_value32 = 0; s8 h2l_diff = 0; - for (i = 0; i < 5; i++) { - if (input[i + 1]) { - PHYDM_SSCANF(input[i + 1], DCMD_HEX, &dm_value[i]); - input_idx++; - } + for (i = 0; i < 6; i++) { + PHYDM_SSCANF(input[i + 1], DCMD_HEX, &dm_value[i]); + input_idx++; } if (strcmp(input[1], help) == 0) { PDM_SNPF(out_len, used, output + used, out_len - used, @@ -386,6 +714,8 @@ void phydm_adaptivity_debug(void *dm_void, char input[][16], u32 *_used, "Enter debug mode: {1} {th_l2h_ini} {th_edcca_hl_diff}\n"); PDM_SNPF(out_len, used, output + used, out_len - used, "Leave debug mode: {2}\n"); + PDM_SNPF(out_len, used, output + used, out_len - used, + "RTS drop debug mode: {3} {en} {low_rate_tx_fail_th[0]} {low_rate_tx_fail_th[1]} {low_rate_tx_fail_th[2]}\n"); goto out; } @@ -430,6 +760,21 @@ void phydm_adaptivity_debug(void *dm_void, char input[][16], u32 *_used, else PDM_SNPF(out_len, used, output + used, out_len - used, "adaptivity disable\n"); + } else if (dm_value[0] == PHYDM_L2H_INI_DEBUG) { + if (dm_value[1] == 1) { + adaptivity->is_dbg_low_rate_tx_fail_th = true; + adaptivity->low_rate_tx_fail_th[0] = (u32)dm_value[2]; + adaptivity->low_rate_tx_fail_th[1] = (u32)dm_value[3]; + adaptivity->low_rate_tx_fail_th[2] = (u32)dm_value[4]; + + PDM_SNPF(out_len, used, output + used, out_len - used, + "Set low_rate_tx_fail_th={%d,%d,%d}\n", + adaptivity->low_rate_tx_fail_th[0], + adaptivity->low_rate_tx_fail_th[1], + adaptivity->low_rate_tx_fail_th[2]); + } else { + adaptivity->is_dbg_low_rate_tx_fail_th = false; + } } out: @@ -614,6 +959,9 @@ void phydm_adaptivity_info_init(void *dm_void, enum phydm_adapinfo cmn_info, case PHYDM_ADAPINFO_AP_NUM_TH: adaptivity->ap_num_th = (u8)value; break; + case PHYDM_ADAPINFO_SWITCH_TH_L2H_INI_IN_BAND: + adaptivity->switch_th_l2h_ini_in_band = (u8)value; + break; default: break; } @@ -654,7 +1002,8 @@ void phydm_adaptivity_init(void *dm_void) #if (DM_ODM_SUPPORT_TYPE & ODM_WIN) if (!dm->carrier_sense_enable) { - if (dm->th_l2h_ini == 0) + if (dm->th_l2h_ini == 0 && + !adaptivity->switch_th_l2h_ini_in_band) phydm_set_l2h_th_ini(dm); } else { phydm_set_l2h_th_ini_carrier_sense(dm); @@ -670,6 +1019,20 @@ void phydm_adaptivity_init(void *dm_void) adaptivity->mode_cvrt_en = true; else adaptivity->mode_cvrt_en = false; + + if (dm->support_ic_type & ODM_RTL8822C) { + adaptivity->l2h_ini_range_max = 45; + adaptivity->l2h_ini_range_min = 35; + } else { + adaptivity->l2h_ini_range_max = dm->th_l2h_ini; + adaptivity->l2h_ini_range_min = dm->th_l2h_ini; + } + adaptivity->low_rate_tx_fail_th[0] = 2; + adaptivity->low_rate_tx_fail_th[1] = 2; + adaptivity->low_rate_tx_fail_th[2] = 5; + adaptivity->is_dbg_low_rate_tx_fail_th = false; + adaptivity->rts_drop_en = false; + phydm_l2h_ini_recorder_reset(dm); #elif (DM_ODM_SUPPORT_TYPE & ODM_CE) if (!dm->carrier_sense_enable) { if (dm->th_l2h_ini == 0) @@ -777,8 +1140,24 @@ void phydm_adaptivity(void *dm_void) #if (DM_ODM_SUPPORT_TYPE == ODM_WIN) phydm_check_adaptivity(dm); /*@Check adaptivity enable*/ -#endif + if (!dm->carrier_sense_enable && + !adapt->debug_mode && + adapt->switch_th_l2h_ini_in_band) + phydm_set_l2h_th_ini_win(dm); + + if (dm->support_ic_type & ODM_RTL8822C) + phydm_dyn_l2h_ini(dm); +#endif +#if (DM_ODM_SUPPORT_TYPE == ODM_CE) + if (!adapt->debug_mode) { + if (*dm->edcca_mode == PHYDM_EDCCA_ADAPT_MODE && + dm->carrier_sense_enable) + phydm_set_l2h_th_ini_carrier_sense(dm); + else if (*dm->edcca_mode == PHYDM_EDCCA_ADAPT_MODE) + phydm_set_l2h_th_ini(dm); + } +#endif PHYDM_DBG(dm, DBG_ADPTVTY, "%s ====>\n", __func__); PHYDM_DBG(dm, DBG_ADPTVTY, "mode = %s, debug_mode = %d\n", (*dm->edcca_mode ? diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_adaptivity.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_adaptivity.h index 45f7e8a2..35adabdd 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_adaptivity.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_adaptivity.h @@ -26,14 +26,16 @@ #ifndef __PHYDMADAPTIVITY_H__ #define __PHYDMADAPTIVITY_H__ -#define ADAPTIVITY_VERSION "9.7.07" /*@20190321 changed by Kevin, - *add 8721D threshold l2h init +#define ADAPTIVITY_VERSION "9.7.08" /*@20210121 changed by Archer, + *add dynamic th_l2h_ini */ #define ADC_BACKOFF 12 #define EDCCA_TH_L2H_LB 48 #define TH_L2H_DIFF_IGI 8 #define EDCCA_HL_DIFF_NORMAL 8 #define IGI_2_DBM(igi) (igi - 110) +#define L2H_INI_RECORD_NUM 4 +#define L2H_INI_LIMIT_PERIOD 60 /*60 sec*/ /*@ [PHYDM-337][Old IC] EDCCA TH = IGI + REG setting*/ #define ODM_IC_PWDB_EDCCA (ODM_RTL8188E | ODM_RTL8723B | ODM_RTL8192E |\ ODM_RTL8881A | ODM_RTL8821 | ODM_RTL8812) @@ -54,6 +56,15 @@ enum phydm_regulation_type { MAX_REGULATION_NUM = 4 }; #endif +struct phydm_l2h_ini_recorder_strcut { + u8 l2h_ini_bitmap; /*@Don't add any new parameter before this*/ + s8 l2h_ini_hist[L2H_INI_RECORD_NUM]; + u32 low_rate_tx_fail_hist[L2H_INI_RECORD_NUM]; + u8 damping_limit_en; + s8 damping_limit_val; /*@Limit l2h_ini_dyn_max*/ + u32 limit_time; + u32 limit_low_rate_tx_fail; +}; enum phydm_edcca_mode { PHYDM_EDCCA_NORMAL_MODE = 0, @@ -66,7 +77,8 @@ enum phydm_adapinfo { PHYDM_ADAPINFO_TH_EDCCA_HL_DIFF, PHYDM_ADAPINFO_AP_NUM_TH, PHYDM_ADAPINFO_DOMAIN_CODE_2G, - PHYDM_ADAPINFO_DOMAIN_CODE_5G + PHYDM_ADAPINFO_DOMAIN_CODE_5G, + PHYDM_ADAPINFO_SWITCH_TH_L2H_INI_IN_BAND }; enum phydm_mac_edcca_type { @@ -78,9 +90,18 @@ enum phydm_adaptivity_debug_mode { PHYDM_ADAPT_MSG = 0, PHYDM_ADAPT_DEBUG = 1, PHYDM_ADAPT_RESUME = 2, + PHYDM_L2H_INI_DEBUG = 3 }; struct phydm_adaptivity_struct { + struct phydm_l2h_ini_recorder_strcut l2h_ini_recorder_t; + u32 low_rate_tx_fail_th[3]; + u32 rts_drop_limit_time; + s8 l2h_ini_range_max; /*@l2h_ini_dynamic_max*/ + s8 l2h_ini_range_min; /*@l2h_ini_dynamic_min*/ + boolean rts_drop_en; + boolean is_dbg_low_rate_tx_fail_th; + boolean is_adapt_by_dig; boolean mode_cvrt_en; s8 th_l2h_ini_backup; s8 th_edcca_hl_diff_backup; @@ -100,6 +121,7 @@ struct phydm_adaptivity_struct { s8 th_h2l; u8 regulation_2g; u8 regulation_5g; + u8 switch_th_l2h_ini_in_band; }; #ifdef PHYDM_SUPPORT_ADAPTIVITY diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_adc_sampling.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_adc_sampling.c index 186e0e45..7cf20a82 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_adc_sampling.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_adc_sampling.c @@ -48,7 +48,7 @@ boolean phydm_la_finish_addr_recover_8814B(void *dm_void, u32 *finish_addr) struct rt_adcsmp *smp = &dm->adcsmp; boolean recover_success; - if (dm->support_ic_type != ODM_RTL8814B) + if (!(dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C))) return false; if (smp->la_buff_mode == ADCSMP_BUFF_HALF) { @@ -135,6 +135,23 @@ phydm_la_clk_en(void *dm_void, boolean enable) } #endif +#if (RTL8723F_SUPPORT) +void +phydm_la_mac_clk_en(void *dm_void, boolean enable) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + u8 val = (enable) ? 1 : 0; + + if (!(dm->support_ic_type & ODM_RTL8723F)) + return; + + odm_set_mac_reg(dm, R_0x1008, BIT(1), val); + /*Set IRAM2/3*/ + odm_set_mac_reg(dm, R_0x1000, 0xc0, 0x0); + odm_set_mac_reg(dm, R_0x1000, 0x3000, 0x3); +} +#endif + #if (RTL8197F_SUPPORT) void phydm_la_stop_dma_8197f(void *dm_void, enum phydm_backup_type opt) @@ -190,6 +207,70 @@ phydm_la_mv_data_2_tx_buffer(void *dm_void) } #endif + +#if(RTL8723F_SUPPORT) +void +phydm_la_mv_data_2_tx_buffer_rtl8723f(void *dm_void, u32 source, u32 dest, u32 length) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct rt_adcsmp *smp = &dm->adcsmp; + struct rt_adcsmp_string *buf = &smp->adc_smp_buf; + //u32 ch0ctrl = (BIT(29)|BIT(31)); + u32 ch0ctrl = BIT(31); + u32 cnt=25000; + + pr_debug("GetTxPktBuf from iMEM\n"); + /*Disable LA mode HW block*/ + odm_set_mac_reg(dm, R_0x7c0, BIT(0), 0x0); + + /* @move LA mode content from IMEM to TxPktBuffer + * Source : OCPBASE_IMEM 0x14040000 + * Destination : OCPBASE_TXBUF 0x18780000 + * Length : 32K + */ + /* + OCPBASE_IMEM = 0x18600000; + OCPBASE_TXBUF = 0x18780000; + GET_HAL_INTERFACE(dm->priv)->init_ddma_handler(dm->priv, + OCPBASE_IMEM, + OCPBASE_TXBUF + + buf->start_pos, + 0x8000); + */ + + // TODO: Replace all register define & bit define + + + //check if ddma ch0 is idle + while(odm_get_mac_reg(dm, R_0x1208 , BIT(31))){ + ODM_delay_ms(10); + cnt--; + if(cnt==0){ + pr_debug("1 InitDDMA88XX polling fail \n"); + return; + } + } + + ch0ctrl |= length & 0x3FFFF; + + //check if chksum continuous + //ch0ctrl |= BIT(24); + + odm_set_mac_reg(dm, R_0x1200, MASKDWORD, source); /*0x1200[31:0]:Source Address*/ + odm_set_mac_reg(dm, R_0x1204, MASKDWORD, dest); /*0x1204[31:0]:Destination Address*/ + odm_set_mac_reg(dm, R_0x1208, MASKDWORD, ch0ctrl); /*0x1208[17:0]:DMA Length*/ +//check if ddma ch0 is idle + while(odm_get_mac_reg(dm, R_0x1208 , BIT(31))){ + ODM_delay_ms(10); + cnt--; + if(cnt==0){ + pr_debug("2 InitDDMA88XX polling fail \n"); + return ; + } + } +} +#endif + #ifdef PHYDM_IC_JGR3_SERIES_SUPPORT void phydm_la_bb_adv_reset_jgr3(void *dm_void) @@ -822,6 +903,15 @@ void phydm_la_get_tx_pkt_buf(void *dm_void) boolean is_round_up = false; u32 addr_8byte = 0; u32 round_up_point = 0; + u32 index = 0; + u32 imem_base; + u32 txbuf_base; + u32 dma_len; + u32 imem_start_addr; + u32 imem_start_addr_offset; + u32 txbuff_start_addr; + u32 tx_buff_addr; + #if (RTL8814B_SUPPORT) boolean recover_success = true; #endif @@ -872,12 +962,76 @@ void phydm_la_get_tx_pkt_buf(void *dm_void) /*@==== [Get LA Patterns in TXFF] ====================================*/ pr_debug("Dump_Start\n"); +#if(RTL8723F_SUPPORT) + imem_base = 0x14040000; + txbuf_base = 0x18780000; + dma_len = 0x8000; + txbuff_start_addr = txbuf_base; + imem_start_addr_offset = addr; + if (is_round_up) { + for(index = 0;index < 4;index++) { + dma_len = 0x8000; + imem_start_addr= imem_base + (imem_start_addr_offset&0x1FFFF); + + if((imem_start_addr_offset + 0x8000) >= buf->end_pos) { + dma_len = buf->end_pos-imem_start_addr_offset; + + phydm_la_mv_data_2_tx_buffer_rtl8723f(dm, imem_start_addr, txbuff_start_addr, dma_len); + + tx_buff_addr = 0; + for (i = 0; i < (dma_len >> 3); i++) { + phydm_la_access_tx_pkt_buf(dm, tx_buff_addr, i << 1); + tx_buff_addr += 8; + } + imem_start_addr = imem_base; + dma_len = 0x8000-dma_len; + phydm_la_mv_data_2_tx_buffer_rtl8723f(dm, imem_start_addr, txbuff_start_addr, dma_len); + + tx_buff_addr = 0; + for (i = 0; i < (dma_len >> 3); i++) { + phydm_la_access_tx_pkt_buf(dm, tx_buff_addr, i << 1); + tx_buff_addr += 8; + } + imem_start_addr_offset = dma_len; + } + else { + dma_len = 0x8000; + phydm_la_mv_data_2_tx_buffer_rtl8723f(dm, imem_start_addr, txbuff_start_addr, dma_len); + + tx_buff_addr = 0; + for (i = 0; i <4096; i++) { + phydm_la_access_tx_pkt_buf(dm, tx_buff_addr, i << 1); + tx_buff_addr += 8; + } + imem_start_addr_offset += 0x8000; + } + } + } else { + for(index = 0; index < 4;index++) { + imem_start_addr = imem_base + (imem_start_addr_offset & 0x1FFFF); + if ((imem_start_addr_offset + 0x8000) > (finish_addr << 3)) + dma_len = (finish_addr << 3) - imem_start_addr_offset; /*0x1208[17:0]:DMA Length*/ + phydm_la_mv_data_2_tx_buffer_rtl8723f(dm,imem_start_addr, txbuff_start_addr, dma_len); + tx_buff_addr = 0; + for (i = 0; i < (dma_len >> 3); i++) { + phydm_la_access_tx_pkt_buf(dm, tx_buff_addr, i << 1); + tx_buff_addr += 8; + } + dma_len = 0x8000; + imem_start_addr_offset += 0x8000; + if (imem_start_addr_offset > (finish_addr << 3)) + break; + } + } +#else + #ifdef PHYDM_COMPILE_LA_STORE_IN_IMEM phydm_la_mv_data_2_tx_buffer(dm); #endif #if (RTL8814B_SUPPORT) - if ((dm->support_ic_type & ODM_RTL8814B) && !recover_success) { + if ((dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) && + !recover_success) { addr = buf->start_pos; smp->smp_number = smp->smp_number_max; } @@ -894,6 +1048,7 @@ void phydm_la_get_tx_pkt_buf(void *dm_void) #if (RTL8197F_SUPPORT) phydm_la_stop_dma_8197f(dm, PHYDM_RESTORE); #endif +#endif pr_debug("Dump_End\n"); } @@ -929,6 +1084,11 @@ void phydm_la_set_mac_iq_dump(void *dm_void, boolean impossible_trig_condi) /*@Enable LA mode HW block*/ odm_set_mac_reg(dm, reg1, BIT(0), 1); + #if (RTL8723F_SUPPORT) + if (dm->support_ic_type & ODM_RTL8723F) + phydm_la_mac_clk_en(dm, true); + #endif + if (smp->la_trig_mode == PHYDM_MAC_TRIG) { smp->la_dump_mode = LA_MAC_DBG_DUMP; /*polling bit for MAC mode*/ @@ -1130,6 +1290,9 @@ void phydm_la_set_mac_trigger_time(void *dm_void, u32 trigger_time_mu_sec) unit = 5; /*unit: 32mu sec*/ else if (trigger_time_mu_sec < 8192) unit = 6; /*unit: 64mu sec*/ + else if (trigger_time_mu_sec < 16384) + if (dm->support_ic_type & ODM_RTL8723F) + unit = 7; /*unit: 128mu sec*/ time_unit_num = (u8)(trigger_time_mu_sec >> unit); @@ -1145,6 +1308,9 @@ void phydm_la_set_mac_trigger_time(void *dm_void, u32 trigger_time_mu_sec) odm_set_mac_reg(dm, R_0x7fc, BIT(2) | BIT(1) | BIT(0), unit); odm_set_mac_reg(dm, R_0x7f0, 0x7f00, (time_unit_num & 0x7f)); #ifdef PHYDM_IC_JGR3_SERIES_SUPPORT + } else if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { + odm_set_mac_reg(dm, R_0x7cc, BIT(20) | BIT(19) | BIT(18), unit); + odm_set_mac_reg(dm, R_0x7c0, 0x7f00, (time_unit_num & 0x7f)); } else if (dm->support_ic_type & ODM_IC_JGR3_SERIES) { odm_set_mac_reg(dm, R_0x7cc, BIT(18) | BIT(17) | BIT(16), unit); odm_set_mac_reg(dm, R_0x7c0, 0x7f00, (time_unit_num & 0x7f)); @@ -1180,6 +1346,7 @@ void phydm_la_set_buff_mode(void *dm_void, enum la_buff_mode mode) end_pos_tmp = 0x40000; break; case ODM_RTL8814B: + case ODM_RTL8814C: buff_size_base = 0x30000; end_pos_tmp = 0x60000; break; @@ -1203,6 +1370,10 @@ void phydm_la_set_buff_mode(void *dm_void, enum la_buff_mode mode) buff_size_base = 0x4000; end_pos_tmp = 0x8000; break; + case ODM_RTL8723F: + buff_size_base = 0x20000; + end_pos_tmp = 0x20000; + break; default: pr_debug("[%s] Warning!", __func__); break; @@ -1210,7 +1381,14 @@ void phydm_la_set_buff_mode(void *dm_void, enum la_buff_mode mode) buf->buffer_size = buff_size_base; - if (dm->support_ic_type & FULL_BUFF_MODE_SUPPORT) { + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { + if (mode == ADCSMP_BUFF_HALF) { + odm_set_mac_reg(dm, R_0x7cc, BIT(21), 0); + } else { + buf->buffer_size = buf->buffer_size << 1; + odm_set_mac_reg(dm, R_0x7cc, BIT(21), 1); + } + } else if (dm->support_ic_type & FULL_BUFF_MODE_SUPPORT) { if (mode == ADCSMP_BUFF_HALF) { odm_set_mac_reg(dm, R_0x7cc, BIT(30), 0); } else { @@ -1235,6 +1413,7 @@ void phydm_la_adc_smp_start(void *dm_void) u8 tmp_u1b = 0; u8 i = 0; u8 polling_bit = 0; + u8 bkp_val = 0; boolean polling_ok = false; boolean impossible_trig_condi = (smp->en_fake_trig) ? true : false; @@ -1248,6 +1427,9 @@ void phydm_la_adc_smp_start(void *dm_void) smp->la_trig_mode, smp->la_dbg_port, smp->la_trigger_edge, smp->la_smp_rate, smp->la_trig_sig_sel, smp->la_dma_type); + if(dm->support_ic_type & ODM_RTL8723F) + bkp_val = (u8)odm_get_mac_reg(dm, R_0x1008, BIT(1)); + phydm_la_set_mac_trigger_time(dm, smp->la_trigger_time); phydm_la_set_bb(dm); phydm_la_set_bb_dbg_port(dm, impossible_trig_condi); @@ -1323,6 +1505,10 @@ void phydm_la_adc_smp_start(void *dm_void) #if (RTL8821C_SUPPORT || RTL8195B_SUPPORT) phydm_la_clk_en(dm, false); #endif + #if (RTL8723F_SUPPORT) + if(dm->support_ic_type & ODM_RTL8723F) + phydm_la_mac_clk_en(dm, (bkp_val == 1) ? true : false); + #endif } else { smp->la_count--; pr_debug("LA Dump more ---------->\n\n\n"); @@ -1563,6 +1749,9 @@ void phydm_la_init(void *dm_void) struct rt_adcsmp *smp = &dm->adcsmp; struct rt_adcsmp_string *buf = &smp->adc_smp_buf; + if (!(dm->support_ic_type & PHYDM_IC_SUPPORT_LA_MODE)) + return; + smp->adc_smp_state = ADCSMP_STATE_IDLE; smp->is_la_print = true; smp->en_fake_trig = false; @@ -1578,6 +1767,9 @@ void adc_smp_de_init(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; + if (!(dm->support_ic_type & PHYDM_IC_SUPPORT_LA_MODE)) + return; + phydm_la_stop(dm); phydm_la_buffer_release(dm); } diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_adc_sampling.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_adc_sampling.h index 1f978098..d0ad1c17 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_adc_sampling.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_adc_sampling.h @@ -28,8 +28,8 @@ #if (PHYDM_LA_MODE_SUPPORT) -/* fix compile time flag*/ -#define DYNAMIC_LA_MODE "4.1" +/* 2020.07.03 [8723F] Fix SD4 compile error*/ +#define DYNAMIC_LA_MODE "4.2" /* @1 ============================================================ * 1 Definition @@ -45,7 +45,7 @@ #define PHYDM_LA_STORE_IN_IMEM_IC (ODM_RTL8197F | ODM_RTL8198F | ODM_RTL8197G) #define FULL_BUFF_MODE_SUPPORT (ODM_RTL8821C | ODM_RTL8195B | ODM_RTL8822C |\ - ODM_RTL8812F | ODM_RTL8814B) + ODM_RTL8812F | ODM_RTL8814B | ODM_RTL8814C) /* @ ============================================================ * enumrate diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_antdiv.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_antdiv.c index e563d3f6..3c2cc583 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_antdiv.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_antdiv.c @@ -37,6 +37,114 @@ ***************************************************** */ #ifdef CONFIG_PHYDM_ANTENNA_DIVERSITY +#if (RTL8710C_SUPPORT == 1) +void odm_s0s1_sw_ant_div_init_8710c(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct sw_antenna_switch *swat_tab = &dm->dm_swat_table; + struct phydm_fat_struct *fat_tab = &dm->dm_fat_table; + + PHYDM_DBG(dm, DBG_ANT_DIV, + "***8710C AntDiv_Init => ant_div_type=[ S0S1_SW_AntDiv]\n"); + /*MAC setting*/ + HAL_WRITE32(SYSTEM_CTRL_BASE, R_0xdc, HAL_READ32(SYSTEM_CTRL_BASE, R_0xdc) | BIT18 | BIT17 | BIT16); + HAL_WRITE32(SYSTEM_CTRL_BASE, R_0xac, HAL_READ32(SYSTEM_CTRL_BASE, R_0xac) | BIT24 | BIT6); + HAL_WRITE32(SYSTEM_CTRL_BASE, R_0x10, 0x307); + HAL_WRITE32(SYSTEM_CTRL_BASE, R_0x08, 0x80000111); + HAL_WRITE32(SYSTEM_CTRL_BASE, R_0x1208, 0x800000); + + /* Status init */ + fat_tab->is_become_linked = false; + swat_tab->try_flag = SWAW_STEP_INIT; + swat_tab->double_chk_flag = 0; + swat_tab->cur_antenna = MAIN_ANT; + swat_tab->pre_ant = MAIN_ANT; + dm->antdiv_counter = CONFIG_ANTDIV_PERIOD; +} + +void odm_trx_hw_ant_div_init_8710c(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + + PHYDM_DBG(dm, DBG_ANT_DIV, + "[8710C] AntDiv_Init => ant_div_type=[CG_TRX_HW_ANTDIV]\n"); + odm_set_mac_reg(dm, R_0x74, BIT(13) | BIT(12), 1); + odm_set_mac_reg(dm, R_0x74, BIT(4), 1); + + /*@BT Coexistence*/ + /*@keep antsel_map when GNT_BT = 1*/ + odm_set_bb_reg(dm, R_0x864, BIT(12), 1); + + /* @Disable hw antsw & fast_train.antsw when GNT_BT=1 */ + odm_set_bb_reg(dm, R_0x874, BIT(23), 1); + odm_set_bb_reg(dm, R_0x930, 0xF00, 8); /* RFE CTRL_2 ANTSEL0 */ + + odm_set_bb_reg(dm, R_0x870, BIT(8), 0); + odm_set_bb_reg(dm, R_0x804, BIT(8), 0); /* r_keep_rfpin */ + + /*@Mapping Table*/ + //odm_set_bb_reg(dm, R_0x864, BIT2|BIT1|BIT0, 2); + odm_set_bb_reg(dm, R_0x944, 0xFFFF, 0xffff); + odm_set_bb_reg(dm, R_0x914, MASKBYTE0, 0); + odm_set_bb_reg(dm, R_0x914, MASKBYTE1, 1); + /*@antenna training */ + odm_set_bb_reg(dm, R_0xe08, BIT(16), 0); + + //need to check!!!!!!!!!! + /* Set WLBB_SEL_RF_ON 1 if RXFIR_PWDB > 0xCcc[3:0] */ + odm_set_bb_reg(dm, R_0xccc, BIT(12), 0); + /* @Low-to-High threshold for WLBB_SEL_RF_ON when OFDM enable */ + odm_set_bb_reg(dm, R_0xccc, 0x0F, 0x01); + /* @High-to-Low threshold for WLBB_SEL_RF_ON when OFDM enable */ + odm_set_bb_reg(dm, R_0xccc, 0xF0, 0x0); + /* @b Low-to-High threshold for WLBB_SEL_RF_ON when OFDM disable (CCK)*/ + odm_set_bb_reg(dm, R_0xabc, 0xFF, 0x06); + /* @High-to-Low threshold for WLBB_SEL_RF_ON when OFDM disable (CCK) */ + odm_set_bb_reg(dm, R_0xabc, 0xFF00, 0x00); + + /*OFDM HW AntDiv Parameters*/ + odm_set_bb_reg(dm, R_0xca4, 0x7FF, 0x80); + odm_set_bb_reg(dm, R_0xca4, 0x7FF000, 0x00); + odm_set_bb_reg(dm, R_0xc5c, BIT(20) | BIT(19) | BIT(18), 0x04); + + /*@CCK HW AntDiv Parameters*/ + odm_set_bb_reg(dm, R_0xa74, BIT(7), 1); + odm_set_bb_reg(dm, R_0xa0c, BIT(4), 1); + odm_set_bb_reg(dm, R_0xaa8, BIT(8), 0); + + odm_set_bb_reg(dm, R_0xa0c, 0x0F, 0xf); + odm_set_bb_reg(dm, R_0xa14, 0x1F, 0xf); + odm_set_bb_reg(dm, R_0xa10, BIT(13), 0x1); + odm_set_bb_reg(dm, R_0xa74, BIT(8), 0x0); + odm_set_bb_reg(dm, R_0xb34, BIT(30), 0x1); +} +void odm_update_rx_idle_ant_8710c(void *dm_void, u8 ant, u32 default_ant, + u32 optional_ant) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_fat_struct *fat_tab = &dm->dm_fat_table; + void *adapter = dm->adapter; + + PHYDM_DBG(dm, DBG_ANT_DIV, + "***odm_update_rx_idle_ant_8710c!!!\n"); + if (dm->ant_div_type == S0S1_SW_ANTDIV) { + if (default_ant == 0x0) + HAL_WRITE32(SYSTEM_CTRL_BASE, R_0x1210,0x800000); + else + HAL_WRITE32(SYSTEM_CTRL_BASE, R_0x1214,0x800000); + + fat_tab->rx_idle_ant = ant; + }else if (dm->ant_div_type == CG_TRX_HW_ANTDIV) { + odm_set_bb_reg(dm, R_0x864, BIT(5) | BIT(4) | BIT(3), default_ant); + /*@Default RX*/ + odm_set_bb_reg(dm, R_0x864, BIT(8) | BIT(7) | BIT(6), optional_ant); + /*@Optional RX*/ + odm_set_bb_reg(dm, R_0x860, BIT(14) | BIT(13) | BIT(12), default_ant); + /*@Default TX*/ + fat_tab->rx_idle_ant = ant; + } +} +#endif #if (RTL8721D_SUPPORT == 1) @@ -120,6 +228,15 @@ void odm_trx_hw_ant_div_init_8721d(void *dm_void) Pinmux_Config(_PB_29, PINMUX_FUNCTION_RFE); break; } + case ANTDIV_GPIO_PB1PB2PB26:{ + PAD_CMD(_PB_1, ENABLE); + Pinmux_Config(_PB_1, PINMUX_FUNCTION_RFE); + PAD_CMD(_PB_2, ENABLE); + Pinmux_Config(_PB_2, PINMUX_FUNCTION_RFE); + PAD_CMD(_PB_26, ENABLE); + Pinmux_Config(_PB_26, PINMUX_FUNCTION_RFE); + break; + } default: { } } @@ -142,6 +259,13 @@ void odm_trx_hw_ant_div_init_8721d(void *dm_void) odm_set_bb_reg(dm, R_0x92c, BIT(3) | BIT(2), 2); odm_set_bb_reg(dm, R_0x944, 0x0000000C, 0x3); } + else if(dm->antdiv_gpio == ANTDIV_GPIO_PB1PB2PB26){ + /* 3 antenna diversity for AmebaD only */ + odm_set_bb_reg(dm, R_0x930, 0xF, 8); + odm_set_bb_reg(dm, R_0x930, 0xF0, 9); + odm_set_bb_reg(dm, R_0x930, 0xF00,0xa); /* set the RFE control table to select antenna*/ + odm_set_bb_reg(dm, R_0x944, 0x00000007, 0x7); + } u32 sysreg208 = HAL_READ32(SYSTEM_CTRL_BASE_LP, REG_LP_FUNC_EN0); @@ -177,6 +301,11 @@ void odm_trx_hw_ant_div_init_8721d(void *dm_void) /*@Mapping Table*/ odm_set_bb_reg(dm, R_0x914, MASKBYTE0, 0); odm_set_bb_reg(dm, R_0x914, MASKBYTE1, 1); + if (dm->antdiv_gpio == ANTDIV_GPIO_PB1PB2PB26) { + odm_set_bb_reg(dm, R_0x914, 0x00000F, 0x1); + odm_set_bb_reg(dm, R_0x914, 0x000F00, 0x2); + odm_set_bb_reg(dm, R_0x914, 0x0F0000, 0x4); + } /* odm_set_bb_reg(dm, R_0x864, BIT5|BIT4|BIT3, 0); */ /* odm_set_bb_reg(dm, R_0x864, BIT8|BIT7|BIT6, 1); */ @@ -223,6 +352,9 @@ void odm_stop_antenna_switch_dm(void *dm_void) struct phydm_fat_struct *fat_tab = &dm->dm_fat_table; /* @disable ODM antenna diversity */ dm->support_ability &= ~ODM_BB_ANT_DIV; +#if (RTL8710C_SUPPORT == 1) + dm->support_ability |= ODM_BB_ANT_DIV; +#endif if (fat_tab->div_path_type == ANT_PATH_A) odm_ant_div_on_off(dm, ANTDIV_OFF, ANT_PATH_A); else if (fat_tab->div_path_type == ANT_PATH_B) @@ -346,7 +478,7 @@ void phydm_ac_on_off(void *dm_void, u8 swch, u8 path) odm_set_bb_reg(dm, R_0x800, BIT(25), swch); odm_set_bb_reg(dm, R_0xa00, BIT(15), swch); /* @CCK AntDiv function block enable */ - } else if (dm->support_ic_type == ODM_RTL8821C) { + } else { PHYDM_DBG(dm, DBG_ANT_DIV, "(Turn %s) CCK HW-AntDiv\n", (swch == ANTDIV_ON) ? "ON" : "OFF"); odm_set_bb_reg(dm, R_0x800, BIT(25), swch); @@ -363,8 +495,16 @@ void phydm_jgr3_on_off(void *dm_void, u8 swch, u8 path) odm_set_bb_reg(dm, R_0x8a0, BIT(17), swch); /* OFDM AntDiv function block enable */ + if (dm->support_ic_type & ODM_RTL8723F) { + odm_set_bb_reg(dm, R_0x1a48, BIT(16), swch); + /* @CCK AntDiv function block enable */ + } + else{ odm_set_bb_reg(dm, R_0xa00, BIT(15), swch); /* @CCK AntDiv function block enable */ + } + PHYDM_DBG(dm, DBG_ANT_DIV, + "[8723F] AntDiv_on\n"); } void odm_ant_div_on_off(void *dm_void, u8 swch, u8 path) @@ -473,6 +613,12 @@ void phydm_keep_rx_ack_ant_by_tx_ant_time(void *dm_void, u32 time) odm_set_bb_reg(dm, R_0xe20, 0xf00000, time); else if (dm->support_ic_type & ODM_AC_ANTDIV_SUPPORT) odm_set_bb_reg(dm, R_0x818, 0xf00000, time); + if (dm->support_ic_type & ODM_RTL8723F) { + odm_set_bb_reg(dm, R_0x1c8c, 0xf00, time); + /* keep antenna index after tx */ + } + + } void phydm_update_rx_idle_ac(void *dm_void, u8 ant, u32 default_ant, @@ -536,6 +682,13 @@ void phydm_update_rx_idle_n(void *dm_void, u8 ant, u32 default_ant, odm_update_rx_idle_ant_8721d(dm, ant, default_ant, optional_ant); #endif + +#if (RTL8710C_SUPPORT == 1) + } else if (dm->support_ic_type == ODM_RTL8710C) { + odm_update_rx_idle_ant_8710c(dm, ant, default_ant, + optional_ant); +#endif + } else { /*@8188E & 8188F*/ /*@ if (dm->support_ic_type == ODM_RTL8723D) {*/ @@ -573,7 +726,13 @@ void odm_update_rx_idle_ant(void *dm_void, u8 ant) struct dm_struct *dm = (struct dm_struct *)dm_void; struct phydm_fat_struct *fat_tab = &dm->dm_fat_table; u32 default_ant, optional_ant, value32, default_tx_ant; - + if (dm->support_ic_type & ODM_JGR3_ANTDIV_SUPPORT) { + PHYDM_DBG(dm, DBG_ANT_DIV,"JGR3 HW-AntDiv block\n"); + } + else{ + PHYDM_DBG(dm, DBG_ANT_DIV,"not suppoty JGR3 HW-AntDiv block\n"); + PHYDM_DBG(dm, DBG_ANT_DIV,"dm->support_ic_type=%d\n",dm->support_ic_type); +} if (fat_tab->rx_idle_ant != ant) { PHYDM_DBG(dm, DBG_ANT_DIV, "[ Update Rx-Idle-ant ] rx_idle_ant =%s\n", @@ -608,7 +767,7 @@ void odm_update_rx_idle_ant(void *dm_void, u8 ant) } /*PathA Resp Tx*/ if (dm->support_ic_type & (ODM_RTL8821C | ODM_RTL8822B | - ODM_RTL8814A)) + ODM_RTL8814A | ODM_RTL8195B)) odm_set_mac_reg(dm, R_0x6d8, 0x7, default_tx_ant); else if (dm->support_ic_type == ODM_RTL8188E) odm_set_mac_reg(dm, R_0x6d8, 0xc0, default_tx_ant); @@ -625,6 +784,43 @@ void odm_update_rx_idle_ant(void *dm_void, u8 ant) } } +#if (RTL8721D_SUPPORT) +void odm_update_rx_idle_ant_sp3t(void *dm_void, u8 ant) /* added by Jiao Qi on May.25,2020, for AmebaD SP3T only */ +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_fat_struct *fat_tab = &dm->dm_fat_table; + u32 default_ant, optional_ant, value32, default_tx_ant; + + if (!(dm->support_ic_type & ODM_RTL8723B)) + fat_tab->rx_idle_ant = ant; + + default_ant = fat_tab->ant_idx_vec[0]-1; + optional_ant = fat_tab->ant_idx_vec[1]-1; + + if(fat_tab->b_fix_tx_ant != NO_FIX_TX_ANT) + default_tx_ant = (fat_tab->b_fix_tx_ant == + FIX_TX_AT_MAIN) ? 0 : 1; + else + default_tx_ant = default_ant; + + odm_set_bb_reg(dm, R_0x864, BIT(5) | BIT(4) | BIT(3), default_ant); + /*@Default RX*/ + odm_set_bb_reg(dm, R_0x864, BIT(8) | BIT(7) | BIT(6), optional_ant); + /*@Optional RX*/ + odm_set_bb_reg(dm, R_0x860, BIT(14) | BIT(13) | BIT(12), default_ant); + /*@Default TX*/ + + /*PathA Resp Tx*/ + if (dm->support_ic_type & (ODM_RTL8821C | ODM_RTL8822B | + ODM_RTL8814A)) + odm_set_mac_reg(dm, R_0x6d8, 0x7, default_tx_ant); + else if (dm->support_ic_type == ODM_RTL8188E) + odm_set_mac_reg(dm, R_0x6d8, 0xc0, default_tx_ant); + else + odm_set_mac_reg(dm, R_0x6d8, 0x700, default_tx_ant); + +} +#endif void phydm_update_rx_idle_ant_pathb(void *dm_void, u8 ant) { struct dm_struct *dm = (struct dm_struct *)dm_void; @@ -671,6 +867,9 @@ void phydm_set_antdiv_val(void *dm_void, u32 *val_buf, u8 val_len) { struct dm_struct *dm = (struct dm_struct *)dm_void; + if (!(dm->support_ability & ODM_BB_ANT_DIV)) + return; + if (val_len != 1) { PHYDM_DBG(dm, ODM_COMP_API, "[Error][antdiv]Need val_len=1\n"); return; @@ -697,7 +896,16 @@ void odm_update_tx_ant(void *dm_void, u8 ant, u32 mac_id) else tx_ant = ANT2_2G; } - +#if (RTL8721D_SUPPORT) + if (dm->antdiv_gpio != ANTDIV_GPIO_PB1PB2PB26) { + if (ant == MAIN_ANT) + tx_ant = ANT1_2G; + else + tx_ant = ANT2_2G; + } + else + tx_ant = fat_tab->ant_idx_vec[0]-1; +#endif fat_tab->antsel_a[mac_id] = tx_ant & BIT(0); fat_tab->antsel_b[mac_id] = (tx_ant & BIT(1)) >> 1; fat_tab->antsel_c[mac_id] = (tx_ant & BIT(2)) >> 2; @@ -1703,6 +1911,53 @@ void phydm_rx_hw_ant_div_init_97g(void *dm_void) } #endif //#if (RTL8197F_SUPPORT == 1) +#if (RTL8723F_SUPPORT == 1) +void phydm_rx_hw_ant_div_init_23f(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_fat_struct *fat_tab = &dm->dm_fat_table; + + PHYDM_DBG(dm, DBG_ANT_DIV, "[%s]=====>\n", __func__); + /* @3 --RFE pin setting--------- */ + /* @[MAC] */ + /* @gpioA_11,gpioA_12*/ + odm_set_mac_reg(dm, R_0x10d8, 0xFF000000, 0x16); + odm_set_mac_reg(dm, R_0x10dc, 0xFF, 0x16); + /* @[BB] */ + odm_set_bb_reg(dm, R_0x1c94, BIT(2) | BIT(3), 0x3); /* output enable */ + odm_set_bb_reg(dm, R_0x1ca0, BIT(2) | BIT(3), 0x0); + odm_set_bb_reg(dm, R_0x1c98, BIT(4) | BIT(5), 0x0); + /* r_rfe_path_sel_ (RFE_CTRL_2) */ + odm_set_bb_reg(dm, R_0x1c98, BIT(6) | BIT(7), 0x0); + /* r_rfe_path_sel_ (RFE_CTRL_3) */ + odm_set_bb_reg(dm, R_0x1838, BIT(28), 0); /* RFE_buffer_en */ + odm_set_bb_reg(dm, R_0x183c, BIT(2), 1); /* rfe_inv (RFE_CTRL_2) */ + odm_set_bb_reg(dm, R_0x183c, BIT(3), 0); /* rfe_inv (RFE_CTRL_3) */ + odm_set_bb_reg(dm, R_0x1840, 0xF00, 0x8); /* path-A, RFE_CTRL_2 */ + odm_set_bb_reg(dm, R_0x1840, 0xF000, 0x8); /* path-A, RFE_CTRL_3 */ + /* @3 ------------------------- */ + + /* Pin Settings */ + odm_set_bb_reg(dm, R_0x1884, BIT(23), 0); + odm_set_bb_reg(dm, R_0x1884, BIT(25), 0); + /* reg1844[23]=1'b0 *//*"CG switching" is controlled by HWs*/ + /* reg1844[25]=1'b0 *//*"CG switching" is controlled by HWs*/ + odm_set_bb_reg(dm, R_0x1884, BIT(16), 1); + /* reg1844[16]=1'b1 *//*"antsel" is controlled by HWs*/ + + /* @Mapping table */ + odm_set_bb_reg(dm, R_0x1870, 0xFFFF, 0x0100); + /* @antenna mapping table */ + + /* OFDM Settings */ + odm_set_bb_reg(dm, R_0x1938, 0xFFE0, 0xA0); /* thershold */ + odm_set_bb_reg(dm, R_0x1938, 0x7FF0000, 0x0); /* @bias */ +#ifdef ODM_EVM_ENHANCE_ANTDIV + phydm_evm_sw_antdiv_init(dm); +#endif +} +#endif //#if (RTL8723F_SUPPORT == 1) + #if (RTL8723D_SUPPORT == 1) void odm_trx_hw_ant_div_init_8723d(void *dm_void) { @@ -2312,6 +2567,55 @@ void phydm_s0s1_sw_ant_div_init_8821c(void *dm_void) } #endif /* @#if (RTL8821C_SUPPORT == 1) */ +#if (RTL8195B_SUPPORT == 1) +void odm_trx_hw_ant_div_init_8195b(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + + PHYDM_DBG(dm, DBG_ANT_DIV, "[%s]=====>\n", __func__); + + odm_set_bb_reg(dm, R_0xcb8, BIT(16), 0); + /*RFE control pin 0,1*/ + odm_set_bb_reg(dm, R_0xcb0, 0xF, 8); /* @DPDT_P = ANTSEL[0] */ + odm_set_bb_reg(dm, R_0xcb0, 0xF0, 8); /* @DPDT_N = ANTSEL[0] */ + odm_set_bb_reg(dm, R_0xcb4, BIT(20), 0); /* @DPDT_P non-inverse */ + odm_set_bb_reg(dm, R_0xcb4, BIT(21), 1); /* @DPDT_N inverse */ + + /* @Mapping Table */ + odm_set_bb_reg(dm, R_0xca4, MASKBYTE0, 0); + odm_set_bb_reg(dm, R_0xca4, MASKBYTE1, 1); + + /* OFDM HW AntDiv Parameters */ + odm_set_bb_reg(dm, R_0x8d4, 0x7FF, 0xA0); /* thershold */ + odm_set_bb_reg(dm, R_0x8d4, 0x7FF000, 0x10); /* @bias */ + + /* @CCK HW AntDiv Parameters */ + odm_set_bb_reg(dm, R_0xa74, BIT(7), 1); + /* patch for clk from 88M to 80M */ + odm_set_bb_reg(dm, R_0xa0c, BIT(4), 1); /* @do 64 samples */ + + odm_set_bb_reg(dm, R_0x800, BIT(25), 0); + /* @ANTSEL_CCK sent to the smart_antenna circuit */ + odm_set_bb_reg(dm, R_0xa00, BIT(15), 0); + /* @CCK AntDiv function block enable */ + + /* @BT Coexistence */ + odm_set_bb_reg(dm, R_0xcac, BIT(9), 1); + /* @keep antsel_map when GNT_BT = 1 */ + odm_set_bb_reg(dm, R_0x804, BIT(4), 1); + /* @Disable hw antsw & fast_train.antsw when GNT_BT=1 */ + + /* Timming issue */ + odm_set_bb_reg(dm, R_0x818, BIT(23) | BIT(22) | BIT(21) | BIT(20), 0); + /*@keep antidx after tx for ACK ( unit x 3.2 mu sec)*/ + odm_set_bb_reg(dm, R_0x8cc, BIT(20) | BIT(19) | BIT(18), 3); + /* settling time of antdiv by RF LNA = 100ns */ + + /* response TX ant by RX ant */ + odm_set_mac_reg(dm, R_0x668, BIT(3), 1); +} +#endif /* @#if (RTL8195B_SUPPORT == 1) */ + #if (RTL8881A_SUPPORT == 1) void odm_trx_hw_ant_div_init_8881a(void *dm_void) { @@ -3210,7 +3514,7 @@ void odm_hw_ant_div(void *dm_void) target_ant = (mian_cnt == aux_cnt) ? fat_tab->rx_idle_ant : ((mian_cnt >= aux_cnt) ? - MAIN_ANT : AUX_ANT); + fat_tab->ant_idx_vec[0]:fat_tab->ant_idx_vec[1]); /*Use counter number for OFDM*/ } else { /*@CCK only case*/ @@ -3223,9 +3527,28 @@ void odm_hw_ant_div(void *dm_void) target_ant = (main_rssi == aux_rssi) ? fat_tab->rx_idle_ant : ((main_rssi >= aux_rssi) ? - MAIN_ANT : AUX_ANT); + fat_tab->ant_idx_vec[0]:fat_tab->ant_idx_vec[1]); /*Use RSSI for CCK only case*/ } +#if (RTL8721D_SUPPORT) + if(dm->antdiv_gpio == ANTDIV_GPIO_PB1PB2PB26) { /* added by Jiao Qi on May.25,2020, only for 3 antenna diversity */ + u8 tmp; + if(target_ant == fat_tab->ant_idx_vec[0]){/* switch the second & third ant index */ + tmp = fat_tab->ant_idx_vec[1]; + fat_tab->ant_idx_vec[1] = fat_tab->ant_idx_vec[2]; + fat_tab->ant_idx_vec[2] = tmp; + }else{ + /* switch the first & second ant index */ + tmp = fat_tab->ant_idx_vec[0]; + fat_tab->ant_idx_vec[0] = fat_tab->ant_idx_vec[1]; + fat_tab->ant_idx_vec[1] = tmp; + /* switch the second & third ant index */ + tmp = fat_tab->ant_idx_vec[1]; + fat_tab->ant_idx_vec[1] = fat_tab->ant_idx_vec[2]; + fat_tab->ant_idx_vec[2] = tmp; + } + } +#endif PHYDM_DBG(dm, DBG_ANT_DIV, "*** Client[ %d ] : Main_Cnt = (( %d )) , CCK_Main_Cnt = (( %d )) , main_rssi= (( %d ))\n", @@ -3365,7 +3688,13 @@ void odm_hw_ant_div(void *dm_void) #endif odm_update_rx_idle_ant(dm, rx_idle_ant); #else - +#if (RTL8721D_SUPPORT) +if (dm->antdiv_gpio == ANTDIV_GPIO_PB1PB2PB26) { + if(odm_get_bb_reg(dm,R_0xc50,0x80) || odm_get_bb_reg(dm, R_0xa00, 0x8000)) + odm_update_rx_idle_ant_sp3t(dm, rx_idle_ant); +} +else +#endif odm_update_rx_idle_ant(dm, rx_idle_ant); #endif /* @#if(DM_ODM_SUPPORT_TYPE == ODM_AP) */ @@ -3529,7 +3858,7 @@ void phydm_sw_antdiv_decision(void *dm_void) (fat_tab->main_sum[i] / main_cnt) : 0; aux_rssi = (aux_cnt != 0) ? (fat_tab->aux_sum[i] / aux_cnt) : 0; - if (dm->support_ic_type == ODM_RTL8723D) { + if (dm->support_ic_type == ODM_RTL8723D || dm->support_ic_type == ODM_RTL8710C) { cond_23d_main = (aux_cnt > main_cnt) && ((main_rssi - aux_rssi < 5) || (aux_rssi > main_rssi)); @@ -3799,6 +4128,24 @@ void odm_s0s1_sw_ant_div(void *dm_void, u8 step) PHYDM_DBG(dm, DBG_ANT_DIV, "8723D: First link! Force antenna to %s\n", (value32 == 0x0 ? "MAIN" : "AUX")); +#endif + } + if (dm->support_ic_type == ODM_RTL8710C) { +#if (RTL8710C_SUPPORT == 1) + value32 = (HAL_READ32(SYSTEM_CTRL_BASE, R_0x121c) & 0x800000); + if (value32 == 0x0) + odm_update_rx_idle_ant_8710c(dm, + MAIN_ANT, + ANT1_2G, + ANT2_2G); + else if (value32 == 0x1) + odm_update_rx_idle_ant_8710c(dm, + AUX_ANT, + ANT2_2G, + ANT1_2G); + PHYDM_DBG(dm, DBG_ANT_DIV, + "8710C: First link! Force antenna to %s\n", + (value32 == 0x0 ? "MAIN" : "AUX")); #endif } fat_tab->is_become_linked = dm->is_linked; @@ -3921,7 +4268,8 @@ void odm_s0s1_sw_ant_div(void *dm_void, u8 step) fat_tab->rx_idle_ant = next_ant; - if (dm->support_ic_type == ODM_RTL8723D) { + if (dm->support_ic_type == ODM_RTL8723D || dm->support_ic_type == ODM_RTL8710C) { + if (fat_tab->rx_idle_ant == MAIN_ANT) { fat_tab->main_sum[0] = 0; fat_tab->main_cnt[0] = 0; @@ -4024,6 +4372,14 @@ void odm_sw_antdiv_callback(void *function_context) #endif } +#elif (DM_ODM_SUPPORT_TYPE == ODM_IOT) +void odm_sw_antdiv_callback(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + + PHYDM_DBG(dm, DBG_ANT_DIV, "******AntDiv_Callback******\n"); + odm_s0s1_sw_ant_div(dm, SWAW_STEP_DETERMINE); +} #endif void odm_s0s1_sw_ant_div_by_ctrl_frame(void *dm_void, u8 step) @@ -4419,7 +4775,7 @@ void odm_ant_div_init(void *dm_void) struct dm_struct *dm = (struct dm_struct *)dm_void; struct phydm_fat_struct *fat_tab = &dm->dm_fat_table; struct sw_antenna_switch *swat_tab = &dm->dm_swat_table; - + u8 i; if (!(dm->support_ability & ODM_BB_ANT_DIV)) { PHYDM_DBG(dm, DBG_ANT_DIV, "[Return!!!] Not Support Antenna Diversity Function\n"); @@ -4450,6 +4806,10 @@ void odm_ant_div_init(void *dm_void) fat_tab->is_become_linked = false; fat_tab->ant_div_on_off = 0xff; + for(i=0;i<3;i++) + fat_tab->ant_idx_vec[i]=i+1; /* initialize ant_idx_vec for SP3T */ + + /* @3 - AP - */ #if (DM_ODM_SUPPORT_TYPE == ODM_AP) @@ -4463,6 +4823,8 @@ void odm_ant_div_init(void *dm_void) #elif (DM_ODM_SUPPORT_TYPE == ODM_WIN) swat_tab->ant_5g = MAIN_ANT; swat_tab->ant_2g = MAIN_ANT; +//#elif (DM_ODM_SUPPORT_TYPE == ODM_IOT) +// swat_tab->ant_2g = MAIN_ANT; #endif /* @2 [---Set MAIN_ANT as default antenna if Auto-ant enable---] */ @@ -4476,7 +4838,30 @@ void odm_ant_div_init(void *dm_void) dm->ant_type = ODM_AUTO_ANT; fat_tab->rx_idle_ant = 0xff; - /*to make RX-idle-antenna will be updated absolutly*/ + + if (dm->support_ic_type == ODM_RTL8710C) { + /* Soft ware*/ +#if (RTL8710C_SUPPORT == 1) + if (dm->ant_div_type == S0S1_SW_ANTDIV) { + HAL_WRITE32(SYSTEM_CTRL_BASE, R_0xdc, HAL_READ32(SYSTEM_CTRL_BASE, R_0xdc) | BIT18 | BIT17 | BIT16); + HAL_WRITE32(SYSTEM_CTRL_BASE, R_0xac, HAL_READ32(SYSTEM_CTRL_BASE, R_0xac) | BIT24 | BIT6); + HAL_WRITE32(SYSTEM_CTRL_BASE, R_0x10, 0x307);// 1: enable gpio db32 clock , 1: enable gpio pclock + HAL_WRITE32(SYSTEM_CTRL_BASE, R_0x08, 0x80000111); + HAL_WRITE32(SYSTEM_CTRL_BASE, R_0x1208, 0x800000); + } else if (dm->ant_div_type == CG_TRX_HW_ANTDIV) { + HAL_WRITE32(SYSTEM_CTRL_BASE, R_0xdc, HAL_READ32(SYSTEM_CTRL_BASE, R_0xdc) | BIT18 | BIT17); + HAL_WRITE32(SYSTEM_CTRL_BASE, R_0xdc, HAL_READ32(SYSTEM_CTRL_BASE, R_0xdc) & (~BIT16)); + HAL_WRITE32(SYSTEM_CTRL_BASE, R_0xac, HAL_READ32(SYSTEM_CTRL_BASE, R_0xac) | BIT24 | BIT6); + } else { + PHYDM_DBG(dm, DBG_ANT_DIV, + "[Return!!!] 8710C Not Supprrt This AntDiv type\n"); + dm->support_ability &= ~(ODM_BB_ANT_DIV); + return; + } +#endif + } + + /*to make RX-idle-antenna will be updated absolutly*/ odm_update_rx_idle_ant(dm, MAIN_ANT); phydm_keep_rx_ack_ant_by_tx_ant_time(dm, 0); /* Timming issue: keep Rx ant after tx for ACK(5 x 3.2 mu = 16mu sec)*/ @@ -4597,6 +4982,20 @@ void odm_ant_div_init(void *dm_void) phydm_rx_hw_ant_div_init_97g(dm); } #endif + +#if (RTL8723F_SUPPORT == 1) + else if (dm->support_ic_type == ODM_RTL8723F) { + dm->ant_div_type = CG_TRX_HW_ANTDIV; + + if (dm->ant_div_type != CG_TRX_HW_ANTDIV) { + PHYDM_DBG(dm, DBG_ANT_DIV, + "[Return!!!] 8723F Not Supprrt This AntDiv type\n"); + dm->support_ability &= ~(ODM_BB_ANT_DIV); + return; + } + phydm_rx_hw_ant_div_init_23f(dm); + } +#endif /* @2 [--8723B---] */ #if (RTL8723B_SUPPORT == 1) else if (dm->support_ic_type == ODM_RTL8723B) { @@ -4644,6 +5043,25 @@ void odm_ant_div_init(void *dm_void) } } #endif +#if (RTL8710C_SUPPORT == 1) + else if (dm->support_ic_type == ODM_RTL8710C) { + if (dm->ant_div_type == CG_TRX_HW_ANTDIV) + odm_trx_hw_ant_div_init_8710c(dm); + else if(dm->ant_div_type == S0S1_SW_ANTDIV){ + if (fat_tab->p_default_s0_s1 == NULL){ + fat_tab->default_s0_s1 = 1; + fat_tab->p_default_s0_s1 = &fat_tab->default_s0_s1; + } + PHYDM_DBG(dm, DBG_ANT_DIV, "default_s0_s1 = %d\n", + *fat_tab->p_default_s0_s1); + if (*fat_tab->p_default_s0_s1 == true) + odm_update_rx_idle_ant(dm, MAIN_ANT); + else + odm_update_rx_idle_ant(dm, AUX_ANT); + odm_s0s1_sw_ant_div_init_8710c(dm); + } + } +#endif #if (RTL8721D_SUPPORT == 1) else if (dm->support_ic_type == ODM_RTL8721D) { /* @dm->ant_div_type = CG_TRX_HW_ANTDIV; */ @@ -4706,6 +5124,20 @@ void odm_ant_div_init(void *dm_void) } #endif +/* @2 [--8195B---] */ +#if (RTL8195B_SUPPORT == 1) + else if (dm->support_ic_type == ODM_RTL8195B) { + dm->ant_div_type = CG_TRX_HW_ANTDIV; + if (dm->ant_div_type != CG_TRX_HW_ANTDIV) { + PHYDM_DBG(dm, DBG_ANT_DIV, + "[Return!!!] 8821C Not Supprrt This AntDiv type\n"); + dm->support_ability &= ~(ODM_BB_ANT_DIV); + return; + } + odm_trx_hw_ant_div_init_8195b(dm); + } +#endif + /* @2 [--8881A---] */ #if (RTL8881A_SUPPORT == 1) else if (dm->support_ic_type == ODM_RTL8881A) { @@ -4785,6 +5217,9 @@ void odm_ant_div(void *dm_void) struct smt_ant_honbo *sat_tab = &dm->dm_sat_table; #endif + if (!(dm->support_ability & ODM_BB_ANT_DIV)) + return; + #ifdef ODM_EVM_ENHANCE_ANTDIV if (dm->is_linked) { PHYDM_DBG(dm, DBG_ANT_DIV, @@ -5010,6 +5445,14 @@ void odm_ant_div(void *dm_void) } #endif +/*@ [--8723F--] */ +#if (RTL8723F_SUPPORT == 1) + else if (dm->support_ic_type == ODM_RTL8723F) { + if (dm->ant_div_type == CG_TRX_HW_ANTDIV) + odm_hw_ant_div(dm); + } +#endif + #if (RTL8723B_SUPPORT == 1) /*@ [--8723B---] */ else if (dm->support_ic_type == ODM_RTL8723B) { @@ -5060,6 +5503,24 @@ void odm_ant_div(void *dm_void) } } #endif +#if (RTL8710C_SUPPORT == 1) + else if (dm->support_ic_type == ODM_RTL8710C) { + if (dm->ant_div_type == S0S1_SW_ANTDIV) { + #ifdef CONFIG_S0S1_SW_ANTENNA_DIVERSITY + if (dm->antdiv_counter == CONFIG_ANTDIV_PERIOD) { + odm_s0s1_sw_ant_div(dm, SWAW_STEP_PEEK); + dm->antdiv_counter--; + } else { + dm->antdiv_counter--; + } + if (dm->antdiv_counter == 0) + dm->antdiv_counter = CONFIG_ANTDIV_PERIOD; + #endif + } else if (dm->ant_div_type == CG_TRX_HW_ANTDIV) { + odm_hw_ant_div(dm); + } + } +#endif /*@ [--8821A--] */ #if (RTL8821A_SUPPORT == 1) else if (dm->support_ic_type == ODM_RTL8821) { @@ -5145,6 +5606,15 @@ void odm_ant_div(void *dm_void) } #endif +/* @ [--8195B--] */ +#if (RTL8195B_SUPPORT == 1) + else if (dm->support_ic_type == ODM_RTL8195B) { + if (dm->ant_div_type == CG_TRX_HW_ANTDIV) { + odm_hw_ant_div(dm); + } + } +#endif + /* @ [--8881A--] */ #if (RTL8881A_SUPPORT == 1) else if (dm->support_ic_type == ODM_RTL8881A) @@ -5197,7 +5667,7 @@ void odm_antsel_statistics(void *dm_void, void *phy_info_void, if (method == RSSI_METHOD) { if (is_cck_rate) { - if (antsel_tr_mux == ANT1_2G) { + if (antsel_tr_mux == fat_tab->ant_idx_vec[0]-1) { /*to prevent u16 overflow, max(RSSI)=100, 65435+100 = 65535 (u16)*/ if (fat_tab->main_sum_cck[mac_id] > 65435) return; @@ -5214,7 +5684,7 @@ void odm_antsel_statistics(void *dm_void, void *phy_info_void, } else { /*ofdm rate*/ - if (antsel_tr_mux == ANT1_2G) { + if (antsel_tr_mux == fat_tab->ant_idx_vec[0]-1) { if (fat_tab->main_sum[mac_id] > 65435) return; @@ -5314,7 +5784,7 @@ void odm_process_rssi_normal(void *dm_void, void *phy_info_void, if (dm->ant_div_type == S0S1_SW_ANTDIV) { if (pktinfo->is_cck_rate || - dm->support_ic_type == ODM_RTL8188F) { + dm->support_ic_type == ODM_RTL8188F || dm->support_ic_type == ODM_RTL8710C) { b_main = (fat_tab->rx_idle_ant == MAIN_ANT); fat_tab->antsel_rx_keep_0 = b_main ? ANT1_2G : ANT2_2G; @@ -5615,6 +6085,10 @@ void odm_set_tx_ant_by_tx_info(void *dm_void, u8 *desc, u8 mac_id) * mac_id, fat_tab->antsel_c[mac_id], fat_tab->antsel_b[mac_id], * fat_tab->antsel_a[mac_id]); */ +#endif + } else if (dm->support_ic_type == ODM_RTL8195B) { +#if (RTL8195B_SUPPORT == 1) + SET_TX_DESC_ANTSEL_A_8195B(desc, fat_tab->antsel_a[mac_id]); #endif } else if (dm->support_ic_type == ODM_RTL8822B) { #if (RTL8822B_SUPPORT == 1) @@ -5761,6 +6235,12 @@ void odm_ant_div_config(void *dm_void) if (dm->support_ic_type == ODM_RTL8721D) dm->ant_div_type = CG_TRX_HW_ANTDIV; + if (dm->support_ic_type == ODM_RTL8710C){ + if(dm->cut_version > ODM_CUT_C) + dm->ant_div_type = CG_TRX_HW_ANTDIV; + else + dm->ant_div_type = S0S1_SW_ANTDIV; + } #elif (DM_ODM_SUPPORT_TYPE & (ODM_AP)) @@ -5781,45 +6261,45 @@ void odm_ant_div_config(void *dm_void) if (dm->support_ic_type & ODM_ANTDIV_SUPPORT) dm->support_ability |= ODM_BB_ANT_DIV; if (*dm->band_type == ODM_BAND_5G) { -#if (defined(CONFIG_5G_CGCS_RX_DIVERSITY)) + #if (defined(CONFIG_5G_CGCS_RX_DIVERSITY)) dm->ant_div_type = CGCS_RX_HW_ANTDIV; PHYDM_DBG(dm, DBG_ANT_DIV, "[ 5G] : AntDiv type = CGCS_RX_HW_ANTDIV\n"); panic_printk("[ 5G] : AntDiv type = CGCS_RX_HW_ANTDIV\n"); -#elif (defined(CONFIG_5G_CG_TRX_DIVERSITY) ||\ - defined(CONFIG_2G5G_CG_TRX_DIVERSITY_8881A)) + #elif (defined(CONFIG_5G_CG_TRX_DIVERSITY) ||\ + defined(CONFIG_2G5G_CG_TRX_DIVERSITY_8881A)) dm->ant_div_type = CG_TRX_HW_ANTDIV; PHYDM_DBG(dm, DBG_ANT_DIV, "[ 5G] : AntDiv type = CG_TRX_HW_ANTDIV\n"); panic_printk("[ 5G] : AntDiv type = CG_TRX_HW_ANTDIV\n"); -#elif (defined(CONFIG_5G_CG_SMART_ANT_DIVERSITY)) + #elif (defined(CONFIG_5G_CG_SMART_ANT_DIVERSITY)) dm->ant_div_type = CG_TRX_SMART_ANTDIV; PHYDM_DBG(dm, DBG_ANT_DIV, "[ 5G] : AntDiv type = CG_SMART_ANTDIV\n"); -#elif (defined(CONFIG_5G_S0S1_SW_ANT_DIVERSITY)) + #elif (defined(CONFIG_5G_S0S1_SW_ANT_DIVERSITY)) dm->ant_div_type = S0S1_SW_ANTDIV; PHYDM_DBG(dm, DBG_ANT_DIV, "[ 5G] : AntDiv type = S0S1_SW_ANTDIV\n"); -#endif + #endif } else if (*dm->band_type == ODM_BAND_2_4G) { -#if (defined(CONFIG_2G_CGCS_RX_DIVERSITY)) + #if (defined(CONFIG_2G_CGCS_RX_DIVERSITY)) dm->ant_div_type = CGCS_RX_HW_ANTDIV; PHYDM_DBG(dm, DBG_ANT_DIV, "[ 2.4G] : AntDiv type = CGCS_RX_HW_ANTDIV\n"); -#elif (defined(CONFIG_2G_CG_TRX_DIVERSITY) ||\ - defined(CONFIG_2G5G_CG_TRX_DIVERSITY_8881A)) + #elif (defined(CONFIG_2G_CG_TRX_DIVERSITY) ||\ + defined(CONFIG_2G5G_CG_TRX_DIVERSITY_8881A)) dm->ant_div_type = CG_TRX_HW_ANTDIV; PHYDM_DBG(dm, DBG_ANT_DIV, "[ 2.4G] : AntDiv type = CG_TRX_HW_ANTDIV\n"); -#elif (defined(CONFIG_2G_CG_SMART_ANT_DIVERSITY)) + #elif (defined(CONFIG_2G_CG_SMART_ANT_DIVERSITY)) dm->ant_div_type = CG_TRX_SMART_ANTDIV; PHYDM_DBG(dm, DBG_ANT_DIV, "[ 2.4G] : AntDiv type = CG_SMART_ANTDIV\n"); -#elif (defined(CONFIG_2G_S0S1_SW_ANT_DIVERSITY)) + #elif (defined(CONFIG_2G_S0S1_SW_ANT_DIVERSITY)) dm->ant_div_type = S0S1_SW_ANTDIV; PHYDM_DBG(dm, DBG_ANT_DIV, "[ 2.4G] : AntDiv type = S0S1_SW_ANTDIV\n"); -#endif + #endif } /* @2 [ 5G_SUPPORT_ANTDIV ] */ @@ -5831,25 +6311,25 @@ void odm_ant_div_config(void *dm_void) if (*dm->band_type == ODM_BAND_5G) { if (dm->support_ic_type & ODM_ANTDIV_5G_SUPPORT_IC) dm->support_ability |= ODM_BB_ANT_DIV; -#if (defined(CONFIG_5G_CGCS_RX_DIVERSITY)) + #if (defined(CONFIG_5G_CGCS_RX_DIVERSITY)) dm->ant_div_type = CGCS_RX_HW_ANTDIV; PHYDM_DBG(dm, DBG_ANT_DIV, "[ 5G] : AntDiv type = CGCS_RX_HW_ANTDIV\n"); panic_printk("[ 5G] : AntDiv type = CGCS_RX_HW_ANTDIV\n"); -#elif (defined(CONFIG_5G_CG_TRX_DIVERSITY)) + #elif (defined(CONFIG_5G_CG_TRX_DIVERSITY)) dm->ant_div_type = CG_TRX_HW_ANTDIV; panic_printk("[ 5G] : AntDiv type = CG_TRX_HW_ANTDIV\n"); PHYDM_DBG(dm, DBG_ANT_DIV, "[ 5G] : AntDiv type = CG_TRX_HW_ANTDIV\n"); -#elif (defined(CONFIG_5G_CG_SMART_ANT_DIVERSITY)) + #elif (defined(CONFIG_5G_CG_SMART_ANT_DIVERSITY)) dm->ant_div_type = CG_TRX_SMART_ANTDIV; PHYDM_DBG(dm, DBG_ANT_DIV, "[ 5G] : AntDiv type = CG_SMART_ANTDIV\n"); -#elif (defined(CONFIG_5G_S0S1_SW_ANT_DIVERSITY)) + #elif (defined(CONFIG_5G_S0S1_SW_ANT_DIVERSITY)) dm->ant_div_type = S0S1_SW_ANTDIV; PHYDM_DBG(dm, DBG_ANT_DIV, "[ 5G] : AntDiv type = S0S1_SW_ANTDIV\n"); -#endif + #endif } else if (*dm->band_type == ODM_BAND_2_4G) { PHYDM_DBG(dm, DBG_ANT_DIV, "Not Support 2G ant_div_type\n"); dm->support_ability &= ~(ODM_BB_ANT_DIV); @@ -5863,28 +6343,33 @@ void odm_ant_div_config(void *dm_void) if (*dm->band_type == ODM_BAND_2_4G) { if (dm->support_ic_type & ODM_ANTDIV_2G_SUPPORT_IC) dm->support_ability |= ODM_BB_ANT_DIV; -#if (defined(CONFIG_2G_CGCS_RX_DIVERSITY)) + #if (defined(CONFIG_2G_CGCS_RX_DIVERSITY)) dm->ant_div_type = CGCS_RX_HW_ANTDIV; PHYDM_DBG(dm, DBG_ANT_DIV, "[ 2.4G] : AntDiv type = CGCS_RX_HW_ANTDIV\n"); -#elif (defined(CONFIG_2G_CG_TRX_DIVERSITY)) + #elif (defined(CONFIG_2G_CG_TRX_DIVERSITY)) dm->ant_div_type = CG_TRX_HW_ANTDIV; PHYDM_DBG(dm, DBG_ANT_DIV, "[ 2.4G] : AntDiv type = CG_TRX_HW_ANTDIV\n"); -#elif (defined(CONFIG_2G_CG_SMART_ANT_DIVERSITY)) + #elif (defined(CONFIG_2G_CG_SMART_ANT_DIVERSITY)) dm->ant_div_type = CG_TRX_SMART_ANTDIV; PHYDM_DBG(dm, DBG_ANT_DIV, "[ 2.4G] : AntDiv type = CG_SMART_ANTDIV\n"); -#elif (defined(CONFIG_2G_S0S1_SW_ANT_DIVERSITY)) + #elif (defined(CONFIG_2G_S0S1_SW_ANT_DIVERSITY)) dm->ant_div_type = S0S1_SW_ANTDIV; PHYDM_DBG(dm, DBG_ANT_DIV, "[ 2.4G] : AntDiv type = S0S1_SW_ANTDIV\n"); -#endif + #endif } else if (*dm->band_type == ODM_BAND_5G) { PHYDM_DBG(dm, DBG_ANT_DIV, "Not Support 5G ant_div_type\n"); dm->support_ability &= ~(ODM_BB_ANT_DIV); } #endif + + if (!(dm->support_ic_type & ODM_ANTDIV_SUPPORT_IC)) { + fat_tab->ant_div_2g_5g = 0; + dm->support_ability &= ~(ODM_BB_ANT_DIV); + } #endif PHYDM_DBG(dm, DBG_ANT_DIV, @@ -5982,10 +6467,20 @@ void phydm_antdiv_debug(void *dm_void, char input[][16], u32 *_used, "AntDiv: Auto\n"); } else if (dm_value[1] == 1) { dm->ant_type = ODM_FIX_MAIN_ANT; + + #if (RTL8710C_SUPPORT == 1) + dm->antdiv_select = 1; + #endif + PDM_SNPF(out_len, used, output + used, out_len - used, "AntDiv: Fix Main\n"); } else if (dm_value[1] == 2) { dm->ant_type = ODM_FIX_AUX_ANT; + + #if (RTL8710C_SUPPORT == 1) + dm->antdiv_select = 2; + #endif + PDM_SNPF(out_len, used, output + used, out_len - used, "AntDiv: Fix Aux\n"); } @@ -6104,6 +6599,9 @@ void odm_ant_div_reset(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; + if (!(dm->support_ability & ODM_BB_ANT_DIV)) + return; + #ifdef CONFIG_S0S1_SW_ANTENNA_DIVERSITY if (dm->ant_div_type == S0S1_SW_ANTDIV) odm_s0s1_sw_ant_div_reset(dm); @@ -6140,4 +6638,3 @@ void odm_antenna_diversity(void *dm_void) odm_ant_div(dm); } #endif /*@#ifdef CONFIG_PHYDM_ANTENNA_DIVERSITY*/ - diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_antdiv.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_antdiv.h index 9bba1439..f68bbdb2 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_antdiv.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_antdiv.h @@ -84,10 +84,11 @@ #define ODM_N_ANTDIV_SUPPORT (ODM_RTL8188E | ODM_RTL8192E | ODM_RTL8723B |\ ODM_RTL8188F | ODM_RTL8723D | ODM_RTL8195A |\ - ODM_RTL8197F | ODM_RTL8721D) + ODM_RTL8197F | ODM_RTL8721D | ODM_RTL8710C) #define ODM_AC_ANTDIV_SUPPORT (ODM_RTL8821 | ODM_RTL8881A | ODM_RTL8812 |\ - ODM_RTL8821C | ODM_RTL8822B | ODM_RTL8814B) -#define ODM_JGR3_ANTDIV_SUPPORT ODM_RTL8197G + ODM_RTL8821C | ODM_RTL8822B | ODM_RTL8814B |\ + ODM_RTL8195B | ODM_RTL8814C) +#define ODM_JGR3_ANTDIV_SUPPORT (ODM_RTL8197G | ODM_RTL8723F) #define ODM_ANTDIV_SUPPORT (ODM_N_ANTDIV_SUPPORT | ODM_AC_ANTDIV_SUPPORT |\ ODM_JGR3_ANTDIV_SUPPORT) #define ODM_SMART_ANT_SUPPORT (ODM_RTL8188E | ODM_RTL8192E) @@ -95,9 +96,11 @@ #define ODM_ANTDIV_2G_SUPPORT_IC (ODM_RTL8188E | ODM_RTL8192E | ODM_RTL8723B |\ ODM_RTL8881A | ODM_RTL8188F | ODM_RTL8723D |\ - ODM_RTL8197F | ODM_RTL8197G) + ODM_RTL8197F | ODM_RTL8197G|ODM_RTL8723F) #define ODM_ANTDIV_5G_SUPPORT_IC (ODM_RTL8821 | ODM_RTL8881A | ODM_RTL8812 |\ - ODM_RTL8821C | ODM_RTL8822B) + ODM_RTL8821C | ODM_RTL8822B | ODM_RTL8195B|ODM_RTL8723F) + +#define ODM_ANTDIV_SUPPORT_IC (ODM_ANTDIV_2G_SUPPORT_IC | ODM_ANTDIV_5G_SUPPORT_IC) #define ODM_EVM_ANTDIV_IC (ODM_RTL8192E | ODM_RTL8197F | ODM_RTL8822B |\ ODM_RTL8197G) @@ -171,7 +174,7 @@ /*@Hong Lin Smart antenna*/ #define HL_SMTANT_2WIRE_DATA_LEN 24 -#if (RTL8723D_SUPPORT == 1) +#if (RTL8723D_SUPPORT == 1 || RTL8710C_SUPPORT == 1) #ifndef CONFIG_ANTDIV_PERIOD #define CONFIG_ANTDIV_PERIOD 1 #endif @@ -327,7 +330,7 @@ struct phydm_fat_struct { u8 pre_antdiv_rssi; u8 pre_antdiv_tp; #endif -#if (DM_ODM_SUPPORT_TYPE & (ODM_WIN | ODM_CE)) +#if (DM_ODM_SUPPORT_TYPE & (ODM_WIN | ODM_CE | ODM_IOT)) u32 cck_ctrl_frame_cnt_main; u32 cck_ctrl_frame_cnt_aux; u32 ofdm_ctrl_frame_cnt_main; @@ -337,6 +340,7 @@ struct phydm_fat_struct { u32 main_ctrl_cnt; u32 aux_ctrl_cnt; #endif + u8 b_fix_tx_ant; boolean fix_ant_bfee; boolean enable_ctrl_frame_antdiv; @@ -350,6 +354,9 @@ struct phydm_fat_struct { /*@A temp value, will hook to driver team's outer parameter later*/ u8 *p_default_s0_s1; u8 default_s0_s1; + u8 ant_idx_vec[3]; /* for SP3T only, added by Jiao Qi on June.6,2020*/ + + }; /* @1 ============================================================ @@ -407,6 +414,8 @@ void phydm_antdiv_reset_statistic(void *dm_void, u32 macid); void odm_update_rx_idle_ant(void *dm_void, u8 ant); +void odm_update_rx_idle_ant_sp3t(void *dm_void, u8 ant); + void phydm_update_rx_idle_ant_pathb(void *dm_void, u8 ant); void phydm_set_antdiv_val(void *dm_void, u32 *val_buf, u8 val_len); @@ -442,6 +451,10 @@ void odm_sw_antdiv_workitem_callback(void *context); void odm_sw_antdiv_callback(void *function_context); +#elif (DM_ODM_SUPPORT_TYPE == ODM_IOT) + +void odm_sw_antdiv_callback(void *dm_void); + #endif void odm_s0s1_sw_ant_div_by_ctrl_frame(void *dm_void, u8 step); diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_api.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_api.c index 789c8c6b..349f3574 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_api.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_api.c @@ -55,6 +55,12 @@ void phydm_reset_bb_hw_cnt(void *dm_void) /*@ Reset all counter when 1 */ if (dm->support_ic_type & ODM_IC_JGR3_SERIES) { + #if (RTL8723F_SUPPORT) + if (dm->support_ic_type & ODM_RTL8723F) { + odm_set_bb_reg(dm, R_0x2a44, BIT(21), 0); + odm_set_bb_reg(dm, R_0x2a44, BIT(21), 1); + } + #endif odm_set_bb_reg(dm, R_0x1eb4, BIT(25), 1); odm_set_bb_reg(dm, R_0x1eb4, BIT(25), 0); } else if (dm->support_ic_type & ODM_IC_11AC_SERIES) { @@ -101,6 +107,11 @@ void phydm_ant_weight_dbg(void *dm_void, char input[][16], u32 *_used, u32 used = *_used; u32 out_len = *_out_len; + if (!(dm->support_ic_type & + (ODM_RTL8192F | ODM_RTL8822B | ODM_RTL8812 | ODM_RTL8197F))) { + return; + } + if ((strcmp(input[1], help) == 0)) { PDM_SNPF(out_len, used, output + used, out_len - used, "echo dis_dym_ant_weighting {0/1}\n"); @@ -348,7 +359,7 @@ void phydm_config_trx_path_v2(void *dm_void, char input[][16], u32 *_used, { #if (RTL8822B_SUPPORT || RTL8197F_SUPPORT || RTL8192F_SUPPORT ||\ RTL8822C_SUPPORT || RTL8814B_SUPPORT || RTL8197G_SUPPORT ||\ - RTL8812F_SUPPORT) + RTL8812F_SUPPORT || RTL8198F_SUPPORT) struct dm_struct *dm = (struct dm_struct *)dm_void; u32 used = *_used; u32 out_len = *_out_len; @@ -360,14 +371,13 @@ void phydm_config_trx_path_v2(void *dm_void, char input[][16], u32 *_used, if (!(dm->support_ic_type & (ODM_RTL8822B | ODM_RTL8197F | ODM_RTL8192F | ODM_RTL8822C | - ODM_RTL8814B | ODM_RTL8812F | ODM_RTL8197G))) + ODM_RTL8814B | ODM_RTL8812F | ODM_RTL8197G | ODM_RTL8198F | + ODM_RTL8814C))) return; for (i = 0; i < 5; i++) { - if (input[i + 1]) { - PHYDM_SSCANF(input[i + 1], DCMD_HEX, &val[i]); - input_idx++; - } + PHYDM_SSCANF(input[i + 1], DCMD_HEX, &val[i]); + input_idx++; } if (input_idx == 0) @@ -493,11 +503,12 @@ void phydm_config_trx_path(void *dm_void, char input[][16], u32 *_used, #endif } else if (dm->support_ic_type & (ODM_RTL8822B | ODM_RTL8197F | ODM_RTL8192F | ODM_RTL8822C | ODM_RTL8812F | - ODM_RTL8197G | ODM_RTL8814B)) { + ODM_RTL8197G | ODM_RTL8814B | ODM_RTL8198F | + ODM_RTL8814C)) { #if (RTL8822B_SUPPORT || RTL8197F_SUPPORT ||\ RTL8192F_SUPPORT || RTL8822C_SUPPORT ||\ RTL8814B_SUPPORT || RTL8812F_SUPPORT ||\ - RTL8197G_SUPPORT) + RTL8197G_SUPPORT || RTL8198F_SUPPORT) phydm_config_trx_path_v2(dm, input, _used, output, _out_len); #endif } @@ -598,20 +609,22 @@ u8 phydm_stop_ic_trx(void *dm_void, u8 set_type) { struct dm_struct *dm = (struct dm_struct *)dm_void; struct phydm_api_stuc *api = &dm->api_table; - u32 i = 0; - u8 trx_idle_success = false; + u8 i = 0; + boolean trx_idle_success = false; u32 dbg_port_value = 0; if (set_type == PHYDM_SET) { - /*@[Stop TRX]---------------------------------------------------------*/ - /*set debug port to 0x0*/ - if (!phydm_set_bb_dbg_port(dm, DBGPORT_PRI_3, 0x0)) - return PHYDM_SET_FAIL; - - for (i = 0; i < 100; i++) { - dbg_port_value = phydm_get_bb_dbg_port_val(dm); - - if (dm->support_ic_type & ODM_IC_JGR3_SERIES) { + /*[Stop TRX]---------------------------------------------------------*/ + if (dm->support_ic_type & ODM_IC_JGR3_SERIES) { + #if (RTL8723F_SUPPORT) + /*Judy 2020-0515*/ + /*set debug port to 0x0*/ + if (!phydm_set_bb_dbg_port(dm, DBGPORT_PRI_3, 0x0)) + return PHYDM_SET_FAIL; + #endif + for (i = 0; i < 100; i++) { + dbg_port_value = odm_get_bb_reg(dm, R_0x2db4, + MASKDWORD); /* BB idle */ if ((dbg_port_value & 0x1FFEFF3F) == 0 && (dbg_port_value & 0xC0010000) == @@ -623,10 +636,17 @@ u8 phydm_stop_ic_trx(void *dm_void, u8 set_type) trx_idle_success = true; break; } - } else { + } + } else { + /*set debug port to 0x0*/ + if (!phydm_set_bb_dbg_port(dm, DBGPORT_PRI_3, 0x0)) + return PHYDM_SET_FAIL; + for (i = 0; i < 100; i++) { + dbg_port_value = phydm_get_bb_dbg_port_val(dm); /* PHYTXON && CCA_all */ if (dm->support_ic_type & (ODM_RTL8721D | - ODM_RTL8710C)) { + ODM_RTL8710B | ODM_RTL8710C | + ODM_RTL8188F | ODM_RTL8723D)) { if ((dbg_port_value & (BIT(20) | BIT(15))) == 0) { PHYDM_DBG(dm, ODM_COMP_API, @@ -647,10 +667,10 @@ u8 phydm_stop_ic_trx(void *dm_void, u8 set_type) break; } } + ODM_delay_ms(1); } - ODM_delay_ms(1); + phydm_release_bb_dbg_port(dm); } - phydm_release_bb_dbg_port(dm); if (trx_idle_success) { api->tx_queue_bitmap = odm_read_1byte(dm, R_0x522); @@ -659,15 +679,15 @@ u8 phydm_stop_ic_trx(void *dm_void, u8 set_type) odm_set_mac_reg(dm, R_0x520, 0xff0000, 0xff); if (dm->support_ic_type & ODM_IC_JGR3_SERIES) { - /*@disable OFDM RX CCA*/ - odm_set_bb_reg(dm, R_0x1c68, BIT(24), 1); + /*disable OFDM RX CCA*/ + odm_set_bb_reg(dm, R_0x1d58, 0xff8, 0x1ff); } else if (dm->support_ic_type & ODM_IC_11AC_SERIES) { - /*@disable OFDM RX CCA*/ + /*disable OFDM RX CCA*/ odm_set_bb_reg(dm, R_0x838, BIT(1), 1); } else { api->rxiqc_reg1 = odm_read_4byte(dm, R_0xc14); api->rxiqc_reg2 = odm_read_4byte(dm, R_0xc1c); - /* @[ Set IQK Matrix = 0 ] + /* [ Set IQK Matrix = 0 ] * equivalent to [ Turn off CCA] */ odm_set_bb_reg(dm, R_0xc14, MASKDWORD, 0x0); @@ -686,7 +706,7 @@ u8 phydm_stop_ic_trx(void *dm_void, u8 set_type) if (dm->support_ic_type & ODM_IC_JGR3_SERIES) { /*@enable OFDM RX CCA*/ - odm_set_bb_reg(dm, R_0x1c68, BIT(24), 0); + odm_set_bb_reg(dm, R_0x1d58, 0xff8, 0x0); } else if (dm->support_ic_type & ODM_IC_11AC_SERIES) { /*@enable OFDM RX CCA*/ odm_set_bb_reg(dm, R_0x838, BIT(1), 0); @@ -707,12 +727,20 @@ void phydm_dis_cck_trx(void *dm_void, u8 set_type) if (set_type == PHYDM_SET) { if (dm->support_ic_type & ODM_IC_JGR3_SERIES) { - api->ccktx_path = (u8)odm_get_bb_reg(dm, R_0x1a04, - 0xf0000000); - /* @CCK RxIQ weighting = [0,0] */ - odm_set_bb_reg(dm, R_0x1a14, 0x300, 0x3); - /* @disable CCK Tx */ - odm_set_bb_reg(dm, R_0x1a04, 0xf0000000, 0x0); + if(dm->support_ic_type & ODM_RTL8723F) { + api->ccktx_path = 1; + /* @disable CCK CCA */ + odm_set_bb_reg(dm, R_0x2a24, BIT(13), 0x1); + /* @disable CCK Tx */ + odm_set_bb_reg(dm, R_0x2a00, BIT(1), 0x1); + } else { + api->ccktx_path = (u8)odm_get_bb_reg(dm, R_0x1a04, + 0xf0000000); + /* @CCK RxIQ weighting = [0,0] */ + odm_set_bb_reg(dm, R_0x1a14, 0x300, 0x3); + /* @disable CCK Tx */ + odm_set_bb_reg(dm, R_0x1a04, 0xf0000000, 0x0); + } } else if (dm->support_ic_type & ODM_IC_11AC_SERIES) { api->ccktx_path = (u8)odm_get_bb_reg(dm, R_0xa04, 0xf0000000); @@ -730,11 +758,18 @@ void phydm_dis_cck_trx(void *dm_void, u8 set_type) } } else if (set_type == PHYDM_REVERT) { if (dm->support_ic_type & ODM_IC_JGR3_SERIES) { - /* @CCK RxIQ weighting = [1,1] */ - odm_set_bb_reg(dm, R_0x1a14, 0x300, 0x0); - /* @enable CCK Tx */ - odm_set_bb_reg(dm, R_0x1a04, 0xf0000000, - api->ccktx_path); + if(dm->support_ic_type & ODM_RTL8723F) { + /* @enable CCK CCA */ + odm_set_bb_reg(dm, R_0x2a24, BIT(13), 0x0); + /* @enable CCK Tx */ + odm_set_bb_reg(dm, R_0x2a00, BIT(1), 0x0); + } else { + /* @CCK RxIQ weighting = [1,1] */ + odm_set_bb_reg(dm, R_0x1a14, 0x300, 0x0); + /* @enable CCK Tx */ + odm_set_bb_reg(dm, R_0x1a04, 0xf0000000, + api->ccktx_path); + } } else if (dm->support_ic_type & ODM_IC_11AC_SERIES) { /* @enable CCK block */ odm_set_bb_reg(dm, R_0x808, BIT(28), 1); @@ -751,13 +786,13 @@ void phydm_dis_cck_trx(void *dm_void, u8 set_type) } } -void phydm_bw_fixed_enable(void *dm_void, boolean enable) +void phydm_bw_fixed_enable(void *dm_void, u8 enable) { #ifdef CONFIG_BW_INDICATION struct dm_struct *dm = (struct dm_struct *)dm_void; boolean val = (enable == FUNC_ENABLE) ? 1 : 0; - if (dm->support_ic_type & (ODM_RTL8821C | ODM_RTL8822B)) + if (dm->support_ic_type & (ODM_RTL8821C | ODM_RTL8822B | ODM_RTL8195B)) odm_set_bb_reg(dm, R_0x840, BIT(4), val); else if (dm->support_ic_type & ODM_RTL8822C) odm_set_bb_reg(dm, R_0x878, BIT(28), val); @@ -775,7 +810,8 @@ void phydm_bw_fixed_setting(void *dm_void) if (!(dm->support_ic_type & ODM_DYM_BW_INDICATION_SUPPORT)) return; - if (dm->support_ic_type & (ODM_RTL8821C | ODM_RTL8822B)) { + if (dm->support_ic_type & (ODM_RTL8821C | ODM_RTL8822B | + ODM_RTL8195B)) { reg = R_0x840; reg_mask = 0xf; reg_value = api->pri_ch_idx; @@ -1035,7 +1071,8 @@ void phydm_nbi_enable(void *dm_void, u32 enable) odm_set_bb_reg(dm, R_0xc40, BIT(9), val); } } else if (dm->support_ic_type & ODM_IC_11AC_SERIES) { - if (dm->support_ic_type & (ODM_RTL8822B | ODM_RTL8821C)) { + if (dm->support_ic_type & (ODM_RTL8822B | ODM_RTL8821C | + ODM_RTL8195B)) { odm_set_bb_reg(dm, R_0x87c, BIT(13), val); odm_set_bb_reg(dm, R_0xc20, BIT(28), val); if (dm->rf_type > RF_1T1R) @@ -1202,7 +1239,154 @@ u8 phydm_csi_mask_setting(void *dm_void, u32 enable, u32 ch, u32 bw, return set_result; } +boolean phydm_spur_case_mapping(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + u8 channel = *dm->channel, bw = *dm->band_width; + boolean mapping_result = false; +#if (RTL8814B_SUPPORT == 1) + if (channel == 153 && bw == CHANNEL_WIDTH_20) + mapping_result = true; + else if (channel == 151 && bw == CHANNEL_WIDTH_40) + mapping_result = true; + else if (channel == 155 && bw == CHANNEL_WIDTH_80) + mapping_result = true; +#endif + return mapping_result; +} + +enum odm_rf_band phydm_ch_to_rf_band(void *dm_void, u8 central_ch) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + enum odm_rf_band rf_band = ODM_RF_BAND_5G_LOW; + + if (central_ch <= 14) + rf_band = ODM_RF_BAND_2G; + else if (central_ch >= 36 && central_ch <= 64) + rf_band = ODM_RF_BAND_5G_LOW; + else if ((central_ch >= 100) && (central_ch <= 144)) + rf_band = ODM_RF_BAND_5G_MID; + else if (central_ch >= 149) + rf_band = ODM_RF_BAND_5G_HIGH; + else + PHYDM_DBG(dm, ODM_COMP_API, "mapping channel to band fail\n"); + + return rf_band; +} + #ifdef PHYDM_IC_JGR3_SERIES_SUPPORT +u32 phydm_rf_psd_jgr3(void *dm_void, u8 path, u32 tone_idx) +{ +#if (RTL8198F_SUPPORT || RTL8814B_SUPPORT) + struct dm_struct *dm = (struct dm_struct *)dm_void; + u32 reg_1b04 = 0, reg_1b08 = 0, reg_1b0c_11_10 = 0; + u32 reg_1b14 = 0, reg_1b18 = 0, reg_1b1c = 0; + u32 reg_1b28 = 0; + u32 reg_1bcc_5_0 = 0; + u32 reg_1b2c_27_16 = 0, reg_1b34 = 0, reg_1bd4 = 0; + u32 reg_180c = 0, reg_410c = 0, reg_520c = 0, reg_530c = 0; + u32 igi = 0; + u32 i = 0; + u32 psd_val = 0, psd_val_msb = 0, psd_val_lsb = 0, psd_max = 0; + u32 psd_status_temp = 0; + u16 poll_cnt = 0; + + /*read and record the ori. value*/ + reg_1b04 = odm_get_bb_reg(dm, R_0x1b04, MASKDWORD); + reg_1b08 = odm_get_bb_reg(dm, R_0x1b08, MASKDWORD); + reg_1b0c_11_10 = odm_get_bb_reg(dm, R_0x1b0c, 0xc00); + reg_1b14 = odm_get_bb_reg(dm, R_0x1b14, MASKDWORD); + reg_1b18 = odm_get_bb_reg(dm, R_0x1b18, MASKDWORD); + reg_1b1c = odm_get_bb_reg(dm, R_0x1b1c, MASKDWORD); + reg_1b28 = odm_get_bb_reg(dm, R_0x1b28, MASKDWORD); + reg_1bcc_5_0 = odm_get_bb_reg(dm, R_0x1bcc, 0x3f); + reg_1b2c_27_16 = odm_get_bb_reg(dm, R_0x1b2c, 0xfff0000); + reg_1b34 = odm_get_bb_reg(dm, R_0x1b34, MASKDWORD); + reg_1bd4 = odm_get_bb_reg(dm, R_0x1bd4, MASKDWORD); + igi = odm_get_bb_reg(dm, R_0x1d70, MASKDWORD); + reg_180c = odm_get_bb_reg(dm, R_0x180c, 0x3); + reg_410c = odm_get_bb_reg(dm, R_0x410c, 0x3); + reg_520c = odm_get_bb_reg(dm, R_0x520c, 0x3); + reg_530c = odm_get_bb_reg(dm, R_0x530c, 0x3); + + /*rf psd reg setting*/ + odm_set_bb_reg(dm, R_0x1b00, 0x6, path); /*path is RF_path*/ + odm_set_bb_reg(dm, R_0x1b04, MASKDWORD, 0x0); + odm_set_bb_reg(dm, R_0x1b08, MASKDWORD, 0x80); + odm_set_bb_reg(dm, R_0x1b0c, 0xc00, 0x3); + odm_set_bb_reg(dm, R_0x1b14, MASKDWORD, 0x0); + odm_set_bb_reg(dm, R_0x1b18, MASKDWORD, 0x1); +/*#if (DM_ODM_SUPPORT_TYPE == ODM_AP)*/ + odm_set_bb_reg(dm, R_0x1b1c, MASKDWORD, 0x82103D21); +/*#else*/ + /*odm_set_bb_reg(dm, R_0x1b1c, MASKDWORD, 0x821A3D21);*/ +/*#endif*/ + odm_set_bb_reg(dm, R_0x1b28, MASKDWORD, 0x0); + odm_set_bb_reg(dm, R_0x1bcc, 0x3f, 0x3f); + odm_set_bb_reg(dm, R_0x8a0, 0xf, 0x0); /* AGC off */ + odm_set_bb_reg(dm, R_0x1d70, MASKDWORD, 0x20202020); + + for (i = tone_idx - 1; i <= tone_idx + 1; i++) { + /*set psd tone_idx for detection*/ + odm_set_bb_reg(dm, R_0x1b2c, 0xfff0000, i); + /*one shot for RXIQK psd*/ + odm_set_bb_reg(dm, R_0x1b34, MASKDWORD, 0x1); + odm_set_bb_reg(dm, R_0x1b34, MASKDWORD, 0x0); + + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) + for (poll_cnt = 0; poll_cnt < 20; poll_cnt++) { + odm_set_bb_reg(dm, R_0x1bd4, 0x3f0000, 0x2b); + psd_status_temp = odm_get_bb_reg(dm, R_0x1bfc, + BIT(1)); + if (!psd_status_temp) + ODM_delay_us(10); + else + break; + } + else + ODM_delay_us(250); + + /*read RxIQK power*/ + odm_set_bb_reg(dm, R_0x1bd4, MASKDWORD, 0x00250001); + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) + psd_val_msb = odm_get_bb_reg(dm, R_0x1bfc, 0x7ff0000); + else if (dm->support_ic_type & ODM_RTL8198F) + psd_val_msb = odm_get_bb_reg(dm, R_0x1bfc, 0x1f0000); + + odm_set_bb_reg(dm, R_0x1bd4, MASKDWORD, 0x002e0001); + psd_val_lsb = odm_get_bb_reg(dm, R_0x1bfc, MASKDWORD); + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) + psd_val = (psd_val_msb << 21) + (psd_val_lsb >> 11); + else if (dm->support_ic_type & ODM_RTL8198F) + psd_val = (psd_val_msb << 27) + (psd_val_lsb >> 5); + + if (psd_val > psd_max) + psd_max = psd_val; + } + + /*refill the ori. value*/ + odm_set_bb_reg(dm, R_0x1b00, 0x6, path); + odm_set_bb_reg(dm, R_0x1b04, MASKDWORD, reg_1b04); + odm_set_bb_reg(dm, R_0x1b08, MASKDWORD, reg_1b08); + odm_set_bb_reg(dm, R_0x1b0c, 0xc00, reg_1b0c_11_10); + odm_set_bb_reg(dm, R_0x1b14, MASKDWORD, reg_1b14); + odm_set_bb_reg(dm, R_0x1b18, MASKDWORD, reg_1b18); + odm_set_bb_reg(dm, R_0x1b1c, MASKDWORD, reg_1b1c); + odm_set_bb_reg(dm, R_0x1b28, MASKDWORD, reg_1b28); + odm_set_bb_reg(dm, R_0x1bcc, 0x3f, reg_1bcc_5_0); + odm_set_bb_reg(dm, R_0x1b2c, 0xfff0000, reg_1b2c_27_16); + odm_set_bb_reg(dm, R_0x1b34, MASKDWORD, reg_1b34); + odm_set_bb_reg(dm, R_0x1bd4, MASKDWORD, reg_1bd4); + odm_set_bb_reg(dm, R_0x8a0, 0xf, 0xf); /* AGC on */ + odm_set_bb_reg(dm, R_0x1d70, MASKDWORD, igi); + PHYDM_DBG(dm, ODM_COMP_API, "psd_max %d\n", psd_max); + + return psd_max; +#else + return 0; +#endif +} + u8 phydm_find_intf_distance_jgr3(void *dm_void, u32 bw, u32 fc, u32 f_interference, u32 *tone_idx_tmp_in) { @@ -1224,7 +1408,9 @@ u8 phydm_find_intf_distance_jgr3(void *dm_void, u32 bw, u32 fc, if (f_interference >= bw_low && f_interference <= bw_up) { int_distance = DIFF_2(fc, f_interference); /*@10*(int_distance /0.3125)*/ - if ((dm->support_ic_type & (ODM_RTL8814B)) && channel < 15) + if (channel < 15 && + (dm->support_ic_type & + (ODM_RTL8814B | ODM_RTL8198F | ODM_RTL8814C))) tone_idx_tmp = int_distance / 312; else tone_idx_tmp = ((int_distance + 156) / 312); @@ -1237,6 +1423,7 @@ u8 phydm_find_intf_distance_jgr3(void *dm_void, u32 bw, u32 fc, return set_result; } + u8 phydm_csi_mask_setting_jgr3(void *dm_void, u32 enable, u32 ch, u32 bw, u32 f_intf, u32 sec_ch, u8 wgt) { @@ -1292,7 +1479,7 @@ void phydm_set_csi_mask_jgr3(void *dm_void, u32 tone_idx_tmp, u8 tone_direction, { struct dm_struct *dm = (struct dm_struct *)dm_void; u32 multi_tone_idx_tmp = 0; - u32 reg_tmp_value = 0; + u32 reg_tmp = 0; u32 tone_num = 64; u32 table_addr = 0; u32 addr = 0; @@ -1317,14 +1504,16 @@ void phydm_set_csi_mask_jgr3(void *dm_void, u32 tone_idx_tmp, u8 tone_direction, } table_addr = tone_idx_tmp >> 1; - reg_tmp_value = odm_read_4byte(dm, R_0x1d94); + reg_tmp = odm_read_4byte(dm, R_0x1d94); PHYDM_DBG(dm, ODM_COMP_API, "Pre Mask tone idx[%d]: Reg0x1d94 = ((0x%x))\n", - tone_idx_tmp, reg_tmp_value); + tone_idx_tmp, reg_tmp); odm_set_bb_reg(dm, R_0x1ee8, 0x3, 0x3); odm_set_bb_reg(dm, R_0x1d94, BIT(31) | BIT(30), 0x1); - if ((dm->support_ic_type & (ODM_RTL8814B)) && channel < 15) { + if (channel < 15 && + (dm->support_ic_type & + (ODM_RTL8814B | ODM_RTL8198F | ODM_RTL8814C))) { if (tone_idx_tmp % 2 == 1) { if (tone_direction == FREQ_POSITIVE) { /*===Tone 1===*/ @@ -1332,10 +1521,10 @@ void phydm_set_csi_mask_jgr3(void *dm_void, u32 tone_idx_tmp, u8 tone_direction, (table_addr & 0xff)); value = (BIT(3) | (wgt & 0x7)) << 4; odm_set_bb_reg(dm, R_0x1d94, 0xff, value); - reg_tmp_value = odm_read_4byte(dm, R_0x1d94); + reg_tmp = odm_read_4byte(dm, R_0x1d94); PHYDM_DBG(dm, ODM_COMP_API, "New Mask tone 1 idx[%d]: Reg0x1d94 = ((0x%x))\n", - tone_idx_tmp, reg_tmp_value); + tone_idx_tmp, reg_tmp); /*===Tone 2===*/ value = 0; multi_tone_idx_tmp = tone_idx_tmp + 1; @@ -1344,10 +1533,10 @@ void phydm_set_csi_mask_jgr3(void *dm_void, u32 tone_idx_tmp, u8 tone_direction, (table_addr & 0xff)); value = (BIT(3) | (wgt & 0x7)); odm_set_bb_reg(dm, R_0x1d94, 0xff, value); - reg_tmp_value = odm_read_4byte(dm, R_0x1d94); + reg_tmp = odm_read_4byte(dm, R_0x1d94); PHYDM_DBG(dm, ODM_COMP_API, "New Mask tone 2 idx[%d]: Reg0x1d94 = ((0x%x))\n", - tone_idx_tmp, reg_tmp_value); + tone_idx_tmp, reg_tmp); } else { /*===Tone 1 & 2===*/ odm_set_bb_reg(dm, R_0x1d94, MASKBYTE2, @@ -1355,10 +1544,10 @@ void phydm_set_csi_mask_jgr3(void *dm_void, u32 tone_idx_tmp, u8 tone_direction, value = ((BIT(3) | (wgt & 0x7)) << 4) | (BIT(3) | (wgt & 0x7)); odm_set_bb_reg(dm, R_0x1d94, 0xff, value); - reg_tmp_value = odm_read_4byte(dm, R_0x1d94); + reg_tmp = odm_read_4byte(dm, R_0x1d94); PHYDM_DBG(dm, ODM_COMP_API, "New Mask tone 1 & 2 idx[%d]: Reg0x1d94 = ((0x%x))\n", - tone_idx_tmp, reg_tmp_value); + tone_idx_tmp, reg_tmp); } } else { if (tone_direction == FREQ_POSITIVE) { @@ -1368,20 +1557,20 @@ void phydm_set_csi_mask_jgr3(void *dm_void, u32 tone_idx_tmp, u8 tone_direction, value = ((BIT(3) | (wgt & 0x7)) << 4) | (BIT(3) | (wgt & 0x7)); odm_set_bb_reg(dm, R_0x1d94, 0xff, value); - reg_tmp_value = odm_read_4byte(dm, R_0x1d94); + reg_tmp = odm_read_4byte(dm, R_0x1d94); PHYDM_DBG(dm, ODM_COMP_API, "New Mask tone 1 & 2 idx[%d]: Reg0x1d94 = ((0x%x))\n", - tone_idx_tmp, reg_tmp_value); + tone_idx_tmp, reg_tmp); } else { /*===Tone 1===*/ odm_set_bb_reg(dm, R_0x1d94, MASKBYTE2, (table_addr & 0xff)); value = (BIT(3) | (wgt & 0x7)); odm_set_bb_reg(dm, R_0x1d94, 0xff, value); - reg_tmp_value = odm_read_4byte(dm, R_0x1d94); + reg_tmp = odm_read_4byte(dm, R_0x1d94); PHYDM_DBG(dm, ODM_COMP_API, "New Mask tone 1 idx[%d]: Reg0x1d94 = ((0x%x))\n", - tone_idx_tmp, reg_tmp_value); + tone_idx_tmp, reg_tmp); /*===Tone 2===*/ value = 0; @@ -1391,24 +1580,84 @@ void phydm_set_csi_mask_jgr3(void *dm_void, u32 tone_idx_tmp, u8 tone_direction, (table_addr & 0xff)); value = (BIT(3) | (wgt & 0x7)) << 4; odm_set_bb_reg(dm, R_0x1d94, 0xff, value); - reg_tmp_value = odm_read_4byte(dm, R_0x1d94); + reg_tmp = odm_read_4byte(dm, R_0x1d94); PHYDM_DBG(dm, ODM_COMP_API, "New Mask tone 2 idx[%d]: Reg0x1d94 = ((0x%x))\n", - tone_idx_tmp, reg_tmp_value); + tone_idx_tmp, reg_tmp); } } } else { - odm_set_bb_reg(dm, R_0x1d94, MASKBYTE2, (table_addr & 0xff)); - if (tone_idx_tmp % 2) - value = (BIT(3) | (wgt & 0x7)) << 4; - else - value = BIT(3) | (wgt & 0x7); + if ((dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) && + phydm_spur_case_mapping(dm)) { + if (!(tone_idx_tmp % 2)) { + odm_set_bb_reg(dm, R_0x1d94, MASKBYTE2, + (table_addr & 0xff)); + value = ((BIT(3) | (((wgt + 4) <= 7 ? (wgt + + 4) : 7) & 0x7)) << 4) | (BIT(3) | + (wgt & 0x7)); + odm_set_bb_reg(dm, R_0x1d94, 0xff, value); + reg_tmp = odm_read_4byte(dm, R_0x1d94); + PHYDM_DBG(dm, ODM_COMP_API, + "New Mask tone idx[%d]: Reg0x1d94 = ((0x%x))\n", + tone_idx_tmp, reg_tmp); + if (tone_idx_tmp == 0) + table_addr = tone_num - 1; + else + table_addr = table_addr - 1; + if (tone_idx_tmp != tone_num) { + odm_set_bb_reg(dm, R_0x1d94, MASKBYTE2, + (table_addr & 0xff)); + value = (BIT(3) | (((wgt + 4) <= 7 ? + (wgt + 4) : 7) & 0x7)) << 4; + odm_set_bb_reg(dm, R_0x1d94, 0xff, + value); + reg_tmp = odm_read_4byte(dm, R_0x1d94); + PHYDM_DBG(dm, ODM_COMP_API, + "New Mask Reg0x1d94 = ((0x%x))\n", + reg_tmp); + } + } else { + odm_set_bb_reg(dm, R_0x1d94, MASKBYTE2, + (table_addr & 0xff)); + value = ((BIT(3) | (wgt & 0x7)) << 4) | + (BIT(3) | (((wgt + 4) <= 7 ? (wgt + + 4) : 7) & 0x7)); + odm_set_bb_reg(dm, R_0x1d94, 0xff, value); + reg_tmp = odm_read_4byte(dm, R_0x1d94); + PHYDM_DBG(dm, ODM_COMP_API, + "New Mask tone idx[%d]: Reg0x1d94 = ((0x%x))\n", + tone_idx_tmp, reg_tmp); + if (tone_idx_tmp == (tone_num << 1) - 1) + table_addr = 0; + else + table_addr = table_addr + 1; + if (tone_idx_tmp != tone_num - 1) { + odm_set_bb_reg(dm, R_0x1d94, MASKBYTE2, + (table_addr & 0xff)); + value = (BIT(3) | (((wgt + 4) <= 7 ? + (wgt + 4) : 7) & 0x7)); + odm_set_bb_reg(dm, R_0x1d94, 0xff, + value); + reg_tmp = odm_read_4byte(dm, R_0x1d94); + PHYDM_DBG(dm, ODM_COMP_API, + "New Mask Reg0x1d94 = ((0x%x))\n", + reg_tmp); + } + } + } else { + odm_set_bb_reg(dm, R_0x1d94, MASKBYTE2, (table_addr & + 0xff)); + if (tone_idx_tmp % 2) + value = (BIT(3) | (wgt & 0x7)) << 4; + else + value = BIT(3) | (wgt & 0x7); - odm_set_bb_reg(dm, R_0x1d94, 0xff, value); - reg_tmp_value = odm_read_4byte(dm, R_0x1d94); - PHYDM_DBG(dm, ODM_COMP_API, - "New Mask tone idx[%d]: Reg0x1d94 = ((0x%x))\n", - tone_idx_tmp, reg_tmp_value); + odm_set_bb_reg(dm, R_0x1d94, 0xff, value); + reg_tmp = odm_read_4byte(dm, R_0x1d94); + PHYDM_DBG(dm, ODM_COMP_API, + "New Mask tone idx[%d]: Reg0x1d94 = ((0x%x))\n", + tone_idx_tmp, reg_tmp); + } } odm_set_bb_reg(dm, R_0x1ee8, 0x3, 0x0); } @@ -1422,7 +1671,7 @@ void phydm_nbi_reset_jgr3(void *dm_void) odm_set_bb_reg(dm, R_0x818, BIT(3), 0); odm_set_bb_reg(dm, R_0x818, BIT(11), 0); #if RTL8814B_SUPPORT - if (dm->support_ic_type & ODM_RTL8814B) { + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { odm_set_bb_reg(dm, R_0x1944, 0x300, 0x3); odm_set_bb_reg(dm, R_0x4044, 0x300, 0x3); odm_set_bb_reg(dm, R_0x5044, 0x300, 0x3); @@ -1473,15 +1722,18 @@ u8 phydm_nbi_setting_jgr3(void *dm_void, u32 enable, u32 ch, u32 bw, u32 f_intf, set_result = PHYDM_SET_SUCCESS; } else { set_result = PHYDM_SET_NO_NEED; + } } } - } if (set_result == PHYDM_SET_SUCCESS) phydm_nbi_enable_jgr3(dm, enable, path); else phydm_nbi_enable_jgr3(dm, FUNC_DISABLE, path); + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) + odm_set_bb_reg(dm, R_0x1d3c, BIT(19), 0); + return set_result; } @@ -1511,9 +1763,13 @@ void phydm_set_nbi_reg_jgr3(void *dm_void, u32 tone_idx_tmp, u8 tone_direction, } /*Mark the tone idx for Packet detection*/ #if RTL8814B_SUPPORT - if (dm->support_ic_type & ODM_RTL8814B) { + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { odm_set_bb_reg(dm, R_0xc24, 0xff, 0xff); - odm_set_bb_reg(dm, R_0xc24, 0xff00, tone_idx_tmp); + if ((*dm->channel == 5) && + (*dm->band_width == CHANNEL_WIDTH_40)) + odm_set_bb_reg(dm, R_0xc24, 0xff00, 0x1a); + else + odm_set_bb_reg(dm, R_0xc24, 0xff00, tone_idx_tmp); } #endif switch (path) { @@ -1854,10 +2110,8 @@ void phydm_nbi_debug(void *dm_void, char input[][16], u32 *_used, char *output, else idx_lmt = 5; for (i = 0; i < idx_lmt; i++) { - if (input[i + 1]) { - PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &val[i]); - input_idx++; - } + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &val[i]); + input_idx++; } if (input_idx == 0) @@ -1946,10 +2200,8 @@ void phydm_csi_debug(void *dm_void, char input[][16], u32 *_used, char *output, idx_lmt = 5; for (i = 0; i < idx_lmt; i++) { - if (input[i + 1]) { - PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &val[i]); - input_idx++; - } + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &val[i]); + input_idx++; } if (input_idx == 0) @@ -2145,6 +2397,7 @@ phydm_api_shift_txagc(void *dm_void, u32 pwr_offset, enum rf_path path, u32 txagc_ofdm = 0; u32 r_txagc_ofdm[4] = {R_0x18e8, R_0x41e8, R_0x52e8, R_0x53e8}; u32 r_txagc_cck[4] = {R_0x18a0, R_0x41a0, R_0x52a0, R_0x53a0}; + u32 r_new_txagc[1] = {R_0x4308}; #if (RTL8822C_SUPPORT || RTL8812F_SUPPORT || RTL8197G_SUPPORT) if (dm->support_ic_type & @@ -2197,7 +2450,8 @@ phydm_api_shift_txagc(void *dm_void, u32 pwr_offset, enum rf_path path, #endif #if (RTL8198F_SUPPORT || RTL8814B_SUPPORT) - if (dm->support_ic_type & (ODM_RTL8198F | ODM_RTL8814B)) { + if (dm->support_ic_type & + (ODM_RTL8198F | ODM_RTL8814B | ODM_RTL8814C)) { if (path > RF_PATH_D) { PHYDM_DBG(dm, ODM_PHY_CONFIG, "Unsupported path (%d)\n", path); @@ -2239,6 +2493,43 @@ phydm_api_shift_txagc(void *dm_void, u32 pwr_offset, enum rf_path path, } #endif + #if (RTL8723F_SUPPORT) + if (dm->support_ic_type & (ODM_RTL8723F)) { + if (path > RF_PATH_A) { + PHYDM_DBG(dm, ODM_PHY_CONFIG, "Unsupported path (%d)\n", + path); + return false; + } + txagc_cck = (u8)odm_get_bb_reg(dm, r_new_txagc[path], + 0x0000007f); + txagc_ofdm = (u8)odm_get_bb_reg(dm, r_new_txagc[path], + 0x00007f00); + if (is_positive) { + if (((txagc_cck + pwr_offset) > 127) || + ((txagc_ofdm + pwr_offset) > 127)) + return false; + + txagc_cck += pwr_offset; + txagc_ofdm += pwr_offset; + } else { + if (pwr_offset > txagc_cck || pwr_offset > txagc_ofdm) + return false; + + txagc_cck -= pwr_offset; + txagc_ofdm -= pwr_offset; + } + #if (RTL8723F_SUPPORT) + ret = config_phydm_write_txagc_ref_8723f(dm, (u8)txagc_cck, + path, PDM_CCK); + ret &= config_phydm_write_txagc_ref_8723f(dm, (u8)txagc_ofdm, + path, PDM_OFDM); + #endif + PHYDM_DBG(dm, ODM_PHY_CONFIG, + "%s: path-%d txagc_cck_ref=%x txagc_ofdm_ref=0x%x\n", + __func__, path, txagc_cck, txagc_ofdm); + } + #endif + return ret; } @@ -2249,7 +2540,7 @@ phydm_api_set_txagc(void *dm_void, u32 pwr_idx, enum rf_path path, struct dm_struct *dm = (struct dm_struct *)dm_void; boolean ret = false; #if (RTL8198F_SUPPORT || RTL8822C_SUPPORT || RTL8812F_SUPPORT ||\ - RTL8814B_SUPPORT || RTL8197G_SUPPORT) + RTL8814B_SUPPORT || RTL8197G_SUPPORT || RTL8723F_SUPPORT) u8 base = 0; u8 txagc_tmp = 0; s8 pw_by_rate_tmp = 0; @@ -2370,7 +2661,7 @@ phydm_api_set_txagc(void *dm_void, u32 pwr_idx, enum rf_path path, #endif #if (RTL8814B_SUPPORT) - if (dm->support_ic_type & ODM_RTL8814B) { + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { if (rate < 0x4) txagc_tmp = config_phydm_read_txagc_8814b(dm, path, rate, @@ -2443,6 +2734,30 @@ phydm_api_set_txagc(void *dm_void, u32 pwr_idx, enum rf_path path, __func__, path, rate, base, pw_by_rate_new); } #endif +#if (RTL8723F_SUPPORT) + if (dm->support_ic_type & ODM_RTL8723F) { + if (rate < 0x4) + txagc_tmp = config_phydm_read_txagc_8723f(dm, path, + rate, + PDM_CCK); + else + txagc_tmp = config_phydm_read_txagc_8723f(dm, path, + rate, + PDM_OFDM); + + pw_by_rate_tmp = config_phydm_read_txagc_diff_8723f(dm, rate); + base = txagc_tmp - pw_by_rate_tmp; + base = base & 0x7f; + if (DIFF_2((pwr_idx & 0x7f), base) > 63 || pwr_idx > 127) + return false; + + pw_by_rate_new = (s8)(pwr_idx - base); + ret = phydm_write_txagc_1byte_8723f(dm, pw_by_rate_new, rate); + PHYDM_DBG(dm, ODM_PHY_CONFIG, + "%s: path-%d rate_idx=%x base=0x%x new_diff=0x%x\n", + __func__, path, rate, base, pw_by_rate_new); + } +#endif #if (RTL8197F_SUPPORT) if (dm->support_ic_type & ODM_RTL8197F) @@ -2520,8 +2835,20 @@ u8 phydm_api_get_txagc(void *dm_void, enum rf_path path, u8 hw_rate) } #endif +#if (RTL8723F_SUPPORT) + if (dm->support_ic_type & ODM_RTL8723F) { + if (hw_rate < 0x4) { + ret = config_phydm_read_txagc_8723f(dm, path, hw_rate, + PDM_CCK); + } else { + ret = config_phydm_read_txagc_8723f(dm, path, hw_rate, + PDM_OFDM); + } + } +#endif + #if (RTL8814B_SUPPORT) - if (dm->support_ic_type & ODM_RTL8814B) { + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { if (hw_rate < 0x4) { ret = config_phydm_read_txagc_8814b(dm, path, hw_rate, PDM_CCK); @@ -2644,6 +2971,12 @@ phydm_api_switch_bw_channel(void *dm_void, u8 ch, u8 pri_ch, break; #endif +#if (RTL8195B_SUPPORT) + case ODM_RTL8195B: + ret = config_phydm_switch_channel_bw_8195b(dm, ch, pri_ch, bw); + break; +#endif + #if (RTL8192F_SUPPORT) case ODM_RTL8192F: ret = config_phydm_switch_channel_bw_8192f(dm, ch, pri_ch, bw); @@ -2662,8 +2995,15 @@ phydm_api_switch_bw_channel(void *dm_void, u8 ch, u8 pri_ch, break; #endif +#if (RTL8723F_SUPPORT) + case ODM_RTL8723F: + ret = config_phydm_switch_channel_bw_8723f(dm, ch, pri_ch, bw); + break; +#endif + #if (RTL8814B_SUPPORT) case ODM_RTL8814B: + case ODM_RTL8814C: ret = config_phydm_switch_channel_bw_8814b(dm, ch, pri_ch, bw); break; #endif @@ -2737,6 +3077,7 @@ phydm_api_trx_mode(void *dm_void, enum bb_path tx_path, enum bb_path rx_path, #if (RTL8814B_SUPPORT) case ODM_RTL8814B: + case ODM_RTL8814C: ret = config_phydm_trx_mode_8814b(dm, tx_path, rx_path); break; #endif @@ -2748,6 +3089,13 @@ phydm_api_trx_mode(void *dm_void, enum bb_path tx_path, enum bb_path rx_path, break; #endif + #if (RTL8723F_SUPPORT) + case ODM_RTL8723F: + ret = config_phydm_trx_mode_8723f(dm, tx_path, rx_path, + tx_path_ctrl); + break; + #endif + #if (RTL8812F_SUPPORT) case ODM_RTL8812F: ret = config_phydm_trx_mode_8812f(dm, tx_path, rx_path, is_2tx); @@ -2774,7 +3122,9 @@ phydm_api_trx_mode(void *dm_void, enum bb_path tx_path, enum bb_path rx_path, } return ret; } -#else +#endif + +#ifdef PHYDM_COMMON_API_NOT_SUPPORT u8 config_phydm_read_txagc_n(void *dm_void, enum rf_path path, u8 hw_rate) { struct dm_struct *dm = (struct dm_struct *)dm_void; diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_api.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_api.h index 117df537..a27b7251 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_api.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_api.h @@ -26,8 +26,8 @@ #ifndef __PHYDM_API_H__ #define __PHYDM_API_H__ -/* 2019.03.05 add reset txagc API for jgr3 ics*/ -#define PHYDM_API_VERSION "2.1" +/* 2019.10.22 Add get/shift rxagc API for 8822C*/ +#define PHYDM_API_VERSION "2.3" /* @1 ============================================================ * 1 Definition @@ -133,7 +133,7 @@ u8 phydm_stop_ic_trx(void *dm_void, u8 set_type); void phydm_dis_cck_trx(void *dm_void, u8 set_type); -void phydm_bw_fixed_enable(void *dm_void, boolean enable); +void phydm_bw_fixed_enable(void *dm_void, u8 enable); void phydm_bw_fixed_setting(void *dm_void); @@ -157,7 +157,13 @@ void phydm_stop_ck320(void *dm_void, u8 enable); boolean phydm_set_bb_txagc_offset(void *dm_void, s8 power_offset, u8 add_half_db); + +boolean phydm_spur_case_mapping(void *dm_void); + +enum odm_rf_band phydm_ch_to_rf_band(void *dm_void, u8 central_ch); #ifdef PHYDM_IC_JGR3_SERIES_SUPPORT +u32 phydm_rf_psd_jgr3(void *dm_void, u8 path, u32 tone_idx); + u8 phydm_csi_mask_setting_jgr3(void *dm_void, u32 enable, u32 ch, u32 bw, u32 f_intf, u32 sec_ch, u8 wgt); @@ -204,6 +210,10 @@ phydm_api_trx_mode(void *dm_void, enum bb_path tx_path, enum bb_path rx_path, #endif +#ifdef PHYDM_COMMON_API_NOT_SUPPORT +u8 config_phydm_read_txagc_n(void *dm_void, enum rf_path path, u8 hw_rate); +#endif + #ifdef CONFIG_MCC_DM #ifdef DYN_ANT_WEIGHTING_SUPPORT void phydm_dynamic_ant_weighting_mcc_8822b(void *dm_void); diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_beamforming.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_beamforming.c index 1e21f402..1c055c8b 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_beamforming.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_beamforming.c @@ -48,6 +48,9 @@ void phydm_get_txbf_device_num( u8 act_as_bfer = 0; u8 act_as_bfee = 0; + if (!(dm->support_ability & ODM_BB_ANT_DIV)) + return; + if (is_sta_active(sta)) { bf = &(sta->bf_info); } else { @@ -71,7 +74,7 @@ void phydm_get_txbf_device_num( act_as_bfee = 1; } - if (act_as_bfer)) + if (act_as_bfer) { /* Our Device act as BFer */ dm_bdc_table->w_bfee_client[macid] = true; dm_bdc_table->num_txbfee_client++; @@ -79,7 +82,7 @@ void phydm_get_txbf_device_num( else dm_bdc_table->w_bfee_client[macid] = false; - if (act_as_bfee)) + if (act_as_bfee) { /* Our Device act as BFee */ dm_bdc_table->w_bfer_client[macid] = true; dm_bdc_table->num_txbfer_client++; diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_beamforming.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_beamforming.h index 26e54c0e..efb53e30 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_beamforming.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_beamforming.h @@ -45,7 +45,7 @@ #define MAX_BEAMFORMEE_SU 2 #define MAX_BEAMFORMER_SU 2 -#if (RTL8822B_SUPPORT == 1) +#if ((RTL8822B_SUPPORT == 1) || (RTL8812F_SUPPORT == 1)) #define MAX_BEAMFORMEE_MU 6 #define MAX_BEAMFORMER_MU 1 #else diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_cck_pd.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_cck_pd.c index 536803bd..15a4b931 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_cck_pd.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_cck_pd.c @@ -85,29 +85,49 @@ void phydm_cckpd_type1(void *dm_void) if (dm->is_linked) { #if (DM_ODM_SUPPORT_TYPE & (ODM_WIN | ODM_CE)) - if (dm->rssi_min > 60) { - lv = CCK_PD_LV_3; - } else if (dm->rssi_min > 35) { - lv = CCK_PD_LV_2; - } else if (dm->rssi_min > 20) { - if (cckpd_t->cck_fa_ma > 500) + if (dm->support_ic_type & ODM_RTL8822B) { + if (dm->rssi_min > 35) { lv = CCK_PD_LV_2; - else if (cckpd_t->cck_fa_ma < 250) + } else if (dm->rssi_min > 20) { + if (cckpd_t->cck_fa_ma > 500) + lv = CCK_PD_LV_2; + else if (cckpd_t->cck_fa_ma < 250) + lv = CCK_PD_LV_1; + else + is_update = false; + } else { /*RSSI < 20*/ lv = CCK_PD_LV_1; - else - is_update = false; - } else { /*RSSI < 20*/ - lv = CCK_PD_LV_1; + } + } else { + if (dm->rssi_min > 60) { + lv = CCK_PD_LV_3; + } else if (dm->rssi_min > 35) { + lv = CCK_PD_LV_2; + } else if (dm->rssi_min > 20) { + if (cckpd_t->cck_fa_ma > 500) + lv = CCK_PD_LV_2; + else if (cckpd_t->cck_fa_ma < 250) + lv = CCK_PD_LV_1; + else + is_update = false; + } else { /*RSSI < 20*/ + lv = CCK_PD_LV_1; + } } #else /*ODM_AP*/ - if (dig_t->cur_ig_value > 0x32) + if (dig_t->cur_ig_value > 0x32) { lv = CCK_PD_LV_4; - else if (dig_t->cur_ig_value > 0x2a) + // remove lv4 only for 8822b + if (dm->support_ic_type & ODM_RTL8822B) { + lv = CCK_PD_LV_3; + } + } else if (dig_t->cur_ig_value > 0x2a) { lv = CCK_PD_LV_3; - else if (dig_t->cur_ig_value > 0x24) + } else if (dig_t->cur_ig_value > 0x24) { lv = CCK_PD_LV_2; - else + } else { lv = CCK_PD_LV_1; + } #endif } else { if (cckpd_t->cck_fa_ma > 1000) @@ -221,6 +241,101 @@ void phydm_set_cckpd_lv_type2(void *dm_void, enum cckpd_lv lv) phydm_write_cck_pd_type2(dm, pd_th, cs_ratio); } +#if 0 +void phydm_set_cckpd_lv_type2_bcn(void *dm_void, enum cckpd_lv lv) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_cckpd_struct *cckpd_t = &dm->dm_cckpd_table; + u8 pd_th = 0, cs_ratio = 0, cs_2r_offset = 0; + u8 cck_n_rx = 1; + u8 cs_ratio_pre = 0; + u8 bcn_cnt = dm->phy_dbg_info.beacon_cnt_in_period; //BCN CNT + u8 ofst = 0; + u8 ofst_direc = 0; //0:+, 1:- + + PHYDM_DBG(dm, DBG_CCKPD, "%s ======>\n", __func__); + PHYDM_DBG(dm, DBG_CCKPD, "lv: (%d) -> (%d)\n", cckpd_t->cck_pd_lv, lv); + + /*@r_mrx & r_cca_mrc*/ + cck_n_rx = (odm_get_bb_reg(dm, R_0xa2c, BIT(18)) && + odm_get_bb_reg(dm, R_0xa2c, BIT(22))) ? 2 : 1; + cs_ratio_pre = (u8)((odm_get_bb_reg(dm, R_0xaa8, 0x1f0000))); + PHYDM_DBG(dm, DBG_CCKPD, "BCN: %d, pre CS ratio: 0x%x\n", bcn_cnt, + cs_ratio_pre); + + if (cckpd_t->cck_pd_lv == lv && cckpd_t->cck_n_rx == cck_n_rx && + (bcn_cnt >= 10 && bcn_cnt < 14)) { + PHYDM_DBG(dm, DBG_CCKPD, "BCN ok, stay lv=%d, cs ratio=0x%x\n", + lv, cs_ratio_pre); + return; + } + + cckpd_t->cck_n_rx = cck_n_rx; + cckpd_t->cck_pd_lv = lv; + cckpd_t->cck_fa_ma = CCK_FA_MA_RESET; + + if (lv == CCK_PD_LV_4) { + cs_ratio = cckpd_t->aaa_default + 8; + cs_2r_offset = 5; + pd_th = 0xd; + } else if (lv == CCK_PD_LV_3) { + cs_ratio = cckpd_t->aaa_default + 6; + cs_2r_offset = 4; + pd_th = 0xd; + } else if (lv == CCK_PD_LV_2) { + cs_ratio = cckpd_t->aaa_default + 4; + cs_2r_offset = 3; + pd_th = 0xd; + } else if (lv == CCK_PD_LV_1) { + cs_ratio = cckpd_t->aaa_default + 2; + cs_2r_offset = 1; + pd_th = 0x7; + } else if (lv == CCK_PD_LV_0) { + cs_ratio = cckpd_t->aaa_default; + cs_2r_offset = 0; + pd_th = 0x3; + } + + if (cckpd_t->cck_n_rx == 2) { + if (cs_ratio >= cs_2r_offset) + cs_ratio = cs_ratio - cs_2r_offset; + else + cs_ratio = 0; + } + + if (bcn_cnt >= 18) { + ofst_direc = 0; + ofst = 0x2; + } else if (bcn_cnt >= 14) { + ofst_direc = 0; + ofst = 0x1; + } else if (bcn_cnt >= 10) { + ofst_direc = 0; + ofst = 0x0; + } else if (bcn_cnt >= 5) { + ofst_direc = 1; + ofst = 0x3; + } else { + ofst_direc = 1; + ofst = 0x4; + } + PHYDM_DBG(dm, DBG_CCKPD, "bcn:(%d), ofst:(%s%d)\n", bcn_cnt, + ((ofst_direc) ? "-" : "+"), ofst); + + if (ofst_direc == 0) + cs_ratio = cs_ratio + ofst; + else + cs_ratio = cs_ratio - ofst; + + if (cs_ratio == cs_ratio_pre) { + PHYDM_DBG(dm, DBG_CCKPD, "Same cs ratio, lv=%d cs_ratio=0x%x\n", + lv, cs_ratio); + return; + } + phydm_write_cck_pd_type2(dm, pd_th, cs_ratio); +} +#endif + void phydm_cckpd_type2(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; @@ -444,6 +559,19 @@ void phydm_cckpd_type3(void *dm_void) else is_update = false; } + if ((dm->anti_interference_en != NULL) && (*dm->anti_interference_en == 1)) { + if (igi >= 0x20 && dm->rssi_min >= 27 && (igi - dm->rssi_min < 10)) { + //printf(">>>>>TUYA CCK FA CNT = %d, RSSI = %d, IGI =%d \n", cckpd_t->cck_fa_ma, dm->rssi_min, igi); + is_update = false; + odm_set_bb_reg(dm, R_0xa08, BIT(21) | BIT(20), 0x2); + //odm_set_bb_reg(dm, R_0xac8, 0xff, 0x18); + } + else { + //printf("CCK FA CNT = %d, RSSI = %d, IGI =%d \n", cckpd_t->cck_fa_ma, dm->rssi_min, igi); + odm_set_bb_reg(dm, R_0xa08, BIT(21) | BIT(20), cckpd_t->cck_din_shift_opt); + //odm_set_bb_reg(dm, R_0xac8, 0xff, cckpd_t->cck_pd_20m_1r); + } + } } else { if (cckpd_t->cck_fa_ma > 1000) lv = CCK_PD_LV_1; @@ -490,6 +618,7 @@ void phydm_cck_pd_init_type3(void *dm_void) cckpd_t->cck_pd_20m_2r = (u8)odm_get_bb_reg(dm, R_0xac8, 0xff00); cckpd_t->cck_pd_40m_1r = (u8)odm_get_bb_reg(dm, R_0xacc, 0xff); cckpd_t->cck_pd_40m_2r = (u8)odm_get_bb_reg(dm, R_0xacc, 0xff00); + cckpd_t->cck_din_shift_opt = (u8)odm_get_bb_reg(dm, R_0xa08, BIT(21) | BIT(20)); reg_tmp = odm_get_bb_reg(dm, R_0xad0, MASKDWORD); cckpd_t->cck_cs_ratio_20m_1r = (u8)(reg_tmp & 0x1f); @@ -671,6 +800,9 @@ void phydm_read_cckpd_para_type4(void *dm_void) u32 reg2 = 0; u32 reg3 = 0; + if (!(dm->debug_components & DBG_CCKPD)) + return; + bw = (u8)odm_get_bb_reg(dm, R_0x9b0, 0xc); n_rx = (u8)odm_get_bb_reg(dm, R_0x1a2c, 0x60000) + 1; @@ -976,11 +1108,468 @@ void phydm_invalid_cckpd_type4(void *dm_void) MAXVALID_CS_RATIO; } } + + #if (RTL8198F_SUPPORT) + if (dm->support_ic_type & ODM_RTL8198F) { + val = cckpd_t->cckpd_jgr3[0][3][1][i]; + if (i == CCK_PD_LV_1 && val > 0x10) + cckpd_t->cckpd_jgr3[0][3][1][i] = 0x10; + else if (i == CCK_PD_LV_2 && val > 0x10) + cckpd_t->cckpd_jgr3[0][3][1][i] = 0x10; + else if (i == CCK_PD_LV_3 && val > 0x10) + cckpd_t->cckpd_jgr3[0][3][1][i] = 0x10; + else if (i == CCK_PD_LV_4 && val > 0x10) + cckpd_t->cckpd_jgr3[0][3][1][i] = 0x10; + val = cckpd_t->cckpd_jgr3[1][3][1][i]; + if (i == CCK_PD_LV_1 && val > 0xF) + cckpd_t->cckpd_jgr3[1][3][1][i] = 0xF; + else if (i == CCK_PD_LV_2 && val > 0xF) + cckpd_t->cckpd_jgr3[1][3][1][i] = 0xF; + else if (i == CCK_PD_LV_3 && val > 0xF) + cckpd_t->cckpd_jgr3[1][3][1][i] = 0xF; + else if (i == CCK_PD_LV_4 && val > 0xF) + cckpd_t->cckpd_jgr3[1][3][1][i] = 0xF; + } + #endif } } #endif /*#ifdef PHYDM_COMPILE_CCKPD_TYPE4*/ + +#ifdef PHYDM_COMPILE_CCKPD_TYPE5 +void phydm_write_cck_pd_type5(void *dm_void, enum cckpd_lv lv, + enum cckpd_mode mode) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_cckpd_struct *cckpd_t = &dm->dm_cckpd_table; + u32 val = 0; + + PHYDM_DBG(dm, DBG_CCKPD, "write CCK CCA parameters(CS_ratio & PD)\n"); + switch (mode) { + case CCK_BW20_1R: /*RFBW20_1R*/ + { + val = cckpd_t->cck_pd_table_jgr3[0][0][0][lv]; + odm_set_bb_reg(dm, R_0x1a30, 0x1f, val); + val = cckpd_t->cck_pd_table_jgr3[0][0][1][lv]; + odm_set_bb_reg(dm, R_0x1a20, 0x1f, val); + } break; + case CCK_BW40_1R: /*RFBW40_1R*/ + { + val = cckpd_t->cck_pd_table_jgr3[1][0][0][lv]; + odm_set_bb_reg(dm, R_0x1a34, 0x1f, val); + val = cckpd_t->cck_pd_table_jgr3[1][0][1][lv]; + odm_set_bb_reg(dm, R_0x1a24, 0x1f, val); + } break; + #if (defined(PHYDM_COMPILE_ABOVE_2SS)) + case CCK_BW20_2R: /*RFBW20_2R*/ + { + val = cckpd_t->cck_pd_table_jgr3[0][1][0][lv]; + odm_set_bb_reg(dm, R_0x1a30, 0x3e0, val); + val = cckpd_t->cck_pd_table_jgr3[0][1][1][lv]; + odm_set_bb_reg(dm, R_0x1a20, 0x3e0, val); + } break; + case CCK_BW40_2R: /*RFBW40_2R*/ + { + val = cckpd_t->cck_pd_table_jgr3[1][1][0][lv]; + odm_set_bb_reg(dm, R_0x1a34, 0x3e0, val); + val = cckpd_t->cck_pd_table_jgr3[1][1][1][lv]; + odm_set_bb_reg(dm, R_0x1a24, 0x3e0, val); + } break; + #endif + #if (defined(PHYDM_COMPILE_ABOVE_3SS)) + case CCK_BW20_3R: /*RFBW20_3R*/ + { + val = cckpd_t->cck_pd_table_jgr3[0][2][0][lv]; + odm_set_bb_reg(dm, R_0x1a30, 0x7c00, val); + val = cckpd_t->cck_pd_table_jgr3[0][2][1][lv]; + odm_set_bb_reg(dm, R_0x1a20, 0x7c00, val); + } break; + case CCK_BW40_3R: /*RFBW40_3R*/ + { + val = cckpd_t->cck_pd_table_jgr3[1][2][0][lv]; + odm_set_bb_reg(dm, R_0x1a34, 0x7c00, val); + val = cckpd_t->cck_pd_table_jgr3[1][2][1][lv]; + odm_set_bb_reg(dm, R_0x1a24, 0x7c00, val); + } break; + #endif + #if (defined(PHYDM_COMPILE_ABOVE_4SS)) + case CCK_BW20_4R: /*RFBW20_4R*/ + { + val = cckpd_t->cck_pd_table_jgr3[0][3][0][lv]; + odm_set_bb_reg(dm, R_0x1a30, 0xF8000, val); + val = cckpd_t->cck_pd_table_jgr3[0][3][1][lv]; + odm_set_bb_reg(dm, R_0x1a20, 0xF8000, val); + } break; + case CCK_BW40_4R: /*RFBW40_4R*/ + { + val = cckpd_t->cck_pd_table_jgr3[1][3][0][lv]; + odm_set_bb_reg(dm, R_0x1a34, 0xF8000, val); + val = cckpd_t->cck_pd_table_jgr3[1][3][1][lv]; + odm_set_bb_reg(dm, R_0x1a24, 0xF8000, val); + } break; + #endif + default: + /*@pr_debug("[%s] warning!\n", __func__);*/ + break; + } +} + + +void phydm_set_cck_pd_lv_type5(void *dm_void, enum cckpd_lv lv) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_cckpd_struct *cckpd_t = &dm->dm_cckpd_table; + enum cckpd_mode cck_mode = CCK_BW20_1R; + enum channel_width cck_bw = CHANNEL_WIDTH_20; + u8 cck_n_rx = 0; + u32 val = 0; + /*u32 val_dbg = 0;*/ + + PHYDM_DBG(dm, DBG_CCKPD, "%s ======>\n", __func__); + PHYDM_DBG(dm, DBG_CCKPD, "lv: (%d) -> (%d)\n", cckpd_t->cck_pd_lv, lv); + + /*[Check Nrx] for 8723F*/ + cck_n_rx = 1; + + /*[Check BW]*/ + val = odm_get_bb_reg(dm, R_0x9b0, 0xc); + if (val == 0) + cck_bw = CHANNEL_WIDTH_20; + else if (val == 1) + cck_bw = CHANNEL_WIDTH_40; + else + cck_bw = CHANNEL_WIDTH_80; + + /*[Check LV]*/ + if (cckpd_t->cck_pd_lv == lv && + cckpd_t->cck_n_rx == cck_n_rx && + cckpd_t->cck_bw == cck_bw) { + PHYDM_DBG(dm, DBG_CCKPD, "stay in lv=%d\n", lv); + return; + } + cckpd_t->cck_bw = cck_bw; + cckpd_t->cck_n_rx = cck_n_rx; + cckpd_t->cck_pd_lv = lv; + cckpd_t->cck_fa_ma = CCK_FA_MA_RESET; + + switch (cck_n_rx) { + case 1: /*1R*/ + { + if (cck_bw == CHANNEL_WIDTH_20) + cck_mode = CCK_BW20_1R; + else if (cck_bw == CHANNEL_WIDTH_40) + cck_mode = CCK_BW40_1R; + } break; + #if (defined(PHYDM_COMPILE_ABOVE_2SS)) + case 2: /*2R*/ + { + if (cck_bw == CHANNEL_WIDTH_20) + cck_mode = CCK_BW20_2R; + else if (cck_bw == CHANNEL_WIDTH_40) + cck_mode = CCK_BW40_2R; + } break; + #endif + #if (defined(PHYDM_COMPILE_ABOVE_3SS)) + case 3: /*3R*/ + { + if (cck_bw == CHANNEL_WIDTH_20) + cck_mode = CCK_BW20_3R; + else if (cck_bw == CHANNEL_WIDTH_40) + cck_mode = CCK_BW40_3R; + } break; + #endif + #if (defined(PHYDM_COMPILE_ABOVE_4SS)) + case 4: /*4R*/ + { + if (cck_bw == CHANNEL_WIDTH_20) + cck_mode = CCK_BW20_4R; + else if (cck_bw == CHANNEL_WIDTH_40) + cck_mode = CCK_BW40_4R; + } break; + #endif + default: + /*@pr_debug("[%s] warning!\n", __func__);*/ + break; + } + + + +phydm_write_cck_pd_type5(dm, lv, cck_mode); +} + +void phydm_read_cckpd_para_type5(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_cckpd_struct *cckpd_t = &dm->dm_cckpd_table; + u8 bw = 0; /*r_RX_RF_BW*/ + u8 n_rx = 0; + u8 curr_cck_pd_t[2][4][2]; + u32 reg0 = 0; + u32 reg1 = 0; + u32 reg2 = 0; + u32 reg3 = 0; + + bw = (u8)odm_get_bb_reg(dm, R_0x9b0, 0xc); + + reg0 = odm_get_bb_reg(dm, R_0x1a30, MASKDWORD); + reg1 = odm_get_bb_reg(dm, R_0x1a34, MASKDWORD); + reg2 = odm_get_bb_reg(dm, R_0x1a20, MASKDWORD); + reg3 = odm_get_bb_reg(dm, R_0x1a24, MASKDWORD); + curr_cck_pd_t[0][0][0] = (u8)(reg0 & 0x0000001f); + curr_cck_pd_t[1][0][0] = (u8)(reg1 & 0x0000001f); + curr_cck_pd_t[0][0][1] = (u8)(reg2 & 0x0000001f); + curr_cck_pd_t[1][0][1] = (u8)(reg3 & 0x0000001f); + n_rx = 1; + #if (defined(PHYDM_COMPILE_ABOVE_2SS)) + if (dm->support_ic_type & PHYDM_IC_ABOVE_2SS) { + curr_cck_pd_t[0][1][0] = (u8)((reg0 & 0x000003E0) >> 5); + curr_cck_pd_t[1][1][0] = (u8)((reg1 & 0x000003E0) >> 5); + curr_cck_pd_t[0][1][1] = (u8)((reg2 & 0x000003E0) >> 5); + curr_cck_pd_t[1][1][1] = (u8)((reg3 & 0x000003E0) >> 5); + n_rx = 2; + } + #endif + #if (defined(PHYDM_COMPILE_ABOVE_3SS)) + if (dm->support_ic_type & PHYDM_IC_ABOVE_3SS) { + curr_cck_pd_t[0][2][0] = (u8)((reg0 & 0x00007C00) >> 10); + curr_cck_pd_t[1][2][0] = (u8)((reg1 & 0x00007C00) >> 10); + curr_cck_pd_t[0][2][1] = (u8)((reg2 & 0x00007C00) >> 10); + curr_cck_pd_t[1][2][1] = (u8)((reg3 & 0x00007C00) >> 10); + n_rx = 3; + } + #endif + #if (defined(PHYDM_COMPILE_ABOVE_4SS)) + if (dm->support_ic_type & PHYDM_IC_ABOVE_4SS) { + curr_cck_pd_t[0][3][0] = (u8)((reg0 & 0x000F8000) >> 15); + curr_cck_pd_t[1][3][0] = (u8)((reg1 & 0x000F8000) >> 15); + curr_cck_pd_t[0][3][1] = (u8)((reg2 & 0x000F8000) >> 15); + curr_cck_pd_t[1][3][1] = (u8)((reg3 & 0x000F8000) >> 15); + n_rx = 4; + } + #endif + + PHYDM_DBG(dm, DBG_CCKPD, "bw=%dM, Nrx=%d\n", 20 << bw, n_rx); + PHYDM_DBG(dm, DBG_CCKPD, "lv=%d, readback CS_th=0x%x, PD th=0x%x\n", + cckpd_t->cck_pd_lv, + curr_cck_pd_t[bw][n_rx - 1][1], + curr_cck_pd_t[bw][n_rx - 1][0]); +} + +void phydm_cckpd_type5(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_cckpd_struct *cckpd_t = &dm->dm_cckpd_table; + u8 igi = dm->dm_dig_table.cur_ig_value; + enum cckpd_lv lv = 0; + boolean is_update = true; + + PHYDM_DBG(dm, DBG_CCKPD, "%s ======>\n", __func__); + + if (dm->is_linked) { + PHYDM_DBG(dm, DBG_CCKPD, "Linked!!!\n"); + if (dm->rssi_min > 40) { + lv = CCK_PD_LV_4; + PHYDM_DBG(dm, DBG_CCKPD, "Order 1\n"); + } else if (dm->rssi_min > 32) { + lv = CCK_PD_LV_3; + PHYDM_DBG(dm, DBG_CCKPD, "Order 2\n"); + } else if (dm->rssi_min > 24) { + lv = CCK_PD_LV_2; + PHYDM_DBG(dm, DBG_CCKPD, "Order 3\n"); + } else { + if (cckpd_t->cck_fa_ma > 1000) { + lv = CCK_PD_LV_1; + PHYDM_DBG(dm, DBG_CCKPD, "Order 4-1\n"); + } else if (cckpd_t->cck_fa_ma < 500) { + lv = CCK_PD_LV_0; + PHYDM_DBG(dm, DBG_CCKPD, "Order 4-2\n"); + } else { + is_update = false; + PHYDM_DBG(dm, DBG_CCKPD, "Order 4-3\n"); + } + } + } else { + PHYDM_DBG(dm, DBG_CCKPD, "UnLinked!!!\n"); + if (cckpd_t->cck_fa_ma > 1000) { + lv = CCK_PD_LV_1; + PHYDM_DBG(dm, DBG_CCKPD, "Order 1\n"); + } else if (cckpd_t->cck_fa_ma < 500) { + lv = CCK_PD_LV_0; + PHYDM_DBG(dm, DBG_CCKPD, "Order 2\n"); + } else { + is_update = false; + PHYDM_DBG(dm, DBG_CCKPD, "Order 3\n"); + } + } + + if (is_update) { + phydm_set_cck_pd_lv_type5(dm, lv); + + PHYDM_DBG(dm, DBG_CCKPD, "setting CS_th = 0x%x, PD th = 0x%x\n", + cckpd_t->cck_pd_table_jgr3[cckpd_t->cck_bw] + [cckpd_t->cck_n_rx - 1][1][lv], + cckpd_t->cck_pd_table_jgr3[cckpd_t->cck_bw] + [cckpd_t->cck_n_rx - 1][0][lv]); + } + + phydm_read_cckpd_para_type5(dm); +} + +void phydm_cck_pd_init_type5(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_cckpd_struct *cckpd_t = &dm->dm_cckpd_table; + u32 reg0 = 0; + u32 reg1 = 0; + u32 reg2 = 0; + u32 reg3 = 0; + u8 pw_step = 0; + u8 cs_step = 0; + u8 cck_bw = 0; /*r_RX_RF_BW*/ + u8 cck_n_rx = 0; + u8 val = 0; + u8 i = 0; + + PHYDM_DBG(dm, DBG_CCKPD, "[%s]======>\n", __func__); + #if 0 + /*@ + *cckpd_t[0][0][0][0] = 1a30[4:0] r_PD_lim_RFBW20_1R + *cckpd_t[0][1][0][0] = 1a30[9:5] r_PD_lim_RFBW20_2R + *cckpd_t[0][2][0][0] = 1a30[14:10] r_PD_lim_RFBW20_3R + *cckpd_t[0][3][0][0] = 1a30[19:15] r_PD_lim_RFBW20_4R + *cckpd_t[1][0][0][0] = 1a34[4:0] r_PD_lim_RFBW40_1R + *cckpd_t[1][1][0][0] = 1a34[9:5] r_PD_lim_RFBW40_2R + *cckpd_t[1][2][0][0] = 1a34[14:10] r_PD_lim_RFBW40_3R + *cckpd_t[1][3][0][0] = 1a34[19:15] r_PD_lim_RFBW40_4R + * + * + *cckpd_t[0][0][1][0] = 1a20[4:0] r_CS_ratio_RFBW20_1R + *cckpd_t[0][1][1][0] = 1a20[9:5] r_CS_ratio_RFBW20_2R + *cckpd_t[0][2][1][0] = 1a20[14:10] r_CS_ratio_RFBW20_3R + *cckpd_t[0][3][1][0] = 1a20[19:15] r_CS_ratio_RFBW20_4R + *cckpd_t[1][0][1][0] = 1a24[4:0] r_CS_ratio_RFBW40_1R + *cckpd_t[1][1][1][0] = 1a24[9:5] r_CS_ratio_RFBW40_2R + *cckpd_t[1][2][1][0] = 1a24[14:10] r_CS_ratio_RFBW40_3R + *cckpd_t[1][3][1][0] = 1a24[19:15] r_CS_ratio_RFBW40_4R + */ + #endif + /*[Check Nrx]*/ + cck_n_rx = 1; + + /*[Check BW]*/ + val = (u8)odm_get_bb_reg(dm, R_0x9b0, 0xc); + if (val == 0) + cck_bw = CHANNEL_WIDTH_20; + else if (val == 1) + cck_bw = CHANNEL_WIDTH_40; + else + cck_bw = CHANNEL_WIDTH_80; + + cckpd_t->cck_bw = cck_bw; + reg0 = odm_get_bb_reg(dm, R_0x1a30, MASKDWORD); + reg1 = odm_get_bb_reg(dm, R_0x1a34, MASKDWORD); + reg2 = odm_get_bb_reg(dm, R_0x1a20, MASKDWORD); + reg3 = odm_get_bb_reg(dm, R_0x1a24, MASKDWORD); + + for (i = 0 ; i < CCK_PD_LV_MAX ; i++) { + pw_step = i * 2; + cs_step = i * 2; + + #if (RTL8723F_SUPPORT) + if (dm->support_ic_type & ODM_RTL8723F) { + if (i == CCK_PD_LV_1) { + pw_step = 9; /*IGI-19.2:0x11=d'17*/ + cs_step = 0; + } else if (i == CCK_PD_LV_2) { + pw_step = 12; /*IGI-15.5:0x14=d'20*/ + cs_step = 1; + } else if (i == CCK_PD_LV_3) { + pw_step = 14; /*IGI-14:0x16=d'22*/ + cs_step = 1; + } else if (i == CCK_PD_LV_4) { + pw_step = 17; /*IGI-12:0x19=d'25*/ + cs_step = 1; + } + } + #endif + val = (u8)(reg0 & 0x0000001F) + pw_step; + PHYDM_DBG(dm, DBG_CCKPD, "lvl %d val = %x\n\n", i, val); + cckpd_t->cck_pd_table_jgr3[0][0][0][i] = val; + + val = (u8)(reg1 & 0x0000001F) + pw_step; + cckpd_t->cck_pd_table_jgr3[1][0][0][i] = val; + + val = (u8)(reg2 & 0x0000001F) + cs_step; + cckpd_t->cck_pd_table_jgr3[0][0][1][i] = val; + + val = (u8)(reg3 & 0x0000001F) + cs_step; + cckpd_t->cck_pd_table_jgr3[1][0][1][i] = val; + + #ifdef PHYDM_COMPILE_ABOVE_2SS + if (dm->support_ic_type & PHYDM_IC_ABOVE_2SS) { + val = (u8)((reg0 & 0x000003E0) >> 5) + pw_step; + cckpd_t->cck_pd_table_jgr3[0][1][0][i] = val; + + val = (u8)((reg1 & 0x000003E0) >> 5) + pw_step; + cckpd_t->cck_pd_table_jgr3[1][1][0][i] = val; + + val = (u8)((reg2 & 0x000003E0) >> 5) + cs_step; + cckpd_t->cck_pd_table_jgr3[0][1][1][i] = val; + + val = (u8)((reg3 & 0x000003E0) >> 5) + cs_step; + cckpd_t->cck_pd_table_jgr3[1][1][1][i] = val; + + cck_n_rx = 2; + } + #endif + #ifdef PHYDM_COMPILE_ABOVE_3SS + if (dm->support_ic_type & PHYDM_IC_ABOVE_3SS) { + val = (u8)((reg0 & 0x00007C00) >> 10) + pw_step; + cckpd_t->cck_pd_table_jgr3[0][2][0][i] = val; + + val = (u8)((reg1 & 0x00007C00) >> 10) + pw_step; + cckpd_t->cck_pd_table_jgr3[1][2][0][i] = val; + + val = (u8)((reg2 & 0x00007C00) >> 10) + cs_step; + cckpd_t->cck_pd_table_jgr3[0][2][1][i] = val; + + val = (u8)((reg3 & 0x00007C00) >> 10) + cs_step; + cckpd_t->cck_pd_table_jgr3[1][2][1][i] = val; + + cck_n_rx = 3; + } + #endif + + #ifdef PHYDM_COMPILE_ABOVE_4SS + if (dm->support_ic_type & PHYDM_IC_ABOVE_4SS) { + val = (u8)((reg0 & 0x000F8000) >> 15) + pw_step; + cckpd_t->cck_pd_table_jgr3[0][3][0][i] = val; + + val = (u8)((reg1 & 0x000F8000) >> 15) + pw_step; + cckpd_t->cck_pd_table_jgr3[1][3][0][i] = val; + + val = (u8)((reg2 & 0x000F8000) >> 15) + cs_step; + cckpd_t->cck_pd_table_jgr3[0][3][1][i] = val; + + val = (u8)((reg3 & 0x000F8000) >> 15) + cs_step; + cckpd_t->cck_pd_table_jgr3[1][3][1][i] = val; + + cck_n_rx = 4; + } + #endif + } + cckpd_t->cck_n_rx = cck_n_rx; +} + + + + +#endif /*#ifdef PHYDM_COMPILE_CCKPD_TYPE5*/ + + + + void phydm_set_cckpd_val(void *dm_void, u32 *val_buf, u8 val_len) { struct dm_struct *dm = (struct dm_struct *)dm_void; @@ -1020,6 +1609,11 @@ void phydm_set_cckpd_val(void *dm_void, u32 *val_buf, u8 val_len) phydm_set_cck_pd_lv_type4(dm, lv); break; #endif + #ifdef PHYDM_COMPILE_CCKPD_TYPE5 + case 5: + phydm_set_cck_pd_lv_type5(dm, lv); + break; + #endif default: pr_debug("[%s]warning\n", __func__); break; @@ -1104,7 +1698,17 @@ void phydm_cck_pd_th(void *dm_void) #endif #ifdef PHYDM_COMPILE_CCKPD_TYPE4 case 4: - phydm_cckpd_type4(dm); + #ifdef PHYDM_DCC_ENHANCE + if (dm->dm_dcc_info.dcc_en) + phydm_cckpd_type4_dcc(dm); + else + #endif + phydm_cckpd_type4(dm); + break; + #endif + #ifdef PHYDM_COMPILE_CCKPD_TYPE5 + case 5: + phydm_cckpd_type5(dm); break; #endif default: @@ -1130,36 +1734,46 @@ void phydm_cck_pd_init(void *dm_void) else if (dm->support_ic_type & CCK_PD_IC_TYPE4) cckpd_t->cckpd_hw_type = 4; + if (dm->support_ic_type & CCK_PD_IC_TYPE5) + cckpd_t->cckpd_hw_type = 5; + PHYDM_DBG(dm, DBG_CCKPD, "[%s] cckpd_hw_type=%d\n", __func__, cckpd_t->cckpd_hw_type); cckpd_t->cck_pd_lv = CCK_PD_LV_INIT; cckpd_t->cck_n_rx = 0xff; cckpd_t->cck_bw = CHANNEL_WIDTH_MAX; + cckpd_t->cck_fa_th[1] = 400; + cckpd_t->cck_fa_th[0] = 200; switch (cckpd_t->cckpd_hw_type) { #ifdef PHYDM_COMPILE_CCKPD_TYPE1 case 1: - phydm_set_cckpd_lv_type1(dm, CCK_PD_LV_0); + phydm_set_cckpd_lv_type1(dm, CCK_PD_LV_1); break; #endif #ifdef PHYDM_COMPILE_CCKPD_TYPE2 case 2: cckpd_t->aaa_default = odm_read_1byte(dm, 0xaaa) & 0x1f; - phydm_set_cckpd_lv_type2(dm, CCK_PD_LV_0); + phydm_set_cckpd_lv_type2(dm, CCK_PD_LV_1); break; #endif #ifdef PHYDM_COMPILE_CCKPD_TYPE3 case 3: phydm_cck_pd_init_type3(dm); - phydm_set_cckpd_lv_type3(dm, CCK_PD_LV_0); + phydm_set_cckpd_lv_type3(dm, CCK_PD_LV_1); break; #endif #ifdef PHYDM_COMPILE_CCKPD_TYPE4 case 4: phydm_cck_pd_init_type4(dm); phydm_invalid_cckpd_type4(dm); - phydm_set_cck_pd_lv_type4(dm, CCK_PD_LV_0); + phydm_set_cck_pd_lv_type4(dm, CCK_PD_LV_1); + break; + #endif + #ifdef PHYDM_COMPILE_CCKPD_TYPE5 + case 5: + phydm_cck_pd_init_type5(dm); break; #endif default: @@ -1167,5 +1781,160 @@ void phydm_cck_pd_init(void *dm_void) break; } } + +#ifdef PHYDM_DCC_ENHANCE + +void phydm_cckpd_type4_dcc(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_cckpd_struct *cckpd_t = &dm->dm_cckpd_table; + enum cckpd_lv lv_curr = cckpd_t->cck_pd_lv; + enum phydm_cck_pd_trend trend = CCKPD_STABLE; + u8 th_ofst = 0; + u16 lv_up_th, lv_down_th; + + PHYDM_DBG(dm, DBG_CCKPD, "%s ======>\n", __func__); + + if (!dm->is_linked) + th_ofst = 1; + + lv_up_th = (cckpd_t->cck_fa_th[1]) << th_ofst; + lv_down_th = (cckpd_t->cck_fa_th[0]) << th_ofst; + + PHYDM_DBG(dm, DBG_CCKPD, "th{Up, Down}: {%d, %d}\n", + lv_up_th, lv_down_th); + + if (cckpd_t->cck_fa_ma > lv_up_th) { + if (lv_curr <= CCK_PD_LV_3) { + lv_curr++; + trend = CCKPD_INCREASING; + } else { + lv_curr = CCK_PD_LV_4; + } + } else if (cckpd_t->cck_fa_ma < lv_down_th) { + if (lv_curr >= CCK_PD_LV_1) { + lv_curr--; + trend = CCKPD_DECREASING; + } else { + lv_curr = CCK_PD_LV_0; + } + } + + PHYDM_DBG(dm, DBG_CCKPD, "lv: %d->%d\n", cckpd_t->cck_pd_lv, lv_curr); +#if 1 + if (trend != CCKPD_STABLE) { + phydm_set_cck_pd_lv_type4(dm, lv_curr); + + PHYDM_DBG(dm, DBG_CCKPD, "setting CS_th = 0x%x, PD th = 0x%x\n", + cckpd_t->cckpd_jgr3[cckpd_t->cck_bw] + [cckpd_t->cck_n_rx - 1][1][lv_curr], + cckpd_t->cckpd_jgr3[cckpd_t->cck_bw] + [cckpd_t->cck_n_rx - 1][0][lv_curr]); + } + phydm_read_cckpd_para_type4(dm); +#endif +} + +boolean phydm_do_cckpd(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_dig_struct *dig_t = &dm->dm_dig_table; + + if (dig_t->igi_trend == DIG_INCREASING) + return false; + + return true; +} + +void phydm_dig_cckpd_coex(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_dcc_struct *dcc = &dm->dm_dcc_info; + + if (*dm->channel > 36) { + phydm_dig(dm); + return; + } else if (!dcc->dcc_en) { + phydm_dig(dm); + phydm_cck_pd_th(dm); + return; + } + + dcc->dig_execute_cnt++; + PHYDM_DBG(dm, DBG_CCKPD, "DCC_cnt: %d\n", dcc->dig_execute_cnt); + + if (dcc->dig_execute_cnt % dcc->dcc_ratio) { + PHYDM_DBG(dm, DBG_CCKPD, "DCC: DIG\n"); + phydm_dig(dm); + } else { + if (phydm_do_cckpd(dm)) { + PHYDM_DBG(dm, DBG_CCKPD, "DCC: CCKPD\n"); + dcc->dcc_mode = DCC_CCK_PD; + phydm_cck_pd_th(dm); + } else { + PHYDM_DBG(dm, DBG_CCKPD, "DCC: Boost_DIG\n"); + dcc->dcc_mode = DCC_DIG; + phydm_dig(dm); + } + } +} + +void phydm_dig_cckpd_coex_init(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_dig_struct *dig_t = &dm->dm_dig_table; + struct phydm_dcc_struct *dcc = &dm->dm_dcc_info; + + dcc->dcc_mode = DCC_DIG; + dcc->dcc_en = false; + dcc->dig_execute_cnt = 0; + dcc->dcc_ratio = 2; +} + +void phydm_dig_cckpd_coex_dbg(void *dm_void, char input[][16], u32 *_used, + char *output, u32 *_out_len) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_cckpd_struct *cckpd_t = &dm->dm_cckpd_table; + struct phydm_dcc_struct *dcc = &dm->dm_dcc_info; + char help[] = "-h"; + u32 var[10] = {0}; + u32 used = *_used; + u32 out_len = *_out_len; + u8 i = 0; + + for (i = 0; i < 3; i++) { + if (input[i + 1]) + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &var[i]); + } + + if ((strcmp(input[1], help) == 0)) { + PDM_SNPF(out_len, used, output + used, out_len - used, + "Enable: en {0/1}\n"); + PDM_SNPF(out_len, used, output + used, out_len - used, + "DCC_ratio: ratio {x}\n"); + PDM_SNPF(out_len, used, output + used, out_len - used, + "threshold: th {Down_th} {Up_th}\n"); + } else if ((strcmp(input[1], "en") == 0)) { + dcc->dcc_en = (var[1]) ? true : false; + PDM_SNPF(out_len, used, output + used, out_len - used, + "en=%d\n", dcc->dcc_en); + } else if ((strcmp(input[1], "ratio") == 0)) { + dcc->dcc_ratio = (u8)var[1]; + PDM_SNPF(out_len, used, output + used, out_len - used, + "Ratio=%d\n", dcc->dcc_ratio); + } else if ((strcmp(input[1], "th") == 0)) { + cckpd_t->cck_fa_th[1] = (u16)var[2]; + cckpd_t->cck_fa_th[0] = (u16)var[1]; + PDM_SNPF(out_len, used, output + used, out_len - used, + "th{Down, Up}: {%d, %d}\n", + cckpd_t->cck_fa_th[0], cckpd_t->cck_fa_th[1]); + } + + *_used = used; + *_out_len = out_len; +} + +#endif #endif /*#ifdef PHYDM_SUPPORT_CCKPD*/ diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_cck_pd.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_cck_pd.h index ccb354fd..2a1d3eab 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_cck_pd.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_cck_pd.h @@ -26,8 +26,8 @@ #ifndef __PHYDM_CCK_PD_H__ #define __PHYDM_CCK_PD_H__ -/* 2019.05.09 Modify the return criterion of supportability of CCK_PD*/ -#define CCK_PD_VERSION "3.5" +/* 2019.12.25 decrease CS_ratio in 8822C due to Lenovo test result(PCIE-5136).*/ +#define CCK_PD_VERSION "4.0" /*@ * 1 ============================================================ @@ -52,6 +52,7 @@ /*@extend for different bw & path*/ #define CCK_PD_IC_TYPE4 ODM_IC_JGR3_SERIES /*@extend for different bw & path*/ +#define CCK_PD_IC_TYPE5 (ODM_RTL8723F) /*@extend for different CR*/ /*@Compile time flag of CCK_PD HW type*/ #if (RTL8188E_SUPPORT || RTL8812A_SUPPORT || RTL8821A_SUPPORT ||\ @@ -73,6 +74,10 @@ #ifdef PHYDM_IC_JGR3_SERIES_SUPPORT #define PHYDM_COMPILE_CCKPD_TYPE4 /*@extend for different bw & path*/ #endif +#if (RTL8723F_SUPPORT) + #define PHYDM_COMPILE_CCKPD_TYPE5 /*@extend for different & path*/ +#endif + /*@ * 1 ============================================================ * 1 enumeration @@ -99,6 +104,17 @@ enum cckpd_mode { CCK_BW40_4R = 7 }; +enum dcc_mode { + DCC_DIG = 0, + DCC_CCK_PD = 1 +}; + +enum phydm_cck_pd_trend { + CCKPD_STABLE = 0, + CCKPD_INCREASING = 1, + CCKPD_DECREASING = 2 +}; + /*@ * 1 ============================================================ * 1 structure @@ -106,6 +122,16 @@ enum cckpd_mode { */ #ifdef PHYDM_SUPPORT_CCKPD + +#ifdef PHYDM_DCC_ENHANCE +struct phydm_dcc_struct { /*DIG CCK_PD coexistence*/ + boolean dcc_en; + enum dcc_mode dcc_mode; + u32 dig_execute_cnt; + u8 dcc_ratio; +}; +#endif + struct phydm_cckpd_struct { u8 cckpd_hw_type; u8 cur_cck_cca_thres; /*@current cck_pd value 0xa0a*/ @@ -113,6 +139,7 @@ struct phydm_cckpd_struct { u32 rvrt_val; /*all rvrt_val for pause API must set to u32*/ u8 pause_lv; u8 cck_n_rx; + u16 cck_fa_th[2]; enum channel_width cck_bw; enum cckpd_lv cck_pd_lv; #ifdef PHYDM_COMPILE_CCKPD_TYPE2 @@ -129,6 +156,7 @@ struct phydm_cckpd_struct { u8 cck_cs_ratio_20m_2r; u8 cck_cs_ratio_40m_1r; u8 cck_cs_ratio_40m_2r; + u8 cck_din_shift_opt; /*Current value*/ u8 cur_cck_pd_20m_1r; u8 cur_cck_pd_20m_2r; @@ -143,6 +171,10 @@ struct phydm_cckpd_struct { /*@[bw][nrx][0:PD/1:CS][lv]*/ u8 cckpd_jgr3[2][4][2][CCK_PD_LV_MAX]; #endif + #ifdef PHYDM_COMPILE_CCKPD_TYPE5 + /*@[bw][nrx][0:PD/1:CS][lv]*/ + u8 cck_pd_table_jgr3[2][4][2][CCK_PD_LV_MAX]; + #endif }; #endif @@ -156,4 +188,15 @@ void phydm_set_cckpd_val(void *dm_void, u32 *val_buf, u8 val_len); void phydm_cck_pd_th(void *dm_void); void phydm_cck_pd_init(void *dm_void); + +#ifdef PHYDM_DCC_ENHANCE +void phydm_cckpd_type4_dcc(void *dm_void); + +void phydm_dig_cckpd_coex(void *dm_void); + +void phydm_dig_cckpd_coex_init(void *dm_void); + +void phydm_dig_cckpd_coex_dbg(void *dm_void, char input[][16], u32 *_used, + char *output, u32 *_out_len); +#endif #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_cck_rx_pathdiv.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_cck_rx_pathdiv.c index bbe05e3a..3106f193 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_cck_rx_pathdiv.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_cck_rx_pathdiv.c @@ -131,8 +131,7 @@ void phydm_cck_rx_pathdiv_dbg(void *dm_void, char input[][16], u32 *_used, return; for (i = 0; i < 3; i++) { - if (input[i + 1]) - PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &var1[i]); + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &var1[i]); } if ((strcmp(input[1], help) == 0)) { diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_ccx.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_ccx.c index 4d87ed2a..dc88a20e 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_ccx.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_ccx.c @@ -26,6 +26,35 @@ #include "mp_precomp.h" #include "phydm_precomp.h" +u8 phydm_env_mntr_get_802_11_k_rsni(void *dm_void, s8 rcpi, s8 anpi) +{ + u8 rsni = 0; + u8 signal = 0; + u8 sig_to_rsni[13] = {0, 8, 15, 20, 24, 27, 30, 32, 35, 37, 39, 41, 43}; + + /*rcpi = signal + noise + interference = rssi*/ + /*anpi = noise + interferecne = nhm*/ + /*signal = rcpi - anpi*/ + + /*rsni = 2*(10*log10((rcpi_lin/anpi_lin)-1)+10), unit = 0.5dB*/ + /*rcpi_lin/anpi_lin=10^((rcpi_dB-anpi_db)/10)*/ + /*rsni is approximated as 2*((rcpi_db-anpi_db)+10) when signal >= 13*/ + + if (rcpi <= anpi) + signal = 0; + else if (rcpi - anpi >= 117) + signal = 117; + else + signal = rcpi - anpi; + + if (signal < 13) + rsni = sig_to_rsni[signal]; + else + rsni = 2 * (signal + 10); + + return rsni; +} + void phydm_ccx_hw_restart(void *dm_void) /*@Will Restart NHM/CLM/FAHM simultaneously*/ { @@ -48,284 +77,15 @@ void phydm_ccx_hw_restart(void *dm_void) odm_set_bb_reg(dm, reg1, BIT(8), 0x1); } -#ifdef FAHM_SUPPORT - -u16 phydm_hw_divider(void *dm_void, u16 numerator, u16 denumerator) +u8 phydm_ccx_get_rpt_ratio(void *dm_void, u16 rpt, u16 denom) { - struct dm_struct *dm = (struct dm_struct *)dm_void; - u16 result = DEVIDER_ERROR; - u32 tmp_u32 = ((numerator << 16) | denumerator); - u32 reg_devider_input; - u32 reg; - u8 i; + u32 numer = 0; - PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); + numer = rpt * 100 + (denom >> 1); - if (dm->support_ic_type & ODM_IC_11AC_SERIES) { - reg_devider_input = 0x1cbc; - reg = 0x1f98; - } else { - reg_devider_input = 0x980; - reg = 0x9f0; - } - - odm_set_bb_reg(dm, reg_devider_input, MASKDWORD, tmp_u32); - - for (i = 0; i < 10; i++) { - ODM_delay_ms(1); - if (odm_get_bb_reg(dm, reg, BIT(24))) { - /*@Chk HW rpt is ready*/ - - result = (u16)odm_get_bb_reg(dm, reg, MASKBYTE2); - break; - } - } - return result; + return (u8)PHYDM_DIV(numer, denom); } -void phydm_fahm_trigger(void *dm_void, u16 tgr_period) -{ /*@unit (4us)*/ - struct dm_struct *dm = (struct dm_struct *)dm_void; - u32 fahm_reg1; - - if (dm->support_ic_type & ODM_IC_11AC_SERIES) { - odm_set_bb_reg(dm, R_0x1cf8, 0xffff00, tgr_period); - - fahm_reg1 = 0x994; - } else { - odm_set_bb_reg(dm, R_0x978, 0xff000000, (tgr_period & 0xff)); - odm_set_bb_reg(dm, R_0x97c, 0xff, (tgr_period & 0xff00) >> 8); - - fahm_reg1 = 0x890; - } - - odm_set_bb_reg(dm, fahm_reg1, BIT(2), 0); - odm_set_bb_reg(dm, fahm_reg1, BIT(2), 1); -} - -void phydm_fahm_set_valid_cnt(void *dm_void, u8 numerator_sel, - u8 denominator_sel) -{ - struct dm_struct *dm = (struct dm_struct *)dm_void; - struct ccx_info *ccx_info = &dm->dm_ccx_info; - u32 fahm_reg1; - - PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); - - if (ccx_info->fahm_nume_sel == numerator_sel && - ccx_info->fahm_denom_sel == denominator_sel) { - PHYDM_DBG(dm, DBG_ENV_MNTR, "no need to update\n"); - return; - } - - ccx_info->fahm_nume_sel = numerator_sel; - ccx_info->fahm_denom_sel = denominator_sel; - - if (dm->support_ic_type & ODM_IC_11AC_SERIES) - fahm_reg1 = 0x994; - else - fahm_reg1 = 0x890; - - odm_set_bb_reg(dm, fahm_reg1, 0xe0, numerator_sel); - odm_set_bb_reg(dm, fahm_reg1, 0x7000, denominator_sel); -} - -void phydm_fahm_get_result(void *dm_void) -{ - struct dm_struct *dm = (struct dm_struct *)dm_void; - u16 fahm_cnt[12]; /*packet count*/ - u16 fahm_rpt[12]; /*percentage*/ - u16 denominator; /*@fahm_denominator packet count*/ - u32 reg_rpt, reg_rpt_2; - u32 reg_tmp; - boolean is_ready = false; - u8 i; - - PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); - - if (dm->support_ic_type & ODM_IC_11AC_SERIES) { - reg_rpt = 0x1f80; - reg_rpt_2 = 0x1f98; - } else { - reg_rpt = 0x9d8; - reg_rpt_2 = 0x9f0; - } - - for (i = 0; i < 3; i++) { - if (odm_get_bb_reg(dm, reg_rpt_2, BIT(31))) { - /*@Chk HW rpt is ready*/ - is_ready = true; - break; - } - ODM_delay_ms(1); - } - - if (!is_ready) - return; - - /*@Get FAHM Denominator*/ - denominator = (u16)odm_get_bb_reg(dm, reg_rpt_2, MASKLWORD); - - PHYDM_DBG(dm, DBG_ENV_MNTR, "Reg[0x%x] fahm_denmrtr = %d\n", reg_rpt_2, - denominator); - - /*@Get FAHM nemerator*/ - for (i = 0; i < 6; i++) { - reg_tmp = odm_get_bb_reg(dm, reg_rpt + (i << 2), MASKDWORD); - - PHYDM_DBG(dm, DBG_ENV_MNTR, "Reg[0x%x] fahm_denmrtr = %d\n", - reg_rpt + (i * 4), reg_tmp); - - fahm_cnt[i * 2] = (u16)(reg_tmp & MASKLWORD); - fahm_cnt[i * 2 + 1] = (u16)((reg_tmp & MASKHWORD) >> 16); - } - - for (i = 0; i < 12; i++) - fahm_rpt[i] = phydm_hw_divider(dm, fahm_cnt[i], denominator); - - PHYDM_DBG(dm, DBG_ENV_MNTR, - "FAHM_RPT_cnt[10:0]=[%d, %d, %d, %d, %d(IGI), %d, %d, %d, %d, %d, %d, %d]\n", - fahm_cnt[11], fahm_cnt[10], fahm_cnt[9], - fahm_cnt[8], fahm_cnt[7], fahm_cnt[6], - fahm_cnt[5], fahm_cnt[4], fahm_cnt[3], - fahm_cnt[2], fahm_cnt[1], fahm_cnt[0]); - - PHYDM_DBG(dm, DBG_ENV_MNTR, - "FAHM_RPT[10:0]=[%d, %d, %d, %d, %d(IGI), %d, %d, %d, %d, %d, %d, %d]\n", - fahm_rpt[11], fahm_rpt[10], fahm_rpt[9], fahm_rpt[8], - fahm_rpt[7], fahm_rpt[6], fahm_rpt[5], fahm_rpt[4], - fahm_rpt[3], fahm_rpt[2], fahm_rpt[1], fahm_rpt[0]); -} - -void phydm_fahm_set_th_by_igi(void *dm_void, u8 igi) -{ - struct dm_struct *dm = (struct dm_struct *)dm_void; - struct ccx_info *ccx_info = &dm->dm_ccx_info; - u32 val = 0; - u8 f_th[11]; /*@FAHM Threshold*/ - u8 rssi_th[11]; /*@in RSSI scale*/ - u8 th_gap = 2 * IGI_TO_NHM_TH_MULTIPLIER; /*unit is 0.5dB for FAHM*/ - u8 i; - - PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); - - if (ccx_info->env_mntr_igi == igi) { - PHYDM_DBG(dm, DBG_ENV_MNTR, - "No need to update FAHM_th, IGI=0x%x\n", - ccx_info->env_mntr_igi); - return; - } - - ccx_info->env_mntr_igi = igi; /*@bkp IGI*/ - - if (igi >= CCA_CAP) - f_th[0] = (igi - CCA_CAP) * IGI_TO_NHM_TH_MULTIPLIER; - else - f_th[0] = 0; - - rssi_th[0] = igi - 10 - CCA_CAP; - - for (i = 1; i <= 10; i++) { - f_th[i] = f_th[0] + th_gap * i; - rssi_th[i] = rssi_th[0] + (i << 1); - } - - PHYDM_DBG(dm, DBG_ENV_MNTR, - "FAHM_RSSI_th[10:0]=[%d, %d, %d, (IGI)%d, %d, %d, %d, %d, %d, %d, %d]\n", - rssi_th[10], rssi_th[9], rssi_th[8], rssi_th[7], rssi_th[6], - rssi_th[5], rssi_th[4], rssi_th[3], rssi_th[2], rssi_th[1], - rssi_th[0]); - - if (dm->support_ic_type & ODM_IC_11AC_SERIES) { - val = BYTE_2_DWORD(0, f_th[2], f_th[1], f_th[0]); - odm_set_bb_reg(dm, R_0x1c38, 0xffffff00, val); - val = BYTE_2_DWORD(0, f_th[5], f_th[4], f_th[3]); - odm_set_bb_reg(dm, R_0x1c78, 0xffffff00, val); - val = BYTE_2_DWORD(0, 0, f_th[7], f_th[6]); - odm_set_bb_reg(dm, R_0x1c7c, 0xffff0000, val); - val = BYTE_2_DWORD(0, f_th[10], f_th[9], f_th[8]); - odm_set_bb_reg(dm, R_0x1cb8, 0xffffff00, val); - } else { - val = BYTE_2_DWORD(f_th[3], f_th[2], f_th[1], f_th[0]); - odm_set_bb_reg(dm, R_0x970, MASKDWORD, val); - val = BYTE_2_DWORD(f_th[7], f_th[6], f_th[5], f_th[4]); - odm_set_bb_reg(dm, R_0x974, MASKDWORD, val); - val = BYTE_2_DWORD(0, f_th[10], f_th[9], f_th[8]); - odm_set_bb_reg(dm, R_0x978, 0xffffff, val); - } -} - -void phydm_fahm_init(void *dm_void) -{ - struct dm_struct *dm = (struct dm_struct *)dm_void; - struct ccx_info *ccx_info = &dm->dm_ccx_info; - u32 fahm_reg1; - u8 denumerator_sel = 0; - - PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); - PHYDM_DBG(dm, DBG_ENV_MNTR, "IGI=0x%x\n", - dm->dm_dig_table.cur_ig_value); - - if (dm->support_ic_type & ODM_IC_11AC_SERIES) - fahm_reg1 = 0x994; - else - fahm_reg1 = 0x890; - - ccx_info->fahm_period = 65535; - - odm_set_bb_reg(dm, fahm_reg1, 0x6, 3); /*@FAHM HW block enable*/ - - denumerator_sel = FAHM_INCLD_FA | FAHM_INCLD_CRC_OK | FAHM_INCLD_CRC_ER; - phydm_fahm_set_valid_cnt(dm, FAHM_INCLD_FA, denumerator_sel); - phydm_fahm_set_th_by_igi(dm, dm->dm_dig_table.cur_ig_value); -} - -void phydm_fahm_dbg(void *dm_void, char input[][16], u32 *_used, char *output, - u32 *_out_len) -{ - struct dm_struct *dm = (struct dm_struct *)dm_void; - struct ccx_info *ccx_info = &dm->dm_ccx_info; - char help[] = "-h"; - u32 var1[10] = {0}; - u32 used = *_used; - u32 out_len = *_out_len; - u32 i; - - for (i = 0; i < 2; i++) { - if (input[i + 1]) - PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &var1[i]); - } - - if ((strcmp(input[1], help) == 0)) { - PDM_SNPF(out_len, used, output + used, out_len - used, - "{1: trigger, 2:get result}\n"); - PDM_SNPF(out_len, used, output + used, out_len - used, - "{3: MNTR mode sel} {1: driver, 2. FW}\n"); - return; - } else if (var1[0] == 1) { /* Set & trigger CLM */ - - phydm_fahm_set_th_by_igi(dm, dm->dm_dig_table.cur_ig_value); - phydm_fahm_trigger(dm, ccx_info->fahm_period); - PDM_SNPF(out_len, used, output + used, out_len - used, - "Monitor FAHM for %d * 4us\n", ccx_info->fahm_period); - - } else if (var1[0] == 2) { /* @Get CLM results */ - - phydm_fahm_get_result(dm); - PDM_SNPF(out_len, used, output + used, out_len - used, - "FAHM_result=%d us\n", (ccx_info->clm_result << 2)); - - } else { - PDM_SNPF(out_len, used, output + used, out_len - used, - "Error\n"); - } - - *_used = used; - *_out_len = out_len; -} - -#endif /*@#ifdef FAHM_SUPPORT*/ - #ifdef NHM_SUPPORT void phydm_nhm_racing_release(void *dm_void) @@ -428,7 +188,23 @@ phydm_nhm_check_rdy(void *dm_void) return is_ready; } -u8 phydm_nhm_cal_noise(void *dm_void, u8 start_i, u8 end_i, u8 n_sum) +void phydm_nhm_cal_wgt(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + u8 i = 0; + + for (i = 0; i < NHM_RPT_NUM; i++) { + if (i == 0) + ccx->nhm_wgt[0] = (u8)(MAX_2(ccx->nhm_th[0] - 2, 0)); + else if (i == (NHM_RPT_NUM - 1)) + ccx->nhm_wgt[NHM_RPT_NUM - 1] = (u8)(ccx->nhm_th[NHM_TH_NUM - 1] + 2); + else + ccx->nhm_wgt[i] = (u8)((ccx->nhm_th[i - 1] + ccx->nhm_th[i]) >> 1); + } +} + +u8 phydm_nhm_cal_wgt_avg(void *dm_void, u8 start_i, u8 end_i, u8 n_sum) { struct dm_struct *dm = (struct dm_struct *)dm_void; struct ccx_info *ccx = &dm->dm_ccx_info; @@ -437,8 +213,6 @@ u8 phydm_nhm_cal_noise(void *dm_void, u8 start_i, u8 end_i, u8 n_sum) u8 noise = 0; u32 nhm_valid = 0; - PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); - if (n_sum == 0) { PHYDM_DBG(dm, DBG_ENV_MNTR, "n_sum = 0, don't need to update noise\n"); @@ -449,48 +223,89 @@ u8 phydm_nhm_cal_noise(void *dm_void, u8 start_i, u8 end_i, u8 n_sum) return 0x0; } - for (i = start_i; i <= end_i; i++) { - if (i == 0) - noise_tmp += ccx->nhm_result[0] * - MAX_2(ccx->nhm_th[0] - 2, 0); - else if (i == (NHM_RPT_NUM - 1)) - noise_tmp += ccx->nhm_result[NHM_RPT_NUM - 1] * - (ccx->nhm_th[NHM_TH_NUM - 1] + 2); - else - noise_tmp += ccx->nhm_result[i] * - (ccx->nhm_th[i - 1] + ccx->nhm_th[i]) >> 1; - } + for (i = start_i; i <= end_i; i++) + noise_tmp += ccx->nhm_result[i] * ccx->nhm_wgt[i]; /* protection for the case of minus noise(RSSI)*/ noise = (u8)(NTH_TH_2_RSSI(MAX_2(PHYDM_DIV(noise_tmp, n_sum), 20))); nhm_valid = (n_sum * 100) >> 8; PHYDM_DBG(dm, DBG_ENV_MNTR, - "valid: ((%d)) percent, noise(RSSI)=((%d))\n", + "cal wgt_avg : valid: ((%d)) percent, noise(RSSI)=((%d))\n", nhm_valid, noise); return noise; } +u8 phydm_nhm_cal_nhm_env(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + u8 first_idx = 0; + u8 nhm_env = 0; + u8 i = 0; + + nhm_env = ccx->nhm_rpt_sum; + + /*search first cluster*/ + for (i = 0; i < NHM_RPT_NUM; i++) { + if (ccx->nhm_result[i]) { + first_idx = i; + break; + } + } + + /*exclude first cluster under -80dBm*/ + for (i = 0; i < 4; i++) { + if (((first_idx + i) < NHM_RPT_NUM) && + (ccx->nhm_wgt[first_idx + i] <= NHM_IC_NOISE_TH)) + nhm_env -= ccx->nhm_result[first_idx + i]; + } + + /*exclude nhm_rpt[0] above -80dBm*/ + if (ccx->nhm_wgt[0] > NHM_IC_NOISE_TH) + nhm_env -= ccx->nhm_result[0]; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "cal nhm_env: first_idx=%d, nhm_env=%d\n", + first_idx, nhm_env); + + return nhm_env; +} + void phydm_nhm_get_utility(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; struct ccx_info *ccx = &dm->dm_ccx_info; u8 nhm_rpt_non_0 = 0; u8 nhm_rpt_non_11 = 0; + u8 nhm_env = 0; if (ccx->nhm_rpt_sum >= ccx->nhm_result[0]) { + phydm_nhm_cal_wgt(dm); + nhm_rpt_non_0 = ccx->nhm_rpt_sum - ccx->nhm_result[0]; nhm_rpt_non_11 = ccx->nhm_rpt_sum - ccx->nhm_result[11]; - ccx->nhm_ratio = (nhm_rpt_non_0 * 100) >> 8; - ccx->nhm_level_valid = (nhm_rpt_non_11 * 100) >> 8; - ccx->nhm_level = phydm_nhm_cal_noise(dm, 0, NHM_RPT_NUM - 2, + /*exclude nhm_r[0] above -80dBm or first cluster under -80dBm*/ + nhm_env = phydm_nhm_cal_nhm_env(dm); + ccx->nhm_ratio = phydm_ccx_get_rpt_ratio(dm, nhm_rpt_non_0, + NHM_RPT_MAX); + ccx->nhm_env_ratio = phydm_ccx_get_rpt_ratio(dm, nhm_env, + NHM_RPT_MAX); + ccx->nhm_level_valid = phydm_ccx_get_rpt_ratio(dm, + nhm_rpt_non_11, NHM_RPT_MAX); + ccx->nhm_level = phydm_nhm_cal_wgt_avg(dm, 0, NHM_RPT_NUM - 2, nhm_rpt_non_11); + ccx->nhm_pwr = phydm_nhm_cal_wgt_avg(dm, 0, NHM_RPT_NUM - 1, + ccx->nhm_rpt_sum); } else { PHYDM_DBG(dm, DBG_ENV_MNTR, "[warning] nhm_rpt_sum invalid\n"); ccx->nhm_ratio = 0; + ccx->nhm_env_ratio = 0; } - PHYDM_DBG(dm, DBG_ENV_MNTR, "nhm_ratio=%d\n", ccx->nhm_ratio); + PHYDM_DBG(dm, DBG_ENV_MNTR, + "nhm_ratio=%d, nhm_env_ratio=%d, nhm_level=%d, nhm_pwr=%d\n", + ccx->nhm_ratio, ccx->nhm_env_ratio, ccx->nhm_level, + ccx->nhm_pwr); } boolean @@ -502,6 +317,7 @@ phydm_nhm_get_result(void *dm_void) u8 i = 0; u32 nhm_reg1 = 0; u16 nhm_rpt_sum_tmp = 0; + u16 nhm_duration = 0; if (dm->support_ic_type & ODM_IC_11AC_SERIES) nhm_reg1 = R_0x994; @@ -513,8 +329,10 @@ phydm_nhm_get_result(void *dm_void) nhm_reg1 = R_0x890; PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); - if (!(dm->support_ic_type & (ODM_RTL8822C | ODM_RTL8812F | - ODM_RTL8197G))) + if ((dm->support_ic_type & ODM_IC_11N_SERIES) || + (dm->support_ic_type & ODM_IC_11AC_SERIES) || + (dm->support_ic_type & ODM_RTL8198F) || + (dm->support_ic_type & ODM_RTL8814B)) pdm_set_reg(dm, nhm_reg1, BIT(1), 0); if (!(phydm_nhm_check_rdy(dm))) { @@ -525,41 +343,51 @@ phydm_nhm_get_result(void *dm_void) if (dm->support_ic_type & ODM_IC_11AC_SERIES) { value32 = odm_read_4byte(dm, R_0xfa8); + value32 = odm_convert_to_le32(value32); odm_move_memory(dm, &ccx->nhm_result[0], &value32, 4); value32 = odm_read_4byte(dm, R_0xfac); + value32 = odm_convert_to_le32(value32); odm_move_memory(dm, &ccx->nhm_result[4], &value32, 4); value32 = odm_read_4byte(dm, R_0xfb0); + value32 = odm_convert_to_le32(value32); odm_move_memory(dm, &ccx->nhm_result[8], &value32, 4); /*@Get NHM duration*/ value32 = odm_read_4byte(dm, R_0xfb4); - ccx->nhm_duration = (u16)(value32 & MASKLWORD); + nhm_duration = (u16)(value32 & MASKLWORD); #ifdef PHYDM_IC_JGR3_SERIES_SUPPORT } else if (dm->support_ic_type & ODM_IC_JGR3_SERIES) { value32 = odm_read_4byte(dm, R_0x2d40); + value32 = odm_convert_to_le32(value32); odm_move_memory(dm, &ccx->nhm_result[0], &value32, 4); value32 = odm_read_4byte(dm, R_0x2d44); + value32 = odm_convert_to_le32(value32); odm_move_memory(dm, &ccx->nhm_result[4], &value32, 4); value32 = odm_read_4byte(dm, R_0x2d48); + value32 = odm_convert_to_le32(value32); odm_move_memory(dm, &ccx->nhm_result[8], &value32, 4); /*@Get NHM duration*/ value32 = odm_read_4byte(dm, R_0x2d4c); - ccx->nhm_duration = (u16)(value32 & MASKLWORD); + nhm_duration = (u16)(value32 & MASKLWORD); #endif } else { value32 = odm_read_4byte(dm, R_0x8d8); + value32 = odm_convert_to_le32(value32); odm_move_memory(dm, &ccx->nhm_result[0], &value32, 4); value32 = odm_read_4byte(dm, R_0x8dc); + value32 = odm_convert_to_le32(value32); odm_move_memory(dm, &ccx->nhm_result[4], &value32, 4); - value32 = odm_get_bb_reg(dm, R_0x8d0, 0xffff0000); - odm_move_memory(dm, &ccx->nhm_result[8], &value32, 2); + value32 = odm_read_4byte(dm, R_0x8d0); + + ccx->nhm_result[8] = (u8)((value32 & MASKBYTE2) >> 16); + ccx->nhm_result[9] = (u8)((value32 & MASKBYTE3) >> 24); value32 = odm_read_4byte(dm, R_0x8d4); @@ -567,19 +395,18 @@ phydm_nhm_get_result(void *dm_void) ccx->nhm_result[11] = (u8)((value32 & MASKBYTE3) >> 24); /*@Get NHM duration*/ - ccx->nhm_duration = (u16)(value32 & MASKLWORD); + nhm_duration = (u16)(value32 & MASKLWORD); } + ccx->nhm_duration = nhm_duration; /* sum all nhm_result */ - if (ccx->nhm_period >= 65530) { - value32 = (ccx->nhm_duration * 100) >> 16; + if (ccx->nhm_period >= 65530) PHYDM_DBG(dm, DBG_ENV_MNTR, "NHM valid time = %d, valid: %d percent\n", - ccx->nhm_duration, value32); - } + nhm_duration, (nhm_duration * 100) >> 16); for (i = 0; i < NHM_RPT_NUM; i++) - nhm_rpt_sum_tmp += (u16)ccx->nhm_result[i]; + nhm_rpt_sum_tmp = (u16)(nhm_rpt_sum_tmp + ccx->nhm_result[i]); ccx->nhm_rpt_sum = (u8)nhm_rpt_sum_tmp; @@ -669,6 +496,11 @@ phydm_nhm_th_update_chk(void *dm_void, enum nhm_application nhm_app, u8 *nhm_th, 0x78}; u8 nhm_igi_th_xbox[NHM_TH_NUM] = {0x1a, 0x2c, 0x2e, 0x30, 0x32, 0x34, 0x36, 0x38, 0x3a, 0x3c, 0x3d}; + u8 nhm_igi_th_11k[NHM_TH_NUM] = {0x12, 0x15, 0x18, 0x1b, 0x1e, 0x23, + 0x28, 0x2d, 0x32, 0x37, 0x3c}; + /*11k_dbm : {-92, -89, -86, -83, -80, -75, -70, -65, -60, -55, -50};*/ + /*11k_gain_idx : {18, 21, 24, 27, 30, 35, 40, 45, 50, 55, 60};*/ + u8 i = 0; u8 th_tmp = igi_curr - CCA_CAP; u8 th_step = 2; @@ -706,9 +538,8 @@ phydm_nhm_th_update_chk(void *dm_void, enum nhm_application nhm_app, u8 *nhm_th, if (ccx->nhm_igi != igi_curr || ccx->nhm_app != nhm_app) { is_update = true; *igi_new = (u32)igi_curr; - nhm_th[0] = (u8)IGI_2_NHM_TH(igi_curr - CCA_CAP); - for (i = 1; i <= 10; i++) - nhm_th[i] = nhm_th[0] + IGI_2_NHM_TH(2 * i); + for (i = 0; i < NHM_TH_NUM; i++) + nhm_th[i] = IGI_2_NHM_TH(nhm_igi_th_11k[i]); } break; @@ -853,7 +684,8 @@ void phydm_nhm_set(void *dm_void, enum nhm_option_txon_all include_tx, } } -u8 phydm_nhm_mntr_set(void *dm_void, struct nhm_para_info *nhm_para) +boolean +phydm_nhm_mntr_set(void *dm_void, struct nhm_para_info *nhm_para) { struct dm_struct *dm = (struct dm_struct *)dm_void; u16 nhm_time = 0; /*unit: 4us*/ @@ -861,15 +693,15 @@ u8 phydm_nhm_mntr_set(void *dm_void, struct nhm_para_info *nhm_para) PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); if (nhm_para->mntr_time == 0) - return PHYDM_SET_FAIL; + return false; if (nhm_para->nhm_lv >= NHM_MAX_NUM) { PHYDM_DBG(dm, DBG_ENV_MNTR, "Wrong LV=%d\n", nhm_para->nhm_lv); - return PHYDM_SET_FAIL; + return false; } if (phydm_nhm_racing_ctrl(dm, nhm_para->nhm_lv) == PHYDM_SET_FAIL) - return PHYDM_SET_FAIL; + return false; if (nhm_para->mntr_time >= 262) nhm_time = NHM_PERIOD_MAX; @@ -880,7 +712,7 @@ u8 phydm_nhm_mntr_set(void *dm_void, struct nhm_para_info *nhm_para) nhm_para->div_opt, nhm_para->nhm_app, nhm_time, nhm_para->en_1db_mode, nhm_para->nhm_th0_manual); - return PHYDM_SET_SUCCESS; + return true; } #ifdef NHM_DYM_PW_TH_SUPPORT @@ -968,7 +800,7 @@ phydm_nhm_dym_pw_th(void *dm_void) if (n_sum >= ccx->nhm_sl_pw_th) { PHYDM_DBG(dm, DBG_ENV_MNTR, "Do sl[%d:%d]\n", i, i + 3); chk_succ = true; - noise = phydm_nhm_cal_noise(dm, i, i + 3, n_sum); + noise = phydm_nhm_cal_wgt_avg(dm, i, i + 3, n_sum); break; } } @@ -986,41 +818,39 @@ phydm_nhm_dym_pw_th_en(void *dm_void) struct ccx_info *ccx = &dm->dm_ccx_info; struct phydm_iot_center *iot_table = &dm->iot_table; - if (!ccx->dym_pwth_manual_ctrl) - ccx->nhm_dym_pw_th_en = false; - if (!(dm->support_ic_type & ODM_RTL8822C)) - ccx->nhm_dym_pw_th_en = false; + return false; + + if (ccx->dym_pwth_manual_ctrl) + return true; if (dm->iot_table.phydm_patch_id == 0x100f0401 || iot_table->patch_id_100f0401) { - ccx->nhm_dym_pw_th_en = true; + return true; } else if (ccx->nhm_dym_pw_th_en) { phydm_nhm_restore_pw_th(dm); - ccx->nhm_dym_pw_th_en = false; + return false; + } else { + return false; } - return ccx->nhm_dym_pw_th_en; } #endif -/*@Environment Monitor*/ +/*Environment Monitor*/ boolean -phydm_nhm_mntr_chk(void *dm_void, u16 monitor_time /*unit ms*/) +phydm_nhm_mntr_racing_chk(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; struct ccx_info *ccx = &dm->dm_ccx_info; - struct nhm_para_info nhm_para = {0}; - boolean nhm_chk_result = false; - boolean nhm_polling_result = false; u32 sys_return_time = 0; - PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); - if (ccx->nhm_manual_ctrl) { PHYDM_DBG(dm, DBG_ENV_MNTR, "NHM in manual ctrl\n"); - return nhm_chk_result; + return true; } + sys_return_time = ccx->nhm_trigger_time + MAX_ENV_MNTR_TIME; + if (ccx->nhm_app != NHM_BACKGROUND && (sys_return_time > dm->phydm_sys_up_time)) { PHYDM_DBG(dm, DBG_ENV_MNTR, @@ -1028,31 +858,32 @@ phydm_nhm_mntr_chk(void *dm_void, u16 monitor_time /*unit ms*/) ccx->nhm_app, ccx->nhm_trigger_time, dm->phydm_sys_up_time); + return true; + } + + return false; +} + +boolean +phydm_nhm_mntr_chk(void *dm_void, u16 monitor_time /*unit ms*/) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + struct nhm_para_info nhm_para = {0}; + boolean nhm_chk_result = false; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); + + if (phydm_nhm_mntr_racing_chk(dm)) return nhm_chk_result; - } - /*[NHM get result & calculate Utility----------------------------*/ - nhm_polling_result = phydm_nhm_get_result(dm); - if (nhm_polling_result) { - PHYDM_DBG(dm, DBG_ENV_MNTR, "Get NHM_rpt success\n"); - phydm_nhm_get_utility(dm); - } - - #ifdef NHM_DYM_PW_TH_SUPPORT - if (phydm_nhm_dym_pw_th_en(dm)) { - if (nhm_polling_result) - phydm_nhm_dym_pw_th(dm); - else - phydm_nhm_set_pw_th(dm, 0x0, false); - } - #endif - - /*@[NHM trigger setting]------------------------------------------*/ + /*[NHM trigger setting]------------------------------------------*/ nhm_para.incld_txon = NHM_EXCLUDE_TXON; nhm_para.incld_cca = NHM_EXCLUDE_CCA; nhm_para.div_opt = NHM_CNT_ALL; nhm_para.nhm_app = NHM_BACKGROUND; nhm_para.nhm_lv = NHM_LV_1; + nhm_para.en_1db_mode = false; nhm_para.mntr_time = monitor_time; #ifdef NHM_DYM_PW_TH_SUPPORT @@ -1067,6 +898,38 @@ phydm_nhm_mntr_chk(void *dm_void, u16 monitor_time /*unit ms*/) return nhm_chk_result; } +boolean +phydm_nhm_mntr_result(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + boolean nhm_chk_result = false; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); + + if (phydm_nhm_mntr_racing_chk(dm)) + return nhm_chk_result; + + /*[NHM get result & calculate Utility]---------------------------*/ + if (phydm_nhm_get_result(dm)) { + PHYDM_DBG(dm, DBG_ENV_MNTR, "Get NHM_rpt success\n"); + phydm_nhm_get_utility(dm); + nhm_chk_result = true; + } + + #ifdef NHM_DYM_PW_TH_SUPPORT + ccx->nhm_dym_pw_th_en = phydm_nhm_dym_pw_th_en(dm); + if (ccx->nhm_dym_pw_th_en) { + if (nhm_chk_result) + phydm_nhm_dym_pw_th(dm); + else + phydm_nhm_set_pw_th(dm, 0x0, false); + } + #endif + + return nhm_chk_result; +} + void phydm_nhm_init(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; @@ -1129,7 +992,7 @@ void phydm_nhm_dbg(void *dm_void, char input[][16], u32 *_used, char *output, "NHM Basic-Trigger 262ms: {1}\n"); PDM_SNPF(out_len, used, output + used, out_len - used, - "NHM Adv-Trigger: {2} {Include TXON} {Include CCA}\n{0:Cnt_all, 1:Cnt valid} {App} {LV:1~4} {0~262ms}, 1dB mode :{en} {t[0](RSSI)}\n"); + "NHM Adv-Trigger: {2} {Include TXON} {Include CCA}\n{0:Cnt_all, 1:Cnt valid} {App:5 for dbg} {LV:1~4} {0~262ms}, 1dB mode :{en} {t[0](RSSI)}\n"); #ifdef NHM_DYM_PW_TH_SUPPORT if (dm->support_ic_type & ODM_RTL8822C) { PDM_SNPF(out_len, used, output + used, out_len - used, @@ -1143,14 +1006,14 @@ void phydm_nhm_dbg(void *dm_void, char input[][16], u32 *_used, char *output, PDM_SNPF(out_len, used, output + used, out_len - used, "NHM Get Result: {100}\n"); - } else if (var1[0] == 100) { /*@Get NHM results*/ + } else if (var1[0] == 100) { /*Get NHM results*/ PDM_SNPF(out_len, used, output + used, out_len - used, "IGI=0x%x, rpt_stamp=%d\n", ccx->nhm_igi, ccx->nhm_rpt_stamp); if (phydm_nhm_get_result(dm)) { - for (i = 0; i <= 11; i++) { + for (i = 0; i < NHM_RPT_NUM; i++) { result_tmp = ccx->nhm_result[i]; PDM_SNPF(out_len, used, output + used, out_len - used, @@ -1161,8 +1024,13 @@ void phydm_nhm_dbg(void *dm_void, char input[][16], u32 *_used, char *output, phydm_nhm_get_utility(dm); PDM_SNPF(out_len, used, output + used, out_len - used, - "[NHM] valid: %d percent, noise(RSSI) = %d\n", + "NHM_noise: valid: %d percent, noise(RSSI) = %d\n", ccx->nhm_level_valid, ccx->nhm_level); + PDM_SNPF(out_len, used, output + used, out_len - used, + "NHM_pwr: nhm_pwr (RSSI) = %d\n", ccx->nhm_pwr); + PDM_SNPF(out_len, used, output + used, out_len - used, + "ratio: nhm_ratio=%d, nhm_env_ratio=%d\n", + ccx->nhm_ratio, ccx->nhm_env_ratio); } else { PDM_SNPF(out_len, used, output + used, out_len - used, "Get NHM_rpt Fail\n"); @@ -1172,10 +1040,8 @@ void phydm_nhm_dbg(void *dm_void, char input[][16], u32 *_used, char *output, } else if (var1[0] == 3) { /*NMH dym_pw_th*/ if (dm->support_ic_type & ODM_RTL8822C) { for (i = 1; i < 7; i++) { - if (input[i + 1]) { - PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, - &var1[i]); - } + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, + &var1[i]); } if (var1[1] == 1) { @@ -1198,14 +1064,11 @@ void phydm_nhm_dbg(void *dm_void, char input[][16], u32 *_used, char *output, } #endif } else { /*NMH trigger*/ - ccx->nhm_manual_ctrl = 1; for (i = 1; i < 9; i++) { - if (input[i + 1]) { - PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, - &var1[i]); - } + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, + &var1[i]); } if (var1[0] == 1) { @@ -1215,6 +1078,7 @@ void phydm_nhm_dbg(void *dm_void, char input[][16], u32 *_used, char *output, nhm_para.nhm_app = NHM_DBG; nhm_para.nhm_lv = NHM_LV_4; nhm_para.mntr_time = 262; + nhm_para.en_1db_mode = false; nhm_para.nhm_th0_manual = 0; } else { nhm_para.incld_txon = (enum nhm_option_txon_all)var1[1]; @@ -1226,7 +1090,7 @@ void phydm_nhm_dbg(void *dm_void, char input[][16], u32 *_used, char *output, nhm_para.en_1db_mode = (boolean)var1[7]; nhm_para.nhm_th0_manual = (u8)var1[8]; - /* some old ic is not supported on NHM divider option */ + /*some old ic is not supported on NHM divider option */ if (dm->support_ic_type & (ODM_RTL8188E | ODM_RTL8723B | ODM_RTL8195A | ODM_RTL8192E)) { nhm_para.div_opt = NHM_CNT_ALL; @@ -1240,17 +1104,17 @@ void phydm_nhm_dbg(void *dm_void, char input[][16], u32 *_used, char *output, nhm_para.nhm_lv, nhm_para.mntr_time); PDM_SNPF(out_len, used, output + used, out_len - used, - "en_1db_mode =%d, th0(for 1db mode)=%d\n", + "en_1db_mode=%d, th0(for 1db mode)=%d\n", nhm_para.en_1db_mode, nhm_para.nhm_th0_manual); - if (phydm_nhm_mntr_set(dm, &nhm_para) == PHYDM_SET_SUCCESS) + if (phydm_nhm_mntr_set(dm, &nhm_para)) phydm_nhm_trigger(dm); PDM_SNPF(out_len, used, output + used, out_len - used, "IGI=0x%x, rpt_stamp=%d\n", ccx->nhm_igi, ccx->nhm_rpt_stamp); - for (i = 0; i <= 10; i++) { + for (i = 0; i < NHM_TH_NUM; i++) { PDM_SNPF(out_len, used, output + used, out_len - used, "NHM_th[%d] RSSI = %d\n", i, NTH_TH_2_RSSI(ccx->nhm_th[i])); @@ -1442,17 +1306,13 @@ void phydm_clm_get_utility(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; struct ccx_info *ccx = &dm->dm_ccx_info; - u32 clm_result_tmp; if (ccx->clm_period == 0) { PHYDM_DBG(dm, DBG_ENV_MNTR, "[warning] clm_period = 0\n"); ccx->clm_ratio = 0; - } else if (ccx->clm_period >= 65530) { - clm_result_tmp = (u32)(ccx->clm_result * 100); - ccx->clm_ratio = (u8)((clm_result_tmp + (1 << 15)) >> 16); } else { - clm_result_tmp = (u32)(ccx->clm_result * 100); - ccx->clm_ratio = (u8)(clm_result_tmp / (u32)ccx->clm_period); + ccx->clm_ratio = phydm_ccx_get_rpt_ratio(dm, ccx->clm_result, + ccx->clm_period); } } @@ -1472,9 +1332,12 @@ phydm_clm_get_result(void *dm_void) #endif else reg1 = R_0x890; - if (!(dm->support_ic_type & (ODM_RTL8822C | ODM_RTL8812F | - ODM_RTL8197G))) + if ((dm->support_ic_type & ODM_IC_11N_SERIES) || + (dm->support_ic_type & ODM_IC_11AC_SERIES) || + (dm->support_ic_type & ODM_RTL8198F) || + (dm->support_ic_type & ODM_RTL8814B)) odm_set_bb_reg(dm, reg1, BIT(0), 0x0); + if (!(phydm_clm_check_rdy(dm))) { PHYDM_DBG(dm, DBG_ENV_MNTR, "Get CLM report Fail\n"); phydm_clm_racing_release(dm); @@ -1500,37 +1363,8 @@ phydm_clm_get_result(void *dm_void) return true; } -void phydm_clm_mntr_fw(void *dm_void, u16 monitor_time /*unit ms*/) -{ - struct dm_struct *dm = (struct dm_struct *)dm_void; - struct ccx_info *ccx = &dm->dm_ccx_info; - u32 val = 0; - - /*@[Get CLM report]*/ - if (ccx->clm_fw_result_cnt != 0) { - val = ccx->clm_fw_result_acc / ccx->clm_fw_result_cnt; - ccx->clm_ratio = (u8)val; - } else { - ccx->clm_ratio = 0; - } - - PHYDM_DBG(dm, DBG_ENV_MNTR, - "clm_fw_result_acc=%d, clm_fw_result_cnt=%d\n", - ccx->clm_fw_result_acc, ccx->clm_fw_result_cnt); - - ccx->clm_fw_result_acc = 0; - ccx->clm_fw_result_cnt = 0; - - /*@[CLM trigger]*/ - if (monitor_time >= 262) - ccx->clm_period = 65535; - else - ccx->clm_period = monitor_time * MS_TO_4US_RATIO; - - phydm_clm_h2c(dm, ccx->clm_period, true); -} - -u8 phydm_clm_mntr_set(void *dm_void, struct clm_para_info *clm_para) +boolean +phydm_clm_mntr_set(void *dm_void, struct clm_para_info *clm_para) { /*@Driver Monitor CLM*/ struct dm_struct *dm = (struct dm_struct *)dm_void; @@ -1538,16 +1372,16 @@ u8 phydm_clm_mntr_set(void *dm_void, struct clm_para_info *clm_para) u16 clm_period = 0; if (clm_para->mntr_time == 0) - return PHYDM_SET_FAIL; + return false; if (clm_para->clm_lv >= CLM_MAX_NUM) { PHYDM_DBG(dm, DBG_ENV_MNTR, "[WARNING] Wrong LV=%d\n", clm_para->clm_lv); - return PHYDM_SET_FAIL; + return false; } if (phydm_clm_racing_ctrl(dm, clm_para->clm_lv) == PHYDM_SET_FAIL) - return PHYDM_SET_FAIL; + return false; if (clm_para->mntr_time >= 262) clm_period = CLM_PERIOD_MAX; @@ -1557,7 +1391,34 @@ u8 phydm_clm_mntr_set(void *dm_void, struct clm_para_info *clm_para) ccx->clm_app = clm_para->clm_app; phydm_clm_setting(dm, clm_period); - return PHYDM_SET_SUCCESS; + return true; +} + +boolean +phydm_clm_mntr_racing_chk(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + u32 sys_return_time = 0; + + if (ccx->clm_manual_ctrl) { + PHYDM_DBG(dm, DBG_ENV_MNTR, "CLM in manual ctrl\n"); + return true; + } + + sys_return_time = ccx->clm_trigger_time + MAX_ENV_MNTR_TIME; + + if (ccx->clm_app != CLM_BACKGROUND && + (sys_return_time > dm->phydm_sys_up_time)) { + PHYDM_DBG(dm, DBG_ENV_MNTR, + "clm_app=%d, trigger_time %d, sys_time=%d\n", + ccx->clm_app, ccx->clm_trigger_time, + dm->phydm_sys_up_time); + + return true; + } + + return false; } boolean @@ -1567,45 +1428,68 @@ phydm_clm_mntr_chk(void *dm_void, u16 monitor_time /*unit ms*/) struct ccx_info *ccx = &dm->dm_ccx_info; struct clm_para_info clm_para = {0}; boolean clm_chk_result = false; - u32 sys_return_time = 0; PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s] ======>\n", __func__); - if (ccx->clm_manual_ctrl) { - PHYDM_DBG(dm, DBG_ENV_MNTR, "CLM in manual ctrl\n"); + + if (phydm_clm_mntr_racing_chk(dm)) return clm_chk_result; - } - - sys_return_time = ccx->clm_trigger_time + MAX_ENV_MNTR_TIME; - - if (ccx->clm_app != CLM_BACKGROUND && - sys_return_time > dm->phydm_sys_up_time) { - PHYDM_DBG(dm, DBG_ENV_MNTR, "trigger_time %d, sys_time=%d\n", - ccx->clm_trigger_time, dm->phydm_sys_up_time); - - return clm_chk_result; - } clm_para.clm_app = CLM_BACKGROUND; clm_para.clm_lv = CLM_LV_1; clm_para.mntr_time = monitor_time; if (ccx->clm_mntr_mode == CLM_DRIVER_MNTR) { - /*@[Get CLM report]*/ + if (phydm_clm_mntr_set(dm, &clm_para)) + clm_chk_result = true; + } else { + if (monitor_time >= 262) + ccx->clm_period = 65535; + else + ccx->clm_period = monitor_time * MS_TO_4US_RATIO; + + phydm_clm_h2c(dm, ccx->clm_period, true); + } + + return clm_chk_result; +} + +boolean +phydm_clm_mntr_result(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + boolean clm_chk_result = false; + u32 val = 0; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s] ======>\n", __func__); + + if (phydm_clm_mntr_racing_chk(dm)) + return clm_chk_result; + + if (ccx->clm_mntr_mode == CLM_DRIVER_MNTR) { if (phydm_clm_get_result(dm)) { PHYDM_DBG(dm, DBG_ENV_MNTR, "Get CLM_rpt success\n"); phydm_clm_get_utility(dm); + clm_chk_result = true; + } + } else { + if (ccx->clm_fw_result_cnt != 0) { + val = ccx->clm_fw_result_acc / ccx->clm_fw_result_cnt; + ccx->clm_ratio = (u8)val; + clm_chk_result = true; + } else { + ccx->clm_ratio = 0; } - /*@[CLM trigger]----------------------------------------------*/ - if (phydm_clm_mntr_set(dm, &clm_para) == PHYDM_SET_SUCCESS) - clm_chk_result = true; - } else { - phydm_clm_mntr_fw(dm, monitor_time); + PHYDM_DBG(dm, DBG_ENV_MNTR, + "clm_fw_result_acc=%d, clm_fw_result_cnt=%d\n", + ccx->clm_fw_result_acc, ccx->clm_fw_result_cnt); + + ccx->clm_fw_result_acc = 0; + ccx->clm_fw_result_cnt = 0; } PHYDM_DBG(dm, DBG_ENV_MNTR, "clm_ratio=%d\n", ccx->clm_ratio); - /*@PHYDM_DBG(dm, DBG_ENV_MNTR, "clm_chk_result=%d\n",clm_chk_result);*/ - return clm_chk_result; } @@ -1619,7 +1503,7 @@ void phydm_set_clm_mntr_mode(void *dm_void, enum clm_monitor_mode mode) phydm_ccx_hw_restart(dm); if (mode == CLM_DRIVER_MNTR) - phydm_clm_h2c(dm, 0, 0); + phydm_clm_h2c(dm, CLM_PERIOD_MAX, 0); } } @@ -1650,8 +1534,7 @@ void phydm_clm_dbg(void *dm_void, char input[][16], u32 *_used, char *output, u32 i; for (i = 0; i < 4; i++) { - if (input[i + 1]) - PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &var1[i]); + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &var1[i]); } if ((strcmp(input[1], help) == 0)) { @@ -1703,7 +1586,7 @@ void phydm_clm_dbg(void *dm_void, char input[][16], u32 *_used, char *output, ((ccx->clm_mntr_mode == CLM_FW_MNTR) ? "FW" : "driver"), clm_para.mntr_time); - if (phydm_clm_mntr_set(dm, &clm_para) == PHYDM_SET_SUCCESS) + if (phydm_clm_mntr_set(dm, &clm_para)) phydm_clm_trigger(dm); PDM_SNPF(out_len, used, output + used, out_len - used, @@ -1720,12 +1603,12 @@ u8 phydm_env_mntr_trigger(void *dm_void, struct nhm_para_info *nhm_para, struct clm_para_info *clm_para, struct env_trig_rpt *trig_rpt) { + u8 trigger_result = 0; #if (defined(NHM_SUPPORT) && defined(CLM_SUPPORT)) struct dm_struct *dm = (struct dm_struct *)dm_void; struct ccx_info *ccx = &dm->dm_ccx_info; boolean nhm_set_ok = false; boolean clm_set_ok = false; - u8 trigger_result = 0; PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s] ======>\n", __func__); @@ -1758,17 +1641,16 @@ u8 phydm_env_mntr_trigger(void *dm_void, struct nhm_para_info *nhm_para, PHYDM_DBG(dm, DBG_ENV_MNTR, "nhm_rpt_stamp=%d, clm_rpt_stamp=%d,\n\n", trig_rpt->nhm_rpt_stamp, trig_rpt->clm_rpt_stamp); - - return trigger_result; #endif + return trigger_result; } u8 phydm_env_mntr_result(void *dm_void, struct env_mntr_rpt *rpt) { + u8 env_mntr_rpt = 0; #if (defined(NHM_SUPPORT) && defined(CLM_SUPPORT)) struct dm_struct *dm = (struct dm_struct *)dm_void; struct ccx_info *ccx = &dm->dm_ccx_info; - u8 env_mntr_rpt = 0; u64 progressing_time = 0; u32 val_tmp = 0; @@ -1782,13 +1664,16 @@ u8 phydm_env_mntr_result(void *dm_void, struct env_mntr_rpt *rpt) PHYDM_DBG(dm, DBG_ENV_MNTR, "Get NHM_rpt success\n"); phydm_nhm_get_utility(dm); rpt->nhm_ratio = ccx->nhm_ratio; + rpt->nhm_env_ratio = ccx->nhm_env_ratio; rpt->nhm_noise_pwr = ccx->nhm_level; + rpt->nhm_pwr = ccx->nhm_pwr; env_mntr_rpt |= NHM_SUCCESS; odm_move_memory(dm, &rpt->nhm_result[0], &ccx->nhm_result[0], NHM_RPT_NUM); } else { rpt->nhm_ratio = ENV_MNTR_FAIL; + rpt->nhm_env_ratio = ENV_MNTR_FAIL; } /*@Get CLM result*/ @@ -1825,58 +1710,11 @@ u8 phydm_env_mntr_result(void *dm_void, struct env_mntr_rpt *rpt) rpt->clm_rpt_stamp = ccx->clm_rpt_stamp; PHYDM_DBG(dm, DBG_ENV_MNTR, - "IGI=0x%x, nhm_ratio=%d, clm_ratio=%d, nhm_rpt_stamp=%d, clm_rpt_stamp=%d\n\n", - ccx->nhm_igi, rpt->nhm_ratio, rpt->clm_ratio, - rpt->nhm_rpt_stamp, rpt->clm_rpt_stamp); - + "IGI=0x%x, nhm_ratio=%d, nhm_env_ratio=%d, clm_ratio=%d, nhm_rpt_stamp=%d, clm_rpt_stamp=%d\n\n", + ccx->nhm_igi, rpt->nhm_ratio, rpt->nhm_env_ratio, + rpt->clm_ratio, rpt->nhm_rpt_stamp, rpt->clm_rpt_stamp); +#endif return env_mntr_rpt; -#endif -} - -/*@Environment Monitor*/ -void phydm_env_mntr_watchdog(void *dm_void) -{ -#if (defined(NHM_SUPPORT) && defined(CLM_SUPPORT)) - struct dm_struct *dm = (struct dm_struct *)dm_void; - struct ccx_info *ccx = &dm->dm_ccx_info; - boolean nhm_chk_ok = false; - boolean clm_chk_ok = false; - - if (!(dm->support_ability & ODM_BB_ENV_MONITOR)) - return; - - PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); - nhm_chk_ok = phydm_nhm_mntr_chk(dm, 262); /*@monitor 262ms*/ - clm_chk_ok = phydm_clm_mntr_chk(dm, 262); /*@monitor 262ms*/ - - /*@PHYDM_DBG(dm, DBG_ENV_MNTR, "nhm_chk_ok %d\n\n",nhm_chk_ok);*/ - /*@PHYDM_DBG(dm, DBG_ENV_MNTR, "clm_chk_ok %d\n\n",clm_chk_ok);*/ - - if (nhm_chk_ok) - phydm_nhm_trigger(dm); - - if (clm_chk_ok) - phydm_clm_trigger(dm); - - PHYDM_DBG(dm, DBG_ENV_MNTR, - "Summary: nhm_ratio=((%d)) clm_ratio=((%d))\n\n", - ccx->nhm_ratio, ccx->clm_ratio); -#endif -} - -void phydm_env_monitor_init(void *dm_void) -{ -#if (defined(NHM_SUPPORT) && defined(CLM_SUPPORT)) - struct dm_struct *dm = (struct dm_struct *)dm_void; - - if (!(dm->support_ability & ODM_BB_ENV_MONITOR)) - return; - - PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); - phydm_ccx_hw_restart(dm); - phydm_nhm_init(dm); - phydm_clm_init(dm); -#endif } void phydm_env_mntr_dbg(void *dm_void, char input[][16], u32 *_used, @@ -1906,9 +1744,9 @@ void phydm_env_mntr_dbg(void *dm_void, char input[][16], u32 *_used, set_result = phydm_env_mntr_result(dm, &rpt); PDM_SNPF(out_len, used, output + used, out_len - used, - "Set Result=%d\n nhm_ratio=%d clm_ratio=%d\n nhm_rpt_stamp=%d, clm_rpt_stamp=%d,\n", - set_result, rpt.nhm_ratio, rpt.clm_ratio, - rpt.nhm_rpt_stamp, rpt.clm_rpt_stamp); + "Set Result=%d\n nhm_ratio=%d nhm_env_ratio=%d clm_ratio=%d\n nhm_rpt_stamp=%d, clm_rpt_stamp=%d,\n", + set_result, rpt.nhm_ratio, rpt.nhm_env_ratio, + rpt.clm_ratio, rpt.nhm_rpt_stamp, rpt.clm_rpt_stamp); for (i = 0; i <= 11; i++) { PDM_SNPF(out_len, used, output + used, out_len - used, @@ -1927,6 +1765,7 @@ void phydm_env_mntr_dbg(void *dm_void, char input[][16], u32 *_used, nhm_para.nhm_app = NHM_ACS; nhm_para.nhm_lv = NHM_LV_2; nhm_para.mntr_time = 262; + nhm_para.en_1db_mode = false; /*clm para*/ clm_para.clm_app = CLM_ACS; @@ -1946,3 +1785,1981 @@ void phydm_env_mntr_dbg(void *dm_void, char input[][16], u32 *_used, *_out_len = out_len; } +#ifdef FAHM_SUPPORT + +void phydm_fahm_racing_release(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + u32 value32 = 0; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "fahm_racing_release : lv:(%d)->(0)\n", + ccx->fahm_set_lv); + + ccx->fahm_ongoing = false; + ccx->fahm_set_lv = FAHM_RELEASE; + + if (!(ccx->fahm_app == FAHM_BACKGROUND || ccx->fahm_app == FAHM_ACS)) + phydm_pause_func(dm, F00_DIG, PHYDM_RESUME, + PHYDM_PAUSE_LEVEL_1, 1, &value32); + + ccx->fahm_app = FAHM_BACKGROUND; +} + +u8 phydm_fahm_racing_ctrl(void *dm_void, enum phydm_fahm_level lv) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + u8 set_result = PHYDM_SET_SUCCESS; + /*acquire to control FAHM API*/ + + PHYDM_DBG(dm, DBG_ENV_MNTR, "fahm_ongoing=%d, lv:(%d)->(%d)\n", + ccx->fahm_ongoing, ccx->fahm_set_lv, lv); + if (ccx->fahm_ongoing) { + if (lv <= ccx->fahm_set_lv) { + set_result = PHYDM_SET_FAIL; + } else { + phydm_ccx_hw_restart(dm); + ccx->fahm_ongoing = false; + } + } + + if (set_result) + ccx->fahm_set_lv = lv; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "fahm racing success=%d\n", set_result); + return set_result; +} + +void phydm_fahm_trigger(void *dm_void) +{ /*@unit (4us)*/ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + u32 reg = 0; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); + + switch (dm->ic_ip_series) { + case PHYDM_IC_JGR3: + reg = R_0x1e60; + break; + case PHYDM_IC_AC: + reg = R_0x994; + break; + case PHYDM_IC_N: + reg = R_0x890; + break; + default: + break; + } + + odm_set_bb_reg(dm, reg, BIT(2), 0); + odm_set_bb_reg(dm, reg, BIT(2), 1); + + ccx->fahm_trigger_time = dm->phydm_sys_up_time; + ccx->fahm_rpt_stamp++; + ccx->fahm_ongoing = true; +} + +boolean +phydm_fahm_check_rdy(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + boolean is_ready = false; + u32 reg = 0, reg_bit = 0; + + switch (dm->ic_ip_series) { + case PHYDM_IC_JGR3: + reg = R_0x2d84; + reg_bit = 31; + break; + case PHYDM_IC_AC: + reg = R_0x1f98; + reg_bit = 31; + break; + case PHYDM_IC_N: + reg = R_0x9f0; + reg_bit = 31; + break; + default: + break; + } + + if (odm_get_bb_reg(dm, reg, BIT(reg_bit))) + is_ready = true; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "FAHM rdy=%d\n", is_ready); + + return is_ready; +} + +u8 phydm_fahm_cal_wgt_avg(void *dm_void, u8 start_i, u8 end_i, u16 r_sum, + u16 period) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + u8 i = 0; + u32 pwr_tmp = 0; + u8 pwr = 0; + u32 fahm_valid = 0; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); + + if (r_sum == 0) { + PHYDM_DBG(dm, DBG_ENV_MNTR, + "rpt_sum = 0, don't need to update\n"); + return 0x0; + } else if (end_i > FAHM_RPT_NUM - 1) { + PHYDM_DBG(dm, DBG_ENV_MNTR, + "[WARNING]end_i is larger than 11!!\n"); + return 0x0; + } + + for (i = start_i; i <= end_i; i++) { + if (i == 0) + pwr_tmp += ccx->fahm_result[0] * + MAX_2(ccx->fahm_th[0] - 2, 0); + else if (i == (FAHM_RPT_NUM - 1)) + pwr_tmp += ccx->fahm_result[FAHM_RPT_NUM - 1] * + (ccx->fahm_th[FAHM_TH_NUM - 1] + 2); + else + pwr_tmp += ccx->fahm_result[i] * + (ccx->fahm_th[i - 1] + ccx->fahm_th[i]) >> 1; + } + + /* protection for the case of minus pwr(RSSI)*/ + pwr = (u8)(NTH_TH_2_RSSI(MAX_2(PHYDM_DIV(pwr_tmp, r_sum), 20))); + fahm_valid = PHYDM_DIV(r_sum * 100, period); + PHYDM_DBG(dm, DBG_ENV_MNTR, + "valid: ((%d)) percent, pwr(RSSI)=((%d))\n", + fahm_valid, pwr); + + return pwr; +} + +void phydm_fahm_get_utility(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + + if (ccx->fahm_result_sum >= ccx->fahm_result[0]) { + ccx->fahm_pwr = phydm_fahm_cal_wgt_avg(dm, 0, FAHM_RPT_NUM - 1, + ccx->fahm_result_sum, + ccx->fahm_period); + ccx->fahm_ratio = phydm_ccx_get_rpt_ratio(dm, + ccx->fahm_result_sum, ccx->fahm_period); + ccx->fahm_denom_ratio = phydm_ccx_get_rpt_ratio(dm, + ccx->fahm_denom_result, + ccx->fahm_period); + } else { + PHYDM_DBG(dm, DBG_ENV_MNTR, + "[warning] fahm_result_sum invalid\n"); + ccx->fahm_pwr = 0; + ccx->fahm_ratio = 0; + ccx->fahm_denom_ratio = 0; + } + + PHYDM_DBG(dm, DBG_ENV_MNTR, + "fahm_pwr=%d, fahm_ratio=%d, fahm_denom_ratio=%d\n", + ccx->fahm_pwr, ccx->fahm_ratio, ccx->fahm_denom_ratio); +} + +boolean +phydm_fahm_get_result(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + u32 value32 = 0; + u32 reg1 = 0; + u32 reg2 = 0; + u8 i = 0; + u32 fahm_rpt_sum_tmp = 0; + + switch (dm->ic_ip_series) { + case PHYDM_IC_JGR3: + reg1 = R_0x2d6c; + reg2 = R_0x2d84; + break; + case PHYDM_IC_AC: + reg1 = R_0x1f80; + reg2 = R_0x1f98; + break; + case PHYDM_IC_N: + reg1 = R_0x9d8; + reg2 = R_0x9f0; + break; + default: + break; + } + + if (!(phydm_fahm_check_rdy(dm))) { + PHYDM_DBG(dm, DBG_ENV_MNTR, "Get FAHM report Fail\n"); + phydm_fahm_racing_release(dm); + return false; + } + + /*Get FAHM numerator and sum all fahm_result*/ + for (i = 0; i < 6; i++) { + value32 = odm_get_bb_reg(dm, reg1 + (i << 2), MASKDWORD); + ccx->fahm_result[i * 2] = (u16)(value32 & MASKLWORD); + ccx->fahm_result[i * 2 + 1] = (u16)((value32 & MASKHWORD) >> 16); + fahm_rpt_sum_tmp = (u32)(fahm_rpt_sum_tmp + + ccx->fahm_result[i * 2] + + ccx->fahm_result[i * 2 + 1]); + } + ccx->fahm_result_sum = (u16)fahm_rpt_sum_tmp; + + /*Get FAHM Denominator*/ + ccx->fahm_denom_result = (u16)odm_get_bb_reg(dm, reg2, MASKLWORD); + + if (!(ccx->fahm_inclu_cck)) + PHYDM_DBG(dm, DBG_ENV_MNTR, + "===>The following fahm report does not count CCK pkt\n"); + + PHYDM_DBG(dm, DBG_ENV_MNTR, + "fahm_result_sum=%d, fahm_denom_result = %d\n", + ccx->fahm_result_sum, ccx->fahm_denom_result); + + PHYDM_DBG(dm, DBG_ENV_MNTR, + "FAHM_Rpt[%d](H->L)[%d %d %d %d %d %d %d %d %d %d %d %d]\n", + ccx->fahm_rpt_stamp, ccx->fahm_result[11], + ccx->fahm_result[10], ccx->fahm_result[9], + ccx->fahm_result[8], ccx->fahm_result[7], ccx->fahm_result[6], + ccx->fahm_result[5], ccx->fahm_result[4], ccx->fahm_result[3], + ccx->fahm_result[2], ccx->fahm_result[1], + ccx->fahm_result[0]); + + phydm_fahm_racing_release(dm); + + if (fahm_rpt_sum_tmp > 0xffff) { + PHYDM_DBG(dm, DBG_ENV_MNTR, + "[Warning] Invalid FAHM RPT, total=%d\n", + fahm_rpt_sum_tmp); + return false; + } + + return true; +} + +void phydm_fahm_set_th_reg(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + u32 val = 0; + + /*Set FAHM threshold*/ /*Unit: PWdB U(8,1)*/ + switch (dm->ic_ip_series) { + case PHYDM_IC_JGR3: + val = BYTE_2_DWORD(ccx->fahm_th[3], ccx->fahm_th[2], + ccx->fahm_th[1], ccx->fahm_th[0]); + odm_set_bb_reg(dm, R_0x1e50, MASKDWORD, val); + val = BYTE_2_DWORD(ccx->fahm_th[7], ccx->fahm_th[6], + ccx->fahm_th[5], ccx->fahm_th[4]); + odm_set_bb_reg(dm, R_0x1e54, MASKDWORD, val); + val = BYTE_2_DWORD(0, ccx->fahm_th[10], ccx->fahm_th[9], + ccx->fahm_th[8]); + odm_set_bb_reg(dm, R_0x1e58, 0xffffff, val); + break; + case PHYDM_IC_AC: + val = BYTE_2_DWORD(0, ccx->fahm_th[2], ccx->fahm_th[1], + ccx->fahm_th[0]); + odm_set_bb_reg(dm, R_0x1c38, 0xffffff00, val); + val = BYTE_2_DWORD(0, ccx->fahm_th[5], ccx->fahm_th[4], + ccx->fahm_th[3]); + odm_set_bb_reg(dm, R_0x1c78, 0xffffff00, val); + val = BYTE_2_DWORD(0, 0, ccx->fahm_th[7], ccx->fahm_th[6]); + odm_set_bb_reg(dm, R_0x1c7c, 0xffff0000, val); + val = BYTE_2_DWORD(0, ccx->fahm_th[10], ccx->fahm_th[9], + ccx->fahm_th[8]); + odm_set_bb_reg(dm, R_0x1cb8, 0xffffff00, val); + break; + case PHYDM_IC_N: + val = BYTE_2_DWORD(ccx->fahm_th[3], ccx->fahm_th[2], + ccx->fahm_th[1], ccx->fahm_th[0]); + odm_set_bb_reg(dm, R_0x970, MASKDWORD, val); + val = BYTE_2_DWORD(ccx->fahm_th[7], ccx->fahm_th[6], + ccx->fahm_th[5], ccx->fahm_th[4]); + odm_set_bb_reg(dm, R_0x974, MASKDWORD, val); + val = BYTE_2_DWORD(0, ccx->fahm_th[10], ccx->fahm_th[9], + ccx->fahm_th[8]); + odm_set_bb_reg(dm, R_0x978, 0xffffff, val); + break; + default: + break; + } + + PHYDM_DBG(dm, DBG_ENV_MNTR, + "Update FAHM_th[H->L]=[%d %d %d %d %d %d %d %d %d %d %d]\n", + ccx->fahm_th[10], ccx->fahm_th[9], ccx->fahm_th[8], + ccx->fahm_th[7], ccx->fahm_th[6], ccx->fahm_th[5], + ccx->fahm_th[4], ccx->fahm_th[3], ccx->fahm_th[2], + ccx->fahm_th[1], ccx->fahm_th[0]); +} + +boolean +phydm_fahm_th_update_chk(void *dm_void, enum fahm_application fahm_app, + u8 *fahm_th, u32 *igi_new, boolean en_1db_mode, + u8 fahm_th0_manual) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + boolean is_update = false; + u8 igi_curr = phydm_get_igi(dm, BB_PATH_A); + u8 i = 0; + u8 th_tmp = igi_curr - CCA_CAP; + u8 th_step = 2; + u8 fahm_igi_th_11k[NHM_TH_NUM] = {0x12, 0x15, 0x18, 0x1b, 0x1e, 0x23, + 0x28, 0x2d, 0x32, 0x37, 0x3c}; + /*11k_dbm : {-92, -89, -86, -83, -80, -75, -70, -65, -60, -55, -50};*/ + /*11k_gain_idx : {18, 21, 24, 27, 30, 35, 40, 45, 50, 55, 60};*/ + + PHYDM_DBG(dm, DBG_ENV_MNTR, "fahm_th_update_chk : App=%d, fahm_igi=0x%x, igi_curr=0x%x\n", + fahm_app, ccx->fahm_igi, igi_curr); + + if (igi_curr < 0x10) /* Protect for invalid IGI*/ + return false; + + switch (fahm_app) { + case FAHM_BACKGROUND: /*Get IGI from driver parameter(cur_ig_value)*/ + if (ccx->fahm_igi != igi_curr || ccx->fahm_app != fahm_app) { + is_update = true; + *igi_new = (u32)igi_curr; + + fahm_th[0] = (u8)IGI_2_NHM_TH(th_tmp); + + for (i = 1; i <= 10; i++) + fahm_th[i] = fahm_th[0] + + IGI_2_NHM_TH(th_step * i); + + } + break; + case FAHM_ACS: + if (ccx->fahm_igi != igi_curr || ccx->fahm_app != fahm_app) { + is_update = true; + *igi_new = (u32)igi_curr; + for (i = 0; i < FAHM_TH_NUM; i++) + fahm_th[i] = IGI_2_NHM_TH(fahm_igi_th_11k[i]); + } + break; + case FAHM_DBG: /*Get IGI from register*/ + igi_curr = phydm_get_igi(dm, BB_PATH_A); + if (ccx->fahm_igi != igi_curr || ccx->fahm_app != fahm_app) { + is_update = true; + *igi_new = (u32)igi_curr; + if (en_1db_mode) { + fahm_th[0] = (u8)IGI_2_NHM_TH(fahm_th0_manual + + 10); + th_step = 1; + } else { + fahm_th[0] = (u8)IGI_2_NHM_TH(igi_curr - + CCA_CAP); + } + + for (i = 1; i <= 10; i++) + fahm_th[i] = fahm_th[0] + + IGI_2_NHM_TH(th_step * i); + } + break; + } + + if (is_update) { + PHYDM_DBG(dm, DBG_ENV_MNTR, "[Update FAHM_TH] igi_RSSI=%d\n", + IGI_2_RSSI(*igi_new)); + + for (i = 0; i < FAHM_TH_NUM; i++) + PHYDM_DBG(dm, DBG_ENV_MNTR, "FAHM_th[%d](RSSI) = %d\n", + i, NTH_TH_2_RSSI(fahm_th[i])); + } else { + PHYDM_DBG(dm, DBG_ENV_MNTR, "No need to update FAHM_TH\n"); + } + return is_update; +} + +void phydm_fahm_set(void *dm_void, u8 numer_opt, u8 denom_opt, + enum fahm_application app, u16 period, boolean en_1db_mode, + u8 th0_manual) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + u8 fahm_th[FAHM_TH_NUM] = {0}; + u32 igi = 0x20; + u32 reg1 = 0, reg2 = 0, reg3 = 0; + u32 val_tmp = 0; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "numer_opt=%d, denom_opt=%d, period=%d\n", + numer_opt, denom_opt, period); + + switch (dm->ic_ip_series) { + case PHYDM_IC_JGR3: + reg1 = R_0x1e60; + reg2 = R_0x1e58; + reg3 = R_0x1e5c; + break; + case PHYDM_IC_AC: + reg1 = R_0x994; + reg2 = R_0x1cf8; + break; + case PHYDM_IC_N: + reg1 = R_0x890; + reg2 = R_0x978; + reg3 = R_0x97c; + break; + default: + break; + } + + /*Set enable fa, ignore crc32 ok, ignore crc32 err*/ + if (numer_opt != ccx->fahm_numer_opt || + denom_opt != ccx->fahm_denom_opt) { + odm_set_bb_reg(dm, reg1, 0xe0, numer_opt); + odm_set_bb_reg(dm, reg1, 0x7000, denom_opt); + ccx->fahm_numer_opt = numer_opt; + ccx->fahm_denom_opt = denom_opt; + + /*[PHYDM-400]*/ + /*Counting B mode pkt for new B mode IP or fahm_opt is non-FA*/ + if ((dm->support_ic_type & ODM_RTL8723F) || + (((numer_opt | denom_opt) & FAHM_INCLU_FA) == 0)) + ccx->fahm_inclu_cck = true; + else + ccx->fahm_inclu_cck = false; + + odm_set_bb_reg(dm, reg1, BIT(4), ccx->fahm_inclu_cck); + PHYDM_DBG(dm, DBG_ENV_MNTR, "fahm_inclu_cck=%d\n", + ccx->fahm_inclu_cck); + } + + /*Set FAHM period*/ + if (period != ccx->fahm_period) { + switch (dm->ic_ip_series) { + case PHYDM_IC_AC: + odm_set_bb_reg(dm, reg2, 0xffff00, period); + break; + case PHYDM_IC_JGR3: + case PHYDM_IC_N: + odm_set_bb_reg(dm, reg2, 0xff000000, (period & 0xff)); + odm_set_bb_reg(dm, reg3, 0xff, (period & 0xff00) >> 8); + break; + default: + break; + } + + PHYDM_DBG(dm, DBG_ENV_MNTR, + "Update FAHM period ((%d)) -> ((%d))\n", + ccx->fahm_period, period); + + ccx->fahm_period = period; + } + + /*Set FAHM threshold*/ + if (phydm_fahm_th_update_chk(dm, app, &fahm_th[0], &igi, en_1db_mode, + th0_manual)) { + /*Pause IGI*/ + if (app == FAHM_BACKGROUND || app == FAHM_ACS) { + PHYDM_DBG(dm, DBG_ENV_MNTR, "DIG Free Run\n"); + } else if (phydm_pause_func(dm, F00_DIG, PHYDM_PAUSE, + PHYDM_PAUSE_LEVEL_1, 1, &igi) + == PAUSE_FAIL) { + PHYDM_DBG(dm, DBG_ENV_MNTR, "pause DIG Fail\n"); + return; + } else { + PHYDM_DBG(dm, DBG_ENV_MNTR, "pause DIG=0x%x\n", igi); + } + ccx->fahm_app = app; + ccx->fahm_igi = (u8)igi; + odm_move_memory(dm, &ccx->fahm_th[0], &fahm_th, FAHM_TH_NUM); + + /*Set FAHM th*/ + phydm_fahm_set_th_reg(dm); + } +} + +boolean +phydm_fahm_mntr_set(void *dm_void, struct fahm_para_info *para) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + u16 fahm_time = 0; /*unit: 4us*/ + + PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); + + if (para->mntr_time == 0) + return false; + + if (para->lv >= FAHM_MAX_NUM) { + PHYDM_DBG(dm, DBG_ENV_MNTR, "Wrong LV=%d\n", para->lv); + return false; + } + + if (phydm_fahm_racing_ctrl(dm, para->lv) == PHYDM_SET_FAIL) + return false; + + if (para->mntr_time >= 262) + fahm_time = FAHM_PERIOD_MAX; + else + fahm_time = para->mntr_time * MS_TO_4US_RATIO; + + phydm_fahm_set(dm, para->numer_opt, para->denom_opt, para->app, + fahm_time, para->en_1db_mode, para->th0_manual); + + return true; +} + +boolean +phydm_fahm_mntr_racing_chk(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + u32 sys_return_time = 0; + + if (ccx->fahm_manual_ctrl) { + PHYDM_DBG(dm, DBG_ENV_MNTR, "FAHM in manual ctrl\n"); + return true; + } + + sys_return_time = ccx->fahm_trigger_time + MAX_ENV_MNTR_TIME; + + if (ccx->fahm_app != FAHM_BACKGROUND && + (sys_return_time > dm->phydm_sys_up_time)) { + PHYDM_DBG(dm, DBG_ENV_MNTR, + "fahm_app=%d, trigger_time %d, sys_time=%d\n", + ccx->fahm_app, ccx->fahm_trigger_time, + dm->phydm_sys_up_time); + + return true; + } + + return false; +} + +boolean +phydm_fahm_mntr_chk(void *dm_void, u16 monitor_time /*unit ms*/) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + struct fahm_para_info para = {0}; + boolean fahm_chk_result = false; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); + + if (phydm_fahm_mntr_racing_chk(dm)) + return fahm_chk_result; + + /*[FAHM trigger setting]------------------------------------------*/ + para.numer_opt = FAHM_INCLU_FA; + para.denom_opt = FAHM_INCLU_CRC_ERR; + para.app = FAHM_BACKGROUND; + para.lv = FAHM_LV_1; + para.en_1db_mode = false; + para.mntr_time = monitor_time; + + fahm_chk_result = phydm_fahm_mntr_set(dm, ¶); + + return fahm_chk_result; +} + +boolean +phydm_fahm_mntr_result(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + boolean fahm_chk_result = false; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); + + if (phydm_fahm_mntr_racing_chk(dm)) + return fahm_chk_result; + + /*[FAHM get result & calculate Utility]---------------------------*/ + if (phydm_fahm_get_result(dm)) { + PHYDM_DBG(dm, DBG_ENV_MNTR, "Get FAHM_rpt success\n"); + phydm_fahm_get_utility(dm); + fahm_chk_result = true; + } + + return fahm_chk_result; +} + +void phydm_fahm_init(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + u32 reg = 0; + + if (!(dm->support_ic_type & PHYDM_IC_SUPPORT_FAHM)) + return; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); + + ccx->fahm_app = FAHM_BACKGROUND; + ccx->fahm_igi = 0xff; + + /*Set FAHM threshold*/ + ccx->fahm_ongoing = false; + ccx->fahm_set_lv = FAHM_RELEASE; + + if (phydm_fahm_th_update_chk(dm, ccx->fahm_app, &ccx->fahm_th[0], + (u32 *)&ccx->fahm_igi, false, 0)) + phydm_fahm_set_th_reg(dm); + + ccx->fahm_period = 0; + ccx->fahm_numer_opt = 0; + ccx->fahm_denom_opt = 0; + ccx->fahm_manual_ctrl = 0; + ccx->fahm_rpt_stamp = 0; + ccx->fahm_inclu_cck = false; + + switch (dm->ic_ip_series) { + case PHYDM_IC_JGR3: + reg = R_0x1e60; + break; + case PHYDM_IC_AC: + reg = R_0x994; + break; + case PHYDM_IC_N: + reg = R_0x890; + break; + default: + break; + } + + /*Counting OFDM pkt*/ + odm_set_bb_reg(dm, reg, BIT(3), 1); +} + +void phydm_fahm_dbg(void *dm_void, char input[][16], u32 *_used, char *output, + u32 *_out_len) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + struct fahm_para_info para = {0}; + char help[] = "-h"; + u32 var1[10] = {0}; + u32 used = *_used; + u32 out_len = *_out_len; + u16 result_tmp = 0; + u8 i = 0; + + if (!(dm->support_ic_type & PHYDM_IC_SUPPORT_FAHM)) + return; + + PHYDM_SSCANF(input[1], DCMD_DECIMAL, &var1[0]); + + if ((strcmp(input[1], help) == 0)) { + PDM_SNPF(out_len, used, output + used, out_len - used, + "FAHM Basic-Trigger 262ms: {1}\n"); + PDM_SNPF(out_len, used, output + used, out_len - used, + "FAHM Adv-Trigger: {2} {numer_opt} {denom_opt}\n {App:1 for dbg} {LV:1~4} {0~262ms}, 1dB mode :{en} {t[0](RSSI)}\n"); + PDM_SNPF(out_len, used, output + used, out_len - used, + "FAHM Get Result: {100}\n"); + PDM_SNPF(out_len, used, output + used, out_len - used, + "numer_opt/denom_opt: {BIT 0/1/2} = {FA/CRC32_OK/CRC32_ERR}\n"); + } else if (var1[0] == 100) { /*Get FAHM results*/ + PDM_SNPF(out_len, used, output + used, out_len - used, + "IGI=0x%x, rpt_stamp=%d\n", ccx->fahm_igi, + ccx->fahm_rpt_stamp); + + if (phydm_fahm_get_result(dm)) { + if (!(ccx->fahm_inclu_cck)) + PDM_SNPF(out_len, used, output + used, + out_len - used, + "===>The following fahm report does not count CCK pkt\n"); + + for (i = 0; i < FAHM_RPT_NUM; i++) { + result_tmp = ccx->fahm_result[i]; + PDM_SNPF(out_len, used, output + used, + out_len - used, + "fahm_rpt[%d] = %d (%d percent)\n", + i, result_tmp, + (((result_tmp * 100) + 32768) >> 16)); + } + phydm_fahm_get_utility(dm); + + PDM_SNPF(out_len, used, output + used, out_len - used, + "fahm_pwr=%d, fahm_ratio=%d, fahm_denom_ratio=%d\n", + ccx->fahm_pwr, ccx->fahm_ratio, + ccx->fahm_denom_ratio); + } else { + PDM_SNPF(out_len, used, output + used, out_len - used, + "Get FAHM_rpt Fail\n"); + } + ccx->fahm_manual_ctrl = 0; + } else { /*FAMH trigger*/ + ccx->fahm_manual_ctrl = 1; + + for (i = 1; i < 9; i++) + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &var1[i]); + + if (var1[0] == 1) { + para.numer_opt = FAHM_INCLU_FA; + para.denom_opt = FAHM_INCLU_CRC_ERR; + para.app = FAHM_DBG; + para.lv = FAHM_LV_4; + para.mntr_time = 262; + para.en_1db_mode = false; + para.th0_manual = 0; + } else { + para.numer_opt = (u8)var1[1]; + para.denom_opt = (u8)var1[2]; + para.app = (enum fahm_application)var1[3]; + para.lv = (enum phydm_fahm_level)var1[4]; + para.mntr_time = (u16)var1[5]; + para.en_1db_mode = (boolean)var1[6]; + para.th0_manual = (u8)var1[7]; + } + + PDM_SNPF(out_len, used, output + used, out_len - used, + "numer_opt=%d, denom_opt=%d, app=%d, lv=%d, time=%d ms\n", + para.numer_opt, para.denom_opt,para.app, para.lv, + para.mntr_time); + + PDM_SNPF(out_len, used, output + used, out_len - used, + "en_1db_mode=%d, th0(for 1db mode)=%d\n", + para.en_1db_mode, para.th0_manual); + + if (phydm_fahm_mntr_set(dm, ¶)) + phydm_fahm_trigger(dm); + + PDM_SNPF(out_len, used, output + used, out_len - used, + "IGI=0x%x, rpt_stamp=%d\n", ccx->fahm_igi, + ccx->fahm_rpt_stamp); + + for (i = 0; i < FAHM_TH_NUM; i++) + PDM_SNPF(out_len, used, output + used, out_len - used, + "FAHM_th[%d] RSSI = %d\n", i, + NTH_TH_2_RSSI(ccx->fahm_th[i])); + } + + *_used = used; + *_out_len = out_len; +} + +#endif /*#ifdef FAHM_SUPPORT*/ + +#ifdef IFS_CLM_SUPPORT +void phydm_ifs_clm_restart(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); + + /*restart IFS_CLM*/ + odm_set_bb_reg(dm, R_0x1ee4, BIT(29), 0x0); + odm_set_bb_reg(dm, R_0x1ee4, BIT(29), 0x1); +} + +void phydm_ifs_clm_racing_release(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); + PHYDM_DBG(dm, DBG_ENV_MNTR, "ifs clm lv:(%d)->(0)\n", + ccx->ifs_clm_set_lv); + + ccx->ifs_clm_ongoing = false; + ccx->ifs_clm_set_lv = IFS_CLM_RELEASE; + ccx->ifs_clm_app = IFS_CLM_BACKGROUND; +} + +u8 phydm_ifs_clm_racing_ctrl(void *dm_void, enum phydm_ifs_clm_level ifs_clm_lv) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + u8 set_result = PHYDM_SET_SUCCESS; + /*acquire to control IFS CLM API*/ + + PHYDM_DBG(dm, DBG_ENV_MNTR, "ifs clm_ongoing=%d, lv:(%d)->(%d)\n", + ccx->ifs_clm_ongoing, ccx->ifs_clm_set_lv, ifs_clm_lv); + if (ccx->ifs_clm_ongoing) { + if (ifs_clm_lv <= ccx->ifs_clm_set_lv) { + set_result = PHYDM_SET_FAIL; + } else { + phydm_ifs_clm_restart(dm); + ccx->ifs_clm_ongoing = false; + } + } + + if (set_result) + ccx->ifs_clm_set_lv = ifs_clm_lv; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "ifs clm racing success=%d\n", set_result); + return set_result; +} + +void phydm_ifs_clm_trigger(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); + + /*Trigger IFS_CLM*/ + pdm_set_reg(dm, R_0x1ee4, BIT(29), 0); + pdm_set_reg(dm, R_0x1ee4, BIT(29), 1); + ccx->ifs_clm_trigger_time = dm->phydm_sys_up_time; + ccx->ifs_clm_rpt_stamp++; + ccx->ifs_clm_ongoing = true; +} + +void phydm_ifs_clm_get_utility(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + u16 denom = 0; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); + + denom = ccx->ifs_clm_period; + ccx->ifs_clm_tx_ratio = phydm_ccx_get_rpt_ratio(dm, ccx->ifs_clm_tx, + denom); + ccx->ifs_clm_edcca_excl_cca_ratio = phydm_ccx_get_rpt_ratio(dm, + ccx->ifs_clm_edcca_excl_cca, + denom); + ccx->ifs_clm_cck_fa_ratio = phydm_ccx_get_rpt_ratio(dm, + ccx->ifs_clm_cckfa, denom); + ccx->ifs_clm_ofdm_fa_ratio = phydm_ccx_get_rpt_ratio(dm, + ccx->ifs_clm_ofdmfa, denom); + ccx->ifs_clm_cck_cca_excl_fa_ratio = phydm_ccx_get_rpt_ratio(dm, + ccx->ifs_clm_cckcca_excl_fa, + denom); + ccx->ifs_clm_ofdm_cca_excl_fa_ratio = phydm_ccx_get_rpt_ratio(dm, + ccx->ifs_clm_ofdmcca_excl_fa, + denom); + + PHYDM_DBG(dm, DBG_ENV_MNTR, + "Tx_ratio = %d, EDCCA_exclude_CCA_ratio = %d \n", + ccx->ifs_clm_tx_ratio, ccx->ifs_clm_edcca_excl_cca_ratio); + PHYDM_DBG(dm, DBG_ENV_MNTR, + "CCK : FA_ratio = %d, CCA_exclude_FA_ratio = %d \n", + ccx->ifs_clm_cck_fa_ratio, + ccx->ifs_clm_cck_cca_excl_fa_ratio); + PHYDM_DBG(dm, DBG_ENV_MNTR, + "OFDM : FA_ratio = %d, CCA_exclude_FA_ratio = %d \n", + ccx->ifs_clm_ofdm_fa_ratio, + ccx->ifs_clm_ofdm_cca_excl_fa_ratio); +} + +void phydm_ifs_clm_get_result(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + u32 value32 = 0; + u8 i = 0; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); + + /*Enhance CLM result*/ + value32 = odm_get_bb_reg(dm, R_0x2e60, MASKDWORD); + ccx->ifs_clm_tx = (u16)(value32 & MASKLWORD); + ccx->ifs_clm_edcca_excl_cca = (u16)((value32 & MASKHWORD) >> 16); + value32 = odm_get_bb_reg(dm, R_0x2e64, MASKDWORD); + ccx->ifs_clm_ofdmfa = (u16)(value32 & MASKLWORD); + ccx->ifs_clm_ofdmcca_excl_fa = (u16)((value32 & MASKHWORD) >> 16); + value32 = odm_get_bb_reg(dm, R_0x2e68, MASKDWORD); + ccx->ifs_clm_cckfa = (u16)(value32 & MASKLWORD); + ccx->ifs_clm_cckcca_excl_fa = (u16)((value32 & MASKHWORD) >> 16); + value32 = odm_get_bb_reg(dm, R_0x2e6c, MASKDWORD); + ccx->ifs_clm_total_cca = (u16)(value32 & MASKLWORD); + + /* IFS result */ + value32 = odm_get_bb_reg(dm, R_0x2e70, MASKDWORD); + value32 = odm_convert_to_le32(value32); + odm_move_memory(dm, &ccx->ifs_clm_his[0], &value32, 4); + value32 = odm_get_bb_reg(dm, R_0x2e74, MASKDWORD); + ccx->ifs_clm_avg[0] = (u16)(value32 & MASKLWORD); + ccx->ifs_clm_avg[1] = (u16)((value32 & MASKHWORD) >> 16); + value32 = odm_get_bb_reg(dm, R_0x2e78, MASKDWORD); + ccx->ifs_clm_avg[2] = (u16)(value32 & MASKLWORD); + ccx->ifs_clm_avg[3] = (u16)((value32 & MASKHWORD) >> 16); + value32 = odm_get_bb_reg(dm, R_0x2e7c, MASKDWORD); + ccx->ifs_clm_avg_cca[0] = (u16)(value32 & MASKLWORD); + ccx->ifs_clm_avg_cca[1] = (u16)((value32 & MASKHWORD) >> 16); + value32 = odm_get_bb_reg(dm, R_0x2e80, MASKDWORD); + ccx->ifs_clm_avg_cca[2] = (u16)(value32 & MASKLWORD); + ccx->ifs_clm_avg_cca[3] = (u16)((value32 & MASKHWORD) >> 16); + + /* Print Result */ + PHYDM_DBG(dm, DBG_ENV_MNTR, + "ECLM_Rpt[%d]: \nTx = %d, EDCCA_exclude_CCA = %d \n", + ccx->ifs_clm_rpt_stamp, ccx->ifs_clm_tx, + ccx->ifs_clm_edcca_excl_cca); + PHYDM_DBG(dm, DBG_ENV_MNTR, + "[FA_cnt] {CCK, OFDM} = {%d, %d}\n", + ccx->ifs_clm_cckfa, ccx->ifs_clm_ofdmfa); + PHYDM_DBG(dm, DBG_ENV_MNTR, + "[CCA_exclude_FA_cnt] {CCK, OFDM} = {%d, %d}\n", + ccx->ifs_clm_cckcca_excl_fa, ccx->ifs_clm_ofdmcca_excl_fa); + PHYDM_DBG(dm, DBG_ENV_MNTR, "CCATotal = %d\n", ccx->ifs_clm_total_cca); + PHYDM_DBG(dm, DBG_ENV_MNTR, "Time:[his, avg, avg_cca]\n"); + for (i = 0; i < IFS_CLM_NUM; i++) + PHYDM_DBG(dm, DBG_ENV_MNTR, + "T%d:[%d, %d, %d]\n", i + 1, + ccx->ifs_clm_his[i], ccx->ifs_clm_avg[i], + ccx->ifs_clm_avg_cca[i]); + + phydm_ifs_clm_racing_release(dm); + + return; +} + +void phydm_ifs_clm_set_th_reg(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + u8 i = 0; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); + + /*Set IFS period TH*/ + odm_set_bb_reg(dm, R_0x1ed4, BIT(31), ccx->ifs_clm_th_en[0]); + odm_set_bb_reg(dm, R_0x1ed8, BIT(31), ccx->ifs_clm_th_en[1]); + odm_set_bb_reg(dm, R_0x1edc, BIT(31), ccx->ifs_clm_th_en[2]); + odm_set_bb_reg(dm, R_0x1ee0, BIT(31), ccx->ifs_clm_th_en[3]); + odm_set_bb_reg(dm, R_0x1ed4, 0x7fff0000, ccx->ifs_clm_th_low[0]); + odm_set_bb_reg(dm, R_0x1ed8, 0x7fff0000, ccx->ifs_clm_th_low[1]); + odm_set_bb_reg(dm, R_0x1edc, 0x7fff0000, ccx->ifs_clm_th_low[2]); + odm_set_bb_reg(dm, R_0x1ee0, 0x7fff0000, ccx->ifs_clm_th_low[3]); + odm_set_bb_reg(dm, R_0x1ed4, MASKLWORD, ccx->ifs_clm_th_high[0]); + odm_set_bb_reg(dm, R_0x1ed8, MASKLWORD, ccx->ifs_clm_th_high[1]); + odm_set_bb_reg(dm, R_0x1edc, MASKLWORD, ccx->ifs_clm_th_high[2]); + odm_set_bb_reg(dm, R_0x1ee0, MASKLWORD, ccx->ifs_clm_th_high[3]); + + for (i = 0; i < IFS_CLM_NUM; i++) + PHYDM_DBG(dm, DBG_ENV_MNTR, + "Update IFS_CLM_th%d[High Low] : [%d %d]\n", i + 1, + ccx->ifs_clm_th_high[i], ccx->ifs_clm_th_low[i]); +} + +boolean phydm_ifs_clm_th_update_chk(void *dm_void, + enum ifs_clm_application ifs_clm_app, + boolean *ifs_clm_th_en, u16 *ifs_clm_th_low, + u16 *ifs_clm_th_high, s16 th_shift) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + boolean is_update = false; + u16 ifs_clm_th_low_bg[IFS_CLM_NUM] = {12, 5, 2, 0}; + u16 ifs_clm_th_high_bg[IFS_CLM_NUM] = {64, 12, 5, 2}; + u8 i = 0; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); + PHYDM_DBG(dm, DBG_ENV_MNTR, "App=%d, th_shift=%d\n", ifs_clm_app, + th_shift); + + switch (ifs_clm_app) { + case IFS_CLM_BACKGROUND: + case IFS_CLM_ACS: + case IFS_CLM_HP_TAS: + if (ccx->ifs_clm_app != ifs_clm_app || th_shift != 0) { + is_update = true; + + for (i = 0; i < IFS_CLM_NUM; i++) { + ifs_clm_th_en[i] = true; + ifs_clm_th_low[i] = ifs_clm_th_low_bg[i]; + ifs_clm_th_high[i] = ifs_clm_th_high_bg[i]; + } + } + break; + case IFS_CLM_DBG: + if (ccx->ifs_clm_app != ifs_clm_app || th_shift != 0) { + is_update = true; + + for (i = 0; i < IFS_CLM_NUM; i++) { + ifs_clm_th_en[i] = true; + ifs_clm_th_low[i] = MAX_2(ccx->ifs_clm_th_low[i] + + th_shift, 0); + ifs_clm_th_high[i] = MAX_2(ccx->ifs_clm_th_high[i] + + th_shift, 0); + } + } + break; + default: + break; + } + + if (is_update) + PHYDM_DBG(dm, DBG_ENV_MNTR, "[Update IFS_TH]\n"); + else + PHYDM_DBG(dm, DBG_ENV_MNTR, "No need to update IFS_TH\n"); + + return is_update; +} + +void phydm_ifs_clm_set(void *dm_void, enum ifs_clm_application ifs_clm_app, + u16 period, u8 ctrl_unit, s16 th_shift) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + boolean ifs_clm_th_en[IFS_CLM_NUM] = {0}; + u16 ifs_clm_th_low[IFS_CLM_NUM] = {0}; + u16 ifs_clm_th_high[IFS_CLM_NUM] = {0}; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); + PHYDM_DBG(dm, DBG_ENV_MNTR, "period=%d, ctrl_unit=%d\n", period, + ctrl_unit); + + /*Set Unit*/ + if (ctrl_unit != ccx->ifs_clm_ctrl_unit) { + odm_set_bb_reg(dm, R_0x1ee4, 0xc0000000, ctrl_unit); + PHYDM_DBG(dm, DBG_ENV_MNTR, + "Update IFS_CLM unit ((%d)) -> ((%d))\n", + ccx->ifs_clm_ctrl_unit, ctrl_unit); + ccx->ifs_clm_ctrl_unit = ctrl_unit; + } + + /*Set Duration*/ + if (period != ccx->ifs_clm_period) { + odm_set_bb_reg(dm, R_0x1eec, 0xc0000000, (period & 0x3)); + odm_set_bb_reg(dm, R_0x1ef0, 0xfe000000, ((period >> 2) & + 0x7f)); + odm_set_bb_reg(dm, R_0x1ef4, 0xc0000000, ((period >> 9) & + 0x3)); + odm_set_bb_reg(dm, R_0x1ef8, 0x3e000000, ((period >> 11) & + 0x1f)); + PHYDM_DBG(dm, DBG_ENV_MNTR, + "Update IFS_CLM period ((%d)) -> ((%d))\n", + ccx->ifs_clm_period, period); + ccx->ifs_clm_period = period; + } + + /*Set IFS CLM threshold*/ + if (phydm_ifs_clm_th_update_chk(dm, ifs_clm_app, &ifs_clm_th_en[0], + &ifs_clm_th_low[0], &ifs_clm_th_high[0], + th_shift)) { + + ccx->ifs_clm_app = ifs_clm_app; + odm_move_memory(dm, &ccx->ifs_clm_th_en[0], &ifs_clm_th_en, + IFS_CLM_NUM); + odm_move_memory(dm, &ccx->ifs_clm_th_low[0], &ifs_clm_th_low, + IFS_CLM_NUM); + odm_move_memory(dm, &ccx->ifs_clm_th_high[0], &ifs_clm_th_high, + IFS_CLM_NUM); + + phydm_ifs_clm_set_th_reg(dm); + } +} + +boolean +phydm_ifs_clm_mntr_set(void *dm_void, struct ifs_clm_para_info *ifs_clm_para) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + u16 ifs_clm_time = 0; /*unit: 4/8/12/16us*/ + u8 unit = 0; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); + + if (ifs_clm_para->mntr_time == 0) + return false; + + if (ifs_clm_para->ifs_clm_lv >= IFS_CLM_MAX_NUM) { + PHYDM_DBG(dm, DBG_ENV_MNTR, "Wrong LV=%d\n", + ifs_clm_para->ifs_clm_lv); + return false; + } + + if (phydm_ifs_clm_racing_ctrl(dm, ifs_clm_para->ifs_clm_lv) == PHYDM_SET_FAIL) + return false; + + if (ifs_clm_para->mntr_time >= 1048) { + unit = IFS_CLM_16; + ifs_clm_time = IFS_CLM_PERIOD_MAX; /*65535 * 16us = 1048ms*/ + } else if (ifs_clm_para->mntr_time >= 786) {/*65535 * 12us = 786 ms*/ + unit = IFS_CLM_16; + ifs_clm_time = PHYDM_DIV(ifs_clm_para->mntr_time * MS_TO_US, 16); + } else if (ifs_clm_para->mntr_time >= 524) { + unit = IFS_CLM_12; + ifs_clm_time = PHYDM_DIV(ifs_clm_para->mntr_time * MS_TO_US, 12); + } else if (ifs_clm_para->mntr_time >= 262) { + unit = IFS_CLM_8; + ifs_clm_time = PHYDM_DIV(ifs_clm_para->mntr_time * MS_TO_US, 8); + } else { + unit = IFS_CLM_4; + ifs_clm_time = PHYDM_DIV(ifs_clm_para->mntr_time * MS_TO_US, 4); + } + + phydm_ifs_clm_set(dm, ifs_clm_para->ifs_clm_app, ifs_clm_time, unit, + ifs_clm_para->th_shift); + + return true; +} + +boolean +phydm_ifs_clm_mntr_racing_chk(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + u32 sys_return_time = 0; + + if (ccx->ifs_clm_manual_ctrl) { + PHYDM_DBG(dm, DBG_ENV_MNTR, "IFS_CLM in manual ctrl\n"); + return true; + } + + sys_return_time = ccx->ifs_clm_trigger_time + MAX_ENV_MNTR_TIME; + + if (ccx->ifs_clm_app != IFS_CLM_BACKGROUND && + (sys_return_time > dm->phydm_sys_up_time)) { + PHYDM_DBG(dm, DBG_ENV_MNTR, + "ifs_clm_app=%d, trigger_time %d, sys_time=%d\n", + ccx->ifs_clm_app, ccx->ifs_clm_trigger_time, + dm->phydm_sys_up_time); + + return true; + } + + return false; +} + +boolean +phydm_ifs_clm_mntr_chk(void *dm_void, u16 monitor_time /*unit ms*/) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + struct ifs_clm_para_info ifs_clm_para = {0}; + boolean ifs_clm_chk_result = false; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); + + if (phydm_ifs_clm_mntr_racing_chk(dm)) + return ifs_clm_chk_result; + + /*[IFS CLM trigger setting]------------------------------------------*/ + ifs_clm_para.ifs_clm_app = IFS_CLM_BACKGROUND; + ifs_clm_para.ifs_clm_lv = IFS_CLM_LV_1; + ifs_clm_para.mntr_time = monitor_time; + ifs_clm_para.th_shift = 0; + + ifs_clm_chk_result = phydm_ifs_clm_mntr_set(dm, &ifs_clm_para); + + return ifs_clm_chk_result; +} + +boolean +phydm_ifs_clm_mntr_result(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + boolean ifs_clm_chk_result = false; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); + + if (phydm_ifs_clm_mntr_racing_chk(dm)) + return ifs_clm_chk_result; + + /*[IFS CLM get result] ------------------------------------]*/ + phydm_ifs_clm_get_result(dm); + phydm_ifs_clm_get_utility(dm); + ifs_clm_chk_result = true; + + return ifs_clm_chk_result; +} + +void phydm_ifs_clm_init(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); + + ccx->ifs_clm_app = IFS_CLM_BACKGROUND; + + /*Set IFS threshold*/ + ccx->ifs_clm_ongoing = false; + ccx->ifs_clm_set_lv = IFS_CLM_RELEASE; + + if (phydm_ifs_clm_th_update_chk(dm, ccx->ifs_clm_app, + &ccx->ifs_clm_th_en[0], + &ccx->ifs_clm_th_low[0], + &ccx->ifs_clm_th_high[0], 0xffff)) + phydm_ifs_clm_set_th_reg(dm); + + ccx->ifs_clm_period = 0; + ccx->ifs_clm_ctrl_unit = IFS_CLM_INIT; + ccx->ifs_clm_manual_ctrl = 0; + ccx->ifs_clm_rpt_stamp = 0; +} + +void phydm_ifs_clm_dbg(void *dm_void, char input[][16], u32 *_used, + char *output, u32 *_out_len) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + struct ifs_clm_para_info ifs_clm_para; + char help[] = "-h"; + u32 var1[10] = {0}; + u32 used = *_used; + u32 out_len = *_out_len; + u8 result_tmp = 0; + u8 i = 0; + u16 th_shift = 0; + + if (!(dm->support_ic_type & PHYDM_IC_SUPPORT_IFS_CLM)) + return; + + for (i = 0; i < 5; i++) { + if (input[i + 1]) + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, + &var1[i]); + } + + if ((strcmp(input[1], help) == 0)) { + PDM_SNPF(out_len, used, output + used, out_len - used, + "IFS_CLM Basic-Trigger 960ms: {1}\n"); + PDM_SNPF(out_len, used, output + used, out_len - used, + "IFS_CLM Adv-Trigger: {2} {App:3 for dbg} {LV:1~4} {0~2096ms} {th_shift}\n"); + PDM_SNPF(out_len, used, output + used, out_len - used, + "IFS_CLM Get Result: {100}\n"); + } else if (var1[0] == 100) { /*Get IFS_CLM results*/ + phydm_ifs_clm_get_result(dm); + + PDM_SNPF(out_len, used, output + used, out_len - used, + "ECLM_Rpt[%d]: \nTx = %d \nEDCCA_exclude_CCA = %d\n", + ccx->ifs_clm_rpt_stamp, ccx->ifs_clm_tx, + ccx->ifs_clm_edcca_excl_cca); + PDM_SNPF(out_len, used, output + used, out_len - used, + "[FA_cnt] {CCK, OFDM} = {%d, %d}\n", + ccx->ifs_clm_cckfa, ccx->ifs_clm_ofdmfa); + PDM_SNPF(out_len, used, output + used, out_len - used, + "[CCA_exclude_FA_cnt] {CCK, OFDM} = {%d, %d}\n", + ccx->ifs_clm_cckcca_excl_fa, + ccx->ifs_clm_ofdmcca_excl_fa); + PDM_SNPF(out_len, used, output + used, out_len - used, + "CCATotal = %d\n", ccx->ifs_clm_total_cca); + PDM_SNPF(out_len, used, output + used, out_len - used, + "Time:[his, avg, avg_cca]\n"); + for (i = 0; i < IFS_CLM_NUM; i++) + PDM_SNPF(out_len, used, output + used, out_len - used, + "T%d:[%d, %d, %d]\n", i + 1, + ccx->ifs_clm_his[i], ccx->ifs_clm_avg[i], + ccx->ifs_clm_avg_cca[i]); + + phydm_ifs_clm_get_utility(dm); + + ccx->ifs_clm_manual_ctrl = 0; + } else { /*IFS_CLM trigger*/ + ccx->ifs_clm_manual_ctrl = 1; + + if (var1[0] == 1) { + ifs_clm_para.ifs_clm_app = IFS_CLM_DBG; + ifs_clm_para.ifs_clm_lv = IFS_CLM_LV_4; + ifs_clm_para.mntr_time = 960; + ifs_clm_para.th_shift = 0; + } else { + ifs_clm_para.ifs_clm_app = (enum ifs_clm_application)var1[1]; + ifs_clm_para.ifs_clm_lv = (enum phydm_ifs_clm_level)var1[2]; + ifs_clm_para.mntr_time = (u16)var1[3]; + ifs_clm_para.th_shift = (s16)var1[4]; + } + + PDM_SNPF(out_len, used, output + used, out_len - used, + "app=%d, lv=%d, time=%d ms, th_shift=%s%d\n", + ifs_clm_para.ifs_clm_app, ifs_clm_para.ifs_clm_lv, + ifs_clm_para.mntr_time, + (ifs_clm_para.th_shift > 0) ? "+" : "-", + ifs_clm_para.th_shift); + + if (phydm_ifs_clm_mntr_set(dm, &ifs_clm_para) == PHYDM_SET_SUCCESS) + phydm_ifs_clm_trigger(dm); + + PDM_SNPF(out_len, used, output + used, out_len - used, + "rpt_stamp=%d\n", ccx->ifs_clm_rpt_stamp); + for (i = 0; i < IFS_CLM_NUM; i++) + PDM_SNPF(out_len, used, output + used, out_len - used, + "IFS_CLM_th%d[High Low] : [%d %d]\n", i + 1, + ccx->ifs_clm_th_high[i], + ccx->ifs_clm_th_low[i]); + } + + *_used = used; + *_out_len = out_len; +} +#endif + +u8 phydm_enhance_mntr_trigger(void *dm_void, struct nhm_para_info *nhm_para, + struct clm_para_info *clm_para, + struct fahm_para_info *fahm_para, + struct ifs_clm_para_info *ifs_clm_para, + struct enhance_mntr_trig_rpt *trig_rpt) +{ + u8 trigger_result = 0; +#if (defined(NHM_SUPPORT) && defined(CLM_SUPPORT) && defined(FAHM_SUPPORT) && defined(IFS_CLM_SUPPORT)) + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + boolean nhm_set_ok = false; + boolean clm_set_ok = false; + boolean fahm_set_ok = false; + boolean ifs_clm_set_ok = false; + + if (!(dm->support_ic_type & PHYDM_IC_SUPPORT_FAHM) || + !(dm->support_ic_type & PHYDM_IC_SUPPORT_IFS_CLM)) + return trigger_result; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s] ======>\n", __func__); + + nhm_set_ok = phydm_nhm_mntr_set(dm, nhm_para); + + if (ccx->clm_mntr_mode == CLM_DRIVER_MNTR) { + clm_set_ok = phydm_clm_mntr_set(dm, clm_para); + } else if (ccx->clm_mntr_mode == CLM_FW_MNTR) { + phydm_clm_h2c(dm, CLM_PERIOD_MAX, true); + trigger_result |= CLM_SUCCESS; + } + + fahm_set_ok = phydm_fahm_mntr_set(dm, fahm_para); + + ifs_clm_set_ok = phydm_ifs_clm_mntr_set(dm, ifs_clm_para); + + if (nhm_set_ok) { + phydm_nhm_trigger(dm); + trigger_result |= NHM_SUCCESS; + } + + if (clm_set_ok) { + phydm_clm_trigger(dm); + trigger_result |= CLM_SUCCESS; + } + + if (fahm_set_ok) { + phydm_fahm_trigger(dm); + trigger_result |= FAHM_SUCCESS; + } + + if (ifs_clm_set_ok) { + phydm_ifs_clm_trigger(dm); + trigger_result |= IFS_CLM_SUCCESS; + } + + /*monitor for the test duration*/ + ccx->start_time = odm_get_current_time(dm); + + trig_rpt->nhm_rpt_stamp = ccx->nhm_rpt_stamp; + trig_rpt->clm_rpt_stamp = ccx->clm_rpt_stamp; + trig_rpt->fahm_rpt_stamp = ccx->fahm_rpt_stamp; + trig_rpt->ifs_clm_rpt_stamp = ccx->ifs_clm_rpt_stamp; + + PHYDM_DBG(dm, DBG_ENV_MNTR, + "rpt_stamp{NHM, CLM, FAHM, IFS_CLM}={%d, %d, %d, %d}\n\n", + trig_rpt->nhm_rpt_stamp, trig_rpt->clm_rpt_stamp, + trig_rpt->fahm_rpt_stamp, trig_rpt->ifs_clm_rpt_stamp); + +#endif + return trigger_result; +} + +u8 phydm_enhance_mntr_result(void *dm_void, struct enhance_mntr_rpt *rpt) +{ + u8 enhance_mntr_rpt = 0; +#if (defined(NHM_SUPPORT) && defined(CLM_SUPPORT) && defined(FAHM_SUPPORT) && defined(IFS_CLM_SUPPORT)) + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + u64 progressing_time = 0; + u32 val_tmp = 0; + + if (!(dm->support_ic_type & PHYDM_IC_SUPPORT_FAHM) || + !(dm->support_ic_type & PHYDM_IC_SUPPORT_IFS_CLM)) + return enhance_mntr_rpt; + + /*monitor for the test duration*/ + progressing_time = odm_get_progressing_time(dm, ccx->start_time); + PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s] ======>\n", __func__); + PHYDM_DBG(dm, DBG_ENV_MNTR, "enhance_mntr_time=%lld\n", + progressing_time); + + /*Get NHM result*/ + if (phydm_nhm_get_result(dm)) { + PHYDM_DBG(dm, DBG_ENV_MNTR, "Get NHM_rpt success\n"); + phydm_nhm_get_utility(dm); + rpt->nhm_ratio = ccx->nhm_ratio; + rpt->nhm_env_ratio = ccx->nhm_env_ratio; + rpt->nhm_noise_pwr = ccx->nhm_level; + rpt->nhm_pwr = ccx->nhm_pwr; + enhance_mntr_rpt |= NHM_SUCCESS; + + odm_move_memory(dm, &rpt->nhm_result[0], + &ccx->nhm_result[0], NHM_RPT_NUM); + } else { + rpt->nhm_ratio = ENV_MNTR_FAIL; + rpt->nhm_env_ratio = ENV_MNTR_FAIL; + } + + PHYDM_DBG(dm, DBG_ENV_MNTR, + "[NHM]rpt_stamp=%d, IGI=0x%x, ratio=%d, env_ratio=%d, noise_pwr=%d, pwr=%d\n", + rpt->nhm_rpt_stamp, ccx->nhm_igi, rpt->nhm_ratio, + rpt->nhm_env_ratio, rpt->nhm_noise_pwr, rpt->nhm_pwr); + + /*Get CLM result*/ + if (ccx->clm_mntr_mode == CLM_DRIVER_MNTR) { + if (phydm_clm_get_result(dm)) { + PHYDM_DBG(dm, DBG_ENV_MNTR, "Get CLM_rpt success\n"); + phydm_clm_get_utility(dm); + enhance_mntr_rpt |= CLM_SUCCESS; + rpt->clm_ratio = ccx->clm_ratio; + } else { + rpt->clm_ratio = ENV_MNTR_FAIL; + } + } else { + if (ccx->clm_fw_result_cnt != 0) { + val_tmp = ccx->clm_fw_result_acc + / ccx->clm_fw_result_cnt; + ccx->clm_ratio = (u8)val_tmp; + } else { + ccx->clm_ratio = 0; + } + rpt->clm_ratio = ccx->clm_ratio; + PHYDM_DBG(dm, DBG_ENV_MNTR, + "clm_fw_result_acc=%d, clm_fw_result_cnt=%d\n", + ccx->clm_fw_result_acc, ccx->clm_fw_result_cnt); + + ccx->clm_fw_result_acc = 0; + ccx->clm_fw_result_cnt = 0; + enhance_mntr_rpt |= CLM_SUCCESS; + } + + PHYDM_DBG(dm, DBG_ENV_MNTR, "[CLM]rpt_stamp=%d, ratio=%d\n", + rpt->clm_rpt_stamp, rpt->clm_ratio); + + /*Get FAHM result*/ + if (phydm_fahm_get_result(dm)) { + PHYDM_DBG(dm, DBG_ENV_MNTR, "Get FAHM_rpt success\n"); + phydm_fahm_get_utility(dm); + rpt->fahm_pwr = ccx->fahm_pwr; + rpt->fahm_ratio = ccx->fahm_ratio; + rpt->fahm_denom_ratio = ccx->fahm_denom_ratio; + rpt->fahm_inclu_cck = ccx->fahm_inclu_cck; + enhance_mntr_rpt |= FAHM_SUCCESS; + + odm_move_memory(dm, &rpt->fahm_result[0], + &ccx->fahm_result[0], FAHM_RPT_NUM * 2); + } else { + rpt->fahm_pwr = 0; + rpt->fahm_ratio = 0; + rpt->fahm_denom_ratio = 0; + } + + PHYDM_DBG(dm, DBG_ENV_MNTR, + "[FAHM]stamp=%d, IGI=0x%x, fahm_inclu_cck=%d, fahm_pwr=%d, fahm_ratio=%d, fahm_denom_ratio=%d\n", + rpt->fahm_rpt_stamp, ccx->fahm_igi, rpt->fahm_inclu_cck, + rpt->fahm_pwr, rpt->fahm_ratio, rpt->fahm_denom_ratio); + + /*Get IFS_CLM result*/ + phydm_ifs_clm_get_result(dm); + phydm_ifs_clm_get_utility(dm); + rpt->ifs_clm_tx_ratio = ccx->ifs_clm_tx_ratio; + rpt->ifs_clm_edcca_excl_cca_ratio = ccx->ifs_clm_edcca_excl_cca_ratio; + rpt->ifs_clm_cck_fa_ratio = ccx->ifs_clm_cck_fa_ratio; + rpt->ifs_clm_cck_cca_excl_fa_ratio = ccx->ifs_clm_cck_cca_excl_fa_ratio; + rpt->ifs_clm_ofdm_fa_ratio = ccx->ifs_clm_ofdm_fa_ratio; + rpt->ifs_clm_ofdm_cca_excl_fa_ratio = ccx->ifs_clm_ofdm_cca_excl_fa_ratio; + rpt->ifs_clm_rpt_stamp = ccx->ifs_clm_rpt_stamp; + enhance_mntr_rpt |= IFS_CLM_SUCCESS; + + PHYDM_DBG(dm, DBG_ENV_MNTR, + "[IFS_CLM]rpt_stamp = %d, Tx_ratio = %d, EDCCA_exclude_CCA_ratio = %d\n", + ccx->ifs_clm_rpt_stamp, ccx->ifs_clm_tx_ratio, + ccx->ifs_clm_edcca_excl_cca_ratio); + PHYDM_DBG(dm, DBG_ENV_MNTR, + "CCK : FA_ratio = %d, CCA_exclude_FA_ratio = %d\n", + ccx->ifs_clm_cck_fa_ratio, ccx->ifs_clm_cck_cca_excl_fa_ratio); + PHYDM_DBG(dm, DBG_ENV_MNTR, + "OFDM : FA_ratio = %d, CCA_exclude_FA_ratio = %d\n", + ccx->ifs_clm_ofdm_fa_ratio, + ccx->ifs_clm_ofdm_cca_excl_fa_ratio); + + rpt->nhm_rpt_stamp = ccx->nhm_rpt_stamp; + rpt->clm_rpt_stamp = ccx->clm_rpt_stamp; + rpt->fahm_rpt_stamp = ccx->fahm_rpt_stamp; + rpt->ifs_clm_rpt_stamp = ccx->ifs_clm_rpt_stamp; +#endif + return enhance_mntr_rpt; +} + +void phydm_enhance_mntr_dbg(void *dm_void, char input[][16], u32 *_used, + char *output, u32 *_out_len) +{ +#if (defined(NHM_SUPPORT) && defined(CLM_SUPPORT) && defined(FAHM_SUPPORT) && defined(IFS_CLM_SUPPORT)) + struct dm_struct *dm = (struct dm_struct *)dm_void; + char help[] = "-h"; + u32 var1[10] = {0}; + u32 used = *_used; + u32 out_len = *_out_len; + struct nhm_para_info nhm_para = {0}; + struct clm_para_info clm_para = {0}; + struct fahm_para_info fahm_para = {0}; + struct ifs_clm_para_info ifs_clm_para = {0}; + struct enhance_mntr_rpt rpt = {0}; + struct enhance_mntr_trig_rpt trig_rpt = {0}; + struct ccx_info *ccx = &dm->dm_ccx_info; + u8 set_result = 0; + u8 i = 0; + + if (!(dm->support_ic_type & PHYDM_IC_SUPPORT_FAHM) || + !(dm->support_ic_type & PHYDM_IC_SUPPORT_IFS_CLM)) + return; + + PHYDM_SSCANF(input[1], DCMD_DECIMAL, &var1[0]); + + if ((strcmp(input[1], help) == 0)) { + PDM_SNPF(out_len, used, output + used, out_len - used, + "Basic-Trigger 960ms for ifs_clm, 262ms for others: {1}\n"); + PDM_SNPF(out_len, used, output + used, out_len - used, + "Get Result: {100}\n"); + } else if (var1[0] == 100) { /* Get results */ + set_result = phydm_enhance_mntr_result(dm, &rpt); + + PDM_SNPF(out_len, used, output + used, out_len - used, + "Set Result=%d, rpt_stamp{NHM, CLM, FAHM, IFS_CLM}={%d, %d, %d, %d}\n", + set_result, rpt.nhm_rpt_stamp, rpt.clm_rpt_stamp, + rpt.fahm_rpt_stamp, rpt.ifs_clm_rpt_stamp); + PDM_SNPF(out_len, used, output + used, out_len - used, + "clm_ratio=%d\n", rpt.clm_ratio); + + for (i = 0; i < NHM_RPT_NUM; i++) { + PDM_SNPF(out_len, used, output + used, out_len - used, + "nhm_rpt[%d] = %d (%d percent)\n", i, + rpt.nhm_result[i], + (((rpt.nhm_result[i] * 100) + 128) >> 8)); + } + + PDM_SNPF(out_len, used, output + used, out_len - used, + "nhm_IGI=0x%x, nhm_ratio=%d, nhm_env_ratio=%d, nhm_noise_pwr=%d, nhm_pwr=%d\n", + ccx->nhm_igi, rpt.nhm_ratio, rpt.nhm_env_ratio, + rpt.nhm_noise_pwr, rpt.nhm_pwr); + + if (!(rpt.fahm_inclu_cck)) + PDM_SNPF(out_len, used, output + used, + out_len - used, + "===>The following fahm report does not count CCK pkt\n"); + + for (i = 0; i < FAHM_RPT_NUM; i++) { + PDM_SNPF(out_len, used, output + used, out_len - used, + "fahm_rpt[%d] = %d (%d percent)\n", i, + rpt.fahm_result[i], + (((rpt.fahm_result[i] * 100) + 32768) >> 16)); + } + + PDM_SNPF(out_len, used, output + used, out_len - used, + "fahm_IGI=0x%x, fahm_pwr=%d, fahm_ratio=%d, fahm_denom_ratio=%d\n", + ccx->fahm_igi, rpt.fahm_pwr, rpt.fahm_ratio, + rpt.fahm_denom_ratio); + PDM_SNPF(out_len, used, output + used, out_len - used, + "ifs_clm_Tx_ratio = %d, ifs_clm_EDCCA_exclude_CCA_ratio = %d \n", + rpt.ifs_clm_tx_ratio, + rpt.ifs_clm_edcca_excl_cca_ratio); + PDM_SNPF(out_len, used, output + used, out_len - used, + "ifs_clm_cck_fa_ratio = %d, ifs_clm_cck_cca_exclude_FA_ratio = %d \n", + rpt.ifs_clm_cck_fa_ratio, + rpt.ifs_clm_cck_cca_excl_fa_ratio); + PDM_SNPF(out_len, used, output + used, out_len - used, + "ifs_clm_ofdm_fa_ratio = %d, ifs_clm_ofdm_cca_exclude_FA_ratio = %d \n", + rpt.ifs_clm_ofdm_fa_ratio, + rpt.ifs_clm_ofdm_cca_excl_fa_ratio); + } else { /* Set & trigger*/ + /*nhm para*/ + nhm_para.incld_txon = NHM_EXCLUDE_TXON; + nhm_para.incld_cca = NHM_EXCLUDE_CCA; + nhm_para.div_opt = NHM_CNT_ALL; + nhm_para.nhm_app = NHM_ACS; + nhm_para.nhm_lv = NHM_LV_2; + nhm_para.mntr_time = 262; + nhm_para.en_1db_mode = false; + + /*clm para*/ + clm_para.clm_app = CLM_ACS; + clm_para.clm_lv = CLM_LV_2; + clm_para.mntr_time = 262; + + /*fahm para*/ + fahm_para.numer_opt = FAHM_INCLU_FA; + fahm_para.denom_opt = FAHM_INCLU_CRC_ERR; + fahm_para.app = FAHM_ACS; + fahm_para.lv = FAHM_LV_2; + fahm_para.mntr_time = 262; + fahm_para.en_1db_mode = false; + + ifs_clm_para.ifs_clm_app = IFS_CLM_ACS; + ifs_clm_para.ifs_clm_lv = IFS_CLM_LV_2; + ifs_clm_para.mntr_time = 960; + ifs_clm_para.th_shift = 0; + + set_result = phydm_enhance_mntr_trigger(dm, &nhm_para, + &clm_para, &fahm_para, + &ifs_clm_para, + &trig_rpt); + + PDM_SNPF(out_len, used, output + used, out_len - used, + "Set Result=%d, rpt_stamp{NHM, CLM, FAHM, IFS_CLM}={%d, %d ,%d, %d}\n", + set_result, trig_rpt.nhm_rpt_stamp, + trig_rpt.clm_rpt_stamp, trig_rpt.fahm_rpt_stamp, + trig_rpt.ifs_clm_rpt_stamp); + } + *_used = used; + *_out_len = out_len; +#endif +} + +#ifdef EDCCA_CLM_SUPPORT + +void phydm_edcca_clm_racing_release(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); + PHYDM_DBG(dm, DBG_ENV_MNTR, "lv:(%d)->(0)\n", ccx->edcca_clm_set_lv); + + ccx->edcca_clm_ongoing = false; + ccx->edcca_clm_set_lv = EDCCA_CLM_RELEASE; + ccx->edcca_clm_app = EDCCA_CLM_BACKGROUND; +} + +u8 phydm_edcca_clm_racing_ctrl(void *dm_void, enum phydm_edcca_clm_level lv) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + u8 set_result = PHYDM_SET_SUCCESS; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "edcca_clm_ongoing=%d, lv:(%d)->(%d)\n", + ccx->edcca_clm_ongoing, ccx->edcca_clm_set_lv, lv); + if (ccx->edcca_clm_ongoing) { + if (lv <= ccx->edcca_clm_set_lv) { + set_result = PHYDM_SET_FAIL; + } else { + phydm_ccx_hw_restart(dm); + ccx->edcca_clm_ongoing = false; + } + } + + if (set_result) + ccx->edcca_clm_set_lv = lv; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "edcca_clm racing success=%d\n", + set_result); + return set_result; +} + +void phydm_edcca_clm_trigger(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); + + odm_set_bb_reg(dm, R_0x1e5c, BIT(26), 0x0); + odm_set_bb_reg(dm, R_0x1e5c, BIT(26), 0x1); + + ccx->edcca_clm_trigger_time = dm->phydm_sys_up_time; + ccx->edcca_clm_rpt_stamp++; + ccx->edcca_clm_ongoing = true; +} + +void phydm_edcca_clm_get_utility(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + + ccx->edcca_clm_ratio = phydm_ccx_get_rpt_ratio(dm, + ccx->edcca_clm_result, + EDCCA_CLM_PERIOD); +} + +boolean +phydm_edcca_clm_get_result(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx_info = &dm->dm_ccx_info; + u32 val = 0; + + if (!(odm_get_bb_reg(dm, R_0x2d8c, BIT(16)))) { + PHYDM_DBG(dm, DBG_ENV_MNTR, "Get EDCCA_CLM report Fail\n"); + phydm_edcca_clm_racing_release(dm); + return false; + } + + val = odm_get_bb_reg(dm, R_0x2d8c, MASKLWORD); + ccx_info->edcca_clm_result = (u16)val; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "EDCCA_CLM result = %d *4 us\n", + ccx_info->edcca_clm_result); + phydm_edcca_clm_racing_release(dm); + return true; +} + +u8 phydm_edcca_clm_mntr_set(void *dm_void, struct edcca_clm_para_info *para) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + + if (para->edcca_clm_lv >= EDCCA_CLM_MAX_NUM) { + PHYDM_DBG(dm, DBG_ENV_MNTR, "[WARNING] Wrong LV=%d\n", + para->edcca_clm_lv); + return PHYDM_SET_FAIL; + } + + if (phydm_edcca_clm_racing_ctrl(dm, para->edcca_clm_lv) == PHYDM_SET_FAIL) + return PHYDM_SET_FAIL; + + ccx->edcca_clm_app = para->edcca_clm_app; + + return PHYDM_SET_SUCCESS; +} + +boolean +phydm_edcca_clm_mntr_racing_chk(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + u32 sys_return_time = 0; + + if (ccx->edcca_clm_manual_ctrl) { + PHYDM_DBG(dm, DBG_ENV_MNTR, "EDCCA_CLM in manual ctrl\n"); + return true; + } + + sys_return_time = ccx->edcca_clm_trigger_time + MAX_ENV_MNTR_TIME; + + if (ccx->edcca_clm_app != EDCCA_CLM_BACKGROUND && + (sys_return_time > dm->phydm_sys_up_time)) { + PHYDM_DBG(dm, DBG_ENV_MNTR, + "edcca_clm_app=%d, trigger_time %d, sys_time=%d\n", + ccx->edcca_clm_app, ccx->edcca_clm_trigger_time, + dm->phydm_sys_up_time); + + return true; + } + + return false; +} + +boolean +phydm_edcca_clm_mntr_chk(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + struct edcca_clm_para_info para = {0}; + boolean edcca_clm_chk_result = false; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); + + if (phydm_edcca_clm_mntr_racing_chk(dm)) + return edcca_clm_chk_result; + + /*[EDCCA_CLM trigger setting]----------------------------------------*/ + para.edcca_clm_app = EDCCA_CLM_BACKGROUND; + para.edcca_clm_lv = EDCCA_CLM_LV_1; + + edcca_clm_chk_result = phydm_edcca_clm_mntr_set(dm, ¶); + + return edcca_clm_chk_result; +} + +boolean +phydm_edcca_clm_mntr_result(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + boolean edcca_clm_chk_result = false; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); + + if (phydm_edcca_clm_mntr_racing_chk(dm)) + return edcca_clm_chk_result; + + /*[EDCCA_CLM get result & calculate Utility]-------------------------*/ + if (phydm_edcca_clm_get_result(dm)) { + PHYDM_DBG(dm, DBG_ENV_MNTR, "Get EDCCA_CLM_rpt success\n"); + phydm_edcca_clm_get_utility(dm); + edcca_clm_chk_result = true; + } + + return edcca_clm_chk_result; +} + +void phydm_edcca_clm_init(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); + ccx->edcca_clm_ongoing = false; + ccx->edcca_clm_manual_ctrl = 0; + ccx->edcca_clm_rpt_stamp = 0; +} + +void phydm_edcca_clm_dbg(void *dm_void, char input[][16], u32 *_used, + char *output, u32 *_out_len) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + char help[] = "-h"; + u32 var1[10] = {0}; + u32 used = *_used; + u32 out_len = *_out_len; + struct edcca_clm_para_info para = {0}; + u32 i; + + if (!(dm->support_ic_type & PHYDM_IC_SUPPORT_EDCCA_CLM)) + return; + + for (i = 0; i < 4; i++) { + if (input[i + 1]) + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &var1[i]); + } + + if ((strcmp(input[1], help) == 0)) { + PDM_SNPF(out_len, used, output + used, out_len - used, + "EDCCA_CLM Basic-Trigger 262ms: {1}\n"); + PDM_SNPF(out_len, used, output + used, out_len - used, + "EDCCA_CLM Adv-Trigger 262ms: {2} {app} {LV}\n"); + PDM_SNPF(out_len, used, output + used, out_len - used, + "EDCCA_CLM Get Result: {100}\n"); + } else if (var1[0] == 100) { + if (phydm_edcca_clm_get_result(dm)) + phydm_edcca_clm_get_utility(dm); + + PDM_SNPF(out_len, used, output + used, out_len - used, + "edcca_clm_rpt_stamp=%d\n", ccx->edcca_clm_rpt_stamp); + + PDM_SNPF(out_len, used, output + used, out_len - used, + "edcca_clm_ratio:((%d percent)) = (%d us/ 262140 us)\n", + ccx->edcca_clm_ratio, ccx->edcca_clm_result << 2); + + ccx->edcca_clm_manual_ctrl = 0; + } else { + ccx->edcca_clm_manual_ctrl = 1; + + if (var1[0] == 1) { + para.edcca_clm_app = EDCCA_CLM_DBG; + para.edcca_clm_lv = EDCCA_CLM_LV_4; + } else if (var1[0] == 2) { + para.edcca_clm_app = (enum edcca_clm_application)var1[1]; + para.edcca_clm_lv = (enum phydm_edcca_clm_level)var1[2]; + } + + PDM_SNPF(out_len, used, output + used, out_len - used, + "app=%d, lv=%d\n", para.edcca_clm_app, + para.edcca_clm_lv); + + if (phydm_edcca_clm_mntr_set(dm, ¶) == PHYDM_SET_SUCCESS) + phydm_edcca_clm_trigger(dm); + + PDM_SNPF(out_len, used, output + used, out_len - used, + "edcca_clm_rpt_stamp=%d\n", ccx->edcca_clm_rpt_stamp); + } + + *_used = used; + *_out_len = out_len; +} + +#endif + +/*Environment Monitor*/ +void phydm_env_mntr_result_watchdog(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + + ccx->ccx_watchdog_result = 0; + + if (!(dm->support_ability & ODM_BB_ENV_MONITOR)) + return; + + #if (defined(NHM_SUPPORT) && defined(CLM_SUPPORT)) + if (phydm_nhm_mntr_result(dm)) + ccx->ccx_watchdog_result |= NHM_SUCCESS; + + if (phydm_clm_mntr_result(dm)) + ccx->ccx_watchdog_result |= CLM_SUCCESS; + + PHYDM_DBG(dm, DBG_ENV_MNTR, + "Summary: nhm_ratio=((%d)) clm_ratio=((%d))\n\n", + ccx->nhm_ratio, ccx->clm_ratio); + #endif + + #ifdef FAHM_SUPPORT + if (dm->support_ic_type & PHYDM_IC_SUPPORT_FAHM) { + if (phydm_fahm_mntr_result(dm)) + ccx->ccx_watchdog_result |= FAHM_SUCCESS; + } + #endif + + #ifdef IFS_CLM_SUPPORT + if (dm->support_ic_type & PHYDM_IC_SUPPORT_IFS_CLM) { + if (phydm_ifs_clm_mntr_result(dm)) + ccx->ccx_watchdog_result |= IFS_CLM_SUCCESS; + } + #endif + + #ifdef EDCCA_CLM_SUPPORT + if (dm->support_ic_type & PHYDM_IC_SUPPORT_EDCCA_CLM) { + if (phydm_edcca_clm_mntr_result(dm)) + ccx->ccx_watchdog_result |= EDCCA_CLM_SUCCESS; + } + #endif +} + +void phydm_env_mntr_set_watchdog(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + + if (!(dm->support_ability & ODM_BB_ENV_MONITOR)) + return; + + PHYDM_DBG(dm, DBG_ENV_MNTR, "[%s]===>\n", __func__); + + #if (defined(NHM_SUPPORT) && defined(CLM_SUPPORT)) + if (phydm_nhm_mntr_chk(dm, 262)) + phydm_nhm_trigger(dm); + + if (phydm_clm_mntr_chk(dm, 262)) + phydm_clm_trigger(dm); + #endif + + #ifdef FAHM_SUPPORT + if (dm->support_ic_type & PHYDM_IC_SUPPORT_FAHM) { + if (phydm_fahm_mntr_chk(dm, 262)) + phydm_fahm_trigger(dm); + } + #endif + + #ifdef IFS_CLM_SUPPORT + if (dm->support_ic_type & PHYDM_IC_SUPPORT_IFS_CLM) { + if (phydm_ifs_clm_mntr_chk(dm, 960)) + phydm_ifs_clm_trigger(dm); + } + #endif + + #ifdef EDCCA_CLM_SUPPORT + if (dm->support_ic_type & PHYDM_IC_SUPPORT_EDCCA_CLM) { + if (phydm_edcca_clm_mntr_chk(dm)) + phydm_edcca_clm_trigger(dm); + } + #endif +} + +void phydm_env_monitor_init(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + #if (defined(NHM_SUPPORT) && defined(CLM_SUPPORT)) + phydm_ccx_hw_restart(dm); + phydm_nhm_init(dm); + phydm_clm_init(dm); + #endif + + #ifdef FAHM_SUPPORT + phydm_fahm_init(dm); + #endif + + #ifdef IFS_CLM_SUPPORT + if (dm->support_ic_type & PHYDM_IC_SUPPORT_IFS_CLM) { + phydm_ifs_clm_restart(dm); + phydm_ifs_clm_init(dm); + } + #endif + + #ifdef EDCCA_CLM_SUPPORT + if (dm->support_ic_type & PHYDM_IC_SUPPORT_EDCCA_CLM) + phydm_edcca_clm_init(dm); + #endif +} + diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_ccx.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_ccx.h index 4097ea3b..28efbe53 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_ccx.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_ccx.h @@ -26,8 +26,8 @@ #ifndef __PHYDMCCX_H__ #define __PHYDMCCX_H__ -/* 2019.07.01 Modify nhm cmd*/ -#define CCX_VERSION "3.1" +/* 2021.03.10 Add 8814C flag*/ +#define CCX_VERSION "4.9" /* @1 ============================================================ * 1 Definition @@ -36,30 +36,41 @@ #define CCX_EN 1 #define MAX_ENV_MNTR_TIME 8 /*second*/ -#define IGI_TO_NHM_TH_MULTIPLIER 2 +#define MS_TO_US 1000 #define MS_TO_4US_RATIO 250 #define CCA_CAP 14 +/*CLM*/ #define CLM_MAX_REPORT_TIME 10 -#define DEVIDER_ERROR 0xffff -#define CLM_PERIOD_MAX 65535 -#define NHM_PERIOD_MAX 65534 +#define CLM_PERIOD_MAX 65535 +/*NHM*/ +#define NHM_PERIOD_MAX 65534 #define NHM_TH_NUM 11 /*threshold number of NHM*/ #define NHM_RPT_NUM 12 +#define NHM_IC_NOISE_TH 60 /*60/2 - 10 = 20 = -80 dBm*/ +#define NHM_RPT_MAX 255 #ifdef NHM_DYM_PW_TH_SUPPORT #define DYM_PWTH_CCA_CAP 24 #endif - -#define IGI_2_NHM_TH(igi) ((igi) << 1)/*NHM_threshold = IGI * 2*/ +#define IGI_2_NHM_TH(igi) ((igi) << 1)/*NHM/FAHM threshold = IGI * 2*/ #define NTH_TH_2_RSSI(th) ((th >> 1) - 10) - -/*@FAHM*/ -#define FAHM_INCLD_FA BIT(0) -#define FAHM_INCLD_CRC_OK BIT(1) -#define FAHM_INCLD_CRC_ER BIT(2) +/*FAHM*/ +#define FAHM_INCLU_FA BIT(0) +#define FAHM_INCLU_CRC_OK BIT(1) +#define FAHM_INCLU_CRC_ERR BIT(2) +#define FAHM_PERIOD_MAX 65534 +#define FAHM_TH_NUM 11 /*threshold number of FAHM*/ +#define FAHM_RPT_NUM 12 +/*IFS-CLM*/ +#define IFS_CLM_PERIOD_MAX 65535 +#define IFS_CLM_NUM 4 +/*EDCCA-CLM*/ +#define EDCCA_CLM_PERIOD 65535 #define NHM_SUCCESS BIT(0) #define CLM_SUCCESS BIT(1) #define FAHM_SUCCESS BIT(2) +#define IFS_CLM_SUCCESS BIT(3) +#define EDCCA_CLM_SUCCESS BIT(4) #define ENV_MNTR_FAIL 0xff /* @1 ============================================================ @@ -84,6 +95,33 @@ enum phydm_nhm_level { NHM_MAX_NUM = 5 }; +enum phydm_fahm_level { + FAHM_RELEASE = 0, + FAHM_LV_1 = 1, /* Low Priority function */ + FAHM_LV_2 = 2, /* Middle Priority function */ + FAHM_LV_3 = 3, /* High priority function (ex: Check hang function) */ + FAHM_LV_4 = 4, /* Debug function (the highest priority) */ + FAHM_MAX_NUM = 5 +}; + +enum phydm_ifs_clm_level { + IFS_CLM_RELEASE = 0, + IFS_CLM_LV_1 = 1, /* @Low Priority function */ + IFS_CLM_LV_2 = 2, /* @Middle Priority function */ + IFS_CLM_LV_3 = 3, /* @High priority function (ex: Check hang function) */ + IFS_CLM_LV_4 = 4, /* @Debug function (the highest priority) */ + IFS_CLM_MAX_NUM = 5 +}; + +enum phydm_edcca_clm_level { + EDCCA_CLM_RELEASE = 0, + EDCCA_CLM_LV_1 = 1, /* @Low Priority function */ + EDCCA_CLM_LV_2 = 2, /* @Middle Priority function */ + EDCCA_CLM_LV_3 = 3, /* @High priority function (ex: Check hang function) */ + EDCCA_CLM_LV_4 = 4, /* @Debug function (the highest priority) */ + EDCCA_CLM_MAX_NUM = 5 +}; + enum nhm_divider_opt_all { NHM_CNT_ALL = 0, /*nhm SUM report <= 255*/ NHM_VALID = 1, /*nhm SUM report = 255*/ @@ -122,11 +160,38 @@ enum clm_application { CLM_ACS = 1, }; +enum fahm_application { + FAHM_BACKGROUND = 0,/*default*/ + FAHM_ACS = 1, + FAHM_DBG = 2, /*manual trigger*/ +}; + +enum ifs_clm_application { + IFS_CLM_BACKGROUND = 0,/*default*/ + IFS_CLM_ACS = 1, + IFS_CLM_HP_TAS = 2, + IFS_CLM_DBG = 3, +}; + enum clm_monitor_mode { CLM_DRIVER_MNTR = 1, CLM_FW_MNTR = 2 }; +enum phydm_ifs_clm_unit { + IFS_CLM_4 = 0, /*4us*/ + IFS_CLM_8 = 1, /*8us*/ + IFS_CLM_12 = 2, /*12us*/ + IFS_CLM_16 = 3, /*16us*/ + IFS_CLM_INIT +}; + +enum edcca_clm_application { + EDCCA_CLM_BACKGROUND = 0,/*@default*/ + EDCCA_CLM_ACS = 1, + EDCCA_CLM_DBG = 2, +}; + /* @1 ============================================================ * 1 structure * 1 ============================================================ @@ -136,14 +201,46 @@ struct env_trig_rpt { u8 clm_rpt_stamp; }; - struct env_mntr_rpt { u8 nhm_ratio; + u8 nhm_env_ratio; /*exclude nhm_r[0] above -80dBm or first cluster under -80dBm*/ u8 nhm_result[NHM_RPT_NUM]; u8 clm_ratio; u8 nhm_rpt_stamp; u8 clm_rpt_stamp; - u8 nhm_noise_pwr; + u8 nhm_noise_pwr; /*including r[0]~r[10]*/ + u8 nhm_pwr; /*including r[0]~r[11]*/ +}; + +struct enhance_mntr_trig_rpt { + u8 nhm_rpt_stamp; + u8 clm_rpt_stamp; + u8 fahm_rpt_stamp; + u8 ifs_clm_rpt_stamp; +}; + +struct enhance_mntr_rpt { + u8 nhm_ratio; + u8 nhm_env_ratio; /*exclude nhm_r[0] above -80dBm or first cluster under -80dBm*/ + u8 nhm_result[NHM_RPT_NUM]; + u8 clm_ratio; + u8 nhm_rpt_stamp; + u8 clm_rpt_stamp; + u8 nhm_noise_pwr; /*including r[0]~r[10]*/ + u8 nhm_pwr; /*including r[0]~r[11]*/ + u16 fahm_result[NHM_RPT_NUM]; + u8 fahm_rpt_stamp; + u8 fahm_pwr; + u8 fahm_ratio; + u8 fahm_denom_ratio; + u8 fahm_inclu_cck; + u8 ifs_clm_rpt_stamp; + u8 ifs_clm_tx_ratio; + u8 ifs_clm_edcca_excl_cca_ratio; + u8 ifs_clm_cck_fa_ratio; + u8 ifs_clm_cck_cca_excl_fa_ratio; + u8 ifs_clm_ofdm_fa_ratio; + u8 ifs_clm_ofdm_cca_excl_fa_ratio; }; struct nhm_para_info { @@ -163,10 +260,40 @@ struct clm_para_info { u16 mntr_time; /*@0~262 unit ms*/ }; +struct fahm_para_info { + enum fahm_application app; + enum phydm_fahm_level lv; + u16 mntr_time; /*0~262 unit ms*/ + u8 numer_opt; + u8 denom_opt; + boolean en_1db_mode; + u8 th0_manual;/* for 1-db mode*/ +}; + +struct ifs_clm_para_info { + enum ifs_clm_application ifs_clm_app; + enum phydm_ifs_clm_level ifs_clm_lv; + enum phydm_ifs_clm_unit ifs_clm_ctrl_unit; /*unit*/ + u16 mntr_time; /*ms*/ + boolean ifs_clm_th_en[IFS_CLM_NUM]; + u16 ifs_clm_th_low[IFS_CLM_NUM]; + u16 ifs_clm_th_high[IFS_CLM_NUM]; + s16 th_shift; +}; + +struct edcca_clm_para_info { + enum edcca_clm_application edcca_clm_app; + enum phydm_edcca_clm_level edcca_clm_lv; +}; + struct ccx_info { u32 nhm_trigger_time; u32 clm_trigger_time; + u32 fahm_trigger_time; + u32 ifs_clm_trigger_time; + u32 edcca_clm_trigger_time; u64 start_time; /*@monitor for the test duration*/ + u8 ccx_watchdog_result; #ifdef NHM_SUPPORT enum nhm_application nhm_app; enum nhm_option_txon_all nhm_include_txon; @@ -175,17 +302,20 @@ struct ccx_info { /*Report*/ u8 nhm_th[NHM_TH_NUM]; u8 nhm_result[NHM_RPT_NUM]; + u8 nhm_wgt[NHM_RPT_NUM]; u16 nhm_period; /* @4us per unit */ u8 nhm_igi; u8 nhm_manual_ctrl; u8 nhm_ratio; /*@1% per nuit, it means the interference igi can't overcome.*/ + u8 nhm_env_ratio; /*exclude nhm_r[0] above -80dBm or first cluster under -80dBm*/ u8 nhm_rpt_sum; u16 nhm_duration; /*@Real time of NHM_VALID */ u8 nhm_set_lv; boolean nhm_ongoing; u8 nhm_rpt_stamp; - u8 nhm_level; + u8 nhm_level; /*including r[0]~r[10]*/ u8 nhm_level_valid; + u8 nhm_pwr; /*including r[0]~r[11]*/ #ifdef NHM_DYM_PW_TH_SUPPORT boolean nhm_dym_pw_th_en; boolean dym_pwth_manual_ctrl; @@ -211,11 +341,63 @@ struct ccx_info { u8 clm_rpt_stamp; #endif #ifdef FAHM_SUPPORT + enum fahm_application fahm_app; boolean fahm_ongoing; - u8 env_mntr_igi; - u8 fahm_nume_sel; /*@fahm_numerator_sel: select {FA, CRCOK, CRC_fail} */ - u8 fahm_denom_sel; /*@fahm_denominator_sel: select {FA, CRCOK, CRC_fail} */ + u8 fahm_numer_opt; + u8 fahm_denom_opt; + boolean fahm_inclu_cck; + u8 fahm_th[NHM_TH_NUM]; + u16 fahm_result[NHM_RPT_NUM]; + u16 fahm_result_sum; + u16 fahm_denom_result; u16 fahm_period; /*unit: 4us*/ + u8 fahm_igi; + u8 fahm_manual_ctrl; + u8 fahm_set_lv; + u8 fahm_rpt_stamp; + u8 fahm_pwr; /*including r[0]~r[11]*/ + u8 fahm_ratio; + u8 fahm_denom_ratio; +#endif +#ifdef IFS_CLM_SUPPORT + enum ifs_clm_application ifs_clm_app; + /*Control*/ + enum phydm_ifs_clm_unit ifs_clm_ctrl_unit; /*4,8,12,16us per unit*/ + u16 ifs_clm_period; + boolean ifs_clm_th_en[IFS_CLM_NUM]; + u16 ifs_clm_th_low[IFS_CLM_NUM]; + u16 ifs_clm_th_high[IFS_CLM_NUM]; + /*Flow control*/ + u8 ifs_clm_set_lv; + u8 ifs_clm_manual_ctrl; + boolean ifs_clm_ongoing; + /*Report*/ + u8 ifs_clm_rpt_stamp; + u16 ifs_clm_tx; + u16 ifs_clm_edcca_excl_cca; + u16 ifs_clm_ofdmfa; + u16 ifs_clm_ofdmcca_excl_fa; + u16 ifs_clm_cckfa; + u16 ifs_clm_cckcca_excl_fa; + u8 ifs_clm_his[IFS_CLM_NUM]; /*trx_neg_edge to CCA/FA posedge per times*/ + u16 ifs_clm_total_cca; + u16 ifs_clm_avg[IFS_CLM_NUM]; /*4,8,12,16us per unit*/ + u16 ifs_clm_avg_cca[IFS_CLM_NUM]; /*4,8,12,16us per unit*/ + u8 ifs_clm_tx_ratio; + u8 ifs_clm_edcca_excl_cca_ratio; + u8 ifs_clm_cck_fa_ratio; + u8 ifs_clm_cck_cca_excl_fa_ratio; + u8 ifs_clm_ofdm_fa_ratio; + u8 ifs_clm_ofdm_cca_excl_fa_ratio; +#endif +#ifdef EDCCA_CLM_SUPPORT + enum edcca_clm_application edcca_clm_app; + u8 edcca_clm_manual_ctrl; + u8 edcca_clm_set_lv; + boolean edcca_clm_ongoing; + u16 edcca_clm_result; + u8 edcca_clm_ratio; + u8 edcca_clm_rpt_stamp; #endif }; @@ -231,14 +413,12 @@ void phydm_fahm_dbg(void *dm_void, char input[][16], u32 *_used, char *output, u32 *_out_len); #endif -/*@NHM*/ #ifdef NHM_SUPPORT void phydm_nhm_dbg(void *dm_void, char input[][16], u32 *_used, char *output, u32 *_out_len); u8 phydm_get_igi(void *dm_void, enum bb_path path); #endif -/*@CLM*/ #ifdef CLM_SUPPORT void phydm_clm_c2h_report_handler(void *dm_void, u8 *cmd_buf, u8 cmd_len); @@ -252,10 +432,37 @@ u8 phydm_env_mntr_trigger(void *dm_void, struct nhm_para_info *nhm_para, u8 phydm_env_mntr_result(void *dm_void, struct env_mntr_rpt *rpt); -void phydm_env_mntr_watchdog(void *dm_void); +void phydm_env_mntr_dbg(void *dm_void, char input[][16], u32 *_used, + char *output, u32 *_out_len); + +#ifdef IFS_CLM_SUPPORT +void phydm_ifs_clm_dbg(void *dm_void, char input[][16], u32 *_used, + char *output, u32 *_out_len); +#endif + +u8 phydm_enhance_mntr_trigger(void *dm_void, + struct nhm_para_info *nhm_para, + struct clm_para_info *clm_para, + struct fahm_para_info *fahm_para, + struct ifs_clm_para_info *ifs_clm_para, + struct enhance_mntr_trig_rpt *trig_rpt); + +u8 phydm_enhance_mntr_result(void *dm_void, struct enhance_mntr_rpt *rpt); + +void phydm_enhance_mntr_dbg(void *dm_void, char input[][16], u32 *_used, + char *output, u32 *_out_len); + +#ifdef EDCCA_CLM_SUPPORT +void phydm_edcca_clm_dbg(void *dm_void, char input[][16], u32 *_used, + char *output, u32 *_out_len); +#endif + +void phydm_env_mntr_result_watchdog(void *dm_void); + +void phydm_env_mntr_set_watchdog(void *dm_void); + +u8 phydm_env_mntr_get_802_11_k_rsni(void *dm_void, s8 rcpi, s8 anpi); void phydm_env_monitor_init(void *dm_void); -void phydm_env_mntr_dbg(void *dm_void, char input[][16], u32 *_used, - char *output, u32 *_out_len); #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_cfotracking.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_cfotracking.c index 8532d4e8..766511a4 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_cfotracking.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_cfotracking.c @@ -211,7 +211,8 @@ phydm_set_crystal_cap_reg(void *dm_void, u8 crystal_cap) u32 reg_val = 0; if (dm->support_ic_type & (ODM_RTL8822C | ODM_RTL8814B | - ODM_RTL8195B | ODM_RTL8812F | ODM_RTL8721D | ODM_RTL8710C)) { + ODM_RTL8195B | ODM_RTL8812F | ODM_RTL8721D | + ODM_RTL8710C | ODM_RTL8723F | ODM_RTL8814C)) { crystal_cap &= 0x7F; reg_val = crystal_cap | (crystal_cap << 7); } else { @@ -249,9 +250,9 @@ phydm_set_crystal_cap_reg(void *dm_void, u8 crystal_cap) } #endif #if (RTL8822B_SUPPORT || RTL8821C_SUPPORT || RTL8197F_SUPPORT ||\ - RTL8192F_SUPPORT || RTL8197G_SUPPORT) + RTL8192F_SUPPORT || RTL8197G_SUPPORT || RTL8198F_SUPPORT) else if (dm->support_ic_type & (ODM_RTL8822B | ODM_RTL8821C | - ODM_RTL8197F | ODM_RTL8192F | ODM_RTL8197G)) { + ODM_RTL8197F | ODM_RTL8192F | ODM_RTL8197G | ODM_RTL8198F)) { /* write 0x24[30:25] = 0x28[6:1] = crystal_cap */ odm_set_mac_reg(dm, R_0x24, 0x7e000000, crystal_cap); odm_set_mac_reg(dm, R_0x28, 0x7e, crystal_cap); @@ -289,10 +290,15 @@ phydm_set_crystal_cap_reg(void *dm_void, u8 crystal_cap) phydm_set_crystalcap(dm, (u8)(reg_val & 0x7f)); } #endif - + #if (RTL8723F_SUPPORT) + else if (dm->support_ic_type & ODM_RTL8723F) { + /* write 0x103c[23:17] = 0x103c[16:10] = crystal_cap */ + odm_set_mac_reg(dm, R_0x103c, 0x00FFFC00, reg_val); + } + #endif #if (RTL8822C_SUPPORT || RTL8814B_SUPPORT || RTL8812F_SUPPORT) else if (dm->support_ic_type & (ODM_RTL8822C | ODM_RTL8814B | - ODM_RTL8812F)) { + ODM_RTL8812F | ODM_RTL8814C)) { /* write 0x1040[23:17] = 0x1040[16:10] = crystal_cap */ odm_set_mac_reg(dm, R_0x1040, 0x00FFFC00, reg_val); } else { @@ -325,7 +331,8 @@ void phydm_cfo_tracking_reset(void *dm_void) PHYDM_DBG(dm, DBG_CFO_TRK, "%s ======>\n", __func__); if (dm->support_ic_type & (ODM_RTL8822C | ODM_RTL8814B | ODM_RTL8195B | - ODM_RTL8812F)) + ODM_RTL8812F | ODM_RTL8710C | ODM_RTL8721D | ODM_RTL8723F | + ODM_RTL8814C)) cfo_track->def_x_cap = cfo_track->crystal_cap_default & 0x7f; else cfo_track->def_x_cap = cfo_track->crystal_cap_default & 0x3f; @@ -351,7 +358,7 @@ void phydm_cfo_tracking_reset(void *dm_void) #endif #ifdef PHYDM_IC_JGR3_SERIES_SUPPORT #if (DM_ODM_SUPPORT_TYPE & (ODM_WIN | ODM_CE | ODM_AP)) - if (dm->support_ic_type & ODM_RTL8814B) { + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { /*Disable advance time for CFO residual*/ odm_set_bb_reg(dm, R_0xc2c, BIT29, 0x0); } @@ -366,7 +373,8 @@ void phydm_cfo_tracking_init(void *dm_void) PHYDM_DBG(dm, DBG_CFO_TRK, "[%s]=========>\n", __func__); if (dm->support_ic_type & (ODM_RTL8822C | ODM_RTL8814B | ODM_RTL8195B | - ODM_RTL8812F)) + ODM_RTL8812F | ODM_RTL8710C | ODM_RTL8721D | ODM_RTL8723F | + ODM_RTL8814C)) cfo_track->crystal_cap = cfo_track->crystal_cap_default & 0x7f; else cfo_track->crystal_cap = cfo_track->crystal_cap_default & 0x3f; @@ -481,7 +489,8 @@ void phydm_cfo_tracking(void *dm_void) crystal_cap -= 1; if (dm->support_ic_type & (ODM_RTL8822C | ODM_RTL8814B | - ODM_RTL8195B | ODM_RTL8812F)) { + ODM_RTL8195B | ODM_RTL8812F | ODM_RTL8710C | + ODM_RTL8721D | ODM_RTL8723F | ODM_RTL8814C)) { if (crystal_cap > 0x7F) crystal_cap = 0x7F; } else { @@ -511,7 +520,7 @@ void phydm_cfo_tracking(void *dm_void) #endif #ifdef PHYDM_IC_JGR3_SERIES_SUPPORT #if (DM_ODM_SUPPORT_TYPE & (ODM_WIN | ODM_CE | ODM_AP)) - if (dm->support_ic_type & ODM_RTL8814B) { + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { //Disable advance time for CFO residual odm_set_bb_reg(dm, R_0xc2c, BIT29, 0x0); } diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_debug.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_debug.c index 3f4476d4..dde03231 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_debug.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_debug.c @@ -141,7 +141,6 @@ u8 phydm_set_bb_dbg_port(void *dm_void, u8 curr_dbg_priority, u32 debug_port) odm_set_bb_reg(dm, R_0x8fc, MASKDWORD, debug_port); } else if (dm->support_ic_type & ODM_IC_JGR3_SERIES) { odm_set_bb_reg(dm, R_0x1c3c, 0xfff00, debug_port); - } else { /*@if (dm->support_ic_type & ODM_IC_11N_SERIES)*/ odm_set_bb_reg(dm, R_0x908, MASKDWORD, debug_port); } @@ -745,10 +744,15 @@ void phydm_bb_hw_dbg_info_jgr3(void *dm_void, u32 *_used, char *output, "\r\n %-35s %s", "mode", tmp_string); /*@ [RX counter Info] ===============================================*/ - PDM_SNPF(out_len, used, output + used, out_len - used, - "\r\n %-35s = %d", "CCK CCA cnt", - odm_get_bb_reg(dm, R_0x2c08, 0xFFFF)); - + if (dm->support_ic_type & ODM_RTL8723F) { + PDM_SNPF(out_len, used, output + used, out_len - used, + "\r\n %-35s = %d", "CCK CCA cnt", + odm_get_bb_reg(dm, R_0x2aa0, 0xFFFF)); + } else { + PDM_SNPF(out_len, used, output + used, out_len - used, + "\r\n %-35s = %d", "CCK CCA cnt", + odm_get_bb_reg(dm, R_0x2c08, 0xFFFF)); + } PDM_SNPF(out_len, used, output + used, out_len - used, "\r\n %-35s = %d", "OFDM CCA cnt", odm_get_bb_reg(dm, R_0x2c08, 0xFFFF0000)); @@ -999,12 +1003,13 @@ void phydm_dm_summary_cli_win(void *dm_void, char *buf, u8 macid) return; } - RT_SPRINTF(buf, DBGM_CLI_BUF_SIZE, "00.(%s) %-12s: IGI=0x%x, Dyn_Rng=0x%x~0x%x, FA_th={%d,%d,%d}\n", + RT_SPRINTF(buf, DBGM_CLI_BUF_SIZE, "00.(%s) %-12s: IGI=0x%x, Dyn_Rng=0x%x~0x%x, fa_src=%d, FA_th={%d,%d,%d}\n", ((comp & ODM_BB_DIG) ? ((pause_comp & ODM_BB_DIG) ? "P" : "V") : "."), "DIG", dig_t->cur_ig_value, dig_t->rx_gain_range_min, dig_t->rx_gain_range_max, + dig_t->fa_source, dig_t->fa_th[0], dig_t->fa_th[1], dig_t->fa_th[2]); RT_PRINT(buf); @@ -1083,13 +1088,38 @@ void phydm_dm_summary_cli_win(void *dm_void, char *buf, u8 macid) RT_PRINT(buf); RT_SPRINTF(buf, DBGM_CLI_BUF_SIZE, - "15.(%s) %-12s: ratio{nhm, clm}={%d, %d}, level{valid, RSSI}={%d, %d}\n", + "15.(%s) %-12s: ratio{nhm, clm}={%d, %d}, nhm_pwr=%d\n", ((comp & ODM_BB_ENV_MONITOR) ? ((pause_comp & ODM_BB_ENV_MONITOR) ? "P" : "V") : "."), "EnvMntr", dm->dm_ccx_info.nhm_ratio, dm->dm_ccx_info.clm_ratio, - dm->dm_ccx_info.nhm_level_valid, dm->dm_ccx_info.nhm_level); + dm->dm_ccx_info.nhm_pwr); RT_PRINT(buf); + + RT_SPRINTF(buf, DBGM_CLI_BUF_SIZE, "15.(%s) %-12s: NHM_Rpt(H->L)[%d %d %d %d %d %d %d %d %d %d %d %d]\n", + ((comp & ODM_BB_ENV_MONITOR) ? + ((pause_comp & ODM_BB_ENV_MONITOR) ? "P" : "V") : "."), + "EnvMntr", + dm->dm_ccx_info.nhm_result[11], + dm->dm_ccx_info.nhm_result[10], + dm->dm_ccx_info.nhm_result[9], dm->dm_ccx_info.nhm_result[8], + dm->dm_ccx_info.nhm_result[7], dm->dm_ccx_info.nhm_result[6], + dm->dm_ccx_info.nhm_result[5], dm->dm_ccx_info.nhm_result[4], + dm->dm_ccx_info.nhm_result[3], dm->dm_ccx_info.nhm_result[2], + dm->dm_ccx_info.nhm_result[1], dm->dm_ccx_info.nhm_result[0]); + RT_PRINT(buf); + +#ifdef EDCCA_CLM_SUPPORT + if (dm->support_ic_type & PHYDM_IC_SUPPORT_EDCCA_CLM) { + RT_SPRINTF(buf, DBGM_CLI_BUF_SIZE, "15.(%s) %-12s: edcca_clm_ratio=%d\n", + ((comp & ODM_BB_ENV_MONITOR) ? + ((pause_comp & ODM_BB_ENV_MONITOR) ? "P" : "V") : "."), + "EnvMntr", + dm->dm_ccx_info.edcca_clm_ratio); + RT_PRINT(buf); + } +#endif + #ifdef PHYDM_PRIMARY_CCA RT_SPRINTF(buf, DBGM_CLI_BUF_SIZE, "16.(%s) %-12s: CCA @ (%s SB)\n", ((comp & ODM_BB_PRIMARY_CCA) ? @@ -1476,6 +1506,12 @@ void phydm_basic_dbg_msg_cli_win(void *dm_void, char *buf) RT_PRINT(buf); } + RT_SPRINTF(buf, DBGM_CLI_BUF_SIZE, + "\r\n [Tx cnt] {CCK_TxEN, CCK_TxON, OFDM_TxEN, OFDM_TxON} = {%d, %d, %d, %d}", + fa_t->cnt_cck_txen, fa_t->cnt_cck_txon, fa_t->cnt_ofdm_txen, + fa_t->cnt_ofdm_txon); + RT_PRINT(buf); + RT_SPRINTF(buf, DBGM_CLI_BUF_SIZE, "\r\n [CCA Cnt] {CCK, OFDM, Total} = {%d, %d, %d}", fa_t->cnt_cck_cca, fa_t->cnt_ofdm_cca, fa_t->cnt_cca_all); RT_PRINT(buf); @@ -1484,21 +1520,26 @@ void phydm_basic_dbg_msg_cli_win(void *dm_void, char *buf) fa_t->cnt_cck_fail, fa_t->cnt_ofdm_fail, fa_t->cnt_all); RT_PRINT(buf); + RT_SPRINTF(buf, DBGM_CLI_BUF_SIZE, + "\r\n [FA duration(us)] {exp, ifs_clm, fahm} = {%d, %d, %d}", + fa_t->time_fa_exp, fa_t->time_fa_ifs_clm, + fa_t->time_fa_fahm); + RT_PRINT(buf); + RT_SPRINTF(buf, DBGM_CLI_BUF_SIZE, "\r\n [OFDM FA] Parity=%d, Rate=%d, Fast_Fsync=%d, SBD=%d", fa_t->cnt_parity_fail, fa_t->cnt_rate_illegal, fa_t->cnt_fast_fsync, fa_t->cnt_sb_search_fail); RT_PRINT(buf); - RT_SPRINTF(buf, DBGM_CLI_BUF_SIZE, - "\r\n [HT FA] HT_CRC8=%d, HT_MCS=%d", + RT_SPRINTF(buf, DBGM_CLI_BUF_SIZE, "\r\n [HT FA] CRC8=%d, MCS=%d", fa_t->cnt_crc8_fail, fa_t->cnt_mcs_fail); RT_PRINT(buf); #if (ODM_IC_11AC_SERIES_SUPPORT || defined(PHYDM_IC_JGR3_SERIES_SUPPORT)) if (dm->support_ic_type & (ODM_IC_11AC_SERIES | ODM_IC_JGR3_SERIES)) { RT_SPRINTF(buf, DBGM_CLI_BUF_SIZE, - "\r\n [VHT FA] VHT_SIGA_CRC8=%d, VHT_SIGB_CRC8=%d, VHT_MCS=%d", + "\r\n [VHT FA] SIGA_CRC8=%d, SIGB_CRC8=%d, MCS=%d", fa_t->cnt_crc8_fail_vhta, fa_t->cnt_crc8_fail_vhtb, fa_t->cnt_mcs_fail_vht); RT_PRINT(buf); @@ -1514,49 +1555,56 @@ void phydm_basic_dbg_msg_cli_win(void *dm_void, char *buf) RT_SPRINTF(buf, DBGM_CLI_BUF_SIZE, "\r\n [CRC32 Err Cnt] {CCK, OFDM, HT, VHT, Total} = {%d, %d, %d, %d, %d}", - fa_t->cnt_cck_crc32_error, - fa_t->cnt_ofdm_crc32_error, + fa_t->cnt_cck_crc32_error, fa_t->cnt_ofdm_crc32_error, fa_t->cnt_ht_crc32_error, fa_t->cnt_vht_crc32_error, fa_t->cnt_crc32_error_all); RT_PRINT(buf); + if (fa_t->ofdm2_rate_idx) { + phydm_print_rate_2_buff(dm, fa_t->ofdm2_rate_idx, + dbg_buf, PHYDM_SNPRINT_SIZE); + RT_SPRINTF(buf, DBGM_CLI_BUF_SIZE, + "\r\n [OFDM:%s CRC32 Cnt] {error, ok}= {%d, %d} (%d percent)", + dbg_buf, fa_t->cnt_ofdm2_crc32_error, + fa_t->cnt_ofdm2_crc32_ok, fa_t->ofdm2_pcr); + RT_PRINT(buf); + } + + if (fa_t->ht2_rate_idx) { + phydm_print_rate_2_buff(dm, fa_t->ht2_rate_idx, dbg_buf, + PHYDM_SNPRINT_SIZE); + RT_SPRINTF(buf, DBGM_CLI_BUF_SIZE, + "\r\n [HT :%s CRC32 Cnt] {error, ok}= {%d, %d} (%d percent)", + dbg_buf, fa_t->cnt_ht2_crc32_error, + fa_t->cnt_ht2_crc32_ok, fa_t->ht2_pcr); + RT_PRINT(buf); + } + #if (ODM_IC_11AC_SERIES_SUPPORT || defined(PHYDM_IC_JGR3_SERIES_SUPPORT)) if (dm->support_ic_type & (ODM_IC_11AC_SERIES | ODM_IC_JGR3_SERIES)) { - if (fa_t->ofdm2_rate_idx) { - phydm_print_rate_2_buff(dm, fa_t->ofdm2_rate_idx, - dbg_buf, PHYDM_SNPRINT_SIZE); - RT_SPRINTF(buf, DBGM_CLI_BUF_SIZE, - "\r\n [OFDM:%s CRC32 Cnt] {error, ok}= {%d, %d}", - dbg_buf, fa_t->cnt_ofdm2_crc32_error, - fa_t->cnt_ofdm2_crc32_ok); - RT_PRINT(buf); - } - - if (fa_t->ht2_rate_idx) { - phydm_print_rate_2_buff(dm, fa_t->ht2_rate_idx, dbg_buf, - PHYDM_SNPRINT_SIZE); - RT_SPRINTF(buf, DBGM_CLI_BUF_SIZE, - "\r\n [HT :%s CRC32 Cnt] {error, ok}= {%d, %d}", - dbg_buf, fa_t->cnt_ht2_crc32_error, - fa_t->cnt_ht2_crc32_ok); - RT_PRINT(buf); - } - if (fa_t->vht2_rate_idx) { phydm_print_rate_2_buff(dm, fa_t->vht2_rate_idx, dbg_buf, PHYDM_SNPRINT_SIZE); RT_SPRINTF(buf, DBGM_CLI_BUF_SIZE, - "\r\n [VHT :%s CRC32 Cnt] {error, ok}= {%d, %d}", + "\r\n [VHT :%s CRC32 Cnt] {error, ok}= {%d, %d} (%d percent)", dbg_buf, fa_t->cnt_vht2_crc32_error, - fa_t->cnt_vht2_crc32_ok); + fa_t->cnt_vht2_crc32_ok, fa_t->vht2_pcr); RT_PRINT(buf); } } #endif - RT_SPRINTF(buf, DBGM_CLI_BUF_SIZE, - "\r\n is_linked = %d, Num_client = %d, rssi_min = %d, IGI = 0x%x, bNoisy=%d\n", - dm->is_linked, dm->number_linked_client, dm->rssi_min, - dm->dm_dig_table.cur_ig_value, dm->noisy_decision); + + if (dm->support_ic_type & (ODM_IC_11N_SERIES | ODM_IC_11AC_SERIES)) + RT_SPRINTF(buf, DBGM_CLI_BUF_SIZE, + "\r\n is_linked = %d, Num_client = %d, rssi_min = %d, IGI = 0x%x, bNoisy=%d\n", + dm->is_linked, dm->number_linked_client, dm->rssi_min, + dm->dm_dig_table.cur_ig_value, dm->noisy_decision); + else + RT_SPRINTF(buf, DBGM_CLI_BUF_SIZE, + "\r\n is_linked = %d, Num_client = %d, rssi_min = %d, IGI = 0x%x\n", + dm->is_linked, dm->number_linked_client, dm->rssi_min, + dm->dm_dig_table.cur_ig_value); + RT_PRINT(buf); phydm_dm_summary_cli_win(dm, buf, target_macid); @@ -2210,7 +2258,7 @@ void phydm_get_avg_phystatus_val(void *dm_void) if (dbg_s->rssi_cck_cnt) { dbg_avg->rssi_cck_avg = (u8)(dbg_s->rssi_cck_sum / dbg_s->rssi_cck_cnt); - #ifdef PHYSTS_3RD_TYPE_SUPPORT + #if (defined(PHYSTS_3RD_TYPE_SUPPORT) && defined(PHYDM_COMPILE_ABOVE_2SS)) if (dm->support_ic_type & PHYSTS_3RD_TYPE_IC) { for (i = 0; i < dm->num_rf_path - 1; i++) { avg_tmp = dbg_s->rssi_cck_sum_abv_2ss[i] / @@ -2309,7 +2357,8 @@ void phydm_basic_dbg_msg_linked(void *dm_void) #ifdef ODM_IC_11N_SERIES_SUPPORT #ifdef PHYDM_PRIMARY_CCA if (((*dm->channel <= 14) && (*dm->band_width == CHANNEL_WIDTH_40)) && - (dm->support_ic_type & ODM_IC_11N_SERIES)) { + (dm->support_ic_type & ODM_IC_11N_SERIES) && + (dm->support_ability & ODM_BB_PRIMARY_CCA)) { PHYDM_DBG(dm, DBG_CMN, "Primary CCA at ((%s SB))\n", ((*dm->sec_ch_offset == SECOND_CH_AT_LSB) ? "U" : "L")); @@ -2419,9 +2468,9 @@ void phydm_basic_dbg_msg_linked(void *dm_void) (dbg_t->is_stbc_pkt) ? "Y" : "N"); #endif -#if (RTL8822C_SUPPORT) +#if (RTL8822C_SUPPORT || RTL8723F_SUPPORT) /*Beamformed pkt*/ - if (dm->support_ic_type == ODM_RTL8822C) + if (dm->support_ic_type & (ODM_RTL8822C | ODM_RTL8723F)) PHYDM_DBG(dm, DBG_CMN, "Beamformed=((%s))\n", (dm->is_beamformed) ? "Y" : "N"); #endif @@ -2600,21 +2649,28 @@ void phydm_basic_dbg_message(void *dm_void) else PHYDM_DBG(dm, DBG_CMN, "No Link !!!\n"); + PHYDM_DBG(dm, DBG_CMN, + "[Tx cnt] {CCK_TxEN, CCK_TxON, OFDM_TxEN, OFDM_TxON} = {%d, %d, %d, %d}\n", + fa_t->cnt_cck_txen, fa_t->cnt_cck_txon, fa_t->cnt_ofdm_txen, + fa_t->cnt_ofdm_txon); PHYDM_DBG(dm, DBG_CMN, "[CCA Cnt] {CCK, OFDM, Total} = {%d, %d, %d}\n", fa_t->cnt_cck_cca, fa_t->cnt_ofdm_cca, fa_t->cnt_cca_all); PHYDM_DBG(dm, DBG_CMN, "[FA Cnt] {CCK, OFDM, Total} = {%d, %d, %d}\n", fa_t->cnt_cck_fail, fa_t->cnt_ofdm_fail, fa_t->cnt_all); + PHYDM_DBG(dm, DBG_CMN, + "[FA duration(us)] {exp, ifs_clm, fahm} = {%d, %d, %d}\n", + fa_t->time_fa_exp, fa_t->time_fa_ifs_clm, + fa_t->time_fa_fahm); PHYDM_DBG(dm, DBG_CMN, "[OFDM FA] Parity=%d, Rate=%d, Fast_Fsync=%d, SBD=%d\n", fa_t->cnt_parity_fail, fa_t->cnt_rate_illegal, fa_t->cnt_fast_fsync, fa_t->cnt_sb_search_fail); - PHYDM_DBG(dm, DBG_CMN, - "[HT FA] HT_CRC8=%d, HT_MCS=%d\n", + PHYDM_DBG(dm, DBG_CMN, "[HT FA] CRC8=%d, MCS=%d\n", fa_t->cnt_crc8_fail, fa_t->cnt_mcs_fail); #if (ODM_IC_11AC_SERIES_SUPPORT || defined(PHYDM_IC_JGR3_SERIES_SUPPORT)) if (dm->support_ic_type & (ODM_IC_11AC_SERIES | ODM_IC_JGR3_SERIES)) { PHYDM_DBG(dm, DBG_CMN, - "[VHT FA] VHT_SIGA_CRC8=%d, VHT_SIGB_CRC8=%d, VHT_MCS=%d\n", + "[VHT FA] SIGA_CRC8=%d, SIGB_CRC8=%d, MCS=%d\n", fa_t->cnt_crc8_fail_vhta, fa_t->cnt_crc8_fail_vhtb, fa_t->cnt_mcs_fail_vht); } @@ -2630,16 +2686,31 @@ void phydm_basic_dbg_message(void *dm_void) fa_t->cnt_ht_crc32_error, fa_t->cnt_vht_crc32_error, fa_t->cnt_crc32_error_all); - PHYDM_DBG(dm, DBG_CMN, - "is_linked = %d, Num_client = %d, rssi_min = %d, IGI = 0x%x, bNoisy=%d\n", - dm->is_linked, dm->number_linked_client, dm->rssi_min, - dm->dm_dig_table.cur_ig_value, dm->noisy_decision); - -#ifdef NHM_SUPPORT - if (dm->support_ability & ODM_BB_ENV_MONITOR) { + if (dm->support_ic_type & (ODM_IC_11N_SERIES | ODM_IC_11AC_SERIES)) PHYDM_DBG(dm, DBG_CMN, - "[NHM] valid: %d percent, noise(RSSI) = %d\n", - ccx->nhm_level_valid, ccx->nhm_level); + "is_linked = %d, Num_client = %d, rssi_min = %d, IGI = 0x%x, bNoisy=%d\n", + dm->is_linked, dm->number_linked_client, dm->rssi_min, + dm->dm_dig_table.cur_ig_value, dm->noisy_decision); + else + PHYDM_DBG(dm, DBG_CMN, + "is_linked = %d, Num_client = %d, rssi_min = %d, IGI = 0x%x\n", + dm->is_linked, dm->number_linked_client, dm->rssi_min, + dm->dm_dig_table.cur_ig_value); + + PHYDM_DBG(dm, DBG_CMN, "ratio{nhm, clm}={%d, %d}, nhm_pwr=%d\n", + ccx->nhm_ratio, ccx->clm_ratio, ccx->nhm_pwr); + + PHYDM_DBG(dm, DBG_CMN, + "NHM_Rpt(H->L)[%d %d %d %d %d %d %d %d %d %d %d %d]\n", + ccx->nhm_result[11], ccx->nhm_result[10], ccx->nhm_result[9], + ccx->nhm_result[8], ccx->nhm_result[7], ccx->nhm_result[6], + ccx->nhm_result[5], ccx->nhm_result[4], ccx->nhm_result[3], + ccx->nhm_result[2], ccx->nhm_result[1], ccx->nhm_result[0]); + +#ifdef EDCCA_CLM_SUPPORT + if (dm->support_ic_type & PHYDM_IC_SUPPORT_EDCCA_CLM) { + PHYDM_DBG(dm, DBG_CMN, "edcca_clm_ratio=%d\n", + ccx->edcca_clm_ratio); } #endif } @@ -2811,6 +2882,14 @@ void phydm_basic_profile(void *dm_void, u32 *_used, char *output, u32 *_out_len) } #endif +#if (RTL8723F_SUPPORT) + else if (dm->support_ic_type == ODM_RTL8723F) { + ic_type = "RTL8723F"; + date = RELEASE_DATE_8723F; + commit_by = COMMIT_BY_8723F; + release_ver = RELEASE_VERSION_8723F; + } +#endif #if (RTL8812F_SUPPORT) else if (dm->support_ic_type == ODM_RTL8812F) { ic_type = "RTL8812F"; @@ -2837,6 +2916,14 @@ void phydm_basic_profile(void *dm_void, u32 *_used, char *output, u32 *_out_len) release_ver = RELEASE_VERSION_8814B; } #endif +#if (RTL8814C_SUPPORT) + else if (dm->support_ic_type == ODM_RTL8814C) { + ic_type = "RTL8814C"; + date = RELEASE_DATE_8814C; + commit_by = COMMIT_BY_8814C; + release_ver = RELEASE_VERSION_8814C; + } +#endif PDM_SNPF(out_len, used, output + used, out_len - used, " %-35s: %s (MP Chip: %s)\n", "IC type", ic_type, @@ -2899,6 +2986,10 @@ void phydm_basic_profile(void *dm_void, u32 *_used, char *output, u32 *_out_len) "% PHYDM version %"); PDM_SNPF(out_len, used, output + used, out_len - used, " %-35s: %s\n", "Code base", PHYDM_CODE_BASE); +#ifdef PHYDM_SVN_REV + PDM_SNPF(out_len, used, output + used, out_len - used, " %-35s: %s\n", + "PHYDM SVN Ver", PHYDM_SVN_REV); +#endif PDM_SNPF(out_len, used, output + used, out_len - used, " %-35s: %s\n", "Release Date", PHYDM_RELEASE_DATE); PDM_SNPF(out_len, used, output + used, out_len - used, " %-35s: %s\n", @@ -3184,6 +3275,10 @@ void phydm_set_txagc(void *dm_void, u32 *const val, u32 *_used, pow = (val[3] & 0x3f); for (i = 0; i <= ODM_RATEMCS7; i++) rpt &= phydm_api_set_txagc(dm, pow, path, i, 0); + } else if (dm->support_ic_type &(ODM_RTL8723F)) { + pow = (val[3] & 0x7f); + for (i = 0; i <= ODM_RATEMCS7; i++) + rpt &= phydm_api_set_txagc(dm, pow, path, i, 0); } if (rpt) @@ -3292,8 +3387,8 @@ void phydm_shift_txagc(void *dm_void, u32 *const val, u32 *_used, char *output, rpt &= phydm_api_set_txagc(dm, pow, path, i, 1); } } else if (dm->support_ic_type & - (ODM_RTL8822C | ODM_RTL8814B | - ODM_RTL8812F | ODM_RTL8197G)) { + (ODM_RTL8822C | ODM_RTL8814B | ODM_RTL8814C | + ODM_RTL8812F | ODM_RTL8197G | ODM_RTL8723F)) { rpt &= phydm_api_shift_txagc(dm, val[3], path, 1); } } @@ -3325,10 +3420,8 @@ void phydm_set_txagc_dbg(void *dm_void, char input[][16], u32 *_used, u8 i = 0, input_idx = 0; for (i = 0; i < 5; i++) { - if (input[i + 1]) { - PHYDM_SSCANF(input[i + 1], DCMD_HEX, &var1[i]); - input_idx++; - } + PHYDM_SSCANF(input[i + 1], DCMD_HEX, &var1[i]); + input_idx++; } if ((strcmp(input[1], help) == 0)) { @@ -3436,7 +3529,6 @@ void phydm_debug_trace(void *dm_void, char input[][16], u32 *_used, u8 i = 0; for (i = 0; i < 5; i++) { - if (input[i + 1]) PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &val[i]); } comp = dm->debug_components; @@ -3586,10 +3678,8 @@ void phydm_fw_debug_trace(void *dm_void, char input[][16], u32 *_used, u32 comp = 0; for (i = 0; i < 5; i++) { - if (input[i + 1]) { - PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &val[i]); - input_idx++; - } + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &val[i]); + input_idx++; } if (input_idx == 0) @@ -3734,10 +3824,34 @@ void phydm_dump_bb_reg_jgr3(void *dm_void, u32 *_used, char *output, out_len - used, "0x%04x 0x%08x\n", addr, odm_get_bb_reg(dm, addr, MASKDWORD)); + #if (defined(RTL8723F_SUPPORT)) + if (dm->support_ic_type & ODM_RTL8723F) { + for (addr = 0x2a00; addr < 0x2a5c; addr += 4) { + PDM_VAST_SNPF(out_len, used, output + used, + out_len - used, "0x%04x 0x%08x\n", + addr, + odm_get_bb_reg(dm, addr, + MASKDWORD)); + } + } + #endif + for (addr = 0x4000; addr < 0x41ff; addr += 4) PDM_VAST_SNPF(out_len, used, output + used, out_len - used, "0x%04x 0x%08x\n", addr, odm_get_bb_reg(dm, addr, MASKDWORD)); + + #if (defined(RTL8723F_SUPPORT)) + if (dm->support_ic_type & ODM_RTL8723F) { + for (addr = 0x4300; addr < 0x43bf; addr += 4) { + PDM_VAST_SNPF(out_len, used, output + used, + out_len - used, "0x%04x 0x%08x\n", + addr, + odm_get_bb_reg(dm, addr, + MASKDWORD)); + } + } + #endif } *_used = used; *_out_len = out_len; @@ -3764,9 +3878,22 @@ void phydm_dump_bb_reg2_jgr3(void *dm_void, u32 *_used, char *output, } } #endif + /* @Do not change the order of page-2C/2D*/ PDM_VAST_SNPF(out_len, used, output + used, out_len - used, "------ BB report-register start ------\n"); + + #if (defined(RTL8723F_SUPPORT)) + if (dm->support_ic_type & ODM_RTL8723F) { + for (addr = 0x2aa0; addr < 0x2aff; addr += 4) { + PDM_VAST_SNPF(out_len, used, output + used, + out_len - used, "0x%04x 0x%08x\n", + addr, + odm_get_bb_reg(dm, addr, MASKDWORD)); + } + } + #endif + for (addr = 0x2c00; addr < 0x2dff; addr += 4) { PDM_VAST_SNPF(out_len, used, output + used, out_len - used, "0x%04x 0x%08x\n", @@ -3835,6 +3962,47 @@ void phydm_get_per_path_anapar_jgr3(void *dm_void, u8 path, u32 *_used, *_out_len = out_len; } +void phydm_get_csi_table_jgr3(void *dm_void, u32 *_used, char *output, + u32 *_out_len) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + u8 table_idx = 0; + u8 table_val = 0; + u32 used = *_used; + u32 out_len = *_out_len; + u32 dbgport_idx = 0x39e; + u32 dbgport_val = 0; + + /*enable clk*/ + odm_set_bb_reg(dm, R_0x1ee8, 0x3, 0x3); + /*enable read table*/ + odm_set_bb_reg(dm, R_0x1d94, BIT(31) | BIT(30), 0x2); + + for (table_idx = 0; table_idx < 128; table_idx++) { + odm_set_bb_reg(dm, R_0x1d94, MASKBYTE2, table_idx); + if (phydm_set_bb_dbg_port(dm, DBGPORT_PRI_3, dbgport_idx)) { + dbgport_val = phydm_get_bb_dbg_port_val(dm); + phydm_release_bb_dbg_port(dm); + } else { + PDM_VAST_SNPF(out_len, used, output + used, + out_len - used, + "table_idx:0x%x = read dbg_port error!\n", + table_idx); + } + table_val = dbgport_val >> 24; + PDM_VAST_SNPF(out_len, used, output + used, out_len - used, + "table_idx: 0x%x = 0x%x\n", + table_idx, table_val); + } + /*enable write table*/ + odm_set_bb_reg(dm, R_0x1d94, BIT(31) | BIT(30), 0x1); + /*disable clk*/ + odm_set_bb_reg(dm, R_0x1ee8, 0x3, 0x0); + + *_used = used; + *_out_len = out_len; +} + #endif void phydm_dump_bb_reg(void *dm_void, u32 *_used, char *output, u32 *_out_len) @@ -3974,8 +4142,7 @@ void phydm_dump_reg(void *dm_void, char input[][16], u32 *_used, char *output, u32 out_len = *_out_len; u32 addr = 0; - if (input[1]) - PHYDM_SSCANF(input[1], DCMD_DECIMAL, &var1[0]); + PHYDM_SSCANF(input[1], DCMD_DECIMAL, &var1[0]); if ((strcmp(input[1], help) == 0)) { #ifdef PHYDM_IC_JGR3_SERIES_SUPPORT @@ -4053,7 +4220,7 @@ void phydm_show_rx_rate(void *dm_void, char input[][16], u32 *_used, char *output, u32 *_out_len) { #if (RTL8822B_SUPPORT || RTL8821C_SUPPORT || RTL8814B_SUPPORT ||\ - RTL8195B_SUPPORT || RTL8822C_SUPPORT) + RTL8195B_SUPPORT || RTL8822C_SUPPORT || RTL8723F_SUPPORT) struct dm_struct *dm = (struct dm_struct *)dm_void; struct odm_phy_dbg_info *dbg = &dm->phy_dbg_info; u32 used = *_used; @@ -4063,10 +4230,8 @@ void phydm_show_rx_rate(void *dm_void, char input[][16], u32 *_used, u8 i, input_idx = 0; for (i = 0; i < 5; i++) { - if (input[i + 1]) { - PHYDM_SSCANF(input[i + 1], DCMD_HEX, &var1[i]); - input_idx++; - } + PHYDM_SSCANF(input[i + 1], DCMD_HEX, &var1[i]); + input_idx++; } if (input_idx == 0) @@ -4156,8 +4321,7 @@ void phydm_per_tone_evm(void *dm_void, char input[][16], u32 *_used, } for (i = 0; i < 4; i++) { - if (input[i + 1]) - PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &var1[i]); + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &var1[i]); } avg_num = var1[0]; @@ -4378,8 +4542,7 @@ void phydm_bw_ch_adjust(void *dm_void, char input[][16], } for (i = 0; i < 4; i++) { - if (input[i + 1]) - PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &var1[i]); + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &var1[i]); } is_enable_dbg_mode = (boolean)var1[0]; @@ -4410,10 +4573,8 @@ void phydm_ext_rf_element_ctrl(void *dm_void, char input[][16], u32 *_used, u8 i = 0, input_idx = 0; for (i = 0; i < 5; i++) { - if (input[i + 1]) { - PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &val[i]); - input_idx++; - } + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &val[i]); + input_idx++; } if (input_idx == 0) @@ -4495,6 +4656,27 @@ void phydm_get_anapar_table(void *dm_void, u32 *_used, char *output, *_out_len = out_len; } +void phydm_get_csi_table(void *dm_void, u32 *_used, char *output, + u32 *_out_len) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + u32 used = *_used; + u32 out_len = *_out_len; + +#ifdef PHYDM_IC_JGR3_SERIES_SUPPORT + if (!(dm->support_ic_type & ODM_IC_JGR3_SERIES)) + return; + + PDM_VAST_SNPF(out_len, used, output + used, out_len - used, + "------ CSI Table Parsing start ------\n"); + + phydm_get_csi_table_jgr3(dm, &used, output, &out_len); +#endif + + *_used = used; + *_out_len = out_len; +} + void phydm_dd_dbg_dump(void *dm_void, char input[][16], u32 *_used, char *output, u32 *_out_len) { @@ -4836,8 +5018,7 @@ void phydm_reg_monitor(void *dm_void, char input[][16], u32 *_used, u8 i = 0; for (i = 0; i < 7; i++) { - if (input[i + 1]) - PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &var1[i]); + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &var1[i]); } if ((strcmp(input[1], help) == 0)) { @@ -4911,8 +5092,7 @@ void phydm_get_rxagc_table_dbg(void *dm_void, char input[][16], u32 *_used, "get rxagc table : {0:ori, 1:modified} {table:0~15} {mp_gain_idx:0~63, all:0xff}\n"); } else { for (i = 0; i < 3; i++) { - if (input[i + 1]) - PHYDM_SSCANF(input[i + 1], DCMD_HEX, &var1[i]); + PHYDM_SSCANF(input[i + 1], DCMD_HEX, &var1[i]); } is_modified = (boolean)var1[0]; @@ -4968,9 +5148,8 @@ void phydm_shift_rxagc_table_dbg(void *dm_void, char input[][16], u32 *_used, "shift rxagc table : {0:-, 1:+} {value(0~63, unit:2dB)}\n"); } else { for (i = 0; i < 3; i++) { - if (input[i + 1]) - PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, - &var1[i]); + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, + &var1[i]); } if ((u8)var1[1] > 63) { @@ -4989,7 +5168,7 @@ void phydm_shift_rxagc_table_dbg(void *dm_void, char input[][16], u32 *_used, #endif } -#if RTL8814B_SUPPORT +#if (RTL8814B_SUPPORT || RTL8198F_SUPPORT) void phydm_spur_detect_dbg(void *dm_void, char input[][16], u32 *_used, char *output, u32 *_out_len) { @@ -5007,10 +5186,13 @@ void phydm_spur_detect_dbg(void *dm_void, char input[][16], u32 *_used, "2: CSI always On/ NBI Auto, 3: Disable, 4: CSI & NBI ON}\n"); PDM_SNPF(out_len, used, output + used, out_len - used, "{If CSI always ON (Mode 2 or 4) -> CSI wgt manual(0~7)}\n"); + PDM_SNPF(out_len, used, output + used, out_len - used, + "{5: Adjust CSI weight threshold} {0:-,1:+} {th offset}\n"); } else { for (i = 0; i < 10; i++) { if (input[i + 1]) - PHYDM_SSCANF(input[i + 1], DCMD_HEX, &var1[i]); + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, + &var1[i]); } if (var1[0] == 1) { @@ -5023,13 +5205,31 @@ void phydm_spur_detect_dbg(void *dm_void, char input[][16], u32 *_used, dm->dsde_sel = DET_CSI_NBI_EN; } else if (var1[0] == 0) { dm->dsde_sel = DET_AUTO; + } else if (var1[0] == 5) { + if (var1[1] == 0) + for (i = 0; i < 5; i++) + dm->csi_wgt_th_db[i] -= (u8)var1[2]; + else if (var1[1] == 1) + for (i = 0; i < 5; i++) + dm->csi_wgt_th_db[i] += (u8)var1[2]; + PDM_SNPF(out_len, used, output + used, out_len - used, "current csi weight threshold:\n"); + for (i = 0; i < 5; i++) + PDM_SNPF(out_len, used, output + used, + out_len - used, "----%2d", + dm->csi_wgt_th_db[i]); + PDM_SNPF(out_len, used, output + used, out_len - used, "\n"); + for (i = 0; i < 5; i++) + PDM_SNPF(out_len, used, output + used, + out_len - used, "--%d--|", i); + PDM_SNPF(out_len, used, output + used, out_len - used, "\n"); } else { PDM_SNPF(out_len, used, output + used, out_len - used, "Spur detection mode invalid!\n"); return; } - PDM_SNPF(out_len, used, output + used, out_len - used, - "spur detect mode = %d\n", dm->dsde_sel); + if (var1[0] < 5) + PDM_SNPF(out_len, used, output + used, out_len - used, + "spur detect mode = %d\n", dm->dsde_sel); if (dm->dsde_sel == DET_CSI_NBI_EN) { if (var1[1] < 8) { @@ -5113,9 +5313,21 @@ enum PHYDM_CMD_ID { PHYDM_SPUR_DETECT, #endif PHYDM_PHY_STATUS, - PHYDM_FA_CNT, + PHYDM_CRC32_CNT, + PHYDM_DCC, +#ifdef PHYDM_HW_IGI + PHYDM_HWIGI, +#endif +#ifdef PHYDM_HW_SWITCH_AGC_TAB + PHYDM_HW_AGCTAB, +#endif + PHYDM_PMAC_TX, PHYDM_GET_RXAGC, - PHYDM_SHIFT_RXAGC + PHYDM_SHIFT_RXAGC, + PHYDM_IFS_CLM, + PHYDM_ENHANCE_MNTR, + PHYDM_CSI_DBG, + PHYDM_EDCCA_CLM }; struct phydm_command phy_dm_ary[] = { @@ -5175,9 +5387,23 @@ struct phydm_command phy_dm_ary[] = { {"spur_detect", PHYDM_SPUR_DETECT}, #endif {"physts", PHYDM_PHY_STATUS}, - {"fa_cnt", PHYDM_FA_CNT}, + {"crc32_cnt", PHYDM_CRC32_CNT}, +#ifdef PHYDM_PMAC_TX_SETTING_SUPPORT + {"pmac_tx", PHYDM_PMAC_TX}, +#endif +#ifdef PHYDM_HW_IGI + {"hwigi", PHYDM_HWIGI}, +#endif +#ifdef PHYDM_HW_SWITCH_AGC_TAB + {"hw_agctab", PHYDM_HW_AGCTAB}, +#endif + {"dcc", PHYDM_DCC}, {"get_rxagc", PHYDM_GET_RXAGC}, - {"shift_rxagc", PHYDM_SHIFT_RXAGC} + {"shift_rxagc", PHYDM_SHIFT_RXAGC}, + {"ifs_clm", PHYDM_IFS_CLM}, + {"enh_mntr", PHYDM_ENHANCE_MNTR}, + {"csi_dbg", PHYDM_CSI_DBG}, + {"edcca_clm", PHYDM_EDCCA_CLM} }; #endif /*@#ifdef CONFIG_PHYDM_DEBUG_FUNCTION*/ @@ -5450,8 +5676,7 @@ void phydm_cmd_parser(struct dm_struct *dm, char input[][MAX_ARGV], break; case PHYDM_DIS_HTSTF_CONTROL: { - if (input[1]) - PHYDM_SSCANF(input[1], DCMD_DECIMAL, &var1[0]); + PHYDM_SSCANF(input[1], DCMD_DECIMAL, &var1[0]); if (var1[0] == 1) { /* setting being false is for debug */ @@ -5537,18 +5762,54 @@ void phydm_cmd_parser(struct dm_struct *dm, char input[][MAX_ARGV], phydm_spur_detect_dbg(dm, input, &used, output, &out_len); break; #endif - case PHYDM_FA_CNT: - phydm_fa_cnt_dbg(dm, input, &used, output, &out_len); + case PHYDM_CRC32_CNT: + phydm_crc32_cnt_dbg(dm, input, &used, output, &out_len); break; case PHYDM_PHY_STATUS: phydm_physts_dbg(dm, input, &used, output, &out_len); break; +#ifdef PHYDM_DCC_ENHANCE + case PHYDM_DCC: + phydm_dig_cckpd_coex_dbg(dm, input, &used, output, &out_len); + break; +#endif +#ifdef PHYDM_PMAC_TX_SETTING_SUPPORT + case PHYDM_PMAC_TX: + phydm_pmac_tx_dbg(dm, input, &used, output, &out_len); + break; +#endif +#ifdef PHYDM_HW_IGI + case PHYDM_HWIGI: + phydm_hwigi_dbg(dm, input, &used, output, &out_len); + break; +#endif +#ifdef PHYDM_HW_SWITCH_AGC_TAB + case PHYDM_HW_AGCTAB: + phydm_auto_agc_tab_debug(dm, input, &used, output, &out_len); + break; +#endif case PHYDM_GET_RXAGC: phydm_get_rxagc_table_dbg(dm, input, &used, output, &out_len); break; case PHYDM_SHIFT_RXAGC: phydm_shift_rxagc_table_dbg(dm, input, &used, output, &out_len); break; + case PHYDM_IFS_CLM: + #ifdef IFS_CLM_SUPPORT + phydm_ifs_clm_dbg(dm, input, &used, output, &out_len); + #endif + break; + case PHYDM_ENHANCE_MNTR: + phydm_enhance_mntr_dbg(dm, input, &used, output, &out_len); + break; + case PHYDM_CSI_DBG: + phydm_get_csi_table(dm, &used, output, &out_len); + break; + case PHYDM_EDCCA_CLM: + #ifdef EDCCA_CLM_SUPPORT + phydm_edcca_clm_dbg(dm, input, &used, output, &out_len); + #endif + break; default: PDM_SNPF(out_len, used, output + used, out_len - used, "Do not support this command\n"); diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_debug.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_debug.h index 6da5cd67..06e809b5 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_debug.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_debug.h @@ -1,7 +1,6 @@ /****************************************************************************** * * Copyright(c) 2007 - 2017 Realtek Corporation. - * Copyright (c) 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * * This program is free software; you can redistribute it and/or modify it * under the terms of version 2 of the GNU General Public License as @@ -32,8 +31,8 @@ /*#define DEBUG_VERSION "1.3"*/ /*2016.04.28 YuChen*/ /*#define DEBUG_VERSION "1.4"*/ /*2017.03.13 Dino*/ /*#define DEBUG_VERSION "2.0"*/ /*2018.01.10 Dino*/ -/* 2019.07.01 Move location of nhm_level msg in win_cli*/ -#define DEBUG_VERSION "3.8" +/*2020.07.03 fix cck report bug due to 8723F coding error*/ +#define DEBUG_VERSION "4.6" /*@ * ============================================================ @@ -89,6 +88,8 @@ #elif (DM_ODM_SUPPORT_TYPE == ODM_CE) && defined(DM_ODM_CE_MAC80211) #define PHYDM_SNPRINTF snprintf #elif (DM_ODM_SUPPORT_TYPE == ODM_CE) + #undef pr_debug + #define pr_debug printk #define RT_PRINTK(fmt, args...) pr_debug(fmt, ## args) #define RT_DISP(dbgtype, dbgflag, printstr) #define RT_TRACE(adapter, comp, drv_level, fmt, args...) \ diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dfs.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dfs.c index 6f2c8857..983296f9 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dfs.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dfs.c @@ -50,7 +50,7 @@ void phydm_dfs_segment_distinguish(void *dm_void, enum rf_syn syn_path) { struct dm_struct *dm = (struct dm_struct *)dm_void; - if (!(dm->support_ic_type & (ODM_RTL8814B))) + if (!(dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C))) return; if (syn_path == RF_SYN1) dm->seg1_dfs_flag = 1; @@ -62,7 +62,7 @@ void phydm_dfs_segment_flag_reset(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; - if (!(dm->support_ic_type & (ODM_RTL8814B))) + if (!(dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C))) return; if (dm->seg1_dfs_flag) dm->seg1_dfs_flag = 0; @@ -73,7 +73,7 @@ void phydm_radar_detect_reset(void *dm_void) struct dm_struct *dm = (struct dm_struct *)dm_void; if (dm->support_ic_type & (ODM_RTL8198F | ODM_RTL8822C | ODM_RTL8812F | - ODM_RTL8197G)) { + ODM_RTL8197G | ODM_RTL8723F)) { odm_set_bb_reg(dm, R_0xa40, BIT(15), 0); odm_set_bb_reg(dm, R_0xa40, BIT(15), 1); #if (RTL8721D_SUPPORT) @@ -81,7 +81,7 @@ void phydm_radar_detect_reset(void *dm_void) odm_set_bb_reg(dm, R_0xf58, BIT(29), 0); odm_set_bb_reg(dm, R_0xf58, BIT(29), 1); #endif - } else if (dm->support_ic_type & (ODM_RTL8814B)) { + } else if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { if (dm->seg1_dfs_flag == 1) { odm_set_bb_reg(dm, R_0xa6c, BIT(0), 0); odm_set_bb_reg(dm, R_0xa6c, BIT(0), 1); @@ -100,9 +100,9 @@ void phydm_radar_detect_disable(void *dm_void) struct dm_struct *dm = (struct dm_struct *)dm_void; if (dm->support_ic_type & (ODM_RTL8198F | ODM_RTL8822C | ODM_RTL8812F | - ODM_RTL8197G)) + ODM_RTL8197G | ODM_RTL8723F)) odm_set_bb_reg(dm, R_0xa40, BIT(15), 0); - else if (dm->support_ic_type & (ODM_RTL8814B)) { + else if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { if (dm->seg1_dfs_flag == 1) { odm_set_bb_reg(dm, R_0xa6c, BIT(0), 0); dm->seg1_dfs_flag = 0; @@ -443,38 +443,44 @@ void phydm_radar_detect_enable(void *dm_void) goto exit; } if (region_domain == PHYDM_DFS_DOMAIN_ETSI) { - odm_set_bb_reg(dm, R_0xa40, MASKDWORD, 0xb359c5bd); - if (dm->support_ic_type & (ODM_RTL8814B)) { + odm_set_bb_reg(dm, R_0xa40, MASKDWORD, 0xb25dc0bd); + if (dm->support_ic_type & + (ODM_RTL8814B | ODM_RTL8814C)) { if (dm->seg1_dfs_flag == 1) odm_set_bb_reg(dm, R_0xa6c, BIT(0), 1); } - odm_set_bb_reg(dm, R_0xa44, MASKDWORD, 0x3033bebd); + odm_set_bb_reg(dm, R_0xa44, MASKDWORD, 0x3030bea0); odm_set_bb_reg(dm, R_0xa48, MASKDWORD, 0x2a521254); - odm_set_bb_reg(dm, R_0xa4c, MASKDWORD, 0xa2533345); - odm_set_bb_reg(dm, R_0xa50, MASKDWORD, 0x605be003); - odm_set_bb_reg(dm, R_0xa54, MASKDWORD, 0x500089e8); + odm_set_bb_reg(dm, R_0xa4c, MASKDWORD, 0x42533345); + odm_set_bb_reg(dm, R_0xa50, MASKDWORD, 0x605be0c3); + odm_set_bb_reg(dm, R_0xa54, MASKDWORD, 0x500009e8); + odm_set_bb_reg(dm, R_0x180c, 0xe0000, 0x0); } else if (region_domain == PHYDM_DFS_DOMAIN_MKK) { - odm_set_bb_reg(dm, R_0xa40, MASKDWORD, 0xb359c5bd); - if (dm->support_ic_type & (ODM_RTL8814B)) { + odm_set_bb_reg(dm, R_0xa40, MASKDWORD, 0xb25dc0bd); + if (dm->support_ic_type & + (ODM_RTL8814B | ODM_RTL8814C)) { if (dm->seg1_dfs_flag == 1) odm_set_bb_reg(dm, R_0xa6c, BIT(0), 1); } - odm_set_bb_reg(dm, R_0xa44, MASKDWORD, 0x3033bebd); + odm_set_bb_reg(dm, R_0xa44, MASKDWORD, 0x3030bea0); odm_set_bb_reg(dm, R_0xa48, MASKDWORD, 0x2a521254); - odm_set_bb_reg(dm, R_0xa4c, MASKDWORD, 0xa2533345); - odm_set_bb_reg(dm, R_0xa50, MASKDWORD, 0x605be003); - odm_set_bb_reg(dm, R_0xa54, MASKDWORD, 0x500089e8); + odm_set_bb_reg(dm, R_0xa4c, MASKDWORD, 0x42533345); + odm_set_bb_reg(dm, R_0xa50, MASKDWORD, 0x605be0c3); + odm_set_bb_reg(dm, R_0xa54, MASKDWORD, 0x500009e8); + odm_set_bb_reg(dm, R_0x180c, 0xe0000, 0x0); } else if (region_domain == PHYDM_DFS_DOMAIN_FCC) { - odm_set_bb_reg(dm, R_0xa40, MASKDWORD, 0xb359c5bd); - if (dm->support_ic_type & (ODM_RTL8814B)) { + odm_set_bb_reg(dm, R_0xa40, MASKDWORD, 0xb25dc0bd); + if (dm->support_ic_type & + (ODM_RTL8814B | ODM_RTL8814C)) { if (dm->seg1_dfs_flag == 1) odm_set_bb_reg(dm, R_0xa6c, BIT(0), 1); } - odm_set_bb_reg(dm, R_0xa44, MASKDWORD, 0x3033bebd); + odm_set_bb_reg(dm, R_0xa44, MASKDWORD, 0x3030bea0); odm_set_bb_reg(dm, R_0xa48, MASKDWORD, 0x2a521254); - odm_set_bb_reg(dm, R_0xa4c, MASKDWORD, 0xa2533345); - odm_set_bb_reg(dm, R_0xa50, MASKDWORD, 0x605be003); - odm_set_bb_reg(dm, R_0xa54, MASKDWORD, 0x500089e8); + odm_set_bb_reg(dm, R_0xa4c, MASKDWORD, 0x42533345); + odm_set_bb_reg(dm, R_0xa50, MASKDWORD, 0x605be0c3); + odm_set_bb_reg(dm, R_0xa54, MASKDWORD, 0x500009e8); + odm_set_bb_reg(dm, R_0x180c, 0xe0000, 0x0); } else { /* not supported */ PHYDM_DBG(dm, DBG_DFS, @@ -632,10 +638,33 @@ void phydm_dfs_parameter_init(void *dm_void) dfs->hist_cond_on = 1; else dfs->hist_cond_on = 0; + if (dm->support_ic_type & (ODM_RTL8723F | ODM_RTL8822C)) { + dfs->det_print_jar3 = 1; + dfs->nhm_dfs_en = true; + dfs->det_jar3_en = true; + } else { + dfs->det_print_jar3 = 0; + dfs->nhm_dfs_en = false; + dfs->det_jar3_en = false; + } + + /*@for flag en*/ + dfs->pw_flag_en = true; + dfs->pri_flag_en = true; + dfs->loct_flag_en = true; + dfs->nhm_cnt_th = 4; + dfs->nhm_dty_th = 40; + + /*@for jgar3*/ + dfs->pri_var_offset = 2; + dfs->pri_var_tp_offset = 10; + dfs->pri_cnt_th = 2; + dfs->loct_diff_th = 15; + dfs->dc_cnt_th = 3; /*@for dynamic dfs*/ dfs->pwdb_th = 8; - dfs->fa_mask_th = 30 * (dfs->dfs_polling_time / 100); + dfs->fa_mask_th = 120 * dfs->dfs_polling_time / 100; dfs->st_l2h_min = 0x20; dfs->st_l2h_max = 0x4e; dfs->pwdb_scalar_factor = 12; @@ -756,6 +785,7 @@ void phydm_dfs_dynamic_setting( } if (dm->support_ic_type & ODM_IC_JGR3_SERIES) { + /* if (dfs->peak_th != peak_th_cur) odm_set_bb_reg(dm, R_0xa48, 0x00c00000, peak_th_cur); if (dfs->short_pulse_cnt_th != short_pulse_cnt_th_cur) @@ -773,6 +803,7 @@ void phydm_dfs_dynamic_setting( if (dfs->three_peak_th2 != three_peak_th2_cur) odm_set_bb_reg(dm, R_0xa44, 0x00000007, three_peak_th2_cur); + */ #if (RTL8721D_SUPPORT) } else if (dm->support_ic_type & (ODM_RTL8721D)) { if (dfs->peak_th != peak_th_cur) @@ -827,6 +858,7 @@ phydm_radar_detect_dm_check( { struct dm_struct *dm = (struct dm_struct *)dm_void; struct _DFS_STATISTICS *dfs = &dm->dfs; + struct phydm_fa_struct *fa_t = &dm->false_alm_cnt; u8 region_domain = dm->dfs_region_domain, index = 0; u16 i = 0, j = 0, fa_count_cur = 0, fa_count_inc = 0; @@ -837,9 +869,12 @@ phydm_radar_detect_dm_check( u32 reg920_value = 0, reg924_value = 0, radar_rpt_reg_value = 0; u32 regf54_value = 0, regf58_value = 0, regf5c_value = 0; u32 regdf4_value = 0, regf70_value = 0, regf74_value = 0; - #if (RTL8812F_SUPPORT || RTL8822C_SUPPORT || RTL8814B_SUPPORT) + #if (RTL8812F_SUPPORT || RTL8822C_SUPPORT || RTL8814B_SUPPORT || RTL8723F_SUPPORT) u32 rega40_value = 0, rega44_value = 0, rega48_value = 0; u32 rega4c_value = 0, rega50_value = 0, rega54_value = 0; + u32 reg_2e08 = 0, reg_2e24 = 0, reg_2e28 = 0; + u32 reg_2e2c = 0, reg_2e30 = 0, reg_2e34 = 0; + u32 reg_2e0c = 0, reg_2e10 = 0, reg_2e20 = 0; #endif #if (RTL8721D_SUPPORT) u32 reg908_value = 0, regdf4_value = 0; @@ -854,7 +889,9 @@ phydm_radar_detect_dm_check( /*@Get FA count during past 100ms, R_0xf48 for AC series*/ if (dm->support_ic_type & ODM_IC_JGR3_SERIES) - fa_count_cur = (u16)odm_get_bb_reg(dm, R_0x2d00, MASKLWORD); + /*fa_count_cur = (u16)odm_get_bb_reg(dm, R_0x2d00, MASKLWORD);*/ + /*1-sec period*/ + fa_count_cur = fa_t->cnt_all * dfs->dfs_polling_time / 1000; #if (RTL8721D_SUPPORT) else if (dm->support_ic_type & (ODM_RTL8721D)) { fa_count_cur = (u16)odm_get_bb_reg(dm, @@ -880,15 +917,17 @@ phydm_radar_detect_dm_check( else fa_count_cur = (u16)odm_get_bb_reg(dm, R_0xf48, 0x0000ffff); - if (dfs->fa_count_pre == 0) - fa_count_inc = 0; - else if (fa_count_cur >= dfs->fa_count_pre) - fa_count_inc = fa_count_cur - dfs->fa_count_pre; - else + if (!(dm->support_ic_type & ODM_IC_JGR3_SERIES)) { + if (dfs->fa_count_pre == 0) + fa_count_inc = 0; + else if (fa_count_cur >= dfs->fa_count_pre) + fa_count_inc = fa_count_cur - dfs->fa_count_pre; + else + fa_count_inc = fa_count_cur; + dfs->fa_count_pre = fa_count_cur; + } else { fa_count_inc = fa_count_cur; - dfs->fa_count_pre = fa_count_cur; - - dfs->fa_inc_hist[dfs->mask_idx] = fa_count_inc; + } for (i = 0; i < 5; i++) total_fa_in_hist = total_fa_in_hist + dfs->fa_inc_hist[i]; @@ -899,7 +938,7 @@ phydm_radar_detect_dm_check( index = 5 + dfs->mask_idx - 2; if (dm->support_ic_type & (ODM_RTL8198F | ODM_RTL8822C | ODM_RTL8812F | - ODM_RTL8197G)) { + ODM_RTL8197G| ODM_RTL8723F)) { radar_rpt_reg_value = odm_get_bb_reg(dm, R_0x2e00, 0xffffffff); short_pulse_cnt_cur = (u16)((radar_rpt_reg_value & 0x000ff800) >> 11); @@ -920,7 +959,7 @@ phydm_radar_detect_dm_check( odm_set_bb_reg(dm, R_0xf58, BIT(29), 1); } #endif - } else if (dm->support_ic_type & (ODM_RTL8814B)) { + } else if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { if (dm->seg1_dfs_flag == 1) radar_rpt_reg_value = odm_get_bb_reg(dm, R_0x2e20, 0xffffffff); @@ -1028,24 +1067,61 @@ phydm_radar_detect_dm_check( tri_long_pulse = (regf98_value & BIT(19)) ? 1 : 0; } + if (tri_long_pulse){ + PHYDM_DBG(dm, DBG_DFS, "\n"); + PHYDM_DBG(dm, DBG_DFS, "tri_long_pulse = %d\n", tri_long_pulse); + dfs->pulse_flag_hist[dfs->mask_idx] = 1; + dfs->pulse_type_hist[dfs->mask_idx] = 1; + } + + else if (tri_short_pulse){ + PHYDM_DBG(dm, DBG_DFS, "\n"); + PHYDM_DBG(dm, DBG_DFS, "tri_short_pulse = %d\n", tri_short_pulse); + dfs->pulse_flag_hist[dfs->mask_idx] = 1; + dfs->pulse_type_hist[dfs->mask_idx] = 0; + } + + else{ + dfs->pulse_flag_hist[dfs->mask_idx] = 0; + dfs->pulse_type_hist[dfs->mask_idx] = 0; + } + + + if (tri_short_pulse) { - phydm_radar_detect_reset(dm); + if (!(dm->support_ic_type & ODM_IC_JGR3_SERIES)) + phydm_radar_detect_reset(dm); } if (tri_long_pulse) { - phydm_radar_detect_reset(dm); + /* + if (!(dm->support_ic_type & ODM_IC_JGR3_SERIES)) + phydm_radar_detect_reset(dm); + */ if (region_domain == PHYDM_DFS_DOMAIN_MKK) { if (c_channel >= 52 && c_channel <= 64) { tri_long_pulse = 0; } } if (region_domain == PHYDM_DFS_DOMAIN_ETSI) { - tri_long_pulse = 0; + tri_long_pulse = 0; } } st_l2h_new = dfs->st_l2h_cur; - dfs->pulse_flag_hist[dfs->mask_idx] = tri_short_pulse | tri_long_pulse; - dfs->pulse_type_hist[dfs->mask_idx] = (tri_long_pulse) ? 1 : 0; +#if (RTL8723F_SUPPORT||RTL8822C_SUPPORT) + if (dm->support_ic_type & ODM_IC_JGR3_SERIES) { + if (dfs->pulse_type_hist[dfs->mask_idx]) + dfs->radar_type = 1; + else + dfs->radar_type = 0; + + if (dfs->pulse_flag_hist[dfs->mask_idx]) { + if (dfs->det_jar3_en) + phydm_dfs_rpt_distinguish(dm); + phydm_radar_detect_reset(dm); + } + } +#endif /* PSD(not ready) */ @@ -1058,7 +1134,7 @@ phydm_radar_detect_dm_check( fa_mask_th = dfs->fa_mask_th; } if (total_fa_in_hist >= fa_mask_th || dfs->igi_cur >= 0x30) { - st_l2h_new = dfs->st_l2h_max; + /* st_l2h_new = dfs->st_l2h_max; */ dfs->radar_det_mask_hist[index] = 1; if (dfs->pulse_flag_hist[index] == 1) { dfs->pulse_flag_hist[index] = 0; @@ -1098,17 +1174,26 @@ phydm_radar_detect_dm_check( if (dfs->mask_hist_checked <= 5) dfs->mask_hist_checked++; - if (dfs->mask_hist_checked >= 5 && dfs->pulse_flag_hist[index]) { + if (dfs->mask_hist_checked >= 5 && dfs->pulse_flag_hist[dfs->mask_idx]) { if (sum <= 2) { if (dfs->hist_cond_on) { /*return the value from hist_radar_detected*/ radar_detected = phydm_dfs_hist_log(dm, index); + } else if (dfs->det_jar3_en) { + if (dfs->nhm_dfs_flag || dfs->b_flag) { + radar_detected = false; + } else if (dfs->pw_flag && dfs->pri_flag && + dfs->loct_flag) { + PHYDM_DBG(dm, DBG_DFS, "Detected type %d radar signal!\n", + dfs->radar_type); + radar_detected = true; + } } else { - if (dfs->pulse_type_hist[index] == 0) + if (dfs->pulse_type_hist[dfs->mask_idx] == 0) dfs->radar_type = 0; - else if (dfs->pulse_type_hist[index] == 1) + else if (dfs->pulse_type_hist[dfs->mask_idx] == 1) dfs->radar_type = 1; - radar_detected = 1; + radar_detected = true; PHYDM_DBG(dm, DBG_DFS, "Detected type %d radar signal!\n", dfs->radar_type); @@ -1180,6 +1265,541 @@ phydm_radar_detect_dm_check( return radar_detected; } +#if (RTL8723F_SUPPORT || RTL8822C_SUPPORT) +void phydm_dfs_rpt_distinguish(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct _DFS_STATISTICS *dfs = &dm->dfs; + struct ccx_info *ccx = &dm->dm_ccx_info; + + u8 region_domain = dm->dfs_region_domain; + u8 c_channel = *dm->channel; + u8 band_width = *dm->band_width; + + u32 reg_2e08, reg_2e24, reg_2e28, reg_2e2c, reg_2e30, reg_2e34; + u32 reg_2e0c, reg_2e10, reg_2e20; + u16 pw_rpt_set[12] = {0}, pri_rpt_set[12] = {0}; + s8 loct_rpt_set[12] = {0}; + u8 pw_lth[10] = {255,255,255,255,255,255,255,255,255,255}; + u16 pw_uth[10] = {255,255,255,255,255,255,255,255,255,255}; + u8 pri_lth[10] = {255,255,255,255,255,255,255,255,255,255}; + u8 pri_uth[10] = {255,255,255,255,255,255,255,255,255,255}; + u8 pri_vd_max = 0, pri_vd_min = 255, rdr_tmp = 0; + u8 i, j, dc_cnt = 0, rdr_num = 0, rdr_cnt[10] = {0}; + u8 short_cnt_th, long_cnt_th, loop_cnt, cnt_th, loct_diff = 0; + u8 pri_var_up, pri_var_low, pri_cnt_tmp, pri_cnt_fnl = 0; + u8 pri_cnt_th = dfs->pri_cnt_th; + + /* PW : Wordlength : U(8,0) , unit: 400ns */ + reg_2e08 = odm_get_bb_reg(dm, 0x2e08, 0xffffffff); + pw_rpt_set[0]=(unsigned int)(reg_2e08 & 0x000000ff); + pw_rpt_set[1]=(unsigned int)((reg_2e08 & 0x0000ff00)>>8); + pw_rpt_set[2]=(unsigned int)((reg_2e08 & 0x00ff0000)>>16); + pw_rpt_set[3]=(unsigned int)((reg_2e08 & 0xff000000)>>24); + reg_2e24 = odm_get_bb_reg(dm, 0x2e24, 0xffffffff); + pw_rpt_set[4]=(unsigned int)(reg_2e24 & 0x000000ff); + pw_rpt_set[5]=(unsigned int)((reg_2e24 & 0x0000ff00)>>8); + pw_rpt_set[6]=(unsigned int)((reg_2e24 & 0x00ff0000)>>16); + pw_rpt_set[7]=(unsigned int)((reg_2e24 & 0xff000000)>>24); + reg_2e28 = odm_get_bb_reg(dm, 0x2e28, 0xffffffff); + pw_rpt_set[8]=(unsigned int)(reg_2e28 & 0x000000ff); + pw_rpt_set[9]=(unsigned int)((reg_2e28 & 0x0000ff00)>>8); + pw_rpt_set[10]=(unsigned int)((reg_2e28 & 0x00ff0000)>>16); + pw_rpt_set[11]=(unsigned int)((reg_2e28 & 0xff000000)>>24); + + /* PRI : Wordlength : U(8,0) , unit: 25.6us */ + reg_2e2c = odm_get_bb_reg(dm, 0x2e2c, 0xffffffff); + pri_rpt_set[0]=(unsigned int)(reg_2e2c & 0x000000ff); + pri_rpt_set[1]=(unsigned int)((reg_2e2c & 0x0000ff00)>>8); + pri_rpt_set[2]=(unsigned int)((reg_2e2c & 0x00ff0000)>>16); + pri_rpt_set[3]=(unsigned int)((reg_2e2c & 0xff000000)>>24); + reg_2e30 = odm_get_bb_reg(dm, 0x2e30, 0xffffffff); + pri_rpt_set[4]=(unsigned int)(reg_2e30 & 0x000000ff); + pri_rpt_set[5]=(unsigned int)((reg_2e30 & 0x0000ff00)>>8); + pri_rpt_set[6]=(unsigned int)((reg_2e30 & 0x00ff0000)>>16); + pri_rpt_set[7]=(unsigned int)((reg_2e30 & 0xff000000)>>24); + reg_2e34 = odm_get_bb_reg(dm, 0x2e34, 0xffffffff); + pri_rpt_set[8]=(unsigned int)(reg_2e34 & 0x000000ff); + pri_rpt_set[9]=(unsigned int)((reg_2e34 & 0x0000ff00)>>8); + pri_rpt_set[10]=(unsigned int)((reg_2e34 & 0x00ff0000)>>16); + pri_rpt_set[11]=(unsigned int)((reg_2e34 & 0xff000000)>>24); + + /* Location : Wordlength : S(8,0) , unit: MHz */ + reg_2e0c = odm_get_bb_reg(dm, 0x2e0c, 0xffffffff); + loct_rpt_set[0]=(signed char)(reg_2e0c & 0x000000ff); + loct_rpt_set[1]=(signed char)((reg_2e0c & 0x0000ff00)>>8); + loct_rpt_set[2]=(signed char)((reg_2e0c & 0x00ff0000)>>16); + loct_rpt_set[3]=(signed char)((reg_2e0c & 0xff000000)>>24); + reg_2e10 = odm_get_bb_reg(dm, 0x2e10, 0xffffffff); + loct_rpt_set[4]=(signed char)(reg_2e10 & 0x000000ff); + loct_rpt_set[5]=(signed char)((reg_2e10 & 0x0000ff00)>>8); + loct_rpt_set[6]=(signed char)((reg_2e10 & 0x00ff0000)>>16); + loct_rpt_set[7]=(signed char)((reg_2e10 & 0xff000000)>>24); + reg_2e20 = odm_get_bb_reg(dm, 0x2e20, 0xffffffff); + loct_rpt_set[8]=(signed char)(reg_2e20 & 0x000000ff); + loct_rpt_set[9]=(signed char)((reg_2e20 & 0x0000ff00)>>8); + loct_rpt_set[10]=(signed char)((reg_2e20 & 0x00ff0000)>>16); + loct_rpt_set[11]=(signed char)((reg_2e20 & 0xff000000)>>24); + + dfs->pw_flag = false; + dfs->loct_flag = false; + dfs->pri_flag = false; + for (i = 0; i < 12; i++) { + dfs->pw_rslt[i] = 0; + dfs->loct_rslt[i] = 0; + dfs->pri_rslt[i] = 0; + } + + // for NHMxDFS // + dfs->nhm_dfs_cnt = 0; + dfs->nhm_dfs_flag = false; + dfs->b_flag = false; + + short_cnt_th = odm_get_bb_reg(dm, 0xa50, 0x00f00000); + long_cnt_th = odm_get_bb_reg(dm, 0xa4c, 0xf0000000); + + if (dfs->radar_type) + loop_cnt = long_cnt_th + 2; + else + loop_cnt = short_cnt_th + 2; + + if (region_domain == PHYDM_DFS_DOMAIN_ETSI) + loop_cnt = short_cnt_th + 2; + + if (loop_cnt > 12) + loop_cnt = 12; + + cnt_th = loop_cnt / 2; + + /* Calculate the difference between each element (1st Not calculated) */ + for(i = 0; i < loop_cnt; i++) + dfs->loct_rslt[i] = loct_rpt_set[i]; + for(i = 1; i < loop_cnt; i++) + loct_diff = loct_diff + abs(dfs->loct_rslt[i] - dfs->loct_rslt[i-1]); + + for (i = 0; i < loop_cnt; i++) { + if ((-2 < loct_rpt_set[i]) && (loct_rpt_set[i] < 2)) + dc_cnt++; + } + + if (region_domain == PHYDM_DFS_DOMAIN_FCC){ + rdr_num = 7; + + pw_lth[0]=2; + pw_lth[1]=2; + pw_lth[2]=2; + pw_lth[3]=12; + pw_lth[4]=22; + pw_lth[5]=120; + pw_lth[6]=2; + + pw_uth[0]=3; + pw_uth[1]=3; + pw_uth[2]=15; + pw_uth[3]=30; + pw_uth[4]=60; + pw_uth[5]=253; + pw_uth[6]=3; + + pri_lth[0]=50; + pri_lth[1]=18; + pri_lth[2]=5; + pri_lth[3]=7; + pri_lth[4]=7; + pri_lth[5]=38; + pri_lth[6]=11; + + pri_uth[0]=62; + pri_uth[1]=130; + pri_uth[2]=10; + pri_uth[3]=21; + pri_uth[4]=21; + pri_uth[5]=80; + pri_uth[6]=15; + if (dc_cnt > dfs->dc_cnt_th){ + pw_lth[0] = 0; + pw_lth[1] = 0; + pw_lth[2] = 0; + pw_lth[3] = 0; + pw_lth[4] = 0; + pw_lth[5] = 80; + pw_lth[6] = 0; + } + } + else if (region_domain == PHYDM_DFS_DOMAIN_MKK){ + rdr_num = 8; + if (c_channel >= 52 && c_channel <= 64){ + dfs->loct_diff_th = dfs->loct_diff_th + 15; + pw_lth[0]=1; + pw_lth[1]=1; + pw_lth[2]=1; + pw_lth[3]=1; + pw_lth[4]=1; + pw_lth[5]=1; + pw_lth[6]=1; + pw_lth[7]=1; + + pw_uth[0]=14; + pw_uth[1]=40; + pw_uth[2]=14; + pw_uth[3]=40; + pw_uth[4]=5; + pw_uth[5]=5; + pw_uth[6]=5; + pw_uth[7]=5; + + pri_lth[0]=35; + pri_lth[1]=20; + pri_lth[2]=35; + pri_lth[3]=18; + pri_lth[4]=32; + pri_lth[5]=38; + pri_lth[6]=40; + pri_lth[7]=48; + + pri_uth[0]=200; + pri_uth[1]=200; + pri_uth[2]=200; + pri_uth[3]=200; + pri_uth[4]=38; + pri_uth[5]=44; + pri_uth[6]=48; + pri_uth[7]=55; + if (dc_cnt > dfs->dc_cnt_th){ + pw_lth[0] = 0; + pw_lth[1] = 0; + pw_lth[2] = 0; + pw_lth[3] = 0; + pw_lth[4] = 0; + pw_lth[5] = 0; + pw_lth[6] = 0; + pw_lth[7] = 0; + cnt_th--; + } + } + else{ + pw_lth[0]=1; + pw_lth[1]=2; + pw_lth[2]=4; + pw_lth[3]=2; + pw_lth[4]=12; + pw_lth[5]=22; + pw_lth[6]=100; + pw_lth[7]=2; + + pw_uth[0]=2; + pw_uth[1]=3; + pw_uth[2]=6; + pw_uth[3]=15; + pw_uth[4]=30; + pw_uth[5]=60; + pw_uth[6]=300; + pw_uth[7]=3; + + pri_lth[0]=33; + pri_lth[1]=35; + pri_lth[2]=130; + pri_lth[3]=5; + pri_lth[4]=7; + pri_lth[5]=7; + pri_lth[6]=35; + pri_lth[7]=11; + + pri_uth[0]=73; + pri_uth[1]=75; + pri_uth[2]=170; + pri_uth[3]=10; + pri_uth[4]=22; + pri_uth[5]=22; + pri_uth[6]=86; + pri_uth[7]=15; + if (dc_cnt > dfs->dc_cnt_th){ + pw_lth[0] = 0; + pw_lth[1] = 0; + pw_lth[2] = 0; + pw_lth[3] = 0; + pw_lth[4] = 0; + pw_lth[5] = 0; + pw_lth[6] = 80; + pw_lth[7] = 0; + } + } + } + else if (region_domain == PHYDM_DFS_DOMAIN_ETSI){ + rdr_num = 6; + pw_lth[0]=1; + pw_lth[1]=1; + pw_lth[2]=1; + pw_lth[3]=40; + pw_lth[4]=1; + pw_lth[5]=1; + + pw_uth[0]=15; + pw_uth[1]=45; + pw_uth[2]=45; + pw_uth[3]=90; + pw_uth[4]=6; + pw_uth[5]=6; + + pri_lth[0]=35; + pri_lth[1]=21; + pri_lth[2]=8; + pri_lth[3]=8; + pri_lth[4]=87; + pri_lth[5]=29; + + pri_uth[0]=215; + pri_uth[1]=215; + pri_uth[2]=19; + pri_uth[3]=22; + pri_uth[4]=144; + pri_uth[5]=108; + if (dc_cnt > dfs->dc_cnt_th){ + pw_lth[0] = 0; + pw_lth[1] = 0; + pw_lth[2] = 0; + pw_lth[3] = 0; + pw_lth[4] = 0; + pw_lth[5] = 0; + } + } + + for (i = 0; i < loop_cnt; i++) { + dfs->pw_rslt[i] = pw_rpt_set[i]; + dfs->pri_rslt[i] = pri_rpt_set[i]; + for (j = 0; j < rdr_num; j++) { + if (dfs->radar_type) { + if ((pw_lth[j] <= dfs->pw_rslt[i]) && (dfs->pw_rslt[i] <= pw_uth[j])) + rdr_cnt[j]++; + } else { + if ((pw_lth[j] <= dfs->pw_rslt[i]) && (dfs->pw_rslt[i] <= pw_uth[j]) && + (pri_lth[j] <= dfs->pri_rslt[i]) && (dfs->pri_rslt[i] <= pri_uth[j])) { + rdr_cnt[j]++; + if (dfs->pri_rslt[i] > pri_vd_max) + pri_vd_max = dfs->pri_rslt[i]; + if (dfs->pri_rslt[i] < pri_vd_min) + pri_vd_min = dfs->pri_rslt[i]; + } + } + } + } + + /* Pattern Judgement */ + for (i = 0; i < rdr_num; i++){ + if (rdr_cnt[i] >= cnt_th){ + dfs->pw_flag = true; + rdr_tmp = i; + } + } + + /* Add NHM to decide the validity of the three flags */ + /* Use for chaotic open space */ + if (dfs->nhm_dfs_en) { + for (i = 0; i <= (NHM_RPT_NUM - 1); i++) { + if (ccx->nhm_result[i] > 0) + break; + } + for (j = (i + 1); j <= (NHM_RPT_NUM - 1); j++) { + if (ccx->nhm_result[j] > 0) + dfs->nhm_dfs_cnt++; + } + if (dfs->nhm_dfs_cnt > dfs->nhm_cnt_th) { + dfs->nhm_dfs_flag = true; + cnt_th = loop_cnt; + } + } + if (dm->support_ability & ODM_BB_ENV_MONITOR) { + if ((100-((ccx->nhm_rpt_sum * 100) >> 8)) >= dfs->nhm_dty_th) { + dfs->b_flag = true; + cnt_th = loop_cnt; + } + } + + /* Relax */ + if (!(dfs->idle_mode)) { + pri_cnt_th--; + if (!(region_domain == PHYDM_DFS_DOMAIN_ETSI)){ + dfs->pri_var_offset = 15; + if (region_domain == PHYDM_DFS_DOMAIN_MKK) + dfs->pri_var_offset = 5 + 10*pri_vd_min/20; + } + else + dfs->pri_var_offset = dfs->pri_var_tp_offset; + } + + // Mode approximation for PRI + for (i = 0; i < (loop_cnt - 1); i++) { + pri_cnt_tmp = 0; + for (j = 0; j < (loop_cnt - 1); j++) { + if ((i == j) || (dfs->pri_rslt[i] <= 4)) + continue; + if (dfs->pri_rslt[j] > (255 - dfs->pri_var_offset)) + pri_var_up = 255; + else + pri_var_up = dfs->pri_rslt[j] + dfs->pri_var_offset; + if (dfs->pri_var_offset >= dfs->pri_rslt[j]) + pri_var_low = 0; + else + pri_var_low = dfs->pri_rslt[j] - dfs->pri_var_offset; + if ((dfs->pri_rslt[i] <= pri_var_up) && (dfs->pri_rslt[i] >= pri_var_low) && + (dfs->pri_rslt[i] <= pri_vd_max) && (dfs->pri_rslt[i] >= pri_vd_min)) + pri_cnt_tmp++; + } + if (pri_cnt_tmp > pri_cnt_fnl) + pri_cnt_fnl = pri_cnt_tmp; + } + + // Advanced PRI Judgement (Bypass for long pulse flag) + if (pri_cnt_fnl != 0) + pri_cnt_fnl++; + + /* PRI */ + if (dfs->radar_type) + dfs->pri_flag= true; + else if (pri_cnt_fnl >= pri_cnt_th) + dfs->pri_flag= true; + /* For the case of SRTC */ + else if ((dfs->pri_rslt[0] == 0) && (dfs->pri_rslt[1] > 0) && + (dfs->pri_rslt[2] == 0) && (dfs->pri_rslt[3] > 0)) + dfs->pri_flag= true; + else if ((dfs->pri_rslt[0] > 0) && (dfs->pri_rslt[1] == 0) && + (dfs->pri_rslt[2] > 0) && (dfs->pri_rslt[3] == 0)) + dfs->pri_flag= true; + else if (!(dfs->pri_flag_en)) + dfs->pri_flag= true; + + if (region_domain == PHYDM_DFS_DOMAIN_MKK){ + if (c_channel >= 52 && c_channel <= 64){ + if (!(dfs->idle_mode)) + dfs->pri_flag= true; // MKK, 52<=ch<=64 , TP mode + } + } + + /* PW */ + if (!(dfs->pw_flag_en)) + dfs->pw_flag = true; + + /* LOCT */ + if (!(dfs->idle_mode)) + dfs->loct_diff_th = dfs->loct_diff_th + 15; + if (loct_diff <= dfs->loct_diff_th) + dfs->loct_flag = true; + else if (dfs->radar_type) + dfs->loct_flag = true; + else if (!(dfs->loct_flag_en)) + dfs->loct_flag = true; + + if (dfs->det_print_jar3) { + if (dfs->nhm_dfs_flag || dfs->b_flag) + PHYDM_DBG(dm, DBG_DFS, "Anti-FRD Rdr Drop\n"); + if (!(dfs->pw_flag_en) || !(dfs->loct_flag_en) || !(dfs->pri_flag_en)) + PHYDM_DBG(dm, DBG_DFS, "Byps flag scenario\n"); + if (dc_cnt > dfs->dc_cnt_th) + PHYDM_DBG(dm, DBG_DFS, "Radar is near DC\n"); + if (!(dfs->pw_flag)) + PHYDM_DBG(dm, DBG_DFS, "- PW/PRI-J Failure\n"); + if (!(dfs->loct_flag)) + PHYDM_DBG(dm, DBG_DFS, "- Loct-J Failure\n"); + if (!(dfs->pri_flag)) + PHYDM_DBG(dm, DBG_DFS, "- Adv-PRI-J Failure\n"); + if (!(dfs->pw_flag) || !(dfs->pri_flag) || !(dfs->loct_flag)) + PHYDM_DBG(dm, DBG_DFS, "Suspected radar result is dropped by SW mechanism !!\n"); + + PHYDM_DBG(dm, DBG_DFS, "\n"); + PHYDM_DBG(dm, DBG_DFS, "The current information: ([Lower bound / Upper bound])\n"); + PHYDM_DBG(dm, DBG_DFS, "pw_th1 : [%d, %d], pw_th2 : [%d, %d], pw_th3 : [%d, %d]\n", + pw_lth[0], pw_uth[0], pw_lth[1], pw_uth[1], + pw_lth[2], pw_uth[2]); + PHYDM_DBG(dm, DBG_DFS, "pw_th4 : [%d, %d], pw_th5 : [%d, %d], pw_th6 : [%d, %d] \n", + pw_lth[3], pw_uth[3], pw_lth[4], + pw_uth[4], pw_lth[5], pw_uth[5]); + PHYDM_DBG(dm, DBG_DFS, "pw_th7 : [%d, %d], pw_th8 : [%d, %d]\n", + pw_lth[6], pw_uth[6], pw_lth[7], pw_uth[7]); + PHYDM_DBG(dm, DBG_DFS, "pri_th1 : [%d, %d], pri_th2 : [%d, %d], pri_th3 : [%d, %d]\n", + pri_lth[0], pri_uth[0], pri_lth[1], pri_uth[1], + pri_lth[2], pri_uth[2]); + PHYDM_DBG(dm, DBG_DFS, "pri_th4 : [%d, %d], pri_th5 : [%d, %d], pri_th6 : [%d, %d]\n", + pri_lth[3], pri_uth[3], pri_lth[4], pri_uth[4], + pri_lth[5], pri_uth[5]); + PHYDM_DBG(dm, DBG_DFS, "pri_th7 : [%d, %d], pri_th8 : [%d, %d]\n", + pri_lth[6], pri_uth[6], pri_lth[7], pri_uth[7]); + + if (!(dfs->idle_mode)) + PHYDM_DBG(dm, DBG_DFS, "loct_diff_th = [%d](Relax for TP mode)\n", + dfs->loct_diff_th); + else + PHYDM_DBG(dm, DBG_DFS, "loct_diff_th = [%d](Idle mode)\n", + dfs->loct_diff_th); + + if (!(dfs->idle_mode)) { + PHYDM_DBG(dm, DBG_DFS, "pri_var_offset = [%d] (Relax for TP mode)\n", + dfs->pri_var_offset); + PHYDM_DBG(dm, DBG_DFS, "pri_cnt_th = [%d] (Relax for TP mode)\n", + pri_cnt_th); + } else { + PHYDM_DBG(dm, DBG_DFS, "pri_var_offset = [%d] (Idle mode)\n", + dfs->pri_var_offset); + PHYDM_DBG(dm, DBG_DFS, "pri_cnt_th = [%d] (Idle mode)\n", + pri_cnt_th); + } + + PHYDM_DBG(dm, DBG_DFS, "\n"); + PHYDM_DBG(dm, DBG_DFS, "loop_cnt = [%d]\n", loop_cnt); + if (dfs->nhm_dfs_flag) { + PHYDM_DBG(dm, DBG_DFS, "Nmode cnt = %d!\n", + dfs->nhm_dfs_cnt); + } + else if (dfs->b_flag) { + PHYDM_DBG(dm, DBG_DFS, "Bmode DTY = %d\n", + (100-((ccx->nhm_rpt_sum * 100) >> 8))); + } + else { + PHYDM_DBG(dm, DBG_DFS, "cnt_th = [%d] (Default : Half of loop cnt)\n", + cnt_th); + PHYDM_DBG(dm, DBG_DFS, "Bmode DTY = %d\n", + (100-((ccx->nhm_rpt_sum * 100) >> 8))); + } + + PHYDM_DBG(dm, DBG_DFS, "\n"); + PHYDM_DBG(dm, DBG_DFS, "The current report:\n"); + PHYDM_DBG(dm, DBG_DFS, "pw_rpt(1-12) = [%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d]\n", + pw_rpt_set[0], pw_rpt_set[1], pw_rpt_set[2], + pw_rpt_set[3], pw_rpt_set[4], pw_rpt_set[5], + pw_rpt_set[6], pw_rpt_set[7], pw_rpt_set[8], + pw_rpt_set[9], pw_rpt_set[10], pw_rpt_set[11]); + PHYDM_DBG(dm, DBG_DFS, "loct_rpt(1-12) = [%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d]\n", + loct_rpt_set[0], loct_rpt_set[1], + loct_rpt_set[2], loct_rpt_set[3], + loct_rpt_set[4], loct_rpt_set[5], + loct_rpt_set[6], loct_rpt_set[7], + loct_rpt_set[8], loct_rpt_set[9], + loct_rpt_set[10], loct_rpt_set[11]); + PHYDM_DBG(dm, DBG_DFS, "pri_rpt(1-12) = [%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d]\n", + pri_rpt_set[0], pri_rpt_set[1], + pri_rpt_set[2], pri_rpt_set[3], + pri_rpt_set[4], pri_rpt_set[5], + pri_rpt_set[6], pri_rpt_set[7], + pri_rpt_set[8], pri_rpt_set[9], + pri_rpt_set[10], pri_rpt_set[11]); + + PHYDM_DBG(dm, DBG_DFS, "\n"); + PHYDM_DBG(dm, DBG_DFS, "dc_cnt = [%d]\n", dc_cnt); + PHYDM_DBG(dm, DBG_DFS, "loct_diff = [%d]\n", loct_diff); + + if (pri_vd_max == 0 && pri_vd_min == 255) + PHYDM_DBG(dm, DBG_DFS, "No vaild pri_max and pri_min"); + else + PHYDM_DBG(dm, DBG_DFS, "pri_vaild_max = %d, pri_vaild_min = %d\n", + pri_vd_max, pri_vd_min); + PHYDM_DBG(dm, DBG_DFS, "advanced_pri_cnt = %d\n", + pri_cnt_fnl); + + PHYDM_DBG(dm, DBG_DFS, "radar_class_cnt[1-8] = [%d, %d, %d, %d, %d, %d, %d, %d]\n", + rdr_cnt[0], rdr_cnt[1], rdr_cnt[2], rdr_cnt[3], + rdr_cnt[4], rdr_cnt[5], rdr_cnt[6], rdr_cnt[7]); + } +} +#endif #if (RTL8814A_SUPPORT || RTL8822B_SUPPORT || RTL8821C_SUPPORT) void phydm_dfs_histogram_radar_distinguish( @@ -1844,12 +2464,14 @@ boolean phydm_radar_detect(void *dm_void) radar_detected = phydm_radar_detect_dm_check(dm); if (radar_detected) { + /* PHYDM_DBG(dm, DBG_DFS, "Radar detect: %d\n", radar_detected); + */ phydm_radar_detect_reset(dm); if (dfs->dbg_mode == 1) { PHYDM_DBG(dm, DBG_DFS, - "Radar is detected in DFS dbg mode.\n"); + "Radar is detected in DFS dbg mode!!!!!!!!!!!\n"); radar_detected = 0; } } @@ -1946,13 +2568,45 @@ void phydm_dfs_hist_dbg(void *dm_void, char input[][16], u32 *_used, PDM_SNPF(out_len, used, output + used, out_len - used, "{27} type4_safe_pri_sum_th = %d\n", dfs->type4_safe_pri_sum_th); + PDM_SNPF(out_len, used, output + used, out_len - used, + "{28} fa_mask_th = %d\n", + dfs->fa_mask_th); + PDM_SNPF(out_len, used, output + used, out_len - used, + "{29} nhm_cnt_th = %d\n", + dfs->nhm_cnt_th); + PDM_SNPF(out_len, used, output + used, out_len - used, + "{30} nhm_dty_th = %d\n", + dfs->nhm_dty_th); + PDM_SNPF(out_len, used, output + used, out_len - used, + "{31} pw_flag_en = %d\n", + dfs->pw_flag_en); + PDM_SNPF(out_len, used, output + used, out_len - used, + "{32} loct_flag_en = %d\n", + dfs->loct_flag_en); + PDM_SNPF(out_len, used, output + used, out_len - used, + "{33} pri_flag_en = %d\n", + dfs->pri_flag_en); + PDM_SNPF(out_len, used, output + used, out_len - used, + "{34} pri_var_offset = %d\n", + dfs->pri_var_offset); + PDM_SNPF(out_len, used, output + used, out_len - used, + "{35} pri_var_tp_offset = %d\n", + dfs->pri_var_tp_offset); + PDM_SNPF(out_len, used, output + used, out_len - used, + "{36} pri_cnt_th = %d\n", + dfs->pri_cnt_th); + PDM_SNPF(out_len, used, output + used, out_len - used, + "{37} loct_diff_th = %d\n", + dfs->loct_diff_th); + PDM_SNPF(out_len, used, output + used, out_len - used, + "{38} dc_cnt_th = %d\n", + dfs->dc_cnt_th); } else { PHYDM_SSCANF(input[1], DCMD_DECIMAL, &argv[0]); for (i = 1; i < 5; i++) { - if (input[i + 1]) - PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, - &argv[i]); + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, + &argv[i]); } if (argv[0] == 0) { dfs->pri_hist_th = (u8)argv[1]; @@ -2094,6 +2748,61 @@ void phydm_dfs_hist_dbg(void *dm_void, char input[][16], u32 *_used, PDM_SNPF(out_len, used, output + used, out_len - used, "type4_safe_pri_sum_th = %d\n", dfs->type4_safe_pri_sum_th); + } else if (argv[0] == 28) { + dfs->fa_mask_th = (u8)argv[1]; + PDM_SNPF(out_len, used, output + used, out_len - used, + "fa_mask_th = %d\n", + dfs->fa_mask_th); + } else if (argv[0] == 29) { + dfs->nhm_cnt_th = (u8)argv[1]; + PDM_SNPF(out_len, used, output + used, out_len - used, + "nhm_cnt_th = %d\n", + dfs->nhm_cnt_th); + } else if (argv[0] == 30) { + dfs->nhm_dty_th = (u8)argv[1]; + PDM_SNPF(out_len, used, output + used, out_len - used, + "nhm_dty_th = %d\n", + dfs->nhm_dty_th); + } else if (argv[0] == 31) { + dfs->pw_flag_en = (u8)argv[1]; + PDM_SNPF(out_len, used, output + used, out_len - used, + "pw_flag_en = %d\n", + dfs->pw_flag_en); + } else if (argv[0] == 32) { + dfs->loct_flag_en = (u8)argv[1]; + PDM_SNPF(out_len, used, output + used, out_len - used, + "loct_flag_en = %d\n", + dfs->loct_flag_en); + } else if (argv[0] == 33) { + dfs->pri_flag_en = (u8)argv[1]; + PDM_SNPF(out_len, used, output + used, out_len - used, + "pri_flag_en = %d\n", + dfs->pri_flag_en); + } else if (argv[0] == 34) { + dfs->pri_var_offset = (u8)argv[1]; + PDM_SNPF(out_len, used, output + used, out_len - used, + "pri_var_offset = %d\n", + dfs->pri_var_offset); + } else if (argv[0] == 35) { + dfs->pri_var_tp_offset = (u8)argv[1]; + PDM_SNPF(out_len, used, output + used, out_len - used, + "pri_var_tp_offset = %d\n", + dfs->pri_var_tp_offset); + } else if (argv[0] == 36) { + dfs->pri_cnt_th = (u8)argv[1]; + PDM_SNPF(out_len, used, output + used, out_len - used, + "pri_cnt_th = %d\n", + dfs->pri_cnt_th); + } else if (argv[0] == 37) { + dfs->loct_diff_th = (u8)argv[1]; + PDM_SNPF(out_len, used, output + used, out_len - used, + "loct_diff_th = %d\n", + dfs->loct_diff_th); + } else if (argv[0] == 38) { + dfs->dc_cnt_th = (u8)argv[1]; + PDM_SNPF(out_len, used, output + used, out_len - used, + "dc_cnt_th = %d\n", + dfs->dc_cnt_th); } } *_used = used; @@ -2110,11 +2819,9 @@ void phydm_dfs_debug(void *dm_void, char input[][16], u32 *_used, u32 argv[10] = {0}; u8 i, input_idx = 0; - for (i = 0; i < 7; i++) { - if (input[i + 1]) { - PHYDM_SSCANF(input[i + 1], DCMD_HEX, &argv[i]); - input_idx++; - } + for (i = 0; i < 10; i++) { + PHYDM_SSCANF(input[i + 1], DCMD_HEX, &argv[i]); + input_idx++; } if (input_idx == 0) @@ -2127,12 +2834,16 @@ void phydm_dfs_debug(void *dm_void, char input[][16], u32 *_used, dfs->det_print2 = (boolean)argv[4]; dfs->print_hist_rpt = (boolean)argv[5]; dfs->hist_cond_on = (boolean)argv[6]; + dfs->det_print_jar3 = (boolean)argv[7]; + dfs->nhm_dfs_en = (boolean)argv[8]; + dfs->det_jar3_en = (boolean)argv[9]; PDM_SNPF(out_len, used, output + used, out_len - used, - "dbg_mode: %d, sw_trigger_mode: %d, force_TP_mode: %d, det_print: %d,det_print2: %d, print_hist_rpt: %d, hist_cond_on: %d\n", + "dbg_mode: %d, sw_trigger_mode: %d, force_TP_mode: %d, det_print: %d, det_print2: %d, print_hist_rpt: %d, hist_cond_on: %d\n, det_print_jar3: %d, nhm_dfs_en: %d, dfs->det_jar3_en: %d\n", dfs->dbg_mode, dfs->sw_trigger_mode, dfs->force_TP_mode, dfs->det_print, dfs->det_print2, dfs->print_hist_rpt, - dfs->hist_cond_on); + dfs->hist_cond_on, dfs->det_print_jar3, dfs->nhm_dfs_en, + dfs->det_jar3_en); } u8 phydm_dfs_polling_time(void *dm_void) @@ -2140,7 +2851,7 @@ u8 phydm_dfs_polling_time(void *dm_void) struct dm_struct *dm = (struct dm_struct *)dm_void; struct _DFS_STATISTICS *dfs = &dm->dfs; - if (dm->support_ic_type & (ODM_RTL8814A | ODM_RTL8822B | ODM_RTL8821C)) + if (dm->support_ic_type & (ODM_RTL8814A | ODM_RTL8822B | ODM_RTL8821C | ODM_RTL8822C | ODM_RTL8723F)) dfs->dfs_polling_time = 40; else dfs->dfs_polling_time = 100; diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dfs.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dfs.h index fabc640e..c63f237a 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dfs.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dfs.h @@ -72,6 +72,8 @@ struct _DFS_STATISTICS { boolean sw_trigger_mode; boolean det_print; boolean det_print2; + boolean det_print_jar3; + boolean det_jar3_en; boolean radar_type; boolean print_hist_rpt; boolean hist_cond_on; @@ -91,6 +93,7 @@ struct _DFS_STATISTICS { boolean pri_long_cond1; /*@for long radar*/ boolean pw_flag; boolean pri_flag; + boolean loct_flag; boolean pri_type3_4_flag; /*@for ETSI*/ boolean long_radar_flag; u8 pri_hold_sum[6]; @@ -132,6 +135,29 @@ struct _DFS_STATISTICS { u8 pri_std_idle_th : 4; u8 type4_pw_max_cnt : 4; u8 type4_safe_pri_sum_th : 3; + u8 pw_rslt[12]; + u8 pri_rslt[12]; + s8 loct_rslt[12]; + /* + u8 pw_lth[10]; + u8 pri_lth[10]; + u16 pw_uth[10]; + u8 pri_uth[10]; + */ + boolean nhm_dfs_en; + boolean nhm_dfs_flag; + u8 nhm_dfs_cnt; + u8 nhm_cnt_th; + u8 nhm_dty_th; + boolean b_flag; + boolean pw_flag_en; + boolean loct_flag_en; + boolean pri_flag_en; + u8 pri_var_offset; + u8 pri_var_tp_offset; + u8 pri_cnt_th; + u8 loct_diff_th; + u8 dc_cnt_th; }; /*@ @@ -160,6 +186,7 @@ boolean phydm_radar_detect(void *dm_void); void phydm_dfs_histogram_radar_distinguish(void *dm_void); boolean phydm_dfs_hist_log(void *dm_void, u8 index); void phydm_dfs_parameter_init(void *dm_void); +void phydm_dfs_rpt_distinguish(void *dm_void); void phydm_dfs_hist_dbg(void *dm_void, char input[][16], u32 *_used, char *output, u32 *_out_len); void phydm_dfs_debug(void *dm_void, char input[][16], u32 *_used, diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dig.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dig.c index 8ae49607..3798f989 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dig.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dig.c @@ -44,7 +44,7 @@ void phydm_dig_recorder_reset(void *dm_void) } void phydm_dig_recorder(void *dm_void, u8 igi_curr, - u32 fa_cnt) + u32 fa_metrics) { struct dm_struct *dm = (struct dm_struct *)dm_void; struct phydm_dig_struct *dig_t = &dm->dm_dig_table; @@ -60,7 +60,7 @@ void phydm_dig_recorder(void *dm_void, u8 igi_curr, if (dm->first_connect) { phydm_dig_recorder_reset(dm); dig_rc->igi_history[0] = igi_curr; - dig_rc->fa_history[0] = fa_cnt; + dig_rc->fa_history[0] = fa_metrics; return; } @@ -79,7 +79,7 @@ void phydm_dig_recorder(void *dm_void, u8 igi_curr, dig_rc->fa_history[3] = dig_rc->fa_history[2]; dig_rc->fa_history[2] = dig_rc->fa_history[1]; dig_rc->fa_history[1] = dig_rc->fa_history[0]; - dig_rc->fa_history[0] = fa_cnt; + dig_rc->fa_history[0] = fa_metrics; PHYDM_DBG(dm, DBG_DIG, "igi_history[3:0] = {0x%x, 0x%x, 0x%x, 0x%x}\n", dig_rc->igi_history[3], dig_rc->igi_history[2], @@ -199,6 +199,9 @@ void phydm_fa_threshold_check(void *dm_void, boolean is_dfs_band) { struct dm_struct *dm = (struct dm_struct *)dm_void; struct phydm_dig_struct *dig_t = &dm->dm_dig_table; + u8 i = 0; + + dig_t->dm_dig_fa_th1 = DM_DIG_FA_TH1; if (dig_t->is_dbg_fa_th) { PHYDM_DBG(dm, DBG_DIG, "Manual Fix FA_th\n"); @@ -230,6 +233,13 @@ void phydm_fa_threshold_check(void *dm_void, boolean is_dfs_band) } } + if ((dig_t->fa_source >= 1) && (dig_t->fa_source <= 3)) { + for (i = 0; i < 3; i++) + dig_t->fa_th[i] *= OFDM_FA_EXP_DURATION; + + dig_t->dm_dig_fa_th1 *= OFDM_FA_EXP_DURATION; + } + PHYDM_DBG(dm, DBG_DIG, "FA_th={%d,%d,%d}\n", dig_t->fa_th[0], dig_t->fa_th[1], dig_t->fa_th[2]); } @@ -332,6 +342,13 @@ void phydm_fa_cnt_statistics_jgr3(void *dm_void) if (!(dm->support_ic_type & ODM_IC_JGR3_SERIES)) return; + ret_value = odm_get_bb_reg(dm, R_0x2de4, MASKDWORD); + fa_t->cnt_cck_txen = (ret_value & 0xffff); + fa_t->cnt_cck_txon = ((ret_value & 0xffff0000) >> 16); + ret_value = odm_get_bb_reg(dm, R_0x2de0, MASKDWORD); + fa_t->cnt_ofdm_txen = (ret_value & 0xffff); + fa_t->cnt_ofdm_txon = ((ret_value & 0xffff0000) >> 16); + ret_value = odm_get_bb_reg(dm, R_0x2d20, MASKDWORD); fa_t->cnt_fast_fsync = ret_value & 0xffff; fa_t->cnt_sb_search_fail = (ret_value & 0xffff0000) >> 16; @@ -347,7 +364,10 @@ void phydm_fa_cnt_statistics_jgr3(void *dm_void) fa_t->cnt_mcs_fail = ret_value & 0xffff; /* read CCK CRC32 counter */ - ret_value = odm_get_bb_reg(dm, R_0x2c04, MASKDWORD); + if (dm->support_ic_type & ODM_RTL8723F) + ret_value = odm_get_bb_reg(dm, R_0x2aac, MASKDWORD); + else + ret_value = odm_get_bb_reg(dm, R_0x2c04, MASKDWORD); fa_t->cnt_cck_crc32_ok = ret_value & 0xffff; fa_t->cnt_cck_crc32_error = (ret_value & 0xffff0000) >> 16; @@ -373,7 +393,7 @@ void phydm_fa_cnt_statistics_jgr3(void *dm_void) /*for VHT part */ if (dm->support_ic_type & (ODM_RTL8822C | ODM_RTL8812F | - ODM_RTL8814B)) { + ODM_RTL8814B | ODM_RTL8814C)) { /*read VHT CRC32 counter */ ret_value = odm_get_bb_reg(dm, R_0x2c0c, MASKDWORD); fa_t->cnt_vht_crc32_ok = ret_value & 0xffff; @@ -407,15 +427,26 @@ void phydm_fa_cnt_statistics_jgr3(void *dm_void) fa_t->cnt_mcs_fail_vht + fa_t->cnt_crc8_fail_vhta; /* Read CCK FA counter */ - fa_t->cnt_cck_fail = odm_get_bb_reg(dm, R_0x1a5c, MASKLWORD); + if (dm->support_ic_type & ODM_RTL8723F){ + ret_value= odm_get_bb_reg(dm, R_0x2aa8, MASKLWORD); + fa_t->cnt_cck_fail=(ret_value&0xffff)+((ret_value&0xffff0000)>>16); + } + else + fa_t->cnt_cck_fail = odm_get_bb_reg(dm, R_0x1a5c, MASKLWORD); /* read CCK/OFDM CCA counter */ ret_value = odm_get_bb_reg(dm, R_0x2c08, MASKDWORD); fa_t->cnt_ofdm_cca = ((ret_value & 0xffff0000) >> 16); + if (dm->support_ic_type & ODM_RTL8723F) + ret_value = odm_get_bb_reg(dm, R_0x2aa0, MASKDWORD); fa_t->cnt_cck_cca = ret_value & 0xffff; /* @CCK RxIQ weighting = 1 => 0x1a14[9:8]=0x0 */ - cck_enable = odm_get_bb_reg(dm, R_0x1a14, 0x300); + if (dm->support_ic_type & ODM_RTL8723F) + cck_enable = odm_get_bb_reg(dm, R_0x2a24, BIT(13)); + else + cck_enable = odm_get_bb_reg(dm, R_0x1a14, 0x300); + if (cck_enable == 0x0) { /* @if(*dm->band_type == ODM_BAND_2_4G) */ fa_t->cnt_all = fa_t->cnt_ofdm_fail + fa_t->cnt_cck_fail; fa_t->cnt_cca_all = fa_t->cnt_cck_cca + fa_t->cnt_ofdm_cca; @@ -481,6 +512,16 @@ void phydm_write_dig_reg(void *dm_void, u8 igi) } #endif + if (igi == dig_t->cur_ig_value) + dig_t->igi_trend = DIG_STABLE; + else if (igi > dig_t->cur_ig_value) + dig_t->igi_trend = DIG_INCREASING; + else + dig_t->igi_trend = DIG_DECREASING; + + PHYDM_DBG(dm, DBG_DIG, "Update IGI:0x%x -> 0x%x\n", + dig_t->cur_ig_value, igi); + dig_t->cur_ig_value = igi; } @@ -527,23 +568,32 @@ void odm_write_dig(void *dm_void, u8 new_igi) #endif /*@Add by YuChen for USB IO too slow issue*/ - if (!(dm->support_ic_type & ODM_IC_PWDB_EDCCA)) { - if (*dm->edcca_mode == PHYDM_EDCCA_ADAPT_MODE && - new_igi < dig_t->cur_ig_value) { - dig_t->cur_ig_value = new_igi; - phydm_adaptivity(dm); - } - } else { - if (*dm->edcca_mode == PHYDM_EDCCA_ADAPT_MODE && - new_igi > dig_t->cur_ig_value) { - dig_t->cur_ig_value = new_igi; - phydm_adaptivity(dm); + if (*dm->edcca_mode == PHYDM_EDCCA_ADAPT_MODE) { + if (!(dm->support_ic_type & ODM_IC_PWDB_EDCCA)) { + if (new_igi < dig_t->cur_ig_value || + dm->is_pause_dig) { + dig_t->cur_ig_value = new_igi; + adaptivity->is_adapt_by_dig = true; + phydm_adaptivity(dm); + } + } else { + if (new_igi > dig_t->cur_ig_value) { + dig_t->cur_ig_value = new_igi; + adaptivity->is_adapt_by_dig = true; + phydm_adaptivity(dm); + } } } + adaptivity->is_adapt_by_dig = false; phydm_write_dig_reg(dm, new_igi); + } else { + dig_t->igi_trend = DIG_STABLE; } - PHYDM_DBG(dm, DBG_DIG, "New_igi=((0x%x))\n\n", new_igi); + PHYDM_DBG(dm, DBG_DIG, "[%s]New_igi=((0x%x))\n\n", + ((dig_t->igi_trend == DIG_STABLE) ? "=" : + ((dig_t->igi_trend == DIG_INCREASING) ? "+" : "-")), + new_igi); } u8 phydm_get_igi_reg_val(void *dm_void, enum bb_path path) @@ -621,12 +671,14 @@ void odm_pause_dig(void *dm_void, enum phydm_pause_type type, switch (type) { case PHYDM_PAUSE: case PHYDM_PAUSE_NO_SET: { + dm->is_pause_dig = true; rpt = phydm_pause_func(dm, F00_DIG, PHYDM_PAUSE, lv, 1, &igi); break; } case PHYDM_RESUME: { rpt = phydm_pause_func(dm, F00_DIG, PHYDM_RESUME, lv, 1, &igi); + dm->is_pause_dig = false; break; } default: @@ -663,6 +715,11 @@ phydm_dig_abort(void *dm_void) return true; } + if (dm->dm_dig_table.fw_dig_enable) { + PHYDM_DBG(dm, DBG_DIG, "Return: FW DIG enable\n"); + return true; + } + #if (DM_ODM_SUPPORT_TYPE == ODM_WIN) #if OS_WIN_FROM_WIN7(OS_VERSION) if (IsAPModeExist(adapter) && ((PADAPTER)(adapter))->bInHctTest) { @@ -675,6 +732,282 @@ phydm_dig_abort(void *dm_void) return false; } +#ifdef PHYDM_HW_IGI +#ifdef BB_RAM_SUPPORT +void phydm_rd_hwigi_pre_setting(void *dm_void, u32 *_used, char *output, + u32 *_out_len) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + u32 used = *_used; + u32 out_len = *_out_len; + u8 igi_ofst = 0x0; + u32 t1, t2, t3 = 0x0; + + igi_ofst = (u8)odm_get_bb_reg(dm, R_0x1e80, MASKBYTE0); + t1 = odm_get_bb_reg(dm, R_0x1e80, MASKBYTE1) * 400; + t2 = odm_get_bb_reg(dm, R_0x1e80, MASKBYTE2) * 400; + t3 = odm_get_bb_reg(dm, R_0x1e80, MASKBYTE3) * 400; + + PDM_SNPF(out_len, used, output + used, out_len - used, + "igi_offset:0x%x, t1:%d(ns), t2:%d(ns), t3:%d(ns)\n", + igi_ofst, t1, t2, t3); +} + +void phydm_set_hwigi_pre_setting(void *dm_void, u8 igi_ofst, u8 t1, u8 t2, + u8 t3) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + u32 reg_0x1e80 = 0; + + reg_0x1e80 = igi_ofst + (t1 << 8) + (t2 << 16) + (t3 << 24); + odm_set_bb_reg(dm, R_0x1e80, MASKDWORD, reg_0x1e80); +} + +void phydm_rd_hwigi_table(void *dm_void, u8 macid, u32 *_used, char *output, + u32 *_out_len) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + u32 used = *_used; + u32 out_len = *_out_len; + boolean hwigi_en = false; + u8 hwigi = 0x0; + u8 hwigi_rx_offset = 0x0; + u32 reg_0x1e84 = 0x0; + + reg_0x1e84 |= (macid & 0x3f) << 24; /*macid*/ + reg_0x1e84 |= BIT(31); /*read_en*/ + odm_set_bb_reg(dm, R_0x1e84, MASKDWORD, reg_0x1e84); + + hwigi_en = (boolean)odm_get_bb_reg(dm, R_0x2de8, BIT(15)); + hwigi = (u8)odm_get_bb_reg(dm, R_0x2de8, 0x7f00); + odm_set_bb_reg(dm, R_0x1e84, MASKDWORD, 0x0); /* disable rd/wt*/ + + PDM_SNPF(out_len, used, output + used, out_len - used, + "(macid:%d) hwigi_en:%d, hwigi:0x%x\n", macid, hwigi_en, + hwigi); + + *_used = used; + *_out_len = out_len; +} + +void phydm_wt_hwigi_table(void *dm_void, u8 macid, boolean hwigi_en, u8 hwigi) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_bb_ram_per_sta *dm_ram_per_sta = NULL; + u32 reg_0x1e84 = 0; + + if (macid > 63) + macid = 63; + + dm_ram_per_sta = &dm->p_bb_ram_ctrl.pram_sta_ctrl[macid]; + dm_ram_per_sta->hw_igi_en = hwigi_en; + dm_ram_per_sta->hw_igi = hwigi; + + reg_0x1e84 = (dm_ram_per_sta->tx_pwr_offset0_en << 15) + + ((dm_ram_per_sta->tx_pwr_offset0 & 0x7f) << 8) + + (dm_ram_per_sta->tx_pwr_offset1_en << 23) + + ((dm_ram_per_sta->tx_pwr_offset1 & 0x7f) << 16); + + reg_0x1e84 |= (hwigi_en << 7) + (hwigi & 0x7f); + reg_0x1e84 |= (macid & 0x3f) << 24;/*macid*/ + reg_0x1e84 |= BIT(30); /*write_en*/ + odm_set_bb_reg(dm, R_0x1e84, MASKDWORD, reg_0x1e84); + odm_set_bb_reg(dm, R_0x1e84, MASKDWORD, 0x80000000); /*read_en*/ + odm_set_bb_reg(dm, R_0x1e84, MASKDWORD, 0x0); /*disable rd/wt*/ +} + +void phydm_rst_hwigi(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_bb_ram_per_sta *dm_ram_per_sta = NULL; + u32 reg_0x1e84 = 0; + u8 i = 0; + + PHYDM_DBG(dm, DBG_DIG, "reset hwigi!\n"); + + for (i = 0; i < 64; i++) { + dm_ram_per_sta = &dm->p_bb_ram_ctrl.pram_sta_ctrl[i]; + dm_ram_per_sta->hw_igi_en = false; + dm_ram_per_sta->hw_igi = 0x0; + + reg_0x1e84 = (dm_ram_per_sta->tx_pwr_offset0_en << 15) + + ((dm_ram_per_sta->tx_pwr_offset0 & 0x7f) << 8) + + (dm_ram_per_sta->tx_pwr_offset1_en << 23) + + ((dm_ram_per_sta->tx_pwr_offset1 & 0x7f) << 16); + + reg_0x1e84 |= (i & 0x3f) << 24; + reg_0x1e84 |= BIT(30); + odm_set_bb_reg(dm, R_0x1e84, MASKDWORD, reg_0x1e84); + } + + odm_set_bb_reg(dm, R_0x1e84, MASKDWORD, 0x80000000); + odm_set_bb_reg(dm, R_0x1e84, MASKDWORD, 0x0); +} + +void phydm_hwigi_init(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_bb_ram_ctrl *bb_ctrl = &dm->p_bb_ram_ctrl; + u8 igi_ofst = 0x0; + u8 t1 = 0x0; + u8 t2 = 0x0; + u8 t3 = 0x0; + + t1 = 0x55; /*34 us*/ + t3 = 0x55; /*34 us*/ + + bb_ctrl->hwigi_watchdog_en = false; + + if (dm->support_ic_type & ODM_IC_JGR3_SERIES) + phydm_set_hwigi_pre_setting(dm, igi_ofst, t1, t2, t3); +} + +void phydm_hwigi(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct cmn_sta_info *sta = NULL; + struct phydm_bb_ram_per_sta *dm_ram_per_sta = NULL; + struct rssi_info *rssi = NULL; + struct phydm_dig_struct *dig_t = &dm->dm_dig_table; + struct phydm_bb_ram_ctrl *bb_ctrl = &dm->p_bb_ram_ctrl; + u8 sta_cnt = 0; + u8 i = 0; + u8 hwigi = 0x0; + u8 macid = 0; + u8 macid_cnt = 0; + u64 macid_cur = 0; + u64 macid_diff = 0; + u64 macid_mask = 0; + + if (!(dm->support_ic_type & ODM_IC_JGR3_SERIES)) + return; + + if (!(bb_ctrl->hwigi_watchdog_en)) { + return; + } + + for (i = 0; i < ODM_ASSOCIATE_ENTRY_NUM; i++) { + sta = dm->phydm_sta_info[i]; + if (is_sta_active(sta)) { + sta_cnt++; + + if (sta->mac_id > 63) + macid = 63; + else + macid = sta->mac_id; + + dm_ram_per_sta = &bb_ctrl->pram_sta_ctrl[macid]; + rssi = &sta->rssi_stat; + macid_mask = (u64)BIT(sta->mac_id); + bb_ctrl->hwigi_macid_is_linked |= macid_mask; + macid_cur |= macid_mask; + PHYDM_DBG(dm, DBG_DIG, + "STA_id=%d, MACID=%d, RSSI=%d, hwigi_en=%d, hwigi=0x%x\n", + i, sta->mac_id, rssi->rssi, + dm_ram_per_sta->hw_igi_en, + dm_ram_per_sta->hw_igi); + + hwigi = MAX_2((u8)(rssi->rssi + 10), + dig_t->cur_ig_value); + + if (hwigi > DIG_MAX_PERFORMANCE_MODE) + hwigi = DIG_MAX_PERFORMANCE_MODE; + else if (hwigi < DIG_MIN_PERFORMANCE) + hwigi = DIG_MIN_PERFORMANCE; + + if (dm_ram_per_sta->hw_igi == hwigi) { + PHYDM_DBG(dm, DBG_DIG, + "hwigi not change!\n"); + } else { + + PHYDM_DBG(dm, DBG_DIG, + "hwigi update: ((0x%x)) -> ((0x%x))\n", + dm_ram_per_sta->hw_igi, hwigi); + + phydm_wt_hwigi_table(dm, sta->mac_id, true, hwigi); + } + + if (sta_cnt == dm->number_linked_client) + break; + } + } + macid_diff = bb_ctrl->hwigi_macid_is_linked ^ macid_cur; + if (macid_diff) + bb_ctrl->hwigi_macid_is_linked &= ~macid_diff; + while (macid_diff) { + if (macid_diff & 0x1) + phydm_wt_hwigi_table(dm, macid_cnt, false, 0x0); + macid_cnt++; + macid_diff >>= 1; + } +} + +void phydm_hwigi_dbg(void *dm_void, char input[][16], u32 *_used, + char *output, u32 *_out_len) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_bb_ram_ctrl *bb_ctrl = &dm->p_bb_ram_ctrl; + char help[] = "-h"; + u32 used = *_used; + u32 out_len = *_out_len; + u32 var1[7] = {0}; + u8 i = 0; + + if (!(dm->support_ic_type & ODM_IC_JGR3_SERIES)) + return; + + if ((strcmp(input[1], help) == 0)) { + PDM_SNPF(out_len, used, output + used, out_len - used, + "Disable/Enable watchdog : {0/1}\n"); + PDM_SNPF(out_len, used, output + used, out_len - used, + "Set hwigi pre-setting: {2} {IGI offset} {T1(after data tx)} {T2(after Rx)} {T3(after rsp tx)}\n"); + PDM_SNPF(out_len, used, output + used, out_len - used, + "Set hwigi table: {3} {en} {value} {macid}\n"); + PDM_SNPF(out_len, used, output + used, out_len - used, + "Read hwigi : {4} {macid(0~63), 255:all}\n"); + PDM_SNPF(out_len, used, output + used, out_len - used, + "Reset all hwigi : {5}\n"); + } else { + for (i = 0; i < 7; i++) { + if (input[i + 1]) + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, + &var1[i]); + } + switch (var1[0]) { + case 0: + case 1: + bb_ctrl->hwigi_watchdog_en = (var1[0]) ? true : false; + break; + case 2: + phydm_set_hwigi_pre_setting(dm, (u8)var1[1], + (u8)var1[2], (u8)var1[3], + (u8)var1[4]); + break; + case 3: + phydm_wt_hwigi_table(dm, (u8)var1[3], (boolean)var1[1], + (boolean)var1[2]); + break; + case 4: + phydm_rd_hwigi_pre_setting(dm, &used, output, &out_len); + if ((u8)var1[1] == 0xff) + for (i = 0; i < 64; i++) + phydm_rd_hwigi_table(dm, i, &used, + output, &out_len); + else + phydm_rd_hwigi_table(dm, (u8)var1[1], &used, + output, &out_len); + break; + case 5: + phydm_rst_hwigi(dm); + break; + } + } + *_used = used; + *_out_len = out_len; +} +#endif +#endif + void phydm_dig_init(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; @@ -694,7 +1027,12 @@ void phydm_dig_init(void *dm_void) dig_t->fa_th[0] = 250; dig_t->fa_th[1] = 500; dig_t->fa_th[2] = 750; + dig_t->dm_dig_fa_th1 = DM_DIG_FA_TH1; dig_t->is_dbg_fa_th = false; + dig_t->igi_dyn_up_hit = false; + dig_t->fw_dig_enable = false; + dig_t->fa_source = 0; + #if (DM_ODM_SUPPORT_TYPE & (ODM_AP)) /* @For RTL8881A */ false_alm_cnt->cnt_ofdm_fail_pre = 0; @@ -704,18 +1042,19 @@ void phydm_dig_init(void *dm_void) dig_t->rx_gain_range_min = dig_t->cur_ig_value; #if (RTL8822B_SUPPORT || RTL8197F_SUPPORT || RTL8192F_SUPPORT) - dig_t->enable_adjust_big_jump = 1; - if (dm->support_ic_type & ODM_RTL8822B) - ret_value = odm_get_bb_reg(dm, R_0x8c8, MASKLWORD); - else if (dm->support_ic_type & (ODM_RTL8197F | ODM_RTL8192F)) - ret_value = odm_get_bb_reg(dm, R_0xc74, MASKLWORD); - - dig_t->big_jump_step1 = (u8)(ret_value & 0xe) >> 1; - dig_t->big_jump_step2 = (u8)(ret_value & 0x30) >> 4; - dig_t->big_jump_step3 = (u8)(ret_value & 0xc0) >> 6; - if (dm->support_ic_type & (ODM_RTL8822B | ODM_RTL8197F | ODM_RTL8192F)) { + dig_t->enable_adjust_big_jump = 1; + + if (dm->support_ic_type & ODM_RTL8822B) + ret_value = odm_get_bb_reg(dm, R_0x8c8, MASKLWORD); + else if (dm->support_ic_type & (ODM_RTL8197F | ODM_RTL8192F)) + ret_value = odm_get_bb_reg(dm, R_0xc74, MASKLWORD); + + dig_t->big_jump_step1 = (u8)(ret_value & 0xe) >> 1; + dig_t->big_jump_step2 = (u8)(ret_value & 0x30) >> 4; + dig_t->big_jump_step3 = (u8)(ret_value & 0xc0) >> 6; + for (i = 0; i < sizeof(dig_t->big_jump_lmt); i++) { if (dig_t->big_jump_lmt[i] == 0) dig_t->big_jump_lmt[i] = 0x64; @@ -730,11 +1069,17 @@ void phydm_dig_init(void *dm_void) dm->tdma_dig_state_number = DIG_NUM_OF_TDMA_STATES; dm->tdma_dig_timer_ms = DIG_TIMER_MS; #endif + dig_t->tdma_force_l_igi = 0xff; + dig_t->tdma_force_h_igi = 0xff; #endif #ifdef CFG_DIG_DAMPING_CHK phydm_dig_recorder_reset(dm); dig_t->dig_dl_en = 1; #endif + +#ifdef PHYDM_HW_IGI + phydm_hwigi_init(dm); +#endif } void phydm_dig_abs_boundary_decision(struct dm_struct *dm, boolean is_dfs_band) { @@ -742,12 +1087,21 @@ void phydm_dig_abs_boundary_decision(struct dm_struct *dm, boolean is_dfs_band) struct phydm_adaptivity_struct *adapt = &dm->adaptivity; if (is_dfs_band) { - if (*dm->band_width == CHANNEL_WIDTH_20) - dig_t->dm_dig_min = DIG_MIN_DFS + 2; + if (*dm->band_width == CHANNEL_WIDTH_20){ + if (dm->support_ic_type & + (ODM_RTL8814A | ODM_RTL8812 | ODM_RTL8821 | ODM_RTL8822B)){ + if (odm_get_bb_reg(dm, R_0x8d8, BIT(27)) == 1) + dig_t->dm_dig_min = DIG_MIN_DFS + 2; + else + dig_t->dm_dig_min = DIG_MIN_DFS; + } + else + dig_t->dm_dig_min = DIG_MIN_DFS; + } else dig_t->dm_dig_min = DIG_MIN_DFS; - dig_t->dig_max_of_min = DIG_MAX_OF_MIN_BALANCE_MODE; + dig_t->dig_max_of_min = DIG_MIN_DFS; dig_t->dm_dig_max = DIG_MAX_BALANCE_MODE; } else if (!dm->is_linked) { dig_t->dm_dig_max = DIG_MAX_COVERAGR; @@ -767,12 +1121,19 @@ void phydm_dig_abs_boundary_decision(struct dm_struct *dm, boolean is_dfs_band) dm->support_ic_type & (ODM_RTL8197F | ODM_RTL8192F)) /*dig_max shouldn't be too high because of adaptivity*/ dig_t->dm_dig_max = - MIN_2((adapt->th_l2h + 40), + MIN_2((adapt->th_l2h + 30), DIG_MAX_PERFORMANCE_MODE); else dig_t->dm_dig_max = DIG_MAX_PERFORMANCE_MODE; + #if (RTL8822B_SUPPORT == 1) + if (dm->is_dig_low_bond) + dig_t->dig_max_of_min = DIG_MAX_OF_MIN_PERFORMANCE_MODE_22B; + else + dig_t->dig_max_of_min = DIG_MAX_OF_MIN_PERFORMANCE_MODE; + #else dig_t->dig_max_of_min = DIG_MAX_OF_MIN_PERFORMANCE_MODE; + #endif } if (dm->support_ic_type & @@ -798,6 +1159,14 @@ void phydm_dig_dym_boundary_decision(struct dm_struct *dm, boolean is_dfs_band) u8 max_of_rssi_min = 0; PHYDM_DBG(dm, DBG_DIG, "%s ======>\n", __func__); + #if (RTL8822B_SUPPORT == 1) + if (dm->is_dig_low_bond) + offset = 5; + else + offset = 15; + #else + offset = 15; + #endif if (!dm->is_linked) { /*@if no link, always stay at lower bound*/ @@ -881,22 +1250,22 @@ void phydm_dig_abnormal_case(struct dm_struct *dm) dig_t->rx_gain_range_max, dig_t->rx_gain_range_min); } -u8 phydm_new_igi_by_fa(struct dm_struct *dm, u8 igi, u32 fa_cnt, u8 *step_size) +u8 phydm_new_igi_by_fa(struct dm_struct *dm, u8 igi, u32 fa_metrics, + u8 *step_size) { - boolean dig_go_up_check = true; struct phydm_dig_struct *dig_t = &dm->dm_dig_table; - if (fa_cnt > dig_t->fa_th[2] && dig_go_up_check) + if (fa_metrics > dig_t->fa_th[2]) igi = igi + step_size[0]; - else if ((fa_cnt > dig_t->fa_th[1]) && dig_go_up_check) + else if (fa_metrics > dig_t->fa_th[1]) igi = igi + step_size[1]; - else if (fa_cnt < dig_t->fa_th[0]) + else if (fa_metrics < dig_t->fa_th[0]) igi = igi - step_size[2]; return igi; } -u8 phydm_get_new_igi(struct dm_struct *dm, u8 igi, u32 fa_cnt, +u8 phydm_get_new_igi(struct dm_struct *dm, u8 igi, u32 fa_metrics, boolean is_dfs_band) { struct phydm_dig_struct *dig_t = &dm->dm_dig_table; @@ -947,17 +1316,19 @@ u8 phydm_get_new_igi(struct dm_struct *dm, u8 igi, u32 fa_cnt, /* @4 Abnormal # beacon case */ #if (DM_ODM_SUPPORT_TYPE & (ODM_WIN | ODM_CE)) if (dm->phy_dbg_info.num_qry_beacon_pkt < 5 && - fa_cnt < DM_DIG_FA_TH1 && dm->bsta_state && - dm->support_ic_type != ODM_RTL8723D) { + fa_metrics < dig_t->dm_dig_fa_th1 && dm->bsta_state && + dm->support_ic_type != ODM_RTL8723D && + dm->support_ic_type != ODM_RTL8822B && + dm->support_ic_type != ODM_RTL8822C) { dig_t->rx_gain_range_min = 0x1c; igi = dig_t->rx_gain_range_min; PHYDM_DBG(dm, DBG_DIG, "Beacon_num=%d,force igi=0x%x\n", dm->phy_dbg_info.num_qry_beacon_pkt, igi); } else { - igi = phydm_new_igi_by_fa(dm, igi, fa_cnt, step); + igi = phydm_new_igi_by_fa(dm, igi, fa_metrics, step); } #else - igi = phydm_new_igi_by_fa(dm, igi, fa_cnt, step); + igi = phydm_new_igi_by_fa(dm, igi, fa_metrics, step); #endif } else { /* @2 Before link */ @@ -969,9 +1340,9 @@ u8 phydm_get_new_igi(struct dm_struct *dm, u8 igi, u32 fa_cnt, "First disconnect:foce IGI to lower bound\n"); } else { PHYDM_DBG(dm, DBG_DIG, "Pre_IGI=((0x%x)), FA=((%d))\n", - igi, fa_cnt); + igi, fa_metrics); - igi = phydm_new_igi_by_fa(dm, igi, fa_cnt, step); + igi = phydm_new_igi_by_fa(dm, igi, fa_metrics, step); } } @@ -979,11 +1350,17 @@ u8 phydm_get_new_igi(struct dm_struct *dm, u8 igi, u32 fa_cnt, if (igi < dig_t->rx_gain_range_min) igi = dig_t->rx_gain_range_min; - if (igi > dig_t->rx_gain_range_max) + if (igi >= dig_t->rx_gain_range_max) { igi = dig_t->rx_gain_range_max; + dig_t->igi_dyn_up_hit = true; + } else { + dig_t->igi_dyn_up_hit = false; + } + PHYDM_DBG(dm, DBG_DIG, "igi_dyn_up_hit=%d\n", + dig_t->igi_dyn_up_hit); - PHYDM_DBG(dm, DBG_DIG, "fa_cnt = %d, IGI: 0x%x -> 0x%x\n", - fa_cnt, dig_t->cur_ig_value, igi); + PHYDM_DBG(dm, DBG_DIG, "fa_metrics = %d, IGI: 0x%x -> 0x%x\n", + fa_metrics, dig_t->cur_ig_value, igi); return igi; } @@ -1006,35 +1383,85 @@ boolean phydm_dig_dfs_mode_en(void *dm_void) return dfs_mode_en; } +void phydm_dig_fa_source(void *dm_void, u8 fa_source, u32 *fa_metrics) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_fa_struct *fa = &dm->false_alm_cnt; + + switch (fa_source) { + case 1: + *fa_metrics = fa->time_fa_exp; + break; + #ifdef IFS_CLM_SUPPORT + case 2: + if (fa->time_fa_ifs_clm) { + *fa_metrics = fa->time_fa_ifs_clm; + } else { + fa_source = 1; + *fa_metrics = fa->time_fa_exp; + } + break; + #endif + #ifdef FAHM_SUPPORT + case 3: + if (fa->time_fa_fahm) { + *fa_metrics = fa->time_fa_fahm; + } else { + fa_source = 1; + *fa_metrics = fa->time_fa_exp; + } + break; + #endif + default: + break; + } + + PHYDM_DBG(dm, DBG_DIG, + "fa_source:%d, fa_cnt=%d ,time_fa_exp=%d, fa_metrics=%d\n", + fa_source, fa->cnt_all, fa->time_fa_exp, *fa_metrics); +} + void phydm_dig(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; struct phydm_dig_struct *dig_t = &dm->dm_dig_table; - struct phydm_fa_struct *falm_cnt = &dm->false_alm_cnt; + struct phydm_fa_struct *fa = &dm->false_alm_cnt; #ifdef PHYDM_TDMA_DIG_SUPPORT struct phydm_fa_acc_struct *falm_cnt_acc = &dm->false_alm_cnt_acc; #endif u8 igi = dig_t->cur_ig_value; u8 new_igi = 0x20; - u32 fa_cnt = falm_cnt->cnt_all; + u32 fa_metrics = fa->cnt_all; boolean dfs_mode_en = false; -#ifdef PHYDM_TDMA_DIG_SUPPORT + PHYDM_DBG(dm, DBG_DIG, "%s Start===>\n", __func__); + + #ifdef PHYDM_DCC_ENHANCE + if (dm->dm_dcc_info.dcc_en) { + fa_metrics = fa->cnt_ofdm_fail; /*OFDM FA only*/ + dig_t->fa_source = 0; + } + #endif + + #ifdef PHYDM_TDMA_DIG_SUPPORT if (!(dm->original_dig_restore)) { if (dig_t->cur_ig_value_tdma == 0) dig_t->cur_ig_value_tdma = dig_t->cur_ig_value; igi = dig_t->cur_ig_value_tdma; - fa_cnt = falm_cnt_acc->cnt_all_1sec; + fa_metrics = falm_cnt_acc->cnt_all_1sec; + dig_t->fa_source = 0; } -#endif + #endif if (phydm_dig_abort(dm)) { dig_t->cur_ig_value = phydm_get_igi(dm, BB_PATH_A); return; } - PHYDM_DBG(dm, DBG_DIG, "%s Start===>\n", __func__); + if (dig_t->fa_source) + phydm_dig_fa_source(dm, dig_t->fa_source, &fa_metrics); + PHYDM_DBG(dm, DBG_DIG, "is_linked=%d, RSSI=%d, 1stConnect=%d, 1stDisconnect=%d\n", dm->is_linked, dm->rssi_min, @@ -1048,7 +1475,7 @@ void phydm_dig(void *dm_void) #ifdef CFG_DIG_DAMPING_CHK /*Record IGI History*/ - phydm_dig_recorder(dm, igi, fa_cnt); + phydm_dig_recorder(dm, igi, fa_metrics); /*@DIG Damping Check*/ phydm_dig_damping_chk(dm); @@ -1067,7 +1494,7 @@ void phydm_dig(void *dm_void) phydm_fa_threshold_check(dm, dfs_mode_en); /*Select new IGI by FA */ - new_igi = phydm_get_new_igi(dm, igi, fa_cnt, dfs_mode_en); + new_igi = phydm_get_new_igi(dm, igi, fa_metrics, dfs_mode_en); /* @1 Update status */ #ifdef PHYDM_TDMA_DIG_SUPPORT @@ -1135,6 +1562,31 @@ void phydm_dig_by_rssi_lps(void *dm_void) #endif } +void phydm_get_dig_coverage(void *dm_void, u8 *max, u8 *min) +{ + *min = DIG_MIN_COVERAGE; + *max = DIG_MAX_PERFORMANCE_MODE; +} + +u8 phydm_get_igi_for_target_pin_scan(void *dm_void, u8 rssi) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + u8 igi = 0; + u8 max = 0; + u8 min = 0; + + igi = rssi + 10; + + phydm_get_dig_coverage(dm, &max, &min); + + if (igi > max) + igi = max; + else if (igi < min) + igi = min; + + return igi; +} + /* @3============================================================ * 3 FASLE ALARM CHECK * 3============================================================ @@ -1163,6 +1615,11 @@ void phydm_false_alarm_counter_reg_reset(void *dm_void) #ifdef PHYDM_IC_JGR3_SERIES_SUPPORT if (dm->support_ic_type & ODM_IC_JGR3_SERIES) { + if (dm->support_ic_type & ODM_RTL8723F) { + /* @reset CCK FA and CCA counter */ + odm_set_bb_reg(dm, R_0x2a44, BIT(21), 0); + odm_set_bb_reg(dm, R_0x2a44, BIT(21), 1); + } else { /* @reset CCK FA counter */ odm_set_bb_reg(dm, R_0x1a2c, BIT(15) | BIT(14), 0); odm_set_bb_reg(dm, R_0x1a2c, BIT(15) | BIT(14), 2); @@ -1170,7 +1627,7 @@ void phydm_false_alarm_counter_reg_reset(void *dm_void) /* @reset CCK CCA counter */ odm_set_bb_reg(dm, R_0x1a2c, BIT(13) | BIT(12), 0); odm_set_bb_reg(dm, R_0x1a2c, BIT(13) | BIT(12), 2); - + } /* @Disable common rx clk gating => WLANBB-1106*/ odm_set_bb_reg(dm, R_0x1d2c, BIT(31), 0); /* @reset OFDM CCA counter, OFDM FA counter*/ @@ -1239,6 +1696,9 @@ void phydm_false_alarm_counter_reg_hold(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; + if (dm->support_ic_type & ODM_RTL8723F) + return; + if (dm->support_ic_type & ODM_IC_JGR3_SERIES) { /* @hold cck counter */ odm_set_bb_reg(dm, R_0x1a2c, BIT(12), 1); @@ -1269,6 +1729,13 @@ void phydm_fa_cnt_statistics_n(void *dm_void) /* @hold ofdm & cck counter */ phydm_false_alarm_counter_reg_hold(dm); + reg = odm_get_bb_reg(dm, R_0x9d0, MASKDWORD); + fa_t->cnt_cck_txon = (reg & 0xffff); + fa_t->cnt_cck_txen = ((reg & 0xffff0000) >> 16); + reg = odm_get_bb_reg(dm, R_0x9cc, MASKDWORD); + fa_t->cnt_ofdm_txon = (reg & 0xffff); + fa_t->cnt_ofdm_txen = ((reg & 0xffff0000) >> 16); + reg = odm_get_bb_reg(dm, ODM_REG_OFDM_FA_TYPE1_11N, MASKDWORD); fa_t->cnt_fast_fsync = (reg & 0xffff); fa_t->cnt_sb_search_fail = ((reg & 0xffff0000) >> 16); @@ -1298,11 +1765,21 @@ void phydm_fa_cnt_statistics_n(void *dm_void) fa_t->cnt_ofdm_crc32_error = (reg & 0xffff0000) >> 16; fa_t->cnt_ofdm_crc32_ok = reg & 0xffff; + /* read OFDM2 CRC32 counter */ + reg = odm_get_bb_reg(dm, R_0xf9c, MASKDWORD); + fa_t->cnt_ofdm_crc32_error = (reg & 0xffff0000) >> 16; + fa_t->cnt_ofdm2_crc32_ok = reg & 0xffff; + /* read HT CRC32 counter */ reg = odm_get_bb_reg(dm, ODM_REG_HT_CRC32_CNT_11N, MASKDWORD); fa_t->cnt_ht_crc32_error = (reg & 0xffff0000) >> 16; fa_t->cnt_ht_crc32_ok = reg & 0xffff; + /* read HT2 CRC32 counter */ + reg = odm_get_bb_reg(dm, R_0xf98, MASKDWORD); + fa_t->cnt_ht_crc32_error = (reg & 0xffff0000) >> 16; + fa_t->cnt_ht2_crc32_ok = reg & 0xffff; + /* read VHT CRC32 counter */ fa_t->cnt_vht_crc32_error = 0; fa_t->cnt_vht_crc32_ok = 0; @@ -1344,12 +1821,6 @@ void phydm_fa_cnt_statistics_n(void *dm_void) fa_t->cnt_cck_fail; fa_t->cnt_cca_all = fa_t->cnt_ofdm_cca + fa_t->cnt_cck_cca; - - PHYDM_DBG(dm, DBG_FA_CNT, - "[OFDM FA Detail] Parity_Fail=((%d)), Rate_Illegal=((%d)), CRC8_fail=((%d)), Mcs_fail=((%d)), Fast_Fsync=(( %d )), SBD_fail=((%d))\n", - fa_t->cnt_parity_fail, fa_t->cnt_rate_illegal, - fa_t->cnt_crc8_fail, fa_t->cnt_mcs_fail, fa_t->cnt_fast_fsync, - fa_t->cnt_sb_search_fail); } #endif @@ -1364,6 +1835,12 @@ void phydm_fa_cnt_statistics_ac(void *dm_void) if (!(dm->support_ic_type & ODM_IC_11AC_SERIES)) return; + ret_value = odm_get_bb_reg(dm, R_0xf50, MASKDWORD); + fa_t->cnt_cck_txen = (ret_value & 0xffff); + fa_t->cnt_ofdm_txen = ((ret_value & 0xffff0000) >> 16); + fa_t->cnt_cck_txon = (u16)odm_get_bb_reg(dm, R_0xfcc, MASKLWORD); + fa_t->cnt_ofdm_txon = (u16)odm_get_bb_reg(dm, R_0xfc8, MASKHWORD); + ret_value = odm_get_bb_reg(dm, ODM_REG_OFDM_FA_TYPE1_11AC, MASKDWORD); fa_t->cnt_fast_fsync = (ret_value & 0xffff0000) >> 16; @@ -1461,23 +1938,13 @@ void phydm_fa_cnt_statistics_ac(void *dm_void) } #endif -void phydm_get_dbg_port_info(void *dm_void) +u32 phydm_get_edcca_report(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; struct phydm_fa_struct *fa_t = &dm->false_alm_cnt; u32 dbg_port = dm->adaptivity.adaptivity_dbg_port; u32 val = 0; - if (dm->support_ic_type & ODM_IC_JGR3_SERIES) { - fa_t->dbg_port0 = odm_get_bb_reg(dm, R_0x2db4, MASKDWORD); - } else { - /*set debug port to 0x0*/ - if (phydm_set_bb_dbg_port(dm, DBGPORT_PRI_1, 0x0)) { - fa_t->dbg_port0 = phydm_get_bb_dbg_port_val(dm); - phydm_release_bb_dbg_port(dm); - } - } - if (dm->support_ic_type & ODM_RTL8723D) { val = odm_get_bb_reg(dm, R_0x9a0, BIT(29)); } else if (dm->support_ic_type & ODM_IC_JGR3_SERIES) { @@ -1490,17 +1957,151 @@ void phydm_get_dbg_port_info(void *dm_void) phydm_release_bb_dbg_port(dm); } - fa_t->edcca_flag = (boolean)val; + return val; +} + +void phydm_get_dbg_port_info(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_fa_struct *fa_t = &dm->false_alm_cnt; + + if (dm->support_ic_type & ODM_IC_JGR3_SERIES) { + fa_t->dbg_port0 = odm_get_bb_reg(dm, R_0x2db4, MASKDWORD); + } else { + /*set debug port to 0x0*/ + if (phydm_set_bb_dbg_port(dm, DBGPORT_PRI_1, 0x0)) { + fa_t->dbg_port0 = phydm_get_bb_dbg_port_val(dm); + phydm_release_bb_dbg_port(dm); + } + } + + fa_t->edcca_flag = (boolean)phydm_get_edcca_report(dm); PHYDM_DBG(dm, DBG_FA_CNT, "FA_Cnt: Dbg port 0x0 = 0x%x, EDCCA = %d\n", fa_t->dbg_port0, fa_t->edcca_flag); } +void phydm_set_crc32_cnt2_rate(void *dm_void, u8 rate_idx) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_fa_struct *fa_t = &dm->false_alm_cnt; + boolean is_ofdm_rate = phydm_is_ofdm_rate(dm, rate_idx); + boolean is_ht_rate = phydm_is_ht_rate(dm, rate_idx); + boolean is_vht_rate = phydm_is_vht_rate(dm, rate_idx); + u32 reg_addr = 0x0; + u32 ofdm_rate_bitmask = 0x0; + u32 ht_mcs_bitmask = 0x0; + u32 vht_mcs_bitmask = 0x0; + u32 vht_ss_bitmask = 0x0; + u8 rate = 0x0; + u8 ss = 0x0; + + if (!is_ofdm_rate && !is_ht_rate && !is_vht_rate) + PHYDM_DBG(dm, DBG_FA_CNT, + "[FA CNT] rate_idx = (0x%x) is not supported !\n", + rate_idx); + + switch (dm->ic_ip_series) { + case PHYDM_IC_N: + reg_addr = R_0xf04; + ofdm_rate_bitmask = 0x0000f000; + ht_mcs_bitmask = 0x007f0000; + break; + case PHYDM_IC_AC: + reg_addr = R_0xb04; + ofdm_rate_bitmask = 0x0000f000; + ht_mcs_bitmask = 0x007f0000; + vht_mcs_bitmask = 0x0f000000; + vht_ss_bitmask = 0x30000000; + break; + case PHYDM_IC_JGR3: + reg_addr = R_0x1eb8; + ofdm_rate_bitmask = 0x00000f00; + ht_mcs_bitmask = 0x007f0000; + vht_mcs_bitmask = 0x0000f000; + vht_ss_bitmask = 0x000000c0; + break; + default: + break; + } + + if (is_ofdm_rate) { + rate = phydm_legacy_rate_2_spec_rate(dm, rate_idx); + + odm_set_bb_reg(dm, reg_addr, ofdm_rate_bitmask, rate); + fa_t->ofdm2_rate_idx = rate_idx; + } else if (is_ht_rate) { + rate = phydm_rate_2_rate_digit(dm, rate_idx); + + odm_set_bb_reg(dm, reg_addr, ht_mcs_bitmask, rate); + fa_t->ht2_rate_idx = rate_idx; + } else if (is_vht_rate) { + rate = phydm_rate_2_rate_digit(dm, rate_idx); + ss = phydm_rate_to_num_ss(dm, rate_idx); + + odm_set_bb_reg(dm, reg_addr, vht_mcs_bitmask, rate); + odm_set_bb_reg(dm, reg_addr, vht_ss_bitmask, ss - 1); + fa_t->vht2_rate_idx = rate_idx; + } +} + +void phydm_fa_cnt_cal_fa_duration(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ccx_info *ccx = &dm->dm_ccx_info; + struct phydm_fa_struct *fa_t = &dm->false_alm_cnt; + u8 norm = 0; /*normalization*/ + boolean fahm_chk = false; + + fa_t->time_fa_all = fa_t->cnt_fast_fsync * 12 + + fa_t->cnt_sb_search_fail * 12 + + fa_t->cnt_parity_fail * 28 + + fa_t->cnt_rate_illegal * 28 + + fa_t->cnt_crc8_fail * 20 + + fa_t->cnt_crc8_fail_vhta * 28 + + fa_t->cnt_mcs_fail_vht * 36 + + fa_t->cnt_mcs_fail * 32 + + fa_t->cnt_cck_fail * 80; + + fa_t->time_fa_exp = fa_t->cnt_ofdm_fail * OFDM_FA_EXP_DURATION + + fa_t->cnt_cck_fail * CCK_FA_EXP_DURATION; + + fa_t->time_fa_ifs_clm = 0; + fa_t->time_fa_fahm = 0; + + #ifdef IFS_CLM_SUPPORT + if (ccx->ccx_watchdog_result & IFS_CLM_SUCCESS) { + norm = (u8)PHYDM_DIV(PHYDM_WATCH_DOG_PERIOD * S_TO_US, + ccx->ifs_clm_period); + fa_t->time_fa_ifs_clm = (ccx->ifs_clm_cckfa + + ccx->ifs_clm_ofdmfa) * norm; + } + #endif + + #ifdef FAHM_SUPPORT + if (ccx->ccx_watchdog_result & FAHM_SUCCESS) { + if (fa_t->cnt_cck_fail) { + if (ccx->fahm_inclu_cck) + fahm_chk = true; + } else { + fahm_chk = true; + } + } + + if (fahm_chk) { + norm = (u8)PHYDM_DIV(PHYDM_WATCH_DOG_PERIOD * S_TO_US, + ccx->fahm_period); + fa_t->time_fa_fahm = ccx->fahm_result_sum * norm; + } + #endif +} + void phydm_false_alarm_counter_statistics(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; struct phydm_fa_struct *fa_t = &dm->false_alm_cnt; char dbg_buf[PHYDM_SNPRINT_SIZE] = {0}; + u32 tmp = 0; if (!(dm->support_ability & ODM_BB_FA_CNT)) return; @@ -1524,15 +2125,7 @@ void phydm_false_alarm_counter_statistics(void *dm_void) phydm_get_dbg_port_info(dm); phydm_false_alarm_counter_reg_reset(dm_void); - fa_t->time_fa_all = fa_t->cnt_fast_fsync * 12 + - fa_t->cnt_sb_search_fail * 12 + - fa_t->cnt_parity_fail * 28 + - fa_t->cnt_rate_illegal * 28 + - fa_t->cnt_crc8_fail * 20 + - fa_t->cnt_crc8_fail_vhta * 28 + - fa_t->cnt_mcs_fail_vht * 36 + - fa_t->cnt_mcs_fail * 32 + - fa_t->cnt_cck_fail * 80; + phydm_fa_cnt_cal_fa_duration(dm); fa_t->cnt_crc32_error_all = fa_t->cnt_vht_crc32_error + fa_t->cnt_ht_crc32_error + @@ -1544,23 +2137,34 @@ void phydm_false_alarm_counter_statistics(void *dm_void) fa_t->cnt_ofdm_crc32_ok + fa_t->cnt_cck_crc32_ok; + PHYDM_DBG(dm, DBG_FA_CNT, + "[Tx cnt] {CCK_TxEN, CCK_TxON, OFDM_TxEN, OFDM_TxON} = {%d, %d, %d, %d}\n", + fa_t->cnt_cck_txen, fa_t->cnt_cck_txon, fa_t->cnt_ofdm_txen, + fa_t->cnt_ofdm_txon); PHYDM_DBG(dm, DBG_FA_CNT, "[CCA Cnt] {CCK, OFDM, Total} = {%d, %d, %d}\n", fa_t->cnt_cck_cca, fa_t->cnt_ofdm_cca, fa_t->cnt_cca_all); PHYDM_DBG(dm, DBG_FA_CNT, "[FA Cnt] {CCK, OFDM, Total} = {%d, %d, %d}\n", fa_t->cnt_cck_fail, fa_t->cnt_ofdm_fail, fa_t->cnt_all); + PHYDM_DBG(dm, DBG_FA_CNT, + "[FA duration(us)] {exp, ifs_clm, fahm} = {%d, %d, %d}\n", + fa_t->time_fa_exp, fa_t->time_fa_ifs_clm, + fa_t->time_fa_fahm); PHYDM_DBG(dm, DBG_FA_CNT, "[OFDM FA] Parity=%d, Rate=%d, Fast_Fsync=%d, SBD=%d\n", fa_t->cnt_parity_fail, fa_t->cnt_rate_illegal, fa_t->cnt_fast_fsync, fa_t->cnt_sb_search_fail); - PHYDM_DBG(dm, DBG_FA_CNT, - "[HT FA] HT_CRC8=%d, HT_MCS=%d\n", + PHYDM_DBG(dm, DBG_FA_CNT, "[HT FA] CRC8=%d, MCS=%d\n", fa_t->cnt_crc8_fail, fa_t->cnt_mcs_fail); - PHYDM_DBG(dm, DBG_FA_CNT, - "[VHT FA] VHT_SIGA_CRC8=%d, VHT_SIGB_CRC8=%d, VHT_MCS=%d\n", - fa_t->cnt_crc8_fail_vhta, fa_t->cnt_crc8_fail_vhtb, - fa_t->cnt_mcs_fail_vht); +#if (ODM_IC_11AC_SERIES_SUPPORT || defined(PHYDM_IC_JGR3_SERIES_SUPPORT)) + if (dm->support_ic_type & (ODM_IC_11AC_SERIES | ODM_IC_JGR3_SERIES)) { + PHYDM_DBG(dm, DBG_FA_CNT, + "[VHT FA] SIGA_CRC8=%d, SIGB_CRC8=%d, MCS=%d\n", + fa_t->cnt_crc8_fail_vhta, fa_t->cnt_crc8_fail_vhtb, + fa_t->cnt_mcs_fail_vht); + } +#endif PHYDM_DBG(dm, DBG_FA_CNT, "[CRC32 OK Cnt] {CCK, OFDM, HT, VHT, Total} = {%d, %d, %d, %d, %d}\n", @@ -1572,92 +2176,69 @@ void phydm_false_alarm_counter_statistics(void *dm_void) fa_t->cnt_cck_crc32_error, fa_t->cnt_ofdm_crc32_error, fa_t->cnt_ht_crc32_error, fa_t->cnt_vht_crc32_error, fa_t->cnt_crc32_error_all); + + if (fa_t->ofdm2_rate_idx) { + tmp = fa_t->cnt_ofdm2_crc32_error + fa_t->cnt_ofdm2_crc32_ok; + fa_t->ofdm2_pcr = (u8)PHYDM_DIV(fa_t->cnt_ofdm2_crc32_ok * 100, + tmp); + phydm_print_rate_2_buff(dm, fa_t->ofdm2_rate_idx, dbg_buf, + PHYDM_SNPRINT_SIZE); + PHYDM_DBG(dm, DBG_FA_CNT, + "[OFDM:%s CRC32 Cnt] {error, ok}= {%d, %d} (%d percent)\n", + dbg_buf, fa_t->cnt_ofdm2_crc32_error, + fa_t->cnt_ofdm2_crc32_ok, fa_t->ofdm2_pcr); + } else { + phydm_set_crc32_cnt2_rate(dm, ODM_RATE6M); + } + + if (fa_t->ht2_rate_idx) { + tmp = fa_t->cnt_ht2_crc32_error + fa_t->cnt_ht2_crc32_ok; + fa_t->ht2_pcr = (u8)PHYDM_DIV(fa_t->cnt_ht2_crc32_ok * 100, + tmp); + phydm_print_rate_2_buff(dm, fa_t->ht2_rate_idx, dbg_buf, + PHYDM_SNPRINT_SIZE); + PHYDM_DBG(dm, DBG_FA_CNT, + "[HT:%s CRC32 Cnt] {error, ok}= {%d, %d} (%d percent)\n", + dbg_buf, fa_t->cnt_ht2_crc32_error, + fa_t->cnt_ht2_crc32_ok, fa_t->ht2_pcr); + } else { + phydm_set_crc32_cnt2_rate(dm, ODM_RATEMCS0); + } + #if (ODM_IC_11AC_SERIES_SUPPORT || defined(PHYDM_IC_JGR3_SERIES_SUPPORT)) if (dm->support_ic_type & (ODM_IC_11AC_SERIES | ODM_IC_JGR3_SERIES)) { - if (fa_t->ofdm2_rate_idx) { - phydm_print_rate_2_buff(dm, fa_t->ofdm2_rate_idx, - dbg_buf, PHYDM_SNPRINT_SIZE); - PHYDM_DBG(dm, DBG_FA_CNT, - "[OFDM:%s CRC32 Cnt] {error, ok}= {%d, %d}\n", - dbg_buf, fa_t->cnt_ofdm2_crc32_error, - fa_t->cnt_ofdm2_crc32_ok); - } - if (fa_t->ht2_rate_idx) { - phydm_print_rate_2_buff(dm, fa_t->ht2_rate_idx, dbg_buf, - PHYDM_SNPRINT_SIZE); - PHYDM_DBG(dm, DBG_FA_CNT, - "[HT:%s CRC32 Cnt] {error, ok}= {%d, %d}\n", - dbg_buf, fa_t->cnt_ht2_crc32_error, - fa_t->cnt_ht2_crc32_ok); - } if (fa_t->vht2_rate_idx) { + tmp = fa_t->cnt_vht2_crc32_error + + fa_t->cnt_vht2_crc32_ok; + fa_t->vht2_pcr = (u8)PHYDM_DIV(fa_t->cnt_vht2_crc32_ok * + 100, tmp); phydm_print_rate_2_buff(dm, fa_t->vht2_rate_idx, dbg_buf, PHYDM_SNPRINT_SIZE); PHYDM_DBG(dm, DBG_FA_CNT, - "[VHT:%s CRC32 Cnt] {error, ok}= {%d, %d}\n", + "[VHT:%s CRC32 Cnt] {error, ok}= {%d, %d} (%d percent)\n", dbg_buf, fa_t->cnt_vht2_crc32_error, - fa_t->cnt_vht2_crc32_ok); + fa_t->cnt_vht2_crc32_ok, fa_t->vht2_pcr); + } else { + phydm_set_crc32_cnt2_rate(dm, ODM_RATEVHTSS1MCS0); } } #endif } -void phydm_fa_cnt_set_crc32_cnt2_rate(void *dm_void, u8 rate_idx) -{ +void phydm_fill_fw_dig_info(void *dm_void, boolean *enable, + u8 *para4, u8 *para8) { struct dm_struct *dm = (struct dm_struct *)dm_void; - struct phydm_fa_struct *fa_t = &dm->false_alm_cnt; - boolean is_ofdm_rate = phydm_is_ofdm_rate(dm, rate_idx); - boolean is_ht_rate = phydm_is_ht_rate(dm, rate_idx); - boolean is_vht_rate = phydm_is_vht_rate(dm, rate_idx); - u32 reg_addr = 0x0; - u32 ofdm_rate_bitmask = 0x0; - u32 ht_mcs_bitmask = 0x0; - u32 vht_mcs_bitmask = 0x0; - u32 vht_ss_bitmask = 0x0; - u8 rate = 0x0; - u8 ss = 0x0; + struct phydm_dig_struct *dig_t = &dm->dm_dig_table; - if (!is_ofdm_rate && !is_ht_rate && !is_vht_rate) - PHYDM_DBG(dm, DBG_FA_CNT, - "[FA CNT] rate_idx = (0x%x) is not supported !\n", - rate_idx); - - if (dm->support_ic_type & ODM_IC_11AC_SERIES) { - reg_addr = R_0xb04; - ofdm_rate_bitmask = 0x0000f000; - ht_mcs_bitmask = 0x007f0000; - vht_mcs_bitmask = 0x0f000000; - vht_ss_bitmask = 0x30000000; - } else if (dm->support_ic_type & ODM_IC_JGR3_SERIES) { - reg_addr = R_0x1eb8; - ofdm_rate_bitmask = 0x00000f00; - ht_mcs_bitmask = 0x007f0000; - vht_mcs_bitmask = 0x0000f000; - vht_ss_bitmask = 0x000000c0; - } - - if (is_ofdm_rate) { - rate = phydm_legacy_rate_2_spec_rate(dm, rate_idx); - - odm_set_bb_reg(dm, reg_addr, ofdm_rate_bitmask, rate); - fa_t->ofdm2_rate_idx = rate_idx; - } else if (is_ht_rate) { - rate = phydm_rate_2_rate_digit(dm, rate_idx); - - odm_set_bb_reg(dm, reg_addr, ht_mcs_bitmask, rate); - fa_t->ht2_rate_idx = rate_idx; - } else if (is_vht_rate) { - rate = phydm_rate_2_rate_digit(dm, rate_idx); - ss = phydm_rate_to_num_ss(dm, rate_idx); - - odm_set_bb_reg(dm, reg_addr, vht_mcs_bitmask, rate); - odm_set_bb_reg(dm, reg_addr, vht_ss_bitmask, ss - 1); - fa_t->vht2_rate_idx = rate_idx; - } + dig_t->fw_dig_enable = *enable; + para8[0] = dig_t->rx_gain_range_max; + para8[1] = dig_t->rx_gain_range_min; + para8[2] = dm->number_linked_client; + para4[0] = (u8)DIG_LPS_MODE; } -void phydm_fa_cnt_dbg(void *dm_void, char input[][16], u32 *_used, char *output, - u32 *_out_len) +void phydm_crc32_cnt_dbg(void *dm_void, char input[][16], u32 *_used, + char *output, u32 *_out_len) { struct dm_struct *dm = (struct dm_struct *)dm_void; struct phydm_dig_struct *dig_t = &dm->dm_dig_table; @@ -1668,16 +2249,9 @@ void phydm_fa_cnt_dbg(void *dm_void, char input[][16], u32 *_used, char *output, u8 i = 0; u8 rate = 0x0; - if (!(dm->support_ic_type & (ODM_IC_JGR3_SERIES | - ODM_IC_11AC_SERIES))) { - PDM_SNPF(out_len, used, output + used, out_len - used, - "Not Support !\n"); - return; - } - if ((strcmp(input[1], help) == 0)) { PDM_SNPF(out_len, used, output + used, out_len - used, - "[FA Cnt] CRC32: {rate_idx}\n"); + "[CRC32 Cnt] {rate_idx}\n"); } else { PHYDM_SSCANF(input[1], DCMD_DECIMAL, &var1[0]); rate = (u8)var1[0]; @@ -1685,7 +2259,7 @@ void phydm_fa_cnt_dbg(void *dm_void, char input[][16], u32 *_used, char *output, PDM_SNPF(out_len, used, output + used, out_len - used, "{rate}={0x%x}", rate); - phydm_fa_cnt_set_crc32_cnt2_rate(dm, rate); + phydm_set_crc32_cnt2_rate(dm, rate); } *_used = used; *_out_len = out_len; @@ -1746,7 +2320,7 @@ void phydm_tdma_dig_timer_check(void *dm_void) if (dm->support_ic_type & (ODM_RTL8198F | ODM_RTL8814B | ODM_RTL8812F | ODM_RTL8822B | ODM_RTL8192F | ODM_RTL8821C | ODM_RTL8197G | ODM_RTL8822C | - ODM_RTL8723D)) { + ODM_RTL8723D | ODM_RTL8723F | ODM_RTL8814C)) { PHYDM_DBG(dm, DBG_DIG, "Check fail, Restart timer\n\n"); phydm_false_alarm_counter_reset(dm); @@ -1806,7 +2380,7 @@ void phydm_tdma_dig(void *dm_void) #ifdef IS_USE_NEW_TDMA if (dm->support_ic_type & (ODM_RTL8198F | ODM_RTL8814B | ODM_RTL8812F | ODM_RTL8822B | - ODM_RTL8192F | ODM_RTL8821C)) { + ODM_RTL8192F | ODM_RTL8821C | ODM_RTL8814C)) { PHYDM_DBG(dm, DBG_DIG, "98F/14B/12F/22B/92F/21C, new tdma\n"); return; } @@ -2181,6 +2755,30 @@ u8 get_new_igi_bound(struct dm_struct *dm, u8 igi, u32 fa_cnt, u8 *rx_gain_max, return igi; } +void phydm_write_tdma_dig(void *dm_void, u8 new_igi) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_dig_struct *dig_t = &dm->dm_dig_table; + struct phydm_adaptivity_struct *adaptivity = &dm->adaptivity; + + PHYDM_DBG(dm, DBG_DIG, "%s===>\n", __func__); +#if 0 + /* @1 Check IGI by upper bound */ + if (adaptivity->igi_lmt_en && + new_igi > adaptivity->adapt_igi_up && dm->is_linked) { + new_igi = adaptivity->adapt_igi_up; + + PHYDM_DBG(dm, DBG_DIG, "Force Adaptivity Up-bound=((0x%x))\n", + new_igi); + } +#endif + phydm_write_dig_reg(dm, new_igi); + + PHYDM_DBG(dm, DBG_DIG, "New %s-IGI=((0x%x))\n", + (dig_t->tdma_dig_state == TDMA_DIG_LOW_STATE) ? "L" : "H", + new_igi); +} + void phydm_tdma_dig_new(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; @@ -2327,9 +2925,9 @@ void phydm_tdma_dig_cbk(void *dm_void) */ if (dig_t->tdma_dig_state == TDMA_DIG_LOW_STATE) - odm_write_dig(dm, dig_t->low_ig_value); + phydm_write_tdma_dig(dm, dig_t->low_ig_value); else if (dig_t->tdma_dig_state >= TDMA_DIG_HIGH_STATE) - odm_write_dig(dm, dig_t->cur_ig_value_tdma); + phydm_write_tdma_dig(dm, dig_t->cur_ig_value_tdma); odm_set_timer(dm, &dm->tdma_dig_timer, dm->tdma_dig_timer_ms); } @@ -2493,9 +3091,18 @@ void phydm_tdma_low_dig(void *dm_void) dig_t->dm_dig_min = DIG_MIN_PERFORMANCE; //0x20 dig_t->dig_max_of_min = DIG_MAX_OF_MIN_COVERAGE; //0x22 - if (dfs_mode_en) { - if (*dm->band_width == CHANNEL_WIDTH_20) - dig_t->dm_dig_min = DIG_MIN_DFS + 2; + if (dm->is_dfs_band) { + if (*dm->band_width == CHANNEL_WIDTH_20){ + if (dm->support_ic_type & + (ODM_RTL8814A | ODM_RTL8812 | ODM_RTL8821 | ODM_RTL8822B)){ + if (odm_get_bb_reg(dm, R_0x8d8, BIT(27)) == 1) + dig_t->dm_dig_min = DIG_MIN_DFS + 2; + else + dig_t->dm_dig_min = DIG_MIN_DFS; + } + else + dig_t->dm_dig_min = DIG_MIN_DFS; + } else dig_t->dm_dig_min = DIG_MIN_DFS; @@ -2526,7 +3133,8 @@ void phydm_tdma_low_dig(void *dm_void) /* @DIG lower bound in L-state*/ tdma_l_dym_min = dig_t->dm_dig_min; - + if (dm->is_dfs_band) + tdma_l_dym_min = DIG_MIN_DFS; /*@ *#ifdef CFG_DIG_DAMPING_CHK *@Limit Dyn min by damping @@ -2596,7 +3204,10 @@ void phydm_tdma_low_dig(void *dm_void) /*Update status*/ if (!(dm->original_dig_restore)) { - dig_t->low_ig_value = tdma_l_igi; + if (dig_t->tdma_force_l_igi == 0xff) + dig_t->low_ig_value = tdma_l_igi; + else + dig_t->low_ig_value = dig_t->tdma_force_l_igi; dig_t->tdma_rx_gain_min[TDMA_DIG_LOW_STATE] = tdma_l_dym_min; dig_t->tdma_rx_gain_max[TDMA_DIG_LOW_STATE] = tdma_l_dym_max; #if 0 @@ -2613,6 +3224,7 @@ void phydm_tdma_high_dig(void *dm_void) struct phydm_dig_struct *dig_t = &dm->dm_dig_table; struct phydm_fa_struct *falm_cnt = &dm->false_alm_cnt; struct phydm_fa_acc_struct *falm_cnt_acc = &dm->false_alm_cnt_acc; + struct phydm_adaptivity_struct *adapt = &dm->adaptivity; #ifdef CFG_DIG_DAMPING_CHK struct phydm_dig_recorder_strcut *dig_rc = &dig_t->dig_recorder_t; #endif @@ -2649,9 +3261,18 @@ void phydm_tdma_high_dig(void *dm_void) if (!dm->is_linked) { dig_t->dm_dig_max = DIG_MAX_COVERAGR; dig_t->dm_dig_min = DIG_MIN_PERFORMANCE; // 0x20 - } else if (dfs_mode_en) { - if (*dm->band_width == CHANNEL_WIDTH_20) - dig_t->dm_dig_min = DIG_MIN_DFS + 2; + } else if (dm->is_dfs_band) { + if (*dm->band_width == CHANNEL_WIDTH_20){ + if (dm->support_ic_type & + (ODM_RTL8814A | ODM_RTL8812 | ODM_RTL8821 | ODM_RTL8822B)){ + if (odm_get_bb_reg(dm, R_0x8d8, BIT(27)) == 1) + dig_t->dm_dig_min = DIG_MIN_DFS + 2; + else + dig_t->dm_dig_min = DIG_MIN_DFS; + } + else + dig_t->dm_dig_min = DIG_MIN_DFS; + } else dig_t->dm_dig_min = DIG_MIN_DFS; @@ -2668,7 +3289,22 @@ void phydm_tdma_high_dig(void *dm_void) #endif } else if (*dm->bb_op_mode == PHYDM_PERFORMANCE_MODE) { /*service 1 devices*/ - dig_t->dm_dig_max = DIG_MAX_PERFORMANCE_MODE; + if (*dm->edcca_mode == PHYDM_EDCCA_ADAPT_MODE && + (dm->support_ic_type & ODM_RTL8192F)) { + /*dig_max shouldn't be too high becaus of adaptivity*/ + dig_t->dm_dig_max = MIN_2((adapt->th_l2h + 30), + DIG_MAX_PERFORMANCE_MODE); + } else { + dig_t->dm_dig_max = DIG_MAX_PERFORMANCE_MODE; + #if (RTL8822B_SUPPORT == 1) + if (dm->is_dig_low_bond) + dig_t->dig_max_of_min = DIG_MAX_OF_MIN_PERFORMANCE_MODE_22B; + else + dig_t->dig_max_of_min = DIG_MAX_OF_MIN_PERFORMANCE_MODE; + #else + dig_t->dig_max_of_min = DIG_MAX_OF_MIN_PERFORMANCE_MODE; + #endif + } dig_t->dig_max_of_min = DIG_MAX_OF_MIN_PERFORMANCE_MODE; } @@ -2698,7 +3334,9 @@ void phydm_tdma_high_dig(void *dm_void) dm->rssi_min, offset); /* @DIG lower bound in H-state*/ - if (rssi_min < dig_t->dm_dig_min) + if (dm->is_dfs_band) + tdma_h_dym_min = DIG_MIN_DFS; + else if (rssi_min < dig_t->dm_dig_min) tdma_h_dym_min = dig_t->dm_dig_min; else tdma_h_dym_min = rssi_min; // turbo not considered yet @@ -2770,7 +3408,10 @@ void phydm_tdma_high_dig(void *dm_void) /*Update status*/ if (!(dm->original_dig_restore)) { - dig_t->cur_ig_value_tdma = tdma_h_igi; + if (dig_t->tdma_force_h_igi == 0xff) + dig_t->cur_ig_value_tdma = tdma_h_igi; + else + dig_t->cur_ig_value_tdma = dig_t->tdma_force_h_igi; dig_t->tdma_rx_gain_min[TDMA_DIG_HIGH_STATE] = tdma_h_dym_min; dig_t->tdma_rx_gain_max[TDMA_DIG_HIGH_STATE] = tdma_h_dym_max; #if 0 @@ -2897,7 +3538,14 @@ void phydm_dig_debug(void *dm_void, char input[][16], u32 *_used, char *output, PDM_SNPF(out_len, used, output + used, out_len - used, "{4} {tdma_dig_state_number = %d}\n", dm->tdma_dig_state_number); + PDM_SNPF(out_len, used, output + used, out_len - used, + "{5} {0:L-state,1:H-state} {force IGI} (L,H)=(%2x,%2x)\n", + dig_t->tdma_force_l_igi, dig_t->tdma_force_h_igi); #endif + PDM_SNPF(out_len, used, output + used, out_len - used, + "{6} {fw_dig_en}\n"); + PDM_SNPF(out_len, used, output + used, out_len - used, + "{7} FA source:{0:original/1:Experimental duration/2:IFS_CLM/3:FAHM}\n"); } else { PHYDM_SSCANF(input[1], DCMD_DECIMAL, &var1[0]); @@ -2907,9 +3555,9 @@ void phydm_dig_debug(void *dm_void, char input[][16], u32 *_used, char *output, if (var1[0] == 0) { if (var1[1] == 1) { dig_t->is_dbg_fa_th = true; - dig_t->fa_th[0] = (u16)var1[2]; - dig_t->fa_th[1] = (u16)var1[3]; - dig_t->fa_th[2] = (u16)var1[4]; + dig_t->fa_th[0] = (u32)var1[2]; + dig_t->fa_th[1] = (u32)var1[3]; + dig_t->fa_th[2] = (u32)var1[4]; PDM_SNPF(out_len, used, output + used, out_len - used, @@ -2939,6 +3587,21 @@ void phydm_dig_debug(void *dm_void, char input[][16], u32 *_used, char *output, PDM_SNPF(out_len, used, output + used, out_len - used, "tdma_dig_state_number = %d\n", dm->tdma_dig_state_number); + } else if (var1[0] == 5) { + PHYDM_SSCANF(input[3], DCMD_HEX, &var1[2]); + if (var1[1] == 0) { + dig_t->tdma_force_l_igi = (u8)var1[2]; + PDM_SNPF(out_len, used, output + used, + out_len - used, + "force L-state IGI = %2x\n", + dig_t->tdma_force_l_igi); + } else if (var1[1] == 1) { + dig_t->tdma_force_h_igi = (u8)var1[2]; + PDM_SNPF(out_len, used, output + used, + out_len - used, + "force H-state IGI = %2x\n", + dig_t->tdma_force_h_igi); + } #endif } @@ -2948,13 +3611,22 @@ void phydm_dig_debug(void *dm_void, char input[][16], u32 *_used, char *output, /*@*/ } #endif + else if (var1[0] == 6) { + phydm_fw_dm_ctrl_en(dm, F00_DIG, (boolean)var1[1]); + PDM_SNPF(out_len, used, output + used, out_len - used, + "fw_dig_enable = %2x\n", dig_t->fw_dig_enable); + } else if (var1[0] == 7) { + dig_t->fa_source = (u8)var1[1]; + PDM_SNPF(out_len, used, output + used, out_len - used, + "FA source = %d\n", dig_t->fa_source); + } } *_used = used; *_out_len = out_len; } #ifdef CONFIG_MCC_DM -#if (RTL8822B_SUPPORT || RTL8822C_SUPPORT) +#if (RTL8822B_SUPPORT || RTL8822C_SUPPORT|| RTL8723F_SUPPORT) void phydm_mcc_igi_clr(void *dm_void, u8 clr_port) { struct dm_struct *dm = (struct dm_struct *)dm_void; @@ -2997,13 +3669,26 @@ void phydm_mcc_igi_cal(void *dm_void) phydm_mcc_igi_chk(dm); igi_val0 = mcc_dm->mcc_rssi[0] - shift; igi_val1 = mcc_dm->mcc_rssi[1] - shift; + + if (igi_val0 < DIG_MIN_PERFORMANCE) + igi_val0 = DIG_MIN_PERFORMANCE; + + if (igi_val1 < DIG_MIN_PERFORMANCE) + igi_val1 = DIG_MIN_PERFORMANCE; + + switch (dm->ic_ip_series) { #ifdef PHYDM_IC_JGR3_SERIES_SUPPORT - phydm_fill_mcccmd(dm, 0, R_0x1d70, igi_val0, igi_val1); - phydm_fill_mcccmd(dm, 1, R_0x1d70 + 1, igi_val0, igi_val1); - #else - phydm_fill_mcccmd(dm, 0, 0xc50, igi_val0, igi_val1); - phydm_fill_mcccmd(dm, 1, 0xe50, igi_val0, igi_val1); + case PHYDM_IC_JGR3: + phydm_fill_mcccmd(dm, 0, R_0x1d70, igi_val0, igi_val1); + phydm_fill_mcccmd(dm, 1, R_0x1d70 + 1, igi_val0, igi_val1); + break; #endif + default: + phydm_fill_mcccmd(dm, 0, R_0xc50, igi_val0, igi_val1); + phydm_fill_mcccmd(dm, 1, R_0xe50, igi_val0, igi_val1); + break; + } + PHYDM_DBG(dm, DBG_COMP_MCC, "RSSI_min: %d %d, MCC_igi: %d %d\n", mcc_dm->mcc_rssi[0], mcc_dm->mcc_rssi[1], mcc_dm->mcc_dm_val[0][0], mcc_dm->mcc_dm_val[0][1]); diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dig.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dig.h index e5d456ab..68b96ad5 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dig.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dig.h @@ -26,11 +26,11 @@ #ifndef __PHYDMDIG_H__ #define __PHYDMDIG_H__ -/*20190701 Refine FA cnt code structure*/ -#define DIG_VERSION "2.8" +/* 2020.08.13 Add IFS-CLM/FAHM in dig fa source for more accurate fa info*/ +#define DIG_VERSION "3.9" #define DIG_HW 0 -#define DIG_LIMIT_PERIOD 60 /*@60 sec*/ +#define DIG_LIMIT_PERIOD 60 /*60 sec*/ /*@--------------------Define ---------------------------------------*/ @@ -52,6 +52,9 @@ #define DIG_MAX_PERFORMANCE_MODE 0x5a #define DIG_MAX_OF_MIN_PERFORMANCE_MODE 0x40 /*@[WLANBB-871]*/ #define DIG_MIN_PERFORMANCE 0x20 +#if (RTL8822B_SUPPORT == 1) +#define DIG_MAX_OF_MIN_PERFORMANCE_MODE_22B 0x38 +#endif /*@DIG DFS function*/ #define DIG_MAX_DFS 0x28 @@ -81,18 +84,29 @@ #define RSSI_OFFSET_DIG_LPS 5 #define DIG_RECORD_NUM 4 -/*@--------------------Enum-----------------------------------*/ -enum dig_goupcheck_level { - DIG_GOUPCHECK_LEVEL_0, - DIG_GOUPCHECK_LEVEL_1, - DIG_GOUPCHECK_LEVEL_2 -}; +/*==== [FA duration] =======================================*/ +/*[PHYDM-406]*/ +#define OFDM_FA_EXP_DURATION 12 /*us*/ +#define CCK_FA_EXP_DURATION 175 /*us*/ +/*@--------------------Enum-----------------------------------*/ enum phydm_dig_mode { PHYDM_DIG_PERFORAMNCE_MODE = 0, PHYDM_DIG_COVERAGE_MODE = 1, }; +enum phydm_dig_trend { + DIG_STABLE = 0, + DIG_INCREASING = 1, + DIG_DECREASING = 2 +}; + +enum phydm_fw_dig_mode_e { + DIG_PERFORMANCE_MODE = 0, + DIG_COVERAGE_MODE = 1, + DIG_LPS_MODE = 2 +}; + #ifdef PHYDM_TDMA_DIG_SUPPORT enum upd_type { ENABLE_TDMA, @@ -142,8 +156,11 @@ struct phydm_dig_struct { struct phydm_dig_recorder_strcut dig_recorder_t; u8 dig_dl_en; /*@damping limit function enable*/ #endif + boolean fw_dig_enable; boolean is_dbg_fa_th; u8 cur_ig_value; + boolean igi_dyn_up_hit; + u8 igi_trend; u32 rvrt_val; /*all rvrt_val for pause API must set to u32*/ u8 igi_backup; u8 rx_gain_range_max; /*@dig_dynamic_max*/ @@ -153,12 +170,14 @@ struct phydm_dig_struct { u8 dig_max_of_min; /*@Absolutly max of min*/ u32 ant_div_rssi_max; u8 *is_p2p_in_process; - enum dig_goupcheck_level go_up_chk_lv; - u16 fa_th[3]; + u32 fa_th[3]; + u32 dm_dig_fa_th1; + u8 fa_source; #if (RTL8822B_SUPPORT || RTL8197F_SUPPORT || RTL8821C_SUPPORT ||\ RTL8198F_SUPPORT || RTL8192F_SUPPORT || RTL8195B_SUPPORT ||\ RTL8822C_SUPPORT || RTL8814B_SUPPORT || RTL8721D_SUPPORT ||\ - RTL8710C_SUPPORT || RTL8812F_SUPPORT || RTL8197G_SUPPORT) + RTL8710C_SUPPORT || RTL8812F_SUPPORT || RTL8197G_SUPPORT ||\ + RTL8723F_SUPPORT) u8 rf_gain_idx; u8 agc_table_idx; u8 big_jump_lmt[16]; @@ -190,6 +209,8 @@ struct phydm_dig_struct { u8 tdma_rx_gain_min[DIG_NUM_OF_TDMA_STATES]; /*To distinguish current state(L-sate or H-state)*/ #endif + u8 tdma_force_l_igi; + u8 tdma_force_h_igi; #endif }; @@ -227,6 +248,9 @@ struct phydm_fa_struct { u32 cnt_crc32_error_all; u32 cnt_crc32_ok_all; u32 time_fa_all; + u32 time_fa_exp; /*FA duration, [PHYDM-406]*/ + u32 time_fa_ifs_clm; /*FA duration, [PHYDM-406]*/ + u32 time_fa_fahm; /*FA duration, [PHYDM-406]*/ boolean cck_block_enable; boolean ofdm_block_enable; u32 dbg_port0; @@ -234,13 +258,19 @@ struct phydm_fa_struct { u8 ofdm2_rate_idx; u32 cnt_ofdm2_crc32_error; u32 cnt_ofdm2_crc32_ok; + u8 ofdm2_pcr; u8 ht2_rate_idx; u32 cnt_ht2_crc32_error; u32 cnt_ht2_crc32_ok; + u8 ht2_pcr; u8 vht2_rate_idx; u32 cnt_vht2_crc32_error; u32 cnt_vht2_crc32_ok; - + u8 vht2_pcr; + u32 cnt_cck_txen; + u32 cnt_cck_txon; + u32 cnt_ofdm_txen; + u32 cnt_ofdm_txon; }; #ifdef PHYDM_TDMA_DIG_SUPPORT @@ -288,6 +318,13 @@ void phydm_set_dig_val(void *dm_void, u32 *val_buf, u8 val_len); void odm_pause_dig(void *dm_void, enum phydm_pause_type pause_type, enum phydm_pause_level pause_level, u8 igi_value); +#ifdef PHYDM_HW_IGI +void phydm_hwigi(void *dm_void); + +void phydm_hwigi_dbg(void *dm_void, char input[][16], u32 *_used, + char *output, u32 *_out_len); +#endif + void phydm_dig_init(void *dm_void); void phydm_dig(void *dm_void); @@ -296,8 +333,14 @@ void phydm_dig_lps_32k(void *dm_void); void phydm_dig_by_rssi_lps(void *dm_void); +void phydm_get_dig_coverage(void *dm_void, u8 *max, u8 *min); + +u8 phydm_get_igi_for_target_pin_scan(void *dm_void, u8 rssi); + void phydm_false_alarm_counter_statistics(void *dm_void); +u32 phydm_get_edcca_report(void * dm_void); + #ifdef PHYDM_TDMA_DIG_SUPPORT void phydm_set_tdma_dig_timer(void *dm_void); @@ -340,12 +383,14 @@ void phydm_set_ofdm_agc_tab(void *dm_void, u8 tab_sel); void phydm_dig_debug(void *dm_void, char input[][16], u32 *_used, char *output, u32 *_out_len); -void phydm_fa_cnt_dbg(void *dm_void, char input[][16], u32 *_used, char *output, - u32 *_out_len); +void phydm_fill_fw_dig_info(void *dm_void, boolean *enable, + u8 *para4, u8 *para8); + +void phydm_crc32_cnt_dbg(void *dm_void, char input[][16], u32 *_used, + char *output, u32 *_out_len); #ifdef CONFIG_MCC_DM void phydm_mcc_igi_cal(void *dm_void); #endif - #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dynamictxpower.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dynamictxpower.c index 9d20c89c..2ccbd1ae 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dynamictxpower.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dynamictxpower.c @@ -318,15 +318,14 @@ phydm_check_paths(void *dm_void) return max_path; } -#ifndef PHYDM_COMMON_API_SUPPORT +#ifdef PHYDM_COMMON_API_NOT_SUPPORT u8 phydm_dtp_get_txagc(void *dm_void, enum rf_path path, u8 hw_rate) { struct dm_struct *dm = (struct dm_struct *)dm_void; u8 ret = 0xff; -#if (RTL8192E_SUPPORT) ret = config_phydm_read_txagc_n(dm, path, hw_rate); -#endif + return ret; } #endif @@ -337,21 +336,27 @@ u8 phydm_search_min_power_index(void *dm_void) enum rf_path path; enum rf_path max_path; u8 min_gain_index = 0x3f; - u8 gain_index; - u8 rate_idx; + u8 gain_index = 0; + u8 i; PHYDM_DBG(dm, DBG_DYN_TXPWR, "%s\n", __func__); max_path = phydm_check_paths(dm); for (path = 0; path <= max_path; path++) - for (rate_idx = 0; rate_idx < 84; rate_idx++) - if (phydm_check_rates(dm, rate_idx)) { -#ifdef PHYDM_COMMON_API_SUPPORT - /*This is for API support IC : 97F,8822B,92F,8821C*/ - gain_index = phydm_api_get_txagc(dm, path, rate_idx); -#else - /*This is for API non-support IC : 92E */ - gain_index = phydm_dtp_get_txagc(dm, path, rate_idx); -#endif + for (i = 0; i < 84; i++) + if (phydm_check_rates(dm, i)) { + + if (dm->support_ic_type & PHYDM_COMMON_API_IC) { + #ifdef PHYDM_COMMON_API_SUPPORT + /*97F,8822B,92F,8821C*/ + gain_index = phydm_api_get_txagc(dm, path, i); + #endif + } else { + /*92E*/ + #ifdef PHYDM_COMMON_API_NOT_SUPPORT + gain_index = phydm_dtp_get_txagc(dm, path, i); + #endif + } + if (gain_index == 0xff) { min_gain_index = 0x20; PHYDM_DBG(dm, DBG_DYN_TXPWR, @@ -361,7 +366,7 @@ u8 phydm_search_min_power_index(void *dm_void) } PHYDM_DBG(dm, DBG_DYN_TXPWR, "Support Rate: ((%d)) -> Gain idx: ((%d))\n", - rate_idx, gain_index); + i, gain_index); if (gain_index < min_gain_index) min_gain_index = gain_index; } @@ -418,34 +423,45 @@ void phydm_noisy_enhance_hp_th(void *dm_void, u8 noisy_state) dm->enhance_pwr_th[2]); } -u8 phydm_pwr_lvl_check(void *dm_void, u8 input_rssi) +u8 phydm_pwr_lvl_check(void *dm_void, u8 input_rssi, u8 last_pwr_lv) { struct dm_struct *dm = (struct dm_struct *)dm_void; - u8 th0, th1, th2; + u8 th[DTP_POWER_LEVEL_SIZE]; + u8 i; if (dm->support_ic_type & ODM_IC_JGR3_SERIES) { - th2 = dm->set_pwr_th[2]; - th1 = dm->set_pwr_th[1]; - th0 = dm->set_pwr_th[0]; + for (i = 0; i < DTP_POWER_LEVEL_SIZE; i++) + th[i] = dm->set_pwr_th[i]; + PHYDM_DBG(dm, DBG_DYN_TXPWR, - "DTP th: Lv1_th = %d, Lv2_th = %d, Lv3_th = %d\n", - th0, th1, th2); + "Ori-DTP th: Lv1_th = %d, Lv2_th = %d, Lv3_th = %d\n", + th[0], th[1], th[2]); + + for (i = 0; i < DTP_POWER_LEVEL_SIZE; i++) { + if (i >= (last_pwr_lv)) + th[i] += DTP_FLOOR_UP_GAP; + } + + PHYDM_DBG(dm, DBG_DYN_TXPWR, + "Mod-DTP th: Lv1_th = %d, Lv2_th = %d, Lv3_th = %d\n", + th[0], th[1], th[2]); } else { - th2 = dm->enhance_pwr_th[2]; - th1 = dm->enhance_pwr_th[1]; - th0 = dm->enhance_pwr_th[0]; + for (i = 0; i < DTP_POWER_LEVEL_SIZE; i++) + th[i] = dm->enhance_pwr_th[i]; + for (i = 0; i < DTP_POWER_LEVEL_SIZE; i++) { + if (i >= (last_pwr_lv)) + th[i] += DTP_FLOOR_UP_GAP; + } } - if (input_rssi >= th2) + if (input_rssi >= th[2]) return tx_high_pwr_level_level3; - else if (input_rssi < (th2 - 3) && input_rssi >= th1) + else if (input_rssi < th[2] && input_rssi >= th[1]) return tx_high_pwr_level_level2; - else if (input_rssi < (th1 - 3) && input_rssi >= th0) + else if (input_rssi < th[1] && input_rssi >= th[0]) return tx_high_pwr_level_level1; - else if (input_rssi < (th0 - 3)) - return tx_high_pwr_level_normal; else - return tx_high_pwr_level_unchange; + return tx_high_pwr_level_normal; } u8 phydm_pwr_lv_mapping(u8 tx_pwr_lv) @@ -468,8 +484,7 @@ void phydm_dynamic_response_power(void *dm_void) if (!(dm->support_ability & ODM_BB_DYNAMIC_TXPWR)) return; - if (dm->dynamic_tx_high_power_lvl == tx_high_pwr_level_unchange) { - dm->dynamic_tx_high_power_lvl = dm->last_dtp_lvl; + if (dm->dynamic_tx_high_power_lvl == dm->last_dtp_lvl) { PHYDM_DBG(dm, DBG_DYN_TXPWR, "RespPwr not change\n"); return; } @@ -506,10 +521,15 @@ void phydm_dtp_per_sta(void *dm_void) struct cmn_sta_info *sta = NULL; struct dtp_info *dtp = NULL; struct rssi_info *rssi = NULL; + struct phydm_bb_ram_ctrl *bb_ctrl = &dm->p_bb_ram_ctrl; u8 sta_cnt = 0; u8 i = 0; u8 curr_pwr_lv = 0; u8 last_pwr_lv = 0; + u8 mac_id_cnt = 0; + u64 macid_cur = 0; + u64 macid_diff = 0; + u64 macid_mask = 0; for (i = 0; i < ODM_ASSOCIATE_ENTRY_NUM; i++) { sta = dm->phydm_sta_info[i]; @@ -518,43 +538,64 @@ void phydm_dtp_per_sta(void *dm_void) dtp = &sta->dtp_stat; rssi = &sta->rssi_stat; + macid_mask = (u64)BIT(sta->mac_id); + if (!(bb_ctrl->macid_is_linked & macid_mask)) + dtp->sta_last_dtp_lvl = tx_high_pwr_level_normal; + last_pwr_lv = dtp->sta_last_dtp_lvl; - curr_pwr_lv = phydm_pwr_lvl_check(dm, rssi->rssi); + curr_pwr_lv = phydm_pwr_lvl_check(dm, rssi->rssi, + last_pwr_lv); dtp->sta_tx_high_power_lvl = curr_pwr_lv; PHYDM_DBG(dm, DBG_DYN_TXPWR, "STA_id=%d, MACID=%d , RSSI: %d , GetPwrLv: %d\n", i, sta->mac_id, rssi->rssi, curr_pwr_lv); - if (curr_pwr_lv == tx_high_pwr_level_unchange || - curr_pwr_lv == last_pwr_lv) { + bb_ctrl->macid_is_linked |= macid_mask; + macid_cur |= macid_mask; + PHYDM_DBG(dm, DBG_DYN_TXPWR, + "macid_is_linked: (0x%llx), macid_cur: (0x%llx)\n", + bb_ctrl->macid_is_linked, macid_cur); + + if (curr_pwr_lv == last_pwr_lv && dtp->sta_is_alive) { dtp->sta_tx_high_power_lvl = last_pwr_lv; PHYDM_DBG(dm, DBG_DYN_TXPWR, "DTP_lv not change: ((%d))\n", curr_pwr_lv); - return; - } + } else { + PHYDM_DBG(dm, DBG_DYN_TXPWR, + "DTP_lv update: ((%d)) -> ((%d))\n", + last_pwr_lv, curr_pwr_lv); - PHYDM_DBG(dm, DBG_DYN_TXPWR, - "DTP_lv update: ((%d)) -> ((%d))\n", - last_pwr_lv, curr_pwr_lv); + dtp->sta_last_dtp_lvl = curr_pwr_lv; - dtp->sta_last_dtp_lvl = curr_pwr_lv; - - switch (dm->ic_ip_series) { - #ifdef BB_RAM_SUPPORT - case PHYDM_IC_JGR3: - phydm_dtp_fill_cmninfo_2nd(dm, i, curr_pwr_lv); - break; - #endif - default: - phydm_dtp_fill_cmninfo(dm, i, curr_pwr_lv); - break; + switch (dm->ic_ip_series) { + #ifdef BB_RAM_SUPPORT + case PHYDM_IC_JGR3: + phydm_dtp_fill_cmninfo_2nd(dm, i, curr_pwr_lv); + break; + #endif + default: + phydm_dtp_fill_cmninfo(dm, i, curr_pwr_lv); + break; + } + if(!dtp->sta_is_alive) + dtp->sta_is_alive = true; } if (sta_cnt == dm->number_linked_client) break; } } + + macid_diff = bb_ctrl->macid_is_linked ^ macid_cur; + if (macid_diff) + bb_ctrl->macid_is_linked &= ~macid_diff; + while (macid_diff) { + if (macid_diff & 0x1) + phydm_pwr_lv_ctrl(dm, mac_id_cnt, tx_high_pwr_level_normal); + mac_id_cnt++; + macid_diff >>= 1; + } } void odm_set_dyntxpwr(void *dm_void, u8 *desc, u8 sta_id) @@ -690,7 +731,8 @@ void phydm_dynamic_tx_power(void *dm_void) phydm_noisy_enhance_hp_th(dm, dm->noisy_decision); /* Response Power */ dm->dynamic_tx_high_power_lvl = phydm_pwr_lvl_check(dm, - rssi_min); + rssi_min, + dm->last_dtp_lvl); phydm_dynamic_response_power(dm); } /* Per STA Tx power */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dynamictxpower.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dynamictxpower.h index 2cd87321..88be431f 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dynamictxpower.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dynamictxpower.h @@ -32,9 +32,11 @@ * ============================================================ */ -/* 2019.6.14, Modify per sta API to fix the AP problem of early return*/ +/* 2020.6.23, Let gain_idx be initialized to 0 for linux compile warning*/ #define DYNAMIC_TXPWR_VERSION "2.1" +#define DTP_POWER_LEVEL_SIZE 3 + #if (DM_ODM_SUPPORT_TYPE == ODM_AP) #define TX_POWER_NEAR_FIELD_THRESH_LVL2 74 #define TX_POWER_NEAR_FIELD_THRESH_LVL1 60 @@ -48,9 +50,9 @@ #endif #if (DM_ODM_SUPPORT_TYPE == ODM_AP) -#define TX_PWR_NEAR_FIELD_TH_JGR3_LVL3 255 -#define TX_PWR_NEAR_FIELD_TH_JGR3_LVL2 74 -#define TX_PWR_NEAR_FIELD_TH_JGR3_LVL1 60 +#define TX_PWR_NEAR_FIELD_TH_JGR3_LVL3 80 +#define TX_PWR_NEAR_FIELD_TH_JGR3_LVL2 63 +#define TX_PWR_NEAR_FIELD_TH_JGR3_LVL1 55 #elif (DM_ODM_SUPPORT_TYPE == ODM_WIN) #define TX_PWR_NEAR_FIELD_TH_JGR3_LVL3 90 #define TX_PWR_NEAR_FIELD_TH_JGR3_LVL2 85 @@ -66,6 +68,7 @@ #define tx_high_pwr_level_level2 2 #define tx_high_pwr_level_level3 3 #define tx_high_pwr_level_unchange 4 +#define DTP_FLOOR_UP_GAP 3 /* @============================================================ * enumrate diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_features.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_features.h index f37f5589..bbbc9eda 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_features.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_features.h @@ -39,6 +39,7 @@ #define ODM_DYM_BW_INDICATION_SUPPORT (ODM_RTL8821C | \ ODM_RTL8822B | \ ODM_RTL8822C) + /*@20170103 YuChen add for FW API*/ #define PHYDM_FW_API_ENABLE_8822B 1 #define PHYDM_FW_API_FUNC_ENABLE_8822B 1 @@ -56,6 +57,8 @@ #define PHYDM_FW_API_FUNC_ENABLE_8812F 1 #define PHYDM_FW_API_ENABLE_8197G 1 #define PHYDM_FW_API_FUNC_ENABLE_8197G 1 +#define PHYDM_FW_API_ENABLE_8723F 1 +#define PHYDM_FW_API_FUNC_ENABLE_8723F 1 #define CONFIG_POWERSAVING 0 diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_features_ap.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_features_ap.h index 5c2850a3..ce422991 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_features_ap.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_features_ap.h @@ -19,7 +19,7 @@ #if (RTL8814A_SUPPORT || RTL8821C_SUPPORT || RTL8822B_SUPPORT ||\ RTL8197F_SUPPORT || RTL8192F_SUPPORT || RTL8198F_SUPPORT ||\ RTL8822C_SUPPORT || RTL8812F_SUPPORT || RTL8814B_SUPPORT ||\ - RTL8197G_SUPPORT) + RTL8197G_SUPPORT || RTL8723F_SUPPORT) #define PHYDM_LA_MODE_SUPPORT 1 #else #define PHYDM_LA_MODE_SUPPORT 0 @@ -30,12 +30,21 @@ #define DYN_ANT_WEIGHTING_SUPPORT #endif -#if (RTL8822B_SUPPORT || RTL8821C_SUPPORT) +#if (RTL8822B_SUPPORT || RTL8198F_SUPPORT || RTL8814B_SUPPORT ||\ + RTL8197G_SUPPORT || RTL8812F_SUPPORT || RTL8723F_SUPPORT) #define FAHM_SUPPORT #endif + +#if (RTL8197G_SUPPORT || RTL8812F_SUPPORT || RTL8723F_SUPPORT) + #define IFS_CLM_SUPPORT +#endif #define NHM_SUPPORT #define CLM_SUPPORT +#if (RTL8197G_SUPPORT || RTL8812F_SUPPORT) + #define EDCCA_CLM_SUPPORT +#endif + #if (RTL8812F_SUPPORT) /*#define PHYDM_PHYSTAUS_AUTO_SWITCH*/ #endif @@ -45,7 +54,7 @@ #endif #if (RTL8198F_SUPPORT || RTL8814B_SUPPORT || RTL8812F_SUPPORT ||\ - RTL8197G_SUPPORT) + RTL8197G_SUPPORT || RTL8723F_SUPPORT) #define PHYDM_TDMA_DIG_SUPPORT 1 #ifdef PHYDM_TDMA_DIG_SUPPORT #define IS_USE_NEW_TDMA /*new tdma dig test*/ @@ -76,12 +85,12 @@ #endif #if (RTL8814B_SUPPORT || RTL8198F_SUPPORT || RTL8822C_SUPPORT ||\ - RTL8812F_SUPPORT || RTL8197G_SUPPORT) + RTL8812F_SUPPORT || RTL8197G_SUPPORT || RTL8723F_SUPPORT) #define PHYDM_PMAC_TX_SETTING_SUPPORT #endif #if (RTL8814B_SUPPORT || RTL8198F_SUPPORT || RTL8822C_SUPPORT ||\ - RTL8812F_SUPPORT || RTL8197G_SUPPORT) + RTL8812F_SUPPORT || RTL8197G_SUPPORT || RTL8723F_SUPPORT) #define PHYDM_MP_SUPPORT #endif @@ -123,6 +132,14 @@ #define CONFIG_DYNAMIC_TX_TWR #endif +#if (RTL8197G_SUPPORT || RTL8812F_SUPPORT) + #define PHYDM_HW_IGI +#endif + +#if (RTL8197G_SUPPORT || RTL8812F_SUPPORT) + #define CONFIG_DYNAMIC_TXCOLLISION_TH +#endif + /*#define CONFIG_PSD_TOOL*/ #define PHYDM_SUPPORT_CCKPD #define PHYDM_SUPPORT_ADAPTIVITY @@ -144,7 +161,7 @@ #endif #endif -#if defined(CONFIG_RTL_8881A_ANT_SWITCH) || defined(CONFIG_SLOT_0_ANT_SWITCH) || defined(CONFIG_SLOT_1_ANT_SWITCH) || defined(CONFIG_RTL_8197F_ANT_SWITCH) +#if defined(CONFIG_RTL_8881A_ANT_SWITCH) || defined(CONFIG_SLOT_0_ANT_SWITCH) || defined(CONFIG_SLOT_1_ANT_SWITCH) || defined(CONFIG_RTL_8197F_ANT_SWITCH) || defined(CONFIG_RTL_8197G_ANT_SWITCH) #define CONFIG_PHYDM_ANTENNA_DIVERSITY #define ODM_EVM_ENHANCE_ANTDIV /*#define SKIP_EVM_ANTDIV_TRAINING_PATCH*/ @@ -158,6 +175,15 @@ #define CONFIG_2G_CG_TRX_DIVERSITY #endif + /*----------*/ + #ifdef CONFIG_NO_2G_DIVERSITY_8197G + #define CONFIG_NO_2G_DIVERSITY + #elif defined(CONFIG_2G_CGCS_RX_DIVERSITY_8197G) + #define CONFIG_2G_CGCS_RX_DIVERSITY + #elif defined(CONFIG_2G_CG_TRX_DIVERSITY_8197G) + #define CONFIG_2G_CG_TRX_DIVERSITY + #endif + #if (!defined(CONFIG_NO_2G_DIVERSITY) && !defined(CONFIG_2G5G_CG_TRX_DIVERSITY_8881A) && !defined(CONFIG_2G_CGCS_RX_DIVERSITY) && !defined(CONFIG_2G_CG_TRX_DIVERSITY) && !defined(CONFIG_2G_CG_SMART_ANT_DIVERSITY)) #define CONFIG_NO_2G_DIVERSITY #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_features_ce.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_features_ce.h index c8c0de1d..9dc238af 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_features_ce.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_features_ce.h @@ -28,7 +28,7 @@ #if (RTL8814A_SUPPORT || RTL8821C_SUPPORT || RTL8822B_SUPPORT ||\ RTL8197F_SUPPORT || RTL8192F_SUPPORT || RTL8198F_SUPPORT ||\ - RTL8822C_SUPPORT) + RTL8822C_SUPPORT || RTL8723F_SUPPORT) #define PHYDM_LA_MODE_SUPPORT 1 #else #define PHYDM_LA_MODE_SUPPORT 0 @@ -39,12 +39,21 @@ #define DYN_ANT_WEIGHTING_SUPPORT #endif -#if (RTL8822B_SUPPORT || RTL8821C_SUPPORT) +#if (RTL8822B_SUPPORT || RTL8821C_SUPPORT || RTL8822C_SUPPORT ||\ + RTL8814B_SUPPORT || RTL8723F_SUPPORT) #define FAHM_SUPPORT #endif + +#if (RTL8822C_SUPPORT || RTL8723F_SUPPORT) + #define IFS_CLM_SUPPORT +#endif #define NHM_SUPPORT #define CLM_SUPPORT +#if (RTL8822C_SUPPORT || RTL8723F_SUPPORT) + #define EDCCA_CLM_SUPPORT +#endif + #if (RTL8822C_SUPPORT) #define NHM_DYM_PW_TH_SUPPORT #endif @@ -56,7 +65,7 @@ /*@#define PHYDM_TDMA_DIG_SUPPORT*/ #if (RTL8822B_SUPPORT || RTL8192F_SUPPORT || RTL8821C_SUPPORT ||\ - RTL8822C_SUPPORT || RTL8723D_SUPPORT) + RTL8822C_SUPPORT || RTL8723D_SUPPORT ) #ifdef CONFIG_TDMADIG #define PHYDM_TDMA_DIG_SUPPORT #ifdef PHYDM_TDMA_DIG_SUPPORT @@ -90,15 +99,15 @@ #endif #endif -#if (RTL8822B_SUPPORT || RTL8192F_SUPPORT) +#if (RTL8822B_SUPPORT || RTL8192F_SUPPORT || RTL8723D_SUPPORT) #define PHYDM_POWER_TRAINING_SUPPORT #endif -#if (RTL8822C_SUPPORT || RTL8814B_SUPPORT) +#if (RTL8822C_SUPPORT || RTL8814B_SUPPORT || RTL8723F_SUPPORT) #define PHYDM_PMAC_TX_SETTING_SUPPORT #endif -#if (RTL8822C_SUPPORT || RTL8814B_SUPPORT) +#if (RTL8822C_SUPPORT || RTL8814B_SUPPORT || RTL8723F_SUPPORT) #define PHYDM_MP_SUPPORT #endif @@ -142,6 +151,9 @@ #ifdef CONFIG_SUPPORT_DYNAMIC_TXPWR #define CONFIG_DYNAMIC_TX_TWR #endif +#if (RTL8822C_SUPPORT) +#define PHYDM_HW_IGI +#endif #define PHYDM_SUPPORT_CCKPD #define PHYDM_SUPPORT_ADAPTIVITY @@ -153,7 +165,7 @@ #if (RTL8723B_SUPPORT || RTL8821A_SUPPORT ||\ RTL8188F_SUPPORT || RTL8821C_SUPPORT ||\ - RTL8723D_SUPPORT) + RTL8723D_SUPPORT||RTL8723F_SUPPORT) #define CONFIG_S0S1_SW_ANTENNA_DIVERSITY #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_features_iot.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_features_iot.h index 59afe793..5d2231cd 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_features_iot.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_features_iot.h @@ -45,6 +45,10 @@ #define NHM_SUPPORT #define CLM_SUPPORT +#if (RTL8197G_SUPPORT || RTL8812F_SUPPORT) + #define EDCCA_CLM_SUPPORT +#endif + /*#define PHYDM_TDMA_DIG_SUPPORT*/ #if (RTL8197F_SUPPORT || RTL8822B_SUPPORT) @@ -114,10 +118,14 @@ #ifdef CONFIG_PHYDM_ANTENNA_DIVERSITY #if (RTL8723B_SUPPORT || RTL8821A_SUPPORT ||\ - RTL8188F_SUPPORT || RTL8821C_SUPPORT) + RTL8188F_SUPPORT || RTL8821C_SUPPORT || RTL8195B_SUPPORT) #define CONFIG_S0S1_SW_ANTENNA_DIVERSITY #endif - + + #if (RTL8710C_SUPPORT) + //#define CONFIG_S0S1_SW_ANTENNA_DIVERSITY + #endif + #if (RTL8821A_SUPPORT) /*#define CONFIG_HL_SMART_ANTENNA_TYPE1*/ #endif @@ -150,7 +158,9 @@ /*#define CONFIG_PATH_DIVERSITY*/ /*#define CONFIG_RA_DYNAMIC_RTY_LIMIT*/ //#define CONFIG_BB_TXBF_API +#if DBG #define CONFIG_PHYDM_DEBUG_FUNCTION +#endif #ifdef CONFIG_BT_COEXIST #define ODM_CONFIG_BT_COEXIST diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_features_win.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_features_win.h index d365d29a..06147682 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_features_win.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_features_win.h @@ -18,7 +18,7 @@ #if (RTL8814A_SUPPORT || RTL8821C_SUPPORT || RTL8822B_SUPPORT ||\ RTL8197F_SUPPORT || RTL8192F_SUPPORT || RTL8198F_SUPPORT ||\ - RTL8822C_SUPPORT || RTL8814B_SUPPORT) + RTL8822C_SUPPORT || RTL8814B_SUPPORT || RTL8723F_SUPPORT) #define PHYDM_LA_MODE_SUPPORT 1 #else #define PHYDM_LA_MODE_SUPPORT 0 @@ -29,12 +29,21 @@ #define DYN_ANT_WEIGHTING_SUPPORT #endif -#if (RTL8822B_SUPPORT || RTL8821C_SUPPORT) +#if (RTL8822B_SUPPORT || RTL8821C_SUPPORT || RTL8822C_SUPPORT ||\ + RTL8814B_SUPPORT || RTL8723F_SUPPORT) #define FAHM_SUPPORT #endif + +#if (RTL8822C_SUPPORT || RTL8723F_SUPPORT) + #define IFS_CLM_SUPPORT +#endif #define NHM_SUPPORT #define CLM_SUPPORT +#if (RTL8822C_SUPPORT || RTL8723F_SUPPORT) + #define EDCCA_CLM_SUPPORT +#endif + #if (RTL8822C_SUPPORT) #define NHM_DYM_PW_TH_SUPPORT #endif @@ -75,11 +84,11 @@ #define PHYDM_POWER_TRAINING_SUPPORT #endif -#if (RTL8822C_SUPPORT || RTL8814B_SUPPORT) +#if (RTL8822C_SUPPORT || RTL8814B_SUPPORT || RTL8723F_SUPPORT) #define PHYDM_PMAC_TX_SETTING_SUPPORT #endif -#if (RTL8822C_SUPPORT || RTL8814B_SUPPORT) +#if (RTL8822C_SUPPORT || RTL8814B_SUPPORT || RTL8723F_SUPPORT) #define PHYDM_MP_SUPPORT #endif @@ -168,9 +177,15 @@ /* #ifdef CONFIG_SUPPORT_DYNAMIC_TXPWR */ #define CONFIG_DYNAMIC_TX_TWR /* #endif */ +#if (RTL8822C_SUPPORT) +#define PHYDM_HW_IGI +#endif #define CONFIG_PSD_TOOL #define PHYDM_SUPPORT_ADAPTIVITY #define PHYDM_SUPPORT_CCKPD +#if (defined(PHYDM_SUPPORT_CCKPD) && RTL8822C_SUPPORT) + #define PHYDM_DCC_ENHANCE +#endif /*#define CONFIG_RA_DYNAMIC_RTY_LIMIT*/ #define CONFIG_ANT_DETECTION #define CONFIG_BB_TXBF_API diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_hwconfig.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_hwconfig.c index c961bfc7..11702b28 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_hwconfig.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_hwconfig.c @@ -251,6 +251,8 @@ odm_config_rf_with_header_file(struct dm_struct *dm, READ_AND_CONFIG_MP(8822b, _txpwr_lmt_type17); else if (dm->rfe_type == 18) READ_AND_CONFIG_MP(8822b, _txpwr_lmt_type18); + //else if (dm->rfe_type == 19) + //READ_AND_CONFIG_MP(8822b, _txpwr_lmt_type19); else READ_AND_CONFIG_MP(8822b, _txpwr_lmt); } @@ -403,21 +405,6 @@ odm_config_rf_with_header_file(struct dm_struct *dm, } } #endif -/*#if (RTL8814B_SUPPORT == 1) - if (dm->support_ic_type == ODM_RTL8814B) { - if (config_type == CONFIG_RF_RADIO) { - if (e_rf_path == RF_PATH_A) - READ_AND_CONFIG_MP(8814b, _radioa); - else if (e_rf_path == RF_PATH_B) - READ_AND_CONFIG_MP(8814b, _radiob); - else if (e_rf_path == RF_PATH_C) - READ_AND_CONFIG_MP(8814b, _radioc); - else if (e_rf_path == RF_PATH_D) - READ_AND_CONFIG_MP(8814b, _radiod); - } - } -#endif -*/ #if (RTL8822C_SUPPORT) if (dm->support_ic_type == ODM_RTL8822C) { if (config_type == CONFIG_RF_RADIO) { @@ -428,6 +415,18 @@ odm_config_rf_with_header_file(struct dm_struct *dm, } } #endif +#if (RTL8723F_SUPPORT) + if (dm->support_ic_type == ODM_RTL8723F) { + if (config_type == CONFIG_RF_RADIO) { + if (e_rf_path == RF_PATH_A) + READ_AND_CONFIG_MP(8723f, _radioa); + else if (e_rf_path == RF_PATH_B) + READ_AND_CONFIG_MP(8723f, _radiob); + } else if (config_type == CONFIG_RF_TXPWR_LMT) { + READ_AND_CONFIG_MP(8723f, _txpwr_lmt); + } + } +#endif #if (RTL8812F_SUPPORT) if (dm->support_ic_type == ODM_RTL8812F) { if (config_type == CONFIG_RF_RADIO) { @@ -449,8 +448,8 @@ odm_config_rf_with_header_file(struct dm_struct *dm, } #endif - /*8814B need review, when phydm has related files*/ - #if (RTL8814B_SUPPORT) +/*8814B need review, when phydm has related files*/ +#if (RTL8814B_SUPPORT) if (dm->support_ic_type == ODM_RTL8814B) { if (config_type == CONFIG_RF_RADIO) { if (e_rf_path == RF_PATH_A) @@ -471,7 +470,29 @@ odm_config_rf_with_header_file(struct dm_struct *dm, READ_AND_CONFIG_MP(8814b, _txpwr_lmt); } } - #endif +#endif +#if (RTL8814C_SUPPORT) + if (dm->support_ic_type == ODM_RTL8814C) { + if (config_type == CONFIG_RF_RADIO) { + if (e_rf_path == RF_PATH_A) + READ_AND_CONFIG_MP(8814c, _radioa); + else if (e_rf_path == RF_PATH_B) + READ_AND_CONFIG_MP(8814c, _radiob); + else if (e_rf_path == RF_PATH_C) + READ_AND_CONFIG_MP(8814c, _radioc); + else if (e_rf_path == RF_PATH_D) + READ_AND_CONFIG_MP(8814c, _radiod); + } + if (config_type == CONFIG_RF_SYN_RADIO) { + if (e_rf_path == RF_SYN0) + READ_AND_CONFIG_MP(8814c, _radiosyn0); + else if (e_rf_path == RF_SYN1) + READ_AND_CONFIG_MP(8814c, _radiosyn1); + } else if (config_type == CONFIG_RF_TXPWR_LMT) { + READ_AND_CONFIG_MP(8814c, _txpwr_lmt); + } + } +#endif if (config_type == CONFIG_RF_RADIO) { if (dm->fw_offload_ability & PHYDM_PHY_PARAM_OFFLOAD) { @@ -661,6 +682,8 @@ odm_config_rf_with_tx_pwr_track_header_file(struct dm_struct *dm) READ_AND_CONFIG_MP(8822b, _txpowertrack_type17); else if (dm->rfe_type == 18) READ_AND_CONFIG_MP(8822b, _txpowertrack_type18); + //else if (dm->rfe_type == 19) + //READ_AND_CONFIG_MP(8822b, _txpowertrack_type19); else READ_AND_CONFIG_MP(8822b, _txpowertrack); } @@ -820,6 +843,15 @@ odm_config_rf_with_tx_pwr_track_header_file(struct dm_struct *dm) } #endif +#if (RTL8723F_SUPPORT) + if (dm->support_ic_type == ODM_RTL8723F) { + if (dm->en_tssi_mode) + READ_AND_CONFIG_MP(8723f, _txpowertracktssi); + else + READ_AND_CONFIG_MP(8723f, _txpowertrack); + READ_AND_CONFIG_MP(8723f, _txxtaltrack); + } +#endif #if (RTL8812F_SUPPORT) if (dm->support_ic_type == ODM_RTL8812F) { if (dm->rfe_type == 0) @@ -832,6 +864,8 @@ odm_config_rf_with_tx_pwr_track_header_file(struct dm_struct *dm) READ_AND_CONFIG_MP(8812f, _txpowertrack_type3); else if (dm->rfe_type == 4) READ_AND_CONFIG_MP(8812f, _txpowertrack_type4); + else if (dm->rfe_type == 5) + READ_AND_CONFIG_MP(8812f, _txpowertrack_type5); else READ_AND_CONFIG_MP(8812f, _txpowertrack); } @@ -842,7 +876,7 @@ odm_config_rf_with_tx_pwr_track_header_file(struct dm_struct *dm) READ_AND_CONFIG_MP(8197g, _txpowertrack); #endif -#if RTL8814B_SUPPORT +#if (RTL8814B_SUPPORT) if (dm->support_ic_type == ODM_RTL8814B) { if (dm->rfe_type == 0) READ_AND_CONFIG_MP(8814b, _txpowertrack_type0); @@ -858,7 +892,19 @@ odm_config_rf_with_tx_pwr_track_header_file(struct dm_struct *dm) #endif else READ_AND_CONFIG_MP(8814b, _txpowertrack); - } + } +#endif +#if (RTL8814C_SUPPORT) + if (dm->support_ic_type == ODM_RTL8814C) { + if (dm->rfe_type == 0) + READ_AND_CONFIG_MP(8814c, _txpowertrack_type0); + else if (dm->rfe_type == 1) + READ_AND_CONFIG_MP(8814c, _txpowertrack_type1); + else if (dm->rfe_type == 2) + READ_AND_CONFIG_MP(8814c, _txpowertrack_type2); + else + READ_AND_CONFIG_MP(8814c, _txpowertrack); + } #endif return HAL_STATUS_SUCCESS; @@ -1069,6 +1115,8 @@ odm_config_bb_with_header_file(struct dm_struct *dm, READ_AND_CONFIG_MP(8822b, _phy_reg_pg_type17); else if (dm->rfe_type == 18) READ_AND_CONFIG_MP(8822b, _phy_reg_pg_type18); + //else if (dm->rfe_type == 19) + //READ_AND_CONFIG_MP(8822b, _phy_reg_pg_type19); else READ_AND_CONFIG_MP(8822b, _phy_reg_pg); } @@ -1227,12 +1275,18 @@ odm_config_bb_with_header_file(struct dm_struct *dm, #endif #if (RTL8195B_SUPPORT == 1) if (dm->support_ic_type == ODM_RTL8195B) { - if (config_type == CONFIG_BB_PHY_REG) + if (config_type == CONFIG_BB_PHY_REG) { READ_AND_CONFIG(8195b, _phy_reg); - else if (config_type == CONFIG_BB_AGC_TAB) + } else if (config_type == CONFIG_BB_AGC_TAB) { READ_AND_CONFIG(8195b, _agc_tab); - else if (config_type == CONFIG_BB_PHY_REG_PG) + } else if (config_type == CONFIG_BB_PHY_REG_PG) { READ_AND_CONFIG(8195b, _phy_reg_pg); + } else if (config_type == CONFIG_BB_PHY_REG_MP) { + if (dm->package_type == 1) + odm_set_bb_reg(dm, R_0xaa8, 0x1f0000, 0x10); + else + odm_set_bb_reg(dm, R_0xaa8, 0x1f0000, 0x12); + } } #endif #if (RTL8198F_SUPPORT == 1) @@ -1257,6 +1311,20 @@ odm_config_bb_with_header_file(struct dm_struct *dm, } } #endif +#if (RTL8814C_SUPPORT == 1) + if (dm->support_ic_type == ODM_RTL8814C) { + if (config_type == CONFIG_BB_PHY_REG) + READ_AND_CONFIG_MP(8814c, _phy_reg); + else if (config_type == CONFIG_BB_AGC_TAB) + READ_AND_CONFIG_MP(8814c, _agc_tab); + else if (config_type == CONFIG_BB_PHY_REG_PG) { + if (dm->rfe_type == 1) + READ_AND_CONFIG(8814c, _phy_reg_pg_type1); + else + READ_AND_CONFIG(8814c, _phy_reg_pg); + } + } +#endif #if (RTL8822C_SUPPORT) if (dm->support_ic_type == ODM_RTL8822C) { if (config_type == CONFIG_BB_PHY_REG) @@ -1267,6 +1335,16 @@ odm_config_bb_with_header_file(struct dm_struct *dm, READ_AND_CONFIG(8822c, _phy_reg_pg); } #endif +#if (RTL8723F_SUPPORT) + if (dm->support_ic_type == ODM_RTL8723F) { + if (config_type == CONFIG_BB_PHY_REG) + READ_AND_CONFIG_MP(8723f, _phy_reg); + else if (config_type == CONFIG_BB_AGC_TAB) + READ_AND_CONFIG_MP(8723f, _agc_tab); + else if (config_type == CONFIG_BB_PHY_REG_PG) + READ_AND_CONFIG(8723f, _phy_reg_pg); + } +#endif #if (RTL8812F_SUPPORT) if (dm->support_ic_type == ODM_RTL8812F) { if (config_type == CONFIG_BB_PHY_REG) @@ -1316,9 +1394,8 @@ odm_config_mac_with_header_file(struct dm_struct *dm) "support_platform: 0x%X, support_interface: 0x%X, board_type: 0x%X\n", dm->support_platform, dm->support_interface, dm->board_type); -#if (RTL8822C_SUPPORT || RTL8812F_SUPPORT || RTL8814B_SUPPORT) - if (dm->support_ic_type & - (ODM_RTL8822C | ODM_RTL8812F | ODM_RTL8814B)) { +#ifdef PHYDM_IC_HALMAC_PARAM_SUPPORT + if (dm->support_ic_type & PHYDM_IC_SUPPORT_HALMAC_PARAM_OFFLOAD) { PHYDM_DBG(dm, ODM_COMP_INIT, "MAC para-package in HALMAC\n"); return result; } @@ -1540,10 +1617,20 @@ u32 odm_get_hw_img_version(struct dm_struct *dm) version = odm_get_version_mp_8197g_phy_reg(); break; #endif +#if (RTL8723F_SUPPORT) + case ODM_RTL8723F: + version = odm_get_version_mp_8723f_phy_reg(); + break; +#endif #if (RTL8814B_SUPPORT) case ODM_RTL8814B: version = odm_get_version_mp_8814b_phy_reg(); break; +#endif +#if (RTL8814C_SUPPORT) + case ODM_RTL8814C: + version = odm_get_version_mp_8814c_phy_reg(); + break; #endif } diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_interface.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_interface.c index 40b343b4..96f0c025 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_interface.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_interface.c @@ -436,6 +436,44 @@ void odm_move_memory(struct dm_struct *dm, void *dest, void *src, u32 length) #endif } +u16 odm_convert_to_le16(u16 value) +{ +#if (DM_ODM_SUPPORT_TYPE & ODM_AP) + return cpu_to_le16(value); +#elif (DM_ODM_SUPPORT_TYPE & ODM_CE) && defined(DM_ODM_CE_MAC80211) + return cpu_to_le16(value); +#elif (DM_ODM_SUPPORT_TYPE & ODM_CE) && defined(DM_ODM_CE_MAC80211_V2) + return cpu_to_le16(value); +#elif (DM_ODM_SUPPORT_TYPE & ODM_CE) + return cpu_to_le16(value); +#elif (DM_ODM_SUPPORT_TYPE & ODM_WIN) + return value; +#elif (DM_ODM_SUPPORT_TYPE & ODM_IOT) + return cpu_to_le16(value); +#else + return value; +#endif +} + +u32 odm_convert_to_le32(u32 value) +{ +#if (DM_ODM_SUPPORT_TYPE & ODM_AP) + return cpu_to_le32(value); +#elif (DM_ODM_SUPPORT_TYPE & ODM_CE) && defined(DM_ODM_CE_MAC80211) + return cpu_to_le32(value); +#elif (DM_ODM_SUPPORT_TYPE & ODM_CE) && defined(DM_ODM_CE_MAC80211_V2) + return cpu_to_le32(value); +#elif (DM_ODM_SUPPORT_TYPE & ODM_CE) + return cpu_to_le32(value); +#elif (DM_ODM_SUPPORT_TYPE & ODM_WIN) + return value; +#elif (DM_ODM_SUPPORT_TYPE & ODM_IOT) + return cpu_to_le32(value); +#else + return value; +#endif +} + void odm_memory_set(struct dm_struct *dm, void *pbuf, s8 value, u32 length) { #if (DM_ODM_SUPPORT_TYPE & ODM_AP) @@ -790,7 +828,7 @@ u8 phydm_trans_h2c_id(struct dm_struct *dm, u8 phydm_h2c_id) #elif (DM_ODM_SUPPORT_TYPE & ODM_AP) #if ((RTL8881A_SUPPORT == 1) || (RTL8192E_SUPPORT == 1) || (RTL8814A_SUPPORT == 1) || (RTL8822B_SUPPORT == 1) || (RTL8197F_SUPPORT == 1) || (RTL8192F_SUPPORT == 1)) /*@jj add 20170822*/ - if (dm->support_ic_type == ODM_RTL8881A || dm->support_ic_type == ODM_RTL8192E || dm->support_ic_type & PHYDM_IC_3081_SERIES) + if (dm->support_ic_type & (ODM_RTL8881A | ODM_RTL8192E | ODM_RTL8192F | PHYDM_IC_3081_SERIES)) platform_h2c_id = H2C_88XX_RSSI_REPORT; else #endif @@ -852,7 +890,7 @@ u8 phydm_trans_h2c_id(struct dm_struct *dm, u8 phydm_h2c_id) #elif (DM_ODM_SUPPORT_TYPE & ODM_AP) #if ((RTL8881A_SUPPORT == 1) || (RTL8192E_SUPPORT == 1) || (RTL8814A_SUPPORT == 1) || (RTL8822B_SUPPORT == 1) || (RTL8197F_SUPPORT == 1) || (RTL8192F_SUPPORT == 1)) /*@jj add 20170822*/ - if (dm->support_ic_type == ODM_RTL8881A || dm->support_ic_type == ODM_RTL8192E || dm->support_ic_type & PHYDM_IC_3081_SERIES) + if (dm->support_ic_type & (ODM_RTL8881A | ODM_RTL8192E | ODM_RTL8192F | PHYDM_IC_3081_SERIES)) platform_h2c_id = H2C_88XX_RA_PARA_ADJUST; else #endif @@ -903,7 +941,7 @@ u8 phydm_trans_h2c_id(struct dm_struct *dm, u8 phydm_h2c_id) #elif (DM_ODM_SUPPORT_TYPE & ODM_AP) #if ((RTL8881A_SUPPORT == 1) || (RTL8192E_SUPPORT == 1) || (RTL8814A_SUPPORT == 1) || (RTL8822B_SUPPORT == 1) || (RTL8197F_SUPPORT == 1) || (RTL8192F_SUPPORT == 1)) /*@jj add 20170822*/ - if (dm->support_ic_type == ODM_RTL8881A || dm->support_ic_type == ODM_RTL8192E || dm->support_ic_type & PHYDM_IC_3081_SERIES) + if (dm->support_ic_type & (ODM_RTL8881A | ODM_RTL8192E | ODM_RTL8192F | PHYDM_IC_3081_SERIES)) platform_h2c_id = H2C_88XX_FW_TRACE_EN; else #endif @@ -921,7 +959,8 @@ u8 phydm_trans_h2c_id(struct dm_struct *dm, u8 phydm_h2c_id) case PHYDM_H2C_TXBF: #if ((RTL8192E_SUPPORT == 1) || (RTL8812A_SUPPORT == 1)) - platform_h2c_id = 0x41; /*@H2C_TxBF*/ + if (dm->support_ic_type & (ODM_RTL8192E | ODM_RTL8812)) + platform_h2c_id = 0x41; /*@H2C_TxBF*/ #endif break; @@ -1269,7 +1308,7 @@ odm_dpk_by_fw(struct dm_struct *dm) #if (DM_ODM_SUPPORT_TYPE & ODM_WIN) struct _ADAPTER *adapter = dm->adapter; - if (HAL_MAC_FWDPK_Trigger(&GET_HAL_MAC_INFO(adapter)) == 0) + if (hal_mac_fwdpk_trigger(&GET_HAL_MAC_INFO(adapter)) == 0) dpk_result = HAL_STATUS_SUCCESS; #else dpk_result = rtw_phydm_fw_dpk(dm); @@ -1439,6 +1478,25 @@ u8 phydm_get_tx_power_dbm(struct dm_struct *dm, u8 rf_path, return tx_power_dbm; } +s16 phydm_get_tx_power_mdbm(struct dm_struct *dm, u8 rf_path, + u8 rate, u8 bandwidth, u8 channel) +{ + s16 tx_power_dbm = 0; +#if (DM_ODM_SUPPORT_TYPE == ODM_WIN) + struct _ADAPTER *adapter = dm->adapter; + tx_power_dbm = PHY_GetTxPowerFinalAbsoluteValuemdBm(adapter, rf_path, rate, bandwidth, channel); +#endif + +#if (DM_ODM_SUPPORT_TYPE == ODM_CE) + tx_power_dbm = rtw_odm_get_tx_power_mbm(dm, rf_path, rate, bandwidth, channel); +#endif + +#if (DM_ODM_SUPPORT_TYPE == ODM_AP) + tx_power_dbm = PHY_GetTxPowerFinalAbsoluteValuembm(dm, rf_path, rate, bandwidth, channel); +#endif + return tx_power_dbm; +} + u32 phydm_rfe_ctrl_gpio(struct dm_struct *dm, u8 gpio_num) { #if (DM_ODM_SUPPORT_TYPE == ODM_CE) diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_interface.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_interface.h index 64730c82..50efa46b 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_interface.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_interface.h @@ -26,7 +26,7 @@ #ifndef __ODM_INTERFACE_H__ #define __ODM_INTERFACE_H__ -#define INTERFACE_VERSION "1.2" +#define INTERFACE_VERSION "1.3" #define pdm_set_reg odm_set_bb_reg @@ -48,6 +48,7 @@ enum phydm_h2c_cmd { PHYDM_H2C_MCC = 0x4f, PHYDM_H2C_RESP_TX_PATH_CTRL = 0x50, PHYDM_H2C_RESP_TX_ANT_CTRL = 0x51, + PHYDM_H2C_FW_DM_CTRL = 0x55, ODM_MAX_H2CCMD }; @@ -180,6 +181,10 @@ void odm_set_rf_reg(struct dm_struct *dm, u8 e_rf_path, u32 reg_addr, u32 odm_get_rf_reg(struct dm_struct *dm, u8 e_rf_path, u32 reg_addr, u32 bit_mask); +u16 odm_convert_to_le16(u16 value); + +u32 odm_convert_to_le32(u32 value); + /*@ * Memory Relative Function. */ @@ -317,6 +322,9 @@ u8 phydm_get_tx_rate(struct dm_struct *dm); u8 phydm_get_tx_power_dbm(struct dm_struct *dm, u8 rf_path, u8 rate, u8 bandwidth, u8 channel); +s16 phydm_get_tx_power_mdbm(struct dm_struct *dm, u8 rf_path, + u8 rate, u8 bandwidth, u8 channel); + u32 phydm_rfe_ctrl_gpio(struct dm_struct *dm, u8 gpio_num); u64 phydm_division64(u64 x, u64 y); diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_lna_sat.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_lna_sat.c index d258005e..204765ee 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_lna_sat.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_lna_sat.c @@ -55,8 +55,7 @@ void phydm_lna_sat_chk_init( lna_info->pre_timer_check_cnt = 0; #if (RTL8198F_SUPPORT || RTL8814B_SUPPORT) - if (dm->support_ic_type & - (ODM_RTL8198F | ODM_RTL8814B)) + if (dm->support_ic_type & (ODM_RTL8198F | ODM_RTL8814B | ODM_RTL8814C)) phydm_lna_sat_chk_bb_init(dm); #endif } @@ -94,7 +93,8 @@ void phydm_set_ofdm_agc_tab_path( struct dm_struct *dm = (struct dm_struct *)dm_void; PHYDM_DBG(dm, DBG_LNA_SAT_CHK, "%s ==>\n", __func__); - if (dm->support_ic_type & (ODM_RTL8198F | ODM_RTL8814B)) { + if (dm->support_ic_type & + (ODM_RTL8198F | ODM_RTL8814B | ODM_RTL8814C)) { PHYDM_DBG(dm, DBG_LNA_SAT_CHK, "set AGC Tab%d\n", tab_sel); PHYDM_DBG(dm, DBG_LNA_SAT_CHK, "r_6table_sel_anten = 0x%x\n", odm_get_bb_reg(dm, 0x18ac, BIT(8))); @@ -118,7 +118,7 @@ void phydm_set_ofdm_agc_tab_path( odm_set_bb_reg(dm, 0x52ac, BIT(4), 0); odm_set_bb_reg(dm, 0x53ac, BIT(4), 0); } - } else if (dm->support_ic_type & ODM_RTL8814B) { + } else if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { if (tab_sel == OFDM_AGC_TAB_0) { odm_set_bb_reg(dm, 0x18ac, 0xf0, 0); odm_set_bb_reg(dm, 0x41ac, 0xf0, 0); @@ -151,7 +151,7 @@ u8 phydm_get_ofdm_agc_tab_path( tab_sel = OFDM_AGC_TAB_0; else if (tab_sel == 1) tab_sel = OFDM_AGC_TAB_2; - } else if (dm->support_ic_type & ODM_RTL8814B) { + } else if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { tab_sel = (u8)odm_get_bb_reg(dm, R_0x18ac, 0xf0); if (tab_sel == 0) tab_sel = OFDM_AGC_TAB_0; @@ -258,7 +258,7 @@ void phydm_lna_sat_chk( /*@adapt agc table 0 check saturation status*/ #if (RTL8198F_SUPPORT || RTL8814B_SUPPORT) - if (dm->support_ic_type & (ODM_RTL8198F | ODM_RTL8814B)) + if (dm->support_ic_type & (ODM_RTL8198F | ODM_RTL8814B | ODM_RTL8814C)) phydm_set_ofdm_agc_tab_path(dm, OFDM_AGC_TAB_0, RF_PATH_A); else #endif @@ -282,7 +282,7 @@ void phydm_lna_sat_chk( config_phydm_write_rf_reg_8198f(dm, RF_PATH_D, 0x86, 0x10, 1); } #elif (RTL8814B_SUPPORT) - if (dm->support_ic_type & ODM_RTL8814B) { + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { /*@set rf detection range (threshold)*/ config_phydm_write_rf_reg_8814b(dm, RF_PATH_A, 0x8B, 0x3, 0x3); config_phydm_write_rf_reg_8814b(dm, RF_PATH_B, 0x8B, 0x3, 0x3); @@ -323,7 +323,7 @@ void phydm_lna_sat_chk( 0xe0000); } #elif (RTL8814B_SUPPORT) - if (dm->support_ic_type & ODM_RTL8814B) { + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { /*@read peak detector info from 8814B rf reg*/ sat_status_a = config_phydm_read_rf_reg_8814b(dm, RF_PATH_A, RF_0xae, @@ -400,7 +400,8 @@ void phydm_lna_sat_chk( if (lna_info->cur_sat_status) { if (!lna_info->dis_agc_table_swh) #if (RTL8198F_SUPPORT || RTL8814B_SUPPORT) - if (dm->support_ic_type & (ODM_RTL8198F | ODM_RTL8814B)) + if (dm->support_ic_type & + (ODM_RTL8198F | ODM_RTL8814B | ODM_RTL8814C)) phydm_set_ofdm_agc_tab_path(dm, OFDM_AGC_TAB_2, RF_PATH_A); @@ -424,7 +425,8 @@ void phydm_lna_sat_chk( } else if (lna_info->check_time <= (max_check_time - 1)) { if (lna_info->pre_sat_status && !lna_info->dis_agc_table_swh) #if (RTL8198F_SUPPORT || RTL8814B_SUPPORT) - if (dm->support_ic_type & (ODM_RTL8198F | ODM_RTL8814B)) + if (dm->support_ic_type & + (ODM_RTL8198F | ODM_RTL8814B | ODM_RTL8814C)) phydm_set_ofdm_agc_tab_path(dm, OFDM_AGC_TAB_2, RF_PATH_A); @@ -441,7 +443,8 @@ void phydm_lna_sat_chk( } else if (lna_info->check_time >= max_check_time) { if (!lna_info->dis_agc_table_swh) #if (RTL8198F_SUPPORT || RTL8814B_SUPPORT) - if (dm->support_ic_type & (ODM_RTL8198F | ODM_RTL8814B)) + if (dm->support_ic_type & + (ODM_RTL8198F | ODM_RTL8814B | ODM_RTL8814C)) phydm_set_ofdm_agc_tab_path(dm, OFDM_AGC_TAB_0, RF_PATH_A); @@ -466,7 +469,7 @@ void phydm_lna_sat_chk( } #if (RTL8198F_SUPPORT || RTL8814B_SUPPORT) - if (dm->support_ic_type & (ODM_RTL8198F | ODM_RTL8814B)) + if (dm->support_ic_type & (ODM_RTL8198F | ODM_RTL8814B | ODM_RTL8814C)) agc_tab = phydm_get_ofdm_agc_tab_path(dm, RF_PATH_A); else #endif @@ -519,7 +522,7 @@ void phydm_lna_sat_chk_watchdog_type1( u8 rssi_min = dm->rssi_min; - PHYDM_DBG(dm, DBG_LNA_SAT_CHK, "\n%s ==>\n", __func__); + PHYDM_DBG(dm, DBG_LNA_SAT_CHK, "%s ==>\n", __func__); if (!(dm->support_ability & ODM_BB_LNA_SAT_CHK)) { PHYDM_DBG(dm, DBG_LNA_SAT_CHK, @@ -540,13 +543,6 @@ void phydm_lna_sat_chk_watchdog_type1( return; } - if (!(dm->support_ic_type & - (ODM_RTL8197F | ODM_RTL8198F | ODM_RTL8814B))) { - PHYDM_DBG(dm, DBG_LNA_SAT_CHK, - "support_ic_type not 97F/98F/14B, return\n"); - return; - } - if (rssi_min == 0 || rssi_min == 0xff) { /*@adapt agc table 0 */ phydm_set_ofdm_agc_tab(dm, OFDM_AGC_TAB_0); @@ -1156,16 +1152,372 @@ void phydm_lna_sat_type2_sm( return; } } - - #endif /*@#ifdef PHYDM_LNA_SAT_CHK_TYPE2*/ -void phydm_lna_sat_debug( - void *dm_void, - char input[][16], - u32 *_used, - char *output, - u32 *_out_len) +#ifdef PHYDM_HW_SWITCH_AGC_TAB +u32 phydm_get_lna_pd_reg(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + u32 rf_pd_reg = RF_0x8b; + +#if (RTL8814B_SUPPORT) + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { + if (*dm->channel <= 14) + rf_pd_reg = RF_0x87; + else + rf_pd_reg = RF_0x8b; + } +#endif + return rf_pd_reg; +} + +u32 phydm_get_lna_pd_en_mask(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + u32 rf_pd_en_msk = BIT(2); + +#if (RTL8814B_SUPPORT) + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { + if (*dm->channel <= 14) + rf_pd_en_msk = BIT(4); + else + rf_pd_en_msk = BIT(2); + } +#endif + return rf_pd_en_msk; +} + +boolean phydm_get_lna_pd_en(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + u32 rf_pd_reg = RF_0x8b; + u32 rf_pd_en_msk = BIT(2); + u32 pd_en = 0; + + rf_pd_reg = phydm_get_lna_pd_reg(dm); + rf_pd_en_msk = phydm_get_lna_pd_en_mask(dm); + +#if (RTL8814B_SUPPORT) + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) + pd_en = config_phydm_read_rf_reg_8814b(dm, RF_PATH_A, + rf_pd_reg, + rf_pd_en_msk); +#endif + return (boolean)pd_en; +} + +void phydm_set_lna_pd_en(void *dm_void, boolean lna_pd_en) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + enum rf_path i = RF_PATH_A; + u32 rf_pd_reg = RF_0x8b; + u32 rf_pd_en_msk = BIT(2); + + rf_pd_reg = phydm_get_lna_pd_reg(dm); + rf_pd_en_msk = phydm_get_lna_pd_en_mask(dm); + +#if (RTL8814B_SUPPORT) + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) + for (i = RF_PATH_A; i < MAX_PATH_NUM_8814B; i++) + config_phydm_write_rf_reg_8814b(dm, i, + rf_pd_reg, + rf_pd_en_msk, + (u8)lna_pd_en); +#endif +} + +u32 phydm_get_lna_pd_th_mask(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + u32 rf_pd_th_msk = 0x3; + +#if (RTL8814B_SUPPORT) + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) + rf_pd_th_msk = 0x3; +#endif + return rf_pd_th_msk; +} + +enum lna_pd_th_level phydm_get_lna_pd_th_lv(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + u32 rf_pd_reg = RF_0x8b; + u32 rf_pd_th_msk = 0x3; + u32 pd_th_lv = 0x0; + + rf_pd_reg = phydm_get_lna_pd_reg(dm); + rf_pd_th_msk = phydm_get_lna_pd_th_mask(dm); + +#if (RTL8814B_SUPPORT) + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) + pd_th_lv = config_phydm_read_rf_reg_8814b(dm, RF_PATH_A, + rf_pd_reg, + rf_pd_th_msk); +#endif + return (enum lna_pd_th_level)pd_th_lv; +} + +void phydm_set_lna_pd_th_lv(void *dm_void, + enum lna_pd_th_level lna_pd_th_lv) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + enum rf_path i = RF_PATH_A; + u32 rf_pd_reg = RF_0x8b; + u32 rf_pd_th_msk = 0x3; + + rf_pd_reg = phydm_get_lna_pd_reg(dm); + rf_pd_th_msk = phydm_get_lna_pd_th_mask(dm); + +#if (RTL8814B_SUPPORT) + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) + for (i = RF_PATH_A; i < MAX_PATH_NUM_8814B; i++) + config_phydm_write_rf_reg_8814b(dm, i, + rf_pd_reg, + rf_pd_th_msk, + lna_pd_th_lv); +#endif +} + +u32 phydm_get_sat_agc_tab_version(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + +#if (RTL8814B_SUPPORT) + if (dm->support_ic_type & ODM_RTL8814B) + return odm_get_version_mp_8814b_extra_agc_tab(); +#endif +#if (RTL8814C_SUPPORT) + if (dm->support_ic_type & ODM_RTL8814C) + return odm_get_version_mp_8814c_extra_agc_tab(); +#endif + return 0; +} + +boolean phydm_get_auto_agc_config(void *dm_void, + enum agc_tab_switch_state state_sel) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + u32 state_en = 0; +#ifdef PHYDM_IC_JGR3_SERIES_SUPPORT + switch (state_sel) { + case AGC_SWH_IDLE: + state_en = odm_get_bb_reg(dm, R_0x18ac, BIT(16)); + break; + case AGC_SWH_OFDM: + state_en = odm_get_bb_reg(dm, R_0x18ac, BIT(17)); + break; + case AGC_SWH_CCK: + state_en = odm_get_bb_reg(dm, R_0x18ac, BIT(18)); + break; + default: + state_en = 0; + break; + } +#endif + return (boolean)state_en; +} + +boolean phydm_is_auto_agc_on(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + boolean state_on = false; + + state_on = ((phydm_get_auto_agc_config(dm, AGC_SWH_IDLE) || + phydm_get_auto_agc_config(dm, AGC_SWH_CCK) || + phydm_get_auto_agc_config(dm, AGC_SWH_OFDM)) && + phydm_get_lna_pd_en(dm)); + + return state_on; +} + +void phydm_config_auto_agc(void *dm_void, + boolean idle_en, + boolean cck_cca_en, + boolean ofdm_cca_en) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + u32 hwagc_opt = 0; +#ifdef PHYDM_IC_JGR3_SERIES_SUPPORT + if (!(dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C))) + return; + + if (idle_en) + hwagc_opt |= BIT(0); + else + hwagc_opt &= ~BIT(0); + if (ofdm_cca_en) + hwagc_opt |= BIT(1); + else + hwagc_opt &= ~BIT(1); + if (cck_cca_en) + hwagc_opt |= BIT(2); + else + hwagc_opt &= ~BIT(2); + + odm_set_bb_reg(dm, R_0x18ac, BIT(18) | BIT(17) | BIT(16), hwagc_opt); +#ifdef PHYDM_COMPILE_ABOVE_2SS + odm_set_bb_reg(dm, R_0x41ac, BIT(18) | BIT(17) | BIT(16), hwagc_opt); +#endif +#ifdef PHYDM_COMPILE_ABOVE_3SS + odm_set_bb_reg(dm, R_0x52ac, BIT(18) | BIT(17) | BIT(16), hwagc_opt); +#endif +#ifdef PHYDM_COMPILE_ABOVE_4SS + odm_set_bb_reg(dm, R_0x53ac, BIT(18) | BIT(17) | BIT(16), hwagc_opt); +#endif +#endif +} + +void phydm_auto_agc_tab_reset(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + + phydm_set_lna_pd_th_lv(dm, 0x0); + phydm_config_auto_agc(dm, true, false, true); + phydm_set_lna_pd_en(dm, true); +} + +void phydm_auto_agc_tab_off(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + + phydm_config_auto_agc(dm, false, false, false); + phydm_set_lna_pd_en(dm, false); +} + +void phydm_switch_sat_agc_by_band(void *dm_void, enum odm_rf_band band) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + +#if (RTL8814B_SUPPORT) + if (dm->support_ic_type & ODM_RTL8814B) + odm_config_mp_8814b_extra_agc_tab(dm, band); +#endif +#if (RTL8814C_SUPPORT) + if (dm->support_ic_type & ODM_RTL8814C) + odm_config_mp_8814c_extra_agc_tab(dm, band); +#endif +#if (DM_ODM_SUPPORT_TYPE == ODM_AP) + pr_debug("%s ==> switch to band%d\n", __func__, band); +#else + PHYDM_DBG(dm, DBG_LNA_SAT_CHK, "%s ==> switch to band%d\n", + __func__, band); +#endif +} + +void phydm_auto_agc_tab_init(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_lna_sat_t *lna_sat = &dm->dm_lna_sat_info; + u8 channel = *dm->channel; + + lna_sat->cur_rf_band = phydm_ch_to_rf_band(dm, channel); + phydm_switch_sat_agc_by_band(dm, lna_sat->cur_rf_band); + + if ((dm->support_ability & ODM_BB_LNA_SAT_CHK)) { + phydm_auto_agc_tab_reset(dm); + lna_sat->hw_swh_tab_on = true; + } else { + phydm_auto_agc_tab_off(dm); + lna_sat->hw_swh_tab_on = false; + } +} + +void phydm_auto_agc_tab_watchdog(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_lna_sat_t *lna_sat = &dm->dm_lna_sat_info; + boolean hw_swh_on = false; + + PHYDM_DBG(dm, DBG_LNA_SAT_CHK, "%s ==>\n", __func__); + + if (!(dm->support_ability & ODM_BB_LNA_SAT_CHK)) { + if (lna_sat->hw_swh_tab_on) { + phydm_auto_agc_tab_off(dm); + lna_sat->hw_swh_tab_on = false; + } + PHYDM_DBG(dm, DBG_LNA_SAT_CHK, "Disabled LNA sat. check\n"); + return; + } + + if (!lna_sat->hw_swh_tab_on) + PHYDM_DBG(dm, DBG_LNA_SAT_CHK, + "[WARNING] HW switch AGC Tab not fully enabled\n"); +} + +void phydm_auto_agc_tab_debug(void *dm_void, char input[][16], u32 *_used, + char *output, u32 *_out_len) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_lna_sat_t *lna_sat = &dm->dm_lna_sat_info; + char help[] = "-h"; + u32 var1[10] = {0}; + u32 used = *_used; + u32 out_len = *_out_len; + u8 i; + u8 agc_tab = 0; + + if ((strcmp(input[1], help) == 0)) { + PDM_SNPF(out_len, used, output + used, out_len - used, + "LNA sat. AGC Tab version : %d\n", + phydm_get_sat_agc_tab_version(dm)); + PDM_SNPF(out_len, used, output + used, out_len - used, + "Enable LNA peak detector : {0} {lna_pd_en = %d}\n", + phydm_get_lna_pd_en(dm)); + PDM_SNPF(out_len, used, output + used, out_len - used, + "Set LNA peak detector lv : {1} {lna_pd_th_lv = %d}\n", + phydm_get_lna_pd_th_lv(dm)); + PDM_SNPF(out_len, used, output + used, out_len - used, + "Config hw switch AGC tab : {2} {hw_swh_en_rx_idle} {hw_swh_en_cck_cca} {hw_swh_en_ofdm_cca} = (%d, %d, %d)\n", + phydm_get_auto_agc_config(dm, AGC_SWH_IDLE), + phydm_get_auto_agc_config(dm, AGC_SWH_CCK), + phydm_get_auto_agc_config(dm, AGC_SWH_OFDM)); + PDM_SNPF(out_len, used, output + used, out_len - used, + "Reset to default setting : {3}\n", + phydm_get_auto_agc_config(dm, AGC_SWH_IDLE), + phydm_get_auto_agc_config(dm, AGC_SWH_CCK), + phydm_get_auto_agc_config(dm, AGC_SWH_OFDM)); + + } else { + PHYDM_SSCANF(input[1], DCMD_DECIMAL, &var1[0]); + for (i = 1; i < 10; i++) { + if (input[i + 1]) + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, + &var1[i]); + } + + if (var1[0] == 0) { + phydm_set_lna_pd_en(dm, (boolean)var1[1]); + PDM_SNPF(out_len, used, output + used, out_len - used, + "set lna_pd_en = %d\n", + (u8)phydm_get_lna_pd_en(dm)); + } else if (var1[0] == 1) { + phydm_set_lna_pd_th_lv(dm, (u8)var1[1]); + PDM_SNPF(out_len, used, output + used, out_len - used, + "set lna_pd_th_lv = %d\n", + phydm_get_lna_pd_th_lv(dm)); + } else if (var1[0] == 2) { + phydm_config_auto_agc(dm, (boolean)var1[1], + (boolean)var1[2], + (boolean)var1[3]); + PDM_SNPF(out_len, used, output + used, out_len - used, + "set hw switch agc tab en: (rx_idle, cck_cca, ofdm_cca) = (%d, %d, %d)\n", + phydm_get_auto_agc_config(dm, AGC_SWH_IDLE), + phydm_get_auto_agc_config(dm, AGC_SWH_CCK), + phydm_get_auto_agc_config(dm, AGC_SWH_OFDM)); + } else if (var1[0] == 3) { + PDM_SNPF(out_len, used, output + used, out_len - used, + "reset to default settings\n"); + phydm_auto_agc_tab_reset(dm); + } + lna_sat->hw_swh_tab_on = phydm_is_auto_agc_on(dm); + } + *_used = used; + *_out_len = out_len; +} +#endif /*@#ifdef PHYDM_HW_SWITCH_AGC_TAB*/ + +void phydm_lna_sat_debug(void *dm_void, char input[][16], u32 *_used, + char *output, u32 *_out_len) { struct dm_struct *dm = (struct dm_struct *)dm_void; struct phydm_lna_sat_t *lna_t = &dm->dm_lna_sat_info; @@ -1195,7 +1547,8 @@ void phydm_lna_sat_debug( } else if ((strcmp(input[1], monitor) == 0)) { #ifdef PHYDM_LNA_SAT_CHK_TYPE1 #if (RTL8198F_SUPPORT || RTL8814B_SUPPORT) - if (dm->support_ic_type & (ODM_RTL8198F | ODM_RTL8814B)) + if (dm->support_ic_type & + (ODM_RTL8198F | ODM_RTL8814B | ODM_RTL8814C)) agc_tab = phydm_get_ofdm_agc_tab_path(dm, RF_PATH_A); else #endif @@ -1260,8 +1613,7 @@ void phydm_lna_sat_debug( *_out_len = out_len; } -void phydm_lna_sat_chk_watchdog( - void *dm_void) +void phydm_lna_sat_chk_watchdog(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; struct phydm_lna_sat_t *lna_sat = &dm->dm_lna_sat_info; @@ -1269,32 +1621,43 @@ void phydm_lna_sat_chk_watchdog( PHYDM_DBG(dm, DBG_LNA_SAT_CHK, "%s ==>\n", __func__); if (lna_sat->lna_sat_type == LNA_SAT_WITH_PEAK_DET) { + #ifdef PHYDM_HW_SWITCH_AGC_TAB + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { + phydm_auto_agc_tab_watchdog(dm); + return; + } + #endif #ifdef PHYDM_LNA_SAT_CHK_TYPE1 - phydm_lna_sat_chk_watchdog_type1(dm); + if (dm->support_ic_type & (ODM_RTL8197F | ODM_RTL8198F | + ODM_RTL8814B | ODM_RTL8814C)) { + phydm_lna_sat_chk_watchdog_type1(dm); + return; + } #endif } else if (lna_sat->lna_sat_type == LNA_SAT_WITH_TRAIN) { #ifdef PHYDM_LNA_SAT_CHK_TYPE2 - + return; #endif } + PHYDM_DBG(dm, DBG_LNA_SAT_CHK, "support_ic_type match fail, return\n"); } -void phydm_lna_sat_config( - void *dm_void) +void phydm_lna_sat_config(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; struct phydm_lna_sat_t *lna_sat = &dm->dm_lna_sat_info; + lna_sat->lna_sat_type = 0; #if (RTL8822B_SUPPORT == 1) if (dm->support_ic_type & (ODM_RTL8822B)) lna_sat->lna_sat_type = LNA_SAT_WITH_TRAIN; #endif - #if (RTL8197F_SUPPORT || RTL8192F_SUPPORT ||\ + #if (RTL8197F_SUPPORT || RTL8192F_SUPPORT || \ RTL8198F_SUPPORT || RTL8814B_SUPPORT) - if (dm->support_ic_type & - (ODM_RTL8197F | ODM_RTL8192F | ODM_RTL8198F | ODM_RTL8814B)) + if (dm->support_ic_type & (ODM_RTL8197F | ODM_RTL8192F | + ODM_RTL8198F | ODM_RTL8814B | ODM_RTL8814C)) lna_sat->lna_sat_type = LNA_SAT_WITH_PEAK_DET; #endif @@ -1302,15 +1665,11 @@ void phydm_lna_sat_config( __func__, lna_sat->lna_sat_type); } -void phydm_lna_sat_check_init( - void *dm_void) +void phydm_lna_sat_check_init(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; struct phydm_lna_sat_t *lna_sat = &dm->dm_lna_sat_info; - if ((dm->support_ability & ODM_BB_LNA_SAT_CHK)) - return; - /*@2018.04.17 Johnson*/ phydm_lna_sat_config(dm); #ifdef PHYDM_LNA_SAT_CHK_TYPE1 @@ -1322,6 +1681,12 @@ void phydm_lna_sat_check_init( /*@2018.04.17 Johnson end*/ if (lna_sat->lna_sat_type == LNA_SAT_WITH_PEAK_DET) { + #ifdef PHYDM_HW_SWITCH_AGC_TAB + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { + phydm_auto_agc_tab_init(dm); + return; + } + #endif #ifdef PHYDM_LNA_SAT_CHK_TYPE1 phydm_lna_sat_chk_init(dm); #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_lna_sat.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_lna_sat.h index c9345b86..69a93499 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_lna_sat.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_lna_sat.h @@ -31,7 +31,7 @@ * 1 ============================================================ */ -#define LNA_SAT_VERSION "1.0" +#define LNA_SAT_VERSION "1.1" /*@LNA saturation check*/ #define OFDM_AGC_TAB_0 0 @@ -77,6 +77,21 @@ enum lna_sat_type { LNA_SAT_WITH_TRAIN = 2, /*type2*/ }; +#ifdef PHYDM_HW_SWITCH_AGC_TAB +enum lna_pd_th_level { + LNA_PD_TH_LEVEL0 = 0, + LNA_PD_TH_LEVEL1 = 1, + LNA_PD_TH_LEVEL2 = 2, + LNA_PD_TH_LEVEL3 = 3 +}; + +enum agc_tab_switch_state { + AGC_SWH_IDLE, + AGC_SWH_CCK, + AGC_SWH_OFDM +}; +#endif + /* @1 ============================================================ * 1 structure * 1 ============================================================ @@ -130,6 +145,10 @@ struct phydm_lna_sat_t { u32 check_time; boolean pre_sat_status; boolean cur_sat_status; +#ifdef PHYDM_HW_SWITCH_AGC_TAB + boolean hw_swh_tab_on; + enum odm_rf_band cur_rf_band; +#endif struct phydm_timer_list phydm_lna_sat_chk_timer; u32 cur_timer_check_cnt; u32 pre_timer_check_cnt; @@ -169,5 +188,9 @@ void phydm_lna_sat_chk_watchdog(void *dm_void); void phydm_lna_sat_check_init(void *dm_void); +#ifdef PHYDM_HW_SWITCH_AGC_TAB +void phydm_auto_agc_tab_debug(void *dm_void, char input[][16], u32 *_used, + char *output, u32 *_out_len); +#endif #endif /*@#if (PHYDM_LNA_SAT_CHK_SUPPORT == 1)*/ #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_math_lib.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_math_lib.c index 550c4a75..c6c1035a 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_math_lib.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_math_lib.c @@ -159,27 +159,32 @@ u32 odm_convert_to_db(u64 value) break; } + /*special cases*/ if (j == 0 && i == 0) goto end; + if (i == 3 && j == 0) { + if (db_invert_table[3][0] - value > + value - (db_invert_table[2][7] >> FRAC_BITS)) { + i = 2; + j = 7; + } + goto end; + } + + if (i < 3) + value = value << FRAC_BITS; /*@elements of row 0~2 shift left*/ + + /*compare difference to get precise dB*/ if (j == 0) { - if (i != 3) { - if (db_invert_table[i][0] - value > - value - db_invert_table[i - 1][7]) { - i = i - 1; - j = 7; - } - } else { - if (db_invert_table[3][0] - value > - value - db_invert_table[2][7]) { - i = 2; - j = 7; - } + if (db_invert_table[i][j] - value > + value - db_invert_table[i - 1][7]) { + i = i - 1; + j = 7; } } else { if (db_invert_table[i][j] - value > value - db_invert_table[i][j - 1]) { - i = i; j = j - 1; } } diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_mp.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_mp.c index 3af2c0c9..7512cc01 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_mp.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_mp.c @@ -40,6 +40,8 @@ void phydm_mp_set_single_tone_jgr3(void *dm_void, boolean is_single_tone, struct phydm_mp *mp = &dm->dm_mp_table; u8 start = RF_PATH_A, end = RF_PATH_A; u8 i = 0; + u8 central_ch = 0; + boolean is_2g_ch = false; switch (path) { case RF_PATH_A: @@ -53,7 +55,7 @@ void phydm_mp_set_single_tone_jgr3(void *dm_void, boolean is_single_tone, start = RF_PATH_A; end = RF_PATH_B; break; -#if (RTL8814B_SUPPORT == 1 || RTL8198F_SUPPORT == 1) +#if (defined(PHYDM_COMPILE_IC_4SS)) case RF_PATH_AC: start = RF_PATH_A; end = RF_PATH_C; @@ -96,62 +98,120 @@ void phydm_mp_set_single_tone_jgr3(void *dm_void, boolean is_single_tone, break; #endif } + + central_ch = (u8)odm_get_rf_reg(dm, RF_PATH_A, RF_0x18, 0xff); + is_2g_ch = (central_ch <= 14) ? true : false; + if (is_single_tone) { - mp->rf_reg0 = odm_get_rf_reg(dm, RF_PATH_A, RF_0x00, 0xfffff); -#if 0 - mp->rfe_sel_a_0 = odm_get_bb_reg(dm, R_0x1840, MASKDWORD); - mp->rfe_sel_b_0 = odm_get_bb_reg(dm, R_0x4140, MASKDWORD); - mp->rfe_sel_c_0 = odm_get_bb_reg(dm, R_0x5240, MASKDWORD); - mp->rfe_sel_d_0 = odm_get_bb_reg(dm, R_0x5340, MASKDWORD); - mp->rfe_sel_a_1 = odm_get_bb_reg(dm, R_0x1844, MASKDWORD); - mp->rfe_sel_b_1 = odm_get_bb_reg(dm, R_0x4144, MASKDWORD); - mp->rfe_sel_c_1 = odm_get_bb_reg(dm, R_0x5244, MASKDWORD); - mp->rfe_sel_d_1 = odm_get_bb_reg(dm, R_0x5344, MASKDWORD); -#endif - /* Disable CCK and OFDM */ - odm_set_bb_reg(dm, R_0x1c3c, 0x3, 0x0); - for (i = start; i <= end; i++) { - /* @Tx mode: RF0x00[19:16]=4'b0010 */ - odm_set_rf_reg(dm, i, RF_0x0, 0xF0000, 0x2); - /* @Lowest RF gain index: RF_0x0[4:0] = 0*/ - odm_set_rf_reg(dm, i, RF_0x0, 0x1F, 0x0); - /* @RF LO enabled */ - odm_set_rf_reg(dm, i, RF_0x58, BIT(1), 0x1); + /*Disable CCA*/ + if (is_2g_ch) { /*CCK RxIQ weighting = [0,0]*/ + if(!(dm->support_ic_type & ODM_RTL8723F)) { + odm_set_bb_reg(dm, R_0x1a9c, BIT(20), 0x0); + odm_set_bb_reg(dm, R_0x1a14, 0x300, 0x3); + } } + /*Disable CCK CCA*/ + if(dm->support_ic_type & ODM_RTL8723F) + odm_set_bb_reg(dm, R_0x2a24, BIT(13), 0x1); + /*Disable OFDM CCA*/ + odm_set_bb_reg(dm, R_0x1d58, 0xff8, 0x1ff); + + if (dm->support_ic_type & ODM_RTL8723F) { + for (i = start; i <= end; i++) { + odm_set_rf_reg(dm, i, RF_0x5, BIT(0), 0x0); + mp->rf0[i] = odm_get_rf_reg(dm, i, RF_0x0, RFREG_MASK); + /*Tx mode: RF0x00[19:16]=4'b0010 */ + odm_set_rf_reg(dm, i, RF_0x0, 0xF0000, 0x2); + /*Lowest RF gain index: RF_0x1[5:0] TX power*/ + mp->rf1[i] = odm_get_rf_reg(dm, i, RF_0x1, RFREG_MASK); + odm_set_rf_reg(dm, i, RF_0x1, 0x3f, 0x0);//TX power + /*RF LO enabled */ + odm_set_rf_reg(dm, i, RF_0x58, BIT(1), 0x1); + } + } else { + for (i = start; i <= end; i++) { + mp->rf0[i] = odm_get_rf_reg(dm, i, RF_0x0, RFREG_MASK); + /*Tx mode: RF0x00[19:16]=4'b0010 */ + odm_set_rf_reg(dm, i, RF_0x0, 0xF0000, 0x2); + /*Lowest RF gain index: RF_0x0[4:0] = 0*/ + odm_set_rf_reg(dm, i, RF_0x0, 0x1f, 0x0); + /*RF LO enabled */ + odm_set_rf_reg(dm, i, RF_0x58, BIT(1), 0x1); + } + } + #if (RTL8814B_SUPPORT) - if (dm->support_ic_type & ODM_RTL8814B) { - /* @Tx mode: RF0x00[19:16]=4'b0010 */ + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { + mp->rf0_syn[RF_SYN0] = config_phydm_read_syn_reg_8814b( + dm, RF_SYN0, RF_0x0, RFREG_MASK); + /*Lowest RF gain index: RF_0x0[4:0] = 0x0*/ config_phydm_write_rf_syn_8814b(dm, RF_SYN0, RF_0x0, - 0xF0000, 0x2); - /* @Lowest RF gain index: RF_0x0[4:0] = 0*/ - config_phydm_write_rf_syn_8814b(dm, RF_SYN0, RF_0x0, - 0x1F, 0x0); - /* @RF LO enabled */ + 0x1f, 0x0); + /*RF LO enabled */ config_phydm_write_rf_syn_8814b(dm, RF_SYN0, RF_0x58, BIT(1), 0x1); + /*SYN1*/ + if (*dm->band_width == CHANNEL_WIDTH_80_80) { + mp->rf0_syn[RF_SYN1] = config_phydm_read_syn_reg_8814b( + dm, RF_SYN1, RF_0x0, + RFREG_MASK); + config_phydm_write_rf_syn_8814b(dm, RF_SYN1, + RF_0x0, 0x1f, + 0x0); + config_phydm_write_rf_syn_8814b(dm, RF_SYN1, + RF_0x58, BIT(1), + 0x1); + } } #endif } else { - /* Eable CCK and OFDM */ - odm_set_bb_reg(dm, R_0x1c3c, 0x3, 0x3); - if (!(dm->support_ic_type & ODM_RTL8814B)) { + /*Enable CCA*/ + if (is_2g_ch) { /*CCK RxIQ weighting = [1,1]*/ + if(!(dm->support_ic_type & ODM_RTL8723F)) { + odm_set_bb_reg(dm, R_0x1a9c, BIT(20), 0x1); + odm_set_bb_reg(dm, R_0x1a14, 0x300, 0x0); + } + } + /*Enable CCK CCA*/ + if(dm->support_ic_type & ODM_RTL8723F) + odm_set_bb_reg(dm, R_0x2a24, BIT(13), 0x0); + /*Enable OFDM CCA*/ + odm_set_bb_reg(dm, R_0x1d58, 0xff8, 0x0); + + if(dm->support_ic_type & ODM_RTL8723F) { for (i = start; i <= end; i++) { - odm_set_rf_reg(dm, i, RF_0x00, 0xfffff, - mp->rf_reg0); - /* RF LO disabled */ + odm_set_rf_reg(dm, i, RF_0x0, RFREG_MASK, mp->rf0[i]); + odm_set_rf_reg(dm, i, RF_0x1, RFREG_MASK, mp->rf1[i]); + /*RF LO disabled */ + odm_set_rf_reg(dm, i, RF_0x58, BIT(1), 0x0); + odm_set_rf_reg(dm, i, RF_0x5, BIT(0), 0x1); + } + } else { + for (i = start; i <= end; i++) { + odm_set_rf_reg(dm, i, RF_0x0, RFREG_MASK, mp->rf0[i]); + /*RF LO disabled */ odm_set_rf_reg(dm, i, RF_0x58, BIT(1), 0x0); } } -#if 0 - odm_set_bb_reg(dm, R_0x1840, MASKDWORD, mp->rfe_sel_a_0); - odm_set_bb_reg(dm, R_0x4140, MASKDWORD, mp->rfe_sel_b_0); - odm_set_bb_reg(dm, R_0x5240, MASKDWORD, mp->rfe_sel_c_0); - odm_set_bb_reg(dm, R_0x5340, MASKDWORD, mp->rfe_sel_d_0); - odm_set_bb_reg(dm, R_0x1844, MASKDWORD, mp->rfe_sel_a_1); - odm_set_bb_reg(dm, R_0x4144, MASKDWORD, mp->rfe_sel_b_1); - odm_set_bb_reg(dm, R_0x5244, MASKDWORD, mp->rfe_sel_c_1); - odm_set_bb_reg(dm, R_0x5344, MASKDWORD, mp->rfe_sel_d_1); -#endif + #if (RTL8814B_SUPPORT) + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { + config_phydm_write_rf_syn_8814b(dm, RF_SYN0, RF_0x0, + RFREG_MASK, + mp->rf0_syn[RF_SYN0]); + config_phydm_write_rf_syn_8814b(dm, RF_SYN0, RF_0x58, + BIT(1), 0x0); + /*SYN1*/ + if (*dm->band_width == CHANNEL_WIDTH_80_80) { + config_phydm_write_rf_syn_8814b(dm, RF_SYN1, + RF_0x0, + RFREG_MASK, + mp->rf0_syn[RF_SYN1]); + config_phydm_write_rf_syn_8814b(dm, RF_SYN1, + RF_0x58, BIT(1), + 0x0); + } + } + #endif } } @@ -163,34 +223,140 @@ void phydm_mp_set_carrier_supp_jgr3(void *dm_void, boolean is_carrier_supp, if (is_carrier_supp) { if (phydm_is_cck_rate(dm, (u8)rate_index)) { - /* @if CCK block on? */ + /*if CCK block on? */ if (!odm_get_bb_reg(dm, R_0x1c3c, BIT(1))) odm_set_bb_reg(dm, R_0x1c3c, BIT(1), 1); - /* @Turn Off All Test mode */ - odm_set_bb_reg(dm, R_0x1ca4, 0x7, 0x0); - - /* @transmit mode */ - odm_set_bb_reg(dm, R_0x1a00, 0x3, 0x2); - /* @turn off scramble setting */ - odm_set_bb_reg(dm, R_0x1a00, 0x8, 0x0); - /* @Set CCK Tx Test Rate, set FTxRate to 1Mbps */ - odm_set_bb_reg(dm, R_0x1a00, 0x3000, 0x0); + if(dm->support_ic_type & ODM_RTL8723F){ + /* @Carrier suppress tx */ + odm_set_bb_reg(dm, R_0x2a08, BIT(18), 0x1); + /*turn off scramble setting */ + odm_set_bb_reg(dm, R_0x2a04, BIT(5), 0x1); + /*Set CCK Tx Test Rate, set TxRate to 2Mbps */ + odm_set_bb_reg(dm, R_0x2a08, 0x300000, 0x1); + /* BB and PMAC cont tx */ + odm_set_bb_reg(dm, R_0x2a08, BIT(17), 0x1); + odm_set_bb_reg(dm, R_0x2a00, BIT(28), 0x1); + /* TX CCK ON */ + odm_set_bb_reg(dm, R_0x2a08, BIT(31), 0x0); + odm_set_bb_reg(dm, R_0x2a08, BIT(31), 0x1); + } + else { + /*Turn Off All Test mode */ + odm_set_bb_reg(dm, R_0x1ca4, 0x7, 0x0); + + /*transmit mode */ + odm_set_bb_reg(dm, R_0x1a00, 0x3, 0x2); + /*turn off scramble setting */ + odm_set_bb_reg(dm, R_0x1a00, BIT(3), 0x0); + /*Set CCK Tx Test Rate, set TxRate to 1Mbps */ + odm_set_bb_reg(dm, R_0x1a00, 0x3000, 0x0); + } } - } else { /* @Stop Carrier Suppression. */ + } else { /*Stop Carrier Suppression. */ if (phydm_is_cck_rate(dm, (u8)rate_index)) { - /* @normal mode */ - odm_set_bb_reg(dm, R_0x1a00, 0x3, 0x0); - /* @turn on scramble setting */ - odm_set_bb_reg(dm, R_0x1a00, 0x8, 0x1); - /* @BB Reset */ - odm_set_bb_reg(dm, R_0x1d0c, 0x10000, 0x0); - odm_set_bb_reg(dm, R_0x1d0c, 0x10000, 0x1); + if(dm->support_ic_type & ODM_RTL8723F) { + /* TX Stop */ + odm_set_bb_reg(dm, R_0x2a00, BIT(0), 0x1); + /* Clear BB cont tx */ + odm_set_bb_reg(dm, R_0x2a00, BIT(28), 0x0); + /* Clear PMAC cont tx */ + odm_set_bb_reg(dm, R_0x2a08, BIT(17), 0x0); + /* Clear TX Stop */ + odm_set_bb_reg(dm, R_0x2a00, BIT(0), 0x0); + /* normal mode */ + odm_set_bb_reg(dm, R_0x2a08, BIT(18), 0x0); + /* turn on scramble setting */ + odm_set_bb_reg(dm, R_0x2a04, BIT(5), 0x0); + } + else { + /*normal mode */ + odm_set_bb_reg(dm, R_0x1a00, 0x3, 0x0); + /*turn on scramble setting */ + odm_set_bb_reg(dm, R_0x1a00, BIT(3), 0x1); + } + /*BB Reset */ + odm_set_bb_reg(dm, R_0x1d0c, BIT(16), 0x0); + odm_set_bb_reg(dm, R_0x1d0c, BIT(16), 0x1); } } } -#endif +void phydm_mp_set_single_carrier_jgr3(void *dm_void, boolean is_single_carrier) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_mp *mp = &dm->dm_mp_table; + + if (is_single_carrier) { + /*1. if OFDM block on? */ + if (!odm_get_bb_reg(dm, R_0x1c3c, BIT(0))) + odm_set_bb_reg(dm, R_0x1c3c, BIT(0), 1); + + if (dm->support_ic_type & ODM_RTL8723F) { + /*3. turn on scramble setting */ + odm_set_bb_reg(dm, R_0x2a04, BIT(5), 0); + /*4. Turn On single carrier. */ + odm_set_bb_reg(dm, R_0x1ca4, 0x7, OFDM_SINGLE_CARRIER); + } + else { + /*2. set CCK test mode off, set to CCK normal mode */ + odm_set_bb_reg(dm, R_0x1a00, 0x3, 0); + /*3. turn on scramble setting */ + odm_set_bb_reg(dm, R_0x1a00, BIT(3), 1); + /*4. Turn On single carrier. */ + odm_set_bb_reg(dm, R_0x1ca4, 0x7, OFDM_SINGLE_CARRIER); + } + } else { + /*Turn off all test modes. */ + odm_set_bb_reg(dm, R_0x1ca4, 0x7, OFDM_OFF); + + /*Delay 10 ms */ + ODM_delay_ms(10); + + /*BB Reset*/ + odm_set_bb_reg(dm, R_0x1d0c, BIT(16), 0x0); + odm_set_bb_reg(dm, R_0x1d0c, BIT(16), 0x1); + } +} + +void phydm_mp_get_tx_ok_jgr3(void *dm_void, u32 rate_index) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_mp *mp = &dm->dm_mp_table; + + if (phydm_is_cck_rate(dm, (u8)rate_index)) + mp->tx_phy_ok_cnt = odm_get_bb_reg(dm, R_0x2de4, MASKLWORD); + else + mp->tx_phy_ok_cnt = odm_get_bb_reg(dm, R_0x2de0, MASKLWORD); +} + +void phydm_mp_get_rx_ok_jgr3(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_mp *mp = &dm->dm_mp_table; + + u32 cck_ok = 0, ofdm_ok = 0, ht_ok = 0, vht_ok = 0; + u32 cck_err = 0, ofdm_err = 0, ht_err = 0, vht_err = 0; + if(dm->support_ic_type & ODM_RTL8723F) + cck_ok = odm_get_bb_reg(dm, R_0x2aac, MASKLWORD); + else + cck_ok = odm_get_bb_reg(dm, R_0x2c04, MASKLWORD); + ofdm_ok = odm_get_bb_reg(dm, R_0x2c14, MASKLWORD); + ht_ok = odm_get_bb_reg(dm, R_0x2c10, MASKLWORD); + vht_ok = odm_get_bb_reg(dm, R_0x2c0c, MASKLWORD); + if(dm->support_ic_type & ODM_RTL8723F) + cck_err = odm_get_bb_reg(dm, R_0x2aac, MASKHWORD); + else + cck_err = odm_get_bb_reg(dm, R_0x2c04, MASKHWORD); + ofdm_err = odm_get_bb_reg(dm, R_0x2c14, MASKHWORD); + ht_err = odm_get_bb_reg(dm, R_0x2c10, MASKHWORD); + vht_err = odm_get_bb_reg(dm, R_0x2c0c, MASKHWORD); + + mp->rx_phy_ok_cnt = cck_ok + ofdm_ok + ht_ok + vht_ok; + mp->rx_phy_crc_err_cnt = cck_err + ofdm_err + ht_err + vht_err; + mp->io_value = (u32)mp->rx_phy_ok_cnt; +} +#endif void phydm_mp_set_crystal_cap(void *dm_void, u8 crystal_cap) { struct dm_struct *dm = (struct dm_struct *)dm_void; @@ -218,61 +384,9 @@ void phydm_mp_set_carrier_supp(void *dm_void, boolean is_carrier_supp, void phydm_mp_set_single_carrier(void *dm_void, boolean is_single_carrier) { struct dm_struct *dm = (struct dm_struct *)dm_void; - struct phydm_mp *mp = &dm->dm_mp_table; - if (is_single_carrier) { - if (dm->support_ic_type & ODM_IC_JGR3_SERIES) { - /* @1. if OFDM block on? */ - if (!odm_get_bb_reg(dm, R_0x1c3c, BIT(0))) - odm_set_bb_reg(dm, R_0x1c3c, BIT(0), 1); - - /* @2. set CCK test mode off, set to CCK normal mode */ - odm_set_bb_reg(dm, R_0x1a00, 0x3, 0); - - /* @3. turn on scramble setting */ - odm_set_bb_reg(dm, R_0x1a00, 0x8, 1); - - /* @4. Turn On single carrier. */ - odm_set_bb_reg(dm, R_0x1ca4, 0x7, OFDM_SINGLE_CARRIER); - } else { - /* @1. if OFDM block on? */ - if (!odm_get_bb_reg(dm, R_0x800, 0x2000000)) - odm_set_bb_reg(dm, R_0x800, 0x2000000, 1); - - /* @2. set CCK test mode off, set to CCK normal mode */ - odm_set_bb_reg(dm, R_0xa00, 0x3, 0); - - /* @3. turn on scramble setting */ - odm_set_bb_reg(dm, R_0xa00, 0x8, 1); - - /* @4. Turn On single carrier. */ - if (dm->support_ic_type & ODM_IC_11AC_SERIES) - odm_set_bb_reg(dm, R_0x914, 0x70000, - OFDM_SINGLE_CARRIER); - else if (dm->support_ic_type & ODM_IC_11N_SERIES) - odm_set_bb_reg(dm, R_0xd00, 0x70000000, - OFDM_SINGLE_CARRIER); - } - } else { /* @Stop Single Carrier. */ - /* @Turn off all test modes. */ - if (dm->support_ic_type & ODM_IC_JGR3_SERIES) - odm_set_bb_reg(dm, R_0x1ca4, 0x7, OFDM_OFF); - else if (dm->support_ic_type & ODM_IC_11AC_SERIES) - odm_set_bb_reg(dm, R_0x914, 0x70000, OFDM_OFF); - else if (dm->support_ic_type & ODM_IC_11N_SERIES) - odm_set_bb_reg(dm, R_0xd00, 0x70000000, OFDM_OFF); - /* @Delay 10 ms */ - ODM_delay_ms(10); - - /* @BB Reset */ - if (dm->support_ic_type & ODM_IC_JGR3_SERIES) { - odm_set_bb_reg(dm, R_0x1d0c, 0x10000, 0x0); - odm_set_bb_reg(dm, R_0x1d0c, 0x10000, 0x1); - } else { - odm_set_bb_reg(dm, R_0x100, 0x100, 0x0); - odm_set_bb_reg(dm, R_0x100, 0x100, 0x1); - } - } + if (dm->support_ic_type & ODM_IC_JGR3_SERIES) + phydm_mp_set_single_carrier_jgr3(dm, is_single_carrier); } void phydm_mp_reset_rx_counters_phy(void *dm_void) { @@ -284,65 +398,16 @@ void phydm_mp_reset_rx_counters_phy(void *dm_void) void phydm_mp_get_tx_ok(void *dm_void, u32 rate_index) { struct dm_struct *dm = (struct dm_struct *)dm_void; - struct phydm_mp *mp = &dm->dm_mp_table; - if (dm->support_ic_type & ODM_IC_JGR3_SERIES) { - if (phydm_is_cck_rate(dm, (u8)rate_index)) - mp->tx_phy_ok_cnt = odm_get_bb_reg(dm, R_0x2de4, - 0xffff); - else - mp->tx_phy_ok_cnt = odm_get_bb_reg(dm, R_0x2de0, - 0xffff); - } else { - if (phydm_is_cck_rate(dm, (u8)rate_index)) - mp->tx_phy_ok_cnt = odm_get_bb_reg(dm, R_0xf50, - 0xffff); - else - mp->tx_phy_ok_cnt = odm_get_bb_reg(dm, R_0xf50, - 0xffff0000); - } + if (dm->support_ic_type & ODM_IC_JGR3_SERIES) + phydm_mp_get_tx_ok_jgr3(dm, rate_index); } void phydm_mp_get_rx_ok(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; - struct phydm_mp *mp = &dm->dm_mp_table; - u32 cck_ok = 0, ofdm_ok = 0, ht_ok = 0, vht_ok = 0; - u32 cck_err = 0, ofdm_err = 0, ht_err = 0, vht_err = 0; - - if (dm->support_ic_type & ODM_IC_JGR3_SERIES) { - cck_ok = odm_get_bb_reg(dm, R_0x2c04, 0xffff); - ofdm_ok = odm_get_bb_reg(dm, R_0x2c14, 0xffff); - ht_ok = odm_get_bb_reg(dm, R_0x2c10, 0xffff); - vht_ok = odm_get_bb_reg(dm, R_0x2c0c, 0xffff); - - cck_err = odm_get_bb_reg(dm, R_0x2c04, 0xffff0000); - ofdm_err = odm_get_bb_reg(dm, R_0x2c14, 0xffff0000); - ht_err = odm_get_bb_reg(dm, R_0x2c10, 0xffff0000); - vht_err = odm_get_bb_reg(dm, R_0x2c0c, 0xffff0000); - } else if (dm->support_ic_type & ODM_IC_11AC_SERIES) { - cck_ok = odm_get_bb_reg(dm, R_0xf04, 0x3FFF); - ofdm_ok = odm_get_bb_reg(dm, R_0xf14, 0x3FFF); - ht_ok = odm_get_bb_reg(dm, R_0xf10, 0x3FFF); - vht_ok = odm_get_bb_reg(dm, R_0xf0c, 0x3FFF); - - cck_err = odm_get_bb_reg(dm, R_0xf04, 0x3FFF0000); - ofdm_err = odm_get_bb_reg(dm, R_0xf14, 0x3FFF0000); - ht_err = odm_get_bb_reg(dm, R_0xf10, 0x3FFF0000); - vht_err = odm_get_bb_reg(dm, R_0xf0c, 0x3FFF0000); - } else if (dm->support_ic_type & ODM_IC_11N_SERIES) { - cck_ok = odm_get_bb_reg(dm, R_0xf88, MASKDWORD); - ofdm_ok = odm_get_bb_reg(dm, R_0xf94, 0xffff); - ht_ok = odm_get_bb_reg(dm, R_0xf90, 0xffff); - - cck_err = odm_get_bb_reg(dm, R_0xf84, MASKDWORD); - ofdm_err = odm_get_bb_reg(dm, R_0xf94, 0xffff0000); - ht_err = odm_get_bb_reg(dm, R_0xf90, 0xffff0000); - } - - mp->rx_phy_ok_cnt = cck_ok + ofdm_ok + ht_ok + vht_ok; - mp->rx_phy_crc_err_cnt = cck_err + ofdm_err + ht_err + vht_err; - mp->io_value = (u32)mp->rx_phy_ok_cnt; + if (dm->support_ic_type & ODM_IC_JGR3_SERIES) + phydm_mp_get_rx_ok_jgr3(dm); } #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_mp.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_mp.h index e9e40ae1..5805a037 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_mp.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_mp.h @@ -26,7 +26,8 @@ #ifndef __PHYDM_MP_H__ #define __PHYDM_MP_H__ -#define MP_VERSION "1.3" +/*2020.04.27 Refine single tone Tx flow*/ +#define MP_VERSION "1.5" /* @1 ============================================================ * 1 Definition @@ -37,22 +38,18 @@ * 1 ============================================================ */ struct phydm_mp { - /* @Rx OK count, statistics used in Mass Production Test.*/ + /*Rx OK count, statistics used in Mass Production Test.*/ u64 tx_phy_ok_cnt; u64 rx_phy_ok_cnt; - /* @Rx CRC32 error count, statistics used in Mass Production Test.*/ + /*Rx CRC32 error count, statistics used in Mass Production Test.*/ u64 rx_phy_crc_err_cnt; - /* @The Value of IO operation is depend of MptActType.*/ + /*The Value of IO operation is depend of MptActType.*/ u32 io_value; - u32 rf_reg0; - /* @u32 rfe_sel_a_0;*/ - /* @u32 rfe_sel_b_0;*/ - /* @u32 rfe_sel_c_0;*/ - /* @u32 rfe_sel_d_0;*/ - /* @u32 rfe_sel_a_1;*/ - /* @u32 rfe_sel_b_1;*/ - /* @u32 rfe_sel_c_1;*/ - /* @u32 rfe_sel_d_1;*/ + u32 rf0[RF_PATH_MEM_SIZE]; + #if (RTL8814B_SUPPORT) + u32 rf0_syn[2]; + #endif + u32 rf1[RF_PATH_MEM_SIZE]; }; /* @1 ============================================================ diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_noisemonitor.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_noisemonitor.c index aeeb2556..d2e95cfa 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_noisemonitor.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_noisemonitor.c @@ -258,7 +258,8 @@ s16 odm_inband_noise_monitor_ac(struct dm_struct *dm, u8 pause_dig, u8 igi, s32 value32, pwdb_A = 0, sval, noise, sum = 0; boolean pd_flag; u8 valid_cnt = 0; - u64 start = 0, func_start = 0, func_end = 0; + u8 invalid_cnt = 0; + u64 start = 0, func_start = 0, func_end = 0, proc_time = 0; s32 val_s32 = 0; s16 rpt = 0; u8 val_u8 = 0; @@ -350,6 +351,15 @@ s16 odm_inband_noise_monitor_ac(struct dm_struct *dm, u8 pause_dig, u8 igi, "After divided, sum = %d\n", sum); break; } + } else { + /*Invalid sval and return -110 dBm*/ + invalid_cnt++; + PHYDM_DBG(dm, DBG_ENV_MNTR, "Invalid sval\n"); + if (invalid_cnt >= VALID_CNT + 5) { + PHYDM_DBG(dm, DBG_ENV_MNTR, + "Invalid count > TH, Return -110, Break!!\n"); + return -110; + } } } diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pathdiv.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pathdiv.c index 8fb85612..a6b347cf 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pathdiv.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pathdiv.c @@ -1040,10 +1040,8 @@ void phydm_pathdiv_debug(void *dm_void, char input[][16], u32 *_used, u8 i, input_idx = 0; for (i = 0; i < 5; i++) { - if (input[i + 1]) { - PHYDM_SSCANF(input[i + 1], DCMD_HEX, &val[i]); - input_idx++; - } + PHYDM_SSCANF(input[i + 1], DCMD_HEX, &val[i]); + input_idx++; } if (input_idx == 0) diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_phystatus.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_phystatus.c index f31bb31c..8d1ed66d 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_phystatus.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_phystatus.c @@ -237,7 +237,7 @@ void phydm_avg_rssi_evm_snr(void *dm_void, if (pktinfo->data_rate <= ODM_RATE11M) { /*RSSI*/ dbg_s->rssi_cck_sum += rssi[0]; - #ifdef PHYSTS_3RD_TYPE_SUPPORT + #if (defined(PHYSTS_3RD_TYPE_SUPPORT) && defined(PHYDM_COMPILE_ABOVE_2SS)) if (dm->support_ic_type & PHYSTS_3RD_TYPE_IC) { for (i = 1; i < dm->num_rf_path; i++) dbg_s->rssi_cck_sum_abv_2ss[i - 1] += rssi[i]; @@ -950,6 +950,9 @@ void phydm_phy_sts_n_parsing(struct dm_struct *dm, * value to positive one, then the dbm value * (which is supposed to be negative) is not correct anymore. */ + if (i >= PHYDM_MAX_RF_PATH_N) + break; + EVM = phydm_evm_2_percent(phy_sts->stream_rxevm[i]); /*@Fill value in RFD, Get the 1st spatial stream only*/ @@ -1354,7 +1357,8 @@ void phydm_process_rssi_for_dm(struct dm_struct *dm, /* @--------------Statistic for antenna/path diversity--------------- */ #ifdef ODM_EVM_ENHANCE_ANTDIV - phydm_rx_rate_for_antdiv(dm, pktinfo); + if (dm->antdiv_evm_en) + phydm_rx_rate_for_antdiv(dm, pktinfo); #endif #if (defined(CONFIG_PHYDM_ANTENNA_DIVERSITY)) @@ -1670,6 +1674,8 @@ void phydm_print_phystat_jgr3(struct dm_struct *dm, u8 *phy_sts, struct phy_sts_rpt_jgr3_type2_3 *rpt2 = NULL; struct phy_sts_rpt_jgr3_type4 *rpt3 = NULL; struct phy_sts_rpt_jgr3_type5 *rpt4 = NULL; + struct phy_sts_rpt_jgr3_type6 *rpt5 = NULL; + struct odm_phy_dbg_info *dbg = &dm->phy_dbg_info; u8 phy_status_page_num = (*phy_sts & 0xf); u32 *phy_status_tmp = NULL; @@ -1685,6 +1691,13 @@ void phydm_print_phystat_jgr3(struct dm_struct *dm, u8 *phy_sts, rpt3 = (struct phy_sts_rpt_jgr3_type4 *)phy_sts; rpt4 = (struct phy_sts_rpt_jgr3_type5 *)phy_sts; + if (dm->support_ic_type & ODM_RTL8723F) { + rpt5 = (struct phy_sts_rpt_jgr3_type6 *)phy_sts; + + if (pktinfo->is_cck_rate) + phy_status_page_num = 0; + } + phy_status_tmp = (u32 *)phy_sts; if (dbg->show_phy_sts_all_pkt == 0) { @@ -1713,32 +1726,51 @@ void phydm_print_phystat_jgr3(struct dm_struct *dm, u8 *phy_sts, ((4 * i) + 3), (4 * i), phy_status_tmp[i]); if (phy_status_page_num == 0) { /* @CCK(default) */ - pr_debug("[0] Pkt_cnt=%d, Channel_msb=%d, Pwdb_a=%d, Gain_a=%d, TRSW=%d, AGC_table_b=%d, AGC_table_c=%d,\n", - rpt0->pkt_cnt, rpt0->channel_msb, rpt0->pwdb_a, - rpt0->gain_a, rpt0->trsw, rpt0->agc_table_b, - rpt0->agc_table_c); - pr_debug("[4] Path_Sel_o=%d, Gnt_BT_keep_cnt=%d, HW_AntSW_occur_keep_cck=%d,\n Band=%d, Channel=%d, AGC_table_a=%d, l_RXSC=%d, AGC_table_d=%d\n", - rpt0->path_sel_o, rpt0->gnt_bt_keep_cck, - rpt0->hw_antsw_occur_keep_cck, rpt0->band, - rpt0->channel, rpt0->agc_table_a, rpt0->l_rxsc, - rpt0->agc_table_d); - pr_debug("[8] AntIdx={%d, %d, %d, %d}, Length=%d\n", - rpt0->antidx_d, rpt0->antidx_c, rpt0->antidx_b, - rpt0->antidx_a, rpt0->length); - pr_debug("[12] MF_off=%d, SQloss=%d, lockbit=%d, raterr=%d, rxrate=%d, lna_h_a=%d, CCK_BB_power_a=%d, lna_l_a=%d, vga_a=%d, sq=%d\n", - rpt0->mf_off, rpt0->sqloss, rpt0->lockbit, - rpt0->raterr, rpt0->rxrate, rpt0->lna_h_a, - rpt0->bb_power_a, rpt0->lna_l_a, rpt0->vga_a, - rpt0->signal_quality); - pr_debug("[16] Gain_b=%d, lna_h_b=%d, CCK_BB_power_b=%d, lna_l_b=%d, vga_b=%d, Pwdb_b=%d\n", - rpt0->gain_b, rpt0->lna_h_b, rpt0->bb_power_b, - rpt0->lna_l_b, rpt0->vga_b, rpt0->pwdb_b); - pr_debug("[20] Gain_c=%d, lna_h_c=%d, CCK_BB_power_c=%d, lna_l_c=%d, vga_c=%d, Pwdb_c=%d\n", - rpt0->gain_c, rpt0->lna_h_c, rpt0->bb_power_c, - rpt0->lna_l_c, rpt0->vga_c, rpt0->pwdb_c); - pr_debug("[24] Gain_d=%d, lna_h_d=%d, CCK_BB_power_d=%d, lna_l_d=%d, vga_d=%d, Pwdb_d=%d\n", - rpt0->gain_c, rpt0->lna_h_c, rpt0->bb_power_c, - rpt0->lna_l_c, rpt0->vga_c, rpt0->pwdb_c); + if (dm->support_ic_type & ODM_RTL8723F) { + #if (RTL8723F_SUPPORT) + pr_debug("[0] Pop_idx=%d, Pkt_cnt=%d, Channel_msb=%d, AGC_table_path0=%d, TRSW_mux_keep=%d, HW_AntSW_occur_keep_cck=%d, Gnt_BT_keep_cnt=%d,Rssi_msb=%d\n", + rpt5->pop_idx, rpt5->pkt_cnt, + rpt5->channel_msb, rpt5->agc_table_a, + rpt5->trsw, rpt5->hw_antsw_occur_keep_cck, + rpt5->gnt_bt_keep_cck, rpt5->rssi_msb); + pr_debug("[4] Channel=%d, Antidx_CCK_keep=%d, Cck_mp_gain_idx_keep=%d\n", + rpt5->channel, rpt5->antidx_a, + rpt5->mp_gain_idx_a); + pr_debug("[8] Rssi=%d\n",rpt5->rssi); + pr_debug("[12] Avg_cfo=%d\n",rpt5->avg_cfo); + pr_debug("[16] Coarse_cfo=%d, Coarse_cfo_msb=%d, Avg_cfo_msb=%d, Evm_hdr=%d\n", + rpt5->coarse_cfo, rpt5->coarse_cfo_msb, + rpt5->avg_cfo_msb, rpt5->evm_hdr); + pr_debug("[20] Evm_pld=%d\n",rpt5->evm_pld); + #endif + } else { + pr_debug("[0] Pkt_cnt=%d, Channel_msb=%d, Pwdb_a=%d, Gain_a=%d, TRSW=%d, AGC_table_b=%d, AGC_table_c=%d,\n", + rpt0->pkt_cnt, rpt0->channel_msb, rpt0->pwdb_a, + rpt0->gain_a, rpt0->trsw, rpt0->agc_table_b, + rpt0->agc_table_c); + pr_debug("[4] Path_Sel_o=%d, Gnt_BT_keep_cnt=%d, HW_AntSW_occur_keep_cck=%d,\n Band=%d, Channel=%d, AGC_table_a=%d, l_RXSC=%d, AGC_table_d=%d\n", + rpt0->path_sel_o, rpt0->gnt_bt_keep_cck, + rpt0->hw_antsw_occur_keep_cck, rpt0->band, + rpt0->channel, rpt0->agc_table_a, rpt0->l_rxsc, + rpt0->agc_table_d); + pr_debug("[8] AntIdx={%d, %d, %d, %d}, Length=%d\n", + rpt0->antidx_d, rpt0->antidx_c, rpt0->antidx_b, + rpt0->antidx_a, rpt0->length); + pr_debug("[12] MF_off=%d, SQloss=%d, lockbit=%d, raterr=%d, rxrate=%d, lna_h_a=%d, CCK_BB_power_a=%d, lna_l_a=%d, vga_a=%d, sq=%d\n", + rpt0->mf_off, rpt0->sqloss, rpt0->lockbit, + rpt0->raterr, rpt0->rxrate, rpt0->lna_h_a, + rpt0->bb_power_a, rpt0->lna_l_a, rpt0->vga_a, + rpt0->signal_quality); + pr_debug("[16] Gain_b=%d, lna_h_b=%d, CCK_BB_power_b=%d, lna_l_b=%d, vga_b=%d, Pwdb_b=%d\n", + rpt0->gain_b, rpt0->lna_h_b, rpt0->bb_power_b, + rpt0->lna_l_b, rpt0->vga_b, rpt0->pwdb_b); + pr_debug("[20] Gain_c=%d, lna_h_c=%d, CCK_BB_power_c=%d, lna_l_c=%d, vga_c=%d, Pwdb_c=%d\n", + rpt0->gain_c, rpt0->lna_h_c, rpt0->bb_power_c, + rpt0->lna_l_c, rpt0->vga_c, rpt0->pwdb_c); + pr_debug("[24] Gain_d=%d, lna_h_d=%d, CCK_BB_power_d=%d, lna_l_d=%d, vga_d=%d, Pwdb_d=%d\n", + rpt0->gain_c, rpt0->lna_h_c, rpt0->bb_power_c, + rpt0->lna_l_c, rpt0->vga_c, rpt0->pwdb_c); + } } else if (phy_status_page_num == 1) { pr_debug("[0] pwdb[C:A]={%d, %d, %d}, Channel_pri_msb=%d, Pkt_cnt=%d,\n", rpt1->pwdb_c, rpt1->pwdb_b, rpt1->pwdb_a, @@ -1938,7 +1970,9 @@ void phydm_get_physts_0_jgr3(struct dm_struct *dm, u8 *phy_status_inf, if (dm->support_ic_type & ODM_RTL8197G) { if (dm->rx_ant_status == BB_PATH_B) { phy_sts->pwdb_b = phy_sts->pwdb_a; + phy_sts->gain_b = phy_sts->gain_a; phy_sts->pwdb_a = 0; + phy_sts->gain_a = 0; } } #endif @@ -2020,9 +2054,11 @@ void phydm_get_physts_0_jgr3(struct dm_struct *dm, u8 *phy_status_inf, dbg_i->is_ldpc_pkt = false; dbg_i->is_stbc_pkt = false; + /*cck channel has hw bug, [WLANBB-1429]*/ + phy_info->rx_count = (rx_cnt > 0) ? rx_cnt - 1 : 0; /*from 1~4 to 0~3 */ + phy_info->channel = 0; phy_info->rx_power = rx_pwr_db_max; phy_info->recv_signal_power = rx_pwr_db_max; - phy_info->channel = phy_sts->channel; phy_info->is_beamformed = false; phy_info->is_mu_packet = false; phy_info->rxsc = phy_sts->l_rxsc; @@ -2138,7 +2174,79 @@ void phydm_get_physts_5_others_jgr3(struct dm_struct *dm, u8 *phy_status_inf, struct phy_sts_rpt_jgr3_type5 *phy_sts = NULL; } +#if (RTL8723F_SUPPORT) +void phydm_get_physts_6_jgr3(struct dm_struct *dm, u8 *phy_status_inf, + struct phydm_perpkt_info_struct *pktinfo, + struct phydm_phyinfo_struct *phy_info) +{ + /* type 0 is used for cck packet */ + struct phy_sts_rpt_jgr3_type6 *phy_sts = NULL; + struct odm_phy_dbg_info *dbg_i = &dm->phy_dbg_info; + u8 sq = 0, i, rx_cnt = 0; + s8 rx_power[4], pwdb; + s8 rx_pwr_db_max = -120; + u8 evm = 0; + phy_sts = (struct phy_sts_rpt_jgr3_type6 *)phy_status_inf; + /* judy_add_8723F_0512 */ + /* rssi S(11,3) */ + rx_power[0] = (s8)((phy_sts->rssi_msb << 5) + (phy_sts->rssi >> 3)); + /* @Update per-path information */ + for (i = RF_PATH_A; i < dm->num_rf_path; i++) { + if ((dm->rx_ant_status & BIT(i)) == 0) + continue; + rx_cnt++; /* @check the number of the ant */ + + if (rx_cnt > dm->num_rf_path) + break; + + if (pktinfo->is_to_self) + dm->ofdm_agc_idx[i] = rx_power[i]+110; + + /* @Setting the RX power: agc_idx dBm*/ + pwdb = rx_power[i]; + + phy_info->rx_pwr[i] = pwdb; + phy_info->rx_mimo_signal_strength[i] = phydm_pw_2_percent(pwdb); + + /* search maximum pwdb */ + if (pwdb > rx_pwr_db_max) + rx_pwr_db_max = pwdb; + } + + /* @Calculate EVM U(8,2)*/ + evm = phy_sts->evm_pld >> 2; + if (pktinfo->data_rate > ODM_RATE2M) + phy_info->rx_cck_evm = (u8)(evm - 10);/* @5_5M/11M*/ + else + phy_info->rx_cck_evm = (u8)(evm - 12);/* @1M/2M*/ + + sq = (phy_info->rx_cck_evm >= 34) ? 100 : phy_info->rx_cck_evm * 3; + phy_info->signal_quality = sq; + /*@CCK no STBC and LDPC*/ + dbg_i->is_ldpc_pkt = false; + dbg_i->is_stbc_pkt = false; + + /*cck channel has hw bug, [WLANBB-1429]*/ + phy_info->rx_count = (rx_cnt > 0) ? rx_cnt - 1 : 0; /*from 1~4 to 0~3 */ + phy_info->channel = 0; + phy_info->rx_power = rx_pwr_db_max; + phy_info->recv_signal_power = rx_pwr_db_max; + phy_info->is_beamformed = false; + phy_info->is_mu_packet = false; + phy_info->rx_pwdb_all = phydm_pw_2_percent(rx_pwr_db_max); + phy_info->band_width = CHANNEL_WIDTH_20; + + //phydm_parsing_cfo(dm, pktinfo, phy_sts->avg_cfo, pktinfo->rate_ss); + + #ifdef CONFIG_PHYDM_ANTENNA_DIVERSITY + dm->dm_fat_table.antsel_rx_keep_0 = phy_sts->antidx_a; + dm->dm_fat_table.antsel_rx_keep_1 = 0; + dm->dm_fat_table.antsel_rx_keep_2 = 0; + dm->dm_fat_table.antsel_rx_keep_3 = 0; + #endif +} +#endif void phydm_get_physts_ofdm_cmn_jgr3(struct dm_struct *dm, u8 *phy_status_inf, struct phydm_perpkt_info_struct *pktinfo, struct phydm_phyinfo_struct *phy_info) @@ -2287,7 +2395,10 @@ void phydm_rx_physts_jgr3(void *dm_void, u8 *phy_sts, { struct dm_struct *dm = (struct dm_struct *)dm_void; u8 phy_status_type = (*phy_sts & 0xf); - + if (dm->support_ic_type & ODM_RTL8723F) { + if (pktinfo->data_rate <= ODM_RATE11M) + phy_status_type = 6; + } /*@[Step 2]*/ /*phydm_reset_phy_info_jgr3(dm, phy_info);*/ /* @Memory reset */ @@ -2313,6 +2424,11 @@ void phydm_rx_physts_jgr3(void *dm_void, u8 *phy_sts, phydm_get_physts_ofdm_cmn_jgr3(dm, phy_sts, pktinfo, phy_info); phydm_get_physts_5_others_jgr3(dm, phy_sts, pktinfo, phy_info); break; +#if (RTL8723F_SUPPORT) + case 6: + phydm_get_physts_6_jgr3(dm, phy_sts, pktinfo, phy_info); + break; +#endif default: break; } @@ -3109,8 +3225,7 @@ void phydm_physts_dbg(void *dm_void, char input[][16], u32 *_used, u8 i = 0; for (i = 0; i < 3; i++) { - if (input[i + 1]) - PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &var[i]); + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &var[i]); } if ((strcmp(input[1], help) == 0)) { diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_phystatus.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_phystatus.h index 6ec722af..c65b6245 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_phystatus.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_phystatus.h @@ -26,8 +26,8 @@ #ifndef __PHYDM_PHYSTATUS_H__ #define __PHYDM_PHYSTATUS_H__ -/* 2019.06.24 remove the condition of is_packet_beacon for basic dbg msg*/ -#define PHYSTS_VERSION "1.0" +/* 2020.07.03 fix cck report bug due to 8723F coding error*/ +#define PHYSTS_VERSION "1.2" /*@--------------------------Define ------------------------------------------*/ #define CCK_RSSI_INIT_COUNT 5 @@ -648,7 +648,79 @@ __PACK struct phy_sts_rpt_jgr3_type0 { u8 gain_d : 6; #endif }; +#if(RTL8723F_SUPPORT) +__PACK struct phy_sts_rpt_jgr3_type6 { + /* judy_add_8723F_0512 */ +/* @DW0 : Offset 0 */ +#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE) + u8 pop_idx : 4; + u8 pkt_cnt : 2; + u8 channel_msb : 2; +#else + u8 channel_msb : 2; + u8 pkt_cnt : 2; + u8 pop_idx : 4; +#endif +#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE) + u8 agc_table_a : 4; + u8 rsvd_0 : 4; +#else + u8 rsvd_0 : 4; + u8 agc_table_a : 4; +#endif + u8 rsvd_1 : 8; +#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE) + u8 trsw : 1; + u8 hw_antsw_occur_keep_cck : 1; + u8 gnt_bt_keep_cck : 1; + u8 rssi_msb : 3; + u8 rsvd_2 : 2; +#else + u8 rsvd_2 : 2; + u8 rssi_msb : 3; + u8 gnt_bt_keep_cck : 1; + u8 hw_antsw_occur_keep_cck : 1; + u8 trsw : 1; +#endif + +/* @DW1 : Offset 4 */ + u8 channel; +#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE) + u8 antidx_a : 4; + u8 rsvd_2_1 : 4; +#else + u8 rsvd_2_1 : 4; + u8 antidx_a : 4; +#endif + u8 rsvd_2_2; + u8 mp_gain_idx_a; + +/* @DW2 : Offset 8 */ + u16 rsvd_3_1; + u8 rsvd_4_1; + u8 rssi; + +/* @DW3 : Offset 12 */ + u16 rsvd_4_2; + u8 rsvd_5_1; + u8 avg_cfo; +/* @DW4 : Offset 16 */ + u8 coarse_cfo; +#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE) + u8 coarse_cfo_msb : 4; + u8 avg_cfo_msb : 4; +#else + u8 avg_cfo_msb : 4; + u8 coarse_cfo_msb : 4; +#endif + u8 evm_hdr; + u8 evm_pld; +/* @DW5 : Offset 20 */ + u32 rsvd_6_1; + u32 rsvd_7_1; +}; +#endif __PACK struct phy_sts_rpt_jgr3_type1 { /* @DW0 : Offset 0 */ #if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE) diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pmac_tx_setting.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pmac_tx_setting.c index 5d94a6d2..296f39c3 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pmac_tx_setting.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pmac_tx_setting.c @@ -32,7 +32,6 @@ #ifdef PHYDM_PMAC_TX_SETTING_SUPPORT #ifdef PHYDM_IC_JGR3_SERIES_SUPPORT - void phydm_start_cck_cont_tx_jgr3(void *dm_void, struct phydm_pmac_info *tx_info) { @@ -42,14 +41,17 @@ void phydm_start_cck_cont_tx_jgr3(void *dm_void, /* if CCK block on? */ if (!odm_get_bb_reg(dm, R_0x1c3c, BIT(1))) - odm_set_bb_reg(dm, R_0x1c3c, BIT(1), 1); - + odm_set_bb_reg(dm, R_0x1c3c, BIT(1), 0x1); + if (dm->support_ic_type & ODM_RTL8723F) { + odm_set_bb_reg(dm, R_0x2a08, BIT(21)|BIT(20), rate); + odm_set_bb_reg(dm, R_0x2a04, BIT(5), 0x0); /* turn on scrambler*/ + } else { /* Turn Off All Test mode */ odm_set_bb_reg(dm, R_0x1ca4, 0x7, 0x0); odm_set_bb_reg(dm, R_0x1a00, 0x3000, rate); odm_set_bb_reg(dm, R_0x1a00, 0x3, 0x2); /* transmit mode */ - odm_set_bb_reg(dm, R_0x1a00, BIT(3), 0x1); /* turn on scramble*/ + odm_set_bb_reg(dm, R_0x1a00, BIT(3), 0x1); /* turn on scrambler*/ /* Fix rate selection issue */ odm_set_bb_reg(dm, R_0x1a70, BIT(14), 0x1); @@ -57,7 +59,7 @@ void phydm_start_cck_cont_tx_jgr3(void *dm_void, odm_set_bb_reg(dm, R_0x1a14, 0x300, 0x3); /* set loopback mode */ odm_set_bb_reg(dm, R_0x1c3c, BIT(4), 0x1); - + } pmac_tx->cck_cont_tx = true; pmac_tx->ofdm_cont_tx = false; } @@ -70,13 +72,18 @@ void phydm_stop_cck_cont_tx_jgr3(void *dm_void) pmac_tx->cck_cont_tx = false; pmac_tx->ofdm_cont_tx = false; - odm_set_bb_reg(dm, R_0x1a00, 0x3, 0x0); /* normal mode */ - odm_set_bb_reg(dm, R_0x1a00, BIT(3), 0x1); /* turn on scramble*/ + if (dm->support_ic_type & ODM_RTL8723F) { + /* @Disable pmac tx_en*/ + odm_set_bb_reg(dm, R_0x2a04, BIT(5), 0x0); /* turn on scrambler*/ + } else { + odm_set_bb_reg(dm, R_0x1a00, 0x3, 0x0); /* normal mode */ + odm_set_bb_reg(dm, R_0x1a00, BIT(3), 0x1); /* turn on scrambler*/ - /* back to default */ - odm_set_bb_reg(dm, R_0x1a70, BIT(14), 0x0); - odm_set_bb_reg(dm, R_0x1a14, 0x300, 0x0); - odm_set_bb_reg(dm, R_0x1c3c, BIT(4), 0x0); + /* back to default */ + odm_set_bb_reg(dm, R_0x1a70, BIT(14), 0x0); + odm_set_bb_reg(dm, R_0x1a14, 0x300, 0x0); + odm_set_bb_reg(dm, R_0x1c3c, BIT(4), 0x0); + } /* BB Reset */ odm_set_bb_reg(dm, R_0x1d0c, BIT(16), 0x0); odm_set_bb_reg(dm, R_0x1d0c, BIT(16), 0x1); @@ -89,14 +96,15 @@ void phydm_start_ofdm_cont_tx_jgr3(void *dm_void) /* 1. if OFDM block on */ if (!odm_get_bb_reg(dm, R_0x1c3c, BIT(0))) - odm_set_bb_reg(dm, R_0x1c3c, BIT(0), 1); + odm_set_bb_reg(dm, R_0x1c3c, BIT(0), 0x1); + if (!(dm->support_ic_type & ODM_RTL8723F)) { - /* 2. set CCK test mode off, set to CCK normal mode */ - odm_set_bb_reg(dm, R_0x1a00, 0x3, 0); - - /* 3. turn on scramble setting */ - odm_set_bb_reg(dm, R_0x1a00, BIT(3), 1); + /* 2. set CCK test mode off, set to CCK normal mode */ + odm_set_bb_reg(dm, R_0x1a00, 0x3, 0x0); + /* 3. turn on scramble setting */ + odm_set_bb_reg(dm, R_0x1a00, BIT(3), 0x1); + } /* 4. Turn On Continue Tx and turn off the other test modes. */ odm_set_bb_reg(dm, R_0x1ca4, 0x7, 0x1); @@ -123,145 +131,45 @@ void phydm_stop_ofdm_cont_tx_jgr3(void *dm_void) odm_set_bb_reg(dm, R_0x1d0c, BIT(16), 0x1); } -void phydm_set_single_tone_jgr3(void *dm_void, boolean is_single_tone, - boolean en_pmac_tx, u8 path) -{ - struct dm_struct *dm = (struct dm_struct *)dm_void; - struct phydm_pmac_tx *pmac_tx = &dm->dm_pmac_tx_table; - u8 start = RF_PATH_A, end = RF_PATH_A; - u8 i = 0; - - switch (path) { - case RF_PATH_A: - case RF_PATH_B: - case RF_PATH_C: - case RF_PATH_D: - start = path; - end = path; - break; - case RF_PATH_AB: - start = RF_PATH_A; - end = RF_PATH_B; - break; -#if (RTL8814B_SUPPORT || RTL8198F_SUPPORT) - case RF_PATH_AC: - start = RF_PATH_A; - end = RF_PATH_C; - break; - case RF_PATH_AD: - start = RF_PATH_A; - end = RF_PATH_D; - break; - case RF_PATH_BC: - start = RF_PATH_B; - end = RF_PATH_C; - break; - case RF_PATH_BD: - start = RF_PATH_B; - end = RF_PATH_D; - break; - case RF_PATH_CD: - start = RF_PATH_C; - end = RF_PATH_D; - break; - case RF_PATH_ABC: - start = RF_PATH_A; - end = RF_PATH_C; - break; - case RF_PATH_ABD: - start = RF_PATH_A; - end = RF_PATH_D; - break; - case RF_PATH_ACD: - start = RF_PATH_A; - end = RF_PATH_D; - break; - case RF_PATH_BCD: - start = RF_PATH_B; - end = RF_PATH_D; - break; - case RF_PATH_ABCD: - start = RF_PATH_A; - end = RF_PATH_D; - break; -#endif - } - - if (is_single_tone) { - pmac_tx->tx_scailing = odm_get_bb_reg(dm, R_0x81c, MASKDWORD); - - if (!en_pmac_tx) { - phydm_start_ofdm_cont_tx_jgr3(dm); - /*SendPSPoll(pAdapter);*/ - } - - odm_set_bb_reg(dm, R_0x1c68, BIT(24), 0x1); /* Disable CCA */ - - for (i = start; i <= end; i++) { - /* Tx mode: RF0x00[19:16]=4'b0010 */ - /* odm_set_rf_reg(dm, i, RF_0x0, 0xF0000, 0x2); */ - /* Lowest RF gain index: RF_0x0[4:0] = 0*/ - odm_set_rf_reg(dm, i, RF_0x0, 0x1F, 0x0); - /* RF LO enabled */ - odm_set_rf_reg(dm, i, RF_0x58, BIT(1), 0x1); - } - #if (RTL8814B_SUPPORT) - if (dm->support_ic_type & ODM_RTL8814B) { - /* Tx mode: RF0x00[19:16]=4'b0010 */ - /* config_phydm_write_rf_syn_8814b(dm, RF_SYN0, RF_0x0, - * 0xF0000, 0x2); - */ - /* Lowest RF gain index: RF_0x0[4:0] = 0*/ - config_phydm_write_rf_syn_8814b(dm, RF_SYN0, RF_0x0, - 0x1F, 0x0); - /* RF LO enabled */ - config_phydm_write_rf_syn_8814b(dm, RF_SYN0, RF_0x58, - BIT(1), 0x1); - } - #endif - odm_set_bb_reg(dm, R_0x81c, 0x001FC000, 0); - } else { - for (i = start; i <= end; i++) { - /* RF LO disabled */ - odm_set_rf_reg(dm, i, RF_0x58, BIT(1), 0x0); - } - odm_set_bb_reg(dm, R_0x1c68, BIT(24), 0x0); /* Enable CCA */ - - if (!en_pmac_tx) - phydm_stop_ofdm_cont_tx_jgr3(dm); - - odm_set_bb_reg(dm, R_0x81c, MASKDWORD, pmac_tx->tx_scailing); - } -} - void phydm_stop_pmac_tx_jgr3(void *dm_void, struct phydm_pmac_info *tx_info) { struct dm_struct *dm = (struct dm_struct *)dm_void; struct phydm_pmac_tx *pmac_tx = &dm->dm_pmac_tx_table; u32 tmp = 0; - if (tx_info->mode == CONT_TX) { - odm_set_bb_reg(dm, R_0x1e70, 0xf, 0x2); /* TX Stop */ + odm_set_bb_reg(dm, R_0x1e70, 0xf, 0x2); /* TX Stop */ + if (dm->support_ic_type & ODM_RTL8723F) { + if (tx_info->mode == CONT_TX) { + if (pmac_tx->is_cck_rate) { + /* TX Stop */ + odm_set_bb_reg(dm, R_0x2a00, BIT(0), 0x1); + /* Clear BB cont tx */ + odm_set_bb_reg(dm, R_0x2a00, BIT(28), 0x0); + /* Clear PMAC cont tx */ + odm_set_bb_reg(dm, R_0x2a08, BIT(17), 0x0); + /* Clear TX Stop */ + odm_set_bb_reg(dm, R_0x2a00, BIT(0), 0x0); + phydm_stop_cck_cont_tx_jgr3(dm); + } else + phydm_stop_ofdm_cont_tx_jgr3(dm); + } else { + if (pmac_tx->is_cck_rate) { + /* packet_count = 0x1 */ + odm_set_bb_reg(dm, R_0x2a04, 0x03ff0000, 0x1); + /* @Disable pmac tx_en*/ + odm_set_bb_reg(dm, R_0x2a08, BIT(31), 0x0); + /* @Enable pmac tx_en*/ + odm_set_bb_reg(dm, R_0x2a08, BIT(31), 0x1); + phydm_stop_cck_cont_tx_jgr3(dm); + } + } + }else { + if (tx_info->mode == CONT_TX) { if (pmac_tx->is_cck_rate) phydm_stop_cck_cont_tx_jgr3(dm); else phydm_stop_ofdm_cont_tx_jgr3(dm); - } else { - if (pmac_tx->is_cck_rate) { - tmp = odm_get_bb_reg(dm, R_0x2de4, MASKLWORD); - odm_set_bb_reg(dm, R_0x1e64, MASKLWORD, tmp + 50); } - odm_set_bb_reg(dm, R_0x1e70, 0xf, 0x2); /* TX Stop */ - } - - if (tx_info->mode == OFDM_SINGLE_TONE_TX) { - /* Stop HW TX -> Stop Continuous TX -> Stop RF Setting */ - if (pmac_tx->is_cck_rate) - phydm_stop_cck_cont_tx_jgr3(dm); - else - phydm_stop_ofdm_cont_tx_jgr3(dm); - - phydm_set_single_tone_jgr3(dm, false, true, pmac_tx->path); } } @@ -272,41 +180,39 @@ void phydm_set_mac_phy_txinfo_jgr3(void *dm_void, struct phydm_pmac_tx *pmac_tx = &dm->dm_pmac_tx_table; u32 tmp = 0; - odm_set_bb_reg(dm, R_0xa58, 0x003F8000, tx_info->tx_rate); + odm_set_bb_reg(dm, R_0xa58, 0x003f8000, tx_info->tx_rate); - /* 0x900[1] ndp_sound */ + /*0x900[1] ndp_sound */ odm_set_bb_reg(dm, R_0x900, BIT(1), tx_info->ndp_sound); #if (DM_ODM_SUPPORT_TYPE & (ODM_WIN | ODM_CE)) tx_info->m_stbc = tx_info->m_stbc - 1; #endif - - /* 0x900[27:24] txsc [29:28] bw [31:30] m_stbc */ + /*0x900[27:24] txsc [29:28] bw [31:30] m_stbc */ tmp = (tx_info->tx_sc) | ((tx_info->bw) << 4) | ((tx_info->m_stbc) << 6); + odm_set_bb_reg(dm, R_0x900, 0xff000000, tmp); - if (tx_info->tx_sc == 1) /* upper*/ + if (tx_info->tx_sc == 1) /*upper*/ odm_set_bb_reg(dm, R_0x1ae0, 0x7000, 0x5); - else if (tx_info->tx_sc == 2) /* lower*/ + else if (tx_info->tx_sc == 2) /*lower*/ odm_set_bb_reg(dm, R_0x1ae0, 0x7000, 0x6); else /* duplicate*/ odm_set_bb_reg(dm, R_0x1ae0, 0x7000, 0x0); - odm_set_bb_reg(dm, R_0x900, 0xFF000000, tmp); - - if (pmac_tx->is_ofdm_rate) { - odm_set_bb_reg(dm, R_0x900, BIT(0), 0); - odm_set_bb_reg(dm, R_0x900, BIT(2), 0); - } else if (pmac_tx->is_ht_rate) { - odm_set_bb_reg(dm, R_0x900, BIT(0), 1); - odm_set_bb_reg(dm, R_0x900, BIT(2), 0); + if (pmac_tx->is_ht_rate) { + odm_set_bb_reg(dm, R_0x900, BIT(0), 0x1); + odm_set_bb_reg(dm, R_0x900, BIT(2), 0x0); } else if (pmac_tx->is_vht_rate) { - odm_set_bb_reg(dm, R_0x900, BIT(0), 0); - odm_set_bb_reg(dm, R_0x900, BIT(2), 1); + odm_set_bb_reg(dm, R_0x900, BIT(0), 0x0); + odm_set_bb_reg(dm, R_0x900, BIT(2), 0x1); + } else { + odm_set_bb_reg(dm, R_0x900, BIT(0), 0x0); + odm_set_bb_reg(dm, R_0x900, BIT(2), 0x0); } - tmp = tx_info->packet_period; /* for TX interval */ - odm_set_bb_reg(dm, R_0x9b8, 0xffff0000, tmp); + /* for TX interval */ + odm_set_bb_reg(dm, R_0x9b8, MASKHWORD, tx_info->packet_period); } void phydm_set_sig_jgr3(void *dm_void, struct phydm_pmac_info *tx_info) @@ -318,24 +224,12 @@ void phydm_set_sig_jgr3(void *dm_void, struct phydm_pmac_info *tx_info) if (pmac_tx->is_cck_rate) return; - /* L-SIG */ odm_set_bb_reg(dm, R_0x1eb4, 0xfffff, tx_info->packet_count); + /* L-SIG */ tmp = BYTE_2_DWORD(0, tx_info->lsig[2], tx_info->lsig[1], tx_info->lsig[0]); odm_set_bb_reg(dm, R_0x908, 0xffffff, tmp); -#if 0 - /* @0x924[7:0] = Data init octet */ - tmp = tx_info->packet_pattern; - odm_set_bb_reg(dm, R_0x924, 0xff, tmp); - - if (tx_info->packet_pattern == RANDOM_BY_PN32) - tmp = 0x3; - else - tmp = 0x0; - - odm_set_bb_reg(dm, R_0x914, 0x60000000, tmp); -#endif if (pmac_tx->is_ht_rate) { /* HT SIG */ tmp = BYTE_2_DWORD(0, tx_info->ht_sig[2], tx_info->ht_sig[1], @@ -357,10 +251,8 @@ void phydm_set_sig_jgr3(void *dm_void, struct phydm_pmac_info *tx_info) tmp = BYTE_2_DWORD(tx_info->vht_sig_b[3], tx_info->vht_sig_b[2], tx_info->vht_sig_b[1], tx_info->vht_sig_b[0]); - odm_set_bb_reg(dm, R_0x914, 0x1FFFFFFF, tmp); - - tmp = tx_info->vht_sig_b_crc; - odm_set_bb_reg(dm, R_0x938, 0xff00, tmp); + odm_set_bb_reg(dm, R_0x914, 0x1fffffff, tmp); + odm_set_bb_reg(dm, R_0x938, 0xff00, tx_info->vht_sig_b_crc); tmp = BYTE_2_DWORD(tx_info->vht_delimiter[3], tx_info->vht_delimiter[2], @@ -376,22 +268,39 @@ void phydm_set_cck_preamble_hdr_jgr3(void *dm_void, struct dm_struct *dm = (struct dm_struct *)dm_void; struct phydm_pmac_tx *pmac_tx = &dm->dm_pmac_tx_table; u32 tmp = 0; + u8 rate = tx_info->tx_rate; /* HW rate */ if (!pmac_tx->is_cck_rate) return; - tmp = tx_info->packet_count | (tx_info->sfd << 16); - odm_set_bb_reg(dm, R_0x1e64, MASKDWORD, tmp); - tmp = tx_info->signal_field | (tx_info->service_field << 8) | - (tx_info->length << 16); - odm_set_bb_reg(dm, R_0x1e68, MASKDWORD, tmp); - tmp = BYTE_2_DWORD(0, 0, tx_info->crc16[1], tx_info->crc16[0]); - odm_set_bb_reg(dm, R_0x1e6c, 0xffff, tmp); + if (dm->support_ic_type & ODM_RTL8723F) { + #if (RTL8723F_SUPPORT) + odm_set_bb_reg(dm, R_0x2a04, 0x03ff0000, tx_info->packet_count); + odm_set_bb_reg(dm, R_0x2a08, BIT(22), tx_info->service_field_bit2); + odm_set_bb_reg(dm, R_0x2a08, BIT(21) | BIT(20), rate); + odm_set_bb_reg(dm, R_0x2a08, 0x1ffff, tx_info->packet_length); + /* turn on scrambler */ + odm_set_bb_reg(dm, R_0x2a04, BIT(5), 0x0); - if (tx_info->is_short_preamble) - odm_set_bb_reg(dm, R_0x1e6c, BIT(16), 0); - else - odm_set_bb_reg(dm, R_0x1e6c, BIT(16), 1); + if (tx_info->is_short_preamble) + odm_set_bb_reg(dm, R_0x2a08, BIT(19), 0x1); + else + odm_set_bb_reg(dm, R_0x2a08, BIT(19), 0x0); + #endif + } else { + tmp = tx_info->packet_count | (tx_info->sfd << 16); + odm_set_bb_reg(dm, R_0x1e64, MASKDWORD, tmp); + tmp = tx_info->signal_field | (tx_info->service_field << 8) | + (tx_info->length << 16); + odm_set_bb_reg(dm, R_0x1e68, MASKDWORD, tmp); + tmp = BYTE_2_DWORD(0, 0, tx_info->crc16[1], tx_info->crc16[0]); + odm_set_bb_reg(dm, R_0x1e6c, MASKLWORD, tmp); + + if (tx_info->is_short_preamble) + odm_set_bb_reg(dm, R_0x1e6c, BIT(16), 0x0); + else + odm_set_bb_reg(dm, R_0x1e6c, BIT(16), 0x1); + } } void phydm_set_mode_jgr3(void *dm_void, struct phydm_pmac_info *tx_info, @@ -403,14 +312,6 @@ void phydm_set_mode_jgr3(void *dm_void, struct phydm_pmac_info *tx_info, if (mode == CONT_TX) { tx_info->packet_count = 1; - if (pmac_tx->is_cck_rate) - phydm_start_cck_cont_tx_jgr3(dm, tx_info); - else - phydm_start_ofdm_cont_tx_jgr3(dm); - } else if (mode == OFDM_SINGLE_TONE_TX) { - /* Continuous TX -> HW TX -> RF Setting */ - tx_info->packet_count = 1; - if (pmac_tx->is_cck_rate) phydm_start_cck_cont_tx_jgr3(dm, tx_info); else @@ -423,24 +324,37 @@ void phydm_set_pmac_txon_jgr3(void *dm_void, struct phydm_pmac_info *tx_info) struct dm_struct *dm = (struct dm_struct *)dm_void; struct phydm_pmac_tx *pmac_tx = &dm->dm_pmac_tx_table; - odm_set_bb_reg(dm, R_0x1d08, BIT(0), 1); /* Turn on PMAC */ + odm_set_bb_reg(dm, R_0x1d08, BIT(0), 0x1); /*Turn on PMAC */ - /* mac scramble seed setting, only in 8198F */ - #if (RTL8198F_SUPPORT) - if (dm->support_ic_type & ODM_RTL8198F) - if (!odm_get_bb_reg(dm, R_0x1d10, BIT(16))) - odm_set_bb_reg(dm, R_0x1d10, BIT(16), 1); - #endif - - if (pmac_tx->is_cck_rate) { - odm_set_bb_reg(dm, R_0x1e70, 0xf, 8); /* TX CCK ON */ - odm_set_bb_reg(dm, R_0x1a84, BIT(31), 0); + if (dm->support_ic_type & ODM_RTL8723F) { + if (pmac_tx->is_cck_rate) { + if (tx_info->mode == CONT_TX) { + /* BB and PMAC cont tx */ + odm_set_bb_reg(dm, R_0x2a08, BIT(17), 0x1); + odm_set_bb_reg(dm, R_0x2a00, BIT(28), 0x1); + } + /* TX CCK ON */ + odm_set_bb_reg(dm, R_0x2a08, BIT(31), 0x0); + odm_set_bb_reg(dm, R_0x2a08, BIT(31), 0x1); + } else { + odm_set_bb_reg(dm, R_0x1e70, 0xf, 0x0); /*TX Ofdm OFF */ + odm_set_bb_reg(dm, R_0x1e70, 0xf, 0x4); /*TX Ofdm ON */ + } } else { - odm_set_bb_reg(dm, R_0x1e70, 0xf, 4); /* TX Ofdm ON */ + /*mac scramble seed setting, only in 8198F */ + #if (RTL8198F_SUPPORT) + if (dm->support_ic_type & ODM_RTL8198F) + if (!odm_get_bb_reg(dm, R_0x1d10, BIT(16))) + odm_set_bb_reg(dm, R_0x1d10, BIT(16), 0x1); + #endif + + if (pmac_tx->is_cck_rate){ + odm_set_bb_reg(dm, R_0x1e70, 0xf, 0x8); /*TX CCK ON */ + odm_set_bb_reg(dm, R_0x1a84, BIT(31), 0x0); + } else { + odm_set_bb_reg(dm, R_0x1e70, 0xf, 0x4); /*TX Ofdm ON */ + } } - - if (tx_info->mode == OFDM_SINGLE_TONE_TX) - phydm_set_single_tone_jgr3(dm, true, true, pmac_tx->path); } void phydm_set_pmac_tx_jgr3(void *dm_void, struct phydm_pmac_info *tx_info, @@ -477,18 +391,20 @@ void phydm_set_tmac_tx_jgr3(void *dm_void) /* Turn on TMAC */ if (odm_get_bb_reg(dm, R_0x1d08, BIT(0))) - odm_set_bb_reg(dm, R_0x1d08, BIT(0), 0); + odm_set_bb_reg(dm, R_0x1d08, BIT(0), 0x0); /* mac scramble seed setting, only in 8198F */ #if (RTL8198F_SUPPORT) if (dm->support_ic_type & ODM_RTL8198F) if (odm_get_bb_reg(dm, R_0x1d10, BIT(16))) - odm_set_bb_reg(dm, R_0x1d10, BIT(16), 0); + odm_set_bb_reg(dm, R_0x1d10, BIT(16), 0x0); #endif /* Turn on TMAC CCK */ - if ((odm_get_bb_reg(dm, R_0x1a84, BIT(31))) == 0) - odm_set_bb_reg(dm, R_0x1a84, BIT(31), 1); + if (!(dm->support_ic_type & ODM_RTL8723F)) { + if (!odm_get_bb_reg(dm, R_0x1a84, BIT(31))) + odm_set_bb_reg(dm, R_0x1a84, BIT(31), 0x1); + } } #endif @@ -496,42 +412,40 @@ void phydm_start_cck_cont_tx(void *dm_void, struct phydm_pmac_info *tx_info) { struct dm_struct *dm = (struct dm_struct *)dm_void; + #ifdef PHYDM_IC_JGR3_SERIES_SUPPORT if (dm->support_ic_type & ODM_IC_JGR3_SERIES) phydm_start_cck_cont_tx_jgr3(dm, tx_info); + #endif } void phydm_stop_cck_cont_tx(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; + #ifdef PHYDM_IC_JGR3_SERIES_SUPPORT if (dm->support_ic_type & ODM_IC_JGR3_SERIES) phydm_stop_cck_cont_tx_jgr3(dm); + #endif } void phydm_start_ofdm_cont_tx(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; + #ifdef PHYDM_IC_JGR3_SERIES_SUPPORT if (dm->support_ic_type & ODM_IC_JGR3_SERIES) phydm_start_ofdm_cont_tx_jgr3(dm); + #endif } void phydm_stop_ofdm_cont_tx(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; + #ifdef PHYDM_IC_JGR3_SERIES_SUPPORT if (dm->support_ic_type & ODM_IC_JGR3_SERIES) phydm_stop_ofdm_cont_tx_jgr3(dm); -} - -void phydm_set_single_tone(void *dm_void, boolean is_single_tone, - boolean en_pmac_tx, u8 path) -{ - struct dm_struct *dm = (struct dm_struct *)dm_void; - - if (dm->support_ic_type & ODM_IC_JGR3_SERIES) - phydm_set_single_tone_jgr3(dm, is_single_tone, - en_pmac_tx, path); + #endif } void phydm_set_pmac_tx(void *dm_void, struct phydm_pmac_info *tx_info, @@ -539,16 +453,132 @@ void phydm_set_pmac_tx(void *dm_void, struct phydm_pmac_info *tx_info, { struct dm_struct *dm = (struct dm_struct *)dm_void; + #ifdef PHYDM_IC_JGR3_SERIES_SUPPORT if (dm->support_ic_type & ODM_IC_JGR3_SERIES) phydm_set_pmac_tx_jgr3(dm, tx_info, mpt_rf_path); + #endif } void phydm_set_tmac_tx(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; + #ifdef PHYDM_IC_JGR3_SERIES_SUPPORT if (dm->support_ic_type & ODM_IC_JGR3_SERIES) phydm_set_tmac_tx_jgr3(dm); + #endif } -#endif +void phydm_pmac_tx_dbg(void *dm_void, char input[][16], u32 *_used, + char *output, u32 *_out_len) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_pmac_info tx_info; + char help[] = "-h"; + char dbg_buf[PHYDM_SNPRINT_SIZE] = {0}; + u32 var[10] = {0}; + u32 used = *_used; + u32 out_len = *_out_len; + u8 i = 0; + u32 tx_cnt = 0x0; + u8 poll_cnt = 0x0; + + PHYDM_SSCANF(input[1], DCMD_DECIMAL, &var[0]); + + if (!(dm->support_ic_type & ODM_IC_JGR3_SERIES)) + return; + + if ((strcmp(input[1], help) == 0)) { + PDM_SNPF(out_len, used, output + used, out_len - used, + "[pmac_tx] basic : {1} {rate_idx}(only 1M & 6M) {count}\n"); + } else { + for (i = 1; i < 7; i++) { + if (input[i + 1]) { + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, + &var[i]); + } + } + + tx_info.en_pmac_tx = true; + tx_info.mode = PKTS_TX; + tx_info.ndp_sound = false; + tx_info.bw = CHANNEL_WIDTH_20; + tx_info.tx_sc = 0x0; /*duplicate*/ + tx_info.m_stbc = 0x0; /*disable*/ + tx_info.packet_period = 2000; /*d'500 us*/ + tx_info.tx_rate = (u8)var[1]; + tx_info.packet_count = (u32)var[2]; + + if (tx_info.tx_rate == ODM_RATE1M) { + tx_info.signal_field = 0xa; /*rate = 1M*/ + tx_info.service_field = 0x0; + if (dm->support_ic_type & ODM_RTL8723F) { + tx_info.service_field_bit2= 0x1; + tx_info.packet_length = 1000; /*1000 bytes*/ + } + tx_info.length = 8000; /*d'8000 us=1000 bytes*/ + tx_info.crc16[0] = 0x60; + tx_info.crc16[1] = 0x8e; + /*long preamble*/ + tx_info.is_short_preamble = false; + tx_info.sfd = 0xf3a0; + } else if (tx_info.tx_rate == ODM_RATE6M) { + /*l-sig[3:0] = rate = 6M = 0xb*/ + /*l-sig[16:5] = length = 1000 bytes*/ + /*l-sig[17] = parity = 1*/ + tx_info.lsig[0] = 0xb; + tx_info.lsig[1] = 0x7d; + tx_info.lsig[2] = 0x2; + } + phydm_print_rate_2_buff(dm, tx_info.tx_rate, dbg_buf, + PHYDM_SNPRINT_SIZE); + PDM_SNPF(out_len, used, output + used, out_len - used, + "rate=%s, count=%d, pkt_interval=500(us), length=1000(bytes)\n", + dbg_buf, tx_info.packet_count); + + if (phydm_stop_ic_trx(dm, PHYDM_SET) == PHYDM_SET_FAIL) { + PDM_SNPF(out_len, used, output + used, out_len - used, + "check trx idle failed, please try again.\n"); + return; + } + + phydm_reset_bb_hw_cnt(dm); + phydm_set_pmac_tx_jgr3(dm, &tx_info, RF_PATH_A); + + PDM_SNPF(out_len, used, output + used, out_len - used, + "pmac_tx enabled, please wait for tx_cnt = %d\n", + tx_info.packet_count); + while (1) { + if (phydm_is_cck_rate(dm, tx_info.tx_rate)) + tx_cnt = odm_get_bb_reg(dm, R_0x2de4, + MASKLWORD); + else + tx_cnt = odm_get_bb_reg(dm, R_0x2de0, + MASKLWORD); + + if (tx_cnt >= tx_info.packet_count || poll_cnt >= 10) + break; + + ODM_delay_ms(100); + poll_cnt++; + } + + if (tx_cnt < tx_info.packet_count) + PDM_SNPF(out_len, used, output + used, out_len - used, + "polling time out(1s), tx_cnt = %d\n", tx_cnt); + else + PDM_SNPF(out_len, used, output + used, out_len - used, + "pmac_tx finished, poll_cnt = %d\n", poll_cnt); + + tx_info.en_pmac_tx = false; + phydm_set_pmac_tx(dm, &tx_info, RF_PATH_A); + phydm_set_tmac_tx(dm); + PDM_SNPF(out_len, used, output + used, out_len - used, + "Stop pmac_tx and turn on true mac mode.\n"); + + phydm_stop_ic_trx(dm, PHYDM_REVERT); + } + *_used = used; + *_out_len = out_len; +} +#endif \ No newline at end of file diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pmac_tx_setting.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pmac_tx_setting.h index af0819a2..532219ba 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pmac_tx_setting.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pmac_tx_setting.h @@ -26,14 +26,14 @@ #ifndef __PHYDM_PMAC_TX_SETTING_H__ #define __PHYDM_PMAC_TX_SETTING_H__ -/* 2019.06.10 Modify STBC setting for different OS*/ -#define PMAC_TX_SETTING_VERSION "1.6" +/*2020.03.16 Fix TxInfo content in B mode*/ +#define PMAC_TX_SETTING_VERSION "2.1" /* 1 ============================================================ * 1 Definition * 1 ============================================================ */ -#define RANDOM_BY_PN32 0x12 + /* 1 ============================================================ * 1 structure * 1 ============================================================ @@ -41,24 +41,20 @@ struct phydm_pmac_info { u8 en_pmac_tx:1; /*0: disable pmac 1: enable pmac */ u8 mode:3; /*0: Packet TX 3:Continuous TX */ - /* u8 Ntx:4; */ - u8 tx_rate; /* @should be HW rate*/ - /* u8 TX_RATE_HEX; */ + u8 tx_rate; /*should be HW rate*/ u8 tx_sc; - /* u8 bSGI:1; */ u8 is_short_preamble:1; - /* u8 bSTBC:1; */ - /* u8 bLDPC:1; */ u8 ndp_sound:1; u8 bw:3; /* 0:20 1:40 2:80Mhz */ u8 m_stbc; /* bSTBC + 1 for WIN/CE, bSTBC for others*/ u16 packet_period; u32 packet_count; - /* u32 PacketLength; */ + u32 packet_length; u8 packet_pattern; u16 sfd; u8 signal_field; u8 service_field; + u8 service_field_bit2:1; u16 length; u8 crc16[2]; u8 lsig[3]; @@ -67,7 +63,6 @@ struct phydm_pmac_info { u8 vht_sig_b[4]; u8 vht_sig_b_crc; u8 vht_delimiter[4]; - /* u8 mac_addr[6]; */ }; struct phydm_pmac_tx { @@ -78,7 +73,6 @@ struct phydm_pmac_tx { boolean cck_cont_tx; boolean ofdm_cont_tx; u8 path; - u32 tx_scailing; }; /* 1 ============================================================ @@ -107,12 +101,11 @@ void phydm_start_ofdm_cont_tx(void *dm_void); void phydm_stop_ofdm_cont_tx(void *dm_void); -void phydm_set_single_tone(void *dm_void, boolean is_single_tone, - boolean en_pmac_tx, u8 path); - void phydm_set_pmac_tx(void *dm_void, struct phydm_pmac_info *tx_info, enum rf_path mpt_rf_path); void phydm_set_tmac_tx(void *dm_void); +void phydm_pmac_tx_dbg(void *dm_void, char input[][16], u32 *_used, + char *output, u32 *_out_len); #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pre_define.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pre_define.h index 0517d94e..a9c0e6a1 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pre_define.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pre_define.h @@ -32,8 +32,8 @@ * 1 ============================================================ ***************************************************************/ -#define PHYDM_CODE_BASE "PHYDM_V042" -#define PHYDM_RELEASE_DATE "20190702.0" +#define PHYDM_CODE_BASE "PHYDM_V051_GIT" +#define PHYDM_RELEASE_DATE "20210415.0" /*PHYDM API status*/ #define PHYDM_SET_FAIL 0 @@ -59,6 +59,7 @@ #define MAX_PATH_NUM_8197G 2 #define MAX_PATH_NUM_8721D 1 #define MAX_PATH_NUM_8710C 1 +#define MAX_PATH_NUM_8723F 2 /*@AC-IC*/ #define MAX_PATH_NUM_8821A 1 @@ -356,7 +357,7 @@ enum phydm_legacy_spec_rate { /*[N-1SS]*/ #elif (RTL8723B_SUPPORT || RTL8703B_SUPPORT || RTL8188E_SUPPORT || \ RTL8188F_SUPPORT || RTL8723D_SUPPORT || RTL8195A_SUPPORT ||\ - RTL8710B_SUPPORT || RTL8721D_SUPPORT || RTL8710C_SUPPORT) + RTL8710B_SUPPORT || RTL8721D_SUPPORT || RTL8710C_SUPPORT || RTL8723F_SUPPORT) #define PHY_NUM_RATE_IDX NUM_RATE_N_1SS #else #define PHY_NUM_RATE_IDX NUM_RATE_AC_4SS @@ -411,7 +412,9 @@ enum phydm_ic { ODM_RTL8812F = BIT(20), ODM_RTL8197G = BIT(21), ODM_RTL8721D = BIT(22), - ODM_RTL8710C = BIT(23) + ODM_RTL8710C = BIT(23), + ODM_RTL8723F = BIT(24), + ODM_RTL8814C = BIT(25) }; #define ODM_IC_N_1SS (ODM_RTL8188E | ODM_RTL8188F | ODM_RTL8723B |\ @@ -427,10 +430,10 @@ enum phydm_ic { #define ODM_IC_AC_3SS 0 #define ODM_IC_AC_4SS (ODM_RTL8814A) -#define ODM_IC_JGR3_1SS 0 +#define ODM_IC_JGR3_1SS (ODM_RTL8723F) #define ODM_IC_JGR3_2SS (ODM_RTL8822C | ODM_RTL8812F | ODM_RTL8197G) #define ODM_IC_JGR3_3SS 0 -#define ODM_IC_JGR3_4SS (ODM_RTL8198F | ODM_RTL8814B) +#define ODM_IC_JGR3_4SS (ODM_RTL8198F | ODM_RTL8814B | ODM_RTL8814C) /*@====the following macro DO NOT need to update when adding a new IC======= */ #define ODM_IC_1SS (ODM_IC_N_1SS | ODM_IC_AC_1SS | ODM_IC_JGR3_1SS) @@ -461,7 +464,8 @@ enum phydm_ic { ODM_RTL8821C | ODM_RTL8710B | ODM_RTL8195B |\ ODM_RTL8192F | ODM_RTL8721D | ODM_RTL8710C) #define PHYSTS_3RD_TYPE_IC (ODM_RTL8198F | ODM_RTL8814B | ODM_RTL8822C |\ - ODM_RTL8812F | ODM_RTL8197G) + ODM_RTL8812F | ODM_RTL8197G | ODM_RTL8723F |\ + ODM_RTL8814C) /*@[FW Type]*/ #define PHYDM_IC_8051_SERIES (ODM_RTL8881A | ODM_RTL8812 | ODM_RTL8821 |\ ODM_RTL8192E | ODM_RTL8723B | ODM_RTL8703B |\ @@ -470,23 +474,24 @@ enum phydm_ic { #define PHYDM_IC_3081_SERIES (ODM_RTL8814A | ODM_RTL8822B | ODM_RTL8197F |\ ODM_RTL8821C | ODM_RTL8195B | ODM_RTL8198F |\ ODM_RTL8822C | ODM_RTL8812F | ODM_RTL8814B |\ - ODM_RTL8197G) + ODM_RTL8197G | ODM_RTL8723F | ODM_RTL8814C) /*@[LA mode]*/ #define PHYDM_IC_SUPPORT_LA_MODE (ODM_RTL8814A | ODM_RTL8822B | ODM_RTL8197F |\ ODM_RTL8821C | ODM_RTL8195B | ODM_RTL8198F |\ ODM_RTL8192F | ODM_RTL8822C | ODM_RTL8812F |\ - ODM_RTL8195B | ODM_RTL8814B | ODM_RTL8197G) + ODM_RTL8195B | ODM_RTL8814B | ODM_RTL8197G |\ + ODM_RTL8723F | ODM_RTL8814C) /*@[BF]*/ #define ODM_IC_TXBF_SUPPORT (ODM_RTL8192E | ODM_RTL8812 | ODM_RTL8821 |\ ODM_RTL8814A | ODM_RTL8881A | ODM_RTL8822B |\ ODM_RTL8197F | ODM_RTL8821C | ODM_RTL8195B |\ ODM_RTL8198F | ODM_RTL8822C | ODM_RTL8812F |\ - ODM_RTL8814B | ODM_RTL8197G) + ODM_RTL8814B | ODM_RTL8197G | ODM_RTL8814C) #define PHYDM_IC_SUPPORT_MU_BFEE (ODM_RTL8822B | ODM_RTL8821C | ODM_RTL8814B |\ ODM_RTL8195B | ODM_RTL8198F | ODM_RTL8822C |\ - ODM_RTL8812F) + ODM_RTL8812F | ODM_RTL8723F | ODM_RTL8814C) #define PHYDM_IC_SUPPORT_MU_BFER (ODM_RTL8822B | ODM_RTL8814B | ODM_RTL8198F |\ - ODM_RTL8822C | ODM_RTL8812F) + ODM_RTL8822C | ODM_RTL8812F | ODM_RTL8814C) #define PHYDM_IC_SUPPORT_MU (PHYDM_IC_SUPPORT_MU_BFEE |\ PHYDM_IC_SUPPORT_MU_BFER) @@ -494,23 +499,48 @@ enum phydm_ic { #define CMN_API_SUPPORT_IC (ODM_RTL8822B | ODM_RTL8197F | ODM_RTL8192F |\ ODM_RTL8821C | ODM_RTL8195B | ODM_RTL8822C |\ ODM_RTL8198F | ODM_RTL8812F | ODM_RTL8814B |\ - ODM_RTL8197G | ODM_RTL8721D | ODM_RTL8710C) + ODM_RTL8197G | ODM_RTL8721D | ODM_RTL8710C |\ + ODM_RTL8723F | ODM_RTL8814C) /* fw offload ability*/ #define PHYDM_IC_SUPPORT_FW_PARAM_OFFLOAD (ODM_RTL8814A | ODM_RTL8822B |\ ODM_RTL8821C | ODM_RTL8822C) +/* halmac offload ability*/ +#define PHYDM_IC_SUPPORT_HALMAC_PARAM_OFFLOAD (ODM_RTL8822C | ODM_RTL8812F |\ + ODM_RTL8814B | ODM_RTL8723F |\ + ODM_RTL8814C) + +/*[CCX]*/ +#define PHYDM_IC_SUPPORT_FAHM (ODM_RTL8822B | ODM_RTL8821C | ODM_RTL8198F |\ + ODM_RTL8814B | ODM_RTL8822C | ODM_RTL8812F |\ + ODM_RTL8197G | ODM_RTL8723F | ODM_RTL8814C) +#define PHYDM_IC_SUPPORT_IFS_CLM (ODM_RTL8822C | ODM_RTL8812F | ODM_RTL8197G |\ + ODM_RTL8723F) +#define PHYDM_IC_SUPPORT_EDCCA_CLM (ODM_RTL8822C | ODM_RTL8812F |\ + ODM_RTL8197G | ODM_RTL8723F) + +/*[ARFR]*/ +/*for MAC HW control rate_id=0~12 and 2.4g vht mode(1ss/2ss) support*/ +#define PHYDM_IC_RATEID_IDX_TYPE2 (ODM_RTL8822B | ODM_RTL8822C | ODM_RTL8195B |\ + ODM_RTL8821C) + /*@========[Compile time IC flag] ========================*/ /*@========[AC-3/AC/N Support] ===========================*/ #if (RTL8814B_SUPPORT || RTL8198F_SUPPORT || RTL8822C_SUPPORT ||\ - RTL8812F_SUPPORT || RTL8197G_SUPPORT) + RTL8812F_SUPPORT || RTL8197G_SUPPORT || RTL8723F_SUPPORT) #define PHYDM_IC_JGR3_SERIES_SUPPORT #if (RTL8814B_SUPPORT || RTL8822C_SUPPORT || RTL8812F_SUPPORT) #define PHYDM_IC_JGR3_80M_SUPPORT #endif #endif +#if (RTL8822C_SUPPORT || RTL8812F_SUPPORT || RTL8814B_SUPPORT ||\ + RTL8723F_SUPPORT) + #define PHYDM_IC_HALMAC_PARAM_SUPPORT +#endif + #if (DM_ODM_SUPPORT_TYPE == ODM_AP) #ifdef RTK_AC_SUPPORT @@ -555,7 +585,7 @@ enum phydm_ic { RTL8703B_SUPPORT || RTL8723D_SUPPORT || RTL8881A_SUPPORT ||\ RTL8821A_SUPPORT || RTL8821C_SUPPORT || RTL8195A_SUPPORT ||\ RTL8710B_SUPPORT || RTL8195B_SUPPORT || RTL8721D_SUPPORT ||\ - RTL8710C_SUPPORT) + RTL8710C_SUPPORT || RTL8723F_SUPPORT) #define PHYDM_COMPILE_IC_1SS #endif @@ -614,7 +644,7 @@ enum phydm_ic { #endif #if (RTL8198F_SUPPORT || RTL8814B_SUPPORT || RTL8822C_SUPPORT ||\ - RTL8812F_SUPPORT || RTL8197G_SUPPORT) + RTL8812F_SUPPORT || RTL8197G_SUPPORT || RTL8723F_SUPPORT) #define PHYSTS_3RD_TYPE_SUPPORT #endif @@ -623,7 +653,7 @@ enum phydm_ic { #endif #if (RTL8198F_SUPPORT || RTL8814B_SUPPORT || RTL8822C_SUPPORT ||\ - RTL8812F_SUPPORT || RTL8197G_SUPPORT) + RTL8812F_SUPPORT || RTL8197G_SUPPORT || RTL8723F_SUPPORT) #define BB_RAM_SUPPORT #endif @@ -637,14 +667,14 @@ enum phydm_ic { #define CONFIG_MU_JAGUAR_2 #endif -#if (RTL8814B_SUPPORT || RTL8822C_SUPPORT) +#if (RTL8814B_SUPPORT || RTL8822C_SUPPORT || RTL8812F_SUPPORT) #define CONFIG_MU_JAGUAR_3 #endif #if (defined(CONFIG_MU_JAGUAR_2) || defined(CONFIG_MU_JAGUAR_3)) #if (RTL8814B_SUPPORT) #define MU_EX_MACID 76 - #elif (RTL8822B_SUPPORT || RTL8822C_SUPPORT) + #elif (RTL8822B_SUPPORT || RTL8822C_SUPPORT || RTL8812F_SUPPORT) #define MU_EX_MACID 30 #endif #endif @@ -653,11 +683,21 @@ enum phydm_ic { #if (RTL8822B_SUPPORT || RTL8197F_SUPPORT || RTL8821C_SUPPORT ||\ RTL8192F_SUPPORT || RTL8195B_SUPPORT || RTL8822C_SUPPORT ||\ RTL8198F_SUPPORT || RTL8812F_SUPPORT || RTL8814B_SUPPORT ||\ - RTL8197G_SUPPORT || RTL8721D_SUPPORT || RTL8710C_SUPPORT) + RTL8197G_SUPPORT || RTL8721D_SUPPORT || RTL8710C_SUPPORT || RTL8723F_SUPPORT) #define PHYDM_COMMON_API_SUPPORT #endif -#if (RTL8821C_SUPPORT || RTL8197F_SUPPORT) +#define PHYDM_COMMON_API_IC (ODM_IC_JGR3_SERIES | ODM_RTL8822B |\ + ODM_RTL8197F | ODM_RTL8821C | ODM_RTL8192F | ODM_RTL8195B |\ + ODM_RTL8721D | ODM_RTL8710C) + +#if (RTL8188E_SUPPORT || RTL8192E_SUPPORT || RTL8821A_SUPPORT ||\ + RTL8812A_SUPPORT || RTL8723B_SUPPORT || RTL8703B_SUPPORT ||\ + RTL8195A_SUPPORT || RTL8814A_SUPPORT) +#define PHYDM_COMMON_API_NOT_SUPPORT +#endif + +#if (RTL8821C_SUPPORT || RTL8197F_SUPPORT || RTL8197G_SUPPORT) #define CONFIG_RFE_BY_HW_INFO #endif @@ -693,6 +733,17 @@ enum phydm_ic { #define LOW_BW_RATE_NUM VHT_RATE_NUM +#if (DM_ODM_SUPPORT_TYPE == ODM_CE) +#define SECOND_CH_AT_LSB 2 /*@primary CH @ MSB, SD4: HAL_PRIME_CHNL_OFFSET_UPPER*/ +#define SECOND_CH_AT_USB 1 /*@primary CH @ LSB, SD4: HAL_PRIME_CHNL_OFFSET_LOWER*/ +#elif (DM_ODM_SUPPORT_TYPE == ODM_WIN) +#define SECOND_CH_AT_LSB 2 /*@primary CH @ MSB, SD7: HAL_PRIME_CHNL_OFFSET_UPPER*/ +#define SECOND_CH_AT_USB 1 /*@primary CH @ LSB, SD7: HAL_PRIME_CHNL_OFFSET_LOWER*/ +#else /*if (DM_ODM_SUPPORT_TYPE == ODM_AP)*/ +#define SECOND_CH_AT_LSB 1 /*@primary CH @ MSB, SD8: HT_2NDCH_OFFSET_BELOW*/ +#define SECOND_CH_AT_USB 2 /*@primary CH @ LSB, SD8: HT_2NDCH_OFFSET_ABOVE*/ +#endif + enum phydm_ic_ip { PHYDM_IC_N = 0, PHYDM_IC_AC = 1, @@ -786,6 +837,13 @@ enum odm_band_type { #endif }; +enum odm_rf_band { + ODM_RF_BAND_2G = 0, + ODM_RF_BAND_5G_LOW = 1, + ODM_RF_BAND_5G_MID = 2, + ODM_RF_BAND_5G_HIGH = 3, +}; + /* ODM_CMNINFO_SEC_CHNL_OFFSET */ enum phydm_sec_chnl_offset { PHYDM_DONT_CARE = 0, @@ -919,6 +977,15 @@ enum odm_antdiv_gpio { ANTDIV_GPIO_PA16PA17 = 4, ANTDIV_GPIO_PB1PB2 = 5, ANTDIV_GPIO_PB26PB29 = 6, + ANTDIV_GPIO_PB1PB2PB26 = 7, // add by Jiao Qi for AmebaD SP3T only +}; + +/* ODM_CMNINFO_PEAK_DETECT_MODE */ +enum odm_peak_detect_mode { + ODM_PD_DIS = 0, + ODM_PD_ENG = 1, + ODM_PD_ENA = 2, + ODM_PD_ENALL = 3, }; #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_precomp.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_precomp.h index 545bee45..bd9f6b01 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_precomp.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_precomp.h @@ -142,6 +142,9 @@ #ifndef RTL8814B_SUPPORT #define RTL8814B_SUPPORT 0 #endif +#ifndef RTL8814C_SUPPORT + #define RTL8814C_SUPPORT 0 +#endif #ifndef RTL8198F_SUPPORT #define RTL8198F_SUPPORT 0 #endif @@ -169,7 +172,9 @@ #ifndef RTL8710C_SUPPORT #define RTL8710C_SUPPORT 0 #endif - +#ifndef RTL8723F_SUPPORT + #define RTL8723F_SUPPORT 0 +#endif #if (DM_ODM_SUPPORT_TYPE & ODM_CE) && \ (!defined(DM_ODM_CE_MAC80211) && !defined(DM_ODM_CE_MAC80211_V2)) @@ -183,6 +188,10 @@ void phy_set_tx_power_limit( u8 *channel, u8 *power_limit); +void phy_set_tx_power_limit_ex(struct dm_struct *dm, u8 regulation, u8 band, + u8 bandwidth, u8 rate_section, u8 rf_path, + u8 channel, s8 power_limit); + enum hal_status rtw_phydm_fw_iqk( struct dm_struct *dm, @@ -468,6 +477,7 @@ rtw_phydm_cfg_phy_para( #include "rtl8821c/halhwimg8821c_mac.h" #include "rtl8821c/halhwimg8821c_bb.h" #include "rtl8821c/phydm_regconfig8821c.h" + #include "rtl8821c/phydm_rtl8821c.h" #include "halrf/rtl8821c/halrf_8821c.h" #include "halrf/rtl8821c/halhwimg8821c_rf.h" #include "halrf/rtl8821c/version_rtl8821c_rf.h" @@ -500,7 +510,7 @@ rtw_phydm_cfg_phy_para( #endif #if (RTL8721D_SUPPORT == 1) - #include "halrf/rtl8721d/halrf_btiqk_8721d.h" + //#include "halrf/rtl8721d/halrf_btiqk_8721d.h" #include "halrf/rtl8721d/halrf_rfk_init_8721d.h" #include "halrf/rtl8721d/halrf_dpk_8721d.h" #include "halrf/rtl8721d/halrf_8721d.h" @@ -593,6 +603,17 @@ rtw_phydm_cfg_phy_para( #include "halrf/rtl8814b/version_rtl8814b_rf.h" #include "rtl8814b/phydm_hal_api8814b.h" #include "rtl8814b/version_rtl8814b.h" + #include "rtl8814b/phydm_extraagc8814b.h" +#if (RTL8814C_SUPPORT == 1) + #include "rtl8814c/halhwimg8814c_bb.h" + #include "rtl8814c/phydm_regconfig8814c.h" + #include "halrf/rtl8814c/halrf_8814c.h" + #include "halrf/rtl8814c/halhwimg8814c_rf.h" + #include "halrf/rtl8814c/version_rtl8814c_rf.h" + #include "rtl8814c/phydm_hal_api8814c.h" + #include "rtl8814c/version_rtl8814c.h" + #include "rtl8814c/phydm_extraagc8814c.h" +#endif #if (DM_ODM_SUPPORT_TYPE == ODM_CE) #include /* @struct HAL_DATA_TYPE */ #include /* @RX_SMOOTH_FACTOR, reg definition and etc.*/ @@ -606,6 +627,7 @@ rtw_phydm_cfg_phy_para( #include "halrf/rtl8812f/version_rtl8812f_rf.h" #include "rtl8812f/phydm_hal_api8812f.h" #include "rtl8812f/version_rtl8812f.h" + #include "rtl8812f/phydm_rtl8812f.h" #endif #if (RTL8197G_SUPPORT) #include "rtl8197g/halhwimg8197g_bb.h" @@ -616,5 +638,28 @@ rtw_phydm_cfg_phy_para( #include "halrf/rtl8197g/version_rtl8197g_rf.h" #include "rtl8197g/phydm_hal_api8197g.h" #include "rtl8197g/version_rtl8197g.h" + #include "rtl8197g/phydm_rtl8197g.h" +#endif +#if (RTL8723F_SUPPORT) + #include "rtl8723f/halhwimg8723f_bb.h" + #include "rtl8723f/halhwimg8723f_mac.h" + #include "rtl8723f/phydm_regconfig8723f.h" + #include "halrf/rtl8723f/halrf_8723f.h" + #include "halrf/rtl8723f/halhwimg8723f_rf.h" + #include "halrf/rtl8723f/version_rtl8723f_rf.h" + #include "halrf/rtl8723f/halrf_iqk_8723f.h" + #include "halrf/rtl8723f/halrf_dpk_8723f.h" + #include "halrf/rtl8723f/halrf_txgapk_8723f.h" + #include "halrf/rtl8723f/halrf_tssi_8723f.h" + #include "halrf/rtl8723f/halrf_rfk_init_8723f.h" + #include "rtl8723f/phydm_hal_api8723f.h" + #include "rtl8723f/version_rtl8723f.h" + #include "rtl8723f/phydm_rtl8723f.h" + #if (DM_ODM_SUPPORT_TYPE == ODM_CE) + /* @struct HAL_DATA_TYPE */ + #include + /* @RX_SMOOTH_FACTOR, reg definition and etc.*/ + #include + #endif #endif #endif /* @__ODM_PRECOMP_H__ */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_primary_cca.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_primary_cca.h index 9a647502..1978586f 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_primary_cca.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_primary_cca.h @@ -33,17 +33,6 @@ /*@Definition */ /*@============================================================*/ -#if (DM_ODM_SUPPORT_TYPE == ODM_CE) -#define SECOND_CH_AT_LSB 2 /*@primary CH @ MSB, SD4: HAL_PRIME_CHNL_OFFSET_UPPER*/ -#define SECOND_CH_AT_USB 1 /*@primary CH @ LSB, SD4: HAL_PRIME_CHNL_OFFSET_LOWER*/ -#elif (DM_ODM_SUPPORT_TYPE == ODM_WIN) -#define SECOND_CH_AT_LSB 2 /*@primary CH @ MSB, SD7: HAL_PRIME_CHNL_OFFSET_UPPER*/ -#define SECOND_CH_AT_USB 1 /*@primary CH @ LSB, SD7: HAL_PRIME_CHNL_OFFSET_LOWER*/ -#else /*if (DM_ODM_SUPPORT_TYPE == ODM_AP)*/ -#define SECOND_CH_AT_LSB 1 /*@primary CH @ MSB, SD8: HT_2NDCH_OFFSET_BELOW*/ -#define SECOND_CH_AT_USB 2 /*@primary CH @ LSB, SD8: HT_2NDCH_OFFSET_ABOVE*/ -#endif - #define OFDMCCA_TH 500 #define bw_ind_bias 500 #define PRI_CCA_MONITOR_TIME 30 diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_psd.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_psd.c index 95fc4b73..8a19160b 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_psd.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_psd.c @@ -37,6 +37,16 @@ u32 phydm_get_psd_data(void *dm_void, u32 psd_tone_idx, u32 igi) u32 psd_report = 0; if (dm->support_ic_type & ODM_IC_JGR3_SERIES) { + #if(RTL8723F_SUPPORT) + if (dm->support_ic_type & (ODM_RTL8723F)) { + odm_set_bb_reg(dm, dm_psd_table->psd_reg, 0x3ff80000, psd_tone_idx & 0x7ff); + /*PSD trigger start*/ + odm_set_bb_reg(dm, dm_psd_table->psd_reg, BIT(16), 1); + ODM_delay_us(10 << (dm_psd_table->fft_smp_point >> 7)); + /*PSD trigger stop*/ + odm_set_bb_reg(dm, dm_psd_table->psd_reg, BIT(16), 0); + } + #endif #if 0 odm_set_bb_reg(dm, R_0x1e8c, 0x3ff, psd_tone_idx & 0x3ff); odm_set_bb_reg(dm, R_0x1e88, BIT(27) | BIT(26), @@ -71,6 +81,12 @@ u32 phydm_get_psd_data(void *dm_void, u32 psd_tone_idx, u32 igi) 0xffffff); psd_report = psd_report >> 5; } else if (dm->support_ic_type & ODM_IC_JGR3_SERIES) { + #if(RTL8723F_SUPPORT) + if (dm->support_ic_type & (ODM_RTL8723F)) { + psd_report = odm_get_bb_reg(dm, dm_psd_table->psd_report_reg, + 0x1ffffff); + } + #endif #if 0 psd_report = odm_get_bb_reg(dm, dm_psd_table->psd_report_reg, 0xffffff); @@ -152,6 +168,13 @@ u8 phydm_psd(void *dm_void, u32 igi, u16 start_point, u16 stop_point) else if (psd_fc_channel > 140) ag_rf_mode_reg = 0x5; #endif + } else if (dm->support_ic_type & ODM_RTL8723F) { + if (psd_fc_channel < 80) + ag_rf_mode_reg = 0x1; + else if (psd_fc_channel >= 80 && psd_fc_channel <= 144) + ag_rf_mode_reg = 0x5; + else if (psd_fc_channel > 144) + ag_rf_mode_reg = 0x9; } else if (dm->support_ic_type == ODM_RTL8721D) { if (psd_fc_channel >= 36 && psd_fc_channel <= 64) ag_rf_mode_reg = 0x1; @@ -188,6 +211,27 @@ u8 phydm_psd(void *dm_void, u32 igi, u16 start_point, u16 stop_point) odm_set_rf_reg(dm, RF_PATH_B, RF_0x18, 0x70000, ag_rf_mode_reg); #endif + } else if (dm->support_ic_type & ODM_RTL8723F) { + /* @2b'11: 20MHz, 2b'10: 40MHz, 2b'01: 80MHz */ + odm_set_rf_reg(dm, RF_PATH_A, RF_0x18, 0x1c00, + dm_psd_table->psd_bw_rf_reg); + odm_set_rf_reg(dm, RF_PATH_B, RF_0x18, 0x1c00, + dm_psd_table->psd_bw_rf_reg); + /* Set RF ag fc mode*/ + odm_set_rf_reg(dm, RF_PATH_A, RF_0x18, 0x30000, 1); + odm_set_rf_reg(dm, RF_PATH_B, RF_0x18, 0x30000, 1); + if(ag_rf_mode_reg == 1) { + odm_set_rf_reg(dm, RF_PATH_A, RF_0x19, 0xc0000, 0); + odm_set_rf_reg(dm, RF_PATH_B, RF_0x19, 0xc0000, 0); + } + else if(ag_rf_mode_reg == 5){ + odm_set_rf_reg(dm, RF_PATH_A, RF_0x19, 0xc0000, 1); + odm_set_rf_reg(dm, RF_PATH_B, RF_0x19, 0xc0000, 1); + } + else { + odm_set_rf_reg(dm, RF_PATH_A, RF_0x19, 0xc0000, 2); + odm_set_rf_reg(dm, RF_PATH_B, RF_0x19, 0xc0000, 2); + } } else { /* @2b'11: 20MHz, 2b'10: 40MHz, 2b'01: 80MHz */ if (dm->support_ic_type == ODM_RTL8721D) { @@ -195,7 +239,7 @@ u8 phydm_psd(void *dm_void, u32 igi, u16 start_point, u16 stop_point) dm_psd_table->psd_bw_rf_reg); #if (RTL8710C_SUPPORT == 1) } else if (dm->support_ic_type == ODM_RTL8710C) { - config_phydm_write_rf_reg_8710c(dm, RF_PATH_A, + odm_set_rf_reg(dm, RF_PATH_A, RF_0x18, 0x1c00, dm_psd_table->psd_bw_rf_reg); #endif @@ -212,12 +256,14 @@ u8 phydm_psd(void *dm_void, u32 igi, u16 start_point, u16 stop_point) ag_rf_mode_reg); } - #if 0 - if (dm->support_ic_type & ODM_IC_JGR3_SERIES) + if (dm->support_ic_type & ODM_IC_JGR3_SERIES){ + if (dm->support_ic_type & ODM_RTL8723F) { PHYDM_DBG(dm, ODM_COMP_API, "0x1d70=((0x%x))\n", odm_get_bb_reg(dm, R_0x1d70, MASKDWORD)); - else - #endif + PHYDM_DBG(dm, ODM_COMP_API, "RF0x19=((0x%x))\n", + odm_get_rf_reg(dm, RF_PATH_A, RF_0x19, RFREG_MASK)); + } + } else PHYDM_DBG(dm, ODM_COMP_API, "0xc50=((0x%x))\n", odm_get_bb_reg(dm, R_0xc50, MASKDWORD)); @@ -314,17 +360,34 @@ void phydm_psd_para_setting(void *dm_void, u8 sw_avg_time, u8 hw_avg_time, dm_psd_table->sw_avg_time = sw_avg_time; dm_psd_table->psd_fc_channel = channel; dm_psd_table->noise_k_en = noise_k_en; - - if (fft_smp_point == 128) - fft_smp_point_idx = 0; - else if (fft_smp_point == 256) - fft_smp_point_idx = 1; - else if (fft_smp_point == 512) - fft_smp_point_idx = 2; - else if (fft_smp_point == 1024) - fft_smp_point_idx = 3; - + if (dm->support_ic_type & ODM_RTL8723F) { + if (fft_smp_point == 128) + fft_smp_point_idx = 3; + else if (fft_smp_point == 256) + fft_smp_point_idx = 2; + else if (fft_smp_point == 512) + fft_smp_point_idx = 1; + else if (fft_smp_point == 1024) + fft_smp_point_idx = 0; + } + else { + if (fft_smp_point == 128) + fft_smp_point_idx = 0; + else if (fft_smp_point == 256) + fft_smp_point_idx = 1; + else if (fft_smp_point == 512) + fft_smp_point_idx = 2; + else if (fft_smp_point == 1024) + fft_smp_point_idx = 3; + } if (dm->support_ic_type & ODM_IC_JGR3_SERIES) { + #if (RTL8723F_SUPPORT) + odm_set_bb_reg(dm, R_0x1e8c, BIT(12) | BIT(11), hw_avg_time); + odm_set_bb_reg(dm, R_0x1e8c, BIT(14) | BIT(13), + fft_smp_point_idx); + odm_set_bb_reg(dm, R_0x1e8c, BIT(18) | BIT(17), ant_sel); + odm_set_bb_reg(dm, R_0x1e88, BIT(25) | BIT(24), psd_input); + #else #if 0 odm_set_bb_reg(dm, R_0x1e8c, BIT(11) | BIT(10), i_q_setting); odm_set_bb_reg(dm, R_0x1e8c, BIT(13) | BIT(12), hw_avg_time); @@ -341,6 +404,7 @@ void phydm_psd_para_setting(void *dm_void, u8 sw_avg_time, u8 hw_avg_time, odm_set_bb_reg(dm, R_0x1e8c, BIT(17) | BIT(16), ant_sel); odm_set_bb_reg(dm, R_0x1e8c, BIT(23) | BIT(22), psd_input); #endif + #endif } else if (dm->support_ic_type & ODM_IC_11AC_SERIES) { odm_set_bb_reg(dm, R_0x910, BIT(11) | BIT(10), i_q_setting); odm_set_bb_reg(dm, R_0x910, BIT(13) | BIT(12), hw_avg_time); @@ -374,6 +438,15 @@ void phydm_psd_init(void *dm_void) dm_psd_table->psd_in_progress = false; if (dm->support_ic_type & ODM_IC_JGR3_SERIES) { + #if (RTL8723F_SUPPORT) + if (dm->support_ic_type & ODM_RTL8723F) { + dm_psd_table->psd_reg = R_0x1e8c; + dm_psd_table->psd_report_reg = R_0x2d90; + + /*@2b'11: 20MHz, 2b'10: 40MHz, 2b'01: 80MHz */ + dm_psd_table->psd_bw_rf_reg = 2; + } + #else #if 0 dm_psd_table->psd_reg = R_0x1e8c; dm_psd_table->psd_report_reg = R_0x2d90; @@ -383,6 +456,7 @@ void phydm_psd_init(void *dm_void) #endif return; + #endif } else if (dm->support_ic_type & ODM_IC_11AC_SERIES) { dm_psd_table->psd_reg = R_0x910; dm_psd_table->psd_report_reg = R_0xf44; @@ -419,6 +493,11 @@ void phydm_psd_debug(void *dm_void, char input[][16], u32 *_used, if ((strcmp(input[1], help) == 0)) { #ifdef PHYDM_IC_JGR3_SERIES_SUPPORT + #if (RTL8723F_SUPPORT) + if (dm->support_ic_type & ODM_RTL8723F) + PDM_SNPF(out_len, used, output + used, out_len - used, + "{0} {sw_avg} {hw_avg 0:3} {1:I,2:Q,3:IQ} {fft_point: 128*(1:4)}\n{path_sel 0~3} {0:ADC, 1:rxdata_fir_in, 2:rx_nbi_nf_stage2} {CH} {noise_k}\n\n"); + #endif #if 0 if (dm->support_ic_type & ODM_IC_JGR3_SERIES) PDM_SNPF(out_len, used, output + used, out_len - used, @@ -438,9 +517,8 @@ void phydm_psd_debug(void *dm_void, char input[][16], u32 *_used, if (var1[0] == 0) { for (i = 1; i < 10; i++) { - if (input[i + 1]) - PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, - &var1[i]); + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, + &var1[i]); } PDM_SNPF(out_len, used, output + used, out_len - used, "sw_avg_time=((%d)), hw_avg_time=((%d)), IQ=((%d)), fft=((%d)), path=((%d)), input =((%d)) ch=((%d)), noise_k=((%d))\n", diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_rainfo.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_rainfo.c index d0ac7d3f..97be6584 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_rainfo.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_rainfo.c @@ -59,7 +59,8 @@ u8 phydm_legacy_rate_2_spec_rate(void *dm_void, u8 rate) PHYDM_SPEC_RATE_24M, PHYDM_SPEC_RATE_36M, PHYDM_SPEC_RATE_48M, PHYDM_SPEC_RATE_54M}; - rate_idx = rate - ODM_RATE6M; + if ((rate >= ODM_RATE6M) && (rate <= ODM_RATE54M)) + rate_idx = rate - ODM_RATE6M; return legacy_spec_rate_t[rate_idx]; } @@ -137,10 +138,8 @@ void phydm_h2C_debug(void *dm_void, char input[][16], u32 *_used, u8 phydm_h2c_id = 0; for (i = 0; i < 8; i++) { - if (input[i + 1]) { - PHYDM_SSCANF(input[i + 1], DCMD_HEX, &dm_value[i]); - input_idx++; - } + PHYDM_SSCANF(input[i + 1], DCMD_HEX, &dm_value[i]); + input_idx++; } if (input_idx == 0) @@ -177,7 +176,7 @@ void phydm_fw_fix_rate(void *dm_void, u8 en, u8 macid, u8 bw, u8 rate) reg_u32_tmp = BYTE_2_DWORD(0x60, macid, bw, rate); else reg_u32_tmp = 0x40000000; - if (dm->support_ic_type & ODM_RTL8814B) + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) odm_set_mac_reg(dm, R_0x448, MASKDWORD, reg_u32_tmp); else odm_set_mac_reg(dm, R_0x450, MASKDWORD, reg_u32_tmp); @@ -202,11 +201,11 @@ void phydm_ra_debug(void *dm_void, char input[][16], u32 *_used, char *output, char help[] = "-h"; u32 var[5] = {0}; u8 macid = 0, bw = 0, rate = 0; + u8 tx_cls_en = 0, tx_cls_th = 0, tmp = 0; u8 i = 0; for (i = 0; i < 5; i++) { - if (input[i + 1]) - PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &var[i]); + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &var[i]); } if ((strcmp(input[1], help) == 0)) { @@ -218,7 +217,12 @@ void phydm_ra_debug(void *dm_void, char input[][16], u32 *_used, char *output, "{2} {en} {macid} {bw} {rate}: fw fix rate\n"); PDM_SNPF(out_len, used, output + used, out_len - used, "{3} {en}: Dynamic RRSR\n"); - + PDM_SNPF(out_len, used, output + used, out_len - used, + "{4} {0:pkt RA, 1:TBTT RA, 100:query RA mode}\n"); +#ifdef CONFIG_DYNAMIC_TXCOLLISION_TH + PDM_SNPF(out_len, used, output + used, out_len - used, + "{5} {0:dis, 1:en}{th; 255:auto, xx:dB}: Tx CLS\n"); +#endif } else if (var[0] == 1) { /*@Adjust PCR offset*/ if (var[1] == 100) { @@ -249,10 +253,46 @@ void phydm_ra_debug(void *dm_void, char input[][16], u32 *_used, char *output, var[1], macid, bw, rate); phydm_fw_fix_rate(dm, (u8)var[1], macid, bw, rate); - } else if (var[0] == 3) { /*@FW fix rate*/ + } else if (var[0] == 3) { /*@Dynamic RRSR*/ ra_tab->dynamic_rrsr_en = (boolean)var[1]; PDM_SNPF(out_len, used, output + used, out_len - used, "[Dynamic RRSR] enable=%d", ra_tab->dynamic_rrsr_en); + } else if (var[0] == 4) { /*@RA trigger mode*/ + if (var[1] == 0 || var[1] == 1) + ra_tab->ra_trigger_mode = (u8)var[1]; + PDM_SNPF(out_len, used, output + used, out_len - used, + "[RA trigger] mode=%d\n", ra_tab->ra_trigger_mode); +#ifdef CONFIG_DYNAMIC_TXCOLLISION_TH + } else if (var[0] == 5) { /*@Tx Collision Detection*/ + tx_cls_en = (u8)var[1]; + ra_tab->ra_tx_cls_th = (u8)var[2]; + tmp = (u8)var[2]; + tx_cls_th = (tmp < 50) ? 0 : (tmp > 81) ? 31 : tmp - 50; + if (tx_cls_en) { + odm_set_bb_reg(dm, R_0x8f8, BIT(16), 1); + if (ra_tab->ra_tx_cls_th != 255) { + phydm_tx_collsion_th_set(dm, tx_cls_th, + tx_cls_th); + } + + } else { + odm_set_bb_reg(dm, R_0x8f8, BIT(16), 0); + } + + if (tx_cls_en & ra_tab->ra_tx_cls_th != 255) { + PDM_SNPF(out_len, used, output + used, out_len - used, + "[Tx Collision Detec] {en, th}={%d, %d}\n", + tx_cls_en, tx_cls_th + 50); + } else if (tx_cls_en & ra_tab->ra_tx_cls_th == 255) { + PDM_SNPF(out_len, used, output + used, out_len - used, + "[Tx Collision Detec] {en, th}={%d, auto}\n", + tx_cls_en); + } else { + PDM_SNPF(out_len, used, output + used, out_len - used, + "[Tx Collision Detec] {en, th}={%d, xx}\n", + tx_cls_en); + } +#endif } else { PDM_SNPF(out_len, used, output + used, out_len - used, "[Set] Error\n"); @@ -261,9 +301,31 @@ void phydm_ra_debug(void *dm_void, char input[][16], u32 *_used, char *output, *_out_len = out_len; } +void phydm_ra_mask_report_h2c_trigger(void *dm_void, + struct ra_mask_rpt_trig *trig_rpt) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ra_table *ra_tab = &dm->dm_ra_table; + + phydm_fw_trace_en_h2c(dm, true, 1, 2, trig_rpt->macid); + + trig_rpt->ra_mask_rpt_stamp = ra_tab->ra_mask_rpt_stamp; +} +void phydm_ra_mask_report_c2h_result(void *dm_void, struct ra_mask_rpt *rpt) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ra_table *ra_tab = &dm->dm_ra_table; + u8 i = 0; + + rpt->ra_mask_rpt_stamp = ra_tab->ra_mask_rpt_stamp; + + odm_move_memory(dm, &rpt->ra_mask_buf[0], &ra_tab->ra_mask_buf[0], 8); +} + void odm_c2h_ra_para_report_handler(void *dm_void, u8 *cmd_buf, u8 cmd_len) { struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ra_table *ra_tab = &dm->dm_ra_table; u8 mode = cmd_buf[0]; /*Retry Penalty, NH, NL*/ u8 i; @@ -326,6 +388,9 @@ void odm_c2h_ra_para_report_handler(void *dm_void, u8 *cmd_buf, u8 cmd_len) for (i = 4; i <= 11; i++) PHYDM_DBG(dm, DBG_FW_TRACE, "RAMASK = 0x%x\n", cmd_buf[i]); + + odm_move_memory(dm, &ra_tab->ra_mask_buf[0], &cmd_buf[4], 8); + ra_tab->ra_mask_rpt_stamp++; } else { PHYDM_DBG(dm, DBG_FW_TRACE, "%5s %x%x %x%x %x%x %x%x\n", "RA Mask:", @@ -433,6 +498,7 @@ void phydm_c2h_ra_report_handler(void *dm_void, u8 *cmd_buf, u8 cmd_len) u8 rate_idx = rate & 0x7f; /*remove bit7 SGI*/ u8 rate_order; u8 gid_index = 0; + u8 txcls_rate = 0; char dbg_buf[PHYDM_SNPRINT_SIZE] = {0}; #if (DM_ODM_SUPPORT_TYPE == ODM_WIN) @@ -441,10 +507,16 @@ void phydm_c2h_ra_report_handler(void *dm_void, u8 *cmd_buf, u8 cmd_len) sta = dm->phydm_sta_info[macid]; #endif - if (cmd_len >= 7) { + if (cmd_len == 7) { ra_ratio = cmd_buf[5]; curr_bw = cmd_buf[6]; PHYDM_DBG(dm, DBG_RA, "[%d] PER=%d\n", macid, ra_ratio); + } else if (cmd_len == 8) { + ra_ratio = cmd_buf[5]; + curr_bw = cmd_buf[6]; + txcls_rate = cmd_buf[7]; + PHYDM_DBG(dm, DBG_RA, "[%d] PER=%d TxCLS=%d\n", macid, ra_ratio, + txcls_rate); } if (cmd_buf[3] != 0) { @@ -469,6 +541,8 @@ void phydm_c2h_ra_report_handler(void *dm_void, u8 *cmd_buf, u8 cmd_len) gid_index = macid - 128; ra_tab->mu1_rate[gid_index] = rate; } + if (macid >= ODM_ASSOCIATE_ENTRY_NUM) + return; #endif if (is_sta_active(sta)) { sta->ra_info.curr_tx_rate = rate; @@ -862,10 +936,14 @@ u8 phydm_get_tx_stream_num(void *dm_void, enum rf_type type) u64 phydm_get_bb_mod_ra_mask(void *dm_void, u8 sta_idx) { struct dm_struct *dm = (struct dm_struct *)dm_void; + struct phydm_iot_center *iot_table = &dm->iot_table; struct cmn_sta_info *sta = dm->phydm_sta_info[sta_idx]; struct ra_sta_info *ra = NULL; enum channel_width bw = 0; enum wireless_set wrls_mode = 0; +#if (DM_ODM_SUPPORT_TYPE == ODM_AP) + struct rtl8192cd_priv *priv = dm->priv; +#endif u8 tx_stream_num = 1; u8 rssi_lv = 0; u64 ra_mask_bitmap = 0; @@ -977,8 +1055,21 @@ u64 phydm_get_bb_mod_ra_mask(void *dm_void, u8 sta_idx) PHYDM_DBG(dm, DBG_RA, "Mod by mode=0x%llx\n", ra_mask_bitmap); +#if ((DM_ODM_SUPPORT_TYPE == ODM_AP) && defined(PHYDM_IC_JGR3_SERIES_SUPPORT)) + if (priv->pshare->veriwave_sta_num > 0) { + PHYDM_DBG(dm, DBG_RA, "Mod by RSSI=0x%llx\n", ra_mask_bitmap); + return ra_mask_bitmap; + } +#endif /*@[Modify RA Mask by RSSI level]*/ if (wrls_mode != WIRELESS_CCK) { + if (iot_table->patch_id_40010700) { + ra_mask_bitmap &= (rssi_lv == 0 ? + 0xffffffffffffffff : + 0xfffffffffffffff0); + return ra_mask_bitmap; + } + if (rssi_lv == 0) ra_mask_bitmap &= 0xffffffffffffffff; else if (rssi_lv == 1) @@ -1077,6 +1168,8 @@ u8 phydm_get_rate_id(void *dm_void, u8 sta_idx) rate_id_idx = PHYDM_GN_N2SS; else if (tx_stream_num == 3) rate_id_idx = PHYDM_ARFR5_N_3SS; + else if (tx_stream_num == 4) + rate_id_idx = PHYDM_ARFR7_N_4SS; } else if (wrls_mode == (WIRELESS_CCK | WIRELESS_OFDM | WIRELESS_HT)) { /*@BGN mode*/ if (bw == CHANNEL_WIDTH_40) { @@ -1132,14 +1225,21 @@ u8 phydm_get_rate_id(void *dm_void, u8 sta_idx) else if (tx_stream_num == 4) rate_id_idx = PHYDM_ARFR6_AC_4SS; } else { - if (tx_stream_num == 1) - rate_id_idx = PHYDM_ARFR2_AC_2G_1SS; - else if (tx_stream_num == 2) - rate_id_idx = PHYDM_ARFR3_AC_2G_2SS; - else if (tx_stream_num == 3) + if (tx_stream_num == 1) { + if (dm->support_ic_type & PHYDM_IC_RATEID_IDX_TYPE2) + rate_id_idx = PHYDM_TYPE2_ARFR5_AC_2G_1SS; + else + rate_id_idx = PHYDM_ARFR2_AC_2G_1SS; + } else if (tx_stream_num == 2) { + if (dm->support_ic_type & PHYDM_IC_RATEID_IDX_TYPE2) + rate_id_idx = PHYDM_TYPE2_ARFR3_AC_2G_2SS; + else + rate_id_idx = PHYDM_ARFR3_AC_2G_2SS; + } else if (tx_stream_num == 3) { rate_id_idx = PHYDM_ARFR4_AC_3SS; - else if (tx_stream_num == 4) + } else if (tx_stream_num == 4) { rate_id_idx = PHYDM_ARFR6_AC_4SS; + } } } else { PHYDM_DBG(dm, DBG_RA, "[Warrning] No rate_id is found\n"); @@ -1151,6 +1251,24 @@ u8 phydm_get_rate_id(void *dm_void, u8 sta_idx) return rate_id_idx; } +#ifdef PHYDM_IC_JGR3_SERIES_SUPPORT +void phydm_ra_mode_selection(void *dm_void, u8 mode) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct ra_table *ra_tab = &dm->dm_ra_table; + u8 pre_mode = ra_tab->ra_trigger_mode; /* 0:pkt RA, 1:TBTT RA */ + + if (mode >= 2) { + PHYDM_DBG(dm, DBG_RA, "RA mode selection Fail\n"); + } else { + ra_tab->ra_trigger_mode = mode; + PHYDM_DBG(dm, DBG_RA, "RA mode, 0:pkt RA, 1:TBTT RA\n"); + PHYDM_DBG(dm, DBG_RA, "PreMode=%d,CurMode=%d\n", pre_mode, + mode); + } +} +#endif + void phydm_ra_h2c(void *dm_void, u8 sta_idx, u8 dis_ra, u8 dis_pt, u8 no_update_bw, u8 init_ra_lv, u64 ra_mask) { @@ -1158,6 +1276,7 @@ void phydm_ra_h2c(void *dm_void, u8 sta_idx, u8 dis_ra, u8 dis_pt, struct cmn_sta_info *sta = dm->phydm_sta_info[sta_idx]; struct ra_sta_info *ra = NULL; u8 h2c_val[H2C_MAX_LENGTH] = {0}; + u8 rate_id_idx = 0; if (is_sta_active(sta)) { ra = &sta->ra_info; @@ -1169,14 +1288,30 @@ void phydm_ra_h2c(void *dm_void, u8 sta_idx, u8 dis_ra, u8 dis_pt, PHYDM_DBG(dm, DBG_RA, "%s ======>\n", __func__); PHYDM_DBG(dm, DBG_RA, "MACID=%d\n", sta->mac_id); + - if (dm->is_disable_power_training) - dis_pt = true; - else if (!dm->is_disable_power_training) +#ifdef PHYDM_POWER_TRAINING_SUPPORT + if ((dm->support_ability & ODM_BB_PWR_TRAIN) && !dm->is_disable_power_training) dis_pt = false; + else + dis_pt = true; + +#else + dis_pt= true; +#endif + + rate_id_idx = ra->rate_id; + + /*for compatibility issues with FW RA [PHYDM-405]*/ + if (dm->support_ic_type & PHYDM_IC_RATEID_IDX_TYPE2) { + if (rate_id_idx == PHYDM_TYPE2_ARFR5_AC_2G_1SS) + rate_id_idx = PHYDM_ARFR2_AC_2G_1SS; + else if (rate_id_idx == PHYDM_TYPE2_ARFR3_AC_2G_2SS) + rate_id_idx = PHYDM_ARFR3_AC_2G_2SS; + } h2c_val[0] = sta->mac_id; - h2c_val[1] = (ra->rate_id & 0x1f) | ((init_ra_lv & 0x3) << 5) | + h2c_val[1] = (rate_id_idx & 0x1f) | ((init_ra_lv & 0x3) << 5) | (ra->is_support_sgi << 7); h2c_val[2] = (u8)((ra->ra_bw_mode) | (((sta->ldpc_en) ? 1 : 0) << 2) | ((no_update_bw & 0x1) << 3) | @@ -1883,6 +2018,21 @@ void phydm_rrsr_en(void *dm_void, boolean en_rrsr) ra_tab->dynamic_rrsr_en = en_rrsr; } +void phydm_arfr_table_init(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + + if (dm->support_ic_type & PHYDM_IC_RATEID_IDX_TYPE2) { + /*ARFR table3(2.4g ac 2ss) for rate_id = 16*/ + odm_set_mac_reg(dm, R_0x494, MASKDWORD, 0xfe01f015); + odm_set_mac_reg(dm, R_0x498, MASKDWORD, 0x40000000); + + /*ARFR table5(2.4g ac 1ss) for rate_id = 18*/ + odm_set_mac_reg(dm, R_0x4a4, MASKDWORD, 0x3ff015); + odm_set_mac_reg(dm, R_0x4a8, MASKDWORD, 0x40000000); + } +} + void phydm_ra_info_init(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; @@ -1893,7 +2043,9 @@ void phydm_ra_info_init(void *dm_void) ra_tab->ra_th_ofst = 0; ra_tab->ra_ofst_direc = 0; ra_tab->rrsr_val_init = odm_get_mac_reg(dm, R_0x440, MASKDWORD); - + ra_tab->dynamic_rrsr_en = false; + ra_tab->ra_trigger_mode = 1; // default TBTT RA + ra_tab->ra_tx_cls_th = 255; #if (RTL8822B_SUPPORT == 1) if (dm->support_ic_type == ODM_RTL8822B) { u32 ret_value; @@ -1911,6 +2063,8 @@ void phydm_ra_info_init(void *dm_void) phydm_ra_dynamic_rate_id_init(dm); #endif + phydm_arfr_table_init(dm); + phydm_rate_adaptive_mask_init(dm); } diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_rainfo.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_rainfo.h index bb265fb6..5cef3ce1 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_rainfo.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_rainfo.h @@ -26,8 +26,8 @@ #ifndef __PHYDMRAINFO_H__ #define __PHYDMRAINFO_H__ -/* 2019.06.28 Add legacy rate 2 spec rate API*/ -#define RAINFO_VERSION "8.5" +/* 2020.08.05 Fix ARFR bug due to rate_id error for 2.4G VHT mode*/ +#define RAINFO_VERSION "8.8" #define FORCED_UPDATE_RAMASK_PERIOD 5 @@ -110,6 +110,16 @@ enum phydm_rateid_idx { PHYDM_ARFR6_AC_4SS = 16 }; +/*ARFR4(0x49c/0x4a0) can not be used because FW BT would use.*/ +enum phydm_rateid_idx_type_2 { + PHYDM_TYPE2_AC_2SS = 9, + PHYDM_TYPE2_AC_1SS = 10, + PHYDM_TYPE2_MIX_1SS = 11, + PHYDM_TYPE2_MIX_2SS = 12, + PHYDM_TYPE2_ARFR3_AC_2G_2SS = 16, /*0x494/0x498*/ + PHYDM_TYPE2_ARFR5_AC_2G_1SS = 18 /*0x4a4/0x4a8*/ +}; + enum phydm_qam_order { PHYDM_QAM_CCK = 0, PHYDM_QAM_BPSK = 1, @@ -192,6 +202,8 @@ struct ra_table { u32 rrsr_val_init; /*0x440*/ u32 rrsr_val_curr; /*0x440*/ boolean dynamic_rrsr_en; + u8 ra_trigger_mode; /*0: pkt RA, 1: TBTT RA*/ + u8 ra_tx_cls_th; /*255: auto, xx: in dB*/ #if 0 /*@CONFIG_RA_DYNAMIC_RTY_LIMIT*/ u8 per_rate_retrylimit_20M[PHY_NUM_RATE_IDX]; u8 per_rate_retrylimit_40M[PHY_NUM_RATE_IDX]; @@ -202,6 +214,18 @@ struct ra_table { u8 ldpc_thres; /* @if RSSI > ldpc_th => switch from LPDC to BCC */ void (*record_ra_info)(void *dm_void, u8 macid, struct cmn_sta_info *sta, u64 ra_mask); + u8 ra_mask_rpt_stamp; + u8 ra_mask_buf[8]; +}; + +struct ra_mask_rpt_trig { + u8 ra_mask_rpt_stamp; + u8 macid; +}; + +struct ra_mask_rpt { + u8 ra_mask_rpt_stamp; + u8 ra_mask_buf[8]; }; /* @1 ============================================================ @@ -230,6 +254,11 @@ void phydm_h2C_debug(void *dm_void, char input[][16], u32 *_used, void phydm_ra_debug(void *dm_void, char input[][16], u32 *_used, char *output, u32 *_out_len); +void phydm_ra_mask_report_h2c_trigger(void *dm_void, + struct ra_mask_rpt_trig *trig_rpt); + +void phydm_ra_mask_report_c2h_result(void *dm_void, struct ra_mask_rpt *rpt); + void odm_c2h_ra_para_report_handler(void *dm_void, u8 *cmd_buf, u8 cmd_len); void phydm_print_rate(void *dm_void, u8 rate, u32 dbg_component); @@ -296,4 +325,9 @@ void phydm_ra_mask_watchdog(void *dm_void); void odm_refresh_basic_rate_mask( void *dm_void); #endif + +#ifdef PHYDM_IC_JGR3_SERIES_SUPPORT +void phydm_ra_mode_selection(void *dm_void, u8 mode); +#endif + #endif /*@#ifndef __PHYDMRAINFO_H__*/ diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_regtable.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_regtable.h index 60faf89f..aed2fb8b 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_regtable.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_regtable.h @@ -24,6 +24,7 @@ #define R_0x0 0x0 #define R_0x00 0x00 +#define R_0x08 0x08 #define R_0x0106 0x0106 #define R_0x0140 0x0140 #define R_0x0144 0x0144 @@ -31,11 +32,23 @@ #define R_0x040 0x040 #define R_0x10 0x10 #define R_0x100 0x100 +#define R_0x1000 0x1000 +#define R_0x1008 0x1008 #define R_0x1038 0x1038 #define R_0x103c 0x103c #define R_0x1040 0x1040 #define R_0x1048 0x1048 +#define R_0x1064 0x1064 #define R_0x1080 0x1080 +#define R_0x10d8 0x10d8 +#define R_0x10dc 0x10dc +#define R_0x1200 0x1200 +#define R_0x1204 0x1204 +#define R_0x1208 0x1208 +#define R_0x1210 0x1210 +#define R_0x1214 0x1214 +#define R_0x1218 0x1218 +#define R_0x121c 0x121c #define R_0x14 0x14 #define R_0x14c0 0x14c0 #define R_0x14c4 0x14c4 @@ -112,12 +125,19 @@ #define R_0x1a00 0x1a00 #define R_0x1a04 0x1a04 #define R_0x1a08 0x1a08 +#define R_0x1a0c 0x1a0c #define R_0x1a10 0x1a10 #define R_0x1a14 0x1a14 +#define R_0x1a18 0x1a18 +#define R_0x1a1c 0x1a1c #define R_0x1a20 0x1a20 #define R_0x1a24 0x1a24 #define R_0x1a28 0x1a28 #define R_0x1a2c 0x1a2c +#define R_0x1a30 0x1a30 +#define R_0x1a34 0x1a34 +#define R_0x1a38 0x1a38 +#define R_0x1a48 0x1a48 #define R_0x1a5c 0x1a5c #define R_0x1a70 0x1a70 #define R_0x1a74 0x1a74 @@ -194,6 +214,7 @@ #define R_0x1bb8 0x1bb8 #define R_0x1bbc 0x1bbc #define R_0x1bc0 0x1bc0 +#define R_0x1bc4 0x1bc4 #define R_0x1bc8 0x1bc8 #define R_0x1bca 0x1bca #define R_0x1bcb 0x1bcb @@ -204,6 +225,7 @@ #define R_0x1bd6 0x1bd6 #define R_0x1bd8 0x1bd8 #define R_0x1bdc 0x1bdc +#define R_0x1be3 0x1be3 #define R_0x1be4 0x1be4 #define R_0x1be8 0x1be8 #define R_0x1beb 0x1beb @@ -229,6 +251,8 @@ #define R_0x1c78 0x1c78 #define R_0x1c7c 0x1c7c #define R_0x1c80 0x1c80 +#define R_0x1c84 0x1c84 +#define R_0x1c8c 0x1c8c #define R_0x1c90 0x1c90 #define R_0x1c94 0x1c94 #define R_0x1c98 0x1c98 @@ -237,8 +261,10 @@ #define R_0x1ca4 0x1ca4 #define R_0x1cb0 0x1cb0 #define R_0x1cb8 0x1cb8 +#define R_0x1cbc 0x1cbc #define R_0x1cc0 0x1cc0 #define R_0x1cd0 0x1cd0 +#define R_0x1cd8 0x1cd8 #define R_0x1ce4 0x1ce4 #define R_0x1ce8 0x1ce8 #define R_0x1cec 0x1cec @@ -252,6 +278,7 @@ #define R_0x1d2c 0x1d2c #define R_0x1d30 0x1d30 #define R_0x1d3c 0x1d3c +#define R_0x1d40 0x1d40 #define R_0x1d44 0x1d44 #define R_0x1d48 0x1d48 #define R_0x1d58 0x1d58 @@ -275,6 +302,10 @@ #define R_0x1e40 0x1e40 #define R_0x1e44 0x1e44 #define R_0x1e48 0x1e48 +#define R_0x1e4c 0x1e4c +#define R_0x1e50 0x1e50 +#define R_0x1e54 0x1e54 +#define R_0x1e58 0x1e58 #define R_0x1e5c 0x1e5c #define R_0x1e60 0x1e60 #define R_0x1e64 0x1e64 @@ -282,21 +313,43 @@ #define R_0x1e6c 0x1e6c #define R_0x1e70 0x1e70 #define R_0x1e7c 0x1e7c +#define R_0x1e80 0x1e80 #define R_0x1e84 0x1e84 #define R_0x1e88 0x1e88 #define R_0x1e8c 0x1e8c #define R_0x1ea4 0x1ea4 +#define R_0x1ea8 0x1ea8 #define R_0x1eb4 0x1eb4 #define R_0x1eb8 0x1eb8 +#define R_0x1ed4 0x1ed4 +#define R_0x1ed8 0x1ed8 +#define R_0x1edc 0x1edc +#define R_0x1ee0 0x1ee0 +#define R_0x1ee4 0x1ee4 #define R_0x1ee8 0x1ee8 #define R_0x1eec 0x1eec #define R_0x1ef0 0x1ef0 #define R_0x1ef4 0x1ef4 +#define R_0x1ef8 0x1ef8 #define R_0x1efc 0x1efc +#define R_0x1f80 0x1f80 +#define R_0x1f98 0x1f98 #define R_0x24 0x24 #define R_0x28 0x28 +#define R_0x2a00 0x2a00 +#define R_0x2a04 0x2a04 +#define R_0x2a08 0x2a08 +#define R_0x2a24 0x2a24 +#define R_0x2a38 0x2a38 +#define R_0x2a3c 0x2a3c +#define R_0x2a44 0x2a44 +#define R_0x2aa0 0x2aa0 +#define R_0x2aa8 0x2aa8 +#define R_0x2aac 0x2aac +#define R_0x2ad0 0x2ad0 #define R_0x2c 0x2c #define R_0x28a4 0x28a4 +#define R_0x28bc 0x28bc #define R_0x2c04 0x2c04 #define R_0x2c08 0x2c08 #define R_0x2c0c 0x2c0c @@ -320,7 +373,10 @@ #define R_0x2d44 0x2d44 #define R_0x2d48 0x2d48 #define R_0x2d4c 0x2d4c +#define R_0x2d6c 0x2d6c +#define R_0x2d84 0x2d84 #define R_0x2d88 0x2d88 +#define R_0x2d8c 0x2d8c #define R_0x2d90 0x2d90 #define R_0x2d9c 0x2d9c #define R_0x2db4 0x2db4 @@ -331,6 +387,15 @@ #define R_0x2de8 0x2de8 #define R_0x2e00 0x2e00 #define R_0x2e20 0x2e20 +#define R_0x2e60 0x2e60 +#define R_0x2e64 0x2e64 +#define R_0x2e68 0x2e68 +#define R_0x2e6c 0x2e6c +#define R_0x2e70 0x2e70 +#define R_0x2e74 0x2e74 +#define R_0x2e78 0x2e78 +#define R_0x2e7c 0x2e7c +#define R_0x2e80 0x2e80 #define R_0x300 0x300 #define R_0x38 0x38 #define R_0x3a00 0x3a00 @@ -418,12 +483,66 @@ #define R_0x42 0x42 #define R_0x430 0x430 #define R_0x434 0x434 +#define R_0x42a4 0x42a4 +#define R_0x42b0 0x42b0 +#define R_0x42b4 0x42b4 +#define R_0x42e8 0x42e8 +#define R_0x42f0 0x42f0 +#define R_0x4300 0x4300 +#define R_0x4304 0x4304 +#define R_0x4308 0x4308 +#define R_0x430c 0x430c +#define R_0x4310 0x4310 +#define R_0x4314 0x4314 +#define R_0x4318 0x4318 +#define R_0x431c 0x431c +#define R_0x4320 0x4320 +#define R_0x4324 0x4324 +#define R_0x4328 0x4328 +#define R_0x432c 0x432c +#define R_0x4330 0x4330 +#define R_0x4334 0x4334 +#define R_0x4338 0x4338 +#define R_0x433c 0x433c +#define R_0x4340 0x4340 +#define R_0x4344 0x4344 +#define R_0x4348 0x4348 +#define R_0x434c 0x434c +#define R_0x4350 0x4350 +#define R_0x4354 0x4354 +#define R_0x4358 0x4358 +#define R_0x435c 0x435c +#define R_0x4360 0x4360 +#define R_0x4364 0x4364 +#define R_0x4368 0x4368 +#define R_0x436c 0x436c +#define R_0x4370 0x4370 +#define R_0x4374 0x4374 +#define R_0x4378 0x4378 +#define R_0x437c 0x437c +#define R_0x4380 0x4380 +#define R_0x4384 0x4384 +#define R_0x4388 0x4388 +#define R_0x438c 0x438c +#define R_0x4390 0x4390 +#define R_0x4394 0x4394 +#define R_0x4398 0x4398 +#define R_0x439c 0x439c +#define R_0x43a0 0x43a0 +#define R_0x43a4 0x43a4 +#define R_0x43a8 0x43a8 +#define R_0x43ac 0x43ac +#define R_0x43b0 0x43b0 +#define R_0x43b4 0x43b4 +#define R_0x43b8 0x43b8 #define R_0x44 0x44 #define R_0x440 0x440 #define R_0x444 0x444 #define R_0x448 0x448 #define R_0x450 0x450 #define R_0x454 0x454 +#define R_0x494 0x494 +#define R_0x498 0x498 #define R_0x49c 0x49c #define R_0x4a0 0x4a0 #define R_0x4a4 0x4a4 @@ -600,6 +719,7 @@ #define R_0x974 0x974 #define R_0x978 0x978 #define R_0x97c 0x97c +#define R_0x980 0x980 #define R_0x988 0x988 #define R_0x98c 0x98c #define R_0x990 0x990 @@ -614,6 +734,7 @@ #define R_0x9b8 0x9b8 #define R_0x9cc 0x9cc #define R_0x9d0 0x9d0 +#define R_0x9d8 0x9d8 #define R_0x9e4 0x9e4 #define R_0x9e8 0x9e8 #define R_0x9f0 0x9f0 @@ -650,6 +771,7 @@ #define R_0xaac 0xaac #define R_0xab4 0xab4 #define R_0xabc 0xabc +#define R_0xac 0xac #define R_0xac8 0xac8 #define R_0xacc 0xacc #define R_0xad0 0xad0 @@ -730,6 +852,7 @@ #define R_0xc24 0xc24 #define R_0xc2c 0xc2c #define R_0xc30 0xc30 +#define R_0xc34 0xc34 #define R_0xc38 0xc38 #define R_0xc3c 0xc3c #define R_0xc40 0xc40 @@ -798,6 +921,7 @@ #define R_0xdb4 0xdb4 #define R_0xdb8 0xdb8 #define R_0xdbc 0xdbc +#define R_0xdc 0xdc #define R_0xdcc 0xdcc #define R_0xdd0 0xdd0 #define R_0xdd4 0xdd4 @@ -870,6 +994,7 @@ #define R_0xf18 0xf18 #define R_0xf1c 0xf1c #define R_0xf20 0xf20 +#define R_0xf24 0xf24 #define R_0xf2c 0xf2c #define R_0xf30 0xf30 #define R_0xf34 0xf34 @@ -891,6 +1016,7 @@ #define R_0xf90 0xf90 #define R_0xf94 0xf94 #define R_0xf98 0xf98 +#define R_0xf9c 0xf9c #define R_0xfa0 0xfa0 #define R_0xfa4 0xfa4 #define R_0xfa8 0xfa8 @@ -908,6 +1034,7 @@ #define RF_0x0 0x0 #define RF_0x00 0x00 #define RF_0x08 0x08 +#define RF_0x09 0x09 #define RF_0x0c 0x0c #define RF_0x0d 0x0d #define RF_0x1 0x1 @@ -917,6 +1044,9 @@ #define RF_0x1bf0 0x1bf0 #define RF_0x2 0x2 #define RF_0x3 0x3 +#define RF_0x1e 0x1e +#define RF_0x1f 0x1f +#define RF_0x20 0x20 #define RF_0x30 0x30 #define RF_0x31 0x31 #define RF_0x32 0x32 @@ -927,6 +1057,7 @@ #define RF_0x4 0x4 #define RF_0x42 0x42 #define RF_0x43 0x43 +#define RF_0x5 0x5 #define RF_0x51 0x51 #define RF_0x52 0x52 #define RF_0x53 0x53 @@ -937,12 +1068,15 @@ #define RF_0x58 0x58 #define RF_0x5c 0x5c #define RF_0x5d 0x5d +#define RF_0x5e 0x5e +#define RF_0x60 0x60 #define RF_0x61 0x61 #define RF_0x63 0x63 #define RF_0x64 0x64 #define RF_0x65 0x65 #define RF_0x66 0x66 #define RF_0x67 0x67 +#define RF_0x6d 0x6d #define RF_0x6e 0x6e #define RF_0x6f 0x6f #define RF_0x75 0x75 @@ -958,12 +1092,17 @@ #define RF_0x85 0x85 #define RF_0x86 0x86 #define RF_0x87 0x87 +#define RF_0x88 0x88 #define RF_0x8a 0x8a +#define RF_0x8b 0x8b #define RF_0x8c 0x8c #define RF_0x8d 0x8d #define RF_0x8f 0x8f +#define RF_0x92 0x92 #define RF_0x93 0x93 #define RF_0x9e 0x9e +#define RF_0x9f 0x9f +#define RF_0xa3 0xa3 #define RF_0xa9 0xa9 #define RF_0xae 0xae #define RF_0xb0 0xb0 @@ -973,6 +1112,7 @@ #define RF_0xbc 0xbc #define RF_0xbe 0xbe #define RF_0xc4 0xc4 +#define RF_0xc8 0xc8 #define RF_0xc9 0xc9 #define RF_0xca 0xca #define RF_0xcc 0xcc diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_rssi_monitor.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_rssi_monitor.c index f9c081be..1fde0369 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_rssi_monitor.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_rssi_monitor.c @@ -80,7 +80,7 @@ void phydm_rssi_monitor_h2c(void *dm_void, u8 macid) h2c[4] = (ra_t->ra_th_ofst & 0x7f) | ((ra_t->ra_ofst_direc & 0x1) << 7); h2c[5] = 0; - h2c[6] = 0; + h2c[6] = ((ra_t->ra_trigger_mode) << 2); PHYDM_DBG(dm, DBG_RSSI_MNTR, "PHYDM h2c[0x42]=0x%x %x %x %x %x %x %x\n", h2c[6], h2c[5], h2c[4], h2c[3], h2c[2], h2c[1], h2c[0]); @@ -95,6 +95,22 @@ void phydm_rssi_monitor_h2c(void *dm_void, u8 macid) } } +#if (DM_ODM_SUPPORT_TYPE == ODM_AP) +void phydm_sta_rssi_init(void *dm_void, u8 macid, u8 init_rssi) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + struct cmn_sta_info *sta = NULL; + struct rssi_info *rssi_t = NULL; + + PHYDM_DBG(dm, DBG_RSSI_MNTR, "%s ======>\n", __func__); + + sta = dm->phydm_sta_info[macid]; + rssi_t = &sta->rssi_stat; + + rssi_t->rssi_acc = (init_rssi << RSSI_MA); + rssi_t->rssi = init_rssi; +} +#endif void phydm_calculate_rssi_min_max(void *dm_void) { struct dm_struct *dm = (struct dm_struct *)dm_void; @@ -133,6 +149,10 @@ void phydm_calculate_rssi_min_max(void *dm_void) } dm->pre_rssi_min = dm->rssi_min; +#if (DM_ODM_SUPPORT_TYPE == ODM_AP) + if (dm->number_linked_client == 0) + return; +#endif dm->rssi_max = (u8)rssi_max_tmp; dm->rssi_min = (u8)rssi_min_tmp; } diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_rssi_monitor.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_rssi_monitor.h index ac997e32..b0f446ea 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_rssi_monitor.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_rssi_monitor.h @@ -51,5 +51,8 @@ void phydm_rssi_monitor_check(void *dm_void); void phydm_rssi_monitor_init(void *dm_void); +#if (DM_ODM_SUPPORT_TYPE == ODM_AP) +void phydm_sta_rssi_init(void *dm_void, u8 macid, u8 init_rssi); +#endif #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_soml.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_soml.c index cba806ed..cd4001af 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_soml.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_soml.c @@ -312,6 +312,9 @@ void phydm_soml_debug(void *dm_void, char input[][16], u32 *_used, u32 dm_value[10] = {0}; u8 i = 0, input_idx = 0; + if (!(dm->support_ability & ODM_BB_ADAPTIVE_SOML)) + return; + for (i = 0; i < 5; i++) { if (input[i + 1]) { PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &dm_value[i]); @@ -560,10 +563,6 @@ void phydm_adsl_init_state(void *dm_void) } soml_tab->is_soml_method_enable = 1; - #if (DM_ODM_SUPPORT_TYPE == ODM_AP) - odm_set_mac_reg(dm, R_0x608, BIT(8), 1); - /*RCR accepts CRC32-Error packets*/ - #endif soml_tab->get_stats = false; soml_tab->soml_state_cnt++; next_on_off = (soml_tab->soml_on_off == SOML_ON) ? SOML_ON : SOML_OFF; @@ -679,10 +678,6 @@ void phydm_adsl_decision_state(void *dm_void) pr_debug("%s: mismatch IC type %x\n", __func__, dm->support_ic_type); soml_tab->get_stats = false; - #if (DM_ODM_SUPPORT_TYPE == ODM_AP) - odm_set_mac_reg(dm, R_0x608, BIT(8), 0); - /* NOT Accept CRC32 Error packets. */ - #endif PHYDM_DBG(dm, DBG_ADPTV_SOML, "[Decisoin state ]\n"); phydm_soml_statistics(dm, soml_tab->soml_on_off); if (*dm->channel <= 14) { @@ -1149,6 +1144,9 @@ void phydm_set_adsl_val(void *dm_void, u32 *val_buf, u8 val_len) { struct dm_struct *dm = (struct dm_struct *)dm_void; + if (!(dm->support_ability & ODM_BB_ADAPTIVE_SOML)) + return; + if (val_len != 1) { PHYDM_DBG(dm, ODM_COMP_API, "[Error][ADSL]Need val_len=1\n"); return; @@ -1163,6 +1161,9 @@ void phydm_soml_crc_acq(void *dm_void, u8 rate_id, boolean crc32, u32 length) struct adaptive_soml *soml_tab = &dm->dm_soml_table; u8 offset = 0; + if (!(dm->support_ability & ODM_BB_ADAPTIVE_SOML)) + return; + if (!soml_tab->get_stats) return; if (length < 1400) @@ -1207,6 +1208,8 @@ void phydm_soml_bytes_acq(void *dm_void, u8 rate_id, u32 length) struct adaptive_soml *soml_tab = &dm->dm_soml_table; u8 offset = 0; + if (!(dm->support_ability & ODM_BB_ADAPTIVE_SOML)) + return; if (rate_id >= ODM_RATEMCS0 && rate_id <= ODM_RATEMCS31) { offset = rate_id - ODM_RATEMCS0; @@ -1270,6 +1273,9 @@ void phydm_adaptive_soml_timers(void *dm_void, u8 state) struct dm_struct *dm = (struct dm_struct *)dm_void; struct adaptive_soml *soml_tab = &dm->dm_soml_table; + if (!(dm->support_ic_type & PHYDM_ADAPTIVE_SOML_IC)) + return; + #if defined(CONFIG_RTL_TRIBAND_SUPPORT) && defined(CONFIG_USB_HCI) struct rtl8192cd_priv *priv = dm->priv; @@ -1301,6 +1307,10 @@ void phydm_adaptive_soml_init(void *dm_void) return; } #endif + + if (!(dm->support_ic_type & PHYDM_ADAPTIVE_SOML_IC)) + return; + PHYDM_DBG(dm, DBG_ADPTV_SOML, "%s\n", __func__); soml_tab->soml_state_cnt = 0; diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_types.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_types.h index 13762803..6ee74c1b 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_types.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_types.h @@ -158,6 +158,46 @@ enum rt_spinlock_type { #define phydm_timer_list _RT_TIMER + // for power limit table + enum odm_pw_lmt_regulation_type { + PW_LMT_REGU_FCC = 0, + PW_LMT_REGU_ETSI = 1, + PW_LMT_REGU_MKK = 2, + PW_LMT_REGU_WW13 = 3, + PW_LMT_REGU_IC = 4, + PW_LMT_REGU_KCC = 5, + PW_LMT_REGU_ACMA = 6, + PW_LMT_REGU_CHILE = 7, + PW_LMT_REGU_UKRAINE = 8, + PW_LMT_REGU_MEXICO = 9, + PW_LMT_REGU_CN = 10 + }; + + enum odm_pw_lmt_band_type { + PW_LMT_BAND_2_4G = 0, + PW_LMT_BAND_5G = 1 + }; + + enum odm_pw_lmt_bandwidth_type { + PW_LMT_BW_20M = 0, + PW_LMT_BW_40M = 1, + PW_LMT_BW_80M = 2, + PW_LMT_BW_160M = 3 + }; + + enum odm_pw_lmt_ratesection_type { + PW_LMT_RS_CCK = 0, + PW_LMT_RS_OFDM = 1, + PW_LMT_RS_HT = 2, + PW_LMT_RS_VHT = 3 + }; + + enum odm_pw_lmt_rfpath_type { + PW_LMT_PH_1T = 0, + PW_LMT_PH_2T = 1, + PW_LMT_PH_3T = 2, + PW_LMT_PH_4T = 3 + }; #elif (DM_ODM_SUPPORT_TYPE == ODM_AP) #include "../typedef.h" @@ -253,6 +293,47 @@ enum rt_spinlock_type { #define phydm_timer_list rtw_timer_list + // for power limit table + enum odm_pw_lmt_regulation_type { + PW_LMT_REGU_FCC = 0, + PW_LMT_REGU_ETSI = 1, + PW_LMT_REGU_MKK = 2, + PW_LMT_REGU_WW13 = 3, + PW_LMT_REGU_IC = 4, + PW_LMT_REGU_KCC = 5, + PW_LMT_REGU_ACMA = 6, + PW_LMT_REGU_CHILE = 7, + PW_LMT_REGU_UKRAINE = 8, + PW_LMT_REGU_MEXICO = 9, + PW_LMT_REGU_CN = 10 + }; + + enum odm_pw_lmt_band_type { + PW_LMT_BAND_2_4G = 0, + PW_LMT_BAND_5G = 1 + }; + + enum odm_pw_lmt_bandwidth_type { + PW_LMT_BW_20M = 0, + PW_LMT_BW_40M = 1, + PW_LMT_BW_80M = 2, + PW_LMT_BW_160M = 3 + }; + + enum odm_pw_lmt_ratesection_type { + PW_LMT_RS_CCK = 0, + PW_LMT_RS_OFDM = 1, + PW_LMT_RS_HT = 2, + PW_LMT_RS_VHT = 3 + }; + + enum odm_pw_lmt_rfpath_type { + PW_LMT_PH_1T = 0, + PW_LMT_PH_2T = 1, + PW_LMT_PH_3T = 2, + PW_LMT_PH_4T = 3 + }; + #elif (DM_ODM_SUPPORT_TYPE == ODM_IOT) #define boolean bool #define true _TRUE @@ -264,7 +345,15 @@ enum rt_spinlock_type { PW_LMT_REGU_FCC = 1, PW_LMT_REGU_ETSI = 2, PW_LMT_REGU_MKK = 3, - PW_LMT_REGU_WW13 = 4 + PW_LMT_REGU_WW13 = 4, + PW_LMT_REGU_IC = 5, + PW_LMT_REGU_KCC = 6, + PW_LMT_REGU_ACMA = 7, + PW_LMT_REGU_CHILE = 8, + PW_LMT_REGU_UKRAINE = 9, + PW_LMT_REGU_MEXICO = 10, + PW_LMT_REGU_CN = 11, + PW_LMT_REGU_MAX_NUM = 12 }; enum odm_pw_lmt_band_type { diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/halhwimg8822c_bb.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/halhwimg8822c_bb.c index 41d9d5b1..f1aac1e9 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/halhwimg8822c_bb.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/halhwimg8822c_bb.c @@ -23,85 +23,121 @@ * *****************************************************************************/ -/*Image2HeaderVersion: R3 1.5.10*/ +/*Image2HeaderVersion: R3 1.5.17*/ #include "mp_precomp.h" #include "../phydm_precomp.h" +#define CUT_DONT_CARE 0xf +#define RFE_DONT_CARE 0xff +#define PARA_IF 0x8 +#define PARA_ELSE_IF 0x9 +#define PARA_ELSE 0xa +#define PARA_END 0xb +#define PARA_CHK 0x4 + + #if (RTL8822C_SUPPORT == 1) static boolean -check_positive(struct dm_struct *dm, - const u32 condition1, - const u32 condition2, - const u32 condition3, - const u32 condition4 -) +halbb_sel_headline(struct dm_struct *dm, u32 *array, u32 array_len, + u8 *headline_size, u8 *headline_idx) { - u32 cond1 = condition1, cond2 = condition2, - cond3 = condition3, cond4 = condition4; + boolean case_match = false; + u32 cut_drv = (u32)dm->cut_version; + u32 rfe_drv = (u32)dm->rfe_type; + u32 cut_para = 0, rfe_para = 0; + u32 compare_target = 0; + u32 cut_max = 0; + u32 i = 0; - u8 cut_version_for_para = - (dm->cut_version == ODM_CUT_A) ? 15 : dm->cut_version; + *headline_idx = 0; + *headline_size = 0; - u8 pkg_type_for_para = - (dm->package_type == 0) ? 15 : dm->package_type; + while ((i + 1) < array_len) { + if ((array[i] >> 28) != 0xf) { + *headline_size = (u8)i; + break; + } + PHYDM_DBG(dm, ODM_COMP_INIT, "array[%02d]=0x%08x, array[%02d]=0x%08x\n", + i, array[i], i+1, array[i+1]); + i += 2; + } - u32 driver1 = cut_version_for_para << 24 | - (dm->support_interface & 0xF0) << 16 | - dm->support_platform << 16 | - pkg_type_for_para << 12 | - (dm->support_interface & 0x0F) << 8 | - dm->rfe_type; + PHYDM_DBG(dm, ODM_COMP_INIT, "headline_size=%d\n", i); - u32 driver2 = (dm->type_glna & 0xFF) << 0 | - (dm->type_gpa & 0xFF) << 8 | - (dm->type_alna & 0xFF) << 16 | - (dm->type_apa & 0xFF) << 24; - - u32 driver3 = 0; - - u32 driver4 = (dm->type_glna & 0xFF00) >> 8 | - (dm->type_gpa & 0xFF00) | - (dm->type_alna & 0xFF00) << 8 | - (dm->type_apa & 0xFF00) << 16; - - PHYDM_DBG(dm, ODM_COMP_INIT, - "===> %s (cond1, cond2, cond3, cond4) = (0x%X 0x%X 0x%X 0x%X)\n", - __func__, cond1, cond2, cond3, cond4); - PHYDM_DBG(dm, ODM_COMP_INIT, - "===> %s (driver1, driver2, driver3, driver4) = (0x%X 0x%X 0x%X 0x%X)\n", - __func__, driver1, driver2, driver3, driver4); - - PHYDM_DBG(dm, ODM_COMP_INIT, - " (Platform, Interface) = (0x%X, 0x%X)\n", - dm->support_platform, dm->support_interface); - PHYDM_DBG(dm, ODM_COMP_INIT, " (RFE, Package) = (0x%X, 0x%X)\n", - dm->rfe_type, dm->package_type); - - /*============== value Defined Check ===============*/ - /*cut version [27:24] need to do value check*/ - if (((cond1 & 0x0F000000) != 0) && - ((cond1 & 0x0F000000) != (driver1 & 0x0F000000))) - return false; - - /*pkg type [15:12] need to do value check*/ - if (((cond1 & 0x0000F000) != 0) && - ((cond1 & 0x0000F000) != (driver1 & 0x0000F000))) - return false; - - /*interface [11:8] need to do value check*/ - if (((cond1 & 0x00000F00) != 0) && - ((cond1 & 0x00000F00) != (driver1 & 0x00000F00))) - return false; - /*=============== Bit Defined Check ================*/ - /* We don't care [31:28] */ - - cond1 &= 0x000000FF; - driver1 &= 0x000000FF; - - if (cond1 == driver1) + if (i == 0) return true; - else - return false; + + /*case_idx:1 {RFE:Match, CUT:Match}*/ + compare_target = ((cut_drv & 0x0f) << 24) | (rfe_drv & 0xff); + PHYDM_DBG(dm, ODM_COMP_INIT, "[1] CHK {RFE:Match, CUT:Match}\n"); + for (i = 0; i < *headline_size; i += 2) { + if ((array[i] & 0x0f0000ff) == compare_target) { + *headline_idx = (u8)(i >> 1); + return true; + } + } + PHYDM_DBG(dm, ODM_COMP_INIT, " fail\n"); + + /*case_idx:2 {RFE:Match, CUT:Dont care}*/ + compare_target = (CUT_DONT_CARE << 24) | (rfe_drv & 0xff); + PHYDM_DBG(dm, ODM_COMP_INIT, "[2] CHK {RFE:Match, CUT:Dont_Care}\n"); + for (i = 0; i < *headline_size; i += 2) { + if ((array[i] & 0x0f0000ff) == compare_target) { + *headline_idx = (u8)(i >> 1); + return true; + } + } + PHYDM_DBG(dm, ODM_COMP_INIT, " fail\n"); + + /*case_idx:3 {RFE:Match, CUT:Max_in_table}*/ + PHYDM_DBG(dm, ODM_COMP_INIT, "[3] CHK {RFE:Match, CUT:Max_in_Table}\n"); + for (i = 0; i < *headline_size; i += 2) { + rfe_para = array[i] & 0xff; + cut_para = (array[i] & 0x0f000000) >> 24; + if (rfe_para == rfe_drv) { + if (cut_para >= cut_max) { + cut_max = cut_para; + *headline_idx = (u8)(i >> 1); + PHYDM_DBG(dm, ODM_COMP_INIT, "cut_max:%d\n", cut_max); + case_match = true; + } + } + } + if (case_match) { + return true; + } + PHYDM_DBG(dm, ODM_COMP_INIT, " fail\n"); + + /*case_idx:4 {RFE:Dont Care, CUT:Max_in_table}*/ + PHYDM_DBG(dm, ODM_COMP_INIT, "[4] CHK {RFE:Dont_Care, CUT:Max_in_Table}\n"); + for (i = 0; i < *headline_size; i += 2) { + rfe_para = array[i] & 0xff; + cut_para = (array[i] & 0x0f000000) >> 24; + if (rfe_para == RFE_DONT_CARE) { + if (cut_para >= cut_max) { + cut_max = cut_para; + *headline_idx = (u8)(i >> 1); + PHYDM_DBG(dm, ODM_COMP_INIT, "cut_max:%d\n", cut_max); + case_match = true; + } + } + } + if (case_match) { + return true; + } + PHYDM_DBG(dm, ODM_COMP_INIT, " fail\n"); + + /*case_idx:5 {RFE:Not_Match, CUT:Not_Match}*/ + PHYDM_DBG(dm, ODM_COMP_INIT, "[5] CHK {RFE:Not_Match, CUT:Not_Match}\n"); + PHYDM_DBG(dm, ODM_COMP_INIT, " all fail\n"); + return false; +} + +static void +halbb_flag_2_default(boolean *is_matched, boolean *find_target) +{ + *is_matched = true; + *find_target = false; } @@ -110,7 +146,10 @@ check_positive(struct dm_struct *dm, ******************************************************************************/ const u32 array_mp_8822c_agc_tab[] = { - 0x80000015, 0x00000000, 0x40000000, 0x00000000, + 0xF3FFFFFF, 0x00000000, + 0xF0FFFF15, 0x00000001, + 0xF0FFFF16, 0x00000002, + 0x83ffffff, 0x00000000, 0x40000000, 0x00000000, 0x1D90, 0x300001FF, 0x1D90, 0x300101FE, 0x1D90, 0x300201FD, @@ -175,7 +214,72 @@ const u32 array_mp_8822c_agc_tab[] = { 0x1D90, 0x303D0003, 0x1D90, 0x303E0002, 0x1D90, 0x303F0001, - 0x90000016, 0x00000000, 0x40000000, 0x00000000, + 0x90ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x1D90, 0x300001FF, + 0x1D90, 0x300101FE, + 0x1D90, 0x300201FD, + 0x1D90, 0x300301FC, + 0x1D90, 0x300401FB, + 0x1D90, 0x300501FA, + 0x1D90, 0x300601F9, + 0x1D90, 0x300701F8, + 0x1D90, 0x300801F7, + 0x1D90, 0x300901F6, + 0x1D90, 0x300A01F5, + 0x1D90, 0x300B01F4, + 0x1D90, 0x300C01F3, + 0x1D90, 0x300D01F2, + 0x1D90, 0x300E01F1, + 0x1D90, 0x300F01F0, + 0x1D90, 0x301001EF, + 0x1D90, 0x301101EE, + 0x1D90, 0x301201ED, + 0x1D90, 0x301301EC, + 0x1D90, 0x301401EB, + 0x1D90, 0x301501EA, + 0x1D90, 0x301601E9, + 0x1D90, 0x301701E8, + 0x1D90, 0x301801E7, + 0x1D90, 0x301901E5, + 0x1D90, 0x301A01E4, + 0x1D90, 0x301B01C5, + 0x1D90, 0x301C01C4, + 0x1D90, 0x301D01C3, + 0x1D90, 0x301E01C2, + 0x1D90, 0x301F0188, + 0x1D90, 0x30200187, + 0x1D90, 0x30210186, + 0x1D90, 0x30220184, + 0x1D90, 0x30230183, + 0x1D90, 0x30240182, + 0x1D90, 0x30250181, + 0x1D90, 0x30260148, + 0x1D90, 0x30270147, + 0x1D90, 0x30280146, + 0x1D90, 0x30290144, + 0x1D90, 0x302A0143, + 0x1D90, 0x302B0142, + 0x1D90, 0x302C0141, + 0x1D90, 0x302D00C8, + 0x1D90, 0x302E00C7, + 0x1D90, 0x302F00C6, + 0x1D90, 0x303000C5, + 0x1D90, 0x303100C4, + 0x1D90, 0x303200C3, + 0x1D90, 0x30330048, + 0x1D90, 0x30340047, + 0x1D90, 0x30350046, + 0x1D90, 0x30360045, + 0x1D90, 0x30370025, + 0x1D90, 0x30380024, + 0x1D90, 0x30390023, + 0x1D90, 0x303A0022, + 0x1D90, 0x303B0021, + 0x1D90, 0x303C0020, + 0x1D90, 0x303D0003, + 0x1D90, 0x303E0002, + 0x1D90, 0x303F0001, + 0x90ffff16, 0x00000000, 0x40000000, 0x00000000, 0x1D90, 0x300001FF, 0x1D90, 0x300101FE, 0x1D90, 0x300201FD, @@ -306,7 +410,72 @@ const u32 array_mp_8822c_agc_tab[] = { 0x1D90, 0x303E0002, 0x1D90, 0x303F0001, 0xB0000000, 0x00000000, - 0x80000015, 0x00000000, 0x40000000, 0x00000000, + 0x83ffffff, 0x00000000, 0x40000000, 0x00000000, + 0x1D90, 0x3040011F, + 0x1D90, 0x3041011F, + 0x1D90, 0x3042011F, + 0x1D90, 0x3043011F, + 0x1D90, 0x3044011F, + 0x1D90, 0x3045011F, + 0x1D90, 0x3046011F, + 0x1D90, 0x3047011F, + 0x1D90, 0x3048011F, + 0x1D90, 0x3049011F, + 0x1D90, 0x304A011F, + 0x1D90, 0x304B011F, + 0x1D90, 0x304C011F, + 0x1D90, 0x304D011F, + 0x1D90, 0x304E011F, + 0x1D90, 0x304F00F4, + 0x1D90, 0x305000F3, + 0x1D90, 0x305100F2, + 0x1D90, 0x305200F1, + 0x1D90, 0x305300F0, + 0x1D90, 0x305400EF, + 0x1D90, 0x305500EE, + 0x1D90, 0x305600ED, + 0x1D90, 0x305700EC, + 0x1D90, 0x305800EB, + 0x1D90, 0x305900EA, + 0x1D90, 0x305A00E9, + 0x1D90, 0x305B00E8, + 0x1D90, 0x305C00E7, + 0x1D90, 0x305D00E6, + 0x1D90, 0x305E00E4, + 0x1D90, 0x305F00E3, + 0x1D90, 0x306000E2, + 0x1D90, 0x306100C4, + 0x1D90, 0x306200C3, + 0x1D90, 0x306300C2, + 0x1D90, 0x306400A4, + 0x1D90, 0x306500A3, + 0x1D90, 0x306600A2, + 0x1D90, 0x306700A1, + 0x1D90, 0x30680084, + 0x1D90, 0x30690083, + 0x1D90, 0x306A0082, + 0x1D90, 0x306B0081, + 0x1D90, 0x306C0080, + 0x1D90, 0x306D0067, + 0x1D90, 0x306E0066, + 0x1D90, 0x306F0065, + 0x1D90, 0x30700064, + 0x1D90, 0x30710063, + 0x1D90, 0x30720044, + 0x1D90, 0x30730043, + 0x1D90, 0x30740042, + 0x1D90, 0x30750041, + 0x1D90, 0x30760024, + 0x1D90, 0x30770023, + 0x1D90, 0x30780022, + 0x1D90, 0x30790021, + 0x1D90, 0x307A0020, + 0x1D90, 0x307B0004, + 0x1D90, 0x307C0003, + 0x1D90, 0x307D0002, + 0x1D90, 0x307E0001, + 0x1D90, 0x307F0000, + 0x90ffff15, 0x00000000, 0x40000000, 0x00000000, 0x1D90, 0x304001FD, 0x1D90, 0x304101FC, 0x1D90, 0x304201FB, @@ -371,7 +540,7 @@ const u32 array_mp_8822c_agc_tab[] = { 0x1D90, 0x307D0000, 0x1D90, 0x307E0000, 0x1D90, 0x307F0000, - 0x90000016, 0x00000000, 0x40000000, 0x00000000, + 0x90ffff16, 0x00000000, 0x40000000, 0x00000000, 0x1D90, 0x304001FD, 0x1D90, 0x304101FC, 0x1D90, 0x304201FB, @@ -502,7 +671,72 @@ const u32 array_mp_8822c_agc_tab[] = { 0x1D90, 0x307E0001, 0x1D90, 0x307F0000, 0xB0000000, 0x00000000, - 0x80000015, 0x00000000, 0x40000000, 0x00000000, + 0x83ffffff, 0x00000000, 0x40000000, 0x00000000, + 0x1D90, 0x308000FF, + 0x1D90, 0x308100FF, + 0x1D90, 0x308200FF, + 0x1D90, 0x308300FF, + 0x1D90, 0x308400FF, + 0x1D90, 0x308500FF, + 0x1D90, 0x308600FE, + 0x1D90, 0x308700FD, + 0x1D90, 0x308800FC, + 0x1D90, 0x308900FB, + 0x1D90, 0x308A00FA, + 0x1D90, 0x308B00F9, + 0x1D90, 0x308C00F8, + 0x1D90, 0x308D00F7, + 0x1D90, 0x308E00F6, + 0x1D90, 0x308F00F5, + 0x1D90, 0x309000F4, + 0x1D90, 0x309100F3, + 0x1D90, 0x309200F2, + 0x1D90, 0x309300F1, + 0x1D90, 0x309400F0, + 0x1D90, 0x309500EF, + 0x1D90, 0x309600EE, + 0x1D90, 0x309700ED, + 0x1D90, 0x309800EC, + 0x1D90, 0x309900EB, + 0x1D90, 0x309A00EA, + 0x1D90, 0x309B00E8, + 0x1D90, 0x309C00E7, + 0x1D90, 0x309D00E6, + 0x1D90, 0x309E00E5, + 0x1D90, 0x309F00E4, + 0x1D90, 0x30A000C4, + 0x1D90, 0x30A100C3, + 0x1D90, 0x30A200C2, + 0x1D90, 0x30A300C1, + 0x1D90, 0x30A400A3, + 0x1D90, 0x30A500A2, + 0x1D90, 0x30A600A1, + 0x1D90, 0x30A70085, + 0x1D90, 0x30A80084, + 0x1D90, 0x30A90083, + 0x1D90, 0x30AA0082, + 0x1D90, 0x30AB0081, + 0x1D90, 0x30AC0067, + 0x1D90, 0x30AD0066, + 0x1D90, 0x30AE0065, + 0x1D90, 0x30AF0064, + 0x1D90, 0x30B00063, + 0x1D90, 0x30B10044, + 0x1D90, 0x30B20043, + 0x1D90, 0x30B30042, + 0x1D90, 0x30B40026, + 0x1D90, 0x30B50025, + 0x1D90, 0x30B60024, + 0x1D90, 0x30B70023, + 0x1D90, 0x30B80022, + 0x1D90, 0x30B90021, + 0x1D90, 0x30BA0005, + 0x1D90, 0x30BB0004, + 0x1D90, 0x30BC0003, + 0x1D90, 0x30BD0002, + 0x1D90, 0x30BE0001, + 0x1D90, 0x30BF0000, + 0x90ffff15, 0x00000000, 0x40000000, 0x00000000, 0x1D90, 0x308000FA, 0x1D90, 0x308100F9, 0x1D90, 0x308200F8, @@ -567,7 +801,7 @@ const u32 array_mp_8822c_agc_tab[] = { 0x1D90, 0x30BD0000, 0x1D90, 0x30BE0000, 0x1D90, 0x30BF0000, - 0x90000016, 0x00000000, 0x40000000, 0x00000000, + 0x90ffff16, 0x00000000, 0x40000000, 0x00000000, 0x1D90, 0x308000FA, 0x1D90, 0x308100F9, 0x1D90, 0x308200F8, @@ -698,7 +932,72 @@ const u32 array_mp_8822c_agc_tab[] = { 0x1D90, 0x30BE0001, 0x1D90, 0x30BF0000, 0xB0000000, 0x00000000, - 0x80000015, 0x00000000, 0x40000000, 0x00000000, + 0x83ffffff, 0x00000000, 0x40000000, 0x00000000, + 0x1D90, 0x30C000FF, + 0x1D90, 0x30C100FF, + 0x1D90, 0x30C200FF, + 0x1D90, 0x30C300FF, + 0x1D90, 0x30C400FF, + 0x1D90, 0x30C500FF, + 0x1D90, 0x30C600FE, + 0x1D90, 0x30C700FD, + 0x1D90, 0x30C800FC, + 0x1D90, 0x30C900FB, + 0x1D90, 0x30CA00FA, + 0x1D90, 0x30CB00F9, + 0x1D90, 0x30CC00F8, + 0x1D90, 0x30CD00F7, + 0x1D90, 0x30CE00F6, + 0x1D90, 0x30CF00F5, + 0x1D90, 0x30D000F4, + 0x1D90, 0x30D100F3, + 0x1D90, 0x30D200F2, + 0x1D90, 0x30D300F1, + 0x1D90, 0x30D400F0, + 0x1D90, 0x30D500EF, + 0x1D90, 0x30D600EE, + 0x1D90, 0x30D700ED, + 0x1D90, 0x30D800EC, + 0x1D90, 0x30D900EB, + 0x1D90, 0x30DA00EA, + 0x1D90, 0x30DB00E8, + 0x1D90, 0x30DC00E7, + 0x1D90, 0x30DD00E6, + 0x1D90, 0x30DE00E5, + 0x1D90, 0x30DF00E4, + 0x1D90, 0x30E000E3, + 0x1D90, 0x30E100E2, + 0x1D90, 0x30E200A6, + 0x1D90, 0x30E300A5, + 0x1D90, 0x30E400A4, + 0x1D90, 0x30E500A3, + 0x1D90, 0x30E600A2, + 0x1D90, 0x30E70086, + 0x1D90, 0x30E80085, + 0x1D90, 0x30E90084, + 0x1D90, 0x30EA0083, + 0x1D90, 0x30EB0082, + 0x1D90, 0x30EC0067, + 0x1D90, 0x30ED0066, + 0x1D90, 0x30EE0065, + 0x1D90, 0x30EF0064, + 0x1D90, 0x30F00063, + 0x1D90, 0x30F10045, + 0x1D90, 0x30F20044, + 0x1D90, 0x30F30043, + 0x1D90, 0x30F40042, + 0x1D90, 0x30F50025, + 0x1D90, 0x30F60024, + 0x1D90, 0x30F70023, + 0x1D90, 0x30F80022, + 0x1D90, 0x30F90021, + 0x1D90, 0x30FA0005, + 0x1D90, 0x30FB0004, + 0x1D90, 0x30FC0003, + 0x1D90, 0x30FD0002, + 0x1D90, 0x30FE0001, + 0x1D90, 0x30FF0000, + 0x90ffff15, 0x00000000, 0x40000000, 0x00000000, 0x1D90, 0x30C000F8, 0x1D90, 0x30C100F7, 0x1D90, 0x30C200F6, @@ -763,7 +1062,7 @@ const u32 array_mp_8822c_agc_tab[] = { 0x1D90, 0x30FD0000, 0x1D90, 0x30FE0000, 0x1D90, 0x30FF0000, - 0x90000016, 0x00000000, 0x40000000, 0x00000000, + 0x90ffff16, 0x00000000, 0x40000000, 0x00000000, 0x1D90, 0x30C000F8, 0x1D90, 0x30C100F7, 0x1D90, 0x30C200F6, @@ -894,332 +1193,462 @@ const u32 array_mp_8822c_agc_tab[] = { 0x1D90, 0x30FE0001, 0x1D90, 0x30FF0000, 0xB0000000, 0x00000000, - 0x80000015, 0x00000000, 0x40000000, 0x00000000, + 0x83ffffff, 0x00000000, 0x40000000, 0x00000000, 0x1D90, 0x310001FF, 0x1D90, 0x310101FF, 0x1D90, 0x310201FF, 0x1D90, 0x310301FF, - 0x1D90, 0x310401FF, - 0x1D90, 0x310501FF, - 0x1D90, 0x310601FF, - 0x1D90, 0x310701FF, - 0x1D90, 0x310801FF, - 0x1D90, 0x310901FE, - 0x1D90, 0x310A01FD, - 0x1D90, 0x310B01FC, - 0x1D90, 0x310C01FB, - 0x1D90, 0x310D01FA, - 0x1D90, 0x310E01F9, - 0x1D90, 0x310F01F8, - 0x1D90, 0x311001F7, - 0x1D90, 0x311101F6, - 0x1D90, 0x311201F5, - 0x1D90, 0x311301F4, - 0x1D90, 0x311401F3, - 0x1D90, 0x311501F2, - 0x1D90, 0x311601F1, - 0x1D90, 0x311701F0, - 0x1D90, 0x311801EF, - 0x1D90, 0x311901EE, - 0x1D90, 0x311A01ED, - 0x1D90, 0x311B01EC, - 0x1D90, 0x311C01EB, - 0x1D90, 0x311D0192, - 0x1D90, 0x311E0191, - 0x1D90, 0x311F0190, - 0x1D90, 0x3120018F, - 0x1D90, 0x3121018E, - 0x1D90, 0x3122018D, - 0x1D90, 0x3123018C, - 0x1D90, 0x3124018B, - 0x1D90, 0x3125018A, - 0x1D90, 0x31260189, - 0x1D90, 0x31270188, - 0x1D90, 0x31280187, - 0x1D90, 0x31290186, - 0x1D90, 0x312A0185, - 0x1D90, 0x312B0149, - 0x1D90, 0x312C0148, - 0x1D90, 0x312D0147, - 0x1D90, 0x312E0146, - 0x1D90, 0x312F0145, - 0x1D90, 0x31300144, - 0x1D90, 0x31310143, - 0x1D90, 0x31320142, - 0x1D90, 0x31330141, - 0x1D90, 0x31340140, - 0x1D90, 0x313500C7, - 0x1D90, 0x313600C6, - 0x1D90, 0x313700C5, - 0x1D90, 0x313800C4, - 0x1D90, 0x313900C3, - 0x1D90, 0x313A0088, - 0x1D90, 0x313B0087, - 0x1D90, 0x313C0086, - 0x1D90, 0x313D0045, - 0x1D90, 0x313E0044, - 0x1D90, 0x313F0043, - 0x90000016, 0x00000000, 0x40000000, 0x00000000, + 0x1D90, 0x310401FE, + 0x1D90, 0x310501FD, + 0x1D90, 0x310601FC, + 0x1D90, 0x310701FB, + 0x1D90, 0x310801FA, + 0x1D90, 0x310901F9, + 0x1D90, 0x310A01F8, + 0x1D90, 0x310B01F7, + 0x1D90, 0x310C01F6, + 0x1D90, 0x310D01F5, + 0x1D90, 0x310E01F4, + 0x1D90, 0x310F01F3, + 0x1D90, 0x311001F2, + 0x1D90, 0x311101F1, + 0x1D90, 0x311201F0, + 0x1D90, 0x311301EF, + 0x1D90, 0x311401EE, + 0x1D90, 0x311501ED, + 0x1D90, 0x311601EC, + 0x1D90, 0x311701EB, + 0x1D90, 0x311801EA, + 0x1D90, 0x311901E9, + 0x1D90, 0x311A01E8, + 0x1D90, 0x311B01E7, + 0x1D90, 0x311C01E5, + 0x1D90, 0x311D01E4, + 0x1D90, 0x311E01C5, + 0x1D90, 0x311F01C4, + 0x1D90, 0x312001C3, + 0x1D90, 0x312101C2, + 0x1D90, 0x31220188, + 0x1D90, 0x31230187, + 0x1D90, 0x31240186, + 0x1D90, 0x31250184, + 0x1D90, 0x31260183, + 0x1D90, 0x31270182, + 0x1D90, 0x31280181, + 0x1D90, 0x31290148, + 0x1D90, 0x312A0147, + 0x1D90, 0x312B0146, + 0x1D90, 0x312C0144, + 0x1D90, 0x312D0143, + 0x1D90, 0x312E0142, + 0x1D90, 0x312F0141, + 0x1D90, 0x313000C8, + 0x1D90, 0x313100C7, + 0x1D90, 0x313200C6, + 0x1D90, 0x313300C5, + 0x1D90, 0x313400C4, + 0x1D90, 0x313500C3, + 0x1D90, 0x31360048, + 0x1D90, 0x31370047, + 0x1D90, 0x31380046, + 0x1D90, 0x31390045, + 0x1D90, 0x313A0025, + 0x1D90, 0x313B0024, + 0x1D90, 0x313C0023, + 0x1D90, 0x313D0022, + 0x1D90, 0x313E0021, + 0x1D90, 0x313F0020, + 0x90ffff15, 0x00000000, 0x40000000, 0x00000000, 0x1D90, 0x310001FF, 0x1D90, 0x310101FF, 0x1D90, 0x310201FF, 0x1D90, 0x310301FF, - 0x1D90, 0x310401FF, - 0x1D90, 0x310501FF, - 0x1D90, 0x310601FF, - 0x1D90, 0x310701FF, - 0x1D90, 0x310801FF, - 0x1D90, 0x310901FE, - 0x1D90, 0x310A01FD, - 0x1D90, 0x310B01FC, - 0x1D90, 0x310C01FB, - 0x1D90, 0x310D01FA, - 0x1D90, 0x310E01F9, - 0x1D90, 0x310F01F8, - 0x1D90, 0x311001F7, - 0x1D90, 0x311101F6, - 0x1D90, 0x311201F5, - 0x1D90, 0x311301F4, - 0x1D90, 0x311401F3, - 0x1D90, 0x311501F2, - 0x1D90, 0x311601F1, - 0x1D90, 0x311701F0, - 0x1D90, 0x311801EF, - 0x1D90, 0x311901EE, - 0x1D90, 0x311A01ED, - 0x1D90, 0x311B01EC, - 0x1D90, 0x311C01EB, - 0x1D90, 0x311D0192, - 0x1D90, 0x311E0191, - 0x1D90, 0x311F0190, - 0x1D90, 0x3120018F, - 0x1D90, 0x3121018E, - 0x1D90, 0x3122018D, - 0x1D90, 0x3123018C, - 0x1D90, 0x3124018B, - 0x1D90, 0x3125018A, - 0x1D90, 0x31260189, - 0x1D90, 0x31270188, - 0x1D90, 0x31280187, - 0x1D90, 0x31290186, - 0x1D90, 0x312A0185, - 0x1D90, 0x312B0149, - 0x1D90, 0x312C0148, - 0x1D90, 0x312D0147, - 0x1D90, 0x312E0146, - 0x1D90, 0x312F0145, - 0x1D90, 0x31300144, - 0x1D90, 0x31310143, - 0x1D90, 0x31320142, - 0x1D90, 0x31330141, - 0x1D90, 0x31340140, - 0x1D90, 0x313500C7, - 0x1D90, 0x313600C6, - 0x1D90, 0x313700C5, - 0x1D90, 0x313800C4, - 0x1D90, 0x313900C3, - 0x1D90, 0x313A0088, - 0x1D90, 0x313B0087, - 0x1D90, 0x313C0086, - 0x1D90, 0x313D0045, - 0x1D90, 0x313E0044, - 0x1D90, 0x313F0043, + 0x1D90, 0x310401FE, + 0x1D90, 0x310501FD, + 0x1D90, 0x310601FC, + 0x1D90, 0x310701FB, + 0x1D90, 0x310801FA, + 0x1D90, 0x310901F9, + 0x1D90, 0x310A01F8, + 0x1D90, 0x310B01F7, + 0x1D90, 0x310C01F6, + 0x1D90, 0x310D01F5, + 0x1D90, 0x310E01F4, + 0x1D90, 0x310F01F3, + 0x1D90, 0x311001F2, + 0x1D90, 0x311101F1, + 0x1D90, 0x311201F0, + 0x1D90, 0x311301EF, + 0x1D90, 0x311401EE, + 0x1D90, 0x311501ED, + 0x1D90, 0x311601EC, + 0x1D90, 0x311701EB, + 0x1D90, 0x311801EA, + 0x1D90, 0x311901E9, + 0x1D90, 0x311A01E8, + 0x1D90, 0x311B01E7, + 0x1D90, 0x311C01E5, + 0x1D90, 0x311D01E4, + 0x1D90, 0x311E01C5, + 0x1D90, 0x311F01C4, + 0x1D90, 0x312001C3, + 0x1D90, 0x312101C2, + 0x1D90, 0x31220188, + 0x1D90, 0x31230187, + 0x1D90, 0x31240186, + 0x1D90, 0x31250184, + 0x1D90, 0x31260183, + 0x1D90, 0x31270182, + 0x1D90, 0x31280181, + 0x1D90, 0x31290148, + 0x1D90, 0x312A0147, + 0x1D90, 0x312B0146, + 0x1D90, 0x312C0144, + 0x1D90, 0x312D0143, + 0x1D90, 0x312E0142, + 0x1D90, 0x312F0141, + 0x1D90, 0x313000C8, + 0x1D90, 0x313100C7, + 0x1D90, 0x313200C6, + 0x1D90, 0x313300C5, + 0x1D90, 0x313400C4, + 0x1D90, 0x313500C3, + 0x1D90, 0x31360048, + 0x1D90, 0x31370047, + 0x1D90, 0x31380046, + 0x1D90, 0x31390045, + 0x1D90, 0x313A0025, + 0x1D90, 0x313B0024, + 0x1D90, 0x313C0023, + 0x1D90, 0x313D0022, + 0x1D90, 0x313E0021, + 0x1D90, 0x313F0020, + 0x90ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x1D90, 0x310001FF, + 0x1D90, 0x310101FF, + 0x1D90, 0x310201FF, + 0x1D90, 0x310301FF, + 0x1D90, 0x310401FE, + 0x1D90, 0x310501FD, + 0x1D90, 0x310601FC, + 0x1D90, 0x310701FB, + 0x1D90, 0x310801FA, + 0x1D90, 0x310901F9, + 0x1D90, 0x310A01F8, + 0x1D90, 0x310B01F7, + 0x1D90, 0x310C01F6, + 0x1D90, 0x310D01F5, + 0x1D90, 0x310E01F4, + 0x1D90, 0x310F01F3, + 0x1D90, 0x311001F2, + 0x1D90, 0x311101F1, + 0x1D90, 0x311201F0, + 0x1D90, 0x311301EF, + 0x1D90, 0x311401EE, + 0x1D90, 0x311501ED, + 0x1D90, 0x311601EC, + 0x1D90, 0x311701EB, + 0x1D90, 0x311801EA, + 0x1D90, 0x311901E9, + 0x1D90, 0x311A01E8, + 0x1D90, 0x311B01E7, + 0x1D90, 0x311C01E5, + 0x1D90, 0x311D01E4, + 0x1D90, 0x311E01C5, + 0x1D90, 0x311F01C4, + 0x1D90, 0x312001C3, + 0x1D90, 0x312101C2, + 0x1D90, 0x31220188, + 0x1D90, 0x31230187, + 0x1D90, 0x31240186, + 0x1D90, 0x31250184, + 0x1D90, 0x31260183, + 0x1D90, 0x31270182, + 0x1D90, 0x31280181, + 0x1D90, 0x31290148, + 0x1D90, 0x312A0147, + 0x1D90, 0x312B0146, + 0x1D90, 0x312C0144, + 0x1D90, 0x312D0143, + 0x1D90, 0x312E0142, + 0x1D90, 0x312F0141, + 0x1D90, 0x313000C8, + 0x1D90, 0x313100C7, + 0x1D90, 0x313200C6, + 0x1D90, 0x313300C5, + 0x1D90, 0x313400C4, + 0x1D90, 0x313500C3, + 0x1D90, 0x31360048, + 0x1D90, 0x31370047, + 0x1D90, 0x31380046, + 0x1D90, 0x31390045, + 0x1D90, 0x313A0025, + 0x1D90, 0x313B0024, + 0x1D90, 0x313C0023, + 0x1D90, 0x313D0022, + 0x1D90, 0x313E0021, + 0x1D90, 0x313F0020, 0xA0000000, 0x00000000, 0x1D90, 0x310001FF, 0x1D90, 0x310101FF, 0x1D90, 0x310201FF, 0x1D90, 0x310301FF, - 0x1D90, 0x310401FF, - 0x1D90, 0x310501FF, - 0x1D90, 0x310601FF, - 0x1D90, 0x310701FF, - 0x1D90, 0x310801FF, - 0x1D90, 0x310901FE, - 0x1D90, 0x310A01FD, - 0x1D90, 0x310B01FC, - 0x1D90, 0x310C01FB, - 0x1D90, 0x310D01FA, - 0x1D90, 0x310E01F9, - 0x1D90, 0x310F01F8, - 0x1D90, 0x311001F7, - 0x1D90, 0x311101F6, - 0x1D90, 0x311201F5, - 0x1D90, 0x311301F4, - 0x1D90, 0x311401F3, - 0x1D90, 0x311501F2, - 0x1D90, 0x311601F1, - 0x1D90, 0x311701F0, - 0x1D90, 0x311801EF, - 0x1D90, 0x311901EE, - 0x1D90, 0x311A01ED, - 0x1D90, 0x311B01EC, - 0x1D90, 0x311C01EB, - 0x1D90, 0x311D0192, - 0x1D90, 0x311E0191, - 0x1D90, 0x311F0190, - 0x1D90, 0x3120018F, - 0x1D90, 0x3121018E, - 0x1D90, 0x3122018D, - 0x1D90, 0x3123018C, - 0x1D90, 0x3124018B, - 0x1D90, 0x3125018A, - 0x1D90, 0x31260189, - 0x1D90, 0x31270188, - 0x1D90, 0x31280187, - 0x1D90, 0x31290186, - 0x1D90, 0x312A0185, - 0x1D90, 0x312B0149, - 0x1D90, 0x312C0148, - 0x1D90, 0x312D0147, - 0x1D90, 0x312E0146, - 0x1D90, 0x312F0145, - 0x1D90, 0x31300144, - 0x1D90, 0x31310143, - 0x1D90, 0x31320142, - 0x1D90, 0x31330141, - 0x1D90, 0x31340140, - 0x1D90, 0x313500C7, - 0x1D90, 0x313600C6, - 0x1D90, 0x313700C5, - 0x1D90, 0x313800C4, - 0x1D90, 0x313900C3, - 0x1D90, 0x313A0088, - 0x1D90, 0x313B0087, - 0x1D90, 0x313C0086, - 0x1D90, 0x313D0045, - 0x1D90, 0x313E0044, - 0x1D90, 0x313F0043, + 0x1D90, 0x310401FE, + 0x1D90, 0x310501FD, + 0x1D90, 0x310601FC, + 0x1D90, 0x310701FB, + 0x1D90, 0x310801FA, + 0x1D90, 0x310901F9, + 0x1D90, 0x310A01F8, + 0x1D90, 0x310B01F7, + 0x1D90, 0x310C01F6, + 0x1D90, 0x310D01F5, + 0x1D90, 0x310E01F4, + 0x1D90, 0x310F01F3, + 0x1D90, 0x311001F2, + 0x1D90, 0x311101F1, + 0x1D90, 0x311201F0, + 0x1D90, 0x311301EF, + 0x1D90, 0x311401EE, + 0x1D90, 0x311501ED, + 0x1D90, 0x311601EC, + 0x1D90, 0x311701EB, + 0x1D90, 0x311801EA, + 0x1D90, 0x311901E9, + 0x1D90, 0x311A01E8, + 0x1D90, 0x311B01E7, + 0x1D90, 0x311C01E5, + 0x1D90, 0x311D01E4, + 0x1D90, 0x311E01C5, + 0x1D90, 0x311F01C4, + 0x1D90, 0x312001C3, + 0x1D90, 0x312101C2, + 0x1D90, 0x31220188, + 0x1D90, 0x31230187, + 0x1D90, 0x31240186, + 0x1D90, 0x31250184, + 0x1D90, 0x31260183, + 0x1D90, 0x31270182, + 0x1D90, 0x31280181, + 0x1D90, 0x31290148, + 0x1D90, 0x312A0147, + 0x1D90, 0x312B0146, + 0x1D90, 0x312C0144, + 0x1D90, 0x312D0143, + 0x1D90, 0x312E0142, + 0x1D90, 0x312F0141, + 0x1D90, 0x313000C8, + 0x1D90, 0x313100C7, + 0x1D90, 0x313200C6, + 0x1D90, 0x313300C5, + 0x1D90, 0x313400C4, + 0x1D90, 0x313500C3, + 0x1D90, 0x31360048, + 0x1D90, 0x31370047, + 0x1D90, 0x31380046, + 0x1D90, 0x31390045, + 0x1D90, 0x313A0025, + 0x1D90, 0x313B0024, + 0x1D90, 0x313C0023, + 0x1D90, 0x313D0022, + 0x1D90, 0x313E0021, + 0x1D90, 0x313F0020, 0xB0000000, 0x00000000, - 0x80000015, 0x00000000, 0x40000000, 0x00000000, + 0x83ffffff, 0x00000000, 0x40000000, 0x00000000, 0x1D90, 0x314001FF, 0x1D90, 0x314101FF, 0x1D90, 0x314201FF, 0x1D90, 0x314301FF, 0x1D90, 0x314401FF, 0x1D90, 0x314501FF, - 0x1D90, 0x314601FF, - 0x1D90, 0x314701FE, - 0x1D90, 0x314801FD, - 0x1D90, 0x314901FC, - 0x1D90, 0x314A01FB, - 0x1D90, 0x314B01FA, - 0x1D90, 0x314C01F9, - 0x1D90, 0x314D01F8, - 0x1D90, 0x314E01F7, - 0x1D90, 0x314F01F6, - 0x1D90, 0x315001F5, - 0x1D90, 0x315101F4, - 0x1D90, 0x315201F3, - 0x1D90, 0x315301F2, - 0x1D90, 0x315401F1, - 0x1D90, 0x315501F0, - 0x1D90, 0x315601EF, - 0x1D90, 0x315701EE, - 0x1D90, 0x315801ED, - 0x1D90, 0x315901EC, - 0x1D90, 0x315A01EB, - 0x1D90, 0x315B01EA, - 0x1D90, 0x315C01E9, - 0x1D90, 0x315D018F, - 0x1D90, 0x315E018E, - 0x1D90, 0x315F018D, - 0x1D90, 0x3160018C, - 0x1D90, 0x3161018B, - 0x1D90, 0x3162018A, - 0x1D90, 0x31630189, - 0x1D90, 0x31640188, - 0x1D90, 0x31650187, - 0x1D90, 0x31660186, - 0x1D90, 0x31670185, - 0x1D90, 0x31680184, - 0x1D90, 0x31690183, - 0x1D90, 0x316A0182, - 0x1D90, 0x316B0149, - 0x1D90, 0x316C0148, - 0x1D90, 0x316D0147, - 0x1D90, 0x316E0146, - 0x1D90, 0x316F0145, - 0x1D90, 0x31700144, - 0x1D90, 0x31710143, - 0x1D90, 0x31720142, - 0x1D90, 0x31730141, - 0x1D90, 0x31740140, - 0x1D90, 0x317500C7, - 0x1D90, 0x317600C6, - 0x1D90, 0x317700C5, - 0x1D90, 0x317800C4, - 0x1D90, 0x317900C3, - 0x1D90, 0x317A0088, - 0x1D90, 0x317B0087, - 0x1D90, 0x317C0086, - 0x1D90, 0x317D0045, - 0x1D90, 0x317E0044, - 0x1D90, 0x317F0043, - 0x90000016, 0x00000000, 0x40000000, 0x00000000, + 0x1D90, 0x314601FE, + 0x1D90, 0x314701FD, + 0x1D90, 0x314801FC, + 0x1D90, 0x314901FB, + 0x1D90, 0x314A01FA, + 0x1D90, 0x314B01F9, + 0x1D90, 0x314C01F8, + 0x1D90, 0x314D01F7, + 0x1D90, 0x314E01F6, + 0x1D90, 0x314F01F5, + 0x1D90, 0x315001F4, + 0x1D90, 0x315101F3, + 0x1D90, 0x315201F2, + 0x1D90, 0x315301F1, + 0x1D90, 0x315401F0, + 0x1D90, 0x315501EF, + 0x1D90, 0x315601EE, + 0x1D90, 0x315701ED, + 0x1D90, 0x315801EC, + 0x1D90, 0x315901EB, + 0x1D90, 0x315A01EA, + 0x1D90, 0x315B01E9, + 0x1D90, 0x315C01E7, + 0x1D90, 0x315D01E6, + 0x1D90, 0x315E01E5, + 0x1D90, 0x315F01E4, + 0x1D90, 0x316001A8, + 0x1D90, 0x316101A7, + 0x1D90, 0x316201A6, + 0x1D90, 0x316301A5, + 0x1D90, 0x31640185, + 0x1D90, 0x31650184, + 0x1D90, 0x31660183, + 0x1D90, 0x31670182, + 0x1D90, 0x31680149, + 0x1D90, 0x31690148, + 0x1D90, 0x316A0147, + 0x1D90, 0x316B0145, + 0x1D90, 0x316C0144, + 0x1D90, 0x316D0143, + 0x1D90, 0x316E0142, + 0x1D90, 0x316F00E6, + 0x1D90, 0x317000E5, + 0x1D90, 0x317100C9, + 0x1D90, 0x317200C8, + 0x1D90, 0x317300C7, + 0x1D90, 0x317400C6, + 0x1D90, 0x317500C5, + 0x1D90, 0x317600C4, + 0x1D90, 0x317700C3, + 0x1D90, 0x31780088, + 0x1D90, 0x31790087, + 0x1D90, 0x317A0086, + 0x1D90, 0x317B0085, + 0x1D90, 0x317C0026, + 0x1D90, 0x317D0025, + 0x1D90, 0x317E0024, + 0x1D90, 0x317F0023, + 0x90ffff15, 0x00000000, 0x40000000, 0x00000000, 0x1D90, 0x314001FF, 0x1D90, 0x314101FF, 0x1D90, 0x314201FF, 0x1D90, 0x314301FF, 0x1D90, 0x314401FF, 0x1D90, 0x314501FF, - 0x1D90, 0x314601FF, - 0x1D90, 0x314701FE, - 0x1D90, 0x314801FD, - 0x1D90, 0x314901FC, - 0x1D90, 0x314A01FB, - 0x1D90, 0x314B01FA, - 0x1D90, 0x314C01F9, - 0x1D90, 0x314D01F8, - 0x1D90, 0x314E01F7, - 0x1D90, 0x314F01F6, - 0x1D90, 0x315001F5, - 0x1D90, 0x315101F4, - 0x1D90, 0x315201F3, - 0x1D90, 0x315301F2, - 0x1D90, 0x315401F1, - 0x1D90, 0x315501F0, - 0x1D90, 0x315601EF, - 0x1D90, 0x315701EE, - 0x1D90, 0x315801ED, - 0x1D90, 0x315901EC, - 0x1D90, 0x315A01EB, - 0x1D90, 0x315B01EA, - 0x1D90, 0x315C01E9, - 0x1D90, 0x315D018F, - 0x1D90, 0x315E018E, - 0x1D90, 0x315F018D, - 0x1D90, 0x3160018C, - 0x1D90, 0x3161018B, - 0x1D90, 0x3162018A, - 0x1D90, 0x31630189, - 0x1D90, 0x31640188, - 0x1D90, 0x31650187, - 0x1D90, 0x31660186, - 0x1D90, 0x31670185, - 0x1D90, 0x31680184, - 0x1D90, 0x31690183, - 0x1D90, 0x316A0182, - 0x1D90, 0x316B0149, - 0x1D90, 0x316C0148, - 0x1D90, 0x316D0147, - 0x1D90, 0x316E0146, - 0x1D90, 0x316F0145, - 0x1D90, 0x31700144, - 0x1D90, 0x31710143, - 0x1D90, 0x31720142, - 0x1D90, 0x31730141, - 0x1D90, 0x31740140, - 0x1D90, 0x317500C7, - 0x1D90, 0x317600C6, - 0x1D90, 0x317700C5, - 0x1D90, 0x317800C4, - 0x1D90, 0x317900C3, - 0x1D90, 0x317A0088, - 0x1D90, 0x317B0087, - 0x1D90, 0x317C0086, - 0x1D90, 0x317D0045, - 0x1D90, 0x317E0044, - 0x1D90, 0x317F0043, + 0x1D90, 0x314601FE, + 0x1D90, 0x314701FD, + 0x1D90, 0x314801FC, + 0x1D90, 0x314901FB, + 0x1D90, 0x314A01FA, + 0x1D90, 0x314B01F9, + 0x1D90, 0x314C01F8, + 0x1D90, 0x314D01F7, + 0x1D90, 0x314E01F6, + 0x1D90, 0x314F01F5, + 0x1D90, 0x315001F4, + 0x1D90, 0x315101F3, + 0x1D90, 0x315201F2, + 0x1D90, 0x315301F1, + 0x1D90, 0x315401F0, + 0x1D90, 0x315501EF, + 0x1D90, 0x315601EE, + 0x1D90, 0x315701ED, + 0x1D90, 0x315801EC, + 0x1D90, 0x315901EB, + 0x1D90, 0x315A01EA, + 0x1D90, 0x315B01E9, + 0x1D90, 0x315C01E7, + 0x1D90, 0x315D01E6, + 0x1D90, 0x315E01E5, + 0x1D90, 0x315F01E4, + 0x1D90, 0x316001A8, + 0x1D90, 0x316101A7, + 0x1D90, 0x316201A6, + 0x1D90, 0x316301A5, + 0x1D90, 0x31640185, + 0x1D90, 0x31650184, + 0x1D90, 0x31660183, + 0x1D90, 0x31670182, + 0x1D90, 0x31680149, + 0x1D90, 0x31690148, + 0x1D90, 0x316A0147, + 0x1D90, 0x316B0145, + 0x1D90, 0x316C0144, + 0x1D90, 0x316D0143, + 0x1D90, 0x316E0142, + 0x1D90, 0x316F00E6, + 0x1D90, 0x317000E5, + 0x1D90, 0x317100C9, + 0x1D90, 0x317200C8, + 0x1D90, 0x317300C7, + 0x1D90, 0x317400C6, + 0x1D90, 0x317500C5, + 0x1D90, 0x317600C4, + 0x1D90, 0x317700C3, + 0x1D90, 0x31780088, + 0x1D90, 0x31790087, + 0x1D90, 0x317A0086, + 0x1D90, 0x317B0085, + 0x1D90, 0x317C0026, + 0x1D90, 0x317D0025, + 0x1D90, 0x317E0024, + 0x1D90, 0x317F0023, + 0x90ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x1D90, 0x314001FF, + 0x1D90, 0x314101FF, + 0x1D90, 0x314201FF, + 0x1D90, 0x314301FF, + 0x1D90, 0x314401FF, + 0x1D90, 0x314501FF, + 0x1D90, 0x314601FE, + 0x1D90, 0x314701FD, + 0x1D90, 0x314801FC, + 0x1D90, 0x314901FB, + 0x1D90, 0x314A01FA, + 0x1D90, 0x314B01F9, + 0x1D90, 0x314C01F8, + 0x1D90, 0x314D01F7, + 0x1D90, 0x314E01F6, + 0x1D90, 0x314F01F5, + 0x1D90, 0x315001F4, + 0x1D90, 0x315101F3, + 0x1D90, 0x315201F2, + 0x1D90, 0x315301F1, + 0x1D90, 0x315401F0, + 0x1D90, 0x315501EF, + 0x1D90, 0x315601EE, + 0x1D90, 0x315701ED, + 0x1D90, 0x315801EC, + 0x1D90, 0x315901EB, + 0x1D90, 0x315A01EA, + 0x1D90, 0x315B01E9, + 0x1D90, 0x315C01E7, + 0x1D90, 0x315D01E6, + 0x1D90, 0x315E01E5, + 0x1D90, 0x315F01E4, + 0x1D90, 0x316001A8, + 0x1D90, 0x316101A7, + 0x1D90, 0x316201A6, + 0x1D90, 0x316301A5, + 0x1D90, 0x31640185, + 0x1D90, 0x31650184, + 0x1D90, 0x31660183, + 0x1D90, 0x31670182, + 0x1D90, 0x31680149, + 0x1D90, 0x31690148, + 0x1D90, 0x316A0147, + 0x1D90, 0x316B0145, + 0x1D90, 0x316C0144, + 0x1D90, 0x316D0143, + 0x1D90, 0x316E0142, + 0x1D90, 0x316F00E6, + 0x1D90, 0x317000E5, + 0x1D90, 0x317100C9, + 0x1D90, 0x317200C8, + 0x1D90, 0x317300C7, + 0x1D90, 0x317400C6, + 0x1D90, 0x317500C5, + 0x1D90, 0x317600C4, + 0x1D90, 0x317700C3, + 0x1D90, 0x31780088, + 0x1D90, 0x31790087, + 0x1D90, 0x317A0086, + 0x1D90, 0x317B0085, + 0x1D90, 0x317C0026, + 0x1D90, 0x317D0025, + 0x1D90, 0x317E0024, + 0x1D90, 0x317F0023, 0xA0000000, 0x00000000, 0x1D90, 0x314001FF, 0x1D90, 0x314101FF, @@ -1227,66 +1656,66 @@ const u32 array_mp_8822c_agc_tab[] = { 0x1D90, 0x314301FF, 0x1D90, 0x314401FF, 0x1D90, 0x314501FF, - 0x1D90, 0x314601FF, - 0x1D90, 0x314701FE, - 0x1D90, 0x314801FD, - 0x1D90, 0x314901FC, - 0x1D90, 0x314A01FB, - 0x1D90, 0x314B01FA, - 0x1D90, 0x314C01F9, - 0x1D90, 0x314D01F8, - 0x1D90, 0x314E01F7, - 0x1D90, 0x314F01F6, - 0x1D90, 0x315001F5, - 0x1D90, 0x315101F4, - 0x1D90, 0x315201F3, - 0x1D90, 0x315301F2, - 0x1D90, 0x315401F1, - 0x1D90, 0x315501F0, - 0x1D90, 0x315601EF, - 0x1D90, 0x315701EE, - 0x1D90, 0x315801ED, - 0x1D90, 0x315901EC, - 0x1D90, 0x315A01EB, - 0x1D90, 0x315B01EA, - 0x1D90, 0x315C01E9, - 0x1D90, 0x315D018F, - 0x1D90, 0x315E018E, - 0x1D90, 0x315F018D, - 0x1D90, 0x3160018C, - 0x1D90, 0x3161018B, - 0x1D90, 0x3162018A, - 0x1D90, 0x31630189, - 0x1D90, 0x31640188, - 0x1D90, 0x31650187, - 0x1D90, 0x31660186, - 0x1D90, 0x31670185, - 0x1D90, 0x31680184, - 0x1D90, 0x31690183, - 0x1D90, 0x316A0182, - 0x1D90, 0x316B0149, - 0x1D90, 0x316C0148, - 0x1D90, 0x316D0147, - 0x1D90, 0x316E0146, - 0x1D90, 0x316F0145, - 0x1D90, 0x31700144, - 0x1D90, 0x31710143, - 0x1D90, 0x31720142, - 0x1D90, 0x31730141, - 0x1D90, 0x31740140, - 0x1D90, 0x317500C7, - 0x1D90, 0x317600C6, - 0x1D90, 0x317700C5, - 0x1D90, 0x317800C4, - 0x1D90, 0x317900C3, - 0x1D90, 0x317A0088, - 0x1D90, 0x317B0087, - 0x1D90, 0x317C0086, - 0x1D90, 0x317D0045, - 0x1D90, 0x317E0044, - 0x1D90, 0x317F0043, + 0x1D90, 0x314601FE, + 0x1D90, 0x314701FD, + 0x1D90, 0x314801FC, + 0x1D90, 0x314901FB, + 0x1D90, 0x314A01FA, + 0x1D90, 0x314B01F9, + 0x1D90, 0x314C01F8, + 0x1D90, 0x314D01F7, + 0x1D90, 0x314E01F6, + 0x1D90, 0x314F01F5, + 0x1D90, 0x315001F4, + 0x1D90, 0x315101F3, + 0x1D90, 0x315201F2, + 0x1D90, 0x315301F1, + 0x1D90, 0x315401F0, + 0x1D90, 0x315501EF, + 0x1D90, 0x315601EE, + 0x1D90, 0x315701ED, + 0x1D90, 0x315801EC, + 0x1D90, 0x315901EB, + 0x1D90, 0x315A01EA, + 0x1D90, 0x315B01E9, + 0x1D90, 0x315C01E7, + 0x1D90, 0x315D01E6, + 0x1D90, 0x315E01E5, + 0x1D90, 0x315F01E4, + 0x1D90, 0x316001A8, + 0x1D90, 0x316101A7, + 0x1D90, 0x316201A6, + 0x1D90, 0x316301A5, + 0x1D90, 0x31640185, + 0x1D90, 0x31650184, + 0x1D90, 0x31660183, + 0x1D90, 0x31670182, + 0x1D90, 0x31680149, + 0x1D90, 0x31690148, + 0x1D90, 0x316A0147, + 0x1D90, 0x316B0145, + 0x1D90, 0x316C0144, + 0x1D90, 0x316D0143, + 0x1D90, 0x316E0142, + 0x1D90, 0x316F00E6, + 0x1D90, 0x317000E5, + 0x1D90, 0x317100C9, + 0x1D90, 0x317200C8, + 0x1D90, 0x317300C7, + 0x1D90, 0x317400C6, + 0x1D90, 0x317500C5, + 0x1D90, 0x317600C4, + 0x1D90, 0x317700C3, + 0x1D90, 0x31780088, + 0x1D90, 0x31790087, + 0x1D90, 0x317A0086, + 0x1D90, 0x317B0085, + 0x1D90, 0x317C0026, + 0x1D90, 0x317D0025, + 0x1D90, 0x317E0024, + 0x1D90, 0x317F0023, 0xB0000000, 0x00000000, - 0x80000015, 0x00000000, 0x40000000, 0x00000000, + 0x83ffffff, 0x00000000, 0x40000000, 0x00000000, 0x1D90, 0x318001FE, 0x1D90, 0x318101FD, 0x1D90, 0x318201FC, @@ -1351,7 +1780,72 @@ const u32 array_mp_8822c_agc_tab[] = { 0x1D90, 0x31BD0003, 0x1D90, 0x31BE0002, 0x1D90, 0x31BF0001, - 0x90000016, 0x00000000, 0x40000000, 0x00000000, + 0x90ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x1D90, 0x318001FE, + 0x1D90, 0x318101FD, + 0x1D90, 0x318201FC, + 0x1D90, 0x318301FB, + 0x1D90, 0x318401FA, + 0x1D90, 0x318501F9, + 0x1D90, 0x318601F8, + 0x1D90, 0x318701F7, + 0x1D90, 0x318801F6, + 0x1D90, 0x318901F5, + 0x1D90, 0x318A01F4, + 0x1D90, 0x318B01F3, + 0x1D90, 0x318C01F2, + 0x1D90, 0x318D01F1, + 0x1D90, 0x318E01F0, + 0x1D90, 0x318F01EF, + 0x1D90, 0x319001EE, + 0x1D90, 0x319101ED, + 0x1D90, 0x319201EC, + 0x1D90, 0x319301EB, + 0x1D90, 0x319401EA, + 0x1D90, 0x319501E9, + 0x1D90, 0x319601E7, + 0x1D90, 0x319701E6, + 0x1D90, 0x319801E5, + 0x1D90, 0x319901E4, + 0x1D90, 0x319A01A8, + 0x1D90, 0x319B01A7, + 0x1D90, 0x319C01A6, + 0x1D90, 0x319D01A5, + 0x1D90, 0x319E0185, + 0x1D90, 0x319F0184, + 0x1D90, 0x31A00183, + 0x1D90, 0x31A10182, + 0x1D90, 0x31A20149, + 0x1D90, 0x31A30148, + 0x1D90, 0x31A40147, + 0x1D90, 0x31A50145, + 0x1D90, 0x31A60144, + 0x1D90, 0x31A70143, + 0x1D90, 0x31A80142, + 0x1D90, 0x31A900E6, + 0x1D90, 0x31AA00E5, + 0x1D90, 0x31AB00C9, + 0x1D90, 0x31AC00C8, + 0x1D90, 0x31AD00C7, + 0x1D90, 0x31AE00C6, + 0x1D90, 0x31AF00C5, + 0x1D90, 0x31B000C4, + 0x1D90, 0x31B100C3, + 0x1D90, 0x31B20088, + 0x1D90, 0x31B30087, + 0x1D90, 0x31B40086, + 0x1D90, 0x31B50085, + 0x1D90, 0x31B60026, + 0x1D90, 0x31B70025, + 0x1D90, 0x31B80024, + 0x1D90, 0x31B90023, + 0x1D90, 0x31BA0022, + 0x1D90, 0x31BB0021, + 0x1D90, 0x31BC0020, + 0x1D90, 0x31BD0003, + 0x1D90, 0x31BE0002, + 0x1D90, 0x31BF0001, + 0x90ffff16, 0x00000000, 0x40000000, 0x00000000, 0x1D90, 0x318001FE, 0x1D90, 0x318101FD, 0x1D90, 0x318201FC, @@ -1482,10 +1976,13 @@ const u32 array_mp_8822c_agc_tab[] = { 0x1D90, 0x31BE0002, 0x1D90, 0x31BF0001, 0xB0000000, 0x00000000, - 0x80000015, 0x00000000, 0x40000000, 0x00000000, + 0x83ffffff, 0x00000000, 0x40000000, 0x00000000, 0x1D70, 0x22222222, 0x1D70, 0x20202020, - 0x90000016, 0x00000000, 0x40000000, 0x00000000, + 0x90ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x1D70, 0x22222222, + 0x1D70, 0x20202020, + 0x90ffff16, 0x00000000, 0x40000000, 0x00000000, 0x1D70, 0x22222222, 0x1D70, 0x20202020, 0xA0000000, 0x00000000, @@ -1498,67 +1995,93 @@ const u32 array_mp_8822c_agc_tab[] = { void odm_read_and_config_mp_8822c_agc_tab(struct dm_struct *dm) { - u32 i = 0; - u8 c_cond; - boolean is_matched = true, is_skipped = false; - u32 array_len = - sizeof(array_mp_8822c_agc_tab) / sizeof(u32); - u32 *array = (u32 *)array_mp_8822c_agc_tab; - - u32 v1 = 0, v2 = 0, pre_v1 = 0, pre_v2 = 0; - u32 a1 = 0, a2 = 0, a3 = 0, a4 = 0; + boolean is_matched, find_target; + u32 cfg_target = 0, cfg_para = 0; + u32 i = 0; + u32 array_len = 0; + u32 *array = NULL; + u32 v1 = 0, v2 = 0; + u8 h_size = 0; + u8 h_idx = 0; PHYDM_DBG(dm, ODM_COMP_INIT, "===> %s\n", __func__); + array_len = + sizeof(array_mp_8822c_agc_tab) / sizeof(u32); + array = (u32 *)array_mp_8822c_agc_tab; + + if (!halbb_sel_headline(dm, array, array_len, &h_size, &h_idx)) { + PHYDM_DBG(dm, ODM_COMP_INIT, "No any match case.\n"); + return; + } + PHYDM_DBG(dm, ODM_COMP_INIT, "len = %d, h_size = %d, h_idx = %d\n", + array_len, h_size, h_idx); + + if (h_size != 0) { + cfg_target = array[h_idx << 1] & 0x0fffffff; + } + + i += h_size; + + PHYDM_DBG(dm, ODM_COMP_INIT, "cfg_target = 0x%x\n", cfg_target); + PHYDM_DBG(dm, ODM_COMP_INIT, "array[i] = 0x%x, array[i+1] = 0x%x\n", + array[i], array[i + 1]); + + halbb_flag_2_default(&is_matched, &find_target); while ((i + 1) < array_len) { v1 = array[i]; v2 = array[i + 1]; + i += 2; - if (v1 & (BIT(31) | BIT(30))) {/*positive & negative condition*/ - if (v1 & BIT(31)) {/* positive condition*/ - c_cond = - (u8)((v1 & (BIT(29) | BIT(28))) >> 28); - if (c_cond == COND_ENDIF) {/*end*/ - is_matched = true; - is_skipped = false; - PHYDM_DBG(dm, ODM_COMP_INIT, "ENDIF\n"); - } else if (c_cond == COND_ELSE) { /*else*/ - is_matched = is_skipped ? false : true; - PHYDM_DBG(dm, ODM_COMP_INIT, "ELSE\n"); - } else {/*if , else if*/ - pre_v1 = v1; - pre_v2 = v2; - PHYDM_DBG(dm, ODM_COMP_INIT, - "IF or ELSE IF\n"); - } - } else if (v1 & BIT(30)) { /*negative condition*/ - if (!is_skipped) { - a1 = pre_v1; a2 = pre_v2; - a3 = v1; a4 = v2; - if (check_positive(dm, - a1, a2, a3, a4)) { - is_matched = true; - is_skipped = true; - } else { - is_matched = false; - is_skipped = false; - } - } else { - is_matched = false; - } + switch (v1 >> 28) { + case PARA_IF: + case PARA_ELSE_IF: + cfg_para = v1 & 0x0fffffff; + PHYDM_DBG(dm, ODM_COMP_INIT, "*if (cart=%d, rfe=%d)\n", + (cfg_para & 0x0f000000) >> 24, cfg_para & 0xff); + break; + case PARA_ELSE: + PHYDM_DBG(dm, ODM_COMP_INIT, "*else\n"); + is_matched = false; + if (!find_target) { + PHYDM_DBG(dm, ODM_COMP_INIT, "Init Fail in idx %d\n", i); + return; } - } else { + break; + case PARA_END: + PHYDM_DBG(dm, ODM_COMP_INIT, "*endif\n"); + halbb_flag_2_default(&is_matched, &find_target); + break; + case PARA_CHK: + /*Check this para meets driver's requirement or not*/ + if (find_target) { + PHYDM_DBG(dm, ODM_COMP_INIT, " skip\n"); + is_matched = false; + break; + } + + if (cfg_para == cfg_target) { + is_matched = true; + find_target = true; + } else { + is_matched = false; + find_target = false; + } + PHYDM_DBG(dm, ODM_COMP_INIT, " match=%d\n", is_matched); + break; + default: if (is_matched) - odm_config_bb_agc_8822c(dm, v1, MASKDWORD, v2); + odm_config_bb_agc_8822c(dm, v1, MASKDWORD, v2); + break; } - i = i + 2; } + PHYDM_DBG(dm, ODM_COMP_INIT, "BBCR Init Success\n"); } u32 odm_get_version_mp_8822c_agc_tab(void) { - return 47; + return 67; } /****************************************************************************** @@ -1566,6 +2089,13 @@ odm_get_version_mp_8822c_agc_tab(void) ******************************************************************************/ const u32 array_mp_8822c_phy_reg[] = { + 0xF3FFFFFF, 0x00000000, + 0xF3FFFF15, 0x00000001, + 0xF3FFFF16, 0x00000002, + 0xF4FFFF15, 0x00000003, + 0xF4FFFF16, 0x00000004, + 0xF5FFFF15, 0x00000005, + 0xF5FFFF16, 0x00000006, 0x1D0C, 0x00410000, 0x1C3C, 0x01038040, 0x1C90, 0x00E49708, @@ -1959,25 +2489,37 @@ const u32 array_mp_8822c_phy_reg[] = { 0x1828, 0x000004FD, 0x182C, 0x00000000, 0x1834, 0x00000000, - 0x83000015, 0x00000000, 0x40000000, 0x00000000, + 0x83ffffff, 0x00000000, 0x40000000, 0x00000000, + 0x1838, 0x20000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x1838, 0x20100000, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x1838, 0x20100000, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, 0x1838, 0x20100000, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x1838, 0x20100000, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x1838, 0x20100000, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x1838, 0x20100000, 0xA0000000, 0x00000000, 0x1838, 0x20000000, 0xB0000000, 0x00000000, 0x183C, 0x00000000, - 0x83000015, 0x00000000, 0x40000000, 0x00000000, + 0x83ffffff, 0x00000000, 0x40000000, 0x00000000, + 0x1840, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x1840, 0x00002300, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x1840, 0x00002300, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, 0x1840, 0x00002300, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x1840, 0x00002300, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x1840, 0x00002300, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x1840, 0x00002300, 0xA0000000, 0x00000000, 0x1840, 0x00000000, @@ -1992,13 +2534,19 @@ const u32 array_mp_8822c_phy_reg[] = { 0x1860, 0xF0040FF8, 0x1864, 0x7F000000, 0x1868, 0x00000000, - 0x83000015, 0x00000000, 0x40000000, 0x00000000, + 0x83ffffff, 0x00000000, 0x40000000, 0x00000000, + 0x186C, 0x0000FF00, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x186C, 0x0000FF02, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x186C, 0x0000FF02, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, 0x186C, 0x0000FF02, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x186C, 0x0000FF02, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x186C, 0x0000FF02, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x186C, 0x0000FF02, 0xA0000000, 0x00000000, 0x186C, 0x0000FF00, @@ -2008,13 +2556,19 @@ const u32 array_mp_8822c_phy_reg[] = { 0x1878, 0x00000000, 0x187C, 0x00000000, 0x1880, 0x00000000, - 0x83000015, 0x00000000, 0x40000000, 0x00000000, + 0x83ffffff, 0x00000000, 0x40000000, 0x00000000, + 0x1884, 0x02B00000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x1884, 0x03B00000, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x1884, 0x03B00000, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, 0x1884, 0x03B00000, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x1884, 0x03B00000, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x1884, 0x03B00000, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x1884, 0x03B00000, 0xA0000000, 0x00000000, 0x1884, 0x02B00000, @@ -2148,16 +2702,25 @@ const u32 array_mp_8822c_phy_reg[] = { 0x1C84, 0x245120D4, 0x1C88, 0xC8400483, 0x1C8C, 0x40005A20, - 0x83000015, 0x00000000, 0x40000000, 0x00000000, + 0x83ffffff, 0x00000000, 0x40000000, 0x00000000, + 0x1C94, 0x00000000, + 0x1C98, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x1C94, 0x00000B0E, 0x1C98, 0x00450000, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x1C94, 0x00000B0E, 0x1C98, 0x00450000, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, 0x1C94, 0x00000B0E, 0x1C98, 0x00450000, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x1C94, 0x00000B0E, + 0x1C98, 0x00450000, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x1C94, 0x00000B0E, + 0x1C98, 0x00450000, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x1C94, 0x00000B0E, 0x1C98, 0x00450000, 0xA0000000, 0x00000000, @@ -2496,26 +3059,38 @@ const u32 array_mp_8822c_phy_reg[] = { 0x4128, 0x000004FD, 0x412C, 0x00000000, 0x4134, 0x00000000, - 0x83000015, 0x00000000, 0x40000000, 0x00000000, + 0x83ffffff, 0x00000000, 0x40000000, 0x00000000, + 0x4138, 0x20000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x4138, 0x20100000, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x4138, 0x20100000, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, 0x4138, 0x20100000, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x4138, 0x20100000, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x4138, 0x20100000, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x4138, 0x20100000, 0xA0000000, 0x00000000, 0x4138, 0x20000000, 0xB0000000, 0x00000000, 0x413C, 0x00000000, 0x4140, 0x00000000, - 0x83000015, 0x00000000, 0x40000000, 0x00000000, + 0x83ffffff, 0x00000000, 0x40000000, 0x00000000, + 0x4144, 0x00000000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x4144, 0x00002030, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x4144, 0x00002030, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, 0x4144, 0x00002030, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x4144, 0x00002030, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x4144, 0x00002030, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x4144, 0x00002030, 0xA0000000, 0x00000000, 0x4144, 0x00000000, @@ -2529,13 +3104,19 @@ const u32 array_mp_8822c_phy_reg[] = { 0x4160, 0xF0040FF8, 0x4164, 0x7F000000, 0x4168, 0x00000000, - 0x83000015, 0x00000000, 0x40000000, 0x00000000, + 0x83ffffff, 0x00000000, 0x40000000, 0x00000000, + 0x416C, 0x00008000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x416C, 0x00008002, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x416C, 0x00008002, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, 0x416C, 0x00008002, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x416C, 0x00008002, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x416C, 0x00008002, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x416C, 0x00008002, 0xA0000000, 0x00000000, 0x416C, 0x00008000, @@ -2545,13 +3126,19 @@ const u32 array_mp_8822c_phy_reg[] = { 0x4178, 0x00000000, 0x417C, 0x00000000, 0x4180, 0x00000000, - 0x83000015, 0x00000000, 0x40000000, 0x00000000, + 0x83ffffff, 0x00000000, 0x40000000, 0x00000000, + 0x4184, 0x02B00000, + 0x93ffff15, 0x00000000, 0x40000000, 0x00000000, 0x4184, 0x03B00000, - 0x93000016, 0x00000000, 0x40000000, 0x00000000, + 0x93ffff16, 0x00000000, 0x40000000, 0x00000000, 0x4184, 0x03B00000, - 0x94000015, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff15, 0x00000000, 0x40000000, 0x00000000, 0x4184, 0x03B00000, - 0x94000016, 0x00000000, 0x40000000, 0x00000000, + 0x94ffff16, 0x00000000, 0x40000000, 0x00000000, + 0x4184, 0x03B00000, + 0x95ffff15, 0x00000000, 0x40000000, 0x00000000, + 0x4184, 0x03B00000, + 0x95ffff16, 0x00000000, 0x40000000, 0x00000000, 0x4184, 0x03B00000, 0xA0000000, 0x00000000, 0x4184, 0x02B00000, @@ -2955,67 +3542,93 @@ const u32 array_mp_8822c_phy_reg[] = { void odm_read_and_config_mp_8822c_phy_reg(struct dm_struct *dm) { - u32 i = 0; - u8 c_cond; - boolean is_matched = true, is_skipped = false; - u32 array_len = - sizeof(array_mp_8822c_phy_reg) / sizeof(u32); - u32 *array = (u32 *)array_mp_8822c_phy_reg; - - u32 v1 = 0, v2 = 0, pre_v1 = 0, pre_v2 = 0; - u32 a1 = 0, a2 = 0, a3 = 0, a4 = 0; + boolean is_matched, find_target; + u32 cfg_target = 0, cfg_para = 0; + u32 i = 0; + u32 array_len = 0; + u32 *array = NULL; + u32 v1 = 0, v2 = 0; + u8 h_size = 0; + u8 h_idx = 0; PHYDM_DBG(dm, ODM_COMP_INIT, "===> %s\n", __func__); + array_len = + sizeof(array_mp_8822c_phy_reg) / sizeof(u32); + array = (u32 *)array_mp_8822c_phy_reg; + + if (!halbb_sel_headline(dm, array, array_len, &h_size, &h_idx)) { + PHYDM_DBG(dm, ODM_COMP_INIT, "No any match case.\n"); + return; + } + PHYDM_DBG(dm, ODM_COMP_INIT, "len = %d, h_size = %d, h_idx = %d\n", + array_len, h_size, h_idx); + + if (h_size != 0) { + cfg_target = array[h_idx << 1] & 0x0fffffff; + } + + i += h_size; + + PHYDM_DBG(dm, ODM_COMP_INIT, "cfg_target = 0x%x\n", cfg_target); + PHYDM_DBG(dm, ODM_COMP_INIT, "array[i] = 0x%x, array[i+1] = 0x%x\n", + array[i], array[i + 1]); + + halbb_flag_2_default(&is_matched, &find_target); while ((i + 1) < array_len) { v1 = array[i]; v2 = array[i + 1]; + i += 2; - if (v1 & (BIT(31) | BIT(30))) {/*positive & negative condition*/ - if (v1 & BIT(31)) {/* positive condition*/ - c_cond = - (u8)((v1 & (BIT(29) | BIT(28))) >> 28); - if (c_cond == COND_ENDIF) {/*end*/ - is_matched = true; - is_skipped = false; - PHYDM_DBG(dm, ODM_COMP_INIT, "ENDIF\n"); - } else if (c_cond == COND_ELSE) { /*else*/ - is_matched = is_skipped ? false : true; - PHYDM_DBG(dm, ODM_COMP_INIT, "ELSE\n"); - } else {/*if , else if*/ - pre_v1 = v1; - pre_v2 = v2; - PHYDM_DBG(dm, ODM_COMP_INIT, - "IF or ELSE IF\n"); - } - } else if (v1 & BIT(30)) { /*negative condition*/ - if (!is_skipped) { - a1 = pre_v1; a2 = pre_v2; - a3 = v1; a4 = v2; - if (check_positive(dm, - a1, a2, a3, a4)) { - is_matched = true; - is_skipped = true; - } else { - is_matched = false; - is_skipped = false; - } - } else { - is_matched = false; - } + switch (v1 >> 28) { + case PARA_IF: + case PARA_ELSE_IF: + cfg_para = v1 & 0x0fffffff; + PHYDM_DBG(dm, ODM_COMP_INIT, "*if (cart=%d, rfe=%d)\n", + (cfg_para & 0x0f000000) >> 24, cfg_para & 0xff); + break; + case PARA_ELSE: + PHYDM_DBG(dm, ODM_COMP_INIT, "*else\n"); + is_matched = false; + if (!find_target) { + PHYDM_DBG(dm, ODM_COMP_INIT, "Init Fail in idx %d\n", i); + return; } - } else { + break; + case PARA_END: + PHYDM_DBG(dm, ODM_COMP_INIT, "*endif\n"); + halbb_flag_2_default(&is_matched, &find_target); + break; + case PARA_CHK: + /*Check this para meets driver's requirement or not*/ + if (find_target) { + PHYDM_DBG(dm, ODM_COMP_INIT, " skip\n"); + is_matched = false; + break; + } + + if (cfg_para == cfg_target) { + is_matched = true; + find_target = true; + } else { + is_matched = false; + find_target = false; + } + PHYDM_DBG(dm, ODM_COMP_INIT, " match=%d\n", is_matched); + break; + default: if (is_matched) - odm_config_bb_phy_8822c(dm, v1, MASKDWORD, v2); + odm_config_bb_phy_8822c(dm, v1, MASKDWORD, v2); + break; } - i = i + 2; } + PHYDM_DBG(dm, ODM_COMP_INIT, "BBCR Init Success\n"); } u32 odm_get_version_mp_8822c_phy_reg(void) { - return 47; + return 67; } /****************************************************************************** diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/halhwimg8822c_bb.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/halhwimg8822c_bb.h index 4405c9d7..25478d52 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/halhwimg8822c_bb.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/halhwimg8822c_bb.h @@ -23,7 +23,7 @@ * *****************************************************************************/ -/*Image2HeaderVersion: R3 1.5.10*/ +/*Image2HeaderVersion: R3 1.5.17*/ #if (RTL8822C_SUPPORT == 1) #ifndef __INC_MP_BB_HW_IMG_8822C_H #define __INC_MP_BB_HW_IMG_8822C_H diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/phydm_hal_api8822c.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/phydm_hal_api8822c.c index 17779833..83bd22bf 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/phydm_hal_api8822c.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/phydm_hal_api8822c.c @@ -45,12 +45,13 @@ boolean phydm_set_pw_by_rate_8822c(struct dm_struct *dm, s8 *pw_idx, PHYDM_DBG(dm, ODM_PHY_CONFIG, "pow = {%d, %d, %d, %d}\n", *pw_idx, *(pw_idx - 1), *(pw_idx - 2), *(pw_idx - 3)); - /* @bbrstb TX AGC report - default disable */ - /* @Enable for writing the TX AGC table when bb_reset=0 */ - odm_set_bb_reg(dm, R_0x1c90, BIT(15), 0x0); + /*bbrstb TX AGC report - default disable */ + /*Enable for writing the TX AGC table when bb_reset=0 */ + if (odm_get_bb_reg(dm, R_0x1c90, BIT(15))) + odm_set_bb_reg(dm, R_0x1c90, BIT(15), 0x0); - /* @According the rate to write in the ofdm or the cck */ - /* @driver need to construct a 4-byte power index */ + /*According the rate to write in the ofdm or the cck */ + /*driver need to construct a 4-byte power index */ odm_set_bb_reg(dm, R_0x3a00 + rate_idx, MASKDWORD, pw_all); PHYDM_DBG(dm, ODM_PHY_CONFIG, "rate_idx=0x%x (REG0x%x) = 0x%x\n", @@ -89,6 +90,32 @@ void phydm_txagc_tab_buff_show_8822c(struct dm_struct *dm) } #endif +__odm_func__ +void phydm_rstb_3wire_8822c(struct dm_struct *dm, boolean enable) +{ + if (enable) { + odm_set_bb_reg(dm, R_0x1c90, BIT(8), 0x1); + /*force update anapar*/ + odm_set_bb_reg(dm, R_0x1830, BIT(29), 0x1); + odm_set_bb_reg(dm, R_0x4130, BIT(29), 0x1); + } else { + odm_set_bb_reg(dm, R_0x1c90, BIT(8), 0x0); + } +} + +__odm_func__ +void phydm_sdm_reset_8822c(struct dm_struct *dm) +{ + /*reset HSSI*/ + phydm_rstb_3wire_8822c(dm, false); + /*write RF-0x18*/ + odm_set_rf_reg(dm, RF_PATH_A, RF_0xbc, BIT(19), 0x0); + odm_set_rf_reg(dm, RF_PATH_A, RF_0xbc, BIT(19), 0x1); + odm_set_rf_reg(dm, RF_PATH_A, RF_0xbc, BIT(19), 0x0); + /*reset HSSI*/ + phydm_rstb_3wire_8822c(dm, true); +} + __odm_func__ void phydm_bb_reset_8822c(struct dm_struct *dm) { @@ -103,14 +130,14 @@ void phydm_bb_reset_8822c(struct dm_struct *dm) __odm_func__ void phydm_bb_reset_no_3wires_8822c(struct dm_struct *dm) { - /* Disable bbrstb 3-wires */ + /* Disable PI hardware */ odm_set_bb_reg(dm, R_0x1c90, BIT(8), 0x0); odm_set_mac_reg(dm, R_0x0, BIT(16), 1); odm_set_mac_reg(dm, R_0x0, BIT(16), 0); odm_set_mac_reg(dm, R_0x0, BIT(16), 1); - /* Enable bbrstb 3-wires */ + /* Enable PI hardware */ odm_set_bb_reg(dm, R_0x1c90, BIT(8), 0x1); } @@ -120,7 +147,11 @@ boolean phydm_chk_pkg_set_valid_8822c(struct dm_struct *dm, { boolean valid = true; - if (ver_bb >= 41 && ver_rf >= 23) + if (ver_bb >= 47 && ver_rf >= 28) + valid = true; + else if (ver_bb == 46 && ver_rf == 27) + valid = true; + else if (ver_bb >= 41 && ver_bb < 46 && ver_rf >= 23 && ver_rf < 27) valid = true; else if (ver_bb < 41 && ver_rf < 23) valid = true; @@ -140,18 +171,15 @@ __odm_func__ void phydm_igi_toggle_8822c(struct dm_struct *dm) { /* - * @Toggle IGI to force BB HW send 3-wire-cmd and will let RF HW enter RX mode. - * @Because BB HW does not send 3-wire command automacically when BB setting - * @is changed including the configuration of path/channel/BW + *Toggle IGI to force BB HW send 3-wire-cmd and will let RF HW enter RX mode. + *Because BB HW does not send 3-wire command automacically when BB setting + *is changed including the configuration of path/channel/BW */ - u32 igi = 0x20; + u32 reg_1d70 = 0x0; - /* @Do not use PHYDM API to read/write because FW can not access */ - igi = odm_get_bb_reg(dm, R_0x1d70, 0x7f); - odm_set_bb_reg(dm, R_0x1d70, 0x7f, igi - 2); - odm_set_bb_reg(dm, R_0x1d70, 0x7f00, igi - 2); - odm_set_bb_reg(dm, R_0x1d70, 0x7f, igi); - odm_set_bb_reg(dm, R_0x1d70, 0x7f00, igi); + reg_1d70 = odm_get_bb_reg(dm, R_0x1d70, MASKDWORD); + odm_set_bb_reg(dm, R_0x1d70, MASKDWORD, reg_1d70 - 0x202); + odm_set_bb_reg(dm, R_0x1d70, MASKDWORD, reg_1d70); } __odm_func__ @@ -217,12 +245,14 @@ config_phydm_direct_write_rf_reg_8822c(struct dm_struct *dm, enum rf_path path, /* @RF register only has 20bits */ bit_mask &= RFREG_MASK; + /* @write RF register directly*/ odm_set_bb_reg(dm, direct_addr, bit_mask, data); ODM_delay_us(1); - PHYDM_DBG(dm, ODM_PHY_CONFIG, "RF-%d 0x%x = 0x%x , bit mask = 0x%x\n", + PHYDM_DBG(dm, ODM_PHY_CONFIG, + "RF-%d 0x%x = 0x%x , bit mask = 0x%x\n", path, reg_addr, data, bit_mask); return true; @@ -297,7 +327,6 @@ boolean phydm_write_txagc_1byte_8822c(struct dm_struct *dm, u32 pw_idx, u8 hw_rate) { #if (PHYDM_FW_API_FUNC_ENABLE_8822C) - u32 offset_txagc = R_0x3a00; u8 rate_idx = (hw_rate & 0xfc), i = 0; u8 rate_offset = (hw_rate & 0x3); @@ -305,19 +334,20 @@ phydm_write_txagc_1byte_8822c(struct dm_struct *dm, u32 pw_idx, u8 hw_rate) u32 txagc_idx = 0x0; PHYDM_DBG(dm, ODM_PHY_CONFIG, "%s ======>\n", __func__); - /* @For debug command only!!!! */ + /*For debug command only!!!! */ - /* @bbrstb TX AGC report - default disable */ - /* @Enable for writing the TX AGC table when bb_reset=0 */ - odm_set_bb_reg(dm, R_0x1c90, BIT(15), 0x0); + /*bbrstb TX AGC report - default disable */ + /*Enable for writing the TX AGC table when bb_reset=0 */ + if (odm_get_bb_reg(dm, R_0x1c90, BIT(15))) + odm_set_bb_reg(dm, R_0x1c90, BIT(15), 0x0); - /* @Error handling */ + /*Error handling */ if (hw_rate > 0x53) { PHYDM_DBG(dm, ODM_PHY_CONFIG, "Unsupported rate\n"); return false; } - /* @For HW limitation, We can't write TXAGC once a byte. */ + /*For HW limitation, We can't write TXAGC once a byte. */ for (i = 0; i < 4; i++) { if (i != rate_offset) { ret = config_phydm_read_txagc_diff_8822c(dm, @@ -343,31 +373,32 @@ config_phydm_write_txagc_ref_8822c(struct dm_struct *dm, u8 power_index, enum rf_path path, enum PDM_RATE_TYPE rate_type) { - /* @2-path power reference */ + /*2-path power reference */ u32 txagc_ofdm_ref[2] = {R_0x18e8, R_0x41e8}; u32 txagc_cck_ref[2] = {R_0x18a0, R_0x41a0}; PHYDM_DBG(dm, ODM_PHY_CONFIG, "%s ======>\n", __func__); - /* @Input need to be HW rate index, not driver rate index!!!! */ + /*Input need to be HW rate index, not driver rate index!!!! */ if (dm->is_disable_phy_api) { PHYDM_DBG(dm, ODM_PHY_CONFIG, "Disable PHY API for debug\n"); return true; } - /* @Error handling */ + /*Error handling */ if (path > RF_PATH_B) { PHYDM_DBG(dm, ODM_PHY_CONFIG, "Unsupported path (%d)\n", path); return false; } - /* @bbrstb TX AGC report - default disable */ - /* @Enable for writing the TX AGC table when bb_reset=0 */ - odm_set_bb_reg(dm, R_0x1c90, BIT(15), 0x0); + /*bbrstb TX AGC report - default disable */ + /*Enable for writing the TX AGC table when bb_reset=0 */ + if (odm_get_bb_reg(dm, R_0x1c90, BIT(15))) + odm_set_bb_reg(dm, R_0x1c90, BIT(15), 0x0); - /* @According the rate to write in the ofdm or the cck */ - /* @CCK reference setting */ + /*According the rate to write in the ofdm or the cck */ + /*CCK reference setting */ if (rate_type == PDM_CCK) { odm_set_bb_reg(dm, txagc_cck_ref[path], 0x007f0000, power_index); @@ -375,7 +406,7 @@ config_phydm_write_txagc_ref_8822c(struct dm_struct *dm, u8 power_index, "path-%d rate type %d (0x%x) = 0x%x\n", path, rate_type, txagc_cck_ref[path], power_index); - /* @OFDM reference setting */ + /*OFDM reference setting */ } else { odm_set_bb_reg(dm, txagc_ofdm_ref[path], 0x0001fc00, power_index); @@ -394,7 +425,7 @@ config_phydm_write_txagc_diff_8822c(struct dm_struct *dm, s8 power_index1, s8 power_index4, u8 hw_rate) { u32 offset_txagc = R_0x3a00; - u8 rate_idx = hw_rate & 0xfc; /* @Extract the 0xfc */ + u8 rate_idx = hw_rate & 0xfc; /*Extract the 0xfc */ u8 power_idx1 = 0; u8 power_idx2 = 0; u8 power_idx3 = 0; @@ -410,24 +441,25 @@ config_phydm_write_txagc_diff_8822c(struct dm_struct *dm, s8 power_index1, PHYDM_DBG(dm, ODM_PHY_CONFIG, "%s ======>\n", __func__); - /* @Input need to be HW rate index, not driver rate index!!!! */ + /*Input need to be HW rate index, not driver rate index!!!! */ if (dm->is_disable_phy_api) { PHYDM_DBG(dm, ODM_PHY_CONFIG, "Disable PHY API for debug\n"); return true; } - /* @Error handling */ + /*Error handling */ if (hw_rate > ODM_RATEVHTSS2MCS9) { PHYDM_DBG(dm, ODM_PHY_CONFIG, "Unsupported rate\n"); return false; } - /* @bbrstb TX AGC report - default disable */ - /* @Enable for writing the TX AGC table when bb_reset=0 */ - odm_set_bb_reg(dm, R_0x1c90, BIT(15), 0x0); + /*bbrstb TX AGC report - default disable */ + /*Enable for writing the TX AGC table when bb_reset=0 */ + if (odm_get_bb_reg(dm, R_0x1c90, BIT(15))) + odm_set_bb_reg(dm, R_0x1c90, BIT(15), 0x0); - /* @According the rate to write in the ofdm or the cck */ - /* @driver need to construct a 4-byte power index */ + /*According the rate to write in the ofdm or the cck */ + /*driver need to construct a 4-byte power index */ odm_set_bb_reg(dm, (offset_txagc + rate_idx), MASKDWORD, pw_all); PHYDM_DBG(dm, ODM_PHY_CONFIG, "rate index 0x%x (0x%x) = 0x%x\n", @@ -926,8 +958,6 @@ phydm_config_cck_rx_path_8822c(struct dm_struct *dm, enum bb_path rx_path) odm_set_bb_reg(dm, R_0x1a2c, 0x00060000, 0x0); /* Disable MRC for CCK CCA */ odm_set_bb_reg(dm, R_0x1a2c, 0x00600000, 0x0); - /* 2R CS ratio setting*/ - odm_set_bb_reg(dm, R_0x1ad0, 0x3e0, 0xd); } else if (rx_path == BB_PATH_B) { /* Select ant_B to receive CCK_1 and CCK_2*/ odm_set_bb_reg(dm, R_0x1a04, 0x0f000000, 0x5); @@ -936,10 +966,8 @@ phydm_config_cck_rx_path_8822c(struct dm_struct *dm, enum bb_path rx_path) /* replace path-B with path-AB: [PHYDM-336]*/ /* Disable MRC for CCK barker */ odm_set_bb_reg(dm, R_0x1a2c, 0x00060000, 0x0); - /* Eable MRC for CCK CCA */ + /* Enable MRC for CCK CCA */ odm_set_bb_reg(dm, R_0x1a2c, 0x00600000, 0x1); - /* 2R CS ratio setting*/ - odm_set_bb_reg(dm, R_0x1ad0, 0x3e0, 0xf); } else if (rx_path == BB_PATH_AB) { /* Select ant_A to receive CCK_1 and ant_B to receive CCK_2*/ odm_set_bb_reg(dm, R_0x1a04, 0x0f000000, 0x1); @@ -947,14 +975,11 @@ phydm_config_cck_rx_path_8822c(struct dm_struct *dm, enum bb_path rx_path) odm_set_bb_reg(dm, R_0x1a2c, BIT(5), 0x0); /* Enable MRC for CCK barker */ odm_set_bb_reg(dm, R_0x1a2c, 0x00060000, 0x1); - /* Eable MRC for CCK CCA */ + /* Enable MRC for CCK CCA */ odm_set_bb_reg(dm, R_0x1a2c, 0x00600000, 0x1); - /* 2R CS ratio setting*/ - odm_set_bb_reg(dm, R_0x1ad0, 0x3e0, 0xd); } set_result = PHYDM_SET_SUCCESS; - phydm_bb_reset_8822c(dm); return set_result; } @@ -1092,35 +1117,23 @@ phydm_set_rf_mode_table_8822c(struct dm_struct *dm, enum bb_path tx_path_mode_table, enum bb_path rx_path) { - /* @Cannot shut down path-A, beacause synthesizer will shut down - * @when path-A is in shut down mode - */ + /*Cannot shutdown path-A, beacause synthesizer will shutdown + *when path-A is in shut down mode. + */ - /* @[3-wire setting] 0: shutdown, 1: standby, 2: TX, 3: RX*/ - if (tx_path_mode_table == BB_PATH_A) { - if (rx_path == BB_PATH_A) { - odm_set_bb_reg(dm, R_0x1800, 0xfffff, 0x33312); + /*Cannot set path-A into standby mode due to the sensitivity of CCK + *would degrade when 1T1R-B. + */ + + /*RF mode setting : 0:shutdown, 1:standby, 2:TX, 3:RX*/ + /*Mode table setting : tx:[3:0], txoff:[7:4], rx:[19:8]*/ + if (rx_path == BB_PATH_A) { + if (tx_path_mode_table == BB_PATH_A) odm_set_bb_reg(dm, R_0x4100, 0xfffff, 0x0); - } else { /* @BB_PATH_AB*/ - odm_set_bb_reg(dm, R_0x1800, 0xfffff, 0x33312); - odm_set_bb_reg(dm, R_0x4100, 0xfffff, 0x33311); - } - } else if (tx_path_mode_table == BB_PATH_B) { - if (rx_path == BB_PATH_A) { - odm_set_bb_reg(dm, R_0x1800, 0xfffff, 0x33311); + else odm_set_bb_reg(dm, R_0x4100, 0xfffff, 0x11112); - } else { - odm_set_bb_reg(dm, R_0x1800, 0xfffff, 0x33311); - odm_set_bb_reg(dm, R_0x4100, 0xfffff, 0x33312); - } - } else if (tx_path_mode_table == BB_PATH_AB) { - if (rx_path == BB_PATH_A) { - odm_set_bb_reg(dm, R_0x1800, 0xfffff, 0x33312); - odm_set_bb_reg(dm, R_0x4100, 0xfffff, 0x11112); - } else { - odm_set_bb_reg(dm, R_0x1800, 0xfffff, 0x33312); - odm_set_bb_reg(dm, R_0x4100, 0xfffff, 0x33312); - } + } else { + odm_set_bb_reg(dm, R_0x4100, 0xfffff, 0x33312); } } @@ -1270,13 +1283,13 @@ config_phydm_trx_mode_8822c(struct dm_struct *dm, enum bb_path tx_path_en, phydm_rfe_8822c(dm, BB_PATH_AB); } - phydm_igi_toggle_8822c(dm); - PHYDM_DBG(dm, ODM_PHY_CONFIG, "RX_en=%x, tx_en/2ss/1ss={%x,%x,%x}\n", rx_path, tx_path_en, tx_path_2ss, tx_path_sel_1ss); phydm_bb_reset_8822c(dm); + phydm_igi_toggle_8822c(dm); + return true; } @@ -1308,41 +1321,44 @@ __odm_func__ void phydm_cck_tx_shaping_filter_8822c(struct dm_struct *dm, u8 central_ch) { - /* @CCK TX filter parameters */ - if (central_ch == 14) { - /* @TX Shaping Filter C0~1 */ + if (central_ch == 14) { + /*TX Shaping Filter C0~1 */ odm_set_bb_reg(dm, R_0x1a20, MASKHWORD, 0x3da0); - /* @TX Shaping Filter C2~5 */ + /*TX Shaping Filter C2~5 */ odm_set_bb_reg(dm, R_0x1a24, MASKDWORD, 0x4962c931); - /* @TX Shaping Filter C6~7 */ + /*TX Shaping Filter C6~7 */ odm_set_bb_reg(dm, R_0x1a28, MASKLWORD, 0x6aa3); - /* @TX Shaping Filter C8~9 */ + /*TX Shaping Filter C8~9 */ odm_set_bb_reg(dm, R_0x1a98, MASKHWORD, 0xaa7b); - /* @TX Shaping Filter C10~11 */ + /*TX Shaping Filter C10~11 */ odm_set_bb_reg(dm, R_0x1a9c, MASKLWORD, 0xf3d7); - /* @TX Shaping Filter C12~15 */ + /*TX Shaping Filter C12~15 */ odm_set_bb_reg(dm, R_0x1aa0, MASKDWORD, 0x00000000); - /* @TX Shaping Filter_MSB C0~7 */ - odm_set_bb_reg(dm, R_0x1aac, MASKDWORD, 0xff012455); - /* @TX Shaping Filter_MSB C8~15 */ + /*TX Shaping Filter_MSB C0~7 */ + odm_set_bb_reg(dm, R_0x1aac, MASKDWORD, 0xfe012577); + /*TX Shaping Filter_MSB C8~15 */ odm_set_bb_reg(dm, R_0x1ab0, MASKDWORD, 0x0000ffff); + /*Tx backoff CCK*/ + odm_set_bb_reg(dm, R_0x818, 0xf8000000, 0x1f); } else { - /* @TX Shaping Filter C0~1 */ + /*TX Shaping Filter C0~1 */ odm_set_bb_reg(dm, R_0x1a20, MASKHWORD, 0x5284); - /* @TX Shaping Filter C2~5 */ + /*TX Shaping Filter C2~5 */ odm_set_bb_reg(dm, R_0x1a24, MASKDWORD, 0x3e18fec8); - /* @TX Shaping Filter C6~7 */ + /*TX Shaping Filter C6~7 */ odm_set_bb_reg(dm, R_0x1a28, MASKLWORD, 0x0a88); - /* @TX Shaping Filter C8~9 */ + /*TX Shaping Filter C8~9 */ odm_set_bb_reg(dm, R_0x1a98, MASKHWORD, 0xacc4); - /* @TX Shaping Filter C10~11 */ + /*TX Shaping Filter C10~11 */ odm_set_bb_reg(dm, R_0x1a9c, MASKLWORD, 0xc8b2); - /* @TX Shaping Filter C12~15 */ + /*TX Shaping Filter C12~15 */ odm_set_bb_reg(dm, R_0x1aa0, MASKDWORD, 0x00faf0de); - /* @TX Shaping Filter_MSB C0~7 */ + /*TX Shaping Filter_MSB C0~7 */ odm_set_bb_reg(dm, R_0x1aac, MASKDWORD, 0x00122344); - /* @TX Shaping Filter_MSB C8~15 */ + /*TX Shaping Filter_MSB C8~15 */ odm_set_bb_reg(dm, R_0x1ab0, MASKDWORD, 0x0fffffff); + /*Tx backoff CCK*/ + odm_set_bb_reg(dm, R_0x818, 0xf8000000, 0x18); } } @@ -1420,6 +1436,159 @@ phydm_tx_dfir_setting_8822c(struct dm_struct *dm, u8 central_ch) } } +__odm_func__ +void phydm_set_manual_nbi_8822c(struct dm_struct *dm, boolean en_manual_nbi, + int tone_idx) +{ + if (en_manual_nbi) { + /*set tone_idx*/ + odm_set_bb_reg(dm, R_0x1944, 0x001ff000, tone_idx); + odm_set_bb_reg(dm, R_0x4044, 0x001ff000, tone_idx); + /*enable manual NBI path_en*/ + odm_set_bb_reg(dm, R_0x1940, BIT(31), 0x1); + odm_set_bb_reg(dm, R_0x4040, BIT(31), 0x1); + /*enable manual NBI*/ + odm_set_bb_reg(dm, R_0x818, BIT(11), 0x1); + /*enable NBI block*/ + odm_set_bb_reg(dm, R_0x1d3c, 0x78000000, 0xf); + } else { + /*reset tone_idx*/ + odm_set_bb_reg(dm, R_0x1944, 0x001ff000, 0x0); + odm_set_bb_reg(dm, R_0x4044, 0x001ff000, 0x0); + /*disable manual NBI path_en*/ + odm_set_bb_reg(dm, R_0x1940, BIT(31), 0x0); + odm_set_bb_reg(dm, R_0x4040, BIT(31), 0x0); + /*disable manual NBI*/ + odm_set_bb_reg(dm, R_0x818, BIT(11), 0x0); + /*disable NBI block*/ + odm_set_bb_reg(dm, R_0x1d3c, 0x78000000, 0x0); + } +} + +__odm_func__ +void phydm_set_nbi_wa_para_8822c(struct dm_struct *dm, boolean en_nbi, + enum channel_width bw) +{ + if (en_nbi) { + switch (bw) { + case CHANNEL_WIDTH_20: + case CHANNEL_WIDTH_80: + odm_set_bb_reg(dm, R_0x810, 0xf, 0x7); + odm_set_bb_reg(dm, R_0x810, 0xf0000, 0x7); + odm_set_bb_reg(dm, R_0x88c, 0x30000, 0x3); + odm_set_bb_reg(dm, R_0x1944, 0x300, 0x3); + odm_set_bb_reg(dm, R_0x4044, 0x300, 0x3); + break; + case CHANNEL_WIDTH_40: + odm_set_bb_reg(dm, R_0x810, 0xf, 0x7); + odm_set_bb_reg(dm, R_0x810, 0xf0000, 0x7); + odm_set_bb_reg(dm, R_0x88c, 0x30000, 0x3); + odm_set_bb_reg(dm, R_0x1944, 0x300, 0x0); + odm_set_bb_reg(dm, R_0x4044, 0x300, 0x0); + break; + default: + break; + } + } else { + odm_set_bb_reg(dm, R_0x810, 0xf, 0x0); + odm_set_bb_reg(dm, R_0x810, 0xf0000, 0x0); + odm_set_bb_reg(dm, R_0x88c, 0x30000, 0x2); + odm_set_bb_reg(dm, R_0x1944, 0x300, 0x3); + odm_set_bb_reg(dm, R_0x4044, 0x300, 0x3); + } +} + +__odm_func__ +void phydm_set_auto_nbi_8822c(struct dm_struct *dm, boolean en_auto_nbi) +{ + if (en_auto_nbi) { + /*enable auto nbi detection*/ + odm_set_bb_reg(dm, R_0x818, BIT(3), 0x1); + odm_set_bb_reg(dm, R_0x1d3c, 0x78000000, 0xf); + } else { + odm_set_bb_reg(dm, R_0x818, BIT(3), 0x0); + odm_set_bb_reg(dm, R_0x1d3c, 0x78000000, 0x0); + } + + if (dm->en_nbi_detect) /*0x1 would be effective for techicolor*/ + odm_set_bb_reg(dm, R_0x818, 0x7, 0x1); +} + +__odm_func__ +void phydm_csi_mask_enable_8822c(struct dm_struct *dm, boolean enable) +{ + if (enable) + odm_set_bb_reg(dm, R_0xc0c, BIT(3), 0x1); + else + odm_set_bb_reg(dm, R_0xc0c, BIT(3), 0x0); +} + +__odm_func__ +void phydm_set_csi_mask_8822c(struct dm_struct *dm, u32 tone_idx) +{ + u32 table_addr = tone_idx >> 1; + + /*enable clk*/ + odm_set_bb_reg(dm, R_0x1ee8, 0x3, 0x3); + /*enable write table*/ + odm_set_bb_reg(dm, R_0x1d94, BIT(31) | BIT(30), 0x1); + /*set table_addr*/ + odm_set_bb_reg(dm, R_0x1d94, MASKBYTE2, (table_addr & 0xff)); + + if (tone_idx & 0x1) + odm_set_bb_reg(dm, R_0x1d94, 0xf0, 0x8); + else + odm_set_bb_reg(dm, R_0x1d94, 0xf, 0x8); + + /*disable clk*/ + odm_set_bb_reg(dm, R_0x1ee8, 0x3, 0x0); +} + +__odm_func__ +void phydm_clean_all_csi_mask_8822c(struct dm_struct *dm) +{ + u8 i = 0; + + /*enable clk*/ + odm_set_bb_reg(dm, R_0x1ee8, 0x3, 0x3); + /*enable write table*/ + odm_set_bb_reg(dm, R_0x1d94, BIT(31) | BIT(30), 0x1); + + for (i = 0; i < 128; i++) { + odm_set_bb_reg(dm, R_0x1d94, MASKBYTE2, i); + odm_set_bb_reg(dm, R_0x1d94, MASKBYTE0, 0x0); + } + + /*disable clk*/ + odm_set_bb_reg(dm, R_0x1ee8, 0x3, 0x0); +} + +__odm_func__ +void phydm_spur_eliminate_8822c(struct dm_struct *dm, u8 central_ch) +{ + phydm_set_auto_nbi_8822c(dm, false); + phydm_csi_mask_enable_8822c(dm, true); + + if (central_ch == 153 && (*dm->band_width == CHANNEL_WIDTH_20)) { + phydm_set_manual_nbi_8822c(dm, true, 112); /*5760 MHz*/ + phydm_set_nbi_wa_para_8822c(dm, true, *dm->band_width); + phydm_set_csi_mask_8822c(dm, 112); + } else if (central_ch == 151 && (*dm->band_width == CHANNEL_WIDTH_40)) { + phydm_set_manual_nbi_8822c(dm, true, 16); /*5760 MHz*/ + phydm_set_nbi_wa_para_8822c(dm, true, *dm->band_width); + phydm_set_csi_mask_8822c(dm, 16); + } else if (central_ch == 155 && (*dm->band_width == CHANNEL_WIDTH_80)) { + phydm_set_manual_nbi_8822c(dm, true, 208); /*5760 MHz*/ + phydm_set_nbi_wa_para_8822c(dm, true, *dm->band_width); + phydm_set_csi_mask_8822c(dm, 208); + } else { + phydm_set_manual_nbi_8822c(dm, false, 0); + phydm_set_nbi_wa_para_8822c(dm, false, *dm->band_width); + phydm_clean_all_csi_mask_8822c(dm); + phydm_csi_mask_enable_8822c(dm, false); + } +} + __odm_func__ void phydm_set_dis_dpd_by_rate_8822c(struct dm_struct *dm, u16 bitmask) { @@ -1515,17 +1684,14 @@ config_phydm_switch_channel_8822c(struct dm_struct *dm, u8 central_ch) } /*reset HSSI*/ - odm_set_bb_reg(dm, R_0x1c90, BIT(8), 0x0); - /*RxA enhance-Q setting*/ - odm_set_rf_reg(dm, RF_PATH_A, RF_0xdf, BIT(18), is_2g_ch); + phydm_rstb_3wire_8822c(dm, false); /*write RF-0x18*/ odm_set_rf_reg(dm, RF_PATH_A, RF_0x18, RFREG_MASK, rf_reg18); odm_set_rf_reg(dm, RF_PATH_B, RF_0x18, RFREG_MASK, rf_reg18); + /*RxA enhance-Q setting*/ + odm_set_rf_reg(dm, RF_PATH_A, RF_0xdf, BIT(18), is_2g_ch); /*reset HSSI*/ - odm_set_bb_reg(dm, R_0x1c90, BIT(8), 0x1); - /*force update anapar*/ - odm_set_bb_reg(dm, R_0x1830, BIT(29), 0x1); - odm_set_bb_reg(dm, R_0x4130, BIT(29), 0x1); + phydm_rstb_3wire_8822c(dm, true); /* ==== [Set BB Reg] =================================================*/ /* 1. AGC table selection */ if (central_ch <= 14) { @@ -1588,9 +1754,12 @@ config_phydm_switch_channel_8822c(struct dm_struct *dm, u8 central_ch) phydm_set_dis_dpd_by_rate_8822c(dm, 0x0); } /*====================================================================*/ + if (*dm->mp_mode) + phydm_spur_eliminate_8822c(dm, central_ch); + + phydm_bb_reset_8822c(dm); phydm_igi_toggle_8822c(dm); - phydm_bb_reset_8822c(dm); PHYDM_DBG(dm, ODM_PHY_CONFIG, "Switch CH:%d success\n", central_ch); return true; @@ -1647,6 +1816,10 @@ config_phydm_switch_bandwidth_8822c(struct dm_struct *dm, u8 pri_ch, /*ADC clock = 40M clock for BW5 */ odm_set_bb_reg(dm, R_0x9b4, 0x00700000, 0x4); + + /*Set nbi wa para*/ + if (dm->en_nbi_detect) + phydm_set_nbi_wa_para_8822c(dm, false, bw); } else if (bw == CHANNEL_WIDTH_10) { /*RX DFIR*/ odm_set_bb_reg(dm, R_0x810, 0x3ff0, 0x2ab); @@ -1660,6 +1833,10 @@ config_phydm_switch_bandwidth_8822c(struct dm_struct *dm, u8 pri_ch, /*ADC clock = 80M clock for BW10 */ odm_set_bb_reg(dm, R_0x9b4, 0x00700000, 0x5); + + /*Set nbi wa para*/ + if (dm->en_nbi_detect) + phydm_set_nbi_wa_para_8822c(dm, false, bw); } else if (bw == CHANNEL_WIDTH_20) { /*RX DFIR*/ odm_set_bb_reg(dm, R_0x810, 0x3ff0, 0x19b); @@ -1673,6 +1850,10 @@ config_phydm_switch_bandwidth_8822c(struct dm_struct *dm, u8 pri_ch, /*ADC clock = 160M clock for BW20 */ odm_set_bb_reg(dm, R_0x9b4, 0x00700000, 0x6); + + /*Set nbi wa para*/ + if (dm->en_nbi_detect) + phydm_set_nbi_wa_para_8822c(dm, true, bw); } /*TX_RF_BW:[1:0]=0x0, RX_RF_BW:[3:2]=0x0 */ @@ -1742,6 +1923,10 @@ config_phydm_switch_bandwidth_8822c(struct dm_struct *dm, u8 pri_ch, phydm_cck_agc_tab_sel_8822c(dm, CCK_BW40_8822C); phydm_ofdm_agc_tab_sel_8822c(dm, OFDM_2G_BW40_8822C); } + + /*Set nbi wa para*/ + if (dm->en_nbi_detect) + phydm_set_nbi_wa_para_8822c(dm, true, bw); break; case CHANNEL_WIDTH_80: /*TX_RF_BW:[1:0]=0x2, RX_RF_BW:[3:2]=0x2 */ @@ -1764,6 +1949,10 @@ config_phydm_switch_bandwidth_8822c(struct dm_struct *dm, u8 pri_ch, /*subtune*/ odm_set_bb_reg(dm, R_0x88c, 0xf000, 0x6); + + /*Set nbi wa para*/ + if (dm->en_nbi_detect) + phydm_set_nbi_wa_para_8822c(dm, true, bw); break; default: PHYDM_DBG(dm, ODM_PHY_CONFIG, @@ -1772,7 +1961,7 @@ config_phydm_switch_bandwidth_8822c(struct dm_struct *dm, u8 pri_ch, /*Write RF register */ /*reset HSSI*/ - odm_set_bb_reg(dm, R_0x1c90, BIT(8), 0x0); + phydm_rstb_3wire_8822c(dm, false); /*RF RXBB setting, WLANBB-1081*/ odm_set_rf_reg(dm, RF_PATH_A, RF_0xee, 0x4, 0x1); odm_set_rf_reg(dm, RF_PATH_A, RF_0x33, 0x1F, 0x12); @@ -1787,10 +1976,7 @@ config_phydm_switch_bandwidth_8822c(struct dm_struct *dm, u8 pri_ch, odm_set_rf_reg(dm, RF_PATH_A, RF_0x18, RFREG_MASK, rf_reg18); odm_set_rf_reg(dm, RF_PATH_B, RF_0x18, RFREG_MASK, rf_reg18); /*reset HSSI*/ - odm_set_bb_reg(dm, R_0x1c90, BIT(8), 0x1); - /*force update anapar*/ - odm_set_bb_reg(dm, R_0x1830, BIT(29), 0x1); - odm_set_bb_reg(dm, R_0x4130, BIT(29), 0x1); + phydm_rstb_3wire_8822c(dm, true); if (!rf_reg_status) { PHYDM_DBG(dm, ODM_PHY_CONFIG, @@ -1805,13 +1991,13 @@ config_phydm_switch_bandwidth_8822c(struct dm_struct *dm, u8 pri_ch, phydm_bw_fixed_setting(dm); #endif - /*Toggle IGI to let RF enter RX mode */ - phydm_igi_toggle_8822c(dm); - PHYDM_DBG(dm, ODM_PHY_CONFIG, "Success to switch bw (bw:%d, pri ch:%d)\n", bw, pri_ch); phydm_bb_reset_8822c(dm); + + phydm_igi_toggle_8822c(dm); + return true; } @@ -1895,27 +2081,48 @@ void phydm_i_only_setting_8822c(struct dm_struct *dm, boolean en_i_only, } __odm_func__ -void phydm_1rcca_setting_8822c(struct dm_struct *dm, boolean en_1rcca) +boolean phydm_1rcca_setting_8822c(struct dm_struct *dm, boolean en_1rcca) { - if (en_1rcca) { /*@ Set path-a*/ - odm_set_bb_reg(dm, R_0x83c, 0x4, 0x1); - odm_set_bb_reg(dm, R_0x824, 0x0f000000, 0x1); + enum bb_path ofdm_rx = BB_PATH_NON; + + ofdm_rx = (u8)odm_get_bb_reg(dm, R_0x824, 0xf0000); + + if (en_1rcca) { /*Set path-a*/ + if (ofdm_rx != BB_PATH_AB) { + pr_debug("Do not set 1RCCA when rx config is not 2R!"); + return false; + } + + odm_set_bb_reg(dm, R_0x83c, BIT(2), 0x1); + odm_set_bb_reg(dm, R_0x824, 0x0f000000, BB_PATH_A); odm_set_bb_reg(dm, R_0x4100, 0xf0000, 0x1); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x70008001); - phydm_config_cck_rx_path_8822c(dm, BB_PATH_A); + /*odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x70008001);*/ + /* Select ant_A to receive CCK_1 and CCK_2*/ + odm_set_bb_reg(dm, R_0x1a04, 0x0f000000, 0x0); + /* Disable MRC for CCK barker */ + odm_set_bb_reg(dm, R_0x1a2c, 0x00060000, 0x0); + /* Disable MRC for CCK CCA */ + odm_set_bb_reg(dm, R_0x1a2c, 0x00600000, 0x0); } else { - odm_set_bb_reg(dm, R_0x83c, 0x4, 0x0); - odm_set_bb_reg(dm, R_0x824, 0x0f000000, 0x3); + odm_set_bb_reg(dm, R_0x83c, BIT(2), 0x0); + odm_set_bb_reg(dm, R_0x824, 0x0f000000, BB_PATH_AB); odm_set_bb_reg(dm, R_0x4100, 0xf0000, 0x3); - odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x700b8001); - phydm_config_cck_rx_path_8822c(dm, BB_PATH_AB); + /* odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x700b8001); */ + /* Select ant_A to receive CCK_1 and ant_B to receive CCK_2*/ + odm_set_bb_reg(dm, R_0x1a04, 0x0f000000, 0x1); + /* Enable MRC for CCK barker */ + odm_set_bb_reg(dm, R_0x1a2c, 0x00060000, 0x1); + /* Enable MRC for CCK CCA */ + odm_set_bb_reg(dm, R_0x1a2c, 0x00600000, 0x1); } - phydm_bb_reset_8822c(dm); + + return true; } __odm_func__ void phydm_invld_pkt_setting_8822c(struct dm_struct *dm, boolean en_invld_pkt) { + #if 0 if (en_invld_pkt) { odm_set_bb_reg(dm, R_0x1c64, BIT(30), 0x1); odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x70e0c001); @@ -1925,6 +2132,14 @@ void phydm_invld_pkt_setting_8822c(struct dm_struct *dm, boolean en_invld_pkt) odm_set_bb_reg(dm, R_0x1830, MASKDWORD, 0x70eb8001); odm_set_bb_reg(dm, R_0x4130, MASKDWORD, 0x70eb8001); } + #endif + if (en_invld_pkt) { + odm_set_bb_reg(dm, R_0x1c64, BIT(30), 0x1); + odm_set_bb_reg(dm, R_0x1cd8, BIT(28), 0x1); + } else { + odm_set_bb_reg(dm, R_0x1c64, BIT(30), 0x0); + odm_set_bb_reg(dm, R_0x1cd8, BIT(28), 0x0); + } } __odm_func__ @@ -1967,14 +2182,15 @@ u16 phydm_get_dis_dpd_by_rate_8822c(struct dm_struct *dm) return dis_dpd_rate; } -__odm_func__ void phydm_cck_pd_init_8822c(struct dm_struct *dm) { +#if (defined(CONFIG_RUN_IN_DRV)) struct phydm_iot_center *iot_table = &dm->iot_table; if (*dm->mp_mode && iot_table->patch_id_021f0800) /*CS ratio:BW20/1R*/ odm_set_bb_reg(dm, R_0x1ad0, 0x1f, 0x12); +#endif } __odm_func__ @@ -1989,6 +2205,8 @@ config_phydm_parameter_init_8822c(struct dm_struct *dm, if (*dm->mp_mode) phydm_ch_smooth_setting_8822c(dm, true); + else if (dm->en_nbi_detect) + phydm_set_auto_nbi_8822c(dm, true); /* Disable low rate DPD*/ if (dm->en_dis_dpd) @@ -2081,21 +2299,22 @@ phydm_8822c_lps(struct dm_struct *dm, boolean enable_lps) poll_cnt++; } + /*When BB reset = 0, enter shutdown mode*/ + odm_set_bb_reg(dm, R_0x1c64, BIT(3), 0x0); + /* disable CCK and OFDM module */ WriteMACRegByte(REG_SYS_FUNC_EN, ReadMACRegByte(REG_SYS_FUNC_EN) & ~BIT_FEN_BBRSTB); - if (poll_cnt < WAIT_TXSM_STABLE_CNT) { - /* Gated BBclk*/ - odm_set_bb_reg(dm, R_0x1c24, BIT(0), 0x1); - } + /* Gated BBclk*/ + odm_set_bb_reg(dm, R_0x1c24, BIT(0), 0x1); return _TRUE; } else { /* release BB clk*/ odm_set_bb_reg(dm, R_0x1c24, BIT(0), 0x0); - PwrGatedRestoreBB(); + PsRestoreBB8822C(); /* Enable CCK and OFDM module, */ /* should be a delay large than 200ns before RF access */ @@ -2103,6 +2322,9 @@ phydm_8822c_lps(struct dm_struct *dm, boolean enable_lps) | BIT_FEN_BBRSTB); DelayUS(1); + /*When BB reset = 0, enter standby mode*/ + odm_set_bb_reg(dm, R_0x1c64, BIT(3), 0x1); + /* Set RF enter active mode */ bbtemp = odm_get_bb_reg(dm, R_0x824, MASKDWORD); odm_set_bb_reg(dm, R_0x824, 0xf0000, 0x3); @@ -2110,13 +2332,16 @@ phydm_8822c_lps(struct dm_struct *dm, boolean enable_lps) config_phydm_write_rf_reg_8822c(dm, RF_PATH_B, RF_0x0, RFREG_MASK, SysMib.Wlan.PS.PSParm.RxGainPathB); odm_set_bb_reg(dm, R_0x824, MASKDWORD, bbtemp); - /*bb reset w/o 3-wires */ - phydm_bb_reset_no_3wires_8822c(dm); + /*bb reset */ + phydm_bb_reset_8822c(dm); /* turn on TRx HSSI*/ odm_set_bb_reg(dm, R_0x180c, 0x3, 0x3); odm_set_bb_reg(dm, R_0x410c, 0x3, 0x3); + /*sdm reset for rf shutdown mode spur issue*/ + phydm_sdm_reset_8822c(dm); + return _TRUE; } } diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/phydm_hal_api8822c.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/phydm_hal_api8822c.h index 6f17c998..392247ca 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/phydm_hal_api8822c.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/phydm_hal_api8822c.h @@ -26,8 +26,8 @@ #define __INC_PHYDM_API_H_8822C__ #if (RTL8822C_SUPPORT) -/* 2019.06.26: Add bbrstb w/o 3-wires in LPS flow*/ -#define PHY_CONFIG_VERSION_8822C "1.5.5" +/*2021.02.05: Let the auto_nbi_detect th be 0x1 due to technicolor issue*/ +#define PHY_CONFIG_VERSION_8822C "1.8.9" /*#define CONFIG_TXAGC_DEBUG_8822C*/ #define INVALID_RF_DATA 0xffffffff @@ -125,7 +125,7 @@ boolean config_phydm_switch_channel_bw_8822c(struct dm_struct *dm, void phydm_i_only_setting_8822c(struct dm_struct *dm, boolean en_i_only, boolean en_before_cca); -void phydm_1rcca_setting_8822c(struct dm_struct *dm, boolean en_1rcca); +boolean phydm_1rcca_setting_8822c(struct dm_struct *dm, boolean en_1rcca); void phydm_invld_pkt_setting_8822c(struct dm_struct *dm, boolean en_invld_pkt); @@ -135,11 +135,15 @@ void phydm_ch_smooth_setting_8822c(struct dm_struct *dm, boolean en_ch_smooth); u16 phydm_get_dis_dpd_by_rate_8822c(struct dm_struct *dm); +void phydm_set_auto_nbi_8822c(struct dm_struct *dm, boolean en_auto_nbi); + boolean config_phydm_parameter_init_8822c(struct dm_struct *dm, enum odm_parameter_init type); boolean phydm_chk_bb_state_idle_8822c(struct dm_struct *dm); +u16 phydm_get_gpio_setting_by_rfe_ctrl_8822c(struct dm_struct *dm); + #if CONFIG_POWERSAVING boolean phydm_8822c_lps(struct dm_struct *dm, boolean enable_lps); #endif /* #if CONFIG_POWERSAVING */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/phydm_regconfig8822c.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/phydm_regconfig8822c.c index c6f5af35..2a78f953 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/phydm_regconfig8822c.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/phydm_regconfig8822c.c @@ -227,6 +227,20 @@ void odm_config_bb_phy_8822c(struct dm_struct *dm, u32 addr, u32 bitmask, addr, data); } +void odm_config_bb_txpwr_lmt_8822c_ex(struct dm_struct *dm, u8 regulation, + u8 band, u8 bandwidth, u8 rate_section, + u8 rf_path, u8 channel, s8 power_limit) +{ +#if (DM_ODM_SUPPORT_TYPE & ODM_CE) + phy_set_tx_power_limit_ex(dm, regulation, band, bandwidth, rate_section, + rf_path, channel, power_limit); +#endif +#if 0 + PHY_SetTxPowerLimit_ex(dm, regulation, band, bandwidth, rate_section, + rf_path, channel, power_limit); +#endif +} + void odm_config_bb_txpwr_lmt_8822c(struct dm_struct *dm, u8 *regulation, u8 *band, u8 *bandwidth, u8 *rate_section, u8 *rf_path, u8 *channel, u8 *power_limit) diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/phydm_regconfig8822c.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/phydm_regconfig8822c.h index 8dffa7be..68382515 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/phydm_regconfig8822c.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/phydm_regconfig8822c.h @@ -26,8 +26,8 @@ #define __INC_ODM_REGCONFIG_H_8822C #if (RTL8822C_SUPPORT) -/* 2019.06.14: add auto parse agc lower bound mechanism*/ -#define REG_CONFIG_VERSION_8822C "1.0" +/* 2019.12.18: Remove rf direct write protection mechanism*/ +#define REG_CONFIG_VERSION_8822C "1.5" #define RXBB_MAX_GAIN_8822C 0x14 @@ -47,6 +47,9 @@ void odm_config_bb_phy_reg_pg_8822c(struct dm_struct *dm, u32 band, u32 rf_path, void odm_config_bb_phy_8822c(struct dm_struct *dm, u32 addr, u32 bitmask, u32 data); +void odm_config_bb_txpwr_lmt_8822c_ex(struct dm_struct *dm, u8 regulation, + u8 band, u8 bandwidth, u8 rate_section, + u8 rf_path, u8 channel, s8 power_limit); void odm_config_bb_txpwr_lmt_8822c(struct dm_struct *dm, u8 *regulation, u8 *band, u8 *bandwidth, u8 *rate_section, diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/phydm_rtl8822c.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/phydm_rtl8822c.c index ab0475ac..abe86642 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/phydm_rtl8822c.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/phydm_rtl8822c.c @@ -28,18 +28,19 @@ #if (RTL8822C_SUPPORT) void phydm_dynamic_switch_htstf_agc_8822c(struct dm_struct *dm) { - u8 ndp_valid_cnt = 0; - u8 ndp_valid_cnt_diff = 0; + u16 ndp_valid_cnt = 0; + u16 ndp_valid_cnt_diff = 0; if (dm->bhtstfdisabled) return; /*set debug port to 0x51f*/ if (phydm_set_bb_dbg_port(dm, DBGPORT_PRI_1, 0x51f)) { - ndp_valid_cnt = (u8)(phydm_get_bb_dbg_port_val(dm) & 0xff); + ndp_valid_cnt = (u16)(phydm_get_bb_dbg_port_val(dm) & 0xff); phydm_release_bb_dbg_port(dm); ndp_valid_cnt_diff = DIFF_2(dm->ndp_cnt_pre, ndp_valid_cnt); + dm->ndp_cnt_pre = ndp_valid_cnt; if (ndp_valid_cnt_diff) dm->is_beamformed = true; @@ -50,14 +51,11 @@ void phydm_dynamic_switch_htstf_agc_8822c(struct dm_struct *dm) odm_set_bb_reg(dm, R_0x8a0, BIT(2), 0x1); dm->no_ndp_cnts = 0; } else { - dm->no_ndp_cnts++; - - if (dm->no_ndp_cnts == 3) { + if (dm->no_ndp_cnts == 3) odm_set_bb_reg(dm, R_0x8a0, BIT(2), 0x0); - dm->no_ndp_cnts = 0; - } + else if (dm->no_ndp_cnts < 3) + dm->no_ndp_cnts++; } - dm->ndp_cnt_pre = ndp_valid_cnt; } } diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/phydm_rtl8822c.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/phydm_rtl8822c.h index 697a61a7..b30b55b0 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/phydm_rtl8822c.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/phydm_rtl8822c.h @@ -26,8 +26,8 @@ #ifndef __ODM_RTL8822C_H__ #define __ODM_RTL8822C_H__ -/* 2019.05.02: replace bfee cap with ndp cnt*/ -#define HW_SETTING_VERSION_8822C "1.0" +/* 2019.08.20: modify code structure*/ +#define HW_SETTING_VERSION_8822C "1.1" enum phydm_bf_linked { PHYDM_IS_BF_LINKED = 1, diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/version_rtl8822c.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/version_rtl8822c.h index facf4a27..2b0c9128 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/version_rtl8822c.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/rtl8822c/version_rtl8822c.h @@ -28,6 +28,6 @@ Since 01/Aug/2015, the commit rules will be simplified. You do not need to fill up the version.h anymore, only the maintenance supervisor fills it before formal release. */ -#define RELEASE_DATE_8822C 20191227 +#define RELEASE_DATE_8822C 20210329 #define COMMIT_BY_8822C "BB_YR" -#define RELEASE_VERSION_8822C 47 +#define RELEASE_VERSION_8822C 62 diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/txbf/phydm_hal_txbf_api.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/txbf/phydm_hal_txbf_api.c index f38fc2b3..ba0205ab 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/txbf/phydm_hal_txbf_api.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/txbf/phydm_hal_txbf_api.c @@ -17,7 +17,7 @@ #include "phydm_precomp.h" #if (defined(CONFIG_BB_TXBF_API)) -#if (RTL8822B_SUPPORT == 1 || RTL8192F_SUPPORT == 1 ||\ +#if (RTL8822B_SUPPORT == 1 || RTL8192F_SUPPORT == 1 || RTL8812F_SUPPORT == 1 ||\ RTL8822C_SUPPORT == 1 || RTL8198F_SUPPORT == 1 || RTL8814B_SUPPORT == 1) /*@Add by YuChen for 8822B MU-MIMO API*/ @@ -55,7 +55,8 @@ u8 phydm_get_beamforming_sounding_info(void *dm_void, u16 *throughput, if ((tx_rate[idx] >= ODM_RATEVHTSS2MCS7 && tx_rate[idx] <= ODM_RATEVHTSS2MCS9)) snddecision = snddecision & ~(1 << idx); - } else if (dm->support_ic_type & (ODM_RTL8814B)) { + } else if (dm->support_ic_type & + (ODM_RTL8814B | ODM_RTL8814C)) { if ((tx_rate[idx] >= ODM_RATEVHTSS4MCS7 && tx_rate[idx] <= ODM_RATEVHTSS4MCS9)) snddecision = snddecision & ~(1 << idx); @@ -303,7 +304,7 @@ void phydm_txbf_rfmode(void *dm_void, u8 su_bfee_cnt, u8 mu_bfee_cnt) } #endif #if (RTL8814B_SUPPORT) - if (dm->support_ic_type == ODM_RTL8814B) { + if (dm->support_ic_type & (ODM_RTL8814B | ODM_RTL8814C)) { if (su_bfee_cnt > 0 || mu_bfee_cnt > 0) { for (i = RF_PATH_A; i <= RF_PATH_D; i++) { /*RF mode table write enable*/ @@ -342,16 +343,16 @@ void phydm_txbf_rfmode(void *dm_void, u8 su_bfee_cnt, u8 mu_bfee_cnt) /* logic mapping */ /* TX BF logic map and TX path en for Nsts = 1~4 */ - odm_set_bb_reg(dm, R_0x820, 0xffff0000, 0xffff); + //odm_set_bb_reg(dm, R_0x820, 0xffff0000, 0xffff); /*verification path-AC*/ - odm_set_bb_reg(dm, R_0x1e30, 0xffffffff, 0xe4e4e4e4); + //odm_set_bb_reg(dm, R_0x1e30, 0xffffffff, 0xe4e4e4e4); } else { /*@Disable BB TxBF ant mapping register*/ odm_set_bb_reg(dm, R_0x1e24, BIT(28) | BIT29, 0x0); odm_set_bb_reg(dm, R_0x1e24, BIT(31), 0); /*@1SS~4ss A, AB, ABC, ABCD*/ - odm_set_bb_reg(dm, R_0x820, 0xffff, 0xf731); - odm_set_bb_reg(dm, R_0x1e2c, 0xffffffff, 0xe4240400); + //odm_set_bb_reg(dm, R_0x820, 0xffff, 0xf731); + //odm_set_bb_reg(dm, R_0x1e2c, 0xffffffff, 0xe4240400); } } #endif @@ -578,13 +579,6 @@ void phydm_mu_rsoml_decision(void *dm_void) phydm_mu_rsoml_reset(dm); } -void phydm_txbf_avoid_hang(void *dm_void) -{ - struct dm_struct *dm = (struct dm_struct *)dm_void; - - /* avoid CCK CCA hang when the BF mode */ - odm_set_bb_reg(dm, R_0x1e6c, 0x100000, 0x1); -} #if (RTL8814B_SUPPORT == 1) void phydm_txbf_80p80_rfmode(void *dm_void, u8 su_bfee_cnt, u8 mu_bfee_cnt) @@ -672,6 +666,21 @@ void phydm_txbf_80p80_rfmode(void *dm_void, u8 su_bfee_cnt, u8 mu_bfee_cnt) #endif #endif /*PHYSTS_3RD_TYPE_IC*/ +void phydm_txbf_avoid_hang(void *dm_void) +{ + struct dm_struct *dm = (struct dm_struct *)dm_void; + + /* avoid CCK CCA hang when the BF mode */ +#ifdef PHYDM_IC_JGR3_SERIES_SUPPORT + odm_set_bb_reg(dm, R_0x1e6c, 0x100000, 0x1); +#endif + + /* avoid CCK CCA hang when the BFee mode for 92F */ +#if (RTL8192F_SUPPORT == 1) + odm_set_bb_reg(dm, R_0xa70, 0xffff0000, 0x80ff); +#endif +} + void phydm_bf_debug(void *dm_void, char input[][16], u32 *_used, char *output, u32 *_out_len) { @@ -690,8 +699,7 @@ void phydm_bf_debug(void *dm_void, char input[][16], u32 *_used, char *output, return; } for (i = 0; i < 3; i++) { - if (input[i + 1]) - PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &var1[i]); + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &var1[i]); } if (var1[0] == 0) { #if (DM_ODM_SUPPORT_TYPE & (ODM_WIN | ODM_CE)) diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/txbf/phydm_hal_txbf_api.h b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/txbf/phydm_hal_txbf_api.h index afbc929c..15659ccb 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/txbf/phydm_hal_txbf_api.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/txbf/phydm_hal_txbf_api.h @@ -44,8 +44,7 @@ u8 beamforming_get_vht_ndp_tx_rate(void *dm_void, u8 bfer_str_num); #endif #if (RTL8822B_SUPPORT == 1 || RTL8822C_SUPPORT == 1 || RTL8192F_SUPPORT == 1 ||\ - RTL8814B_SUPPORT == 1 || RTL8198F_SUPPORT == 1) - + RTL8814B_SUPPORT == 1 || RTL8198F_SUPPORT == 1 || RTL8812F_SUPPORT == 1) u8 phydm_get_beamforming_sounding_info(void *dm_void, u16 *throughput, u8 total_bfee_num, u8 *tx_rate); u8 phydm_get_ndpa_rate(void *dm_void); diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/hal8822c_fw.c b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/hal8822c_fw.c index b663eb24..94d20168 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/hal8822c_fw.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/hal8822c_fw.c @@ -22,13 +22,13 @@ #if (defined(CONFIG_AP_WOWLAN) || (DM_ODM_SUPPORT_TYPE & (ODM_AP))) u8 array_mp_8822c_fw_ap[] = { -0x22, 0x88, 0x00, 0x00, 0x09, 0x00, 0x07, 0x00, -0x0C, 0x68, 0xEA, 0x3F, 0x00, 0x00, 0x00, 0x00, -0x02, 0x0D, 0x0F, 0x0D, 0xE4, 0x07, 0x00, 0x00, +0x22, 0x88, 0x00, 0x00, 0x09, 0x00, 0x0D, 0x00, +0x0D, 0x9C, 0xA8, 0x60, 0x00, 0x00, 0x00, 0x00, +0x09, 0x18, 0x0E, 0x2A, 0xE5, 0x07, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, -0x00, 0x00, 0x20, 0x80, 0xB0, 0x2D, 0x00, 0x00, +0x00, 0x00, 0x20, 0x80, 0xD8, 0x2D, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x52, 0x00, 0x00, 0x90, 0x85, 0x01, 0x00, +0x20, 0x4E, 0x00, 0x00, 0xB0, 0x7F, 0x01, 0x00, 0x00, 0x00, 0x10, 0x80, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, @@ -519,7 +519,7 @@ u8 array_mp_8822c_fw_ap[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x49, 0x1B, 0x03, 0x80, 0xFD, 0xFF, 0xFF, 0xFF, +0x85, 0x17, 0x03, 0x80, 0xFD, 0xFF, 0xFF, 0xFF, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -528,7 +528,7 @@ u8 array_mp_8822c_fw_ap[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x89, 0x1A, 0x03, 0x80, +0x00, 0x00, 0x00, 0x00, 0xC5, 0x16, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -538,7 +538,7 @@ u8 array_mp_8822c_fw_ap[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x45, 0x1A, 0x03, 0x80, 0x01, 0x00, 0x00, 0x00, +0x81, 0x16, 0x03, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -547,8 +547,8 @@ u8 array_mp_8822c_fw_ap[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xB4, 0x2D, 0x20, 0x80, -0xBC, 0x2D, 0x20, 0x80, 0x65, 0x1D, 0x03, 0x80, +0x00, 0x00, 0x00, 0x00, 0xDC, 0x2D, 0x20, 0x80, +0xE4, 0x2D, 0x20, 0x80, 0xA1, 0x19, 0x03, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -558,7 +558,7 @@ u8 array_mp_8822c_fw_ap[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0xCC, 0x2D, 0x20, 0x80, 0xC4, 0x2D, 0x20, 0x80, +0xF4, 0x2D, 0x20, 0x80, 0xEC, 0x2D, 0x20, 0x80, 0x41, 0x4E, 0x59, 0x00, 0x61, 0x6E, 0x79, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x05, 0x00, 0x00, 0x50, 0x05, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, @@ -583,31 +583,31 @@ u8 array_mp_8822c_fw_ap[] = { 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x63, 0x18, 0x03, 0x80, -0x5D, 0x18, 0x03, 0x80, 0x69, 0x18, 0x03, 0x80, -0x6F, 0x18, 0x03, 0x80, 0x75, 0x18, 0x03, 0x80, -0x7B, 0x18, 0x03, 0x80, 0x09, 0x12, 0x1B, 0x24, +0x00, 0x00, 0x00, 0x00, 0x9F, 0x14, 0x03, 0x80, +0x99, 0x14, 0x03, 0x80, 0xA5, 0x14, 0x03, 0x80, +0xAB, 0x14, 0x03, 0x80, 0xB1, 0x14, 0x03, 0x80, +0xB7, 0x14, 0x03, 0x80, 0x09, 0x12, 0x1B, 0x24, 0x94, 0x0C, 0x94, 0x0E, 0x94, 0x18, 0x94, 0x1A, -0xF5, 0x14, 0x11, 0x80, 0x43, 0x15, 0x11, 0x80, -0xFD, 0x14, 0x11, 0x80, 0x35, 0x15, 0x11, 0x80, -0x43, 0x15, 0x11, 0x80, 0x43, 0x15, 0x11, 0x80, -0x05, 0x15, 0x11, 0x80, 0x0D, 0x15, 0x11, 0x80, -0x15, 0x15, 0x11, 0x80, 0x1D, 0x15, 0x11, 0x80, -0x43, 0x15, 0x11, 0x80, 0x2D, 0x15, 0x11, 0x80, -0x43, 0x15, 0x11, 0x80, 0x43, 0x15, 0x11, 0x80, -0x25, 0x15, 0x11, 0x80, 0x43, 0x15, 0x11, 0x80, -0x43, 0x15, 0x11, 0x80, 0x43, 0x15, 0x11, 0x80, -0x3D, 0x15, 0x11, 0x80, 0x04, 0x08, 0x08, 0x08, +0x31, 0x15, 0x11, 0x80, 0x7F, 0x15, 0x11, 0x80, +0x39, 0x15, 0x11, 0x80, 0x71, 0x15, 0x11, 0x80, +0x7F, 0x15, 0x11, 0x80, 0x7F, 0x15, 0x11, 0x80, +0x41, 0x15, 0x11, 0x80, 0x49, 0x15, 0x11, 0x80, +0x51, 0x15, 0x11, 0x80, 0x59, 0x15, 0x11, 0x80, +0x7F, 0x15, 0x11, 0x80, 0x69, 0x15, 0x11, 0x80, +0x7F, 0x15, 0x11, 0x80, 0x7F, 0x15, 0x11, 0x80, +0x61, 0x15, 0x11, 0x80, 0x7F, 0x15, 0x11, 0x80, +0x7F, 0x15, 0x11, 0x80, 0x7F, 0x15, 0x11, 0x80, +0x79, 0x15, 0x11, 0x80, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0A, 0x0A, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0C, 0x14, 0x1C, 0x24, 0x2C, 0x36, -0x40, 0x00, 0x00, 0x00, 0x57, 0x31, 0x11, 0x80, -0x6F, 0x31, 0x11, 0x80, 0x57, 0x31, 0x11, 0x80, -0x6F, 0x31, 0x11, 0x80, 0x57, 0x31, 0x11, 0x80, -0x6F, 0x31, 0x11, 0x80, 0x7B, 0x31, 0x11, 0x80, -0x7B, 0x31, 0x11, 0x80, 0x7B, 0x31, 0x11, 0x80, -0x57, 0x31, 0x11, 0x80, 0x6F, 0x31, 0x11, 0x80, -0x6F, 0x31, 0x11, 0x80, 0x57, 0x31, 0x11, 0x80, -0x81, 0x31, 0x11, 0x80, 0x81, 0x31, 0x11, 0x80, +0x40, 0x00, 0x00, 0x00, 0x97, 0x31, 0x11, 0x80, +0xAF, 0x31, 0x11, 0x80, 0x97, 0x31, 0x11, 0x80, +0xAF, 0x31, 0x11, 0x80, 0x97, 0x31, 0x11, 0x80, +0xAF, 0x31, 0x11, 0x80, 0xBB, 0x31, 0x11, 0x80, +0xBB, 0x31, 0x11, 0x80, 0xBB, 0x31, 0x11, 0x80, +0x97, 0x31, 0x11, 0x80, 0xAF, 0x31, 0x11, 0x80, +0xAF, 0x31, 0x11, 0x80, 0x97, 0x31, 0x11, 0x80, +0xC1, 0x31, 0x11, 0x80, 0xC1, 0x31, 0x11, 0x80, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x00, 0x00, 0x12, 0x12, 0x14, 0x12, 0x0F, 0x0F, 0x0C, 0x0C, 0x09, 0x08, 0x08, 0x07, @@ -632,16 +632,16 @@ u8 array_mp_8822c_fw_ap[] = { 0x0A, 0x08, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x4A, 0x40, 0x36, 0x2C, 0x24, 0x1C, 0x14, 0x0C, 0x04, 0x00, 0x00, 0x00, -0x39, 0x41, 0x10, 0x80, 0x0D, 0x42, 0x10, 0x80, -0x49, 0x41, 0x10, 0x80, 0x7F, 0x41, 0x10, 0x80, -0xBB, 0x41, 0x10, 0x80, 0x0D, 0x42, 0x10, 0x80, -0x57, 0x42, 0x10, 0x80, 0x6F, 0x42, 0x10, 0x80, -0x7B, 0x42, 0x10, 0x80, 0xAD, 0x42, 0x10, 0x80, -0xDF, 0x42, 0x10, 0x80, 0xEF, 0x42, 0x10, 0x80, -0x09, 0x12, 0x1B, 0x24, 0x47, 0x64, 0x11, 0x80, -0xCB, 0x65, 0x11, 0x80, 0xAD, 0x66, 0x11, 0x80, -0x13, 0x67, 0x11, 0x80, 0x13, 0x67, 0x11, 0x80, -0x47, 0x64, 0x11, 0x80, 0x47, 0x64, 0x11, 0x80, +0x49, 0x4D, 0x10, 0x80, 0x1D, 0x4E, 0x10, 0x80, +0x59, 0x4D, 0x10, 0x80, 0x8F, 0x4D, 0x10, 0x80, +0xCB, 0x4D, 0x10, 0x80, 0x1D, 0x4E, 0x10, 0x80, +0x67, 0x4E, 0x10, 0x80, 0x7F, 0x4E, 0x10, 0x80, +0x8B, 0x4E, 0x10, 0x80, 0xBD, 0x4E, 0x10, 0x80, +0xEF, 0x4E, 0x10, 0x80, 0xFF, 0x4E, 0x10, 0x80, +0x09, 0x12, 0x1B, 0x24, 0x5F, 0x5E, 0x11, 0x80, +0xE3, 0x5F, 0x11, 0x80, 0xC5, 0x60, 0x11, 0x80, +0x2B, 0x61, 0x11, 0x80, 0x2B, 0x61, 0x11, 0x80, +0x5F, 0x5E, 0x11, 0x80, 0x5F, 0x5E, 0x11, 0x80, 0x63, 0x6F, 0x6E, 0x66, 0x69, 0x67, 0x5F, 0x70, 0x68, 0x79, 0x64, 0x6D, 0x5F, 0x70, 0x61, 0x72, 0x61, 0x6D, 0x65, 0x74, 0x65, 0x72, 0x5F, 0x69, @@ -692,48 +692,53 @@ u8 array_mp_8822c_fw_ap[] = { 0x6B, 0x5F, 0x70, 0x6B, 0x67, 0x5F, 0x73, 0x65, 0x74, 0x5F, 0x76, 0x61, 0x6C, 0x69, 0x64, 0x5F, 0x38, 0x38, 0x32, 0x32, 0x63, 0x00, 0x00, 0x00, -0x61, 0x7B, 0x11, 0x80, 0x83, 0x7B, 0x11, 0x80, -0xA5, 0x7B, 0x11, 0x80, 0xC7, 0x7B, 0x11, 0x80, -0xEB, 0x7B, 0x11, 0x80, 0x25, 0x7C, 0x11, 0x80, -0x49, 0x7C, 0x11, 0x80, 0x6D, 0x7C, 0x11, 0x80, -0x91, 0x7C, 0x11, 0x80, 0xB7, 0x7C, 0x11, 0x80, +0x85, 0x75, 0x11, 0x80, 0xA7, 0x75, 0x11, 0x80, +0xC9, 0x75, 0x11, 0x80, 0xEB, 0x75, 0x11, 0x80, +0x0F, 0x76, 0x11, 0x80, 0x49, 0x76, 0x11, 0x80, +0x6D, 0x76, 0x11, 0x80, 0x91, 0x76, 0x11, 0x80, +0xB5, 0x76, 0x11, 0x80, 0xDB, 0x76, 0x11, 0x80, 0x01, 0x01, 0x04, 0x10, 0x40, 0x00, 0x00, 0x00, 0xE0, 0x04, 0xE3, 0x04, 0xE3, 0x04, 0xE3, 0x04, -0xE3, 0x04, 0x00, 0x00, 0x27, 0x33, 0x03, 0x80, -0x37, 0x33, 0x03, 0x80, 0x41, 0x33, 0x03, 0x80, -0x4B, 0x33, 0x03, 0x80, 0x5D, 0x33, 0x03, 0x80, -0xDD, 0x3D, 0x03, 0x80, 0xD9, 0x3D, 0x03, 0x80, -0xDD, 0x3D, 0x03, 0x80, 0xD9, 0x3D, 0x03, 0x80, -0xFD, 0x3D, 0x03, 0x80, 0xD9, 0x3D, 0x03, 0x80, -0xFD, 0x3D, 0x03, 0x80, 0xD9, 0x3D, 0x03, 0x80, -0x1D, 0x3E, 0x03, 0x80, 0xD9, 0x3D, 0x03, 0x80, -0x1D, 0x3E, 0x03, 0x80, 0xD9, 0x3D, 0x03, 0x80, -0x3D, 0x3E, 0x03, 0x80, 0xD9, 0x3D, 0x03, 0x80, -0x3D, 0x3E, 0x03, 0x80, 0x45, 0x3F, 0x03, 0x80, -0x45, 0x3F, 0x03, 0x80, 0x45, 0x3F, 0x03, 0x80, -0x45, 0x3F, 0x03, 0x80, 0x65, 0x3F, 0x03, 0x80, -0x65, 0x3F, 0x03, 0x80, 0x65, 0x3F, 0x03, 0x80, -0x65, 0x3F, 0x03, 0x80, 0x85, 0x3F, 0x03, 0x80, -0x85, 0x3F, 0x03, 0x80, 0x85, 0x3F, 0x03, 0x80, -0x85, 0x3F, 0x03, 0x80, 0xA5, 0x3F, 0x03, 0x80, -0xA5, 0x3F, 0x03, 0x80, 0xA5, 0x3F, 0x03, 0x80, -0xA5, 0x3F, 0x03, 0x80, 0x27, 0x48, 0x03, 0x80, -0x87, 0x48, 0x03, 0x80, 0x1B, 0x49, 0x03, 0x80, -0xB9, 0x49, 0x03, 0x80, 0x5D, 0x4A, 0x03, 0x80, +0xE3, 0x04, 0x00, 0x00, 0x47, 0x2F, 0x03, 0x80, +0x57, 0x2F, 0x03, 0x80, 0x61, 0x2F, 0x03, 0x80, +0x6B, 0x2F, 0x03, 0x80, 0x7D, 0x2F, 0x03, 0x80, +0xFD, 0x39, 0x03, 0x80, 0xF9, 0x39, 0x03, 0x80, +0xFD, 0x39, 0x03, 0x80, 0xF9, 0x39, 0x03, 0x80, +0x1D, 0x3A, 0x03, 0x80, 0xF9, 0x39, 0x03, 0x80, +0x1D, 0x3A, 0x03, 0x80, 0xF9, 0x39, 0x03, 0x80, +0x3D, 0x3A, 0x03, 0x80, 0xF9, 0x39, 0x03, 0x80, +0x3D, 0x3A, 0x03, 0x80, 0xF9, 0x39, 0x03, 0x80, +0x5D, 0x3A, 0x03, 0x80, 0xF9, 0x39, 0x03, 0x80, +0x5D, 0x3A, 0x03, 0x80, 0x65, 0x3B, 0x03, 0x80, +0x65, 0x3B, 0x03, 0x80, 0x65, 0x3B, 0x03, 0x80, +0x65, 0x3B, 0x03, 0x80, 0x85, 0x3B, 0x03, 0x80, +0x85, 0x3B, 0x03, 0x80, 0x85, 0x3B, 0x03, 0x80, +0x85, 0x3B, 0x03, 0x80, 0xA5, 0x3B, 0x03, 0x80, +0xA5, 0x3B, 0x03, 0x80, 0xA5, 0x3B, 0x03, 0x80, +0xA5, 0x3B, 0x03, 0x80, 0xC5, 0x3B, 0x03, 0x80, +0xC5, 0x3B, 0x03, 0x80, 0xC5, 0x3B, 0x03, 0x80, +0xC5, 0x3B, 0x03, 0x80, 0x47, 0x44, 0x03, 0x80, +0xA7, 0x44, 0x03, 0x80, 0x3B, 0x45, 0x03, 0x80, +0xD9, 0x45, 0x03, 0x80, 0x7D, 0x46, 0x03, 0x80, 0xFC, 0x10, 0x60, 0xB8, 0xFA, 0xFA, 0xFA, 0xFA, -0x8C, 0x04, 0x64, 0xB8, 0x90, 0x04, 0x64, 0xB8, -0x94, 0x04, 0x64, 0xB8, 0x98, 0x04, 0x64, 0xB8, -0x9C, 0x04, 0x64, 0xB8, 0xA0, 0x04, 0x64, 0xB8, -0x77, 0x05, 0x64, 0xB8, 0x6C, 0x05, 0x64, 0xB8, -0x68, 0x05, 0x64, 0xB8, 0x54, 0x05, 0x64, 0xB8, -0xFF, 0xFF, 0xFF, 0x8F, 0x00, 0x00, 0x60, 0xB8, -0x00, 0x00, 0x64, 0xB8, 0x31, 0x00, 0x78, 0xB8, -0x1D, 0x04, 0x64, 0xB8, 0x22, 0x05, 0x64, 0xB8, -0x4D, 0x01, 0x64, 0xB8, 0x00, 0x01, 0x64, 0xB8, -0x04, 0x02, 0x64, 0xB8, 0x24, 0x04, 0x64, 0xB8, -0x56, 0x04, 0x64, 0xB8, 0x1C, 0x04, 0x64, 0xB8, -0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x40, -0x00, 0x00, 0x01, 0x00, 0x7A, 0x04, 0x64, 0xB8, +0xCF, 0x01, 0x64, 0xB8, 0x8C, 0x04, 0x64, 0xB8, +0x90, 0x04, 0x64, 0xB8, 0x94, 0x04, 0x64, 0xB8, +0x98, 0x04, 0x64, 0xB8, 0x9C, 0x04, 0x64, 0xB8, +0xA0, 0x04, 0x64, 0xB8, 0x77, 0x05, 0x64, 0xB8, +0x6C, 0x05, 0x64, 0xB8, 0x68, 0x05, 0x64, 0xB8, +0x54, 0x05, 0x64, 0xB8, 0xFF, 0xFF, 0xFF, 0x8F, +0x00, 0x00, 0x60, 0xB8, 0x00, 0x00, 0x64, 0xB8, +0x31, 0x00, 0x78, 0xB8, 0x1D, 0x04, 0x64, 0xB8, +0x22, 0x05, 0x64, 0xB8, 0x38, 0x00, 0x60, 0xB8, +0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x09, 0x00, +0xF4, 0x00, 0x60, 0xB8, 0xFF, 0xFF, 0xFC, 0xFF, +0x00, 0x00, 0x01, 0x00, 0xC0, 0x00, 0x60, 0xB8, +0xBC, 0x01, 0x64, 0xB8, 0x01, 0x00, 0x00, 0x80, +0x00, 0x00, 0x00, 0x80, 0x4D, 0x01, 0x64, 0xB8, +0x00, 0x01, 0x64, 0xB8, 0x04, 0x02, 0x64, 0xB8, +0x24, 0x04, 0x64, 0xB8, 0x56, 0x04, 0x64, 0xB8, +0x1C, 0x04, 0x64, 0xB8, 0x00, 0x00, 0x00, 0x10, +0x00, 0x00, 0x00, 0x40, 0x7A, 0x04, 0x64, 0xB8, 0x04, 0x00, 0x70, 0xB8, 0x0A, 0x00, 0x70, 0xB8, 0x34, 0x00, 0x78, 0xB8, 0x18, 0x11, 0x64, 0xB8, 0x55, 0x00, 0x78, 0xB8, 0x56, 0x00, 0x78, 0xB8, @@ -757,107 +762,108 @@ u8 array_mp_8822c_fw_ap[] = { 0x00, 0x00, 0x00, 0x01, 0xE1, 0x00, 0x60, 0xB8, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x20, 0xCC, 0x00, 0x60, 0xB8, 0x02, 0x00, 0x60, 0xB8, -0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x04, -0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xDF, -0xFF, 0xFF, 0xFF, 0x1F, 0x04, 0x00, 0x60, 0xB8, -0x04, 0x00, 0x64, 0xB8, 0x08, 0x00, 0x60, 0xB8, -0x08, 0x00, 0x64, 0xB8, 0xE8, 0x12, 0x64, 0xB8, -0x24, 0x00, 0x60, 0xB8, 0x80, 0x00, 0x60, 0xB8, -0x8C, 0x00, 0x60, 0xB8, 0xFF, 0xFF, 0xFF, 0xEF, -0xB0, 0x02, 0x64, 0xB8, 0x00, 0x0C, 0x01, 0x00, -0x08, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x0F, 0x00, -0x00, 0x00, 0x1F, 0x00, 0x01, 0x00, 0x00, 0xE0, -0x00, 0x00, 0xFF, 0x0F, 0x21, 0x00, 0x00, 0xE0, -0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xF0, 0x0F, -0x00, 0x00, 0x00, 0x0F, 0x62, 0x06, 0x64, 0xB8, -0xB4, 0x06, 0x64, 0xB8, 0x06, 0x00, 0x00, 0x89, -0x00, 0x0A, 0x08, 0x00, 0x01, 0x00, 0x66, 0xB8, -0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x66, 0xB8, -0x00, 0xFF, 0xFF, 0x00, 0xCD, 0x9B, 0x78, 0x56, -0x04, 0x1C, 0x66, 0xB8, 0x08, 0x1C, 0x66, 0xB8, -0xFF, 0xFF, 0xFF, 0x3F, 0x1F, 0x00, 0x60, 0xB8, -0x05, 0xEA, 0xEF, 0xFD, 0x06, 0xEA, 0xEF, 0xFD, -0x00, 0x1C, 0x66, 0xB8, 0xFF, 0xFF, 0x3F, 0x00, -0x04, 0xEA, 0xEF, 0xFD, 0x07, 0xEA, 0xEF, 0xFD, -0x08, 0xEA, 0xEF, 0xFD, 0x09, 0xEA, 0xEF, 0xFD, -0x0A, 0xEA, 0xEF, 0xFD, 0x00, 0x10, 0x66, 0xB8, -0x23, 0x04, 0x64, 0xB8, 0x30, 0x04, 0x64, 0xB8, -0x34, 0x04, 0x64, 0xB8, 0x04, 0x05, 0x07, 0x08, -0x00, 0x01, 0x01, 0x02, 0x2D, 0x04, 0x64, 0xB8, -0x06, 0x00, 0x66, 0xB8, 0x52, 0x04, 0x64, 0xB8, -0x53, 0x04, 0x64, 0xB8, 0x50, 0x04, 0x64, 0xB8, -0x51, 0x04, 0x64, 0xB8, 0x01, 0x1C, 0x66, 0xB8, -0x02, 0x1C, 0x66, 0xB8, 0x03, 0x1C, 0x66, 0xB8, -0x05, 0x1C, 0x66, 0xB8, 0x06, 0x1C, 0x66, 0xB8, -0x07, 0x1C, 0x66, 0xB8, 0x00, 0x00, 0x78, 0xB8, -0x44, 0x00, 0x78, 0xB8, 0x01, 0x00, 0x00, 0xC0, -0x01, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x08, -0x01, 0x00, 0x0F, 0x70, 0x01, 0x00, 0x1F, 0x70, -0x01, 0x00, 0x2F, 0x70, 0x01, 0x00, 0x3F, 0x70, -0x01, 0x00, 0x4F, 0x70, 0x01, 0x00, 0x5F, 0x70, -0x01, 0x00, 0x6F, 0x70, 0x01, 0x00, 0x7F, 0x70, -0x01, 0x00, 0x8F, 0x70, 0x01, 0x00, 0x9F, 0x70, -0x01, 0x00, 0xAF, 0x70, 0x01, 0x00, 0xBF, 0x70, -0x01, 0x00, 0xCF, 0x70, 0x01, 0x00, 0xDF, 0x70, -0x01, 0x00, 0xEF, 0x70, 0x01, 0x00, 0xFF, 0x70, -0x5E, 0x00, 0xD5, 0xF7, 0x41, 0x80, 0x0B, 0x70, -0x40, 0x00, 0x1F, 0x70, 0x40, 0x00, 0x2F, 0x70, -0x40, 0x00, 0x3F, 0x70, 0x40, 0x00, 0x4F, 0x70, -0x41, 0x80, 0x5B, 0x70, 0x40, 0x00, 0x6F, 0x70, -0x41, 0x40, 0x14, 0x70, 0x41, 0x40, 0x24, 0x70, -0x41, 0x40, 0x34, 0x70, 0x41, 0x40, 0x44, 0x70, -0x41, 0x40, 0x64, 0x70, 0x41, 0x80, 0x7B, 0x70, -0x41, 0x80, 0x8B, 0x70, 0x41, 0x80, 0x9B, 0x70, -0x41, 0x80, 0xAB, 0x70, 0x41, 0x80, 0xBB, 0x70, -0x41, 0x80, 0xCB, 0x70, 0x41, 0x80, 0xDB, 0x70, -0x41, 0x80, 0xEB, 0x70, 0x41, 0x80, 0xFB, 0x70, -0x00, 0x00, 0x10, 0x00, 0x50, 0x50, 0x50, 0x50, -0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x03, 0x00, -0xEF, 0x00, 0x60, 0xB8, 0x03, 0x00, 0x00, 0xC0, -0x03, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xFF, -0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x0F, 0xC0, -0x00, 0x00, 0x20, 0x00, 0x08, 0x18, 0x07, 0x00, -0x08, 0x0C, 0x07, 0x00, 0x00, 0x00, 0x0F, 0x00, -0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, -0xFF, 0x60, 0x0F, 0x00, 0x3F, 0xD8, 0x0F, 0x00, -0xFF, 0x60, 0x07, 0x00, 0x3F, 0xD8, 0x0D, 0x00, -0xFF, 0xDE, 0x07, 0x00, 0xBF, 0xF7, 0x0D, 0x00, -0x00, 0x00, 0x00, 0x06, 0x00, 0xC0, 0x0F, 0x00, -0x12, 0x33, 0x03, 0x00, 0x11, 0x33, 0x03, 0x00, -0x12, 0x11, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, -0x31, 0xC9, 0x62, 0x49, 0x55, 0x24, 0x01, 0xFF, -0xC8, 0xFE, 0x18, 0x3E, 0xDE, 0xF0, 0xFA, 0x00, -0x44, 0x23, 0x12, 0x00, 0xFF, 0xFF, 0xFF, 0x0F, -0x00, 0xF0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x78, -0x00, 0x00, 0xF0, 0x00, 0x3F, 0xFF, 0xFE, 0xDF, -0x00, 0xFF, 0x0F, 0x00, 0x01, 0x80, 0x03, 0x70, -0x01, 0x80, 0x53, 0x70, 0x01, 0x80, 0x73, 0x70, -0x01, 0x80, 0x83, 0x70, 0x01, 0x80, 0x93, 0x70, -0x01, 0x80, 0xA3, 0x70, 0x01, 0x80, 0xB3, 0x70, -0x01, 0x80, 0xC3, 0x70, 0x01, 0x80, 0xD3, 0x70, -0x01, 0x80, 0xE3, 0x70, 0x01, 0x80, 0xF3, 0x70, -0x01, 0x80, 0x0B, 0x70, 0x01, 0x80, 0x5B, 0x70, -0x01, 0x80, 0x7B, 0x70, 0x01, 0x80, 0x8B, 0x70, -0x01, 0x80, 0x9B, 0x70, 0x01, 0x80, 0xAB, 0x70, -0x01, 0x80, 0xBB, 0x70, 0x01, 0x80, 0xCB, 0x70, -0x01, 0x80, 0xDB, 0x70, 0x01, 0x80, 0xEB, 0x70, -0x01, 0x80, 0xFB, 0x70, 0x00, 0x00, 0x00, 0xF0, -0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x60, 0x00, -0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7F, -0x00, 0x00, 0x7F, 0x00, 0x00, 0xFC, 0x01, 0x00, -0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x40, 0x00, -0x00, 0xFC, 0xF8, 0xFF, 0x00, 0x01, 0x01, 0x00, -0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x3F, -0x96, 0x02, 0x64, 0xB8, 0x00, 0x00, 0x70, 0xB8, -0x18, 0x00, 0x70, 0xB8, 0x0B, 0x00, 0x70, 0xB8, -0x02, 0x00, 0x70, 0xB8, 0x94, 0x02, 0x64, 0xB8, -0x97, 0x02, 0x64, 0xB8, 0x84, 0x02, 0x64, 0xB8, -0x54, 0x02, 0x64, 0xB8, 0x50, 0x02, 0x64, 0xB8, -0x4C, 0x02, 0x64, 0xB8, 0x04, 0x00, 0x78, 0xB8, -0x48, 0x02, 0x64, 0xB8, 0x44, 0x02, 0x64, 0xB8, -0xCC, 0x01, 0x64, 0xB8, 0x74, 0x00, 0x18, 0x2E, -0x74, 0x00, 0x19, 0x2E, 0x01, 0x00, 0x60, 0xB8, -0x01, 0x00, 0x64, 0xB8, 0xCF, 0x01, 0x64, 0xB8, +0x00, 0x00, 0x00, 0x04, 0xFF, 0xFF, 0xFF, 0xFB, +0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0x1F, +0x04, 0x00, 0x60, 0xB8, 0x04, 0x00, 0x64, 0xB8, +0x08, 0x00, 0x60, 0xB8, 0x08, 0x00, 0x64, 0xB8, +0xE8, 0x12, 0x64, 0xB8, 0x24, 0x00, 0x60, 0xB8, +0x80, 0x00, 0x60, 0xB8, 0x8C, 0x00, 0x60, 0xB8, +0xFF, 0xFF, 0xFF, 0xEF, 0xB0, 0x02, 0x64, 0xB8, +0x00, 0x0C, 0x01, 0x00, 0x08, 0x00, 0x00, 0xF8, +0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x1F, 0x00, +0x01, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xFF, 0x0F, +0x21, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0xC0, +0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x0F, +0x62, 0x06, 0x64, 0xB8, 0xB4, 0x06, 0x64, 0xB8, +0x06, 0x00, 0x00, 0x89, 0x00, 0x0A, 0x08, 0x00, +0x01, 0x00, 0x66, 0xB8, 0x00, 0x00, 0x02, 0x00, +0x00, 0x00, 0x66, 0xB8, 0x00, 0xFF, 0xFF, 0x00, +0xCD, 0x9B, 0x78, 0x56, 0x04, 0x1C, 0x66, 0xB8, +0x08, 0x1C, 0x66, 0xB8, 0xFF, 0xFF, 0xFF, 0x3F, +0x1F, 0x00, 0x60, 0xB8, 0x05, 0xEA, 0xEF, 0xFD, +0x06, 0xEA, 0xEF, 0xFD, 0x00, 0x1C, 0x66, 0xB8, +0xFF, 0xFF, 0x3F, 0x00, 0x04, 0xEA, 0xEF, 0xFD, +0x07, 0xEA, 0xEF, 0xFD, 0x08, 0xEA, 0xEF, 0xFD, +0x09, 0xEA, 0xEF, 0xFD, 0x0A, 0xEA, 0xEF, 0xFD, +0x00, 0x10, 0x66, 0xB8, 0x23, 0x04, 0x64, 0xB8, +0x30, 0x04, 0x64, 0xB8, 0x34, 0x04, 0x64, 0xB8, +0x04, 0x05, 0x07, 0x08, 0x00, 0x01, 0x01, 0x02, +0x2D, 0x04, 0x64, 0xB8, 0x06, 0x00, 0x66, 0xB8, +0x52, 0x04, 0x64, 0xB8, 0x53, 0x04, 0x64, 0xB8, +0x50, 0x04, 0x64, 0xB8, 0x51, 0x04, 0x64, 0xB8, +0x01, 0x1C, 0x66, 0xB8, 0x02, 0x1C, 0x66, 0xB8, +0x03, 0x1C, 0x66, 0xB8, 0x05, 0x1C, 0x66, 0xB8, +0x06, 0x1C, 0x66, 0xB8, 0x07, 0x1C, 0x66, 0xB8, +0x00, 0x00, 0x78, 0xB8, 0x44, 0x00, 0x78, 0xB8, +0x01, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x60, +0x52, 0x29, 0x46, 0xE2, 0x03, 0x29, 0x29, 0x00, +0x32, 0xFC, 0x18, 0xA2, 0x08, 0x00, 0x04, 0x05, +0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x0F, 0x70, +0x01, 0x00, 0x1F, 0x70, 0x01, 0x00, 0x2F, 0x70, +0x01, 0x00, 0x3F, 0x70, 0x01, 0x00, 0x4F, 0x70, +0x01, 0x00, 0x5F, 0x70, 0x01, 0x00, 0x6F, 0x70, +0x01, 0x00, 0x7F, 0x70, 0x01, 0x00, 0x8F, 0x70, +0x01, 0x00, 0x9F, 0x70, 0x01, 0x00, 0xAF, 0x70, +0x01, 0x00, 0xBF, 0x70, 0x01, 0x00, 0xCF, 0x70, +0x01, 0x00, 0xDF, 0x70, 0x01, 0x00, 0xEF, 0x70, +0x01, 0x00, 0xFF, 0x70, 0x5E, 0x00, 0xD5, 0xF7, +0x41, 0x80, 0x0B, 0x70, 0x40, 0x00, 0x1F, 0x70, +0x40, 0x00, 0x2F, 0x70, 0x40, 0x00, 0x3F, 0x70, +0x40, 0x00, 0x4F, 0x70, 0x41, 0x80, 0x5B, 0x70, +0x40, 0x00, 0x6F, 0x70, 0x41, 0x40, 0x14, 0x70, +0x41, 0x40, 0x24, 0x70, 0x41, 0x40, 0x34, 0x70, +0x41, 0x40, 0x44, 0x70, 0x41, 0x40, 0x64, 0x70, +0x41, 0x80, 0x7B, 0x70, 0x41, 0x80, 0x8B, 0x70, +0x41, 0x80, 0x9B, 0x70, 0x41, 0x80, 0xAB, 0x70, +0x41, 0x80, 0xBB, 0x70, 0x41, 0x80, 0xCB, 0x70, +0x41, 0x80, 0xDB, 0x70, 0x41, 0x80, 0xEB, 0x70, +0x41, 0x80, 0xFB, 0x70, 0x00, 0x00, 0x10, 0x00, +0x50, 0x50, 0x50, 0x50, 0x00, 0x00, 0x00, 0x70, +0x00, 0x00, 0x03, 0x00, 0xEF, 0x00, 0x60, 0xB8, +0x03, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x60, +0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x0F, 0x80, +0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x20, 0x00, +0x08, 0x18, 0x07, 0x00, 0x08, 0x0C, 0x07, 0x00, +0x00, 0x00, 0x0F, 0x00, 0x08, 0x00, 0x04, 0x00, +0x00, 0x00, 0x08, 0x00, 0xFF, 0x60, 0x0F, 0x00, +0x3F, 0xD8, 0x0F, 0x00, 0xFF, 0x60, 0x07, 0x00, +0x3F, 0xD8, 0x0D, 0x00, 0xFF, 0xDE, 0x07, 0x00, +0xBF, 0xF7, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x06, +0x00, 0xC0, 0x0F, 0x00, 0x12, 0x33, 0x03, 0x00, +0x11, 0x33, 0x03, 0x00, 0x12, 0x11, 0x01, 0x00, +0x00, 0x00, 0xFF, 0xFF, 0x31, 0xC9, 0x62, 0x49, +0x55, 0x24, 0x01, 0xFF, 0xC8, 0xFE, 0x18, 0x3E, +0xDE, 0xF0, 0xFA, 0x00, 0x44, 0x23, 0x12, 0x00, +0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0xF0, 0x1F, 0x00, +0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0xF0, 0x00, +0x3F, 0xFF, 0xFE, 0xDF, 0x00, 0xFF, 0x0F, 0x00, +0x01, 0x80, 0x03, 0x70, 0x01, 0x80, 0x53, 0x70, +0x01, 0x80, 0x73, 0x70, 0x01, 0x80, 0x83, 0x70, +0x01, 0x80, 0x93, 0x70, 0x01, 0x80, 0xA3, 0x70, +0x01, 0x80, 0xB3, 0x70, 0x01, 0x80, 0xC3, 0x70, +0x01, 0x80, 0xD3, 0x70, 0x01, 0x80, 0xE3, 0x70, +0x01, 0x80, 0xF3, 0x70, 0x01, 0x80, 0x0B, 0x70, +0x01, 0x80, 0x5B, 0x70, 0x01, 0x80, 0x7B, 0x70, +0x01, 0x80, 0x8B, 0x70, 0x01, 0x80, 0x9B, 0x70, +0x01, 0x80, 0xAB, 0x70, 0x01, 0x80, 0xBB, 0x70, +0x01, 0x80, 0xCB, 0x70, 0x01, 0x80, 0xDB, 0x70, +0x01, 0x80, 0xEB, 0x70, 0x01, 0x80, 0xFB, 0x70, +0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x06, 0x00, +0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x80, 0x00, +0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0x00, +0x00, 0xFC, 0x01, 0x00, 0x00, 0x00, 0x70, 0x00, +0x00, 0x00, 0x40, 0x00, 0x00, 0xFC, 0xF8, 0xFF, +0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, +0x00, 0x00, 0x00, 0x3F, 0x96, 0x02, 0x64, 0xB8, +0x00, 0x00, 0x70, 0xB8, 0x18, 0x00, 0x70, 0xB8, +0x0B, 0x00, 0x70, 0xB8, 0x02, 0x00, 0x70, 0xB8, +0x94, 0x02, 0x64, 0xB8, 0x97, 0x02, 0x64, 0xB8, +0x84, 0x02, 0x64, 0xB8, 0x54, 0x02, 0x64, 0xB8, +0x50, 0x02, 0x64, 0xB8, 0x4C, 0x02, 0x64, 0xB8, +0x04, 0x00, 0x78, 0xB8, 0x48, 0x02, 0x64, 0xB8, +0x44, 0x02, 0x64, 0xB8, 0xCC, 0x01, 0x64, 0xB8, +0x74, 0x00, 0x18, 0x2E, 0x74, 0x00, 0x19, 0x2E, +0x01, 0x00, 0x60, 0xB8, 0x01, 0x00, 0x64, 0xB8, 0x34, 0x01, 0x64, 0xB8, 0xC8, 0x01, 0x64, 0xB8, 0xC9, 0x01, 0x64, 0xB8, 0x0C, 0xEA, 0xEF, 0xFD, 0xA0, 0x01, 0x64, 0xB8, 0x48, 0x00, 0x60, 0xB8, @@ -889,14 +895,13 @@ u8 array_mp_8822c_fw_ap[] = { 0x7E, 0x04, 0x64, 0xB8, 0xAC, 0x04, 0x64, 0xB8, 0x08, 0x10, 0x66, 0xB8, 0x04, 0x10, 0x66, 0xB8, 0x0C, 0x10, 0x66, 0xB8, 0x7D, 0x04, 0x64, 0xB8, -0x7C, 0x04, 0x64, 0xB8, 0xF4, 0x00, 0x60, 0xB8, -0x71, 0x00, 0x60, 0xB8, 0xE4, 0x00, 0x60, 0xB8, -0xE6, 0x00, 0x60, 0xB8, 0xE8, 0x00, 0x60, 0xB8, -0xE9, 0x00, 0x60, 0xB8, 0xEA, 0x00, 0x60, 0xB8, -0xEB, 0x00, 0x60, 0xB8, 0xE5, 0x00, 0x60, 0xB8, -0x44, 0x00, 0x02, 0x00, 0xA0, 0x07, 0x64, 0xB8, -0xFF, 0xFF, 0xFF, 0x7F, 0x90, 0x06, 0x64, 0xB8, -0xBC, 0x01, 0x64, 0xB8, 0x9A, 0x01, 0x64, 0xB8, +0x7C, 0x04, 0x64, 0xB8, 0x71, 0x00, 0x60, 0xB8, +0xE4, 0x00, 0x60, 0xB8, 0xE6, 0x00, 0x60, 0xB8, +0xE8, 0x00, 0x60, 0xB8, 0xE9, 0x00, 0x60, 0xB8, +0xEA, 0x00, 0x60, 0xB8, 0xEB, 0x00, 0x60, 0xB8, +0xE5, 0x00, 0x60, 0xB8, 0x44, 0x00, 0x02, 0x00, +0xA0, 0x07, 0x64, 0xB8, 0xFF, 0xFF, 0xFF, 0x7F, +0x90, 0x06, 0x64, 0xB8, 0x9A, 0x01, 0x64, 0xB8, 0x98, 0x01, 0x64, 0xB8, 0x90, 0x00, 0x60, 0xB8, 0xD0, 0x05, 0x64, 0xB8, 0xD4, 0x04, 0x60, 0xB8, 0xD4, 0x04, 0x64, 0xB8, 0x84, 0x04, 0x60, 0xB8, @@ -1492,14 +1497,14 @@ u8 array_mp_8822c_fw_ap[] = { 0x00, 0x0C, 0x0E, 0x38, 0x18, 0x00, 0x00, 0x00, 0x00, 0x83, 0x01, 0x06, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x70, 0xE0, 0x00, 0x00, 0x00, 0x00, -0xDA, 0xCB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4A, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xF0, 0x21, 0x6C, 0x00, 0xF0, 0x00, 0x4C, 0xBC, 0x65, 0x94, 0xB8, 0x00, 0x65, 0x00, 0x6D, 0xFE, 0xF7, 0x1F, 0x4D, 0xAC, 0xEC, 0x94, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0xF4, 0x00, 0x6D, 0xAD, 0xEC, 0x40, 0x6D, 0xAD, 0xEC, 0x94, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x1F, 0xF7, 0x00, 0x6C, 0x8C, 0xB9, 0x00, 0x65, +0x1F, 0xF6, 0x00, 0x6C, 0x8C, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x77, 0xF0, 0x20, 0x6C, 0x80, 0xF0, 0x80, 0x9C, 0x80, 0xF0, 0x20, 0x6E, 0xCC, 0xEC, 0x18, 0x24, 0x30, 0xF0, 0x21, 0x6C, @@ -1512,52 +1517,52 @@ u8 array_mp_8822c_fw_ap[] = { 0xC0, 0xF1, 0x14, 0x4C, 0x00, 0x6E, 0x30, 0xF0, 0x20, 0x6F, 0x41, 0xF7, 0x08, 0x4F, 0xC0, 0xDC, 0x04, 0x4C, 0xE3, 0xEC, 0xB8, 0x67, 0xFB, 0x2D, -0x30, 0xF0, 0x20, 0x6C, 0xA5, 0xF5, 0x14, 0x4C, -0x00, 0x6E, 0x30, 0xF0, 0x21, 0x6F, 0xF0, 0xF6, -0x08, 0x4F, 0xC0, 0xDC, 0x04, 0x4C, 0xE3, 0xEC, +0x30, 0xF0, 0x20, 0x6C, 0xC5, 0xF5, 0x1C, 0x4C, +0x00, 0x6E, 0x30, 0xF0, 0x21, 0x6F, 0x10, 0xF7, +0x18, 0x4F, 0xC0, 0xDC, 0x04, 0x4C, 0xE3, 0xEC, 0xB8, 0x67, 0xFB, 0x2D, 0x10, 0xF0, 0x23, 0x6C, 0xC0, 0xF0, 0x01, 0x4C, 0x00, 0xEC, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, 0x70, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0xC0, 0xF0, 0x01, 0x4A, 0x40, 0xDB, 0x00, 0x1C, 0x80, 0x00, 0x80, 0x18, -0x0C, 0x60, 0x80, 0x18, 0x1E, 0x5D, 0x80, 0x18, -0x45, 0x5D, 0x80, 0x18, 0xDE, 0x5F, 0x80, 0x18, -0x62, 0x5D, 0x80, 0x18, 0xD5, 0x5F, 0x00, 0x18, -0xAD, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, +0x95, 0x5E, 0x80, 0x18, 0xA7, 0x5B, 0x80, 0x18, +0xCE, 0x5B, 0x80, 0x18, 0x67, 0x5E, 0x80, 0x18, +0xEB, 0x5B, 0x80, 0x18, 0x5E, 0x5E, 0x00, 0x18, +0xA2, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x54, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x69, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x21, 0x6A, 0x41, 0xF7, 0x08, 0x4C, 0x1D, 0xF0, 0x00, 0x4A, 0x43, 0xDC, 0xE0, 0xF7, 0x40, 0x98, 0x00, 0x6D, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE5, 0xF5, 0x50, 0xDB, 0x01, 0xF0, +0x20, 0x6B, 0x25, 0xF6, 0x40, 0xDB, 0x01, 0xF0, 0x50, 0x99, 0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF0, 0x10, 0x4C, 0x01, 0x6D, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x05, 0xF6, 0x44, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x25, 0xF6, 0x54, 0xDB, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x21, 0x6A, 0xE1, 0xF7, 0x00, 0x4C, 0x1D, 0xF4, 0x00, 0x4A, 0x43, 0xDC, 0xE0, 0xF7, 0x40, 0x98, 0x00, 0x6D, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xE5, 0xF5, 0x58, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x25, 0xF6, 0x48, 0xDB, 0x01, 0xF0, 0x50, 0x99, 0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF0, 0x0C, 0x4C, 0x01, 0x6D, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x05, 0xF6, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x25, 0xF6, 0x50, 0xDB, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x21, 0x6A, 0x81, 0xF7, 0x14, 0x4C, 0x1E, 0xF0, 0x00, 0x4A, 0x43, 0xDC, 0xE0, 0xF7, 0x40, 0x98, 0x00, 0x6D, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE5, 0xF5, -0x54, 0xDB, 0x01, 0xF0, 0x50, 0x99, 0x30, 0xF0, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x25, 0xF6, +0x44, 0xDB, 0x01, 0xF0, 0x50, 0x99, 0x30, 0xF0, 0x20, 0x6C, 0x00, 0x6D, 0x82, 0xF0, 0x04, 0x4C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x05, 0xF6, -0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x01, 0xF0, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x25, 0xF6, +0x58, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x01, 0xF0, 0x44, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF0, 0x00, 0x4C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x05, 0xF6, 0x4C, 0xDB, 0x30, 0xF0, 0x20, 0x6C, +0x25, 0xF6, 0x5C, 0xDB, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x21, 0x6A, 0x22, 0xF0, 0x14, 0x4C, 0x1E, 0xF4, 0x00, 0x4A, 0x43, 0xDC, 0xE0, 0xF7, 0x40, 0x98, 0x00, 0x6D, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE5, 0xF5, 0x5C, 0xDB, 0x80, 0x18, -0x0D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, -0x64, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, 0x10, 0xF0, +0x20, 0x6B, 0x25, 0xF6, 0x4C, 0xDB, 0x80, 0x18, +0x96, 0x5F, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF7, +0x68, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, 0x10, 0xF0, 0x00, 0x6D, 0x40, 0xAB, 0xAB, 0xED, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x58, 0x9A, 0x40, 0xEA, @@ -1570,7 +1575,7 @@ u8 array_mp_8822c_fw_ap[] = { 0x1A, 0x6A, 0x6A, 0xEA, 0x31, 0x60, 0x77, 0xF0, 0x24, 0x6A, 0xA0, 0xF1, 0x1C, 0x4A, 0x1D, 0xF4, 0x00, 0x6B, 0x60, 0xDA, 0x10, 0xF0, 0x23, 0x6A, -0x01, 0xF4, 0x11, 0x4A, 0x00, 0xEA, 0x00, 0xF0, +0xE0, 0xF7, 0x05, 0x4A, 0x00, 0xEA, 0x00, 0xF0, 0x20, 0x6A, 0x1F, 0xF7, 0x00, 0x6A, 0x4C, 0xEB, 0x4C, 0xB8, 0x00, 0x65, 0x6C, 0xEA, 0x42, 0x32, 0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF0, 0x00, 0x4B, @@ -1606,7 +1611,7 @@ u8 array_mp_8822c_fw_ap[] = { 0x6A, 0x9B, 0xCF, 0xF7, 0x80, 0x44, 0x62, 0xEC, 0x0D, 0x60, 0x77, 0xF0, 0x24, 0x6C, 0xA0, 0xF1, 0x1C, 0x4C, 0x1D, 0xF4, 0x01, 0x6B, 0x60, 0xDC, -0x10, 0xF0, 0x23, 0x6C, 0x01, 0xF4, 0x11, 0x4C, +0x10, 0xF0, 0x23, 0x6C, 0xE0, 0xF7, 0x05, 0x4C, 0x00, 0xEC, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF1, 0x0C, 0x4B, 0x41, 0x9B, 0x40, 0xDB, 0x89, 0x9A, 0xBC, 0x65, 0x7D, 0x67, 0xDF, 0xF7, @@ -1654,7 +1659,7 @@ u8 array_mp_8822c_fw_ap[] = { 0x6A, 0x9B, 0xCF, 0xF7, 0x80, 0x44, 0x62, 0xEC, 0x0D, 0x60, 0x77, 0xF0, 0x24, 0x6C, 0xA0, 0xF1, 0x1C, 0x4C, 0x1D, 0xF4, 0x01, 0x6B, 0x60, 0xDC, -0x10, 0xF0, 0x23, 0x6C, 0x01, 0xF4, 0x11, 0x4C, +0x10, 0xF0, 0x23, 0x6C, 0xE0, 0xF7, 0x05, 0x4C, 0x00, 0xEC, 0x00, 0x65, 0x40, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x41, 0xF3, 0x08, 0x4C, 0x00, 0xF4, 0x00, 0x4C, 0xBC, 0x65, 0x82, 0x67, 0x40, 0xEA, @@ -1678,179 +1683,44 @@ u8 array_mp_8822c_fw_ap[] = { 0x7B, 0xB8, 0x00, 0x65, 0x5A, 0xB8, 0x00, 0x65, 0x00, 0xBA, 0x00, 0x65, 0x5F, 0x67, 0x5A, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x18, -0xDB, 0xC2, 0x00, 0x1C, 0xBA, 0x35, 0x5A, 0xB8, +0xCD, 0xC1, 0x00, 0x1C, 0xBA, 0x35, 0x5A, 0xB8, 0x00, 0x65, 0x00, 0xEA, 0x6D, 0xB8, 0x00, 0xF0, 0x20, 0x6A, 0x00, 0xF2, 0x00, 0x4A, 0x4F, 0xEA, 0x4C, 0xEB, 0xAB, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x5F, 0x67, 0x5A, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x1C, 0x7D, 0x35, 0x5A, 0xB8, 0x00, 0x65, 0x00, 0xEA, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF6, 0x78, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF6, 0x60, 0x9B, 0xFF, 0x6A, 0x8C, 0xEA, 0x80, 0xA3, 0x10, 0x6B, 0x8C, 0xEB, 0x05, 0x23, 0xE2, 0xF1, 0x10, 0x4A, 0xE2, 0xF1, 0x10, 0x6B, 0x31, 0x10, 0x7F, 0x4A, 0x09, 0x4A, 0x88, 0x6B, 0x15, 0x10, 0x1F, 0xF7, 0x00, 0x6C, 0x6C, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, -0xC2, 0xF5, 0x84, 0x9C, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6C, 0xC2, 0xF5, 0x88, 0x9C, 0xC0, 0xA5, +0xC2, 0xF5, 0x88, 0x9C, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6C, 0xC2, 0xF5, 0x8C, 0x9C, 0xC0, 0xA5, 0x91, 0xE3, 0x01, 0x4D, 0xC0, 0xC4, 0x01, 0x4B, 0x4A, 0xEB, 0xE9, 0x61, 0x20, 0xE8, 0x1F, 0xF7, 0x00, 0x6C, 0x6C, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, -0xC2, 0xF5, 0x84, 0x9C, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6C, 0xC2, 0xF5, 0x88, 0x9C, 0xC0, 0xA5, +0xC2, 0xF5, 0x88, 0x9C, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6C, 0xC2, 0xF5, 0x8C, 0x9C, 0xC0, 0xA5, 0x91, 0xE3, 0x01, 0x4D, 0xC0, 0xC4, 0x01, 0x4B, 0x4A, 0xEB, 0xE9, 0x61, 0x20, 0xE8, 0x00, 0x65, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0x6A, 0x4C, 0xED, 0x4C, 0xEC, 0xCC, 0xEA, -0x4B, 0xEA, 0xC0, 0xF7, 0x42, 0x32, 0x44, 0x32, -0x30, 0xF0, 0x20, 0x68, 0x04, 0xD2, 0xC0, 0xF3, -0x44, 0x98, 0x07, 0xD5, 0xA4, 0x36, 0x08, 0x6B, -0x01, 0x6D, 0x06, 0xD4, 0xAB, 0xED, 0x03, 0xF3, -0x00, 0x6C, 0x6D, 0xEE, 0x40, 0xEA, 0x06, 0x92, -0x0F, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x02, 0xF7, 0xB0, 0x9B, 0x23, 0xF3, -0x00, 0x6C, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xC2, 0xF7, 0x44, 0x9A, 0x0E, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x02, 0xF7, 0xB0, 0x9B, 0x23, 0xF3, 0x00, 0x6C, -0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xC2, 0xF7, 0x48, 0x9A, 0x05, 0xD2, 0x06, 0x92, -0x22, 0x68, 0x07, 0x93, 0x18, 0xEA, 0x44, 0x6A, -0x00, 0x69, 0x12, 0xE8, 0x58, 0xEB, 0x04, 0x93, -0x12, 0xEA, 0x41, 0xE0, 0x88, 0x6A, 0x58, 0xEB, -0x12, 0xEA, 0x41, 0xE0, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0x01, 0xE2, 0x0A, 0xF5, -0x0C, 0x48, 0xC0, 0xA8, 0x05, 0x92, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0x36, 0x4D, 0xEE, 0x28, 0x32, -0x4D, 0xEE, 0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, -0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x02, 0x4E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, -0xB4, 0x9B, 0xC3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, -0x01, 0x49, 0x40, 0xEA, 0x11, 0x71, 0x02, 0x48, -0xE0, 0x61, 0x06, 0x92, 0x22, 0x69, 0x07, 0x93, -0x38, 0xEA, 0x44, 0x6A, 0x12, 0xE9, 0x58, 0xEB, -0x04, 0x93, 0x12, 0xEA, 0x45, 0xE1, 0x88, 0x6A, -0x58, 0xEB, 0x12, 0xEA, 0x45, 0xE1, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, 0x25, 0xE2, -0x00, 0x6A, 0x0A, 0xF6, 0x1C, 0x49, 0x04, 0xD2, -0xC0, 0xA9, 0x05, 0x93, 0x04, 0x92, 0x30, 0xF0, -0x20, 0x68, 0xC0, 0x36, 0x6D, 0xEE, 0x48, 0x33, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x6D, 0xEE, -0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, 0xB4, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x18, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x04, 0x93, 0x02, 0x49, -0x01, 0x4B, 0x11, 0x73, 0x04, 0xD3, 0xE0, 0x61, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x02, 0xF7, 0xC4, 0x9B, 0x01, 0x6D, 0xC3, 0xF3, -0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x02, 0xF7, -0xB0, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, -0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x4C, 0xED, -0x4C, 0xEC, 0xCC, 0xEA, 0x4B, 0xEA, 0xC0, 0xF7, -0x42, 0x32, 0x30, 0xF0, 0x20, 0x68, 0x44, 0x32, -0xC0, 0xF3, 0x64, 0x98, 0x06, 0xD5, 0x04, 0xD2, -0xA4, 0x36, 0x08, 0x6A, 0x01, 0x6D, 0x05, 0xD4, -0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, -0x40, 0xEB, 0x05, 0x92, 0x0A, 0x2A, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, -0x00, 0x6C, 0x02, 0xF7, 0xB0, 0x9B, 0x03, 0x6E, -0x09, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x02, 0xF7, 0xB0, 0x9B, 0x23, 0xF3, -0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x83, 0xF0, 0xB0, 0x9B, 0xC3, 0xF3, -0x14, 0x69, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x02, 0xF7, 0xA0, 0x9B, 0x91, 0x67, 0x10, 0x6E, -0x40, 0xEA, 0x05, 0x92, 0x22, 0x69, 0x06, 0x93, -0x38, 0xEA, 0x44, 0x6A, 0x12, 0xE9, 0x58, 0xEB, -0x04, 0x93, 0x12, 0xEA, 0x45, 0xE1, 0x88, 0x6A, -0x58, 0xEB, 0x12, 0xEA, 0x45, 0xE1, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, 0x21, 0xE2, -0x25, 0xE2, 0x00, 0x6A, 0x0A, 0xF5, 0x0C, 0x48, -0x0A, 0xF6, 0x1C, 0x49, 0x04, 0xD2, 0x04, 0x93, -0x30, 0xF0, 0x20, 0x6A, 0x01, 0x6D, 0x68, 0x36, -0xC0, 0xF3, 0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0x02, 0xF7, 0x44, 0x9A, 0xC3, 0xF3, 0x18, 0x6C, -0xAB, 0xED, 0x4D, 0xEE, 0x40, 0xEB, 0x01, 0x6D, -0xE3, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, 0x80, 0x18, -0xA1, 0x16, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF7, -0x68, 0x9B, 0x4C, 0xEB, 0x62, 0x33, 0x62, 0x33, -0x60, 0xC8, 0xE1, 0xF7, 0x1F, 0x6B, 0x4C, 0xEB, -0x60, 0xC9, 0x04, 0x93, 0x02, 0x48, 0x02, 0x49, -0x01, 0x4B, 0x11, 0x73, 0x04, 0xD3, 0xD7, 0x61, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, -0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF7, 0xB0, 0x9B, -0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x68, 0x0C, 0xEC, -0x01, 0x74, 0xAC, 0xE8, 0x80, 0xF0, 0x0F, 0x60, -0x07, 0x24, 0x02, 0x74, 0xA0, 0xF0, 0x01, 0x60, -0x03, 0x74, 0xA0, 0xF0, 0x02, 0x60, 0xA6, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0x2A, 0xF7, 0x74, 0x9A, 0x30, 0xF0, 0x21, 0x6D, -0x30, 0xF0, 0x21, 0x6C, 0x2A, 0xF7, 0x78, 0xDA, -0x30, 0xF0, 0x21, 0x6F, 0x30, 0xF0, 0x21, 0x6B, -0xB0, 0xF6, 0x04, 0x4D, 0x90, 0xF6, 0x1C, 0x4C, -0x90, 0xF6, 0x18, 0x4B, 0x90, 0xF4, 0x06, 0x4F, -0x00, 0x69, 0x40, 0x9D, 0x95, 0xF3, 0x04, 0x41, -0x04, 0x30, 0x42, 0xDD, 0x40, 0xAC, 0x05, 0xD7, -0x42, 0xCC, 0x40, 0xA3, 0x42, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, 0x01, 0xE2, -0x00, 0x6A, 0x04, 0x48, 0x04, 0xD2, 0x40, 0xA0, -0x22, 0x6E, 0x07, 0xD3, 0x44, 0xC0, 0x04, 0x92, -0xD8, 0xEA, 0x44, 0x6A, 0x12, 0xEE, 0x58, 0xE9, -0x12, 0xEA, 0x49, 0xE6, 0x30, 0xF0, 0x20, 0x6E, -0x45, 0xF7, 0x18, 0x4E, 0x1A, 0x65, 0x49, 0xE6, -0x0A, 0xF5, 0x0C, 0x4A, 0x06, 0xD2, 0x58, 0x67, -0x59, 0xE6, 0x06, 0x92, 0x0A, 0xF6, 0x1C, 0x4E, -0x60, 0xAA, 0x80, 0xF0, 0x68, 0xCA, 0x60, 0xAE, -0x02, 0x4A, 0x80, 0xF0, 0x68, 0xCE, 0x05, 0x93, -0x02, 0x4E, 0x6A, 0xEA, 0xF5, 0x61, 0x04, 0x92, -0x07, 0x93, 0x01, 0x48, 0x01, 0x4A, 0x04, 0xD2, -0x05, 0x92, 0x22, 0x4A, 0x05, 0xD2, 0x04, 0x92, -0x02, 0x72, 0xD1, 0x61, 0x01, 0x49, 0x02, 0x71, -0x04, 0x4D, 0x02, 0x4C, 0x01, 0x4B, 0x44, 0x4F, -0xB8, 0x61, 0x30, 0xF0, 0x21, 0x6B, 0x90, 0xF6, -0x18, 0x4B, 0x44, 0x43, 0xA7, 0x43, 0x16, 0x4D, -0xE2, 0x67, 0x00, 0x6C, 0x80, 0xC3, 0x01, 0x4B, -0x00, 0x6C, 0x01, 0x6E, 0xEA, 0xEB, 0x80, 0xCA, -0xFF, 0xF7, 0xC8, 0xC2, 0x20, 0xF0, 0x85, 0xC2, -0xFF, 0xF7, 0xC9, 0xC2, 0x20, 0xF0, 0x86, 0xC2, -0x80, 0xC5, 0x81, 0xC5, 0x82, 0xC5, 0x02, 0x4A, -0x03, 0x4D, 0xEB, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0x2A, 0xF7, 0x7C, 0x9A, -0x2A, 0xF7, 0x74, 0xDA, 0x1F, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF6, 0xFC, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0xB0, 0x67, 0x09, 0xF4, 0x18, 0x4C, -0x58, 0x6E, 0x80, 0x18, 0x7F, 0x57, 0xC2, 0xF5, -0x12, 0x48, 0x30, 0xF0, 0x20, 0x6B, 0x08, 0x30, -0x45, 0xF7, 0x18, 0x4B, 0x6D, 0xE0, 0x41, 0xDB, -0x09, 0x10, 0x00, 0x6C, 0xB0, 0x67, 0xC4, 0x67, -0x03, 0x10, 0x01, 0x6C, 0xB0, 0x67, 0x00, 0x6E, -0x00, 0x18, 0x03, 0xC2, 0x0B, 0x97, 0x0A, 0x91, -0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, -0x50, 0x9A, 0x64, 0x9C, 0xFF, 0x68, 0xAC, 0xE8, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, +0x5C, 0x9A, 0x64, 0x9C, 0xFF, 0x68, 0xAC, 0xE8, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, -0x30, 0xF0, 0x20, 0x6D, 0xC4, 0xF4, 0x0C, 0x4C, -0x82, 0xF3, 0x0C, 0x4D, 0x80, 0x18, 0x16, 0x42, +0x30, 0xF0, 0x20, 0x6D, 0xE4, 0xF4, 0x14, 0x4C, +0x82, 0xF3, 0x0C, 0x4D, 0x80, 0x18, 0x25, 0x42, 0x01, 0x70, 0x14, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x63, 0xF0, 0xA8, 0x9B, 0x83, 0xF2, 0x1C, 0x6C, +0x83, 0xF0, 0xBC, 0x9B, 0x83, 0xF2, 0x1C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x14, 0x6C, 0x00, 0xF3, 0x00, 0x6D, 0x00, 0x6E, 0x15, 0x10, 0x02, 0x70, 0x14, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, 0xA8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF0, 0xBC, 0x9B, 0x83, 0xF2, 0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x14, 0x6C, 0x00, 0xF3, 0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, @@ -1862,663 +1732,678 @@ u8 array_mp_8822c_fw_ap[] = { 0xFF, 0x17, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, 0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, 0x50, 0x9A, -0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF1, -0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xEF, 0x9A, -0x82, 0xF5, 0x78, 0x9B, 0xCE, 0x9A, 0xAD, 0x9A, -0x8C, 0x9A, 0xE0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x82, 0xF5, 0x7C, 0x9B, 0xC0, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0xA2, 0xF5, 0x60, 0x9B, 0xA0, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF5, 0x64, 0x9B, -0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x89, 0x9A, -0xA2, 0xF5, 0x68, 0x9B, 0x80, 0xDB, 0x68, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF5, 0x4C, 0x9A, -0x01, 0x6C, 0xA4, 0x67, 0x60, 0xDA, 0x80, 0x18, -0xC7, 0x02, 0x00, 0x1C, 0xAC, 0x39, 0xFF, 0x17, -0x4C, 0xB8, 0x00, 0x65, 0x80, 0x34, 0x8D, 0xEA, -0x8A, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0x4C, 0xB8, 0x00, 0x65, -0x80, 0x34, 0x8F, 0xEC, 0x8C, 0xEA, 0x8A, 0xB9, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF1, 0x00, 0x4A, -0x60, 0xDA, 0x81, 0xDA, 0xA2, 0xDA, 0xC3, 0xDA, -0xE4, 0xDA, 0x05, 0xDA, 0x26, 0xDA, 0x78, 0x67, -0x67, 0xDA, 0x7D, 0x67, 0x68, 0xDA, 0x7F, 0x67, -0x69, 0xDA, 0x12, 0xEB, 0x6A, 0xDA, 0x10, 0xEB, -0x6B, 0xDA, 0x6D, 0xB8, 0x00, 0x65, 0x6C, 0xDA, -0x68, 0xB8, 0x00, 0x65, 0x6D, 0xDA, 0x6C, 0xB8, -0x00, 0x65, 0x6E, 0xDA, 0x6E, 0xB8, 0x00, 0x65, -0x6F, 0xDA, 0x10, 0xF0, 0x23, 0x6A, 0x61, 0xF3, -0x15, 0x4A, 0x00, 0xEA, 0x00, 0x65, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, 0x70, 0x9B, -0x10, 0xF0, 0x23, 0x6A, 0x61, 0xF4, 0x01, 0x4A, +0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, +0x58, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF1, 0x00, 0x4A, 0x30, 0xF0, +0x20, 0x6B, 0xEF, 0x9A, 0x82, 0xF5, 0x7C, 0x9B, +0xCE, 0x9A, 0xAD, 0x9A, 0x8C, 0x9A, 0xE0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF5, 0x60, 0x9B, +0xC0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF5, +0x64, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xA2, 0xF5, 0x68, 0x9B, 0x80, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x89, 0x9A, 0xA2, 0xF5, 0x6C, 0x9B, +0x80, 0xDB, 0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0xA2, 0xF5, 0x50, 0x9A, 0x01, 0x6C, 0xA4, 0x67, +0x60, 0xDA, 0x80, 0x18, 0xF3, 0x02, 0x00, 0x1C, +0xAC, 0x39, 0xFF, 0x17, 0x4C, 0xB8, 0x00, 0x65, +0x80, 0x34, 0x8D, 0xEA, 0x8A, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x4C, 0xB8, 0x00, 0x65, 0x80, 0x34, 0x8F, 0xEC, +0x8C, 0xEA, 0x8A, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF1, 0x00, 0x4A, 0x60, 0xDA, 0x81, 0xDA, +0xA2, 0xDA, 0xC3, 0xDA, 0xE4, 0xDA, 0x05, 0xDA, +0x26, 0xDA, 0x78, 0x67, 0x67, 0xDA, 0x7D, 0x67, +0x68, 0xDA, 0x7F, 0x67, 0x69, 0xDA, 0x12, 0xEB, +0x6A, 0xDA, 0x10, 0xEB, 0x6B, 0xDA, 0x6D, 0xB8, +0x00, 0x65, 0x6C, 0xDA, 0x68, 0xB8, 0x00, 0x65, +0x6D, 0xDA, 0x6C, 0xB8, 0x00, 0x65, 0x6E, 0xDA, +0x6E, 0xB8, 0x00, 0x65, 0x6F, 0xDA, 0x10, 0xF0, +0x23, 0x6A, 0x20, 0xF7, 0x1D, 0x4A, 0x00, 0xEA, +0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0x82, 0xF5, 0x70, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0x21, 0xF0, 0x15, 0x4A, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xA2, 0xF5, 0x54, 0x9A, 0x08, 0x6B, +0x40, 0xA2, 0x4C, 0xEB, 0x00, 0x6A, 0x11, 0x23, +0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF5, 0x58, 0x9A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0x9A, 0x45, 0xF6, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF5, -0x50, 0x9A, 0x08, 0x6B, 0x40, 0xA2, 0x4C, 0xEB, -0x00, 0x6A, 0x11, 0x23, 0x30, 0xF0, 0x20, 0x6A, -0xA2, 0xF5, 0x54, 0x9A, 0x30, 0xF0, 0x20, 0x6B, -0x40, 0x9A, 0x05, 0xF6, 0x50, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0xA2, 0xF5, 0x58, 0x9A, 0x05, 0xF6, -0x10, 0x4B, 0x40, 0x9A, 0x41, 0xDB, 0x20, 0xE8, +0x5C, 0x9A, 0x45, 0xF6, 0x00, 0x4B, 0x40, 0x9A, +0x41, 0xDB, 0x20, 0xE8, 0xFF, 0x6A, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF5, 0x90, 0x9C, +0x10, 0xF0, 0x23, 0x6B, 0x61, 0xF0, 0x1D, 0x4B, +0x60, 0xDC, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF5, +0x74, 0x9B, 0x80, 0xA3, 0x08, 0x6B, 0x8C, 0xEB, +0x1C, 0x23, 0x05, 0x5A, 0x1A, 0x60, 0x0C, 0x6D, +0xB8, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF5, +0x78, 0x9B, 0x80, 0x9B, 0x30, 0xF0, 0x20, 0x6B, +0x45, 0xF6, 0x08, 0x4B, 0x12, 0xEA, 0x49, 0xE3, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF5, 0x7C, 0x9B, +0x81, 0xDA, 0x80, 0xA2, 0x60, 0x9B, 0x62, 0xDA, +0x01, 0x6B, 0x8D, 0xEB, 0x60, 0xC2, 0x01, 0x6A, +0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF5, 0x90, 0x9C, 0x10, 0xF0, 0x23, 0x6B, -0xA1, 0xF4, 0x09, 0x4B, 0x60, 0xDC, 0x30, 0xF0, -0x20, 0x6B, 0xA2, 0xF5, 0x70, 0x9B, 0x80, 0xA3, -0x08, 0x6B, 0x8C, 0xEB, 0x1C, 0x23, 0x05, 0x5A, -0x1A, 0x60, 0x0C, 0x6D, 0xB8, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xA2, 0xF5, 0x74, 0x9B, 0x80, 0x9B, -0x30, 0xF0, 0x20, 0x6B, 0x05, 0xF6, 0x18, 0x4B, -0x12, 0xEA, 0x49, 0xE3, 0x30, 0xF0, 0x20, 0x6B, -0xA2, 0xF5, 0x78, 0x9B, 0x81, 0xDA, 0x80, 0xA2, -0x60, 0x9B, 0x62, 0xDA, 0x01, 0x6B, 0x8D, 0xEB, -0x60, 0xC2, 0x01, 0x6A, 0x20, 0xE8, 0x00, 0x6A, -0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x8C, 0xEA, -0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF5, 0x90, 0x9C, -0x10, 0xF0, 0x23, 0x6B, 0x01, 0xF5, 0x0D, 0x4B, -0x60, 0xDC, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF5, -0x70, 0x9B, 0x80, 0xA3, 0x08, 0x6B, 0x8C, 0xEB, -0x1B, 0x23, 0x05, 0x5A, 0x19, 0x60, 0x0C, 0x6C, -0x98, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x05, 0xF6, -0x18, 0x4B, 0x12, 0xEA, 0x69, 0xE2, 0x80, 0xA2, -0x01, 0x6B, 0x8C, 0xEB, 0x0D, 0x23, 0x30, 0xF0, -0x20, 0x6B, 0xA2, 0xF5, 0x74, 0x9B, 0x42, 0x9A, -0xA0, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF5, -0x78, 0x9B, 0x60, 0x9B, 0x4B, 0xE3, 0x20, 0xE8, -0x00, 0x6A, 0x20, 0xE8, 0xFF, 0x6B, 0x8C, 0xEB, -0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF5, 0x90, 0x9C, -0x10, 0xF0, 0x23, 0x6A, 0x61, 0xF5, 0x0D, 0x4A, -0x05, 0x5B, 0x40, 0xDC, 0x00, 0x6A, 0x11, 0x60, -0x0C, 0x6C, 0x98, 0xEB, 0x30, 0xF0, 0x20, 0x6A, -0x05, 0xF6, 0x18, 0x4A, 0x12, 0xEB, 0x4D, 0xE3, -0x80, 0xA3, 0x02, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, -0x40, 0xC3, 0x00, 0x6A, 0x41, 0xDB, 0x42, 0xDB, -0x01, 0x6A, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, -0x70, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0xA1, 0xF5, -0x0D, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF7, 0x50, 0x9A, 0x40, 0xEA, 0x03, 0x22, -0x00, 0x18, 0x18, 0xC3, 0x05, 0x10, 0x10, 0xF0, -0x23, 0x68, 0x61, 0xF4, 0x01, 0x48, 0xBA, 0xFE, -0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xE1, 0xF0, 0x01, 0x4B, 0x60, 0xDC, 0x30, 0xF0, +0x20, 0x6B, 0xA2, 0xF5, 0x74, 0x9B, 0x80, 0xA3, +0x08, 0x6B, 0x8C, 0xEB, 0x1B, 0x23, 0x05, 0x5A, +0x19, 0x60, 0x0C, 0x6C, 0x98, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x45, 0xF6, 0x08, 0x4B, 0x12, 0xEA, +0x69, 0xE2, 0x80, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, +0x0D, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF5, +0x78, 0x9B, 0x42, 0x9A, 0xA0, 0x9B, 0x30, 0xF0, +0x20, 0x6B, 0xA2, 0xF5, 0x7C, 0x9B, 0x60, 0x9B, +0x4B, 0xE3, 0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, +0xFF, 0x6B, 0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, +0x82, 0xF5, 0x90, 0x9C, 0x10, 0xF0, 0x23, 0x6A, +0x41, 0xF1, 0x01, 0x4A, 0x05, 0x5B, 0x40, 0xDC, +0x00, 0x6A, 0x11, 0x60, 0x0C, 0x6C, 0x98, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF6, 0x08, 0x4A, +0x12, 0xEB, 0x4D, 0xE3, 0x80, 0xA3, 0x02, 0x6A, +0x4B, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x00, 0x6A, +0x41, 0xDB, 0x42, 0xDB, 0x01, 0x6A, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, 0x70, 0x9B, 0x10, 0xF0, -0x23, 0x6A, 0xE1, 0xF5, 0x09, 0x4A, 0x40, 0xDB, +0x23, 0x6A, 0x81, 0xF1, 0x01, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x50, 0x9A, -0xFF, 0x68, 0x8C, 0xE8, 0x40, 0xEA, 0x04, 0x22, -0x90, 0x67, 0x00, 0x18, 0x2A, 0xC3, 0x06, 0x10, -0x90, 0x67, 0x10, 0xF0, 0x23, 0x68, 0xA1, 0xF4, -0x09, 0x48, 0xBA, 0xFE, 0x05, 0x97, 0x04, 0x90, +0x40, 0xEA, 0x03, 0x22, 0x00, 0x18, 0x0D, 0xC2, +0x05, 0x10, 0x10, 0xF0, 0x23, 0x68, 0x21, 0xF0, +0x15, 0x48, 0xBA, 0xFE, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, -0x70, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0x21, 0xF6, -0x0D, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x70, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0xA1, 0xF1, +0x1D, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x50, 0x9A, 0xFF, 0x68, 0x8C, 0xE8, 0x40, 0xEA, 0x04, 0x22, 0x90, 0x67, 0x00, 0x18, -0x43, 0xC3, 0x06, 0x10, 0x90, 0x67, 0x10, 0xF0, -0x23, 0x68, 0x01, 0xF5, 0x0D, 0x48, 0xBA, 0xFE, +0x1F, 0xC2, 0x06, 0x10, 0x90, 0x67, 0x10, 0xF0, +0x23, 0x68, 0x61, 0xF0, 0x1D, 0x48, 0xBA, 0xFE, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, 0x70, 0x9B, 0x10, 0xF0, -0x23, 0x6A, 0x61, 0xF6, 0x11, 0x4A, 0x40, 0xDB, +0x23, 0x6A, 0x01, 0xF2, 0x01, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x50, 0x9A, 0xFF, 0x68, 0x8C, 0xE8, 0x40, 0xEA, 0x04, 0x22, -0x90, 0x67, 0x00, 0x18, 0x5B, 0xC3, 0x06, 0x10, -0x90, 0x67, 0x10, 0xF0, 0x23, 0x68, 0x61, 0xF5, -0x0D, 0x48, 0xBA, 0xFE, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0x10, 0xF0, 0x23, 0x6A, -0xC0, 0xF2, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xE0, 0xF6, 0x48, 0xDB, 0x10, 0xF0, 0x23, 0x6A, -0xA0, 0xF4, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xE0, 0xF6, 0x4C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, -0x40, 0xF5, 0x09, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xE0, 0xF6, 0x50, 0xDB, 0x10, 0xF0, 0x23, 0x6A, -0xA0, 0xF5, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xE0, 0xF6, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, -0x61, 0xF3, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xE0, 0xF6, 0x58, 0xDB, 0x10, 0xF0, 0x23, 0x6A, -0x01, 0xF4, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xE0, 0xF6, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, -0x61, 0xF3, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x00, 0xF7, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x3C, 0xF6, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x00, 0xF7, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0xBA, 0xF4, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x00, 0xF7, 0x48, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x5A, 0xF2, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x00, 0xF7, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0xDA, 0xF5, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x00, 0xF7, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0xFA, 0xF6, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x00, 0xF7, 0x54, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0xFA, 0xF5, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x00, 0xF7, 0x58, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x7A, 0xF1, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x00, 0xF7, 0x5C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0xBB, 0xF6, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x20, 0xF7, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x7B, 0xF5, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x20, 0xF7, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0xFB, 0xF5, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x20, 0xF7, 0x48, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x5C, 0xF1, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x20, 0xF7, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x5C, 0xF7, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x20, 0xF7, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0xBC, 0xF1, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x20, 0xF7, 0x54, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0xFC, 0xF0, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x20, 0xF7, 0x58, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x5B, 0xF6, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x20, 0xF7, 0x5C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0xFA, 0xF5, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x40, 0xF7, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0xDA, 0xF0, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x40, 0xF7, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0xD9, 0xF6, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x40, 0xF7, 0x48, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x1C, 0xF6, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x40, 0xF7, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0xB9, 0xF6, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x40, 0xF7, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0xFB, 0xF1, 0x04, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x40, 0xF7, 0x54, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0xFB, 0xF7, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x40, 0xF7, 0x58, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0xBC, 0xF6, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x40, 0xF7, 0x5C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x1B, 0xF7, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x60, 0xF7, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x7B, 0xF6, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x60, 0xF7, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0xFB, 0xF1, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x60, 0xF7, 0x48, 0xDB, 0x10, 0xF0, 0x23, 0x6A, -0x41, 0xF3, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x60, 0xF7, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x5A, 0xF0, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x60, 0xF7, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x1A, 0xF0, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x60, 0xF7, 0x54, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0xFA, 0xF0, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x60, 0xF7, 0x58, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x5A, 0xF2, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x60, 0xF7, 0x5C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x9A, 0xF3, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x80, 0xF7, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0xFA, 0xF1, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x80, 0xF7, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x5C, 0xF3, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x80, 0xF7, 0x48, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x5C, 0xF4, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x80, 0xF7, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x3C, 0xF2, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x80, 0xF7, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0xBC, 0xF4, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x80, 0xF7, 0x54, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x1C, 0xF5, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x80, 0xF7, 0x58, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0xFB, 0xF1, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x80, 0xF7, 0x5C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x9B, 0xF4, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xA0, 0xF7, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x1B, 0xF3, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xA0, 0xF7, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x1B, 0xF2, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xA0, 0xF7, 0x48, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x5A, 0xF7, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xA0, 0xF7, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0xBB, 0xF0, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xA0, 0xF7, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x5B, 0xF0, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xA0, 0xF7, 0x54, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x9A, 0xF7, 0x04, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xA0, 0xF7, 0x58, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x5B, 0xF1, 0x04, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xA0, 0xF7, 0x5C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x7B, 0xF1, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF7, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x9C, 0xF7, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF7, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0xFC, 0xF7, 0x04, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF7, 0x48, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x1D, 0xF0, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF7, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x79, 0xF6, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF7, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0xDD, 0xF0, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF7, 0x54, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x1D, 0xF1, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF7, 0x58, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x3D, 0xF1, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF7, 0x5C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x9D, 0xF3, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xE0, 0xF7, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0xFD, 0xF3, 0x04, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xE0, 0xF7, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x3D, 0xF4, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xE0, 0xF7, 0x48, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x5D, 0xF4, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xE0, 0xF7, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x9D, 0xF4, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xE0, 0xF7, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0xDD, 0xF4, 0x04, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xE0, 0xF7, 0x54, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0xFD, 0xF6, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xE0, 0xF7, 0x58, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x3D, 0xF7, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xE0, 0xF7, 0x5C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x7D, 0xF7, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x01, 0xF0, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x1E, 0xF1, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x01, 0xF0, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x7E, 0xF1, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x01, 0xF0, 0x48, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x9E, 0xF1, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xA5, 0xF5, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0xDE, 0xF1, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x01, 0xF0, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0xDE, 0xF3, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x01, 0xF0, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x3E, 0xF4, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x01, 0xF0, 0x54, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0x7E, 0xF4, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x01, 0xF0, 0x58, 0xDB, 0x10, 0xF0, 0x21, 0x6A, -0xBE, 0xF4, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x01, 0xF0, 0x5C, 0xDB, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, -0x4C, 0xED, 0x8E, 0x36, 0x07, 0x6B, 0x01, 0x75, -0x4C, 0xEE, 0x8C, 0xEB, 0x12, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, 0x59, 0xE6, +0x90, 0x67, 0x00, 0x18, 0x38, 0xC2, 0x06, 0x10, +0x90, 0x67, 0x10, 0xF0, 0x23, 0x68, 0xE1, 0xF0, +0x01, 0x48, 0xBA, 0xFE, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, +0x70, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0x41, 0xF2, +0x05, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF7, 0x50, 0x9A, 0xFF, 0x68, 0x8C, 0xE8, +0x40, 0xEA, 0x04, 0x22, 0x90, 0x67, 0x00, 0x18, +0x50, 0xC2, 0x06, 0x10, 0x90, 0x67, 0x10, 0xF0, +0x23, 0x68, 0x41, 0xF1, 0x01, 0x48, 0xBA, 0xFE, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0x10, 0xF0, 0x23, 0x6A, 0xC0, 0xF2, 0x15, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x48, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0xA0, 0xF4, 0x01, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x4C, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0x40, 0xF5, 0x09, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x50, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0xA0, 0xF5, 0x1D, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x54, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0x20, 0xF7, 0x1D, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x58, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0xE0, 0xF7, 0x05, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x5C, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0x20, 0xF7, 0x19, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x3C, 0xF6, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xBA, 0xF4, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5A, 0xF2, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xDA, 0xF5, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFA, 0xF6, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFA, 0xF5, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x7A, 0xF1, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xBB, 0xF6, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x7B, 0xF5, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFB, 0xF5, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5C, 0xF1, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5C, 0xF7, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xBC, 0xF1, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFC, 0xF0, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5B, 0xF6, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFA, 0xF5, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xDA, 0xF0, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xD9, 0xF6, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1C, 0xF6, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xB9, 0xF6, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFB, 0xF1, 0x04, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFB, 0xF7, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xBC, 0xF6, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1B, 0xF7, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x7B, 0xF6, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFB, 0xF1, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0x00, 0xF7, 0x19, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5A, 0xF0, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1A, 0xF0, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFA, 0xF0, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5A, 0xF2, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x9A, 0xF3, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFA, 0xF1, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5C, 0xF3, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5C, 0xF4, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x3C, 0xF2, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xBC, 0xF4, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1C, 0xF5, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFB, 0xF1, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x9B, 0xF4, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1B, 0xF3, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1B, 0xF2, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5A, 0xF7, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xBB, 0xF0, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5B, 0xF0, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x9A, 0xF7, 0x04, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5B, 0xF1, 0x04, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x7B, 0xF1, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x9C, 0xF7, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFC, 0xF7, 0x04, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1D, 0xF0, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x79, 0xF6, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xDD, 0xF0, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1D, 0xF1, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x3D, 0xF1, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x9D, 0xF3, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFD, 0xF3, 0x04, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x3D, 0xF4, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5D, 0xF4, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x9D, 0xF4, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xDD, 0xF4, 0x04, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFD, 0xF6, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x3D, 0xF7, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x7D, 0xF7, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1E, 0xF1, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x7E, 0xF1, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x9E, 0xF1, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC5, 0xF5, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xDE, 0xF1, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xDE, 0xF3, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x3E, 0xF4, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x7E, 0xF4, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xBE, 0xF4, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x5C, 0xDB, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xED, 0x8E, 0x36, +0x07, 0x6B, 0x01, 0x75, 0x4C, 0xEE, 0x8C, 0xEB, +0x12, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0x59, 0xE6, 0x01, 0x6A, 0x44, 0xEB, +0x23, 0xF3, 0x6C, 0xA6, 0x00, 0x6D, 0x6D, 0xEA, +0x23, 0xF3, 0x4C, 0xC6, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x40, 0x9A, 0x12, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0x59, 0xE6, 0x01, 0x6A, 0x44, 0xEB, 0x23, 0xF3, 0x6C, 0xA6, -0x00, 0x6D, 0x6D, 0xEA, 0x23, 0xF3, 0x4C, 0xC6, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x40, 0x9A, -0x12, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0x59, 0xE6, 0x01, 0x6A, 0x44, 0xEB, -0x23, 0xF3, 0x6C, 0xA6, 0x4F, 0xEA, 0x01, 0x6D, -0x6C, 0xEA, 0x23, 0xF3, 0x4C, 0xC6, 0x30, 0xF0, -0x20, 0x6A, 0xA0, 0xF3, 0x40, 0x9A, 0x40, 0xEA, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFF, 0x6A, 0x4C, 0xEC, 0x01, 0x6B, 0xAC, 0xEA, -0x6E, 0xEA, 0x01, 0x5A, 0x58, 0x67, 0x05, 0x5C, -0x48, 0x32, 0x03, 0x61, 0x01, 0x6A, 0x4B, 0xEA, -0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF5, -0xBC, 0x9B, 0x30, 0xF0, 0x20, 0x6E, 0xC2, 0xF5, -0xC0, 0x9E, 0x60, 0x9D, 0x00, 0xF7, 0x80, 0x34, -0xCC, 0xEB, 0x6D, 0xEC, 0x80, 0xDD, 0x1F, 0xF7, -0x00, 0x6B, 0x60, 0xF5, 0x80, 0x42, 0x8C, 0xEB, -0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x09, 0x2B, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, 0x64, 0x9B, -0x60, 0xF5, 0x00, 0x4A, 0x69, 0xE2, 0x40, 0x9A, -0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, -0x48, 0x9A, 0x51, 0xE4, 0x40, 0x9C, 0x20, 0xE8, -0xFB, 0x63, 0x09, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, -0x32, 0x6B, 0xAC, 0xEA, 0xBD, 0x67, 0x70, 0xC5, -0x02, 0x5C, 0x02, 0x6B, 0x6F, 0xCD, 0x92, 0xC5, -0x02, 0x60, 0x53, 0xC5, 0x04, 0x10, 0x01, 0x6A, -0x4B, 0xEA, 0x7D, 0x67, 0x53, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, -0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, -0xFF, 0x6B, 0x6C, 0xEC, 0x01, 0x6A, 0x8E, 0xEA, -0x01, 0x5A, 0x58, 0x67, 0x6C, 0xEA, 0x20, 0xE8, -0xFF, 0x6A, 0x4C, 0xEC, 0x01, 0x74, 0x0C, 0x61, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, 0x6C, 0x9B, -0x10, 0x6C, 0x75, 0xE5, 0x60, 0xA5, 0x4C, 0xEB, -0x8D, 0xEB, 0x4C, 0xEB, 0x60, 0xC5, 0x20, 0xE8, -0x09, 0x2C, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, -0x4C, 0x9A, 0x55, 0xE5, 0x60, 0xA5, 0xEF, 0x6A, -0x6C, 0xEA, 0x40, 0xC5, 0x20, 0xE8, 0x00, 0x65, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x6A, 0xC2, 0xF5, -0x70, 0x9B, 0x4C, 0xEE, 0x4C, 0xEF, 0x05, 0xD6, -0x04, 0xD7, 0x60, 0xA3, 0xFF, 0xF7, 0x1F, 0x68, -0x25, 0x67, 0x4C, 0xEB, 0x72, 0x33, 0x4C, 0xEB, -0x8C, 0xE8, 0x4C, 0xE9, 0x3C, 0x23, 0x30, 0xF0, -0x20, 0x6B, 0xC2, 0xF5, 0x74, 0x9B, 0x00, 0x6C, -0xFF, 0x6D, 0x60, 0xA3, 0x26, 0x6E, 0x6C, 0xEA, -0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, -0x50, 0x9A, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x20, 0xF4, 0x5C, 0x9A, 0x40, 0xEA, 0x01, 0x72, -0x1D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x05, 0x96, -0xA0, 0xF2, 0x54, 0x9A, 0x04, 0x6F, 0x90, 0x67, -0x01, 0x6D, 0x40, 0xEA, 0x02, 0x67, 0x30, 0xF0, -0x20, 0x6A, 0x04, 0x96, 0x40, 0xF4, 0x58, 0x9A, -0xB0, 0x67, 0x91, 0x67, 0x40, 0xEA, 0x91, 0x67, -0x00, 0x18, 0x2C, 0xC5, 0xA2, 0x67, 0x90, 0x67, -0x00, 0x18, 0x12, 0xD3, 0x04, 0x95, 0x90, 0x67, -0x00, 0x18, 0x21, 0xD3, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF2, 0x50, 0x9A, 0x06, 0x95, 0x00, 0x6C, -0x27, 0x6E, 0x40, 0xEA, 0x1D, 0x10, 0x30, 0xF0, +0x4F, 0xEA, 0x01, 0x6D, 0x6C, 0xEA, 0x23, 0xF3, +0x4C, 0xC6, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, +0x40, 0x9A, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, +0x01, 0x6B, 0xAC, 0xEA, 0x6E, 0xEA, 0x01, 0x5A, +0x58, 0x67, 0x05, 0x5C, 0x48, 0x32, 0x03, 0x61, +0x01, 0x6A, 0x4B, 0xEA, 0x20, 0xE8, 0x30, 0xF0, +0x20, 0x6B, 0xC2, 0xF5, 0xA0, 0x9B, 0x30, 0xF0, +0x20, 0x6E, 0xC2, 0xF5, 0xC4, 0x9E, 0x60, 0x9D, +0x00, 0xF7, 0x80, 0x34, 0xCC, 0xEB, 0x6D, 0xEC, +0x80, 0xDD, 0x1F, 0xF7, 0x00, 0x6B, 0x60, 0xF5, +0x80, 0x42, 0x8C, 0xEB, 0x02, 0xF0, 0x00, 0x73, +0x01, 0x60, 0x09, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF5, 0x68, 0x9B, 0x60, 0xF5, 0x00, 0x4A, +0x69, 0xE2, 0x40, 0x9A, 0x20, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF5, 0x4C, 0x9A, 0x51, 0xE4, +0x40, 0x9C, 0x20, 0xE8, 0xFB, 0x63, 0x09, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0x32, 0x6B, 0xAC, 0xEA, +0xBD, 0x67, 0x70, 0xC5, 0x02, 0x5C, 0x02, 0x6B, +0x6F, 0xCD, 0x92, 0xC5, 0x02, 0x60, 0x53, 0xC5, +0x04, 0x10, 0x01, 0x6A, 0x4B, 0xEA, 0x7D, 0x67, +0x53, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, +0x05, 0x63, 0x00, 0xEF, 0xFF, 0x6B, 0x6C, 0xEC, +0x01, 0x6A, 0x8E, 0xEA, 0x01, 0x5A, 0x58, 0x67, +0x6C, 0xEA, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xEC, +0x01, 0x74, 0x0C, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF5, 0x70, 0x9B, 0x10, 0x6C, 0x75, 0xE5, +0x60, 0xA5, 0x4C, 0xEB, 0x8D, 0xEB, 0x4C, 0xEB, +0x60, 0xC5, 0x20, 0xE8, 0x09, 0x2C, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF5, 0x50, 0x9A, 0x55, 0xE5, +0x60, 0xA5, 0xEF, 0x6A, 0x6C, 0xEA, 0x40, 0xC5, +0x20, 0xE8, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0xFF, 0x6A, 0xC2, 0xF5, 0x74, 0x9B, 0x4C, 0xEE, +0x4C, 0xEF, 0x05, 0xD6, 0x04, 0xD7, 0x60, 0xA3, +0xFF, 0xF7, 0x1F, 0x68, 0x25, 0x67, 0x4C, 0xEB, +0x72, 0x33, 0x4C, 0xEB, 0x8C, 0xE8, 0x4C, 0xE9, +0x3C, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, +0x78, 0x9B, 0x00, 0x6C, 0xFF, 0x6D, 0x60, 0xA3, +0x26, 0x6E, 0x6C, 0xEA, 0x06, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, +0x40, 0xEA, 0x01, 0x72, 0x1D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x05, 0x96, 0xA0, 0xF2, 0x54, 0x9A, 0x04, 0x6F, 0x90, 0x67, 0x01, 0x6D, 0x40, 0xEA, 0x02, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x96, 0x40, 0xF4, 0x58, 0x9A, 0xB0, 0x67, 0x91, 0x67, -0x40, 0xEA, 0x91, 0x67, 0x00, 0x18, 0x2C, 0xC5, -0xA2, 0x67, 0x90, 0x67, 0x00, 0x18, 0x12, 0xD3, -0x04, 0x95, 0x90, 0x67, 0x00, 0x18, 0x21, 0xD3, -0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, 0x54, 0x9A, -0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, -0x0E, 0x90, 0x24, 0x67, 0x4C, 0xE9, 0x03, 0x6B, -0x4C, 0xEF, 0x2C, 0xEB, 0x00, 0x6A, 0x0B, 0xD5, -0x0C, 0xD6, 0x04, 0xD7, 0x40, 0xC8, 0x00, 0x6A, -0x0A, 0x23, 0x28, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, -0x40, 0xA8, 0x01, 0x4A, 0x40, 0xC8, 0x1F, 0xF7, -0x00, 0x6A, 0x2C, 0xEA, 0x02, 0xF0, 0x00, 0x72, -0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xC2, 0xF5, 0x44, 0x9A, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xC2, 0xF5, 0x48, 0x9A, 0x49, 0xE1, -0x0B, 0x93, 0x40, 0x9A, 0x6C, 0xEA, 0x0C, 0x93, -0x6E, 0xEA, 0x04, 0x22, 0x40, 0xA8, 0x04, 0x93, -0x63, 0xEA, 0xDC, 0x61, 0x40, 0xA8, 0x04, 0x93, -0x63, 0xEA, 0x58, 0x67, 0x09, 0x97, 0x08, 0x91, -0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFF, 0x6A, 0xA0, 0x35, 0x4C, 0xEC, 0xA0, 0x35, -0xCC, 0xEA, 0x4D, 0xED, 0x05, 0x2C, 0x30, 0xF0, -0x20, 0x6A, 0x82, 0xF6, 0x4C, 0x9A, 0x04, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, 0x50, 0x9A, -0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF6, 0x94, 0x9B, -0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF6, 0x78, 0x9B, -0xAD, 0xEA, 0x40, 0xDC, 0x4C, 0xEB, 0x30, 0xF0, -0x20, 0x6A, 0x82, 0xF6, 0x5C, 0x9A, 0x60, 0xDC, -0x00, 0x6B, 0x60, 0xC2, 0x20, 0xE8, 0x00, 0x65, -0xFF, 0x6A, 0xFF, 0xF7, 0x1F, 0x6B, 0x8C, 0xEA, -0xAC, 0xEB, 0x05, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF5, 0x54, 0x9A, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xA2, 0xF6, 0x40, 0x9A, 0x60, 0x33, -0x60, 0x33, 0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, -0x82, 0xF6, 0x54, 0x9A, 0x00, 0x6C, 0x60, 0xDA, -0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF6, 0x44, 0x9A, -0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF6, 0x7C, 0x9B, -0x40, 0xA2, 0x80, 0xC3, 0xFF, 0x6B, 0x6C, 0xEA, -0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF6, -0x68, 0x9B, 0xFF, 0x6A, 0xCC, 0xEA, 0x6D, 0xEA, -0xE0, 0xF1, 0x1F, 0x6B, 0xAC, 0xEB, 0x60, 0x33, -0x60, 0x33, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x82, 0xF6, 0x14, 0x9B, 0x01, 0x6C, 0x40, 0xD8, +0x40, 0xEA, 0x91, 0x67, 0x00, 0x18, 0x21, 0xC4, +0xA2, 0x67, 0x90, 0x67, 0x00, 0x18, 0x1A, 0xD2, +0x04, 0x95, 0x90, 0x67, 0x00, 0x18, 0x29, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, +0x06, 0x95, 0x00, 0x6C, 0x27, 0x6E, 0x40, 0xEA, +0x1D, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x05, 0x96, +0xA0, 0xF2, 0x54, 0x9A, 0x04, 0x6F, 0x90, 0x67, +0x01, 0x6D, 0x40, 0xEA, 0x02, 0x67, 0x30, 0xF0, +0x20, 0x6A, 0x04, 0x96, 0x40, 0xF4, 0x58, 0x9A, +0xB0, 0x67, 0x91, 0x67, 0x40, 0xEA, 0x91, 0x67, +0x00, 0x18, 0x21, 0xC4, 0xA2, 0x67, 0x90, 0x67, +0x00, 0x18, 0x1A, 0xD2, 0x04, 0x95, 0x90, 0x67, +0x00, 0x18, 0x29, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, 0x7C, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF5, 0x80, 0x9C, +0x40, 0x9B, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0xE2, 0xF5, 0x84, 0x9C, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x68, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF5, 0x8C, 0x9C, +0x40, 0x9B, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0xE2, 0xF5, 0x90, 0x9C, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x54, 0x9A, +0x01, 0x6B, 0x40, 0x9A, 0x80, 0xF5, 0x42, 0x32, +0x6E, 0xEA, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x80, 0xA4, 0x80, 0x18, +0x00, 0x00, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0xF7, 0x1F, 0x6A, 0x0E, 0x90, 0x24, 0x67, +0x4C, 0xE9, 0x03, 0x6B, 0x4C, 0xEF, 0x2C, 0xEB, +0x00, 0x6A, 0x0B, 0xD5, 0x0C, 0xD6, 0x04, 0xD7, +0x40, 0xC8, 0x00, 0x6A, 0x0A, 0x23, 0x28, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, -0x40, 0xEA, 0x00, 0x6A, 0x40, 0xD8, 0x05, 0x97, -0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xE0, 0xF1, 0x1F, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0xAC, 0xEA, 0xA2, 0xF6, 0x6C, 0x9B, 0x40, 0x32, -0x40, 0x32, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x82, 0xF6, 0x14, 0x4B, 0x60, 0x9B, 0x30, 0xF0, -0x20, 0x68, 0x01, 0x6C, 0x40, 0xDB, 0x80, 0xF3, -0x4C, 0x98, 0xFF, 0x69, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xA2, 0xF6, 0x44, 0x9A, 0x01, 0x6C, -0x40, 0xA2, 0x4C, 0xE9, 0x80, 0xF3, 0x4C, 0x98, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF6, -0x14, 0x4C, 0x80, 0x9C, 0x00, 0x6A, 0x40, 0xDC, -0x07, 0x97, 0x51, 0x67, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6B, -0xA2, 0xF6, 0xD0, 0x9B, 0xFF, 0x6A, 0x04, 0x6D, -0x60, 0xA6, 0x4C, 0xEC, 0x4C, 0xEB, 0xAD, 0xEB, -0x4C, 0xEB, 0x60, 0xC6, 0x11, 0x24, 0x30, 0xF0, -0x20, 0x6B, 0xA2, 0xF6, 0x94, 0x9B, 0x60, 0xA4, -0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x30, 0xF0, -0x20, 0x6A, 0x60, 0xC4, 0x45, 0xF7, 0x18, 0x4A, -0x00, 0x6B, 0xE2, 0xF5, 0x6D, 0xC2, 0x0D, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF6, 0x74, 0x9A, -0xFB, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, -0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x48, 0xF5, -0x65, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF6, -0x70, 0x9A, 0xFB, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, -0x40, 0xC3, 0x20, 0xE8, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x0E, 0x92, 0x0F, 0x91, -0x04, 0x67, 0x04, 0xD2, 0x04, 0x93, 0xFF, 0x6A, -0x4C, 0xE8, 0x4C, 0xEB, 0x4C, 0xE9, 0x30, 0xF0, -0x20, 0x6A, 0xE0, 0xF2, 0x5C, 0x9A, 0x0B, 0xD5, -0x0C, 0xD6, 0x0D, 0xD7, 0x04, 0xD3, 0x90, 0x67, -0x40, 0xEA, 0x80, 0xF0, 0x07, 0x22, 0x06, 0x58, -0x80, 0xF0, 0x04, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x08, 0x30, 0x42, 0xF1, 0x0C, 0x4A, 0x09, 0xE2, -0x40, 0x9A, 0x00, 0xEA, 0x02, 0xF2, 0x10, 0x6A, -0x0E, 0x10, 0x02, 0xF2, 0x00, 0x6A, 0x0B, 0x10, -0x22, 0xF2, 0x00, 0x6A, 0x08, 0x10, 0x22, 0xF2, -0x10, 0x6A, 0x05, 0x10, 0x42, 0xF2, 0x00, 0x6A, -0x02, 0x10, 0x42, 0xF2, 0x10, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x0D, 0x94, 0x42, 0xF6, 0x64, 0x9B, -0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0xA2, 0xF6, -0x98, 0x9C, 0x8D, 0xEB, 0x06, 0x21, 0x30, 0xF0, -0x20, 0x6C, 0xA2, 0xF6, 0x9C, 0x9C, 0x6D, 0xEC, -0x05, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF6, -0x80, 0x9C, 0x6C, 0xEC, 0x04, 0x96, 0x06, 0x26, -0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF6, 0x6C, 0x9B, -0x8D, 0xEB, 0x05, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF6, 0x64, 0x9B, 0x8C, 0xEB, 0x1F, 0xF7, -0x00, 0x6C, 0x4C, 0xEC, 0x02, 0xF0, 0x00, 0x74, -0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, -0xC2, 0xF5, 0xA4, 0x9C, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6C, 0xC2, 0xF5, 0xA8, 0x9C, 0x30, 0xF0, -0x20, 0x6C, 0x0B, 0x96, 0xC2, 0xF6, 0x88, 0x9C, -0xB5, 0xE2, 0xCC, 0xEC, 0x80, 0xDD, 0x84, 0x42, +0x0A, 0x6C, 0x40, 0xEA, 0x40, 0xA8, 0x01, 0x4A, +0x40, 0xC8, 0x1F, 0xF7, 0x00, 0x6A, 0x2C, 0xEA, +0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, 0x48, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, +0x4C, 0x9A, 0x49, 0xE1, 0x0B, 0x93, 0x40, 0x9A, +0x6C, 0xEA, 0x0C, 0x93, 0x6E, 0xEA, 0x04, 0x22, +0x40, 0xA8, 0x04, 0x93, 0x63, 0xEA, 0xDC, 0x61, +0x40, 0xA8, 0x04, 0x93, 0x63, 0xEA, 0x58, 0x67, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0xA0, 0x35, +0x4C, 0xEC, 0xA0, 0x35, 0xCC, 0xEA, 0x4D, 0xED, +0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF6, +0x54, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA2, 0xF6, 0x58, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0xA2, 0xF6, 0x9C, 0x9B, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF6, 0x60, 0x9B, 0xAD, 0xEA, 0x40, 0xDC, +0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, +0x44, 0x9A, 0x60, 0xDC, 0x00, 0x6B, 0x60, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0xFF, 0xF7, +0x1F, 0x6B, 0x8C, 0xEA, 0xAC, 0xEB, 0x05, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, 0x40, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, +0x48, 0x9A, 0x60, 0x33, 0x60, 0x33, 0x4D, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF6, 0x5C, 0x9A, +0x00, 0x6C, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0xC2, 0xF6, 0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF6, 0x64, 0x9B, 0x40, 0xA2, 0x80, 0xC3, +0xFF, 0x6B, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0xC2, 0xF6, 0x70, 0x9B, 0xFF, 0x6A, +0xCC, 0xEA, 0x6D, 0xEA, 0xE0, 0xF1, 0x1F, 0x6B, +0xAC, 0xEB, 0x60, 0x33, 0x60, 0x33, 0x6D, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF6, 0x1C, 0x9B, +0x01, 0x6C, 0x40, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x40, 0xEA, 0x00, 0x6A, +0x40, 0xD8, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xE0, 0xF1, 0x1F, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xAC, 0xEA, 0xC2, 0xF6, +0x74, 0x9B, 0x40, 0x32, 0x40, 0x32, 0x6D, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF6, 0x1C, 0x4B, +0x60, 0x9B, 0x30, 0xF0, 0x20, 0x68, 0x01, 0x6C, +0x40, 0xDB, 0x80, 0xF3, 0x4C, 0x98, 0xFF, 0x69, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, +0x4C, 0x9A, 0x01, 0x6C, 0x40, 0xA2, 0x4C, 0xE9, +0x80, 0xF3, 0x4C, 0x98, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6C, 0xA2, 0xF6, 0x1C, 0x4C, 0x80, 0x9C, +0x00, 0x6A, 0x40, 0xDC, 0x07, 0x97, 0x51, 0x67, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, 0xD8, 0x9B, +0xFF, 0x6A, 0x04, 0x6D, 0x60, 0xA6, 0x4C, 0xEC, +0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC6, +0x11, 0x24, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, +0x9C, 0x9B, 0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, +0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xC4, +0x85, 0xF7, 0x08, 0x4A, 0x00, 0x6B, 0xE2, 0xF5, +0x6D, 0xC2, 0x0D, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xC2, 0xF6, 0x7C, 0x9A, 0xFB, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x68, 0xF5, 0x75, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF6, 0x78, 0x9A, 0xFB, 0x6A, +0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x0E, 0x92, 0x0F, 0x91, 0x04, 0x67, 0x04, 0xD2, +0x04, 0x93, 0xFF, 0x6A, 0x4C, 0xE8, 0x4C, 0xEB, +0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, +0x5C, 0x9A, 0x0B, 0xD5, 0x0C, 0xD6, 0x0D, 0xD7, +0x04, 0xD3, 0x90, 0x67, 0x40, 0xEA, 0x80, 0xF0, +0x07, 0x22, 0x06, 0x58, 0x80, 0xF0, 0x04, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x08, 0x30, 0x42, 0xF1, +0x0C, 0x4A, 0x09, 0xE2, 0x40, 0x9A, 0x00, 0xEA, +0x02, 0xF2, 0x10, 0x6A, 0x0E, 0x10, 0x02, 0xF2, +0x00, 0x6A, 0x0B, 0x10, 0x22, 0xF2, 0x00, 0x6A, +0x08, 0x10, 0x22, 0xF2, 0x10, 0x6A, 0x05, 0x10, +0x42, 0xF2, 0x00, 0x6A, 0x02, 0x10, 0x42, 0xF2, +0x10, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x0D, 0x94, +0x62, 0xF6, 0x6C, 0x9B, 0x8C, 0xEB, 0x30, 0xF0, +0x20, 0x6C, 0x02, 0xF6, 0x80, 0x9C, 0x8D, 0xEB, +0x06, 0x21, 0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF6, +0x80, 0x9C, 0x6D, 0xEC, 0x05, 0x10, 0x30, 0xF0, +0x20, 0x6C, 0xE2, 0xF6, 0x84, 0x9C, 0x6C, 0xEC, +0x04, 0x96, 0x06, 0x26, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF6, 0x74, 0x9B, 0x8D, 0xEB, 0x05, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF6, 0x68, 0x9B, +0x8C, 0xEB, 0x1F, 0xF7, 0x00, 0x6C, 0x4C, 0xEC, +0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, +0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF5, 0xA8, 0x9C, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF5, +0xAC, 0x9C, 0x30, 0xF0, 0x20, 0x6C, 0x0B, 0x96, +0xE2, 0xF6, 0x8C, 0x9C, 0xB5, 0xE2, 0xCC, 0xEC, +0x80, 0xDD, 0x84, 0x42, 0x1F, 0xF7, 0x00, 0x6D, +0xAC, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, +0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF6, +0xB0, 0x9C, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, +0xE2, 0xF6, 0xB4, 0x9C, 0x30, 0xF0, 0x20, 0x6C, +0x0C, 0x96, 0xE2, 0xF6, 0x8C, 0x9C, 0xB5, 0xE2, +0xCC, 0xEC, 0x80, 0xDD, 0x87, 0x42, 0x01, 0x4C, 0x1F, 0xF7, 0x00, 0x6D, 0xAC, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, -0x20, 0x6C, 0xC2, 0xF6, 0xAC, 0x9C, 0x04, 0x10, -0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF6, 0xB0, 0x9C, -0x30, 0xF0, 0x20, 0x6C, 0x0C, 0x96, 0xC2, 0xF6, -0x88, 0x9C, 0xB5, 0xE2, 0xCC, 0xEC, 0x80, 0xDD, -0x87, 0x42, 0x01, 0x4C, 0x1F, 0xF7, 0x00, 0x6D, -0xAC, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, -0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF6, -0x94, 0x9C, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, -0xC2, 0xF6, 0x98, 0x9C, 0x89, 0xE2, 0x60, 0xDA, -0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0x20, 0x6C, 0xE2, 0xF6, 0x98, 0x9C, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF6, 0x9C, 0x9C, +0x89, 0xE2, 0x60, 0xDA, 0x01, 0x6A, 0x01, 0x10, +0x00, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x01, 0x68, 0x04, 0xEC, +0x82, 0xF3, 0x08, 0x69, 0x1C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, +0xFF, 0x49, 0x40, 0xEA, 0x14, 0x29, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF6, 0x78, 0x9A, 0x08, 0xF0, +0x00, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, +0x63, 0xF3, 0x64, 0x9A, 0x8D, 0xEB, 0x63, 0xF3, +0x64, 0xDA, 0x00, 0x6A, 0x0B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x02, 0xF7, 0x40, 0x9A, 0x60, 0xAA, +0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, 0x0C, 0xEA, +0xDA, 0x2A, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x04, 0xF7, +0x10, 0x68, 0x1C, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x05, 0x6C, 0xFF, 0x48, +0x40, 0xEA, 0x14, 0x28, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF6, 0x78, 0x9A, 0x08, 0xF0, 0x00, 0x6C, +0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0x63, 0xF3, +0x64, 0x9A, 0x8D, 0xEB, 0x63, 0xF3, 0x64, 0xDA, +0x00, 0x6A, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF7, 0x40, 0x9A, 0x60, 0xAA, 0x3F, 0x6A, +0x6C, 0xEA, 0xDC, 0x2A, 0x01, 0x6A, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF7, 0x40, 0x9A, +0x40, 0xAA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF7, 0x40, 0x9A, 0x40, 0xAA, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x01, 0x68, 0x04, 0xEC, 0x82, 0xF3, 0x08, 0x69, -0x1C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x01, 0x6C, 0xFF, 0x49, 0x40, 0xEA, -0x14, 0x29, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, -0x70, 0x9A, 0x08, 0xF0, 0x00, 0x6C, 0x40, 0x9B, -0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0x63, 0xF3, 0x64, 0x9A, -0x8D, 0xEB, 0x63, 0xF3, 0x64, 0xDA, 0x00, 0x6A, -0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, -0x5C, 0x9A, 0x60, 0xAA, 0xFF, 0xF7, 0x1F, 0x6A, -0x6C, 0xEA, 0x0C, 0xEA, 0xDA, 0x2A, 0x01, 0x6A, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x04, 0xF7, 0x10, 0x68, 0x1C, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, -0x05, 0x6C, 0xFF, 0x48, 0x40, 0xEA, 0x14, 0x28, -0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x70, 0x9A, -0x08, 0xF0, 0x00, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0x63, 0xF3, 0x64, 0x9A, 0x8D, 0xEB, -0x63, 0xF3, 0x64, 0xDA, 0x00, 0x6A, 0x09, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, 0x5C, 0x9A, -0x60, 0xAA, 0x3F, 0x6A, 0x6C, 0xEA, 0xDC, 0x2A, -0x01, 0x6A, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0xC2, 0xF6, 0x5C, 0x9A, 0x40, 0xAA, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, 0x5C, 0x9A, -0x40, 0xAA, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, 0x30, 0x9A, +0x10, 0xF0, 0x23, 0x68, 0x82, 0xF6, 0x01, 0x48, +0x00, 0xD9, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x01, 0xF0, 0x54, 0x9A, 0x25, 0xF6, +0x94, 0x9B, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, +0x01, 0x4A, 0x03, 0x22, 0x01, 0x48, 0x00, 0xD9, +0xE7, 0x17, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, 0x30, 0x9A, 0x10, 0xF0, 0x23, 0x68, -0x43, 0xF2, 0x05, 0x48, 0x00, 0xD9, 0x30, 0xF0, +0xC2, 0xF6, 0x05, 0x48, 0x00, 0xD9, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x01, 0xF0, -0x54, 0x9A, 0x05, 0xF6, 0x84, 0x9B, 0x01, 0x6D, +0x54, 0x9A, 0x25, 0xF6, 0x90, 0x9B, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, 0x01, 0x4A, 0x03, 0x22, 0x01, 0x48, 0x00, 0xD9, 0xE7, 0x17, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0x82, 0xF5, 0x70, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0x02, 0xF7, 0x09, 0x4A, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x25, 0xF6, +0x9C, 0x9B, 0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0xA0, 0xF0, 0x84, 0x9A, +0x04, 0xF0, 0x00, 0x6B, 0x8C, 0xEB, 0x08, 0x23, +0x04, 0xF0, 0x01, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x80, 0x18, 0xC8, 0x00, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x25, 0xF6, 0x9C, 0x9B, 0xC5, 0xF5, 0x58, 0x9A, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, +0x70, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0x02, 0xF7, +0x0A, 0x4A, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x00, 0x69, 0x00, 0x68, +0x00, 0x6C, 0x00, 0x18, 0xC2, 0xC5, 0x01, 0x48, +0xFF, 0x6A, 0x4C, 0xE8, 0x0A, 0x70, 0xF8, 0x61, +0x01, 0x6B, 0x6E, 0xE9, 0x30, 0xF0, 0x20, 0x6B, +0x82, 0xF5, 0x70, 0x9B, 0x4C, 0xE9, 0x10, 0xF0, +0x23, 0x6A, 0x82, 0xF7, 0x05, 0x4A, 0x29, 0xE2, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0x25, 0xF6, 0x9C, 0x9B, 0x01, 0xF0, +0x48, 0x98, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, +0x80, 0x18, 0xDA, 0x02, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x25, 0xF6, 0x9C, 0x9B, +0xC5, 0xF5, 0x58, 0x9A, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x25, 0xF6, 0x9C, 0x9B, 0x01, 0xF0, +0x48, 0x98, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, +0xA0, 0xF0, 0x84, 0x9A, 0x02, 0x6B, 0x8C, 0xEB, +0x09, 0x23, 0x03, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x80, 0x18, 0x23, 0x17, +0x80, 0x18, 0x79, 0x17, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x6A, 0x25, 0xF6, 0x9C, 0x98, +0xC5, 0xF5, 0x58, 0x9A, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x25, 0xF6, 0x9C, 0x98, 0x01, 0xF0, +0x48, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, +0xA0, 0xF0, 0x84, 0x9A, 0x04, 0x6B, 0x8C, 0xEB, +0x09, 0x23, 0x05, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x00, 0x18, 0x08, 0xC8, +0x00, 0x18, 0x90, 0xC8, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x6A, 0x25, 0xF6, 0x9C, 0x98, +0xC5, 0xF5, 0x58, 0x9A, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x25, 0xF6, 0x9C, 0x98, 0x01, 0xF0, +0x48, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, +0xA0, 0xF0, 0x84, 0x9A, 0x10, 0x6B, 0x8C, 0xEB, +0x07, 0x23, 0x11, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x80, 0x18, 0x85, 0x4C, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6A, +0x25, 0xF6, 0x9C, 0x98, 0xC5, 0xF5, 0x58, 0x9A, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x25, 0xF6, +0x9C, 0x98, 0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0xA0, 0xF0, 0x84, 0x9A, +0x02, 0xF0, 0x00, 0x6B, 0x8C, 0xEB, 0x08, 0x23, +0x02, 0xF0, 0x01, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x00, 0x18, 0x25, 0xCD, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6A, +0x25, 0xF6, 0x9C, 0x98, 0xC5, 0xF5, 0x58, 0x9A, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x25, 0xF6, +0x9C, 0x98, 0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF6, 0x7C, 0x9B, 0xA0, 0xF0, 0x84, 0x9A, +0x8C, 0xEB, 0x09, 0x23, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF7, 0x70, 0x9B, 0x8C, 0xEB, 0xA0, 0xF0, +0x64, 0xDA, 0x80, 0x18, 0x49, 0x16, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x25, 0xF6, +0x9C, 0x98, 0xC5, 0xF5, 0x58, 0x9A, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x25, 0xF6, 0x9C, 0x98, +0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0xE3, 0xF1, 0x14, 0xA2, 0x01, 0x6B, +0x04, 0xD2, 0x6E, 0xE8, 0x06, 0x28, 0x0B, 0x6C, +0x80, 0x18, 0x23, 0x5B, 0x04, 0x92, 0xE3, 0xF1, +0x14, 0xC2, 0x80, 0x18, 0x37, 0x5B, 0x80, 0x18, +0x51, 0x5B, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x25, 0xF6, 0x9C, 0x9B, 0xC5, 0xF5, +0x58, 0x9A, 0x40, 0xEA, 0xF8, 0x16, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, 0x30, 0x9A, -0x10, 0xF0, 0x23, 0x68, 0x83, 0xF2, 0x09, 0x48, -0x00, 0xD9, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0x01, 0xF0, 0x54, 0x9A, 0x05, 0xF6, -0x80, 0x9B, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, -0x01, 0x4A, 0x03, 0x22, 0x01, 0x48, 0x00, 0xD9, -0xE7, 0x17, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, 0x70, 0x9B, -0x10, 0xF0, 0x23, 0x6A, 0xC3, 0xF2, 0x0D, 0x4A, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0x05, 0xF6, 0x8C, 0x9B, 0x01, 0xF0, -0x48, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0xA0, 0xF0, 0x84, 0x9A, 0x04, 0xF0, 0x00, 0x6B, -0x8C, 0xEB, 0x08, 0x23, 0x04, 0xF0, 0x01, 0x6B, -0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, -0x80, 0x18, 0x9C, 0x00, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF6, 0x8C, 0x9B, -0xA5, 0xF5, 0x50, 0x9A, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x82, 0xF5, 0x70, 0x9B, 0x10, 0xF0, -0x23, 0x6A, 0xC3, 0xF2, 0x0E, 0x4A, 0x40, 0xDB, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x00, 0x69, 0x00, 0x68, 0x00, 0x6C, 0x00, 0x18, -0xB3, 0xC6, 0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, -0x0A, 0x70, 0xF8, 0x61, 0x01, 0x6B, 0x6E, 0xE9, -0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, 0x70, 0x9B, -0x4C, 0xE9, 0x10, 0xF0, 0x23, 0x6A, 0x43, 0xF3, -0x09, 0x4A, 0x29, 0xE2, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0x05, 0xF6, -0x8C, 0x9B, 0x01, 0xF0, 0x48, 0x98, 0x01, 0x6D, -0xAB, 0xED, 0x40, 0xEA, 0x80, 0x18, 0xAE, 0x02, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, 0x10, 0x4A, +0x40, 0x9A, 0x10, 0xF0, 0x23, 0x68, 0xA3, 0xF1, +0x01, 0x48, 0x00, 0xDA, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x01, 0x69, 0x01, 0xF0, +0x54, 0x9A, 0x25, 0xF6, 0x98, 0x9B, 0x2B, 0xE9, +0xB1, 0x67, 0x40, 0xEA, 0x01, 0x4A, 0x0A, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF6, 0x5C, 0x9A, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0x00, 0x1C, 0xAC, 0x39, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0x05, 0xF6, 0x8C, 0x9B, 0xA5, 0xF5, 0x50, 0x9A, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x05, 0xF6, -0x8C, 0x9B, 0x01, 0xF0, 0x48, 0x98, 0x01, 0x6D, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0xA0, 0xF0, 0x84, 0x9A, -0x02, 0x6B, 0x8C, 0xEB, 0x09, 0x23, 0x03, 0x6B, -0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, -0x80, 0x18, 0x1F, 0x14, 0x80, 0x18, 0x75, 0x14, -0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6A, -0x05, 0xF6, 0x8C, 0x98, 0xA5, 0xF5, 0x50, 0x9A, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF6, -0x8C, 0x98, 0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0xA0, 0xF0, 0x84, 0x9A, -0x04, 0x6B, 0x8C, 0xEB, 0x09, 0x23, 0x05, 0x6B, -0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, -0x00, 0x18, 0x00, 0xC9, 0x00, 0x18, 0x88, 0xC9, -0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6A, -0x05, 0xF6, 0x8C, 0x98, 0xA5, 0xF5, 0x50, 0x9A, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF6, -0x8C, 0x98, 0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0xA0, 0xF0, 0x84, 0x9A, -0x10, 0x6B, 0x8C, 0xEB, 0x07, 0x23, 0x11, 0x6B, -0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, -0x80, 0x18, 0x75, 0x4C, 0x30, 0xF0, 0x20, 0x68, -0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF6, 0x8C, 0x98, -0xA5, 0xF5, 0x50, 0x9A, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x05, 0xF6, 0x8C, 0x98, 0x01, 0xF0, -0x48, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0xA0, 0xF0, 0x84, 0x9A, 0x02, 0xF0, 0x00, 0x6B, -0x8C, 0xEB, 0x08, 0x23, 0x02, 0xF0, 0x01, 0x6B, -0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, -0x00, 0x18, 0x1D, 0xCE, 0x30, 0xF0, 0x20, 0x68, -0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF6, 0x8C, 0x98, -0xA5, 0xF5, 0x50, 0x9A, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x05, 0xF6, 0x8C, 0x98, 0x01, 0xF0, -0x48, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, 0x70, 0x9B, -0xA0, 0xF0, 0x84, 0x9A, 0x8C, 0xEB, 0x09, 0x23, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF6, 0x6C, 0x9B, -0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x80, 0x18, -0x45, 0x13, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, -0x20, 0x6A, 0x05, 0xF6, 0x8C, 0x98, 0xA5, 0xF5, -0x50, 0x9A, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x05, 0xF6, 0x8C, 0x98, 0x01, 0xF0, 0x48, 0x9A, -0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, 0xE3, 0xF1, -0x14, 0xA2, 0x01, 0x6B, 0x04, 0xD2, 0x6E, 0xE8, -0x06, 0x28, 0x0B, 0x6C, 0x80, 0x18, 0x9D, 0x5C, -0x04, 0x92, 0xE3, 0xF1, 0x14, 0xC2, 0x80, 0x18, -0xB1, 0x5C, 0x80, 0x18, 0xCB, 0x5C, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF6, -0x8C, 0x9B, 0xA5, 0xF5, 0x50, 0x9A, 0x40, 0xEA, -0xF8, 0x16, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x82, 0xF5, 0x10, 0x4A, 0x40, 0x9A, 0x10, 0xF0, -0x23, 0x68, 0x63, 0xF5, 0x05, 0x48, 0x00, 0xDA, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0x01, 0x69, 0x01, 0xF0, 0x54, 0x9A, 0x05, 0xF6, -0x88, 0x9B, 0x2B, 0xE9, 0xB1, 0x67, 0x40, 0xEA, -0x01, 0x4A, 0x0A, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xE0, 0xF6, 0x5C, 0x9A, 0x40, 0xEA, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0x00, 0x1C, 0xAC, 0x39, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF6, 0x8C, 0x9B, -0x01, 0xF0, 0x48, 0x9A, 0xB1, 0x67, 0x01, 0x48, -0x40, 0xEA, 0x00, 0x18, 0x02, 0xC8, 0x00, 0x18, -0xFE, 0xC7, 0x00, 0x18, 0xFA, 0xC7, 0x00, 0x18, -0xF6, 0xC7, 0x00, 0x18, 0xF2, 0xC7, 0x00, 0x18, -0xEE, 0xC7, 0xFC, 0x6C, 0x00, 0x18, 0xFA, 0xC2, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0x05, 0xF6, 0x8C, 0x9B, 0xA5, 0xF5, 0x50, 0x9A, -0x40, 0xEA, 0x00, 0x1C, 0xAB, 0x39, 0x30, 0xF0, -0x20, 0x6A, 0x82, 0xF5, 0x10, 0x4A, 0x40, 0x9A, -0x00, 0xDA, 0xB0, 0x17, 0xFD, 0x63, 0x05, 0x62, +0x25, 0xF6, 0x9C, 0x9B, 0x01, 0xF0, 0x48, 0x9A, +0xB1, 0x67, 0x01, 0x48, 0x40, 0xEA, 0x00, 0x18, +0x12, 0xC7, 0x00, 0x18, 0x0E, 0xC7, 0x00, 0x18, +0x0A, 0xC7, 0x00, 0x18, 0x06, 0xC7, 0x00, 0x18, +0x02, 0xC7, 0x00, 0x18, 0xFE, 0xC6, 0xFC, 0x6C, +0x00, 0x18, 0xEF, 0xC1, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x25, 0xF6, 0x9C, 0x9B, +0xC5, 0xF5, 0x58, 0x9A, 0x40, 0xEA, 0x00, 0x1C, +0xAB, 0x39, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, +0x10, 0x4A, 0x40, 0x9A, 0x00, 0xDA, 0xB0, 0x17, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x44, 0x9A, 0x01, 0x72, 0x0C, 0x61, 0xFC, 0x6C, 0x00, 0x18, -0xFF, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0x05, 0xF6, -0x88, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, +0xF4, 0xC1, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0x25, 0xF6, +0x98, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x44, 0x9A, 0x01, 0x72, 0x0C, 0x61, 0xFC, 0x6C, 0x00, 0x18, -0xFF, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0x05, 0xF6, -0x88, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, +0xF4, 0xC1, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0x25, 0xF6, +0x98, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x44, 0x9A, 0x01, 0x72, 0x0C, 0x61, 0xFC, 0x6C, 0x00, 0x18, -0xFF, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0x05, 0xF6, -0x88, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, +0xF4, 0xC1, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0x25, 0xF6, +0x98, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x44, 0x9A, 0x01, 0x72, 0x0E, 0x61, 0xFC, 0x6C, 0x00, 0x18, -0xFF, 0xC2, 0x00, 0x18, 0x53, 0xCB, 0x30, 0xF0, +0xF4, 0xC1, 0x00, 0x18, 0x5B, 0xCA, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, -0x58, 0x9A, 0x05, 0xF6, 0x88, 0x9B, 0x40, 0xEA, +0x58, 0x9A, 0x25, 0xF6, 0x98, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x44, 0x9A, 0x01, 0x72, 0x0E, 0x61, -0xFC, 0x6C, 0x00, 0x18, 0xFF, 0xC2, 0x00, 0x18, -0x23, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0x05, 0xF6, -0x88, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, +0xFC, 0x6C, 0x00, 0x18, 0xF4, 0xC1, 0x00, 0x18, +0x2B, 0xCA, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0x25, 0xF6, +0x98, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x44, 0x9A, 0x01, 0x72, 0x1D, 0x61, 0x30, 0xF0, -0x20, 0x68, 0xFC, 0x6C, 0x45, 0xF7, 0x18, 0x48, -0x00, 0x18, 0xFF, 0xC2, 0x00, 0x18, 0x2A, 0xCB, +0x20, 0x68, 0xFC, 0x6C, 0x85, 0xF7, 0x08, 0x48, +0x00, 0x18, 0xF4, 0xC1, 0x00, 0x18, 0x32, 0xCA, 0x48, 0x98, 0x20, 0x6B, 0x6C, 0xEA, 0x07, 0x22, -0x00, 0x18, 0x33, 0xCC, 0x48, 0x98, 0x21, 0x6B, +0x00, 0x18, 0x3B, 0xCB, 0x48, 0x98, 0x21, 0x6B, 0x6B, 0xEB, 0x6C, 0xEA, 0x48, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, -0x58, 0x9A, 0x05, 0xF6, 0x88, 0x9B, 0x40, 0xEA, +0x58, 0x9A, 0x25, 0xF6, 0x98, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x44, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, 0x50, 0x9A, 0xE1, 0xF7, 0x1F, 0x6B, 0x40, 0xAA, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF6, 0x50, 0x9A, 0x60, 0x9A, 0xFF, 0xF7, +0x02, 0xF7, 0x54, 0x9A, 0x60, 0x9A, 0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x4C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, 0x58, 0x9A, 0x01, 0x6B, 0x40, 0x9A, 0x42, 0x32, 0x52, 0x32, 0x6E, 0xEA, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF6, 0x60, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF6, 0x68, 0x9B, 0x44, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x60, 0x9B, -0x42, 0xF6, 0x84, 0x9C, 0x8C, 0xEB, 0x43, 0xEB, +0x62, 0xF6, 0x8C, 0x9C, 0x8C, 0xEB, 0x43, 0xEB, 0x02, 0x60, 0x6F, 0xEB, 0x69, 0xE2, 0x20, 0xE8, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x1B, 0xD0, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x23, 0xCF, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x15, 0xD0, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x1D, 0xCF, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x67, 0xD0, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x6F, 0xCF, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x0B, 0xD0, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x13, 0xCF, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0xE0, 0xD0, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0xE8, 0xCF, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x05, 0xD0, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x0D, 0xCF, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x03, 0x6F, 0x8C, 0xEF, 0x64, 0x67, 0x46, 0x67, 0x04, 0x27, 0x0B, 0x10, 0xA0, 0xDB, 0xFC, 0x4A, @@ -2542,103 +2427,99 @@ u8 array_mp_8822c_fw_ap[] = { 0x4B, 0xE3, 0x20, 0xE8, 0x01, 0x4C, 0x01, 0x4D, 0xF6, 0x2E, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, 0x06, 0x2C, 0x64, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xE5, 0xF5, 0x60, 0xDA, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xE5, 0xF5, 0x80, 0xDA, 0x30, 0xF0, -0x20, 0x6A, 0xE5, 0xF5, 0x40, 0x9A, 0x32, 0x72, -0x3A, 0x60, 0x33, 0x5A, 0x0C, 0x60, 0x14, 0x72, -0x1E, 0x60, 0x15, 0x5A, 0x03, 0x60, 0x0A, 0x72, -0x12, 0x60, 0x20, 0xE8, 0x19, 0x72, 0x1F, 0x60, +0x05, 0xF6, 0x6C, 0xDA, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x05, 0xF6, 0x8C, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x05, 0xF6, 0x4C, 0x9A, 0x32, 0x72, +0x2A, 0x60, 0x33, 0x5A, 0x0C, 0x60, 0x14, 0x72, +0x2E, 0x60, 0x15, 0x5A, 0x03, 0x60, 0x0A, 0x72, +0x12, 0x60, 0x20, 0xE8, 0x19, 0x72, 0x17, 0x60, 0x28, 0x72, 0x25, 0x60, 0x20, 0xE8, 0x64, 0x72, -0x3A, 0x60, 0x65, 0x5A, 0x03, 0x60, 0x50, 0x72, -0x2E, 0x60, 0x20, 0xE8, 0x78, 0x72, 0x3B, 0x60, -0xC8, 0x72, 0x41, 0x60, 0x20, 0xE8, 0x02, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0xE5, 0xF5, 0x64, 0xDA, -0xE0, 0xF7, 0x1E, 0x4B, 0x41, 0x10, 0x03, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0xE5, 0xF5, 0x64, 0xDA, -0xE1, 0xF3, 0x1D, 0x4B, 0x39, 0x10, 0x09, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0xE5, 0xF5, 0x64, 0xDA, -0xE4, 0xF3, 0x17, 0x4B, 0x31, 0x10, 0x05, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0xE5, 0xF5, 0x64, 0xDA, -0xE2, 0xF3, 0x1B, 0x4B, 0x29, 0x10, 0x11, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0xE5, 0xF5, 0x64, 0xDA, +0x2A, 0x60, 0x65, 0x5A, 0x03, 0x60, 0x50, 0x72, +0x1E, 0x60, 0x20, 0xE8, 0x78, 0x72, 0x2B, 0x60, +0xC8, 0x72, 0x31, 0x60, 0x20, 0xE8, 0x02, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF6, 0x70, 0xDA, +0xE0, 0xF7, 0x1E, 0x4B, 0x31, 0x10, 0x09, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF6, 0x70, 0xDA, +0xE4, 0xF3, 0x17, 0x4B, 0x29, 0x10, 0x11, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF6, 0x70, 0xDA, 0xE8, 0xF3, 0x0F, 0x4B, 0x21, 0x10, 0x0D, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0xE5, 0xF5, 0x64, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF6, 0x70, 0xDA, 0x06, 0xF4, 0x08, 0x4B, 0x19, 0x10, 0x22, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0xE5, 0xF5, 0x64, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF6, 0x70, 0xDA, 0x11, 0xF0, 0x00, 0x6B, 0x11, 0x10, 0x28, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0xE5, 0xF5, 0x64, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF6, 0x70, 0xDA, 0x14, 0xF0, 0x00, 0x6B, 0x09, 0x10, 0x43, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0xE5, 0xF5, 0x64, 0xDA, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, 0x74, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0xE5, 0xF5, 0x68, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF6, 0x70, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF7, 0x78, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF6, 0x74, 0xDA, 0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0xE5, 0xF5, 0x40, 0x9A, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0xE5, 0xF5, 0x48, 0x9A, +0x05, 0xF6, 0x4C, 0x9A, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF6, 0x54, 0x9A, 0xFF, 0x63, 0x58, 0xEC, 0x12, 0xEA, 0x00, 0xD2, 0x00, 0x92, 0xFF, 0x4A, 0x00, 0xD2, 0x00, 0x92, 0xFB, 0x2A, 0x01, 0x63, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0xE5, 0xF5, 0x44, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF6, 0x50, 0x9A, 0xFF, 0x63, 0x58, 0xEC, 0x12, 0xEA, 0x00, 0xD2, 0x00, 0x92, 0xFF, 0x4A, 0x00, 0xD2, 0x00, 0x92, 0xFB, 0x2A, 0x01, 0x63, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x29, 0xC8, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x39, 0xC7, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xED, -0x00, 0x18, 0x10, 0xC8, 0x05, 0x97, 0x00, 0x6A, +0x00, 0x18, 0x20, 0xC7, 0x05, 0x97, 0x00, 0x6A, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, 0x04, 0x67, 0x4C, 0xEE, -0x00, 0x18, 0x15, 0xC8, 0x50, 0x67, 0x05, 0x97, +0x00, 0x18, 0x25, 0xC7, 0x50, 0x67, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x00, 0x68, 0x20, 0x10, 0xE0, 0xF3, 0x08, 0x70, 0x13, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x70, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, 0x78, 0x9A, 0x80, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0x63, 0xF3, 0x64, 0x9A, 0x8D, 0xEB, 0x63, 0xF3, 0x64, 0xDA, 0x00, 0x6A, 0x13, 0x10, 0xFF, 0xF7, 0x1F, 0x6A, 0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, -0x50, 0x9A, 0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, +0x44, 0x9A, 0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, 0xD8, 0x2A, 0x01, 0x6A, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x6C, 0x83, 0xF1, 0x74, 0x9B, 0x83, 0xF1, -0x98, 0x9C, 0x6D, 0xE5, 0x91, 0xE5, 0x00, 0x6E, +0x20, 0x6C, 0xC3, 0xF1, 0x68, 0x9B, 0xC3, 0xF1, +0x8C, 0x9C, 0x6D, 0xE5, 0x91, 0xE5, 0x00, 0x6E, 0xC0, 0xDB, 0x04, 0x4B, 0x8A, 0xEB, 0xFB, 0x61, 0xE7, 0xF7, 0x1F, 0x6B, 0x4C, 0xEB, 0x30, 0xF0, -0x20, 0x6A, 0xA2, 0xF6, 0x58, 0x9A, 0x10, 0x6C, -0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, -0x54, 0x9A, 0x49, 0xE5, 0x60, 0xDA, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF1, 0x5C, 0x9A, 0xFF, 0x6B, +0x20, 0x6A, 0x02, 0xF6, 0x40, 0x9A, 0x10, 0x6C, +0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, +0x48, 0x9A, 0x49, 0xE5, 0x60, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF1, 0x50, 0x9A, 0xFF, 0x6B, 0x55, 0xE5, 0x40, 0xA5, 0x6C, 0xEA, 0x8D, 0xEA, 0x6C, 0xEA, 0x40, 0xC5, 0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0xE5, 0xF5, 0x6D, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF6, 0x79, 0xA2, 0x08, 0xD4, 0x30, 0xF0, 0x20, 0x69, 0x61, 0xC5, -0x01, 0x4B, 0xE5, 0xF5, 0x6D, 0xC2, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF1, 0x94, 0x9B, 0x08, 0x93, +0x01, 0x4B, 0x05, 0xF6, 0x79, 0xC2, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF1, 0x88, 0x9B, 0x08, 0x93, 0x80, 0xF2, 0x4C, 0x99, 0x02, 0x6E, 0x91, 0xE3, 0x05, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF1, 0x80, 0x9B, 0x08, 0x93, 0xCE, 0xA0, +0xC3, 0xF1, 0x94, 0x9B, 0x08, 0x93, 0xCE, 0xA0, 0x80, 0xF2, 0x4C, 0x99, 0xA2, 0x40, 0x91, 0xE3, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, 0x24, 0x67, 0x00, 0x18, -0x90, 0xC8, 0x00, 0x6B, 0x46, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x42, 0xF6, 0x40, 0x9A, 0xFF, 0xF7, +0x98, 0xC7, 0x00, 0x6B, 0x46, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF6, 0x48, 0x9A, 0xFF, 0xF7, 0x1F, 0x6E, 0xFF, 0x6F, 0x00, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0x42, 0xF6, 0x44, 0x9A, 0x10, 0x6C, +0x20, 0x6A, 0x62, 0xF6, 0x4C, 0x9A, 0x10, 0x6C, 0x8B, 0xEC, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0xA1, 0x40, 0xA3, 0xF1, 0x44, 0x9A, 0x65, 0x67, +0xA1, 0x40, 0xC3, 0xF1, 0x58, 0x9A, 0x65, 0x67, 0xCC, 0xEB, 0x60, 0xCA, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF1, 0x48, 0x9A, 0x60, 0xA2, 0xFA, 0x65, +0xC3, 0xF1, 0x5C, 0x9A, 0x60, 0xA2, 0xFA, 0x65, 0xA2, 0x32, 0xEC, 0xEB, 0x8C, 0xEB, 0x42, 0x32, 0x6D, 0xEA, 0xEC, 0xEA, 0x7F, 0x67, 0x40, 0xC3, 0x87, 0xA9, 0x02, 0x4C, 0xCC, 0xEC, 0x00, 0x18, -0xA9, 0xC8, 0x87, 0x40, 0x12, 0x4C, 0xB1, 0x67, -0x00, 0x18, 0xC0, 0xC8, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF1, 0x50, 0x9A, 0x01, 0x6B, 0x80, 0xF2, +0xB1, 0xC7, 0x87, 0x40, 0x12, 0x4C, 0xB1, 0x67, +0x00, 0x18, 0xC8, 0xC7, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF1, 0x44, 0x9A, 0x01, 0x6B, 0x80, 0xF2, 0x16, 0x6C, 0x60, 0xC2, 0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, 0x01, 0x6D, 0x00, 0x6E, 0x04, 0xF7, 0x10, 0x6F, @@ -2646,67 +2527,67 @@ u8 array_mp_8822c_fw_ap[] = { 0x62, 0x33, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x43, 0x67, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x68, 0x45, 0xF7, 0x18, 0x48, 0x40, 0xF6, +0x20, 0x68, 0x85, 0xF7, 0x08, 0x48, 0x40, 0xF6, 0x9A, 0xA0, 0x40, 0xF6, 0x5B, 0xA0, 0x8E, 0xEA, -0x37, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, -0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, -0x68, 0x9B, 0x40, 0x9A, 0x6C, 0xEA, 0x2C, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x90, 0x34, 0xA6, 0xF0, -0x12, 0x4A, 0x91, 0xE2, 0x00, 0x18, 0xD5, 0xC8, +0x37, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, +0x40, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, +0x7C, 0x9B, 0x40, 0x9A, 0x6C, 0xEA, 0x2C, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x90, 0x34, 0xE6, 0xF0, +0x02, 0x4A, 0x91, 0xE2, 0x00, 0x18, 0xDD, 0xC7, 0x1D, 0x22, 0x40, 0xF6, 0x5A, 0xA0, 0x01, 0x4A, 0x40, 0xF6, 0x5A, 0xC0, 0x40, 0xF6, 0x7A, 0xA0, 0x40, 0xF6, 0x5B, 0xA0, 0x6E, 0xEA, 0x06, 0x22, 0xA0, 0xF0, 0x44, 0x98, 0x04, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0x40, 0xF6, 0x7A, 0xA2, +0x85, 0xF7, 0x08, 0x4A, 0x40, 0xF6, 0x7A, 0xA2, 0x50, 0x6C, 0x8E, 0xEB, 0x09, 0x2B, 0x40, 0xF6, 0x7A, 0xC2, 0x06, 0x10, 0xA0, 0xF0, 0x44, 0x98, 0x04, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x68, 0x45, 0xF7, 0x18, 0x48, 0xA0, 0xF0, +0x20, 0x68, 0x85, 0xF7, 0x08, 0x48, 0xA0, 0xF0, 0x44, 0x98, 0x04, 0x6B, 0xA4, 0x67, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, 0x40, 0xF6, 0x5A, 0xA8, 0x09, 0xF7, 0x00, 0x72, 0x07, 0x60, 0x40, 0xF6, 0x5A, 0xA0, 0x40, 0xF6, 0x9B, 0xA0, 0xFF, 0x4A, 0x8E, 0xEA, 0x13, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x62, 0xF6, 0x70, 0x9A, 0x00, 0xF2, 0x00, 0x6C, +0x82, 0xF6, 0x78, 0x9A, 0x00, 0xF2, 0x00, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, 0x63, 0xF3, +0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0x63, 0xF3, 0x64, 0x9A, 0x8D, 0xEB, 0x63, 0xF3, 0x64, 0xDA, 0x18, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x80, 0xF2, 0x4C, 0x9A, 0xA6, 0xF0, -0x12, 0x4B, 0x90, 0x34, 0x91, 0xE3, 0x10, 0x6E, +0x20, 0x6B, 0x80, 0xF2, 0x4C, 0x9A, 0xE6, 0xF0, +0x02, 0x4B, 0x90, 0x34, 0x91, 0xE3, 0x10, 0x6E, 0x40, 0xEA, 0x40, 0xF6, 0x5B, 0xA0, 0x50, 0x6B, 0x01, 0x4A, 0x40, 0xF6, 0x5B, 0xC0, 0x40, 0xF6, 0x5B, 0xA0, 0x6E, 0xEA, 0x02, 0x2A, 0x40, 0xF6, 0x5B, 0xC0, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xE5, 0xF5, -0x4C, 0xA3, 0xFF, 0x6F, 0xE0, 0xF0, 0xC7, 0xA5, -0x41, 0xC5, 0x43, 0xA5, 0xE5, 0xF5, 0x6C, 0xA3, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x05, 0xF6, +0x58, 0xA3, 0xFF, 0x6F, 0xE0, 0xF0, 0xC7, 0xA5, +0x41, 0xC5, 0x43, 0xA5, 0x05, 0xF6, 0x78, 0xA3, 0x03, 0x4A, 0xEC, 0xEA, 0x09, 0x10, 0xED, 0x42, 0xFF, 0x68, 0x0C, 0xEF, 0xFD, 0xE5, 0x64, 0xC7, 0xE6, 0xA7, 0x03, 0x4F, 0xE9, 0xE2, 0x0C, 0xEA, 0xEF, 0x46, 0xE2, 0xEA, 0xF4, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xE5, 0xF5, 0x6C, 0xA2, 0x01, 0x4B, -0xE5, 0xF5, 0x6C, 0xC2, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF1, 0x74, 0x9B, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0x6A, 0x05, 0xF6, 0x78, 0xA2, 0x01, 0x4B, +0x05, 0xF6, 0x78, 0xC2, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF1, 0x68, 0x9B, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0x71, 0xE4, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x24, 0x67, 0x00, 0x18, 0x90, 0xC8, 0x00, 0x6B, -0x3C, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF6, -0x40, 0x9A, 0x0F, 0x6C, 0xFF, 0xF7, 0x1F, 0x6B, -0x00, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF6, -0x44, 0x9A, 0x4C, 0xE8, 0xA1, 0x40, 0xA2, 0x32, +0x24, 0x67, 0x00, 0x18, 0x98, 0xC7, 0x00, 0x6B, +0x3C, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, +0x48, 0x9A, 0x0F, 0x6C, 0xFF, 0xF7, 0x1F, 0x6B, +0x00, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, +0x4C, 0x9A, 0x4C, 0xE8, 0xA1, 0x40, 0xA2, 0x32, 0x42, 0x32, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, -0xA3, 0xF1, 0x84, 0x9C, 0xAC, 0xEB, 0x60, 0xCC, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0x68, 0x9B, +0xC3, 0xF1, 0x98, 0x9C, 0xAC, 0xEB, 0x60, 0xCC, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0x7C, 0x9B, 0x40, 0xC3, 0xE0, 0xF0, 0x87, 0xA1, 0x00, 0x18, -0xA9, 0xC8, 0x87, 0x40, 0x12, 0x4C, 0xB1, 0x67, -0x00, 0x18, 0x49, 0xC9, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF1, 0x50, 0x9A, 0x01, 0x6B, 0x80, 0xF2, +0xB1, 0xC7, 0x87, 0x40, 0x12, 0x4C, 0xB1, 0x67, +0x00, 0x18, 0x51, 0xC8, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF1, 0x44, 0x9A, 0x01, 0x6B, 0x80, 0xF2, 0x16, 0x6C, 0x60, 0xC2, 0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, 0x01, 0x6D, 0x00, 0x6E, 0x04, 0xF7, 0x10, 0x6F, @@ -2714,42 +2595,42 @@ u8 array_mp_8822c_fw_ap[] = { 0x62, 0x33, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x43, 0x67, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x68, 0x45, 0xF7, 0x18, 0x48, 0xC2, 0xF4, +0x20, 0x68, 0x85, 0xF7, 0x08, 0x48, 0xC2, 0xF4, 0x7F, 0xA0, 0xE2, 0xF4, 0x40, 0xA0, 0x6E, 0xEA, -0x3E, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, -0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF1, -0x88, 0x9C, 0x40, 0x9A, 0x8C, 0xEA, 0x33, 0x2A, +0x3E, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, +0x40, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF1, +0x9C, 0x9C, 0x40, 0x9A, 0x8C, 0xEA, 0x33, 0x2A, 0xE8, 0x6A, 0x58, 0xEB, 0x30, 0xF0, 0x20, 0x6A, -0xA6, 0xF5, 0x14, 0x4A, 0x12, 0xEB, 0x71, 0xE2, -0x00, 0x18, 0x62, 0xC9, 0x07, 0x2A, 0xA0, 0xF0, +0xE6, 0xF5, 0x04, 0x4A, 0x12, 0xEB, 0x71, 0xE2, +0x00, 0x18, 0x6A, 0xC8, 0x07, 0x2A, 0xA0, 0xF0, 0x44, 0x98, 0x04, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, 0x21, 0x10, 0xC2, 0xF4, 0x5F, 0xA0, 0x10, 0x6B, 0x01, 0x4A, 0xC2, 0xF4, 0x5F, 0xC0, 0xC2, 0xF4, 0x5F, 0xA0, 0x6E, 0xEA, 0x02, 0x2A, 0xC2, 0xF4, 0x5F, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0xC2, 0xF4, 0x9F, 0xA2, +0x85, 0xF7, 0x08, 0x4A, 0xC2, 0xF4, 0x9F, 0xA2, 0xE2, 0xF4, 0x60, 0xA2, 0x8E, 0xEB, 0x07, 0x23, 0xA0, 0xF0, 0x64, 0x9A, 0x04, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x04, 0x10, 0xC2, 0xF4, 0x9E, 0xC2, 0xC2, 0xF4, 0x7C, 0xCA, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0xC2, 0xF4, 0x7F, 0xA2, 0xA4, 0x67, 0x04, 0x2B, 0xE2, 0xF4, 0x40, 0xA2, 0x0F, 0x72, 0x0B, 0x60, -0x30, 0xF0, 0x20, 0x68, 0x45, 0xF7, 0x18, 0x48, +0x30, 0xF0, 0x20, 0x68, 0x85, 0xF7, 0x08, 0x48, 0xC2, 0xF4, 0x5F, 0xA0, 0xE2, 0xF4, 0x60, 0xA0, 0xFF, 0x4A, 0x6E, 0xEA, 0x15, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x62, 0xF6, 0x70, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0xA3, 0xF0, 0x84, 0x9C, 0x40, 0x9B, +0x20, 0x6A, 0x82, 0xF6, 0x78, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xC3, 0xF0, 0x98, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0x63, 0xF3, 0x64, 0x9A, +0x85, 0xF7, 0x08, 0x4A, 0x63, 0xF3, 0x64, 0x9A, 0x8D, 0xEB, 0x63, 0xF3, 0x64, 0xDA, 0xAC, 0x10, 0x23, 0xA5, 0xFF, 0xF7, 0x1F, 0x6A, 0x04, 0x49, 0x4C, 0xE9, 0xC2, 0xF4, 0x5C, 0xA8, 0x22, 0x2A, 0xE8, 0x6A, 0x58, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6C, 0x80, 0xF2, 0x4C, 0x9A, -0xA6, 0xF5, 0x14, 0x4C, 0xFF, 0x6E, 0x2C, 0xEE, +0xE6, 0xF5, 0x04, 0x4C, 0xFF, 0x6E, 0x2C, 0xEE, 0x12, 0xEB, 0x71, 0xE4, 0x40, 0xEA, 0xE2, 0xF4, 0x40, 0xA0, 0xC2, 0xF4, 0x7F, 0xA0, 0xC2, 0xF4, 0x3C, 0xC8, 0x4E, 0xEB, 0x79, 0x2B, 0x01, 0x4A, @@ -2770,51 +2651,51 @@ u8 array_mp_8822c_fw_ap[] = { 0x12, 0xEA, 0x09, 0xE2, 0x40, 0xF6, 0x7F, 0xA2, 0x6D, 0xE1, 0x40, 0xF6, 0x7F, 0xC2, 0xC2, 0xF4, 0x5C, 0xA8, 0x45, 0xE1, 0xC2, 0xF4, 0x3C, 0xC8, -0x33, 0x10, 0x30, 0xF0, 0x20, 0x68, 0x45, 0xF7, -0x18, 0x48, 0xE2, 0xF4, 0x80, 0xA0, 0xE8, 0x6A, +0x33, 0x10, 0x30, 0xF0, 0x20, 0x68, 0x85, 0xF7, +0x08, 0x48, 0xE2, 0xF4, 0x80, 0xA0, 0xE8, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x58, 0xEC, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0xA6, 0xF5, -0x14, 0x4B, 0xFF, 0x6E, 0x2C, 0xEE, 0x12, 0xEC, +0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0xE6, 0xF5, +0x04, 0x4B, 0xFF, 0x6E, 0x2C, 0xEE, 0x12, 0xEC, 0x91, 0xE3, 0x40, 0xEA, 0xE2, 0xF4, 0x40, 0xA0, 0x10, 0x6B, 0xC2, 0xF4, 0x3C, 0xC8, 0x01, 0x4A, 0xE2, 0xF4, 0x40, 0xC0, 0xE2, 0xF4, 0x40, 0xA0, 0x6E, 0xEA, 0x02, 0x2A, 0xE2, 0xF4, 0x40, 0xC0, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0xC2, 0xF4, 0x7E, 0xA2, 0x10, 0x6C, 0x01, 0x4B, 0xC2, 0xF4, 0x7E, 0xC2, 0xC2, 0xF4, 0x7E, 0xA2, 0x8E, 0xEB, 0x02, 0x2B, 0xC2, 0xF4, 0x7E, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0xC2, 0xF4, 0x9E, 0xA2, 0xE8, 0x6B, 0x78, 0xEC, 0xC2, 0xF4, 0x9C, 0xAA, 0x12, 0xEB, 0x4D, 0xE3, 0x40, 0xF7, 0x83, 0xC3, 0xA0, 0xF0, 0x64, 0x9A, 0x04, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x60, 0xA4, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, 0xC0, 0xF0, +0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0xC0, 0xF0, 0xBC, 0xA2, 0x01, 0x6C, 0x6C, 0xEC, 0x02, 0x6B, 0x6B, 0xEB, 0xAC, 0xEB, 0x8D, 0xEB, 0xC0, 0xF0, 0x7C, 0xC2, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xED, 0xFF, 0x75, 0x4C, 0xEC, 0xCC, 0xEA, 0x06, 0x61, -0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF7, 0x18, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x85, 0xF7, 0x08, 0x4B, 0x71, 0xE4, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x45, 0xF7, 0x18, 0x4B, 0x71, 0xE4, 0x43, 0xF3, +0x85, 0xF7, 0x08, 0x4B, 0x71, 0xE4, 0x43, 0xF3, 0x60, 0xA4, 0xAC, 0xEA, 0xAF, 0xED, 0x6C, 0xED, 0xAD, 0xEA, 0x43, 0xF3, 0x40, 0xC4, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xEC, 0xFF, 0x74, 0xAC, 0xEA, -0x05, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x89, 0xF2, -0x56, 0xC3, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, -0x45, 0xF7, 0x18, 0x4B, 0x23, 0xF3, 0xBE, 0xA3, +0x05, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0xC9, 0xF2, +0x46, 0xC3, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0x85, 0xF7, 0x08, 0x4B, 0x23, 0xF3, 0xBE, 0xA3, 0x8C, 0xEA, 0x8F, 0xEC, 0xAC, 0xEC, 0x8D, 0xEA, 0x23, 0xF3, 0x5E, 0xC3, 0x20, 0xE8, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, 0x01, 0xA4, 0x20, 0xA4, 0x0C, 0x20, 0x90, 0x67, -0xB1, 0x67, 0x00, 0x18, 0x36, 0xCA, 0x30, 0xF0, +0xB1, 0x67, 0x00, 0x18, 0x3E, 0xC9, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0x90, 0x67, 0xB1, 0x67, 0x53, 0x6E, 0x40, 0xEA, 0x7D, 0x67, 0x20, 0x6A, 0x50, 0xC3, 0x03, 0x6A, 0x4F, 0xCB, -0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, 0x54, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, 0x58, 0x9A, 0x9D, 0x67, 0x40, 0xA2, 0x52, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, 0x23, 0xF3, +0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0x23, 0xF3, 0x7E, 0xA2, 0x23, 0xF3, 0x5F, 0xA2, 0x73, 0xC4, 0x54, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x0B, 0x97, @@ -2827,17 +2708,17 @@ u8 array_mp_8822c_fw_ap[] = { 0x09, 0x94, 0x01, 0x2C, 0x28, 0x22, 0xFF, 0x68, 0x0C, 0xEA, 0x0C, 0xEB, 0xA2, 0x67, 0xC3, 0x67, 0x91, 0x67, 0x0C, 0xD2, 0x0D, 0xD3, 0x00, 0x18, -0x29, 0xCA, 0x0B, 0x94, 0x09, 0x93, 0x41, 0x41, +0x31, 0xC9, 0x0B, 0x94, 0x09, 0x93, 0x41, 0x41, 0x0C, 0xEC, 0x0B, 0xD4, 0x0B, 0x96, 0x0C, 0xEA, 0x0C, 0xEB, 0x82, 0x67, 0xA3, 0x67, 0x30, 0xF0, 0x20, 0x68, 0x0A, 0xD2, 0x09, 0xD3, 0x00, 0x18, -0x29, 0xCA, 0x40, 0xF4, 0x40, 0x98, 0x0C, 0x95, +0x31, 0xC9, 0x40, 0xF4, 0x40, 0x98, 0x0C, 0x95, 0x0D, 0x96, 0x91, 0x67, 0x01, 0x6F, 0x40, 0xEA, 0x40, 0xF4, 0x40, 0x98, 0x0A, 0x94, 0x09, 0x95, 0x0B, 0x96, 0x02, 0x6F, 0x40, 0xEA, 0x91, 0x67, -0x00, 0x18, 0x70, 0xCF, 0x7D, 0x67, 0x53, 0xC3, +0x00, 0x18, 0x78, 0xCE, 0x7D, 0x67, 0x53, 0xC3, 0x42, 0x32, 0x54, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0x45, 0xE1, 0x43, 0xF3, +0x85, 0xF7, 0x08, 0x4A, 0x45, 0xE1, 0x43, 0xF3, 0x40, 0xA1, 0x55, 0xC3, 0x43, 0xF3, 0x41, 0xA1, 0x56, 0xC3, 0x43, 0xF3, 0x50, 0xA1, 0x57, 0xC3, 0x43, 0xF3, 0x51, 0xA1, 0x58, 0xC3, 0x9D, 0x67, @@ -2849,57 +2730,57 @@ u8 array_mp_8822c_fw_ap[] = { 0x09, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x1A, 0x6A, 0x7D, 0x67, 0x50, 0xC3, 0x00, 0xF0, 0x12, 0x04, 0x07, 0x6A, 0x4F, 0xCB, 0x80, 0x18, -0xD0, 0x5D, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x59, 0x5C, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x19, 0x6A, 0x7D, 0x67, 0x50, 0xC3, 0x00, 0xF0, 0x12, 0x04, 0x08, 0x6A, 0x4F, 0xCB, 0x80, 0x18, -0x99, 0x5D, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x22, 0x5C, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0xFF, 0xF7, 0x1F, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0x8C, 0xEA, 0x23, 0xF2, -0x60, 0x9B, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF2, -0x84, 0x9C, 0xCC, 0xEB, 0x40, 0xF6, 0xA0, 0x35, +0x30, 0xF0, 0x20, 0x6B, 0x8C, 0xEA, 0x43, 0xF2, +0x70, 0x9B, 0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF2, +0x94, 0x9C, 0xCC, 0xEB, 0x40, 0xF6, 0xA0, 0x35, 0x8D, 0xEB, 0x1F, 0xF7, 0x00, 0x6C, 0x4C, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0xAD, 0xEB, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF5, -0x84, 0x9C, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, -0xC2, 0xF5, 0x88, 0x9C, 0x89, 0xE2, 0x60, 0xDA, +0x88, 0x9C, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, +0xC2, 0xF5, 0x8C, 0x9C, 0x89, 0xE2, 0x60, 0xDA, 0x20, 0xE8, 0x00, 0x65, 0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0x1F, 0xF7, 0x00, 0x6C, 0x4C, 0xEC, 0xFF, 0x6B, 0x02, 0xF0, 0x00, 0x74, 0xAC, 0xEB, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, -0xC2, 0xF5, 0x84, 0x9C, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6C, 0xC2, 0xF5, 0x88, 0x9C, 0x91, 0xE2, +0xC2, 0xF5, 0x88, 0x9C, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6C, 0xC2, 0xF5, 0x8C, 0x9C, 0x91, 0xE2, 0x00, 0x6D, 0xA0, 0xDC, 0x30, 0xF0, 0x20, 0x6C, -0x23, 0xF2, 0x80, 0x9C, 0xD4, 0x36, 0x40, 0xF6, +0x43, 0xF2, 0x90, 0x9C, 0xD4, 0x36, 0x40, 0xF6, 0x60, 0x33, 0x8C, 0xEE, 0x6D, 0xEE, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF2, 0x64, 0x9B, 0x6D, 0xEE, +0x20, 0x6B, 0x43, 0xF2, 0x74, 0x9B, 0x6D, 0xEE, 0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x05, 0x2B, 0x30, 0xF0, -0x20, 0x6B, 0xC2, 0xF5, 0x64, 0x9B, 0x04, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, 0x68, 0x9B, +0x20, 0x6B, 0xC2, 0xF5, 0x68, 0x9B, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, 0x6C, 0x9B, 0x69, 0xE2, 0xC0, 0xDA, 0x20, 0xE8, 0x00, 0x65, 0x0F, 0xF5, 0x00, 0x6B, 0x78, 0xEE, 0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, -0x23, 0xF2, 0x80, 0x9C, 0x40, 0xF6, 0xA0, 0x35, +0x43, 0xF2, 0x90, 0x9C, 0x40, 0xF6, 0xA0, 0x35, 0x12, 0xEB, 0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, -0x23, 0xF2, 0x84, 0x9C, 0xAD, 0xEB, 0x8D, 0xEB, +0x43, 0xF2, 0x94, 0x9C, 0xAD, 0xEB, 0x8D, 0xEB, 0x1F, 0xF7, 0x00, 0x6C, 0x4C, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, -0x20, 0x6C, 0xC2, 0xF5, 0x84, 0x9C, 0x04, 0x10, -0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF5, 0x88, 0x9C, +0x20, 0x6C, 0xC2, 0xF5, 0x88, 0x9C, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF5, 0x8C, 0x9C, 0x89, 0xE2, 0x60, 0xDA, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF5, 0x54, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF5, 0x58, 0x9A, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF5, -0x58, 0x9A, 0x40, 0x9A, 0x20, 0xE8, 0x00, 0x65, +0x5C, 0x9A, 0x40, 0x9A, 0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x8C, 0xEA, 0x01, 0x72, 0x06, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF5, 0x54, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF5, 0x58, 0x9A, 0x40, 0x9A, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0xA2, 0xF5, 0x58, 0x9A, 0x40, 0x9A, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x48, 0xF5, 0x44, 0xA2, +0xA2, 0xF5, 0x5C, 0x9A, 0x40, 0x9A, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x68, 0xF5, 0x54, 0xA2, 0x01, 0x72, 0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF2, 0x70, 0x9A, 0xFF, 0x6C, 0x04, 0x6D, +0x63, 0xF2, 0x60, 0x9A, 0xFF, 0x6C, 0x04, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF4, 0xC0, 0x9B, 0xFD, 0x63, 0xE2, 0xF4, @@ -2912,67 +2793,67 @@ u8 array_mp_8822c_fw_ap[] = { 0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xED, 0xCC, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x0C, 0x2B, 0x5D, 0x67, 0x84, 0x34, 0x91, 0xE2, 0x30, 0xF0, -0x20, 0x6A, 0x64, 0xAC, 0xC2, 0xF5, 0x44, 0x9A, +0x20, 0x6A, 0x64, 0xAC, 0xC2, 0xF5, 0x48, 0x9A, 0x49, 0xE3, 0x60, 0xA2, 0xFF, 0x6A, 0x06, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, 0x68, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, 0x6C, 0x9B, 0x79, 0xE6, 0x60, 0xA6, 0xE4, 0xED, 0x6C, 0xEA, 0xA7, 0x67, 0x4C, 0xED, 0x00, 0x6B, 0x01, 0x25, 0x01, 0x6B, 0xFF, 0x6A, 0x6C, 0xEA, 0x03, 0x63, 0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF2, 0x98, 0x9A, 0x30, 0xF0, 0x20, 0x6B, -0x45, 0xF7, 0x18, 0x4B, 0xA0, 0x9C, 0x52, 0x9B, +0x63, 0xF2, 0x88, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0x85, 0xF7, 0x08, 0x4B, 0xA0, 0x9C, 0x52, 0x9B, 0xAC, 0xEA, 0x53, 0xDB, 0x40, 0xDC, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0xD1, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF1, 0x20, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF2, 0x04, 0x4A, 0x40, 0x9A, +0x20, 0x6A, 0x03, 0xF2, 0x30, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF2, 0x14, 0x4A, 0x40, 0x9A, 0x60, 0x99, 0x30, 0xF0, 0x20, 0x6C, 0xA0, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x4C, 0x9A, -0x43, 0xF2, 0x14, 0x4C, 0x80, 0x9C, 0x00, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0x5C, 0x9A, +0x83, 0xF2, 0x04, 0x4C, 0x80, 0x9C, 0x00, 0x9A, 0x1A, 0x65, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0x9C, -0x43, 0xF2, 0x1C, 0x4A, 0x40, 0x9A, 0x01, 0xD4, -0x30, 0xF0, 0x20, 0x6C, 0x40, 0x9A, 0x45, 0xF7, -0xF8, 0x9C, 0x00, 0xD2, 0x44, 0x67, 0x45, 0xF7, -0x18, 0x4A, 0xC1, 0x9A, 0x83, 0x9A, 0x6C, 0xEF, +0x83, 0xF2, 0x0C, 0x4A, 0x40, 0x9A, 0x01, 0xD4, +0x30, 0xF0, 0x20, 0x6C, 0x40, 0x9A, 0x85, 0xF7, +0xE8, 0x9C, 0x00, 0xD2, 0x44, 0x67, 0x85, 0xF7, +0x08, 0x4A, 0xC1, 0x9A, 0x83, 0x9A, 0x6C, 0xEF, 0xAC, 0xEE, 0x01, 0x93, 0xA2, 0x9A, 0xE8, 0xDA, 0x6C, 0xEC, 0x0C, 0xED, 0x64, 0x9A, 0x00, 0x90, 0x8B, 0xDA, 0xC9, 0xDA, 0x0C, 0xEB, 0xAA, 0xDA, -0x6C, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, -0x04, 0x4A, 0x40, 0x9A, 0xE0, 0xD9, 0x18, 0x67, -0xC0, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, -0x14, 0x4A, 0x40, 0x9A, 0xA0, 0xD8, 0x80, 0xDA, -0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF2, 0x1C, 0x4C, +0x6C, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, +0x14, 0x4A, 0x40, 0x9A, 0xE0, 0xD9, 0x18, 0x67, +0xC0, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, +0x04, 0x4A, 0x40, 0x9A, 0xA0, 0xD8, 0x80, 0xDA, +0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF2, 0x0C, 0x4C, 0x80, 0x9C, 0x60, 0xDC, 0x05, 0x91, 0x04, 0x90, 0x03, 0x63, 0x20, 0xE8, 0xFF, 0x63, 0x01, 0xD1, -0x00, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, -0x1C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, -0xE8, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, -0xD0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0x80, 0x98, 0xB4, 0x9A, 0x60, 0x9F, +0x00, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, +0x04, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, +0xF8, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, +0xC0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0x80, 0x98, 0xB4, 0x9A, 0x60, 0x9F, 0x20, 0x9E, 0x8C, 0xED, 0x95, 0x9A, 0xB7, 0xDA, 0x6C, 0xEC, 0x76, 0x9A, 0x98, 0xDA, 0x2C, 0xEB, 0x79, 0xDA, 0xA0, 0xD8, 0x80, 0xDF, 0x60, 0xDE, 0x01, 0x91, 0x00, 0x90, 0x01, 0x63, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0x5C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x4C, 0x9A, 0xFF, 0x6B, 0x80, 0xA2, 0x03, 0x6A, 0x8C, 0xEA, 0x03, 0x72, 0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x26, 0xF0, 0x94, 0xA2, 0x01, 0x6A, 0x8C, 0xEA, +0x66, 0xF0, 0x84, 0xA2, 0x01, 0x6A, 0x8C, 0xEA, 0x6C, 0xEA, 0x0B, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF2, 0x80, 0x9A, 0x80, 0x6D, 0xAB, 0xED, +0xA3, 0xF2, 0x90, 0x9A, 0x80, 0x6D, 0xAB, 0xED, 0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x20, 0xE8, 0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x48, 0x9A, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0xA0, 0xF0, 0x8F, 0xA2, +0x85, 0xF7, 0x08, 0x4A, 0xA0, 0xF0, 0x8F, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, 0x07, 0x23, 0xA0, 0xF0, 0x64, 0x9A, 0x04, 0xF0, 0x00, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0x4C, 0xEC, 0x00, 0x18, 0x66, 0xCB, +0xFF, 0x6A, 0x4C, 0xEC, 0x00, 0x18, 0x6E, 0xCA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, 0x06, 0x74, 0x0A, 0x61, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, 0x84, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF2, 0x94, 0x9B, 0x01, 0x6D, 0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, @@ -2981,105 +2862,105 @@ u8 array_mp_8822c_fw_ap[] = { 0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x62, 0xF6, 0x70, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0xE2, 0xF5, 0x98, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0x63, 0xF3, 0x64, 0x9A, 0x8D, 0xEB, +0x82, 0xF6, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xE2, 0xF5, 0x90, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0x63, 0xF3, 0x64, 0x9A, 0x8D, 0xEB, 0x63, 0xF3, 0x64, 0xDA, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0x5C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x4C, 0x9A, 0x60, 0xA2, 0x03, 0x6A, 0x6C, 0xEA, 0x03, 0x72, -0x08, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, -0x60, 0x9A, 0x7F, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x08, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, +0x70, 0x9A, 0x7F, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF2, 0x5C, 0x9A, 0x60, 0xA2, 0x03, 0x6A, +0xA3, 0xF2, 0x4C, 0x9A, 0x60, 0xA2, 0x03, 0x6A, 0x6C, 0xEA, 0x03, 0x72, 0x08, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF2, 0x60, 0x9A, 0x7F, 0x6A, +0x20, 0x6A, 0xA3, 0xF2, 0x70, 0x9A, 0x7F, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, 0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, 0x07, 0x6D, 0xB8, 0xEC, 0x30, 0xF0, 0x20, 0x6B, -0x45, 0xF7, 0x18, 0x4B, 0x01, 0x6E, 0x12, 0xEC, +0x85, 0xF7, 0x08, 0x4B, 0x01, 0x6E, 0x12, 0xEC, 0x71, 0xE4, 0xC0, 0xF0, 0xBD, 0xA4, 0xCC, 0xED, 0x1D, 0x25, 0xC0, 0xF0, 0xBE, 0xA4, 0xE2, 0xF5, 0x68, 0x9B, 0xC0, 0xF0, 0x9D, 0xA4, 0x75, 0xE5, -0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF7, 0x7C, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, 0x60, 0x9B, 0xBC, 0x35, 0x21, 0x4D, 0x75, 0xE5, 0xE0, 0xA5, 0x9E, 0x33, 0x9A, 0x34, 0xCC, 0xEC, 0x78, 0x33, 0x9C, 0x34, 0x4C, 0xEF, 0x8D, 0xEB, 0xED, 0xEB, 0x00, 0xF6, 0x60, 0x33, 0x00, 0xF6, 0x63, 0x33, 0x4C, 0xEB, 0x60, 0xC5, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xFD, 0x11, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0x01, 0x15, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0xE9, 0xF2, 0x5E, 0xA2, 0x09, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x22, 0xF6, 0x58, 0x9A, 0x66, 0x6B, +0x29, 0xF3, 0x4E, 0xA2, 0x09, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF6, 0x40, 0x9A, 0x66, 0x6B, 0x00, 0x6C, 0x60, 0xC2, 0x80, 0x18, 0x00, 0x00, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x6F, 0xC1, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x09, 0xF3, 0x64, 0xA2, 0x02, 0x6A, 0x6C, 0xEA, -0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, 0xD3, 0xCD, +0x29, 0xF3, 0x74, 0xA2, 0x02, 0x6A, 0x6C, 0xEA, +0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, 0xDB, 0xCC, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF2, 0x7C, 0x9B, 0xFF, 0x6A, 0x4C, 0xEC, +0xA3, 0xF2, 0x6C, 0x9B, 0xFF, 0x6A, 0x4C, 0xEC, 0xA0, 0xA3, 0x03, 0x6B, 0xAC, 0xEB, 0x03, 0x73, -0x13, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x26, 0xF0, -0xB4, 0xA3, 0x01, 0x6B, 0xAC, 0xEB, 0x4C, 0xEB, -0x0B, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, -0xA0, 0x9B, 0x80, 0x6E, 0xCB, 0xEE, 0x60, 0xA5, +0x13, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x66, 0xF0, +0xA4, 0xA3, 0x01, 0x6B, 0xAC, 0xEB, 0x4C, 0xEB, +0x0B, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF2, +0xB0, 0x9B, 0x80, 0x6E, 0xCB, 0xEE, 0x60, 0xA5, 0x4C, 0xEB, 0xCD, 0xEB, 0x4C, 0xEB, 0x60, 0xC5, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0xA3, 0xF3, 0x6D, 0xA2, 0x8E, 0xEB, 0x11, 0x2B, 0xA3, 0xF3, 0x6C, 0xA2, 0x1F, 0x6D, 0x6A, 0x32, 0xAC, 0xEA, 0x47, 0xEC, 0x01, 0x6C, 0x8C, 0xEA, 0x08, 0x22, 0x02, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, -0xD3, 0xCD, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xDB, 0xCC, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, -0x00, 0x18, 0xF2, 0xCB, 0x05, 0x97, 0x03, 0x63, +0x00, 0x18, 0xFA, 0xCA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x80, 0x18, 0x8B, 0x16, 0x05, 0x97, 0x03, 0x63, +0x80, 0x18, 0x8F, 0x19, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x06, 0xF0, 0x67, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x26, 0xF0, 0x77, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x80, 0x18, -0x43, 0x00, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x6F, 0x00, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x06, 0xF0, 0x67, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, -0x02, 0x22, 0x80, 0x18, 0x43, 0x00, 0x05, 0x97, +0x26, 0xF0, 0x77, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0x02, 0x22, 0x80, 0x18, 0x6F, 0x00, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x80, 0x18, 0x9C, 0x17, 0x05, 0x97, 0x03, 0x63, +0x80, 0x18, 0xA0, 0x1A, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0x8E, 0xC6, 0x05, 0x97, 0x03, 0x63, +0x00, 0x18, 0x9D, 0xC5, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0x8B, 0xC6, 0x05, 0x97, 0x03, 0x63, +0x00, 0x18, 0x9A, 0xC5, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x80, 0x18, 0x2B, 0x13, 0x05, 0x97, 0x03, 0x63, +0x80, 0x18, 0x2F, 0x16, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x80, 0x18, 0x73, 0x12, 0x05, 0x97, 0x03, 0x63, +0x80, 0x18, 0x77, 0x15, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF7, 0x7C, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, 0x60, 0x9B, 0xFF, 0x6A, 0x4C, 0xEE, 0x6D, 0xE4, 0x08, 0x68, 0x80, 0xA3, 0xDB, 0xE0, 0x02, 0x67, 0x4C, 0xED, 0x07, 0xEE, 0xD0, 0x67, 0x4C, 0xEF, 0x04, 0xED, 0x4C, 0xEC, 0xCC, 0xEF, 0x0F, 0xE8, 0x8C, 0xE8, 0xE4, 0xED, 0xED, 0xE8, 0x4C, 0xE8, 0x00, 0xC3, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF7, 0x5C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF7, 0x40, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, 0x8C, 0xEB, 0x4D, 0xE3, 0x40, 0xA3, 0xFF, 0x6C, 0x8C, 0xEE, 0x08, 0x6B, 0xDB, 0xE3, 0x8C, 0xED, 0x8C, 0xEA, 0x64, 0x67, 0x47, 0xED, 0x67, 0xEE, 0x6C, 0xEA, 0x8C, 0xEA, 0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, -0x70, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0x46, 0xF1, +0x70, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0x65, 0xF5, 0x15, 0x4A, 0x40, 0xDB, 0x00, 0x68, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF2, 0x58, 0x9A, 0x40, 0x9A, +0x20, 0x6A, 0xC3, 0xF2, 0x48, 0x9A, 0x40, 0x9A, 0x21, 0x22, 0xE0, 0xF3, 0x09, 0x70, 0x13, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x70, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, 0x78, 0x9A, 0x20, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0x63, 0xF3, 0x64, 0x9A, 0x8D, 0xEB, 0x63, 0xF3, 0x64, 0xDA, 0x00, 0x6A, 0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x32, 0x6C, @@ -3087,15 +2968,15 @@ u8 array_mp_8822c_fw_ap[] = { 0x4C, 0xE8, 0xD9, 0x17, 0x01, 0x6A, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, 0x94, 0x34, 0x4C, 0xED, -0x4C, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, -0x5C, 0x9A, 0x80, 0xC2, 0xA0, 0xC2, 0x20, 0xE8, -0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, -0x7C, 0x9B, 0x4C, 0xEC, 0x94, 0x34, 0x4C, 0xEC, +0x4C, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, +0x4C, 0x9A, 0x80, 0xC2, 0xA0, 0xC2, 0x20, 0xE8, +0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, +0x6C, 0x9B, 0x4C, 0xEC, 0x94, 0x34, 0x4C, 0xEC, 0x80, 0xC3, 0x60, 0xA3, 0x6C, 0xEA, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xED, 0xFF, 0x75, 0x4C, 0xEC, 0xCC, 0xEA, 0x06, 0x61, 0x30, 0xF0, 0x20, 0x6B, -0x45, 0xF7, 0x18, 0x4B, 0x71, 0xE4, 0x0B, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF7, 0x18, 0x4B, +0x85, 0xF7, 0x08, 0x4B, 0x71, 0xE4, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x85, 0xF7, 0x08, 0x4B, 0x71, 0xE4, 0x43, 0xF3, 0x70, 0xA4, 0xAC, 0xEA, 0xAF, 0xED, 0x6C, 0xED, 0xAD, 0xEA, 0x43, 0xF3, 0x50, 0xC4, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, @@ -3107,54 +2988,54 @@ u8 array_mp_8822c_fw_ap[] = { 0xB0, 0x67, 0x0C, 0xEE, 0x6C, 0xEC, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFF, 0x6A, 0x4C, 0xEC, 0xFF, 0x74, 0xAC, 0xEA, -0x05, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x89, 0xF2, -0x57, 0xC3, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, -0x45, 0xF7, 0x18, 0x4B, 0x23, 0xF3, 0xBF, 0xA3, +0x05, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0xC9, 0xF2, +0x47, 0xC3, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0x85, 0xF7, 0x08, 0x4B, 0x23, 0xF3, 0xBF, 0xA3, 0x8C, 0xEA, 0x8F, 0xEC, 0xAC, 0xEC, 0x8D, 0xEA, 0x23, 0xF3, 0x5F, 0xC3, 0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0x26, 0x67, 0x0C, 0xE9, 0x53, 0x71, 0x0C, 0xEC, 0x0C, 0xED, 0x09, 0x60, 0x06, 0x2C, -0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF2, 0x56, 0xA2, -0xAD, 0xEA, 0x0B, 0x10, 0x00, 0x18, 0x9A, 0xCC, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF2, 0x46, 0xA2, +0xAD, 0xEA, 0x0B, 0x10, 0x00, 0x18, 0xA2, 0xCB, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0x23, 0xF3, 0x7F, 0xA2, 0x23, 0xF3, 0x5E, 0xA2, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, -0x74, 0x9B, 0x0C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0x89, 0xF2, 0x34, 0xC2, 0x07, 0x97, +0x78, 0x9B, 0x0C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0xC9, 0xF2, 0x24, 0xC2, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0xA0, 0xF0, 0x64, 0x9A, 0x10, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF3, 0x45, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x29, 0xF3, 0x55, 0xA2, 0xFF, 0x63, 0x05, 0x5A, 0x36, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x48, 0x32, 0xE2, 0xF4, 0x0C, 0x4B, 0x4D, 0xE3, 0x40, 0x9B, 0x00, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xA2, 0xF5, 0x5C, 0x9A, 0xFF, 0xF7, +0x20, 0x6A, 0xC2, 0xF5, 0x40, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, 0x40, 0x9A, 0x1A, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xA2, 0xF5, 0x5C, 0x9A, 0x09, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x50, 0x9A, -0x0D, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, -0x50, 0x9A, 0x40, 0x9A, 0x50, 0x32, 0x00, 0xF5, +0x20, 0x6A, 0xC2, 0xF5, 0x40, 0x9A, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x40, 0x9A, +0x0D, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, +0x40, 0x9A, 0x40, 0x9A, 0x50, 0x32, 0x00, 0xF5, 0x42, 0x32, 0x08, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF2, 0x54, 0x9A, 0x40, 0x9A, 0xE1, 0xF7, +0xE3, 0xF2, 0x44, 0x9A, 0x40, 0x9A, 0xE1, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, 0x00, 0xD2, 0x00, 0x93, 0xE0, 0xF3, 0x08, 0x6A, 0x60, 0x33, 0x68, 0x33, 0x5B, 0xEB, 0x01, 0x2A, 0xE5, 0xE8, 0x12, 0xEA, 0x01, 0x10, 0x66, 0x6A, 0x00, 0xD2, 0x00, 0x92, 0x01, 0x63, 0x20, 0xE8, 0xFF, 0x63, 0x01, 0xD0, -0x15, 0x2C, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, -0x70, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xA2, 0xF6, -0x98, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, +0x15, 0x2C, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, +0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x02, 0xF6, +0x80, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0x63, 0xF3, 0x64, 0x9A, 0x8D, 0xEB, 0x63, 0xF3, 0x64, 0xDA, 0x5D, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0xA3, 0xF3, 0xAC, 0xA2, +0x85, 0xF7, 0x08, 0x4A, 0xA3, 0xF3, 0xAC, 0xA2, 0x03, 0x6B, 0x6B, 0xEB, 0xAC, 0xEB, 0xA3, 0xF3, 0x6C, 0xC2, 0xA3, 0xF3, 0xD0, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0x29, 0xF3, 0x04, 0x4A, 0x00, 0x6D, +0x20, 0x6A, 0x49, 0xF3, 0x14, 0x4A, 0x00, 0x6D, 0x18, 0x6F, 0xF8, 0xED, 0x30, 0xF0, 0x20, 0x6B, -0x45, 0xF7, 0x18, 0x4B, 0x12, 0xEF, 0x6D, 0xE7, +0x85, 0xF7, 0x08, 0x4B, 0x12, 0xEF, 0x6D, 0xE7, 0xC3, 0xF3, 0x00, 0xA3, 0x01, 0x6F, 0xEC, 0xE8, 0x23, 0x20, 0xC3, 0xF3, 0x60, 0xA3, 0x66, 0x33, 0xEC, 0xEB, 0xFF, 0x6F, 0xEC, 0xEB, 0x1C, 0x23, @@ -3166,7 +3047,7 @@ u8 array_mp_8822c_fw_ap[] = { 0x60, 0xDA, 0xFF, 0xF7, 0x7C, 0x9A, 0x04, 0x2B, 0x01, 0x6F, 0xFF, 0xF7, 0xFC, 0xDA, 0x60, 0xDA, 0x01, 0x4D, 0x0A, 0x75, 0x18, 0x4A, 0xCC, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0xA3, 0xF3, 0x74, 0x9A, 0xA3, 0xF3, 0x90, 0xDA, 0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, 0xA3, 0xF3, 0x8C, 0xA2, 0x12, 0xEB, 0xA3, 0xF3, 0x78, 0xDA, @@ -3174,12 +3055,12 @@ u8 array_mp_8822c_fw_ap[] = { 0x8D, 0xEB, 0xA3, 0xF3, 0x6C, 0xC2, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x45, 0xF7, 0x18, 0x48, 0xA3, 0xF3, 0x4C, 0xA0, +0x85, 0xF7, 0x08, 0x48, 0xA3, 0xF3, 0x4C, 0xA0, 0x03, 0x69, 0x4C, 0xE9, 0x00, 0x6A, 0x26, 0x29, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x58, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x48, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xFF, 0x6E, 0x20, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, -0x09, 0xF3, 0x04, 0x4C, 0x00, 0x6D, 0x05, 0x4E, +0x29, 0xF3, 0x14, 0x4C, 0x00, 0x6D, 0x05, 0x4E, 0x40, 0xEA, 0x66, 0x6A, 0xA3, 0xF3, 0x8C, 0xA0, 0xA3, 0xF3, 0x50, 0xD8, 0xA3, 0xF3, 0x58, 0xD8, 0x80, 0x4A, 0x9D, 0x4A, 0x8C, 0xEA, 0x04, 0x6C, @@ -3188,65 +3069,65 @@ u8 array_mp_8822c_fw_ap[] = { 0x2D, 0xC0, 0x43, 0x67, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x30, 0xF0, -0x20, 0x68, 0x45, 0xF7, 0x18, 0x48, 0xA3, 0xF3, +0x20, 0x68, 0x85, 0xF7, 0x08, 0x48, 0xA3, 0xF3, 0x8C, 0xA0, 0x01, 0x6B, 0x00, 0x6A, 0x8C, 0xEB, -0x22, 0x23, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, -0x58, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x03, 0x6A, +0x22, 0x23, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, +0x48, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x03, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, 0xA3, 0xF3, 0x4C, 0xC0, -0x00, 0x18, 0xC2, 0xCC, 0x04, 0xD2, 0x04, 0x94, -0x00, 0x18, 0xE3, 0xCC, 0xA3, 0xF3, 0x6C, 0xA0, +0x00, 0x18, 0xCA, 0xCB, 0x04, 0xD2, 0x04, 0x94, +0x00, 0x18, 0xEB, 0xCB, 0xA3, 0xF3, 0x6C, 0xA0, 0x02, 0x6A, 0xA3, 0xF3, 0xD4, 0x98, 0x6D, 0xEA, 0xA3, 0xF3, 0x4C, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, 0xFF, 0x6C, 0x6D, 0x4C, 0x01, 0x6D, 0x40, 0xEA, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF7, 0x18, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x85, 0xF7, 0x08, 0x4B, 0xA3, 0xF3, 0xAC, 0xA3, 0x02, 0x6C, 0x00, 0x6A, 0xAC, 0xEC, 0x0C, 0x24, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF2, 0x58, 0x9A, 0x00, 0x6C, 0x80, 0xC2, +0xE3, 0xF2, 0x48, 0x9A, 0x00, 0x6C, 0x80, 0xC2, 0x03, 0x6A, 0x4B, 0xEA, 0xAC, 0xEA, 0xA3, 0xF3, 0x4C, 0xC3, 0x01, 0x6A, 0x20, 0xE8, 0x00, 0x65, 0x00, 0x6A, 0x18, 0x6C, 0x98, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x45, 0xF7, 0x18, 0x4B, 0x01, 0x4A, +0x20, 0x6B, 0x85, 0xF7, 0x08, 0x4B, 0x01, 0x4A, 0x0A, 0x72, 0x12, 0xEC, 0x71, 0xE4, 0xC3, 0xF3, 0xA0, 0xA4, 0x02, 0x6B, 0x6B, 0xEB, 0xAC, 0xEB, 0xC3, 0xF3, 0x60, 0xC4, 0xEE, 0x61, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF3, 0x44, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x29, 0xF3, 0x54, 0xA2, 0x01, 0x6B, 0x4C, 0xEB, 0x00, 0x6A, 0x1C, 0x23, -0x30, 0xF0, 0x20, 0x6A, 0x29, 0xF3, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0x49, 0xF3, 0x18, 0x4A, 0x00, 0x6B, 0xA0, 0x9A, 0x8E, 0xED, 0x0F, 0x2D, 0x18, 0x6E, 0xD8, 0xEB, 0x30, 0xF0, 0x20, 0x6D, -0x45, 0xF7, 0x18, 0x4D, 0x12, 0xEE, 0xB9, 0xE6, +0x85, 0xF7, 0x08, 0x4D, 0x12, 0xEE, 0xB9, 0xE6, 0xC3, 0xF3, 0xE0, 0xA6, 0x02, 0x6D, 0xAB, 0xED, 0xEC, 0xED, 0xC3, 0xF3, 0xA0, 0xC6, 0x01, 0x4B, 0x0A, 0x73, 0x18, 0x4A, 0xEA, 0x61, 0x01, 0x6A, 0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x5D, 0x67, 0x0A, 0xD4, 0x20, 0xF0, 0x98, 0xA2, 0x30, 0xF0, 0x20, 0x6A, -0x0B, 0xD5, 0x0C, 0xD6, 0x45, 0xF7, 0x18, 0x4A, +0x0B, 0xD5, 0x0C, 0xD6, 0x85, 0xF7, 0x08, 0x4A, 0xA3, 0xF3, 0xAC, 0xA2, 0x01, 0x6B, 0x00, 0xF6, 0xE0, 0x31, 0xAC, 0xEB, 0x00, 0xF6, 0x23, 0x31, 0x80, 0xF0, 0x09, 0x23, 0x21, 0x24, 0x01, 0x74, 0x80, 0xF0, 0x05, 0x61, 0x0A, 0x93, 0x80, 0xF0, -0x02, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF2, -0x7C, 0x9B, 0xC3, 0xEB, 0x7C, 0x61, 0x7F, 0x71, +0x02, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, +0x6C, 0x9B, 0xC3, 0xEB, 0x7C, 0x61, 0x7F, 0x71, 0x7A, 0x60, 0xFF, 0xF7, 0x1F, 0x51, 0x77, 0x61, 0xA3, 0xF3, 0x10, 0x9A, 0x1B, 0xEE, 0x01, 0x28, 0xE5, 0xE8, 0x10, 0xEA, 0x12, 0xE8, 0x02, 0x22, 0x01, 0x48, 0x04, 0x10, 0x03, 0x28, 0x01, 0x68, 0x50, 0x67, 0x1D, 0x10, 0x01, 0x6B, 0x1E, 0x10, 0x0A, 0x94, 0x65, 0x24, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF2, 0x7C, 0x9B, 0x0C, 0x95, 0xA3, 0xEB, +0xE3, 0xF2, 0x6C, 0x9B, 0x0C, 0x95, 0xA3, 0xEB, 0x5E, 0x61, 0x7F, 0x71, 0x5C, 0x60, 0xFF, 0xF7, 0x1F, 0x51, 0x59, 0x61, 0xA3, 0xF3, 0x14, 0x9A, 0x1B, 0xED, 0x01, 0x28, 0xE5, 0xE8, 0x10, 0xEA, 0x12, 0xE8, 0x02, 0x22, 0x01, 0x48, 0x05, 0x10, 0x04, 0x28, 0x01, 0x68, 0x00, 0x6A, 0x04, 0xD2, 0x02, 0x10, 0x00, 0x6B, 0x04, 0xD3, 0x0A, 0x94, -0x00, 0x18, 0x6C, 0xCD, 0x00, 0x6C, 0xFF, 0x6E, +0x00, 0x18, 0x74, 0xCC, 0x00, 0x6C, 0xFF, 0x6E, 0xA4, 0x67, 0xCC, 0xED, 0x1D, 0x65, 0x18, 0x6D, -0xB8, 0xEC, 0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF7, -0x18, 0x4B, 0x01, 0x6D, 0x12, 0xEA, 0x69, 0xE2, +0xB8, 0xEC, 0x30, 0xF0, 0x20, 0x6B, 0x85, 0xF7, +0x08, 0x4B, 0x01, 0x6D, 0x12, 0xEA, 0x69, 0xE2, 0xC3, 0xF3, 0x40, 0xA2, 0xAC, 0xEA, 0xCC, 0xEA, 0x2F, 0x2A, 0xD8, 0x67, 0x18, 0x6F, 0xF8, 0xEE, 0x04, 0x96, 0xC4, 0x36, 0x04, 0xD6, 0x03, 0x6E, @@ -3264,46 +3145,46 @@ u8 array_mp_8822c_fw_ap[] = { 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, 0x06, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x29, 0xF3, 0x04, 0x4A, 0x00, 0x6C, -0x2C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x29, 0xF3, -0x04, 0x4A, 0x00, 0x6B, 0x18, 0x6D, 0xB8, 0xEB, -0x30, 0xF0, 0x20, 0x6C, 0x45, 0xF7, 0x18, 0x4C, +0x20, 0x6A, 0x49, 0xF3, 0x14, 0x4A, 0x00, 0x6C, +0x2C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x49, 0xF3, +0x14, 0x4A, 0x00, 0x6B, 0x18, 0x6D, 0xB8, 0xEB, +0x30, 0xF0, 0x20, 0x6C, 0x85, 0xF7, 0x08, 0x4C, 0x12, 0xED, 0x91, 0xE5, 0xC3, 0xF3, 0xC0, 0xA4, 0x01, 0x6D, 0xAC, 0xEE, 0x08, 0x26, 0xC3, 0xF3, 0x80, 0xA4, 0x86, 0x34, 0xAC, 0xEC, 0x03, 0x24, 0x80, 0x9A, 0x01, 0x4C, 0x80, 0xDA, 0x01, 0x4B, 0x0A, 0x73, 0x18, 0x4A, 0xE7, 0x61, 0x00, 0x18, -0xC2, 0xCC, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x04, 0x93, 0x09, 0xF3, 0x48, 0x9A, 0x6E, 0xEA, -0x52, 0x22, 0x04, 0x94, 0x00, 0x18, 0xE3, 0xCC, +0xCA, 0xCB, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0x93, 0x29, 0xF3, 0x58, 0x9A, 0x6E, 0xEA, +0x52, 0x22, 0x04, 0x94, 0x00, 0x18, 0xEB, 0xCB, 0x4E, 0x10, 0x18, 0x6D, 0xB8, 0xEC, 0x30, 0xF0, -0x20, 0x6B, 0x45, 0xF7, 0x18, 0x4B, 0x12, 0xED, +0x20, 0x6B, 0x85, 0xF7, 0x08, 0x4B, 0x12, 0xED, 0x6D, 0xE5, 0xC3, 0xF3, 0xC0, 0xA3, 0x01, 0x6D, 0xAC, 0xEE, 0x0A, 0x26, 0xC3, 0xF3, 0x60, 0xA3, 0x66, 0x33, 0xAC, 0xEB, 0xFF, 0x6D, 0xAC, 0xEB, 0x03, 0x2B, 0x60, 0x9A, 0x01, 0x4B, 0x60, 0xDA, 0x01, 0x4C, 0x0A, 0x74, 0x18, 0x4A, 0xE5, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0xA3, 0xF3, 0x6D, 0xA2, 0xFF, 0x73, 0x2B, 0x61, 0xA3, 0xF3, 0x7C, 0x9A, 0x01, 0x4B, 0xA3, 0xF3, 0x7C, 0xDA, 0xA3, 0xF3, 0x58, 0x9A, 0x4E, 0xEB, -0x22, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0x29, 0xF3, -0x04, 0x4A, 0x18, 0x6D, 0xB8, 0xEB, 0x30, 0xF0, -0x20, 0x6C, 0x45, 0xF7, 0x18, 0x4C, 0x12, 0xED, +0x22, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0x49, 0xF3, +0x14, 0x4A, 0x18, 0x6D, 0xB8, 0xEB, 0x30, 0xF0, +0x20, 0x6C, 0x85, 0xF7, 0x08, 0x4C, 0x12, 0xED, 0x91, 0xE5, 0xC3, 0xF3, 0xC0, 0xA4, 0x01, 0x6D, 0xAC, 0xEE, 0x08, 0x26, 0xC3, 0xF3, 0x80, 0xA4, 0x86, 0x34, 0xAC, 0xEC, 0x03, 0x24, 0x80, 0x9A, 0x01, 0x4C, 0x80, 0xDA, 0x01, 0x4B, 0x0A, 0x73, 0x18, 0x4A, 0xE7, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x78, 0x67, 0x09, 0xF3, 0x74, 0xDA, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, 0xA0, 0xF0, +0x78, 0x67, 0x49, 0xF3, 0x64, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0xA0, 0xF0, 0x64, 0x9A, 0x02, 0xF0, 0x00, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x09, 0xF3, 0x19, 0x48, 0x00, 0x69, 0x18, 0x6A, -0x58, 0xE9, 0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF7, -0x18, 0x4B, 0x12, 0xEA, 0x69, 0xE2, 0xC3, 0xF3, +0x49, 0xF3, 0x09, 0x48, 0x00, 0x69, 0x18, 0x6A, +0x58, 0xE9, 0x30, 0xF0, 0x20, 0x6B, 0x85, 0xF7, +0x08, 0x4B, 0x12, 0xEA, 0x69, 0xE2, 0xC3, 0xF3, 0x80, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, 0x27, 0x23, 0x00, 0xF0, 0x8B, 0x98, 0x00, 0xF0, 0x67, 0x98, 0x63, 0xEC, 0x21, 0x61, 0x61, 0x80, 0x81, 0x43, @@ -3319,46 +3200,46 @@ u8 array_mp_8822c_fw_ap[] = { 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6D, 0x8C, 0xED, 0x18, 0x4D, 0x01, 0x6A, 0x44, 0xED, 0x00, 0x6C, -0xA2, 0x67, 0x80, 0x18, 0xD3, 0x5E, 0x05, 0x97, +0xA2, 0x67, 0x80, 0x18, 0x5C, 0x5D, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6D, 0x8C, 0xED, 0x18, 0x4D, 0x01, 0x6A, 0x44, 0xED, 0x00, 0x6C, 0xA2, 0x67, 0x80, 0x18, -0x04, 0x5F, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x8D, 0x5D, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xDD, 0x63, 0x45, 0x62, 0x44, 0xD1, 0x43, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x69, 0xC3, 0xF2, -0x48, 0x9A, 0x8C, 0xE9, 0x30, 0x31, 0x49, 0xE1, +0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x69, 0xE3, 0xF2, +0x58, 0x9A, 0x8C, 0xE9, 0x30, 0x31, 0x49, 0xE1, 0x40, 0xD2, 0x40, 0xA2, 0x00, 0xF6, 0x40, 0x32, 0x00, 0xF6, 0x43, 0x32, 0x00, 0x52, 0x40, 0x60, 0x01, 0x6A, 0x7D, 0x67, 0x4B, 0xEA, 0x54, 0xC3, 0x0F, 0x6A, 0x56, 0xC3, 0x10, 0x6A, 0x57, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, 0x54, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, 0x58, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x06, 0x04, 0x49, 0xE1, 0x40, 0x9A, 0x04, 0x05, 0x04, 0x6E, 0x04, 0xD2, 0x80, 0xF2, 0x4C, 0x98, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF2, 0x4C, 0x9A, 0x07, 0x04, +0x20, 0x6A, 0xE3, 0xF2, 0x5C, 0x9A, 0x07, 0x04, 0x04, 0x05, 0x49, 0xE1, 0x40, 0x9A, 0x04, 0x6E, 0x04, 0xD2, 0x80, 0xF2, 0x4C, 0x98, 0x40, 0xEA, 0x40, 0x93, 0x08, 0x04, 0x04, 0x05, 0x40, 0x9B, 0x04, 0x6E, 0x04, 0xD2, 0x80, 0xF2, 0x4C, 0x98, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, -0x50, 0x9A, 0x09, 0x04, 0x04, 0x05, 0x45, 0xE1, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, +0x40, 0x9A, 0x09, 0x04, 0x04, 0x05, 0x45, 0xE1, 0x40, 0x99, 0x04, 0x6E, 0x04, 0xD2, 0x80, 0xF2, 0x4C, 0x98, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, 0x05, 0x04, 0x40, 0xEA, 0x45, 0x97, 0x44, 0x91, 0x43, 0x90, 0x23, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, -0x62, 0xF7, 0x94, 0x9C, 0x50, 0x33, 0x91, 0xE3, -0x80, 0x9C, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF2, -0x8C, 0x9C, 0x8D, 0xE3, 0x82, 0x67, 0x60, 0x9B, -0x00, 0x18, 0x4E, 0xCE, 0x05, 0x97, 0x03, 0x63, +0x82, 0xF7, 0x98, 0x9C, 0x50, 0x33, 0x91, 0xE3, +0x80, 0x9C, 0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF2, +0x9C, 0x9C, 0x8D, 0xE3, 0x82, 0x67, 0x60, 0x9B, +0x00, 0x18, 0x56, 0xCD, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0x54, 0x9A, -0xC3, 0xF2, 0x78, 0x9B, 0x00, 0xA2, 0x20, 0xA3, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, 0x44, 0x9A, +0x03, 0xF3, 0x68, 0x9B, 0x00, 0xA2, 0x20, 0xA3, 0xFF, 0x6A, 0x4C, 0xE8, 0x4C, 0xE9, 0x2A, 0xE8, -0x35, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, -0x54, 0x9A, 0x10, 0x33, 0x49, 0xE3, 0x40, 0xA2, +0x35, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, +0x58, 0x9A, 0x10, 0x33, 0x49, 0xE3, 0x40, 0xA2, 0xFF, 0x6B, 0x6C, 0xEA, 0x56, 0x32, 0x6C, 0xEA, 0x02, 0x72, 0x0E, 0x60, 0x03, 0x5A, 0x02, 0x60, 0x06, 0x22, 0x1A, 0x10, 0x04, 0x72, 0x0D, 0x60, @@ -3369,48 +3250,48 @@ u8 array_mp_8822c_fw_ap[] = { 0x58, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x5C, 0x9A, 0x90, 0x67, 0x40, 0xEA, 0x01, 0x48, 0x7F, 0x6A, 0x4C, 0xE8, 0x0A, 0xE9, -0xD0, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, -0x54, 0x9A, 0x20, 0xC2, 0x07, 0x97, 0x06, 0x91, +0xD0, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, +0x44, 0x9A, 0x20, 0xC2, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0xFF, 0x6B, 0xE2, 0x67, 0x6C, 0xEE, 0x6C, 0xEF, 0x1E, 0x65, 0x87, 0x67, 0x03, 0x6E, 0xCC, 0xEC, 0x80, 0xF0, -0x10, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF2, -0x00, 0x9C, 0x08, 0x69, 0x42, 0x32, 0x80, 0xA0, +0x10, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF3, +0x0C, 0x9C, 0x08, 0x69, 0x42, 0x32, 0x80, 0xA0, 0x52, 0x32, 0x6C, 0xEA, 0x6C, 0xEC, 0x2D, 0xEC, 0x6C, 0xEC, 0x80, 0xC0, 0x30, 0xF0, 0x20, 0x6C, -0xE3, 0xF2, 0x84, 0x9C, 0xCC, 0xEA, 0xE0, 0xC4, -0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF2, 0x88, 0x9C, +0x03, 0xF3, 0x90, 0x9C, 0xCC, 0xEA, 0xE0, 0xC4, +0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF3, 0x94, 0x9C, 0x40, 0xC4, 0x0F, 0x6A, 0x98, 0x67, 0x8C, 0xEA, 0x74, 0x22, 0x01, 0x6C, 0x4C, 0xEC, 0x06, 0x24, -0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF2, 0x8C, 0x9C, +0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF3, 0x98, 0x9C, 0xAC, 0xEB, 0x60, 0xC4, 0x02, 0x6B, 0x4C, 0xEB, 0x08, 0x23, 0xFF, 0x6C, 0xA2, 0x33, 0x8C, 0xEB, -0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF2, 0x90, 0x9C, +0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF3, 0x9C, 0x9C, 0x60, 0xC4, 0x04, 0x6B, 0x4C, 0xEB, 0x09, 0x23, 0xA2, 0x33, 0xFF, 0x6C, 0x62, 0x33, 0x8C, 0xEB, -0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF2, 0x94, 0x9C, +0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF3, 0x80, 0x9C, 0x60, 0xC4, 0x4E, 0x33, 0x07, 0x23, 0x30, 0xF0, -0x20, 0x6B, 0xE3, 0xF2, 0x78, 0x9B, 0x00, 0xF6, +0x20, 0x6B, 0x23, 0xF3, 0x64, 0x9B, 0x00, 0xF6, 0xA2, 0x35, 0xA0, 0xC3, 0x20, 0x6B, 0x4D, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x5C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x48, 0x9A, 0x64, 0x68, 0x60, 0xC2, 0x2C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0xFF, 0x48, 0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0x21, 0x28, 0x30, 0xF0, 0x20, 0x6A, -0x62, 0xF6, 0x70, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0xC2, 0xF7, 0x8C, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0x63, 0xF3, 0x64, 0x9A, 0x8D, 0xEB, +0x82, 0xF6, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x03, 0xF0, 0x80, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0x63, 0xF3, 0x64, 0x9A, 0x8D, 0xEB, 0x63, 0xF3, 0x64, 0xDA, 0x60, 0xA1, 0xD0, 0x6A, 0x6C, 0xEA, 0x40, 0xC1, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF2, 0x60, 0x9A, 0xF7, 0x6A, 0x80, 0xA3, +0x03, 0xF3, 0x6C, 0x9A, 0xF7, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x16, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF2, 0x3C, 0x9A, 0x20, 0x6A, +0x20, 0x6A, 0x23, 0xF3, 0x28, 0x9A, 0x20, 0x6A, 0x60, 0xA1, 0x6C, 0xEA, 0xCC, 0x2A, 0x60, 0xA1, 0xF0, 0x6A, 0x6C, 0xEA, 0x40, 0xC1, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF2, 0x60, 0x9A, 0xF7, 0x6A, +0x20, 0x6A, 0x03, 0xF3, 0x6C, 0x9A, 0xF7, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, @@ -3418,523 +3299,523 @@ u8 array_mp_8822c_fw_ap[] = { 0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0xC2, 0x67, 0xFF, 0x6C, 0x8C, 0xEE, 0x03, 0x6D, 0x66, 0x67, 0xAC, 0xEB, 0x4B, 0x2B, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF2, 0xE0, 0x9B, 0x08, 0x68, 0x42, 0x32, +0x03, 0xF3, 0xEC, 0x9B, 0x08, 0x68, 0x42, 0x32, 0x60, 0xA7, 0x52, 0x32, 0x8C, 0xEA, 0x8C, 0xEB, 0x0D, 0xEB, 0x8C, 0xEB, 0x60, 0xC7, 0x30, 0xF0, -0x20, 0x6B, 0xE3, 0xF2, 0x64, 0x9B, 0xAC, 0xEA, +0x20, 0x6B, 0x03, 0xF3, 0x70, 0x9B, 0xAC, 0xEA, 0x64, 0x68, 0xC0, 0xC3, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF2, 0x68, 0x9B, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF2, 0x5C, 0x9A, 0x30, 0x6B, +0x03, 0xF3, 0x74, 0x9B, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF3, 0x48, 0x9A, 0x30, 0x6B, 0x60, 0xC2, 0x2E, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0xFF, 0x48, 0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, -0x23, 0x28, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, -0x70, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF7, -0x8C, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, +0x23, 0x28, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, +0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF0, +0x80, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0x63, 0xF3, 0x64, 0x9A, 0x8D, 0xEB, 0x63, 0xF3, 0x64, 0xDA, 0x60, 0xA1, 0xCF, 0x6A, 0x6C, 0xEA, -0x40, 0xC1, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, -0x60, 0x9A, 0xF7, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC1, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, +0x6C, 0x9A, 0xF7, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x6A, 0x4B, 0xEA, 0x19, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x3C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x28, 0x9A, 0x20, 0x6A, 0x60, 0xA1, 0x6C, 0xEA, 0xCA, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x4C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, 0x58, 0x9A, 0xEF, 0x6B, 0x40, 0x9A, 0x80, 0xA1, 0x8C, 0xEB, -0x60, 0xC1, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, -0x80, 0x9B, 0xF7, 0x6B, 0xA0, 0xA4, 0xAC, 0xEB, +0x60, 0xC1, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, +0x8C, 0x9B, 0xF7, 0x6B, 0xA0, 0xA4, 0xAC, 0xEB, 0x60, 0xC4, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, 0xA0, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0xAC, 0x9A, 0xE0, 0xF3, 0x10, 0x6C, 0x0F, 0x6E, 0x00, 0x18, -0xAE, 0xCE, 0xE0, 0xF3, 0x0C, 0x6C, 0x00, 0x18, -0x02, 0xCF, 0xFF, 0x6B, 0x4C, 0xEB, 0x0B, 0x73, -0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, -0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF3, -0x88, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, 0x40, 0xDB, +0xB6, 0xCD, 0xE0, 0xF3, 0x0C, 0x6C, 0x00, 0x18, +0x0A, 0xCE, 0xFF, 0x6B, 0x4C, 0xEB, 0x0B, 0x73, +0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, +0x70, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF3, +0x94, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, 0x6C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x78, 0x9A, 0xFF, 0x6C, 0x20, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x40, 0xA3, 0x01, 0x6D, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x48, 0xF5, 0x44, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x68, 0xF5, 0x54, 0xA2, 0x01, 0x72, 0x0C, 0x61, 0x01, 0x6C, 0x10, 0x6D, -0x00, 0x18, 0xD2, 0xC5, 0x04, 0x6B, 0x4D, 0xEB, +0x00, 0x18, 0xE1, 0xC4, 0x04, 0x6B, 0x4D, 0xEB, 0xFF, 0x6E, 0x01, 0x6C, 0x10, 0x6D, 0x6C, 0xEE, -0x00, 0x18, 0xC1, 0xC5, 0x05, 0x97, 0x03, 0x63, +0x00, 0x18, 0xD0, 0xC4, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x48, 0xF5, 0x44, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x68, 0xF5, 0x54, 0xA2, 0x01, 0x72, 0x0A, 0x61, 0x01, 0x6C, 0x10, 0x6D, -0x00, 0x18, 0xD2, 0xC5, 0xFB, 0x6E, 0x01, 0x6C, -0x10, 0x6D, 0x4C, 0xEE, 0x00, 0x18, 0xC1, 0xC5, +0x00, 0x18, 0xE1, 0xC4, 0xFB, 0x6E, 0x01, 0x6C, +0x10, 0x6D, 0x4C, 0xEE, 0x00, 0x18, 0xD0, 0xC4, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0x8C, 0xEA, 0x0F, 0x5A, 0x08, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x48, 0x34, 0x02, 0xF5, 0x00, 0x4B, 0x8D, 0xE3, 0x60, 0x9B, 0x00, 0xEB, 0x00, 0x6A, 0x20, 0xE8, 0xD0, 0xF4, 0x64, 0x42, 0x1F, 0xF7, 0x00, 0x6C, 0x8C, 0xEB, 0x05, 0x2B, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF3, 0x64, 0x9B, -0x2F, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF3, -0x68, 0x9B, 0x2A, 0x10, 0x80, 0xF4, 0x64, 0x42, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF3, 0x6C, 0x9B, +0x2F, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF3, +0x70, 0x9B, 0x2A, 0x10, 0x80, 0xF4, 0x64, 0x42, 0x1F, 0xF7, 0x00, 0x6C, 0x8C, 0xEB, 0x05, 0x2B, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF3, 0x6C, 0x9B, -0x1F, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF3, -0x70, 0x9B, 0x1A, 0x10, 0xC0, 0xF4, 0x68, 0x42, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF3, 0x74, 0x9B, +0x1F, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF3, +0x78, 0x9B, 0x1A, 0x10, 0xC0, 0xF4, 0x68, 0x42, 0x1F, 0xF7, 0x00, 0x6C, 0x8C, 0xEB, 0x05, 0x2B, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF3, 0x74, 0x9B, -0x0F, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF3, -0x78, 0x9B, 0x0A, 0x10, 0x70, 0xF4, 0x68, 0x42, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF3, 0x7C, 0x9B, +0x0F, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, +0x60, 0x9B, 0x0A, 0x10, 0x70, 0xF4, 0x68, 0x42, 0x1F, 0xF7, 0x00, 0x6C, 0x8C, 0xEB, 0x0A, 0x2B, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF3, 0x7C, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x64, 0x9B, 0x69, 0xE2, 0x60, 0xAA, 0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF3, 0x60, 0x9B, 0x69, 0xE2, 0x60, 0xAA, +0x63, 0xF3, 0x68, 0x9B, 0x69, 0xE2, 0x60, 0xAA, 0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, 0x70, 0x9B, 0x10, 0xF0, -0x23, 0x6A, 0x67, 0xF6, 0x11, 0x4A, 0x40, 0xDB, -0x00, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, -0x58, 0x9A, 0x40, 0x9A, 0x21, 0x22, 0xE0, 0xF3, +0x23, 0x6A, 0x87, 0xF2, 0x11, 0x4A, 0x40, 0xDB, +0x00, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, +0x48, 0x9A, 0x40, 0x9A, 0x21, 0x22, 0xE0, 0xF3, 0x09, 0x70, 0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x62, 0xF6, 0x70, 0x9A, 0x20, 0x6C, 0x40, 0x9B, +0x82, 0xF6, 0x78, 0x9A, 0x20, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0x63, 0xF3, 0x64, 0x9A, +0x85, 0xF7, 0x08, 0x4A, 0x63, 0xF3, 0x64, 0x9A, 0x8D, 0xEB, 0x63, 0xF3, 0x64, 0xDA, 0x00, 0x6A, 0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x32, 0x6C, 0x01, 0x48, 0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0xD9, 0x17, 0x01, 0x6A, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x48, 0xF5, 0x44, 0xA2, 0x03, 0x72, 0x0D, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x80, 0x9A, +0x68, 0xF5, 0x54, 0xA2, 0x03, 0x72, 0x0D, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, 0x8C, 0x9A, 0xFF, 0x6A, 0x60, 0xA4, 0x6C, 0xEA, 0x10, 0x6B, 0x4C, 0xEB, 0x03, 0x23, 0xEF, 0x6B, 0x4C, 0xEB, 0x60, 0xC4, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x27, 0x67, 0x4C, 0xE9, 0x6F, 0x41, 0x4C, 0xEB, 0x04, 0x67, 0x02, 0x5B, 0x4C, 0xE8, 0x4C, 0xED, 0x4C, 0xEE, -0x03, 0x61, 0x90, 0x67, 0x00, 0x18, 0x7E, 0xCC, +0x03, 0x61, 0x90, 0x67, 0x00, 0x18, 0x86, 0xCB, 0x10, 0x58, 0x55, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x08, 0x33, 0x22, 0xF5, 0x1C, 0x4A, 0x69, 0xE2, 0x40, 0x9A, 0x00, 0xEA, 0xD0, 0xF4, 0x44, 0x40, 0x1F, 0xF7, 0x00, 0x6B, 0x6C, 0xEA, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x64, 0x9A, -0x34, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, -0x68, 0x9A, 0x2F, 0x10, 0x80, 0xF4, 0x44, 0x40, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, 0x6C, 0x9A, +0x34, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, +0x70, 0x9A, 0x2F, 0x10, 0x80, 0xF4, 0x44, 0x40, 0x1F, 0xF7, 0x00, 0x6B, 0x6C, 0xEA, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x6C, 0x9A, -0x24, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, -0x70, 0x9A, 0x1F, 0x10, 0xC0, 0xF4, 0x48, 0x40, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, 0x74, 0x9A, +0x24, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, +0x78, 0x9A, 0x1F, 0x10, 0xC0, 0xF4, 0x48, 0x40, 0x1F, 0xF7, 0x00, 0x6B, 0x6C, 0xEA, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x74, 0x9A, -0x14, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, -0x78, 0x9A, 0x0F, 0x10, 0x70, 0xF4, 0x48, 0x40, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, 0x7C, 0x9A, +0x14, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, +0x60, 0x9A, 0x0F, 0x10, 0x70, 0xF4, 0x48, 0x40, 0x1F, 0xF7, 0x00, 0x6B, 0x6C, 0xEA, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x7C, 0x9A, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, -0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0x6D, 0xE0, 0x41, 0xE0, 0x43, 0xF3, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x64, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, +0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0x6D, 0xE0, 0x41, 0xE0, 0x43, 0xF3, 0x80, 0xA0, 0x43, 0xF3, 0x50, 0xA0, 0x8D, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0x89, 0xF2, 0x35, 0xC2, 0x07, 0x97, +0x20, 0x6A, 0xC9, 0xF2, 0x25, 0xC2, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF3, 0x4C, 0x9A, 0x43, 0xF3, 0x70, 0x9B, +0x63, 0xF3, 0x54, 0x9A, 0x63, 0xF3, 0x78, 0x9B, 0x40, 0xAA, 0x60, 0xAB, 0x6E, 0xEA, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, 0x01, 0x5A, 0x58, 0x67, 0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, 0x70, 0x9B, 0x10, 0xF0, 0x23, 0x6A, -0x08, 0xF0, 0x15, 0x4A, 0x40, 0xDB, 0x01, 0x4A, +0x27, 0xF4, 0x15, 0x4A, 0x40, 0xDB, 0x01, 0x4A, 0x40, 0xDB, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, 0x90, 0x9B, 0x10, 0xF0, 0x23, 0x6A, -0x28, 0xF0, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x40, 0xDC, 0x45, 0xF7, 0x18, 0x4B, 0xB3, 0x9B, +0x47, 0xF4, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xDC, 0x85, 0xF7, 0x08, 0x4B, 0xB3, 0x9B, 0x04, 0x25, 0x00, 0x6D, 0x01, 0x4A, 0xB3, 0xDB, 0x40, 0xDC, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, 0x70, 0x9B, 0x10, 0xF0, 0x23, 0x6A, -0x48, 0xF0, 0x15, 0x4A, 0x40, 0xDB, 0x01, 0x4A, +0x67, 0xF4, 0x15, 0x4A, 0x40, 0xDB, 0x01, 0x4A, 0x40, 0xDB, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, 0x70, 0x9B, 0x10, 0xF0, 0x23, 0x6A, -0x68, 0xF0, 0x0D, 0x4A, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF3, 0x74, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF1, 0x5C, 0x9A, 0x80, 0x9B, +0x87, 0xF4, 0x0D, 0x4A, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF3, 0x7C, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x50, 0x9A, 0x80, 0x9B, 0xA4, 0x67, 0x4C, 0xED, 0x4E, 0xED, 0x02, 0x25, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, 0x54, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x5C, 0x9A, 0x01, 0x6B, 0x40, 0x9A, 0x6C, 0xEA, 0x60, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, 0x58, 0x9A, -0x00, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, -0x5C, 0x9A, 0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0x40, 0x9A, 0xC0, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF3, 0x44, 0x9A, 0xA0, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x48, 0x9A, -0x80, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, -0x4C, 0x9A, 0x40, 0x9A, 0x41, 0x22, 0x30, 0xF0, -0x20, 0x69, 0x63, 0xF3, 0x30, 0x99, 0x60, 0xD9, -0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF6, 0x60, 0x9B, -0x00, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF7, -0x7C, 0x9B, 0xE0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF3, 0x74, 0x9B, 0xC0, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF3, 0x78, 0x9B, 0xA0, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x7C, 0x9B, -0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, -0x60, 0x9B, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF0, -0x88, 0x9C, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x62, 0xF6, 0x70, 0x9A, 0x40, 0x9B, 0x8D, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, 0x40, 0x9A, +0x00, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, +0x44, 0x9A, 0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF3, 0x48, 0x9A, 0xC0, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF3, 0x4C, 0x9A, 0xA0, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, 0x50, 0x9A, +0x80, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, +0x54, 0x9A, 0x40, 0x9A, 0x41, 0x22, 0x30, 0xF0, +0x20, 0x69, 0x83, 0xF3, 0x38, 0x99, 0x60, 0xD9, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF6, 0x68, 0x9B, +0x00, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, +0x60, 0x9B, 0xE0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF3, 0x7C, 0x9B, 0xC0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF3, 0x60, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, 0x64, 0x9B, +0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, +0x68, 0x9B, 0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF0, +0x9C, 0x9C, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF6, 0x78, 0x9A, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x5C, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x7D, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x77, 0xF0, 0x24, 0x6C, 0xC0, 0xF1, 0x04, 0x4C, 0xAE, 0xB8, 0x00, 0x65, 0xA0, 0xDC, 0x9A, 0xB8, 0x00, 0x65, 0xBB, 0xB8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, 0x70, 0x9B, -0x10, 0xF0, 0x23, 0x6A, 0x68, 0xF0, 0x0E, 0x4A, +0x10, 0xF0, 0x23, 0x6A, 0x87, 0xF4, 0x0E, 0x4A, 0x40, 0xDB, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, 0x70, 0x9B, -0x10, 0xF0, 0x23, 0x6A, 0x88, 0xF1, 0x1D, 0x4A, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF7, -0x74, 0x9A, 0x63, 0x23, 0x01, 0x6A, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x18, 0x94, 0xCB, 0x30, 0xF0, -0x20, 0x6A, 0xA5, 0xF7, 0x54, 0x9A, 0x02, 0x6B, -0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x95, 0xCB, -0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF7, 0x54, 0x9A, +0x10, 0xF0, 0x23, 0x6A, 0xA7, 0xF5, 0x1D, 0x4A, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xE5, 0xF7, +0x64, 0x9A, 0x63, 0x23, 0x01, 0x6A, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0x9C, 0xCA, 0x30, 0xF0, +0x20, 0x6A, 0xE5, 0xF7, 0x44, 0x9A, 0x02, 0x6B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x9D, 0xCA, +0x30, 0xF0, 0x20, 0x6A, 0xE5, 0xF7, 0x44, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, -0x15, 0xCC, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF7, -0x54, 0x9A, 0x08, 0x6B, 0x6C, 0xEA, 0x02, 0x22, -0x00, 0x18, 0x96, 0xCB, 0x30, 0xF0, 0x20, 0x6A, -0xA5, 0xF7, 0x54, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x18, 0x97, 0xCB, 0x30, 0xF0, -0x20, 0x6A, 0xA5, 0xF7, 0x54, 0x9A, 0x20, 0x6B, -0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x98, 0xCB, -0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF7, 0x54, 0x9A, +0x1D, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0xE5, 0xF7, +0x44, 0x9A, 0x08, 0x6B, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0x9E, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0xE5, 0xF7, 0x44, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0x9F, 0xCA, 0x30, 0xF0, +0x20, 0x6A, 0xE5, 0xF7, 0x44, 0x9A, 0x20, 0x6B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0xA0, 0xCA, +0x30, 0xF0, 0x20, 0x6A, 0xE5, 0xF7, 0x44, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, -0xEA, 0xCB, 0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF7, -0x74, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x18, 0xDC, 0xCB, 0x30, 0xF0, -0x20, 0x6B, 0xA5, 0xF7, 0x74, 0x9B, 0x04, 0xF0, +0xF2, 0xCA, 0x30, 0xF0, 0x20, 0x6B, 0xE5, 0xF7, +0x64, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0xE4, 0xCA, 0x30, 0xF0, +0x20, 0x6B, 0xE5, 0xF7, 0x64, 0x9B, 0x04, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, -0x99, 0xCB, 0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF7, -0x74, 0x9B, 0x08, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x18, 0x9A, 0xCB, 0x30, 0xF0, -0x20, 0x6B, 0xA5, 0xF7, 0x74, 0x9B, 0x10, 0xF0, +0xA1, 0xCA, 0x30, 0xF0, 0x20, 0x6B, 0xE5, 0xF7, +0x64, 0x9B, 0x08, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0xA2, 0xCA, 0x30, 0xF0, +0x20, 0x6B, 0xE5, 0xF7, 0x64, 0x9B, 0x10, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, -0x9B, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF7, -0x78, 0x9A, 0x14, 0x23, 0x30, 0xF0, 0x20, 0x6A, -0xA2, 0xF6, 0x40, 0x9A, 0x6C, 0xEA, 0x02, 0x22, -0x00, 0x18, 0x9F, 0xCB, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF6, 0x54, 0x9A, -0xA5, 0xF7, 0x78, 0x9B, 0x6C, 0xEA, 0x02, 0x22, -0x00, 0x18, 0xD8, 0xCB, 0x30, 0xF0, 0x20, 0x6A, -0xA5, 0xF7, 0x7C, 0x9A, 0x4C, 0x23, 0x01, 0x6A, +0xA3, 0xCA, 0x30, 0xF0, 0x20, 0x6A, 0xE5, 0xF7, +0x68, 0x9A, 0x14, 0x23, 0x30, 0xF0, 0x20, 0x6A, +0xC2, 0xF6, 0x48, 0x9A, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0xA7, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF6, 0x5C, 0x9A, +0xE5, 0xF7, 0x68, 0x9B, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0xE0, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0xE5, 0xF7, 0x6C, 0x9A, 0x4C, 0x23, 0x01, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, -0x9C, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF7, -0x5C, 0x9A, 0x02, 0x6B, 0x6C, 0xEA, 0x03, 0x22, -0x01, 0x6C, 0x00, 0x18, 0x9D, 0xCB, 0x30, 0xF0, -0x20, 0x6A, 0xA5, 0xF7, 0x5C, 0x9A, 0x04, 0x6B, +0xA4, 0xCA, 0x30, 0xF0, 0x20, 0x6A, 0xE5, 0xF7, +0x4C, 0x9A, 0x02, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x01, 0x6C, 0x00, 0x18, 0xA5, 0xCA, 0x30, 0xF0, +0x20, 0x6A, 0xE5, 0xF7, 0x4C, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, -0x9C, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF7, -0x5C, 0x9A, 0x08, 0x6B, 0x6C, 0xEA, 0x03, 0x22, -0x02, 0x6C, 0x00, 0x18, 0x9D, 0xCB, 0x30, 0xF0, -0x20, 0x6A, 0xA5, 0xF7, 0x5C, 0x9A, 0x10, 0x6B, +0xA4, 0xCA, 0x30, 0xF0, 0x20, 0x6A, 0xE5, 0xF7, +0x4C, 0x9A, 0x08, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x02, 0x6C, 0x00, 0x18, 0xA5, 0xCA, 0x30, 0xF0, +0x20, 0x6A, 0xE5, 0xF7, 0x4C, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, -0x9C, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF7, -0x5C, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x03, 0x22, -0x03, 0x6C, 0x00, 0x18, 0x9D, 0xCB, 0x30, 0xF0, -0x20, 0x6A, 0xA5, 0xF7, 0x5C, 0x9A, 0x40, 0x6B, +0xA4, 0xCA, 0x30, 0xF0, 0x20, 0x6A, 0xE5, 0xF7, +0x4C, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x03, 0x6C, 0x00, 0x18, 0xA5, 0xCA, 0x30, 0xF0, +0x20, 0x6A, 0xE5, 0xF7, 0x4C, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, -0x9C, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF7, -0x5C, 0x9A, 0x80, 0x6B, 0x6C, 0xEA, 0x03, 0x22, -0x04, 0x6C, 0x00, 0x18, 0x9D, 0xCB, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, 0x00, 0x6B, +0xA4, 0xCA, 0x30, 0xF0, 0x20, 0x6A, 0xE5, 0xF7, +0x4C, 0x9A, 0x80, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x04, 0x6C, 0x00, 0x18, 0xA5, 0xCA, 0x30, 0xF0, +0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0x00, 0x6B, 0x77, 0xDA, 0x78, 0xDA, 0x79, 0xDA, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, 0x70, 0x9B, 0x10, 0xF0, -0x23, 0x6A, 0x88, 0xF1, 0x1E, 0x4A, 0x40, 0xDB, +0x23, 0x6A, 0xA7, 0xF5, 0x1E, 0x4A, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, 0x70, 0x9B, 0x10, 0xF0, 0x23, 0x6A, -0x88, 0xF3, 0x01, 0x4A, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x65, 0xF7, 0x78, 0x9A, 0xE0, 0xF0, +0xA7, 0xF7, 0x01, 0x4A, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF7, 0x68, 0x9A, 0xE0, 0xF0, 0x14, 0x23, 0x02, 0x6A, 0x6C, 0xEA, 0x02, 0x22, -0x00, 0x18, 0x76, 0xCB, 0x30, 0xF0, 0x20, 0x6A, -0x65, 0xF7, 0x58, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x18, 0x37, 0xCC, 0x30, 0xF0, -0x20, 0x6A, 0x65, 0xF7, 0x58, 0x9A, 0x20, 0x6B, -0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x33, 0xCC, -0x30, 0xF0, 0x20, 0x6A, 0x65, 0xF7, 0x58, 0x9A, +0x00, 0x18, 0x7E, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF7, 0x48, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0x3F, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF7, 0x48, 0x9A, 0x20, 0x6B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x3B, 0xCB, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF7, 0x48, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, -0x7B, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x65, 0xF7, -0x58, 0x9A, 0x80, 0x6B, 0x6C, 0xEA, 0x05, 0x22, +0x83, 0xCA, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF7, +0x48, 0x9A, 0x80, 0x6B, 0x6C, 0xEA, 0x05, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x48, 0x9A, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x65, 0xF7, -0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x18, 0x2F, 0xCC, 0x30, 0xF0, -0x20, 0x6B, 0x65, 0xF7, 0x78, 0x9B, 0x00, 0xF2, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF7, +0x68, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0x37, 0xCB, 0x30, 0xF0, +0x20, 0x6B, 0xA5, 0xF7, 0x68, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, -0x2B, 0xCC, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF3, 0x44, 0x9A, 0x65, 0xF7, -0x78, 0x9B, 0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0xA2, 0xF6, 0x40, 0x9A, 0x6C, 0xEA, -0x04, 0x22, 0x00, 0x6C, 0x00, 0x18, 0xB3, 0xCB, -0x03, 0x10, 0x00, 0x6C, 0x00, 0x18, 0xAA, 0xCB, +0x33, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF3, 0x4C, 0x9A, 0xA5, 0xF7, +0x68, 0x9B, 0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF6, 0x48, 0x9A, 0x6C, 0xEA, +0x04, 0x22, 0x00, 0x6C, 0x00, 0x18, 0xBB, 0xCA, +0x03, 0x10, 0x00, 0x6C, 0x00, 0x18, 0xB2, 0xCA, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF3, 0x48, 0x9A, 0x65, 0xF7, 0x78, 0x9B, +0xA3, 0xF3, 0x50, 0x9A, 0xA5, 0xF7, 0x68, 0x9B, 0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0x62, 0xF6, 0x54, 0x9A, 0x6C, 0xEA, 0x04, 0x22, -0x01, 0x6C, 0x00, 0x18, 0xB3, 0xCB, 0x03, 0x10, -0x01, 0x6C, 0x00, 0x18, 0xAA, 0xCB, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, -0x4C, 0x9A, 0x65, 0xF7, 0x78, 0x9B, 0x6C, 0xEA, -0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF6, -0x5C, 0x9A, 0x6C, 0xEA, 0x04, 0x22, 0x02, 0x6C, -0x00, 0x18, 0xB3, 0xCB, 0x03, 0x10, 0x02, 0x6C, -0x00, 0x18, 0xAA, 0xCB, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0x50, 0x9A, -0x65, 0xF7, 0x78, 0x9B, 0x6C, 0xEA, 0x0D, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF7, 0x4C, 0x9A, +0x82, 0xF6, 0x5C, 0x9A, 0x6C, 0xEA, 0x04, 0x22, +0x01, 0x6C, 0x00, 0x18, 0xBB, 0xCA, 0x03, 0x10, +0x01, 0x6C, 0x00, 0x18, 0xB2, 0xCA, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, +0x54, 0x9A, 0xA5, 0xF7, 0x68, 0x9B, 0x6C, 0xEA, +0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, +0x40, 0x9A, 0x6C, 0xEA, 0x04, 0x22, 0x02, 0x6C, +0x00, 0x18, 0xBB, 0xCA, 0x03, 0x10, 0x02, 0x6C, +0x00, 0x18, 0xB2, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, 0x58, 0x9A, +0xA5, 0xF7, 0x68, 0x9B, 0x6C, 0xEA, 0x0D, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, 0x40, 0x9A, 0x6C, 0xEA, 0x04, 0x22, 0x03, 0x6C, 0x00, 0x18, -0xB3, 0xCB, 0x03, 0x10, 0x03, 0x6C, 0x00, 0x18, -0xAA, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF3, 0x54, 0x9A, 0x65, 0xF7, -0x78, 0x9B, 0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF5, 0x50, 0x9A, 0x6C, 0xEA, -0x04, 0x22, 0x04, 0x6C, 0x00, 0x18, 0xB3, 0xCB, -0x03, 0x10, 0x04, 0x6C, 0x00, 0x18, 0xAA, 0xCB, +0xBB, 0xCA, 0x03, 0x10, 0x03, 0x6C, 0x00, 0x18, +0xB2, 0xCA, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF3, 0x5C, 0x9A, 0xA5, 0xF7, +0x68, 0x9B, 0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x02, 0xF6, 0x5C, 0x9A, 0x6C, 0xEA, +0x04, 0x22, 0x04, 0x6C, 0x00, 0x18, 0xBB, 0xCA, +0x03, 0x10, 0x04, 0x6C, 0x00, 0x18, 0xB2, 0xCA, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF3, 0x58, 0x9A, 0x65, 0xF7, 0x78, 0x9B, +0xC3, 0xF3, 0x40, 0x9A, 0xA5, 0xF7, 0x68, 0x9B, 0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0xA2, 0xF6, 0x4C, 0x9A, 0x6C, 0xEA, 0x04, 0x22, -0x05, 0x6C, 0x00, 0x18, 0xB3, 0xCB, 0x03, 0x10, -0x05, 0x6C, 0x00, 0x18, 0xAA, 0xCB, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, -0x5C, 0x9A, 0x65, 0xF7, 0x78, 0x9B, 0x6C, 0xEA, -0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, -0x54, 0x9A, 0x6C, 0xEA, 0x04, 0x22, 0x06, 0x6C, -0x00, 0x18, 0xB3, 0xCB, 0x03, 0x10, 0x06, 0x6C, -0x00, 0x18, 0xAA, 0xCB, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, 0x40, 0x9A, -0x65, 0xF7, 0x78, 0x9B, 0x6C, 0xEA, 0x09, 0x22, +0xC2, 0xF6, 0x54, 0x9A, 0x6C, 0xEA, 0x04, 0x22, +0x05, 0x6C, 0x00, 0x18, 0xBB, 0xCA, 0x03, 0x10, +0x05, 0x6C, 0x00, 0x18, 0xB2, 0xCA, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, +0x44, 0x9A, 0xA5, 0xF7, 0x68, 0x9B, 0x6C, 0xEA, +0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, +0x40, 0x9A, 0x6C, 0xEA, 0x04, 0x22, 0x06, 0x6C, +0x00, 0x18, 0xBB, 0xCA, 0x03, 0x10, 0x06, 0x6C, +0x00, 0x18, 0xB2, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0x48, 0x9A, +0xA5, 0xF7, 0x68, 0x9B, 0x6C, 0xEA, 0x09, 0x22, 0x00, 0x53, 0x04, 0x60, 0x07, 0x6C, 0x00, 0x18, -0xB3, 0xCB, 0x03, 0x10, 0x07, 0x6C, 0x00, 0x18, -0xAA, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x65, 0xF7, -0x7C, 0x9A, 0x12, 0x23, 0x08, 0xF0, 0x00, 0x6A, -0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x27, 0xCC, +0xBB, 0xCA, 0x03, 0x10, 0x07, 0x6C, 0x00, 0x18, +0xB2, 0xCA, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF7, +0x6C, 0x9A, 0x12, 0x23, 0x08, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x2F, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF5, 0x58, 0x9A, 0x65, 0xF7, 0x7C, 0x9B, -0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x7D, 0xCB, -0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x60, 0x9A, +0xE2, 0xF5, 0x50, 0x9A, 0xA5, 0xF7, 0x6C, 0x9B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x85, 0xCA, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF7, 0x70, 0x9A, 0x78, 0x23, 0x01, 0x6A, 0x6C, 0xEA, 0x03, 0x22, -0x00, 0x6C, 0x00, 0x18, 0x10, 0xCC, 0x30, 0xF0, -0x20, 0x6A, 0x85, 0xF7, 0x40, 0x9A, 0x02, 0x6B, +0x00, 0x6C, 0x00, 0x18, 0x18, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF7, 0x50, 0x9A, 0x02, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x10, 0x6C, 0x00, 0x18, -0x87, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, -0x40, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, 0x03, 0x22, -0x20, 0x6C, 0x00, 0x18, 0x87, 0xCB, 0x30, 0xF0, -0x20, 0x6A, 0x85, 0xF7, 0x40, 0x9A, 0x08, 0x6B, +0x8F, 0xCA, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF7, +0x50, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x20, 0x6C, 0x00, 0x18, 0x8F, 0xCA, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF7, 0x50, 0x9A, 0x08, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x30, 0x6C, 0x00, 0x18, -0x87, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, -0x40, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, 0x03, 0x22, -0x40, 0x6C, 0x00, 0x18, 0x87, 0xCB, 0x30, 0xF0, -0x20, 0x6A, 0x85, 0xF7, 0x40, 0x9A, 0x20, 0x6B, +0x8F, 0xCA, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF7, +0x50, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x40, 0x6C, 0x00, 0x18, 0x8F, 0xCA, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF7, 0x50, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x50, 0x6C, 0x00, 0x18, -0x87, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, -0x40, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, 0x03, 0x22, -0x60, 0x6C, 0x00, 0x18, 0x87, 0xCB, 0x30, 0xF0, -0x20, 0x6A, 0x85, 0xF7, 0x40, 0x9A, 0x80, 0x6B, +0x8F, 0xCA, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF7, +0x50, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x60, 0x6C, 0x00, 0x18, 0x8F, 0xCA, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF7, 0x50, 0x9A, 0x80, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x70, 0x6C, 0x00, 0x18, -0x87, 0xCB, 0x30, 0xF0, 0x20, 0x6B, 0x85, 0xF7, -0x60, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, -0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, 0x10, 0xCC, -0x30, 0xF0, 0x20, 0x6B, 0x85, 0xF7, 0x60, 0x9B, +0x8F, 0xCA, 0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF7, +0x70, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, 0x18, 0xCB, +0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF7, 0x70, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, -0x02, 0x6C, 0x00, 0x18, 0x10, 0xCC, 0x30, 0xF0, -0x20, 0x6B, 0x85, 0xF7, 0x60, 0x9B, 0x00, 0xF4, +0x02, 0x6C, 0x00, 0x18, 0x18, 0xCB, 0x30, 0xF0, +0x20, 0x6B, 0xA5, 0xF7, 0x70, 0x9B, 0x00, 0xF4, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, -0x00, 0x18, 0x10, 0xCC, 0x30, 0xF0, 0x20, 0x6B, -0x85, 0xF7, 0x60, 0x9B, 0x01, 0xF0, 0x00, 0x6A, +0x00, 0x18, 0x18, 0xCB, 0x30, 0xF0, 0x20, 0x6B, +0xA5, 0xF7, 0x70, 0x9B, 0x01, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, -0x10, 0xCC, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, -0x64, 0x9A, 0x78, 0x23, 0x01, 0x6A, 0x6C, 0xEA, -0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, 0x20, 0xCC, -0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x44, 0x9A, +0x18, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF7, +0x74, 0x9A, 0x78, 0x23, 0x01, 0x6A, 0x6C, 0xEA, +0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, 0x28, 0xCB, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF7, 0x54, 0x9A, 0x02, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x10, 0x6C, -0x00, 0x18, 0x19, 0xCC, 0x30, 0xF0, 0x20, 0x6A, -0x85, 0xF7, 0x44, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, -0x03, 0x22, 0x20, 0x6C, 0x00, 0x18, 0x19, 0xCC, -0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x44, 0x9A, +0x00, 0x18, 0x21, 0xCB, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF7, 0x54, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, +0x03, 0x22, 0x20, 0x6C, 0x00, 0x18, 0x21, 0xCB, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF7, 0x54, 0x9A, 0x08, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x30, 0x6C, -0x00, 0x18, 0x19, 0xCC, 0x30, 0xF0, 0x20, 0x6A, -0x85, 0xF7, 0x44, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, -0x03, 0x22, 0x40, 0x6C, 0x00, 0x18, 0x19, 0xCC, -0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x44, 0x9A, +0x00, 0x18, 0x21, 0xCB, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF7, 0x54, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, +0x03, 0x22, 0x40, 0x6C, 0x00, 0x18, 0x21, 0xCB, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF7, 0x54, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x50, 0x6C, -0x00, 0x18, 0x19, 0xCC, 0x30, 0xF0, 0x20, 0x6A, -0x85, 0xF7, 0x44, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, -0x03, 0x22, 0x60, 0x6C, 0x00, 0x18, 0x19, 0xCC, -0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x44, 0x9A, +0x00, 0x18, 0x21, 0xCB, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF7, 0x54, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, +0x03, 0x22, 0x60, 0x6C, 0x00, 0x18, 0x21, 0xCB, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF7, 0x54, 0x9A, 0x80, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x70, 0x6C, -0x00, 0x18, 0x19, 0xCC, 0x30, 0xF0, 0x20, 0x6B, -0x85, 0xF7, 0x64, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, +0x00, 0x18, 0x21, 0xCB, 0x30, 0xF0, 0x20, 0x6B, +0xA5, 0xF7, 0x74, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, -0x20, 0xCC, 0x30, 0xF0, 0x20, 0x6B, 0x85, 0xF7, -0x64, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, -0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, 0x20, 0xCC, -0x30, 0xF0, 0x20, 0x6B, 0x85, 0xF7, 0x64, 0x9B, +0x28, 0xCB, 0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF7, +0x74, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, +0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, 0x28, 0xCB, +0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF7, 0x74, 0x9B, 0x00, 0xF4, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, -0x03, 0x6C, 0x00, 0x18, 0x20, 0xCC, 0x30, 0xF0, -0x20, 0x6B, 0x85, 0xF7, 0x64, 0x9B, 0x01, 0xF0, +0x03, 0x6C, 0x00, 0x18, 0x28, 0xCB, 0x30, 0xF0, +0x20, 0x6B, 0xA5, 0xF7, 0x74, 0x9B, 0x01, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, -0x00, 0x18, 0x20, 0xCC, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0x00, 0x6B, 0x68, 0xDA, +0x00, 0x18, 0x28, 0xCB, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0x00, 0x6B, 0x68, 0xDA, 0x69, 0xDA, 0x6A, 0xDA, 0x6B, 0xDA, 0x6C, 0xDA, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, 0x70, 0x9B, -0x10, 0xF0, 0x23, 0x6A, 0x88, 0xF3, 0x02, 0x4A, +0x10, 0xF0, 0x23, 0x6A, 0xA7, 0xF7, 0x02, 0x4A, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x0B, 0x2A, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, 0xA4, 0x9B, -0x30, 0xF0, 0x20, 0x6E, 0xA3, 0xF3, 0xC8, 0x9E, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0xAC, 0x9B, +0x30, 0xF0, 0x20, 0x6E, 0xC3, 0xF3, 0xD0, 0x9E, 0x60, 0x9D, 0xCC, 0xEB, 0x0C, 0x10, 0x01, 0x72, -0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, -0xA4, 0x9B, 0x30, 0xF0, 0x20, 0x6E, 0xA2, 0xF6, -0xC0, 0x9E, 0x60, 0x9D, 0xCD, 0xEB, 0x60, 0xDD, +0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, +0xAC, 0x9B, 0x30, 0xF0, 0x20, 0x6E, 0xC2, 0xF6, +0xC8, 0x9E, 0x60, 0x9D, 0xCD, 0xEB, 0x60, 0xDD, 0x05, 0x5C, 0x60, 0xF1, 0x1A, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x88, 0x34, 0x62, 0xF5, 0x1C, 0x4B, 0x8D, 0xE3, 0x60, 0x9B, 0x00, 0xEB, 0x07, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, 0x64, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x6C, 0x9A, 0x7F, 0x6A, 0x80, 0xA3, 0x12, 0x10, 0x01, 0x72, -0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, -0x64, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, +0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, +0x6C, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x40, 0xA3, 0x80, 0x4D, 0xC0, 0x4D, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, 0x02, 0x72, 0x05, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF3, 0x64, 0x9A, 0x5B, 0x10, 0x03, 0x72, +0xC3, 0xF3, 0x6C, 0x9A, 0x5B, 0x10, 0x03, 0x72, 0x40, 0xF1, 0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF3, 0x64, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, +0xC3, 0xF3, 0x6C, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xE9, 0x17, 0x07, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, 0x6C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x74, 0x9A, 0xFB, 0x6A, 0x80, 0xA3, 0xE2, 0x17, 0x01, 0x72, -0x19, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, -0x84, 0x9A, 0xFF, 0x6A, 0x40, 0x6D, 0x60, 0xA4, +0x19, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, +0x8C, 0x9A, 0xFF, 0x6A, 0x40, 0x6D, 0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, 0x8C, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0x94, 0x9B, 0x01, 0x6D, 0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x60, 0xA4, 0x04, 0x6D, 0x4C, 0xEB, 0x48, 0x10, 0x02, 0x72, 0x0F, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, 0x64, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x6C, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, 0x6C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x74, 0x9A, 0xFE, 0x6A, 0x80, 0xA3, 0xB6, 0x17, 0x03, 0x72, 0x00, 0xF1, 0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF3, 0x84, 0x9A, 0xFF, 0x6B, 0x40, 0x6D, +0xC3, 0xF3, 0x8C, 0x9A, 0xFF, 0x6B, 0x40, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, -0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, -0x8C, 0x9A, 0x01, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, +0x94, 0x9A, 0x01, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, 0x4B, 0x10, 0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF3, 0x6C, 0x9A, 0x80, 0xA3, 0xBF, 0x6A, +0xC3, 0xF3, 0x74, 0x9A, 0x80, 0xA3, 0xBF, 0x6A, 0x98, 0x17, 0x01, 0x72, 0x1B, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF3, 0x84, 0x9A, 0xFF, 0x6A, +0x20, 0x6A, 0xC3, 0xF3, 0x8C, 0x9A, 0xFF, 0x6A, 0x40, 0x6D, 0x60, 0xA4, 0x10, 0x6E, 0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF3, 0x8C, 0x9B, 0x60, 0xA4, +0x20, 0x6B, 0xC3, 0xF3, 0x94, 0x9B, 0x60, 0xA4, 0x4C, 0xEB, 0xCD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x20, 0xE8, 0x02, 0x72, 0x0F, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, 0x64, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x6C, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, 0x6C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x74, 0x9A, 0xEF, 0x6A, 0x80, 0xA3, 0x6A, 0x17, 0x03, 0x72, 0xA0, 0xF0, 0x1F, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF3, 0x84, 0x9A, 0xFF, 0x6B, 0x40, 0x6D, +0xC3, 0xF3, 0x8C, 0x9A, 0xFF, 0x6B, 0x40, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, -0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, -0x8C, 0x9A, 0x10, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, +0x94, 0x9A, 0x10, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x20, 0xE8, -0x08, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, -0x6C, 0x9A, 0xFF, 0xF3, 0x1F, 0x6A, 0x80, 0xAB, +0x08, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, +0x74, 0x9A, 0xFF, 0xF3, 0x1F, 0x6A, 0x80, 0xAB, 0x83, 0x10, 0x01, 0x72, 0x1D, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF3, 0x64, 0x9A, 0xFF, 0x6C, +0x20, 0x6A, 0xC3, 0xF3, 0x6C, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF3, 0x6C, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, +0xC3, 0xF3, 0x74, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, 0x7F, 0x4D, 0x40, 0xAB, 0x41, 0x4D, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xCB, 0x40, 0xAB, 0x00, 0xF3, 0x00, 0x4D, 0x8C, 0xEA, 0x51, 0x10, 0x02, 0x72, 0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF3, 0x64, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, +0xC3, 0xF3, 0x6C, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF3, 0x6C, 0x9A, 0xFF, 0xF6, 0x1F, 0x6A, +0xC3, 0xF3, 0x74, 0x9A, 0xFF, 0xF6, 0x1F, 0x6A, 0x80, 0xAB, 0x52, 0x10, 0x03, 0x72, 0x6D, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, 0x64, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x6C, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF3, 0x6C, 0x9A, 0xFF, 0xF7, +0x20, 0x6A, 0xC3, 0xF3, 0x74, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, 0x7F, 0x4D, 0x40, 0xAB, 0x41, 0x4D, 0x8C, 0xEA, 0x27, 0x10, 0x08, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF3, 0x6C, 0x9A, 0xF7, 0xF7, +0x20, 0x6A, 0xC3, 0xF3, 0x74, 0x9A, 0xF7, 0xF7, 0x1F, 0x6A, 0x80, 0xAB, 0x31, 0x10, 0x01, 0x72, -0x1E, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, -0x64, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, +0x1E, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, +0x6C, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, 0x6C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x74, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, 0xC1, 0xF7, 0x00, 0x4D, 0x40, 0xAB, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xCB, 0x40, 0xAB, 0x06, 0xF0, 0x00, 0x4D, 0x8C, 0xEA, 0xAD, 0xEA, 0x11, 0x10, 0x02, 0x72, -0x12, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, -0x64, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, -0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, -0x6C, 0x9A, 0xFD, 0xF7, 0x1F, 0x6A, 0x80, 0xAB, +0x12, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, +0x6C, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, +0x74, 0x9A, 0xFD, 0xF7, 0x1F, 0x6A, 0x80, 0xAB, 0x8C, 0xEA, 0x40, 0xCB, 0x20, 0xE8, 0x03, 0x72, -0x18, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, -0x64, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, +0x18, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, +0x6C, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, 0x6C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x74, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, 0xC1, 0xF7, 0x00, 0x4D, 0x40, 0xAB, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xCB, 0x20, 0xE8, 0xFF, 0x63, 0x01, 0xD0, 0xFF, 0x6A, 0x4C, 0xED, 0x4C, 0xEE, 0x4C, 0xEF, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x44, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, 0x50, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEC, 0x00, 0xAA, 0xE1, 0xF7, 0x1F, 0x6A, 0x0C, 0xEA, 0x30, 0xF0, -0x20, 0x68, 0xE2, 0xF5, 0x1C, 0x98, 0x51, 0xE4, +0x20, 0x68, 0x22, 0xF6, 0x04, 0x98, 0x51, 0xE4, 0x6C, 0xEC, 0x80, 0xC8, 0x9C, 0x32, 0x30, 0xF0, -0x20, 0x6C, 0xA3, 0xF3, 0x90, 0x9C, 0x30, 0xF0, -0x20, 0x68, 0xA3, 0xF3, 0x14, 0x98, 0x91, 0xE2, +0x20, 0x6C, 0xC3, 0xF3, 0x98, 0x9C, 0x30, 0xF0, +0x20, 0x68, 0xC3, 0xF3, 0x1C, 0x98, 0x91, 0xE2, 0x80, 0xAC, 0x01, 0xE2, 0x00, 0x98, 0x6C, 0xEC, 0x05, 0x25, 0x10, 0xF0, 0x00, 0x6D, 0xAB, 0xED, 0xAD, 0xEC, 0x6C, 0xEC, 0xD8, 0xF0, 0x00, 0x6B, -0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF3, -0x90, 0x9C, 0x91, 0xE2, 0x60, 0xCC, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF3, 0x78, 0x9B, 0x6D, 0xE2, +0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF3, +0x98, 0x9C, 0x91, 0xE2, 0x60, 0xCC, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF3, 0x60, 0x9B, 0x6D, 0xE2, 0x80, 0xA3, 0x01, 0x6B, 0x8C, 0xEB, 0x05, 0x23, 0x03, 0xF7, 0x01, 0x6B, 0x6B, 0xEB, 0x0C, 0xEB, 0x06, 0x10, 0x1F, 0xF7, 0x01, 0x6B, 0x6B, 0xEB, 0x0C, 0xEB, 0xE0, 0x37, 0xED, 0xEB, 0xFF, 0x76, -0x13, 0x60, 0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF3, -0x9C, 0x9C, 0x80, 0xF4, 0xC0, 0x36, 0x6C, 0xEC, -0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, 0x70, 0x9B, -0x6D, 0xEE, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, -0x74, 0x9B, 0x8D, 0xEE, 0x6D, 0xE2, 0xC0, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0x80, 0x9B, +0x13, 0x60, 0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF3, +0x84, 0x9C, 0x80, 0xF4, 0xC0, 0x36, 0x6C, 0xEC, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF7, 0x74, 0x9B, +0x6D, 0xEE, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, +0x7C, 0x9B, 0x8D, 0xEE, 0x6D, 0xE2, 0xC0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, 0x88, 0x9B, 0x7F, 0x6B, 0x91, 0xE2, 0xA0, 0xA4, 0xAC, 0xEB, -0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, -0x64, 0x9B, 0x1C, 0x6C, 0x80, 0xC3, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF3, 0x68, 0x9B, 0x08, 0xF4, +0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, +0x6C, 0x9B, 0x1C, 0x6C, 0x80, 0xC3, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF3, 0x70, 0x9B, 0x08, 0xF4, 0x13, 0x6C, 0x80, 0xCB, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF5, 0x8C, 0x9B, 0xF7, 0x6B, 0x91, 0xE2, +0xC2, 0xF5, 0x90, 0x9B, 0xF7, 0x6B, 0x91, 0xE2, 0xA0, 0xA4, 0xAC, 0xEB, 0x60, 0xC4, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, 0xFB, 0x63, 0x09, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x6C, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0xA2, 0xF6, 0x8C, 0x9C, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, 0x78, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF6, 0x94, 0x9C, 0x40, 0x9B, 0x10, 0x6D, 0x00, 0x6E, 0x8D, 0xEA, 0x40, 0xDB, 0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, 0x00, 0xF4, 0x1D, 0x6C, 0x82, 0xF3, 0x08, 0x6F, 0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0x6C, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, 0x74, 0x9B, 0xFF, 0x6A, 0x4C, 0xED, 0x6D, 0xE4, 0xC0, 0xA3, 0x3F, 0x6C, 0xCC, 0xEC, 0x80, 0xC3, 0x07, 0x2D, 0x80, 0xA3, 0x40, 0x6D, 0x4C, 0xEC, 0xAD, 0xEC, @@ -3942,136 +3823,136 @@ u8 array_mp_8822c_fw_ap[] = { 0x07, 0x61, 0x80, 0xA3, 0x80, 0x6D, 0xAB, 0xED, 0x4C, 0xEC, 0xAD, 0xEC, 0x4C, 0xEC, 0x80, 0xC3, 0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF3, 0x70, 0x9B, 0xFF, 0x6A, 0xAC, 0xEA, +0xE3, 0xF3, 0x78, 0x9B, 0xFF, 0x6A, 0xAC, 0xEA, 0x6D, 0xE4, 0x80, 0x9B, 0x80, 0xF4, 0x40, 0x32, 0x8D, 0xEA, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0xA2, 0xF7, 0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6E, -0xC3, 0xF3, 0xD4, 0x9E, 0x6D, 0xE4, 0x40, 0x9B, -0x30, 0xF0, 0x20, 0x68, 0xC3, 0xF3, 0x1C, 0x98, -0xCC, 0xEA, 0x30, 0xF0, 0x20, 0x6E, 0xC3, 0xF3, -0xD8, 0x9E, 0xCD, 0xEA, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF1, 0xFC, 0x9A, 0x83, 0xF7, +0xE2, 0xF7, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6E, +0xE3, 0xF3, 0xDC, 0x9E, 0x6D, 0xE4, 0x40, 0x9B, +0x30, 0xF0, 0x20, 0x68, 0x03, 0xF4, 0x04, 0x98, +0xCC, 0xEA, 0x30, 0xF0, 0x20, 0x6E, 0x03, 0xF4, +0xC0, 0x9E, 0xCD, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF1, 0xF0, 0x9A, 0x83, 0xF7, 0x00, 0x6A, 0x4B, 0xEA, 0xFD, 0xE4, 0x60, 0x9F, 0x7F, 0x6E, 0x4C, 0xEB, 0x43, 0xA5, 0xCC, 0xEA, 0x0D, 0xEA, 0x6D, 0xEA, 0x40, 0xDF, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF3, 0x60, 0x9A, 0x30, 0xF0, -0x20, 0x6F, 0xA3, 0xF0, 0xE4, 0x9F, 0x6D, 0xE4, +0x20, 0x6A, 0x03, 0xF4, 0x68, 0x9A, 0x30, 0xF0, +0x20, 0x6F, 0xC3, 0xF0, 0xF8, 0x9F, 0x6D, 0xE4, 0x40, 0x9B, 0xED, 0xEA, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF3, 0x64, 0x9A, 0xFF, 0x6F, +0x20, 0x6A, 0x03, 0xF4, 0x6C, 0x9A, 0xFF, 0x6F, 0x01, 0x4F, 0x6D, 0xE4, 0x40, 0x9B, 0xED, 0xEA, 0x3F, 0xF6, 0x1F, 0x4F, 0xEC, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, 0x54, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x5C, 0x9A, 0x49, 0xE4, 0x60, 0x9A, 0x40, 0xA5, 0xCC, 0xEA, -0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, -0x58, 0x9A, 0x49, 0xE4, 0xC0, 0xA2, 0x01, 0x6A, +0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF3, +0x40, 0x9A, 0x49, 0xE4, 0xC0, 0xA2, 0x01, 0x6A, 0xCC, 0xEA, 0x05, 0x22, 0x03, 0xF7, 0x01, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x07, 0x10, 0x1F, 0xF7, 0x01, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x61, 0xA5, 0x60, 0x33, 0x6D, 0xEA, 0xC2, 0xA5, 0xFF, 0x76, -0x0D, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, -0x7C, 0x9B, 0x4C, 0xEB, 0x80, 0xF4, 0xC0, 0x32, -0x30, 0xF0, 0x20, 0x6E, 0x22, 0xF7, 0xD0, 0x9E, +0x0D, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, +0x64, 0x9B, 0x4C, 0xEB, 0x80, 0xF4, 0xC0, 0x32, +0x30, 0xF0, 0x20, 0x6E, 0x42, 0xF7, 0xD4, 0x9E, 0xCD, 0xEA, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF3, 0x74, 0x9B, 0x6D, 0xE4, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF3, 0xC8, 0x9A, +0xC3, 0xF3, 0x7C, 0x9B, 0x6D, 0xE4, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, 0xD0, 0x9A, 0x02, 0xF0, 0x00, 0x6B, 0x6B, 0xEB, 0xD9, 0xE4, 0x40, 0x9E, 0x6C, 0xEA, 0x62, 0xAD, 0xE1, 0xF7, 0x1F, 0x6D, 0xAC, 0xEB, 0x6D, 0xEA, 0x40, 0xDE, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, 0x70, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x78, 0x9A, 0x0E, 0xF0, 0x01, 0x4D, 0x6D, 0xE4, 0x40, 0x9B, 0xAD, 0xEA, 0xC8, 0xF0, 0x00, 0x4D, 0xAC, 0xEA, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, -0x40, 0x9A, 0x51, 0xE4, 0x60, 0xA4, 0x7F, 0x6A, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF3, +0x48, 0x9A, 0x51, 0xE4, 0x60, 0xA4, 0x7F, 0x6A, 0x6C, 0xEA, 0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF3, 0x44, 0x9A, 0x1C, 0x6B, 0x60, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x48, 0x9A, +0xE3, 0xF3, 0x4C, 0x9A, 0x1C, 0x6B, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF3, 0x50, 0x9A, 0x08, 0xF4, 0x13, 0x6B, 0x60, 0xCA, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF3, 0x4C, 0x9A, 0x8C, 0x34, 0x30, 0xF0, -0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, 0xA2, 0xF6, -0x6C, 0x9B, 0x6D, 0xEA, 0x0C, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF3, 0x4C, 0x9A, 0x8C, 0x34, +0x03, 0xF4, 0x54, 0x9A, 0x8C, 0x34, 0x30, 0xF0, +0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, 0xC2, 0xF6, +0x74, 0x9B, 0x6D, 0xEA, 0x0C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF4, 0x54, 0x9A, 0x8C, 0x34, 0x30, 0xF0, 0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, -0xC2, 0xF6, 0x64, 0x9B, 0x6C, 0xEA, 0x40, 0xDC, +0xE2, 0xF6, 0x68, 0x9B, 0x6C, 0xEA, 0x40, 0xDC, 0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF3, 0x4C, 0x9A, 0x8C, 0x34, 0x30, 0xF0, -0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, 0xE2, 0xF5, -0x70, 0x9B, 0x6D, 0xEA, 0x0C, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF3, 0x4C, 0x9A, 0x8C, 0x34, +0x03, 0xF4, 0x54, 0x9A, 0x8C, 0x34, 0x30, 0xF0, +0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, 0x02, 0xF6, +0x7C, 0x9B, 0x6D, 0xEA, 0x0C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF4, 0x54, 0x9A, 0x8C, 0x34, 0x30, 0xF0, 0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, -0xE2, 0xF6, 0x6C, 0x9B, 0x6C, 0xEA, 0x40, 0xDC, +0x02, 0xF7, 0x70, 0x9B, 0x6C, 0xEA, 0x40, 0xDC, 0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0xFF, 0x6B, 0xE3, 0xF3, 0x4C, 0x9A, 0x6C, 0xEC, +0xFF, 0x6B, 0x03, 0xF4, 0x54, 0x9A, 0x6C, 0xEC, 0x8C, 0x34, 0x51, 0xE4, 0x40, 0x9C, 0x01, 0x6C, 0x40, 0xF7, 0x42, 0x32, 0x8C, 0xEA, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0xFF, 0x6B, 0xE3, 0xF3, 0x4C, 0x9A, 0x6C, 0xEC, +0xFF, 0x6B, 0x03, 0xF4, 0x54, 0x9A, 0x6C, 0xEC, 0x8C, 0x34, 0x51, 0xE4, 0x40, 0x9C, 0x01, 0x6C, 0x00, 0xF7, 0x42, 0x32, 0x8C, 0xEA, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x00, 0x68, 0x90, 0x67, 0x00, 0x6D, -0x00, 0x18, 0x7D, 0xD3, 0x90, 0x67, 0x01, 0x6D, -0x01, 0x48, 0x00, 0x18, 0x8D, 0xD3, 0x0B, 0x70, +0x00, 0x18, 0x85, 0xD2, 0x90, 0x67, 0x01, 0x6D, +0x01, 0x48, 0x00, 0x18, 0x95, 0xD2, 0x0B, 0x70, 0xF5, 0x61, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, 0x0C, 0x6B, 0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, 0x0A, 0x69, 0x12, 0xED, 0x4C, 0xED, 0x04, 0xD5, 0xFF, 0x68, 0x2C, 0xE8, 0x90, 0x67, 0x00, 0x18, -0x9D, 0xD3, 0x17, 0x2A, 0xFF, 0x49, 0x00, 0xF6, +0xA5, 0xD2, 0x17, 0x2A, 0xFF, 0x49, 0x00, 0xF6, 0x20, 0x31, 0x90, 0x67, 0x01, 0x6D, 0x00, 0xF6, -0x23, 0x31, 0x00, 0x18, 0x8D, 0xD3, 0x41, 0x41, +0x23, 0x31, 0x00, 0x18, 0x95, 0xD2, 0x41, 0x41, 0xEF, 0x2A, 0x01, 0x69, 0x2B, 0xE9, 0x09, 0x10, 0x04, 0x94, 0xFF, 0x49, 0x00, 0x6D, 0x00, 0xF6, -0x20, 0x31, 0x00, 0x18, 0x8D, 0xD3, 0x00, 0xF6, +0x20, 0x31, 0x00, 0x18, 0x95, 0xD2, 0x00, 0xF6, 0x23, 0x31, 0x00, 0x51, 0xF5, 0x60, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x0C, 0x68, 0x4C, 0xEC, 0x1B, 0xEC, 0x01, 0x28, 0xE5, 0xE8, 0x4C, 0xED, 0x10, 0xE9, 0x4C, 0xE9, 0x12, 0xE8, 0x4C, 0xE8, 0x0F, 0x25, -0x90, 0x67, 0x01, 0x6D, 0x00, 0x18, 0x7D, 0xD3, -0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF1, 0x14, 0x4A, +0x90, 0x67, 0x01, 0x6D, 0x00, 0x18, 0x85, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF1, 0x1C, 0x4A, 0x41, 0xE0, 0x60, 0xA0, 0x01, 0x6A, 0x44, 0xE9, 0x6D, 0xEA, 0x40, 0xC0, 0x11, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x85, 0xF1, 0x14, 0x4A, 0x49, 0xE0, +0x20, 0x6A, 0xA5, 0xF1, 0x1C, 0x4A, 0x49, 0xE0, 0x80, 0xA2, 0x01, 0x6B, 0x64, 0xE9, 0x6F, 0xEB, 0x8C, 0xEB, 0x60, 0xC2, 0x40, 0xA2, 0x04, 0x2A, -0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, 0x7D, 0xD3, +0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, 0x85, 0xD2, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0x24, 0x67, 0x0C, 0xE9, 0xAC, 0xE8, 0x91, 0x67, 0xB0, 0x67, -0x00, 0x18, 0xD0, 0xD3, 0x91, 0x67, 0xB0, 0x67, -0x00, 0x18, 0xB7, 0xD3, 0x07, 0x97, 0x06, 0x91, +0x00, 0x18, 0xD8, 0xD2, 0x91, 0x67, 0xB0, 0x67, +0x00, 0x18, 0xBF, 0xD2, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x0C, 0x6B, 0x7B, 0xED, 0x01, 0x2B, 0xE5, 0xE8, 0x05, 0x6E, 0xFF, 0x6A, 0x4C, 0xEC, 0x10, 0xEB, 0x12, 0xED, 0x4C, 0xED, 0xD8, 0xEB, 0x12, 0xEB, 0x4C, 0xEB, 0x1E, 0x73, 0x1D, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF3, 0x70, 0x9A, 0xAC, 0x35, +0x20, 0x6A, 0x03, 0xF4, 0x78, 0x9A, 0xAC, 0x35, 0x30, 0xF0, 0x20, 0x6E, 0x6D, 0xE5, 0x40, 0x9B, -0x42, 0xF7, 0xC8, 0x9E, 0xCC, 0xEA, 0x80, 0xF7, +0x62, 0xF7, 0xCC, 0x9E, 0xCC, 0xEA, 0x80, 0xF7, 0x80, 0x36, 0xCD, 0xEA, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF3, 0x4C, 0x9A, 0x08, 0x6B, +0x20, 0x6A, 0x03, 0xF4, 0x54, 0x9A, 0x08, 0x6B, 0x6B, 0xEB, 0x55, 0xE5, 0x40, 0x9D, 0x8A, 0x34, 0x6C, 0xEA, 0x07, 0x6B, 0x6C, 0xEC, 0x1E, 0x10, 0x20, 0x5B, 0x0C, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF3, 0x50, 0x9A, 0x1F, 0x6E, 0xAC, 0x35, +0x03, 0xF4, 0x58, 0x9A, 0x1F, 0x6E, 0xAC, 0x35, 0xE6, 0x67, 0x55, 0xE5, 0xE4, 0xEB, 0x40, 0x9D, 0xEF, 0xEF, 0x0D, 0x10, 0xE0, 0x4B, 0x4C, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF3, 0x4C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, 0x54, 0x9A, 0xAC, 0x35, 0x1F, 0x6E, 0x55, 0xE5, 0xE0, 0x9D, 0x46, 0x67, 0x44, 0xEB, 0x4F, 0xEA, 0xCC, 0xEC, 0xEC, 0xEA, 0x84, 0xEB, 0x8D, 0xEA, 0x40, 0xDD, 0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0x2C, 0xEC, 0xCC, 0xE9, 0x05, 0x67, 0x01, 0x29, 0x00, 0x6C, -0xB0, 0x67, 0x00, 0x18, 0xF6, 0xD3, 0xFF, 0x6C, -0x0C, 0xEC, 0xB1, 0x67, 0x00, 0x18, 0xEB, 0xD3, +0xB0, 0x67, 0x00, 0x18, 0xFE, 0xD2, 0xFF, 0x6C, +0x0C, 0xEC, 0xB1, 0x67, 0x00, 0x18, 0xF3, 0xD2, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xAE, 0xEC, 0x01, 0x6A, 0x8C, 0xEA, 0x20, 0xE8, 0xFA, 0x63, 0x0B, 0x62, @@ -4080,7 +3961,7 @@ u8 array_mp_8822c_fw_ap[] = { 0x22, 0x10, 0x05, 0x92, 0x40, 0xA2, 0x07, 0xD2, 0x00, 0x6A, 0x04, 0xD2, 0x04, 0x92, 0x07, 0x94, 0x12, 0x35, 0x87, 0xEA, 0xFF, 0x6A, 0x4C, 0xEC, -0x00, 0x18, 0x29, 0xD4, 0x06, 0x22, 0xFF, 0x6A, +0x00, 0x18, 0x31, 0xD3, 0x06, 0x22, 0xFF, 0x6A, 0x04, 0x30, 0x4C, 0xE8, 0x05, 0x6A, 0x4E, 0xE8, 0x01, 0x10, 0x04, 0x30, 0xFF, 0x6A, 0x4C, 0xE8, 0x04, 0x92, 0x01, 0x4A, 0x08, 0x72, 0x04, 0xD2, @@ -4091,113 +3972,135 @@ u8 array_mp_8822c_fw_ap[] = { 0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x60, 0xA4, 0x01, 0x6A, 0x04, 0x67, 0x6C, 0xEA, 0x44, 0x22, 0x66, 0x32, 0x30, 0xF0, -0x20, 0x6B, 0xE3, 0xF3, 0x74, 0x9B, 0x54, 0x32, +0x20, 0x6B, 0x03, 0xF4, 0x7C, 0x9B, 0x54, 0x32, 0x69, 0xE2, 0x61, 0xA4, 0x60, 0xC2, 0x40, 0xA4, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, 0x78, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x60, 0x9B, 0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x62, 0xA4, 0x60, 0xC2, 0x40, 0xA4, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF3, 0x7C, 0x9B, 0x46, 0x32, 0x54, 0x32, +0x23, 0xF4, 0x64, 0x9B, 0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x63, 0xA4, 0x60, 0xC2, 0x40, 0xA4, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x60, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x68, 0x9B, 0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x64, 0xA4, 0x60, 0xC2, 0x40, 0xA4, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF4, 0x64, 0x9B, 0x46, 0x32, 0x54, 0x32, +0x23, 0xF4, 0x6C, 0x9B, 0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x65, 0xA4, 0x60, 0xC2, 0x40, 0xA4, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x68, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x70, 0x9B, 0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x66, 0xA4, 0x10, 0xF0, 0x00, 0x6C, 0x60, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF4, 0x6C, 0x9A, 0x40, 0x9B, +0x20, 0x6A, 0x23, 0xF4, 0x74, 0x9A, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x81, 0x40, 0x06, 0x6D, -0x00, 0x18, 0x2B, 0xD4, 0x60, 0xA0, 0x01, 0x6E, +0x00, 0x18, 0x33, 0xD3, 0x60, 0xA0, 0x01, 0x6E, 0x82, 0x67, 0x66, 0x35, 0x6C, 0xEE, 0x00, 0x18, -0x1D, 0xD4, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x25, 0xD3, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0xAD, 0xD3, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF4, 0x70, 0x9A, 0xFF, 0xF7, 0x1F, 0x6A, +0x00, 0x18, 0xB5, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF4, 0x78, 0x9A, 0xFF, 0xF7, 0x1F, 0x6A, 0x80, 0xAB, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, -0x82, 0xF6, 0x8C, 0x9C, 0x8D, 0xEA, 0x40, 0xDB, +0xA2, 0xF6, 0x94, 0x9C, 0x8D, 0xEA, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x46, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x48, 0xF5, 0x44, 0xA2, -0xFF, 0x68, 0x24, 0x67, 0x02, 0x72, 0x0C, 0xE9, -0x03, 0x61, 0x01, 0x71, 0x10, 0x61, 0x1D, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, 0x5C, 0x9A, -0x01, 0x6B, 0x6B, 0xEB, 0x60, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x64, 0x6C, -0x40, 0xEA, 0x00, 0x18, 0x50, 0xCF, 0x30, 0xF0, -0x20, 0x6A, 0xC2, 0xF5, 0x78, 0x9A, 0x80, 0x6C, -0x8B, 0xEC, 0x40, 0xA3, 0x0C, 0xEA, 0x8E, 0xEA, -0x0C, 0xEA, 0x40, 0xC3, 0x91, 0x67, 0x80, 0x18, -0x47, 0x16, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x44, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0x85, 0xF7, 0x08, 0x4B, 0x63, 0xF3, +0xB4, 0xA3, 0x04, 0x67, 0x08, 0x6C, 0xAD, 0xEC, +0x63, 0xF3, 0x94, 0xC3, 0xE2, 0xF5, 0x6C, 0xA3, +0xFF, 0x6A, 0x4C, 0xE8, 0x03, 0x73, 0x40, 0x61, +0x10, 0x6B, 0x8C, 0xEB, 0x4C, 0xEB, 0x05, 0x2B, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x58, 0x9A, +0x60, 0xDA, 0x00, 0x18, 0x70, 0xC4, 0x34, 0x2A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6D, 0x01, 0x6E, +0x10, 0xF0, 0x23, 0x6C, 0x05, 0xF6, 0x00, 0xC5, +0x02, 0xF2, 0x19, 0x4C, 0x05, 0xF6, 0x00, 0x4D, +0xE6, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0x63, 0xF3, 0x94, 0xA2, +0x10, 0x6B, 0xA3, 0x67, 0x8C, 0xED, 0x0B, 0x2D, +0x30, 0xF0, 0x20, 0x6D, 0xE2, 0xF5, 0xDC, 0x9D, +0x30, 0xF0, 0x20, 0x6D, 0xE2, 0xF5, 0xB8, 0x9D, +0x8D, 0xEB, 0xC0, 0xDD, 0x3D, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF5, 0x78, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x02, 0xF6, 0x80, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x01, 0x4A, 0x40, 0xDB, 0x32, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x68, 0xF5, 0x54, 0xA2, +0x02, 0x72, 0x03, 0x61, 0x01, 0x70, 0x10, 0x61, +0x1E, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, +0x48, 0x9A, 0x01, 0x6B, 0x6B, 0xEB, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x64, 0x6C, 0x40, 0xEA, 0x00, 0x18, 0x58, 0xCE, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, 0x64, 0x9A, +0xFF, 0x6C, 0x80, 0x6D, 0x40, 0xA3, 0xAB, 0xED, +0x8C, 0xEA, 0xAE, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, +0x90, 0x67, 0x80, 0x18, 0x4B, 0x19, 0x30, 0xF0, +0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0x63, 0xF3, +0x94, 0xA2, 0x09, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x63, 0xF3, 0x74, 0xC2, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, -0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x06, 0xF0, -0x0E, 0x4C, 0x05, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x26, 0xF0, +0x1E, 0x4C, 0x05, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0xCC, 0xEA, 0x00, 0x6B, 0x09, 0x10, 0x79, 0xE5, 0xE0, 0xA4, 0xC0, 0xA6, 0x01, 0x4B, 0x01, 0x4C, 0xEE, 0xEE, 0x02, 0x26, 0x00, 0x6A, 0x20, 0xE8, 0xFF, 0x6E, 0x6C, 0xEE, 0x43, 0xEE, 0xF3, 0x61, 0x01, 0x6A, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0xA0, 0xF0, 0x8F, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0xF0, 0x6F, 0xC2, 0x00, 0x6B, 0xA0, 0xF0, 0x70, 0xC2, 0xA0, 0xF0, 0x71, 0xC2, 0xA3, 0xF3, 0x66, 0xC2, 0xA3, 0xF3, 0x67, 0xC2, 0xA3, 0xF3, 0x68, 0xC2, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, 0x60, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF6, 0x6C, 0x9B, 0xFF, 0x6A, 0x8C, 0xEA, 0x80, 0xAB, 0xE1, 0xF7, 0x1F, 0x6B, 0x8C, 0xEB, 0x69, 0xE2, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF5, 0x64, 0x9B, 0x40, 0xCB, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, 0x68, 0x9B, +0x20, 0x6B, 0x02, 0xF6, 0x70, 0x9B, 0x40, 0xCB, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF6, 0x74, 0x9B, 0x40, 0xCB, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x45, 0xF7, -0x18, 0x48, 0x83, 0xF3, 0x5A, 0xA0, 0x83, 0xF3, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x85, 0xF7, +0x08, 0x48, 0x83, 0xF3, 0x5A, 0xA0, 0x83, 0xF3, 0x78, 0xA8, 0x5A, 0xEB, 0x01, 0x2A, 0xE5, 0xE8, 0x10, 0xEA, 0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF5, 0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0xE2, 0xF5, 0x90, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, +0x02, 0xF6, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x02, 0xF6, 0x9C, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0xA0, 0xF0, 0x9B, 0xA0, 0x3F, 0x10, 0x01, 0x72, 0x0E, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF5, 0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0xE2, 0xF5, 0x94, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, +0x02, 0xF6, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x22, 0xF6, 0x80, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0xA0, 0xF0, 0x9C, 0xA0, 0x2F, 0x10, 0x02, 0x72, 0x0E, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF5, 0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0xE2, 0xF5, 0x90, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, +0x02, 0xF6, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x02, 0xF6, 0x9C, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0xA0, 0xF0, 0x9D, 0xA0, 0x1F, 0x10, 0x03, 0x72, 0x0E, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF5, 0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0xE2, 0xF5, 0x94, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, +0x02, 0xF6, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x22, 0xF6, 0x80, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0xA0, 0xF0, 0x9E, 0xA0, 0x0F, 0x10, 0x04, 0x72, 0x14, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF5, 0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0xE2, 0xF5, 0x90, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, +0x02, 0xF6, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x02, 0xF6, 0x9C, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0xA0, 0xF0, 0x9F, 0xA0, 0x80, 0x18, -0x38, 0x00, 0x83, 0xF3, 0x58, 0xA8, 0x01, 0x4A, +0x64, 0x00, 0x83, 0xF3, 0x58, 0xA8, 0x01, 0x4A, 0x83, 0xF3, 0x58, 0xC8, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, -0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x06, 0xF0, -0x13, 0x4C, 0x05, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x46, 0xF0, +0x03, 0x4C, 0x05, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x45, 0xF7, -0x18, 0x48, 0xA0, 0xF0, 0x6F, 0xA0, 0x02, 0x6A, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x85, 0xF7, +0x08, 0x48, 0xA0, 0xF0, 0x6F, 0xA0, 0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xA0, 0xF0, 0x4F, 0xC0, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0xB8, 0x9A, -0x01, 0x6C, 0x80, 0x18, 0x04, 0x5F, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF5, 0x40, 0x9A, 0x30, 0xF0, -0x20, 0x6D, 0xE2, 0xF5, 0xA4, 0x9D, 0x80, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0xB0, 0x9A, +0x01, 0x6C, 0x80, 0x18, 0x8D, 0x5D, 0x30, 0xF0, +0x20, 0x6A, 0x02, 0xF6, 0x4C, 0x9A, 0x30, 0xF0, +0x20, 0x6D, 0x02, 0xF6, 0xB0, 0x9D, 0x80, 0x9A, 0xE1, 0xF7, 0x1F, 0x6B, 0x6C, 0xEC, 0x80, 0xCD, -0x80, 0x9A, 0x30, 0xF0, 0x20, 0x6D, 0xE2, 0xF5, -0xBC, 0x9D, 0x6C, 0xEC, 0x80, 0xCD, 0x40, 0x9A, +0x80, 0x9A, 0x30, 0xF0, 0x20, 0x6D, 0x22, 0xF6, +0xA4, 0x9D, 0x6C, 0xEC, 0x80, 0xCD, 0x40, 0x9A, 0x42, 0x32, 0x42, 0x32, 0x6C, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF5, 0x68, 0x9B, 0x40, 0xCB, +0x20, 0x6B, 0x02, 0xF6, 0x74, 0x9B, 0x40, 0xCB, 0x00, 0x6A, 0x83, 0xF3, 0x58, 0xC8, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xE4, 0x63, 0x37, 0x62, 0x36, 0xD1, 0x35, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0xA0, 0xF0, 0x76, 0xA2, 0x9D, 0x67, 0x78, 0xC4, 0xA0, 0xF0, 0x77, 0xA2, 0x79, 0xC4, 0xA0, 0xF0, 0x78, 0xA2, 0x7A, 0xC4, 0xA0, 0xF0, 0x79, 0xA2, @@ -4217,20 +4120,20 @@ u8 array_mp_8822c_fw_ap[] = { 0x73, 0xC4, 0x83, 0xF3, 0x5A, 0xA2, 0x20, 0xF0, 0x74, 0xC4, 0x0C, 0x03, 0x69, 0xE2, 0x03, 0x10, 0x01, 0x6C, 0x80, 0xC3, 0x01, 0x4B, 0x4A, 0xEB, -0xFB, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, -0x40, 0x9A, 0xE1, 0xF7, 0x1F, 0x6E, 0xFF, 0xF7, +0xFB, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, +0x4C, 0x9A, 0xE1, 0xF7, 0x1F, 0x6E, 0xFF, 0xF7, 0x1F, 0x68, 0x40, 0xAA, 0x1A, 0x05, 0x10, 0x04, -0x4C, 0xEE, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, -0x4C, 0x9A, 0x15, 0x03, 0x40, 0xAA, 0x2D, 0xD6, -0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0xE9, 0xF2, -0xF2, 0xA2, 0x00, 0x6A, 0x2C, 0xD7, 0x20, 0x10, +0x4C, 0xEE, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, +0x54, 0x9A, 0x15, 0x03, 0x40, 0xAA, 0x2D, 0xD6, +0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x29, 0xF3, +0xE2, 0xA2, 0x00, 0x6A, 0x2C, 0xD7, 0x20, 0x10, 0xFD, 0x67, 0x59, 0xE7, 0x38, 0xA6, 0x2D, 0x96, -0x30, 0xF0, 0x20, 0x6F, 0x25, 0xE6, 0x02, 0xF6, -0xD0, 0x9F, 0x3C, 0x31, 0x20, 0xDD, 0x3D, 0xE6, +0x30, 0xF0, 0x20, 0x6F, 0x25, 0xE6, 0x22, 0xF6, +0xD8, 0x9F, 0x3C, 0x31, 0x20, 0xDD, 0x3D, 0xE6, 0xC0, 0xA7, 0xFD, 0x67, 0x5D, 0xE7, 0xD0, 0xC7, -0x30, 0xF0, 0x20, 0x6E, 0x02, 0xF6, 0xF4, 0x9E, +0x30, 0xF0, 0x20, 0x6E, 0x22, 0xF6, 0xFC, 0x9E, 0x01, 0x4A, 0x04, 0x4D, 0xF9, 0xE1, 0x30, 0xF0, -0x20, 0x6F, 0xC0, 0xDC, 0x02, 0xF6, 0xD8, 0x9F, +0x20, 0x6F, 0xC0, 0xDC, 0x42, 0xF6, 0xC0, 0x9F, 0x04, 0x4C, 0xC5, 0xE1, 0x20, 0xDB, 0x04, 0x4B, 0x2C, 0x97, 0xFF, 0x69, 0x4C, 0xE9, 0xE3, 0xE9, 0xDB, 0x61, 0x00, 0x69, 0x2F, 0xD1, 0x34, 0x12, @@ -4267,25 +4170,25 @@ u8 array_mp_8822c_fw_ap[] = { 0xAD, 0xE4, 0x01, 0x4D, 0x60, 0xF0, 0x5C, 0xC3, 0x2D, 0xD5, 0x2D, 0x96, 0x2E, 0x97, 0xFF, 0x6A, 0xCC, 0xEA, 0xE3, 0xEA, 0xEC, 0x61, 0x00, 0x69, -0x46, 0x2F, 0x30, 0xF0, 0x20, 0x6C, 0xE9, 0xF2, -0x92, 0xA4, 0x0E, 0x02, 0x08, 0x03, 0x51, 0xE4, +0x46, 0x2F, 0x30, 0xF0, 0x20, 0x6C, 0x29, 0xF3, +0x82, 0xA4, 0x0E, 0x02, 0x08, 0x03, 0x51, 0xE4, 0x5C, 0x10, 0x04, 0x02, 0x2D, 0xE2, 0x2D, 0xD3, 0x2E, 0x94, 0x60, 0xA3, 0x8E, 0xEB, 0x0D, 0x2B, 0x28, 0x33, 0x69, 0xE2, 0x8C, 0x9A, 0x2E, 0x96, -0x1F, 0x05, 0x80, 0x18, 0x22, 0x00, 0x05, 0x22, +0x1F, 0x05, 0x80, 0x18, 0x4E, 0x00, 0x05, 0x22, 0x2D, 0x95, 0x01, 0x6A, 0x20, 0xF0, 0x48, 0xC5, 0x27, 0x10, 0x2E, 0x96, 0x03, 0x76, 0x1F, 0x61, 0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF0, 0x08, 0x4C, -0x1F, 0x05, 0x03, 0x6E, 0x80, 0x18, 0x22, 0x00, +0x1F, 0x05, 0x03, 0x6E, 0x80, 0x18, 0x4E, 0x00, 0x09, 0x2A, 0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF0, 0x0C, 0x4C, 0x1F, 0x05, 0x03, 0x6E, 0x80, 0x18, -0x22, 0x00, 0x08, 0x22, 0x04, 0x02, 0x29, 0xE2, +0x4E, 0x00, 0x08, 0x22, 0x04, 0x02, 0x29, 0xE2, 0x78, 0xA2, 0x0B, 0x2B, 0x90, 0xA2, 0x0A, 0x2C, 0x01, 0x6B, 0x08, 0x10, 0xFD, 0x67, 0x2D, 0xE7, 0x20, 0xF0, 0x58, 0xC3, 0x05, 0x10, 0x04, 0x02, 0x29, 0xE2, 0x00, 0x6B, 0x20, 0xF0, 0x68, 0xC2, 0x01, 0x49, 0xFF, 0x6A, 0x4C, 0xE9, 0x30, 0xF0, -0x20, 0x6A, 0xE9, 0xF2, 0x52, 0xA2, 0x43, 0xE9, +0x20, 0x6A, 0x29, 0xF3, 0x42, 0xA2, 0x43, 0xE9, 0xBC, 0x61, 0x3D, 0x67, 0x20, 0xF0, 0x58, 0xA1, 0x1A, 0x2A, 0x20, 0xF0, 0x59, 0xA1, 0x17, 0x2A, 0x20, 0xF0, 0x5A, 0xA1, 0x14, 0x2A, 0x20, 0xF0, @@ -4301,41 +4204,41 @@ u8 array_mp_8822c_fw_ap[] = { 0x29, 0xE5, 0x20, 0xF0, 0x78, 0xA2, 0x00, 0x6A, 0x08, 0x2B, 0x4C, 0x10, 0xE0, 0xF3, 0x09, 0x72, 0x0D, 0x60, 0x01, 0x4A, 0xFF, 0xF7, 0x1F, 0x6B, -0x6C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, -0x6C, 0x9B, 0x02, 0xF0, 0x00, 0x6C, 0x60, 0x9B, +0x6C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF6, +0x78, 0x9B, 0x02, 0xF0, 0x00, 0x6C, 0x60, 0x9B, 0x8C, 0xEB, 0xF0, 0x2B, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF5, 0x4C, 0x9A, 0x02, 0xF0, 0x00, 0x6B, +0x02, 0xF6, 0x58, 0x9A, 0x02, 0xF0, 0x00, 0x6B, 0x40, 0x9A, 0x6C, 0xEA, 0x33, 0x2A, 0xDD, 0x67, 0x2D, 0xE6, 0x30, 0xF0, 0x20, 0x6A, 0x98, 0xA3, 0xA0, 0xF2, 0x54, 0x9A, 0x01, 0x6D, 0x08, 0x6E, 0x04, 0x6F, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x02, 0xF6, 0x84, 0x9B, 0x30, 0x93, 0x30, 0xF0, +0x22, 0xF6, 0x8C, 0x9B, 0x30, 0x93, 0x30, 0xF0, 0x20, 0x6D, 0x91, 0xE0, 0x18, 0x4B, 0x71, 0xE4, -0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF6, 0x68, 0x9B, -0x02, 0xF6, 0xBC, 0x9D, 0x6D, 0xE2, 0xA9, 0xE2, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF6, 0x70, 0x9B, +0x42, 0xF6, 0xA4, 0x9D, 0x6D, 0xE2, 0xA9, 0xE2, 0xA0, 0xA4, 0xFF, 0x6F, 0x01, 0x4C, 0xEC, 0xED, 0xA0, 0xC3, 0x01, 0x4B, 0x4A, 0xEB, 0xF8, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, 0x20, 0x6B, 0x4D, 0xEB, 0xFF, 0x6A, -0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, -0x40, 0x9A, 0x60, 0xC2, 0x01, 0x49, 0xFF, 0x6A, -0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, 0xE9, 0xF2, -0x52, 0xA2, 0x43, 0xE9, 0xA4, 0x61, 0x30, 0xF0, +0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF6, +0x48, 0x9A, 0x60, 0xC2, 0x01, 0x49, 0xFF, 0x6A, +0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, 0x29, 0xF3, +0x42, 0xA2, 0x43, 0xE9, 0xA4, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x4C, 0x9A, 0x2C, 0x94, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, -0x44, 0x9A, 0x23, 0x6B, 0x6B, 0xEB, 0x60, 0xC2, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF6, +0x4C, 0x9A, 0x23, 0x6B, 0x6B, 0xEB, 0x60, 0xC2, 0xCA, 0x10, 0x32, 0x94, 0x40, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, 0x6C, 0xEA, 0x07, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x4C, 0x9A, 0x2C, 0x94, 0x40, 0xEA, 0xBD, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x22, 0xF6, 0x48, 0x9A, 0x2E, 0x95, 0x49, 0xE0, +0x42, 0xF6, 0x50, 0x9A, 0x2E, 0x95, 0x49, 0xE0, 0xA9, 0xE2, 0x80, 0xA2, 0x30, 0xF0, 0x20, 0x6A, -0x22, 0xF6, 0x4C, 0x9A, 0x6C, 0xEC, 0x80, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, 0x50, 0x9A, +0x42, 0xF6, 0x54, 0x9A, 0x6C, 0xEC, 0x80, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF6, 0x58, 0x9A, 0x15, 0x04, 0x49, 0xE0, 0xA9, 0xE2, 0x40, 0xA2, -0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, -0x54, 0x9A, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6B, -0xE9, 0xF2, 0x72, 0xA3, 0x0C, 0x02, 0x4D, 0xE3, +0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF6, +0x5C, 0x9A, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6B, +0x29, 0xF3, 0x62, 0xA3, 0x0C, 0x02, 0x4D, 0xE3, 0x1B, 0x65, 0x12, 0x10, 0xC0, 0xA3, 0xFE, 0x65, 0x3F, 0x67, 0xFF, 0x6E, 0x2C, 0xEE, 0x20, 0xA5, 0x2E, 0xEE, 0x03, 0x26, 0x00, 0x6B, 0x60, 0xC2, @@ -4348,72 +4251,72 @@ u8 array_mp_8822c_fw_ap[] = { 0x0A, 0x60, 0x20, 0xF0, 0x53, 0xA4, 0x01, 0x72, 0x06, 0x60, 0x20, 0xF0, 0x54, 0xA4, 0x01, 0x72, 0x02, 0x60, 0x2F, 0x95, 0x4D, 0x25, 0x80, 0x18, -0x7F, 0x00, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, -0x58, 0x9A, 0x66, 0x6B, 0x00, 0x6C, 0x60, 0xC2, +0xAB, 0x00, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, +0x40, 0x9A, 0x66, 0x6B, 0x00, 0x6C, 0x60, 0xC2, 0x80, 0x18, 0x00, 0x00, 0x30, 0xF0, 0x20, 0x6A, -0xE9, 0xF2, 0x5E, 0xA2, 0x01, 0x6E, 0x2F, 0xD6, -0x5A, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, -0x7C, 0x9A, 0xFF, 0x6C, 0x01, 0x4C, 0x40, 0x9B, +0x29, 0xF3, 0x4E, 0xA2, 0x01, 0x6E, 0x2F, 0xD6, +0x5A, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, +0x64, 0x9A, 0xFF, 0x6C, 0x01, 0x4C, 0x40, 0x9B, 0x8C, 0xEA, 0x01, 0x22, 0x80, 0xDB, 0xFF, 0x68, 0x01, 0x48, 0x00, 0x6C, 0xB0, 0x67, 0x80, 0x18, -0x37, 0x5F, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0xA3, 0xF3, 0xC7, 0xA2, 0x0C, 0x26, +0xC0, 0x5D, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0xA3, 0xF3, 0xC7, 0xA2, 0x0C, 0x26, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, 0x42, 0xF1, 0x1C, 0x6C, 0x01, 0x6D, 0xCC, 0x36, 0x40, 0xEA, 0x01, 0x6F, 0x2F, 0xD7, 0x37, 0x10, 0xA3, 0xF3, 0xC8, 0xA2, 0x09, 0x26, 0x42, 0xF1, 0x1C, 0x6C, 0x01, 0x6D, 0xC4, 0x36, 0x01, 0x69, -0x00, 0x18, 0xD6, 0xCA, 0x2F, 0xD1, 0x2B, 0x10, +0x00, 0x18, 0xDE, 0xC9, 0x2F, 0xD1, 0x2B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, 0x42, 0xF1, 0x1C, 0x6C, 0x01, 0x6D, 0xD0, 0x67, 0x40, 0xEA, 0x01, 0x6A, 0x2F, 0xD2, 0x1F, 0x10, 0x9D, 0x67, 0x20, 0xF0, 0x70, 0xC4, 0x20, 0xF0, 0x71, 0xC4, 0x20, 0xF0, 0x72, 0xC4, 0x20, 0xF0, 0x73, 0xC4, 0x20, 0xF0, 0x74, 0xC4, 0x30, 0xF0, -0x20, 0x6B, 0xE9, 0xF2, 0x72, 0xA3, 0x0C, 0x02, +0x20, 0x6B, 0x29, 0xF3, 0x62, 0xA3, 0x0C, 0x02, 0x4D, 0xE3, 0x03, 0x10, 0x01, 0x6C, 0x80, 0xC2, 0x01, 0x4A, 0x6A, 0xEA, 0xFB, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x4C, 0x9A, 0x2C, 0x94, 0x40, 0xEA, 0x00, 0x6D, 0x2F, 0xD5, 0x2C, 0x90, -0x00, 0x18, 0xDB, 0xC7, 0x1C, 0x22, 0x30, 0xF0, -0x20, 0x6E, 0x45, 0xF7, 0x18, 0x4E, 0x2D, 0xD6, +0x00, 0x18, 0xEB, 0xC6, 0x1C, 0x22, 0x30, 0xF0, +0x20, 0x6E, 0x85, 0xF7, 0x08, 0x4E, 0x2D, 0xD6, 0xA0, 0xF0, 0x6F, 0xA6, 0x01, 0x6A, 0x6C, 0xEA, 0xBF, 0xF5, 0x1E, 0x2A, 0x10, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6F, 0x02, 0xF6, -0x60, 0x9B, 0x30, 0x96, 0x02, 0xF6, 0xE4, 0x9F, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6F, 0x22, 0xF6, +0x68, 0x9B, 0x30, 0x96, 0x22, 0xF6, 0xEC, 0x9F, 0x6D, 0xE0, 0x18, 0x4E, 0xFD, 0xE0, 0xCD, 0xE3, 0xA0, 0x9C, 0xDD, 0xE7, 0x47, 0x17, 0x37, 0x97, 0x36, 0x91, 0x35, 0x90, 0x1C, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x42, 0xF6, 0x40, 0x9A, 0x30, 0xF0, -0x20, 0x6B, 0x42, 0xF6, 0x64, 0x9B, 0x40, 0x9A, -0x30, 0xF0, 0x20, 0x68, 0x45, 0xF7, 0x18, 0x48, +0x20, 0x6A, 0x62, 0xF6, 0x48, 0x9A, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF6, 0x6C, 0x9B, 0x40, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0x85, 0xF7, 0x08, 0x48, 0x6C, 0xEA, 0x01, 0x6C, 0xE2, 0xF5, 0x44, 0xD8, -0x80, 0x18, 0x04, 0x18, 0xA0, 0xF0, 0x6F, 0xA0, +0x80, 0x18, 0x08, 0x1B, 0xA0, 0xF0, 0x6F, 0xA0, 0x01, 0x6A, 0x01, 0x6C, 0x6D, 0xEA, 0xA0, 0xF0, 0x4F, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, -0xB8, 0x9A, 0x80, 0x18, 0xD3, 0x5E, 0x30, 0xF0, -0x20, 0x6A, 0x42, 0xF6, 0x48, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0x42, 0xF6, 0x90, 0x9C, 0x60, 0xA2, +0xB0, 0x9A, 0x80, 0x18, 0x5C, 0x5D, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF6, 0x50, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x62, 0xF6, 0x98, 0x9C, 0x60, 0xA2, 0x07, 0x6A, 0x6C, 0xEA, 0x01, 0x4A, 0x83, 0xF3, 0x5A, 0xC0, 0x00, 0x6A, 0x83, 0xF3, 0x58, 0xC8, -0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF6, 0x6C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x74, 0x9A, 0x40, 0x9B, 0x8C, 0xEA, 0x40, 0xDB, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x60, 0xA4, 0x01, 0x6A, 0x04, 0x67, 0x6C, 0xEA, -0x0D, 0x22, 0x80, 0x18, 0x14, 0x02, 0x30, 0xF0, -0x20, 0x6A, 0x22, 0xF6, 0x58, 0x9A, 0x00, 0x6B, -0x60, 0xC2, 0x00, 0x18, 0xF8, 0xCA, 0x00, 0x18, -0x59, 0xCF, 0x1D, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0xE9, 0xF2, 0x5E, 0xA2, 0x14, 0x22, 0xFF, 0x69, +0x0D, 0x22, 0x80, 0x18, 0x40, 0x02, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF6, 0x40, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x00, 0x18, 0x00, 0xCA, 0x00, 0x18, +0x61, 0xCE, 0x1D, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x29, 0xF3, 0x4E, 0xA2, 0x14, 0x22, 0xFF, 0x69, 0x01, 0x49, 0x00, 0x6C, 0xB1, 0x67, 0x80, 0x18, -0x54, 0x5F, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, -0x7C, 0x9A, 0x40, 0x9B, 0x2C, 0xEA, 0x01, 0x22, -0x20, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF6, -0x54, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x80, 0x18, -0x7F, 0x00, 0x00, 0x18, 0x65, 0xCF, 0x61, 0xA0, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, +0xDD, 0x5D, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, +0x64, 0x9A, 0x40, 0x9B, 0x2C, 0xEA, 0x01, 0x22, +0x20, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, +0x5C, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x80, 0x18, +0xAB, 0x00, 0x00, 0x18, 0x6D, 0xCE, 0x61, 0xA0, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0xA0, 0xF0, 0x70, 0xC2, 0x62, 0xA0, 0x02, 0x6F, 0x01, 0x68, 0x04, 0x6E, 0x08, 0x6D, 0x10, 0x6C, 0x6C, 0xE8, 0x6C, 0xEF, 0x6C, 0xEE, 0x6C, 0xED, @@ -4422,7 +4325,7 @@ u8 array_mp_8822c_fw_ap[] = { 0xDE, 0xC2, 0x83, 0xF3, 0xBF, 0xC2, 0xA3, 0xF3, 0x80, 0xC2, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0x00, 0x6B, 0xC2, 0xF4, +0x85, 0xF7, 0x08, 0x4A, 0x00, 0x6B, 0xC2, 0xF4, 0x7F, 0xC2, 0xE2, 0xF4, 0x60, 0xC2, 0xC2, 0xF4, 0x7E, 0xC2, 0x00, 0x6B, 0xC2, 0xF4, 0x7C, 0xCA, 0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0xD1, @@ -4459,56 +4362,56 @@ u8 array_mp_8822c_fw_ap[] = { 0x06, 0xD2, 0x40, 0xF4, 0x4C, 0x99, 0x90, 0x67, 0x00, 0x6D, 0x40, 0xEA, 0x04, 0xD2, 0x0D, 0x95, 0x06, 0x92, 0x04, 0x04, 0x00, 0x6E, 0x05, 0xD2, -0x80, 0x18, 0x67, 0x02, 0x0B, 0x97, 0x0A, 0x91, +0x80, 0x18, 0x93, 0x02, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF6, 0x58, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, 0x40, 0x9A, 0xFF, 0x6B, 0x80, 0xA2, 0x00, 0xF6, 0x80, 0x34, 0x00, 0xF6, 0x83, 0x34, 0x00, 0x54, 0x25, 0x60, 0xA0, 0xA2, 0x7F, 0x6C, 0xAC, 0xEC, 0x40, 0x6D, 0xAD, 0xEC, 0x6C, 0xEC, 0x80, 0xC2, 0x30, 0xF0, -0x20, 0x6C, 0x42, 0xF6, 0x9C, 0x9C, 0x3F, 0x6D, -0x80, 0xA4, 0x30, 0xF0, 0x20, 0x6C, 0x62, 0xF6, -0x80, 0x9C, 0x80, 0xA4, 0x30, 0xF0, 0x20, 0x6C, -0x62, 0xF6, 0x84, 0x9C, 0x80, 0xA4, 0x30, 0xF0, -0x20, 0x6C, 0x62, 0xF6, 0x88, 0x9C, 0x80, 0xA4, +0x20, 0x6C, 0x82, 0xF6, 0x84, 0x9C, 0x3F, 0x6D, +0x80, 0xA4, 0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF6, +0x88, 0x9C, 0x80, 0xA4, 0x30, 0xF0, 0x20, 0x6C, +0x82, 0xF6, 0x8C, 0x9C, 0x80, 0xA4, 0x30, 0xF0, +0x20, 0x6C, 0x82, 0xF6, 0x90, 0x9C, 0x80, 0xA4, 0x80, 0xA2, 0x6C, 0xEC, 0xAD, 0xEC, 0x6C, 0xEC, 0x80, 0xC2, 0x80, 0xA2, 0xBF, 0x6B, 0x8C, 0xEB, 0x60, 0xC2, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, -0x62, 0xF6, 0x6C, 0x9B, 0xFF, 0x6A, 0x4C, 0xEC, +0x82, 0xF6, 0x74, 0x9B, 0xFF, 0x6A, 0x4C, 0xEC, 0xC0, 0xA3, 0x4C, 0xED, 0x15, 0x26, 0x30, 0xF0, -0x20, 0x6A, 0x62, 0xF6, 0x70, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0x62, 0xF6, 0x94, 0x9C, 0x40, 0x9B, +0x20, 0x6A, 0x82, 0xF6, 0x78, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x82, 0xF6, 0x9C, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0x63, 0xF3, 0x64, 0x9A, +0x85, 0xF7, 0x08, 0x4A, 0x63, 0xF3, 0x64, 0x9A, 0x8D, 0xEB, 0x63, 0xF3, 0x64, 0xDA, 0x20, 0xE8, 0x80, 0xC3, 0x0B, 0x25, 0x30, 0xF0, 0x20, 0x6B, -0x62, 0xF6, 0x98, 0x9B, 0x80, 0x6D, 0xAB, 0xED, +0xA2, 0xF6, 0x80, 0x9B, 0x80, 0x6D, 0xAB, 0xED, 0x60, 0xA4, 0x4C, 0xEB, 0xAE, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0xA2, 0xF5, 0x78, 0x9B, 0x30, 0xF0, 0x20, 0x69, -0xC5, 0xF5, 0x5C, 0x99, 0xE0, 0x9B, 0x30, 0xF0, -0x20, 0x6B, 0x62, 0xF6, 0x7C, 0x9B, 0x50, 0x32, +0xA2, 0xF5, 0x7C, 0x9B, 0x30, 0xF0, 0x20, 0x69, +0x05, 0xF6, 0x48, 0x99, 0xE0, 0x9B, 0x30, 0xF0, +0x20, 0x6B, 0xA2, 0xF6, 0x64, 0x9B, 0x50, 0x32, 0x6D, 0xE2, 0xE0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x82, 0xF6, 0x60, 0x9B, 0x6D, 0xE2, 0x80, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF6, 0x64, 0x9B, +0xA2, 0xF6, 0x68, 0x9B, 0x6D, 0xE2, 0x80, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF6, 0x6C, 0x9B, 0x6D, 0xE2, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x82, 0xF6, 0x68, 0x9B, 0x69, 0xE2, 0xC0, 0xDA, -0xC5, 0xF5, 0x1C, 0x99, 0x01, 0x48, 0x00, 0xF1, -0x00, 0x70, 0xC5, 0xF5, 0x1C, 0xD9, 0x05, 0x60, +0xA2, 0xF6, 0x70, 0x9B, 0x69, 0xE2, 0xC0, 0xDA, +0x05, 0xF6, 0x08, 0x99, 0x01, 0x48, 0x00, 0xF1, +0x00, 0x70, 0x05, 0xF6, 0x08, 0xD9, 0x05, 0x60, 0x00, 0xF2, 0x00, 0x6A, 0x4E, 0xE8, 0x06, 0x20, 0x0B, 0x10, 0x10, 0x6C, 0x01, 0x6D, 0x80, 0x18, -0xC7, 0x02, 0x06, 0x10, 0x11, 0x6C, 0x01, 0x6D, -0x80, 0x18, 0xC7, 0x02, 0xC5, 0xF5, 0x1C, 0xD9, +0xF3, 0x02, 0x06, 0x10, 0x11, 0x6C, 0x01, 0x6D, +0x80, 0x18, 0xF3, 0x02, 0x05, 0xF6, 0x08, 0xD9, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x00, 0x6A, 0x0B, 0xD7, 0xE0, 0xAE, 0x1F, 0xF7, 0x00, 0x6B, 0xEC, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x09, 0x2B, 0x30, 0xF0, 0x20, 0x6B, -0xE0, 0xAE, 0xC2, 0xF5, 0x64, 0x9B, 0x6D, 0xE7, +0xE0, 0xAE, 0xC2, 0xF5, 0x68, 0x9B, 0x6D, 0xE7, 0xE0, 0xA4, 0xE0, 0xC3, 0x07, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0xC2, 0xF5, 0x68, 0x9B, 0x7D, 0xE7, +0x20, 0x6B, 0xC2, 0xF5, 0x6C, 0x9B, 0x7D, 0xE7, 0x60, 0xA4, 0x60, 0xC7, 0x01, 0x4A, 0xFF, 0x6B, 0x6C, 0xEA, 0x03, 0x72, 0x02, 0x4E, 0x01, 0x4C, 0xE1, 0x61, 0x25, 0x67, 0x00, 0x68, 0x0B, 0x92, @@ -4517,542 +4420,649 @@ u8 array_mp_8822c_fw_ap[] = { 0xAB, 0xED, 0x02, 0x48, 0x40, 0xEA, 0x16, 0x70, 0x04, 0x49, 0xF1, 0x61, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0x00, 0x6B, 0x6A, 0xF7, 0x78, 0xC2, 0x00, 0x6A, -0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0xD1, -0x08, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0xAA, 0xF3, 0x76, 0xA2, 0x73, 0x2B, -0x01, 0x6B, 0x30, 0xF0, 0x21, 0x6E, 0x30, 0xF0, -0x21, 0x6D, 0xCA, 0xF3, 0x65, 0xC2, 0xCA, 0xF3, -0x66, 0xC2, 0x30, 0xF4, 0x1C, 0x4E, 0x50, 0xF3, -0x04, 0x4D, 0x00, 0x6A, 0x00, 0x6B, 0x60, 0xDE, -0x30, 0xF0, 0x20, 0x6C, 0x91, 0xF2, 0x6F, 0x42, -0x45, 0xF7, 0x18, 0x4C, 0x6C, 0x33, 0x6D, 0xE4, -0x04, 0x4B, 0x03, 0xD3, 0x32, 0xF5, 0x6C, 0x42, -0x68, 0x33, 0x6D, 0xE4, 0x04, 0x4B, 0x02, 0xD3, -0x06, 0x6B, 0x78, 0xEA, 0x00, 0xD5, 0x00, 0x6F, -0x12, 0xEB, 0x6D, 0xE4, 0x4A, 0xF7, 0x1D, 0x4B, -0x03, 0x90, 0x00, 0x6C, 0x00, 0x69, 0x80, 0xD8, -0x02, 0x90, 0x80, 0xC8, 0x44, 0x30, 0x01, 0xE7, -0x65, 0xF2, 0x0C, 0x48, 0x30, 0xF0, 0x20, 0x6C, -0x04, 0x30, 0x45, 0xF7, 0x18, 0x4C, 0x11, 0xE4, -0x04, 0x4C, 0x04, 0xD4, 0x00, 0x94, 0x01, 0xD4, -0x04, 0x90, 0x01, 0x6C, 0x06, 0xD2, 0x80, 0xC0, -0x44, 0x34, 0xF1, 0xE4, 0x84, 0x34, 0x91, 0xE1, -0x30, 0xF0, 0x20, 0x68, 0x90, 0x34, 0x45, 0xF7, -0x18, 0x48, 0x91, 0xE0, 0xCA, 0xF3, 0x1C, 0x4C, -0x01, 0x92, 0x00, 0x68, 0x00, 0xCC, 0x80, 0xF0, -0x00, 0xCC, 0x02, 0x4C, 0x4A, 0xEC, 0xF8, 0x61, -0x04, 0x94, 0x01, 0x49, 0x02, 0x71, 0x01, 0x4C, -0x04, 0xD4, 0x01, 0x94, 0x06, 0x92, 0x10, 0x4C, -0x01, 0xD4, 0xDE, 0x61, 0x00, 0xC3, 0x01, 0xC3, -0x02, 0xC3, 0x03, 0x90, 0x02, 0x94, 0x01, 0x4F, -0x04, 0x48, 0x03, 0xD0, 0x00, 0x90, 0x02, 0x4C, -0x02, 0x77, 0x20, 0x48, 0x02, 0xD4, 0x03, 0x4B, -0x00, 0xD0, 0xBA, 0x61, 0x01, 0x4A, 0x02, 0x72, -0x04, 0x4E, 0x40, 0x4D, 0x9B, 0x61, 0x09, 0x91, -0x08, 0x90, 0x05, 0x63, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF6, 0xFC, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0x09, 0xF4, 0x18, 0x4C, 0x00, 0x6D, 0x18, 0x6E, -0x80, 0x18, 0x7F, 0x57, 0x30, 0xF0, 0x20, 0x6B, -0x01, 0xF4, 0x00, 0x6C, 0x45, 0xF7, 0x18, 0x4B, -0x4C, 0xEC, 0xEA, 0xF4, 0x4C, 0xDB, 0x82, 0x32, -0x4A, 0x32, 0x02, 0x72, 0x0A, 0x60, 0x03, 0x6C, -0x4E, 0xEC, 0x04, 0x24, 0x01, 0x72, 0x02, 0x6A, -0x05, 0x60, 0x06, 0x10, 0xAA, 0xF3, 0x95, 0xC3, -0x03, 0x10, 0x01, 0x6A, 0xAA, 0xF3, 0x55, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, 0x78, 0x9B, -0xEA, 0xF4, 0x8C, 0x9A, 0x8C, 0xEB, 0x62, 0x33, -0x62, 0x33, 0xAA, 0xF3, 0x74, 0xC2, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x00, 0x68, 0x05, 0xD5, -0x04, 0xD4, 0x05, 0x92, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF6, 0x1C, 0x4B, 0xE0, 0x9B, 0xC0, 0xA2, -0x30, 0xF0, 0x20, 0x69, 0x09, 0xF4, 0x18, 0x49, -0x91, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x7F, 0x57, -0x04, 0x93, 0x91, 0x67, 0x01, 0x6D, 0x40, 0xDB, -0x05, 0x92, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF6, -0x1C, 0x4B, 0xE0, 0x9B, 0xC0, 0xA2, 0x01, 0x48, -0x80, 0x18, 0x7F, 0x57, 0x04, 0x93, 0x41, 0xDB, -0xFF, 0x6A, 0x4C, 0xE8, 0x05, 0x92, 0x08, 0x4B, -0x03, 0x70, 0x01, 0x4A, 0x05, 0xD2, 0x04, 0xD3, -0xD8, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0xAC, 0xE9, -0x00, 0x68, 0x85, 0xF5, 0x1C, 0x6C, 0xFF, 0x6D, -0x80, 0x18, 0xA1, 0x16, 0x55, 0x72, 0x0C, 0x61, -0x00, 0x6A, 0x15, 0x21, 0x30, 0xF0, 0x20, 0x6A, -0xA2, 0xF6, 0xBC, 0x9A, 0x03, 0xF3, 0x08, 0x6C, -0x80, 0x18, 0xA1, 0x16, 0x00, 0x6A, 0x0B, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, -0x01, 0x6C, 0x01, 0x48, 0x40, 0xEA, 0xFF, 0xF7, -0x1F, 0x6A, 0x4C, 0xE8, 0x01, 0x6A, 0x32, 0x58, -0x01, 0x60, 0xDF, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF3, 0x10, 0x6C, -0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x00, 0x6A, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, -0xAC, 0xEA, 0x01, 0x72, 0x05, 0xD4, 0x24, 0x61, -0x44, 0x67, 0x04, 0x4A, 0x01, 0x68, 0x30, 0xF0, -0x20, 0x69, 0x04, 0xEA, 0x00, 0xF2, 0x08, 0x6A, -0x4D, 0xE8, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, -0xD0, 0x67, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, -0xAB, 0xED, 0xC1, 0x40, 0x03, 0xF3, 0x00, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x48, 0x9A, 0x01, 0x6C, 0x40, 0xEA, 0x05, 0x94, -0x01, 0x6D, 0x80, 0x18, 0x9B, 0x03, 0xD2, 0x10, -0x02, 0x72, 0x01, 0x6A, 0xC0, 0xF0, 0x0E, 0x61, -0x30, 0xF0, 0x21, 0x6A, 0x10, 0xF3, 0x52, 0xA2, -0x00, 0x68, 0x09, 0x72, 0x0C, 0x60, 0x12, 0x72, -0x01, 0x68, 0x09, 0x60, 0x1B, 0x72, 0x02, 0x68, -0x06, 0x60, 0x24, 0x68, 0x4E, 0xE8, 0x01, 0x58, -0x18, 0x67, 0x04, 0x6A, 0x03, 0xE2, 0x05, 0x92, -0x30, 0xF0, 0x20, 0x69, 0x01, 0x6D, 0x44, 0x32, -0x07, 0xD2, 0x07, 0x93, 0x08, 0x6A, 0x03, 0xF3, -0x00, 0x6C, 0x4D, 0xEB, 0xC0, 0xF3, 0x44, 0x99, -0xC3, 0x67, 0x07, 0xD3, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6C, 0x45, 0xF7, 0x18, 0x4C, -0x04, 0xD4, 0x04, 0x93, 0xC0, 0xF3, 0x44, 0x99, -0x01, 0x6D, 0xAA, 0xF3, 0xDA, 0xA3, 0xC3, 0xF3, -0x0C, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x05, 0x92, -0x01, 0x6C, 0x01, 0x6D, 0x04, 0x4A, 0x84, 0xEA, -0x00, 0xF3, 0x08, 0x6A, 0x4D, 0xEC, 0x06, 0xD4, -0xC0, 0xF3, 0x44, 0x99, 0x06, 0x96, 0x03, 0xF3, -0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x06, 0x96, -0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0xAB, 0xED, -0x01, 0x4E, 0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, -0x02, 0x6C, 0x40, 0xEA, 0x05, 0x94, 0x01, 0x6D, -0x80, 0x18, 0x9B, 0x03, 0x01, 0x72, 0x0A, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF1, 0x04, 0x4A, -0x41, 0xE0, 0x40, 0xA0, 0x04, 0x93, 0xAA, 0xF3, -0x5A, 0xC3, 0x6B, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x05, 0x95, 0xE2, 0xF6, 0xFC, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0x09, 0xF4, 0x18, 0x4C, 0x00, 0x6E, -0x80, 0x18, 0x7F, 0x57, 0x05, 0xD2, 0x07, 0x96, -0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0x03, 0xF3, -0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x05, 0x94, -0xE3, 0xF7, 0x00, 0x6A, 0x04, 0x93, 0x8C, 0xEA, -0x56, 0x34, 0x96, 0x32, 0xAA, 0xF3, 0x5C, 0xDB, -0x1F, 0x6A, 0x8C, 0xEA, 0x02, 0x5A, 0xFF, 0x6B, -0x0B, 0x60, 0x03, 0x70, 0x03, 0x60, 0x01, 0x48, -0x6C, 0xE8, 0x49, 0x10, 0x04, 0x94, 0x01, 0x6B, -0x03, 0x68, 0x6A, 0xF7, 0x71, 0xC4, 0x43, 0x10, -0x0A, 0x5A, 0x0B, 0x61, 0x04, 0x20, 0xFF, 0x48, -0x6C, 0xE8, 0x01, 0x6B, 0x0B, 0x10, 0x04, 0x94, -0x01, 0x6B, 0x6A, 0xF7, 0x71, 0xC4, 0x01, 0x6B, -0x09, 0x10, 0x04, 0x94, 0x00, 0x6B, 0x6A, 0xF7, -0x71, 0xC4, 0x00, 0x6B, 0x03, 0x20, 0x04, 0x58, -0x01, 0x61, 0x03, 0x68, 0x30, 0xF0, 0x20, 0x6D, -0x62, 0xF1, 0x04, 0x4D, 0xA1, 0xE0, 0xA0, 0xA0, -0x30, 0xF0, 0x20, 0x6C, 0x45, 0xF7, 0x18, 0x4C, -0xAA, 0xF3, 0xBA, 0xC4, 0x0F, 0x2B, 0xAA, 0xF3, -0xDA, 0xA4, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x64, 0x9B, 0xC0, 0x36, 0x01, 0x6D, 0x4D, 0xEE, -0xE3, 0xF3, 0x08, 0x6C, 0xAB, 0xED, 0x40, 0xEB, -0x00, 0x6A, 0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, 0xE3, 0xF3, -0x08, 0x6C, 0xAB, 0xED, 0xFF, 0xF7, 0x1F, 0x6E, -0x40, 0xEA, 0x01, 0x6A, 0x0B, 0x97, 0x0A, 0x91, -0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x01, 0x6B, -0xCE, 0x17, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x00, 0x6B, 0x0B, 0xD7, -0xE0, 0xAE, 0x1F, 0xF7, 0x00, 0x6A, 0xEC, 0xEA, -0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x08, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xAE, 0xC2, 0xF5, -0x44, 0x9A, 0x49, 0xE7, 0xE0, 0xA2, 0x06, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, 0x48, 0x9A, -0x5D, 0xE7, 0xE0, 0xA7, 0xFF, 0x6A, 0xEC, 0xEA, -0x7D, 0xE4, 0x01, 0x4B, 0x03, 0x73, 0x40, 0xC7, -0x02, 0x4E, 0xE2, 0x61, 0x25, 0x67, 0x00, 0x68, -0x0B, 0x93, 0x01, 0x6D, 0xAB, 0xED, 0x09, 0xE3, -0x80, 0xAA, 0x02, 0x48, 0x80, 0x18, 0xA1, 0x16, -0x16, 0x70, 0x40, 0xD9, 0x04, 0x49, 0xF4, 0x61, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0xFF, 0x69, 0xE2, 0xF6, 0x78, 0x9B, 0x30, 0xF0, -0x20, 0x68, 0x2C, 0xEC, 0xC0, 0xF3, 0x44, 0x98, -0xAC, 0xE9, 0x24, 0x36, 0x01, 0x6D, 0x04, 0xD4, -0xAB, 0xED, 0x03, 0xF3, 0x00, 0x6C, 0x6D, 0xEE, -0x40, 0xEA, 0x04, 0x92, 0x08, 0x2A, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, -0x00, 0x6D, 0x03, 0x6E, 0x07, 0x10, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, -0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x44, 0x9A, 0x02, 0xF7, 0xA0, 0x9B, 0xC3, 0xF3, -0x14, 0x6C, 0x10, 0x6E, 0x40, 0xEA, 0x04, 0x93, -0x24, 0x30, 0x30, 0xF0, 0x20, 0x6A, 0x01, 0xE3, -0x45, 0xF7, 0x18, 0x4A, 0x10, 0x30, 0x01, 0xE2, -0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF7, 0x44, 0x9A, -0xCA, 0xF3, 0x1C, 0x48, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, 0x04, 0x96, -0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x01, 0x6D, 0xE3, 0xF3, 0x1C, 0x6C, -0xAB, 0xED, 0x80, 0x18, 0xA1, 0x16, 0x30, 0xF0, -0x20, 0x6B, 0x02, 0xF7, 0x68, 0x9B, 0x4C, 0xEB, -0x62, 0x33, 0x62, 0x33, 0x60, 0xC8, 0xE1, 0xF7, -0x1F, 0x6B, 0x4C, 0xEB, 0x04, 0x92, 0x80, 0xF0, -0x60, 0xC8, 0x02, 0x48, 0x04, 0x4A, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF7, 0x4C, 0x9A, -0x04, 0x93, 0x6E, 0xEA, 0xD8, 0x2A, 0xC0, 0xF3, -0x44, 0x99, 0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, -0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x99, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, -0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x09, 0x97, +0xFB, 0x63, 0x09, 0xD1, 0x08, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0xAA, 0xF3, +0x76, 0xA2, 0x73, 0x2B, 0x01, 0x6B, 0x30, 0xF0, +0x21, 0x6E, 0x30, 0xF0, 0x21, 0x6D, 0xCA, 0xF3, +0x65, 0xC2, 0xCA, 0xF3, 0x66, 0xC2, 0x70, 0xF4, +0x0C, 0x4E, 0x70, 0xF3, 0x14, 0x4D, 0x00, 0x6A, +0x00, 0x6B, 0x60, 0xDE, 0x30, 0xF0, 0x20, 0x6C, +0x91, 0xF2, 0x6F, 0x42, 0x85, 0xF7, 0x08, 0x4C, +0x6C, 0x33, 0x6D, 0xE4, 0x04, 0x4B, 0x03, 0xD3, +0x32, 0xF5, 0x6C, 0x42, 0x68, 0x33, 0x6D, 0xE4, +0x04, 0x4B, 0x02, 0xD3, 0x06, 0x6B, 0x78, 0xEA, +0x00, 0xD5, 0x00, 0x6F, 0x12, 0xEB, 0x6D, 0xE4, +0x4A, 0xF7, 0x1D, 0x4B, 0x03, 0x90, 0x00, 0x6C, +0x00, 0x69, 0x80, 0xD8, 0x02, 0x90, 0x80, 0xC8, +0x44, 0x30, 0x01, 0xE7, 0x65, 0xF2, 0x0C, 0x48, +0x30, 0xF0, 0x20, 0x6C, 0x04, 0x30, 0x85, 0xF7, +0x08, 0x4C, 0x11, 0xE4, 0x04, 0x4C, 0x04, 0xD4, +0x00, 0x94, 0x01, 0xD4, 0x04, 0x90, 0x01, 0x6C, +0x06, 0xD2, 0x80, 0xC0, 0x44, 0x34, 0xF1, 0xE4, +0x84, 0x34, 0x91, 0xE1, 0x30, 0xF0, 0x20, 0x68, +0x90, 0x34, 0x85, 0xF7, 0x08, 0x48, 0x91, 0xE0, +0xCA, 0xF3, 0x1C, 0x4C, 0x01, 0x92, 0x00, 0x68, +0x00, 0xCC, 0x80, 0xF0, 0x00, 0xCC, 0x02, 0x4C, +0x4A, 0xEC, 0xF8, 0x61, 0x04, 0x94, 0x01, 0x49, +0x02, 0x71, 0x01, 0x4C, 0x04, 0xD4, 0x01, 0x94, +0x06, 0x92, 0x10, 0x4C, 0x01, 0xD4, 0xDE, 0x61, +0x00, 0xC3, 0x01, 0xC3, 0x02, 0xC3, 0x03, 0x90, +0x02, 0x94, 0x01, 0x4F, 0x04, 0x48, 0x03, 0xD0, +0x00, 0x90, 0x02, 0x4C, 0x02, 0x77, 0x20, 0x48, +0x02, 0xD4, 0x03, 0x4B, 0x00, 0xD0, 0xBA, 0x61, +0x01, 0x4A, 0x02, 0x72, 0x04, 0x4E, 0x40, 0x4D, +0x9B, 0x61, 0x09, 0x91, 0x08, 0x90, 0x05, 0x63, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, 0xE0, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x49, 0xF4, 0x08, 0x4C, +0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, 0x05, 0x56, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF4, 0x00, 0x6C, +0x85, 0xF7, 0x08, 0x4B, 0x4C, 0xEC, 0xEA, 0xF4, +0x4C, 0xDB, 0x82, 0x32, 0x4A, 0x32, 0x02, 0x72, +0x0A, 0x60, 0x03, 0x6C, 0x4E, 0xEC, 0x04, 0x24, +0x01, 0x72, 0x02, 0x6A, 0x05, 0x60, 0x06, 0x10, +0xAA, 0xF3, 0x95, 0xC3, 0x03, 0x10, 0x01, 0x6A, +0xAA, 0xF3, 0x55, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF5, 0x70, 0x9B, 0xEA, 0xF4, 0x8C, 0x9A, +0x8C, 0xEB, 0x62, 0x33, 0x62, 0x33, 0xAA, 0xF3, +0x74, 0xC2, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x00, 0x68, 0x05, 0xD5, 0x04, 0xD4, 0x05, 0x92, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, 0x00, 0x4B, +0xE0, 0x9B, 0xC0, 0xA2, 0x30, 0xF0, 0x20, 0x69, +0x49, 0xF4, 0x08, 0x49, 0x91, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x05, 0x56, 0x04, 0x93, 0x91, 0x67, +0x01, 0x6D, 0x40, 0xDB, 0x05, 0x92, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0xF7, 0x00, 0x4B, 0xE0, 0x9B, +0xC0, 0xA2, 0x01, 0x48, 0x80, 0x18, 0x05, 0x56, +0x04, 0x93, 0x41, 0xDB, 0xFF, 0x6A, 0x4C, 0xE8, +0x05, 0x92, 0x08, 0x4B, 0x03, 0x70, 0x01, 0x4A, +0x05, 0xD2, 0x04, 0xD3, 0xD8, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, -0xFF, 0x6A, 0x4C, 0xEC, 0x05, 0x67, 0x01, 0x74, -0x4C, 0xE8, 0x80, 0xF0, 0x0D, 0x60, 0x04, 0x24, -0x04, 0x5C, 0xA0, 0xF0, 0x04, 0x60, 0x9E, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0xEA, 0xF4, 0x64, 0x9A, 0x30, 0xF0, 0x21, 0x6D, -0x30, 0xF0, 0x21, 0x6C, 0xEA, 0xF4, 0x68, 0xDA, -0x30, 0xF0, 0x21, 0x6F, 0x30, 0xF0, 0x21, 0x6B, -0x50, 0xF4, 0x14, 0x4D, 0x50, 0xF4, 0x0C, 0x4C, -0x50, 0xF4, 0x08, 0x4B, 0x50, 0xF3, 0x04, 0x4F, -0x00, 0x6E, 0x40, 0x9D, 0x65, 0xF2, 0x0C, 0x46, -0x04, 0x30, 0x42, 0xDD, 0x40, 0xAC, 0x04, 0xD7, -0x00, 0x69, 0x42, 0xCC, 0x40, 0xA3, 0x08, 0xD3, -0x42, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0x01, 0xE2, 0x04, 0x48, 0x40, 0xA0, -0x44, 0xC0, 0xC4, 0x32, 0x49, 0xE1, 0x50, 0x32, -0x1A, 0x65, 0x30, 0xF0, 0x20, 0x6A, 0x78, 0x67, -0x45, 0xF7, 0x18, 0x4A, 0x69, 0xE2, 0xCA, 0xF3, -0x1C, 0x4A, 0x1A, 0x65, 0x08, 0x92, 0x06, 0xD2, -0x58, 0x67, 0x60, 0xAA, 0x40, 0xF0, 0x60, 0xCA, -0x80, 0xF0, 0x60, 0xAA, 0xC0, 0xF0, 0x60, 0xCA, -0x04, 0x93, 0x02, 0x4A, 0x6A, 0xEA, 0xF5, 0x61, -0x06, 0x92, 0x01, 0x49, 0x10, 0x4B, 0x02, 0x71, -0x08, 0xD2, 0x01, 0x48, 0x04, 0xD3, 0xDB, 0x61, -0x01, 0x4E, 0x02, 0x68, 0x62, 0x67, 0xCE, 0xE8, -0x04, 0x4D, 0x02, 0x4C, 0x01, 0x4B, 0x20, 0x4F, -0xC0, 0x28, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0x00, 0x6B, 0x6A, 0xF7, 0x69, 0xC2, -0x6A, 0xF7, 0x6A, 0xC2, 0x4A, 0xF7, 0x7D, 0xC2, -0x4A, 0xF7, 0x7E, 0xC2, 0x4A, 0xF7, 0x7F, 0xC2, -0xEA, 0xF4, 0x71, 0xC2, 0x6A, 0xF7, 0x6B, 0xC2, -0x6A, 0xF7, 0x6C, 0xC2, 0x6A, 0xF7, 0x60, 0xC2, -0x6A, 0xF7, 0x61, 0xC2, 0x6A, 0xF7, 0x62, 0xC2, -0xEA, 0xF4, 0x6C, 0x9A, 0x01, 0x6C, 0xEA, 0xF4, -0x10, 0xC2, 0xEA, 0xF4, 0x14, 0xCA, 0xCA, 0xF4, -0x9C, 0xC2, 0xCA, 0xF4, 0x9D, 0xC2, 0xEA, 0xF4, -0x16, 0xCA, 0xCA, 0xF4, 0x9E, 0xC2, 0xCA, 0xF4, -0x9F, 0xC2, 0xEA, 0xF4, 0x64, 0xDA, 0x1B, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, 0xFC, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0xB0, 0x67, 0x09, 0xF4, -0x18, 0x4C, 0x58, 0x6E, 0x80, 0x18, 0x7F, 0x57, -0x22, 0xF5, 0x1E, 0x48, 0x30, 0xF0, 0x20, 0x6B, -0x08, 0x30, 0x45, 0xF7, 0x18, 0x4B, 0x6D, 0xE0, -0x41, 0xDB, 0x05, 0x10, 0xFE, 0x4C, 0x4C, 0xEC, -0xB0, 0x67, 0x80, 0x18, 0x57, 0x04, 0x0D, 0x97, -0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x21, 0x6A, -0x10, 0xF3, 0x59, 0xA2, 0x18, 0x2A, 0x01, 0x6C, -0x00, 0x6D, 0x80, 0x18, 0x98, 0x04, 0x02, 0x6C, -0x00, 0x6D, 0x80, 0x18, 0x98, 0x04, 0x03, 0x6C, -0x00, 0x6D, 0x80, 0x18, 0x98, 0x04, 0x01, 0x6C, -0xA4, 0x67, 0x80, 0x18, 0x98, 0x04, 0x02, 0x6C, -0x01, 0x6D, 0x80, 0x18, 0x98, 0x04, 0x03, 0x6C, -0x01, 0x6D, 0x80, 0x18, 0x98, 0x04, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x69, 0x00, 0x6A, -0x8C, 0xE9, 0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF6, 0x1C, 0x4A, 0xE0, 0x9A, 0x30, 0xF0, -0x20, 0x68, 0x09, 0xF4, 0x18, 0x48, 0x00, 0x6B, -0x90, 0x67, 0xB1, 0x67, 0xEF, 0x6E, 0x04, 0xD3, -0x80, 0x18, 0xF2, 0x57, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF6, 0x1C, 0x4A, 0xE0, 0x9A, 0x00, 0x6B, -0x90, 0x67, 0xB1, 0x67, 0x08, 0x6E, 0x04, 0xD3, -0x80, 0x18, 0xF2, 0x57, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF6, 0x1C, 0x4B, 0xE0, 0x9B, 0x90, 0x67, -0xB1, 0x67, 0x08, 0x6E, 0x80, 0x18, 0x7F, 0x57, -0x0B, 0x22, 0x06, 0x92, 0x01, 0x4A, 0x06, 0xD2, -0x06, 0x93, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEB, -0x2E, 0xF5, 0x10, 0x73, 0x06, 0xD3, 0xCE, 0x61, -0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xF5, 0x63, 0x15, 0x62, -0x14, 0xD1, 0x13, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, -0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF1, -0x08, 0x4A, 0x64, 0x67, 0x07, 0xD2, 0x22, 0xF5, -0x16, 0x4B, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0x68, 0x33, 0x6D, 0xE2, 0x04, 0x4B, -0x09, 0xD3, 0x64, 0x67, 0x81, 0xF2, 0x1F, 0x4B, -0x6C, 0x33, 0x69, 0xE2, 0x04, 0x4A, 0x00, 0x6B, -0x0E, 0xD4, 0x10, 0xD5, 0x0B, 0xD2, 0x08, 0xD3, -0x08, 0x92, 0x10, 0x93, 0xFF, 0x69, 0x4C, 0xE9, -0x18, 0x2B, 0x30, 0xF0, 0x20, 0x68, 0x09, 0xF4, -0x18, 0x48, 0x01, 0x6A, 0x90, 0x67, 0xB1, 0x67, -0xDF, 0x6E, 0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0xF2, 0x57, 0x0B, 0x93, 0x90, 0x67, 0xB1, 0x67, -0x40, 0x9B, 0x58, 0x6E, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF6, 0xFC, 0x9A, 0x80, 0x18, -0xF2, 0x57, 0x08, 0x92, 0x44, 0x32, 0x0D, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, 0x58, 0x9A, -0x0D, 0x93, 0x4D, 0xEB, 0x00, 0x6A, 0x0D, 0xD3, -0x06, 0xD2, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, -0x44, 0x98, 0x0D, 0x96, 0x01, 0x69, 0x2B, 0xE9, -0x03, 0xF3, 0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x0C, 0x6C, -0xB1, 0x67, 0x07, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xA2, 0xF6, 0x0C, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x18, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA2, 0xF6, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF3, 0x1C, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, -0x0C, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, -0x06, 0x93, 0xFF, 0x6A, 0x6C, 0xEA, 0x08, 0x2A, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, -0x06, 0xF0, 0x00, 0x6D, 0x03, 0x6E, 0x07, 0x10, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, -0x06, 0xF0, 0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x02, 0xF7, 0xA0, 0x9B, -0xC3, 0xF3, 0x14, 0x6C, 0x10, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x06, 0x93, 0x02, 0xF7, -0x50, 0x9A, 0x46, 0xEB, 0x0E, 0x93, 0x64, 0x30, -0x08, 0x93, 0x61, 0xE0, 0x06, 0x93, 0x04, 0x30, -0x01, 0xE3, 0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF7, -0x18, 0x4B, 0x10, 0x30, 0x01, 0xE3, 0x63, 0x42, -0x0A, 0xD3, 0x61, 0x42, 0x23, 0x4A, 0xCA, 0xF3, -0x1C, 0x48, 0x0C, 0xD3, 0x0F, 0xD2, 0xC0, 0xA8, -0x0A, 0x93, 0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, -0x44, 0x99, 0xC0, 0x36, 0xC4, 0x36, 0x01, 0x6D, -0xD9, 0xE3, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x80, 0xF0, 0xC0, 0xA8, 0x0C, 0x93, -0xC0, 0xF3, 0x44, 0x99, 0xC0, 0x36, 0xC4, 0x36, -0x01, 0x6D, 0xD9, 0xE3, 0xC3, 0xF3, 0x18, 0x6C, -0xAB, 0xED, 0x40, 0xEA, 0x0C, 0x93, 0x0A, 0x92, -0x02, 0x48, 0x04, 0x4B, 0x0C, 0xD3, 0x0F, 0x93, -0x04, 0x4A, 0x0A, 0xD2, 0x6A, 0xEA, 0xDB, 0x61, -0x06, 0x93, 0xFF, 0x6A, 0x6C, 0xEA, 0x08, 0x2A, -0x09, 0x92, 0x07, 0x93, 0x01, 0x6D, 0xC0, 0xA2, -0x80, 0xAB, 0xC0, 0xF3, 0x44, 0x99, 0x08, 0x10, -0x09, 0x92, 0x07, 0x93, 0x00, 0xF4, 0x00, 0x6D, -0xC1, 0xA2, 0x80, 0xAB, 0xC0, 0xF3, 0x44, 0x99, -0xCF, 0xEE, 0x40, 0xEA, 0x06, 0x92, 0x01, 0x4A, -0x02, 0x72, 0x06, 0xD2, 0x5F, 0xF7, 0x15, 0x61, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0x08, 0x93, 0x07, 0x92, -0x01, 0x4B, 0x08, 0xD3, 0x09, 0x93, 0x02, 0x4A, -0x07, 0xD2, 0x02, 0x4B, 0x0B, 0x92, 0x09, 0xD3, -0x08, 0x93, 0x04, 0x4A, 0x0B, 0xD2, 0x02, 0x73, -0x1F, 0xF7, 0x0A, 0x61, 0x15, 0x97, 0x14, 0x91, -0x13, 0x90, 0x0B, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x21, 0x6A, -0x10, 0xF3, 0x59, 0xA2, 0x05, 0x22, 0x00, 0x6C, -0x01, 0x6D, 0x80, 0x18, 0x1E, 0x03, 0x04, 0x10, -0x00, 0x6C, 0x01, 0x6D, 0x80, 0x18, 0x25, 0x05, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x69, 0xAC, 0xE9, 0x00, 0x68, 0x85, 0xF5, +0x1C, 0x6C, 0xFF, 0x6D, 0x80, 0x18, 0xA5, 0x19, +0x55, 0x72, 0x0C, 0x61, 0x00, 0x6A, 0x15, 0x21, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, 0xA0, 0x9A, +0x03, 0xF3, 0x08, 0x6C, 0x80, 0x18, 0xA5, 0x19, +0x00, 0x6A, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, 0x01, 0x48, +0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, +0x01, 0x6A, 0x32, 0x58, 0x01, 0x60, 0xDF, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x00, 0x6A, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x00, 0x6A, 0x7D, 0x67, 0x4C, 0xCB, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF5, 0x38, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF6, 0x1C, 0x4A, 0xE0, 0x9A, -0x30, 0xF0, 0x20, 0x68, 0x09, 0xF4, 0x18, 0x48, -0x00, 0x6D, 0x90, 0x67, 0xC5, 0x67, 0x04, 0xD1, -0x80, 0x18, 0xF2, 0x57, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF6, 0x1C, 0x4B, 0xE0, 0x9B, 0x90, 0x67, -0x01, 0x6D, 0x00, 0x6E, 0x30, 0xF0, 0x20, 0x68, -0x04, 0xD1, 0x80, 0x18, 0xF2, 0x57, 0x30, 0xF0, -0x20, 0x6B, 0x02, 0xF7, 0xB4, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0xE1, 0xF0, 0x18, 0x6C, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, -0xE1, 0xF0, 0x1C, 0x6C, 0xAB, 0xED, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x07, 0x6D, -0xC5, 0x67, 0x83, 0xF1, 0x0C, 0x6C, 0x40, 0xEA, -0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF3, 0x48, 0x9A, 0xA1, 0xF3, 0x18, 0x6F, -0xA1, 0xF7, 0x00, 0x6C, 0x08, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, -0x08, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x02, 0xF7, 0xB8, 0x9B, 0x01, 0xF2, 0x04, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xA2, 0xF6, 0x74, 0x9A, 0xFF, 0x6A, 0x80, 0xA3, -0x8C, 0xEA, 0xFE, 0x6C, 0x4C, 0xEC, 0x80, 0xC3, -0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF7, -0x5C, 0x9A, 0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, -0x09, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, -0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, -0x40, 0x9A, 0x60, 0xDA, 0x0B, 0x97, 0x0A, 0x91, -0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x01, 0x72, +0x05, 0xD4, 0x24, 0x61, 0x44, 0x67, 0x04, 0x4A, +0x01, 0x68, 0x30, 0xF0, 0x20, 0x69, 0x04, 0xEA, +0x00, 0xF2, 0x08, 0x6A, 0x4D, 0xE8, 0xC0, 0xF3, +0x44, 0x99, 0x01, 0x6D, 0xD0, 0x67, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0x01, 0x6D, 0xAB, 0xED, 0xC1, 0x40, +0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, +0x40, 0xEA, 0x05, 0x94, 0x01, 0x6D, 0x80, 0x18, +0xC2, 0x03, 0xD2, 0x10, 0x02, 0x72, 0x01, 0x6A, +0xC0, 0xF0, 0x0E, 0x61, 0x30, 0xF0, 0x21, 0x6A, +0x50, 0xF3, 0x42, 0xA2, 0x00, 0x68, 0x09, 0x72, +0x0C, 0x60, 0x12, 0x72, 0x01, 0x68, 0x09, 0x60, +0x1B, 0x72, 0x02, 0x68, 0x06, 0x60, 0x24, 0x68, +0x4E, 0xE8, 0x01, 0x58, 0x18, 0x67, 0x04, 0x6A, +0x03, 0xE2, 0x05, 0x92, 0x30, 0xF0, 0x20, 0x69, +0x01, 0x6D, 0x44, 0x32, 0x07, 0xD2, 0x07, 0x93, +0x08, 0x6A, 0x03, 0xF3, 0x00, 0x6C, 0x4D, 0xEB, +0xC0, 0xF3, 0x44, 0x99, 0xC3, 0x67, 0x07, 0xD3, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x85, 0xF7, 0x08, 0x4C, 0x04, 0xD4, 0x04, 0x93, +0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0xAA, 0xF3, +0xDA, 0xA3, 0xC3, 0xF3, 0x0C, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x05, 0x92, 0x01, 0x6C, 0x01, 0x6D, +0x04, 0x4A, 0x84, 0xEA, 0x00, 0xF3, 0x08, 0x6A, +0x4D, 0xEC, 0x06, 0xD4, 0xC0, 0xF3, 0x44, 0x99, +0x06, 0x96, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x06, 0x96, 0xC0, 0xF3, 0x44, 0x99, +0x01, 0x6D, 0xAB, 0xED, 0x01, 0x4E, 0x03, 0xF3, +0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x48, 0x9A, 0x02, 0x6C, 0x40, 0xEA, +0x05, 0x94, 0x01, 0x6D, 0x80, 0x18, 0xC2, 0x03, +0x01, 0x72, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF1, 0x04, 0x4A, 0x41, 0xE0, 0x40, 0xA0, +0x04, 0x93, 0xAA, 0xF3, 0x5A, 0xC3, 0x6B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x05, 0x95, 0x22, 0xF7, +0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x49, 0xF4, +0x08, 0x4C, 0x00, 0x6E, 0x80, 0x18, 0x05, 0x56, +0x05, 0xD2, 0x07, 0x96, 0xC0, 0xF3, 0x44, 0x99, +0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x05, 0x94, 0xE3, 0xF7, 0x00, 0x6A, +0x04, 0x93, 0x8C, 0xEA, 0x56, 0x34, 0x96, 0x32, +0xAA, 0xF3, 0x5C, 0xDB, 0x1F, 0x6A, 0x8C, 0xEA, +0x02, 0x5A, 0xFF, 0x6B, 0x0B, 0x60, 0x03, 0x70, +0x03, 0x60, 0x01, 0x48, 0x6C, 0xE8, 0x49, 0x10, +0x04, 0x94, 0x01, 0x6B, 0x03, 0x68, 0x6A, 0xF7, +0x71, 0xC4, 0x43, 0x10, 0x0A, 0x5A, 0x0B, 0x61, +0x04, 0x20, 0xFF, 0x48, 0x6C, 0xE8, 0x01, 0x6B, +0x0B, 0x10, 0x04, 0x94, 0x01, 0x6B, 0x6A, 0xF7, +0x71, 0xC4, 0x01, 0x6B, 0x09, 0x10, 0x04, 0x94, +0x00, 0x6B, 0x6A, 0xF7, 0x71, 0xC4, 0x00, 0x6B, +0x03, 0x20, 0x04, 0x58, 0x01, 0x61, 0x03, 0x68, +0x30, 0xF0, 0x20, 0x6D, 0x62, 0xF1, 0x04, 0x4D, +0xA1, 0xE0, 0xA0, 0xA0, 0x30, 0xF0, 0x20, 0x6C, +0x85, 0xF7, 0x08, 0x4C, 0xAA, 0xF3, 0xBA, 0xC4, +0x0F, 0x2B, 0xAA, 0xF3, 0xDA, 0xA4, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x64, 0x9B, 0xC0, 0x36, +0x01, 0x6D, 0x4D, 0xEE, 0xE3, 0xF3, 0x08, 0x6C, +0xAB, 0xED, 0x40, 0xEB, 0x00, 0x6A, 0x0C, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x01, 0x6D, 0xE3, 0xF3, 0x08, 0x6C, 0xAB, 0xED, +0xFF, 0xF7, 0x1F, 0x6E, 0x40, 0xEA, 0x01, 0x6A, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x01, 0x6B, 0xCE, 0x17, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x00, 0x6B, 0x0B, 0xD7, 0xE0, 0xAE, 0x1F, 0xF7, +0x00, 0x6A, 0xEC, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x08, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xAE, 0xC2, 0xF5, 0x48, 0x9A, 0x49, 0xE7, +0xE0, 0xA2, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xC2, 0xF5, 0x4C, 0x9A, 0x5D, 0xE7, 0xE0, 0xA7, +0xFF, 0x6A, 0xEC, 0xEA, 0x7D, 0xE4, 0x01, 0x4B, +0x03, 0x73, 0x40, 0xC7, 0x02, 0x4E, 0xE2, 0x61, +0x25, 0x67, 0x00, 0x68, 0x0B, 0x93, 0x01, 0x6D, +0xAB, 0xED, 0x09, 0xE3, 0x80, 0xAA, 0x02, 0x48, +0x80, 0x18, 0xA5, 0x19, 0x16, 0x70, 0x40, 0xD9, +0x04, 0x49, 0xF4, 0x61, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, 0x3C, 0x9A, -0x30, 0xF0, 0x20, 0x68, 0x09, 0xF4, 0x18, 0x48, -0x90, 0x67, 0xF1, 0x67, 0x01, 0xF2, 0x00, 0x6A, -0x00, 0x6D, 0xB8, 0x6E, 0x04, 0xD2, 0x80, 0x18, -0xF2, 0x57, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, -0x48, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, -0xB8, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x69, 0x02, 0xF7, +0x7C, 0x9B, 0x30, 0xF0, 0x20, 0x68, 0x2C, 0xEC, +0xC0, 0xF3, 0x44, 0x98, 0xAC, 0xE9, 0x24, 0x36, +0x01, 0x6D, 0x04, 0xD4, 0xAB, 0xED, 0x03, 0xF3, +0x00, 0x6C, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, +0x08, 0x2A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x03, 0x6E, +0x07, 0x10, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x22, 0xF7, +0xA4, 0x9B, 0xC3, 0xF3, 0x14, 0x6C, 0x10, 0x6E, +0x40, 0xEA, 0x04, 0x93, 0x24, 0x30, 0x30, 0xF0, +0x20, 0x6A, 0x01, 0xE3, 0x85, 0xF7, 0x08, 0x4A, +0x10, 0x30, 0x01, 0xE2, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF7, 0x48, 0x9A, 0xCA, 0xF3, 0x1C, 0x48, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, +0x44, 0x99, 0x04, 0x96, 0x01, 0x6D, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x01, 0x6D, +0xE3, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, 0x80, 0x18, +0xA5, 0x19, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, +0x6C, 0x9B, 0x4C, 0xEB, 0x62, 0x33, 0x62, 0x33, +0x60, 0xC8, 0xE1, 0xF7, 0x1F, 0x6B, 0x4C, 0xEB, +0x04, 0x92, 0x80, 0xF0, 0x60, 0xC8, 0x02, 0x48, +0x04, 0x4A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF7, 0x50, 0x9A, 0x04, 0x93, 0x6E, 0xEA, +0xD8, 0x2A, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, +0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x03, 0xF3, +0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, +0x05, 0x67, 0x01, 0x74, 0x4C, 0xE8, 0x80, 0xF0, +0x0D, 0x60, 0x04, 0x24, 0x04, 0x5C, 0xA0, 0xF0, +0x04, 0x60, 0x9E, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0xEA, 0xF4, 0x64, 0x9A, +0x30, 0xF0, 0x21, 0x6D, 0x30, 0xF0, 0x21, 0x6C, +0xEA, 0xF4, 0x68, 0xDA, 0x30, 0xF0, 0x21, 0x6F, +0x30, 0xF0, 0x21, 0x6B, 0x90, 0xF4, 0x04, 0x4D, +0x70, 0xF4, 0x1C, 0x4C, 0x70, 0xF4, 0x18, 0x4B, +0x70, 0xF3, 0x14, 0x4F, 0x00, 0x6E, 0x40, 0x9D, +0x65, 0xF2, 0x0C, 0x46, 0x04, 0x30, 0x42, 0xDD, +0x40, 0xAC, 0x04, 0xD7, 0x00, 0x69, 0x42, 0xCC, +0x40, 0xA3, 0x08, 0xD3, 0x42, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0x01, 0xE2, +0x04, 0x48, 0x40, 0xA0, 0x44, 0xC0, 0xC4, 0x32, +0x49, 0xE1, 0x50, 0x32, 0x1A, 0x65, 0x30, 0xF0, +0x20, 0x6A, 0x78, 0x67, 0x85, 0xF7, 0x08, 0x4A, +0x69, 0xE2, 0xCA, 0xF3, 0x1C, 0x4A, 0x1A, 0x65, +0x08, 0x92, 0x06, 0xD2, 0x58, 0x67, 0x60, 0xAA, +0x40, 0xF0, 0x60, 0xCA, 0x80, 0xF0, 0x60, 0xAA, +0xC0, 0xF0, 0x60, 0xCA, 0x04, 0x93, 0x02, 0x4A, +0x6A, 0xEA, 0xF5, 0x61, 0x06, 0x92, 0x01, 0x49, +0x10, 0x4B, 0x02, 0x71, 0x08, 0xD2, 0x01, 0x48, +0x04, 0xD3, 0xDB, 0x61, 0x01, 0x4E, 0x02, 0x68, +0x62, 0x67, 0xCE, 0xE8, 0x04, 0x4D, 0x02, 0x4C, +0x01, 0x4B, 0x20, 0x4F, 0xC0, 0x28, 0x30, 0xF0, +0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0x00, 0x6B, +0x6A, 0xF7, 0x69, 0xC2, 0x6A, 0xF7, 0x6A, 0xC2, +0x4A, 0xF7, 0x7D, 0xC2, 0x4A, 0xF7, 0x7E, 0xC2, +0x4A, 0xF7, 0x7F, 0xC2, 0xEA, 0xF4, 0x71, 0xC2, +0x6A, 0xF7, 0x6B, 0xC2, 0x6A, 0xF7, 0x6C, 0xC2, +0x6A, 0xF7, 0x60, 0xC2, 0x6A, 0xF7, 0x61, 0xC2, +0x6A, 0xF7, 0x62, 0xC2, 0xEA, 0xF4, 0x6C, 0x9A, +0x01, 0x6C, 0xEA, 0xF4, 0x10, 0xC2, 0xEA, 0xF4, +0x14, 0xCA, 0xCA, 0xF4, 0x9C, 0xC2, 0xCA, 0xF4, +0x9D, 0xC2, 0xEA, 0xF4, 0x16, 0xCA, 0xCA, 0xF4, +0x9E, 0xC2, 0xCA, 0xF4, 0x9F, 0xC2, 0xEA, 0xF4, +0x64, 0xDA, 0x1B, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF7, 0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xB0, 0x67, 0x49, 0xF4, 0x08, 0x4C, 0x58, 0x6E, +0x80, 0x18, 0x05, 0x56, 0x22, 0xF5, 0x1E, 0x48, +0x30, 0xF0, 0x20, 0x6B, 0x08, 0x30, 0x85, 0xF7, +0x08, 0x4B, 0x6D, 0xE0, 0x41, 0xDB, 0x05, 0x10, +0xFE, 0x4C, 0x4C, 0xEC, 0xB0, 0x67, 0x80, 0x18, +0x7E, 0x04, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x21, 0x6A, 0x50, 0xF3, 0x49, 0xA2, +0x18, 0x2A, 0x01, 0x6C, 0x00, 0x6D, 0x80, 0x18, +0xBF, 0x04, 0x02, 0x6C, 0x00, 0x6D, 0x80, 0x18, +0xBF, 0x04, 0x03, 0x6C, 0x00, 0x6D, 0x80, 0x18, +0xBF, 0x04, 0x01, 0x6C, 0xA4, 0x67, 0x80, 0x18, +0xBF, 0x04, 0x02, 0x6C, 0x01, 0x6D, 0x80, 0x18, +0xBF, 0x04, 0x03, 0x6C, 0x01, 0x6D, 0x80, 0x18, +0xBF, 0x04, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x69, 0x00, 0x6A, 0x8C, 0xE9, 0x06, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, 0x00, 0x4A, +0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x49, 0xF4, +0x08, 0x48, 0x00, 0x6B, 0x90, 0x67, 0xB1, 0x67, +0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, 0x00, 0x4A, +0xE0, 0x9A, 0x00, 0x6B, 0x90, 0x67, 0xB1, 0x67, +0x08, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, 0x00, 0x4B, +0xE0, 0x9B, 0x90, 0x67, 0xB1, 0x67, 0x08, 0x6E, +0x80, 0x18, 0x05, 0x56, 0x0B, 0x22, 0x06, 0x92, +0x01, 0x4A, 0x06, 0xD2, 0x06, 0x93, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xEB, 0x2E, 0xF5, 0x10, 0x73, +0x06, 0xD3, 0xCE, 0x61, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF5, 0x63, 0x15, 0x62, 0x14, 0xD1, 0x13, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xED, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF1, 0x08, 0x4A, 0x64, 0x67, +0x07, 0xD2, 0x22, 0xF5, 0x16, 0x4B, 0x30, 0xF0, +0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0x68, 0x33, +0x6D, 0xE2, 0x04, 0x4B, 0x09, 0xD3, 0x64, 0x67, +0x81, 0xF2, 0x1F, 0x4B, 0x6C, 0x33, 0x69, 0xE2, +0x04, 0x4A, 0x00, 0x6B, 0x0E, 0xD4, 0x10, 0xD5, +0x0B, 0xD2, 0x08, 0xD3, 0x08, 0x92, 0x10, 0x93, +0xFF, 0x69, 0x4C, 0xE9, 0x18, 0x2B, 0x30, 0xF0, +0x20, 0x68, 0x49, 0xF4, 0x08, 0x48, 0x01, 0x6A, +0x90, 0x67, 0xB1, 0x67, 0xDF, 0x6E, 0x10, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x0B, 0x93, +0x90, 0x67, 0xB1, 0x67, 0x40, 0x9B, 0x58, 0x6E, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, +0xE0, 0x9A, 0x80, 0x18, 0x78, 0x56, 0x08, 0x92, +0x44, 0x32, 0x0D, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF7, 0x5C, 0x9A, 0x0D, 0x93, 0x4D, 0xEB, +0x00, 0x6A, 0x0D, 0xD3, 0x06, 0xD2, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x0D, 0x96, +0x01, 0x69, 0x2B, 0xE9, 0x03, 0xF3, 0x00, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x0C, 0x6C, 0xB1, 0x67, 0x07, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, +0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, 0x14, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, +0x1C, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0x06, 0x93, 0xFF, 0x6A, +0x6C, 0xEA, 0x08, 0x2A, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, +0x03, 0x6E, 0x07, 0x10, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x22, 0xF7, 0xA4, 0x9B, 0xC3, 0xF3, 0x14, 0x6C, +0x10, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x06, 0x93, 0x22, 0xF7, 0x54, 0x9A, 0x46, 0xEB, +0x0E, 0x93, 0x64, 0x30, 0x08, 0x93, 0x61, 0xE0, +0x06, 0x93, 0x04, 0x30, 0x01, 0xE3, 0x30, 0xF0, +0x20, 0x6B, 0x85, 0xF7, 0x08, 0x4B, 0x10, 0x30, +0x01, 0xE3, 0x63, 0x42, 0x0A, 0xD3, 0x61, 0x42, +0x23, 0x4A, 0xCA, 0xF3, 0x1C, 0x48, 0x0C, 0xD3, +0x0F, 0xD2, 0xC0, 0xA8, 0x0A, 0x93, 0x30, 0xF0, +0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, 0xC0, 0x36, +0xC4, 0x36, 0x01, 0x6D, 0xD9, 0xE3, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x80, 0xF0, +0xC0, 0xA8, 0x0C, 0x93, 0xC0, 0xF3, 0x44, 0x99, +0xC0, 0x36, 0xC4, 0x36, 0x01, 0x6D, 0xD9, 0xE3, +0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x0C, 0x93, 0x0A, 0x92, 0x02, 0x48, 0x04, 0x4B, +0x0C, 0xD3, 0x0F, 0x93, 0x04, 0x4A, 0x0A, 0xD2, +0x6A, 0xEA, 0xDB, 0x61, 0x06, 0x93, 0xFF, 0x6A, +0x6C, 0xEA, 0x08, 0x2A, 0x09, 0x92, 0x07, 0x93, +0x01, 0x6D, 0xC0, 0xA2, 0x80, 0xAB, 0xC0, 0xF3, +0x44, 0x99, 0x08, 0x10, 0x09, 0x92, 0x07, 0x93, +0x00, 0xF4, 0x00, 0x6D, 0xC1, 0xA2, 0x80, 0xAB, +0xC0, 0xF3, 0x44, 0x99, 0xCF, 0xEE, 0x40, 0xEA, +0x06, 0x92, 0x01, 0x4A, 0x02, 0x72, 0x06, 0xD2, +0x5F, 0xF7, 0x15, 0x61, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, +0x06, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x08, 0x93, 0x07, 0x92, 0x01, 0x4B, 0x08, 0xD3, +0x09, 0x93, 0x02, 0x4A, 0x07, 0xD2, 0x02, 0x4B, +0x0B, 0x92, 0x09, 0xD3, 0x08, 0x93, 0x04, 0x4A, +0x0B, 0xD2, 0x02, 0x73, 0x1F, 0xF7, 0x0A, 0x61, +0x15, 0x97, 0x14, 0x91, 0x13, 0x90, 0x0B, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xED, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, +0x00, 0x6B, 0x6A, 0xF7, 0x78, 0xC2, 0x1A, 0x2C, +0xAA, 0xF3, 0x76, 0xA2, 0x17, 0x23, 0xEA, 0xF4, +0x6C, 0x9A, 0xEA, 0xF4, 0x84, 0x9A, 0x00, 0x68, +0x6E, 0xEC, 0x05, 0x24, 0xEA, 0xF4, 0x48, 0x9A, +0x4E, 0xEB, 0x0C, 0x2B, 0x01, 0x68, 0x01, 0x6B, +0x30, 0xF0, 0x21, 0x6A, 0x90, 0x67, 0x10, 0xF7, +0x60, 0xC2, 0x80, 0x18, 0x4C, 0x05, 0x90, 0x67, +0x80, 0x18, 0x4E, 0x40, 0x30, 0xF0, 0x21, 0x6A, +0x10, 0xF7, 0x40, 0xA2, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x21, 0x6A, 0x50, 0xF3, 0x49, 0xA2, +0x05, 0x22, 0x00, 0x6C, 0x01, 0x6D, 0x80, 0x18, +0xDB, 0x05, 0x04, 0x10, 0x00, 0x6C, 0x01, 0x6D, +0x80, 0x18, 0x4C, 0x05, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x0E, 0xD6, 0x0F, 0xD7, -0x04, 0xD7, 0xFF, 0x68, 0xFF, 0xF7, 0x1F, 0x69, -0x0E, 0x97, 0x8C, 0xE8, 0xAC, 0xE9, 0x30, 0xF0, -0x20, 0x6C, 0x09, 0xF4, 0x18, 0x4C, 0xB0, 0x67, -0xD1, 0x67, 0x80, 0x18, 0xF2, 0x57, 0x00, 0x6A, -0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6B, 0x0E, 0x97, -0x09, 0xF4, 0x18, 0x4B, 0x83, 0x67, 0xB0, 0x67, -0xD1, 0x67, 0x06, 0xD3, 0x80, 0x18, 0x7F, 0x57, -0x0F, 0x93, 0x6E, 0xEA, 0x1E, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, -0x40, 0xEA, 0x0F, 0x92, 0x06, 0x94, 0x0E, 0x97, -0xB0, 0x67, 0xD1, 0x67, 0x04, 0xD2, 0x80, 0x18, -0xF2, 0x57, 0x07, 0x93, 0x01, 0x4B, 0xE0, 0xF3, -0x08, 0x73, 0x07, 0xD3, 0xDE, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0xA0, 0xF1, -0x00, 0x6C, 0x1F, 0xF7, 0x00, 0x6D, 0x0A, 0x6E, -0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0xFF, 0x68, 0xFF, 0xF7, 0x1F, 0x69, 0xE2, 0xF6, -0xFC, 0x9A, 0x8C, 0xE8, 0xAC, 0xE9, 0x30, 0xF0, -0x20, 0x6C, 0x0E, 0xD6, 0x04, 0xD6, 0x09, 0xF4, -0x18, 0x4C, 0xB0, 0x67, 0xD1, 0x67, 0x80, 0x18, -0xF2, 0x57, 0x00, 0x6A, 0x07, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF6, 0x1C, 0x4A, 0x30, 0xF0, -0x20, 0x6B, 0xE0, 0x9A, 0x09, 0xF4, 0x18, 0x4B, +0x0A, 0xD1, 0x09, 0xD0, 0x00, 0x6A, 0x7D, 0x67, +0x4C, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, +0x30, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, +0x00, 0x4A, 0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x68, +0x49, 0xF4, 0x08, 0x48, 0x00, 0x6D, 0x90, 0x67, +0xC5, 0x67, 0x04, 0xD1, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, 0x00, 0x4B, +0xE0, 0x9B, 0x90, 0x67, 0x01, 0x6D, 0x00, 0x6E, +0x30, 0xF0, 0x20, 0x68, 0x04, 0xD1, 0x80, 0x18, +0x78, 0x56, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, +0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xE1, 0xF0, +0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xE1, 0xF0, 0x1C, 0x6C, +0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x07, 0x6D, 0xC5, 0x67, 0x83, 0xF1, +0x0C, 0x6C, 0x40, 0xEA, 0x06, 0x02, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, +0xA1, 0xF3, 0x18, 0x6F, 0xA1, 0xF7, 0x00, 0x6C, +0x08, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0xF0, 0x08, 0x6C, 0xFF, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x22, 0xF7, 0xBC, 0x9B, +0x01, 0xF2, 0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, 0x7C, 0x9A, +0xFF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0xFE, 0x6C, +0x4C, 0xEC, 0x80, 0xC3, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF7, 0x40, 0x9A, 0x60, 0xA2, +0x01, 0x6A, 0x6C, 0xEA, 0x09, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF7, 0x68, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF7, 0x44, 0x9A, 0x60, 0xDA, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF7, 0x20, 0x9A, 0x30, 0xF0, 0x20, 0x68, +0x49, 0xF4, 0x08, 0x48, 0x90, 0x67, 0xF1, 0x67, +0x01, 0xF2, 0x00, 0x6A, 0x00, 0x6D, 0xB8, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF7, 0x4C, 0x9A, 0x90, 0x67, +0xF1, 0x67, 0x00, 0x6D, 0xB8, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x78, 0x56, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x0E, 0xD6, 0x0F, 0xD7, 0x04, 0xD7, 0xFF, 0x68, +0xFF, 0xF7, 0x1F, 0x69, 0x0E, 0x97, 0x8C, 0xE8, +0xAC, 0xE9, 0x30, 0xF0, 0x20, 0x6C, 0x49, 0xF4, +0x08, 0x4C, 0xB0, 0x67, 0xD1, 0x67, 0x80, 0x18, +0x78, 0x56, 0x00, 0x6A, 0x07, 0xD2, 0x30, 0xF0, +0x20, 0x6B, 0x0E, 0x97, 0x49, 0xF4, 0x08, 0x4B, 0x83, 0x67, 0xB0, 0x67, 0xD1, 0x67, 0x06, 0xD3, -0x80, 0x18, 0x7F, 0x57, 0x0E, 0x93, 0x6E, 0xEA, -0x18, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF6, 0x1C, 0x4B, 0x0E, 0x92, -0x06, 0x94, 0xE0, 0x9B, 0xB0, 0x67, 0xD1, 0x67, -0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, 0x07, 0x92, -0x01, 0x4A, 0xE0, 0xF3, 0x08, 0x72, 0x07, 0xD2, -0xD6, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x00, 0x6A, 0x0C, 0xD4, -0x05, 0x67, 0x06, 0xD2, 0x06, 0x92, 0xFF, 0x6B, -0x30, 0xF0, 0x20, 0x69, 0x6C, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF6, 0x1C, 0x4B, 0x07, 0xD2, -0xE0, 0x9B, 0x07, 0x95, 0x09, 0xF4, 0x18, 0x49, -0x00, 0x6A, 0x91, 0x67, 0xEF, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0xF2, 0x57, 0x40, 0x98, 0x06, 0x94, -0x11, 0x6E, 0xCB, 0xEE, 0x4C, 0xEE, 0xDF, 0x6D, -0x80, 0x18, 0x35, 0x06, 0x0C, 0x92, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF6, 0x1C, 0x4B, 0xC1, 0xA2, -0xE0, 0x9B, 0x42, 0x98, 0x07, 0x95, 0x91, 0x67, -0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, 0x0C, 0x92, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF6, 0x1C, 0x4B, -0xC2, 0xA2, 0x07, 0x95, 0x44, 0x98, 0xE0, 0x9B, -0x91, 0x67, 0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, -0x06, 0x92, 0x04, 0x48, 0x01, 0x4A, 0x02, 0x72, -0x06, 0xD2, 0xC4, 0x61, 0x0B, 0x97, 0x0A, 0x91, -0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x01, 0x6B, 0x6B, 0xEB, 0x30, 0xF0, 0x21, 0x6A, -0x0A, 0xD4, 0x10, 0xF3, 0x6E, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0xA2, 0xF7, 0x3C, 0x9A, 0x30, 0xF0, -0x20, 0x68, 0x0A, 0x93, 0x80, 0xF2, 0x4C, 0x98, -0x30, 0xF0, 0x21, 0x6C, 0x35, 0xE3, 0x90, 0xF6, -0x0C, 0x4C, 0x08, 0x6E, 0x40, 0xEA, 0x0A, 0x95, +0x80, 0x18, 0x05, 0x56, 0x0F, 0x93, 0x6E, 0xEA, +0x1E, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x0F, 0x92, +0x06, 0x94, 0x0E, 0x97, 0xB0, 0x67, 0xD1, 0x67, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x07, 0x93, +0x01, 0x4B, 0xE0, 0xF3, 0x08, 0x73, 0x07, 0xD3, +0xDE, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0xA0, 0xF1, 0x00, 0x6C, 0x1F, 0xF7, +0x00, 0x6D, 0x0A, 0x6E, 0x40, 0xEA, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x68, 0xFF, 0xF7, +0x1F, 0x69, 0x22, 0xF7, 0xE0, 0x9A, 0x8C, 0xE8, +0xAC, 0xE9, 0x30, 0xF0, 0x20, 0x6C, 0x0E, 0xD6, +0x04, 0xD6, 0x49, 0xF4, 0x08, 0x4C, 0xB0, 0x67, +0xD1, 0x67, 0x80, 0x18, 0x78, 0x56, 0x00, 0x6A, +0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, +0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xE0, 0x9A, +0x49, 0xF4, 0x08, 0x4B, 0x83, 0x67, 0xB0, 0x67, +0xD1, 0x67, 0x06, 0xD3, 0x80, 0x18, 0x05, 0x56, +0x0E, 0x93, 0x6E, 0xEA, 0x18, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, +0x00, 0x4B, 0x0E, 0x92, 0x06, 0x94, 0xE0, 0x9B, +0xB0, 0x67, 0xD1, 0x67, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0x07, 0x92, 0x01, 0x4A, 0xE0, 0xF3, +0x08, 0x72, 0x07, 0xD2, 0xD6, 0x61, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x00, 0x6A, 0x0C, 0xD4, 0x05, 0x67, 0x06, 0xD2, +0x06, 0x92, 0xFF, 0x6B, 0x30, 0xF0, 0x20, 0x69, +0x6C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, +0x00, 0x4B, 0x07, 0xD2, 0xE0, 0x9B, 0x07, 0x95, +0x49, 0xF4, 0x08, 0x49, 0x00, 0x6A, 0x91, 0x67, +0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x40, 0x98, 0x06, 0x94, 0x11, 0x6E, 0xCB, 0xEE, +0x4C, 0xEE, 0xDF, 0x6D, 0x80, 0x18, 0x74, 0x06, +0x0C, 0x92, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, +0x00, 0x4B, 0xC1, 0xA2, 0xE0, 0x9B, 0x42, 0x98, +0x07, 0x95, 0x91, 0x67, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0x0C, 0x92, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF7, 0x00, 0x4B, 0xC2, 0xA2, 0x07, 0x95, +0x44, 0x98, 0xE0, 0x9B, 0x91, 0x67, 0x04, 0xD2, +0x80, 0x18, 0x78, 0x56, 0x06, 0x92, 0x04, 0x48, +0x01, 0x4A, 0x02, 0x72, 0x06, 0xD2, 0xC4, 0x61, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x01, 0x6B, 0x6B, 0xEB, +0x30, 0xF0, 0x21, 0x6A, 0x0A, 0xD4, 0x30, 0xF3, +0x7E, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF7, +0x20, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x0A, 0x93, 0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, 0x21, 0x6C, -0x08, 0x4D, 0x35, 0xE5, 0x70, 0xF4, 0x04, 0x4C, -0x44, 0x6E, 0x40, 0xEA, 0x0A, 0x92, 0x30, 0xF0, -0x21, 0x6C, 0xB0, 0xF4, 0x08, 0x4C, 0x4C, 0x4A, -0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, -0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, -0x30, 0xF0, 0x21, 0x6C, 0xF0, 0xF4, 0x0C, 0x4C, -0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, -0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, -0x04, 0x92, 0x30, 0xF0, 0x21, 0x6C, 0x30, 0xF5, -0x10, 0x4C, 0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, +0x35, 0xE3, 0xB0, 0xF6, 0x1C, 0x4C, 0x08, 0x6E, +0x40, 0xEA, 0x0A, 0x95, 0x80, 0xF2, 0x4C, 0x98, +0x30, 0xF0, 0x21, 0x6C, 0x08, 0x4D, 0x35, 0xE5, +0x90, 0xF4, 0x14, 0x4C, 0x44, 0x6E, 0x40, 0xEA, +0x0A, 0x92, 0x30, 0xF0, 0x21, 0x6C, 0xD0, 0xF4, +0x18, 0x4C, 0x4C, 0x4A, 0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, 0x21, 0x6C, -0x70, 0xF5, 0x14, 0x4C, 0x44, 0x4A, 0x04, 0xD2, +0x10, 0xF5, 0x1C, 0x4C, 0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, -0x21, 0x6C, 0xB0, 0xF5, 0x18, 0x4C, 0x44, 0x4A, +0x21, 0x6C, 0x70, 0xF5, 0x00, 0x4C, 0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, -0x30, 0xF0, 0x21, 0x6C, 0xF0, 0xF5, 0x1C, 0x4C, +0x30, 0xF0, 0x21, 0x6C, 0xB0, 0xF5, 0x04, 0x4C, 0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, -0x04, 0x92, 0x30, 0xF0, 0x21, 0x6C, 0x50, 0xF6, -0x00, 0x4C, 0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, +0x04, 0x92, 0x30, 0xF0, 0x21, 0x6C, 0xF0, 0xF5, +0x08, 0x4C, 0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, -0xA0, 0x9B, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, -0x30, 0xF0, 0x21, 0x6C, 0xB0, 0xF6, 0x04, 0x4C, -0xB5, 0xE3, 0x10, 0x6E, 0x40, 0xEA, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0xD1, 0x08, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x02, 0xF1, 0x60, 0xA2, 0x80, 0xF0, -0x1F, 0x23, 0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF5, -0x94, 0x9C, 0x00, 0x6B, 0x02, 0xF1, 0x60, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0x01, 0x6B, 0x30, 0xF0, 0x21, 0x6E, 0x30, 0xF0, -0x21, 0x6D, 0xCA, 0xF3, 0x67, 0xC2, 0xCA, 0xF3, -0x8C, 0xDA, 0xCA, 0xF3, 0x65, 0xC2, 0xCA, 0xF3, -0x69, 0xC2, 0xCA, 0xF3, 0x94, 0xDA, 0xCA, 0xF3, -0x68, 0xC2, 0xCA, 0xF3, 0x90, 0xDA, 0xCA, 0xF3, -0x66, 0xC2, 0xCA, 0xF3, 0x6A, 0xC2, 0xCA, 0xF3, -0x98, 0xDA, 0x90, 0xF6, 0x0C, 0x4E, 0x90, 0xF4, -0x06, 0x4D, 0x00, 0x6A, 0x00, 0x6B, 0x60, 0xDE, -0x30, 0xF0, 0x20, 0x6C, 0xE1, 0xF2, 0x69, 0x42, -0x45, 0xF7, 0x18, 0x4C, 0x6C, 0x33, 0x6D, 0xE4, -0x04, 0x4B, 0x04, 0xD3, 0xD2, 0xF5, 0x60, 0x42, -0x68, 0x33, 0x6D, 0xE4, 0x04, 0x4B, 0x03, 0xD3, -0x06, 0x6B, 0x78, 0xEA, 0x01, 0xD5, 0x00, 0x69, -0x05, 0x67, 0x12, 0xEB, 0x6D, 0xE4, 0x4A, 0xF7, -0x1D, 0x4B, 0x04, 0x95, 0x00, 0x6C, 0x80, 0xDD, -0x03, 0x95, 0x80, 0xCD, 0x44, 0x35, 0xB5, 0xE1, -0x85, 0xF3, 0x14, 0x4D, 0x30, 0xF0, 0x20, 0x6C, -0xA4, 0x35, 0x45, 0xF7, 0x18, 0x4C, 0xB1, 0xE4, -0x04, 0x4C, 0x05, 0xD4, 0x01, 0x94, 0x00, 0x6D, -0x00, 0xD5, 0x02, 0xD4, 0x05, 0x95, 0x01, 0x6C, -0x22, 0x6F, 0x80, 0xC5, 0x00, 0x94, 0x30, 0xF0, -0x20, 0x6D, 0x45, 0xF7, 0x18, 0x4D, 0xF8, 0xEC, -0x44, 0x6C, 0x06, 0xD2, 0x12, 0xEF, 0x98, 0xE9, -0x12, 0xEC, 0x9D, 0xE7, 0x88, 0x6C, 0x98, 0xEA, -0x12, 0xEC, 0x9D, 0xE7, 0xF1, 0xE5, 0xFD, 0xE5, -0x0A, 0xF5, 0x0C, 0x4C, 0x0A, 0xF6, 0x1C, 0x4F, -0x02, 0x92, 0x00, 0x6D, 0xA0, 0xCC, 0x02, 0x4C, -0x4A, 0xEC, 0xA0, 0xCF, 0x02, 0x4F, 0xF8, 0x61, -0x00, 0x94, 0x06, 0x92, 0x01, 0x4C, 0x00, 0xD4, -0x05, 0x94, 0x01, 0x4C, 0x05, 0xD4, 0x02, 0x94, -0x22, 0x4C, 0x02, 0xD4, 0x00, 0x94, 0x02, 0x74, -0xD1, 0x61, 0xA0, 0xC3, 0xA1, 0xC3, 0xA2, 0xC3, -0x04, 0x95, 0x03, 0x94, 0x01, 0x49, 0x04, 0x4D, -0x04, 0xD5, 0x01, 0x95, 0x02, 0x4C, 0x02, 0x71, -0x44, 0x4D, 0x03, 0xD4, 0x03, 0x4B, 0x01, 0xD5, -0xAC, 0x61, 0xB0, 0x67, 0x01, 0x4A, 0x7F, 0x4D, -0x02, 0x72, 0x04, 0x4E, 0x09, 0x4D, 0x8A, 0x61, -0x09, 0x91, 0x08, 0x90, 0x05, 0x63, 0x20, 0xE8, +0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, 0x21, 0x6C, +0x30, 0xF6, 0x0C, 0x4C, 0x44, 0x4A, 0x04, 0xD2, +0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, +0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, +0x21, 0x6C, 0x70, 0xF6, 0x10, 0x4C, 0x44, 0x4A, +0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, +0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF7, 0xA4, 0x9B, 0x04, 0x93, +0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, 0x21, 0x6C, +0xD0, 0xF6, 0x14, 0x4C, 0xB5, 0xE3, 0x10, 0x6E, +0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0xD1, +0x08, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF1, +0x60, 0xA2, 0x80, 0xF0, 0x1E, 0x23, 0x30, 0xF0, +0x20, 0x6C, 0x00, 0x6B, 0x22, 0xF6, 0x80, 0x9C, +0x02, 0xF1, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0x30, 0xF0, 0x21, 0x6E, +0x30, 0xF0, 0x21, 0x6D, 0xCA, 0xF3, 0x67, 0xC2, +0xCA, 0xF3, 0x8C, 0xDA, 0xCA, 0xF3, 0x65, 0xC2, +0xCA, 0xF3, 0x69, 0xC2, 0xCA, 0xF3, 0x94, 0xDA, +0xCA, 0xF3, 0x68, 0xC2, 0xCA, 0xF3, 0x90, 0xDA, +0xCA, 0xF3, 0x66, 0xC2, 0xCA, 0xF3, 0x6A, 0xC2, +0xCA, 0xF3, 0x98, 0xDA, 0xB0, 0xF6, 0x1C, 0x4E, +0xB0, 0xF4, 0x16, 0x4D, 0x00, 0x6A, 0x00, 0x6B, +0x60, 0xDE, 0x30, 0xF0, 0x20, 0x6C, 0xE1, 0xF2, +0x69, 0x42, 0x85, 0xF7, 0x08, 0x4C, 0x6C, 0x33, +0x6D, 0xE4, 0x04, 0x4B, 0x04, 0xD3, 0xD2, 0xF5, +0x60, 0x42, 0x68, 0x33, 0x6D, 0xE4, 0x04, 0x4B, +0x03, 0xD3, 0x06, 0x6B, 0x78, 0xEA, 0x01, 0xD5, +0x00, 0x69, 0x05, 0x67, 0x12, 0xEB, 0x6D, 0xE4, +0x4A, 0xF7, 0x1D, 0x4B, 0x04, 0x95, 0x00, 0x6C, +0x80, 0xDD, 0x03, 0x95, 0x80, 0xCD, 0x44, 0x35, +0xB5, 0xE1, 0x85, 0xF3, 0x14, 0x4D, 0x30, 0xF0, +0x20, 0x6C, 0xA4, 0x35, 0x85, 0xF7, 0x08, 0x4C, +0xB1, 0xE4, 0x04, 0x4C, 0x05, 0xD4, 0x01, 0x94, +0x00, 0x6D, 0x00, 0xD5, 0x02, 0xD4, 0x05, 0x95, +0x00, 0x6C, 0x22, 0x6F, 0x80, 0xC5, 0x00, 0x94, +0x30, 0xF0, 0x20, 0x6D, 0x85, 0xF7, 0x08, 0x4D, +0xF8, 0xEC, 0x44, 0x6C, 0x06, 0xD2, 0x12, 0xEF, +0x98, 0xE9, 0x12, 0xEC, 0x9D, 0xE7, 0x88, 0x6C, +0x98, 0xEA, 0x12, 0xEC, 0x9D, 0xE7, 0xF1, 0xE5, +0xFD, 0xE5, 0x0A, 0xF5, 0x0C, 0x4C, 0x0A, 0xF6, +0x1C, 0x4F, 0x02, 0x92, 0x00, 0x6D, 0xA0, 0xCC, +0x02, 0x4C, 0x4A, 0xEC, 0xA0, 0xCF, 0x02, 0x4F, +0xF8, 0x61, 0x00, 0x94, 0x06, 0x92, 0x01, 0x4C, +0x00, 0xD4, 0x05, 0x94, 0x01, 0x4C, 0x05, 0xD4, +0x02, 0x94, 0x22, 0x4C, 0x02, 0xD4, 0x00, 0x94, +0x02, 0x74, 0xD1, 0x61, 0xA0, 0xC3, 0xA1, 0xC3, +0xA2, 0xC3, 0x04, 0x95, 0x03, 0x94, 0x01, 0x49, +0x04, 0x4D, 0x04, 0xD5, 0x01, 0x95, 0x02, 0x4C, +0x02, 0x71, 0x44, 0x4D, 0x03, 0xD4, 0x03, 0x4B, +0x01, 0xD5, 0xAC, 0x61, 0xB0, 0x67, 0x01, 0x4A, +0x7F, 0x4D, 0x02, 0x72, 0x04, 0x4E, 0x09, 0x4D, +0x8A, 0x61, 0x09, 0x91, 0x08, 0x90, 0x05, 0x63, +0x20, 0xE8, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x4C, 0xED, +0x4C, 0xEC, 0xCC, 0xEA, 0x4B, 0xEA, 0xC0, 0xF7, +0x42, 0x32, 0x30, 0xF0, 0x20, 0x68, 0x44, 0x32, +0xC0, 0xF3, 0x64, 0x98, 0x07, 0xD5, 0x04, 0xD2, +0xA4, 0x36, 0x08, 0x6A, 0x01, 0x6D, 0x06, 0xD4, +0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEB, 0x06, 0x92, 0x0F, 0x2A, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x22, 0xF7, +0xB4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x03, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF7, +0x48, 0x9A, 0x0E, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x22, 0xF7, 0xB4, 0x9B, +0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF7, 0x4C, 0x9A, +0x05, 0xD2, 0x06, 0x92, 0x22, 0x68, 0x07, 0x93, +0x18, 0xEA, 0x44, 0x6A, 0x00, 0x69, 0x12, 0xE8, +0x58, 0xEB, 0x04, 0x93, 0x12, 0xEA, 0x41, 0xE0, +0x88, 0x6A, 0x58, 0xEB, 0x12, 0xEA, 0x41, 0xE0, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, +0x01, 0xE2, 0x0A, 0xF5, 0x0C, 0x48, 0xC0, 0xA8, +0x05, 0x92, 0x01, 0x6D, 0xC0, 0x36, 0x4D, 0xEE, +0x28, 0x32, 0x4D, 0xEE, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0xC3, 0xF3, 0x18, 0x6C, +0xAB, 0xED, 0x02, 0x4E, 0x01, 0x49, 0x40, 0xEA, +0x11, 0x71, 0x02, 0x48, 0xEC, 0x61, 0x06, 0x92, +0x22, 0x68, 0x07, 0x93, 0x18, 0xEA, 0x44, 0x6A, +0x12, 0xE8, 0x58, 0xEB, 0x04, 0x93, 0x12, 0xEA, +0x41, 0xE0, 0x88, 0x6A, 0x58, 0xEB, 0x12, 0xEA, +0x41, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0x01, 0xE2, 0x00, 0x6A, 0x0A, 0xF6, +0x1C, 0x48, 0x04, 0xD2, 0xC0, 0xA8, 0x05, 0x93, +0x04, 0x92, 0xC0, 0x36, 0x30, 0xF0, 0x20, 0x69, +0x6D, 0xEE, 0x48, 0x33, 0xC0, 0xF3, 0x44, 0x99, +0x01, 0x6D, 0x6D, 0xEE, 0xC3, 0xF3, 0x18, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x04, 0x93, 0x02, 0x48, +0x01, 0x4B, 0x11, 0x73, 0x04, 0xD3, 0xEA, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, +0x22, 0xF7, 0xC8, 0x9B, 0x01, 0x6D, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, 0x22, 0xF7, +0xB4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, +0xC2, 0xF5, 0x8A, 0x42, 0x30, 0xF0, 0x20, 0x6B, +0x85, 0xF3, 0x1C, 0x4A, 0x85, 0xF7, 0x08, 0x4B, +0x88, 0x34, 0x44, 0x32, 0x91, 0xE3, 0x4D, 0xE3, +0x00, 0x68, 0x04, 0x4C, 0x08, 0x4B, 0x04, 0xD4, +0x05, 0xD3, 0x06, 0xD0, 0x07, 0xD0, 0x08, 0xD0, +0x04, 0x95, 0x01, 0x6C, 0x08, 0x93, 0x40, 0xA5, +0x30, 0xF0, 0x20, 0x69, 0x04, 0x36, 0x8C, 0xEA, +0x44, 0xE8, 0x4D, 0xE3, 0x41, 0xA5, 0x05, 0x95, +0x08, 0xD3, 0x8C, 0xEA, 0x07, 0x94, 0x64, 0x40, +0x44, 0xEB, 0x51, 0xE4, 0x40, 0xA5, 0x07, 0xD4, +0x03, 0x6C, 0x64, 0x33, 0x8C, 0xEA, 0x44, 0xEB, +0x04, 0x94, 0x06, 0x93, 0x01, 0x6D, 0x8C, 0xAC, +0x4D, 0xE3, 0x06, 0xD3, 0xC0, 0xF3, 0x64, 0x99, +0x08, 0x6A, 0x4D, 0xEE, 0x09, 0xD4, 0xAB, 0xED, +0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEB, 0x08, 0x95, +0x07, 0x96, 0x06, 0x93, 0xC0, 0xF3, 0x44, 0x99, +0xAD, 0xEE, 0x6D, 0xEE, 0xE3, 0xF3, 0x10, 0x6C, +0xFF, 0xF7, 0x1F, 0x6D, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0x09, 0x96, 0x01, 0x6D, 0xE3, 0xF3, +0x08, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x04, 0x94, +0x05, 0x95, 0x01, 0x48, 0x02, 0x4C, 0x01, 0x4D, +0x02, 0x70, 0x04, 0xD4, 0x05, 0xD5, 0xBC, 0x61, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, +0x05, 0xD2, 0x00, 0x6A, 0x04, 0xD2, 0x04, 0x92, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x64, 0x98, +0x01, 0x69, 0x2B, 0xE9, 0x44, 0x36, 0x08, 0x6A, +0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xB1, 0x67, +0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xE2, 0xF7, 0xD0, 0x9B, 0x03, 0xF3, +0x04, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x05, 0x92, +0x07, 0x2A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x08, 0x6C, 0xB1, 0x67, 0x80, 0x6E, 0x06, 0x10, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x30, 0xF0, 0x20, 0x68, +0x40, 0xEA, 0x01, 0x69, 0xC0, 0xF3, 0x44, 0x98, +0x2B, 0xE9, 0x03, 0xF3, 0x0C, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF7, 0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x14, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF7, 0xD4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x18, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, +0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x1C, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xE2, 0xF7, +0xDC, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x04, 0x92, 0x01, 0x4A, 0x02, 0x72, +0x04, 0xD2, 0x99, 0x61, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, 0x00, 0xF2, 0x1C, 0x22, 0x30, 0xF0, 0x20, 0x68, -0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, 0xB0, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF7, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF6, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF5, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x02, 0xF6, 0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF4, 0x10, 0x69, 0x91, 0x67, 0x01, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF6, -0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, +0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF5, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x22, 0xF6, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xA2, 0xF6, 0x18, 0x4B, 0xA0, 0x9B, +0x20, 0x6B, 0x02, 0xF6, 0x00, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF5, 0x18, 0x6C, 0xE1, 0xF7, 0x18, 0x6D, 0xE0, 0xF1, 0x1F, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA2, 0xF6, 0x18, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x02, 0xF6, 0x00, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, 0x04, 0x6C, 0x01, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF6, -0x18, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF6, +0x00, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x68, 0xF1, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF7, 0x2C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, 0x20, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0x0C, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x08, 0xF1, 0x0C, 0x6C, @@ -5068,271 +5078,271 @@ u8 array_mp_8822c_fw_ap[] = { 0x40, 0xEA, 0x01, 0x69, 0xC0, 0xF3, 0x44, 0x98, 0x2B, 0xE9, 0x23, 0xF4, 0x18, 0x6C, 0xB1, 0x67, 0xD1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF7, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, -0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, 0x14, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC2, 0xF7, 0x18, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF7, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, -0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, 0x04, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF7, 0x08, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF7, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, -0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, 0x14, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF7, 0x18, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF7, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x03, 0xF0, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, +0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, 0x08, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF0, 0x0C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF0, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, +0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, 0x18, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF0, 0x1C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF0, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, +0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0x08, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF0, 0x0C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF0, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, +0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0x18, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF0, 0x1C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF0, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, 0x04, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF0, 0x08, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0x20, 0x6B, 0x03, 0xF0, 0x04, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF0, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x03, 0xF0, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, 0x10, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC2, 0xF7, 0x10, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF7, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, -0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, 0x1C, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF7, 0x00, 0x4B, 0xC0, 0x9B, +0x20, 0x6B, 0x03, 0xF0, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF7, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, -0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, 0x0C, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF7, 0x10, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF7, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, -0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, 0x1C, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF0, 0x00, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF0, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x03, 0xF0, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, -0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, 0x0C, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF0, 0x0C, 0x4B, 0xC0, 0xF3, +0x20, 0x6B, 0x23, 0xF0, 0x04, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF0, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, +0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF0, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF0, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF0, 0x00, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0xC0, 0x9B, 0xC9, 0x12, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0x04, 0xD2, 0x4A, 0xF7, +0x85, 0xF7, 0x08, 0x4A, 0x04, 0xD2, 0x4A, 0xF7, 0x5C, 0xA2, 0xE0, 0xF0, 0x1B, 0x22, 0x30, 0xF0, -0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, -0xD0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, +0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF4, 0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x04, 0x93, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, 0x00, 0x6C, 0xCA, 0xF3, 0xC2, 0xA3, 0x04, 0x6B, 0x0E, 0xF0, 0x00, 0x6D, 0x67, 0xEE, 0xC3, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF0, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x43, 0xF0, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0xCA, 0xF3, 0xC2, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, 0x18, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x0C, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0xCA, 0xF3, 0xC2, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF0, 0x1C, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x43, 0xF0, 0x10, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0xCA, 0xF3, 0xC2, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0x00, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x14, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0xCA, 0xF3, 0xC2, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF0, 0x04, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, -0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x43, 0xF0, 0x18, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0xCA, 0xF3, 0xC2, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF0, 0x0C, 0x4B, 0x60, 0x9B, +0x20, 0x6B, 0x63, 0xF0, 0x00, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF0, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x43, 0xF0, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, 0xCA, 0xF3, 0xC2, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, 0x18, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x0C, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, 0xCA, 0xF3, 0xC2, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF0, 0x1C, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x43, 0xF0, 0x10, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, 0xCA, 0xF3, 0xC2, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0x00, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x14, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, 0xCA, 0xF3, 0xC2, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF0, 0x04, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, -0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x43, 0xF0, 0x18, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, 0xCA, 0xF3, 0xC2, 0xA2, 0xB1, 0x67, 0xC0, 0xF3, 0x44, 0x98, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF0, 0x0C, 0x4B, 0x60, 0x9B, +0x20, 0x6B, 0x63, 0xF0, 0x00, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x63, 0x11, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x68, 0x03, 0xF0, 0x14, 0x4B, +0x30, 0xF0, 0x20, 0x68, 0x43, 0xF0, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, -0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, +0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0x14, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF0, 0x18, 0x4B, 0xC0, 0x9B, +0x20, 0x6B, 0x63, 0xF0, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF0, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, -0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x00, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF0, 0x04, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF0, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, -0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x10, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF0, 0x14, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF0, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x63, 0xF0, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, 0x00, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF0, 0x04, 0x4B, 0xC0, 0x9B, +0x20, 0x6B, 0x63, 0xF0, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF0, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, -0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0x14, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x63, 0xF0, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0x04, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF0, 0x18, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0x20, 0x6B, 0x83, 0xF0, 0x08, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF0, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, -0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x00, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x83, 0xF0, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, +0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0x14, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF0, 0x04, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0x20, 0x6B, 0x83, 0xF0, 0x18, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, -0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, +0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x10, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF0, 0x14, 0x4B, 0xC0, 0x9B, +0x20, 0x6B, 0x63, 0xF0, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF0, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x63, 0xF0, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, 0x00, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF0, 0x04, 0x4B, 0xC0, 0xF3, +0x20, 0x6B, 0x63, 0xF0, 0x18, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF0, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0x04, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF0, 0x08, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF0, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, +0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0x14, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF0, 0x18, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, 0xA8, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF5, 0x18, 0x6C, 0xE1, 0xF7, 0x18, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF6, -0x38, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, +0x20, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, 0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x68, 0xF1, 0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xC2, 0xF7, 0x2C, 0x9A, 0xC0, 0xF3, +0x20, 0x6A, 0x03, 0xF0, 0x20, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0x0C, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, 0x0C, 0x6C, 0xB1, 0x67, 0x00, 0x6E, @@ -5349,75 +5359,75 @@ u8 array_mp_8822c_fw_ap[] = { 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, -0x06, 0x67, 0x63, 0xF0, 0xCC, 0x9B, 0x09, 0xD5, +0x06, 0x67, 0xA3, 0xF0, 0xC0, 0x9B, 0x09, 0xD5, 0x01, 0x6D, 0x24, 0x67, 0x0B, 0xD7, 0x63, 0xF5, 0x10, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x00, 0x6A, 0x80, 0x98, 0x1F, 0xF7, 0x00, 0x6B, 0x8C, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x09, 0x2B, 0x30, 0xF0, 0x20, 0x6C, 0x60, 0x98, 0xC2, 0xF5, -0x84, 0x9C, 0x6D, 0xE4, 0x80, 0x99, 0x80, 0xDB, +0x88, 0x9C, 0x6D, 0xE4, 0x80, 0x99, 0x80, 0xDB, 0x07, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, -0x68, 0x9B, 0x91, 0xE3, 0x60, 0x99, 0x60, 0xDC, +0x6C, 0x9B, 0x91, 0xE3, 0x60, 0x99, 0x60, 0xDC, 0x01, 0x4A, 0xFF, 0x6B, 0x6C, 0xEA, 0x03, 0x72, 0x04, 0x48, 0x04, 0x49, 0xE1, 0x61, 0x00, 0x68, 0x0B, 0x92, 0x30, 0xF0, 0x20, 0x69, 0x01, 0x6D, 0x11, 0xE2, 0x09, 0x92, 0x80, 0xAC, 0xAB, 0xED, 0x0D, 0xE2, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x99, 0x04, 0x48, 0x40, 0xEA, 0x2C, 0x70, 0xF0, 0x61, -0x30, 0xF0, 0x21, 0x6A, 0x90, 0xF6, 0x45, 0xA2, +0x30, 0xF0, 0x21, 0x6A, 0xB0, 0xF6, 0x55, 0xA2, 0x01, 0x72, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, 0x03, 0xF0, 0x0C, 0x6C, -0xA2, 0xF6, 0xB8, 0x9B, 0x00, 0x6E, 0x09, 0x10, +0x02, 0xF6, 0xA0, 0x9B, 0x00, 0x6E, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, -0xA2, 0xF6, 0xB8, 0x9B, 0x03, 0xF0, 0x0C, 0x6C, +0x02, 0xF6, 0xA0, 0x9B, 0x03, 0xF0, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x21, 0x6A, -0x90, 0xF6, 0x47, 0xA2, 0x01, 0x72, 0x0C, 0x61, +0xB0, 0xF6, 0x57, 0xA2, 0x01, 0x72, 0x0C, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, 0x08, 0xF1, 0x0C, 0x6C, -0xA2, 0xF6, 0xB8, 0x9B, 0x00, 0x6E, 0x0B, 0x10, +0x02, 0xF6, 0xA0, 0x9B, 0x00, 0x6E, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x9A, 0xA2, 0xF6, 0xB8, 0x9B, +0xC0, 0xF3, 0x44, 0x9A, 0x02, 0xF6, 0xA0, 0x9B, 0x08, 0xF1, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x21, 0x6A, 0xB0, 0xF6, 0x54, 0xA2, +0x30, 0xF0, 0x21, 0x6A, 0xF0, 0xF6, 0x44, 0xA2, 0x1E, 0x22, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF5, 0xB4, 0x9B, 0xC0, 0xF3, +0x20, 0x6B, 0x22, 0xF6, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF6, 0x1C, 0x6C, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, -0x30, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, +0x3C, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xC2, 0xF5, 0x54, 0x9A, 0x01, 0x6B, +0x20, 0x6A, 0xC2, 0xF5, 0x58, 0x9A, 0x01, 0x6B, 0x6B, 0xEB, 0x30, 0xF0, 0x20, 0x68, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x22, 0xF7, 0xB0, 0x9B, 0x23, 0xF6, 0x04, 0x6C, +0x42, 0xF7, 0xB4, 0x9B, 0x23, 0xF6, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, 0xB0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0xA4, 0x9B, 0xC3, 0xF4, 0x10, 0x6C, 0x07, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF6, 0xB8, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF6, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF5, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6E, 0xCB, 0xEE, 0xA6, 0x67, 0x23, 0xF4, 0x18, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x14, 0x6C, 0x00, 0xF3, 0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, 0xB4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0xA8, 0x9B, 0x21, 0xF0, 0x04, 0x6C, 0x03, 0x6E, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, -0xA2, 0xF6, 0xF0, 0x9B, 0xFF, 0x6A, 0x04, 0x6B, +0xC2, 0xF6, 0xF8, 0x9B, 0xFF, 0x6A, 0x04, 0x6B, 0xC0, 0xA7, 0x4C, 0xED, 0x4C, 0xEC, 0x4C, 0xEE, 0xCD, 0xEB, 0x4C, 0xEB, 0x60, 0xC7, 0x06, 0x2D, 0x07, 0x6B, 0x07, 0x24, 0x01, 0x74, 0x07, 0x6B, 0x12, 0x61, 0x0C, 0x10, 0x07, 0x2C, 0x79, 0x6B, -0x6B, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, -0x4C, 0x9A, 0x08, 0x10, 0x01, 0x74, 0x07, 0x61, +0x6B, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, +0x50, 0x9A, 0x08, 0x10, 0x01, 0x74, 0x07, 0x61, 0x79, 0x6B, 0x6B, 0xEB, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF0, 0x58, 0x9A, 0x60, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0xA2, 0xF6, 0x50, 0x9A, 0xC0, 0xC2, +0xA3, 0xF0, 0x4C, 0x9A, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF6, 0x58, 0x9A, 0xC0, 0xC2, 0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6E, 0x30, 0xF0, 0x20, 0x68, 0xCC, 0xEC, 0xC0, 0xF3, 0x44, 0x98, @@ -5428,13 +5438,13 @@ u8 array_mp_8822c_fw_ap[] = { 0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, -0x63, 0xF0, 0xDC, 0x9B, 0x11, 0x10, 0xC0, 0xF3, +0xA3, 0xF0, 0xD0, 0x9B, 0x11, 0x10, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF0, -0xC0, 0x9B, 0xC3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF7, -0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, +0xD4, 0x9B, 0xC3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, +0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x30, 0xF0, 0x20, 0x68, 0xC3, 0xF3, 0x18, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x00, 0x6E, @@ -5443,347 +5453,312 @@ u8 array_mp_8822c_fw_ap[] = { 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x00, 0x68, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF0, 0xA4, 0x9A, 0x02, 0xF7, 0x00, 0x6C, -0x80, 0x18, 0x19, 0x17, 0x20, 0x6B, 0x4C, 0xEB, +0xA3, 0xF0, 0xB8, 0x9A, 0x02, 0xF7, 0x00, 0x6C, +0x80, 0x18, 0x1D, 0x1A, 0x20, 0x6B, 0x4C, 0xEB, 0x0A, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, 0x01, 0x48, 0x40, 0xEA, 0x0A, 0x70, 0xEC, 0x61, 0x0A, 0x68, 0x50, 0x67, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x68, 0x8C, 0xE8, 0x80, 0x18, -0x57, 0x0A, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, -0xC8, 0x9A, 0x01, 0x69, 0x2B, 0xE9, 0x0D, 0xEE, +0x59, 0x0B, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, +0xDC, 0x9A, 0x01, 0x69, 0x2B, 0xE9, 0x0D, 0xEE, 0xB1, 0x67, 0x02, 0xF7, 0x00, 0x6C, 0x80, 0x18, -0x2E, 0x17, 0xB1, 0x67, 0x02, 0xF7, 0x08, 0x6C, -0x80, 0x18, 0x19, 0x17, 0x07, 0x97, 0x06, 0x91, +0x32, 0x1A, 0xB1, 0x67, 0x02, 0xF7, 0x08, 0x6C, +0x80, 0x18, 0x1D, 0x1A, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0xFF, 0xF7, 0x1F, 0x68, 0x25, 0x67, 0x0C, 0xD6, 0x8C, 0xE8, 0x37, 0x25, 0x61, 0x45, 0x00, 0x6A, -0x0E, 0x2B, 0x80, 0x18, 0x57, 0x0A, 0x01, 0x69, +0x0E, 0x2B, 0x80, 0x18, 0x59, 0x0B, 0x01, 0x69, 0x0C, 0x96, 0x2B, 0xE9, 0x02, 0xF7, 0x04, 0x6C, -0xB1, 0x67, 0x80, 0x18, 0x2E, 0x17, 0x02, 0xF7, +0xB1, 0x67, 0x80, 0x18, 0x32, 0x1A, 0x02, 0xF7, 0x00, 0x6C, 0xB1, 0x67, 0x1F, 0x10, 0x71, 0x67, 0x66, 0xEA, 0x01, 0x6C, 0x8C, 0xEB, 0x04, 0x2B, 0x01, 0x4A, 0x20, 0x72, 0xF8, 0x61, 0x00, 0x6A, 0x90, 0x67, 0x04, 0xD2, 0x2F, 0xE9, 0x80, 0x18, -0x66, 0x0A, 0x4C, 0xE9, 0x80, 0x18, 0x57, 0x0A, +0x68, 0x0B, 0x4C, 0xE9, 0x80, 0x18, 0x59, 0x0B, 0x0C, 0x96, 0x04, 0x92, 0x01, 0x6D, 0x02, 0xF7, 0x04, 0x6C, 0xC4, 0xEA, 0xAB, 0xED, 0x2D, 0xEE, -0x80, 0x18, 0x2E, 0x17, 0x01, 0x6D, 0x02, 0xF7, +0x80, 0x18, 0x32, 0x1A, 0x01, 0x6D, 0x02, 0xF7, 0x00, 0x6C, 0xAB, 0xED, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF0, 0xCC, 0x9A, 0x0D, 0xEE, 0x80, 0x18, -0x2E, 0x17, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0xC3, 0xF0, 0xC0, 0x9A, 0x0D, 0xEE, 0x80, 0x18, +0x32, 0x1A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x38, 0x6C, 0x18, 0xF0, 0x00, 0x6D, 0x01, 0x6E, -0x80, 0x18, 0x76, 0x0A, 0x38, 0x6C, 0x01, 0xF4, -0x00, 0x6D, 0x01, 0x6E, 0x80, 0x18, 0x76, 0x0A, +0x80, 0x18, 0x78, 0x0B, 0x38, 0x6C, 0x01, 0xF4, +0x00, 0x6D, 0x01, 0x6E, 0x80, 0x18, 0x78, 0x0B, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x38, 0x6C, 0x06, 0xF0, -0x00, 0x6D, 0x03, 0x6E, 0x80, 0x18, 0x76, 0x0A, +0x00, 0x6D, 0x03, 0x6E, 0x80, 0x18, 0x78, 0x0B, 0x38, 0x6C, 0x00, 0xF3, 0x00, 0x6D, 0x03, 0x6E, -0x80, 0x18, 0x76, 0x0A, 0x05, 0x97, 0x03, 0x63, +0x80, 0x18, 0x78, 0x0B, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, 0x05, 0x22, 0x80, 0x18, -0xA2, 0x0A, 0x80, 0x18, 0x99, 0x0A, 0x09, 0x10, -0x30, 0xF0, 0x21, 0x6A, 0xD0, 0xF6, 0xCC, 0x9A, +0xA4, 0x0B, 0x80, 0x18, 0x9B, 0x0B, 0x09, 0x10, +0x30, 0xF0, 0x21, 0x6A, 0xF0, 0xF6, 0xDC, 0x9A, 0x01, 0x6D, 0x38, 0x6C, 0xAB, 0xED, 0x80, 0x18, -0x76, 0x0A, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x78, 0x0B, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x00, 0x6A, 0x09, 0xD5, 0x27, 0x67, 0xA0, 0x9E, 0x1F, 0xF7, 0x00, 0x6B, 0xAC, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x08, 0x2B, 0x30, 0xF0, -0x20, 0x6D, 0x60, 0x9E, 0xC2, 0xF5, 0xA4, 0x9D, +0x20, 0x6D, 0x60, 0x9E, 0xC2, 0xF5, 0xA8, 0x9D, 0x6D, 0xE5, 0x60, 0x9B, 0x06, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0xC2, 0xF5, 0x68, 0x9B, 0xB5, 0xE3, +0x20, 0x6B, 0xC2, 0xF5, 0x6C, 0x9B, 0xB5, 0xE3, 0x60, 0x9D, 0x55, 0xE4, 0x04, 0x4A, 0x0C, 0x72, 0x60, 0xDD, 0x04, 0x4E, 0xE4, 0x61, 0x00, 0x68, 0x09, 0xE1, 0x80, 0xAA, 0x01, 0x6D, 0xAB, 0xED, -0x80, 0x18, 0xA1, 0x16, 0x09, 0x94, 0x0D, 0xE4, +0x80, 0x18, 0xA5, 0x19, 0x09, 0x94, 0x0D, 0xE4, 0x04, 0x48, 0x2C, 0x70, 0x40, 0xDB, 0xF4, 0x61, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0xFF, 0x6A, 0x24, 0x67, 0x45, 0xF7, 0x18, 0x48, -0x4C, 0xED, 0x4C, 0xE9, 0xAA, 0xF3, 0x55, 0xA0, -0x06, 0xD5, 0x24, 0x36, 0x07, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x9A, 0x01, 0x6D, -0x08, 0x6A, 0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, -0xAB, 0xED, 0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, -0x02, 0xF7, 0xB0, 0x9B, 0x23, 0xF3, 0x00, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0xAA, 0xF3, 0x54, 0xA0, -0x4B, 0x2A, 0x06, 0x92, 0x03, 0x22, 0x12, 0x6A, -0xAA, 0xF3, 0x5A, 0xC0, 0x30, 0xF0, 0x20, 0x68, -0x30, 0xF0, 0x21, 0x6B, 0x10, 0xF3, 0xD2, 0xA3, -0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, -0xFF, 0x6D, 0x40, 0xEA, 0x01, 0x6A, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0xF8, 0x9A, -0x30, 0xF0, 0x20, 0x6B, 0x09, 0xF4, 0x18, 0x4B, -0x83, 0x67, 0xB1, 0x67, 0xDE, 0x6E, 0x06, 0xD3, -0x80, 0x18, 0xF2, 0x57, 0x06, 0x94, 0xE1, 0xF7, -0x1F, 0x6F, 0x20, 0x6A, 0xB1, 0x67, 0x56, 0x6E, -0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x18, 0x6C, 0x02, 0x6D, -0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF0, 0xD4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x01, 0x6D, 0x23, 0xF3, 0x04, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, -0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x0C, 0x6C, -0xE1, 0xF7, 0x1F, 0x6D, 0x18, 0x6E, 0x49, 0x10, -0x06, 0x92, 0x03, 0x22, 0x12, 0x6A, 0xAA, 0xF3, -0x5A, 0xC0, 0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF5, 0xF8, 0x9A, 0x30, 0xF0, -0x20, 0x68, 0x09, 0xF4, 0x18, 0x48, 0x90, 0x67, -0xB1, 0x67, 0xDE, 0x6E, 0x80, 0x18, 0xF2, 0x57, -0xE1, 0xF7, 0x1F, 0x6F, 0x90, 0x67, 0x00, 0x6A, -0xB1, 0x67, 0x56, 0x6E, 0x30, 0xF0, 0x20, 0x68, -0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, 0x30, 0xF0, -0x21, 0x6B, 0x10, 0xF3, 0xD2, 0xA3, 0xC0, 0xF3, -0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x4C, 0xED, +0x4C, 0xEC, 0xCC, 0xEA, 0x4B, 0xEA, 0xC0, 0xF7, +0x42, 0x32, 0x30, 0xF0, 0x20, 0x68, 0x44, 0x32, +0xC0, 0xF3, 0x64, 0x98, 0x06, 0xD5, 0x04, 0xD2, +0xA4, 0x36, 0x08, 0x6A, 0x01, 0x6D, 0x05, 0xD4, +0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEB, 0x05, 0x92, 0x0A, 0x2A, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, +0x00, 0x6C, 0x22, 0xF7, 0xB4, 0x9B, 0x03, 0x6E, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x22, 0xF7, 0xB4, 0x9B, 0x23, 0xF3, +0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF0, 0xA4, 0x9B, 0xC3, 0xF3, +0x14, 0x69, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x22, 0xF7, 0xA4, 0x9B, 0x91, 0x67, 0x10, 0x6E, +0x40, 0xEA, 0x05, 0x92, 0x22, 0x69, 0x06, 0x93, +0x38, 0xEA, 0x44, 0x6A, 0x12, 0xE9, 0x58, 0xEB, +0x04, 0x93, 0x12, 0xEA, 0x45, 0xE1, 0x88, 0x6A, +0x58, 0xEB, 0x12, 0xEA, 0x45, 0xE1, 0x30, 0xF0, +0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0x21, 0xE2, +0x25, 0xE2, 0x00, 0x6A, 0x0A, 0xF5, 0x0C, 0x48, +0x0A, 0xF6, 0x1C, 0x49, 0x04, 0xD2, 0x04, 0x93, +0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, 0x68, 0x36, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, 0x68, 0x9B, +0xAB, 0xED, 0x6D, 0xEE, 0x40, 0xEA, 0x01, 0x6D, +0xE3, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, 0x80, 0x18, +0xA5, 0x19, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, +0x6C, 0x9B, 0x4C, 0xEB, 0x62, 0x33, 0x62, 0x33, +0x60, 0xC8, 0xE1, 0xF7, 0x1F, 0x6B, 0x4C, 0xEB, +0x04, 0x92, 0x60, 0xC9, 0x02, 0x48, 0x01, 0x4A, +0x11, 0x72, 0x04, 0xD2, 0x02, 0x49, 0xD7, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, 0xB4, 0x9B, +0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x00, 0x6E, 0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6A, 0x24, 0x67, +0x85, 0xF7, 0x08, 0x48, 0x4C, 0xED, 0x4C, 0xE9, +0xAA, 0xF3, 0x55, 0xA0, 0x06, 0xD5, 0x24, 0x36, +0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x64, 0x9A, 0x01, 0x6D, 0x08, 0x6A, 0x4D, 0xEE, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, 0xB4, 0x9B, +0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0xAA, 0xF3, 0x54, 0xA0, 0x4B, 0x2A, 0x06, 0x92, +0x03, 0x22, 0x12, 0x6A, 0xAA, 0xF3, 0x5A, 0xC0, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x21, 0x6B, +0x50, 0xF3, 0xC2, 0xA3, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x40, 0xEA, +0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF5, 0xF0, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0x49, 0xF4, 0x08, 0x4B, 0x83, 0x67, 0xB1, 0x67, +0xDE, 0x6E, 0x06, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x06, 0x94, 0xE1, 0xF7, 0x1F, 0x6F, 0x20, 0x6A, +0xB1, 0x67, 0x56, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x18, 0x6C, 0x02, 0x6D, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0xD8, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, 0x04, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, -0x38, 0x6E, 0x40, 0xEA, 0x07, 0x93, 0x06, 0x73, -0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, -0x1F, 0x6D, 0x08, 0x6E, 0x40, 0xEA, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, -0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x06, 0xD2, 0x45, 0xF7, 0x18, 0x4B, 0xAA, 0xF3, -0x55, 0xA3, 0x07, 0xD3, 0x06, 0x93, 0x30, 0xF0, -0x20, 0x68, 0x08, 0xD2, 0x64, 0x31, 0x08, 0x6A, -0x4D, 0xE9, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, -0xD1, 0x67, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, -0x08, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x3F, 0x6D, 0xC5, 0x67, -0xC3, 0xF3, 0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x6D, 0xD1, 0x67, 0x03, 0xF3, -0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF0, 0x08, 0x4B, 0xA0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x02, 0xF7, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF3, 0x00, 0x69, 0x91, 0x67, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, -0xE0, 0xF3, 0x00, 0x6D, 0x12, 0x6E, 0x40, 0xEA, -0x07, 0x93, 0xAA, 0xF3, 0x54, 0xA3, 0x11, 0x2A, -0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x69, 0x06, 0x95, 0xE2, 0xF5, -0xF8, 0x9A, 0x09, 0xF4, 0x18, 0x49, 0x91, 0x67, -0xDE, 0x6E, 0x80, 0x18, 0xF2, 0x57, 0x20, 0x6A, -0x10, 0x10, 0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x69, 0x06, 0x95, -0xE2, 0xF5, 0xF8, 0x9A, 0x09, 0xF4, 0x18, 0x49, -0x91, 0x67, 0xDE, 0x6E, 0x80, 0x18, 0xF2, 0x57, -0x00, 0x6A, 0x06, 0x95, 0x91, 0x67, 0x56, 0x6E, -0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0xF2, 0x57, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, -0x0C, 0x6C, 0xFF, 0x6D, 0x12, 0x6E, 0x40, 0xEA, -0x08, 0x92, 0x06, 0x72, 0x0A, 0x61, 0x30, 0xF0, +0x18, 0x6E, 0x49, 0x10, 0x06, 0x92, 0x03, 0x22, +0x12, 0x6A, 0xAA, 0xF3, 0x5A, 0xC0, 0x01, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, +0xF0, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x49, 0xF4, +0x08, 0x48, 0x90, 0x67, 0xB1, 0x67, 0xDE, 0x6E, +0x80, 0x18, 0x78, 0x56, 0xE1, 0xF7, 0x1F, 0x6F, +0x90, 0x67, 0x00, 0x6A, 0xB1, 0x67, 0x56, 0x6E, +0x30, 0xF0, 0x20, 0x68, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0x30, 0xF0, 0x21, 0x6B, 0x50, 0xF3, +0xC2, 0xA3, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, +0x0C, 0x6C, 0xFF, 0x6D, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x18, 0x6C, 0x02, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF0, 0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x23, 0xF3, 0x04, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x0C, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, +0x07, 0x93, 0x06, 0x73, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x08, 0x6E, -0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, -0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, 0x0D, 0x97, -0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, -0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0xFF, 0x68, 0xAA, 0xF3, 0x75, 0xA2, 0x8C, 0xE8, -0x06, 0xD2, 0x04, 0x32, 0x07, 0xD2, 0x08, 0xD3, -0x07, 0x93, 0x30, 0xF0, 0x20, 0x69, 0x08, 0x6A, -0x4D, 0xEB, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, -0xC3, 0x67, 0x07, 0xD3, 0x03, 0xF3, 0x00, 0x6C, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF0, 0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x99, -0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x99, 0x3F, 0x6D, 0xC5, 0x67, -0xC3, 0xF3, 0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x99, 0x07, 0x96, 0x01, 0x6D, 0x03, 0xF3, +0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x06, 0xD2, 0x85, 0xF7, +0x08, 0x4B, 0xAA, 0xF3, 0x55, 0xA3, 0x07, 0xD3, +0x06, 0x93, 0x30, 0xF0, 0x20, 0x68, 0x08, 0xD2, +0x64, 0x31, 0x08, 0x6A, 0x4D, 0xE9, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xD1, 0x67, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x02, 0xF7, 0xB0, 0x9B, 0xC0, 0xF3, -0x44, 0x99, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, -0x00, 0x6C, 0xE0, 0xF3, 0x00, 0x6D, 0x12, 0x6E, -0x40, 0xEA, 0x06, 0x92, 0xAA, 0xF3, 0x54, 0xA2, -0x06, 0xD2, 0x5B, 0x2A, 0x07, 0x6A, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, 0xFC, 0x9A, -0x30, 0xF0, 0x20, 0x69, 0x09, 0xF4, 0x18, 0x49, -0x91, 0x67, 0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, -0xF2, 0x57, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, -0x9E, 0x6E, 0x20, 0x6F, 0x04, 0xD3, 0x80, 0x18, -0xF2, 0x57, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, -0x9E, 0x6E, 0x00, 0xF4, 0x00, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0xF2, 0x57, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF5, 0x18, 0x4A, 0xE0, 0x9A, 0x01, 0x6B, -0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, 0x04, 0xD3, -0x80, 0x18, 0xF2, 0x57, 0x10, 0x6A, 0x91, 0x67, -0xB0, 0x67, 0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, 0x01, 0x6B, -0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, -0x04, 0xD3, 0x80, 0x18, 0xF2, 0x57, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF5, 0x18, 0x4B, 0xE0, 0x9B, -0x06, 0x92, 0x91, 0x67, 0xB0, 0x67, 0x18, 0x6E, -0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, 0x06, 0x92, -0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, 0x01, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, 0x04, 0x6A, -0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, 0x70, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, 0x06, 0x93, -0x5A, 0x10, 0x07, 0x6A, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF0, 0xFC, 0x9A, 0x30, 0xF0, -0x20, 0x69, 0x09, 0xF4, 0x18, 0x49, 0x91, 0x67, -0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, 0xF2, 0x57, -0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, -0x20, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, -0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, -0x00, 0xF4, 0x00, 0x6F, 0x04, 0xD3, 0x80, 0x18, -0xF2, 0x57, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, -0x18, 0x4B, 0xE0, 0x9B, 0x01, 0x6A, 0x91, 0x67, -0xB0, 0x67, 0xDE, 0x6E, 0x04, 0xD2, 0x80, 0x18, -0xF2, 0x57, 0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, -0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0xF2, 0x57, 0x01, 0x6B, 0x91, 0x67, -0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, 0x04, 0xD3, -0x80, 0x18, 0xF2, 0x57, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF5, 0x18, 0x4B, 0xE0, 0x9B, 0x01, 0x6A, -0x91, 0x67, 0xB0, 0x67, 0x18, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0xF2, 0x57, 0x01, 0x6A, 0x91, 0x67, -0xB0, 0x67, 0x33, 0x6E, 0xE2, 0x67, 0x04, 0xD2, -0x80, 0x18, 0xF2, 0x57, 0x04, 0x6A, 0x91, 0x67, -0xB0, 0x67, 0x08, 0x6E, 0x70, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0xF2, 0x57, 0x00, 0x6B, 0x91, 0x67, -0x30, 0xF0, 0x20, 0x69, 0xB0, 0x67, 0xEF, 0x6E, -0x04, 0x6F, 0x09, 0xF4, 0x18, 0x49, 0x04, 0xD3, -0x80, 0x18, 0xF2, 0x57, 0x00, 0x6A, 0x91, 0x67, -0xB0, 0x67, 0x57, 0x6E, 0x01, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0xF2, 0x57, 0x01, 0x6A, 0x91, 0x67, -0xB0, 0x67, 0xEF, 0x6E, 0x10, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0xF2, 0x57, 0x30, 0xF0, 0x21, 0x6A, -0x10, 0xF3, 0x4C, 0xA2, 0x01, 0x22, 0x20, 0x6A, -0x7F, 0x6F, 0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, -0x30, 0xF0, 0x20, 0x69, 0x04, 0xD2, 0x80, 0x18, -0xF2, 0x57, 0xC0, 0xF3, 0x44, 0x99, 0xC3, 0xF3, -0x0C, 0x6C, 0xFF, 0x6D, 0x09, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, 0x0C, 0x6C, -0xE1, 0xF7, 0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6C, 0xB0, 0x67, 0x10, 0x6F, -0x01, 0x6A, 0x09, 0xF4, 0x18, 0x4C, 0xEF, 0x6E, -0x30, 0xF0, 0x20, 0x68, 0x04, 0xD2, 0x80, 0x18, -0xF2, 0x57, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, -0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, -0xFF, 0x6D, 0x12, 0x6E, 0x40, 0xEA, 0x08, 0x92, -0x06, 0x72, 0x08, 0x61, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, -0x08, 0x6E, 0x07, 0x10, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, -0x38, 0x6E, 0x40, 0xEA, 0x0D, 0x97, 0x0C, 0x91, -0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0xAA, 0xF3, 0x75, 0xA2, 0x30, 0xF0, 0x20, 0x68, -0xFF, 0x69, 0x8C, 0xE9, 0x07, 0xD3, 0xC0, 0xF3, -0x64, 0x98, 0x06, 0xD2, 0x24, 0x36, 0x08, 0x6A, -0x01, 0x6D, 0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, -0xAB, 0xED, 0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF0, 0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x20, 0x6B, 0x83, 0xF0, 0x1C, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x3F, 0x6D, 0xC5, 0x67, 0xC3, 0xF3, 0x0C, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xD1, 0x67, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, +0x1C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0xA3, 0xF0, 0xC0, 0x9B, 0x01, 0x6D, 0x23, 0xF3, -0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x06, 0x93, -0xAA, 0xF3, 0x54, 0xA3, 0x03, 0x2A, 0x81, 0xF0, -0x07, 0x4A, 0x02, 0x10, 0xC1, 0xF0, 0x0A, 0x6A, -0x30, 0xF0, 0x20, 0x6C, 0x09, 0xF4, 0x18, 0x4C, -0xB1, 0x67, 0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, 0xC0, 0xF3, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, 0xB4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x00, 0x69, +0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0xE0, 0xF3, 0x00, 0x6D, +0x12, 0x6E, 0x40, 0xEA, 0x07, 0x93, 0xAA, 0xF3, +0x54, 0xA3, 0x11, 0x2A, 0x01, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x69, +0x06, 0x95, 0xE2, 0xF5, 0xF0, 0x9A, 0x49, 0xF4, +0x08, 0x49, 0x91, 0x67, 0xDE, 0x6E, 0x80, 0x18, +0x78, 0x56, 0x20, 0x6A, 0x10, 0x10, 0x01, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x69, 0x06, 0x95, 0xE2, 0xF5, 0xF0, 0x9A, +0x49, 0xF4, 0x08, 0x49, 0x91, 0x67, 0xDE, 0x6E, +0x80, 0x18, 0x78, 0x56, 0x00, 0x6A, 0x06, 0x95, +0x91, 0x67, 0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, -0x09, 0x6E, 0x40, 0xEA, 0x07, 0x92, 0x06, 0x72, +0x12, 0x6E, 0x40, 0xEA, 0x08, 0x92, 0x06, 0x72, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x08, 0x6E, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x38, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x44, 0x9A, 0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, -0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0xFF, 0x68, 0x8C, 0xE8, 0xAA, 0xF3, 0x75, 0xA2, -0x06, 0xD2, 0x04, 0x32, 0x07, 0xD2, 0x08, 0xD3, -0x07, 0x93, 0x30, 0xF0, 0x20, 0x69, 0x08, 0x6A, -0x4D, 0xEB, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, -0xC3, 0x67, 0x07, 0xD3, 0x03, 0xF3, 0x00, 0x6C, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF0, 0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x99, -0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x99, 0x3F, 0x6D, 0xC5, 0x67, -0xC3, 0xF3, 0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x99, 0x07, 0x96, 0x01, 0x6D, 0x03, 0xF3, -0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x02, 0xF7, 0xB0, 0x9B, 0xC0, 0xF3, -0x44, 0x99, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x30, 0xF0, -0x20, 0x69, 0x09, 0xF4, 0x18, 0x49, 0x23, 0xF3, -0x00, 0x6C, 0xE0, 0xF3, 0x00, 0x6D, 0x12, 0x6E, -0x40, 0xEA, 0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, -0xDF, 0x6E, 0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0xF2, 0x57, 0x00, 0x6B, 0x91, 0x67, 0xB0, 0x67, -0x9E, 0x6E, 0x20, 0x6F, 0x04, 0xD3, 0x80, 0x18, -0xF2, 0x57, 0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, -0x9E, 0x6E, 0x00, 0xF4, 0x00, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0xF2, 0x57, 0x06, 0x93, 0xAA, 0xF3, -0x74, 0xA3, 0x06, 0xD3, 0x35, 0x2B, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF5, 0x18, 0x4B, 0xE0, 0x9B, -0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, -0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, 0x81, 0xF0, -0x07, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, +0x40, 0xEA, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0xFF, 0x68, 0xAA, 0xF3, +0x75, 0xA2, 0x8C, 0xE8, 0x06, 0xD2, 0x04, 0x32, +0x07, 0xD2, 0x08, 0xD3, 0x07, 0x93, 0x30, 0xF0, +0x20, 0x69, 0x08, 0x6A, 0x4D, 0xEB, 0xC0, 0xF3, +0x44, 0x99, 0x01, 0x6D, 0xC3, 0x67, 0x07, 0xD3, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0xBC, 0x9B, +0xC0, 0xF3, 0x44, 0x99, 0xA3, 0xF3, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, +0x3F, 0x6D, 0xC5, 0x67, 0xC3, 0xF3, 0x0C, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x07, 0x96, +0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, +0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, +0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0x23, 0xF3, 0x00, 0x6C, 0xE0, 0xF3, +0x00, 0x6D, 0x12, 0x6E, 0x40, 0xEA, 0x06, 0x92, +0xAA, 0xF3, 0x54, 0xA2, 0x06, 0xD2, 0x5B, 0x2A, +0x07, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF0, 0xF0, 0x9A, 0x30, 0xF0, 0x20, 0x69, +0x49, 0xF4, 0x08, 0x49, 0x91, 0x67, 0xB0, 0x67, +0x00, 0x6E, 0x80, 0x18, 0x78, 0x56, 0x01, 0x6B, +0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, 0x20, 0x6F, +0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, 0x01, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, 0x00, 0xF4, +0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x10, 0x4A, +0xE0, 0x9A, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, +0xDE, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x10, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0xF2, 0x57, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, -0xEF, 0x6E, 0x04, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0xF2, 0x57, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, -0x18, 0x4A, 0x06, 0x93, 0xE0, 0x9A, 0x91, 0x67, -0xB0, 0x67, 0x18, 0x6E, 0x04, 0xD3, 0x80, 0x18, -0xF2, 0x57, 0x04, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x78, 0x56, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, +0xEF, 0x6E, 0x04, 0x6F, 0x04, 0xD3, 0x80, 0x18, +0x78, 0x56, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, +0x10, 0x4B, 0xE0, 0x9B, 0x06, 0x92, 0x91, 0x67, +0xB0, 0x67, 0x18, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0x06, 0x92, 0x91, 0x67, 0xB0, 0x67, +0x33, 0x6E, 0x01, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0x04, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, 0x70, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0xF2, 0x57, 0x06, 0x93, 0x04, 0xD3, 0x3C, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, 0x18, 0x4B, +0x78, 0x56, 0x06, 0x93, 0x5A, 0x10, 0x07, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, +0xF0, 0x9A, 0x30, 0xF0, 0x20, 0x69, 0x49, 0xF4, +0x08, 0x49, 0x91, 0x67, 0xB0, 0x67, 0x00, 0x6E, +0x80, 0x18, 0x78, 0x56, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x9E, 0x6E, 0x20, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x78, 0x56, 0x01, 0x6B, 0x91, 0x67, +0xB0, 0x67, 0x9E, 0x6E, 0x00, 0xF4, 0x00, 0x6F, +0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF5, 0x10, 0x4B, 0xE0, 0x9B, +0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x00, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, 0xE1, 0xF7, +0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, +0x04, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, 0x10, 0x4B, 0xE0, 0x9B, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, -0xDE, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, -0x61, 0xF0, 0x08, 0x6A, 0x91, 0x67, 0xB0, 0x67, -0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0xF2, 0x57, 0x01, 0x6A, 0x91, 0x67, -0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0xF2, 0x57, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF5, 0x18, 0x4A, 0xE0, 0x9A, 0x01, 0x6B, -0x91, 0x67, 0xB0, 0x67, 0x18, 0x6E, 0x04, 0xD3, -0x80, 0x18, 0xF2, 0x57, 0x00, 0x6B, 0x91, 0x67, -0xB0, 0x67, 0x33, 0x6E, 0x01, 0x6F, 0x04, 0xD3, -0x80, 0x18, 0xF2, 0x57, 0x04, 0x6A, 0x91, 0x67, -0xB0, 0x67, 0x08, 0x6E, 0x70, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0xF2, 0x57, 0x00, 0x6A, 0x04, 0xD2, -0x91, 0x67, 0x30, 0xF0, 0x20, 0x69, 0xB0, 0x67, -0xEF, 0x6E, 0x04, 0x6F, 0x09, 0xF4, 0x18, 0x49, -0x80, 0x18, 0xF2, 0x57, 0x00, 0x6A, 0x91, 0x67, -0xB0, 0x67, 0x57, 0x6E, 0x01, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0xF2, 0x57, 0x01, 0x6A, 0x91, 0x67, -0xB0, 0x67, 0xEF, 0x6E, 0x10, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0xF2, 0x57, 0x30, 0xF0, 0x21, 0x6A, -0x10, 0xF3, 0x4C, 0xA2, 0x01, 0x22, 0x20, 0x6A, -0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, 0x7F, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0xC3, 0xF3, +0x18, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, +0xE2, 0x67, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x04, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, +0x70, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x00, 0x6B, 0x91, 0x67, 0x30, 0xF0, 0x20, 0x69, +0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, 0x49, 0xF4, +0x08, 0x49, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x57, 0x6E, +0x01, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, +0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x21, 0x6A, 0x30, 0xF3, 0x5C, 0xA2, +0x01, 0x22, 0x20, 0x6A, 0x7F, 0x6F, 0x91, 0x67, +0xB0, 0x67, 0x33, 0x6E, 0x30, 0xF0, 0x20, 0x69, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0xC0, 0xF3, +0x44, 0x99, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, +0x09, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, +0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x38, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0xB0, 0x67, 0x10, 0x6F, 0x01, 0x6A, 0x49, 0xF4, +0x08, 0x4C, 0xEF, 0x6E, 0x30, 0xF0, 0x20, 0x68, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x12, 0x6E, +0x40, 0xEA, 0x08, 0x92, 0x06, 0x72, 0x08, 0x61, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x0C, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x08, 0x6E, 0x07, 0x10, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x0C, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0xAA, 0xF3, 0x75, 0xA2, +0x30, 0xF0, 0x20, 0x68, 0xFF, 0x69, 0x8C, 0xE9, +0x07, 0xD3, 0xC0, 0xF3, 0x64, 0x98, 0x06, 0xD2, +0x24, 0x36, 0x08, 0x6A, 0x01, 0x6D, 0x4D, 0xEE, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0xBC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, 0xD4, 0x9B, +0x01, 0x6D, 0x23, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x06, 0x93, 0xAA, 0xF3, 0x54, 0xA3, +0x03, 0x2A, 0x81, 0xF0, 0x07, 0x4A, 0x02, 0x10, +0xC1, 0xF0, 0x0A, 0x6A, 0x30, 0xF0, 0x20, 0x6C, +0x49, 0xF4, 0x08, 0x4C, 0xB1, 0x67, 0x56, 0x6E, +0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x09, 0x6E, 0x40, 0xEA, -0x08, 0x93, 0x06, 0x73, 0x0A, 0x61, 0x30, 0xF0, +0x07, 0x92, 0x06, 0x72, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x08, 0x6E, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, @@ -5791,345 +5766,637 @@ u8 array_mp_8822c_fw_ap[] = { 0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF6, 0x1C, 0x4A, 0xE0, 0x9A, 0x30, 0xF0, -0x20, 0x68, 0x00, 0x69, 0x09, 0xF4, 0x18, 0x48, -0x0E, 0xD4, 0x0F, 0xD5, 0x90, 0x67, 0xB1, 0x67, -0xEF, 0x6E, 0x04, 0xD1, 0x80, 0x18, 0xF2, 0x57, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF6, 0x1C, 0x4B, -0xE0, 0x9B, 0x90, 0x67, 0x01, 0x6D, 0xEF, 0x6E, -0x04, 0xD1, 0x80, 0x18, 0xF2, 0x57, 0x0E, 0x90, -0x0F, 0x91, 0x00, 0x6A, 0x07, 0xD2, 0x30, 0xF0, -0x20, 0x6B, 0x09, 0xF4, 0x18, 0x4B, 0x06, 0xD3, -0x40, 0x99, 0xC0, 0x98, 0x83, 0x67, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, 0x1C, 0x4A, -0xE0, 0x9A, 0x00, 0x6D, 0x80, 0x18, 0xF2, 0x57, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF6, 0x1C, 0x4B, -0xC0, 0x98, 0x41, 0x99, 0xE0, 0x9B, 0x06, 0x94, -0x01, 0x6D, 0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, -0x07, 0x92, 0x04, 0x48, 0x08, 0x49, 0x01, 0x4A, -0x07, 0xD2, 0x07, 0x93, 0xFF, 0x6A, 0x4C, 0xEB, -0x03, 0x73, 0x58, 0x67, 0x07, 0xD3, 0x08, 0xD2, -0xD6, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, -0x18, 0x9A, 0x06, 0x94, 0x78, 0x67, 0xF0, 0x67, -0x00, 0x6D, 0xDE, 0x6E, 0x04, 0xD3, 0x80, 0x18, -0xF2, 0x57, 0x08, 0x92, 0x06, 0x94, 0xF0, 0x67, -0x01, 0x6D, 0xDE, 0x6E, 0x04, 0xD2, 0x80, 0x18, -0xF2, 0x57, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, -0x07, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF0, 0xA8, 0x9B, -0xC0, 0xF3, 0x44, 0x9A, 0xA3, 0xF3, 0x18, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF6, 0x3C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF0, 0x04, 0x4A, 0x40, 0x9A, 0x30, 0xF0, -0x20, 0x68, 0x09, 0xF4, 0x18, 0x48, 0x90, 0x67, -0xF1, 0x67, 0x00, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0xF2, 0x57, 0x04, 0x6B, 0x90, 0x67, -0x00, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD3, -0x80, 0x18, 0xF2, 0x57, 0x90, 0x67, 0xF1, 0x67, -0x03, 0x6A, 0x00, 0x6D, 0x3E, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0xF2, 0x57, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF0, 0x48, 0x9A, 0x90, 0x67, 0xF1, 0x67, -0x00, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, -0xF2, 0x57, 0x00, 0x6B, 0xA3, 0x67, 0x90, 0x67, -0xF1, 0x67, 0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, -0xF2, 0x57, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, -0x04, 0x4A, 0x40, 0x9A, 0x90, 0x67, 0xF1, 0x67, -0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, -0xF2, 0x57, 0x04, 0x6B, 0x90, 0x67, 0x01, 0x6D, -0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD3, 0x80, 0x18, -0xF2, 0x57, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, -0x4C, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, -0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, -0x90, 0x67, 0xF1, 0x67, 0x00, 0x6A, 0x01, 0x6D, -0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, 0x04, 0x4B, -0x60, 0x9B, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, -0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xF2, 0x57, -0x90, 0x67, 0x06, 0x6A, 0x00, 0x6D, 0x33, 0x6E, -0x0F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, -0x03, 0x6B, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, -0x3E, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xF2, 0x57, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x50, 0x9A, -0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, 0x3F, 0x6E, -0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, 0x00, 0x6A, -0x90, 0x67, 0xF1, 0x67, 0xA2, 0x67, 0xEF, 0x6E, -0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF0, 0x04, 0x4B, 0x60, 0x9B, -0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, 0xEF, 0x6E, -0x04, 0xD3, 0x80, 0x18, 0xF2, 0x57, 0x90, 0x67, -0x06, 0x6A, 0x01, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF0, 0x54, 0x9A, 0x90, 0x67, -0xF1, 0x67, 0x01, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0xF2, 0x57, 0x00, 0x6B, 0x90, 0x67, -0xF1, 0x67, 0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD3, -0x80, 0x18, 0xF2, 0x57, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF0, 0x04, 0x4A, 0x40, 0x9A, 0x90, 0x67, -0xF1, 0x67, 0x00, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0xF2, 0x57, 0x07, 0x6B, 0x90, 0x67, -0x00, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD3, -0x80, 0x18, 0xF2, 0x57, 0x90, 0x67, 0xF1, 0x67, -0x03, 0x6A, 0x00, 0x6D, 0x3E, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0xF2, 0x57, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF0, 0x58, 0x9A, 0x90, 0x67, 0xF1, 0x67, -0x00, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, -0xF2, 0x57, 0x00, 0x6B, 0xA3, 0x67, 0x90, 0x67, -0xF1, 0x67, 0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, -0xF2, 0x57, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, -0x04, 0x4A, 0x40, 0x9A, 0x90, 0x67, 0xF1, 0x67, -0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, -0xF2, 0x57, 0x07, 0x6B, 0x90, 0x67, 0x01, 0x6D, -0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD3, 0x80, 0x18, -0xF2, 0x57, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, -0x5C, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, -0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, -0x90, 0x67, 0xF1, 0x67, 0x00, 0x6A, 0x01, 0x6D, -0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, -0x00, 0x6B, 0xA3, 0x67, 0x90, 0x67, 0xF1, 0x67, -0x19, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xF2, 0x57, -0x90, 0x67, 0xF1, 0x67, 0x00, 0x6A, 0x01, 0x6D, -0x19, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, -0x4C, 0xED, 0x06, 0xD4, 0x07, 0xD5, 0x01, 0x68, -0x00, 0x69, 0x85, 0xF5, 0x1C, 0x6C, 0xFF, 0x6D, -0x80, 0x18, 0xA1, 0x16, 0x55, 0x72, 0x11, 0x61, -0x07, 0x92, 0x03, 0x2A, 0x00, 0x68, 0x50, 0x67, -0x17, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF6, -0xBC, 0x9A, 0x03, 0xF3, 0x08, 0x6C, 0xFF, 0x68, -0x80, 0x18, 0xA1, 0x16, 0x4C, 0xE8, 0x00, 0x6A, -0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x64, 0x6C, 0x01, 0x49, 0x40, 0xEA, -0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE9, 0x01, 0x6A, -0xA1, 0xF3, 0x18, 0x59, 0x02, 0x61, 0x01, 0x68, -0x01, 0x10, 0xD7, 0x2A, 0x06, 0x95, 0x30, 0xF0, -0x20, 0x69, 0x09, 0xF4, 0x18, 0x49, 0x91, 0x67, -0x00, 0x6A, 0x8F, 0x6E, 0x08, 0xF0, 0x00, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, 0x01, 0x6A, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0x95, -0x83, 0xF0, 0xFC, 0x9A, 0x91, 0x67, 0x00, 0x6E, -0x80, 0x18, 0xF2, 0x57, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x30, 0xF0, -0x20, 0x69, 0x40, 0xEA, 0x06, 0x92, 0x01, 0x6D, -0x08, 0x6B, 0x44, 0x36, 0xC0, 0xF3, 0x44, 0x99, -0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x6D, 0xEE, -0x40, 0xEA, 0x0A, 0x28, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, 0x00, 0x6C, -0xC3, 0xF0, 0xA0, 0x9B, 0x02, 0x6E, 0x09, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, -0xC3, 0xF0, 0xA0, 0x9B, 0x23, 0xF3, 0x00, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF3, 0x10, 0x6C, -0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x00, 0x6A, 0x06, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x00, 0x68, 0x05, 0xD5, -0x04, 0xD4, 0x05, 0x92, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF6, 0x1C, 0x4B, 0xE0, 0x9B, 0xC0, 0x9A, -0x30, 0xF0, 0x20, 0x69, 0x09, 0xF4, 0x18, 0x49, -0x91, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x7F, 0x57, -0x04, 0x93, 0x91, 0x67, 0x01, 0x6D, 0x40, 0xDB, -0x05, 0x92, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF6, -0x1C, 0x4B, 0xE0, 0x9B, 0xC0, 0x9A, 0x01, 0x48, -0x80, 0x18, 0x7F, 0x57, 0x04, 0x93, 0x41, 0xDB, -0xFF, 0x6A, 0x4C, 0xE8, 0x05, 0x92, 0x08, 0x4B, -0x03, 0x70, 0x04, 0x4A, 0x05, 0xD2, 0x04, 0xD3, -0xD8, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x04, 0x67, -0x30, 0xF0, 0x20, 0x6A, 0x2C, 0xE8, 0xC0, 0xF3, -0x44, 0x9A, 0x08, 0x6B, 0x04, 0x36, 0x01, 0x6D, -0x6D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, -0xFC, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x09, 0xF4, -0x18, 0x4C, 0xB0, 0x67, 0x58, 0x6E, 0x80, 0x18, -0x7F, 0x57, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, -0x64, 0x9B, 0x4C, 0xEB, 0x62, 0x33, 0x7A, 0x33, -0x2C, 0xEB, 0x0B, 0x23, 0x3F, 0x73, 0x09, 0x60, -0x07, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, 0x62, 0x32, -0x2C, 0xEA, 0x03, 0x22, 0x3F, 0x72, 0x00, 0x6A, -0x56, 0x61, 0x30, 0xF0, 0x20, 0x69, 0x09, 0xF4, -0x18, 0x49, 0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, -0x57, 0x6E, 0x01, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0xF2, 0x57, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, -0xEF, 0x6E, 0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0xF2, 0x57, 0x30, 0xF0, 0x21, 0x6A, 0x10, 0xF3, -0x4C, 0xA2, 0x01, 0x22, 0x20, 0x6A, 0x91, 0x67, -0x30, 0xF0, 0x20, 0x69, 0x09, 0xF4, 0x18, 0x49, -0xB0, 0x67, 0x33, 0x6E, 0x7F, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0xF2, 0x57, 0x20, 0x6A, 0x91, 0x67, -0xB0, 0x67, 0x08, 0x6E, 0x07, 0xF7, 0x00, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF0, 0xE4, 0x9A, 0x20, 0x6B, -0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, 0x04, 0xD3, -0x80, 0x18, 0xF2, 0x57, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF6, 0x1C, 0x4A, 0xE0, 0x9A, 0x91, 0x67, -0xB0, 0x67, 0x08, 0x6E, 0x80, 0x18, 0x7F, 0x57, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF6, 0x1C, 0x4B, -0xE0, 0x9B, 0x91, 0x67, 0xB0, 0x67, 0x58, 0x6E, -0x80, 0x18, 0x7F, 0x57, 0x00, 0x6A, 0x91, 0x67, -0xB0, 0x67, 0xEF, 0x6E, 0x10, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0xF2, 0x57, 0x01, 0x6A, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0x6A, 0x04, 0x67, 0x4C, 0xE8, 0xAC, 0xEA, -0x0E, 0x22, 0x08, 0x6A, 0x04, 0x31, 0x4D, 0xE9, -0x01, 0x6B, 0x44, 0x40, 0x64, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x09, 0xF4, 0x18, 0x4A, 0x06, 0xD2, -0x6D, 0xE9, 0x06, 0x6A, 0x0D, 0x10, 0x08, 0x6A, -0x04, 0x31, 0x4D, 0xE9, 0x01, 0x6B, 0x44, 0x40, -0x64, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF4, -0x18, 0x4A, 0x06, 0xD2, 0x6D, 0xE9, 0x04, 0x6A, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0x94, -0x83, 0xF0, 0xFC, 0x9A, 0xB0, 0x67, 0x00, 0x6E, -0x80, 0x18, 0xF2, 0x57, 0x06, 0x94, 0x08, 0xF0, -0x00, 0x6F, 0x01, 0x6B, 0x8F, 0x6E, 0xB0, 0x67, -0x04, 0xD3, 0x80, 0x18, 0xF2, 0x57, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, -0x40, 0xEA, 0x01, 0x6C, 0x80, 0x18, 0xAB, 0x0A, -0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x13, 0x0A, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, -0x01, 0x6D, 0xD1, 0x67, 0x03, 0xF3, 0x00, 0x6C, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, 0xC1, 0x41, -0xAB, 0xED, 0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, -0x01, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, -0xEF, 0x6E, 0x10, 0x6F, 0x00, 0x6A, 0x09, 0xF4, -0x18, 0x4C, 0xB0, 0x67, 0x04, 0xD2, 0x80, 0x18, -0xF2, 0x57, 0x01, 0x6D, 0x90, 0x67, 0x80, 0x18, -0x13, 0x0A, 0x00, 0x6C, 0x80, 0x18, 0xAB, 0x0A, -0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0xE1, 0x0D, -0x22, 0x67, 0x04, 0x2A, 0x01, 0x6C, 0xB0, 0x67, -0x00, 0x18, 0x51, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0x41, 0xE0, 0xCA, 0xF3, -0x25, 0xC0, 0x51, 0x67, 0x0B, 0x97, 0x0A, 0x91, -0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x85, 0xF7, 0x08, 0x4A, 0xFF, 0x68, 0x8C, 0xE8, +0xAA, 0xF3, 0x75, 0xA2, 0x06, 0xD2, 0x04, 0x32, +0x07, 0xD2, 0x08, 0xD3, 0x07, 0x93, 0x30, 0xF0, +0x20, 0x69, 0x08, 0x6A, 0x4D, 0xEB, 0xC0, 0xF3, +0x44, 0x99, 0x01, 0x6D, 0xC3, 0x67, 0x07, 0xD3, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0xBC, 0x9B, +0xC0, 0xF3, 0x44, 0x99, 0xA3, 0xF3, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, +0x3F, 0x6D, 0xC5, 0x67, 0xC3, 0xF3, 0x0C, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x07, 0x96, +0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, +0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, +0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0x30, 0xF0, 0x20, 0x69, 0x49, 0xF4, +0x08, 0x49, 0x23, 0xF3, 0x00, 0x6C, 0xE0, 0xF3, +0x00, 0x6D, 0x12, 0x6E, 0x40, 0xEA, 0x00, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0xDF, 0x6E, 0x10, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x00, 0x6B, +0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, 0x20, 0x6F, +0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, 0x00, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, 0x00, 0xF4, +0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x06, 0x93, 0xAA, 0xF3, 0x74, 0xA3, 0x06, 0xD3, +0x35, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, +0x10, 0x4B, 0xE0, 0x9B, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0xDE, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0x81, 0xF0, 0x07, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x01, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF5, 0x10, 0x4A, 0x06, 0x93, +0xE0, 0x9A, 0x91, 0x67, 0xB0, 0x67, 0x18, 0x6E, +0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, 0x04, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, 0x70, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x06, 0x93, +0x04, 0xD3, 0x3C, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF5, 0x10, 0x4B, 0xE0, 0x9B, 0x01, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x78, 0x56, 0x61, 0xF0, 0x08, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, 0xE1, 0xF7, +0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, +0x04, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x10, 0x4A, +0xE0, 0x9A, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, +0x18, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x00, 0x6B, 0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, +0x01, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x04, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, +0x70, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x00, 0x6A, 0x04, 0xD2, 0x91, 0x67, 0x30, 0xF0, +0x20, 0x69, 0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, +0x49, 0xF4, 0x08, 0x49, 0x80, 0x18, 0x78, 0x56, +0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x57, 0x6E, +0x01, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, +0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x21, 0x6A, 0x30, 0xF3, 0x5C, 0xA2, +0x01, 0x22, 0x20, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x33, 0x6E, 0x7F, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, +0x09, 0x6E, 0x40, 0xEA, 0x08, 0x93, 0x06, 0x73, +0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, +0x1F, 0x6D, 0x08, 0x6E, 0x09, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, +0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x38, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, -0xFF, 0x6A, 0x04, 0x67, 0x4C, 0xED, 0x4C, 0xE8, -0x30, 0xF0, 0x21, 0x6A, 0x10, 0xF3, 0x4D, 0xA2, -0x06, 0x6B, 0x08, 0xD5, 0x4E, 0xEB, 0x01, 0x5B, -0x98, 0x67, 0x07, 0xD4, 0x16, 0x2D, 0x04, 0x24, -0xFF, 0x6A, 0x04, 0x33, 0x01, 0x4A, 0x03, 0x10, -0x04, 0x4A, 0x04, 0x33, 0x40, 0x32, 0x4D, 0xEB, -0x84, 0x40, 0x01, 0x6A, 0x44, 0xEC, 0x4D, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF4, 0x18, 0x4A, -0x08, 0x69, 0x06, 0xD2, 0x6D, 0xE9, 0x04, 0x6A, -0x19, 0x10, 0x08, 0x93, 0x01, 0x73, 0x22, 0x61, -0x07, 0x94, 0x04, 0x24, 0xFF, 0x6A, 0x04, 0x33, -0x01, 0x4A, 0x03, 0x10, 0x07, 0x4A, 0x04, 0x33, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, 0x00, 0x4A, +0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x00, 0x69, +0x49, 0xF4, 0x08, 0x48, 0x0E, 0xD4, 0x0F, 0xD5, +0x90, 0x67, 0xB1, 0x67, 0xEF, 0x6E, 0x04, 0xD1, +0x80, 0x18, 0x78, 0x56, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF7, 0x00, 0x4B, 0xE0, 0x9B, 0x90, 0x67, +0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD1, 0x80, 0x18, +0x78, 0x56, 0x0E, 0x90, 0x0F, 0x91, 0x00, 0x6A, +0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6B, 0x49, 0xF4, +0x08, 0x4B, 0x06, 0xD3, 0x40, 0x99, 0xC0, 0x98, +0x83, 0x67, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF7, 0x00, 0x4A, 0xE0, 0x9A, 0x00, 0x6D, +0x80, 0x18, 0x78, 0x56, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF7, 0x00, 0x4B, 0xC0, 0x98, 0x41, 0x99, +0xE0, 0x9B, 0x06, 0x94, 0x01, 0x6D, 0x04, 0xD2, +0x80, 0x18, 0x78, 0x56, 0x07, 0x92, 0x04, 0x48, +0x08, 0x49, 0x01, 0x4A, 0x07, 0xD2, 0x07, 0x93, +0xFF, 0x6A, 0x4C, 0xEB, 0x03, 0x73, 0x58, 0x67, +0x07, 0xD3, 0x08, 0xD2, 0xD6, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF5, 0x10, 0x9A, 0x06, 0x94, +0x78, 0x67, 0xF0, 0x67, 0x00, 0x6D, 0xDE, 0x6E, +0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, 0x08, 0x92, +0x06, 0x94, 0xF0, 0x67, 0x01, 0x6D, 0xDE, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF0, 0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, +0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, 0x20, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, 0x18, 0x4A, +0x40, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x49, 0xF4, +0x08, 0x48, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, +0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x04, 0x6B, 0x90, 0x67, 0x00, 0x6D, 0x33, 0x6E, +0x0F, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x90, 0x67, 0xF1, 0x67, 0x03, 0x6A, 0x00, 0x6D, +0x3E, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, 0x5C, 0x9A, +0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, 0x3F, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x00, 0x6B, +0xA3, 0x67, 0x90, 0x67, 0xF1, 0x67, 0xEF, 0x6E, +0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF0, 0x18, 0x4A, 0x40, 0x9A, +0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, 0xEF, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x04, 0x6B, +0x90, 0x67, 0x01, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, +0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF0, 0x40, 0x9A, 0x90, 0x67, +0xF1, 0x67, 0x01, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x78, 0x56, 0x90, 0x67, 0xF1, 0x67, +0x00, 0x6A, 0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x78, 0x56, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF0, 0x18, 0x4B, 0x60, 0x9B, 0x90, 0x67, +0xF1, 0x67, 0x00, 0x6D, 0xEF, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x78, 0x56, 0x90, 0x67, 0x06, 0x6A, +0x00, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x78, 0x56, 0x03, 0x6B, 0x90, 0x67, +0xF1, 0x67, 0x00, 0x6D, 0x3E, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x78, 0x56, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF0, 0x44, 0x9A, 0x90, 0x67, 0xF1, 0x67, +0x00, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0x00, 0x6A, 0x90, 0x67, 0xF1, 0x67, +0xA2, 0x67, 0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, +0x18, 0x4B, 0x60, 0x9B, 0x90, 0x67, 0xF1, 0x67, +0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, +0x78, 0x56, 0x90, 0x67, 0x06, 0x6A, 0x01, 0x6D, +0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, +0x48, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, +0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x00, 0x6B, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, +0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, 0x18, 0x4A, +0x40, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, +0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x07, 0x6B, 0x90, 0x67, 0x00, 0x6D, 0x33, 0x6E, +0x0F, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x90, 0x67, 0xF1, 0x67, 0x03, 0x6A, 0x00, 0x6D, +0x3E, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, 0x4C, 0x9A, +0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, 0x3F, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x00, 0x6B, +0xA3, 0x67, 0x90, 0x67, 0xF1, 0x67, 0xEF, 0x6E, +0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF0, 0x18, 0x4A, 0x40, 0x9A, +0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, 0xEF, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x07, 0x6B, +0x90, 0x67, 0x01, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, +0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF0, 0x50, 0x9A, 0x90, 0x67, +0xF1, 0x67, 0x01, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x78, 0x56, 0x90, 0x67, 0xF1, 0x67, +0x00, 0x6A, 0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x78, 0x56, 0x00, 0x6B, 0xA3, 0x67, +0x90, 0x67, 0xF1, 0x67, 0x19, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x78, 0x56, 0x90, 0x67, 0xF1, 0x67, +0x00, 0x6A, 0x01, 0x6D, 0x19, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x78, 0x56, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xED, 0x06, 0xD4, +0x07, 0xD5, 0x01, 0x68, 0x00, 0x69, 0x85, 0xF5, +0x1C, 0x6C, 0xFF, 0x6D, 0x80, 0x18, 0xA5, 0x19, +0x55, 0x72, 0x11, 0x61, 0x07, 0x92, 0x03, 0x2A, +0x00, 0x68, 0x50, 0x67, 0x17, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF6, 0xA0, 0x9A, 0x03, 0xF3, +0x08, 0x6C, 0xFF, 0x68, 0x80, 0x18, 0xA5, 0x19, +0x4C, 0xE8, 0x00, 0x6A, 0x0B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x64, 0x6C, +0x01, 0x49, 0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE9, 0x01, 0x6A, 0xA1, 0xF3, 0x18, 0x59, +0x02, 0x61, 0x01, 0x68, 0x01, 0x10, 0xD7, 0x2A, +0x06, 0x95, 0x30, 0xF0, 0x20, 0x69, 0x49, 0xF4, +0x08, 0x49, 0x91, 0x67, 0x00, 0x6A, 0x8F, 0x6E, +0x08, 0xF0, 0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x06, 0x95, 0xC3, 0xF0, 0xF0, 0x9A, +0x91, 0x67, 0x00, 0x6E, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x0A, 0x6C, 0x30, 0xF0, 0x20, 0x69, 0x40, 0xEA, +0x06, 0x92, 0x01, 0x6D, 0x08, 0x6B, 0x44, 0x36, +0xC0, 0xF3, 0x44, 0x99, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x6D, 0xEE, 0x40, 0xEA, 0x0A, 0x28, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, +0x23, 0xF3, 0x00, 0x6C, 0xE3, 0xF0, 0xB4, 0x9B, +0x02, 0x6E, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x99, 0xE3, 0xF0, 0xB4, 0x9B, +0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x00, 0x6A, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x00, 0x68, 0x05, 0xD5, 0x04, 0xD4, 0x05, 0x92, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, 0x00, 0x4B, +0xE0, 0x9B, 0xC0, 0x9A, 0x30, 0xF0, 0x20, 0x69, +0x49, 0xF4, 0x08, 0x49, 0x91, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x05, 0x56, 0x04, 0x93, 0x91, 0x67, +0x01, 0x6D, 0x40, 0xDB, 0x05, 0x92, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0xF7, 0x00, 0x4B, 0xE0, 0x9B, +0xC0, 0x9A, 0x01, 0x48, 0x80, 0x18, 0x05, 0x56, +0x04, 0x93, 0x41, 0xDB, 0xFF, 0x6A, 0x4C, 0xE8, +0x05, 0x92, 0x08, 0x4B, 0x03, 0x70, 0x04, 0x4A, +0x05, 0xD2, 0x04, 0xD3, 0xD8, 0x61, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x69, 0x04, 0x67, 0x30, 0xF0, 0x20, 0x6A, +0x2C, 0xE8, 0xC0, 0xF3, 0x44, 0x9A, 0x08, 0x6B, +0x04, 0x36, 0x01, 0x6D, 0x6D, 0xEE, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF7, 0xE0, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x49, 0xF4, 0x08, 0x4C, 0xB0, 0x67, +0x58, 0x6E, 0x80, 0x18, 0x05, 0x56, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF0, 0x78, 0x9B, 0x4C, 0xEB, +0x62, 0x33, 0x7A, 0x33, 0x2C, 0xEB, 0x0B, 0x23, +0x3F, 0x73, 0x09, 0x60, 0x07, 0xF7, 0x00, 0x6B, +0x4C, 0xEB, 0x62, 0x32, 0x2C, 0xEA, 0x03, 0x22, +0x3F, 0x72, 0x00, 0x6A, 0x56, 0x61, 0x30, 0xF0, +0x20, 0x69, 0x49, 0xF4, 0x08, 0x49, 0x00, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x57, 0x6E, 0x01, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x01, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, 0x10, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x30, 0xF0, +0x21, 0x6A, 0x30, 0xF3, 0x5C, 0xA2, 0x01, 0x22, +0x20, 0x6A, 0x91, 0x67, 0x30, 0xF0, 0x20, 0x69, +0x49, 0xF4, 0x08, 0x49, 0xB0, 0x67, 0x33, 0x6E, +0x7F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x20, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, +0x07, 0xF7, 0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, +0xF8, 0x9A, 0x20, 0x6B, 0x91, 0x67, 0xB0, 0x67, +0x08, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, 0x00, 0x4A, +0xE0, 0x9A, 0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, +0x80, 0x18, 0x05, 0x56, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF7, 0x00, 0x4B, 0xE0, 0x9B, 0x91, 0x67, +0xB0, 0x67, 0x58, 0x6E, 0x80, 0x18, 0x05, 0x56, +0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, +0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x01, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x68, 0x0C, 0xEC, +0x01, 0x74, 0xAC, 0xE8, 0x80, 0xF0, 0x0E, 0x60, +0x07, 0x24, 0x02, 0x74, 0xA0, 0xF0, 0x00, 0x60, +0x03, 0x74, 0xA0, 0xF0, 0x01, 0x60, 0xA5, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, +0x2A, 0xF7, 0x74, 0x9A, 0x30, 0xF0, 0x21, 0x6D, +0x30, 0xF0, 0x21, 0x6C, 0x2A, 0xF7, 0x78, 0xDA, +0x30, 0xF0, 0x21, 0x6F, 0x30, 0xF0, 0x21, 0x6B, +0xD0, 0xF6, 0x14, 0x4D, 0xD0, 0xF6, 0x0C, 0x4C, +0xD0, 0xF6, 0x08, 0x4B, 0xB0, 0xF4, 0x16, 0x4F, +0x00, 0x69, 0x40, 0x9D, 0x95, 0xF3, 0x04, 0x41, +0x04, 0x30, 0x42, 0xDD, 0x40, 0xAC, 0x05, 0xD7, +0x42, 0xCC, 0x40, 0xA3, 0x42, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0x01, 0xE2, +0x00, 0x6A, 0x04, 0x48, 0x04, 0xD2, 0x40, 0xA0, +0x22, 0x6E, 0x07, 0xD3, 0x44, 0xC0, 0x04, 0x92, +0xD8, 0xEA, 0x44, 0x6A, 0x12, 0xEE, 0x58, 0xE9, +0x12, 0xEA, 0x49, 0xE6, 0x30, 0xF0, 0x20, 0x6E, +0x85, 0xF7, 0x08, 0x4E, 0x1A, 0x65, 0x49, 0xE6, +0x0A, 0xF5, 0x0C, 0x4A, 0x06, 0xD2, 0x58, 0x67, +0x59, 0xE6, 0x06, 0x92, 0x0A, 0xF6, 0x1C, 0x4E, +0x60, 0xAA, 0x80, 0xF0, 0x68, 0xCA, 0x60, 0xAE, +0x02, 0x4A, 0x80, 0xF0, 0x68, 0xCE, 0x05, 0x93, +0x02, 0x4E, 0x6A, 0xEA, 0xF5, 0x61, 0x04, 0x92, +0x07, 0x93, 0x01, 0x48, 0x01, 0x4A, 0x04, 0xD2, +0x05, 0x92, 0x22, 0x4A, 0x05, 0xD2, 0x04, 0x92, +0x02, 0x72, 0xD1, 0x61, 0x01, 0x49, 0x02, 0x71, +0x04, 0x4D, 0x02, 0x4C, 0x01, 0x4B, 0x44, 0x4F, +0xB8, 0x61, 0x30, 0xF0, 0x21, 0x6B, 0xD0, 0xF6, +0x08, 0x4B, 0x44, 0x43, 0xA7, 0x43, 0x16, 0x4D, +0xC2, 0x67, 0x00, 0x6C, 0x80, 0xC3, 0x01, 0x4B, +0x00, 0x6C, 0xCA, 0xEB, 0x80, 0xCA, 0xFF, 0xF7, +0x88, 0xC2, 0x20, 0xF0, 0x85, 0xC2, 0xFF, 0xF7, +0x89, 0xC2, 0x20, 0xF0, 0x86, 0xC2, 0x80, 0xC5, +0x81, 0xC5, 0x82, 0xC5, 0x02, 0x4A, 0x03, 0x4D, +0xEC, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0x2A, 0xF7, 0x7C, 0x9A, 0x2A, 0xF7, +0x74, 0xDA, 0x1F, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF7, 0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xB0, 0x67, 0x49, 0xF4, 0x08, 0x4C, 0x58, 0x6E, +0x80, 0x18, 0x05, 0x56, 0xC2, 0xF5, 0x12, 0x48, +0x30, 0xF0, 0x20, 0x6B, 0x08, 0x30, 0x85, 0xF7, +0x08, 0x4B, 0x6D, 0xE0, 0x41, 0xDB, 0x09, 0x10, +0x00, 0x6C, 0xB0, 0x67, 0xC4, 0x67, 0x03, 0x10, +0x01, 0x6C, 0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, +0xD3, 0x0B, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x04, 0x67, +0x4C, 0xE8, 0xAC, 0xEA, 0x0E, 0x22, 0x08, 0x6A, +0x04, 0x31, 0x4D, 0xE9, 0x01, 0x6B, 0x44, 0x40, +0x64, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x49, 0xF4, +0x08, 0x4A, 0x06, 0xD2, 0x6D, 0xE9, 0x06, 0x6A, +0x0D, 0x10, 0x08, 0x6A, 0x04, 0x31, 0x4D, 0xE9, +0x01, 0x6B, 0x44, 0x40, 0x64, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x49, 0xF4, 0x08, 0x4A, 0x06, 0xD2, +0x6D, 0xE9, 0x04, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x06, 0x94, 0xC3, 0xF0, 0xF0, 0x9A, +0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, 0x78, 0x56, +0x06, 0x94, 0x08, 0xF0, 0x00, 0x6F, 0x01, 0x6B, +0x8F, 0x6E, 0xB0, 0x67, 0x04, 0xD3, 0x80, 0x18, +0x78, 0x56, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x01, 0x6C, +0x80, 0x18, 0xAD, 0x0B, 0x90, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x15, 0x0B, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, 0xD1, 0x67, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x01, 0x6D, 0xC1, 0x41, 0xAB, 0xED, 0x03, 0xF3, +0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xEF, 0x6E, 0x10, 0x6F, +0x00, 0x6A, 0x49, 0xF4, 0x08, 0x4C, 0xB0, 0x67, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x01, 0x6D, +0x90, 0x67, 0x80, 0x18, 0x15, 0x0B, 0x00, 0x6C, +0x80, 0x18, 0xAD, 0x0B, 0x90, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x36, 0x0F, 0x22, 0x67, 0x04, 0x2A, +0x01, 0x6C, 0xB0, 0x67, 0x80, 0x18, 0xD9, 0x0F, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, +0x41, 0xE0, 0xCA, 0xF3, 0x25, 0xC0, 0x51, 0x67, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x04, 0x67, +0x4C, 0xED, 0x4C, 0xE8, 0x30, 0xF0, 0x21, 0x6A, +0x30, 0xF3, 0x5D, 0xA2, 0x06, 0x6B, 0x08, 0xD5, +0x4E, 0xEB, 0x01, 0x5B, 0x98, 0x67, 0x07, 0xD4, +0x16, 0x2D, 0x04, 0x24, 0xFF, 0x6A, 0x04, 0x33, +0x01, 0x4A, 0x03, 0x10, 0x04, 0x4A, 0x04, 0x33, 0x40, 0x32, 0x4D, 0xEB, 0x84, 0x40, 0x01, 0x6A, 0x44, 0xEC, 0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, -0x09, 0xF4, 0x18, 0x4A, 0x08, 0x69, 0x06, 0xD2, -0x6D, 0xE9, 0x06, 0x6A, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x06, 0x94, 0x83, 0xF0, 0xFC, 0x9A, -0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, 0xF2, 0x57, -0x01, 0x6A, 0x25, 0x10, 0x08, 0x93, 0x00, 0x69, -0x02, 0x73, 0x2F, 0x61, 0x07, 0x94, 0x04, 0x24, +0x49, 0xF4, 0x08, 0x4A, 0x08, 0x69, 0x06, 0xD2, +0x6D, 0xE9, 0x04, 0x6A, 0x19, 0x10, 0x08, 0x93, +0x01, 0x73, 0x22, 0x61, 0x07, 0x94, 0x04, 0x24, 0xFF, 0x6A, 0x04, 0x33, 0x01, 0x4A, 0x03, 0x10, -0x0A, 0x4A, 0x04, 0x33, 0x40, 0x32, 0x4D, 0xEB, +0x07, 0x4A, 0x04, 0x33, 0x40, 0x32, 0x4D, 0xEB, 0x84, 0x40, 0x01, 0x6A, 0x44, 0xEC, 0x4D, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF4, 0x18, 0x4A, -0x06, 0xD2, 0x07, 0x6A, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x06, 0x94, 0x83, 0xF0, 0xFC, 0x9A, -0x08, 0x69, 0xB0, 0x67, 0x00, 0x6E, 0x6D, 0xE9, -0x80, 0x18, 0xF2, 0x57, 0x00, 0x6A, 0x06, 0x94, -0xB0, 0x67, 0x8F, 0x6E, 0x08, 0xF0, 0x00, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, -0x40, 0xEA, 0x01, 0x6C, 0x80, 0x18, 0xAB, 0x0A, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, -0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, -0xD1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, -0xC0, 0xF3, 0x44, 0x9C, 0x01, 0x6D, 0xC1, 0x41, -0xAB, 0xED, 0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, -0x01, 0x6C, 0x40, 0xEA, 0x01, 0x6D, 0x90, 0x67, -0x80, 0x18, 0xE1, 0x0D, 0x00, 0x6C, 0x06, 0xD2, -0x80, 0x18, 0xAB, 0x0A, 0x04, 0x32, 0x09, 0xD2, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, -0x09, 0x93, 0x01, 0x6D, 0x08, 0x6E, 0x03, 0xF3, -0x00, 0x6C, 0xAB, 0xED, 0x6D, 0xEE, 0x40, 0xEA, -0x08, 0x94, 0x1C, 0x2C, 0x7D, 0x67, 0x87, 0x43, -0x11, 0x4C, 0x60, 0xA4, 0x30, 0xF0, 0x20, 0x69, -0x95, 0xF3, 0x44, 0x40, 0x06, 0x94, 0x44, 0x32, -0x45, 0xF7, 0x18, 0x49, 0x29, 0xE2, 0x64, 0xC2, -0x48, 0x2C, 0x07, 0x92, 0x09, 0x22, 0x01, 0x6D, -0x23, 0xF3, 0x18, 0x4C, 0xAB, 0xED, 0x80, 0x18, -0xA1, 0x16, 0xC2, 0xF5, 0x1E, 0x48, 0x35, 0x10, -0x02, 0x6C, 0x38, 0x10, 0x08, 0x93, 0x02, 0x73, -0x38, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, -0xFC, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, -0x20, 0x69, 0x45, 0xF7, 0x18, 0x49, 0x09, 0xF4, -0x18, 0x4C, 0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, -0x7F, 0x57, 0xAA, 0xF3, 0x9A, 0xA1, 0xFF, 0x6B, -0x56, 0x32, 0x6C, 0xEA, 0x80, 0x34, 0xA5, 0xF3, -0x60, 0x40, 0x8D, 0xEA, 0x64, 0x33, 0x09, 0x94, -0x2D, 0xE3, 0x42, 0xCB, 0x7D, 0x67, 0x29, 0xE4, -0x87, 0x43, 0x11, 0x4C, 0x60, 0xA4, 0x06, 0x94, -0x2A, 0xF7, 0x6D, 0xC2, 0x12, 0x2C, 0x07, 0x92, -0x0C, 0x22, 0x01, 0x6D, 0x23, 0xF3, 0x1C, 0x4C, -0xAB, 0xED, 0x80, 0x18, 0xA1, 0x16, 0xE2, 0xF5, -0x00, 0x48, 0x08, 0x30, 0x25, 0xE0, 0x41, 0xD9, -0x04, 0x10, 0x03, 0x6C, 0xB0, 0x67, 0x00, 0x18, -0x51, 0xC2, 0x06, 0x92, 0x0D, 0x97, 0x0C, 0x91, -0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x49, 0xF4, 0x08, 0x4A, +0x08, 0x69, 0x06, 0xD2, 0x6D, 0xE9, 0x06, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0x94, +0xC3, 0xF0, 0xF0, 0x9A, 0xB0, 0x67, 0x00, 0x6E, +0x80, 0x18, 0x78, 0x56, 0x01, 0x6A, 0x25, 0x10, +0x08, 0x93, 0x00, 0x69, 0x02, 0x73, 0x2F, 0x61, +0x07, 0x94, 0x04, 0x24, 0xFF, 0x6A, 0x04, 0x33, +0x01, 0x4A, 0x03, 0x10, 0x0A, 0x4A, 0x04, 0x33, +0x40, 0x32, 0x4D, 0xEB, 0x84, 0x40, 0x01, 0x6A, +0x44, 0xEC, 0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0x49, 0xF4, 0x08, 0x4A, 0x06, 0xD2, 0x07, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0x94, +0xC3, 0xF0, 0xF0, 0x9A, 0x08, 0x69, 0xB0, 0x67, +0x00, 0x6E, 0x6D, 0xE9, 0x80, 0x18, 0x78, 0x56, +0x00, 0x6A, 0x06, 0x94, 0xB0, 0x67, 0x8F, 0x6E, +0x08, 0xF0, 0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x01, 0x6C, +0x80, 0x18, 0xAD, 0x0B, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0xD1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF3, 0x44, 0x9C, +0x01, 0x6D, 0xC1, 0x41, 0xAB, 0xED, 0x03, 0xF3, +0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, 0x40, 0xEA, +0x01, 0x6D, 0x90, 0x67, 0x80, 0x18, 0x36, 0x0F, +0x00, 0x6C, 0x06, 0xD2, 0x80, 0x18, 0xAD, 0x0B, +0x04, 0x32, 0x09, 0xD2, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x09, 0x93, 0x01, 0x6D, +0x08, 0x6E, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x6D, 0xEE, 0x40, 0xEA, 0x08, 0x94, 0x1C, 0x2C, +0x7D, 0x67, 0x87, 0x43, 0x11, 0x4C, 0x60, 0xA4, +0x30, 0xF0, 0x20, 0x69, 0x95, 0xF3, 0x44, 0x40, +0x06, 0x94, 0x44, 0x32, 0x85, 0xF7, 0x08, 0x49, +0x29, 0xE2, 0x64, 0xC2, 0x48, 0x2C, 0x07, 0x92, +0x09, 0x22, 0x01, 0x6D, 0x23, 0xF3, 0x18, 0x4C, +0xAB, 0xED, 0x80, 0x18, 0xA5, 0x19, 0xC2, 0xF5, +0x1E, 0x48, 0x35, 0x10, 0x02, 0x6C, 0x38, 0x10, +0x08, 0x93, 0x02, 0x73, 0x38, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF7, 0xE0, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x69, 0x85, 0xF7, +0x08, 0x49, 0x49, 0xF4, 0x08, 0x4C, 0xB0, 0x67, +0x00, 0x6E, 0x80, 0x18, 0x05, 0x56, 0xAA, 0xF3, +0x9A, 0xA1, 0xFF, 0x6B, 0x56, 0x32, 0x6C, 0xEA, +0x80, 0x34, 0xA5, 0xF3, 0x60, 0x40, 0x8D, 0xEA, +0x64, 0x33, 0x09, 0x94, 0x2D, 0xE3, 0x42, 0xCB, +0x7D, 0x67, 0x29, 0xE4, 0x87, 0x43, 0x11, 0x4C, +0x60, 0xA4, 0x06, 0x94, 0x2A, 0xF7, 0x6D, 0xC2, +0x12, 0x2C, 0x07, 0x92, 0x0C, 0x22, 0x01, 0x6D, +0x23, 0xF3, 0x1C, 0x4C, 0xAB, 0xED, 0x80, 0x18, +0xA5, 0x19, 0xE2, 0xF5, 0x00, 0x48, 0x08, 0x30, +0x25, 0xE0, 0x41, 0xD9, 0x04, 0x10, 0x03, 0x6C, +0xB0, 0x67, 0x80, 0x18, 0xD9, 0x0F, 0x06, 0x92, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF7, 0x63, 0x11, 0x62, +0x10, 0xD1, 0x0F, 0xD0, 0xFF, 0x6A, 0x04, 0x67, +0x4C, 0xE8, 0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0xAA, 0xF3, 0x75, 0xA2, +0x0C, 0xD5, 0x00, 0x69, 0x0D, 0xD3, 0xE1, 0xF2, +0x69, 0x40, 0x6C, 0x33, 0x69, 0xE2, 0x04, 0x4A, +0x0A, 0xD2, 0x30, 0xF0, 0x21, 0x6A, 0x10, 0xF7, +0x04, 0x4A, 0x08, 0xD2, 0x09, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF7, 0x00, 0x4A, 0xE0, 0x9A, +0xFF, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x2C, 0xEB, +0x49, 0xF4, 0x08, 0x48, 0x90, 0x67, 0xA3, 0x67, +0xDF, 0x6E, 0x06, 0xD3, 0x80, 0x18, 0x05, 0x56, +0x10, 0x6B, 0x4D, 0xEB, 0x04, 0xD3, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0xF7, 0x00, 0x4B, 0xE0, 0x9B, +0x06, 0x95, 0x90, 0x67, 0xDF, 0x6E, 0x80, 0x18, +0x78, 0x56, 0x0A, 0x93, 0x06, 0x95, 0x90, 0x67, +0x40, 0x9B, 0x58, 0x6E, 0x30, 0xF0, 0x20, 0x68, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, +0x00, 0x4A, 0xE0, 0x9A, 0x80, 0x18, 0x78, 0x56, +0xC0, 0xF3, 0x44, 0x98, 0x08, 0x6B, 0x24, 0x36, +0x01, 0x6D, 0x6D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x0D, 0x93, 0x06, 0x73, 0x1C, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF6, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x08, 0x93, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xC0, 0x9B, 0x23, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x08, 0x93, +0x01, 0x6D, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, +0x1C, 0x6C, 0xAB, 0xED, 0xC2, 0x9B, 0x21, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF6, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF6, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, 0x18, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF6, 0x00, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xC0, 0x9B, 0x01, 0x6D, 0x23, 0xF3, 0x1C, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x0C, 0x92, 0x06, 0x22, +0x00, 0x6B, 0x01, 0x72, 0x06, 0xD3, 0xC0, 0xF0, +0x05, 0x61, 0x62, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x22, 0xF7, 0xB4, 0x9B, 0x44, 0x68, 0x23, 0xF3, +0x00, 0x6C, 0x03, 0x6E, 0x40, 0xEA, 0x18, 0xE9, +0x09, 0x93, 0x88, 0x6A, 0x12, 0xE8, 0x58, 0xEB, +0x12, 0xEA, 0x41, 0xE0, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0x01, 0xE2, 0x00, 0x6A, +0x0A, 0xF5, 0x0C, 0x48, 0x06, 0xD2, 0xC0, 0xA8, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF7, 0x48, 0x9A, +0x06, 0x93, 0xC0, 0x36, 0x4D, 0xEE, 0x68, 0x32, +0x4D, 0xEE, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, +0xAB, 0xED, 0x02, 0x4E, 0x40, 0xEA, 0x06, 0x92, +0x02, 0x48, 0x01, 0x4A, 0x11, 0x72, 0x06, 0xD2, +0xE6, 0x61, 0x44, 0x68, 0x18, 0xE9, 0x09, 0x93, +0x88, 0x6A, 0x12, 0xE8, 0x58, 0xEB, 0x12, 0xEA, +0x41, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0x01, 0xE2, 0x00, 0x6A, 0x0A, 0xF6, +0x1C, 0x48, 0x06, 0xD2, 0xC0, 0xA8, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF7, 0x48, 0x9A, 0xC0, 0x36, +0x01, 0x6D, 0x4D, 0xEE, 0x06, 0x92, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x48, 0x33, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x6D, 0xEE, +0x02, 0x48, 0x40, 0xEA, 0x06, 0x93, 0x01, 0x4B, +0x11, 0x73, 0x06, 0xD3, 0xE7, 0x61, 0xE2, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x22, 0xF7, 0xB4, 0x9B, +0x44, 0x68, 0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0x18, 0xE9, 0x09, 0x93, 0x88, 0x6A, +0x12, 0xE8, 0x58, 0xEB, 0x12, 0xEA, 0x41, 0xE0, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, +0x01, 0xE2, 0x00, 0x6A, 0x2A, 0xF5, 0x0E, 0x48, +0x06, 0xD2, 0xC0, 0xA8, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF7, 0x4C, 0x9A, 0x06, 0x93, 0xC0, 0x36, +0x4D, 0xEE, 0x68, 0x32, 0x4D, 0xEE, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, +0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x02, 0x4E, +0x40, 0xEA, 0x06, 0x92, 0x02, 0x48, 0x01, 0x4A, +0x11, 0x72, 0x06, 0xD2, 0xE6, 0x61, 0x44, 0x68, +0x18, 0xE9, 0x09, 0x93, 0x88, 0x6A, 0x12, 0xE8, +0x58, 0xEB, 0x12, 0xEA, 0x41, 0xE0, 0x30, 0xF0, +0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0x01, 0xE2, +0x00, 0x6A, 0x2A, 0xF6, 0x1E, 0x48, 0x06, 0xD2, +0xC0, 0xA8, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF7, +0x4C, 0x9A, 0xC0, 0x36, 0x01, 0x6D, 0x4D, 0xEE, +0x06, 0x92, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x48, 0x33, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x6D, 0xEE, 0x02, 0x48, 0x40, 0xEA, +0x06, 0x93, 0x01, 0x4B, 0x11, 0x73, 0x06, 0xD3, +0xE7, 0x61, 0x80, 0x10, 0x0B, 0xD1, 0x06, 0x93, +0xFF, 0x6A, 0x6C, 0xEA, 0x11, 0x2A, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x22, 0xF7, 0xB4, 0x9B, 0x23, 0xF3, +0x00, 0x6C, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF7, 0x48, 0x9A, 0x10, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x22, 0xF7, 0xB4, 0x9B, +0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF7, 0x4C, 0x9A, +0x07, 0xD2, 0x06, 0x92, 0x22, 0x68, 0x0B, 0x93, +0x18, 0xEA, 0x44, 0x6A, 0x00, 0x69, 0x12, 0xE8, +0x58, 0xEB, 0x09, 0x93, 0x12, 0xEA, 0x41, 0xE0, +0x88, 0x6A, 0x58, 0xEB, 0x12, 0xEA, 0x41, 0xE0, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, +0x01, 0xE2, 0x0A, 0xF5, 0x0C, 0x48, 0xC0, 0xA8, +0x07, 0x92, 0x01, 0x6D, 0xC0, 0x36, 0x4D, 0xEE, +0x28, 0x32, 0x4D, 0xEE, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0xC3, 0xF3, 0x18, 0x6C, +0xAB, 0xED, 0x02, 0x4E, 0x01, 0x49, 0x40, 0xEA, +0x11, 0x71, 0x02, 0x48, 0xEC, 0x61, 0x06, 0x92, +0x22, 0x68, 0x0B, 0x93, 0x18, 0xEA, 0x44, 0x6A, +0x00, 0x69, 0x12, 0xE8, 0x58, 0xEB, 0x09, 0x93, +0x12, 0xEA, 0x41, 0xE0, 0x88, 0x6A, 0x58, 0xEB, +0x12, 0xEA, 0x41, 0xE0, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0x01, 0xE2, 0x0A, 0xF6, +0x1C, 0x48, 0xC0, 0xA8, 0x07, 0x92, 0x28, 0x33, +0xC0, 0x36, 0x4D, 0xEE, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x6D, 0xEE, 0x01, 0x49, +0x40, 0xEA, 0x11, 0x71, 0x02, 0x48, 0xED, 0x61, +0x06, 0x93, 0x01, 0x4B, 0x02, 0x73, 0x06, 0xD3, +0x82, 0x61, 0x0B, 0x91, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0x22, 0xF7, 0xC8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x22, 0xF7, +0xB4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x00, 0x6A, 0x06, 0xD2, 0x06, 0x92, +0xFF, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x6C, 0xEA, +0x06, 0x93, 0x07, 0xD2, 0x01, 0x6D, 0x64, 0x36, +0xC0, 0xF3, 0x64, 0x98, 0x08, 0x6A, 0x4D, 0xEE, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF6, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF6, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF6, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, +0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, +0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x03, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x07, 0x95, +0xC3, 0xF0, 0xF0, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x49, 0xF4, 0x08, 0x4C, 0x00, 0x6E, 0x80, 0x18, +0x78, 0x56, 0x06, 0x92, 0x01, 0x4A, 0x02, 0x72, +0x06, 0xD2, 0xA9, 0x61, 0x0A, 0x93, 0x08, 0x92, +0x01, 0x49, 0x04, 0x4B, 0x04, 0x4A, 0x02, 0x71, +0x0A, 0xD3, 0x08, 0xD2, 0xBF, 0xF5, 0x1B, 0x61, +0x11, 0x97, 0x10, 0x91, 0x0F, 0x90, 0x09, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x68, 0x85, 0xF7, 0x08, 0x48, 0x00, 0x6B, +0x8C, 0xEA, 0x6A, 0xF7, 0x78, 0xC0, 0x2A, 0x2A, +0xAA, 0xF3, 0x56, 0xA0, 0x27, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF7, 0xE0, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x49, 0xF4, 0x08, 0x4C, 0x00, 0x6D, +0x18, 0x6E, 0x80, 0x18, 0x05, 0x56, 0x2A, 0xF7, +0x74, 0x98, 0x2A, 0xF7, 0x5C, 0xD8, 0x00, 0x69, +0x4E, 0xEB, 0x05, 0x23, 0x2A, 0xF7, 0x78, 0x98, +0x6E, 0xEA, 0x10, 0x2A, 0x01, 0x69, 0x02, 0x6D, +0x91, 0x67, 0x80, 0x18, 0x05, 0x11, 0x91, 0x67, +0x80, 0x18, 0xB3, 0x07, 0x01, 0x6C, 0x80, 0x18, +0xE5, 0x07, 0x01, 0x6B, 0x30, 0xF0, 0x21, 0x6A, +0x10, 0xF7, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x08, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x69, 0x30, 0xF0, 0x20, 0x6B, +0x85, 0xF7, 0x08, 0x49, 0xE2, 0xF5, 0x10, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x6A, 0xF7, +0xD8, 0xA1, 0xE3, 0xF3, 0x10, 0x6C, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x0A, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, 0x10, 0x4B, +0xC0, 0xF3, 0x44, 0x98, 0x6A, 0xF7, 0xD8, 0xA1, +0xA0, 0x9B, 0xE3, 0xF3, 0x10, 0x6C, 0x40, 0xEA, +0x6A, 0xF7, 0x58, 0xA1, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0x45, 0xF7, -0x18, 0x48, 0x00, 0x6B, 0x8C, 0xEA, 0x6A, 0xF7, -0x78, 0xC0, 0x27, 0x2A, 0xAA, 0xF3, 0x56, 0xA0, -0x24, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, -0xFC, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x09, 0xF4, -0x18, 0x4C, 0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, -0x7F, 0x57, 0x2A, 0xF7, 0x74, 0x98, 0x2A, 0xF7, -0x5C, 0xD8, 0x00, 0x69, 0x4E, 0xEB, 0x05, 0x23, -0x2A, 0xF7, 0x78, 0x98, 0x6E, 0xEA, 0x0D, 0x2A, -0x01, 0x69, 0x91, 0x67, 0x02, 0x6D, 0x80, 0x18, -0x3F, 0x51, 0x91, 0x67, 0x80, 0x18, 0x0D, 0x51, -0x01, 0x6B, 0x30, 0xF0, 0x21, 0x6A, 0xD0, 0xF6, -0x70, 0xC2, 0x30, 0xF0, 0x20, 0x68, 0x45, 0xF7, -0x18, 0x48, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0x6A, 0xF7, 0xD8, 0xA0, 0xC0, 0xF3, -0x44, 0x9A, 0xE2, 0xF5, 0xB8, 0x9B, 0xE3, 0xF3, -0x10, 0x6C, 0x40, 0xEA, 0x6A, 0xF7, 0x58, 0xA0, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, 0xA0, 0x9A, +0x63, 0xF6, 0x1C, 0x6C, 0x80, 0x18, 0xA5, 0x19, +0x06, 0x22, 0x01, 0x6B, 0x30, 0xF0, 0x21, 0x6A, +0xF0, 0xF6, 0x64, 0xC2, 0x04, 0x10, 0x30, 0xF0, +0x21, 0x6B, 0xF0, 0xF6, 0x44, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF7, 0x00, 0x4A, 0xE0, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0x49, 0xF4, 0x08, 0x48, +0x90, 0x67, 0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, +0x05, 0x56, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, +0x00, 0x4B, 0xE0, 0x9B, 0x90, 0x67, 0x00, 0x6D, +0x18, 0x6E, 0x22, 0x67, 0x80, 0x18, 0x05, 0x56, +0x30, 0xF0, 0x20, 0x6B, 0x85, 0xF7, 0x08, 0x4B, +0x2A, 0xF7, 0x5C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF5, 0x50, 0x9A, 0xCA, 0xF3, 0x23, 0xC3, +0x2C, 0xEA, 0x42, 0x32, 0x42, 0x32, 0xCA, 0xF3, +0x42, 0xC3, 0x06, 0xF0, 0x00, 0x6A, 0x2C, 0xEA, +0x42, 0x32, 0x52, 0x32, 0xCA, 0xF3, 0x44, 0xC3, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0xB4, 0x9A, -0x63, 0xF6, 0x1C, 0x6C, 0x80, 0x18, 0xA1, 0x16, -0x06, 0x22, 0x01, 0x6B, 0x30, 0xF0, 0x21, 0x6A, -0xB0, 0xF6, 0x74, 0xC2, 0x04, 0x10, 0x30, 0xF0, -0x21, 0x6B, 0xB0, 0xF6, 0x54, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF6, 0xFC, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0x09, 0xF4, 0x18, 0x4C, 0x00, 0x6D, -0x18, 0x6E, 0x80, 0x18, 0x7F, 0x57, 0x30, 0xF0, -0x20, 0x6C, 0xE2, 0xF5, 0x98, 0x9C, 0x30, 0xF0, -0x20, 0x6B, 0x45, 0xF7, 0x18, 0x4B, 0x4C, 0xEC, -0x82, 0x34, 0x82, 0x34, 0xCA, 0xF3, 0x82, 0xC3, -0x06, 0xF0, 0x00, 0x6C, 0x4C, 0xEC, 0x82, 0x34, -0x92, 0x34, 0xCA, 0xF3, 0x43, 0xC3, 0xCA, 0xF3, -0x84, 0xC3, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x68, -0x8C, 0xE8, 0x80, 0x18, 0x79, 0x0F, 0x03, 0x28, -0x00, 0x6C, 0xA4, 0x67, 0x07, 0x10, 0x01, 0x70, -0x03, 0x61, 0x00, 0x6C, 0x01, 0x6D, 0x02, 0x10, -0x00, 0x6C, 0x02, 0x6D, 0x80, 0x18, 0x3F, 0x51, +0x04, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, 0x80, 0x18, +0x70, 0x12, 0x00, 0x6C, 0x80, 0x18, 0xE5, 0x07, +0x03, 0x28, 0x00, 0x6C, 0xA4, 0x67, 0x07, 0x10, +0x01, 0x70, 0x03, 0x61, 0x00, 0x6C, 0x01, 0x6D, +0x02, 0x10, 0x00, 0x6C, 0x02, 0x6D, 0x80, 0x18, +0x05, 0x11, 0x01, 0x6C, 0x80, 0x18, 0xE5, 0x07, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x24, 0x67, 0x4C, 0xE9, 0xAC, 0xEA, 0x01, 0x72, 0x43, 0x61, 0x44, 0x41, 0x01, 0x6B, 0x64, 0xEA, 0x00, 0xF2, 0x08, 0x6A, 0x4D, 0xEB, 0x04, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF0, 0xFC, 0x9A, 0x30, 0xF0, 0x20, 0x68, -0x09, 0xF4, 0x18, 0x48, 0x90, 0x67, 0xB1, 0x67, -0x00, 0x6E, 0x06, 0xD3, 0x80, 0x18, 0xF2, 0x57, +0xC3, 0xF0, 0xF0, 0x9A, 0x30, 0xF0, 0x20, 0x68, +0x49, 0xF4, 0x08, 0x48, 0x90, 0x67, 0xB1, 0x67, +0x00, 0x6E, 0x06, 0xD3, 0x80, 0x18, 0x78, 0x56, 0x01, 0x6C, 0x08, 0xF0, 0x00, 0x6F, 0xB1, 0x67, 0x04, 0xD4, 0x8F, 0x6E, 0x90, 0x67, 0x80, 0x18, -0xF2, 0x57, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x78, 0x56, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x0A, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x06, 0x96, 0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, @@ -6137,10 +6404,10 @@ u8 array_mp_8822c_fw_ap[] = { 0x01, 0x6D, 0xAB, 0xED, 0x01, 0x4E, 0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, 0x40, 0xEA, -0x91, 0x67, 0x01, 0x6D, 0x80, 0x18, 0xE1, 0x0D, +0x91, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x36, 0x0F, 0xF0, 0x10, 0x02, 0x72, 0x01, 0x6A, 0xE0, 0xF0, -0x0C, 0x61, 0x30, 0xF0, 0x21, 0x6A, 0x10, 0xF3, -0x52, 0xA2, 0x00, 0x68, 0x09, 0x72, 0x0C, 0x60, +0x0C, 0x61, 0x30, 0xF0, 0x21, 0x6A, 0x50, 0xF3, +0x42, 0xA2, 0x00, 0x68, 0x09, 0x72, 0x0C, 0x60, 0x12, 0x72, 0x01, 0x68, 0x09, 0x60, 0x1B, 0x72, 0x02, 0x68, 0x06, 0x60, 0x24, 0x68, 0x4E, 0xE8, 0x01, 0x58, 0x18, 0x67, 0x04, 0x6A, 0x03, 0xE2, @@ -6148,7 +6415,7 @@ u8 array_mp_8822c_fw_ap[] = { 0x30, 0xF0, 0x20, 0x6C, 0x4D, 0xEB, 0xC0, 0xF3, 0x44, 0x9C, 0x01, 0x6D, 0xC3, 0x67, 0x08, 0xD3, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x06, 0x93, 0x01, 0x6D, 0xAB, 0xED, 0xAA, 0xF3, 0xDA, 0xA3, 0xC3, 0xF3, 0x0C, 0x6C, @@ -6162,17 +6429,17 @@ u8 array_mp_8822c_fw_ap[] = { 0x44, 0x9B, 0x01, 0x6D, 0xAB, 0xED, 0x01, 0x4E, 0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0x80, 0xF3, 0x4C, 0x9C, 0xC8, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF6, -0x1C, 0x4B, 0xE0, 0x9B, 0x30, 0xF0, 0x20, 0x6A, -0x09, 0xF4, 0x18, 0x4A, 0x82, 0x67, 0xB1, 0x67, -0x00, 0x6E, 0x07, 0xD2, 0x80, 0x18, 0x7F, 0x57, -0x91, 0x67, 0x01, 0x6D, 0x80, 0x18, 0xE1, 0x0D, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, +0x00, 0x4B, 0xE0, 0x9B, 0x30, 0xF0, 0x20, 0x6A, +0x49, 0xF4, 0x08, 0x4A, 0x82, 0x67, 0xB1, 0x67, +0x00, 0x6E, 0x07, 0xD2, 0x80, 0x18, 0x05, 0x56, +0x91, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x36, 0x0F, 0x01, 0x72, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF3, 0x00, 0x4A, 0x41, 0xE0, 0x40, 0xA0, 0x06, 0x94, 0xAA, 0xF3, 0x5A, 0xC4, 0x70, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, 0x00, 0x4A, 0x07, 0x94, 0xE0, 0x9A, 0xB1, 0x67, 0x00, 0x6E, -0x80, 0x18, 0x7F, 0x57, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0x18, 0x05, 0x56, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0x67, 0x08, 0x96, 0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xE3, 0xF7, 0x00, 0x6A, 0x2C, 0xEA, @@ -6187,7 +6454,7 @@ u8 array_mp_8822c_fw_ap[] = { 0x01, 0x6B, 0x09, 0x10, 0x06, 0x94, 0x00, 0x6B, 0x6A, 0xF7, 0x71, 0xC4, 0x00, 0x6B, 0x03, 0x20, 0x04, 0x58, 0x01, 0x61, 0x03, 0x68, 0x30, 0xF0, -0x20, 0x6C, 0x45, 0xF7, 0x18, 0x4C, 0x6A, 0xF7, +0x20, 0x6C, 0x85, 0xF7, 0x08, 0x4C, 0x6A, 0xF7, 0xB1, 0xA4, 0x01, 0x5D, 0xB8, 0x67, 0xAB, 0xED, 0xAC, 0xEB, 0x30, 0xF0, 0x20, 0x6D, 0x02, 0xF3, 0x00, 0x4D, 0xA1, 0xE0, 0xA0, 0xA0, 0xAA, 0xF3, @@ -6201,119 +6468,119 @@ u8 array_mp_8822c_fw_ap[] = { 0x01, 0x6A, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x01, 0x6B, 0xC8, 0x17, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x21, 0x6A, 0x10, 0xF3, 0x6F, 0xA2, 0xFF, 0x68, +0x21, 0x6A, 0x30, 0xF3, 0x7F, 0xA2, 0xFF, 0x68, 0x8C, 0xE8, 0x06, 0x5B, 0x01, 0x6A, 0x7C, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x68, 0x33, 0xC2, 0xF2, 0x10, 0x4A, 0x69, 0xE2, 0x40, 0x9A, 0x00, 0xEA, -0x90, 0x67, 0x80, 0x18, 0x8C, 0x0B, 0x90, 0x67, -0x01, 0x6D, 0x80, 0x18, 0x84, 0x0E, 0x62, 0x10, -0x90, 0x67, 0x80, 0x18, 0x3A, 0x0B, 0x90, 0x67, -0x01, 0x6D, 0x80, 0x18, 0xC8, 0x0E, 0x52, 0x22, +0x90, 0x67, 0x80, 0x18, 0xE1, 0x0C, 0x90, 0x67, +0x01, 0x6D, 0x80, 0x18, 0x37, 0x10, 0x62, 0x10, +0x90, 0x67, 0x80, 0x18, 0x8F, 0x0C, 0x90, 0x67, +0x01, 0x6D, 0x80, 0x18, 0x7B, 0x10, 0x52, 0x22, 0x03, 0x6C, 0x98, 0xE8, 0x30, 0xF0, 0x20, 0x6B, -0x45, 0xF7, 0x18, 0x4B, 0x12, 0xEC, 0x71, 0xE4, +0x85, 0xF7, 0x08, 0x4B, 0x12, 0xEC, 0x71, 0xE4, 0x4A, 0xF7, 0xBE, 0xA4, 0x02, 0x5D, 0x04, 0x60, 0x01, 0x4D, 0x4A, 0xF7, 0xBE, 0xC4, 0xEB, 0x17, 0x61, 0xE0, 0x01, 0x6C, 0x39, 0x10, 0x90, 0x67, -0x01, 0x6D, 0x80, 0x18, 0xD1, 0x0A, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, 0x00, 0x6B, +0x01, 0x6D, 0x80, 0x18, 0x26, 0x0C, 0x30, 0xF0, +0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0x00, 0x6B, 0x6A, 0xF7, 0x71, 0xC2, 0x90, 0x67, 0x02, 0x6D, -0x80, 0x18, 0xA2, 0x0F, 0x2F, 0x22, 0x30, 0xF0, -0x20, 0x6B, 0x04, 0x34, 0x45, 0xF7, 0x18, 0x4B, +0x80, 0x18, 0xA6, 0x12, 0x2F, 0x22, 0x30, 0xF0, +0x20, 0x6B, 0x04, 0x34, 0x85, 0xF7, 0x08, 0x4B, 0x6D, 0xE4, 0x6A, 0xF7, 0x8A, 0xA3, 0x0A, 0x5C, 0x25, 0x60, 0x01, 0x4C, 0x6A, 0xF7, 0x8A, 0xC3, 0xED, 0x17, 0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, -0xD1, 0x0A, 0x90, 0x67, 0x02, 0x6D, 0x80, 0x18, -0xC8, 0x0E, 0x18, 0x22, 0x03, 0x6C, 0x98, 0xE8, -0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF7, 0x18, 0x4B, +0x26, 0x0C, 0x90, 0x67, 0x02, 0x6D, 0x80, 0x18, +0x7B, 0x10, 0x18, 0x22, 0x03, 0x6C, 0x98, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0x85, 0xF7, 0x08, 0x4B, 0x12, 0xEC, 0x71, 0xE4, 0x4A, 0xF7, 0xBF, 0xA4, 0x02, 0x5D, 0x04, 0x60, 0x01, 0x4D, 0x4A, 0xF7, 0xBF, 0xC4, 0xEB, 0x17, 0x61, 0xE0, 0x02, 0x6C, 0xEA, 0xF4, 0x90, 0xC0, 0x06, 0x6C, 0xAA, 0xF3, 0x97, 0xC3, 0x12, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x45, 0xF7, 0x18, 0x4B, 0xAA, 0xF3, 0x97, 0xA3, +0x85, 0xF7, 0x08, 0x4B, 0xAA, 0xF3, 0x97, 0xA3, 0x01, 0x4C, 0xF5, 0x17, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0xAA, 0xF3, 0x77, 0xA2, +0x85, 0xF7, 0x08, 0x4A, 0xAA, 0xF3, 0x77, 0xA2, 0x01, 0x4B, 0xAA, 0xF3, 0x77, 0xC2, 0x01, 0x6A, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0xAA, 0xF3, 0x75, 0xA2, 0xAA, 0xF3, 0x58, 0xA2, 0x08, 0xD3, 0x06, 0x5A, 0x76, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x48, 0x32, 0xE2, 0xF2, 0x08, 0x4B, 0x4D, 0xE3, 0x40, 0x9B, 0x00, 0xEA, 0x00, 0x6C, -0x80, 0x18, 0x44, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0xAA, 0xF3, 0x77, 0xA2, +0x80, 0x18, 0x48, 0x13, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0xAA, 0xF3, 0x77, 0xA2, 0x06, 0x73, 0xF5, 0x61, 0x2A, 0x10, 0x00, 0x6C, -0x80, 0x18, 0x7C, 0x0C, 0x00, 0x6C, 0xA4, 0x67, -0x37, 0x10, 0x00, 0x6C, 0x80, 0x18, 0x44, 0x0C, -0x00, 0x6C, 0xA4, 0x67, 0x80, 0x18, 0xC8, 0x0E, -0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF7, 0x18, 0x4B, +0x80, 0x18, 0xD1, 0x0D, 0x00, 0x6C, 0xA4, 0x67, +0x37, 0x10, 0x00, 0x6C, 0x80, 0x18, 0x99, 0x0D, +0x00, 0x6C, 0xA4, 0x67, 0x80, 0x18, 0x7B, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x85, 0xF7, 0x08, 0x4B, 0xCA, 0xF3, 0x80, 0xA3, 0x01, 0x4C, 0xCA, 0xF3, 0x80, 0xC3, 0x42, 0x22, 0x4A, 0xF7, 0x5D, 0xA3, 0x03, 0x5A, 0x3E, 0x60, 0x01, 0x4A, 0x4A, 0xF7, 0x5D, 0xC3, 0x43, 0x10, 0x01, 0x6C, 0x80, 0x18, -0x44, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0xAA, 0xF3, 0x77, 0xA2, 0x06, 0x73, +0x48, 0x13, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0xAA, 0xF3, 0x77, 0xA2, 0x06, 0x73, 0xF5, 0x61, 0xAA, 0xF3, 0x78, 0xA2, 0x01, 0x4B, 0xAA, 0xF3, 0x78, 0xC2, 0x78, 0x67, 0xAA, 0xF3, 0x77, 0xC2, 0xCA, 0xF3, 0x60, 0xA2, 0x01, 0x4B, 0xCA, 0xF3, 0x60, 0xC2, 0x2A, 0x10, 0x01, 0x6C, -0x80, 0x18, 0x7C, 0x0C, 0x01, 0x6C, 0x00, 0x6D, -0x80, 0x18, 0x84, 0x0E, 0x19, 0x10, 0x01, 0x6C, -0x80, 0x18, 0x44, 0x0C, 0x01, 0x6C, 0x00, 0x6D, -0x80, 0x18, 0xC8, 0x0E, 0x30, 0xF0, 0x20, 0x6B, -0x45, 0xF7, 0x18, 0x4B, 0xCA, 0xF3, 0x80, 0xA3, +0x80, 0x18, 0xD1, 0x0D, 0x01, 0x6C, 0x00, 0x6D, +0x80, 0x18, 0x37, 0x10, 0x19, 0x10, 0x01, 0x6C, +0x80, 0x18, 0x99, 0x0D, 0x01, 0x6C, 0x00, 0x6D, +0x80, 0x18, 0x7B, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x85, 0xF7, 0x08, 0x4B, 0xCA, 0xF3, 0x80, 0xA3, 0x01, 0x4C, 0xCA, 0xF3, 0x80, 0xC3, 0x08, 0x22, 0x6A, 0xF7, 0x40, 0xA3, 0x03, 0x5A, 0x04, 0x60, 0x01, 0x4A, 0x6A, 0xF7, 0x40, 0xC3, 0x09, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0xAA, 0xF3, 0x78, 0xA2, 0x01, 0x4B, 0xAA, 0xF3, -0x78, 0xC2, 0x30, 0xF0, 0x21, 0x6A, 0x10, 0xF3, -0x50, 0xA2, 0x06, 0x72, 0x80, 0xF0, 0x08, 0x61, -0x30, 0xF0, 0x21, 0x69, 0x00, 0x6A, 0xD0, 0xF6, -0x14, 0x49, 0x06, 0xD2, 0x06, 0x92, 0xFF, 0x6B, +0x78, 0xC2, 0x30, 0xF0, 0x21, 0x6A, 0x50, 0xF3, +0x40, 0xA2, 0x06, 0x72, 0x80, 0xF0, 0x08, 0x61, +0x30, 0xF0, 0x21, 0x69, 0x00, 0x6A, 0x10, 0xF7, +0x04, 0x49, 0x06, 0xD2, 0x06, 0x92, 0xFF, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x6C, 0xEA, 0x06, 0x93, 0x07, 0xD2, 0x01, 0x6D, 0x64, 0x36, 0xC0, 0xF3, 0x64, 0x98, 0x08, 0x6A, 0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF0, 0xA8, 0x9B, 0xC0, 0xF3, +0x20, 0x6B, 0x83, 0xF0, 0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x08, 0x92, 0x06, 0x72, 0x1A, 0x61, 0x30, 0xF0, -0x20, 0x6B, 0xA2, 0xF6, 0xBC, 0x9B, 0xC0, 0xF3, +0x20, 0x6B, 0xE2, 0xF6, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x99, 0x01, 0x6D, 0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x01, 0x6D, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, 0xC2, 0x99, -0x21, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF6, -0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, +0x21, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF6, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF5, 0x14, 0x4B, 0xC0, 0x9B, +0x20, 0x6B, 0x22, 0xF6, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF5, 0x14, 0x4B, 0xC0, 0xF3, +0x20, 0x6B, 0x22, 0xF6, 0x00, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, 0x01, 0x6D, 0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF0, -0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, 0xA3, 0xF3, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, +0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, 0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x03, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x07, 0x95, -0x83, 0xF0, 0xFC, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0x09, 0xF4, 0x18, 0x4C, 0x00, 0x6E, 0x80, 0x18, -0xF2, 0x57, 0x06, 0x92, 0x04, 0x49, 0x01, 0x4A, +0xC3, 0xF0, 0xF0, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x49, 0xF4, 0x08, 0x4C, 0x00, 0x6E, 0x80, 0x18, +0x78, 0x56, 0x06, 0x92, 0x04, 0x49, 0x01, 0x4A, 0x02, 0x72, 0x06, 0xD2, 0x7F, 0xF7, 0x1E, 0x61, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x21, 0x6A, -0x10, 0xF3, 0x4D, 0xA2, 0xFF, 0x69, 0x8C, 0xE9, +0x30, 0xF3, 0x5D, 0xA2, 0xFF, 0x69, 0x8C, 0xE9, 0x02, 0x72, 0x02, 0x6A, 0x05, 0xD2, 0x02, 0x60, 0x04, 0x6B, 0x05, 0xD3, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0x6E, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x40, 0xEA, 0x01, 0x6D, 0x03, 0xF3, 0x08, 0x6C, 0xAB, 0xED, 0x80, 0x18, -0xA1, 0x16, 0x04, 0xD2, 0xC0, 0xF3, 0x44, 0x98, +0xA5, 0x19, 0x04, 0xD2, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x06, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, 0x80, 0x6D, 0x01, 0x6E, 0x40, 0xEA, @@ -6321,8 +6588,8 @@ u8 array_mp_8822c_fw_ap[] = { 0x06, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, 0x80, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x00, 0x68, 0x91, 0x67, -0x80, 0x18, 0x8A, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0xAA, 0xF3, 0x78, 0xA2, +0x80, 0x18, 0x8E, 0x13, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0xAA, 0xF3, 0x78, 0xA2, 0x06, 0x73, 0x0B, 0x60, 0x05, 0x21, 0xCA, 0xF3, 0x40, 0xA2, 0x05, 0x93, 0x6E, 0xEA, 0x05, 0x22, 0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, 0x64, 0x70, @@ -6336,75 +6603,75 @@ u8 array_mp_8822c_fw_ap[] = { 0x04, 0x96, 0x01, 0x6D, 0x91, 0x67, 0xAB, 0xED, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, 0xFC, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0x09, 0xF4, 0x18, 0x4C, -0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, 0x7F, 0x57, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, 0xE0, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x49, 0xF4, 0x08, 0x4C, +0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, 0x05, 0x56, 0x30, 0xF0, 0x20, 0x6B, 0x06, 0xF0, 0x00, 0x6C, -0x45, 0xF7, 0x18, 0x4B, 0x4C, 0xEC, 0x2A, 0xF7, +0x85, 0xF7, 0x08, 0x4B, 0x4C, 0xEC, 0x2A, 0xF7, 0x5C, 0xDB, 0x82, 0x32, 0x52, 0x32, 0x02, 0x72, 0x0A, 0x60, 0x03, 0x6C, 0x4E, 0xEC, 0x04, 0x24, 0x01, 0x72, 0x02, 0x6A, 0x07, 0x60, 0x05, 0x10, 0xAA, 0xF3, 0x95, 0xC3, 0x05, 0x10, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0xAA, 0xF3, 0x55, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, 0x78, 0x9B, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, 0x70, 0x9B, 0x2A, 0xF7, 0x9C, 0x9A, 0x8C, 0xEB, 0x62, 0x33, 0x62, 0x33, 0xAA, 0xF3, 0x74, 0xC2, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xF1, 0x63, 0x1D, 0x62, 0x1C, 0xD1, 0x1B, 0xD0, 0x08, 0xA4, 0x02, 0x6A, 0x01, 0x69, 0x0C, 0xEA, 0x46, 0x32, 0x18, 0xD2, -0x80, 0x18, 0xC8, 0x06, 0x80, 0x18, 0x53, 0x11, -0x80, 0x18, 0x79, 0x0F, 0x90, 0x67, 0x2C, 0xEC, -0x00, 0x6D, 0x80, 0x18, 0x52, 0x0F, 0x80, 0xF0, -0x03, 0x2A, 0x30, 0xF0, 0x20, 0x68, 0x45, 0xF7, -0x18, 0x48, 0xAA, 0xF3, 0x76, 0xA0, 0xAA, 0xF3, -0x58, 0xC0, 0xAA, 0xF3, 0x57, 0xC0, 0x01, 0x4B, -0xAA, 0xF3, 0x76, 0xC0, 0xCA, 0xF3, 0x40, 0xC0, -0xCA, 0xF3, 0x21, 0xC0, 0x38, 0x6C, 0x80, 0x18, -0x66, 0x0A, 0x00, 0x6C, 0x6A, 0xF7, 0x54, 0xD8, -0xA4, 0x67, 0x00, 0x18, 0x51, 0xC2, 0x30, 0xF0, -0x20, 0x6E, 0x30, 0xF0, 0x20, 0x6F, 0x04, 0x04, -0x0D, 0x05, 0x82, 0xF0, 0x14, 0x4E, 0xA2, 0xF0, -0x00, 0x4F, 0x80, 0x18, 0xB6, 0x0A, 0x30, 0xF0, -0x20, 0x6D, 0x07, 0x04, 0xE2, 0xF0, 0x14, 0x4D, -0x80, 0x18, 0x23, 0x0E, 0x00, 0x68, 0x80, 0x18, -0xDC, 0x09, 0x01, 0x6C, 0x80, 0x18, 0x1F, 0x07, -0x18, 0x94, 0x80, 0x18, 0x17, 0x11, 0x00, 0x6C, -0x80, 0x18, 0x1F, 0x07, 0x30, 0xF0, 0x20, 0x6C, -0xE2, 0xF0, 0x14, 0x4C, 0x07, 0x05, 0x80, 0x18, -0x15, 0x0D, 0x30, 0xF0, 0x20, 0x6E, 0x30, 0xF0, -0x20, 0x6F, 0x04, 0x04, 0x0D, 0x05, 0x82, 0xF0, -0x14, 0x4E, 0xA2, 0xF0, 0x00, 0x4F, 0x80, 0x18, -0x99, 0x09, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0xAA, 0xF3, 0x78, 0xA2, 0x06, 0x73, -0x0E, 0x60, 0xFF, 0x6B, 0x01, 0x48, 0x6C, 0xE8, -0x00, 0x6B, 0xCA, 0xF3, 0x60, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, 0x32, 0x6C, -0x40, 0xEA, 0x03, 0x70, 0xCC, 0x61, 0x30, 0xF0, -0x20, 0x68, 0x00, 0x6C, 0x80, 0x18, 0x0D, 0x51, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, -0xFF, 0x6D, 0x08, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x10, 0x69, 0x91, 0x67, -0xFF, 0x6D, 0xAA, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0xFF, 0x6D, -0x0A, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x80, 0x18, 0x07, 0x07, 0x80, 0x18, 0x57, 0x14, +0x80, 0x18, 0x70, 0x12, 0x00, 0x6C, 0x80, 0x18, +0xE5, 0x07, 0x90, 0x67, 0x2C, 0xEC, 0x00, 0x6D, +0x80, 0x18, 0x39, 0x12, 0x80, 0xF0, 0x00, 0x2A, +0x30, 0xF0, 0x20, 0x68, 0x85, 0xF7, 0x08, 0x48, +0xAA, 0xF3, 0x76, 0xA0, 0xAA, 0xF3, 0x58, 0xC0, +0xAA, 0xF3, 0x57, 0xC0, 0x01, 0x4B, 0xAA, 0xF3, +0x76, 0xC0, 0xCA, 0xF3, 0x40, 0xC0, 0xCA, 0xF3, +0x21, 0xC0, 0x38, 0x6C, 0x80, 0x18, 0x68, 0x0B, +0x00, 0x6C, 0x6A, 0xF7, 0x54, 0xD8, 0xA4, 0x67, +0x80, 0x18, 0xD9, 0x0F, 0x30, 0xF0, 0x20, 0x6E, +0x30, 0xF0, 0x20, 0x6F, 0x04, 0x04, 0x0D, 0x05, +0x82, 0xF0, 0x14, 0x4E, 0xA2, 0xF0, 0x00, 0x4F, +0x80, 0x18, 0xB8, 0x0B, 0x30, 0xF0, 0x20, 0x6D, +0x07, 0x04, 0xE2, 0xF0, 0x14, 0x4D, 0x80, 0x18, +0x78, 0x0F, 0x00, 0x68, 0x80, 0x18, 0xDE, 0x0A, +0x01, 0x6C, 0x80, 0x18, 0x21, 0x08, 0x18, 0x94, +0x80, 0x18, 0x1B, 0x14, 0x00, 0x6C, 0x80, 0x18, +0x21, 0x08, 0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF0, +0x14, 0x4C, 0x07, 0x05, 0x80, 0x18, 0x6A, 0x0E, +0x30, 0xF0, 0x20, 0x6E, 0x30, 0xF0, 0x20, 0x6F, +0x04, 0x04, 0x0D, 0x05, 0x82, 0xF0, 0x14, 0x4E, +0xA2, 0xF0, 0x00, 0x4F, 0x80, 0x18, 0x9B, 0x0A, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, +0xAA, 0xF3, 0x78, 0xA2, 0x06, 0x73, 0x08, 0x60, +0xFF, 0x6B, 0x01, 0x48, 0x6C, 0xE8, 0x03, 0x70, +0x00, 0x6B, 0xCA, 0xF3, 0x60, 0xC2, 0xD2, 0x61, +0x30, 0xF0, 0x20, 0x68, 0x00, 0x6C, 0x80, 0x18, +0xB3, 0x07, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x00, 0x6C, 0xFF, 0x6D, 0x08, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x10, 0x69, 0x91, 0x67, 0xFF, 0x6D, 0xAA, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, +0xFF, 0x6D, 0x0A, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0xFF, 0x6D, 0xAA, 0x6E, +0x40, 0xEA, 0x01, 0x6C, 0x80, 0x18, 0xE5, 0x07, 0x1D, 0x97, 0x1C, 0x91, 0x1B, 0x90, 0x00, 0x6A, 0x0F, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, -0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x06, 0xF0, -0x00, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x26, 0xF0, +0x10, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6B, -0x45, 0xF7, 0x18, 0x4B, 0xA0, 0xA4, 0x00, 0xF1, +0x85, 0xF7, 0x08, 0x4B, 0xA0, 0xA4, 0x00, 0xF1, 0xF5, 0xA3, 0x02, 0x6A, 0x01, 0x6E, 0x4B, 0xEA, 0xCC, 0xED, 0xEC, 0xEA, 0xAD, 0xEA, 0x00, 0xF1, 0x55, 0xC3, 0xA1, 0xA4, 0xCC, 0xEA, 0x00, 0xF1, 0xB6, 0xC3, 0xFF, 0x6D, 0x0D, 0x22, 0x61, 0xA4, -0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, 0x50, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF7, 0x54, 0x9A, 0x74, 0x33, 0x40, 0x6C, 0x4D, 0xE3, 0x40, 0xA3, 0xAC, 0xEA, 0x8D, 0xEA, 0xAC, 0xEA, 0x0A, 0x10, -0x61, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, -0x50, 0x9A, 0x74, 0x33, 0x4D, 0xE3, 0x80, 0xA3, +0x61, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF7, +0x54, 0x9A, 0x74, 0x33, 0x4D, 0xE3, 0x80, 0xA3, 0xBF, 0x6A, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, 0xE0, 0x63, 0x3F, 0x62, 0x01, 0x6A, 0x7D, 0x67, 0x4B, 0xEA, 0x50, 0xC3, 0x01, 0x6A, 0x52, 0xC3, @@ -6422,25 +6689,25 @@ u8 array_mp_8822c_fw_ap[] = { 0x04, 0x04, 0x40, 0xEA, 0x3F, 0x97, 0x20, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF1, 0x50, 0x9A, 0x60, 0xA2, 0x03, 0x6A, +0xE3, 0xF1, 0x44, 0x9A, 0x60, 0xA2, 0x03, 0x6A, 0x6C, 0xEA, 0x10, 0x6B, 0x64, 0xEA, 0xFF, 0x6A, -0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, -0x54, 0x9A, 0x04, 0xD3, 0x40, 0x9A, 0x05, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0x58, 0x9A, +0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, +0x48, 0x9A, 0x04, 0xD3, 0x40, 0x9A, 0x05, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, 0x4C, 0x9A, 0x00, 0x9A, 0x05, 0x92, 0x0A, 0xEA, 0xC0, 0xF0, -0x07, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0xA0, 0xF0, 0x64, 0x9A, 0x02, 0x6C, +0x07, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0xA0, 0xF0, 0x64, 0x9A, 0x02, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x30, 0xF0, -0x20, 0x69, 0x45, 0xF7, 0x18, 0x49, 0xE2, 0xF5, +0x20, 0x69, 0x85, 0xF7, 0x08, 0x49, 0xE2, 0xF5, 0x42, 0xA9, 0x00, 0xF7, 0x00, 0x72, 0x07, 0x60, 0xE2, 0xF5, 0x62, 0xA1, 0xE2, 0xF5, 0x83, 0xA1, 0xAF, 0x43, 0x8E, 0xED, 0x13, 0x2D, 0x30, 0xF0, -0x20, 0x6A, 0x62, 0xF6, 0x70, 0x9A, 0xFF, 0x6C, +0x20, 0x6A, 0x82, 0xF6, 0x78, 0x9A, 0xFF, 0x6C, 0x01, 0x4C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0x63, 0xF3, 0x64, 0x9A, 0x8D, 0xEB, 0x63, 0xF3, 0x64, 0xDA, 0x9A, 0x10, 0x30, 0xF0, 0x20, 0x6D, -0xA2, 0xF7, 0xBC, 0x9D, 0x7F, 0x6E, 0xB5, 0xE0, +0xE2, 0xF7, 0xA0, 0x9D, 0x7F, 0x6E, 0xB5, 0xE0, 0xE0, 0xA5, 0xCC, 0xEF, 0x47, 0x2F, 0x00, 0xF4, 0x00, 0x72, 0x80, 0xF0, 0x0D, 0x60, 0xAC, 0x43, 0x8E, 0xED, 0x80, 0xF0, 0x09, 0x25, 0x00, 0xF5, @@ -6448,148 +6715,148 @@ u8 array_mp_8822c_fw_ap[] = { 0x02, 0x72, 0x80, 0xF0, 0x01, 0x60, 0x00, 0xF7, 0x03, 0x72, 0x7E, 0x60, 0x00, 0xF5, 0x00, 0x72, 0x7B, 0x60, 0xFD, 0x4B, 0x6E, 0xEC, 0x78, 0x24, -0x30, 0xF0, 0x20, 0x69, 0x45, 0xF7, 0x18, 0x49, +0x30, 0xF0, 0x20, 0x69, 0x85, 0xF7, 0x08, 0x49, 0xE2, 0xF5, 0x42, 0xA9, 0x00, 0xF6, 0x01, 0x72, 0x6F, 0x60, 0x00, 0xF7, 0x02, 0x72, 0x6C, 0x60, 0x00, 0xF6, 0x00, 0x72, 0x69, 0x60, 0xE2, 0xF5, 0x62, 0xA1, 0xE2, 0xF5, 0x83, 0xA1, 0xFE, 0x4B, 0x8E, 0xEB, 0x62, 0x23, 0x00, 0xF7, 0x01, 0x72, -0x5F, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, -0x5C, 0x9A, 0x7F, 0x4C, 0x30, 0xF0, 0x20, 0x6D, -0x28, 0x4C, 0xA2, 0xF7, 0xBC, 0x9D, 0x49, 0xE0, +0x5F, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, +0x50, 0x9A, 0x7F, 0x4C, 0x30, 0xF0, 0x20, 0x6D, +0x28, 0x4C, 0xE2, 0xF7, 0xA0, 0x9D, 0x49, 0xE0, 0x94, 0x34, 0x60, 0xAA, 0x91, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0x02, 0x4C, 0xB5, 0xE0, 0x13, 0x10, 0x40, 0xA5, 0x4C, 0xEE, 0x01, 0x76, 0x1F, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF1, 0x5C, 0x9A, 0x7F, 0x4C, 0x28, 0x4C, +0xE3, 0xF1, 0x50, 0x9A, 0x7F, 0x4C, 0x28, 0x4C, 0x49, 0xE0, 0x60, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0x94, 0x34, 0x80, 0xF2, 0x4C, 0x9A, 0x91, 0xE1, 0x02, 0x4C, 0xFF, 0x6E, 0x6C, 0xEE, 0x40, 0xEA, 0xE2, 0xF5, 0x43, 0xA1, 0x08, 0x6B, 0x01, 0x4A, 0xE2, 0xF5, 0x43, 0xC1, 0xE2, 0xF5, 0x43, 0xA1, 0x6E, 0xEA, 0x13, 0x2A, 0xE2, 0xF5, 0x43, 0xC1, -0x10, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, -0x90, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF6, -0x7C, 0x9B, 0x40, 0x9C, 0x6D, 0xEA, 0x40, 0xDC, +0x10, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, +0x98, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF6, +0x60, 0x9B, 0x40, 0x9C, 0x6D, 0xEA, 0x40, 0xDC, 0x63, 0xF3, 0x44, 0x99, 0x6D, 0xEA, 0x63, 0xF3, -0x44, 0xD9, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, -0x40, 0x9A, 0x04, 0x93, 0x40, 0x9A, 0x0E, 0xEA, +0x44, 0xD9, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, +0x54, 0x9A, 0x04, 0x93, 0x40, 0x9A, 0x0E, 0xEA, 0x61, 0xE0, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF1, 0x44, 0x9A, 0x00, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF1, 0x58, 0x9A, 0x00, 0xDA, +0xE3, 0xF1, 0x58, 0x9A, 0x00, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF1, 0x4C, 0x9A, 0x00, 0xDA, 0x05, 0x92, 0x4A, 0xE8, 0x5F, 0xF7, 0x03, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFE, 0x63, 0x03, 0xD1, -0x02, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0x63, 0xF3, 0x64, 0x9A, 0x02, 0x6D, +0x02, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0x63, 0xF3, 0x64, 0x9A, 0x02, 0x6D, 0xAC, 0xEB, 0x40, 0xF1, 0x1E, 0x2B, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF1, 0x68, 0x9B, 0x80, 0xA3, +0x20, 0x6B, 0xE3, 0xF1, 0x7C, 0x9B, 0x80, 0xA3, 0x0F, 0x6B, 0x8C, 0xEB, 0x05, 0x23, 0xA0, 0xF0, 0x84, 0x9A, 0xAD, 0xEC, 0xA0, 0xF0, 0x84, 0xDA, -0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF0, 0x4F, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF0, 0x5F, 0xA2, 0x00, 0xD2, 0xFF, 0x4A, 0x01, 0xD2, 0x47, 0x11, 0x00, 0x92, 0x06, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xA6, 0xF0, 0x50, 0xA2, 0x07, 0x72, 0x09, 0x60, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, +0xE6, 0xF0, 0x40, 0xA2, 0x07, 0x72, 0x09, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0x40, 0xF1, 0x18, 0xA2, 0x01, 0x94, 0x8A, 0xE8, -0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, -0x70, 0x9A, 0xFF, 0x6C, 0x01, 0x4C, 0x40, 0x9B, +0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, +0x78, 0x9A, 0xFF, 0x6C, 0x01, 0x4C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0x63, 0xF3, 0x64, 0x9A, +0x85, 0xF7, 0x08, 0x4A, 0x63, 0xF3, 0x64, 0x9A, 0x8D, 0xEB, 0x63, 0xF3, 0x64, 0xDA, 0x25, 0x11, -0x30, 0xF0, 0x20, 0x6C, 0xE5, 0xF5, 0xCE, 0xA4, +0x30, 0xF0, 0x20, 0x6C, 0x05, 0xF6, 0xDA, 0xA4, 0xE3, 0x67, 0xFF, 0x6D, 0xE7, 0xEE, 0xC7, 0x67, 0x01, 0x6F, 0xEC, 0xEE, 0xA0, 0xF0, 0x0A, 0x26, 0x0C, 0x34, 0x89, 0xE2, 0x00, 0xF1, 0x1B, 0x4A, -0x00, 0x6C, 0x30, 0xF0, 0x20, 0x6E, 0xE5, 0xF5, -0xEE, 0xA6, 0xFF, 0x6D, 0x1F, 0xF7, 0x00, 0x69, +0x00, 0x6C, 0x30, 0xF0, 0x20, 0x6E, 0x05, 0xF6, +0xFA, 0xA6, 0xFF, 0x6D, 0x1F, 0xF7, 0x00, 0x69, 0xAC, 0xEF, 0x74, 0x4F, 0xE8, 0x37, 0xFD, 0xE4, 0x2C, 0xEF, 0x02, 0xF0, 0x00, 0x77, 0x08, 0x60, -0xE5, 0xF5, 0xEE, 0xA6, 0xAC, 0xEF, 0x74, 0x4F, +0x05, 0xF6, 0xFA, 0xA6, 0xAC, 0xEF, 0x74, 0x4F, 0xE8, 0x37, 0xFD, 0xE4, 0x2C, 0xEF, 0x0F, 0x2F, -0x30, 0xF0, 0x20, 0x6D, 0xE5, 0xF5, 0x2E, 0xA5, +0x30, 0xF0, 0x20, 0x6D, 0x05, 0xF6, 0x3A, 0xA5, 0xFF, 0x6D, 0x30, 0xF0, 0x20, 0x6E, 0xAC, 0xE9, 0x74, 0x49, 0x28, 0x31, 0xE4, 0x67, 0x25, 0xE4, -0xC2, 0xF5, 0xC4, 0x9E, 0x0B, 0x10, 0xE5, 0xF5, -0x2E, 0xA6, 0x30, 0xF0, 0x20, 0x6E, 0xC2, 0xF5, -0xC8, 0x9E, 0xAC, 0xE9, 0x74, 0x49, 0x28, 0x31, +0xC2, 0xF5, 0xC8, 0x9E, 0x0B, 0x10, 0x05, 0xF6, +0x3A, 0xA6, 0x30, 0xF0, 0x20, 0x6E, 0xC2, 0xF5, +0xCC, 0x9E, 0xAC, 0xE9, 0x74, 0x49, 0x28, 0x31, 0xE4, 0x67, 0x25, 0xE4, 0xD9, 0xE1, 0xC0, 0xA6, 0x0C, 0x31, 0xCC, 0xED, 0x30, 0xF0, 0x20, 0x6E, -0x45, 0xF7, 0x18, 0x4E, 0xD9, 0xE1, 0xF9, 0xE6, +0x85, 0xF7, 0x08, 0x4E, 0xD9, 0xE1, 0xF9, 0xE6, 0x00, 0xF1, 0xB7, 0xC6, 0x30, 0xF0, 0x20, 0x6E, -0xE5, 0xF5, 0xEE, 0xA6, 0xFF, 0x6D, 0x1F, 0xF7, +0x05, 0xF6, 0xFA, 0xA6, 0xFF, 0x6D, 0x1F, 0xF7, 0x00, 0x69, 0xAC, 0xEF, 0x7C, 0x4F, 0xE8, 0x37, 0xFD, 0xE4, 0x2C, 0xEF, 0x02, 0xF0, 0x00, 0x77, -0x08, 0x60, 0xE5, 0xF5, 0xEE, 0xA6, 0xAC, 0xEF, +0x08, 0x60, 0x05, 0xF6, 0xFA, 0xA6, 0xAC, 0xEF, 0x7C, 0x4F, 0xE8, 0x37, 0xFD, 0xE4, 0x2C, 0xEF, -0x0E, 0x2F, 0x30, 0xF0, 0x20, 0x6D, 0xE5, 0xF5, -0xEE, 0xA5, 0xFF, 0x6D, 0x30, 0xF0, 0x20, 0x6E, +0x0E, 0x2F, 0x30, 0xF0, 0x20, 0x6D, 0x05, 0xF6, +0xFA, 0xA5, 0xFF, 0x6D, 0x30, 0xF0, 0x20, 0x6E, 0xAC, 0xEF, 0x7C, 0x4F, 0xE8, 0x37, 0xFD, 0xE4, -0xC2, 0xF5, 0xC4, 0x9E, 0x0A, 0x10, 0xE5, 0xF5, -0xEE, 0xA6, 0x30, 0xF0, 0x20, 0x6E, 0xC2, 0xF5, -0xC8, 0x9E, 0xAC, 0xEF, 0x7C, 0x4F, 0xE8, 0x37, +0xC2, 0xF5, 0xC8, 0x9E, 0x0A, 0x10, 0x05, 0xF6, +0xFA, 0xA6, 0x30, 0xF0, 0x20, 0x6E, 0xC2, 0xF5, +0xCC, 0x9E, 0xAC, 0xEF, 0x7C, 0x4F, 0xE8, 0x37, 0xFD, 0xE4, 0xD9, 0xE7, 0xC0, 0xA6, 0x01, 0x4C, 0x04, 0x74, 0xCC, 0xED, 0xA0, 0xC2, 0x01, 0x4A, -0x8C, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE5, 0xF5, -0xAE, 0xA2, 0x01, 0x6C, 0xC4, 0x67, 0xC4, 0xED, -0xCF, 0xED, 0xE5, 0xF5, 0xCE, 0xA2, 0xAC, 0xEB, +0x8C, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF6, +0xBA, 0xA2, 0x01, 0x6C, 0xC4, 0x67, 0xC4, 0xED, +0xCF, 0xED, 0x05, 0xF6, 0xDA, 0xA2, 0xAC, 0xEB, 0xFF, 0x6D, 0x84, 0xEE, 0x30, 0xF0, 0x20, 0x6E, -0xC3, 0xF1, 0xC8, 0x9E, 0xAC, 0xEC, 0x08, 0x6F, -0x80, 0xC6, 0xE5, 0xF5, 0x8E, 0xA2, 0xAC, 0xEC, -0x01, 0x4C, 0xAC, 0xEC, 0xE5, 0xF5, 0x8E, 0xC2, -0xE5, 0xF5, 0xAE, 0xA2, 0x03, 0x6C, 0xAC, 0xEC, -0xE5, 0xF5, 0x8E, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0x40, 0xF1, 0x98, 0xA2, +0xE3, 0xF1, 0xDC, 0x9E, 0xAC, 0xEC, 0x08, 0x6F, +0x80, 0xC6, 0x05, 0xF6, 0x9A, 0xA2, 0xAC, 0xEC, +0x01, 0x4C, 0xAC, 0xEC, 0x05, 0xF6, 0x9A, 0xC2, +0x05, 0xF6, 0xBA, 0xA2, 0x03, 0x6C, 0xAC, 0xEC, +0x05, 0xF6, 0x9A, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0x40, 0xF1, 0x98, 0xA2, 0x01, 0x4C, 0x40, 0xF1, 0x98, 0xC2, 0x40, 0xF1, 0x98, 0xA2, 0xEE, 0xEC, 0x70, 0x2C, 0x40, 0xF1, 0x98, 0xC2, 0x6D, 0x10, 0x30, 0xF0, 0x20, 0x6E, -0x62, 0xF6, 0x10, 0x9E, 0x02, 0x6F, 0xC0, 0x98, +0x82, 0xF6, 0x18, 0x9E, 0x02, 0x6F, 0xC0, 0x98, 0xED, 0xEE, 0xC0, 0xD8, 0x63, 0xF3, 0xC4, 0x9A, -0x63, 0xF3, 0x70, 0xC2, 0xE5, 0xF5, 0x6E, 0xA4, +0x63, 0xF3, 0x70, 0xC2, 0x05, 0xF6, 0x7A, 0xA4, 0xED, 0xEE, 0x63, 0xF3, 0xC4, 0xDA, 0x63, 0xF3, -0x71, 0xC2, 0xE5, 0xF5, 0x4E, 0xA4, 0x1F, 0xF7, +0x71, 0xC2, 0x05, 0xF6, 0x5A, 0xA4, 0x1F, 0xF7, 0x00, 0x6B, 0xAC, 0xEA, 0x74, 0x4A, 0x48, 0x32, 0x6C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x07, 0x60, -0xE5, 0xF5, 0x4E, 0xA4, 0xAC, 0xEA, 0x74, 0x4A, +0x05, 0xF6, 0x5A, 0xA4, 0xAC, 0xEA, 0x74, 0x4A, 0x48, 0x32, 0x6C, 0xEA, 0x0E, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0xE5, 0xF5, 0x6E, 0xA2, 0x30, 0xF0, -0x20, 0x6C, 0xC3, 0xF1, 0x8C, 0x9C, 0xFF, 0x6A, +0x20, 0x6A, 0x05, 0xF6, 0x7A, 0xA2, 0x30, 0xF0, +0x20, 0x6C, 0x03, 0xF2, 0x80, 0x9C, 0xFF, 0x6A, 0x4C, 0xEB, 0x8D, 0xE3, 0x68, 0x33, 0xA0, 0xA3, -0x0A, 0x10, 0xE5, 0xF5, 0x4E, 0xA4, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF1, 0x70, 0x9B, 0xAC, 0xEA, +0x0A, 0x10, 0x05, 0xF6, 0x5A, 0xA4, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF2, 0x64, 0x9B, 0xAC, 0xEA, 0x69, 0xE2, 0x48, 0x32, 0x40, 0xA2, 0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xC9, 0xF2, 0xAA, 0xC2, 0xE5, 0xF5, 0x4E, 0xA3, -0xE5, 0xF5, 0x8E, 0xA3, 0xFF, 0x6A, 0x1F, 0xF7, +0xE9, 0xF2, 0xBA, 0xC2, 0x05, 0xF6, 0x5A, 0xA3, +0x05, 0xF6, 0x9A, 0xA3, 0xFF, 0x6A, 0x1F, 0xF7, 0x00, 0x6D, 0x4C, 0xEC, 0x88, 0x34, 0xC0, 0xF1, -0x11, 0x4C, 0xAC, 0xEC, 0x0B, 0x2C, 0xE5, 0xF5, -0x6E, 0xA3, 0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x6C, -0x4C, 0xEB, 0x74, 0x4B, 0x68, 0x33, 0xC3, 0xF1, -0x94, 0x9C, 0x09, 0x10, 0xE5, 0xF5, 0x6E, 0xA3, -0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF1, 0x98, 0x9C, +0x11, 0x4C, 0xAC, 0xEC, 0x0B, 0x2C, 0x05, 0xF6, +0x7A, 0xA3, 0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x6C, +0x4C, 0xEB, 0x74, 0x4B, 0x68, 0x33, 0x03, 0xF2, +0x88, 0x9C, 0x09, 0x10, 0x05, 0xF6, 0x7A, 0xA3, +0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF2, 0x8C, 0x9C, 0x4C, 0xEB, 0x74, 0x4B, 0x68, 0x33, 0x8D, 0xE3, 0x60, 0xA3, 0x6C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC9, 0xF2, 0x4B, 0xC3, 0x02, 0x10, 0xBF, 0xF6, +0xE9, 0xF2, 0x5B, 0xC3, 0x02, 0x10, 0xBF, 0xF6, 0x17, 0x2B, 0x03, 0x91, 0x02, 0x90, 0x02, 0x63, 0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, -0x5C, 0x9A, 0xFF, 0x68, 0x60, 0xA2, 0x6C, 0xE8, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, +0x58, 0x9A, 0xFF, 0x68, 0x60, 0xA2, 0x6C, 0xE8, 0x25, 0x20, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, -0x40, 0x9A, 0x20, 0x6B, 0x01, 0x70, 0x60, 0xC2, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, +0x50, 0x9A, 0x20, 0x6B, 0x01, 0x70, 0x60, 0xC2, 0x06, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF6, 0x5C, 0x9A, 0x40, 0xEA, 0x0F, 0x10, 0x20, 0x70, -0x0D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6C, 0xA0, 0xF0, -0x64, 0x9A, 0xE2, 0xF5, 0x90, 0x9C, 0x8D, 0xEB, +0x0D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6C, 0xA0, 0xF0, +0x64, 0x9A, 0x02, 0xF6, 0x9C, 0x9C, 0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, 0x70, 0x9B, 0x10, 0xF0, 0x30, 0x6A, -0x09, 0xF5, 0x15, 0x4A, 0x40, 0xDB, 0x00, 0x1C, -0xAC, 0x39, 0x80, 0x18, 0x73, 0x5F, 0x05, 0x6C, -0x01, 0x6D, 0x80, 0x18, 0xC7, 0x02, 0x20, 0xBA, +0x2B, 0xF1, 0x05, 0x4A, 0x40, 0xDB, 0x00, 0x1C, +0xAC, 0x39, 0x80, 0x18, 0xFC, 0x5D, 0x05, 0x6C, +0x01, 0x6D, 0x80, 0x18, 0xF3, 0x02, 0x20, 0xBA, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, @@ -6603,15 +6870,15 @@ u8 array_mp_8822c_fw_ap[] = { 0xFF, 0x17, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, 0x68, 0x44, 0xFA, 0x4B, 0x4C, 0xEB, 0x04, 0x5B, 0x03, 0x60, 0x80, 0x18, -0x2A, 0x41, 0x15, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x62, 0xF6, 0x70, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0x22, 0xF7, 0x90, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0x63, 0xF3, 0x64, 0x9A, 0x8D, 0xEB, +0x39, 0x41, 0x15, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF6, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x42, 0xF7, 0x94, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0x63, 0xF3, 0x64, 0x9A, 0x8D, 0xEB, 0x63, 0xF3, 0x64, 0xDA, 0xFF, 0x6A, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0x45, 0xF7, 0x18, 0x4B, 0x40, 0xA4, 0xC0, 0xF0, +0x85, 0xF7, 0x08, 0x4B, 0x40, 0xA4, 0xC0, 0xF0, 0xC0, 0xA3, 0x7F, 0x68, 0x5E, 0x32, 0x5C, 0x32, 0x0C, 0xEE, 0x4D, 0xEE, 0xC0, 0xF0, 0xC0, 0xC3, 0xA0, 0xA4, 0x01, 0x6A, 0x41, 0x6F, 0xBA, 0x35, @@ -6634,39 +6901,39 @@ u8 array_mp_8822c_fw_ap[] = { 0x02, 0x6D, 0xAB, 0xED, 0x4C, 0xEC, 0xEC, 0xED, 0x8D, 0xED, 0xC0, 0xF0, 0xA3, 0xC3, 0xC0, 0xF0, 0xA0, 0xA3, 0x86, 0x67, 0x2C, 0xEC, 0xBA, 0x35, -0x4E, 0xED, 0x4C, 0xED, 0x80, 0x18, 0xA7, 0x15, +0x4E, 0xED, 0x4C, 0xED, 0x80, 0x18, 0xAB, 0x18, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, 0x60, 0xA4, 0x01, 0xA4, 0x02, 0x6A, 0x6C, 0xEA, 0x24, 0x67, 0x06, 0xD0, 0x36, 0x22, 0x42, 0xA4, 0x06, 0xD2, 0x33, 0x10, 0x40, 0xA1, 0x01, 0x6D, 0x90, 0x67, 0x4C, 0xED, -0x00, 0x18, 0xEA, 0xC4, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0x18, 0xDF, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, 0x90, 0x67, 0x40, 0xEA, 0x0F, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x58, 0x9A, 0x90, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x82, 0xF7, 0x50, 0x9A, 0x14, 0x33, +0x20, 0x6A, 0xA2, 0xF7, 0x54, 0x9A, 0x14, 0x33, 0x4D, 0xE3, 0x80, 0xA3, 0xBF, 0x6A, 0x12, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x54, 0x9A, 0x90, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x82, 0xF7, 0x50, 0x9A, 0x14, 0x33, 0xFF, 0x6C, +0xA2, 0xF7, 0x54, 0x9A, 0x14, 0x33, 0xFF, 0x6C, 0x4D, 0xE3, 0x40, 0xA3, 0x8C, 0xEA, 0x40, 0x6C, 0x8D, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, 0x06, 0x92, 0x03, 0xEA, 0xCA, 0x60, 0x30, 0xF0, 0x20, 0x68, -0x45, 0xF7, 0x18, 0x48, 0xA3, 0xF3, 0x6C, 0xA0, +0x85, 0xF7, 0x08, 0x48, 0xA3, 0xF3, 0x6C, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, 0x1A, 0x22, 0x03, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xA3, 0xF3, 0x4C, 0xC0, -0x00, 0x18, 0xC2, 0xCC, 0x04, 0xD2, 0x04, 0x93, +0x00, 0x18, 0xCA, 0xCB, 0x04, 0xD2, 0x04, 0x93, 0xA3, 0xF3, 0x50, 0x98, 0x6E, 0xEA, 0x03, 0x22, -0x04, 0x94, 0x00, 0x18, 0xE3, 0xCC, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, 0xA3, 0xF3, +0x04, 0x94, 0x00, 0x18, 0xEB, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0xA3, 0xF3, 0x8C, 0xA2, 0x02, 0x6B, 0x8D, 0xEB, 0xA3, 0xF3, 0x6C, 0xC2, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, 0x68, 0x44, 0xC8, 0x4B, 0x4C, 0xEB, 0x20, 0x5B, 0x05, 0x67, -0x03, 0x60, 0x80, 0x18, 0x35, 0x45, 0x64, 0x10, +0x03, 0x60, 0x80, 0x18, 0x44, 0x45, 0x64, 0x10, 0x13, 0x74, 0x37, 0x60, 0x14, 0x5C, 0x0D, 0x60, 0x08, 0x74, 0x27, 0x60, 0x09, 0x5C, 0x04, 0x60, 0x18, 0x24, 0x01, 0x74, 0x1A, 0x60, 0x45, 0x10, @@ -6675,207 +6942,207 @@ u8 array_mp_8822c_fw_ap[] = { 0x05, 0x60, 0x1E, 0x74, 0x2A, 0x60, 0x1F, 0x74, 0x24, 0x60, 0x37, 0x10, 0xC3, 0x74, 0x31, 0x60, 0xCD, 0x74, 0x2B, 0x60, 0xC2, 0x74, 0x25, 0x60, -0x30, 0x10, 0x85, 0x67, 0x80, 0x18, 0xC1, 0x11, -0x3F, 0x10, 0x85, 0x67, 0x80, 0x18, 0xAD, 0x13, -0x3B, 0x10, 0x85, 0x67, 0x00, 0x18, 0x47, 0xD4, -0x37, 0x10, 0x85, 0x67, 0x80, 0x18, 0x34, 0x02, -0x33, 0x10, 0x85, 0x67, 0x80, 0x18, 0x19, 0x00, -0x2F, 0x10, 0x85, 0x67, 0x80, 0x18, 0x77, 0x00, -0x2B, 0x10, 0x85, 0x67, 0x80, 0x18, 0x77, 0x13, -0x27, 0x10, 0x85, 0x67, 0x00, 0x18, 0x5C, 0xCA, -0x23, 0x10, 0x85, 0x67, 0x00, 0x18, 0x42, 0xCA, -0x1F, 0x10, 0x85, 0x67, 0x00, 0x18, 0x21, 0xCA, -0x1B, 0x10, 0x85, 0x67, 0x80, 0x18, 0xC9, 0x11, -0x17, 0x10, 0x85, 0x67, 0x80, 0x18, 0x97, 0x5C, -0x13, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, -0x70, 0x9A, 0x01, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0x63, 0xF3, 0x64, 0x9A, 0x8D, 0xEB, +0x30, 0x10, 0x85, 0x67, 0x80, 0x18, 0xC5, 0x14, +0x3F, 0x10, 0x85, 0x67, 0x80, 0x18, 0xB1, 0x16, +0x3B, 0x10, 0x85, 0x67, 0x00, 0x18, 0x4F, 0xD3, +0x37, 0x10, 0x85, 0x67, 0x80, 0x18, 0x60, 0x02, +0x33, 0x10, 0x85, 0x67, 0x80, 0x18, 0x45, 0x00, +0x2F, 0x10, 0x85, 0x67, 0x80, 0x18, 0xA3, 0x00, +0x2B, 0x10, 0x85, 0x67, 0x80, 0x18, 0x7B, 0x16, +0x27, 0x10, 0x85, 0x67, 0x00, 0x18, 0x64, 0xC9, +0x23, 0x10, 0x85, 0x67, 0x00, 0x18, 0x4A, 0xC9, +0x1F, 0x10, 0x85, 0x67, 0x00, 0x18, 0x29, 0xC9, +0x1B, 0x10, 0x85, 0x67, 0x80, 0x18, 0xCD, 0x14, +0x17, 0x10, 0x85, 0x67, 0x80, 0x18, 0x1D, 0x5B, +0x13, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, +0x78, 0x9A, 0x01, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0x63, 0xF3, 0x64, 0x9A, 0x8D, 0xEB, 0x63, 0xF3, 0x64, 0xDA, 0x0E, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x40, 0xC0, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x45, 0xF7, -0x18, 0x48, 0x40, 0xF1, 0x57, 0xA0, 0x40, 0xF1, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x85, 0xF7, +0x08, 0x48, 0x40, 0xF1, 0x57, 0xA0, 0x40, 0xF1, 0x78, 0xA0, 0x4E, 0xEB, 0x29, 0x23, 0x67, 0x42, 0x1B, 0x4B, 0x6C, 0x33, 0x0D, 0xE3, 0x4C, 0x32, 0x87, 0xA3, 0x55, 0xE0, 0x00, 0xF1, 0x18, 0x4D, -0x80, 0x18, 0xE3, 0x13, 0x40, 0xF1, 0x57, 0xA0, +0x80, 0x18, 0xE7, 0x16, 0x40, 0xF1, 0x57, 0xA0, 0x01, 0x4A, 0x40, 0xF1, 0x57, 0xC0, 0x40, 0xF1, 0x77, 0xA0, 0x40, 0xF1, 0x58, 0xA0, 0x6E, 0xEA, 0x06, 0x22, 0xA0, 0xF0, 0x44, 0x98, 0x02, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, 0x40, 0xF1, +0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0x40, 0xF1, 0x77, 0xA2, 0x08, 0x6C, 0x8E, 0xEB, 0x02, 0x2B, -0x40, 0xF1, 0x77, 0xC2, 0x80, 0x18, 0x73, 0x12, +0x40, 0xF1, 0x77, 0xC2, 0x80, 0x18, 0x77, 0x15, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x68, 0x45, 0xF7, 0x18, 0x48, 0xE2, 0xF5, +0x20, 0x68, 0x85, 0xF7, 0x08, 0x48, 0xE2, 0xF5, 0x42, 0xA0, 0x7F, 0x6C, 0xA0, 0xF0, 0xA7, 0x42, 0xB4, 0x35, 0x15, 0xE5, 0x62, 0xA5, 0x8C, 0xEB, 0x24, 0x2B, 0xA0, 0xF0, 0x62, 0x42, 0x74, 0x33, 0x0D, 0xE3, 0x54, 0x32, 0xA0, 0xF0, 0x8A, 0xA3, 0x55, 0xE0, 0xE2, 0xF4, 0x0B, 0x4D, 0x80, 0x18, -0xE3, 0x13, 0xE2, 0xF5, 0x42, 0xA0, 0x30, 0xF0, -0x20, 0x6C, 0xE3, 0xF1, 0x84, 0x9C, 0x54, 0x33, +0xE7, 0x16, 0xE2, 0xF5, 0x42, 0xA0, 0x30, 0xF0, +0x20, 0x6C, 0x03, 0xF2, 0x94, 0x9C, 0x54, 0x33, 0x0D, 0xE3, 0xE2, 0xF4, 0xA8, 0xA3, 0x7F, 0x4A, 0x28, 0x4A, 0xA0, 0xC4, 0xE2, 0xF4, 0x89, 0xA3, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF1, 0x68, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF2, 0x78, 0x9B, 0x54, 0x32, 0x41, 0xE0, 0x80, 0xC3, 0x82, 0x40, 0x37, 0x10, 0x01, 0x73, 0x37, 0x61, 0x54, 0x33, 0x0D, 0xE3, 0xE2, 0xF4, 0x83, 0xA3, 0xFF, 0x74, 0x0C, 0x61, 0xE2, 0xF4, 0x84, 0xA3, 0x02, 0x4D, -0x80, 0x18, 0x65, 0x13, 0xE2, 0xF5, 0x62, 0xA0, +0x80, 0x18, 0x69, 0x16, 0xE2, 0xF5, 0x62, 0xA0, 0x7F, 0x4B, 0x23, 0x4B, 0x74, 0x33, 0x01, 0xE3, 0x06, 0x10, 0x7F, 0x4A, 0x23, 0x4A, 0x54, 0x32, 0x01, 0xE2, 0x01, 0x6A, 0x4B, 0xEA, 0xA0, 0xF0, -0x4A, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0xE2, 0xF5, 0x62, 0xA2, 0x30, 0xF0, -0x20, 0x6D, 0xE3, 0xF1, 0xA4, 0x9D, 0x74, 0x34, +0x4A, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0xE2, 0xF5, 0x62, 0xA2, 0x30, 0xF0, +0x20, 0x6D, 0x03, 0xF2, 0xB4, 0x9D, 0x74, 0x34, 0x51, 0xE4, 0xE2, 0xF4, 0xC8, 0xA4, 0x7F, 0x4B, 0x28, 0x4B, 0xC0, 0xC5, 0xE2, 0xF4, 0xA9, 0xA4, -0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF1, 0x88, 0x9C, +0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF2, 0x98, 0x9C, 0x74, 0x33, 0x69, 0xE2, 0xA0, 0xC4, 0x82, 0x42, -0x80, 0x18, 0xE0, 0x11, 0x05, 0x97, 0x04, 0x90, +0x80, 0x18, 0xE4, 0x14, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x45, 0xF7, -0x18, 0x48, 0xE2, 0xF5, 0x62, 0xA0, 0xE2, 0xF5, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x85, 0xF7, +0x08, 0x48, 0xE2, 0xF5, 0x62, 0xA0, 0xE2, 0xF5, 0x43, 0xA0, 0x6E, 0xEA, 0x42, 0x22, 0x40, 0xF6, 0x5A, 0xA8, 0x09, 0xF6, 0x00, 0x72, 0x10, 0x60, 0x40, 0xF6, 0x9A, 0xA0, 0x40, 0xF6, 0x7B, 0xA0, 0xAE, 0x44, 0x6E, 0xED, 0x09, 0x25, 0x09, 0xF7, 0x01, 0x72, 0x06, 0x60, 0x09, 0xF7, 0x00, 0x72, 0x03, 0x60, 0xFF, 0x4C, 0x8E, 0xEB, 0x0D, 0x2B, -0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF7, 0x18, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x85, 0xF7, 0x08, 0x4B, 0xA0, 0xF0, 0x44, 0x9B, 0x04, 0x6C, 0x8D, 0xEA, 0x02, 0x6C, 0x8D, 0xEA, 0xA0, 0xF0, 0x44, 0xDB, -0x20, 0x10, 0x80, 0x18, 0x3C, 0x14, 0xE2, 0xF5, +0x20, 0x10, 0x80, 0x18, 0x40, 0x17, 0xE2, 0xF5, 0x42, 0xA0, 0x01, 0x4A, 0xE2, 0xF5, 0x42, 0xC0, 0xE2, 0xF5, 0x62, 0xA0, 0xE2, 0xF5, 0x43, 0xA0, 0x6E, 0xEA, 0x06, 0x22, 0xA0, 0xF0, 0x44, 0x98, 0x02, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0xE2, 0xF5, 0x62, 0xA2, 0x08, 0x6C, 0x8E, 0xEB, 0x02, 0x2B, 0xE2, 0xF5, 0x62, 0xC2, 0x80, 0x18, -0xFD, 0x11, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x01, 0x15, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF1, 0x74, 0x9B, -0x30, 0xF0, 0x20, 0x68, 0xE3, 0xF1, 0x18, 0x98, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, 0x64, 0x9B, +0x30, 0xF0, 0x20, 0x68, 0x23, 0xF2, 0x08, 0x98, 0xE0, 0x9B, 0xFF, 0x6A, 0x4C, 0xEC, 0x0C, 0xEF, 0x08, 0x5C, 0x4C, 0xED, 0x4C, 0xEE, 0xE0, 0xDB, 0x46, 0x60, 0xB0, 0x75, 0x2E, 0x61, 0xB2, 0x76, -0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, -0xBC, 0x9A, 0x01, 0x6A, 0x44, 0xEC, 0xC0, 0x9D, +0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, +0xAC, 0x9A, 0x01, 0x6A, 0x44, 0xEC, 0xC0, 0x9D, 0x00, 0xF6, 0x40, 0x34, 0xCD, 0xEC, 0x80, 0xDD, 0xC0, 0x9D, 0x40, 0x34, 0x80, 0x34, 0x8F, 0xEC, 0xCC, 0xEC, 0x80, 0xDD, 0x80, 0x9B, 0x4E, 0x10, 0xB1, 0x76, 0x80, 0xF0, 0x13, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF1, 0xBC, 0x9A, 0x01, 0x6A, +0x20, 0x6A, 0x23, 0xF2, 0xAC, 0x9A, 0x01, 0x6A, 0x44, 0xEC, 0xC0, 0x9D, 0x00, 0xF6, 0x40, 0x34, 0xCD, 0xEC, 0x80, 0xDD, 0xC0, 0x9D, 0x40, 0x34, 0x80, 0x34, 0x8F, 0xEC, 0xCC, 0xEC, 0x80, 0xDD, 0x80, 0x9B, 0x4F, 0xEA, 0x8C, 0xEA, 0x40, 0xDB, 0x7B, 0x10, 0xA0, 0x75, 0x7D, 0x61, 0xA1, 0x76, -0x08, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, -0x5C, 0x9A, 0x01, 0x6B, 0x64, 0xEC, 0xA0, 0x9A, +0x08, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, +0x4C, 0x9A, 0x01, 0x6B, 0x64, 0xEC, 0xA0, 0x9A, 0x51, 0x10, 0xA2, 0x76, 0x6F, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF1, 0x5C, 0x9A, 0x01, 0x6B, +0x20, 0x6A, 0x23, 0xF2, 0x4C, 0x9A, 0x01, 0x6B, 0x64, 0xEC, 0xA0, 0x9A, 0x5A, 0x10, 0xE8, 0x44, 0x4C, 0xEF, 0x08, 0x5F, 0xE0, 0x6A, 0x65, 0x60, 0xB0, 0x75, 0x35, 0x61, 0xB2, 0x76, 0x18, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x40, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x50, 0x9A, 0x01, 0x6E, 0xA6, 0x67, 0x00, 0x9A, 0xA4, 0xEF, 0xE5, 0x67, 0x00, 0xF6, 0xA0, 0x35, 0x0D, 0xED, 0xA0, 0xDA, 0xA0, 0x9A, 0xE0, 0x37, 0xE0, 0x37, 0xEF, 0xEF, 0xAC, 0xEF, 0xE0, 0xDA, 0x40, 0x9B, 0xC4, 0xEC, 0x86, 0x67, 0x4D, 0xEC, 0x19, 0x10, 0xB1, 0x76, 0x44, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF2, 0x40, 0x9A, 0x01, 0x6E, 0xA6, 0x67, +0x23, 0xF2, 0x50, 0x9A, 0x01, 0x6E, 0xA6, 0x67, 0x00, 0x9A, 0xA4, 0xEF, 0xE5, 0x67, 0x00, 0xF6, 0xA0, 0x35, 0x0D, 0xED, 0xA0, 0xDA, 0xA0, 0x9A, 0xE0, 0x37, 0xE0, 0x37, 0xEF, 0xEF, 0xAC, 0xEF, 0xE0, 0xDA, 0x40, 0x9B, 0xC4, 0xEC, 0xCF, 0xEC, 0x4C, 0xEC, 0x80, 0xDB, 0x29, 0x10, 0xA0, 0x75, 0x2B, 0x61, 0xA1, 0x76, 0x11, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF2, 0x40, 0x9A, 0x01, 0x6B, +0x20, 0x6A, 0x23, 0xF2, 0x50, 0x9A, 0x01, 0x6B, 0x64, 0xEF, 0xA0, 0x9A, 0x00, 0xF6, 0x60, 0x34, 0x8F, 0xEC, 0xAC, 0xEC, 0x80, 0xDA, 0x80, 0x9A, 0x60, 0x33, 0x60, 0x33, 0x8D, 0xEB, 0x13, 0x10, 0xA2, 0x76, 0x14, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF2, 0x40, 0x9A, 0x01, 0x6B, 0x64, 0xEF, +0x23, 0xF2, 0x50, 0x9A, 0x01, 0x6B, 0x64, 0xEF, 0xA0, 0x9A, 0x00, 0xF6, 0x60, 0x34, 0x8F, 0xEC, 0xAC, 0xEC, 0x80, 0xDA, 0x80, 0x9A, 0x60, 0x33, 0x60, 0x33, 0x6F, 0xEB, 0x8C, 0xEB, 0x60, 0xDA, 0xF0, 0x6A, 0x03, 0x10, 0xE2, 0x6A, 0x01, 0x10, 0xE1, 0x6A, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, 0xFF, 0x6B, 0x6C, 0xEC, 0x08, 0x5C, 0xFF, 0x63, -0x18, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, -0x44, 0x9A, 0x01, 0x6D, 0x40, 0xA2, 0x6C, 0xEA, +0x18, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, +0x54, 0x9A, 0x01, 0x6D, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x37, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF2, 0x48, 0x9A, 0x40, 0xA2, +0x20, 0x6A, 0x23, 0xF2, 0x58, 0x9A, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x30, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, 0x5C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x4C, 0x9A, 0x1C, 0x10, 0xF8, 0x4C, 0x6C, 0xEC, 0x08, 0x5C, 0xE0, 0x6A, 0x27, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF2, 0x4C, 0x9A, 0x01, 0x6D, 0x40, 0xA2, +0x23, 0xF2, 0x5C, 0x9A, 0x01, 0x6D, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x1A, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x50, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x40, 0x9A, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, -0x13, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, -0x40, 0x9A, 0x40, 0xA2, 0xA4, 0xEC, 0x85, 0x67, +0x13, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, +0x50, 0x9A, 0x40, 0xA2, 0xA4, 0xEC, 0x85, 0x67, 0x6C, 0xEC, 0x4C, 0xEC, 0x5D, 0x67, 0x80, 0xC2, 0x40, 0xA2, 0x4C, 0xEB, 0x6B, 0xEA, 0xC0, 0xF7, 0x42, 0x32, 0x03, 0x10, 0xE4, 0x6A, 0x01, 0x10, 0xE6, 0x6A, 0x01, 0x63, 0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, 0x08, 0x5C, 0x6C, 0xED, -0x20, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, -0x44, 0x9A, 0x01, 0x6E, 0x40, 0xA2, 0x6C, 0xEA, +0x20, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, +0x54, 0x9A, 0x01, 0x6E, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xCC, 0xEA, 0x48, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF2, 0x48, 0x9A, 0xC4, 0xEC, +0x20, 0x6A, 0x23, 0xF2, 0x58, 0x9A, 0xC4, 0xEC, 0x86, 0x67, 0x40, 0xA2, 0x6C, 0xEA, 0xCC, 0xEA, 0xCE, 0xEA, 0x3B, 0x2A, 0x05, 0x25, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF2, 0xB4, 0x9A, 0x24, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x54, 0x9A, +0x20, 0x6A, 0x43, 0xF2, 0xA4, 0x9A, 0x24, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x44, 0x9A, 0x29, 0x10, 0xF8, 0x4C, 0x6C, 0xEC, 0x08, 0x5C, 0xE0, 0x6A, 0x2E, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF2, 0x4C, 0x9A, 0x01, 0x6E, 0x40, 0xA2, +0x23, 0xF2, 0x5C, 0x9A, 0x01, 0x6E, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xCC, 0xEA, 0x23, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x50, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x40, 0x9A, 0xC4, 0xEC, 0x86, 0x67, 0x40, 0xA2, 0x6C, 0xEA, 0xCC, 0xEA, 0xCE, 0xEA, 0x16, 0x2A, 0x0A, 0x25, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0xB8, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0xA8, 0x9A, 0x40, 0xA5, 0x6C, 0xEA, 0x8D, 0xEA, 0x6C, 0xEA, 0x40, 0xC5, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF2, 0x58, 0x9A, 0xA0, 0xA2, 0x8F, 0xEC, +0x43, 0xF2, 0x48, 0x9A, 0xA0, 0xA2, 0x8F, 0xEC, 0x6C, 0xEC, 0xAC, 0xEC, 0x80, 0xC2, 0xF0, 0x6A, 0x20, 0xE8, 0xE5, 0x6A, 0x20, 0xE8, 0xE4, 0x6A, 0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, 0x08, 0x5C, 0x0F, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF2, 0x44, 0x9A, 0x01, 0x6D, 0x40, 0xA2, +0x23, 0xF2, 0x54, 0x9A, 0x01, 0x6D, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x1F, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x48, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x58, 0x9A, 0x13, 0x10, 0xF8, 0x4C, 0x6C, 0xEC, 0x08, 0x5C, 0xE0, 0x6A, 0x16, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF2, 0x4C, 0x9A, 0x01, 0x6D, 0x40, 0xA2, +0x23, 0xF2, 0x5C, 0x9A, 0x01, 0x6D, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x0B, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x50, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x40, 0x9A, 0x40, 0xA2, 0x4C, 0xEB, 0x67, 0xEC, 0x45, 0x67, 0x6E, 0xEA, 0xAC, 0xEA, 0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, 0x08, 0x5C, 0x1A, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF2, 0x44, 0x9A, 0x01, 0x6E, 0x40, 0xA2, +0x23, 0xF2, 0x54, 0x9A, 0x01, 0x6E, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xCC, 0xEA, 0x35, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x48, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x58, 0x9A, 0xC4, 0xEC, 0x86, 0x67, 0xA0, 0xA2, 0x6C, 0xED, 0xCC, 0xED, 0xCE, 0xED, 0x2A, 0x2D, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF2, 0x54, 0x9A, 0x1E, 0x10, +0x20, 0x6A, 0x43, 0xF2, 0x44, 0x9A, 0x1E, 0x10, 0xF8, 0x4C, 0x6C, 0xEC, 0x08, 0x5C, 0xE0, 0x6A, -0x21, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, -0x4C, 0x9A, 0x01, 0x6E, 0x40, 0xA2, 0x6C, 0xEA, +0x21, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, +0x5C, 0x9A, 0x01, 0x6E, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xCC, 0xEA, 0x16, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF2, 0x50, 0x9A, 0xC4, 0xEC, +0x20, 0x6A, 0x43, 0xF2, 0x40, 0x9A, 0xC4, 0xEC, 0x86, 0x67, 0xA0, 0xA2, 0x6C, 0xED, 0xCC, 0xED, 0xCE, 0xED, 0x0B, 0x2D, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF2, 0x58, 0x9A, 0x40, 0xA2, 0x4C, 0xEB, +0x43, 0xF2, 0x48, 0x9A, 0x40, 0xA2, 0x4C, 0xEB, 0x8C, 0xEB, 0x6E, 0xEC, 0x01, 0x5C, 0x58, 0x67, 0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, @@ -6886,92 +7153,92 @@ u8 array_mp_8822c_fw_ap[] = { 0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x04, 0x67, 0x2C, 0xE8, 0x90, 0x67, 0xA0, 0x6D, 0xA2, 0x6E, -0x80, 0x18, 0x9F, 0x14, 0x90, 0x67, 0x80, 0x18, -0x02, 0x15, 0x7D, 0x67, 0x50, 0xC3, 0x50, 0xA3, +0x80, 0x18, 0xA3, 0x17, 0x90, 0x67, 0x80, 0x18, +0x06, 0x18, 0x7D, 0x67, 0x50, 0xC3, 0x50, 0xA3, 0x09, 0x97, 0x07, 0x90, 0x2C, 0xEA, 0x08, 0x91, 0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0x24, 0x67, 0x0C, 0xE9, 0x91, 0x67, 0xAC, 0xE8, 0xA1, 0x6E, -0xA0, 0x6D, 0x80, 0x18, 0x9F, 0x14, 0x91, 0x67, -0xB0, 0x67, 0x80, 0x18, 0x28, 0x15, 0x07, 0x97, +0xA0, 0x6D, 0x80, 0x18, 0xA3, 0x17, 0x91, 0x67, +0xB0, 0x67, 0x80, 0x18, 0x2C, 0x18, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF1, 0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6D, -0xE3, 0xF1, 0xB8, 0x9D, 0x40, 0x9B, 0xA2, 0x6E, +0x23, 0xF2, 0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6D, +0x23, 0xF2, 0xA8, 0x9D, 0x40, 0x9B, 0xA2, 0x6E, 0xAC, 0xEA, 0x40, 0xDB, 0xFF, 0x6A, 0x4C, 0xEC, -0xA0, 0x6D, 0x80, 0x18, 0x9F, 0x14, 0x05, 0x97, +0xA0, 0x6D, 0x80, 0x18, 0xA3, 0x17, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, 0xB0, 0x6D, 0xB2, 0x6E, -0x80, 0x18, 0x9F, 0x14, 0x05, 0x97, 0x03, 0x63, +0x80, 0x18, 0xA3, 0x17, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, 0xB0, 0x6D, 0xB1, 0x6E, -0x80, 0x18, 0x9F, 0x14, 0x05, 0x97, 0x03, 0x63, +0x80, 0x18, 0xA3, 0x17, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, 0x04, 0x67, 0x4C, 0xE8, 0xAC, 0xEA, 0xA4, 0x72, 0x0C, 0x61, 0x90, 0x67, -0x80, 0x18, 0x55, 0x15, 0x01, 0x72, 0x04, 0x61, -0x90, 0x67, 0x80, 0x18, 0xB2, 0x15, 0x1F, 0x10, +0x80, 0x18, 0x59, 0x18, 0x01, 0x72, 0x04, 0x61, +0x90, 0x67, 0x80, 0x18, 0xB6, 0x18, 0x1F, 0x10, 0x90, 0x67, 0x00, 0x6D, 0x0D, 0x10, 0xA5, 0x72, -0x11, 0x61, 0x90, 0x67, 0x80, 0x18, 0x55, 0x15, +0x11, 0x61, 0x90, 0x67, 0x80, 0x18, 0x59, 0x18, 0x01, 0x72, 0x04, 0x61, 0x90, 0x67, 0x80, 0x18, -0xB2, 0x15, 0x18, 0x10, 0x90, 0x67, 0x01, 0x6D, -0x80, 0x18, 0xA7, 0x15, 0x90, 0x67, 0x80, 0x18, -0xB2, 0x15, 0x14, 0x10, 0x90, 0x67, 0x80, 0x18, -0x6D, 0x15, 0x01, 0x72, 0x07, 0x61, 0x90, 0x67, -0x01, 0x6D, 0x80, 0x18, 0xA7, 0x15, 0x90, 0x67, +0xB6, 0x18, 0x18, 0x10, 0x90, 0x67, 0x01, 0x6D, +0x80, 0x18, 0xAB, 0x18, 0x90, 0x67, 0x80, 0x18, +0xB6, 0x18, 0x14, 0x10, 0x90, 0x67, 0x80, 0x18, +0x71, 0x18, 0x01, 0x72, 0x07, 0x61, 0x90, 0x67, +0x01, 0x6D, 0x80, 0x18, 0xAB, 0x18, 0x90, 0x67, 0x00, 0x6D, 0x06, 0x10, 0x90, 0x67, 0x00, 0x6D, -0x80, 0x18, 0xA7, 0x15, 0x90, 0x67, 0x01, 0x6D, -0x80, 0x18, 0xA7, 0x15, 0x05, 0x97, 0x04, 0x90, +0x80, 0x18, 0xAB, 0x18, 0x90, 0x67, 0x01, 0x6D, +0x80, 0x18, 0xAB, 0x18, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, -0x4C, 0xEE, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0xA3, 0xF4, 0x79, 0xA2, 0xFF, 0xF7, +0x4C, 0xEE, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0xA3, 0xF4, 0x79, 0xA2, 0xFF, 0xF7, 0x1F, 0x69, 0x04, 0xD4, 0xAC, 0xE9, 0x05, 0xD6, 0x0B, 0x23, 0xA3, 0xF4, 0x7A, 0xA2, 0x04, 0x23, 0xA3, 0xF4, 0x97, 0xA2, 0xA5, 0x6D, 0x07, 0x10, 0xA3, 0xF4, 0x97, 0xA2, 0xA4, 0x6D, 0x03, 0x10, 0xA3, 0xF4, 0x97, 0xA2, 0xA3, 0x6D, 0x30, 0xF0, -0x20, 0x68, 0x45, 0xF7, 0x18, 0x48, 0x80, 0x18, -0xC9, 0x15, 0xA3, 0xF4, 0x5B, 0xA0, 0x7D, 0x22, -0x04, 0x94, 0xB1, 0x67, 0x80, 0x18, 0x90, 0x15, +0x20, 0x68, 0x85, 0xF7, 0x08, 0x48, 0x80, 0x18, +0xCD, 0x18, 0xA3, 0xF4, 0x5B, 0xA0, 0x7D, 0x22, +0x04, 0x94, 0xB1, 0x67, 0x80, 0x18, 0x94, 0x18, 0xA3, 0xF4, 0x59, 0xA0, 0x0B, 0x22, 0xA3, 0xF4, 0x5A, 0xA0, 0x04, 0x22, 0xA3, 0xF4, 0x97, 0xA0, 0xA5, 0x6D, 0x07, 0x10, 0xA3, 0xF4, 0x97, 0xA0, 0xA4, 0x6D, 0x03, 0x10, 0xA3, 0xF4, 0x97, 0xA0, -0xA3, 0x6D, 0x80, 0x18, 0xC9, 0x15, 0x30, 0xF0, -0x20, 0x6A, 0x09, 0xF4, 0x54, 0xA2, 0x01, 0x68, -0x5D, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, -0x5C, 0x9A, 0x60, 0xA2, 0x10, 0x6A, 0x6C, 0xEA, +0xA3, 0x6D, 0x80, 0x18, 0xCD, 0x18, 0x30, 0xF0, +0x20, 0x6A, 0x49, 0xF4, 0x44, 0xA2, 0x01, 0x68, +0x5D, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, +0x4C, 0x9A, 0x60, 0xA2, 0x10, 0x6A, 0x6C, 0xEA, 0x58, 0x2A, 0x04, 0x94, 0xB1, 0x67, 0x80, 0x18, -0x90, 0x15, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0xA3, 0xF4, 0x79, 0xA2, 0x0B, 0x23, +0x94, 0x18, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0xA3, 0xF4, 0x79, 0xA2, 0x0B, 0x23, 0xA3, 0xF4, 0x7A, 0xA2, 0x04, 0x23, 0xA3, 0xF4, 0x97, 0xA2, 0xA5, 0x6D, 0x07, 0x10, 0xA3, 0xF4, 0x97, 0xA2, 0xA4, 0x6D, 0x03, 0x10, 0xA3, 0xF4, -0x97, 0xA2, 0xA3, 0x6D, 0x80, 0x18, 0xC9, 0x15, +0x97, 0xA2, 0xA3, 0x6D, 0x80, 0x18, 0xCD, 0x18, 0xDC, 0x17, 0x04, 0x94, 0xB1, 0x67, 0x80, 0x18, -0x90, 0x15, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0xA3, 0xF4, 0x79, 0xA2, 0x0B, 0x23, +0x94, 0x18, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0xA3, 0xF4, 0x79, 0xA2, 0x0B, 0x23, 0xA3, 0xF4, 0x7A, 0xA2, 0x04, 0x23, 0xA3, 0xF4, 0x97, 0xA2, 0xA5, 0x6D, 0x07, 0x10, 0xA3, 0xF4, 0x97, 0xA2, 0xA4, 0x6D, 0x03, 0x10, 0xA3, 0xF4, -0x97, 0xA2, 0xA3, 0x6D, 0x80, 0x18, 0xC9, 0x15, -0x04, 0x94, 0xB1, 0x67, 0x80, 0x18, 0x90, 0x15, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, +0x97, 0xA2, 0xA3, 0x6D, 0x80, 0x18, 0xCD, 0x18, +0x04, 0x94, 0xB1, 0x67, 0x80, 0x18, 0x94, 0x18, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0xA3, 0xF4, 0x79, 0xA2, 0x0B, 0x23, 0xA3, 0xF4, 0x7A, 0xA2, 0x04, 0x23, 0xA3, 0xF4, 0x97, 0xA2, 0xA5, 0x6D, 0x07, 0x10, 0xA3, 0xF4, 0x97, 0xA2, 0xA4, 0x6D, 0x03, 0x10, 0xA3, 0xF4, 0x97, 0xA2, -0xA3, 0x6D, 0x80, 0x18, 0xC9, 0x15, 0x01, 0x48, +0xA3, 0x6D, 0x80, 0x18, 0xCD, 0x18, 0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, 0x05, 0x92, 0x43, 0xE8, 0xC4, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0x09, 0xF4, 0x0F, 0x4C, +0x30, 0xF0, 0x20, 0x6C, 0x29, 0xF4, 0x1F, 0x4C, 0x00, 0x6D, 0x06, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x45, 0xF7, 0x18, 0x48, 0xC0, 0xF0, 0x41, 0xA0, +0x85, 0xF7, 0x08, 0x48, 0xC0, 0xF0, 0x41, 0xA0, 0x7F, 0x6B, 0xFF, 0x69, 0x4C, 0xEB, 0xC0, 0xF0, 0x42, 0xA0, 0x2C, 0xEC, 0x2C, 0xEB, 0x01, 0x74, 0x04, 0xD3, 0x05, 0xD2, 0x5B, 0x60, 0xC0, 0xF0, @@ -6979,10 +7246,10 @@ u8 array_mp_8822c_fw_ap[] = { 0x2C, 0xEA, 0x54, 0x22, 0xC0, 0xF0, 0xA0, 0xA0, 0x01, 0x6A, 0x0F, 0x6B, 0xBA, 0x35, 0x6C, 0xEC, 0x4E, 0xED, 0x4C, 0xED, 0x2C, 0xEC, 0x80, 0x18, -0xA7, 0x15, 0xC0, 0xF0, 0xA0, 0xA0, 0xC0, 0xF0, +0xAB, 0x18, 0xC0, 0xF0, 0xA0, 0xA0, 0xC0, 0xF0, 0x80, 0xA0, 0x0F, 0x6B, 0x01, 0x6A, 0xBA, 0x35, 0x6C, 0xEC, 0x4C, 0xED, 0x2C, 0xEC, 0x2C, 0xED, -0x80, 0x18, 0xA7, 0x15, 0xC0, 0xF0, 0x60, 0xA0, +0x80, 0x18, 0xAB, 0x18, 0xC0, 0xF0, 0x60, 0xA0, 0x20, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x25, 0x22, 0x04, 0x93, 0x80, 0x6A, 0x4B, 0xEA, 0x74, 0x36, 0xC0, 0xF0, 0x61, 0xA0, 0x6C, 0xEA, 0x2C, 0xEA, @@ -6993,8 +7260,8 @@ u8 array_mp_8822c_fw_ap[] = { 0xC0, 0xF0, 0xA0, 0xA0, 0xC0, 0xF0, 0x80, 0xA0, 0x01, 0x6B, 0x0F, 0x6A, 0xBA, 0x35, 0x4C, 0xEC, 0x6E, 0xED, 0x2C, 0xEC, 0x6C, 0xED, 0x80, 0x18, -0xA7, 0x15, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0xF0, -0x78, 0xA2, 0x10, 0x6A, 0x6C, 0xEA, 0x0A, 0x22, +0xAB, 0x18, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF0, +0x68, 0xA2, 0x10, 0x6A, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x05, 0x93, 0x00, 0xF3, 0x48, 0x9A, 0xFF, 0x6C, 0x59, 0x4C, 0x00, 0x6D, 0x6C, 0x36, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, @@ -7004,19 +7271,19 @@ u8 array_mp_8822c_fw_ap[] = { 0x4F, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x06, 0xF0, 0x98, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF0, 0x88, 0xA2, 0x80, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x1D, 0x22, 0x10, 0x6A, 0x8C, 0xEA, -0x6C, 0xEA, 0x02, 0x22, 0x80, 0x18, 0x82, 0x16, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, +0x6C, 0xEA, 0x02, 0x22, 0x80, 0x18, 0x86, 0x19, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0xC0, 0xF0, 0x81, 0xA2, 0x80, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xFF, 0x6C, 0x8C, 0xEB, 0x0B, 0x23, 0xC0, 0xF0, 0xA0, 0xA2, 0x0F, 0x6B, 0x01, 0x6A, 0xAC, 0xEB, 0xBA, 0x35, 0x4E, 0xED, 0x6C, 0xEC, -0x4C, 0xED, 0x80, 0x18, 0xA7, 0x15, 0x05, 0x97, +0x4C, 0xED, 0x80, 0x18, 0xAB, 0x18, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF5, 0x68, 0x9B, 0xFF, 0xF7, 0x1F, 0x6A, +0xC2, 0xF5, 0x6C, 0x9B, 0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0x69, 0xE2, 0x00, 0x9A, 0x41, 0x45, 0x25, 0x67, 0x08, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, 0x85, 0x67, 0x2C, 0xE8, @@ -7025,39 +7292,39 @@ u8 array_mp_8822c_fw_ap[] = { 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0xFF, 0xF7, 0x1F, 0x68, 0x41, 0x45, 0x25, 0x67, 0x0C, 0xD6, 0x8C, 0xE8, 0x07, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0xC2, 0xF5, 0x48, 0x9A, 0x41, 0xE0, +0x20, 0x6A, 0xC2, 0xF5, 0x4C, 0x9A, 0x41, 0xE0, 0xC0, 0xD8, 0x1A, 0x10, 0x01, 0x6D, 0x90, 0x67, -0xAB, 0xED, 0x80, 0x18, 0xA1, 0x16, 0x04, 0xD2, +0xAB, 0xED, 0x80, 0x18, 0xA5, 0x19, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, 0x91, 0x67, 0x40, 0xEA, 0x0C, 0x93, 0x64, 0xEA, 0x43, 0x67, 0x04, 0x93, 0x2C, 0xEA, 0x2F, 0xE9, 0x6C, 0xE9, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, -0x68, 0x9B, 0x2D, 0xEA, 0x61, 0xE0, 0x40, 0xD8, +0x6C, 0x9B, 0x2D, 0xEA, 0x61, 0xE0, 0x40, 0xD8, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x01, 0x74, 0x0D, 0x60, 0x06, 0x24, 0x02, 0x74, 0x10, 0x60, 0x03, 0x74, 0x00, 0x6A, 0x1C, 0x61, 0x14, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xA8, 0x35, 0x83, 0xF2, 0x48, 0x9A, +0x20, 0x6A, 0xA8, 0x35, 0xA3, 0xF2, 0x58, 0x9A, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA8, 0x35, -0x83, 0xF2, 0x4C, 0x9A, 0x05, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF2, 0x50, 0x9A, 0xA8, 0x35, +0xA3, 0xF2, 0x5C, 0x9A, 0x05, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF2, 0x40, 0x9A, 0xA8, 0x35, 0x55, 0xE5, 0x40, 0x9D, 0x20, 0xE8, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF2, 0x54, 0x9A, 0xA8, 0x35, +0x20, 0x6A, 0xC3, 0xF2, 0x44, 0x9A, 0xA8, 0x35, 0x55, 0xE5, 0x40, 0x9D, 0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x49, 0xF1, 0x10, 0x4A, 0x88, 0x34, 0x91, 0xE2, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, 0x7C, 0x9A, +0x89, 0xF1, 0x00, 0x4A, 0x88, 0x34, 0x91, 0xE2, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF5, 0xA0, 0x35, -0xCC, 0xEB, 0x30, 0xF0, 0x20, 0x6E, 0xE3, 0xF0, -0xCC, 0x9E, 0xC0, 0xF3, 0x44, 0x9A, 0x80, 0xAC, +0xCC, 0xEB, 0x30, 0xF0, 0x20, 0x6E, 0x23, 0xF1, +0xC0, 0x9E, 0xC0, 0xF3, 0x44, 0x9A, 0x80, 0xAC, 0xAD, 0xEB, 0x01, 0x6D, 0xAB, 0xED, 0x6C, 0xEE, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6B, 0x8C, 0xEB, 0xFF, 0xF7, 0x1F, 0x6A, 0x81, 0x46, 0x06, 0x67, 0xAC, 0xEA, 0x06, 0x2C, -0x83, 0x67, 0xA2, 0x67, 0x80, 0x18, 0xC9, 0x16, +0x83, 0x67, 0xA2, 0x67, 0x80, 0x18, 0xCD, 0x19, 0x02, 0x67, 0x0D, 0x10, 0x83, 0x67, 0xA2, 0x67, -0x80, 0x18, 0xC9, 0x16, 0x22, 0x67, 0x30, 0xF0, +0x80, 0x18, 0xCD, 0x19, 0x22, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, 0x90, 0x67, 0x2C, 0xE8, 0x40, 0xEA, 0x06, 0xEA, 0x50, 0x67, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, @@ -7066,12 +7333,12 @@ u8 array_mp_8822c_fw_ap[] = { 0xFF, 0xF7, 0x1F, 0x69, 0x01, 0x4A, 0x0C, 0xD6, 0x0D, 0xD7, 0x8C, 0xE8, 0xAC, 0xE9, 0x04, 0x2A, 0x90, 0x67, 0xB1, 0x67, 0xC7, 0x67, 0x15, 0x10, -0xB1, 0x67, 0x90, 0x67, 0x80, 0x18, 0xC9, 0x16, +0xB1, 0x67, 0x90, 0x67, 0x80, 0x18, 0xCD, 0x19, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x0C, 0x94, 0xA0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x0D, 0x96, 0x90, 0x67, 0xB1, 0x67, 0xC4, 0xEA, 0x0C, 0x92, 0x4C, 0xEE, 0x4F, 0xEB, 0x04, 0x92, 0x4C, 0xEB, -0x6D, 0xEE, 0x80, 0x18, 0xDC, 0x16, 0x30, 0xF0, +0x6D, 0xEE, 0x80, 0x18, 0xE0, 0x19, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, @@ -7079,8 +7346,8 @@ u8 array_mp_8822c_fw_ap[] = { 0x8C, 0xEA, 0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x25, 0x67, 0x01, 0x60, 0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, -0x64, 0x9B, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF5, 0x68, 0x9B, 0x69, 0xE2, 0x00, 0x9A, +0x68, 0x9B, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF5, 0x6C, 0x9B, 0x69, 0xE2, 0x00, 0x9A, 0x41, 0x41, 0x08, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, 0x91, 0x67, 0x2C, 0xE8, 0x40, 0xEA, 0x06, 0xEA, 0x50, 0x67, 0x07, 0x97, @@ -7090,25 +7357,25 @@ u8 array_mp_8822c_fw_ap[] = { 0x0C, 0xD6, 0x8C, 0xE8, 0x16, 0x2A, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xC2, 0xF5, 0x44, 0x9A, 0x41, 0xE0, 0x0C, 0x92, +0xC2, 0xF5, 0x48, 0x9A, 0x41, 0xE0, 0x0C, 0x92, 0x3A, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, -0x48, 0x9A, 0x0C, 0x93, 0x41, 0xE0, 0x60, 0xD8, +0x4C, 0x9A, 0x0C, 0x93, 0x41, 0xE0, 0x60, 0xD8, 0x33, 0x10, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, 0x44, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, 0x48, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, -0x48, 0x9A, 0x49, 0xE0, 0x40, 0x9A, 0x91, 0x67, +0x4C, 0x9A, 0x49, 0xE0, 0x40, 0x9A, 0x91, 0x67, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x0C, 0x93, 0x64, 0xEA, 0x43, 0x67, 0x04, 0x93, 0x2C, 0xEA, 0x2F, 0xE9, 0x6C, 0xE9, 0x1F, 0xF7, 0x00, 0x6B, 0x0C, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x2D, 0xEA, 0x01, 0x60, 0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, -0x64, 0x9B, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF5, 0x68, 0x9B, 0x61, 0xE0, 0x40, 0xD8, +0x68, 0x9B, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF5, 0x6C, 0x9B, 0x61, 0xE0, 0x40, 0xD8, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0x03, 0xF0, 0x08, 0x6B, +0x85, 0xF7, 0x08, 0x4A, 0x03, 0xF0, 0x08, 0x6B, 0xE3, 0xF1, 0x78, 0xDA, 0x05, 0xF1, 0x00, 0x4B, 0xE3, 0xF1, 0x7C, 0xDA, 0x02, 0xF1, 0x00, 0x4B, 0x03, 0xF2, 0x60, 0xDA, 0x00, 0xF1, 0x00, 0x4B, @@ -7133,39 +7400,39 @@ u8 array_mp_8822c_fw_ap[] = { 0x00, 0x6A, 0x08, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x40, 0xA8, 0x01, 0x4A, 0x40, 0xC8, 0x30, 0xF0, -0x20, 0x6A, 0x04, 0x95, 0x05, 0x96, 0xE2, 0xF6, -0xFC, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x09, 0xF4, -0x18, 0x4C, 0x80, 0x18, 0x7F, 0x57, 0x0C, 0x93, +0x20, 0x6A, 0x04, 0x95, 0x05, 0x96, 0x22, 0xF7, +0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x49, 0xF4, +0x08, 0x4C, 0x80, 0x18, 0x05, 0x56, 0x0C, 0x93, 0x6C, 0xEA, 0x0D, 0x93, 0x6E, 0xEA, 0x03, 0x22, 0x40, 0xA8, 0x23, 0xEA, 0xE3, 0x61, 0x40, 0xA8, 0x09, 0x97, 0x07, 0x90, 0x23, 0xEA, 0x08, 0x91, 0x58, 0x67, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF2, 0x60, 0x9A, 0x7F, 0x6A, 0xFD, 0x67, +0xC3, 0xF2, 0x70, 0x9A, 0x7F, 0x6A, 0xFD, 0x67, 0x80, 0xA3, 0x01, 0x6D, 0x8C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x44, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0x54, 0x9A, 0xD2, 0xA7, 0x02, 0x6B, 0x80, 0xA2, 0x6B, 0xEB, 0xCC, 0xEB, 0xAC, 0xEC, 0x8D, 0xEB, 0x72, 0xC7, 0x02, 0x6B, 0x70, 0xC7, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF2, 0x68, 0x9B, 0xAF, 0xCF, 0xFF, 0x6A, -0xA0, 0xAB, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF7, -0xF0, 0x9B, 0x4C, 0xED, 0xB4, 0x35, 0xF5, 0xE5, +0xC3, 0xF2, 0x78, 0x9B, 0xAF, 0xCF, 0xFF, 0x6A, +0xA0, 0xAB, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF7, +0xF4, 0x9B, 0x4C, 0xED, 0xB4, 0x35, 0xF5, 0xE5, 0x60, 0xA5, 0x40, 0x6E, 0x4C, 0xEB, 0xCD, 0xEB, 0x4C, 0xEB, 0x60, 0xC5, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF2, 0x6C, 0x9B, 0xA0, 0xAB, 0x4C, 0xED, +0xC3, 0xF2, 0x7C, 0x9B, 0xA0, 0xAB, 0x4C, 0xED, 0xB4, 0x35, 0xF5, 0xE5, 0x60, 0xA5, 0x4C, 0xEB, 0xCD, 0xEB, 0x4C, 0xEB, 0x60, 0xC5, 0x80, 0x18, -0x5F, 0x4B, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x6E, 0x4B, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, -0x42, 0xF6, 0xA0, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0x42, 0xF6, 0x84, 0x9C, 0x60, 0x9D, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, 0x8C, 0xEB, +0x62, 0xF6, 0xA8, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x62, 0xF6, 0x8C, 0x9C, 0x60, 0x9D, 0x30, 0xF0, +0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0x8C, 0xEB, 0xE2, 0xF5, 0x64, 0xDA, 0x60, 0x9D, 0x8C, 0xEB, 0xE2, 0xF5, 0x70, 0xDA, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, 0x4C, 0x9A, -0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF6, -0x44, 0x9A, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, 0x54, 0x9A, +0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, +0x4C, 0x9A, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x40, 0x98, 0x82, 0x46, 0x26, 0x67, 0x40, 0xEA, 0x04, 0xD2, @@ -7178,7 +7445,7 @@ u8 array_mp_8822c_fw_ap[] = { 0x06, 0x93, 0x60, 0x34, 0x4D, 0xEC, 0xE7, 0xF7, 0x1F, 0x6A, 0x4C, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x70, 0x9A, 0x91, 0xE5, 0x40, 0xEB, -0x30, 0xF0, 0x20, 0x6B, 0x28, 0xF5, 0x7C, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x68, 0xF5, 0x6C, 0x9B, 0x29, 0xE2, 0x43, 0xEB, 0x02, 0x60, 0x6F, 0xEB, 0x69, 0xE2, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, @@ -7193,11 +7460,11 @@ u8 array_mp_8822c_fw_ap[] = { 0x20, 0xF4, 0x4C, 0x9A, 0x85, 0x67, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0x8C, 0xEA, 0x0B, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF1, 0x6C, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0x83, 0xF1, 0x88, 0x9C, 0x40, 0x9B, +0x20, 0x6A, 0xE3, 0xF1, 0x60, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xA3, 0xF1, 0x9C, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF1, 0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0x43, 0xF3, 0x88, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, +0xE3, 0xF1, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x63, 0xF3, 0x90, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, 0x40, 0xDB, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xEC, 0x07, 0x6B, 0x8C, 0xEB, 0x4C, 0xED, 0x8E, 0x34, 0x42, 0xF4, 0x10, 0x4C, 0x36, 0x25, 0x1F, 0xF7, @@ -7205,28 +7472,28 @@ u8 array_mp_8822c_fw_ap[] = { 0x01, 0x60, 0x21, 0x2D, 0x1F, 0xF7, 0x00, 0x6A, 0x8C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, -0xA4, 0x9A, 0xB5, 0xE4, 0x80, 0xA5, 0x0B, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, 0xA4, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, 0x48, 0x9A, +0xA8, 0x9A, 0xB5, 0xE4, 0x80, 0xA5, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, 0xA8, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, 0x4C, 0x9A, 0xB5, 0xE4, 0x51, 0xE4, 0x80, 0xA4, 0x00, 0xF6, 0x80, 0x34, 0x01, 0x6A, 0x00, 0xF6, 0x83, 0x34, 0x44, 0xEB, 0x8D, 0xEA, 0x36, 0x10, 0x30, 0xF0, -0x20, 0x6D, 0xC2, 0xF5, 0xA8, 0x9D, 0x01, 0x6E, +0x20, 0x6D, 0xC2, 0xF5, 0xAC, 0x9D, 0x01, 0x6E, 0xC4, 0xEB, 0xB1, 0xE4, 0xA0, 0xA4, 0x00, 0xF6, 0xA0, 0x35, 0x00, 0xF6, 0xA3, 0x35, 0xCD, 0xED, 0x3A, 0x10, 0x1F, 0xF7, 0x00, 0x6D, 0x8C, 0xED, 0x02, 0xF0, 0x00, 0x75, 0x01, 0x60, 0x25, 0x2D, 0x1F, 0xF7, 0x00, 0x6A, 0x8C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x07, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0xC2, 0xF5, 0xA4, 0x9A, 0xB5, 0xE4, +0x20, 0x6A, 0xC2, 0xF5, 0xA8, 0x9A, 0xB5, 0xE4, 0x80, 0xA5, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0xC2, 0xF5, 0xA4, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0xC2, 0xF5, 0x48, 0x9A, 0xB5, 0xE4, 0x51, 0xE4, +0xC2, 0xF5, 0xA8, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0xC2, 0xF5, 0x4C, 0x9A, 0xB5, 0xE4, 0x51, 0xE4, 0x80, 0xA4, 0x01, 0x6A, 0x00, 0xF6, 0x80, 0x34, 0x44, 0xEB, 0x00, 0xF6, 0x83, 0x34, 0x4F, 0xEA, 0x8C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x40, 0xC5, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6D, 0xC2, 0xF5, -0xA8, 0x9D, 0x01, 0x6E, 0xC4, 0xEB, 0xB1, 0xE4, +0xAC, 0x9D, 0x01, 0x6E, 0xC4, 0xEB, 0xB1, 0xE4, 0xA0, 0xA4, 0xCF, 0xEE, 0x00, 0xF6, 0xA0, 0x35, 0x00, 0xF6, 0xA3, 0x35, 0xCC, 0xED, 0x4C, 0xED, 0xA0, 0xC4, 0x20, 0xE8, 0x00, 0x00, 0x00, 0x00, @@ -11924,392 +12191,6 @@ u8 array_mp_8822c_fw_ap[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x06, 0xD4, 0x09, 0xD7, 0x07, 0xD5, 0x08, 0xD6, 0x06, 0x04, 0x40, 0xEA, @@ -12319,23 +12200,23 @@ u8 array_mp_8822c_fw_ap[] = { 0x27, 0x67, 0x1F, 0x22, 0x1F, 0xF7, 0x00, 0x6A, 0xAC, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, -0x44, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0xC2, 0xF5, 0x48, 0x9A, 0x49, 0xE0, 0x40, 0x9A, +0x48, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xC2, 0xF5, 0x4C, 0x9A, 0x49, 0xE0, 0x40, 0x9A, 0x0C, 0x94, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x0C, 0x93, 0x24, 0xEA, 0x6F, 0xEA, 0x04, 0x93, 0x6C, 0xEA, 0x4D, 0xE9, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, 0x44, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, 0x48, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, -0x48, 0x9A, 0x41, 0xE0, 0x20, 0xD8, 0x09, 0x97, +0x4C, 0x9A, 0x41, 0xE0, 0x20, 0xD8, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x1F, 0xF7, 0x00, 0x6A, 0xAC, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x26, 0x67, 0x01, 0x60, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, 0x44, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, 0x48, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, -0x48, 0x9A, 0x55, 0xE5, 0x30, 0xF0, 0x20, 0x6A, +0x4C, 0x9A, 0x55, 0xE5, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0x9D, 0xA0, 0xF3, 0x44, 0x9A, 0x91, 0x67, 0x2C, 0xE8, 0x40, 0xEA, 0x06, 0xEA, 0x50, 0x67, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, @@ -12348,1541 +12229,1549 @@ u8 array_mp_8822c_fw_ap[] = { 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x85, 0x67, 0xA6, 0x67, 0xC7, 0x67, 0x00, 0x18, -0x15, 0xC8, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0x6A, 0x8C, 0xEA, 0x75, 0xF2, 0xA4, 0x42, -0x30, 0xF0, 0x20, 0x68, 0x45, 0xF7, 0x18, 0x48, -0xA4, 0x35, 0x15, 0xE5, 0xC8, 0xA5, 0x32, 0xF5, -0x66, 0x42, 0x03, 0x6D, 0x48, 0x34, 0x44, 0x32, -0xAC, 0xEE, 0x09, 0xE2, 0x11, 0xE4, 0xC0, 0x36, -0xEA, 0xF4, 0x51, 0xA2, 0x68, 0x33, 0xFE, 0x65, -0x0D, 0xE3, 0xCA, 0xF4, 0x3D, 0xA4, 0xCA, 0xF4, -0xDE, 0xA4, 0xCA, 0xF4, 0x9F, 0xA4, 0xE4, 0xA3, -0xAC, 0xEA, 0x01, 0x6B, 0x6C, 0xE9, 0x6C, 0xEE, -0x6C, 0xEC, 0x40, 0x32, 0x6C, 0xEF, 0x30, 0x31, -0x7F, 0x67, 0x48, 0x32, 0xC4, 0x36, 0x94, 0x34, -0xD9, 0xE7, 0x91, 0xE1, 0x4D, 0xE3, 0x30, 0xF0, -0x20, 0x69, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0xD6, -0x04, 0xD3, 0xE2, 0xF6, 0xD8, 0x9A, 0xC0, 0xF3, -0x64, 0x99, 0x05, 0xD4, 0xFC, 0x4D, 0x03, 0xF3, -0x00, 0x6C, 0x40, 0xEB, 0x06, 0x92, 0x05, 0x96, -0x04, 0x93, 0xE3, 0xF3, 0x10, 0x6C, 0x4D, 0xEE, -0xC0, 0xF3, 0x44, 0x99, 0x6D, 0xEE, 0xFF, 0xF7, -0x1F, 0x6D, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6E, -0xE2, 0xF5, 0x18, 0x4E, 0xC0, 0xF3, 0x44, 0x99, -0xA0, 0x9E, 0x6A, 0xF7, 0xD8, 0xA0, 0xE3, 0xF3, -0x10, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF5, 0x18, 0x4B, 0xC0, 0xF3, 0x44, 0x99, -0x6A, 0xF7, 0xD8, 0xA0, 0xA0, 0x9B, 0xE3, 0xF3, -0x10, 0x6C, 0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, -0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, 0x00, 0x6B, -0xC3, 0xF4, 0x7B, 0xC2, 0x30, 0xF0, 0x20, 0x6B, -0x29, 0xF4, 0x13, 0x4B, 0x03, 0xF5, 0x68, 0xDA, -0x00, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, -0x6C, 0x9B, 0x54, 0x34, 0x01, 0x4A, 0x71, 0xE4, -0xA0, 0xA4, 0xF8, 0x6B, 0x80, 0x68, 0xAC, 0xEB, -0x60, 0xC4, 0xFF, 0x6B, 0x6C, 0xEA, 0x4E, 0xE8, -0xF0, 0x28, 0x80, 0x18, 0x52, 0x45, 0x30, 0xF0, -0x20, 0x6A, 0x49, 0xF4, 0x0A, 0xC2, 0x80, 0x18, -0xDE, 0x48, 0x80, 0x18, 0x58, 0x45, 0x05, 0x97, -0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0xD1, 0x08, 0xD0, 0x0A, 0xD4, -0x44, 0x67, 0x82, 0x10, 0x25, 0x73, 0x04, 0x60, -0x60, 0xA5, 0x60, 0xC2, 0x01, 0x4A, 0x7B, 0x10, -0x61, 0x85, 0x62, 0x73, 0x7D, 0x67, 0x20, 0x61, -0x62, 0x85, 0x78, 0x73, 0x03, 0x60, 0x58, 0x73, -0x7D, 0x67, 0x1A, 0x61, 0x82, 0x85, 0x60, 0xA6, -0x78, 0x6F, 0xEE, 0xEC, 0x30, 0xF0, 0x20, 0x6F, -0x72, 0x30, 0x03, 0xF4, 0x14, 0x4F, 0xE1, 0xE0, -0x00, 0xA0, 0x01, 0x5C, 0x98, 0x67, 0x94, 0x34, -0x8D, 0xE8, 0x3D, 0x67, 0x00, 0xC1, 0x0F, 0x68, -0x6C, 0xE8, 0xFD, 0xE0, 0x60, 0xA7, 0x02, 0x4D, -0x8D, 0xEB, 0x61, 0xC1, 0x00, 0xF0, 0x02, 0x03, -0x81, 0x85, 0x77, 0x74, 0x26, 0x61, 0x82, 0x85, -0x78, 0x74, 0x02, 0x60, 0x58, 0x74, 0x21, 0x61, -0x80, 0xAE, 0x06, 0xD3, 0x07, 0xD4, 0x82, 0x85, -0x78, 0x74, 0xF8, 0x67, 0x01, 0x5F, 0x18, 0x67, -0x14, 0x30, 0x18, 0x65, 0x0C, 0x6C, 0x07, 0x97, -0x0F, 0x68, 0x30, 0xF0, 0x20, 0x69, 0xE7, 0xEC, -0x0C, 0xEF, 0x03, 0xF4, 0x14, 0x49, 0x3D, 0xE7, -0xE0, 0xA7, 0x06, 0x90, 0x38, 0x67, 0x2D, 0xEF, -0xFC, 0x4C, 0xE0, 0xC0, 0x01, 0x48, 0xE4, 0x44, -0x06, 0xD0, 0xED, 0x2F, 0x04, 0x4B, 0x02, 0x4D, -0x25, 0x10, 0x81, 0x85, 0x78, 0x74, 0x02, 0x60, -0x58, 0x74, 0x20, 0x61, 0x81, 0x85, 0x20, 0x9E, -0x06, 0xD3, 0x78, 0x74, 0x98, 0x67, 0x01, 0x5C, -0xF8, 0x67, 0xF4, 0x37, 0x07, 0xD1, 0x1F, 0x65, -0x1C, 0x6C, 0x07, 0x97, 0x0F, 0x68, 0x30, 0xF0, -0x20, 0x69, 0xE6, 0xEC, 0x0C, 0xEF, 0x03, 0xF4, -0x14, 0x49, 0x3D, 0xE7, 0xE0, 0xA7, 0x06, 0x91, -0x18, 0x67, 0x0D, 0xEF, 0xFC, 0x4C, 0xE0, 0xC1, -0x01, 0x49, 0xE4, 0x44, 0x06, 0xD1, 0xED, 0x2F, -0x08, 0x4B, 0x01, 0x4D, 0x9D, 0x67, 0x04, 0x10, -0xE0, 0xA4, 0x01, 0x4C, 0xE0, 0xC2, 0x01, 0x4A, -0x63, 0xEC, 0xFA, 0x61, 0x04, 0x4E, 0x01, 0x4D, -0x60, 0x85, 0x7F, 0xF7, 0x1B, 0x2B, 0x0A, 0x94, -0x01, 0x24, 0x60, 0xC2, 0x0A, 0x97, 0x09, 0x91, -0x08, 0x90, 0xEB, 0xE2, 0x05, 0x63, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x01, 0x6B, 0x45, 0xF7, -0x18, 0x4A, 0x6B, 0xEB, 0x07, 0xF3, 0x6C, 0xC2, -0x07, 0xF3, 0x6D, 0xC2, 0x07, 0xF3, 0x6E, 0xC2, -0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x00, 0xF0, 0x12, 0x02, 0x00, 0xF0, 0x1E, 0x03, -0x00, 0x6D, 0xA0, 0xC2, 0x01, 0x4A, 0x6A, 0xEA, -0xFB, 0x61, 0x61, 0xA4, 0x40, 0xA4, 0x02, 0x5B, -0x29, 0x60, 0x80, 0x6C, 0x8B, 0xEC, 0x7C, 0x33, -0x4D, 0xEC, 0x6D, 0xE2, 0xBD, 0x67, 0x92, 0xC5, -0x61, 0xF1, 0x13, 0x4B, 0x30, 0xF0, 0x20, 0x6C, -0x45, 0xF7, 0x18, 0x4C, 0x6C, 0x33, 0x6D, 0xE4, -0x04, 0x4B, 0x00, 0xF0, 0x13, 0x02, 0x00, 0xF0, -0x1B, 0x04, 0xA0, 0xAB, 0xA0, 0xC2, 0xA2, 0x35, -0xA1, 0xC2, 0x02, 0x4A, 0x00, 0x6D, 0x8A, 0xEA, -0xA0, 0xCB, 0x02, 0x4B, 0xF6, 0x61, 0x0D, 0x6A, -0x7D, 0x67, 0x50, 0xC3, 0x09, 0x6A, 0x4F, 0xCB, -0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, -0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0x68, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0xE3, 0xF4, 0x64, 0xC2, 0x69, 0xA4, -0xC3, 0xF4, 0x79, 0xC2, 0x6A, 0xA4, 0xE3, 0xF4, -0x63, 0xC2, 0xAB, 0xA4, 0x0F, 0x6B, 0xAC, 0xEB, -0xE3, 0xF4, 0x6D, 0xC2, 0x6B, 0xA4, 0x72, 0x33, -0xE3, 0xF4, 0x6A, 0xC2, 0x8E, 0xA4, 0x01, 0x6B, -0x8C, 0xEB, 0xC3, 0xF4, 0x7B, 0xC2, 0x30, 0xF0, -0x20, 0x6B, 0x29, 0xF4, 0x13, 0x4B, 0x03, 0xF5, -0x68, 0xDA, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, -0x60, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0xE3, 0xF4, 0x64, 0xC2, 0x61, 0xA4, -0xC3, 0xF4, 0x79, 0xC2, 0x62, 0xA4, 0xE3, 0xF4, -0x63, 0xC2, 0xA3, 0xA4, 0x0F, 0x6B, 0xAC, 0xEB, -0xE3, 0xF4, 0x6D, 0xC2, 0x63, 0xA4, 0x72, 0x33, -0xE3, 0xF4, 0x6A, 0xC2, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, -0x0E, 0x72, 0x03, 0x60, 0x11, 0x72, 0x05, 0x60, -0x08, 0x10, 0x85, 0x67, 0x80, 0x18, 0x71, 0x11, -0x19, 0x10, 0x85, 0x67, 0x80, 0x18, 0x0C, 0x41, -0x15, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, -0x70, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF7, -0x90, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0x63, 0xF3, 0x64, 0x9A, 0x8D, 0xEB, 0x63, 0xF3, -0x64, 0xDA, 0xFF, 0x6A, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, -0x0E, 0xD1, 0x0D, 0xD0, 0x42, 0xA4, 0x00, 0xA4, -0x21, 0xA4, 0x0A, 0xD2, 0x63, 0xA4, 0x00, 0xF0, -0x16, 0x02, 0x20, 0xF0, 0x02, 0x04, 0x00, 0x6D, -0xA0, 0xC2, 0x01, 0x4A, 0x8A, 0xEA, 0xFB, 0x61, -0x01, 0x6A, 0x6C, 0xEA, 0x10, 0x22, 0x04, 0x04, -0x00, 0xF0, 0x11, 0x05, 0x80, 0x18, 0x50, 0x47, -0x7D, 0x67, 0x50, 0xA3, 0x01, 0x6C, 0x96, 0xC3, -0x57, 0xC3, 0x51, 0xA3, 0x58, 0xC3, 0x26, 0x6A, -0x54, 0xC3, 0x03, 0x6A, 0x51, 0xCB, 0x0A, 0x95, -0x01, 0x6A, 0x4C, 0xED, 0x1E, 0x25, 0x1E, 0x30, -0xE0, 0xF0, 0x13, 0x20, 0x3E, 0x31, 0xE0, 0xF0, -0x10, 0x21, 0xBD, 0x67, 0x56, 0xC5, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, 0x89, 0xF0, -0x78, 0x9A, 0x62, 0x34, 0x77, 0xC5, 0x00, 0xF6, -0x62, 0x33, 0x7A, 0xC5, 0x0D, 0x6B, 0x74, 0xC5, -0x05, 0x6B, 0x98, 0xC5, 0x71, 0xCD, 0x82, 0x34, -0x00, 0x6B, 0x99, 0xC5, 0x89, 0xF0, 0x78, 0xDA, -0xD8, 0x10, 0x0A, 0x93, 0x02, 0x6C, 0x8C, 0xEB, -0x31, 0x23, 0xDD, 0x67, 0x1E, 0x32, 0x96, 0xC6, -0x17, 0x2A, 0xC4, 0xF4, 0x6C, 0x40, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, 0x64, 0x33, -0x4D, 0xE3, 0x82, 0xAB, 0x44, 0xF4, 0x0C, 0x48, -0x04, 0x30, 0x49, 0xE0, 0x97, 0xC6, 0x82, 0x34, -0x98, 0xC6, 0x82, 0xAA, 0xA2, 0xCB, 0xA2, 0xCA, -0x99, 0xC6, 0x82, 0x34, 0x9A, 0xC6, 0x04, 0x10, -0x16, 0x6A, 0x4B, 0xEA, 0x7D, 0x67, 0x57, 0xC3, -0x3E, 0x32, 0x4E, 0x2A, 0xC4, 0xF4, 0x6C, 0x41, -0x30, 0xF0, 0x20, 0x6A, 0x64, 0x33, 0x45, 0xF7, -0x18, 0x4A, 0x4D, 0xE3, 0x82, 0xAB, 0xBD, 0x67, -0x44, 0xF4, 0x0C, 0x49, 0x9B, 0xC5, 0x82, 0x34, -0x9C, 0xC5, 0x34, 0x10, 0x0A, 0x95, 0x08, 0x6A, -0xAC, 0xEA, 0x43, 0x22, 0xDD, 0x67, 0x1E, 0x32, -0x96, 0xC6, 0x17, 0x2A, 0xC4, 0xF4, 0x8C, 0x40, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0x84, 0x34, 0x51, 0xE4, 0xA2, 0xAC, 0x44, 0xF5, -0x0C, 0x48, 0x04, 0x30, 0x49, 0xE0, 0xB7, 0xC6, -0xA2, 0x35, 0xB8, 0xC6, 0xA2, 0xAA, 0x62, 0xCC, -0x62, 0xCA, 0xB9, 0xC6, 0xA2, 0x35, 0xBA, 0xC6, -0x04, 0x10, 0x16, 0x6A, 0x4B, 0xEA, 0x7D, 0x67, -0x57, 0xC3, 0x3E, 0x32, 0x19, 0x2A, 0xC4, 0xF4, -0x6C, 0x41, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0x33, -0x45, 0xF7, 0x18, 0x4A, 0x4D, 0xE3, 0x82, 0xAB, -0xBD, 0x67, 0x44, 0xF5, 0x0C, 0x49, 0x9B, 0xC5, -0x82, 0x34, 0x9C, 0xC5, 0x24, 0x31, 0x49, 0xE1, -0x82, 0xAA, 0x9D, 0xC5, 0x82, 0x34, 0x9E, 0xC5, -0x00, 0x6C, 0x82, 0xCB, 0x82, 0xCA, 0x04, 0x10, -0x16, 0x6A, 0x4B, 0xEA, 0xDD, 0x67, 0x5B, 0xC6, -0x0D, 0x6A, 0x7D, 0x67, 0x54, 0xC3, 0x09, 0x6A, -0x56, 0x10, 0x0A, 0x94, 0x56, 0x2C, 0x1E, 0x32, -0x24, 0x2A, 0x44, 0xF3, 0x6C, 0x40, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, 0x64, 0x33, -0x4D, 0xE3, 0x80, 0xAB, 0xBD, 0x67, 0x16, 0xC5, -0x97, 0xC5, 0x82, 0x34, 0x98, 0xC5, 0xC4, 0xF3, -0x8C, 0x40, 0x84, 0x34, 0x49, 0xE4, 0x80, 0xAA, -0x14, 0x30, 0xC7, 0x45, 0x99, 0xC5, 0x82, 0x34, -0x9A, 0xC5, 0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF7, -0x94, 0x9C, 0x21, 0x4E, 0xC0, 0xAE, 0x81, 0xE0, -0x80, 0xA0, 0xC0, 0xCB, 0xC0, 0xCA, 0x9B, 0xC5, -0x02, 0x10, 0x9D, 0x67, 0x16, 0xC4, 0x3E, 0x32, -0x24, 0x2A, 0x44, 0xF3, 0x6C, 0x41, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, 0x64, 0x33, -0x4D, 0xE3, 0x80, 0xAB, 0xBD, 0x67, 0x3C, 0xC5, -0x9D, 0xC5, 0x82, 0x34, 0x9E, 0xC5, 0xC4, 0xF3, -0x8C, 0x41, 0x84, 0x34, 0x49, 0xE4, 0x80, 0xAA, -0x34, 0x31, 0x9F, 0xC5, 0x82, 0x34, 0x20, 0xF0, -0x80, 0xC5, 0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF7, -0x94, 0x9C, 0x85, 0xE1, 0x80, 0xA1, 0x20, 0xF0, -0x81, 0xC5, 0x00, 0x6C, 0x80, 0xCB, 0x80, 0xCA, -0x02, 0x10, 0x5D, 0x67, 0x3C, 0xC2, 0x04, 0x6A, -0x7D, 0x67, 0x54, 0xC3, 0x0C, 0x6A, 0x51, 0xCB, -0x04, 0x10, 0x9D, 0x67, 0x04, 0x6B, 0x74, 0xC4, -0x51, 0xCC, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, -0x5C, 0x9A, 0x05, 0x04, 0x40, 0xEA, 0x0F, 0x97, -0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, -0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, -0x00, 0x6A, 0x10, 0xD4, 0x01, 0x68, 0x62, 0x67, -0xA0, 0xA4, 0x0E, 0x25, 0xFF, 0x6D, 0x01, 0x4B, -0xAC, 0xEB, 0x01, 0x4A, 0x0B, 0x73, 0xAC, 0xEA, -0x03, 0x61, 0x01, 0x48, 0xAC, 0xE8, 0x00, 0x6B, -0x37, 0x72, 0x01, 0x4C, 0xF1, 0x61, 0x37, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF7, 0x18, 0x4B, -0x07, 0xF3, 0x90, 0xA3, 0x0F, 0x5C, 0x01, 0x4C, -0x01, 0x61, 0x00, 0x6C, 0x07, 0xF3, 0x90, 0xC3, -0x30, 0xF0, 0x20, 0x6B, 0x6D, 0xF2, 0x68, 0xA3, -0x0B, 0x6D, 0x2F, 0x40, 0x70, 0x33, 0x0A, 0xD3, -0x0A, 0x94, 0xFF, 0x6B, 0x6C, 0xE9, 0x6C, 0xEC, -0x0A, 0xD4, 0x01, 0x6C, 0x13, 0xE4, 0xB8, 0xEC, -0x12, 0xEC, 0x91, 0xE2, 0x6C, 0xEC, 0x09, 0xD4, -0x00, 0x6A, 0x01, 0x4C, 0x0B, 0xD4, 0x08, 0xD2, -0x3C, 0x10, 0x08, 0x94, 0x0B, 0x6B, 0x0A, 0x95, -0x78, 0xEC, 0x9D, 0x67, 0x12, 0xEB, 0x4C, 0xEB, -0x0F, 0x6A, 0x2C, 0xEA, 0xAD, 0xEA, 0x08, 0x95, -0x52, 0xC4, 0x4F, 0x40, 0xAE, 0xEA, 0x07, 0x22, -0x10, 0x92, 0x00, 0xF0, 0x1E, 0x04, 0x6D, 0xE2, -0x00, 0xF0, 0x13, 0x02, 0x0F, 0x10, 0x10, 0x94, -0x09, 0x95, 0x00, 0xF0, 0x13, 0x02, 0x6D, 0xE4, -0xB1, 0xE2, 0x04, 0x10, 0xA0, 0xA3, 0x01, 0x4B, -0xA0, 0xC2, 0x01, 0x4A, 0x8A, 0xEA, 0xFA, 0x61, -0x0B, 0x92, 0x07, 0x10, 0xA0, 0xA3, 0x01, 0x4B, -0xA0, 0xC2, 0x01, 0x4A, 0x8A, 0xEA, 0xFA, 0x61, -0x0C, 0x6A, 0x9D, 0x67, 0x00, 0x6B, 0x4F, 0xCC, -0x70, 0xC4, 0x05, 0x95, 0x04, 0x94, 0x06, 0x96, -0x07, 0x97, 0xFF, 0x49, 0x80, 0x18, 0x00, 0x40, -0x08, 0x95, 0xFF, 0x6A, 0x4C, 0xE9, 0x01, 0x4D, -0x08, 0xD5, 0x08, 0x93, 0xFF, 0x6A, 0x4C, 0xEB, -0x03, 0xEB, 0xBF, 0x61, 0x0F, 0x97, 0x0E, 0x91, -0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, -0x58, 0x9A, 0x6D, 0xF2, 0x68, 0x9B, 0x07, 0xD5, -0x08, 0xD6, 0x6C, 0xEA, 0x00, 0xF1, 0x00, 0x72, -0x09, 0xD7, 0x06, 0xD4, 0x0C, 0x61, 0x30, 0xF0, -0x20, 0x68, 0x06, 0x95, 0x45, 0xF6, 0x14, 0x48, -0x90, 0x67, 0x07, 0x06, 0x80, 0x18, 0x9C, 0x40, -0x90, 0x67, 0x80, 0x18, 0xD4, 0x41, 0x05, 0x97, -0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x61, 0xA4, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, 0xA0, 0xA4, -0xE3, 0xF4, 0x6B, 0xC2, 0xC3, 0xF4, 0x70, 0x9A, -0x20, 0x6C, 0x8C, 0xEB, 0x08, 0x23, 0xE3, 0xF4, -0xCB, 0xA2, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF4, -0x08, 0x4C, 0x80, 0x18, 0x16, 0x42, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xF3, 0x63, 0x19, 0x62, -0x18, 0xD1, 0x17, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, -0x15, 0xD2, 0x40, 0xF0, 0x06, 0x03, 0x20, 0xF0, -0x1A, 0x02, 0x00, 0x6C, 0x80, 0xC2, 0x01, 0x4A, -0x6A, 0xEA, 0xFB, 0x61, 0x30, 0xF0, 0x20, 0x6B, -0x6D, 0xF2, 0x04, 0x4B, 0x00, 0x68, 0x12, 0xD3, -0x14, 0xD0, 0x70, 0x10, 0x12, 0x92, 0x40, 0xA2, -0xFF, 0x72, 0x13, 0xD2, 0x0A, 0x61, 0x7D, 0x67, -0x09, 0xE3, 0x01, 0x6B, 0x6B, 0xEB, 0x20, 0xF0, -0x7A, 0xC2, 0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, -0x65, 0x10, 0x13, 0x92, 0x30, 0x69, 0x9D, 0x67, -0x38, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x6A, 0xF0, -0x00, 0x4A, 0x0E, 0x03, 0x0D, 0xE3, 0x04, 0x48, -0x12, 0xE9, 0x25, 0xE2, 0x47, 0x44, 0x45, 0x4A, -0x80, 0xA2, 0x82, 0xC3, 0x4A, 0xA9, 0x03, 0x6C, -0x43, 0xC3, 0x42, 0xA1, 0x44, 0xC3, 0x47, 0xA1, -0x4A, 0x32, 0x8C, 0xEA, 0x45, 0xC3, 0xFF, 0x6B, -0x6C, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF7, -0x18, 0x4B, 0xC3, 0xF4, 0xB0, 0x9B, 0xE7, 0xF7, -0x1D, 0x4C, 0xAC, 0xEC, 0x0E, 0x24, 0xC3, 0xF4, -0x74, 0x9B, 0x05, 0x5B, 0x0A, 0x61, 0xCA, 0xA9, -0xE2, 0xA1, 0x13, 0x95, 0x30, 0xF0, 0x20, 0x6C, -0x43, 0xF4, 0x00, 0x4C, 0x04, 0xD2, 0x80, 0x18, -0x16, 0x42, 0x15, 0x92, 0x02, 0x6B, 0x6E, 0xEA, -0x21, 0x2A, 0x96, 0xA9, 0x0E, 0x03, 0x0D, 0xE3, -0x82, 0xC3, 0x96, 0xA9, 0x02, 0x48, 0x82, 0x34, -0x83, 0xC3, 0x56, 0xC9, 0xFF, 0x6A, 0x4C, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0xC3, 0xF4, 0x90, 0x9A, 0x08, 0xF0, 0x00, 0x6B, -0x8C, 0xEB, 0x0C, 0x23, 0xC3, 0xF4, 0x54, 0x9A, -0x05, 0x5A, 0x08, 0x61, 0x13, 0x95, 0x30, 0xF0, -0x20, 0x6C, 0x63, 0xF4, 0x04, 0x4C, 0x00, 0x6E, -0x80, 0x18, 0x16, 0x42, 0x14, 0x94, 0xFF, 0x6A, -0x01, 0x4C, 0x4C, 0xEC, 0x12, 0x92, 0x14, 0xD4, -0x01, 0x4A, 0x12, 0xD2, 0x14, 0x93, 0x15, 0x94, -0x83, 0xEB, 0x8C, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0xC3, 0xF4, 0x90, 0x9A, -0x08, 0xF0, 0x00, 0x6B, 0x8C, 0xEB, 0x2D, 0x23, -0xC3, 0xF4, 0x54, 0x9A, 0x05, 0x5A, 0x29, 0x61, -0x5D, 0x67, 0x20, 0xF0, 0xBA, 0xA2, 0x20, 0xF0, -0xDB, 0xA2, 0x20, 0xF0, 0xFC, 0xA2, 0x20, 0xF0, -0x5D, 0xA2, 0x7D, 0x67, 0x30, 0xF0, 0x20, 0x6C, -0x04, 0xD2, 0x20, 0xF0, 0x5E, 0xA3, 0x63, 0xF4, -0x1C, 0x4C, 0x05, 0xD2, 0x20, 0xF0, 0x5F, 0xA3, -0x06, 0xD2, 0x40, 0xF0, 0x40, 0xA3, 0x07, 0xD2, -0x40, 0xF0, 0x41, 0xA3, 0x08, 0xD2, 0x40, 0xF0, -0x42, 0xA3, 0x09, 0xD2, 0x40, 0xF0, 0x43, 0xA3, -0x0A, 0xD2, 0x40, 0xF0, 0x44, 0xA3, 0x0B, 0xD2, -0x40, 0xF0, 0x45, 0xA3, 0x0C, 0xD2, 0x80, 0x18, -0x16, 0x42, 0x9D, 0x67, 0x2C, 0x6A, 0x20, 0xF0, -0x58, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, -0x5C, 0x9A, 0x40, 0xF0, 0x06, 0xCC, 0x0E, 0x04, -0x40, 0xEA, 0x19, 0x97, 0x18, 0x91, 0x17, 0x90, -0x0D, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0x43, 0xA4, 0x62, 0xA4, -0xC0, 0xA4, 0x40, 0x32, 0x40, 0x32, 0x60, 0x33, -0x4D, 0xE3, 0x41, 0xA4, 0x0F, 0x6D, 0xCC, 0xED, -0x4D, 0xE3, 0x44, 0xA4, 0xD2, 0x36, 0x01, 0x5E, -0x00, 0xF6, 0x40, 0x32, 0x49, 0xE3, 0x08, 0xD2, -0xB4, 0x32, 0x06, 0xD2, 0x06, 0x93, 0xFF, 0x6A, -0x4C, 0xEB, 0x06, 0xD3, 0x03, 0x6A, 0x78, 0x67, -0x6F, 0xE2, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0xC3, 0xF4, 0x90, 0x9A, 0x07, 0xD3, -0x08, 0xF0, 0x00, 0x6B, 0x8C, 0xEB, 0x0B, 0x23, -0xC3, 0xF4, 0x54, 0x9A, 0x05, 0x5A, 0x07, 0x61, -0x08, 0x97, 0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF4, -0x18, 0x4C, 0x80, 0x18, 0x16, 0x42, 0x80, 0x18, -0xE6, 0x40, 0x00, 0x68, 0x06, 0x91, 0x4E, 0x10, -0x08, 0x94, 0x01, 0x6A, 0x44, 0xE9, 0x8C, 0xEA, -0x1C, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0x4D, 0xE0, 0x07, 0xF3, 0x2C, 0xC3, -0xC3, 0xF4, 0x90, 0x9A, 0xFF, 0x6B, 0x01, 0x48, -0x6C, 0xE8, 0x07, 0xF7, 0x01, 0x4B, 0x8C, 0xEB, -0x0C, 0x23, 0xC3, 0xF4, 0x54, 0x9A, 0x05, 0x5A, -0x08, 0x61, 0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF4, -0x00, 0x4C, 0xB0, 0x67, 0xD1, 0x67, 0x80, 0x18, -0x16, 0x42, 0x07, 0x92, 0x4A, 0xE8, 0x04, 0x60, -0x06, 0x92, 0x1F, 0x4A, 0x2E, 0xEA, 0x23, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0xC3, 0xF4, 0x90, 0x9A, 0x08, 0xF0, 0x00, 0x6B, -0x8C, 0xEB, 0x12, 0x23, 0xC3, 0xF4, 0x74, 0x9A, -0x05, 0x5B, 0x0E, 0x61, 0x07, 0xF3, 0xCC, 0xA2, -0x07, 0xF3, 0xED, 0xA2, 0x07, 0xF3, 0x4E, 0xA2, -0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF5, 0x00, 0x4C, -0xB0, 0x67, 0x04, 0xD2, 0x80, 0x18, 0x16, 0x42, -0x0D, 0x20, 0x07, 0x94, 0x00, 0x68, 0x80, 0x18, -0x35, 0x42, 0x80, 0x18, 0xE6, 0x40, 0x01, 0x49, -0xFF, 0x6A, 0x4C, 0xE9, 0x06, 0x92, 0x20, 0x4A, -0x42, 0xE9, 0xAE, 0x61, 0x0D, 0x97, 0x0C, 0x91, -0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xF6, 0x63, 0x13, 0x62, 0x12, 0xD1, 0x11, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x6A, 0x8C, 0xEA, -0xC2, 0xF1, 0x88, 0x9B, 0xC2, 0xF1, 0x08, 0x4B, -0x01, 0x72, 0x04, 0xD4, 0x81, 0x9B, 0x68, 0xA3, -0x05, 0xD4, 0x9D, 0x67, 0x78, 0xC4, 0x30, 0xF0, -0x20, 0x6B, 0xA2, 0xF1, 0x9C, 0x9B, 0xA2, 0xF1, -0x1C, 0x4B, 0x07, 0xD4, 0x81, 0x9B, 0x68, 0xA3, -0x08, 0xD4, 0x9D, 0x67, 0x20, 0xF0, 0x64, 0xC4, -0x20, 0x61, 0x00, 0x68, 0x5D, 0x67, 0x0D, 0xE2, -0x5C, 0xA3, 0x0B, 0x5A, 0x01, 0x61, 0x0A, 0x6A, -0xFF, 0x6B, 0x6C, 0xEA, 0x02, 0x4A, 0x7D, 0x67, -0x5B, 0xCB, 0x0E, 0x6A, 0x20, 0xF0, 0x48, 0xC3, -0x01, 0x6A, 0x20, 0xF0, 0x4A, 0xC3, 0x09, 0xE3, -0x50, 0xA2, 0x0B, 0x95, 0x0C, 0x96, 0x20, 0xF0, -0x4B, 0xC3, 0x0A, 0x94, 0x0D, 0x97, 0x01, 0x48, -0x80, 0x18, 0x00, 0x40, 0x09, 0x70, 0xE2, 0x61, -0x71, 0x10, 0x08, 0x72, 0x37, 0x61, 0x20, 0xF0, -0x05, 0x04, 0x07, 0x00, 0x04, 0x01, 0x0E, 0xD4, -0x40, 0xA0, 0x0B, 0x5A, 0x01, 0x61, 0x0A, 0x6A, -0xFF, 0x6B, 0x4C, 0xEB, 0x9D, 0x67, 0x42, 0x43, -0x5B, 0xCC, 0x0E, 0x6A, 0x20, 0xF0, 0x48, 0xC4, -0x08, 0x6A, 0x20, 0xF0, 0x4A, 0xC4, 0x40, 0xA1, -0x20, 0xF0, 0x4B, 0xC4, 0x00, 0x6A, 0x0E, 0x10, -0x9D, 0x67, 0x55, 0xE4, 0xC0, 0xA1, 0x30, 0xF0, -0x20, 0x6C, 0x45, 0xF7, 0x18, 0x4C, 0x91, 0xE2, -0xD1, 0xE4, 0x07, 0xF1, 0x88, 0xA4, 0x01, 0x4A, -0x20, 0xF0, 0x8C, 0xC5, 0xFF, 0x6C, 0x4C, 0xEC, -0x63, 0xEC, 0xEE, 0x61, 0x0A, 0x94, 0x0B, 0x95, -0x0C, 0x96, 0x0D, 0x97, 0x01, 0x48, 0x01, 0x49, -0x80, 0x18, 0x00, 0x40, 0x0E, 0x92, 0x4A, 0xE8, -0xCF, 0x61, 0x38, 0x10, 0x09, 0x72, 0x36, 0x61, -0x20, 0xF0, 0x05, 0x03, 0x07, 0x00, 0x04, 0x01, -0x0F, 0xD3, 0x40, 0xA0, 0x0B, 0x5A, 0x01, 0x61, -0x0A, 0x6A, 0xFF, 0x6B, 0x4C, 0xEB, 0x9D, 0x67, -0x42, 0x43, 0x5B, 0xCC, 0x0E, 0x6A, 0x20, 0xF0, -0x48, 0xC4, 0x09, 0x6A, 0x20, 0xF0, 0x4A, 0xC4, -0x40, 0xA1, 0x20, 0xF0, 0x4B, 0xC4, 0x00, 0x6A, -0x0E, 0x10, 0x9D, 0x67, 0x55, 0xE4, 0xC0, 0xA1, -0x30, 0xF0, 0x20, 0x6C, 0x45, 0xF7, 0x18, 0x4C, -0x91, 0xE2, 0xD1, 0xE4, 0x47, 0xF1, 0x9C, 0xA4, -0x01, 0x4A, 0x20, 0xF0, 0x8C, 0xC5, 0xFF, 0x6C, -0x4C, 0xEC, 0x63, 0xEC, 0xEE, 0x61, 0x0A, 0x94, -0x0B, 0x95, 0x0C, 0x96, 0x0D, 0x97, 0x01, 0x48, -0x01, 0x49, 0x80, 0x18, 0x00, 0x40, 0x0F, 0x92, -0x4A, 0xE8, 0xCF, 0x61, 0x13, 0x97, 0x12, 0x91, -0x11, 0x90, 0x0A, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x44, 0x67, 0x65, 0xA2, 0x02, 0x6D, 0x81, 0xA4, -0xAC, 0xEB, 0x03, 0x23, 0x80, 0x18, 0xE8, 0x42, -0x3D, 0x10, 0x01, 0x74, 0x22, 0xA2, 0x04, 0xA2, -0x43, 0xA2, 0x07, 0x61, 0x30, 0xF0, 0x20, 0x6C, -0x23, 0xF5, 0x08, 0x4C, 0x80, 0x18, 0xD4, 0x41, -0x31, 0x10, 0x10, 0x30, 0x08, 0x74, 0x4D, 0xE8, -0x0E, 0x61, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF5, -0x14, 0x4C, 0x80, 0x18, 0xD4, 0x41, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, 0x45, 0xE1, -0x07, 0xF1, 0x08, 0xC1, 0x1F, 0x10, 0x09, 0x74, -0x0E, 0x61, 0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF5, -0x14, 0x4C, 0x80, 0x18, 0xD4, 0x41, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, 0x45, 0xE1, -0x47, 0xF1, 0x1C, 0xC1, 0x0F, 0x10, 0x0A, 0x74, -0x0D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, -0xFC, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF5, -0x04, 0x4C, 0xF9, 0x6D, 0x28, 0xF3, 0x01, 0x6E, -0x80, 0x18, 0x16, 0x42, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, -0x30, 0x6B, 0x78, 0xEC, 0x30, 0xF0, 0x20, 0x6E, -0x6A, 0xF0, 0x00, 0x4E, 0xAC, 0xEA, 0x05, 0x6D, -0x12, 0xEB, 0x6D, 0xE6, 0xDD, 0x67, 0xAF, 0xCE, -0x0F, 0x6D, 0xB0, 0xC6, 0x92, 0xC6, 0x53, 0xC6, -0x5B, 0xA3, 0x07, 0x97, 0x04, 0x94, 0x54, 0xC6, -0x5C, 0xA3, 0x55, 0xC6, 0x5D, 0xA3, 0x56, 0xC6, -0x05, 0x95, 0x06, 0x96, 0x80, 0x18, 0x00, 0x40, +0x25, 0xC7, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x04, 0xD2, 0x04, 0x95, +0x30, 0xF0, 0x20, 0x69, 0x85, 0xF7, 0x08, 0x49, +0xA8, 0x34, 0x31, 0xE4, 0x05, 0xD4, 0x05, 0x90, +0x22, 0xF5, 0x16, 0x4A, 0x48, 0x32, 0x29, 0xE2, +0xCA, 0xF4, 0xDE, 0xA0, 0x64, 0xA2, 0x01, 0x6A, +0x4C, 0xEE, 0x4C, 0xEB, 0xC4, 0x36, 0xCA, 0xF4, +0xFD, 0xA4, 0xD9, 0xE3, 0xCA, 0xF4, 0x7F, 0xA0, +0x4C, 0xEF, 0xF0, 0x37, 0x4C, 0xEB, 0x74, 0x33, +0x6D, 0xE7, 0x07, 0xD3, 0x04, 0x93, 0x85, 0x67, +0x65, 0xF2, 0x14, 0x4C, 0x64, 0x32, 0x29, 0xE2, +0x84, 0x34, 0x31, 0xE4, 0xEA, 0xF4, 0x51, 0xA2, +0xA8, 0xA4, 0x03, 0x6C, 0x8C, 0xEA, 0x8C, 0xED, +0x40, 0x32, 0xA0, 0x35, 0x48, 0x32, 0x49, 0xE5, +0x30, 0xF0, 0x20, 0x68, 0x06, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x08, 0xD6, 0xC0, 0xF3, 0x64, 0x98, +0x02, 0xF7, 0xDC, 0x9A, 0x01, 0x6D, 0xE3, 0xF2, +0x1D, 0x4C, 0xAB, 0xED, 0x40, 0xEB, 0x08, 0x94, +0x07, 0x96, 0x06, 0x93, 0xC0, 0xF3, 0x44, 0x98, +0x8D, 0xEE, 0x6D, 0xEE, 0xE3, 0xF3, 0x10, 0x6C, +0xFF, 0xF7, 0x1F, 0x6D, 0x40, 0xEA, 0x04, 0x92, +0x05, 0x94, 0x01, 0x6D, 0x22, 0xF5, 0x1C, 0x4A, +0xEA, 0xF4, 0xD6, 0xAC, 0x48, 0x32, 0x29, 0xE2, +0x62, 0xAA, 0xC0, 0x36, 0xC0, 0xF3, 0x44, 0x98, +0xC0, 0x36, 0x6D, 0xEE, 0xE3, 0xF3, 0x08, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x04, 0x92, 0x05, 0x95, +0xE3, 0xF3, 0x0C, 0x6C, 0x22, 0xF5, 0x1D, 0x4A, +0xEA, 0xF4, 0xDA, 0xAD, 0x48, 0x32, 0x29, 0xE2, +0x62, 0xAA, 0xC0, 0x36, 0xC0, 0xF3, 0x44, 0x98, +0xC0, 0x36, 0x01, 0x6D, 0x6D, 0xEE, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x6A, 0xF7, 0xD8, 0xA1, 0xE2, 0xF5, +0xB0, 0x9B, 0xE3, 0xF3, 0x10, 0x6C, 0x40, 0xEA, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0x00, 0x6B, 0xC3, 0xF4, 0x7B, 0xC2, +0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF4, 0x03, 0x4B, +0x03, 0xF5, 0x68, 0xDA, 0x00, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF7, 0x70, 0x9B, 0x54, 0x34, +0x01, 0x4A, 0x71, 0xE4, 0xA0, 0xA4, 0xF8, 0x6B, +0x80, 0x68, 0xAC, 0xEB, 0x60, 0xC4, 0xFF, 0x6B, +0x6C, 0xEA, 0x4E, 0xE8, 0xF0, 0x28, 0x80, 0x18, +0x61, 0x45, 0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF4, +0x1A, 0xC2, 0x80, 0x18, 0xED, 0x48, 0x80, 0x18, +0x67, 0x45, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0xD1, +0x08, 0xD0, 0x0A, 0xD4, 0x44, 0x67, 0x82, 0x10, +0x25, 0x73, 0x04, 0x60, 0x60, 0xA5, 0x60, 0xC2, +0x01, 0x4A, 0x7B, 0x10, 0x61, 0x85, 0x62, 0x73, +0x7D, 0x67, 0x20, 0x61, 0x62, 0x85, 0x78, 0x73, +0x03, 0x60, 0x58, 0x73, 0x7D, 0x67, 0x1A, 0x61, +0x82, 0x85, 0x60, 0xA6, 0x78, 0x6F, 0xEE, 0xEC, +0x30, 0xF0, 0x20, 0x6F, 0x72, 0x30, 0x23, 0xF4, +0x1C, 0x4F, 0xE1, 0xE0, 0x00, 0xA0, 0x01, 0x5C, +0x98, 0x67, 0x94, 0x34, 0x8D, 0xE8, 0x3D, 0x67, +0x00, 0xC1, 0x0F, 0x68, 0x6C, 0xE8, 0xFD, 0xE0, +0x60, 0xA7, 0x02, 0x4D, 0x8D, 0xEB, 0x61, 0xC1, +0x00, 0xF0, 0x02, 0x03, 0x81, 0x85, 0x77, 0x74, +0x26, 0x61, 0x82, 0x85, 0x78, 0x74, 0x02, 0x60, +0x58, 0x74, 0x21, 0x61, 0x80, 0xAE, 0x06, 0xD3, +0x07, 0xD4, 0x82, 0x85, 0x78, 0x74, 0xF8, 0x67, +0x01, 0x5F, 0x18, 0x67, 0x14, 0x30, 0x18, 0x65, +0x0C, 0x6C, 0x07, 0x97, 0x0F, 0x68, 0x30, 0xF0, +0x20, 0x69, 0xE7, 0xEC, 0x0C, 0xEF, 0x23, 0xF4, +0x1C, 0x49, 0x3D, 0xE7, 0xE0, 0xA7, 0x06, 0x90, +0x38, 0x67, 0x2D, 0xEF, 0xFC, 0x4C, 0xE0, 0xC0, +0x01, 0x48, 0xE4, 0x44, 0x06, 0xD0, 0xED, 0x2F, +0x04, 0x4B, 0x02, 0x4D, 0x25, 0x10, 0x81, 0x85, +0x78, 0x74, 0x02, 0x60, 0x58, 0x74, 0x20, 0x61, +0x81, 0x85, 0x20, 0x9E, 0x06, 0xD3, 0x78, 0x74, +0x98, 0x67, 0x01, 0x5C, 0xF8, 0x67, 0xF4, 0x37, +0x07, 0xD1, 0x1F, 0x65, 0x1C, 0x6C, 0x07, 0x97, +0x0F, 0x68, 0x30, 0xF0, 0x20, 0x69, 0xE6, 0xEC, +0x0C, 0xEF, 0x23, 0xF4, 0x1C, 0x49, 0x3D, 0xE7, +0xE0, 0xA7, 0x06, 0x91, 0x18, 0x67, 0x0D, 0xEF, +0xFC, 0x4C, 0xE0, 0xC1, 0x01, 0x49, 0xE4, 0x44, +0x06, 0xD1, 0xED, 0x2F, 0x08, 0x4B, 0x01, 0x4D, +0x9D, 0x67, 0x04, 0x10, 0xE0, 0xA4, 0x01, 0x4C, +0xE0, 0xC2, 0x01, 0x4A, 0x63, 0xEC, 0xFA, 0x61, +0x04, 0x4E, 0x01, 0x4D, 0x60, 0x85, 0x7F, 0xF7, +0x1B, 0x2B, 0x0A, 0x94, 0x01, 0x24, 0x60, 0xC2, +0x0A, 0x97, 0x09, 0x91, 0x08, 0x90, 0xEB, 0xE2, +0x05, 0x63, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x01, 0x6B, 0x85, 0xF7, 0x08, 0x4A, 0x6B, 0xEB, +0x07, 0xF3, 0x6C, 0xC2, 0x07, 0xF3, 0x6D, 0xC2, +0x07, 0xF3, 0x6E, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x00, 0xF0, 0x12, 0x02, +0x00, 0xF0, 0x1E, 0x03, 0x00, 0x6D, 0xA0, 0xC2, +0x01, 0x4A, 0x6A, 0xEA, 0xFB, 0x61, 0x61, 0xA4, +0x40, 0xA4, 0x02, 0x5B, 0x29, 0x60, 0x80, 0x6C, +0x8B, 0xEC, 0x7C, 0x33, 0x4D, 0xEC, 0x6D, 0xE2, +0xBD, 0x67, 0x92, 0xC5, 0x61, 0xF1, 0x13, 0x4B, +0x30, 0xF0, 0x20, 0x6C, 0x85, 0xF7, 0x08, 0x4C, +0x6C, 0x33, 0x6D, 0xE4, 0x04, 0x4B, 0x00, 0xF0, +0x13, 0x02, 0x00, 0xF0, 0x1B, 0x04, 0xA0, 0xAB, +0xA0, 0xC2, 0xA2, 0x35, 0xA1, 0xC2, 0x02, 0x4A, +0x00, 0x6D, 0x8A, 0xEA, 0xA0, 0xCB, 0x02, 0x4B, +0xF6, 0x61, 0x0D, 0x6A, 0x7D, 0x67, 0x50, 0xC3, +0x09, 0x6A, 0x4F, 0xCB, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x68, 0xA4, 0x30, 0xF0, +0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0xE3, 0xF4, +0x64, 0xC2, 0x69, 0xA4, 0xC3, 0xF4, 0x79, 0xC2, +0x6A, 0xA4, 0xE3, 0xF4, 0x63, 0xC2, 0xAB, 0xA4, +0x0F, 0x6B, 0xAC, 0xEB, 0xE3, 0xF4, 0x6D, 0xC2, +0x6B, 0xA4, 0x72, 0x33, 0xE3, 0xF4, 0x6A, 0xC2, +0x8E, 0xA4, 0x01, 0x6B, 0x8C, 0xEB, 0xC3, 0xF4, +0x7B, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF4, +0x03, 0x4B, 0x03, 0xF5, 0x68, 0xDA, 0x00, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0x60, 0xA4, 0x30, 0xF0, +0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0xE3, 0xF4, +0x64, 0xC2, 0x61, 0xA4, 0xC3, 0xF4, 0x79, 0xC2, +0x62, 0xA4, 0xE3, 0xF4, 0x63, 0xC2, 0xA3, 0xA4, +0x0F, 0x6B, 0xAC, 0xEB, 0xE3, 0xF4, 0x6D, 0xC2, +0x63, 0xA4, 0x72, 0x33, 0xE3, 0xF4, 0x6A, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x0E, 0x72, 0x03, 0x60, +0x11, 0x72, 0x05, 0x60, 0x08, 0x10, 0x85, 0x67, +0x80, 0x18, 0x75, 0x14, 0x19, 0x10, 0x85, 0x67, +0x80, 0x18, 0x1B, 0x41, 0x15, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF6, 0x78, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x42, 0xF7, 0x94, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0x63, 0xF3, 0x64, 0x9A, +0x8D, 0xEB, 0x63, 0xF3, 0x64, 0xDA, 0xFF, 0x6A, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, -0x14, 0x92, 0x15, 0x93, 0x16, 0x90, 0x0A, 0xD2, -0xFF, 0x6A, 0x1A, 0x65, 0xAC, 0xEA, 0x08, 0xD2, -0x58, 0x67, 0xCC, 0xEA, 0x17, 0x91, 0x1A, 0x65, -0x0A, 0x92, 0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEF, -0xAC, 0xEA, 0xAC, 0xEB, 0xAC, 0xE8, 0xAC, 0xE9, -0x30, 0xF0, 0x20, 0x6D, 0x45, 0xF7, 0x18, 0x4D, -0xC3, 0xF4, 0xD0, 0x9D, 0x0A, 0xD2, 0x8C, 0xEE, -0x36, 0x26, 0xC3, 0xF4, 0x94, 0x9D, 0x05, 0x6A, -0x4E, 0xEC, 0x31, 0x2C, 0x30, 0xF0, 0x20, 0x6C, -0x22, 0xF7, 0x98, 0x9C, 0x07, 0xF3, 0xB0, 0x9D, -0x7F, 0x4A, 0x7C, 0x4A, 0xAC, 0xEC, 0x4E, 0xEC, -0x26, 0x2C, 0x9D, 0x67, 0x47, 0x44, 0x19, 0x4A, -0x40, 0xA2, 0xF4, 0xC4, 0xE2, 0x37, 0x52, 0xC4, -0x58, 0x67, 0x53, 0xC4, 0x47, 0x44, 0x21, 0x4A, -0x40, 0xA2, 0xF5, 0xC4, 0x56, 0xC4, 0x0A, 0x94, -0x82, 0x32, 0x9D, 0x67, 0x57, 0xC4, 0x02, 0x6A, -0x4B, 0xEA, 0x78, 0xC4, 0x1A, 0xC4, 0x3C, 0xC4, -0x50, 0xC4, 0x62, 0x33, 0x02, 0x30, 0x22, 0x31, -0x0C, 0x6A, 0x79, 0xC4, 0x1B, 0xC4, 0x3D, 0xC4, -0x4F, 0xCC, 0x05, 0x95, 0x04, 0x94, 0x06, 0x96, -0x07, 0x97, 0x80, 0x18, 0x00, 0x40, 0x0F, 0x97, -0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x40, 0xA4, 0x70, 0x69, 0x30, 0xF0, 0x20, 0x68, -0x06, 0xD2, 0x81, 0xA4, 0x45, 0xF7, 0x18, 0x48, -0x05, 0xD4, 0x05, 0x92, 0x9E, 0x33, 0x07, 0xD3, -0x8C, 0xE9, 0x7D, 0x67, 0x03, 0x6C, 0x8C, 0xEA, -0x87, 0x43, 0x11, 0x4C, 0x60, 0xA4, 0x32, 0x31, -0x04, 0xD2, 0x9D, 0x67, 0x09, 0xE1, 0xE4, 0xF0, -0x78, 0xC2, 0x67, 0x44, 0x09, 0x4B, 0x80, 0xA3, -0xE4, 0xF0, 0x9A, 0xC2, 0x30, 0xF0, 0x20, 0x6C, -0x83, 0xF5, 0x10, 0x4C, 0x80, 0x18, 0x16, 0x42, -0x5D, 0x67, 0x67, 0x42, 0x15, 0x4B, 0x40, 0xA3, -0x07, 0x93, 0x04, 0xF1, 0x41, 0xC0, 0x21, 0x23, -0xE4, 0xF0, 0x7E, 0xA0, 0x01, 0x6A, 0x44, 0xE9, -0x6D, 0xEA, 0xE4, 0xF0, 0x5E, 0xC0, 0xC3, 0xF4, -0x50, 0x98, 0x10, 0x6B, 0x6C, 0xEA, 0x0D, 0x22, -0xC3, 0xF4, 0x54, 0x98, 0x05, 0x5A, 0x09, 0x61, -0x04, 0x96, 0x06, 0x97, 0x30, 0xF0, 0x20, 0x6C, -0x83, 0xF5, 0x1C, 0x4C, 0xB1, 0x67, 0x80, 0x18, -0x16, 0x42, 0x05, 0x94, 0x0C, 0x6D, 0x8C, 0xED, -0xAA, 0x35, 0x91, 0x67, 0x80, 0x18, 0xA3, 0x4B, -0x23, 0x10, 0xE4, 0xF0, 0x7E, 0xA0, 0x01, 0x6A, -0x44, 0xE9, 0x4F, 0xEA, 0x6C, 0xEA, 0xE4, 0xF0, +0x42, 0xA4, 0x00, 0xA4, 0x21, 0xA4, 0x0A, 0xD2, +0x63, 0xA4, 0x00, 0xF0, 0x16, 0x02, 0x20, 0xF0, +0x02, 0x04, 0x00, 0x6D, 0xA0, 0xC2, 0x01, 0x4A, +0x8A, 0xEA, 0xFB, 0x61, 0x01, 0x6A, 0x6C, 0xEA, +0x10, 0x22, 0x04, 0x04, 0x00, 0xF0, 0x11, 0x05, +0x80, 0x18, 0x5F, 0x47, 0x7D, 0x67, 0x50, 0xA3, +0x01, 0x6C, 0x96, 0xC3, 0x57, 0xC3, 0x51, 0xA3, +0x58, 0xC3, 0x26, 0x6A, 0x54, 0xC3, 0x03, 0x6A, +0x51, 0xCB, 0x0A, 0x95, 0x01, 0x6A, 0x4C, 0xED, +0x1E, 0x25, 0x1E, 0x30, 0xE0, 0xF0, 0x13, 0x20, +0x3E, 0x31, 0xE0, 0xF0, 0x10, 0x21, 0xBD, 0x67, +0x56, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0x89, 0xF0, 0x78, 0x9A, 0x62, 0x34, +0x77, 0xC5, 0x00, 0xF6, 0x62, 0x33, 0x7A, 0xC5, +0x0D, 0x6B, 0x74, 0xC5, 0x05, 0x6B, 0x98, 0xC5, +0x71, 0xCD, 0x82, 0x34, 0x00, 0x6B, 0x99, 0xC5, +0x89, 0xF0, 0x78, 0xDA, 0xD8, 0x10, 0x0A, 0x93, +0x02, 0x6C, 0x8C, 0xEB, 0x31, 0x23, 0xDD, 0x67, +0x1E, 0x32, 0x96, 0xC6, 0x17, 0x2A, 0xC4, 0xF4, +0x6C, 0x40, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0x64, 0x33, 0x4D, 0xE3, 0x82, 0xAB, +0x44, 0xF4, 0x0C, 0x48, 0x04, 0x30, 0x49, 0xE0, +0x97, 0xC6, 0x82, 0x34, 0x98, 0xC6, 0x82, 0xAA, +0xA2, 0xCB, 0xA2, 0xCA, 0x99, 0xC6, 0x82, 0x34, +0x9A, 0xC6, 0x04, 0x10, 0x16, 0x6A, 0x4B, 0xEA, +0x7D, 0x67, 0x57, 0xC3, 0x3E, 0x32, 0x4E, 0x2A, +0xC4, 0xF4, 0x6C, 0x41, 0x30, 0xF0, 0x20, 0x6A, +0x64, 0x33, 0x85, 0xF7, 0x08, 0x4A, 0x4D, 0xE3, +0x82, 0xAB, 0xBD, 0x67, 0x44, 0xF4, 0x0C, 0x49, +0x9B, 0xC5, 0x82, 0x34, 0x9C, 0xC5, 0x34, 0x10, +0x0A, 0x95, 0x08, 0x6A, 0xAC, 0xEA, 0x43, 0x22, +0xDD, 0x67, 0x1E, 0x32, 0x96, 0xC6, 0x17, 0x2A, +0xC4, 0xF4, 0x8C, 0x40, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0x84, 0x34, 0x51, 0xE4, +0xA2, 0xAC, 0x44, 0xF5, 0x0C, 0x48, 0x04, 0x30, +0x49, 0xE0, 0xB7, 0xC6, 0xA2, 0x35, 0xB8, 0xC6, +0xA2, 0xAA, 0x62, 0xCC, 0x62, 0xCA, 0xB9, 0xC6, +0xA2, 0x35, 0xBA, 0xC6, 0x04, 0x10, 0x16, 0x6A, +0x4B, 0xEA, 0x7D, 0x67, 0x57, 0xC3, 0x3E, 0x32, +0x19, 0x2A, 0xC4, 0xF4, 0x6C, 0x41, 0x30, 0xF0, +0x20, 0x6A, 0x64, 0x33, 0x85, 0xF7, 0x08, 0x4A, +0x4D, 0xE3, 0x82, 0xAB, 0xBD, 0x67, 0x44, 0xF5, +0x0C, 0x49, 0x9B, 0xC5, 0x82, 0x34, 0x9C, 0xC5, +0x24, 0x31, 0x49, 0xE1, 0x82, 0xAA, 0x9D, 0xC5, +0x82, 0x34, 0x9E, 0xC5, 0x00, 0x6C, 0x82, 0xCB, +0x82, 0xCA, 0x04, 0x10, 0x16, 0x6A, 0x4B, 0xEA, +0xDD, 0x67, 0x5B, 0xC6, 0x0D, 0x6A, 0x7D, 0x67, +0x54, 0xC3, 0x09, 0x6A, 0x56, 0x10, 0x0A, 0x94, +0x56, 0x2C, 0x1E, 0x32, 0x24, 0x2A, 0x44, 0xF3, +0x6C, 0x40, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0x64, 0x33, 0x4D, 0xE3, 0x80, 0xAB, +0xBD, 0x67, 0x16, 0xC5, 0x97, 0xC5, 0x82, 0x34, +0x98, 0xC5, 0xC4, 0xF3, 0x8C, 0x40, 0x84, 0x34, +0x49, 0xE4, 0x80, 0xAA, 0x14, 0x30, 0xC7, 0x45, +0x99, 0xC5, 0x82, 0x34, 0x9A, 0xC5, 0x30, 0xF0, +0x20, 0x6C, 0x42, 0xF7, 0x98, 0x9C, 0x21, 0x4E, +0xC0, 0xAE, 0x81, 0xE0, 0x80, 0xA0, 0xC0, 0xCB, +0xC0, 0xCA, 0x9B, 0xC5, 0x02, 0x10, 0x9D, 0x67, +0x16, 0xC4, 0x3E, 0x32, 0x24, 0x2A, 0x44, 0xF3, +0x6C, 0x41, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0x64, 0x33, 0x4D, 0xE3, 0x80, 0xAB, +0xBD, 0x67, 0x3C, 0xC5, 0x9D, 0xC5, 0x82, 0x34, +0x9E, 0xC5, 0xC4, 0xF3, 0x8C, 0x41, 0x84, 0x34, +0x49, 0xE4, 0x80, 0xAA, 0x34, 0x31, 0x9F, 0xC5, +0x82, 0x34, 0x20, 0xF0, 0x80, 0xC5, 0x30, 0xF0, +0x20, 0x6C, 0x42, 0xF7, 0x98, 0x9C, 0x85, 0xE1, +0x80, 0xA1, 0x20, 0xF0, 0x81, 0xC5, 0x00, 0x6C, +0x80, 0xCB, 0x80, 0xCA, 0x02, 0x10, 0x5D, 0x67, +0x3C, 0xC2, 0x04, 0x6A, 0x7D, 0x67, 0x54, 0xC3, +0x0C, 0x6A, 0x51, 0xCB, 0x04, 0x10, 0x9D, 0x67, +0x04, 0x6B, 0x74, 0xC4, 0x51, 0xCC, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x05, 0x04, +0x40, 0xEA, 0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, +0x08, 0x63, 0x00, 0xEF, 0xF8, 0x63, 0x0F, 0x62, +0x0E, 0xD1, 0x0D, 0xD0, 0x00, 0x6B, 0x10, 0xD4, +0x01, 0x68, 0x43, 0x67, 0xA0, 0xA4, 0x0E, 0x25, +0xFF, 0x6D, 0x01, 0x4B, 0xAC, 0xEB, 0x01, 0x4A, +0x0B, 0x73, 0xAC, 0xEA, 0x03, 0x61, 0x01, 0x48, +0xAC, 0xE8, 0x00, 0x6B, 0x37, 0x72, 0x01, 0x4C, +0xF1, 0x61, 0x37, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x85, 0xF7, 0x08, 0x4B, 0x07, 0xF3, 0x90, 0xA3, +0x0F, 0x5C, 0x01, 0x4C, 0x01, 0x61, 0x00, 0x6C, +0x07, 0xF3, 0x90, 0xC3, 0x30, 0xF0, 0x20, 0x6B, +0x8D, 0xF2, 0x78, 0xA3, 0x0B, 0x6D, 0x2F, 0x40, +0x70, 0x33, 0x0A, 0xD3, 0x0A, 0x94, 0xFF, 0x6B, +0x6C, 0xE9, 0x6C, 0xEC, 0x0A, 0xD4, 0x01, 0x6C, +0x13, 0xE4, 0xB8, 0xEC, 0x12, 0xEC, 0x91, 0xE2, +0x6C, 0xEC, 0x09, 0xD4, 0x00, 0x6A, 0x01, 0x4C, +0x0B, 0xD4, 0x08, 0xD2, 0x3C, 0x10, 0x08, 0x94, +0x0B, 0x6B, 0x0A, 0x95, 0x78, 0xEC, 0x9D, 0x67, +0x12, 0xEB, 0x4C, 0xEB, 0x0F, 0x6A, 0x2C, 0xEA, +0xAD, 0xEA, 0x08, 0x95, 0x52, 0xC4, 0x4F, 0x40, +0xAE, 0xEA, 0x07, 0x22, 0x10, 0x92, 0x00, 0xF0, +0x1E, 0x04, 0x6D, 0xE2, 0x00, 0xF0, 0x13, 0x02, +0x0F, 0x10, 0x10, 0x94, 0x09, 0x95, 0x00, 0xF0, +0x13, 0x02, 0x6D, 0xE4, 0xB1, 0xE2, 0x04, 0x10, +0xA0, 0xA3, 0x01, 0x4B, 0xA0, 0xC2, 0x01, 0x4A, +0x8A, 0xEA, 0xFA, 0x61, 0x0B, 0x92, 0x07, 0x10, +0xA0, 0xA3, 0x01, 0x4B, 0xA0, 0xC2, 0x01, 0x4A, +0x8A, 0xEA, 0xFA, 0x61, 0x0C, 0x6A, 0x9D, 0x67, +0x00, 0x6B, 0x4F, 0xCC, 0x70, 0xC4, 0x05, 0x95, +0x04, 0x94, 0x06, 0x96, 0x07, 0x97, 0xFF, 0x49, +0x80, 0x18, 0x00, 0x40, 0x08, 0x95, 0xFF, 0x6A, +0x4C, 0xE9, 0x01, 0x4D, 0x08, 0xD5, 0x08, 0x93, +0xFF, 0x6A, 0x4C, 0xEB, 0x03, 0xEB, 0xBF, 0x61, +0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF7, 0x5C, 0x9A, 0x8D, 0xF2, +0x78, 0x9B, 0x07, 0xD5, 0x08, 0xD6, 0x6C, 0xEA, +0x00, 0xF1, 0x00, 0x72, 0x09, 0xD7, 0x06, 0xD4, +0x0C, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x06, 0x95, +0x85, 0xF6, 0x04, 0x48, 0x90, 0x67, 0x07, 0x06, +0x80, 0x18, 0xAB, 0x40, 0x90, 0x67, 0x80, 0x18, +0xE3, 0x41, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x61, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0xA0, 0xA4, 0xE3, 0xF4, 0x6B, 0xC2, +0xC3, 0xF4, 0x70, 0x9A, 0x20, 0x6C, 0x8C, 0xEB, +0x08, 0x23, 0xE3, 0xF4, 0xCB, 0xA2, 0x30, 0xF0, +0x20, 0x6C, 0x43, 0xF4, 0x10, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xF3, 0x63, 0x19, 0x62, 0x18, 0xD1, 0x17, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x15, 0xD2, 0x40, 0xF0, +0x06, 0x03, 0x20, 0xF0, 0x1A, 0x02, 0x00, 0x6C, +0x80, 0xC2, 0x01, 0x4A, 0x6A, 0xEA, 0xFB, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0x8D, 0xF2, 0x14, 0x4B, +0x00, 0x68, 0x12, 0xD3, 0x14, 0xD0, 0x70, 0x10, +0x12, 0x92, 0x40, 0xA2, 0xFF, 0x72, 0x13, 0xD2, +0x0A, 0x61, 0x7D, 0x67, 0x09, 0xE3, 0x01, 0x6B, +0x6B, 0xEB, 0x20, 0xF0, 0x7A, 0xC2, 0x01, 0x48, +0xFF, 0x6A, 0x4C, 0xE8, 0x65, 0x10, 0x13, 0x92, +0x30, 0x69, 0x9D, 0x67, 0x38, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x8A, 0xF0, 0x10, 0x4A, 0x0E, 0x03, +0x0D, 0xE3, 0x04, 0x48, 0x12, 0xE9, 0x25, 0xE2, +0x47, 0x44, 0x45, 0x4A, 0x80, 0xA2, 0x82, 0xC3, +0x4A, 0xA9, 0x03, 0x6C, 0x43, 0xC3, 0x42, 0xA1, +0x44, 0xC3, 0x47, 0xA1, 0x4A, 0x32, 0x8C, 0xEA, +0x45, 0xC3, 0xFF, 0x6B, 0x6C, 0xE8, 0x30, 0xF0, +0x20, 0x6B, 0x85, 0xF7, 0x08, 0x4B, 0xC3, 0xF4, +0xB0, 0x9B, 0xE7, 0xF7, 0x1D, 0x4C, 0xAC, 0xEC, +0x0E, 0x24, 0xC3, 0xF4, 0x74, 0x9B, 0x05, 0x5B, +0x0A, 0x61, 0xCA, 0xA9, 0xE2, 0xA1, 0x13, 0x95, +0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF4, 0x08, 0x4C, +0x04, 0xD2, 0x80, 0x18, 0x25, 0x42, 0x15, 0x92, +0x02, 0x6B, 0x6E, 0xEA, 0x21, 0x2A, 0x96, 0xA9, +0x0E, 0x03, 0x0D, 0xE3, 0x82, 0xC3, 0x96, 0xA9, +0x02, 0x48, 0x82, 0x34, 0x83, 0xC3, 0x56, 0xC9, +0xFF, 0x6A, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0xC3, 0xF4, 0x90, 0x9A, +0x08, 0xF0, 0x00, 0x6B, 0x8C, 0xEB, 0x0C, 0x23, +0xC3, 0xF4, 0x54, 0x9A, 0x05, 0x5A, 0x08, 0x61, +0x13, 0x95, 0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF4, +0x0C, 0x4C, 0x00, 0x6E, 0x80, 0x18, 0x25, 0x42, +0x14, 0x94, 0xFF, 0x6A, 0x01, 0x4C, 0x4C, 0xEC, +0x12, 0x92, 0x14, 0xD4, 0x01, 0x4A, 0x12, 0xD2, +0x14, 0x93, 0x15, 0x94, 0x83, 0xEB, 0x8C, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, +0xC3, 0xF4, 0x90, 0x9A, 0x08, 0xF0, 0x00, 0x6B, +0x8C, 0xEB, 0x2D, 0x23, 0xC3, 0xF4, 0x54, 0x9A, +0x05, 0x5A, 0x29, 0x61, 0x5D, 0x67, 0x20, 0xF0, +0xBA, 0xA2, 0x20, 0xF0, 0xDB, 0xA2, 0x20, 0xF0, +0xFC, 0xA2, 0x20, 0xF0, 0x5D, 0xA2, 0x7D, 0x67, +0x30, 0xF0, 0x20, 0x6C, 0x04, 0xD2, 0x20, 0xF0, +0x5E, 0xA3, 0xA3, 0xF4, 0x04, 0x4C, 0x05, 0xD2, +0x20, 0xF0, 0x5F, 0xA3, 0x06, 0xD2, 0x40, 0xF0, +0x40, 0xA3, 0x07, 0xD2, 0x40, 0xF0, 0x41, 0xA3, +0x08, 0xD2, 0x40, 0xF0, 0x42, 0xA3, 0x09, 0xD2, +0x40, 0xF0, 0x43, 0xA3, 0x0A, 0xD2, 0x40, 0xF0, +0x44, 0xA3, 0x0B, 0xD2, 0x40, 0xF0, 0x45, 0xA3, +0x0C, 0xD2, 0x80, 0x18, 0x25, 0x42, 0x9D, 0x67, +0x2C, 0x6A, 0x20, 0xF0, 0x58, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x40, 0xF0, +0x06, 0xCC, 0x0E, 0x04, 0x40, 0xEA, 0x19, 0x97, +0x18, 0x91, 0x17, 0x90, 0x0D, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x43, 0xA4, 0x62, 0xA4, 0xC0, 0xA4, 0x40, 0x32, +0x40, 0x32, 0x60, 0x33, 0x4D, 0xE3, 0x41, 0xA4, +0x0F, 0x6D, 0xCC, 0xED, 0x4D, 0xE3, 0x44, 0xA4, +0xD2, 0x36, 0x01, 0x5E, 0x00, 0xF6, 0x40, 0x32, +0x49, 0xE3, 0x08, 0xD2, 0xB4, 0x32, 0x06, 0xD2, +0x06, 0x93, 0xFF, 0x6A, 0x4C, 0xEB, 0x06, 0xD3, +0x03, 0x6A, 0x78, 0x67, 0x6F, 0xE2, 0x30, 0xF0, +0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0xC3, 0xF4, +0x90, 0x9A, 0x07, 0xD3, 0x08, 0xF0, 0x00, 0x6B, +0x8C, 0xEB, 0x0B, 0x23, 0xC3, 0xF4, 0x54, 0x9A, +0x05, 0x5A, 0x07, 0x61, 0x08, 0x97, 0x30, 0xF0, +0x20, 0x6C, 0xE3, 0xF4, 0x00, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x80, 0x18, 0xF5, 0x40, 0x00, 0x68, +0x06, 0x91, 0x4E, 0x10, 0x08, 0x94, 0x01, 0x6A, +0x44, 0xE9, 0x8C, 0xEA, 0x1C, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0x4D, 0xE0, +0x07, 0xF3, 0x2C, 0xC3, 0xC3, 0xF4, 0x90, 0x9A, +0xFF, 0x6B, 0x01, 0x48, 0x6C, 0xE8, 0x07, 0xF7, +0x01, 0x4B, 0x8C, 0xEB, 0x0C, 0x23, 0xC3, 0xF4, +0x54, 0x9A, 0x05, 0x5A, 0x08, 0x61, 0x30, 0xF0, +0x20, 0x6C, 0x03, 0xF5, 0x08, 0x4C, 0xB0, 0x67, +0xD1, 0x67, 0x80, 0x18, 0x25, 0x42, 0x07, 0x92, +0x4A, 0xE8, 0x04, 0x60, 0x06, 0x92, 0x1F, 0x4A, +0x2E, 0xEA, 0x23, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0xC3, 0xF4, 0x90, 0x9A, +0x08, 0xF0, 0x00, 0x6B, 0x8C, 0xEB, 0x12, 0x23, +0xC3, 0xF4, 0x74, 0x9A, 0x05, 0x5B, 0x0E, 0x61, +0x07, 0xF3, 0xCC, 0xA2, 0x07, 0xF3, 0xED, 0xA2, +0x07, 0xF3, 0x4E, 0xA2, 0x30, 0xF0, 0x20, 0x6C, +0x23, 0xF5, 0x08, 0x4C, 0xB0, 0x67, 0x04, 0xD2, +0x80, 0x18, 0x25, 0x42, 0x0D, 0x20, 0x07, 0x94, +0x00, 0x68, 0x80, 0x18, 0x44, 0x42, 0x80, 0x18, +0xF5, 0x40, 0x01, 0x49, 0xFF, 0x6A, 0x4C, 0xE9, +0x06, 0x92, 0x20, 0x4A, 0x42, 0xE9, 0xAE, 0x61, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF6, 0x63, 0x13, 0x62, +0x12, 0xD1, 0x11, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0xFF, 0x6A, 0x8C, 0xEA, 0xC2, 0xF1, 0x88, 0x9B, +0xC2, 0xF1, 0x08, 0x4B, 0x01, 0x72, 0x04, 0xD4, +0x81, 0x9B, 0x68, 0xA3, 0x05, 0xD4, 0x9D, 0x67, +0x78, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF1, +0x9C, 0x9B, 0xA2, 0xF1, 0x1C, 0x4B, 0x07, 0xD4, +0x81, 0x9B, 0x68, 0xA3, 0x08, 0xD4, 0x9D, 0x67, +0x20, 0xF0, 0x64, 0xC4, 0x20, 0x61, 0x00, 0x68, +0x5D, 0x67, 0x0D, 0xE2, 0x5C, 0xA3, 0x0B, 0x5A, +0x01, 0x61, 0x0A, 0x6A, 0xFF, 0x6B, 0x6C, 0xEA, +0x02, 0x4A, 0x7D, 0x67, 0x5B, 0xCB, 0x0E, 0x6A, +0x20, 0xF0, 0x48, 0xC3, 0x01, 0x6A, 0x20, 0xF0, +0x4A, 0xC3, 0x09, 0xE3, 0x50, 0xA2, 0x0B, 0x95, +0x0C, 0x96, 0x20, 0xF0, 0x4B, 0xC3, 0x0A, 0x94, +0x0D, 0x97, 0x01, 0x48, 0x80, 0x18, 0x00, 0x40, +0x09, 0x70, 0xE2, 0x61, 0x71, 0x10, 0x08, 0x72, +0x37, 0x61, 0x20, 0xF0, 0x05, 0x04, 0x07, 0x00, +0x04, 0x01, 0x0E, 0xD4, 0x40, 0xA0, 0x0B, 0x5A, +0x01, 0x61, 0x0A, 0x6A, 0xFF, 0x6B, 0x4C, 0xEB, +0x9D, 0x67, 0x42, 0x43, 0x5B, 0xCC, 0x0E, 0x6A, +0x20, 0xF0, 0x48, 0xC4, 0x08, 0x6A, 0x20, 0xF0, +0x4A, 0xC4, 0x40, 0xA1, 0x20, 0xF0, 0x4B, 0xC4, +0x00, 0x6A, 0x0E, 0x10, 0x9D, 0x67, 0x55, 0xE4, +0xC0, 0xA1, 0x30, 0xF0, 0x20, 0x6C, 0x85, 0xF7, +0x08, 0x4C, 0x91, 0xE2, 0xD1, 0xE4, 0x07, 0xF1, +0x88, 0xA4, 0x01, 0x4A, 0x20, 0xF0, 0x8C, 0xC5, +0xFF, 0x6C, 0x4C, 0xEC, 0x63, 0xEC, 0xEE, 0x61, +0x0A, 0x94, 0x0B, 0x95, 0x0C, 0x96, 0x0D, 0x97, +0x01, 0x48, 0x01, 0x49, 0x80, 0x18, 0x00, 0x40, +0x0E, 0x92, 0x4A, 0xE8, 0xCF, 0x61, 0x38, 0x10, +0x09, 0x72, 0x36, 0x61, 0x20, 0xF0, 0x05, 0x03, +0x07, 0x00, 0x04, 0x01, 0x0F, 0xD3, 0x40, 0xA0, +0x0B, 0x5A, 0x01, 0x61, 0x0A, 0x6A, 0xFF, 0x6B, +0x4C, 0xEB, 0x9D, 0x67, 0x42, 0x43, 0x5B, 0xCC, +0x0E, 0x6A, 0x20, 0xF0, 0x48, 0xC4, 0x09, 0x6A, +0x20, 0xF0, 0x4A, 0xC4, 0x40, 0xA1, 0x20, 0xF0, +0x4B, 0xC4, 0x00, 0x6A, 0x0E, 0x10, 0x9D, 0x67, +0x55, 0xE4, 0xC0, 0xA1, 0x30, 0xF0, 0x20, 0x6C, +0x85, 0xF7, 0x08, 0x4C, 0x91, 0xE2, 0xD1, 0xE4, +0x47, 0xF1, 0x9C, 0xA4, 0x01, 0x4A, 0x20, 0xF0, +0x8C, 0xC5, 0xFF, 0x6C, 0x4C, 0xEC, 0x63, 0xEC, +0xEE, 0x61, 0x0A, 0x94, 0x0B, 0x95, 0x0C, 0x96, +0x0D, 0x97, 0x01, 0x48, 0x01, 0x49, 0x80, 0x18, +0x00, 0x40, 0x0F, 0x92, 0x4A, 0xE8, 0xCF, 0x61, +0x13, 0x97, 0x12, 0x91, 0x11, 0x90, 0x0A, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x44, 0x67, 0x65, 0xA2, +0x02, 0x6D, 0x81, 0xA4, 0xAC, 0xEB, 0x03, 0x23, +0x80, 0x18, 0xF7, 0x42, 0x3D, 0x10, 0x01, 0x74, +0x22, 0xA2, 0x04, 0xA2, 0x43, 0xA2, 0x07, 0x61, +0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF5, 0x10, 0x4C, +0x80, 0x18, 0xE3, 0x41, 0x31, 0x10, 0x10, 0x30, +0x08, 0x74, 0x4D, 0xE8, 0x0E, 0x61, 0x30, 0xF0, +0x20, 0x6C, 0x43, 0xF5, 0x1C, 0x4C, 0x80, 0x18, +0xE3, 0x41, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0x45, 0xE1, 0x07, 0xF1, 0x08, 0xC1, +0x1F, 0x10, 0x09, 0x74, 0x0E, 0x61, 0x30, 0xF0, +0x20, 0x6C, 0x63, 0xF5, 0x1C, 0x4C, 0x80, 0x18, +0xE3, 0x41, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0x45, 0xE1, 0x47, 0xF1, 0x1C, 0xC1, +0x0F, 0x10, 0x0A, 0x74, 0x0D, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF7, 0xE0, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x83, 0xF5, 0x0C, 0x4C, 0xF9, 0x6D, +0x28, 0xF3, 0x01, 0x6E, 0x80, 0x18, 0x25, 0x42, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0x30, 0x6B, 0x78, 0xEC, +0x30, 0xF0, 0x20, 0x6E, 0x8A, 0xF0, 0x10, 0x4E, +0xAC, 0xEA, 0x05, 0x6D, 0x12, 0xEB, 0x6D, 0xE6, +0xDD, 0x67, 0xAF, 0xCE, 0x0F, 0x6D, 0xB0, 0xC6, +0x92, 0xC6, 0x53, 0xC6, 0x5B, 0xA3, 0x07, 0x97, +0x04, 0x94, 0x54, 0xC6, 0x5C, 0xA3, 0x55, 0xC6, +0x5D, 0xA3, 0x56, 0xC6, 0x05, 0x95, 0x06, 0x96, +0x80, 0x18, 0x00, 0x40, 0x09, 0x97, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, +0x0E, 0xD1, 0x0D, 0xD0, 0x14, 0x92, 0x15, 0x93, +0x16, 0x90, 0x0A, 0xD2, 0xFF, 0x6A, 0x1A, 0x65, +0xAC, 0xEA, 0x08, 0xD2, 0x58, 0x67, 0xCC, 0xEA, +0x17, 0x91, 0x1A, 0x65, 0x0A, 0x92, 0xFF, 0xF7, +0x1F, 0x6D, 0xAC, 0xEF, 0xAC, 0xEA, 0xAC, 0xEB, +0xAC, 0xE8, 0xAC, 0xE9, 0x30, 0xF0, 0x20, 0x6D, +0x85, 0xF7, 0x08, 0x4D, 0xC3, 0xF4, 0xD0, 0x9D, +0x0A, 0xD2, 0x8C, 0xEE, 0x36, 0x26, 0xC3, 0xF4, +0x94, 0x9D, 0x05, 0x6A, 0x4E, 0xEC, 0x31, 0x2C, +0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF7, 0x9C, 0x9C, +0x07, 0xF3, 0xB0, 0x9D, 0x7F, 0x4A, 0x7C, 0x4A, +0xAC, 0xEC, 0x4E, 0xEC, 0x26, 0x2C, 0x9D, 0x67, +0x47, 0x44, 0x19, 0x4A, 0x40, 0xA2, 0xF4, 0xC4, +0xE2, 0x37, 0x52, 0xC4, 0x58, 0x67, 0x53, 0xC4, +0x47, 0x44, 0x21, 0x4A, 0x40, 0xA2, 0xF5, 0xC4, +0x56, 0xC4, 0x0A, 0x94, 0x82, 0x32, 0x9D, 0x67, +0x57, 0xC4, 0x02, 0x6A, 0x4B, 0xEA, 0x78, 0xC4, +0x1A, 0xC4, 0x3C, 0xC4, 0x50, 0xC4, 0x62, 0x33, +0x02, 0x30, 0x22, 0x31, 0x0C, 0x6A, 0x79, 0xC4, +0x1B, 0xC4, 0x3D, 0xC4, 0x4F, 0xCC, 0x05, 0x95, +0x04, 0x94, 0x06, 0x96, 0x07, 0x97, 0x80, 0x18, +0x00, 0x40, 0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, +0x08, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x40, 0xA4, 0x70, 0x69, +0x30, 0xF0, 0x20, 0x68, 0x06, 0xD2, 0x81, 0xA4, +0x85, 0xF7, 0x08, 0x48, 0x05, 0xD4, 0x05, 0x92, +0x9E, 0x33, 0x07, 0xD3, 0x8C, 0xE9, 0x7D, 0x67, +0x03, 0x6C, 0x8C, 0xEA, 0x87, 0x43, 0x11, 0x4C, +0x60, 0xA4, 0x32, 0x31, 0x04, 0xD2, 0x9D, 0x67, +0x09, 0xE1, 0xE4, 0xF0, 0x78, 0xC2, 0x67, 0x44, +0x09, 0x4B, 0x80, 0xA3, 0xE4, 0xF0, 0x9A, 0xC2, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF5, 0x18, 0x4C, +0x80, 0x18, 0x25, 0x42, 0x5D, 0x67, 0x67, 0x42, +0x15, 0x4B, 0x40, 0xA3, 0x07, 0x93, 0x04, 0xF1, +0x41, 0xC0, 0x21, 0x23, 0xE4, 0xF0, 0x7E, 0xA0, +0x01, 0x6A, 0x44, 0xE9, 0x6D, 0xEA, 0xE4, 0xF0, 0x5E, 0xC0, 0xC3, 0xF4, 0x50, 0x98, 0x10, 0x6B, 0x6C, 0xEA, 0x0D, 0x22, 0xC3, 0xF4, 0x54, 0x98, 0x05, 0x5A, 0x09, 0x61, 0x04, 0x96, 0x06, 0x97, -0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF5, 0x10, 0x4C, -0xB1, 0x67, 0x80, 0x18, 0x16, 0x42, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, 0x45, 0xE1, -0x01, 0x6A, 0x4B, 0xEA, 0xE4, 0xF0, 0x58, 0xC1, -0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, -0x0E, 0xD1, 0x0D, 0xD0, 0x40, 0xA4, 0x30, 0x68, -0x20, 0x6B, 0x18, 0xEA, 0x06, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x6A, 0xF0, 0x00, 0x4A, 0x24, 0x67, -0x12, 0xE8, 0x01, 0xE2, 0x58, 0xA0, 0x0A, 0xD2, -0x42, 0xA4, 0xBA, 0xA0, 0x58, 0xC0, 0x43, 0xA4, -0x01, 0x6C, 0x6C, 0xEA, 0xBF, 0x4B, 0xAC, 0xEB, -0x4D, 0xEB, 0x7A, 0xC0, 0x43, 0xA1, 0xA8, 0xA0, -0x4C, 0xEC, 0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, -0x8D, 0xEA, 0x5A, 0xC0, 0x83, 0xA1, 0x02, 0x6B, -0x6C, 0xEC, 0xFB, 0x4B, 0x4C, 0xEB, 0x8D, 0xEB, -0x7A, 0xC0, 0x83, 0xA1, 0x40, 0x6A, 0x4C, 0xEC, -0x80, 0x4A, 0xFF, 0x4A, 0x6C, 0xEA, 0x8D, 0xEA, -0x5A, 0xC0, 0x83, 0xA1, 0x7F, 0x6B, 0xAC, 0xEB, -0x9E, 0x34, 0x9C, 0x34, 0x8D, 0xEB, 0x68, 0xC0, -0x83, 0xA1, 0x09, 0xD4, 0x64, 0xA1, 0x7E, 0xC0, -0x65, 0xA1, 0x07, 0xD3, 0x86, 0xA1, 0x04, 0x6B, -0x8C, 0xEB, 0x6B, 0x33, 0x08, 0xD4, 0x20, 0xF0, -0x6E, 0xC0, 0x20, 0x6B, 0x6C, 0xEA, 0x22, 0x22, -0x06, 0x94, 0x80, 0x18, 0x86, 0x45, 0xC7, 0xA0, -0x03, 0x6C, 0xB8, 0xA0, 0xCA, 0x36, 0x8C, 0xEE, -0x06, 0x94, 0xFF, 0x6A, 0x4C, 0xEE, 0x80, 0x18, -0x32, 0x4F, 0x30, 0xF0, 0x20, 0x6A, 0x29, 0xF4, -0x48, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x0E, 0x22, -0xE7, 0xA0, 0x03, 0x6C, 0x06, 0x95, 0xEA, 0x37, -0xD8, 0xA0, 0x8C, 0xEF, 0xFF, 0x6A, 0x30, 0xF0, -0x20, 0x6C, 0xC3, 0xF5, 0x08, 0x4C, 0x4C, 0xEF, -0x80, 0x18, 0x16, 0x42, 0x30, 0xF0, 0x20, 0x6A, -0x29, 0xF4, 0x48, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, -0x0E, 0x22, 0x5E, 0xA0, 0xD8, 0xA0, 0xE3, 0xA1, -0x04, 0xD2, 0x20, 0xF0, 0x4E, 0xA0, 0x06, 0x95, -0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF5, 0x00, 0x4C, -0x05, 0xD2, 0x80, 0x18, 0x16, 0x42, 0x09, 0x93, -0x08, 0x6A, 0x6C, 0xEA, 0x19, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x29, 0xF4, 0x48, 0x9A, 0x08, 0x94, -0x20, 0x6B, 0x03, 0x69, 0x6C, 0xEA, 0x8C, 0xE9, -0x09, 0x22, 0x06, 0x95, 0x07, 0x96, 0x30, 0xF0, -0x20, 0x6C, 0x03, 0xF6, 0x00, 0x4C, 0xF1, 0x67, -0x80, 0x18, 0x16, 0x42, 0x06, 0x94, 0x07, 0x95, -0x00, 0x6E, 0xF1, 0x67, 0x80, 0x18, 0xD8, 0x4B, -0xFA, 0xA0, 0xD8, 0xA0, 0x06, 0x94, 0x0A, 0x95, -0x01, 0x6A, 0xF6, 0x37, 0x4C, 0xEF, 0x80, 0x18, -0xD7, 0x4A, 0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, -0x08, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x03, 0xA4, 0x44, 0xA4, 0xC0, 0xA4, -0x00, 0x30, 0x00, 0x30, 0x00, 0xF6, 0x40, 0x32, -0xA5, 0xA4, 0xE6, 0xA4, 0x0D, 0xEA, 0x01, 0xA4, -0x82, 0xA4, 0x30, 0xF0, 0x20, 0x6B, 0x0D, 0xEA, -0x80, 0x34, 0x45, 0xF7, 0x18, 0x4B, 0x8D, 0xEA, -0xC3, 0xF4, 0x50, 0xDB, 0x07, 0xF3, 0xD1, 0xC3, -0x0A, 0x26, 0x01, 0x6C, 0x4C, 0xEC, 0x07, 0x24, -0x07, 0xF3, 0xB2, 0xC3, 0x07, 0xF3, 0xF3, 0xC3, -0x02, 0x25, 0x80, 0x18, 0xA1, 0x50, 0x05, 0x97, -0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xA4, 0x30, 0xF0, 0x20, 0x6D, -0x42, 0xF7, 0x40, 0x9A, 0x42, 0xF7, 0xA4, 0x9D, -0x0C, 0x33, 0x49, 0xE3, 0x03, 0x4C, 0xAD, 0xE3, -0xA0, 0xA4, 0x01, 0x4C, 0xA0, 0xC2, 0x01, 0x4A, -0x6A, 0xEA, 0xFA, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0xC3, 0xF4, 0x70, 0x9A, -0x20, 0x6C, 0x8C, 0xEB, 0x11, 0x23, 0xC3, 0xF4, -0x54, 0x9A, 0x05, 0x5A, 0x0D, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x42, 0xF7, 0x40, 0x9A, 0x0C, 0x33, -0x30, 0xF0, 0x20, 0x6C, 0x49, 0xE3, 0xA0, 0x9A, -0x03, 0xF6, 0x1C, 0x4C, 0x80, 0x18, 0x16, 0x42, -0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, 0x40, 0x9A, -0x0C, 0x33, 0x30, 0xF0, 0x20, 0x6C, 0x49, 0xE3, -0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF7, 0x68, 0x9B, -0x40, 0x9A, 0x45, 0xF7, 0x18, 0x4C, 0xFF, 0x6E, -0x6C, 0xEA, 0xA3, 0xF4, 0x71, 0xA4, 0xA3, 0xF4, -0x96, 0xA4, 0xAF, 0x43, 0xCC, 0xED, 0x02, 0x5D, -0x04, 0x61, 0x01, 0x74, 0x02, 0x60, 0x02, 0x74, -0x11, 0x61, 0x10, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0x42, 0xF7, 0x4C, 0x9A, 0x00, 0x6B, 0x60, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, 0x70, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, 0x50, 0x9A, -0x60, 0xDA, 0xF0, 0x17, 0x03, 0x73, 0x13, 0x61, -0x00, 0xF4, 0x00, 0x5A, 0x10, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x42, 0xF7, 0x4C, 0x9A, 0x00, 0x6B, -0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, -0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, -0x50, 0x9A, 0x60, 0xDA, 0xF0, 0x17, 0x90, 0x67, -0x80, 0x18, 0x28, 0x4C, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x20, 0xA4, 0x30, 0x6E, -0x30, 0xF0, 0x20, 0x6A, 0xD8, 0xE9, 0x6A, 0xF0, -0x00, 0x4A, 0x61, 0xA4, 0x7E, 0x33, 0x68, 0x33, -0x12, 0xE8, 0x01, 0xE2, 0xAC, 0xA0, 0x05, 0x6A, -0x4B, 0xEA, 0xAC, 0xEA, 0x6D, 0xEA, 0x4C, 0xC0, -0xA1, 0xA4, 0x60, 0x6B, 0xAC, 0xEB, 0x76, 0x33, -0x06, 0xD3, 0xE8, 0xA0, 0x1F, 0x6B, 0xAC, 0xEB, -0x20, 0x6D, 0xAB, 0xED, 0xEC, 0xED, 0x6D, 0xED, -0xA8, 0xC0, 0xE2, 0xA4, 0x41, 0x6B, 0x6B, 0xEB, -0xFE, 0x37, 0xF8, 0x37, 0xAC, 0xEB, 0xED, 0xEB, -0x68, 0xC0, 0xA2, 0xA4, 0x40, 0x6F, 0xEC, 0xED, -0xBA, 0x35, 0xB4, 0x37, 0x21, 0x6D, 0xAB, 0xED, -0x6C, 0xED, 0xED, 0xED, 0xA8, 0xC0, 0xA2, 0xA4, -0x03, 0x6B, 0xCC, 0xED, 0xCC, 0x4E, 0xB2, 0x35, -0xCC, 0xEA, 0xAD, 0xEA, 0x4C, 0xC0, 0x42, 0xA4, -0x08, 0x6D, 0x03, 0x4C, 0x4C, 0xED, 0xAE, 0x35, -0x07, 0xD5, 0x4C, 0xEB, 0x47, 0xA0, 0x30, 0xF0, -0x20, 0x6D, 0x42, 0xF7, 0xA0, 0x9D, 0xCC, 0xEA, -0x6D, 0xEA, 0x47, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0x42, 0xF7, 0x58, 0x9A, 0x2C, 0x33, 0x49, 0xE3, -0xAD, 0xE3, 0xA0, 0xA4, 0x01, 0x4C, 0xA0, 0xC2, -0x01, 0x4A, 0x6A, 0xEA, 0xFA, 0x61, 0x07, 0x92, -0x09, 0x2A, 0x67, 0xA0, 0x03, 0x6A, 0x6C, 0xEA, -0x48, 0x34, 0x0D, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, -0x8D, 0xEA, 0x47, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0x29, 0xF4, 0x48, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, -0x13, 0x22, 0x8C, 0xA0, 0xC7, 0xA0, 0x03, 0x6A, -0x8A, 0x33, 0x4C, 0xEC, 0xCA, 0x37, 0x01, 0x6D, -0x05, 0xD4, 0x30, 0xF0, 0x20, 0x6C, 0xAC, 0xEB, -0x23, 0xF6, 0x08, 0x4C, 0xB1, 0x67, 0x4C, 0xEE, -0x4C, 0xEF, 0x04, 0xD3, 0x80, 0x18, 0x16, 0x42, -0x30, 0xF0, 0x20, 0x6A, 0x29, 0xF4, 0x48, 0x9A, -0x20, 0x6B, 0x6C, 0xEA, 0x12, 0x22, 0x06, 0x94, -0x48, 0xA0, 0x01, 0x6B, 0x04, 0xD4, 0x07, 0x94, -0x5A, 0x35, 0x56, 0x36, 0x05, 0xD4, 0x1F, 0x6F, -0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF6, 0x10, 0x4C, -0x6C, 0xED, 0x6C, 0xEE, 0x4C, 0xEF, 0x80, 0x18, -0x16, 0x42, 0x30, 0xF0, 0x20, 0x6A, 0x29, 0xF4, -0x48, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x0D, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, 0x58, 0x9A, -0x2C, 0x33, 0x30, 0xF0, 0x20, 0x6C, 0x49, 0xE3, -0xA0, 0x9A, 0x63, 0xF6, 0x1C, 0x4C, 0x80, 0x18, -0x16, 0x42, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, -0x58, 0x9A, 0x2C, 0x33, 0x49, 0xE3, 0x60, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0xA3, 0xF4, 0x91, 0xA2, 0x01, 0x74, 0x04, 0x60, -0xA3, 0xF4, 0x56, 0xA2, 0x01, 0x72, 0x16, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, 0x5C, 0x9A, -0x63, 0xEA, 0x10, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x42, 0xF7, 0x4C, 0x9A, 0x00, 0x6B, 0x60, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, 0x60, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, 0x50, 0x9A, -0x60, 0xDA, 0xF0, 0x17, 0x47, 0xA0, 0x03, 0x6B, -0x4A, 0x32, 0x6C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x09, 0xF4, 0x68, 0xA3, 0x05, 0x73, 0x11, 0x61, -0x38, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, -0x4C, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x62, 0xF7, 0x64, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0x82, 0xF5, 0x50, 0x9A, 0x60, 0xDA, -0xF0, 0x17, 0x06, 0x73, 0x12, 0x61, 0x02, 0x5A, -0x24, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, -0x4C, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x62, 0xF7, 0x68, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0x82, 0xF5, 0x50, 0x9A, 0x60, 0xDA, -0xF0, 0x17, 0x07, 0x73, 0x12, 0x61, 0x03, 0x72, -0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, -0x4C, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x62, 0xF7, 0x6C, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0x82, 0xF5, 0x50, 0x9A, 0x60, 0xDA, -0xF0, 0x17, 0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF4, -0x4A, 0xA2, 0x02, 0x72, 0x14, 0x61, 0x6C, 0xA0, -0x03, 0x6A, 0x6C, 0xEA, 0x10, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x42, 0xF7, 0x4C, 0x9A, 0x00, 0x6B, -0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, -0x70, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, -0x50, 0x9A, 0x60, 0xDA, 0xF0, 0x17, 0x91, 0x67, -0x80, 0x18, 0x28, 0x4C, 0x06, 0x92, 0x0D, 0x22, -0x04, 0x6B, 0xC7, 0xA0, 0x4F, 0xE3, 0x09, 0x6A, -0x44, 0xEB, 0xFF, 0x6D, 0xCA, 0x36, 0x4C, 0xED, -0x03, 0x6A, 0x91, 0x67, 0x4C, 0xEE, 0x80, 0x18, -0x32, 0x4F, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0x4C, 0xEC, 0xC0, 0x4C, 0x4C, 0xEC, -0x13, 0x5C, 0x2F, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x88, 0x34, 0x62, 0xF1, 0x10, 0x4A, 0x89, 0xE2, -0x40, 0x9A, 0x00, 0xEA, 0x85, 0x67, 0x80, 0x18, -0x91, 0x44, 0x23, 0x10, 0x85, 0x67, 0x80, 0x18, -0xE9, 0x43, 0x1F, 0x10, 0x85, 0x67, 0x80, 0x18, -0x54, 0x44, 0x1B, 0x10, 0x85, 0x67, 0x80, 0x18, -0x44, 0x43, 0x17, 0x10, 0x85, 0x67, 0x80, 0x18, -0x28, 0x42, 0x13, 0x10, 0x85, 0x67, 0x80, 0x18, -0x3F, 0x44, 0x0F, 0x10, 0x85, 0x67, 0x80, 0x18, -0x9F, 0x42, 0x0B, 0x10, 0x85, 0x67, 0x80, 0x18, -0xAC, 0x43, 0x07, 0x10, 0x85, 0x67, 0x80, 0x18, -0x3F, 0x41, 0x03, 0x10, 0x85, 0x67, 0x80, 0x18, -0xED, 0x40, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0x05, 0x6B, 0xC3, 0xF4, 0x74, 0xDA, 0x09, 0x6B, -0xC3, 0xF4, 0x70, 0xDA, 0x20, 0xE8, 0x00, 0x65, -0xFF, 0x63, 0x01, 0xD0, 0x00, 0x6A, 0x83, 0xF5, -0xAC, 0x42, 0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF7, -0x18, 0x4B, 0xA4, 0x35, 0x00, 0x6C, 0x75, 0xE5, -0x80, 0xCD, 0x03, 0xF6, 0xAC, 0x42, 0xC4, 0xF1, -0x0C, 0x42, 0xA4, 0x35, 0x75, 0xE5, 0x04, 0x30, -0x80, 0xCD, 0x61, 0xE0, 0x75, 0xE2, 0x07, 0xF7, -0x98, 0xC5, 0x87, 0xF7, 0x98, 0xC5, 0x44, 0xF1, -0xEC, 0x42, 0x80, 0xC8, 0xC4, 0xF2, 0xCC, 0x42, -0x44, 0xF2, 0x0C, 0x42, 0xE4, 0x37, 0xC4, 0x36, -0x04, 0x30, 0x79, 0xE6, 0x7D, 0xE7, 0x61, 0xE0, -0x80, 0xC8, 0x80, 0xCF, 0x80, 0xCE, 0xC4, 0xF3, -0xCC, 0x42, 0xC4, 0x36, 0x79, 0xE6, 0x80, 0xCE, -0x44, 0xF3, 0xCC, 0x42, 0xC4, 0x36, 0x79, 0xE6, -0x80, 0xCE, 0x44, 0xF4, 0xCC, 0x42, 0xC4, 0x36, -0x79, 0xE6, 0x82, 0xCE, 0xC4, 0xF4, 0xCC, 0x42, -0xC4, 0x36, 0x79, 0xE6, 0x82, 0xCE, 0x44, 0xF5, -0xCC, 0x42, 0xC4, 0x36, 0x79, 0xE6, 0x82, 0xCE, -0x04, 0xF0, 0xCC, 0x42, 0xC4, 0x36, 0x79, 0xE6, -0x80, 0xCE, 0x84, 0xF0, 0xCC, 0x42, 0xC4, 0x36, -0x79, 0xE6, 0x80, 0xCE, 0x01, 0x4A, 0x08, 0xF2, -0x98, 0xC5, 0xFF, 0x6C, 0x8C, 0xEA, 0x80, 0x72, -0xAE, 0x61, 0x01, 0x90, 0x58, 0x67, 0x89, 0xF0, -0x58, 0xDB, 0x01, 0x63, 0x20, 0xE8, 0x00, 0x65, -0xFF, 0x6A, 0x8C, 0xEA, 0xC4, 0xF3, 0xAC, 0x42, -0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF7, 0x18, 0x4B, -0xA4, 0x35, 0x00, 0x6C, 0x75, 0xE5, 0x80, 0xCD, -0x44, 0xF3, 0xAC, 0x42, 0xA4, 0x35, 0x75, 0xE5, -0x80, 0xCD, 0x44, 0xF4, 0xAC, 0x42, 0xA4, 0x35, -0x75, 0xE5, 0x82, 0xCD, 0xC4, 0xF4, 0xAC, 0x42, -0x44, 0xF5, 0x0C, 0x4A, 0xA4, 0x35, 0x44, 0x32, -0x75, 0xE5, 0x6D, 0xE2, 0x82, 0xCD, 0x82, 0xCB, -0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x8C, 0xEA, -0x04, 0xF0, 0xAC, 0x42, 0x30, 0xF0, 0x20, 0x6B, -0x45, 0xF7, 0x18, 0x4B, 0xA4, 0x35, 0x00, 0x6C, -0x75, 0xE5, 0x80, 0xCD, 0x84, 0xF0, 0xAC, 0x42, -0xA4, 0x35, 0x75, 0xE5, 0x69, 0xE2, 0x80, 0xCD, -0x08, 0xF2, 0x98, 0xC2, 0x20, 0xE8, 0x00, 0x65, -0xFF, 0x6A, 0x8C, 0xEA, 0x44, 0xF1, 0xAC, 0x42, -0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF7, 0x18, 0x4B, -0xA4, 0x35, 0x00, 0x6C, 0x75, 0xE5, 0x80, 0xCD, -0xC4, 0xF2, 0xAC, 0x42, 0xA4, 0x35, 0x75, 0xE5, -0x80, 0xCD, 0xC4, 0xF1, 0xAC, 0x42, 0xA4, 0x35, -0x75, 0xE5, 0x80, 0xCD, 0x44, 0xF2, 0xAC, 0x42, -0xA4, 0x35, 0x75, 0xE5, 0x80, 0xCD, 0x30, 0x6C, -0x98, 0xEA, 0xB0, 0x4C, 0x12, 0xEA, 0x6D, 0xE2, -0x24, 0xF1, 0x47, 0xA3, 0x4C, 0xEC, 0x24, 0xF1, -0x87, 0xC3, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0xD1, -0x06, 0xD0, 0x0D, 0x92, 0xFF, 0xF7, 0x1F, 0x6B, -0x1B, 0x65, 0x02, 0xD2, 0xCC, 0xEB, 0x00, 0xD3, -0x0C, 0x90, 0x02, 0x93, 0xD8, 0x67, 0xFF, 0x69, -0x2C, 0xEC, 0xCC, 0xEF, 0xCC, 0xEB, 0xCC, 0xE8, -0x30, 0x6E, 0xD8, 0xEC, 0x0E, 0x92, 0x30, 0xF0, -0x20, 0x6E, 0x6A, 0xF0, 0x00, 0x4E, 0x2C, 0xEA, -0x02, 0xD3, 0x03, 0xE7, 0x78, 0x67, 0x6C, 0xE8, -0x12, 0xE9, 0x39, 0xE6, 0x00, 0x91, 0x01, 0xD6, -0x3B, 0xE5, 0xFB, 0xE6, 0x03, 0xD6, 0xC4, 0xF3, -0x2C, 0x44, 0x30, 0xF0, 0x20, 0x6E, 0x24, 0x31, -0x45, 0xF7, 0x18, 0x4E, 0xD9, 0xE1, 0x00, 0x91, -0x04, 0xD6, 0xC0, 0xAE, 0x2F, 0xE3, 0xC2, 0xEB, -0x03, 0x61, 0x04, 0x93, 0xD9, 0xE1, 0xC0, 0xCB, -0x30, 0xF0, 0x20, 0x6B, 0x44, 0xF3, 0xCC, 0x44, -0x45, 0xF7, 0x18, 0x4B, 0xC4, 0x36, 0x79, 0xE6, -0x60, 0xAE, 0xFF, 0xF7, 0x1F, 0x69, 0xE7, 0xE1, -0x62, 0xE9, 0x02, 0x61, 0x6D, 0xE7, 0x60, 0xCE, -0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF7, 0x18, 0x4B, -0x89, 0xF0, 0xD8, 0x9B, 0x0F, 0xE9, 0xC3, 0xE9, -0x03, 0x61, 0xC1, 0xE0, 0x89, 0xF0, 0x18, 0xDB, -0x30, 0xF0, 0x20, 0x6E, 0x44, 0xF4, 0x6C, 0x44, -0x45, 0xF7, 0x18, 0x4E, 0x64, 0x33, 0xCD, 0xE3, -0x03, 0x91, 0xC2, 0xAB, 0xFF, 0xF7, 0x1F, 0x68, -0x23, 0xE0, 0xC3, 0xE8, 0x02, 0x61, 0xD9, 0xE1, -0xC2, 0xCB, 0x30, 0xF0, 0x20, 0x6E, 0x44, 0xF5, -0x6C, 0x44, 0x45, 0xF7, 0x18, 0x4E, 0x64, 0x33, -0xCD, 0xE3, 0x02, 0x91, 0xC2, 0xAB, 0xFF, 0xF7, -0x1F, 0x68, 0x23, 0xE0, 0xC2, 0xE8, 0x02, 0x61, -0xD9, 0xE1, 0xC2, 0xCB, 0x30, 0xF0, 0x20, 0x6E, -0xC4, 0xF4, 0x6C, 0x44, 0x45, 0xF7, 0x18, 0x4E, -0x64, 0x33, 0xCD, 0xE3, 0xC2, 0xAB, 0xFF, 0xF7, -0x1F, 0x68, 0xA3, 0xE0, 0xC3, 0xE8, 0x02, 0x61, -0xD9, 0xE5, 0xC2, 0xCB, 0x01, 0x96, 0x75, 0xAE, -0xFF, 0xF7, 0x1F, 0x6E, 0xBB, 0xE6, 0xC3, 0xEB, -0x03, 0x60, 0x01, 0x90, 0x6D, 0xE5, 0x75, 0xC8, -0x01, 0x91, 0xFF, 0xF7, 0x1F, 0x6E, 0xBB, 0xE6, -0x76, 0xA9, 0xC3, 0xEB, 0x02, 0x60, 0x75, 0xE5, -0xB6, 0xC9, 0x6A, 0x42, 0xFF, 0x6D, 0xAC, 0xEB, -0x02, 0x5B, 0x00, 0x6B, 0x0A, 0x61, 0x6C, 0x42, -0xAC, 0xEB, 0x02, 0x5B, 0x01, 0x6B, 0x05, 0x61, -0x03, 0x22, 0x03, 0x72, 0x03, 0x6B, 0x01, 0x61, -0x02, 0x6B, 0x88, 0x32, 0x69, 0xE2, 0x30, 0xF0, -0x20, 0x6D, 0xC4, 0xF5, 0x0C, 0x4A, 0x45, 0xF7, -0x18, 0x4D, 0x44, 0x32, 0xA9, 0xE2, 0xA2, 0xAA, -0xFF, 0xF7, 0x1F, 0x6E, 0xFB, 0xE6, 0xC2, 0xED, -0x02, 0x60, 0xBD, 0xE7, 0xE2, 0xCA, 0x88, 0x34, -0x6D, 0xE4, 0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF7, -0x0C, 0x4B, 0x45, 0xF7, 0x18, 0x4A, 0x64, 0x33, -0x4D, 0xE3, 0x00, 0x95, 0x42, 0xAB, 0xFF, 0xF7, -0x1F, 0x6C, 0xB3, 0xE4, 0x82, 0xEA, 0x02, 0x60, -0x49, 0xE5, 0x42, 0xCB, 0x07, 0x91, 0x06, 0x90, -0x04, 0x63, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x29, 0xF4, -0x48, 0x9A, 0x01, 0x6B, 0xFF, 0x68, 0x6C, 0xEA, -0x8C, 0xE8, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, -0x83, 0xF6, 0x08, 0x4C, 0x80, 0x18, 0x16, 0x42, -0x83, 0xF6, 0x8C, 0x40, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0x84, 0x34, 0x00, 0x6B, -0x51, 0xE4, 0x60, 0xCC, 0x03, 0xF7, 0x8C, 0x40, -0x84, 0x34, 0x51, 0xE4, 0x60, 0xCC, 0x03, 0xF6, -0x8C, 0x40, 0x84, 0x34, 0x51, 0xE4, 0x60, 0xCC, -0x83, 0xF5, 0x8C, 0x40, 0x84, 0x34, 0x41, 0xE0, -0x51, 0xE4, 0x60, 0xCC, 0x07, 0xF7, 0x78, 0xC0, -0x87, 0xF7, 0x78, 0xC0, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF7, 0x74, 0x9B, -0xFF, 0x6A, 0x8C, 0xEA, 0x50, 0x32, 0x69, 0xE2, -0x60, 0x9A, 0x30, 0xF0, 0x21, 0x6C, 0xF0, 0xF2, -0x14, 0x4C, 0x04, 0xD3, 0x61, 0x9A, 0x04, 0x05, -0x10, 0x6E, 0x05, 0xD3, 0x62, 0x9A, 0x06, 0xD3, -0x43, 0x9A, 0x07, 0xD2, 0x00, 0x18, 0x15, 0xC8, -0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF5, 0x04, 0x4C, +0xB1, 0x67, 0x80, 0x18, 0x25, 0x42, 0x05, 0x94, +0x0C, 0x6D, 0x8C, 0xED, 0xAA, 0x35, 0x91, 0x67, +0x80, 0x18, 0xB2, 0x4B, 0x23, 0x10, 0xE4, 0xF0, +0x7E, 0xA0, 0x01, 0x6A, 0x44, 0xE9, 0x4F, 0xEA, +0x6C, 0xEA, 0xE4, 0xF0, 0x5E, 0xC0, 0xC3, 0xF4, +0x50, 0x98, 0x10, 0x6B, 0x6C, 0xEA, 0x0D, 0x22, +0xC3, 0xF4, 0x54, 0x98, 0x05, 0x5A, 0x09, 0x61, +0x04, 0x96, 0x06, 0x97, 0x30, 0xF0, 0x20, 0x6C, +0xC3, 0xF5, 0x18, 0x4C, 0xB1, 0x67, 0x80, 0x18, +0x25, 0x42, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0x45, 0xE1, 0x01, 0x6A, 0x4B, 0xEA, +0xE4, 0xF0, 0x58, 0xC1, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, -0xFF, 0x69, 0x2C, 0xEC, 0x80, 0x18, 0x37, 0x46, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0x8A, 0xF3, 0x7E, 0xA2, 0x7F, 0x68, 0x01, 0x6C, -0x6C, 0xE8, 0xC3, 0xF4, 0x70, 0x9A, 0x2C, 0xE8, -0x8C, 0xEB, 0x21, 0x23, 0xAA, 0xF3, 0x85, 0xA2, -0xAA, 0xF3, 0xC4, 0xA2, 0x8A, 0xF3, 0xFF, 0xA2, -0x04, 0xD4, 0xAA, 0xF3, 0x88, 0xA2, 0x3F, 0x6B, -0x6C, 0xEE, 0x6C, 0xEC, 0x05, 0xD4, 0xAA, 0xF3, -0x80, 0xA2, 0xB0, 0x67, 0x2C, 0xEE, 0x6C, 0xEC, -0x06, 0xD4, 0xAA, 0xF3, 0x81, 0xA2, 0x8C, 0xEB, -0x07, 0xD3, 0xAA, 0xF3, 0x40, 0xA2, 0x30, 0xF0, -0x20, 0x6C, 0x83, 0xF6, 0x14, 0x4C, 0x5E, 0x32, -0x08, 0xD2, 0x80, 0x18, 0x16, 0x42, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, 0x90, 0x67, -0x40, 0xEA, 0xC0, 0xF1, 0x0F, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, 0x8A, 0xF3, -0x9D, 0xA2, 0x80, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, -0xFF, 0x6C, 0x8C, 0xEB, 0x0B, 0x23, 0xC3, 0xF4, -0x50, 0x9A, 0x01, 0x6B, 0x6C, 0xEA, 0xA0, 0xF1, -0x1D, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF6, -0x0C, 0x4C, 0x10, 0x10, 0xAA, 0xF3, 0xA3, 0xA2, -0x10, 0x6B, 0xAC, 0xEB, 0x8C, 0xEB, 0x0D, 0x23, +0x40, 0xA4, 0x30, 0x68, 0x20, 0x6B, 0x18, 0xEA, +0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x8A, 0xF0, +0x10, 0x4A, 0x24, 0x67, 0x12, 0xE8, 0x01, 0xE2, +0x58, 0xA0, 0x0A, 0xD2, 0x42, 0xA4, 0xBA, 0xA0, +0x58, 0xC0, 0x43, 0xA4, 0x01, 0x6C, 0x6C, 0xEA, +0xBF, 0x4B, 0xAC, 0xEB, 0x4D, 0xEB, 0x7A, 0xC0, +0x43, 0xA1, 0xA8, 0xA0, 0x4C, 0xEC, 0x02, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x8D, 0xEA, 0x5A, 0xC0, +0x83, 0xA1, 0x02, 0x6B, 0x6C, 0xEC, 0xFB, 0x4B, +0x4C, 0xEB, 0x8D, 0xEB, 0x7A, 0xC0, 0x83, 0xA1, +0x40, 0x6A, 0x4C, 0xEC, 0x80, 0x4A, 0xFF, 0x4A, +0x6C, 0xEA, 0x8D, 0xEA, 0x5A, 0xC0, 0x83, 0xA1, +0x7F, 0x6B, 0xAC, 0xEB, 0x9E, 0x34, 0x9C, 0x34, +0x8D, 0xEB, 0x68, 0xC0, 0x83, 0xA1, 0x09, 0xD4, +0x64, 0xA1, 0x7E, 0xC0, 0x65, 0xA1, 0x07, 0xD3, +0x86, 0xA1, 0x04, 0x6B, 0x8C, 0xEB, 0x6B, 0x33, +0x08, 0xD4, 0x20, 0xF0, 0x6E, 0xC0, 0x20, 0x6B, +0x6C, 0xEA, 0x22, 0x22, 0x06, 0x94, 0x80, 0x18, +0x95, 0x45, 0xC7, 0xA0, 0x03, 0x6C, 0xB8, 0xA0, +0xCA, 0x36, 0x8C, 0xEE, 0x06, 0x94, 0xFF, 0x6A, +0x4C, 0xEE, 0x80, 0x18, 0x42, 0x4F, 0x30, 0xF0, +0x20, 0x6A, 0x49, 0xF4, 0x58, 0x9A, 0x20, 0x6B, +0x6C, 0xEA, 0x0E, 0x22, 0xE7, 0xA0, 0x03, 0x6C, +0x06, 0x95, 0xEA, 0x37, 0xD8, 0xA0, 0x8C, 0xEF, +0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF5, +0x10, 0x4C, 0x4C, 0xEF, 0x80, 0x18, 0x25, 0x42, +0x30, 0xF0, 0x20, 0x6A, 0x49, 0xF4, 0x58, 0x9A, +0x20, 0x6B, 0x6C, 0xEA, 0x0E, 0x22, 0x5E, 0xA0, +0xD8, 0xA0, 0xE3, 0xA1, 0x04, 0xD2, 0x20, 0xF0, +0x4E, 0xA0, 0x06, 0x95, 0x30, 0xF0, 0x20, 0x6C, +0x03, 0xF6, 0x08, 0x4C, 0x05, 0xD2, 0x80, 0x18, +0x25, 0x42, 0x09, 0x93, 0x08, 0x6A, 0x6C, 0xEA, +0x19, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x49, 0xF4, +0x58, 0x9A, 0x08, 0x94, 0x20, 0x6B, 0x03, 0x69, +0x6C, 0xEA, 0x8C, 0xE9, 0x09, 0x22, 0x06, 0x95, +0x07, 0x96, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF6, +0x08, 0x4C, 0xF1, 0x67, 0x80, 0x18, 0x25, 0x42, +0x06, 0x94, 0x07, 0x95, 0x00, 0x6E, 0xF1, 0x67, +0x80, 0x18, 0xE7, 0x4B, 0xFA, 0xA0, 0xD8, 0xA0, +0x06, 0x94, 0x0A, 0x95, 0x01, 0x6A, 0xF6, 0x37, +0x4C, 0xEF, 0x80, 0x18, 0xE6, 0x4A, 0x0F, 0x97, +0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x03, 0xA4, +0x44, 0xA4, 0xC0, 0xA4, 0x00, 0x30, 0x00, 0x30, +0x00, 0xF6, 0x40, 0x32, 0xA5, 0xA4, 0xE6, 0xA4, +0x0D, 0xEA, 0x01, 0xA4, 0x82, 0xA4, 0x30, 0xF0, +0x20, 0x6B, 0x0D, 0xEA, 0x80, 0x34, 0x85, 0xF7, +0x08, 0x4B, 0x8D, 0xEA, 0xC3, 0xF4, 0x50, 0xDB, +0x07, 0xF3, 0xD1, 0xC3, 0x0A, 0x26, 0x01, 0x6C, +0x4C, 0xEC, 0x07, 0x24, 0x07, 0xF3, 0xB2, 0xC3, +0x07, 0xF3, 0xF3, 0xC3, 0x02, 0x25, 0x80, 0x18, +0xB1, 0x50, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xA4, +0x30, 0xF0, 0x20, 0x6D, 0x62, 0xF7, 0x44, 0x9A, +0x62, 0xF7, 0xA8, 0x9D, 0x0C, 0x33, 0x49, 0xE3, +0x03, 0x4C, 0xAD, 0xE3, 0xA0, 0xA4, 0x01, 0x4C, +0xA0, 0xC2, 0x01, 0x4A, 0x6A, 0xEA, 0xFA, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, +0xC3, 0xF4, 0x70, 0x9A, 0x20, 0x6C, 0x8C, 0xEB, +0x11, 0x23, 0xC3, 0xF4, 0x54, 0x9A, 0x05, 0x5A, +0x0D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, +0x44, 0x9A, 0x0C, 0x33, 0x30, 0xF0, 0x20, 0x6C, +0x49, 0xE3, 0xA0, 0x9A, 0x43, 0xF6, 0x04, 0x4C, +0x80, 0x18, 0x25, 0x42, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF7, 0x44, 0x9A, 0x0C, 0x33, 0x30, 0xF0, +0x20, 0x6C, 0x49, 0xE3, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF7, 0x6C, 0x9B, 0x40, 0x9A, 0x85, 0xF7, +0x08, 0x4C, 0xFF, 0x6E, 0x6C, 0xEA, 0xA3, 0xF4, +0x71, 0xA4, 0xA3, 0xF4, 0x96, 0xA4, 0xAF, 0x43, +0xCC, 0xED, 0x02, 0x5D, 0x04, 0x61, 0x01, 0x74, +0x02, 0x60, 0x02, 0x74, 0x11, 0x61, 0x10, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, 0x50, 0x9A, +0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF7, 0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF5, 0x50, 0x9A, 0x60, 0xDA, 0xF0, 0x17, +0x03, 0x73, 0x13, 0x61, 0x00, 0xF4, 0x00, 0x5A, +0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, +0x50, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF7, 0x78, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF5, 0x50, 0x9A, 0x60, 0xDA, +0xF0, 0x17, 0x90, 0x67, 0x80, 0x18, 0x38, 0x4C, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x20, 0xA4, 0x30, 0x6E, 0x30, 0xF0, 0x20, 0x6A, +0xD8, 0xE9, 0x8A, 0xF0, 0x10, 0x4A, 0x61, 0xA4, +0x7E, 0x33, 0x68, 0x33, 0x12, 0xE8, 0x01, 0xE2, +0xAC, 0xA0, 0x05, 0x6A, 0x4B, 0xEA, 0xAC, 0xEA, +0x6D, 0xEA, 0x4C, 0xC0, 0xA1, 0xA4, 0x60, 0x6B, +0xAC, 0xEB, 0x76, 0x33, 0x06, 0xD3, 0xE8, 0xA0, +0x1F, 0x6B, 0xAC, 0xEB, 0x20, 0x6D, 0xAB, 0xED, +0xEC, 0xED, 0x6D, 0xED, 0xA8, 0xC0, 0xE2, 0xA4, +0x41, 0x6B, 0x6B, 0xEB, 0xFE, 0x37, 0xF8, 0x37, +0xAC, 0xEB, 0xED, 0xEB, 0x68, 0xC0, 0xA2, 0xA4, +0x40, 0x6F, 0xEC, 0xED, 0xBA, 0x35, 0xB4, 0x37, +0x21, 0x6D, 0xAB, 0xED, 0x6C, 0xED, 0xED, 0xED, +0xA8, 0xC0, 0xA2, 0xA4, 0x03, 0x6B, 0xCC, 0xED, +0xCC, 0x4E, 0xB2, 0x35, 0xCC, 0xEA, 0xAD, 0xEA, +0x4C, 0xC0, 0x42, 0xA4, 0x08, 0x6D, 0x03, 0x4C, +0x4C, 0xED, 0xAE, 0x35, 0x07, 0xD5, 0x4C, 0xEB, +0x47, 0xA0, 0x30, 0xF0, 0x20, 0x6D, 0x62, 0xF7, +0xA4, 0x9D, 0xCC, 0xEA, 0x6D, 0xEA, 0x47, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, 0x5C, 0x9A, +0x2C, 0x33, 0x49, 0xE3, 0xAD, 0xE3, 0xA0, 0xA4, +0x01, 0x4C, 0xA0, 0xC2, 0x01, 0x4A, 0x6A, 0xEA, +0xFA, 0x61, 0x07, 0x92, 0x09, 0x2A, 0x67, 0xA0, +0x03, 0x6A, 0x6C, 0xEA, 0x48, 0x34, 0x0D, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x8D, 0xEA, 0x47, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x49, 0xF4, 0x58, 0x9A, +0x20, 0x6B, 0x6C, 0xEA, 0x13, 0x22, 0x8C, 0xA0, +0xC7, 0xA0, 0x03, 0x6A, 0x8A, 0x33, 0x4C, 0xEC, +0xCA, 0x37, 0x01, 0x6D, 0x05, 0xD4, 0x30, 0xF0, +0x20, 0x6C, 0xAC, 0xEB, 0x43, 0xF6, 0x10, 0x4C, +0xB1, 0x67, 0x4C, 0xEE, 0x4C, 0xEF, 0x04, 0xD3, +0x80, 0x18, 0x25, 0x42, 0x30, 0xF0, 0x20, 0x6A, +0x49, 0xF4, 0x58, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, +0x12, 0x22, 0x06, 0x94, 0x48, 0xA0, 0x01, 0x6B, +0x04, 0xD4, 0x07, 0x94, 0x5A, 0x35, 0x56, 0x36, +0x05, 0xD4, 0x1F, 0x6F, 0x30, 0xF0, 0x20, 0x6C, +0x63, 0xF6, 0x18, 0x4C, 0x6C, 0xED, 0x6C, 0xEE, +0x4C, 0xEF, 0x80, 0x18, 0x25, 0x42, 0x30, 0xF0, +0x20, 0x6A, 0x49, 0xF4, 0x58, 0x9A, 0x20, 0x6B, +0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF7, 0x5C, 0x9A, 0x2C, 0x33, 0x30, 0xF0, +0x20, 0x6C, 0x49, 0xE3, 0xA0, 0x9A, 0xA3, 0xF6, +0x04, 0x4C, 0x80, 0x18, 0x25, 0x42, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF7, 0x5C, 0x9A, 0x2C, 0x33, +0x49, 0xE3, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0xA3, 0xF4, 0x91, 0xA2, +0x01, 0x74, 0x04, 0x60, 0xA3, 0xF4, 0x56, 0xA2, +0x01, 0x72, 0x16, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF7, 0x40, 0x9A, 0x63, 0xEA, 0x10, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, 0x50, 0x9A, +0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF7, 0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF5, 0x50, 0x9A, 0x60, 0xDA, 0xF0, 0x17, +0x47, 0xA0, 0x03, 0x6B, 0x4A, 0x32, 0x6C, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x29, 0xF4, 0x78, 0xA3, +0x05, 0x73, 0x11, 0x61, 0x38, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF7, 0x50, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, +0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, +0x50, 0x9A, 0x60, 0xDA, 0xF0, 0x17, 0x06, 0x73, +0x12, 0x61, 0x02, 0x5A, 0x24, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF7, 0x50, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, +0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, +0x50, 0x9A, 0x60, 0xDA, 0xF0, 0x17, 0x07, 0x73, +0x12, 0x61, 0x03, 0x72, 0x10, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF7, 0x50, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, +0x70, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, +0x50, 0x9A, 0x60, 0xDA, 0xF0, 0x17, 0x30, 0xF0, +0x20, 0x6A, 0x29, 0xF4, 0x5A, 0xA2, 0x02, 0x72, +0x14, 0x61, 0x6C, 0xA0, 0x03, 0x6A, 0x6C, 0xEA, +0x10, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, +0x50, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF7, 0x74, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF5, 0x50, 0x9A, 0x60, 0xDA, +0xF0, 0x17, 0x91, 0x67, 0x80, 0x18, 0x38, 0x4C, +0x06, 0x92, 0x0D, 0x22, 0x04, 0x6B, 0xC7, 0xA0, +0x4F, 0xE3, 0x09, 0x6A, 0x44, 0xEB, 0xFF, 0x6D, +0xCA, 0x36, 0x4C, 0xED, 0x03, 0x6A, 0x91, 0x67, +0x4C, 0xEE, 0x80, 0x18, 0x42, 0x4F, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0xC0, 0x4C, 0x4C, 0xEC, 0x13, 0x5C, 0x2F, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, 0x62, 0xF1, +0x10, 0x4A, 0x89, 0xE2, 0x40, 0x9A, 0x00, 0xEA, +0x85, 0x67, 0x80, 0x18, 0xA0, 0x44, 0x23, 0x10, +0x85, 0x67, 0x80, 0x18, 0xF8, 0x43, 0x1F, 0x10, +0x85, 0x67, 0x80, 0x18, 0x63, 0x44, 0x1B, 0x10, +0x85, 0x67, 0x80, 0x18, 0x53, 0x43, 0x17, 0x10, +0x85, 0x67, 0x80, 0x18, 0x37, 0x42, 0x13, 0x10, +0x85, 0x67, 0x80, 0x18, 0x4E, 0x44, 0x0F, 0x10, +0x85, 0x67, 0x80, 0x18, 0xAE, 0x42, 0x0B, 0x10, +0x85, 0x67, 0x80, 0x18, 0xBB, 0x43, 0x07, 0x10, +0x85, 0x67, 0x80, 0x18, 0x4E, 0x41, 0x03, 0x10, +0x85, 0x67, 0x80, 0x18, 0xFC, 0x40, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0x05, 0x6B, 0xC3, 0xF4, +0x74, 0xDA, 0x09, 0x6B, 0xC3, 0xF4, 0x70, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, +0x00, 0x6A, 0x83, 0xF5, 0xAC, 0x42, 0x30, 0xF0, +0x20, 0x6B, 0x85, 0xF7, 0x08, 0x4B, 0xA4, 0x35, +0x00, 0x6C, 0x75, 0xE5, 0x80, 0xCD, 0x03, 0xF6, +0xAC, 0x42, 0xC4, 0xF1, 0x0C, 0x42, 0xA4, 0x35, +0x75, 0xE5, 0x04, 0x30, 0x80, 0xCD, 0x61, 0xE0, +0x75, 0xE2, 0x07, 0xF7, 0x98, 0xC5, 0x87, 0xF7, +0x98, 0xC5, 0x44, 0xF1, 0xEC, 0x42, 0x80, 0xC8, +0xC4, 0xF2, 0xCC, 0x42, 0x44, 0xF2, 0x0C, 0x42, +0xE4, 0x37, 0xC4, 0x36, 0x04, 0x30, 0x79, 0xE6, +0x7D, 0xE7, 0x61, 0xE0, 0x80, 0xC8, 0x80, 0xCF, +0x80, 0xCE, 0xC4, 0xF3, 0xCC, 0x42, 0xC4, 0x36, +0x79, 0xE6, 0x80, 0xCE, 0x44, 0xF3, 0xCC, 0x42, +0xC4, 0x36, 0x79, 0xE6, 0x80, 0xCE, 0x44, 0xF4, +0xCC, 0x42, 0xC4, 0x36, 0x79, 0xE6, 0x82, 0xCE, +0xC4, 0xF4, 0xCC, 0x42, 0xC4, 0x36, 0x79, 0xE6, +0x82, 0xCE, 0x44, 0xF5, 0xCC, 0x42, 0xC4, 0x36, +0x79, 0xE6, 0x82, 0xCE, 0x04, 0xF0, 0xCC, 0x42, +0xC4, 0x36, 0x79, 0xE6, 0x80, 0xCE, 0x84, 0xF0, +0xCC, 0x42, 0xC4, 0x36, 0x79, 0xE6, 0x80, 0xCE, +0x01, 0x4A, 0x08, 0xF2, 0x98, 0xC5, 0xFF, 0x6C, +0x8C, 0xEA, 0x80, 0x72, 0xAE, 0x61, 0x01, 0x90, +0x58, 0x67, 0x89, 0xF0, 0x58, 0xDB, 0x01, 0x63, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x8C, 0xEA, +0xC4, 0xF3, 0xAC, 0x42, 0x30, 0xF0, 0x20, 0x6B, +0x85, 0xF7, 0x08, 0x4B, 0xA4, 0x35, 0x00, 0x6C, +0x75, 0xE5, 0x80, 0xCD, 0x44, 0xF3, 0xAC, 0x42, +0xA4, 0x35, 0x75, 0xE5, 0x80, 0xCD, 0x44, 0xF4, +0xAC, 0x42, 0xA4, 0x35, 0x75, 0xE5, 0x82, 0xCD, +0xC4, 0xF4, 0xAC, 0x42, 0x44, 0xF5, 0x0C, 0x4A, +0xA4, 0x35, 0x44, 0x32, 0x75, 0xE5, 0x6D, 0xE2, +0x82, 0xCD, 0x82, 0xCB, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0x8C, 0xEA, 0x04, 0xF0, 0xAC, 0x42, +0x30, 0xF0, 0x20, 0x6B, 0x85, 0xF7, 0x08, 0x4B, +0xA4, 0x35, 0x00, 0x6C, 0x75, 0xE5, 0x80, 0xCD, +0x84, 0xF0, 0xAC, 0x42, 0xA4, 0x35, 0x75, 0xE5, +0x69, 0xE2, 0x80, 0xCD, 0x08, 0xF2, 0x98, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x8C, 0xEA, +0x44, 0xF1, 0xAC, 0x42, 0x30, 0xF0, 0x20, 0x6B, +0x85, 0xF7, 0x08, 0x4B, 0xA4, 0x35, 0x00, 0x6C, +0x75, 0xE5, 0x80, 0xCD, 0xC4, 0xF2, 0xAC, 0x42, +0xA4, 0x35, 0x75, 0xE5, 0x80, 0xCD, 0xC4, 0xF1, +0xAC, 0x42, 0xA4, 0x35, 0x75, 0xE5, 0x80, 0xCD, +0x44, 0xF2, 0xAC, 0x42, 0xA4, 0x35, 0x75, 0xE5, +0x80, 0xCD, 0x30, 0x6C, 0x98, 0xEA, 0xB0, 0x4C, +0x12, 0xEA, 0x6D, 0xE2, 0x24, 0xF1, 0x47, 0xA3, +0x4C, 0xEC, 0x24, 0xF1, 0x87, 0xC3, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0xD1, 0x06, 0xD0, 0x0D, 0x92, +0xFF, 0xF7, 0x1F, 0x6B, 0x1B, 0x65, 0x02, 0xD2, +0xCC, 0xEB, 0x00, 0xD3, 0x0C, 0x90, 0x02, 0x93, +0xD8, 0x67, 0xFF, 0x69, 0x2C, 0xEC, 0xCC, 0xEF, +0xCC, 0xEB, 0xCC, 0xE8, 0x30, 0x6E, 0xD8, 0xEC, +0x0E, 0x92, 0x30, 0xF0, 0x20, 0x6E, 0x8A, 0xF0, +0x10, 0x4E, 0x2C, 0xEA, 0x02, 0xD3, 0x03, 0xE7, +0x78, 0x67, 0x6C, 0xE8, 0x12, 0xE9, 0x39, 0xE6, +0x00, 0x91, 0x01, 0xD6, 0x3B, 0xE5, 0xFB, 0xE6, +0x03, 0xD6, 0xC4, 0xF3, 0x2C, 0x44, 0x30, 0xF0, +0x20, 0x6E, 0x24, 0x31, 0x85, 0xF7, 0x08, 0x4E, +0xD9, 0xE1, 0x00, 0x91, 0x04, 0xD6, 0xC0, 0xAE, +0x2F, 0xE3, 0xC2, 0xEB, 0x03, 0x61, 0x04, 0x93, +0xD9, 0xE1, 0xC0, 0xCB, 0x30, 0xF0, 0x20, 0x6B, +0x44, 0xF3, 0xCC, 0x44, 0x85, 0xF7, 0x08, 0x4B, +0xC4, 0x36, 0x79, 0xE6, 0x60, 0xAE, 0xFF, 0xF7, +0x1F, 0x69, 0xE7, 0xE1, 0x62, 0xE9, 0x02, 0x61, +0x6D, 0xE7, 0x60, 0xCE, 0x30, 0xF0, 0x20, 0x6B, +0x85, 0xF7, 0x08, 0x4B, 0x89, 0xF0, 0xD8, 0x9B, +0x0F, 0xE9, 0xC3, 0xE9, 0x03, 0x61, 0xC1, 0xE0, +0x89, 0xF0, 0x18, 0xDB, 0x30, 0xF0, 0x20, 0x6E, +0x44, 0xF4, 0x6C, 0x44, 0x85, 0xF7, 0x08, 0x4E, +0x64, 0x33, 0xCD, 0xE3, 0x03, 0x91, 0xC2, 0xAB, +0xFF, 0xF7, 0x1F, 0x68, 0x23, 0xE0, 0xC3, 0xE8, +0x02, 0x61, 0xD9, 0xE1, 0xC2, 0xCB, 0x30, 0xF0, +0x20, 0x6E, 0x44, 0xF5, 0x6C, 0x44, 0x85, 0xF7, +0x08, 0x4E, 0x64, 0x33, 0xCD, 0xE3, 0x02, 0x91, +0xC2, 0xAB, 0xFF, 0xF7, 0x1F, 0x68, 0x23, 0xE0, +0xC2, 0xE8, 0x02, 0x61, 0xD9, 0xE1, 0xC2, 0xCB, +0x30, 0xF0, 0x20, 0x6E, 0xC4, 0xF4, 0x6C, 0x44, +0x85, 0xF7, 0x08, 0x4E, 0x64, 0x33, 0xCD, 0xE3, +0xC2, 0xAB, 0xFF, 0xF7, 0x1F, 0x68, 0xA3, 0xE0, +0xC3, 0xE8, 0x02, 0x61, 0xD9, 0xE5, 0xC2, 0xCB, +0x01, 0x96, 0x75, 0xAE, 0xFF, 0xF7, 0x1F, 0x6E, +0xBB, 0xE6, 0xC3, 0xEB, 0x03, 0x60, 0x01, 0x90, +0x6D, 0xE5, 0x75, 0xC8, 0x01, 0x91, 0xFF, 0xF7, +0x1F, 0x6E, 0xBB, 0xE6, 0x76, 0xA9, 0xC3, 0xEB, +0x02, 0x60, 0x75, 0xE5, 0xB6, 0xC9, 0x6A, 0x42, +0xFF, 0x6D, 0xAC, 0xEB, 0x02, 0x5B, 0x00, 0x6B, +0x0A, 0x61, 0x6C, 0x42, 0xAC, 0xEB, 0x02, 0x5B, +0x01, 0x6B, 0x05, 0x61, 0x03, 0x22, 0x03, 0x72, +0x03, 0x6B, 0x01, 0x61, 0x02, 0x6B, 0x88, 0x32, +0x69, 0xE2, 0x30, 0xF0, 0x20, 0x6D, 0xC4, 0xF5, +0x0C, 0x4A, 0x85, 0xF7, 0x08, 0x4D, 0x44, 0x32, +0xA9, 0xE2, 0xA2, 0xAA, 0xFF, 0xF7, 0x1F, 0x6E, +0xFB, 0xE6, 0xC2, 0xED, 0x02, 0x60, 0xBD, 0xE7, +0xE2, 0xCA, 0x88, 0x34, 0x6D, 0xE4, 0x30, 0xF0, +0x20, 0x6A, 0xC4, 0xF7, 0x0C, 0x4B, 0x85, 0xF7, +0x08, 0x4A, 0x64, 0x33, 0x4D, 0xE3, 0x00, 0x95, +0x42, 0xAB, 0xFF, 0xF7, 0x1F, 0x6C, 0xB3, 0xE4, +0x82, 0xEA, 0x02, 0x60, 0x49, 0xE5, 0x42, 0xCB, +0x07, 0x91, 0x06, 0x90, 0x04, 0x63, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x49, 0xF4, 0x58, 0x9A, 0x01, 0x6B, +0xFF, 0x68, 0x6C, 0xEA, 0x8C, 0xE8, 0x06, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF6, 0x10, 0x4C, +0x80, 0x18, 0x25, 0x42, 0x83, 0xF6, 0x8C, 0x40, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, +0x84, 0x34, 0x00, 0x6B, 0x51, 0xE4, 0x60, 0xCC, +0x03, 0xF7, 0x8C, 0x40, 0x84, 0x34, 0x51, 0xE4, +0x60, 0xCC, 0x03, 0xF6, 0x8C, 0x40, 0x84, 0x34, +0x51, 0xE4, 0x60, 0xCC, 0x83, 0xF5, 0x8C, 0x40, +0x84, 0x34, 0x41, 0xE0, 0x51, 0xE4, 0x60, 0xCC, +0x07, 0xF7, 0x78, 0xC0, 0x87, 0xF7, 0x78, 0xC0, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0x82, 0xF7, 0x78, 0x9B, 0xFF, 0x6A, 0x8C, 0xEA, +0x50, 0x32, 0x69, 0xE2, 0x60, 0x9A, 0x30, 0xF0, +0x21, 0x6C, 0x30, 0xF3, 0x04, 0x4C, 0x04, 0xD3, +0x61, 0x9A, 0x04, 0x05, 0x10, 0x6E, 0x05, 0xD3, +0x62, 0x9A, 0x06, 0xD3, 0x43, 0x9A, 0x07, 0xD2, +0x00, 0x18, 0x25, 0xC7, 0x09, 0x97, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, +0x0E, 0xD1, 0x0D, 0xD0, 0xFF, 0x69, 0x2C, 0xEC, +0x80, 0x18, 0x46, 0x46, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0x8A, 0xF3, 0x7E, 0xA2, +0x7F, 0x68, 0x01, 0x6C, 0x6C, 0xE8, 0xC3, 0xF4, +0x70, 0x9A, 0x2C, 0xE8, 0x8C, 0xEB, 0x21, 0x23, +0xAA, 0xF3, 0x85, 0xA2, 0xAA, 0xF3, 0xC4, 0xA2, +0x8A, 0xF3, 0xFF, 0xA2, 0x04, 0xD4, 0xAA, 0xF3, +0x88, 0xA2, 0x3F, 0x6B, 0x6C, 0xEE, 0x6C, 0xEC, +0x05, 0xD4, 0xAA, 0xF3, 0x80, 0xA2, 0xB0, 0x67, +0x2C, 0xEE, 0x6C, 0xEC, 0x06, 0xD4, 0xAA, 0xF3, +0x81, 0xA2, 0x8C, 0xEB, 0x07, 0xD3, 0xAA, 0xF3, +0x40, 0xA2, 0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF6, +0x1C, 0x4C, 0x5E, 0x32, 0x08, 0xD2, 0x80, 0x18, +0x25, 0x42, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x5C, 0x9A, 0x90, 0x67, 0x40, 0xEA, 0xC0, 0xF1, +0x0F, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0x8A, 0xF3, 0x9D, 0xA2, 0x80, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0xFF, 0x6C, 0x8C, 0xEB, +0x0B, 0x23, 0xC3, 0xF4, 0x50, 0x9A, 0x01, 0x6B, +0x6C, 0xEA, 0xA0, 0xF1, 0x1D, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0xE3, 0xF6, 0x14, 0x4C, 0x10, 0x10, +0xAA, 0xF3, 0xA3, 0xA2, 0x10, 0x6B, 0xAC, 0xEB, +0x8C, 0xEB, 0x0D, 0x23, 0xC3, 0xF4, 0x50, 0x9A, +0x01, 0x6B, 0x6C, 0xEA, 0xA0, 0xF1, 0x0C, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF7, 0x00, 0x4C, +0x80, 0x18, 0x25, 0x42, 0xA5, 0x11, 0xAA, 0xF3, +0x69, 0xA2, 0x3F, 0x6A, 0x6C, 0xEA, 0x8C, 0xEA, +0x02, 0x22, 0x3F, 0x72, 0x1E, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF7, 0x58, 0x9A, 0x14, 0x33, +0xFF, 0x6E, 0x49, 0xE3, 0x40, 0xA2, 0x4C, 0xEE, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, +0x8A, 0xF3, 0xBF, 0xA2, 0xCA, 0xED, 0x0D, 0x60, 0xC3, 0xF4, 0x50, 0x9A, 0x01, 0x6B, 0x6C, 0xEA, -0xA0, 0xF1, 0x0C, 0x22, 0x30, 0xF0, 0x20, 0x6C, -0xC3, 0xF6, 0x18, 0x4C, 0x80, 0x18, 0x16, 0x42, -0xA5, 0x11, 0xAA, 0xF3, 0x69, 0xA2, 0x3F, 0x6A, -0x6C, 0xEA, 0x8C, 0xEA, 0x02, 0x22, 0x3F, 0x72, -0x1E, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, -0x54, 0x9A, 0x14, 0x33, 0xFF, 0x6E, 0x49, 0xE3, -0x40, 0xA2, 0x4C, 0xEE, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0x8A, 0xF3, 0xBF, 0xA2, -0xCA, 0xED, 0x0D, 0x60, 0xC3, 0xF4, 0x50, 0x9A, -0x01, 0x6B, 0x6C, 0xEA, 0x80, 0xF1, 0x06, 0x22, -0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF6, 0x04, 0x4C, -0x80, 0x18, 0x16, 0x42, 0x7F, 0x11, 0x30, 0x69, -0x38, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x6A, 0xF0, -0x00, 0x4A, 0x12, 0xE9, 0x25, 0xE2, 0x68, 0xA1, -0x40, 0x6A, 0x6C, 0xEA, 0x10, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x29, 0xF4, 0x48, 0x9A, 0x01, 0x6B, -0x6C, 0xEA, 0x60, 0xF1, 0x0B, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x03, 0xF7, 0x00, 0x4C, 0xB0, 0x67, -0x80, 0x18, 0x16, 0x42, 0x63, 0x11, 0x80, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, -0x0B, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0xAA, 0xF3, 0x81, 0xA2, 0xDF, 0xF6, -0x01, 0x4B, 0x8C, 0xEB, 0xAA, 0xF3, 0x61, 0xC2, -0x5F, 0xA1, 0x1F, 0x6E, 0x3F, 0x6F, 0x4C, 0xEE, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0xAA, 0xF3, 0x64, 0xA2, 0xC3, 0xF4, 0x50, 0x9A, -0x6C, 0xEF, 0x01, 0x6B, 0x6C, 0xEA, 0x08, 0x22, -0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xEF, 0x03, 0xF7, -0x0C, 0x4C, 0xB8, 0x67, 0x80, 0x18, 0x16, 0x42, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0xAA, 0xF3, 0x64, 0xA2, 0xDF, 0xA1, 0x1F, 0x6D, -0x6C, 0xED, 0x20, 0x6B, 0x6B, 0xEB, 0xCC, 0xEB, -0xAD, 0xEB, 0x7F, 0xC1, 0xAA, 0xF3, 0x60, 0xA2, -0xAA, 0xF3, 0xA8, 0xA2, 0xAA, 0xF3, 0xC1, 0xA2, -0x3F, 0x6C, 0x8C, 0xED, 0x8C, 0xEE, 0x6C, 0xEC, -0x8D, 0xE6, 0x85, 0x67, 0x6E, 0xEC, 0x0A, 0x2C, -0xC3, 0xF4, 0x50, 0x9A, 0x01, 0x6B, 0x6C, 0xEA, -0x10, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF7, -0x04, 0x4C, 0x09, 0x10, 0xC3, 0xF4, 0x50, 0x9A, -0x01, 0x6B, 0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x23, 0xF7, 0x10, 0x4C, 0x80, 0x18, -0x16, 0x42, 0x30, 0xF0, 0x21, 0x6A, 0xF0, 0xF2, -0x78, 0xA2, 0x80, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, -0xFF, 0x6B, 0x6C, 0xEA, 0x00, 0x6B, 0x03, 0x22, -0x6C, 0x81, 0xC0, 0xF7, 0x62, 0x33, 0x30, 0xF0, -0x21, 0x6A, 0x10, 0xF3, 0x81, 0xA2, 0x3F, 0x6A, -0x8C, 0xEA, 0x02, 0x22, 0x3F, 0x72, 0x10, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0xAA, 0xF3, 0xA5, 0xA2, 0x8A, 0xF3, 0x9F, 0xA2, -0xAE, 0xEC, 0x06, 0x2C, 0xAA, 0xF3, 0x40, 0xA2, -0x3F, 0x6C, 0x4C, 0xEC, 0x0A, 0xD4, 0x02, 0x10, -0x00, 0x6D, 0x0A, 0xD5, 0x43, 0x23, 0x30, 0xF0, -0x20, 0x6A, 0x44, 0xF1, 0x6C, 0x40, 0x45, 0xF7, -0x18, 0x4A, 0x64, 0x33, 0x4D, 0xE3, 0x80, 0xAB, -0x0A, 0x97, 0x91, 0xE7, 0x80, 0xCB, 0xC4, 0xF1, -0x6C, 0x40, 0x64, 0x33, 0x4D, 0xE3, 0xAA, 0xF3, -0xA8, 0xA2, 0xC0, 0xAB, 0x3F, 0x6C, 0x8C, 0xED, -0xB5, 0xE6, 0xA0, 0xCB, 0xC4, 0xF2, 0xAC, 0x40, -0xA4, 0x35, 0x55, 0xE5, 0xAA, 0xF3, 0xC0, 0xA2, -0xE0, 0xAD, 0x8C, 0xEE, 0xD9, 0xE7, 0xC0, 0xCD, -0xAA, 0xF3, 0xC1, 0xA2, 0x44, 0xF2, 0xAC, 0x40, -0xA4, 0x35, 0x55, 0xE5, 0xCC, 0xEC, 0xC0, 0xAD, -0x91, 0xE6, 0x80, 0xCD, 0xA0, 0xAB, 0x70, 0xA1, -0x63, 0xED, 0x80, 0xF0, 0x13, 0x61, 0xC3, 0xF4, -0x50, 0x9A, 0x01, 0x6B, 0x6C, 0xEA, 0x07, 0x22, -0xD1, 0xA1, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF7, -0x1C, 0x4C, 0x80, 0x18, 0x16, 0x42, 0x90, 0x67, -0x80, 0x18, 0xC6, 0x4F, 0x90, 0x67, 0x80, 0x18, -0xA2, 0x45, 0x80, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF6, 0x6C, 0x40, 0x45, 0xF7, 0x18, 0x4A, -0x64, 0x33, 0x4D, 0xE3, 0x80, 0xAB, 0x0A, 0x95, -0x91, 0xE5, 0x80, 0xCB, 0x83, 0xF5, 0x8C, 0x40, -0x84, 0x34, 0xAA, 0xF3, 0xA8, 0xA2, 0x51, 0xE4, -0xC0, 0xAC, 0x3F, 0x6B, 0x6C, 0xED, 0xB5, 0xE6, -0xA0, 0xCC, 0x03, 0xF7, 0xAC, 0x40, 0xA4, 0x35, -0xAA, 0xF3, 0xC0, 0xA2, 0x55, 0xE5, 0xE0, 0xAD, -0x6C, 0xEE, 0xD9, 0xE7, 0xC0, 0xCD, 0x03, 0xF6, -0xAC, 0x40, 0xA4, 0x35, 0xAA, 0xF3, 0xC1, 0xA2, -0x55, 0xE5, 0xE0, 0xAD, 0x6C, 0xEE, 0xD9, 0xE7, -0xC0, 0xCD, 0x84, 0xF0, 0xAC, 0x40, 0xA4, 0x35, -0x55, 0xE5, 0xC0, 0xAD, 0x0A, 0x97, 0xD9, 0xE7, -0xC0, 0xCD, 0xAA, 0xF3, 0xC8, 0xA2, 0x04, 0xF0, -0xAC, 0x40, 0xA4, 0x35, 0x55, 0xE5, 0xCC, 0xEB, -0xC0, 0xAD, 0x6D, 0xE6, 0x60, 0xCD, 0x80, 0xAC, -0x20, 0xF0, 0x68, 0xA1, 0x63, 0xEC, 0x1A, 0x61, -0x20, 0xF0, 0x6E, 0xA1, 0x17, 0x2B, 0xC3, 0xF4, -0x50, 0x9A, 0x01, 0x6B, 0x6C, 0xEA, 0x09, 0x22, -0x20, 0xF0, 0xC8, 0xA1, 0x30, 0xF0, 0x20, 0x6C, -0x43, 0xF7, 0x18, 0x4C, 0xB0, 0x67, 0x80, 0x18, -0x16, 0x42, 0x90, 0x67, 0x80, 0x18, 0x59, 0x4E, -0x20, 0xF0, 0x45, 0xA1, 0x01, 0x4A, 0x20, 0xF0, -0x45, 0xC1, 0x24, 0x10, 0x6F, 0xA1, 0x40, 0x6A, -0x6C, 0xEA, 0x20, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0x29, 0xF4, 0x48, 0x9A, 0x01, 0x6B, 0x6C, 0xEA, -0x07, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF7, -0x0C, 0x4C, 0xB0, 0x67, 0x80, 0x18, 0x16, 0x42, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF5, 0x6C, 0x40, -0x64, 0x33, 0x45, 0xF7, 0x18, 0x4A, 0x49, 0xE3, -0x40, 0xAA, 0x03, 0x22, 0x90, 0x67, 0x80, 0x18, -0x59, 0x4E, 0x6F, 0xA1, 0x41, 0x6A, 0x4B, 0xEA, -0x6C, 0xEA, 0x4F, 0xC1, 0x0A, 0x94, 0x30, 0xF0, -0x20, 0x6B, 0x45, 0xF7, 0x18, 0x4B, 0xAA, 0xF3, -0xA8, 0xA3, 0xAA, 0xF3, 0xC1, 0xA3, 0xAA, 0xF3, -0xE0, 0xA3, 0x04, 0xD4, 0xAA, 0xF3, 0x84, 0xA3, -0x3F, 0x6A, 0x4C, 0xED, 0x4C, 0xEC, 0x05, 0xD4, -0x8A, 0xF3, 0x9D, 0xA3, 0x1F, 0x6B, 0x4C, 0xEE, -0x8C, 0xEB, 0x4C, 0xEF, 0x90, 0x67, 0x06, 0xD3, -0x80, 0x18, 0xB5, 0x45, 0x0F, 0x97, 0x0E, 0x91, -0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF0, 0x70, 0xA2, -0x82, 0xF0, 0x10, 0x4A, 0x60, 0xC4, 0x41, 0xA2, -0x40, 0xC5, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, -0x22, 0xF7, 0x74, 0x9B, 0xFF, 0x6A, 0x4C, 0xEC, -0x94, 0x34, 0x71, 0xE4, 0x60, 0xA4, 0x6C, 0xEA, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, -0x22, 0xF7, 0x6C, 0x9B, 0xFF, 0x6A, 0x4C, 0xEC, -0x94, 0x34, 0x71, 0xE4, 0x60, 0xA4, 0x6C, 0xEA, -0x20, 0xE8, 0x00, 0x65, 0x40, 0xA4, 0x60, 0xA5, -0x60, 0xC4, 0x40, 0xC5, 0x20, 0xE8, 0x00, 0x65, -0xFF, 0x6B, 0x6C, 0xEC, 0x0C, 0x5C, 0x13, 0x61, -0x2C, 0x5C, 0x06, 0x60, 0x48, 0x44, 0xFC, 0x4A, -0x4F, 0x32, 0x01, 0x4A, 0x6C, 0xEA, 0x20, 0xE8, -0x36, 0x5C, 0x09, 0x61, 0x40, 0x5C, 0x02, 0x6A, -0x07, 0x61, 0x4A, 0x5C, 0x03, 0x6A, 0x04, 0x61, -0x54, 0x5C, 0x04, 0x6A, 0x01, 0x61, 0x01, 0x6A, -0x20, 0xE8, 0x00, 0x65, 0xAA, 0xEC, 0x64, 0x6A, -0x31, 0x60, 0x2F, 0x24, 0x83, 0xED, 0x2D, 0x61, -0x02, 0xF0, 0x00, 0x5D, 0x04, 0x6A, 0x0C, 0x61, -0x04, 0xF0, 0x00, 0x5D, 0x03, 0x6A, 0x08, 0x61, -0x08, 0xF0, 0x00, 0x5D, 0x02, 0x6A, 0x04, 0x61, -0xEF, 0xF7, 0x1E, 0x4A, 0x43, 0xED, 0x58, 0x67, -0xA4, 0xEA, 0x84, 0xEA, 0x00, 0x6B, 0x01, 0x6A, -0xA6, 0x35, 0x83, 0xED, 0x11, 0x60, 0x81, 0xF4, -0x00, 0x6E, 0xC7, 0xEB, 0xC9, 0xE2, 0x01, 0x75, -0xFF, 0xF7, 0x1F, 0x6E, 0xCC, 0xEA, 0xB3, 0xE4, -0x04, 0x61, 0x02, 0x5C, 0x04, 0x60, 0x01, 0x74, -0x06, 0x60, 0x02, 0x2C, 0x04, 0x10, 0x02, 0x6D, -0x01, 0x4B, 0x0C, 0x73, 0xE9, 0x61, 0x5A, 0x32, -0x01, 0x10, 0x00, 0x6A, 0xFF, 0x6B, 0x6C, 0xEA, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0xFF, 0x6B, 0x8C, 0xEB, 0xC2, 0xF2, 0x84, 0x9A, -0xFE, 0x63, 0xC2, 0xF2, 0x04, 0x4A, 0x00, 0xD4, -0x81, 0x9A, 0x44, 0xAA, 0x00, 0xF0, 0x0A, 0x05, -0x01, 0xD4, 0x9D, 0x67, 0x44, 0xCC, 0x40, 0xA4, -0x43, 0xEB, 0x05, 0x61, 0x01, 0x4B, 0x4B, 0xE3, -0xFF, 0x6B, 0x6C, 0xEA, 0x04, 0x10, 0x01, 0x4C, -0xAA, 0xEC, 0xF5, 0x61, 0x00, 0x6A, 0x02, 0x63, -0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0xFF, 0x6A, 0x04, 0x67, 0x4C, 0xE8, -0xAC, 0xEA, 0x7F, 0x6B, 0x82, 0x67, 0x6C, 0xEC, -0x80, 0x18, 0x8D, 0x47, 0x30, 0x6B, 0x78, 0xE8, -0x14, 0x6C, 0x30, 0xF0, 0x20, 0x6B, 0x6A, 0xF0, -0x00, 0x4B, 0x12, 0xE8, 0x0D, 0xE3, 0x98, 0xEA, -0x12, 0xEA, 0x20, 0xF0, 0x48, 0xC3, 0x05, 0x97, -0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFF, 0x6B, 0x6C, 0xEC, 0x45, 0x67, 0x30, 0x6D, -0xB8, 0xEC, 0x30, 0xF0, 0x20, 0x6D, 0x6A, 0xF0, -0x00, 0x4D, 0x6C, 0xEA, 0x12, 0xEC, 0x95, 0xE5, -0xC0, 0xA5, 0x81, 0xA5, 0x30, 0xF0, 0x20, 0x6D, -0x6D, 0xF2, 0xEC, 0xA5, 0x04, 0x6D, 0xEC, 0xED, -0x6C, 0xED, 0x16, 0x2D, 0xFF, 0x72, 0x02, 0x61, -0x43, 0x67, 0x20, 0xE8, 0x7F, 0x6D, 0xAC, 0xEE, -0x4C, 0xED, 0xA3, 0xEE, 0x0A, 0x60, 0x80, 0x6C, -0x8B, 0xEC, 0x4C, 0xEC, 0xCD, 0xEC, 0x00, 0xF6, -0x80, 0x32, 0x00, 0xF6, 0x43, 0x32, 0x6C, 0xEA, -0x20, 0xE8, 0x83, 0xED, 0x01, 0x60, 0x44, 0x67, -0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEE, -0x4C, 0xEC, 0x4C, 0xED, 0x06, 0x26, 0x2C, 0x5C, -0x04, 0x61, 0x68, 0x44, 0xE8, 0x4B, 0x4C, 0xEB, -0x01, 0x10, 0x64, 0x67, 0x20, 0x5B, 0x0B, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, 0x40, 0x9A, -0xAC, 0x35, 0xE0, 0x4B, 0x55, 0xE5, 0x40, 0x9D, -0xFF, 0x6D, 0xAC, 0xEB, 0x07, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x42, 0xF7, 0x58, 0x9A, 0xAC, 0x35, -0x55, 0xE5, 0x40, 0x9D, 0x01, 0x6D, 0xA4, 0xEB, -0x4C, 0xED, 0xFF, 0x6A, 0x01, 0x25, 0x44, 0x67, -0x20, 0xE8, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x4C, 0xEE, -0x30, 0x68, 0x18, 0xEE, 0x30, 0xF0, 0x20, 0x6B, -0x6A, 0xF0, 0x00, 0x4B, 0x4C, 0xED, 0x4C, 0xEC, -0x27, 0x67, 0x01, 0x75, 0x09, 0xD6, 0x4C, 0xE9, -0x12, 0xE8, 0x01, 0xE3, 0x7F, 0x6B, 0x6C, 0xEC, -0x1F, 0x61, 0x0C, 0x5C, 0x05, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0x05, 0xF2, 0x18, 0x4A, 0x1E, 0x10, -0x0A, 0x29, 0xF4, 0x4C, 0x4C, 0xEC, 0x03, 0x6A, -0x58, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF3, -0x1C, 0x4A, 0x12, 0xEC, 0x36, 0x10, 0x2C, 0x5C, -0xC0, 0xF0, 0x0F, 0x61, 0xD4, 0x4C, 0x4C, 0xEC, -0x03, 0x6A, 0x58, 0xEC, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF3, 0x00, 0x4A, 0x12, 0xEC, 0x29, 0x10, -0x0C, 0x5C, 0x10, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x25, 0xF2, 0x04, 0x4A, 0x91, 0xE2, 0x80, 0xA4, -0x09, 0x95, 0xD1, 0x67, 0x80, 0x18, 0xC3, 0x47, -0x8C, 0xA0, 0x19, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, -0x6C, 0xC0, 0xB4, 0x10, 0x0A, 0x29, 0xF4, 0x4C, -0x4C, 0xEC, 0x03, 0x6A, 0x58, 0xEC, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF4, 0x00, 0x4A, 0x12, 0xEC, -0x0C, 0x10, 0x2C, 0x5C, 0xA0, 0xF0, 0x05, 0x61, -0xD4, 0x4C, 0x4C, 0xEC, 0x03, 0x6A, 0x58, 0xEC, -0x30, 0xF0, 0x20, 0x6A, 0xE5, 0xF3, 0x04, 0x4A, -0x12, 0xEC, 0x89, 0xE2, 0x08, 0xD2, 0x01, 0x6A, -0x4B, 0xEA, 0x7D, 0x67, 0x00, 0x6C, 0x50, 0xC3, -0x51, 0xC3, 0x52, 0xC3, 0x07, 0xD4, 0x06, 0xD4, -0x07, 0x94, 0x08, 0x93, 0x89, 0xE3, 0x80, 0xA2, -0x2C, 0x74, 0x03, 0x61, 0x2C, 0x6C, 0x01, 0x29, -0x0C, 0x6C, 0x09, 0x95, 0xD1, 0x67, 0x80, 0x18, -0xC3, 0x47, 0xFF, 0x72, 0x08, 0x60, 0x06, 0x94, -0xBD, 0x67, 0x8D, 0xE5, 0x50, 0xC3, 0x01, 0x4C, -0xFF, 0x6A, 0x4C, 0xEC, 0x06, 0xD4, 0x07, 0x95, -0x01, 0x4D, 0x03, 0x75, 0x07, 0xD5, 0xE4, 0x61, -0x06, 0x92, 0x05, 0x2A, 0x6C, 0xA0, 0xE7, 0x4A, -0x6C, 0xEA, 0x4C, 0xC0, 0x6E, 0x10, 0x7A, 0xA0, -0x02, 0x6A, 0x6C, 0xEA, 0x1F, 0x22, 0x6F, 0xA0, -0x30, 0x6A, 0x6C, 0xEA, 0x20, 0x72, 0x1A, 0x61, -0x05, 0x21, 0x30, 0xF0, 0x20, 0x6A, 0x65, 0xF5, -0x14, 0x4A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x65, 0xF5, 0x0C, 0x4A, 0x9D, 0x67, 0x71, 0xA4, -0x2D, 0x5B, 0x01, 0x61, 0xE0, 0x4B, 0x40, 0x9A, -0x01, 0x6C, 0x84, 0xEB, 0x4C, 0xEC, 0x29, 0x24, -0x04, 0x04, 0x00, 0xF0, 0x11, 0x05, 0x80, 0x18, -0x61, 0x47, 0x23, 0x10, 0x7A, 0xA0, 0x40, 0x6A, -0x6C, 0xEA, 0x1F, 0x22, 0x6F, 0xA0, 0x30, 0x6A, -0x6C, 0xEA, 0x20, 0x72, 0x1A, 0x61, 0x05, 0x21, -0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF5, 0x04, 0x4A, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x65, 0xF5, -0x1C, 0x4A, 0xBD, 0x67, 0x71, 0xA5, 0x2D, 0x5B, -0x01, 0x61, 0xE0, 0x4B, 0x40, 0x9A, 0x01, 0x6C, -0x84, 0xEB, 0x4C, 0xEC, 0x06, 0x24, 0x7D, 0x67, -0x51, 0xA3, 0x50, 0xC3, 0x01, 0x6A, 0x4B, 0xEA, -0x51, 0xC3, 0x9D, 0x67, 0x71, 0xA4, 0xFF, 0x73, -0x0B, 0x60, 0x52, 0xA4, 0xFF, 0x72, 0x08, 0x60, -0x65, 0xC0, 0x6C, 0xA0, 0x44, 0xC0, 0x19, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0x10, 0x6B, 0x14, 0x10, -0xBD, 0x67, 0x51, 0xA5, 0xFF, 0x72, 0x03, 0x60, -0x72, 0xA5, 0xFF, 0x73, 0x07, 0x60, 0x7D, 0x67, -0x51, 0xA3, 0xFF, 0x72, 0x0B, 0x61, 0x52, 0xA3, -0xFF, 0x72, 0x08, 0x60, 0x6C, 0xA0, 0x44, 0xC0, -0x19, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x08, 0x6B, -0x6D, 0xEA, 0x4C, 0xC0, 0x9D, 0x67, 0x50, 0xA4, -0x01, 0x10, 0xFF, 0x6A, 0x0D, 0x97, 0x0C, 0x91, -0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFF, 0x63, 0x01, 0xD1, 0x00, 0xD0, 0xFF, 0x6A, -0x4C, 0xEC, 0x30, 0x6B, 0x78, 0xEC, 0x30, 0xF0, -0x20, 0x6B, 0x6A, 0xF0, 0x00, 0x4B, 0x06, 0x67, -0x4C, 0xE8, 0xE0, 0xA5, 0x12, 0xEC, 0x91, 0xE3, -0xCC, 0xA4, 0x03, 0x6B, 0xCC, 0xEB, 0x4C, 0xEB, -0x54, 0x23, 0x04, 0x6B, 0xCC, 0xEB, 0x4C, 0xEB, -0x50, 0x23, 0xDF, 0xA4, 0x20, 0x6B, 0x6B, 0xEB, -0xCC, 0xEB, 0x4C, 0xEB, 0x4A, 0x23, 0x7F, 0xA4, -0x0A, 0x69, 0x7F, 0x6E, 0x76, 0x33, 0xFF, 0x4B, -0x38, 0xEB, 0xEC, 0xEE, 0x12, 0xEB, 0x4C, 0xEB, -0x27, 0x43, 0x2C, 0x49, 0x22, 0xEE, 0x3D, 0x61, -0x80, 0x69, 0x7B, 0xE6, 0x02, 0x70, 0xEC, 0xE9, -0x4C, 0xEE, 0x11, 0x61, 0x33, 0x76, 0x35, 0x60, -0x02, 0x21, 0xC4, 0xC4, 0x02, 0x10, 0x4F, 0x46, -0x44, 0xC4, 0x80, 0x6A, 0xEF, 0x46, 0x4B, 0xEA, -0x4D, 0xEF, 0xFF, 0x6A, 0x4C, 0xEF, 0xCC, 0xA4, -0xFF, 0xF6, 0x08, 0x4A, 0x17, 0x10, 0x35, 0x76, -0x24, 0x60, 0x34, 0x76, 0x03, 0x61, 0xB5, 0x6F, -0x15, 0x29, 0x06, 0x10, 0x05, 0x21, 0x80, 0x68, -0xE1, 0x46, 0x0B, 0xE8, 0x0D, 0xEF, 0x04, 0x10, -0x80, 0x6F, 0xEB, 0xEF, 0xCD, 0xEF, 0xFF, 0x6A, -0x01, 0x4E, 0xC4, 0xC4, 0xCC, 0xA4, 0x4C, 0xEF, -0x19, 0x6A, 0x4B, 0xEA, 0xCC, 0xEA, 0x08, 0x6E, -0xCD, 0xEA, 0x4C, 0xC4, 0xCC, 0xA4, 0x18, 0x6A, -0xCC, 0xEA, 0x03, 0x22, 0x44, 0xA4, 0x49, 0xE3, -0x44, 0xC4, 0x6D, 0xE7, 0x60, 0xC5, 0x01, 0x6A, -0x01, 0x10, 0x00, 0x6A, 0x01, 0x91, 0x00, 0x90, -0x01, 0x63, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, -0x30, 0x6B, 0x78, 0xEA, 0x30, 0xF0, 0x20, 0x6C, -0x6A, 0xF0, 0x00, 0x4C, 0x12, 0xEB, 0x6D, 0xE4, -0x03, 0x2E, 0x25, 0x67, 0x00, 0x68, 0x02, 0x10, -0x26, 0x67, 0x20, 0x68, 0x1F, 0x6C, 0x00, 0xF6, -0x80, 0x37, 0x00, 0xF6, 0xE3, 0x37, 0x1F, 0x65, -0x01, 0x6F, 0xE4, 0xEC, 0x2C, 0xEF, 0x10, 0x27, -0xEC, 0xA3, 0x38, 0x67, 0x21, 0xE0, 0x1F, 0x65, -0x38, 0x67, 0x03, 0x6F, 0xFF, 0x6C, 0x2C, 0xEF, -0x8C, 0xEF, 0x8C, 0xE8, 0x09, 0x27, 0x0C, 0x58, -0x07, 0x61, 0x20, 0x48, 0x8C, 0xE8, 0x04, 0x10, -0xFF, 0x4C, 0xE1, 0x44, 0xE4, 0x2F, 0x00, 0x68, -0x00, 0x69, 0x02, 0x2D, 0xA6, 0x67, 0x20, 0x69, -0x00, 0x6C, 0x01, 0x6F, 0xE4, 0xEC, 0x00, 0xF6, -0x80, 0x36, 0xAC, 0xEF, 0x00, 0xF6, 0xC3, 0x36, -0x0D, 0x27, 0xC5, 0xE1, 0xCC, 0xA3, 0x03, 0x6D, -0xFF, 0x6C, 0xCC, 0xED, 0x8C, 0xED, 0x8C, 0xE9, -0x09, 0x25, 0x0C, 0x59, 0x07, 0x61, 0x20, 0x49, -0x8C, 0xE9, 0x04, 0x10, 0x01, 0x4C, 0x20, 0x74, -0xE8, 0x61, 0x00, 0x69, 0x00, 0xC3, 0x21, 0xC3, -0x82, 0x67, 0x80, 0x18, 0x55, 0x47, 0x7F, 0x6B, -0x4C, 0xEB, 0x63, 0xE8, 0x50, 0x67, 0x09, 0x61, -0xFF, 0x6A, 0x83, 0x67, 0x4C, 0xEB, 0x2C, 0xEA, -0x43, 0xEB, 0x01, 0x60, 0x91, 0x67, 0xFF, 0x6A, -0x8C, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFF, 0x63, 0x01, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, 0xD8, 0x9A, -0x03, 0x6A, 0x02, 0x68, 0x40, 0xC6, 0x30, 0xF0, -0x20, 0x6A, 0x62, 0xF7, 0xBC, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0x62, 0xF6, 0xF4, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0x82, 0xF7, 0x60, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0x82, 0xF7, 0x84, 0x9A, 0x01, 0x6A, -0xE0, 0xDD, 0x80, 0xDB, 0x00, 0xC6, 0xE0, 0xDD, -0x80, 0xDB, 0x40, 0xC6, 0x30, 0xF0, 0x20, 0x6A, -0x82, 0xF7, 0x48, 0x9A, 0x40, 0xDD, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, 0x80, 0xDB, -0xA7, 0xF1, 0x11, 0xC2, 0x00, 0x68, 0x00, 0xC6, -0xE0, 0xDD, 0x80, 0xDB, 0x04, 0x6B, 0xA7, 0xF1, -0x70, 0xC2, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, -0xE5, 0x63, 0x35, 0x62, 0x34, 0xD1, 0x33, 0xD0, -0x30, 0xF0, 0x20, 0x6D, 0x07, 0x04, 0x62, 0xF2, -0x10, 0x4D, 0x54, 0x6E, 0x00, 0x18, 0x15, 0xC8, -0x30, 0xF0, 0x20, 0x6D, 0x1C, 0x04, 0x02, 0xF2, -0x1C, 0x4D, 0x54, 0x6E, 0x00, 0x18, 0x15, 0xC8, -0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF2, 0x70, 0x9A, -0x02, 0xF2, 0x10, 0x4A, 0x00, 0x69, 0x04, 0xD3, -0x61, 0x9A, 0x44, 0xAA, 0x05, 0xD3, 0x7D, 0x67, -0x4C, 0xCB, 0x30, 0x68, 0x18, 0xE9, 0x30, 0xF0, -0x20, 0x6A, 0x6A, 0xF0, 0x00, 0x4A, 0x00, 0x6C, -0x33, 0x6D, 0x01, 0x49, 0x12, 0xE8, 0x01, 0xE2, -0x68, 0xA0, 0x20, 0x6A, 0xC7, 0xA0, 0x4B, 0xEA, -0x6C, 0xEA, 0x09, 0x6B, 0x6D, 0xEA, 0xEA, 0x4B, -0xCC, 0xEB, 0x04, 0x6E, 0xEC, 0xA0, 0xCB, 0xEE, -0xCC, 0xEB, 0x67, 0xC0, 0x04, 0x6B, 0xED, 0xEB, -0xCC, 0xEB, 0x20, 0x6E, 0xCD, 0xEA, 0x40, 0x6E, -0xCD, 0xEA, 0xDA, 0xA0, 0x48, 0xC0, 0x03, 0x6A, -0x4B, 0xEA, 0xCC, 0xEA, 0x41, 0x6E, 0xCB, 0xEE, -0xCC, 0xEA, 0xCF, 0xA0, 0x81, 0xC0, 0x82, 0xC0, -0x99, 0xC0, 0x31, 0x6C, 0x8B, 0xEC, 0xCC, 0xEC, -0x8F, 0xC0, 0x7F, 0x6C, 0x8C, 0xEB, 0x00, 0x6C, -0x8A, 0xC0, 0x8A, 0xC8, 0xDF, 0x4C, 0x8C, 0xEA, -0x8D, 0xA0, 0x5A, 0xC0, 0x02, 0x6A, 0x4B, 0xEA, -0x8C, 0xEA, 0x6C, 0xC0, 0x4D, 0xC0, 0x00, 0x6B, -0x01, 0x6A, 0xA0, 0xC0, 0xA6, 0xC0, 0x7F, 0xC0, -0x20, 0xF0, 0x6E, 0xC0, 0x20, 0xF0, 0x48, 0xC0, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, 0x48, 0x9B, -0x87, 0x40, 0x1A, 0x4C, 0xFF, 0x6D, 0x02, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, -0x48, 0x9B, 0x87, 0x40, 0x1C, 0x4C, 0x00, 0x6D, -0x02, 0x6E, 0x40, 0xEA, 0xFF, 0x6A, 0x4C, 0xE9, -0x80, 0x71, 0xA3, 0x61, 0x30, 0xF0, 0x20, 0x68, -0x80, 0x18, 0xC3, 0x48, 0x80, 0xF2, 0x4C, 0x98, -0x30, 0xF0, 0x20, 0x6C, 0x6D, 0xF0, 0x00, 0x4C, -0x1C, 0x05, 0x54, 0x6E, 0x40, 0xEA, 0x80, 0xF2, -0x4C, 0x98, 0x30, 0xF0, 0x20, 0x6C, 0xAD, 0xF0, -0x14, 0x4C, 0x07, 0x05, 0x54, 0x6E, 0x40, 0xEA, -0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, 0x20, 0x6C, -0x4D, 0xF2, 0x1A, 0x4C, 0x04, 0x05, 0x0A, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x0D, 0xF1, 0x0A, 0x4A, 0xAD, 0xF1, -0x12, 0x4B, 0x0A, 0x6C, 0x80, 0xCA, 0x00, 0x6C, -0xA0, 0xF0, 0x88, 0xCA, 0x02, 0x4A, 0x6A, 0xEA, -0xF8, 0x61, 0x35, 0x97, 0x34, 0x91, 0x33, 0x90, -0x1B, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, -0x4C, 0xEE, 0x30, 0x6A, 0x58, 0xEC, 0x30, 0xF0, -0x20, 0x6A, 0x6A, 0xF0, 0x00, 0x4A, 0xFF, 0xF7, -0x1F, 0x6B, 0x6C, 0xED, 0x11, 0xD7, 0x04, 0xD5, -0x05, 0xD6, 0x12, 0xEC, 0x89, 0xE2, 0x86, 0x67, -0x06, 0xD2, 0xC3, 0xF4, 0x18, 0x4C, 0x30, 0xF0, -0x20, 0x6A, 0x84, 0x34, 0x45, 0xF7, 0x18, 0x4A, -0x49, 0xE4, 0x01, 0xAA, 0x03, 0xED, 0x13, 0xE5, -0x02, 0x60, 0x04, 0x92, 0x53, 0xE0, 0x6C, 0xEC, -0x05, 0x93, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0x23, 0xF5, 0x0C, 0x4B, 0x64, 0x33, -0x4D, 0xE3, 0x61, 0xAB, 0xFF, 0x4C, 0x07, 0xD3, -0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEC, 0x07, 0x5C, -0x13, 0x60, 0x04, 0x93, 0x03, 0xEB, 0x08, 0x60, -0x05, 0x93, 0xC3, 0xF4, 0x18, 0x4B, 0x64, 0x33, -0x49, 0xE3, 0x61, 0xAA, 0xFF, 0x4B, 0x12, 0x10, -0x05, 0x93, 0xC3, 0xF4, 0x18, 0x4B, 0x64, 0x33, -0x49, 0xE3, 0x61, 0xAA, 0x01, 0x4B, 0x0A, 0x10, -0x05, 0x93, 0x04, 0x94, 0xC3, 0xF4, 0x18, 0x4B, -0x64, 0x33, 0x49, 0xE3, 0x0C, 0x33, 0x0F, 0xE3, -0x8D, 0xE3, 0x6F, 0x33, 0x61, 0xCA, 0x05, 0x93, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0xC3, 0xF4, 0x18, 0x4B, 0x64, 0x33, 0x4D, 0xE3, -0x61, 0xAB, 0xC3, 0xF4, 0x50, 0x9A, 0x08, 0xD3, -0xFF, 0x6B, 0x01, 0x4B, 0x4C, 0xEB, 0x09, 0x23, -0x08, 0x95, 0x04, 0x97, 0x30, 0xF0, 0x20, 0x6C, -0x63, 0xF7, 0x18, 0x4C, 0xD0, 0x67, 0x80, 0x18, -0x16, 0x42, 0x04, 0x92, 0x43, 0xE8, 0x14, 0x61, -0x06, 0x94, 0x43, 0xE0, 0xFF, 0xF7, 0x1F, 0x6A, -0x69, 0xA4, 0x4C, 0xE8, 0x0F, 0x6C, 0x6A, 0x32, -0x8C, 0xEA, 0x44, 0x32, 0x01, 0x6D, 0xAD, 0xEA, -0x8C, 0xEA, 0xB4, 0x4C, 0x48, 0x32, 0x6C, 0xEC, -0x4D, 0xEC, 0x06, 0x92, 0x89, 0xC2, 0x13, 0x10, -0x04, 0x93, 0x06, 0x94, 0xFF, 0xF7, 0x1F, 0x6A, -0x03, 0xE3, 0x69, 0xA4, 0x4C, 0xE8, 0x0F, 0x6C, -0x6A, 0x32, 0x8C, 0xEA, 0x44, 0x32, 0x8C, 0xEA, -0x48, 0x34, 0x3D, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, -0x06, 0x93, 0x8D, 0xEA, 0x49, 0xC3, 0x06, 0x94, -0x03, 0x6B, 0x49, 0xA4, 0x4A, 0x32, 0x6C, 0xEA, -0xFF, 0x4A, 0x02, 0x5A, 0x04, 0x61, 0x03, 0x58, -0x07, 0x91, 0x40, 0x60, 0x07, 0x10, 0x09, 0x58, -0x09, 0x6A, 0x01, 0x60, 0x50, 0x67, 0xFF, 0xF7, -0x1F, 0x68, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0xC3, 0xF4, 0x90, 0x9A, -0xFF, 0x6B, 0x01, 0x4B, 0x8C, 0xEB, 0x0F, 0x23, -0x06, 0x93, 0x49, 0xE0, 0x07, 0xF3, 0xE2, 0xA2, -0xA9, 0xA3, 0x30, 0xF0, 0x20, 0x6C, 0x0F, 0x6B, -0xAA, 0x35, 0x83, 0xF7, 0x1C, 0x4C, 0x6C, 0xED, -0xD0, 0x67, 0x80, 0x18, 0x16, 0x42, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, 0x41, 0xE0, -0x07, 0xF3, 0x42, 0xA0, 0x07, 0x94, 0xFF, 0xF7, -0x1F, 0x6B, 0x00, 0x69, 0x49, 0xE4, 0x6C, 0xEA, -0x0A, 0x5A, 0x06, 0x61, 0x28, 0x42, 0xFE, 0x49, -0x6C, 0xE9, 0x1F, 0x59, 0x01, 0x61, 0x1E, 0x69, -0x05, 0x93, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0x23, 0xF5, 0x0C, 0x4B, 0x64, 0x33, -0x49, 0xE3, 0x21, 0xCA, 0x30, 0xF0, 0x20, 0x6B, -0x29, 0xF4, 0x68, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, -0x6C, 0xEA, 0x08, 0x22, 0x07, 0x95, 0x30, 0xF0, -0x20, 0x6C, 0xA3, 0xF7, 0x14, 0x4C, 0xD1, 0x67, -0x80, 0x18, 0x16, 0x42, 0x08, 0x94, 0x11, 0x67, -0x0B, 0x5C, 0x10, 0x61, 0x15, 0x59, 0x01, 0x6A, -0x06, 0x60, 0x0B, 0x59, 0x58, 0x67, 0x01, 0x5A, -0x58, 0x67, 0x03, 0x6B, 0x4B, 0xE3, 0x08, 0x90, -0xF6, 0x48, 0x07, 0xEA, 0x01, 0xE1, 0xFF, 0xF7, -0x1F, 0x6A, 0x4C, 0xE8, 0x28, 0x58, 0x01, 0x61, -0x28, 0x68, 0x03, 0x59, 0x00, 0x69, 0x02, 0x60, -0x04, 0x92, 0x4A, 0x31, 0x30, 0xF0, 0x20, 0x6B, -0x29, 0xF4, 0x68, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, +0x80, 0xF1, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0x03, 0xF7, 0x0C, 0x4C, 0x80, 0x18, 0x25, 0x42, +0x7F, 0x11, 0x30, 0x69, 0x38, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x8A, 0xF0, 0x10, 0x4A, 0x12, 0xE9, +0x25, 0xE2, 0x68, 0xA1, 0x40, 0x6A, 0x6C, 0xEA, +0x10, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x49, 0xF4, +0x58, 0x9A, 0x01, 0x6B, 0x6C, 0xEA, 0x60, 0xF1, +0x0B, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF7, +0x08, 0x4C, 0xB0, 0x67, 0x80, 0x18, 0x25, 0x42, +0x63, 0x11, 0x80, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xFF, 0x6B, 0x6C, 0xEA, 0x0B, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0xAA, 0xF3, +0x81, 0xA2, 0xDF, 0xF6, 0x01, 0x4B, 0x8C, 0xEB, +0xAA, 0xF3, 0x61, 0xC2, 0x5F, 0xA1, 0x1F, 0x6E, +0x3F, 0x6F, 0x4C, 0xEE, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0xAA, 0xF3, 0x64, 0xA2, +0xC3, 0xF4, 0x50, 0x9A, 0x6C, 0xEF, 0x01, 0x6B, 0x6C, 0xEA, 0x08, 0x22, 0x30, 0xF0, 0x20, 0x6C, -0xC3, 0xF7, 0x04, 0x4C, 0xB1, 0x67, 0xD0, 0x67, -0x80, 0x18, 0x16, 0x42, 0x12, 0x92, 0x20, 0xCA, -0x11, 0x93, 0x00, 0xCB, 0x0D, 0x97, 0x0C, 0x91, -0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xC2, 0xEF, 0x23, 0xF7, 0x14, 0x4C, 0xB8, 0x67, +0x80, 0x18, 0x25, 0x42, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0xAA, 0xF3, 0x64, 0xA2, +0xDF, 0xA1, 0x1F, 0x6D, 0x6C, 0xED, 0x20, 0x6B, +0x6B, 0xEB, 0xCC, 0xEB, 0xAD, 0xEB, 0x7F, 0xC1, +0xAA, 0xF3, 0x60, 0xA2, 0xAA, 0xF3, 0xA8, 0xA2, +0xAA, 0xF3, 0xC1, 0xA2, 0x3F, 0x6C, 0x8C, 0xED, +0x8C, 0xEE, 0x6C, 0xEC, 0x8D, 0xE6, 0x85, 0x67, +0x6E, 0xEC, 0x0A, 0x2C, 0xC3, 0xF4, 0x50, 0x9A, +0x01, 0x6B, 0x6C, 0xEA, 0x10, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x43, 0xF7, 0x0C, 0x4C, 0x09, 0x10, +0xC3, 0xF4, 0x50, 0x9A, 0x01, 0x6B, 0x6C, 0xEA, +0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF7, +0x18, 0x4C, 0x80, 0x18, 0x25, 0x42, 0x30, 0xF0, +0x21, 0x6A, 0x30, 0xF3, 0x68, 0xA2, 0x80, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, +0x00, 0x6B, 0x03, 0x22, 0x6C, 0x81, 0xC0, 0xF7, +0x62, 0x33, 0x30, 0xF0, 0x21, 0x6A, 0x30, 0xF3, +0x91, 0xA2, 0x3F, 0x6A, 0x8C, 0xEA, 0x02, 0x22, +0x3F, 0x72, 0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0xAA, 0xF3, 0xA5, 0xA2, +0x8A, 0xF3, 0x9F, 0xA2, 0xAE, 0xEC, 0x06, 0x2C, +0xAA, 0xF3, 0x40, 0xA2, 0x3F, 0x6C, 0x4C, 0xEC, +0x0A, 0xD4, 0x02, 0x10, 0x00, 0x6D, 0x0A, 0xD5, +0x43, 0x23, 0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF1, +0x6C, 0x40, 0x85, 0xF7, 0x08, 0x4A, 0x64, 0x33, +0x4D, 0xE3, 0x80, 0xAB, 0x0A, 0x97, 0x91, 0xE7, +0x80, 0xCB, 0xC4, 0xF1, 0x6C, 0x40, 0x64, 0x33, +0x4D, 0xE3, 0xAA, 0xF3, 0xA8, 0xA2, 0xC0, 0xAB, +0x3F, 0x6C, 0x8C, 0xED, 0xB5, 0xE6, 0xA0, 0xCB, +0xC4, 0xF2, 0xAC, 0x40, 0xA4, 0x35, 0x55, 0xE5, +0xAA, 0xF3, 0xC0, 0xA2, 0xE0, 0xAD, 0x8C, 0xEE, +0xD9, 0xE7, 0xC0, 0xCD, 0xAA, 0xF3, 0xC1, 0xA2, +0x44, 0xF2, 0xAC, 0x40, 0xA4, 0x35, 0x55, 0xE5, +0xCC, 0xEC, 0xC0, 0xAD, 0x91, 0xE6, 0x80, 0xCD, +0xA0, 0xAB, 0x70, 0xA1, 0x63, 0xED, 0x80, 0xF0, +0x13, 0x61, 0xC3, 0xF4, 0x50, 0x9A, 0x01, 0x6B, +0x6C, 0xEA, 0x07, 0x22, 0xD1, 0xA1, 0x30, 0xF0, +0x20, 0x6C, 0x63, 0xF7, 0x04, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x90, 0x67, 0x80, 0x18, 0xD6, 0x4F, +0x90, 0x67, 0x80, 0x18, 0xB1, 0x45, 0x80, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF6, 0x6C, 0x40, +0x85, 0xF7, 0x08, 0x4A, 0x64, 0x33, 0x4D, 0xE3, +0x80, 0xAB, 0x0A, 0x95, 0x91, 0xE5, 0x80, 0xCB, +0x83, 0xF5, 0x8C, 0x40, 0x84, 0x34, 0xAA, 0xF3, +0xA8, 0xA2, 0x51, 0xE4, 0xC0, 0xAC, 0x3F, 0x6B, +0x6C, 0xED, 0xB5, 0xE6, 0xA0, 0xCC, 0x03, 0xF7, +0xAC, 0x40, 0xA4, 0x35, 0xAA, 0xF3, 0xC0, 0xA2, +0x55, 0xE5, 0xE0, 0xAD, 0x6C, 0xEE, 0xD9, 0xE7, +0xC0, 0xCD, 0x03, 0xF6, 0xAC, 0x40, 0xA4, 0x35, +0xAA, 0xF3, 0xC1, 0xA2, 0x55, 0xE5, 0xE0, 0xAD, +0x6C, 0xEE, 0xD9, 0xE7, 0xC0, 0xCD, 0x84, 0xF0, +0xAC, 0x40, 0xA4, 0x35, 0x55, 0xE5, 0xC0, 0xAD, +0x0A, 0x97, 0xD9, 0xE7, 0xC0, 0xCD, 0xAA, 0xF3, +0xC8, 0xA2, 0x04, 0xF0, 0xAC, 0x40, 0xA4, 0x35, +0x55, 0xE5, 0xCC, 0xEB, 0xC0, 0xAD, 0x6D, 0xE6, +0x60, 0xCD, 0x80, 0xAC, 0x20, 0xF0, 0x68, 0xA1, +0x63, 0xEC, 0x1A, 0x61, 0x20, 0xF0, 0x6E, 0xA1, +0x17, 0x2B, 0xC3, 0xF4, 0x50, 0x9A, 0x01, 0x6B, +0x6C, 0xEA, 0x09, 0x22, 0x20, 0xF0, 0xC8, 0xA1, +0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF7, 0x00, 0x4C, +0xB0, 0x67, 0x80, 0x18, 0x25, 0x42, 0x90, 0x67, +0x80, 0x18, 0x69, 0x4E, 0x20, 0xF0, 0x45, 0xA1, +0x01, 0x4A, 0x20, 0xF0, 0x45, 0xC1, 0x24, 0x10, +0x6F, 0xA1, 0x40, 0x6A, 0x6C, 0xEA, 0x20, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x49, 0xF4, 0x58, 0x9A, +0x01, 0x6B, 0x6C, 0xEA, 0x07, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x83, 0xF7, 0x14, 0x4C, 0xB0, 0x67, +0x80, 0x18, 0x25, 0x42, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF5, 0x6C, 0x40, 0x64, 0x33, 0x85, 0xF7, +0x08, 0x4A, 0x49, 0xE3, 0x40, 0xAA, 0x03, 0x22, +0x90, 0x67, 0x80, 0x18, 0x69, 0x4E, 0x6F, 0xA1, +0x41, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x4F, 0xC1, +0x0A, 0x94, 0x30, 0xF0, 0x20, 0x6B, 0x85, 0xF7, +0x08, 0x4B, 0xAA, 0xF3, 0xA8, 0xA3, 0xAA, 0xF3, +0xC1, 0xA3, 0xAA, 0xF3, 0xE0, 0xA3, 0x04, 0xD4, +0xAA, 0xF3, 0x84, 0xA3, 0x3F, 0x6A, 0x4C, 0xED, +0x4C, 0xEC, 0x05, 0xD4, 0x8A, 0xF3, 0x9D, 0xA3, +0x1F, 0x6B, 0x4C, 0xEE, 0x8C, 0xEB, 0x4C, 0xEF, +0x90, 0x67, 0x06, 0xD3, 0x80, 0x18, 0xC4, 0x45, +0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF0, 0x70, 0xA2, 0x82, 0xF0, 0x10, 0x4A, +0x60, 0xC4, 0x41, 0xA2, 0x40, 0xC5, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF7, 0x78, 0x9B, +0xFF, 0x6A, 0x4C, 0xEC, 0x94, 0x34, 0x71, 0xE4, +0x60, 0xA4, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF7, 0x70, 0x9B, +0xFF, 0x6A, 0x4C, 0xEC, 0x94, 0x34, 0x71, 0xE4, +0x60, 0xA4, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0x40, 0xA4, 0x60, 0xA5, 0x60, 0xC4, 0x40, 0xC5, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, +0x0C, 0x5C, 0x13, 0x61, 0x2C, 0x5C, 0x06, 0x60, +0x48, 0x44, 0xFC, 0x4A, 0x4F, 0x32, 0x01, 0x4A, +0x6C, 0xEA, 0x20, 0xE8, 0x36, 0x5C, 0x09, 0x61, +0x40, 0x5C, 0x02, 0x6A, 0x07, 0x61, 0x4A, 0x5C, +0x03, 0x6A, 0x04, 0x61, 0x54, 0x5C, 0x04, 0x6A, +0x01, 0x61, 0x01, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0xAA, 0xEC, 0x64, 0x6A, 0x31, 0x60, 0x2F, 0x24, +0x83, 0xED, 0x2D, 0x61, 0x02, 0xF0, 0x00, 0x5D, +0x04, 0x6A, 0x0C, 0x61, 0x04, 0xF0, 0x00, 0x5D, +0x03, 0x6A, 0x08, 0x61, 0x08, 0xF0, 0x00, 0x5D, +0x02, 0x6A, 0x04, 0x61, 0xEF, 0xF7, 0x1E, 0x4A, +0x43, 0xED, 0x58, 0x67, 0xA4, 0xEA, 0x84, 0xEA, +0x00, 0x6B, 0x01, 0x6A, 0xA6, 0x35, 0x83, 0xED, +0x11, 0x60, 0x81, 0xF4, 0x00, 0x6E, 0xC7, 0xEB, +0xC9, 0xE2, 0x01, 0x75, 0xFF, 0xF7, 0x1F, 0x6E, +0xCC, 0xEA, 0xB3, 0xE4, 0x04, 0x61, 0x02, 0x5C, +0x04, 0x60, 0x01, 0x74, 0x06, 0x60, 0x02, 0x2C, +0x04, 0x10, 0x02, 0x6D, 0x01, 0x4B, 0x0C, 0x73, +0xE9, 0x61, 0x5A, 0x32, 0x01, 0x10, 0x00, 0x6A, +0xFF, 0x6B, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x6B, 0x8C, 0xEB, +0xC2, 0xF2, 0x84, 0x9A, 0xFE, 0x63, 0xC2, 0xF2, +0x04, 0x4A, 0x00, 0xD4, 0x81, 0x9A, 0x44, 0xAA, +0x00, 0xF0, 0x0A, 0x05, 0x01, 0xD4, 0x9D, 0x67, +0x44, 0xCC, 0x40, 0xA4, 0x43, 0xEB, 0x05, 0x61, +0x01, 0x4B, 0x4B, 0xE3, 0xFF, 0x6B, 0x6C, 0xEA, +0x04, 0x10, 0x01, 0x4C, 0xAA, 0xEC, 0xF5, 0x61, +0x00, 0x6A, 0x02, 0x63, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, +0x04, 0x67, 0x4C, 0xE8, 0xAC, 0xEA, 0x7F, 0x6B, +0x82, 0x67, 0x6C, 0xEC, 0x80, 0x18, 0x9C, 0x47, +0x30, 0x6B, 0x78, 0xE8, 0x14, 0x6C, 0x30, 0xF0, +0x20, 0x6B, 0x8A, 0xF0, 0x10, 0x4B, 0x12, 0xE8, +0x0D, 0xE3, 0x98, 0xEA, 0x12, 0xEA, 0x20, 0xF0, +0x48, 0xC3, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, +0x45, 0x67, 0x30, 0x6D, 0xB8, 0xEC, 0x30, 0xF0, +0x20, 0x6D, 0x8A, 0xF0, 0x10, 0x4D, 0x6C, 0xEA, +0x12, 0xEC, 0x95, 0xE5, 0xC0, 0xA5, 0x81, 0xA5, +0x30, 0xF0, 0x20, 0x6D, 0x8D, 0xF2, 0xFC, 0xA5, +0x04, 0x6D, 0xEC, 0xED, 0x6C, 0xED, 0x16, 0x2D, +0xFF, 0x72, 0x02, 0x61, 0x43, 0x67, 0x20, 0xE8, +0x7F, 0x6D, 0xAC, 0xEE, 0x4C, 0xED, 0xA3, 0xEE, +0x0A, 0x60, 0x80, 0x6C, 0x8B, 0xEC, 0x4C, 0xEC, +0xCD, 0xEC, 0x00, 0xF6, 0x80, 0x32, 0x00, 0xF6, +0x43, 0x32, 0x6C, 0xEA, 0x20, 0xE8, 0x83, 0xED, +0x01, 0x60, 0x44, 0x67, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0x4C, 0xEE, 0x4C, 0xEC, 0x4C, 0xED, +0x06, 0x26, 0x2C, 0x5C, 0x04, 0x61, 0x68, 0x44, +0xE8, 0x4B, 0x4C, 0xEB, 0x01, 0x10, 0x64, 0x67, +0x20, 0x5B, 0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF7, 0x44, 0x9A, 0xAC, 0x35, 0xE0, 0x4B, +0x55, 0xE5, 0x40, 0x9D, 0xFF, 0x6D, 0xAC, 0xEB, +0x07, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, +0x5C, 0x9A, 0xAC, 0x35, 0x55, 0xE5, 0x40, 0x9D, +0x01, 0x6D, 0xA4, 0xEB, 0x4C, 0xED, 0xFF, 0x6A, +0x01, 0x25, 0x44, 0x67, 0x20, 0xE8, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, -0xFF, 0x68, 0x0C, 0xEC, 0x30, 0x6B, 0x78, 0xEC, -0x5D, 0x67, 0x25, 0x67, 0x40, 0xF0, 0xA8, 0xAA, -0x30, 0xF0, 0x20, 0x6A, 0x6A, 0xF0, 0x00, 0x4A, -0x0C, 0xE9, 0x10, 0xD6, 0x11, 0xD7, 0x06, 0x07, -0x12, 0xEB, 0x69, 0xE2, 0x09, 0xD2, 0x7F, 0x6A, -0x2C, 0xEA, 0x08, 0xD2, 0x08, 0x96, 0x7D, 0x67, -0x00, 0x6A, 0x4C, 0xCB, 0x4D, 0xCB, 0x00, 0xF0, -0x1A, 0x02, 0x04, 0xD2, 0x80, 0x18, 0x37, 0x49, -0x80, 0x6B, 0x6B, 0xEB, 0x2C, 0xEB, 0x0C, 0xEB, -0x0A, 0x6A, 0x08, 0x2B, 0x08, 0x94, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, 0x49, 0xE4, -0x47, 0xF1, 0x5C, 0xA2, 0xDD, 0x67, 0x8C, 0xAE, -0x6D, 0xAE, 0x00, 0x69, 0xA3, 0x44, 0x55, 0xE5, -0xA2, 0xEB, 0x05, 0x60, 0x23, 0x44, 0x67, 0xE1, -0x25, 0xE2, 0xFF, 0x6A, 0x4C, 0xE9, 0x08, 0x93, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0x49, 0xE3, 0xDD, 0x67, 0x07, 0xF1, 0x48, 0xA2, -0x8C, 0xAE, 0x6D, 0xAE, 0x00, 0x68, 0x95, 0xE2, -0xA2, 0xEB, 0x04, 0x60, 0x63, 0xE4, 0x41, 0xE0, -0xFF, 0x6A, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0xC3, 0xF4, 0x90, 0x9A, -0xFF, 0x6B, 0x01, 0x4B, 0x8C, 0xEB, 0x0C, 0x23, -0x08, 0x93, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF7, -0x1C, 0x4C, 0x49, 0xE3, 0x07, 0xF1, 0xA8, 0xA2, -0x47, 0xF1, 0xDC, 0xA2, 0x80, 0x18, 0x16, 0x42, -0x30, 0xF0, 0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, +0xFF, 0x6A, 0x4C, 0xEE, 0x30, 0x68, 0x18, 0xEE, +0x30, 0xF0, 0x20, 0x6B, 0x8A, 0xF0, 0x10, 0x4B, +0x4C, 0xED, 0x4C, 0xEC, 0x27, 0x67, 0x01, 0x75, +0x09, 0xD6, 0x4C, 0xE9, 0x12, 0xE8, 0x01, 0xE3, +0x7F, 0x6B, 0x6C, 0xEC, 0x1F, 0x61, 0x0C, 0x5C, +0x05, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF2, +0x00, 0x4A, 0x1E, 0x10, 0x0A, 0x29, 0xF4, 0x4C, +0x4C, 0xEC, 0x03, 0x6A, 0x58, 0xEC, 0x30, 0xF0, +0x20, 0x6A, 0xC5, 0xF3, 0x04, 0x4A, 0x12, 0xEC, +0x36, 0x10, 0x2C, 0x5C, 0xC0, 0xF0, 0x0F, 0x61, +0xD4, 0x4C, 0x4C, 0xEC, 0x03, 0x6A, 0x58, 0xEC, +0x30, 0xF0, 0x20, 0x6A, 0x65, 0xF3, 0x08, 0x4A, +0x12, 0xEC, 0x29, 0x10, 0x0C, 0x5C, 0x10, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF2, 0x0C, 0x4A, +0x91, 0xE2, 0x80, 0xA4, 0x09, 0x95, 0xD1, 0x67, +0x80, 0x18, 0xD2, 0x47, 0x8C, 0xA0, 0x19, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0x6C, 0xC0, 0xB4, 0x10, +0x0A, 0x29, 0xF4, 0x4C, 0x4C, 0xEC, 0x03, 0x6A, +0x58, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0x65, 0xF4, +0x08, 0x4A, 0x12, 0xEC, 0x0C, 0x10, 0x2C, 0x5C, +0xA0, 0xF0, 0x05, 0x61, 0xD4, 0x4C, 0x4C, 0xEC, +0x03, 0x6A, 0x58, 0xEC, 0x30, 0xF0, 0x20, 0x6A, +0x05, 0xF4, 0x0C, 0x4A, 0x12, 0xEC, 0x89, 0xE2, +0x08, 0xD2, 0x01, 0x6A, 0x4B, 0xEA, 0x7D, 0x67, +0x00, 0x6C, 0x50, 0xC3, 0x51, 0xC3, 0x52, 0xC3, +0x07, 0xD4, 0x06, 0xD4, 0x07, 0x94, 0x08, 0x93, +0x89, 0xE3, 0x80, 0xA2, 0x2C, 0x74, 0x03, 0x61, +0x2C, 0x6C, 0x01, 0x29, 0x0C, 0x6C, 0x09, 0x95, +0xD1, 0x67, 0x80, 0x18, 0xD2, 0x47, 0xFF, 0x72, +0x08, 0x60, 0x06, 0x94, 0xBD, 0x67, 0x8D, 0xE5, +0x50, 0xC3, 0x01, 0x4C, 0xFF, 0x6A, 0x4C, 0xEC, +0x06, 0xD4, 0x07, 0x95, 0x01, 0x4D, 0x03, 0x75, +0x07, 0xD5, 0xE4, 0x61, 0x06, 0x92, 0x05, 0x2A, +0x6C, 0xA0, 0xE7, 0x4A, 0x6C, 0xEA, 0x4C, 0xC0, +0x6E, 0x10, 0x7A, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, +0x1F, 0x22, 0x6F, 0xA0, 0x30, 0x6A, 0x6C, 0xEA, +0x20, 0x72, 0x1A, 0x61, 0x05, 0x21, 0x30, 0xF0, +0x20, 0x6A, 0x85, 0xF5, 0x1C, 0x4A, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF5, 0x14, 0x4A, +0x9D, 0x67, 0x71, 0xA4, 0x2D, 0x5B, 0x01, 0x61, +0xE0, 0x4B, 0x40, 0x9A, 0x01, 0x6C, 0x84, 0xEB, +0x4C, 0xEC, 0x29, 0x24, 0x04, 0x04, 0x00, 0xF0, +0x11, 0x05, 0x80, 0x18, 0x70, 0x47, 0x23, 0x10, +0x7A, 0xA0, 0x40, 0x6A, 0x6C, 0xEA, 0x1F, 0x22, +0x6F, 0xA0, 0x30, 0x6A, 0x6C, 0xEA, 0x20, 0x72, +0x1A, 0x61, 0x05, 0x21, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF5, 0x0C, 0x4A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF5, 0x04, 0x4A, 0xBD, 0x67, +0x71, 0xA5, 0x2D, 0x5B, 0x01, 0x61, 0xE0, 0x4B, +0x40, 0x9A, 0x01, 0x6C, 0x84, 0xEB, 0x4C, 0xEC, +0x06, 0x24, 0x7D, 0x67, 0x51, 0xA3, 0x50, 0xC3, +0x01, 0x6A, 0x4B, 0xEA, 0x51, 0xC3, 0x9D, 0x67, +0x71, 0xA4, 0xFF, 0x73, 0x0B, 0x60, 0x52, 0xA4, +0xFF, 0x72, 0x08, 0x60, 0x65, 0xC0, 0x6C, 0xA0, +0x44, 0xC0, 0x19, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x10, 0x6B, 0x14, 0x10, 0xBD, 0x67, 0x51, 0xA5, +0xFF, 0x72, 0x03, 0x60, 0x72, 0xA5, 0xFF, 0x73, +0x07, 0x60, 0x7D, 0x67, 0x51, 0xA3, 0xFF, 0x72, +0x0B, 0x61, 0x52, 0xA3, 0xFF, 0x72, 0x08, 0x60, +0x6C, 0xA0, 0x44, 0xC0, 0x19, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x08, 0x6B, 0x6D, 0xEA, 0x4C, 0xC0, +0x9D, 0x67, 0x50, 0xA4, 0x01, 0x10, 0xFF, 0x6A, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD1, +0x00, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, 0x30, 0x6B, +0x78, 0xEC, 0x30, 0xF0, 0x20, 0x6B, 0x8A, 0xF0, +0x10, 0x4B, 0x06, 0x67, 0x4C, 0xE8, 0xE0, 0xA5, +0x12, 0xEC, 0x91, 0xE3, 0xCC, 0xA4, 0x03, 0x6B, +0xCC, 0xEB, 0x4C, 0xEB, 0x54, 0x23, 0x04, 0x6B, +0xCC, 0xEB, 0x4C, 0xEB, 0x50, 0x23, 0xDF, 0xA4, +0x20, 0x6B, 0x6B, 0xEB, 0xCC, 0xEB, 0x4C, 0xEB, +0x4A, 0x23, 0x7F, 0xA4, 0x0A, 0x69, 0x7F, 0x6E, +0x76, 0x33, 0xFF, 0x4B, 0x38, 0xEB, 0xEC, 0xEE, +0x12, 0xEB, 0x4C, 0xEB, 0x27, 0x43, 0x2C, 0x49, +0x22, 0xEE, 0x3D, 0x61, 0x80, 0x69, 0x7B, 0xE6, +0x02, 0x70, 0xEC, 0xE9, 0x4C, 0xEE, 0x11, 0x61, +0x33, 0x76, 0x35, 0x60, 0x02, 0x21, 0xC4, 0xC4, +0x02, 0x10, 0x4F, 0x46, 0x44, 0xC4, 0x80, 0x6A, +0xEF, 0x46, 0x4B, 0xEA, 0x4D, 0xEF, 0xFF, 0x6A, +0x4C, 0xEF, 0xCC, 0xA4, 0xFF, 0xF6, 0x08, 0x4A, +0x17, 0x10, 0x35, 0x76, 0x24, 0x60, 0x34, 0x76, +0x03, 0x61, 0xB5, 0x6F, 0x15, 0x29, 0x06, 0x10, +0x05, 0x21, 0x80, 0x68, 0xE1, 0x46, 0x0B, 0xE8, +0x0D, 0xEF, 0x04, 0x10, 0x80, 0x6F, 0xEB, 0xEF, +0xCD, 0xEF, 0xFF, 0x6A, 0x01, 0x4E, 0xC4, 0xC4, +0xCC, 0xA4, 0x4C, 0xEF, 0x19, 0x6A, 0x4B, 0xEA, +0xCC, 0xEA, 0x08, 0x6E, 0xCD, 0xEA, 0x4C, 0xC4, +0xCC, 0xA4, 0x18, 0x6A, 0xCC, 0xEA, 0x03, 0x22, +0x44, 0xA4, 0x49, 0xE3, 0x44, 0xC4, 0x6D, 0xE7, +0x60, 0xC5, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, +0x01, 0x91, 0x00, 0x90, 0x01, 0x63, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0x6B, 0x78, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x8A, 0xF0, 0x10, 0x4C, +0x12, 0xEB, 0x6D, 0xE4, 0x03, 0x2E, 0x25, 0x67, +0x00, 0x68, 0x02, 0x10, 0x26, 0x67, 0x20, 0x68, +0x1F, 0x6C, 0x00, 0xF6, 0x80, 0x37, 0x00, 0xF6, +0xE3, 0x37, 0x1F, 0x65, 0x01, 0x6F, 0xE4, 0xEC, +0x2C, 0xEF, 0x10, 0x27, 0xEC, 0xA3, 0x38, 0x67, +0x21, 0xE0, 0x1F, 0x65, 0x38, 0x67, 0x03, 0x6F, +0xFF, 0x6C, 0x2C, 0xEF, 0x8C, 0xEF, 0x8C, 0xE8, +0x09, 0x27, 0x0C, 0x58, 0x07, 0x61, 0x20, 0x48, +0x8C, 0xE8, 0x04, 0x10, 0xFF, 0x4C, 0xE1, 0x44, +0xE4, 0x2F, 0x00, 0x68, 0x00, 0x69, 0x02, 0x2D, +0xA6, 0x67, 0x20, 0x69, 0x00, 0x6C, 0x01, 0x6F, +0xE4, 0xEC, 0x00, 0xF6, 0x80, 0x36, 0xAC, 0xEF, +0x00, 0xF6, 0xC3, 0x36, 0x0D, 0x27, 0xC5, 0xE1, +0xCC, 0xA3, 0x03, 0x6D, 0xFF, 0x6C, 0xCC, 0xED, +0x8C, 0xED, 0x8C, 0xE9, 0x09, 0x25, 0x0C, 0x59, +0x07, 0x61, 0x20, 0x49, 0x8C, 0xE9, 0x04, 0x10, +0x01, 0x4C, 0x20, 0x74, 0xE8, 0x61, 0x00, 0x69, +0x00, 0xC3, 0x21, 0xC3, 0x82, 0x67, 0x80, 0x18, +0x64, 0x47, 0x7F, 0x6B, 0x4C, 0xEB, 0x63, 0xE8, +0x50, 0x67, 0x09, 0x61, 0xFF, 0x6A, 0x83, 0x67, +0x4C, 0xEB, 0x2C, 0xEA, 0x43, 0xEB, 0x01, 0x60, +0x91, 0x67, 0xFF, 0x6A, 0x8C, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFF, 0x63, 0x01, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF7, 0xDC, 0x9A, 0x03, 0x6A, 0x02, 0x68, +0x40, 0xC6, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF7, +0xA0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, +0xFC, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF7, +0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF7, +0x88, 0x9A, 0x01, 0x6A, 0xE0, 0xDD, 0x80, 0xDB, +0x00, 0xC6, 0xE0, 0xDD, 0x80, 0xDB, 0x40, 0xC6, +0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF7, 0x4C, 0x9A, +0x40, 0xDD, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0x80, 0xDB, 0xA7, 0xF1, 0x11, 0xC2, +0x00, 0x68, 0x00, 0xC6, 0xE0, 0xDD, 0x80, 0xDB, +0x04, 0x6B, 0xA7, 0xF1, 0x70, 0xC2, 0x01, 0x90, +0x01, 0x63, 0x20, 0xE8, 0xE5, 0x63, 0x35, 0x62, +0x34, 0xD1, 0x33, 0xD0, 0x30, 0xF0, 0x20, 0x6D, +0x07, 0x04, 0x62, 0xF2, 0x10, 0x4D, 0x54, 0x6E, +0x00, 0x18, 0x25, 0xC7, 0x30, 0xF0, 0x20, 0x6D, +0x1C, 0x04, 0x02, 0xF2, 0x1C, 0x4D, 0x54, 0x6E, +0x00, 0x18, 0x25, 0xC7, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF2, 0x70, 0x9A, 0x02, 0xF2, 0x10, 0x4A, +0x00, 0x69, 0x04, 0xD3, 0x61, 0x9A, 0x44, 0xAA, +0x05, 0xD3, 0x7D, 0x67, 0x4C, 0xCB, 0x30, 0x68, +0x18, 0xE9, 0x30, 0xF0, 0x20, 0x6A, 0x8A, 0xF0, +0x10, 0x4A, 0x00, 0x6C, 0x33, 0x6D, 0x01, 0x49, +0x12, 0xE8, 0x01, 0xE2, 0x68, 0xA0, 0x20, 0x6A, +0xC7, 0xA0, 0x4B, 0xEA, 0x6C, 0xEA, 0x09, 0x6B, +0x6D, 0xEA, 0xEA, 0x4B, 0xCC, 0xEB, 0x04, 0x6E, +0xEC, 0xA0, 0xCB, 0xEE, 0xCC, 0xEB, 0x67, 0xC0, +0x04, 0x6B, 0xED, 0xEB, 0xCC, 0xEB, 0x20, 0x6E, +0xCD, 0xEA, 0x40, 0x6E, 0xCD, 0xEA, 0xDA, 0xA0, +0x48, 0xC0, 0x03, 0x6A, 0x4B, 0xEA, 0xCC, 0xEA, +0x41, 0x6E, 0xCB, 0xEE, 0xCC, 0xEA, 0xCF, 0xA0, +0x81, 0xC0, 0x82, 0xC0, 0x99, 0xC0, 0x31, 0x6C, +0x8B, 0xEC, 0xCC, 0xEC, 0x8F, 0xC0, 0x7F, 0x6C, +0x8C, 0xEB, 0x00, 0x6C, 0x8A, 0xC0, 0x8A, 0xC8, +0xDF, 0x4C, 0x8C, 0xEA, 0x8D, 0xA0, 0x5A, 0xC0, +0x02, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, 0x6C, 0xC0, +0x4D, 0xC0, 0x00, 0x6B, 0x01, 0x6A, 0xA0, 0xC0, +0xA6, 0xC0, 0x7F, 0xC0, 0x20, 0xF0, 0x6E, 0xC0, +0x20, 0xF0, 0x48, 0xC0, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x48, 0x9B, 0x87, 0x40, 0x1A, 0x4C, +0xFF, 0x6D, 0x02, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x80, 0xF2, 0x48, 0x9B, 0x87, 0x40, +0x1C, 0x4C, 0x00, 0x6D, 0x02, 0x6E, 0x40, 0xEA, +0xFF, 0x6A, 0x4C, 0xE9, 0x80, 0x71, 0xA3, 0x61, +0x30, 0xF0, 0x20, 0x68, 0x80, 0x18, 0xD2, 0x48, +0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, 0x20, 0x6C, +0x8D, 0xF0, 0x10, 0x4C, 0x1C, 0x05, 0x54, 0x6E, +0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, +0x20, 0x6C, 0xED, 0xF0, 0x04, 0x4C, 0x07, 0x05, +0x54, 0x6E, 0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x98, +0x30, 0xF0, 0x20, 0x6C, 0x8D, 0xF2, 0x0A, 0x4C, +0x04, 0x05, 0x0A, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x2D, 0xF1, +0x1A, 0x4A, 0xED, 0xF1, 0x02, 0x4B, 0x0A, 0x6C, +0x80, 0xCA, 0x00, 0x6C, 0xA0, 0xF0, 0x88, 0xCA, +0x02, 0x4A, 0x6A, 0xEA, 0xF8, 0x61, 0x35, 0x97, +0x34, 0x91, 0x33, 0x90, 0x1B, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xEE, 0x30, 0x6A, +0x58, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0x8A, 0xF0, +0x10, 0x4A, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xED, +0x11, 0xD7, 0x04, 0xD5, 0x05, 0xD6, 0x12, 0xEC, +0x89, 0xE2, 0x86, 0x67, 0x06, 0xD2, 0xC3, 0xF4, +0x18, 0x4C, 0x30, 0xF0, 0x20, 0x6A, 0x84, 0x34, +0x85, 0xF7, 0x08, 0x4A, 0x49, 0xE4, 0x01, 0xAA, +0x03, 0xED, 0x13, 0xE5, 0x02, 0x60, 0x04, 0x92, +0x53, 0xE0, 0x6C, 0xEC, 0x05, 0x93, 0x30, 0xF0, +0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0x23, 0xF5, +0x0C, 0x4B, 0x64, 0x33, 0x4D, 0xE3, 0x61, 0xAB, +0xFF, 0x4C, 0x07, 0xD3, 0xFF, 0xF7, 0x1F, 0x6B, +0x6C, 0xEC, 0x07, 0x5C, 0x13, 0x60, 0x04, 0x93, +0x03, 0xEB, 0x08, 0x60, 0x05, 0x93, 0xC3, 0xF4, +0x18, 0x4B, 0x64, 0x33, 0x49, 0xE3, 0x61, 0xAA, +0xFF, 0x4B, 0x12, 0x10, 0x05, 0x93, 0xC3, 0xF4, +0x18, 0x4B, 0x64, 0x33, 0x49, 0xE3, 0x61, 0xAA, +0x01, 0x4B, 0x0A, 0x10, 0x05, 0x93, 0x04, 0x94, +0xC3, 0xF4, 0x18, 0x4B, 0x64, 0x33, 0x49, 0xE3, +0x0C, 0x33, 0x0F, 0xE3, 0x8D, 0xE3, 0x6F, 0x33, +0x61, 0xCA, 0x05, 0x93, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0xC3, 0xF4, 0x18, 0x4B, +0x64, 0x33, 0x4D, 0xE3, 0x61, 0xAB, 0xC3, 0xF4, +0x50, 0x9A, 0x08, 0xD3, 0xFF, 0x6B, 0x01, 0x4B, +0x4C, 0xEB, 0x09, 0x23, 0x08, 0x95, 0x04, 0x97, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF7, 0x00, 0x4C, +0xD0, 0x67, 0x80, 0x18, 0x25, 0x42, 0x04, 0x92, +0x43, 0xE8, 0x14, 0x61, 0x06, 0x94, 0x43, 0xE0, +0xFF, 0xF7, 0x1F, 0x6A, 0x69, 0xA4, 0x4C, 0xE8, +0x0F, 0x6C, 0x6A, 0x32, 0x8C, 0xEA, 0x44, 0x32, +0x01, 0x6D, 0xAD, 0xEA, 0x8C, 0xEA, 0xB4, 0x4C, +0x48, 0x32, 0x6C, 0xEC, 0x4D, 0xEC, 0x06, 0x92, +0x89, 0xC2, 0x13, 0x10, 0x04, 0x93, 0x06, 0x94, +0xFF, 0xF7, 0x1F, 0x6A, 0x03, 0xE3, 0x69, 0xA4, +0x4C, 0xE8, 0x0F, 0x6C, 0x6A, 0x32, 0x8C, 0xEA, +0x44, 0x32, 0x8C, 0xEA, 0x48, 0x34, 0x3D, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x06, 0x93, 0x8D, 0xEA, +0x49, 0xC3, 0x06, 0x94, 0x03, 0x6B, 0x49, 0xA4, +0x4A, 0x32, 0x6C, 0xEA, 0xFF, 0x4A, 0x02, 0x5A, +0x04, 0x61, 0x03, 0x58, 0x07, 0x91, 0x40, 0x60, +0x07, 0x10, 0x09, 0x58, 0x09, 0x6A, 0x01, 0x60, +0x50, 0x67, 0xFF, 0xF7, 0x1F, 0x68, 0x4C, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, +0xC3, 0xF4, 0x90, 0x9A, 0xFF, 0x6B, 0x01, 0x4B, +0x8C, 0xEB, 0x0F, 0x23, 0x06, 0x93, 0x49, 0xE0, +0x07, 0xF3, 0xE2, 0xA2, 0xA9, 0xA3, 0x30, 0xF0, +0x20, 0x6C, 0x0F, 0x6B, 0xAA, 0x35, 0xC3, 0xF7, +0x04, 0x4C, 0x6C, 0xED, 0xD0, 0x67, 0x80, 0x18, +0x25, 0x42, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0x41, 0xE0, 0x07, 0xF3, 0x42, 0xA0, +0x07, 0x94, 0xFF, 0xF7, 0x1F, 0x6B, 0x00, 0x69, +0x49, 0xE4, 0x6C, 0xEA, 0x0A, 0x5A, 0x06, 0x61, +0x28, 0x42, 0xFE, 0x49, 0x6C, 0xE9, 0x1F, 0x59, +0x01, 0x61, 0x1E, 0x69, 0x05, 0x93, 0x30, 0xF0, +0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0x23, 0xF5, +0x0C, 0x4B, 0x64, 0x33, 0x49, 0xE3, 0x21, 0xCA, +0x30, 0xF0, 0x20, 0x6B, 0x49, 0xF4, 0x78, 0x9B, +0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x08, 0x22, +0x07, 0x95, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF7, +0x1C, 0x4C, 0xD1, 0x67, 0x80, 0x18, 0x25, 0x42, +0x08, 0x94, 0x11, 0x67, 0x0B, 0x5C, 0x10, 0x61, +0x15, 0x59, 0x01, 0x6A, 0x06, 0x60, 0x0B, 0x59, +0x58, 0x67, 0x01, 0x5A, 0x58, 0x67, 0x03, 0x6B, +0x4B, 0xE3, 0x08, 0x90, 0xF6, 0x48, 0x07, 0xEA, +0x01, 0xE1, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, +0x28, 0x58, 0x01, 0x61, 0x28, 0x68, 0x03, 0x59, +0x00, 0x69, 0x02, 0x60, 0x04, 0x92, 0x4A, 0x31, +0x30, 0xF0, 0x20, 0x6B, 0x49, 0xF4, 0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x08, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF7, 0x0C, 0x4C, -0xB0, 0x67, 0xD1, 0x67, 0x80, 0x18, 0x16, 0x42, -0x09, 0x94, 0x3F, 0x6B, 0x5E, 0xA4, 0x6C, 0xEA, -0x7E, 0x84, 0x00, 0x53, 0x0F, 0x60, 0x43, 0xE9, -0x02, 0x60, 0x00, 0x69, 0x03, 0x10, 0x47, 0xE1, -0xFF, 0x6B, 0x6C, 0xE9, 0x43, 0xE8, 0x02, 0x60, -0x00, 0x68, 0x0A, 0x10, 0x43, 0xE0, 0xFF, 0x6A, -0x4C, 0xE8, 0x06, 0x10, 0x05, 0x22, 0xFF, 0x6B, -0x45, 0xE1, 0x41, 0xE0, 0x6C, 0xE9, 0x6C, 0xE8, -0x42, 0x58, 0x50, 0x67, 0x01, 0x61, 0x41, 0x6A, -0x10, 0x96, 0x5B, 0x59, 0x40, 0xC6, 0x51, 0x67, -0x01, 0x61, 0x5A, 0x6A, 0x11, 0x93, 0x40, 0xC3, +0xB1, 0x67, 0xD0, 0x67, 0x80, 0x18, 0x25, 0x42, +0x12, 0x92, 0x20, 0xCA, 0x11, 0x93, 0x00, 0xCB, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, -0x30, 0x68, 0x18, 0xEC, 0x4C, 0xED, 0x30, 0xF0, -0x20, 0x6A, 0x6A, 0xF0, 0x00, 0x4A, 0x07, 0xD4, -0x06, 0xD5, 0x01, 0x69, 0x12, 0xE8, 0x01, 0xE2, -0x46, 0xA0, 0x08, 0xD2, 0x00, 0x6A, 0x05, 0xD2, -0x81, 0xA0, 0x4C, 0xA0, 0x07, 0x96, 0xFF, 0x6B, -0x91, 0xE1, 0x03, 0x6F, 0x6C, 0xEC, 0x01, 0x6D, -0x4C, 0xEF, 0x80, 0x18, 0xD7, 0x47, 0x30, 0xF0, -0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, 0x04, 0xD2, -0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x0C, 0x22, -0x05, 0x92, 0xC1, 0xA0, 0x04, 0x97, 0x01, 0x4A, -0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF7, 0x1C, 0x4C, -0xA2, 0x67, 0xD9, 0xE2, 0x80, 0x18, 0x16, 0x42, -0x04, 0x92, 0xFF, 0x72, 0x0E, 0x61, 0x05, 0x93, -0x81, 0xA0, 0x40, 0xA0, 0x01, 0x4B, 0x91, 0xE3, -0x42, 0xEC, 0x06, 0x60, 0x01, 0x49, 0xFF, 0x6A, -0x4C, 0xE9, 0x54, 0x71, 0x05, 0xD3, 0xD0, 0x61, -0x04, 0xD2, 0x06, 0x92, 0x38, 0x5A, 0x02, 0x61, -0x46, 0xA0, 0x0D, 0x10, 0x06, 0x92, 0x24, 0x5A, -0x05, 0x61, 0x08, 0x92, 0xFF, 0x6B, 0xFE, 0x4A, -0x6C, 0xEA, 0x05, 0x10, 0x06, 0x92, 0x15, 0x5A, -0x04, 0x92, 0x01, 0x60, 0x41, 0xA0, 0x0D, 0x97, -0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0x6A, 0x4C, 0xEC, 0x30, 0x68, 0x18, 0xEC, -0x4C, 0xEF, 0x30, 0xF0, 0x20, 0x6B, 0x0D, 0xD5, -0x0E, 0xD6, 0x06, 0xD4, 0x05, 0xD7, 0x6A, 0xF0, -0x00, 0x4B, 0x20, 0xA5, 0x03, 0x6D, 0x12, 0xE8, -0x01, 0xE3, 0x60, 0xA6, 0x04, 0xD3, 0x87, 0xA0, -0x04, 0x96, 0xAC, 0xEC, 0x64, 0x67, 0x4C, 0xEB, -0xC2, 0xEB, 0x03, 0x60, 0x0E, 0x91, 0x80, 0xC1, -0xA2, 0x10, 0xA0, 0xF0, 0x00, 0x23, 0x2F, 0x59, -0x80, 0xF0, 0x1D, 0x60, 0x6C, 0xA0, 0x6C, 0xED, -0x4C, 0xED, 0x80, 0xF0, 0x18, 0x25, 0x30, 0xF0, -0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, 0xFF, 0x6A, -0x01, 0x4A, 0x6C, 0xEA, 0x09, 0x22, 0x05, 0x95, -0x04, 0x96, 0x30, 0xF0, 0x20, 0x6C, 0x04, 0xF0, -0x10, 0x4C, 0xF1, 0x67, 0x80, 0x18, 0x16, 0x42, -0x05, 0x92, 0x01, 0x72, 0x03, 0x60, 0x05, 0x6B, -0x01, 0x6A, 0x42, 0x10, 0x04, 0x6B, 0x00, 0x6A, -0x3F, 0x10, 0x05, 0x93, 0x81, 0x42, 0x01, 0x73, -0x01, 0x60, 0x8F, 0x42, 0xFF, 0x6A, 0x4C, 0xEC, -0x30, 0xF0, 0x20, 0x6F, 0x25, 0xF3, 0x0C, 0x4F, -0x88, 0x32, 0xE9, 0xE2, 0xC0, 0xAA, 0xFF, 0x6D, -0x88, 0x34, 0x26, 0x67, 0xAC, 0xE9, 0x04, 0xD1, -0x47, 0xA0, 0x91, 0xE7, 0xE1, 0xAC, 0x1A, 0x65, -0x38, 0x67, 0x03, 0x6A, 0x2C, 0xEA, 0xE2, 0x34, -0xAC, 0xEA, 0xAC, 0xEC, 0xC2, 0x33, 0x82, 0xEA, -0xAC, 0xEB, 0x41, 0x61, 0xE4, 0xC0, 0x30, 0xF0, -0x20, 0x6D, 0x05, 0xD5, 0x06, 0x95, 0x30, 0x69, -0x38, 0xED, 0x05, 0x91, 0x45, 0xF7, 0x18, 0x49, -0x12, 0xED, 0x35, 0xE5, 0x24, 0xF1, 0x8E, 0xC5, -0x84, 0xA0, 0xFF, 0x74, 0x30, 0x60, 0xAC, 0xA0, -0x19, 0x6C, 0x8B, 0xEC, 0xAC, 0xEC, 0x08, 0x6D, -0xAD, 0xEC, 0x8C, 0xC0, 0x28, 0x10, 0x01, 0x4A, -0xFF, 0x6C, 0x8C, 0xEA, 0x63, 0xEA, 0x46, 0x60, -0x30, 0xF0, 0x20, 0x6C, 0x48, 0x35, 0x25, 0xF3, -0x0C, 0x4C, 0x91, 0xE5, 0xA0, 0xAC, 0xFF, 0x6C, -0xC5, 0x67, 0x8C, 0xEE, 0x2E, 0xEE, 0x05, 0x2E, -0xA2, 0x35, 0x8C, 0xED, 0x04, 0x94, 0x8E, 0xED, -0xB0, 0x25, 0x30, 0xF0, 0x20, 0x6C, 0x48, 0x35, -0x25, 0xF3, 0x0C, 0x4C, 0xB1, 0xE4, 0xA1, 0xAC, -0xFF, 0x6C, 0xC5, 0x67, 0x8C, 0xEE, 0x2E, 0xEE, -0xDE, 0x2E, 0x04, 0x96, 0xA2, 0x35, 0x8C, 0xED, -0xCE, 0xED, 0xD9, 0x2D, 0x9E, 0x17, 0x62, 0xEA, -0x00, 0x68, 0x09, 0x61, 0x3D, 0x67, 0x47, 0x41, -0x09, 0x4A, 0x40, 0xA2, 0x0D, 0x91, 0x01, 0x68, -0x40, 0xC1, 0x0E, 0x94, 0x60, 0xC4, 0x30, 0xF0, -0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, 0xFF, 0x6A, -0x01, 0x4A, 0x6C, 0xEA, 0x09, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x24, 0xF0, 0x0C, 0x4C, 0xB0, 0x67, -0x80, 0x18, 0x16, 0x42, 0x01, 0x10, 0x00, 0x68, -0x50, 0x67, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0x00, 0x68, 0xF0, 0x67, -0xD0, 0x67, 0xE5, 0x17, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x68, 0x0C, 0xEC, -0xAC, 0xE8, 0xFF, 0x70, 0x04, 0xD4, 0x33, 0x60, -0x7F, 0x69, 0x0C, 0xE9, 0x91, 0x67, 0x80, 0x18, -0x64, 0x47, 0x04, 0x93, 0x30, 0x6C, 0x98, 0xEB, -0x30, 0xF0, 0x20, 0x6B, 0x6A, 0xF0, 0x00, 0x4B, -0x12, 0xEC, 0x8D, 0xE3, 0x4D, 0xE3, 0x20, 0xF0, -0x60, 0xA3, 0x00, 0xF2, 0x00, 0x6A, 0x04, 0xD3, -0x30, 0xF0, 0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, -0x6C, 0xEA, 0x08, 0x22, 0x04, 0x96, 0x30, 0xF0, -0x20, 0x6C, 0x44, 0xF0, 0x04, 0x4C, 0xB0, 0x67, -0x80, 0x18, 0x16, 0x42, 0x04, 0x94, 0xFF, 0x74, -0x0F, 0x60, 0x7F, 0x6A, 0x8C, 0xEA, 0x23, 0xEA, -0x0A, 0x61, 0x4E, 0xE9, 0x09, 0x29, 0x80, 0x6A, -0x70, 0x67, 0x4C, 0xEB, 0x8C, 0xEA, 0x4A, 0xEB, -0x02, 0x60, 0x02, 0x23, 0x01, 0x2A, 0xFF, 0x68, -0x50, 0x67, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x4C, 0xED, -0x4C, 0xEE, 0xC3, 0xED, 0x4C, 0xEC, 0xEC, 0xEA, -0x02, 0x61, 0xD7, 0xE5, 0x01, 0x10, 0xB7, 0xE6, -0x03, 0x55, 0x01, 0x60, 0x25, 0x22, 0x30, 0x69, -0x38, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0x6A, 0xF0, -0x00, 0x4A, 0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6D, -0x02, 0x6E, 0x12, 0xE9, 0x25, 0xE2, 0x80, 0xF2, -0x48, 0x98, 0x87, 0x41, 0x1A, 0x4C, 0x40, 0xEA, -0x80, 0xF2, 0x48, 0x98, 0x87, 0x41, 0x1C, 0x4C, -0x00, 0x6D, 0x02, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, 0x01, 0xF0, -0x00, 0x6A, 0x6C, 0xEA, 0x13, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x44, 0xF0, 0x14, 0x4C, 0x0C, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, -0x01, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x06, 0x22, -0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF0, 0x00, 0x4C, -0x80, 0x18, 0x16, 0x42, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, -0x30, 0x6B, 0x78, 0xEA, 0x30, 0xF0, 0x20, 0x6C, -0x6A, 0xF0, 0x00, 0x4C, 0x12, 0xEB, 0x6D, 0xE4, -0x20, 0xF0, 0x81, 0xA3, 0xFF, 0x74, 0x0F, 0x60, -0x20, 0xF0, 0x83, 0xA3, 0x32, 0x5C, 0x04, 0x60, -0x01, 0x4C, 0x20, 0xF0, 0x83, 0xC3, 0x07, 0x10, -0x00, 0x6C, 0x20, 0xF0, 0x83, 0xC3, 0x01, 0x6C, -0x8B, 0xEC, 0x20, 0xF0, 0x81, 0xC3, 0x20, 0xF0, -0x82, 0xA3, 0xFF, 0x74, 0x0F, 0x60, 0x20, 0xF0, -0x84, 0xA3, 0x32, 0x5C, 0x08, 0x61, 0x00, 0x6C, -0x20, 0xF0, 0x84, 0xC3, 0x01, 0x6C, 0x8B, 0xEC, -0x20, 0xF0, 0x82, 0xC3, 0x03, 0x10, 0x01, 0x4C, -0x20, 0xF0, 0x84, 0xC3, 0x01, 0x72, 0x17, 0x61, -0x30, 0xF0, 0x20, 0x6C, 0x29, 0xF4, 0x88, 0x9C, -0x01, 0xF0, 0x00, 0x6A, 0x8C, 0xEA, 0x0F, 0x22, -0x20, 0xF0, 0xA1, 0xA3, 0x20, 0xF0, 0xC3, 0xA3, -0x20, 0xF0, 0xE2, 0xA3, 0x20, 0xF0, 0x44, 0xA3, -0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF0, 0x0C, 0x4C, -0x04, 0xD2, 0x80, 0x18, 0x16, 0x42, 0x07, 0x97, -0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0xFF, 0x6E, 0x44, 0x67, 0x20, 0xF4, 0x0D, 0x6B, -0x9D, 0x67, 0x68, 0xCC, 0xCC, 0xEA, 0x20, 0xF4, -0x0F, 0x6B, 0x69, 0xCC, 0x44, 0x33, 0x6D, 0xE4, -0x68, 0xAB, 0x1F, 0xF7, 0x00, 0x6C, 0xAC, 0xEE, -0x6C, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, -0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF5, -0x84, 0x9C, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, -0xC2, 0xF5, 0x88, 0x9C, 0x91, 0xE3, 0xA0, 0xA4, -0xF1, 0x6C, 0xAC, 0xEC, 0xC4, 0x35, 0x8D, 0xED, -0x00, 0xF6, 0xA0, 0x34, 0x00, 0xF6, 0x83, 0x34, -0xFF, 0x6D, 0xAC, 0xEC, 0x1F, 0xF7, 0x00, 0x6D, -0x6C, 0xED, 0x02, 0xF0, 0x00, 0x75, 0x01, 0x60, -0x05, 0x2D, 0x30, 0xF0, 0x20, 0x6D, 0xC2, 0xF5, -0xA4, 0x9D, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6D, -0xC2, 0xF5, 0xA8, 0x9D, 0xAD, 0xE3, 0x80, 0xC3, -0x30, 0xF0, 0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, -0x10, 0x6C, 0x8C, 0xEB, 0x07, 0x23, 0x30, 0xF0, -0x20, 0x6C, 0x84, 0xF0, 0x08, 0x4C, 0xA2, 0x67, -0x80, 0x18, 0x16, 0x42, 0x07, 0x97, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x45, 0xF7, 0x18, 0x48, 0x04, 0xF1, 0x41, 0xA0, -0xFF, 0x69, 0x8C, 0xE9, 0x16, 0x22, 0x09, 0xE1, -0xE4, 0xF0, 0xBC, 0xA2, 0x91, 0x67, 0x04, 0xD2, -0x80, 0x18, 0x23, 0x4B, 0xC3, 0xF4, 0x50, 0x98, -0x10, 0x6B, 0x6C, 0xEA, 0x0A, 0x22, 0x04, 0x92, -0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF0, 0x00, 0x4C, -0xE4, 0xF0, 0xDC, 0xA2, 0xB1, 0x67, 0x80, 0x18, -0x16, 0x42, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xF8, 0x63, 0x0F, 0x62, -0x0E, 0xD1, 0x0D, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0xFF, 0x6A, 0x82, 0xF7, 0x6C, 0x9B, 0x4C, 0xEC, -0x08, 0xD4, 0x00, 0xA3, 0x10, 0x6B, 0x30, 0xF0, -0x20, 0x69, 0x6C, 0xE8, 0x13, 0x30, 0x4C, 0xE8, -0x45, 0xF7, 0x18, 0x49, 0x35, 0xE0, 0xE4, 0xF0, -0x58, 0xA5, 0x06, 0xD5, 0x82, 0x67, 0x07, 0xD2, -0x80, 0x18, 0x55, 0x47, 0x7F, 0x6C, 0x4C, 0xEC, -0x09, 0xD2, 0x80, 0x18, 0x64, 0x47, 0x06, 0x93, -0x0A, 0xD2, 0x04, 0xF1, 0x41, 0xA1, 0xE4, 0xF0, -0x7A, 0xA3, 0x06, 0xD3, 0x59, 0x22, 0xC3, 0xF4, -0x50, 0x99, 0x10, 0x6D, 0xAC, 0xEA, 0x0C, 0x22, -0x04, 0xF1, 0x40, 0xA1, 0x07, 0x95, 0x08, 0x96, -0x09, 0x97, 0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF0, -0x18, 0x4C, 0x04, 0xD2, 0x80, 0x18, 0x16, 0x42, -0x08, 0x92, 0x12, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0xE4, 0xF0, 0xBF, 0xA2, -0x01, 0x6B, 0x83, 0x67, 0x84, 0xE8, 0xAD, 0xEC, -0xE4, 0xF0, 0x9F, 0xC2, 0x06, 0x94, 0x0A, 0x95, -0x01, 0x4C, 0xA2, 0xEC, 0x0E, 0x60, 0x22, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0xE4, 0xF0, 0x9F, 0xA2, 0x01, 0x6B, 0x64, 0xE8, -0x6F, 0xEB, 0x8C, 0xEB, 0xE4, 0xF0, 0x7F, 0xC2, -0x15, 0x10, 0x04, 0xF1, 0x80, 0xA2, 0x87, 0xE8, -0x6C, 0xEC, 0x10, 0x24, 0xC3, 0xF4, 0x50, 0x9A, -0x10, 0x6B, 0x6C, 0xEA, 0x07, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0xC4, 0xF0, 0x18, 0x4C, 0xB0, 0x67, -0x80, 0x18, 0x16, 0x42, 0x90, 0x67, 0x80, 0x18, -0x4B, 0x4B, 0x12, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x29, 0xF4, 0x48, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, -0x07, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xE4, 0xF0, -0x04, 0x4C, 0xB0, 0x67, 0x80, 0x18, 0x16, 0x42, -0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x23, 0x4B, -0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6B, 0x44, 0x67, 0x6C, 0xEA, 0xAC, 0xEB, -0x01, 0x73, 0x0B, 0x60, 0x03, 0x23, 0x02, 0x73, -0x0F, 0x60, 0x16, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x45, 0xF7, 0x18, 0x4B, 0x6D, 0xE2, 0x01, 0x6C, -0x0D, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF7, -0x18, 0x4B, 0x6D, 0xE2, 0x03, 0x6C, 0x06, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF7, 0x18, 0x4B, -0x6D, 0xE2, 0x07, 0x6C, 0xE4, 0xF0, 0x9C, 0xC3, -0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF7, 0x18, 0x4B, -0xC3, 0xF4, 0x90, 0x9B, 0x10, 0x6D, 0xAC, 0xEC, -0x0A, 0x24, 0x6D, 0xE2, 0xE4, 0xF0, 0xDC, 0xA3, -0x30, 0xF0, 0x20, 0x6C, 0xE4, 0xF0, 0x10, 0x4C, -0xA2, 0x67, 0x80, 0x18, 0x16, 0x42, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xEE, 0x4C, 0xED, -0xEC, 0xEA, 0x30, 0x6F, 0xF8, 0xEC, 0x30, 0xF0, -0x20, 0x6B, 0x6A, 0xF0, 0x00, 0x4B, 0x12, 0xEF, -0xED, 0xE3, 0xFD, 0x67, 0xB2, 0xC7, 0x93, 0xC7, -0x55, 0xC7, 0x4B, 0xAB, 0x56, 0xC7, 0x4A, 0xAB, -0xD8, 0xC7, 0x57, 0xC7, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0x49, 0xE4, 0x87, 0xF7, -0x98, 0xA2, 0x07, 0xF7, 0xB8, 0xA2, 0x80, 0x18, -0x71, 0x47, 0x7D, 0x67, 0x59, 0xC3, 0x0C, 0x6A, -0x50, 0xC3, 0x08, 0x6A, 0x4F, 0xCB, 0x07, 0x97, -0x04, 0x94, 0x05, 0x95, 0x06, 0x96, 0x80, 0x18, -0x00, 0x40, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, -0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x6A, 0x82, 0xF7, -0x70, 0x9B, 0x4C, 0xEC, 0x04, 0xD4, 0x4C, 0xED, -0x4C, 0xEE, 0x4C, 0xEF, 0x94, 0x34, 0x06, 0xD5, -0x07, 0xD6, 0x05, 0xD7, 0x6D, 0xE4, 0x60, 0xA3, -0x04, 0x94, 0x6C, 0xEA, 0x08, 0xD2, 0x80, 0x18, -0x5B, 0x47, 0x04, 0x94, 0x06, 0x95, 0x09, 0xD2, -0x80, 0x18, 0xAC, 0x47, 0xFF, 0x72, 0x22, 0x67, -0x79, 0x60, 0x04, 0x92, 0x30, 0x68, 0x0C, 0x59, -0x18, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x6A, 0xF0, -0x00, 0x4A, 0x12, 0xE8, 0x01, 0xE2, 0x22, 0xC0, -0x05, 0x60, 0x67, 0xA0, 0x0D, 0x6A, 0x4B, 0xEA, -0x6C, 0xEA, 0x09, 0x10, 0x05, 0x94, 0x03, 0x6B, -0x0D, 0x6A, 0x8C, 0xEB, 0x87, 0xA0, 0x4B, 0xEA, -0x68, 0x33, 0x8C, 0xEA, 0x6D, 0xEA, 0x47, 0xC0, -0x07, 0x95, 0x15, 0x2D, 0x43, 0xA0, 0x2E, 0xEA, -0x01, 0x22, 0xB6, 0xC8, 0x6C, 0xA0, 0x7F, 0x6A, -0xB1, 0x67, 0x6C, 0xEA, 0x4C, 0xC0, 0x04, 0x94, -0x80, 0x18, 0x9D, 0x47, 0x04, 0x94, 0x05, 0x96, -0xB1, 0x67, 0x00, 0x6F, 0x80, 0x18, 0xBF, 0x4B, -0x00, 0x6A, 0x62, 0x67, 0x1C, 0x10, 0x6C, 0xA0, -0x80, 0x6A, 0x4B, 0xEA, 0x6D, 0xEA, 0x4C, 0xC0, -0x04, 0x94, 0x05, 0x96, 0xB1, 0x67, 0x05, 0x6F, -0x80, 0x18, 0xBF, 0x4B, 0x06, 0x94, 0x30, 0xF0, -0x20, 0x6A, 0x7F, 0x6B, 0x8C, 0xEB, 0xC5, 0xF2, -0x18, 0x4A, 0x49, 0xE3, 0x40, 0xA2, 0x50, 0xC0, -0x70, 0xA0, 0x51, 0xA0, 0x63, 0xEA, 0x01, 0x60, -0x50, 0xC0, 0x40, 0x6A, 0x01, 0x6B, 0x09, 0x95, -0x05, 0x96, 0x07, 0x6C, 0xAC, 0xEC, 0xCC, 0x35, -0xB1, 0xE4, 0x08, 0x96, 0x4D, 0xEC, 0x04, 0x6A, -0x4B, 0xEA, 0xCC, 0xEA, 0x6D, 0xEA, 0x00, 0xF6, -0x80, 0x34, 0x00, 0xF6, 0x40, 0x32, 0xFF, 0x6D, -0x00, 0xF6, 0x83, 0x34, 0x00, 0xF6, 0x43, 0x32, -0xAC, 0xEC, 0xAC, 0xEA, 0x04, 0x95, 0xB4, 0x33, -0x30, 0xF0, 0x20, 0x6D, 0x22, 0xF7, 0xB4, 0x9D, -0xB5, 0xE3, 0x20, 0xC5, 0x30, 0xF0, 0x20, 0x6D, -0x22, 0xF7, 0xAC, 0x9D, 0xB5, 0xE3, 0x80, 0xC5, -0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF7, 0x90, 0x9C, -0x8D, 0xE3, 0x40, 0xC3, 0x0D, 0x97, 0x0C, 0x91, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x68, 0x0C, 0xEC, +0x30, 0x6B, 0x78, 0xEC, 0x5D, 0x67, 0x25, 0x67, +0x40, 0xF0, 0xA8, 0xAA, 0x30, 0xF0, 0x20, 0x6A, +0x8A, 0xF0, 0x10, 0x4A, 0x0C, 0xE9, 0x10, 0xD6, +0x11, 0xD7, 0x06, 0x07, 0x12, 0xEB, 0x69, 0xE2, +0x09, 0xD2, 0x7F, 0x6A, 0x2C, 0xEA, 0x08, 0xD2, +0x08, 0x96, 0x7D, 0x67, 0x00, 0x6A, 0x4C, 0xCB, +0x4D, 0xCB, 0x00, 0xF0, 0x1A, 0x02, 0x04, 0xD2, +0x80, 0x18, 0x46, 0x49, 0x80, 0x6B, 0x6B, 0xEB, +0x2C, 0xEB, 0x0C, 0xEB, 0x0A, 0x6A, 0x08, 0x2B, +0x08, 0x94, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, +0x08, 0x4A, 0x49, 0xE4, 0x47, 0xF1, 0x5C, 0xA2, +0xDD, 0x67, 0x8C, 0xAE, 0x6D, 0xAE, 0x00, 0x69, +0xA3, 0x44, 0x55, 0xE5, 0xA2, 0xEB, 0x05, 0x60, +0x23, 0x44, 0x67, 0xE1, 0x25, 0xE2, 0xFF, 0x6A, +0x4C, 0xE9, 0x08, 0x93, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0x49, 0xE3, 0xDD, 0x67, +0x07, 0xF1, 0x48, 0xA2, 0x8C, 0xAE, 0x6D, 0xAE, +0x00, 0x68, 0x95, 0xE2, 0xA2, 0xEB, 0x04, 0x60, +0x63, 0xE4, 0x41, 0xE0, 0xFF, 0x6A, 0x4C, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, +0xC3, 0xF4, 0x90, 0x9A, 0xFF, 0x6B, 0x01, 0x4B, +0x8C, 0xEB, 0x0C, 0x23, 0x08, 0x93, 0x30, 0xF0, +0x20, 0x6C, 0x04, 0xF0, 0x04, 0x4C, 0x49, 0xE3, +0x07, 0xF1, 0xA8, 0xA2, 0x47, 0xF1, 0xDC, 0xA2, +0x80, 0x18, 0x25, 0x42, 0x30, 0xF0, 0x20, 0x6B, +0x49, 0xF4, 0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, +0x6C, 0xEA, 0x08, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0x04, 0xF0, 0x14, 0x4C, 0xB0, 0x67, 0xD1, 0x67, +0x80, 0x18, 0x25, 0x42, 0x09, 0x94, 0x3F, 0x6B, +0x5E, 0xA4, 0x6C, 0xEA, 0x7E, 0x84, 0x00, 0x53, +0x0F, 0x60, 0x43, 0xE9, 0x02, 0x60, 0x00, 0x69, +0x03, 0x10, 0x47, 0xE1, 0xFF, 0x6B, 0x6C, 0xE9, +0x43, 0xE8, 0x02, 0x60, 0x00, 0x68, 0x0A, 0x10, +0x43, 0xE0, 0xFF, 0x6A, 0x4C, 0xE8, 0x06, 0x10, +0x05, 0x22, 0xFF, 0x6B, 0x45, 0xE1, 0x41, 0xE0, +0x6C, 0xE9, 0x6C, 0xE8, 0x42, 0x58, 0x50, 0x67, +0x01, 0x61, 0x41, 0x6A, 0x10, 0x96, 0x5B, 0x59, +0x40, 0xC6, 0x51, 0x67, 0x01, 0x61, 0x5A, 0x6A, +0x11, 0x93, 0x40, 0xC3, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0x30, 0x68, 0x18, 0xEC, +0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6A, 0x8A, 0xF0, +0x10, 0x4A, 0x07, 0xD4, 0x06, 0xD5, 0x01, 0x69, +0x12, 0xE8, 0x01, 0xE2, 0x46, 0xA0, 0x08, 0xD2, +0x00, 0x6A, 0x05, 0xD2, 0x81, 0xA0, 0x4C, 0xA0, +0x07, 0x96, 0xFF, 0x6B, 0x91, 0xE1, 0x03, 0x6F, +0x6C, 0xEC, 0x01, 0x6D, 0x4C, 0xEF, 0x80, 0x18, +0xE6, 0x47, 0x30, 0xF0, 0x20, 0x6B, 0x49, 0xF4, +0x78, 0x9B, 0x04, 0xD2, 0x00, 0xF2, 0x00, 0x6A, +0x6C, 0xEA, 0x0C, 0x22, 0x05, 0x92, 0xC1, 0xA0, +0x04, 0x97, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6C, +0x24, 0xF0, 0x04, 0x4C, 0xA2, 0x67, 0xD9, 0xE2, +0x80, 0x18, 0x25, 0x42, 0x04, 0x92, 0xFF, 0x72, +0x0E, 0x61, 0x05, 0x93, 0x81, 0xA0, 0x40, 0xA0, +0x01, 0x4B, 0x91, 0xE3, 0x42, 0xEC, 0x06, 0x60, +0x01, 0x49, 0xFF, 0x6A, 0x4C, 0xE9, 0x54, 0x71, +0x05, 0xD3, 0xD0, 0x61, 0x04, 0xD2, 0x06, 0x92, +0x38, 0x5A, 0x02, 0x61, 0x46, 0xA0, 0x0D, 0x10, +0x06, 0x92, 0x24, 0x5A, 0x05, 0x61, 0x08, 0x92, +0xFF, 0x6B, 0xFE, 0x4A, 0x6C, 0xEA, 0x05, 0x10, +0x06, 0x92, 0x15, 0x5A, 0x04, 0x92, 0x01, 0x60, +0x41, 0xA0, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, +0x30, 0x68, 0x18, 0xEC, 0x4C, 0xEF, 0x30, 0xF0, +0x20, 0x6B, 0x0D, 0xD5, 0x0E, 0xD6, 0x06, 0xD4, +0x05, 0xD7, 0x8A, 0xF0, 0x10, 0x4B, 0x20, 0xA5, +0x03, 0x6D, 0x12, 0xE8, 0x01, 0xE3, 0x60, 0xA6, +0x04, 0xD3, 0x87, 0xA0, 0x04, 0x96, 0xAC, 0xEC, +0x64, 0x67, 0x4C, 0xEB, 0xC2, 0xEB, 0x03, 0x60, +0x0E, 0x91, 0x80, 0xC1, 0xA2, 0x10, 0xA0, 0xF0, +0x00, 0x23, 0x2F, 0x59, 0x80, 0xF0, 0x1D, 0x60, +0x6C, 0xA0, 0x6C, 0xED, 0x4C, 0xED, 0x80, 0xF0, +0x18, 0x25, 0x30, 0xF0, 0x20, 0x6B, 0x49, 0xF4, +0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x09, 0x22, 0x05, 0x95, 0x04, 0x96, 0x30, 0xF0, +0x20, 0x6C, 0x24, 0xF0, 0x18, 0x4C, 0xF1, 0x67, +0x80, 0x18, 0x25, 0x42, 0x05, 0x92, 0x01, 0x72, +0x03, 0x60, 0x05, 0x6B, 0x01, 0x6A, 0x42, 0x10, +0x04, 0x6B, 0x00, 0x6A, 0x3F, 0x10, 0x05, 0x93, +0x81, 0x42, 0x01, 0x73, 0x01, 0x60, 0x8F, 0x42, +0xFF, 0x6A, 0x4C, 0xEC, 0x30, 0xF0, 0x20, 0x6F, +0x45, 0xF3, 0x14, 0x4F, 0x88, 0x32, 0xE9, 0xE2, +0xC0, 0xAA, 0xFF, 0x6D, 0x88, 0x34, 0x26, 0x67, +0xAC, 0xE9, 0x04, 0xD1, 0x47, 0xA0, 0x91, 0xE7, +0xE1, 0xAC, 0x1A, 0x65, 0x38, 0x67, 0x03, 0x6A, +0x2C, 0xEA, 0xE2, 0x34, 0xAC, 0xEA, 0xAC, 0xEC, +0xC2, 0x33, 0x82, 0xEA, 0xAC, 0xEB, 0x41, 0x61, +0xE4, 0xC0, 0x30, 0xF0, 0x20, 0x6D, 0x05, 0xD5, +0x06, 0x95, 0x30, 0x69, 0x38, 0xED, 0x05, 0x91, +0x85, 0xF7, 0x08, 0x49, 0x12, 0xED, 0x35, 0xE5, +0x24, 0xF1, 0x8E, 0xC5, 0x84, 0xA0, 0xFF, 0x74, +0x30, 0x60, 0xAC, 0xA0, 0x19, 0x6C, 0x8B, 0xEC, +0xAC, 0xEC, 0x08, 0x6D, 0xAD, 0xEC, 0x8C, 0xC0, +0x28, 0x10, 0x01, 0x4A, 0xFF, 0x6C, 0x8C, 0xEA, +0x63, 0xEA, 0x46, 0x60, 0x30, 0xF0, 0x20, 0x6C, +0x48, 0x35, 0x45, 0xF3, 0x14, 0x4C, 0x91, 0xE5, +0xA0, 0xAC, 0xFF, 0x6C, 0xC5, 0x67, 0x8C, 0xEE, +0x2E, 0xEE, 0x05, 0x2E, 0xA2, 0x35, 0x8C, 0xED, +0x04, 0x94, 0x8E, 0xED, 0xB0, 0x25, 0x30, 0xF0, +0x20, 0x6C, 0x48, 0x35, 0x45, 0xF3, 0x14, 0x4C, +0xB1, 0xE4, 0xA1, 0xAC, 0xFF, 0x6C, 0xC5, 0x67, +0x8C, 0xEE, 0x2E, 0xEE, 0xDE, 0x2E, 0x04, 0x96, +0xA2, 0x35, 0x8C, 0xED, 0xCE, 0xED, 0xD9, 0x2D, +0x9E, 0x17, 0x62, 0xEA, 0x00, 0x68, 0x09, 0x61, +0x3D, 0x67, 0x47, 0x41, 0x09, 0x4A, 0x40, 0xA2, +0x0D, 0x91, 0x01, 0x68, 0x40, 0xC1, 0x0E, 0x94, +0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0x49, 0xF4, +0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x09, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF0, +0x14, 0x4C, 0xB0, 0x67, 0x80, 0x18, 0x25, 0x42, +0x01, 0x10, 0x00, 0x68, 0x50, 0x67, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0x00, 0x68, 0xF0, 0x67, 0xD0, 0x67, 0xE5, 0x17, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x68, 0x0C, 0xEC, 0xAC, 0xE8, 0xFF, 0x70, +0x04, 0xD4, 0x33, 0x60, 0x7F, 0x69, 0x0C, 0xE9, +0x91, 0x67, 0x80, 0x18, 0x73, 0x47, 0x04, 0x93, +0x30, 0x6C, 0x98, 0xEB, 0x30, 0xF0, 0x20, 0x6B, +0x8A, 0xF0, 0x10, 0x4B, 0x12, 0xEC, 0x8D, 0xE3, +0x4D, 0xE3, 0x20, 0xF0, 0x60, 0xA3, 0x00, 0xF2, +0x00, 0x6A, 0x04, 0xD3, 0x30, 0xF0, 0x20, 0x6B, +0x49, 0xF4, 0x78, 0x9B, 0x6C, 0xEA, 0x08, 0x22, +0x04, 0x96, 0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF0, +0x0C, 0x4C, 0xB0, 0x67, 0x80, 0x18, 0x25, 0x42, +0x04, 0x94, 0xFF, 0x74, 0x0F, 0x60, 0x7F, 0x6A, +0x8C, 0xEA, 0x23, 0xEA, 0x0A, 0x61, 0x4E, 0xE9, +0x09, 0x29, 0x80, 0x6A, 0x70, 0x67, 0x4C, 0xEB, +0x8C, 0xEA, 0x4A, 0xEB, 0x02, 0x60, 0x02, 0x23, +0x01, 0x2A, 0xFF, 0x68, 0x50, 0x67, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0x4C, 0xED, 0x4C, 0xEE, 0xC3, 0xED, +0x4C, 0xEC, 0xEC, 0xEA, 0x02, 0x61, 0xD7, 0xE5, +0x01, 0x10, 0xB7, 0xE6, 0x03, 0x55, 0x01, 0x60, +0x25, 0x22, 0x30, 0x69, 0x38, 0xEC, 0x30, 0xF0, +0x20, 0x6A, 0x8A, 0xF0, 0x10, 0x4A, 0x30, 0xF0, +0x20, 0x68, 0xFF, 0x6D, 0x02, 0x6E, 0x12, 0xE9, +0x25, 0xE2, 0x80, 0xF2, 0x48, 0x98, 0x87, 0x41, +0x1A, 0x4C, 0x40, 0xEA, 0x80, 0xF2, 0x48, 0x98, +0x87, 0x41, 0x1C, 0x4C, 0x00, 0x6D, 0x02, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x49, 0xF4, +0x78, 0x9B, 0x01, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, +0x13, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF0, +0x1C, 0x4C, 0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x49, 0xF4, 0x78, 0x9B, 0x01, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0x84, 0xF0, 0x08, 0x4C, 0x80, 0x18, 0x25, 0x42, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0x6B, 0x78, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x8A, 0xF0, 0x10, 0x4C, +0x12, 0xEB, 0x6D, 0xE4, 0x20, 0xF0, 0x81, 0xA3, +0xFF, 0x74, 0x0F, 0x60, 0x20, 0xF0, 0x83, 0xA3, +0x32, 0x5C, 0x04, 0x60, 0x01, 0x4C, 0x20, 0xF0, +0x83, 0xC3, 0x07, 0x10, 0x00, 0x6C, 0x20, 0xF0, +0x83, 0xC3, 0x01, 0x6C, 0x8B, 0xEC, 0x20, 0xF0, +0x81, 0xC3, 0x20, 0xF0, 0x82, 0xA3, 0xFF, 0x74, +0x0F, 0x60, 0x20, 0xF0, 0x84, 0xA3, 0x32, 0x5C, +0x08, 0x61, 0x00, 0x6C, 0x20, 0xF0, 0x84, 0xC3, +0x01, 0x6C, 0x8B, 0xEC, 0x20, 0xF0, 0x82, 0xC3, +0x03, 0x10, 0x01, 0x4C, 0x20, 0xF0, 0x84, 0xC3, +0x01, 0x72, 0x17, 0x61, 0x30, 0xF0, 0x20, 0x6C, +0x49, 0xF4, 0x98, 0x9C, 0x01, 0xF0, 0x00, 0x6A, +0x8C, 0xEA, 0x0F, 0x22, 0x20, 0xF0, 0xA1, 0xA3, +0x20, 0xF0, 0xC3, 0xA3, 0x20, 0xF0, 0xE2, 0xA3, +0x20, 0xF0, 0x44, 0xA3, 0x30, 0xF0, 0x20, 0x6C, +0x84, 0xF0, 0x14, 0x4C, 0x04, 0xD2, 0x80, 0x18, +0x25, 0x42, 0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0xFF, 0x6E, 0x44, 0x67, +0x20, 0xF4, 0x0D, 0x6B, 0x9D, 0x67, 0x68, 0xCC, +0xCC, 0xEA, 0x20, 0xF4, 0x0F, 0x6B, 0x69, 0xCC, +0x44, 0x33, 0x6D, 0xE4, 0x68, 0xAB, 0x1F, 0xF7, +0x00, 0x6C, 0xAC, 0xEE, 0x6C, 0xEC, 0x02, 0xF0, +0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, +0x20, 0x6C, 0xC2, 0xF5, 0x88, 0x9C, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF5, 0x8C, 0x9C, +0x91, 0xE3, 0xA0, 0xA4, 0xF1, 0x6C, 0xAC, 0xEC, +0xC4, 0x35, 0x8D, 0xED, 0x00, 0xF6, 0xA0, 0x34, +0x00, 0xF6, 0x83, 0x34, 0xFF, 0x6D, 0xAC, 0xEC, +0x1F, 0xF7, 0x00, 0x6D, 0x6C, 0xED, 0x02, 0xF0, +0x00, 0x75, 0x01, 0x60, 0x05, 0x2D, 0x30, 0xF0, +0x20, 0x6D, 0xC2, 0xF5, 0xA8, 0x9D, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6D, 0xC2, 0xF5, 0xAC, 0x9D, +0xAD, 0xE3, 0x80, 0xC3, 0x30, 0xF0, 0x20, 0x6B, +0x49, 0xF4, 0x78, 0x9B, 0x10, 0x6C, 0x8C, 0xEB, +0x07, 0x23, 0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF0, +0x10, 0x4C, 0xA2, 0x67, 0x80, 0x18, 0x25, 0x42, +0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x85, 0xF7, 0x08, 0x48, +0x04, 0xF1, 0x41, 0xA0, 0xFF, 0x69, 0x8C, 0xE9, +0x16, 0x22, 0x09, 0xE1, 0xE4, 0xF0, 0xBC, 0xA2, +0x91, 0x67, 0x04, 0xD2, 0x80, 0x18, 0x32, 0x4B, +0xC3, 0xF4, 0x50, 0x98, 0x10, 0x6B, 0x6C, 0xEA, +0x0A, 0x22, 0x04, 0x92, 0x30, 0xF0, 0x20, 0x6C, +0xC4, 0xF0, 0x08, 0x4C, 0xE4, 0xF0, 0xDC, 0xA2, +0xB1, 0x67, 0x80, 0x18, 0x25, 0x42, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x6A, 0xA2, 0xF7, +0x70, 0x9B, 0x4C, 0xEC, 0x08, 0xD4, 0x00, 0xA3, +0x10, 0x6B, 0x30, 0xF0, 0x20, 0x69, 0x6C, 0xE8, +0x13, 0x30, 0x4C, 0xE8, 0x85, 0xF7, 0x08, 0x49, +0x35, 0xE0, 0xE4, 0xF0, 0x58, 0xA5, 0x06, 0xD5, +0x82, 0x67, 0x07, 0xD2, 0x80, 0x18, 0x64, 0x47, +0x7F, 0x6C, 0x4C, 0xEC, 0x09, 0xD2, 0x80, 0x18, +0x73, 0x47, 0x06, 0x93, 0x0A, 0xD2, 0x04, 0xF1, +0x41, 0xA1, 0xE4, 0xF0, 0x7A, 0xA3, 0x06, 0xD3, +0x59, 0x22, 0xC3, 0xF4, 0x50, 0x99, 0x10, 0x6D, +0xAC, 0xEA, 0x0C, 0x22, 0x04, 0xF1, 0x40, 0xA1, +0x07, 0x95, 0x08, 0x96, 0x09, 0x97, 0x30, 0xF0, +0x20, 0x6C, 0xE4, 0xF0, 0x00, 0x4C, 0x04, 0xD2, +0x80, 0x18, 0x25, 0x42, 0x08, 0x92, 0x12, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, +0xE4, 0xF0, 0xBF, 0xA2, 0x01, 0x6B, 0x83, 0x67, +0x84, 0xE8, 0xAD, 0xEC, 0xE4, 0xF0, 0x9F, 0xC2, +0x06, 0x94, 0x0A, 0x95, 0x01, 0x4C, 0xA2, 0xEC, +0x0E, 0x60, 0x22, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0xE4, 0xF0, 0x9F, 0xA2, +0x01, 0x6B, 0x64, 0xE8, 0x6F, 0xEB, 0x8C, 0xEB, +0xE4, 0xF0, 0x7F, 0xC2, 0x15, 0x10, 0x04, 0xF1, +0x80, 0xA2, 0x87, 0xE8, 0x6C, 0xEC, 0x10, 0x24, +0xC3, 0xF4, 0x50, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, +0x07, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x04, 0xF1, +0x00, 0x4C, 0xB0, 0x67, 0x80, 0x18, 0x25, 0x42, +0x90, 0x67, 0x80, 0x18, 0x5A, 0x4B, 0x12, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x49, 0xF4, 0x58, 0x9A, +0x10, 0x6B, 0x6C, 0xEA, 0x07, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x04, 0xF1, 0x0C, 0x4C, 0xB0, 0x67, +0x80, 0x18, 0x25, 0x42, 0x90, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x32, 0x4B, 0x0F, 0x97, 0x0E, 0x91, +0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6B, 0x44, 0x67, +0x6C, 0xEA, 0xAC, 0xEB, 0x01, 0x73, 0x0B, 0x60, +0x03, 0x23, 0x02, 0x73, 0x0F, 0x60, 0x16, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x85, 0xF7, 0x08, 0x4B, +0x6D, 0xE2, 0x01, 0x6C, 0x0D, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x85, 0xF7, 0x08, 0x4B, 0x6D, 0xE2, +0x03, 0x6C, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x85, 0xF7, 0x08, 0x4B, 0x6D, 0xE2, 0x07, 0x6C, +0xE4, 0xF0, 0x9C, 0xC3, 0x30, 0xF0, 0x20, 0x6B, +0x85, 0xF7, 0x08, 0x4B, 0xC3, 0xF4, 0x90, 0x9B, +0x10, 0x6D, 0xAC, 0xEC, 0x0A, 0x24, 0x6D, 0xE2, +0xE4, 0xF0, 0xDC, 0xA3, 0x30, 0xF0, 0x20, 0x6C, +0x04, 0xF1, 0x18, 0x4C, 0xA2, 0x67, 0x80, 0x18, +0x25, 0x42, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0x4C, 0xEE, 0x4C, 0xED, 0xEC, 0xEA, 0x30, 0x6F, +0xF8, 0xEC, 0x30, 0xF0, 0x20, 0x6B, 0x8A, 0xF0, +0x10, 0x4B, 0x12, 0xEF, 0xED, 0xE3, 0xFD, 0x67, +0xB2, 0xC7, 0x93, 0xC7, 0x55, 0xC7, 0x4B, 0xAB, +0x56, 0xC7, 0x4A, 0xAB, 0xD8, 0xC7, 0x57, 0xC7, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, +0x49, 0xE4, 0x87, 0xF7, 0x98, 0xA2, 0x07, 0xF7, +0xB8, 0xA2, 0x80, 0x18, 0x80, 0x47, 0x7D, 0x67, +0x59, 0xC3, 0x0C, 0x6A, 0x50, 0xC3, 0x08, 0x6A, +0x4F, 0xCB, 0x07, 0x97, 0x04, 0x94, 0x05, 0x95, +0x06, 0x96, 0x80, 0x18, 0x00, 0x40, 0x09, 0x97, +0x05, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0xFF, 0x6A, 0xA2, 0xF7, 0x74, 0x9B, 0x4C, 0xEC, +0x04, 0xD4, 0x4C, 0xED, 0x4C, 0xEE, 0x4C, 0xEF, +0x94, 0x34, 0x06, 0xD5, 0x07, 0xD6, 0x05, 0xD7, +0x6D, 0xE4, 0x60, 0xA3, 0x04, 0x94, 0x6C, 0xEA, +0x08, 0xD2, 0x80, 0x18, 0x6A, 0x47, 0x04, 0x94, +0x06, 0x95, 0x09, 0xD2, 0x80, 0x18, 0xBB, 0x47, +0xFF, 0x72, 0x22, 0x67, 0x7C, 0x60, 0x04, 0x92, +0x30, 0x68, 0x0C, 0x59, 0x18, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x8A, 0xF0, 0x10, 0x4A, 0x12, 0xE8, +0x01, 0xE2, 0x22, 0xC0, 0x08, 0x60, 0x67, 0xA0, +0x0D, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x00, 0x6C, +0x47, 0xC0, 0x05, 0xD4, 0x0A, 0x10, 0x05, 0x95, +0x87, 0xA0, 0x03, 0x6B, 0x0D, 0x6A, 0xAC, 0xEB, +0x4B, 0xEA, 0x68, 0x33, 0x8C, 0xEA, 0x6D, 0xEA, +0x47, 0xC0, 0x07, 0x96, 0x15, 0x2E, 0x43, 0xA0, +0x2E, 0xEA, 0x01, 0x22, 0xD6, 0xC8, 0x6C, 0xA0, +0x7F, 0x6A, 0xB1, 0x67, 0x6C, 0xEA, 0x4C, 0xC0, +0x04, 0x94, 0x80, 0x18, 0xAC, 0x47, 0x04, 0x94, +0x05, 0x96, 0xB1, 0x67, 0x00, 0x6F, 0x80, 0x18, +0xCE, 0x4B, 0x00, 0x6A, 0x62, 0x67, 0x1C, 0x10, +0x6C, 0xA0, 0x80, 0x6A, 0x4B, 0xEA, 0x6D, 0xEA, +0x4C, 0xC0, 0x04, 0x94, 0x05, 0x96, 0xB1, 0x67, +0x05, 0x6F, 0x80, 0x18, 0xCE, 0x4B, 0x06, 0x94, +0x30, 0xF0, 0x20, 0x6A, 0x7F, 0x6B, 0x8C, 0xEB, +0x05, 0xF3, 0x00, 0x4A, 0x49, 0xE3, 0x40, 0xA2, +0x50, 0xC0, 0x70, 0xA0, 0x51, 0xA0, 0x63, 0xEA, +0x01, 0x60, 0x50, 0xC0, 0x40, 0x6A, 0x01, 0x6B, +0x05, 0x96, 0x07, 0x6C, 0xCC, 0x35, 0x09, 0x96, +0xCC, 0xEC, 0x91, 0xE5, 0x08, 0x96, 0x4D, 0xEC, +0x04, 0x6A, 0x4B, 0xEA, 0xCC, 0xEA, 0x6D, 0xEA, +0x00, 0xF6, 0x80, 0x34, 0x00, 0xF6, 0x40, 0x32, +0xFF, 0x6D, 0x00, 0xF6, 0x83, 0x34, 0x00, 0xF6, +0x43, 0x32, 0xAC, 0xEC, 0xAC, 0xEA, 0x04, 0x95, +0xB4, 0x33, 0x30, 0xF0, 0x20, 0x6D, 0x42, 0xF7, +0xB8, 0x9D, 0xB5, 0xE3, 0x20, 0xC5, 0x30, 0xF0, +0x20, 0x6D, 0x42, 0xF7, 0xB0, 0x9D, 0xB5, 0xE3, +0x80, 0xC5, 0x30, 0xF0, 0x20, 0x6C, 0xA2, 0xF7, +0x94, 0x9C, 0x8D, 0xE3, 0x40, 0xC3, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x8C, 0xE9, 0x30, 0x68, 0x18, 0xE9, -0x30, 0xF0, 0x20, 0x6A, 0x6A, 0xF0, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0x8A, 0xF0, 0x10, 0x4A, 0x91, 0x67, 0x12, 0xE8, 0x01, 0xE2, 0x80, 0x18, -0x55, 0x47, 0x7F, 0x6B, 0x4C, 0xEB, 0x04, 0xD3, -0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF7, 0x78, 0x9B, +0x64, 0x47, 0x7F, 0x6B, 0x4C, 0xEB, 0x04, 0xD3, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF7, 0x7C, 0x9B, 0x2C, 0x32, 0x91, 0x67, 0x6D, 0xE2, 0xA0, 0x9B, -0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF7, 0x60, 0x9B, -0x69, 0xE2, 0xC0, 0x9A, 0x80, 0x18, 0x8F, 0x48, -0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x29, 0xF4, -0x48, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x08, 0x22, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF7, 0x64, 0x9B, +0x69, 0xE2, 0xC0, 0x9A, 0x80, 0x18, 0x9E, 0x48, +0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x49, 0xF4, +0x58, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x08, 0x22, 0x04, 0x95, 0x05, 0x96, 0x30, 0xF0, 0x20, 0x6C, -0x04, 0xF1, 0x08, 0x4C, 0x80, 0x18, 0x16, 0x42, +0x24, 0xF1, 0x10, 0x4C, 0x80, 0x18, 0x25, 0x42, 0x04, 0x92, 0x05, 0x93, 0x6E, 0xEA, 0x09, 0x22, 0xE7, 0xA0, 0x03, 0x6A, 0x91, 0x67, 0xEA, 0x37, 0xA3, 0x67, 0x00, 0x6E, 0x4C, 0xEF, 0x80, 0x18, -0xD8, 0x4B, 0x6C, 0xA0, 0x03, 0x6A, 0x6C, 0xEA, +0xE7, 0x4B, 0x6C, 0xA0, 0x03, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x33, 0x6A, 0x01, 0x10, 0x13, 0x6A, 0x46, 0xC0, 0x66, 0xA0, 0x40, 0xA0, 0x63, 0xEA, 0x01, 0x60, 0x46, 0xC0, 0x68, 0xA0, 0x1F, 0x6A, @@ -13899,163 +13788,163 @@ u8 array_mp_8822c_fw_ap[] = { 0x08, 0x10, 0x7F, 0xA0, 0x6C, 0xEA, 0x6F, 0xA0, 0x5F, 0xC0, 0x31, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x10, 0x6B, 0x6D, 0xEA, 0x4F, 0xC0, 0x30, 0xF0, -0x20, 0x6A, 0x29, 0xF4, 0x48, 0x9A, 0x20, 0x6B, +0x20, 0x6A, 0x49, 0xF4, 0x58, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x0A, 0x22, 0xFF, 0xA0, 0xA0, 0xA0, -0xC1, 0xA0, 0x30, 0xF0, 0x20, 0x6C, 0x04, 0xF1, -0x18, 0x4C, 0xF6, 0x37, 0x80, 0x18, 0x16, 0x42, +0xC1, 0xA0, 0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF1, +0x00, 0x4C, 0xF6, 0x37, 0x80, 0x18, 0x25, 0x42, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x82, 0xF7, 0x54, 0x9A, 0x00, 0x68, 0x60, 0xA2, +0xA2, 0xF7, 0x58, 0x9A, 0x00, 0x68, 0x60, 0xA2, 0xFF, 0x6A, 0x83, 0x67, 0x30, 0xF0, 0x20, 0x6B, -0x82, 0xF7, 0x78, 0x9B, 0x4C, 0xEC, 0x08, 0xD4, +0xA2, 0xF7, 0x7C, 0x9B, 0x4C, 0xEC, 0x08, 0xD4, 0x60, 0xA3, 0x01, 0x6C, 0x6C, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x45, 0xF7, 0x18, 0x4B, 0x56, 0x32, +0x20, 0x6B, 0x85, 0xF7, 0x08, 0x4B, 0x56, 0x32, 0x8C, 0xEA, 0x07, 0xF3, 0xB4, 0xA3, 0x48, 0x34, 0x05, 0x6A, 0x4B, 0xEA, 0xAC, 0xEA, 0x8D, 0xEA, 0x07, 0xF3, 0x54, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, 0x90, 0x67, 0x40, 0xEA, 0xC0, 0xF0, 0x12, 0x22, 0x30, 0x69, 0x38, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x6A, 0xF0, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0x8A, 0xF0, 0x10, 0x4A, 0x40, 0x6B, 0x12, 0xE9, 0x25, 0xE2, 0x88, 0xA1, 0xFF, 0x6A, 0x8C, 0xEB, 0xC0, 0xF0, 0x04, 0x2B, -0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF7, 0x18, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x85, 0xF7, 0x08, 0x4B, 0x07, 0xF3, 0xB4, 0xA3, 0x04, 0x6C, 0xAC, 0xEC, 0x4C, 0xEC, 0x4D, 0x24, 0x08, 0x94, 0x0A, 0xEC, -0x23, 0x61, 0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF7, -0x9C, 0x9C, 0xC3, 0xF4, 0x70, 0x9B, 0x80, 0xA4, -0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0xA2, 0xF7, -0x80, 0x9C, 0x4C, 0xED, 0x06, 0xD5, 0x80, 0xA4, +0x23, 0x61, 0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF7, +0x80, 0x9C, 0xC3, 0xF4, 0x70, 0x9B, 0x80, 0xA4, +0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF7, +0x84, 0x9C, 0x4C, 0xED, 0x06, 0xD5, 0x80, 0xA4, 0x8C, 0xEA, 0x07, 0xD2, 0x01, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x09, 0x22, 0x07, 0x96, 0x06, 0x97, -0x30, 0xF0, 0x20, 0x6C, 0x24, 0xF1, 0x10, 0x4C, -0xB0, 0x67, 0x80, 0x18, 0x16, 0x42, 0x90, 0x67, +0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF1, 0x18, 0x4C, +0xB0, 0x67, 0x80, 0x18, 0x25, 0x42, 0x90, 0x67, 0x06, 0x95, 0x00, 0x6E, 0x07, 0x97, 0x25, 0x10, 0x08, 0x94, 0xFF, 0x74, 0x24, 0x61, 0x30, 0xF0, -0x20, 0x6C, 0x82, 0xF7, 0x9C, 0x9C, 0xC3, 0xF4, +0x20, 0x6C, 0xC2, 0xF7, 0x80, 0x9C, 0xC3, 0xF4, 0x70, 0x9B, 0x80, 0xA4, 0xA4, 0x67, 0x30, 0xF0, -0x20, 0x6C, 0xA2, 0xF7, 0x80, 0x9C, 0x4C, 0xED, +0x20, 0x6C, 0xC2, 0xF7, 0x84, 0x9C, 0x4C, 0xED, 0x07, 0xD5, 0x80, 0xA4, 0x8C, 0xEA, 0x06, 0xD2, 0x01, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x09, 0x22, 0x06, 0x96, 0x07, 0x97, 0x30, 0xF0, 0x20, 0x6C, -0x24, 0xF1, 0x10, 0x4C, 0xB0, 0x67, 0x80, 0x18, -0x16, 0x42, 0x07, 0x95, 0x06, 0x97, 0x90, 0x67, -0x00, 0x6E, 0x80, 0x18, 0xD8, 0x4B, 0x20, 0xF0, +0x44, 0xF1, 0x18, 0x4C, 0xB0, 0x67, 0x80, 0x18, +0x25, 0x42, 0x07, 0x95, 0x06, 0x97, 0x90, 0x67, +0x00, 0x6E, 0x80, 0x18, 0xE7, 0x4B, 0x20, 0xF0, 0x45, 0xA1, 0x04, 0x2A, 0x6F, 0xA1, 0x40, 0x6A, 0x6D, 0xEA, 0x04, 0x10, 0x6F, 0xA1, 0x41, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x4F, 0xC1, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, 0x4D, 0xE0, +0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0x4D, 0xE0, 0x06, 0xD2, 0x08, 0xF2, 0x58, 0xA3, 0x07, 0xD3, 0x01, 0x4A, 0x08, 0xF2, 0x58, 0xC3, 0x08, 0xF2, 0x58, 0xA3, 0x28, 0x5A, 0x39, 0x61, 0x06, 0x94, 0x04, 0xF0, 0x4C, 0x40, 0x44, 0x32, 0x89, 0xE2, 0xA0, 0xAA, 0x09, 0xD2, 0x84, 0xF0, 0x4C, 0x40, 0x44, 0x32, 0x89, 0xE2, 0x80, 0xAA, 0x0A, 0xD2, -0x93, 0xE5, 0x80, 0x18, 0x71, 0x47, 0x06, 0x95, +0x93, 0xE5, 0x80, 0x18, 0x80, 0x47, 0x06, 0x95, 0x0B, 0xD2, 0x10, 0x6B, 0xC3, 0xF4, 0x50, 0x9D, 0x6C, 0xEA, 0x0F, 0x22, 0x07, 0x92, 0x0A, 0x94, 0x09, 0x93, 0x08, 0xF2, 0xD8, 0xA2, 0x40, 0xAC, -0xE0, 0xAB, 0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF1, -0x0C, 0x4C, 0xB0, 0x67, 0x04, 0xD2, 0x80, 0x18, -0x16, 0x42, 0x30, 0xF0, 0x20, 0x6A, 0x29, 0xF4, -0x48, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, 0x09, 0x22, +0xE0, 0xAB, 0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF1, +0x14, 0x4C, 0xB0, 0x67, 0x04, 0xD2, 0x80, 0x18, +0x25, 0x42, 0x30, 0xF0, 0x20, 0x6A, 0x49, 0xF4, +0x58, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, 0x09, 0x22, 0xC3, 0xA1, 0x0B, 0x97, 0x30, 0xF0, 0x20, 0x6C, -0x64, 0xF1, 0x0C, 0x4C, 0xB0, 0x67, 0x80, 0x18, -0x16, 0x42, 0x90, 0x67, 0x80, 0x18, 0x97, 0x45, +0x84, 0xF1, 0x14, 0x4C, 0xB0, 0x67, 0x80, 0x18, +0x25, 0x42, 0x90, 0x67, 0x80, 0x18, 0xA6, 0x45, 0x01, 0x70, 0x10, 0x61, 0x30, 0xF0, 0x20, 0x6B, -0x29, 0xF4, 0x68, 0x9B, 0x01, 0xF0, 0x00, 0x6A, +0x49, 0xF4, 0x78, 0x9B, 0x01, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x08, 0x22, 0x20, 0xF0, 0xA5, 0xA1, -0x30, 0xF0, 0x20, 0x6C, 0x84, 0xF1, 0x08, 0x4C, -0x80, 0x18, 0x16, 0x42, 0x00, 0x6A, 0x20, 0xF0, -0x45, 0xC1, 0x90, 0x67, 0x80, 0x18, 0xFC, 0x4A, +0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF1, 0x10, 0x4C, +0x80, 0x18, 0x25, 0x42, 0x00, 0x6A, 0x20, 0xF0, +0x45, 0xC1, 0x90, 0x67, 0x80, 0x18, 0x0B, 0x4B, 0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, 0x80, 0x70, 0x3F, 0xF7, 0x00, 0x61, 0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0x68, 0x18, 0xEA, 0x08, 0xD2, 0x08, 0x94, 0xFF, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0xAC, 0xEB, 0x6A, 0xF0, 0x00, 0x4A, +0x20, 0x6A, 0xAC, 0xEB, 0x8A, 0xF0, 0x10, 0x4A, 0x0B, 0xD3, 0x7F, 0x69, 0x12, 0xE8, 0x01, 0xE2, -0x80, 0x18, 0x55, 0x47, 0x7D, 0x67, 0x58, 0xC3, +0x80, 0x18, 0x64, 0x47, 0x7D, 0x67, 0x58, 0xC3, 0x98, 0xA3, 0x03, 0x6B, 0x09, 0xD4, 0x40, 0xA0, 0x8C, 0xE9, 0x9D, 0x67, 0x0A, 0xD2, 0xE7, 0xA0, 0xEA, 0x32, 0x6C, 0xEA, 0x59, 0xC4, 0x01, 0x6A, 0x4B, 0xEA, 0x8C, 0xA0, 0x44, 0xC0, 0x45, 0xC0, 0x20, 0xF0, 0x46, 0xC0, 0x20, 0xF0, 0x47, 0xC0, 0x19, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, 0x4C, 0xC0, -0x30, 0xF0, 0x20, 0x6C, 0x29, 0xF4, 0x88, 0x9C, +0x30, 0xF0, 0x20, 0x6C, 0x49, 0xF4, 0x98, 0x9C, 0x00, 0xF2, 0x00, 0x6A, 0x8C, 0xEA, 0x0C, 0x22, 0x5D, 0x67, 0x09, 0x95, 0xD9, 0xA2, 0x6C, 0xEF, -0x30, 0xF0, 0x20, 0x6C, 0xFF, 0x6B, 0x84, 0xF1, -0x14, 0x4C, 0x6C, 0xEF, 0x80, 0x18, 0x16, 0x42, +0x30, 0xF0, 0x20, 0x6C, 0xFF, 0x6B, 0xA4, 0xF1, +0x1C, 0x4C, 0x6C, 0xEF, 0x80, 0x18, 0x25, 0x42, 0x0A, 0x94, 0x8A, 0xE9, 0x2F, 0x61, 0x6C, 0xA0, 0x04, 0x6A, 0x6C, 0xEA, 0x19, 0x22, 0x09, 0x92, 0x80, 0x6B, 0x6B, 0xEB, 0x6C, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, 0x12, 0x2A, 0x0A, 0x92, 0x9D, 0x67, 0x4D, 0xEB, 0x78, 0xC4, 0x30, 0xF0, 0x20, 0x6B, -0x29, 0xF4, 0x68, 0x9B, 0x00, 0xF2, 0x00, 0x6A, +0x49, 0xF4, 0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0xA0, 0xF0, 0x19, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0xA4, 0xF1, 0x10, 0x4C, 0xB0, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, +0x20, 0x6C, 0xC4, 0xF1, 0x18, 0x4C, 0xB0, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x49, 0xF4, 0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x40, 0xF1, 0x19, 0x22, 0x7D, 0x67, 0xB8, 0xA3, 0x30, 0xF0, -0x20, 0x6C, 0xA4, 0xF1, 0x1C, 0x4C, 0x80, 0x18, -0x16, 0x42, 0x50, 0x11, 0x0A, 0x94, 0x23, 0xEC, -0x17, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x29, 0xF4, -0x68, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, +0x20, 0x6C, 0xE4, 0xF1, 0x04, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x50, 0x11, 0x0A, 0x94, 0x23, 0xEC, +0x17, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x49, 0xF4, +0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x08, 0x22, 0x5D, 0x67, 0xB8, 0xA2, 0x30, 0xF0, -0x20, 0x6C, 0xC4, 0xF1, 0x0C, 0x4C, 0x80, 0x18, -0x16, 0x42, 0x7D, 0x67, 0x87, 0x43, 0x21, 0x4C, +0x20, 0x6C, 0xE4, 0xF1, 0x14, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x7D, 0x67, 0x87, 0x43, 0x21, 0x4C, 0x80, 0xA4, 0x00, 0x69, 0x98, 0xC3, 0x89, 0x10, 0x08, 0x94, 0x06, 0x05, 0x00, 0xF0, 0x19, 0x06, -0x01, 0x6F, 0x80, 0x18, 0x4E, 0x4A, 0x12, 0x22, -0x30, 0xF0, 0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, +0x01, 0x6F, 0x80, 0x18, 0x5D, 0x4A, 0x12, 0x22, +0x30, 0xF0, 0x20, 0x6B, 0x49, 0xF4, 0x78, 0x9B, 0x00, 0xF4, 0x00, 0x6A, 0x6C, 0xEA, 0x78, 0x22, 0x5D, 0x67, 0xB8, 0xA2, 0xD9, 0xA2, 0x30, 0xF0, -0x20, 0x6C, 0xC4, 0xF1, 0x1C, 0x4C, 0x80, 0x18, -0x16, 0x42, 0x6E, 0x10, 0x7D, 0x67, 0x87, 0xA0, +0x20, 0x6C, 0x04, 0xF2, 0x04, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x6E, 0x10, 0x7D, 0x67, 0x87, 0xA0, 0x59, 0xA3, 0x03, 0x6B, 0x8C, 0xEB, 0x62, 0xEA, 0x15, 0x60, 0x9D, 0x67, 0x78, 0xA4, 0x0C, 0x5B, -0x11, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x29, 0xF4, -0x68, 0x9B, 0x01, 0x4A, 0x59, 0xC4, 0x00, 0xF2, +0x11, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x49, 0xF4, +0x78, 0x9B, 0x01, 0x4A, 0x59, 0xC4, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x59, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x5D, 0x67, 0xE4, 0xF1, 0x18, 0x4C, +0x20, 0x6C, 0x5D, 0x67, 0x24, 0xF2, 0x00, 0x4C, 0xB9, 0xA2, 0x50, 0x10, 0x08, 0x94, 0x06, 0x05, -0x01, 0x6E, 0x80, 0x18, 0x58, 0x48, 0x00, 0x6B, +0x01, 0x6E, 0x80, 0x18, 0x67, 0x48, 0x00, 0x6B, 0x09, 0xD3, 0x10, 0x22, 0x30, 0xF0, 0x20, 0x6B, -0x29, 0xF4, 0x68, 0x9B, 0x00, 0xF2, 0x00, 0x6A, +0x49, 0xF4, 0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x42, 0x22, 0x30, 0xF0, 0x20, 0x6C, -0x04, 0xF2, 0x04, 0x4C, 0x39, 0x10, 0x01, 0x49, +0x24, 0xF2, 0x0C, 0x4C, 0x39, 0x10, 0x01, 0x49, 0xFF, 0x6A, 0x4C, 0xE9, 0x4C, 0xA0, 0x08, 0x96, 0x03, 0x6F, 0x91, 0x67, 0x01, 0x6D, 0x4C, 0xEF, -0x80, 0x18, 0xD7, 0x47, 0x7D, 0x67, 0x58, 0xC3, -0x30, 0xF0, 0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, +0x80, 0x18, 0xE6, 0x47, 0x7D, 0x67, 0x58, 0xC3, +0x30, 0xF0, 0x20, 0x6B, 0x49, 0xF4, 0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x0A, 0x22, 0x5D, 0x67, 0x09, 0x95, 0xF8, 0xA2, 0x30, 0xF0, -0x20, 0x6C, 0x04, 0xF2, 0x14, 0x4C, 0xD1, 0x67, -0x80, 0x18, 0x16, 0x42, 0x7D, 0x67, 0x58, 0xA3, +0x20, 0x6C, 0x24, 0xF2, 0x1C, 0x4C, 0xD1, 0x67, +0x80, 0x18, 0x25, 0x42, 0x7D, 0x67, 0x58, 0xA3, 0xFF, 0x72, 0x0A, 0x61, 0x0A, 0x94, 0x83, 0xE9, 0x02, 0x61, 0x98, 0xC3, 0x05, 0x10, 0x09, 0x93, 0x01, 0x4B, 0x54, 0x73, 0x09, 0xD3, 0xD3, 0x61, -0x30, 0xF0, 0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x49, 0xF4, 0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x08, 0x22, -0x30, 0xF0, 0x20, 0x6C, 0x24, 0xF2, 0x04, 0x4C, -0x5D, 0x67, 0xB8, 0xA2, 0x80, 0x18, 0x16, 0x42, -0x01, 0x69, 0x30, 0xF0, 0x20, 0x6B, 0x29, 0xF4, -0x68, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF2, 0x0C, 0x4C, +0x5D, 0x67, 0xB8, 0xA2, 0x80, 0x18, 0x25, 0x42, +0x01, 0x69, 0x30, 0xF0, 0x20, 0x6B, 0x49, 0xF4, +0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x0A, 0x22, 0x7D, 0x67, 0xB8, 0xA3, 0xC4, 0xA0, -0xE5, 0xA0, 0x30, 0xF0, 0x20, 0x6C, 0x24, 0xF2, -0x10, 0x4C, 0x80, 0x18, 0x16, 0x42, 0x5D, 0x67, -0x08, 0x94, 0xB8, 0xA2, 0x80, 0x18, 0xB5, 0x4A, +0xE5, 0xA0, 0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF2, +0x18, 0x4C, 0x80, 0x18, 0x25, 0x42, 0x5D, 0x67, +0x08, 0x94, 0xB8, 0xA2, 0x80, 0x18, 0xC4, 0x4A, 0x7D, 0x67, 0x58, 0xC3, 0x6C, 0xA0, 0x18, 0x6A, 0x6C, 0xEA, 0x0A, 0x22, 0x08, 0x94, 0xA4, 0xA0, -0x80, 0x18, 0xB5, 0x4A, 0x44, 0xC0, 0x08, 0x94, -0xA5, 0xA0, 0x80, 0x18, 0xB5, 0x4A, 0x45, 0xC0, -0x30, 0xF0, 0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, +0x80, 0x18, 0xC4, 0x4A, 0x44, 0xC0, 0x08, 0x94, +0xA5, 0xA0, 0x80, 0x18, 0xC4, 0x4A, 0x45, 0xC0, +0x30, 0xF0, 0x20, 0x6B, 0x49, 0xF4, 0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x0A, 0x22, 0x5D, 0x67, 0xB8, 0xA2, 0xC4, 0xA0, 0xE5, 0xA0, -0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF2, 0x00, 0x4C, -0x80, 0x18, 0x16, 0x42, 0x45, 0xA0, 0xFF, 0x6B, +0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF2, 0x08, 0x4C, +0x80, 0x18, 0x25, 0x42, 0x45, 0xA0, 0xFF, 0x6B, 0x84, 0xA0, 0x4E, 0xEB, 0x01, 0x5B, 0x78, 0x67, 0xFF, 0x74, 0x05, 0x61, 0x44, 0xC0, 0x01, 0x6A, 0x4B, 0xEA, 0x45, 0xC0, 0x01, 0x4B, 0x9D, 0x67, @@ -14069,40 +13958,40 @@ u8 array_mp_8822c_fw_ap[] = { 0x02, 0x73, 0x09, 0x61, 0x6C, 0xA0, 0x19, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x4C, 0xC0, 0x0B, 0x92, 0x01, 0x72, 0x1B, 0x61, 0x14, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, 0x00, 0xF2, +0x20, 0x6B, 0x49, 0xF4, 0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x44, 0xF2, 0x10, 0x4C, 0x80, 0x18, -0x16, 0x42, 0x6C, 0xA0, 0x19, 0x6A, 0x4B, 0xEA, +0x20, 0x6C, 0x64, 0xF2, 0x18, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x6C, 0xA0, 0x19, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x4C, 0xC0, 0x2B, 0x10, 0x6C, 0xA0, 0x19, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x4C, 0xC0, -0x00, 0x69, 0x30, 0xF0, 0x20, 0x6B, 0x29, 0xF4, -0x68, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, +0x00, 0x69, 0x30, 0xF0, 0x20, 0x6B, 0x49, 0xF4, +0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x10, 0x22, 0x7D, 0x67, 0xB8, 0xA3, 0xC4, 0xA0, 0xE5, 0xA0, 0x04, 0xD1, 0x4C, 0xA0, 0x03, 0x6B, 0x30, 0xF0, 0x20, 0x6C, 0x4E, 0x32, 0x6C, 0xEA, -0x44, 0xF2, 0x1C, 0x4C, 0x05, 0xD2, 0x80, 0x18, -0x16, 0x42, 0x6B, 0xA0, 0x0F, 0x6A, 0xD1, 0x67, +0x84, 0xF2, 0x04, 0x4C, 0x05, 0xD2, 0x80, 0x18, +0x25, 0x42, 0x6B, 0xA0, 0x0F, 0x6A, 0xD1, 0x67, 0x6C, 0xEA, 0x10, 0x6B, 0x6D, 0xEA, 0x4B, 0xC0, 0x5D, 0x67, 0x08, 0x94, 0xB8, 0xA2, 0xF9, 0xA2, -0x80, 0x18, 0xD8, 0x4B, 0x0F, 0x97, 0x0E, 0x91, +0x80, 0x18, 0xE7, 0x4B, 0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xF6, 0x63, 0x13, 0x62, 0x12, 0xD1, 0x11, 0xD0, 0xFF, 0x68, 0x0C, 0xEC, 0x30, 0x69, 0x38, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0x0C, 0xED, 0x0C, 0xEE, -0x6A, 0xF0, 0x00, 0x4A, 0x09, 0xD4, 0x0D, 0xD5, +0x8A, 0xF0, 0x10, 0x4A, 0x09, 0xD4, 0x0D, 0xD5, 0x0E, 0xD6, 0x12, 0xE9, 0x25, 0xE2, 0x80, 0x18, -0x55, 0x47, 0x7D, 0x67, 0x58, 0xC3, 0x98, 0xA3, +0x64, 0x47, 0x7D, 0x67, 0x58, 0xC3, 0x98, 0xA3, 0x0C, 0xD4, 0x40, 0xA1, 0x9D, 0x67, 0x0A, 0xD2, 0x61, 0xA1, 0x0B, 0xD3, 0xE7, 0xA1, 0x03, 0x6B, 0xEA, 0x32, 0x6C, 0xEA, 0x59, 0xC4, 0x01, 0x6A, 0x4B, 0xEA, 0x8C, 0xA1, 0x44, 0xC1, 0x45, 0xC1, 0x20, 0xF0, 0x46, 0xC1, 0x20, 0xF0, 0x47, 0xC1, 0x19, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, 0x4C, 0xC1, -0x30, 0xF0, 0x20, 0x6C, 0x29, 0xF4, 0x88, 0x9C, +0x30, 0xF0, 0x20, 0x6C, 0x49, 0xF4, 0x98, 0x9C, 0x00, 0xF4, 0x00, 0x6A, 0x8C, 0xEA, 0x0B, 0x22, 0x5D, 0x67, 0x0C, 0x95, 0xD9, 0xA2, 0x6C, 0xEF, -0x30, 0xF0, 0x20, 0x6C, 0x84, 0xF2, 0x00, 0x4C, -0x0C, 0xEF, 0x80, 0x18, 0x16, 0x42, 0x0D, 0x93, +0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF2, 0x08, 0x4C, +0x0C, 0xEF, 0x80, 0x18, 0x25, 0x42, 0x0D, 0x93, 0xA0, 0xF0, 0x07, 0x23, 0x0C, 0x92, 0x0A, 0x93, 0x7F, 0x6C, 0x8C, 0xEA, 0x43, 0xEB, 0x08, 0xD2, 0x02, 0x60, 0x9D, 0x67, 0x78, 0xC4, 0x08, 0x93, @@ -14110,18 +13999,18 @@ u8 array_mp_8822c_fw_ap[] = { 0x63, 0xEC, 0x04, 0x61, 0x5D, 0x67, 0x98, 0xC2, 0x00, 0x68, 0x65, 0x10, 0x09, 0x94, 0x06, 0x00, 0xB0, 0x67, 0x00, 0xF0, 0x19, 0x06, 0x02, 0x6F, -0x80, 0x18, 0x4E, 0x4A, 0x0D, 0x22, 0x30, 0xF0, -0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, 0x00, 0xF4, +0x80, 0x18, 0x5D, 0x4A, 0x0D, 0x22, 0x30, 0xF0, +0x20, 0x6B, 0x49, 0xF4, 0x78, 0x9B, 0x00, 0xF4, 0x00, 0x6A, 0x6C, 0xEA, 0x53, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x84, 0xF2, 0x1C, 0x4C, 0x4A, 0x10, +0x20, 0x6C, 0xC4, 0xF2, 0x04, 0x4C, 0x4A, 0x10, 0x09, 0x94, 0xB0, 0x67, 0x02, 0x6E, 0x80, 0x18, -0x58, 0x48, 0x00, 0x68, 0x2E, 0x22, 0x30, 0xF0, -0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, 0x00, 0xF4, +0x67, 0x48, 0x00, 0x68, 0x2E, 0x22, 0x30, 0xF0, +0x20, 0x6B, 0x49, 0xF4, 0x78, 0x9B, 0x00, 0xF4, 0x00, 0x6A, 0x6C, 0xEA, 0x3F, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x7D, 0x67, 0xA4, 0xF2, 0x08, 0x4C, +0x20, 0x6C, 0x7D, 0x67, 0xC4, 0xF2, 0x10, 0x4C, 0xB8, 0xA3, 0x36, 0x10, 0x4C, 0xA1, 0x08, 0x94, 0x09, 0x96, 0x03, 0x6F, 0x02, 0x6D, 0x4C, 0xEF, -0x80, 0x18, 0xD7, 0x47, 0x9D, 0x67, 0x58, 0xC4, +0x80, 0x18, 0xE6, 0x47, 0x9D, 0x67, 0x58, 0xC4, 0x0B, 0x93, 0x08, 0x92, 0x43, 0xEB, 0x02, 0x61, 0x78, 0xC4, 0x0C, 0x10, 0x7D, 0x67, 0x58, 0xA3, 0xFF, 0x72, 0x08, 0x61, 0x08, 0x94, 0xFF, 0x6A, @@ -14130,187 +14019,187 @@ u8 array_mp_8822c_fw_ap[] = { 0x4C, 0xE8, 0x0D, 0x93, 0x63, 0xE8, 0x06, 0x60, 0x08, 0x94, 0xFF, 0x6A, 0xAC, 0x4C, 0x4C, 0xEC, 0x0A, 0xD4, 0xD8, 0x17, 0x30, 0xF0, 0x20, 0x6B, -0x29, 0xF4, 0x68, 0x9B, 0x00, 0xF4, 0x00, 0x6A, +0x49, 0xF4, 0x78, 0x9B, 0x00, 0xF4, 0x00, 0x6A, 0x6C, 0xEA, 0x08, 0x22, 0x30, 0xF0, 0x20, 0x6C, -0xA4, 0xF2, 0x18, 0x4C, 0x5D, 0x67, 0xB8, 0xA2, -0x80, 0x18, 0x16, 0x42, 0x01, 0x68, 0x0E, 0x93, +0xE4, 0xF2, 0x00, 0x4C, 0x5D, 0x67, 0xB8, 0xA2, +0x80, 0x18, 0x25, 0x42, 0x01, 0x68, 0x0E, 0x93, 0x01, 0x73, 0x06, 0x61, 0x6C, 0xA1, 0x19, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x4C, 0xC1, 0x00, 0x68, -0x30, 0xF0, 0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x49, 0xF4, 0x78, 0x9B, 0x00, 0xF4, 0x00, 0x6A, 0x6C, 0xEA, 0x10, 0x22, 0x9D, 0x67, 0xB8, 0xA4, 0xC4, 0xA1, 0xE5, 0xA1, 0x04, 0xD0, 0x4C, 0xA1, 0x03, 0x6B, 0x30, 0xF0, -0x20, 0x6C, 0x4E, 0x32, 0x6C, 0xEA, 0xC4, 0xF2, -0x08, 0x4C, 0x05, 0xD2, 0x80, 0x18, 0x16, 0x42, +0x20, 0x6C, 0x4E, 0x32, 0x6C, 0xEA, 0xE4, 0xF2, +0x10, 0x4C, 0x05, 0xD2, 0x80, 0x18, 0x25, 0x42, 0x6B, 0xA1, 0x0F, 0x6A, 0xD0, 0x67, 0x6C, 0xEA, 0x20, 0x6B, 0x6D, 0xEA, 0x4B, 0xC1, 0x5D, 0x67, 0x09, 0x94, 0xB8, 0xA2, 0xF9, 0xA2, 0x80, 0x18, -0xD8, 0x4B, 0x13, 0x97, 0x12, 0x91, 0x11, 0x90, +0xE7, 0x4B, 0x13, 0x97, 0x12, 0x91, 0x11, 0x90, 0x0A, 0x63, 0x00, 0xEF, 0xF6, 0x63, 0x13, 0x62, 0x12, 0xD1, 0x11, 0xD0, 0xFF, 0x69, 0x8C, 0xE9, 0x30, 0x68, 0x18, 0xE9, 0x30, 0xF0, 0x20, 0x6A, -0x6A, 0xF0, 0x00, 0x4A, 0x91, 0x67, 0x12, 0xE8, -0x01, 0xE2, 0x80, 0x18, 0x55, 0x47, 0x91, 0x67, -0x0B, 0xD2, 0x80, 0x18, 0x5B, 0x47, 0x8C, 0xA0, +0x8A, 0xF0, 0x10, 0x4A, 0x91, 0x67, 0x12, 0xE8, +0x01, 0xE2, 0x80, 0x18, 0x64, 0x47, 0x91, 0x67, +0x0B, 0xD2, 0x80, 0x18, 0x6A, 0x47, 0x8C, 0xA0, 0x80, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xFF, 0x6C, 0x8C, 0xEB, 0x0E, 0x23, 0x30, 0xF0, 0x20, 0x6B, -0x29, 0xF4, 0x68, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, +0x49, 0xF4, 0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x80, 0xF1, 0x04, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0xE4, 0xF2, 0x0C, 0x4C, 0x7D, 0x11, +0x20, 0x6C, 0x04, 0xF3, 0x14, 0x4C, 0x7D, 0x11, 0x18, 0x6B, 0x4C, 0xEB, 0x6F, 0x33, 0xFF, 0x6D, 0xAC, 0xEB, 0x08, 0xD3, 0x0B, 0x93, 0x7F, 0x6A, 0x6C, 0xEA, 0x60, 0xA0, 0x42, 0xEB, 0x15, 0x60, -0x30, 0xF0, 0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x49, 0xF4, 0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x06, 0x22, -0x30, 0xF0, 0x20, 0x6C, 0xE4, 0xF2, 0x14, 0x4C, -0x80, 0x18, 0x16, 0x42, 0xA0, 0xA0, 0x08, 0x97, -0x91, 0x67, 0x00, 0x6E, 0x80, 0x18, 0xD8, 0x4B, +0x30, 0xF0, 0x20, 0x6C, 0x04, 0xF3, 0x1C, 0x4C, +0x80, 0x18, 0x25, 0x42, 0xA0, 0xA0, 0x08, 0x97, +0x91, 0x67, 0x00, 0x6E, 0x80, 0x18, 0xE7, 0x4B, 0x61, 0x11, 0x9D, 0x67, 0xA7, 0x44, 0x25, 0x4D, 0x80, 0xA5, 0x31, 0x6A, 0x4B, 0xEA, 0x83, 0xC0, 0x08, 0x95, 0x87, 0xA0, 0xB0, 0x33, 0x8C, 0xEA, 0x6D, 0xEA, 0x47, 0xC0, 0x83, 0xF6, 0x6C, 0x41, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, 0x64, 0x33, 0x4D, 0xE3, 0x60, 0xAB, 0x0D, 0xD3, 0x03, 0xF7, 0x6C, 0x41, 0x64, 0x33, 0x4D, 0xE3, 0x60, 0xAB, 0x0C, 0xD3, 0x83, 0xF5, 0x6C, 0x41, 0x64, 0x33, 0x49, 0xE3, 0x40, 0xAA, 0x0D, 0x93, 0xA2, 0x67, 0x73, 0xE2, 0x0A, 0xD2, 0x80, 0x18, -0x71, 0x47, 0x09, 0xD2, 0x0C, 0x95, 0x0D, 0x92, -0x53, 0xE5, 0x80, 0x18, 0x71, 0x47, 0x7D, 0x67, +0x80, 0x47, 0x09, 0xD2, 0x0C, 0x95, 0x0D, 0x92, +0x53, 0xE5, 0x80, 0x18, 0x80, 0x47, 0x7D, 0x67, 0x87, 0x43, 0x1D, 0x4C, 0x60, 0xAC, 0x0E, 0xD2, 0x6A, 0xC8, 0x0A, 0x94, 0x40, 0x6B, 0x86, 0x32, 0x41, 0x5A, 0x03, 0x60, 0x61, 0x42, 0xFF, 0x6D, 0xAC, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x71, 0xC0, -0x45, 0xF7, 0x18, 0x4A, 0xC3, 0xF4, 0x90, 0x9A, +0x85, 0xF7, 0x08, 0x4A, 0xC3, 0xF4, 0x90, 0x9A, 0xFF, 0x6B, 0x01, 0x4B, 0x8C, 0xEB, 0x11, 0x23, 0x03, 0xF6, 0x6C, 0x41, 0x64, 0x33, 0x49, 0xE3, 0x40, 0xAA, 0x0D, 0x96, 0x0A, 0x97, 0x04, 0xD2, -0x0C, 0x92, 0x30, 0xF0, 0x20, 0x6C, 0x04, 0xF3, -0x00, 0x4C, 0xB1, 0x67, 0x05, 0xD2, 0x80, 0x18, -0x16, 0x42, 0x30, 0xF0, 0x20, 0x6B, 0x29, 0xF4, -0x68, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x0C, 0x92, 0x30, 0xF0, 0x20, 0x6C, 0x24, 0xF3, +0x08, 0x4C, 0xB1, 0x67, 0x05, 0xD2, 0x80, 0x18, +0x25, 0x42, 0x30, 0xF0, 0x20, 0x6B, 0x49, 0xF4, +0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x08, 0x22, 0x09, 0x95, 0x0E, 0x96, 0x30, 0xF0, -0x20, 0x6C, 0x24, 0xF3, 0x04, 0x4C, 0x80, 0x18, -0x16, 0x42, 0x30, 0xF0, 0x20, 0x6B, 0x29, 0xF4, -0x68, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x20, 0x6C, 0x44, 0xF3, 0x0C, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x30, 0xF0, 0x20, 0x6B, 0x49, 0xF4, +0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x0C, 0x22, 0xA7, 0xA0, 0x08, 0x96, 0x0B, 0x97, 0xAA, 0x35, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0x6A, -0x24, 0xF3, 0x14, 0x4C, 0x4C, 0xED, 0x80, 0x18, -0x16, 0x42, 0x09, 0x93, 0x0B, 0x95, 0x91, 0x67, +0x44, 0xF3, 0x1C, 0x4C, 0x4C, 0xED, 0x80, 0x18, +0x25, 0x42, 0x09, 0x93, 0x0B, 0x95, 0x91, 0x67, 0x06, 0x06, 0x00, 0xF0, 0x19, 0x07, 0x04, 0xD3, -0x80, 0x18, 0xCC, 0x49, 0x30, 0xF0, 0x20, 0x6B, -0x29, 0xF4, 0x68, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, +0x80, 0x18, 0xDB, 0x49, 0x30, 0xF0, 0x20, 0x6B, +0x49, 0xF4, 0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x09, 0x22, 0x5D, 0x67, 0xB8, 0xA2, -0xD9, 0xA2, 0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF3, -0x0C, 0x4C, 0x80, 0x18, 0x16, 0x42, 0x30, 0xF0, -0x20, 0x6B, 0x45, 0xF7, 0x18, 0x4B, 0x07, 0xF3, +0xD9, 0xA2, 0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF3, +0x14, 0x4C, 0x80, 0x18, 0x25, 0x42, 0x30, 0xF0, +0x20, 0x6B, 0x85, 0xF7, 0x08, 0x4B, 0x07, 0xF3, 0xB4, 0xA3, 0x04, 0x6C, 0xFF, 0x6A, 0xAC, 0xEC, 0x0B, 0x24, 0xC3, 0xF4, 0x70, 0x9B, 0x01, 0x4A, 0x6C, 0xEA, 0xA0, 0xF0, 0x18, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x44, 0xF3, 0x1C, 0x4C, 0xB1, 0x10, +0x20, 0x6C, 0x84, 0xF3, 0x04, 0x4C, 0xB1, 0x10, 0xBD, 0x67, 0x99, 0xA5, 0x09, 0x95, 0x83, 0xED, 0x03, 0x60, 0x0E, 0x94, 0x1E, 0x5C, 0x52, 0x61, 0x0E, 0x95, 0x50, 0x5D, 0x15, 0x61, 0x30, 0xF0, -0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, 0xFF, 0x6A, +0x20, 0x6B, 0x49, 0xF4, 0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x64, 0xF3, 0x08, 0x4C, 0x80, 0x18, -0x16, 0x42, 0x01, 0x6D, 0x91, 0x67, 0xC5, 0x67, -0x80, 0x18, 0xE0, 0x4D, 0x00, 0x6A, 0x72, 0x10, +0x20, 0x6C, 0x84, 0xF3, 0x10, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x01, 0x6D, 0x91, 0x67, 0xC5, 0x67, +0x80, 0x18, 0xF0, 0x4D, 0x00, 0x6A, 0x72, 0x10, 0x8A, 0xA0, 0x0F, 0x6D, 0x10, 0x6A, 0x64, 0x67, 0xAC, 0xEB, 0x01, 0x4B, 0x4B, 0xEA, 0xAC, 0xEB, 0x8C, 0xEA, 0x6D, 0xEA, 0x4A, 0xC0, 0x30, 0xF0, -0x20, 0x6C, 0x29, 0xF4, 0x88, 0x9C, 0xFF, 0x6B, +0x20, 0x6C, 0x49, 0xF4, 0x98, 0x9C, 0xFF, 0x6B, 0x01, 0x4B, 0x8C, 0xEB, 0x07, 0x23, 0x30, 0xF0, -0x20, 0x6C, 0x64, 0xF3, 0x14, 0x4C, 0x4C, 0xED, -0x80, 0x18, 0x16, 0x42, 0x6A, 0xA0, 0x0F, 0x6A, +0x20, 0x6C, 0x84, 0xF3, 0x1C, 0x4C, 0x4C, 0xED, +0x80, 0x18, 0x25, 0x42, 0x6A, 0xA0, 0x0F, 0x6A, 0x6C, 0xEA, 0x02, 0x52, 0x18, 0x61, 0x30, 0xF0, -0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, 0xFF, 0x6A, +0x20, 0x6B, 0x49, 0xF4, 0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x84, 0xF3, 0x04, 0x4C, 0x80, 0x18, -0x16, 0x42, 0x91, 0x67, 0x01, 0x6D, 0x00, 0x6E, -0x80, 0x18, 0xE0, 0x4D, 0x6A, 0xA0, 0x10, 0x6A, +0x20, 0x6C, 0xA4, 0xF3, 0x0C, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x91, 0x67, 0x01, 0x6D, 0x00, 0x6E, +0x80, 0x18, 0xF0, 0x4D, 0x6A, 0xA0, 0x10, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x4A, 0xC0, 0x6A, 0xA0, 0x0F, 0x6A, 0x37, 0x10, 0x9D, 0x67, 0xB8, 0xA4, 0xFF, 0xF7, 0x1F, 0x6C, 0xAC, 0xEC, 0x09, 0x95, 0x83, 0xED, 0x32, 0x60, 0x8A, 0xA0, 0x10, 0x4C, 0x8A, 0xC0, 0xC3, 0xF4, 0x70, 0x9B, 0xFF, 0x6C, 0x01, 0x4C, 0x6C, 0xEC, 0x09, 0x24, 0xAA, 0xA0, -0x30, 0xF0, 0x20, 0x6C, 0x84, 0xF3, 0x10, 0x4C, -0xB2, 0x35, 0x4C, 0xED, 0x80, 0x18, 0x16, 0x42, +0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF3, 0x18, 0x4C, +0xB2, 0x35, 0x4C, 0xED, 0x80, 0x18, 0x25, 0x42, 0x4A, 0xA0, 0x52, 0x32, 0x03, 0x52, 0x16, 0x61, -0x30, 0xF0, 0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x49, 0xF4, 0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x06, 0x22, -0x30, 0xF0, 0x20, 0x6C, 0x84, 0xF3, 0x1C, 0x4C, -0x80, 0x18, 0x16, 0x42, 0x91, 0x67, 0x00, 0x6D, -0x80, 0x18, 0xFA, 0x4C, 0x6A, 0xA0, 0x0F, 0x6A, +0x30, 0xF0, 0x20, 0x6C, 0xC4, 0xF3, 0x04, 0x4C, +0x80, 0x18, 0x25, 0x42, 0x91, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x0A, 0x4D, 0x6A, 0xA0, 0x0F, 0x6A, 0x6C, 0xEA, 0x4A, 0xC0, 0x6A, 0xA0, 0x10, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x4A, 0xC0, 0x1F, 0x10, 0x8A, 0xA0, 0x92, 0x33, 0x4C, 0xEB, 0x02, 0x23, 0xF0, 0x4C, 0x8A, 0xC0, 0x8A, 0xA0, 0x0F, 0x6A, 0x64, 0x67, 0x4C, 0xEB, 0x06, 0x23, 0x0F, 0x4B, 0x4C, 0xEB, 0xE1, 0x4A, 0x8C, 0xEA, 0x6D, 0xEA, -0x4A, 0xC0, 0x30, 0xF0, 0x20, 0x6B, 0x29, 0xF4, -0x68, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, -0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF3, -0x04, 0x4C, 0x80, 0x18, 0x16, 0x42, 0x91, 0x67, -0x80, 0x18, 0x1D, 0x46, 0x13, 0x97, 0x12, 0x91, +0x4A, 0xC0, 0x30, 0xF0, 0x20, 0x6B, 0x49, 0xF4, +0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xC4, 0xF3, +0x0C, 0x4C, 0x80, 0x18, 0x25, 0x42, 0x91, 0x67, +0x80, 0x18, 0x2C, 0x46, 0x13, 0x97, 0x12, 0x91, 0x11, 0x90, 0x0A, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x04, 0x67, 0x26, 0x67, 0x4C, 0xE8, 0x4C, 0xE9, 0x90, 0x67, 0x4C, 0xED, 0xD1, 0x67, -0x80, 0x18, 0x1F, 0x4A, 0xA2, 0x67, 0x90, 0x67, +0x80, 0x18, 0x2E, 0x4A, 0xA2, 0x67, 0x90, 0x67, 0x00, 0x6E, 0xF1, 0x67, 0x04, 0xD2, 0x80, 0x18, -0xD8, 0x4B, 0x30, 0xF0, 0x20, 0x6A, 0x29, 0xF4, -0x48, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x07, 0x22, -0x04, 0x95, 0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF3, -0x10, 0x4C, 0x80, 0x18, 0x16, 0x42, 0x09, 0x97, +0xE7, 0x4B, 0x30, 0xF0, 0x20, 0x6A, 0x49, 0xF4, +0x58, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x07, 0x22, +0x04, 0x95, 0x30, 0xF0, 0x20, 0x6C, 0xC4, 0xF3, +0x18, 0x4C, 0x80, 0x18, 0x25, 0x42, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, 0x30, 0x69, 0x38, 0xEC, -0x30, 0xF0, 0x20, 0x6B, 0x6A, 0xF0, 0x00, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x8A, 0xF0, 0x10, 0x4B, 0x05, 0xD4, 0x12, 0xE9, 0x25, 0xE3, 0x07, 0xA1, 0x03, 0x6B, 0x12, 0x30, 0x6C, 0xE8, 0x4C, 0xE8, 0x43, 0xA1, 0x7F, 0x6B, 0x04, 0xD2, 0x4C, 0xEB, 0x40, 0xA1, 0x63, 0xEA, 0x01, 0x60, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x49, 0xF4, 0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x08, 0x22, -0x04, 0x95, 0x30, 0xF0, 0x20, 0x6C, 0xC4, 0xF3, -0x00, 0x4C, 0xD0, 0x67, 0x80, 0x18, 0x16, 0x42, +0x04, 0x95, 0x30, 0xF0, 0x20, 0x6C, 0xE4, 0xF3, +0x08, 0x4C, 0xD0, 0x67, 0x80, 0x18, 0x25, 0x42, 0x43, 0xA1, 0x04, 0x93, 0x80, 0x6D, 0xAB, 0xED, 0x4C, 0xED, 0x6D, 0xED, 0x05, 0x94, 0x00, 0xF6, 0xA0, 0x35, 0xFF, 0x6A, 0x00, 0xF6, 0xA3, 0x35, 0xF0, 0x67, 0x4C, 0xED, 0x00, 0x6E, 0x80, 0x18, -0xD8, 0x4B, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0xE7, 0x4B, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0x68, 0x18, 0xEA, 0x04, 0xD2, 0x04, 0x94, 0xFF, 0x6E, 0x30, 0xF0, 0x20, 0x6A, 0xAC, 0xEE, -0x6A, 0xF0, 0x00, 0x4A, 0x06, 0xD6, 0x18, 0x69, -0x12, 0xE8, 0x01, 0xE2, 0x80, 0x18, 0x55, 0x47, -0x04, 0x94, 0x05, 0xD2, 0x80, 0x18, 0x5B, 0x47, +0x8A, 0xF0, 0x10, 0x4A, 0x06, 0xD6, 0x18, 0x69, +0x12, 0xE8, 0x01, 0xE2, 0x80, 0x18, 0x64, 0x47, +0x04, 0x94, 0x05, 0xD2, 0x80, 0x18, 0x6A, 0x47, 0x06, 0x96, 0x4C, 0xE9, 0x2F, 0x31, 0xFF, 0x6A, 0x01, 0x76, 0x4C, 0xE9, 0x1C, 0x61, 0x30, 0xF0, -0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, 0x01, 0xF7, +0x20, 0x6B, 0x49, 0xF4, 0x78, 0x9B, 0x01, 0xF7, 0x01, 0x4A, 0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0xC4, 0xF3, 0x18, 0x4C, 0x80, 0x18, -0x16, 0x42, 0x6B, 0xA0, 0x10, 0x6A, 0x4B, 0xEA, +0x20, 0x6C, 0x04, 0xF4, 0x00, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x6B, 0xA0, 0x10, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x4B, 0xC0, 0x04, 0x94, 0x05, 0x95, -0x00, 0x6E, 0xF1, 0x67, 0x80, 0x18, 0xD8, 0x4B, +0x00, 0x6E, 0xF1, 0x67, 0x80, 0x18, 0xE7, 0x4B, 0x6C, 0xA0, 0x19, 0x6A, 0x21, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, 0x02, 0xF0, +0x20, 0x6B, 0x49, 0xF4, 0x78, 0x9B, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0xE4, 0xF3, 0x04, 0x4C, 0x80, 0x18, -0x16, 0x42, 0x8B, 0xA0, 0x0F, 0x6A, 0x64, 0x67, +0x20, 0x6C, 0x04, 0xF4, 0x0C, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x8B, 0xA0, 0x0F, 0x6A, 0x64, 0x67, 0x4C, 0xEB, 0x01, 0x4B, 0x4C, 0xEB, 0xE1, 0x4A, 0x8C, 0xEA, 0x6D, 0xEA, 0x6C, 0xA0, 0x4B, 0xC0, 0x18, 0x6A, 0x6C, 0xEA, 0x09, 0x2A, 0x04, 0x94, -0x80, 0x18, 0x46, 0x4F, 0x6C, 0xA0, 0x61, 0x6A, +0x80, 0x18, 0x56, 0x4F, 0x6C, 0xA0, 0x61, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x4C, 0xC0, 0x57, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x49, 0xF4, 0x78, 0x9B, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x0C, 0x22, 0xAC, 0xA0, 0x03, 0x6A, 0x30, 0xF0, 0x20, 0x6C, -0xAE, 0x35, 0x4C, 0xED, 0xFF, 0x6A, 0xE4, 0xF3, -0x0C, 0x4C, 0x4C, 0xED, 0x80, 0x18, 0x16, 0x42, +0xAE, 0x35, 0x4C, 0xED, 0xFF, 0x6A, 0x04, 0xF4, +0x14, 0x4C, 0x4C, 0xED, 0x80, 0x18, 0x25, 0x42, 0xAC, 0xA0, 0x03, 0x6B, 0xB6, 0x32, 0x6C, 0xEA, 0x51, 0xE0, 0xC4, 0xA4, 0x01, 0x4A, 0x6C, 0xEA, 0x05, 0xD6, 0x54, 0x36, 0x61, 0x6A, 0x4B, 0xEA, @@ -14319,111 +14208,111 @@ u8 array_mp_8822c_fw_ap[] = { 0x4C, 0x33, 0x19, 0x6A, 0x4B, 0xEA, 0xAC, 0xEA, 0x6D, 0xEA, 0x4C, 0xC0, 0x20, 0xF0, 0x46, 0xA4, 0xFF, 0x72, 0x10, 0x60, 0x30, 0xF0, 0x20, 0x6B, -0x29, 0xF4, 0x68, 0x9B, 0x22, 0x67, 0x02, 0xF0, +0x49, 0xF4, 0x78, 0x9B, 0x22, 0x67, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x07, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0xE4, 0xF3, 0x1C, 0x4C, 0xB1, 0x67, -0x80, 0x18, 0x16, 0x42, 0x30, 0xF0, 0x20, 0x6B, -0x29, 0xF4, 0x68, 0x9B, 0x02, 0xF0, 0x00, 0x6A, +0x20, 0x6C, 0x24, 0xF4, 0x04, 0x4C, 0xB1, 0x67, +0x80, 0x18, 0x25, 0x42, 0x30, 0xF0, 0x20, 0x6B, +0x49, 0xF4, 0x78, 0x9B, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x07, 0x22, 0x05, 0x95, 0x30, 0xF0, -0x20, 0x6C, 0x04, 0xF4, 0x08, 0x4C, 0x80, 0x18, -0x16, 0x42, 0x04, 0x94, 0x05, 0x95, 0x01, 0x6E, -0xF1, 0x67, 0x80, 0x18, 0xD8, 0x4B, 0x0B, 0x97, +0x20, 0x6C, 0x24, 0xF4, 0x10, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x04, 0x94, 0x05, 0x95, 0x01, 0x6E, +0xF1, 0x67, 0x80, 0x18, 0xE7, 0x4B, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0xF6, 0x63, 0x13, 0x62, 0x12, 0xD1, 0x11, 0xD0, 0xFF, 0x69, 0x8C, 0xE9, 0x30, 0x68, 0x18, 0xE9, -0x30, 0xF0, 0x20, 0x6A, 0x6A, 0xF0, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0x8A, 0xF0, 0x10, 0x4A, 0x91, 0x67, 0x12, 0xE8, 0x01, 0xE2, 0x80, 0x18, -0x55, 0x47, 0x91, 0x67, 0x09, 0xD2, 0x80, 0x18, -0x5B, 0x47, 0x0B, 0xD2, 0x4A, 0xA8, 0x30, 0xF0, -0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, 0x0E, 0xD2, +0x64, 0x47, 0x91, 0x67, 0x09, 0xD2, 0x80, 0x18, +0x6A, 0x47, 0x0B, 0xD2, 0x4A, 0xA8, 0x30, 0xF0, +0x20, 0x6B, 0x49, 0xF4, 0x78, 0x9B, 0x0E, 0xD2, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x06, 0x22, -0x30, 0xF0, 0x20, 0x6C, 0x04, 0xF4, 0x14, 0x4C, -0x80, 0x18, 0x16, 0x42, 0x6C, 0xA0, 0x80, 0x6A, +0x30, 0xF0, 0x20, 0x6C, 0x24, 0xF4, 0x1C, 0x4C, +0x80, 0x18, 0x25, 0x42, 0x6C, 0xA0, 0x80, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x80, 0xF1, 0x03, 0x22, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF6, 0x4C, 0x41, 0x45, 0xF7, 0x18, 0x4B, +0x03, 0xF6, 0x4C, 0x41, 0x85, 0xF7, 0x08, 0x4B, 0x44, 0x32, 0x69, 0xE2, 0x40, 0xAA, 0x06, 0xD3, 0x03, 0x5A, 0x0F, 0x61, 0xC3, 0xF4, 0x70, 0x9B, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x06, 0x22, -0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF6, 0x1C, 0x4C, -0x80, 0x18, 0x16, 0x42, 0x91, 0x67, 0x00, 0x6D, +0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF7, 0x04, 0x4C, +0x80, 0x18, 0x25, 0x42, 0x91, 0x67, 0x00, 0x6D, 0x66, 0x11, 0x06, 0x94, 0xC4, 0xF1, 0x4C, 0x41, 0x44, 0x32, 0x89, 0xE2, 0xA0, 0xAA, 0x08, 0xD2, 0x44, 0xF1, 0x4C, 0x41, 0x44, 0x32, 0x89, 0xE2, 0x80, 0xAA, 0x07, 0xD2, 0x93, 0xE5, 0x80, 0x18, -0x71, 0x47, 0x06, 0x93, 0x0D, 0xD2, 0xC4, 0xF2, +0x80, 0x47, 0x06, 0x93, 0x0D, 0xD2, 0xC4, 0xF2, 0x4C, 0x41, 0x44, 0x32, 0x69, 0xE2, 0xA0, 0xAA, 0x0A, 0xD2, 0x07, 0x92, 0x80, 0xAA, 0x93, 0xE5, -0x80, 0x18, 0x71, 0x47, 0x06, 0x94, 0x0C, 0xD2, +0x80, 0x18, 0x80, 0x47, 0x06, 0x94, 0x0C, 0xD2, 0x02, 0xF0, 0x00, 0x6A, 0xC3, 0xF4, 0x70, 0x9C, 0x6C, 0xEA, 0x12, 0x22, 0x07, 0x92, 0x08, 0x93, 0xA0, 0xAA, 0x44, 0xF2, 0x4C, 0x41, 0x44, 0x32, 0x89, 0xE2, 0x0A, 0x94, 0xE0, 0xAA, 0xC0, 0xAB, -0x40, 0xAC, 0x30, 0xF0, 0x20, 0x6C, 0x24, 0xF4, -0x00, 0x4C, 0x04, 0xD2, 0x80, 0x18, 0x16, 0x42, -0x30, 0xF0, 0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, +0x40, 0xAC, 0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF4, +0x08, 0x4C, 0x04, 0xD2, 0x80, 0x18, 0x25, 0x42, +0x30, 0xF0, 0x20, 0x6B, 0x49, 0xF4, 0x78, 0x9B, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x08, 0x22, 0x0D, 0x95, 0x0C, 0x96, 0x30, 0xF0, 0x20, 0x6C, -0x24, 0xF3, 0x04, 0x4C, 0x80, 0x18, 0x16, 0x42, +0x44, 0xF3, 0x0C, 0x4C, 0x80, 0x18, 0x25, 0x42, 0x0B, 0x93, 0x18, 0x6A, 0x6C, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, 0x4E, 0x32, +0x20, 0x6B, 0x49, 0xF4, 0x78, 0x9B, 0x4E, 0x32, 0x0A, 0xD2, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x08, 0x22, 0x0A, 0x95, 0x09, 0x96, 0x30, 0xF0, -0x20, 0x6C, 0x24, 0xF4, 0x1C, 0x4C, 0x80, 0x18, -0x16, 0x42, 0x09, 0x92, 0x7F, 0x6C, 0x09, 0x93, +0x20, 0x6C, 0x64, 0xF4, 0x04, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x09, 0x92, 0x7F, 0x6C, 0x09, 0x93, 0x8C, 0xEA, 0x06, 0xD2, 0x80, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x0F, 0x22, -0x06, 0x94, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF4, -0x08, 0x4A, 0x84, 0x33, 0x49, 0xE3, 0x40, 0xAA, +0x06, 0x94, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF4, +0x10, 0x4A, 0x84, 0x33, 0x49, 0xE3, 0x40, 0xAA, 0x52, 0x34, 0x56, 0x33, 0x6D, 0xE4, 0x4D, 0xE3, 0x5E, 0x32, 0x49, 0xE3, 0x08, 0x10, 0x06, 0x94, -0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF4, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF4, 0x10, 0x4A, 0x84, 0x33, 0x49, 0xE3, 0x40, 0xAA, 0x0B, 0xD2, 0x43, 0x80, 0x00, 0x52, 0x12, 0x60, 0x63, 0xA0, 0x7F, 0x6C, 0x30, 0xF0, 0x20, 0x6A, 0x8C, 0xEB, -0x85, 0xF4, 0x08, 0x4A, 0x64, 0x33, 0x4D, 0xE3, +0xA5, 0xF4, 0x10, 0x4A, 0x64, 0x33, 0x4D, 0xE3, 0x40, 0xAB, 0x52, 0x34, 0x56, 0x33, 0x6D, 0xE4, 0x4D, 0xE3, 0x5E, 0x32, 0x49, 0xE3, 0x08, 0xD2, 0x0B, 0x10, 0x63, 0xA0, 0x7F, 0x6C, 0x30, 0xF0, -0x20, 0x6A, 0x8C, 0xEB, 0x64, 0x33, 0x85, 0xF4, -0x08, 0x4A, 0x4D, 0xE3, 0x60, 0xAB, 0x08, 0xD3, +0x20, 0x6A, 0x8C, 0xEB, 0x64, 0x33, 0xA5, 0xF4, +0x10, 0x4A, 0x4D, 0xE3, 0x60, 0xAB, 0x08, 0xD3, 0x4B, 0xA0, 0x10, 0x6B, 0x6B, 0xEB, 0x4C, 0xEB, 0xFF, 0x6A, 0x10, 0x6C, 0x4C, 0xEB, 0x8E, 0xEB, 0x01, 0x5B, 0x78, 0x67, 0x6B, 0xEB, 0x05, 0x6C, 0x6C, 0xEC, 0x07, 0xD4, 0x30, 0xF0, 0x20, 0x6C, -0x29, 0xF4, 0x88, 0x9C, 0x02, 0xF0, 0x00, 0x6B, +0x49, 0xF4, 0x98, 0x9C, 0x02, 0xF0, 0x00, 0x6B, 0x8C, 0xEB, 0x0C, 0x23, 0xA7, 0xA0, 0x03, 0x6B, 0x0A, 0x96, 0xB2, 0x35, 0x6C, 0xED, 0x30, 0xF0, -0x20, 0x6C, 0x44, 0xF4, 0x0C, 0x4C, 0x4C, 0xED, -0x80, 0x18, 0x16, 0x42, 0x0E, 0x92, 0x07, 0x94, +0x20, 0x6C, 0x64, 0xF4, 0x14, 0x4C, 0x4C, 0xED, +0x80, 0x18, 0x25, 0x42, 0x0E, 0x92, 0x07, 0x94, 0xFF, 0x6D, 0x64, 0x6B, 0x4C, 0xED, 0xAB, 0xE3, 0x89, 0xE2, 0x08, 0x94, 0x98, 0xEA, 0x12, 0xEC, 0x08, 0xD4, 0x47, 0xA0, 0x03, 0x6C, 0x52, 0x32, 0x8C, 0xEA, 0x12, 0xEC, 0x84, 0xEA, 0x0D, 0x92, 0x08, 0xD4, 0x4F, 0xE3, 0x0B, 0x92, 0x78, 0xEA, 0x0A, 0x93, 0x12, 0xEA, 0x44, 0xEB, 0x30, 0xF0, -0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, 0x07, 0xD2, +0x20, 0x6B, 0x49, 0xF4, 0x78, 0x9B, 0x07, 0xD2, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x07, 0x22, -0x0D, 0x96, 0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF4, -0x18, 0x4C, 0x80, 0x18, 0x16, 0x42, 0x30, 0xF0, -0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, 0x02, 0xF0, +0x0D, 0x96, 0x30, 0xF0, 0x20, 0x6C, 0x84, 0xF4, +0x00, 0x4C, 0x80, 0x18, 0x25, 0x42, 0x30, 0xF0, +0x20, 0x6B, 0x49, 0xF4, 0x78, 0x9B, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x08, 0x22, 0xA3, 0xA0, -0x09, 0x96, 0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF4, -0x08, 0x4C, 0x80, 0x18, 0x16, 0x42, 0x30, 0xF0, -0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, 0x02, 0xF0, +0x09, 0x96, 0x30, 0xF0, 0x20, 0x6C, 0x84, 0xF4, +0x10, 0x4C, 0x80, 0x18, 0x25, 0x42, 0x30, 0xF0, +0x20, 0x6B, 0x49, 0xF4, 0x78, 0x9B, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x0A, 0x22, 0x08, 0x92, -0x07, 0x93, 0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF4, -0x18, 0x4C, 0x4E, 0x35, 0x6E, 0x36, 0x80, 0x18, -0x16, 0x42, 0x07, 0x94, 0x08, 0x92, 0x43, 0xEC, +0x07, 0x93, 0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF4, +0x00, 0x4C, 0x4E, 0x35, 0x6E, 0x36, 0x80, 0x18, +0x25, 0x42, 0x07, 0x94, 0x08, 0x92, 0x43, 0xEC, 0x03, 0x61, 0x0C, 0x93, 0x1E, 0x5B, 0x2F, 0x61, 0x6B, 0xA0, 0x10, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x10, 0x72, 0x38, 0x61, 0x0C, 0x94, 0x1E, 0x5C, 0x35, 0x61, 0x30, 0xF0, -0x20, 0x6B, 0x29, 0xF4, 0x68, 0x9B, 0x02, 0xF0, +0x20, 0x6B, 0x49, 0xF4, 0x78, 0x9B, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x07, 0x22, 0x09, 0x95, -0x30, 0xF0, 0x20, 0x6C, 0x84, 0xF4, 0x08, 0x4C, -0x80, 0x18, 0x16, 0x42, 0x06, 0x94, 0x80, 0x18, -0x64, 0x47, 0x02, 0x72, 0x09, 0x61, 0x5D, 0x67, +0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF4, 0x10, 0x4C, +0x80, 0x18, 0x25, 0x42, 0x06, 0x94, 0x80, 0x18, +0x73, 0x47, 0x02, 0x72, 0x09, 0x61, 0x5D, 0x67, 0x67, 0x42, 0x1D, 0x4B, 0x40, 0xA3, 0x00, 0x6B, 0x20, 0xF0, 0x42, 0xC0, 0x06, 0xD3, 0x1A, 0x10, 0x9D, 0x67, 0x47, 0x44, 0x1D, 0x4A, 0x80, 0xA2, @@ -14433,16 +14322,16 @@ u8 array_mp_8822c_fw_ap[] = { 0x09, 0x61, 0x6A, 0xA0, 0x6C, 0xEA, 0x01, 0x6B, 0x6D, 0xEA, 0x4A, 0xC0, 0x06, 0xD3, 0x02, 0x10, 0x00, 0x6A, 0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6B, -0x29, 0xF4, 0x68, 0x9B, 0x02, 0xF0, 0x00, 0x6A, +0x49, 0xF4, 0x78, 0x9B, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x07, 0x22, 0x06, 0x95, 0x30, 0xF0, -0x20, 0x6C, 0x84, 0xF4, 0x14, 0x4C, 0x80, 0x18, -0x16, 0x42, 0x06, 0x95, 0x91, 0x67, 0x80, 0x18, -0x67, 0x4F, 0x13, 0x97, 0x12, 0x91, 0x11, 0x90, +0x20, 0x6C, 0xA4, 0xF4, 0x1C, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x06, 0x95, 0x91, 0x67, 0x80, 0x18, +0x77, 0x4F, 0x13, 0x97, 0x12, 0x91, 0x11, 0x90, 0x0A, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0x07, 0xF3, 0x33, 0xA2, +0x85, 0xF7, 0x08, 0x4A, 0x07, 0xF3, 0x33, 0xA2, 0x30, 0x68, 0x07, 0xF3, 0x52, 0xA2, 0x18, 0xE9, -0x30, 0xF0, 0x20, 0x6B, 0x6A, 0xF0, 0x00, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x8A, 0xF0, 0x10, 0x4B, 0x02, 0x72, 0x12, 0xE8, 0x01, 0xE3, 0x34, 0x60, 0x03, 0x5A, 0x03, 0x60, 0x01, 0x72, 0x09, 0x60, 0xB7, 0x10, 0x03, 0x72, 0x78, 0x67, 0x08, 0xD3, @@ -14461,28 +14350,28 @@ u8 array_mp_8822c_fw_ap[] = { 0x50, 0xC3, 0x0D, 0x6A, 0x52, 0xC3, 0x68, 0xA0, 0x1F, 0x6A, 0x9D, 0x67, 0x6C, 0xEA, 0x53, 0xC4, 0x40, 0xA0, 0x2C, 0x31, 0x54, 0xC4, 0x41, 0xA0, -0x55, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, -0x58, 0x9A, 0x49, 0xE1, 0x40, 0xA2, 0x56, 0xC4, -0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF7, 0x44, 0x9A, +0x55, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, +0x5C, 0x9A, 0x49, 0xE1, 0x40, 0xA2, 0x56, 0xC4, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF7, 0x48, 0x9A, 0x49, 0xE1, 0x40, 0xA2, 0x57, 0xC4, 0x30, 0xF0, -0x20, 0x6A, 0xA2, 0xF7, 0x48, 0x9A, 0x49, 0xE1, +0x20, 0x6A, 0xC2, 0xF7, 0x4C, 0x9A, 0x49, 0xE1, 0x40, 0xA2, 0x58, 0xC4, 0x30, 0xF0, 0x20, 0x6A, -0xA2, 0xF7, 0x4C, 0x9A, 0x49, 0xE1, 0x40, 0xA2, -0x59, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, -0x40, 0x9A, 0x49, 0xE1, 0x40, 0xA2, 0x5A, 0xC4, -0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF7, 0x50, 0x9A, +0xC2, 0xF7, 0x50, 0x9A, 0x49, 0xE1, 0x40, 0xA2, +0x59, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, +0x44, 0x9A, 0x49, 0xE1, 0x40, 0xA2, 0x5A, 0xC4, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF7, 0x54, 0x9A, 0x49, 0xE1, 0x40, 0xA2, 0x5B, 0xC4, 0x30, 0xF0, -0x20, 0x6A, 0xA2, 0xF7, 0x54, 0x9A, 0x49, 0xE1, +0x20, 0x6A, 0xC2, 0xF7, 0x58, 0x9A, 0x49, 0xE1, 0x40, 0xA2, 0x5C, 0xC4, 0x30, 0xF0, 0x20, 0x6A, -0xA2, 0xF7, 0x58, 0x9A, 0x45, 0xE1, 0x40, 0xA1, +0xC2, 0xF7, 0x5C, 0x9A, 0x45, 0xE1, 0x40, 0xA1, 0x26, 0x10, 0xBD, 0x67, 0x0C, 0x6A, 0x4F, 0xCD, 0x0E, 0x6A, 0x50, 0xC5, 0x52, 0xC5, 0x4A, 0xA8, 0x91, 0x67, 0x53, 0xC5, 0x4B, 0xA8, 0x54, 0xC5, 0x5E, 0xA0, 0x55, 0xC5, 0x6A, 0xA0, 0x72, 0x32, 0x56, 0xC5, 0x0F, 0x6A, 0x6C, 0xEA, 0x57, 0xC5, 0x20, 0xF0, 0x45, 0xA0, 0x58, 0xC5, 0x80, 0x18, -0x55, 0x47, 0x7D, 0x67, 0x91, 0x67, 0x59, 0xC3, -0x80, 0x18, 0x5B, 0x47, 0x9D, 0x67, 0xA7, 0x44, +0x64, 0x47, 0x7D, 0x67, 0x91, 0x67, 0x59, 0xC3, +0x80, 0x18, 0x6A, 0x47, 0x9D, 0x67, 0xA7, 0x44, 0x19, 0x4D, 0xA0, 0xA5, 0x5A, 0xC4, 0xBB, 0xC4, 0x42, 0xA0, 0x5C, 0xC4, 0x43, 0xA0, 0x5D, 0xC4, 0x11, 0x10, 0x7D, 0x67, 0x03, 0x6A, 0x4F, 0xCB, @@ -14492,209 +14381,12 @@ u8 array_mp_8822c_fw_ap[] = { 0x73, 0xC4, 0x54, 0xC4, 0x04, 0x94, 0x05, 0x95, 0x06, 0x96, 0x07, 0x97, 0x80, 0x18, 0x00, 0x40, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, -0xC2, 0xF5, 0x8A, 0x42, 0x30, 0xF0, 0x20, 0x6B, -0x85, 0xF3, 0x1C, 0x4A, 0x45, 0xF7, 0x18, 0x4B, -0x88, 0x34, 0x44, 0x32, 0x91, 0xE3, 0x4D, 0xE3, -0x00, 0x68, 0x04, 0x4C, 0x08, 0x4B, 0x04, 0xD4, -0x05, 0xD3, 0x06, 0xD0, 0x07, 0xD0, 0x08, 0xD0, -0x04, 0x95, 0x01, 0x6C, 0x08, 0x93, 0x40, 0xA5, -0x30, 0xF0, 0x20, 0x69, 0x04, 0x36, 0x8C, 0xEA, -0x44, 0xE8, 0x4D, 0xE3, 0x41, 0xA5, 0x05, 0x95, -0x08, 0xD3, 0x8C, 0xEA, 0x07, 0x94, 0x64, 0x40, -0x44, 0xEB, 0x51, 0xE4, 0x40, 0xA5, 0x07, 0xD4, -0x03, 0x6C, 0x64, 0x33, 0x8C, 0xEA, 0x44, 0xEB, -0x04, 0x94, 0x06, 0x93, 0x01, 0x6D, 0x8C, 0xAC, -0x4D, 0xE3, 0x06, 0xD3, 0xC0, 0xF3, 0x64, 0x99, -0x08, 0x6A, 0x4D, 0xEE, 0x09, 0xD4, 0xAB, 0xED, -0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEB, 0x08, 0x95, -0x07, 0x96, 0x06, 0x93, 0xC0, 0xF3, 0x44, 0x99, -0xAD, 0xEE, 0x6D, 0xEE, 0xE3, 0xF3, 0x10, 0x6C, -0xFF, 0xF7, 0x1F, 0x6D, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x99, 0x09, 0x96, 0x01, 0x6D, 0xE3, 0xF3, -0x08, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x04, 0x94, -0x05, 0x95, 0x01, 0x48, 0x02, 0x4C, 0x01, 0x4D, -0x02, 0x70, 0x04, 0xD4, 0x05, 0xD5, 0xBC, 0x61, -0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xF7, 0x63, 0x11, 0x62, -0x10, 0xD1, 0x0F, 0xD0, 0xFF, 0x6A, 0x04, 0x67, -0x4C, 0xE8, 0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0xAA, 0xF3, 0x75, 0xA2, -0x30, 0xF0, 0x21, 0x6C, 0xD0, 0xF6, 0x14, 0x4C, -0x0D, 0xD3, 0xE1, 0xF2, 0x69, 0x40, 0x6C, 0x33, -0x69, 0xE2, 0x04, 0x4A, 0x0C, 0xD5, 0x0A, 0xD2, -0x08, 0xD4, 0x00, 0x69, 0x09, 0xD0, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF6, 0x1C, 0x4B, 0xE0, 0x9B, -0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0x09, 0xF4, -0x18, 0x48, 0x2C, 0xEA, 0x90, 0x67, 0xA2, 0x67, -0xDF, 0x6E, 0x06, 0xD2, 0x80, 0x18, 0x7F, 0x57, -0x10, 0x6B, 0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF6, 0x1C, 0x4A, 0x06, 0x95, 0xE0, 0x9A, -0x90, 0x67, 0xDF, 0x6E, 0x04, 0xD3, 0x80, 0x18, -0xF2, 0x57, 0x0A, 0x93, 0x06, 0x95, 0x90, 0x67, -0x40, 0x9B, 0x58, 0x6E, 0x30, 0xF0, 0x20, 0x68, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, -0x1C, 0x4A, 0xE0, 0x9A, 0x80, 0x18, 0xF2, 0x57, -0xC0, 0xF3, 0x44, 0x98, 0x08, 0x6B, 0x24, 0x36, -0x01, 0x6D, 0x6D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, -0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0x0D, 0x93, 0x06, 0x73, 0x1C, 0x61, -0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF6, 0xBC, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x08, 0x93, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x6D, 0xC0, 0x9B, 0x23, 0xF3, -0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x08, 0x93, -0x01, 0x6D, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, -0x1C, 0x6C, 0xAB, 0xED, 0xC2, 0x9B, 0x21, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF6, 0xBC, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, -0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF5, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, 0x18, 0x6C, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF5, 0x14, 0x4B, 0xC0, 0xF3, 0x44, 0x98, -0xC0, 0x9B, 0x01, 0x6D, 0x23, 0xF3, 0x1C, 0x6C, -0xAB, 0xED, 0x40, 0xEA, 0x0C, 0x94, 0x06, 0x24, -0x00, 0x6A, 0x01, 0x74, 0x06, 0xD2, 0xE0, 0xF0, -0x15, 0x61, 0x7A, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, -0x02, 0xF7, 0xB0, 0x9B, 0x23, 0xF3, 0x00, 0x6C, -0x44, 0x68, 0x03, 0x6E, 0x40, 0xEA, 0x18, 0xE9, -0x09, 0x93, 0x88, 0x6A, 0x00, 0x6C, 0x06, 0xD4, -0x12, 0xE8, 0x58, 0xEB, 0x12, 0xEA, 0x41, 0xE0, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0x01, 0xE2, 0x0A, 0xF5, 0x0C, 0x48, 0xC0, 0xA8, -0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF7, 0x44, 0x9A, -0x06, 0x93, 0xC0, 0x36, 0x4D, 0xEE, 0x30, 0xF0, -0x20, 0x6C, 0x68, 0x32, 0x4D, 0xEE, 0xC0, 0xF3, -0x44, 0x9C, 0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, -0xAB, 0xED, 0x02, 0x4E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF5, 0xB4, 0x9B, 0xC3, 0xF3, -0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x06, 0x94, -0x02, 0x48, 0x01, 0x4C, 0x11, 0x74, 0x06, 0xD4, -0xDA, 0x61, 0x44, 0x68, 0x18, 0xE9, 0x09, 0x93, -0x88, 0x6A, 0x00, 0x6C, 0x06, 0xD4, 0x12, 0xE8, -0x58, 0xEB, 0x12, 0xEA, 0x41, 0xE0, 0x30, 0xF0, -0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, 0x01, 0xE2, -0x0A, 0xF6, 0x1C, 0x48, 0xC0, 0xA8, 0x30, 0xF0, -0x20, 0x6A, 0xC2, 0xF7, 0x44, 0x9A, 0xC0, 0x36, -0x30, 0xF0, 0x20, 0x6C, 0x4D, 0xEE, 0x06, 0x92, -0x01, 0x6D, 0xAB, 0xED, 0x48, 0x33, 0xC0, 0xF3, -0x44, 0x9C, 0x6D, 0xEE, 0xC3, 0xF3, 0x18, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, -0xB4, 0x9B, 0xC3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, -0x40, 0xEA, 0x06, 0x94, 0x02, 0x48, 0x01, 0x4C, -0x11, 0x74, 0x06, 0xD4, 0xDB, 0x61, 0x13, 0x11, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x02, 0xF7, 0xB0, 0x9B, -0x23, 0xF3, 0x00, 0x6C, 0x44, 0x68, 0x01, 0x6E, -0x40, 0xEA, 0x18, 0xE9, 0x09, 0x93, 0x88, 0x6A, -0x00, 0x6C, 0x06, 0xD4, 0x12, 0xE8, 0x58, 0xEB, -0x12, 0xEA, 0x41, 0xE0, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0x01, 0xE2, 0x2A, 0xF5, -0x0E, 0x48, 0xC0, 0xA8, 0x30, 0xF0, 0x20, 0x6A, -0xC2, 0xF7, 0x48, 0x9A, 0x06, 0x93, 0xC0, 0x36, -0x4D, 0xEE, 0x30, 0xF0, 0x20, 0x6C, 0x68, 0x32, -0x4D, 0xEE, 0xC0, 0xF3, 0x44, 0x9C, 0x01, 0x6D, -0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x02, 0x4E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, -0xB4, 0x9B, 0xC3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, -0x40, 0xEA, 0x06, 0x94, 0x02, 0x48, 0x01, 0x4C, -0x11, 0x74, 0x06, 0xD4, 0xDA, 0x61, 0x44, 0x68, -0x18, 0xE9, 0x09, 0x93, 0x88, 0x6A, 0x00, 0x6C, -0x06, 0xD4, 0x12, 0xE8, 0x58, 0xEB, 0x12, 0xEA, -0x41, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, -0x18, 0x4A, 0x01, 0xE2, 0x2A, 0xF6, 0x1E, 0x48, -0xC0, 0xA8, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF7, -0x48, 0x9A, 0xC0, 0x36, 0x30, 0xF0, 0x20, 0x6C, -0x4D, 0xEE, 0x06, 0x92, 0x01, 0x6D, 0xAB, 0xED, -0x48, 0x33, 0xC0, 0xF3, 0x44, 0x9C, 0x6D, 0xEE, -0xC3, 0xF3, 0x18, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF5, 0xB4, 0x9B, 0xC3, 0xF3, -0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x06, 0x94, -0x02, 0x48, 0x01, 0x4C, 0x11, 0x74, 0x06, 0xD4, -0xDB, 0x61, 0x99, 0x10, 0x0B, 0xD1, 0x06, 0x93, -0xFF, 0x6A, 0x6C, 0xEA, 0x11, 0x2A, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x44, 0x9A, 0x02, 0xF7, 0xB0, 0x9B, 0x23, 0xF3, -0x00, 0x6C, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xC2, 0xF7, 0x44, 0x9A, 0x10, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x02, 0xF7, 0xB0, 0x9B, -0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF7, 0x48, 0x9A, -0x07, 0xD2, 0x06, 0x92, 0x22, 0x68, 0x0B, 0x93, -0x18, 0xEA, 0x44, 0x6A, 0x00, 0x69, 0x12, 0xE8, -0x58, 0xEB, 0x09, 0x93, 0x12, 0xEA, 0x41, 0xE0, -0x88, 0x6A, 0x58, 0xEB, 0x12, 0xEA, 0x41, 0xE0, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0x01, 0xE2, 0x0A, 0xF5, 0x0C, 0x48, 0xC0, 0xA8, -0x07, 0x94, 0x28, 0x32, 0xC0, 0x36, 0x30, 0xF0, -0x20, 0x6B, 0x8D, 0xEE, 0x4D, 0xEE, 0xC0, 0xF3, -0x44, 0x9B, 0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, -0xAB, 0xED, 0x02, 0x4E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x9C, 0xE2, 0xF5, 0xB4, 0x9B, 0xC3, 0xF3, -0x18, 0x6C, 0x00, 0x6E, 0x01, 0x49, 0x40, 0xEA, -0x11, 0x71, 0x02, 0x48, 0xE0, 0x61, 0x06, 0x92, -0x22, 0x68, 0x0B, 0x93, 0x18, 0xEA, 0x44, 0x6A, -0x00, 0x69, 0x12, 0xE8, 0x58, 0xEB, 0x09, 0x93, -0x12, 0xEA, 0x41, 0xE0, 0x88, 0x6A, 0x58, 0xEB, -0x12, 0xEA, 0x41, 0xE0, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0x01, 0xE2, 0x0A, 0xF6, -0x1C, 0x48, 0xC0, 0xA8, 0x07, 0x94, 0x28, 0x33, -0xC0, 0x36, 0x8D, 0xEE, 0x30, 0xF0, 0x20, 0x6C, -0xC0, 0xF3, 0x44, 0x9C, 0x01, 0x6D, 0x6D, 0xEE, -0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, 0xB4, 0x9B, -0xC3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x01, 0x49, -0x40, 0xEA, 0x11, 0x71, 0x02, 0x48, 0xE1, 0x61, -0x06, 0x94, 0x01, 0x4C, 0x02, 0x74, 0x06, 0xD4, -0x7F, 0xF7, 0x09, 0x61, 0x0B, 0x91, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x02, 0xF7, -0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, -0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x02, 0xF7, 0xB0, 0x9B, 0x23, 0xF3, 0x00, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x00, 0x6A, 0x06, 0xD2, -0x06, 0x94, 0x06, 0x92, 0x30, 0xF0, 0x20, 0x68, -0xFF, 0x6B, 0x6C, 0xEC, 0xC0, 0xF3, 0x64, 0x98, -0x44, 0x36, 0x01, 0x6D, 0x08, 0x6A, 0x4D, 0xEE, -0x07, 0xD4, 0xAB, 0xED, 0x03, 0xF3, 0x00, 0x6C, -0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF6, -0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, -0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF5, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, 0x18, 0x6C, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF5, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, 0x1C, 0x6C, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF0, 0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x03, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x07, 0x95, 0x83, 0xF0, 0xFC, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0x09, 0xF4, 0x18, 0x4C, 0x00, 0x6E, -0x80, 0x18, 0xF2, 0x57, 0x06, 0x94, 0x01, 0x4C, -0x02, 0x74, 0x06, 0xD4, 0xA9, 0x61, 0x0A, 0x92, -0x08, 0x93, 0x01, 0x49, 0x04, 0x4A, 0x04, 0x4B, -0x02, 0x71, 0x0A, 0xD2, 0x08, 0xD3, 0x7F, 0xF5, -0x12, 0x61, 0x11, 0x97, 0x10, 0x91, 0x0F, 0x90, -0x09, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, 0x1C, 0x22, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0xFF, 0x6D, 0x83, 0xF4, 0x10, 0x6C, 0x01, 0x4D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xA2, 0xF6, 0x2C, 0x9A, 0xC0, 0xF3, +0x20, 0x6A, 0xC2, 0xF6, 0x34, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x01, 0x6E, @@ -14703,7 +14395,7 @@ u8 array_mp_8822c_fw_ap[] = { 0x01, 0x4D, 0x00, 0x6E, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFF, 0x63, 0x01, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF6, 0x7C, 0x9B, 0x46, 0x67, 0x8E, 0xEB, +0x22, 0xF7, 0x60, 0x9B, 0x46, 0x67, 0x8E, 0xEB, 0x12, 0x23, 0x00, 0x6E, 0x66, 0x67, 0xE4, 0x67, 0xE6, 0xEE, 0x01, 0x68, 0x0C, 0xEF, 0x07, 0x2F, 0x01, 0x4B, 0xFF, 0x6F, 0xEC, 0xEB, 0x14, 0x73, @@ -14714,89 +14406,89 @@ u8 array_mp_8822c_fw_ap[] = { 0x20, 0xE8, 0x00, 0x65, 0x00, 0x6A, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x01, 0x75, 0x33, 0x61, 0x01, 0x76, 0x17, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, 0x3C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, 0x20, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, 0xC8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF0, 0xDC, 0x9B, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x81, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF6, 0x3C, 0x9A, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0xC3, 0xF0, -0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x20, 0x6A, 0x22, 0xF7, 0x20, 0x9A, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0xE3, 0xF0, +0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, -0x00, 0x6C, 0xB1, 0x67, 0xC3, 0xF0, 0xCC, 0x9B, +0x00, 0x6C, 0xB1, 0x67, 0x03, 0xF1, 0xC0, 0x9B, 0x67, 0x10, 0x02, 0x75, 0x2C, 0x61, 0x01, 0x76, -0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, -0x3C, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, +0x20, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, -0x00, 0x6C, 0xB1, 0x67, 0xC3, 0xF0, 0xCC, 0x9B, -0x2D, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, -0x3C, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x68, 0xC3, 0xF0, 0xCC, 0x9B, 0xC0, 0xF3, +0x00, 0x6C, 0xB1, 0x67, 0x03, 0xF1, 0xC0, 0x9B, +0x2D, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, +0x20, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0x03, 0xF1, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, 0xB1, 0x67, -0xC3, 0xF0, 0xC8, 0x9B, 0x39, 0x10, 0x03, 0x75, +0xE3, 0xF0, 0xDC, 0x9B, 0x39, 0x10, 0x03, 0x75, 0x38, 0x61, 0x01, 0x76, 0x1A, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF6, 0x3C, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF7, 0x20, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0xC3, 0xF0, 0xC8, 0x9B, 0x03, 0xF0, +0x44, 0x98, 0xE3, 0xF0, 0xDC, 0x9B, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, -0x00, 0x6C, 0xB1, 0x67, 0xC3, 0xF0, 0xD0, 0x9B, +0x00, 0x6C, 0xB1, 0x67, 0x03, 0xF1, 0xC4, 0x9B, 0x1B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF6, 0x3C, 0x9A, 0xC3, 0xF0, -0x08, 0x4B, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0x9B, +0x20, 0x6B, 0x22, 0xF7, 0x20, 0x9A, 0xE3, 0xF0, +0x1C, 0x4B, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF0, 0x08, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xE3, 0xF0, 0x1C, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, 0x08, 0xF1, 0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x01, 0x6A, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, 0x0E, 0x72, 0x51, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, -0xC3, 0xF0, 0x14, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x03, 0xF1, 0x08, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x00, 0x6C, 0xA7, 0xF5, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF0, 0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF1, 0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF2, 0x04, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x08, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0xAD, 0xF2, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF0, 0x14, 0x4B, 0xA0, 0x9B, +0x20, 0x6B, 0x03, 0xF1, 0x08, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF2, 0x18, 0x6C, 0x75, 0xF2, 0x1B, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF2, 0x1C, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0xDE, 0xF3, 0x17, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF2, 0x00, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, -0xDC, 0x9B, 0xA3, 0xF2, 0x0C, 0x6C, 0xB1, 0x67, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF1, +0xD0, 0x9B, 0xA3, 0xF2, 0x0C, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF2, 0x10, 0x6C, 0xB1, 0x67, 0xFF, 0xF7, 0x1F, 0x6E, 0x55, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x68, 0xC3, 0xF0, 0x14, 0x4B, 0xA0, 0x9B, +0x20, 0x68, 0x03, 0xF1, 0x08, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x00, 0x6C, 0x8A, 0xF2, 0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE3, 0xF0, 0xC0, 0x9B, 0xC0, 0xF3, +0x20, 0x6B, 0x03, 0xF1, 0xD4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF2, 0x04, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x08, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0x81, 0xF2, 0x08, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x14, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0x08, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF2, 0x18, 0x6C, 0xD5, 0xF4, 0x04, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF2, 0x1C, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0xB9, 0xF0, 0x12, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, -0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF2, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, +0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF2, 0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE3, 0xF0, 0xC8, 0x9B, 0xC0, 0xF3, +0x20, 0x6B, 0x03, 0xF1, 0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF2, 0x0C, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0xE3, 0xF0, 0xCC, 0x9B, 0xA3, 0xF2, +0x44, 0x98, 0x23, 0xF1, 0xC0, 0x9B, 0xA3, 0xF2, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, @@ -14866,62 +14558,62 @@ u8 array_mp_8822c_fw_ap[] = { 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, 0x26, 0x67, 0x3B, 0x22, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x68, 0xE3, 0xF0, 0x10, 0x4B, +0x30, 0xF0, 0x20, 0x68, 0x23, 0xF1, 0x04, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF1, 0x04, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF0, 0x10, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x23, 0xF1, 0x04, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xD1, 0x67, 0x48, 0xF0, 0x04, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF6, -0x38, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF1, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, +0x20, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF1, 0x00, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x48, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, 0x18, 0x6C, 0x01, 0xF0, 0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF5, -0x1C, 0x6C, 0xE3, 0xF0, 0xB4, 0x9B, 0x0F, 0x6E, +0x1C, 0x6C, 0x23, 0xF1, 0xA8, 0x9B, 0x0F, 0x6E, 0x37, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x68, 0xE3, 0xF0, 0x30, 0x9A, 0xC0, 0xF3, +0x20, 0x68, 0x23, 0xF1, 0x24, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF1, 0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x48, 0xF0, 0x04, 0x6C, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF6, -0x38, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF1, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, +0x20, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF1, 0x00, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x48, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, 0x18, 0x6C, 0x01, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF0, -0xB4, 0x9B, 0x23, 0xF5, 0x1C, 0x6C, 0x00, 0x6E, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF1, +0xA8, 0x9B, 0x23, 0xF5, 0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, 0x13, 0x22, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, 0x18, 0x6C, 0x08, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF5, 0x1C, 0x6C, 0xE3, 0xF0, -0xB4, 0x9B, 0x0F, 0x6E, 0x12, 0x10, 0x30, 0xF0, +0x44, 0x98, 0x23, 0xF5, 0x1C, 0x6C, 0x23, 0xF1, +0xA8, 0x9B, 0x0F, 0x6E, 0x12, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, 0x18, 0x6C, 0x08, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0xE3, 0xF0, 0xB4, 0x9B, 0x23, 0xF5, 0x1C, 0x6C, +0x23, 0xF1, 0xA8, 0x9B, 0x23, 0xF5, 0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0xAC, 0xE8, -0x00, 0x6D, 0x24, 0x67, 0x80, 0x18, 0x33, 0x54, +0x00, 0x6D, 0x24, 0x67, 0x80, 0x18, 0xB9, 0x52, 0x99, 0x70, 0x07, 0x61, 0x50, 0x99, 0x40, 0xA2, 0x04, 0x2A, 0x91, 0x67, 0x01, 0x6D, 0x70, 0x6E, 0x03, 0x10, 0x00, 0x6D, 0x91, 0x67, 0xC5, 0x67, -0x80, 0x18, 0xF3, 0x53, 0x07, 0x97, 0x06, 0x91, +0x80, 0x18, 0x79, 0x52, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0xAC, 0xEA, 0x0C, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, 0x63, 0xF4, -0x04, 0x6C, 0xE2, 0xF5, 0xB4, 0x9B, 0x01, 0x6E, +0x04, 0x6C, 0x22, 0xF6, 0xA0, 0x9B, 0x01, 0x6E, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, 0xE2, 0xF5, -0xB4, 0x9B, 0x63, 0xF4, 0x04, 0x6C, 0x00, 0x6E, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, 0x22, 0xF6, +0xA0, 0x9B, 0x63, 0xF4, 0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0xAC, 0xEA, 0x09, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, @@ -14937,23 +14629,23 @@ u8 array_mp_8822c_fw_ap[] = { 0x1F, 0x6D, 0x40, 0xEA, 0x1B, 0xC9, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, 0xB8, 0x9B, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, 0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, 0x00, 0x6E, 0x23, 0xF4, 0x1C, 0x6C, 0x40, 0xEA, 0x01, 0x6D, 0xA5, 0xF5, -0x14, 0x6C, 0xAB, 0xED, 0x80, 0x18, 0xA1, 0x16, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0x7C, 0x9B, +0x14, 0x6C, 0xAB, 0xED, 0x80, 0x18, 0xA5, 0x19, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, 0x70, 0x9B, 0x05, 0x97, 0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, -0x02, 0xF7, 0x50, 0x9A, 0x4E, 0xEB, 0x01, 0x5B, +0x22, 0xF7, 0x54, 0x9A, 0x4E, 0xEB, 0x01, 0x5B, 0x58, 0x67, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x83, 0xF2, 0x18, 0x68, 0x24, 0x67, 0x18, 0xF0, -0x00, 0x6D, 0x90, 0x67, 0x80, 0x18, 0xA1, 0x16, -0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, -0xBC, 0x9A, 0xA3, 0xF2, 0x08, 0x6C, 0x80, 0x18, -0xA1, 0x16, 0x90, 0x67, 0xC0, 0x6D, 0x04, 0xD2, -0x80, 0x18, 0xA1, 0x16, 0x02, 0x67, 0x30, 0xF0, -0x20, 0x6A, 0x02, 0xF7, 0xB8, 0x9A, 0x63, 0xF2, -0x10, 0x6C, 0x80, 0x18, 0xA1, 0x16, 0x05, 0x93, +0x00, 0x6D, 0x90, 0x67, 0x80, 0x18, 0xA5, 0x19, +0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, +0xB0, 0x9A, 0xA3, 0xF2, 0x08, 0x6C, 0x80, 0x18, +0xA5, 0x19, 0x90, 0x67, 0xC0, 0x6D, 0x04, 0xD2, +0x80, 0x18, 0xA5, 0x19, 0x02, 0x67, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF7, 0xBC, 0x9A, 0x63, 0xF2, +0x10, 0x6C, 0x80, 0x18, 0xA5, 0x19, 0x05, 0x93, 0x04, 0x95, 0xFF, 0x6C, 0x8C, 0xEB, 0x8C, 0xE8, 0x70, 0x33, 0x10, 0x30, 0x4D, 0xE8, 0xAD, 0xEB, 0x60, 0xF0, 0x71, 0xC1, 0x60, 0xF0, 0x12, 0xC1, @@ -14962,141 +14654,141 @@ u8 array_mp_8822c_fw_ap[] = { 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x4C, 0xED, 0x08, 0xD4, 0xCC, 0xEA, 0xC0, 0xF0, 0x1C, 0x25, 0x20, 0x22, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x68, 0x03, 0xF1, 0xA0, 0x9B, 0xC0, 0xF3, +0x20, 0x68, 0x23, 0xF1, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0x21, 0xF0, 0x13, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, 0x08, 0x6C, 0x18, 0xF0, 0x00, 0x6D, 0x02, 0x6E, 0x40, 0xEA, 0x01, 0x6D, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xAB, 0xED, 0x03, 0xF1, 0xC4, 0x9B, +0x10, 0x6C, 0xAB, 0xED, 0x23, 0xF1, 0xD8, 0x9B, 0x90, 0x11, 0x08, 0x93, 0x50, 0x9B, 0x40, 0xA2, 0x01, 0x72, 0x80, 0xF1, 0x0B, 0x61, 0x01, 0x69, 0x2B, 0xE9, 0xA1, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x80, 0x18, 0xA1, 0x16, 0x08, 0x93, 0x30, 0xF0, +0x80, 0x18, 0xA5, 0x19, 0x08, 0x93, 0x30, 0xF0, 0x20, 0x68, 0x03, 0xF0, 0x00, 0x6C, 0x5D, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0xA0, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x81, 0xF0, 0x08, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, -0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x81, 0xF0, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF6, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x81, 0xF0, 0x18, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, 0x08, 0x6C, 0x18, 0xF0, 0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA1, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x04, 0xF2, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF1, 0x04, 0x4B, 0xC0, 0x9B, +0x20, 0x6B, 0x23, 0xF1, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF1, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, -0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF1, 0xCC, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, -0xD0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF1, 0xD4, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, -0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF1, 0xDC, 0x9B, 0xC0, 0xF3, +0x23, 0xF1, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF1, 0xC4, 0x9B, 0xC0, 0xF3, +0x20, 0x6B, 0x43, 0xF1, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, -0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, +0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF1, 0x0C, 0x4B, 0xC0, 0xF3, +0x20, 0x6B, 0x43, 0xF1, 0xC8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, +0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF1, 0xD0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, +0xD4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF1, 0xD8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, +0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF1, 0x00, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x23, 0xF1, 0x0C, 0x4B, 0xD4, 0x10, +0xB1, 0x67, 0x63, 0xF1, 0x00, 0x4B, 0xD4, 0x10, 0x20, 0x22, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x68, 0x03, 0xF1, 0xA0, 0x9B, 0xC0, 0xF3, +0x20, 0x68, 0x23, 0xF1, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0x20, 0xF3, 0x13, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, 0x08, 0x6C, 0x18, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x01, 0x6D, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xAB, 0xED, 0x23, 0xF1, 0xD0, 0x9B, +0x10, 0x6C, 0xAB, 0xED, 0x63, 0xF1, 0xC4, 0x9B, 0xB4, 0x10, 0x08, 0x93, 0x50, 0x9B, 0x40, 0xA2, 0x01, 0x72, 0xA0, 0xF0, 0x0F, 0x61, 0x30, 0xF0, -0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, -0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, +0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0x20, 0xF3, 0x13, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, 0xB4, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF6, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x81, 0xF0, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, 0x08, 0x6C, 0x18, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x08, 0x93, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0xDD, 0x9B, 0x2B, 0xE9, 0xA1, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, 0x10, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF1, 0x10, 0x4B, 0xC0, 0x9B, +0x20, 0x6B, 0x63, 0xF1, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF1, 0xD4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF1, 0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, 0xD8, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF1, 0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF1, 0xD0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, 0xC0, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0xD4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF1, 0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF1, 0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, 0xC8, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF1, 0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x83, 0xF1, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, 0xD0, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, 0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF1, 0xD4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x83, 0xF1, 0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, 0x18, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, 0x0C, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x43, 0xF1, 0x18, 0x4B, +0x10, 0x6C, 0xB1, 0x67, 0x83, 0xF1, 0x0C, 0x4B, 0xC0, 0x9B, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x05, 0x67, 0x83, 0xF0, 0xBC, 0x9A, -0x21, 0xF0, 0x04, 0x6C, 0x80, 0x18, 0xA1, 0x16, -0x40, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF7, -0xB8, 0x9A, 0x03, 0xF2, 0x04, 0x6C, 0x80, 0x18, -0xA1, 0x16, 0x01, 0x72, 0x02, 0x61, 0x03, 0x6A, +0x20, 0x6A, 0x05, 0x67, 0xC3, 0xF0, 0xB0, 0x9A, +0x21, 0xF0, 0x04, 0x6C, 0x80, 0x18, 0xA5, 0x19, +0x40, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, +0xBC, 0x9A, 0x03, 0xF2, 0x04, 0x6C, 0x80, 0x18, +0xA5, 0x19, 0x01, 0x72, 0x02, 0x61, 0x03, 0x6A, 0x06, 0x10, 0x02, 0x2A, 0x01, 0x6A, 0x03, 0x10, 0x05, 0x72, 0x02, 0x61, 0x02, 0x6A, 0x41, 0xC0, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x05, 0x67, 0x01, 0x6D, 0x21, 0xF0, 0x00, 0x6C, 0xAB, 0xED, -0x80, 0x18, 0xA1, 0x16, 0xF0, 0x6B, 0x4C, 0xEB, +0x80, 0x18, 0xA5, 0x19, 0xF0, 0x6B, 0x4C, 0xEB, 0x72, 0x33, 0x61, 0xC0, 0x0F, 0x6B, 0x4C, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0xBC, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0xB0, 0x9A, 0x60, 0xC0, 0x03, 0xF2, 0x04, 0x6C, 0x80, 0x18, -0xA1, 0x16, 0x0C, 0x72, 0x02, 0x61, 0x03, 0x6A, +0xA5, 0x19, 0x0C, 0x72, 0x02, 0x61, 0x03, 0x6A, 0x09, 0x10, 0x08, 0x72, 0x02, 0x61, 0x01, 0x6A, 0x05, 0x10, 0x04, 0x72, 0x02, 0x61, 0x02, 0x6A, 0x01, 0x10, 0x01, 0x2A, 0x42, 0xC0, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF5, 0xB8, 0x9A, 0x23, 0xF6, -0x04, 0x6C, 0x80, 0x18, 0xA1, 0x16, 0x4F, 0xEA, +0x20, 0x6A, 0xE2, 0xF5, 0xB0, 0x9A, 0x23, 0xF6, +0x04, 0x6C, 0x80, 0x18, 0xA5, 0x19, 0x4F, 0xEA, 0x43, 0xC0, 0x01, 0x6A, 0x44, 0xC0, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x63, 0xF5, 0x10, 0x69, 0x01, 0x6D, 0x91, 0x67, -0xAB, 0xED, 0x80, 0x18, 0xA1, 0x16, 0x04, 0xD2, +0xAB, 0xED, 0x80, 0x18, 0xA5, 0x19, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x68, 0x04, 0x96, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x91, 0x67, 0xAB, 0xED, 0xFF, 0xF5, 0x1E, 0x4E, 0x40, 0xEA, 0xC0, 0xF3, @@ -15105,92 +14797,92 @@ u8 array_mp_8822c_fw_ap[] = { 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x0C, 0xED, -0x83, 0xF0, 0x1C, 0x4A, 0x04, 0xD5, 0xA0, 0x9A, +0xC3, 0xF0, 0x10, 0x4A, 0x04, 0xD5, 0xA0, 0x9A, 0x21, 0xF0, 0x04, 0x69, 0x91, 0x67, 0x80, 0x18, -0xA1, 0x16, 0x04, 0x93, 0x48, 0x23, 0x4C, 0xE8, +0xA5, 0x19, 0x04, 0x93, 0x48, 0x23, 0x4C, 0xE8, 0x03, 0x70, 0x08, 0x60, 0x30, 0xF0, 0x20, 0x6C, -0xA4, 0xF4, 0x00, 0x4C, 0x80, 0x18, 0x16, 0x42, +0xC4, 0xF4, 0x08, 0x4C, 0x80, 0x18, 0x25, 0x42, 0x00, 0x6A, 0x7B, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, 0x1C, 0x6C, 0x04, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x02, 0xF7, 0x18, 0x4B, 0xA0, 0x9B, +0x20, 0x6B, 0x22, 0xF7, 0x1C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, -0x1C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, +0x10, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF7, 0x18, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, 0x1C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF1, 0xA0, 0x9B, 0xC0, 0xF3, +0x20, 0x6B, 0x83, 0xF1, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x0C, 0x69, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x63, 0xF1, -0xA4, 0x9B, 0x00, 0x6E, 0x3C, 0x10, 0x30, 0xF0, +0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x83, 0xF1, +0xB8, 0x9B, 0x00, 0x6E, 0x3C, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, 0x1C, 0x6C, 0x04, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF7, 0x18, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, 0x1C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF0, 0x1C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0xC3, 0xF0, 0x10, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, 0x03, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF7, -0x18, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, +0x1C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0xA0, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x0C, 0x69, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF1, -0xA4, 0x9B, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF1, +0xB8, 0x9B, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x01, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0xCC, 0xEA, 0x08, 0xD2, 0x0E, 0xD4, 0x0F, 0xD5, 0x11, 0xD7, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x50, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, 0x5C, 0x9A, 0x64, 0x9C, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0xC4, 0xF4, -0x0C, 0x4C, 0xC2, 0xF3, 0x00, 0x4D, 0x80, 0x18, -0x16, 0x42, 0x0F, 0x93, 0x02, 0x5B, 0x03, 0x60, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0xE4, 0xF4, +0x14, 0x4C, 0xC2, 0xF3, 0x00, 0x4D, 0x80, 0x18, +0x25, 0x42, 0x0F, 0x93, 0x02, 0x5B, 0x03, 0x60, 0x08, 0x94, 0x54, 0x5C, 0x12, 0x61, 0x0E, 0x94, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x50, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, 0x5C, 0x9A, 0x64, 0x9C, 0xFF, 0x69, 0x6C, 0xEA, 0x80, 0xF0, 0x15, 0x22, 0x0F, 0x95, 0x30, 0xF0, 0x20, 0x6C, -0xC4, 0xF4, 0x18, 0x4C, 0x80, 0x18, 0x16, 0x42, +0x04, 0xF5, 0x00, 0x4C, 0x80, 0x18, 0x25, 0x42, 0x8D, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x68, 0x63, 0xF1, 0x08, 0x4B, 0xA0, 0x9B, +0x20, 0x68, 0x83, 0xF1, 0x1C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, 0x1C, 0x69, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF1, 0xAC, 0x9A, 0xC0, 0xF3, +0x20, 0x6A, 0xA3, 0xF1, 0xA0, 0x9A, 0xC0, 0xF3, 0x64, 0x98, 0x08, 0x96, 0x91, 0x67, 0x40, 0xEB, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x08, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, 0x1C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xE5, 0xF5, 0x08, 0x6C, -0xFF, 0x6D, 0x80, 0x18, 0xA1, 0x16, 0x00, 0xF6, +0xFF, 0x6D, 0x80, 0x18, 0xA5, 0x19, 0x00, 0xF6, 0x40, 0x31, 0x00, 0xF6, 0x23, 0x31, 0x40, 0x6A, 0x2C, 0xEA, 0x03, 0x22, 0x80, 0x6A, 0x4B, 0xEA, 0x4D, 0xE9, 0x11, 0x94, 0x0B, 0x74, 0x10, 0x61, 0x0F, 0x93, 0xA3, 0xF0, 0x00, 0x6A, 0x06, 0xD2, 0x05, 0xF1, 0x00, 0x4A, 0x07, 0xD2, 0x9D, 0x67, 0x68, 0x32, 0x49, 0xE4, 0x8C, 0xAA, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF1, 0xB0, 0x9A, 0x13, 0x10, +0x20, 0x6A, 0xA3, 0xF1, 0xA4, 0x9A, 0x13, 0x10, 0x11, 0x92, 0x00, 0x68, 0x0C, 0x72, 0x13, 0x61, 0x0F, 0x93, 0xE3, 0xF0, 0x08, 0x6A, 0x04, 0xD2, 0x05, 0xF1, 0x00, 0x4A, 0x05, 0xD2, 0x9D, 0x67, 0x68, 0x32, 0x49, 0xE4, 0x88, 0xAA, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF1, 0xB4, 0x9A, 0x80, 0x18, -0xA1, 0x16, 0xFF, 0x68, 0x4C, 0xE8, 0x0E, 0x94, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x50, 0x9A, +0x20, 0x6A, 0xA3, 0xF1, 0xA8, 0x9A, 0x80, 0x18, +0xA5, 0x19, 0xFF, 0x68, 0x4C, 0xE8, 0x0E, 0x94, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, 0x5C, 0x9A, 0x64, 0x9C, 0x6C, 0xEA, 0x08, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0xE4, 0xF4, 0x10, 0x4C, 0xB1, 0x67, -0xD0, 0x67, 0x80, 0x18, 0x16, 0x42, 0x21, 0xE0, +0x20, 0x6C, 0x04, 0xF5, 0x18, 0x4C, 0xB1, 0x67, +0xD0, 0x67, 0x80, 0x18, 0x25, 0x42, 0x21, 0xE0, 0x00, 0x50, 0x00, 0x69, 0x02, 0x61, 0xFF, 0x69, 0x0C, 0xE9, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x63, 0xF1, -0xA8, 0x9B, 0x63, 0xF4, 0x1C, 0x6C, 0x00, 0x6E, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x83, 0xF1, +0xBC, 0x9B, 0x63, 0xF4, 0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x0E, 0x94, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF5, 0x50, 0x9A, 0x64, 0x9C, 0x6C, 0xEA, +0x02, 0xF6, 0x5C, 0x9A, 0x64, 0x9C, 0x6C, 0xEA, 0x09, 0x22, 0x0F, 0x95, 0x08, 0x96, 0x30, 0xF0, -0x20, 0x6C, 0x04, 0xF5, 0x00, 0x4C, 0xF1, 0x67, -0x80, 0x18, 0x16, 0x42, 0x51, 0x67, 0x0D, 0x97, +0x20, 0x6C, 0x24, 0xF5, 0x08, 0x4C, 0xF1, 0x67, +0x80, 0x18, 0x25, 0x42, 0x51, 0x67, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, 0x00, 0xF6, 0xA0, 0x35, 0x00, 0xF6, 0xC0, 0x36, @@ -15199,21 +14891,21 @@ u8 array_mp_8822c_fw_ap[] = { 0x05, 0xD5, 0x06, 0xD6, 0x07, 0xD7, 0x5D, 0x67, 0x40, 0xF0, 0x48, 0x82, 0x7D, 0x67, 0x24, 0x67, 0x08, 0xD2, 0x40, 0xF0, 0x6C, 0xA3, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF5, 0x50, 0x9A, 0x04, 0xD3, +0x20, 0x6A, 0x02, 0xF6, 0x5C, 0x9A, 0x04, 0xD3, 0x64, 0x9C, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0xC4, 0xF4, -0x0C, 0x4C, 0xE2, 0xF3, 0x00, 0x4D, 0x80, 0x18, -0x16, 0x42, 0x20, 0xF0, 0x4F, 0xA1, 0x0E, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x50, 0x9A, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0xE4, 0xF4, +0x14, 0x4C, 0xE2, 0xF3, 0x00, 0x4D, 0x80, 0x18, +0x25, 0x42, 0x20, 0xF0, 0x4F, 0xA1, 0x0E, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, 0x5C, 0x9A, 0x64, 0x99, 0x6C, 0xEA, 0x5F, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x24, 0xF5, 0x00, 0x4C, 0x80, 0x18, -0x16, 0x42, 0x58, 0x10, 0x04, 0x92, 0x40, 0x5A, -0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, -0x70, 0x9A, 0x44, 0x99, 0x4C, 0xEB, 0x00, 0x6A, -0x4E, 0x23, 0x30, 0xF0, 0x20, 0x6C, 0x24, 0xF5, -0x1C, 0x4C, 0x80, 0x18, 0x16, 0x42, 0x00, 0x6A, +0x20, 0x6C, 0x44, 0xF5, 0x08, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x58, 0x10, 0x04, 0x92, 0x40, 0x5A, +0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, +0x7C, 0x9A, 0x44, 0x99, 0x4C, 0xEB, 0x00, 0x6A, +0x4E, 0x23, 0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF5, +0x04, 0x4C, 0x80, 0x18, 0x25, 0x42, 0x00, 0x6A, 0x46, 0x10, 0x83, 0xF4, 0x10, 0x68, 0x90, 0x67, -0x10, 0xF0, 0x00, 0x6D, 0x80, 0x18, 0xA1, 0x16, +0x10, 0xF0, 0x00, 0x6D, 0x80, 0x18, 0xA5, 0x19, 0x09, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x90, 0x67, 0x10, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x06, 0x90, 0x05, 0x93, @@ -15225,30 +14917,30 @@ u8 array_mp_8822c_fw_ap[] = { 0xFF, 0xF7, 0x1F, 0x6B, 0xD0, 0x67, 0x4C, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x07, 0xF2, 0x00, 0x4C, 0x6C, 0xEC, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x50, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, 0x5C, 0x9A, 0x64, 0x99, 0x6C, 0xEA, 0x0B, 0x22, 0x04, 0x95, -0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF5, 0x10, 0x4C, +0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF5, 0x18, 0x4C, 0xC5, 0x67, 0x07, 0xF2, 0x00, 0x4E, 0xF0, 0x67, -0x80, 0x18, 0x16, 0x42, 0x01, 0x6A, 0x0D, 0x97, +0x80, 0x18, 0x25, 0x42, 0x01, 0x6A, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x12, 0xD6, 0x13, 0xD7, -0xE2, 0xF5, 0x50, 0x9A, 0x64, 0x9C, 0xFF, 0x69, +0x02, 0xF6, 0x5C, 0x9A, 0x64, 0x9C, 0xFF, 0x69, 0x04, 0x67, 0x6C, 0xEA, 0xAC, 0xE9, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, -0xC4, 0xF4, 0x0C, 0x4C, 0x02, 0xF4, 0x04, 0x4D, -0x80, 0x18, 0x16, 0x42, 0x20, 0xF0, 0x4F, 0xA0, -0x0E, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, -0x50, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x7E, 0x22, -0x30, 0xF0, 0x20, 0x6C, 0x24, 0xF5, 0x00, 0x4C, -0x80, 0x18, 0x16, 0x42, 0x77, 0x10, 0x12, 0x92, +0xE4, 0xF4, 0x14, 0x4C, 0x02, 0xF4, 0x04, 0x4D, +0x80, 0x18, 0x25, 0x42, 0x20, 0xF0, 0x4F, 0xA0, +0x0E, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, +0x5C, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x7E, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF5, 0x08, 0x4C, +0x80, 0x18, 0x25, 0x42, 0x77, 0x10, 0x12, 0x92, 0x02, 0x5A, 0x11, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF5, 0x70, 0x9A, 0x44, 0x98, 0x4C, 0xEB, +0x02, 0xF6, 0x7C, 0x9A, 0x44, 0x98, 0x4C, 0xEB, 0x00, 0x6A, 0x6D, 0x23, 0x12, 0x95, 0x30, 0xF0, -0x20, 0x6C, 0xC4, 0xF4, 0x18, 0x4C, 0x80, 0x18, -0x16, 0x42, 0x00, 0x6A, 0x64, 0x10, 0x83, 0xF4, +0x20, 0x6C, 0x04, 0xF5, 0x00, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x00, 0x6A, 0x64, 0x10, 0x83, 0xF4, 0x10, 0x6C, 0x10, 0xF0, 0x00, 0x6D, 0x80, 0x18, -0xA1, 0x16, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0x19, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x83, 0xF4, 0x10, 0x6C, 0x10, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x13, 0x93, 0x0B, 0x73, 0x27, 0x61, 0x12, 0x93, @@ -15256,36 +14948,36 @@ u8 array_mp_8822c_fw_ap[] = { 0x00, 0x4A, 0x09, 0xD2, 0x68, 0x32, 0x06, 0x03, 0x4D, 0xE3, 0x0A, 0xD3, 0x84, 0xAB, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x9A, 0x63, 0xF1, 0xB0, 0x9B, 0xD1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, -0x50, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x32, 0x22, -0x0A, 0x92, 0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF5, -0x10, 0x4C, 0xE2, 0x9A, 0x12, 0x95, 0x04, 0xD1, +0x44, 0x9A, 0xA3, 0xF1, 0xA4, 0x9B, 0xD1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, +0x5C, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x32, 0x22, +0x0A, 0x92, 0x30, 0xF0, 0x20, 0x6C, 0x84, 0xF5, +0x18, 0x4C, 0xE2, 0x9A, 0x12, 0x95, 0x04, 0xD1, 0x0B, 0x6E, 0x26, 0x10, 0x12, 0x93, 0xE3, 0xF0, 0x08, 0x6A, 0x06, 0xD2, 0x05, 0xF1, 0x00, 0x4A, 0x07, 0xD2, 0x68, 0x32, 0x06, 0x03, 0x4D, 0xE3, 0x0B, 0xD3, 0x80, 0xAB, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, -0x63, 0xF1, 0xB4, 0x9B, 0xD1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x50, 0x9A, +0xA3, 0xF1, 0xA8, 0x9B, 0xD1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, 0x5C, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x0B, 0x22, 0x0B, 0x92, 0x12, 0x95, 0x13, 0x96, 0x30, 0xF0, 0x20, 0x6C, -0xE0, 0x9A, 0x64, 0xF5, 0x10, 0x4C, 0x04, 0xD1, -0x80, 0x18, 0x16, 0x42, 0x01, 0x6A, 0x0F, 0x97, +0xE0, 0x9A, 0x84, 0xF5, 0x18, 0x4C, 0x04, 0xD1, +0x80, 0x18, 0x25, 0x42, 0x01, 0x6A, 0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, 0x0C, 0xD4, 0x25, 0x67, 0xA0, 0xA5, 0x00, 0x6E, -0x0B, 0x6F, 0x80, 0x18, 0xD2, 0x56, 0x0C, 0x94, +0x0B, 0x6F, 0x80, 0x18, 0x58, 0x55, 0x0C, 0x94, 0xA1, 0xA1, 0x01, 0x6E, 0x0B, 0x6F, 0x80, 0x18, -0xD2, 0x56, 0x0C, 0x94, 0xA2, 0xA1, 0x00, 0x6E, -0x0C, 0x6F, 0x80, 0x18, 0xD2, 0x56, 0x0C, 0x94, +0x58, 0x55, 0x0C, 0x94, 0xA2, 0xA1, 0x00, 0x6E, +0x0C, 0x6F, 0x80, 0x18, 0x58, 0x55, 0x0C, 0x94, 0xA3, 0xA1, 0x01, 0x6E, 0x0C, 0x6F, 0x80, 0x18, -0xD2, 0x56, 0xFD, 0x6A, 0x00, 0x6B, 0x11, 0x67, +0x58, 0x55, 0xFD, 0x6A, 0x00, 0x6B, 0x11, 0x67, 0x06, 0xD2, 0x07, 0xD3, 0x07, 0x93, 0x03, 0x6A, 0x6C, 0xEA, 0x03, 0x72, 0x0A, 0x61, 0x44, 0x80, 0xA1, 0x80, 0xC2, 0x80, 0xE3, 0x80, 0x0C, 0x94, 0x04, 0xD2, 0x06, 0x92, 0x05, 0xD2, 0x80, 0x18, -0x84, 0x56, 0x06, 0x92, 0x07, 0x93, 0x01, 0x48, +0x0A, 0x55, 0x06, 0x92, 0x07, 0x93, 0x01, 0x48, 0x01, 0x4A, 0x06, 0xD2, 0x01, 0x4B, 0x07, 0xD3, 0x06, 0x93, 0xFF, 0x6A, 0x4C, 0xEB, 0x07, 0x92, 0x06, 0xD3, 0x1C, 0x72, 0xE3, 0x61, 0x11, 0x67, @@ -15293,65 +14985,65 @@ u8 array_mp_8822c_fw_ap[] = { 0x03, 0x72, 0x0D, 0x61, 0x20, 0xF0, 0xAD, 0x80, 0x20, 0xF0, 0xCE, 0x80, 0x20, 0xF0, 0xEF, 0x80, 0x20, 0xF0, 0x50, 0x80, 0x0C, 0x94, 0x05, 0xD1, -0x04, 0xD2, 0x80, 0x18, 0x84, 0x56, 0x01, 0x49, +0x04, 0xD2, 0x80, 0x18, 0x0A, 0x55, 0x01, 0x49, 0x3D, 0x71, 0x01, 0x48, 0xEA, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x0C, 0xD4, 0x0D, 0xD5, -0x0F, 0xD7, 0xE2, 0xF5, 0x50, 0x9A, 0x64, 0x9C, +0x0F, 0xD7, 0x02, 0xF6, 0x5C, 0x9A, 0x64, 0x9C, 0x06, 0x67, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0xC4, 0xF4, -0x0C, 0x4C, 0x42, 0xF4, 0x08, 0x4D, 0x80, 0x18, -0x16, 0x42, 0x07, 0xF4, 0x00, 0x6A, 0x06, 0xD2, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0xE4, 0xF4, +0x14, 0x4C, 0x42, 0xF4, 0x08, 0x4D, 0x80, 0x18, +0x25, 0x42, 0x07, 0xF4, 0x00, 0x6A, 0x06, 0xD2, 0x02, 0xF0, 0x00, 0x4A, 0x07, 0xD2, 0xFF, 0x69, 0x30, 0xF0, 0x20, 0x6A, 0x0D, 0x93, 0x0C, 0xE9, -0xE2, 0xF6, 0x1C, 0x9A, 0x0F, 0x92, 0x28, 0x34, +0x22, 0xF7, 0x00, 0x9A, 0x0F, 0x92, 0x28, 0x34, 0x10, 0x96, 0x4C, 0xE8, 0x68, 0x32, 0x7D, 0x67, 0x49, 0xE3, 0x46, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, 0xB0, 0x67, 0x51, 0xE4, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x6C, 0xEC, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, 0x40, 0xEA, 0x0C, 0x94, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF5, 0x50, 0x9A, 0x64, 0x9C, +0x20, 0x6A, 0x02, 0xF6, 0x5C, 0x9A, 0x64, 0x9C, 0x6C, 0xEA, 0x0A, 0x22, 0x0D, 0x95, 0x10, 0x97, -0x30, 0xF0, 0x20, 0x6C, 0x84, 0xF5, 0x14, 0x4C, -0xD1, 0x67, 0x04, 0xD0, 0x80, 0x18, 0x16, 0x42, +0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF5, 0x1C, 0x4C, +0xD1, 0x67, 0x04, 0xD0, 0x80, 0x18, 0x25, 0x42, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x01, 0x6A, 0x06, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x0F, 0xD5, 0x11, 0xD7, 0xE2, 0xF5, 0x50, 0x9A, +0x0F, 0xD5, 0x11, 0xD7, 0x02, 0xF6, 0x5C, 0x9A, 0x64, 0x9C, 0x04, 0x67, 0x26, 0x67, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, -0x20, 0x6D, 0xC4, 0xF4, 0x0C, 0x4C, 0x62, 0xF4, -0x10, 0x4D, 0x80, 0x18, 0x16, 0x42, 0x0F, 0x92, +0x20, 0x6D, 0xE4, 0xF4, 0x14, 0x4C, 0x62, 0xF4, +0x10, 0x4D, 0x80, 0x18, 0x25, 0x42, 0x0F, 0x92, 0x02, 0x5A, 0x16, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF5, 0x50, 0x9A, 0x64, 0x98, 0x6C, 0xEA, +0x02, 0xF6, 0x5C, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x04, 0x2A, 0x01, 0x6B, 0x6B, 0xEB, 0x08, 0xD3, 0x39, 0x10, 0x0F, 0x95, 0x30, 0xF0, 0x20, 0x6C, -0xC4, 0xF4, 0x18, 0x4C, 0x80, 0x18, 0x16, 0x42, +0x04, 0xF5, 0x00, 0x4C, 0x80, 0x18, 0x25, 0x42, 0x01, 0x6A, 0x4B, 0xEA, 0x08, 0xD2, 0x2E, 0x10, 0x07, 0xF4, 0x00, 0x6A, 0x06, 0xD2, 0xFF, 0x6B, 0x02, 0xF0, 0x00, 0x4A, 0x2C, 0xEB, 0x07, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, 0x3C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, 0x20, 0x9A, 0x09, 0xD3, 0x11, 0x92, 0x68, 0x34, 0x0F, 0x93, 0x4C, 0xE9, 0xB1, 0x67, 0x68, 0x32, 0x7D, 0x67, 0x49, 0xE3, 0x46, 0x9A, 0x51, 0xE4, 0xFF, 0xF7, -0x1F, 0x6A, 0x4C, 0xEC, 0x80, 0x18, 0xA1, 0x16, -0x08, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, -0x50, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x0A, 0x22, +0x1F, 0x6A, 0x4C, 0xEC, 0x80, 0x18, 0xA5, 0x19, +0x08, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, +0x5C, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x0A, 0x22, 0x0F, 0x95, 0x09, 0x96, 0x08, 0x97, 0x30, 0xF0, -0x20, 0x6C, 0xA4, 0xF5, 0x1C, 0x4C, 0x04, 0xD1, -0x80, 0x18, 0x16, 0x42, 0x08, 0x92, 0x0D, 0x97, +0x20, 0x6C, 0xE4, 0xF5, 0x04, 0x4C, 0x04, 0xD1, +0x80, 0x18, 0x25, 0x42, 0x08, 0x92, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x20, 0xF0, 0x44, 0xA4, 0x25, 0x67, 0x18, 0x6E, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, -0xFC, 0x9A, 0x00, 0x6D, 0x04, 0x67, 0x80, 0x18, -0x7F, 0x57, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF5, 0x50, 0x9A, 0x64, 0x98, 0x6C, 0xEA, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, +0xE0, 0x9A, 0x00, 0x6D, 0x04, 0x67, 0x80, 0x18, +0x05, 0x56, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF6, 0x5C, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x0B, 0x22, 0x20, 0xF0, 0xAA, 0xA0, 0x20, 0xF0, 0xCD, 0xA0, 0x04, 0x97, 0x30, 0xF0, 0x20, 0x6C, -0xE4, 0xF5, 0x00, 0x4C, 0x80, 0x18, 0x16, 0x42, +0x04, 0xF6, 0x08, 0x4C, 0x80, 0x18, 0x25, 0x42, 0x04, 0x93, 0xFF, 0x6A, 0xEB, 0x4B, 0x4C, 0xEB, 0x02, 0x5B, 0x50, 0x60, 0x05, 0x93, 0x6C, 0xEA, 0x0F, 0x5A, 0x58, 0x67, 0x01, 0x5A, 0x58, 0x67, @@ -15377,53 +15069,53 @@ u8 array_mp_8822c_fw_ap[] = { 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x10, 0xD6, 0x11, 0xD7, -0xE2, 0xF5, 0x50, 0x9A, 0x64, 0x9C, 0x04, 0x67, +0x02, 0xF6, 0x5C, 0x9A, 0x64, 0x9C, 0x04, 0x67, 0x25, 0x67, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0xC4, 0xF4, -0x0C, 0x4C, 0x22, 0xF4, 0x08, 0x4D, 0x80, 0x18, -0x16, 0x42, 0x02, 0x59, 0x0F, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF5, 0x50, 0x9A, 0x64, 0x98, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0xE4, 0xF4, +0x14, 0x4C, 0x22, 0xF4, 0x08, 0x4D, 0x80, 0x18, +0x25, 0x42, 0x02, 0x59, 0x0F, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x02, 0xF6, 0x5C, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x6D, 0x22, 0x30, 0xF0, 0x20, 0x6C, -0x24, 0xF6, 0x00, 0x4C, 0xB1, 0x67, 0x80, 0x18, -0x16, 0x42, 0x65, 0x10, 0x10, 0x92, 0x09, 0x22, +0x44, 0xF6, 0x08, 0x4C, 0xB1, 0x67, 0x80, 0x18, +0x25, 0x42, 0x65, 0x10, 0x10, 0x92, 0x09, 0x22, 0x12, 0x94, 0x11, 0x97, 0xB1, 0x67, 0x04, 0xD4, -0xC2, 0x67, 0x90, 0x67, 0x80, 0x18, 0x54, 0x57, -0x5B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, -0xFC, 0x9A, 0x11, 0x92, 0x00, 0x6C, 0x08, 0xD4, +0xC2, 0x67, 0x90, 0x67, 0x80, 0x18, 0xDA, 0x55, +0x5B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, +0xE0, 0x9A, 0x11, 0x92, 0x00, 0x6C, 0x08, 0xD4, 0xEC, 0xEA, 0xEA, 0xEA, 0x09, 0xD2, 0x1C, 0x60, 0x90, 0x67, 0xB1, 0x67, 0x00, 0x6E, 0x80, 0x18, -0x7F, 0x57, 0x08, 0xD2, 0x01, 0x4A, 0x0E, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x50, 0x9A, +0x05, 0x56, 0x08, 0xD2, 0x01, 0x4A, 0x0E, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, 0x5C, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x40, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x24, 0xF6, 0x14, 0x4C, 0x80, 0x18, -0x16, 0x42, 0x39, 0x10, 0x09, 0x94, 0x08, 0x95, -0x12, 0x96, 0x80, 0x18, 0xB0, 0x52, 0x12, 0xD2, +0x20, 0x6C, 0x44, 0xF6, 0x1C, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x39, 0x10, 0x09, 0x94, 0x08, 0x95, +0x12, 0x96, 0x80, 0x18, 0x36, 0x51, 0x12, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x9A, 0x03, 0xF0, 0x08, 0x6A, 0x06, 0xD2, 0x05, 0xF1, 0x00, 0x4A, 0x07, 0xD2, 0x9D, 0x67, 0x28, 0x32, 0x49, 0xE4, 0x8C, 0xAA, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF6, 0xDC, 0x9A, 0x12, 0x92, 0x01, 0x6D, +0x22, 0xF7, 0xC0, 0x9A, 0x12, 0x92, 0x01, 0x6D, 0xAB, 0xED, 0x4C, 0xEE, 0x40, 0xEB, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF5, 0x50, 0x9A, 0x64, 0x98, +0x20, 0x6A, 0x02, 0xF6, 0x5C, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x0D, 0x22, 0x08, 0x94, 0x09, 0x92, 0x12, 0x97, 0x04, 0xD4, 0x30, 0xF0, 0x20, 0x6C, -0x44, 0xF6, 0x10, 0x4C, 0xB1, 0x67, 0x00, 0x6E, -0x05, 0xD2, 0x80, 0x18, 0x16, 0x42, 0x30, 0xF0, +0x64, 0xF6, 0x18, 0x4C, 0xB1, 0x67, 0x00, 0x6E, +0x05, 0xD2, 0x80, 0x18, 0x25, 0x42, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0D, 0x6C, 0x40, 0xEA, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x00, 0x6D, 0x0A, 0xD4, -0x80, 0x18, 0x97, 0x52, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF0, 0x24, 0x9A, 0x30, 0xF0, 0x20, 0x68, -0x09, 0xF4, 0x18, 0x48, 0x00, 0x6A, 0x90, 0x67, +0x80, 0x18, 0x1D, 0x51, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF0, 0x38, 0x9A, 0x30, 0xF0, 0x20, 0x68, +0x49, 0xF4, 0x08, 0x48, 0x00, 0x6A, 0x90, 0x67, 0xF1, 0x67, 0xA2, 0x67, 0xBC, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0xF2, 0x57, 0x90, 0x67, 0xF1, 0x67, +0x80, 0x18, 0x78, 0x56, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6A, 0x00, 0x6D, 0xBC, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0xF2, 0x57, 0x00, 0x6A, 0xF1, 0x67, +0x80, 0x18, 0x78, 0x56, 0x00, 0x6A, 0xF1, 0x67, 0x90, 0x67, 0xBC, 0x6E, 0xA2, 0x67, 0x04, 0xD2, -0x80, 0x18, 0xF2, 0x57, 0x0A, 0x94, 0x01, 0x6D, -0x80, 0x18, 0x97, 0x52, 0x09, 0x97, 0x08, 0x91, +0x80, 0x18, 0x78, 0x56, 0x0A, 0x94, 0x01, 0x6D, +0x80, 0x18, 0x1D, 0x51, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0x25, 0x67, 0x0C, 0xE9, 0x29, 0x59, @@ -15433,88 +15125,88 @@ u8 array_mp_8822c_fw_ap[] = { 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF4, 0x1C, 0x6C, 0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, -0x30, 0xF0, 0x20, 0x6D, 0x84, 0xF6, 0x08, 0x4C, +0x30, 0xF0, 0x20, 0x6D, 0xA4, 0xF6, 0x10, 0x4C, 0x82, 0xF4, 0x10, 0x4D, 0xD1, 0x67, 0xF0, 0x67, -0x80, 0x18, 0x16, 0x42, 0x00, 0x6A, 0xE4, 0x17, +0x80, 0x18, 0x25, 0x42, 0x00, 0x6A, 0xE4, 0x17, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, 0xFF, 0x6D, 0x83, 0xF4, 0x10, 0x6C, 0x01, 0x4D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF5, 0x18, 0x9A, 0x00, 0x6C, 0x01, 0x6E, -0xB0, 0x67, 0x80, 0x18, 0x2E, 0x17, 0x00, 0x6C, -0xB0, 0x67, 0xC4, 0x67, 0x80, 0x18, 0x2E, 0x17, +0xE2, 0xF5, 0x10, 0x9A, 0x00, 0x6C, 0x01, 0x6E, +0xB0, 0x67, 0x80, 0x18, 0x32, 0x1A, 0x00, 0x6C, +0xB0, 0x67, 0xC4, 0x67, 0x80, 0x18, 0x32, 0x1A, 0xB0, 0x67, 0x00, 0x6C, 0x01, 0x6E, 0x80, 0x18, -0x2E, 0x17, 0xC0, 0xF3, 0x44, 0x99, 0xFF, 0x6D, +0x32, 0x1A, 0xC0, 0xF3, 0x44, 0x99, 0xFF, 0x6D, 0x83, 0xF4, 0x10, 0x6C, 0x01, 0x4D, 0x01, 0x6E, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x52, 0x9C, 0x40, 0xA2, 0x13, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x18, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x10, 0x9A, 0x00, 0x6C, 0x01, 0x6E, 0xB0, 0x67, 0x80, 0x18, -0x2E, 0x17, 0x00, 0x6C, 0xC4, 0x67, 0xB0, 0x67, -0x80, 0x18, 0x2E, 0x17, 0x00, 0x6C, 0xB0, 0x67, -0x01, 0x6E, 0x80, 0x18, 0x2E, 0x17, 0x05, 0x97, +0x32, 0x1A, 0x00, 0x6C, 0xC4, 0x67, 0xB0, 0x67, +0x80, 0x18, 0x32, 0x1A, 0x00, 0x6C, 0xB0, 0x67, +0x01, 0x6E, 0x80, 0x18, 0x32, 0x1A, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x09, 0xD5, 0xE2, 0xF5, -0x50, 0x9A, 0x64, 0x9C, 0x04, 0x67, 0x6C, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x09, 0xD5, 0x02, 0xF6, +0x5C, 0x9A, 0x64, 0x9C, 0x04, 0x67, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, -0x20, 0x6D, 0xC4, 0xF4, 0x0C, 0x4C, 0x22, 0xF3, -0x00, 0x4D, 0x80, 0x18, 0x16, 0x42, 0x90, 0x67, -0x80, 0x18, 0x96, 0x54, 0x52, 0x98, 0x40, 0xA2, +0x20, 0x6D, 0xE4, 0xF4, 0x14, 0x4C, 0x22, 0xF3, +0x00, 0x4D, 0x80, 0x18, 0x25, 0x42, 0x90, 0x67, +0x80, 0x18, 0x1C, 0x53, 0x52, 0x98, 0x40, 0xA2, 0x04, 0x22, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, -0x6A, 0x54, 0x20, 0xF0, 0x58, 0xA0, 0x04, 0x22, +0xF0, 0x52, 0x20, 0xF0, 0x58, 0xA0, 0x04, 0x22, 0x90, 0x67, 0xE0, 0xF3, 0x1F, 0x6D, 0x02, 0x10, 0x90, 0x67, 0x00, 0x6D, 0x30, 0xF0, 0x20, 0x69, -0x80, 0x18, 0x78, 0x54, 0xC0, 0xF3, 0x44, 0x99, +0x80, 0x18, 0xFE, 0x52, 0xC0, 0xF3, 0x44, 0x99, 0x03, 0x6D, 0xC5, 0x67, 0x03, 0xF0, 0x0C, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, -0x10, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF6, +0x1C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x99, 0x03, 0xF0, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x03, 0x6D, 0xC5, 0x67, 0x08, 0xF1, 0x0C, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF5, 0x10, 0x4B, 0xC0, 0xF3, +0x20, 0x6B, 0x02, 0xF6, 0x1C, 0x4B, 0xC0, 0xF3, 0x44, 0x99, 0xA0, 0x9B, 0x08, 0xF1, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x09, 0x92, 0x14, 0x2A, 0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF4, 0x1C, 0x6C, 0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF5, 0x10, 0x4B, 0x44, 0x98, +0x20, 0x6B, 0x02, 0xF6, 0x1C, 0x4B, 0x44, 0x98, 0x60, 0x9B, 0x6C, 0xEA, 0x2F, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0xC4, 0xF6, 0x08, 0x4C, 0x16, 0x10, +0x20, 0x6C, 0xE4, 0xF6, 0x10, 0x4C, 0x16, 0x10, 0x09, 0x92, 0x01, 0x72, 0x16, 0x61, 0xC0, 0xF3, 0x44, 0x99, 0x03, 0x6D, 0x23, 0xF4, 0x1C, 0x6C, 0xC5, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF5, 0x10, 0x4B, 0x44, 0x98, 0x60, 0x9B, +0x02, 0xF6, 0x1C, 0x4B, 0x44, 0x98, 0x60, 0x9B, 0x6C, 0xEA, 0x18, 0x22, 0x30, 0xF0, 0x20, 0x6C, -0xE4, 0xF6, 0x14, 0x4C, 0x80, 0x18, 0x16, 0x42, -0x11, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, -0x10, 0x4A, 0x40, 0x9A, 0x64, 0x98, 0x4C, 0xEB, +0x04, 0xF7, 0x1C, 0x4C, 0x80, 0x18, 0x25, 0x42, +0x11, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, +0x1C, 0x4A, 0x40, 0x9A, 0x64, 0x98, 0x4C, 0xEB, 0x00, 0x6A, 0x0C, 0x23, 0x30, 0xF0, 0x20, 0x6C, -0x24, 0xF7, 0x00, 0x4C, 0x80, 0x18, 0x16, 0x42, +0x44, 0xF7, 0x08, 0x4C, 0x80, 0x18, 0x25, 0x42, 0x00, 0x6A, 0x04, 0x10, 0x90, 0x67, 0x80, 0x18, -0x83, 0x58, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, +0x09, 0x57, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, 0x06, 0xD2, 0x10, 0xD6, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x50, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, 0x5C, 0x9A, 0x64, 0x9C, 0x04, 0x67, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, -0xC4, 0xF4, 0x0C, 0x4C, 0x42, 0xF3, 0x04, 0x4D, -0x80, 0x18, 0x16, 0x42, 0x20, 0xF0, 0x4F, 0xA0, -0x10, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, -0x70, 0x9A, 0x44, 0x98, 0x4C, 0xEB, 0x01, 0x6A, +0xE4, 0xF4, 0x14, 0x4C, 0x42, 0xF3, 0x04, 0x4D, +0x80, 0x18, 0x25, 0x42, 0x20, 0xF0, 0x4F, 0xA0, +0x10, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, +0x7C, 0x9A, 0x44, 0x98, 0x4C, 0xEB, 0x01, 0x6A, 0x40, 0xF2, 0x0D, 0x23, 0x30, 0xF0, 0x20, 0x6C, -0x24, 0xF7, 0x10, 0x4C, 0x80, 0x18, 0x16, 0x42, +0x44, 0xF7, 0x18, 0x4C, 0x80, 0x18, 0x25, 0x42, 0x43, 0x12, 0x10, 0x93, 0x07, 0x5B, 0x0B, 0x60, 0x01, 0x73, 0x03, 0x61, 0x06, 0x92, 0x03, 0x5A, 0x05, 0x10, 0x10, 0x93, 0x02, 0x73, 0x10, 0x61, 0x06, 0x92, 0x05, 0x5A, 0x0D, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF5, 0x50, 0x9A, 0x64, 0x98, +0x20, 0x6A, 0x02, 0xF6, 0x5C, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x20, 0xF2, 0x0F, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x44, 0xF7, 0x10, 0x4C, 0x0E, 0x12, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, 0xFC, 0x9A, +0x20, 0x6C, 0x64, 0xF7, 0x18, 0x4C, 0x0E, 0x12, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, 0xE0, 0x9A, 0x90, 0x67, 0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, -0x7F, 0x57, 0x06, 0xF0, 0x01, 0x6B, 0x6B, 0xEB, +0x05, 0x56, 0x06, 0xF0, 0x01, 0x6B, 0x6B, 0xEB, 0x09, 0xD2, 0x6C, 0xEA, 0x07, 0xD2, 0x10, 0x92, 0x07, 0x5A, 0x60, 0xF1, 0x0E, 0x60, 0x48, 0x33, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF3, 0x04, 0x4A, @@ -15527,8 +15219,8 @@ u8 array_mp_8822c_fw_ap[] = { 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, 0x14, 0x6C, 0x00, 0xF7, 0x00, 0x6D, 0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x99, 0xA1, 0xF1, 0x14, 0x6C, 0x63, 0xF1, -0xB8, 0x9B, 0x04, 0x6E, 0x4E, 0x10, 0x10, 0x92, +0x44, 0x99, 0xA1, 0xF1, 0x14, 0x6C, 0xA3, 0xF1, +0xAC, 0x9B, 0x04, 0x6E, 0x4E, 0x10, 0x10, 0x92, 0x06, 0x72, 0x25, 0x61, 0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0xF0, 0x10, 0x6C, 0xE7, 0xF7, 0x10, 0x6D, 0xA0, 0xF2, 0x0B, 0x6E, @@ -15537,8 +15229,8 @@ u8 array_mp_8822c_fw_ap[] = { 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, 0x14, 0x6C, 0x00, 0xF7, 0x00, 0x6D, 0x06, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x99, 0xA1, 0xF1, 0x14, 0x6C, 0x63, 0xF1, -0xB8, 0x9B, 0x05, 0x6E, 0x26, 0x10, 0x10, 0x93, +0x44, 0x99, 0xA1, 0xF1, 0x14, 0x6C, 0xA3, 0xF1, +0xAC, 0x9B, 0x05, 0x6E, 0x26, 0x10, 0x10, 0x93, 0x25, 0x2B, 0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0xF0, 0x10, 0x6C, 0xE7, 0xF7, 0x10, 0x6D, 0x80, 0xF1, 0x1B, 0x6E, 0x40, 0xEA, @@ -15547,17 +15239,17 @@ u8 array_mp_8822c_fw_ap[] = { 0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, 0x14, 0x6C, 0x00, 0xF7, 0x00, 0x6D, 0x07, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, -0x63, 0xF1, 0xB8, 0x9B, 0xA1, 0xF1, 0x14, 0x6C, +0xA3, 0xF1, 0xAC, 0x9B, 0xA1, 0xF1, 0x14, 0x6C, 0x06, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, 0x10, 0x6C, 0x0F, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x07, 0x93, 0x06, 0xF0, 0x00, 0x6A, 0xA1, 0xF4, 0x1C, 0x6C, 0x4D, 0xEB, 0x07, 0xD3, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF0, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0xC3, 0xF0, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x99, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF5, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0x22, 0xF6, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x99, 0xA3, 0xF2, 0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF6, 0xB8, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF6, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x99, 0xE3, 0xF2, 0x08, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xE3, 0xF2, 0x0C, 0x6C, 0x0F, 0x6D, 0x06, 0x6E, @@ -15565,8 +15257,8 @@ u8 array_mp_8822c_fw_ap[] = { 0x0C, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x53, 0x98, 0x18, 0x6B, 0x40, 0xA2, 0x08, 0xD3, 0xC0, 0xF0, 0x01, 0x2A, 0x90, 0x67, -0x05, 0x6D, 0x80, 0x18, 0x72, 0x53, 0x90, 0x67, -0x06, 0x6D, 0x80, 0x18, 0x81, 0x53, 0x18, 0x6A, +0x05, 0x6D, 0x80, 0x18, 0xF8, 0x51, 0x90, 0x67, +0x06, 0x6D, 0x80, 0x18, 0x07, 0x52, 0x18, 0x6A, 0xB6, 0x10, 0x06, 0x93, 0x01, 0x73, 0x09, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF2, 0x00, 0x6C, 0x10, 0x6D, 0x01, 0x6E, @@ -15581,20 +15273,20 @@ u8 array_mp_8822c_fw_ap[] = { 0x44, 0x99, 0x6D, 0xEE, 0x1F, 0xF7, 0x00, 0x6D, 0x40, 0xEA, 0x07, 0x93, 0x04, 0xF0, 0x00, 0x6A, 0xA1, 0xF4, 0x1C, 0x6C, 0x4D, 0xEB, 0x07, 0xD3, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0xB0, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, 0xB4, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF6, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x99, 0xA3, 0xF2, 0x1C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA2, 0xF6, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0x02, 0xF6, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x99, 0xE3, 0xF2, 0x08, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xE3, 0xF2, 0x0C, 0x6C, 0x0F, 0x6D, 0x08, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x81, 0xF0, 0x0C, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x53, 0x98, 0x10, 0x6B, 0x40, 0xA2, 0x08, 0xD3, 0x50, 0x2A, -0x90, 0x67, 0x04, 0x6D, 0x80, 0x18, 0x72, 0x53, -0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x81, 0x53, +0x90, 0x67, 0x04, 0x6D, 0x80, 0x18, 0xF8, 0x51, +0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x07, 0x52, 0x10, 0x6A, 0x45, 0x10, 0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, 0x10, 0x6C, 0x0F, 0x6D, 0x0A, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, @@ -15604,52 +15296,52 @@ u8 array_mp_8822c_fw_ap[] = { 0x6D, 0xEE, 0x1F, 0xF7, 0x00, 0x6D, 0x40, 0xEA, 0x07, 0x93, 0x02, 0xF0, 0x00, 0x6A, 0xA1, 0xF4, 0x1C, 0x6C, 0x4D, 0xEB, 0x07, 0xD3, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF0, 0xB0, 0x9B, 0xC0, 0xF3, +0x20, 0x6B, 0xC3, 0xF0, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x81, 0xF0, 0x0C, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, 0x06, 0x6E, 0x40, 0xEA, 0x08, 0x6A, 0x12, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0x98, -0xE2, 0xF5, 0x50, 0x9A, 0x6C, 0xEA, 0x00, 0x6B, +0x02, 0xF6, 0x5C, 0x9A, 0x6C, 0xEA, 0x00, 0x6B, 0x08, 0xD3, 0x0A, 0x22, 0x10, 0x95, 0x06, 0x96, -0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF7, 0x18, 0x4C, -0x80, 0x18, 0x16, 0x42, 0x00, 0x6A, 0x08, 0xD2, -0x30, 0xF0, 0x20, 0x69, 0x09, 0xF4, 0x18, 0x49, -0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x97, 0x52, +0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF7, 0x00, 0x4C, +0x80, 0x18, 0x25, 0x42, 0x00, 0x6A, 0x08, 0xD2, +0x30, 0xF0, 0x20, 0x69, 0x49, 0xF4, 0x08, 0x49, +0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x1D, 0x51, 0x01, 0x6B, 0x91, 0x67, 0x00, 0x6D, 0xEE, 0x6E, -0x04, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0xF2, 0x57, +0x04, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, 0x12, 0x6A, 0x91, 0x67, 0x00, 0x6D, 0x33, 0x6E, -0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, 0x1C, 0x4A, +0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, 0x00, 0x4A, 0x08, 0x93, 0xE0, 0x9A, 0x91, 0x67, 0x00, 0x6D, -0x3F, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xF2, 0x57, +0x3F, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, 0x00, 0x6B, 0xA3, 0x67, 0x91, 0x67, 0xEE, 0x6E, -0x04, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0xF2, 0x57, +0x04, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, 0x01, 0x6A, 0x91, 0x67, 0xA2, 0x67, 0xEE, 0x6E, -0x04, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, +0x04, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x12, 0x6B, 0x91, 0x67, 0x01, 0x6D, 0x33, 0x6E, -0x1F, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0xF2, 0x57, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF6, 0x1C, 0x4B, +0x1F, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, 0x00, 0x4B, 0xE0, 0x9B, 0x08, 0x92, 0x91, 0x67, 0x01, 0x6D, -0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, +0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x00, 0x6A, 0x91, 0x67, 0x01, 0x6D, 0xEE, 0x6E, -0x04, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xF2, 0x57, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, 0x1C, 0x4A, +0x04, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, 0x00, 0x4A, 0x07, 0x93, 0xE0, 0x9A, 0x91, 0x67, 0x00, 0x6D, -0x18, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xF2, 0x57, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, 0x1C, 0x4A, +0x18, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, 0x00, 0x4A, 0x07, 0x93, 0xE0, 0x9A, 0x91, 0x67, 0x01, 0x6D, -0x18, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xF2, 0x57, -0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x97, 0x52, +0x18, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x1D, 0x51, 0x09, 0x92, 0x01, 0x4A, 0x10, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF5, 0x50, 0x9A, 0x64, 0x98, +0x20, 0x6A, 0x02, 0xF6, 0x5C, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x20, 0x22, 0x30, 0xF0, 0x20, 0x6C, -0xA4, 0xF7, 0x00, 0x4C, 0x10, 0x95, 0x06, 0x96, -0x80, 0x18, 0x16, 0x42, 0x17, 0x10, 0x90, 0x67, -0x80, 0x18, 0xC0, 0x55, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF5, 0x50, 0x9A, 0x64, 0x98, 0x6C, 0xEA, +0xC4, 0xF7, 0x08, 0x4C, 0x10, 0x95, 0x06, 0x96, +0x80, 0x18, 0x25, 0x42, 0x17, 0x10, 0x90, 0x67, +0x80, 0x18, 0x46, 0x54, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF6, 0x5C, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x08, 0x22, 0x10, 0x95, 0x06, 0x96, 0x30, 0xF0, -0x20, 0x6C, 0xE4, 0xF7, 0x10, 0x4C, 0x80, 0x18, -0x16, 0x42, 0x90, 0x67, 0x80, 0x18, 0x83, 0x58, +0x20, 0x6C, 0x05, 0xF0, 0x18, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x90, 0x67, 0x80, 0x18, 0x09, 0x57, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, @@ -15658,61 +15350,61 @@ u8 array_mp_8822c_fw_ap[] = { 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0xC1, 0xF4, 0x00, 0x69, 0x91, 0x67, 0xE0, 0xF7, 0x1F, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF1, 0x1C, 0x4B, 0xA0, 0x9B, +0x20, 0x6B, 0xA3, 0xF1, 0x10, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0x49, 0x91, 0x67, 0xE0, 0xF7, 0x1F, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, -0x1C, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, +0x10, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x03, 0x6A, 0x2A, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0xC1, 0xF4, 0x00, 0x69, 0x91, 0x67, 0xE0, 0xF7, 0x1F, 0x6D, 0x00, 0xF4, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, -0x1C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, +0x10, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0x49, 0x91, 0x67, 0xE0, 0xF7, 0x1F, 0x6D, 0x00, 0xF4, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x1C, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0x10, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x09, 0x92, 0x6F, 0x42, 0x02, 0x5B, 0x46, 0x60, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF5, 0x10, 0x69, 0x91, 0x67, 0x00, 0xF3, 0x00, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, -0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, +0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x22, 0xF7, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x42, 0xF7, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x41, 0xF4, 0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, 0xA8, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x41, 0xF4, 0x14, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA2, 0xF6, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xC2, 0xF6, 0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF4, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0xBC, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x09, 0x96, 0xFD, 0xF2, 0x14, 0x49, 0x91, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, -0x02, 0xF7, 0xB8, 0x9B, 0x09, 0x96, 0x47, 0x10, +0x22, 0xF7, 0xBC, 0x9B, 0x09, 0x96, 0x47, 0x10, 0x03, 0x72, 0x46, 0x61, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF5, 0x10, 0x69, 0x91, 0x67, 0x00, 0xF3, 0x00, 0x6D, 0x01, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, -0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, +0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x22, 0xF7, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x42, 0xF7, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x41, 0xF4, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, 0xA8, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x41, 0xF4, 0x14, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA2, 0xF6, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xC2, 0xF6, 0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF4, 0x18, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0xBC, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xFD, 0xF2, 0x14, 0x49, 0x91, 0x67, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x02, 0xF7, -0xB8, 0x9B, 0x91, 0x67, 0x03, 0x6E, 0x40, 0xEA, -0x08, 0x94, 0x80, 0x18, 0x83, 0x58, 0x07, 0x97, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x22, 0xF7, +0xBC, 0x9B, 0x91, 0x67, 0x03, 0x6E, 0x40, 0xEA, +0x08, 0x94, 0x80, 0x18, 0x09, 0x57, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x03, 0x75, 0x24, 0x67, 0x53, 0x60, 0x01, 0x76, @@ -15735,95 +15427,95 @@ u8 array_mp_8822c_fw_ap[] = { 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF6, 0x0C, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0x00, 0xF4, 0x04, 0x6E, 0x40, 0xEA, 0x91, 0x67, 0x80, 0x18, -0x83, 0x58, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x09, 0x57, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x01, 0x76, 0xD0, 0x61, 0xC6, 0x17, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x01, 0x75, 0x08, 0xD4, 0x26, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, -0x20, 0x6B, 0x02, 0xF7, 0xB8, 0x9B, 0xC0, 0xF3, +0x20, 0x6B, 0x22, 0xF7, 0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x0C, 0x69, 0x91, 0x67, 0x20, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, -0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, +0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x63, 0xF1, -0xA4, 0x9B, 0x00, 0x6E, 0x46, 0x10, 0x02, 0x75, +0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x83, 0xF1, +0xB8, 0x9B, 0x00, 0x6E, 0x46, 0x10, 0x02, 0x75, 0x1D, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x68, 0x02, 0xF7, 0xB8, 0x9B, 0xC0, 0xF3, +0x20, 0x68, 0x22, 0xF7, 0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x04, 0x6C, 0x05, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x0C, 0x69, 0x91, 0x67, 0x20, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x91, 0x67, 0x63, 0xF1, 0xA0, 0x9B, +0x44, 0x98, 0x91, 0x67, 0x83, 0xF1, 0xB4, 0x9B, 0x00, 0x6E, 0x1E, 0x10, 0x03, 0x75, 0x26, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, -0x02, 0xF7, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x22, 0xF7, 0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x0C, 0x69, 0x91, 0x67, 0x20, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x63, 0xF1, 0xA0, 0x9B, 0x91, 0x67, 0x01, 0x6E, +0x83, 0xF1, 0xB4, 0x9B, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x63, 0xF1, 0xA4, 0x9B, 0x91, 0x67, +0x44, 0x98, 0x83, 0xF1, 0xB8, 0x9B, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x08, 0x94, 0x80, 0x18, -0x83, 0x58, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x09, 0x57, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x01, 0x6A, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x04, 0x67, 0x25, 0x67, 0x80, 0x18, 0xC7, 0x5A, -0xB1, 0x67, 0x90, 0x67, 0x80, 0x18, 0x1C, 0x5A, +0x04, 0x67, 0x25, 0x67, 0x80, 0x18, 0x4D, 0x59, +0xB1, 0x67, 0x90, 0x67, 0x80, 0x18, 0xA2, 0x58, 0x20, 0xF0, 0x2D, 0xC0, 0x90, 0x67, 0x80, 0x18, -0x83, 0x58, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x09, 0x57, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x01, 0x75, 0x04, 0x67, 0x0C, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF2, 0x04, 0x6C, -0x43, 0xF1, 0xBC, 0x9B, 0x08, 0x6E, 0x19, 0x10, +0x83, 0xF1, 0xB0, 0x9B, 0x08, 0x6E, 0x19, 0x10, 0x02, 0x75, 0x0C, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, -0x03, 0xF2, 0x04, 0x6C, 0x43, 0xF1, 0xBC, 0x9B, +0x03, 0xF2, 0x04, 0x6C, 0x83, 0xF1, 0xB0, 0x9B, 0x04, 0x6E, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, -0x43, 0xF1, 0xBC, 0x9B, 0x03, 0xF2, 0x04, 0x6C, +0x83, 0xF1, 0xB0, 0x9B, 0x03, 0xF2, 0x04, 0x6C, 0x0C, 0x6E, 0x40, 0xEA, 0x90, 0x67, 0x80, 0x18, -0x83, 0x58, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x09, 0x57, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x7D, 0x67, 0x04, 0x67, 0x47, 0x43, 0x0A, 0xD6, 0x20, 0xF0, 0xAC, 0xC0, 0x21, 0x4A, 0x60, 0xA2, 0x46, 0x67, 0xAD, 0xEA, 0x0B, 0xD7, 0x25, 0x67, 0x20, 0xF0, 0x6B, 0xC4, 0x20, 0xF0, 0x4A, 0xC4, 0xA7, 0x67, 0x80, 0x18, -0x11, 0x5B, 0x0A, 0x96, 0x90, 0x67, 0xB1, 0x67, -0x80, 0x18, 0x98, 0x5A, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF5, 0x50, 0x9A, 0x64, 0x98, 0x6C, 0xEA, +0x97, 0x59, 0x0A, 0x96, 0x90, 0x67, 0xB1, 0x67, +0x80, 0x18, 0x1E, 0x59, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF6, 0x5C, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x09, 0x22, 0x0A, 0x96, 0x0B, 0x97, 0x30, 0xF0, -0x20, 0x6C, 0x05, 0xF0, 0x1C, 0x4C, 0xB1, 0x67, -0x80, 0x18, 0x16, 0x42, 0x90, 0x67, 0x80, 0x18, -0x83, 0x58, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x20, 0x6C, 0x45, 0xF0, 0x04, 0x4C, 0xB1, 0x67, +0x80, 0x18, 0x25, 0x42, 0x90, 0x67, 0x80, 0x18, +0x09, 0x57, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, 0x0D, 0xD5, 0x0E, 0xD6, 0x20, 0xF0, 0x44, 0xA4, 0x04, 0x67, 0x27, 0x67, -0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, -0x50, 0x9A, 0x64, 0x9C, 0x6C, 0xEA, 0x0A, 0x22, +0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, +0x5C, 0x9A, 0x64, 0x9C, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, -0xC4, 0xF4, 0x0C, 0x4C, 0xA2, 0xF3, 0x04, 0x4D, -0x80, 0x18, 0x16, 0x42, 0x20, 0xF0, 0x4F, 0xA0, +0xE4, 0xF4, 0x14, 0x4C, 0xA2, 0xF3, 0x04, 0x4D, +0x80, 0x18, 0x25, 0x42, 0x20, 0xF0, 0x4F, 0xA0, 0x0B, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, -0x20, 0x6D, 0x45, 0xF0, 0x00, 0x4C, 0xA2, 0xF3, -0x04, 0x4D, 0x80, 0x18, 0x16, 0x42, 0x8D, 0x10, +0x20, 0x6D, 0x65, 0xF0, 0x08, 0x4C, 0xA2, 0xF3, +0x04, 0x4D, 0x80, 0x18, 0x25, 0x42, 0x8D, 0x10, 0x0E, 0x93, 0x04, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, -0x20, 0x6D, 0x45, 0xF0, 0x18, 0x4C, 0xA2, 0xF3, +0x20, 0x6D, 0x85, 0xF0, 0x00, 0x4C, 0xA2, 0xF3, 0x04, 0x4D, 0xC3, 0x67, 0x16, 0x10, 0x0D, 0x92, 0xFF, 0x72, 0x02, 0x61, 0xFF, 0x71, 0x15, 0x60, 0x0D, 0x93, 0x04, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x03, 0x2A, 0xA3, 0x67, 0x06, 0xD2, 0x10, 0x10, 0x0D, 0x96, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, -0x20, 0x6D, 0x65, 0xF0, 0x10, 0x4C, 0xA2, 0xF3, -0x04, 0x4D, 0x80, 0x18, 0x16, 0x42, 0x00, 0x6A, -0x65, 0x10, 0x01, 0x6B, 0x06, 0xD3, 0x03, 0x6D, -0x0E, 0x96, 0x90, 0x67, 0x80, 0x18, 0xC4, 0x52, -0x0E, 0x95, 0x90, 0x67, 0x80, 0x18, 0x06, 0x5B, +0x20, 0x6D, 0x85, 0xF0, 0x18, 0x4C, 0xA2, 0xF3, +0x04, 0x4D, 0x80, 0x18, 0x25, 0x42, 0x00, 0x6A, +0x65, 0x10, 0x01, 0x6B, 0x03, 0x6D, 0x06, 0xD3, +0x0E, 0x96, 0x90, 0x67, 0x80, 0x18, 0x4A, 0x51, +0x0E, 0x95, 0x90, 0x67, 0x80, 0x18, 0x8C, 0x59, 0x20, 0xF0, 0x4B, 0xA0, 0x03, 0x2A, 0x01, 0x6A, 0x20, 0xF0, 0x4B, 0xC0, 0x0D, 0x92, 0xFF, 0x4A, 0x02, 0x5A, 0x02, 0x60, 0x0D, 0x91, 0x0D, 0x10, @@ -15832,7 +15524,7 @@ u8 array_mp_8822c_fw_ap[] = { 0x05, 0x10, 0x06, 0x93, 0x05, 0x23, 0x20, 0xF0, 0x2B, 0xA0, 0x00, 0x6A, 0x06, 0xD2, 0x02, 0x10, 0x03, 0x6B, 0x06, 0xD3, 0x06, 0x95, 0x90, 0x67, -0xD1, 0x67, 0xF1, 0x67, 0x80, 0x18, 0x2B, 0x5B, +0xD1, 0x67, 0xF1, 0x67, 0x80, 0x18, 0xB1, 0x59, 0x07, 0x92, 0xFF, 0x6B, 0xEB, 0x4A, 0x6C, 0xEA, 0x02, 0x5A, 0x18, 0x60, 0x20, 0xF0, 0x4A, 0xA0, 0x01, 0x72, 0x06, 0x61, 0x0E, 0x92, 0x01, 0x72, @@ -15840,112 +15532,112 @@ u8 array_mp_8822c_fw_ap[] = { 0x20, 0xF0, 0x4A, 0xA0, 0x02, 0x72, 0x06, 0x61, 0x0E, 0x93, 0x02, 0x73, 0x03, 0x61, 0x90, 0x67, 0x02, 0x6D, 0x02, 0x10, 0x90, 0x67, 0x03, 0x6D, -0x80, 0x18, 0xB2, 0x57, 0x90, 0x67, 0x80, 0x18, -0xC0, 0x55, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, -0x50, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x0A, 0x22, +0x80, 0x18, 0x38, 0x56, 0x90, 0x67, 0x80, 0x18, +0x46, 0x54, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, +0x5C, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x0A, 0x22, 0x0E, 0x95, 0x0D, 0x96, 0x06, 0x97, 0x30, 0xF0, -0x20, 0x6C, 0x85, 0xF0, 0x08, 0x4C, 0x04, 0xD1, -0x80, 0x18, 0x16, 0x42, 0x90, 0x67, 0x80, 0x18, -0x83, 0x58, 0x01, 0x6A, 0x0B, 0x97, 0x0A, 0x91, +0x20, 0x6C, 0xA5, 0xF0, 0x10, 0x4C, 0x04, 0xD1, +0x80, 0x18, 0x25, 0x42, 0x90, 0x67, 0x80, 0x18, +0x09, 0x57, 0x01, 0x6A, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, 0x20, 0xF0, 0x44, 0xA4, 0xFF, 0x69, 0x04, 0x67, -0x0A, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, -0x50, 0x9A, 0x64, 0x9C, 0xAC, 0xE9, 0x6C, 0xEA, +0x0A, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, +0x5C, 0x9A, 0x64, 0x9C, 0xAC, 0xE9, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, -0x20, 0x6D, 0xC4, 0xF4, 0x0C, 0x4C, 0x62, 0xF3, -0x08, 0x4D, 0x80, 0x18, 0x16, 0x42, 0x20, 0xF0, +0x20, 0x6D, 0xE4, 0xF4, 0x14, 0x4C, 0x62, 0xF3, +0x08, 0x4D, 0x80, 0x18, 0x25, 0x42, 0x20, 0xF0, 0x4F, 0xA0, 0x0F, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF5, 0x50, 0x9A, 0x64, 0x98, 0x6C, 0xEA, +0x02, 0xF6, 0x5C, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x80, 0xF1, 0x1A, 0x22, 0x30, 0xF0, 0x20, 0x6C, -0xA5, 0xF0, 0x0C, 0x4C, 0x80, 0x18, 0x16, 0x42, +0xC5, 0xF0, 0x14, 0x4C, 0x80, 0x18, 0x25, 0x42, 0x93, 0x11, 0x48, 0x41, 0xF9, 0x4A, 0xFF, 0x6B, 0x6C, 0xEA, 0x15, 0x5A, 0x0C, 0x61, 0x48, 0x41, 0xC7, 0x4A, 0x6C, 0xEA, 0x23, 0x5A, 0x07, 0x61, 0x47, 0x41, 0x68, 0x4A, 0x6C, 0xEA, 0x04, 0x5A, 0x02, 0x61, 0xB2, 0x59, 0x10, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF5, 0x50, 0x9A, 0x64, 0x98, +0x20, 0x6A, 0x02, 0xF6, 0x5C, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x60, 0xF1, 0x1B, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0xC5, 0xF0, 0x00, 0x4C, 0xB1, 0x67, -0x80, 0x18, 0x16, 0x42, 0x73, 0x11, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF6, 0xFC, 0x9A, 0x90, 0x67, -0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, 0x7F, 0x57, +0x20, 0x6C, 0xE5, 0xF0, 0x08, 0x4C, 0xB1, 0x67, +0x80, 0x18, 0x25, 0x42, 0x73, 0x11, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF7, 0xE0, 0x9A, 0x90, 0x67, +0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, 0x05, 0x56, 0x09, 0xD2, 0x01, 0x4A, 0x0F, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF5, 0x50, 0x9A, 0x64, 0x98, +0x20, 0x6A, 0x02, 0xF6, 0x5C, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x40, 0xF1, 0x1F, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0xC5, 0xF0, 0x10, 0x4C, 0x80, 0x18, -0x16, 0x42, 0x58, 0x11, 0x20, 0xF0, 0x6B, 0xA0, +0x20, 0x6C, 0xE5, 0xF0, 0x18, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x58, 0x11, 0x20, 0xF0, 0x6B, 0xA0, 0x0F, 0x59, 0x58, 0x67, 0x0B, 0xD2, 0x06, 0xD3, 0x15, 0x2B, 0x21, 0xF0, 0x00, 0x6C, 0x0F, 0x6D, -0x80, 0x18, 0xA1, 0x16, 0xFF, 0x6B, 0x4C, 0xEB, +0x80, 0x18, 0xA5, 0x19, 0xFF, 0x6B, 0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, -0x20, 0xF0, 0x6B, 0xC0, 0xE5, 0xF0, 0x04, 0x4C, +0x20, 0xF0, 0x6B, 0xC0, 0x05, 0xF1, 0x0C, 0x4C, 0x62, 0xF3, 0x08, 0x4D, 0xC3, 0x67, 0x06, 0xD3, -0x80, 0x18, 0x16, 0x42, 0x20, 0xF0, 0x4A, 0xA0, +0x80, 0x18, 0x25, 0x42, 0x20, 0xF0, 0x4A, 0xA0, 0x08, 0xD2, 0x1B, 0x2A, 0x21, 0xF0, 0x00, 0x6C, -0xF0, 0x6D, 0x80, 0x18, 0xA1, 0x16, 0xC2, 0x67, +0xF0, 0x6D, 0x80, 0x18, 0xA5, 0x19, 0xC2, 0x67, 0x06, 0x92, 0xFF, 0x6B, 0x6C, 0xEE, 0xCD, 0xEA, 0x6C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0x20, 0xF0, 0xCC, 0xC0, 0x20, 0xF0, -0x4A, 0xC0, 0x05, 0xF1, 0x0C, 0x4C, 0x62, 0xF3, +0x4A, 0xC0, 0x25, 0xF1, 0x14, 0x4C, 0x62, 0xF3, 0x08, 0x4D, 0xE2, 0x67, 0x08, 0xD2, 0x80, 0x18, -0x16, 0x42, 0x20, 0xF0, 0x6D, 0xA0, 0x07, 0xD3, -0x18, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, -0xBC, 0x9A, 0x21, 0xF0, 0x04, 0x6C, 0x80, 0x18, -0xA1, 0x16, 0xFF, 0x6B, 0x4C, 0xEB, 0x30, 0xF0, +0x25, 0x42, 0x20, 0xF0, 0x6D, 0xA0, 0x07, 0xD3, +0x18, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, +0xB0, 0x9A, 0x21, 0xF0, 0x04, 0x6C, 0x80, 0x18, +0xA5, 0x19, 0xFF, 0x6B, 0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0x20, 0xF0, -0x6D, 0xC0, 0x45, 0xF1, 0x08, 0x4C, 0x62, 0xF3, +0x6D, 0xC0, 0x65, 0xF1, 0x10, 0x4C, 0x62, 0xF3, 0x08, 0x4D, 0xC3, 0x67, 0x07, 0xD3, 0x80, 0x18, -0x16, 0x42, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, -0x40, 0x9A, 0x09, 0x93, 0x4C, 0xEB, 0x0B, 0x92, +0x25, 0x42, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, +0x54, 0x9A, 0x09, 0x93, 0x4C, 0xEB, 0x0B, 0x92, 0x2D, 0xEB, 0x06, 0xD3, 0x16, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF1, 0x44, 0x9A, 0x91, 0x59, +0x20, 0x6A, 0xA3, 0xF1, 0x58, 0x9A, 0x91, 0x59, 0x4D, 0xEB, 0x06, 0xD3, 0x05, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF1, 0x48, 0x9A, 0x07, 0x10, +0x20, 0x6A, 0xA3, 0xF1, 0x5C, 0x9A, 0x07, 0x10, 0x50, 0x59, 0x07, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x22, 0xF7, 0x50, 0x9A, 0x06, 0x93, 0x4D, 0xEB, +0x42, 0xF7, 0x54, 0x9A, 0x06, 0x93, 0x4D, 0xEB, 0x06, 0xD3, 0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, -0x97, 0x52, 0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF4, -0x18, 0x4A, 0x82, 0x67, 0x09, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF6, 0x1C, 0x4A, 0x06, 0x93, +0x1D, 0x51, 0x30, 0xF0, 0x20, 0x6A, 0x49, 0xF4, +0x08, 0x4A, 0x82, 0x67, 0x09, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF7, 0x00, 0x4A, 0x06, 0x93, 0xE0, 0x9A, 0x00, 0x6D, 0x18, 0x6E, 0x04, 0xD3, -0x80, 0x18, 0xF2, 0x57, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF6, 0x1C, 0x4A, 0x06, 0x93, 0x09, 0x94, +0x80, 0x18, 0x78, 0x56, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF7, 0x00, 0x4A, 0x06, 0x93, 0x09, 0x94, 0xE0, 0x9A, 0x01, 0x6D, 0x18, 0x6E, 0x04, 0xD3, -0x80, 0x18, 0xF2, 0x57, 0x90, 0x67, 0x01, 0x6D, -0x80, 0x18, 0x97, 0x52, 0x0F, 0x59, 0x11, 0x60, +0x80, 0x18, 0x78, 0x56, 0x90, 0x67, 0x01, 0x6D, +0x80, 0x18, 0x1D, 0x51, 0x0F, 0x59, 0x11, 0x60, 0x50, 0x98, 0x40, 0xA2, 0x07, 0x2A, 0x90, 0x67, -0x05, 0x6D, 0x80, 0x18, 0x72, 0x53, 0x90, 0x67, +0x05, 0x6D, 0x80, 0x18, 0xF8, 0x51, 0x90, 0x67, 0x06, 0x6D, 0x1A, 0x10, 0x90, 0x67, 0x04, 0x6D, -0x80, 0x18, 0x72, 0x53, 0x90, 0x67, 0x00, 0x6D, +0x80, 0x18, 0xF8, 0x51, 0x90, 0x67, 0x00, 0x6D, 0x13, 0x10, 0x68, 0x41, 0xE4, 0x4B, 0xFF, 0x6A, 0x4C, 0xEB, 0x1D, 0x5B, 0x03, 0x60, 0x90, 0x67, 0x01, 0x6D, 0x0A, 0x10, 0x68, 0x41, 0xA4, 0x4B, 0x4C, 0xEB, 0x2D, 0x5B, 0x03, 0x60, 0x90, 0x67, 0x02, 0x6D, 0x02, 0x10, 0x90, 0x67, 0x03, 0x6D, -0x80, 0x18, 0x81, 0x53, 0x90, 0x67, 0xB1, 0x67, -0x80, 0x18, 0x9C, 0x53, 0x90, 0x67, 0xB1, 0x67, -0x80, 0x18, 0xE4, 0x53, 0x0B, 0x93, 0x2F, 0x23, -0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, 0x18, 0x53, -0x90, 0x67, 0x01, 0x6D, 0x00, 0x18, 0xB1, 0xC2, +0x80, 0x18, 0x07, 0x52, 0x90, 0x67, 0xB1, 0x67, +0x80, 0x18, 0x22, 0x52, 0x90, 0x67, 0xB1, 0x67, +0x80, 0x18, 0x6A, 0x52, 0x0B, 0x93, 0x2F, 0x23, +0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, 0x9E, 0x51, +0x90, 0x67, 0x01, 0x6D, 0x00, 0x18, 0xA3, 0xC1, 0x40, 0xF4, 0x14, 0x6C, 0x80, 0x6D, 0x00, 0x6E, -0x80, 0x18, 0x2E, 0x17, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0x18, 0x32, 0x1A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF1, 0xA8, 0x9B, 0x83, 0xF2, 0x00, 0x6C, +0xA3, 0xF1, 0xBC, 0x9B, 0x83, 0xF2, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF1, 0xAC, 0x9B, 0x83, 0xF4, 0x00, 0x6C, +0xC3, 0xF1, 0xA0, 0x9B, 0x83, 0xF4, 0x00, 0x6C, 0x0F, 0x6E, 0x40, 0xEA, 0x0A, 0x92, 0xFF, 0x6B, 0xEB, 0x4A, 0x6C, 0xEA, 0x02, 0x5A, 0x41, 0x60, 0x90, 0x67, 0x00, 0x6D, 0x3C, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF1, 0xA8, 0x9B, 0x83, 0xF2, +0x20, 0x6B, 0xA3, 0xF1, 0xBC, 0x9B, 0x83, 0xF2, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x01, 0x6E, 0x40, 0xF4, 0x14, 0x6C, 0x80, 0x6D, 0x80, 0x18, -0x2E, 0x17, 0x90, 0x67, 0x02, 0x6D, 0x00, 0x18, -0xB1, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, -0xAC, 0x9B, 0x83, 0xF4, 0x00, 0x6C, 0x22, 0x6E, +0x32, 0x1A, 0x90, 0x67, 0x02, 0x6D, 0x00, 0x18, +0xA3, 0xC1, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, +0xA0, 0x9B, 0x83, 0xF4, 0x00, 0x6C, 0x22, 0x6E, 0x40, 0xEA, 0x0A, 0x92, 0xFF, 0x6B, 0xEB, 0x4A, 0x6C, 0xEA, 0x02, 0x5A, 0x16, 0x60, 0x08, 0x92, 0x01, 0x72, 0x06, 0x61, 0x07, 0x93, 0x01, 0x73, @@ -15953,25 +15645,25 @@ u8 array_mp_8822c_fw_ap[] = { 0x08, 0x92, 0x02, 0x72, 0x06, 0x61, 0x07, 0x93, 0x02, 0x73, 0x03, 0x61, 0x90, 0x67, 0x02, 0x6D, 0x02, 0x10, 0x90, 0x67, 0x03, 0x6D, 0x80, 0x18, -0xB2, 0x57, 0x90, 0x67, 0x80, 0x18, 0xC0, 0x55, +0x38, 0x56, 0x90, 0x67, 0x80, 0x18, 0x46, 0x54, 0x52, 0x98, 0x40, 0xA2, 0x04, 0x22, 0x90, 0x67, -0xB1, 0x67, 0x80, 0x18, 0x4B, 0x54, 0x90, 0x67, -0x80, 0x18, 0x83, 0x58, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF5, 0x50, 0x9A, 0x64, 0x98, 0x6C, 0xEA, -0x07, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x65, 0xF1, -0x18, 0x4C, 0xB1, 0x67, 0x80, 0x18, 0x16, 0x42, +0xB1, 0x67, 0x80, 0x18, 0xD1, 0x52, 0x90, 0x67, +0x80, 0x18, 0x09, 0x57, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF6, 0x5C, 0x9A, 0x64, 0x98, 0x6C, 0xEA, +0x07, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xA5, 0xF1, +0x00, 0x4C, 0xB1, 0x67, 0x80, 0x18, 0x25, 0x42, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x26, 0x67, 0x4C, 0xED, 0x04, 0x67, -0x0B, 0xD7, 0x4C, 0xE9, 0x80, 0x18, 0xA4, 0x5B, +0x0B, 0xD7, 0x4C, 0xE9, 0x80, 0x18, 0x2A, 0x5A, 0x00, 0x6B, 0x09, 0x22, 0x0B, 0x96, 0x90, 0x67, -0xB1, 0x67, 0x80, 0x18, 0xE0, 0x58, 0x4B, 0xEB, +0xB1, 0x67, 0x80, 0x18, 0x66, 0x57, 0x4B, 0xEB, 0x4D, 0xEB, 0xC0, 0xF7, 0x62, 0x33, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x43, 0x67, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x40, 0xA4, 0x01, 0x72, 0x04, 0x61, 0x00, 0x18, -0x9D, 0xCA, 0x00, 0x18, 0x93, 0xCA, 0x05, 0x97, +0xA5, 0xC9, 0x00, 0x18, 0x9B, 0xC9, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x22, 0x6A, 0x7D, 0x67, 0x50, 0xC3, 0x01, 0x6A, 0x4F, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, @@ -15979,628 +15671,629 @@ u8 array_mp_8822c_fw_ap[] = { 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, 0x03, 0x5C, 0x58, 0x67, 0x6C, 0xEA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x89, 0xF2, 0x04, 0x4A, 0x67, 0x42, 0x09, 0x4B, +0xA9, 0xF2, 0x14, 0x4A, 0x67, 0x42, 0x09, 0x4B, 0x80, 0xA2, 0x02, 0x24, 0x01, 0x6A, 0x20, 0xE8, 0x01, 0x4A, 0x6A, 0xEA, 0xF9, 0x61, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF4, 0x4C, 0xA2, -0x0E, 0x72, 0x29, 0x61, 0x80, 0x18, 0xA9, 0x5C, -0x26, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x09, 0xF4, -0x18, 0x4C, 0x04, 0x05, 0x80, 0x18, 0xA4, 0x55, -0x5D, 0x67, 0x92, 0xA2, 0x80, 0x18, 0xA6, 0x5C, +0x30, 0xF0, 0x20, 0x6A, 0x29, 0xF4, 0x5C, 0xA2, +0x0E, 0x72, 0x29, 0x61, 0x80, 0x18, 0x2F, 0x5B, +0x26, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x49, 0xF4, +0x08, 0x4C, 0x04, 0x05, 0x80, 0x18, 0x2A, 0x54, +0x5D, 0x67, 0x92, 0xA2, 0x80, 0x18, 0x2C, 0x5B, 0x0A, 0x22, 0x5D, 0x67, 0x90, 0xA2, 0x80, 0x18, -0xA6, 0x5C, 0x05, 0x22, 0x5D, 0x67, 0x91, 0xA2, -0x80, 0x18, 0xA6, 0x5C, 0x10, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x42, 0xF7, 0x4C, 0x9A, 0x00, 0x6B, -0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, -0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, +0x2C, 0x5B, 0x05, 0x22, 0x5D, 0x67, 0x91, 0xA2, +0x80, 0x18, 0x2C, 0x5B, 0x10, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF7, 0x50, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, +0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, 0x50, 0x9A, 0x60, 0xDA, 0xF0, 0x17, 0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF4, -0x49, 0xA2, 0x01, 0x72, 0x4A, 0x61, 0x80, 0x18, -0xA9, 0x5C, 0x47, 0x22, 0x30, 0xF0, 0x20, 0x68, -0x09, 0xF4, 0x18, 0x48, 0x90, 0x67, 0x05, 0x05, -0x80, 0x18, 0xA4, 0x55, 0x7D, 0x67, 0x56, 0xA3, +0x08, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x29, 0xF4, +0x59, 0xA2, 0x01, 0x72, 0x4A, 0x61, 0x80, 0x18, +0x2F, 0x5B, 0x47, 0x22, 0x30, 0xF0, 0x20, 0x68, +0x49, 0xF4, 0x08, 0x48, 0x90, 0x67, 0x05, 0x05, +0x80, 0x18, 0x2A, 0x54, 0x7D, 0x67, 0x56, 0xA3, 0x01, 0x72, 0x0E, 0x60, 0x03, 0x72, 0x0C, 0x60, 0x54, 0xA3, 0x01, 0x72, 0x09, 0x60, 0x03, 0x72, 0x07, 0x60, 0x55, 0xA3, 0x01, 0x72, 0x04, 0x60, 0x02, 0x72, 0x02, 0x60, 0x03, 0x72, 0x10, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, 0x4C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, 0x50, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x62, 0xF7, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF7, 0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, 0x50, 0x9A, 0x60, 0xDA, 0xF0, 0x17, -0x90, 0x67, 0x04, 0x05, 0x80, 0x18, 0x92, 0x55, +0x90, 0x67, 0x04, 0x05, 0x80, 0x18, 0x18, 0x54, 0x7D, 0x67, 0x51, 0xA3, 0x01, 0x72, 0x05, 0x60, 0x03, 0x72, 0x03, 0x60, 0x50, 0xA3, 0x01, 0x72, -0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, -0x4C, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x62, 0xF7, 0x60, 0x9A, 0x30, 0xF0, +0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, +0x50, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF7, 0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, 0x50, 0x9A, 0x60, 0xDA, 0xF0, 0x17, 0x09, 0x97, 0x08, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x10, 0xF0, 0x23, 0x6B, 0x40, 0xF1, 0x08, 0x4A, -0xC0, 0xF5, 0x15, 0x4B, 0x61, 0xDA, 0x10, 0xF0, -0x23, 0x6B, 0x63, 0xF6, 0x0D, 0x4B, 0x62, 0xDA, -0x10, 0xF0, 0x23, 0x6B, 0x03, 0xF7, 0x05, 0x4B, -0x63, 0xDA, 0x10, 0xF0, 0x23, 0x6B, 0xC3, 0xF6, -0x11, 0x4B, 0x64, 0xDA, 0x10, 0xF0, 0x23, 0x6B, -0x83, 0xF6, 0x1D, 0x4B, 0x65, 0xDA, 0x10, 0xF0, -0x23, 0x6B, 0x23, 0xF6, 0x1D, 0x4B, 0x66, 0xDA, -0x10, 0xF0, 0x23, 0x6B, 0x03, 0xF6, 0x0D, 0x4B, -0x67, 0xDA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x89, 0xF2, 0x04, 0x4A, 0x67, 0x42, 0x09, 0x4B, -0x00, 0x6C, 0x80, 0xC2, 0x01, 0x4A, 0x6A, 0xEA, -0xFB, 0x61, 0x42, 0xF4, 0x10, 0x6A, 0x1F, 0xF7, -0x00, 0x6B, 0x4C, 0xEB, 0x02, 0xF0, 0x00, 0x73, -0x01, 0x60, 0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF5, 0x64, 0x9B, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0xC2, 0xF5, 0x68, 0x9B, 0x6D, 0xE2, -0x04, 0x4A, 0x00, 0x6C, 0x62, 0xF4, 0x00, 0x72, -0x80, 0xDB, 0xE9, 0x61, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF6, 0x40, 0x9A, 0x03, 0x6C, 0x60, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, 0x44, 0x9A, -0x00, 0xF5, 0x62, 0x33, 0x8C, 0xEB, 0x40, 0x9A, -0x01, 0x73, 0x42, 0x32, 0x52, 0x32, 0x8C, 0xEA, -0x05, 0x60, 0x0B, 0x2B, 0x02, 0x5A, 0x50, 0x6C, -0x0D, 0x60, 0x03, 0x10, 0x02, 0x5A, 0x0A, 0x60, -0x28, 0x6C, 0x87, 0xEA, 0xFF, 0x6A, 0x4C, 0xEC, -0x06, 0x10, 0x02, 0x5A, 0x28, 0x6C, 0x03, 0x60, -0x14, 0x6C, 0x01, 0x10, 0x50, 0x6C, 0x80, 0x18, -0xEE, 0x5F, 0x80, 0x18, 0x5F, 0x02, 0x30, 0xF0, -0x20, 0x6B, 0x62, 0xF6, 0x70, 0x9B, 0x00, 0x6A, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, -0x70, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x62, 0xF6, 0x6C, 0x9B, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6B, 0x42, 0xF6, 0x78, 0x9B, 0x40, 0xCB, -0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF6, 0x60, 0x9B, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF6, -0x68, 0x9B, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x10, 0xF0, 0x23, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x09, 0x4B, +0x40, 0xF1, 0x68, 0xDA, 0x10, 0xF0, 0x23, 0x6B, +0x40, 0xF1, 0x08, 0x4A, 0xC0, 0xF5, 0x15, 0x4B, +0x61, 0xDA, 0x10, 0xF0, 0x23, 0x6B, 0xA3, 0xF2, +0x0D, 0x4B, 0x62, 0xDA, 0x10, 0xF0, 0x23, 0x6B, +0x43, 0xF3, 0x05, 0x4B, 0x63, 0xDA, 0x10, 0xF0, +0x23, 0x6B, 0x03, 0xF3, 0x11, 0x4B, 0x64, 0xDA, +0x10, 0xF0, 0x23, 0x6B, 0xC3, 0xF2, 0x1D, 0x4B, +0x65, 0xDA, 0x10, 0xF0, 0x23, 0x6B, 0x63, 0xF2, +0x1D, 0x4B, 0x66, 0xDA, 0x10, 0xF0, 0x23, 0x6B, +0x43, 0xF2, 0x0D, 0x4B, 0x67, 0xDA, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF2, 0x14, 0x4A, +0x67, 0x42, 0x09, 0x4B, 0x00, 0x6C, 0x80, 0xC2, +0x01, 0x4A, 0x6A, 0xEA, 0xFB, 0x61, 0x42, 0xF4, +0x10, 0x6A, 0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x05, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, 0x68, 0x9B, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, +0x6C, 0x9B, 0x6D, 0xE2, 0x04, 0x4A, 0x00, 0x6C, +0x62, 0xF4, 0x00, 0x72, 0x80, 0xDB, 0xE9, 0x61, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF7, 0x44, 0x9A, +0x03, 0x6C, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF7, 0x48, 0x9A, 0x00, 0xF5, 0x62, 0x33, +0x8C, 0xEB, 0x40, 0x9A, 0x01, 0x73, 0x42, 0x32, +0x52, 0x32, 0x8C, 0xEA, 0x05, 0x60, 0x0B, 0x2B, +0x02, 0x5A, 0x50, 0x6C, 0x0D, 0x60, 0x03, 0x10, +0x02, 0x5A, 0x0A, 0x60, 0x28, 0x6C, 0x87, 0xEA, +0xFF, 0x6A, 0x4C, 0xEC, 0x06, 0x10, 0x02, 0x5A, +0x28, 0x6C, 0x03, 0x60, 0x14, 0x6C, 0x01, 0x10, +0x50, 0x6C, 0x80, 0x18, 0x77, 0x5E, 0x80, 0x18, +0x8B, 0x02, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF6, +0x78, 0x9B, 0x00, 0x6A, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x82, 0xF5, 0x70, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF6, 0x74, 0x9B, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF6, +0x60, 0x9B, 0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6B, +0x82, 0xF6, 0x68, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x02, 0xF7, 0x6C, 0x9B, 0x40, 0xDB, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x85, 0xF7, 0x08, 0x48, +0x00, 0x69, 0xA0, 0xF0, 0x24, 0xD8, 0x40, 0xF1, +0x37, 0xC0, 0x80, 0x18, 0x7D, 0x5B, 0xC0, 0xF0, +0x7C, 0xA0, 0x01, 0x6A, 0x6D, 0xEA, 0xC0, 0xF0, +0x5C, 0xC0, 0x80, 0x18, 0xEB, 0x5C, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF1, +0x34, 0xC0, 0xC9, 0xF2, 0x08, 0x4A, 0xC9, 0xF2, +0x18, 0x4C, 0x00, 0x6B, 0x60, 0xC2, 0x70, 0xC2, +0x01, 0x4A, 0x62, 0x67, 0x8E, 0xEB, 0xF9, 0x2B, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, +0x23, 0xF3, 0x7D, 0xC2, 0x23, 0xF3, 0x7E, 0xC2, +0x23, 0xF3, 0x7F, 0xC2, 0x23, 0xF3, 0x7C, 0xC2, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x45, 0xF7, 0x18, 0x48, 0x00, 0x69, 0xA0, 0xF0, -0x24, 0xD8, 0x40, 0xF1, 0x37, 0xC0, 0x80, 0x18, -0xF7, 0x5C, 0xC0, 0xF0, 0x7C, 0xA0, 0x01, 0x6A, -0x6D, 0xEA, 0xC0, 0xF0, 0x5C, 0xC0, 0x80, 0x18, -0x62, 0x5E, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6C, 0xE3, 0xF1, 0x34, 0xC0, 0x89, 0xF2, -0x18, 0x4A, 0xA9, 0xF2, 0x08, 0x4C, 0x00, 0x6B, -0x60, 0xC2, 0x70, 0xC2, 0x01, 0x4A, 0x62, 0x67, -0x8E, 0xEB, 0xF9, 0x2B, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0x23, 0xF3, 0x7D, 0xC2, -0x23, 0xF3, 0x7E, 0xC2, 0x23, 0xF3, 0x7F, 0xC2, -0x23, 0xF3, 0x7C, 0xC2, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x80, 0x18, 0x0B, 0x5D, -0x80, 0x18, 0x77, 0x5D, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x50, 0x9A, 0x40, 0xEA, 0x80, 0x18, -0x84, 0x40, 0x00, 0x18, 0x75, 0xD4, 0x80, 0x18, -0x2C, 0x00, 0x80, 0x18, 0x3F, 0x16, 0x00, 0x18, -0x1F, 0xCD, 0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, -0x23, 0x6C, 0x01, 0x6F, 0xE6, 0xF2, 0x11, 0x4C, -0x00, 0x6D, 0x64, 0x6E, 0xEB, 0xEF, 0x40, 0xEA, -0x00, 0x18, 0x3C, 0xCD, 0x07, 0x97, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x45, 0xF7, 0x18, 0x4A, 0x00, 0x6B, 0x40, 0xF6, -0x7A, 0xC2, 0x40, 0xF6, 0x7B, 0xC2, 0x40, 0xF1, -0x77, 0xC2, 0x40, 0xF1, 0x78, 0xC2, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0xA3, 0xF4, 0x71, 0xA2, 0x0F, 0x23, 0xA3, 0xF4, -0x70, 0xA2, 0x0C, 0x23, 0xA3, 0xF4, 0x76, 0xA2, -0x09, 0x23, 0xA3, 0xF4, 0x72, 0xA2, 0x06, 0x23, -0xA3, 0xF4, 0x74, 0xA2, 0x03, 0x23, 0xA3, 0xF4, -0x53, 0xA2, 0x1E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF6, 0x64, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, -0x10, 0xF0, 0x00, 0x6D, 0x40, 0xAB, 0xAB, 0xED, -0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xCB, -0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, 0x4C, 0x9A, -0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF1, 0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0x82, 0xF5, 0x50, 0x9A, 0x60, 0xDA, 0xF0, 0x17, -0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0xC0, 0xF3, 0x48, 0x98, 0x0A, 0xD4, 0x04, 0x05, -0xE0, 0xF1, 0x14, 0x6C, 0x40, 0xEA, 0x7D, 0x67, -0x50, 0xA3, 0x0A, 0x95, 0xE0, 0xF1, 0x15, 0x6C, -0x30, 0xF0, 0x20, 0x69, 0x40, 0xC5, 0xC0, 0xF3, -0x48, 0x98, 0x04, 0x05, 0x45, 0xF7, 0x18, 0x49, -0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x0A, 0x95, -0xE0, 0xF1, 0x16, 0x6C, 0x41, 0xC5, 0xC0, 0xF3, -0x48, 0x98, 0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, -0x50, 0xA3, 0x0A, 0x95, 0xE0, 0xF1, 0x17, 0x6C, -0x42, 0xC5, 0xC0, 0xF3, 0x48, 0x98, 0x04, 0x05, -0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x0A, 0x95, -0xE0, 0xF1, 0x18, 0x6C, 0x43, 0xC5, 0xC0, 0xF3, -0x48, 0x98, 0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, -0x50, 0xA3, 0x0A, 0x95, 0xE0, 0xF1, 0x19, 0x6C, -0x44, 0xC5, 0xC0, 0xF3, 0x48, 0x98, 0x04, 0x05, -0x40, 0xEA, 0xBD, 0x67, 0x90, 0xA5, 0xA3, 0xF4, -0x54, 0xA1, 0x0F, 0x6B, 0x8C, 0xEB, 0x50, 0x32, -0x6D, 0xEA, 0x0A, 0x93, 0x04, 0x05, 0xE0, 0xF1, -0x1B, 0x6C, 0x45, 0xC3, 0xC0, 0xF3, 0x48, 0x98, -0x40, 0xEA, 0xA3, 0xF4, 0x56, 0xA1, 0xA3, 0xF4, -0x71, 0xA1, 0x0A, 0x95, 0x4C, 0x32, 0x74, 0x33, -0x6D, 0xEA, 0xA3, 0xF4, 0x70, 0xA1, 0x6D, 0xEA, -0x46, 0xC5, 0xA3, 0xF4, 0x52, 0xA1, 0xA3, 0xF4, -0x73, 0xA1, 0x48, 0x32, 0x78, 0x33, 0x6D, 0xEA, -0x33, 0x6B, 0x6D, 0xEA, 0x47, 0xC5, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0x80, 0x18, 0x94, 0x5B, 0x80, 0x18, 0x00, 0x5C, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x50, 0x9A, +0x40, 0xEA, 0x80, 0x18, 0x93, 0x40, 0x00, 0x18, +0x7D, 0xD3, 0x80, 0x18, 0x58, 0x00, 0x80, 0x18, +0x43, 0x19, 0x00, 0x18, 0x27, 0xCC, 0x00, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x4C, 0x9A, 0x10, 0xF0, 0x23, 0x6C, 0x01, 0x6F, +0x05, 0xF7, 0x11, 0x4C, 0x00, 0x6D, 0x64, 0x6E, +0xEB, 0xEF, 0x40, 0xEA, 0x00, 0x18, 0x44, 0xCC, +0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x08, 0x4A, +0x00, 0x6B, 0x40, 0xF6, 0x7A, 0xC2, 0x40, 0xF6, +0x7B, 0xC2, 0x40, 0xF1, 0x77, 0xC2, 0x40, 0xF1, +0x78, 0xC2, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0xA3, 0xF4, 0x71, 0xA2, +0x0F, 0x23, 0xA3, 0xF4, 0x70, 0xA2, 0x0C, 0x23, +0xA3, 0xF4, 0x76, 0xA2, 0x09, 0x23, 0xA3, 0xF4, +0x72, 0xA2, 0x06, 0x23, 0xA3, 0xF4, 0x74, 0xA2, +0x03, 0x23, 0xA3, 0xF4, 0x53, 0xA2, 0x1E, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF7, 0x68, 0x9A, +0xFF, 0xF7, 0x1F, 0x6C, 0x10, 0xF0, 0x00, 0x6D, +0x40, 0xAB, 0xAB, 0xED, 0x8C, 0xEA, 0xAD, 0xEA, +0x8C, 0xEA, 0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF7, 0x50, 0x9A, 0x00, 0x6B, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x7C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, 0x50, 0x9A, +0x60, 0xDA, 0xF0, 0x17, 0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x48, 0x98, -0x24, 0x67, 0x04, 0x05, 0xE0, 0xF1, 0x10, 0x6C, -0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x04, 0x05, -0xE0, 0xF1, 0x11, 0x6C, 0x40, 0xC1, 0xC0, 0xF3, -0x48, 0x98, 0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, -0x04, 0x05, 0xE0, 0xF1, 0x12, 0x6C, 0x41, 0xC1, -0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, 0x7D, 0x67, -0x50, 0xA3, 0x04, 0x05, 0xE0, 0xF1, 0x13, 0x6C, -0x42, 0xC1, 0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, +0x0A, 0xD4, 0x04, 0x05, 0xE0, 0xF1, 0x14, 0x6C, +0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x0A, 0x95, +0xE0, 0xF1, 0x15, 0x6C, 0x30, 0xF0, 0x20, 0x69, +0x40, 0xC5, 0xC0, 0xF3, 0x48, 0x98, 0x04, 0x05, +0x85, 0xF7, 0x08, 0x49, 0x40, 0xEA, 0x7D, 0x67, +0x50, 0xA3, 0x0A, 0x95, 0xE0, 0xF1, 0x16, 0x6C, +0x41, 0xC5, 0xC0, 0xF3, 0x48, 0x98, 0x04, 0x05, +0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x0A, 0x95, +0xE0, 0xF1, 0x17, 0x6C, 0x42, 0xC5, 0xC0, 0xF3, +0x48, 0x98, 0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, +0x50, 0xA3, 0x0A, 0x95, 0xE0, 0xF1, 0x18, 0x6C, +0x43, 0xC5, 0xC0, 0xF3, 0x48, 0x98, 0x04, 0x05, +0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x0A, 0x95, +0xE0, 0xF1, 0x19, 0x6C, 0x44, 0xC5, 0xC0, 0xF3, +0x48, 0x98, 0x04, 0x05, 0x40, 0xEA, 0xBD, 0x67, +0x90, 0xA5, 0xA3, 0xF4, 0x54, 0xA1, 0x0F, 0x6B, +0x8C, 0xEB, 0x50, 0x32, 0x6D, 0xEA, 0x0A, 0x93, +0x04, 0x05, 0xE0, 0xF1, 0x1B, 0x6C, 0x45, 0xC3, +0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, 0xA3, 0xF4, +0x56, 0xA1, 0xA3, 0xF4, 0x71, 0xA1, 0x0A, 0x95, +0x4C, 0x32, 0x74, 0x33, 0x6D, 0xEA, 0xA3, 0xF4, +0x70, 0xA1, 0x6D, 0xEA, 0x46, 0xC5, 0xA3, 0xF4, +0x52, 0xA1, 0xA3, 0xF4, 0x73, 0xA1, 0x48, 0x32, +0x78, 0x33, 0x6D, 0xEA, 0x33, 0x6B, 0x6D, 0xEA, +0x47, 0xC5, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x48, 0x98, 0x24, 0x67, 0x04, 0x05, +0xE0, 0xF1, 0x10, 0x6C, 0x40, 0xEA, 0x7D, 0x67, +0x50, 0xA3, 0x04, 0x05, 0xE0, 0xF1, 0x11, 0x6C, +0x40, 0xC1, 0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x04, 0x05, 0xE0, 0xF1, -0x1C, 0x6C, 0x43, 0xC1, 0xC0, 0xF3, 0x48, 0x98, +0x12, 0x6C, 0x41, 0xC1, 0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x04, 0x05, -0xE0, 0xF1, 0x1D, 0x6C, 0x44, 0xC1, 0xC0, 0xF3, +0xE0, 0xF1, 0x13, 0x6C, 0x42, 0xC1, 0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, -0x04, 0x05, 0xE0, 0xF1, 0x1E, 0x6C, 0x45, 0xC1, +0x04, 0x05, 0xE0, 0xF1, 0x1C, 0x6C, 0x43, 0xC1, 0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, 0x7D, 0x67, -0x50, 0xA3, 0xE0, 0xF1, 0x1F, 0x6C, 0x04, 0x05, -0x46, 0xC1, 0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, -0x7D, 0x67, 0x50, 0xA3, 0x47, 0xC1, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD0, 0x04, 0x00, -0x90, 0x67, 0x80, 0x18, 0x99, 0x5D, 0xA0, 0xF1, -0x02, 0x6A, 0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, -0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x05, 0x2B, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, 0x64, 0x9B, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, -0x68, 0x9B, 0x80, 0xA0, 0x6D, 0xE2, 0x01, 0x4A, -0xA0, 0xF1, 0x0A, 0x72, 0x80, 0xC3, 0x01, 0x48, -0xE8, 0x61, 0x04, 0x00, 0x90, 0x67, 0x80, 0x18, -0xD0, 0x5D, 0xA0, 0xF1, 0x0A, 0x6A, 0x1F, 0xF7, +0x50, 0xA3, 0x04, 0x05, 0xE0, 0xF1, 0x1D, 0x6C, +0x44, 0xC1, 0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, +0x7D, 0x67, 0x50, 0xA3, 0x04, 0x05, 0xE0, 0xF1, +0x1E, 0x6C, 0x45, 0xC1, 0xC0, 0xF3, 0x48, 0x98, +0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0xE0, 0xF1, +0x1F, 0x6C, 0x04, 0x05, 0x46, 0xC1, 0xC0, 0xF3, +0x48, 0x98, 0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, +0x47, 0xC1, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD0, 0x04, 0x00, 0x90, 0x67, 0x80, 0x18, +0x22, 0x5C, 0xA0, 0xF1, 0x02, 0x6A, 0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF5, 0x64, 0x9B, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0xC2, 0xF5, 0x68, 0x9B, 0x80, 0xA0, -0x6D, 0xE2, 0x01, 0x4A, 0xA0, 0xF1, 0x0F, 0x72, -0x80, 0xC3, 0x01, 0x48, 0xE8, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF1, 0x50, 0x9A, 0x19, 0x6B, -0x60, 0xC2, 0x09, 0x97, 0x08, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x45, 0xF7, -0x18, 0x48, 0xA3, 0xF4, 0x50, 0xA0, 0x0E, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, -0xE0, 0xF1, 0x1A, 0x6C, 0x04, 0x05, 0x40, 0xEA, -0x9D, 0x67, 0x70, 0xA4, 0x07, 0x6A, 0x6C, 0xEA, -0xA3, 0xF4, 0x50, 0xC0, 0x30, 0xF0, 0x20, 0x68, -0x45, 0xF7, 0x18, 0x48, 0xA3, 0xF4, 0x51, 0xA0, +0xC2, 0xF5, 0x68, 0x9B, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xC2, 0xF5, 0x6C, 0x9B, 0x80, 0xA0, +0x6D, 0xE2, 0x01, 0x4A, 0xA0, 0xF1, 0x0A, 0x72, +0x80, 0xC3, 0x01, 0x48, 0xE8, 0x61, 0x04, 0x00, +0x90, 0x67, 0x80, 0x18, 0x59, 0x5C, 0xA0, 0xF1, +0x0A, 0x6A, 0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x05, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, 0x68, 0x9B, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, +0x6C, 0x9B, 0x80, 0xA0, 0x6D, 0xE2, 0x01, 0x4A, +0xA0, 0xF1, 0x0F, 0x72, 0x80, 0xC3, 0x01, 0x48, +0xE8, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, +0x40, 0x9A, 0x19, 0x6B, 0x60, 0xC2, 0x09, 0x97, +0x08, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0x85, 0xF7, 0x08, 0x48, 0xA3, 0xF4, +0x50, 0xA0, 0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, 0x1A, 0x6C, +0x04, 0x05, 0x40, 0xEA, 0x9D, 0x67, 0x70, 0xA4, +0x07, 0x6A, 0x6C, 0xEA, 0xA3, 0xF4, 0x50, 0xC0, +0x30, 0xF0, 0x20, 0x68, 0x85, 0xF7, 0x08, 0x48, +0xA3, 0xF4, 0x51, 0xA0, 0x0D, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, +0x1A, 0x6C, 0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, +0x50, 0xA3, 0x56, 0x32, 0xA3, 0xF4, 0x51, 0xC0, +0x30, 0xF0, 0x20, 0x68, 0x85, 0xF7, 0x08, 0x48, +0xA3, 0xF4, 0x56, 0xA0, 0x0F, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, +0x1A, 0x6C, 0x04, 0x05, 0x40, 0xEA, 0x9D, 0x67, +0x50, 0xA4, 0x18, 0x6B, 0x6C, 0xEA, 0x4F, 0x32, +0xA3, 0xF4, 0x56, 0xC0, 0x30, 0xF0, 0x20, 0x68, +0x85, 0xF7, 0x08, 0x48, 0xA3, 0xF4, 0x54, 0xA0, 0x0D, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x48, 0x9A, 0xE0, 0xF1, 0x1A, 0x6C, 0x04, 0x05, -0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x56, 0x32, -0xA3, 0xF4, 0x51, 0xC0, 0x30, 0xF0, 0x20, 0x68, -0x45, 0xF7, 0x18, 0x48, 0xA3, 0xF4, 0x56, 0xA0, -0x0F, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x48, 0x9A, 0xE0, 0xF1, 0x1A, 0x6C, 0x04, 0x05, -0x40, 0xEA, 0x9D, 0x67, 0x50, 0xA4, 0x18, 0x6B, -0x6C, 0xEA, 0x4F, 0x32, 0xA3, 0xF4, 0x56, 0xC0, -0x30, 0xF0, 0x20, 0x68, 0x45, 0xF7, 0x18, 0x48, -0xA3, 0xF4, 0x54, 0xA0, 0x0D, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, -0x1C, 0x6C, 0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, -0x50, 0xA3, 0x52, 0x32, 0xA3, 0xF4, 0x54, 0xC0, -0x30, 0xF0, 0x20, 0x68, 0x45, 0xF7, 0x18, 0x48, -0xA3, 0xF4, 0x52, 0xA0, 0x0E, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, -0x1D, 0x6C, 0x04, 0x05, 0x40, 0xEA, 0x9D, 0x67, -0x70, 0xA4, 0x03, 0x6A, 0x6C, 0xEA, 0xA3, 0xF4, -0x52, 0xC0, 0x30, 0xF0, 0x20, 0x68, 0x45, 0xF7, -0x18, 0x48, 0xA3, 0xF4, 0x53, 0xA0, 0x0F, 0x2A, +0x48, 0x9A, 0xE0, 0xF1, 0x1C, 0x6C, 0x04, 0x05, +0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x52, 0x32, +0xA3, 0xF4, 0x54, 0xC0, 0x30, 0xF0, 0x20, 0x68, +0x85, 0xF7, 0x08, 0x48, 0xA3, 0xF4, 0x52, 0xA0, +0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x48, 0x9A, 0xE0, 0xF1, 0x1D, 0x6C, 0x04, 0x05, +0x40, 0xEA, 0x9D, 0x67, 0x70, 0xA4, 0x03, 0x6A, +0x6C, 0xEA, 0xA3, 0xF4, 0x52, 0xC0, 0x30, 0xF0, +0x20, 0x68, 0x85, 0xF7, 0x08, 0x48, 0xA3, 0xF4, +0x53, 0xA0, 0x0F, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, 0x1D, 0x6C, +0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, +0x30, 0x6B, 0x6C, 0xEA, 0x53, 0x32, 0xA3, 0xF4, +0x53, 0xC0, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x48, 0x99, 0xE0, 0xF1, 0x19, 0x6C, +0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, +0x30, 0xF0, 0x20, 0x68, 0x85, 0xF7, 0x08, 0x48, +0x52, 0x32, 0xA3, 0xF4, 0x54, 0xC0, 0xC0, 0xF3, +0x48, 0x99, 0xE0, 0xF1, 0x1B, 0x6C, 0x04, 0x05, +0x40, 0xEA, 0x9D, 0x67, 0x70, 0xA4, 0x07, 0x6A, +0x6C, 0xEA, 0xA3, 0xF4, 0x50, 0xC0, 0x43, 0x67, +0x18, 0x6B, 0x4C, 0xEB, 0x6F, 0x33, 0xA3, 0xF4, +0x76, 0xC0, 0x4F, 0x72, 0x56, 0x33, 0xA3, 0xF4, +0x71, 0xC0, 0x0E, 0x61, 0xC0, 0xF3, 0x48, 0x99, +0xE0, 0xF1, 0x1A, 0x6C, 0x00, 0xF0, 0x11, 0x05, +0x40, 0xEA, 0x7D, 0x67, 0x51, 0xA3, 0x57, 0x72, +0x03, 0x61, 0x02, 0x6A, 0xA3, 0xF4, 0x56, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, 0x1D, 0x6C, 0x04, 0x05, 0x40, 0xEA, -0x7D, 0x67, 0x50, 0xA3, 0x30, 0x6B, 0x6C, 0xEA, -0x53, 0x32, 0xA3, 0xF4, 0x53, 0xC0, 0x07, 0x97, -0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x48, 0x99, -0xE0, 0xF1, 0x19, 0x6C, 0x04, 0x05, 0x40, 0xEA, -0x7D, 0x67, 0x50, 0xA3, 0x30, 0xF0, 0x20, 0x68, -0x45, 0xF7, 0x18, 0x48, 0x52, 0x32, 0xA3, 0xF4, -0x54, 0xC0, 0xC0, 0xF3, 0x48, 0x99, 0xE0, 0xF1, -0x1B, 0x6C, 0x04, 0x05, 0x40, 0xEA, 0x9D, 0x67, -0x70, 0xA4, 0x07, 0x6A, 0x6C, 0xEA, 0xA3, 0xF4, -0x50, 0xC0, 0x43, 0x67, 0x18, 0x6B, 0x4C, 0xEB, -0x6F, 0x33, 0xA3, 0xF4, 0x76, 0xC0, 0x4F, 0x72, -0x56, 0x33, 0xA3, 0xF4, 0x71, 0xC0, 0x0E, 0x61, -0xC0, 0xF3, 0x48, 0x99, 0xE0, 0xF1, 0x1A, 0x6C, -0x00, 0xF0, 0x11, 0x05, 0x40, 0xEA, 0x7D, 0x67, -0x51, 0xA3, 0x57, 0x72, 0x03, 0x61, 0x02, 0x6A, -0xA3, 0xF4, 0x56, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, 0x1D, 0x6C, -0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, 0x90, 0xA3, -0x0C, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x8C, 0xEB, -0x45, 0xF7, 0x18, 0x4A, 0x6B, 0x33, 0x9A, 0x34, -0xA3, 0xF4, 0x72, 0xC2, 0xA3, 0xF4, 0x93, 0xC2, -0x80, 0x18, 0x1F, 0x5E, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF1, 0x50, 0x9A, 0x60, 0xA2, 0xFF, 0x6A, -0x6C, 0xEA, 0xFD, 0x72, 0x02, 0x61, 0x80, 0x18, -0xFA, 0x5D, 0x80, 0x18, 0x7E, 0x5D, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x48, 0x9A, -0x01, 0x6B, 0x60, 0xC2, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x8C, 0x9A, -0xFF, 0x6B, 0x20, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, -0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x30, 0xF0, -0x20, 0x6A, 0xA2, 0xF5, 0x90, 0x9A, 0x08, 0x6D, +0x7D, 0x67, 0x90, 0xA3, 0x0C, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x8C, 0xEB, 0x85, 0xF7, 0x08, 0x4A, +0x6B, 0x33, 0x9A, 0x34, 0xA3, 0xF4, 0x72, 0xC2, +0xA3, 0xF4, 0x93, 0xC2, 0x80, 0x18, 0xA8, 0x5C, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x40, 0x9A, +0x60, 0xA2, 0xFF, 0x6A, 0x6C, 0xEA, 0xFD, 0x72, +0x02, 0x61, 0x80, 0x18, 0x83, 0x5C, 0x80, 0x18, +0x07, 0x5C, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF2, 0x58, 0x9A, 0x01, 0x6B, 0x60, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF2, 0x9C, 0x9A, 0xFF, 0x6B, 0x20, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, -0x40, 0xC4, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF2, 0x74, 0x9A, 0xFD, 0x6A, 0xFF, 0x6C, -0xA0, 0xA3, 0xAC, 0xEA, 0x40, 0xC3, 0x40, 0xA3, -0x01, 0x6D, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, -0x40, 0xC3, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x48, 0x9A, 0x22, 0xF7, 0x94, 0x9B, -0x00, 0x6D, 0x02, 0xF0, 0x00, 0x6E, 0x40, 0xEA, -0x00, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, -0x74, 0x9B, 0x54, 0x34, 0x01, 0x4A, 0x6D, 0xE4, -0x80, 0x72, 0x04, 0x6C, 0x80, 0xC3, 0xF5, 0x61, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0x42, 0xF7, 0x98, 0x9B, 0x80, 0xF2, 0x48, 0x9A, -0x00, 0x6D, 0x00, 0xF4, 0x00, 0x6E, 0x40, 0xEA, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF7, 0x18, 0x4B, -0x52, 0x9B, 0x8D, 0xEA, 0x52, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF2, 0x78, 0x9B, 0x80, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, 0x7C, 0x9B, -0x40, 0xDB, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, -0x45, 0xF7, 0x18, 0x4B, 0xB2, 0x9B, 0x8F, 0xEA, -0xAC, 0xEA, 0x52, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF2, 0x7C, 0x9B, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF2, 0x58, 0x9A, 0x80, 0xDA, -0x20, 0xE8, 0x00, 0x65, 0x05, 0x5C, 0x5E, 0x60, -0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, 0xA2, 0xF4, -0x10, 0x4A, 0x89, 0xE2, 0x40, 0x9A, 0x00, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF7, 0x58, 0x9B, -0xAD, 0xEA, 0x45, 0xF7, 0x58, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0xE3, 0xF1, 0x60, 0x9B, 0xA0, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, 0x60, 0x9B, -0x32, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF7, -0x18, 0x4B, 0x41, 0x9B, 0xAD, 0xEA, 0x41, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, 0x64, 0x9B, -0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, -0x68, 0x9B, 0x21, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x45, 0xF7, 0x18, 0x4B, 0x42, 0x9B, 0xAD, 0xEA, -0x42, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, -0x6C, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF2, 0x70, 0x9B, 0x10, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x45, 0xF7, 0x18, 0x4B, 0x43, 0x9B, -0xAD, 0xEA, 0x43, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF2, 0x74, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF2, 0x78, 0x9B, 0x40, 0xDB, -0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF7, -0x18, 0x4B, 0x44, 0x9B, 0xAD, 0xEA, 0x44, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, 0x7C, 0x9B, -0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, -0x60, 0x9B, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, -0x05, 0x5C, 0x63, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x88, 0x34, 0xC2, 0xF4, 0x04, 0x4A, 0x89, 0xE2, -0x40, 0x9A, 0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x45, 0xF7, 0x98, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, -0x45, 0xF7, 0x58, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF2, 0x60, 0x9B, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF1, 0x40, 0x9A, 0x35, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF7, 0x18, 0x4B, -0x81, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x41, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, 0x68, 0x9B, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, -0x44, 0x9A, 0x23, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x45, 0xF7, 0x18, 0x4B, 0x82, 0x9B, 0xAF, 0xEA, -0x8C, 0xEA, 0x42, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF2, 0x70, 0x9B, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF2, 0x4C, 0x9A, 0x11, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF7, 0x18, 0x4B, -0x83, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x43, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, 0x78, 0x9B, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, -0x54, 0x9A, 0xA0, 0xDA, 0x20, 0xE8, 0x30, 0xF0, -0x20, 0x6B, 0x45, 0xF7, 0x18, 0x4B, 0x84, 0x9B, -0xAF, 0xEA, 0x8C, 0xEA, 0x44, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF2, 0x60, 0x9B, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x5C, 0x9A, -0xA0, 0xDA, 0x20, 0xE8, 0x01, 0x74, 0x15, 0x60, -0x03, 0x24, 0x02, 0x74, 0x23, 0x60, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF7, 0x18, 0x4B, -0x54, 0x9B, 0xAD, 0xEA, 0x54, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0x22, 0xF6, 0x7C, 0x9B, 0xA0, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0x64, 0x9B, -0x21, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF7, -0x18, 0x4B, 0x55, 0x9B, 0xAD, 0xEA, 0x55, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0x68, 0x9B, -0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, -0x6C, 0x9B, 0x10, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x45, 0xF7, 0x18, 0x4B, 0x56, 0x9B, 0xAD, 0xEA, -0x56, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, -0x70, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF2, 0x74, 0x9B, 0x40, 0xDB, 0x20, 0xE8, -0x01, 0x74, 0x16, 0x60, 0x03, 0x24, 0x02, 0x74, -0x25, 0x60, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, -0x45, 0xF7, 0x18, 0x4B, 0x94, 0x9B, 0xAF, 0xEA, -0x8C, 0xEA, 0x54, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF2, 0x64, 0x9B, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x22, 0xF6, 0x5C, 0x9A, 0x23, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF7, 0x18, 0x4B, -0x95, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x55, 0xDB, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF5, +0x94, 0x9A, 0x08, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, +0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0x64, 0x9A, +0xFD, 0x6A, 0xFF, 0x6C, 0xA0, 0xA3, 0xAC, 0xEA, +0x40, 0xC3, 0x40, 0xA3, 0x01, 0x6D, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, +0x42, 0xF7, 0x98, 0x9B, 0x00, 0x6D, 0x02, 0xF0, +0x00, 0x6E, 0x40, 0xEA, 0x00, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF7, 0x78, 0x9B, 0x54, 0x34, +0x01, 0x4A, 0x6D, 0xE4, 0x80, 0x72, 0x04, 0x6C, +0x80, 0xC3, 0xF5, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, 0x9C, 0x9B, +0x80, 0xF2, 0x48, 0x9A, 0x00, 0x6D, 0x00, 0xF4, +0x00, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0x85, 0xF7, 0x08, 0x4B, 0x52, 0x9B, 0x8D, 0xEA, +0x52, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, +0x68, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF2, 0x6C, 0x9B, 0x40, 0xDB, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0x85, 0xF7, 0x08, 0x4B, +0xB2, 0x9B, 0x8F, 0xEA, 0xAC, 0xEA, 0x52, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0x6C, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, -0x48, 0x9A, 0x11, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x45, 0xF7, 0x18, 0x4B, 0x96, 0x9B, 0xAF, 0xEA, -0x8C, 0xEA, 0x56, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF2, 0x74, 0x9B, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF2, 0x50, 0x9A, 0xA0, 0xDA, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6C, -0x43, 0xF2, 0x80, 0x9C, 0x00, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x45, 0xF7, 0x58, 0xDB, 0x45, 0xF7, -0x18, 0x4B, 0x41, 0xDB, 0x42, 0xDB, 0x43, 0xDB, -0x44, 0xDB, 0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, -0x43, 0xF2, 0x88, 0x9C, 0x40, 0xDC, 0x30, 0xF0, -0x20, 0x6C, 0x43, 0xF2, 0x90, 0x9C, 0x40, 0xDC, -0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF2, 0x98, 0x9C, -0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF2, +0x48, 0x9A, 0x80, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0x05, 0x5C, 0x5E, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x88, 0x34, 0xA2, 0xF4, 0x10, 0x4A, 0x89, 0xE2, +0x40, 0x9A, 0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x85, 0xF7, 0x48, 0x9B, 0xAD, 0xEA, 0x85, 0xF7, +0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF2, +0x70, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF2, 0x70, 0x9B, 0x32, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x85, 0xF7, 0x08, 0x4B, 0x41, 0x9B, +0xAD, 0xEA, 0x41, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF2, 0x74, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF2, 0x78, 0x9B, 0x21, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x85, 0xF7, 0x08, 0x4B, +0x42, 0x9B, 0xAD, 0xEA, 0x42, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF2, 0x7C, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, 0x60, 0x9B, +0x10, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x85, 0xF7, +0x08, 0x4B, 0x43, 0x9B, 0xAD, 0xEA, 0x43, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, 0x64, 0x9B, +0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, +0x68, 0x9B, 0x40, 0xDB, 0x20, 0xE8, 0x30, 0xF0, +0x20, 0x6B, 0x85, 0xF7, 0x08, 0x4B, 0x44, 0x9B, +0xAD, 0xEA, 0x44, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF2, 0x6C, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF2, 0x70, 0x9B, 0x40, 0xDB, +0x20, 0xE8, 0x00, 0x65, 0x05, 0x5C, 0x63, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, 0xC2, 0xF4, +0x04, 0x4A, 0x89, 0xE2, 0x40, 0x9A, 0x00, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x85, 0xF7, 0x88, 0x9B, +0xAF, 0xEA, 0x8C, 0xEA, 0x85, 0xF7, 0x48, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0x70, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, +0x50, 0x9A, 0x35, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x85, 0xF7, 0x08, 0x4B, 0x81, 0x9B, 0xAF, 0xEA, +0x8C, 0xEA, 0x41, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF2, 0x78, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF2, 0x54, 0x9A, 0x23, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x85, 0xF7, 0x08, 0x4B, +0x82, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x42, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, 0x60, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, +0x5C, 0x9A, 0x11, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x85, 0xF7, 0x08, 0x4B, 0x83, 0x9B, 0xAF, 0xEA, +0x8C, 0xEA, 0x43, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF2, 0x68, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF2, 0x44, 0x9A, 0xA0, 0xDA, +0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0x85, 0xF7, +0x08, 0x4B, 0x84, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, +0x44, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, +0x70, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF2, 0x4C, 0x9A, 0xA0, 0xDA, 0x20, 0xE8, +0x01, 0x74, 0x15, 0x60, 0x03, 0x24, 0x02, 0x74, +0x23, 0x60, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0x85, 0xF7, 0x08, 0x4B, 0x54, 0x9B, 0xAD, 0xEA, +0x54, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF6, +0x64, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF2, 0x74, 0x9B, 0x21, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x85, 0xF7, 0x08, 0x4B, 0x55, 0x9B, +0xAD, 0xEA, 0x55, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF2, 0x78, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF2, 0x7C, 0x9B, 0x10, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x85, 0xF7, 0x08, 0x4B, +0x56, 0x9B, 0xAD, 0xEA, 0x56, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF2, 0x60, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF2, 0x64, 0x9B, +0x40, 0xDB, 0x20, 0xE8, 0x01, 0x74, 0x16, 0x60, +0x03, 0x24, 0x02, 0x74, 0x25, 0x60, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0x85, 0xF7, 0x08, 0x4B, +0x94, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x54, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, 0x74, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, +0x44, 0x9A, 0x23, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x85, 0xF7, 0x08, 0x4B, 0x95, 0x9B, 0xAF, 0xEA, +0x8C, 0xEA, 0x55, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF2, 0x7C, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF2, 0x58, 0x9A, 0x11, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x85, 0xF7, 0x08, 0x4B, +0x96, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x56, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF2, 0x64, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, +0x40, 0x9A, 0xA0, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF2, 0x90, 0x9C, +0x00, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x85, 0xF7, +0x48, 0xDB, 0x85, 0xF7, 0x08, 0x4B, 0x41, 0xDB, +0x42, 0xDB, 0x43, 0xDB, 0x44, 0xDB, 0x40, 0xDC, +0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF2, 0x98, 0x9C, +0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF2, 0x80, 0x9C, 0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, -0x63, 0xF2, 0x84, 0x9C, 0x54, 0xDB, 0x55, 0xDB, -0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF2, -0x8C, 0x9C, 0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, -0x63, 0xF2, 0x94, 0x9C, 0x56, 0xDB, 0x40, 0xDC, -0x52, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, -0x7C, 0x9B, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF1, 0x60, 0x9B, -0x01, 0x6A, 0x4B, 0xEA, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF2, 0x64, 0x9B, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, 0x6C, 0x9B, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, -0x74, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF2, 0x7C, 0x9B, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0x22, 0xF6, 0x7C, 0x9B, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0x68, 0x9B, +0x83, 0xF2, 0x88, 0x9C, 0x40, 0xDC, 0x30, 0xF0, +0x20, 0x6C, 0x83, 0xF2, 0x90, 0x9C, 0x40, 0xDC, +0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF2, 0x94, 0x9C, +0x54, 0xDB, 0x55, 0xDB, 0x40, 0xDC, 0x30, 0xF0, +0x20, 0x6C, 0x83, 0xF2, 0x9C, 0x9C, 0x40, 0xDC, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF2, 0x84, 0x9C, +0x56, 0xDB, 0x40, 0xDC, 0x52, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF2, 0x6C, 0x9B, 0x40, 0xDB, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF2, 0x70, 0x9B, 0x01, 0x6A, 0x4B, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, -0x70, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF2, 0x78, 0x9B, 0x40, 0xDB, 0x20, 0xE8, -0x1F, 0xF4, 0x0E, 0x6E, 0x30, 0xF0, 0x20, 0x6B, -0xCB, 0xEE, 0x45, 0xF7, 0xD8, 0xDB, 0xE1, 0xF7, -0x1F, 0x6A, 0x45, 0xF7, 0x18, 0x4B, 0x08, 0xF0, -0x00, 0x6D, 0x00, 0x6C, 0x42, 0xDB, 0x43, 0xDB, -0xA1, 0xDB, 0x84, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF2, 0x60, 0x9B, 0xC0, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF2, 0x68, 0x9B, 0xA0, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, 0x70, 0x9B, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, -0x78, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF2, 0x40, 0x9A, 0x80, 0xDA, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0x00, 0x6B, 0x72, 0xDA, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF2, 0x5C, 0x9A, 0x60, 0xDA, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF6, 0x8C, 0x9B, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0xC6, 0x6D, 0xFF, 0x6B, 0xB4, 0xDA, 0x95, 0xDA, -0x76, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, -0x44, 0x9A, 0xA0, 0xDA, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF2, 0x4C, 0x9A, 0x80, 0xDA, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF2, 0x54, 0x9A, 0x60, 0xDA, +0x74, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF2, 0x7C, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF2, 0x64, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, 0x6C, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF6, +0x64, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF2, 0x78, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF2, 0x60, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0x68, 0x9B, +0x40, 0xDB, 0x20, 0xE8, 0x1F, 0xF4, 0x0E, 0x6E, +0x30, 0xF0, 0x20, 0x6B, 0xCB, 0xEE, 0x85, 0xF7, +0xC8, 0xDB, 0xE1, 0xF7, 0x1F, 0x6A, 0x85, 0xF7, +0x08, 0x4B, 0x08, 0xF0, 0x00, 0x6D, 0x00, 0x6C, +0x42, 0xDB, 0x43, 0xDB, 0xA1, 0xDB, 0x84, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0x70, 0x9B, +0xC0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, +0x78, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF2, 0x60, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF2, 0x68, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, 0x50, 0x9A, +0x80, 0xDA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0x00, 0x6B, 0x72, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0x4C, 0x9A, +0x60, 0xDA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0xA2, 0xF6, 0x94, 0x9B, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0xC6, 0x6D, 0xFF, 0x6B, +0xB4, 0xDA, 0x95, 0xDA, 0x76, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF2, 0x54, 0x9A, 0xA0, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, 0x5C, 0x9A, +0x80, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, +0x44, 0x9A, 0x60, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xFC, 0x5D, +0x80, 0x18, 0x1B, 0x5E, 0x80, 0x18, 0x33, 0x5E, +0x80, 0x18, 0x4F, 0x5E, 0x80, 0x18, 0x49, 0x5E, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x80, 0x18, 0x73, 0x5F, 0x80, 0x18, 0x92, 0x5F, -0x80, 0x18, 0xAA, 0x5F, 0x80, 0x18, 0xC6, 0x5F, -0x80, 0x18, 0xC0, 0x5F, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0x02, 0x60, -0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF7, 0x18, 0x4B, -0xE2, 0xF5, 0x4C, 0xC3, 0x00, 0x6A, 0xE2, 0xF5, -0x4D, 0xC3, 0x80, 0x18, 0xA3, 0x5E, 0x80, 0x18, -0x39, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, -0x58, 0x9A, 0x3F, 0x6B, 0x60, 0xC2, 0x80, 0x18, -0x94, 0x5E, 0x80, 0x18, 0x98, 0x5E, 0x80, 0x18, -0xAB, 0x5E, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x30, 0xC8, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x44, 0x9A, -0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0x40, 0x9A, -0xE0, 0xF1, 0x1B, 0x6B, 0x6B, 0xEB, 0x60, 0xCA, -0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF6, 0x6C, 0x9A, -0xFB, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0x64, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF1, 0x98, 0x9C, -0x40, 0x9B, 0x8C, 0xEA, 0x40, 0xDB, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0x5C, 0x9A, -0xFF, 0xF7, 0x1F, 0x6B, 0x40, 0xAA, 0x4C, 0xEB, -0x62, 0x33, 0x03, 0x6A, 0x72, 0x33, 0x4C, 0xEB, -0x02, 0x6A, 0x04, 0x23, 0x01, 0x73, 0x01, 0x6A, -0x01, 0x60, 0x03, 0x6A, 0x20, 0xE8, 0x00, 0x65, -0x10, 0xF0, 0x23, 0x6A, 0x04, 0xF2, 0x11, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, 0x48, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x24, 0xF2, 0x05, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, 0x4C, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0xCF, 0xF7, 0x11, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, 0x50, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x07, 0xF2, 0x1D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF2, 0x48, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0x03, 0xF1, 0x19, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF2, 0x4C, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xE7, 0xF1, 0x0D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, 0x54, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x86, 0xF2, 0x19, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF2, 0x50, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x09, 0xF3, 0x0D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF2, 0x54, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x09, 0xF4, 0x0D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF2, 0x54, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x03, 0xF0, 0x15, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF2, 0x58, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x63, 0xF1, 0x01, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF2, 0x5C, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xE6, 0xF0, 0x0D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF3, 0x40, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x85, 0xF2, 0x1D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF3, 0x44, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xE5, 0xF2, 0x05, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF3, 0x48, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xE6, 0xF5, 0x1D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF3, 0x4C, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x84, 0xF4, 0x11, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF4, 0x5C, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xC4, 0xF6, 0x01, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF4, 0x40, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x67, 0xF6, 0x11, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF4, 0x5C, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x07, 0xF7, 0x0D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x40, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x05, 0xF4, 0x05, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x44, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xC2, 0xF4, 0x01, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x58, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xC8, 0xF7, 0x19, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x5C, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xE2, 0xF4, 0x19, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x50, 0xDB, -0x10, 0xF0, 0x30, 0x6A, 0xCB, 0xF2, 0x01, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xA4, 0xF1, 0x15, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF3, 0x44, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xE4, 0xF1, 0x01, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF3, 0x4C, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xC4, 0xF1, 0x01, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF3, 0x48, 0xDB, -0x10, 0xF0, 0x30, 0x6A, 0x4C, 0xF0, 0x05, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF3, 0x40, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0x09, 0xF3, 0x05, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF6, 0x50, 0xDB, -0x10, 0xF0, 0x30, 0x6A, 0x81, 0xF5, 0x11, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF6, 0x54, 0xDB, -0x10, 0xF0, 0x30, 0x6A, 0x61, 0xF4, 0x19, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF6, 0x58, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xE5, 0xF7, 0x1C, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF6, 0x5C, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x48, 0xF5, 0x0C, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF6, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF1, 0x70, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF6, 0x64, 0xDA, -0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF1, 0x10, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF6, 0x48, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF2, 0x04, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF6, 0x4C, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF2, 0x1C, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF6, 0x50, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF4, 0x18, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF6, 0x40, 0xDB, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0x21, 0xF0, 0x00, 0x4B, -0x80, 0xF2, 0x08, 0x4A, 0x13, 0x10, 0x80, 0x9A, -0x10, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0x62, 0xF6, -0xB0, 0x9C, 0x30, 0xF0, 0x20, 0x6E, 0xE2, 0xF5, -0xD4, 0x9E, 0x80, 0x9D, 0xCD, 0xEC, 0x80, 0xDD, -0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF3, 0x90, 0x9C, -0x40, 0xDC, 0x04, 0x4A, 0x43, 0xEB, 0xEB, 0x60, -0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0xF7, 0x1F, 0x69, -0x2C, 0xED, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0xD5, -0x03, 0xF3, 0xB4, 0x9B, 0xFF, 0x6A, 0x40, 0x6E, -0x60, 0xA5, 0xCB, 0xEE, 0x4C, 0xEC, 0x4C, 0xEB, -0xCC, 0xEB, 0x6D, 0xEC, 0x4C, 0xEC, 0x80, 0xC5, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, -0x0A, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF3, 0x58, 0x9A, 0x00, 0xAA, 0x04, 0x92, -0x2C, 0xE8, 0x2A, 0xEA, 0x0B, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, 0x04, 0x94, -0x40, 0xEA, 0x04, 0x93, 0x2C, 0xEA, 0x6C, 0xE8, -0x07, 0xEA, 0x2C, 0xE8, 0x50, 0x67, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0xF7, 0x1F, 0x69, 0x2C, 0xED, 0xFF, 0x68, -0x0C, 0xEC, 0x2C, 0xEE, 0x2A, 0xED, 0x05, 0xD4, -0x04, 0xD5, 0x06, 0xD6, 0x1F, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF3, 0x74, 0x9A, 0x40, 0x6C, -0x8B, 0xEC, 0x40, 0xA3, 0x0C, 0xEA, 0x8C, 0xEA, -0x05, 0x94, 0x8D, 0xEA, 0x0C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, 0x78, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF0, 0x94, 0x9C, -0x40, 0x9B, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, -0xA2, 0xF6, 0x98, 0x9C, 0x8D, 0xEA, 0xCD, 0xEA, -0x40, 0xDB, 0x34, 0x10, 0x05, 0x94, 0xB1, 0x67, -0x80, 0x18, 0xB5, 0x60, 0x07, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x04, 0x94, 0xA0, 0xF3, 0x44, 0x9A, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, -0x94, 0x9B, 0x40, 0x6D, 0xAB, 0xED, 0x60, 0xA4, -0x2C, 0xEA, 0x0C, 0xEB, 0xAC, 0xEB, 0x05, 0x95, -0xAD, 0xEB, 0x0C, 0xEB, 0x60, 0xC4, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF3, 0x98, 0x9B, 0x30, 0xF0, -0x20, 0x6D, 0xC3, 0xF0, 0xB4, 0x9D, 0x60, 0x9C, -0x06, 0x96, 0xAC, 0xEB, 0x30, 0xF0, 0x20, 0x6D, -0xA2, 0xF6, 0xB8, 0x9D, 0xC4, 0xEA, 0x46, 0x67, -0xAD, 0xEB, 0x04, 0x95, 0x07, 0x96, 0xAC, 0xEA, -0xAF, 0xED, 0xCC, 0xED, 0xAD, 0xEA, 0x2C, 0xEA, -0x4D, 0xEB, 0x60, 0xDC, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, -0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x6C, 0x10, 0xF0, 0x00, 0x6D, 0x80, 0x18, -0xB5, 0x60, 0x05, 0x97, 0x01, 0x5A, 0x58, 0x67, +0x80, 0x18, 0x8B, 0x5E, 0x30, 0xF0, 0x20, 0x6B, +0x85, 0xF7, 0x08, 0x4B, 0xE2, 0xF5, 0x4C, 0xC3, +0x00, 0x6A, 0xE2, 0xF5, 0x4D, 0xC3, 0x80, 0x18, +0x2C, 0x5D, 0x80, 0x18, 0xC2, 0x5F, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF2, 0x48, 0x9A, 0x3F, 0x6B, +0x60, 0xC2, 0x80, 0x18, 0x1D, 0x5D, 0x80, 0x18, +0x21, 0x5D, 0x80, 0x18, 0x34, 0x5D, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, -0x70, 0x9B, 0x10, 0xF0, 0x32, 0x6A, 0x30, 0xF4, -0x15, 0x4A, 0x40, 0xDB, 0x00, 0x68, 0x31, 0x10, -0x82, 0xF3, 0x08, 0x70, 0x1A, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x62, 0xF6, 0x70, 0x9A, 0x02, 0xF0, -0x00, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x18, 0x4A, -0x63, 0xF3, 0x64, 0x9A, 0x8D, 0xEB, 0x63, 0xF3, -0x64, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, -0x58, 0x9A, 0x03, 0x6B, 0x6B, 0xEB, 0x60, 0xC2, -0x18, 0x10, 0xFF, 0xF7, 0x1F, 0x6A, 0x01, 0x48, -0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x14, 0x6C, 0x40, 0xEA, 0x33, 0x58, -0x08, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, -0x5C, 0x9A, 0x60, 0xA2, 0x08, 0x6A, 0x6C, 0xEA, -0x04, 0x2A, 0x80, 0x18, 0x07, 0x61, 0x01, 0x72, -0xCB, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, -0x58, 0x9A, 0x02, 0x6B, 0x6B, 0xEB, 0x60, 0xC2, -0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, 0x70, 0x9B, -0x10, 0xF0, 0x32, 0x6A, 0x30, 0xF4, 0x16, 0x4A, -0x40, 0xDB, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, -0x7C, 0x9A, 0x02, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, -0x40, 0x9B, 0xFF, 0x6E, 0x41, 0x4E, 0x8D, 0xEA, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, -0x7C, 0x9A, 0xE0, 0xF3, 0x1E, 0x4C, 0x30, 0xF0, -0x20, 0x68, 0x40, 0xAB, 0xAC, 0xEA, 0x8D, 0xEA, -0xAC, 0xEA, 0x40, 0xCB, 0x02, 0x6C, 0x80, 0x18, -0xD0, 0x60, 0x80, 0xF3, 0x4C, 0x98, 0x0A, 0x6C, -0x40, 0xEA, 0x00, 0x6C, 0xC0, 0x6D, 0x02, 0x6E, -0x80, 0x18, 0xD0, 0x60, 0x00, 0x6C, 0xC4, 0x67, -0x02, 0xF0, 0x00, 0x6D, 0x80, 0x18, 0xD0, 0x60, -0x00, 0x6C, 0xC4, 0x67, 0x0C, 0xF0, 0x00, 0x6D, -0x80, 0x18, 0xD0, 0x60, 0x00, 0x6C, 0x01, 0xF0, -0x00, 0x6D, 0x01, 0x6E, 0x80, 0x18, 0xD0, 0x60, -0x10, 0xF0, 0x00, 0x6D, 0x01, 0x6E, 0x00, 0x6C, -0x80, 0x18, 0xD0, 0x60, 0x80, 0xF3, 0x4C, 0x98, -0x0A, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF3, 0x60, 0x9A, 0xFF, 0x6C, 0x04, 0x6D, -0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, -0x40, 0xC3, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x00, 0x00, 0x00, 0x00, -0x08, 0xB3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +0x00, 0x18, 0x40, 0xC7, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF2, 0x50, 0x9A, 0xE0, 0xF1, 0x1B, 0x6B, +0x6B, 0xEB, 0x60, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF6, 0x74, 0x9A, 0xFB, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF2, 0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x23, 0xF2, 0x88, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, +0x40, 0xDB, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF5, 0x48, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, +0x40, 0xAA, 0x4C, 0xEB, 0x62, 0x33, 0x03, 0x6A, +0x72, 0x33, 0x4C, 0xEB, 0x02, 0x6A, 0x04, 0x23, +0x01, 0x73, 0x01, 0x6A, 0x01, 0x60, 0x03, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0x10, 0xF0, 0x23, 0x6A, +0x23, 0xF6, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x48, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x43, 0xF6, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x4C, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0xEF, 0xF1, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x50, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x26, 0xF6, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF2, 0x48, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0x43, 0xF1, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF2, 0x4C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x06, 0xF6, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xA5, 0xF6, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF2, 0x50, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x28, 0xF7, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF2, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x29, 0xF0, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF2, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x42, 0xF4, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF2, 0x58, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x82, 0xF5, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF2, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x05, 0xF5, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF3, 0x40, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xA4, 0xF6, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF3, 0x44, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x04, 0xF7, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF3, 0x48, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x06, 0xF2, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF3, 0x4C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xA4, 0xF0, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF4, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xE4, 0xF2, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF4, 0x40, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x87, 0xF2, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF4, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x27, 0xF3, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x40, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x25, 0xF0, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x44, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x82, 0xF0, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x58, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xE8, 0xF3, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xC2, 0xF0, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x50, 0xDB, 0x10, 0xF0, 0x30, 0x6A, +0xCC, 0xF6, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xC3, 0xF5, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF3, 0x44, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x03, 0xF6, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF3, 0x4C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xE3, 0xF5, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF3, 0x48, 0xDB, 0x10, 0xF0, 0x30, 0x6A, +0x4D, 0xF4, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF3, 0x40, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0x08, 0xF5, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF6, 0x50, 0xDB, 0x10, 0xF0, 0x30, 0x6A, +0x21, 0xF6, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF6, 0x54, 0xDB, 0x10, 0xF0, 0x30, 0x6A, +0x62, 0xF7, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF6, 0x58, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x26, 0xF0, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF6, 0x5C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x68, 0xF5, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA9, 0xF1, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF6, 0x64, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0xA9, 0xF1, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA9, 0xF2, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x4C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xE9, 0xF2, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x50, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x49, 0xF4, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF6, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x21, 0xF0, 0x00, 0x4B, 0x80, 0xF2, 0x08, 0x4A, +0x13, 0x10, 0x80, 0x9A, 0x10, 0x2C, 0x30, 0xF0, +0x20, 0x6C, 0x82, 0xF6, 0xB8, 0x9C, 0x30, 0xF0, +0x20, 0x6E, 0x22, 0xF6, 0xC0, 0x9E, 0x80, 0x9D, +0xCD, 0xEC, 0x80, 0xDD, 0x30, 0xF0, 0x20, 0x6C, +0xE2, 0xF5, 0x98, 0x9C, 0x40, 0xDC, 0x04, 0x4A, +0x43, 0xEB, 0xEB, 0x60, 0x20, 0xE8, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0xF7, 0x1F, 0x69, 0x2C, 0xED, 0x30, 0xF0, +0x20, 0x6B, 0x04, 0xD5, 0x23, 0xF3, 0xBC, 0x9B, +0xFF, 0x6A, 0x40, 0x6E, 0x60, 0xA5, 0xCB, 0xEE, +0x4C, 0xEC, 0x4C, 0xEB, 0xCC, 0xEB, 0x6D, 0xEC, +0x4C, 0xEC, 0x80, 0xC5, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, 0x40, 0x9A, +0x00, 0xAA, 0x04, 0x92, 0x2C, 0xE8, 0x2A, 0xEA, +0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, +0x44, 0x9A, 0x04, 0x94, 0x40, 0xEA, 0x04, 0x93, +0x2C, 0xEA, 0x6C, 0xE8, 0x07, 0xEA, 0x2C, 0xE8, +0x50, 0x67, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0xF7, 0x1F, 0x69, +0x2C, 0xED, 0xFF, 0x68, 0x0C, 0xEC, 0x2C, 0xEE, +0x2A, 0xED, 0x05, 0xD4, 0x04, 0xD5, 0x06, 0xD6, +0x1F, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, +0x7C, 0x9A, 0x40, 0x6C, 0x8B, 0xEC, 0x40, 0xA3, +0x0C, 0xEA, 0x8C, 0xEA, 0x05, 0x94, 0x8D, 0xEA, +0x0C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF3, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x03, 0xF1, 0x88, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x02, 0xF6, 0x80, 0x9C, +0x8D, 0xEA, 0xCD, 0xEA, 0x40, 0xDB, 0x34, 0x10, +0x05, 0x94, 0xB1, 0x67, 0x80, 0x18, 0x3E, 0x5F, +0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x94, +0xA0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF3, 0x9C, 0x9B, 0x40, 0x6D, +0xAB, 0xED, 0x60, 0xA4, 0x2C, 0xEA, 0x0C, 0xEB, +0xAC, 0xEB, 0x05, 0x95, 0xAD, 0xEB, 0x0C, 0xEB, +0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF3, +0x80, 0x9B, 0x30, 0xF0, 0x20, 0x6D, 0x03, 0xF1, +0xA8, 0x9D, 0x60, 0x9C, 0x06, 0x96, 0xAC, 0xEB, +0x30, 0xF0, 0x20, 0x6D, 0x02, 0xF6, 0xA0, 0x9D, +0xC4, 0xEA, 0x46, 0x67, 0xAD, 0xEB, 0x04, 0x95, +0x07, 0x96, 0xAC, 0xEA, 0xAF, 0xED, 0xCC, 0xED, +0xAD, 0xEA, 0x2C, 0xEA, 0x4D, 0xEB, 0x60, 0xDC, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x0A, 0x6C, 0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x6C, 0x10, 0xF0, +0x00, 0x6D, 0x80, 0x18, 0x3E, 0x5F, 0x05, 0x97, +0x01, 0x5A, 0x58, 0x67, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0x82, 0xF5, 0x70, 0x9B, 0x10, 0xF0, +0x31, 0x6A, 0x4F, 0xF6, 0x19, 0x4A, 0x40, 0xDB, +0x00, 0x68, 0x31, 0x10, 0x82, 0xF3, 0x08, 0x70, +0x1A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, +0x78, 0x9A, 0x02, 0xF0, 0x00, 0x6C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x85, 0xF7, 0x08, 0x4A, 0x63, 0xF3, 0x64, 0x9A, +0x8D, 0xEB, 0x63, 0xF3, 0x64, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF6, 0x40, 0x9A, 0x03, 0x6B, +0x6B, 0xEB, 0x60, 0xC2, 0x18, 0x10, 0xFF, 0xF7, +0x1F, 0x6A, 0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, +0x40, 0xEA, 0x33, 0x58, 0x08, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF2, 0x4C, 0x9A, 0x60, 0xA2, +0x08, 0x6A, 0x6C, 0xEA, 0x04, 0x2A, 0x80, 0x18, +0x90, 0x5F, 0x01, 0x72, 0xCB, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF6, 0x40, 0x9A, 0x02, 0x6B, +0x6B, 0xEB, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6B, +0x82, 0xF5, 0x70, 0x9B, 0x10, 0xF0, 0x31, 0x6A, +0x4F, 0xF6, 0x1A, 0x4A, 0x40, 0xDB, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF3, 0x64, 0x9A, 0x02, 0x6C, +0xFF, 0xF7, 0x1F, 0x6D, 0x40, 0x9B, 0xFF, 0x6E, +0x41, 0x4E, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x02, 0xF6, 0x68, 0x9A, 0xE0, 0xF3, +0x1E, 0x4C, 0x30, 0xF0, 0x20, 0x68, 0x40, 0xAB, +0xAC, 0xEA, 0x8D, 0xEA, 0xAC, 0xEA, 0x40, 0xCB, +0x02, 0x6C, 0x80, 0x18, 0x59, 0x5F, 0x80, 0xF3, +0x4C, 0x98, 0x0A, 0x6C, 0x40, 0xEA, 0x00, 0x6C, +0xC0, 0x6D, 0x02, 0x6E, 0x80, 0x18, 0x59, 0x5F, +0x00, 0x6C, 0xC4, 0x67, 0x02, 0xF0, 0x00, 0x6D, +0x80, 0x18, 0x59, 0x5F, 0x00, 0x6C, 0xC4, 0x67, +0x0C, 0xF0, 0x00, 0x6D, 0x80, 0x18, 0x59, 0x5F, +0x00, 0x6C, 0x01, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x80, 0x18, 0x59, 0x5F, 0x10, 0xF0, 0x00, 0x6D, +0x01, 0x6E, 0x00, 0x6C, 0x80, 0x18, 0x59, 0x5F, +0x80, 0xF3, 0x4C, 0x98, 0x0A, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, 0x68, 0x9A, +0xFF, 0x6C, 0x04, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xBA, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; -u32 array_length_mp_8822c_fw_ap = 132504; +u32 array_length_mp_8822c_fw_ap = 130048; #endif /*defined(CONFIG_AP_WOWLAN) || (DM_ODM_SUPPORT_TYPE & (ODM_AP))*/ #if (DM_ODM_SUPPORT_TYPE & (ODM_WIN)) || (DM_ODM_SUPPORT_TYPE & (ODM_CE)) u8 array_mp_8822c_fw_nic[] = { -0x22, 0x88, 0x00, 0x00, 0x09, 0x00, 0x07, 0x00, -0x0C, 0x68, 0xEA, 0x3F, 0x00, 0x00, 0x00, 0x00, -0x02, 0x0D, 0x0F, 0x0D, 0xE4, 0x07, 0x00, 0x00, +0x22, 0x88, 0x00, 0x00, 0x09, 0x00, 0x0D, 0x00, +0x0D, 0x9C, 0xA8, 0x60, 0x00, 0x00, 0x00, 0x00, +0x09, 0x18, 0x0E, 0x2A, 0xE5, 0x07, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x80, 0xC0, 0x46, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, -0x70, 0xD5, 0x00, 0x00, 0xD8, 0xED, 0x01, 0x00, +0xC8, 0xD2, 0x00, 0x00, 0x38, 0xE7, 0x01, 0x00, 0x00, 0x00, 0x10, 0x80, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, @@ -17091,7 +16784,7 @@ u8 array_mp_8822c_fw_nic[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x99, 0x57, 0x03, 0x80, 0xFD, 0xFF, 0xFF, 0xFF, +0xED, 0x54, 0x03, 0x80, 0xFD, 0xFF, 0xFF, 0xFF, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -17100,7 +16793,7 @@ u8 array_mp_8822c_fw_nic[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xD9, 0x56, 0x03, 0x80, +0x00, 0x00, 0x00, 0x00, 0x2D, 0x54, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -17110,7 +16803,7 @@ u8 array_mp_8822c_fw_nic[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x95, 0x56, 0x03, 0x80, 0x01, 0x00, 0x00, 0x00, +0xE9, 0x53, 0x03, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -17120,7 +16813,7 @@ u8 array_mp_8822c_fw_nic[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x46, 0x20, 0x80, -0xD0, 0x46, 0x20, 0x80, 0xA1, 0x5A, 0x03, 0x80, +0xD0, 0x46, 0x20, 0x80, 0xF5, 0x57, 0x03, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -17155,23 +16848,23 @@ u8 array_mp_8822c_fw_nic[] = { 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x95, 0x39, 0x03, 0x80, -0xA1, 0x39, 0x03, 0x80, 0xA7, 0x39, 0x03, 0x80, -0xAD, 0x39, 0x03, 0x80, 0xB5, 0x39, 0x03, 0x80, -0xE7, 0x39, 0x03, 0x80, 0xF3, 0x39, 0x03, 0x80, -0xF9, 0x39, 0x03, 0x80, 0xFF, 0x39, 0x03, 0x80, -0x07, 0x3A, 0x03, 0x80, 0x49, 0x3A, 0x03, 0x80, -0x4F, 0x3A, 0x03, 0x80, 0x5B, 0x3A, 0x03, 0x80, -0x67, 0x3A, 0x03, 0x80, 0x73, 0x3A, 0x03, 0x80, -0x97, 0x3A, 0x03, 0x80, 0x9D, 0x3A, 0x03, 0x80, -0xA9, 0x3A, 0x03, 0x80, 0xB5, 0x3A, 0x03, 0x80, -0xC1, 0x3A, 0x03, 0x80, 0x59, 0x3C, 0x03, 0x80, -0x43, 0x3D, 0x03, 0x80, 0xBB, 0x3C, 0x03, 0x80, -0x43, 0x3D, 0x03, 0x80, 0xFF, 0x3B, 0x03, 0x80, -0x43, 0x3D, 0x03, 0x80, 0x43, 0x3D, 0x03, 0x80, -0x43, 0x3D, 0x03, 0x80, 0x25, 0x3D, 0x03, 0x80, -0x43, 0x3D, 0x03, 0x80, 0x43, 0x3D, 0x03, 0x80, -0x43, 0x3D, 0x03, 0x80, 0x97, 0x3B, 0x03, 0x80, +0x00, 0x00, 0x00, 0x00, 0xE9, 0x36, 0x03, 0x80, +0xF5, 0x36, 0x03, 0x80, 0xFB, 0x36, 0x03, 0x80, +0x01, 0x37, 0x03, 0x80, 0x09, 0x37, 0x03, 0x80, +0x3B, 0x37, 0x03, 0x80, 0x47, 0x37, 0x03, 0x80, +0x4D, 0x37, 0x03, 0x80, 0x53, 0x37, 0x03, 0x80, +0x5B, 0x37, 0x03, 0x80, 0x9D, 0x37, 0x03, 0x80, +0xA3, 0x37, 0x03, 0x80, 0xAF, 0x37, 0x03, 0x80, +0xBB, 0x37, 0x03, 0x80, 0xC7, 0x37, 0x03, 0x80, +0xEB, 0x37, 0x03, 0x80, 0xF1, 0x37, 0x03, 0x80, +0xFD, 0x37, 0x03, 0x80, 0x09, 0x38, 0x03, 0x80, +0x15, 0x38, 0x03, 0x80, 0xAD, 0x39, 0x03, 0x80, +0x97, 0x3A, 0x03, 0x80, 0x0F, 0x3A, 0x03, 0x80, +0x97, 0x3A, 0x03, 0x80, 0x53, 0x39, 0x03, 0x80, +0x97, 0x3A, 0x03, 0x80, 0x97, 0x3A, 0x03, 0x80, +0x97, 0x3A, 0x03, 0x80, 0x79, 0x3A, 0x03, 0x80, +0x97, 0x3A, 0x03, 0x80, 0x97, 0x3A, 0x03, 0x80, +0x97, 0x3A, 0x03, 0x80, 0xEB, 0x38, 0x03, 0x80, 0x0C, 0x1D, 0x00, 0x00, 0x3C, 0x1C, 0x00, 0x00, 0x90, 0x1C, 0x00, 0x00, 0xB0, 0x09, 0x00, 0x00, 0x20, 0x0A, 0x00, 0x00, 0x2C, 0x0A, 0x00, 0x00, @@ -17207,31 +16900,31 @@ u8 array_mp_8822c_fw_nic[] = { 0x50, 0x05, 0x51, 0x05, 0x78, 0x05, 0x79, 0x05, 0x7A, 0x05, 0x00, 0x00, 0xA8, 0x06, 0x10, 0x07, 0x00, 0x16, 0x04, 0x16, 0x08, 0x16, 0x00, 0x00, -0xB3, 0x54, 0x03, 0x80, 0xAD, 0x54, 0x03, 0x80, -0xB9, 0x54, 0x03, 0x80, 0xBF, 0x54, 0x03, 0x80, -0xC5, 0x54, 0x03, 0x80, 0xCB, 0x54, 0x03, 0x80, +0x07, 0x52, 0x03, 0x80, 0x01, 0x52, 0x03, 0x80, +0x0D, 0x52, 0x03, 0x80, 0x13, 0x52, 0x03, 0x80, +0x19, 0x52, 0x03, 0x80, 0x1F, 0x52, 0x03, 0x80, 0x09, 0x12, 0x1B, 0x24, 0x94, 0x0C, 0x94, 0x0E, -0x94, 0x18, 0x94, 0x1A, 0x81, 0x19, 0x11, 0x80, -0xE7, 0x19, 0x11, 0x80, 0x89, 0x19, 0x11, 0x80, -0xC1, 0x19, 0x11, 0x80, 0xE7, 0x19, 0x11, 0x80, -0xE7, 0x19, 0x11, 0x80, 0x91, 0x19, 0x11, 0x80, -0x99, 0x19, 0x11, 0x80, 0xA1, 0x19, 0x11, 0x80, -0xA9, 0x19, 0x11, 0x80, 0xE7, 0x19, 0x11, 0x80, -0xB9, 0x19, 0x11, 0x80, 0xD1, 0x19, 0x11, 0x80, -0xD9, 0x19, 0x11, 0x80, 0xB1, 0x19, 0x11, 0x80, -0xE1, 0x19, 0x11, 0x80, 0xE7, 0x19, 0x11, 0x80, -0xE7, 0x19, 0x11, 0x80, 0xC9, 0x19, 0x11, 0x80, +0x94, 0x18, 0x94, 0x1A, 0xBD, 0x19, 0x11, 0x80, +0x23, 0x1A, 0x11, 0x80, 0xC5, 0x19, 0x11, 0x80, +0xFD, 0x19, 0x11, 0x80, 0x23, 0x1A, 0x11, 0x80, +0x23, 0x1A, 0x11, 0x80, 0xCD, 0x19, 0x11, 0x80, +0xD5, 0x19, 0x11, 0x80, 0xDD, 0x19, 0x11, 0x80, +0xE5, 0x19, 0x11, 0x80, 0x23, 0x1A, 0x11, 0x80, +0xF5, 0x19, 0x11, 0x80, 0x0D, 0x1A, 0x11, 0x80, +0x15, 0x1A, 0x11, 0x80, 0xED, 0x19, 0x11, 0x80, +0x1D, 0x1A, 0x11, 0x80, 0x23, 0x1A, 0x11, 0x80, +0x23, 0x1A, 0x11, 0x80, 0x05, 0x1A, 0x11, 0x80, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0A, 0x0A, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0C, 0x14, 0x1C, 0x24, 0x2C, 0x36, 0x40, 0x00, 0x00, 0x00, -0x37, 0x38, 0x11, 0x80, 0x4F, 0x38, 0x11, 0x80, -0x37, 0x38, 0x11, 0x80, 0x4F, 0x38, 0x11, 0x80, -0x37, 0x38, 0x11, 0x80, 0x4F, 0x38, 0x11, 0x80, -0x5B, 0x38, 0x11, 0x80, 0x5B, 0x38, 0x11, 0x80, -0x5B, 0x38, 0x11, 0x80, 0x37, 0x38, 0x11, 0x80, -0x4F, 0x38, 0x11, 0x80, 0x4F, 0x38, 0x11, 0x80, -0x37, 0x38, 0x11, 0x80, 0x61, 0x38, 0x11, 0x80, -0x61, 0x38, 0x11, 0x80, 0x07, 0x08, 0x09, 0x0A, +0x77, 0x38, 0x11, 0x80, 0x8F, 0x38, 0x11, 0x80, +0x77, 0x38, 0x11, 0x80, 0x8F, 0x38, 0x11, 0x80, +0x77, 0x38, 0x11, 0x80, 0x8F, 0x38, 0x11, 0x80, +0x9B, 0x38, 0x11, 0x80, 0x9B, 0x38, 0x11, 0x80, +0x9B, 0x38, 0x11, 0x80, 0x77, 0x38, 0x11, 0x80, +0x8F, 0x38, 0x11, 0x80, 0x8F, 0x38, 0x11, 0x80, +0x77, 0x38, 0x11, 0x80, 0xA1, 0x38, 0x11, 0x80, +0xA1, 0x38, 0x11, 0x80, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x00, 0x00, 0x12, 0x12, 0x14, 0x12, 0x0F, 0x0F, 0x0C, 0x0C, 0x09, 0x08, 0x08, 0x07, 0x0A, 0x0A, 0x09, 0x07, @@ -17255,16 +16948,16 @@ u8 array_mp_8822c_fw_nic[] = { 0x18, 0x16, 0x0D, 0x0D, 0x0A, 0x08, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x4A, 0x40, 0x36, 0x2C, 0x24, 0x1C, 0x14, 0x0C, -0x04, 0x00, 0x00, 0x00, 0xAD, 0x46, 0x10, 0x80, -0x81, 0x47, 0x10, 0x80, 0xBD, 0x46, 0x10, 0x80, -0xF3, 0x46, 0x10, 0x80, 0x2F, 0x47, 0x10, 0x80, -0x81, 0x47, 0x10, 0x80, 0xCB, 0x47, 0x10, 0x80, -0xE3, 0x47, 0x10, 0x80, 0xEF, 0x47, 0x10, 0x80, -0x21, 0x48, 0x10, 0x80, 0x53, 0x48, 0x10, 0x80, -0x63, 0x48, 0x10, 0x80, 0x09, 0x12, 0x1B, 0x24, -0xFF, 0x71, 0x10, 0x80, 0x5B, 0x72, 0x10, 0x80, -0x7F, 0x72, 0x10, 0x80, 0xAF, 0x72, 0x10, 0x80, -0xD3, 0x72, 0x10, 0x80, 0xFB, 0x72, 0x10, 0x80, +0x04, 0x00, 0x00, 0x00, 0x09, 0x52, 0x10, 0x80, +0xDD, 0x52, 0x10, 0x80, 0x19, 0x52, 0x10, 0x80, +0x4F, 0x52, 0x10, 0x80, 0x8B, 0x52, 0x10, 0x80, +0xDD, 0x52, 0x10, 0x80, 0x27, 0x53, 0x10, 0x80, +0x3F, 0x53, 0x10, 0x80, 0x4B, 0x53, 0x10, 0x80, +0x7D, 0x53, 0x10, 0x80, 0xAF, 0x53, 0x10, 0x80, +0xBF, 0x53, 0x10, 0x80, 0x09, 0x12, 0x1B, 0x24, +0x5B, 0x7D, 0x10, 0x80, 0xB7, 0x7D, 0x10, 0x80, +0xDB, 0x7D, 0x10, 0x80, 0x0B, 0x7E, 0x10, 0x80, +0x2F, 0x7E, 0x10, 0x80, 0x57, 0x7E, 0x10, 0x80, 0x19, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, @@ -17288,10 +16981,10 @@ u8 array_mp_8822c_fw_nic[] = { 0x2A, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0xB3, 0x6E, 0x11, 0x80, 0x37, 0x70, 0x11, 0x80, -0x19, 0x71, 0x11, 0x80, 0x7F, 0x71, 0x11, 0x80, -0x7F, 0x71, 0x11, 0x80, 0xB3, 0x6E, 0x11, 0x80, -0xB3, 0x6E, 0x11, 0x80, 0x63, 0x6F, 0x6E, 0x66, +0xC7, 0x68, 0x11, 0x80, 0x4B, 0x6A, 0x11, 0x80, +0x2D, 0x6B, 0x11, 0x80, 0x93, 0x6B, 0x11, 0x80, +0x93, 0x6B, 0x11, 0x80, 0xC7, 0x68, 0x11, 0x80, +0xC7, 0x68, 0x11, 0x80, 0x63, 0x6F, 0x6E, 0x66, 0x69, 0x67, 0x5F, 0x70, 0x68, 0x79, 0x64, 0x6D, 0x5F, 0x70, 0x61, 0x72, 0x61, 0x6D, 0x65, 0x74, 0x65, 0x72, 0x5F, 0x69, 0x6E, 0x69, 0x74, 0x5F, @@ -17341,126 +17034,126 @@ u8 array_mp_8822c_fw_nic[] = { 0x6D, 0x5F, 0x63, 0x68, 0x6B, 0x5F, 0x70, 0x6B, 0x67, 0x5F, 0x73, 0x65, 0x74, 0x5F, 0x76, 0x61, 0x6C, 0x69, 0x64, 0x5F, 0x38, 0x38, 0x32, 0x32, -0x63, 0x00, 0x00, 0x00, 0xC5, 0x8A, 0x11, 0x80, -0xC1, 0x8A, 0x11, 0x80, 0xCB, 0x8A, 0x11, 0x80, -0xCF, 0x8A, 0x11, 0x80, 0xD3, 0x8A, 0x11, 0x80, -0xD9, 0x8A, 0x11, 0x80, 0xE1, 0x8A, 0x11, 0x80, -0x0B, 0x8B, 0x11, 0x80, 0x39, 0x8B, 0x11, 0x80, -0x3F, 0x8B, 0x11, 0x80, 0x8B, 0x8B, 0x11, 0x80, -0x99, 0x8B, 0x11, 0x80, 0xB1, 0x8B, 0x11, 0x80, -0xD3, 0x8B, 0x11, 0x80, 0xC9, 0xDF, 0x11, 0x80, -0xEB, 0xDF, 0x11, 0x80, 0x0D, 0xE0, 0x11, 0x80, -0x2F, 0xE0, 0x11, 0x80, 0x53, 0xE0, 0x11, 0x80, -0x8D, 0xE0, 0x11, 0x80, 0xB1, 0xE0, 0x11, 0x80, -0xD5, 0xE0, 0x11, 0x80, 0xF9, 0xE0, 0x11, 0x80, -0x1F, 0xE1, 0x11, 0x80, 0x01, 0x01, 0x04, 0x10, +0x63, 0x00, 0x00, 0x00, 0xED, 0x84, 0x11, 0x80, +0xE9, 0x84, 0x11, 0x80, 0xF3, 0x84, 0x11, 0x80, +0xF7, 0x84, 0x11, 0x80, 0xFB, 0x84, 0x11, 0x80, +0x01, 0x85, 0x11, 0x80, 0x09, 0x85, 0x11, 0x80, +0x33, 0x85, 0x11, 0x80, 0x61, 0x85, 0x11, 0x80, +0x67, 0x85, 0x11, 0x80, 0xB3, 0x85, 0x11, 0x80, +0xC1, 0x85, 0x11, 0x80, 0xD9, 0x85, 0x11, 0x80, +0xFB, 0x85, 0x11, 0x80, 0x29, 0xD9, 0x11, 0x80, +0x4B, 0xD9, 0x11, 0x80, 0x6D, 0xD9, 0x11, 0x80, +0x8F, 0xD9, 0x11, 0x80, 0xB3, 0xD9, 0x11, 0x80, +0xED, 0xD9, 0x11, 0x80, 0x11, 0xDA, 0x11, 0x80, +0x35, 0xDA, 0x11, 0x80, 0x59, 0xDA, 0x11, 0x80, +0x7F, 0xDA, 0x11, 0x80, 0x01, 0x01, 0x04, 0x10, 0x40, 0x00, 0x00, 0x00, 0xE0, 0x04, 0xE3, 0x04, 0xE3, 0x04, 0xE3, 0x04, 0xE3, 0x04, 0x00, 0x00, -0xB5, 0x9A, 0x11, 0x80, 0xB5, 0x9A, 0x11, 0x80, -0xB5, 0x9A, 0x11, 0x80, 0xCF, 0x9A, 0x11, 0x80, -0xB5, 0x9A, 0x11, 0x80, 0xB5, 0x9A, 0x11, 0x80, -0xB5, 0x9A, 0x11, 0x80, 0xB1, 0x9A, 0x11, 0x80, -0xB1, 0x9A, 0x11, 0x80, 0xB1, 0x9A, 0x11, 0x80, -0xB1, 0x9A, 0x11, 0x80, 0xB1, 0x9A, 0x11, 0x80, -0x3F, 0x9B, 0x11, 0x80, 0x49, 0x9B, 0x11, 0x80, +0x45, 0x93, 0x11, 0x80, 0x45, 0x93, 0x11, 0x80, +0x45, 0x93, 0x11, 0x80, 0x5F, 0x93, 0x11, 0x80, +0x45, 0x93, 0x11, 0x80, 0x45, 0x93, 0x11, 0x80, +0x45, 0x93, 0x11, 0x80, 0x41, 0x93, 0x11, 0x80, +0x41, 0x93, 0x11, 0x80, 0x41, 0x93, 0x11, 0x80, +0x41, 0x93, 0x11, 0x80, 0x41, 0x93, 0x11, 0x80, +0xCF, 0x93, 0x11, 0x80, 0xD9, 0x93, 0x11, 0x80, 0xA8, 0x06, 0x10, 0x07, 0x00, 0x16, 0x04, 0x16, 0x08, 0x16, 0x00, 0x00, 0x18, 0x06, 0x08, 0x07, 0x28, 0x16, 0x38, 0x16, 0x48, 0x16, 0x00, 0x00, -0x07, 0x9B, 0x03, 0x80, 0x17, 0x9B, 0x03, 0x80, -0x21, 0x9B, 0x03, 0x80, 0x2B, 0x9B, 0x03, 0x80, -0x3D, 0x9B, 0x03, 0x80, 0x8D, 0xAA, 0x03, 0x80, -0x89, 0xAA, 0x03, 0x80, 0x8D, 0xAA, 0x03, 0x80, -0x89, 0xAA, 0x03, 0x80, 0xAD, 0xAA, 0x03, 0x80, -0x89, 0xAA, 0x03, 0x80, 0xAD, 0xAA, 0x03, 0x80, -0x89, 0xAA, 0x03, 0x80, 0xCD, 0xAA, 0x03, 0x80, -0x89, 0xAA, 0x03, 0x80, 0xCD, 0xAA, 0x03, 0x80, -0x89, 0xAA, 0x03, 0x80, 0xED, 0xAA, 0x03, 0x80, -0x89, 0xAA, 0x03, 0x80, 0xED, 0xAA, 0x03, 0x80, -0xF5, 0xAB, 0x03, 0x80, 0xF5, 0xAB, 0x03, 0x80, -0xF5, 0xAB, 0x03, 0x80, 0xF5, 0xAB, 0x03, 0x80, -0x15, 0xAC, 0x03, 0x80, 0x15, 0xAC, 0x03, 0x80, -0x15, 0xAC, 0x03, 0x80, 0x15, 0xAC, 0x03, 0x80, -0x35, 0xAC, 0x03, 0x80, 0x35, 0xAC, 0x03, 0x80, -0x35, 0xAC, 0x03, 0x80, 0x35, 0xAC, 0x03, 0x80, -0x55, 0xAC, 0x03, 0x80, 0x55, 0xAC, 0x03, 0x80, -0x55, 0xAC, 0x03, 0x80, 0x55, 0xAC, 0x03, 0x80, +0x5F, 0x98, 0x03, 0x80, 0x6F, 0x98, 0x03, 0x80, +0x79, 0x98, 0x03, 0x80, 0x83, 0x98, 0x03, 0x80, +0x95, 0x98, 0x03, 0x80, 0xE5, 0xA7, 0x03, 0x80, +0xE1, 0xA7, 0x03, 0x80, 0xE5, 0xA7, 0x03, 0x80, +0xE1, 0xA7, 0x03, 0x80, 0x05, 0xA8, 0x03, 0x80, +0xE1, 0xA7, 0x03, 0x80, 0x05, 0xA8, 0x03, 0x80, +0xE1, 0xA7, 0x03, 0x80, 0x25, 0xA8, 0x03, 0x80, +0xE1, 0xA7, 0x03, 0x80, 0x25, 0xA8, 0x03, 0x80, +0xE1, 0xA7, 0x03, 0x80, 0x45, 0xA8, 0x03, 0x80, +0xE1, 0xA7, 0x03, 0x80, 0x45, 0xA8, 0x03, 0x80, +0x4D, 0xA9, 0x03, 0x80, 0x4D, 0xA9, 0x03, 0x80, +0x4D, 0xA9, 0x03, 0x80, 0x4D, 0xA9, 0x03, 0x80, +0x6D, 0xA9, 0x03, 0x80, 0x6D, 0xA9, 0x03, 0x80, +0x6D, 0xA9, 0x03, 0x80, 0x6D, 0xA9, 0x03, 0x80, +0x8D, 0xA9, 0x03, 0x80, 0x8D, 0xA9, 0x03, 0x80, +0x8D, 0xA9, 0x03, 0x80, 0x8D, 0xA9, 0x03, 0x80, +0xAD, 0xA9, 0x03, 0x80, 0xAD, 0xA9, 0x03, 0x80, +0xAD, 0xA9, 0x03, 0x80, 0xAD, 0xA9, 0x03, 0x80, 0x50, 0x05, 0x00, 0x00, 0x51, 0x05, 0x00, 0x00, 0x78, 0x05, 0x00, 0x00, 0x79, 0x05, 0x00, 0x00, 0x7A, 0x05, 0x00, 0x00, 0x50, 0x05, 0x00, 0x00, 0x51, 0x05, 0x00, 0x00, 0x78, 0x05, 0x00, 0x00, 0x79, 0x05, 0x00, 0x00, 0x7A, 0x05, 0x00, 0x00, -0xBF, 0xC7, 0x11, 0x80, 0x0F, 0xC8, 0x11, 0x80, -0x67, 0xC8, 0x11, 0x80, 0xBF, 0xC8, 0x11, 0x80, -0x25, 0xC9, 0x11, 0x80, 0x8F, 0xCE, 0x11, 0x80, -0xB7, 0xCE, 0x11, 0x80, 0xDD, 0xCE, 0x11, 0x80, -0x03, 0xCF, 0x11, 0x80, 0x29, 0xCF, 0x11, 0x80, -0xEF, 0xC1, 0x03, 0x80, 0x4F, 0xC2, 0x03, 0x80, -0xE3, 0xC2, 0x03, 0x80, 0x81, 0xC3, 0x03, 0x80, -0x25, 0xC4, 0x03, 0x80, 0xFC, 0x10, 0x60, 0xB8, -0xFA, 0xFA, 0xFA, 0xFA, 0x8C, 0x04, 0x64, 0xB8, -0x90, 0x04, 0x64, 0xB8, 0x94, 0x04, 0x64, 0xB8, -0x98, 0x04, 0x64, 0xB8, 0x9C, 0x04, 0x64, 0xB8, -0xA0, 0x04, 0x64, 0xB8, 0x01, 0x06, 0x64, 0xB8, -0x00, 0x00, 0x68, 0xB8, 0x48, 0x00, 0x68, 0xB8, -0x48, 0x04, 0x68, 0xB8, 0x77, 0x05, 0x64, 0xB8, -0x6C, 0x05, 0x64, 0xB8, 0x68, 0x05, 0x64, 0xB8, -0x54, 0x05, 0x64, 0xB8, 0x00, 0x00, 0x00, 0x80, -0x70, 0x06, 0x64, 0xB8, 0x78, 0x06, 0x64, 0xB8, -0x00, 0x00, 0x01, 0x80, 0x74, 0x06, 0x64, 0xB8, -0x98, 0x06, 0x64, 0xB8, 0x9C, 0x06, 0x64, 0xB8, -0x54, 0x06, 0x64, 0xB8, 0x58, 0x06, 0x64, 0xB8, -0x5C, 0x06, 0x64, 0xB8, 0xFF, 0xFF, 0xFF, 0x8F, -0x00, 0x00, 0x60, 0xB8, 0x00, 0x00, 0x64, 0xB8, -0xBF, 0x01, 0x64, 0xB8, 0x89, 0x00, 0x60, 0xB8, -0x8A, 0x00, 0x60, 0xB8, 0x1A, 0x04, 0x64, 0xB8, -0x1B, 0x04, 0x64, 0xB8, 0xF4, 0x11, 0x64, 0xB8, -0x58, 0x05, 0x64, 0xB8, 0xE2, 0x10, 0x60, 0xB8, -0x30, 0x01, 0x64, 0xB8, 0x20, 0x01, 0x64, 0xB8, -0x20, 0x11, 0x64, 0xB8, 0x01, 0x8F, 0x00, 0xF0, -0x28, 0x11, 0x64, 0xB8, 0x30, 0x11, 0x64, 0xB8, -0x38, 0x11, 0x64, 0xB8, 0xE0, 0x11, 0x64, 0xB8, -0x50, 0x00, 0x60, 0xB8, 0x38, 0x01, 0x64, 0xB8, -0x18, 0x34, 0x00, 0xB8, 0x88, 0x10, 0x60, 0xB8, -0xFB, 0x11, 0x64, 0xB8, 0xFA, 0x11, 0x64, 0xB8, -0xF8, 0x11, 0x64, 0xB8, 0xC6, 0x04, 0x64, 0xB8, -0x00, 0x00, 0x66, 0xB8, 0x02, 0x00, 0x60, 0xB8, -0xBF, 0xD8, 0xF1, 0x02, 0x00, 0x00, 0x00, 0x40, -0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x41, -0xB7, 0xD8, 0xF1, 0x02, 0x28, 0x06, 0x64, 0xB8, -0x00, 0x00, 0x80, 0xC0, 0x2C, 0x06, 0x64, 0xB8, -0xFF, 0x00, 0xFF, 0x00, 0x96, 0x02, 0x64, 0xB8, -0x84, 0x00, 0x60, 0xB8, 0x00, 0x01, 0x64, 0xB8, -0x2C, 0x02, 0x64, 0xB8, 0x44, 0x02, 0x64, 0xB8, -0x4C, 0x02, 0x64, 0xB8, 0x54, 0x02, 0x64, 0xB8, -0xD8, 0x04, 0x64, 0xB8, 0xDC, 0x04, 0x64, 0xB8, -0x7D, 0x04, 0x64, 0xB8, 0x14, 0x11, 0x64, 0xB8, -0xA0, 0x02, 0x64, 0xB8, 0x9C, 0x02, 0x64, 0xB8, -0xC7, 0x01, 0x64, 0xB8, 0x90, 0x06, 0x64, 0xB8, -0x80, 0x00, 0x60, 0xB8, 0x00, 0x00, 0x80, 0x00, -0xFF, 0xFF, 0x7F, 0xFF, 0x00, 0x00, 0x78, 0xB8, -0xA4, 0x04, 0x64, 0xB8, 0xA8, 0x04, 0x64, 0xB8, -0xF8, 0x10, 0x60, 0xB8, 0x00, 0x00, 0x20, 0x00, -0x10, 0x02, 0x64, 0xB8, 0x88, 0x02, 0x64, 0xB8, -0xE2, 0x04, 0x64, 0xB8, 0xA0, 0x00, 0x78, 0xB8, -0x30, 0x00, 0x78, 0xB8, 0x8C, 0x00, 0x60, 0xB8, -0x86, 0x02, 0x64, 0xB8, 0xA2, 0x02, 0x64, 0xB8, -0xCC, 0x01, 0x64, 0xB8, 0x62, 0x06, 0x64, 0xB8, -0x0A, 0x06, 0x64, 0xB8, 0xB1, 0x05, 0x64, 0xB8, -0xCA, 0x01, 0x64, 0xB8, 0x5B, 0x01, 0x64, 0xB8, -0x3C, 0x01, 0x64, 0xB8, 0x00, 0x00, 0x1E, 0x00, -0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, -0x00, 0x00, 0x08, 0x00, 0x22, 0x05, 0x64, 0xB8, -0x3F, 0x42, 0x0F, 0x00, 0xFE, 0x11, 0x64, 0xB8, -0xFC, 0x11, 0x64, 0xB8, 0xE0, 0x10, 0x60, 0xB8, -0x57, 0x01, 0x64, 0xB8, 0x31, 0x00, 0x78, 0xB8, -0x1D, 0x04, 0x64, 0xB8, 0x32, 0x00, 0x78, 0xB8, -0x33, 0x00, 0x78, 0xB8, 0x7A, 0x04, 0x64, 0xB8, -0x24, 0x04, 0x64, 0xB8, 0x56, 0x04, 0x64, 0xB8, -0x1C, 0x04, 0x64, 0xB8, 0x00, 0x00, 0x00, 0x10, -0x20, 0x04, 0x64, 0xB8, 0xFF, 0xFF, 0xEF, 0xFF, -0x00, 0x00, 0x10, 0x00, 0x86, 0x00, 0x60, 0xB8, -0x00, 0x00, 0x00, 0x02, 0xCB, 0x01, 0x64, 0xB8, -0x04, 0x00, 0x68, 0xB8, 0x08, 0x00, 0x68, 0xB8, +0x13, 0xC1, 0x11, 0x80, 0x63, 0xC1, 0x11, 0x80, +0xBB, 0xC1, 0x11, 0x80, 0x13, 0xC2, 0x11, 0x80, +0x79, 0xC2, 0x11, 0x80, 0xE3, 0xC7, 0x11, 0x80, +0x0B, 0xC8, 0x11, 0x80, 0x31, 0xC8, 0x11, 0x80, +0x57, 0xC8, 0x11, 0x80, 0x7D, 0xC8, 0x11, 0x80, +0x47, 0xBF, 0x03, 0x80, 0xA7, 0xBF, 0x03, 0x80, +0x3B, 0xC0, 0x03, 0x80, 0xD9, 0xC0, 0x03, 0x80, +0x7D, 0xC1, 0x03, 0x80, 0xFC, 0x10, 0x60, 0xB8, +0xFA, 0xFA, 0xFA, 0xFA, 0xCF, 0x01, 0x64, 0xB8, +0x8C, 0x04, 0x64, 0xB8, 0x90, 0x04, 0x64, 0xB8, +0x94, 0x04, 0x64, 0xB8, 0x98, 0x04, 0x64, 0xB8, +0x9C, 0x04, 0x64, 0xB8, 0xA0, 0x04, 0x64, 0xB8, +0x01, 0x06, 0x64, 0xB8, 0xDD, 0xCC, 0xBB, 0xAA, +0x00, 0x00, 0x68, 0xB8, 0x04, 0x00, 0x68, 0xB8, +0x77, 0x05, 0x64, 0xB8, 0x6C, 0x05, 0x64, 0xB8, +0x68, 0x05, 0x64, 0xB8, 0x54, 0x05, 0x64, 0xB8, +0x00, 0x00, 0x00, 0x80, 0x70, 0x06, 0x64, 0xB8, +0x78, 0x06, 0x64, 0xB8, 0x00, 0x00, 0x01, 0x80, +0x74, 0x06, 0x64, 0xB8, 0x98, 0x06, 0x64, 0xB8, +0x9C, 0x06, 0x64, 0xB8, 0x54, 0x06, 0x64, 0xB8, +0x58, 0x06, 0x64, 0xB8, 0x5C, 0x06, 0x64, 0xB8, +0xFF, 0xFF, 0xFF, 0x8F, 0x00, 0x00, 0x60, 0xB8, +0x00, 0x00, 0x64, 0xB8, 0xBF, 0x01, 0x64, 0xB8, +0x89, 0x00, 0x60, 0xB8, 0x8A, 0x00, 0x60, 0xB8, +0x1A, 0x04, 0x64, 0xB8, 0x1B, 0x04, 0x64, 0xB8, +0xF4, 0x11, 0x64, 0xB8, 0x58, 0x05, 0x64, 0xB8, +0xE2, 0x10, 0x60, 0xB8, 0x30, 0x01, 0x64, 0xB8, +0x20, 0x01, 0x64, 0xB8, 0x20, 0x11, 0x64, 0xB8, +0x01, 0x8F, 0x00, 0xF0, 0x28, 0x11, 0x64, 0xB8, +0x30, 0x11, 0x64, 0xB8, 0x38, 0x11, 0x64, 0xB8, +0xE0, 0x11, 0x64, 0xB8, 0x50, 0x00, 0x60, 0xB8, +0x38, 0x01, 0x64, 0xB8, 0x18, 0x34, 0x00, 0xB8, +0x88, 0x10, 0x60, 0xB8, 0xFB, 0x11, 0x64, 0xB8, +0xFA, 0x11, 0x64, 0xB8, 0xF8, 0x11, 0x64, 0xB8, +0xC6, 0x04, 0x64, 0xB8, 0x00, 0x00, 0x66, 0xB8, +0x02, 0x00, 0x60, 0xB8, 0xBF, 0xD8, 0xF1, 0x02, +0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x00, +0x00, 0x00, 0x00, 0x41, 0xB7, 0xD8, 0xF1, 0x02, +0x28, 0x06, 0x64, 0xB8, 0x00, 0x00, 0x80, 0xC0, +0x2C, 0x06, 0x64, 0xB8, 0xFF, 0x00, 0xFF, 0x00, +0x96, 0x02, 0x64, 0xB8, 0x84, 0x00, 0x60, 0xB8, +0x00, 0x01, 0x64, 0xB8, 0x2C, 0x02, 0x64, 0xB8, +0x44, 0x02, 0x64, 0xB8, 0x4C, 0x02, 0x64, 0xB8, +0x54, 0x02, 0x64, 0xB8, 0xD8, 0x04, 0x64, 0xB8, +0xDC, 0x04, 0x64, 0xB8, 0x7D, 0x04, 0x64, 0xB8, +0x14, 0x11, 0x64, 0xB8, 0xA0, 0x02, 0x64, 0xB8, +0x9C, 0x02, 0x64, 0xB8, 0xC7, 0x01, 0x64, 0xB8, +0x90, 0x06, 0x64, 0xB8, 0x80, 0x00, 0x60, 0xB8, +0x00, 0x00, 0x80, 0x00, 0xFF, 0xFF, 0x7F, 0xFF, +0x00, 0x00, 0x78, 0xB8, 0xA4, 0x04, 0x64, 0xB8, +0xA8, 0x04, 0x64, 0xB8, 0xF8, 0x10, 0x60, 0xB8, +0x00, 0x00, 0x20, 0x00, 0x10, 0x02, 0x64, 0xB8, +0x88, 0x02, 0x64, 0xB8, 0xE2, 0x04, 0x64, 0xB8, +0xA0, 0x00, 0x78, 0xB8, 0x30, 0x00, 0x78, 0xB8, +0x8C, 0x00, 0x60, 0xB8, 0x86, 0x02, 0x64, 0xB8, +0xA2, 0x02, 0x64, 0xB8, 0xCC, 0x01, 0x64, 0xB8, +0x62, 0x06, 0x64, 0xB8, 0x0A, 0x06, 0x64, 0xB8, +0xB1, 0x05, 0x64, 0xB8, 0xCA, 0x01, 0x64, 0xB8, +0x5B, 0x01, 0x64, 0xB8, 0x3C, 0x01, 0x64, 0xB8, +0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x02, 0x00, +0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, +0x22, 0x05, 0x64, 0xB8, 0x3F, 0x42, 0x0F, 0x00, +0xFE, 0x11, 0x64, 0xB8, 0xFC, 0x11, 0x64, 0xB8, +0xE0, 0x10, 0x60, 0xB8, 0x57, 0x01, 0x64, 0xB8, +0x31, 0x00, 0x78, 0xB8, 0x1D, 0x04, 0x64, 0xB8, +0x32, 0x00, 0x78, 0xB8, 0x33, 0x00, 0x78, 0xB8, +0x7A, 0x04, 0x64, 0xB8, 0x24, 0x04, 0x64, 0xB8, +0x56, 0x04, 0x64, 0xB8, 0x1C, 0x04, 0x64, 0xB8, +0x00, 0x00, 0x00, 0x10, 0x20, 0x04, 0x64, 0xB8, +0xFF, 0xFF, 0xEF, 0xFF, 0x00, 0x00, 0x10, 0x00, +0x86, 0x00, 0x60, 0xB8, 0x00, 0x00, 0x00, 0x02, +0xCB, 0x01, 0x64, 0xB8, 0x08, 0x00, 0x68, 0xB8, 0x0C, 0x00, 0x68, 0xB8, 0x87, 0x00, 0x60, 0xB8, 0x88, 0x00, 0x60, 0xB8, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x42, 0xE0, 0x00, 0x60, 0xB8, @@ -17506,6 +17199,8 @@ u8 array_mp_8822c_fw_nic[] = { 0x05, 0x1C, 0x66, 0xB8, 0x06, 0x1C, 0x66, 0xB8, 0x07, 0x1C, 0x66, 0xB8, 0x44, 0x00, 0x78, 0xB8, 0x01, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x60, +0x52, 0x29, 0x46, 0xE2, 0x03, 0x29, 0x29, 0x00, +0x32, 0xFC, 0x18, 0xA2, 0x08, 0x00, 0x04, 0x05, 0x01, 0x00, 0x0F, 0x70, 0x01, 0x00, 0x1F, 0x70, 0x01, 0x00, 0x2F, 0x70, 0x01, 0x00, 0x3F, 0x70, 0x01, 0x00, 0x4F, 0x70, 0x01, 0x00, 0x5F, 0x70, @@ -17601,591 +17296,590 @@ u8 array_mp_8822c_fw_nic[] = { 0x50, 0x02, 0x64, 0xB8, 0x04, 0x00, 0x78, 0xB8, 0x48, 0x02, 0x64, 0xB8, 0x74, 0x00, 0x18, 0x2E, 0x74, 0x00, 0x19, 0x2E, 0x01, 0x00, 0x60, 0xB8, -0x01, 0x00, 0x64, 0xB8, 0xCF, 0x01, 0x64, 0xB8, -0x34, 0x01, 0x64, 0xB8, 0x64, 0x05, 0x64, 0xB8, -0x60, 0x05, 0x64, 0xB8, 0x27, 0x05, 0x64, 0xB8, -0xB5, 0x05, 0x64, 0xB8, 0x1D, 0x05, 0x64, 0xB8, -0x1C, 0x05, 0x64, 0xB8, 0xB7, 0x05, 0x64, 0xB8, -0x31, 0x05, 0x64, 0xB8, 0x3C, 0x11, 0x64, 0xB8, -0x50, 0x05, 0x64, 0xB8, 0x40, 0x05, 0x64, 0xB8, -0xC8, 0x01, 0x64, 0xB8, 0xC9, 0x01, 0x64, 0xB8, -0x0C, 0xEA, 0xEF, 0xFD, 0xA0, 0x01, 0x64, 0xB8, -0xB4, 0x05, 0x64, 0xB8, 0x80, 0x05, 0x64, 0xB8, -0x48, 0x00, 0x60, 0xB8, 0xFF, 0xFF, 0xFE, 0xFF, -0x44, 0x00, 0x60, 0xB8, 0x60, 0x00, 0x60, 0xB8, -0x47, 0x00, 0x60, 0xB8, 0x46, 0x00, 0x60, 0xB8, -0x63, 0x00, 0x60, 0xB8, 0x62, 0x00, 0x60, 0xB8, -0x45, 0x00, 0x60, 0xB8, 0x61, 0x00, 0x60, 0xB8, -0xC6, 0x01, 0x64, 0xB8, 0x57, 0x05, 0x64, 0xB8, -0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x05, -0x64, 0x01, 0x64, 0xB8, 0x53, 0x05, 0x64, 0xB8, -0x94, 0x01, 0x64, 0xB8, 0x54, 0x00, 0x60, 0xB8, -0x24, 0x01, 0x64, 0xB8, 0x24, 0x11, 0x64, 0xB8, -0x2C, 0x11, 0x64, 0xB8, 0x34, 0x11, 0x64, 0xB8, -0xE4, 0x11, 0x64, 0xB8, 0x00, 0x40, 0xE0, 0x17, -0x01, 0x70, 0x00, 0x03, 0xE0, 0x12, 0x64, 0xB8, -0x67, 0x05, 0x64, 0xB8, 0x66, 0x05, 0x64, 0xB8, -0x65, 0x05, 0x64, 0xB8, 0x63, 0x05, 0x64, 0xB8, -0x62, 0x05, 0x64, 0xB8, 0x61, 0x05, 0x64, 0xB8, -0xB4, 0x00, 0x60, 0xB8, 0x2F, 0x01, 0x64, 0xB8, -0xE8, 0x10, 0x60, 0xB8, 0x00, 0x3C, 0x64, 0xB8, -0x00, 0x4C, 0x64, 0xB8, 0x00, 0x58, 0x64, 0xB8, -0x00, 0x5C, 0x64, 0xB8, 0xF8, 0x05, 0x64, 0xB8, -0x83, 0x00, 0x60, 0xB8, 0x08, 0x01, 0x64, 0xB8, -0x90, 0x00, 0x60, 0xB8, 0x92, 0x06, 0x64, 0xB8, -0x00, 0x10, 0x60, 0xB8, 0x92, 0x00, 0x60, 0xB8, -0xFF, 0xFF, 0xFF, 0x7F, 0x88, 0x06, 0x64, 0xB8, -0x00, 0x00, 0x68, 0x18, 0x40, 0x00, 0x78, 0xB8, -0x2C, 0x04, 0x64, 0xB8, 0x14, 0x00, 0x78, 0xB8, -0x5F, 0x01, 0x64, 0xB8, 0x1F, 0x07, 0x64, 0xB8, -0x1C, 0x07, 0x64, 0xB8, 0xB8, 0x05, 0x64, 0xB8, -0xBC, 0x05, 0x64, 0xB8, 0x5F, 0x11, 0x64, 0xB8, -0xFE, 0xFF, 0xFF, 0x7F, 0x30, 0x00, 0x78, 0x18, -0x00, 0x00, 0x78, 0x18, 0x7E, 0x04, 0x64, 0xB8, -0xAC, 0x04, 0x64, 0xB8, 0x08, 0x10, 0x66, 0xB8, -0x04, 0x10, 0x66, 0xB8, 0x0C, 0x10, 0x66, 0xB8, -0x7C, 0x04, 0x64, 0xB8, 0xF4, 0x00, 0x60, 0xB8, -0x71, 0x00, 0x60, 0xB8, 0xE4, 0x00, 0x60, 0xB8, -0xE6, 0x00, 0x60, 0xB8, 0xE8, 0x00, 0x60, 0xB8, -0xE9, 0x00, 0x60, 0xB8, 0xEA, 0x00, 0x60, 0xB8, -0xEB, 0x00, 0x60, 0xB8, 0xE5, 0x00, 0x60, 0xB8, -0x44, 0x00, 0x02, 0x00, 0xA0, 0x07, 0x64, 0xB8, -0x00, 0x00, 0x60, 0x06, 0x00, 0x00, 0x60, 0x02, -0xFF, 0xFF, 0xBF, 0xFD, 0x00, 0x00, 0x40, 0x02, -0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, -0xBC, 0x01, 0x64, 0xB8, 0x16, 0x11, 0x64, 0xB8, -0x17, 0x11, 0x64, 0xB8, 0xD4, 0x07, 0x64, 0xB8, -0x08, 0x06, 0x64, 0xB8, 0x0F, 0x06, 0x64, 0xB8, -0x9A, 0x01, 0x64, 0xB8, 0x98, 0x01, 0x64, 0xB8, -0xD0, 0x05, 0x64, 0xB8, 0x08, 0x02, 0x64, 0xB8, -0x7B, 0x05, 0x64, 0xB8, 0x73, 0x05, 0x64, 0xB8, -0xD4, 0x04, 0x60, 0xB8, 0xD4, 0x04, 0x64, 0xB8, -0x84, 0x04, 0x60, 0xB8, 0x84, 0x04, 0x64, 0xB8, -0xC8, 0x04, 0x60, 0xB8, 0xC8, 0x04, 0x64, 0xB8, -0x78, 0x04, 0x60, 0xB8, 0x78, 0x04, 0x64, 0xB8, -0x00, 0x90, 0x01, 0x00, 0x01, 0x01, 0x64, 0xB8, -0xA3, 0x00, 0x60, 0xB8, 0xA0, 0x00, 0x60, 0xB8, -0x70, 0x00, 0x60, 0xB8, 0x35, 0x00, 0x60, 0xB8, -0x37, 0x00, 0x60, 0xB8, 0x30, 0x00, 0x60, 0xB8, -0x00, 0x00, 0xFC, 0xFF, 0x40, 0x42, 0x0F, 0x00, -0x0D, 0xEA, 0xEF, 0xFD, 0x01, 0x00, 0x78, 0xB8, -0xA0, 0x06, 0x64, 0xB8, 0xFF, 0xFF, 0xFB, 0xFF, -0xC2, 0x01, 0x64, 0xB8, 0xA0, 0x34, 0x00, 0xB8, -0x00, 0x52, 0x00, 0xB8, 0x04, 0x52, 0x00, 0xB8, -0x08, 0x52, 0x00, 0xB8, 0x0C, 0x52, 0x00, 0xB8, -0x10, 0x52, 0x00, 0xB8, 0x30, 0x52, 0x00, 0xB8, -0x3C, 0x50, 0x00, 0xB8, 0x4C, 0x04, 0x64, 0xB8, -0xC0, 0x01, 0x64, 0xB8, 0xB8, 0x01, 0x64, 0xB8, -0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x02, 0x02, -0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x08, 0x08, -0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x20, 0x20, -0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x80, 0x80, -0xB2, 0x05, 0x64, 0xB8, 0xB3, 0x05, 0x64, 0xB8, -0x43, 0x05, 0x64, 0xB8, 0x7D, 0x05, 0x64, 0xB8, -0x7F, 0x05, 0x64, 0xB8, 0x72, 0x05, 0x64, 0xB8, -0x51, 0x05, 0x64, 0xB8, 0x78, 0x05, 0x64, 0xB8, -0x79, 0x05, 0x64, 0xB8, 0x7A, 0x05, 0x64, 0xB8, -0xCF, 0x05, 0x64, 0xB8, 0xE0, 0x05, 0x64, 0xB8, -0xE4, 0x05, 0x64, 0xB8, 0xE8, 0x05, 0x64, 0xB8, -0xEC, 0x05, 0x64, 0xB8, 0xF0, 0x05, 0x64, 0xB8, -0xB6, 0x05, 0x64, 0xB8, 0x04, 0x06, 0x64, 0xB8, -0xFF, 0xFF, 0xFF, 0xFE, 0x60, 0x16, 0x64, 0xB8, -0x09, 0x00, 0x78, 0xB8, 0xFF, 0xFF, 0x00, 0xF0, -0x00, 0x00, 0x30, 0x80, 0x00, 0x12, 0x00, 0x04, -0x08, 0x00, 0x78, 0xB8, 0x0C, 0x00, 0x78, 0xB8, -0x10, 0x00, 0x78, 0xB8, 0x03, 0x00, 0x78, 0xB8, -0xFF, 0xFF, 0x01, 0xFF, 0x18, 0x00, 0x78, 0xB8, -0x20, 0x00, 0x78, 0xB8, 0x05, 0x00, 0x78, 0xB8, -0x12, 0x05, 0x64, 0xB8, 0x10, 0x05, 0x64, 0xB8, -0x18, 0x15, 0x64, 0xB8, 0x04, 0x18, 0x66, 0xB8, -0x00, 0x18, 0x66, 0xB8, 0x10, 0x00, 0x66, 0xB8, -0x11, 0x00, 0x66, 0xB8, 0x12, 0x00, 0x66, 0xB8, -0x13, 0x00, 0x66, 0xB8, 0x14, 0x00, 0x66, 0xB8, -0x15, 0x00, 0x66, 0xB8, 0xBC, 0x06, 0x64, 0xB8, -0xC0, 0x00, 0x60, 0xB8, 0x00, 0x00, 0x12, 0x20, -0xEC, 0x00, 0x60, 0xB8, 0x78, 0x00, 0x60, 0xB8, -0x74, 0x00, 0x60, 0xB8, 0xF3, 0x00, 0x40, 0x20, -0xF3, 0x00, 0x40, 0x60, 0x31, 0x00, 0x41, 0x20, -0x31, 0x00, 0x41, 0x60, 0x81, 0x00, 0x42, 0x20, -0x81, 0x00, 0x42, 0x60, 0x75, 0x00, 0x60, 0xB8, -0xF4, 0x00, 0x40, 0x20, 0xF4, 0x00, 0x40, 0x60, -0x9B, 0x00, 0x41, 0x20, 0x9B, 0x00, 0x41, 0x60, -0xBB, 0x00, 0x41, 0x20, 0xBB, 0x00, 0x41, 0x60, -0x00, 0x00, 0x40, 0x20, 0x00, 0x00, 0x40, 0x60, -0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x41, 0x60, -0x00, 0x00, 0x43, 0x20, 0x3A, 0x00, 0x60, 0xB8, -0xF6, 0x00, 0x60, 0xB8, 0x6A, 0x00, 0x60, 0xB8, -0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, -0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, -0x00, 0x00, 0x00, 0x00, 0x73, 0x65, 0x74, 0x5F, -0x74, 0x78, 0x2C, 0x69, 0x64, 0x3D, 0x25, 0x62, -0x78, 0x2C, 0x31, 0x73, 0x73, 0x3D, 0x25, 0x62, -0x78, 0x21, 0x0A, 0x00, 0x50, 0x45, 0x52, 0x20, -0x52, 0x50, 0x54, 0x3A, 0x20, 0x6D, 0x69, 0x64, -0x25, 0x62, 0x58, 0x2C, 0x52, 0x3A, 0x25, 0x62, -0x78, 0x2C, 0x72, 0x74, 0x3A, 0x25, 0x62, 0x78, -0x2C, 0x62, 0x77, 0x3A, 0x25, 0x62, 0x78, 0x00, +0x01, 0x00, 0x64, 0xB8, 0x34, 0x01, 0x64, 0xB8, +0x64, 0x05, 0x64, 0xB8, 0x60, 0x05, 0x64, 0xB8, +0x27, 0x05, 0x64, 0xB8, 0xB5, 0x05, 0x64, 0xB8, +0x1D, 0x05, 0x64, 0xB8, 0x1C, 0x05, 0x64, 0xB8, +0xB7, 0x05, 0x64, 0xB8, 0x31, 0x05, 0x64, 0xB8, +0x3C, 0x11, 0x64, 0xB8, 0x50, 0x05, 0x64, 0xB8, +0x40, 0x05, 0x64, 0xB8, 0xC8, 0x01, 0x64, 0xB8, +0xC9, 0x01, 0x64, 0xB8, 0x0C, 0xEA, 0xEF, 0xFD, +0xA0, 0x01, 0x64, 0xB8, 0x48, 0x00, 0x60, 0xB8, +0xFF, 0xFF, 0xFE, 0xFF, 0x44, 0x00, 0x60, 0xB8, +0x60, 0x00, 0x60, 0xB8, 0x47, 0x00, 0x60, 0xB8, +0x46, 0x00, 0x60, 0xB8, 0x63, 0x00, 0x60, 0xB8, +0x62, 0x00, 0x60, 0xB8, 0x45, 0x00, 0x60, 0xB8, +0x61, 0x00, 0x60, 0xB8, 0xC6, 0x01, 0x64, 0xB8, +0x57, 0x05, 0x64, 0xB8, 0xFF, 0xFF, 0xFF, 0x00, +0x00, 0x00, 0x00, 0x05, 0x64, 0x01, 0x64, 0xB8, +0x53, 0x05, 0x64, 0xB8, 0x94, 0x01, 0x64, 0xB8, +0x54, 0x00, 0x60, 0xB8, 0x24, 0x01, 0x64, 0xB8, +0x24, 0x11, 0x64, 0xB8, 0x2C, 0x11, 0x64, 0xB8, +0x34, 0x11, 0x64, 0xB8, 0xE4, 0x11, 0x64, 0xB8, +0x00, 0x40, 0xE0, 0x17, 0x01, 0x70, 0x00, 0x03, +0xE0, 0x12, 0x64, 0xB8, 0x67, 0x05, 0x64, 0xB8, +0x66, 0x05, 0x64, 0xB8, 0x65, 0x05, 0x64, 0xB8, +0x63, 0x05, 0x64, 0xB8, 0x62, 0x05, 0x64, 0xB8, +0x61, 0x05, 0x64, 0xB8, 0xB4, 0x00, 0x60, 0xB8, +0x2F, 0x01, 0x64, 0xB8, 0xE8, 0x10, 0x60, 0xB8, +0x00, 0x3C, 0x64, 0xB8, 0x00, 0x4C, 0x64, 0xB8, +0x00, 0x58, 0x64, 0xB8, 0x00, 0x5C, 0x64, 0xB8, +0xF8, 0x05, 0x64, 0xB8, 0x83, 0x00, 0x60, 0xB8, +0x08, 0x01, 0x64, 0xB8, 0x90, 0x00, 0x60, 0xB8, +0x92, 0x06, 0x64, 0xB8, 0x00, 0x10, 0x60, 0xB8, +0x92, 0x00, 0x60, 0xB8, 0xFF, 0xFF, 0xFF, 0x7F, +0x88, 0x06, 0x64, 0xB8, 0x00, 0x00, 0x68, 0x18, +0x40, 0x00, 0x78, 0xB8, 0x2C, 0x04, 0x64, 0xB8, +0x14, 0x00, 0x78, 0xB8, 0x5F, 0x01, 0x64, 0xB8, +0x1F, 0x07, 0x64, 0xB8, 0x1C, 0x07, 0x64, 0xB8, +0xB8, 0x05, 0x64, 0xB8, 0xBC, 0x05, 0x64, 0xB8, +0x5F, 0x11, 0x64, 0xB8, 0xFE, 0xFF, 0xFF, 0x7F, +0x30, 0x00, 0x78, 0x18, 0x00, 0x00, 0x78, 0x18, +0x7E, 0x04, 0x64, 0xB8, 0xAC, 0x04, 0x64, 0xB8, +0x08, 0x10, 0x66, 0xB8, 0x04, 0x10, 0x66, 0xB8, +0x0C, 0x10, 0x66, 0xB8, 0x7C, 0x04, 0x64, 0xB8, +0xF4, 0x00, 0x60, 0xB8, 0x71, 0x00, 0x60, 0xB8, +0xE4, 0x00, 0x60, 0xB8, 0xE6, 0x00, 0x60, 0xB8, +0xE8, 0x00, 0x60, 0xB8, 0xE9, 0x00, 0x60, 0xB8, +0xEA, 0x00, 0x60, 0xB8, 0xEB, 0x00, 0x60, 0xB8, +0xE5, 0x00, 0x60, 0xB8, 0x44, 0x00, 0x02, 0x00, +0xA0, 0x07, 0x64, 0xB8, 0x00, 0x00, 0x60, 0x06, +0x00, 0x00, 0x60, 0x02, 0xFF, 0xFF, 0xBF, 0xFD, +0x00, 0x00, 0x40, 0x02, 0xFF, 0xFF, 0xDF, 0xFF, +0xFF, 0xFF, 0xBF, 0xFF, 0xBC, 0x01, 0x64, 0xB8, +0x16, 0x11, 0x64, 0xB8, 0x17, 0x11, 0x64, 0xB8, +0xD4, 0x07, 0x64, 0xB8, 0x08, 0x06, 0x64, 0xB8, +0x0F, 0x06, 0x64, 0xB8, 0x9A, 0x01, 0x64, 0xB8, +0x98, 0x01, 0x64, 0xB8, 0xD0, 0x05, 0x64, 0xB8, +0x08, 0x02, 0x64, 0xB8, 0x7B, 0x05, 0x64, 0xB8, +0x73, 0x05, 0x64, 0xB8, 0xD4, 0x04, 0x60, 0xB8, +0xD4, 0x04, 0x64, 0xB8, 0x84, 0x04, 0x60, 0xB8, +0x84, 0x04, 0x64, 0xB8, 0xC8, 0x04, 0x60, 0xB8, +0xC8, 0x04, 0x64, 0xB8, 0x78, 0x04, 0x60, 0xB8, +0x78, 0x04, 0x64, 0xB8, 0x00, 0x90, 0x01, 0x00, +0x01, 0x01, 0x64, 0xB8, 0xA3, 0x00, 0x60, 0xB8, +0xA0, 0x00, 0x60, 0xB8, 0x70, 0x00, 0x60, 0xB8, +0x35, 0x00, 0x60, 0xB8, 0x37, 0x00, 0x60, 0xB8, +0x30, 0x00, 0x60, 0xB8, 0x00, 0x00, 0xFC, 0xFF, +0x40, 0x42, 0x0F, 0x00, 0x0D, 0xEA, 0xEF, 0xFD, +0x01, 0x00, 0x78, 0xB8, 0xA0, 0x06, 0x64, 0xB8, +0xFF, 0xFF, 0xFB, 0xFF, 0xC2, 0x01, 0x64, 0xB8, +0xA0, 0x34, 0x00, 0xB8, 0x00, 0x52, 0x00, 0xB8, +0x04, 0x52, 0x00, 0xB8, 0x08, 0x52, 0x00, 0xB8, +0x0C, 0x52, 0x00, 0xB8, 0x10, 0x52, 0x00, 0xB8, +0x30, 0x52, 0x00, 0xB8, 0x3C, 0x50, 0x00, 0xB8, +0x4C, 0x04, 0x64, 0xB8, 0xC0, 0x01, 0x64, 0xB8, +0xB8, 0x01, 0x64, 0xB8, 0x00, 0x00, 0x01, 0x01, +0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x04, 0x04, +0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x10, 0x10, +0x00, 0x00, 0x20, 0x20, 0x00, 0x00, 0x40, 0x40, +0x00, 0x00, 0x80, 0x80, 0xB2, 0x05, 0x64, 0xB8, +0xB3, 0x05, 0x64, 0xB8, 0x43, 0x05, 0x64, 0xB8, +0x7D, 0x05, 0x64, 0xB8, 0x7F, 0x05, 0x64, 0xB8, +0x72, 0x05, 0x64, 0xB8, 0x51, 0x05, 0x64, 0xB8, +0x78, 0x05, 0x64, 0xB8, 0x79, 0x05, 0x64, 0xB8, +0x7A, 0x05, 0x64, 0xB8, 0xCF, 0x05, 0x64, 0xB8, +0xE0, 0x05, 0x64, 0xB8, 0xE4, 0x05, 0x64, 0xB8, +0xE8, 0x05, 0x64, 0xB8, 0xEC, 0x05, 0x64, 0xB8, +0xF0, 0x05, 0x64, 0xB8, 0xB6, 0x05, 0x64, 0xB8, +0x04, 0x06, 0x64, 0xB8, 0xFF, 0xFF, 0xFF, 0xFE, +0x60, 0x16, 0x64, 0xB8, 0x09, 0x00, 0x78, 0xB8, +0xFF, 0xFF, 0x00, 0xF0, 0x00, 0x00, 0x30, 0x80, +0x00, 0x12, 0x00, 0x04, 0x08, 0x00, 0x78, 0xB8, +0x0C, 0x00, 0x78, 0xB8, 0x10, 0x00, 0x78, 0xB8, +0x03, 0x00, 0x78, 0xB8, 0xFF, 0xFF, 0x01, 0xFF, +0x18, 0x00, 0x78, 0xB8, 0x20, 0x00, 0x78, 0xB8, +0x05, 0x00, 0x78, 0xB8, 0x12, 0x05, 0x64, 0xB8, +0x10, 0x05, 0x64, 0xB8, 0x18, 0x15, 0x64, 0xB8, +0x04, 0x18, 0x66, 0xB8, 0x00, 0x18, 0x66, 0xB8, +0x10, 0x00, 0x66, 0xB8, 0x11, 0x00, 0x66, 0xB8, +0x12, 0x00, 0x66, 0xB8, 0x13, 0x00, 0x66, 0xB8, +0x14, 0x00, 0x66, 0xB8, 0x15, 0x00, 0x66, 0xB8, +0xBC, 0x06, 0x64, 0xB8, 0xC0, 0x00, 0x60, 0xB8, +0x00, 0x00, 0x12, 0x20, 0xEC, 0x00, 0x60, 0xB8, +0x78, 0x00, 0x60, 0xB8, 0x74, 0x00, 0x60, 0xB8, +0xF3, 0x00, 0x40, 0x20, 0xF3, 0x00, 0x40, 0x60, +0x31, 0x00, 0x41, 0x20, 0x31, 0x00, 0x41, 0x60, +0x81, 0x00, 0x42, 0x20, 0x81, 0x00, 0x42, 0x60, +0x75, 0x00, 0x60, 0xB8, 0xF4, 0x00, 0x40, 0x20, +0xF4, 0x00, 0x40, 0x60, 0x9B, 0x00, 0x41, 0x20, +0x9B, 0x00, 0x41, 0x60, 0xBB, 0x00, 0x41, 0x20, +0xBB, 0x00, 0x41, 0x60, 0x00, 0x00, 0x40, 0x20, +0x00, 0x00, 0x40, 0x60, 0x00, 0x00, 0x41, 0x20, +0x00, 0x00, 0x41, 0x60, 0x00, 0x00, 0x43, 0x20, +0x3A, 0x00, 0x60, 0xB8, 0xF6, 0x00, 0x60, 0xB8, +0x6A, 0x00, 0x60, 0xB8, 0x30, 0x31, 0x32, 0x33, +0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x41, 0x42, +0x43, 0x44, 0x45, 0x46, 0x00, 0x00, 0x00, 0x00, +0x73, 0x65, 0x74, 0x5F, 0x74, 0x78, 0x2C, 0x69, +0x64, 0x3D, 0x25, 0x62, 0x78, 0x2C, 0x31, 0x73, +0x73, 0x3D, 0x25, 0x62, 0x78, 0x21, 0x0A, 0x00, 0x50, 0x45, 0x52, 0x20, 0x52, 0x50, 0x54, 0x3A, 0x20, 0x6D, 0x69, 0x64, 0x25, 0x62, 0x58, 0x2C, -0x54, 0x54, 0x3A, 0x25, 0x77, 0x78, 0x00, 0x00, -0x50, 0x45, 0x52, 0x20, 0x52, 0x50, 0x54, 0x3A, -0x20, 0x25, 0x62, 0x58, 0x2C, 0x25, 0x62, 0x78, +0x52, 0x3A, 0x25, 0x62, 0x78, 0x2C, 0x72, 0x74, +0x3A, 0x25, 0x62, 0x78, 0x2C, 0x62, 0x77, 0x3A, +0x25, 0x62, 0x78, 0x00, 0x50, 0x45, 0x52, 0x20, +0x52, 0x50, 0x54, 0x3A, 0x20, 0x6D, 0x69, 0x64, +0x25, 0x62, 0x58, 0x2C, 0x54, 0x54, 0x3A, 0x25, +0x77, 0x78, 0x00, 0x00, 0x50, 0x45, 0x52, 0x20, +0x52, 0x50, 0x54, 0x3A, 0x20, 0x25, 0x62, 0x58, 0x2C, 0x25, 0x62, 0x78, 0x2C, 0x25, 0x62, 0x78, -0x2C, 0x25, 0x62, 0x58, 0x2C, 0x25, 0x62, 0x78, +0x2C, 0x25, 0x62, 0x78, 0x2C, 0x25, 0x62, 0x58, 0x2C, 0x25, 0x62, 0x78, 0x2C, 0x25, 0x62, 0x78, -0x2C, 0x25, 0x62, 0x58, 0x2C, 0x25, 0x62, 0x78, +0x2C, 0x25, 0x62, 0x78, 0x2C, 0x25, 0x62, 0x58, 0x2C, 0x25, 0x62, 0x78, 0x2C, 0x25, 0x62, 0x78, -0x00, 0x00, 0x00, 0x00, 0x52, 0x65, 0x71, 0x20, -0x50, 0x45, 0x52, 0x20, 0x43, 0x4D, 0x44, 0x3A, -0x20, 0x47, 0x72, 0x3A, 0x25, 0x62, 0x58, 0x2C, -0x20, 0x54, 0x59, 0x50, 0x3A, 0x25, 0x62, 0x78, -0x2C, 0x20, 0x62, 0x74, 0x6D, 0x70, 0x3A, 0x25, -0x78, 0x00, 0x00, 0x00, 0x52, 0x65, 0x71, 0x20, -0x50, 0x45, 0x52, 0x20, 0x43, 0x4D, 0x44, 0x3A, -0x20, 0x49, 0x64, 0x78, 0x3A, 0x25, 0x62, 0x78, -0x2C, 0x20, 0x6D, 0x69, 0x64, 0x25, 0x62, 0x78, -0x00, 0x00, 0x00, 0x00, 0x52, 0x65, 0x71, 0x20, -0x50, 0x45, 0x52, 0x20, 0x43, 0x4D, 0x44, 0x3A, -0x20, 0x49, 0x64, 0x78, 0x3A, 0x25, 0x62, 0x78, -0x2C, 0x20, 0x4D, 0x69, 0x64, 0x3A, 0x25, 0x62, -0x78, 0x2C, 0x20, 0x25, 0x62, 0x78, 0x2C, 0x20, -0x25, 0x62, 0x78, 0x00, 0x53, 0x65, 0x74, 0x5F, -0x50, 0x6E, 0x74, 0x79, 0x00, 0x00, 0x00, 0x00, -0x53, 0x65, 0x74, 0x5F, 0x52, 0x41, 0x5F, 0x55, -0x70, 0x5F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x5F, -0x66, 0x6F, 0x72, 0x5F, 0x52, 0x41, 0x5F, 0x64, -0x65, 0x62, 0x75, 0x67, 0x00, 0x00, 0x00, 0x00, -0x53, 0x65, 0x74, 0x5F, 0x44, 0x6F, 0x77, 0x6E, -0x5F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x00, 0x00, -0x76, 0x61, 0x6C, 0x75, 0x65, 0x38, 0x3D, 0x30, -0x78, 0x25, 0x62, 0x58, 0x2C, 0x20, 0x76, 0x61, -0x6C, 0x75, 0x65, 0x31, 0x36, 0x3D, 0x30, 0x78, -0x25, 0x77, 0x78, 0x2C, 0x20, 0x76, 0x61, 0x6C, -0x75, 0x65, 0x33, 0x32, 0x3D, 0x30, 0x78, 0x25, -0x78, 0x00, 0x00, 0x00, 0x48, 0x32, 0x43, 0x42, -0x46, 0x45, 0x6E, 0x74, 0x00, 0x00, 0x00, 0x00, -0x45, 0x6E, 0x3A, 0x25, 0x62, 0x78, 0x20, 0x4E, -0x63, 0x3A, 0x25, 0x62, 0x78, 0x20, 0x4D, 0x3A, -0x25, 0x62, 0x78, 0x00, 0x44, 0x69, 0x73, 0x3A, -0x25, 0x62, 0x78, 0x20, 0x4E, 0x63, 0x3A, 0x25, -0x62, 0x78, 0x20, 0x4D, 0x3A, 0x25, 0x62, 0x78, -0x00, 0x00, 0x00, 0x00, 0x49, 0x6E, 0x69, 0x74, -0x42, 0x79, 0x52, 0x53, 0x53, 0x49, 0x3A, 0x25, -0x62, 0x78, 0x20, 0x25, 0x62, 0x78, 0x20, 0x25, -0x62, 0x78, 0x00, 0x00, 0x52, 0x53, 0x53, 0x49, -0x5F, 0x43, 0x4D, 0x44, 0x3A, 0x25, 0x62, 0x78, -0x20, 0x25, 0x62, 0x78, 0x20, 0x25, 0x62, 0x78, -0x20, 0x25, 0x62, 0x78, 0x20, 0x25, 0x62, 0x78, -0x00, 0x00, 0x00, 0x00, 0x52, 0x53, 0x53, 0x49, -0x43, 0x4D, 0x44, 0x20, 0x44, 0x72, 0x76, 0x46, -0x69, 0x78, 0x3A, 0x25, 0x62, 0x78, 0x20, 0x25, +0x2C, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x52, 0x65, 0x71, 0x20, 0x50, 0x45, 0x52, 0x20, +0x43, 0x4D, 0x44, 0x3A, 0x20, 0x47, 0x72, 0x3A, +0x25, 0x62, 0x58, 0x2C, 0x20, 0x54, 0x59, 0x50, +0x3A, 0x25, 0x62, 0x78, 0x2C, 0x20, 0x62, 0x74, +0x6D, 0x70, 0x3A, 0x25, 0x78, 0x00, 0x00, 0x00, +0x52, 0x65, 0x71, 0x20, 0x50, 0x45, 0x52, 0x20, +0x43, 0x4D, 0x44, 0x3A, 0x20, 0x49, 0x64, 0x78, +0x3A, 0x25, 0x62, 0x78, 0x2C, 0x20, 0x6D, 0x69, +0x64, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x52, 0x65, 0x71, 0x20, 0x50, 0x45, 0x52, 0x20, +0x43, 0x4D, 0x44, 0x3A, 0x20, 0x49, 0x64, 0x78, +0x3A, 0x25, 0x62, 0x78, 0x2C, 0x20, 0x4D, 0x69, +0x64, 0x3A, 0x25, 0x62, 0x78, 0x2C, 0x20, 0x25, +0x62, 0x78, 0x2C, 0x20, 0x25, 0x62, 0x78, 0x00, +0x53, 0x65, 0x74, 0x5F, 0x50, 0x6E, 0x74, 0x79, +0x00, 0x00, 0x00, 0x00, 0x53, 0x65, 0x74, 0x5F, +0x52, 0x41, 0x5F, 0x55, 0x70, 0x5F, 0x72, 0x61, +0x74, 0x69, 0x6F, 0x5F, 0x66, 0x6F, 0x72, 0x5F, +0x52, 0x41, 0x5F, 0x64, 0x65, 0x62, 0x75, 0x67, +0x00, 0x00, 0x00, 0x00, 0x53, 0x65, 0x74, 0x5F, +0x44, 0x6F, 0x77, 0x6E, 0x5F, 0x72, 0x61, 0x74, +0x69, 0x6F, 0x00, 0x00, 0x76, 0x61, 0x6C, 0x75, +0x65, 0x38, 0x3D, 0x30, 0x78, 0x25, 0x62, 0x58, +0x2C, 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x31, +0x36, 0x3D, 0x30, 0x78, 0x25, 0x77, 0x78, 0x2C, +0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x33, 0x32, +0x3D, 0x30, 0x78, 0x25, 0x78, 0x00, 0x00, 0x00, +0x48, 0x32, 0x43, 0x42, 0x46, 0x45, 0x6E, 0x74, +0x00, 0x00, 0x00, 0x00, 0x45, 0x6E, 0x3A, 0x25, +0x62, 0x78, 0x20, 0x4E, 0x63, 0x3A, 0x25, 0x62, +0x78, 0x20, 0x4D, 0x3A, 0x25, 0x62, 0x78, 0x00, +0x44, 0x69, 0x73, 0x3A, 0x25, 0x62, 0x78, 0x20, +0x4E, 0x63, 0x3A, 0x25, 0x62, 0x78, 0x20, 0x4D, +0x3A, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x49, 0x6E, 0x69, 0x74, 0x42, 0x79, 0x52, 0x53, +0x53, 0x49, 0x3A, 0x25, 0x62, 0x78, 0x20, 0x25, 0x62, 0x78, 0x20, 0x25, 0x62, 0x78, 0x00, 0x00, -0x4D, 0x61, 0x73, 0x6B, 0x31, 0x20, 0x25, 0x78, -0x00, 0x00, 0x00, 0x00, 0x49, 0x44, 0x3A, 0x25, -0x62, 0x78, 0x2C, 0x49, 0x6E, 0x42, 0x77, 0x3A, -0x25, 0x62, 0x78, 0x2C, 0x42, 0x77, 0x3A, 0x25, -0x62, 0x78, 0x2C, 0x53, 0x47, 0x49, 0x3A, 0x25, -0x62, 0x78, 0x2C, 0x56, 0x48, 0x54, 0x3A, 0x25, -0x62, 0x78, 0x00, 0x00, 0x44, 0x52, 0x61, 0x3A, -0x25, 0x62, 0x78, 0x2C, 0x44, 0x50, 0x74, 0x3A, -0x25, 0x62, 0x78, 0x2C, 0x52, 0x61, 0x49, 0x64, -0x3A, 0x25, 0x62, 0x78, 0x2C, 0x6C, 0x76, 0x3A, -0x25, 0x62, 0x78, 0x2C, 0x6E, 0x55, 0x70, 0x42, -0x77, 0x3A, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, -0x4D, 0x61, 0x73, 0x6B, 0x30, 0x20, 0x25, 0x78, -0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x78, 0x5F, -0x68, 0x32, 0x63, 0x20, 0x25, 0x62, 0x78, 0x2C, -0x25, 0x62, 0x78, 0x20, 0x50, 0x65, 0x72, 0x69, -0x6F, 0x64, 0x3D, 0x25, 0x77, 0x78, 0x00, 0x00, -0x72, 0x65, 0x61, 0x64, 0x79, 0x3D, 0x25, 0x62, -0x78, 0x00, 0x00, 0x00, 0x43, 0x6C, 0x6D, 0x52, -0x70, 0x74, 0x3D, 0x25, 0x77, 0x78, 0x00, 0x00, -0x43, 0x32, 0x48, 0x20, 0x25, 0x62, 0x78, 0x20, -0x25, 0x62, 0x78, 0x00, 0x74, 0x62, 0x74, 0x74, -0x3D, 0x25, 0x62, 0x78, 0x2C, 0x72, 0x5F, 0x63, -0x6E, 0x74, 0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, -0x43, 0x4C, 0x4D, 0x5F, 0x44, 0x65, 0x63, 0x00, -0x43, 0x4C, 0x4D, 0x5F, 0x54, 0x72, 0x69, 0x67, -0x00, 0x00, 0x00, 0x00, 0x52, 0x65, 0x73, 0x65, -0x74, 0x20, 0x54, 0x78, 0x52, 0x70, 0x74, 0x00, -0x49, 0x44, 0x3D, 0x25, 0x62, 0x78, 0x2C, 0x52, -0x5B, 0x25, 0x62, 0x78, 0x5D, 0x2C, 0x52, 0x61, -0x74, 0x65, 0x3D, 0x25, 0x62, 0x78, 0x2D, 0x3E, -0x25, 0x62, 0x78, 0x2C, 0x54, 0x3A, 0x25, 0x62, -0x78, 0x2C, 0x4F, 0x6B, 0x3A, 0x25, 0x62, 0x78, -0x2C, 0x44, 0x70, 0x3A, 0x25, 0x62, 0x78, 0x2C, -0x54, 0x72, 0x79, 0x3A, 0x25, 0x62, 0x78, 0x00, -0x44, 0x72, 0x76, 0x46, 0x69, 0x78, 0x52, 0x61, -0x74, 0x65, 0x00, 0x00, 0x52, 0x54, 0x53, 0x20, -0x44, 0x72, 0x6F, 0x70, 0x00, 0x00, 0x00, 0x00, -0x53, 0x55, 0x20, 0x52, 0x61, 0x74, 0x65, 0x20, -0x52, 0x70, 0x74, 0x3A, 0x25, 0x62, 0x78, 0x21, -0x3D, 0x43, 0x54, 0x52, 0x4C, 0x3A, 0x25, 0x62, -0x78, 0x00, 0x00, 0x00, 0x44, 0x69, 0x73, 0x52, -0x41, 0x20, 0x49, 0x44, 0x25, 0x62, 0x78, 0x00, -0x31, 0x52, 0x70, 0x74, 0x25, 0x62, 0x78, 0x20, -0x50, 0x72, 0x74, 0x79, 0x25, 0x62, 0x78, 0x20, -0x43, 0x54, 0x72, 0x79, 0x25, 0x62, 0x78, 0x00, -0x54, 0x3D, 0x4F, 0x4B, 0x2B, 0x44, 0x52, 0x4F, -0x50, 0x00, 0x00, 0x00, 0x54, 0x21, 0x3D, 0x4F, -0x4B, 0x2B, 0x44, 0x52, 0x4F, 0x50, 0x00, 0x00, -0x5B, 0x44, 0x65, 0x63, 0x5D, 0x54, 0x5F, 0x61, -0x63, 0x63, 0x25, 0x62, 0x78, 0x2C, 0x74, 0x72, -0x79, 0x5F, 0x6E, 0x65, 0x73, 0x25, 0x62, 0x78, -0x00, 0x00, 0x00, 0x00, 0x44, 0x6F, 0x20, 0x52, -0x41, 0x20, 0x25, 0x62, 0x78, 0x2C, 0x20, 0x74, -0x68, 0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, -0x54, 0x62, 0x74, 0x74, 0x52, 0x41, 0x20, 0x25, -0x62, 0x78, 0x00, 0x00, 0x50, 0x45, 0x52, 0x3A, -0x4E, 0x65, 0x77, 0x4D, 0x61, 0x3A, 0x25, 0x62, -0x78, 0x2C, 0x20, 0x4F, 0x6C, 0x64, 0x4D, 0x61, -0x3A, 0x25, 0x62, 0x78, 0x2C, 0x20, 0x43, 0x75, -0x72, 0x3A, 0x25, 0x62, 0x78, 0x20, 0x00, 0x00, -0x4D, 0x61, 0x70, 0x3A, 0x25, 0x62, 0x78, 0x20, -0x44, 0x69, 0x66, 0x3A, 0x25, 0x62, 0x78, 0x20, -0x6F, 0x66, 0x74, 0x3A, 0x25, 0x62, 0x78, 0x00, -0x56, 0x41, 0x52, 0x3A, 0x20, 0x25, 0x62, 0x78, +0x52, 0x53, 0x53, 0x49, 0x5F, 0x43, 0x4D, 0x44, +0x3A, 0x25, 0x62, 0x78, 0x20, 0x25, 0x62, 0x78, +0x20, 0x25, 0x62, 0x78, 0x20, 0x25, 0x62, 0x78, +0x20, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x52, 0x53, 0x53, 0x49, 0x43, 0x4D, 0x44, 0x20, +0x44, 0x72, 0x76, 0x46, 0x69, 0x78, 0x3A, 0x25, +0x62, 0x78, 0x20, 0x25, 0x62, 0x78, 0x20, 0x25, +0x62, 0x78, 0x00, 0x00, 0x4D, 0x61, 0x73, 0x6B, +0x31, 0x20, 0x25, 0x78, 0x00, 0x00, 0x00, 0x00, +0x49, 0x44, 0x3A, 0x25, 0x62, 0x78, 0x2C, 0x49, +0x6E, 0x42, 0x77, 0x3A, 0x25, 0x62, 0x78, 0x2C, +0x42, 0x77, 0x3A, 0x25, 0x62, 0x78, 0x2C, 0x53, +0x47, 0x49, 0x3A, 0x25, 0x62, 0x78, 0x2C, 0x56, +0x48, 0x54, 0x3A, 0x25, 0x62, 0x78, 0x00, 0x00, +0x44, 0x52, 0x61, 0x3A, 0x25, 0x62, 0x78, 0x2C, +0x44, 0x50, 0x74, 0x3A, 0x25, 0x62, 0x78, 0x2C, +0x52, 0x61, 0x49, 0x64, 0x3A, 0x25, 0x62, 0x78, +0x2C, 0x6C, 0x76, 0x3A, 0x25, 0x62, 0x78, 0x2C, +0x6E, 0x55, 0x70, 0x42, 0x77, 0x3A, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x4D, 0x61, 0x73, 0x6B, +0x30, 0x20, 0x25, 0x78, 0x00, 0x00, 0x00, 0x00, +0x63, 0x63, 0x78, 0x5F, 0x68, 0x32, 0x63, 0x20, +0x25, 0x62, 0x78, 0x2C, 0x25, 0x62, 0x78, 0x20, +0x50, 0x65, 0x72, 0x69, 0x6F, 0x64, 0x3D, 0x25, +0x77, 0x78, 0x00, 0x00, 0x72, 0x65, 0x61, 0x64, +0x79, 0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x43, 0x6C, 0x6D, 0x52, 0x70, 0x74, 0x3D, 0x25, +0x77, 0x78, 0x00, 0x00, 0x43, 0x32, 0x48, 0x20, +0x25, 0x62, 0x78, 0x20, 0x25, 0x62, 0x78, 0x00, +0x74, 0x62, 0x74, 0x74, 0x3D, 0x25, 0x62, 0x78, +0x2C, 0x72, 0x5F, 0x63, 0x6E, 0x74, 0x3D, 0x25, +0x62, 0x78, 0x00, 0x00, 0x43, 0x4C, 0x4D, 0x5F, +0x44, 0x65, 0x63, 0x00, 0x43, 0x4C, 0x4D, 0x5F, +0x54, 0x72, 0x69, 0x67, 0x00, 0x00, 0x00, 0x00, +0x52, 0x65, 0x73, 0x65, 0x74, 0x20, 0x54, 0x78, +0x52, 0x70, 0x74, 0x00, 0x49, 0x44, 0x3D, 0x25, +0x62, 0x78, 0x2C, 0x52, 0x5B, 0x25, 0x62, 0x78, +0x5D, 0x2C, 0x52, 0x61, 0x74, 0x65, 0x3D, 0x25, +0x62, 0x78, 0x2D, 0x3E, 0x25, 0x62, 0x78, 0x2C, +0x54, 0x3A, 0x25, 0x62, 0x78, 0x2C, 0x4F, 0x6B, +0x3A, 0x25, 0x62, 0x78, 0x2C, 0x44, 0x70, 0x3A, +0x25, 0x62, 0x78, 0x2C, 0x54, 0x72, 0x79, 0x3A, +0x25, 0x62, 0x78, 0x00, 0x44, 0x72, 0x76, 0x46, +0x69, 0x78, 0x52, 0x61, 0x74, 0x65, 0x00, 0x00, +0x52, 0x54, 0x53, 0x20, 0x44, 0x72, 0x6F, 0x70, +0x00, 0x00, 0x00, 0x00, 0x53, 0x55, 0x20, 0x52, +0x61, 0x74, 0x65, 0x20, 0x52, 0x70, 0x74, 0x3A, +0x25, 0x62, 0x78, 0x21, 0x3D, 0x43, 0x54, 0x52, +0x4C, 0x3A, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x44, 0x69, 0x73, 0x52, 0x41, 0x20, 0x49, 0x44, +0x25, 0x62, 0x78, 0x00, 0x31, 0x52, 0x70, 0x74, +0x25, 0x62, 0x78, 0x20, 0x50, 0x72, 0x74, 0x79, +0x25, 0x62, 0x78, 0x20, 0x43, 0x54, 0x72, 0x79, +0x25, 0x62, 0x78, 0x00, 0x54, 0x3D, 0x4F, 0x4B, +0x2B, 0x44, 0x52, 0x4F, 0x50, 0x00, 0x00, 0x00, +0x54, 0x21, 0x3D, 0x4F, 0x4B, 0x2B, 0x44, 0x52, +0x4F, 0x50, 0x00, 0x00, 0x5B, 0x44, 0x65, 0x63, +0x5D, 0x54, 0x5F, 0x61, 0x63, 0x63, 0x25, 0x62, +0x78, 0x2C, 0x74, 0x72, 0x79, 0x5F, 0x6E, 0x65, +0x73, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x44, 0x6F, 0x20, 0x52, 0x41, 0x20, 0x25, 0x62, +0x78, 0x2C, 0x20, 0x74, 0x68, 0x3D, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x54, 0x62, 0x74, 0x74, +0x52, 0x41, 0x20, 0x25, 0x62, 0x78, 0x00, 0x00, +0x50, 0x45, 0x52, 0x3A, 0x4E, 0x65, 0x77, 0x4D, +0x61, 0x3A, 0x25, 0x62, 0x78, 0x2C, 0x20, 0x4F, +0x6C, 0x64, 0x4D, 0x61, 0x3A, 0x25, 0x62, 0x78, +0x2C, 0x20, 0x43, 0x75, 0x72, 0x3A, 0x25, 0x62, +0x78, 0x20, 0x00, 0x00, 0x4D, 0x61, 0x70, 0x3A, +0x25, 0x62, 0x78, 0x20, 0x44, 0x69, 0x66, 0x3A, +0x25, 0x62, 0x78, 0x20, 0x6F, 0x66, 0x74, 0x3A, +0x25, 0x62, 0x78, 0x00, 0x56, 0x41, 0x52, 0x3A, +0x20, 0x25, 0x62, 0x78, 0x2D, 0x3E, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x44, 0x65, 0x63, 0x5F, +0x6F, 0x66, 0x73, 0x74, 0x7B, 0x50, 0x2C, 0x4E, +0x7D, 0x3A, 0x20, 0x25, 0x62, 0x78, 0x2C, 0x25, +0x62, 0x78, 0x00, 0x00, 0x30, 0x55, 0x70, 0x25, +0x62, 0x78, 0x2C, 0x44, 0x77, 0x6E, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x31, 0x55, 0x70, 0x25, +0x62, 0x78, 0x2C, 0x44, 0x77, 0x6E, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x53, 0x74, 0x61, 0x72, +0x74, 0x25, 0x62, 0x78, 0x3A, 0x25, 0x62, 0x78, 0x2D, 0x3E, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, -0x44, 0x65, 0x63, 0x5F, 0x6F, 0x66, 0x73, 0x74, -0x7B, 0x50, 0x2C, 0x4E, 0x7D, 0x3A, 0x20, 0x25, -0x62, 0x78, 0x2C, 0x25, 0x62, 0x78, 0x00, 0x00, -0x30, 0x55, 0x70, 0x25, 0x62, 0x78, 0x2C, 0x44, -0x77, 0x6E, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, -0x31, 0x55, 0x70, 0x25, 0x62, 0x78, 0x2C, 0x44, -0x77, 0x6E, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, -0x53, 0x74, 0x61, 0x72, 0x74, 0x25, 0x62, 0x78, -0x3A, 0x25, 0x62, 0x78, 0x2D, 0x3E, 0x25, 0x62, -0x78, 0x00, 0x00, 0x00, 0x4D, 0x74, 0x42, 0x77, -0x20, 0x55, 0x70, 0x44, 0x77, 0x25, 0x62, 0x78, -0x20, 0x42, 0x57, 0x25, 0x62, 0x78, 0x20, 0x52, -0x74, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, -0x48, 0x69, 0x74, 0x25, 0x62, 0x78, 0x20, 0x52, -0x74, 0x30, 0x3D, 0x25, 0x77, 0x78, 0x20, 0x52, -0x74, 0x31, 0x3D, 0x25, 0x77, 0x78, 0x00, 0x00, -0x6C, 0x6D, 0x74, 0x20, 0x52, 0x25, 0x62, 0x78, -0x20, 0x4C, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, -0x52, 0x53, 0x53, 0x49, 0x20, 0x52, 0x6C, 0x73, -0x4C, 0x6D, 0x74, 0x00, 0x52, 0x53, 0x53, 0x49, -0x20, 0x49, 0x6E, 0x4C, 0x6D, 0x74, 0x00, 0x00, -0x4C, 0x6D, 0x74, 0x20, 0x31, 0x53, 0x53, 0x25, -0x62, 0x78, 0x20, 0x25, 0x62, 0x78, 0x2C, 0x32, -0x53, 0x53, 0x25, 0x62, 0x78, 0x20, 0x25, 0x62, -0x78, 0x00, 0x00, 0x00, 0x57, 0x72, 0x69, 0x74, -0x65, 0x45, 0x6E, 0x3A, 0x25, 0x62, 0x78, 0x20, -0x42, 0x46, 0x63, 0x74, 0x72, 0x6C, 0x3A, 0x25, -0x62, 0x78, 0x00, 0x00, 0x52, 0x65, 0x63, 0x45, -0x6E, 0x3A, 0x25, 0x62, 0x78, 0x20, 0x42, 0x46, -0x63, 0x74, 0x72, 0x6C, 0x3A, 0x25, 0x62, 0x78, -0x00, 0x00, 0x00, 0x00, 0x53, 0x6E, 0x64, 0x44, -0x20, 0x4D, 0x3A, 0x25, 0x62, 0x78, 0x20, 0x52, -0x3A, 0x25, 0x62, 0x78, 0x20, 0x52, 0x25, 0x62, -0x78, 0x20, 0x43, 0x74, 0x3A, 0x25, 0x62, 0x78, -0x00, 0x00, 0x00, 0x00, 0x41, 0x70, 0x70, 0x6C, -0x56, 0x3A, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, -0x4E, 0x61, 0x70, 0x70, 0x6C, 0x56, 0x3A, 0x25, -0x62, 0x78, 0x00, 0x00, 0x53, 0x74, 0x6F, 0x72, -0x45, 0x6E, 0x3A, 0x25, 0x62, 0x78, 0x20, 0x42, -0x46, 0x63, 0x74, 0x72, 0x6C, 0x3A, 0x25, 0x62, -0x78, 0x00, 0x00, 0x00, 0x52, 0x74, 0x25, 0x62, -0x78, 0x2C, 0x52, 0x74, 0x5F, 0x63, 0x25, 0x62, -0x78, 0x00, 0x00, 0x00, 0x48, 0x52, 0x3A, 0x25, -0x62, 0x78, 0x2C, 0x4C, 0x52, 0x3A, 0x25, 0x62, -0x78, 0x2C, 0x54, 0x79, 0x70, 0x65, 0x3A, 0x25, -0x62, 0x78, 0x00, 0x00, 0x46, 0x69, 0x78, 0x20, -0x69, 0x64, 0x3D, 0x25, 0x62, 0x78, 0x20, 0x42, -0x77, 0x3D, 0x25, 0x62, 0x78, 0x20, 0x52, 0x74, -0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, -0x49, 0x44, 0x3D, 0x25, 0x62, 0x78, 0x2C, 0x42, -0x43, 0x6E, 0x74, 0x3D, 0x25, 0x62, 0x78, 0x2C, -0x42, 0x54, 0x3A, 0x25, 0x78, 0x2C, 0x42, 0x4F, -0x6B, 0x3A, 0x25, 0x78, 0x00, 0x00, 0x00, 0x00, -0x49, 0x44, 0x3D, 0x25, 0x62, 0x78, 0x2C, 0x42, -0x52, 0x61, 0x74, 0x65, 0x3D, 0x25, 0x62, 0x78, -0x2C, 0x42, 0x50, 0x45, 0x52, 0x3A, 0x25, 0x78, -0x00, 0x00, 0x00, 0x00, 0x52, 0x61, 0x4F, 0x63, -0x63, 0x4E, 0x75, 0x6D, 0x25, 0x62, 0x78, 0x00, -0x55, 0x70, 0x52, 0x61, 0x74, 0x65, 0x25, 0x62, -0x78, 0x20, 0x42, 0x57, 0x25, 0x62, 0x78, 0x20, -0x4D, 0x61, 0x78, 0x42, 0x57, 0x25, 0x62, 0x78, -0x00, 0x00, 0x00, 0x00, 0x31, 0x2E, 0x48, 0x2D, -0x65, 0x73, 0x74, 0x20, 0x25, 0x62, 0x78, 0x00, -0x32, 0x2E, 0x48, 0x2D, 0x65, 0x73, 0x74, 0x53, -0x20, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, -0x33, 0x2E, 0x3E, 0x48, 0x2D, 0x65, 0x73, 0x74, -0x20, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, -0x34, 0x2E, 0x4D, 0x2D, 0x42, 0x77, 0x55, 0x70, -0x20, 0x52, 0x61, 0x74, 0x65, 0x3A, 0x25, 0x62, -0x78, 0x2C, 0x20, 0x42, 0x77, 0x3A, 0x25, 0x62, -0x78, 0x00, 0x00, 0x00, 0x35, 0x2E, 0x42, 0x77, -0x55, 0x70, 0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, -0x36, 0x2E, 0x53, 0x47, 0x49, 0x5F, 0x55, 0x70, -0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, -0x25, 0x62, 0x78, 0x3A, 0x25, 0x62, 0x78, 0x2D, -0x3E, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, -0x37, 0x2E, 0x52, 0x61, 0x74, 0x65, 0x55, 0x70, -0x25, 0x62, 0x78, 0x00, 0x30, 0x52, 0x74, 0x25, -0x62, 0x78, 0x20, 0x25, 0x62, 0x78, 0x20, 0x25, -0x62, 0x78, 0x00, 0x00, 0x31, 0x52, 0x74, 0x25, -0x62, 0x78, 0x20, 0x25, 0x62, 0x78, 0x20, 0x25, -0x62, 0x78, 0x00, 0x00, 0x4E, 0x6F, 0x20, 0x55, -0x70, 0x20, 0x52, 0x61, 0x74, 0x65, 0x00, 0x00, -0x32, 0x52, 0x74, 0x3A, 0x25, 0x62, 0x78, 0x20, -0x25, 0x62, 0x78, 0x20, 0x25, 0x62, 0x78, 0x2C, -0x54, 0x72, 0x79, 0x3D, 0x25, 0x62, 0x78, 0x2C, -0x4D, 0x2D, 0x54, 0x72, 0x79, 0x3D, 0x25, 0x62, -0x78, 0x00, 0x00, 0x00, 0x44, 0x6E, 0x52, 0x61, +0x4D, 0x74, 0x42, 0x77, 0x20, 0x55, 0x70, 0x44, +0x77, 0x25, 0x62, 0x78, 0x20, 0x42, 0x57, 0x25, +0x62, 0x78, 0x20, 0x52, 0x74, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x48, 0x69, 0x74, 0x25, +0x62, 0x78, 0x20, 0x52, 0x74, 0x30, 0x3D, 0x25, +0x77, 0x78, 0x20, 0x52, 0x74, 0x31, 0x3D, 0x25, +0x77, 0x78, 0x00, 0x00, 0x6C, 0x6D, 0x74, 0x20, +0x52, 0x25, 0x62, 0x78, 0x20, 0x4C, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x52, 0x53, 0x53, 0x49, +0x20, 0x52, 0x6C, 0x73, 0x4C, 0x6D, 0x74, 0x00, +0x52, 0x53, 0x53, 0x49, 0x20, 0x49, 0x6E, 0x4C, +0x6D, 0x74, 0x00, 0x00, 0x4C, 0x6D, 0x74, 0x20, +0x31, 0x53, 0x53, 0x25, 0x62, 0x78, 0x20, 0x25, +0x62, 0x78, 0x2C, 0x32, 0x53, 0x53, 0x25, 0x62, +0x78, 0x20, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x57, 0x72, 0x69, 0x74, 0x65, 0x45, 0x6E, 0x3A, +0x25, 0x62, 0x78, 0x20, 0x42, 0x46, 0x63, 0x74, +0x72, 0x6C, 0x3A, 0x25, 0x62, 0x78, 0x00, 0x00, +0x52, 0x65, 0x63, 0x45, 0x6E, 0x3A, 0x25, 0x62, +0x78, 0x20, 0x42, 0x46, 0x63, 0x74, 0x72, 0x6C, +0x3A, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x53, 0x6E, 0x64, 0x44, 0x20, 0x4D, 0x3A, 0x25, +0x62, 0x78, 0x20, 0x52, 0x3A, 0x25, 0x62, 0x78, +0x20, 0x52, 0x25, 0x62, 0x78, 0x20, 0x43, 0x74, +0x3A, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x41, 0x70, 0x70, 0x6C, 0x56, 0x3A, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x4E, 0x61, 0x70, 0x70, +0x6C, 0x56, 0x3A, 0x25, 0x62, 0x78, 0x00, 0x00, +0x53, 0x74, 0x6F, 0x72, 0x45, 0x6E, 0x3A, 0x25, +0x62, 0x78, 0x20, 0x42, 0x46, 0x63, 0x74, 0x72, +0x6C, 0x3A, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x52, 0x74, 0x25, 0x62, 0x78, 0x2C, 0x52, 0x74, +0x5F, 0x63, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x48, 0x52, 0x3A, 0x25, 0x62, 0x78, 0x2C, 0x4C, +0x52, 0x3A, 0x25, 0x62, 0x78, 0x2C, 0x54, 0x79, +0x70, 0x65, 0x3A, 0x25, 0x62, 0x78, 0x00, 0x00, +0x46, 0x69, 0x78, 0x20, 0x69, 0x64, 0x3D, 0x25, +0x62, 0x78, 0x20, 0x42, 0x77, 0x3D, 0x25, 0x62, +0x78, 0x20, 0x52, 0x74, 0x3D, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x49, 0x44, 0x3D, 0x25, +0x62, 0x78, 0x2C, 0x42, 0x43, 0x6E, 0x74, 0x3D, +0x25, 0x62, 0x78, 0x2C, 0x42, 0x54, 0x3A, 0x25, +0x78, 0x2C, 0x42, 0x4F, 0x6B, 0x3A, 0x25, 0x78, +0x00, 0x00, 0x00, 0x00, 0x49, 0x44, 0x3D, 0x25, +0x62, 0x78, 0x2C, 0x42, 0x52, 0x61, 0x74, 0x65, +0x3D, 0x25, 0x62, 0x78, 0x2C, 0x42, 0x50, 0x45, +0x52, 0x3A, 0x25, 0x78, 0x00, 0x00, 0x00, 0x00, +0x52, 0x61, 0x4F, 0x63, 0x63, 0x4E, 0x75, 0x6D, +0x25, 0x62, 0x78, 0x00, 0x55, 0x70, 0x52, 0x61, 0x74, 0x65, 0x25, 0x62, 0x78, 0x20, 0x42, 0x57, 0x25, 0x62, 0x78, 0x20, 0x4D, 0x61, 0x78, 0x42, 0x57, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, -0x35, 0x2E, 0x42, 0x77, 0x44, 0x77, 0x6E, 0x3D, -0x25, 0x62, 0x78, 0x00, 0x36, 0x2E, 0x53, 0x47, -0x49, 0x5F, 0x44, 0x77, 0x3D, 0x25, 0x62, 0x78, +0x31, 0x2E, 0x48, 0x2D, 0x65, 0x73, 0x74, 0x20, +0x25, 0x62, 0x78, 0x00, 0x32, 0x2E, 0x48, 0x2D, +0x65, 0x73, 0x74, 0x53, 0x20, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x33, 0x2E, 0x3E, 0x48, +0x2D, 0x65, 0x73, 0x74, 0x20, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x34, 0x2E, 0x4D, 0x2D, +0x42, 0x77, 0x55, 0x70, 0x20, 0x52, 0x61, 0x74, +0x65, 0x3A, 0x25, 0x62, 0x78, 0x2C, 0x20, 0x42, +0x77, 0x3A, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x35, 0x2E, 0x42, 0x77, 0x55, 0x70, 0x3D, 0x25, +0x62, 0x78, 0x00, 0x00, 0x36, 0x2E, 0x53, 0x47, +0x49, 0x5F, 0x55, 0x70, 0x3D, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x25, 0x62, 0x78, 0x3A, +0x25, 0x62, 0x78, 0x2D, 0x3E, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, 0x37, 0x2E, 0x52, 0x61, -0x74, 0x65, 0x44, 0x77, 0x6E, 0x25, 0x62, 0x78, -0x00, 0x00, 0x00, 0x00, 0x52, 0x74, 0x3A, 0x25, -0x62, 0x78, 0x20, 0x25, 0x62, 0x78, 0x20, 0x25, -0x62, 0x78, 0x2C, 0x54, 0x72, 0x79, 0x3D, 0x25, -0x62, 0x78, 0x2C, 0x4D, 0x2D, 0x54, 0x72, 0x79, +0x74, 0x65, 0x55, 0x70, 0x25, 0x62, 0x78, 0x00, +0x30, 0x52, 0x74, 0x25, 0x62, 0x78, 0x20, 0x25, +0x62, 0x78, 0x20, 0x25, 0x62, 0x78, 0x00, 0x00, +0x31, 0x52, 0x74, 0x25, 0x62, 0x78, 0x20, 0x25, +0x62, 0x78, 0x20, 0x25, 0x62, 0x78, 0x00, 0x00, +0x4E, 0x6F, 0x20, 0x55, 0x70, 0x20, 0x52, 0x61, +0x74, 0x65, 0x00, 0x00, 0x32, 0x52, 0x74, 0x3A, +0x25, 0x62, 0x78, 0x20, 0x25, 0x62, 0x78, 0x20, +0x25, 0x62, 0x78, 0x2C, 0x54, 0x72, 0x79, 0x3D, +0x25, 0x62, 0x78, 0x2C, 0x4D, 0x2D, 0x54, 0x72, +0x79, 0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x44, 0x6E, 0x52, 0x61, 0x74, 0x65, 0x25, 0x62, +0x78, 0x20, 0x42, 0x57, 0x25, 0x62, 0x78, 0x20, +0x4D, 0x61, 0x78, 0x42, 0x57, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x35, 0x2E, 0x42, 0x77, +0x44, 0x77, 0x6E, 0x3D, 0x25, 0x62, 0x78, 0x00, +0x36, 0x2E, 0x53, 0x47, 0x49, 0x5F, 0x44, 0x77, 0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, -0x54, 0x72, 0x79, 0x69, 0x6E, 0x67, 0x00, 0x00, -0x3E, 0x48, 0x2D, 0x65, 0x73, 0x74, 0x20, 0x52, -0x74, 0x00, 0x00, 0x00, 0x49, 0x44, 0x3A, 0x25, -0x62, 0x78, 0x2C, 0x4F, 0x6B, 0x25, 0x62, 0x78, -0x2C, 0x54, 0x6F, 0x74, 0x25, 0x62, 0x78, 0x2C, -0x44, 0x70, 0x25, 0x62, 0x78, 0x2C, 0x61, 0x2D, -0x4F, 0x4B, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, -0x50, 0x45, 0x52, 0x25, 0x62, 0x78, 0x2C, 0x52, -0x44, 0x52, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, -0x42, 0x77, 0x3D, 0x25, 0x62, 0x78, 0x2C, 0x42, -0x77, 0x32, 0x3D, 0x25, 0x62, 0x78, 0x2C, 0x52, -0x74, 0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, -0x32, 0x55, 0x70, 0x25, 0x62, 0x78, 0x2C, 0x44, -0x77, 0x6E, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, -0x46, 0x77, 0x20, 0x46, 0x69, 0x78, 0x20, 0x52, -0x61, 0x74, 0x65, 0x00, 0x46, 0x6F, 0x72, 0x63, -0x65, 0x52, 0x61, 0x74, 0x65, 0x44, 0x77, 0x00, -0x52, 0x74, 0x44, 0x77, 0x6E, 0x43, 0x6E, 0x74, -0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, -0x52, 0x61, 0x74, 0x65, 0x20, 0x44, 0x6F, 0x77, -0x6E, 0x00, 0x00, 0x00, 0x52, 0x74, 0x55, 0x70, -0x43, 0x6E, 0x74, 0x3D, 0x25, 0x62, 0x78, 0x00, -0x52, 0x61, 0x74, 0x65, 0x20, 0x55, 0x50, 0x00, -0x52, 0x61, 0x74, 0x65, 0x20, 0x53, 0x74, 0x61, -0x79, 0x00, 0x00, 0x00, 0x49, 0x6E, 0x69, 0x74, +0x37, 0x2E, 0x52, 0x61, 0x74, 0x65, 0x44, 0x77, +0x6E, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x52, 0x74, 0x3A, 0x25, 0x62, 0x78, 0x20, 0x25, +0x62, 0x78, 0x20, 0x25, 0x62, 0x78, 0x2C, 0x54, +0x72, 0x79, 0x3D, 0x25, 0x62, 0x78, 0x2C, 0x4D, +0x2D, 0x54, 0x72, 0x79, 0x3D, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x54, 0x72, 0x79, 0x69, +0x6E, 0x67, 0x00, 0x00, 0x3E, 0x48, 0x2D, 0x65, +0x73, 0x74, 0x20, 0x52, 0x74, 0x00, 0x00, 0x00, +0x49, 0x44, 0x3A, 0x25, 0x62, 0x78, 0x2C, 0x4F, +0x6B, 0x25, 0x62, 0x78, 0x2C, 0x54, 0x6F, 0x74, +0x25, 0x62, 0x78, 0x2C, 0x44, 0x70, 0x25, 0x62, +0x78, 0x2C, 0x61, 0x2D, 0x4F, 0x4B, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x50, 0x45, 0x52, 0x25, +0x62, 0x78, 0x2C, 0x52, 0x44, 0x52, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x42, 0x77, 0x3D, 0x25, +0x62, 0x78, 0x2C, 0x42, 0x77, 0x32, 0x3D, 0x25, +0x62, 0x78, 0x2C, 0x52, 0x74, 0x3D, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x32, 0x55, 0x70, 0x25, +0x62, 0x78, 0x2C, 0x44, 0x77, 0x6E, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x46, 0x77, 0x20, 0x46, +0x69, 0x78, 0x20, 0x52, 0x61, 0x74, 0x65, 0x00, +0x46, 0x6F, 0x72, 0x63, 0x65, 0x52, 0x61, 0x74, +0x65, 0x44, 0x77, 0x00, 0x52, 0x74, 0x44, 0x77, +0x6E, 0x43, 0x6E, 0x74, 0x3D, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x52, 0x61, 0x74, 0x65, +0x20, 0x44, 0x6F, 0x77, 0x6E, 0x00, 0x00, 0x00, +0x52, 0x74, 0x55, 0x70, 0x43, 0x6E, 0x74, 0x3D, +0x25, 0x62, 0x78, 0x00, 0x52, 0x61, 0x74, 0x65, +0x20, 0x55, 0x50, 0x00, 0x52, 0x61, 0x74, 0x65, +0x20, 0x53, 0x74, 0x61, 0x79, 0x00, 0x00, 0x00, +0x49, 0x6E, 0x69, 0x74, 0x52, 0x61, 0x74, 0x65, +0x20, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x52, 0x61, 0x44, 0x77, 0x6E, 0x54, 0x72, 0x79, +0x20, 0x52, 0x61, 0x74, 0x65, 0x3D, 0x25, 0x62, +0x78, 0x2C, 0x42, 0x77, 0x25, 0x62, 0x78, 0x00, +0x54, 0x72, 0x79, 0x53, 0x75, 0x63, 0x63, 0x65, +0x73, 0x73, 0x00, 0x00, 0x54, 0x72, 0x79, 0x66, +0x61, 0x69, 0x6C, 0x00, 0x4D, 0x74, 0x54, 0x72, +0x79, 0x49, 0x64, 0x78, 0x3D, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x4D, 0x74, 0x54, 0x72, +0x79, 0x42, 0x57, 0x3D, 0x25, 0x62, 0x78, 0x00, +0x54, 0x72, 0x79, 0x20, 0x52, 0x74, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x5B, 0x54, 0x72, 0x79, +0x20, 0x44, 0x65, 0x63, 0x5D, 0x00, 0x00, 0x00, +0x4F, 0x6B, 0x25, 0x62, 0x78, 0x2C, 0x54, 0x6F, +0x74, 0x25, 0x62, 0x78, 0x2C, 0x44, 0x70, 0x25, +0x62, 0x78, 0x2C, 0x61, 0x2D, 0x4F, 0x4B, 0x25, +0x62, 0x78, 0x00, 0x00, 0x42, 0x77, 0x25, 0x62, +0x78, 0x2C, 0x52, 0x74, 0x3D, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x62, 0x77, 0x20, 0x25, +0x77, 0x78, 0x2D, 0x3E, 0x25, 0x77, 0x78, 0x00, +0x50, 0x72, 0x6F, 0x62, 0x20, 0x25, 0x62, 0x78, +0x2D, 0x3E, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x52, 0x61, 0x74, 0x65, 0x20, 0x25, 0x62, 0x78, -0x00, 0x00, 0x00, 0x00, 0x52, 0x61, 0x44, 0x77, -0x6E, 0x54, 0x72, 0x79, 0x20, 0x52, 0x61, 0x74, -0x65, 0x3D, 0x25, 0x62, 0x78, 0x2C, 0x42, 0x77, -0x25, 0x62, 0x78, 0x00, 0x54, 0x72, 0x79, 0x53, -0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x00, 0x00, -0x54, 0x72, 0x79, 0x66, 0x61, 0x69, 0x6C, 0x00, -0x4D, 0x74, 0x54, 0x72, 0x79, 0x49, 0x64, 0x78, -0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, -0x4D, 0x74, 0x54, 0x72, 0x79, 0x42, 0x57, 0x3D, -0x25, 0x62, 0x78, 0x00, 0x54, 0x72, 0x79, 0x20, -0x52, 0x74, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, -0x5B, 0x54, 0x72, 0x79, 0x20, 0x44, 0x65, 0x63, -0x5D, 0x00, 0x00, 0x00, 0x4F, 0x6B, 0x25, 0x62, -0x78, 0x2C, 0x54, 0x6F, 0x74, 0x25, 0x62, 0x78, -0x2C, 0x44, 0x70, 0x25, 0x62, 0x78, 0x2C, 0x61, -0x2D, 0x4F, 0x4B, 0x25, 0x62, 0x78, 0x00, 0x00, -0x42, 0x77, 0x25, 0x62, 0x78, 0x2C, 0x52, 0x74, -0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, -0x62, 0x77, 0x20, 0x25, 0x77, 0x78, 0x2D, 0x3E, -0x25, 0x77, 0x78, 0x00, 0x50, 0x72, 0x6F, 0x62, -0x20, 0x25, 0x62, 0x78, 0x2D, 0x3E, 0x25, 0x62, -0x78, 0x00, 0x00, 0x00, 0x52, 0x61, 0x74, 0x65, -0x20, 0x25, 0x62, 0x78, 0x2D, 0x3E, 0x25, 0x62, -0x78, 0x00, 0x00, 0x00, 0x54, 0x72, 0x70, 0x74, -0x20, 0x25, 0x77, 0x78, 0x2D, 0x3E, 0x25, 0x77, -0x78, 0x00, 0x00, 0x00, 0x53, 0x65, 0x74, 0x20, -0x4C, 0x6D, 0x74, 0x20, 0x25, 0x62, 0x78, 0x00, -0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x3D, 0x25, -0x62, 0x78, 0x00, 0x00, 0x65, 0x72, 0x72, 0x6F, -0x72, 0x20, 0x63, 0x68, 0x61, 0x6E, 0x6E, 0x65, -0x6C, 0x00, 0x00, 0x00, 0x63, 0x68, 0x3A, 0x25, -0x77, 0x78, 0x2C, 0x20, 0x73, 0x6E, 0x3A, 0x25, -0x62, 0x78, 0x00, 0x00, 0x70, 0x68, 0x79, 0x64, -0x6D, 0x5F, 0x6D, 0x63, 0x63, 0x64, 0x6D, 0x5F, -0x73, 0x77, 0x5F, 0x61, 0x70, 0x69, 0x00, 0x00, -0x73, 0x65, 0x74, 0x3A, 0x20, 0x72, 0x65, 0x67, -0x3A, 0x25, 0x77, 0x78, 0x2C, 0x20, 0x76, 0x61, -0x6C, 0x3A, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, -0x70, 0x68, 0x79, 0x64, 0x6D, 0x5F, 0x69, 0x6E, -0x69, 0x74, 0x5F, 0x6D, 0x63, 0x63, 0x64, 0x6D, -0x00, 0x00, 0x00, 0x00, 0x70, 0x68, 0x79, 0x64, -0x6D, 0x5F, 0x43, 0x32, 0x48, 0x48, 0x44, 0x4C, -0x5F, 0x6D, 0x63, 0x63, 0x5F, 0x64, 0x6D, 0x3A, -0x20, 0x65, 0x6E, 0x20, 0x25, 0x62, 0x78, 0x2C, -0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x25, 0x62, -0x78, 0x00, 0x00, 0x00, 0x72, 0x65, 0x67, 0x5F, -0x69, 0x64, 0x20, 0x25, 0x62, 0x78, 0x2C, 0x20, -0x72, 0x65, 0x67, 0x3A, 0x20, 0x25, 0x77, 0x78, -0x2C, 0x20, 0x76, 0x61, 0x6C, 0x20, 0x25, 0x62, -0x78, 0x2C, 0x20, 0x25, 0x62, 0x78, 0x00, 0x00, -0x63, 0x68, 0x31, 0x3A, 0x20, 0x25, 0x77, 0x78, -0x2C, 0x20, 0x63, 0x68, 0x32, 0x3A, 0x20, 0x25, -0x77, 0x78, 0x00, 0x00, 0x44, 0x6F, 0x20, 0x6E, -0x6F, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x31, -0x52, 0x43, 0x43, 0x41, 0x20, 0x77, 0x68, 0x65, -0x6E, 0x20, 0x72, 0x78, 0x20, 0x63, 0x6F, 0x6E, -0x66, 0x69, 0x67, 0x20, 0x69, 0x73, 0x20, 0x6E, -0x6F, 0x74, 0x20, 0x32, 0x52, 0x21, 0x00, 0x00, -0x25, 0x73, 0x20, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, -0x3D, 0x3E, 0x0A, 0x00, 0x55, 0x6E, 0x73, 0x75, -0x70, 0x70, 0x6F, 0x72, 0x74, 0x65, 0x64, 0x20, -0x70, 0x61, 0x74, 0x68, 0x20, 0x28, 0x25, 0x64, -0x29, 0x0A, 0x00, 0x00, 0x64, 0x69, 0x66, 0x66, -0x3D, 0x25, 0x64, 0x20, 0x72, 0x65, 0x66, 0x3D, -0x25, 0x64, 0x0A, 0x00, 0x70, 0x61, 0x74, 0x68, -0x2D, 0x25, 0x64, 0x20, 0x72, 0x61, 0x74, 0x65, -0x20, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x20, 0x30, -0x78, 0x25, 0x78, 0x20, 0x3D, 0x20, 0x30, 0x78, -0x25, 0x78, 0x0A, 0x00, 0x44, 0x69, 0x73, 0x61, -0x62, 0x6C, 0x65, 0x20, 0x50, 0x48, 0x59, 0x20, -0x41, 0x50, 0x49, 0x20, 0x66, 0x6F, 0x72, 0x20, -0x64, 0x65, 0x62, 0x75, 0x67, 0x0A, 0x00, 0x00, +0x2D, 0x3E, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x54, 0x72, 0x70, 0x74, 0x20, 0x25, 0x77, 0x78, +0x2D, 0x3E, 0x25, 0x77, 0x78, 0x00, 0x00, 0x00, +0x53, 0x65, 0x74, 0x20, 0x4C, 0x6D, 0x74, 0x20, +0x25, 0x62, 0x78, 0x00, 0x72, 0x65, 0x73, 0x75, +0x6C, 0x74, 0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, +0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x63, 0x68, +0x61, 0x6E, 0x6E, 0x65, 0x6C, 0x00, 0x00, 0x00, +0x63, 0x68, 0x3A, 0x25, 0x77, 0x78, 0x2C, 0x20, +0x73, 0x6E, 0x3A, 0x25, 0x62, 0x78, 0x00, 0x00, +0x70, 0x68, 0x79, 0x64, 0x6D, 0x5F, 0x6D, 0x63, +0x63, 0x64, 0x6D, 0x5F, 0x73, 0x77, 0x5F, 0x61, +0x70, 0x69, 0x00, 0x00, 0x73, 0x65, 0x74, 0x3A, +0x20, 0x72, 0x65, 0x67, 0x3A, 0x25, 0x77, 0x78, +0x2C, 0x20, 0x76, 0x61, 0x6C, 0x3A, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x70, 0x68, 0x79, 0x64, +0x6D, 0x5F, 0x69, 0x6E, 0x69, 0x74, 0x5F, 0x6D, +0x63, 0x63, 0x64, 0x6D, 0x00, 0x00, 0x00, 0x00, +0x70, 0x68, 0x79, 0x64, 0x6D, 0x5F, 0x43, 0x32, +0x48, 0x48, 0x44, 0x4C, 0x5F, 0x6D, 0x63, 0x63, +0x5F, 0x64, 0x6D, 0x3A, 0x20, 0x65, 0x6E, 0x20, +0x25, 0x62, 0x78, 0x2C, 0x20, 0x74, 0x79, 0x70, +0x65, 0x20, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x72, 0x65, 0x67, 0x5F, 0x69, 0x64, 0x20, 0x25, +0x62, 0x78, 0x2C, 0x20, 0x72, 0x65, 0x67, 0x3A, +0x20, 0x25, 0x77, 0x78, 0x2C, 0x20, 0x76, 0x61, +0x6C, 0x20, 0x25, 0x62, 0x78, 0x2C, 0x20, 0x25, +0x62, 0x78, 0x00, 0x00, 0x63, 0x68, 0x31, 0x3A, +0x20, 0x25, 0x77, 0x78, 0x2C, 0x20, 0x63, 0x68, +0x32, 0x3A, 0x20, 0x25, 0x77, 0x78, 0x00, 0x00, +0x44, 0x6F, 0x20, 0x6E, 0x6F, 0x74, 0x20, 0x73, +0x65, 0x74, 0x20, 0x31, 0x52, 0x43, 0x43, 0x41, +0x20, 0x77, 0x68, 0x65, 0x6E, 0x20, 0x72, 0x78, +0x20, 0x63, 0x6F, 0x6E, 0x66, 0x69, 0x67, 0x20, +0x69, 0x73, 0x20, 0x6E, 0x6F, 0x74, 0x20, 0x32, +0x52, 0x21, 0x00, 0x00, 0x25, 0x73, 0x20, 0x3D, +0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3E, 0x0A, 0x00, 0x55, 0x6E, 0x73, 0x75, 0x70, 0x70, 0x6F, 0x72, -0x74, 0x65, 0x64, 0x20, 0x72, 0x61, 0x74, 0x65, -0x0A, 0x00, 0x00, 0x00, 0x72, 0x61, 0x74, 0x65, -0x20, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x20, 0x30, -0x78, 0x25, 0x78, 0x20, 0x28, 0x30, 0x78, 0x25, -0x78, 0x29, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, -0x78, 0x0A, 0x00, 0x00, 0x70, 0x61, 0x74, 0x68, -0x2D, 0x25, 0x64, 0x20, 0x72, 0x61, 0x74, 0x65, -0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x25, 0x64, -0x20, 0x28, 0x30, 0x78, 0x25, 0x78, 0x29, 0x20, +0x74, 0x65, 0x64, 0x20, 0x70, 0x61, 0x74, 0x68, +0x20, 0x28, 0x25, 0x64, 0x29, 0x0A, 0x00, 0x00, +0x64, 0x69, 0x66, 0x66, 0x3D, 0x25, 0x64, 0x20, +0x72, 0x65, 0x66, 0x3D, 0x25, 0x64, 0x0A, 0x00, +0x70, 0x61, 0x74, 0x68, 0x2D, 0x25, 0x64, 0x20, +0x72, 0x61, 0x74, 0x65, 0x20, 0x69, 0x6E, 0x64, +0x65, 0x78, 0x20, 0x30, 0x78, 0x25, 0x78, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0A, 0x00, -0x52, 0x46, 0x2D, 0x25, 0x64, 0x20, 0x30, 0x78, -0x25, 0x78, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, -0x78, 0x20, 0x2C, 0x20, 0x62, 0x69, 0x74, 0x20, -0x6D, 0x61, 0x73, 0x6B, 0x20, 0x3D, 0x20, 0x30, -0x78, 0x25, 0x78, 0x0A, 0x00, 0x00, 0x00, 0x00, -0x52, 0x46, 0x2D, 0x25, 0x64, 0x20, 0x30, 0x78, -0x25, 0x78, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, -0x78, 0x2C, 0x20, 0x62, 0x69, 0x74, 0x20, 0x6D, -0x61, 0x73, 0x6B, 0x20, 0x3D, 0x20, 0x30, 0x78, -0x25, 0x78, 0x0A, 0x00, 0x5B, 0x38, 0x38, 0x32, -0x32, 0x43, 0x5D, 0x20, 0x55, 0x70, 0x64, 0x61, -0x74, 0x65, 0x20, 0x52, 0x46, 0x45, 0x20, 0x50, -0x49, 0x4E, 0x73, 0x3A, 0x20, 0x54, 0x2F, 0x52, -0x58, 0x5F, 0x70, 0x61, 0x74, 0x68, 0x3A, 0x7B, -0x30, 0x78, 0x25, 0x78, 0x2C, 0x20, 0x30, 0x78, -0x25, 0x78, 0x7D, 0x2C, 0x20, 0x72, 0x66, 0x65, -0x5F, 0x74, 0x79, 0x70, 0x65, 0x3A, 0x25, 0x64, -0x0A, 0x00, 0x00, 0x00, 0x49, 0x6E, 0x76, 0x61, -0x6C, 0x69, 0x64, 0x20, 0x70, 0x61, 0x74, 0x68, -0x3D, 0x25, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x00, -0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x66, 0x61, -0x69, 0x6C, 0x2C, 0x20, 0x52, 0x46, 0x20, 0x69, -0x73, 0x20, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6C, -0x65, 0x0A, 0x00, 0x00, 0x52, 0x46, 0x2D, 0x25, +0x44, 0x69, 0x73, 0x61, 0x62, 0x6C, 0x65, 0x20, +0x50, 0x48, 0x59, 0x20, 0x41, 0x50, 0x49, 0x20, +0x66, 0x6F, 0x72, 0x20, 0x64, 0x65, 0x62, 0x75, +0x67, 0x0A, 0x00, 0x00, 0x55, 0x6E, 0x73, 0x75, +0x70, 0x70, 0x6F, 0x72, 0x74, 0x65, 0x64, 0x20, +0x72, 0x61, 0x74, 0x65, 0x0A, 0x00, 0x00, 0x00, +0x72, 0x61, 0x74, 0x65, 0x20, 0x69, 0x6E, 0x64, +0x65, 0x78, 0x20, 0x30, 0x78, 0x25, 0x78, 0x20, +0x28, 0x30, 0x78, 0x25, 0x78, 0x29, 0x20, 0x3D, +0x20, 0x30, 0x78, 0x25, 0x78, 0x0A, 0x00, 0x00, +0x70, 0x61, 0x74, 0x68, 0x2D, 0x25, 0x64, 0x20, +0x72, 0x61, 0x74, 0x65, 0x20, 0x74, 0x79, 0x70, +0x65, 0x20, 0x25, 0x64, 0x20, 0x28, 0x30, 0x78, +0x25, 0x78, 0x29, 0x20, 0x3D, 0x20, 0x30, 0x78, +0x25, 0x78, 0x0A, 0x00, 0x52, 0x46, 0x2D, 0x25, 0x64, 0x20, 0x30, 0x78, 0x25, 0x78, 0x20, 0x3D, -0x20, 0x30, 0x78, 0x25, 0x78, 0x20, 0x28, 0x6F, -0x72, 0x69, 0x67, 0x69, 0x6E, 0x61, 0x6C, 0x3A, -0x20, 0x30, 0x78, 0x25, 0x78, 0x29, 0x2C, 0x20, +0x20, 0x30, 0x78, 0x25, 0x78, 0x20, 0x2C, 0x20, 0x62, 0x69, 0x74, 0x20, 0x6D, 0x61, 0x73, 0x6B, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0A, -0x00, 0x00, 0x00, 0x00, 0x5B, 0x57, 0x61, 0x72, -0x6E, 0x69, 0x6E, 0x67, 0x5D, 0x5B, 0x25, 0x73, -0x5D, 0x20, 0x50, 0x6B, 0x67, 0x5F, 0x76, 0x65, -0x72, 0x7B, 0x62, 0x62, 0x2C, 0x20, 0x72, 0x66, -0x7D, 0x3D, 0x7B, 0x25, 0x64, 0x2C, 0x20, 0x25, -0x64, 0x7D, 0x20, 0x64, 0x69, 0x73, 0x61, 0x62, -0x6C, 0x65, 0x20, 0x61, 0x6C, 0x6C, 0x20, 0x42, -0x42, 0x20, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x0A, -0x00, 0x00, 0x00, 0x00, 0x50, 0x72, 0x65, 0x20, -0x73, 0x65, 0x74, 0x74, 0x69, 0x6E, 0x67, 0x3A, -0x20, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6C, 0x65, -0x20, 0x4F, 0x46, 0x44, 0x4D, 0x20, 0x61, 0x6E, -0x64, 0x20, 0x43, 0x43, 0x4B, 0x20, 0x62, 0x6C, +0x00, 0x00, 0x00, 0x00, 0x52, 0x46, 0x2D, 0x25, +0x64, 0x20, 0x30, 0x78, 0x25, 0x78, 0x20, 0x3D, +0x20, 0x30, 0x78, 0x25, 0x78, 0x2C, 0x20, 0x62, +0x69, 0x74, 0x20, 0x6D, 0x61, 0x73, 0x6B, 0x20, +0x3D, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0A, 0x00, +0x5B, 0x38, 0x38, 0x32, 0x32, 0x43, 0x5D, 0x20, +0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x52, +0x46, 0x45, 0x20, 0x50, 0x49, 0x4E, 0x73, 0x3A, +0x20, 0x54, 0x2F, 0x52, 0x58, 0x5F, 0x70, 0x61, +0x74, 0x68, 0x3A, 0x7B, 0x30, 0x78, 0x25, 0x78, +0x2C, 0x20, 0x30, 0x78, 0x25, 0x78, 0x7D, 0x2C, +0x20, 0x72, 0x66, 0x65, 0x5F, 0x74, 0x79, 0x70, +0x65, 0x3A, 0x25, 0x64, 0x0A, 0x00, 0x00, 0x00, +0x49, 0x6E, 0x76, 0x61, 0x6C, 0x69, 0x64, 0x20, +0x70, 0x61, 0x74, 0x68, 0x3D, 0x25, 0x64, 0x0A, +0x00, 0x00, 0x00, 0x00, 0x57, 0x72, 0x69, 0x74, +0x65, 0x20, 0x66, 0x61, 0x69, 0x6C, 0x2C, 0x20, +0x52, 0x46, 0x20, 0x69, 0x73, 0x20, 0x64, 0x69, +0x73, 0x61, 0x62, 0x6C, 0x65, 0x0A, 0x00, 0x00, +0x52, 0x46, 0x2D, 0x25, 0x64, 0x20, 0x30, 0x78, +0x25, 0x78, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, +0x78, 0x20, 0x28, 0x6F, 0x72, 0x69, 0x67, 0x69, +0x6E, 0x61, 0x6C, 0x3A, 0x20, 0x30, 0x78, 0x25, +0x78, 0x29, 0x2C, 0x20, 0x62, 0x69, 0x74, 0x20, +0x6D, 0x61, 0x73, 0x6B, 0x20, 0x3D, 0x20, 0x30, +0x78, 0x25, 0x78, 0x0A, 0x00, 0x00, 0x00, 0x00, +0x5B, 0x57, 0x61, 0x72, 0x6E, 0x69, 0x6E, 0x67, +0x5D, 0x5B, 0x25, 0x73, 0x5D, 0x20, 0x50, 0x6B, +0x67, 0x5F, 0x76, 0x65, 0x72, 0x7B, 0x62, 0x62, +0x2C, 0x20, 0x72, 0x66, 0x7D, 0x3D, 0x7B, 0x25, +0x64, 0x2C, 0x20, 0x25, 0x64, 0x7D, 0x20, 0x64, +0x69, 0x73, 0x61, 0x62, 0x6C, 0x65, 0x20, 0x61, +0x6C, 0x6C, 0x20, 0x42, 0x42, 0x20, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x0A, 0x00, 0x00, 0x00, 0x00, -0x50, 0x6F, 0x73, 0x74, 0x20, 0x73, 0x65, 0x74, -0x74, 0x69, 0x6E, 0x67, 0x3A, 0x20, 0x65, 0x6E, +0x50, 0x72, 0x65, 0x20, 0x73, 0x65, 0x74, 0x74, +0x69, 0x6E, 0x67, 0x3A, 0x20, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6C, 0x65, 0x20, 0x4F, 0x46, 0x44, 0x4D, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x43, 0x43, 0x4B, 0x20, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x0A, -0x00, 0x00, 0x00, 0x00, 0x57, 0x72, 0x6F, 0x6E, -0x67, 0x20, 0x74, 0x79, 0x70, 0x65, 0x21, 0x21, -0x0A, 0x00, 0x00, 0x00, 0x44, 0x69, 0x73, 0x61, -0x62, 0x6C, 0x65, 0x20, 0x50, 0x48, 0x59, 0x20, -0x41, 0x50, 0x49, 0x20, 0x66, 0x6F, 0x72, 0x20, -0x64, 0x65, 0x62, 0x75, 0x67, 0x21, 0x21, 0x0A, -0x00, 0x00, 0x00, 0x00, 0x46, 0x61, 0x69, 0x6C, -0x20, 0x74, 0x6F, 0x20, 0x73, 0x77, 0x69, 0x74, -0x63, 0x68, 0x20, 0x62, 0x77, 0x28, 0x62, 0x77, -0x3A, 0x25, 0x64, 0x2C, 0x20, 0x70, 0x72, 0x69, -0x20, 0x63, 0x68, 0x3A, 0x25, 0x64, 0x29, 0x0A, -0x00, 0x00, 0x00, 0x00, 0x46, 0x61, 0x69, 0x6C, -0x20, 0x74, 0x6F, 0x20, 0x73, 0x77, 0x69, 0x74, -0x63, 0x68, 0x20, 0x62, 0x77, 0x20, 0x28, 0x62, -0x77, 0x3A, 0x25, 0x64, 0x2C, 0x20, 0x70, 0x72, -0x69, 0x20, 0x63, 0x68, 0x3A, 0x25, 0x64, 0x29, -0x0A, 0x00, 0x00, 0x00, 0x46, 0x61, 0x69, 0x6C, -0x20, 0x74, 0x6F, 0x20, 0x73, 0x77, 0x69, 0x74, -0x63, 0x68, 0x20, 0x62, 0x77, 0x20, 0x28, 0x62, -0x77, 0x3A, 0x25, 0x64, 0x2C, 0x20, 0x70, 0x72, -0x69, 0x6D, 0x61, 0x72, 0x79, 0x20, 0x63, 0x68, -0x3A, 0x25, 0x64, 0x29, 0x2C, 0x20, 0x62, 0x65, -0x63, 0x61, 0x75, 0x73, 0x65, 0x20, 0x77, 0x72, -0x69, 0x74, 0x69, 0x6E, 0x67, 0x20, 0x52, 0x46, -0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, -0x72, 0x20, 0x69, 0x73, 0x20, 0x66, 0x61, 0x69, -0x6C, 0x0A, 0x00, 0x00, 0x53, 0x75, 0x63, 0x63, -0x65, 0x73, 0x73, 0x20, 0x74, 0x6F, 0x20, 0x73, -0x77, 0x69, 0x74, 0x63, 0x68, 0x20, 0x62, 0x77, -0x20, 0x28, 0x62, 0x77, 0x3A, 0x25, 0x64, 0x2C, +0x00, 0x00, 0x00, 0x00, 0x50, 0x6F, 0x73, 0x74, +0x20, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6E, 0x67, +0x3A, 0x20, 0x65, 0x6E, 0x61, 0x62, 0x6C, 0x65, +0x20, 0x4F, 0x46, 0x44, 0x4D, 0x20, 0x61, 0x6E, +0x64, 0x20, 0x43, 0x43, 0x4B, 0x20, 0x62, 0x6C, +0x6F, 0x63, 0x6B, 0x0A, 0x00, 0x00, 0x00, 0x00, +0x57, 0x72, 0x6F, 0x6E, 0x67, 0x20, 0x74, 0x79, +0x70, 0x65, 0x21, 0x21, 0x0A, 0x00, 0x00, 0x00, +0x44, 0x69, 0x73, 0x61, 0x62, 0x6C, 0x65, 0x20, +0x50, 0x48, 0x59, 0x20, 0x41, 0x50, 0x49, 0x20, +0x66, 0x6F, 0x72, 0x20, 0x64, 0x65, 0x62, 0x75, +0x67, 0x21, 0x21, 0x0A, 0x00, 0x00, 0x00, 0x00, +0x46, 0x61, 0x69, 0x6C, 0x20, 0x74, 0x6F, 0x20, +0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x20, 0x62, +0x77, 0x28, 0x62, 0x77, 0x3A, 0x25, 0x64, 0x2C, 0x20, 0x70, 0x72, 0x69, 0x20, 0x63, 0x68, 0x3A, 0x25, 0x64, 0x29, 0x0A, 0x00, 0x00, 0x00, 0x00, -0x70, 0x61, 0x74, 0x68, 0x5F, 0x73, 0x65, 0x6C, -0x5F, 0x32, 0x73, 0x73, 0x2F, 0x31, 0x73, 0x73, -0x2F, 0x63, 0x63, 0x6B, 0x3D, 0x7B, 0x25, 0x64, -0x2C, 0x20, 0x25, 0x64, 0x2C, 0x20, 0x25, 0x64, -0x7D, 0x0A, 0x00, 0x00, 0x5B, 0x25, 0x73, 0x5D, -0x20, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6C, 0x65, -0x20, 0x50, 0x48, 0x59, 0x20, 0x41, 0x50, 0x49, -0x0A, 0x00, 0x00, 0x00, 0x5B, 0x57, 0x61, 0x72, -0x6E, 0x69, 0x6E, 0x67, 0x5D, 0x5B, 0x25, 0x73, -0x5D, 0x20, 0x52, 0x58, 0x3A, 0x30, 0x78, 0x25, -0x78, 0x0A, 0x00, 0x00, 0x5B, 0x57, 0x61, 0x72, -0x6E, 0x69, 0x6E, 0x67, 0x5D, 0x5B, 0x25, 0x73, -0x5D, 0x20, 0x54, 0x58, 0x3A, 0x30, 0x78, 0x25, -0x78, 0x0A, 0x00, 0x00, 0x52, 0x58, 0x5F, 0x65, -0x6E, 0x3D, 0x25, 0x78, 0x2C, 0x20, 0x74, 0x78, -0x5F, 0x65, 0x6E, 0x2F, 0x32, 0x73, 0x73, 0x2F, -0x31, 0x73, 0x73, 0x3D, 0x7B, 0x25, 0x78, 0x2C, -0x25, 0x78, 0x2C, 0x25, 0x78, 0x7D, 0x0A, 0x00, -0x44, 0x69, 0x73, 0x61, 0x62, 0x6C, 0x65, 0x20, -0x50, 0x48, 0x59, 0x20, 0x41, 0x50, 0x49, 0x0A, -0x00, 0x00, 0x00, 0x00, 0x45, 0x72, 0x72, 0x6F, -0x72, 0x20, 0x43, 0x48, 0x3A, 0x25, 0x64, 0x0A, -0x00, 0x00, 0x00, 0x00, 0x49, 0x6E, 0x76, 0x61, -0x6C, 0x69, 0x64, 0x20, 0x52, 0x46, 0x5F, 0x30, -0x78, 0x31, 0x38, 0x0A, 0x00, 0x00, 0x00, 0x00, -0x5B, 0x25, 0x73, 0x5D, 0x74, 0x78, 0x5F, 0x31, -0x73, 0x73, 0x20, 0x69, 0x73, 0x20, 0x6E, 0x6F, -0x6E, 0x21, 0x2C, 0x20, 0x75, 0x70, 0x64, 0x61, -0x74, 0x65, 0x20, 0x74, 0x78, 0x5F, 0x31, 0x73, -0x74, 0x73, 0x3A, 0x25, 0x64, 0x0A, 0x00, 0x00, -0x5B, 0x25, 0x73, 0x5D, 0x74, 0x78, 0x5F, 0x61, +0x46, 0x61, 0x69, 0x6C, 0x20, 0x74, 0x6F, 0x20, +0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x20, 0x62, +0x77, 0x20, 0x28, 0x62, 0x77, 0x3A, 0x25, 0x64, +0x2C, 0x20, 0x70, 0x72, 0x69, 0x20, 0x63, 0x68, +0x3A, 0x25, 0x64, 0x29, 0x0A, 0x00, 0x00, 0x00, +0x46, 0x61, 0x69, 0x6C, 0x20, 0x74, 0x6F, 0x20, +0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x20, 0x62, +0x77, 0x20, 0x28, 0x62, 0x77, 0x3A, 0x25, 0x64, +0x2C, 0x20, 0x70, 0x72, 0x69, 0x6D, 0x61, 0x72, +0x79, 0x20, 0x63, 0x68, 0x3A, 0x25, 0x64, 0x29, +0x2C, 0x20, 0x62, 0x65, 0x63, 0x61, 0x75, 0x73, +0x65, 0x20, 0x77, 0x72, 0x69, 0x74, 0x69, 0x6E, +0x67, 0x20, 0x52, 0x46, 0x20, 0x72, 0x65, 0x67, +0x69, 0x73, 0x74, 0x65, 0x72, 0x20, 0x69, 0x73, +0x20, 0x66, 0x61, 0x69, 0x6C, 0x0A, 0x00, 0x00, +0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, +0x74, 0x6F, 0x20, 0x73, 0x77, 0x69, 0x74, 0x63, +0x68, 0x20, 0x62, 0x77, 0x20, 0x28, 0x62, 0x77, +0x3A, 0x25, 0x64, 0x2C, 0x20, 0x70, 0x72, 0x69, +0x20, 0x63, 0x68, 0x3A, 0x25, 0x64, 0x29, 0x0A, +0x00, 0x00, 0x00, 0x00, 0x70, 0x61, 0x74, 0x68, +0x5F, 0x73, 0x65, 0x6C, 0x5F, 0x32, 0x73, 0x73, +0x2F, 0x31, 0x73, 0x73, 0x2F, 0x63, 0x63, 0x6B, +0x3D, 0x7B, 0x25, 0x64, 0x2C, 0x20, 0x25, 0x64, +0x2C, 0x20, 0x25, 0x64, 0x7D, 0x0A, 0x00, 0x00, +0x5B, 0x25, 0x73, 0x5D, 0x20, 0x44, 0x69, 0x73, +0x61, 0x62, 0x6C, 0x65, 0x20, 0x50, 0x48, 0x59, +0x20, 0x41, 0x50, 0x49, 0x0A, 0x00, 0x00, 0x00, +0x5B, 0x57, 0x61, 0x72, 0x6E, 0x69, 0x6E, 0x67, +0x5D, 0x5B, 0x25, 0x73, 0x5D, 0x20, 0x52, 0x58, +0x3A, 0x30, 0x78, 0x25, 0x78, 0x0A, 0x00, 0x00, +0x5B, 0x57, 0x61, 0x72, 0x6E, 0x69, 0x6E, 0x67, +0x5D, 0x5B, 0x25, 0x73, 0x5D, 0x20, 0x54, 0x58, +0x3A, 0x30, 0x78, 0x25, 0x78, 0x0A, 0x00, 0x00, +0x52, 0x58, 0x5F, 0x65, 0x6E, 0x3D, 0x25, 0x78, +0x2C, 0x20, 0x74, 0x78, 0x5F, 0x65, 0x6E, 0x2F, +0x32, 0x73, 0x73, 0x2F, 0x31, 0x73, 0x73, 0x3D, +0x7B, 0x25, 0x78, 0x2C, 0x25, 0x78, 0x2C, 0x25, +0x78, 0x7D, 0x0A, 0x00, 0x44, 0x69, 0x73, 0x61, +0x62, 0x6C, 0x65, 0x20, 0x50, 0x48, 0x59, 0x20, +0x41, 0x50, 0x49, 0x0A, 0x00, 0x00, 0x00, 0x00, +0x45, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x43, 0x48, +0x3A, 0x25, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x00, +0x49, 0x6E, 0x76, 0x61, 0x6C, 0x69, 0x64, 0x20, +0x52, 0x46, 0x5F, 0x30, 0x78, 0x31, 0x38, 0x0A, +0x00, 0x00, 0x00, 0x00, 0x5B, 0x25, 0x73, 0x5D, +0x74, 0x78, 0x5F, 0x31, 0x73, 0x73, 0x20, 0x69, +0x73, 0x20, 0x6E, 0x6F, 0x6E, 0x21, 0x2C, 0x20, +0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x74, +0x78, 0x5F, 0x31, 0x73, 0x74, 0x73, 0x3A, 0x25, +0x64, 0x0A, 0x00, 0x00, 0x5B, 0x25, 0x73, 0x5D, +0x74, 0x78, 0x5F, 0x61, 0x6E, 0x74, 0x5F, 0x73, +0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x69, 0x73, +0x20, 0x6E, 0x6F, 0x6E, 0x21, 0x2C, 0x20, 0x75, +0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x74, 0x78, +0x5F, 0x32, 0x73, 0x74, 0x73, 0x2F, 0x74, 0x78, +0x5F, 0x70, 0x61, 0x74, 0x68, 0x3A, 0x25, 0x64, +0x2F, 0x25, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x00, +0x5B, 0x25, 0x73, 0x5D, 0x72, 0x78, 0x5F, 0x61, 0x6E, 0x74, 0x5F, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x69, 0x73, 0x20, 0x6E, 0x6F, 0x6E, 0x21, 0x2C, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, -0x65, 0x20, 0x74, 0x78, 0x5F, 0x32, 0x73, 0x74, -0x73, 0x2F, 0x74, 0x78, 0x5F, 0x70, 0x61, 0x74, -0x68, 0x3A, 0x25, 0x64, 0x2F, 0x25, 0x64, 0x0A, -0x00, 0x00, 0x00, 0x00, 0x5B, 0x25, 0x73, 0x5D, -0x72, 0x78, 0x5F, 0x61, 0x6E, 0x74, 0x5F, 0x73, -0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x69, 0x73, -0x20, 0x6E, 0x6F, 0x6E, 0x21, 0x2C, 0x20, 0x75, -0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x72, 0x78, -0x5F, 0x70, 0x61, 0x74, 0x68, 0x3A, 0x25, 0x64, -0x0A, 0x00, 0x00, 0x00, 0x53, 0x77, 0x69, 0x74, -0x63, 0x68, 0x20, 0x43, 0x48, 0x3A, 0x25, 0x64, -0x20, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, -0x0A, 0x00, 0x00, 0x00, 0x55, 0x6E, 0x72, 0x65, -0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x20, 0x63, -0x6C, 0x61, 0x73, 0x73, 0x21, 0x0A, 0x00, 0x00, +0x65, 0x20, 0x72, 0x78, 0x5F, 0x70, 0x61, 0x74, +0x68, 0x3A, 0x25, 0x64, 0x0A, 0x00, 0x00, 0x00, +0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x20, 0x43, +0x48, 0x3A, 0x25, 0x64, 0x20, 0x73, 0x75, 0x63, +0x63, 0x65, 0x73, 0x73, 0x0A, 0x00, 0x00, 0x00, +0x55, 0x6E, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, +0x65, 0x72, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, +0x21, 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, @@ -18203,677 +17897,676 @@ u8 array_mp_8822c_fw_nic[] = { 0x00, 0x00, 0x00, 0x00, 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, 0x80, 0x0B, 0x70, +0x01, 0x80, 0x0B, 0x70, 0x01, 0x40, 0x14, 0x70, +0x01, 0x40, 0x24, 0x70, 0x01, 0x40, 0x34, 0x70, +0x01, 0x40, 0x44, 0x70, 0x01, 0x80, 0x5B, 0x70, +0x01, 0x40, 0x64, 0x70, 0x01, 0x80, 0x7B, 0x70, +0x01, 0x80, 0x8B, 0x70, 0x01, 0x80, 0x9B, 0x70, +0x01, 0x80, 0xAB, 0x70, 0x01, 0x80, 0xBB, 0x70, +0x01, 0x80, 0xCB, 0x70, 0x01, 0x80, 0xDB, 0x70, +0x01, 0x80, 0xEB, 0x70, 0x01, 0x80, 0xFB, 0x70, +0x01, 0x80, 0xFB, 0x70, 0x01, 0x80, 0x0B, 0x70, +0x01, 0x80, 0x0B, 0x70, 0x01, 0x40, 0x14, 0x70, +0x01, 0x40, 0x24, 0x70, 0x01, 0x40, 0x34, 0x70, +0x01, 0x40, 0x44, 0x70, 0x01, 0x80, 0x5B, 0x70, +0x01, 0x40, 0x64, 0x70, 0x01, 0x80, 0x7B, 0x70, +0x01, 0x80, 0x8B, 0x70, 0x01, 0x80, 0x9B, 0x70, +0x01, 0x80, 0xAB, 0x70, 0x01, 0x80, 0xBB, 0x70, +0x01, 0x80, 0xCB, 0x70, 0x01, 0x80, 0xDB, 0x70, +0x01, 0x80, 0xEB, 0x70, 0x01, 0x80, 0xFB, 0x70, +0x01, 0x80, 0xFB, 0x70, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x41, +0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x43, +0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x45, +0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x47, +0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x49, +0x00, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x4B, +0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x4D, +0x00, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x00, 0x4F, +0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x51, +0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x53, +0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x55, +0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x57, +0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x59, +0x00, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x5B, +0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00, 0x5D, +0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00, 0x5F, +0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x61, +0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x63, +0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x65, +0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x67, +0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x69, +0x00, 0x00, 0x00, 0x6A, 0x00, 0x00, 0x00, 0x6B, +0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x6D, +0x00, 0x00, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x6F, +0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x71, +0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x73, +0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x75, +0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x77, +0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x79, +0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00, 0x7B, +0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x7D, +0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x7F, +0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, +0x00, 0x1B, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, +0x00, 0x1B, 0x00, 0x00, 0x08, 0x00, 0xA7, 0x00, +0x00, 0x1B, 0x00, 0x00, 0x08, 0x00, 0x15, 0x00, +0x00, 0x1B, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, +0x04, 0x1B, 0x00, 0x00, 0x52, 0x29, 0x46, 0xE2, +0x08, 0x1B, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, +0x0C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x10, 0x1B, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x00, +0x14, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x18, 0x1B, 0x00, 0x00, 0x03, 0x29, 0x29, 0x00, +0x1C, 0x1B, 0x00, 0x00, 0x32, 0xFC, 0x18, 0xA2, +0x20, 0x1B, 0x00, 0x00, 0x08, 0x00, 0x04, 0x01, +0x24, 0x1B, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, +0x28, 0x1B, 0x00, 0x00, 0x00, 0x03, 0x06, 0x00, +0x2C, 0x1B, 0x00, 0x00, 0x18, 0x00, 0x18, 0x00, +0x30, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, +0x34, 0x1B, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, +0x38, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, +0x3C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, +0x98, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x9C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xC0, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, +0xCC, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xE4, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xEC, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, +0x40, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, +0x44, 0x1B, 0x00, 0x00, 0x64, 0x40, 0x00, 0x20, +0x48, 0x1B, 0x00, 0x00, 0x2D, 0x00, 0x05, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x60, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x10, 0x1F, +0x64, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x00, +0x50, 0x1B, 0x00, 0x00, 0xBE, 0x03, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x01, +0x50, 0x1B, 0x00, 0x00, 0x7A, 0x05, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x02, +0x50, 0x1B, 0x00, 0x00, 0xC8, 0x06, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x03, +0x50, 0x1B, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x04, +0x50, 0x1B, 0x00, 0x00, 0xD5, 0x08, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x05, +0x50, 0x1B, 0x00, 0x00, 0xB2, 0x09, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x06, +0x50, 0x1B, 0x00, 0x00, 0x7D, 0x0A, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x07, +0x50, 0x1B, 0x00, 0x00, 0x3A, 0x0B, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x08, +0x50, 0x1B, 0x00, 0x00, 0xEB, 0x0B, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x09, +0x50, 0x1B, 0x00, 0x00, 0x92, 0x0C, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x0A, +0x50, 0x1B, 0x00, 0x00, 0x31, 0x0D, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x0B, +0x50, 0x1B, 0x00, 0x00, 0xC9, 0x0D, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x0C, +0x50, 0x1B, 0x00, 0x00, 0x5A, 0x0E, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x0D, +0x50, 0x1B, 0x00, 0x00, 0xE6, 0x0E, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x0E, +0x50, 0x1B, 0x00, 0x00, 0x6D, 0x0F, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x0F, +0x50, 0x1B, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x10, +0x50, 0x1B, 0x00, 0x00, 0x6F, 0x10, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x11, +0x50, 0x1B, 0x00, 0x00, 0xE9, 0x10, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x12, +0x50, 0x1B, 0x00, 0x00, 0x61, 0x11, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x13, +0x50, 0x1B, 0x00, 0x00, 0xD5, 0x11, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x14, +0x50, 0x1B, 0x00, 0x00, 0x47, 0x12, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x15, +0x50, 0x1B, 0x00, 0x00, 0xB5, 0x12, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x16, +0x50, 0x1B, 0x00, 0x00, 0x22, 0x13, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x17, +0x50, 0x1B, 0x00, 0x00, 0x8B, 0x13, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x18, +0x50, 0x1B, 0x00, 0x00, 0xF3, 0x13, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x19, +0x50, 0x1B, 0x00, 0x00, 0x59, 0x14, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x1A, +0x50, 0x1B, 0x00, 0x00, 0xBD, 0x14, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x1B, +0x50, 0x1B, 0x00, 0x00, 0x1E, 0x15, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x1C, +0x50, 0x1B, 0x00, 0x00, 0x7F, 0x15, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x1D, +0x50, 0x1B, 0x00, 0x00, 0xDD, 0x15, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x1E, +0x50, 0x1B, 0x00, 0x00, 0x3A, 0x16, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x1F, +0x50, 0x1B, 0x00, 0x00, 0x95, 0x16, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x20, +0x50, 0x1B, 0x00, 0x00, 0xEF, 0x16, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x21, +0x50, 0x1B, 0x00, 0x00, 0x48, 0x17, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x22, +0x50, 0x1B, 0x00, 0x00, 0x9F, 0x17, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x23, +0x50, 0x1B, 0x00, 0x00, 0xF5, 0x17, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x24, +0x50, 0x1B, 0x00, 0x00, 0x4A, 0x18, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x25, +0x50, 0x1B, 0x00, 0x00, 0x9E, 0x18, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x26, +0x50, 0x1B, 0x00, 0x00, 0xF1, 0x18, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x27, +0x50, 0x1B, 0x00, 0x00, 0x42, 0x19, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x28, +0x50, 0x1B, 0x00, 0x00, 0x93, 0x19, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x29, +0x50, 0x1B, 0x00, 0x00, 0xE2, 0x19, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x2A, +0x50, 0x1B, 0x00, 0x00, 0x31, 0x1A, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x2B, +0x50, 0x1B, 0x00, 0x00, 0x7F, 0x1A, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x2C, +0x50, 0x1B, 0x00, 0x00, 0xCC, 0x1A, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x2D, +0x50, 0x1B, 0x00, 0x00, 0x18, 0x1B, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x2E, +0x50, 0x1B, 0x00, 0x00, 0x63, 0x1B, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x2F, +0x50, 0x1B, 0x00, 0x00, 0xAD, 0x1B, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x30, +0x50, 0x1B, 0x00, 0x00, 0xF7, 0x1B, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x31, +0x50, 0x1B, 0x00, 0x00, 0x40, 0x1C, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x32, +0x50, 0x1B, 0x00, 0x00, 0x88, 0x1C, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x33, +0x50, 0x1B, 0x00, 0x00, 0xCF, 0x1C, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x34, +0x50, 0x1B, 0x00, 0x00, 0x16, 0x1D, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x35, +0x50, 0x1B, 0x00, 0x00, 0x5C, 0x1D, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x36, +0x50, 0x1B, 0x00, 0x00, 0xA2, 0x1D, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x37, +0x50, 0x1B, 0x00, 0x00, 0xE6, 0x1D, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x38, +0x50, 0x1B, 0x00, 0x00, 0x2B, 0x1E, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x39, +0x50, 0x1B, 0x00, 0x00, 0x6E, 0x1E, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x3A, +0x50, 0x1B, 0x00, 0x00, 0xB1, 0x1E, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x3B, +0x50, 0x1B, 0x00, 0x00, 0xF4, 0x1E, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x3C, +0x50, 0x1B, 0x00, 0x00, 0x35, 0x1F, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x3D, +0x50, 0x1B, 0x00, 0x00, 0x77, 0x1F, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x3E, +0x50, 0x1B, 0x00, 0x00, 0xB8, 0x1F, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x3F, +0x50, 0x1B, 0x00, 0x00, 0xF8, 0x1F, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x50, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x00, +0x5C, 0x1B, 0x00, 0x00, 0xFF, 0x3F, 0x6B, 0x3C, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x02, +0x5C, 0x1B, 0x00, 0x00, 0x0A, 0x39, 0xD9, 0x35, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x04, +0x5C, 0x1B, 0x00, 0x00, 0xD6, 0x32, 0xFE, 0x2F, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x06, +0x5C, 0x1B, 0x00, 0x00, 0x4F, 0x2D, 0xC6, 0x2A, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x08, +0x5C, 0x1B, 0x00, 0x00, 0x62, 0x28, 0x1F, 0x26, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x0A, +0x5C, 0x1B, 0x00, 0x00, 0xFD, 0x23, 0xFA, 0x21, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x0C, +0x5C, 0x1B, 0x00, 0x00, 0x13, 0x20, 0x48, 0x1E, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x0E, +0x5C, 0x1B, 0x00, 0x00, 0x96, 0x1C, 0xFD, 0x1A, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x10, +0x5C, 0x1B, 0x00, 0x00, 0x7B, 0x19, 0x0E, 0x18, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x12, +0x5C, 0x1B, 0x00, 0x00, 0xB5, 0x16, 0x70, 0x15, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x14, +0x5C, 0x1B, 0x00, 0x00, 0x3D, 0x14, 0x1B, 0x13, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x16, +0x5C, 0x1B, 0x00, 0x00, 0x0A, 0x12, 0x07, 0x11, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x18, +0x5C, 0x1B, 0x00, 0x00, 0x13, 0x10, 0x2D, 0x0F, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x1A, +0x5C, 0x1B, 0x00, 0x00, 0x54, 0x0E, 0x87, 0x0D, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x1C, +0x5C, 0x1B, 0x00, 0x00, 0xC5, 0x0C, 0x0E, 0x0C, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x1E, +0x5C, 0x1B, 0x00, 0x00, 0x62, 0x0B, 0xBF, 0x0A, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x20, +0x5C, 0x1B, 0x00, 0x00, 0x25, 0x0A, 0x93, 0x09, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x22, +0x5C, 0x1B, 0x00, 0x00, 0x0A, 0x09, 0x89, 0x08, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x24, +0x5C, 0x1B, 0x00, 0x00, 0x0F, 0x08, 0x9B, 0x07, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x26, +0x5C, 0x1B, 0x00, 0x00, 0x2E, 0x07, 0xC7, 0x06, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x28, +0x5C, 0x1B, 0x00, 0x00, 0x66, 0x06, 0x0B, 0x06, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x2A, +0x5C, 0x1B, 0x00, 0x00, 0xB4, 0x05, 0x63, 0x05, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x2C, +0x5C, 0x1B, 0x00, 0x00, 0x15, 0x05, 0xCD, 0x04, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x2E, +0x5C, 0x1B, 0x00, 0x00, 0x88, 0x04, 0x47, 0x04, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x30, +0x5C, 0x1B, 0x00, 0x00, 0x0A, 0x04, 0xD0, 0x03, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x32, +0x5C, 0x1B, 0x00, 0x00, 0x99, 0x03, 0x66, 0x03, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x34, +0x5C, 0x1B, 0x00, 0x00, 0x35, 0x03, 0x07, 0x03, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x36, +0x5C, 0x1B, 0x00, 0x00, 0xDC, 0x02, 0xB3, 0x02, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x38, +0x5C, 0x1B, 0x00, 0x00, 0x8C, 0x02, 0x68, 0x02, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x3A, +0x5C, 0x1B, 0x00, 0x00, 0x45, 0x02, 0x25, 0x02, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x3C, +0x5C, 0x1B, 0x00, 0x00, 0x06, 0x02, 0xE9, 0x01, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x3E, +0x5C, 0x1B, 0x00, 0x00, 0xCE, 0x01, 0xB4, 0x01, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x40, +0x5C, 0x1B, 0x00, 0x00, 0x9C, 0x01, 0x85, 0x01, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x42, +0x5C, 0x1B, 0x00, 0x00, 0x6F, 0x01, 0x5A, 0x01, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x44, +0x5C, 0x1B, 0x00, 0x00, 0x47, 0x01, 0x35, 0x01, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x46, +0x5C, 0x1B, 0x00, 0x00, 0x23, 0x01, 0x13, 0x01, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x48, +0x5C, 0x1B, 0x00, 0x00, 0x04, 0x01, 0xF5, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x4A, +0x5C, 0x1B, 0x00, 0x00, 0xE7, 0x00, 0xDA, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x4C, +0x5C, 0x1B, 0x00, 0x00, 0xCE, 0x00, 0xC3, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x4E, +0x5C, 0x1B, 0x00, 0x00, 0xB8, 0x00, 0xAE, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x50, +0x5C, 0x1B, 0x00, 0x00, 0xA4, 0x00, 0x9B, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x52, +0x5C, 0x1B, 0x00, 0x00, 0x92, 0x00, 0x8A, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, +0x5C, 0x1B, 0x00, 0x00, 0x82, 0x00, 0x7B, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x56, +0x5C, 0x1B, 0x00, 0x00, 0x74, 0x00, 0x6E, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x58, +0x5C, 0x1B, 0x00, 0x00, 0x67, 0x00, 0x62, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x5A, +0x5C, 0x1B, 0x00, 0x00, 0x5C, 0x00, 0x57, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x5C, +0x5C, 0x1B, 0x00, 0x00, 0x52, 0x00, 0x4E, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x5E, +0x5C, 0x1B, 0x00, 0x00, 0x49, 0x00, 0x45, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x60, +0x5C, 0x1B, 0x00, 0x00, 0x41, 0x00, 0x3E, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x62, +0x5C, 0x1B, 0x00, 0x00, 0x3A, 0x00, 0x37, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x01, 0x62, +0x00, 0x1B, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, +0x00, 0x1B, 0x00, 0x00, 0x0A, 0x00, 0xA7, 0x00, +0x00, 0x1B, 0x00, 0x00, 0x0A, 0x00, 0x15, 0x00, +0x00, 0x1B, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, +0x04, 0x1B, 0x00, 0x00, 0x52, 0x29, 0x46, 0xE2, +0x08, 0x1B, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, +0x0C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x10, 0x1B, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x00, +0x14, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x18, 0x1B, 0x00, 0x00, 0x03, 0x29, 0x29, 0x00, +0x1C, 0x1B, 0x00, 0x00, 0x32, 0xFC, 0x18, 0xA2, +0x20, 0x1B, 0x00, 0x00, 0x08, 0x00, 0x04, 0x01, +0x24, 0x1B, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, +0x28, 0x1B, 0x00, 0x00, 0x00, 0x03, 0x06, 0x00, +0x2C, 0x1B, 0x00, 0x00, 0x18, 0x00, 0x18, 0x00, +0x30, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, +0x34, 0x1B, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, +0x38, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, +0x3C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, +0x98, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x9C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xC0, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, +0xCC, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xE4, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xEC, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, +0x60, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x10, 0x1F, +0x64, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x00, +0x5C, 0x1B, 0x00, 0x00, 0xFF, 0x3F, 0x6B, 0x3C, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x02, +0x5C, 0x1B, 0x00, 0x00, 0x0A, 0x39, 0xD9, 0x35, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x04, +0x5C, 0x1B, 0x00, 0x00, 0xD6, 0x32, 0xFE, 0x2F, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x06, +0x5C, 0x1B, 0x00, 0x00, 0x4F, 0x2D, 0xC6, 0x2A, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x08, +0x5C, 0x1B, 0x00, 0x00, 0x62, 0x28, 0x1F, 0x26, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x0A, +0x5C, 0x1B, 0x00, 0x00, 0xFD, 0x23, 0xFA, 0x21, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x0C, +0x5C, 0x1B, 0x00, 0x00, 0x13, 0x20, 0x48, 0x1E, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x0E, +0x5C, 0x1B, 0x00, 0x00, 0x96, 0x1C, 0xFD, 0x1A, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x10, +0x5C, 0x1B, 0x00, 0x00, 0x7B, 0x19, 0x0E, 0x18, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x12, +0x5C, 0x1B, 0x00, 0x00, 0xB5, 0x16, 0x70, 0x15, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x14, +0x5C, 0x1B, 0x00, 0x00, 0x3D, 0x14, 0x1B, 0x13, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x16, +0x5C, 0x1B, 0x00, 0x00, 0x0A, 0x12, 0x07, 0x11, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x18, +0x5C, 0x1B, 0x00, 0x00, 0x13, 0x10, 0x2D, 0x0F, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x1A, +0x5C, 0x1B, 0x00, 0x00, 0x54, 0x0E, 0x87, 0x0D, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x1C, +0x5C, 0x1B, 0x00, 0x00, 0xC5, 0x0C, 0x0E, 0x0C, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x1E, +0x5C, 0x1B, 0x00, 0x00, 0x62, 0x0B, 0xBF, 0x0A, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x20, +0x5C, 0x1B, 0x00, 0x00, 0x25, 0x0A, 0x93, 0x09, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x22, +0x5C, 0x1B, 0x00, 0x00, 0x0A, 0x09, 0x89, 0x08, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x24, +0x5C, 0x1B, 0x00, 0x00, 0x0F, 0x08, 0x9B, 0x07, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x26, +0x5C, 0x1B, 0x00, 0x00, 0x2E, 0x07, 0xC7, 0x06, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x28, +0x5C, 0x1B, 0x00, 0x00, 0x66, 0x06, 0x0B, 0x06, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x2A, +0x5C, 0x1B, 0x00, 0x00, 0xB4, 0x05, 0x63, 0x05, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x2C, +0x5C, 0x1B, 0x00, 0x00, 0x15, 0x05, 0xCD, 0x04, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x2E, +0x5C, 0x1B, 0x00, 0x00, 0x88, 0x04, 0x47, 0x04, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x30, +0x5C, 0x1B, 0x00, 0x00, 0x0A, 0x04, 0xD0, 0x03, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x32, +0x5C, 0x1B, 0x00, 0x00, 0x99, 0x03, 0x66, 0x03, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x34, +0x5C, 0x1B, 0x00, 0x00, 0x35, 0x03, 0x07, 0x03, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x36, +0x5C, 0x1B, 0x00, 0x00, 0xDC, 0x02, 0xB3, 0x02, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x38, +0x5C, 0x1B, 0x00, 0x00, 0x8C, 0x02, 0x68, 0x02, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x3A, +0x5C, 0x1B, 0x00, 0x00, 0x45, 0x02, 0x25, 0x02, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x3C, +0x5C, 0x1B, 0x00, 0x00, 0x06, 0x02, 0xE9, 0x01, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x3E, +0x5C, 0x1B, 0x00, 0x00, 0xCE, 0x01, 0xB4, 0x01, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x40, +0x5C, 0x1B, 0x00, 0x00, 0x9C, 0x01, 0x85, 0x01, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x42, +0x5C, 0x1B, 0x00, 0x00, 0x6F, 0x01, 0x5A, 0x01, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x44, +0x5C, 0x1B, 0x00, 0x00, 0x47, 0x01, 0x35, 0x01, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x46, +0x5C, 0x1B, 0x00, 0x00, 0x23, 0x01, 0x13, 0x01, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x48, +0x5C, 0x1B, 0x00, 0x00, 0x04, 0x01, 0xF5, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x4A, +0x5C, 0x1B, 0x00, 0x00, 0xE7, 0x00, 0xDA, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x4C, +0x5C, 0x1B, 0x00, 0x00, 0xCE, 0x00, 0xC3, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x4E, +0x5C, 0x1B, 0x00, 0x00, 0xB8, 0x00, 0xAE, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x50, +0x5C, 0x1B, 0x00, 0x00, 0xA4, 0x00, 0x9B, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x52, +0x5C, 0x1B, 0x00, 0x00, 0x92, 0x00, 0x8A, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, +0x5C, 0x1B, 0x00, 0x00, 0x82, 0x00, 0x7B, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x56, +0x5C, 0x1B, 0x00, 0x00, 0x74, 0x00, 0x6E, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x58, +0x5C, 0x1B, 0x00, 0x00, 0x67, 0x00, 0x62, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x5A, +0x5C, 0x1B, 0x00, 0x00, 0x5C, 0x00, 0x57, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x5C, +0x5C, 0x1B, 0x00, 0x00, 0x52, 0x00, 0x4E, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x5E, +0x5C, 0x1B, 0x00, 0x00, 0x49, 0x00, 0x45, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x60, +0x5C, 0x1B, 0x00, 0x00, 0x41, 0x00, 0x3E, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x62, +0x5C, 0x1B, 0x00, 0x00, 0x3A, 0x00, 0x37, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x01, 0x62, +0x00, 0x1B, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, +0xD4, 0x1B, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, +0xB8, 0x1B, 0x00, 0x00, 0x20, 0x20, 0x20, 0x20, +0xBC, 0x1B, 0x00, 0x00, 0x20, 0x20, 0x20, 0x20, +0xC0, 0x1B, 0x00, 0x00, 0x20, 0x20, 0x20, 0x20, +0xC4, 0x1B, 0x00, 0x00, 0x20, 0x20, 0x20, 0x20, +0xC8, 0x1B, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, +0xCC, 0x1B, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, +0xD0, 0x1B, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, +0xD8, 0x1B, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, +0xDC, 0x1B, 0x00, 0x00, 0x20, 0x20, 0x20, 0x20, +0xE0, 0x1B, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, +0xE4, 0x1B, 0x00, 0x00, 0x17, 0x2F, 0x47, 0x77, +0xE8, 0x1B, 0x00, 0x00, 0x8F, 0xA7, 0xBF, 0xEF, +0xEC, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xF0, 0x1B, 0x00, 0x00, 0x39, 0x19, 0x1F, 0x1F, +0x04, 0x1B, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x00, +0x08, 0x1B, 0x00, 0x00, 0x00, 0xC0, 0x00, 0xB0, +0x5C, 0x1B, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x00, +0x60, 0x1B, 0x00, 0x00, 0x00, 0xC0, 0x00, 0xB0, +0xB4, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x01, 0x80, 0x0B, 0x70, 0x01, 0x80, 0x0B, 0x70, -0x01, 0x40, 0x14, 0x70, 0x01, 0x40, 0x24, 0x70, -0x01, 0x40, 0x34, 0x70, 0x01, 0x40, 0x44, 0x70, -0x01, 0x80, 0x5B, 0x70, 0x01, 0x40, 0x64, 0x70, -0x01, 0x80, 0x7B, 0x70, 0x01, 0x80, 0x8B, 0x70, -0x01, 0x80, 0x9B, 0x70, 0x01, 0x80, 0xAB, 0x70, -0x01, 0x80, 0xBB, 0x70, 0x01, 0x80, 0xCB, 0x70, -0x01, 0x80, 0xDB, 0x70, 0x01, 0x80, 0xEB, 0x70, -0x01, 0x80, 0xFB, 0x70, 0x01, 0x80, 0xFB, 0x70, -0x01, 0x80, 0x0B, 0x70, 0x01, 0x80, 0x0B, 0x70, -0x01, 0x40, 0x14, 0x70, 0x01, 0x40, 0x24, 0x70, -0x01, 0x40, 0x34, 0x70, 0x01, 0x40, 0x44, 0x70, -0x01, 0x80, 0x5B, 0x70, 0x01, 0x40, 0x64, 0x70, -0x01, 0x80, 0x7B, 0x70, 0x01, 0x80, 0x8B, 0x70, -0x01, 0x80, 0x9B, 0x70, 0x01, 0x80, 0xAB, 0x70, -0x01, 0x80, 0xBB, 0x70, 0x01, 0x80, 0xCB, 0x70, -0x01, 0x80, 0xDB, 0x70, 0x01, 0x80, 0xEB, 0x70, -0x01, 0x80, 0xFB, 0x70, 0x01, 0x80, 0xFB, 0x70, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, -0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x42, -0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x44, -0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x46, -0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x48, -0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x4A, -0x00, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00, 0x4C, -0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x4E, -0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x50, -0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x52, -0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x54, -0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x56, -0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x58, -0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x5A, -0x00, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x00, 0x5C, -0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x5E, -0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x60, -0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x62, -0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x64, -0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x66, -0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x68, -0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x6A, -0x00, 0x00, 0x00, 0x6B, 0x00, 0x00, 0x00, 0x6C, -0x00, 0x00, 0x00, 0x6D, 0x00, 0x00, 0x00, 0x6E, -0x00, 0x00, 0x00, 0x6F, 0x00, 0x00, 0x00, 0x70, -0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x72, -0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x74, -0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x76, -0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x78, -0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x7A, -0x00, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x7C, -0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x7E, -0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x80, -0x00, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, -0x08, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, -0x08, 0x00, 0xA7, 0x00, 0x00, 0x1B, 0x00, 0x00, -0x08, 0x00, 0x15, 0x00, 0x00, 0x1B, 0x00, 0x00, -0x08, 0x00, 0x00, 0x00, 0x04, 0x1B, 0x00, 0x00, -0x52, 0x29, 0x46, 0xE2, 0x08, 0x1B, 0x00, 0x00, -0x80, 0x00, 0x00, 0x00, 0x0C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x10, 0x1B, 0x00, 0x00, -0x00, 0x0C, 0x01, 0x00, 0x14, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x18, 0x1B, 0x00, 0x00, -0x03, 0x29, 0x29, 0x00, 0x1C, 0x1B, 0x00, 0x00, -0x32, 0xFC, 0x18, 0xA2, 0x20, 0x1B, 0x00, 0x00, -0x08, 0x00, 0x04, 0x01, 0x24, 0x1B, 0x00, 0x00, -0x08, 0x00, 0x06, 0x00, 0x28, 0x1B, 0x00, 0x00, -0x00, 0x03, 0x06, 0x00, 0x2C, 0x1B, 0x00, 0x00, -0x18, 0x00, 0x18, 0x00, 0x30, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x40, 0x34, 0x1B, 0x00, 0x00, -0x00, 0x08, 0x00, 0x00, 0x38, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x40, 0x3C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x40, 0x98, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x9C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xC0, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x01, 0xCC, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xE4, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xEC, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x40, 0x40, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x40, 0x44, 0x1B, 0x00, 0x00, -0x64, 0x40, 0x00, 0x20, 0x48, 0x1B, 0x00, 0x00, -0x2D, 0x00, 0x05, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x60, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x10, 0x1F, 0x64, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x12, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x00, 0x50, 0x1B, 0x00, 0x00, -0xBE, 0x03, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x01, 0x50, 0x1B, 0x00, 0x00, -0x7A, 0x05, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x02, 0x50, 0x1B, 0x00, 0x00, -0xC8, 0x06, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x03, 0x50, 0x1B, 0x00, 0x00, -0xE0, 0x07, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x04, 0x50, 0x1B, 0x00, 0x00, -0xD5, 0x08, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x05, 0x50, 0x1B, 0x00, 0x00, -0xB2, 0x09, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x06, 0x50, 0x1B, 0x00, 0x00, -0x7D, 0x0A, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x07, 0x50, 0x1B, 0x00, 0x00, -0x3A, 0x0B, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x08, 0x50, 0x1B, 0x00, 0x00, -0xEB, 0x0B, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x09, 0x50, 0x1B, 0x00, 0x00, -0x92, 0x0C, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x0A, 0x50, 0x1B, 0x00, 0x00, -0x31, 0x0D, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x0B, 0x50, 0x1B, 0x00, 0x00, -0xC9, 0x0D, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x0C, 0x50, 0x1B, 0x00, 0x00, -0x5A, 0x0E, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x0D, 0x50, 0x1B, 0x00, 0x00, -0xE6, 0x0E, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x0E, 0x50, 0x1B, 0x00, 0x00, -0x6D, 0x0F, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x0F, 0x50, 0x1B, 0x00, 0x00, -0xF0, 0x0F, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x10, 0x50, 0x1B, 0x00, 0x00, -0x6F, 0x10, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x11, 0x50, 0x1B, 0x00, 0x00, -0xE9, 0x10, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x12, 0x50, 0x1B, 0x00, 0x00, -0x61, 0x11, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x13, 0x50, 0x1B, 0x00, 0x00, -0xD5, 0x11, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x14, 0x50, 0x1B, 0x00, 0x00, -0x47, 0x12, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x15, 0x50, 0x1B, 0x00, 0x00, -0xB5, 0x12, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x16, 0x50, 0x1B, 0x00, 0x00, -0x22, 0x13, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x17, 0x50, 0x1B, 0x00, 0x00, -0x8B, 0x13, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x18, 0x50, 0x1B, 0x00, 0x00, -0xF3, 0x13, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x19, 0x50, 0x1B, 0x00, 0x00, -0x59, 0x14, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x1A, 0x50, 0x1B, 0x00, 0x00, -0xBD, 0x14, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x1B, 0x50, 0x1B, 0x00, 0x00, -0x1E, 0x15, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x1C, 0x50, 0x1B, 0x00, 0x00, -0x7F, 0x15, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x1D, 0x50, 0x1B, 0x00, 0x00, -0xDD, 0x15, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x1E, 0x50, 0x1B, 0x00, 0x00, -0x3A, 0x16, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x1F, 0x50, 0x1B, 0x00, 0x00, -0x95, 0x16, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x20, 0x50, 0x1B, 0x00, 0x00, -0xEF, 0x16, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x21, 0x50, 0x1B, 0x00, 0x00, -0x48, 0x17, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x22, 0x50, 0x1B, 0x00, 0x00, -0x9F, 0x17, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x23, 0x50, 0x1B, 0x00, 0x00, -0xF5, 0x17, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x24, 0x50, 0x1B, 0x00, 0x00, -0x4A, 0x18, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x25, 0x50, 0x1B, 0x00, 0x00, -0x9E, 0x18, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x26, 0x50, 0x1B, 0x00, 0x00, -0xF1, 0x18, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x27, 0x50, 0x1B, 0x00, 0x00, -0x42, 0x19, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x28, 0x50, 0x1B, 0x00, 0x00, -0x93, 0x19, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x29, 0x50, 0x1B, 0x00, 0x00, -0xE2, 0x19, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x2A, 0x50, 0x1B, 0x00, 0x00, -0x31, 0x1A, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x2B, 0x50, 0x1B, 0x00, 0x00, -0x7F, 0x1A, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x2C, 0x50, 0x1B, 0x00, 0x00, -0xCC, 0x1A, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x2D, 0x50, 0x1B, 0x00, 0x00, -0x18, 0x1B, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x2E, 0x50, 0x1B, 0x00, 0x00, -0x63, 0x1B, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x2F, 0x50, 0x1B, 0x00, 0x00, -0xAD, 0x1B, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x30, 0x50, 0x1B, 0x00, 0x00, -0xF7, 0x1B, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x31, 0x50, 0x1B, 0x00, 0x00, -0x40, 0x1C, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x32, 0x50, 0x1B, 0x00, 0x00, -0x88, 0x1C, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x33, 0x50, 0x1B, 0x00, 0x00, -0xCF, 0x1C, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x34, 0x50, 0x1B, 0x00, 0x00, -0x16, 0x1D, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x35, 0x50, 0x1B, 0x00, 0x00, -0x5C, 0x1D, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x36, 0x50, 0x1B, 0x00, 0x00, -0xA2, 0x1D, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x37, 0x50, 0x1B, 0x00, 0x00, -0xE6, 0x1D, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x38, 0x50, 0x1B, 0x00, 0x00, -0x2B, 0x1E, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x39, 0x50, 0x1B, 0x00, 0x00, -0x6E, 0x1E, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x3A, 0x50, 0x1B, 0x00, 0x00, -0xB1, 0x1E, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x3B, 0x50, 0x1B, 0x00, 0x00, -0xF4, 0x1E, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x3C, 0x50, 0x1B, 0x00, 0x00, -0x35, 0x1F, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x3D, 0x50, 0x1B, 0x00, 0x00, -0x77, 0x1F, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x3E, 0x50, 0x1B, 0x00, 0x00, -0xB8, 0x1F, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x3F, 0x50, 0x1B, 0x00, 0x00, -0xF8, 0x1F, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x50, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x00, 0x5C, 0x1B, 0x00, 0x00, -0xFF, 0x3F, 0x6B, 0x3C, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x02, 0x5C, 0x1B, 0x00, 0x00, -0x0A, 0x39, 0xD9, 0x35, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x04, 0x5C, 0x1B, 0x00, 0x00, -0xD6, 0x32, 0xFE, 0x2F, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x06, 0x5C, 0x1B, 0x00, 0x00, -0x4F, 0x2D, 0xC6, 0x2A, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x08, 0x5C, 0x1B, 0x00, 0x00, -0x62, 0x28, 0x1F, 0x26, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x0A, 0x5C, 0x1B, 0x00, 0x00, -0xFD, 0x23, 0xFA, 0x21, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x0C, 0x5C, 0x1B, 0x00, 0x00, -0x13, 0x20, 0x48, 0x1E, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x0E, 0x5C, 0x1B, 0x00, 0x00, -0x96, 0x1C, 0xFD, 0x1A, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x10, 0x5C, 0x1B, 0x00, 0x00, -0x7B, 0x19, 0x0E, 0x18, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x12, 0x5C, 0x1B, 0x00, 0x00, -0xB5, 0x16, 0x70, 0x15, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x14, 0x5C, 0x1B, 0x00, 0x00, -0x3D, 0x14, 0x1B, 0x13, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x16, 0x5C, 0x1B, 0x00, 0x00, -0x0A, 0x12, 0x07, 0x11, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x18, 0x5C, 0x1B, 0x00, 0x00, -0x13, 0x10, 0x2D, 0x0F, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x1A, 0x5C, 0x1B, 0x00, 0x00, -0x54, 0x0E, 0x87, 0x0D, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x1C, 0x5C, 0x1B, 0x00, 0x00, -0xC5, 0x0C, 0x0E, 0x0C, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x1E, 0x5C, 0x1B, 0x00, 0x00, -0x62, 0x0B, 0xBF, 0x0A, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x20, 0x5C, 0x1B, 0x00, 0x00, -0x25, 0x0A, 0x93, 0x09, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x22, 0x5C, 0x1B, 0x00, 0x00, -0x0A, 0x09, 0x89, 0x08, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x24, 0x5C, 0x1B, 0x00, 0x00, -0x0F, 0x08, 0x9B, 0x07, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x26, 0x5C, 0x1B, 0x00, 0x00, -0x2E, 0x07, 0xC7, 0x06, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x28, 0x5C, 0x1B, 0x00, 0x00, -0x66, 0x06, 0x0B, 0x06, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x2A, 0x5C, 0x1B, 0x00, 0x00, -0xB4, 0x05, 0x63, 0x05, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x2C, 0x5C, 0x1B, 0x00, 0x00, -0x15, 0x05, 0xCD, 0x04, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x2E, 0x5C, 0x1B, 0x00, 0x00, -0x88, 0x04, 0x47, 0x04, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x30, 0x5C, 0x1B, 0x00, 0x00, -0x0A, 0x04, 0xD0, 0x03, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x32, 0x5C, 0x1B, 0x00, 0x00, -0x99, 0x03, 0x66, 0x03, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x34, 0x5C, 0x1B, 0x00, 0x00, -0x35, 0x03, 0x07, 0x03, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x36, 0x5C, 0x1B, 0x00, 0x00, -0xDC, 0x02, 0xB3, 0x02, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x38, 0x5C, 0x1B, 0x00, 0x00, -0x8C, 0x02, 0x68, 0x02, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x3A, 0x5C, 0x1B, 0x00, 0x00, -0x45, 0x02, 0x25, 0x02, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x3C, 0x5C, 0x1B, 0x00, 0x00, -0x06, 0x02, 0xE9, 0x01, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x3E, 0x5C, 0x1B, 0x00, 0x00, -0xCE, 0x01, 0xB4, 0x01, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x40, 0x5C, 0x1B, 0x00, 0x00, -0x9C, 0x01, 0x85, 0x01, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x42, 0x5C, 0x1B, 0x00, 0x00, -0x6F, 0x01, 0x5A, 0x01, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x44, 0x5C, 0x1B, 0x00, 0x00, -0x47, 0x01, 0x35, 0x01, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x46, 0x5C, 0x1B, 0x00, 0x00, -0x23, 0x01, 0x13, 0x01, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x48, 0x5C, 0x1B, 0x00, 0x00, -0x04, 0x01, 0xF5, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x4A, 0x5C, 0x1B, 0x00, 0x00, -0xE7, 0x00, 0xDA, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x4C, 0x5C, 0x1B, 0x00, 0x00, -0xCE, 0x00, 0xC3, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x4E, 0x5C, 0x1B, 0x00, 0x00, -0xB8, 0x00, 0xAE, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x50, 0x5C, 0x1B, 0x00, 0x00, -0xA4, 0x00, 0x9B, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x52, 0x5C, 0x1B, 0x00, 0x00, -0x92, 0x00, 0x8A, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x54, 0x5C, 0x1B, 0x00, 0x00, -0x82, 0x00, 0x7B, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x56, 0x5C, 0x1B, 0x00, 0x00, -0x74, 0x00, 0x6E, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x58, 0x5C, 0x1B, 0x00, 0x00, -0x67, 0x00, 0x62, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x5A, 0x5C, 0x1B, 0x00, 0x00, -0x5C, 0x00, 0x57, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x5C, 0x5C, 0x1B, 0x00, 0x00, -0x52, 0x00, 0x4E, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x5E, 0x5C, 0x1B, 0x00, 0x00, -0x49, 0x00, 0x45, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x60, 0x5C, 0x1B, 0x00, 0x00, -0x41, 0x00, 0x3E, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x62, 0x5C, 0x1B, 0x00, 0x00, -0x3A, 0x00, 0x37, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x01, 0x62, 0x00, 0x1B, 0x00, 0x00, -0x0A, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, -0x0A, 0x00, 0xA7, 0x00, 0x00, 0x1B, 0x00, 0x00, -0x0A, 0x00, 0x15, 0x00, 0x00, 0x1B, 0x00, 0x00, -0x0A, 0x00, 0x00, 0x00, 0x04, 0x1B, 0x00, 0x00, -0x52, 0x29, 0x46, 0xE2, 0x08, 0x1B, 0x00, 0x00, -0x80, 0x00, 0x00, 0x00, 0x0C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x10, 0x1B, 0x00, 0x00, -0x00, 0x0C, 0x01, 0x00, 0x14, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x18, 0x1B, 0x00, 0x00, -0x03, 0x29, 0x29, 0x00, 0x1C, 0x1B, 0x00, 0x00, -0x32, 0xFC, 0x18, 0xA2, 0x20, 0x1B, 0x00, 0x00, -0x08, 0x00, 0x04, 0x01, 0x24, 0x1B, 0x00, 0x00, -0x08, 0x00, 0x06, 0x00, 0x28, 0x1B, 0x00, 0x00, -0x00, 0x03, 0x06, 0x00, 0x2C, 0x1B, 0x00, 0x00, -0x18, 0x00, 0x18, 0x00, 0x30, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x40, 0x34, 0x1B, 0x00, 0x00, -0x00, 0x08, 0x00, 0x00, 0x38, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x40, 0x3C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x40, 0x98, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x9C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xC0, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x01, 0xCC, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xE4, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xEC, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x40, 0x60, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x10, 0x1F, 0x64, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x12, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x00, 0x5C, 0x1B, 0x00, 0x00, -0xFF, 0x3F, 0x6B, 0x3C, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x02, 0x5C, 0x1B, 0x00, 0x00, -0x0A, 0x39, 0xD9, 0x35, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x04, 0x5C, 0x1B, 0x00, 0x00, -0xD6, 0x32, 0xFE, 0x2F, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x06, 0x5C, 0x1B, 0x00, 0x00, -0x4F, 0x2D, 0xC6, 0x2A, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x08, 0x5C, 0x1B, 0x00, 0x00, -0x62, 0x28, 0x1F, 0x26, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x0A, 0x5C, 0x1B, 0x00, 0x00, -0xFD, 0x23, 0xFA, 0x21, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x0C, 0x5C, 0x1B, 0x00, 0x00, -0x13, 0x20, 0x48, 0x1E, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x0E, 0x5C, 0x1B, 0x00, 0x00, -0x96, 0x1C, 0xFD, 0x1A, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x10, 0x5C, 0x1B, 0x00, 0x00, -0x7B, 0x19, 0x0E, 0x18, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x12, 0x5C, 0x1B, 0x00, 0x00, -0xB5, 0x16, 0x70, 0x15, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x14, 0x5C, 0x1B, 0x00, 0x00, -0x3D, 0x14, 0x1B, 0x13, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x16, 0x5C, 0x1B, 0x00, 0x00, -0x0A, 0x12, 0x07, 0x11, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x18, 0x5C, 0x1B, 0x00, 0x00, -0x13, 0x10, 0x2D, 0x0F, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x1A, 0x5C, 0x1B, 0x00, 0x00, -0x54, 0x0E, 0x87, 0x0D, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x1C, 0x5C, 0x1B, 0x00, 0x00, -0xC5, 0x0C, 0x0E, 0x0C, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x1E, 0x5C, 0x1B, 0x00, 0x00, -0x62, 0x0B, 0xBF, 0x0A, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x20, 0x5C, 0x1B, 0x00, 0x00, -0x25, 0x0A, 0x93, 0x09, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x22, 0x5C, 0x1B, 0x00, 0x00, -0x0A, 0x09, 0x89, 0x08, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x24, 0x5C, 0x1B, 0x00, 0x00, -0x0F, 0x08, 0x9B, 0x07, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x26, 0x5C, 0x1B, 0x00, 0x00, -0x2E, 0x07, 0xC7, 0x06, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x28, 0x5C, 0x1B, 0x00, 0x00, -0x66, 0x06, 0x0B, 0x06, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x2A, 0x5C, 0x1B, 0x00, 0x00, -0xB4, 0x05, 0x63, 0x05, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x2C, 0x5C, 0x1B, 0x00, 0x00, -0x15, 0x05, 0xCD, 0x04, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x2E, 0x5C, 0x1B, 0x00, 0x00, -0x88, 0x04, 0x47, 0x04, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x30, 0x5C, 0x1B, 0x00, 0x00, -0x0A, 0x04, 0xD0, 0x03, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x32, 0x5C, 0x1B, 0x00, 0x00, -0x99, 0x03, 0x66, 0x03, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x34, 0x5C, 0x1B, 0x00, 0x00, -0x35, 0x03, 0x07, 0x03, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x36, 0x5C, 0x1B, 0x00, 0x00, -0xDC, 0x02, 0xB3, 0x02, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x38, 0x5C, 0x1B, 0x00, 0x00, -0x8C, 0x02, 0x68, 0x02, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x3A, 0x5C, 0x1B, 0x00, 0x00, -0x45, 0x02, 0x25, 0x02, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x3C, 0x5C, 0x1B, 0x00, 0x00, -0x06, 0x02, 0xE9, 0x01, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x3E, 0x5C, 0x1B, 0x00, 0x00, -0xCE, 0x01, 0xB4, 0x01, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x40, 0x5C, 0x1B, 0x00, 0x00, -0x9C, 0x01, 0x85, 0x01, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x42, 0x5C, 0x1B, 0x00, 0x00, -0x6F, 0x01, 0x5A, 0x01, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x44, 0x5C, 0x1B, 0x00, 0x00, -0x47, 0x01, 0x35, 0x01, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x46, 0x5C, 0x1B, 0x00, 0x00, -0x23, 0x01, 0x13, 0x01, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x48, 0x5C, 0x1B, 0x00, 0x00, -0x04, 0x01, 0xF5, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x4A, 0x5C, 0x1B, 0x00, 0x00, -0xE7, 0x00, 0xDA, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x4C, 0x5C, 0x1B, 0x00, 0x00, -0xCE, 0x00, 0xC3, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x4E, 0x5C, 0x1B, 0x00, 0x00, -0xB8, 0x00, 0xAE, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x50, 0x5C, 0x1B, 0x00, 0x00, -0xA4, 0x00, 0x9B, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x52, 0x5C, 0x1B, 0x00, 0x00, -0x92, 0x00, 0x8A, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x54, 0x5C, 0x1B, 0x00, 0x00, -0x82, 0x00, 0x7B, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x56, 0x5C, 0x1B, 0x00, 0x00, -0x74, 0x00, 0x6E, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x58, 0x5C, 0x1B, 0x00, 0x00, -0x67, 0x00, 0x62, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x5A, 0x5C, 0x1B, 0x00, 0x00, -0x5C, 0x00, 0x57, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x5C, 0x5C, 0x1B, 0x00, 0x00, -0x52, 0x00, 0x4E, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x5E, 0x5C, 0x1B, 0x00, 0x00, -0x49, 0x00, 0x45, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x60, 0x5C, 0x1B, 0x00, 0x00, -0x41, 0x00, 0x3E, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x62, 0x5C, 0x1B, 0x00, 0x00, -0x3A, 0x00, 0x37, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x01, 0x62, 0x00, 0x1B, 0x00, 0x00, -0x0C, 0x00, 0x00, 0x00, 0xD4, 0x1B, 0x00, 0x00, -0xF0, 0x00, 0x00, 0x00, 0xB8, 0x1B, 0x00, 0x00, -0x20, 0x20, 0x20, 0x20, 0xBC, 0x1B, 0x00, 0x00, -0x20, 0x20, 0x20, 0x20, 0xC0, 0x1B, 0x00, 0x00, -0x20, 0x20, 0x20, 0x20, 0xC4, 0x1B, 0x00, 0x00, -0x20, 0x20, 0x20, 0x20, 0xC8, 0x1B, 0x00, 0x00, -0x04, 0x04, 0x04, 0x04, 0xCC, 0x1B, 0x00, 0x00, -0x04, 0x04, 0x04, 0x04, 0xD0, 0x1B, 0x00, 0x00, -0x04, 0x04, 0x04, 0x04, 0xD8, 0x1B, 0x00, 0x00, -0x04, 0x04, 0x04, 0x04, 0xDC, 0x1B, 0x00, 0x00, -0x20, 0x20, 0x20, 0x20, 0xE0, 0x1B, 0x00, 0x00, -0x04, 0x04, 0x04, 0x04, 0xE4, 0x1B, 0x00, 0x00, -0x17, 0x2F, 0x47, 0x77, 0xE8, 0x1B, 0x00, 0x00, -0x8F, 0xA7, 0xBF, 0xEF, 0xEC, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xF0, 0x1B, 0x00, 0x00, -0x39, 0x19, 0x1F, 0x1F, 0x04, 0x1B, 0x00, 0x00, -0x5B, 0x00, 0x00, 0x00, 0x08, 0x1B, 0x00, 0x00, -0x00, 0xC0, 0x00, 0xB0, 0x5C, 0x1B, 0x00, 0x00, -0x5B, 0x00, 0x00, 0x00, 0x60, 0x1B, 0x00, 0x00, -0x00, 0xC0, 0x00, 0xB0, 0xB4, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x50, 0x01, 0x60, 0xFE, 0xFF, 0xFF, 0x00, 0x00, -0x51, 0x01, 0x61, 0xFE, 0xFF, 0xFF, 0x00, 0x00, -0x52, 0x01, 0x62, 0xFE, 0xFF, 0xFF, 0x00, 0x00, -0x53, 0x01, 0x63, 0xFE, 0xFF, 0xFF, 0x00, 0x00, -0x54, 0x01, 0x64, 0xFE, 0xFF, 0xFF, 0xFF, 0x01, -0x55, 0x01, 0x6C, 0xFE, 0xFF, 0xFF, 0x5E, 0x01, -0x56, 0x01, 0x65, 0xFE, 0xFF, 0xFF, 0x02, 0x01, -0x57, 0x01, 0x70, 0xFE, 0xFF, 0xFF, 0x00, 0x01, -0x5C, 0x01, 0x75, 0xFE, 0xFF, 0xFF, 0x01, 0x01, -0x5D, 0x01, 0x80, 0xFE, 0xFF, 0xFF, 0x0A, 0x01, -0x5E, 0x01, 0x81, 0xFE, 0xFF, 0xFF, 0x03, 0x01, -0x5F, 0x01, 0x82, 0xFE, 0xFF, 0xFF, 0x52, 0x01, -0x60, 0x01, 0x83, 0xFE, 0xFF, 0xFF, 0x65, 0x01, -0x61, 0x01, 0x84, 0xFE, 0xFF, 0xFF, 0x61, 0x01, -0x62, 0x01, 0x85, 0xFE, 0xFF, 0xFF, 0x6C, 0x01, -0x63, 0x01, 0x86, 0xFE, 0xFF, 0xFF, 0x74, 0x01, -0x64, 0x01, 0x87, 0xFE, 0xFF, 0xFF, 0x65, 0x01, -0x65, 0x01, 0x88, 0xFE, 0xFF, 0xFF, 0x6B, 0x01, -0x66, 0x01, 0x89, 0xFE, 0xFF, 0xFF, 0x20, 0x01, -0x67, 0x01, 0xA0, 0xFE, 0xFF, 0xFF, 0x12, 0x01, -0x68, 0x01, 0xA1, 0xFE, 0xFF, 0xFF, 0x03, 0x01, -0x69, 0x01, 0xA2, 0xFE, 0xFF, 0xFF, 0x42, 0x01, -0x6A, 0x01, 0xA3, 0xFE, 0xFF, 0xFF, 0x6C, 0x01, -0x6B, 0x01, 0xA4, 0xFE, 0xFF, 0xFF, 0x75, 0x01, -0x6C, 0x01, 0xA5, 0xFE, 0xFF, 0xFF, 0x65, 0x01, -0x6D, 0x01, 0xA6, 0xFE, 0xFF, 0xFF, 0x74, 0x01, -0x6E, 0x01, 0xA7, 0xFE, 0xFF, 0xFF, 0x6F, 0x01, -0x6F, 0x01, 0xA8, 0xFE, 0xFF, 0xFF, 0x6F, 0x01, -0x70, 0x01, 0xA9, 0xFE, 0xFF, 0xFF, 0x74, 0x01, -0x71, 0x01, 0xAA, 0xFE, 0xFF, 0xFF, 0x68, 0x01, -0x72, 0x01, 0xAB, 0xFE, 0xFF, 0xFF, 0x20, 0x01, -0x73, 0x01, 0xAC, 0xFE, 0xFF, 0xFF, 0x52, 0x01, -0x74, 0x01, 0xAD, 0xFE, 0xFF, 0xFF, 0x61, 0x01, -0x75, 0x01, 0xAE, 0xFE, 0xFF, 0xFF, 0x64, 0x01, -0x76, 0x01, 0xAF, 0xFE, 0xFF, 0xFF, 0x69, 0x01, -0x77, 0x01, 0xB0, 0xFE, 0xFF, 0xFF, 0x6F, 0x01, -0x78, 0x01, 0xB1, 0xFE, 0xFF, 0xFF, 0x20, 0x01, -0x90, 0x01, 0x67, 0xFE, 0xFF, 0xFF, 0x00, 0x01, -0x94, 0x01, 0x78, 0xFE, 0xFF, 0xFF, 0x00, 0x01, -0x95, 0x01, 0x79, 0xFE, 0xFF, 0xFF, 0x00, 0x01, -0x96, 0x01, 0x7A, 0xFE, 0xFF, 0xFF, 0x00, 0x01, -0x97, 0x01, 0x6D, 0xFE, 0xFF, 0xFF, 0x0F, 0x01, -0x00, 0x02, 0xE0, 0xFE, 0xE0, 0x00, 0xE3, 0x01, -0x01, 0x02, 0xE1, 0xFE, 0xE1, 0x00, 0x01, 0x01, -0x02, 0x02, 0xE2, 0xFE, 0xE2, 0x00, 0x39, 0x01, -0x03, 0x02, 0xE3, 0xFE, 0xE3, 0x00, 0x8D, 0x01, -0x04, 0x02, 0xE4, 0xFE, 0xE4, 0x00, 0x98, 0x01, -0x05, 0x02, 0xE5, 0xFE, 0xE5, 0x00, 0x25, 0x01, -0x06, 0x02, 0xE6, 0xFE, 0xE6, 0x00, 0xD0, 0x01, -0x07, 0x02, 0xE7, 0xFE, 0xE7, 0x00, 0x91, 0x01, -0x08, 0x02, 0xE8, 0xFE, 0xE0, 0x01, 0x35, 0x01, -0x09, 0x02, 0xE9, 0xFE, 0xE1, 0x01, 0x8F, 0x01, -0x0A, 0x02, 0xEA, 0xFE, 0xE2, 0x01, 0x88, 0x01, -0x0B, 0x02, 0xEB, 0xFE, 0xE3, 0x01, 0x31, 0x01, -0x0C, 0x02, 0xEC, 0xFE, 0xE4, 0x01, 0xC0, 0x01, -0x0D, 0x02, 0xED, 0xFE, 0xE5, 0x01, 0x0A, 0x01, -0x0E, 0x02, 0xEE, 0xFE, 0xE6, 0x01, 0x00, 0x01, -0x0F, 0x02, 0xEF, 0xFE, 0xE7, 0x01, 0x00, 0x01, -0x10, 0x02, 0xF0, 0xFE, 0xF0, 0x00, 0xFC, 0x01, -0x11, 0x02, 0xF1, 0xFE, 0xF1, 0x00, 0x8C, 0x01, -0x12, 0x02, 0xF2, 0xFE, 0xF2, 0x00, 0x00, 0x01, -0x13, 0x02, 0xF3, 0xFE, 0xF3, 0x00, 0x11, 0x01, -0x14, 0x02, 0xF4, 0xFE, 0xF4, 0x00, 0x9B, 0x01, -0x15, 0x02, 0xF5, 0xFE, 0xF5, 0x00, 0x15, 0x01, -0x16, 0x02, 0xF6, 0xFE, 0xF6, 0x00, 0x00, 0x01, -0x17, 0x02, 0xF7, 0xFE, 0xF7, 0x00, 0x02, 0x01, -0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x15, 0xF0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, -0x15, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, -0x05, 0xF0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, -0x05, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, -0x10, 0xF0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, -0x10, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, -0xF5, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0xF0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, -0x00, 0xF0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, -0x15, 0xF0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, -0x15, 0xF0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, -0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, -0x15, 0xF0, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, -0x01, 0x02, 0x03, 0x06, 0x05, 0x06, 0x07, 0x08, -0x09, 0x0A, 0x0B, 0xFF, 0xFF, 0x00, 0x01, 0x02, -0x02, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, -0x28, 0x28, 0x32, 0x28, 0x1E, 0x19, 0x19, 0x19, -0x18, 0x18, 0x12, 0x0F, 0x1E, 0x1E, 0x19, 0x1E, -0x18, 0x16, 0x0C, 0x0C, 0x1E, 0x1E, 0x19, 0x1E, -0x18, 0x16, 0x0C, 0x0C, 0x1E, 0x1E, 0x19, 0x1C, -0x18, 0x14, 0x0C, 0x0A, 0x1E, 0x1E, 0x19, 0x1E, -0x19, 0x18, 0x0F, 0x0E, 0x1E, 0x1E, 0x1E, 0x1E, -0x1C, 0x16, 0x14, 0x12, 0x0C, 0x0A, 0x1E, 0x1E, -0x1E, 0x1E, 0x1A, 0x16, 0x12, 0x10, 0x0C, 0x0A, -0x1E, 0x1E, 0x1E, 0x1E, 0x18, 0x16, 0x0D, 0x0E, -0x0C, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, -0x0A, 0x0A, 0x0A, 0x0A, 0x12, 0x12, 0x14, 0x12, -0x0F, 0x0F, 0x0C, 0x0C, 0x09, 0x08, 0x08, 0x07, +0x00, 0x00, 0x00, 0x00, 0x50, 0x01, 0x60, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x51, 0x01, 0x61, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x52, 0x01, 0x62, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x53, 0x01, 0x63, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x54, 0x01, 0x64, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x55, 0x01, 0x6C, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x56, 0x01, 0x65, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x57, 0x01, 0x70, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x5C, 0x01, 0x75, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x5D, 0x01, 0x80, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x5E, 0x01, 0x81, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x5F, 0x01, 0x82, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x60, 0x01, 0x83, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x61, 0x01, 0x84, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x62, 0x01, 0x85, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x63, 0x01, 0x86, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x64, 0x01, 0x87, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x65, 0x01, 0x88, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x66, 0x01, 0x89, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x67, 0x01, 0xA0, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x68, 0x01, 0xA1, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x69, 0x01, 0xA2, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x6A, 0x01, 0xA3, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x6B, 0x01, 0xA4, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x6C, 0x01, 0xA5, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x6D, 0x01, 0xA6, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x6E, 0x01, 0xA7, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x6F, 0x01, 0xA8, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x70, 0x01, 0xA9, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x71, 0x01, 0xAA, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x72, 0x01, 0xAB, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x73, 0x01, 0xAC, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x74, 0x01, 0xAD, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x75, 0x01, 0xAE, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x76, 0x01, 0xAF, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x77, 0x01, 0xB0, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x78, 0x01, 0xB1, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x90, 0x01, 0x67, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x94, 0x01, 0x78, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x95, 0x01, 0x79, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x96, 0x01, 0x7A, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x97, 0x01, 0x6D, 0xFE, +0xFF, 0xFF, 0x00, 0x00, 0x00, 0x02, 0xE0, 0xFE, +0xE0, 0x00, 0x00, 0x00, 0x01, 0x02, 0xE1, 0xFE, +0xE1, 0x00, 0x00, 0x00, 0x02, 0x02, 0xE2, 0xFE, +0xE2, 0x00, 0x00, 0x00, 0x03, 0x02, 0xE3, 0xFE, +0xE3, 0x00, 0x00, 0x00, 0x04, 0x02, 0xE4, 0xFE, +0xE4, 0x00, 0x00, 0x00, 0x05, 0x02, 0xE5, 0xFE, +0xE5, 0x00, 0x00, 0x00, 0x06, 0x02, 0xE6, 0xFE, +0xE6, 0x00, 0x00, 0x00, 0x07, 0x02, 0xE7, 0xFE, +0xE7, 0x00, 0x00, 0x00, 0x08, 0x02, 0xE8, 0xFE, +0xE0, 0x01, 0x00, 0x00, 0x09, 0x02, 0xE9, 0xFE, +0xE1, 0x01, 0x00, 0x00, 0x0A, 0x02, 0xEA, 0xFE, +0xE2, 0x01, 0x00, 0x00, 0x0B, 0x02, 0xEB, 0xFE, +0xE3, 0x01, 0x00, 0x00, 0x0C, 0x02, 0xEC, 0xFE, +0xE4, 0x01, 0x00, 0x00, 0x0D, 0x02, 0xED, 0xFE, +0xE5, 0x01, 0x00, 0x00, 0x0E, 0x02, 0xEE, 0xFE, +0xE6, 0x01, 0x00, 0x00, 0x0F, 0x02, 0xEF, 0xFE, +0xE7, 0x01, 0x00, 0x00, 0x10, 0x02, 0xF0, 0xFE, +0xF0, 0x00, 0x00, 0x00, 0x11, 0x02, 0xF1, 0xFE, +0xF1, 0x00, 0x00, 0x00, 0x12, 0x02, 0xF2, 0xFE, +0xF2, 0x00, 0x00, 0x00, 0x13, 0x02, 0xF3, 0xFE, +0xF3, 0x00, 0x00, 0x00, 0x14, 0x02, 0xF4, 0xFE, +0xF4, 0x00, 0x00, 0x00, 0x15, 0x02, 0xF5, 0xFE, +0xF5, 0x00, 0x00, 0x00, 0x16, 0x02, 0xF6, 0xFE, +0xF6, 0x00, 0x00, 0x00, 0x17, 0x02, 0xF7, 0xFE, +0xF7, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x15, 0xF0, 0xFF, 0x0F, +0x00, 0x00, 0x00, 0x00, 0x15, 0xF0, 0x0F, 0x00, +0x00, 0x00, 0x00, 0x00, 0x05, 0xF0, 0xFF, 0x0F, +0x00, 0x00, 0x00, 0x00, 0x05, 0xF0, 0x0F, 0x00, +0x00, 0x00, 0x00, 0x00, 0x10, 0xF0, 0xFF, 0x0F, +0x00, 0x00, 0x00, 0x00, 0x10, 0xF0, 0x0F, 0x00, +0x00, 0x00, 0x00, 0x00, 0xF5, 0x0F, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x3F, 0x00, +0x00, 0x00, 0x00, 0x00, 0x15, 0xF0, 0x3F, 0x00, +0x00, 0x00, 0x00, 0x00, 0x15, 0xF0, 0xFF, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, +0xFF, 0x03, 0x00, 0x00, 0x15, 0xF0, 0xFF, 0xFF, +0x0F, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x06, +0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0xFF, +0xFF, 0x00, 0x01, 0x02, 0x02, 0x04, 0x05, 0x06, +0x07, 0x08, 0x09, 0x0A, 0x28, 0x28, 0x32, 0x28, +0x1E, 0x19, 0x19, 0x19, 0x18, 0x18, 0x12, 0x0F, +0x1E, 0x1E, 0x19, 0x1E, 0x18, 0x16, 0x0C, 0x0C, +0x1E, 0x1E, 0x19, 0x1E, 0x18, 0x16, 0x0C, 0x0C, +0x1E, 0x1E, 0x19, 0x1C, 0x18, 0x14, 0x0C, 0x0A, +0x1E, 0x1E, 0x19, 0x1E, 0x19, 0x18, 0x0F, 0x0E, +0x1E, 0x1E, 0x1E, 0x1E, 0x1C, 0x16, 0x14, 0x12, +0x0C, 0x0A, 0x1E, 0x1E, 0x1E, 0x1E, 0x1A, 0x16, +0x12, 0x10, 0x0C, 0x0A, 0x1E, 0x1E, 0x1E, 0x1E, +0x18, 0x16, 0x0D, 0x0E, 0x0C, 0x0A, 0x0A, 0x0A, +0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, +0x12, 0x12, 0x14, 0x12, 0x0F, 0x0F, 0x0C, 0x0C, +0x09, 0x08, 0x08, 0x07, 0x0A, 0x0A, 0x09, 0x07, +0x07, 0x06, 0x05, 0x04, 0x0C, 0x0C, 0x0A, 0x0A, +0x09, 0x07, 0x07, 0x06, 0x0C, 0x0C, 0x0A, 0x0A, +0x09, 0x07, 0x07, 0x06, 0x0C, 0x0C, 0x0A, 0x0A, +0x09, 0x07, 0x07, 0x06, 0x0A, 0x0A, 0x08, 0x08, +0x08, 0x07, 0x07, 0x06, 0x04, 0x04, 0x0C, 0x0C, 0x0A, 0x0A, 0x09, 0x07, 0x07, 0x06, 0x05, 0x04, 0x0C, 0x0C, 0x0A, 0x0A, 0x09, 0x07, 0x07, 0x06, -0x0C, 0x0C, 0x0A, 0x0A, 0x09, 0x07, 0x07, 0x06, -0x0C, 0x0C, 0x0A, 0x0A, 0x09, 0x07, 0x07, 0x06, -0x0A, 0x0A, 0x08, 0x08, 0x08, 0x07, 0x07, 0x06, -0x04, 0x04, 0x0C, 0x0C, 0x0A, 0x0A, 0x09, 0x07, -0x07, 0x06, 0x05, 0x04, 0x0C, 0x0C, 0x0A, 0x0A, -0x09, 0x07, 0x07, 0x06, 0x05, 0x04, 0x0A, 0x0A, -0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, -0x02, 0x02, 0x02, 0x04, 0x02, 0x04, 0x06, 0x06, -0x08, 0x08, 0x09, 0x09, 0x03, 0x06, 0x08, 0x08, -0x0A, 0x0E, 0x10, 0x18, 0x05, 0x08, 0x08, 0x08, -0x0A, 0x0E, 0x10, 0x18, 0x05, 0x08, 0x08, 0x09, -0x10, 0x14, 0x1C, 0x20, 0x04, 0x06, 0x08, 0x0A, -0x10, 0x18, 0x18, 0x20, 0x03, 0x06, 0x08, 0x09, -0x10, 0x14, 0x1C, 0x24, 0x34, 0x3A, 0x05, 0x07, -0x09, 0x0A, 0x10, 0x14, 0x1C, 0x28, 0x34, 0x3C, -0x06, 0x08, 0x0A, 0x0C, 0x12, 0x18, 0x1E, 0x2E, -0x36, 0x40, 0x0A, 0x0C, 0x0C, 0x12, 0x16, 0x1C, -0x20, 0x2E, 0x36, 0x40, 0x2C, 0x00, 0x04, 0x00, -0x2D, 0x00, 0x2C, 0x01, 0x2D, 0x01, 0x2C, 0x02, -0x2E, 0x01, 0xFF, 0x00, 0x2D, 0x02, 0xFF, 0x00, -0x36, 0x2D, 0xFF, 0x36, 0x2E, 0xFF, 0x37, 0x2F, -0xFF, 0x38, 0x30, 0xFF, 0x39, 0x31, 0xFF, 0x3A, -0x32, 0xFF, 0x3A, 0x33, 0xFF, 0x3A, 0x34, 0xFF, -0x3A, 0x35, 0xFF, 0x3B, 0xFF, 0xFF, 0x37, 0x2E, -0xFF, 0x38, 0x30, 0xFF, 0x39, 0x31, 0xFF, 0x3A, -0x32, 0xFF, 0x3B, 0x35, 0xFF, 0x3C, 0xFF, 0xFF, -0x3D, 0xFF, 0xFF, 0x3E, 0xFF, 0xFF, 0x3F, 0xFF, -0xFF, 0xFF, 0xFF, 0xFF, 0x37, 0xFF, 0x2F, 0x39, -0xFF, 0x31, 0xFF, 0x3A, 0x33, 0xFF, 0x3B, 0x35, -0xFF, 0x3D, 0xFF, 0xFF, 0xFF, 0x3E, 0xFF, 0xFF, -0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, -0xFF, 0xFF, 0x00, 0x00, 0x0D, 0x14, 0xFF, 0x15, -0x0E, 0xFF, 0x15, 0x0F, 0xFF, 0x16, 0x10, 0xFF, -0x17, 0x11, 0xFF, 0x18, 0x12, 0xFF, 0x18, 0x13, -0xFF, 0x18, 0xFF, 0xFF, 0x15, 0x0E, 0xFF, 0x16, -0x10, 0xFF, 0x17, 0x10, 0xFF, 0x18, 0x11, 0xFF, -0x19, 0xFF, 0xFF, 0x1A, 0xFF, 0xFF, 0x1B, 0xFF, -0xFF, 0xFF, 0xFF, 0xFF, 0x15, 0x13, 0x0F, 0x17, -0x1E, 0x11, 0x18, 0x1F, 0x13, 0x20, 0x19, 0xFF, -0x21, 0x1B, 0xFF, 0x22, 0xFF, 0xFF, 0x23, 0xFF, -0xFF, 0xFF, 0xFF, 0xFF, 0x04, 0x04, 0x04, 0x36, -0x2C, 0xFF, 0x2D, 0xFF, 0xFF, 0x2E, 0x37, 0xFF, -0x38, 0x2F, 0xFF, 0x39, 0x30, 0xFF, 0x39, 0x31, -0xFF, 0x39, 0x32, 0xFF, 0x3A, 0x33, 0xFF, 0x3A, -0x34, 0xFF, 0x2D, 0x2C, 0xFF, 0x36, 0x2E, 0xFF, -0x37, 0x2F, 0xFF, 0x38, 0x30, 0xFF, 0x33, 0x39, -0xFF, 0x35, 0x3A, 0xFF, 0x3B, 0x34, 0xFF, 0x3C, -0x3B, 0xFF, 0x3D, 0x3C, 0xFF, 0x3E, 0x3D, 0xFF, -0x37, 0x2E, 0xFF, 0x38, 0x2F, 0xFF, 0x39, 0x31, -0xFF, 0x3A, 0xFF, 0xFF, 0xFF, 0x3B, 0xFF, 0xFF, -0x3C, 0xFF, 0xFF, 0x3D, 0x3C, 0xFF, 0x3F, 0xFF, +0x05, 0x04, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, +0x0A, 0x0A, 0x0A, 0x0A, 0x02, 0x02, 0x02, 0x04, +0x02, 0x04, 0x06, 0x06, 0x08, 0x08, 0x09, 0x09, +0x03, 0x06, 0x08, 0x08, 0x0A, 0x0E, 0x10, 0x18, +0x05, 0x08, 0x08, 0x08, 0x0A, 0x0E, 0x10, 0x18, +0x05, 0x08, 0x08, 0x09, 0x10, 0x14, 0x1C, 0x20, +0x04, 0x06, 0x08, 0x0A, 0x10, 0x18, 0x18, 0x20, +0x03, 0x06, 0x08, 0x09, 0x10, 0x14, 0x1C, 0x24, +0x34, 0x3A, 0x05, 0x07, 0x09, 0x0A, 0x10, 0x14, +0x1C, 0x28, 0x34, 0x3C, 0x06, 0x08, 0x0A, 0x0C, +0x12, 0x18, 0x1E, 0x2E, 0x36, 0x40, 0x0A, 0x0C, +0x0C, 0x12, 0x16, 0x1C, 0x20, 0x2E, 0x36, 0x40, +0x2C, 0x00, 0x04, 0x00, 0x2D, 0x00, 0x2C, 0x01, +0x2D, 0x01, 0x2C, 0x02, 0x2E, 0x01, 0xFF, 0x00, +0x2D, 0x02, 0xFF, 0x00, 0x36, 0x2D, 0xFF, 0x36, +0x2E, 0xFF, 0x37, 0x2F, 0xFF, 0x38, 0x30, 0xFF, +0x39, 0x31, 0xFF, 0x3A, 0x32, 0xFF, 0x3A, 0x33, +0xFF, 0x3A, 0x34, 0xFF, 0x3A, 0x35, 0xFF, 0x3B, +0xFF, 0xFF, 0x37, 0x2E, 0xFF, 0x38, 0x30, 0xFF, +0x39, 0x31, 0xFF, 0x3A, 0x32, 0xFF, 0x3B, 0x35, +0xFF, 0x3C, 0xFF, 0xFF, 0x3D, 0xFF, 0xFF, 0x3E, +0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x37, 0xFF, 0x2F, 0x39, 0xFF, 0x31, 0xFF, 0x3A, +0x33, 0xFF, 0x3B, 0x35, 0xFF, 0x3D, 0xFF, 0xFF, +0xFF, 0x3E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, -0x04, 0xFF, 0xFF, 0x0C, 0xFF, 0xFF, 0x0D, 0x14, -0xFF, 0x0E, 0x15, 0xFF, 0x16, 0x0F, 0xFF, 0x17, -0x10, 0xFF, 0x17, 0x11, 0xFF, 0x17, 0x12, 0xFF, -0x0D, 0x0C, 0xFF, 0x14, 0x0E, 0xFF, 0x15, 0x0F, -0xFF, 0x16, 0x10, 0xFF, 0x17, 0x12, 0xFF, 0x18, -0x13, 0xFF, 0x19, 0x13, 0xFF, 0x1A, 0x13, 0xFF, -0x14, 0x0E, 0xFF, 0x15, 0x1C, 0xFF, 0x17, 0x1D, -0x11, 0x18, 0x1E, 0x13, 0x19, 0x1F, 0x1E, 0x20, -0x1A, 0x1F, 0x21, 0x1B, 0x20, 0x22, 0x21, 0x1B, -0x01, 0x00, 0x02, 0x00, 0x05, 0x00, 0x0B, 0x00, -0x06, 0x00, 0x09, 0x00, 0x0C, 0x00, 0x12, 0x00, -0x18, 0x00, 0x24, 0x00, 0x30, 0x00, 0x36, 0x00, -0x0E, 0x00, 0x1B, 0x00, 0x29, 0x00, 0x36, 0x00, -0x51, 0x00, 0x6C, 0x00, 0x7A, 0x00, 0x87, 0x00, +0x0D, 0x14, 0xFF, 0x15, 0x0E, 0xFF, 0x15, 0x0F, +0xFF, 0x16, 0x10, 0xFF, 0x17, 0x11, 0xFF, 0x18, +0x12, 0xFF, 0x18, 0x13, 0xFF, 0x18, 0xFF, 0xFF, +0x15, 0x0E, 0xFF, 0x16, 0x10, 0xFF, 0x17, 0x10, +0xFF, 0x18, 0x11, 0xFF, 0x19, 0xFF, 0xFF, 0x1A, +0xFF, 0xFF, 0x1B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x15, 0x13, 0x0F, 0x17, 0x1E, 0x11, 0x18, 0x1F, +0x13, 0x20, 0x19, 0xFF, 0x21, 0x1B, 0xFF, 0x22, +0xFF, 0xFF, 0x23, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x04, 0x04, 0x04, 0x36, 0x2C, 0xFF, 0x2D, 0xFF, +0xFF, 0x2E, 0x37, 0xFF, 0x38, 0x2F, 0xFF, 0x39, +0x30, 0xFF, 0x39, 0x31, 0xFF, 0x39, 0x32, 0xFF, +0x3A, 0x33, 0xFF, 0x3A, 0x34, 0xFF, 0x2D, 0x2C, +0xFF, 0x36, 0x2E, 0xFF, 0x37, 0x2F, 0xFF, 0x38, +0x30, 0xFF, 0x33, 0x39, 0xFF, 0x35, 0x3A, 0xFF, +0x3B, 0x34, 0xFF, 0x3C, 0x3B, 0xFF, 0x3D, 0x3C, +0xFF, 0x3E, 0x3D, 0xFF, 0x37, 0x2E, 0xFF, 0x38, +0x2F, 0xFF, 0x39, 0x31, 0xFF, 0x3A, 0xFF, 0xFF, +0xFF, 0x3B, 0xFF, 0xFF, 0x3C, 0xFF, 0xFF, 0x3D, +0x3C, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0x00, 0x00, 0x04, 0xFF, 0xFF, 0x0C, +0xFF, 0xFF, 0x0D, 0x14, 0xFF, 0x0E, 0x15, 0xFF, +0x16, 0x0F, 0xFF, 0x17, 0x10, 0xFF, 0x17, 0x11, +0xFF, 0x17, 0x12, 0xFF, 0x0D, 0x0C, 0xFF, 0x14, +0x0E, 0xFF, 0x15, 0x0F, 0xFF, 0x16, 0x10, 0xFF, +0x17, 0x12, 0xFF, 0x18, 0x13, 0xFF, 0x19, 0x13, +0xFF, 0x1A, 0x13, 0xFF, 0x14, 0x0E, 0xFF, 0x15, +0x1C, 0xFF, 0x17, 0x1D, 0x11, 0x18, 0x1E, 0x13, +0x19, 0x1F, 0x1E, 0x20, 0x1A, 0x1F, 0x21, 0x1B, +0x20, 0x22, 0x21, 0x1B, 0x01, 0x00, 0x02, 0x00, +0x05, 0x00, 0x0B, 0x00, 0x06, 0x00, 0x09, 0x00, +0x0C, 0x00, 0x12, 0x00, 0x18, 0x00, 0x24, 0x00, +0x30, 0x00, 0x36, 0x00, 0x0E, 0x00, 0x1B, 0x00, +0x29, 0x00, 0x36, 0x00, 0x51, 0x00, 0x6C, 0x00, +0x7A, 0x00, 0x87, 0x00, 0x1B, 0x00, 0x36, 0x00, +0x51, 0x00, 0x6C, 0x00, 0xA2, 0x00, 0xD8, 0x00, +0xF3, 0x00, 0x0E, 0x01, 0x29, 0x00, 0x51, 0x00, +0x7A, 0x00, 0xA2, 0x00, 0xF3, 0x00, 0x44, 0x01, +0x6D, 0x01, 0x95, 0x01, 0x36, 0x00, 0x6C, 0x00, +0xA2, 0x00, 0xD8, 0x00, 0x44, 0x01, 0xB0, 0x01, +0xE6, 0x01, 0x1C, 0x02, 0x0E, 0x00, 0x1B, 0x00, +0x29, 0x00, 0x36, 0x00, 0x51, 0x00, 0x6C, 0x00, +0x7A, 0x00, 0x87, 0x00, 0xA2, 0x00, 0xB4, 0x00, 0x1B, 0x00, 0x36, 0x00, 0x51, 0x00, 0x6C, 0x00, 0xA2, 0x00, 0xD8, 0x00, 0xF3, 0x00, 0x0E, 0x01, -0x29, 0x00, 0x51, 0x00, 0x7A, 0x00, 0xA2, 0x00, -0xF3, 0x00, 0x44, 0x01, 0x6D, 0x01, 0x95, 0x01, +0x44, 0x01, 0x68, 0x01, 0x29, 0x00, 0x51, 0x00, +0x7A, 0x00, 0xA2, 0x00, 0xF3, 0x00, 0x44, 0x01, +0x6C, 0x01, 0x95, 0x01, 0xE6, 0x01, 0x1C, 0x02, 0x36, 0x00, 0x6C, 0x00, 0xA2, 0x00, 0xD8, 0x00, 0x44, 0x01, 0xB0, 0x01, 0xE6, 0x01, 0x1C, 0x02, -0x0E, 0x00, 0x1B, 0x00, 0x29, 0x00, 0x36, 0x00, -0x51, 0x00, 0x6C, 0x00, 0x7A, 0x00, 0x87, 0x00, -0xA2, 0x00, 0xB4, 0x00, 0x1B, 0x00, 0x36, 0x00, -0x51, 0x00, 0x6C, 0x00, 0xA2, 0x00, 0xD8, 0x00, -0xF3, 0x00, 0x0E, 0x01, 0x44, 0x01, 0x68, 0x01, -0x29, 0x00, 0x51, 0x00, 0x7A, 0x00, 0xA2, 0x00, -0xF3, 0x00, 0x44, 0x01, 0x6C, 0x01, 0x95, 0x01, -0xE6, 0x01, 0x1C, 0x02, 0x36, 0x00, 0x6C, 0x00, -0xA2, 0x00, 0xD8, 0x00, 0x44, 0x01, 0xB0, 0x01, -0xE6, 0x01, 0x1C, 0x02, 0x88, 0x02, 0xD0, 0x02, -0x14, 0x14, 0x15, 0x15, 0x16, 0x17, 0x17, 0x18, -0x1C, 0x1C, 0x1C, 0x1C, 0x1D, 0x1D, 0x1E, 0x1E, -0x1C, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x20, 0x20, -0x36, 0x36, 0x37, 0x37, 0x38, 0x39, 0x39, 0x3A, -0x3A, 0x3A, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, -0x41, 0x41, 0x42, 0x42, 0x43, 0x43, 0x00, 0x00, -0x40, 0x40, 0x41, 0x42, 0x43, 0x44, 0x44, 0x44, -0x45, 0x46, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, -0x00, 0x00, 0x30, 0xC0, 0xE0, 0x00, 0x00, 0x00, -0x00, 0x0C, 0x0E, 0x38, 0x18, 0x00, 0x00, 0x00, -0x00, 0x83, 0x01, 0x06, 0x80, 0x03, 0x00, 0x00, -0x00, 0x00, 0x70, 0xE0, 0x00, 0x00, 0x00, 0x00, -0x8B, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x88, 0x02, 0xD0, 0x02, 0x14, 0x14, 0x15, 0x15, +0x16, 0x17, 0x17, 0x18, 0x1C, 0x1C, 0x1C, 0x1C, +0x1D, 0x1D, 0x1E, 0x1E, 0x1C, 0x1C, 0x1D, 0x1E, +0x1F, 0x20, 0x20, 0x20, 0x36, 0x36, 0x37, 0x37, +0x38, 0x39, 0x39, 0x3A, 0x3A, 0x3A, 0x00, 0x00, +0x40, 0x40, 0x40, 0x40, 0x41, 0x41, 0x42, 0x42, +0x43, 0x43, 0x00, 0x00, 0x40, 0x40, 0x41, 0x42, +0x43, 0x44, 0x44, 0x44, 0x45, 0x46, 0x00, 0x00, +0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xF0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xF0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x30, 0xC0, +0xE0, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0E, 0x38, +0x18, 0x00, 0x00, 0x00, 0x00, 0x83, 0x01, 0x06, +0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x70, 0xE0, +0x21, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xF0, 0x21, 0x6C, 0x00, 0xF0, 0x00, 0x4C, 0xBC, 0x65, 0x94, 0xB8, 0x00, 0x65, 0x00, 0x6D, 0xFE, 0xF7, 0x1F, 0x4D, 0xAC, 0xEC, 0x94, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0xF4, 0x00, 0x6D, 0xAD, 0xEC, 0x40, 0x6D, 0xAD, 0xEC, 0x94, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x1F, 0xF7, 0x00, 0x6C, 0x8C, 0xB9, 0x00, 0x65, +0x1F, 0xF6, 0x00, 0x6C, 0x8C, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x77, 0xF0, 0x20, 0x6C, 0x80, 0xF0, 0x80, 0x9C, 0x80, 0xF0, 0x20, 0x6E, 0xCC, 0xEC, 0x18, 0x24, 0x30, 0xF0, 0x21, 0x6C, @@ -18895,10 +18588,10 @@ u8 array_mp_8822c_fw_nic[] = { 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x74, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0xC0, 0xF0, 0x01, 0x4A, 0x40, 0xDB, 0x00, 0x1C, 0x80, 0x00, 0x80, 0x18, -0x28, 0x79, 0x80, 0x18, 0x28, 0x76, 0x80, 0x18, -0x4F, 0x76, 0x80, 0x18, 0xF9, 0x78, 0x80, 0x18, -0x69, 0x76, 0x80, 0x18, 0xF0, 0x78, 0x00, 0x18, -0x3F, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, +0x80, 0x77, 0x80, 0x18, 0x80, 0x74, 0x80, 0x18, +0xA7, 0x74, 0x80, 0x18, 0x51, 0x77, 0x80, 0x18, +0xC1, 0x74, 0x80, 0x18, 0x48, 0x77, 0x00, 0x18, +0x8B, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x54, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x69, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x21, 0x6A, 0x41, 0xF7, 0x08, 0x4C, @@ -18930,8 +18623,8 @@ u8 array_mp_8822c_fw_nic[] = { 0x1E, 0xF4, 0x00, 0x4A, 0x43, 0xDC, 0xE0, 0xF7, 0x40, 0x98, 0x00, 0x6D, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x89, 0xF6, 0x54, 0xDB, 0x80, 0x18, -0x20, 0x7B, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, -0x70, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, 0x10, 0xF0, +0x78, 0x79, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, +0x74, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, 0x10, 0xF0, 0x00, 0x6D, 0x40, 0xAB, 0xAB, 0xED, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x58, 0x9A, 0x40, 0xEA, @@ -18944,7 +18637,7 @@ u8 array_mp_8822c_fw_nic[] = { 0x1A, 0x6A, 0x6A, 0xEA, 0x31, 0x60, 0x77, 0xF0, 0x24, 0x6A, 0xA0, 0xF1, 0x1C, 0x4A, 0x1D, 0xF4, 0x00, 0x6B, 0x60, 0xDA, 0x10, 0xF0, 0x23, 0x6A, -0x41, 0xF6, 0x19, 0x4A, 0x00, 0xEA, 0x00, 0xF0, +0x81, 0xF3, 0x09, 0x4A, 0x00, 0xEA, 0x00, 0xF0, 0x20, 0x6A, 0x1F, 0xF7, 0x00, 0x6A, 0x4C, 0xEB, 0x4C, 0xB8, 0x00, 0x65, 0x6C, 0xEA, 0x42, 0x32, 0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF0, 0x00, 0x4B, @@ -18980,7 +18673,7 @@ u8 array_mp_8822c_fw_nic[] = { 0x6A, 0x9B, 0xCF, 0xF7, 0x80, 0x44, 0x62, 0xEC, 0x0D, 0x60, 0x77, 0xF0, 0x24, 0x6C, 0xA0, 0xF1, 0x1C, 0x4C, 0x1D, 0xF4, 0x01, 0x6B, 0x60, 0xDC, -0x10, 0xF0, 0x23, 0x6C, 0x41, 0xF6, 0x19, 0x4C, +0x10, 0xF0, 0x23, 0x6C, 0x81, 0xF3, 0x09, 0x4C, 0x00, 0xEC, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF1, 0x0C, 0x4B, 0x41, 0x9B, 0x40, 0xDB, 0x89, 0x9A, 0xBC, 0x65, 0x7D, 0x67, 0xDF, 0xF7, @@ -19028,7 +18721,7 @@ u8 array_mp_8822c_fw_nic[] = { 0x6A, 0x9B, 0xCF, 0xF7, 0x80, 0x44, 0x62, 0xEC, 0x0D, 0x60, 0x77, 0xF0, 0x24, 0x6C, 0xA0, 0xF1, 0x1C, 0x4C, 0x1D, 0xF4, 0x01, 0x6B, 0x60, 0xDC, -0x10, 0xF0, 0x23, 0x6C, 0x41, 0xF6, 0x19, 0x4C, +0x10, 0xF0, 0x23, 0x6C, 0x81, 0xF3, 0x09, 0x4C, 0x00, 0xEC, 0x00, 0x65, 0x40, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x41, 0xF3, 0x08, 0x4C, 0x00, 0xF4, 0x00, 0x4C, 0xBC, 0x65, 0x82, 0x67, 0x40, 0xEA, @@ -19052,275 +18745,185 @@ u8 array_mp_8822c_fw_nic[] = { 0x7B, 0xB8, 0x00, 0x65, 0x5A, 0xB8, 0x00, 0x65, 0x00, 0xBA, 0x00, 0x65, 0x5F, 0x67, 0x5A, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x18, -0x4C, 0xC3, 0x00, 0x1C, 0xBA, 0x35, 0x5A, 0xB8, +0x3F, 0xC2, 0x00, 0x1C, 0xBA, 0x35, 0x5A, 0xB8, 0x00, 0x65, 0x00, 0xEA, 0x6D, 0xB8, 0x00, 0xF0, 0x20, 0x6A, 0x00, 0xF2, 0x00, 0x4A, 0x4F, 0xEA, 0x4C, 0xEB, 0xAB, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x5F, 0x67, 0x5A, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x1C, 0x7D, 0x35, 0x5A, 0xB8, 0x00, 0x65, 0x00, 0xEA, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0x64, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0x68, 0x9B, 0xFF, 0x6A, 0x8C, 0xEA, 0x80, 0xA3, 0x10, 0x6B, 0x8C, 0xEB, 0x05, 0x23, 0xE2, 0xF1, 0x10, 0x4A, 0xE2, 0xF1, 0x10, 0x6B, 0x31, 0x10, 0x7F, 0x4A, 0x09, 0x4A, 0x88, 0x6B, 0x15, 0x10, 0x1F, 0xF7, 0x00, 0x6C, 0x6C, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, -0x43, 0xF1, 0x80, 0x9C, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6C, 0x43, 0xF1, 0x84, 0x9C, 0xC0, 0xA5, +0x43, 0xF1, 0x84, 0x9C, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6C, 0x43, 0xF1, 0x88, 0x9C, 0xC0, 0xA5, 0x91, 0xE3, 0x01, 0x4D, 0xC0, 0xC4, 0x01, 0x4B, 0x4A, 0xEB, 0xE9, 0x61, 0x20, 0xE8, 0x1F, 0xF7, 0x00, 0x6C, 0x6C, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, -0x43, 0xF1, 0x80, 0x9C, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6C, 0x43, 0xF1, 0x84, 0x9C, 0xC0, 0xA5, +0x43, 0xF1, 0x84, 0x9C, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6C, 0x43, 0xF1, 0x88, 0x9C, 0xC0, 0xA5, 0x91, 0xE3, 0x01, 0x4D, 0xC0, 0xC4, 0x01, 0x4B, 0x4A, 0xEB, 0xE9, 0x61, 0x20, 0xE8, 0x00, 0x65, -0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, -0xFF, 0x6A, 0x4C, 0xED, 0x4C, 0xEC, 0xCC, 0xEA, -0x4B, 0xEA, 0xC0, 0xF7, 0x42, 0x32, 0x44, 0x32, -0x30, 0xF0, 0x20, 0x68, 0x04, 0xD2, 0xC0, 0xF3, -0x44, 0x98, 0x08, 0xD5, 0xA4, 0x36, 0x08, 0x6B, -0x01, 0x6D, 0x07, 0xD4, 0xAB, 0xED, 0x03, 0xF3, -0x00, 0x6C, 0x6D, 0xEE, 0x40, 0xEA, 0x07, 0x92, -0x0F, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x83, 0xF3, 0xB4, 0x9B, 0x23, 0xF3, -0x00, 0x6C, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF4, 0x58, 0x9A, 0x0E, 0x10, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, +0x58, 0x9A, 0x64, 0x9C, 0xFF, 0x68, 0xAC, 0xE8, +0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0x30, 0xF0, 0x20, 0x6D, 0xA5, 0xF4, 0x0C, 0x4C, +0xE2, 0xF5, 0x18, 0x4D, 0x80, 0x18, 0x48, 0x43, +0x01, 0x70, 0x14, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x83, 0xF3, 0xB4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, -0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF4, 0x5C, 0x9A, 0x06, 0xD2, 0x07, 0x92, -0x22, 0x6B, 0x08, 0x94, 0x78, 0xEA, 0x44, 0x6A, -0x00, 0x68, 0x12, 0xEB, 0x58, 0xEC, 0x04, 0x94, -0x12, 0xEA, 0x49, 0xE3, 0x88, 0x6B, 0x78, 0xEC, -0x12, 0xEB, 0x69, 0xE2, 0x30, 0xF0, 0x20, 0x6B, -0x49, 0xF7, 0x10, 0x4A, 0x2B, 0xF1, 0x18, 0x4B, -0x4D, 0xE3, 0x05, 0xD3, 0x05, 0x92, 0x06, 0x94, -0x30, 0xF0, 0x20, 0x69, 0xC0, 0xAA, 0x08, 0x32, -0x01, 0x6D, 0xC0, 0x36, 0x8D, 0xEE, 0x4D, 0xEE, -0xC0, 0xF3, 0x44, 0x99, 0xC3, 0xF3, 0x18, 0x6C, -0xAB, 0xED, 0x02, 0x4E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, 0xA3, 0xF1, -0xB4, 0x9B, 0xC3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, -0x40, 0xEA, 0x05, 0x92, 0x01, 0x48, 0x11, 0x70, -0x02, 0x4A, 0x05, 0xD2, 0xDF, 0x61, 0x07, 0x92, -0x22, 0x6B, 0x08, 0x94, 0x78, 0xEA, 0x44, 0x6A, -0x00, 0x69, 0x12, 0xEB, 0x58, 0xEC, 0x04, 0x94, -0x12, 0xEA, 0x49, 0xE3, 0x88, 0x6B, 0x78, 0xEC, -0x12, 0xEB, 0x69, 0xE2, 0x30, 0xF0, 0x20, 0x6B, -0x6A, 0xF0, 0x00, 0x4A, 0x2B, 0xF1, 0x18, 0x4B, -0x4D, 0xE3, 0x04, 0xD3, 0x04, 0x92, 0x06, 0x94, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xAA, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0x33, 0xC0, 0x36, 0x8D, 0xEE, -0x01, 0x6D, 0x6D, 0xEE, 0xC3, 0xF3, 0x18, 0x6C, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF1, 0xB4, 0x9B, -0xC3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x04, 0x92, 0x01, 0x49, 0x11, 0x71, 0x02, 0x4A, -0x04, 0xD2, 0xE0, 0x61, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF3, 0xCC, 0x9B, -0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x83, 0xF3, 0xB4, 0x9B, 0x23, 0xF3, -0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x0D, 0x97, -0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0x6A, 0x4C, 0xED, 0x4C, 0xEC, 0xCC, 0xEA, -0x4B, 0xEA, 0xC0, 0xF7, 0x42, 0x32, 0x30, 0xF0, -0x20, 0x68, 0x44, 0x32, 0xC0, 0xF3, 0x64, 0x98, -0x06, 0xD5, 0x04, 0xD2, 0xA4, 0x36, 0x08, 0x6A, -0x01, 0x6D, 0x05, 0xD4, 0x4D, 0xEE, 0x03, 0xF3, -0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, 0x05, 0x92, -0x0A, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x83, 0xF3, -0xB4, 0x9B, 0x03, 0x6E, 0x09, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF3, -0xB4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, -0xAC, 0x9B, 0xC3, 0xF3, 0x14, 0x69, 0x91, 0x67, -0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF3, 0xA8, 0x9B, -0x91, 0x67, 0x10, 0x6E, 0x40, 0xEA, 0x05, 0x92, -0x22, 0x6B, 0x06, 0x94, 0x78, 0xEA, 0x44, 0x6A, -0x00, 0x68, 0x12, 0xEB, 0x58, 0xEC, 0x04, 0x94, -0x12, 0xEA, 0x4D, 0xE3, 0x88, 0x6A, 0x58, 0xEC, -0x12, 0xEA, 0x4D, 0xE3, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0x67, 0x2B, 0xF1, 0x18, 0x4A, 0x6A, 0xF0, -0x00, 0x4B, 0x49, 0xF7, 0x10, 0x49, 0x6D, 0xE2, -0x25, 0xE2, 0x04, 0xD3, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0x4C, 0x9A, 0x08, 0x36, 0x01, 0x6D, -0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x4D, 0xEE, -0x40, 0xEB, 0x01, 0x6D, 0xE3, 0xF3, 0x1C, 0x6C, -0xAB, 0xED, 0x80, 0x18, 0x35, 0x25, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF3, 0x70, 0x9B, 0x04, 0x94, -0x01, 0x48, 0x4C, 0xEB, 0x62, 0x33, 0x62, 0x33, -0x60, 0xC9, 0xE1, 0xF7, 0x1F, 0x6B, 0x4C, 0xEB, -0x60, 0xCC, 0x11, 0x70, 0x02, 0x4C, 0x02, 0x49, -0x04, 0xD4, 0xD8, 0x61, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF3, 0xB4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, -0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0x68, 0x0C, 0xEC, 0x01, 0x74, 0xAC, 0xE8, -0x80, 0xF0, 0x0C, 0x60, 0x07, 0x24, 0x02, 0x74, -0x80, 0xF0, 0x1E, 0x60, 0x03, 0x74, 0x80, 0xF0, -0x1F, 0x60, 0xA3, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x6A, 0xF1, 0x78, 0x9A, -0x30, 0xF0, 0x21, 0x6C, 0x30, 0xF0, 0x21, 0x6D, -0x6A, 0xF1, 0x7C, 0xDA, 0x00, 0x6E, 0x30, 0xF0, -0x21, 0x6B, 0x30, 0xF0, 0x21, 0x6A, 0xD5, 0xF2, -0x08, 0x4C, 0xD5, 0xF2, 0x00, 0x4B, 0xB5, 0xF2, -0x1C, 0x4A, 0xB5, 0xF0, 0x0A, 0x4D, 0x04, 0xD6, -0xC0, 0x9C, 0x04, 0x97, 0x00, 0x69, 0xC2, 0xDC, -0xC0, 0xAB, 0xA5, 0xF0, 0x18, 0x4F, 0xE4, 0x37, -0xC2, 0xCB, 0xC0, 0xA2, 0x06, 0xD5, 0x05, 0xD1, -0xC2, 0xC2, 0x30, 0xF0, 0x20, 0x6E, 0x2B, 0xF1, -0x18, 0x4E, 0xFD, 0xE6, 0xC0, 0xA7, 0x22, 0x68, -0x04, 0x91, 0xC4, 0xC7, 0x05, 0x96, 0x18, 0xEE, -0x44, 0x6E, 0x12, 0xE8, 0xD8, 0xE9, 0x30, 0xF0, -0x20, 0x69, 0x2B, 0xF1, 0x18, 0x49, 0x12, 0xEE, -0xC1, 0xE0, 0xD0, 0x67, 0x49, 0xF7, 0x10, 0x4E, -0x6A, 0xF0, 0x00, 0x48, 0xD9, 0xE1, 0x01, 0xE1, -0x20, 0xAE, 0x80, 0xF0, 0x28, 0xCE, 0x20, 0xA8, -0x02, 0x4E, 0x80, 0xF0, 0x28, 0xC8, 0x06, 0x91, -0x02, 0x48, 0x2A, 0xEE, 0xF5, 0x61, 0x05, 0x96, -0x22, 0x49, 0x01, 0x4F, 0x01, 0x4E, 0x02, 0x76, -0x05, 0xD6, 0x06, 0xD1, 0xD7, 0x61, 0x04, 0x91, -0x04, 0x4C, 0x02, 0x4B, 0x01, 0x49, 0x02, 0x71, -0x04, 0xD1, 0x01, 0x4A, 0x44, 0x4D, 0xBC, 0x61, -0x30, 0xF0, 0x21, 0x6B, 0xB5, 0xF2, 0x1C, 0x4B, -0x44, 0x43, 0xA7, 0x43, 0x16, 0x4D, 0xE2, 0x67, -0x00, 0x6C, 0x80, 0xC3, 0x01, 0x4B, 0x00, 0x6C, -0x01, 0x6E, 0xEA, 0xEB, 0x80, 0xCA, 0xFF, 0xF7, -0xC8, 0xC2, 0x20, 0xF0, 0x85, 0xC2, 0xFF, 0xF7, -0xC9, 0xC2, 0x20, 0xF0, 0x86, 0xC2, 0x80, 0xC5, -0x81, 0xC5, 0x82, 0xC5, 0x02, 0x4A, 0x03, 0x4D, -0xEB, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x8A, 0xF1, 0x60, 0x9A, 0x6A, 0xF1, -0x78, 0xDA, 0x1F, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0xE4, 0x9A, 0x30, 0xF0, 0x21, 0x6C, -0xB0, 0x67, 0x12, 0xF5, 0x08, 0x4C, 0x58, 0x6E, -0x80, 0x18, 0x1A, 0x5A, 0x62, 0xF4, 0x04, 0x48, -0x30, 0xF0, 0x20, 0x6B, 0x08, 0x30, 0x2B, 0xF1, -0x18, 0x4B, 0x6D, 0xE0, 0x40, 0xDB, 0x09, 0x10, -0x00, 0x6C, 0xB0, 0x67, 0xC4, 0x67, 0x03, 0x10, -0x01, 0x6C, 0xB0, 0x67, 0x00, 0x6E, 0x00, 0x18, -0x04, 0xC2, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF2, 0x54, 0x9A, 0x64, 0x9C, -0xFF, 0x68, 0xAC, 0xE8, 0x6C, 0xEA, 0x0A, 0x22, -0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, -0xA5, 0xF4, 0x08, 0x4C, 0xE2, 0xF5, 0x18, 0x4D, -0x80, 0x18, 0x39, 0x43, 0x01, 0x70, 0x14, 0x61, -0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF2, 0xA0, 0x9B, -0x83, 0xF2, 0x1C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x14, 0x6C, -0x00, 0xF3, 0x00, 0x6D, 0x00, 0x6E, 0x15, 0x10, -0x02, 0x70, 0x14, 0x61, 0x30, 0xF0, 0x20, 0x68, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0xC3, 0xF2, 0xA0, 0x9B, 0x83, 0xF2, 0x1C, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF2, 0xA4, 0x9B, 0x83, 0xF2, 0x1C, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x14, 0x6C, 0x00, 0xF3, 0x00, 0x6D, -0x03, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, -0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, 0x20, 0x68, -0x30, 0xF0, 0x20, 0x6C, 0x2B, 0xF1, 0x18, 0x48, -0x0B, 0xF2, 0x16, 0x4C, 0x07, 0x6E, 0x40, 0xEA, -0xC0, 0xF0, 0x9E, 0xA0, 0x00, 0x18, 0x30, 0xDE, -0xA4, 0xF5, 0x5C, 0xA0, 0x1F, 0x6B, 0x01, 0x6C, -0x4A, 0x32, 0x6C, 0xEA, 0xC0, 0xF0, 0x7E, 0xA0, -0x47, 0xEB, 0x8C, 0xEA, 0x03, 0x22, 0xA4, 0xF5, -0x7D, 0xC0, 0x04, 0x10, 0x01, 0x6A, 0x4B, 0xEA, -0xA4, 0xF5, 0x5D, 0xC0, 0x30, 0xF0, 0x20, 0x68, -0x2B, 0xF1, 0x18, 0x48, 0xA4, 0xF5, 0x7C, 0xA0, -0x02, 0x6A, 0x6C, 0xEA, 0x1A, 0x22, 0x03, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0xA4, 0xF5, 0x5C, 0xC0, -0x00, 0x18, 0xBA, 0xE6, 0x04, 0xD2, 0x04, 0x93, -0xC4, 0xF5, 0x40, 0x98, 0x6E, 0xEA, 0x03, 0x22, -0x04, 0x94, 0x00, 0x18, 0xDB, 0xE6, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA4, 0xF5, -0x9C, 0xA2, 0x02, 0x6B, 0x8D, 0xEB, 0xA4, 0xF5, -0x7C, 0xC2, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, 0x90, 0x67, -0x00, 0x18, 0x31, 0xD0, 0x90, 0x67, 0x00, 0x18, -0x85, 0xE8, 0x01, 0x6C, 0x00, 0x18, 0x7D, 0xC7, -0x30, 0xF0, 0x20, 0x6A, 0x4B, 0xF2, 0x6E, 0xA2, -0x07, 0x6A, 0x6C, 0xEA, 0x0E, 0xEA, 0x02, 0x2A, -0x80, 0x18, 0x31, 0x61, 0x90, 0x67, 0x01, 0x6D, -0x00, 0x18, 0xAA, 0xCF, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, -0xC9, 0xF2, 0x44, 0xA2, 0x10, 0x6B, 0x6E, 0xEA, -0x01, 0x5A, 0x58, 0x67, 0x20, 0xE8, 0x00, 0x65, +0x00, 0x6E, 0x15, 0x10, 0x02, 0x70, 0x14, 0x61, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF2, 0xA4, 0x9B, +0x83, 0xF2, 0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x14, 0x6C, +0x00, 0xF3, 0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0x67, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6C, +0x2B, 0xF1, 0x18, 0x48, 0x0B, 0xF2, 0x16, 0x4C, +0x07, 0x6E, 0x40, 0xEA, 0xC0, 0xF0, 0x9E, 0xA0, +0x00, 0x18, 0x8F, 0xDD, 0xA4, 0xF5, 0x58, 0xA0, +0x1F, 0x6B, 0x01, 0x6C, 0x4A, 0x32, 0x6C, 0xEA, +0xC0, 0xF0, 0x7E, 0xA0, 0x47, 0xEB, 0x8C, 0xEA, +0x03, 0x22, 0xA4, 0xF5, 0x79, 0xC0, 0x04, 0x10, +0x01, 0x6A, 0x4B, 0xEA, 0xA4, 0xF5, 0x59, 0xC0, +0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, +0xA4, 0xF5, 0x78, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, +0x1A, 0x22, 0x03, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xA4, 0xF5, 0x58, 0xC0, 0x00, 0x18, 0x10, 0xE6, +0x04, 0xD2, 0x04, 0x93, 0xA4, 0xF5, 0x5C, 0x98, +0x6E, 0xEA, 0x03, 0x22, 0x04, 0x94, 0x00, 0x18, +0x31, 0xE6, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0xA4, 0xF5, 0x98, 0xA2, 0x02, 0x6B, +0x8D, 0xEB, 0xA4, 0xF5, 0x78, 0xC2, 0x07, 0x97, +0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x68, +0x8C, 0xE8, 0x90, 0x67, 0x00, 0x18, 0x86, 0xCF, +0x90, 0x67, 0x00, 0x18, 0xDB, 0xE7, 0x01, 0x6C, +0x00, 0x18, 0xB3, 0xC6, 0x30, 0xF0, 0x20, 0x6A, +0x4B, 0xF2, 0x6E, 0xA2, 0x07, 0x6A, 0x6C, 0xEA, +0x0E, 0xEA, 0x02, 0x2A, 0x80, 0x18, 0xB6, 0x5F, +0x90, 0x67, 0x01, 0x6D, 0x00, 0x18, 0xFF, 0xCE, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF2, 0x44, 0xA2, +0x10, 0x6B, 0x6E, 0xEA, 0x01, 0x5A, 0x58, 0x67, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xC9, 0xF2, 0x44, 0xA2, 0x01, 0x5A, 0x58, 0x67, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xC9, 0xF2, 0x47, 0xA2, 0x01, 0x6B, 0x6E, 0xEA, 0x01, 0x5A, 0x58, 0x67, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF2, 0x47, 0xA2, -0x01, 0x6B, 0x6E, 0xEA, 0x01, 0x5A, 0x58, 0x67, -0x20, 0xE8, 0x00, 0x65, 0x00, 0x6A, 0x40, 0xC4, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, -0xE6, 0xF1, 0x08, 0x4B, 0x00, 0x6C, 0x40, 0xA3, -0x0B, 0x2A, 0x05, 0x6B, 0x78, 0xEC, 0x30, 0xF0, -0x20, 0x6A, 0xE6, 0xF1, 0x08, 0x4A, 0x01, 0x6B, -0x12, 0xEC, 0x49, 0xE4, 0x60, 0xC2, 0x20, 0xE8, -0x01, 0x4C, 0x08, 0x74, 0x05, 0x4B, 0xEF, 0x61, -0x00, 0x6A, 0x20, 0xE8, 0x06, 0x5C, 0x08, 0x60, -0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, 0x86, 0xF1, -0x04, 0x4A, 0x49, 0xE4, 0xA0, 0xDA, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF1, 0x04, 0x4A, -0x70, 0x9A, 0x01, 0x4B, 0x70, 0xDA, 0x20, 0xE8, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0x80, 0xF2, -0x48, 0x9A, 0x86, 0xF1, 0x04, 0x48, 0x90, 0x67, -0x64, 0x6E, 0x00, 0x6D, 0x40, 0xEA, 0x01, 0x6A, -0x10, 0xF0, 0x32, 0x6D, 0x56, 0xC8, 0x00, 0x6C, -0x30, 0x6A, 0x75, 0xF0, 0x0D, 0x4D, 0x57, 0xC8, -0x00, 0x18, 0x27, 0xC3, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x10, 0xF0, 0x32, 0x6D, 0x01, 0x6C, 0x95, 0xF3, -0x0D, 0x4D, 0x00, 0x18, 0x27, 0xC3, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x44, 0x9A, -0x42, 0xF1, 0x18, 0x6C, 0x01, 0x6D, 0x02, 0x6E, -0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0x20, 0xE8, 0x00, 0x65, 0xFF, 0x17, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF0, 0x78, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF0, 0x54, 0x9A, 0x00, 0x68, -0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF1, +0x00, 0x6A, 0x40, 0xC4, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0xE6, 0xF1, 0x0C, 0x4B, +0x00, 0x6C, 0x40, 0xA3, 0x0B, 0x2A, 0x05, 0x6B, +0x78, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF1, +0x0C, 0x4A, 0x01, 0x6B, 0x12, 0xEC, 0x49, 0xE4, +0x60, 0xC2, 0x20, 0xE8, 0x01, 0x4C, 0x08, 0x74, +0x05, 0x4B, 0xEF, 0x61, 0x00, 0x6A, 0x20, 0xE8, +0x06, 0x5C, 0x08, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x88, 0x34, 0x86, 0xF1, 0x08, 0x4A, 0x49, 0xE4, +0xA0, 0xDA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x86, 0xF1, 0x08, 0x4A, 0x70, 0x9A, 0x01, 0x4B, +0x70, 0xDA, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x68, 0x80, 0xF2, 0x48, 0x9A, 0x86, 0xF1, +0x08, 0x48, 0x90, 0x67, 0x64, 0x6E, 0x00, 0x6D, +0x40, 0xEA, 0x01, 0x6A, 0x10, 0xF0, 0x32, 0x6D, +0x56, 0xC8, 0x00, 0x6C, 0x30, 0x6A, 0xF4, 0xF0, +0x1D, 0x4D, 0x57, 0xC8, 0x00, 0x18, 0x1A, 0xC2, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x10, 0xF0, 0x32, 0x6D, +0x01, 0x6C, 0x14, 0xF4, 0x1D, 0x4D, 0x00, 0x18, +0x1A, 0xC2, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF3, 0x44, 0x9A, 0x42, 0xF1, 0x18, 0x6C, +0x01, 0x6D, 0x02, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x17, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF0, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF0, 0x54, 0x9A, 0x60, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF0, 0x5C, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF1, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xEF, 0x9A, -0xC3, 0xF0, 0x7C, 0x9B, 0x8C, 0x9A, 0xCE, 0x9A, +0xE3, 0xF0, 0x60, 0x9B, 0x8C, 0x9A, 0xCE, 0x9A, 0xAD, 0x9A, 0xE0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF0, 0x60, 0x9B, 0xC0, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0xE3, 0xF0, 0x64, 0x9B, 0xA0, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0x68, 0x9B, +0xE3, 0xF0, 0x64, 0x9B, 0xC0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF0, 0x68, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0x6C, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x89, 0x9A, -0xE3, 0xF0, 0x6C, 0x9B, 0x80, 0xDB, 0x68, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, 0x50, 0x9A, +0xE3, 0xF0, 0x70, 0x9B, 0x80, 0xDB, 0x68, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, 0x54, 0x9A, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF1, -0x4C, 0xAA, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x08, 0x34, 0x60, 0xF2, 0x08, 0x4B, 0x6D, 0xE4, -0x60, 0x9B, 0x05, 0x23, 0x01, 0x48, 0xFF, 0x6B, -0x6C, 0xE8, 0x43, 0xE8, 0xF3, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF0, 0x74, 0x9A, 0x7F, 0x6A, -0x48, 0x6E, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, 0xB8, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0x00, 0xF1, 0x00, 0x4C, -0x00, 0x18, 0x6B, 0xD8, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF0, 0xBC, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0x41, 0xF3, 0x08, 0x4C, 0x00, 0xF4, 0x00, 0x6E, -0x00, 0x18, 0x6B, 0xD8, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF1, 0xA0, 0x9A, 0x00, 0x36, 0xFF, 0xF7, -0x1F, 0x6A, 0xC8, 0x36, 0x30, 0xF0, 0x21, 0x6C, -0x1D, 0xF0, 0x00, 0x4C, 0x4C, 0xEE, 0x00, 0x18, -0x6B, 0xD8, 0x01, 0x6C, 0xA4, 0x67, 0x80, 0x18, -0x20, 0x01, 0x00, 0x1C, 0xAC, 0x39, 0xFF, 0x17, +0x6C, 0xAA, 0x00, 0x6A, 0x0B, 0x10, 0x30, 0xF0, +0x20, 0x6C, 0x48, 0x35, 0x60, 0xF2, 0x08, 0x4C, +0x91, 0xE5, 0x80, 0x9C, 0x05, 0x24, 0x01, 0x4A, +0xFF, 0x6C, 0x8C, 0xEA, 0x63, 0xEA, 0xF3, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0x98, 0x9B, +0x40, 0x32, 0x7F, 0x6B, 0xA0, 0xA4, 0x48, 0x32, +0x04, 0x6E, 0xAC, 0xEB, 0x60, 0xC4, 0x7D, 0x67, +0x08, 0xD2, 0x40, 0xF4, 0x1C, 0x4A, 0x4C, 0xCB, +0x80, 0x6A, 0x4B, 0xEA, 0x5A, 0xC3, 0x01, 0x6A, +0x5B, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, +0x5C, 0x9A, 0x06, 0x04, 0xFF, 0xF7, 0x1F, 0x68, +0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, +0x00, 0x4A, 0xA0, 0x9A, 0x00, 0x18, 0xB9, 0xD7, +0x04, 0x6A, 0xA2, 0x67, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF1, 0xE4, 0x9A, 0x90, 0x67, +0x07, 0x06, 0x00, 0x18, 0xD8, 0xD7, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF1, 0x00, 0x4B, 0x60, 0x9B, +0x24, 0x42, 0x0C, 0xE9, 0x48, 0x6A, 0x30, 0xF0, +0x20, 0x6E, 0x7D, 0xE1, 0x00, 0x6C, 0xA2, 0x67, +0x00, 0xF1, 0x00, 0x4E, 0x04, 0xD2, 0x00, 0x18, +0xD8, 0xD7, 0x45, 0xE1, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF1, 0x00, 0x4A, 0x40, 0x9A, 0x0C, 0xE9, +0x30, 0xF0, 0x20, 0x6E, 0x00, 0xF4, 0x00, 0x6D, +0x5D, 0xE1, 0x01, 0x6C, 0x41, 0xF3, 0x08, 0x4E, +0x04, 0xD5, 0x00, 0x18, 0xD8, 0xD7, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF1, 0x00, 0x4B, 0x60, 0x9B, +0x08, 0x95, 0x45, 0xE1, 0x0C, 0xE9, 0x30, 0xF0, +0x21, 0x6E, 0x0C, 0xED, 0x1D, 0xF0, 0x00, 0x4E, +0x7D, 0xE1, 0x02, 0x6C, 0x04, 0xD5, 0x00, 0x18, +0xD8, 0xD7, 0x01, 0x6C, 0xA4, 0x67, 0x80, 0x18, +0x20, 0x01, 0x00, 0x1C, 0xAC, 0x39, 0x30, 0xF0, +0x20, 0x6C, 0x2B, 0xF1, 0x18, 0x4C, 0x01, 0x6A, +0x08, 0xD4, 0xCA, 0xF1, 0x10, 0x68, 0x09, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, 0x5C, 0x9A, +0xFF, 0x69, 0x40, 0xA2, 0x4C, 0xE9, 0x0D, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, 0x5C, 0x9A, +0xFF, 0x69, 0x01, 0x6C, 0x40, 0xA2, 0x4C, 0xE9, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x40, 0xEA, 0xF2, 0x21, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF0, 0x5C, 0x9A, 0x00, 0x6B, 0xE5, 0xF7, +0x1D, 0x58, 0x60, 0xC2, 0x09, 0x61, 0x9D, 0x67, +0x7A, 0xA4, 0x80, 0x6A, 0x4B, 0xEA, 0x6D, 0xEA, +0x5A, 0xC4, 0xE5, 0xF7, 0x1C, 0x69, 0x06, 0x10, +0x9D, 0x67, 0x7A, 0xA4, 0x7F, 0x6A, 0x30, 0x67, +0x6C, 0xEA, 0x5A, 0xC4, 0x5D, 0x67, 0x9A, 0xA2, +0x2C, 0xCA, 0x7F, 0x6A, 0x64, 0x67, 0x4C, 0xEB, +0x01, 0x4B, 0x4C, 0xEB, 0x80, 0x4A, 0x81, 0x4A, +0x8C, 0xEA, 0x6D, 0xEA, 0x9D, 0x67, 0x5A, 0xC4, +0x01, 0x6A, 0x5B, 0xC4, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF1, 0xA0, 0x9A, 0x06, 0x04, 0x04, 0x6E, +0x00, 0x18, 0xB9, 0xD7, 0x09, 0x92, 0x0C, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x08, 0x96, 0x03, 0xF1, +0xE4, 0x9A, 0x03, 0x6C, 0xCA, 0xF1, 0x10, 0x6D, +0x04, 0xD1, 0x00, 0x18, 0xD8, 0xD7, 0x08, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x08, 0x94, 0x03, 0xF1, +0xA4, 0x9A, 0xD1, 0x67, 0x00, 0x18, 0xB9, 0xD7, +0x23, 0xE0, 0xFF, 0xF7, 0x1F, 0x6A, 0x01, 0x6C, +0x4C, 0xE8, 0xA4, 0x67, 0x80, 0x18, 0x20, 0x01, +0x06, 0x20, 0x08, 0x93, 0x00, 0x6C, 0x09, 0xD4, +0x2D, 0xE3, 0x08, 0xD3, 0x95, 0x17, 0xFF, 0x17, 0x4C, 0xB8, 0x00, 0x65, 0x80, 0x34, 0x8D, 0xEA, 0x8A, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0x4C, 0xB8, 0x00, 0x65, @@ -19334,44 +18937,44 @@ u8 array_mp_8822c_fw_nic[] = { 0x6B, 0xDA, 0x6D, 0xB8, 0x00, 0x65, 0x6C, 0xDA, 0x68, 0xB8, 0x00, 0x65, 0x6D, 0xDA, 0x6C, 0xB8, 0x00, 0x65, 0x6E, 0xDA, 0x6E, 0xB8, 0x00, 0x65, -0x6F, 0xDA, 0x10, 0xF0, 0x23, 0x6A, 0x21, 0xF5, -0x19, 0x4A, 0x00, 0xEA, 0x00, 0x65, 0x00, 0x65, +0x6F, 0xDA, 0x10, 0xF0, 0x23, 0x6A, 0x01, 0xF1, +0x05, 0x4A, 0x00, 0xEA, 0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x74, 0x9B, -0x10, 0xF0, 0x23, 0x6A, 0xA1, 0xF6, 0x09, 0x4A, +0x10, 0xF0, 0x23, 0x6A, 0xC1, 0xF3, 0x19, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, -0x44, 0x9A, 0x08, 0x6B, 0x40, 0xA2, 0x4C, 0xEB, +0x48, 0x9A, 0x08, 0x6B, 0x40, 0xA2, 0x4C, 0xEB, 0x00, 0x6A, 0x11, 0x23, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF1, 0x48, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF1, 0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0x40, 0x9A, 0xA9, 0xF6, 0x48, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF1, 0x4C, 0x9A, 0xA9, 0xF6, +0x20, 0x6A, 0x03, 0xF1, 0x50, 0x9A, 0xA9, 0xF6, 0x08, 0x4B, 0x40, 0x9A, 0x41, 0xDB, 0x20, 0xE8, 0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF0, 0x94, 0x9C, 0x10, 0xF0, 0x23, 0x6B, -0xE1, 0xF6, 0x11, 0x4B, 0x60, 0xDC, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF1, 0x64, 0x9B, 0x80, 0xA3, +0x21, 0xF4, 0x01, 0x4B, 0x60, 0xDC, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF1, 0x68, 0x9B, 0x80, 0xA3, 0x08, 0x6B, 0x8C, 0xEB, 0x1C, 0x23, 0x05, 0x5A, 0x1A, 0x60, 0x0C, 0x6D, 0xB8, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF1, 0x68, 0x9B, 0x80, 0x9B, +0x20, 0x6B, 0x03, 0xF1, 0x6C, 0x9B, 0x80, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0xA9, 0xF6, 0x10, 0x4B, 0x12, 0xEA, 0x49, 0xE3, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF1, 0x6C, 0x9B, 0x81, 0xDA, 0x80, 0xA2, +0x03, 0xF1, 0x70, 0x9B, 0x81, 0xDA, 0x80, 0xA2, 0x60, 0x9B, 0x62, 0xDA, 0x01, 0x6B, 0x8D, 0xEB, 0x60, 0xC2, 0x01, 0x6A, 0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF0, 0x94, 0x9C, -0x10, 0xF0, 0x23, 0x6B, 0x41, 0xF7, 0x15, 0x4B, +0x10, 0xF0, 0x23, 0x6B, 0x81, 0xF4, 0x05, 0x4B, 0x60, 0xDC, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, -0x64, 0x9B, 0x80, 0xA3, 0x08, 0x6B, 0x8C, 0xEB, +0x68, 0x9B, 0x80, 0xA3, 0x08, 0x6B, 0x8C, 0xEB, 0x1B, 0x23, 0x05, 0x5A, 0x19, 0x60, 0x0C, 0x6C, 0x98, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA9, 0xF6, 0x10, 0x4B, 0x12, 0xEA, 0x69, 0xE2, 0x80, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, 0x0D, 0x23, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF1, 0x68, 0x9B, 0x42, 0x9A, +0x20, 0x6B, 0x03, 0xF1, 0x6C, 0x9B, 0x42, 0x9A, 0xA0, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, -0x6C, 0x9B, 0x60, 0x9B, 0x4B, 0xE3, 0x20, 0xE8, +0x70, 0x9B, 0x60, 0x9B, 0x4B, 0xE3, 0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, 0xFF, 0x6B, 0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF0, 0x94, 0x9C, -0x10, 0xF0, 0x23, 0x6A, 0xA1, 0xF7, 0x15, 0x4A, +0x10, 0xF0, 0x23, 0x6A, 0xE1, 0xF4, 0x05, 0x4A, 0x05, 0x5B, 0x40, 0xDC, 0x00, 0x6A, 0x11, 0x60, 0x0C, 0x6C, 0x98, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF6, 0x10, 0x4A, 0x12, 0xEB, 0x4D, 0xE3, @@ -19379,37 +18982,37 @@ u8 array_mp_8822c_fw_nic[] = { 0x40, 0xC3, 0x00, 0x6A, 0x41, 0xDB, 0x42, 0xDB, 0x01, 0x6A, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, -0x74, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0xE1, 0xF7, -0x15, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x74, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0x21, 0xF5, +0x05, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x50, 0x9A, 0x40, 0xEA, 0x03, 0x22, -0x00, 0x18, 0xAA, 0xC3, 0x05, 0x10, 0x10, 0xF0, -0x23, 0x68, 0xA1, 0xF6, 0x09, 0x48, 0xBA, 0xFE, +0x00, 0x18, 0xF6, 0xC2, 0x05, 0x10, 0x10, 0xF0, +0x23, 0x68, 0xC1, 0xF3, 0x19, 0x48, 0xBA, 0xFE, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x74, 0x9B, 0x10, 0xF0, -0x23, 0x6A, 0x22, 0xF0, 0x11, 0x4A, 0x40, 0xDB, +0x23, 0x6A, 0x61, 0xF5, 0x01, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x50, 0x9A, 0xFF, 0x68, 0x8C, 0xE8, 0x40, 0xEA, 0x04, 0x22, -0x90, 0x67, 0x00, 0x18, 0xBC, 0xC3, 0x06, 0x10, -0x90, 0x67, 0x10, 0xF0, 0x23, 0x68, 0xE1, 0xF6, -0x11, 0x48, 0xBA, 0xFE, 0x05, 0x97, 0x04, 0x90, +0x90, 0x67, 0x00, 0x18, 0x08, 0xC3, 0x06, 0x10, +0x90, 0x67, 0x10, 0xF0, 0x23, 0x68, 0x21, 0xF4, +0x01, 0x48, 0xBA, 0xFE, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, -0x74, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0x62, 0xF0, -0x15, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x74, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0xA1, 0xF5, +0x05, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x50, 0x9A, 0xFF, 0x68, 0x8C, 0xE8, 0x40, 0xEA, 0x04, 0x22, 0x90, 0x67, 0x00, 0x18, -0xD5, 0xC3, 0x06, 0x10, 0x90, 0x67, 0x10, 0xF0, -0x23, 0x68, 0x41, 0xF7, 0x15, 0x48, 0xBA, 0xFE, +0x21, 0xC3, 0x06, 0x10, 0x90, 0x67, 0x10, 0xF0, +0x23, 0x68, 0x81, 0xF4, 0x05, 0x48, 0xBA, 0xFE, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x74, 0x9B, 0x10, 0xF0, -0x23, 0x6A, 0xA2, 0xF0, 0x19, 0x4A, 0x40, 0xDB, +0x23, 0x6A, 0xE1, 0xF5, 0x09, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x50, 0x9A, 0xFF, 0x68, 0x8C, 0xE8, 0x40, 0xEA, 0x04, 0x22, -0x90, 0x67, 0x00, 0x18, 0xED, 0xC3, 0x06, 0x10, -0x90, 0x67, 0x10, 0xF0, 0x23, 0x68, 0xA1, 0xF7, -0x15, 0x48, 0xBA, 0xFE, 0x05, 0x97, 0x04, 0x90, +0x90, 0x67, 0x00, 0x18, 0x39, 0xC3, 0x06, 0x10, +0x90, 0x67, 0x10, 0xF0, 0x23, 0x68, 0xE1, 0xF4, +0x05, 0x48, 0xBA, 0xFE, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x10, 0xF0, 0x23, 0x6A, 0xC0, 0xF2, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x48, 0xDB, 0x10, 0xF0, 0x23, 0x6A, @@ -19419,11 +19022,11 @@ u8 array_mp_8822c_fw_nic[] = { 0xE0, 0xF6, 0x50, 0xDB, 0x10, 0xF0, 0x23, 0x6A, 0xA0, 0xF5, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, -0x21, 0xF5, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x01, 0xF1, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x58, 0xDB, 0x10, 0xF0, 0x23, 0x6A, -0x41, 0xF6, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x81, 0xF3, 0x09, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, -0x21, 0xF5, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x01, 0xF1, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, 0x3C, 0xF6, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, @@ -19477,7 +19080,7 @@ u8 array_mp_8822c_fw_nic[] = { 0x60, 0xF7, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, 0xFB, 0xF1, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x48, 0xDB, 0x10, 0xF0, 0x23, 0x6A, -0x01, 0xF5, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE1, 0xF0, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, 0x5A, 0xF0, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, @@ -19579,8 +19182,8 @@ u8 array_mp_8822c_fw_nic[] = { 0x20, 0x6A, 0xA0, 0xF3, 0x40, 0x9A, 0x91, 0x67, 0x40, 0xEA, 0xC0, 0xF0, 0x5F, 0xA0, 0x4E, 0xE9, 0x1F, 0x29, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, -0x50, 0x9A, 0x40, 0x9A, 0x50, 0x32, 0x00, 0xF5, -0x42, 0x32, 0x03, 0xF6, 0x48, 0xC8, 0x14, 0x10, +0x54, 0x9A, 0x40, 0x9A, 0x50, 0x32, 0x00, 0xF5, +0x42, 0x32, 0x03, 0xF6, 0x44, 0xC8, 0x14, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x51, 0xE4, 0x01, 0x6A, 0x44, 0xEB, 0x63, 0xF3, 0x74, 0xA4, 0x4F, 0xEA, 0x01, 0x6D, 0x6C, 0xEA, @@ -19590,71 +19193,71 @@ u8 array_mp_8822c_fw_nic[] = { 0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x68, 0x03, 0xF1, -0x54, 0x9A, 0x8C, 0xE8, 0x0C, 0x30, 0x0D, 0xD5, +0x58, 0x9A, 0x8C, 0xE8, 0x0C, 0x30, 0x0D, 0xD5, 0x4D, 0xE8, 0x00, 0x69, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF1, 0x58, 0x9A, 0x60, 0xF6, 0x13, 0x6C, +0x03, 0xF1, 0x5C, 0x9A, 0x60, 0xF6, 0x13, 0x6C, 0x80, 0x6D, 0x00, 0xDA, 0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, 0x00, 0x6E, 0x14, 0x6F, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF1, 0x5C, 0x9A, 0x0D, 0x94, +0x20, 0x6A, 0x23, 0xF1, 0x40, 0x9A, 0x0D, 0x94, 0x01, 0x48, 0x60, 0x9A, 0x29, 0xE4, 0x04, 0x49, 0x18, 0x71, 0x60, 0xDA, 0xE3, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x68, 0x23, 0xF1, -0x40, 0x9A, 0x8C, 0xE8, 0x0C, 0x30, 0x0D, 0xD5, +0x44, 0x9A, 0x8C, 0xE8, 0x0C, 0x30, 0x0D, 0xD5, 0x4D, 0xE8, 0x00, 0x69, 0x0D, 0x93, 0x60, 0xF6, 0x13, 0x6C, 0x80, 0x6D, 0x29, 0xE3, 0x60, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, 0x44, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, 0x48, 0x9A, 0x00, 0x6E, 0x14, 0x6F, 0x60, 0xDA, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF1, 0x58, 0x9A, 0x04, 0x49, +0x20, 0x6A, 0x03, 0xF1, 0x5C, 0x9A, 0x04, 0x49, 0x00, 0xDA, 0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, 0x01, 0x48, 0x40, 0xEA, 0x18, 0x71, 0xE3, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x8C, 0xE8, -0x03, 0xF1, 0x54, 0x9A, 0x00, 0x30, 0x0C, 0x30, +0x03, 0xF1, 0x58, 0x9A, 0x00, 0x30, 0x0C, 0x30, 0x0D, 0xD5, 0x4D, 0xE8, 0x00, 0x69, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF1, 0x48, 0x9A, 0x80, 0xF6, +0x20, 0x6A, 0x23, 0xF1, 0x4C, 0x9A, 0x80, 0xF6, 0x1B, 0x6C, 0x80, 0x6D, 0x00, 0xDA, 0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, 0x00, 0x6E, 0x14, 0x6F, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, 0x4C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, 0x50, 0x9A, 0x0D, 0x94, 0x00, 0xF1, 0x00, 0x48, 0x60, 0x9A, 0x29, 0xE4, 0x04, 0x49, 0x14, 0x71, 0x60, 0xDA, 0xE2, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x68, 0x30, 0xF0, -0x20, 0x6A, 0x8C, 0xE8, 0x23, 0xF1, 0x40, 0x9A, +0x20, 0x6A, 0x8C, 0xE8, 0x23, 0xF1, 0x44, 0x9A, 0x00, 0x30, 0x0C, 0x30, 0x0D, 0xD5, 0x4D, 0xE8, 0x00, 0x69, 0x0D, 0x93, 0x80, 0xF6, 0x1B, 0x6C, 0x80, 0x6D, 0x29, 0xE3, 0x60, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF1, 0x4C, 0x9A, 0x00, 0x6E, +0x20, 0x6A, 0x23, 0xF1, 0x50, 0x9A, 0x00, 0x6E, 0x14, 0x6F, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF1, 0x48, 0x9A, 0x04, 0x49, 0x00, 0xDA, +0x23, 0xF1, 0x4C, 0x9A, 0x04, 0x49, 0x00, 0xDA, 0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, 0x00, 0xF1, 0x00, 0x48, 0x40, 0xEA, 0x14, 0x71, 0xE2, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD0, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF1, 0x74, 0x9B, 0xFF, 0x6A, +0x20, 0x6B, 0x03, 0xF1, 0x78, 0x9B, 0xFF, 0x6A, 0x8C, 0xEA, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF1, 0x70, 0x9B, 0x05, 0x67, 0x40, 0xF6, +0x23, 0xF1, 0x74, 0x9B, 0x05, 0x67, 0x40, 0xF6, 0x17, 0x6C, 0x40, 0xDB, 0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, 0x80, 0x6D, 0x00, 0x6E, 0x14, 0x6F, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, 0x54, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, 0x58, 0x9A, 0x09, 0x97, 0x40, 0x9A, 0x40, 0xD8, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF1, 0x58, 0x9A, 0x40, 0x9A, +0x20, 0x6A, 0x23, 0xF1, 0x5C, 0x9A, 0x40, 0x9A, 0x41, 0xD8, 0x08, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF1, 0x60, 0x9B, 0xFF, 0x6A, 0x8C, 0xEA, +0x23, 0xF1, 0x64, 0x9B, 0xFF, 0x6A, 0x8C, 0xEA, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0x9D, -0x23, 0xF1, 0x74, 0x9B, 0x00, 0x6E, 0x14, 0x6F, +0x23, 0xF1, 0x78, 0x9B, 0x00, 0x6E, 0x14, 0x6F, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x81, 0x9D, -0x23, 0xF1, 0x78, 0x9B, 0x80, 0x6D, 0x80, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, 0x70, 0x9B, +0x23, 0xF1, 0x7C, 0x9B, 0x80, 0x6D, 0x80, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, 0x74, 0x9B, 0x40, 0xF6, 0x17, 0x6C, 0x40, 0xDB, 0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, 0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, @@ -19662,15 +19265,15 @@ u8 array_mp_8822c_fw_nic[] = { 0x01, 0x6B, 0xAC, 0xEA, 0x6E, 0xEA, 0x01, 0x5A, 0x58, 0x67, 0x05, 0x5C, 0x48, 0x32, 0x03, 0x61, 0x01, 0x6A, 0x4B, 0xEA, 0x20, 0xE8, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF1, 0xB0, 0x9B, 0x30, 0xF0, -0x20, 0x6E, 0x23, 0xF1, 0xDC, 0x9E, 0x60, 0x9D, +0x20, 0x6B, 0x03, 0xF1, 0xB4, 0x9B, 0x30, 0xF0, +0x20, 0x6E, 0x43, 0xF1, 0xC0, 0x9E, 0x60, 0x9D, 0x00, 0xF7, 0x80, 0x34, 0xCC, 0xEB, 0x6D, 0xEC, 0x80, 0xDD, 0x1F, 0xF7, 0x00, 0x6B, 0x60, 0xF5, 0x80, 0x42, 0x8C, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x09, 0x2B, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF1, 0x60, 0x9B, 0x60, 0xF5, 0x00, 0x4A, +0x43, 0xF1, 0x64, 0x9B, 0x60, 0xF5, 0x00, 0x4A, 0x69, 0xE2, 0x40, 0x9A, 0x20, 0xE8, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF1, 0x44, 0x9A, 0x51, 0xE4, +0x20, 0x6A, 0x43, 0xF1, 0x48, 0x9A, 0x51, 0xE4, 0x40, 0x9C, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, 0xD0, 0x9B, 0xFE, 0x63, 0xC2, 0xF2, 0x10, 0x4B, 0x00, 0xD6, 0xC1, 0x9B, 0x64, 0xAB, @@ -19682,13 +19285,13 @@ u8 array_mp_8822c_fw_nic[] = { 0xA0, 0xAA, 0x1F, 0xF7, 0x00, 0x6A, 0xAC, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x0B, 0x2A, 0x84, 0x34, 0xBD, 0x67, 0x91, 0xE5, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF1, 0x40, 0x9A, 0x60, 0xAC, +0x20, 0x6A, 0x43, 0xF1, 0x44, 0x9A, 0x60, 0xAC, 0x4D, 0xE3, 0x40, 0xA3, 0x0B, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF1, 0x60, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF1, 0x44, 0x9A, 0x6D, 0xE5, +0x20, 0x6A, 0x43, 0xF1, 0x64, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF1, 0x48, 0x9A, 0x6D, 0xE5, 0x55, 0xE5, 0x40, 0xA5, 0xFF, 0x6C, 0x8C, 0xEA, 0x08, 0x6D, 0xAD, 0xEA, 0x3E, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF1, 0x84, 0x9B, 0x91, 0xE5, +0x20, 0x6B, 0x43, 0xF1, 0x88, 0x9B, 0x91, 0xE5, 0x60, 0xA4, 0x08, 0x6D, 0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x34, 0x10, 0x84, 0x32, 0xDD, 0x67, 0x49, 0xE6, 0x60, 0xAA, 0x1F, 0xF7, @@ -19698,133 +19301,122 @@ u8 array_mp_8822c_fw_nic[] = { 0xAC, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x09, 0x2A, 0x84, 0x34, 0xBD, 0x67, 0x91, 0xE5, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xAC, 0x43, 0xF1, -0x40, 0x9A, 0x10, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF1, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF1, 0x44, 0x9A, 0x6D, 0xE5, 0x55, 0xE5, +0x44, 0x9A, 0x10, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF1, 0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF1, 0x48, 0x9A, 0x6D, 0xE5, 0x55, 0xE5, 0x80, 0xA5, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF1, 0x44, 0x9A, 0x4D, 0xE3, 0x80, 0xA3, +0x43, 0xF1, 0x48, 0x9A, 0x4D, 0xE3, 0x80, 0xA3, 0xF7, 0x6A, 0x8C, 0xEA, 0x40, 0xC3, 0x02, 0x63, 0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, 0x01, 0x74, 0xAC, 0xEA, 0x13, 0x60, 0x03, 0x24, 0x02, 0x74, 0x15, 0x60, 0x18, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x03, 0xF6, -0xA0, 0xA3, 0x01, 0x6C, 0x4C, 0xEC, 0x02, 0x6A, -0x4B, 0xEA, 0xAC, 0xEA, 0x8D, 0xEA, 0x03, 0xF6, -0x40, 0xC3, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x2E, 0xF7, 0x5B, 0xC3, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0xAE, 0xF7, 0x54, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF1, 0x48, 0x9A, 0x60, 0xA2, +0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0xE3, 0xF5, +0xBC, 0xA3, 0x01, 0x6C, 0x4C, 0xEC, 0x02, 0x6A, +0x4B, 0xEA, 0xAC, 0xEA, 0x8D, 0xEA, 0xE3, 0xF5, +0x5C, 0xC3, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x2E, 0xF7, 0x57, 0xC3, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xAE, 0xF7, 0x50, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF1, 0x4C, 0x9A, 0x60, 0xA2, 0x10, 0x6A, 0x6C, 0xEA, 0x1C, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x03, 0xF6, -0x80, 0xA2, 0x03, 0xF6, 0xA3, 0xA2, 0x01, 0x6B, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE3, 0xF5, +0x9C, 0xA2, 0xE3, 0xF5, 0xBF, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, 0x7F, 0x6C, 0xAC, 0xEC, 0x7C, 0x33, 0x8D, 0xEB, 0xFF, 0x6C, 0x8C, 0xEB, 0x30, 0xF0, -0x20, 0x6C, 0x43, 0xF1, 0x8C, 0x9C, 0x60, 0xC4, -0x63, 0xF6, 0x7C, 0xA2, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF1, 0x50, 0x9A, 0x60, 0xC2, 0x20, 0xE8, +0x20, 0x6C, 0x43, 0xF1, 0x90, 0x9C, 0x60, 0xC4, +0x63, 0xF6, 0x78, 0xA2, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF1, 0x54, 0x9A, 0x60, 0xC2, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x0B, 0xF2, 0x16, 0x4C, 0x00, 0x6D, 0x07, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x54, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x58, 0x9A, 0x60, 0xA2, 0xFF, 0x6A, 0x6C, 0xEA, 0xFF, 0x72, 0x00, 0x6A, 0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF1, 0x58, 0x9A, 0x60, 0xA2, 0x07, 0x6A, +0x43, 0xF1, 0x5C, 0x9A, 0x60, 0xA2, 0x07, 0x6A, 0x6C, 0xEA, 0x07, 0x6B, 0x6E, 0xEA, 0x01, 0x5A, 0x58, 0x67, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xEC, 0x01, 0x74, 0xAC, 0xEA, 0x03, 0x60, 0x02, 0x74, 0x09, 0x60, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x02, 0x6B, 0x03, 0xF6, -0x6A, 0xC2, 0x15, 0x10, 0x09, 0x2A, 0x30, 0xF0, +0x66, 0xC2, 0x15, 0x10, 0x09, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xC0, 0xF0, -0x65, 0xA2, 0x03, 0xF6, 0x6A, 0xC2, 0x05, 0x10, -0xFF, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x4E, 0xF7, -0x42, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x03, 0xF6, 0x6A, 0xA2, 0x03, 0xF6, -0x80, 0xA2, 0x03, 0xF6, 0x6B, 0xC2, 0x40, 0x6B, -0x8D, 0xEB, 0x03, 0xF6, 0x60, 0xC2, 0x20, 0xE8, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0xB6, 0xC6, +0x65, 0xA2, 0x03, 0xF6, 0x66, 0xC2, 0x05, 0x10, +0xFF, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x2E, 0xF7, +0x5E, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0x03, 0xF6, 0x66, 0xA2, 0xE3, 0xF5, +0x9C, 0xA2, 0x03, 0xF6, 0x67, 0xC2, 0x40, 0x6B, +0x8D, 0xEB, 0xE3, 0xF5, 0x7C, 0xC2, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x02, 0xC6, 0x01, 0x72, 0x11, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x03, 0xF6, 0x80, 0xA2, +0x2B, 0xF1, 0x18, 0x4A, 0xE3, 0xF5, 0x9C, 0xA2, 0x04, 0x6B, 0x8C, 0xEB, 0x08, 0x2B, 0x63, 0xF6, -0x9C, 0xA2, 0x05, 0x5C, 0x04, 0x60, 0x24, 0xF5, -0x78, 0xDA, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, +0x98, 0xA2, 0x05, 0x5C, 0x04, 0x60, 0x24, 0xF5, +0x74, 0xDA, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x01, 0x74, 0x18, 0x60, 0x03, 0x24, 0x02, 0x74, 0x0B, 0x60, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x44, 0xF5, 0x72, 0xAA, -0x01, 0x4B, 0x44, 0xF5, 0x72, 0xCA, 0x20, 0xE8, +0x2B, 0xF1, 0x18, 0x4A, 0x44, 0xF5, 0x6E, 0xAA, +0x01, 0x4B, 0x44, 0xF5, 0x6E, 0xCA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x44, 0xF5, 0x76, 0xAA, 0x01, 0x4B, 0x44, 0xF5, -0x76, 0xCA, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x44, 0xF5, 0x74, 0xAA, -0x01, 0x4B, 0x44, 0xF5, 0x74, 0xCA, 0x03, 0xF6, -0x81, 0xA2, 0x03, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, -0x03, 0xF6, 0x61, 0xC2, 0x20, 0xE8, 0x00, 0x65, -0x01, 0x74, 0x18, 0x60, 0x03, 0x24, 0x02, 0x74, -0x0B, 0x60, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x44, 0xF5, 0x6A, 0xAA, -0x01, 0x4B, 0x44, 0xF5, 0x6A, 0xCA, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x44, 0xF5, 0x6E, 0xAA, 0x01, 0x4B, 0x44, 0xF5, -0x6E, 0xCA, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x44, 0xF5, 0x6C, 0xAA, -0x01, 0x4B, 0x44, 0xF5, 0x6C, 0xCA, 0x03, 0xF6, -0x81, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, -0x03, 0xF6, 0x61, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0x44, 0xF5, 0x72, 0xAA, 0x01, 0x4B, 0x44, 0xF5, +0x72, 0xCA, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0x44, 0xF5, 0x70, 0xAA, +0x01, 0x4B, 0x44, 0xF5, 0x70, 0xCA, 0xE3, 0xF5, +0x9D, 0xA2, 0x03, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0xE3, 0xF5, 0x7D, 0xC2, 0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x5C, 0x9A, 0xFF, 0x6B, 0x6C, 0xEC, 0x00, 0x6D, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, 0xC5, 0x67, 0xFF, 0x6C, 0x40, 0xEA, 0x01, 0x6C, 0x0C, 0x6D, -0x00, 0x18, 0x8B, 0xC6, 0x05, 0x97, 0x03, 0x63, +0x00, 0x18, 0xD7, 0xC5, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, 0x30, 0xF0, 0x20, 0x6F, 0x2B, 0xF1, 0x18, 0x4F, 0xC0, 0xF0, 0x17, 0xA7, 0x01, 0x6B, 0xFF, 0x6A, 0x0C, 0xEB, 0x4C, 0xEB, 0x4C, 0xEC, 0x4C, 0xED, 0x4C, 0xEE, 0x05, 0x23, 0xC0, 0xF0, 0x59, 0xA7, 0xFF, 0x72, 0xA0, 0xF0, 0x04, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x03, 0xF6, -0x01, 0xA2, 0x20, 0x6F, 0xFF, 0x6B, 0x0C, 0xEF, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE3, 0xF5, +0x1D, 0xA2, 0x20, 0x6F, 0xFF, 0x6B, 0x0C, 0xEF, 0x80, 0xF0, 0x15, 0x2F, 0xC0, 0xF0, 0x17, 0xA2, 0x01, 0x6F, 0xEC, 0xE8, 0x6C, 0xE8, 0x53, 0x28, -0x03, 0xF6, 0x00, 0xA2, 0x0C, 0xEF, 0x6C, 0xEF, -0x08, 0x27, 0x03, 0xF6, 0x7E, 0xA2, 0x03, 0x4B, -0x03, 0xF6, 0x79, 0xC2, 0x03, 0xF6, 0x78, 0xC2, -0x08, 0x10, 0x06, 0x6F, 0x03, 0xF6, 0xF9, 0xC2, -0x06, 0x4E, 0x05, 0x6F, 0x03, 0xF6, 0xF8, 0xC2, +0xE3, 0xF5, 0x1C, 0xA2, 0x0C, 0xEF, 0x6C, 0xEF, +0x08, 0x27, 0x03, 0xF6, 0x7A, 0xA2, 0x03, 0x4B, +0x03, 0xF6, 0x75, 0xC2, 0x03, 0xF6, 0x74, 0xC2, +0x08, 0x10, 0x06, 0x6F, 0x03, 0xF6, 0xF5, 0xC2, +0x06, 0x4E, 0x05, 0x6F, 0x03, 0xF6, 0xF4, 0xC2, 0x6C, 0xEE, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x03, 0xF6, 0xF7, 0xA2, 0x03, 0xF6, -0x78, 0xA2, 0xE3, 0xEB, 0x09, 0x61, 0x03, 0xF6, -0x79, 0xA2, 0x03, 0xF6, 0xCC, 0xC2, 0x71, 0xE4, -0xB7, 0xE4, 0x03, 0xF6, 0xBA, 0xC2, 0x09, 0x10, -0x03, 0xF6, 0x99, 0xA2, 0x77, 0xE5, 0xB9, 0xE6, -0x6F, 0xE4, 0x03, 0xF6, 0xCC, 0xC2, 0x03, 0xF6, -0x7A, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x03, 0xF6, 0x79, 0xA2, 0x03, 0xF6, -0x9A, 0xA2, 0x0A, 0x4B, 0x82, 0xEB, 0x02, 0x60, -0x03, 0xF6, 0x7A, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x03, 0xF6, 0x7A, 0xA2, -0x03, 0xF6, 0x8C, 0xA2, 0x23, 0x4B, 0x82, 0xEB, -0x02, 0x60, 0x03, 0xF6, 0x6C, 0xC2, 0x30, 0xF0, +0x18, 0x4A, 0x03, 0xF6, 0xF3, 0xA2, 0x03, 0xF6, +0x74, 0xA2, 0xE3, 0xEB, 0x09, 0x61, 0x03, 0xF6, +0x75, 0xA2, 0x03, 0xF6, 0xC8, 0xC2, 0x71, 0xE4, +0xB7, 0xE4, 0x03, 0xF6, 0xB6, 0xC2, 0x09, 0x10, +0x03, 0xF6, 0x95, 0xA2, 0x77, 0xE5, 0xB9, 0xE6, +0x6F, 0xE4, 0x03, 0xF6, 0xC8, 0xC2, 0x03, 0xF6, +0x76, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0x03, 0xF6, 0x75, 0xA2, 0x03, 0xF6, +0x96, 0xA2, 0x0A, 0x4B, 0x82, 0xEB, 0x02, 0x60, +0x03, 0xF6, 0x76, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0x03, 0xF6, 0x76, 0xA2, +0x03, 0xF6, 0x88, 0xA2, 0x23, 0x4B, 0x82, 0xEB, +0x02, 0x60, 0x03, 0xF6, 0x68, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x03, 0xF6, -0x7A, 0xA2, 0x03, 0xF6, 0x74, 0xCA, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF1, 0x5C, 0x9A, 0x60, 0xA2, +0x76, 0xA2, 0x03, 0xF6, 0x70, 0xCA, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF1, 0x40, 0x9A, 0x60, 0xA2, 0x07, 0x23, 0x60, 0xA2, 0xFF, 0x6A, 0x4C, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0x4E, 0xF7, 0x6C, 0xCA, +0x30, 0xF0, 0x20, 0x6A, 0x4E, 0xF7, 0x68, 0xCA, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xF0, 0x9E, 0xA2, 0x18, 0x6B, 0x8C, 0xEB, -0x10, 0x73, 0x0C, 0x61, 0x03, 0xF6, 0x7E, 0xA2, -0x03, 0x6C, 0x03, 0x4B, 0x03, 0xF6, 0x7A, 0xC2, +0x10, 0x73, 0x0C, 0x61, 0x03, 0xF6, 0x7A, 0xA2, +0x03, 0x6C, 0x03, 0x4B, 0x03, 0xF6, 0x76, 0xC2, 0xC0, 0xF0, 0x61, 0xA2, 0x76, 0x33, 0x8C, 0xEB, -0x03, 0xF6, 0x6C, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF1, 0x40, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0x4E, 0xF7, 0x8C, 0xAC, 0xA0, 0xA2, 0xFF, 0x6B, +0x03, 0xF6, 0x68, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x44, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x4E, 0xF7, 0x88, 0xAC, 0xA0, 0xA2, 0xFF, 0x6B, 0x6C, 0xED, 0x8E, 0xED, 0x02, 0x25, 0x8C, 0xEB, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x03, 0xF6, 0x81, 0xA2, 0x41, 0x6B, +0x18, 0x4A, 0xE3, 0xF5, 0x9D, 0xA2, 0x41, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x02, 0x10, 0x40, 0x6B, -0x0D, 0xEB, 0x03, 0xF6, 0x61, 0xC2, 0x01, 0x90, +0x0D, 0xEB, 0xE3, 0xF5, 0x7D, 0xC2, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, 0xFB, 0x63, 0x09, 0x62, 0x30, 0xF0, 0x20, 0x6B, 0xEB, 0xF1, 0xB6, 0xA3, 0x04, 0x6B, 0xFF, 0x6A, 0xAC, 0xEB, 0x4C, 0xEB, @@ -19847,136 +19439,136 @@ u8 array_mp_8822c_fw_nic[] = { 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x0C, 0x2A, 0x08, 0x93, 0x64, 0x32, 0x7D, 0x67, 0x49, 0xE3, 0x68, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, -0x40, 0x9A, 0x49, 0xE3, 0x60, 0x9A, 0x06, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x44, 0x9A, +0x44, 0x9A, 0x49, 0xE3, 0x60, 0x9A, 0x06, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x48, 0x9A, 0x4D, 0xE3, 0x60, 0x9B, 0x04, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x16, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF1, 0x64, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, +0x63, 0xF1, 0x68, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, 0x40, 0xAB, 0x8C, 0xEA, 0x01, 0x4A, 0x8C, 0xEA, 0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x24, 0xF5, 0x70, 0x9A, 0x01, 0x4B, -0x24, 0xF5, 0x70, 0xDA, 0x00, 0x6A, 0x01, 0x10, +0x18, 0x4A, 0x24, 0xF5, 0x6C, 0x9A, 0x01, 0x4B, +0x24, 0xF5, 0x6C, 0xDA, 0x00, 0x6A, 0x01, 0x10, 0x01, 0x6A, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0xFF, 0x6A, 0x4C, 0xEC, 0x38, 0x2C, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x83, 0xF6, 0x6C, 0xA2, 0x2F, 0x23, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x68, 0x9B, +0x18, 0x4A, 0x83, 0xF6, 0x68, 0xA2, 0x2F, 0x23, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x6C, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, -0x6C, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF1, 0x70, 0x9B, 0x80, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0x9A, 0x63, 0xF1, 0x74, 0x9B, +0x70, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF1, 0x74, 0x9B, 0x80, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0x9A, 0x63, 0xF1, 0x78, 0x9B, 0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, -0x58, 0x9A, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF1, 0x5C, 0x9A, 0x01, 0x6B, 0x80, 0xDA, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x40, 0x9A, +0x5C, 0x9A, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x40, 0x9A, 0x01, 0x6B, 0x80, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x44, 0x9A, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, -0x44, 0x9A, 0x80, 0xDA, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF1, 0x48, 0x9A, 0x80, 0xDA, 0x00, 0x6B, +0x48, 0x9A, 0x80, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x4C, 0x9A, 0x80, 0xDA, 0x00, 0x6B, 0x4A, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, -0x90, 0x9B, 0x02, 0x6D, 0x60, 0xA4, 0x4C, 0xEB, +0x94, 0x9B, 0x02, 0x6D, 0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0x67, 0x2B, 0xF1, 0x18, 0x4A, -0x83, 0xF6, 0x8C, 0xA2, 0x37, 0x24, 0x2B, 0xF1, +0x83, 0xF6, 0x88, 0xA2, 0x37, 0x24, 0x2B, 0xF1, 0x98, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, -0x68, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x81, 0x9A, 0x63, 0xF1, 0x6C, 0x9B, 0x80, 0xDB, +0x6C, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x81, 0x9A, 0x63, 0xF1, 0x70, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0x9A, 0x63, 0xF1, -0x70, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0x9A, 0x63, 0xF1, 0x78, 0x9B, 0x80, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x84, 0x9A, 0x63, 0xF1, -0x7C, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x94, 0x9A, 0x83, 0xF1, 0x6C, 0x9B, 0x80, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x95, 0x9A, 0x83, 0xF1, +0x74, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0x9A, 0x63, 0xF1, 0x7C, 0x9B, 0x80, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x84, 0x9A, 0x83, 0xF1, 0x60, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x96, 0x9A, 0x83, 0xF1, 0x64, 0x9B, 0x80, 0xDB, +0x94, 0x9A, 0x83, 0xF1, 0x70, 0x9B, 0x80, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x95, 0x9A, 0x83, 0xF1, +0x64, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x96, 0x9A, 0x83, 0xF1, 0x68, 0x9B, 0x80, 0xDB, 0x72, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, -0x48, 0x9A, 0x05, 0x10, 0x74, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF1, 0x4C, 0x9A, 0x60, 0xDA, +0x4C, 0x9A, 0x05, 0x10, 0x74, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x50, 0x9A, 0x60, 0xDA, 0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF1, 0x54, 0x9A, 0x80, 0xA2, 0xFF, 0x6A, +0x83, 0xF1, 0x58, 0x9A, 0x80, 0xA2, 0xFF, 0x6A, 0x4C, 0xEC, 0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF1, 0x98, 0x9B, 0x07, 0x10, 0x02, 0x6B, +0x83, 0xF1, 0x9C, 0x9B, 0x07, 0x10, 0x02, 0x6B, 0x8C, 0xEB, 0x0A, 0x23, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF1, 0x9C, 0x9B, 0x60, 0xA4, 0x4C, 0xEB, +0xA3, 0xF1, 0x80, 0x9B, 0x60, 0xA4, 0x4C, 0xEB, 0x01, 0x4B, 0x4C, 0xEB, 0x60, 0xC4, 0x0B, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0x60, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0x64, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, 0x40, 0xAB, 0x8C, 0xEA, 0x01, 0x4A, 0x8C, 0xEA, 0x40, 0xCB, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF1, 0x54, 0x9A, 0x00, 0x6B, +0x20, 0x6A, 0x83, 0xF1, 0x58, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0x0F, 0xF1, 0xBC, 0x9B, 0xE0, 0xF2, 0x40, 0x9A, +0x0F, 0xF1, 0xB8, 0x9B, 0xE0, 0xF2, 0x40, 0x9A, 0x38, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF1, 0x64, 0x9A, 0xFF, 0x6C, 0x10, 0x6D, +0xA3, 0xF1, 0x68, 0x9A, 0xFF, 0x6C, 0x10, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, 0x00, 0x6A, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, -0x58, 0x9A, 0xA3, 0xF1, 0xC8, 0x9B, 0x30, 0xF0, +0x58, 0x9A, 0xA3, 0xF1, 0xCC, 0x9B, 0x30, 0xF0, 0x21, 0x6D, 0x00, 0x6C, 0xF9, 0xF0, 0x08, 0x4D, 0x20, 0x6F, 0x40, 0xEA, 0x0A, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x24, 0xF5, -0x7C, 0x9A, 0x04, 0x6C, 0x8D, 0xEB, 0x24, 0xF5, -0x7C, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x78, 0x9A, 0x04, 0x6C, 0x8D, 0xEB, 0x24, 0xF5, +0x78, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x05, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xCE, 0xF7, 0x27, 0xA2, 0x34, 0x10, -0xD0, 0xF3, 0x45, 0x41, 0x4C, 0x32, 0x09, 0xE2, -0xC1, 0x9A, 0x2C, 0x32, 0x09, 0xE2, 0xA3, 0xF6, -0xF0, 0x9A, 0x06, 0xD2, 0x00, 0x6A, 0xA3, 0xF6, -0xA0, 0x98, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xCE, 0xF7, 0x23, 0xA2, 0x34, 0x10, +0xD0, 0xF3, 0x44, 0x41, 0x4C, 0x32, 0x09, 0xE2, +0xC2, 0x9A, 0x2C, 0x32, 0x09, 0xE2, 0xA3, 0xF6, +0xEC, 0x9A, 0x06, 0xD2, 0x00, 0x6A, 0x83, 0xF6, +0xBC, 0x98, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x21, 0x6B, 0xE0, 0xF2, 0x58, 0x9A, 0x16, 0xF3, 0x08, 0x4B, 0x00, 0x6C, 0xB5, 0xE3, 0x40, 0xEA, 0x01, 0x72, 0x09, 0x61, -0x06, 0x92, 0xA3, 0xF6, 0x70, 0x9A, 0xA3, 0xF6, -0x40, 0x98, 0x49, 0xE3, 0xA3, 0xF6, 0x40, 0xD8, -0x06, 0x10, 0x24, 0xF5, 0x5C, 0x98, 0x04, 0x6B, -0x6D, 0xEA, 0x24, 0xF5, 0x5C, 0xD8, 0x30, 0xF0, +0x06, 0x92, 0xA3, 0xF6, 0x6C, 0x9A, 0x83, 0xF6, +0x5C, 0x98, 0x49, 0xE3, 0x83, 0xF6, 0x5C, 0xD8, +0x06, 0x10, 0x24, 0xF5, 0x58, 0x98, 0x04, 0x6B, +0x6D, 0xEA, 0x24, 0xF5, 0x58, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x05, 0x6C, 0x01, 0x49, 0x40, 0xEA, 0xFF, 0x6A, 0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, -0x83, 0xF6, 0x4F, 0xA0, 0x01, 0x4A, 0x42, 0xE9, -0xC3, 0x61, 0x83, 0xF6, 0x2F, 0xC0, 0x0B, 0x97, +0x83, 0xF6, 0x4B, 0xA0, 0x01, 0x4A, 0x42, 0xE9, +0xC3, 0x61, 0x83, 0xF6, 0x2B, 0xC0, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0x6C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0x70, 0x9A, 0xFF, 0x6C, 0x02, 0x6D, 0x40, 0xA3, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x69, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x6F, 0xF0, -0x04, 0x48, 0x0F, 0xF1, 0x1C, 0x49, 0x30, 0xF0, +0x00, 0x48, 0x0F, 0xF1, 0x18, 0x49, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xA8, 0xC1, 0x98, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x08, 0x48, 0x40, 0xEA, 0x2A, 0xE8, 0xF4, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xCE, 0xF7, 0x27, 0xA2, 0x35, 0x10, -0xD0, 0xF3, 0x45, 0x41, 0x4C, 0x32, 0x09, 0xE2, -0xC1, 0x9A, 0x2C, 0x32, 0x09, 0xE2, 0xA3, 0xF6, -0xF0, 0x9A, 0x06, 0xD2, 0x00, 0x6A, 0xA3, 0xF6, -0xA0, 0x98, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xCE, 0xF7, 0x23, 0xA2, 0x35, 0x10, +0xD0, 0xF3, 0x44, 0x41, 0x4C, 0x32, 0x09, 0xE2, +0xC2, 0x9A, 0x2C, 0x32, 0x09, 0xE2, 0xA3, 0xF6, +0xEC, 0x9A, 0x06, 0xD2, 0x00, 0x6A, 0x83, 0xF6, +0xBC, 0x98, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x21, 0x6B, 0xE0, 0xF2, 0x58, 0x9A, 0x16, 0xF3, 0x08, 0x4B, 0x00, 0x6C, 0xB5, 0xE3, 0x40, 0xEA, 0x01, 0x72, 0x12, 0x61, 0x06, 0x92, 0x05, 0x6C, 0x01, 0x49, 0xA3, 0xF6, -0x70, 0x9A, 0xA3, 0xF6, 0x40, 0x98, 0x49, 0xE3, -0xA3, 0xF6, 0x40, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0x6C, 0x9A, 0x83, 0xF6, 0x5C, 0x98, 0x49, 0xE3, +0x83, 0xF6, 0x5C, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x40, 0xEA, 0xFF, 0x6A, -0x4C, 0xE9, 0x07, 0x10, 0x24, 0xF5, 0x5C, 0x98, -0x10, 0x6B, 0x6D, 0xEA, 0x24, 0xF5, 0x5C, 0xD8, +0x4C, 0xE9, 0x07, 0x10, 0x24, 0xF5, 0x58, 0x98, +0x10, 0x6B, 0x6D, 0xEA, 0x24, 0xF5, 0x58, 0xD8, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, -0x18, 0x48, 0x83, 0xF6, 0x4F, 0xA0, 0x07, 0x4A, +0x18, 0x48, 0x83, 0xF6, 0x4B, 0xA0, 0x07, 0x4A, 0x42, 0xE9, 0xC2, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x68, 0xCE, 0xF7, 0x27, 0xC2, +0x30, 0xF0, 0x20, 0x68, 0xCE, 0xF7, 0x23, 0xC2, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0xB1, 0x67, 0xE3, 0xF6, 0x08, 0x6C, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0xA3, 0xF1, 0xD0, 0x9B, 0xB1, 0x67, +0x44, 0x98, 0xA3, 0xF1, 0xD4, 0x9B, 0xB1, 0x67, 0x01, 0xF4, 0x0C, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF1, 0x34, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF1, 0x38, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xD1, 0x67, 0x83, 0xF5, 0x14, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, -0x58, 0x9A, 0x45, 0xE1, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF1, 0x5C, 0x9A, 0x2E, 0xEA, 0xEB, 0x2A, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0xC0, 0x9B, +0x5C, 0x9A, 0x45, 0xE1, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF1, 0x40, 0x9A, 0x2E, 0xEA, 0xEB, 0x2A, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x01, 0xF4, 0x0C, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xE3, 0xF6, 0x08, 0x6C, @@ -19986,30 +19578,30 @@ u8 array_mp_8822c_fw_nic[] = { 0x30, 0xF0, 0x20, 0x6A, 0x0B, 0xF2, 0x68, 0xA2, 0x01, 0x6A, 0x00, 0x68, 0x6C, 0xEA, 0x11, 0x2A, 0x18, 0x10, 0x18, 0x6D, 0xB8, 0xE8, 0x49, 0xE0, -0x24, 0xF5, 0x84, 0xA2, 0x30, 0xF0, 0x20, 0x6B, -0x2F, 0xF1, 0x00, 0x4B, 0x01, 0x48, 0x12, 0xED, -0xB5, 0xE3, 0x00, 0x18, 0xBA, 0xC5, 0xFF, 0x6A, +0x24, 0xF5, 0x80, 0xA2, 0x30, 0xF0, 0x20, 0x6B, +0x0F, 0xF1, 0x1C, 0x4B, 0x01, 0x48, 0x12, 0xED, +0xB5, 0xE3, 0x00, 0x18, 0x06, 0xC5, 0xFF, 0x6A, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x24, 0xF5, 0x60, 0xA2, 0x63, 0xE8, +0x18, 0x4A, 0x04, 0xF5, 0x7C, 0xA2, 0x63, 0xE8, 0xE8, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xC0, 0xF0, 0x90, 0xA2, 0x02, 0x6B, -0x8C, 0xEB, 0x08, 0x23, 0x04, 0xF5, 0x9D, 0xA2, -0x30, 0xF0, 0x20, 0x6A, 0x0F, 0xF6, 0x03, 0x4A, +0x8C, 0xEB, 0x08, 0x23, 0x04, 0xF5, 0x99, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0xEF, 0xF5, 0x1F, 0x4A, 0x00, 0x6B, 0x2F, 0x10, 0x30, 0xF0, 0x20, 0x68, -0x0F, 0xF4, 0x00, 0x48, 0x00, 0x69, 0x2E, 0x10, +0xEF, 0xF3, 0x1C, 0x48, 0x00, 0x69, 0x2E, 0x10, 0xFF, 0xF7, 0xDF, 0xA2, 0xA0, 0xA2, 0xC0, 0x36, 0xC0, 0x36, 0x00, 0xF6, 0xA0, 0x35, 0xCD, 0xED, 0xFF, 0xF7, 0xDD, 0xA2, 0xCD, 0xED, 0xFF, 0xF7, 0xDE, 0xA2, 0xC0, 0x36, 0xCD, 0xED, 0x30, 0xF0, -0x20, 0x6E, 0xC3, 0xF1, 0xC4, 0x9E, 0xA0, 0xDE, +0x20, 0x6E, 0xC3, 0xF1, 0xC8, 0x9E, 0xA0, 0xDE, 0xA2, 0xA2, 0xC1, 0xA2, 0x06, 0x4A, 0xA0, 0x35, 0xCD, 0xED, 0x1F, 0x6E, 0x6C, 0xEE, 0x00, 0xF6, 0xC0, 0x36, 0xCD, 0xED, 0x30, 0xF0, 0x20, 0x6E, -0xC3, 0xF1, 0xC8, 0x9E, 0x01, 0x4B, 0xCD, 0xED, -0x30, 0xF0, 0x20, 0x6E, 0xC3, 0xF1, 0xCC, 0x9E, +0xC3, 0xF1, 0xCC, 0x9E, 0x01, 0x4B, 0xCD, 0xED, +0x30, 0xF0, 0x20, 0x6E, 0xC3, 0xF1, 0xD0, 0x9E, 0xA0, 0xDE, 0xFF, 0x6D, 0x6C, 0xED, 0x83, 0xED, 0xD3, 0x61, 0xCC, 0x17, 0x91, 0x67, 0xB0, 0x67, -0x01, 0x49, 0x00, 0x18, 0x1A, 0xC6, 0x40, 0x71, +0x01, 0x49, 0x00, 0x18, 0x66, 0xC5, 0x40, 0x71, 0x08, 0x48, 0xF8, 0x61, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, @@ -20031,9 +19623,9 @@ u8 array_mp_8822c_fw_nic[] = { 0x30, 0xF0, 0x20, 0x6A, 0x0B, 0xF2, 0x41, 0xA2, 0xFF, 0x6B, 0x56, 0x32, 0x8E, 0xEA, 0x6C, 0xEA, 0x01, 0x5A, 0x58, 0x67, 0x6C, 0xEA, 0x20, 0xE8, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x0E, 0xC9, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x44, 0xC8, 0x00, 0x6B, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0xCE, 0xF7, 0x63, 0xA2, 0x01, 0x6A, 0x4C, 0xEB, +0xAE, 0xF7, 0x7F, 0xA2, 0x01, 0x6A, 0x4C, 0xEB, 0x05, 0x97, 0x43, 0x67, 0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0xC0, 0xF0, 0x89, 0xA3, 0x04, 0x6A, 0x8C, 0xEA, @@ -20048,1811 +19640,1827 @@ u8 array_mp_8822c_fw_nic[] = { 0x4B, 0xEA, 0x7D, 0x67, 0x53, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x6C, 0x00, 0x18, -0x06, 0xDE, 0x05, 0x97, 0x30, 0xF0, 0x20, 0x6B, -0xE8, 0xF6, 0x10, 0x4B, 0x00, 0x6C, 0x86, 0xDB, -0x87, 0xDB, 0x44, 0xDB, 0x45, 0xDB, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x30, 0xF0, 0x20, 0x6F, 0x24, 0x6A, 0x04, 0x6C, -0x03, 0x6D, 0x02, 0x6E, 0xE8, 0xF6, 0x10, 0x4F, -0x04, 0xD2, 0x80, 0x18, 0xB9, 0x69, 0x07, 0x97, -0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0xE8, 0xF6, 0x10, 0x4A, 0x00, 0x6B, 0xFF, 0x69, -0x68, 0xC2, 0x8C, 0xE9, 0x00, 0x18, 0x20, 0xC9, -0x28, 0x22, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, -0x18, 0x48, 0xC0, 0xF0, 0x4A, 0xA0, 0xC0, 0xF0, -0x6B, 0xA0, 0x58, 0xEB, 0x12, 0xEA, 0x83, 0xF6, -0x49, 0xC0, 0x00, 0x18, 0xF3, 0xC8, 0x03, 0x22, -0x83, 0xF6, 0x09, 0xA0, 0x05, 0x10, 0xC0, 0xF0, -0x4B, 0xA0, 0x01, 0x72, 0x12, 0x61, 0x01, 0x68, -0x30, 0xF0, 0x20, 0x6A, 0x02, 0x58, 0xCE, 0xF7, -0x02, 0xC2, 0x08, 0x61, 0x91, 0x67, 0x00, 0x18, -0x7B, 0xE8, 0x91, 0x67, 0xB0, 0x67, 0x00, 0x18, -0x66, 0xEA, 0x03, 0x10, 0x91, 0x67, 0x00, 0x18, -0x8C, 0xE8, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x0E, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xE8, 0xF6, 0x10, 0x4A, -0x6A, 0xA2, 0x01, 0x4B, 0x6A, 0xC2, 0x30, 0xF0, -0x20, 0x6B, 0xCE, 0xF7, 0x62, 0xA3, 0x01, 0x73, -0x0E, 0x61, 0x1B, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0xE8, 0xF6, 0x10, 0x4A, 0x69, 0xA2, 0x01, 0x4B, -0x69, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0xCE, 0xF7, -0x62, 0xA3, 0x01, 0x73, 0x0E, 0x61, 0x68, 0xA2, -0x01, 0x4B, 0x68, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0xE8, 0xF6, 0x58, 0xA2, 0x0A, 0x5A, 0x00, 0x6A, -0x05, 0x61, 0x00, 0x18, 0x4B, 0xC9, 0x00, 0x6A, -0x01, 0x10, 0x01, 0x6A, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, 0x12, 0x2C, -0x10, 0xF0, 0x23, 0x6C, 0x47, 0xF7, 0x05, 0x4C, -0x00, 0x18, 0x63, 0xE7, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x83, 0xF6, 0x8B, 0xA2, -0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x83, 0xF6, -0x6B, 0xC2, 0x29, 0x10, 0x30, 0xF0, 0x20, 0x68, -0x2B, 0xF1, 0x18, 0x48, 0xC0, 0xF0, 0x89, 0xA0, -0x04, 0x6B, 0x8C, 0xEB, 0x4C, 0xEB, 0x1F, 0x23, -0x30, 0xF0, 0x20, 0x6A, 0xE8, 0xF6, 0x10, 0x4A, -0x66, 0xA2, 0xC0, 0xF0, 0xCC, 0xA0, 0x10, 0xF0, -0x23, 0x6C, 0x01, 0x4B, 0x66, 0xC2, 0x0A, 0x6B, -0x78, 0xEE, 0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0x47, 0xF7, -0x05, 0x4C, 0x00, 0x6D, 0x01, 0x6F, 0x12, 0xEE, -0x40, 0xEA, 0x83, 0xF6, 0x6B, 0xA0, 0x01, 0x6A, -0x6D, 0xEA, 0x83, 0xF6, 0x4B, 0xC0, 0x07, 0x97, -0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x68, -0x8C, 0xE8, 0x00, 0x18, 0xC4, 0xEB, 0x08, 0x20, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, -0x00, 0x6D, 0xFF, 0x6C, 0xC5, 0x67, 0x40, 0xEA, -0x01, 0x6C, 0x04, 0x6D, 0x00, 0x18, 0x8B, 0xC6, -0x04, 0x6C, 0x80, 0x18, 0x6A, 0x72, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF1, 0x70, 0x9B, 0x63, 0xF6, -0x9C, 0x9A, 0x8C, 0xEB, 0x04, 0x73, 0x0C, 0x61, -0x03, 0xF6, 0x63, 0xA2, 0x04, 0x6C, 0x8C, 0xEB, -0x07, 0x23, 0x01, 0x6B, 0x63, 0xF6, 0x7E, 0xC2, -0x01, 0x6C, 0x00, 0x6D, 0x00, 0x18, 0x2C, 0xC9, -0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x69, 0x2B, 0xF1, 0x18, 0x49, -0x40, 0xF1, 0x76, 0xA1, 0x01, 0x6A, 0x6C, 0xEA, -0x20, 0x22, 0x00, 0x18, 0x2A, 0xD7, 0x1B, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x54, 0x9A, -0x40, 0xA2, 0x15, 0x2A, 0x43, 0xF6, 0x6C, 0xA1, -0x40, 0xF1, 0x57, 0xA1, 0x43, 0xEB, 0x11, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x58, 0x9A, -0x00, 0xA2, 0xFF, 0x6A, 0x4C, 0xE8, 0x07, 0x28, -0x06, 0x6C, 0x01, 0x6D, 0x80, 0x18, 0x20, 0x01, -0x43, 0xF6, 0x0C, 0xC1, 0x02, 0x10, 0x00, 0x6A, -0x01, 0x10, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xA4, 0x41, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x7C, 0x9A, -0xFF, 0xF7, 0x1F, 0x6A, 0x80, 0xAB, 0x8C, 0xEA, -0x02, 0xF4, 0x03, 0x6C, 0x4C, 0xEC, 0x80, 0xCB, -0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0xCE, 0xF7, -0x27, 0xA2, 0x35, 0x10, 0xD0, 0xF3, 0x45, 0x41, -0x4C, 0x32, 0x09, 0xE2, 0xC1, 0x9A, 0x2C, 0x32, -0x09, 0xE2, 0xA3, 0xF6, 0xF0, 0x9A, 0x06, 0xD2, -0x00, 0x6A, 0xA3, 0xF6, 0xA0, 0x98, 0x04, 0xD2, -0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x21, 0x6B, 0xE0, 0xF2, 0x58, 0x9A, 0x16, 0xF3, -0x08, 0x4B, 0x00, 0x6C, 0xB5, 0xE3, 0x40, 0xEA, -0x01, 0x72, 0x12, 0x61, 0x06, 0x92, 0x05, 0x6C, -0x01, 0x49, 0xA3, 0xF6, 0x70, 0x9A, 0xA3, 0xF6, -0x40, 0x98, 0x49, 0xE3, 0xA3, 0xF6, 0x40, 0xD8, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, -0x40, 0xEA, 0xFF, 0x6A, 0x4C, 0xE9, 0x07, 0x10, -0x24, 0xF5, 0x5C, 0x98, 0x08, 0x6B, 0x6D, 0xEA, -0x24, 0xF5, 0x5C, 0xD8, 0x09, 0x10, 0x30, 0xF0, -0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0x83, 0xF6, -0x4F, 0xA0, 0x08, 0x4A, 0x42, 0xE9, 0xC2, 0x61, -0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, -0x83, 0xF6, 0x2F, 0xC0, 0x00, 0x18, 0x87, 0xD5, -0x01, 0x2A, 0xFF, 0x17, 0x00, 0x18, 0x19, 0xC8, -0xE4, 0xF4, 0x98, 0xA8, 0xFF, 0xF7, 0x1F, 0x69, -0x00, 0x6D, 0xFF, 0x4C, 0x2C, 0xEC, 0x00, 0x18, -0xE3, 0xE9, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, -0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF1, -0x94, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, 0x44, 0x9A, -0x04, 0x6C, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF1, 0x48, 0x9A, 0x60, 0xDA, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF1, 0x6C, 0x9A, 0x40, 0x9B, -0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0xE4, 0xF4, 0x7C, 0x98, 0xE3, 0xF1, 0x50, 0x9A, -0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF5, -0x60, 0x98, 0xE3, 0xF1, 0x54, 0x9A, 0x60, 0xDA, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, 0x58, 0x9A, -0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0xE8, 0xF6, 0x4C, 0xA2, 0x1E, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x04, 0xF5, 0x6C, 0x98, 0xE3, 0xF1, -0x5C, 0x9A, 0xFF, 0x6C, 0x80, 0x6D, 0x60, 0xDA, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x40, 0x9A, -0xAB, 0xED, 0x40, 0xAA, 0x4C, 0xE9, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF2, 0x44, 0x9A, 0x20, 0xCA, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, 0x74, 0x9A, -0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, -0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF5, -0x98, 0xA2, 0x03, 0xF2, 0x68, 0x9B, 0x80, 0xC3, -0x04, 0xF5, 0x79, 0xA2, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF2, 0x4C, 0x9A, 0x60, 0xC2, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x6B, 0x8C, 0xEB, 0x01, 0x6A, 0x60, 0x2B, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x50, 0x9A, -0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, -0x54, 0x9A, 0x4C, 0xEB, 0x00, 0x6A, 0x54, 0x23, -0x30, 0xF0, 0x20, 0x6A, 0xCE, 0xF7, 0x44, 0xA2, -0x01, 0x72, 0x02, 0x61, 0x00, 0x18, 0x03, 0xC8, -0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, -0x01, 0x6C, 0x00, 0x18, 0xC2, 0xE9, 0x83, 0xF6, -0x4E, 0xA0, 0x00, 0x69, 0x83, 0xF6, 0x4F, 0xC0, -0x83, 0xF6, 0x5C, 0x98, 0x83, 0xF6, 0x3C, 0xD8, -0xA3, 0xF6, 0x40, 0xD8, 0x00, 0x6A, 0x83, 0xF6, -0x4E, 0xC0, 0x00, 0x18, 0x26, 0xC8, 0x00, 0x18, -0xDE, 0xC9, 0x00, 0x18, 0x5E, 0xC8, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF6, 0xB8, 0x98, 0x83, 0xF6, -0xD0, 0x98, 0x83, 0xF6, 0xF4, 0x98, 0xE0, 0xF2, -0x58, 0x9A, 0x04, 0xD1, 0x05, 0xD1, 0x91, 0x67, -0x40, 0xEA, 0x01, 0x72, 0x06, 0x60, 0x24, 0xF5, -0x5C, 0x98, 0x20, 0x6B, 0x6D, 0xEA, 0x24, 0xF5, -0x5C, 0xD8, 0x00, 0x18, 0xB6, 0xC8, 0x01, 0x6C, -0x00, 0x18, 0xBD, 0xC7, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF2, 0x70, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0x03, 0xF2, 0x98, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x00, 0x6B, 0x83, 0xF6, 0x6E, 0xC2, -0x00, 0x6B, 0x83, 0xF6, 0x7C, 0xDA, 0x01, 0x6A, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xDD, 0x63, 0x45, 0x62, -0x44, 0xD1, 0x43, 0xD0, 0x30, 0xF0, 0x20, 0x6D, -0x1D, 0x04, 0x22, 0xF2, 0x0C, 0x4D, 0x80, 0x6E, -0x00, 0x18, 0xEC, 0xD7, 0x30, 0xF0, 0x20, 0x6D, -0x06, 0x04, 0xC2, 0xF1, 0x10, 0x4D, 0x5C, 0x6E, -0x00, 0x18, 0xEC, 0xD7, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF0, 0x74, 0x9A, 0x80, 0x6D, 0xFF, 0x6A, -0x80, 0xA3, 0xAB, 0xED, 0x8C, 0xEA, 0xAC, 0xEA, -0x30, 0xF0, 0x20, 0x6C, 0xE8, 0xF6, 0x4C, 0xC4, -0xE8, 0xF6, 0x4C, 0xA4, 0x04, 0x22, 0x80, 0xA3, -0x7F, 0x6A, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0xEE, 0xF7, 0x04, 0x4C, 0x1D, 0x05, -0x80, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x00, 0x6B, 0x83, 0xF6, -0x6E, 0xC2, 0x00, 0x6B, 0x83, 0xF6, 0x7C, 0xDA, -0x3E, 0x02, 0x1E, 0x00, 0x40, 0xD2, 0x23, 0x67, -0x00, 0x6A, 0xFF, 0xF7, 0xBC, 0x98, 0xE0, 0x98, -0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x21, 0x6E, 0xE0, 0xF2, 0x58, 0x9A, -0x16, 0xF3, 0x08, 0x4E, 0x00, 0x6C, 0x39, 0xE6, -0x40, 0xEA, 0x0A, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x24, 0xF5, 0x7C, 0x9A, -0x01, 0x6C, 0x8D, 0xEB, 0x24, 0xF5, 0x7C, 0xDA, -0x40, 0x98, 0x14, 0x6C, 0x08, 0x48, 0x3E, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, -0x40, 0xEA, 0x40, 0x92, 0x4A, 0xE8, 0x03, 0x60, -0x3E, 0x92, 0x45, 0xE1, 0xD5, 0x17, 0x30, 0xF0, -0x20, 0x68, 0x1D, 0x02, 0x06, 0x01, 0x6F, 0xF0, -0x04, 0x48, 0x41, 0xD2, 0x40, 0x99, 0xFF, 0xF7, -0x1F, 0x6C, 0x01, 0x6D, 0x40, 0xD8, 0x4C, 0xEC, -0xAB, 0xED, 0x80, 0x18, 0x35, 0x25, 0x41, 0xD8, -0x41, 0x92, 0x04, 0x49, 0x08, 0x48, 0x4A, 0xE9, -0x58, 0x67, 0x3E, 0xD2, 0xEF, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF2, 0x54, 0x9A, 0x38, 0x6C, -0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, 0x2B, 0xF1, -0x18, 0x48, 0xE3, 0xF7, 0x44, 0xD8, 0x00, 0x18, -0x25, 0xD7, 0xE4, 0xF4, 0x58, 0xC8, 0xE4, 0xF4, -0xB8, 0xA8, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, -0x5C, 0x9A, 0x83, 0xF6, 0xF4, 0x98, 0xBC, 0x35, -0x30, 0xF0, 0x21, 0x6E, 0x55, 0xE5, 0x19, 0xF1, -0x08, 0x4E, 0x02, 0xF0, 0x01, 0x5F, 0x83, 0xF6, -0xB0, 0xD8, 0x83, 0xF6, 0xD8, 0xD8, 0x1F, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x40, 0x9A, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, 0x6C, 0x9B, -0xC0, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, -0x44, 0x9A, 0x01, 0x6D, 0xE0, 0xDA, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF2, 0x88, 0x9A, 0x40, 0x9C, -0x6D, 0xEA, 0x40, 0xDC, 0xA3, 0xF3, 0x40, 0x98, -0x04, 0x6C, 0x6D, 0xEA, 0xA3, 0xF3, 0x40, 0xD8, -0x80, 0x18, 0x20, 0x01, 0xFF, 0x17, 0x3E, 0x91, -0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, 0x58, 0x9A, -0x04, 0xD1, 0x05, 0xD1, 0x00, 0x6C, 0x40, 0xEA, -0x06, 0x2A, 0x24, 0xF5, 0x5C, 0x98, 0x02, 0x6B, -0x6D, 0xEA, 0x24, 0xF5, 0x5C, 0xD8, 0x30, 0xF0, -0x20, 0x6A, 0x0B, 0xF2, 0x68, 0xA2, 0x01, 0x6A, -0x00, 0x68, 0x6C, 0xEA, 0x11, 0x2A, 0x18, 0x10, -0x18, 0x6D, 0xB8, 0xE8, 0x49, 0xE0, 0x24, 0xF5, -0x84, 0xA2, 0x30, 0xF0, 0x20, 0x6B, 0x2F, 0xF1, -0x00, 0x4B, 0x01, 0x48, 0x12, 0xED, 0xB5, 0xE3, -0x00, 0x18, 0xA2, 0xC5, 0xFF, 0x6A, 0x4C, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x01, 0x74, 0x18, 0x60, +0x03, 0x24, 0x02, 0x74, 0x0B, 0x60, 0x2B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x24, 0xF5, 0x60, 0xA2, 0x63, 0xE8, 0xE8, 0x61, +0x44, 0xF5, 0x66, 0xAA, 0x01, 0x4B, 0x44, 0xF5, +0x66, 0xCA, 0x21, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0x44, 0xF5, 0x6A, 0xAA, +0x01, 0x4B, 0x44, 0xF5, 0x6A, 0xCA, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x83, 0xF6, 0x6C, 0xA2, 0x12, 0x23, 0xC0, 0xF0, -0x70, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, 0x0D, 0x22, -0x30, 0xF0, 0x20, 0x68, 0xEF, 0xF1, 0x00, 0x48, -0x00, 0x69, 0x91, 0x67, 0xB0, 0x67, 0x01, 0x49, -0x00, 0x18, 0xA2, 0xC5, 0x04, 0x71, 0x18, 0x48, -0xF8, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0xC0, 0xF0, 0x90, 0xA2, 0x02, 0x6B, -0x8C, 0xEB, 0x49, 0x23, 0x04, 0xF5, 0xDD, 0xA2, -0x00, 0x6C, 0x30, 0xF0, 0x20, 0x6A, 0x0F, 0xF6, -0x00, 0x4A, 0x01, 0x6B, 0xA4, 0x67, 0x3B, 0x10, -0x30, 0xF0, 0x20, 0x68, 0x03, 0xF1, 0x14, 0x98, -0x1F, 0x6F, 0x8C, 0xEF, 0x00, 0xF6, 0xE0, 0x37, -0x0D, 0xEF, 0x30, 0xF0, 0x20, 0x68, 0xC3, 0xF1, -0x0C, 0x98, 0xE0, 0xD8, 0x30, 0xF0, 0x20, 0x6F, -0xC3, 0xF1, 0xEC, 0x9F, 0xE0, 0x9F, 0x00, 0x57, -0x0B, 0x60, 0xFF, 0x68, 0x01, 0x4B, 0x0A, 0x6F, -0x0C, 0xEB, 0xFB, 0xEB, 0x01, 0x2F, 0xE5, 0xE8, -0x10, 0xEF, 0x0C, 0xEF, 0xEF, 0x2F, 0x19, 0x25, -0x30, 0xF0, 0x20, 0x6D, 0xC3, 0xF1, 0xA4, 0x9D, -0xA0, 0x9D, 0xA2, 0x37, 0xA0, 0xC2, 0x00, 0xF6, -0xA2, 0x35, 0xA3, 0xC2, 0x30, 0xF0, 0x20, 0x6D, -0xC3, 0xF1, 0xAC, 0x9D, 0xE1, 0xC2, 0xE2, 0x37, -0xE2, 0xC2, 0xE0, 0xAD, 0xFF, 0xF7, 0x1F, 0x6D, -0xEC, 0xED, 0xA4, 0xC2, 0xA2, 0x35, 0xA5, 0xC2, -0x01, 0x6D, 0x01, 0x4C, 0x06, 0x4A, 0xFF, 0x6F, -0x8C, 0xEF, 0xC3, 0xEF, 0xC1, 0x61, 0x30, 0xF0, -0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0x6E, -0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x40, 0xEA, -0x01, 0x6D, 0x23, 0xF3, 0x00, 0x6C, 0xAB, 0xED, -0x30, 0xF0, 0x20, 0x69, 0x80, 0x18, 0x35, 0x25, -0x2B, 0xF1, 0x18, 0x49, 0x04, 0xF5, 0x50, 0xD9, -0xC0, 0xF3, 0x44, 0x98, 0x0A, 0x6E, 0x03, 0xF3, -0x00, 0x6C, 0x0F, 0x6D, 0x40, 0xEA, 0x01, 0x6D, -0x23, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x80, 0x18, -0x35, 0x25, 0x04, 0xF5, 0x54, 0xD9, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, -0x08, 0x6E, 0x40, 0xEA, 0x00, 0x18, 0x87, 0xD5, -0x45, 0x97, 0x44, 0x91, 0x43, 0x90, 0x23, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x00, 0x6A, 0x04, 0xD2, -0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0xE0, 0xF2, 0x58, 0x9A, 0xA3, 0xF1, -0xA8, 0x9B, 0x30, 0xF0, 0x21, 0x6E, 0x00, 0x6C, -0xF9, 0xF0, 0x08, 0x4E, 0x20, 0x6F, 0x40, 0xEA, -0x0A, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x24, 0xF5, 0x7C, 0x9A, 0x01, 0x6C, -0x8D, 0xEB, 0x24, 0xF5, 0x7C, 0xDA, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x83, 0xF6, 0x6D, 0xA2, 0x05, 0x23, -0x00, 0x6B, 0x83, 0xF6, 0x6D, 0xC2, 0x00, 0x18, -0x7F, 0xCA, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, -0x6C, 0x9A, 0xFD, 0x6A, 0x30, 0xF0, 0x20, 0x68, -0x80, 0xA3, 0x0F, 0xF4, 0x00, 0x48, 0x00, 0x69, -0x8C, 0xEA, 0x40, 0xC3, 0x00, 0x6C, 0x00, 0x18, -0xBD, 0xC7, 0x00, 0x6C, 0x00, 0x18, 0xC2, 0xE9, -0x91, 0x67, 0xB0, 0x67, 0x01, 0x49, 0x00, 0x18, -0x04, 0xC6, 0x40, 0x71, 0x08, 0x48, 0xF8, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, 0x50, 0x9A, -0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0xE4, 0xF4, 0x7C, 0xDA, 0x30, 0xF0, -0x20, 0x6B, 0xE3, 0xF1, 0x74, 0x9B, 0x60, 0x9B, -0x04, 0xF5, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF2, 0x70, 0x9B, 0x60, 0x9B, 0x04, 0xF5, -0x64, 0xDA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, -0x74, 0x9B, 0x60, 0x9B, 0x04, 0xF5, 0x68, 0xDA, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, 0x78, 0x9B, -0x60, 0xA3, 0x04, 0xF5, 0x7A, 0xC2, 0x30, 0xF0, -0x20, 0x6B, 0xE3, 0xF1, 0x7C, 0x9B, 0x60, 0x9B, -0x04, 0xF5, 0x6C, 0xDA, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF2, 0x68, 0x9B, 0x60, 0xA3, 0x04, 0xF5, -0x78, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF2, -0x6C, 0x9B, 0x60, 0xA3, 0x04, 0xF5, 0x79, 0xC2, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, -0x00, 0x18, 0x25, 0xD7, 0x01, 0xE2, 0x30, 0xF0, -0x20, 0x6B, 0x1C, 0x30, 0x03, 0xF2, 0x1C, 0x4B, -0x60, 0x9B, 0x04, 0xD0, 0xB0, 0x67, 0x30, 0xF0, -0x20, 0x68, 0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, -0x21, 0x69, 0x92, 0xF5, 0x06, 0x49, 0x30, 0x4D, -0x75, 0xE5, 0x91, 0x67, 0x02, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6E, 0x04, 0x95, 0x03, 0xF2, -0x1C, 0x4E, 0xC0, 0x9E, 0x80, 0xF2, 0x4C, 0x98, -0x87, 0x41, 0x32, 0x4D, 0xD5, 0xE5, 0x10, 0x4C, -0x02, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x04, 0x95, 0x03, 0xF2, 0x1C, 0x4B, 0x60, 0x9B, -0x80, 0xF2, 0x4C, 0x98, 0x34, 0x4D, 0x30, 0xF0, -0x21, 0x6C, 0x75, 0xE5, 0x52, 0xF6, 0x00, 0x4C, -0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x04, 0x96, 0x03, 0xF2, 0x1C, 0x4B, 0x60, 0x9B, -0x80, 0xF2, 0x4C, 0x98, 0x38, 0x4E, 0x87, 0x41, -0x75, 0xE6, 0x04, 0xD6, 0x13, 0x4C, 0xA0, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0x96, -0x23, 0xF2, 0xBC, 0x9B, 0x80, 0xF2, 0x4C, 0x98, -0x87, 0x41, 0xB5, 0xE6, 0x0B, 0x4C, 0x01, 0x6E, -0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, 0x00, 0x18, -0x25, 0xD7, 0x01, 0xE2, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF2, 0xA0, 0x9A, 0x1C, 0x30, 0x30, 0xF0, -0x20, 0x6C, 0xB5, 0xE0, 0x4F, 0xF6, 0x14, 0x4C, -0x10, 0x6E, 0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x24, 0xF5, 0x61, 0xA2, -0x7C, 0x33, 0x83, 0xF6, 0x74, 0xDA, 0x05, 0x97, -0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x68, -0x8C, 0xE8, 0x00, 0x18, 0x25, 0xD7, 0x01, 0xE2, -0x1C, 0x34, 0x30, 0x4C, 0x80, 0x18, 0xDD, 0x07, -0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xFF, 0x68, -0x8C, 0xE8, 0x03, 0xF6, 0x80, 0xA2, 0x03, 0x6B, -0x6B, 0xEB, 0x41, 0x6D, 0x8C, 0xEB, 0xAB, 0xED, -0xAC, 0xEB, 0x03, 0xF6, 0xA1, 0xA2, 0x03, 0xF6, -0x60, 0xC2, 0x11, 0x6B, 0x00, 0x6C, 0x6B, 0xEB, -0x03, 0xF6, 0x8D, 0xC2, 0x03, 0xF6, 0x85, 0xC2, -0xAC, 0xEB, 0x03, 0xF6, 0x8E, 0xC2, 0x90, 0x67, -0x03, 0xF6, 0x61, 0xC2, 0x00, 0x18, 0x8C, 0xE8, -0x90, 0x67, 0x00, 0x18, 0x85, 0xE8, 0x90, 0x67, -0x00, 0x18, 0xA1, 0xE8, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xF2, 0x63, 0x1B, 0x62, -0x1A, 0xD1, 0x19, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0xFF, 0x69, 0x2B, 0xF1, 0x18, 0x48, 0x30, 0xF0, -0x20, 0x6A, 0x8C, 0xE9, 0x80, 0xF3, 0x5C, 0x9A, -0xC0, 0xF0, 0x9F, 0xA0, 0x40, 0xEA, 0x01, 0x72, -0x4E, 0x61, 0x03, 0xF6, 0x61, 0xA0, 0x09, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0x03, 0xF6, 0x41, 0xC0, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, -0xFF, 0x6C, 0x6F, 0x6D, 0x2C, 0x6E, 0x40, 0xEA, -0x0C, 0x04, 0x00, 0x6D, 0x30, 0x6E, 0x00, 0x18, -0xE7, 0xD7, 0xA0, 0xF0, 0x4A, 0xA0, 0x7D, 0x67, -0x40, 0xF0, 0x2C, 0xC3, 0x40, 0xF0, 0x48, 0xCB, -0x01, 0x6A, 0x40, 0xF0, 0x4A, 0xC3, 0x08, 0x6A, -0x40, 0xF0, 0x4B, 0xC3, 0x10, 0xF0, 0x23, 0x6A, -0xE6, 0xF3, 0x1D, 0x4A, 0x0C, 0xD2, 0x10, 0xF0, -0x23, 0x6A, 0x83, 0xF3, 0x19, 0x4A, 0x0D, 0xD2, -0x04, 0x04, 0x00, 0x6A, 0x10, 0x03, 0x05, 0x10, -0x59, 0xE3, 0xC0, 0xA6, 0x55, 0xE4, 0x01, 0x4A, -0xC0, 0xC5, 0x20, 0x5A, 0xF9, 0x61, 0x0C, 0x94, -0x0D, 0x95, 0x0E, 0x96, 0x0F, 0x97, 0x00, 0x18, -0xC4, 0xE5, 0x11, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x03, 0xF6, 0x81, 0xA2, -0x02, 0x6B, 0x0E, 0x6D, 0x8D, 0xEB, 0x03, 0xF6, -0x61, 0xC2, 0x01, 0x6C, 0x00, 0x18, 0x8B, 0xC6, -0x0E, 0x6C, 0x80, 0x18, 0x6A, 0x72, 0x1B, 0x97, -0x1A, 0x91, 0x19, 0x90, 0x0E, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, -0x80, 0x18, 0xCF, 0x05, 0x03, 0xF6, 0x43, 0xA0, -0x01, 0x6C, 0xF0, 0x6D, 0x06, 0xD2, 0x00, 0x18, -0x8B, 0xC6, 0x00, 0x18, 0xC0, 0xC9, 0x80, 0xF0, -0x05, 0x22, 0x00, 0x18, 0x30, 0xEA, 0x83, 0xF6, -0x4C, 0xA0, 0x64, 0x22, 0x00, 0x18, 0x4B, 0xCB, -0x5C, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x7D, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x30, 0xF0, 0x21, 0x6C, 0xFC, 0xF7, 0x1C, 0x4C, -0xBD, 0x67, 0xA0, 0xDC, 0x9A, 0xB8, 0x00, 0x65, -0xBB, 0xB8, 0x00, 0x65, 0x00, 0x18, 0xC7, 0xE2, -0x30, 0xF0, 0x21, 0x69, 0xDC, 0xF7, 0x0C, 0x49, -0x00, 0x99, 0x32, 0xE8, 0x01, 0x99, 0x30, 0xE8, -0x42, 0x99, 0x63, 0x99, 0x84, 0x99, 0xA5, 0x99, -0xC6, 0x99, 0xE7, 0x99, 0x08, 0x99, 0x18, 0x65, -0x09, 0x99, 0x58, 0xB9, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x30, 0xF0, 0x21, 0x68, 0xDC, 0xF7, -0x0C, 0x48, 0x2A, 0x98, 0x1A, 0xB8, 0x00, 0x65, -0x58, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x79, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x30, 0xF0, 0x21, 0x69, 0x9C, 0xF7, 0x0C, 0x49, -0x09, 0xD9, 0x12, 0xE8, 0x00, 0xD9, 0x10, 0xE8, -0x01, 0xD9, 0x42, 0xD9, 0x63, 0xD9, 0x84, 0xD9, -0xA5, 0xD9, 0xC6, 0xD9, 0xE7, 0xD9, 0x18, 0x67, -0x08, 0xD9, 0x1F, 0x67, 0x0B, 0xD9, 0x1D, 0x67, -0x0C, 0xD9, 0x1F, 0xF7, 0x32, 0x68, 0x46, 0xF4, -0x16, 0x48, 0xFF, 0xF7, 0x1C, 0xD9, 0x30, 0xF0, -0x21, 0x68, 0x9C, 0xF7, 0x0C, 0x48, 0x3B, 0xB8, -0x00, 0x65, 0x2A, 0xD8, 0x1A, 0xB8, 0x00, 0x65, -0x00, 0x18, 0xA0, 0xE2, 0x00, 0x6C, 0x00, 0x18, -0x48, 0xCA, 0x10, 0x10, 0x00, 0x6C, 0x00, 0x18, -0xC2, 0xE9, 0x00, 0x6C, 0x00, 0x18, 0xBD, 0xC7, -0x00, 0x18, 0xC7, 0xE2, 0x00, 0x18, 0xA0, 0xE2, -0x01, 0x6C, 0x00, 0x18, 0xBD, 0xC7, 0x01, 0x6C, -0x00, 0x18, 0xC2, 0xE9, 0x00, 0x6A, 0x82, 0x67, -0xA2, 0x67, 0x01, 0x6E, 0xE2, 0x67, 0x04, 0xD2, -0x80, 0x18, 0xB9, 0x69, 0x06, 0x95, 0x01, 0x6C, -0x00, 0x18, 0x8B, 0xC6, 0x0B, 0x97, 0x0A, 0x91, -0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, -0xC5, 0x67, 0xFF, 0x6C, 0x40, 0xEA, 0x04, 0x6D, -0x01, 0x6C, 0x00, 0x18, 0x8B, 0xC6, 0x30, 0xF0, -0x20, 0x6A, 0xEE, 0xF4, 0x16, 0xA2, 0x90, 0x67, -0x80, 0x18, 0x03, 0x71, 0x40, 0x6B, 0x4D, 0xEB, -0xFF, 0x6D, 0x90, 0x67, 0x6C, 0xED, 0x80, 0x18, -0xF6, 0x70, 0x04, 0x6C, 0x80, 0x18, 0x6A, 0x72, -0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0x2E, 0x6E, -0xFF, 0x6C, 0x6F, 0x6D, 0x40, 0xEA, 0x02, 0x6D, -0x01, 0x6C, 0x00, 0x18, 0x8B, 0xC6, 0x30, 0xF0, -0x20, 0x6A, 0xEE, 0xF4, 0x16, 0xA2, 0x90, 0x67, -0x80, 0x18, 0x03, 0x71, 0xBF, 0x6D, 0x90, 0x67, -0x4C, 0xED, 0x80, 0x18, 0xF6, 0x70, 0x02, 0x6C, -0x80, 0x18, 0x6A, 0x72, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x2B, 0xF1, 0x18, 0x48, 0x03, 0xF6, 0x61, 0xA0, -0x08, 0x6A, 0xFF, 0x69, 0x6C, 0xEA, 0x2C, 0xEA, -0x2C, 0xEC, 0x05, 0x2A, 0x01, 0x6C, 0x0C, 0x6D, -0x00, 0x18, 0x8B, 0xC6, 0x44, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x40, 0xF4, 0x5C, 0x9A, 0x01, 0x6D, -0x40, 0xEA, 0x01, 0x6C, 0x04, 0x6D, 0x00, 0x18, -0x8B, 0xC6, 0xA0, 0xF0, 0x7A, 0xA0, 0x01, 0x6A, -0x4C, 0xEB, 0x2C, 0xEB, 0x05, 0x2B, 0xA3, 0xF3, -0x7C, 0xA0, 0x6C, 0xEA, 0x2C, 0xEA, 0x2C, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0xA0, 0xF0, 0x9A, 0xA2, 0x04, 0x6B, 0x6C, 0xEC, -0x06, 0x2C, 0xA3, 0xF3, 0x5C, 0xA2, 0x6C, 0xEA, -0xFF, 0x6B, 0x6C, 0xEA, 0x1D, 0x22, 0x30, 0xF0, -0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0xA3, 0xF3, -0x3E, 0xA0, 0x91, 0x67, 0x80, 0x18, 0x03, 0x71, -0x80, 0x6D, 0xAB, 0xED, 0x4D, 0xED, 0xFF, 0x6A, -0x4C, 0xED, 0x91, 0x67, 0x80, 0x18, 0xF6, 0x70, -0xA3, 0xF3, 0x1E, 0xA0, 0x90, 0x67, 0x80, 0x18, -0x03, 0x71, 0x20, 0x6D, 0x4D, 0xED, 0xFF, 0x6A, -0x90, 0x67, 0x4C, 0xED, 0x80, 0x18, 0xF6, 0x70, -0x04, 0x6C, 0x80, 0x18, 0x6A, 0x72, 0x30, 0xF0, -0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, -0xFF, 0x6C, 0xC5, 0x67, 0x40, 0xEA, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6D, 0x2B, 0xF1, 0x18, 0x4D, -0x03, 0xF6, 0xC1, 0xA5, 0x04, 0x6B, 0xFF, 0x6A, -0xCC, 0xEB, 0x4C, 0xEB, 0x4C, 0xEC, 0x0C, 0x2B, -0x63, 0xF6, 0x7F, 0xA5, 0x09, 0x23, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF2, 0xA4, 0x9B, 0x60, 0xA5, -0x4C, 0xEB, 0x01, 0x4B, 0x4C, 0xEB, 0x60, 0xC5, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x03, 0xF6, 0xA1, 0xA2, 0x04, 0x6B, 0xAC, 0xEB, -0x0E, 0x2B, 0x63, 0xF6, 0x5F, 0xA2, 0x0B, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x5C, 0x9A, -0x03, 0x6D, 0x40, 0xEA, 0x01, 0x6C, 0x04, 0x6D, -0x00, 0x18, 0x8B, 0xC6, 0x25, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x40, 0xF4, 0x5C, 0x9A, 0x00, 0x6D, -0x30, 0xF0, 0x20, 0x69, 0x40, 0xEA, 0x2B, 0xF1, -0x18, 0x49, 0x0C, 0x6D, 0x01, 0x6C, 0x00, 0x18, -0x8B, 0xC6, 0xA3, 0xF3, 0x1E, 0xA1, 0x90, 0x67, -0x80, 0x18, 0x03, 0x71, 0x7F, 0x6D, 0x90, 0x67, -0x4C, 0xED, 0x80, 0x18, 0xF6, 0x70, 0xA3, 0xF3, -0x1E, 0xA1, 0x90, 0x67, 0x80, 0x18, 0x03, 0x71, -0xDF, 0x6D, 0x90, 0x67, 0x4C, 0xED, 0x80, 0x18, -0xF6, 0x70, 0x0C, 0x6C, 0x80, 0x18, 0x6A, 0x72, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, -0x00, 0x6D, 0xFF, 0x6C, 0xC5, 0x67, 0x40, 0xEA, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x04, 0x67, 0xA4, 0xA0, -0x82, 0xA4, 0x00, 0x18, 0xB5, 0xD3, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xA8, 0xC3, 0xA0, 0xA0, 0xF2, -0x54, 0x9A, 0x01, 0x6D, 0x04, 0x6F, 0x40, 0xEA, -0x22, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xA0, -0x40, 0xF4, 0x58, 0x9A, 0xC4, 0xA0, 0xB1, 0x67, -0x40, 0xEA, 0x82, 0xA0, 0x00, 0x18, 0x18, 0xD3, -0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, -0x18, 0x4B, 0x44, 0xF5, 0x90, 0xAB, 0x01, 0x4C, -0x44, 0xF5, 0x90, 0xCB, 0x09, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x44, 0xF5, -0x88, 0xAB, 0x01, 0x4C, 0x44, 0xF5, 0x88, 0xCB, -0xA2, 0x67, 0x91, 0x67, 0x00, 0x18, 0x35, 0xF1, -0xA4, 0xA0, 0x91, 0x67, 0x00, 0x18, 0x44, 0xF1, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x01, 0x6A, -0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0x0A, 0xC9, 0x20, 0x2A, 0x00, 0x18, -0x2A, 0xD7, 0x3A, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF1, 0x54, 0x9A, 0x40, 0xA2, 0x34, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x8F, 0xF6, 0x70, 0xA2, -0x01, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, -0x2B, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, -0x48, 0x9A, 0x60, 0xA2, 0x02, 0x6A, 0x6C, 0xEA, -0x23, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, -0x4C, 0x9A, 0x40, 0xA2, 0x1D, 0x2A, 0x00, 0x18, -0x2F, 0xD7, 0x1A, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xF1, 0x60, 0xA2, -0xA0, 0xF1, 0x41, 0xA2, 0x6E, 0xEA, 0x10, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x50, 0x9A, -0x60, 0xA2, 0x0F, 0x6A, 0x6C, 0xEA, 0x08, 0x2A, -0x00, 0x18, 0x8F, 0xF3, 0x05, 0x2A, 0x00, 0x18, -0x8F, 0xF3, 0x01, 0x5A, 0x58, 0x67, 0x01, 0x10, -0x00, 0x6A, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x2E, 0xF7, 0x5B, 0xA2, 0x02, 0x22, 0x08, 0x72, -0x06, 0x61, 0x00, 0x18, 0x1F, 0xCD, 0x01, 0x72, -0x02, 0x61, 0x00, 0x18, 0x26, 0xCC, 0x05, 0x97, +0x44, 0xF5, 0x68, 0xAA, 0x01, 0x4B, 0x44, 0xF5, +0x68, 0xCA, 0xE3, 0xF5, 0x9D, 0xA2, 0x02, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0xE3, 0xF5, 0x7D, 0xC2, +0x63, 0xF6, 0x5B, 0xA2, 0x04, 0x22, 0x00, 0x6C, +0x02, 0x6D, 0x00, 0x18, 0x62, 0xC8, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x74, 0x9B, -0x10, 0xF0, 0x23, 0x6A, 0x26, 0xF5, 0x0D, 0x4A, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x03, 0xF6, 0x80, 0xA2, 0x01, 0x6B, -0xFF, 0x6D, 0x6C, 0xEC, 0x20, 0x24, 0xA0, 0xF0, -0x9A, 0xA2, 0x6C, 0xEC, 0xAC, 0xEC, 0x05, 0x2C, -0xA3, 0xF3, 0x5C, 0xA2, 0x6C, 0xEA, 0xAC, 0xEA, -0x13, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0xA0, 0xF0, 0x9A, 0xA2, 0x02, 0x6B, -0x6C, 0xEC, 0x06, 0x2C, 0xA3, 0xF3, 0x5C, 0xA2, -0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x04, 0x22, -0x80, 0x18, 0xDF, 0x71, 0x01, 0x72, 0x05, 0x61, -0x00, 0x18, 0x42, 0xCD, 0x02, 0x10, 0x00, 0x18, -0xC0, 0xC9, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, -0x74, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0x26, 0xF5, -0x0F, 0x4A, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x2B, 0xF1, 0x18, 0x48, 0xE0, 0xF0, 0x7A, 0xA0, -0x01, 0x6A, 0xFF, 0x69, 0x4C, 0xEB, 0x0D, 0x23, -0x64, 0xF5, 0x7D, 0xA0, 0x6C, 0xEA, 0x2C, 0xEA, -0x47, 0x2A, 0x63, 0xF6, 0x5C, 0xA0, 0x44, 0x2A, -0x83, 0xF3, 0x5C, 0xA0, 0x01, 0x5A, 0x58, 0x67, -0x40, 0x10, 0x00, 0x18, 0xB6, 0xC6, 0x01, 0x72, -0x3B, 0x61, 0x00, 0x18, 0x97, 0xE5, 0x01, 0x72, -0x37, 0x61, 0x03, 0xF6, 0x65, 0xA0, 0x03, 0x6A, -0x6C, 0xEA, 0x32, 0x2A, 0x63, 0xF6, 0x5C, 0xA0, -0x2F, 0x2A, 0x04, 0x6A, 0x6C, 0xEA, 0x2C, 0x2A, -0x10, 0x6A, 0x6C, 0xEA, 0x29, 0x2A, 0x03, 0xF6, -0x60, 0xA0, 0x20, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, -0x23, 0x22, 0x83, 0xF3, 0x5C, 0xA0, 0x20, 0x2A, -0x00, 0x18, 0x18, 0xC9, 0x1D, 0x2A, 0x30, 0xF0, -0x21, 0x6A, 0x12, 0xF5, 0x64, 0xA2, 0x03, 0x6A, -0x6C, 0xEA, 0x03, 0x72, 0x15, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF2, 0x74, 0x9A, 0x02, 0x6A, -0x80, 0xA3, 0x8C, 0xEA, 0x0D, 0x2A, 0x40, 0xA3, -0x01, 0x6C, 0x4C, 0xEC, 0x01, 0x6A, 0x09, 0x24, -0x80, 0xA3, 0xFC, 0x6B, 0x00, 0x6A, 0x8C, 0xEB, -0x80, 0x73, 0x03, 0x60, 0x01, 0x6A, 0x01, 0x10, -0x00, 0x6A, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0x24, 0x67, 0x2E, 0xF7, 0x9A, 0xA3, 0x02, 0x6B, -0xFF, 0x6A, 0x8C, 0xEB, 0x4C, 0xED, 0x4C, 0xEB, -0x4C, 0xE9, 0x08, 0xD5, 0x02, 0x6A, 0x75, 0x23, -0x30, 0xF0, 0x20, 0x6A, 0x08, 0xF7, 0x57, 0xA2, -0x2E, 0xEA, 0x5F, 0x22, 0x00, 0x6A, 0x7D, 0x67, -0x30, 0xF0, 0x20, 0x6C, 0x05, 0xD2, 0x58, 0xC3, -0x48, 0xCB, 0x08, 0xF7, 0x56, 0xA4, 0x27, 0x2A, -0x30, 0xF0, 0x20, 0x6B, 0x08, 0xF7, 0x55, 0xA3, -0x22, 0x2A, 0x30, 0xF0, 0x20, 0x6C, 0x08, 0xF7, -0x54, 0xA4, 0x1D, 0x2A, 0x30, 0xF0, 0x21, 0x68, -0x12, 0xF5, 0x08, 0x48, 0x90, 0x67, 0x05, 0x05, -0x80, 0x18, 0x3F, 0x58, 0x90, 0x67, 0x04, 0x05, -0x80, 0x18, 0x2D, 0x58, 0x7D, 0x67, 0x50, 0xA3, -0x30, 0xF0, 0x20, 0x6C, 0x08, 0xF7, 0x56, 0xC4, -0x54, 0xA3, 0x75, 0xA3, 0x30, 0xF0, 0x20, 0x6C, -0x4D, 0xEB, 0x08, 0xF7, 0x75, 0xC4, 0x30, 0xF0, -0x20, 0x6B, 0x08, 0xF7, 0x54, 0xC3, 0x03, 0x21, -0x01, 0x71, 0x12, 0x60, 0x26, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x08, 0xF7, 0xB5, 0xA2, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x21, 0x6C, 0x08, 0xF7, -0xD6, 0xA2, 0x30, 0xF0, 0x20, 0x6A, 0x12, 0xF5, -0x08, 0x4C, 0x08, 0xF7, 0xF4, 0xA2, 0x13, 0x10, -0x30, 0xF0, 0x21, 0x68, 0x12, 0xF5, 0x08, 0x48, -0x90, 0x67, 0x80, 0x18, 0x1F, 0x57, 0x07, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, -0x32, 0x6C, 0x40, 0xEA, 0xF1, 0x17, 0x01, 0x6D, -0x90, 0x67, 0xC5, 0x67, 0xE5, 0x67, 0x80, 0x18, -0xE0, 0x5D, 0x30, 0xF0, 0x20, 0x6A, 0x08, 0xF7, -0x37, 0xC2, 0x08, 0x94, 0x00, 0x6A, 0x0D, 0x24, -0x30, 0xF0, 0x20, 0x6B, 0x08, 0xF7, 0x56, 0xC3, -0x30, 0xF0, 0x20, 0x6B, 0x08, 0xF7, 0x55, 0xC3, -0x30, 0xF0, 0x20, 0x6B, 0x08, 0xF7, 0x54, 0xC3, -0x00, 0x6A, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, -0x07, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x80, 0xF2, 0x48, 0x98, 0x30, 0xF0, 0x20, 0x6C, -0x2E, 0xF7, 0x18, 0x4C, 0x00, 0x6D, 0x80, 0x6E, -0x40, 0xEA, 0x80, 0xF2, 0x48, 0x98, 0x30, 0xF0, -0x20, 0x6C, 0x2C, 0x6E, 0x6F, 0xF6, 0x04, 0x4C, -0x00, 0x6D, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, -0x18, 0x48, 0x40, 0xEA, 0x00, 0x18, 0xF8, 0xC8, -0x01, 0x6A, 0x03, 0xF6, 0x4A, 0xC0, 0x03, 0xF6, -0x4B, 0xC0, 0x0C, 0x6A, 0x02, 0x69, 0x03, 0xF6, -0x4C, 0xC0, 0x00, 0x6C, 0x06, 0x6A, 0x03, 0xF6, -0x54, 0xC8, 0xA0, 0xF0, 0x3D, 0xC0, 0xA4, 0x67, -0x00, 0x18, 0x8B, 0xC6, 0x02, 0x6C, 0x0C, 0x6D, -0x00, 0x18, 0x8B, 0xC6, 0x01, 0x6C, 0x0C, 0x6D, -0x00, 0x18, 0x8B, 0xC6, 0x30, 0xF0, 0x20, 0x6C, -0x4E, 0xF7, 0x0A, 0x4C, 0x00, 0x6D, 0x00, 0x18, -0xC3, 0xE9, 0xC0, 0xF0, 0x64, 0xA0, 0x0F, 0x6A, -0xC0, 0xF0, 0x43, 0xC0, 0x01, 0x6A, 0x6C, 0xEA, -0x28, 0x6B, 0x6D, 0xEA, 0xC0, 0xF0, 0x44, 0xC0, -0x07, 0x6A, 0xC0, 0xF0, 0x45, 0xC0, 0x03, 0xF6, -0x5E, 0xA0, 0xC0, 0xF0, 0x22, 0xC0, 0x30, 0xF0, -0x20, 0x69, 0x03, 0x4A, 0x03, 0xF6, 0x5A, 0xC0, -0x0C, 0x6A, 0x03, 0xF6, 0x5B, 0xC0, 0x40, 0xF4, -0x5C, 0x99, 0x00, 0x6C, 0xA4, 0x67, 0x40, 0xEA, -0x40, 0xF4, 0x5C, 0x99, 0x01, 0x6C, 0x00, 0x6D, -0x40, 0xEA, 0x40, 0xF4, 0x5C, 0x99, 0x02, 0x6C, -0x00, 0x6D, 0x40, 0xEA, 0x40, 0xF4, 0x5C, 0x99, -0x03, 0x6C, 0x00, 0x6D, 0x40, 0xEA, 0x40, 0xF4, -0x5C, 0x99, 0x04, 0x6C, 0x00, 0x6D, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x78, 0x9A, -0xF8, 0x6A, 0x00, 0x6D, 0x80, 0xA3, 0xC5, 0x67, -0x00, 0x69, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0xFF, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF6, -0x74, 0xA0, 0x63, 0xF1, 0x40, 0x9A, 0x83, 0xF3, -0x3C, 0xC0, 0xFF, 0x6C, 0x60, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF2, 0x7C, 0x9A, 0x08, 0x6D, -0xAB, 0xED, 0x40, 0xA3, 0x80, 0xF6, 0x10, 0x6E, -0x8C, 0xEA, 0xAC, 0xEA, 0x05, 0x6D, 0xAD, 0xEA, -0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0x40, 0xC3, -0xCE, 0xF7, 0x04, 0x4C, 0x00, 0x6D, 0x00, 0x18, -0xE7, 0xD7, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, -0x40, 0x9A, 0x20, 0x6B, 0x10, 0xF0, 0x23, 0x6D, -0x60, 0xC2, 0x0C, 0x6A, 0x63, 0xF6, 0x5C, 0xC0, -0x03, 0xF6, 0x43, 0xC0, 0x63, 0xF6, 0x3D, 0xC0, -0x63, 0xF6, 0x3F, 0xC0, 0x04, 0x6C, 0x29, 0xF4, -0x09, 0x4D, 0x00, 0x18, 0x27, 0xC3, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0x00, 0x6C, 0x00, 0x18, 0x65, 0xDD, 0x05, 0x97, +0x30, 0xF0, 0x20, 0x6B, 0xE8, 0xF6, 0x10, 0x4B, +0x00, 0x6C, 0x86, 0xDB, 0x87, 0xDB, 0x44, 0xDB, +0x45, 0xDB, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x30, 0xF0, 0x20, 0x6F, +0x24, 0x6A, 0x04, 0x6C, 0x03, 0x6D, 0x02, 0x6E, +0xE8, 0xF6, 0x10, 0x4F, 0x04, 0xD2, 0x80, 0x18, +0xDD, 0x67, 0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0x2E, 0xF7, 0xB8, 0xA3, -0x04, 0x6B, 0xFF, 0x6A, 0xAC, 0xEB, 0x4C, 0xEB, -0x4C, 0xEC, 0x06, 0x23, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF2, 0x44, 0x9A, 0x00, 0x6B, 0x60, 0xC2, -0x02, 0x6D, 0x00, 0x18, 0x78, 0xE2, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF2, 0x48, 0x9A, 0x04, 0x69, -0x30, 0xF0, 0x20, 0x68, 0x20, 0xDA, 0x2B, 0xF1, -0x18, 0x48, 0xC0, 0xF0, 0xC4, 0xA0, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, 0xFF, 0x6C, -0x59, 0x4C, 0x00, 0x6D, 0xC6, 0x36, 0x40, 0xEA, -0x03, 0xF6, 0x40, 0xA0, 0x07, 0x97, 0x4D, 0xE9, -0x03, 0xF6, 0x20, 0xC0, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x29, 0x22, -0x05, 0x5C, 0x1D, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x88, 0x34, 0x42, 0xF1, 0x0C, 0x4A, 0x89, 0xE2, -0x40, 0x9A, 0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x01, 0x6C, 0x63, 0xF2, 0xAC, 0x9A, 0x0D, 0x10, -0x04, 0x6C, 0x0F, 0x6D, 0x0A, 0x10, 0x04, 0x6C, -0xF0, 0x6D, 0x07, 0x10, 0x04, 0x6C, 0x01, 0xF7, -0x00, 0x6D, 0x03, 0x10, 0x04, 0x6C, 0x1E, 0xF0, -0x00, 0x6D, 0x80, 0x18, 0xED, 0x77, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF2, 0x78, 0x9A, 0xFF, 0x6C, -0x07, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, -0x25, 0x10, 0x05, 0x5C, 0x1D, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0x88, 0x34, 0x62, 0xF1, 0x00, 0x4A, -0x89, 0xE2, 0x40, 0x9A, 0x00, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x01, 0x6C, 0x63, 0xF2, 0xAC, 0x9A, -0x0D, 0x10, 0x04, 0x6C, 0x0F, 0x6D, 0x0A, 0x10, -0x04, 0x6C, 0xF0, 0x6D, 0x07, 0x10, 0x04, 0x6C, -0x01, 0xF7, 0x00, 0x6D, 0x03, 0x10, 0x04, 0x6C, -0x1E, 0xF0, 0x00, 0x6D, 0x80, 0x18, 0x1E, 0x78, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x78, 0x9A, -0xF8, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, -0xAC, 0xEA, 0x27, 0x22, 0x05, 0x5C, 0x4B, 0x60, -0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, 0x62, 0xF1, -0x14, 0x4A, 0x89, 0xE2, 0x40, 0x9A, 0x00, 0xEA, -0x00, 0x6C, 0x08, 0x6D, 0x17, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x04, 0x6C, 0xA3, 0xF1, 0xB8, 0x9A, -0x11, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x6C, -0x63, 0xF2, 0xB0, 0x9A, 0x0B, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x04, 0x6C, 0x63, 0xF2, 0xB4, 0x9A, -0x05, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, -0xB8, 0x9A, 0x04, 0x6C, 0x80, 0x18, 0xED, 0x77, -0x26, 0x10, 0x05, 0x5C, 0x24, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0x88, 0x34, 0x82, 0xF1, 0x08, 0x4A, -0x89, 0xE2, 0x40, 0x9A, 0x00, 0xEA, 0x00, 0x6C, -0x08, 0x6D, 0x17, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x04, 0x6C, 0xA3, 0xF1, 0xB8, 0x9A, 0x11, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x04, 0x6C, 0x63, 0xF2, -0xB0, 0x9A, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x04, 0x6C, 0x63, 0xF2, 0xB4, 0x9A, 0x05, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0xB8, 0x9A, -0x04, 0x6C, 0x80, 0x18, 0x1E, 0x78, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0xFF, 0x6A, 0x63, 0xF2, 0x7C, 0x9B, 0x4C, 0xEC, -0x04, 0xD4, 0x20, 0xA3, 0x30, 0xF0, 0x20, 0x68, -0xFF, 0x6C, 0x4C, 0xE9, 0xA0, 0xF2, 0x50, 0x98, -0xA4, 0x67, 0x2D, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, 0x40, 0xEA, -0x06, 0x2A, 0xA0, 0xF2, 0x50, 0x98, 0xFF, 0x6C, -0xB1, 0x67, 0x2D, 0x6E, 0x0C, 0x10, 0x04, 0x94, -0x01, 0x6D, 0x00, 0x18, 0x8A, 0xCE, 0x00, 0x18, -0xDA, 0xEB, 0x07, 0x2A, 0xA0, 0xF2, 0x50, 0x98, -0xFF, 0x6C, 0xB1, 0x67, 0x5B, 0x6E, 0x40, 0xEA, -0x07, 0x10, 0x01, 0x6C, 0x00, 0x6D, 0x00, 0x18, -0x8B, 0xC6, 0x00, 0x6C, 0x80, 0x18, 0x6A, 0x72, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x25, 0x67, 0x30, 0xF0, -0x20, 0x6D, 0x2B, 0xF1, 0x18, 0x4D, 0x06, 0x67, -0x03, 0xF6, 0xC1, 0xA5, 0x03, 0x6B, 0xFF, 0x6A, -0xCC, 0xEB, 0x4C, 0xEB, 0x4C, 0xEC, 0x4C, 0xE9, -0x4C, 0xE8, 0xE0, 0xF0, 0x06, 0x2B, 0x03, 0xF6, -0x43, 0xA5, 0x8E, 0xEA, 0xE0, 0xF0, 0x01, 0x22, -0x0D, 0x5C, 0xC0, 0xF0, 0x1E, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0x88, 0x34, 0x82, 0xF1, 0x1C, 0x4A, -0x89, 0xE2, 0x40, 0x9A, 0x00, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x2E, 0xF7, 0x5B, 0xA2, 0x0E, 0x72, -0x03, 0x61, 0x90, 0x67, 0x00, 0x18, 0x99, 0xCC, -0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF7, 0x5B, 0xA2, -0x04, 0x2A, 0x01, 0x6C, 0xB0, 0x67, 0x00, 0x18, -0xA6, 0xC9, 0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF7, -0x5B, 0xA2, 0x06, 0x72, 0x03, 0x61, 0x90, 0x67, -0x00, 0x18, 0xCC, 0xCC, 0x30, 0xF0, 0x20, 0x6A, -0x2E, 0xF7, 0x5B, 0xA2, 0x04, 0x72, 0x09, 0x61, -0x05, 0x21, 0x91, 0x67, 0xB0, 0x67, 0x00, 0x18, -0x19, 0xD2, 0x03, 0x10, 0x90, 0x67, 0x00, 0x18, -0x12, 0xC7, 0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF7, -0x5B, 0xA2, 0x08, 0x72, 0xA0, 0xF0, 0x05, 0x61, -0x80, 0x18, 0x00, 0x40, 0xA2, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x2E, 0xF7, 0x5B, 0xA2, 0x04, 0x2A, -0x01, 0x6C, 0xB0, 0x67, 0x00, 0x18, 0xA6, 0xC9, -0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF7, 0x5B, 0xA2, -0x06, 0x72, 0x03, 0x61, 0x90, 0x67, 0x00, 0x18, -0xCC, 0xCC, 0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF7, -0x5B, 0xA2, 0x0E, 0x72, 0x07, 0x61, 0x00, 0x18, -0xD8, 0xC6, 0x01, 0x72, 0x03, 0x61, 0x90, 0x67, -0x00, 0x18, 0x99, 0xCC, 0x30, 0xF0, 0x20, 0x6A, -0x2E, 0xF7, 0x5B, 0xA2, 0x0C, 0x72, 0x7D, 0x61, -0x00, 0x18, 0xD8, 0xC6, 0x01, 0x72, 0x79, 0x61, -0x90, 0x67, 0x00, 0x18, 0xF3, 0xCB, 0x75, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF7, 0x5B, 0xA2, -0x0E, 0x72, 0x07, 0x61, 0x00, 0x18, 0xD8, 0xC6, -0x01, 0x72, 0x03, 0x61, 0x90, 0x67, 0x00, 0x18, -0x99, 0xCC, 0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF7, -0x5B, 0xA2, 0x06, 0x72, 0x03, 0x61, 0x90, 0x67, -0x00, 0x18, 0xCC, 0xCC, 0x30, 0xF0, 0x20, 0x6A, -0x2E, 0xF7, 0x5B, 0xA2, 0x0C, 0x72, 0x07, 0x61, -0x00, 0x18, 0xD8, 0xC6, 0x01, 0x72, 0x03, 0x61, -0x90, 0x67, 0x00, 0x18, 0xF3, 0xCB, 0x30, 0xF0, -0x20, 0x6A, 0x2E, 0xF7, 0x5B, 0xA2, 0x04, 0x72, -0x4C, 0x61, 0x00, 0x18, 0x6D, 0xCD, 0x01, 0x72, -0x48, 0x61, 0x90, 0x67, 0x00, 0x18, 0xB5, 0xCE, -0x44, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF7, -0x5B, 0xA2, 0x0E, 0x72, 0x07, 0x61, 0x00, 0x18, -0xD8, 0xC6, 0x01, 0x72, 0x03, 0x61, 0x90, 0x67, -0x00, 0x18, 0x99, 0xCC, 0x30, 0xF0, 0x20, 0x6A, -0x2E, 0xF7, 0x5B, 0xA2, 0x06, 0x72, 0x03, 0x61, -0x90, 0x67, 0x00, 0x18, 0xCC, 0xCC, 0x30, 0xF0, -0x20, 0x6A, 0x2E, 0xF7, 0x5B, 0xA2, 0x0C, 0x72, -0x07, 0x61, 0x00, 0x18, 0xD8, 0xC6, 0x01, 0x72, -0x03, 0x61, 0x90, 0x67, 0x00, 0x18, 0xF3, 0xCB, -0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF7, 0x5B, 0xA2, -0x04, 0x2A, 0x01, 0x6C, 0xB0, 0x67, 0x00, 0x18, -0xA6, 0xC9, 0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF7, -0x5B, 0xA2, 0x04, 0x72, 0x12, 0x61, 0x00, 0x18, -0x88, 0xCC, 0x0F, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x03, 0xF6, 0x63, 0xA2, -0x0C, 0x73, 0x07, 0x61, 0x03, 0xF6, 0x60, 0xA2, -0x20, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x80, 0x18, -0x19, 0x40, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x24, 0x67, -0x4C, 0xED, 0x00, 0x6C, 0x4C, 0xE9, 0x04, 0xD5, -0x00, 0x18, 0x06, 0xDE, 0x02, 0x67, 0x00, 0x18, -0xF3, 0xC8, 0x2D, 0x22, 0x16, 0x29, 0x30, 0xF0, -0x20, 0x6A, 0xE8, 0xF6, 0x10, 0x4A, 0x63, 0xA2, -0x84, 0x9A, 0xA6, 0x9A, 0x01, 0x4B, 0x63, 0xC2, -0x93, 0xE0, 0xE0, 0xF3, 0x08, 0x6B, 0x7B, 0xEC, -0x01, 0x2B, 0xE5, 0xE8, 0x05, 0xDA, 0x12, 0xEB, -0xAD, 0xE3, 0x66, 0xDA, 0x80, 0x18, 0x19, 0x40, -0x44, 0x10, 0x80, 0x18, 0x00, 0x40, 0x30, 0xF0, -0x20, 0x6A, 0xE8, 0xF6, 0x10, 0x4A, 0x85, 0x9A, -0xE0, 0xF3, 0x08, 0x6B, 0xA7, 0x9A, 0x93, 0xE0, -0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, 0x04, 0xDA, -0x12, 0xEB, 0xAD, 0xE3, 0x67, 0xDA, 0x62, 0xA2, -0x01, 0x4B, 0x62, 0xC2, 0x2E, 0x10, 0x01, 0x71, -0x19, 0x61, 0x04, 0x96, 0x04, 0x6C, 0x01, 0x6D, -0x00, 0x18, 0xD3, 0xCE, 0x30, 0xF0, 0x20, 0x6A, -0xE8, 0xF6, 0x10, 0x4A, 0x85, 0x9A, 0xE0, 0xF3, -0x08, 0x6B, 0xA7, 0x9A, 0x93, 0xE0, 0x7B, 0xEC, -0x01, 0x2B, 0xE5, 0xE8, 0x04, 0xDA, 0x12, 0xEB, -0xAD, 0xE3, 0x67, 0xDA, 0x64, 0xA2, 0x01, 0x4B, -0x64, 0xC2, 0x13, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0xE8, 0xF6, 0x10, 0x4A, 0x84, 0x9A, 0xE0, 0xF3, -0x08, 0x6B, 0xA6, 0x9A, 0x93, 0xE0, 0x7B, 0xEC, -0x01, 0x2B, 0xE5, 0xE8, 0x05, 0xDA, 0x12, 0xEB, -0xAD, 0xE3, 0x66, 0xDA, 0x65, 0xA2, 0x01, 0x4B, -0x65, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xE8, 0xF6, -0x10, 0x4A, 0x66, 0x9A, 0x06, 0x23, 0x87, 0x9A, -0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, 0x12, 0xEB, -0x63, 0xDA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0xE8, 0xF6, 0x10, 0x4A, 0x61, 0xA2, 0x30, 0xF0, -0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0xC0, 0xF0, -0x29, 0xA0, 0x01, 0x4B, 0x61, 0xC2, 0x36, 0x31, -0x00, 0x18, 0xF3, 0xC8, 0x08, 0x22, 0x00, 0x18, -0x0E, 0xC9, 0x02, 0x22, 0x08, 0x6A, 0x01, 0x10, -0x0C, 0x6A, 0x63, 0xF6, 0x5C, 0xC0, 0x00, 0x6C, -0x00, 0x18, 0x83, 0xC9, 0x00, 0x18, 0x3A, 0xC9, -0x00, 0x18, 0x0E, 0xC9, 0x01, 0x6C, 0x04, 0x22, -0x91, 0x67, 0x00, 0x18, 0x4B, 0xC9, 0x00, 0x6C, -0xB1, 0x67, 0x00, 0x18, 0x53, 0xCF, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0x24, 0x67, -0x4C, 0xED, 0x00, 0x6C, 0xE8, 0xF6, 0x10, 0x48, -0x4C, 0xE9, 0x05, 0xD5, 0x00, 0x18, 0x06, 0xDE, -0x68, 0x98, 0x04, 0xD2, 0x6F, 0xE2, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF2, 0x40, 0x9A, 0x63, 0xEA, -0x04, 0x60, 0x00, 0x18, 0x43, 0xC9, 0x04, 0x92, -0x48, 0xD8, 0x00, 0x18, 0x0E, 0xC9, 0x29, 0x22, -0x91, 0x67, 0x00, 0x18, 0x12, 0xC9, 0x25, 0x22, -0x00, 0x18, 0x20, 0xC9, 0x22, 0x22, 0x05, 0x95, -0x91, 0x67, 0x00, 0x18, 0x69, 0xC9, 0x1D, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x83, 0xF6, 0x89, 0xA2, 0x83, 0xF6, 0x6A, 0xA2, -0x63, 0xEC, 0x6F, 0xE4, 0x01, 0x60, 0x00, 0x6B, -0x83, 0xF6, 0x69, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0xCE, 0xF7, 0x41, 0xA2, 0x0A, 0x2A, 0x91, 0x67, -0x00, 0x18, 0x4B, 0xC9, 0x01, 0x6C, 0xB1, 0x67, -0x00, 0x18, 0x53, 0xCF, 0x01, 0x6C, 0x00, 0x18, -0x83, 0xC9, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0xE8, 0xF6, 0x10, 0x4A, -0x67, 0xA2, 0x01, 0x4B, 0x67, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x83, 0xF6, -0x8B, 0xA2, 0xC0, 0xF0, 0xA9, 0xA2, 0x02, 0x6B, -0x6B, 0xEB, 0x8C, 0xEB, 0x83, 0xF6, 0x6B, 0xC2, -0x00, 0x6C, 0xB6, 0x35, 0x00, 0x18, 0x53, 0xCF, +0x00, 0x6B, 0xFF, 0x69, 0x68, 0xC2, 0x8C, 0xE9, +0x00, 0x18, 0x56, 0xC8, 0x28, 0x22, 0x30, 0xF0, +0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0xC0, 0xF0, +0x4A, 0xA0, 0xC0, 0xF0, 0x6B, 0xA0, 0x58, 0xEB, +0x12, 0xEA, 0x83, 0xF6, 0x45, 0xC0, 0x00, 0x18, +0x29, 0xC8, 0x03, 0x22, 0x83, 0xF6, 0x05, 0xA0, +0x05, 0x10, 0xC0, 0xF0, 0x4B, 0xA0, 0x01, 0x72, +0x12, 0x61, 0x01, 0x68, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0x58, 0xAE, 0xF7, 0x1E, 0xC2, 0x08, 0x61, +0x91, 0x67, 0x00, 0x18, 0xD1, 0xE7, 0x91, 0x67, +0xB0, 0x67, 0x00, 0x18, 0xBC, 0xE9, 0x03, 0x10, +0x91, 0x67, 0x00, 0x18, 0xE2, 0xE7, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0xAC, 0xEA, 0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xE8, 0xF6, 0x10, 0x4A, 0x6A, 0xA2, 0x01, 0x4B, +0x6A, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0xAE, 0xF7, +0x7E, 0xA3, 0x01, 0x73, 0x0E, 0x61, 0x1B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xE8, 0xF6, 0x10, 0x4A, +0x69, 0xA2, 0x01, 0x4B, 0x69, 0xC2, 0x30, 0xF0, +0x20, 0x6B, 0xAE, 0xF7, 0x7E, 0xA3, 0x01, 0x73, +0x0E, 0x61, 0x68, 0xA2, 0x01, 0x4B, 0x68, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xE8, 0xF6, 0x58, 0xA2, +0x0A, 0x5A, 0x00, 0x6A, 0x05, 0x61, 0x00, 0x18, +0x9C, 0xC8, 0x00, 0x6A, 0x01, 0x10, 0x01, 0x6A, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0xA0, 0xF0, -0xBB, 0xA3, 0x04, 0x67, 0x7F, 0x6C, 0xAC, 0xEC, -0xFF, 0x6A, 0x01, 0x74, 0x4C, 0xE8, 0x20, 0x61, -0xA0, 0xF0, 0xBC, 0xA3, 0x10, 0x6C, 0x8B, 0xEC, -0xAC, 0xEC, 0x4C, 0xEC, 0x11, 0x24, 0xD0, 0x67, -0x0C, 0x6C, 0x00, 0x6D, 0x00, 0x18, 0xD3, 0xCE, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0xFF, 0x6A, +0x4C, 0xEC, 0x12, 0x2C, 0x10, 0xF0, 0x23, 0x6C, +0x87, 0xF4, 0x19, 0x4C, 0x00, 0x18, 0xB9, 0xE6, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0x83, 0xF6, 0x87, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0x83, 0xF6, 0x67, 0xC2, 0x29, 0x10, +0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, +0xC0, 0xF0, 0x89, 0xA0, 0x04, 0x6B, 0x8C, 0xEB, +0x4C, 0xEB, 0x1F, 0x23, 0x30, 0xF0, 0x20, 0x6A, +0xE8, 0xF6, 0x10, 0x4A, 0x66, 0xA2, 0xC0, 0xF0, +0xCC, 0xA0, 0x10, 0xF0, 0x23, 0x6C, 0x01, 0x4B, +0x66, 0xC2, 0x0A, 0x6B, 0x78, 0xEE, 0x00, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x4C, 0x9A, 0x87, 0xF4, 0x19, 0x4C, 0x00, 0x6D, +0x01, 0x6F, 0x12, 0xEE, 0x40, 0xEA, 0x83, 0xF6, +0x67, 0xA0, 0x01, 0x6A, 0x6D, 0xEA, 0x83, 0xF6, +0x47, 0xC0, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, 0x00, 0x18, +0x1A, 0xEB, 0x08, 0x20, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, 0xFF, 0x6C, +0xC5, 0x67, 0x40, 0xEA, 0x01, 0x6C, 0x04, 0x6D, +0x00, 0x18, 0xD7, 0xC5, 0x04, 0x6C, 0x80, 0x18, +0xBF, 0x70, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, +0x74, 0x9B, 0x63, 0xF6, 0x98, 0x9A, 0x8C, 0xEB, +0x04, 0x73, 0x0C, 0x61, 0xE3, 0xF5, 0x7F, 0xA2, +0x04, 0x6C, 0x8C, 0xEB, 0x07, 0x23, 0x01, 0x6B, +0x63, 0xF6, 0x7A, 0xC2, 0x01, 0x6C, 0x00, 0x6D, +0x00, 0x18, 0x62, 0xC8, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0x2B, 0xF1, 0x18, 0x49, 0x40, 0xF1, 0x76, 0xA1, +0x01, 0x6A, 0x6C, 0xEA, 0x20, 0x22, 0x00, 0x18, +0x80, 0xD6, 0x1B, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF1, 0x58, 0x9A, 0x40, 0xA2, 0x15, 0x2A, +0x43, 0xF6, 0x68, 0xA1, 0x40, 0xF1, 0x57, 0xA1, +0x43, 0xEB, 0x11, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF1, 0x5C, 0x9A, 0x00, 0xA2, 0xFF, 0x6A, +0x4C, 0xE8, 0x07, 0x28, 0x06, 0x6C, 0x01, 0x6D, +0x80, 0x18, 0x20, 0x01, 0x43, 0xF6, 0x08, 0xC1, +0x02, 0x10, 0x00, 0x6A, 0x01, 0x10, 0x01, 0x6A, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0xB3, 0x41, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF1, 0x60, 0x9A, 0xFF, 0xF7, 0x1F, 0x6A, +0x80, 0xAB, 0x8C, 0xEA, 0x02, 0xF4, 0x03, 0x6C, +0x4C, 0xEC, 0x80, 0xCB, 0x40, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0xCE, 0xF7, 0x23, 0xA2, 0x35, 0x10, +0xD0, 0xF3, 0x44, 0x41, 0x4C, 0x32, 0x09, 0xE2, +0xC2, 0x9A, 0x2C, 0x32, 0x09, 0xE2, 0xA3, 0xF6, +0xEC, 0x9A, 0x06, 0xD2, 0x00, 0x6A, 0x83, 0xF6, +0xBC, 0x98, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x21, 0x6B, 0xE0, 0xF2, +0x58, 0x9A, 0x16, 0xF3, 0x08, 0x4B, 0x00, 0x6C, +0xB5, 0xE3, 0x40, 0xEA, 0x01, 0x72, 0x12, 0x61, +0x06, 0x92, 0x05, 0x6C, 0x01, 0x49, 0xA3, 0xF6, +0x6C, 0x9A, 0x83, 0xF6, 0x5C, 0x98, 0x49, 0xE3, +0x83, 0xF6, 0x5C, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x40, 0xEA, 0xFF, 0x6A, +0x4C, 0xE9, 0x07, 0x10, 0x24, 0xF5, 0x58, 0x98, +0x08, 0x6B, 0x6D, 0xEA, 0x24, 0xF5, 0x58, 0xD8, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, +0x18, 0x48, 0x83, 0xF6, 0x4B, 0xA0, 0x08, 0x4A, +0x42, 0xE9, 0xC2, 0x61, 0x30, 0xF0, 0x20, 0x68, +0x2B, 0xF1, 0x18, 0x48, 0x83, 0xF6, 0x2B, 0xC0, +0x00, 0x18, 0xDC, 0xD4, 0x01, 0x2A, 0xFF, 0x17, +0x00, 0x18, 0x4F, 0xC7, 0xE4, 0xF4, 0x94, 0xA8, +0xFF, 0xF7, 0x1F, 0x69, 0x00, 0x6D, 0xFF, 0x4C, +0x2C, 0xEC, 0x00, 0x18, 0x39, 0xE9, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF1, 0x64, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x03, 0xF1, 0x98, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF1, 0x48, 0x9A, 0x04, 0x6C, 0x60, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, 0x4C, 0x9A, +0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, +0x70, 0x9A, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF4, 0x78, 0x98, +0xE3, 0xF1, 0x54, 0x9A, 0x60, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0xE4, 0xF4, 0x7C, 0x98, 0xE3, 0xF1, +0x58, 0x9A, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF1, 0x5C, 0x9A, 0x00, 0x6B, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xE8, 0xF6, 0x4C, 0xA2, +0x1E, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF5, +0x68, 0x98, 0x03, 0xF2, 0x40, 0x9A, 0xFF, 0x6C, +0x80, 0x6D, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x44, 0x9A, 0xAB, 0xED, 0x40, 0xAA, +0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, +0x48, 0x9A, 0x20, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF0, 0x78, 0x9A, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x30, 0xF0, +0x20, 0x6B, 0x04, 0xF5, 0x94, 0xA2, 0x03, 0xF2, +0x6C, 0x9B, 0x80, 0xC3, 0x04, 0xF5, 0x75, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x50, 0x9A, +0x60, 0xC2, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6B, 0x8C, 0xEB, +0x01, 0x6A, 0x60, 0x2B, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x54, 0x9A, 0x60, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x58, 0x9A, 0x4C, 0xEB, +0x00, 0x6A, 0x54, 0x23, 0x30, 0xF0, 0x20, 0x6A, +0xCE, 0xF7, 0x40, 0xA2, 0x01, 0x72, 0x02, 0x61, +0x00, 0x18, 0x39, 0xC7, 0x30, 0xF0, 0x20, 0x68, +0x2B, 0xF1, 0x18, 0x48, 0x01, 0x6C, 0x00, 0x18, +0x18, 0xE9, 0x83, 0xF6, 0x4A, 0xA0, 0x00, 0x69, +0x83, 0xF6, 0x4B, 0xC0, 0x83, 0xF6, 0x58, 0x98, +0x83, 0xF6, 0x38, 0xD8, 0x83, 0xF6, 0x5C, 0xD8, +0x00, 0x6A, 0x83, 0xF6, 0x4A, 0xC0, 0x00, 0x18, +0x5C, 0xC7, 0x00, 0x18, 0x2F, 0xC9, 0x00, 0x18, +0x94, 0xC7, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF6, +0xB4, 0x98, 0x83, 0xF6, 0xCC, 0x98, 0x83, 0xF6, +0xF0, 0x98, 0xE0, 0xF2, 0x58, 0x9A, 0x04, 0xD1, +0x05, 0xD1, 0x91, 0x67, 0x40, 0xEA, 0x01, 0x72, +0x06, 0x60, 0x24, 0xF5, 0x58, 0x98, 0x20, 0x6B, +0x6D, 0xEA, 0x24, 0xF5, 0x58, 0xD8, 0x00, 0x18, +0xEC, 0xC7, 0x01, 0x6C, 0x00, 0x18, 0xF3, 0xC6, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x74, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF2, 0x9C, 0x9C, +0x40, 0x9B, 0x8C, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x00, 0x6B, +0x83, 0xF6, 0x6A, 0xC2, 0x00, 0x6B, 0x83, 0xF6, +0x78, 0xDA, 0x01, 0x6A, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xDD, 0x63, 0x45, 0x62, 0x44, 0xD1, 0x43, 0xD0, +0x30, 0xF0, 0x20, 0x6D, 0x1D, 0x04, 0x22, 0xF2, +0x0C, 0x4D, 0x80, 0x6E, 0x00, 0x18, 0x42, 0xD7, +0x30, 0xF0, 0x20, 0x6D, 0x06, 0x04, 0xC2, 0xF1, +0x10, 0x4D, 0x5C, 0x6E, 0x00, 0x18, 0x42, 0xD7, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, 0x78, 0x9A, +0x80, 0x6D, 0xFF, 0x6A, 0x80, 0xA3, 0xAB, 0xED, +0x8C, 0xEA, 0xAC, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0xE8, 0xF6, 0x4C, 0xC4, 0xE8, 0xF6, 0x4C, 0xA4, +0x04, 0x22, 0x80, 0xA3, 0x7F, 0x6A, 0x8C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xEE, 0xF7, +0x00, 0x4C, 0x1D, 0x05, 0x80, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0x00, 0x6B, 0x83, 0xF6, 0x6A, 0xC2, 0x00, 0x6B, +0x83, 0xF6, 0x78, 0xDA, 0x3E, 0x02, 0x1E, 0x00, +0x40, 0xD2, 0x23, 0x67, 0x00, 0x6A, 0xFF, 0xF7, +0xBC, 0x98, 0xE0, 0x98, 0x04, 0xD2, 0x05, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x21, 0x6E, +0xE0, 0xF2, 0x58, 0x9A, 0x16, 0xF3, 0x08, 0x4E, +0x00, 0x6C, 0x39, 0xE6, 0x40, 0xEA, 0x0A, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0x24, 0xF5, 0x78, 0x9A, 0x01, 0x6C, 0x8D, 0xEB, +0x24, 0xF5, 0x78, 0xDA, 0x40, 0x98, 0x14, 0x6C, +0x08, 0x48, 0x3E, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x40, 0xEA, 0x40, 0x92, +0x4A, 0xE8, 0x03, 0x60, 0x3E, 0x92, 0x45, 0xE1, +0xD5, 0x17, 0x30, 0xF0, 0x20, 0x68, 0x1D, 0x02, +0x06, 0x01, 0x6F, 0xF0, 0x00, 0x48, 0x41, 0xD2, +0x40, 0x99, 0xFF, 0xF7, 0x1F, 0x6C, 0x01, 0x6D, +0x40, 0xD8, 0x4C, 0xEC, 0xAB, 0xED, 0x80, 0x18, +0x0D, 0x28, 0x41, 0xD8, 0x41, 0x92, 0x04, 0x49, +0x08, 0x48, 0x4A, 0xE9, 0x58, 0x67, 0x3E, 0xD2, +0xEF, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF2, +0x54, 0x9A, 0x38, 0x6C, 0x30, 0xF0, 0x20, 0x68, +0x40, 0xEA, 0x2B, 0xF1, 0x18, 0x48, 0xE3, 0xF7, +0x40, 0xD8, 0x00, 0x18, 0x7B, 0xD6, 0xE4, 0xF4, +0x54, 0xC8, 0xE4, 0xF4, 0xB4, 0xA8, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF2, 0x40, 0x9A, 0x83, 0xF6, +0xF0, 0x98, 0xBC, 0x35, 0x30, 0xF0, 0x21, 0x6E, +0x55, 0xE5, 0x19, 0xF1, 0x08, 0x4E, 0x02, 0xF0, +0x01, 0x5F, 0x83, 0xF6, 0xAC, 0xD8, 0x83, 0xF6, +0xD4, 0xD8, 0x1F, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF2, 0x44, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF2, 0x70, 0x9B, 0xC0, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF2, 0x48, 0x9A, 0x01, 0x6D, +0xE0, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, +0x8C, 0x9A, 0x40, 0x9C, 0x6D, 0xEA, 0x40, 0xDC, +0xA3, 0xF3, 0x40, 0x98, 0x04, 0x6C, 0x6D, 0xEA, +0xA3, 0xF3, 0x40, 0xD8, 0x80, 0x18, 0x20, 0x01, +0xFF, 0x17, 0x3E, 0x91, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF2, 0x58, 0x9A, 0x04, 0xD1, 0x05, 0xD1, +0x00, 0x6C, 0x40, 0xEA, 0x06, 0x2A, 0x24, 0xF5, +0x58, 0x98, 0x02, 0x6B, 0x6D, 0xEA, 0x24, 0xF5, +0x58, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x0B, 0xF2, +0x68, 0xA2, 0x01, 0x6A, 0x00, 0x68, 0x6C, 0xEA, +0x11, 0x2A, 0x18, 0x10, 0x18, 0x6D, 0xB8, 0xE8, +0x49, 0xE0, 0x24, 0xF5, 0x80, 0xA2, 0x30, 0xF0, +0x20, 0x6B, 0x0F, 0xF1, 0x1C, 0x4B, 0x01, 0x48, +0x12, 0xED, 0xB5, 0xE3, 0x00, 0x18, 0xEE, 0xC4, +0xFF, 0x6A, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0x04, 0xF5, 0x7C, 0xA2, +0x63, 0xE8, 0xE8, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0x83, 0xF6, 0x68, 0xA2, +0x12, 0x23, 0xC0, 0xF0, 0x70, 0xA2, 0x01, 0x6A, +0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x68, +0xCF, 0xF1, 0x1C, 0x48, 0x00, 0x69, 0x91, 0x67, +0xB0, 0x67, 0x01, 0x49, 0x00, 0x18, 0xEE, 0xC4, +0x04, 0x71, 0x18, 0x48, 0xF8, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xC0, 0xF0, +0x90, 0xA2, 0x02, 0x6B, 0x8C, 0xEB, 0x49, 0x23, +0x04, 0xF5, 0xD9, 0xA2, 0x00, 0x6C, 0x30, 0xF0, +0x20, 0x6A, 0xEF, 0xF5, 0x1C, 0x4A, 0x01, 0x6B, +0xA4, 0x67, 0x3B, 0x10, 0x30, 0xF0, 0x20, 0x68, +0x03, 0xF1, 0x18, 0x98, 0x1F, 0x6F, 0x8C, 0xEF, +0x00, 0xF6, 0xE0, 0x37, 0x0D, 0xEF, 0x30, 0xF0, +0x20, 0x68, 0xC3, 0xF1, 0x10, 0x98, 0xE0, 0xD8, +0x30, 0xF0, 0x20, 0x6F, 0xC3, 0xF1, 0xF0, 0x9F, +0xE0, 0x9F, 0x00, 0x57, 0x0B, 0x60, 0xFF, 0x68, +0x01, 0x4B, 0x0A, 0x6F, 0x0C, 0xEB, 0xFB, 0xEB, +0x01, 0x2F, 0xE5, 0xE8, 0x10, 0xEF, 0x0C, 0xEF, +0xEF, 0x2F, 0x19, 0x25, 0x30, 0xF0, 0x20, 0x6D, +0xC3, 0xF1, 0xA8, 0x9D, 0xA0, 0x9D, 0xA2, 0x37, +0xA0, 0xC2, 0x00, 0xF6, 0xA2, 0x35, 0xA3, 0xC2, +0x30, 0xF0, 0x20, 0x6D, 0xC3, 0xF1, 0xB0, 0x9D, +0xE1, 0xC2, 0xE2, 0x37, 0xE2, 0xC2, 0xE0, 0xAD, +0xFF, 0xF7, 0x1F, 0x6D, 0xEC, 0xED, 0xA4, 0xC2, +0xA2, 0x35, 0xA5, 0xC2, 0x01, 0x6D, 0x01, 0x4C, +0x06, 0x4A, 0xFF, 0x6F, 0x8C, 0xEF, 0xC3, 0xEF, +0xC1, 0x61, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x08, 0x6E, 0x03, 0xF3, 0x00, 0x6C, +0x0F, 0x6D, 0x40, 0xEA, 0x01, 0x6D, 0x23, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x30, 0xF0, 0x20, 0x69, +0x80, 0x18, 0x0D, 0x28, 0x2B, 0xF1, 0x18, 0x49, +0x04, 0xF5, 0x4C, 0xD9, 0xC0, 0xF3, 0x44, 0x98, +0x0A, 0x6E, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, +0x40, 0xEA, 0x01, 0x6D, 0x23, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x80, 0x18, 0x0D, 0x28, 0x04, 0xF5, +0x50, 0xD9, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x00, 0x6C, 0x0F, 0x6D, 0x08, 0x6E, 0x40, 0xEA, +0x00, 0x18, 0xDC, 0xD4, 0x45, 0x97, 0x44, 0x91, +0x43, 0x90, 0x23, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x00, 0x6A, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, +0x58, 0x9A, 0xA3, 0xF1, 0xAC, 0x9B, 0x30, 0xF0, +0x21, 0x6E, 0x00, 0x6C, 0xF9, 0xF0, 0x08, 0x4E, +0x20, 0x6F, 0x40, 0xEA, 0x0A, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x24, 0xF5, +0x78, 0x9A, 0x01, 0x6C, 0x8D, 0xEB, 0x24, 0xF5, +0x78, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x14, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x83, 0xF6, +0x69, 0xA2, 0x05, 0x23, 0x00, 0x6B, 0x83, 0xF6, +0x69, 0xC2, 0x00, 0x18, 0xD0, 0xC9, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF1, 0x70, 0x9A, 0xFD, 0x6A, +0x30, 0xF0, 0x20, 0x68, 0x80, 0xA3, 0xEF, 0xF3, +0x1C, 0x48, 0x00, 0x69, 0x8C, 0xEA, 0x40, 0xC3, +0x00, 0x6C, 0x00, 0x18, 0xF3, 0xC6, 0x00, 0x6C, +0x00, 0x18, 0x18, 0xE9, 0x91, 0x67, 0xB0, 0x67, +0x01, 0x49, 0x00, 0x18, 0x50, 0xC5, 0x40, 0x71, +0x08, 0x48, 0xF8, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF1, 0x54, 0x9A, 0x60, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE4, 0xF4, +0x78, 0xDA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF1, +0x78, 0x9B, 0x60, 0x9B, 0xE4, 0xF4, 0x7C, 0xDA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, 0x74, 0x9B, +0x60, 0x9B, 0x04, 0xF5, 0x60, 0xDA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF2, 0x78, 0x9B, 0x60, 0x9B, +0x04, 0xF5, 0x64, 0xDA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF2, 0x7C, 0x9B, 0x60, 0xA3, 0x04, 0xF5, +0x76, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF2, +0x60, 0x9B, 0x60, 0x9B, 0x04, 0xF5, 0x68, 0xDA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF2, 0x6C, 0x9B, +0x60, 0xA3, 0x04, 0xF5, 0x74, 0xC2, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF2, 0x70, 0x9B, 0x60, 0xA3, +0x04, 0xF5, 0x75, 0xC2, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x68, 0x8C, 0xE8, 0x00, 0x18, 0x7B, 0xD6, +0x01, 0xE2, 0x30, 0xF0, 0x20, 0x6B, 0x1C, 0x30, +0x23, 0xF2, 0x00, 0x4B, 0x60, 0x9B, 0x04, 0xD0, +0xB0, 0x67, 0x30, 0xF0, 0x20, 0x68, 0x80, 0xF2, +0x4C, 0x98, 0x30, 0xF0, 0x21, 0x69, 0x92, 0xF5, +0x06, 0x49, 0x30, 0x4D, 0x75, 0xE5, 0x91, 0x67, +0x02, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6E, +0x04, 0x95, 0x23, 0xF2, 0x00, 0x4E, 0xC0, 0x9E, +0x80, 0xF2, 0x4C, 0x98, 0x87, 0x41, 0x32, 0x4D, +0xD5, 0xE5, 0x10, 0x4C, 0x02, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x04, 0x95, 0x23, 0xF2, +0x00, 0x4B, 0x60, 0x9B, 0x80, 0xF2, 0x4C, 0x98, +0x34, 0x4D, 0x30, 0xF0, 0x21, 0x6C, 0x75, 0xE5, +0x52, 0xF6, 0x00, 0x4C, 0x04, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x04, 0x96, 0x23, 0xF2, +0x00, 0x4B, 0x60, 0x9B, 0x80, 0xF2, 0x4C, 0x98, +0x38, 0x4E, 0x87, 0x41, 0x75, 0xE6, 0x04, 0xD6, +0x13, 0x4C, 0xA0, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x04, 0x96, 0x43, 0xF2, 0xA0, 0x9B, +0x80, 0xF2, 0x4C, 0x98, 0x87, 0x41, 0xB5, 0xE6, +0x0B, 0x4C, 0x01, 0x6E, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x68, +0x8C, 0xE8, 0x00, 0x18, 0x7B, 0xD6, 0x01, 0xE2, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x6C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0xA4, 0x9A, +0x1C, 0x30, 0x30, 0xF0, 0x20, 0x6C, 0xB5, 0xE0, +0x4F, 0xF6, 0x10, 0x4C, 0x10, 0x6E, 0x40, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0x04, 0xF5, 0x7D, 0xA2, 0x7C, 0x33, 0x83, 0xF6, +0x70, 0xDA, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, 0x00, 0x18, +0x7B, 0xD6, 0x01, 0xE2, 0x1C, 0x34, 0x30, 0x4C, +0x80, 0x18, 0xF0, 0x07, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0xFF, 0x68, 0x8C, 0xE8, 0xE3, 0xF5, +0x9C, 0xA2, 0x03, 0x6B, 0x6B, 0xEB, 0x41, 0x6D, +0x8C, 0xEB, 0xAB, 0xED, 0xAC, 0xEB, 0xE3, 0xF5, +0xBD, 0xA2, 0xE3, 0xF5, 0x7C, 0xC2, 0x11, 0x6B, +0x00, 0x6C, 0x6B, 0xEB, 0x03, 0xF6, 0x89, 0xC2, +0x03, 0xF6, 0x81, 0xC2, 0xAC, 0xEB, 0x03, 0xF6, +0x8A, 0xC2, 0x90, 0x67, 0xE3, 0xF5, 0x7D, 0xC2, +0x00, 0x18, 0xE2, 0xE7, 0x90, 0x67, 0x00, 0x18, +0xDB, 0xE7, 0x90, 0x67, 0x00, 0x18, 0xF7, 0xE7, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xF2, 0x63, 0x1B, 0x62, 0x1A, 0xD1, 0x19, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xFF, 0x69, 0x2B, 0xF1, +0x18, 0x48, 0x30, 0xF0, 0x20, 0x6A, 0x8C, 0xE9, +0x80, 0xF3, 0x5C, 0x9A, 0xC0, 0xF0, 0x9F, 0xA0, +0x40, 0xEA, 0x01, 0x72, 0x4E, 0x61, 0xE3, 0xF5, +0x7D, 0xA0, 0x09, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xE3, 0xF5, 0x5D, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0xFF, 0x6C, 0x6F, 0x6D, +0x2C, 0x6E, 0x40, 0xEA, 0x0C, 0x04, 0x00, 0x6D, +0x30, 0x6E, 0x00, 0x18, 0x3D, 0xD7, 0xA0, 0xF0, +0x4A, 0xA0, 0x7D, 0x67, 0x40, 0xF0, 0x2C, 0xC3, +0x40, 0xF0, 0x48, 0xCB, 0x01, 0x6A, 0x40, 0xF0, +0x4A, 0xC3, 0x08, 0x6A, 0x40, 0xF0, 0x4B, 0xC3, +0x10, 0xF0, 0x23, 0x6A, 0x46, 0xF1, 0x11, 0x4A, +0x0C, 0xD2, 0x10, 0xF0, 0x23, 0x6A, 0xC3, 0xF0, +0x09, 0x4A, 0x0D, 0xD2, 0x04, 0x04, 0x00, 0x6A, +0x10, 0x03, 0x05, 0x10, 0x59, 0xE3, 0xC0, 0xA6, +0x55, 0xE4, 0x01, 0x4A, 0xC0, 0xC5, 0x20, 0x5A, +0xF9, 0x61, 0x0C, 0x94, 0x0D, 0x95, 0x0E, 0x96, +0x0F, 0x97, 0x00, 0x18, 0x1A, 0xE5, 0x11, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0xE3, 0xF5, 0x9D, 0xA2, 0x02, 0x6B, 0x0E, 0x6D, +0x8D, 0xEB, 0xE3, 0xF5, 0x7D, 0xC2, 0x01, 0x6C, +0x00, 0x18, 0xD7, 0xC5, 0x0E, 0x6C, 0x80, 0x18, +0xBF, 0x70, 0x1B, 0x97, 0x1A, 0x91, 0x19, 0x90, +0x0E, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0x2B, 0xF1, 0x18, 0x48, 0x80, 0x18, 0xCA, 0x05, +0xE3, 0xF5, 0x5F, 0xA0, 0x01, 0x6C, 0xF0, 0x6D, +0x06, 0xD2, 0x00, 0x18, 0xD7, 0xC5, 0x00, 0x18, +0x11, 0xC9, 0x80, 0xF0, 0x05, 0x22, 0x00, 0x18, +0x86, 0xE9, 0x83, 0xF6, 0x48, 0xA0, 0x64, 0x22, +0x00, 0x18, 0x9C, 0xCA, 0x5C, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x7D, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, 0x21, 0x6C, +0xFC, 0xF7, 0x1C, 0x4C, 0xBD, 0x67, 0xA0, 0xDC, +0x9A, 0xB8, 0x00, 0x65, 0xBB, 0xB8, 0x00, 0x65, +0x00, 0x18, 0x1D, 0xE2, 0x30, 0xF0, 0x21, 0x69, +0xDC, 0xF7, 0x0C, 0x49, 0x00, 0x99, 0x32, 0xE8, +0x01, 0x99, 0x30, 0xE8, 0x42, 0x99, 0x63, 0x99, +0x84, 0x99, 0xA5, 0x99, 0xC6, 0x99, 0xE7, 0x99, +0x08, 0x99, 0x18, 0x65, 0x09, 0x99, 0x58, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, +0x21, 0x68, 0xDC, 0xF7, 0x0C, 0x48, 0x2A, 0x98, +0x1A, 0xB8, 0x00, 0x65, 0x58, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x79, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, 0x21, 0x69, +0x9C, 0xF7, 0x0C, 0x49, 0x09, 0xD9, 0x12, 0xE8, +0x00, 0xD9, 0x10, 0xE8, 0x01, 0xD9, 0x42, 0xD9, +0x63, 0xD9, 0x84, 0xD9, 0xA5, 0xD9, 0xC6, 0xD9, +0xE7, 0xD9, 0x18, 0x67, 0x08, 0xD9, 0x1F, 0x67, +0x0B, 0xD9, 0x1D, 0x67, 0x0C, 0xD9, 0x1F, 0xF7, +0x32, 0x68, 0x46, 0xF4, 0x16, 0x48, 0xFF, 0xF7, +0x1C, 0xD9, 0x30, 0xF0, 0x21, 0x68, 0x9C, 0xF7, +0x0C, 0x48, 0x3B, 0xB8, 0x00, 0x65, 0x2A, 0xD8, +0x1A, 0xB8, 0x00, 0x65, 0x00, 0x18, 0xF6, 0xE1, +0x00, 0x6C, 0x00, 0x18, 0x99, 0xC9, 0x10, 0x10, +0x00, 0x6C, 0x00, 0x18, 0x18, 0xE9, 0x00, 0x6C, +0x00, 0x18, 0xF3, 0xC6, 0x00, 0x18, 0x1D, 0xE2, +0x00, 0x18, 0xF6, 0xE1, 0x01, 0x6C, 0x00, 0x18, +0xF3, 0xC6, 0x01, 0x6C, 0x00, 0x18, 0x18, 0xE9, +0x00, 0x6A, 0x82, 0x67, 0xA2, 0x67, 0x01, 0x6E, +0xE2, 0x67, 0x04, 0xD2, 0x80, 0x18, 0xDD, 0x67, +0x06, 0x95, 0x01, 0x6C, 0x00, 0x18, 0xD7, 0xC5, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0x00, 0x6D, 0xC5, 0x67, 0xFF, 0x6C, +0x40, 0xEA, 0x04, 0x6D, 0x01, 0x6C, 0x00, 0x18, +0xD7, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF4, +0x16, 0xA2, 0x90, 0x67, 0x80, 0x18, 0x58, 0x6F, +0x40, 0x6B, 0x4D, 0xEB, 0xFF, 0x6D, 0x90, 0x67, +0x6C, 0xED, 0x80, 0x18, 0x4B, 0x6F, 0x04, 0x6C, +0x80, 0x18, 0xBF, 0x70, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0x2E, 0x6E, 0xFF, 0x6C, 0x6F, 0x6D, +0x40, 0xEA, 0x02, 0x6D, 0x01, 0x6C, 0x00, 0x18, +0xD7, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF4, +0x16, 0xA2, 0x90, 0x67, 0x80, 0x18, 0x58, 0x6F, +0xBF, 0x6D, 0x90, 0x67, 0x4C, 0xED, 0x80, 0x18, +0x4B, 0x6F, 0x02, 0x6C, 0x80, 0x18, 0xBF, 0x70, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, +0xE3, 0xF5, 0x7D, 0xA0, 0x08, 0x6A, 0xFF, 0x69, +0x6C, 0xEA, 0x2C, 0xEA, 0x2C, 0xEC, 0x0C, 0x2A, +0x01, 0x6C, 0x0C, 0x6D, 0x00, 0x18, 0xD7, 0xC5, +0x63, 0xF6, 0x5B, 0xA0, 0x49, 0x22, 0x00, 0x6C, +0xA4, 0x67, 0x00, 0x18, 0x62, 0xC8, 0x44, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x5C, 0x9A, +0x01, 0x6D, 0x40, 0xEA, 0x01, 0x6C, 0x04, 0x6D, +0x00, 0x18, 0xD7, 0xC5, 0xA0, 0xF0, 0x7A, 0xA0, +0x01, 0x6A, 0x4C, 0xEB, 0x2C, 0xEB, 0x05, 0x2B, +0xA3, 0xF3, 0x7C, 0xA0, 0x6C, 0xEA, 0x2C, 0xEA, +0x2C, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0xA0, 0xF0, 0x9A, 0xA2, 0x04, 0x6B, +0x6C, 0xEC, 0x06, 0x2C, 0xA3, 0xF3, 0x5C, 0xA2, +0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x1D, 0x22, +0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, +0xA3, 0xF3, 0x3E, 0xA0, 0x91, 0x67, 0x80, 0x18, +0x58, 0x6F, 0x80, 0x6D, 0xAB, 0xED, 0x4D, 0xED, +0xFF, 0x6A, 0x4C, 0xED, 0x91, 0x67, 0x80, 0x18, +0x4B, 0x6F, 0xA3, 0xF3, 0x1E, 0xA0, 0x90, 0x67, +0x80, 0x18, 0x58, 0x6F, 0x20, 0x6D, 0x4D, 0xED, +0xFF, 0x6A, 0x90, 0x67, 0x4C, 0xED, 0x80, 0x18, +0x4B, 0x6F, 0x04, 0x6C, 0x80, 0x18, 0xBF, 0x70, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, 0xFF, 0x6C, 0xC5, 0x67, 0x40, 0xEA, -0x90, 0x67, 0x00, 0x18, 0x42, 0xCE, 0x08, 0x10, -0x03, 0xF6, 0x43, 0xA3, 0x05, 0x2A, 0x04, 0x6C, -0x01, 0x6D, 0xD0, 0x67, 0x00, 0x18, 0xD3, 0xCE, -0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, -0x2B, 0xF2, 0xB2, 0xA3, 0x01, 0x6B, 0xFF, 0x6A, -0xAC, 0xEB, 0x4C, 0xEB, 0x4C, 0xEC, 0x06, 0x2B, -0x00, 0x18, 0xE0, 0xCF, 0x00, 0x6C, 0xA4, 0x67, -0x00, 0x18, 0x9D, 0xCD, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x30, 0xF0, -0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0x4C, 0xEC, -0x04, 0xD4, 0x03, 0xF6, 0x85, 0xA0, 0x10, 0x6B, -0x8D, 0xEB, 0xC0, 0xF0, 0x97, 0xA0, 0x03, 0xF6, -0x65, 0xC0, 0x01, 0x6B, 0x8C, 0xEB, 0x4C, 0xEB, -0x26, 0x23, 0xC0, 0xF0, 0x59, 0xA0, 0xFF, 0x72, -0x2C, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, -0x44, 0x9A, 0x00, 0x6B, 0x30, 0xF0, 0x20, 0x69, -0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, -0x48, 0x9A, 0x04, 0x6B, 0xFF, 0x6C, 0x60, 0xC2, -0x00, 0xF3, 0x48, 0x99, 0x59, 0x4C, 0x00, 0x6D, -0x06, 0x6E, 0x40, 0xEA, 0xC0, 0xF0, 0xD9, 0xA0, -0x00, 0xF3, 0x48, 0x99, 0xFF, 0x6C, 0x55, 0x4C, -0x00, 0x6D, 0x06, 0x4E, 0x40, 0xEA, 0x04, 0x94, -0x00, 0x18, 0xAB, 0xE8, 0x0A, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, 0x03, 0xF6, -0xCC, 0xA0, 0xFF, 0x6C, 0x55, 0x4C, 0x00, 0x6D, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF7, -0x5B, 0xA2, 0x04, 0x6B, 0x6C, 0xEA, 0x05, 0x2A, -0x04, 0x96, 0x83, 0x67, 0x01, 0x6D, 0x00, 0x18, -0xD3, 0xCE, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, -0x30, 0xF0, 0x20, 0x69, 0x04, 0xD2, 0x2B, 0xF1, -0x18, 0x49, 0xA0, 0xF0, 0x7B, 0xA1, 0x00, 0x6A, -0x03, 0xF6, 0x51, 0xC1, 0x7F, 0x6A, 0x6C, 0xEA, -0xFF, 0x6B, 0x6C, 0xEA, 0x29, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, 0xC0, 0xF0, -0x9F, 0xA1, 0x01, 0x68, 0x40, 0xEA, 0x4E, 0xE8, -0x1F, 0x28, 0x04, 0x94, 0x03, 0xF6, 0xAA, 0xA1, -0x00, 0x18, 0x66, 0xEA, 0xA0, 0xF0, 0x7A, 0xA1, -0x01, 0x6A, 0xFF, 0x6C, 0x4C, 0xEB, 0x8C, 0xEB, -0x03, 0xF6, 0x0B, 0xC1, 0x05, 0x2B, 0xA3, 0xF3, -0x7C, 0xA1, 0x6C, 0xEA, 0x8C, 0xEA, 0x09, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF4, 0x12, 0xA2, -0x80, 0x18, 0x1F, 0x71, 0x05, 0x22, 0x02, 0x70, -0x03, 0x60, 0x04, 0x94, 0x00, 0x18, 0x05, 0xD0, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x2B, 0xF1, 0x18, 0x48, 0xA0, 0xF0, 0x7B, 0xA0, -0x00, 0x6A, 0x03, 0xF6, 0x51, 0xC0, 0x7F, 0x6A, -0xFF, 0x69, 0x6C, 0xEA, 0x2C, 0xEC, 0x2C, 0xEA, -0x04, 0xD4, 0x37, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x5C, 0x9A, 0xC0, 0xF0, 0x9F, 0xA0, -0x40, 0xEA, 0x01, 0x72, 0x2E, 0x61, 0xA0, 0xF0, -0x7C, 0xA0, 0x0F, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, -0x01, 0x69, 0x06, 0x22, 0x03, 0xF6, 0x21, 0xA0, -0x01, 0x6A, 0x32, 0x31, 0x4E, 0xE9, 0x4C, 0xE9, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0xA0, 0xF0, 0x9A, 0xA2, 0x01, 0x6B, 0x6C, 0xEC, -0x06, 0x2C, 0xA3, 0xF3, 0x5C, 0xA2, 0x6C, 0xEA, -0xFF, 0x6B, 0x6C, 0xEA, 0x0E, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0xEE, 0xF4, 0x72, 0xA2, 0x02, 0x6A, -0x4E, 0xEB, 0x6B, 0xEA, 0x6D, 0xEA, 0xC0, 0xF7, -0x43, 0x32, 0x4C, 0xE9, 0x80, 0x18, 0x1F, 0x71, -0x04, 0x22, 0x03, 0x21, 0x04, 0x94, 0x00, 0x18, -0x05, 0xD0, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xF2, 0x63, 0x1B, 0x62, -0x1A, 0xD1, 0x19, 0xD0, 0xFF, 0x69, 0x8C, 0xE9, -0x30, 0xF0, 0x20, 0x68, 0x91, 0x67, 0x2B, 0xF1, -0x18, 0x48, 0x00, 0x18, 0x42, 0xCE, 0x03, 0xF6, -0x43, 0xA0, 0x0C, 0x72, 0x41, 0x60, 0xD1, 0x67, -0x0C, 0x6C, 0x00, 0x6D, 0x00, 0x18, 0xD3, 0xCE, -0x00, 0x6C, 0xA4, 0x67, 0x00, 0x18, 0x9D, 0xCD, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, -0x00, 0x6D, 0xC5, 0x67, 0xFF, 0x6C, 0x40, 0xEA, -0x03, 0xF6, 0x61, 0xA0, 0x01, 0x6A, 0x0C, 0x04, -0x6D, 0xEA, 0x00, 0x6D, 0x30, 0x6E, 0x03, 0xF6, -0x41, 0xC0, 0x00, 0x18, 0xE7, 0xD7, 0xA0, 0xF0, -0x4A, 0xA0, 0x7D, 0x67, 0x40, 0xF0, 0x2C, 0xC3, -0x40, 0xF0, 0x48, 0xCB, 0x08, 0x6A, 0x40, 0xF0, -0x4B, 0xC3, 0x10, 0xF0, 0x23, 0x6A, 0xE6, 0xF3, -0x1D, 0x4A, 0x0C, 0xD2, 0x10, 0xF0, 0x23, 0x6A, -0xE3, 0xF3, 0x11, 0x4A, 0x0D, 0xD2, 0x04, 0x04, -0x00, 0x6A, 0x10, 0x03, 0x05, 0x10, 0x59, 0xE3, -0xC0, 0xA6, 0x55, 0xE4, 0x01, 0x4A, 0xC0, 0xC5, -0x20, 0x5A, 0xF9, 0x61, 0x0C, 0x94, 0x0D, 0x95, -0x0E, 0x96, 0x0F, 0x97, 0x00, 0x18, 0xC4, 0xE5, -0x1B, 0x97, 0x1A, 0x91, 0x19, 0x90, 0x0E, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, -0xA0, 0xF0, 0xDB, 0xA3, 0x7F, 0x6D, 0xFF, 0x6A, -0xCC, 0xED, 0x01, 0x75, 0x4C, 0xEC, 0x16, 0x61, -0x03, 0xF6, 0xC5, 0xA3, 0x01, 0x6D, 0xCD, 0xED, -0x03, 0xF6, 0xA5, 0xC3, 0xA0, 0xF0, 0xBC, 0xA3, -0x10, 0x6B, 0x6B, 0xEB, 0xAC, 0xEB, 0x4C, 0xEB, -0x20, 0x73, 0x06, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x60, 0xF4, 0x40, 0x9A, 0x40, 0xEA, 0x02, 0x10, -0x00, 0x18, 0x7B, 0xD0, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, -0xA0, 0xF0, 0xBA, 0xA3, 0xC4, 0x67, 0x01, 0x6C, -0xFF, 0x6A, 0x8C, 0xED, 0x4C, 0xED, 0x4C, 0xEE, -0x05, 0x2D, 0xA3, 0xF3, 0xBC, 0xA3, 0xAC, 0xEC, -0x4C, 0xEC, 0x07, 0x24, 0x30, 0xF0, 0x20, 0x6A, -0xAE, 0xF7, 0x94, 0xA2, 0x80, 0x18, 0x9A, 0x72, -0x05, 0x10, 0x63, 0xF6, 0x9C, 0xA3, 0x01, 0x6D, -0x00, 0x18, 0xD3, 0xCE, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0x2B, 0xF1, 0x18, 0x4B, 0x40, 0xF1, 0xB6, 0xA3, -0x24, 0x67, 0x01, 0x6C, 0xFF, 0x6A, 0xAC, 0xEC, -0x4C, 0xEC, 0x4C, 0xE9, 0x05, 0x24, 0x43, 0xF6, -0x4C, 0xA3, 0x01, 0x4A, 0x43, 0xF6, 0x4C, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x03, 0xF6, 0x80, 0xA2, 0x40, 0x6B, 0x8C, 0xEB, -0x0A, 0x23, 0x03, 0xF6, 0x61, 0xA2, 0x10, 0x6A, -0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x03, 0x22, -0x91, 0x67, 0x00, 0x18, 0xAB, 0xE8, 0x30, 0xF0, -0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0x03, 0xF6, -0x60, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, 0x10, 0x22, -0x03, 0x6A, 0x4B, 0xEA, 0x4C, 0xEB, 0x03, 0xF6, -0x60, 0xC0, 0x03, 0xF6, 0x65, 0xA0, 0x6C, 0xEA, -0x03, 0xF6, 0x45, 0xC0, 0x03, 0xF6, 0x45, 0xA0, -0x07, 0x6B, 0x6C, 0xEA, 0x65, 0x2A, 0x61, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, 0x84, 0x9A, -0xFF, 0xF7, 0x1F, 0x6A, 0x60, 0xAC, 0x4C, 0xEB, -0x01, 0x4B, 0x4C, 0xEB, 0x60, 0xCC, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF1, 0x84, 0x9B, 0x60, 0xAC, -0x4C, 0xEB, 0x01, 0x4B, 0x4C, 0xEB, 0x60, 0xCC, -0x24, 0xF5, 0x50, 0x98, 0x03, 0xF6, 0x65, 0xA0, -0x01, 0x4A, 0x24, 0xF5, 0x50, 0xD8, 0x03, 0xF6, -0x4D, 0xA0, 0x01, 0x4A, 0x03, 0xF6, 0x4D, 0xC0, -0x11, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x03, 0xF6, -0x45, 0xC0, 0x03, 0xF6, 0x6D, 0xA0, 0xC0, 0xF0, -0x42, 0xA0, 0x63, 0xEA, 0x36, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, 0xC0, 0xF0, -0x9F, 0xA0, 0x40, 0xEA, 0x01, 0x6B, 0x6E, 0xEA, -0x2F, 0x2A, 0xA0, 0xF0, 0x9C, 0xA0, 0xEF, 0x4B, -0x8C, 0xEB, 0xFF, 0x6C, 0x8C, 0xEB, 0x07, 0x2B, -0x03, 0xF6, 0x60, 0xA0, 0xDF, 0x4A, 0x6C, 0xEA, -0x03, 0xF6, 0x40, 0xC0, 0x21, 0x10, 0x03, 0xF6, -0x6E, 0xA0, 0x01, 0x4B, 0x03, 0xF6, 0x6E, 0xC0, -0x03, 0xF6, 0x6E, 0xA0, 0x02, 0x5B, 0x0A, 0x61, -0x03, 0xF6, 0x80, 0xA0, 0x21, 0x6B, 0x6B, 0xEB, -0x8C, 0xEB, 0x03, 0xF6, 0x60, 0xC0, 0x03, 0xF6, -0x4E, 0xC0, 0x03, 0x10, 0x91, 0x67, 0x00, 0x18, -0x7B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x00, 0x6B, 0x03, 0xF6, 0x6D, 0xC2, -0x03, 0x10, 0x91, 0x67, 0x00, 0x18, 0xBB, 0xD0, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0xFF, 0x6A, 0x8C, 0xEA, 0xC2, 0xF2, 0x84, 0x9B, -0xC2, 0xF2, 0x04, 0x4B, 0x04, 0xD4, 0x81, 0x9B, -0x64, 0xAB, 0x05, 0xD4, 0x9D, 0x67, 0x6C, 0xCC, -0x44, 0x33, 0x6D, 0xE4, 0x88, 0xAB, 0x1F, 0xF7, -0x00, 0x6B, 0x8C, 0xEB, 0x02, 0xF0, 0x00, 0x73, -0x01, 0x60, 0x0B, 0x2B, 0x9D, 0x67, 0x44, 0x33, -0x6D, 0xE4, 0x88, 0xAB, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF1, 0x60, 0x9B, 0x6D, 0xE4, 0x60, 0xAB, -0x06, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, -0x64, 0x9B, 0x71, 0xE4, 0x60, 0xAC, 0xFF, 0xF7, -0x1F, 0x68, 0x6C, 0xE8, 0x30, 0xF0, 0x21, 0x6B, -0x12, 0xF5, 0x84, 0xA3, 0x01, 0x6B, 0x8C, 0xEB, -0x03, 0x23, 0xE7, 0xF7, 0x1F, 0x6B, 0x6C, 0xE8, -0x18, 0xF0, 0x00, 0x6B, 0x0C, 0xEB, 0x13, 0x2B, -0x30, 0xF0, 0x20, 0x6C, 0x2B, 0xF1, 0x18, 0x4C, -0x03, 0xF6, 0xA5, 0xA4, 0xFE, 0x4B, 0xAC, 0xEB, -0x05, 0x6D, 0xAB, 0xED, 0xAC, 0xEB, 0x02, 0x4D, -0xAC, 0xEB, 0x03, 0xF6, 0x65, 0xC4, 0x82, 0x67, -0x00, 0x18, 0xBB, 0xD0, 0x3E, 0x10, 0x08, 0xF0, -0x00, 0x6B, 0x0C, 0xEB, 0x04, 0x23, 0x82, 0x67, -0x00, 0x18, 0xA7, 0xD0, 0x0E, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x03, 0xF6, -0x85, 0xA3, 0x02, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, -0x05, 0x6C, 0x8B, 0xEC, 0x8C, 0xEA, 0x03, 0xF6, -0x45, 0xC3, 0x02, 0x30, 0x1E, 0x30, 0x1A, 0x20, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6D, +0x2B, 0xF1, 0x18, 0x4D, 0xE3, 0xF5, 0xDD, 0xA5, +0x04, 0x6B, 0xFF, 0x6A, 0xCC, 0xEB, 0x4C, 0xEB, +0x4C, 0xEC, 0x0C, 0x2B, 0x63, 0xF6, 0x7B, 0xA5, +0x09, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, +0xA8, 0x9B, 0x60, 0xA5, 0x4C, 0xEB, 0x01, 0x4B, +0x4C, 0xEB, 0x60, 0xC5, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0xE3, 0xF5, 0xBD, 0xA2, +0x04, 0x6B, 0xAC, 0xEB, 0x0E, 0x2B, 0x63, 0xF6, +0x5B, 0xA2, 0x0B, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF4, 0x5C, 0x9A, 0x03, 0x6D, 0x40, 0xEA, +0x01, 0x6C, 0x04, 0x6D, 0x00, 0x18, 0xD7, 0xC5, +0x25, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, +0x5C, 0x9A, 0x00, 0x6D, 0x30, 0xF0, 0x20, 0x69, +0x40, 0xEA, 0x2B, 0xF1, 0x18, 0x49, 0x0C, 0x6D, +0x01, 0x6C, 0x00, 0x18, 0xD7, 0xC5, 0xA3, 0xF3, +0x1E, 0xA1, 0x90, 0x67, 0x80, 0x18, 0x58, 0x6F, +0x7F, 0x6D, 0x90, 0x67, 0x4C, 0xED, 0x80, 0x18, +0x4B, 0x6F, 0xA3, 0xF3, 0x1E, 0xA1, 0x90, 0x67, +0x80, 0x18, 0x58, 0x6F, 0xDF, 0x6D, 0x90, 0x67, +0x4C, 0xED, 0x80, 0x18, 0x4B, 0x6F, 0x0C, 0x6C, +0x80, 0x18, 0xBF, 0x70, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, 0xFF, 0x6C, +0xC5, 0x67, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x04, 0x67, 0xA4, 0xA0, 0x82, 0xA4, 0x00, 0x18, +0x0A, 0xD3, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xA8, +0xC3, 0xA0, 0xA0, 0xF2, 0x54, 0x9A, 0x01, 0x6D, +0x04, 0x6F, 0x40, 0xEA, 0x22, 0x67, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xA0, 0x40, 0xF4, 0x58, 0x9A, +0xC4, 0xA0, 0xB1, 0x67, 0x40, 0xEA, 0x82, 0xA0, +0x00, 0x18, 0x6D, 0xD2, 0x0A, 0x22, 0x30, 0xF0, +0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x44, 0xF5, +0x8C, 0xAB, 0x01, 0x4C, 0x44, 0xF5, 0x8C, 0xCB, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, +0x18, 0x4B, 0x44, 0xF5, 0x84, 0xAB, 0x01, 0x4C, +0x44, 0xF5, 0x84, 0xCB, 0xA2, 0x67, 0x91, 0x67, +0x00, 0x18, 0x8B, 0xF0, 0xA4, 0xA0, 0x91, 0x67, +0x00, 0x18, 0x9A, 0xF0, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x01, 0x6A, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x40, 0xC8, +0x20, 0x2A, 0x00, 0x18, 0x80, 0xD6, 0x3A, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x58, 0x9A, +0x40, 0xA2, 0x34, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x8F, 0xF6, 0x6C, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0xFF, 0x6B, 0x6C, 0xEA, 0x2B, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF2, 0x4C, 0x9A, 0x60, 0xA2, +0x02, 0x6A, 0x6C, 0xEA, 0x23, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF2, 0x50, 0x9A, 0x40, 0xA2, +0x1D, 0x2A, 0x00, 0x18, 0x85, 0xD6, 0x1A, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0xA0, 0xF1, 0x60, 0xA2, 0xA0, 0xF1, 0x41, 0xA2, +0x6E, 0xEA, 0x10, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF2, 0x54, 0x9A, 0x60, 0xA2, 0x0F, 0x6A, +0x6C, 0xEA, 0x08, 0x2A, 0x00, 0x18, 0xE5, 0xF2, +0x05, 0x2A, 0x00, 0x18, 0xE5, 0xF2, 0x01, 0x5A, +0x58, 0x67, 0x01, 0x10, 0x00, 0x6A, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF7, 0x57, 0xA2, +0x02, 0x22, 0x08, 0x72, 0x06, 0x61, 0x00, 0x18, +0x74, 0xCC, 0x01, 0x72, 0x02, 0x61, 0x00, 0x18, +0x77, 0xCB, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF0, 0x74, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0x86, 0xF2, 0x01, 0x4A, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE3, 0xF5, +0x9C, 0xA2, 0x01, 0x6B, 0xFF, 0x6D, 0x6C, 0xEC, +0x20, 0x24, 0xA0, 0xF0, 0x9A, 0xA2, 0x6C, 0xEC, +0xAC, 0xEC, 0x05, 0x2C, 0xA3, 0xF3, 0x5C, 0xA2, +0x6C, 0xEA, 0xAC, 0xEA, 0x13, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xF0, +0x9A, 0xA2, 0x02, 0x6B, 0x6C, 0xEC, 0x06, 0x2C, +0xA3, 0xF3, 0x5C, 0xA2, 0x6C, 0xEA, 0xFF, 0x6B, +0x6C, 0xEA, 0x04, 0x22, 0x80, 0x18, 0x34, 0x70, +0x01, 0x72, 0x05, 0x61, 0x00, 0x18, 0x97, 0xCC, +0x02, 0x10, 0x00, 0x18, 0x11, 0xC9, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF0, 0x74, 0x9B, 0x10, 0xF0, +0x23, 0x6A, 0x86, 0xF2, 0x03, 0x4A, 0x40, 0xDB, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, -0x03, 0xF6, 0x45, 0xA0, 0x02, 0x69, 0xC0, 0xF0, -0xC3, 0xA0, 0x2D, 0xEA, 0x03, 0xF6, 0x45, 0xC0, -0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, -0xFF, 0x6C, 0x55, 0x4C, 0x00, 0x6D, 0x40, 0xEA, -0x03, 0xF6, 0x40, 0xA0, 0x4D, 0xE9, 0x03, 0xF6, -0x20, 0xC0, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x03, 0xF6, 0x85, 0xA2, -0x03, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x03, 0xF6, -0x65, 0xC2, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0xA2, 0xF2, 0x78, 0x9A, 0xA2, 0xF2, 0x18, 0x4A, -0x30, 0xF0, 0x20, 0x68, 0x04, 0xD3, 0x61, 0x9A, -0x44, 0xAA, 0xFF, 0x69, 0x05, 0xD3, 0x7D, 0x67, -0x4C, 0xCB, 0x2B, 0xF1, 0x18, 0x48, 0x30, 0xF0, -0x20, 0x6A, 0x8C, 0xE9, 0x80, 0xF3, 0x5C, 0x9A, +0xE0, 0xF0, 0x7A, 0xA0, 0x01, 0x6A, 0xFF, 0x69, +0x4C, 0xEB, 0x0D, 0x23, 0x64, 0xF5, 0x79, 0xA0, +0x6C, 0xEA, 0x2C, 0xEA, 0x47, 0x2A, 0x63, 0xF6, +0x58, 0xA0, 0x44, 0x2A, 0x83, 0xF3, 0x5C, 0xA0, +0x01, 0x5A, 0x58, 0x67, 0x40, 0x10, 0x00, 0x18, +0x02, 0xC6, 0x01, 0x72, 0x3B, 0x61, 0x00, 0x18, +0xED, 0xE4, 0x01, 0x72, 0x37, 0x61, 0x03, 0xF6, +0x61, 0xA0, 0x03, 0x6A, 0x6C, 0xEA, 0x32, 0x2A, +0x63, 0xF6, 0x58, 0xA0, 0x2F, 0x2A, 0x04, 0x6A, +0x6C, 0xEA, 0x2C, 0x2A, 0x10, 0x6A, 0x6C, 0xEA, +0x29, 0x2A, 0xE3, 0xF5, 0x7C, 0xA0, 0x20, 0x6A, +0x6C, 0xEA, 0x2C, 0xEA, 0x23, 0x22, 0x83, 0xF3, +0x5C, 0xA0, 0x20, 0x2A, 0x00, 0x18, 0x4E, 0xC8, +0x1D, 0x2A, 0x30, 0xF0, 0x21, 0x6A, 0x12, 0xF5, +0x60, 0xA2, 0x03, 0x6A, 0x6C, 0xEA, 0x03, 0x72, +0x15, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, +0x78, 0x9A, 0x02, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x0D, 0x2A, 0x40, 0xA3, 0x01, 0x6C, 0x4C, 0xEC, +0x01, 0x6A, 0x09, 0x24, 0x80, 0xA3, 0xFC, 0x6B, +0x00, 0x6A, 0x8C, 0xEB, 0x80, 0x73, 0x03, 0x60, +0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x24, 0x67, 0x2E, 0xF7, +0x96, 0xA3, 0x02, 0x6B, 0xFF, 0x6A, 0x8C, 0xEB, +0x4C, 0xED, 0x4C, 0xEB, 0x4C, 0xE9, 0x08, 0xD5, +0x02, 0x6A, 0x75, 0x23, 0x30, 0xF0, 0x20, 0x6A, +0x08, 0xF7, 0x57, 0xA2, 0x2E, 0xEA, 0x5F, 0x22, +0x00, 0x6A, 0x7D, 0x67, 0x30, 0xF0, 0x20, 0x6C, +0x05, 0xD2, 0x58, 0xC3, 0x48, 0xCB, 0x08, 0xF7, +0x56, 0xA4, 0x27, 0x2A, 0x30, 0xF0, 0x20, 0x6B, +0x08, 0xF7, 0x55, 0xA3, 0x22, 0x2A, 0x30, 0xF0, +0x20, 0x6C, 0x08, 0xF7, 0x54, 0xA4, 0x1D, 0x2A, +0x30, 0xF0, 0x21, 0x68, 0x12, 0xF5, 0x08, 0x48, +0x90, 0x67, 0x05, 0x05, 0x80, 0x18, 0xC4, 0x56, +0x90, 0x67, 0x04, 0x05, 0x80, 0x18, 0xB2, 0x56, +0x7D, 0x67, 0x50, 0xA3, 0x30, 0xF0, 0x20, 0x6C, +0x08, 0xF7, 0x56, 0xC4, 0x54, 0xA3, 0x75, 0xA3, +0x30, 0xF0, 0x20, 0x6C, 0x4D, 0xEB, 0x08, 0xF7, +0x75, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0x08, 0xF7, +0x54, 0xC3, 0x03, 0x21, 0x01, 0x71, 0x12, 0x60, +0x26, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x08, 0xF7, +0xB5, 0xA2, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x21, 0x6C, 0x08, 0xF7, 0xD6, 0xA2, 0x30, 0xF0, +0x20, 0x6A, 0x12, 0xF5, 0x08, 0x4C, 0x08, 0xF7, +0xF4, 0xA2, 0x13, 0x10, 0x30, 0xF0, 0x21, 0x68, +0x12, 0xF5, 0x08, 0x48, 0x90, 0x67, 0x80, 0x18, +0xA4, 0x55, 0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x32, 0x6C, 0x40, 0xEA, +0xF1, 0x17, 0x01, 0x6D, 0x90, 0x67, 0xC5, 0x67, +0xE5, 0x67, 0x80, 0x18, 0x65, 0x5C, 0x30, 0xF0, +0x20, 0x6A, 0x08, 0xF7, 0x37, 0xC2, 0x08, 0x94, +0x00, 0x6A, 0x0D, 0x24, 0x30, 0xF0, 0x20, 0x6B, +0x08, 0xF7, 0x56, 0xC3, 0x30, 0xF0, 0x20, 0x6B, +0x08, 0xF7, 0x55, 0xC3, 0x30, 0xF0, 0x20, 0x6B, +0x08, 0xF7, 0x54, 0xC3, 0x00, 0x6A, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x80, 0xF2, 0x48, 0x98, +0x30, 0xF0, 0x20, 0x6C, 0x2E, 0xF7, 0x14, 0x4C, +0x00, 0x6D, 0x80, 0x6E, 0x40, 0xEA, 0x80, 0xF2, +0x48, 0x98, 0x30, 0xF0, 0x20, 0x6C, 0x2C, 0x6E, +0x6F, 0xF6, 0x00, 0x4C, 0x00, 0x6D, 0x30, 0xF0, +0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0x40, 0xEA, +0x00, 0x18, 0x2E, 0xC8, 0x01, 0x6A, 0x03, 0xF6, +0x46, 0xC0, 0x03, 0xF6, 0x47, 0xC0, 0x0C, 0x6A, +0x02, 0x69, 0x03, 0xF6, 0x48, 0xC0, 0x00, 0x6C, +0x06, 0x6A, 0x03, 0xF6, 0x50, 0xC8, 0xA0, 0xF0, +0x3D, 0xC0, 0xA4, 0x67, 0x00, 0x18, 0xD7, 0xC5, +0x02, 0x6C, 0x0C, 0x6D, 0x00, 0x18, 0xD7, 0xC5, +0x01, 0x6C, 0x0C, 0x6D, 0x00, 0x18, 0xD7, 0xC5, +0x30, 0xF0, 0x20, 0x6C, 0x4E, 0xF7, 0x06, 0x4C, +0x00, 0x6D, 0x00, 0x18, 0x19, 0xE9, 0xC0, 0xF0, +0x64, 0xA0, 0x0F, 0x6A, 0xC0, 0xF0, 0x43, 0xC0, +0x01, 0x6A, 0x6C, 0xEA, 0x28, 0x6B, 0x6D, 0xEA, +0xC0, 0xF0, 0x44, 0xC0, 0x07, 0x6A, 0xC0, 0xF0, +0x45, 0xC0, 0x03, 0xF6, 0x5A, 0xA0, 0xC0, 0xF0, +0x22, 0xC0, 0x30, 0xF0, 0x20, 0x69, 0x03, 0x4A, +0x03, 0xF6, 0x56, 0xC0, 0x0C, 0x6A, 0x03, 0xF6, +0x57, 0xC0, 0x40, 0xF4, 0x5C, 0x99, 0x00, 0x6C, +0xA4, 0x67, 0x40, 0xEA, 0x40, 0xF4, 0x5C, 0x99, +0x01, 0x6C, 0x00, 0x6D, 0x40, 0xEA, 0x40, 0xF4, +0x5C, 0x99, 0x02, 0x6C, 0x00, 0x6D, 0x40, 0xEA, +0x40, 0xF4, 0x5C, 0x99, 0x03, 0x6C, 0x00, 0x6D, +0x40, 0xEA, 0x40, 0xF4, 0x5C, 0x99, 0x04, 0x6C, +0x00, 0x6D, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF2, 0x7C, 0x9A, 0xF8, 0x6A, 0x00, 0x6D, +0x80, 0xA3, 0xC5, 0x67, 0x00, 0x69, 0x8C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0xFF, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF6, 0x70, 0xA0, 0x63, 0xF1, +0x44, 0x9A, 0x83, 0xF3, 0x3C, 0xC0, 0xFF, 0x6C, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, +0x60, 0x9A, 0x08, 0x6D, 0xAB, 0xED, 0x40, 0xA3, +0x80, 0xF6, 0x10, 0x6E, 0x8C, 0xEA, 0xAC, 0xEA, +0x05, 0x6D, 0xAD, 0xEA, 0x8C, 0xEA, 0x30, 0xF0, +0x20, 0x6C, 0x40, 0xC3, 0xCE, 0xF7, 0x00, 0x4C, +0x00, 0x6D, 0x00, 0x18, 0x3D, 0xD7, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF2, 0x44, 0x9A, 0x20, 0x6B, +0x10, 0xF0, 0x23, 0x6D, 0x60, 0xC2, 0x0C, 0x6A, +0x63, 0xF6, 0x58, 0xC0, 0xE3, 0xF5, 0x5F, 0xC0, +0x63, 0xF6, 0x39, 0xC0, 0x63, 0xF6, 0x3B, 0xC0, +0x04, 0x6C, 0x69, 0xF1, 0x1D, 0x4D, 0x00, 0x18, +0x1A, 0xC2, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x2E, 0xF7, 0xB4, 0xA3, 0x04, 0x6B, 0xFF, 0x6A, +0xAC, 0xEB, 0x4C, 0xEB, 0x4C, 0xEC, 0x06, 0x23, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0x48, 0x9A, +0x00, 0x6B, 0x60, 0xC2, 0x02, 0x6D, 0x00, 0x18, +0xCE, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, +0x4C, 0x9A, 0x04, 0x69, 0x30, 0xF0, 0x20, 0x68, +0x20, 0xDA, 0x2B, 0xF1, 0x18, 0x48, 0xC0, 0xF0, +0xC4, 0xA0, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x48, 0x9A, 0xFF, 0x6C, 0x59, 0x4C, 0x00, 0x6D, +0xC6, 0x36, 0x40, 0xEA, 0xE3, 0xF5, 0x5C, 0xA0, +0x07, 0x97, 0x4D, 0xE9, 0xE3, 0xF5, 0x3C, 0xC0, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0xAC, 0xEA, 0x29, 0x22, 0x05, 0x5C, 0x1D, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, 0x42, 0xF1, +0x0C, 0x4A, 0x89, 0xE2, 0x40, 0x9A, 0x00, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x01, 0x6C, 0x63, 0xF2, +0xB0, 0x9A, 0x0D, 0x10, 0x04, 0x6C, 0x0F, 0x6D, +0x0A, 0x10, 0x04, 0x6C, 0xF0, 0x6D, 0x07, 0x10, +0x04, 0x6C, 0x01, 0xF7, 0x00, 0x6D, 0x03, 0x10, +0x04, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, 0x80, 0x18, +0x45, 0x76, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, +0x7C, 0x9A, 0xFF, 0x6C, 0x07, 0x6D, 0x40, 0xA3, +0x8C, 0xEA, 0xAD, 0xEA, 0x25, 0x10, 0x05, 0x5C, +0x1D, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, +0x62, 0xF1, 0x00, 0x4A, 0x89, 0xE2, 0x40, 0x9A, +0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x01, 0x6C, +0x63, 0xF2, 0xB0, 0x9A, 0x0D, 0x10, 0x04, 0x6C, +0x0F, 0x6D, 0x0A, 0x10, 0x04, 0x6C, 0xF0, 0x6D, +0x07, 0x10, 0x04, 0x6C, 0x01, 0xF7, 0x00, 0x6D, +0x03, 0x10, 0x04, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, +0x80, 0x18, 0x76, 0x76, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF2, 0x7C, 0x9A, 0xF8, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x27, 0x22, +0x05, 0x5C, 0x4B, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x88, 0x34, 0x62, 0xF1, 0x14, 0x4A, 0x89, 0xE2, +0x40, 0x9A, 0x00, 0xEA, 0x00, 0x6C, 0x08, 0x6D, +0x17, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x6C, +0xA3, 0xF1, 0xBC, 0x9A, 0x11, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x04, 0x6C, 0x63, 0xF2, 0xB4, 0x9A, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x6C, +0x63, 0xF2, 0xB8, 0x9A, 0x05, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF2, 0xBC, 0x9A, 0x04, 0x6C, +0x80, 0x18, 0x45, 0x76, 0x26, 0x10, 0x05, 0x5C, +0x24, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, +0x82, 0xF1, 0x08, 0x4A, 0x89, 0xE2, 0x40, 0x9A, +0x00, 0xEA, 0x00, 0x6C, 0x08, 0x6D, 0x17, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0x6C, 0xA3, 0xF1, +0xBC, 0x9A, 0x11, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0x6C, 0x63, 0xF2, 0xB4, 0x9A, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0x6C, 0x63, 0xF2, +0xB8, 0x9A, 0x05, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF2, 0xBC, 0x9A, 0x04, 0x6C, 0x80, 0x18, +0x76, 0x76, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x6A, 0x83, 0xF2, +0x60, 0x9B, 0x4C, 0xEC, 0x04, 0xD4, 0x20, 0xA3, +0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6C, 0x4C, 0xE9, +0xA0, 0xF2, 0x50, 0x98, 0xA4, 0x67, 0x2D, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, +0x5C, 0x9A, 0x40, 0xEA, 0x06, 0x2A, 0xA0, 0xF2, +0x50, 0x98, 0xFF, 0x6C, 0xB1, 0x67, 0x2D, 0x6E, +0x0C, 0x10, 0x04, 0x94, 0x01, 0x6D, 0x00, 0x18, +0xDF, 0xCD, 0x00, 0x18, 0x30, 0xEB, 0x07, 0x2A, +0xA0, 0xF2, 0x50, 0x98, 0xFF, 0x6C, 0xB1, 0x67, +0x5B, 0x6E, 0x40, 0xEA, 0x07, 0x10, 0x01, 0x6C, +0x00, 0x6D, 0x00, 0x18, 0xD7, 0xC5, 0x00, 0x6C, +0x80, 0x18, 0xBF, 0x70, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x25, 0x67, 0x30, 0xF0, 0x20, 0x6D, 0x2B, 0xF1, +0x18, 0x4D, 0x06, 0x67, 0xE3, 0xF5, 0xDD, 0xA5, +0x03, 0x6B, 0xFF, 0x6A, 0xCC, 0xEB, 0x4C, 0xEB, +0x4C, 0xEC, 0x4C, 0xE9, 0x4C, 0xE8, 0xE0, 0xF0, +0x06, 0x2B, 0xE3, 0xF5, 0x5F, 0xA5, 0x8E, 0xEA, +0xE0, 0xF0, 0x01, 0x22, 0x0D, 0x5C, 0xC0, 0xF0, +0x1E, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, +0x82, 0xF1, 0x1C, 0x4A, 0x89, 0xE2, 0x40, 0x9A, +0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF7, +0x57, 0xA2, 0x0E, 0x72, 0x03, 0x61, 0x90, 0x67, +0x00, 0x18, 0xEA, 0xCB, 0x30, 0xF0, 0x20, 0x6A, +0x2E, 0xF7, 0x57, 0xA2, 0x04, 0x2A, 0x01, 0x6C, +0xB0, 0x67, 0x00, 0x18, 0xF7, 0xC8, 0x30, 0xF0, +0x20, 0x6A, 0x2E, 0xF7, 0x57, 0xA2, 0x06, 0x72, +0x03, 0x61, 0x90, 0x67, 0x00, 0x18, 0x21, 0xCC, +0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF7, 0x57, 0xA2, +0x04, 0x72, 0x09, 0x61, 0x05, 0x21, 0x91, 0x67, +0xB0, 0x67, 0x00, 0x18, 0x6E, 0xD1, 0x03, 0x10, +0x90, 0x67, 0x00, 0x18, 0x48, 0xC6, 0x30, 0xF0, +0x20, 0x6A, 0x2E, 0xF7, 0x57, 0xA2, 0x08, 0x72, +0xA0, 0xF0, 0x05, 0x61, 0x80, 0x18, 0x00, 0x40, +0xA2, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF7, +0x57, 0xA2, 0x04, 0x2A, 0x01, 0x6C, 0xB0, 0x67, +0x00, 0x18, 0xF7, 0xC8, 0x30, 0xF0, 0x20, 0x6A, +0x2E, 0xF7, 0x57, 0xA2, 0x06, 0x72, 0x03, 0x61, +0x90, 0x67, 0x00, 0x18, 0x21, 0xCC, 0x30, 0xF0, +0x20, 0x6A, 0x2E, 0xF7, 0x57, 0xA2, 0x0E, 0x72, +0x07, 0x61, 0x00, 0x18, 0x24, 0xC6, 0x01, 0x72, +0x03, 0x61, 0x90, 0x67, 0x00, 0x18, 0xEA, 0xCB, +0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF7, 0x57, 0xA2, +0x0C, 0x72, 0x7D, 0x61, 0x00, 0x18, 0x24, 0xC6, +0x01, 0x72, 0x79, 0x61, 0x90, 0x67, 0x00, 0x18, +0x44, 0xCB, 0x75, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x2E, 0xF7, 0x57, 0xA2, 0x0E, 0x72, 0x07, 0x61, +0x00, 0x18, 0x24, 0xC6, 0x01, 0x72, 0x03, 0x61, +0x90, 0x67, 0x00, 0x18, 0xEA, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0x2E, 0xF7, 0x57, 0xA2, 0x06, 0x72, +0x03, 0x61, 0x90, 0x67, 0x00, 0x18, 0x21, 0xCC, +0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF7, 0x57, 0xA2, +0x0C, 0x72, 0x07, 0x61, 0x00, 0x18, 0x24, 0xC6, +0x01, 0x72, 0x03, 0x61, 0x90, 0x67, 0x00, 0x18, +0x44, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF7, +0x57, 0xA2, 0x04, 0x72, 0x4C, 0x61, 0x00, 0x18, +0xC2, 0xCC, 0x01, 0x72, 0x48, 0x61, 0x90, 0x67, +0x00, 0x18, 0x0A, 0xCE, 0x44, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x2E, 0xF7, 0x57, 0xA2, 0x0E, 0x72, +0x07, 0x61, 0x00, 0x18, 0x24, 0xC6, 0x01, 0x72, +0x03, 0x61, 0x90, 0x67, 0x00, 0x18, 0xEA, 0xCB, +0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF7, 0x57, 0xA2, +0x06, 0x72, 0x03, 0x61, 0x90, 0x67, 0x00, 0x18, +0x21, 0xCC, 0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF7, +0x57, 0xA2, 0x0C, 0x72, 0x07, 0x61, 0x00, 0x18, +0x24, 0xC6, 0x01, 0x72, 0x03, 0x61, 0x90, 0x67, +0x00, 0x18, 0x44, 0xCB, 0x30, 0xF0, 0x20, 0x6A, +0x2E, 0xF7, 0x57, 0xA2, 0x04, 0x2A, 0x01, 0x6C, +0xB0, 0x67, 0x00, 0x18, 0xF7, 0xC8, 0x30, 0xF0, +0x20, 0x6A, 0x2E, 0xF7, 0x57, 0xA2, 0x04, 0x72, +0x12, 0x61, 0x00, 0x18, 0xD9, 0xCB, 0x0F, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0xE3, 0xF5, 0x7F, 0xA2, 0x0C, 0x73, 0x07, 0x61, +0xE3, 0xF5, 0x7C, 0xA2, 0x20, 0x6A, 0x6C, 0xEA, +0x02, 0x22, 0x80, 0x18, 0x19, 0x40, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x24, 0x67, 0x4C, 0xED, 0x00, 0x6C, +0x4C, 0xE9, 0x04, 0xD5, 0x00, 0x18, 0x65, 0xDD, +0x02, 0x67, 0x00, 0x18, 0x29, 0xC8, 0x2D, 0x22, +0x16, 0x29, 0x30, 0xF0, 0x20, 0x6A, 0xE8, 0xF6, +0x10, 0x4A, 0x63, 0xA2, 0x84, 0x9A, 0xA6, 0x9A, +0x01, 0x4B, 0x63, 0xC2, 0x93, 0xE0, 0xE0, 0xF3, +0x08, 0x6B, 0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, +0x05, 0xDA, 0x12, 0xEB, 0xAD, 0xE3, 0x66, 0xDA, +0x80, 0x18, 0x19, 0x40, 0x44, 0x10, 0x80, 0x18, +0x00, 0x40, 0x30, 0xF0, 0x20, 0x6A, 0xE8, 0xF6, +0x10, 0x4A, 0x85, 0x9A, 0xE0, 0xF3, 0x08, 0x6B, +0xA7, 0x9A, 0x93, 0xE0, 0x7B, 0xEC, 0x01, 0x2B, +0xE5, 0xE8, 0x04, 0xDA, 0x12, 0xEB, 0xAD, 0xE3, +0x67, 0xDA, 0x62, 0xA2, 0x01, 0x4B, 0x62, 0xC2, +0x2E, 0x10, 0x01, 0x71, 0x19, 0x61, 0x04, 0x96, +0x04, 0x6C, 0x01, 0x6D, 0x00, 0x18, 0x28, 0xCE, +0x30, 0xF0, 0x20, 0x6A, 0xE8, 0xF6, 0x10, 0x4A, +0x85, 0x9A, 0xE0, 0xF3, 0x08, 0x6B, 0xA7, 0x9A, +0x93, 0xE0, 0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, +0x04, 0xDA, 0x12, 0xEB, 0xAD, 0xE3, 0x67, 0xDA, +0x64, 0xA2, 0x01, 0x4B, 0x64, 0xC2, 0x13, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xE8, 0xF6, 0x10, 0x4A, +0x84, 0x9A, 0xE0, 0xF3, 0x08, 0x6B, 0xA6, 0x9A, +0x93, 0xE0, 0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, +0x05, 0xDA, 0x12, 0xEB, 0xAD, 0xE3, 0x66, 0xDA, +0x65, 0xA2, 0x01, 0x4B, 0x65, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xE8, 0xF6, 0x10, 0x4A, 0x66, 0x9A, +0x06, 0x23, 0x87, 0x9A, 0x7B, 0xEC, 0x01, 0x2B, +0xE5, 0xE8, 0x12, 0xEB, 0x63, 0xDA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xE8, 0xF6, 0x10, 0x4A, +0x61, 0xA2, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, +0x18, 0x48, 0xC0, 0xF0, 0x29, 0xA0, 0x01, 0x4B, +0x61, 0xC2, 0x36, 0x31, 0x00, 0x18, 0x29, 0xC8, +0x08, 0x22, 0x00, 0x18, 0x44, 0xC8, 0x02, 0x22, +0x08, 0x6A, 0x01, 0x10, 0x0C, 0x6A, 0x63, 0xF6, +0x58, 0xC0, 0x00, 0x6C, 0x00, 0x18, 0xD4, 0xC8, +0x00, 0x18, 0x8B, 0xC8, 0x00, 0x18, 0x44, 0xC8, +0x01, 0x6C, 0x04, 0x22, 0x91, 0x67, 0x00, 0x18, +0x9C, 0xC8, 0x00, 0x6C, 0xB1, 0x67, 0x00, 0x18, +0xA8, 0xCE, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x68, 0x24, 0x67, 0x4C, 0xED, 0x00, 0x6C, +0xE8, 0xF6, 0x10, 0x48, 0x4C, 0xE9, 0x05, 0xD5, +0x00, 0x18, 0x65, 0xDD, 0x68, 0x98, 0x04, 0xD2, +0x6F, 0xE2, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, +0x44, 0x9A, 0x63, 0xEA, 0x04, 0x60, 0x00, 0x18, +0x94, 0xC8, 0x04, 0x92, 0x48, 0xD8, 0x00, 0x18, +0x44, 0xC8, 0x29, 0x22, 0x91, 0x67, 0x00, 0x18, +0x48, 0xC8, 0x25, 0x22, 0x00, 0x18, 0x56, 0xC8, +0x22, 0x22, 0x05, 0x95, 0x91, 0x67, 0x00, 0x18, +0xBA, 0xC8, 0x1D, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0x83, 0xF6, 0x85, 0xA2, +0x83, 0xF6, 0x66, 0xA2, 0x63, 0xEC, 0x6F, 0xE4, +0x01, 0x60, 0x00, 0x6B, 0x83, 0xF6, 0x65, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xAE, 0xF7, 0x5D, 0xA2, +0x0A, 0x2A, 0x91, 0x67, 0x00, 0x18, 0x9C, 0xC8, +0x01, 0x6C, 0xB1, 0x67, 0x00, 0x18, 0xA8, 0xCE, +0x01, 0x6C, 0x00, 0x18, 0xD4, 0xC8, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xE8, 0xF6, 0x10, 0x4A, 0x67, 0xA2, 0x01, 0x4B, +0x67, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0x83, 0xF6, 0x87, 0xA2, 0xC0, 0xF0, +0xA9, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x83, 0xF6, 0x67, 0xC2, 0x00, 0x6C, 0xB6, 0x35, +0x00, 0x18, 0xA8, 0xCE, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, +0x18, 0x4B, 0xA0, 0xF0, 0xBB, 0xA3, 0x04, 0x67, +0x7F, 0x6C, 0xAC, 0xEC, 0xFF, 0x6A, 0x01, 0x74, +0x4C, 0xE8, 0x20, 0x61, 0xA0, 0xF0, 0xBC, 0xA3, +0x10, 0x6C, 0x8B, 0xEC, 0xAC, 0xEC, 0x4C, 0xEC, +0x11, 0x24, 0xD0, 0x67, 0x0C, 0x6C, 0x00, 0x6D, +0x00, 0x18, 0x28, 0xCE, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, 0xFF, 0x6C, +0xC5, 0x67, 0x40, 0xEA, 0x90, 0x67, 0x00, 0x18, +0x97, 0xCD, 0x08, 0x10, 0xE3, 0xF5, 0x5F, 0xA3, +0x05, 0x2A, 0x04, 0x6C, 0x01, 0x6D, 0xD0, 0x67, +0x00, 0x18, 0x28, 0xCE, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF2, 0xB2, 0xA3, +0x01, 0x6B, 0xFF, 0x6A, 0xAC, 0xEB, 0x4C, 0xEB, +0x4C, 0xEC, 0x06, 0x2B, 0x00, 0x18, 0x35, 0xCF, +0x00, 0x6C, 0xA4, 0x67, 0x00, 0x18, 0xF2, 0xCC, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, +0x18, 0x48, 0x4C, 0xEC, 0x04, 0xD4, 0x03, 0xF6, +0x81, 0xA0, 0x10, 0x6B, 0x8D, 0xEB, 0xC0, 0xF0, +0x97, 0xA0, 0x03, 0xF6, 0x61, 0xC0, 0x01, 0x6B, +0x8C, 0xEB, 0x4C, 0xEB, 0x26, 0x23, 0xC0, 0xF0, +0x59, 0xA0, 0xFF, 0x72, 0x2C, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF2, 0x48, 0x9A, 0x00, 0x6B, +0x30, 0xF0, 0x20, 0x69, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF2, 0x4C, 0x9A, 0x04, 0x6B, +0xFF, 0x6C, 0x60, 0xC2, 0x00, 0xF3, 0x48, 0x99, +0x59, 0x4C, 0x00, 0x6D, 0x06, 0x6E, 0x40, 0xEA, +0xC0, 0xF0, 0xD9, 0xA0, 0x00, 0xF3, 0x48, 0x99, +0xFF, 0x6C, 0x55, 0x4C, 0x00, 0x6D, 0x06, 0x4E, +0x40, 0xEA, 0x04, 0x94, 0x00, 0x18, 0x01, 0xE8, +0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x48, 0x9A, 0x03, 0xF6, 0xC8, 0xA0, 0xFF, 0x6C, +0x55, 0x4C, 0x00, 0x6D, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x2E, 0xF7, 0x57, 0xA2, 0x04, 0x6B, +0x6C, 0xEA, 0x05, 0x2A, 0x04, 0x96, 0x83, 0x67, +0x01, 0x6D, 0x00, 0x18, 0x28, 0xCE, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x69, +0x04, 0xD2, 0x2B, 0xF1, 0x18, 0x49, 0xA0, 0xF0, +0x7B, 0xA1, 0x00, 0x6A, 0x03, 0xF6, 0x4D, 0xC1, +0x7F, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, +0x29, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x5C, 0x9A, 0xC0, 0xF0, 0x9F, 0xA1, 0x01, 0x68, +0x40, 0xEA, 0x4E, 0xE8, 0x1F, 0x28, 0x04, 0x94, +0x03, 0xF6, 0xA6, 0xA1, 0x00, 0x18, 0xBC, 0xE9, +0xA0, 0xF0, 0x7A, 0xA1, 0x01, 0x6A, 0xFF, 0x6C, +0x4C, 0xEB, 0x8C, 0xEB, 0x03, 0xF6, 0x07, 0xC1, +0x05, 0x2B, 0xA3, 0xF3, 0x7C, 0xA1, 0x6C, 0xEA, +0x8C, 0xEA, 0x09, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xEE, 0xF4, 0x12, 0xA2, 0x80, 0x18, 0x74, 0x6F, +0x05, 0x22, 0x02, 0x70, 0x03, 0x60, 0x04, 0x94, +0x00, 0x18, 0x5A, 0xCF, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, +0xA0, 0xF0, 0x7B, 0xA0, 0x00, 0x6A, 0x03, 0xF6, +0x4D, 0xC0, 0x7F, 0x6A, 0xFF, 0x69, 0x6C, 0xEA, +0x2C, 0xEC, 0x2C, 0xEA, 0x04, 0xD4, 0x37, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, 0xC0, 0xF0, 0x9F, 0xA0, 0x40, 0xEA, 0x01, 0x72, -0x00, 0xF1, 0x19, 0x61, 0xA0, 0xF0, 0x7B, 0xA0, -0x7F, 0x6A, 0xFF, 0x6C, 0x6C, 0xEA, 0x8C, 0xEA, -0x00, 0xF1, 0x11, 0x22, 0xC7, 0xF3, 0x6C, 0xA0, -0x01, 0x6A, 0x6C, 0xEA, 0x8C, 0xEA, 0x04, 0x22, -0x02, 0x6A, 0x6D, 0xEA, 0xC7, 0xF3, 0x4C, 0xC0, -0x30, 0xF0, 0x20, 0x6A, 0xEB, 0xF1, 0x74, 0xA2, -0x0F, 0x6A, 0x6C, 0xEA, 0x01, 0x72, 0x3C, 0x61, -0x24, 0x32, 0xBD, 0x67, 0x49, 0xE5, 0x68, 0xAA, -0x1F, 0xF7, 0x00, 0x6A, 0x6C, 0xEA, 0x02, 0xF0, -0x00, 0x72, 0x01, 0x60, 0x0B, 0x2A, 0x7D, 0x67, -0x24, 0x32, 0x49, 0xE3, 0x68, 0xAA, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF1, 0x40, 0x9A, 0x49, 0xE3, -0x60, 0x9A, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF1, 0x44, 0x9A, 0x4D, 0xE3, 0x60, 0x9B, -0x04, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x0F, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF6, 0x62, 0x34, -0x2B, 0xF1, 0x18, 0x4A, 0x62, 0x33, 0x03, 0xF6, -0x8B, 0xC2, 0x62, 0x33, 0xFF, 0x6C, 0x8C, 0xEB, -0x02, 0x23, 0x03, 0xF6, 0x6A, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x03, 0xF6, -0x6B, 0xA2, 0x02, 0x2B, 0x03, 0xF6, 0x6A, 0xA2, -0x30, 0xF0, 0x20, 0x6A, 0x4E, 0xF7, 0x63, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x00, 0x6B, 0x03, 0xF6, 0x6D, 0xC2, 0x03, 0xF6, -0x6E, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, -0xA8, 0x9B, 0xFF, 0xF7, 0x1F, 0x6B, 0x80, 0xAD, -0x6C, 0xEC, 0x01, 0x4C, 0x6C, 0xEC, 0x80, 0xCD, -0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF2, 0xAC, 0x9C, -0x80, 0xAD, 0x6C, 0xEC, 0x01, 0x4C, 0x6C, 0xEC, -0x80, 0xCD, 0x24, 0xF5, 0x6C, 0x9A, 0x40, 0xF1, -0x96, 0xA2, 0x01, 0x4B, 0x24, 0xF5, 0x6C, 0xDA, -0x01, 0x6B, 0x8C, 0xEB, 0x05, 0x23, 0x43, 0xF6, -0x6C, 0xA2, 0x01, 0x4B, 0x43, 0xF6, 0x6C, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, 0x50, 0x9A, -0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF2, 0x48, 0x9A, 0x02, 0x6B, 0x60, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x03, 0xF6, 0x85, 0xA2, 0x03, 0x6B, 0x6B, 0xEB, -0x8C, 0xEB, 0x11, 0x6C, 0x8B, 0xEC, 0x8C, 0xEB, -0xA0, 0xF0, 0x9A, 0xA2, 0x03, 0xF6, 0x65, 0xC2, +0x2E, 0x61, 0xA0, 0xF0, 0x7C, 0xA0, 0x0F, 0x6A, +0x6C, 0xEA, 0x2C, 0xEA, 0x01, 0x69, 0x06, 0x22, +0xE3, 0xF5, 0x3D, 0xA0, 0x01, 0x6A, 0x32, 0x31, +0x4E, 0xE9, 0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xF0, 0x9A, 0xA2, 0x01, 0x6B, 0x6C, 0xEC, 0x06, 0x2C, 0xA3, 0xF3, 0x5C, 0xA2, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, -0x04, 0x22, 0x91, 0x67, 0x80, 0x18, 0x7D, 0x40, -0x03, 0x10, 0x91, 0x67, 0x00, 0x18, 0x23, 0xD1, -0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, -0x03, 0xF6, 0x60, 0xA0, 0x40, 0x6A, 0x6C, 0xEA, -0x55, 0x22, 0x03, 0xF6, 0x81, 0xA0, 0x10, 0x6B, -0xFF, 0x6D, 0x44, 0x67, 0x6C, 0xEA, 0xAC, 0xEA, -0x22, 0x2A, 0x03, 0xF6, 0x4B, 0xA0, 0x03, 0xF6, -0xAA, 0xA0, 0xAE, 0xEA, 0x47, 0x2A, 0x8D, 0xEB, -0x91, 0x67, 0x03, 0xF6, 0x61, 0xC0, 0x00, 0x18, -0x66, 0xEA, 0x91, 0x67, 0x00, 0x18, 0x7B, 0xE8, -0x00, 0x18, 0x0E, 0xC9, 0x06, 0x2A, 0x91, 0x67, -0x00, 0x18, 0xB2, 0xE8, 0x91, 0x67, 0x00, 0x18, -0xAB, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x03, 0xF6, 0x6B, 0xA2, 0xFF, 0x4B, -0x03, 0xF6, 0x6B, 0xC2, 0x2B, 0x10, 0xA0, 0xF0, -0x7C, 0xA0, 0x0F, 0x6A, 0x6C, 0xEA, 0x01, 0x72, -0x25, 0x61, 0x03, 0xF6, 0x4B, 0xA0, 0x08, 0xD2, -0x08, 0x93, 0x03, 0xF6, 0x4A, 0xA0, 0x6E, 0xEA, -0x1D, 0x22, 0x91, 0x67, 0x00, 0x18, 0x5B, 0xEA, -0x08, 0x94, 0x8E, 0xEA, 0x17, 0x22, 0x03, 0xF6, -0x60, 0xA0, 0x20, 0x6A, 0xFF, 0x6D, 0x6C, 0xEA, -0xAC, 0xEA, 0x10, 0x22, 0x03, 0xF6, 0x61, 0xA0, -0x11, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x91, 0x67, -0x03, 0xF6, 0x41, 0xC0, 0x00, 0x18, 0xA1, 0xE8, -0x91, 0x67, 0x00, 0x18, 0x8C, 0xE8, 0x91, 0x67, -0x00, 0x18, 0x85, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x03, 0xF6, 0x80, 0xA2, -0x01, 0x6B, 0x03, 0xF6, 0x71, 0xC2, 0x20, 0x6B, -0x8D, 0xEB, 0x03, 0xF6, 0x60, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xF0, -0x9A, 0xA2, 0x02, 0x6B, 0x6C, 0xEC, 0x06, 0x24, -0xA3, 0xF3, 0x5C, 0xA2, 0x6C, 0xEA, 0xFF, 0x6B, -0x6C, 0xEA, 0x0A, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x03, 0xF6, 0x80, 0xA2, -0x20, 0x6B, 0x8D, 0xEB, 0x03, 0xF6, 0x60, 0xC2, -0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xF2, 0x63, 0x1B, 0x62, -0x1A, 0xD1, 0x19, 0xD0, 0xFF, 0x69, 0x2C, 0xEC, -0xAC, 0xE9, 0x76, 0x24, 0x30, 0xF0, 0x20, 0x68, -0x2B, 0xF1, 0x18, 0x48, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x5C, 0x9A, 0xC0, 0xF0, 0x9F, 0xA0, -0x40, 0xEA, 0x01, 0x72, 0x69, 0x61, 0x03, 0xF6, -0x61, 0xA0, 0x05, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x0E, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF4, +0x72, 0xA2, 0x02, 0x6A, 0x4E, 0xEB, 0x6B, 0xEA, +0x6D, 0xEA, 0xC0, 0xF7, 0x43, 0x32, 0x4C, 0xE9, +0x80, 0x18, 0x74, 0x6F, 0x04, 0x22, 0x03, 0x21, +0x04, 0x94, 0x00, 0x18, 0x5A, 0xCF, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xF2, 0x63, 0x1B, 0x62, 0x1A, 0xD1, 0x19, 0xD0, +0xFF, 0x69, 0x8C, 0xE9, 0x30, 0xF0, 0x20, 0x68, +0x91, 0x67, 0x2B, 0xF1, 0x18, 0x48, 0x00, 0x18, +0x97, 0xCD, 0xE3, 0xF5, 0x5F, 0xA0, 0x0C, 0x72, +0x41, 0x60, 0xD1, 0x67, 0x0C, 0x6C, 0x00, 0x6D, +0x00, 0x18, 0x28, 0xCE, 0x00, 0x6C, 0xA4, 0x67, +0x00, 0x18, 0xF2, 0xCC, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, 0xC5, 0x67, +0xFF, 0x6C, 0x40, 0xEA, 0xE3, 0xF5, 0x7D, 0xA0, +0x01, 0x6A, 0x0C, 0x04, 0x6D, 0xEA, 0x00, 0x6D, +0x30, 0x6E, 0xE3, 0xF5, 0x5D, 0xC0, 0x00, 0x18, +0x3D, 0xD7, 0xA0, 0xF0, 0x4A, 0xA0, 0x7D, 0x67, +0x40, 0xF0, 0x2C, 0xC3, 0x40, 0xF0, 0x48, 0xCB, +0x08, 0x6A, 0x40, 0xF0, 0x4B, 0xC3, 0x10, 0xF0, +0x23, 0x6A, 0x46, 0xF1, 0x11, 0x4A, 0x0C, 0xD2, +0x10, 0xF0, 0x23, 0x6A, 0xC4, 0xF1, 0x01, 0x4A, +0x0D, 0xD2, 0x04, 0x04, 0x00, 0x6A, 0x10, 0x03, +0x05, 0x10, 0x59, 0xE3, 0xC0, 0xA6, 0x55, 0xE4, +0x01, 0x4A, 0xC0, 0xC5, 0x20, 0x5A, 0xF9, 0x61, +0x0C, 0x94, 0x0D, 0x95, 0x0E, 0x96, 0x0F, 0x97, +0x00, 0x18, 0x1A, 0xE5, 0x1B, 0x97, 0x1A, 0x91, +0x19, 0x90, 0x0E, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0x2B, 0xF1, 0x18, 0x4B, 0xA0, 0xF0, 0xDB, 0xA3, +0x7F, 0x6D, 0xFF, 0x6A, 0xCC, 0xED, 0x01, 0x75, +0x4C, 0xEC, 0x16, 0x61, 0x03, 0xF6, 0xC1, 0xA3, +0x01, 0x6D, 0xCD, 0xED, 0x03, 0xF6, 0xA1, 0xC3, +0xA0, 0xF0, 0xBC, 0xA3, 0x10, 0x6B, 0x6B, 0xEB, +0xAC, 0xEB, 0x4C, 0xEB, 0x20, 0x73, 0x06, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, 0x40, 0x9A, +0x40, 0xEA, 0x02, 0x10, 0x00, 0x18, 0xD0, 0xCF, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0x2B, 0xF1, 0x18, 0x4B, 0xA0, 0xF0, 0xBA, 0xA3, +0xC4, 0x67, 0x01, 0x6C, 0xFF, 0x6A, 0x8C, 0xED, +0x4C, 0xED, 0x4C, 0xEE, 0x05, 0x2D, 0xA3, 0xF3, +0xBC, 0xA3, 0xAC, 0xEC, 0x4C, 0xEC, 0x07, 0x24, +0x30, 0xF0, 0x20, 0x6A, 0xAE, 0xF7, 0x90, 0xA2, +0x80, 0x18, 0xEF, 0x70, 0x05, 0x10, 0x63, 0xF6, +0x98, 0xA3, 0x01, 0x6D, 0x00, 0x18, 0x28, 0xCE, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, +0x40, 0xF1, 0xB6, 0xA3, 0x24, 0x67, 0x01, 0x6C, +0xFF, 0x6A, 0xAC, 0xEC, 0x4C, 0xEC, 0x4C, 0xE9, +0x05, 0x24, 0x43, 0xF6, 0x48, 0xA3, 0x01, 0x4A, +0x43, 0xF6, 0x48, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0xE3, 0xF5, 0x9C, 0xA2, +0x40, 0x6B, 0x8C, 0xEB, 0x0A, 0x23, 0xE3, 0xF5, +0x7D, 0xA2, 0x10, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, +0x6C, 0xEA, 0x03, 0x22, 0x91, 0x67, 0x00, 0x18, +0x01, 0xE8, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, +0x18, 0x48, 0xE3, 0xF5, 0x7C, 0xA0, 0x02, 0x6A, +0x6C, 0xEA, 0x10, 0x22, 0x03, 0x6A, 0x4B, 0xEA, +0x4C, 0xEB, 0xE3, 0xF5, 0x7C, 0xC0, 0x03, 0xF6, +0x61, 0xA0, 0x6C, 0xEA, 0x03, 0xF6, 0x41, 0xC0, +0x03, 0xF6, 0x41, 0xA0, 0x07, 0x6B, 0x6C, 0xEA, +0x65, 0x2A, 0x61, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF2, 0x88, 0x9A, 0xFF, 0xF7, 0x1F, 0x6A, +0x60, 0xAC, 0x4C, 0xEB, 0x01, 0x4B, 0x4C, 0xEB, +0x60, 0xCC, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, +0x88, 0x9B, 0x60, 0xAC, 0x4C, 0xEB, 0x01, 0x4B, +0x4C, 0xEB, 0x60, 0xCC, 0x24, 0xF5, 0x4C, 0x98, +0x03, 0xF6, 0x61, 0xA0, 0x01, 0x4A, 0x24, 0xF5, +0x4C, 0xD8, 0x03, 0xF6, 0x49, 0xA0, 0x01, 0x4A, +0x03, 0xF6, 0x49, 0xC0, 0x11, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x03, 0xF6, 0x41, 0xC0, 0x03, 0xF6, +0x69, 0xA0, 0xC0, 0xF0, 0x42, 0xA0, 0x63, 0xEA, +0x36, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x5C, 0x9A, 0xC0, 0xF0, 0x9F, 0xA0, 0x40, 0xEA, +0x01, 0x6B, 0x6E, 0xEA, 0x2F, 0x2A, 0xA0, 0xF0, +0x9C, 0xA0, 0xEF, 0x4B, 0x8C, 0xEB, 0xFF, 0x6C, +0x8C, 0xEB, 0x07, 0x2B, 0xE3, 0xF5, 0x7C, 0xA0, +0xDF, 0x4A, 0x6C, 0xEA, 0xE3, 0xF5, 0x5C, 0xC0, +0x21, 0x10, 0x03, 0xF6, 0x6A, 0xA0, 0x01, 0x4B, +0x03, 0xF6, 0x6A, 0xC0, 0x03, 0xF6, 0x6A, 0xA0, +0x02, 0x5B, 0x0A, 0x61, 0xE3, 0xF5, 0x9C, 0xA0, +0x21, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xE3, 0xF5, +0x7C, 0xC0, 0x03, 0xF6, 0x4A, 0xC0, 0x03, 0x10, +0x91, 0x67, 0x00, 0x18, 0xD0, 0xCF, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x00, 0x6B, +0x03, 0xF6, 0x69, 0xC2, 0x03, 0x10, 0x91, 0x67, +0x00, 0x18, 0x10, 0xD0, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x6A, 0x8C, 0xEA, +0xC2, 0xF2, 0x84, 0x9B, 0xC2, 0xF2, 0x04, 0x4B, +0x04, 0xD4, 0x81, 0x9B, 0x64, 0xAB, 0x05, 0xD4, +0x9D, 0x67, 0x6C, 0xCC, 0x44, 0x33, 0x6D, 0xE4, +0x88, 0xAB, 0x1F, 0xF7, 0x00, 0x6B, 0x8C, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x0B, 0x2B, +0x9D, 0x67, 0x44, 0x33, 0x6D, 0xE4, 0x88, 0xAB, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, 0x64, 0x9B, +0x6D, 0xE4, 0x60, 0xAB, 0x06, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF1, 0x68, 0x9B, 0x71, 0xE4, +0x60, 0xAC, 0xFF, 0xF7, 0x1F, 0x68, 0x6C, 0xE8, +0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x80, 0xA3, +0x01, 0x6B, 0x8C, 0xEB, 0x03, 0x23, 0xE7, 0xF7, +0x1F, 0x6B, 0x6C, 0xE8, 0x18, 0xF0, 0x00, 0x6B, +0x0C, 0xEB, 0x13, 0x2B, 0x30, 0xF0, 0x20, 0x6C, +0x2B, 0xF1, 0x18, 0x4C, 0x03, 0xF6, 0xA1, 0xA4, +0xFE, 0x4B, 0xAC, 0xEB, 0x05, 0x6D, 0xAB, 0xED, +0xAC, 0xEB, 0x02, 0x4D, 0xAC, 0xEB, 0x03, 0xF6, +0x61, 0xC4, 0x82, 0x67, 0x00, 0x18, 0x10, 0xD0, +0x3E, 0x10, 0x08, 0xF0, 0x00, 0x6B, 0x0C, 0xEB, +0x04, 0x23, 0x82, 0x67, 0x00, 0x18, 0xFC, 0xCF, +0x0E, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, +0x18, 0x4B, 0x03, 0xF6, 0x81, 0xA3, 0x02, 0x6A, +0x4B, 0xEA, 0x8C, 0xEA, 0x05, 0x6C, 0x8B, 0xEC, +0x8C, 0xEA, 0x03, 0xF6, 0x41, 0xC3, 0x02, 0x30, +0x1E, 0x30, 0x1A, 0x20, 0x30, 0xF0, 0x20, 0x68, +0x2B, 0xF1, 0x18, 0x48, 0x03, 0xF6, 0x41, 0xA0, +0x02, 0x69, 0xC0, 0xF0, 0xC3, 0xA0, 0x2D, 0xEA, 0x03, 0xF6, 0x41, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF2, 0x50, 0x9A, 0xFF, 0x6C, 0x0F, 0x6D, -0x2B, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x40, 0xF4, 0x5C, 0x9A, 0x91, 0x67, 0x02, 0x6D, -0x40, 0xEA, 0x63, 0xF6, 0x5F, 0xA0, 0x01, 0x68, -0x01, 0x2A, 0x08, 0x68, 0x0C, 0x04, 0x00, 0x6D, -0x30, 0x6E, 0x00, 0x18, 0xE7, 0xD7, 0x30, 0xF0, -0x20, 0x6A, 0xEB, 0xF1, 0x42, 0xA2, 0x7D, 0x67, -0x40, 0xF0, 0x0B, 0xC3, 0x40, 0xF0, 0x48, 0xCB, -0x10, 0xF0, 0x23, 0x6A, 0xE6, 0xF3, 0x1D, 0x4A, -0x0C, 0xD2, 0x10, 0xF0, 0x23, 0x6A, 0xE3, 0xF3, -0x11, 0x4A, 0x40, 0xF0, 0x2C, 0xC3, 0x0D, 0xD2, -0x04, 0x04, 0x00, 0x6A, 0x10, 0x03, 0x05, 0x10, -0x59, 0xE3, 0xC0, 0xA6, 0x55, 0xE4, 0x01, 0x4A, -0xC0, 0xC5, 0x20, 0x5A, 0xF9, 0x61, 0x0C, 0x94, -0x0D, 0x95, 0x0E, 0x96, 0x0F, 0x97, 0x00, 0x18, -0xC4, 0xE5, 0x12, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF3, 0x48, 0x9A, 0xFF, 0x6C, 0x55, 0x4C, +0x00, 0x6D, 0x40, 0xEA, 0xE3, 0xF5, 0x5C, 0xA0, +0x4D, 0xE9, 0xE3, 0xF5, 0x3C, 0xC0, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0x03, 0xF6, 0x81, 0xA2, 0x03, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0x03, 0xF6, 0x61, 0xC2, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF2, 0x78, 0x9A, +0xA2, 0xF2, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x68, +0x04, 0xD3, 0x61, 0x9A, 0x44, 0xAA, 0xFF, 0x69, +0x05, 0xD3, 0x7D, 0x67, 0x4C, 0xCB, 0x2B, 0xF1, +0x18, 0x48, 0x30, 0xF0, 0x20, 0x6A, 0x8C, 0xE9, +0x80, 0xF3, 0x5C, 0x9A, 0xC0, 0xF0, 0x9F, 0xA0, +0x40, 0xEA, 0x01, 0x72, 0x00, 0xF1, 0x19, 0x61, +0xA0, 0xF0, 0x7B, 0xA0, 0x7F, 0x6A, 0xFF, 0x6C, +0x6C, 0xEA, 0x8C, 0xEA, 0x00, 0xF1, 0x11, 0x22, +0xC7, 0xF3, 0x68, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, +0x8C, 0xEA, 0x04, 0x22, 0x02, 0x6A, 0x6D, 0xEA, +0xC7, 0xF3, 0x48, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0xEB, 0xF1, 0x74, 0xA2, 0x0F, 0x6A, 0x6C, 0xEA, +0x01, 0x72, 0x3C, 0x61, 0x24, 0x32, 0xBD, 0x67, +0x49, 0xE5, 0x68, 0xAA, 0x1F, 0xF7, 0x00, 0x6A, +0x6C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, +0x0B, 0x2A, 0x7D, 0x67, 0x24, 0x32, 0x49, 0xE3, +0x68, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, +0x44, 0x9A, 0x49, 0xE3, 0x60, 0x9A, 0x06, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x48, 0x9A, +0x4D, 0xE3, 0x60, 0x9B, 0x04, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x0F, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF6, 0x62, 0x34, 0x2B, 0xF1, 0x18, 0x4A, +0x62, 0x33, 0x03, 0xF6, 0x87, 0xC2, 0x62, 0x33, +0xFF, 0x6C, 0x8C, 0xEB, 0x02, 0x23, 0x03, 0xF6, +0x66, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0x03, 0xF6, 0x67, 0xA2, 0x02, 0x2B, +0x03, 0xF6, 0x66, 0xA2, 0x30, 0xF0, 0x20, 0x6A, +0x2E, 0xF7, 0x7F, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0x00, 0x6B, 0x03, 0xF6, +0x69, 0xC2, 0x03, 0xF6, 0x6A, 0xC2, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF2, 0xAC, 0x9B, 0xFF, 0xF7, +0x1F, 0x6B, 0x80, 0xAD, 0x6C, 0xEC, 0x01, 0x4C, +0x6C, 0xEC, 0x80, 0xCD, 0x30, 0xF0, 0x20, 0x6C, +0x83, 0xF2, 0xB0, 0x9C, 0x80, 0xAD, 0x6C, 0xEC, +0x01, 0x4C, 0x6C, 0xEC, 0x80, 0xCD, 0x24, 0xF5, +0x68, 0x9A, 0x40, 0xF1, 0x96, 0xA2, 0x01, 0x4B, +0x24, 0xF5, 0x68, 0xDA, 0x01, 0x6B, 0x8C, 0xEB, +0x05, 0x23, 0x43, 0xF6, 0x68, 0xA2, 0x01, 0x4B, +0x43, 0xF6, 0x68, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF2, 0x54, 0x9A, 0x00, 0x6B, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0x4C, 0x9A, +0x02, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x03, 0xF6, 0x81, 0xA2, -0x01, 0x6B, 0x06, 0x6D, 0x8D, 0xEB, 0x03, 0xF6, -0x61, 0xC2, 0x01, 0x6C, 0x00, 0x18, 0x8B, 0xC6, -0x06, 0x6C, 0x80, 0x18, 0x6A, 0x72, 0x10, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xAE, 0xF7, 0x57, 0xA2, -0x0B, 0x22, 0x06, 0x6D, 0x01, 0x6C, 0x00, 0x18, -0x8B, 0xC6, 0x91, 0x67, 0x00, 0x18, 0xBB, 0xD0, -0x00, 0x6C, 0x02, 0x6D, 0x00, 0x18, 0x2C, 0xC9, -0x1B, 0x97, 0x1A, 0x91, 0x19, 0x90, 0x0E, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0xFF, 0x69, 0x2B, 0xF1, 0x18, 0x48, 0x30, 0xF0, -0x20, 0x6A, 0x8C, 0xE9, 0x80, 0xF3, 0x5C, 0x9A, -0xC0, 0xF0, 0x9F, 0xA0, 0x40, 0xEA, 0x01, 0x72, -0x12, 0x61, 0x03, 0xF6, 0x60, 0xA0, 0x21, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0x03, 0xF6, 0x40, 0xC0, -0x03, 0xF6, 0x43, 0xA0, 0x04, 0x6B, 0x6C, 0xEA, -0x0C, 0x2A, 0x83, 0x67, 0x01, 0x6D, 0xD1, 0x67, -0x00, 0x18, 0xD3, 0xCE, 0x06, 0x10, 0x03, 0xF6, -0x60, 0xA0, 0x20, 0x6A, 0x6D, 0xEA, 0x03, 0xF6, -0x40, 0xC0, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x2C, 0xEC, -0x01, 0x6D, 0x04, 0xD4, 0x00, 0x18, 0x5D, 0xCE, -0x04, 0x94, 0x30, 0xF0, 0x20, 0x68, 0x01, 0x6D, -0x2B, 0xF1, 0x18, 0x48, 0x00, 0x18, 0x8A, 0xCE, -0x03, 0xF6, 0x74, 0xA8, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF1, 0x40, 0x9A, 0x2C, 0xEB, 0x08, 0x6C, -0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, -0x7C, 0x9A, 0x8B, 0xEC, 0x40, 0xA3, 0x2C, 0xEA, -0x8C, 0xEA, 0x05, 0x6C, 0x8D, 0xEA, 0x2C, 0xEA, -0x40, 0xC3, 0x04, 0x94, 0x00, 0x18, 0x5B, 0xD2, -0x40, 0xF1, 0x76, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, -0x2C, 0xEA, 0x03, 0x22, 0x00, 0x6A, 0x43, 0xF6, -0x4C, 0xC0, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0x24, 0x67, -0x0C, 0xE9, 0xAC, 0xE8, 0x74, 0x29, 0x90, 0x67, -0x00, 0x6D, 0x00, 0x18, 0x5D, 0xCE, 0x90, 0x67, -0x00, 0x6D, 0x00, 0x18, 0x8A, 0xCE, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF2, 0x50, 0x9A, 0x02, 0x6B, -0x20, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, -0x48, 0x9A, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x63, 0xF6, 0x7F, 0xA2, -0x08, 0x23, 0x03, 0xF6, 0x43, 0xA2, 0x0C, 0x72, -0x04, 0x61, 0x00, 0x6C, 0xA4, 0x67, 0x00, 0x18, -0x2C, 0xC9, 0x30, 0xF0, 0x20, 0x69, 0x2B, 0xF1, -0x18, 0x49, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x5C, 0x9A, 0xC0, 0xF0, 0x9F, 0xA1, 0x40, 0xEA, -0x19, 0x2A, 0x03, 0xF6, 0x43, 0xA1, 0x04, 0x6B, -0x6C, 0xEA, 0x02, 0x2A, 0x00, 0x18, 0xC4, 0xEB, -0x90, 0x67, 0x00, 0x18, 0x12, 0xC7, 0x30, 0xF0, -0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x03, 0xF6, -0x81, 0xA3, 0x02, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, -0x03, 0x6C, 0x8B, 0xEC, 0x8C, 0xEA, 0x03, 0xF6, -0x41, 0xC3, 0x05, 0x10, 0x0C, 0x6C, 0x01, 0x6D, -0xD0, 0x67, 0x00, 0x18, 0xD3, 0xCE, 0x30, 0xF0, +0x03, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x11, 0x6C, +0x8B, 0xEC, 0x8C, 0xEB, 0xA0, 0xF0, 0x9A, 0xA2, +0x03, 0xF6, 0x61, 0xC2, 0x01, 0x6B, 0x6C, 0xEC, +0x06, 0x2C, 0xA3, 0xF3, 0x5C, 0xA2, 0x6C, 0xEA, +0xFF, 0x6B, 0x6C, 0xEA, 0x04, 0x22, 0x91, 0x67, +0x80, 0x18, 0x7D, 0x40, 0x03, 0x10, 0x91, 0x67, +0x00, 0x18, 0x78, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0x2B, 0xF1, 0x18, 0x48, 0xE3, 0xF5, 0x7C, 0xA0, +0x40, 0x6A, 0x6C, 0xEA, 0x55, 0x22, 0xE3, 0xF5, +0x9D, 0xA0, 0x10, 0x6B, 0xFF, 0x6D, 0x44, 0x67, +0x6C, 0xEA, 0xAC, 0xEA, 0x22, 0x2A, 0x03, 0xF6, +0x47, 0xA0, 0x03, 0xF6, 0xA6, 0xA0, 0xAE, 0xEA, +0x47, 0x2A, 0x8D, 0xEB, 0x91, 0x67, 0xE3, 0xF5, +0x7D, 0xC0, 0x00, 0x18, 0xBC, 0xE9, 0x91, 0x67, +0x00, 0x18, 0xD1, 0xE7, 0x00, 0x18, 0x44, 0xC8, +0x06, 0x2A, 0x91, 0x67, 0x00, 0x18, 0x08, 0xE8, +0x91, 0x67, 0x00, 0x18, 0x01, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x03, 0xF6, -0x80, 0xA2, 0x05, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, -0x03, 0xF6, 0x60, 0xC2, 0xC0, 0xF0, 0x77, 0xA2, -0x01, 0x6A, 0x6C, 0xEA, 0x0C, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF2, 0x44, 0x9A, 0x00, 0x6B, -0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, -0x48, 0x9A, 0x04, 0x6B, 0x60, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x40, 0xF1, -0x96, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, -0x40, 0xF1, 0x76, 0xC2, 0x05, 0x10, 0x01, 0x71, -0x03, 0x61, 0x90, 0x67, 0x00, 0x18, 0x73, 0xD2, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x30, 0xF0, -0x20, 0x68, 0x2C, 0xEC, 0x2B, 0xF1, 0x18, 0x48, -0x04, 0xD4, 0x00, 0x18, 0xDC, 0xCB, 0xA0, 0xF0, -0x9B, 0xA0, 0x7F, 0x6A, 0x04, 0x95, 0x4C, 0xEC, -0x2C, 0xEC, 0x00, 0x18, 0x8F, 0xD2, 0xA0, 0xF0, -0x5B, 0xA0, 0x7F, 0x6B, 0x6C, 0xEA, 0x2C, 0xEA, -0x0E, 0x2A, 0x00, 0x6C, 0x01, 0x6D, 0x00, 0x18, -0x9D, 0xCD, 0xC7, 0xF3, 0x6C, 0xA0, 0x02, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0xC7, 0xF3, 0x4C, 0xC0, -0x02, 0x6C, 0x00, 0x6D, 0x16, 0x10, 0xA0, 0xF0, -0x5C, 0xA0, 0xA0, 0xF0, 0xBD, 0xA0, 0x0F, 0x6C, -0x4C, 0xEC, 0x2C, 0xEC, 0x00, 0x18, 0xC1, 0xC6, -0x00, 0x18, 0xE5, 0xEA, 0xC7, 0xF3, 0x6C, 0xA0, -0x01, 0x6A, 0x02, 0x6C, 0x6D, 0xEA, 0x03, 0x6B, -0x6B, 0xEB, 0x6C, 0xEA, 0xC7, 0xF3, 0x4C, 0xC0, -0x01, 0x6D, 0x00, 0x18, 0x36, 0xE5, 0x09, 0x97, +0x67, 0xA2, 0xFF, 0x4B, 0x03, 0xF6, 0x67, 0xC2, +0x2B, 0x10, 0xA0, 0xF0, 0x7C, 0xA0, 0x0F, 0x6A, +0x6C, 0xEA, 0x01, 0x72, 0x25, 0x61, 0x03, 0xF6, +0x47, 0xA0, 0x08, 0xD2, 0x08, 0x93, 0x03, 0xF6, +0x46, 0xA0, 0x6E, 0xEA, 0x1D, 0x22, 0x91, 0x67, +0x00, 0x18, 0xB1, 0xE9, 0x08, 0x94, 0x8E, 0xEA, +0x17, 0x22, 0xE3, 0xF5, 0x7C, 0xA0, 0x20, 0x6A, +0xFF, 0x6D, 0x6C, 0xEA, 0xAC, 0xEA, 0x10, 0x22, +0xE3, 0xF5, 0x7D, 0xA0, 0x11, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x91, 0x67, 0xE3, 0xF5, 0x5D, 0xC0, +0x00, 0x18, 0xF7, 0xE7, 0x91, 0x67, 0x00, 0x18, +0xE2, 0xE7, 0x91, 0x67, 0x00, 0x18, 0xDB, 0xE7, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0xE3, 0xF5, 0x9C, 0xA2, 0x01, 0x6B, 0x03, 0xF6, +0x6D, 0xC2, 0x20, 0x6B, 0x8D, 0xEB, 0xE3, 0xF5, +0x7C, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0xA0, 0xF0, 0x9A, 0xA2, 0x02, 0x6B, +0x6C, 0xEC, 0x06, 0x24, 0xA3, 0xF3, 0x5C, 0xA2, +0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x0A, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0xE3, 0xF5, 0x9C, 0xA2, 0x20, 0x6B, 0x8D, 0xEB, +0xE3, 0xF5, 0x7C, 0xC2, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF2, 0x63, 0x1B, 0x62, 0x1A, 0xD1, 0x19, 0xD0, +0xFF, 0x69, 0x2C, 0xEC, 0xAC, 0xE9, 0x76, 0x24, +0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, +0xC0, 0xF0, 0x9F, 0xA0, 0x40, 0xEA, 0x01, 0x72, +0x69, 0x61, 0xE3, 0xF5, 0x7D, 0xA0, 0x05, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xE3, 0xF5, 0x5D, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, +0xFF, 0x6C, 0x0F, 0x6D, 0x2B, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x5C, 0x9A, +0x91, 0x67, 0x02, 0x6D, 0x40, 0xEA, 0x63, 0xF6, +0x5B, 0xA0, 0x01, 0x68, 0x01, 0x2A, 0x08, 0x68, +0x0C, 0x04, 0x00, 0x6D, 0x30, 0x6E, 0x00, 0x18, +0x3D, 0xD7, 0x30, 0xF0, 0x20, 0x6A, 0xEB, 0xF1, +0x42, 0xA2, 0x7D, 0x67, 0x40, 0xF0, 0x0B, 0xC3, +0x40, 0xF0, 0x48, 0xCB, 0x10, 0xF0, 0x23, 0x6A, +0x46, 0xF1, 0x11, 0x4A, 0x0C, 0xD2, 0x10, 0xF0, +0x23, 0x6A, 0xC4, 0xF1, 0x01, 0x4A, 0x40, 0xF0, +0x2C, 0xC3, 0x0D, 0xD2, 0x04, 0x04, 0x00, 0x6A, +0x10, 0x03, 0x05, 0x10, 0x59, 0xE3, 0xC0, 0xA6, +0x55, 0xE4, 0x01, 0x4A, 0xC0, 0xC5, 0x20, 0x5A, +0xF9, 0x61, 0x0C, 0x94, 0x0D, 0x95, 0x0E, 0x96, +0x0F, 0x97, 0x00, 0x18, 0x1A, 0xE5, 0x12, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0xE3, 0xF5, 0x9D, 0xA2, 0x01, 0x6B, 0x06, 0x6D, +0x8D, 0xEB, 0xE3, 0xF5, 0x7D, 0xC2, 0x01, 0x6C, +0x00, 0x18, 0xD7, 0xC5, 0x06, 0x6C, 0x80, 0x18, +0xBF, 0x70, 0x10, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xAE, 0xF7, 0x53, 0xA2, 0x0B, 0x22, 0x06, 0x6D, +0x01, 0x6C, 0x00, 0x18, 0xD7, 0xC5, 0x91, 0x67, +0x00, 0x18, 0x10, 0xD0, 0x00, 0x6C, 0x02, 0x6D, +0x00, 0x18, 0x62, 0xC8, 0x1B, 0x97, 0x1A, 0x91, +0x19, 0x90, 0x0E, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xFF, 0x69, 0x2B, 0xF1, +0x18, 0x48, 0x30, 0xF0, 0x20, 0x6A, 0x8C, 0xE9, +0x80, 0xF3, 0x5C, 0x9A, 0xC0, 0xF0, 0x9F, 0xA0, +0x40, 0xEA, 0x01, 0x72, 0x12, 0x61, 0xE3, 0xF5, +0x7C, 0xA0, 0x21, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xE3, 0xF5, 0x5C, 0xC0, 0xE3, 0xF5, 0x5F, 0xA0, +0x04, 0x6B, 0x6C, 0xEA, 0x0C, 0x2A, 0x83, 0x67, +0x01, 0x6D, 0xD1, 0x67, 0x00, 0x18, 0x28, 0xCE, +0x06, 0x10, 0xE3, 0xF5, 0x7C, 0xA0, 0x20, 0x6A, +0x6D, 0xEA, 0xE3, 0xF5, 0x5C, 0xC0, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x69, 0x2C, 0xEC, 0x01, 0x6D, 0x04, 0xD4, +0x00, 0x18, 0xB2, 0xCD, 0x04, 0x94, 0x30, 0xF0, +0x20, 0x68, 0x01, 0x6D, 0x2B, 0xF1, 0x18, 0x48, +0x00, 0x18, 0xDF, 0xCD, 0x03, 0xF6, 0x70, 0xA8, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, 0x44, 0x9A, +0x2C, 0xEB, 0x08, 0x6C, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF2, 0x60, 0x9A, 0x8B, 0xEC, +0x40, 0xA3, 0x2C, 0xEA, 0x8C, 0xEA, 0x05, 0x6C, +0x8D, 0xEA, 0x2C, 0xEA, 0x40, 0xC3, 0x04, 0x94, +0x00, 0x18, 0xB0, 0xD1, 0x40, 0xF1, 0x76, 0xA0, +0x01, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x03, 0x22, +0x00, 0x6A, 0x43, 0xF6, 0x48, 0xC0, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x40, 0xA4, 0x25, 0x67, 0x1B, 0x2A, 0x30, 0xF0, -0x20, 0x68, 0x08, 0xF7, 0x18, 0x48, 0x40, 0xC0, -0x41, 0xC0, 0x2C, 0x6A, 0x41, 0xC8, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0x30, 0xF0, -0x20, 0x6D, 0x84, 0x40, 0x6F, 0xF6, 0x04, 0x4D, -0x2C, 0x6E, 0x40, 0xEA, 0xC2, 0xA0, 0xFF, 0x6A, -0x91, 0x67, 0x04, 0x4E, 0xB0, 0x67, 0x4C, 0xEE, -0x80, 0x18, 0xFB, 0x69, 0x07, 0x97, 0x06, 0x91, +0xFF, 0x68, 0x24, 0x67, 0x0C, 0xE9, 0xAC, 0xE8, +0x74, 0x29, 0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, +0xB2, 0xCD, 0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, +0xDF, 0xCD, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, +0x54, 0x9A, 0x02, 0x6B, 0x20, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF2, 0x4C, 0x9A, 0x60, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0x63, 0xF6, 0x7B, 0xA2, 0x08, 0x23, 0xE3, 0xF5, +0x5F, 0xA2, 0x0C, 0x72, 0x04, 0x61, 0x00, 0x6C, +0xA4, 0x67, 0x00, 0x18, 0x62, 0xC8, 0x30, 0xF0, +0x20, 0x69, 0x2B, 0xF1, 0x18, 0x49, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, 0xC0, 0xF0, +0x9F, 0xA1, 0x40, 0xEA, 0x19, 0x2A, 0xE3, 0xF5, +0x5F, 0xA1, 0x04, 0x6B, 0x6C, 0xEA, 0x02, 0x2A, +0x00, 0x18, 0x1A, 0xEB, 0x90, 0x67, 0x00, 0x18, +0x48, 0xC6, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, +0x18, 0x4B, 0xE3, 0xF5, 0x9D, 0xA3, 0x02, 0x6A, +0x4B, 0xEA, 0x8C, 0xEA, 0x03, 0x6C, 0x8B, 0xEC, +0x8C, 0xEA, 0xE3, 0xF5, 0x5D, 0xC3, 0x05, 0x10, +0x0C, 0x6C, 0x01, 0x6D, 0xD0, 0x67, 0x00, 0x18, +0x28, 0xCE, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0xE3, 0xF5, 0x9C, 0xA2, 0x05, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0xE3, 0xF5, 0x7C, 0xC2, +0xC0, 0xF0, 0x77, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0x0C, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, +0x48, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF2, 0x4C, 0x9A, 0x04, 0x6B, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0x40, 0xF1, 0x96, 0xA2, 0x02, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0x40, 0xF1, 0x76, 0xC2, +0x05, 0x10, 0x01, 0x71, 0x03, 0x61, 0x90, 0x67, +0x00, 0x18, 0xC8, 0xD1, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0xDD, 0x67, 0x44, 0x67, -0x98, 0xAE, 0xFF, 0x6B, 0x6C, 0xED, 0x04, 0x5C, -0x10, 0x61, 0x03, 0x25, 0x01, 0x75, 0x0D, 0x60, -0x05, 0x10, 0x87, 0x67, 0xA2, 0x67, 0x00, 0x18, -0xF6, 0xD2, 0x07, 0x10, 0x8C, 0xEB, 0x03, 0x6D, -0x04, 0x6C, 0x01, 0x6E, 0x04, 0xD3, 0x80, 0x18, -0xB9, 0x69, 0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, -0xFF, 0x6B, 0x6C, 0xEC, 0x01, 0x6A, 0x8E, 0xEA, -0x01, 0x5A, 0x58, 0x67, 0x6C, 0xEA, 0x20, 0xE8, -0xFF, 0x6A, 0x4C, 0xEC, 0x01, 0x74, 0x0C, 0x61, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, 0x74, 0x9B, -0x10, 0x6C, 0x75, 0xE5, 0x60, 0xA5, 0x4C, 0xEB, -0x8D, 0xEB, 0x4C, 0xEB, 0x60, 0xC5, 0x20, 0xE8, -0x09, 0x2C, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, -0x54, 0x9A, 0x55, 0xE5, 0x60, 0xA5, 0xEF, 0x6A, -0x6C, 0xEA, 0x40, 0xC5, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF2, 0x58, 0x9A, 0xFF, 0x6B, 0x40, 0xA2, -0x6C, 0xEA, 0x52, 0x32, 0x6C, 0xEA, 0x11, 0x2A, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF2, 0x54, 0x9A, 0xEB, 0xF1, 0x81, 0xA3, -0x00, 0x6D, 0x18, 0x6E, 0xE5, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, 0x54, 0x9A, -0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFF, 0xF7, 0x1F, 0x6A, 0xAC, 0xEA, 0xFF, 0x6B, -0xA2, 0x67, 0x42, 0x32, 0x6C, 0xED, 0x6C, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, 0x7C, 0x9B, -0x6D, 0xE4, 0xA0, 0xC3, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF2, 0x60, 0x9B, 0x71, 0xE4, 0x40, 0xC4, -0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0xFF, 0xF7, 0x1F, 0x68, 0x83, 0xF2, 0x78, 0x9B, -0x0C, 0xED, 0x04, 0xD5, 0x60, 0xA3, 0xFF, 0x6A, -0x24, 0x67, 0x4C, 0xE9, 0x2D, 0x23, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF2, 0x7C, 0x9B, 0x00, 0x6C, -0xFF, 0x6D, 0x60, 0xA3, 0x36, 0x6E, 0x6C, 0xEA, -0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, -0x50, 0x9A, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x20, 0xF4, 0x5C, 0x9A, 0x40, 0xEA, 0x01, 0x72, -0x0E, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, -0x54, 0x9A, 0x00, 0x6E, 0x91, 0x67, 0x01, 0x6D, -0xE6, 0x67, 0x40, 0xEA, 0x04, 0x95, 0x82, 0x67, -0x0C, 0xEC, 0x00, 0x18, 0x3A, 0xD3, 0x30, 0xF0, -0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0x05, 0x95, -0x00, 0x6C, 0x37, 0x6E, 0x40, 0xEA, 0x0E, 0x10, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x69, 0x30, 0xF0, 0x20, 0x68, 0x2C, 0xEC, +0x2B, 0xF1, 0x18, 0x48, 0x04, 0xD4, 0x00, 0x18, +0x2D, 0xCB, 0xA0, 0xF0, 0x9B, 0xA0, 0x7F, 0x6A, +0x04, 0x95, 0x4C, 0xEC, 0x2C, 0xEC, 0x00, 0x18, +0xE4, 0xD1, 0xA0, 0xF0, 0x5B, 0xA0, 0x7F, 0x6B, +0x6C, 0xEA, 0x2C, 0xEA, 0x0E, 0x2A, 0x00, 0x6C, +0x01, 0x6D, 0x00, 0x18, 0xF2, 0xCC, 0xC7, 0xF3, +0x68, 0xA0, 0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xC7, 0xF3, 0x48, 0xC0, 0x02, 0x6C, 0x00, 0x6D, +0x16, 0x10, 0xA0, 0xF0, 0x5C, 0xA0, 0xA0, 0xF0, +0xBD, 0xA0, 0x0F, 0x6C, 0x4C, 0xEC, 0x2C, 0xEC, +0x00, 0x18, 0x0D, 0xC6, 0x00, 0x18, 0x3B, 0xEA, +0xC7, 0xF3, 0x68, 0xA0, 0x01, 0x6A, 0x02, 0x6C, +0x6D, 0xEA, 0x03, 0x6B, 0x6B, 0xEB, 0x6C, 0xEA, +0xC7, 0xF3, 0x48, 0xC0, 0x01, 0x6D, 0x00, 0x18, +0x8C, 0xE4, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x40, 0xA4, 0x25, 0x67, +0x1B, 0x2A, 0x30, 0xF0, 0x20, 0x68, 0x08, 0xF7, +0x18, 0x48, 0x40, 0xC0, 0x41, 0xC0, 0x2C, 0x6A, +0x41, 0xC8, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6D, 0x84, 0x40, +0x6F, 0xF6, 0x00, 0x4D, 0x2C, 0x6E, 0x40, 0xEA, +0xC2, 0xA0, 0xFF, 0x6A, 0x91, 0x67, 0x04, 0x4E, +0xB0, 0x67, 0x4C, 0xEE, 0x80, 0x18, 0x1F, 0x68, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0xDD, 0x67, 0x44, 0x67, 0x98, 0xAE, 0xFF, 0x6B, +0x6C, 0xED, 0x04, 0x5C, 0x10, 0x61, 0x03, 0x25, +0x01, 0x75, 0x0D, 0x60, 0x05, 0x10, 0x87, 0x67, +0xA2, 0x67, 0x00, 0x18, 0x4B, 0xD2, 0x07, 0x10, +0x8C, 0xEB, 0x03, 0x6D, 0x04, 0x6C, 0x01, 0x6E, +0x04, 0xD3, 0x80, 0x18, 0xDD, 0x67, 0x07, 0x97, +0x04, 0x63, 0x00, 0xEF, 0xFF, 0x6B, 0x6C, 0xEC, +0x01, 0x6A, 0x8E, 0xEA, 0x01, 0x5A, 0x58, 0x67, +0x6C, 0xEA, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xEC, +0x01, 0x74, 0x0C, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF2, 0x78, 0x9B, 0x10, 0x6C, 0x75, 0xE5, +0x60, 0xA5, 0x4C, 0xEB, 0x8D, 0xEB, 0x4C, 0xEB, +0x60, 0xC5, 0x20, 0xE8, 0x09, 0x2C, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF2, 0x58, 0x9A, 0x55, 0xE5, +0x60, 0xA5, 0xEF, 0x6A, 0x6C, 0xEA, 0x40, 0xC5, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, 0x5C, 0x9A, +0xFF, 0x6B, 0x40, 0xA2, 0x6C, 0xEA, 0x52, 0x32, +0x6C, 0xEA, 0x11, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x54, 0x9A, -0x00, 0x6E, 0x91, 0x67, 0x01, 0x6D, 0xE6, 0x67, -0x40, 0xEA, 0x04, 0x95, 0x82, 0x67, 0x0C, 0xEC, -0x00, 0x18, 0x3A, 0xD3, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF2, 0x5C, 0x9A, 0x6F, 0x6D, 0x90, 0x6C, -0x60, 0xA2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, -0x50, 0x9A, 0x6C, 0xED, 0x38, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, 0x54, 0x9A, -0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF2, 0x78, 0x9B, 0xFF, 0x6A, 0x04, 0x67, -0x60, 0xA3, 0x25, 0x67, 0x4C, 0xE8, 0x4C, 0xEB, -0x72, 0x33, 0x4C, 0xEB, 0x4C, 0xE9, 0x3F, 0x23, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0x7C, 0x9B, -0x00, 0x6C, 0xFF, 0x6D, 0x60, 0xA3, 0x29, 0x6E, -0x6C, 0xEA, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF2, 0x50, 0x9A, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, 0x40, 0xEA, -0x01, 0x72, 0x20, 0x61, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0xEB, 0xF1, 0x83, 0xA3, -0xA0, 0xF2, 0x54, 0x9A, 0x00, 0x6F, 0x01, 0x6D, -0x08, 0x6E, 0x40, 0xEA, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x04, 0x95, 0x40, 0xF4, 0x58, 0x9A, -0xD1, 0x67, 0x90, 0x67, 0x40, 0xEA, 0x90, 0x67, -0x00, 0x18, 0x18, 0xD3, 0x04, 0x94, 0xA2, 0x67, -0x00, 0x18, 0x35, 0xF1, 0x04, 0x94, 0xB1, 0x67, -0x00, 0x18, 0x44, 0xF1, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF2, 0x50, 0x9A, 0x05, 0x95, 0x00, 0x6C, -0x2A, 0x6E, 0x40, 0xEA, 0x20, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xEB, 0xF1, -0x83, 0xA3, 0xA0, 0xF2, 0x54, 0x9A, 0x00, 0x6F, -0x01, 0x6D, 0x08, 0x6E, 0x40, 0xEA, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x04, 0x95, 0x40, 0xF4, -0x58, 0x9A, 0xD1, 0x67, 0x90, 0x67, 0x40, 0xEA, -0x90, 0x67, 0x00, 0x18, 0x18, 0xD3, 0x04, 0x94, -0xA2, 0x67, 0x00, 0x18, 0x35, 0xF1, 0x04, 0x94, -0xB1, 0x67, 0x00, 0x18, 0x44, 0xF1, 0x30, 0xF0, -0x20, 0x6A, 0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x2C, 0xEC, -0x2C, 0xED, 0x02, 0x5C, 0x04, 0xD4, 0x05, 0xD5, -0x4E, 0x60, 0x00, 0x18, 0x25, 0xD7, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF2, 0x64, 0x9B, 0x30, 0xF0, -0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0x80, 0xAB, -0xFF, 0xF7, 0x1F, 0x6B, 0x8C, 0xEB, 0x4B, 0xE3, -0xA0, 0xF0, 0x6A, 0xA0, 0x2C, 0xEA, 0x6E, 0xEA, -0x3A, 0x2A, 0x03, 0xF6, 0x43, 0xA0, 0x0E, 0x72, -0x19, 0x61, 0x04, 0x92, 0x34, 0x2A, 0x03, 0xF6, -0x61, 0xA0, 0xFD, 0x4A, 0x05, 0x94, 0x6C, 0xEA, -0x03, 0xF6, 0x41, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0x40, 0xF4, 0x5C, 0x9A, 0x00, 0x6D, 0x40, 0xEA, -0x01, 0x6C, 0x0C, 0x6D, 0x00, 0x18, 0x8B, 0xC6, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, -0x91, 0x67, 0x1A, 0x10, 0x06, 0x72, 0x1B, 0x61, -0x04, 0x92, 0x19, 0x22, 0x03, 0xF6, 0x61, 0xA0, -0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x03, 0xF6, -0x41, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, -0x5C, 0x9A, 0x05, 0x94, 0x01, 0x6D, 0x40, 0xEA, -0x04, 0x6A, 0x03, 0xF6, 0x43, 0xC0, 0x30, 0xF0, -0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0xFF, 0x6C, -0x00, 0x6D, 0xC5, 0x67, 0x40, 0xEA, 0x09, 0x97, +0xEB, 0xF1, 0x81, 0xA3, 0x00, 0x6D, 0x18, 0x6E, +0xE5, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFF, 0xF7, 0x1F, 0x6A, +0xAC, 0xEA, 0xFF, 0x6B, 0xA2, 0x67, 0x42, 0x32, +0x6C, 0xED, 0x6C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF2, 0x60, 0x9B, 0x6D, 0xE4, 0xA0, 0xC3, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF2, 0x64, 0x9B, +0x71, 0xE4, 0x40, 0xC4, 0x20, 0xE8, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xFF, 0xF7, 0x1F, 0x68, +0x83, 0xF2, 0x7C, 0x9B, 0x0C, 0xED, 0x04, 0xD5, +0x60, 0xA3, 0xFF, 0x6A, 0x24, 0x67, 0x4C, 0xE9, +0x2D, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, +0x60, 0x9B, 0x00, 0x6C, 0xFF, 0x6D, 0x60, 0xA3, +0x36, 0x6E, 0x6C, 0xEA, 0x05, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, +0x40, 0xEA, 0x01, 0x72, 0x0E, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF2, 0x54, 0x9A, 0x00, 0x6E, +0x91, 0x67, 0x01, 0x6D, 0xE6, 0x67, 0x40, 0xEA, +0x04, 0x95, 0x82, 0x67, 0x0C, 0xEC, 0x00, 0x18, +0x8F, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0x05, 0x95, 0x00, 0x6C, 0x37, 0x6E, +0x40, 0xEA, 0x0E, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x54, 0x9A, 0x00, 0x6E, 0x91, 0x67, +0x01, 0x6D, 0xE6, 0x67, 0x40, 0xEA, 0x04, 0x95, +0x82, 0x67, 0x0C, 0xEC, 0x00, 0x18, 0x8F, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, 0x40, 0x9A, +0x6F, 0x6D, 0x90, 0x6C, 0x60, 0xA2, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0x6C, 0xED, +0x38, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x04, 0xD2, 0x83, 0xF2, 0x78, 0x9B, -0xFF, 0x6A, 0x4C, 0xEE, 0x05, 0xD6, 0x60, 0xA3, -0x05, 0x67, 0x27, 0x67, 0x4C, 0xEB, 0x72, 0x33, -0x4C, 0xEB, 0x4C, 0xE8, 0x4C, 0xE9, 0x40, 0x23, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0x7C, 0x9B, -0x00, 0x6C, 0xFF, 0x6D, 0x60, 0xA3, 0x26, 0x6E, -0x6C, 0xEA, 0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF2, 0x50, 0x9A, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, 0x40, 0xEA, -0x01, 0x72, 0x1D, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x04, 0x94, 0x05, 0x96, 0xA0, 0xF2, 0x54, 0x9A, -0x04, 0x6F, 0x01, 0x6D, 0x40, 0xEA, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x04, 0x95, 0x40, 0xF4, -0x58, 0x9A, 0xD1, 0x67, 0x90, 0x67, 0x40, 0xEA, -0x90, 0x67, 0x00, 0x18, 0x18, 0xD3, 0x04, 0x94, -0xA2, 0x67, 0x00, 0x18, 0x35, 0xF1, 0x04, 0x94, -0xB1, 0x67, 0x00, 0x18, 0x44, 0xF1, 0x30, 0xF0, -0x20, 0x6A, 0x06, 0x95, 0xA0, 0xF2, 0x50, 0x9A, -0x00, 0x6C, 0x27, 0x6E, 0x40, 0xEA, 0x90, 0x67, -0xB1, 0x67, 0x00, 0x18, 0xB5, 0xD3, 0x21, 0x10, -0x90, 0x67, 0xB1, 0x67, 0x00, 0x18, 0xB5, 0xD3, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, 0x7C, 0x9B, +0xFF, 0x6A, 0x04, 0x67, 0x60, 0xA3, 0x25, 0x67, +0x4C, 0xE8, 0x4C, 0xEB, 0x72, 0x33, 0x4C, 0xEB, +0x4C, 0xE9, 0x3F, 0x23, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF2, 0x60, 0x9B, 0x00, 0x6C, 0xFF, 0x6D, +0x60, 0xA3, 0x29, 0x6E, 0x6C, 0xEA, 0x05, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, +0x5C, 0x9A, 0x40, 0xEA, 0x01, 0x72, 0x20, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xEB, 0xF1, 0x83, 0xA3, 0xA0, 0xF2, 0x54, 0x9A, +0x00, 0x6F, 0x01, 0x6D, 0x08, 0x6E, 0x40, 0xEA, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x95, +0x40, 0xF4, 0x58, 0x9A, 0xD1, 0x67, 0x90, 0x67, +0x40, 0xEA, 0x90, 0x67, 0x00, 0x18, 0x6D, 0xD2, +0x04, 0x94, 0xA2, 0x67, 0x00, 0x18, 0x8B, 0xF0, +0x04, 0x94, 0xB1, 0x67, 0x00, 0x18, 0x9A, 0xF0, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, +0x05, 0x95, 0x00, 0x6C, 0x2A, 0x6E, 0x40, 0xEA, +0x20, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0xEB, 0xF1, 0x83, 0xA3, 0xA0, 0xF2, +0x54, 0x9A, 0x00, 0x6F, 0x01, 0x6D, 0x08, 0x6E, +0x40, 0xEA, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0x95, 0x40, 0xF4, 0x58, 0x9A, 0xD1, 0x67, +0x90, 0x67, 0x40, 0xEA, 0x90, 0x67, 0x00, 0x18, +0x6D, 0xD2, 0x04, 0x94, 0xA2, 0x67, 0x00, 0x18, +0x8B, 0xF0, 0x04, 0x94, 0xB1, 0x67, 0x00, 0x18, +0x9A, 0xF0, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, +0x54, 0x9A, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x69, 0x2C, 0xEC, 0x2C, 0xED, 0x02, 0x5C, +0x04, 0xD4, 0x05, 0xD5, 0x4E, 0x60, 0x00, 0x18, +0x7B, 0xD6, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF2, +0x68, 0x9B, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, +0x18, 0x48, 0x80, 0xAB, 0xFF, 0xF7, 0x1F, 0x6B, +0x8C, 0xEB, 0x4B, 0xE3, 0xA0, 0xF0, 0x6A, 0xA0, +0x2C, 0xEA, 0x6E, 0xEA, 0x3A, 0x2A, 0xE3, 0xF5, +0x5F, 0xA0, 0x0E, 0x72, 0x19, 0x61, 0x04, 0x92, +0x34, 0x2A, 0xE3, 0xF5, 0x7D, 0xA0, 0xFD, 0x4A, +0x05, 0x94, 0x6C, 0xEA, 0xE3, 0xF5, 0x5D, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x5C, 0x9A, +0x00, 0x6D, 0x40, 0xEA, 0x01, 0x6C, 0x0C, 0x6D, +0x00, 0x18, 0xD7, 0xC5, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x91, 0x67, 0x1A, 0x10, +0x06, 0x72, 0x1B, 0x61, 0x04, 0x92, 0x19, 0x22, +0xE3, 0xF5, 0x7D, 0xA0, 0x02, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0xE3, 0xF5, 0x5D, 0xC0, 0x30, 0xF0, +0x20, 0x6A, 0x40, 0xF4, 0x5C, 0x9A, 0x05, 0x94, +0x01, 0x6D, 0x40, 0xEA, 0x04, 0x6A, 0xE3, 0xF5, +0x5F, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0xFF, 0x6C, 0x00, 0x6D, 0xC5, 0x67, +0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, +0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0xD2, +0x83, 0xF2, 0x7C, 0x9B, 0xFF, 0x6A, 0x4C, 0xEE, +0x05, 0xD6, 0x60, 0xA3, 0x05, 0x67, 0x27, 0x67, +0x4C, 0xEB, 0x72, 0x33, 0x4C, 0xEB, 0x4C, 0xE8, +0x4C, 0xE9, 0x40, 0x23, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF2, 0x60, 0x9B, 0x00, 0x6C, 0xFF, 0x6D, +0x60, 0xA3, 0x26, 0x6E, 0x6C, 0xEA, 0x06, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, +0x5C, 0x9A, 0x40, 0xEA, 0x01, 0x72, 0x1D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x94, 0x05, 0x96, 0xA0, 0xF2, 0x54, 0x9A, 0x04, 0x6F, 0x01, 0x6D, 0x40, 0xEA, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x95, 0x40, 0xF4, 0x58, 0x9A, 0xD1, 0x67, 0x90, 0x67, 0x40, 0xEA, 0x90, 0x67, 0x00, 0x18, -0x18, 0xD3, 0x04, 0x94, 0xA2, 0x67, 0x00, 0x18, -0x35, 0xF1, 0x04, 0x94, 0xB1, 0x67, 0x00, 0x18, -0x44, 0xF1, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, -0x54, 0x9A, 0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, -0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x69, 0x30, 0xF0, 0x20, 0x6A, -0x11, 0x67, 0x80, 0xF2, 0x48, 0x9A, 0x09, 0xF0, -0x00, 0x48, 0x90, 0x67, 0x00, 0x6D, 0x78, 0x6E, -0x40, 0xEA, 0x00, 0x6A, 0x43, 0xC0, 0x02, 0x6B, -0x01, 0x6A, 0x09, 0xF0, 0x40, 0xC1, 0x20, 0xF0, -0x4B, 0xC0, 0x20, 0xF0, 0x48, 0xC0, 0x40, 0xF0, -0x73, 0xC0, 0x40, 0xF0, 0x50, 0xC0, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, -0xA3, 0xF3, 0xBE, 0xA3, 0x28, 0x6A, 0x40, 0xC4, -0x28, 0x6A, 0x58, 0xED, 0x30, 0xF0, 0x20, 0x6C, -0x09, 0xF0, 0x00, 0x4C, 0x12, 0xED, 0x89, 0xE5, -0xA3, 0xF3, 0xBC, 0xA3, 0x01, 0x6C, 0xAC, 0xEC, -0x81, 0xC2, 0xA3, 0xF3, 0x7D, 0xA3, 0x62, 0xC2, -0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, -0xAC, 0xEA, 0x3C, 0x22, 0x28, 0x6A, 0x58, 0xEC, -0x30, 0xF0, 0x20, 0x6B, 0x09, 0xF0, 0x00, 0x4B, -0x12, 0xEA, 0x49, 0xE3, 0x61, 0x9A, 0xC8, 0xDA, -0x01, 0x4B, 0x61, 0xDA, 0x69, 0x9A, 0x03, 0x2B, -0x8E, 0xAA, 0x01, 0x6B, 0x25, 0x10, 0xC3, 0xEB, -0x21, 0x60, 0x7B, 0xE6, 0x65, 0x9A, 0x01, 0x2B, -0xC5, 0xDA, 0x28, 0x6B, 0x78, 0xEC, 0x30, 0xF0, -0x20, 0x6A, 0x09, 0xF0, 0x00, 0x4A, 0x12, 0xEB, -0x49, 0xE3, 0x66, 0x9A, 0x01, 0x2B, 0xC6, 0xDA, -0x28, 0x6B, 0x78, 0xEC, 0x30, 0xF0, 0x20, 0x6A, -0x09, 0xF0, 0x00, 0x4A, 0x12, 0xEC, 0x91, 0xE2, -0x45, 0x9C, 0x43, 0xEE, 0x02, 0x60, 0xC5, 0xDC, -0x20, 0xE8, 0x46, 0x9C, 0xC3, 0xEA, 0x4E, 0x60, -0xC6, 0xDC, 0x20, 0xE8, 0x8E, 0xAA, 0x02, 0x6B, -0x8D, 0xEB, 0x6E, 0xCA, 0x7E, 0xA2, 0x01, 0x4B, -0x7E, 0xC2, 0x20, 0xE8, 0x05, 0x6B, 0x78, 0xEC, -0x30, 0xF0, 0x20, 0x6D, 0x09, 0xF0, 0x00, 0x4D, -0x12, 0xEB, 0x01, 0x4B, 0x6C, 0x33, 0xAD, 0xE3, -0x40, 0x9B, 0x01, 0x4A, 0x40, 0xDB, 0x28, 0x6A, -0x58, 0xEC, 0x12, 0xEA, 0x49, 0xE5, 0xA8, 0x9A, -0xC9, 0xDA, 0x30, 0x25, 0xC3, 0xED, 0x27, 0x60, -0x41, 0x9B, 0xBB, 0xE6, 0x01, 0x2A, 0xC1, 0xDB, -0x28, 0x6B, 0x78, 0xEC, 0x30, 0xF0, 0x20, 0x6A, -0x09, 0xF0, 0x00, 0x4A, 0x12, 0xEB, 0x49, 0xE3, -0x64, 0x9A, 0x01, 0x2B, 0xC4, 0xDA, 0x05, 0x6B, -0x78, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF0, -0x00, 0x4A, 0x12, 0xEB, 0x01, 0x4B, 0x6C, 0x33, -0x6D, 0xE2, 0xA1, 0x9B, 0xA3, 0xEE, 0x02, 0x60, -0xC1, 0xDB, 0x20, 0xE8, 0x28, 0x6B, 0x78, 0xEC, -0x12, 0xEC, 0x49, 0xE4, 0x64, 0x9A, 0xC3, 0xEB, -0x09, 0x60, 0xC4, 0xDA, 0x20, 0xE8, 0x8E, 0xAA, -0x04, 0x6B, 0x8D, 0xEB, 0x6E, 0xCA, 0x7E, 0xA2, -0x01, 0x4B, 0x7E, 0xC2, 0x20, 0xE8, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0xF7, 0x1F, 0x6A, 0x0E, 0x90, 0x24, 0x67, -0x4C, 0xE9, 0x03, 0x6B, 0x4C, 0xEF, 0x2C, 0xEB, -0x00, 0x6A, 0x0B, 0xD5, 0x0C, 0xD6, 0x04, 0xD7, -0x40, 0xC8, 0x00, 0x6A, 0x0A, 0x23, 0x28, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, -0x0A, 0x6C, 0x40, 0xEA, 0x40, 0xA8, 0x01, 0x4A, -0x40, 0xC8, 0x1F, 0xF7, 0x00, 0x6A, 0x2C, 0xEA, -0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x40, 0x9A, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, -0x44, 0x9A, 0x49, 0xE1, 0x0B, 0x93, 0x40, 0x9A, -0x6C, 0xEA, 0x0C, 0x93, 0x6E, 0xEA, 0x04, 0x22, -0x40, 0xA8, 0x04, 0x93, 0x63, 0xEA, 0xDC, 0x61, -0x40, 0xA8, 0x04, 0x93, 0x63, 0xEA, 0x58, 0x67, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0xA0, 0x35, -0x4C, 0xEC, 0xA0, 0x35, 0xCC, 0xEA, 0x4D, 0xED, -0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, -0x44, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF2, 0x48, 0x9A, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF2, 0x8C, 0x9B, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF2, 0x70, 0x9B, 0xAD, 0xEA, 0x40, 0xDC, -0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, -0x54, 0x9A, 0x60, 0xDC, 0x00, 0x6B, 0x60, 0xC2, -0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0xFF, 0xF7, -0x1F, 0x6B, 0x8C, 0xEA, 0xAC, 0xEB, 0x05, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0x54, 0x9A, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, -0x58, 0x9A, 0x60, 0x33, 0x60, 0x33, 0x4D, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x4C, 0x9A, -0x00, 0x6C, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF2, 0x5C, 0x9A, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF2, 0x74, 0x9B, 0x40, 0xA2, 0x80, 0xC3, -0xFF, 0x6B, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF3, 0x60, 0x9B, 0xFF, 0x6A, -0xCC, 0xEA, 0x6D, 0xEA, 0xE0, 0xF1, 0x1F, 0x6B, -0xAC, 0xEB, 0x60, 0x33, 0x60, 0x33, 0x6D, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, 0x0C, 0x9B, -0x01, 0x6C, 0x40, 0xD8, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x4C, 0x9A, 0x40, 0xEA, 0x00, 0x6A, -0x40, 0xD8, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x6D, 0xD2, 0x04, 0x94, 0xA2, 0x67, 0x00, 0x18, +0x8B, 0xF0, 0x04, 0x94, 0xB1, 0x67, 0x00, 0x18, +0x9A, 0xF0, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0x95, +0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6C, 0x27, 0x6E, +0x40, 0xEA, 0x90, 0x67, 0xB1, 0x67, 0x00, 0x18, +0x0A, 0xD3, 0x21, 0x10, 0x90, 0x67, 0xB1, 0x67, +0x00, 0x18, 0x0A, 0xD3, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0x94, 0x05, 0x96, 0xA0, 0xF2, 0x54, 0x9A, +0x04, 0x6F, 0x01, 0x6D, 0x40, 0xEA, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0x95, 0x40, 0xF4, +0x58, 0x9A, 0xD1, 0x67, 0x90, 0x67, 0x40, 0xEA, +0x90, 0x67, 0x00, 0x18, 0x6D, 0xD2, 0x04, 0x94, +0xA2, 0x67, 0x00, 0x18, 0x8B, 0xF0, 0x04, 0x94, +0xB1, 0x67, 0x00, 0x18, 0x9A, 0xF0, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xE0, 0xF1, 0x1F, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0xAC, 0xEA, 0x03, 0xF3, -0x64, 0x9B, 0x40, 0x32, 0x40, 0x32, 0x6D, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, 0x0C, 0x4B, -0x60, 0x9B, 0x30, 0xF0, 0x20, 0x68, 0x01, 0x6C, -0x40, 0xDB, 0x80, 0xF3, 0x4C, 0x98, 0xFF, 0x69, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, -0x5C, 0x9A, 0x01, 0x6C, 0x40, 0xA2, 0x4C, 0xE9, -0x80, 0xF3, 0x4C, 0x98, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6C, 0xE3, 0xF2, 0x0C, 0x4C, 0x80, 0x9C, -0x00, 0x6A, 0x40, 0xDC, 0x07, 0x97, 0x51, 0x67, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF3, 0xC8, 0x9B, 0xFF, 0x6A, 0x04, 0x6D, -0x60, 0xA6, 0x4C, 0xEC, 0x4C, 0xEB, 0xAD, 0xEB, -0x4C, 0xEB, 0x60, 0xC6, 0x11, 0x24, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF1, 0x8C, 0x9B, 0x60, 0xA4, -0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x30, 0xF0, -0x20, 0x6A, 0x60, 0xC4, 0x2B, 0xF1, 0x18, 0x4A, -0x00, 0x6B, 0x22, 0xF6, 0x75, 0xC2, 0x0D, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0x6C, 0x9A, -0xFB, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, -0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x6D, 0xF7, -0x6D, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xCE, 0xF7, -0xA4, 0xA2, 0x30, 0xF0, 0x20, 0x6C, 0x4E, 0xF7, -0x0A, 0x4C, 0x00, 0x18, 0xC3, 0xE9, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF3, 0x68, 0x9A, 0xFB, 0x6A, -0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x0E, 0x92, 0x0F, 0x91, -0x04, 0x67, 0x04, 0xD2, 0x04, 0x93, 0xFF, 0x6A, -0x4C, 0xE8, 0x4C, 0xEB, 0x4C, 0xE9, 0x30, 0xF0, -0x20, 0x6A, 0xE0, 0xF2, 0x5C, 0x9A, 0x0B, 0xD5, -0x0C, 0xD6, 0x0D, 0xD7, 0x04, 0xD3, 0x90, 0x67, -0x40, 0xEA, 0x80, 0xF0, 0x07, 0x22, 0x06, 0x58, -0x80, 0xF0, 0x04, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x08, 0x30, 0xE2, 0xF2, 0x08, 0x4A, 0x09, 0xE2, -0x40, 0x9A, 0x00, 0xEA, 0x02, 0xF2, 0x10, 0x6A, -0x0E, 0x10, 0x02, 0xF2, 0x00, 0x6A, 0x0B, 0x10, -0x22, 0xF2, 0x00, 0x6A, 0x08, 0x10, 0x22, 0xF2, -0x10, 0x6A, 0x05, 0x10, 0x42, 0xF2, 0x00, 0x6A, -0x02, 0x10, 0x42, 0xF2, 0x10, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x0D, 0x94, 0x03, 0xF3, 0x6C, 0x9B, -0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF1, -0x94, 0x9C, 0x8D, 0xEB, 0x06, 0x21, 0x30, 0xF0, -0x20, 0x6C, 0x03, 0xF3, 0x90, 0x9C, 0x6D, 0xEC, -0x05, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF3, -0x94, 0x9C, 0x6C, 0xEC, 0x04, 0x96, 0x06, 0x26, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, 0x64, 0x9B, -0x8D, 0xEB, 0x05, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF3, 0x78, 0x9B, 0x8C, 0xEB, 0x1F, 0xF7, -0x00, 0x6C, 0x4C, 0xEC, 0x02, 0xF0, 0x00, 0x74, -0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, -0x43, 0xF1, 0xA0, 0x9C, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6C, 0x43, 0xF1, 0xA4, 0x9C, 0x30, 0xF0, -0x20, 0x6C, 0x0B, 0x96, 0x03, 0xF3, 0x9C, 0x9C, -0xB5, 0xE2, 0xCC, 0xEC, 0x80, 0xDD, 0x84, 0x42, -0x1F, 0xF7, 0x00, 0x6D, 0xAC, 0xEC, 0x02, 0xF0, -0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, -0x20, 0x6C, 0x23, 0xF3, 0xA0, 0x9C, 0x04, 0x10, -0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF3, 0xA4, 0x9C, -0x30, 0xF0, 0x20, 0x6C, 0x0C, 0x96, 0x03, 0xF3, -0x9C, 0x9C, 0xB5, 0xE2, 0xCC, 0xEC, 0x80, 0xDD, -0x87, 0x42, 0x01, 0x4C, 0x1F, 0xF7, 0x00, 0x6D, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0x30, 0xF0, 0x20, 0x6A, 0x11, 0x67, 0x80, 0xF2, +0x48, 0x9A, 0x09, 0xF0, 0x00, 0x48, 0x90, 0x67, +0x00, 0x6D, 0x78, 0x6E, 0x40, 0xEA, 0x00, 0x6A, +0x43, 0xC0, 0x02, 0x6B, 0x01, 0x6A, 0x09, 0xF0, +0x40, 0xC1, 0x20, 0xF0, 0x4B, 0xC0, 0x20, 0xF0, +0x48, 0xC0, 0x40, 0xF0, 0x73, 0xC0, 0x40, 0xF0, +0x50, 0xC0, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6B, +0x2B, 0xF1, 0x18, 0x4B, 0xA3, 0xF3, 0xBE, 0xA3, +0x28, 0x6A, 0x40, 0xC4, 0x28, 0x6A, 0x58, 0xED, +0x30, 0xF0, 0x20, 0x6C, 0x09, 0xF0, 0x00, 0x4C, +0x12, 0xED, 0x89, 0xE5, 0xA3, 0xF3, 0xBC, 0xA3, +0x01, 0x6C, 0xAC, 0xEC, 0x81, 0xC2, 0xA3, 0xF3, +0x7D, 0xA3, 0x62, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x3C, 0x22, +0x28, 0x6A, 0x58, 0xEC, 0x30, 0xF0, 0x20, 0x6B, +0x09, 0xF0, 0x00, 0x4B, 0x12, 0xEA, 0x49, 0xE3, +0x61, 0x9A, 0xC8, 0xDA, 0x01, 0x4B, 0x61, 0xDA, +0x69, 0x9A, 0x03, 0x2B, 0x8E, 0xAA, 0x01, 0x6B, +0x25, 0x10, 0xC3, 0xEB, 0x21, 0x60, 0x7B, 0xE6, +0x65, 0x9A, 0x01, 0x2B, 0xC5, 0xDA, 0x28, 0x6B, +0x78, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF0, +0x00, 0x4A, 0x12, 0xEB, 0x49, 0xE3, 0x66, 0x9A, +0x01, 0x2B, 0xC6, 0xDA, 0x28, 0x6B, 0x78, 0xEC, +0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF0, 0x00, 0x4A, +0x12, 0xEC, 0x91, 0xE2, 0x45, 0x9C, 0x43, 0xEE, +0x02, 0x60, 0xC5, 0xDC, 0x20, 0xE8, 0x46, 0x9C, +0xC3, 0xEA, 0x4E, 0x60, 0xC6, 0xDC, 0x20, 0xE8, +0x8E, 0xAA, 0x02, 0x6B, 0x8D, 0xEB, 0x6E, 0xCA, +0x7E, 0xA2, 0x01, 0x4B, 0x7E, 0xC2, 0x20, 0xE8, +0x05, 0x6B, 0x78, 0xEC, 0x30, 0xF0, 0x20, 0x6D, +0x09, 0xF0, 0x00, 0x4D, 0x12, 0xEB, 0x01, 0x4B, +0x6C, 0x33, 0xAD, 0xE3, 0x40, 0x9B, 0x01, 0x4A, +0x40, 0xDB, 0x28, 0x6A, 0x58, 0xEC, 0x12, 0xEA, +0x49, 0xE5, 0xA8, 0x9A, 0xC9, 0xDA, 0x30, 0x25, +0xC3, 0xED, 0x27, 0x60, 0x41, 0x9B, 0xBB, 0xE6, +0x01, 0x2A, 0xC1, 0xDB, 0x28, 0x6B, 0x78, 0xEC, +0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF0, 0x00, 0x4A, +0x12, 0xEB, 0x49, 0xE3, 0x64, 0x9A, 0x01, 0x2B, +0xC4, 0xDA, 0x05, 0x6B, 0x78, 0xEC, 0x30, 0xF0, +0x20, 0x6A, 0x09, 0xF0, 0x00, 0x4A, 0x12, 0xEB, +0x01, 0x4B, 0x6C, 0x33, 0x6D, 0xE2, 0xA1, 0x9B, +0xA3, 0xEE, 0x02, 0x60, 0xC1, 0xDB, 0x20, 0xE8, +0x28, 0x6B, 0x78, 0xEC, 0x12, 0xEC, 0x49, 0xE4, +0x64, 0x9A, 0xC3, 0xEB, 0x09, 0x60, 0xC4, 0xDA, +0x20, 0xE8, 0x8E, 0xAA, 0x04, 0x6B, 0x8D, 0xEB, +0x6E, 0xCA, 0x7E, 0xA2, 0x01, 0x4B, 0x7E, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, +0x0E, 0x90, 0x24, 0x67, 0x4C, 0xE9, 0x03, 0x6B, +0x4C, 0xEF, 0x2C, 0xEB, 0x00, 0x6A, 0x0B, 0xD5, +0x0C, 0xD6, 0x04, 0xD7, 0x40, 0xC8, 0x00, 0x6A, +0x0A, 0x23, 0x28, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, +0x40, 0xA8, 0x01, 0x4A, 0x40, 0xC8, 0x1F, 0xF7, +0x00, 0x6A, 0x2C, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF1, 0x44, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF1, 0x48, 0x9A, 0x49, 0xE1, +0x0B, 0x93, 0x40, 0x9A, 0x6C, 0xEA, 0x0C, 0x93, +0x6E, 0xEA, 0x04, 0x22, 0x40, 0xA8, 0x04, 0x93, +0x63, 0xEA, 0xDC, 0x61, 0x40, 0xA8, 0x04, 0x93, +0x63, 0xEA, 0x58, 0x67, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0x6A, 0xA0, 0x35, 0x4C, 0xEC, 0xA0, 0x35, +0xCC, 0xEA, 0x4D, 0xED, 0x05, 0x2C, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF2, 0x44, 0x9A, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x48, 0x9A, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, 0x8C, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, 0x70, 0x9B, +0xAD, 0xEA, 0x40, 0xDC, 0x4C, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF2, 0x54, 0x9A, 0x60, 0xDC, +0x00, 0x6B, 0x60, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0xFF, 0xF7, 0x1F, 0x6B, 0x8C, 0xEA, +0xAC, 0xEB, 0x05, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF1, 0x58, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF2, 0x58, 0x9A, 0x60, 0x33, +0x60, 0x33, 0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF2, 0x4C, 0x9A, 0x00, 0x6C, 0x60, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x5C, 0x9A, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, 0x74, 0x9B, +0x40, 0xA2, 0x80, 0xC3, 0xFF, 0x6B, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, +0x60, 0x9B, 0xFF, 0x6A, 0xCC, 0xEA, 0x6D, 0xEA, +0xE0, 0xF1, 0x1F, 0x6B, 0xAC, 0xEB, 0x60, 0x33, +0x60, 0x33, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF2, 0x0C, 0x9B, 0x01, 0x6C, 0x40, 0xD8, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x40, 0xEA, 0x00, 0x6A, 0x40, 0xD8, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xE0, 0xF1, 0x1F, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xAC, 0xEA, 0x03, 0xF3, 0x64, 0x9B, 0x40, 0x32, +0x40, 0x32, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF2, 0x0C, 0x4B, 0x60, 0x9B, 0x30, 0xF0, +0x20, 0x68, 0x01, 0x6C, 0x40, 0xDB, 0x80, 0xF3, +0x4C, 0x98, 0xFF, 0x69, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF2, 0x5C, 0x9A, 0x01, 0x6C, +0x40, 0xA2, 0x4C, 0xE9, 0x80, 0xF3, 0x4C, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF2, +0x0C, 0x4C, 0x80, 0x9C, 0x00, 0x6A, 0x40, 0xDC, +0x07, 0x97, 0x51, 0x67, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, 0xC8, 0x9B, +0xFF, 0x6A, 0x04, 0x6D, 0x60, 0xA6, 0x4C, 0xEC, +0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC6, +0x11, 0x24, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, +0x90, 0x9B, 0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, +0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xC4, +0x2B, 0xF1, 0x18, 0x4A, 0x00, 0x6B, 0x22, 0xF6, +0x75, 0xC2, 0x0D, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF1, 0x70, 0x9A, 0xFB, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x6D, 0xF7, 0x6D, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xCE, 0xF7, 0xA0, 0xA2, 0x30, 0xF0, +0x20, 0x6C, 0x4E, 0xF7, 0x06, 0x4C, 0x00, 0x18, +0x19, 0xE9, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, +0x68, 0x9A, 0xFB, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x0E, 0x92, 0x0F, 0x91, 0x04, 0x67, 0x04, 0xD2, +0x04, 0x93, 0xFF, 0x6A, 0x4C, 0xE8, 0x4C, 0xEB, +0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, +0x5C, 0x9A, 0x0B, 0xD5, 0x0C, 0xD6, 0x0D, 0xD7, +0x04, 0xD3, 0x90, 0x67, 0x40, 0xEA, 0x80, 0xF0, +0x07, 0x22, 0x06, 0x58, 0x80, 0xF0, 0x04, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x08, 0x30, 0xE2, 0xF2, +0x08, 0x4A, 0x09, 0xE2, 0x40, 0x9A, 0x00, 0xEA, +0x02, 0xF2, 0x10, 0x6A, 0x0E, 0x10, 0x02, 0xF2, +0x00, 0x6A, 0x0B, 0x10, 0x22, 0xF2, 0x00, 0x6A, +0x08, 0x10, 0x22, 0xF2, 0x10, 0x6A, 0x05, 0x10, +0x42, 0xF2, 0x00, 0x6A, 0x02, 0x10, 0x42, 0xF2, +0x10, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x0D, 0x94, +0x03, 0xF3, 0x6C, 0x9B, 0x8C, 0xEB, 0x30, 0xF0, +0x20, 0x6C, 0x03, 0xF1, 0x98, 0x9C, 0x8D, 0xEB, +0x06, 0x21, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF3, +0x90, 0x9C, 0x6D, 0xEC, 0x05, 0x10, 0x30, 0xF0, +0x20, 0x6C, 0x03, 0xF3, 0x94, 0x9C, 0x6C, 0xEC, +0x04, 0x96, 0x06, 0x26, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF3, 0x64, 0x9B, 0x8D, 0xEB, 0x05, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, 0x78, 0x9B, +0x8C, 0xEB, 0x1F, 0xF7, 0x00, 0x6C, 0x4C, 0xEC, +0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, +0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF1, 0xA4, 0x9C, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF1, +0xA8, 0x9C, 0x30, 0xF0, 0x20, 0x6C, 0x0B, 0x96, +0x03, 0xF3, 0x9C, 0x9C, 0xB5, 0xE2, 0xCC, 0xEC, +0x80, 0xDD, 0x84, 0x42, 0x1F, 0xF7, 0x00, 0x6D, 0xAC, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF3, -0x88, 0x9C, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, -0x23, 0xF3, 0x8C, 0x9C, 0x89, 0xE2, 0x60, 0xDA, -0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x01, 0x68, 0x04, 0xEC, 0x82, 0xF3, 0x08, 0x69, -0x1C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x01, 0x6C, 0xFF, 0x49, 0x40, 0xEA, -0x14, 0x29, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, -0x68, 0x9A, 0x08, 0xF0, 0x00, 0x6C, 0x40, 0x9B, -0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x60, 0x9A, -0x8D, 0xEB, 0xA3, 0xF3, 0x60, 0xDA, 0x00, 0x6A, -0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, -0x50, 0x9A, 0x60, 0xAA, 0xFF, 0xF7, 0x1F, 0x6A, -0x6C, 0xEA, 0x0C, 0xEA, 0xDA, 0x2A, 0x01, 0x6A, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x04, 0xF7, 0x10, 0x68, 0x1C, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, -0x05, 0x6C, 0xFF, 0x48, 0x40, 0xEA, 0x14, 0x28, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x68, 0x9A, -0x08, 0xF0, 0x00, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, -0xA3, 0xF3, 0x60, 0xDA, 0x00, 0x6A, 0x09, 0x10, +0xA0, 0x9C, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, +0x23, 0xF3, 0xA4, 0x9C, 0x30, 0xF0, 0x20, 0x6C, +0x0C, 0x96, 0x03, 0xF3, 0x9C, 0x9C, 0xB5, 0xE2, +0xCC, 0xEC, 0x80, 0xDD, 0x87, 0x42, 0x01, 0x4C, +0x1F, 0xF7, 0x00, 0x6D, 0xAC, 0xEC, 0x02, 0xF0, +0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, +0x20, 0x6C, 0x23, 0xF3, 0x88, 0x9C, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF3, 0x8C, 0x9C, +0x89, 0xE2, 0x60, 0xDA, 0x01, 0x6A, 0x01, 0x10, +0x00, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x01, 0x68, 0x04, 0xEC, +0x82, 0xF3, 0x08, 0x69, 0x1C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, +0xFF, 0x49, 0x40, 0xEA, 0x14, 0x29, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF2, 0x6C, 0x9A, 0x08, 0xF0, +0x00, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x60, 0xDA, 0x00, 0x6A, 0x0B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF3, 0x50, 0x9A, 0x60, 0xAA, +0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, 0x0C, 0xEA, +0xDA, 0x2A, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x04, 0xF7, +0x10, 0x68, 0x1C, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x05, 0x6C, 0xFF, 0x48, +0x40, 0xEA, 0x14, 0x28, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF2, 0x6C, 0x9A, 0x08, 0xF0, 0x00, 0x6C, +0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, +0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, 0x60, 0xDA, +0x00, 0x6A, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF3, 0x50, 0x9A, 0x60, 0xAA, 0x3F, 0x6A, +0x6C, 0xEA, 0xDC, 0x2A, 0x01, 0x6A, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x50, 0x9A, -0x60, 0xAA, 0x3F, 0x6A, 0x6C, 0xEA, 0xDC, 0x2A, -0x01, 0x6A, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xAA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x50, 0x9A, 0x40, 0xAA, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x50, 0x9A, -0x40, 0xAA, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, 0x34, 0x9A, +0x10, 0xF0, 0x23, 0x68, 0xEA, 0xF3, 0x09, 0x48, +0x00, 0xD9, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x01, 0xF0, 0x54, 0x9A, 0x89, 0xF6, +0x9C, 0x9B, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, +0x01, 0x4A, 0x03, 0x22, 0x01, 0x48, 0x00, 0xD9, +0xE7, 0x17, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, 0x34, 0x9A, 0x10, 0xF0, 0x23, 0x68, -0x8A, 0xF6, 0x15, 0x48, 0x00, 0xD9, 0x30, 0xF0, +0x2A, 0xF4, 0x0D, 0x48, 0x00, 0xD9, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x01, 0xF0, -0x54, 0x9A, 0x89, 0xF6, 0x9C, 0x9B, 0x01, 0x6D, +0x54, 0x9A, 0x89, 0xF6, 0x98, 0x9B, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, 0x01, 0x4A, 0x03, 0x22, 0x01, 0x48, 0x00, 0xD9, 0xE7, 0x17, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, 0x34, 0x9A, -0x10, 0xF0, 0x23, 0x68, 0xCA, 0xF6, 0x19, 0x48, -0x00, 0xD9, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0x01, 0xF0, 0x54, 0x9A, 0x89, 0xF6, -0x98, 0x9B, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, -0x01, 0x4A, 0x03, 0x22, 0x01, 0x48, 0x00, 0xD9, -0xE7, 0x17, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x74, 0x9B, -0x10, 0xF0, 0x23, 0x6A, 0x0A, 0xF7, 0x1D, 0x4A, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0xA9, 0xF6, 0x84, 0x9B, 0x01, 0xF0, -0x48, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0xA0, 0xF0, 0x84, 0x9A, 0x00, 0xF2, 0x00, 0x6B, -0x8C, 0xEB, 0x08, 0x23, 0x00, 0xF2, 0x01, 0x6B, -0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, -0x00, 0x18, 0x32, 0xE5, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF6, 0x84, 0x9B, -0xC8, 0xF6, 0x40, 0x9A, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF0, 0x74, 0x9B, 0x10, 0xF0, -0x23, 0x6A, 0x0A, 0xF7, 0x1E, 0x4A, 0x40, 0xDB, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x00, 0x18, 0x03, 0xC8, 0x00, 0x6A, 0x04, 0xD2, -0x00, 0x68, 0x00, 0x6C, 0x00, 0x18, 0xC7, 0xD5, -0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, 0x0A, 0x70, -0xF8, 0x61, 0x04, 0x93, 0x30, 0xF0, 0x20, 0x69, -0x30, 0xF0, 0x20, 0x68, 0x01, 0x73, 0x78, 0x67, -0x4C, 0xEB, 0x10, 0xF0, 0x23, 0x6A, 0x8A, 0xF7, -0x19, 0x4A, 0x04, 0xD3, 0x69, 0xE2, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF0, 0x74, 0x9B, 0x01, 0x6D, -0xAB, 0xED, 0x40, 0xDB, 0xA9, 0xF6, 0x84, 0x99, -0x01, 0xF0, 0x48, 0x98, 0x40, 0xEA, 0x80, 0x18, -0x58, 0x01, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF6, -0x84, 0x99, 0xC8, 0xF6, 0x40, 0x9A, 0x40, 0xEA, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF0, 0x74, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0x6A, 0xF4, 0x11, 0x4A, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF6, +0x84, 0x9B, 0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xF0, 0x84, 0x9A, +0x00, 0xF2, 0x00, 0x6B, 0x8C, 0xEB, 0x08, 0x23, +0x00, 0xF2, 0x01, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x00, 0x18, 0x88, 0xE4, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xA9, 0xF6, 0x84, 0x9B, 0xC8, 0xF6, 0x40, 0x9A, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, +0x74, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0x6A, 0xF4, +0x12, 0x4A, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x00, 0x18, 0x39, 0xC7, +0x00, 0x6A, 0x04, 0xD2, 0x00, 0x68, 0x00, 0x6C, +0x00, 0x18, 0x1C, 0xD5, 0x01, 0x48, 0xFF, 0x6A, +0x4C, 0xE8, 0x0A, 0x70, 0xF8, 0x61, 0x04, 0x93, +0x30, 0xF0, 0x20, 0x69, 0x30, 0xF0, 0x20, 0x68, +0x01, 0x73, 0x78, 0x67, 0x4C, 0xEB, 0x10, 0xF0, +0x23, 0x6A, 0xEA, 0xF4, 0x0D, 0x4A, 0x04, 0xD3, +0x69, 0xE2, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, +0x74, 0x9B, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xDB, 0xA9, 0xF6, 0x84, 0x99, 0x01, 0xF0, 0x48, 0x98, +0x40, 0xEA, 0x80, 0x18, 0x58, 0x01, 0x30, 0xF0, +0x20, 0x6A, 0xA9, 0xF6, 0x84, 0x99, 0xC8, 0xF6, +0x40, 0x9A, 0x40, 0xEA, 0xA9, 0xF6, 0x84, 0x99, +0x01, 0xF0, 0x48, 0x98, 0x01, 0x6D, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0xA0, 0xF0, 0x84, 0x9A, 0x02, 0x6B, +0x8C, 0xEB, 0x09, 0x23, 0x03, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x80, 0x18, +0xD7, 0x24, 0x80, 0x18, 0x2A, 0x25, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF6, +0x84, 0x98, 0xC8, 0xF6, 0x40, 0x9A, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF6, 0x84, 0x98, +0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0xA0, 0xF0, 0x84, 0x9A, 0x04, 0x6B, +0x8C, 0xEB, 0x09, 0x23, 0x05, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x00, 0x18, +0x2A, 0xDB, 0x00, 0x18, 0xB9, 0xDB, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF6, +0x84, 0x98, 0xC8, 0xF6, 0x40, 0x9A, 0x40, 0xEA, +0x00, 0x1C, 0xAC, 0x39, 0x30, 0xF0, 0x20, 0x6A, +0xA9, 0xF6, 0x84, 0x98, 0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xF0, -0x84, 0x9A, 0x02, 0x6B, 0x8C, 0xEB, 0x09, 0x23, -0x03, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0xF0, -0x64, 0xDA, 0x80, 0x18, 0xFF, 0x21, 0x80, 0x18, -0x52, 0x22, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x63, 0xF6, +0x98, 0xA2, 0xE3, 0xF5, 0x7F, 0xA2, 0x8E, 0xEB, +0x05, 0x23, 0xA0, 0xF0, 0x9E, 0xA2, 0x96, 0x34, +0x00, 0x18, 0x10, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xCB, 0xF1, 0x5C, 0x9A, 0x02, 0x2A, 0x00, 0x18, +0xA0, 0xCC, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6A, 0xA9, 0xF6, 0x84, 0x98, 0xC8, 0xF6, +0x40, 0x9A, 0x40, 0xEA, 0x00, 0x1C, 0xAB, 0x39, +0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF6, 0x84, 0x98, +0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0xA0, 0xF0, 0x84, 0x9A, 0x10, 0x6B, +0x8C, 0xEB, 0x07, 0x23, 0x11, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x80, 0x18, +0x3D, 0x4E, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF6, 0x84, 0x98, 0xC8, 0xF6, 0x40, 0x9A, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF6, 0x84, 0x98, 0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xF0, -0x84, 0x9A, 0x04, 0x6B, 0x8C, 0xEB, 0x09, 0x23, -0x05, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0xF0, -0x64, 0xDA, 0x00, 0x18, 0xCB, 0xDB, 0x00, 0x18, -0x5A, 0xDC, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x84, 0x9A, 0x02, 0xF0, 0x00, 0x6B, 0x8C, 0xEB, +0x08, 0x23, 0x02, 0xF0, 0x01, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x00, 0x18, +0x79, 0xE7, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF6, 0x84, 0x98, 0xC8, 0xF6, -0x40, 0x9A, 0x40, 0xEA, 0x00, 0x1C, 0xAC, 0x39, -0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF6, 0x84, 0x98, -0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, 0xAB, 0xED, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x63, 0xF6, 0x9C, 0xA2, 0x03, 0xF6, -0x63, 0xA2, 0x8E, 0xEB, 0x05, 0x23, 0xA0, 0xF0, -0x9E, 0xA2, 0x96, 0x34, 0x00, 0x18, 0xBB, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0xCB, 0xF1, 0x5C, 0x9A, -0x02, 0x2A, 0x00, 0x18, 0x4B, 0xCD, 0x30, 0xF0, -0x20, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF6, -0x84, 0x98, 0xC8, 0xF6, 0x40, 0x9A, 0x40, 0xEA, -0x00, 0x1C, 0xAB, 0x39, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0x9A, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF6, 0x84, 0x98, 0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xF0, -0x84, 0x9A, 0x10, 0x6B, 0x8C, 0xEB, 0x07, 0x23, -0x11, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0xF0, -0x64, 0xDA, 0x80, 0x18, 0x2D, 0x4E, 0x30, 0xF0, -0x20, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF6, -0x84, 0x98, 0xC8, 0xF6, 0x40, 0x9A, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF6, 0x84, 0x98, -0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, 0xAB, 0xED, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0xA0, 0xF0, 0x84, 0x9A, 0x02, 0xF0, -0x00, 0x6B, 0x8C, 0xEB, 0x08, 0x23, 0x02, 0xF0, -0x01, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0xF0, -0x64, 0xDA, 0x00, 0x18, 0x23, 0xE8, 0x30, 0xF0, -0x20, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF6, -0x84, 0x98, 0xC8, 0xF6, 0x40, 0x9A, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF6, 0x84, 0x98, -0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, 0xAB, 0xED, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0xA0, 0xF0, 0x84, 0x9A, 0xFF, 0x6B, -0x01, 0x4B, 0x8C, 0xEB, 0x08, 0x23, 0xFF, 0x6B, -0x02, 0x4B, 0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0xF0, -0x64, 0xDA, 0x80, 0x18, 0x4C, 0x63, 0x30, 0xF0, -0x20, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF6, -0x84, 0x98, 0xC8, 0xF6, 0x40, 0x9A, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF6, 0x84, 0x98, -0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, 0xAB, 0xED, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF2, -0x74, 0x9B, 0xA0, 0xF0, 0x84, 0x9A, 0x8C, 0xEB, -0x20, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF3, -0x78, 0x9B, 0x8C, 0xEB, 0xA0, 0xF0, 0x9B, 0xA2, -0xA0, 0xF0, 0x64, 0xDA, 0x7F, 0x6B, 0x8C, 0xEB, -0x07, 0x2B, 0x03, 0xF6, 0x43, 0xA2, 0x0C, 0x72, -0x03, 0x61, 0x80, 0x18, 0x80, 0x1F, 0x0D, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x30, 0xF0, 0x20, 0x6C, 0xA0, 0xF0, 0x64, 0x9A, -0xA3, 0xF2, 0x94, 0x9C, 0x8D, 0xEB, 0xA0, 0xF0, -0x64, 0xDA, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x84, 0x9A, 0xFF, 0x6B, 0x01, 0x4B, 0x8C, 0xEB, +0x08, 0x23, 0xFF, 0x6B, 0x02, 0x4B, 0x6B, 0xEB, +0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x80, 0x18, +0xD9, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF6, 0x84, 0x98, 0xC8, 0xF6, -0x40, 0x9A, 0x30, 0xF0, 0x20, 0x69, 0x2B, 0xF1, -0x18, 0x49, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0x9A, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF6, 0x84, 0x98, 0x01, 0xF0, 0x48, 0x9A, -0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, 0x23, 0xF2, -0x1C, 0xA1, 0x01, 0x6A, 0x4E, 0xE8, 0x05, 0x28, -0x0B, 0x6C, 0x80, 0x18, 0xDA, 0x64, 0x23, 0xF2, -0x1C, 0xC1, 0x30, 0xF0, 0x20, 0x69, 0x30, 0xF0, -0x20, 0x68, 0x80, 0x18, 0x51, 0x6B, 0x80, 0x18, -0x6B, 0x6B, 0xA9, 0xF6, 0x84, 0x99, 0xC8, 0xF6, -0x40, 0x98, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xA9, 0xF6, 0x84, 0x99, 0x01, 0xF0, 0x48, 0x9A, -0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, 0x00, 0x18, -0xA9, 0xE6, 0xC8, 0xF6, 0x40, 0x98, 0xA9, 0xF6, -0x84, 0x99, 0x40, 0xEA, 0x85, 0x16, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, 0x14, 0x4A, -0x40, 0x9A, 0x10, 0xF0, 0x23, 0x68, 0xAB, 0xF2, -0x01, 0x48, 0x00, 0xDA, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0x01, 0x69, 0x01, 0xF0, -0x54, 0x9A, 0xA9, 0xF6, 0x80, 0x9B, 0x2B, 0xE9, -0xB1, 0x67, 0x40, 0xEA, 0x01, 0x4A, 0x0A, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF6, 0x5C, 0x9A, -0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0x00, 0x1C, 0xAC, 0x39, +0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF2, 0x78, 0x9B, 0xA0, 0xF0, +0x84, 0x9A, 0x8C, 0xEB, 0x20, 0x23, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF3, 0x78, 0x9B, 0x8C, 0xEB, +0xA0, 0xF0, 0x9B, 0xA2, 0xA0, 0xF0, 0x64, 0xDA, +0x7F, 0x6B, 0x8C, 0xEB, 0x07, 0x2B, 0xE3, 0xF5, +0x5F, 0xA2, 0x0C, 0x72, 0x03, 0x61, 0x80, 0x18, +0x57, 0x22, 0x0D, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6C, +0xA0, 0xF0, 0x64, 0x9A, 0xA3, 0xF2, 0x98, 0x9C, +0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF6, +0x84, 0x98, 0xC8, 0xF6, 0x40, 0x9A, 0x30, 0xF0, +0x20, 0x69, 0x2B, 0xF1, 0x18, 0x49, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF6, 0x84, 0x98, +0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, 0xAB, 0xED, +0x40, 0xEA, 0x23, 0xF2, 0x1C, 0xA1, 0x01, 0x6A, +0x4E, 0xE8, 0x05, 0x28, 0x0B, 0x6C, 0x80, 0x18, +0x6E, 0x63, 0x23, 0xF2, 0x1C, 0xC1, 0x30, 0xF0, +0x20, 0x69, 0x30, 0xF0, 0x20, 0x68, 0x80, 0x18, +0x75, 0x69, 0x80, 0x18, 0x8F, 0x69, 0xA9, 0xF6, +0x84, 0x99, 0xC8, 0xF6, 0x40, 0x98, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF6, 0x84, 0x99, +0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, 0xAB, 0xED, +0x40, 0xEA, 0x00, 0x18, 0xFF, 0xE5, 0xC8, 0xF6, +0x40, 0x98, 0xA9, 0xF6, 0x84, 0x99, 0x40, 0xEA, +0x85, 0x16, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF0, 0x14, 0x4A, 0x40, 0x9A, 0x10, 0xF0, +0x23, 0x68, 0xEA, 0xF7, 0x15, 0x48, 0x00, 0xDA, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xA9, 0xF6, 0x84, 0x9B, 0x01, 0xF0, 0x48, 0x9A, -0xB1, 0x67, 0x01, 0x48, 0x40, 0xEA, 0x00, 0x18, -0x51, 0xD7, 0x00, 0x18, 0x4D, 0xD7, 0x00, 0x18, -0x49, 0xD7, 0x00, 0x18, 0x45, 0xD7, 0x00, 0x18, -0x41, 0xD7, 0x00, 0x18, 0x3D, 0xD7, 0xFC, 0x6C, -0x00, 0x18, 0x8C, 0xC3, 0x30, 0xF0, 0x20, 0x6B, +0x01, 0x69, 0x01, 0xF0, 0x54, 0x9A, 0xA9, 0xF6, +0x80, 0x9B, 0x2B, 0xE9, 0xB1, 0x67, 0x40, 0xEA, +0x01, 0x4A, 0x0A, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF6, 0x5C, 0x9A, 0x40, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0x00, 0x1C, 0xAC, 0x39, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF6, 0x84, 0x9B, -0xC8, 0xF6, 0x40, 0x9A, 0x40, 0xEA, 0x00, 0x1C, -0xAB, 0x39, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, -0x14, 0x4A, 0x40, 0x9A, 0x00, 0xDA, 0xB0, 0x17, +0x01, 0xF0, 0x48, 0x9A, 0xB1, 0x67, 0x01, 0x48, +0x40, 0xEA, 0x00, 0x18, 0xA7, 0xD6, 0x00, 0x18, +0xA3, 0xD6, 0x00, 0x18, 0x9F, 0xD6, 0x00, 0x18, +0x9B, 0xD6, 0x00, 0x18, 0x97, 0xD6, 0x00, 0x18, +0x93, 0xD6, 0xFC, 0x6C, 0x00, 0x18, 0xD8, 0xC2, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xA9, 0xF6, 0x84, 0x9B, 0xC8, 0xF6, 0x40, 0x9A, +0x40, 0xEA, 0x00, 0x1C, 0xAB, 0x39, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF0, 0x14, 0x4A, 0x40, 0x9A, +0x00, 0xDA, 0xB0, 0x17, 0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x44, 0x9A, 0x01, 0x72, 0x0C, 0x61, -0xFC, 0x6C, 0x00, 0x18, 0x91, 0xC3, 0x30, 0xF0, +0xFC, 0x6C, 0x00, 0x18, 0xDD, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0xA9, 0xF6, 0x80, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x44, 0x9A, 0x01, 0x72, 0x0C, 0x61, -0xFC, 0x6C, 0x00, 0x18, 0x91, 0xC3, 0x30, 0xF0, +0xFC, 0x6C, 0x00, 0x18, 0xDD, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0xA9, 0xF6, 0x80, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x44, 0x9A, 0x01, 0x72, 0x0C, 0x61, -0xFC, 0x6C, 0x00, 0x18, 0x91, 0xC3, 0x30, 0xF0, +0xFC, 0x6C, 0x00, 0x18, 0xDD, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0xA9, 0xF6, 0x80, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x44, 0x9A, 0x01, 0x72, 0x0E, 0x61, -0xFC, 0x6C, 0x00, 0x18, 0x91, 0xC3, 0x00, 0x18, -0x79, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0xFC, 0x6C, 0x00, 0x18, 0xDD, 0xC2, 0x00, 0x18, +0xD8, 0xDD, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0xA9, 0xF6, 0x80, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x44, 0x9A, 0x01, 0x72, 0x0E, 0x61, 0xFC, 0x6C, 0x00, 0x18, -0x91, 0xC3, 0x00, 0x18, 0x49, 0xDE, 0x30, 0xF0, +0xDD, 0xC2, 0x00, 0x18, 0xA8, 0xDD, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0xA9, 0xF6, 0x80, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x44, 0x9A, 0x01, 0x72, 0x1D, 0x61, 0x30, 0xF0, 0x20, 0x68, 0xFC, 0x6C, -0x2B, 0xF1, 0x18, 0x48, 0x00, 0x18, 0x91, 0xC3, -0x00, 0x18, 0x50, 0xDE, 0x48, 0x98, 0x20, 0x6B, -0x6C, 0xEA, 0x07, 0x22, 0x00, 0x18, 0xA7, 0xE1, +0x2B, 0xF1, 0x18, 0x48, 0x00, 0x18, 0xDD, 0xC2, +0x00, 0x18, 0xAF, 0xDD, 0x48, 0x98, 0x20, 0x6B, +0x6C, 0xEA, 0x07, 0x22, 0x00, 0x18, 0xFD, 0xE0, 0x48, 0x98, 0x21, 0x6B, 0x6B, 0xEB, 0x6C, 0xEA, 0x48, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0xA9, 0xF6, 0x80, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF2, 0x48, 0x9A, 0xE1, 0xF7, 0x1F, 0x6B, +0xA3, 0xF2, 0x4C, 0x9A, 0xE1, 0xF7, 0x1F, 0x6B, 0x40, 0xAA, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x5C, 0x9A, 0x60, 0x9A, 0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF2, 0x50, 0x9A, 0x01, 0x6B, 0x40, 0x9A, +0xA3, 0xF2, 0x54, 0x9A, 0x01, 0x6B, 0x40, 0x9A, 0x42, 0x32, 0x52, 0x32, 0x6E, 0xEA, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF3, 0x60, 0x9B, 0x44, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x60, 0x9B, 0x03, 0xF3, 0x8C, 0x9C, 0x8C, 0xEB, 0x43, 0xEB, 0x02, 0x60, 0x6F, 0xEB, 0x69, 0xE2, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0xF8, 0xEC, 0x05, 0x97, 0x03, 0x63, +0x00, 0x18, 0x4E, 0xEC, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0xEB, 0xEC, 0x05, 0x97, 0x03, 0x63, +0x00, 0x18, 0x41, 0xEC, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0x44, 0xED, 0x05, 0x97, 0x03, 0x63, +0x00, 0x18, 0x9A, 0xEC, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0x04, 0xEE, 0x05, 0x97, 0x03, 0x63, +0x00, 0x18, 0x5A, 0xED, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0x7C, 0xEE, 0x05, 0x97, 0x03, 0x63, +0x00, 0x18, 0xD2, 0xED, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0xE5, 0xEC, 0x05, 0x97, 0x03, 0x63, +0x00, 0x18, 0x3B, 0xEC, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, 0xE9, 0xF6, 0x58, 0x9A, 0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, 0xE9, 0xF6, 0x54, 0x9A, @@ -21874,7 +21482,7 @@ u8 array_mp_8822c_fw_nic[] = { 0xA0, 0x9C, 0x0C, 0x2D, 0x6F, 0xEB, 0x4C, 0xEB, 0x61, 0xDC, 0x30, 0xF0, 0x20, 0x6A, 0xE9, 0xF6, 0xB8, 0x9A, 0xAD, 0xE3, 0xE9, 0xF6, 0x78, 0xDA, -0x00, 0x18, 0x5B, 0xD7, 0x05, 0x97, 0x03, 0x63, +0x00, 0x18, 0xB1, 0xD6, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x08, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xE9, 0xF6, 0x6C, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF7, 0x08, 0x4A, 0x03, 0x6B, @@ -21892,11 +21500,11 @@ u8 array_mp_8822c_fw_nic[] = { 0x30, 0xF0, 0x20, 0x6C, 0xE9, 0xF6, 0x74, 0xDC, 0x61, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xE9, 0xF6, 0x78, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, -0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xE9, 0xF6, +0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xE9, 0xF6, 0x7C, 0xDA, 0x20, 0xE8, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xE9, 0xF6, 0x50, 0x9A, 0x04, 0x67, 0x02, 0x2A, -0x00, 0x18, 0x81, 0xD7, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0x18, 0xD7, 0xD6, 0x30, 0xF0, 0x20, 0x6A, 0xE9, 0xF6, 0x5C, 0x9A, 0x0C, 0xEA, 0x58, 0x2A, 0x57, 0x20, 0x30, 0xF0, 0x20, 0x6A, 0xE9, 0xF6, 0x4C, 0x9A, 0x03, 0x6B, 0x49, 0xE0, 0x4C, 0xEB, @@ -21912,7 +21520,7 @@ u8 array_mp_8822c_fw_nic[] = { 0x20, 0x9B, 0x04, 0xD5, 0xA0, 0x98, 0xA0, 0xDB, 0x61, 0x98, 0xE9, 0xF6, 0x8C, 0x9C, 0x4F, 0xE3, 0x84, 0x34, 0x63, 0xEC, 0x05, 0x60, 0x51, 0xE0, -0x61, 0xDC, 0x41, 0xD8, 0x00, 0x18, 0x5B, 0xD7, +0x61, 0xDC, 0x41, 0xD8, 0x00, 0x18, 0xB1, 0xD6, 0x30, 0xF0, 0x20, 0x6B, 0xE9, 0xF6, 0x98, 0x9B, 0x41, 0x98, 0x4B, 0xE4, 0xE9, 0xF6, 0x58, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xE9, 0xF6, 0x94, 0x9B, @@ -21943,34 +21551,30 @@ u8 array_mp_8822c_fw_nic[] = { 0x4A, 0xEB, 0x02, 0x60, 0x4B, 0xE3, 0x20, 0xE8, 0x01, 0x4C, 0x01, 0x4D, 0xF6, 0x2E, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x02, 0x24, 0x00, 0x18, 0x70, 0xD7, 0x05, 0x97, +0x02, 0x24, 0x00, 0x18, 0xC6, 0xD6, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x00, 0x68, 0x24, 0x67, -0x03, 0x24, 0x00, 0x18, 0xA5, 0xD7, 0x02, 0x67, +0x03, 0x24, 0x00, 0x18, 0xFB, 0xD6, 0x02, 0x67, 0x05, 0x20, 0x90, 0x67, 0x00, 0x6D, 0xD1, 0x67, -0x00, 0x18, 0xE7, 0xD7, 0x50, 0x67, 0x07, 0x97, +0x00, 0x18, 0x3D, 0xD7, 0x50, 0x67, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x00, 0x6A, 0x02, 0x24, -0x00, 0x18, 0xA5, 0xD7, 0x05, 0x97, 0x03, 0x63, +0x00, 0x18, 0xFB, 0xD6, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x06, 0x2C, 0x64, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF0, 0x60, 0xDA, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF0, 0x80, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF0, -0x40, 0x9A, 0x32, 0x72, 0x3A, 0x60, 0x33, 0x5A, -0x0C, 0x60, 0x14, 0x72, 0x1E, 0x60, 0x15, 0x5A, +0x40, 0x9A, 0x32, 0x72, 0x2A, 0x60, 0x33, 0x5A, +0x0C, 0x60, 0x14, 0x72, 0x2E, 0x60, 0x15, 0x5A, 0x03, 0x60, 0x0A, 0x72, 0x12, 0x60, 0x20, 0xE8, -0x19, 0x72, 0x1F, 0x60, 0x28, 0x72, 0x25, 0x60, -0x20, 0xE8, 0x64, 0x72, 0x3A, 0x60, 0x65, 0x5A, -0x03, 0x60, 0x50, 0x72, 0x2E, 0x60, 0x20, 0xE8, -0x78, 0x72, 0x3B, 0x60, 0xC8, 0x72, 0x41, 0x60, +0x19, 0x72, 0x17, 0x60, 0x28, 0x72, 0x25, 0x60, +0x20, 0xE8, 0x64, 0x72, 0x2A, 0x60, 0x65, 0x5A, +0x03, 0x60, 0x50, 0x72, 0x1E, 0x60, 0x20, 0xE8, +0x78, 0x72, 0x2B, 0x60, 0xC8, 0x72, 0x31, 0x60, 0x20, 0xE8, 0x02, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF0, 0x64, 0xDA, 0xE0, 0xF7, 0x1E, 0x4B, -0x41, 0x10, 0x03, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0x89, 0xF0, 0x64, 0xDA, 0xE1, 0xF3, 0x1D, 0x4B, -0x39, 0x10, 0x09, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x31, 0x10, 0x09, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF0, 0x64, 0xDA, 0xE4, 0xF3, 0x17, 0x4B, -0x31, 0x10, 0x05, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0x89, 0xF0, 0x64, 0xDA, 0xE2, 0xF3, 0x1B, 0x4B, 0x29, 0x10, 0x11, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF0, 0x64, 0xDA, 0xE8, 0xF3, 0x0F, 0x4B, 0x21, 0x10, 0x0D, 0x6B, 0x30, 0xF0, 0x20, 0x6A, @@ -21997,427 +21601,507 @@ u8 array_mp_8822c_fw_nic[] = { 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, 0x5C, 0x9A, 0x6D, 0xE4, 0xFF, 0xF7, 0x1F, 0x6F, 0x63, 0xEA, 0xCC, 0xEF, 0x07, 0x60, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF1, 0x74, 0x9B, 0x6D, 0xE4, 0x63, 0xEA, +0x03, 0xF1, 0x78, 0x9B, 0x6D, 0xE4, 0x63, 0xEA, 0x23, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, 0xC0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, 0x5C, 0x9A, 0xD9, 0xE5, 0xC3, 0xEA, 0x07, 0x60, -0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF1, 0xD4, 0x9C, +0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF1, 0xD8, 0x9C, 0xD9, 0xE5, 0xC3, 0xEA, 0x11, 0x61, 0x00, 0x6A, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, 0x58, 0x9A, 0x00, 0x6C, 0xA3, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, 0x5C, 0x9A, 0x00, 0x6C, 0x40, 0xEA, 0x01, 0x10, 0x00, 0x6A, 0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, -0xFF, 0x6A, 0xFF, 0xF7, 0x1F, 0x6B, 0x8C, 0xEA, -0xAC, 0xEB, 0x0F, 0x22, 0x01, 0x72, 0x1E, 0x61, -0x30, 0xF0, 0x21, 0x6A, 0xB2, 0xF4, 0x58, 0x9A, -0x4D, 0xE3, 0x0C, 0xF0, 0x01, 0x5B, 0x16, 0x60, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF3, 0x68, 0x9B, -0x0F, 0x10, 0x30, 0xF0, 0x21, 0x6A, 0xB2, 0xF4, -0x58, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF2, -0x94, 0x9C, 0x4D, 0xE3, 0x63, 0xEC, 0x06, 0x61, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF2, 0x7C, 0x9B, -0x49, 0xE3, 0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x67, 0xF3, 0x1A, 0xAA, 0x4D, 0x20, 0x67, 0xF3, -0xD8, 0xA2, 0x67, 0xF3, 0x3C, 0x9A, 0x03, 0x6B, -0x6C, 0xEE, 0x01, 0x76, 0x31, 0xE0, 0xFF, 0x6D, -0x17, 0x60, 0x02, 0x76, 0x29, 0x60, 0x40, 0x2E, -0x30, 0xF0, 0x20, 0x6E, 0x23, 0xF1, 0xC0, 0x9E, -0x83, 0xEE, 0x3A, 0x61, 0x67, 0xF3, 0x98, 0xA2, -0x8A, 0x34, 0x6C, 0xEC, 0xAC, 0xEC, 0xB0, 0x67, -0x00, 0x18, 0x8A, 0xD8, 0x31, 0x22, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF1, 0x94, 0x9B, 0x27, 0x10, -0x30, 0xF0, 0x20, 0x6E, 0x43, 0xF3, 0xCC, 0x9E, -0x83, 0xEE, 0x26, 0x61, 0x67, 0xF3, 0x98, 0xA2, -0x8A, 0x34, 0x6C, 0xEC, 0xAC, 0xEC, 0xB0, 0x67, -0x00, 0x18, 0x8A, 0xD8, 0x1D, 0x22, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF3, 0x90, 0x9B, 0x13, 0x10, -0x30, 0xF0, 0x20, 0x6E, 0x43, 0xF3, 0xD4, 0x9E, -0x83, 0xEE, 0x12, 0x61, 0x67, 0xF3, 0x98, 0xA2, -0x8A, 0x34, 0x6C, 0xEC, 0xAC, 0xEC, 0xB0, 0x67, -0x00, 0x18, 0x8A, 0xD8, 0x09, 0x22, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF3, 0x98, 0x9B, 0x91, 0xE1, -0xA2, 0x67, 0xD0, 0x67, 0x00, 0x18, 0x6B, 0xD8, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, -0xA4, 0x67, 0x30, 0xF0, 0x21, 0x6C, 0xB2, 0xF4, -0x10, 0x4C, 0x0C, 0x6E, 0x40, 0xEA, 0x00, 0x18, -0x9E, 0xD8, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x00, 0xD8, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xED, -0x00, 0x18, 0xE7, 0xD7, 0x05, 0x97, 0x00, 0x6A, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0xF7, 0x1F, 0x69, 0x5D, 0x67, 0x2C, 0xEC, +0x2C, 0xED, 0x0D, 0xD7, 0x0C, 0xD6, 0x0E, 0x90, +0x88, 0xCA, 0xA9, 0xCA, 0x04, 0x04, 0xA7, 0x67, +0x04, 0x6E, 0x00, 0x18, 0xB9, 0xD7, 0x0D, 0x95, +0x0C, 0x94, 0x2C, 0xE8, 0xD0, 0x67, 0x04, 0x4D, +0x00, 0x18, 0xB9, 0xD7, 0x44, 0x40, 0x2C, 0xEA, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0xFF, 0xF7, +0x1F, 0x6B, 0x8C, 0xEA, 0xAC, 0xEB, 0x0F, 0x22, +0x01, 0x72, 0x1E, 0x61, 0x30, 0xF0, 0x21, 0x6A, +0xB2, 0xF4, 0x54, 0x9A, 0x4D, 0xE3, 0x0C, 0xF0, +0x01, 0x5B, 0x16, 0x60, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF3, 0x68, 0x9B, 0x0F, 0x10, 0x30, 0xF0, +0x21, 0x6A, 0xB2, 0xF4, 0x54, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x63, 0xF2, 0x98, 0x9C, 0x4D, 0xE3, +0x63, 0xEC, 0x06, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF2, 0x60, 0x9B, 0x49, 0xE3, 0x20, 0xE8, +0x00, 0x6A, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0x67, 0xF3, 0x16, 0xAA, +0x4D, 0x20, 0x67, 0xF3, 0xD4, 0xA2, 0x67, 0xF3, +0x38, 0x9A, 0x03, 0x6B, 0x6C, 0xEE, 0x01, 0x76, +0x31, 0xE0, 0xFF, 0x6D, 0x17, 0x60, 0x02, 0x76, +0x29, 0x60, 0x40, 0x2E, 0x30, 0xF0, 0x20, 0x6E, +0x23, 0xF1, 0xC4, 0x9E, 0x83, 0xEE, 0x3A, 0x61, +0x67, 0xF3, 0x94, 0xA2, 0x8A, 0x34, 0x6C, 0xEC, +0xAC, 0xEC, 0xB0, 0x67, 0x00, 0x18, 0xE9, 0xD7, +0x31, 0x22, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, +0x98, 0x9B, 0x27, 0x10, 0x30, 0xF0, 0x20, 0x6E, +0x43, 0xF3, 0xCC, 0x9E, 0x83, 0xEE, 0x26, 0x61, +0x67, 0xF3, 0x94, 0xA2, 0x8A, 0x34, 0x6C, 0xEC, +0xAC, 0xEC, 0xB0, 0x67, 0x00, 0x18, 0xE9, 0xD7, +0x1D, 0x22, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF3, +0x90, 0x9B, 0x13, 0x10, 0x30, 0xF0, 0x20, 0x6E, +0x43, 0xF3, 0xD4, 0x9E, 0x83, 0xEE, 0x12, 0x61, +0x67, 0xF3, 0x94, 0xA2, 0x8A, 0x34, 0x6C, 0xEC, +0xAC, 0xEC, 0xB0, 0x67, 0x00, 0x18, 0xE9, 0xD7, +0x09, 0x22, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF3, +0x98, 0x9B, 0x91, 0xE1, 0xA2, 0x67, 0xD0, 0x67, +0x00, 0x18, 0xB9, 0xD7, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, +0x21, 0x6C, 0xB2, 0xF4, 0x0C, 0x4C, 0x0C, 0x6E, +0x40, 0xEA, 0x00, 0x18, 0xFD, 0xD7, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0xFF, 0x6A, 0x04, 0x67, 0x4C, 0xEE, -0x00, 0x18, 0xEC, 0xD7, 0x50, 0x67, 0x05, 0x97, -0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEE, -0x4C, 0xED, 0xA0, 0xC4, 0xC1, 0xC4, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0xA7, 0x67, -0x02, 0x4C, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x69, 0xF2, 0x08, 0x48, 0x4F, 0x98, 0x0A, 0xD4, -0x0B, 0xD5, 0x8E, 0xEA, 0x0F, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0x00, 0x69, -0x10, 0xF0, 0x23, 0x6C, 0x04, 0xD1, 0x8D, 0xF2, -0x0D, 0x4C, 0xB1, 0x67, 0x64, 0x6E, 0x01, 0x6F, -0x40, 0xEA, 0x31, 0xD8, 0x0A, 0x93, 0x30, 0xF0, -0x20, 0x6A, 0x69, 0xF2, 0x08, 0x4A, 0x6F, 0xDA, -0x0B, 0x93, 0x70, 0xDA, 0x09, 0x97, 0x08, 0x91, -0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, 0x4C, 0x9A, -0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, -0x80, 0xAA, 0xEF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, -0xA4, 0xF5, 0x58, 0xCB, 0xA4, 0xF5, 0x78, 0xAB, -0x30, 0xF0, 0x20, 0x6C, 0x69, 0xF2, 0x56, 0xCC, -0x60, 0x6C, 0x8C, 0xEB, 0x00, 0x6A, 0x01, 0x23, -0x01, 0x6A, 0xFF, 0x6B, 0x6C, 0xEA, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF2, 0x08, 0x4B, -0x9B, 0xA3, 0x02, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, -0x03, 0x6C, 0x8B, 0xEC, 0x8C, 0xEA, 0xFE, 0x4C, -0x8C, 0xEA, 0x5B, 0xC3, 0x00, 0x6A, 0x59, 0xC3, -0x5A, 0xC3, 0x20, 0xE8, 0xFF, 0x6B, 0x8C, 0xEB, -0x0F, 0x5B, 0x00, 0x6A, 0x06, 0x61, 0x24, 0x5B, -0x78, 0x67, 0x01, 0x5B, 0x58, 0x67, 0x02, 0x6B, -0x4B, 0xE3, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF6, 0x70, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0x9B, 0xA9, 0xF2, 0x98, 0xDA, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF6, 0x94, 0x9A, 0xFC, 0x6A, -0xA0, 0xA4, 0xAC, 0xEA, 0x40, 0xC4, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF6, 0x58, 0x9A, 0x0D, 0x6C, -0x80, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, -0x5C, 0x9A, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x69, 0x69, 0xF2, 0x08, 0x49, -0x40, 0xF0, 0x8C, 0xA1, 0x00, 0x18, 0x1B, 0xD9, -0x40, 0xF0, 0x8E, 0xA1, 0x02, 0x67, 0x00, 0x18, -0x1B, 0xD9, 0x4D, 0xE8, 0xFF, 0x6B, 0x6C, 0xE8, -0x01, 0x6A, 0x4E, 0xE8, 0x01, 0x58, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x58, 0x67, 0x6C, 0xEA, -0x04, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xA4, 0xF5, 0x8C, 0x9A, -0x64, 0x67, 0x03, 0x2C, 0x84, 0xF5, 0x74, 0x9A, -0x06, 0x23, 0x05, 0x23, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF6, 0x50, 0x9A, 0x60, 0xDA, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE0, 0xF0, -0x9A, 0xA2, 0x05, 0x6B, 0x8C, 0xEB, 0x05, 0x73, -0x05, 0x60, 0x00, 0x6B, 0xA4, 0xF5, 0x6C, 0xDA, -0x84, 0xF5, 0x74, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0x00, 0x18, 0x56, 0xD7, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xED, 0x00, 0x18, 0x3D, 0xD7, +0x05, 0x97, 0x00, 0x6A, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, +0x04, 0x67, 0x4C, 0xEE, 0x00, 0x18, 0x42, 0xD7, +0x50, 0x67, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEE, 0x4C, 0xED, 0xA0, 0xC4, +0xC1, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0xA7, 0x67, 0x02, 0x4C, 0x40, 0xEA, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x69, 0xF2, 0x08, 0x48, -0x20, 0xF0, 0x45, 0xA0, 0x2F, 0x2A, 0x80, 0x18, -0xC4, 0x5F, 0x40, 0xF0, 0x8C, 0xA0, 0x00, 0x69, -0x00, 0x18, 0x1B, 0xD9, 0x06, 0x2A, 0x40, 0xF0, -0x2D, 0xA0, 0x01, 0x6A, 0x1A, 0x59, 0x38, 0x67, -0x4E, 0xE9, 0x30, 0xF0, 0x20, 0x68, 0x69, 0xF2, -0x08, 0x48, 0x40, 0xF0, 0x8E, 0xA0, 0x00, 0x18, -0x1B, 0xD9, 0x00, 0x6B, 0x1B, 0x65, 0x05, 0x2A, -0x40, 0xF0, 0x4F, 0xA0, 0x1A, 0x5A, 0x58, 0x67, -0x01, 0x72, 0x01, 0x61, 0x3E, 0x21, 0x00, 0x6A, +0x4F, 0x98, 0x0A, 0xD4, 0x0B, 0xD5, 0x8E, 0xEA, +0x0F, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x4C, 0x9A, 0x00, 0x69, 0x10, 0xF0, 0x23, 0x6C, +0x04, 0xD1, 0x0D, 0xF0, 0x09, 0x4C, 0xB1, 0x67, +0x64, 0x6E, 0x01, 0x6F, 0x40, 0xEA, 0x31, 0xD8, +0x0A, 0x93, 0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF2, +0x08, 0x4A, 0x6F, 0xDA, 0x0B, 0x93, 0x70, 0xDA, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF6, 0x5C, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0x2B, 0xF1, 0x18, 0x4B, 0x80, 0xAA, 0xEF, 0xF7, +0x1F, 0x6A, 0x8C, 0xEA, 0xA4, 0xF5, 0x54, 0xCB, +0xA4, 0xF5, 0x74, 0xAB, 0x30, 0xF0, 0x20, 0x6C, +0x69, 0xF2, 0x56, 0xCC, 0x60, 0x6C, 0x8C, 0xEB, +0x00, 0x6A, 0x01, 0x23, 0x01, 0x6A, 0xFF, 0x6B, +0x6C, 0xEA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0x69, 0xF2, 0x08, 0x4B, 0x9B, 0xA3, 0x02, 0x6A, +0x4B, 0xEA, 0x8C, 0xEA, 0x03, 0x6C, 0x8B, 0xEC, +0x8C, 0xEA, 0xFE, 0x4C, 0x8C, 0xEA, 0x5B, 0xC3, +0x00, 0x6A, 0x59, 0xC3, 0x5A, 0xC3, 0x20, 0xE8, +0xFF, 0x6B, 0x8C, 0xEB, 0x0F, 0x5B, 0x00, 0x6A, +0x06, 0x61, 0x24, 0x5B, 0x78, 0x67, 0x01, 0x5B, +0x58, 0x67, 0x02, 0x6B, 0x4B, 0xE3, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, 0x60, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0x9B, 0xA9, 0xF2, +0x98, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, +0x84, 0x9A, 0xFC, 0x6A, 0xA0, 0xA4, 0xAC, 0xEA, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, +0x48, 0x9A, 0x0D, 0x6C, 0x80, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF6, 0x4C, 0x9A, 0x40, 0xDB, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0x69, 0xF2, 0x08, 0x49, 0x40, 0xF0, 0x8C, 0xA1, +0x00, 0x18, 0x7A, 0xD8, 0x40, 0xF0, 0x8E, 0xA1, +0x02, 0x67, 0x00, 0x18, 0x7A, 0xD8, 0x4D, 0xE8, +0xFF, 0x6B, 0x6C, 0xE8, 0x01, 0x6A, 0x4E, 0xE8, +0x01, 0x58, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x58, 0x67, 0x6C, 0xEA, 0x04, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0xA4, 0xF5, 0x88, 0x9A, 0x64, 0x67, 0x03, 0x2C, +0x84, 0xF5, 0x70, 0x9A, 0x06, 0x23, 0x05, 0x23, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, 0x40, 0x9A, +0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0xE0, 0xF0, 0x9A, 0xA2, 0x05, 0x6B, +0x8C, 0xEB, 0x05, 0x73, 0x05, 0x60, 0x00, 0x6B, +0xA4, 0xF5, 0x68, 0xDA, 0x84, 0xF5, 0x70, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0x69, 0xF2, 0x08, 0x48, 0x20, 0xF0, 0x45, 0xA0, +0x2F, 0x2A, 0x80, 0x18, 0x49, 0x5E, 0x40, 0xF0, +0x8C, 0xA0, 0x00, 0x69, 0x00, 0x18, 0x7A, 0xD8, +0x06, 0x2A, 0x40, 0xF0, 0x2D, 0xA0, 0x01, 0x6A, +0x1A, 0x59, 0x38, 0x67, 0x4E, 0xE9, 0x30, 0xF0, +0x20, 0x68, 0x69, 0xF2, 0x08, 0x48, 0x40, 0xF0, +0x8E, 0xA0, 0x00, 0x18, 0x7A, 0xD8, 0x00, 0x6B, +0x1B, 0x65, 0x05, 0x2A, 0x40, 0xF0, 0x4F, 0xA0, +0x1A, 0x5A, 0x58, 0x67, 0x01, 0x72, 0x01, 0x61, +0x3E, 0x21, 0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, +0x23, 0x6C, 0x0C, 0xF2, 0x01, 0x4C, 0x00, 0x6D, +0x14, 0x6E, 0x01, 0x6F, 0x40, 0xEA, 0x2F, 0x10, +0x01, 0x72, 0x2D, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF6, 0x64, 0x9A, 0xFF, 0x69, 0x03, 0x6C, +0x40, 0xA3, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, +0x18, 0x48, 0x2C, 0xEA, 0x8D, 0xEA, 0x2C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, +0x48, 0x9A, 0x01, 0x6B, 0x60, 0xC2, 0xE0, 0xF0, +0x7A, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, +0x12, 0x2A, 0x00, 0x18, 0x8F, 0xD8, 0x0F, 0x22, +0xA4, 0xF5, 0x65, 0xA0, 0xA4, 0xF5, 0x46, 0xA0, +0x01, 0x4B, 0xA4, 0xF5, 0x65, 0xC0, 0xA4, 0xF5, +0x65, 0xA0, 0x14, 0x4A, 0x2C, 0xEA, 0x6E, 0xEA, +0x02, 0x2A, 0xA4, 0xF5, 0x66, 0xC0, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFF, 0x6A, 0x8C, 0xEA, 0x05, 0x5A, 0x0B, 0x60, +0x87, 0x42, 0x30, 0xF0, 0x20, 0x6B, 0x09, 0x4C, +0x84, 0x34, 0x69, 0xF2, 0x08, 0x4B, 0x6D, 0xE4, +0x83, 0xAB, 0x01, 0x4C, 0x83, 0xCB, 0x30, 0xF0, +0x20, 0x6B, 0x69, 0xF2, 0x08, 0x4B, 0x40, 0xF0, +0x88, 0xA3, 0x11, 0x24, 0x10, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF6, 0x9C, 0x9A, 0xFF, 0x6D, +0x10, 0x6E, 0x40, 0xA4, 0xAC, 0xEA, 0xCD, 0xEA, +0xAC, 0xEA, 0x40, 0xC4, 0x40, 0xF0, 0x4A, 0xAB, +0x01, 0x4A, 0x40, 0xF0, 0x4A, 0xCB, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x69, 0xF2, 0x08, 0x4B, 0x4C, 0xEC, +0x4C, 0xED, 0x4C, 0xEE, 0xEC, 0xEA, 0x40, 0xF0, +0x8C, 0xC3, 0x40, 0xF0, 0xAD, 0xC3, 0x40, 0xF0, +0xCE, 0xC3, 0x40, 0xF0, 0x4F, 0xC3, 0x01, 0x24, +0x10, 0x2E, 0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF2, +0x08, 0x4A, 0x74, 0x9A, 0x07, 0x23, 0x30, 0xF0, +0x20, 0x6C, 0xC3, 0xF6, 0x80, 0x9C, 0x60, 0xDC, +0x00, 0x6B, 0x74, 0xDA, 0x00, 0x6C, 0x00, 0x18, +0xB9, 0xE6, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x69, 0x2C, 0xED, 0x2C, 0xEC, 0x09, 0xD5, +0x56, 0x24, 0x30, 0xF0, 0x20, 0x68, 0x69, 0xF2, +0x08, 0x48, 0x5B, 0xA0, 0x02, 0x6B, 0x4C, 0xEB, +0x2C, 0xEB, 0x08, 0xD3, 0x80, 0xF0, 0x02, 0x2B, +0x01, 0x6A, 0x9D, 0x67, 0x01, 0x6D, 0x06, 0x06, +0x58, 0xC4, 0x34, 0x6C, 0x80, 0x18, 0x1E, 0x69, +0x53, 0xA0, 0x02, 0x6C, 0x01, 0x4A, 0x53, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF5, 0x44, 0x9A, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, +0x48, 0x9A, 0x9B, 0xA0, 0x60, 0xA2, 0x04, 0x6A, +0x6C, 0xEA, 0x4A, 0x32, 0x4C, 0x33, 0x09, 0x6A, +0x4B, 0xEA, 0x8C, 0xEA, 0x6D, 0xEA, 0x00, 0x6C, +0x5B, 0xC0, 0x00, 0x18, 0x65, 0xDD, 0x47, 0xD8, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0x64, 0xF5, 0x98, 0xA2, 0x08, 0x6B, 0x00, 0x6D, +0x8D, 0xEB, 0x64, 0xF5, 0x78, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF0, 0x70, 0x9A, 0x02, 0x6C, +0x64, 0x6E, 0x40, 0xA3, 0x01, 0x6F, 0x2C, 0xEA, +0x8D, 0xEA, 0x2C, 0xEA, 0x40, 0xC3, 0x08, 0x92, +0x10, 0xF0, 0x23, 0x6C, 0xCC, 0xF5, 0x19, 0x4C, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, -0x4C, 0x9A, 0x10, 0xF0, 0x23, 0x6C, 0x8C, 0xF4, -0x05, 0x4C, 0x00, 0x6D, 0x14, 0x6E, 0x01, 0x6F, -0x40, 0xEA, 0x2F, 0x10, 0x01, 0x72, 0x2D, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, 0x74, 0x9A, -0xFF, 0x69, 0x03, 0x6C, 0x40, 0xA3, 0x30, 0xF0, -0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0x2C, 0xEA, -0x8D, 0xEA, 0x2C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF6, 0x58, 0x9A, 0x01, 0x6B, -0x60, 0xC2, 0xE0, 0xF0, 0x7A, 0xA0, 0x01, 0x6A, -0x6C, 0xEA, 0x2C, 0xEA, 0x12, 0x2A, 0x00, 0x18, -0x30, 0xD9, 0x0F, 0x22, 0xA4, 0xF5, 0x69, 0xA0, -0xA4, 0xF5, 0x4A, 0xA0, 0x01, 0x4B, 0xA4, 0xF5, -0x69, 0xC0, 0xA4, 0xF5, 0x69, 0xA0, 0x14, 0x4A, -0x2C, 0xEA, 0x6E, 0xEA, 0x02, 0x2A, 0xA4, 0xF5, -0x6A, 0xC0, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFF, 0x6A, 0x8C, 0xEA, -0x05, 0x5A, 0x0B, 0x60, 0x87, 0x42, 0x30, 0xF0, -0x20, 0x6B, 0x09, 0x4C, 0x84, 0x34, 0x69, 0xF2, -0x08, 0x4B, 0x6D, 0xE4, 0x83, 0xAB, 0x01, 0x4C, -0x83, 0xCB, 0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF2, -0x08, 0x4B, 0x40, 0xF0, 0x88, 0xA3, 0x11, 0x24, -0x10, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, -0x8C, 0x9A, 0xFF, 0x6D, 0x10, 0x6E, 0x40, 0xA4, -0xAC, 0xEA, 0xCD, 0xEA, 0xAC, 0xEA, 0x40, 0xC4, -0x40, 0xF0, 0x4A, 0xAB, 0x01, 0x4A, 0x40, 0xF0, -0x4A, 0xCB, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF2, -0x08, 0x4B, 0x4C, 0xEC, 0x4C, 0xED, 0x4C, 0xEE, -0xEC, 0xEA, 0x40, 0xF0, 0x8C, 0xC3, 0x40, 0xF0, -0xAD, 0xC3, 0x40, 0xF0, 0xCE, 0xC3, 0x40, 0xF0, -0x4F, 0xC3, 0x01, 0x24, 0x10, 0x2E, 0x30, 0xF0, -0x20, 0x6A, 0x69, 0xF2, 0x08, 0x4A, 0x74, 0x9A, -0x07, 0x23, 0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF6, -0x90, 0x9C, 0x60, 0xDC, 0x00, 0x6B, 0x74, 0xDA, -0x00, 0x6C, 0x00, 0x18, 0x63, 0xE7, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x69, 0x2C, 0xED, -0x2C, 0xEC, 0x09, 0xD5, 0x56, 0x24, 0x30, 0xF0, -0x20, 0x68, 0x69, 0xF2, 0x08, 0x48, 0x5B, 0xA0, -0x02, 0x6B, 0x4C, 0xEB, 0x2C, 0xEB, 0x08, 0xD3, -0x80, 0xF0, 0x02, 0x2B, 0x01, 0x6A, 0x9D, 0x67, -0x01, 0x6D, 0x06, 0x06, 0x58, 0xC4, 0x34, 0x6C, -0x80, 0x18, 0xFA, 0x6A, 0x53, 0xA0, 0x02, 0x6C, -0x01, 0x4A, 0x53, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0x20, 0xF5, 0x44, 0x9A, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF6, 0x58, 0x9A, 0x9B, 0xA0, -0x60, 0xA2, 0x04, 0x6A, 0x6C, 0xEA, 0x4A, 0x32, -0x4C, 0x33, 0x09, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, -0x6D, 0xEA, 0x00, 0x6C, 0x5B, 0xC0, 0x00, 0x18, -0x06, 0xDE, 0x47, 0xD8, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x64, 0xF5, 0x9C, 0xA2, -0x08, 0x6B, 0x00, 0x6D, 0x8D, 0xEB, 0x64, 0xF5, -0x7C, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, -0x6C, 0x9A, 0x02, 0x6C, 0x64, 0x6E, 0x40, 0xA3, -0x01, 0x6F, 0x2C, 0xEA, 0x8D, 0xEA, 0x2C, 0xEA, -0x40, 0xC3, 0x08, 0x92, 0x10, 0xF0, 0x23, 0x6C, -0x4D, 0xF0, 0x1D, 0x4C, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0x40, 0xEA, -0x5B, 0xA0, 0x02, 0x6B, 0x6D, 0xEA, 0x5B, 0xC0, -0x37, 0x10, 0x30, 0xF0, 0x20, 0x68, 0x69, 0xF2, -0x08, 0x48, 0x7B, 0xA0, 0x06, 0x6A, 0x6C, 0xEA, -0x02, 0x72, 0x2E, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x20, 0xF5, 0x44, 0x9A, 0x03, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF6, 0x58, 0x9A, -0x9B, 0xA0, 0x04, 0x6D, 0x60, 0xA2, 0x11, 0x6A, -0x4B, 0xEA, 0xAC, 0xEB, 0x6A, 0x33, 0x70, 0x33, -0x8C, 0xEA, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x5B, 0xC0, 0x2B, 0xF1, 0x18, 0x4B, 0x64, 0xF5, -0xDC, 0xA3, 0x09, 0x6C, 0x8B, 0xEC, 0xCC, 0xEC, -0x64, 0xF5, 0x9C, 0xC3, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF0, 0x8C, 0x9B, 0xFD, 0x6B, 0xAD, 0xEA, -0xC0, 0xA4, 0xCC, 0xEB, 0x60, 0xC4, 0x00, 0x6C, -0x5B, 0xC0, 0x00, 0x18, 0x06, 0xDE, 0x48, 0xD8, -0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF2, 0x08, 0x4A, -0x7A, 0xA2, 0x09, 0x94, 0x8D, 0xEB, 0x7A, 0xC2, -0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x69, 0xF2, 0x08, 0x48, 0x9B, 0xA0, 0x04, 0x6A, -0xFF, 0x69, 0x8C, 0xEA, 0x18, 0x2A, 0x02, 0x6B, -0x8C, 0xEB, 0x2C, 0xEB, 0x01, 0x6A, 0x14, 0x2B, -0x00, 0x18, 0x04, 0xD9, 0xBB, 0xA0, 0x02, 0x6C, -0x01, 0x6B, 0x8B, 0xEC, 0x6C, 0xEA, 0xAC, 0xEC, -0x4D, 0xEC, 0x8C, 0xEB, 0x2C, 0xEB, 0x9B, 0xC0, -0x06, 0x23, 0x01, 0x6C, 0x02, 0x6D, 0x00, 0x18, -0xAF, 0xD9, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x69, 0xF2, -0x08, 0x48, 0x00, 0x6C, 0x00, 0x18, 0x06, 0xDE, -0x79, 0xA0, 0x01, 0x4B, 0x79, 0xC0, 0x79, 0xA0, -0x07, 0x5B, 0x26, 0x60, 0x67, 0x98, 0x6B, 0xE2, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF6, 0x7C, 0x9B, -0x43, 0xEB, 0x1E, 0x61, 0x00, 0x18, 0x04, 0xD9, +0x4C, 0x9A, 0x40, 0xEA, 0x5B, 0xA0, 0x02, 0x6B, +0x6D, 0xEA, 0x5B, 0xC0, 0x37, 0x10, 0x30, 0xF0, +0x20, 0x68, 0x69, 0xF2, 0x08, 0x48, 0x7B, 0xA0, +0x06, 0x6A, 0x6C, 0xEA, 0x02, 0x72, 0x2E, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF5, 0x44, 0x9A, +0x03, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF7, 0x48, 0x9A, 0x9B, 0xA0, 0x04, 0x6D, +0x60, 0xA2, 0x11, 0x6A, 0x4B, 0xEA, 0xAC, 0xEB, +0x6A, 0x33, 0x70, 0x33, 0x8C, 0xEA, 0x6D, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x5B, 0xC0, 0x2B, 0xF1, +0x18, 0x4B, 0x64, 0xF5, 0xD8, 0xA3, 0x09, 0x6C, +0x8B, 0xEC, 0xCC, 0xEC, 0x64, 0xF5, 0x98, 0xC3, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0x90, 0x9B, +0xFD, 0x6B, 0xAD, 0xEA, 0xC0, 0xA4, 0xCC, 0xEB, +0x60, 0xC4, 0x00, 0x6C, 0x5B, 0xC0, 0x00, 0x18, +0x65, 0xDD, 0x48, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0x69, 0xF2, 0x08, 0x4A, 0x7A, 0xA2, 0x09, 0x94, +0x8D, 0xEB, 0x7A, 0xC2, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x69, 0xF2, 0x08, 0x48, +0x9B, 0xA0, 0x04, 0x6A, 0xFF, 0x69, 0x8C, 0xEA, +0x18, 0x2A, 0x02, 0x6B, 0x8C, 0xEB, 0x2C, 0xEB, +0x01, 0x6A, 0x14, 0x2B, 0x00, 0x18, 0x63, 0xD8, 0xBB, 0xA0, 0x02, 0x6C, 0x01, 0x6B, 0x8B, 0xEC, 0x6C, 0xEA, 0xAC, 0xEC, 0x4D, 0xEC, 0x8C, 0xEB, -0x9B, 0xC0, 0x0F, 0x23, 0x00, 0x6A, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, -0x10, 0xF0, 0x23, 0x6C, 0x4D, 0xF0, 0x1D, 0x4C, -0x00, 0x6D, 0x64, 0x6E, 0x01, 0x6F, 0x40, 0xEA, -0x07, 0x10, 0x00, 0x6C, 0x08, 0x6D, 0x02, 0x10, -0x00, 0x6C, 0x10, 0x6D, 0x00, 0x18, 0xAF, 0xD9, -0x07, 0x97, 0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0xFF, 0x6B, 0x46, 0x67, -0x6C, 0xEF, 0xC4, 0x67, 0x04, 0xD7, 0x6C, 0xEE, -0xE2, 0x67, 0x03, 0x6C, 0x6C, 0xED, 0x80, 0x18, -0xB9, 0x69, 0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6B, 0x69, 0xF2, 0x08, 0x4B, 0x20, 0xF0, -0x04, 0xA3, 0xFF, 0x6A, 0x8C, 0xEA, 0x4A, 0xE8, -0x1E, 0x61, 0x22, 0x10, 0x20, 0xF0, 0x45, 0xA3, -0x16, 0x22, 0x00, 0x6A, 0x07, 0x10, 0x24, 0x5A, -0x08, 0x61, 0x20, 0xF0, 0x45, 0xA3, 0x01, 0x72, -0x0E, 0x60, 0x01, 0x6A, 0x20, 0xF0, 0x45, 0xC3, -0x0B, 0x10, 0x4D, 0x9B, 0x01, 0x6C, 0x00, 0x6E, -0x8D, 0xEA, 0x02, 0x6D, 0x04, 0x6C, 0xE6, 0x67, -0x4D, 0xDB, 0x00, 0x18, 0x36, 0xDA, 0x08, 0x28, -0x00, 0x18, 0x50, 0xD9, 0x05, 0x10, 0x0F, 0x5A, -0x20, 0xF0, 0x44, 0xC3, 0xDF, 0x61, 0xE3, 0x17, -0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x30, 0xF0, 0x20, 0x69, 0x69, 0xF2, 0x08, 0x49, -0x4F, 0x99, 0x80, 0xF0, 0x05, 0x22, 0x7D, 0x67, -0x10, 0x6A, 0x50, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0xC9, 0xF1, 0x10, 0x4A, 0xE7, 0x41, 0x82, 0x67, -0x00, 0x6D, 0x10, 0x6E, 0x31, 0x4F, 0x06, 0xD2, -0x00, 0x18, 0xE6, 0xD8, 0x7D, 0x67, 0x10, 0xA3, -0xFF, 0x6A, 0x01, 0x6B, 0x02, 0x48, 0x4C, 0xE8, -0x4F, 0x99, 0x6C, 0xEA, 0x10, 0x22, 0x7D, 0x67, -0x08, 0x6A, 0x50, 0xC3, 0x06, 0x92, 0x01, 0x6D, -0x08, 0x6E, 0x11, 0xE2, 0xF1, 0x67, 0x00, 0x18, -0xE6, 0xD8, 0x7D, 0x67, 0x50, 0xA3, 0x02, 0x4A, -0x41, 0xE0, 0xFF, 0x6A, 0x4C, 0xE8, 0x30, 0xF0, -0x20, 0x6F, 0x69, 0xF2, 0x08, 0x4F, 0x4F, 0x9F, -0x02, 0x6B, 0x6C, 0xEA, 0x13, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x08, 0x6A, 0x7D, 0x67, 0xC9, 0xF1, -0x10, 0x4C, 0x50, 0xC3, 0x11, 0xE4, 0x02, 0x6D, -0x08, 0x6E, 0x08, 0x4F, 0x00, 0x18, 0xE6, 0xD8, -0x7D, 0x67, 0x50, 0xA3, 0x02, 0x4A, 0x41, 0xE0, -0xFF, 0x6A, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6F, -0x69, 0xF2, 0x08, 0x4F, 0x4F, 0x9F, 0x04, 0x6B, -0x6C, 0xEA, 0x13, 0x22, 0x30, 0xF0, 0x20, 0x6C, -0x14, 0x6A, 0x7D, 0x67, 0xC9, 0xF1, 0x10, 0x4C, -0x50, 0xC3, 0x11, 0xE4, 0x03, 0x6D, 0x14, 0x6E, -0x10, 0x4F, 0x00, 0x18, 0xE6, 0xD8, 0x7D, 0x67, -0x50, 0xA3, 0x02, 0x4A, 0x41, 0xE0, 0xFF, 0x6A, -0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF2, -0x44, 0x9A, 0x08, 0x6B, 0x6C, 0xEA, 0x16, 0x22, -0x04, 0x04, 0x00, 0x18, 0x38, 0xD4, 0x7D, 0x67, -0xD0, 0xA3, 0x10, 0x26, 0x0F, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0xC9, 0xF1, 0x10, 0x4C, 0x11, 0xE4, -0xE2, 0x67, 0x04, 0x6D, 0x00, 0x18, 0xE6, 0xD8, -0x7D, 0x67, 0x50, 0xA3, 0x02, 0x4A, 0x41, 0xE0, -0xFF, 0x6A, 0x4C, 0xE8, 0x09, 0x20, 0x30, 0xF0, -0x20, 0x6E, 0x05, 0x6C, 0x03, 0x6D, 0xC9, 0xF1, -0x10, 0x4E, 0xF0, 0x67, 0x00, 0x18, 0x36, 0xDA, -0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x69, 0xF2, 0x08, 0x48, 0x5D, 0xA8, 0x01, 0x4A, -0x5D, 0xC8, 0x4F, 0x98, 0x20, 0x22, 0x00, 0x6C, -0x00, 0x18, 0x06, 0xDE, 0x22, 0x67, 0x00, 0x6A, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, -0x4C, 0x9A, 0x10, 0xF0, 0x23, 0x6C, 0x8D, 0xF2, -0x0D, 0x4C, 0x00, 0x6D, 0x64, 0x6E, 0x01, 0x6F, -0x40, 0xEA, 0x71, 0x98, 0xE0, 0xF3, 0x08, 0x6A, -0x90, 0x98, 0x6F, 0xE1, 0x5B, 0xEB, 0x01, 0x2A, -0xE5, 0xE8, 0x12, 0xEA, 0x83, 0xEA, 0x03, 0x61, -0x00, 0x18, 0x58, 0xDA, 0x31, 0xD8, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFE, 0x65, 0xFF, 0xF7, 0x1F, 0x6E, 0xEC, 0xEE, -0xFF, 0x6B, 0x24, 0x46, 0x6C, 0xE9, 0x30, 0xF0, -0x20, 0x68, 0x97, 0x59, 0x08, 0xD4, 0x6C, 0xED, -0xA9, 0xF0, 0x00, 0x48, 0x0B, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0xA0, 0xC0, -0xC1, 0xC8, 0x84, 0x40, 0xBF, 0x67, 0x6C, 0xEE, -0x40, 0xEA, 0x05, 0x10, 0x05, 0x6A, 0x40, 0xC0, -0x00, 0x6A, 0x41, 0xC8, 0x04, 0x69, 0x08, 0x94, -0xB0, 0x67, 0xD1, 0x67, 0x80, 0x18, 0xFB, 0x69, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x40, 0xA6, 0x07, 0x27, 0x7D, 0x67, 0x03, 0x6D, -0x04, 0x06, 0x01, 0x6F, 0x50, 0xC3, 0x00, 0x18, -0xBC, 0xDA, 0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0xFF, 0x6A, -0x04, 0x67, 0xAC, 0xEA, 0x60, 0xA6, 0x38, 0x27, -0x9D, 0x67, 0x70, 0xC4, 0x70, 0xA4, 0x2E, 0x2B, -0x09, 0x77, 0x04, 0x60, 0x00, 0x6F, 0xC7, 0x67, -0x06, 0x6D, 0x26, 0x10, 0x01, 0x72, 0x04, 0x60, -0x00, 0x6F, 0xC7, 0x67, 0x04, 0x6D, 0x20, 0x10, -0x43, 0xA6, 0x64, 0xA6, 0xA7, 0xA6, 0x40, 0x32, -0x40, 0x32, 0x00, 0xF6, 0x60, 0x33, 0x4D, 0xEB, -0x41, 0xA6, 0xA0, 0x35, 0xA0, 0x35, 0x4D, 0xEB, -0x48, 0xA6, 0x82, 0xA6, 0x00, 0xF6, 0x40, 0x32, -0xAD, 0xEA, 0xA5, 0xA6, 0x80, 0x34, 0x6D, 0xEC, -0xAD, 0xEA, 0xA6, 0xA6, 0xA0, 0x35, 0x4D, 0xED, -0x00, 0x18, 0xEF, 0xD8, 0x30, 0xF0, 0x20, 0x6E, -0x10, 0x6F, 0xA9, 0xF2, 0x00, 0x4E, 0x00, 0x6D, -0x90, 0x67, 0x04, 0x10, 0x90, 0x67, 0x03, 0x6D, -0x04, 0x06, 0x01, 0x6F, 0x00, 0x18, 0xBC, 0xDA, -0x07, 0x97, 0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x0A, 0xD4, 0x40, 0xA6, 0x72, 0x27, 0x71, 0x22, -0x01, 0x6B, 0x4E, 0xEB, 0x26, 0x2B, 0x30, 0xF0, -0x20, 0x6A, 0x69, 0xF2, 0x08, 0x4A, 0x40, 0xF0, -0x88, 0xA2, 0x0D, 0x2C, 0x01, 0x6B, 0x40, 0xF0, -0x68, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, -0x60, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, -0x8C, 0xEA, 0xAD, 0xEA, 0x08, 0x10, 0x40, 0xF0, -0x68, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, -0x60, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, -0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6E, 0x0A, 0x94, -0x00, 0x6D, 0xA9, 0xF2, 0x10, 0x4E, 0x01, 0x6F, -0x46, 0x10, 0x02, 0x72, 0x46, 0x61, 0x23, 0x6A, -0x30, 0xF0, 0x20, 0x68, 0x69, 0xF2, 0x08, 0x48, -0x30, 0xF0, 0x20, 0x6C, 0x4B, 0xEA, 0x29, 0xF1, -0x58, 0xC4, 0x40, 0xF0, 0x48, 0xA0, 0x29, 0xF1, -0x18, 0x4C, 0xA7, 0x40, 0x41, 0xC4, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0x26, 0x48, -0x02, 0x4C, 0x43, 0x4D, 0x02, 0x6E, 0x40, 0xEA, -0x04, 0xD0, 0x04, 0x6F, 0x00, 0x68, 0x04, 0x93, -0x40, 0xAB, 0x17, 0x22, 0x30, 0xF0, 0x20, 0x6C, -0x29, 0xF1, 0x18, 0x4C, 0x12, 0x6B, 0xE9, 0xE4, -0x6B, 0xEB, 0x60, 0xC2, 0x01, 0xC2, 0x22, 0x47, -0xFF, 0x6A, 0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x4C, 0x9A, 0x04, 0x95, 0x31, 0xE4, -0x02, 0x6E, 0x40, 0xEA, 0xE2, 0x41, 0xFF, 0x6B, -0x6C, 0xEF, 0xFF, 0x6A, 0x01, 0x48, 0x4C, 0xE8, -0x04, 0x92, 0x05, 0x70, 0x02, 0x4A, 0x04, 0xD2, -0xDE, 0x61, 0x0A, 0x94, 0x30, 0xF0, 0x20, 0x6E, -0x00, 0x6D, 0x29, 0xF1, 0x18, 0x4E, 0x00, 0x18, -0xBC, 0xDA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD0, 0xFF, 0x6B, 0x05, 0x67, 0x6C, 0xE8, -0xA6, 0x67, 0x6C, 0xED, 0x01, 0x70, 0x7D, 0x67, -0x47, 0x67, 0xF8, 0xAB, 0x08, 0x60, 0x03, 0x20, -0xFE, 0x70, 0x09, 0x60, 0x0C, 0x10, 0xC2, 0x67, -0x00, 0x18, 0xDA, 0xDA, 0x0F, 0x10, 0xC2, 0x67, -0x00, 0x18, 0xD3, 0xDA, 0x0B, 0x10, 0xC2, 0x67, -0x00, 0x18, 0xFC, 0xDA, 0x07, 0x10, 0x5D, 0x67, -0x10, 0xC2, 0x02, 0x6D, 0x04, 0x06, 0x01, 0x6F, -0x00, 0x18, 0xBC, 0xDA, 0x07, 0x97, 0x06, 0x90, +0x2C, 0xEB, 0x9B, 0xC0, 0x06, 0x23, 0x01, 0x6C, +0x02, 0x6D, 0x00, 0x18, 0x0E, 0xD9, 0x01, 0x6A, +0x01, 0x10, 0x00, 0x6A, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0x69, 0xF2, 0x08, 0x48, 0x00, 0x6C, +0x00, 0x18, 0x65, 0xDD, 0x79, 0xA0, 0x01, 0x4B, +0x79, 0xC0, 0x79, 0xA0, 0x07, 0x5B, 0x26, 0x60, +0x67, 0x98, 0x6B, 0xE2, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF7, 0x6C, 0x9B, 0x43, 0xEB, 0x1E, 0x61, +0x00, 0x18, 0x63, 0xD8, 0xBB, 0xA0, 0x02, 0x6C, +0x01, 0x6B, 0x8B, 0xEC, 0x6C, 0xEA, 0xAC, 0xEC, +0x4D, 0xEC, 0x8C, 0xEB, 0x9B, 0xC0, 0x0F, 0x23, +0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, 0x23, 0x6C, +0xCC, 0xF5, 0x19, 0x4C, 0x00, 0x6D, 0x64, 0x6E, +0x01, 0x6F, 0x40, 0xEA, 0x07, 0x10, 0x00, 0x6C, +0x08, 0x6D, 0x02, 0x10, 0x00, 0x6C, 0x10, 0x6D, +0x00, 0x18, 0x0E, 0xD9, 0x07, 0x97, 0x06, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0xFF, 0x6B, 0x46, 0x67, 0x6C, 0xEF, 0xC4, 0x67, +0x04, 0xD7, 0x6C, 0xEE, 0xE2, 0x67, 0x03, 0x6C, +0x6C, 0xED, 0x80, 0x18, 0xDD, 0x67, 0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6C, 0x64, 0x67, 0x01, 0x6A, -0x69, 0xF2, 0x08, 0x4B, 0x10, 0xF0, 0x23, 0x6D, -0x69, 0xF2, 0x48, 0xC4, 0x20, 0xF0, 0x58, 0xC3, -0x48, 0xC3, 0x50, 0xC3, 0x03, 0x6C, 0xED, 0xF4, -0x0D, 0x4D, 0x00, 0x18, 0x27, 0xC3, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x00, 0x68, 0x20, 0x10, 0xE0, 0xF3, -0x08, 0x70, 0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF2, 0x68, 0x9A, 0x80, 0x6C, 0x40, 0x9B, -0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x60, 0x9A, -0x8D, 0xEB, 0xA3, 0xF3, 0x60, 0xDA, 0x00, 0x6A, -0x13, 0x10, 0xFF, 0xF7, 0x1F, 0x6A, 0x01, 0x48, -0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF1, 0x54, 0x9A, 0x60, 0xA2, -0x01, 0x6A, 0x6C, 0xEA, 0xD8, 0x2A, 0x01, 0x6A, -0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF3, -0x68, 0x9B, 0x03, 0xF7, 0x88, 0x9C, 0x6D, 0xE5, -0x91, 0xE5, 0x00, 0x6E, 0xC0, 0xDB, 0x04, 0x4B, -0x8A, 0xEB, 0xFB, 0x61, 0xE7, 0xF7, 0x1F, 0x6B, -0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, -0x54, 0x9A, 0x10, 0x6C, 0x4D, 0xEB, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF3, 0x48, 0x9A, 0x49, 0xE5, -0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, -0x4C, 0x9A, 0xFF, 0x6B, 0x55, 0xE5, 0x40, 0xA5, -0x6C, 0xEA, 0x8D, 0xEA, 0x6C, 0xEA, 0x40, 0xC5, -0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0xA9, 0xF2, 0x7D, 0xA2, 0x08, 0xD4, 0x30, 0xF0, -0x20, 0x69, 0x61, 0xC5, 0x01, 0x4B, 0xA9, 0xF2, -0x7D, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF3, -0x88, 0x9B, 0x08, 0x93, 0x80, 0xF2, 0x4C, 0x99, -0x02, 0x6E, 0x91, 0xE3, 0x05, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF7, 0x90, 0x9B, -0x08, 0x93, 0xCE, 0xA0, 0x80, 0xF2, 0x4C, 0x99, -0xA2, 0x40, 0x91, 0xE3, 0x40, 0xEA, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x24, 0x67, 0x00, 0x18, 0x5B, 0xDB, 0x00, 0x6B, -0x46, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, -0x40, 0x9A, 0xFF, 0xF7, 0x1F, 0x6E, 0xFF, 0x6F, -0x00, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, -0x4C, 0x9A, 0x10, 0x6C, 0x8B, 0xEC, 0x4C, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0xA1, 0x40, 0x03, 0xF7, -0x54, 0x9A, 0x65, 0x67, 0xCC, 0xEB, 0x60, 0xCA, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, 0x58, 0x9A, -0x60, 0xA2, 0xFA, 0x65, 0xA2, 0x32, 0xEC, 0xEB, -0x8C, 0xEB, 0x42, 0x32, 0x6D, 0xEA, 0xEC, 0xEA, -0x7F, 0x67, 0x40, 0xC3, 0x87, 0xA9, 0x02, 0x4C, -0xCC, 0xEC, 0x00, 0x18, 0x74, 0xDB, 0x87, 0x40, -0x12, 0x4C, 0xB1, 0x67, 0x00, 0x18, 0x8B, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x54, 0x9A, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF2, +0x08, 0x4B, 0x20, 0xF0, 0x04, 0xA3, 0xFF, 0x6A, +0x8C, 0xEA, 0x4A, 0xE8, 0x1E, 0x61, 0x22, 0x10, +0x20, 0xF0, 0x45, 0xA3, 0x16, 0x22, 0x00, 0x6A, +0x07, 0x10, 0x24, 0x5A, 0x08, 0x61, 0x20, 0xF0, +0x45, 0xA3, 0x01, 0x72, 0x0E, 0x60, 0x01, 0x6A, +0x20, 0xF0, 0x45, 0xC3, 0x0B, 0x10, 0x4D, 0x9B, +0x01, 0x6C, 0x00, 0x6E, 0x8D, 0xEA, 0x02, 0x6D, +0x04, 0x6C, 0xE6, 0x67, 0x4D, 0xDB, 0x00, 0x18, +0x95, 0xD9, 0x08, 0x28, 0x00, 0x18, 0xAF, 0xD8, +0x05, 0x10, 0x0F, 0x5A, 0x20, 0xF0, 0x44, 0xC3, +0xDF, 0x61, 0xE3, 0x17, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0x69, 0xF2, 0x08, 0x49, 0x4F, 0x99, 0x80, 0xF0, +0x05, 0x22, 0x7D, 0x67, 0x10, 0x6A, 0x50, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF1, 0x10, 0x4A, +0xE7, 0x41, 0x82, 0x67, 0x00, 0x6D, 0x10, 0x6E, +0x31, 0x4F, 0x06, 0xD2, 0x00, 0x18, 0x45, 0xD8, +0x7D, 0x67, 0x10, 0xA3, 0xFF, 0x6A, 0x01, 0x6B, +0x02, 0x48, 0x4C, 0xE8, 0x4F, 0x99, 0x6C, 0xEA, +0x10, 0x22, 0x7D, 0x67, 0x08, 0x6A, 0x50, 0xC3, +0x06, 0x92, 0x01, 0x6D, 0x08, 0x6E, 0x11, 0xE2, +0xF1, 0x67, 0x00, 0x18, 0x45, 0xD8, 0x7D, 0x67, +0x50, 0xA3, 0x02, 0x4A, 0x41, 0xE0, 0xFF, 0x6A, +0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6F, 0x69, 0xF2, +0x08, 0x4F, 0x4F, 0x9F, 0x02, 0x6B, 0x6C, 0xEA, +0x13, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x08, 0x6A, +0x7D, 0x67, 0xC9, 0xF1, 0x10, 0x4C, 0x50, 0xC3, +0x11, 0xE4, 0x02, 0x6D, 0x08, 0x6E, 0x08, 0x4F, +0x00, 0x18, 0x45, 0xD8, 0x7D, 0x67, 0x50, 0xA3, +0x02, 0x4A, 0x41, 0xE0, 0xFF, 0x6A, 0x4C, 0xE8, +0x30, 0xF0, 0x20, 0x6F, 0x69, 0xF2, 0x08, 0x4F, +0x4F, 0x9F, 0x04, 0x6B, 0x6C, 0xEA, 0x13, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x14, 0x6A, 0x7D, 0x67, +0xC9, 0xF1, 0x10, 0x4C, 0x50, 0xC3, 0x11, 0xE4, +0x03, 0x6D, 0x14, 0x6E, 0x10, 0x4F, 0x00, 0x18, +0x45, 0xD8, 0x7D, 0x67, 0x50, 0xA3, 0x02, 0x4A, +0x41, 0xE0, 0xFF, 0x6A, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0xA9, 0xF2, 0x44, 0x9A, 0x08, 0x6B, +0x6C, 0xEA, 0x16, 0x22, 0x04, 0x04, 0x00, 0x18, +0x8D, 0xD3, 0x7D, 0x67, 0xD0, 0xA3, 0x10, 0x26, +0x0F, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xC9, 0xF1, +0x10, 0x4C, 0x11, 0xE4, 0xE2, 0x67, 0x04, 0x6D, +0x00, 0x18, 0x45, 0xD8, 0x7D, 0x67, 0x50, 0xA3, +0x02, 0x4A, 0x41, 0xE0, 0xFF, 0x6A, 0x4C, 0xE8, +0x09, 0x20, 0x30, 0xF0, 0x20, 0x6E, 0x05, 0x6C, +0x03, 0x6D, 0xC9, 0xF1, 0x10, 0x4E, 0xF0, 0x67, +0x00, 0x18, 0x95, 0xD9, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x69, 0xF2, 0x08, 0x48, +0x5D, 0xA8, 0x01, 0x4A, 0x5D, 0xC8, 0x4F, 0x98, +0x20, 0x22, 0x00, 0x6C, 0x00, 0x18, 0x65, 0xDD, +0x22, 0x67, 0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, +0x23, 0x6C, 0x0D, 0xF0, 0x09, 0x4C, 0x00, 0x6D, +0x64, 0x6E, 0x01, 0x6F, 0x40, 0xEA, 0x71, 0x98, +0xE0, 0xF3, 0x08, 0x6A, 0x90, 0x98, 0x6F, 0xE1, +0x5B, 0xEB, 0x01, 0x2A, 0xE5, 0xE8, 0x12, 0xEA, +0x83, 0xEA, 0x03, 0x61, 0x00, 0x18, 0xB7, 0xD9, +0x31, 0xD8, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFE, 0x65, 0xFF, 0xF7, +0x1F, 0x6E, 0xEC, 0xEE, 0xFF, 0x6B, 0x24, 0x46, +0x6C, 0xE9, 0x30, 0xF0, 0x20, 0x68, 0x97, 0x59, +0x08, 0xD4, 0x6C, 0xED, 0xA9, 0xF0, 0x00, 0x48, +0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0xA0, 0xC0, 0xC1, 0xC8, 0x84, 0x40, +0xBF, 0x67, 0x6C, 0xEE, 0x40, 0xEA, 0x05, 0x10, +0x05, 0x6A, 0x40, 0xC0, 0x00, 0x6A, 0x41, 0xC8, +0x04, 0x69, 0x08, 0x94, 0xB0, 0x67, 0xD1, 0x67, +0x80, 0x18, 0x1F, 0x68, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x40, 0xA6, 0x07, 0x27, +0x7D, 0x67, 0x03, 0x6D, 0x04, 0x06, 0x01, 0x6F, +0x50, 0xC3, 0x00, 0x18, 0x1B, 0xDA, 0x07, 0x97, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD0, 0xFF, 0x6A, 0x04, 0x67, 0xAC, 0xEA, +0x60, 0xA6, 0x38, 0x27, 0x9D, 0x67, 0x70, 0xC4, +0x70, 0xA4, 0x2E, 0x2B, 0x09, 0x77, 0x04, 0x60, +0x00, 0x6F, 0xC7, 0x67, 0x06, 0x6D, 0x26, 0x10, +0x01, 0x72, 0x04, 0x60, 0x00, 0x6F, 0xC7, 0x67, +0x04, 0x6D, 0x20, 0x10, 0x43, 0xA6, 0x64, 0xA6, +0xA7, 0xA6, 0x40, 0x32, 0x40, 0x32, 0x00, 0xF6, +0x60, 0x33, 0x4D, 0xEB, 0x41, 0xA6, 0xA0, 0x35, +0xA0, 0x35, 0x4D, 0xEB, 0x48, 0xA6, 0x82, 0xA6, +0x00, 0xF6, 0x40, 0x32, 0xAD, 0xEA, 0xA5, 0xA6, +0x80, 0x34, 0x6D, 0xEC, 0xAD, 0xEA, 0xA6, 0xA6, +0xA0, 0x35, 0x4D, 0xED, 0x00, 0x18, 0x4E, 0xD8, +0x30, 0xF0, 0x20, 0x6E, 0x10, 0x6F, 0xA9, 0xF2, +0x00, 0x4E, 0x00, 0x6D, 0x90, 0x67, 0x04, 0x10, +0x90, 0x67, 0x03, 0x6D, 0x04, 0x06, 0x01, 0x6F, +0x00, 0x18, 0x1B, 0xDA, 0x07, 0x97, 0x06, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x0A, 0xD4, 0x40, 0xA6, +0x72, 0x27, 0x71, 0x22, 0x01, 0x6B, 0x4E, 0xEB, +0x26, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF2, +0x08, 0x4A, 0x40, 0xF0, 0x88, 0xA2, 0x0D, 0x2C, +0x01, 0x6B, 0x40, 0xF0, 0x68, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF7, 0x70, 0x9A, 0xFF, 0x6C, +0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, +0x08, 0x10, 0x40, 0xF0, 0x68, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF7, 0x70, 0x9A, 0xBF, 0x6A, +0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6E, 0x0A, 0x94, 0x00, 0x6D, 0xA9, 0xF2, +0x10, 0x4E, 0x01, 0x6F, 0x46, 0x10, 0x02, 0x72, +0x46, 0x61, 0x23, 0x6A, 0x30, 0xF0, 0x20, 0x68, +0x69, 0xF2, 0x08, 0x48, 0x30, 0xF0, 0x20, 0x6C, +0x4B, 0xEA, 0x29, 0xF1, 0x58, 0xC4, 0x40, 0xF0, +0x48, 0xA0, 0x29, 0xF1, 0x18, 0x4C, 0xA7, 0x40, +0x41, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0x26, 0x48, 0x02, 0x4C, 0x43, 0x4D, +0x02, 0x6E, 0x40, 0xEA, 0x04, 0xD0, 0x04, 0x6F, +0x00, 0x68, 0x04, 0x93, 0x40, 0xAB, 0x17, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x29, 0xF1, 0x18, 0x4C, +0x12, 0x6B, 0xE9, 0xE4, 0x6B, 0xEB, 0x60, 0xC2, +0x01, 0xC2, 0x22, 0x47, 0xFF, 0x6A, 0x4C, 0xE9, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0x04, 0x95, 0x31, 0xE4, 0x02, 0x6E, 0x40, 0xEA, +0xE2, 0x41, 0xFF, 0x6B, 0x6C, 0xEF, 0xFF, 0x6A, +0x01, 0x48, 0x4C, 0xE8, 0x04, 0x92, 0x05, 0x70, +0x02, 0x4A, 0x04, 0xD2, 0xDE, 0x61, 0x0A, 0x94, +0x30, 0xF0, 0x20, 0x6E, 0x00, 0x6D, 0x29, 0xF1, +0x18, 0x4E, 0x00, 0x18, 0x1B, 0xDA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0xFF, 0x6B, +0x05, 0x67, 0x6C, 0xE8, 0xA6, 0x67, 0x6C, 0xED, +0x01, 0x70, 0x7D, 0x67, 0x47, 0x67, 0xF8, 0xAB, +0x08, 0x60, 0x03, 0x20, 0xFE, 0x70, 0x09, 0x60, +0x0C, 0x10, 0xC2, 0x67, 0x00, 0x18, 0x39, 0xDA, +0x0F, 0x10, 0xC2, 0x67, 0x00, 0x18, 0x32, 0xDA, +0x0B, 0x10, 0xC2, 0x67, 0x00, 0x18, 0x5B, 0xDA, +0x07, 0x10, 0x5D, 0x67, 0x10, 0xC2, 0x02, 0x6D, +0x04, 0x06, 0x01, 0x6F, 0x00, 0x18, 0x1B, 0xDA, +0x07, 0x97, 0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6C, +0x64, 0x67, 0x01, 0x6A, 0x69, 0xF2, 0x08, 0x4B, +0x10, 0xF0, 0x23, 0x6D, 0x69, 0xF2, 0x48, 0xC4, +0x20, 0xF0, 0x58, 0xC3, 0x48, 0xC3, 0x50, 0xC3, +0x03, 0x6C, 0x6D, 0xF2, 0x09, 0x4D, 0x00, 0x18, +0x1A, 0xC2, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x00, 0x68, +0x20, 0x10, 0xE0, 0xF3, 0x08, 0x70, 0x13, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x6C, 0x9A, +0x80, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x60, 0xDA, 0x00, 0x6A, 0x13, 0x10, 0xFF, 0xF7, +0x1F, 0x6A, 0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, +0x58, 0x9A, 0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0xD8, 0x2A, 0x01, 0x6A, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFF, 0xF7, 0x1F, 0x6A, +0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6C, 0x43, 0xF3, 0x68, 0x9B, 0x03, 0xF7, +0x98, 0x9C, 0x6D, 0xE5, 0x91, 0xE5, 0x00, 0x6E, +0xC0, 0xDB, 0x04, 0x4B, 0x8A, 0xEB, 0xFB, 0x61, +0xE7, 0xF7, 0x1F, 0x6B, 0x4C, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF1, 0x58, 0x9A, 0x10, 0x6C, +0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, +0x48, 0x9A, 0x49, 0xE5, 0x60, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF7, 0x5C, 0x9A, 0xFF, 0x6B, +0x55, 0xE5, 0x40, 0xA5, 0x6C, 0xEA, 0x8D, 0xEA, +0x6C, 0xEA, 0x40, 0xC5, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF2, 0x7D, 0xA2, +0x08, 0xD4, 0x30, 0xF0, 0x20, 0x69, 0x61, 0xC5, +0x01, 0x4B, 0xA9, 0xF2, 0x7D, 0xC2, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF3, 0x88, 0x9B, 0x08, 0x93, +0x80, 0xF2, 0x4C, 0x99, 0x02, 0x6E, 0x91, 0xE3, +0x05, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF7, 0x80, 0x9B, 0x08, 0x93, 0xCE, 0xA0, +0x80, 0xF2, 0x4C, 0x99, 0xA2, 0x40, 0x91, 0xE3, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x24, 0x67, 0x00, 0x18, +0xBA, 0xDA, 0x00, 0x6B, 0x46, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF3, 0x40, 0x9A, 0xFF, 0xF7, +0x1F, 0x6E, 0xFF, 0x6F, 0x00, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF3, 0x4C, 0x9A, 0x10, 0x6C, +0x8B, 0xEC, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xA1, 0x40, 0x23, 0xF7, 0x44, 0x9A, 0x65, 0x67, +0xCC, 0xEB, 0x60, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF7, 0x48, 0x9A, 0x60, 0xA2, 0xFA, 0x65, +0xA2, 0x32, 0xEC, 0xEB, 0x8C, 0xEB, 0x42, 0x32, +0x6D, 0xEA, 0xEC, 0xEA, 0x7F, 0x67, 0x40, 0xC3, +0x87, 0xA9, 0x02, 0x4C, 0xCC, 0xEC, 0x00, 0x18, +0xD3, 0xDA, 0x87, 0x40, 0x12, 0x4C, 0xB1, 0x67, +0x00, 0x18, 0xEA, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF1, 0x58, 0x9A, 0x01, 0x6B, 0x80, 0xF2, +0x16, 0x6C, 0x60, 0xC2, 0x06, 0x02, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, +0x01, 0x6D, 0x00, 0x6E, 0x04, 0xF7, 0x10, 0x6F, +0x40, 0xEA, 0x4B, 0xEB, 0x4D, 0xEB, 0xC0, 0xF7, +0x62, 0x33, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x43, 0x67, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0xA0, 0xF6, +0x82, 0xA0, 0xA0, 0xF6, 0x43, 0xA0, 0x8E, 0xEA, +0x44, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF7, +0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, +0x78, 0x9B, 0x40, 0x9A, 0x6C, 0xEA, 0x39, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x90, 0x34, 0xCB, 0xF2, +0x1A, 0x4A, 0x91, 0xE2, 0x00, 0x18, 0xFF, 0xDA, +0x1D, 0x22, 0xA0, 0xF6, 0x42, 0xA0, 0x01, 0x4A, +0xA0, 0xF6, 0x42, 0xC0, 0xA0, 0xF6, 0x62, 0xA0, +0xA0, 0xF6, 0x43, 0xA0, 0x6E, 0xEA, 0x06, 0x22, +0xA0, 0xF0, 0x44, 0x98, 0x04, 0x6B, 0x6D, 0xEA, +0xA0, 0xF0, 0x44, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xF6, 0x62, 0xA2, +0x50, 0x6C, 0x8E, 0xEB, 0x09, 0x2B, 0xA0, 0xF6, +0x62, 0xC2, 0x06, 0x10, 0xA0, 0xF0, 0x44, 0x98, +0x04, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0x40, 0xF1, 0x96, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, +0x04, 0x23, 0x40, 0xF1, 0x77, 0xA2, 0x43, 0xF6, +0x68, 0xC2, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, +0x18, 0x48, 0xA0, 0xF0, 0x44, 0x98, 0x04, 0x6B, +0xA4, 0x67, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, +0xA0, 0xF6, 0x42, 0xA8, 0x09, 0xF7, 0x00, 0x72, +0x07, 0x60, 0xA0, 0xF6, 0x42, 0xA0, 0xA0, 0xF6, +0x83, 0xA0, 0xFF, 0x4A, 0x8E, 0xEA, 0x13, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x6C, 0x9A, +0x00, 0xF2, 0x00, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, +0xA3, 0xF3, 0x60, 0xDA, 0x18, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, +0x4C, 0x9A, 0xCB, 0xF2, 0x1A, 0x4B, 0x90, 0x34, +0x91, 0xE3, 0x10, 0x6E, 0x40, 0xEA, 0xA0, 0xF6, +0x43, 0xA0, 0x50, 0x6B, 0x01, 0x4A, 0xA0, 0xF6, +0x43, 0xC0, 0xA0, 0xF6, 0x43, 0xA0, 0x6E, 0xEA, +0x02, 0x2A, 0xA0, 0xF6, 0x43, 0xC0, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0xA9, 0xF2, 0x5C, 0xA3, 0xFF, 0x6F, +0xE0, 0xF0, 0xC7, 0xA5, 0x41, 0xC5, 0x43, 0xA5, +0xA9, 0xF2, 0x7C, 0xA3, 0x03, 0x4A, 0xEC, 0xEA, +0x09, 0x10, 0xED, 0x42, 0xFF, 0x68, 0x0C, 0xEF, +0xFD, 0xE5, 0x64, 0xC7, 0xE6, 0xA7, 0x03, 0x4F, +0xE9, 0xE2, 0x0C, 0xEA, 0xEF, 0x46, 0xE2, 0xEA, +0xF4, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF2, +0x7C, 0xA2, 0x01, 0x4B, 0xA9, 0xF2, 0x7C, 0xC2, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF3, 0x68, 0x9B, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0x71, 0xE4, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x24, 0x67, 0x00, 0x18, +0xBA, 0xDA, 0x00, 0x6B, 0x3C, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF3, 0x40, 0x9A, 0x0F, 0x6C, +0xFF, 0xF7, 0x1F, 0x6B, 0x00, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF3, 0x4C, 0x9A, 0x4C, 0xE8, +0xA1, 0x40, 0xA2, 0x32, 0x42, 0x32, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF7, 0x84, 0x9C, +0xAC, 0xEB, 0x60, 0xCC, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF7, 0x68, 0x9B, 0x40, 0xC3, 0xE0, 0xF0, +0x87, 0xA1, 0x00, 0x18, 0xD3, 0xDA, 0x87, 0x40, +0x12, 0x4C, 0xB1, 0x67, 0x00, 0x18, 0x7A, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x58, 0x9A, 0x01, 0x6B, 0x80, 0xF2, 0x16, 0x6C, 0x60, 0xC2, 0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, 0x01, 0x6D, 0x00, 0x6E, @@ -22426,379 +22110,308 @@ u8 array_mp_8822c_fw_nic[] = { 0x0A, 0x91, 0x09, 0x90, 0x43, 0x67, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, -0x18, 0x48, 0xA0, 0xF6, 0x82, 0xA0, 0xA0, 0xF6, -0x43, 0xA0, 0x8E, 0xEA, 0x44, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF7, 0x5C, 0x9A, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF2, 0x74, 0x9B, 0x40, 0x9A, -0x6C, 0xEA, 0x39, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x90, 0x34, 0xCB, 0xF2, 0x1A, 0x4A, 0x91, 0xE2, -0x00, 0x18, 0xA0, 0xDB, 0x1D, 0x22, 0xA0, 0xF6, -0x42, 0xA0, 0x01, 0x4A, 0xA0, 0xF6, 0x42, 0xC0, -0xA0, 0xF6, 0x62, 0xA0, 0xA0, 0xF6, 0x43, 0xA0, -0x6E, 0xEA, 0x06, 0x22, 0xA0, 0xF0, 0x44, 0x98, -0x04, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, +0x18, 0x48, 0x22, 0xF5, 0x67, 0xA0, 0x22, 0xF5, +0x48, 0xA0, 0x6E, 0xEA, 0x4B, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF7, 0x4C, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x63, 0xF2, 0x98, 0x9C, 0x40, 0x9A, +0x8C, 0xEA, 0x40, 0x2A, 0xE8, 0x6A, 0x58, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0xCB, 0xF7, 0x1C, 0x4A, +0x12, 0xEB, 0x71, 0xE2, 0x00, 0x18, 0x93, 0xDB, +0x07, 0x2A, 0xA0, 0xF0, 0x44, 0x98, 0x04, 0x6B, +0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, 0x2E, 0x10, +0x22, 0xF5, 0x47, 0xA0, 0x10, 0x6B, 0x01, 0x4A, +0x22, 0xF5, 0x47, 0xC0, 0x22, 0xF5, 0x47, 0xA0, +0x6E, 0xEA, 0x02, 0x2A, 0x22, 0xF5, 0x47, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0xA0, 0xF6, 0x62, 0xA2, 0x50, 0x6C, 0x8E, 0xEB, -0x09, 0x2B, 0xA0, 0xF6, 0x62, 0xC2, 0x06, 0x10, -0xA0, 0xF0, 0x44, 0x98, 0x04, 0x6B, 0x6D, 0xEA, -0xA0, 0xF0, 0x44, 0xD8, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x40, 0xF1, 0x96, 0xA2, -0x01, 0x6B, 0x8C, 0xEB, 0x04, 0x23, 0x40, 0xF1, -0x77, 0xA2, 0x43, 0xF6, 0x6C, 0xC2, 0x05, 0x97, -0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0xA0, 0xF0, -0x44, 0x98, 0x04, 0x6B, 0xA4, 0x67, 0x6D, 0xEA, -0xA0, 0xF0, 0x44, 0xD8, 0xA0, 0xF6, 0x42, 0xA8, -0x09, 0xF7, 0x00, 0x72, 0x07, 0x60, 0xA0, 0xF6, -0x42, 0xA0, 0xA0, 0xF6, 0x83, 0xA0, 0xFF, 0x4A, -0x8E, 0xEA, 0x13, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF2, 0x68, 0x9A, 0x00, 0xF2, 0x00, 0x6C, -0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, -0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, 0x60, 0xDA, -0x18, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x80, 0xF2, 0x4C, 0x9A, 0xCB, 0xF2, -0x1A, 0x4B, 0x90, 0x34, 0x91, 0xE3, 0x10, 0x6E, -0x40, 0xEA, 0xA0, 0xF6, 0x43, 0xA0, 0x50, 0x6B, -0x01, 0x4A, 0xA0, 0xF6, 0x43, 0xC0, 0xA0, 0xF6, -0x43, 0xA0, 0x6E, 0xEA, 0x02, 0x2A, 0xA0, 0xF6, -0x43, 0xC0, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xA9, 0xF2, -0x5C, 0xA3, 0xFF, 0x6F, 0xE0, 0xF0, 0xC7, 0xA5, -0x41, 0xC5, 0x43, 0xA5, 0xA9, 0xF2, 0x7C, 0xA3, -0x03, 0x4A, 0xEC, 0xEA, 0x09, 0x10, 0xED, 0x42, -0xFF, 0x68, 0x0C, 0xEF, 0xFD, 0xE5, 0x64, 0xC7, -0xE6, 0xA7, 0x03, 0x4F, 0xE9, 0xE2, 0x0C, 0xEA, -0xEF, 0x46, 0xE2, 0xEA, 0xF4, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xA9, 0xF2, 0x7C, 0xA2, 0x01, 0x4B, -0xA9, 0xF2, 0x7C, 0xC2, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF3, 0x68, 0x9B, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x4C, 0x9A, 0x71, 0xE4, 0x40, 0xEA, -0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x24, 0x67, 0x00, 0x18, 0x5B, 0xDB, 0x00, 0x6B, -0x3C, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, -0x40, 0x9A, 0x0F, 0x6C, 0xFF, 0xF7, 0x1F, 0x6B, -0x00, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, -0x4C, 0x9A, 0x4C, 0xE8, 0xA1, 0x40, 0xA2, 0x32, -0x42, 0x32, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, -0x03, 0xF7, 0x94, 0x9C, 0xAC, 0xEB, 0x60, 0xCC, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF7, 0x78, 0x9B, -0x40, 0xC3, 0xE0, 0xF0, 0x87, 0xA1, 0x00, 0x18, -0x74, 0xDB, 0x87, 0x40, 0x12, 0x4C, 0xB1, 0x67, -0x00, 0x18, 0x1B, 0xDC, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF1, 0x54, 0x9A, 0x01, 0x6B, 0x80, 0xF2, -0x16, 0x6C, 0x60, 0xC2, 0x06, 0x02, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, -0x01, 0x6D, 0x00, 0x6E, 0x04, 0xF7, 0x10, 0x6F, -0x40, 0xEA, 0x4B, 0xEB, 0x4D, 0xEB, 0xC0, 0xF7, -0x62, 0x33, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x43, 0x67, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0x22, 0xF5, -0x67, 0xA0, 0x22, 0xF5, 0x48, 0xA0, 0x6E, 0xEA, -0x4B, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, -0x5C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF2, -0x94, 0x9C, 0x40, 0x9A, 0x8C, 0xEA, 0x40, 0x2A, -0xE8, 0x6A, 0x58, 0xEB, 0x30, 0xF0, 0x20, 0x6A, -0xCB, 0xF7, 0x1C, 0x4A, 0x12, 0xEB, 0x71, 0xE2, -0x00, 0x18, 0x34, 0xDC, 0x07, 0x2A, 0xA0, 0xF0, -0x44, 0x98, 0x04, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, -0x44, 0xD8, 0x2E, 0x10, 0x22, 0xF5, 0x47, 0xA0, -0x10, 0x6B, 0x01, 0x4A, 0x22, 0xF5, 0x47, 0xC0, -0x22, 0xF5, 0x47, 0xA0, 0x6E, 0xEA, 0x02, 0x2A, -0x22, 0xF5, 0x47, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x22, 0xF5, 0x87, 0xA2, -0x22, 0xF5, 0x68, 0xA2, 0x8E, 0xEB, 0x07, 0x23, -0xA0, 0xF0, 0x64, 0x9A, 0x04, 0x6C, 0x8D, 0xEB, -0xA0, 0xF0, 0x64, 0xDA, 0x04, 0x10, 0x22, 0xF5, -0x86, 0xC2, 0x22, 0xF5, 0x64, 0xCA, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x40, 0xF1, -0x96, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, 0x04, 0x23, -0x40, 0xF1, 0x77, 0xA2, 0x43, 0xF6, 0x6C, 0xC2, -0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x22, 0xF5, 0x67, 0xA2, 0xA4, 0x67, 0x04, 0x2B, -0x22, 0xF5, 0x48, 0xA2, 0x0F, 0x72, 0x0B, 0x60, -0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, -0x22, 0xF5, 0x47, 0xA0, 0x22, 0xF5, 0x68, 0xA0, -0xFF, 0x4A, 0x6E, 0xEA, 0x15, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF2, 0x68, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0x63, 0xF2, 0x98, 0x9C, 0x40, 0x9B, -0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x60, 0x9A, -0x8D, 0xEB, 0xA3, 0xF3, 0x60, 0xDA, 0xAC, 0x10, -0x23, 0xA5, 0xFF, 0xF7, 0x1F, 0x6A, 0x04, 0x49, -0x4C, 0xE9, 0x22, 0xF5, 0x44, 0xA8, 0x22, 0x2A, -0xE8, 0x6A, 0x58, 0xEB, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6C, 0x80, 0xF2, 0x4C, 0x9A, -0xCB, 0xF7, 0x1C, 0x4C, 0xFF, 0x6E, 0x2C, 0xEE, -0x12, 0xEB, 0x71, 0xE4, 0x40, 0xEA, 0x22, 0xF5, -0x48, 0xA0, 0x22, 0xF5, 0x67, 0xA0, 0x22, 0xF5, -0x24, 0xC8, 0x4E, 0xEB, 0x79, 0x2B, 0x01, 0x4A, -0x22, 0xF5, 0x48, 0xC0, 0x22, 0xF5, 0x48, 0xA0, -0x10, 0x6B, 0x6E, 0xEA, 0x71, 0x2A, 0x22, 0xF5, -0x48, 0xC0, 0x6E, 0x10, 0x62, 0xA5, 0x39, 0x2B, -0x4D, 0xE1, 0xE3, 0x53, 0x36, 0x60, 0x22, 0xF5, -0x66, 0xA0, 0xE8, 0x6C, 0x98, 0xEB, 0x12, 0xEB, -0x0D, 0xE3, 0xA0, 0xF6, 0x86, 0xA3, 0x2D, 0x2C, -0xA0, 0xF6, 0x87, 0xA3, 0xFF, 0x6E, 0xFC, 0x4A, -0xFF, 0x4C, 0xA0, 0xF6, 0x87, 0xC3, 0x22, 0xF5, -0x64, 0xA8, 0x22, 0xF5, 0x86, 0xA0, 0xCC, 0xEA, -0xFF, 0x4B, 0x22, 0xF5, 0x64, 0xC8, 0xE8, 0x6B, -0x78, 0xEC, 0x2C, 0xEE, 0x12, 0xEC, 0x91, 0xE0, -0x51, 0xE4, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, -0x4C, 0x9A, 0xA0, 0xF6, 0x07, 0x4C, 0x40, 0xEA, -0x22, 0xF5, 0x46, 0xA0, 0xE8, 0x6B, 0x78, 0xEA, -0x12, 0xEA, 0x09, 0xE2, 0xA0, 0xF6, 0x67, 0xA2, -0x6D, 0xE1, 0xA0, 0xF6, 0x67, 0xC2, 0x22, 0xF5, -0x44, 0xA8, 0x45, 0xE1, 0x22, 0xF5, 0x24, 0xC8, -0x33, 0x10, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, -0x18, 0x48, 0x22, 0xF5, 0x88, 0xA0, 0xE8, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0x58, 0xEC, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0xCB, 0xF7, -0x1C, 0x4B, 0xFF, 0x6E, 0x2C, 0xEE, 0x12, 0xEC, -0x91, 0xE3, 0x40, 0xEA, 0x22, 0xF5, 0x48, 0xA0, -0x10, 0x6B, 0x22, 0xF5, 0x24, 0xC8, 0x01, 0x4A, -0x22, 0xF5, 0x48, 0xC0, 0x22, 0xF5, 0x48, 0xA0, -0x6E, 0xEA, 0x02, 0x2A, 0x22, 0xF5, 0x48, 0xC0, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x22, 0xF5, 0x66, 0xA2, 0x10, 0x6C, 0x01, 0x4B, -0x22, 0xF5, 0x66, 0xC2, 0x22, 0xF5, 0x66, 0xA2, -0x8E, 0xEB, 0x02, 0x2B, 0x22, 0xF5, 0x66, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x22, 0xF5, 0x86, 0xA2, 0xE8, 0x6B, 0x78, 0xEC, -0x22, 0xF5, 0x84, 0xAA, 0x12, 0xEB, 0x4D, 0xE3, -0x80, 0xF7, 0x8B, 0xC3, 0xA0, 0xF0, 0x64, 0x9A, +0x22, 0xF5, 0x87, 0xA2, 0x22, 0xF5, 0x68, 0xA2, +0x8E, 0xEB, 0x07, 0x23, 0xA0, 0xF0, 0x64, 0x9A, 0x04, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x68, -0x0C, 0xED, 0x08, 0xD4, 0xA0, 0xCC, 0x08, 0x92, -0xCC, 0xE8, 0x22, 0x67, 0x01, 0xCA, 0x04, 0x49, -0x0B, 0x27, 0x0A, 0x20, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x4C, 0x9A, 0xFF, 0x6E, 0x91, 0x67, -0xA7, 0x67, 0x0C, 0xEE, 0x40, 0xEA, 0x05, 0xE1, -0x08, 0x92, 0x07, 0x97, 0x05, 0x90, 0x47, 0xE1, -0xFF, 0xF7, 0x1F, 0x6A, 0x2C, 0xEA, 0x06, 0x91, -0x04, 0x63, 0x00, 0xEF, 0xDF, 0x63, 0x41, 0x62, -0x40, 0xD1, 0x3F, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x48, 0x9A, 0xFF, 0x68, 0xCC, 0xE8, -0x24, 0x67, 0x43, 0xD5, 0x04, 0x04, 0x00, 0x6D, -0xE8, 0x6E, 0x40, 0xEA, 0x01, 0x6A, 0x7D, 0x67, -0x4B, 0xEA, 0x50, 0xC3, 0x1B, 0x6A, 0x52, 0xC3, -0x44, 0x40, 0x53, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0x95, 0x80, 0xF2, 0x4C, 0x9A, 0xD0, 0x67, -0x05, 0xD1, 0x06, 0x04, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, 0x04, 0x04, -0x40, 0xEA, 0x41, 0x97, 0x40, 0x91, 0x3F, 0x90, -0x21, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, -0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x8B, 0xF2, -0x0E, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x00, 0x6B, -0x43, 0xF6, 0x6C, 0xC2, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xED, -0xFF, 0x75, 0x4C, 0xEC, 0xCC, 0xEA, 0x06, 0x61, -0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, -0x71, 0xE4, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x2B, 0xF1, 0x18, 0x4B, 0x71, 0xE4, 0x63, 0xF3, -0x7C, 0xA4, 0xAC, 0xEA, 0xAF, 0xED, 0x6C, 0xED, -0xAD, 0xEA, 0x63, 0xF3, 0x5C, 0xC4, 0x20, 0xE8, -0xFF, 0x6A, 0x4C, 0xEC, 0xFF, 0x74, 0xAC, 0xEA, -0x05, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0xAE, 0xF4, -0x52, 0xC3, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, -0x2B, 0xF1, 0x18, 0x4B, 0x63, 0xF3, 0xBA, 0xA3, -0x8C, 0xEA, 0x8F, 0xEC, 0xAC, 0xEC, 0x8D, 0xEA, -0x63, 0xF3, 0x5A, 0xC3, 0x20, 0xE8, 0x00, 0x65, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x01, 0xA4, 0x20, 0xA4, 0x0C, 0x20, 0x90, 0x67, -0xB1, 0x67, 0x00, 0x18, 0x3A, 0xDD, 0x30, 0xF0, -0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0x90, 0x67, -0xB1, 0x67, 0x53, 0x6E, 0x40, 0xEA, 0x7D, 0x67, -0x20, 0x6A, 0x50, 0xC3, 0x03, 0x6A, 0x4F, 0xCB, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0x5C, 0x9A, -0x9D, 0x67, 0x40, 0xA2, 0x52, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x63, 0xF3, -0x7A, 0xA2, 0x63, 0xF3, 0x5B, 0xA2, 0x73, 0xC4, -0x54, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, -0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0xF7, 0x63, 0x11, 0x62, 0x10, 0xD1, 0x0F, 0xD0, -0x40, 0xA4, 0x08, 0xD2, 0x08, 0x93, 0x1F, 0x6A, -0x4C, 0xEB, 0x08, 0xD3, 0x42, 0xA4, 0x61, 0xA4, -0x0B, 0xD2, 0x43, 0xA4, 0x84, 0xA4, 0x09, 0xD4, -0x08, 0x94, 0x08, 0x5C, 0x44, 0x60, 0x84, 0x31, -0x09, 0x94, 0x01, 0x2C, 0x28, 0x22, 0xFF, 0x68, -0x0C, 0xEA, 0x0C, 0xEB, 0xA2, 0x67, 0xC3, 0x67, -0x91, 0x67, 0x0C, 0xD2, 0x0D, 0xD3, 0x00, 0x18, -0x2D, 0xDD, 0x0B, 0x94, 0x09, 0x93, 0x41, 0x41, -0x0C, 0xEC, 0x0B, 0xD4, 0x0B, 0x96, 0x0C, 0xEA, -0x0C, 0xEB, 0x82, 0x67, 0xA3, 0x67, 0x30, 0xF0, -0x20, 0x68, 0x0A, 0xD2, 0x09, 0xD3, 0x00, 0x18, -0x2D, 0xDD, 0x40, 0xF4, 0x40, 0x98, 0x0C, 0x95, -0x0D, 0x96, 0x91, 0x67, 0x01, 0x6F, 0x40, 0xEA, -0x40, 0xF4, 0x40, 0x98, 0x0A, 0x94, 0x09, 0x95, -0x0B, 0x96, 0x02, 0x6F, 0x40, 0xEA, 0x91, 0x67, -0x00, 0x18, 0x9C, 0xEA, 0x7D, 0x67, 0x53, 0xC3, -0x42, 0x32, 0x54, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x45, 0xE1, 0x63, 0xF3, -0x5C, 0xA1, 0x55, 0xC3, 0x63, 0xF3, 0x5D, 0xA1, -0x56, 0xC3, 0x83, 0xF3, 0x4C, 0xA1, 0x57, 0xC3, -0x83, 0xF3, 0x4D, 0xA1, 0x58, 0xC3, 0x9D, 0x67, -0x21, 0x6A, 0x72, 0xA4, 0x50, 0xC4, 0x07, 0x6A, -0x4F, 0xCC, 0x20, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, -0x08, 0x93, 0x6D, 0xEA, 0x52, 0xC4, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, -0x40, 0xEA, 0x11, 0x97, 0x10, 0x91, 0x0F, 0x90, -0x09, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, -0x4C, 0x9A, 0x04, 0x67, 0x30, 0xF0, 0x20, 0x6C, -0x0B, 0xF2, 0x08, 0x4C, 0xB0, 0x67, 0x01, 0x6E, -0x40, 0xEA, 0x81, 0xA0, 0x00, 0x18, 0xC1, 0xCB, -0x82, 0xA0, 0x02, 0x24, 0x00, 0x18, 0x93, 0xCB, -0x83, 0xA0, 0x02, 0x24, 0x00, 0x18, 0xD4, 0xCB, -0x05, 0x97, 0x04, 0x90, 0x01, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0xCE, 0xF7, 0x65, 0xC2, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x1A, 0x6A, 0x7D, 0x67, 0x50, 0xC3, 0x00, 0xF0, -0x12, 0x04, 0x07, 0x6A, 0x4F, 0xCB, 0x80, 0x18, -0xEA, 0x76, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, -0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, -0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x19, 0x6A, 0x7D, 0x67, 0x50, 0xC3, 0x00, 0xF0, -0x12, 0x04, 0x08, 0x6A, 0x4F, 0xCB, 0x80, 0x18, -0xB3, 0x76, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, -0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, -0x05, 0x63, 0x00, 0xEF, 0xFF, 0xF7, 0x1F, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0x8C, 0xEA, 0xA3, 0xF7, -0x78, 0x9B, 0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF7, -0x9C, 0x9C, 0xCC, 0xEB, 0x40, 0xF6, 0xA0, 0x35, -0x8D, 0xEB, 0x1F, 0xF7, 0x00, 0x6C, 0x4C, 0xEC, -0x02, 0xF0, 0x00, 0x74, 0xAD, 0xEB, 0x01, 0x60, -0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF1, -0x80, 0x9C, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, -0x43, 0xF1, 0x84, 0x9C, 0x89, 0xE2, 0x60, 0xDA, -0x20, 0xE8, 0x00, 0x65, 0xFF, 0xF7, 0x1F, 0x6A, -0x8C, 0xEA, 0x1F, 0xF7, 0x00, 0x6C, 0x4C, 0xEC, -0xFF, 0x6B, 0x02, 0xF0, 0x00, 0x74, 0xAC, 0xEB, -0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, -0x43, 0xF1, 0x80, 0x9C, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6C, 0x43, 0xF1, 0x84, 0x9C, 0x91, 0xE2, -0x00, 0x6D, 0xA0, 0xDC, 0x30, 0xF0, 0x20, 0x6C, -0xA3, 0xF7, 0x98, 0x9C, 0xD4, 0x36, 0x40, 0xF6, -0x60, 0x33, 0x8C, 0xEE, 0x6D, 0xEE, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF7, 0x7C, 0x9B, 0x6D, 0xEE, -0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, 0x02, 0xF0, -0x00, 0x73, 0x01, 0x60, 0x05, 0x2B, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF1, 0x60, 0x9B, 0x04, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, 0x64, 0x9B, -0x69, 0xE2, 0xC0, 0xDA, 0x20, 0xE8, 0x00, 0x65, -0x0F, 0xF5, 0x00, 0x6B, 0x78, 0xEE, 0xFF, 0xF7, -0x1F, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, -0xA3, 0xF7, 0x98, 0x9C, 0x40, 0xF6, 0xA0, 0x35, -0x12, 0xEB, 0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, -0xA3, 0xF7, 0x9C, 0x9C, 0xAD, 0xEB, 0x8D, 0xEB, -0x1F, 0xF7, 0x00, 0x6C, 0x4C, 0xEC, 0x02, 0xF0, -0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, -0x20, 0x6C, 0x43, 0xF1, 0x80, 0x9C, 0x04, 0x10, -0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF1, 0x84, 0x9C, -0x89, 0xE2, 0x60, 0xDA, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0x48, 0x9A, -0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, -0x4C, 0x9A, 0x40, 0x9A, 0x20, 0xE8, 0x00, 0x65, -0xFF, 0x6A, 0x8C, 0xEA, 0x01, 0x72, 0x06, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0x48, 0x9A, -0x40, 0x9A, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF1, 0x4C, 0x9A, 0x40, 0x9A, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF7, 0xC4, 0x9B, -0xFD, 0x63, 0x82, 0xF7, 0x04, 0x4B, 0x02, 0xD6, -0xC1, 0x9B, 0x64, 0xAB, 0xFF, 0x6A, 0x03, 0xD6, -0xDD, 0x67, 0x68, 0xCE, 0x30, 0xF0, 0x20, 0x6B, -0x62, 0xF7, 0xDC, 0x9B, 0x62, 0xF7, 0x1C, 0x4B, -0x64, 0xA3, 0x4C, 0xEC, 0x00, 0xD6, 0xDD, 0x67, -0x64, 0xC6, 0x8D, 0xE6, 0xE0, 0xA3, 0x84, 0x33, -0x6D, 0xE6, 0xC4, 0xAB, 0x1F, 0xF7, 0x00, 0x6B, -0x4C, 0xED, 0xCC, 0xEB, 0x02, 0xF0, 0x00, 0x73, -0x01, 0x60, 0x0C, 0x2B, 0x5D, 0x67, 0x84, 0x34, -0x91, 0xE2, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0xAC, -0x43, 0xF1, 0x40, 0x9A, 0x49, 0xE3, 0x60, 0xA2, -0xFF, 0x6A, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF1, 0x64, 0x9B, 0x79, 0xE6, 0x60, 0xA6, -0xE4, 0xED, 0x6C, 0xEA, 0xA7, 0x67, 0x4C, 0xED, -0x00, 0x6B, 0x01, 0x25, 0x01, 0x6B, 0xFF, 0x6A, -0x6C, 0xEA, 0x03, 0x63, 0x20, 0xE8, 0x00, 0x65, +0x04, 0x10, 0x22, 0xF5, 0x86, 0xC2, 0x22, 0xF5, +0x64, 0xCA, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0x40, 0xF1, 0x96, 0xA2, 0x01, 0x6B, +0x8C, 0xEB, 0x04, 0x23, 0x40, 0xF1, 0x77, 0xA2, +0x43, 0xF6, 0x68, 0xC2, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0x22, 0xF5, 0x67, 0xA2, +0xA4, 0x67, 0x04, 0x2B, 0x22, 0xF5, 0x48, 0xA2, +0x0F, 0x72, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x68, +0x2B, 0xF1, 0x18, 0x48, 0x22, 0xF5, 0x47, 0xA0, +0x22, 0xF5, 0x68, 0xA0, 0xFF, 0x4A, 0x6E, 0xEA, +0x15, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, +0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF2, +0x9C, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x60, 0xDA, 0xAC, 0x10, 0x23, 0xA5, 0xFF, 0xF7, +0x1F, 0x6A, 0x04, 0x49, 0x4C, 0xE9, 0x22, 0xF5, +0x44, 0xA8, 0x22, 0x2A, 0xE8, 0x6A, 0x58, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6C, +0x80, 0xF2, 0x4C, 0x9A, 0xCB, 0xF7, 0x1C, 0x4C, +0xFF, 0x6E, 0x2C, 0xEE, 0x12, 0xEB, 0x71, 0xE4, +0x40, 0xEA, 0x22, 0xF5, 0x48, 0xA0, 0x22, 0xF5, +0x67, 0xA0, 0x22, 0xF5, 0x24, 0xC8, 0x4E, 0xEB, +0x79, 0x2B, 0x01, 0x4A, 0x22, 0xF5, 0x48, 0xC0, +0x22, 0xF5, 0x48, 0xA0, 0x10, 0x6B, 0x6E, 0xEA, +0x71, 0x2A, 0x22, 0xF5, 0x48, 0xC0, 0x6E, 0x10, +0x62, 0xA5, 0x39, 0x2B, 0x4D, 0xE1, 0xE3, 0x53, +0x36, 0x60, 0x22, 0xF5, 0x66, 0xA0, 0xE8, 0x6C, +0x98, 0xEB, 0x12, 0xEB, 0x0D, 0xE3, 0xA0, 0xF6, +0x86, 0xA3, 0x2D, 0x2C, 0xA0, 0xF6, 0x87, 0xA3, +0xFF, 0x6E, 0xFC, 0x4A, 0xFF, 0x4C, 0xA0, 0xF6, +0x87, 0xC3, 0x22, 0xF5, 0x64, 0xA8, 0x22, 0xF5, +0x86, 0xA0, 0xCC, 0xEA, 0xFF, 0x4B, 0x22, 0xF5, +0x64, 0xC8, 0xE8, 0x6B, 0x78, 0xEC, 0x2C, 0xEE, +0x12, 0xEC, 0x91, 0xE0, 0x51, 0xE4, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0xA0, 0xF6, +0x07, 0x4C, 0x40, 0xEA, 0x22, 0xF5, 0x46, 0xA0, +0xE8, 0x6B, 0x78, 0xEA, 0x12, 0xEA, 0x09, 0xE2, +0xA0, 0xF6, 0x67, 0xA2, 0x6D, 0xE1, 0xA0, 0xF6, +0x67, 0xC2, 0x22, 0xF5, 0x44, 0xA8, 0x45, 0xE1, +0x22, 0xF5, 0x24, 0xC8, 0x33, 0x10, 0x30, 0xF0, +0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0x22, 0xF5, +0x88, 0xA0, 0xE8, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x58, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0xCB, 0xF7, 0x1C, 0x4B, 0xFF, 0x6E, +0x2C, 0xEE, 0x12, 0xEC, 0x91, 0xE3, 0x40, 0xEA, +0x22, 0xF5, 0x48, 0xA0, 0x10, 0x6B, 0x22, 0xF5, +0x24, 0xC8, 0x01, 0x4A, 0x22, 0xF5, 0x48, 0xC0, +0x22, 0xF5, 0x48, 0xA0, 0x6E, 0xEA, 0x02, 0x2A, +0x22, 0xF5, 0x48, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0x22, 0xF5, 0x66, 0xA2, +0x10, 0x6C, 0x01, 0x4B, 0x22, 0xF5, 0x66, 0xC2, +0x22, 0xF5, 0x66, 0xA2, 0x8E, 0xEB, 0x02, 0x2B, +0x22, 0xF5, 0x66, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0x22, 0xF5, 0x86, 0xA2, +0xE8, 0x6B, 0x78, 0xEC, 0x22, 0xF5, 0x84, 0xAA, +0x12, 0xEB, 0x4D, 0xE3, 0x80, 0xF7, 0x8B, 0xC3, +0xA0, 0xF0, 0x64, 0x9A, 0x04, 0x6C, 0x8D, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFF, 0x69, 0x8C, 0xE9, 0x00, 0x68, 0xFF, 0x6A, -0x0C, 0xEA, 0x2E, 0xEA, 0x10, 0x2A, 0x91, 0x67, -0x00, 0x18, 0x85, 0xE8, 0x91, 0x67, 0x00, 0x18, -0x74, 0xE8, 0x91, 0x67, 0x00, 0x18, 0x8C, 0xE8, -0x91, 0x67, 0x00, 0x18, 0x56, 0xE8, 0x91, 0x67, -0x00, 0x18, 0x4C, 0xE8, 0x0F, 0x10, 0x90, 0x67, -0x00, 0x18, 0xAB, 0xE8, 0x90, 0x67, 0x00, 0x18, -0x9A, 0xE8, 0x90, 0x67, 0x00, 0x18, 0xB2, 0xE8, -0x90, 0x67, 0x00, 0x18, 0x6A, 0xE8, 0x90, 0x67, -0x00, 0x18, 0x60, 0xE8, 0x01, 0x48, 0x05, 0x70, -0xDA, 0x61, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF7, 0x8C, 0x9A, 0x30, 0xF0, 0x20, 0x6B, -0x2B, 0xF1, 0x18, 0x4B, 0xA0, 0x9C, 0x52, 0x9B, -0xAC, 0xEA, 0x53, 0xDB, 0x40, 0xDC, 0x20, 0xE8, -0xFD, 0x63, 0x05, 0xD1, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF7, 0x20, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF7, 0x10, 0x4A, 0x40, 0x9A, -0x60, 0x99, 0x30, 0xF0, 0x20, 0x6C, 0xA0, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, 0x54, 0x9A, -0xC3, 0xF7, 0x18, 0x4C, 0x80, 0x9C, 0x00, 0x9A, -0x1A, 0x65, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0x9C, -0xC3, 0xF7, 0x1C, 0x4A, 0x40, 0x9A, 0x01, 0xD4, -0x30, 0xF0, 0x20, 0x6C, 0x40, 0x9A, 0x2B, 0xF1, -0xF8, 0x9C, 0x00, 0xD2, 0x44, 0x67, 0x2B, 0xF1, -0x18, 0x4A, 0xC1, 0x9A, 0x83, 0x9A, 0x6C, 0xEF, -0xAC, 0xEE, 0x01, 0x93, 0xA2, 0x9A, 0xE8, 0xDA, -0x6C, 0xEC, 0x0C, 0xED, 0x64, 0x9A, 0x00, 0x90, -0x8B, 0xDA, 0xC9, 0xDA, 0x0C, 0xEB, 0xAA, 0xDA, -0x6C, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, -0x10, 0x4A, 0x40, 0x9A, 0xE0, 0xD9, 0x18, 0x67, -0xC0, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, -0x18, 0x4A, 0x40, 0x9A, 0xA0, 0xD8, 0x80, 0xDA, -0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF7, 0x1C, 0x4C, -0x80, 0x9C, 0x60, 0xDC, 0x05, 0x91, 0x04, 0x90, -0x03, 0x63, 0x20, 0xE8, 0xFF, 0x63, 0x01, 0xD1, -0x00, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, -0x08, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF7, -0xE4, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, -0xC0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x80, 0x98, 0xB4, 0x9A, 0x60, 0x9F, -0x20, 0x9E, 0x8C, 0xED, 0x95, 0x9A, 0xB7, 0xDA, -0x6C, 0xEC, 0x76, 0x9A, 0x98, 0xDA, 0x2C, 0xEB, -0x79, 0xDA, 0xA0, 0xD8, 0x80, 0xDF, 0x60, 0xDE, -0x01, 0x91, 0x00, 0x90, 0x01, 0x63, 0x20, 0xE8, -0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x48, 0x9A, -0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFF, 0xF7, 0x1F, 0x68, 0x0C, 0xED, 0x08, 0xD4, +0xA0, 0xCC, 0x08, 0x92, 0xCC, 0xE8, 0x22, 0x67, +0x01, 0xCA, 0x04, 0x49, 0x0B, 0x27, 0x0A, 0x20, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0xFF, 0x6E, 0x91, 0x67, 0xA7, 0x67, 0x0C, 0xEE, +0x40, 0xEA, 0x05, 0xE1, 0x08, 0x92, 0x07, 0x97, +0x05, 0x90, 0x47, 0xE1, 0xFF, 0xF7, 0x1F, 0x6A, +0x2C, 0xEA, 0x06, 0x91, 0x04, 0x63, 0x00, 0xEF, +0xDF, 0x63, 0x41, 0x62, 0x40, 0xD1, 0x3F, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, +0xFF, 0x68, 0xCC, 0xE8, 0x24, 0x67, 0x43, 0xD5, +0x04, 0x04, 0x00, 0x6D, 0xE8, 0x6E, 0x40, 0xEA, +0x01, 0x6A, 0x7D, 0x67, 0x4B, 0xEA, 0x50, 0xC3, +0x1B, 0x6A, 0x52, 0xC3, 0x44, 0x40, 0x53, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0x95, 0x80, 0xF2, +0x4C, 0x9A, 0xD0, 0x67, 0x05, 0xD1, 0x06, 0x04, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, +0x40, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x41, 0x97, +0x40, 0x91, 0x3F, 0x90, 0x21, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, +0x20, 0x6C, 0x8B, 0xF2, 0x0E, 0x4C, 0x07, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0x00, 0x6B, 0x43, 0xF6, 0x68, 0xC2, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0x6A, 0x4C, 0xED, 0xFF, 0x75, 0x4C, 0xEC, +0xCC, 0xEA, 0x06, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0x2B, 0xF1, 0x18, 0x4B, 0x71, 0xE4, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, +0x71, 0xE4, 0x63, 0xF3, 0x7C, 0xA4, 0xAC, 0xEA, +0xAF, 0xED, 0x6C, 0xED, 0xAD, 0xEA, 0x63, 0xF3, +0x5C, 0xC4, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xEC, +0xFF, 0x74, 0xAC, 0xEA, 0x05, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0xAE, 0xF4, 0x52, 0xC3, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, +0x63, 0xF3, 0xBA, 0xA3, 0x8C, 0xEA, 0x8F, 0xEC, +0xAC, 0xEC, 0x8D, 0xEA, 0x63, 0xF3, 0x5A, 0xC3, +0x20, 0xE8, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x01, 0xA4, 0x20, 0xA4, +0x0C, 0x20, 0x90, 0x67, 0xB1, 0x67, 0x00, 0x18, +0x99, 0xDC, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0x90, 0x67, 0xB1, 0x67, 0x53, 0x6E, +0x40, 0xEA, 0x7D, 0x67, 0x20, 0x6A, 0x50, 0xC3, +0x03, 0x6A, 0x4F, 0xCB, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF2, 0x40, 0x9A, 0x9D, 0x67, 0x40, 0xA2, +0x52, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0x63, 0xF3, 0x7A, 0xA2, 0x63, 0xF3, +0x5B, 0xA2, 0x73, 0xC4, 0x54, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, +0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xF7, 0x63, 0x11, 0x62, +0x10, 0xD1, 0x0F, 0xD0, 0x40, 0xA4, 0x08, 0xD2, +0x08, 0x93, 0x1F, 0x6A, 0x4C, 0xEB, 0x08, 0xD3, +0x42, 0xA4, 0x61, 0xA4, 0x0B, 0xD2, 0x43, 0xA4, +0x84, 0xA4, 0x09, 0xD4, 0x08, 0x94, 0x08, 0x5C, +0x44, 0x60, 0x84, 0x31, 0x09, 0x94, 0x01, 0x2C, +0x28, 0x22, 0xFF, 0x68, 0x0C, 0xEA, 0x0C, 0xEB, +0xA2, 0x67, 0xC3, 0x67, 0x91, 0x67, 0x0C, 0xD2, +0x0D, 0xD3, 0x00, 0x18, 0x8C, 0xDC, 0x0B, 0x94, +0x09, 0x93, 0x41, 0x41, 0x0C, 0xEC, 0x0B, 0xD4, +0x0B, 0x96, 0x0C, 0xEA, 0x0C, 0xEB, 0x82, 0x67, +0xA3, 0x67, 0x30, 0xF0, 0x20, 0x68, 0x0A, 0xD2, +0x09, 0xD3, 0x00, 0x18, 0x8C, 0xDC, 0x40, 0xF4, +0x40, 0x98, 0x0C, 0x95, 0x0D, 0x96, 0x91, 0x67, +0x01, 0x6F, 0x40, 0xEA, 0x40, 0xF4, 0x40, 0x98, +0x0A, 0x94, 0x09, 0x95, 0x0B, 0x96, 0x02, 0x6F, +0x40, 0xEA, 0x91, 0x67, 0x00, 0x18, 0xF2, 0xE9, +0x7D, 0x67, 0x53, 0xC3, 0x42, 0x32, 0x54, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0x45, 0xE1, 0x63, 0xF3, 0x5C, 0xA1, 0x55, 0xC3, +0x63, 0xF3, 0x5D, 0xA1, 0x56, 0xC3, 0x83, 0xF3, +0x4C, 0xA1, 0x57, 0xC3, 0x83, 0xF3, 0x4D, 0xA1, +0x58, 0xC3, 0x9D, 0x67, 0x21, 0x6A, 0x72, 0xA4, +0x50, 0xC4, 0x07, 0x6A, 0x4F, 0xCC, 0x20, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x08, 0x93, 0x6D, 0xEA, +0x52, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x11, 0x97, +0x10, 0x91, 0x0F, 0x90, 0x09, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0x04, 0x67, +0x30, 0xF0, 0x20, 0x6C, 0x0B, 0xF2, 0x08, 0x4C, +0xB0, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x81, 0xA0, +0x00, 0x18, 0x12, 0xCB, 0x82, 0xA0, 0x02, 0x24, +0x00, 0x18, 0xE4, 0xCA, 0x83, 0xA0, 0x02, 0x24, +0x00, 0x18, 0x25, 0xCB, 0x05, 0x97, 0x04, 0x90, +0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xCE, 0xF7, +0x61, 0xC2, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x1A, 0x6A, 0x7D, 0x67, +0x50, 0xC3, 0x00, 0xF0, 0x12, 0x04, 0x07, 0x6A, +0x4F, 0xCB, 0x80, 0x18, 0x42, 0x75, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, +0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x19, 0x6A, 0x7D, 0x67, +0x50, 0xC3, 0x00, 0xF0, 0x12, 0x04, 0x08, 0x6A, +0x4F, 0xCB, 0x80, 0x18, 0x0B, 0x75, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, +0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, +0xFF, 0xF7, 0x1F, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x8C, 0xEA, 0xA3, 0xF7, 0x7C, 0x9B, 0x30, 0xF0, +0x20, 0x6C, 0xC3, 0xF7, 0x80, 0x9C, 0xCC, 0xEB, +0x40, 0xF6, 0xA0, 0x35, 0x8D, 0xEB, 0x1F, 0xF7, +0x00, 0x6C, 0x4C, 0xEC, 0x02, 0xF0, 0x00, 0x74, +0xAD, 0xEB, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, +0x20, 0x6C, 0x43, 0xF1, 0x84, 0x9C, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF1, 0x88, 0x9C, +0x89, 0xE2, 0x60, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0x1F, 0xF7, +0x00, 0x6C, 0x4C, 0xEC, 0xFF, 0x6B, 0x02, 0xF0, +0x00, 0x74, 0xAC, 0xEB, 0x01, 0x60, 0x05, 0x2C, +0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF1, 0x84, 0x9C, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF1, +0x88, 0x9C, 0x91, 0xE2, 0x00, 0x6D, 0xA0, 0xDC, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF7, 0x9C, 0x9C, +0xD4, 0x36, 0x40, 0xF6, 0x60, 0x33, 0x8C, 0xEE, +0x6D, 0xEE, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF7, +0x60, 0x9B, 0x6D, 0xEE, 0x1F, 0xF7, 0x00, 0x6B, +0x4C, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, +0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, +0x64, 0x9B, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF1, 0x68, 0x9B, 0x69, 0xE2, 0xC0, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0x0F, 0xF5, 0x00, 0x6B, +0x78, 0xEE, 0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF7, 0x9C, 0x9C, +0x40, 0xF6, 0xA0, 0x35, 0x12, 0xEB, 0x8C, 0xEB, +0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF7, 0x80, 0x9C, +0xAD, 0xEB, 0x8D, 0xEB, 0x1F, 0xF7, 0x00, 0x6C, +0x4C, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, +0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF1, +0x84, 0x9C, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, +0x43, 0xF1, 0x88, 0x9C, 0x89, 0xE2, 0x60, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF1, 0x4C, 0x9A, 0x60, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF1, 0x50, 0x9A, 0x40, 0x9A, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x8C, 0xEA, +0x01, 0x72, 0x06, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF1, 0x4C, 0x9A, 0x40, 0x9A, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0x50, 0x9A, +0x40, 0x9A, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0x82, 0xF7, 0xC4, 0x9B, 0xFD, 0x63, 0x82, 0xF7, +0x04, 0x4B, 0x02, 0xD6, 0xC1, 0x9B, 0x64, 0xAB, +0xFF, 0x6A, 0x03, 0xD6, 0xDD, 0x67, 0x68, 0xCE, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF7, 0xDC, 0x9B, +0x62, 0xF7, 0x1C, 0x4B, 0x64, 0xA3, 0x4C, 0xEC, +0x00, 0xD6, 0xDD, 0x67, 0x64, 0xC6, 0x8D, 0xE6, +0xE0, 0xA3, 0x84, 0x33, 0x6D, 0xE6, 0xC4, 0xAB, +0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xED, 0xCC, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x0C, 0x2B, +0x5D, 0x67, 0x84, 0x34, 0x91, 0xE2, 0x30, 0xF0, +0x20, 0x6A, 0x64, 0xAC, 0x43, 0xF1, 0x44, 0x9A, +0x49, 0xE3, 0x60, 0xA2, 0xFF, 0x6A, 0x06, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, 0x68, 0x9B, +0x79, 0xE6, 0x60, 0xA6, 0xE4, 0xED, 0x6C, 0xEA, +0xA7, 0x67, 0x4C, 0xED, 0x00, 0x6B, 0x01, 0x25, +0x01, 0x6B, 0xFF, 0x6A, 0x6C, 0xEA, 0x03, 0x63, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0x8C, 0xE9, +0x00, 0x68, 0xFF, 0x6A, 0x0C, 0xEA, 0x2E, 0xEA, +0x10, 0x2A, 0x91, 0x67, 0x00, 0x18, 0xDB, 0xE7, +0x91, 0x67, 0x00, 0x18, 0xCA, 0xE7, 0x91, 0x67, +0x00, 0x18, 0xE2, 0xE7, 0x91, 0x67, 0x00, 0x18, +0xAC, 0xE7, 0x91, 0x67, 0x00, 0x18, 0xA2, 0xE7, +0x0F, 0x10, 0x90, 0x67, 0x00, 0x18, 0x01, 0xE8, +0x90, 0x67, 0x00, 0x18, 0xF0, 0xE7, 0x90, 0x67, +0x00, 0x18, 0x08, 0xE8, 0x90, 0x67, 0x00, 0x18, +0xC0, 0xE7, 0x90, 0x67, 0x00, 0x18, 0xB6, 0xE7, +0x01, 0x48, 0x05, 0x70, 0xDA, 0x61, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, 0x90, 0x9A, +0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, +0xA0, 0x9C, 0x52, 0x9B, 0xAC, 0xEA, 0x53, 0xDB, +0x40, 0xDC, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0xD1, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, +0x2C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, +0x14, 0x4A, 0x40, 0x9A, 0x60, 0x99, 0x30, 0xF0, +0x20, 0x6C, 0xA0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF7, 0x58, 0x9A, 0xC3, 0xF7, 0x1C, 0x4C, +0x80, 0x9C, 0x00, 0x9A, 0x1A, 0x65, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0x9C, 0xE3, 0xF7, 0x00, 0x4A, +0x40, 0x9A, 0x01, 0xD4, 0x30, 0xF0, 0x20, 0x6C, +0x40, 0x9A, 0x2B, 0xF1, 0xF8, 0x9C, 0x00, 0xD2, +0x44, 0x67, 0x2B, 0xF1, 0x18, 0x4A, 0xC1, 0x9A, +0x83, 0x9A, 0x6C, 0xEF, 0xAC, 0xEE, 0x01, 0x93, +0xA2, 0x9A, 0xE8, 0xDA, 0x6C, 0xEC, 0x0C, 0xED, +0x64, 0x9A, 0x00, 0x90, 0x8B, 0xDA, 0xC9, 0xDA, +0x0C, 0xEB, 0xAA, 0xDA, 0x6C, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF7, 0x14, 0x4A, 0x40, 0x9A, +0xE0, 0xD9, 0x18, 0x67, 0xC0, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF7, 0x1C, 0x4A, 0x40, 0x9A, +0xA0, 0xD8, 0x80, 0xDA, 0x30, 0xF0, 0x20, 0x6C, +0xE3, 0xF7, 0x00, 0x4C, 0x80, 0x9C, 0x60, 0xDC, +0x05, 0x91, 0x04, 0x90, 0x03, 0x63, 0x20, 0xE8, +0xFF, 0x63, 0x01, 0xD1, 0x00, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF2, 0x0C, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF7, 0xF0, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF7, 0xC4, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x80, 0x98, +0xB4, 0x9A, 0x60, 0x9F, 0x20, 0x9E, 0x8C, 0xED, +0x95, 0x9A, 0xB7, 0xDA, 0x6C, 0xEC, 0x76, 0x9A, +0x98, 0xDA, 0x2C, 0xEB, 0x79, 0xDA, 0xA0, 0xD8, +0x80, 0xDF, 0x60, 0xDE, 0x01, 0x91, 0x00, 0x90, +0x01, 0x63, 0x20, 0xE8, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x48, 0x9A, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x0E, 0xF5, 0x70, 0xA2, -0x01, 0x6A, 0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF5, 0x48, 0x9A, 0x07, 0x6C, -0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x0E, 0xF5, 0x6C, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0x06, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, +0x48, 0x9A, 0x07, 0x6C, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, 0x50, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, 0x54, 0x9A, 0x40, 0xA2, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, -0x54, 0x9A, 0x40, 0xA2, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF7, 0x58, 0x9A, 0x40, 0xA2, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF7, 0x44, 0x9A, 0x40, 0xA2, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, 0x5C, 0x9A, +0x58, 0x9A, 0x40, 0xA2, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF7, 0x5C, 0x9A, 0x40, 0xA2, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF7, 0x50, 0x9A, 0x40, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF0, 0x40, 0x9A, 0x40, 0xA2, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF0, -0x40, 0x9A, 0x40, 0xA2, 0x30, 0xF0, 0x20, 0x6A, -0x04, 0xF0, 0x44, 0x9A, 0x40, 0xA2, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF7, 0x48, 0x9A, 0x40, 0xA2, +0x44, 0x9A, 0x40, 0xA2, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0xF0, 0x48, 0x9A, 0x40, 0xA2, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF7, 0x54, 0x9A, 0x40, 0xA2, 0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xF0, 0x9A, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, 0x0A, 0x23, 0xA3, 0xF3, @@ -22815,8 +22428,8 @@ u8 array_mp_8822c_fw_nic[] = { 0x98, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x03, 0x6C, 0x8B, 0xEC, 0x8C, 0xEB, 0xA3, 0xF3, 0x78, 0xC2, 0x20, 0xE8, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x68, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF1, 0x98, 0x9C, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x6C, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF1, 0x9C, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, 0x60, 0xDA, @@ -22828,12 +22441,12 @@ u8 array_mp_8822c_fw_nic[] = { 0xA0, 0xF0, 0x7B, 0xA0, 0x7F, 0x6A, 0x6C, 0xEA, 0x29, 0x22, 0x40, 0xF1, 0x76, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x04, 0x22, -0x40, 0xF1, 0x57, 0xA0, 0x43, 0xF6, 0x4C, 0xC0, +0x40, 0xF1, 0x57, 0xA0, 0x43, 0xF6, 0x48, 0xC0, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, -0x03, 0xF6, 0x51, 0xA3, 0x01, 0x6C, 0x8E, 0xEA, +0x03, 0xF6, 0x4D, 0xA3, 0x01, 0x6C, 0x8E, 0xEA, 0x15, 0x2A, 0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF2, -0x90, 0x9C, 0x00, 0x6D, 0x40, 0xC4, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF2, 0x48, 0x9A, 0x02, 0x6C, +0x94, 0x9C, 0x00, 0x6D, 0x40, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF2, 0x4C, 0x9A, 0x02, 0x6C, 0x80, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, 0xC0, 0xF0, 0xC3, 0xA3, 0xFF, 0x6C, 0x55, 0x4C, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, @@ -22846,7 +22459,7 @@ u8 array_mp_8822c_fw_nic[] = { 0xBE, 0xA4, 0xCC, 0xED, 0x1D, 0x25, 0x00, 0xF1, 0xBF, 0xA4, 0x22, 0xF6, 0x70, 0x9B, 0x00, 0xF1, 0x9E, 0xA4, 0x75, 0xE5, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF2, 0x7C, 0x9B, 0xBC, 0x35, 0x21, 0x4D, +0x23, 0xF2, 0x60, 0x9B, 0xBC, 0x35, 0x21, 0x4D, 0x75, 0xE5, 0xE0, 0xA5, 0x9E, 0x33, 0x9A, 0x34, 0xCC, 0xEC, 0x78, 0x33, 0x9C, 0x34, 0x4C, 0xEF, 0x8D, 0xEB, 0xED, 0xEB, 0x00, 0xF6, 0x60, 0x33, @@ -22860,9 +22473,9 @@ u8 array_mp_8822c_fw_nic[] = { 0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xF0, 0xBA, 0xA2, 0x01, 0x6B, 0x6C, 0xED, 0x06, 0x2D, 0xA3, 0xF3, 0x5C, 0xA2, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, -0x07, 0x22, 0x80, 0x18, 0x1F, 0x71, 0x01, 0x72, -0x05, 0x61, 0x80, 0x18, 0x72, 0x72, 0x02, 0x10, -0x00, 0x18, 0xFA, 0xCF, 0x05, 0x97, 0x03, 0x63, +0x07, 0x22, 0x80, 0x18, 0x74, 0x6F, 0x01, 0x72, +0x05, 0x61, 0x80, 0x18, 0xC7, 0x70, 0x02, 0x10, +0x00, 0x18, 0x4F, 0xCF, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x30, 0xF0, 0x20, 0x68, 0x2C, 0xEC, 0x2B, 0xF1, 0x18, 0x48, @@ -22870,13 +22483,13 @@ u8 array_mp_8822c_fw_nic[] = { 0x5C, 0x9A, 0xC0, 0xF0, 0x9F, 0xA0, 0x40, 0xEA, 0x01, 0x72, 0x21, 0x61, 0xA0, 0xF0, 0x7B, 0xA0, 0x7F, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x1B, 0x22, -0x03, 0xF6, 0x65, 0xA0, 0x02, 0x6A, 0x4B, 0xEA, +0x03, 0xF6, 0x61, 0xA0, 0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x40, 0xF1, 0x76, 0xA0, 0x03, 0xF6, -0x45, 0xC0, 0x01, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, +0x41, 0xC0, 0x01, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x04, 0x22, 0x40, 0xF1, 0x57, 0xA0, 0x43, 0xF6, -0x4C, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF7, -0x5D, 0xA2, 0x07, 0x6B, 0x6C, 0xEA, 0x03, 0x2A, -0x04, 0x94, 0x00, 0x18, 0xBB, 0xD0, 0x09, 0x97, +0x48, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF7, +0x59, 0xA2, 0x07, 0x6B, 0x6C, 0xEA, 0x03, 0x2A, +0x04, 0x94, 0x00, 0x18, 0x10, 0xD0, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x30, 0xF0, 0x20, 0x68, 0x2C, 0xEC, @@ -22886,20 +22499,48 @@ u8 array_mp_8822c_fw_nic[] = { 0xA0, 0xF0, 0x7B, 0xA0, 0x7F, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x34, 0x22, 0x40, 0xF1, 0x76, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x04, 0x22, -0x40, 0xF1, 0x57, 0xA0, 0x43, 0xF6, 0x4C, 0xC0, -0x30, 0xF0, 0x20, 0x6A, 0x4E, 0xF7, 0x49, 0xA2, +0x40, 0xF1, 0x57, 0xA0, 0x43, 0xF6, 0x48, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x4E, 0xF7, 0x45, 0xA2, 0x01, 0x6B, 0x6E, 0xEA, 0x0B, 0x2A, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF2, 0x70, 0x9B, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0x48, 0x9A, +0x20, 0x6B, 0x83, 0xF2, 0x74, 0x9B, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0x4C, 0x9A, 0x02, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x03, 0xF6, 0x80, 0xA2, -0x03, 0x6B, 0x6B, 0xEB, 0x6C, 0xEC, 0x03, 0xF6, -0x80, 0xC2, 0x03, 0xF6, 0x85, 0xA2, 0x8C, 0xEB, -0x03, 0xF6, 0x65, 0xC2, 0x03, 0xF6, 0x45, 0xA2, +0x2B, 0xF1, 0x18, 0x4A, 0xE3, 0xF5, 0x9C, 0xA2, +0x03, 0x6B, 0x6B, 0xEB, 0x6C, 0xEC, 0xE3, 0xF5, +0x9C, 0xC2, 0x03, 0xF6, 0x81, 0xA2, 0x8C, 0xEB, +0x03, 0xF6, 0x61, 0xC2, 0x03, 0xF6, 0x41, 0xA2, 0x07, 0x6B, 0x6C, 0xEA, 0x03, 0x2A, 0x04, 0x94, -0x00, 0x18, 0xBB, 0xD0, 0x09, 0x97, 0x08, 0x91, +0x00, 0x18, 0x10, 0xD0, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, +0xE3, 0xF5, 0x7D, 0xA0, 0x02, 0x6A, 0xFF, 0x69, +0x6C, 0xEA, 0x2C, 0xEC, 0x2C, 0xEA, 0x04, 0xD4, +0x23, 0x22, 0x03, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xE3, 0xF5, 0x5D, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF4, 0x44, 0x9A, 0x01, 0x6D, 0x40, 0xEA, +0xE3, 0xF5, 0x9D, 0xA0, 0x01, 0x6B, 0x4C, 0xEB, +0x09, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, 0xA0, 0xF0, +0x9B, 0xA0, 0x6C, 0x33, 0x6D, 0xEA, 0x7F, 0x6B, +0x8C, 0xEB, 0x2C, 0xEB, 0xE3, 0xF5, 0x5D, 0xC0, +0x07, 0x23, 0x08, 0x6B, 0x4C, 0xEB, 0x2C, 0xEB, +0x03, 0x23, 0x04, 0x94, 0x00, 0x18, 0x10, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, +0xE0, 0xF0, 0x7A, 0xA0, 0x11, 0x6A, 0xFF, 0x69, +0x6C, 0xEA, 0x11, 0x72, 0x26, 0x61, 0x64, 0xF5, +0x78, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, +0x20, 0x22, 0x03, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x64, 0xF5, 0x58, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0x94, 0x40, 0xF4, 0x44, 0x9A, 0x01, 0x6D, +0x40, 0xEA, 0x64, 0xF5, 0x98, 0xA0, 0x01, 0x6B, +0x4C, 0xEB, 0x05, 0x6A, 0x4B, 0xEA, 0x68, 0x33, +0x8C, 0xEA, 0x6D, 0xEA, 0x04, 0x6B, 0x4C, 0xEB, +0x2C, 0xEB, 0x64, 0xF5, 0x58, 0xC0, 0x05, 0x23, +0x84, 0xF5, 0x5E, 0xA0, 0x01, 0x4A, 0x84, 0xF5, +0x5E, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, +0x50, 0x9A, 0x04, 0x94, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x30, 0xF0, 0x20, 0x68, 0x2C, 0xEC, 0x2B, 0xF1, 0x18, 0x48, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0xD4, 0x80, 0xF3, 0x5C, 0x9A, 0xC0, 0xF0, @@ -22907,7 +22548,7 @@ u8 array_mp_8822c_fw_nic[] = { 0xA0, 0xF0, 0x7B, 0xA0, 0x7F, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x2E, 0x22, 0x40, 0xF1, 0x76, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x04, 0x22, -0x40, 0xF1, 0x57, 0xA0, 0x43, 0xF6, 0x4C, 0xC0, +0x40, 0xF1, 0x57, 0xA0, 0x43, 0xF6, 0x48, 0xC0, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0xA0, 0xF0, 0x9C, 0xA3, 0x10, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, 0x20, 0x72, @@ -22916,7 +22557,7 @@ u8 array_mp_8822c_fw_nic[] = { 0x20, 0x6A, 0x60, 0xF4, 0x40, 0x9A, 0x40, 0xEA, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xEB, 0xF1, 0x73, 0xA2, 0x7F, 0x6A, 0x6C, 0xEA, 0x02, 0x72, -0x03, 0x60, 0x04, 0x94, 0x00, 0x18, 0x7B, 0xD0, +0x03, 0x60, 0x04, 0x94, 0x00, 0x18, 0xD0, 0xCF, 0x30, 0xF0, 0x20, 0x6A, 0x4B, 0xF2, 0x6E, 0xA2, 0x07, 0x6A, 0x6C, 0xEA, 0x04, 0x93, 0x6E, 0xEA, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF5, @@ -22928,10 +22569,10 @@ u8 array_mp_8822c_fw_nic[] = { 0xAC, 0xEC, 0x4C, 0xEC, 0x4C, 0xE8, 0x13, 0x24, 0xA6, 0x32, 0x07, 0x6C, 0x8C, 0xEA, 0x0E, 0xEA, 0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, -0x48, 0x9A, 0x40, 0x9A, 0x87, 0xF3, 0x58, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0x4C, 0x9A, -0x40, 0x9A, 0x87, 0xF3, 0x54, 0xDB, 0x90, 0x67, -0x00, 0x18, 0x8B, 0xC7, 0x7B, 0x22, 0x30, 0xF0, +0x4C, 0x9A, 0x40, 0x9A, 0x87, 0xF3, 0x54, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0x50, 0x9A, +0x40, 0x9A, 0x87, 0xF3, 0x50, 0xDB, 0x90, 0x67, +0x00, 0x18, 0xC1, 0xC6, 0x7B, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xF0, 0x9A, 0xA2, 0x01, 0x6B, 0x6C, 0xEC, 0x06, 0x2C, 0xA3, 0xF3, 0x5C, 0xA2, 0x6C, 0xEA, 0xFF, 0x6B, @@ -22941,11 +22582,11 @@ u8 array_mp_8822c_fw_nic[] = { 0xA0, 0xF0, 0x9A, 0xAA, 0x0F, 0xF7, 0x01, 0x6B, 0x8C, 0xEB, 0x05, 0x2B, 0xA3, 0xF3, 0x7C, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, 0x09, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x2E, 0xF7, 0x5B, 0xA2, 0x02, 0x72, -0x0E, 0x60, 0x90, 0x67, 0x00, 0x18, 0x6D, 0xD1, +0x20, 0x6A, 0x2E, 0xF7, 0x57, 0xA2, 0x02, 0x72, +0x0E, 0x60, 0x90, 0x67, 0x00, 0x18, 0xC2, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x4B, 0xF2, 0x6E, 0xA2, 0x07, 0x6A, 0x6C, 0xEA, 0x0E, 0xEA, 0x03, 0x2A, -0x90, 0x67, 0x80, 0x18, 0x1D, 0x60, 0x30, 0xF0, +0x90, 0x67, 0x80, 0x18, 0xA2, 0x5E, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE0, 0xF0, 0xA5, 0xA2, 0x01, 0x6C, 0xFF, 0x6B, 0xAC, 0xEC, 0x39, 0x24, 0xB6, 0x34, 0x8E, 0xE8, 0x36, 0x28, @@ -22956,35 +22597,35 @@ u8 array_mp_8822c_fw_nic[] = { 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE0, 0xF0, 0xE6, 0xA2, 0x7F, 0x6B, 0xEC, 0xEB, 0x87, 0xF3, -0x6B, 0xC2, 0xE0, 0xF0, 0x65, 0xA2, 0x01, 0x6F, -0x66, 0x30, 0xEC, 0xE8, 0x87, 0xF3, 0x0C, 0xC2, +0x67, 0xC2, 0xE0, 0xF0, 0x65, 0xA2, 0x01, 0x6F, +0x66, 0x30, 0xEC, 0xE8, 0x87, 0xF3, 0x08, 0xC2, 0xE0, 0xF0, 0x07, 0xA2, 0x1E, 0x30, 0x87, 0xF3, -0x0F, 0xC2, 0x6A, 0x30, 0x6E, 0x33, 0xEC, 0xEB, -0xEC, 0xE8, 0x87, 0xF3, 0x6E, 0xC2, 0x00, 0x6B, -0x87, 0xF3, 0x0D, 0xC2, 0x87, 0xF3, 0x70, 0xC2, -0x80, 0x18, 0xC6, 0x23, 0x05, 0x97, 0x04, 0x90, +0x0B, 0xC2, 0x6A, 0x30, 0x6E, 0x33, 0xEC, 0xEB, +0xEC, 0xE8, 0x87, 0xF3, 0x6A, 0xC2, 0x00, 0x6B, +0x87, 0xF3, 0x09, 0xC2, 0x87, 0xF3, 0x6C, 0xC2, +0x80, 0x18, 0x9E, 0x26, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, 0x30, 0xF0, 0x20, 0x6B, 0x0A, 0xD4, 0x2B, 0xF1, 0x18, 0x4B, 0xE0, 0xF0, 0xB3, 0xA3, 0x10, 0x6C, 0xAC, 0xEC, 0x4C, 0xEC, 0x28, 0x24, 0x0A, 0x94, 0xB6, 0x32, 0x8E, 0xEA, 0x24, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF7, 0x94, 0x9A, 0x8F, 0x6A, +0x20, 0x6A, 0xA3, 0xF7, 0x98, 0x9A, 0x8F, 0x6A, 0xA0, 0xA4, 0xAC, 0xEA, 0x40, 0xC4, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF1, 0x48, 0x9A, 0x40, 0x9A, -0xA7, 0xF3, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF1, 0x4C, 0x9A, 0x40, 0x9A, 0x87, 0xF3, -0x5C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, -0x44, 0x9A, 0x40, 0x9A, 0xA7, 0xF3, 0x48, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, 0x48, 0x9A, -0x40, 0x9A, 0xA7, 0xF3, 0x44, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF1, 0x4C, 0x9A, 0x40, 0x9A, +0x87, 0xF3, 0x5C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF1, 0x50, 0x9A, 0x40, 0x9A, 0x87, 0xF3, +0x58, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, +0x50, 0x9A, 0x40, 0x9A, 0xA7, 0xF3, 0x44, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, 0x54, 0x9A, +0x40, 0x9A, 0xA7, 0xF3, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0xE0, 0xF0, 0x6C, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, 0x69, 0x22, 0x76, 0x32, 0x0A, 0x93, 0x6E, 0xEA, 0x65, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, 0x48, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, 0x54, 0x9A, 0x9D, 0x67, 0x30, 0xF0, 0x20, 0x69, 0x40, 0x9A, 0x05, 0x05, 0x04, 0x6E, 0x05, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF7, 0x44, 0x9A, 0x40, 0x9A, +0x20, 0x6A, 0x43, 0xF7, 0x50, 0x9A, 0x40, 0x9A, 0x04, 0xD2, 0x2D, 0x6A, 0x58, 0xC4, 0x09, 0x6A, 0x53, 0xCC, 0x80, 0xF2, 0x4C, 0x99, 0x00, 0xF0, 0x1A, 0x04, 0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x99, @@ -22999,64 +22640,33 @@ u8 array_mp_8822c_fw_nic[] = { 0x05, 0x2C, 0xB4, 0x35, 0xD0, 0x4D, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE0, 0xF0, 0xED, 0xA2, -0x7F, 0x6B, 0xEC, 0xEB, 0x87, 0xF3, 0x6B, 0xC2, +0x7F, 0x6B, 0xEC, 0xEB, 0x87, 0xF3, 0x67, 0xC2, 0xE0, 0xF0, 0x6C, 0xA2, 0x01, 0x6F, 0x66, 0x30, -0xEC, 0xE8, 0x87, 0xF3, 0x0C, 0xC2, 0xE0, 0xF0, -0x0E, 0xA2, 0x1E, 0x30, 0x87, 0xF3, 0x0F, 0xC2, +0xEC, 0xE8, 0x87, 0xF3, 0x08, 0xC2, 0xE0, 0xF0, +0x0E, 0xA2, 0x1E, 0x30, 0x87, 0xF3, 0x0B, 0xC2, 0x6A, 0x30, 0x6E, 0x33, 0xEC, 0xEB, 0xEC, 0xE8, -0x87, 0xF3, 0x6E, 0xC2, 0x00, 0x6B, 0x87, 0xF3, -0x0D, 0xC2, 0x87, 0xF3, 0x70, 0xC2, 0x80, 0x18, -0xC6, 0x23, 0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, +0x87, 0xF3, 0x6A, 0xC2, 0x00, 0x6B, 0x87, 0xF3, +0x09, 0xC2, 0x87, 0xF3, 0x6C, 0xC2, 0x80, 0x18, +0x9E, 0x26, 0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x80, 0x18, 0x34, 0x1E, 0x05, 0x97, 0x03, 0x63, +0x80, 0x18, 0x0B, 0x21, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x2B, 0xF1, 0x18, 0x48, 0x03, 0xF6, 0x61, 0xA0, -0xFF, 0x69, 0x02, 0x6A, 0x8C, 0xE9, 0x6C, 0xEA, -0xFF, 0x6C, 0x8C, 0xEA, 0x25, 0x22, 0x03, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0x03, 0xF6, 0x41, 0xC0, -0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x44, 0x9A, -0x91, 0x67, 0x01, 0x6D, 0x40, 0xEA, 0x03, 0xF6, -0x81, 0xA0, 0x01, 0x6B, 0x4C, 0xEB, 0x09, 0x6A, -0x4B, 0xEA, 0x8C, 0xEA, 0xA0, 0xF0, 0x9B, 0xA0, -0x6C, 0x33, 0x6D, 0xEA, 0x7F, 0x6B, 0x8C, 0xEB, -0xFF, 0x6C, 0x8C, 0xEB, 0x03, 0xF6, 0x41, 0xC0, -0x07, 0x23, 0x08, 0x6B, 0x4C, 0xEB, 0x8C, 0xEB, -0x03, 0x23, 0x91, 0x67, 0x00, 0x18, 0xBB, 0xD0, -0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, -0xE0, 0xF0, 0x7A, 0xA0, 0x11, 0x6A, 0x6C, 0xEA, -0x11, 0x72, 0x28, 0x61, 0x64, 0xF5, 0x7C, 0xA0, -0x02, 0x6A, 0xFF, 0x6C, 0x6C, 0xEA, 0x8C, 0xEA, -0x21, 0x22, 0x03, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, -0x64, 0xF5, 0x5C, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0x40, 0xF4, 0x44, 0x9A, 0x91, 0x67, 0x01, 0x6D, -0x40, 0xEA, 0x64, 0xF5, 0x9C, 0xA0, 0x01, 0x6B, -0x4C, 0xEB, 0x05, 0x6A, 0x4B, 0xEA, 0x68, 0x33, -0x8C, 0xEA, 0x6D, 0xEA, 0x04, 0x6B, 0x4C, 0xEB, -0x64, 0xF5, 0x5C, 0xC0, 0xFF, 0x6A, 0x4C, 0xEB, -0x05, 0x23, 0xA4, 0xF5, 0x42, 0xA0, 0x01, 0x4A, -0xA4, 0xF5, 0x42, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF5, 0x50, 0x9A, 0x91, 0x67, 0x40, 0xEA, -0x91, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x7F, 0x65, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x2B, 0xF1, 0x18, 0x48, 0x03, 0xF6, 0x61, 0xA0, +0x2B, 0xF1, 0x18, 0x48, 0xE3, 0xF5, 0x7D, 0xA0, 0xFF, 0x69, 0x01, 0x6A, 0x8C, 0xE9, 0x6C, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, 0x2E, 0x22, 0x02, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0x03, 0xF6, 0x41, 0xC0, +0x4B, 0xEA, 0x6C, 0xEA, 0xE3, 0xF5, 0x5D, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x44, 0x9A, -0x91, 0x67, 0x00, 0x6D, 0x40, 0xEA, 0x03, 0xF6, -0x81, 0xA0, 0x01, 0x6B, 0x6C, 0xEA, 0xFA, 0x4B, +0x91, 0x67, 0x00, 0x6D, 0x40, 0xEA, 0xE3, 0xF5, +0x9D, 0xA0, 0x01, 0x6B, 0x6C, 0xEA, 0xFA, 0x4B, 0x48, 0x32, 0x8C, 0xEB, 0x4D, 0xEB, 0x04, 0x6A, -0x6C, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, 0x03, 0xF6, -0x61, 0xC0, 0x09, 0x22, 0x91, 0x67, 0x00, 0x18, -0xBB, 0xD0, 0x63, 0xF6, 0x5F, 0xA0, 0x0D, 0x22, +0x6C, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, 0xE3, 0xF5, +0x7D, 0xC0, 0x09, 0x22, 0x91, 0x67, 0x00, 0x18, +0x10, 0xD0, 0x63, 0xF6, 0x5B, 0xA0, 0x0D, 0x22, 0x00, 0x6C, 0xA4, 0x67, 0x08, 0x10, 0x63, 0xF6, -0x5F, 0xA0, 0x07, 0x22, 0x91, 0x67, 0x00, 0x18, -0xBB, 0xD0, 0x00, 0x6C, 0x01, 0x6D, 0x00, 0x18, -0x2C, 0xC9, 0x91, 0x67, 0x80, 0x18, 0x96, 0x6D, -0x91, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x7F, 0x65, +0x5B, 0xA0, 0x07, 0x22, 0x91, 0x67, 0x00, 0x18, +0x10, 0xD0, 0x00, 0x6C, 0x01, 0x6D, 0x00, 0x18, +0x62, 0xC8, 0x91, 0x67, 0x80, 0x18, 0xEB, 0x6B, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0xEB, 0xF1, 0x72, 0xA2, @@ -23080,67 +22690,65 @@ u8 array_mp_8822c_fw_nic[] = { 0xEB, 0xF1, 0x72, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x80, 0x18, 0x04, 0x41, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x00, 0x18, 0x30, 0xE2, 0x02, 0x67, +0x04, 0xD0, 0x00, 0x18, 0x86, 0xE1, 0x02, 0x67, 0x01, 0x6A, 0x0C, 0xEA, 0x11, 0x22, 0x00, 0x6C, -0x01, 0x6D, 0x00, 0x18, 0x8B, 0xC6, 0x30, 0xF0, -0x20, 0x6A, 0x04, 0xF0, 0x48, 0x9A, 0xFF, 0x6C, +0x01, 0x6D, 0x00, 0x18, 0xD7, 0xC5, 0x30, 0xF0, +0x20, 0x6A, 0x04, 0xF0, 0x4C, 0x9A, 0xFF, 0x6C, 0x01, 0x4C, 0x60, 0x9A, 0x8C, 0xEB, 0x08, 0x23, 0x60, 0x9A, 0x8D, 0xEB, 0x60, 0xDA, 0x04, 0x10, -0x00, 0x6C, 0xA4, 0x67, 0x00, 0x18, 0x8B, 0xC6, +0x00, 0x6C, 0xA4, 0x67, 0x00, 0x18, 0xD7, 0xC5, 0x40, 0x6A, 0x0C, 0xEA, 0x1B, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x04, 0xF0, 0x4C, 0x9A, 0x60, 0xA2, +0x20, 0x6A, 0x04, 0xF0, 0x50, 0x9A, 0x60, 0xA2, 0x00, 0xF6, 0x60, 0x33, 0x00, 0xF6, 0x63, 0x33, 0x00, 0x53, 0x00, 0x6B, 0x02, 0x61, 0x80, 0x6B, 0x6B, 0xEB, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x40, 0xF1, 0x96, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, 0x03, 0x23, 0x00, 0x6B, -0x43, 0xF6, 0x6C, 0xC2, 0x10, 0x6B, 0x0C, 0xEB, +0x43, 0xF6, 0x68, 0xC2, 0x10, 0x6B, 0x0C, 0xEB, 0x09, 0x23, 0x30, 0xF0, 0x20, 0x6A, 0x01, 0x6B, -0x2B, 0xF1, 0x18, 0x4A, 0x83, 0xF6, 0x6C, 0xC2, +0x2B, 0xF1, 0x18, 0x4A, 0x83, 0xF6, 0x68, 0xC2, 0x07, 0x6B, 0x07, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x83, 0xF6, 0x6C, 0xC2, -0x04, 0x6B, 0x03, 0xF6, 0x74, 0xCA, 0x30, 0xF0, +0x2B, 0xF1, 0x18, 0x4A, 0x83, 0xF6, 0x68, 0xC2, +0x04, 0x6B, 0x03, 0xF6, 0x70, 0xCA, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF6, 0x94, 0xA2, 0x63, 0xF1, -0x60, 0x9B, 0xFF, 0x6D, 0x08, 0x6E, 0x80, 0xC3, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, 0x9C, 0x9B, +0x20, 0x6B, 0x03, 0xF6, 0x90, 0xA2, 0x63, 0xF1, +0x64, 0x9B, 0xFF, 0x6D, 0x08, 0x6E, 0x80, 0xC3, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0x80, 0x9B, 0xCB, 0xEE, 0x60, 0xA4, 0xAC, 0xEB, 0xCC, 0xEB, 0x06, 0x6E, 0xCD, 0xEB, 0xAC, 0xEB, 0x60, 0xC4, -0x83, 0xF6, 0xAC, 0xA2, 0x30, 0xF0, 0x20, 0x6C, -0x4E, 0xF7, 0x0A, 0x4C, 0x00, 0x18, 0xC3, 0xE9, +0x83, 0xF6, 0xA8, 0xA2, 0x30, 0xF0, 0x20, 0x6C, +0x4E, 0xF7, 0x06, 0x4C, 0x00, 0x18, 0x19, 0xE9, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xAF, 0x65, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0xEF, 0xF6, 0x74, 0xA2, 0x02, 0x6A, 0x6C, 0xEA, -0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, 0xCA, 0xE7, +0xEF, 0xF6, 0x70, 0xA2, 0x02, 0x6A, 0x6C, 0xEA, +0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, 0x20, 0xE7, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x6F, 0xC1, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0x96, 0x26, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0x6E, 0x29, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0xA0, 0xF0, 0x7B, 0xA0, 0x7F, 0x6A, 0xFF, 0x69, 0x6C, 0xEA, 0x1E, 0x22, 0xA0, 0xF0, 0x9E, 0xA0, -0x96, 0x34, 0x2C, 0xEC, 0x00, 0x18, 0x7E, 0xE2, +0x96, 0x34, 0x2C, 0xEC, 0x00, 0x18, 0xD4, 0xE1, 0x02, 0x6B, 0x4C, 0xEB, 0x2C, 0xEB, 0x07, 0x23, 0xA0, 0xF0, 0x9E, 0xA0, 0x96, 0x34, 0x2C, 0xEC, -0x00, 0x18, 0x42, 0xCE, 0x0D, 0x10, 0xA0, 0xF0, -0x9E, 0xA0, 0x03, 0xF6, 0x60, 0xA0, 0x05, 0x6A, +0x00, 0x18, 0x97, 0xCD, 0x0D, 0x10, 0xA0, 0xF0, +0x9E, 0xA0, 0xE3, 0xF5, 0x7C, 0xA0, 0x05, 0x6A, 0x4B, 0xEA, 0x96, 0x34, 0x6C, 0xEA, 0x2C, 0xEC, -0x03, 0xF6, 0x40, 0xC0, 0x00, 0x18, 0xBB, 0xD0, +0xE3, 0xF5, 0x5C, 0xC0, 0x00, 0x18, 0x10, 0xD0, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xF0, 0x9B, 0xA2, 0x7F, 0x6B, 0x8C, 0xEB, 0x07, 0x23, 0xA0, 0xF0, 0x9E, 0xA2, 0xFF, 0x6A, -0x96, 0x34, 0x4C, 0xEC, 0x00, 0x18, 0xCD, 0xD0, +0x96, 0x34, 0x4C, 0xEC, 0x00, 0x18, 0x22, 0xD0, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0x04, 0x67, 0x2C, 0xE8, 0x90, 0x67, -0x80, 0x18, 0x4D, 0x24, 0x06, 0x70, 0x0A, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF0, 0x70, 0x9A, +0x80, 0x18, 0x25, 0x27, 0x06, 0x70, 0x0A, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF0, 0x74, 0x9A, 0x01, 0x6C, 0x40, 0xA3, 0x2C, 0xEA, 0x8D, 0xEA, 0x2C, 0xEA, 0x40, 0xC3, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, @@ -23151,62 +22759,62 @@ u8 array_mp_8822c_fw_nic[] = { 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF4, 0x55, 0xA2, 0xFF, 0x68, 0x8C, 0xE8, 0x0E, 0xEA, -0x02, 0x2A, 0x80, 0x18, 0xB4, 0x72, 0x30, 0xF0, +0x02, 0x2A, 0x80, 0x18, 0x09, 0x71, 0x30, 0xF0, 0x20, 0x6A, 0xEB, 0xF1, 0x56, 0xA2, 0x56, 0x32, 0x0E, 0xEA, 0x06, 0x2A, 0x90, 0x67, 0x00, 0x18, -0x53, 0xD0, 0x00, 0x6C, 0x00, 0x18, 0x7D, 0xC7, -0x90, 0x67, 0x00, 0x18, 0x87, 0xD9, 0x30, 0xF0, +0xA8, 0xCF, 0x00, 0x6C, 0x00, 0x18, 0xB3, 0xC6, +0x90, 0x67, 0x00, 0x18, 0xE6, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x4B, 0xF2, 0x6E, 0xA2, 0x07, 0x6A, 0x6C, 0xEA, 0x0E, 0xEA, 0x02, 0x2A, 0x80, 0x18, -0x31, 0x61, 0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, -0xAA, 0xCF, 0x30, 0xF0, 0x20, 0x6A, 0x4B, 0xF2, +0xB6, 0x5F, 0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, +0xFF, 0xCE, 0x30, 0xF0, 0x20, 0x6A, 0x4B, 0xF2, 0x75, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x90, 0x67, 0x80, 0x18, 0x13, 0x00, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xE5, 0x26, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xBD, 0x29, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE0, 0xF0, 0x9A, 0xA2, 0x01, 0x6B, 0x6C, 0xEC, 0x08, 0x24, 0xA4, 0xF5, -0x47, 0xA2, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, -0x02, 0x2A, 0x80, 0x18, 0x06, 0x60, 0x05, 0x97, +0x43, 0xA2, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, +0x02, 0x2A, 0x80, 0x18, 0x8B, 0x5E, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0xA2, 0xD5, 0x05, 0x97, 0x03, 0x63, +0x00, 0x18, 0xF7, 0xD4, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0x9F, 0xD5, 0x05, 0x97, 0x03, 0x63, +0x00, 0x18, 0xF4, 0xD4, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x80, 0x18, 0x5E, 0x1F, 0x05, 0x97, 0x03, 0x63, +0x80, 0x18, 0x35, 0x22, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x80, 0x18, 0xA8, 0x1E, 0x05, 0x97, 0x03, 0x63, +0x80, 0x18, 0x7F, 0x21, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x80, 0x18, 0xDB, 0x1D, 0x05, 0x97, 0x03, 0x63, +0x80, 0x18, 0xB2, 0x20, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, 0x4B, 0xF2, 0xB5, 0xA3, 0x01, 0x6B, 0xFF, 0x6A, 0xAC, 0xEB, 0x4C, 0xEB, 0x4C, 0xEC, 0x02, 0x23, 0x80, 0x18, 0x5D, 0x00, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, -0x00, 0x18, 0xB3, 0xE1, 0x05, 0x97, 0x03, 0x63, +0x00, 0x18, 0x09, 0xE1, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x4B, 0xF2, 0x6E, 0xA2, 0xFF, 0x68, 0x07, 0x6A, 0x8C, 0xE8, 0x6C, 0xEA, 0x0E, 0xEA, 0x02, 0x2A, 0x80, 0x18, -0x7A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF4, +0xFF, 0x5F, 0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF4, 0x55, 0xA2, 0x0E, 0xEA, 0x02, 0x2A, 0x80, 0x18, -0x62, 0x72, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0xB7, 0x70, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xF0, 0x7E, 0xA2, 0xFF, 0x6C, 0x76, 0x33, 0x0E, 0xEB, 0x0F, 0x2B, 0xA0, 0xF0, 0xBB, 0xA2, 0x7F, 0x6B, 0xAC, 0xEB, 0x8C, 0xEB, -0x09, 0x23, 0x03, 0xF6, 0x60, 0xA2, 0x40, 0x6A, +0x09, 0x23, 0xE3, 0xF5, 0x7C, 0xA2, 0x40, 0x6A, 0x6C, 0xEA, 0x8C, 0xEA, 0x03, 0x22, 0x90, 0x67, -0x00, 0x18, 0xAB, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xA4, 0xF5, 0x7D, 0xA2, -0x0E, 0xEB, 0x11, 0x2B, 0xA4, 0xF5, 0x7C, 0xA2, +0x00, 0x18, 0x01, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0xA4, 0xF5, 0x79, 0xA2, +0x0E, 0xEB, 0x11, 0x2B, 0xA4, 0xF5, 0x78, 0xA2, 0x1F, 0x6C, 0x6A, 0x32, 0x8C, 0xEA, 0x47, 0xE8, 0x01, 0x6C, 0x8C, 0xEA, 0x08, 0x22, 0x02, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x03, 0x22, -0x00, 0x6C, 0x00, 0x18, 0xCA, 0xE7, 0x30, 0xF0, -0x20, 0x6A, 0x0E, 0xF5, 0x7C, 0xA2, 0x0F, 0x6A, +0x00, 0x6C, 0x00, 0x18, 0x20, 0xE7, 0x30, 0xF0, +0x20, 0x6A, 0x0E, 0xF5, 0x78, 0xA2, 0x0F, 0x6A, 0x6C, 0xEA, 0x0E, 0xEA, 0x06, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF5, 0x50, 0x9A, 0x90, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x4B, 0xF2, @@ -23214,27 +22822,27 @@ u8 array_mp_8822c_fw_nic[] = { 0x90, 0x67, 0x80, 0x18, 0x5D, 0x00, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, -0x00, 0x18, 0xC1, 0xE1, 0x05, 0x97, 0x03, 0x63, +0x00, 0x18, 0x17, 0xE1, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF2, 0x7C, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, 0x60, 0x9B, 0xFF, 0x6A, 0x4C, 0xEE, 0x6D, 0xE4, 0x08, 0x68, 0x80, 0xA3, 0xDB, 0xE0, 0x02, 0x67, 0x4C, 0xED, 0x07, 0xEE, 0xD0, 0x67, 0x4C, 0xEF, 0x04, 0xED, 0x4C, 0xEC, 0xCC, 0xEF, 0x0F, 0xE8, 0x8C, 0xE8, 0xE4, 0xED, 0xED, 0xE8, 0x4C, 0xE8, 0x00, 0xC3, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x5C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x40, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, 0x8C, 0xEB, 0x4D, 0xE3, 0x40, 0xA3, 0xFF, 0x6C, 0x8C, 0xEE, 0x08, 0x6B, 0xDB, 0xE3, 0x8C, 0xED, 0x8C, 0xEA, 0x64, 0x67, 0x47, 0xED, 0x67, 0xEE, 0x6C, 0xEA, 0x8C, 0xEA, 0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, -0x74, 0x9B, 0x10, 0xF0, 0x24, 0x6A, 0x51, 0xF0, -0x0D, 0x4A, 0x40, 0xDB, 0x00, 0x68, 0x30, 0xF0, -0x20, 0x6A, 0x24, 0xF0, 0x44, 0x9A, 0x40, 0x9A, +0x74, 0x9B, 0x10, 0xF0, 0x24, 0x6A, 0xB0, 0xF5, +0x05, 0x4A, 0x40, 0xDB, 0x00, 0x68, 0x30, 0xF0, +0x20, 0x6A, 0x24, 0xF0, 0x48, 0x9A, 0x40, 0x9A, 0x21, 0x22, 0xE0, 0xF3, 0x09, 0x70, 0x13, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x68, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x6C, 0x9A, 0x20, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, @@ -23244,12 +22852,12 @@ u8 array_mp_8822c_fw_nic[] = { 0x4C, 0xE8, 0xD9, 0x17, 0x01, 0x6A, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x74, 0x9B, -0x10, 0xF0, 0x24, 0x6A, 0xD1, 0xF0, 0x01, 0x4A, +0x10, 0xF0, 0x24, 0x6A, 0x10, 0xF6, 0x19, 0x4A, 0x40, 0xDB, 0x00, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0x24, 0xF0, 0xA8, 0x9A, 0xFF, 0x6C, 0x40, 0xA5, +0x24, 0xF0, 0xAC, 0x9A, 0xFF, 0x6C, 0x40, 0xA5, 0xA0, 0xA5, 0x8C, 0xEA, 0xAC, 0xEC, 0x4E, 0xEC, 0x19, 0x24, 0x64, 0x73, 0x12, 0x61, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF2, 0x88, 0x9B, 0x40, 0x6D, +0x20, 0x6B, 0x23, 0xF2, 0x8C, 0x9B, 0x40, 0x6D, 0x60, 0x9C, 0xAD, 0xEB, 0x60, 0xDC, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0xA3, 0xF3, 0x80, 0x9B, 0xAD, 0xEC, 0xA3, 0xF3, 0x80, 0xDB, @@ -23258,7 +22866,7 @@ u8 array_mp_8822c_fw_nic[] = { 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0x8C, 0xE9, 0x00, 0x68, 0x2B, 0x10, 0x82, 0xF3, 0x08, 0x70, 0x12, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF2, 0x68, 0x9A, 0x10, 0x6C, +0x20, 0x6A, 0x23, 0xF2, 0x6C, 0x9A, 0x10, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, 0x60, 0xDA, @@ -23266,24 +22874,24 @@ u8 array_mp_8822c_fw_nic[] = { 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, 0x40, 0xEA, 0x33, 0x58, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, -0x50, 0x9A, 0x01, 0x6B, 0x40, 0xA2, 0x6C, 0xEA, +0x54, 0x9A, 0x01, 0x6B, 0x40, 0xA2, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x6A, 0x0C, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x24, 0xF0, 0x4C, 0x9A, 0x01, 0x6B, +0x20, 0x6A, 0x24, 0xF0, 0x50, 0x9A, 0x01, 0x6B, 0x40, 0x9A, 0x42, 0x32, 0x5E, 0x32, 0x6C, 0xEA, 0x2E, 0xEA, 0xCA, 0x2A, 0x43, 0x67, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x74, 0x9B, -0x10, 0xF0, 0x24, 0x6A, 0xB1, 0xF1, 0x09, 0x4A, +0x10, 0xF0, 0x24, 0x6A, 0x10, 0xF7, 0x01, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, -0x50, 0x9A, 0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0x54, 0x9A, 0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, 0xF8, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, -0x74, 0x9B, 0x10, 0xF0, 0x24, 0x6A, 0xB1, 0xF1, -0x0A, 0x4A, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, +0x74, 0x9B, 0x10, 0xF0, 0x24, 0x6A, 0x10, 0xF7, +0x02, 0x4A, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, 0x94, 0x34, 0x4C, 0xED, 0x4C, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, -0x54, 0x9A, 0x80, 0xC2, 0xA0, 0xC2, 0x20, 0xE8, +0x58, 0x9A, 0x80, 0xC2, 0xA0, 0xC2, 0x20, 0xE8, 0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x24, 0xF0, -0x74, 0x9B, 0x4C, 0xEC, 0x94, 0x34, 0x4C, 0xEC, +0x78, 0x9B, 0x4C, 0xEC, 0x94, 0x34, 0x4C, 0xEC, 0x80, 0xC3, 0x60, 0xA3, 0x6C, 0xEA, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xED, 0xFF, 0x75, 0x4C, 0xEC, 0xCC, 0xEA, 0x06, 0x61, 0x30, 0xF0, 0x20, 0x6B, @@ -23300,47 +22908,47 @@ u8 array_mp_8822c_fw_nic[] = { 0xB0, 0x67, 0x0C, 0xEE, 0x6C, 0xEC, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x00, 0x18, 0x6A, 0xE2, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0x18, 0xC0, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x68, 0x9A, 0xEF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x00, 0x6C, 0x00, 0x18, -0x48, 0xE2, 0x00, 0x18, 0x0E, 0xC9, 0x2B, 0x22, +0x9E, 0xE1, 0x00, 0x18, 0x44, 0xC8, 0x2B, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x0B, 0xF2, 0x61, 0xA2, 0x08, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x22, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, -0x78, 0x9A, 0x7F, 0xF7, 0x1F, 0x6A, 0x30, 0xF0, +0x7C, 0x9A, 0x7F, 0xF7, 0x1F, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0x80, 0xAB, 0x07, 0x69, 0x8C, 0xEA, 0x40, 0xCB, 0x80, 0xF3, 0x4C, 0x98, 0x0A, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x44, 0x9A, 0x0A, 0x6C, 0x20, 0xC2, 0x80, 0xF3, 0x4C, 0x98, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF4, 0x44, 0x9A, 0x0A, 0x6C, 0x20, 0xC2, +0xE3, 0xF4, 0x54, 0x9A, 0x0A, 0x6C, 0x20, 0xC2, 0x80, 0xF3, 0x4C, 0x98, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x03, 0xF6, -0x80, 0xA2, 0x7F, 0x6B, 0x8C, 0xEB, 0x03, 0xF6, -0x60, 0xC2, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE3, 0xF5, +0x9C, 0xA2, 0x7F, 0x6B, 0x8C, 0xEB, 0xE3, 0xF5, +0x7C, 0xC2, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x2B, 0xF1, 0x18, 0x48, 0x03, 0xF6, 0x60, 0xA0, +0x2B, 0xF1, 0x18, 0x48, 0xE3, 0xF5, 0x7C, 0xA0, 0x80, 0x6A, 0x4B, 0xEA, 0x6D, 0xEA, 0x83, 0xF6, -0x6C, 0xA0, 0x03, 0xF6, 0x40, 0xC0, 0x01, 0x6A, -0x44, 0xF5, 0x46, 0xC0, 0x04, 0xD3, 0x80, 0xF0, -0x01, 0x23, 0x02, 0x6A, 0x03, 0xF6, 0x44, 0xC0, +0x68, 0xA0, 0xE3, 0xF5, 0x5C, 0xC0, 0x01, 0x6A, +0x44, 0xF5, 0x42, 0xC0, 0x04, 0xD3, 0x80, 0xF0, +0x01, 0x23, 0x02, 0x6A, 0x03, 0xF6, 0x40, 0xC0, 0x5C, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x7D, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, 0x21, 0x6C, 0xFC, 0xF7, 0x18, 0x4C, 0xBF, 0x67, 0xA0, 0xDC, 0x9A, 0xB8, 0x00, 0x65, 0xBB, 0xB8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF2, 0x70, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0x03, 0xF2, 0x94, 0x9C, 0x40, 0x9B, 0x10, 0x6D, +0x03, 0xF2, 0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x03, 0xF2, 0x98, 0x9C, 0x40, 0x9B, 0x10, 0x6D, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF1, 0x54, 0x9A, 0x04, 0x6B, 0xFF, 0x6C, +0x83, 0xF1, 0x58, 0x9A, 0x04, 0x6B, 0xFF, 0x6C, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x00, 0x6B, 0x22, 0xF6, 0x76, 0xC2, -0x03, 0xF6, 0x72, 0xAA, 0x30, 0xF0, 0x20, 0x6A, -0x24, 0xF0, 0x5C, 0x9A, 0x60, 0xCA, 0x30, 0xF0, +0x03, 0xF6, 0x6E, 0xAA, 0x30, 0xF0, 0x20, 0x6A, +0x44, 0xF0, 0x40, 0x9A, 0x60, 0xCA, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x68, 0x9A, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, -0x01, 0x6C, 0x00, 0x18, 0x48, 0xE2, 0xA0, 0xF0, +0x01, 0x6C, 0x00, 0x18, 0x9E, 0xE1, 0xA0, 0xF0, 0x0D, 0x22, 0x58, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x79, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, 0x21, 0x69, 0xDC, 0xF7, @@ -23356,23 +22964,23 @@ u8 array_mp_8822c_fw_nic[] = { 0x10, 0x48, 0x00, 0x98, 0x01, 0x69, 0x2D, 0xE8, 0x77, 0xF0, 0x20, 0x69, 0x80, 0xF0, 0x10, 0x49, 0x00, 0xD9, 0x1A, 0xB8, 0x00, 0x65, 0x3B, 0xB8, -0x00, 0x65, 0x47, 0x10, 0x03, 0xF6, 0x44, 0xC0, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF6, 0x72, 0xA8, -0x24, 0xF0, 0x5C, 0x9A, 0x60, 0xCA, 0x00, 0x18, -0x0E, 0xC9, 0x23, 0x22, 0xC0, 0xF0, 0x69, 0xA0, +0x00, 0x65, 0x47, 0x10, 0x03, 0xF6, 0x40, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF6, 0x6E, 0xA8, +0x44, 0xF0, 0x40, 0x9A, 0x60, 0xCA, 0x00, 0x18, +0x44, 0xC8, 0x23, 0x22, 0xC0, 0xF0, 0x69, 0xA0, 0x08, 0x6A, 0x6C, 0xEA, 0x1E, 0x22, 0x9D, 0x67, 0x67, 0x44, 0x09, 0x4B, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xA3, 0xC3, 0xF3, 0x44, 0x9A, 0x7D, 0x67, 0x80, 0x6D, 0x80, 0xC2, 0x87, 0x43, 0x09, 0x4C, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xA4, 0xE3, 0xF4, -0x44, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, 0x60, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, 0x78, 0x9A, +0x54, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, 0x7C, 0x9A, 0x40, 0xAB, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x68, 0x9A, 0xFF, 0x68, 0x10, 0x6C, 0x40, 0xA3, 0x0C, 0xEA, 0x8D, 0xEA, 0x0C, 0xEA, 0x40, 0xC3, -0x01, 0x6C, 0x00, 0x18, 0x48, 0xE2, 0x30, 0xF0, -0x20, 0x6A, 0x24, 0xF0, 0x70, 0x9A, 0x01, 0x6C, +0x01, 0x6C, 0x00, 0x18, 0x9E, 0xE1, 0x30, 0xF0, +0x20, 0x6A, 0x24, 0xF0, 0x74, 0x9A, 0x01, 0x6C, 0x40, 0xA3, 0x0C, 0xEA, 0x8D, 0xEA, 0x0C, 0xEA, 0x40, 0xC3, 0x20, 0xBA, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, @@ -23391,13 +22999,13 @@ u8 array_mp_8822c_fw_nic[] = { 0x64, 0x67, 0x05, 0x67, 0x0E, 0xD6, 0x06, 0xD7, 0x1A, 0x61, 0xC7, 0x45, 0x0E, 0x95, 0x00, 0x6A, 0x04, 0xD2, 0x6D, 0xED, 0x30, 0xF0, 0x20, 0x6B, -0x05, 0xD2, 0x44, 0xF0, 0x60, 0x9B, 0x30, 0xF0, +0x05, 0xD2, 0x44, 0xF0, 0x64, 0x9B, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, 0x58, 0x9A, 0x05, 0x4E, 0xFF, 0x6F, 0x00, 0x6C, 0x6C, 0xEE, 0x01, 0x4F, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, 0x5C, 0x9A, 0x00, 0x6C, 0x2C, 0x10, 0x47, 0x45, 0x05, 0x4A, 0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x44, 0xF0, 0x40, 0x9A, 0x07, 0x94, 0x30, 0xF0, +0x44, 0xF0, 0x44, 0x9A, 0x07, 0x94, 0x30, 0xF0, 0x20, 0x6F, 0x0E, 0x95, 0x4C, 0xEC, 0x07, 0xD4, 0xE0, 0xF2, 0x58, 0x9F, 0x07, 0x96, 0x06, 0x97, 0x00, 0x69, 0x6D, 0xED, 0x91, 0x67, 0x04, 0xD1, @@ -23446,46 +23054,46 @@ u8 array_mp_8822c_fw_nic[] = { 0x40, 0xA2, 0x10, 0xED, 0x01, 0x6B, 0x47, 0xED, 0x6C, 0xEA, 0x01, 0x10, 0x00, 0x6A, 0x03, 0x91, 0x02, 0x90, 0x02, 0x63, 0x20, 0xE8, 0x00, 0x65, -0xF1, 0x63, 0x1D, 0x62, 0x1C, 0xD1, 0x1B, 0xD0, +0xD8, 0x63, 0x4F, 0x62, 0x4E, 0xD1, 0x4D, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEC, 0x30, 0xF0, -0x20, 0x6B, 0x16, 0xD4, 0xC2, 0xF7, 0x88, 0x9B, +0x20, 0x6B, 0x48, 0xD4, 0xC2, 0xF7, 0x88, 0x9B, 0xC2, 0xF7, 0x08, 0x4B, 0x4C, 0xEE, 0x04, 0xD4, -0x81, 0x9B, 0x64, 0xAB, 0x18, 0xD6, 0x05, 0xD4, +0x81, 0x9B, 0x64, 0xAB, 0x4A, 0xD6, 0x05, 0xD4, 0x9D, 0x67, 0x6C, 0xCC, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0xFF, 0x68, 0xAC, 0xE8, -0xC7, 0xF3, 0xAC, 0xA3, 0x03, 0x6C, 0x8B, 0xEC, -0x24, 0x48, 0xAC, 0xEC, 0xC7, 0xF3, 0x8C, 0xC3, +0xC7, 0xF3, 0xA8, 0xA3, 0x03, 0x6C, 0x8B, 0xEC, +0x24, 0x48, 0xAC, 0xEC, 0xC7, 0xF3, 0x88, 0xC3, 0x4C, 0xE8, 0x00, 0x69, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF2, 0x40, 0x9B, 0x16, 0x94, 0xFF, 0xF7, +0xC0, 0xF2, 0x40, 0x9B, 0x48, 0x94, 0xFF, 0xF7, 0x1F, 0x6B, 0xA1, 0x40, 0x6C, 0xED, 0x40, 0xEA, -0x17, 0xD2, 0x02, 0x2A, 0x02, 0x6A, 0x15, 0x11, +0x49, 0xD2, 0x02, 0x2A, 0x02, 0x6A, 0x15, 0x11, 0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF2, 0x40, 0x9C, -0x16, 0x94, 0xB0, 0x67, 0x40, 0xEA, 0x05, 0x72, -0x06, 0x61, 0x17, 0x92, 0x01, 0x6B, 0x04, 0x5A, -0x03, 0x6A, 0x13, 0x60, 0x06, 0x11, 0x17, 0x92, +0x48, 0x94, 0xB0, 0x67, 0x40, 0xEA, 0x05, 0x72, +0x06, 0x61, 0x49, 0x92, 0x01, 0x6B, 0x04, 0x5A, +0x03, 0x6A, 0x13, 0x60, 0x06, 0x11, 0x49, 0x92, 0xFF, 0xF7, 0x1F, 0x6B, 0x01, 0x49, 0x02, 0x4A, -0x41, 0xE0, 0x18, 0x92, 0x6C, 0xE8, 0x6C, 0xE9, +0x41, 0xE0, 0x4A, 0x92, 0x6C, 0xE8, 0x6C, 0xE9, 0xFC, 0x4A, 0x42, 0xE8, 0x02, 0x61, 0x00, 0x6B, 0x04, 0x10, 0xE0, 0xF1, 0x14, 0x71, 0xD2, 0x61, 0xF3, 0x10, 0xE0, 0xF1, 0x14, 0x71, 0xE0, 0xF0, 0x0F, 0x60, 0x00, 0x6A, 0xE0, 0xF0, 0x0D, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, -0xC7, 0xF3, 0x8C, 0xA3, 0xF7, 0x4A, 0x30, 0xF0, +0xC7, 0xF3, 0x88, 0xA3, 0xF7, 0x4A, 0x30, 0xF0, 0x20, 0x69, 0x8C, 0xEA, 0x05, 0x6C, 0x8B, 0xEC, -0x8C, 0xEA, 0xC7, 0xF3, 0x4C, 0xC3, 0xC0, 0xF2, -0x40, 0x99, 0x16, 0x94, 0xFF, 0xF7, 0x1F, 0x6B, +0x8C, 0xEA, 0xC7, 0xF3, 0x48, 0xC3, 0xC0, 0xF2, +0x40, 0x99, 0x48, 0x94, 0xFF, 0xF7, 0x1F, 0x6B, 0xA2, 0x40, 0x6C, 0xED, 0x40, 0xEA, 0x9D, 0x67, -0x5C, 0xC4, 0xC0, 0xF2, 0x40, 0x99, 0x16, 0x94, +0x5C, 0xC4, 0xC0, 0xF2, 0x40, 0x99, 0x48, 0x94, 0xFF, 0xF7, 0x1F, 0x6B, 0xA3, 0x40, 0x6C, 0xED, 0x40, 0xEA, 0x9D, 0x67, 0x5D, 0xC4, 0xC0, 0xF2, -0x40, 0x99, 0x16, 0x94, 0xA4, 0x40, 0xFF, 0xF7, +0x40, 0x99, 0x48, 0x94, 0xA4, 0x40, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xED, 0x40, 0xEA, 0x9D, 0x67, 0x5E, 0xC4, 0x05, 0x48, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0x00, 0x69, 0x10, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x16, 0x94, 0xC0, 0xF2, 0x40, 0x9A, +0x20, 0x6A, 0x48, 0x94, 0xC0, 0xF2, 0x40, 0x9A, 0xB0, 0x67, 0x01, 0x48, 0x40, 0xEA, 0x9D, 0x67, 0x2D, 0xE4, 0x5F, 0xC3, 0x01, 0x49, 0xFF, 0xF7, -0x1F, 0x6A, 0x4C, 0xE9, 0x4C, 0xE8, 0x17, 0x92, +0x1F, 0x6A, 0x4C, 0xE9, 0x4C, 0xE8, 0x49, 0x92, 0xFD, 0x4A, 0x42, 0xE9, 0xEC, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x0B, 0xF2, 0x56, 0xA2, 0x7D, 0x67, 0x44, 0x32, 0x49, 0xE3, 0x68, 0xAA, 0x1F, 0xF7, @@ -23493,43 +23101,43 @@ u8 array_mp_8822c_fw_nic[] = { 0x01, 0x60, 0x0F, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x0B, 0xF2, 0x56, 0xA2, 0x9D, 0x67, 0x44, 0x32, 0x49, 0xE4, 0x68, 0xAA, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF1, 0x40, 0x9A, 0x49, 0xE3, 0x60, 0xAA, +0x43, 0xF1, 0x44, 0x9A, 0x49, 0xE3, 0x60, 0xAA, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, -0x44, 0x9A, 0x4D, 0xE3, 0x60, 0xAB, 0xFF, 0xF7, +0x48, 0x9A, 0x4D, 0xE3, 0x60, 0xAB, 0xFF, 0xF7, 0x1F, 0x6A, 0x9D, 0x67, 0x6C, 0xEA, 0x7C, 0xA4, 0x0E, 0x2B, 0x7E, 0xA4, 0x01, 0x6C, 0x8C, 0xEB, 0x0A, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, -0x18, 0x4B, 0xC7, 0xF3, 0xAC, 0xA3, 0x08, 0x6C, -0xAD, 0xEC, 0xC7, 0xF3, 0x8C, 0xC3, 0x17, 0x95, +0x18, 0x4B, 0xC7, 0xF3, 0xA8, 0xA3, 0x08, 0x6C, +0xAD, 0xEC, 0xC7, 0xF3, 0x88, 0xC3, 0x49, 0x95, 0xE0, 0xF7, 0x1F, 0x6E, 0x4C, 0xEE, 0x5D, 0x67, 0xFE, 0xA2, 0xFD, 0x4D, 0xFF, 0x6B, 0x00, 0xF0, -0x1F, 0x04, 0x6C, 0xED, 0x00, 0x18, 0xA1, 0xE3, +0x1F, 0x04, 0x6C, 0xED, 0x00, 0x18, 0xF7, 0xE2, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0xC7, 0xF3, 0x8C, 0xA2, 0x04, 0x6B, -0x8D, 0xEB, 0xC7, 0xF3, 0x6C, 0xC2, 0x30, 0xF0, +0x18, 0x4A, 0xC7, 0xF3, 0x88, 0xA2, 0x04, 0x6B, +0x8D, 0xEB, 0xC7, 0xF3, 0x68, 0xC2, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0xC7, 0xF3, -0x6C, 0xA0, 0x0C, 0x6A, 0x6C, 0xEA, 0x10, 0x2A, -0x03, 0xF6, 0x65, 0xA0, 0xFE, 0x4A, 0xC0, 0xF0, +0x68, 0xA0, 0x0C, 0x6A, 0x6C, 0xEA, 0x10, 0x2A, +0x03, 0xF6, 0x61, 0xA0, 0xFE, 0x4A, 0xC0, 0xF0, 0x9E, 0xA0, 0x6C, 0xEA, 0x05, 0x6B, 0x6B, 0xEB, 0x6C, 0xEA, 0x02, 0x4B, 0x6C, 0xEA, 0x03, 0xF6, -0x45, 0xC0, 0x00, 0x18, 0xBB, 0xD0, 0x3A, 0x10, +0x41, 0xC0, 0x00, 0x18, 0x10, 0xD0, 0x3A, 0x10, 0x08, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, -0x16, 0x22, 0x03, 0xF6, 0x45, 0xA0, 0x02, 0x69, +0x16, 0x22, 0x03, 0xF6, 0x41, 0xA0, 0x02, 0x69, 0xC0, 0xF0, 0xC3, 0xA0, 0x2D, 0xEA, 0x03, 0xF6, -0x45, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x41, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, 0xFF, 0x6C, 0x55, 0x4C, 0x00, 0x6D, -0x40, 0xEA, 0x03, 0xF6, 0x40, 0xA0, 0x4D, 0xE9, -0x03, 0xF6, 0x20, 0xC0, 0x07, 0x10, 0x03, 0xF6, -0x65, 0xA0, 0x03, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, -0x03, 0xF6, 0x45, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xC7, 0xF3, 0x8C, 0xA2, +0x40, 0xEA, 0xE3, 0xF5, 0x5C, 0xA0, 0x4D, 0xE9, +0xE3, 0xF5, 0x3C, 0xC0, 0x07, 0x10, 0x03, 0xF6, +0x61, 0xA0, 0x03, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x03, 0xF6, 0x41, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0xC7, 0xF3, 0x88, 0xA2, 0x04, 0x6B, 0x8C, 0xEB, 0x05, 0x23, 0xC0, 0xF0, -0x9E, 0xA2, 0x00, 0x18, 0xA7, 0xD0, 0x0A, 0x10, -0x03, 0xF6, 0x85, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, +0x9E, 0xA2, 0x00, 0x18, 0xFC, 0xCF, 0x0A, 0x10, +0x03, 0xF6, 0x81, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x05, 0x6C, 0x8B, 0xEC, 0x8C, 0xEB, -0x03, 0xF6, 0x65, 0xC2, 0x00, 0x6A, 0x01, 0x10, -0x01, 0x6A, 0x1D, 0x97, 0x1C, 0x91, 0x1B, 0x90, -0x0F, 0x63, 0x00, 0xEF, 0xF8, 0x63, 0x0F, 0x62, +0x03, 0xF6, 0x61, 0xC2, 0x00, 0x6A, 0x01, 0x10, +0x01, 0x6A, 0x4F, 0x97, 0x4E, 0x91, 0x4D, 0x90, +0x28, 0x63, 0x00, 0xEF, 0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, 0xFF, 0x6B, 0xFF, 0xF7, 0x1F, 0x6A, 0xAC, 0xEB, 0x4C, 0xEC, 0x08, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0x09, 0xD4, 0xC2, 0xF7, @@ -23545,19 +23153,19 @@ u8 array_mp_8822c_fw_nic[] = { 0x01, 0x60, 0x10, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0x0B, 0xF2, 0x76, 0xA3, 0x9D, 0x67, 0x64, 0x33, 0x6D, 0xE4, 0x68, 0xAB, 0x30, 0xF0, 0x20, 0x6C, -0x43, 0xF1, 0x80, 0x9C, 0x6D, 0xE1, 0x8D, 0xE3, +0x43, 0xF1, 0x84, 0x9C, 0x6D, 0xE1, 0x8D, 0xE3, 0x80, 0xA3, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF1, 0x64, 0x9B, 0x71, 0xE4, 0x80, 0xA4, +0x43, 0xF1, 0x68, 0x9B, 0x71, 0xE4, 0x80, 0xA4, 0xFF, 0x6B, 0x8C, 0xEB, 0x6E, 0xEA, 0x27, 0x2A, 0x01, 0x49, 0x01, 0x48, 0xFF, 0xF7, 0x1F, 0x6A, 0x06, 0x71, 0x4C, 0xE8, 0xC8, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0xC7, 0xF3, -0x6C, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, 0x17, 0x22, +0x68, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, 0x17, 0x22, 0x09, 0x94, 0x08, 0x95, 0x0A, 0x96, 0x00, 0x18, -0xC6, 0xE3, 0x12, 0x22, 0xC7, 0xF3, 0x8C, 0xA0, +0x1C, 0xE3, 0x12, 0x22, 0xC7, 0xF3, 0x88, 0xA0, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xC7, 0xF3, -0x6C, 0xC0, 0x30, 0xF0, 0x20, 0x6B, 0x44, 0xF0, -0x84, 0x9B, 0xFF, 0xF6, 0x1F, 0x6B, 0xA0, 0xAC, +0x68, 0xC0, 0x30, 0xF0, 0x20, 0x6B, 0x44, 0xF0, +0x88, 0x9B, 0xFF, 0xF6, 0x1F, 0x6B, 0xA0, 0xAC, 0xAC, 0xEB, 0x60, 0xCC, 0x01, 0x10, 0x00, 0x6A, 0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, @@ -23572,31 +23180,31 @@ u8 array_mp_8822c_fw_nic[] = { 0x6C, 0xED, 0x40, 0xEA, 0x04, 0x6B, 0x6B, 0xEB, 0x4C, 0xEB, 0x0C, 0xEB, 0x50, 0x73, 0x1F, 0x60, 0x80, 0x73, 0x3D, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xE7, 0xF1, 0x78, 0xA2, +0x2B, 0xF1, 0x18, 0x4A, 0xE7, 0xF1, 0x74, 0xA2, 0x01, 0x6C, 0x8C, 0xEB, 0x0C, 0xEB, 0x08, 0x23, -0x07, 0xF3, 0xAC, 0xA2, 0x7F, 0x6B, 0xAC, 0xEB, -0x03, 0x73, 0x02, 0x61, 0x07, 0xF2, 0x84, 0xC2, +0x07, 0xF3, 0xA8, 0xA2, 0x7F, 0x6B, 0xAC, 0xEB, +0x03, 0x73, 0x02, 0x61, 0x07, 0xF2, 0x80, 0xC2, 0x05, 0x95, 0x04, 0x94, 0x05, 0x96, 0x18, 0x4D, 0x06, 0x97, 0xB5, 0xE1, 0xFF, 0x6A, 0x4C, 0xED, -0x00, 0x18, 0x6D, 0xE4, 0x20, 0x10, 0x30, 0xF0, +0x00, 0x18, 0xC3, 0xE3, 0x20, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE7, 0xF1, -0x98, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, 0x0C, 0xEB, -0x16, 0x23, 0x07, 0xF3, 0x6C, 0xA2, 0x7F, 0x6D, +0x94, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, 0x0C, 0xEB, +0x16, 0x23, 0x07, 0xF3, 0x68, 0xA2, 0x7F, 0x6D, 0xAC, 0xEB, 0x03, 0x73, 0x10, 0x61, 0x07, 0xF3, -0x90, 0x9A, 0x80, 0x6B, 0x6B, 0xEB, 0xC1, 0xA4, +0x8C, 0x9A, 0x80, 0x6B, 0x6B, 0xEB, 0xC1, 0xA4, 0xCC, 0xEB, 0x0C, 0xEB, 0x08, 0x23, 0x07, 0xF2, -0x45, 0xA2, 0x01, 0x72, 0x04, 0x61, 0xCC, 0xED, -0xA1, 0xC4, 0x80, 0x18, 0x61, 0x67, 0x0B, 0x97, +0x41, 0xA2, 0x01, 0x72, 0x04, 0x61, 0xCC, 0xED, +0xA1, 0xC4, 0x80, 0x18, 0x85, 0x65, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x4C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x50, 0x9A, 0xFF, 0x6B, 0xFF, 0xF7, 0x1F, 0x69, 0x40, 0xA2, 0x00, 0x6C, 0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF2, 0x44, 0x9A, 0x05, 0xD3, 0x40, 0xAA, +0x03, 0xF2, 0x48, 0x9A, 0x05, 0xD3, 0x40, 0xAA, 0x4C, 0xE9, 0x63, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x44, 0xF0, 0xC8, 0x9A, 0x30, 0xF0, 0x20, 0x6D, +0x44, 0xF0, 0xCC, 0x9A, 0x30, 0xF0, 0x20, 0x6D, 0x91, 0x67, 0x8E, 0xF3, 0x18, 0x4D, 0xE5, 0xF6, -0x1F, 0x6F, 0x00, 0x18, 0x4E, 0xE3, 0x30, 0xF0, +0x1F, 0x6F, 0x00, 0x18, 0xA4, 0xE2, 0x30, 0xF0, 0x20, 0x6A, 0x8E, 0xF3, 0x78, 0x9A, 0x0F, 0x6D, 0xFF, 0xF7, 0x1F, 0x6E, 0x42, 0xA3, 0xE1, 0xA3, 0x83, 0xA3, 0x4C, 0xED, 0x3F, 0x68, 0x40, 0xA3, @@ -23606,8 +23214,8 @@ u8 array_mp_8822c_fw_nic[] = { 0x1F, 0x6B, 0xA1, 0xE0, 0x6C, 0xE8, 0xD7, 0xF7, 0x01, 0x4B, 0xEC, 0xEB, 0x4C, 0xEB, 0x29, 0x2B, 0x91, 0x67, 0x4C, 0xED, 0xD0, 0x67, 0x00, 0x18, -0xAB, 0xE4, 0x23, 0x10, 0x30, 0xF0, 0x20, 0x6C, -0xE3, 0xF0, 0x94, 0x9C, 0x07, 0x68, 0xE0, 0xA4, +0x01, 0xE4, 0x23, 0x10, 0x30, 0xF0, 0x20, 0x6C, +0xE3, 0xF0, 0x98, 0x9C, 0x07, 0x68, 0xE0, 0xA4, 0x80, 0xA4, 0x8C, 0xE8, 0x10, 0x6C, 0xEC, 0xEC, 0x14, 0x30, 0x4C, 0xEC, 0x4C, 0xE8, 0x11, 0x24, 0x92, 0xA3, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, @@ -23620,7 +23228,7 @@ u8 array_mp_8822c_fw_nic[] = { 0x04, 0x94, 0x22, 0x67, 0xFF, 0x6A, 0x01, 0x4C, 0x4C, 0xEC, 0x04, 0xD4, 0x04, 0x96, 0x05, 0x92, 0x43, 0xEE, 0x98, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF2, 0x4C, 0x9A, 0x40, 0xA2, 0x0A, 0x22, +0x43, 0xF2, 0x50, 0x9A, 0x40, 0xA2, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xF0, 0x64, 0x9A, 0x00, 0xF2, 0x00, 0x6C, 0x8D, 0xEB, 0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6A, @@ -23628,7 +23236,7 @@ u8 array_mp_8822c_fw_nic[] = { 0x00, 0xF2, 0x01, 0x6C, 0x8B, 0xEC, 0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0xE2, 0xE4, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x38, 0xE4, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6B, 0xFF, 0xF7, 0x1F, 0x6A, 0xAC, 0xEB, 0x8C, 0xEA, 0x08, 0x23, @@ -23638,27 +23246,27 @@ u8 array_mp_8822c_fw_nic[] = { 0x4F, 0xEA, 0x8C, 0xEA, 0xC9, 0xF2, 0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF2, 0x60, 0xAA, 0x02, 0x6A, 0x30, 0xF0, 0x20, 0x6C, 0x6C, 0xEA, -0x4B, 0xEA, 0x44, 0xF0, 0x84, 0x9C, 0xC0, 0xF7, +0x4B, 0xEA, 0x44, 0xF0, 0x88, 0x9C, 0xC0, 0xF7, 0x42, 0x32, 0x40, 0x32, 0x40, 0xCC, 0x1C, 0x6A, 0x6C, 0xEA, 0x0B, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF0, 0x74, 0x9A, 0xFF, 0x6C, 0x08, 0x6D, +0xE3, 0xF0, 0x78, 0x9A, 0xFF, 0x6C, 0x08, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF2, 0x40, 0xAA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF0, 0x74, 0x9A, 0xFF, 0x6C, 0x80, 0x6D, +0xE3, 0xF0, 0x78, 0x9A, 0xFF, 0x6C, 0x80, 0x6D, 0x40, 0xA3, 0xAB, 0xED, 0x8C, 0xEA, 0xAD, 0xEA, -0x0B, 0x10, 0x00, 0x18, 0x32, 0xE5, 0x00, 0x18, -0xDC, 0xEC, 0xFB, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF0, 0x74, 0x9A, 0x7F, 0x6A, 0x80, 0xA3, +0x0B, 0x10, 0x00, 0x18, 0x88, 0xE4, 0x00, 0x18, +0x32, 0xEC, 0xFB, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF0, 0x78, 0x9A, 0x7F, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x24, 0x67, 0x00, 0x18, -0x10, 0xC3, 0x04, 0xD2, 0x04, 0x93, 0x00, 0x6A, +0x03, 0xC2, 0x04, 0xD2, 0x04, 0x93, 0x00, 0x6A, 0x30, 0x2B, 0x1E, 0x21, 0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF2, 0xA2, 0xA2, 0x30, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0x58, 0xED, 0x0A, 0xF1, 0x08, 0x48, 0x91, 0x67, 0xC2, 0x67, 0x12, 0xED, 0xB5, 0xE0, -0x00, 0x18, 0xEC, 0xD7, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0x18, 0x42, 0xD7, 0x30, 0xF0, 0x20, 0x6B, 0xC9, 0xF2, 0x42, 0xA3, 0x30, 0x6B, 0x78, 0xEA, 0x12, 0xEA, 0x01, 0xE2, 0x5D, 0x67, 0x67, 0x42, 0x09, 0x4B, 0x40, 0xA3, 0x20, 0xF0, 0x4E, 0xC0, @@ -23669,12 +23277,12 @@ u8 array_mp_8822c_fw_nic[] = { 0x01, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x08, 0xD4, 0x09, 0xD5, -0x0A, 0xD6, 0x0B, 0xD7, 0x00, 0x18, 0x14, 0xC3, +0x0A, 0xD6, 0x0B, 0xD7, 0x00, 0x18, 0x07, 0xC2, 0x02, 0x67, 0x00, 0x6A, 0x1A, 0x28, 0x30, 0xF0, 0x20, 0x69, 0xC9, 0xF2, 0x86, 0xA1, 0x30, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x78, 0xEC, 0x0A, 0xF4, 0x08, 0x4A, 0xC3, 0x67, 0x08, 0x05, 0x12, 0xEC, -0x91, 0xE2, 0x00, 0x18, 0xEC, 0xD7, 0x30, 0xF0, +0x91, 0xE2, 0x00, 0x18, 0x42, 0xD7, 0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF2, 0x67, 0xA2, 0xC9, 0xF2, 0x06, 0xC1, 0x01, 0x4B, 0xC9, 0xF2, 0x67, 0xC2, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, @@ -23694,21 +23302,21 @@ u8 array_mp_8822c_fw_nic[] = { 0xFF, 0x68, 0x26, 0x67, 0x0C, 0xE9, 0x53, 0x71, 0x0C, 0xEC, 0x0C, 0xED, 0x09, 0x60, 0x06, 0x2C, 0x30, 0xF0, 0x20, 0x6A, 0xAE, 0xF4, 0x52, 0xA2, -0xAD, 0xEA, 0x0B, 0x10, 0x00, 0x18, 0xA2, 0xE5, +0xAD, 0xEA, 0x0B, 0x10, 0x00, 0x18, 0xF8, 0xE4, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x63, 0xF3, 0x7B, 0xA2, 0x63, 0xF3, 0x5A, 0xA2, -0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, -0x7C, 0x9B, 0x0C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, +0x60, 0x9B, 0x0C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xAE, 0xF4, 0x30, 0xC2, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x0A, 0xD4, 0x0B, 0xD5, 0x0C, 0xD6, 0x0D, 0xD7, -0x00, 0x18, 0x0B, 0xC3, 0x04, 0xD2, 0x04, 0x93, +0x00, 0x18, 0xFE, 0xC1, 0x04, 0xD2, 0x04, 0x93, 0x00, 0x6A, 0x05, 0xD2, 0x54, 0x2B, 0x30, 0xF0, 0x20, 0x69, 0xC9, 0xF2, 0x83, 0xA1, 0x30, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0x58, 0xEC, 0x0A, 0xF1, 0x08, 0x48, 0x0A, 0x05, 0xC2, 0x67, 0x12, 0xEC, -0x91, 0xE0, 0x00, 0x18, 0xEC, 0xD7, 0xC9, 0xF2, +0x91, 0xE0, 0x00, 0x18, 0x42, 0xD7, 0xC9, 0xF2, 0x83, 0xA1, 0x30, 0x6D, 0x30, 0xF0, 0x20, 0x6A, 0xB8, 0xEC, 0x02, 0xF1, 0x60, 0xA2, 0x12, 0xEC, 0x01, 0xE4, 0x20, 0xF0, 0x6E, 0xC0, 0x01, 0x4B, @@ -23719,7 +23327,7 @@ u8 array_mp_8822c_fw_nic[] = { 0xC9, 0xF2, 0x83, 0xA1, 0x30, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0x58, 0xEC, 0x0A, 0xF1, 0x08, 0x48, 0x04, 0xD4, 0x12, 0xEA, 0x09, 0xE2, 0x20, 0xF0, -0x4E, 0xA2, 0x05, 0xD2, 0x00, 0x18, 0x00, 0xDE, +0x4E, 0xA2, 0x05, 0xD2, 0x00, 0x18, 0x5F, 0xDD, 0x04, 0x95, 0x06, 0x6C, 0x98, 0xED, 0x12, 0xEC, 0x01, 0x4C, 0x8C, 0x34, 0x01, 0xE4, 0x61, 0xD8, 0x40, 0xD8, 0xC9, 0xF2, 0x43, 0xA1, 0x0F, 0x6B, @@ -23729,35 +23337,35 @@ u8 array_mp_8822c_fw_nic[] = { 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD0, 0x0E, 0xD4, 0x0F, 0xD5, 0x10, 0xD6, -0x11, 0xD7, 0x00, 0x18, 0x14, 0xC3, 0x00, 0x68, +0x11, 0xD7, 0x00, 0x18, 0x07, 0xC2, 0x00, 0x68, 0x1C, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, 0x02, 0x67, 0x00, 0x18, -0x00, 0xDE, 0x13, 0x20, 0x12, 0xD2, 0x13, 0xD3, +0x5F, 0xDD, 0x13, 0x20, 0x12, 0xD2, 0x13, 0xD3, 0x00, 0x6A, 0x04, 0x04, 0x12, 0x03, 0x05, 0x10, 0x59, 0xE3, 0xC0, 0xA6, 0x55, 0xE4, 0x01, 0x4A, 0xC0, 0xC5, 0x20, 0x5A, 0xF9, 0x61, 0x0E, 0x94, 0x0F, 0x95, 0x10, 0x96, 0x11, 0x97, 0x00, 0x18, -0x81, 0xE5, 0x50, 0x67, 0x0D, 0x97, 0x0C, 0x90, +0xD7, 0xE4, 0x50, 0x67, 0x0D, 0x97, 0x0C, 0x90, 0x07, 0x63, 0x00, 0xEF, 0xF3, 0x63, 0x19, 0x62, -0x00, 0x18, 0x10, 0xC3, 0x21, 0x22, 0x24, 0x10, +0x00, 0x18, 0x03, 0xC2, 0x21, 0x22, 0x24, 0x10, 0x7D, 0x67, 0x40, 0xF0, 0x5F, 0xA3, 0x1C, 0x2A, -0x0C, 0x92, 0x1A, 0x22, 0x00, 0x18, 0x00, 0xDE, +0x0C, 0x92, 0x1A, 0x22, 0x00, 0x18, 0x5F, 0xDD, 0x0E, 0x95, 0x12, 0x04, 0xB7, 0xE2, 0x0C, 0x92, 0x40, 0xEA, 0x12, 0x22, 0x00, 0x6A, 0x04, 0x04, 0x10, 0x03, 0x05, 0x10, 0x59, 0xE3, 0xC0, 0xA6, 0x55, 0xE4, 0x01, 0x4A, 0xC0, 0xC5, 0x20, 0x5A, 0xF9, 0x61, 0x0C, 0x94, 0x0D, 0x95, 0x0E, 0x96, -0x0F, 0x97, 0x00, 0x18, 0xF9, 0xE5, 0x04, 0x10, -0x0C, 0x04, 0x00, 0x18, 0x61, 0xE5, 0xDC, 0x2A, +0x0F, 0x97, 0x00, 0x18, 0x4F, 0xE5, 0x04, 0x10, +0x0C, 0x04, 0x00, 0x18, 0xB7, 0xE4, 0xDC, 0x2A, 0x19, 0x97, 0x0D, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x24, 0x67, 0x00, 0x18, 0x9E, 0xE5, 0x04, 0xD2, +0x24, 0x67, 0x00, 0x18, 0xF4, 0xE4, 0x04, 0xD2, 0x04, 0x93, 0x00, 0x6A, 0x2E, 0x2B, 0x00, 0x18, -0x00, 0xDE, 0x1E, 0x21, 0x30, 0xF0, 0x20, 0x6A, +0x5F, 0xDD, 0x1E, 0x21, 0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF2, 0xA5, 0xA2, 0x30, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0x58, 0xED, 0x0A, 0xF4, 0x08, 0x48, 0x91, 0x67, 0xC2, 0x67, 0x12, 0xED, 0xB5, 0xE0, -0x00, 0x18, 0xEC, 0xD7, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0x18, 0x42, 0xD7, 0x30, 0xF0, 0x20, 0x6B, 0xC9, 0xF2, 0x45, 0xA3, 0x30, 0x6B, 0x78, 0xEA, 0x12, 0xEA, 0x01, 0xE2, 0x5D, 0x67, 0x67, 0x42, 0x09, 0x4B, 0x40, 0xA3, 0x20, 0xF0, 0x4E, 0xC0, @@ -23766,21 +23374,21 @@ u8 array_mp_8822c_fw_nic[] = { 0x67, 0xA2, 0xFF, 0x4B, 0xC9, 0xF2, 0x67, 0xC2, 0x01, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xF7, 0x63, 0x11, 0x62, -0x00, 0x18, 0x9E, 0xE5, 0x0D, 0x2A, 0x04, 0x04, -0x00, 0x18, 0x26, 0xE6, 0x09, 0x22, 0x05, 0x92, -0x07, 0x22, 0x00, 0x18, 0x00, 0xDE, 0x06, 0x95, +0x00, 0x18, 0xF4, 0xE4, 0x0D, 0x2A, 0x04, 0x04, +0x00, 0x18, 0x7C, 0xE5, 0x09, 0x22, 0x05, 0x92, +0x07, 0x22, 0x00, 0x18, 0x5F, 0xDD, 0x06, 0x95, 0x02, 0x6C, 0xB7, 0xE2, 0x05, 0x92, 0x40, 0xEA, 0x11, 0x97, 0x09, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xF7, 0x63, 0x11, 0x62, 0x04, 0x04, 0x00, 0x18, -0x26, 0xE6, 0x09, 0x22, 0x05, 0x92, 0x07, 0x22, -0x00, 0x18, 0x00, 0xDE, 0x06, 0x95, 0x00, 0x6C, +0x7C, 0xE5, 0x09, 0x22, 0x05, 0x92, 0x07, 0x22, +0x00, 0x18, 0x5F, 0xDD, 0x06, 0x95, 0x00, 0x6C, 0xB7, 0xE2, 0x05, 0x92, 0x40, 0xEA, 0x11, 0x97, 0x09, 0x63, 0x00, 0xEF, 0xF6, 0x63, 0x13, 0x62, 0x12, 0xD1, 0x11, 0xD0, 0x04, 0x00, 0x24, 0x67, 0x00, 0x6D, 0x90, 0x67, 0x30, 0x6E, 0x00, 0x18, -0xE7, 0xD7, 0x90, 0x67, 0x00, 0x18, 0x26, 0xE6, -0x10, 0x22, 0x00, 0x18, 0x00, 0xDE, 0x08, 0x90, -0x03, 0xE2, 0x00, 0x18, 0xC7, 0xF1, 0x04, 0x22, +0x3D, 0xD7, 0x90, 0x67, 0x00, 0x18, 0x7C, 0xE5, +0x10, 0x22, 0x00, 0x18, 0x5F, 0xDD, 0x08, 0x90, +0x03, 0xE2, 0x00, 0x18, 0x1D, 0xF1, 0x04, 0x22, 0x05, 0x92, 0x91, 0x67, 0x04, 0x2A, 0x05, 0x10, 0x05, 0x92, 0x03, 0x22, 0x00, 0x6C, 0xB0, 0x67, 0x40, 0xEA, 0x13, 0x97, 0x12, 0x91, 0x11, 0x90, @@ -23791,7 +23399,7 @@ u8 array_mp_8822c_fw_nic[] = { 0x30, 0x6C, 0x30, 0xF0, 0x20, 0x6B, 0x98, 0xED, 0x0A, 0xF4, 0x08, 0x4B, 0x12, 0xEC, 0x6D, 0xE4, 0x20, 0xF0, 0x6E, 0xA3, 0x6E, 0xEA, 0x26, 0x2A, -0x03, 0x6C, 0x00, 0x18, 0x59, 0xE6, 0x22, 0x10, +0x03, 0x6C, 0x00, 0x18, 0xAF, 0xE5, 0x22, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xC9, 0xF2, 0x64, 0xA3, 0x17, 0x2B, 0x1C, 0x10, 0xA0, 0xA4, 0x4E, 0xED, 0x0C, 0x2D, 0x30, 0x6C, 0x98, 0xEB, 0x30, 0xF0, @@ -23802,59 +23410,59 @@ u8 array_mp_8822c_fw_nic[] = { 0x30, 0xF0, 0x20, 0x6C, 0x2A, 0xF1, 0x16, 0x4C, 0x00, 0x6B, 0xE4, 0x17, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x01, 0x6C, 0x00, 0x18, 0x59, 0xE6, 0x05, 0x97, +0x01, 0x6C, 0x00, 0x18, 0xAF, 0xE5, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xF6, 0x63, 0x13, 0x62, -0x12, 0xD1, 0x11, 0xD0, 0x00, 0x18, 0x2F, 0xD7, +0x12, 0xD1, 0x11, 0xD0, 0x00, 0x18, 0x85, 0xD6, 0x20, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0xC9, 0xF2, 0xA5, 0xA3, 0x30, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x78, 0xED, 0x0A, 0xF4, 0x08, 0x4A, 0x04, 0x04, 0xC3, 0x67, 0x12, 0xED, 0xB5, 0xE2, 0x00, 0x18, -0xEC, 0xD7, 0x08, 0x90, 0x09, 0x91, 0x00, 0x18, -0x00, 0xDE, 0x03, 0xE2, 0x03, 0xEA, 0x58, 0x67, +0x42, 0xD7, 0x08, 0x90, 0x09, 0x91, 0x00, 0x18, +0x5F, 0xDD, 0x03, 0xE2, 0x03, 0xEA, 0x58, 0x67, 0x27, 0xE3, 0x4B, 0xE1, 0x03, 0x2A, 0x82, 0xF3, -0x08, 0x58, 0x07, 0x61, 0x00, 0x18, 0x8D, 0xE6, -0x02, 0x10, 0x00, 0x18, 0x50, 0xE6, 0x00, 0x18, -0x0F, 0xE6, 0x13, 0x97, 0x12, 0x91, 0x11, 0x90, +0x08, 0x58, 0x07, 0x61, 0x00, 0x18, 0xE3, 0xE5, +0x02, 0x10, 0x00, 0x18, 0xA6, 0xE5, 0x00, 0x18, +0x65, 0xE5, 0x13, 0x97, 0x12, 0x91, 0x11, 0x90, 0x0A, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0x9E, 0xE5, 0x03, 0x2A, 0x00, 0x18, -0x91, 0xE6, 0x0B, 0x10, 0x00, 0x18, 0x10, 0xC3, -0x06, 0x2A, 0x00, 0x18, 0x2F, 0xD7, 0x05, 0x22, -0x00, 0x18, 0x0F, 0xE6, 0x02, 0x10, 0x00, 0x18, -0x2F, 0xD7, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x00, 0x18, 0xF4, 0xE4, 0x03, 0x2A, 0x00, 0x18, +0xE7, 0xE5, 0x0B, 0x10, 0x00, 0x18, 0x03, 0xC2, +0x06, 0x2A, 0x00, 0x18, 0x85, 0xD6, 0x05, 0x22, +0x00, 0x18, 0x65, 0xE5, 0x02, 0x10, 0x00, 0x18, +0x85, 0xD6, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xF0, 0x64, 0x9A, 0x10, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0xEF, 0xF6, 0x55, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0xEF, 0xF6, 0x51, 0xA2, 0xFF, 0x63, 0x05, 0x5A, 0x36, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x48, 0x32, 0xE2, 0xF7, 0x00, 0x4B, 0x4D, 0xE3, 0x40, 0x9B, 0x00, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF1, 0x50, 0x9A, 0xFF, 0xF7, +0x20, 0x6A, 0x03, 0xF1, 0x54, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, 0x40, 0x9A, 0x1A, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF1, 0x50, 0x9A, 0x09, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF0, 0x44, 0x9A, +0x20, 0x6A, 0x03, 0xF1, 0x54, 0x9A, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF0, 0x48, 0x9A, 0x0D, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF0, -0x44, 0x9A, 0x40, 0x9A, 0x50, 0x32, 0x00, 0xF5, +0x48, 0x9A, 0x40, 0x9A, 0x50, 0x32, 0x00, 0xF5, 0x42, 0x32, 0x08, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x64, 0xF0, 0x48, 0x9A, 0x40, 0x9A, 0xE1, 0xF7, +0x64, 0xF0, 0x4C, 0x9A, 0x40, 0x9A, 0xE1, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, 0x00, 0xD2, 0x00, 0x93, 0xE0, 0xF3, 0x08, 0x6A, 0x60, 0x33, 0x68, 0x33, 0x5B, 0xEB, 0x01, 0x2A, 0xE5, 0xE8, 0x12, 0xEA, 0x01, 0x10, 0x66, 0x6A, 0x00, 0xD2, 0x00, 0x92, 0x01, 0x63, 0x20, 0xE8, 0xFF, 0x63, 0x01, 0xD0, 0x15, 0x2C, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, -0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF1, -0x94, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF1, +0x98, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, 0x60, 0xDA, 0x5D, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xA4, 0xF5, 0xBC, 0xA2, +0x2B, 0xF1, 0x18, 0x4A, 0xA4, 0xF5, 0xB8, 0xA2, 0x03, 0x6B, 0x6B, 0xEB, 0xAC, 0xEB, 0xA4, 0xF5, -0x7C, 0xC2, 0xC4, 0xF5, 0xC0, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0x0F, 0xF7, 0x14, 0x4A, 0x00, 0x6D, +0x78, 0xC2, 0xA4, 0xF5, 0xDC, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x0F, 0xF7, 0x10, 0x4A, 0x00, 0x6D, 0x18, 0x6F, 0xF8, 0xED, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x12, 0xEF, 0x6D, 0xE7, -0xC4, 0xF5, 0x10, 0xA3, 0x01, 0x6F, 0xEC, 0xE8, -0x23, 0x20, 0xC4, 0xF5, 0x70, 0xA3, 0x66, 0x33, +0xC4, 0xF5, 0x0C, 0xA3, 0x01, 0x6F, 0xEC, 0xE8, +0x23, 0x20, 0xC4, 0xF5, 0x6C, 0xA3, 0x66, 0x33, 0xEC, 0xEB, 0xFF, 0x6F, 0xEC, 0xEB, 0x1C, 0x23, 0xFF, 0xF7, 0x78, 0x9A, 0x9B, 0xEB, 0x01, 0x2C, 0xE5, 0xE8, 0x12, 0xEB, 0xFF, 0xF7, 0x7C, 0xDA, @@ -23865,159 +23473,159 @@ u8 array_mp_8822c_fw_nic[] = { 0x01, 0x6F, 0xFF, 0xF7, 0xFC, 0xDA, 0x60, 0xDA, 0x01, 0x4D, 0x0A, 0x75, 0x18, 0x4A, 0xCC, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0xC4, 0xF5, 0x64, 0x9A, 0xC4, 0xF5, 0x80, 0xDA, +0xC4, 0xF5, 0x60, 0x9A, 0xA4, 0xF5, 0x9C, 0xDA, 0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, 0xA4, 0xF5, -0x9C, 0xA2, 0x12, 0xEB, 0xC4, 0xF5, 0x68, 0xDA, -0x78, 0x67, 0xC4, 0xF5, 0x6C, 0xDA, 0x02, 0x6B, -0x8D, 0xEB, 0xA4, 0xF5, 0x7C, 0xC2, 0x01, 0x90, +0x98, 0xA2, 0x12, 0xEB, 0xC4, 0xF5, 0x64, 0xDA, +0x78, 0x67, 0xC4, 0xF5, 0x68, 0xDA, 0x02, 0x6B, +0x8D, 0xEB, 0xA4, 0xF5, 0x78, 0xC2, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, -0x18, 0x48, 0xA4, 0xF5, 0x5C, 0xA0, 0x03, 0x6B, +0x18, 0x48, 0xA4, 0xF5, 0x58, 0xA0, 0x03, 0x6B, 0x4C, 0xEB, 0x00, 0x6A, 0x26, 0x2B, 0x30, 0xF0, -0x20, 0x6A, 0x64, 0xF0, 0x4C, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x64, 0xF0, 0x50, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xFF, 0x6E, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, 0xEF, 0xF6, -0x14, 0x4C, 0x00, 0x6D, 0x05, 0x4E, 0x40, 0xEA, -0x66, 0x6A, 0xC4, 0xF5, 0x40, 0xD8, 0xC4, 0xF5, -0x48, 0xD8, 0x01, 0x6A, 0x4B, 0xEA, 0xA4, 0xF5, -0x9C, 0xA0, 0xA4, 0xF5, 0x5D, 0xC0, 0x7D, 0x6A, +0x10, 0x4C, 0x00, 0x6D, 0x05, 0x4E, 0x40, 0xEA, +0x66, 0x6A, 0xA4, 0xF5, 0x5C, 0xD8, 0xC4, 0xF5, +0x44, 0xD8, 0x01, 0x6A, 0x4B, 0xEA, 0xA4, 0xF5, +0x98, 0xA0, 0xA4, 0xF5, 0x59, 0xC0, 0x7D, 0x6A, 0x4B, 0xEA, 0x01, 0x6B, 0x8C, 0xEA, 0x6D, 0xEA, -0xA4, 0xF5, 0x5C, 0xC0, 0xC4, 0xF5, 0x64, 0xD8, +0xA4, 0xF5, 0x58, 0xC0, 0xC4, 0xF5, 0x60, 0xD8, 0x43, 0x67, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, -0x18, 0x48, 0xA4, 0xF5, 0x9C, 0xA0, 0x01, 0x6B, +0x18, 0x48, 0xA4, 0xF5, 0x98, 0xA0, 0x01, 0x6B, 0x00, 0x6A, 0x8C, 0xEB, 0x22, 0x23, 0x30, 0xF0, -0x20, 0x6A, 0x64, 0xF0, 0x4C, 0x9A, 0x00, 0x6B, +0x20, 0x6A, 0x64, 0xF0, 0x50, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x03, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, -0xA4, 0xF5, 0x5C, 0xC0, 0x00, 0x18, 0xBA, 0xE6, -0x04, 0xD2, 0x04, 0x94, 0x00, 0x18, 0xDB, 0xE6, -0xA4, 0xF5, 0x7C, 0xA0, 0x02, 0x6A, 0xC4, 0xF5, -0xC4, 0x98, 0x6D, 0xEA, 0xA4, 0xF5, 0x5C, 0xC0, +0xA4, 0xF5, 0x58, 0xC0, 0x00, 0x18, 0x10, 0xE6, +0x04, 0xD2, 0x04, 0x94, 0x00, 0x18, 0x31, 0xE6, +0xA4, 0xF5, 0x78, 0xA0, 0x02, 0x6A, 0xC4, 0xF5, +0xC0, 0x98, 0x6D, 0xEA, 0xA4, 0xF5, 0x58, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, 0x42, 0xF1, 0x1C, 0x6C, 0x01, 0x6D, 0x40, 0xEA, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, -0x2B, 0xF1, 0x18, 0x4B, 0xA4, 0xF5, 0xBC, 0xA3, +0x2B, 0xF1, 0x18, 0x4B, 0xA4, 0xF5, 0xB8, 0xA3, 0x02, 0x6C, 0x00, 0x6A, 0xAC, 0xEC, 0x0C, 0x24, -0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF0, 0x4C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF0, 0x50, 0x9A, 0x00, 0x6C, 0x80, 0xC2, 0x03, 0x6A, 0x4B, 0xEA, -0xAC, 0xEA, 0xA4, 0xF5, 0x5C, 0xC3, 0x01, 0x6A, +0xAC, 0xEA, 0xA4, 0xF5, 0x58, 0xC3, 0x01, 0x6A, 0x20, 0xE8, 0x00, 0x65, 0x00, 0x6A, 0x18, 0x6C, 0x98, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x01, 0x4A, 0x0A, 0x72, 0x12, 0xEC, -0x71, 0xE4, 0xC4, 0xF5, 0xB0, 0xA4, 0x02, 0x6B, -0x6B, 0xEB, 0xAC, 0xEB, 0xC4, 0xF5, 0x70, 0xC4, +0x71, 0xE4, 0xC4, 0xF5, 0xAC, 0xA4, 0x02, 0x6B, +0x6B, 0xEB, 0xAC, 0xEB, 0xC4, 0xF5, 0x6C, 0xC4, 0xEE, 0x61, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0xEF, 0xF6, 0x54, 0xA2, 0x01, 0x6B, 0x4C, 0xEB, +0xEF, 0xF6, 0x50, 0xA2, 0x01, 0x6B, 0x4C, 0xEB, 0x00, 0x6A, 0x1C, 0x23, 0x30, 0xF0, 0x20, 0x6A, -0x0F, 0xF7, 0x18, 0x4A, 0x00, 0x6B, 0xA0, 0x9A, +0x0F, 0xF7, 0x14, 0x4A, 0x00, 0x6B, 0xA0, 0x9A, 0x8E, 0xED, 0x0F, 0x2D, 0x18, 0x6E, 0xD8, 0xEB, 0x30, 0xF0, 0x20, 0x6D, 0x2B, 0xF1, 0x18, 0x4D, -0x12, 0xEE, 0xB9, 0xE6, 0xC4, 0xF5, 0xF0, 0xA6, +0x12, 0xEE, 0xB9, 0xE6, 0xC4, 0xF5, 0xEC, 0xA6, 0x02, 0x6D, 0xAB, 0xED, 0xEC, 0xED, 0xC4, 0xF5, -0xB0, 0xC6, 0x01, 0x4B, 0x0A, 0x73, 0x18, 0x4A, +0xAC, 0xC6, 0x01, 0x4B, 0x0A, 0x73, 0x18, 0x4A, 0xEA, 0x61, 0x01, 0x6A, 0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x5D, 0x67, 0x0A, 0xD4, 0x20, 0xF0, 0x98, 0xA2, 0x30, 0xF0, 0x20, 0x6A, 0x0B, 0xD5, 0x0C, 0xD6, -0x2B, 0xF1, 0x18, 0x4A, 0xA4, 0xF5, 0xBC, 0xA2, +0x2B, 0xF1, 0x18, 0x4A, 0xA4, 0xF5, 0xB8, 0xA2, 0x01, 0x6B, 0x00, 0xF6, 0xE0, 0x31, 0xAC, 0xEB, 0x00, 0xF6, 0x23, 0x31, 0x80, 0xF0, 0x09, 0x23, 0x21, 0x24, 0x01, 0x74, 0x80, 0xF0, 0x05, 0x61, 0x0A, 0x93, 0x80, 0xF0, 0x02, 0x23, 0x30, 0xF0, -0x20, 0x6B, 0x64, 0xF0, 0x70, 0x9B, 0xC3, 0xEB, +0x20, 0x6B, 0x64, 0xF0, 0x74, 0x9B, 0xC3, 0xEB, 0x7C, 0x61, 0x7F, 0x71, 0x7A, 0x60, 0xFF, 0xF7, -0x1F, 0x51, 0x77, 0x61, 0xC4, 0xF5, 0x00, 0x9A, +0x1F, 0x51, 0x77, 0x61, 0xA4, 0xF5, 0x1C, 0x9A, 0x1B, 0xEE, 0x01, 0x28, 0xE5, 0xE8, 0x10, 0xEA, 0x12, 0xE8, 0x02, 0x22, 0x01, 0x48, 0x04, 0x10, 0x03, 0x28, 0x01, 0x68, 0x50, 0x67, 0x1D, 0x10, 0x01, 0x6B, 0x1E, 0x10, 0x0A, 0x94, 0x65, 0x24, -0x30, 0xF0, 0x20, 0x6B, 0x64, 0xF0, 0x70, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x64, 0xF0, 0x74, 0x9B, 0x0C, 0x95, 0xA3, 0xEB, 0x5E, 0x61, 0x7F, 0x71, 0x5C, 0x60, 0xFF, 0xF7, 0x1F, 0x51, 0x59, 0x61, -0xC4, 0xF5, 0x04, 0x9A, 0x1B, 0xED, 0x01, 0x28, +0xC4, 0xF5, 0x00, 0x9A, 0x1B, 0xED, 0x01, 0x28, 0xE5, 0xE8, 0x10, 0xEA, 0x12, 0xE8, 0x02, 0x22, 0x01, 0x48, 0x05, 0x10, 0x04, 0x28, 0x01, 0x68, 0x00, 0x6A, 0x04, 0xD2, 0x02, 0x10, 0x00, 0x6B, -0x04, 0xD3, 0x0A, 0x94, 0x00, 0x18, 0x63, 0xE7, +0x04, 0xD3, 0x0A, 0x94, 0x00, 0x18, 0xB9, 0xE6, 0x00, 0x6C, 0xFF, 0x6E, 0xA4, 0x67, 0xCC, 0xED, 0x1D, 0x65, 0x18, 0x6D, 0xB8, 0xEC, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x01, 0x6D, -0x12, 0xEA, 0x69, 0xE2, 0xC4, 0xF5, 0x50, 0xA2, +0x12, 0xEA, 0x69, 0xE2, 0xC4, 0xF5, 0x4C, 0xA2, 0xAC, 0xEA, 0xCC, 0xEA, 0x2F, 0x2A, 0xD8, 0x67, 0x18, 0x6F, 0xF8, 0xEE, 0x04, 0x96, 0xC4, 0x36, 0x04, 0xD6, 0x03, 0x6E, 0xCB, 0xEE, 0x12, 0xEC, -0x71, 0xE4, 0xC4, 0xF5, 0xF0, 0xA4, 0xEC, 0xEE, -0x04, 0x97, 0xED, 0xEE, 0xC4, 0xF5, 0xD0, 0xC4, -0x0A, 0x96, 0xE4, 0xF5, 0xC0, 0xDC, 0x0B, 0x97, -0xE4, 0xF5, 0xE4, 0xDC, 0x0C, 0x96, 0x18, 0x6F, -0xC4, 0xF5, 0xD4, 0xDC, 0xD8, 0x67, 0x01, 0x4E, +0x71, 0xE4, 0xC4, 0xF5, 0xEC, 0xA4, 0xEC, 0xEE, +0x04, 0x97, 0xED, 0xEE, 0xC4, 0xF5, 0xCC, 0xC4, +0x0A, 0x96, 0xC4, 0xF5, 0xDC, 0xDC, 0x0B, 0x97, +0xE4, 0xF5, 0xE0, 0xDC, 0x0C, 0x96, 0x18, 0x6F, +0xC4, 0xF5, 0xD0, 0xDC, 0xD8, 0x67, 0x01, 0x4E, 0xF8, 0xEE, 0x12, 0xEE, 0x6D, 0xE6, 0xC4, 0xF5, -0x44, 0xDB, 0xC4, 0xF5, 0x00, 0xDB, 0xC4, 0xF5, -0x51, 0xC4, 0xC4, 0xF5, 0x50, 0xA4, 0xC4, 0xF5, -0x32, 0xC4, 0x4D, 0xED, 0xC4, 0xF5, 0xB0, 0xC4, +0x40, 0xDB, 0xA4, 0xF5, 0x1C, 0xDB, 0xC4, 0xF5, +0x4D, 0xC4, 0xC4, 0xF5, 0x4C, 0xA4, 0xC4, 0xF5, +0x2E, 0xC4, 0x4D, 0xED, 0xC4, 0xF5, 0xAC, 0xC4, 0x01, 0x6A, 0x04, 0x10, 0x01, 0x4C, 0x0A, 0x74, 0xBC, 0x61, 0x00, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x0F, 0xF7, -0x14, 0x4A, 0x00, 0x6C, 0x4A, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x0F, 0xF7, 0x14, 0x4A, 0x00, 0x6B, +0x10, 0x4A, 0x00, 0x6C, 0x4A, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x0F, 0xF7, 0x10, 0x4A, 0x00, 0x6B, 0x18, 0x6D, 0xB8, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0x2B, 0xF1, 0x18, 0x4C, 0x12, 0xED, 0x91, 0xE5, -0xC4, 0xF5, 0xD0, 0xA4, 0x01, 0x6D, 0xAC, 0xEE, -0x08, 0x26, 0xC4, 0xF5, 0x90, 0xA4, 0x86, 0x34, +0xC4, 0xF5, 0xCC, 0xA4, 0x01, 0x6D, 0xAC, 0xEE, +0x08, 0x26, 0xC4, 0xF5, 0x8C, 0xA4, 0x86, 0x34, 0xAC, 0xEC, 0x03, 0x24, 0x80, 0x9A, 0x01, 0x4C, 0x80, 0xDA, 0x01, 0x4B, 0x0A, 0x73, 0x18, 0x4A, -0xE7, 0x61, 0x00, 0x18, 0xBA, 0xE6, 0x04, 0xD2, +0xE7, 0x61, 0x00, 0x18, 0x10, 0xE6, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0xA0, 0xF0, 0x7E, 0xA2, 0xA4, 0xF5, 0xBD, 0xA2, +0xA0, 0xF0, 0x7E, 0xA2, 0xA4, 0xF5, 0xB9, 0xA2, 0xFF, 0x6C, 0x76, 0x33, 0xAE, 0xEB, 0x12, 0x2B, 0xA0, 0xF0, 0xBB, 0xA2, 0x7F, 0x6B, 0xAC, 0xEB, 0x8C, 0xEB, 0x0C, 0x23, 0xA0, 0xF0, 0xBC, 0xA2, 0x0F, 0x6B, 0xAC, 0xEB, 0x8C, 0xEB, 0x06, 0x23, -0x04, 0x93, 0x03, 0xF6, 0x4A, 0xA2, 0x78, 0xEA, +0x04, 0x93, 0x03, 0xF6, 0x46, 0xA2, 0x78, 0xEA, 0x12, 0xEA, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x04, 0x93, 0xEF, 0xF6, 0x58, 0x9A, 0x6E, 0xEA, -0x52, 0x22, 0x04, 0x94, 0x00, 0x18, 0xDB, 0xE6, +0x04, 0x93, 0xEF, 0xF6, 0x54, 0x9A, 0x6E, 0xEA, +0x52, 0x22, 0x04, 0x94, 0x00, 0x18, 0x31, 0xE6, 0x4E, 0x10, 0x18, 0x6D, 0xB8, 0xEC, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x12, 0xED, -0x6D, 0xE5, 0xC4, 0xF5, 0xD0, 0xA3, 0x01, 0x6D, -0xAC, 0xEE, 0x0A, 0x26, 0xC4, 0xF5, 0x70, 0xA3, +0x6D, 0xE5, 0xC4, 0xF5, 0xCC, 0xA3, 0x01, 0x6D, +0xAC, 0xEE, 0x0A, 0x26, 0xC4, 0xF5, 0x6C, 0xA3, 0x66, 0x33, 0xAC, 0xEB, 0xFF, 0x6D, 0xAC, 0xEB, 0x03, 0x2B, 0x60, 0x9A, 0x01, 0x4B, 0x60, 0xDA, 0x01, 0x4C, 0x0A, 0x74, 0x18, 0x4A, 0xE5, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0xA4, 0xF5, 0x7D, 0xA2, 0xFF, 0x73, 0x2B, 0x61, -0xC4, 0xF5, 0x6C, 0x9A, 0x01, 0x4B, 0xC4, 0xF5, -0x6C, 0xDA, 0xC4, 0xF5, 0x48, 0x9A, 0x4E, 0xEB, +0xA4, 0xF5, 0x79, 0xA2, 0xFF, 0x73, 0x2B, 0x61, +0xC4, 0xF5, 0x68, 0x9A, 0x01, 0x4B, 0xC4, 0xF5, +0x68, 0xDA, 0xC4, 0xF5, 0x44, 0x9A, 0x4E, 0xEB, 0x22, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0x0F, 0xF7, -0x14, 0x4A, 0x18, 0x6D, 0xB8, 0xEB, 0x30, 0xF0, +0x10, 0x4A, 0x18, 0x6D, 0xB8, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0x2B, 0xF1, 0x18, 0x4C, 0x12, 0xED, -0x91, 0xE5, 0xC4, 0xF5, 0xD0, 0xA4, 0x01, 0x6D, -0xAC, 0xEE, 0x08, 0x26, 0xC4, 0xF5, 0x90, 0xA4, +0x91, 0xE5, 0xC4, 0xF5, 0xCC, 0xA4, 0x01, 0x6D, +0xAC, 0xEE, 0x08, 0x26, 0xC4, 0xF5, 0x8C, 0xA4, 0x86, 0x34, 0xAC, 0xEC, 0x03, 0x24, 0x80, 0x9A, 0x01, 0x4C, 0x80, 0xDA, 0x01, 0x4B, 0x0A, 0x73, 0x18, 0x4A, 0xE7, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x78, 0x67, 0x0F, 0xF7, 0x64, 0xDA, 0x30, 0xF0, +0x78, 0x67, 0x0F, 0xF7, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xF0, 0x64, 0x9A, 0x02, 0xF0, 0x00, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x0F, 0xF7, 0x09, 0x48, 0x00, 0x69, 0x18, 0x6A, +0x0F, 0xF7, 0x05, 0x48, 0x00, 0x69, 0x18, 0x6A, 0x58, 0xE9, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x12, 0xEA, 0x69, 0xE2, 0xC4, 0xF5, -0x90, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, 0x27, 0x23, +0x8C, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, 0x27, 0x23, 0x00, 0xF0, 0x8B, 0x98, 0x00, 0xF0, 0x67, 0x98, 0x63, 0xEC, 0x21, 0x61, 0x61, 0x80, 0x81, 0x43, 0x04, 0xD4, 0x07, 0x2C, 0x00, 0xF0, 0x4F, 0x98, 0x00, 0xF0, 0x93, 0x98, 0x40, 0xEA, 0x04, 0x92, 0x14, 0x10, 0x80, 0xA0, 0x01, 0x4C, 0x80, 0xC0, 0x80, 0xA0, 0x82, 0xEB, 0x08, 0x60, 0xC4, 0xF5, -0x90, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, -0xC4, 0xF5, 0x70, 0xC2, 0x08, 0x10, 0x00, 0xF0, +0x8C, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0xC4, 0xF5, 0x6C, 0xC2, 0x08, 0x10, 0x00, 0xF0, 0x4F, 0x98, 0x00, 0xF0, 0x93, 0x98, 0x40, 0xEA, 0x00, 0x6A, 0x00, 0xF0, 0x4B, 0xD8, 0x01, 0x49, 0x0A, 0x71, 0x18, 0x48, 0xC8, 0x61, 0x09, 0x97, @@ -24028,64 +23636,64 @@ u8 array_mp_8822c_fw_nic[] = { 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, 0x04, 0x2A, 0x01, 0x6C, 0x08, 0xF0, 0x00, 0x6D, 0x05, 0x10, 0x44, 0x32, 0xFF, 0x4A, 0x01, 0x6D, -0x02, 0x6C, 0xA4, 0xEA, 0x80, 0x18, 0x51, 0x78, +0x02, 0x6C, 0xA4, 0xEA, 0x80, 0x18, 0xA9, 0x76, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, 0x04, 0x2A, 0x01, 0x6C, 0x04, 0xF0, 0x00, 0x6D, 0x05, 0x10, 0xFF, 0x4A, 0x44, 0x32, 0x01, 0x6D, -0x02, 0x6C, 0xA4, 0xEA, 0x80, 0x18, 0x51, 0x78, +0x02, 0x6C, 0xA4, 0xEA, 0x80, 0x18, 0xA9, 0x76, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, 0x04, 0x2A, 0x01, 0x6C, 0x08, 0xF0, 0x00, 0x6D, 0x05, 0x10, 0x44, 0x32, 0xFF, 0x4A, 0x01, 0x6D, -0x02, 0x6C, 0xA4, 0xEA, 0x80, 0x18, 0x6E, 0x78, +0x02, 0x6C, 0xA4, 0xEA, 0x80, 0x18, 0xC6, 0x76, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, 0x04, 0x2A, 0x01, 0x6C, 0x04, 0xF0, 0x00, 0x6D, 0x05, 0x10, 0xFF, 0x4A, 0x44, 0x32, 0x01, 0x6D, -0x02, 0x6C, 0xA4, 0xEA, 0x80, 0x18, 0x6E, 0x78, +0x02, 0x6C, 0xA4, 0xEA, 0x80, 0x18, 0xC6, 0x76, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6D, 0x8C, 0xED, 0x01, 0x6C, 0x44, 0x67, 0x15, 0x4D, 0x44, 0xED, -0xA2, 0x67, 0x80, 0x18, 0xED, 0x77, 0x05, 0x97, +0xA2, 0x67, 0x80, 0x18, 0x45, 0x76, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6D, 0x8C, 0xED, 0x04, 0x2D, 0x03, 0x6C, 0x10, 0xF0, 0x00, 0x6D, 0x05, 0x10, 0x1B, 0x4D, 0x01, 0x6A, 0x44, 0xED, 0x03, 0x6C, 0xA2, 0x67, -0x80, 0x18, 0xED, 0x77, 0x05, 0x97, 0x03, 0x63, +0x80, 0x18, 0x45, 0x76, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0x4C, 0xEC, 0x00, 0x18, 0x46, 0xE8, +0xFF, 0x6A, 0x4C, 0xEC, 0x00, 0x18, 0x9C, 0xE7, 0x01, 0x6D, 0x02, 0x6C, 0xA4, 0xEA, 0x80, 0x18, -0xED, 0x77, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x45, 0x76, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, -0x00, 0x18, 0x46, 0xE8, 0x01, 0x6D, 0x03, 0x6C, -0xA4, 0xEA, 0x80, 0x18, 0xED, 0x77, 0x05, 0x97, +0x00, 0x18, 0x9C, 0xE7, 0x01, 0x6D, 0x03, 0x6C, +0xA4, 0xEA, 0x80, 0x18, 0x45, 0x76, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6D, 0x8C, 0xED, 0x18, 0x4D, 0x01, 0x6A, 0x44, 0xED, 0x00, 0x6C, 0xA2, 0x67, 0x80, 0x18, -0xED, 0x77, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x45, 0x76, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6D, 0x8C, 0xED, 0x01, 0x6C, 0x44, 0x67, 0x15, 0x4D, 0x44, 0xED, -0xA2, 0x67, 0x80, 0x18, 0x1E, 0x78, 0x05, 0x97, +0xA2, 0x67, 0x80, 0x18, 0x76, 0x76, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6D, 0x8C, 0xED, 0x04, 0x2D, 0x03, 0x6C, 0x10, 0xF0, 0x00, 0x6D, 0x05, 0x10, 0x1B, 0x4D, 0x01, 0x6A, 0x44, 0xED, 0x03, 0x6C, 0xA2, 0x67, -0x80, 0x18, 0x1E, 0x78, 0x05, 0x97, 0x03, 0x63, +0x80, 0x18, 0x76, 0x76, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0x4C, 0xEC, 0x00, 0x18, 0x46, 0xE8, +0xFF, 0x6A, 0x4C, 0xEC, 0x00, 0x18, 0x9C, 0xE7, 0x01, 0x6D, 0x02, 0x6C, 0xA4, 0xEA, 0x80, 0x18, -0x1E, 0x78, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x76, 0x76, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, -0x00, 0x18, 0x46, 0xE8, 0x01, 0x6D, 0x03, 0x6C, -0xA4, 0xEA, 0x80, 0x18, 0x1E, 0x78, 0x05, 0x97, +0x00, 0x18, 0x9C, 0xE7, 0x01, 0x6D, 0x03, 0x6C, +0xA4, 0xEA, 0x80, 0x18, 0x76, 0x76, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6D, 0x8C, 0xED, 0x18, 0x4D, 0x01, 0x6A, 0x44, 0xED, 0x00, 0x6C, 0xA2, 0x67, 0x80, 0x18, -0x1E, 0x78, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x76, 0x76, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xDD, 0x63, 0x45, 0x62, 0x44, 0xD1, 0x43, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x69, 0x84, 0xF0, -0x44, 0x9A, 0x8C, 0xE9, 0x30, 0x31, 0x49, 0xE1, +0x48, 0x9A, 0x8C, 0xE9, 0x30, 0x31, 0x49, 0xE1, 0x40, 0xD2, 0x40, 0xA2, 0x00, 0xF6, 0x40, 0x32, 0x00, 0xF6, 0x43, 0x32, 0x00, 0x52, 0x40, 0x60, 0x01, 0x6A, 0x7D, 0x67, 0x4B, 0xEA, 0x54, 0xC3, @@ -24094,13 +23702,13 @@ u8 array_mp_8822c_fw_nic[] = { 0x30, 0xF0, 0x20, 0x68, 0x06, 0x04, 0x49, 0xE1, 0x40, 0x9A, 0x04, 0x05, 0x04, 0x6E, 0x04, 0xD2, 0x80, 0xF2, 0x4C, 0x98, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x84, 0xF0, 0x48, 0x9A, 0x07, 0x04, +0x20, 0x6A, 0x84, 0xF0, 0x4C, 0x9A, 0x07, 0x04, 0x04, 0x05, 0x49, 0xE1, 0x40, 0x9A, 0x04, 0x6E, 0x04, 0xD2, 0x80, 0xF2, 0x4C, 0x98, 0x40, 0xEA, 0x40, 0x93, 0x08, 0x04, 0x04, 0x05, 0x40, 0x9B, 0x04, 0x6E, 0x04, 0xD2, 0x80, 0xF2, 0x4C, 0x98, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF0, -0x4C, 0x9A, 0x09, 0x04, 0x04, 0x05, 0x45, 0xE1, +0x50, 0x9A, 0x09, 0x04, 0x04, 0x05, 0x45, 0xE1, 0x40, 0x99, 0x04, 0x6E, 0x04, 0xD2, 0x80, 0xF2, 0x4C, 0x98, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, 0x05, 0x04, 0x40, 0xEA, @@ -24109,12 +23717,12 @@ u8 array_mp_8822c_fw_nic[] = { 0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF3, 0x8C, 0x9C, 0x50, 0x33, 0x91, 0xE3, 0x80, 0x9C, 0x30, 0xF0, 0x20, 0x6C, 0x84, 0xF0, -0x88, 0x9C, 0x8D, 0xE3, 0x82, 0x67, 0x60, 0x9B, -0x00, 0x18, 0xC0, 0xE8, 0x05, 0x97, 0x03, 0x63, +0x8C, 0x9C, 0x8D, 0xE3, 0x82, 0x67, 0x60, 0x9B, +0x00, 0x18, 0x16, 0xE8, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF1, 0x58, 0x9A, -0x84, 0xF0, 0x70, 0x9B, 0x00, 0xA2, 0x20, 0xA3, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF1, 0x5C, 0x9A, +0x84, 0xF0, 0x74, 0x9B, 0x00, 0xA2, 0x20, 0xA3, 0xFF, 0x6A, 0x4C, 0xE8, 0x4C, 0xE9, 0x2A, 0xE8, 0x35, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF3, 0x4C, 0x9A, 0x10, 0x33, 0x49, 0xE3, 0x40, 0xA2, @@ -24129,47 +23737,47 @@ u8 array_mp_8822c_fw_nic[] = { 0x80, 0xF2, 0x5C, 0x9A, 0x90, 0x67, 0x40, 0xEA, 0x01, 0x48, 0x7F, 0x6A, 0x4C, 0xE8, 0x0A, 0xE9, 0xD0, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, -0x58, 0x9A, 0x20, 0xC2, 0x07, 0x97, 0x06, 0x91, +0x5C, 0x9A, 0x20, 0xC2, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0xFF, 0x6B, 0xE2, 0x67, 0x6C, 0xEE, 0x6C, 0xEF, 0x1E, 0x65, 0x87, 0x67, 0x03, 0x6E, 0xCC, 0xEC, 0x80, 0xF0, 0x10, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0x84, 0xF0, -0x18, 0x9C, 0x08, 0x69, 0x42, 0x32, 0x80, 0xA0, +0x1C, 0x9C, 0x08, 0x69, 0x42, 0x32, 0x80, 0xA0, 0x52, 0x32, 0x6C, 0xEA, 0x6C, 0xEC, 0x2D, 0xEC, 0x6C, 0xEC, 0x80, 0xC0, 0x30, 0xF0, 0x20, 0x6C, -0x84, 0xF0, 0x9C, 0x9C, 0xCC, 0xEA, 0xE0, 0xC4, -0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF0, 0x80, 0x9C, +0xA4, 0xF0, 0x80, 0x9C, 0xCC, 0xEA, 0xE0, 0xC4, +0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF0, 0x84, 0x9C, 0x40, 0xC4, 0x0F, 0x6A, 0x98, 0x67, 0x8C, 0xEA, 0x74, 0x22, 0x01, 0x6C, 0x4C, 0xEC, 0x06, 0x24, -0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF0, 0x84, 0x9C, +0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF0, 0x88, 0x9C, 0xAC, 0xEB, 0x60, 0xC4, 0x02, 0x6B, 0x4C, 0xEB, 0x08, 0x23, 0xFF, 0x6C, 0xA2, 0x33, 0x8C, 0xEB, -0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF0, 0x88, 0x9C, +0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF0, 0x8C, 0x9C, 0x60, 0xC4, 0x04, 0x6B, 0x4C, 0xEB, 0x09, 0x23, 0xA2, 0x33, 0xFF, 0x6C, 0x62, 0x33, 0x8C, 0xEB, -0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF0, 0x8C, 0x9C, +0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF0, 0x90, 0x9C, 0x60, 0xC4, 0x4E, 0x33, 0x07, 0x23, 0x30, 0xF0, -0x20, 0x6B, 0xA4, 0xF0, 0x70, 0x9B, 0x00, 0xF6, +0x20, 0x6B, 0xA4, 0xF0, 0x74, 0x9B, 0x00, 0xF6, 0xA2, 0x35, 0xA0, 0xC3, 0x20, 0x6B, 0x4D, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF0, 0x54, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF0, 0x58, 0x9A, 0x64, 0x68, 0x60, 0xC2, 0x2C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0xFF, 0x48, 0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0x21, 0x28, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF2, 0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x23, 0xF2, 0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF3, 0x9C, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, 0x60, 0xDA, 0x60, 0xA1, 0xD0, 0x6A, 0x6C, 0xEA, 0x40, 0xC1, 0x30, 0xF0, 0x20, 0x6A, -0x84, 0xF0, 0x78, 0x9A, 0xF7, 0x6A, 0x80, 0xA3, +0x84, 0xF0, 0x7C, 0x9A, 0xF7, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x16, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xA4, 0xF0, 0x34, 0x9A, 0x20, 0x6A, +0x20, 0x6A, 0xA4, 0xF0, 0x38, 0x9A, 0x20, 0x6A, 0x60, 0xA1, 0x6C, 0xEA, 0xCC, 0x2A, 0x60, 0xA1, 0xF0, 0x6A, 0x6C, 0xEA, 0x40, 0xC1, 0x30, 0xF0, -0x20, 0x6A, 0x84, 0xF0, 0x78, 0x9A, 0xF7, 0x6A, +0x20, 0x6A, 0x84, 0xF0, 0x7C, 0x9A, 0xF7, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, @@ -24177,128 +23785,128 @@ u8 array_mp_8822c_fw_nic[] = { 0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0xC2, 0x67, 0xFF, 0x6C, 0x8C, 0xEE, 0x03, 0x6D, 0x66, 0x67, 0xAC, 0xEB, 0x4B, 0x2B, 0x30, 0xF0, 0x20, 0x6B, -0x84, 0xF0, 0xF8, 0x9B, 0x08, 0x68, 0x42, 0x32, +0x84, 0xF0, 0xFC, 0x9B, 0x08, 0x68, 0x42, 0x32, 0x60, 0xA7, 0x52, 0x32, 0x8C, 0xEA, 0x8C, 0xEB, 0x0D, 0xEB, 0x8C, 0xEB, 0x60, 0xC7, 0x30, 0xF0, -0x20, 0x6B, 0x84, 0xF0, 0x7C, 0x9B, 0xAC, 0xEA, +0x20, 0x6B, 0xA4, 0xF0, 0x60, 0x9B, 0xAC, 0xEA, 0x64, 0x68, 0xC0, 0xC3, 0x30, 0xF0, 0x20, 0x6B, -0xA4, 0xF0, 0x60, 0x9B, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0xA4, 0xF0, 0x54, 0x9A, 0x30, 0x6B, +0xA4, 0xF0, 0x64, 0x9B, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0xA4, 0xF0, 0x58, 0x9A, 0x30, 0x6B, 0x60, 0xC2, 0x2E, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0xFF, 0x48, 0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0x23, 0x28, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, -0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF3, +0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF3, 0x9C, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, 0x60, 0xDA, 0x60, 0xA1, 0xCF, 0x6A, 0x6C, 0xEA, 0x40, 0xC1, 0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF0, -0x78, 0x9A, 0xF7, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x7C, 0x9A, 0xF7, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x6A, 0x4B, 0xEA, 0x19, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF0, 0x34, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF0, 0x38, 0x9A, 0x20, 0x6A, 0x60, 0xA1, 0x6C, 0xEA, 0xCA, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF0, 0x44, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF0, 0x48, 0x9A, 0xEF, 0x6B, 0x40, 0x9A, 0x80, 0xA1, 0x8C, 0xEB, 0x60, 0xC1, 0x30, 0xF0, 0x20, 0x6B, 0x84, 0xF0, -0x98, 0x9B, 0xF7, 0x6B, 0xA0, 0xA4, 0xAC, 0xEB, +0x9C, 0x9B, 0xF7, 0x6B, 0xA0, 0xA4, 0xAC, 0xEB, 0x60, 0xC4, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF0, 0xB8, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF0, 0xBC, 0x9A, 0xE0, 0xF3, 0x10, 0x6C, 0x0F, 0x6E, 0x00, 0x18, -0x20, 0xE9, 0xE0, 0xF3, 0x0C, 0x6C, 0x00, 0x18, -0x74, 0xE9, 0xFF, 0x6B, 0x4C, 0xEB, 0x0B, 0x73, -0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF0, -0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF0, -0x80, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, 0x40, 0xDB, +0x76, 0xE8, 0xE0, 0xF3, 0x0C, 0x6C, 0x00, 0x18, +0xCA, 0xE8, 0xFF, 0x6B, 0x4C, 0xEB, 0x0B, 0x73, +0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, +0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF0, +0x84, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x6D, 0xF7, 0x6C, 0xA3, 0xFF, 0x6A, 0x24, 0x67, 0x01, 0x73, 0xAC, 0xEA, 0x07, 0x60, 0x03, 0x73, 0x05, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0xC4, 0xF0, -0x60, 0x9B, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0xC4, 0xF0, 0x64, 0x9B, 0x06, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0xC4, 0xF0, 0x08, 0x9A, 0x6C, 0xE8, +0x64, 0x9B, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC4, 0xF0, 0x68, 0x9B, 0x06, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xC4, 0xF0, 0x0C, 0x9A, 0x6C, 0xE8, 0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, -0x0C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, -0x50, 0x9A, 0x6D, 0xE8, 0x4C, 0xE8, 0x00, 0x18, -0x0E, 0xC9, 0x0C, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x10, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, +0x54, 0x9A, 0x6D, 0xE8, 0x4C, 0xE8, 0x00, 0x18, +0x44, 0xC8, 0x0C, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x0B, 0xF2, 0x61, 0xA2, 0x08, 0x6A, 0x6C, 0xEA, 0x05, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, -0x54, 0x9A, 0x4C, 0xE8, 0x02, 0x30, 0x02, 0x30, +0x58, 0x9A, 0x4C, 0xE8, 0x02, 0x30, 0x02, 0x30, 0x00, 0xC9, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x69, -0x30, 0xF0, 0x20, 0x6B, 0x8C, 0xE9, 0xC3, 0xF1, -0x9C, 0x9B, 0xFF, 0x6A, 0x4C, 0xED, 0xC0, 0xA4, +0x30, 0xF0, 0x20, 0x6B, 0x8C, 0xE9, 0xE3, 0xF1, +0x80, 0x9B, 0xFF, 0x6A, 0x4C, 0xED, 0xC0, 0xA4, 0x4C, 0xEE, 0x07, 0x25, 0x8E, 0x6B, 0xCC, 0xEB, 0x60, 0xC4, 0x71, 0x6B, 0xCD, 0xEB, 0x4C, 0xEB, -0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF0, -0x7C, 0x9A, 0xFF, 0x6C, 0x01, 0x6D, 0x40, 0xA3, +0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF1, +0x60, 0x9A, 0xFF, 0x6C, 0x01, 0x6D, 0x40, 0xA3, 0x00, 0x68, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x22, 0x10, 0x64, 0x70, 0x16, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x68, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF2, 0x94, 0x9C, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x6C, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF2, 0x98, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, 0x60, 0xDA, 0x00, 0x6A, 0x1C, 0x10, 0xFF, 0xF7, 0x1F, 0x6A, 0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF0, 0x5C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF1, 0x40, 0x9A, 0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, 0xD6, 0x2A, 0xFF, 0xF7, 0x1F, 0x6A, 0x01, 0x49, 0x4C, 0xE9, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x48, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x4C, 0x9A, 0x20, 0xCA, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, 0x30, 0xF0, 0x20, 0x6D, 0x04, 0x04, 0x83, 0xF0, 0x04, 0x4D, 0x14, 0x6E, -0x00, 0x18, 0xEC, 0xD7, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0x18, 0x42, 0xD7, 0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF5, 0x19, 0x4A, 0x05, 0x04, 0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6D, 0xEB, 0xF1, 0xB6, 0xA5, 0xB6, 0x35, 0x6E, 0xED, 0x1B, 0x25, 0xC0, 0xA2, 0x19, 0x26, 0xE0, 0x9C, 0x1F, 0xF7, 0x00, 0x6D, 0xEC, 0xED, 0x02, 0xF0, 0x00, 0x75, 0x01, 0x60, 0x09, 0x2D, 0x30, 0xF0, 0x20, 0x6E, 0xA0, 0x9C, -0x43, 0xF1, 0xC0, 0x9E, 0xB5, 0xE6, 0xC0, 0xA2, +0x43, 0xF1, 0xC4, 0x9E, 0xB5, 0xE6, 0xC0, 0xA2, 0xC0, 0xC5, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6D, -0x43, 0xF1, 0xA4, 0x9D, 0xFD, 0xE5, 0xC0, 0xC7, +0x43, 0xF1, 0xA8, 0x9D, 0xFD, 0xE5, 0xC0, 0xC7, 0x00, 0x6D, 0xA0, 0xC2, 0x01, 0x4B, 0xFF, 0x6D, 0xAC, 0xEB, 0x04, 0x73, 0x01, 0x4A, 0x04, 0x4C, 0xD7, 0x61, 0x0B, 0x97, 0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, 0x30, 0xF0, 0x20, 0x6D, 0x04, 0x04, 0x63, 0xF0, 0x10, 0x4D, 0x14, 0x6E, -0x00, 0x18, 0xEC, 0xD7, 0x05, 0x03, 0x00, 0x6C, +0x00, 0x18, 0x42, 0xD7, 0x05, 0x03, 0x00, 0x6C, 0x01, 0x6A, 0x30, 0xF0, 0x20, 0x6D, 0xEB, 0xF1, 0xB6, 0xA5, 0xB6, 0x35, 0x4E, 0xED, 0x38, 0x25, 0xC0, 0x9B, 0x1F, 0xF7, 0x00, 0x6D, 0xCC, 0xED, 0x02, 0xF0, 0x00, 0x75, 0x01, 0x60, 0x09, 0x2D, -0x30, 0xF0, 0x20, 0x6E, 0x43, 0xF1, 0xC0, 0x9E, +0x30, 0xF0, 0x20, 0x6E, 0x43, 0xF1, 0xC4, 0x9E, 0xA0, 0x9B, 0xE1, 0x44, 0xB5, 0xE6, 0xC0, 0xA5, 0x07, 0x10, 0x30, 0xF0, 0x20, 0x6D, 0x43, 0xF1, -0xA4, 0x9D, 0xE1, 0x44, 0xD9, 0xE5, 0xC0, 0xA6, +0xA8, 0x9D, 0xE1, 0x44, 0xD9, 0xE5, 0xC0, 0xA6, 0xFF, 0x6D, 0xCC, 0xED, 0x30, 0xF0, 0x20, 0x6E, 0x69, 0xF5, 0x18, 0x4E, 0xD9, 0xE7, 0xA0, 0xC6, 0xC0, 0x9B, 0x1F, 0xF7, 0x00, 0x6D, 0xCC, 0xED, 0x02, 0xF0, 0x00, 0x75, 0x01, 0x60, 0x09, 0x2D, 0x30, 0xF0, 0x20, 0x6E, 0xA0, 0x9B, 0x43, 0xF1, -0xC0, 0x9E, 0xB5, 0xE6, 0x00, 0x6E, 0xC0, 0xC5, +0xC4, 0x9E, 0xB5, 0xE6, 0x00, 0x6E, 0xC0, 0xC5, 0x07, 0x10, 0x30, 0xF0, 0x20, 0x6D, 0x43, 0xF1, -0xA4, 0x9D, 0xD9, 0xE5, 0x00, 0x6D, 0xA0, 0xC6, +0xA8, 0x9D, 0xD9, 0xE5, 0x00, 0x6D, 0xA0, 0xC6, 0x01, 0x4A, 0xFF, 0x6D, 0xAC, 0xEA, 0x04, 0x72, 0x01, 0x4C, 0x04, 0x4B, 0xBA, 0x61, 0x0B, 0x97, 0x06, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6B, -0x04, 0xF1, 0xA0, 0x9B, 0xFF, 0x6A, 0x08, 0x6E, +0x04, 0xF1, 0xA4, 0x9B, 0xFF, 0x6A, 0x08, 0x6E, 0x60, 0xA5, 0xCB, 0xEE, 0x4C, 0xEC, 0x4C, 0xEB, 0xCC, 0xEB, 0x6D, 0xEC, 0x30, 0xF0, 0x20, 0x6B, -0x04, 0xF1, 0x64, 0x9B, 0x4C, 0xEC, 0x80, 0xC5, +0x04, 0xF1, 0x68, 0x9B, 0x4C, 0xEC, 0x80, 0xC5, 0x60, 0xA3, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF1, 0xC0, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF1, 0xC4, 0x9B, 0xFF, 0x6A, 0x08, 0x6F, 0x60, 0xA6, 0xEB, 0xEF, 0x4C, 0xEC, 0x4C, 0xEB, 0xEC, 0xEB, 0x6D, 0xEC, 0x4C, 0xED, 0x4C, 0xEC, 0x30, 0xF0, 0x20, 0x6A, -0x04, 0xF1, 0x44, 0x9A, 0x80, 0xC6, 0xA0, 0xC2, +0x04, 0xF1, 0x48, 0x9A, 0x80, 0xC6, 0xA0, 0xC2, 0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, @@ -24306,17 +23914,17 @@ u8 array_mp_8822c_fw_nic[] = { 0x44, 0x98, 0x01, 0x6D, 0x83, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF2, -0xB4, 0x9B, 0xC3, 0xF4, 0x10, 0x69, 0x91, 0x67, +0xB8, 0x9B, 0xC3, 0xF4, 0x10, 0x69, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0xA4, 0x9B, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF1, -0xB4, 0x9B, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0xB8, 0x9B, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x03, 0xF1, 0xB4, 0x9B, 0x91, 0x67, 0x00, 0x6E, +0x03, 0xF1, 0xB8, 0x9B, 0x91, 0x67, 0x00, 0x6E, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x69, -0x40, 0xEA, 0xA6, 0xF3, 0x0C, 0x48, 0x88, 0xF0, -0x0C, 0x49, 0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xEA, 0xA6, 0xF3, 0x10, 0x48, 0x88, 0xF0, +0x10, 0x49, 0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xA8, 0xC1, 0x98, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, 0x08, 0x48, 0x2A, 0xE8, 0xF4, 0x61, 0x07, 0x97, 0x06, 0x91, @@ -24326,30 +23934,30 @@ u8 array_mp_8822c_fw_nic[] = { 0x14, 0x4B, 0x8D, 0xE3, 0x60, 0x9B, 0x00, 0xEB, 0x00, 0x6A, 0x20, 0xE8, 0xD0, 0xF4, 0x64, 0x42, 0x1F, 0xF7, 0x00, 0x6C, 0x8C, 0xEB, 0x05, 0x2B, -0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF1, 0x68, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF1, 0x6C, 0x9B, 0x2F, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF1, -0x6C, 0x9B, 0x2A, 0x10, 0x80, 0xF4, 0x64, 0x42, +0x70, 0x9B, 0x2A, 0x10, 0x80, 0xF4, 0x64, 0x42, 0x1F, 0xF7, 0x00, 0x6C, 0x8C, 0xEB, 0x05, 0x2B, -0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF1, 0x70, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF1, 0x74, 0x9B, 0x1F, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF1, -0x74, 0x9B, 0x1A, 0x10, 0xC0, 0xF4, 0x68, 0x42, +0x78, 0x9B, 0x1A, 0x10, 0xC0, 0xF4, 0x68, 0x42, 0x1F, 0xF7, 0x00, 0x6C, 0x8C, 0xEB, 0x05, 0x2B, -0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF1, 0x78, 0x9B, -0x0F, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF1, -0x7C, 0x9B, 0x0A, 0x10, 0x70, 0xF4, 0x68, 0x42, +0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF1, 0x7C, 0x9B, +0x0F, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x24, 0xF1, +0x60, 0x9B, 0x0A, 0x10, 0x70, 0xF4, 0x68, 0x42, 0x1F, 0xF7, 0x00, 0x6C, 0x8C, 0xEB, 0x0A, 0x2B, -0x30, 0xF0, 0x20, 0x6B, 0x24, 0xF1, 0x60, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x24, 0xF1, 0x64, 0x9B, 0x69, 0xE2, 0x60, 0xAA, 0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, -0x24, 0xF1, 0x64, 0x9B, 0x69, 0xE2, 0x60, 0xAA, +0x24, 0xF1, 0x68, 0x9B, 0x69, 0xE2, 0x60, 0xAA, 0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x74, 0x9B, 0x10, 0xF0, -0x24, 0x6A, 0x35, 0xF3, 0x01, 0x4A, 0x40, 0xDB, +0x24, 0x6A, 0x75, 0xF0, 0x19, 0x4A, 0x40, 0xDB, 0x00, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, -0x44, 0x9A, 0x40, 0x9A, 0x21, 0x22, 0xE0, 0xF3, +0x48, 0x9A, 0x40, 0x9A, 0x21, 0x22, 0xE0, 0xF3, 0x09, 0x70, 0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF2, 0x68, 0x9A, 0x20, 0x6C, 0x40, 0x9B, +0x23, 0xF2, 0x6C, 0x9A, 0x20, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, 0x60, 0xDA, 0x00, 0x6A, @@ -24359,50 +23967,50 @@ u8 array_mp_8822c_fw_nic[] = { 0x01, 0x6A, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, 0x6D, 0xF7, 0x4C, 0xA2, 0x03, 0x72, 0x0D, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF0, 0x98, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF0, 0x9C, 0x9A, 0xFF, 0x6A, 0x60, 0xA4, 0x6C, 0xEA, 0x10, 0x6B, 0x4C, 0xEB, 0x03, 0x23, 0xEF, 0x6B, 0x4C, 0xEB, 0x60, 0xC4, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x27, 0x67, 0x4C, 0xE9, 0x6F, 0x41, 0x4C, 0xEB, 0x04, 0x67, 0x02, 0x5B, 0x4C, 0xE8, 0x4C, 0xED, 0x4C, 0xEE, -0x03, 0x61, 0x90, 0x67, 0x00, 0x18, 0x84, 0xE2, +0x03, 0x61, 0x90, 0x67, 0x00, 0x18, 0xDA, 0xE1, 0x10, 0x58, 0x55, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x08, 0x33, 0x23, 0xF0, 0x10, 0x4A, 0x69, 0xE2, 0x40, 0x9A, 0x00, 0xEA, 0xD0, 0xF4, 0x44, 0x40, 0x1F, 0xF7, 0x00, 0x6B, 0x6C, 0xEA, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF1, 0x68, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF1, 0x6C, 0x9A, 0x34, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF1, -0x6C, 0x9A, 0x2F, 0x10, 0x80, 0xF4, 0x44, 0x40, +0x70, 0x9A, 0x2F, 0x10, 0x80, 0xF4, 0x44, 0x40, 0x1F, 0xF7, 0x00, 0x6B, 0x6C, 0xEA, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF1, 0x70, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF1, 0x74, 0x9A, 0x24, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF1, -0x74, 0x9A, 0x1F, 0x10, 0xC0, 0xF4, 0x48, 0x40, +0x78, 0x9A, 0x1F, 0x10, 0xC0, 0xF4, 0x48, 0x40, 0x1F, 0xF7, 0x00, 0x6B, 0x6C, 0xEA, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF1, 0x78, 0x9A, -0x14, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF1, -0x7C, 0x9A, 0x0F, 0x10, 0x70, 0xF4, 0x48, 0x40, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF1, 0x7C, 0x9A, +0x14, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF1, +0x60, 0x9A, 0x0F, 0x10, 0x70, 0xF4, 0x48, 0x40, 0x1F, 0xF7, 0x00, 0x6B, 0x6C, 0xEA, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF1, 0x60, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF1, 0x64, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF1, -0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x6D, 0xE0, 0x41, 0xE0, 0x63, 0xF3, 0x9C, 0xA0, 0x83, 0xF3, 0x4C, 0xA0, 0x8D, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xAE, 0xF4, 0x31, 0xC2, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x23, 0xF4, 0x04, 0x6C, -0x01, 0x6D, 0x80, 0x18, 0x35, 0x25, 0x01, 0x6B, +0x01, 0x6D, 0x80, 0x18, 0x0D, 0x28, 0x01, 0x6B, 0x6E, 0xEA, 0x05, 0x97, 0x01, 0x5A, 0x58, 0x67, 0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x24, 0x67, 0xA0, 0xF0, -0x9B, 0xA2, 0x03, 0xF6, 0x74, 0xAA, 0x7F, 0x6A, +0x9B, 0xA2, 0x03, 0xF6, 0x70, 0xAA, 0x7F, 0x6A, 0x8C, 0xEA, 0x21, 0x22, 0x01, 0x4B, 0xE0, 0xF3, 0x08, 0x6A, 0x58, 0xEB, 0x12, 0xEC, 0x23, 0xEC, 0x04, 0xD4, 0x19, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xEB, 0xF1, 0x96, 0xA2, 0x30, 0xF0, 0x20, 0x6A, -0x24, 0xF1, 0x08, 0x9A, 0x96, 0x34, 0xB0, 0x67, +0x24, 0xF1, 0x0C, 0x9A, 0x96, 0x34, 0xB0, 0x67, 0x80, 0x18, 0x0F, 0x01, 0x43, 0xE0, 0x23, 0xE8, 0x0A, 0x61, 0x04, 0x92, 0x03, 0xEA, 0x07, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, @@ -24410,93 +24018,93 @@ u8 array_mp_8822c_fw_nic[] = { 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x74, 0x9B, -0x10, 0xF0, 0x24, 0x6A, 0x35, 0xF5, 0x09, 0x4A, +0x10, 0xF0, 0x24, 0x6A, 0x95, 0xF2, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x69, 0x40, 0xDB, 0x2B, 0xF1, -0x18, 0x49, 0x03, 0xF6, 0x44, 0xA1, 0x6C, 0x22, -0x00, 0x18, 0x28, 0xEB, 0x01, 0x72, 0x68, 0x60, -0x80, 0x18, 0xD2, 0x03, 0x03, 0xF6, 0x44, 0xA1, +0x18, 0x49, 0x03, 0xF6, 0x40, 0xA1, 0x6C, 0x22, +0x00, 0x18, 0x7E, 0xEA, 0x01, 0x72, 0x68, 0x60, +0x80, 0x18, 0xCD, 0x03, 0x03, 0xF6, 0x40, 0xA1, 0x02, 0x72, 0x52, 0x61, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0x6E, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x40, 0xEA, 0x01, 0x6D, 0xAB, 0xED, 0x03, 0xF3, 0x08, 0x6C, 0x80, 0x18, -0x35, 0x25, 0x04, 0xD2, 0x00, 0x18, 0x71, 0xEA, -0x02, 0x6C, 0x80, 0x18, 0xF3, 0x10, 0x30, 0xF0, +0x0D, 0x28, 0x04, 0xD2, 0x00, 0x18, 0xC7, 0xE9, +0x02, 0x6C, 0x80, 0x18, 0xC7, 0x13, 0x30, 0xF0, 0x21, 0x6C, 0x12, 0xF5, 0x08, 0x4C, 0x80, 0x18, -0xF6, 0x1A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0xCD, 0x1D, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x08, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x04, 0xF5, 0xD0, 0x99, +0xC0, 0xF3, 0x44, 0x98, 0x04, 0xF5, 0xCC, 0x99, 0x01, 0x6D, 0x23, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, 0x01, 0x6D, 0x03, 0xF3, 0x08, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x0A, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x04, 0xF5, 0xD4, 0x99, +0xC0, 0xF3, 0x44, 0x98, 0x04, 0xF5, 0xD0, 0x99, 0x01, 0x6D, 0x23, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, 0x01, 0x6D, 0x03, 0xF3, 0x08, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x08, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x00, 0x6B, 0x03, 0xF6, 0x64, 0xC2, 0x30, 0xF0, +0x00, 0x6B, 0x03, 0xF6, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x74, 0x9B, 0x10, 0xF0, -0x24, 0x6A, 0x35, 0xF5, 0x0A, 0x4A, 0x40, 0xDB, +0x24, 0x6A, 0x95, 0xF2, 0x02, 0x4A, 0x40, 0xDB, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x2E, 0xF7, 0x5C, 0xA2, 0x02, 0x72, 0x58, 0x61, +0x2E, 0xF7, 0x58, 0xA2, 0x02, 0x72, 0x58, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x69, -0xA6, 0xF2, 0x00, 0x48, 0xA6, 0xF3, 0x0C, 0x49, +0xA6, 0xF2, 0x04, 0x48, 0xA6, 0xF3, 0x10, 0x49, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0x98, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, 0x83, 0xF6, 0x04, 0x6C, 0xAB, 0xED, 0x04, 0x48, 0x40, 0xEA, 0x2A, 0xE8, 0xF3, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x06, 0xF2, -0x10, 0x48, 0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, +0x14, 0x48, 0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, 0xC0, 0x98, 0x01, 0x6D, 0x23, 0xF0, 0x10, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x04, 0x48, 0x46, 0xF2, 0x18, 0x4A, +0x20, 0x6A, 0x04, 0x48, 0x46, 0xF2, 0x1C, 0x4A, 0x4A, 0xE8, 0xEF, 0x61, 0x21, 0xF0, 0x04, 0x68, 0x01, 0x6D, 0x90, 0x67, 0xAB, 0xED, 0x80, 0x18, -0x35, 0x25, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0xD2, -0x03, 0xF5, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0x0D, 0x28, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0xD2, +0x03, 0xF5, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x99, 0x90, 0x67, 0x03, 0x6E, 0x30, 0xF0, 0x20, 0x68, -0x40, 0xEA, 0x46, 0xF2, 0x18, 0x48, 0x30, 0xF0, +0x40, 0xEA, 0x46, 0xF2, 0x1C, 0x48, 0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, 0xC0, 0x98, 0x01, 0x6D, 0x28, 0xF1, 0x10, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x48, -0xA6, 0xF2, 0x00, 0x4A, 0x4A, 0xE8, 0xEF, 0x61, +0xA6, 0xF2, 0x04, 0x4A, 0x4A, 0xE8, 0xEF, 0x61, 0xC0, 0xF3, 0x44, 0x99, 0x04, 0x96, 0x01, 0x6D, 0x21, 0xF0, 0x04, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x06, 0x6C, 0x00, 0x18, 0x4A, 0xEB, 0xC8, 0x6C, -0x00, 0x18, 0x2F, 0xEB, 0x09, 0x97, 0x08, 0x91, +0x06, 0x6C, 0x00, 0x18, 0xA0, 0xEA, 0xC8, 0x6C, +0x00, 0x18, 0x85, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x23, 0xF4, 0x04, 0x6C, -0x01, 0x6D, 0x80, 0x18, 0x35, 0x25, 0x21, 0x22, -0x00, 0x18, 0x12, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x24, 0xF1, 0x6C, 0x9A, 0xFF, 0x6C, 0x02, 0x6D, +0x01, 0x6D, 0x80, 0x18, 0x0D, 0x28, 0x21, 0x22, +0x00, 0x18, 0x68, 0xE9, 0x30, 0xF0, 0x20, 0x6A, +0x24, 0xF1, 0x70, 0x9A, 0xFF, 0x6C, 0x02, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, -0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, -0x5C, 0x9A, 0x01, 0x6B, 0x6B, 0xEB, 0x30, 0xF0, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, +0x40, 0x9A, 0x01, 0x6B, 0x6B, 0xEB, 0x30, 0xF0, 0x21, 0x6C, 0x12, 0xF5, 0x08, 0x4C, 0x60, 0xC2, -0x00, 0x6D, 0x80, 0x18, 0x56, 0x1D, 0x30, 0xF0, +0x00, 0x6D, 0x80, 0x18, 0x2D, 0x20, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF5, 0x44, 0x9A, 0x01, 0x6C, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF5, 0x44, 0x9A, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, 0x40, 0xEA, 0x01, 0x6C, 0x00, 0x6D, 0x00, 0x18, -0x9D, 0xCD, 0x03, 0x72, 0x20, 0x60, 0x30, 0xF0, +0xF2, 0xCC, 0x03, 0x72, 0x20, 0x60, 0x30, 0xF0, 0x21, 0x6C, 0x12, 0xF5, 0x08, 0x4C, 0x01, 0x6D, -0x80, 0x18, 0x56, 0x1D, 0x14, 0x22, 0x00, 0x18, -0xB6, 0xC6, 0x01, 0x72, 0x06, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF1, 0x5C, 0x9A, 0x3F, 0x6B, +0x80, 0x18, 0x2D, 0x20, 0x14, 0x22, 0x00, 0x18, +0x02, 0xC6, 0x01, 0x72, 0x06, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF1, 0x40, 0x9A, 0x3F, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF1, -0x6C, 0x9A, 0xFD, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x70, 0x9A, 0xFD, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x6A, 0x0B, 0x10, 0x00, 0x6C, -0xA4, 0x67, 0x00, 0x18, 0x9D, 0xCD, 0x30, 0xF0, +0xA4, 0x67, 0x00, 0x18, 0xF2, 0xCC, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF5, 0x44, 0x9A, 0x01, 0x6C, 0x40, 0xEA, 0x00, 0x6A, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x24, 0xF1, 0xDC, 0x9A, 0xFF, 0x6B, 0xFC, 0x6D, +0x44, 0xF1, 0xC0, 0x9A, 0xFF, 0x6B, 0xFC, 0x6D, 0x40, 0xA6, 0x6C, 0xEC, 0x4C, 0xED, 0x8D, 0xED, 0x6C, 0xED, 0xA0, 0xC6, 0xA0, 0xA6, 0x03, 0x6A, 0xAC, 0xEA, 0x8E, 0xEA, 0x01, 0x5A, 0x58, 0x67, @@ -24526,20 +24134,20 @@ u8 array_mp_8822c_fw_nic[] = { 0x89, 0xF5, 0x40, 0xDB, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF1, 0x80, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF1, 0x84, 0x9A, 0xFF, 0x6A, 0x60, 0xA4, 0x6C, 0xEA, 0x5E, 0x33, 0x03, 0x23, 0x7F, 0x6B, 0x4C, 0xEB, 0x60, 0xC4, -0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF1, 0x44, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF1, 0x48, 0x9A, 0x00, 0x69, 0x00, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0x44, 0xF1, 0x48, 0x9A, 0x30, 0xF0, 0x20, 0x6B, -0x44, 0xF1, 0x64, 0x9B, 0x0C, 0xEA, 0xE0, 0xF3, +0x44, 0xF1, 0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0x44, 0xF1, 0x68, 0x9B, 0x0C, 0xEA, 0xE0, 0xF3, 0x1F, 0x68, 0x2C, 0xE8, 0x00, 0x30, 0x4D, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF0, 0x40, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF0, 0x44, 0x9A, 0x0C, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x44, 0xF1, 0x4C, 0x9A, 0x04, 0xD2, 0x30, 0xF0, +0x44, 0xF1, 0x50, 0x9A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, 0x40, 0xEA, 0x04, 0x93, 0x30, 0xF0, 0x20, 0x6A, -0x44, 0xF1, 0x44, 0x9A, 0xFF, 0x4B, 0x40, 0x9A, +0x44, 0xF1, 0x48, 0x9A, 0xFF, 0x4B, 0x40, 0x9A, 0x04, 0xD3, 0x02, 0x2B, 0x00, 0x6A, 0x0D, 0x10, 0x00, 0x52, 0xED, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x2A, 0xF4, 0x18, 0x4B, 0x2D, 0xE3, 0x01, 0x49, @@ -24554,16 +24162,16 @@ u8 array_mp_8822c_fw_nic[] = { 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6B, 0x89, 0xF5, 0x44, 0xC3, 0x2A, 0xF4, 0x18, 0x4C, 0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x6D, 0x00, 0xF2, 0x00, 0x6E, -0x89, 0xF5, 0x45, 0xC3, 0x00, 0x18, 0xE7, 0xD7, +0x89, 0xF5, 0x45, 0xC3, 0x00, 0x18, 0x3D, 0xD7, 0x30, 0xF0, 0x20, 0x6C, 0x2A, 0xF6, 0x18, 0x4C, 0xFF, 0x6D, 0x00, 0xF3, 0x00, 0x6E, 0x00, 0x18, -0xE7, 0xD7, 0x00, 0x18, 0x34, 0xEC, 0x01, 0x72, -0x02, 0x61, 0x00, 0x18, 0x03, 0xEC, 0x05, 0x97, +0x3D, 0xD7, 0x00, 0x18, 0x8A, 0xEB, 0x01, 0x72, +0x02, 0x61, 0x00, 0x18, 0x59, 0xEB, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x0E, 0xF5, 0x50, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x0E, 0xF5, 0x4C, 0xA2, 0x0F, 0x6B, 0x01, 0x74, 0x46, 0x32, 0x6C, 0xEA, 0x34, 0x6B, 0x78, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x4E, 0xF6, 0x04, 0x4B, 0x12, 0xEA, 0x49, 0xE3, +0x4E, 0xF6, 0x00, 0x4B, 0x12, 0xEA, 0x49, 0xE3, 0x13, 0x60, 0x05, 0x24, 0x02, 0x74, 0x0C, 0x60, 0x03, 0x74, 0x12, 0x60, 0x1A, 0x10, 0x67, 0x9A, 0x0D, 0x6C, 0x01, 0x4B, 0x67, 0xDA, 0x30, 0xF0, @@ -24574,9 +24182,9 @@ u8 array_mp_8822c_fw_nic[] = { 0x20, 0x6A, 0x80, 0xF5, 0x48, 0x9A, 0x0E, 0x6C, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x0E, 0xF5, 0x50, 0xA2, 0x0F, 0x6B, 0x01, 0x74, +0x0E, 0xF5, 0x4C, 0xA2, 0x0F, 0x6B, 0x01, 0x74, 0x46, 0x32, 0x6C, 0xEA, 0x34, 0x6B, 0x78, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x4E, 0xF6, 0x04, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x4E, 0xF6, 0x00, 0x4B, 0x12, 0xEA, 0x49, 0xE3, 0x11, 0x60, 0x03, 0x24, 0x02, 0x74, 0x0A, 0x60, 0x16, 0x10, 0x61, 0x9A, 0x0B, 0x6C, 0x01, 0x4B, 0x61, 0xDA, 0x30, 0xF0, @@ -24591,67 +24199,67 @@ u8 array_mp_8822c_fw_nic[] = { 0x89, 0xF5, 0x08, 0x48, 0x40, 0xC0, 0x41, 0xC0, 0x78, 0x6A, 0x41, 0xC8, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xF0, 0x75, 0xA2, -0x30, 0xF0, 0x20, 0x6D, 0x84, 0x40, 0x03, 0xF5, -0x60, 0xC2, 0xA0, 0xF0, 0x76, 0xA2, 0x2E, 0xF6, -0x18, 0x4D, 0x78, 0x6E, 0x03, 0xF5, 0x61, 0xC2, -0xE3, 0xF3, 0x60, 0xA2, 0x03, 0xF5, 0x62, 0xC2, -0xE3, 0xF3, 0x6C, 0xA2, 0x03, 0xF5, 0x63, 0xC2, -0xE3, 0xF3, 0x62, 0xA2, 0x03, 0xF5, 0x64, 0xC2, -0xE3, 0xF3, 0x6E, 0xA2, 0x03, 0xF5, 0x65, 0xC2, +0x30, 0xF0, 0x20, 0x6D, 0x84, 0x40, 0xE3, 0xF4, +0x7C, 0xC2, 0xA0, 0xF0, 0x76, 0xA2, 0x2E, 0xF6, +0x14, 0x4D, 0x78, 0x6E, 0xE3, 0xF4, 0x7D, 0xC2, +0xC3, 0xF3, 0x7C, 0xA2, 0xE3, 0xF4, 0x7E, 0xC2, +0xE3, 0xF3, 0x68, 0xA2, 0xE3, 0xF4, 0x7F, 0xC2, +0xC3, 0xF3, 0x7E, 0xA2, 0x03, 0xF5, 0x60, 0xC2, +0xE3, 0xF3, 0x6A, 0xA2, 0x03, 0xF5, 0x61, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0x40, 0xEA, 0x91, 0x67, 0xB0, 0x67, 0x7C, 0x6E, -0x80, 0x18, 0xFB, 0x69, 0x07, 0x97, 0x06, 0x91, +0x80, 0x18, 0x1F, 0x68, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0xDD, 0x67, 0x44, 0x67, 0x98, 0xAE, 0xFF, 0x6B, 0x6C, 0xED, 0x04, 0x5C, 0x10, 0x61, 0x03, 0x25, 0x01, 0x75, 0x0D, 0x60, 0x05, 0x10, 0x87, 0x67, 0xA2, 0x67, 0x00, 0x18, -0xAD, 0xEC, 0x07, 0x10, 0x8C, 0xEB, 0x03, 0x6D, +0x03, 0xEC, 0x07, 0x10, 0x8C, 0xEB, 0x03, 0x6D, 0x05, 0x6C, 0x01, 0x6E, 0x04, 0xD3, 0x80, 0x18, -0xB9, 0x69, 0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, +0xDD, 0x67, 0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF2, 0x44, 0x9A, 0x03, 0xF2, 0x60, 0x9B, +0x03, 0xF2, 0x48, 0x9A, 0x03, 0xF2, 0x64, 0x9B, 0x40, 0xAA, 0x60, 0xAB, 0x6E, 0xEA, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, 0x01, 0x5A, 0x58, 0x67, 0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x74, 0x9B, 0x10, 0xF0, 0x24, 0x6A, -0x96, 0xF3, 0x15, 0x4A, 0x40, 0xDB, 0x01, 0x4A, +0xF6, 0xF0, 0x0D, 0x4A, 0x40, 0xDB, 0x01, 0x4A, 0x40, 0xDB, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, 0x34, 0x9A, 0x10, 0xF0, 0x24, 0x68, -0xB6, 0xF3, 0x0D, 0x48, 0x00, 0xD9, 0x30, 0xF0, +0x16, 0xF1, 0x05, 0x48, 0x00, 0xD9, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF5, 0x58, 0x9A, 0x01, 0x48, 0x40, 0xEA, 0x00, 0xD9, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x74, 0x9B, -0x10, 0xF0, 0x24, 0x6A, 0xF6, 0xF3, 0x01, 0x4A, +0x10, 0xF0, 0x24, 0x6A, 0x36, 0xF1, 0x19, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF1, -0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, +0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, 0x4C, 0x9A, 0x80, 0x9B, 0xA4, 0x67, 0x4C, 0xED, 0x4E, 0xED, 0x02, 0x25, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x64, 0xF1, 0x44, 0x9A, 0x01, 0x6B, 0x40, 0x9A, +0x64, 0xF1, 0x48, 0x9A, 0x01, 0x6B, 0x40, 0x9A, 0x6C, 0xEA, 0x60, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0x64, 0xF1, 0x48, 0x9A, 0x00, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0x64, 0xF1, 0x4C, 0x9A, 0xE0, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF1, 0x50, 0x9A, +0x64, 0xF1, 0x4C, 0x9A, 0x00, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x64, 0xF1, 0x50, 0x9A, 0xE0, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF1, 0x54, 0x9A, 0xC0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF1, -0x54, 0x9A, 0xA0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0x64, 0xF1, 0x58, 0x9A, 0x80, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0x64, 0xF1, 0x5C, 0x9A, 0x40, 0x9A, +0x58, 0x9A, 0xA0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x64, 0xF1, 0x5C, 0x9A, 0x80, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x84, 0xF1, 0x40, 0x9A, 0x40, 0x9A, 0x41, 0x22, 0x30, 0xF0, 0x20, 0x69, 0x84, 0xF1, -0x20, 0x99, 0x60, 0xD9, 0x30, 0xF0, 0x20, 0x6B, -0x84, 0xF1, 0x64, 0x9B, 0x00, 0xDB, 0x30, 0xF0, +0x24, 0x99, 0x60, 0xD9, 0x30, 0xF0, 0x20, 0x6B, +0x84, 0xF1, 0x68, 0x9B, 0x00, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x74, 0x9B, 0xE0, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, 0x60, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, 0x64, 0x9B, 0xC0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, -0x64, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x84, 0xF1, 0x68, 0x9B, 0x80, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0x84, 0xF1, 0x6C, 0x9B, 0x30, 0xF0, -0x20, 0x6C, 0xC3, 0xF2, 0x80, 0x9C, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x68, 0x9A, +0x68, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x84, 0xF1, 0x6C, 0x9B, 0x80, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x84, 0xF1, 0x70, 0x9B, 0x30, 0xF0, +0x20, 0x6C, 0xC3, 0xF2, 0x84, 0x9C, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x6C, 0x9A, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x5C, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x7D, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x77, 0xF0, @@ -24659,267 +24267,267 @@ u8 array_mp_8822c_fw_nic[] = { 0x00, 0x65, 0xA0, 0xDC, 0x9A, 0xB8, 0x00, 0x65, 0xBB, 0xB8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x74, 0x9B, 0x10, 0xF0, 0x24, 0x6A, -0xF6, 0xF3, 0x02, 0x4A, 0x40, 0xDB, 0x07, 0x97, +0x36, 0xF1, 0x1A, 0x4A, 0x40, 0xDB, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x74, 0x9B, 0x10, 0xF0, 0x24, 0x6A, -0x16, 0xF5, 0x11, 0x4A, 0x40, 0xDB, 0x30, 0xF0, +0x76, 0xF2, 0x09, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF1, 0x74, 0x9A, 0x63, 0x23, 0x01, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, -0x95, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF1, +0xF4, 0xDD, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF1, 0x54, 0x9A, 0x02, 0x6B, 0x6C, 0xEA, 0x02, 0x22, -0x00, 0x18, 0x51, 0xE1, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0x18, 0xA7, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF1, 0x54, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x18, 0x38, 0xE1, 0x30, 0xF0, +0x02, 0x22, 0x00, 0x18, 0x8E, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF1, 0x54, 0x9A, 0x08, 0x6B, -0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x34, 0xE1, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x8A, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF1, 0x54, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, -0x9E, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF1, +0xFD, 0xDD, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF1, 0x54, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x02, 0x22, -0x00, 0x18, 0x9F, 0xDE, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0x18, 0xFE, 0xDD, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF1, 0x54, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x18, 0xA0, 0xDE, 0x30, 0xF0, +0x02, 0x22, 0x00, 0x18, 0xFF, 0xDD, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF1, 0x74, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, -0x28, 0xE1, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF1, +0x7E, 0xE0, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF1, 0x74, 0x9B, 0x04, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x18, 0x24, 0xE1, 0x30, 0xF0, +0x02, 0x22, 0x00, 0x18, 0x00, 0xDE, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF1, 0x74, 0x9B, 0x08, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, -0xA1, 0xDE, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF1, +0x01, 0xDE, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF1, 0x74, 0x9B, 0x10, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x18, 0xA2, 0xDE, 0x30, 0xF0, +0x02, 0x22, 0x00, 0x18, 0x02, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF1, 0x78, 0x9A, 0xA0, 0xF0, 0x02, 0x23, 0x01, 0x6A, 0x6C, 0xEA, 0x02, 0x22, -0x00, 0x18, 0xE9, 0xE0, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0x18, 0x43, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF1, 0x58, 0x9A, 0x02, 0x6B, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x18, 0xA3, 0xDE, 0x30, 0xF0, +0x02, 0x22, 0x00, 0x18, 0x03, 0xDE, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF1, 0x78, 0x9B, 0x04, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, -0x00, 0x18, 0x99, 0xE0, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0x18, 0xF5, 0xDF, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF1, 0x78, 0x9B, 0x08, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, -0x5D, 0xE0, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF1, +0xE0, 0xDE, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF1, 0x78, 0x9B, 0x10, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, -0x02, 0x22, 0x80, 0x18, 0x2A, 0x71, 0x30, 0xF0, +0x02, 0x22, 0x80, 0x18, 0x7F, 0x6F, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, -0x58, 0x9A, 0x8B, 0xF1, 0x78, 0x9B, 0x6C, 0xEA, -0x02, 0x22, 0x80, 0x18, 0x34, 0x71, 0x30, 0xF0, +0x5C, 0x9A, 0x8B, 0xF1, 0x78, 0x9B, 0x6C, 0xEA, +0x02, 0x22, 0x80, 0x18, 0x89, 0x6F, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, -0x50, 0x9A, 0x8B, 0xF1, 0x78, 0x9B, 0x6C, 0xEA, -0x02, 0x22, 0x80, 0x18, 0x3E, 0x71, 0x30, 0xF0, +0x54, 0x9A, 0x8B, 0xF1, 0x78, 0x9B, 0x6C, 0xEA, +0x02, 0x22, 0x80, 0x18, 0x93, 0x6F, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF1, 0x58, 0x9A, 0x40, 0x6B, -0x6C, 0xEA, 0x02, 0x22, 0x80, 0x18, 0xD9, 0x75, +0x6C, 0xEA, 0x02, 0x22, 0x80, 0x18, 0x2E, 0x74, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF1, 0x58, 0x9A, 0x80, 0x6B, 0x6C, 0xEA, 0x02, 0x22, 0x80, 0x18, -0x58, 0x75, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF1, +0xAD, 0x73, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF1, 0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, -0x02, 0x22, 0x80, 0x18, 0xD5, 0x75, 0x30, 0xF0, +0x02, 0x22, 0x80, 0x18, 0x2A, 0x74, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF1, 0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x80, 0x18, -0x54, 0x75, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF1, +0xA9, 0x73, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF1, 0x78, 0x9B, 0x00, 0xF4, 0x00, 0x6A, 0x6C, 0xEA, -0x02, 0x22, 0x80, 0x18, 0xD1, 0x75, 0x30, 0xF0, +0x02, 0x22, 0x80, 0x18, 0x26, 0x74, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF1, 0x78, 0x9B, 0x01, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x80, 0x18, -0x50, 0x75, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF1, +0xA5, 0x73, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF1, 0x78, 0x9B, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x18, 0xA4, 0xDE, 0x30, 0xF0, +0x02, 0x22, 0x00, 0x18, 0x04, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, 0x58, 0x9A, 0x8B, 0xF1, 0x78, 0x9B, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x18, 0xD8, 0xDE, 0x30, 0xF0, +0x02, 0x22, 0x00, 0x18, 0x38, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, -0x48, 0x9A, 0x8B, 0xF1, 0x78, 0x9B, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x18, 0x59, 0xE0, 0x30, 0xF0, +0x4C, 0x9A, 0x8B, 0xF1, 0x78, 0x9B, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0xF1, 0xDF, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF1, 0x7C, 0x9A, 0x4C, 0x23, 0x01, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, -0x00, 0x18, 0x99, 0xE0, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0x18, 0xF5, 0xDF, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF1, 0x5C, 0x9A, 0x02, 0x6B, 0x6C, 0xEA, -0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, 0x5D, 0xE0, +0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, 0xE0, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF1, 0x5C, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, -0x00, 0x18, 0x99, 0xE0, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0x18, 0xF5, 0xDF, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF1, 0x5C, 0x9A, 0x08, 0x6B, 0x6C, 0xEA, -0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, 0x5D, 0xE0, +0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, 0xE0, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF1, 0x5C, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, -0x00, 0x18, 0x99, 0xE0, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0x18, 0xF5, 0xDF, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF1, 0x5C, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, -0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, 0x5D, 0xE0, +0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, 0xE0, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF1, 0x5C, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, -0x00, 0x18, 0x99, 0xE0, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0x18, 0xF5, 0xDF, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF1, 0x5C, 0x9A, 0x80, 0x6B, 0x6C, 0xEA, -0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, 0x5D, 0xE0, +0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, 0xE0, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x00, 0x6B, 0x77, 0xDA, 0x78, 0xDA, 0x79, 0xDA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x74, 0x9B, -0x10, 0xF0, 0x24, 0x6A, 0x16, 0xF5, 0x12, 0x4A, +0x10, 0xF0, 0x24, 0x6A, 0x76, 0xF2, 0x0A, 0x4A, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x74, 0x9B, 0x10, 0xF0, 0x24, 0x6A, -0x17, 0xF0, 0x11, 0x4A, 0x40, 0xDB, 0x30, 0xF0, +0x76, 0xF5, 0x09, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF1, 0x64, 0x9A, 0xC0, 0xF0, 0x1C, 0x23, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, -0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, 0x5C, 0xE1, +0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, 0xB2, 0xE0, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF1, 0x64, 0x9B, 0x04, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, -0x01, 0x6C, 0x00, 0x18, 0x5C, 0xE1, 0x30, 0xF0, +0x01, 0x6C, 0x00, 0x18, 0xB2, 0xE0, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF1, 0x64, 0x9B, 0x08, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, -0x00, 0x18, 0x5C, 0xE1, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0x18, 0xB2, 0xE0, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF1, 0x64, 0x9B, 0x10, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, -0x5C, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF1, 0x58, 0x9A, 0x8B, 0xF1, +0xB2, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF1, 0x5C, 0x9A, 0x8B, 0xF1, 0x64, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, -0x00, 0x18, 0x5C, 0xE1, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0x50, 0x9A, +0x00, 0x18, 0xB2, 0xE0, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0x54, 0x9A, 0x8B, 0xF1, 0x64, 0x9B, 0x6C, 0xEA, 0x03, 0x22, -0x05, 0x6C, 0x00, 0x18, 0x5C, 0xE1, 0x30, 0xF0, +0x05, 0x6C, 0x00, 0x18, 0xB2, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, -0x54, 0x9A, 0x8B, 0xF1, 0x64, 0x9B, 0x6C, 0xEA, -0x03, 0x22, 0x06, 0x6C, 0x00, 0x18, 0x5C, 0xE1, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF2, 0x58, 0x9A, 0x8B, 0xF1, 0x64, 0x9B, -0x6C, 0xEA, 0x03, 0x22, 0x07, 0x6C, 0x00, 0x18, -0x5C, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF2, 0x40, 0x9A, 0x8B, 0xF1, -0x64, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x08, 0x6C, -0x00, 0x18, 0x5C, 0xE1, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, 0x4C, 0x9A, -0x8B, 0xF1, 0x64, 0x9B, 0x6C, 0xEA, 0x03, 0x22, -0x09, 0x6C, 0x00, 0x18, 0x5C, 0xE1, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF6, 0x58, 0x9A, 0x8B, 0xF1, 0x64, 0x9B, 0x6C, 0xEA, -0x03, 0x22, 0x0A, 0x6C, 0x00, 0x18, 0x5C, 0xE1, +0x03, 0x22, 0x06, 0x6C, 0x00, 0x18, 0xB2, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF2, 0x54, 0x9A, 0x8B, 0xF1, 0x64, 0x9B, +0x63, 0xF2, 0x5C, 0x9A, 0x8B, 0xF1, 0x64, 0x9B, +0x6C, 0xEA, 0x03, 0x22, 0x07, 0x6C, 0x00, 0x18, +0xB2, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF2, 0x44, 0x9A, 0x8B, 0xF1, +0x64, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x08, 0x6C, +0x00, 0x18, 0xB2, 0xE0, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, 0x50, 0x9A, +0x8B, 0xF1, 0x64, 0x9B, 0x6C, 0xEA, 0x03, 0x22, +0x09, 0x6C, 0x00, 0x18, 0xB2, 0xE0, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF6, +0x48, 0x9A, 0x8B, 0xF1, 0x64, 0x9B, 0x6C, 0xEA, +0x03, 0x22, 0x0A, 0x6C, 0x00, 0x18, 0xB2, 0xE0, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF2, 0x58, 0x9A, 0x8B, 0xF1, 0x64, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x0B, 0x6C, 0x00, 0x18, -0x5C, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0xB2, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, 0x58, 0x9A, 0x8B, 0xF1, 0x64, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x0C, 0x6C, -0x00, 0x18, 0x5C, 0xE1, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0x48, 0x9A, +0x00, 0x18, 0xB2, 0xE0, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0x4C, 0x9A, 0x8B, 0xF1, 0x64, 0x9B, 0x6C, 0xEA, 0x03, 0x22, -0x0D, 0x6C, 0x00, 0x18, 0x5C, 0xE1, 0x30, 0xF0, +0x0D, 0x6C, 0x00, 0x18, 0xB2, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, 0x50, 0x9A, 0x8B, 0xF1, 0x64, 0x9B, 0x6C, 0xEA, -0x03, 0x22, 0x0E, 0x6C, 0x00, 0x18, 0x5C, 0xE1, +0x03, 0x22, 0x0E, 0x6C, 0x00, 0x18, 0xB2, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x5C, 0x9A, 0x8B, 0xF1, 0x64, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x0F, 0x6C, 0x00, 0x18, -0x5C, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF1, +0xB2, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF1, 0x44, 0x9A, 0x80, 0x6B, 0x6C, 0xEA, 0x02, 0x22, -0x00, 0x18, 0xAF, 0xE1, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0x18, 0x05, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x00, 0x6B, 0x73, 0xDA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x74, 0x9B, -0x10, 0xF0, 0x24, 0x6A, 0x17, 0xF0, 0x12, 0x4A, +0x10, 0xF0, 0x24, 0x6A, 0x76, 0xF5, 0x0A, 0x4A, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x74, 0x9B, 0x10, 0xF0, 0x24, 0x6A, -0xF7, 0xF1, 0x11, 0x4A, 0x40, 0xDB, 0x30, 0xF0, +0x56, 0xF7, 0x09, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x4B, 0xF1, 0x78, 0x9A, 0xE0, 0xF0, 0x1E, 0x23, 0x08, 0x6A, 0x6C, 0xEA, 0x03, 0x22, -0x00, 0x6C, 0x00, 0x18, 0x21, 0xDF, 0x30, 0xF0, +0x00, 0x6C, 0x00, 0x18, 0x81, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x4B, 0xF1, 0x58, 0x9A, 0x02, 0x6B, -0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x8D, 0xDE, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0xEC, 0xDD, 0x30, 0xF0, 0x20, 0x6A, 0x4B, 0xF1, 0x58, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, -0xAB, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x4B, 0xF1, +0x01, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x4B, 0xF1, 0x58, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x02, 0x22, -0x00, 0x18, 0xA7, 0xE1, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0x18, 0xFD, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x4B, 0xF1, 0x58, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x18, 0x92, 0xDE, 0x30, 0xF0, +0x02, 0x22, 0x00, 0x18, 0xF1, 0xDD, 0x30, 0xF0, 0x20, 0x6A, 0x4B, 0xF1, 0x58, 0x9A, 0x80, 0x6B, 0x6C, 0xEA, 0x05, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x48, 0x9A, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x4B, 0xF1, 0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, -0xA3, 0xE1, 0x30, 0xF0, 0x20, 0x6B, 0x4B, 0xF1, +0xF9, 0xE0, 0x30, 0xF0, 0x20, 0x6B, 0x4B, 0xF1, 0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x18, 0x9F, 0xE1, 0x30, 0xF0, +0x02, 0x22, 0x00, 0x18, 0xF5, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x84, 0xF1, -0x50, 0x9A, 0x4B, 0xF1, 0x78, 0x9B, 0x6C, 0xEA, +0x54, 0x9A, 0x4B, 0xF1, 0x78, 0x9B, 0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x58, 0x9A, 0x6C, 0xEA, 0x04, 0x22, 0x00, 0x6C, -0x00, 0x18, 0x01, 0xE0, 0x03, 0x10, 0x00, 0x6C, -0x00, 0x18, 0xE3, 0xDE, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0x84, 0xF1, 0x54, 0x9A, +0x00, 0x18, 0x99, 0xDF, 0x03, 0x10, 0x00, 0x6C, +0x00, 0x18, 0x43, 0xDE, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x84, 0xF1, 0x58, 0x9A, 0x4B, 0xF1, 0x78, 0x9B, 0x6C, 0xEA, 0x0D, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0x48, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0x4C, 0x9A, 0x6C, 0xEA, 0x04, 0x22, 0x01, 0x6C, 0x00, 0x18, -0x01, 0xE0, 0x03, 0x10, 0x01, 0x6C, 0x00, 0x18, -0xE3, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x84, 0xF1, 0x58, 0x9A, 0x4B, 0xF1, +0x99, 0xDF, 0x03, 0x10, 0x01, 0x6C, 0x00, 0x18, +0x43, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x84, 0xF1, 0x5C, 0x9A, 0x4B, 0xF1, 0x78, 0x9B, 0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, 0x50, 0x9A, 0x6C, 0xEA, -0x04, 0x22, 0x02, 0x6C, 0x00, 0x18, 0x01, 0xE0, -0x03, 0x10, 0x02, 0x6C, 0x00, 0x18, 0xE3, 0xDE, +0x04, 0x22, 0x02, 0x6C, 0x00, 0x18, 0x99, 0xDF, +0x03, 0x10, 0x02, 0x6C, 0x00, 0x18, 0x43, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0x84, 0xF1, 0x5C, 0x9A, 0x4B, 0xF1, 0x78, 0x9B, +0xA4, 0xF1, 0x40, 0x9A, 0x4B, 0xF1, 0x78, 0x9B, 0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x5C, 0x9A, 0x6C, 0xEA, 0x04, 0x22, -0x03, 0x6C, 0x00, 0x18, 0x01, 0xE0, 0x03, 0x10, -0x03, 0x6C, 0x00, 0x18, 0xE3, 0xDE, 0x30, 0xF0, +0x03, 0x6C, 0x00, 0x18, 0x99, 0xDF, 0x03, 0x10, +0x03, 0x6C, 0x00, 0x18, 0x43, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xA4, 0xF1, -0x40, 0x9A, 0x4B, 0xF1, 0x78, 0x9B, 0x6C, 0xEA, +0x44, 0x9A, 0x4B, 0xF1, 0x78, 0x9B, 0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, -0x54, 0x9A, 0x6C, 0xEA, 0x04, 0x22, 0x04, 0x6C, -0x00, 0x18, 0x01, 0xE0, 0x03, 0x10, 0x04, 0x6C, -0x00, 0x18, 0xE3, 0xDE, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0xA4, 0xF1, 0x44, 0x9A, +0x58, 0x9A, 0x6C, 0xEA, 0x04, 0x22, 0x04, 0x6C, +0x00, 0x18, 0x99, 0xDF, 0x03, 0x10, 0x04, 0x6C, +0x00, 0x18, 0x43, 0xDE, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xA4, 0xF1, 0x48, 0x9A, 0x4B, 0xF1, 0x78, 0x9B, 0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, 0x44, 0x9A, 0x6C, 0xEA, 0x04, 0x22, 0x05, 0x6C, 0x00, 0x18, -0x01, 0xE0, 0x03, 0x10, 0x05, 0x6C, 0x00, 0x18, -0xE3, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0xA4, 0xF1, 0x48, 0x9A, 0x4B, 0xF1, +0x99, 0xDF, 0x03, 0x10, 0x05, 0x6C, 0x00, 0x18, +0x43, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xA4, 0xF1, 0x4C, 0x9A, 0x4B, 0xF1, 0x78, 0x9B, 0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF1, 0x54, 0x9A, 0x6C, 0xEA, -0x04, 0x22, 0x06, 0x6C, 0x00, 0x18, 0x01, 0xE0, -0x03, 0x10, 0x06, 0x6C, 0x00, 0x18, 0xE3, 0xDE, +0x20, 0x6A, 0xA3, 0xF1, 0x58, 0x9A, 0x6C, 0xEA, +0x04, 0x22, 0x06, 0x6C, 0x00, 0x18, 0x99, 0xDF, +0x03, 0x10, 0x06, 0x6C, 0x00, 0x18, 0x43, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0xA4, 0xF1, 0x4C, 0x9A, 0x4B, 0xF1, 0x78, 0x9B, +0xA4, 0xF1, 0x50, 0x9A, 0x4B, 0xF1, 0x78, 0x9B, 0x6C, 0xEA, 0x09, 0x22, 0x00, 0x53, 0x04, 0x60, -0x07, 0x6C, 0x00, 0x18, 0x01, 0xE0, 0x03, 0x10, -0x07, 0x6C, 0x00, 0x18, 0xE3, 0xDE, 0x30, 0xF0, +0x07, 0x6C, 0x00, 0x18, 0x99, 0xDF, 0x03, 0x10, +0x07, 0x6C, 0x00, 0x18, 0x43, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x4B, 0xF1, 0x7C, 0x9A, 0x80, 0xF0, 0x19, 0x23, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, -0x4C, 0x9A, 0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, -0x00, 0x18, 0xAE, 0xDF, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF6, 0x58, 0x9A, +0x50, 0x9A, 0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, +0x00, 0x18, 0x46, 0xDF, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF6, 0x48, 0x9A, 0x4B, 0xF1, 0x7C, 0x9B, 0x6C, 0xEA, 0x03, 0x22, -0x01, 0x6C, 0x00, 0x18, 0xAE, 0xDF, 0x30, 0xF0, +0x01, 0x6C, 0x00, 0x18, 0x46, 0xDF, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF2, -0x54, 0x9A, 0x4B, 0xF1, 0x7C, 0x9B, 0x6C, 0xEA, -0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, 0xAE, 0xDF, +0x58, 0x9A, 0x4B, 0xF1, 0x7C, 0x9B, 0x6C, 0xEA, +0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, 0x46, 0xDF, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, 0x58, 0x9A, 0x4B, 0xF1, 0x7C, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, -0xAE, 0xDF, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF2, 0x48, 0x9A, 0x4B, 0xF1, +0x46, 0xDF, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF2, 0x4C, 0x9A, 0x4B, 0xF1, 0x7C, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, -0x00, 0x18, 0xAE, 0xDF, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0x50, 0x9A, +0x00, 0x18, 0x46, 0xDF, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0x54, 0x9A, 0x4B, 0xF1, 0x7C, 0x9B, 0x6C, 0xEA, 0x03, 0x22, -0x00, 0x6C, 0x00, 0x18, 0xE4, 0xDE, 0x30, 0xF0, +0x00, 0x6C, 0x00, 0x18, 0x44, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, -0x54, 0x9A, 0x4B, 0xF1, 0x7C, 0x9B, 0x6C, 0xEA, -0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, 0x56, 0xDF, +0x58, 0x9A, 0x4B, 0xF1, 0x7C, 0x9B, 0x6C, 0xEA, +0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, 0xB6, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF2, 0x58, 0x9A, 0x4B, 0xF1, 0x7C, 0x9B, +0x63, 0xF2, 0x5C, 0x9A, 0x4B, 0xF1, 0x7C, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, -0x80, 0xDF, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF2, 0x40, 0x9A, 0x4B, 0xF1, +0x18, 0xDF, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF2, 0x44, 0x9A, 0x4B, 0xF1, 0x7C, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, -0x00, 0x18, 0x39, 0xDF, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0x18, 0x99, 0xDE, 0x30, 0xF0, 0x20, 0x6B, 0x4B, 0xF1, 0x7C, 0x9B, 0x08, 0xF0, 0x00, 0x6A, -0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x90, 0xE1, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0xE6, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF1, 0x58, 0x9A, 0x4B, 0xF1, 0x7C, 0x9B, -0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x94, 0xE1, +0xA3, 0xF1, 0x5C, 0x9A, 0x4B, 0xF1, 0x7C, 0x9B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0xEA, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, 0x70, 0x9B, 0x89, 0x9A, 0x8C, 0xEB, 0x07, 0x23, 0xA0, 0xF0, @@ -24927,331 +24535,331 @@ u8 array_mp_8822c_fw_nic[] = { 0xA0, 0xF0, 0x64, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, 0x60, 0x9A, 0x78, 0x23, 0x01, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, -0xF4, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, +0x4A, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, 0x40, 0x9A, 0x02, 0x6B, 0x6C, 0xEA, 0x03, 0x22, -0x10, 0x6C, 0x00, 0x18, 0xBC, 0xE1, 0x30, 0xF0, +0x10, 0x6C, 0x00, 0x18, 0x12, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, 0x40, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x20, 0x6C, 0x00, 0x18, -0xBC, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, +0x12, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, 0x40, 0x9A, 0x08, 0x6B, 0x6C, 0xEA, 0x03, 0x22, -0x30, 0x6C, 0x00, 0x18, 0xBC, 0xE1, 0x30, 0xF0, +0x30, 0x6C, 0x00, 0x18, 0x12, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, 0x40, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x40, 0x6C, 0x00, 0x18, -0xBC, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, +0x12, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, 0x40, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x03, 0x22, -0x50, 0x6C, 0x00, 0x18, 0xBC, 0xE1, 0x30, 0xF0, +0x50, 0x6C, 0x00, 0x18, 0x12, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, 0x40, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x60, 0x6C, 0x00, 0x18, -0xBC, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, +0x12, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, 0x40, 0x9A, 0x80, 0x6B, 0x6C, 0xEA, 0x03, 0x22, -0x70, 0x6C, 0x00, 0x18, 0xBC, 0xE1, 0x30, 0xF0, +0x70, 0x6C, 0x00, 0x18, 0x12, 0xE1, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF1, 0x60, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, -0x00, 0x18, 0xF4, 0xE1, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0x18, 0x4A, 0xE1, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF1, 0x60, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, -0xF4, 0xE1, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF1, +0x4A, 0xE1, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF1, 0x60, 0x9B, 0x00, 0xF4, 0x00, 0x6A, 0x6C, 0xEA, -0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, 0xF4, 0xE1, +0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, 0x4A, 0xE1, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF1, 0x60, 0x9B, 0x01, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, -0x04, 0x6C, 0x00, 0x18, 0xF4, 0xE1, 0x30, 0xF0, +0x04, 0x6C, 0x00, 0x18, 0x4A, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, 0x64, 0x9A, 0xA0, 0xF0, 0x13, 0x23, 0x01, 0x6A, 0x6C, 0xEA, 0x03, 0x22, -0x00, 0x6C, 0x00, 0x18, 0x73, 0xE1, 0x30, 0xF0, +0x00, 0x6C, 0x00, 0x18, 0xC9, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, 0x44, 0x9A, 0x02, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x10, 0x6C, 0x00, 0x18, -0x6A, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, +0xC0, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, 0x44, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, 0x03, 0x22, -0x20, 0x6C, 0x00, 0x18, 0x6A, 0xE1, 0x30, 0xF0, +0x20, 0x6C, 0x00, 0x18, 0xC0, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, 0x44, 0x9A, 0x08, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x30, 0x6C, 0x00, 0x18, -0x6A, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, +0xC0, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, 0x44, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, 0x03, 0x22, -0x40, 0x6C, 0x00, 0x18, 0x6A, 0xE1, 0x30, 0xF0, +0x40, 0x6C, 0x00, 0x18, 0xC0, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, 0x44, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x50, 0x6C, 0x00, 0x18, -0x6A, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, +0xC0, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, 0x44, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, 0x03, 0x22, -0x60, 0x6C, 0x00, 0x18, 0x6A, 0xE1, 0x30, 0xF0, +0x60, 0x6C, 0x00, 0x18, 0xC0, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, 0x44, 0x9A, 0x80, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x70, 0x6C, 0x00, 0x18, -0x6A, 0xE1, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF1, +0xC0, 0xE0, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF1, 0x64, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, -0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, 0x73, 0xE1, +0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, 0xC9, 0xE0, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF1, 0x64, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, -0x02, 0x6C, 0x00, 0x18, 0x73, 0xE1, 0x30, 0xF0, +0x02, 0x6C, 0x00, 0x18, 0xC9, 0xE0, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF1, 0x64, 0x9B, 0x00, 0xF4, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, -0x00, 0x18, 0x73, 0xE1, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0x18, 0xC9, 0xE0, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF1, 0x64, 0x9B, 0x01, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, -0x73, 0xE1, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF1, +0xC9, 0xE0, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF1, 0x64, 0x9B, 0x10, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, -0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, 0xFB, 0xC2, +0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, 0xEE, 0xC1, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF2, 0x54, 0x9A, 0x6B, 0xF1, 0x64, 0x9B, +0xA3, 0xF2, 0x58, 0x9A, 0x6B, 0xF1, 0x64, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, -0xFB, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0xEE, 0xC1, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, 0x44, 0x9A, 0x6B, 0xF1, 0x64, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, -0x00, 0x18, 0xFB, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0x54, 0x9A, +0x00, 0x18, 0xEE, 0xC1, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0x58, 0x9A, 0x6B, 0xF1, 0x64, 0x9B, 0x6C, 0xEA, 0x03, 0x22, -0x03, 0x6C, 0x00, 0x18, 0xFB, 0xC2, 0x30, 0xF0, +0x03, 0x6C, 0x00, 0x18, 0xEE, 0xC1, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, 0x44, 0x9A, 0x00, 0x52, -0x03, 0x60, 0x04, 0x6C, 0x00, 0x18, 0xFB, 0xC2, +0x03, 0x60, 0x04, 0x6C, 0x00, 0x18, 0xEE, 0xC1, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, 0x68, 0x9A, 0xC0, 0xF0, 0x18, 0x23, 0x01, 0x6A, 0x6C, 0xEA, -0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, 0xE4, 0xDE, +0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, 0x44, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, 0x48, 0x9A, 0x02, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, -0x00, 0x18, 0x56, 0xDF, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0x18, 0xB6, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, 0x48, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, -0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, 0x80, 0xDF, +0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, 0x18, 0xDF, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, 0x48, 0x9A, 0x08, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, -0x00, 0x18, 0x39, 0xDF, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0x18, 0x99, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, 0x48, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, -0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, 0xE4, 0xDE, +0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, 0x44, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, 0x48, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, -0x00, 0x18, 0x56, 0xDF, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0x18, 0xB6, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, 0x48, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, -0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, 0x80, 0xDF, +0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, 0x18, 0xDF, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, 0x48, 0x9A, 0x80, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, -0x00, 0x18, 0x39, 0xDF, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0x18, 0x99, 0xDE, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF1, 0x68, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, -0xE4, 0xDE, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF1, +0x44, 0xDE, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF1, 0x68, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, -0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, 0x56, 0xDF, +0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, 0xB6, 0xDE, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF1, 0x68, 0x9B, 0x00, 0xF4, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, -0x03, 0x6C, 0x00, 0x18, 0x80, 0xDF, 0x30, 0xF0, +0x03, 0x6C, 0x00, 0x18, 0x18, 0xDF, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF1, 0x68, 0x9B, 0x01, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, -0x00, 0x18, 0x39, 0xDF, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0x18, 0x99, 0xDE, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF1, 0x68, 0x9B, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, -0xE4, 0xDE, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF1, +0x44, 0xDE, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF1, 0x68, 0x9B, 0x04, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, -0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, 0x56, 0xDF, +0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, 0xB6, 0xDE, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF1, 0x68, 0x9B, 0x08, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, -0x04, 0x6C, 0x00, 0x18, 0x80, 0xDF, 0x30, 0xF0, +0x04, 0x6C, 0x00, 0x18, 0x18, 0xDF, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF1, 0x68, 0x9B, 0x10, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, -0x00, 0x18, 0x39, 0xDF, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0x58, 0x9A, +0x00, 0x18, 0x99, 0xDE, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0x5C, 0x9A, 0x6B, 0xF1, 0x68, 0x9B, 0x6C, 0xEA, 0x03, 0x22, -0x01, 0x6C, 0x00, 0x18, 0x21, 0xDF, 0x30, 0xF0, +0x01, 0x6C, 0x00, 0x18, 0x81, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, -0x50, 0x9A, 0x6B, 0xF1, 0x68, 0x9B, 0x6C, 0xEA, -0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, 0x21, 0xDF, +0x54, 0x9A, 0x6B, 0xF1, 0x68, 0x9B, 0x6C, 0xEA, +0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, 0x81, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF2, 0x54, 0x9A, 0x6B, 0xF1, 0x68, 0x9B, +0x63, 0xF2, 0x58, 0x9A, 0x6B, 0xF1, 0x68, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, -0x21, 0xDF, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF2, 0x58, 0x9A, 0x6B, 0xF1, +0x81, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF2, 0x5C, 0x9A, 0x6B, 0xF1, 0x68, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, -0x00, 0x18, 0x21, 0xDF, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0x18, 0x81, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x00, 0x6B, 0x68, 0xDA, 0x69, 0xDA, 0x6A, 0xDA, 0x6B, 0xDA, 0x6C, 0xDA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x74, 0x9B, -0x10, 0xF0, 0x24, 0x6A, 0xF7, 0xF1, 0x12, 0x4A, +0x10, 0xF0, 0x24, 0x6A, 0x56, 0xF7, 0x0A, 0x4A, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x0B, 0x2A, -0x30, 0xF0, 0x20, 0x6B, 0xE4, 0xF1, 0xB4, 0x9B, -0x30, 0xF0, 0x20, 0x6E, 0xE4, 0xF1, 0xD8, 0x9E, +0x30, 0xF0, 0x20, 0x6B, 0xE4, 0xF1, 0xB8, 0x9B, +0x30, 0xF0, 0x20, 0x6E, 0xE4, 0xF1, 0xDC, 0x9E, 0x60, 0x9D, 0xCC, 0xEB, 0x0C, 0x10, 0x01, 0x72, 0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0xE4, 0xF1, -0xB4, 0x9B, 0x30, 0xF0, 0x20, 0x6E, 0xE3, 0xF2, +0xB8, 0x9B, 0x30, 0xF0, 0x20, 0x6E, 0xE3, 0xF2, 0xD8, 0x9E, 0x60, 0x9D, 0xCD, 0xEB, 0x60, 0xDD, 0x05, 0x5C, 0x60, 0xF1, 0x1A, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x88, 0x34, 0xC3, 0xF0, 0x00, 0x4B, 0x8D, 0xE3, 0x60, 0x9B, 0x00, 0xEB, 0x07, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF1, 0x74, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF1, 0x78, 0x9A, 0x7F, 0x6A, 0x80, 0xA3, 0x12, 0x10, 0x01, 0x72, 0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF1, -0x74, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, +0x78, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x40, 0xA3, 0x80, 0x4D, 0xC0, 0x4D, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, 0x02, 0x72, 0x05, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xE4, 0xF1, 0x74, 0x9A, 0x5B, 0x10, 0x03, 0x72, +0xE4, 0xF1, 0x78, 0x9A, 0x5B, 0x10, 0x03, 0x72, 0x40, 0xF1, 0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xE4, 0xF1, 0x74, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, +0xE4, 0xF1, 0x78, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xE9, 0x17, 0x07, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF1, 0x7C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF2, 0x60, 0x9A, 0xFB, 0x6A, 0x80, 0xA3, 0xE2, 0x17, 0x01, 0x72, 0x19, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF1, -0x94, 0x9A, 0xFF, 0x6A, 0x40, 0x6D, 0x60, 0xA4, +0x98, 0x9A, 0xFF, 0x6A, 0x40, 0x6D, 0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, -0x30, 0xF0, 0x20, 0x6B, 0xE4, 0xF1, 0x9C, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF2, 0x80, 0x9B, 0x01, 0x6D, 0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x60, 0xA4, 0x04, 0x6D, 0x4C, 0xEB, 0x48, 0x10, 0x02, 0x72, 0x0F, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF1, 0x74, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF1, 0x78, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF1, 0x7C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF2, 0x60, 0x9A, 0xFE, 0x6A, 0x80, 0xA3, 0xB6, 0x17, 0x03, 0x72, 0x00, 0xF1, 0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xE4, 0xF1, 0x94, 0x9A, 0xFF, 0x6B, 0x40, 0x6D, +0xE4, 0xF1, 0x98, 0x9A, 0xFF, 0x6B, 0x40, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, -0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF1, -0x9C, 0x9A, 0x01, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF2, +0x80, 0x9A, 0x01, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, 0x4B, 0x10, 0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xE4, 0xF1, 0x7C, 0x9A, 0x80, 0xA3, 0xBF, 0x6A, +0x04, 0xF2, 0x60, 0x9A, 0x80, 0xA3, 0xBF, 0x6A, 0x98, 0x17, 0x01, 0x72, 0x1B, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xE4, 0xF1, 0x94, 0x9A, 0xFF, 0x6A, +0x20, 0x6A, 0xE4, 0xF1, 0x98, 0x9A, 0xFF, 0x6A, 0x40, 0x6D, 0x60, 0xA4, 0x10, 0x6E, 0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x30, 0xF0, -0x20, 0x6B, 0xE4, 0xF1, 0x9C, 0x9B, 0x60, 0xA4, +0x20, 0x6B, 0x04, 0xF2, 0x80, 0x9B, 0x60, 0xA4, 0x4C, 0xEB, 0xCD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x20, 0xE8, 0x02, 0x72, 0x0F, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF1, 0x74, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF1, 0x78, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF1, 0x7C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF2, 0x60, 0x9A, 0xEF, 0x6A, 0x80, 0xA3, 0x6A, 0x17, 0x03, 0x72, 0xA0, 0xF0, 0x1F, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xE4, 0xF1, 0x94, 0x9A, 0xFF, 0x6B, 0x40, 0x6D, +0xE4, 0xF1, 0x98, 0x9A, 0xFF, 0x6B, 0x40, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, -0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF1, -0x9C, 0x9A, 0x10, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF2, +0x80, 0x9A, 0x10, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x20, 0xE8, -0x08, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF1, -0x7C, 0x9A, 0xFF, 0xF3, 0x1F, 0x6A, 0x80, 0xAB, +0x08, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF2, +0x60, 0x9A, 0xFF, 0xF3, 0x1F, 0x6A, 0x80, 0xAB, 0x83, 0x10, 0x01, 0x72, 0x1D, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xE4, 0xF1, 0x74, 0x9A, 0xFF, 0x6C, +0x20, 0x6A, 0xE4, 0xF1, 0x78, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0xE4, 0xF1, 0x7C, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, +0x04, 0xF2, 0x60, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, 0x7F, 0x4D, 0x40, 0xAB, 0x41, 0x4D, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xCB, 0x40, 0xAB, 0x00, 0xF3, 0x00, 0x4D, 0x8C, 0xEA, 0x51, 0x10, 0x02, 0x72, 0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xE4, 0xF1, 0x74, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, +0xE4, 0xF1, 0x78, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0xE4, 0xF1, 0x7C, 0x9A, 0xFF, 0xF6, 0x1F, 0x6A, +0x04, 0xF2, 0x60, 0x9A, 0xFF, 0xF6, 0x1F, 0x6A, 0x80, 0xAB, 0x52, 0x10, 0x03, 0x72, 0x6D, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF1, 0x74, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF1, 0x78, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0xE4, 0xF1, 0x7C, 0x9A, 0xFF, 0xF7, +0x20, 0x6A, 0x04, 0xF2, 0x60, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, 0x7F, 0x4D, 0x40, 0xAB, 0x41, 0x4D, 0x8C, 0xEA, 0x27, 0x10, 0x08, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0xE4, 0xF1, 0x7C, 0x9A, 0xF7, 0xF7, +0x20, 0x6A, 0x04, 0xF2, 0x60, 0x9A, 0xF7, 0xF7, 0x1F, 0x6A, 0x80, 0xAB, 0x31, 0x10, 0x01, 0x72, 0x1E, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF1, -0x74, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, +0x78, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF1, 0x7C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF2, 0x60, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, 0xC1, 0xF7, 0x00, 0x4D, 0x40, 0xAB, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xCB, 0x40, 0xAB, 0x06, 0xF0, 0x00, 0x4D, 0x8C, 0xEA, 0xAD, 0xEA, 0x11, 0x10, 0x02, 0x72, 0x12, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF1, -0x74, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, -0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF1, -0x7C, 0x9A, 0xFD, 0xF7, 0x1F, 0x6A, 0x80, 0xAB, +0x78, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF2, +0x60, 0x9A, 0xFD, 0xF7, 0x1F, 0x6A, 0x80, 0xAB, 0x8C, 0xEA, 0x40, 0xCB, 0x20, 0xE8, 0x03, 0x72, 0x18, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF1, -0x74, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, +0x78, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF1, 0x7C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF2, 0x60, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, 0xC1, 0xF7, 0x00, 0x4D, 0x40, 0xAB, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xCB, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, -0x04, 0xF2, 0x60, 0x9B, 0xFF, 0x6A, 0x4C, 0xED, +0x04, 0xF2, 0x64, 0x9B, 0xFF, 0x6A, 0x4C, 0xED, 0x6D, 0xE4, 0xC0, 0xA3, 0x3F, 0x6C, 0xCC, 0xEC, 0x80, 0xC3, 0x07, 0x2D, 0x80, 0xA3, 0x40, 0x6D, 0x4C, 0xEC, 0xAD, 0xEC, 0x4C, 0xEC, 0x80, 0xC3, 0x20, 0xE8, 0x01, 0x75, 0x07, 0x61, 0x80, 0xA3, 0x80, 0x6D, 0xAB, 0xED, 0x4C, 0xEC, 0xAD, 0xEC, 0x4C, 0xEC, 0x80, 0xC3, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0x44, 0xF0, 0x74, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x44, 0xF0, 0x78, 0x9B, 0xFF, 0x6A, 0xAC, 0xEA, 0x6D, 0xE4, 0x80, 0x9B, 0x80, 0xF4, 0x40, 0x32, 0x8D, 0xEA, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, 0xFE, 0x63, 0x03, 0xD1, 0x02, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE0, 0xF0, 0xDA, 0xA2, 0x01, 0x6B, 0xE3, 0x67, 0xCC, 0xEF, 0x00, 0xD7, 0xC3, 0xF3, -0x58, 0xA2, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6F, +0x54, 0xA2, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6F, 0x4C, 0xEE, 0x30, 0xF0, 0x20, 0x6A, 0x1E, 0x65, -0x03, 0xF2, 0xDC, 0x9A, 0x04, 0xF2, 0xE4, 0x9F, +0x23, 0xF2, 0xC0, 0x9A, 0x04, 0xF2, 0xE8, 0x9F, 0x30, 0xF0, 0x20, 0x69, 0xD9, 0xE4, 0x40, 0x9E, -0x04, 0xF2, 0x2C, 0x99, 0xEC, 0xEA, 0x30, 0xF0, -0x20, 0x6F, 0x04, 0xF2, 0xE8, 0x9F, 0xED, 0xEA, +0x04, 0xF2, 0x30, 0x99, 0xEC, 0xEA, 0x30, 0xF0, +0x20, 0x6F, 0x04, 0xF2, 0xEC, 0x9F, 0xED, 0xEA, 0x40, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF7, -0x04, 0x9A, 0x83, 0xF7, 0x00, 0x6A, 0x4B, 0xEA, +0x14, 0x9A, 0x83, 0xF7, 0x00, 0x6A, 0x4B, 0xEA, 0x01, 0xE4, 0xC0, 0x98, 0x7F, 0x6F, 0x4C, 0xEE, 0x43, 0xA5, 0xEC, 0xEA, 0x2D, 0xEA, 0xCD, 0xEA, 0x40, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF2, -0xD0, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x63, 0xF2, -0x18, 0x98, 0xD9, 0xE4, 0x40, 0x9E, 0x0D, 0xEA, +0xD4, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x63, 0xF2, +0x1C, 0x98, 0xD9, 0xE4, 0x40, 0x9E, 0x0D, 0xEA, 0x40, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF2, -0xD4, 0x9A, 0xFF, 0x68, 0x01, 0x48, 0xD9, 0xE4, +0xD8, 0x9A, 0xFF, 0x68, 0x01, 0x48, 0xD9, 0xE4, 0x40, 0x9E, 0x0D, 0xEA, 0x3F, 0xF6, 0x1F, 0x48, 0x0C, 0xEA, 0x40, 0xDE, 0x30, 0xF0, 0x20, 0x6A, -0x04, 0xF2, 0x58, 0x9A, 0x49, 0xE4, 0xC0, 0x9A, +0x04, 0xF2, 0x5C, 0x9A, 0x49, 0xE4, 0xC0, 0x9A, 0x40, 0xA5, 0xEC, 0xEA, 0x4D, 0xEE, 0x30, 0xF0, -0x20, 0x6A, 0x04, 0xF2, 0x5C, 0x9A, 0x49, 0xE4, +0x20, 0x6A, 0x24, 0xF2, 0x40, 0x9A, 0x49, 0xE4, 0x40, 0xA2, 0x4C, 0xEB, 0x05, 0x23, 0x03, 0xF7, 0x01, 0x6A, 0x4B, 0xEA, 0xCC, 0xEA, 0x07, 0x10, 0x61, 0xA5, 0x1F, 0xF7, 0x01, 0x6A, 0x4B, 0xEA, 0xCC, 0xEA, 0x60, 0x33, 0x6D, 0xEA, 0xC2, 0xA5, 0xFF, 0x6B, 0xCE, 0xEB, 0x0D, 0x23, 0x30, 0xF0, -0x20, 0x6B, 0x24, 0xF2, 0x60, 0x9B, 0x4C, 0xEB, +0x20, 0x6B, 0x24, 0xF2, 0x64, 0x9B, 0x4C, 0xEB, 0x80, 0xF4, 0xC0, 0x32, 0x30, 0xF0, 0x20, 0x6E, -0x63, 0xF2, 0xD0, 0x9E, 0xCD, 0xEA, 0x6D, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF2, 0x78, 0x9B, +0x63, 0xF2, 0xD4, 0x9E, 0xCD, 0xEA, 0x6D, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF2, 0x7C, 0x9B, 0x6D, 0xE4, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x24, 0xF2, 0xC4, 0x9A, 0x02, 0xF0, 0x00, 0x6B, +0x24, 0xF2, 0xC8, 0x9A, 0x02, 0xF0, 0x00, 0x6B, 0x6B, 0xEB, 0xD9, 0xE4, 0x40, 0x9E, 0x6C, 0xEA, 0x62, 0xAD, 0xE1, 0xF7, 0x1F, 0x6D, 0xAC, 0xEB, 0x6D, 0xEA, 0x40, 0xDE, 0x30, 0xF0, 0x20, 0x6A, -0x24, 0xF2, 0x68, 0x9A, 0x0E, 0xF0, 0x01, 0x4D, +0x24, 0xF2, 0x6C, 0x9A, 0x0E, 0xF0, 0x01, 0x4D, 0x6D, 0xE4, 0x40, 0x9B, 0xAD, 0xEA, 0xC8, 0xF0, 0x00, 0x4D, 0xAC, 0xEA, 0x40, 0xDB, 0x02, 0x61, 0x00, 0x97, 0x15, 0x27, 0x30, 0xF0, 0x20, 0x6A, -0x24, 0xF2, 0x4C, 0x9A, 0xFF, 0x6B, 0x80, 0x6D, +0x24, 0xF2, 0x50, 0x9A, 0xFF, 0x6B, 0x80, 0x6D, 0x51, 0xE4, 0x40, 0xA4, 0xAB, 0xED, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x30, 0xF0, -0x20, 0x6A, 0x24, 0xF2, 0x50, 0x9A, 0x00, 0x6B, +0x20, 0x6A, 0x24, 0xF2, 0x54, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x00, 0x6B, 0x11, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x24, 0xF2, 0x4C, 0x9A, 0x51, 0xE4, +0x20, 0x6A, 0x24, 0xF2, 0x50, 0x9A, 0x51, 0xE4, 0x60, 0xA4, 0x7F, 0x6A, 0x6C, 0xEA, 0x40, 0xC4, -0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF2, 0x50, 0x9A, -0x1C, 0x6B, 0x60, 0xC2, 0x08, 0xF4, 0x13, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF2, 0x54, 0x9A, +0x1C, 0x6B, 0x60, 0xC2, 0x08, 0xF4, 0x13, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF2, 0x58, 0x9A, 0x60, 0xCA, 0x03, 0x91, 0x02, 0x90, 0x02, 0x63, 0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, -0x70, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF3, +0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF3, 0x84, 0x9C, 0x40, 0x9B, 0x20, 0x6D, 0x00, 0x6E, 0x8D, 0xEA, 0x40, 0xDB, 0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, 0x00, 0xF4, 0x1F, 0x6C, 0xE0, 0xF1, 0x14, 0x6F, -0x40, 0xEA, 0x02, 0x67, 0x00, 0x18, 0x45, 0xE6, +0x40, 0xEA, 0x02, 0x67, 0x00, 0x18, 0x9B, 0xE5, 0x50, 0x67, 0x09, 0x97, 0x08, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0x2F, 0xD7, 0x00, 0x6B, 0x32, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF2, 0x78, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF1, 0x98, 0x9C, +0x00, 0x18, 0x85, 0xD6, 0x00, 0x6B, 0x32, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF2, 0x7C, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF1, 0x9C, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF2, 0x70, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF2, 0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF3, 0x9C, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, -0x50, 0x9A, 0x02, 0xF0, 0x00, 0x6B, 0x40, 0x9A, +0x54, 0x9A, 0x02, 0xF0, 0x00, 0x6B, 0x40, 0x9A, 0x6C, 0xEA, 0xF1, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x24, 0xF2, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0x83, 0xF7, 0x8C, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, +0x24, 0xF2, 0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x83, 0xF7, 0x90, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, 0x40, 0xDB, 0x01, 0x6B, 0x05, 0x97, 0x43, 0x67, 0x03, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0xFF, 0xF7, @@ -25260,131 +24868,131 @@ u8 array_mp_8822c_fw_nic[] = { 0x05, 0xD6, 0x08, 0xD5, 0x09, 0xD7, 0x2B, 0xF1, 0x18, 0x4B, 0xE0, 0xF0, 0xBA, 0xA3, 0x01, 0x6C, 0xC5, 0x67, 0x8C, 0xEE, 0x4C, 0xEE, 0x04, 0xD6, -0xC3, 0xF3, 0x38, 0xA3, 0x8C, 0xE9, 0x4C, 0xE9, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x48, 0x9A, +0xC3, 0xF3, 0x34, 0xA3, 0x8C, 0xE9, 0x4C, 0xE9, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x4C, 0x9A, 0x00, 0x6C, 0xA4, 0x67, 0x40, 0xAA, 0x62, 0x67, -0x0C, 0xEB, 0x06, 0xD3, 0x00, 0x18, 0x9D, 0xCD, +0x0C, 0xEB, 0x06, 0xD3, 0x00, 0x18, 0xF2, 0xCC, 0x06, 0x94, 0x07, 0x95, 0xE1, 0xF7, 0x1F, 0x6B, 0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF2, -0x84, 0x9C, 0x6D, 0xE5, 0x0C, 0xEB, 0x60, 0xCC, +0x88, 0x9C, 0x6D, 0xE5, 0x0C, 0xEB, 0x60, 0xCC, 0x7C, 0x32, 0x30, 0xF0, 0x20, 0x6B, 0x24, 0xF2, -0x68, 0x9B, 0x30, 0xF0, 0x20, 0x6C, 0x04, 0xF2, -0x98, 0x9C, 0x6D, 0xE2, 0x60, 0xAB, 0x08, 0x96, +0x6C, 0x9B, 0x30, 0xF0, 0x20, 0x6C, 0x04, 0xF2, +0x9C, 0x9C, 0x6D, 0xE2, 0x60, 0xAB, 0x08, 0x96, 0x91, 0xE2, 0x0C, 0xEB, 0x80, 0x9C, 0x05, 0x26, 0x10, 0xF0, 0x00, 0x6D, 0xAB, 0xED, 0xAD, 0xEB, 0x0C, 0xEB, 0xD8, 0xF0, 0x00, 0x6D, 0x6C, 0xED, -0x30, 0xF0, 0x20, 0x6B, 0x24, 0xF2, 0x68, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x24, 0xF2, 0x6C, 0x9B, 0x6D, 0xE2, 0xA0, 0xCB, 0x30, 0xF0, 0x20, 0x6B, -0x04, 0xF2, 0x7C, 0x9B, 0x6D, 0xE2, 0xA0, 0xA3, +0x24, 0xF2, 0x60, 0x9B, 0x6D, 0xE2, 0xA0, 0xA3, 0x01, 0x6B, 0xAC, 0xEB, 0x05, 0x23, 0x03, 0xF7, 0x01, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x07, 0x10, 0x09, 0x95, 0x1F, 0xF7, 0x01, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0x34, 0x8D, 0xEB, 0x05, 0x96, 0xFF, 0x76, 0x13, 0x60, 0x30, 0xF0, 0x20, 0x6C, -0x24, 0xF2, 0x80, 0x9C, 0x30, 0xF0, 0x20, 0x6D, -0x63, 0xF2, 0xB0, 0x9D, 0x6C, 0xEC, 0x80, 0xF4, +0x24, 0xF2, 0x84, 0x9C, 0x30, 0xF0, 0x20, 0x6D, +0x63, 0xF2, 0xB4, 0x9D, 0x6C, 0xEC, 0x80, 0xF4, 0xC0, 0x33, 0xAD, 0xEB, 0x8D, 0xEB, 0x30, 0xF0, -0x20, 0x6C, 0x04, 0xF2, 0x98, 0x9C, 0x91, 0xE2, +0x20, 0x6C, 0x04, 0xF2, 0x9C, 0x9C, 0x91, 0xE2, 0x60, 0xDC, 0x02, 0x29, 0x04, 0x93, 0x15, 0x23, -0x30, 0xF0, 0x20, 0x6B, 0x24, 0xF2, 0x8C, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x24, 0xF2, 0x90, 0x9B, 0xFF, 0x6D, 0x80, 0x6E, 0x91, 0xE2, 0x60, 0xA4, 0xCB, 0xEE, 0xAC, 0xEB, 0xCD, 0xEB, 0xAC, 0xEB, 0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0x24, 0xF2, -0x70, 0x9B, 0x00, 0x6C, 0x80, 0xC3, 0x00, 0x6C, +0x74, 0x9B, 0x00, 0x6C, 0x80, 0xC3, 0x00, 0x6C, 0x11, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x24, 0xF2, -0x8C, 0x9B, 0x7F, 0x6B, 0x91, 0xE2, 0xA0, 0xA4, +0x90, 0x9B, 0x7F, 0x6B, 0x91, 0xE2, 0xA0, 0xA4, 0xAC, 0xEB, 0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6B, -0x24, 0xF2, 0x70, 0x9B, 0x1C, 0x6C, 0x80, 0xC3, +0x24, 0xF2, 0x74, 0x9B, 0x1C, 0x6C, 0x80, 0xC3, 0x08, 0xF4, 0x13, 0x6C, 0x30, 0xF0, 0x20, 0x6B, -0x24, 0xF2, 0x74, 0x9B, 0x80, 0xCB, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF2, 0x94, 0x9B, 0xF7, 0x6B, +0x24, 0xF2, 0x78, 0x9B, 0x80, 0xCB, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF2, 0x98, 0x9B, 0xF7, 0x6B, 0x91, 0xE2, 0xA0, 0xA4, 0xAC, 0xEB, 0x60, 0xC4, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0x24, 0xF2, 0x5C, 0x9A, 0x8C, 0x34, 0x30, 0xF0, +0x44, 0xF2, 0x40, 0x9A, 0x8C, 0x34, 0x30, 0xF0, 0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, 0x03, 0xF3, 0x64, 0x9B, 0x6D, 0xEA, 0x0C, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x24, 0xF2, 0x5C, 0x9A, 0x8C, 0x34, +0x20, 0x6A, 0x44, 0xF2, 0x40, 0x9A, 0x8C, 0x34, 0x30, 0xF0, 0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, 0x03, 0xF3, 0x78, 0x9B, 0x6C, 0xEA, 0x40, 0xDC, 0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0x24, 0xF2, 0x5C, 0x9A, 0x8C, 0x34, 0x30, 0xF0, +0x44, 0xF2, 0x40, 0x9A, 0x8C, 0x34, 0x30, 0xF0, 0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, 0xA3, 0xF2, -0x74, 0x9B, 0x6D, 0xEA, 0x0C, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x24, 0xF2, 0x5C, 0x9A, 0x8C, 0x34, +0x78, 0x9B, 0x6D, 0xEA, 0x0C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x44, 0xF2, 0x40, 0x9A, 0x8C, 0x34, 0x30, 0xF0, 0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, 0x23, 0xF3, 0x78, 0x9B, 0x6C, 0xEA, 0x40, 0xDC, 0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0xFF, 0x6B, 0x24, 0xF2, 0x5C, 0x9A, 0x6C, 0xEC, +0xFF, 0x6B, 0x44, 0xF2, 0x40, 0x9A, 0x6C, 0xEC, 0x8C, 0x34, 0x51, 0xE4, 0x40, 0x9C, 0x01, 0x6C, 0x40, 0xF7, 0x42, 0x32, 0x8C, 0xEA, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0xFF, 0x6B, 0x24, 0xF2, 0x5C, 0x9A, 0x6C, 0xEC, +0xFF, 0x6B, 0x44, 0xF2, 0x40, 0x9A, 0x6C, 0xEC, 0x8C, 0x34, 0x51, 0xE4, 0x40, 0x9C, 0x01, 0x6C, 0x00, 0xF7, 0x42, 0x32, 0x8C, 0xEA, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x00, 0x68, 0x90, 0x67, 0x00, 0x6D, -0x00, 0x18, 0x43, 0xF2, 0x90, 0x67, 0x01, 0x6D, -0x01, 0x48, 0x00, 0x18, 0x53, 0xF2, 0x0B, 0x70, +0x00, 0x18, 0x99, 0xF1, 0x90, 0x67, 0x01, 0x6D, +0x01, 0x48, 0x00, 0x18, 0xA9, 0xF1, 0x0B, 0x70, 0xF5, 0x61, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, 0x0C, 0x6B, 0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, 0x0A, 0x69, 0x12, 0xED, 0x4C, 0xED, 0x04, 0xD5, 0xFF, 0x68, 0x2C, 0xE8, 0x90, 0x67, 0x00, 0x18, -0x63, 0xF2, 0x17, 0x2A, 0xFF, 0x49, 0x00, 0xF6, +0xB9, 0xF1, 0x17, 0x2A, 0xFF, 0x49, 0x00, 0xF6, 0x20, 0x31, 0x90, 0x67, 0x01, 0x6D, 0x00, 0xF6, -0x23, 0x31, 0x00, 0x18, 0x53, 0xF2, 0x41, 0x41, +0x23, 0x31, 0x00, 0x18, 0xA9, 0xF1, 0x41, 0x41, 0xEF, 0x2A, 0x01, 0x69, 0x2B, 0xE9, 0x09, 0x10, 0x04, 0x94, 0xFF, 0x49, 0x00, 0x6D, 0x00, 0xF6, -0x20, 0x31, 0x00, 0x18, 0x53, 0xF2, 0x00, 0xF6, +0x20, 0x31, 0x00, 0x18, 0xA9, 0xF1, 0x00, 0xF6, 0x23, 0x31, 0x00, 0x51, 0xF5, 0x60, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x0C, 0x68, 0x4C, 0xEC, 0x1B, 0xEC, 0x01, 0x28, 0xE5, 0xE8, 0x4C, 0xED, 0x10, 0xE9, 0x4C, 0xE9, 0x12, 0xE8, 0x4C, 0xE8, 0x0F, 0x25, -0x90, 0x67, 0x01, 0x6D, 0x00, 0x18, 0x43, 0xF2, -0x30, 0xF0, 0x20, 0x6A, 0x88, 0xF0, 0x0C, 0x4A, +0x90, 0x67, 0x01, 0x6D, 0x00, 0x18, 0x99, 0xF1, +0x30, 0xF0, 0x20, 0x6A, 0x88, 0xF0, 0x10, 0x4A, 0x41, 0xE0, 0x60, 0xA0, 0x01, 0x6A, 0x44, 0xE9, 0x6D, 0xEA, 0x40, 0xC0, 0x11, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x88, 0xF0, 0x0C, 0x4A, 0x49, 0xE0, +0x20, 0x6A, 0x88, 0xF0, 0x10, 0x4A, 0x49, 0xE0, 0x80, 0xA2, 0x01, 0x6B, 0x64, 0xE9, 0x6F, 0xEB, 0x8C, 0xEB, 0x60, 0xC2, 0x40, 0xA2, 0x04, 0x2A, -0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, 0x43, 0xF2, +0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, 0x99, 0xF1, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0x24, 0x67, 0x0C, 0xE9, 0xAC, 0xE8, 0x91, 0x67, 0xB0, 0x67, -0x00, 0x18, 0x96, 0xF2, 0x91, 0x67, 0xB0, 0x67, -0x00, 0x18, 0x7D, 0xF2, 0x07, 0x97, 0x06, 0x91, +0x00, 0x18, 0xEC, 0xF1, 0x91, 0x67, 0xB0, 0x67, +0x00, 0x18, 0xD3, 0xF1, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x0C, 0x6B, 0x7B, 0xED, 0x01, 0x2B, 0xE5, 0xE8, 0x05, 0x6E, 0xFF, 0x6A, 0x4C, 0xEC, 0x10, 0xEB, 0x12, 0xED, 0x4C, 0xED, 0xD8, 0xEB, 0x12, 0xEB, 0x4C, 0xEB, 0x1E, 0x73, 0x1D, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x44, 0xF2, 0x60, 0x9A, 0xAC, 0x35, +0x20, 0x6A, 0x44, 0xF2, 0x64, 0x9A, 0xAC, 0x35, 0x30, 0xF0, 0x20, 0x6E, 0x6D, 0xE5, 0x40, 0x9B, 0xC3, 0xF3, 0xC0, 0x9E, 0xCC, 0xEA, 0x80, 0xF7, 0x80, 0x36, 0xCD, 0xEA, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x24, 0xF2, 0x5C, 0x9A, 0x08, 0x6B, +0x20, 0x6A, 0x44, 0xF2, 0x40, 0x9A, 0x08, 0x6B, 0x6B, 0xEB, 0x55, 0xE5, 0x40, 0x9D, 0x8A, 0x34, 0x6C, 0xEA, 0x07, 0x6B, 0x6C, 0xEC, 0x1E, 0x10, 0x20, 0x5B, 0x0C, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x44, 0xF2, 0x40, 0x9A, 0x1F, 0x6E, 0xAC, 0x35, +0x44, 0xF2, 0x44, 0x9A, 0x1F, 0x6E, 0xAC, 0x35, 0xE6, 0x67, 0x55, 0xE5, 0xE4, 0xEB, 0x40, 0x9D, 0xEF, 0xEF, 0x0D, 0x10, 0xE0, 0x4B, 0x4C, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF2, 0x5C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF2, 0x40, 0x9A, 0xAC, 0x35, 0x1F, 0x6E, 0x55, 0xE5, 0xE0, 0x9D, 0x46, 0x67, 0x44, 0xEB, 0x4F, 0xEA, 0xCC, 0xEC, 0xEC, 0xEA, 0x84, 0xEB, 0x8D, 0xEA, 0x40, 0xDD, 0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0x2C, 0xEC, 0xCC, 0xE9, 0x05, 0x67, 0x01, 0x29, 0x00, 0x6C, -0xB0, 0x67, 0x00, 0x18, 0xBC, 0xF2, 0xFF, 0x6C, -0x0C, 0xEC, 0xB1, 0x67, 0x00, 0x18, 0xB1, 0xF2, +0xB0, 0x67, 0x00, 0x18, 0x12, 0xF2, 0xFF, 0x6C, +0x0C, 0xEC, 0xB1, 0x67, 0x00, 0x18, 0x07, 0xF2, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xAE, 0xEC, 0x01, 0x6A, 0x8C, 0xEA, 0x20, 0xE8, 0xFA, 0x63, 0x0B, 0x62, @@ -25393,7 +25001,7 @@ u8 array_mp_8822c_fw_nic[] = { 0x22, 0x10, 0x05, 0x92, 0x40, 0xA2, 0x07, 0xD2, 0x00, 0x6A, 0x04, 0xD2, 0x04, 0x92, 0x07, 0x94, 0x12, 0x35, 0x87, 0xEA, 0xFF, 0x6A, 0x4C, 0xEC, -0x00, 0x18, 0xEF, 0xF2, 0x06, 0x22, 0xFF, 0x6A, +0x00, 0x18, 0x45, 0xF2, 0x06, 0x22, 0xFF, 0x6A, 0x04, 0x30, 0x4C, 0xE8, 0x05, 0x6A, 0x4E, 0xE8, 0x01, 0x10, 0x04, 0x30, 0xFF, 0x6A, 0x4C, 0xE8, 0x04, 0x92, 0x01, 0x4A, 0x08, 0x72, 0x04, 0xD2, @@ -25404,36 +25012,36 @@ u8 array_mp_8822c_fw_nic[] = { 0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x60, 0xA4, 0x01, 0x6A, 0x04, 0x67, 0x6C, 0xEA, 0x44, 0x22, 0x66, 0x32, 0x30, 0xF0, -0x20, 0x6B, 0x44, 0xF2, 0x64, 0x9B, 0x54, 0x32, +0x20, 0x6B, 0x44, 0xF2, 0x68, 0x9B, 0x54, 0x32, 0x69, 0xE2, 0x61, 0xA4, 0x60, 0xC2, 0x40, 0xA4, -0x30, 0xF0, 0x20, 0x6B, 0x44, 0xF2, 0x68, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x44, 0xF2, 0x6C, 0x9B, 0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x62, 0xA4, 0x60, 0xC2, 0x40, 0xA4, 0x30, 0xF0, 0x20, 0x6B, -0x44, 0xF2, 0x6C, 0x9B, 0x46, 0x32, 0x54, 0x32, +0x44, 0xF2, 0x70, 0x9B, 0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x63, 0xA4, 0x60, 0xC2, 0x40, 0xA4, -0x30, 0xF0, 0x20, 0x6B, 0x44, 0xF2, 0x70, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x44, 0xF2, 0x74, 0x9B, 0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x64, 0xA4, 0x60, 0xC2, 0x40, 0xA4, 0x30, 0xF0, 0x20, 0x6B, -0x44, 0xF2, 0x74, 0x9B, 0x46, 0x32, 0x54, 0x32, +0x44, 0xF2, 0x78, 0x9B, 0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x65, 0xA4, 0x60, 0xC2, 0x40, 0xA4, -0x30, 0xF0, 0x20, 0x6B, 0x44, 0xF2, 0x78, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x44, 0xF2, 0x7C, 0x9B, 0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x66, 0xA4, 0x10, 0xF0, 0x00, 0x6C, 0x60, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0xE4, 0xF0, 0x64, 0x9A, 0x40, 0x9B, +0x20, 0x6A, 0xE4, 0xF0, 0x68, 0x9A, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x81, 0x40, 0x06, 0x6D, -0x00, 0x18, 0xF1, 0xF2, 0x60, 0xA0, 0x01, 0x6E, +0x00, 0x18, 0x47, 0xF2, 0x60, 0xA0, 0x01, 0x6E, 0x82, 0x67, 0x66, 0x35, 0x6C, 0xEE, 0x00, 0x18, -0xE3, 0xF2, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x39, 0xF2, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0x73, 0xF2, 0x30, 0xF0, 0x20, 0x6A, -0x44, 0xF2, 0x7C, 0x9A, 0xFF, 0xF7, 0x1F, 0x6A, +0x00, 0x18, 0xC9, 0xF1, 0x30, 0xF0, 0x20, 0x6A, +0x64, 0xF2, 0x60, 0x9A, 0xFF, 0xF7, 0x1F, 0x6A, 0x80, 0xAB, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF2, 0x84, 0x9C, 0x8D, 0xEA, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x00, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x89, 0xF6, 0x43, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0x89, 0xF6, 0x45, 0xC3, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x64, 0xF2, 0x40, 0x9A, 0xFF, 0x6E, 0xA0, 0x9A, +0x64, 0xF2, 0x44, 0x9A, 0xFF, 0x6E, 0xA0, 0x9A, 0x0F, 0x6A, 0x40, 0xF5, 0xA2, 0x33, 0x4C, 0xEB, 0x45, 0x67, 0xCC, 0xEA, 0x08, 0x72, 0x80, 0xF7, 0xA2, 0x34, 0x15, 0x60, 0x09, 0x5A, 0x07, 0x60, @@ -25449,16 +25057,16 @@ u8 array_mp_8822c_fw_nic[] = { 0x00, 0x6A, 0x0C, 0x73, 0x04, 0x10, 0x03, 0x74, 0x05, 0x61, 0x00, 0x6A, 0x0F, 0x73, 0x03, 0x60, 0x01, 0x6A, 0x20, 0xE8, 0x01, 0x6A, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF2, 0x64, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF2, 0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x4C, 0x9A, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x5C, 0x9A, 0xFF, 0x6B, 0x80, 0xA2, 0x6C, 0xEC, 0x8C, 0xEB, 0x44, 0x67, 0x01, 0x23, 0x01, 0x6A, 0xFF, 0x6B, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF2, 0x68, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF2, 0x6C, 0x9A, 0x01, 0x6D, 0xFF, 0x6C, 0x40, 0xA3, 0xAC, 0xEA, 0x02, 0x22, 0x45, 0x67, 0x15, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x64, 0xF2, 0xC4, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x64, 0xF2, 0xC8, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x4C, 0x9A, 0xC0, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x5C, 0x9A, 0x40, 0xA2, 0x0C, 0x22, 0x40, 0xA3, 0x8C, 0xEA, @@ -25474,32 +25082,32 @@ u8 array_mp_8822c_fw_nic[] = { 0x20, 0x6A, 0x03, 0xF3, 0x68, 0x9A, 0xFF, 0x6C, 0x04, 0x6D, 0x40, 0xA3, 0x10, 0x6E, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0x64, 0xF2, 0xAC, 0x9A, 0x40, 0xA5, +0x20, 0x6A, 0x64, 0xF2, 0xB0, 0x9A, 0x40, 0xA5, 0x8C, 0xEA, 0xCD, 0xEA, 0x8C, 0xEA, 0x40, 0xC5, 0x80, 0xA3, 0xFB, 0x6A, 0x8C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF2, 0x10, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF2, 0x14, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, 0xFF, 0x6C, 0x40, 0xA8, 0x01, 0x4C, 0x6C, 0xEA, 0x8D, 0xEA, 0x6C, 0xEA, 0x40, 0xC8, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, -0x4C, 0x9A, 0x64, 0xF2, 0x74, 0x9B, 0x60, 0xDA, -0x30, 0xF0, 0x20, 0x6B, 0x64, 0xF2, 0x78, 0x9B, -0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6B, 0x64, 0xF2, -0x7C, 0x9B, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6B, -0x84, 0xF2, 0x60, 0x9B, 0x60, 0xDA, 0x30, 0xF0, -0x20, 0x6B, 0x84, 0xF2, 0x64, 0x9B, 0x60, 0xDA, -0x30, 0xF0, 0x20, 0x6B, 0x84, 0xF2, 0x68, 0x9B, +0x4C, 0x9A, 0x64, 0xF2, 0x78, 0x9B, 0x60, 0xDA, +0x30, 0xF0, 0x20, 0x6B, 0x64, 0xF2, 0x7C, 0x9B, +0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6B, 0x84, 0xF2, +0x60, 0x9B, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6B, +0x84, 0xF2, 0x64, 0x9B, 0x60, 0xDA, 0x30, 0xF0, +0x20, 0x6B, 0x84, 0xF2, 0x68, 0x9B, 0x60, 0xDA, +0x30, 0xF0, 0x20, 0x6B, 0x84, 0xF2, 0x6C, 0x9B, 0x60, 0xDA, 0x60, 0xA8, 0xFF, 0xF6, 0x1F, 0x6A, 0x6C, 0xEA, 0x40, 0xC8, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, 0x30, 0xF0, -0x20, 0x6A, 0x0C, 0x33, 0x88, 0xF0, 0x18, 0x4A, +0x20, 0x6A, 0x0C, 0x33, 0x88, 0xF0, 0x1C, 0x4A, 0x49, 0xE3, 0x67, 0xA2, 0x0C, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0x89, 0xF6, 0x64, 0xA3, 0x01, 0x73, -0x24, 0x61, 0x80, 0xAA, 0x00, 0x18, 0x5D, 0xEC, +0x24, 0x61, 0x80, 0xAA, 0x00, 0x18, 0xB3, 0xEB, 0xFF, 0x72, 0x02, 0x61, 0x1E, 0x10, 0x46, 0xA2, -0x30, 0xF0, 0x20, 0x6B, 0x88, 0xF0, 0x18, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x88, 0xF0, 0x1C, 0x4B, 0x0C, 0x30, 0x0D, 0xE3, 0x82, 0xA3, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, 0x64, 0x9B, 0x80, 0x34, 0x80, 0x34, 0x71, 0xE4, 0x30, 0xF0, 0x20, 0x6B, @@ -25512,82 +25120,82 @@ u8 array_mp_8822c_fw_nic[] = { 0x04, 0x00, 0x5D, 0x67, 0x20, 0xF0, 0x88, 0xC2, 0x0A, 0x07, 0x00, 0x6A, 0x90, 0x67, 0xC5, 0x67, 0x04, 0xD2, 0x05, 0xD2, 0x06, 0xD2, 0x07, 0xD2, -0x00, 0x18, 0xF9, 0xDC, 0xFF, 0x6E, 0xB0, 0x67, -0x02, 0x6C, 0x4C, 0xEE, 0x00, 0x18, 0x0B, 0xDD, +0x00, 0x18, 0x58, 0xDC, 0xFF, 0x6E, 0xB0, 0x67, +0x02, 0x6C, 0x4C, 0xEE, 0x00, 0x18, 0x6A, 0xDC, 0x09, 0x97, 0x08, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF2, 0x55, 0xA2, 0x01, 0x68, 0x0C, 0xEA, 0x69, 0x22, 0x00, 0x18, -0x78, 0xF3, 0x3C, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xCE, 0xF2, 0x3C, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF6, 0x20, 0xA2, 0x22, 0x29, 0x00, 0x18, -0x6C, 0xF3, 0x1B, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xC2, 0xF2, 0x1B, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF6, 0x61, 0xA2, 0x01, 0x4B, 0x89, 0xF6, 0x61, 0xC2, 0x89, 0xF6, 0x41, 0xA2, 0x06, 0x5A, -0x14, 0x61, 0x90, 0x67, 0x00, 0x18, 0xE2, 0xF3, +0x14, 0x61, 0x90, 0x67, 0x00, 0x18, 0x38, 0xF3, 0x30, 0xF0, 0x20, 0x6A, 0x10, 0xF0, 0x24, 0x6C, -0x04, 0xD0, 0x00, 0xF3, 0x4C, 0x9A, 0xD9, 0xF7, -0x01, 0x4C, 0x00, 0x6D, 0xC8, 0x6E, 0xF0, 0x67, +0x04, 0xD0, 0x00, 0xF3, 0x4C, 0x9A, 0x19, 0xF5, +0x19, 0x4C, 0x00, 0x6D, 0xC8, 0x6E, 0xF0, 0x67, 0x42, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF6, -0x21, 0xC2, 0x00, 0x18, 0x4B, 0xF3, 0x0D, 0x22, +0x21, 0xC2, 0x00, 0x18, 0xA1, 0xF2, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF6, 0x60, 0xA2, 0x02, 0x6C, 0x01, 0x4B, 0x89, 0xF6, 0x60, 0xC2, 0x89, 0xF6, 0x40, 0xA2, 0x0A, 0x5A, 0x0F, 0x61, 0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x89, 0xF6, 0x40, 0xC3, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF6, 0x42, 0xA2, 0x32, 0x5A, 0x03, 0x61, -0x00, 0x6C, 0x00, 0x18, 0xE2, 0xF3, 0x30, 0xF0, +0x00, 0x6C, 0x00, 0x18, 0x38, 0xF3, 0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF6, 0x40, 0xA2, 0x0E, 0x2A, 0x01, 0x6A, 0x04, 0xD2, 0x10, 0xF0, 0x24, 0x6C, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, -0xD9, 0xF7, 0x01, 0x4C, 0x00, 0x6D, 0xC8, 0x6E, +0x19, 0xF5, 0x19, 0x4C, 0x00, 0x6D, 0xC8, 0x6E, 0x01, 0x6F, 0x0D, 0x10, 0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, -0x10, 0xF0, 0x24, 0x6C, 0x01, 0x6E, 0xD9, 0xF7, -0x01, 0x4C, 0x00, 0x6D, 0xE6, 0x67, 0x40, 0xEA, +0x10, 0xF0, 0x24, 0x6C, 0x01, 0x6E, 0x19, 0xF5, +0x19, 0x4C, 0x00, 0x6D, 0xE6, 0x67, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x2C, 0xEC, -0x30, 0xF0, 0x20, 0x6A, 0x88, 0xF0, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0x88, 0xF0, 0x1C, 0x4A, 0x8C, 0x33, 0x6D, 0xE2, 0x05, 0xD4, 0x04, 0xD3, 0x42, 0xAB, 0x00, 0x68, 0xFF, 0xF7, 0x1F, 0x72, 0xC0, 0xF0, 0x01, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x84, 0xF2, 0x6C, 0x9A, 0x01, 0x6C, 0x40, 0xA3, +0x84, 0xF2, 0x70, 0x9A, 0x01, 0x6C, 0x40, 0xA3, 0x2C, 0xEA, 0x8D, 0xEA, 0x2C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, 0x40, 0xEA, 0x04, 0x93, 0x46, 0xA3, 0x62, 0xAB, 0x62, 0x34, 0x2C, 0xEC, 0x18, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0xE3, 0xF2, -0x8C, 0x9C, 0x84, 0xF2, 0xB0, 0x9D, 0xA0, 0xDC, -0x30, 0xF0, 0x20, 0x6D, 0x84, 0xF2, 0xB4, 0x9D, +0x8C, 0x9C, 0x84, 0xF2, 0xB4, 0x9D, 0xA0, 0xDC, +0x30, 0xF0, 0x20, 0x6D, 0x84, 0xF2, 0xB8, 0x9D, 0xA0, 0xDC, 0x30, 0xF0, 0x20, 0x6D, 0x84, 0xF2, -0xB8, 0x9D, 0xA0, 0xDC, 0x30, 0xF0, 0x20, 0x6D, -0x84, 0xF2, 0xBC, 0x9D, 0x1A, 0x10, 0x01, 0x74, +0xBC, 0x9D, 0xA0, 0xDC, 0x30, 0xF0, 0x20, 0x6D, +0xA4, 0xF2, 0xA0, 0x9D, 0x1A, 0x10, 0x01, 0x74, 0x80, 0xF0, 0x05, 0x61, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0xE3, 0xF2, 0x8C, 0x9C, -0x84, 0xF2, 0xB0, 0x9D, 0xA0, 0xDC, 0x30, 0xF0, -0x20, 0x6D, 0x84, 0xF2, 0xB4, 0x9D, 0xA0, 0xDC, -0x30, 0xF0, 0x20, 0x6D, 0xA4, 0xF2, 0xA0, 0x9D, +0x84, 0xF2, 0xB4, 0x9D, 0xA0, 0xDC, 0x30, 0xF0, +0x20, 0x6D, 0x84, 0xF2, 0xB8, 0x9D, 0xA0, 0xDC, +0x30, 0xF0, 0x20, 0x6D, 0xA4, 0xF2, 0xA4, 0x9D, 0xA0, 0xDC, 0x30, 0xF0, 0x20, 0x6D, 0xA4, 0xF2, -0xA4, 0x9D, 0xA0, 0xDC, 0x30, 0xF0, 0x20, 0x6D, -0x84, 0xF2, 0xA4, 0x9D, 0xA0, 0xDC, 0x30, 0xF0, -0x20, 0x6D, 0x84, 0xF2, 0xA8, 0x9D, 0xA0, 0xDC, +0xA8, 0x9D, 0xA0, 0xDC, 0x30, 0xF0, 0x20, 0x6D, +0x84, 0xF2, 0xA8, 0x9D, 0xA0, 0xDC, 0x30, 0xF0, +0x20, 0x6D, 0x84, 0xF2, 0xAC, 0x9D, 0xA0, 0xDC, 0xFF, 0x6C, 0x8C, 0xEB, 0xA7, 0x43, 0x19, 0x4D, 0x8C, 0xED, 0x08, 0x5D, 0x05, 0x61, 0xA7, 0x43, 0x09, 0x4D, 0x8C, 0xED, 0x08, 0x5D, 0x57, 0x60, -0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF2, 0xA8, 0x9C, +0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF2, 0xAC, 0x9C, 0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF2, 0x8C, 0x9C, 0xB5, 0xE3, 0x01, 0x68, 0xA0, 0xDC, 0x30, 0xF0, -0x20, 0x6D, 0xA4, 0xF2, 0xAC, 0x9D, 0xAD, 0xE3, +0x20, 0x6D, 0xA4, 0xF2, 0xB0, 0x9D, 0xAD, 0xE3, 0x60, 0xDC, 0x30, 0xF0, 0x20, 0x6B, 0xA4, 0xF2, -0x70, 0x9B, 0x1F, 0xF7, 0x00, 0x6D, 0x6D, 0xE2, +0x74, 0x9B, 0x1F, 0xF7, 0x00, 0x6D, 0x6D, 0xE2, 0x60, 0xDC, 0x30, 0xF0, 0x20, 0x6B, 0xA4, 0xF2, -0x74, 0x9B, 0x6D, 0xE2, 0x60, 0xDC, 0x30, 0xF0, -0x20, 0x6B, 0x84, 0xF2, 0x64, 0x9B, 0x60, 0xDC, -0x30, 0xF0, 0x20, 0x6B, 0x84, 0xF2, 0x68, 0x9B, +0x78, 0x9B, 0x6D, 0xE2, 0x60, 0xDC, 0x30, 0xF0, +0x20, 0x6B, 0x84, 0xF2, 0x68, 0x9B, 0x60, 0xDC, +0x30, 0xF0, 0x20, 0x6B, 0x84, 0xF2, 0x6C, 0x9B, 0x60, 0xDC, 0x30, 0xF0, 0x20, 0x6B, 0xA4, 0xF2, -0x78, 0x9B, 0x60, 0xDC, 0x60, 0x9C, 0xAC, 0xEB, +0x7C, 0x9B, 0x60, 0xDC, 0x60, 0x9C, 0xAC, 0xEB, 0x62, 0x33, 0x4E, 0xEB, 0x25, 0x2B, 0x05, 0x97, -0x30, 0xF0, 0x20, 0x6B, 0x88, 0xF0, 0x18, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x88, 0xF0, 0x1C, 0x4B, 0xEC, 0x36, 0xCD, 0xE3, 0xC1, 0xAB, 0xFF, 0x6B, 0xCC, 0xEB, 0x30, 0xF0, 0x20, 0x6E, 0x03, 0xF3, 0xC0, 0x9E, 0x60, 0x33, 0x60, 0x33, 0xD9, 0xE2, @@ -25597,19 +25205,19 @@ u8 array_mp_8822c_fw_nic[] = { 0x03, 0x22, 0x01, 0x68, 0x07, 0x6C, 0x05, 0x10, 0x00, 0x68, 0x05, 0x6C, 0x02, 0x10, 0x00, 0x68, 0x08, 0x6C, 0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF2, -0x6C, 0x9A, 0xFE, 0x6A, 0xA0, 0xA3, 0xAC, 0xEA, -0x40, 0xC3, 0x00, 0x18, 0xE2, 0xF3, 0x50, 0x67, +0x70, 0x9A, 0xFE, 0x6A, 0xA0, 0xA3, 0xAC, 0xEA, +0x40, 0xC3, 0x00, 0x18, 0x38, 0xF3, 0x50, 0x67, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x89, 0xF6, 0x24, 0xA0, 0x1C, 0x29, 0x00, 0x6C, -0x00, 0x18, 0xF9, 0xEB, 0x01, 0x72, 0x78, 0x67, +0x00, 0x18, 0x4F, 0xEB, 0x01, 0x72, 0x78, 0x67, 0x04, 0xD3, 0x03, 0x23, 0x89, 0xF6, 0x24, 0xC0, -0x0F, 0x10, 0x00, 0x18, 0x64, 0xEC, 0x01, 0x72, +0x0F, 0x10, 0x00, 0x18, 0xBA, 0xEB, 0x01, 0x72, 0x07, 0x60, 0x5D, 0x67, 0x67, 0x42, 0x09, 0x4B, 0x40, 0xA3, 0x89, 0xF6, 0x44, 0xC0, 0x04, 0x10, 0x01, 0x6A, 0x89, 0xF6, 0x44, 0xC0, 0x03, 0x10, -0x09, 0x6C, 0x00, 0x18, 0xE2, 0xF3, 0x09, 0x97, +0x09, 0x6C, 0x00, 0x18, 0x38, 0xF3, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, @@ -25619,23 +25227,23 @@ u8 array_mp_8822c_fw_nic[] = { 0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x06, 0xD3, 0x8B, 0xF2, 0x15, 0x4C, 0x01, 0x6E, 0x40, 0xEA, 0x40, 0xF1, 0x7D, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x18, 0x96, 0xF3, 0x30, 0xF0, +0x02, 0x22, 0x00, 0x18, 0xEC, 0xF2, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF2, 0x75, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, 0x20, 0x2A, 0x01, 0x68, 0x2E, 0xE8, -0x1D, 0x28, 0x10, 0xF0, 0x24, 0x6C, 0xD9, 0xF7, -0x01, 0x4C, 0x00, 0x18, 0x63, 0xE7, 0x30, 0xF0, -0x20, 0x6A, 0xA4, 0xF2, 0x5C, 0x9A, 0x00, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF2, 0x40, 0x9A, +0x1D, 0x28, 0x10, 0xF0, 0x24, 0x6C, 0x19, 0xF5, +0x19, 0x4C, 0x00, 0x18, 0xB9, 0xE6, 0x30, 0xF0, +0x20, 0x6A, 0xC4, 0xF2, 0x40, 0x9A, 0x00, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF2, 0x44, 0x9A, 0x00, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF6, 0x00, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF6, 0x01, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF6, 0x02, 0xC2, 0x2C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF2, 0x75, 0xA2, 0x01, 0x6A, 0x4C, 0xEB, 0x25, 0x23, 0x24, 0x29, 0x30, 0xF0, 0x20, 0x6B, -0xA4, 0xF2, 0x7C, 0x9B, 0x51, 0x6C, 0x00, 0x6D, +0xC4, 0xF2, 0x60, 0x9B, 0x51, 0x6C, 0x00, 0x6D, 0x80, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0xC4, 0xF2, -0x60, 0x9B, 0x10, 0xF0, 0x24, 0x6C, 0xD9, 0xF7, -0x01, 0x4C, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6B, +0x64, 0x9B, 0x10, 0xF0, 0x24, 0x6C, 0x19, 0xF5, +0x19, 0x4C, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF6, 0x20, 0xC3, 0x00, 0xF3, 0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0x89, 0xF6, 0x21, 0xC3, 0x30, 0xF0, @@ -25643,66 +25251,66 @@ u8 array_mp_8822c_fw_nic[] = { 0x01, 0x6F, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF2, 0x75, 0xA2, 0x04, 0x6A, 0x6C, 0xEA, 0x0B, 0x2A, 0x06, 0x92, 0x09, 0x22, 0x10, 0xF0, -0x24, 0x6C, 0x7A, 0xF4, 0x01, 0x4C, 0x00, 0x18, -0x63, 0xE7, 0x00, 0x18, 0x46, 0xF3, 0x1C, 0x10, +0x24, 0x6C, 0xBA, 0xF1, 0x19, 0x4C, 0x00, 0x18, +0xB9, 0xE6, 0x00, 0x18, 0x9C, 0xF2, 0x1C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF2, 0x75, 0xA2, 0x04, 0x6A, 0x6C, 0xEA, 0x15, 0x22, 0x06, 0x93, -0x13, 0x2B, 0x00, 0x18, 0x46, 0xF3, 0x00, 0x18, -0x9B, 0xF4, 0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x13, 0x2B, 0x00, 0x18, 0x9C, 0xF2, 0x00, 0x18, +0xF1, 0xF3, 0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, -0x24, 0x6C, 0x7A, 0xF4, 0x01, 0x4C, 0x00, 0x6D, +0x24, 0x6C, 0xBA, 0xF1, 0x19, 0x4C, 0x00, 0x6D, 0xC0, 0xF7, 0x10, 0x6E, 0x01, 0x6F, 0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF2, 0x44, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF2, 0x48, 0x9A, 0x41, 0x6B, 0x60, 0xC2, 0x45, 0x6B, 0x60, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF2, 0x68, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF2, 0x6C, 0x9A, 0xFE, 0x6A, 0xA0, 0xA3, 0xAC, 0xEA, 0x40, 0xC3, 0x00, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x89, 0xF6, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0x89, 0xF6, 0x41, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0x89, 0xF6, 0x42, 0xC3, 0xFF, 0x6A, 0x4C, 0xEC, 0x00, 0x18, -0xE2, 0xF3, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x38, 0xF3, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF2, 0x75, 0xA2, 0x04, 0x6A, 0x6C, 0xEA, 0x78, 0x22, 0x30, 0xF0, -0x20, 0x68, 0x00, 0x69, 0x88, 0xF0, 0x18, 0x48, +0x20, 0x68, 0x00, 0x69, 0x88, 0xF0, 0x1C, 0x48, 0x06, 0xD1, 0x40, 0xA8, 0xFF, 0xF7, 0x1F, 0x72, -0x23, 0x60, 0x91, 0x67, 0x00, 0x18, 0xC3, 0xF3, +0x23, 0x60, 0x91, 0x67, 0x00, 0x18, 0x19, 0xF3, 0x01, 0x72, 0x1B, 0x61, 0x42, 0xA8, 0xFF, 0xF7, 0x1F, 0x72, 0x10, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x89, 0xF6, 0x43, 0xA3, 0x81, 0x42, 0x89, 0xF6, 0x83, 0xC3, 0xFF, 0x4A, 0xFF, 0x6B, 0x6C, 0xEA, 0x02, 0x5A, 0x52, 0x60, 0x04, 0x6C, 0x00, 0x18, -0x05, 0xF5, 0x4E, 0x10, 0x91, 0x67, 0x00, 0x18, -0x2D, 0xF4, 0x01, 0x72, 0x02, 0x61, 0x01, 0x6B, +0x5B, 0xF4, 0x4E, 0x10, 0x91, 0x67, 0x00, 0x18, +0x83, 0xF3, 0x01, 0x72, 0x02, 0x61, 0x01, 0x6B, 0x06, 0xD3, 0x01, 0x49, 0x08, 0x48, 0xD9, 0x17, 0x30, 0xF0, 0x20, 0x6A, 0x98, 0x67, 0x89, 0xF6, 0x83, 0xC2, 0x06, 0x10, 0x00, 0x6B, 0x06, 0x6C, -0x89, 0xF6, 0x63, 0xC2, 0x00, 0x18, 0xE2, 0xF3, +0x89, 0xF6, 0x63, 0xC2, 0x00, 0x18, 0x38, 0xF3, 0x06, 0x92, 0x07, 0x2A, 0x7D, 0x67, 0x87, 0x43, 0x11, 0x4C, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xA4, 0x05, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF6, 0x65, 0xA2, 0x01, 0x4B, 0x89, 0xF6, 0x65, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF6, 0x65, 0xA2, 0x02, 0x5B, 0x06, 0x61, 0x00, 0x6B, 0x06, 0x6C, -0x89, 0xF6, 0x65, 0xC2, 0x00, 0x18, 0x05, 0xF5, +0x89, 0xF6, 0x65, 0xC2, 0x00, 0x18, 0x5B, 0xF4, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF2, 0x75, 0xA2, 0x08, 0x6A, 0x6C, 0xEA, 0x05, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF6, 0x43, 0xA2, 0x17, 0x22, 0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, 0x24, 0x6C, -0x7A, 0xF4, 0x01, 0x4C, 0x00, 0x6D, 0xC0, 0xF7, +0xBA, 0xF1, 0x19, 0x4C, 0x00, 0x6D, 0xC0, 0xF7, 0x10, 0x6E, 0x01, 0x6F, 0x40, 0xEA, 0x07, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF6, 0x63, 0xA2, 0x04, 0x5B, 0xC2, 0x61, 0xBB, 0x17, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0x32, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x30, 0xF0, 0x20, 0x6B, 0xEF, 0xF6, 0x72, 0xAB, +0x70, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x30, 0xF0, 0x20, 0x6B, 0xEF, 0xF6, 0x6E, 0xAB, 0xFF, 0x6A, 0x8C, 0xEA, 0x69, 0xE2, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF2, 0x68, 0x9B, 0x40, 0xCB, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF2, 0x6C, 0x9B, 0x40, 0xCB, +0xA3, 0xF2, 0x6C, 0x9B, 0x40, 0xCB, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF2, 0x70, 0x9B, 0x40, 0xCB, 0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0xEB, 0xF1, @@ -25712,24 +25320,24 @@ u8 array_mp_8822c_fw_nic[] = { 0x21, 0x5A, 0x04, 0x60, 0x08, 0x22, 0x10, 0x72, 0x16, 0x60, 0x56, 0x10, 0x30, 0x72, 0x33, 0x60, 0x40, 0x72, 0x41, 0x60, 0x51, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF2, 0x70, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0xA3, 0xF2, 0x94, 0x9C, 0x40, 0x9B, +0x20, 0x6A, 0xA3, 0xF2, 0x74, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xA3, 0xF2, 0x98, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xEB, 0xF1, 0x87, 0xA2, 0x3F, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF2, 0x70, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0xA3, 0xF1, 0x94, 0x9C, 0x40, 0x9B, +0x20, 0x6A, 0xA3, 0xF2, 0x74, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xA3, 0xF1, 0x98, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xEB, 0xF1, 0x88, 0xA2, 0x2F, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF2, 0x70, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0xA3, 0xF2, 0x94, 0x9C, 0x40, 0x9B, +0x20, 0x6A, 0xA3, 0xF2, 0x74, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xA3, 0xF2, 0x98, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xEB, 0xF1, 0x89, 0xA2, 0x1F, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF2, 0x70, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0xA3, 0xF1, 0x94, 0x9C, 0x40, 0x9B, +0x20, 0x6A, 0xA3, 0xF2, 0x74, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xA3, 0xF1, 0x98, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xEB, 0xF1, 0x8A, 0xA2, 0x0F, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF2, 0x70, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0xA3, 0xF2, 0x94, 0x9C, 0x40, 0x9B, +0x20, 0x6A, 0xA3, 0xF2, 0x74, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xA3, 0xF2, 0x98, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xEB, 0xF1, 0x8B, 0xA2, 0x80, 0x18, 0x00, 0x00, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, @@ -25762,7 +25370,7 @@ u8 array_mp_8822c_fw_nic[] = { 0x20, 0x68, 0x80, 0xF2, 0x48, 0x98, 0x30, 0xF0, 0x20, 0x6C, 0x4B, 0xF2, 0x15, 0x4C, 0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x80, 0xF2, 0x48, 0x98, -0x30, 0xF0, 0x20, 0x6C, 0xEF, 0xF6, 0x12, 0x4C, +0x30, 0xF0, 0x20, 0x6C, 0xEF, 0xF6, 0x0E, 0x4C, 0x00, 0x6D, 0x02, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, @@ -25772,35 +25380,35 @@ u8 array_mp_8822c_fw_nic[] = { 0x18, 0x4A, 0x00, 0xF1, 0x9D, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, 0x39, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF0, 0x78, 0xA3, 0x0A, 0x2B, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF2, 0x68, 0x9B, 0x80, 0xAB, +0x20, 0x6B, 0xA3, 0xF2, 0x6C, 0x9B, 0x80, 0xAB, 0xE1, 0xF7, 0x1F, 0x6B, 0x8C, 0xEB, 0xA4, 0xF5, -0x7A, 0xCA, 0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF0, +0x76, 0xCA, 0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF0, 0x78, 0xA2, 0x00, 0x6C, 0x01, 0x4B, 0x69, 0xF0, -0x78, 0xC2, 0x00, 0x18, 0x85, 0xE8, 0x10, 0x6C, -0x00, 0x18, 0x85, 0xE8, 0x20, 0x6C, 0x00, 0x18, -0x85, 0xE8, 0x30, 0x6C, 0x00, 0x18, 0x85, 0xE8, -0x00, 0x6C, 0x00, 0x18, 0x8C, 0xE8, 0x10, 0x6C, -0x00, 0x18, 0x8C, 0xE8, 0x20, 0x6C, 0x00, 0x18, -0x8C, 0xE8, 0x30, 0x6C, 0x00, 0x18, 0x8C, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x78, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF2, 0x9C, 0x9C, +0x78, 0xC2, 0x00, 0x18, 0xDB, 0xE7, 0x10, 0x6C, +0x00, 0x18, 0xDB, 0xE7, 0x20, 0x6C, 0x00, 0x18, +0xDB, 0xE7, 0x30, 0x6C, 0x00, 0x18, 0xDB, 0xE7, +0x00, 0x6C, 0x00, 0x18, 0xE2, 0xE7, 0x10, 0x6C, +0x00, 0x18, 0xE2, 0xE7, 0x20, 0x6C, 0x00, 0x18, +0xE2, 0xE7, 0x30, 0x6C, 0x00, 0x18, 0xE2, 0xE7, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x7C, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF2, 0x80, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, 0x42, 0x10, 0xC0, 0xF0, 0x5E, 0xA2, 0x0A, 0x2A, 0x10, 0x6C, 0x00, 0x18, -0xAB, 0xE8, 0x20, 0x6C, 0x00, 0x18, 0xAB, 0xE8, -0x30, 0x6C, 0x00, 0x18, 0xAB, 0xE8, 0x0F, 0x10, -0x00, 0x6C, 0x00, 0x18, 0xAB, 0xE8, 0x10, 0x6C, -0x00, 0x18, 0xAB, 0xE8, 0x20, 0x6C, 0x00, 0x18, -0xAB, 0xE8, 0x30, 0x6C, 0x00, 0x18, 0xAB, 0xE8, -0x00, 0x6C, 0x00, 0x18, 0xB2, 0xE8, 0x10, 0x6C, -0x00, 0x18, 0xB2, 0xE8, 0x20, 0x6C, 0x00, 0x18, -0xB2, 0xE8, 0x30, 0x6C, 0x00, 0x18, 0xB2, 0xE8, +0x01, 0xE8, 0x20, 0x6C, 0x00, 0x18, 0x01, 0xE8, +0x30, 0x6C, 0x00, 0x18, 0x01, 0xE8, 0x0F, 0x10, +0x00, 0x6C, 0x00, 0x18, 0x01, 0xE8, 0x10, 0x6C, +0x00, 0x18, 0x01, 0xE8, 0x20, 0x6C, 0x00, 0x18, +0x01, 0xE8, 0x30, 0x6C, 0x00, 0x18, 0x01, 0xE8, +0x00, 0x6C, 0x00, 0x18, 0x08, 0xE8, 0x10, 0x6C, +0x00, 0x18, 0x08, 0xE8, 0x20, 0x6C, 0x00, 0x18, +0x08, 0xE8, 0x30, 0x6C, 0x00, 0x18, 0x08, 0xE8, 0x00, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF0, 0x78, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0xEF, 0xF6, 0x52, 0xAA, 0xA3, 0xF2, -0x68, 0x9B, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF2, -0x80, 0x9C, 0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF2, 0x6C, 0x9B, 0x40, 0xCB, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF2, 0x78, 0x9A, 0x40, 0x9B, +0x20, 0x6B, 0xEF, 0xF6, 0x4E, 0xAA, 0xA3, 0xF2, +0x6C, 0x9B, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF2, +0x84, 0x9C, 0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF2, 0x70, 0x9B, 0x40, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF2, 0x7C, 0x9A, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x00, 0x6B, 0x22, 0xF5, @@ -25842,23 +25450,23 @@ u8 array_mp_8822c_fw_nic[] = { 0x06, 0x92, 0x04, 0x04, 0x00, 0x6E, 0x05, 0xD2, 0x80, 0x18, 0xD9, 0x00, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0x78, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0x7C, 0x9B, 0xFF, 0x6A, 0x4C, 0xEC, 0xC0, 0xA3, 0x4C, 0xED, 0x15, 0x26, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, -0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF2, -0x88, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF2, +0x8C, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, 0x60, 0xDA, 0x20, 0xE8, 0x80, 0xC3, 0x0B, 0x25, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0x8C, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0x90, 0x9B, 0x80, 0x6D, 0xAB, 0xED, 0x60, 0xA4, 0x4C, 0xEB, 0xAE, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0x6C, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0x70, 0x9B, 0x30, 0xF0, 0x20, 0x69, 0x69, 0xF0, 0x5C, 0x99, -0xE0, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, -0x78, 0x9B, 0x50, 0x32, 0x6D, 0xE2, 0xE0, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0x70, 0x9B, +0xE0, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, +0x60, 0x9B, 0x50, 0x32, 0x6D, 0xE2, 0xE0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0x64, 0x9B, 0x6D, 0xE2, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0x74, 0x9B, 0x6D, 0xE2, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0x78, 0x9B, @@ -25871,7 +25479,7 @@ u8 array_mp_8822c_fw_nic[] = { 0x69, 0xF0, 0x1C, 0xD9, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0x04, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0x08, 0x4B, 0x60, 0x9B, 0xFF, 0x69, 0x40, 0xA3, 0x00, 0xF6, 0x40, 0x32, 0x00, 0xF6, 0x43, 0x32, 0x00, 0x52, 0x4D, 0x60, 0x40, 0xA3, 0x7F, 0x68, 0x4C, 0xE8, @@ -25879,20 +25487,20 @@ u8 array_mp_8822c_fw_nic[] = { 0xC3, 0xF2, 0x5C, 0x9A, 0x2C, 0xE8, 0x00, 0xC3, 0xA0, 0xA2, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x40, 0x9A, 0x2C, 0xED, 0x05, 0x75, 0x80, 0xA2, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x4C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x50, 0x9A, 0x2C, 0xEC, 0x60, 0xA2, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF1, 0x50, 0x9A, 0x2C, 0xEB, 0x40, 0xA2, +0x43, 0xF1, 0x54, 0x9A, 0x2C, 0xEB, 0x40, 0xA2, 0x2C, 0xEA, 0x09, 0x61, 0xBD, 0x67, 0x90, 0xC5, 0x71, 0xC5, 0x52, 0xC5, 0x04, 0x04, 0x80, 0x18, -0xA3, 0x60, 0x1A, 0x2A, 0x10, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF2, 0x04, 0x4B, 0x60, 0x9B, -0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF2, 0x04, 0x4C, +0x28, 0x5F, 0x1A, 0x2A, 0x10, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF2, 0x08, 0x4B, 0x60, 0x9B, +0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF2, 0x08, 0x4C, 0x40, 0xA3, 0x80, 0x9C, 0x3F, 0x6B, 0x2C, 0xEA, 0x6D, 0xEA, 0x2C, 0xEA, 0x40, 0xC4, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF2, 0x64, 0x9A, 0xBF, 0x6A, +0x20, 0x6A, 0xC3, 0xF2, 0x68, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6D, 0x40, 0x6A, 0xC3, 0xF2, -0x04, 0x4D, 0x4B, 0xEA, 0xA0, 0x9D, 0x0D, 0xEA, +0x08, 0x4D, 0x4B, 0xEA, 0xA0, 0x9D, 0x0D, 0xEA, 0x2C, 0xEA, 0x40, 0xC5, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x00, 0x6A, 0x7D, 0x67, @@ -25927,9 +25535,9 @@ u8 array_mp_8822c_fw_nic[] = { 0xE0, 0xAE, 0x1F, 0xF7, 0x00, 0x6B, 0xEC, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x09, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xAE, 0x43, 0xF1, -0x60, 0x9B, 0x6D, 0xE7, 0xE0, 0xA4, 0xE0, 0xC3, +0x64, 0x9B, 0x6D, 0xE7, 0xE0, 0xA4, 0xE0, 0xC3, 0x07, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, -0x64, 0x9B, 0x7D, 0xE7, 0x60, 0xA4, 0x60, 0xC7, +0x68, 0x9B, 0x7D, 0xE7, 0x60, 0xA4, 0x60, 0xC7, 0x01, 0x4A, 0xFF, 0x6B, 0x6C, 0xEA, 0x03, 0x72, 0x02, 0x4E, 0x01, 0x4C, 0xE1, 0x61, 0x25, 0x67, 0x00, 0x68, 0x0B, 0x92, 0xC0, 0x99, 0x01, 0x6D, @@ -25937,1607 +25545,1678 @@ u8 array_mp_8822c_fw_nic[] = { 0x44, 0x9A, 0x80, 0xAB, 0xAB, 0xED, 0x02, 0x48, 0x40, 0xEA, 0x16, 0x70, 0x04, 0x49, 0xF1, 0x61, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x00, 0x6B, 0xAA, 0xF1, -0x7C, 0xC2, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, -0xFB, 0x63, 0x09, 0xD1, 0x08, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE9, 0xF5, -0x7A, 0xA2, 0x79, 0x2B, 0x01, 0x6B, 0x30, 0xF0, -0x21, 0x6D, 0x30, 0xF0, 0x21, 0x6C, 0x09, 0xF6, -0x69, 0xC2, 0x09, 0xF6, 0x6A, 0xC2, 0x75, 0xF0, -0x00, 0x4D, 0x74, 0xF7, 0x08, 0x4C, 0x00, 0x6A, -0x00, 0x6B, 0x60, 0xDD, 0x30, 0xF0, 0x20, 0x6E, -0xE1, 0xF1, 0x68, 0x42, 0x2B, 0xF1, 0x18, 0x4E, -0x6C, 0x33, 0x6D, 0xE6, 0x04, 0xD3, 0xC2, 0xF3, -0x6E, 0x42, 0x68, 0x33, 0x6D, 0xE6, 0x03, 0xD3, -0x06, 0x6B, 0x78, 0xEA, 0x01, 0xD4, 0x12, 0xEB, -0x6D, 0xE6, 0xAA, 0xF1, 0x01, 0x4B, 0x00, 0x6E, -0x04, 0x90, 0x00, 0x6F, 0xE0, 0xD8, 0x03, 0x90, -0xE0, 0xC8, 0x44, 0x30, 0x01, 0xE6, 0x84, 0xF7, -0x10, 0x48, 0x30, 0xF0, 0x20, 0x6F, 0x04, 0x30, -0x2B, 0xF1, 0x18, 0x4F, 0x1D, 0xE7, 0x05, 0xD7, -0x01, 0x97, 0x00, 0x68, 0x00, 0xD0, 0x02, 0xD7, -0x05, 0x90, 0x01, 0x6F, 0x44, 0x31, 0xE0, 0xC0, -0x00, 0x97, 0xC5, 0xE1, 0x24, 0x31, 0x25, 0xE7, -0xE0, 0xF4, 0x02, 0x41, 0x30, 0xF0, 0x20, 0x6F, -0xE0, 0xF4, 0x0A, 0x49, 0x2B, 0xF1, 0x18, 0x4F, -0x10, 0x30, 0x30, 0x31, 0x01, 0xE7, 0x25, 0xE7, -0x06, 0xD2, 0x02, 0x92, 0x00, 0x6F, 0xE0, 0xC8, -0x02, 0x48, 0x4A, 0xE8, 0xE0, 0xC9, 0x02, 0x49, -0xF8, 0x61, 0x00, 0x90, 0x06, 0x92, 0x01, 0x48, -0x00, 0xD0, 0x05, 0x90, 0x01, 0x48, 0x05, 0xD0, -0x02, 0x90, 0x10, 0x48, 0x02, 0xD0, 0x00, 0x90, -0x02, 0x70, 0xD6, 0x61, 0xE0, 0xC3, 0xE1, 0xC3, -0xE2, 0xC3, 0x04, 0x97, 0x03, 0x90, 0x01, 0x4E, -0x04, 0x4F, 0x04, 0xD7, 0x01, 0x97, 0x02, 0x48, -0x02, 0x76, 0x20, 0x4F, 0x03, 0xD0, 0x03, 0x4B, -0x01, 0xD7, 0xB2, 0x61, 0x01, 0x4A, 0x02, 0x72, -0x04, 0x4D, 0x40, 0x4C, 0x95, 0x61, 0x09, 0x91, -0x08, 0x90, 0x05, 0x63, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0xE4, 0x9A, 0x30, 0xF0, 0x21, 0x6C, -0x12, 0xF5, 0x08, 0x4C, 0x00, 0x6D, 0x18, 0x6E, -0x80, 0x18, 0x1A, 0x5A, 0x30, 0xF0, 0x20, 0x6B, -0x01, 0xF4, 0x00, 0x6C, 0x2B, 0xF1, 0x18, 0x4B, -0x4C, 0xEC, 0x29, 0xF7, 0x50, 0xDB, 0x82, 0x32, -0x4A, 0x32, 0x02, 0x72, 0x0A, 0x60, 0x03, 0x6C, -0x4E, 0xEC, 0x04, 0x24, 0x01, 0x72, 0x02, 0x6A, -0x05, 0x60, 0x06, 0x10, 0xE9, 0xF5, 0x99, 0xC3, -0x03, 0x10, 0x01, 0x6A, 0xE9, 0xF5, 0x59, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0x78, 0x9B, -0x29, 0xF7, 0x90, 0x9A, 0x8C, 0xEB, 0x62, 0x33, -0x62, 0x33, 0xE9, 0xF5, 0x78, 0xC2, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x00, 0x68, 0x05, 0xD5, -0x04, 0xD4, 0x05, 0x92, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF3, 0x04, 0x4B, 0xE0, 0x9B, 0xC0, 0xA2, -0x30, 0xF0, 0x21, 0x69, 0x12, 0xF5, 0x08, 0x49, -0x91, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x1A, 0x5A, -0x04, 0x93, 0x91, 0x67, 0x01, 0x6D, 0x40, 0xDB, -0x05, 0x92, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, -0x04, 0x4B, 0xE0, 0x9B, 0xC0, 0xA2, 0x01, 0x48, -0x80, 0x18, 0x1A, 0x5A, 0x04, 0x93, 0x41, 0xDB, -0xFF, 0x6A, 0x4C, 0xE8, 0x05, 0x92, 0x08, 0x4B, -0x03, 0x70, 0x01, 0x4A, 0x05, 0xD2, 0x04, 0xD3, -0xD8, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0xAC, 0xE9, -0x00, 0x68, 0x85, 0xF5, 0x1C, 0x6C, 0xFF, 0x6D, -0x80, 0x18, 0x35, 0x25, 0x55, 0x72, 0x0C, 0x61, -0x00, 0x6A, 0x15, 0x21, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF3, 0xB0, 0x9A, 0x03, 0xF3, 0x08, 0x6C, -0x80, 0x18, 0x35, 0x25, 0x00, 0x6A, 0x0B, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, -0x01, 0x6C, 0x01, 0x48, 0x40, 0xEA, 0xFF, 0xF7, -0x1F, 0x6A, 0x4C, 0xE8, 0x01, 0x6A, 0x32, 0x58, -0x01, 0x60, 0xDF, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF3, 0x10, 0x6C, -0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x00, 0x6A, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, -0xAC, 0xEA, 0x01, 0x72, 0x05, 0xD4, 0x24, 0x61, -0x44, 0x67, 0x04, 0x4A, 0x01, 0x68, 0x30, 0xF0, -0x20, 0x69, 0x04, 0xEA, 0x00, 0xF2, 0x08, 0x6A, -0x4D, 0xE8, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, -0xD0, 0x67, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, -0xAB, 0xED, 0xC1, 0x40, 0x03, 0xF3, 0x00, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x48, 0x9A, 0x01, 0x6C, 0x40, 0xEA, 0x05, 0x94, -0x01, 0x6D, 0x80, 0x18, 0x5F, 0x02, 0xD2, 0x10, -0x02, 0x72, 0x01, 0x6A, 0xC0, 0xF0, 0x0E, 0x61, -0x30, 0xF0, 0x21, 0x6A, 0x34, 0xF7, 0x56, 0xA2, -0x00, 0x68, 0x09, 0x72, 0x0C, 0x60, 0x12, 0x72, -0x01, 0x68, 0x09, 0x60, 0x1B, 0x72, 0x02, 0x68, -0x06, 0x60, 0x24, 0x68, 0x4E, 0xE8, 0x01, 0x58, -0x18, 0x67, 0x04, 0x6A, 0x03, 0xE2, 0x05, 0x92, -0x30, 0xF0, 0x20, 0x69, 0x01, 0x6D, 0x44, 0x32, -0x07, 0xD2, 0x07, 0x93, 0x08, 0x6A, 0x03, 0xF3, -0x00, 0x6C, 0x4D, 0xEB, 0xC0, 0xF3, 0x44, 0x99, -0xC3, 0x67, 0x07, 0xD3, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6C, 0x2B, 0xF1, 0x18, 0x4C, -0x04, 0xD4, 0x04, 0x93, 0xC0, 0xF3, 0x44, 0x99, -0x01, 0x6D, 0xE9, 0xF5, 0xDE, 0xA3, 0xC3, 0xF3, -0x0C, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x05, 0x92, -0x01, 0x6C, 0x01, 0x6D, 0x04, 0x4A, 0x84, 0xEA, -0x00, 0xF3, 0x08, 0x6A, 0x4D, 0xEC, 0x06, 0xD4, -0xC0, 0xF3, 0x44, 0x99, 0x06, 0x96, 0x03, 0xF3, -0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x06, 0x96, -0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0xAB, 0xED, -0x01, 0x4E, 0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, -0x02, 0x6C, 0x40, 0xEA, 0x05, 0x94, 0x01, 0x6D, -0x80, 0x18, 0x5F, 0x02, 0x01, 0x72, 0x0A, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF3, 0x00, 0x4A, -0x41, 0xE0, 0x40, 0xA0, 0x04, 0x93, 0xE9, 0xF5, -0x5E, 0xC3, 0x6B, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x05, 0x95, 0x63, 0xF3, 0xE4, 0x9A, 0x30, 0xF0, -0x21, 0x6C, 0x12, 0xF5, 0x08, 0x4C, 0x00, 0x6E, -0x80, 0x18, 0x1A, 0x5A, 0x05, 0xD2, 0x07, 0x96, -0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0x03, 0xF3, -0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x05, 0x94, -0xE3, 0xF7, 0x00, 0x6A, 0x04, 0x93, 0x8C, 0xEA, -0x56, 0x34, 0x96, 0x32, 0x09, 0xF6, 0x40, 0xDB, -0x1F, 0x6A, 0x8C, 0xEA, 0x02, 0x5A, 0xFF, 0x6B, -0x0B, 0x60, 0x03, 0x70, 0x03, 0x60, 0x01, 0x48, -0x6C, 0xE8, 0x49, 0x10, 0x04, 0x94, 0x01, 0x6B, -0x03, 0x68, 0xAA, 0xF1, 0x75, 0xC4, 0x43, 0x10, -0x0A, 0x5A, 0x0B, 0x61, 0x04, 0x20, 0xFF, 0x48, -0x6C, 0xE8, 0x01, 0x6B, 0x0B, 0x10, 0x04, 0x94, -0x01, 0x6B, 0xAA, 0xF1, 0x75, 0xC4, 0x01, 0x6B, -0x09, 0x10, 0x04, 0x94, 0x00, 0x6B, 0xAA, 0xF1, -0x75, 0xC4, 0x00, 0x6B, 0x03, 0x20, 0x04, 0x58, -0x01, 0x61, 0x03, 0x68, 0x30, 0xF0, 0x20, 0x6D, -0x02, 0xF3, 0x00, 0x4D, 0xA1, 0xE0, 0xA0, 0xA0, -0x30, 0xF0, 0x20, 0x6C, 0x2B, 0xF1, 0x18, 0x4C, -0xE9, 0xF5, 0xBE, 0xC4, 0x0F, 0x2B, 0xE9, 0xF5, -0xDE, 0xA4, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x64, 0x9B, 0xC0, 0x36, 0x01, 0x6D, 0x4D, 0xEE, -0xE3, 0xF3, 0x08, 0x6C, 0xAB, 0xED, 0x40, 0xEB, -0x00, 0x6A, 0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, 0xE3, 0xF3, -0x08, 0x6C, 0xAB, 0xED, 0xFF, 0xF7, 0x1F, 0x6E, -0x40, 0xEA, 0x01, 0x6A, 0x0B, 0x97, 0x0A, 0x91, -0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x01, 0x6B, -0xCE, 0x17, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x00, 0x6B, 0x0B, 0xD7, -0xE0, 0xAE, 0x1F, 0xF7, 0x00, 0x6A, 0xEC, 0xEA, -0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x08, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xAE, 0x43, 0xF1, -0x40, 0x9A, 0x49, 0xE7, 0xE0, 0xA2, 0x06, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x44, 0x9A, -0x5D, 0xE7, 0xE0, 0xA7, 0xFF, 0x6A, 0xEC, 0xEA, -0x7D, 0xE4, 0x01, 0x4B, 0x03, 0x73, 0x40, 0xC7, -0x02, 0x4E, 0xE2, 0x61, 0x25, 0x67, 0x00, 0x68, -0x0B, 0x93, 0x01, 0x6D, 0xAB, 0xED, 0x09, 0xE3, -0x80, 0xAA, 0x02, 0x48, 0x80, 0x18, 0x35, 0x25, -0x16, 0x70, 0x40, 0xD9, 0x04, 0x49, 0xF4, 0x61, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0xFF, 0x69, 0x63, 0xF3, 0x60, 0x9B, 0x30, 0xF0, -0x20, 0x68, 0x2C, 0xEC, 0xC0, 0xF3, 0x44, 0x98, -0xAC, 0xE9, 0x24, 0x36, 0x01, 0x6D, 0x04, 0xD4, -0xAB, 0xED, 0x03, 0xF3, 0x00, 0x6C, 0x6D, 0xEE, -0x40, 0xEA, 0x04, 0x92, 0x08, 0x2A, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, -0x00, 0x6D, 0x03, 0x6E, 0x07, 0x10, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, -0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x44, 0x9A, 0x63, 0xF3, 0xA8, 0x9B, 0xC3, 0xF3, -0x14, 0x6C, 0x10, 0x6E, 0x40, 0xEA, 0x04, 0x94, -0x24, 0x31, 0x30, 0xF0, 0x20, 0x6A, 0x25, 0xE4, -0xE0, 0xF4, 0x62, 0x41, 0xE0, 0xF4, 0x0A, 0x49, -0x2B, 0xF1, 0x18, 0x4A, 0x70, 0x33, 0x30, 0x31, -0x25, 0xE2, 0x6D, 0xE2, 0x30, 0xF0, 0x20, 0x6A, -0x04, 0xD1, 0x63, 0xF3, 0x2C, 0x9A, 0x05, 0xD3, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0x01, 0x6D, 0xD1, 0x67, 0xC3, 0xF3, 0x18, 0x6C, -0xAB, 0xED, 0x40, 0xEA, 0x01, 0x6D, 0xE3, 0xF3, -0x1C, 0x6C, 0xAB, 0xED, 0x80, 0x18, 0x35, 0x25, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x70, 0x9B, -0x05, 0x94, 0x04, 0x49, 0x4C, 0xEB, 0x62, 0x33, -0x62, 0x33, 0x60, 0xCC, 0xE1, 0xF7, 0x1F, 0x6B, -0x4C, 0xEB, 0x04, 0x92, 0x02, 0x4C, 0x05, 0xD4, -0x60, 0xCA, 0x02, 0x4A, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF3, 0x54, 0x9A, 0x2E, 0xEA, -0xD7, 0x2A, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, -0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, -0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, -0x05, 0x67, 0x01, 0x74, 0x4C, 0xE8, 0x80, 0xF0, -0x19, 0x60, 0x04, 0x24, 0x04, 0x5C, 0xA0, 0xF0, -0x10, 0x60, 0xAA, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x29, 0xF7, 0x68, 0x9A, -0x30, 0xF0, 0x21, 0x6C, 0x30, 0xF0, 0x21, 0x6D, -0x29, 0xF7, 0x6C, 0xDA, 0x30, 0xF0, 0x21, 0x6B, -0x30, 0xF0, 0x21, 0x6A, 0x75, 0xF0, 0x18, 0x4C, -0x75, 0xF0, 0x10, 0x4B, 0x75, 0xF0, 0x0C, 0x4A, -0x74, 0xF7, 0x08, 0x4D, 0x00, 0x69, 0xC0, 0x9C, -0x94, 0xF7, 0x00, 0x41, 0x04, 0x30, 0xC2, 0xDC, -0xC0, 0xAB, 0x05, 0xD5, 0xE5, 0x67, 0xC2, 0xCB, -0xC0, 0xA2, 0xC2, 0xC2, 0x30, 0xF0, 0x20, 0x6E, -0x2B, 0xF1, 0x18, 0x4E, 0x01, 0xE6, 0x00, 0x6E, -0x04, 0xD6, 0xA0, 0xA0, 0x24, 0x36, 0xA4, 0xC0, -0x04, 0x95, 0xD9, 0xE5, 0xA6, 0x67, 0xE0, 0xF4, -0x02, 0x4D, 0xB0, 0x35, 0x06, 0xD5, 0x07, 0xD6, -0x30, 0xF0, 0x20, 0x6E, 0xA6, 0x67, 0x06, 0x96, -0x2B, 0xF1, 0x18, 0x4D, 0x1D, 0x65, 0xD5, 0xE5, -0x07, 0x96, 0x06, 0xD5, 0xB8, 0x67, 0xE0, 0xF4, -0x0A, 0x4E, 0xD0, 0x36, 0xD9, 0xE5, 0x06, 0x95, -0x07, 0xD2, 0x40, 0xAD, 0x40, 0xF0, 0x40, 0xCD, -0x40, 0xAE, 0x02, 0x4D, 0x40, 0xF0, 0x40, 0xCE, -0x05, 0x92, 0x02, 0x4E, 0x4A, 0xED, 0xF5, 0x61, -0x04, 0x95, 0x05, 0x96, 0x07, 0x92, 0x01, 0x4D, -0x10, 0x4E, 0x02, 0x75, 0x04, 0xD5, 0x01, 0x48, -0x05, 0xD6, 0xCF, 0x61, 0x01, 0x49, 0x02, 0x6E, -0xA7, 0x67, 0x2E, 0xEE, 0x04, 0x4C, 0x02, 0x4B, -0x01, 0x4A, 0x20, 0x4D, 0xB4, 0x2E, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x00, 0x6B, -0xAA, 0xF1, 0x6D, 0xC2, 0xAA, 0xF1, 0x6E, 0xC2, -0xAA, 0xF1, 0x61, 0xC2, 0xAA, 0xF1, 0x62, 0xC2, -0xAA, 0xF1, 0x63, 0xC2, 0x29, 0xF7, 0x75, 0xC2, -0xAA, 0xF1, 0x6F, 0xC2, 0xAA, 0xF1, 0x70, 0xC2, -0xAA, 0xF1, 0x64, 0xC2, 0xAA, 0xF1, 0x65, 0xC2, -0xAA, 0xF1, 0x66, 0xC2, 0x29, 0xF7, 0x70, 0x9A, -0x01, 0x6C, 0x29, 0xF7, 0xD4, 0xC2, 0x29, 0xF7, -0xD8, 0xCA, 0x29, 0xF7, 0x80, 0xC2, 0x29, 0xF7, -0x81, 0xC2, 0x29, 0xF7, 0xDA, 0xCA, 0x29, 0xF7, -0x82, 0xC2, 0x29, 0xF7, 0x83, 0xC2, 0x29, 0xF7, -0x68, 0xDA, 0x1B, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0xE4, 0x9A, 0x30, 0xF0, 0x21, 0x6C, -0xB0, 0x67, 0x12, 0xF5, 0x08, 0x4C, 0x58, 0x6E, -0x80, 0x18, 0x1A, 0x5A, 0xC2, 0xF3, 0x10, 0x48, -0x30, 0xF0, 0x20, 0x6B, 0x08, 0x30, 0x2B, 0xF1, -0x18, 0x4B, 0x6D, 0xE0, 0x40, 0xDB, 0x05, 0x10, -0xFE, 0x4C, 0x4C, 0xEC, 0xB0, 0x67, 0x80, 0x18, -0x1B, 0x03, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x21, 0x6A, 0x34, 0xF7, 0x5D, 0xA2, -0x18, 0x2A, 0x01, 0x6C, 0x00, 0x6D, 0x80, 0x18, -0x5F, 0x03, 0x02, 0x6C, 0x00, 0x6D, 0x80, 0x18, -0x5F, 0x03, 0x03, 0x6C, 0x00, 0x6D, 0x80, 0x18, -0x5F, 0x03, 0x01, 0x6C, 0xA4, 0x67, 0x80, 0x18, -0x5F, 0x03, 0x02, 0x6C, 0x01, 0x6D, 0x80, 0x18, -0x5F, 0x03, 0x03, 0x6C, 0x01, 0x6D, 0x80, 0x18, -0x5F, 0x03, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x30, 0xF0, 0x21, 0x6A, 0xB4, 0xF6, 0x4C, 0xA2, -0xA0, 0xF3, 0x17, 0x22, 0x01, 0x69, 0x2B, 0xE9, -0xB1, 0x67, 0x63, 0xF0, 0x00, 0x6C, 0x80, 0x18, -0x35, 0x25, 0xB1, 0x67, 0x68, 0xF1, 0x00, 0x6C, -0x07, 0xD2, 0x80, 0x18, 0x35, 0x25, 0xB1, 0x67, -0xA1, 0xF1, 0x14, 0x6C, 0x30, 0xF0, 0x20, 0x68, -0x06, 0xD2, 0x80, 0x18, 0x35, 0x25, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF3, 0xD8, 0x9B, 0x05, 0xD2, -0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0xA1, 0xF1, -0x14, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0x3C, 0x9A, 0xC0, 0xF3, 0x44, 0x98, -0xA3, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, -0xC3, 0xF0, 0x0C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0xA8, 0xF1, -0x10, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xB1, 0x67, 0xC8, 0xF1, 0x0C, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF1, 0x34, 0x9A, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, -0x00, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x63, 0xF0, 0x00, 0x6C, 0x3C, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC5, 0x67, -0xA3, 0xF0, 0x14, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x6D, 0xC5, 0x67, 0xC3, 0xF0, -0x10, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xB1, 0x67, 0x28, 0xF1, 0x10, 0x6C, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, -0x00, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x68, 0xF1, 0x00, 0x6C, 0x3C, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC5, 0x67, -0xA8, 0xF1, 0x14, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x6D, 0xC5, 0x67, 0xC8, 0xF1, -0x10, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xA3, 0xF0, 0x10, 0x6C, 0x01, 0xF7, 0x00, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xC3, 0xF0, 0x00, 0x6C, 0x08, 0xF0, 0x00, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xC3, 0xF0, 0x0C, 0x6C, 0x01, 0xF7, 0x00, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xC3, 0xF0, 0x1C, 0x6C, 0x08, 0xF0, 0x00, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xA3, 0xF0, 0x10, 0x6C, 0x01, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, -0x0C, 0x6C, 0x01, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC5, 0x67, -0xA3, 0xF0, 0x10, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x6D, 0xC5, 0x67, 0xC3, 0xF0, -0x0C, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF3, 0x24, 0x9A, 0xC0, 0xF3, 0x44, 0x98, -0xA3, 0xF0, 0x18, 0x6C, 0xB1, 0x67, 0x01, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, -0x14, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x10, 0x6C, -0x01, 0xF7, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x00, 0x6C, -0x08, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x0C, 0x6C, -0x01, 0xF7, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x1C, 0x6C, -0x08, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x10, 0x6C, -0x01, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xC8, 0xF1, 0x0C, 0x6C, 0x01, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x01, 0x6D, 0xC5, 0x67, 0xA8, 0xF1, 0x10, 0x6C, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, -0xC5, 0x67, 0xC8, 0xF1, 0x0C, 0x6C, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x18, 0x6C, -0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xC8, 0xF1, 0x14, 0x6C, 0xB1, 0x67, -0x01, 0x6E, 0x40, 0xEA, 0x00, 0x68, 0xFF, 0x6A, -0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF3, 0xA8, 0x9A, 0x05, 0xF0, 0x08, 0x6C, -0x80, 0x18, 0x35, 0x25, 0xFF, 0xF7, 0x1F, 0x72, -0x12, 0x60, 0xFF, 0x70, 0xF0, 0x61, 0x0F, 0x10, -0xFF, 0x6A, 0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF3, 0xA8, 0x9A, 0x25, 0xF0, -0x14, 0x6C, 0x80, 0x18, 0x35, 0x25, 0xFF, 0xF7, -0x1F, 0x72, 0x03, 0x61, 0x14, 0x10, 0x00, 0x68, -0xEF, 0x17, 0xFF, 0x70, 0xED, 0x61, 0x0F, 0x10, -0xFF, 0x6A, 0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF3, 0xA8, 0x9A, 0x08, 0xF5, -0x08, 0x6C, 0x80, 0x18, 0x35, 0x25, 0xFF, 0xF7, -0x1F, 0x72, 0x03, 0x61, 0x14, 0x10, 0x00, 0x68, -0xEF, 0x17, 0xFF, 0x70, 0xED, 0x61, 0x0F, 0x10, -0xFF, 0x6A, 0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF3, 0xA8, 0x9A, 0x28, 0xF5, -0x14, 0x6C, 0x80, 0x18, 0x35, 0x25, 0xFF, 0xF7, -0x1F, 0x72, 0x03, 0x61, 0x04, 0x10, 0x00, 0x68, -0xEF, 0x17, 0xFF, 0x70, 0xED, 0x61, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x83, 0xF3, -0x04, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, -0xA3, 0xF0, 0x18, 0x69, 0x91, 0x67, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, -0x04, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, -0x91, 0x67, 0x02, 0x6E, 0x40, 0xEA, 0x00, 0x68, -0x05, 0xF0, 0x08, 0x6C, 0xFF, 0x6D, 0x80, 0x18, -0x35, 0x25, 0x86, 0x72, 0x07, 0x61, 0x30, 0xF0, -0x21, 0x69, 0x00, 0x6A, 0xB4, 0xF6, 0x0E, 0x49, -0x04, 0xD2, 0x1E, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF3, 0x04, 0x4B, 0xFF, 0x6A, 0x30, 0xF0, -0x20, 0x69, 0x01, 0x48, 0xA0, 0x9B, 0x4C, 0xE8, -0xC0, 0xF3, 0x44, 0x99, 0xA3, 0xF0, 0x18, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF3, 0x04, 0x4B, 0xC0, 0xF3, 0x44, 0x99, -0xA0, 0x9B, 0xA3, 0xF0, 0x18, 0x6C, 0x02, 0x6E, -0x40, 0xEA, 0x64, 0x70, 0xD5, 0x61, 0xDB, 0x17, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0xA3, 0xF0, 0x14, 0x6C, 0x04, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xA9, 0xC0, 0xF3, 0x44, 0x98, -0xA3, 0xF0, 0x14, 0x6C, 0xE1, 0xF7, 0x18, 0x6D, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, -0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, -0xA3, 0xF0, 0x10, 0x6C, 0x02, 0x49, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0x14, 0x6C, -0x04, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x04, 0x92, -0x01, 0x4A, 0x0F, 0x72, 0x04, 0xD2, 0xD8, 0x61, -0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0x14, 0x6C, -0x04, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF3, 0x04, 0x4B, 0xC0, 0xF3, -0x44, 0x98, 0xA0, 0x9B, 0xC3, 0xF0, 0x14, 0x69, -0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF3, 0x04, 0x4B, 0xC0, 0xF3, -0x44, 0x98, 0xA0, 0x9B, 0x91, 0x67, 0x02, 0x6E, -0x40, 0xEA, 0x00, 0x68, 0x25, 0xF0, 0x14, 0x6C, -0xFF, 0x6D, 0x80, 0x18, 0x35, 0x25, 0x86, 0x72, -0x07, 0x61, 0x30, 0xF0, 0x21, 0x69, 0x00, 0x6A, -0xD4, 0xF6, 0x0C, 0x49, 0x04, 0xD2, 0x1E, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0x04, 0x4B, -0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x69, 0x01, 0x48, -0xA0, 0x9B, 0x4C, 0xE8, 0xC0, 0xF3, 0x44, 0x99, -0xC3, 0xF0, 0x14, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0x04, 0x4B, -0xC0, 0xF3, 0x44, 0x99, 0xA0, 0x9B, 0xC3, 0xF0, -0x14, 0x6C, 0x02, 0x6E, 0x40, 0xEA, 0x64, 0x70, -0xD5, 0x61, 0xDB, 0x17, 0x30, 0xF0, 0x20, 0x68, -0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, 0x10, 0x6C, -0x04, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xA9, -0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, 0x10, 0x6C, -0xE1, 0xF7, 0x18, 0x6D, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF3, 0xAC, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x04, 0x96, 0xC3, 0xF0, 0x0C, 0x6C, -0x02, 0x49, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xC3, 0xF0, 0x10, 0x6C, 0x04, 0x6D, 0x01, 0x6E, -0x40, 0xEA, 0x04, 0x92, 0x01, 0x4A, 0x0F, 0x72, -0x04, 0xD2, 0xD8, 0x61, 0xC0, 0xF3, 0x44, 0x98, -0xC3, 0xF0, 0x10, 0x6C, 0x04, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, -0x24, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, -0x18, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, 0x14, 0x6C, -0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xA3, 0xF0, 0x14, 0x6C, 0x01, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xC3, 0xF0, 0x10, 0x6C, 0x01, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, -0x18, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x18, 0x6C, -0xB1, 0x67, 0x02, 0x6E, 0x40, 0xEA, 0x00, 0x68, -0x08, 0xF5, 0x08, 0x6C, 0xFF, 0x6D, 0x80, 0x18, -0x35, 0x25, 0x86, 0x72, 0x07, 0x61, 0x30, 0xF0, -0x21, 0x69, 0x00, 0x6B, 0xF4, 0xF6, 0x0A, 0x49, -0x04, 0xD3, 0x1E, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF3, 0x04, 0x4B, 0xFF, 0x6A, 0x30, 0xF0, -0x20, 0x69, 0x01, 0x48, 0xA0, 0x9B, 0x4C, 0xE8, -0xC0, 0xF3, 0x44, 0x99, 0xA8, 0xF1, 0x18, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF3, 0x04, 0x4B, 0xC0, 0xF3, 0x44, 0x99, -0xA0, 0x9B, 0xA8, 0xF1, 0x18, 0x6C, 0x02, 0x6E, -0x40, 0xEA, 0x64, 0x70, 0xD5, 0x61, 0xDB, 0x17, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0xA8, 0xF1, 0x14, 0x6C, 0x04, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xA9, 0xC0, 0xF3, 0x44, 0x98, -0xA8, 0xF1, 0x14, 0x6C, 0xE1, 0xF7, 0x18, 0x6D, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, -0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, -0xA8, 0xF1, 0x10, 0x6C, 0x02, 0x49, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x14, 0x6C, -0x04, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x04, 0x92, -0x01, 0x4A, 0x0F, 0x72, 0x04, 0xD2, 0xD8, 0x61, -0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x14, 0x6C, -0x04, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF3, 0x04, 0x4B, 0xC0, 0xF3, -0x44, 0x98, 0xA0, 0x9B, 0xC8, 0xF1, 0x14, 0x69, -0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF3, 0x04, 0x4B, 0xC0, 0xF3, -0x44, 0x98, 0xA0, 0x9B, 0x91, 0x67, 0x02, 0x6E, -0x40, 0xEA, 0x00, 0x68, 0x28, 0xF5, 0x14, 0x6C, -0xFF, 0x6D, 0x80, 0x18, 0x35, 0x25, 0x86, 0x72, -0x07, 0x61, 0x30, 0xF0, 0x21, 0x69, 0x00, 0x6A, -0x14, 0xF7, 0x08, 0x49, 0x04, 0xD2, 0x1E, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0x04, 0x4B, -0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x69, 0x01, 0x48, -0xA0, 0x9B, 0x4C, 0xE8, 0xC0, 0xF3, 0x44, 0x99, -0xC8, 0xF1, 0x14, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0x04, 0x4B, -0xC0, 0xF3, 0x44, 0x99, 0xA0, 0x9B, 0xC8, 0xF1, -0x14, 0x6C, 0x02, 0x6E, 0x40, 0xEA, 0x64, 0x70, -0xD5, 0x61, 0xDB, 0x17, 0x30, 0xF0, 0x20, 0x68, -0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x10, 0x6C, -0x04, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xA9, -0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x10, 0x6C, -0xE1, 0xF7, 0x18, 0x6D, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF3, 0xAC, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x04, 0x96, 0xC8, 0xF1, 0x0C, 0x6C, -0x02, 0x49, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xC8, 0xF1, 0x10, 0x6C, 0x04, 0x6D, 0x01, 0x6E, -0x40, 0xEA, 0x04, 0x92, 0x01, 0x4A, 0x0F, 0x72, -0x04, 0xD2, 0xD8, 0x61, 0xC0, 0xF3, 0x44, 0x98, -0xC8, 0xF1, 0x10, 0x6C, 0x04, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, -0x24, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, -0x18, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0xC8, 0xF1, -0x14, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xA8, 0xF1, 0x14, 0x6C, 0x01, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xC8, 0xF1, 0x10, 0x6C, 0x01, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, -0x34, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x28, 0xF1, -0x10, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x07, 0x96, 0x01, 0x6D, 0x63, 0xF0, -0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x06, 0x96, 0x01, 0x6D, 0x68, 0xF1, -0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF3, 0x3C, 0x9A, 0xC0, 0xF3, -0x44, 0x98, 0xA3, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xC3, 0xF0, 0x0C, 0x6C, 0xB1, 0x67, 0x01, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x0C, 0x6C, -0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x05, 0x96, 0x01, 0x6D, 0xA1, 0xF1, -0x14, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x80, 0x18, -0xA0, 0x01, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xE3, 0xF7, 0x18, 0x69, -0xB1, 0x67, 0x05, 0xF0, 0x10, 0x6C, 0x80, 0x18, -0x35, 0x25, 0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6B, -0x2B, 0xF1, 0x18, 0x48, 0x6C, 0xEA, 0xB1, 0x67, -0x25, 0xF0, 0x1C, 0x6C, 0xE9, 0xF5, 0x4E, 0xC8, -0x80, 0x18, 0x35, 0x25, 0xFF, 0x6B, 0x6C, 0xEA, -0xB1, 0x67, 0x08, 0xF5, 0x10, 0x6C, 0xE9, 0xF5, -0x50, 0xC8, 0x80, 0x18, 0x35, 0x25, 0xFF, 0x6B, -0x6C, 0xEA, 0xB1, 0x67, 0x28, 0xF5, 0x1C, 0x6C, -0xE9, 0xF5, 0x52, 0xC8, 0x80, 0x18, 0x35, 0x25, -0xFF, 0x6B, 0x6C, 0xEA, 0xE9, 0xF5, 0x54, 0xC8, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x82, 0xF0, 0x68, 0xA2, 0x00, 0xF1, 0x0B, 0x23, -0x00, 0x68, 0x82, 0xF0, 0x08, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF3, 0xA8, 0x9A, 0x05, 0xF0, -0x08, 0x6C, 0x80, 0x18, 0x35, 0x25, 0xFF, 0xF7, -0x1F, 0x72, 0x07, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x69, 0xF5, 0x14, 0xC2, -0xF6, 0x10, 0x01, 0x69, 0x2B, 0xE9, 0x01, 0x6B, -0xB1, 0x67, 0x30, 0xF0, 0x21, 0x6A, 0x63, 0xF0, -0x00, 0x6C, 0xB4, 0xF6, 0x6C, 0xC2, 0x80, 0x18, -0x35, 0x25, 0xB1, 0x67, 0x68, 0xF1, 0x00, 0x6C, -0x07, 0xD2, 0x80, 0x18, 0x35, 0x25, 0xB1, 0x67, -0xA1, 0xF1, 0x14, 0x6C, 0x30, 0xF0, 0x20, 0x68, -0x06, 0xD2, 0x80, 0x18, 0x35, 0x25, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF3, 0xD8, 0x9B, 0x05, 0xD2, -0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0xA1, 0xF1, -0x14, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF1, 0xB4, 0x9B, -0x23, 0xF0, 0x10, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x83, 0xF3, 0xA0, 0x9B, 0x63, 0xF0, 0x00, 0x6C, -0x3C, 0x6E, 0x30, 0xF0, 0x21, 0x68, 0x40, 0xEA, -0xB4, 0xF6, 0x0E, 0x48, 0x00, 0x69, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, -0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, 0xD1, 0x67, -0xA3, 0xF0, 0x10, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF3, 0xB0, 0x9A, 0x05, 0xF0, -0x10, 0x6C, 0x01, 0x49, 0x80, 0x18, 0x35, 0x25, -0x0F, 0x71, 0x40, 0xC8, 0x02, 0x48, 0xE7, 0x61, -0x30, 0xF0, 0x21, 0x68, 0x00, 0x6A, 0xD4, 0xF6, -0x0C, 0x48, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x69, 0x83, 0xF3, 0xAC, 0x9B, -0xC0, 0xF3, 0x44, 0x99, 0x04, 0x96, 0xC3, 0xF0, -0x0C, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF3, 0xB0, 0x9A, 0x25, 0xF0, 0x1C, 0x6C, -0x80, 0x18, 0x35, 0x25, 0x40, 0xC8, 0x04, 0x92, -0x02, 0x48, 0x01, 0x4A, 0x0F, 0x72, 0x04, 0xD2, -0xE5, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x99, 0xA3, 0xF1, 0xB4, 0x9B, 0x28, 0xF1, -0x10, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, 0x83, 0xF3, -0xA0, 0x9B, 0x68, 0xF1, 0x00, 0x6C, 0x3C, 0x6E, -0x30, 0xF0, 0x21, 0x68, 0x40, 0xEA, 0xF4, 0xF6, -0x0A, 0x48, 0x00, 0x69, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, 0xAC, 0x9B, -0xC0, 0xF3, 0x44, 0x9A, 0xD1, 0x67, 0xA8, 0xF1, -0x10, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF3, 0xB0, 0x9A, 0x08, 0xF5, 0x10, 0x6C, -0x01, 0x49, 0x80, 0x18, 0x35, 0x25, 0x0F, 0x71, -0x40, 0xC8, 0x02, 0x48, 0xE7, 0x61, 0x30, 0xF0, -0x21, 0x69, 0x00, 0x6A, 0x14, 0xF7, 0x08, 0x49, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x68, 0x83, 0xF3, 0xAC, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x04, 0x96, 0xC8, 0xF1, 0x0C, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, -0xB0, 0x9A, 0x28, 0xF5, 0x1C, 0x6C, 0x80, 0x18, -0x35, 0x25, 0x40, 0xC9, 0x04, 0x92, 0x02, 0x49, -0x01, 0x4A, 0x0F, 0x72, 0x04, 0xD2, 0xE5, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0x34, 0x9A, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xB1, 0x67, 0x28, 0xF1, 0x10, 0x6C, -0x01, 0x6E, 0x40, 0xEA, 0x01, 0x69, 0xC0, 0xF3, -0x44, 0x98, 0x07, 0x96, 0x2B, 0xE9, 0x63, 0xF0, -0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x06, 0x96, 0x68, 0xF1, 0x00, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x05, 0x96, 0xA1, 0xF1, 0x14, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x80, 0x18, 0xB5, 0x05, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0x69, 0x00, 0x6A, 0x8C, 0xE9, 0x06, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x04, 0x4A, -0xE0, 0x9A, 0x30, 0xF0, 0x21, 0x68, 0x12, 0xF5, -0x08, 0x48, 0x00, 0x6B, 0x90, 0x67, 0xB1, 0x67, -0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x8D, 0x5A, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x04, 0x4A, -0xE0, 0x9A, 0x00, 0x6B, 0x90, 0x67, 0xB1, 0x67, -0x08, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x8D, 0x5A, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x04, 0x4B, -0xE0, 0x9B, 0x90, 0x67, 0xB1, 0x67, 0x08, 0x6E, -0x80, 0x18, 0x1A, 0x5A, 0x0B, 0x22, 0x06, 0x92, -0x01, 0x4A, 0x06, 0xD2, 0x06, 0x93, 0xFF, 0xF7, -0x1F, 0x6A, 0x4C, 0xEB, 0x2E, 0xF5, 0x10, 0x73, -0x06, 0xD3, 0xCE, 0x61, 0x0B, 0x97, 0x0A, 0x91, -0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xF5, 0x63, 0x15, 0x62, 0x14, 0xD1, 0x13, 0xD0, -0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xED, 0x30, 0xF0, -0x20, 0x6A, 0x02, 0xF3, 0x04, 0x4A, 0x64, 0x67, -0x06, 0xD2, 0xC2, 0xF3, 0x08, 0x4B, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x68, 0x33, -0x6D, 0xE2, 0x08, 0xD3, 0x64, 0x67, 0xE1, 0xF1, -0x08, 0x4B, 0x6C, 0x33, 0x6D, 0xE2, 0x0A, 0xD3, -0x00, 0x6B, 0x0F, 0xD4, 0x11, 0xD5, 0x07, 0xD3, -0x07, 0x95, 0x11, 0x92, 0xFF, 0x69, 0xAC, 0xE9, -0x18, 0x2A, 0x30, 0xF0, 0x21, 0x68, 0x12, 0xF5, -0x08, 0x48, 0x01, 0x6A, 0x90, 0x67, 0xB1, 0x67, -0xDF, 0x6E, 0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0x8D, 0x5A, 0x0A, 0x93, 0x90, 0x67, 0xB1, 0x67, -0x40, 0x9B, 0x58, 0x6E, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF3, 0xE4, 0x9A, 0x80, 0x18, -0x8D, 0x5A, 0x07, 0x95, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0x40, 0x9A, 0xA4, 0x35, 0x00, 0x69, -0x4D, 0xED, 0x0E, 0xD5, 0x30, 0xF0, 0x20, 0x68, -0xC0, 0xF3, 0x44, 0x98, 0x0E, 0x96, 0x01, 0x6D, -0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, -0x0C, 0x6C, 0xAB, 0xED, 0x07, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, 0x04, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, -0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, 0x04, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, -0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC3, 0xF3, -0x0C, 0x6C, 0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, -0xFF, 0x6A, 0x2C, 0xEA, 0x08, 0x2A, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, -0x00, 0x6D, 0x03, 0x6E, 0x07, 0x10, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, -0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, -0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, 0xC3, 0xF3, -0x14, 0x6C, 0x10, 0x6E, 0x40, 0xEA, 0x0F, 0x95, -0x07, 0x93, 0x30, 0xF0, 0x20, 0x6A, 0xA4, 0x34, -0x71, 0xE4, 0x84, 0x34, 0x91, 0xE1, 0x83, 0xF3, -0x54, 0x9A, 0xE0, 0xF4, 0xA2, 0x44, 0x30, 0xF0, -0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0xB0, 0x35, -0xE0, 0xF4, 0x0A, 0x4C, 0x46, 0xE9, 0xB5, 0xE3, -0x90, 0x34, 0x91, 0xE3, 0x0D, 0xD5, 0x61, 0x42, -0xA3, 0x42, 0x23, 0x4A, 0x09, 0xD5, 0x0C, 0xD4, -0x0B, 0xD3, 0x10, 0xD2, 0x0D, 0x95, 0x09, 0x93, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xAD, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x6D, 0xC0, 0x36, 0xC4, 0x36, -0xD9, 0xE3, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x0C, 0x95, 0x0B, 0x93, 0xC0, 0xF3, -0x44, 0x98, 0xC0, 0xAD, 0x01, 0x6D, 0xAB, 0xED, -0xC0, 0x36, 0xC4, 0x36, 0xD9, 0xE3, 0xC3, 0xF3, -0x18, 0x6C, 0x40, 0xEA, 0x0D, 0x95, 0x0C, 0x93, -0x09, 0x92, 0x02, 0x4D, 0x02, 0x4B, 0x0D, 0xD5, -0x0C, 0xD3, 0x0B, 0x95, 0x10, 0x93, 0x04, 0x4A, -0x04, 0x4D, 0x6A, 0xEA, 0x09, 0xD2, 0x0B, 0xD5, -0xD5, 0x61, 0xFF, 0x6A, 0x2C, 0xEA, 0x08, 0x2A, -0x08, 0x95, 0x06, 0x93, 0xC0, 0xF3, 0x44, 0x98, -0xC0, 0xA5, 0x80, 0xAB, 0x01, 0x6D, 0x08, 0x10, -0x06, 0x93, 0x08, 0x95, 0xC0, 0xF3, 0x44, 0x98, -0x80, 0xAB, 0xC1, 0xA5, 0x00, 0xF4, 0x00, 0x6D, -0xCF, 0xEE, 0x01, 0x49, 0x40, 0xEA, 0x02, 0x71, -0x5F, 0xF7, 0x0C, 0x61, 0x30, 0xF0, 0x20, 0x68, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC3, 0xF3, -0x18, 0x6C, 0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x06, 0xF0, 0x00, 0x6D, -0x03, 0xF3, 0x0C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x07, 0x95, 0x06, 0x92, 0x08, 0x93, 0x01, 0x4D, -0x07, 0xD5, 0x02, 0x4A, 0x0A, 0x95, 0x06, 0xD2, -0x07, 0x92, 0x02, 0x4B, 0x04, 0x4D, 0x02, 0x72, -0x08, 0xD3, 0x0A, 0xD5, 0x1F, 0xF7, 0x04, 0x61, -0x15, 0x97, 0x14, 0x91, 0x13, 0x90, 0x0B, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x21, 0x6A, 0x34, 0xF7, 0x5D, 0xA2, -0x05, 0x22, 0x00, 0x6C, 0x01, 0x6D, 0x80, 0x18, -0xDF, 0x01, 0x04, 0x10, 0x00, 0x6C, 0x01, 0x6D, -0x80, 0x18, 0x7C, 0x06, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x00, 0x6A, 0x7D, 0x67, -0x4C, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, -0x38, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, -0x04, 0x4A, 0xE0, 0x9A, 0x30, 0xF0, 0x21, 0x68, -0x12, 0xF5, 0x08, 0x48, 0x00, 0x6D, 0x90, 0x67, -0xC5, 0x67, 0x04, 0xD1, 0x80, 0x18, 0x8D, 0x5A, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x04, 0x4B, -0xE0, 0x9B, 0x90, 0x67, 0x01, 0x6D, 0x00, 0x6E, -0x30, 0xF0, 0x20, 0x68, 0x04, 0xD1, 0x80, 0x18, -0x8D, 0x5A, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, -0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xE1, 0xF0, -0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x6D, 0xE1, 0xF0, 0x1C, 0x6C, -0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x07, 0x6D, 0xC5, 0x67, 0x83, 0xF1, -0x0C, 0x6C, 0x40, 0xEA, 0x06, 0x02, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, -0xA1, 0xF3, 0x18, 0x6F, 0xA1, 0xF7, 0x00, 0x6C, -0x08, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0xF0, 0x08, 0x6C, 0xFF, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF3, 0xBC, 0x9B, -0x01, 0xF2, 0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0x6C, 0x9A, -0xFF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0xFE, 0x6C, -0x4C, 0xEC, 0x80, 0xC3, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF2, 0x54, 0x9A, 0x60, 0xA2, -0x01, 0x6A, 0x6C, 0xEA, 0x09, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF3, 0x64, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF3, 0x40, 0x9A, 0x60, 0xDA, -0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0x24, 0x9A, 0x30, 0xF0, 0x21, 0x68, -0x12, 0xF5, 0x08, 0x48, 0x90, 0x67, 0xF1, 0x67, -0x01, 0xF2, 0x00, 0x6A, 0x00, 0x6D, 0xB8, 0x6E, -0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF3, 0x48, 0x9A, 0x90, 0x67, -0xF1, 0x67, 0x00, 0x6D, 0xB8, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0x8D, 0x5A, 0x09, 0x97, 0x08, 0x91, -0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x0E, 0xD6, 0x0F, 0xD7, 0x04, 0xD7, 0xFF, 0x68, -0xFF, 0xF7, 0x1F, 0x69, 0x0E, 0x97, 0x8C, 0xE8, -0xAC, 0xE9, 0x30, 0xF0, 0x21, 0x6C, 0x12, 0xF5, -0x08, 0x4C, 0xB0, 0x67, 0xD1, 0x67, 0x80, 0x18, -0x8D, 0x5A, 0x00, 0x6A, 0x07, 0xD2, 0x30, 0xF0, -0x21, 0x6B, 0x0E, 0x97, 0x12, 0xF5, 0x08, 0x4B, -0x83, 0x67, 0xB0, 0x67, 0xD1, 0x67, 0x06, 0xD3, -0x80, 0x18, 0x1A, 0x5A, 0x0F, 0x93, 0x6E, 0xEA, -0x1E, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x0F, 0x92, -0x06, 0x94, 0x0E, 0x97, 0xB0, 0x67, 0xD1, 0x67, -0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, 0x07, 0x93, -0x01, 0x4B, 0xE0, 0xF3, 0x08, 0x73, 0x07, 0xD3, -0xDE, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x44, 0x9A, 0xA0, 0xF1, 0x00, 0x6C, 0x1F, 0xF7, -0x00, 0x6D, 0x0A, 0x6E, 0x40, 0xEA, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x68, 0xFF, 0xF7, -0x1F, 0x69, 0x63, 0xF3, 0xE4, 0x9A, 0x8C, 0xE8, -0xAC, 0xE9, 0x30, 0xF0, 0x21, 0x6C, 0x0E, 0xD6, -0x04, 0xD6, 0x12, 0xF5, 0x08, 0x4C, 0xB0, 0x67, -0xD1, 0x67, 0x80, 0x18, 0x8D, 0x5A, 0x00, 0x6A, -0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, -0x04, 0x4A, 0x30, 0xF0, 0x21, 0x6B, 0xE0, 0x9A, -0x12, 0xF5, 0x08, 0x4B, 0x83, 0x67, 0xB0, 0x67, -0xD1, 0x67, 0x06, 0xD3, 0x80, 0x18, 0x1A, 0x5A, -0x0E, 0x93, 0x6E, 0xEA, 0x18, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, -0x04, 0x4B, 0x0E, 0x92, 0x06, 0x94, 0xE0, 0x9B, -0xB0, 0x67, 0xD1, 0x67, 0x04, 0xD2, 0x80, 0x18, -0x8D, 0x5A, 0x07, 0x92, 0x01, 0x4A, 0xE0, 0xF3, -0x08, 0x72, 0x07, 0xD2, 0xD6, 0x61, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x00, 0x6A, 0x0C, 0xD4, 0x05, 0x67, 0x06, 0xD2, -0x06, 0x92, 0xFF, 0x6B, 0x30, 0xF0, 0x21, 0x69, -0x6C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, -0x04, 0x4B, 0x07, 0xD2, 0xE0, 0x9B, 0x07, 0x95, -0x12, 0xF5, 0x08, 0x49, 0x00, 0x6A, 0x91, 0x67, -0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, -0x40, 0x98, 0x06, 0x94, 0x11, 0x6E, 0xCB, 0xEE, -0x4C, 0xEE, 0xDF, 0x6D, 0x80, 0x18, 0x8E, 0x07, -0x0C, 0x92, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, -0x04, 0x4B, 0xC1, 0xA2, 0xE0, 0x9B, 0x42, 0x98, -0x07, 0x95, 0x91, 0x67, 0x04, 0xD2, 0x80, 0x18, -0x8D, 0x5A, 0x0C, 0x92, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF3, 0x04, 0x4B, 0xC2, 0xA2, 0x07, 0x95, -0x44, 0x98, 0xE0, 0x9B, 0x91, 0x67, 0x04, 0xD2, -0x80, 0x18, 0x8D, 0x5A, 0x06, 0x92, 0x04, 0x48, -0x01, 0x4A, 0x02, 0x72, 0x06, 0xD2, 0xC4, 0x61, -0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x21, 0x6C, 0x12, 0xF5, 0x08, 0x4C, -0x80, 0x18, 0x27, 0x1D, 0x05, 0x97, 0x01, 0x6A, -0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x01, 0x6B, 0x6B, 0xEB, -0x30, 0xF0, 0x21, 0x6A, 0x0A, 0xD4, 0x34, 0xF7, -0x72, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, -0x3C, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x0A, 0x93, -0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, 0x21, 0x6C, -0x35, 0xE3, 0xB5, 0xF2, 0x10, 0x4C, 0x08, 0x6E, -0x40, 0xEA, 0x0A, 0x95, 0x80, 0xF2, 0x4C, 0x98, -0x30, 0xF0, 0x21, 0x6C, 0x08, 0x4D, 0x35, 0xE5, -0x95, 0xF0, 0x08, 0x4C, 0x44, 0x6E, 0x40, 0xEA, -0x0A, 0x92, 0x30, 0xF0, 0x21, 0x6C, 0xD5, 0xF0, -0x0C, 0x4C, 0x4C, 0x4A, 0x04, 0xD2, 0x04, 0x93, -0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, -0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, 0x21, 0x6C, -0x15, 0xF1, 0x10, 0x4C, 0x44, 0x4A, 0x04, 0xD2, -0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, -0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, -0x21, 0x6C, 0x55, 0xF1, 0x14, 0x4C, 0x44, 0x4A, -0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, -0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, -0x30, 0xF0, 0x21, 0x6C, 0x95, 0xF1, 0x18, 0x4C, -0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, -0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, -0x04, 0x92, 0x30, 0xF0, 0x21, 0x6C, 0xD5, 0xF1, -0x1C, 0x4C, 0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, -0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, -0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, 0x21, 0x6C, -0x35, 0xF2, 0x00, 0x4C, 0x44, 0x4A, 0x04, 0xD2, -0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, -0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, -0x21, 0x6C, 0x75, 0xF2, 0x04, 0x4C, 0x44, 0x4A, -0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, -0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF4, 0xB4, 0x9B, 0x04, 0x93, -0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, 0x21, 0x6C, -0xD5, 0xF2, 0x08, 0x4C, 0xB5, 0xE3, 0x10, 0x6E, -0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0xD1, -0x08, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF0, -0x7C, 0xA2, 0x80, 0xF0, 0x1B, 0x23, 0x30, 0xF0, -0x20, 0x6C, 0xA3, 0xF1, 0x94, 0x9C, 0x00, 0x6B, -0xE2, 0xF0, 0x7C, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x01, 0x6B, 0x09, 0xF6, -0x90, 0xDA, 0x09, 0xF6, 0x98, 0xDA, 0x09, 0xF6, -0x94, 0xDA, 0x09, 0xF6, 0x9C, 0xDA, 0x30, 0xF0, -0x21, 0x6D, 0x30, 0xF0, 0x21, 0x6C, 0x09, 0xF6, -0x6B, 0xC2, 0x09, 0xF6, 0x69, 0xC2, 0x09, 0xF6, -0x6D, 0xC2, 0x09, 0xF6, 0x6C, 0xC2, 0x09, 0xF6, -0x6A, 0xC2, 0x09, 0xF6, 0x6E, 0xC2, 0xB5, 0xF2, -0x10, 0x4D, 0xB5, 0xF0, 0x0A, 0x4C, 0x00, 0x6A, -0x00, 0x6B, 0x60, 0xDD, 0x30, 0xF0, 0x20, 0x6E, -0x31, 0xF2, 0x62, 0x42, 0x2B, 0xF1, 0x18, 0x4E, -0x6C, 0x33, 0x6D, 0xE6, 0x04, 0xD3, 0x62, 0xF4, -0x62, 0x42, 0x68, 0x33, 0x6D, 0xE6, 0x03, 0xD3, -0x06, 0x6B, 0x78, 0xEA, 0x01, 0xD4, 0x12, 0xEB, -0x6D, 0xE6, 0xAA, 0xF1, 0x01, 0x4B, 0x00, 0x6E, -0x04, 0x90, 0x00, 0x6F, 0xE0, 0xD8, 0x03, 0x90, -0xE0, 0xC8, 0x44, 0x30, 0x01, 0xE6, 0xA5, 0xF0, -0x18, 0x48, 0x30, 0xF0, 0x20, 0x6F, 0x04, 0x30, -0x2B, 0xF1, 0x18, 0x4F, 0x1D, 0xE7, 0x05, 0xD7, -0x01, 0x97, 0x00, 0x68, 0x00, 0xD0, 0x02, 0xD7, -0x05, 0x90, 0x01, 0x6F, 0x22, 0x69, 0xE0, 0xC0, -0x00, 0x97, 0x06, 0xD2, 0x38, 0xEF, 0x44, 0x6F, -0x12, 0xE9, 0xF8, 0xEE, 0x12, 0xEF, 0xE5, 0xE1, -0x88, 0x6F, 0xF8, 0xEA, 0x12, 0xEF, 0xE5, 0xE1, -0x11, 0x67, 0x30, 0xF0, 0x20, 0x6F, 0x2B, 0xF1, -0x18, 0x4F, 0x49, 0xF7, 0x10, 0x48, 0x6A, 0xF0, -0x00, 0x49, 0x01, 0xE7, 0x25, 0xE7, 0x02, 0x92, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0xD1, +0x08, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0xE9, 0xF5, 0x7A, 0xA2, 0x79, 0x2B, +0x01, 0x6B, 0x30, 0xF0, 0x21, 0x6D, 0x30, 0xF0, +0x21, 0x6C, 0x09, 0xF6, 0x69, 0xC2, 0x09, 0xF6, +0x6A, 0xC2, 0x75, 0xF0, 0x00, 0x4D, 0x74, 0xF7, +0x08, 0x4C, 0x00, 0x6A, 0x00, 0x6B, 0x60, 0xDD, +0x30, 0xF0, 0x20, 0x6E, 0xE1, 0xF1, 0x68, 0x42, +0x2B, 0xF1, 0x18, 0x4E, 0x6C, 0x33, 0x6D, 0xE6, +0x04, 0xD3, 0xC2, 0xF3, 0x6E, 0x42, 0x68, 0x33, +0x6D, 0xE6, 0x03, 0xD3, 0x06, 0x6B, 0x78, 0xEA, +0x01, 0xD4, 0x12, 0xEB, 0x6D, 0xE6, 0xAA, 0xF1, +0x01, 0x4B, 0x00, 0x6E, 0x04, 0x90, 0x00, 0x6F, +0xE0, 0xD8, 0x03, 0x90, 0xE0, 0xC8, 0x44, 0x30, +0x01, 0xE6, 0x84, 0xF7, 0x10, 0x48, 0x30, 0xF0, +0x20, 0x6F, 0x04, 0x30, 0x2B, 0xF1, 0x18, 0x4F, +0x1D, 0xE7, 0x05, 0xD7, 0x01, 0x97, 0x00, 0x68, +0x00, 0xD0, 0x02, 0xD7, 0x05, 0x90, 0x01, 0x6F, +0x44, 0x31, 0xE0, 0xC0, 0x00, 0x97, 0xC5, 0xE1, +0x24, 0x31, 0x25, 0xE7, 0xE0, 0xF4, 0x02, 0x41, +0x30, 0xF0, 0x20, 0x6F, 0xE0, 0xF4, 0x0A, 0x49, +0x2B, 0xF1, 0x18, 0x4F, 0x10, 0x30, 0x30, 0x31, +0x01, 0xE7, 0x25, 0xE7, 0x06, 0xD2, 0x02, 0x92, 0x00, 0x6F, 0xE0, 0xC8, 0x02, 0x48, 0x4A, 0xE8, 0xE0, 0xC9, 0x02, 0x49, 0xF8, 0x61, 0x00, 0x90, 0x06, 0x92, 0x01, 0x48, 0x00, 0xD0, 0x05, 0x90, -0x01, 0x48, 0x05, 0xD0, 0x02, 0x90, 0x22, 0x48, -0x02, 0xD0, 0x00, 0x90, 0x02, 0x70, 0xD0, 0x61, +0x01, 0x48, 0x05, 0xD0, 0x02, 0x90, 0x10, 0x48, +0x02, 0xD0, 0x00, 0x90, 0x02, 0x70, 0xD6, 0x61, 0xE0, 0xC3, 0xE1, 0xC3, 0xE2, 0xC3, 0x04, 0x97, 0x03, 0x90, 0x01, 0x4E, 0x04, 0x4F, 0x04, 0xD7, -0x01, 0x97, 0x02, 0x48, 0x02, 0x76, 0x44, 0x4F, -0x03, 0xD0, 0x03, 0x4B, 0x01, 0xD7, 0xAC, 0x61, -0x01, 0x4A, 0x7F, 0x4C, 0x02, 0x72, 0x04, 0x4D, -0x09, 0x4C, 0x8E, 0x61, 0x09, 0x91, 0x08, 0x90, -0x05, 0x63, 0x20, 0xE8, 0x20, 0xE8, 0x00, 0x65, +0x01, 0x97, 0x02, 0x48, 0x02, 0x76, 0x20, 0x4F, +0x03, 0xD0, 0x03, 0x4B, 0x01, 0xD7, 0xB2, 0x61, +0x01, 0x4A, 0x02, 0x72, 0x04, 0x4D, 0x40, 0x4C, +0x95, 0x61, 0x09, 0x91, 0x08, 0x90, 0x05, 0x63, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0xE4, 0x9A, +0x30, 0xF0, 0x21, 0x6C, 0x12, 0xF5, 0x08, 0x4C, +0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, 0x9F, 0x58, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF4, 0x00, 0x6C, +0x2B, 0xF1, 0x18, 0x4B, 0x4C, 0xEC, 0x29, 0xF7, +0x50, 0xDB, 0x82, 0x32, 0x4A, 0x32, 0x02, 0x72, +0x0A, 0x60, 0x03, 0x6C, 0x4E, 0xEC, 0x04, 0x24, +0x01, 0x72, 0x02, 0x6A, 0x05, 0x60, 0x06, 0x10, +0xE9, 0xF5, 0x99, 0xC3, 0x03, 0x10, 0x01, 0x6A, +0xE9, 0xF5, 0x59, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF1, 0x7C, 0x9B, 0x29, 0xF7, 0x90, 0x9A, +0x8C, 0xEB, 0x62, 0x33, 0x62, 0x33, 0xE9, 0xF5, +0x78, 0xC2, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x6A, 0x8C, 0xEA, 0x00, 0xF2, 0x1C, 0x22, -0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF2, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF6, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF2, 0xB4, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF4, 0x10, 0x69, -0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF3, 0xA4, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0xB4, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, -0x14, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x43, 0xF5, 0x18, 0x6C, 0xE1, 0xF7, -0x18, 0x6D, 0xE0, 0xF1, 0x1F, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0x14, 0x4B, -0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, -0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF1, 0x14, 0x4B, 0xA0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x68, 0xF1, 0x04, 0x6C, -0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0x3C, 0x9A, 0xC0, 0xF3, 0x44, 0x98, -0x03, 0xF0, 0x0C, 0x6C, 0xB1, 0x67, 0x01, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, -0x08, 0xF1, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, 0x0C, 0x6C, -0x80, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x68, 0xF1, 0x0C, 0x6C, 0x80, 0x6D, -0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x03, 0xF0, 0x0C, 0x6C, 0x03, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, -0x0C, 0x6C, 0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x00, 0x6C, -0x03, 0x6D, 0x02, 0x6E, 0x40, 0xEA, 0x01, 0x69, -0xC0, 0xF3, 0x44, 0x98, 0x2B, 0xE9, 0x23, 0xF4, -0x18, 0x6C, 0xB1, 0x67, 0xD1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0x00, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, -0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0x0C, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, -0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0x1C, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, -0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, 0x0C, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, -0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, 0x1C, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, -0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0x04, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, -0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0x14, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, -0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, 0x04, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, -0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, 0x14, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, -0x1C, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0xC0, 0x9B, 0xC9, 0x12, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x04, 0xD2, 0xAA, 0xF1, 0x40, 0xA2, 0xE0, 0xF0, -0x1B, 0x22, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF4, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF4, -0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x04, 0x93, -0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, 0x00, 0x6C, -0x09, 0xF6, 0xC6, 0xA3, 0x04, 0x6B, 0x0E, 0xF0, -0x00, 0x6D, 0x67, 0xEE, 0xC3, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, 0x04, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, -0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0x09, 0xF6, -0xC6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, -0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF4, 0x08, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, -0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x23, 0xF0, -0x10, 0x6C, 0x09, 0xF6, 0xC6, 0xA2, 0xC0, 0xF3, -0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, 0x0C, 0x4B, -0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, -0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0x09, 0xF6, -0xC6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, -0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF4, 0x10, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, -0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x23, 0xF0, -0x10, 0x6C, 0x09, 0xF6, 0xC6, 0xA2, 0xC0, 0xF3, -0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, 0x14, 0x4B, -0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, -0x23, 0xF0, 0x10, 0x6C, 0x09, 0xF6, 0xC6, 0xA2, -0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, -0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, -0x1C, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, 0x04, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, -0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, 0x09, 0xF6, -0xC6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, -0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF4, 0x08, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, -0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x28, 0xF1, -0x10, 0x6C, 0x09, 0xF6, 0xC6, 0xA2, 0xC0, 0xF3, -0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, 0x0C, 0x4B, -0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, -0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, 0x09, 0xF6, -0xC6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, -0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF4, 0x10, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, -0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x28, 0xF1, -0x10, 0x6C, 0x09, 0xF6, 0xC6, 0xA2, 0xC0, 0xF3, -0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, 0x14, 0x4B, -0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, -0x28, 0xF1, 0x10, 0x6C, 0x09, 0xF6, 0xC6, 0xA2, -0xB1, 0x67, 0xC0, 0xF3, 0x44, 0x98, 0x67, 0xEE, -0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, -0x1C, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x63, 0x11, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, -0x83, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, -0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x0C, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, -0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x18, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, -0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, 0x08, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, -0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, 0x04, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, -0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x0C, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, -0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x18, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, -0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, 0x08, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, -0x14, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x30, 0xF0, -0x20, 0x68, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF2, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, -0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x43, 0xF5, 0x18, 0x6C, 0xE1, 0xF7, -0x18, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF1, 0x34, 0x9A, 0xC0, 0xF3, -0x44, 0x98, 0x63, 0xF0, 0x04, 0x6C, 0xB1, 0x67, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xB1, 0x67, 0x68, 0xF1, 0x04, 0x6C, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, -0x3C, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, -0x0C, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, 0x0C, 0x6C, -0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x63, 0xF0, 0x0C, 0x6C, 0x80, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x68, 0xF1, 0x0C, 0x6C, 0x80, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0x6D, -0xC5, 0x67, 0x03, 0xF0, 0x0C, 0x6C, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0x6D, 0xC5, 0x67, -0x08, 0xF1, 0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF2, 0x00, 0x6C, 0x03, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, -0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x00, 0x68, 0x05, 0xD5, 0x04, 0xD4, 0x05, 0x92, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x04, 0x4B, +0xE0, 0x9B, 0xC0, 0xA2, 0x30, 0xF0, 0x21, 0x69, +0x12, 0xF5, 0x08, 0x49, 0x91, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x9F, 0x58, 0x04, 0x93, 0x91, 0x67, +0x01, 0x6D, 0x40, 0xDB, 0x05, 0x92, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF3, 0x04, 0x4B, 0xE0, 0x9B, +0xC0, 0xA2, 0x01, 0x48, 0x80, 0x18, 0x9F, 0x58, +0x04, 0x93, 0x41, 0xDB, 0xFF, 0x6A, 0x4C, 0xE8, +0x05, 0x92, 0x08, 0x4B, 0x03, 0x70, 0x01, 0x4A, +0x05, 0xD2, 0x04, 0xD3, 0xD8, 0x61, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x06, 0x67, 0xC3, 0xF4, -0xD8, 0x9B, 0x09, 0xD5, 0x01, 0x6D, 0x24, 0x67, -0x0B, 0xD7, 0x63, 0xF5, 0x10, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x00, 0x6A, 0x80, 0x98, 0x1F, 0xF7, -0x00, 0x6B, 0x8C, 0xEB, 0x02, 0xF0, 0x00, 0x73, -0x01, 0x60, 0x09, 0x2B, 0x30, 0xF0, 0x20, 0x6C, -0x60, 0x98, 0x43, 0xF1, 0x80, 0x9C, 0x6D, 0xE4, -0x80, 0x99, 0x80, 0xDB, 0x07, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF1, 0x64, 0x9B, 0x91, 0xE3, -0x60, 0x99, 0x60, 0xDC, 0x01, 0x4A, 0xFF, 0x6B, -0x6C, 0xEA, 0x03, 0x72, 0x04, 0x48, 0x04, 0x49, -0xE1, 0x61, 0x00, 0x68, 0x0B, 0x92, 0x30, 0xF0, -0x20, 0x69, 0x01, 0x6D, 0x11, 0xE2, 0x09, 0x92, -0x80, 0xAC, 0xAB, 0xED, 0x0D, 0xE2, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x99, 0x04, 0x48, 0x40, 0xEA, -0x2C, 0x70, 0xF0, 0x61, 0x30, 0xF0, 0x21, 0x6A, -0xB5, 0xF2, 0x49, 0xA2, 0x01, 0x72, 0x0A, 0x61, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, -0x03, 0xF0, 0x0C, 0x6C, 0x03, 0xF1, 0xB4, 0x9B, -0x00, 0x6E, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x99, 0x03, 0xF1, 0xB4, 0x9B, -0x03, 0xF0, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x21, 0x6A, 0xB5, 0xF2, 0x4B, 0xA2, -0x01, 0x72, 0x0C, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, -0x08, 0xF1, 0x0C, 0x6C, 0x03, 0xF1, 0xB4, 0x9B, -0x00, 0x6E, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, -0x03, 0xF1, 0xB4, 0x9B, 0x08, 0xF1, 0x0C, 0x6C, -0x01, 0x6E, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0xFF, 0x69, 0xAC, 0xE9, 0x00, 0x68, 0x85, 0xF5, +0x1C, 0x6C, 0xFF, 0x6D, 0x80, 0x18, 0x0D, 0x28, +0x55, 0x72, 0x0C, 0x61, 0x00, 0x6A, 0x15, 0x21, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, 0xB0, 0x9A, +0x03, 0xF3, 0x08, 0x6C, 0x80, 0x18, 0x0D, 0x28, +0x00, 0x6A, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, 0x01, 0x48, +0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, +0x01, 0x6A, 0x32, 0x58, 0x01, 0x60, 0xDF, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x00, 0x6A, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x01, 0x72, +0x05, 0xD4, 0x24, 0x61, 0x44, 0x67, 0x04, 0x4A, +0x01, 0x68, 0x30, 0xF0, 0x20, 0x69, 0x04, 0xEA, +0x00, 0xF2, 0x08, 0x6A, 0x4D, 0xE8, 0xC0, 0xF3, +0x44, 0x99, 0x01, 0x6D, 0xD0, 0x67, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0x01, 0x6D, 0xAB, 0xED, 0xC1, 0x40, +0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, +0x40, 0xEA, 0x05, 0x94, 0x01, 0x6D, 0x80, 0x18, +0x5A, 0x02, 0xD2, 0x10, 0x02, 0x72, 0x01, 0x6A, +0xC0, 0xF0, 0x0E, 0x61, 0x30, 0xF0, 0x21, 0x6A, +0x34, 0xF7, 0x56, 0xA2, 0x00, 0x68, 0x09, 0x72, +0x0C, 0x60, 0x12, 0x72, 0x01, 0x68, 0x09, 0x60, +0x1B, 0x72, 0x02, 0x68, 0x06, 0x60, 0x24, 0x68, +0x4E, 0xE8, 0x01, 0x58, 0x18, 0x67, 0x04, 0x6A, +0x03, 0xE2, 0x05, 0x92, 0x30, 0xF0, 0x20, 0x69, +0x01, 0x6D, 0x44, 0x32, 0x07, 0xD2, 0x07, 0x93, +0x08, 0x6A, 0x03, 0xF3, 0x00, 0x6C, 0x4D, 0xEB, +0xC0, 0xF3, 0x44, 0x99, 0xC3, 0x67, 0x07, 0xD3, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x2B, 0xF1, 0x18, 0x4C, 0x04, 0xD4, 0x04, 0x93, +0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0xE9, 0xF5, +0xDE, 0xA3, 0xC3, 0xF3, 0x0C, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x05, 0x92, 0x01, 0x6C, 0x01, 0x6D, +0x04, 0x4A, 0x84, 0xEA, 0x00, 0xF3, 0x08, 0x6A, +0x4D, 0xEC, 0x06, 0xD4, 0xC0, 0xF3, 0x44, 0x99, +0x06, 0x96, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x06, 0x96, 0xC0, 0xF3, 0x44, 0x99, +0x01, 0x6D, 0xAB, 0xED, 0x01, 0x4E, 0x03, 0xF3, +0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x48, 0x9A, 0x02, 0x6C, 0x40, 0xEA, +0x05, 0x94, 0x01, 0x6D, 0x80, 0x18, 0x5A, 0x02, +0x01, 0x72, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF3, 0x00, 0x4A, 0x41, 0xE0, 0x40, 0xA0, +0x04, 0x93, 0xE9, 0xF5, 0x5E, 0xC3, 0x6B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x05, 0x95, 0x63, 0xF3, +0xE4, 0x9A, 0x30, 0xF0, 0x21, 0x6C, 0x12, 0xF5, +0x08, 0x4C, 0x00, 0x6E, 0x80, 0x18, 0x9F, 0x58, +0x05, 0xD2, 0x07, 0x96, 0xC0, 0xF3, 0x44, 0x99, +0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x05, 0x94, 0xE3, 0xF7, 0x00, 0x6A, +0x04, 0x93, 0x8C, 0xEA, 0x56, 0x34, 0x96, 0x32, +0x09, 0xF6, 0x40, 0xDB, 0x1F, 0x6A, 0x8C, 0xEA, +0x02, 0x5A, 0xFF, 0x6B, 0x0B, 0x60, 0x03, 0x70, +0x03, 0x60, 0x01, 0x48, 0x6C, 0xE8, 0x49, 0x10, +0x04, 0x94, 0x01, 0x6B, 0x03, 0x68, 0xAA, 0xF1, +0x75, 0xC4, 0x43, 0x10, 0x0A, 0x5A, 0x0B, 0x61, +0x04, 0x20, 0xFF, 0x48, 0x6C, 0xE8, 0x01, 0x6B, +0x0B, 0x10, 0x04, 0x94, 0x01, 0x6B, 0xAA, 0xF1, +0x75, 0xC4, 0x01, 0x6B, 0x09, 0x10, 0x04, 0x94, +0x00, 0x6B, 0xAA, 0xF1, 0x75, 0xC4, 0x00, 0x6B, +0x03, 0x20, 0x04, 0x58, 0x01, 0x61, 0x03, 0x68, +0x30, 0xF0, 0x20, 0x6D, 0x02, 0xF3, 0x00, 0x4D, +0xA1, 0xE0, 0xA0, 0xA0, 0x30, 0xF0, 0x20, 0x6C, +0x2B, 0xF1, 0x18, 0x4C, 0xE9, 0xF5, 0xBE, 0xC4, +0x0F, 0x2B, 0xE9, 0xF5, 0xDE, 0xA4, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x64, 0x9B, 0xC0, 0x36, +0x01, 0x6D, 0x4D, 0xEE, 0xE3, 0xF3, 0x08, 0x6C, +0xAB, 0xED, 0x40, 0xEB, 0x00, 0x6A, 0x0C, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x01, 0x6D, 0xE3, 0xF3, 0x08, 0x6C, 0xAB, 0xED, +0xFF, 0xF7, 0x1F, 0x6E, 0x40, 0xEA, 0x01, 0x6A, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x01, 0x6B, 0xCE, 0x17, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x00, 0x6B, 0x0B, 0xD7, 0xE0, 0xAE, 0x1F, 0xF7, +0x00, 0x6A, 0xEC, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x08, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xAE, 0x43, 0xF1, 0x44, 0x9A, 0x49, 0xE7, +0xE0, 0xA2, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF1, 0x48, 0x9A, 0x5D, 0xE7, 0xE0, 0xA7, +0xFF, 0x6A, 0xEC, 0xEA, 0x7D, 0xE4, 0x01, 0x4B, +0x03, 0x73, 0x40, 0xC7, 0x02, 0x4E, 0xE2, 0x61, +0x25, 0x67, 0x00, 0x68, 0x0B, 0x93, 0x01, 0x6D, +0xAB, 0xED, 0x09, 0xE3, 0x80, 0xAA, 0x02, 0x48, +0x80, 0x18, 0x0D, 0x28, 0x16, 0x70, 0x40, 0xD9, +0x04, 0x49, 0xF4, 0x61, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x21, 0x6A, -0xD5, 0xF2, 0x58, 0xA2, 0x1E, 0x22, 0x30, 0xF0, -0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, -0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF6, -0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF2, 0x34, 0x9A, 0xC0, 0xF3, -0x44, 0x98, 0xA3, 0xF0, 0x04, 0x6C, 0xB1, 0x67, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xA8, 0xF1, 0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, -0x5C, 0x9A, 0x01, 0x6B, 0x6B, 0xEB, 0x30, 0xF0, -0x20, 0x68, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF2, 0xB0, 0x9B, -0x23, 0xF6, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0xC3, 0xF4, 0xBC, 0x9B, 0xC3, 0xF4, 0x10, 0x6C, -0x07, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF1, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x63, 0xF5, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6E, 0xCB, 0xEE, -0xA6, 0x67, 0x23, 0xF4, 0x18, 0x6C, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x14, 0x6C, -0x00, 0xF3, 0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0xE3, 0xF4, 0xA0, 0x9B, 0x21, 0xF0, 0x04, 0x6C, -0x03, 0x6E, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, 0xE8, 0x9B, -0xFF, 0x6A, 0x04, 0x6B, 0xC0, 0xA7, 0x4C, 0xED, -0x4C, 0xEC, 0x4C, 0xEE, 0xCD, 0xEB, 0x4C, 0xEB, -0x60, 0xC7, 0x06, 0x2D, 0x07, 0x6B, 0x07, 0x24, -0x01, 0x74, 0x07, 0x6B, 0x12, 0x61, 0x0C, 0x10, -0x07, 0x2C, 0x79, 0x6B, 0x6B, 0xEB, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF3, 0x44, 0x9A, 0x08, 0x10, -0x01, 0x74, 0x07, 0x61, 0x79, 0x6B, 0x6B, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF4, 0x44, 0x9A, -0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, -0x48, 0x9A, 0xC0, 0xC2, 0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x6E, 0x30, 0xF0, 0x20, 0x68, 0xCC, 0xEC, -0xC0, 0xF3, 0x44, 0x98, 0xAC, 0xEE, 0x01, 0x69, -0x08, 0x6B, 0x2B, 0xE9, 0xC4, 0x36, 0x04, 0xD4, -0xB1, 0x67, 0x03, 0xF3, 0x00, 0x6C, 0x6D, 0xEE, -0x40, 0xEA, 0x04, 0x92, 0x12, 0x2A, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, -0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, -0x18, 0x6C, 0xB1, 0x67, 0xE3, 0xF4, 0xC8, 0x9B, -0x11, 0x10, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x69, 0x63, 0xF3, +0x60, 0x9B, 0x30, 0xF0, 0x20, 0x68, 0x2C, 0xEC, +0xC0, 0xF3, 0x44, 0x98, 0xAC, 0xE9, 0x24, 0x36, +0x01, 0x6D, 0x04, 0xD4, 0xAB, 0xED, 0x03, 0xF3, +0x00, 0x6C, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, +0x08, 0x2A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x03, 0x6E, +0x07, 0x10, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x01, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0xE3, 0xF4, 0xCC, 0x9B, 0xC3, 0xF3, -0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF3, 0xCC, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0xB1, 0x67, 0x30, 0xF0, 0x20, 0x68, -0xC3, 0xF3, 0x18, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, -0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x63, 0xF3, +0xA8, 0x9B, 0xC3, 0xF3, 0x14, 0x6C, 0x10, 0x6E, +0x40, 0xEA, 0x04, 0x94, 0x24, 0x31, 0x30, 0xF0, +0x20, 0x6A, 0x25, 0xE4, 0xE0, 0xF4, 0x62, 0x41, +0xE0, 0xF4, 0x0A, 0x49, 0x2B, 0xF1, 0x18, 0x4A, +0x70, 0x33, 0x30, 0x31, 0x25, 0xE2, 0x6D, 0xE2, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0xD1, 0x63, 0xF3, +0x2C, 0x9A, 0x05, 0xD3, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xD1, 0x67, +0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x01, 0x6D, 0xE3, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, +0x80, 0x18, 0x0D, 0x28, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF3, 0x70, 0x9B, 0x05, 0x94, 0x04, 0x49, +0x4C, 0xEB, 0x62, 0x33, 0x62, 0x33, 0x60, 0xCC, +0xE1, 0xF7, 0x1F, 0x6B, 0x4C, 0xEB, 0x04, 0x92, +0x02, 0x4C, 0x05, 0xD4, 0x60, 0xCA, 0x02, 0x4A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, +0x54, 0x9A, 0x2E, 0xEA, 0xD7, 0x2A, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, -0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, 0x09, 0x97, +0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, +0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x00, 0x68, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF4, 0xB0, 0x9A, -0x02, 0xF7, 0x00, 0x6C, 0x80, 0x18, 0xAD, 0x25, -0x20, 0x6B, 0x4C, 0xEB, 0x0A, 0x2B, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, -0x01, 0x48, 0x40, 0xEA, 0x0A, 0x70, 0xEC, 0x61, -0x0A, 0x68, 0x50, 0x67, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x68, -0x8C, 0xE8, 0x80, 0x18, 0xB4, 0x0B, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF4, 0xD4, 0x9A, 0x01, 0x69, -0x2B, 0xE9, 0x0D, 0xEE, 0xB1, 0x67, 0x02, 0xF7, -0x00, 0x6C, 0x80, 0x18, 0xC2, 0x25, 0xB1, 0x67, -0x02, 0xF7, 0x08, 0x6C, 0x80, 0x18, 0xAD, 0x25, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0xF7, 0x1F, 0x68, -0x25, 0x67, 0x0C, 0xD6, 0x8C, 0xE8, 0x37, 0x25, -0x61, 0x45, 0x00, 0x6A, 0x0E, 0x2B, 0x80, 0x18, -0xB4, 0x0B, 0x01, 0x69, 0x0C, 0x96, 0x2B, 0xE9, -0x02, 0xF7, 0x04, 0x6C, 0xB1, 0x67, 0x80, 0x18, -0xC2, 0x25, 0x02, 0xF7, 0x00, 0x6C, 0xB1, 0x67, -0x1F, 0x10, 0x71, 0x67, 0x66, 0xEA, 0x01, 0x6C, -0x8C, 0xEB, 0x04, 0x2B, 0x01, 0x4A, 0x20, 0x72, -0xF8, 0x61, 0x00, 0x6A, 0x90, 0x67, 0x04, 0xD2, -0x2F, 0xE9, 0x80, 0x18, 0xC3, 0x0B, 0x4C, 0xE9, -0x80, 0x18, 0xB4, 0x0B, 0x0C, 0x96, 0x04, 0x92, -0x01, 0x6D, 0x02, 0xF7, 0x04, 0x6C, 0xC4, 0xEA, -0xAB, 0xED, 0x2D, 0xEE, 0x80, 0x18, 0xC2, 0x25, -0x01, 0x6D, 0x02, 0xF7, 0x00, 0x6C, 0xAB, 0xED, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF4, 0xD8, 0x9A, -0x0D, 0xEE, 0x80, 0x18, 0xC2, 0x25, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x38, 0x6C, 0x18, 0xF0, -0x00, 0x6D, 0x01, 0x6E, 0x80, 0x18, 0xD3, 0x0B, -0x38, 0x6C, 0x01, 0xF4, 0x00, 0x6D, 0x01, 0x6E, -0x80, 0x18, 0xD3, 0x0B, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x38, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x03, 0x6E, -0x80, 0x18, 0xD3, 0x0B, 0x38, 0x6C, 0x00, 0xF3, -0x00, 0x6D, 0x03, 0x6E, 0x80, 0x18, 0xD3, 0x0B, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, -0x05, 0x22, 0x80, 0x18, 0xFF, 0x0B, 0x80, 0x18, -0xF6, 0x0B, 0x09, 0x10, 0x30, 0xF0, 0x21, 0x6A, -0xF5, 0xF2, 0xD0, 0x9A, 0x01, 0x6D, 0x38, 0x6C, -0xAB, 0xED, 0x80, 0x18, 0xD3, 0x0B, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x00, 0x6A, 0x09, 0xD5, -0x27, 0x67, 0xA0, 0x9E, 0x1F, 0xF7, 0x00, 0x6B, -0xAC, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, -0x08, 0x2B, 0x30, 0xF0, 0x20, 0x6D, 0x60, 0x9E, -0x43, 0xF1, 0xA0, 0x9D, 0x6D, 0xE5, 0x60, 0x9B, -0x06, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, -0x64, 0x9B, 0xB5, 0xE3, 0x60, 0x9D, 0x55, 0xE4, -0x04, 0x4A, 0x0C, 0x72, 0x60, 0xDD, 0x04, 0x4E, -0xE4, 0x61, 0x00, 0x68, 0x09, 0xE1, 0x80, 0xAA, -0x01, 0x6D, 0xAB, 0xED, 0x80, 0x18, 0x35, 0x25, -0x09, 0x94, 0x0D, 0xE4, 0x04, 0x48, 0x2C, 0x70, -0x40, 0xDB, 0xF4, 0x61, 0x07, 0x97, 0x06, 0x91, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0x05, 0x67, 0x01, 0x74, +0x4C, 0xE8, 0x80, 0xF0, 0x19, 0x60, 0x04, 0x24, +0x04, 0x5C, 0xA0, 0xF0, 0x10, 0x60, 0xAA, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0x29, 0xF7, 0x68, 0x9A, 0x30, 0xF0, 0x21, 0x6C, +0x30, 0xF0, 0x21, 0x6D, 0x29, 0xF7, 0x6C, 0xDA, +0x30, 0xF0, 0x21, 0x6B, 0x30, 0xF0, 0x21, 0x6A, +0x75, 0xF0, 0x18, 0x4C, 0x75, 0xF0, 0x10, 0x4B, +0x75, 0xF0, 0x0C, 0x4A, 0x74, 0xF7, 0x08, 0x4D, +0x00, 0x69, 0xC0, 0x9C, 0x94, 0xF7, 0x00, 0x41, +0x04, 0x30, 0xC2, 0xDC, 0xC0, 0xAB, 0x05, 0xD5, +0xE5, 0x67, 0xC2, 0xCB, 0xC0, 0xA2, 0xC2, 0xC2, +0x30, 0xF0, 0x20, 0x6E, 0x2B, 0xF1, 0x18, 0x4E, +0x01, 0xE6, 0x00, 0x6E, 0x04, 0xD6, 0xA0, 0xA0, +0x24, 0x36, 0xA4, 0xC0, 0x04, 0x95, 0xD9, 0xE5, +0xA6, 0x67, 0xE0, 0xF4, 0x02, 0x4D, 0xB0, 0x35, +0x06, 0xD5, 0x07, 0xD6, 0x30, 0xF0, 0x20, 0x6E, +0xA6, 0x67, 0x06, 0x96, 0x2B, 0xF1, 0x18, 0x4D, +0x1D, 0x65, 0xD5, 0xE5, 0x07, 0x96, 0x06, 0xD5, +0xB8, 0x67, 0xE0, 0xF4, 0x0A, 0x4E, 0xD0, 0x36, +0xD9, 0xE5, 0x06, 0x95, 0x07, 0xD2, 0x40, 0xAD, +0x40, 0xF0, 0x40, 0xCD, 0x40, 0xAE, 0x02, 0x4D, +0x40, 0xF0, 0x40, 0xCE, 0x05, 0x92, 0x02, 0x4E, +0x4A, 0xED, 0xF5, 0x61, 0x04, 0x95, 0x05, 0x96, +0x07, 0x92, 0x01, 0x4D, 0x10, 0x4E, 0x02, 0x75, +0x04, 0xD5, 0x01, 0x48, 0x05, 0xD6, 0xCF, 0x61, +0x01, 0x49, 0x02, 0x6E, 0xA7, 0x67, 0x2E, 0xEE, +0x04, 0x4C, 0x02, 0x4B, 0x01, 0x4A, 0x20, 0x4D, +0xB4, 0x2E, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0x00, 0x6B, 0xAA, 0xF1, 0x6D, 0xC2, +0xAA, 0xF1, 0x6E, 0xC2, 0xAA, 0xF1, 0x61, 0xC2, +0xAA, 0xF1, 0x62, 0xC2, 0xAA, 0xF1, 0x63, 0xC2, +0x29, 0xF7, 0x75, 0xC2, 0xAA, 0xF1, 0x6F, 0xC2, +0xAA, 0xF1, 0x70, 0xC2, 0xAA, 0xF1, 0x64, 0xC2, +0xAA, 0xF1, 0x65, 0xC2, 0xAA, 0xF1, 0x66, 0xC2, +0x29, 0xF7, 0x70, 0x9A, 0x01, 0x6C, 0x29, 0xF7, +0xD4, 0xC2, 0x29, 0xF7, 0xD8, 0xCA, 0x29, 0xF7, +0x80, 0xC2, 0x29, 0xF7, 0x81, 0xC2, 0x29, 0xF7, +0xDA, 0xCA, 0x29, 0xF7, 0x82, 0xC2, 0x29, 0xF7, +0x83, 0xC2, 0x29, 0xF7, 0x68, 0xDA, 0x1B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0xE4, 0x9A, +0x30, 0xF0, 0x21, 0x6C, 0xB0, 0x67, 0x12, 0xF5, +0x08, 0x4C, 0x58, 0x6E, 0x80, 0x18, 0x9F, 0x58, +0xC2, 0xF3, 0x10, 0x48, 0x30, 0xF0, 0x20, 0x6B, +0x08, 0x30, 0x2B, 0xF1, 0x18, 0x4B, 0x6D, 0xE0, +0x40, 0xDB, 0x05, 0x10, 0xFE, 0x4C, 0x4C, 0xEC, +0xB0, 0x67, 0x80, 0x18, 0x16, 0x03, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x21, 0x6A, +0x34, 0xF7, 0x5D, 0xA2, 0x18, 0x2A, 0x01, 0x6C, +0x00, 0x6D, 0x80, 0x18, 0x5A, 0x03, 0x02, 0x6C, +0x00, 0x6D, 0x80, 0x18, 0x5A, 0x03, 0x03, 0x6C, +0x00, 0x6D, 0x80, 0x18, 0x5A, 0x03, 0x01, 0x6C, +0xA4, 0x67, 0x80, 0x18, 0x5A, 0x03, 0x02, 0x6C, +0x01, 0x6D, 0x80, 0x18, 0x5A, 0x03, 0x03, 0x6C, +0x01, 0x6D, 0x80, 0x18, 0x5A, 0x03, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x21, 0x6A, +0xB4, 0xF6, 0x4C, 0xA2, 0xA0, 0xF3, 0x17, 0x22, +0x01, 0x69, 0x2B, 0xE9, 0xB1, 0x67, 0x63, 0xF0, +0x00, 0x6C, 0x80, 0x18, 0x0D, 0x28, 0xB1, 0x67, +0x68, 0xF1, 0x00, 0x6C, 0x07, 0xD2, 0x80, 0x18, +0x0D, 0x28, 0xB1, 0x67, 0xA1, 0xF1, 0x14, 0x6C, +0x30, 0xF0, 0x20, 0x68, 0x06, 0xD2, 0x80, 0x18, +0x0D, 0x28, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, +0xD8, 0x9B, 0x05, 0xD2, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0xA1, 0xF1, 0x14, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x3C, 0x9A, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0xC3, 0xF0, 0x0C, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0xA8, 0xF1, 0x10, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0xC8, 0xF1, 0x0C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0x38, 0x9A, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF3, 0x00, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, 0x00, 0x6C, +0x3C, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xC5, 0x67, 0xA3, 0xF0, 0x14, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xC5, 0x67, 0xC3, 0xF0, 0x10, 0x6C, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x28, 0xF1, +0x10, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF3, 0x00, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x68, 0xF1, 0x00, 0x6C, +0x3C, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xC5, 0x67, 0xA8, 0xF1, 0x14, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xC5, 0x67, 0xC8, 0xF1, 0x10, 0x6C, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0x10, 0x6C, +0x01, 0xF7, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, 0x00, 0x6C, +0x08, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, 0x0C, 0x6C, +0x01, 0xF7, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, 0x1C, 0x6C, +0x08, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0x10, 0x6C, +0x01, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF0, 0x0C, 0x6C, 0x01, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xC5, 0x67, 0xA3, 0xF0, 0x10, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xC5, 0x67, 0xC3, 0xF0, 0x0C, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, 0x24, 0x9A, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0x18, 0x6C, +0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF0, 0x14, 0x6C, 0xB1, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA8, 0xF1, 0x10, 0x6C, 0x01, 0xF7, 0x00, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC8, 0xF1, 0x00, 0x6C, 0x08, 0xF0, 0x00, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC8, 0xF1, 0x0C, 0x6C, 0x01, 0xF7, 0x00, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC8, 0xF1, 0x1C, 0x6C, 0x08, 0xF0, 0x00, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA8, 0xF1, 0x10, 0x6C, 0x01, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, +0x0C, 0x6C, 0x01, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC5, 0x67, +0xA8, 0xF1, 0x10, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xC5, 0x67, 0xC8, 0xF1, +0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA8, 0xF1, 0x18, 0x6C, 0xB1, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, +0x14, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0x00, 0x68, 0xFF, 0x6A, 0x01, 0x48, 0x4C, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, 0xA8, 0x9A, +0x05, 0xF0, 0x08, 0x6C, 0x80, 0x18, 0x0D, 0x28, +0xFF, 0xF7, 0x1F, 0x72, 0x12, 0x60, 0xFF, 0x70, +0xF0, 0x61, 0x0F, 0x10, 0xFF, 0x6A, 0x01, 0x48, +0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, +0xA8, 0x9A, 0x25, 0xF0, 0x14, 0x6C, 0x80, 0x18, +0x0D, 0x28, 0xFF, 0xF7, 0x1F, 0x72, 0x03, 0x61, +0x14, 0x10, 0x00, 0x68, 0xEF, 0x17, 0xFF, 0x70, +0xED, 0x61, 0x0F, 0x10, 0xFF, 0x6A, 0x01, 0x48, +0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, +0xA8, 0x9A, 0x08, 0xF5, 0x08, 0x6C, 0x80, 0x18, +0x0D, 0x28, 0xFF, 0xF7, 0x1F, 0x72, 0x03, 0x61, +0x14, 0x10, 0x00, 0x68, 0xEF, 0x17, 0xFF, 0x70, +0xED, 0x61, 0x0F, 0x10, 0xFF, 0x6A, 0x01, 0x48, +0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, +0xA8, 0x9A, 0x28, 0xF5, 0x14, 0x6C, 0x80, 0x18, +0x0D, 0x28, 0xFF, 0xF7, 0x1F, 0x72, 0x03, 0x61, +0x04, 0x10, 0x00, 0x68, 0xEF, 0x17, 0xFF, 0x70, +0xED, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0x83, 0xF3, 0x04, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xA0, 0x9B, 0xA3, 0xF0, 0x18, 0x69, +0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF3, 0x04, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xA0, 0x9B, 0x91, 0x67, 0x02, 0x6E, +0x40, 0xEA, 0x00, 0x68, 0x05, 0xF0, 0x08, 0x6C, +0xFF, 0x6D, 0x80, 0x18, 0x0D, 0x28, 0x86, 0x72, +0x07, 0x61, 0x30, 0xF0, 0x21, 0x69, 0x00, 0x6A, +0xB4, 0xF6, 0x0E, 0x49, 0x04, 0xD2, 0x1E, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0x04, 0x4B, +0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x69, 0x01, 0x48, +0xA0, 0x9B, 0x4C, 0xE8, 0xC0, 0xF3, 0x44, 0x99, +0xA3, 0xF0, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0x04, 0x4B, +0xC0, 0xF3, 0x44, 0x99, 0xA0, 0x9B, 0xA3, 0xF0, +0x18, 0x6C, 0x02, 0x6E, 0x40, 0xEA, 0x64, 0x70, +0xD5, 0x61, 0xDB, 0x17, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0x14, 0x6C, +0x04, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xA9, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0x14, 0x6C, +0xE1, 0xF7, 0x18, 0x6D, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF3, 0xAC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x04, 0x96, 0xA3, 0xF0, 0x10, 0x6C, +0x02, 0x49, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF0, 0x14, 0x6C, 0x04, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x04, 0x92, 0x01, 0x4A, 0x0F, 0x72, +0x04, 0xD2, 0xD8, 0x61, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF0, 0x14, 0x6C, 0x04, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, +0x04, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, +0xC3, 0xF0, 0x14, 0x69, 0x91, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, +0x04, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, +0x91, 0x67, 0x02, 0x6E, 0x40, 0xEA, 0x00, 0x68, +0x25, 0xF0, 0x14, 0x6C, 0xFF, 0x6D, 0x80, 0x18, +0x0D, 0x28, 0x86, 0x72, 0x07, 0x61, 0x30, 0xF0, +0x21, 0x69, 0x00, 0x6A, 0xD4, 0xF6, 0x0C, 0x49, +0x04, 0xD2, 0x1E, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF3, 0x04, 0x4B, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x69, 0x01, 0x48, 0xA0, 0x9B, 0x4C, 0xE8, +0xC0, 0xF3, 0x44, 0x99, 0xC3, 0xF0, 0x14, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF3, 0x04, 0x4B, 0xC0, 0xF3, 0x44, 0x99, +0xA0, 0x9B, 0xC3, 0xF0, 0x14, 0x6C, 0x02, 0x6E, +0x40, 0xEA, 0x64, 0x70, 0xD5, 0x61, 0xDB, 0x17, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF0, 0x10, 0x6C, 0x04, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xA9, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF0, 0x10, 0x6C, 0xE1, 0xF7, 0x18, 0x6D, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, +0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, +0xC3, 0xF0, 0x0C, 0x6C, 0x02, 0x49, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, 0x10, 0x6C, +0x04, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x04, 0x92, +0x01, 0x4A, 0x0F, 0x72, 0x04, 0xD2, 0xD8, 0x61, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, 0x10, 0x6C, +0x04, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF3, 0x24, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0xA3, 0xF0, 0x18, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF0, 0x14, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, +0x14, 0x6C, 0x01, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, 0x10, 0x6C, +0x01, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xA8, 0xF1, 0x18, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA8, 0xF1, 0x18, 0x6C, 0xB1, 0x67, 0x02, 0x6E, +0x40, 0xEA, 0x00, 0x68, 0x08, 0xF5, 0x08, 0x6C, +0xFF, 0x6D, 0x80, 0x18, 0x0D, 0x28, 0x86, 0x72, +0x07, 0x61, 0x30, 0xF0, 0x21, 0x69, 0x00, 0x6B, +0xF4, 0xF6, 0x0A, 0x49, 0x04, 0xD3, 0x1E, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0x04, 0x4B, +0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x69, 0x01, 0x48, +0xA0, 0x9B, 0x4C, 0xE8, 0xC0, 0xF3, 0x44, 0x99, +0xA8, 0xF1, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0x04, 0x4B, +0xC0, 0xF3, 0x44, 0x99, 0xA0, 0x9B, 0xA8, 0xF1, +0x18, 0x6C, 0x02, 0x6E, 0x40, 0xEA, 0x64, 0x70, +0xD5, 0x61, 0xDB, 0x17, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x14, 0x6C, +0x04, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xA9, +0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x14, 0x6C, +0xE1, 0xF7, 0x18, 0x6D, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF3, 0xAC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x04, 0x96, 0xA8, 0xF1, 0x10, 0x6C, +0x02, 0x49, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA8, 0xF1, 0x14, 0x6C, 0x04, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x04, 0x92, 0x01, 0x4A, 0x0F, 0x72, +0x04, 0xD2, 0xD8, 0x61, 0xC0, 0xF3, 0x44, 0x98, +0xA8, 0xF1, 0x14, 0x6C, 0x04, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, +0x04, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, +0xC8, 0xF1, 0x14, 0x69, 0x91, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, +0x04, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, +0x91, 0x67, 0x02, 0x6E, 0x40, 0xEA, 0x00, 0x68, +0x28, 0xF5, 0x14, 0x6C, 0xFF, 0x6D, 0x80, 0x18, +0x0D, 0x28, 0x86, 0x72, 0x07, 0x61, 0x30, 0xF0, +0x21, 0x69, 0x00, 0x6A, 0x14, 0xF7, 0x08, 0x49, +0x04, 0xD2, 0x1E, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF3, 0x04, 0x4B, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x69, 0x01, 0x48, 0xA0, 0x9B, 0x4C, 0xE8, +0xC0, 0xF3, 0x44, 0x99, 0xC8, 0xF1, 0x14, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF3, 0x04, 0x4B, 0xC0, 0xF3, 0x44, 0x99, +0xA0, 0x9B, 0xC8, 0xF1, 0x14, 0x6C, 0x02, 0x6E, +0x40, 0xEA, 0x64, 0x70, 0xD5, 0x61, 0xDB, 0x17, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0xC8, 0xF1, 0x10, 0x6C, 0x04, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xA9, 0xC0, 0xF3, 0x44, 0x98, +0xC8, 0xF1, 0x10, 0x6C, 0xE1, 0xF7, 0x18, 0x6D, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, +0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, +0xC8, 0xF1, 0x0C, 0x6C, 0x02, 0x49, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x10, 0x6C, +0x04, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x04, 0x92, +0x01, 0x4A, 0x0F, 0x72, 0x04, 0xD2, 0xD8, 0x61, +0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x10, 0x6C, +0x04, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF3, 0x24, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0xA8, 0xF1, 0x18, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0xC8, 0xF1, 0x14, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, +0x14, 0x6C, 0x01, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x10, 0x6C, +0x01, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF1, 0x38, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x28, 0xF1, 0x10, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x07, 0x96, +0x01, 0x6D, 0x63, 0xF0, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x06, 0x96, +0x01, 0x6D, 0x68, 0xF1, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, +0x3C, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, 0x0C, 0x6C, +0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xA8, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC8, 0xF1, 0x0C, 0x6C, 0xB1, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x05, 0x96, +0x01, 0x6D, 0xA1, 0xF1, 0x14, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x80, 0x18, 0xA0, 0x01, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xE3, 0xF7, 0x18, 0x69, 0xB1, 0x67, 0x05, 0xF0, +0x10, 0x6C, 0x80, 0x18, 0x0D, 0x28, 0x30, 0xF0, +0x20, 0x68, 0xFF, 0x6B, 0x2B, 0xF1, 0x18, 0x48, +0x6C, 0xEA, 0xB1, 0x67, 0x25, 0xF0, 0x1C, 0x6C, +0xE9, 0xF5, 0x4E, 0xC8, 0x80, 0x18, 0x0D, 0x28, +0xFF, 0x6B, 0x6C, 0xEA, 0xB1, 0x67, 0x08, 0xF5, +0x10, 0x6C, 0xE9, 0xF5, 0x50, 0xC8, 0x80, 0x18, +0x0D, 0x28, 0xFF, 0x6B, 0x6C, 0xEA, 0xB1, 0x67, +0x28, 0xF5, 0x1C, 0x6C, 0xE9, 0xF5, 0x52, 0xC8, +0x80, 0x18, 0x0D, 0x28, 0xFF, 0x6B, 0x6C, 0xEA, +0xE9, 0xF5, 0x54, 0xC8, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6A, 0x24, 0x67, -0x2B, 0xF1, 0x18, 0x48, 0x4C, 0xED, 0x4C, 0xE9, -0xE9, 0xF5, 0x59, 0xA0, 0x06, 0xD5, 0x24, 0x36, -0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x64, 0x9A, 0x01, 0x6D, 0x08, 0x6A, 0x4D, 0xEE, -0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0xB4, 0x9B, -0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0xE9, 0xF5, 0x58, 0xA0, 0x4B, 0x2A, 0x06, 0x92, -0x03, 0x22, 0x12, 0x6A, 0xE9, 0xF5, 0x5E, 0xC0, -0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x21, 0x6B, -0x34, 0xF7, 0xD6, 0xA3, 0xC0, 0xF3, 0x44, 0x98, -0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x40, 0xEA, -0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF1, 0xF8, 0x9A, 0x30, 0xF0, 0x21, 0x6B, -0x12, 0xF5, 0x08, 0x4B, 0x83, 0x67, 0xB1, 0x67, -0xDE, 0x6E, 0x06, 0xD3, 0x80, 0x18, 0x8D, 0x5A, -0x06, 0x94, 0xE1, 0xF7, 0x1F, 0x6F, 0x20, 0x6A, -0xB1, 0x67, 0x56, 0x6E, 0x04, 0xD2, 0x80, 0x18, -0x8D, 0x5A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF0, 0x68, 0xA2, +0x00, 0xF1, 0x0B, 0x23, 0x00, 0x68, 0x82, 0xF0, +0x08, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, +0xA8, 0x9A, 0x05, 0xF0, 0x08, 0x6C, 0x80, 0x18, +0x0D, 0x28, 0xFF, 0xF7, 0x1F, 0x72, 0x07, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0x69, 0xF5, 0x14, 0xC2, 0xF6, 0x10, 0x01, 0x69, +0x2B, 0xE9, 0x01, 0x6B, 0xB1, 0x67, 0x30, 0xF0, +0x21, 0x6A, 0x63, 0xF0, 0x00, 0x6C, 0xB4, 0xF6, +0x6C, 0xC2, 0x80, 0x18, 0x0D, 0x28, 0xB1, 0x67, +0x68, 0xF1, 0x00, 0x6C, 0x07, 0xD2, 0x80, 0x18, +0x0D, 0x28, 0xB1, 0x67, 0xA1, 0xF1, 0x14, 0x6C, +0x30, 0xF0, 0x20, 0x68, 0x06, 0xD2, 0x80, 0x18, +0x0D, 0x28, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, +0xD8, 0x9B, 0x05, 0xD2, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0xA1, 0xF1, 0x14, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF1, 0xB8, 0x9B, 0x23, 0xF0, 0x10, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF3, 0xA0, 0x9B, +0x63, 0xF0, 0x00, 0x6C, 0x3C, 0x6E, 0x30, 0xF0, +0x21, 0x68, 0x40, 0xEA, 0xB4, 0xF6, 0x0E, 0x48, +0x00, 0x69, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF3, 0xAC, 0x9B, 0xC0, 0xF3, +0x44, 0x9A, 0xD1, 0x67, 0xA3, 0xF0, 0x10, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, +0xB0, 0x9A, 0x05, 0xF0, 0x10, 0x6C, 0x01, 0x49, +0x80, 0x18, 0x0D, 0x28, 0x0F, 0x71, 0x40, 0xC8, +0x02, 0x48, 0xE7, 0x61, 0x30, 0xF0, 0x21, 0x68, +0x00, 0x6A, 0xD4, 0xF6, 0x0C, 0x48, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x69, +0x83, 0xF3, 0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0x04, 0x96, 0xC3, 0xF0, 0x0C, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, 0xB0, 0x9A, +0x25, 0xF0, 0x1C, 0x6C, 0x80, 0x18, 0x0D, 0x28, +0x40, 0xC8, 0x04, 0x92, 0x02, 0x48, 0x01, 0x4A, +0x0F, 0x72, 0x04, 0xD2, 0xE5, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, 0xA3, 0xF1, +0xB8, 0x9B, 0x28, 0xF1, 0x10, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x99, 0x83, 0xF3, 0xA0, 0x9B, 0x68, 0xF1, +0x00, 0x6C, 0x3C, 0x6E, 0x30, 0xF0, 0x21, 0x68, +0x40, 0xEA, 0xF4, 0xF6, 0x0A, 0x48, 0x00, 0x69, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF3, 0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, +0xD1, 0x67, 0xA8, 0xF1, 0x10, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, 0xB0, 0x9A, +0x08, 0xF5, 0x10, 0x6C, 0x01, 0x49, 0x80, 0x18, +0x0D, 0x28, 0x0F, 0x71, 0x40, 0xC8, 0x02, 0x48, +0xE7, 0x61, 0x30, 0xF0, 0x21, 0x69, 0x00, 0x6A, +0x14, 0xF7, 0x08, 0x49, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x83, 0xF3, +0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, +0xC8, 0xF1, 0x0C, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF3, 0xB0, 0x9A, 0x28, 0xF5, +0x1C, 0x6C, 0x80, 0x18, 0x0D, 0x28, 0x40, 0xC9, +0x04, 0x92, 0x02, 0x49, 0x01, 0x4A, 0x0F, 0x72, +0x04, 0xD2, 0xE5, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF1, 0x38, 0x9A, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x28, 0xF1, 0x10, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x01, 0x69, 0xC0, 0xF3, 0x44, 0x98, 0x07, 0x96, +0x2B, 0xE9, 0x63, 0xF0, 0x00, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x06, 0x96, +0x68, 0xF1, 0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x05, 0x96, 0xA1, 0xF1, +0x14, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x80, 0x18, +0xB0, 0x05, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x69, 0x00, 0x6A, +0x8C, 0xE9, 0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF3, 0x04, 0x4A, 0xE0, 0x9A, 0x30, 0xF0, +0x21, 0x68, 0x12, 0xF5, 0x08, 0x48, 0x00, 0x6B, +0x90, 0x67, 0xB1, 0x67, 0xEF, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF3, 0x04, 0x4A, 0xE0, 0x9A, 0x00, 0x6B, +0x90, 0x67, 0xB1, 0x67, 0x08, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF3, 0x04, 0x4B, 0xE0, 0x9B, 0x90, 0x67, +0xB1, 0x67, 0x08, 0x6E, 0x80, 0x18, 0x9F, 0x58, +0x0B, 0x22, 0x06, 0x92, 0x01, 0x4A, 0x06, 0xD2, +0x06, 0x93, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEB, +0x2E, 0xF5, 0x10, 0x73, 0x06, 0xD3, 0xCE, 0x61, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF5, 0x63, 0x15, 0x62, +0x14, 0xD1, 0x13, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, +0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF3, +0x04, 0x4A, 0x64, 0x67, 0x06, 0xD2, 0xC2, 0xF3, +0x08, 0x4B, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0x68, 0x33, 0x6D, 0xE2, 0x08, 0xD3, +0x64, 0x67, 0xE1, 0xF1, 0x08, 0x4B, 0x6C, 0x33, +0x6D, 0xE2, 0x0A, 0xD3, 0x00, 0x6B, 0x0F, 0xD4, +0x11, 0xD5, 0x07, 0xD3, 0x07, 0x95, 0x11, 0x92, +0xFF, 0x69, 0xAC, 0xE9, 0x18, 0x2A, 0x30, 0xF0, +0x21, 0x68, 0x12, 0xF5, 0x08, 0x48, 0x01, 0x6A, +0x90, 0x67, 0xB1, 0x67, 0xDF, 0x6E, 0x10, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x0A, 0x93, +0x90, 0x67, 0xB1, 0x67, 0x40, 0x9B, 0x58, 0x6E, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, +0xE4, 0x9A, 0x80, 0x18, 0x12, 0x59, 0x07, 0x95, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x40, 0x9A, +0xA4, 0x35, 0x00, 0x69, 0x4D, 0xED, 0x0E, 0xD5, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x0E, 0x96, 0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x23, 0xF3, 0x0C, 0x6C, 0xAB, 0xED, +0x07, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF3, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, 0x18, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF3, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, 0x1C, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xC3, 0xF3, 0x0C, 0x6C, 0xAB, 0xED, +0x00, 0x6E, 0x40, 0xEA, 0xFF, 0x6A, 0x2C, 0xEA, +0x08, 0x2A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x03, 0x6E, +0x07, 0x10, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF3, 0xA8, 0x9B, 0xC0, 0xF3, +0x44, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, 0x10, 0x6E, +0x40, 0xEA, 0x0F, 0x95, 0x07, 0x93, 0x30, 0xF0, +0x20, 0x6A, 0xA4, 0x34, 0x71, 0xE4, 0x84, 0x34, +0x91, 0xE1, 0x83, 0xF3, 0x54, 0x9A, 0xE0, 0xF4, +0xA2, 0x44, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, +0x18, 0x4B, 0xB0, 0x35, 0xE0, 0xF4, 0x0A, 0x4C, +0x46, 0xE9, 0xB5, 0xE3, 0x90, 0x34, 0x91, 0xE3, +0x0D, 0xD5, 0x61, 0x42, 0xA3, 0x42, 0x23, 0x4A, +0x09, 0xD5, 0x0C, 0xD4, 0x0B, 0xD3, 0x10, 0xD2, +0x0D, 0x95, 0x09, 0x93, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xAD, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xC0, 0x36, 0xC4, 0x36, 0xD9, 0xE3, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x0C, 0x95, +0x0B, 0x93, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0xAD, +0x01, 0x6D, 0xAB, 0xED, 0xC0, 0x36, 0xC4, 0x36, +0xD9, 0xE3, 0xC3, 0xF3, 0x18, 0x6C, 0x40, 0xEA, +0x0D, 0x95, 0x0C, 0x93, 0x09, 0x92, 0x02, 0x4D, +0x02, 0x4B, 0x0D, 0xD5, 0x0C, 0xD3, 0x0B, 0x95, +0x10, 0x93, 0x04, 0x4A, 0x04, 0x4D, 0x6A, 0xEA, +0x09, 0xD2, 0x0B, 0xD5, 0xD5, 0x61, 0xFF, 0x6A, +0x2C, 0xEA, 0x08, 0x2A, 0x08, 0x95, 0x06, 0x93, +0xC0, 0xF3, 0x44, 0x98, 0xC0, 0xA5, 0x80, 0xAB, +0x01, 0x6D, 0x08, 0x10, 0x06, 0x93, 0x08, 0x95, +0xC0, 0xF3, 0x44, 0x98, 0x80, 0xAB, 0xC1, 0xA5, +0x00, 0xF4, 0x00, 0x6D, 0xCF, 0xEE, 0x01, 0x49, +0x40, 0xEA, 0x02, 0x71, 0x5F, 0xF7, 0x0C, 0x61, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x06, 0xF0, 0x00, 0x6D, 0x03, 0xF3, 0x0C, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x07, 0x95, 0x06, 0x92, +0x08, 0x93, 0x01, 0x4D, 0x07, 0xD5, 0x02, 0x4A, +0x0A, 0x95, 0x06, 0xD2, 0x07, 0x92, 0x02, 0x4B, +0x04, 0x4D, 0x02, 0x72, 0x08, 0xD3, 0x0A, 0xD5, +0x1F, 0xF7, 0x04, 0x61, 0x15, 0x97, 0x14, 0x91, +0x13, 0x90, 0x0B, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, +0x4C, 0xEC, 0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0x00, 0x6B, 0xAA, 0xF1, +0x7C, 0xC2, 0x1A, 0x2C, 0xE9, 0xF5, 0x7A, 0xA2, +0x17, 0x23, 0x29, 0xF7, 0x70, 0x9A, 0x29, 0xF7, +0x88, 0x9A, 0x00, 0x68, 0x6E, 0xEC, 0x05, 0x24, +0x29, 0xF7, 0x4C, 0x9A, 0x4E, 0xEB, 0x0C, 0x2B, +0x01, 0x68, 0x01, 0x6B, 0x30, 0xF0, 0x21, 0x6A, +0x90, 0x67, 0xF5, 0xF2, 0x74, 0xC2, 0x80, 0x18, +0x77, 0x06, 0x90, 0x67, 0x80, 0x18, 0x6E, 0x41, +0x30, 0xF0, 0x21, 0x6A, 0xF5, 0xF2, 0x54, 0xA2, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x21, 0x6A, +0x34, 0xF7, 0x5D, 0xA2, 0x05, 0x22, 0x00, 0x6C, +0x01, 0x6D, 0x80, 0x18, 0x08, 0x07, 0x04, 0x10, +0x00, 0x6C, 0x01, 0x6D, 0x80, 0x18, 0x77, 0x06, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x00, 0x6A, 0x7D, 0x67, 0x4C, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF1, 0x3C, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF3, 0x04, 0x4A, 0xE0, 0x9A, +0x30, 0xF0, 0x21, 0x68, 0x12, 0xF5, 0x08, 0x48, +0x00, 0x6D, 0x90, 0x67, 0xC5, 0x67, 0x04, 0xD1, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF3, 0x04, 0x4B, 0xE0, 0x9B, 0x90, 0x67, +0x01, 0x6D, 0x00, 0x6E, 0x30, 0xF0, 0x20, 0x68, +0x04, 0xD1, 0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF3, 0xB8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xE1, 0xF0, 0x18, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xE1, 0xF0, 0x1C, 0x6C, 0xAB, 0xED, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x07, 0x6D, +0xC5, 0x67, 0x83, 0xF1, 0x0C, 0x6C, 0x40, 0xEA, +0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x48, 0x9A, 0xA1, 0xF3, 0x18, 0x6F, +0xA1, 0xF7, 0x00, 0x6C, 0x08, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, +0x08, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x83, 0xF3, 0xBC, 0x9B, 0x01, 0xF2, 0x04, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF1, 0x70, 0x9A, 0xFF, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0xFE, 0x6C, 0x4C, 0xEC, 0x80, 0xC3, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, +0x58, 0x9A, 0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0x09, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, +0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, +0x40, 0x9A, 0x60, 0xDA, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x24, 0x9A, +0x30, 0xF0, 0x21, 0x68, 0x12, 0xF5, 0x08, 0x48, +0x90, 0x67, 0xF1, 0x67, 0x01, 0xF2, 0x00, 0x6A, +0x00, 0x6D, 0xB8, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, +0x48, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, +0xB8, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x0E, 0xD6, 0x0F, 0xD7, +0x04, 0xD7, 0xFF, 0x68, 0xFF, 0xF7, 0x1F, 0x69, +0x0E, 0x97, 0x8C, 0xE8, 0xAC, 0xE9, 0x30, 0xF0, +0x21, 0x6C, 0x12, 0xF5, 0x08, 0x4C, 0xB0, 0x67, +0xD1, 0x67, 0x80, 0x18, 0x12, 0x59, 0x00, 0x6A, +0x07, 0xD2, 0x30, 0xF0, 0x21, 0x6B, 0x0E, 0x97, +0x12, 0xF5, 0x08, 0x4B, 0x83, 0x67, 0xB0, 0x67, +0xD1, 0x67, 0x06, 0xD3, 0x80, 0x18, 0x9F, 0x58, +0x0F, 0x93, 0x6E, 0xEA, 0x1E, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, +0x40, 0xEA, 0x0F, 0x92, 0x06, 0x94, 0x0E, 0x97, +0xB0, 0x67, 0xD1, 0x67, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x07, 0x93, 0x01, 0x4B, 0xE0, 0xF3, +0x08, 0x73, 0x07, 0xD3, 0xDE, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0xA0, 0xF1, +0x00, 0x6C, 0x1F, 0xF7, 0x00, 0x6D, 0x0A, 0x6E, +0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xFF, 0x68, 0xFF, 0xF7, 0x1F, 0x69, 0x63, 0xF3, +0xE4, 0x9A, 0x8C, 0xE8, 0xAC, 0xE9, 0x30, 0xF0, +0x21, 0x6C, 0x0E, 0xD6, 0x04, 0xD6, 0x12, 0xF5, +0x08, 0x4C, 0xB0, 0x67, 0xD1, 0x67, 0x80, 0x18, +0x12, 0x59, 0x00, 0x6A, 0x07, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF3, 0x04, 0x4A, 0x30, 0xF0, +0x21, 0x6B, 0xE0, 0x9A, 0x12, 0xF5, 0x08, 0x4B, +0x83, 0x67, 0xB0, 0x67, 0xD1, 0x67, 0x06, 0xD3, +0x80, 0x18, 0x9F, 0x58, 0x0E, 0x93, 0x6E, 0xEA, +0x18, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF3, 0x04, 0x4B, 0x0E, 0x92, +0x06, 0x94, 0xE0, 0x9B, 0xB0, 0x67, 0xD1, 0x67, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x07, 0x92, +0x01, 0x4A, 0xE0, 0xF3, 0x08, 0x72, 0x07, 0xD2, +0xD6, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x00, 0x6A, 0x0C, 0xD4, +0x05, 0x67, 0x06, 0xD2, 0x06, 0x92, 0xFF, 0x6B, +0x30, 0xF0, 0x21, 0x69, 0x6C, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF3, 0x04, 0x4B, 0x07, 0xD2, +0xE0, 0x9B, 0x07, 0x95, 0x12, 0xF5, 0x08, 0x49, +0x00, 0x6A, 0x91, 0x67, 0xEF, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x40, 0x98, 0x06, 0x94, +0x11, 0x6E, 0xCB, 0xEE, 0x4C, 0xEE, 0xDF, 0x6D, +0x80, 0x18, 0xA1, 0x07, 0x0C, 0x92, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF3, 0x04, 0x4B, 0xC1, 0xA2, +0xE0, 0x9B, 0x42, 0x98, 0x07, 0x95, 0x91, 0x67, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x0C, 0x92, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x04, 0x4B, +0xC2, 0xA2, 0x07, 0x95, 0x44, 0x98, 0xE0, 0x9B, +0x91, 0x67, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x06, 0x92, 0x04, 0x48, 0x01, 0x4A, 0x02, 0x72, +0x06, 0xD2, 0xC4, 0x61, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x21, 0x6C, +0x12, 0xF5, 0x08, 0x4C, 0x80, 0x18, 0xFE, 0x1F, +0x05, 0x97, 0x01, 0x6A, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x01, 0x6B, 0x6B, 0xEB, 0x30, 0xF0, 0x21, 0x6A, +0x0A, 0xD4, 0x34, 0xF7, 0x72, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF2, 0x20, 0x9A, 0x30, 0xF0, +0x20, 0x68, 0x0A, 0x93, 0x80, 0xF2, 0x4C, 0x98, +0x30, 0xF0, 0x21, 0x6C, 0x35, 0xE3, 0xB5, 0xF2, +0x10, 0x4C, 0x08, 0x6E, 0x40, 0xEA, 0x0A, 0x95, +0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, 0x21, 0x6C, +0x08, 0x4D, 0x35, 0xE5, 0x95, 0xF0, 0x08, 0x4C, +0x44, 0x6E, 0x40, 0xEA, 0x0A, 0x92, 0x30, 0xF0, +0x21, 0x6C, 0xD5, 0xF0, 0x0C, 0x4C, 0x4C, 0x4A, +0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, +0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, +0x30, 0xF0, 0x21, 0x6C, 0x15, 0xF1, 0x10, 0x4C, +0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, +0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, +0x04, 0x92, 0x30, 0xF0, 0x21, 0x6C, 0x55, 0xF1, +0x14, 0x4C, 0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, +0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, +0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, 0x21, 0x6C, +0x95, 0xF1, 0x18, 0x4C, 0x44, 0x4A, 0x04, 0xD2, +0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, +0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, +0x21, 0x6C, 0xD5, 0xF1, 0x1C, 0x4C, 0x44, 0x4A, +0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, +0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, +0x30, 0xF0, 0x21, 0x6C, 0x35, 0xF2, 0x00, 0x4C, +0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, +0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, +0x04, 0x92, 0x30, 0xF0, 0x21, 0x6C, 0x75, 0xF2, +0x04, 0x4C, 0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, +0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, +0xB4, 0x9B, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, +0x30, 0xF0, 0x21, 0x6C, 0xD5, 0xF2, 0x08, 0x4C, +0xB5, 0xE3, 0x10, 0x6E, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0xD1, 0x08, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF0, 0x7C, 0xA2, 0x80, 0xF0, +0x1A, 0x23, 0x30, 0xF0, 0x20, 0x6C, 0x00, 0x6B, +0xA3, 0xF1, 0x98, 0x9C, 0xE2, 0xF0, 0x7C, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0x09, 0xF6, 0x90, 0xDA, 0x09, 0xF6, 0x98, 0xDA, +0x09, 0xF6, 0x94, 0xDA, 0x09, 0xF6, 0x9C, 0xDA, +0x30, 0xF0, 0x21, 0x6D, 0x30, 0xF0, 0x21, 0x6C, +0x09, 0xF6, 0x6B, 0xC2, 0x09, 0xF6, 0x69, 0xC2, +0x09, 0xF6, 0x6D, 0xC2, 0x09, 0xF6, 0x6C, 0xC2, +0x09, 0xF6, 0x6A, 0xC2, 0x09, 0xF6, 0x6E, 0xC2, +0xB5, 0xF2, 0x10, 0x4D, 0xB5, 0xF0, 0x0A, 0x4C, +0x00, 0x6A, 0x00, 0x6B, 0x60, 0xDD, 0x30, 0xF0, +0x20, 0x6E, 0x31, 0xF2, 0x62, 0x42, 0x2B, 0xF1, +0x18, 0x4E, 0x6C, 0x33, 0x6D, 0xE6, 0x04, 0xD3, +0x62, 0xF4, 0x62, 0x42, 0x68, 0x33, 0x6D, 0xE6, +0x03, 0xD3, 0x06, 0x6B, 0x78, 0xEA, 0x01, 0xD4, +0x12, 0xEB, 0x6D, 0xE6, 0xAA, 0xF1, 0x01, 0x4B, +0x00, 0x6E, 0x04, 0x90, 0x00, 0x6F, 0xE0, 0xD8, +0x03, 0x90, 0xE0, 0xC8, 0x44, 0x30, 0x01, 0xE6, +0xA5, 0xF0, 0x18, 0x48, 0x30, 0xF0, 0x20, 0x6F, +0x04, 0x30, 0x2B, 0xF1, 0x18, 0x4F, 0x1D, 0xE7, +0x05, 0xD7, 0x01, 0x97, 0x00, 0x68, 0x00, 0xD0, +0x02, 0xD7, 0x05, 0x90, 0x00, 0x6F, 0x22, 0x69, +0xE0, 0xC0, 0x00, 0x97, 0x06, 0xD2, 0x38, 0xEF, +0x44, 0x6F, 0x12, 0xE9, 0xF8, 0xEE, 0x12, 0xEF, +0xE5, 0xE1, 0x88, 0x6F, 0xF8, 0xEA, 0x12, 0xEF, +0xE5, 0xE1, 0x11, 0x67, 0x30, 0xF0, 0x20, 0x6F, +0x2B, 0xF1, 0x18, 0x4F, 0x49, 0xF7, 0x10, 0x48, +0x6A, 0xF0, 0x00, 0x49, 0x01, 0xE7, 0x25, 0xE7, +0x02, 0x92, 0x00, 0x6F, 0xE0, 0xC8, 0x02, 0x48, +0x4A, 0xE8, 0xE0, 0xC9, 0x02, 0x49, 0xF8, 0x61, +0x00, 0x90, 0x06, 0x92, 0x01, 0x48, 0x00, 0xD0, +0x05, 0x90, 0x01, 0x48, 0x05, 0xD0, 0x02, 0x90, +0x22, 0x48, 0x02, 0xD0, 0x00, 0x90, 0x02, 0x70, +0xD0, 0x61, 0xE0, 0xC3, 0xE1, 0xC3, 0xE2, 0xC3, +0x04, 0x97, 0x03, 0x90, 0x01, 0x4E, 0x04, 0x4F, +0x04, 0xD7, 0x01, 0x97, 0x02, 0x48, 0x02, 0x76, +0x44, 0x4F, 0x03, 0xD0, 0x03, 0x4B, 0x01, 0xD7, +0xAC, 0x61, 0x01, 0x4A, 0x7F, 0x4C, 0x02, 0x72, +0x04, 0x4D, 0x09, 0x4C, 0x8E, 0x61, 0x09, 0x91, +0x08, 0x90, 0x05, 0x63, 0x20, 0xE8, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0x4C, 0xED, 0x4C, 0xEC, 0xCC, 0xEA, +0x4B, 0xEA, 0xC0, 0xF7, 0x42, 0x32, 0x30, 0xF0, +0x20, 0x68, 0x44, 0x32, 0xC0, 0xF3, 0x64, 0x98, +0x07, 0xD5, 0x04, 0xD2, 0xA4, 0x36, 0x08, 0x6A, +0x01, 0x6D, 0x06, 0xD4, 0x4D, 0xEE, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, 0x06, 0x92, +0x0F, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x83, 0xF3, 0xB4, 0x9B, 0x23, 0xF3, +0x00, 0x6C, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF4, 0x58, 0x9A, 0x0E, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x83, 0xF3, 0xB4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF4, 0x5C, 0x9A, 0x05, 0xD2, 0x06, 0x92, +0x22, 0x69, 0x07, 0x93, 0x38, 0xEA, 0x44, 0x6A, +0x00, 0x68, 0x12, 0xE9, 0x58, 0xEB, 0x04, 0x93, +0x12, 0xEA, 0x45, 0xE1, 0x88, 0x6A, 0x58, 0xEB, +0x12, 0xEA, 0x45, 0xE1, 0x30, 0xF0, 0x20, 0x6A, +0x49, 0xF7, 0x10, 0x49, 0x2B, 0xF1, 0x18, 0x4A, +0x25, 0xE2, 0xC0, 0xA9, 0x05, 0x94, 0x08, 0x32, +0xC0, 0x36, 0x8D, 0xEE, 0x4D, 0xEE, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, +0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x02, 0x4E, +0x01, 0x48, 0x40, 0xEA, 0x11, 0x70, 0x02, 0x49, +0xEC, 0x61, 0x06, 0x92, 0x22, 0x6B, 0x07, 0x94, +0x78, 0xEA, 0x44, 0x6A, 0x00, 0x69, 0x12, 0xEB, +0x58, 0xEC, 0x04, 0x94, 0x12, 0xEA, 0x49, 0xE3, +0x88, 0x6B, 0x78, 0xEC, 0x12, 0xEB, 0x69, 0xE2, +0x30, 0xF0, 0x20, 0x6B, 0x6A, 0xF0, 0x00, 0x4A, +0x2B, 0xF1, 0x18, 0x4B, 0x4D, 0xE3, 0x04, 0xD3, +0x04, 0x92, 0x05, 0x93, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xAA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xC0, 0x36, 0x6D, 0xEE, 0x28, 0x33, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x6D, 0xEE, 0x40, 0xEA, +0x04, 0x94, 0x01, 0x49, 0x11, 0x71, 0x02, 0x4C, +0x04, 0xD4, 0xEA, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF3, 0xCC, 0x9B, +0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x83, 0xF3, 0xB4, 0x9B, 0x23, 0xF3, +0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x52, 0xF4, 0x8C, 0x42, +0x30, 0xF0, 0x20, 0x6B, 0xC5, 0xF0, 0x00, 0x4A, +0x2B, 0xF1, 0x18, 0x4B, 0x88, 0x34, 0x44, 0x32, +0x91, 0xE3, 0x4D, 0xE3, 0x00, 0x68, 0x04, 0x4B, +0x04, 0xD4, 0x05, 0xD3, 0x06, 0xD0, 0x07, 0xD0, +0x08, 0xD0, 0x04, 0x95, 0x01, 0x6C, 0x08, 0x93, +0x40, 0xA5, 0x30, 0xF0, 0x20, 0x69, 0x04, 0x36, +0x8C, 0xEA, 0x44, 0xE8, 0x4D, 0xE3, 0x41, 0xA5, +0x05, 0x95, 0x08, 0xD3, 0x8C, 0xEA, 0x07, 0x94, +0x64, 0x40, 0x44, 0xEB, 0x51, 0xE4, 0x40, 0xA5, +0x07, 0xD4, 0x03, 0x6C, 0x64, 0x33, 0x8C, 0xEA, +0x44, 0xEB, 0x04, 0x94, 0x06, 0x93, 0x01, 0x6D, +0x8C, 0xAC, 0x4D, 0xE3, 0x06, 0xD3, 0xC0, 0xF3, +0x64, 0x99, 0x08, 0x6A, 0x4D, 0xEE, 0x09, 0xD4, +0xAB, 0xED, 0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEB, +0x08, 0x95, 0x07, 0x96, 0x06, 0x93, 0xC0, 0xF3, +0x44, 0x99, 0xAD, 0xEE, 0x6D, 0xEE, 0xE3, 0xF3, +0x10, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0x09, 0x96, 0x01, 0x6D, +0xE3, 0xF3, 0x08, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x04, 0x94, 0x05, 0x95, 0x01, 0x48, 0x02, 0x4C, +0x01, 0x4D, 0x02, 0x70, 0x04, 0xD4, 0x05, 0xD5, +0xBC, 0x61, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, +0x05, 0xD2, 0x00, 0x6A, 0x04, 0xD2, 0x04, 0x92, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x64, 0x98, +0x01, 0x69, 0x2B, 0xE9, 0x44, 0x36, 0x08, 0x6A, +0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xB1, 0x67, +0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF4, 0xC0, 0x9B, 0x03, 0xF3, +0x04, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x05, 0x92, +0x07, 0x2A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x08, 0x6C, 0xB1, 0x67, 0x80, 0x6E, 0x06, 0x10, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x30, 0xF0, 0x20, 0x68, +0x40, 0xEA, 0x01, 0x69, 0xC0, 0xF3, 0x44, 0x98, +0x2B, 0xE9, 0x03, 0xF3, 0x0C, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF3, 0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x14, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF4, 0xC4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x18, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, +0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x1C, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF4, +0xCC, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x04, 0x92, 0x01, 0x4A, 0x02, 0x72, +0x04, 0xD2, 0x99, 0x61, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, +0x00, 0xF2, 0x1C, 0x22, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0xB4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF6, 0x04, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF2, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF4, 0x10, 0x69, 0x91, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, +0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF1, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF1, 0x18, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF5, +0x18, 0x6C, 0xE1, 0xF7, 0x18, 0x6D, 0xE0, 0xF1, +0x1F, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF1, 0x18, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x63, 0xF0, 0x04, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, +0x18, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x68, 0xF1, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x3C, 0x9A, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0x0C, 0x6C, +0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x08, 0xF1, 0x0C, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF0, 0x0C, 0x6C, 0x80, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x68, 0xF1, +0x0C, 0x6C, 0x80, 0x6D, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0x0C, 0x6C, +0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x08, 0xF1, 0x0C, 0x6C, 0x03, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF2, 0x00, 0x6C, 0x03, 0x6D, 0x02, 0x6E, +0x40, 0xEA, 0x01, 0x69, 0xC0, 0xF3, 0x44, 0x98, +0x2B, 0xE9, 0x23, 0xF4, 0x18, 0x6C, 0xB1, 0x67, +0xD1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, +0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0x14, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, 0x04, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, +0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, 0x14, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, 0x04, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, +0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0x1C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, +0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, 0x0C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, 0x1C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, +0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, 0x0C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF4, 0x0C, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0xC0, 0x9B, 0xC9, 0x12, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0x04, 0xD2, 0xAA, 0xF1, +0x40, 0xA2, 0xE0, 0xF0, 0x1B, 0x22, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, +0xD0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, +0x2B, 0xE9, 0x23, 0xF4, 0x18, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x04, 0x93, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF0, 0x00, 0x6C, 0x09, 0xF6, 0xC6, 0xA3, +0x04, 0x6B, 0x0E, 0xF0, 0x00, 0x6D, 0x67, 0xEE, +0xC3, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x23, 0xF0, +0x10, 0x6C, 0x09, 0xF6, 0xC6, 0xA2, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, 0x18, 0x4B, +0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, +0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0x09, 0xF6, +0xC6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF4, 0x1C, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x23, 0xF0, +0x10, 0x6C, 0x09, 0xF6, 0xC6, 0xA2, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x00, 0x4B, +0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, +0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0x09, 0xF6, +0xC6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x04, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x04, 0x92, 0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, +0x09, 0xF6, 0xC6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x0C, 0x4B, 0x60, 0x9B, +0x6D, 0xEE, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x28, 0xF1, +0x10, 0x6C, 0x09, 0xF6, 0xC6, 0xA2, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, 0x18, 0x4B, +0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, +0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, 0x09, 0xF6, +0xC6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF4, 0x1C, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x28, 0xF1, +0x10, 0x6C, 0x09, 0xF6, 0xC6, 0xA2, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x00, 0x4B, +0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, +0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, 0x09, 0xF6, +0xC6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x04, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x04, 0x92, 0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, +0x09, 0xF6, 0xC6, 0xA2, 0xB1, 0x67, 0xC0, 0xF3, +0x44, 0x98, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x0C, 0x4B, 0x60, 0x9B, +0x6D, 0xEE, 0x63, 0x11, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0x83, 0xF4, 0x14, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, +0x2B, 0xE9, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x14, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, +0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x14, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, +0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF4, 0x04, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xC0, 0x9B, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0xA4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF5, +0x18, 0x6C, 0xE1, 0xF7, 0x18, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, +0x38, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, +0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x68, 0xF1, +0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF3, 0x3C, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF0, 0x0C, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x08, 0xF1, 0x0C, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, +0x0C, 0x6C, 0x80, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x68, 0xF1, 0x0C, 0x6C, +0x80, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0x6D, 0xC5, 0x67, 0x03, 0xF0, +0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0x6D, 0xC5, 0x67, 0x08, 0xF1, 0x0C, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, +0x00, 0x6C, 0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x06, 0x67, 0xE3, 0xF4, 0xC8, 0x9B, 0x09, 0xD5, +0x01, 0x6D, 0x24, 0x67, 0x0B, 0xD7, 0x63, 0xF5, +0x10, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x00, 0x6A, +0x80, 0x98, 0x1F, 0xF7, 0x00, 0x6B, 0x8C, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x09, 0x2B, +0x30, 0xF0, 0x20, 0x6C, 0x60, 0x98, 0x43, 0xF1, +0x84, 0x9C, 0x6D, 0xE4, 0x80, 0x99, 0x80, 0xDB, +0x07, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, +0x68, 0x9B, 0x91, 0xE3, 0x60, 0x99, 0x60, 0xDC, +0x01, 0x4A, 0xFF, 0x6B, 0x6C, 0xEA, 0x03, 0x72, +0x04, 0x48, 0x04, 0x49, 0xE1, 0x61, 0x00, 0x68, +0x0B, 0x92, 0x30, 0xF0, 0x20, 0x69, 0x01, 0x6D, +0x11, 0xE2, 0x09, 0x92, 0x80, 0xAC, 0xAB, 0xED, +0x0D, 0xE2, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0x04, 0x48, 0x40, 0xEA, 0x2C, 0x70, 0xF0, 0x61, +0x30, 0xF0, 0x21, 0x6A, 0xB5, 0xF2, 0x49, 0xA2, +0x01, 0x72, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x99, 0x03, 0xF0, 0x0C, 0x6C, +0x03, 0xF1, 0xB8, 0x9B, 0x00, 0x6E, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, +0x03, 0xF1, 0xB8, 0x9B, 0x03, 0xF0, 0x0C, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x21, 0x6A, +0xB5, 0xF2, 0x4B, 0xA2, 0x01, 0x72, 0x0C, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9A, 0x08, 0xF1, 0x0C, 0x6C, +0x03, 0xF1, 0xB8, 0x9B, 0x00, 0x6E, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF1, 0xB8, 0x9B, +0x08, 0xF1, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x21, 0x6A, 0xD5, 0xF2, 0x58, 0xA2, +0x1E, 0x22, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF1, 0xB8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x63, 0xF6, 0x1C, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, +0x38, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, +0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x04, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF2, 0x40, 0x9A, 0x01, 0x6B, +0x6B, 0xEB, 0x30, 0xF0, 0x20, 0x68, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF2, 0xB4, 0x9B, 0x23, 0xF6, 0x04, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF4, 0xAC, 0x9B, +0xC3, 0xF4, 0x10, 0x6C, 0x07, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0xB8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF5, 0x00, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6E, 0xCB, 0xEE, 0xA6, 0x67, 0x23, 0xF4, +0x18, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF2, 0x14, 0x6C, 0x00, 0xF3, 0x00, 0x6D, +0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF4, 0xB0, 0x9B, +0x21, 0xF0, 0x04, 0x6C, 0x03, 0x6E, 0x40, 0xEA, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF3, 0xE8, 0x9B, 0xFF, 0x6A, 0x04, 0x6B, +0xC0, 0xA7, 0x4C, 0xED, 0x4C, 0xEC, 0x4C, 0xEE, +0xCD, 0xEB, 0x4C, 0xEB, 0x60, 0xC7, 0x06, 0x2D, +0x07, 0x6B, 0x07, 0x24, 0x01, 0x74, 0x07, 0x6B, +0x12, 0x61, 0x0C, 0x10, 0x07, 0x2C, 0x79, 0x6B, +0x6B, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, +0x44, 0x9A, 0x08, 0x10, 0x01, 0x74, 0x07, 0x61, +0x79, 0x6B, 0x6B, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF4, 0x54, 0x9A, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF3, 0x48, 0x9A, 0xC0, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6E, 0x30, 0xF0, +0x20, 0x68, 0xCC, 0xEC, 0xC0, 0xF3, 0x44, 0x98, +0xAC, 0xEE, 0x01, 0x69, 0x08, 0x6B, 0x2B, 0xE9, +0xC4, 0x36, 0x04, 0xD4, 0xB1, 0x67, 0x03, 0xF3, +0x00, 0x6C, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, +0x12, 0x2A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x03, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, +0xE3, 0xF4, 0xD8, 0x9B, 0x11, 0x10, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, +0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF4, +0xDC, 0x9B, 0xC3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, +0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x30, 0xF0, 0x20, 0x68, 0xC3, 0xF3, 0x18, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x00, 0x6E, +0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x00, 0x68, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF5, 0xA0, 0x9A, 0x02, 0xF7, 0x00, 0x6C, +0x80, 0x18, 0x85, 0x28, 0x20, 0x6B, 0x4C, 0xEB, +0x0A, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x14, 0x6C, 0x01, 0x48, 0x40, 0xEA, +0x0A, 0x70, 0xEC, 0x61, 0x0A, 0x68, 0x50, 0x67, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0xF7, 0x1F, 0x68, 0x8C, 0xE8, 0x80, 0x18, +0x89, 0x0C, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, +0xC4, 0x9A, 0x01, 0x69, 0x2B, 0xE9, 0x0D, 0xEE, +0xB1, 0x67, 0x02, 0xF7, 0x00, 0x6C, 0x80, 0x18, +0x9A, 0x28, 0xB1, 0x67, 0x02, 0xF7, 0x08, 0x6C, +0x80, 0x18, 0x85, 0x28, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0xF7, 0x1F, 0x68, 0x25, 0x67, 0x0C, 0xD6, +0x8C, 0xE8, 0x37, 0x25, 0x61, 0x45, 0x00, 0x6A, +0x0E, 0x2B, 0x80, 0x18, 0x89, 0x0C, 0x01, 0x69, +0x0C, 0x96, 0x2B, 0xE9, 0x02, 0xF7, 0x04, 0x6C, +0xB1, 0x67, 0x80, 0x18, 0x9A, 0x28, 0x02, 0xF7, +0x00, 0x6C, 0xB1, 0x67, 0x1F, 0x10, 0x71, 0x67, +0x66, 0xEA, 0x01, 0x6C, 0x8C, 0xEB, 0x04, 0x2B, +0x01, 0x4A, 0x20, 0x72, 0xF8, 0x61, 0x00, 0x6A, +0x90, 0x67, 0x04, 0xD2, 0x2F, 0xE9, 0x80, 0x18, +0x98, 0x0C, 0x4C, 0xE9, 0x80, 0x18, 0x89, 0x0C, +0x0C, 0x96, 0x04, 0x92, 0x01, 0x6D, 0x02, 0xF7, +0x04, 0x6C, 0xC4, 0xEA, 0xAB, 0xED, 0x2D, 0xEE, +0x80, 0x18, 0x9A, 0x28, 0x01, 0x6D, 0x02, 0xF7, +0x00, 0x6C, 0xAB, 0xED, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF5, 0xC8, 0x9A, 0x0D, 0xEE, 0x80, 0x18, +0x9A, 0x28, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x38, 0x6C, 0x18, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x80, 0x18, 0xA8, 0x0C, 0x38, 0x6C, 0x01, 0xF4, +0x00, 0x6D, 0x01, 0x6E, 0x80, 0x18, 0xA8, 0x0C, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x38, 0x6C, 0x06, 0xF0, +0x00, 0x6D, 0x03, 0x6E, 0x80, 0x18, 0xA8, 0x0C, +0x38, 0x6C, 0x00, 0xF3, 0x00, 0x6D, 0x03, 0x6E, +0x80, 0x18, 0xA8, 0x0C, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x05, 0x22, 0x80, 0x18, +0xD4, 0x0C, 0x80, 0x18, 0xCB, 0x0C, 0x09, 0x10, +0x30, 0xF0, 0x21, 0x6A, 0xF5, 0xF2, 0xD0, 0x9A, +0x01, 0x6D, 0x38, 0x6C, 0xAB, 0xED, 0x80, 0x18, +0xA8, 0x0C, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x00, 0x6A, 0x09, 0xD5, 0x27, 0x67, 0xA0, 0x9E, +0x1F, 0xF7, 0x00, 0x6B, 0xAC, 0xEB, 0x02, 0xF0, +0x00, 0x73, 0x01, 0x60, 0x08, 0x2B, 0x30, 0xF0, +0x20, 0x6D, 0x60, 0x9E, 0x43, 0xF1, 0xA4, 0x9D, +0x6D, 0xE5, 0x60, 0x9B, 0x06, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF1, 0x68, 0x9B, 0xB5, 0xE3, +0x60, 0x9D, 0x55, 0xE4, 0x04, 0x4A, 0x0C, 0x72, +0x60, 0xDD, 0x04, 0x4E, 0xE4, 0x61, 0x00, 0x68, +0x09, 0xE1, 0x80, 0xAA, 0x01, 0x6D, 0xAB, 0xED, +0x80, 0x18, 0x0D, 0x28, 0x09, 0x94, 0x0D, 0xE4, +0x04, 0x48, 0x2C, 0x70, 0x40, 0xDB, 0xF4, 0x61, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x4C, 0xED, +0x4C, 0xEC, 0xCC, 0xEA, 0x4B, 0xEA, 0xC0, 0xF7, +0x42, 0x32, 0x30, 0xF0, 0x20, 0x68, 0x44, 0x32, +0xC0, 0xF3, 0x64, 0x98, 0x06, 0xD5, 0x04, 0xD2, +0xA4, 0x36, 0x08, 0x6A, 0x01, 0x6D, 0x05, 0xD4, +0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEB, 0x05, 0x92, 0x0A, 0x2A, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, +0x00, 0x6C, 0x83, 0xF3, 0xB4, 0x9B, 0x03, 0x6E, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x83, 0xF3, 0xB4, 0x9B, 0x23, 0xF3, +0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, +0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, +0x14, 0x69, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF3, 0xA8, 0x9B, 0x91, 0x67, 0x10, 0x6E, +0x40, 0xEA, 0x05, 0x92, 0x22, 0x6B, 0x06, 0x94, +0x78, 0xEA, 0x44, 0x6A, 0x00, 0x69, 0x12, 0xEB, +0x58, 0xEC, 0x04, 0x94, 0x12, 0xEA, 0x4D, 0xE3, +0x88, 0x6A, 0x58, 0xEC, 0x12, 0xEA, 0x4D, 0xE3, +0x83, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0x49, 0xF7, 0x10, 0x4C, 0x6A, 0xF0, +0x00, 0x4B, 0x91, 0xE2, 0x6D, 0xE2, 0x05, 0xD4, +0x04, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, +0x6C, 0x9B, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0x36, 0x01, 0x6D, 0x6D, 0xEE, +0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x01, 0x6D, 0xE3, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, +0x80, 0x18, 0x0D, 0x28, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF3, 0x70, 0x9B, 0x05, 0x94, 0x01, 0x49, +0x4C, 0xEB, 0x62, 0x33, 0x62, 0x33, 0x60, 0xCC, +0xE1, 0xF7, 0x1F, 0x6B, 0x4C, 0xEB, 0x04, 0x92, +0x02, 0x4C, 0x11, 0x71, 0x60, 0xCA, 0x02, 0x4A, +0x05, 0xD4, 0x04, 0xD2, 0xD6, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF3, 0xB4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x00, 0x6E, +0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xFF, 0x6A, 0x24, 0x67, 0x2B, 0xF1, 0x18, 0x48, +0x4C, 0xED, 0x4C, 0xE9, 0xE9, 0xF5, 0x59, 0xA0, +0x06, 0xD5, 0x24, 0x36, 0x07, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x9A, 0x01, 0x6D, +0x08, 0x6A, 0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF3, 0xB4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0xE9, 0xF5, 0x58, 0xA0, +0x4B, 0x2A, 0x06, 0x92, 0x03, 0x22, 0x12, 0x6A, +0xE9, 0xF5, 0x5E, 0xC0, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x21, 0x6B, 0x34, 0xF7, 0xD6, 0xA3, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, +0xFF, 0x6D, 0x40, 0xEA, 0x01, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0xFC, 0x9A, +0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x08, 0x4B, +0x83, 0x67, 0xB1, 0x67, 0xDE, 0x6E, 0x06, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x06, 0x94, 0xE1, 0xF7, +0x1F, 0x6F, 0x20, 0x6A, 0xB1, 0x67, 0x56, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x18, 0x6C, 0x02, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF5, 0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x23, 0xF3, 0x04, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x0C, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x18, 0x6E, 0x49, 0x10, +0x06, 0x92, 0x03, 0x22, 0x12, 0x6A, 0xE9, 0xF5, +0x5E, 0xC0, 0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF1, 0xFC, 0x9A, 0x30, 0xF0, +0x21, 0x68, 0x12, 0xF5, 0x08, 0x48, 0x90, 0x67, +0xB1, 0x67, 0xDE, 0x6E, 0x80, 0x18, 0x12, 0x59, +0xE1, 0xF7, 0x1F, 0x6F, 0x90, 0x67, 0x00, 0x6A, +0xB1, 0x67, 0x56, 0x6E, 0x30, 0xF0, 0x20, 0x68, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, +0x21, 0x6B, 0x34, 0xF7, 0xD6, 0xA3, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x18, 0x6C, 0x02, 0x6D, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, 0xDC, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, 0xD0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, 0x04, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, -0x18, 0x6E, 0x49, 0x10, 0x06, 0x92, 0x03, 0x22, -0x12, 0x6A, 0xE9, 0xF5, 0x5E, 0xC0, 0x01, 0x6A, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, -0xF8, 0x9A, 0x30, 0xF0, 0x21, 0x68, 0x12, 0xF5, -0x08, 0x48, 0x90, 0x67, 0xB1, 0x67, 0xDE, 0x6E, -0x80, 0x18, 0x8D, 0x5A, 0xE1, 0xF7, 0x1F, 0x6F, -0x90, 0x67, 0x00, 0x6A, 0xB1, 0x67, 0x56, 0x6E, -0x30, 0xF0, 0x20, 0x68, 0x04, 0xD2, 0x80, 0x18, -0x8D, 0x5A, 0x30, 0xF0, 0x21, 0x6B, 0x34, 0xF7, -0xD6, 0xA3, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, -0x0C, 0x6C, 0xFF, 0x6D, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x18, 0x6C, 0x02, 0x6D, -0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF5, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x01, 0x6D, 0x23, 0xF3, 0x04, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, -0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x0C, 0x6C, -0xE1, 0xF7, 0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, -0x07, 0x93, 0x06, 0x73, 0x0A, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, -0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x08, 0x6E, -0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x06, 0xD2, 0x2B, 0xF1, -0x18, 0x4B, 0xE9, 0xF5, 0x59, 0xA3, 0x07, 0xD3, -0x06, 0x93, 0x30, 0xF0, 0x20, 0x68, 0x08, 0xD2, -0x64, 0x31, 0x08, 0x6A, 0x4D, 0xE9, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x6D, 0xD1, 0x67, 0x03, 0xF3, -0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF2, 0x00, 0x4B, 0xA0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x3F, 0x6D, 0xC5, 0x67, 0xC3, 0xF3, 0x0C, 0x6C, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, -0xD1, 0x67, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, -0x00, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0xB4, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x00, 0x69, -0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x91, 0x67, 0xE0, 0xF3, 0x00, 0x6D, -0x12, 0x6E, 0x40, 0xEA, 0x07, 0x93, 0xE9, 0xF5, -0x58, 0xA3, 0x11, 0x2A, 0x01, 0x6A, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x21, 0x69, -0x06, 0x95, 0xA3, 0xF1, 0xF8, 0x9A, 0x12, 0xF5, -0x08, 0x49, 0x91, 0x67, 0xDE, 0x6E, 0x80, 0x18, -0x8D, 0x5A, 0x20, 0x6A, 0x10, 0x10, 0x01, 0x6A, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x21, 0x69, 0x06, 0x95, 0xA3, 0xF1, 0xF8, 0x9A, -0x12, 0xF5, 0x08, 0x49, 0x91, 0x67, 0xDE, 0x6E, -0x80, 0x18, 0x8D, 0x5A, 0x00, 0x6A, 0x06, 0x95, -0x91, 0x67, 0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, 0xC0, 0xF3, -0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, -0x12, 0x6E, 0x40, 0xEA, 0x08, 0x92, 0x06, 0x72, +0x38, 0x6E, 0x40, 0xEA, 0x07, 0x93, 0x06, 0x73, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, -0x1F, 0x6D, 0x08, 0x6E, 0x09, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, -0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x38, 0x6E, -0x40, 0xEA, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, -0x07, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xFF, 0x68, 0xE9, 0xF5, -0x79, 0xA2, 0x8C, 0xE8, 0x06, 0xD2, 0x04, 0x32, -0x07, 0xD2, 0x08, 0xD3, 0x07, 0x93, 0x30, 0xF0, -0x20, 0x69, 0x08, 0x6A, 0x4D, 0xEB, 0xC0, 0xF3, -0x44, 0x99, 0x01, 0x6D, 0xC3, 0x67, 0x07, 0xD3, -0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0xA0, 0x9B, -0xC0, 0xF3, 0x44, 0x99, 0xA3, 0xF3, 0x18, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, -0x3F, 0x6D, 0xC5, 0x67, 0xC3, 0xF3, 0x0C, 0x6C, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x07, 0x96, -0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, -0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, -0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x99, 0x23, 0xF3, 0x00, 0x6C, 0xE0, 0xF3, -0x00, 0x6D, 0x12, 0x6E, 0x40, 0xEA, 0x06, 0x92, -0xE9, 0xF5, 0x58, 0xA2, 0x06, 0xD2, 0x5B, 0x2A, -0x07, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF5, 0xE4, 0x9A, 0x30, 0xF0, 0x21, 0x69, -0x12, 0xF5, 0x08, 0x49, 0x91, 0x67, 0xB0, 0x67, -0x00, 0x6E, 0x80, 0x18, 0x8D, 0x5A, 0x01, 0x6B, -0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, 0x20, 0x6F, -0x04, 0xD3, 0x80, 0x18, 0x8D, 0x5A, 0x01, 0x6A, -0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, 0x00, 0xF4, -0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0x18, 0x4A, -0xE0, 0x9A, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, -0xDE, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x8D, 0x5A, -0x10, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, -0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0x8D, 0x5A, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, -0xEF, 0x6E, 0x04, 0x6F, 0x04, 0xD3, 0x80, 0x18, -0x8D, 0x5A, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, -0x18, 0x4B, 0xE0, 0x9B, 0x06, 0x92, 0x91, 0x67, -0xB0, 0x67, 0x18, 0x6E, 0x04, 0xD2, 0x80, 0x18, -0x8D, 0x5A, 0x06, 0x92, 0x91, 0x67, 0xB0, 0x67, -0x33, 0x6E, 0x01, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0x8D, 0x5A, 0x04, 0x6A, 0x91, 0x67, 0xB0, 0x67, -0x08, 0x6E, 0x70, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0x8D, 0x5A, 0x06, 0x93, 0x5A, 0x10, 0x07, 0x6A, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, -0xE4, 0x9A, 0x30, 0xF0, 0x21, 0x69, 0x12, 0xF5, -0x08, 0x49, 0x91, 0x67, 0xB0, 0x67, 0x00, 0x6E, -0x80, 0x18, 0x8D, 0x5A, 0x01, 0x6A, 0x91, 0x67, -0xB0, 0x67, 0x9E, 0x6E, 0x20, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0x8D, 0x5A, 0x01, 0x6B, 0x91, 0x67, -0xB0, 0x67, 0x9E, 0x6E, 0x00, 0xF4, 0x00, 0x6F, -0x04, 0xD3, 0x80, 0x18, 0x8D, 0x5A, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF1, 0x18, 0x4B, 0xE0, 0x9B, -0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, -0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, 0x00, 0x6A, -0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, 0xE1, 0xF7, -0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, -0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, -0x04, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x8D, 0x5A, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0x18, 0x4B, -0xE0, 0x9B, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, -0x18, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, -0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, -0xE2, 0x67, 0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, -0x04, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, -0x70, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, -0x00, 0x6B, 0x91, 0x67, 0x30, 0xF0, 0x21, 0x69, -0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, 0x12, 0xF5, -0x08, 0x49, 0x04, 0xD3, 0x80, 0x18, 0x8D, 0x5A, -0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x57, 0x6E, -0x01, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, -0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, -0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, -0x30, 0xF0, 0x21, 0x6A, 0x34, 0xF7, 0x50, 0xA2, -0x01, 0x22, 0x20, 0x6A, 0x7F, 0x6F, 0x91, 0x67, -0xB0, 0x67, 0x33, 0x6E, 0x30, 0xF0, 0x20, 0x69, -0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, 0xC0, 0xF3, -0x44, 0x99, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, -0x09, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, -0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, -0x38, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x21, 0x6C, -0xB0, 0x67, 0x10, 0x6F, 0x01, 0x6A, 0x12, 0xF5, -0x08, 0x4C, 0xEF, 0x6E, 0x30, 0xF0, 0x20, 0x68, -0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x12, 0x6E, -0x40, 0xEA, 0x08, 0x92, 0x06, 0x72, 0x08, 0x61, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x0C, 0x6C, -0xE1, 0xF7, 0x1F, 0x6D, 0x08, 0x6E, 0x07, 0x10, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x0C, 0x6C, -0xE1, 0xF7, 0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, -0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xE9, 0xF5, 0x79, 0xA2, -0x30, 0xF0, 0x20, 0x68, 0xFF, 0x69, 0x8C, 0xE9, -0x07, 0xD3, 0xC0, 0xF3, 0x64, 0x98, 0x06, 0xD2, -0x24, 0x36, 0x08, 0x6A, 0x01, 0x6D, 0x4D, 0xEE, -0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0xA0, 0x9B, +0x1F, 0x6D, 0x08, 0x6E, 0x40, 0xEA, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x06, 0xD2, 0x2B, 0xF1, 0x18, 0x4B, 0xE9, 0xF5, +0x59, 0xA3, 0x07, 0xD3, 0x06, 0x93, 0x30, 0xF0, +0x20, 0x68, 0x08, 0xD2, 0x64, 0x31, 0x08, 0x6A, +0x4D, 0xE9, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xD1, 0x67, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, +0x04, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x3F, 0x6D, 0xC5, 0x67, +0xC3, 0xF3, 0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xD1, 0x67, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF2, 0x04, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF5, 0xC8, 0x9B, -0x01, 0x6D, 0x23, 0xF3, 0x00, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x06, 0x93, 0xE9, 0xF5, 0x58, 0xA3, -0x03, 0x2A, 0x81, 0xF0, 0x07, 0x4A, 0x02, 0x10, -0xC1, 0xF0, 0x0A, 0x6A, 0x30, 0xF0, 0x21, 0x6C, -0x12, 0xF5, 0x08, 0x4C, 0xB1, 0x67, 0x56, 0x6E, +0x83, 0xF3, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x00, 0x69, 0x91, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0xE0, 0xF3, 0x00, 0x6D, 0x12, 0x6E, 0x40, 0xEA, +0x07, 0x93, 0xE9, 0xF5, 0x58, 0xA3, 0x11, 0x2A, +0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x21, 0x69, 0x06, 0x95, 0xA3, 0xF1, +0xFC, 0x9A, 0x12, 0xF5, 0x08, 0x49, 0x91, 0x67, +0xDE, 0x6E, 0x80, 0x18, 0x12, 0x59, 0x20, 0x6A, +0x10, 0x10, 0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x21, 0x69, 0x06, 0x95, +0xA3, 0xF1, 0xFC, 0x9A, 0x12, 0xF5, 0x08, 0x49, +0x91, 0x67, 0xDE, 0x6E, 0x80, 0x18, 0x12, 0x59, +0x00, 0x6A, 0x06, 0x95, 0x91, 0x67, 0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0x8D, 0x5A, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, -0x0C, 0x6C, 0xFF, 0x6D, 0x09, 0x6E, 0x40, 0xEA, -0x07, 0x92, 0x06, 0x72, 0x0A, 0x61, 0x30, 0xF0, +0x12, 0x59, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, +0x0C, 0x6C, 0xFF, 0x6D, 0x12, 0x6E, 0x40, 0xEA, +0x08, 0x92, 0x06, 0x72, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x08, 0x6E, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, -0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF3, -0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xFF, 0x68, 0x8C, 0xE8, -0xE9, 0xF5, 0x79, 0xA2, 0x06, 0xD2, 0x04, 0x32, -0x07, 0xD2, 0x08, 0xD3, 0x07, 0x93, 0x30, 0xF0, -0x20, 0x69, 0x08, 0x6A, 0x4D, 0xEB, 0xC0, 0xF3, -0x44, 0x99, 0x01, 0x6D, 0xC3, 0x67, 0x07, 0xD3, -0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0xA0, 0x9B, -0xC0, 0xF3, 0x44, 0x99, 0xA3, 0xF3, 0x18, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, -0x3F, 0x6D, 0xC5, 0x67, 0xC3, 0xF3, 0x0C, 0x6C, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x07, 0x96, -0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, -0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, -0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x99, 0x30, 0xF0, 0x21, 0x69, 0x12, 0xF5, -0x08, 0x49, 0x23, 0xF3, 0x00, 0x6C, 0xE0, 0xF3, -0x00, 0x6D, 0x12, 0x6E, 0x40, 0xEA, 0x00, 0x6A, -0x91, 0x67, 0xB0, 0x67, 0xDF, 0x6E, 0x10, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, 0x00, 0x6B, -0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, 0x20, 0x6F, -0x04, 0xD3, 0x80, 0x18, 0x8D, 0x5A, 0x00, 0x6A, -0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, 0x00, 0xF4, -0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, -0x06, 0x93, 0xE9, 0xF5, 0x78, 0xA3, 0x06, 0xD3, -0x35, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, -0x18, 0x4B, 0xE0, 0x9B, 0x01, 0x6A, 0x91, 0x67, -0xB0, 0x67, 0xDE, 0x6E, 0x04, 0xD2, 0x80, 0x18, -0x8D, 0x5A, 0x81, 0xF0, 0x07, 0x6A, 0x91, 0x67, +0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0xFF, 0x68, 0xE9, 0xF5, 0x79, 0xA2, 0x8C, 0xE8, +0x06, 0xD2, 0x04, 0x32, 0x07, 0xD2, 0x08, 0xD3, +0x07, 0x93, 0x30, 0xF0, 0x20, 0x69, 0x08, 0x6A, +0x4D, 0xEB, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, +0xC3, 0x67, 0x07, 0xD3, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF2, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0x3F, 0x6D, 0xC5, 0x67, +0xC3, 0xF3, 0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0x07, 0x96, 0x01, 0x6D, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF3, 0xB4, 0x9B, 0xC0, 0xF3, +0x44, 0x99, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, +0x00, 0x6C, 0xE0, 0xF3, 0x00, 0x6D, 0x12, 0x6E, +0x40, 0xEA, 0x06, 0x92, 0xE9, 0xF5, 0x58, 0xA2, +0x06, 0xD2, 0x5B, 0x2A, 0x07, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, 0xF4, 0x9A, +0x30, 0xF0, 0x21, 0x69, 0x12, 0xF5, 0x08, 0x49, +0x91, 0x67, 0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, +0x12, 0x59, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, +0x9E, 0x6E, 0x20, 0x6F, 0x04, 0xD3, 0x80, 0x18, +0x12, 0x59, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x9E, 0x6E, 0x00, 0xF4, 0x00, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF1, 0x1C, 0x4A, 0xE0, 0x9A, 0x01, 0x6B, +0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x10, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, 0x01, 0x6A, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF1, 0x18, 0x4A, 0x06, 0x93, -0xE0, 0x9A, 0x91, 0x67, 0xB0, 0x67, 0x18, 0x6E, -0x04, 0xD3, 0x80, 0x18, 0x8D, 0x5A, 0x04, 0x6A, +0x04, 0xD3, 0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF1, 0x1C, 0x4B, 0xE0, 0x9B, +0x06, 0x92, 0x91, 0x67, 0xB0, 0x67, 0x18, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x06, 0x92, +0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, 0x01, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x04, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, 0x70, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, 0x06, 0x93, -0x04, 0xD3, 0x3C, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF1, 0x18, 0x4B, 0xE0, 0x9B, 0x01, 0x6A, -0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0x8D, 0x5A, 0x61, 0xF0, 0x08, 0x6A, -0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, 0xE1, 0xF7, -0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, -0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, -0x04, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0x18, 0x4A, -0xE0, 0x9A, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, -0x18, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x8D, 0x5A, -0x00, 0x6B, 0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, -0x01, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x8D, 0x5A, -0x04, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, -0x70, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, -0x00, 0x6A, 0x04, 0xD2, 0x91, 0x67, 0x30, 0xF0, -0x21, 0x69, 0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, -0x12, 0xF5, 0x08, 0x49, 0x80, 0x18, 0x8D, 0x5A, -0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x57, 0x6E, -0x01, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, -0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, -0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, -0x30, 0xF0, 0x21, 0x6A, 0x34, 0xF7, 0x50, 0xA2, -0x01, 0x22, 0x20, 0x6A, 0x91, 0x67, 0xB0, 0x67, -0x33, 0x6E, 0x7F, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0x8D, 0x5A, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x44, 0x9A, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, -0x09, 0x6E, 0x40, 0xEA, 0x08, 0x93, 0x06, 0x73, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x06, 0x93, +0x5A, 0x10, 0x07, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF5, 0xF4, 0x9A, 0x30, 0xF0, +0x21, 0x69, 0x12, 0xF5, 0x08, 0x49, 0x91, 0x67, +0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, 0x12, 0x59, +0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, +0x20, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, +0x00, 0xF4, 0x00, 0x6F, 0x04, 0xD3, 0x80, 0x18, +0x12, 0x59, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, +0x1C, 0x4B, 0xE0, 0x9B, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0xDE, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x01, 0x6B, 0x91, 0x67, +0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF1, 0x1C, 0x4B, 0xE0, 0x9B, 0x01, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x18, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x33, 0x6E, 0xE2, 0x67, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x04, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x08, 0x6E, 0x70, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x00, 0x6B, 0x91, 0x67, +0x30, 0xF0, 0x21, 0x69, 0xB0, 0x67, 0xEF, 0x6E, +0x04, 0x6F, 0x12, 0xF5, 0x08, 0x49, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x00, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x57, 0x6E, 0x01, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0xEF, 0x6E, 0x10, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x21, 0x6A, +0x34, 0xF7, 0x50, 0xA2, 0x01, 0x22, 0x20, 0x6A, +0x7F, 0x6F, 0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, +0x30, 0xF0, 0x20, 0x69, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0xC0, 0xF3, 0x44, 0x99, 0xC3, 0xF3, +0x0C, 0x6C, 0xFF, 0x6D, 0x09, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, 0x0C, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x21, 0x6C, 0xB0, 0x67, 0x10, 0x6F, +0x01, 0x6A, 0x12, 0xF5, 0x08, 0x4C, 0xEF, 0x6E, +0x30, 0xF0, 0x20, 0x68, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, +0xFF, 0x6D, 0x12, 0x6E, 0x40, 0xEA, 0x08, 0x92, +0x06, 0x72, 0x08, 0x61, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x08, 0x6E, 0x07, 0x10, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x38, 0x6E, 0x40, 0xEA, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0xE9, 0xF5, 0x79, 0xA2, 0x30, 0xF0, 0x20, 0x68, +0xFF, 0x69, 0x8C, 0xE9, 0x07, 0xD3, 0xC0, 0xF3, +0x64, 0x98, 0x06, 0xD2, 0x24, 0x36, 0x08, 0x6A, +0x01, 0x6D, 0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF2, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF5, 0xD8, 0x9B, 0x01, 0x6D, 0x23, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x06, 0x93, +0xE9, 0xF5, 0x58, 0xA3, 0x03, 0x2A, 0x81, 0xF0, +0x07, 0x4A, 0x02, 0x10, 0xC1, 0xF0, 0x0A, 0x6A, +0x30, 0xF0, 0x21, 0x6C, 0x12, 0xF5, 0x08, 0x4C, +0xB1, 0x67, 0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, +0x09, 0x6E, 0x40, 0xEA, 0x07, 0x92, 0x06, 0x72, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x08, 0x6E, 0x09, 0x10, 0x30, 0xF0, @@ -27545,192 +27224,315 @@ u8 array_mp_8822c_fw_nic[] = { 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0x0D, 0x97, 0x0C, 0x91, -0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x00, 0x6E, 0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x04, 0x4A, -0xE0, 0x9A, 0x30, 0xF0, 0x21, 0x68, 0x00, 0x69, -0x12, 0xF5, 0x08, 0x48, 0x0E, 0xD4, 0x0F, 0xD5, -0x90, 0x67, 0xB1, 0x67, 0xEF, 0x6E, 0x04, 0xD1, -0x80, 0x18, 0x8D, 0x5A, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF3, 0x04, 0x4B, 0xE0, 0x9B, 0x90, 0x67, -0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD1, 0x80, 0x18, -0x8D, 0x5A, 0x0E, 0x90, 0x0F, 0x91, 0x00, 0x6A, -0x07, 0xD2, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, -0x08, 0x4B, 0x06, 0xD3, 0x40, 0x99, 0xC0, 0x98, -0x83, 0x67, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0x04, 0x4A, 0xE0, 0x9A, 0x00, 0x6D, -0x80, 0x18, 0x8D, 0x5A, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF3, 0x04, 0x4B, 0xC0, 0x98, 0x41, 0x99, -0xE0, 0x9B, 0x06, 0x94, 0x01, 0x6D, 0x04, 0xD2, -0x80, 0x18, 0x8D, 0x5A, 0x07, 0x92, 0x04, 0x48, -0x08, 0x49, 0x01, 0x4A, 0x07, 0xD2, 0x07, 0x93, -0xFF, 0x6A, 0x4C, 0xEB, 0x03, 0x73, 0x58, 0x67, -0x07, 0xD3, 0x08, 0xD2, 0xD6, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF1, 0x18, 0x9A, 0x06, 0x94, -0x78, 0x67, 0xF0, 0x67, 0x00, 0x6D, 0xDE, 0x6E, -0x04, 0xD3, 0x80, 0x18, 0x8D, 0x5A, 0x08, 0x92, -0x06, 0x94, 0xF0, 0x67, 0x01, 0x6D, 0xDE, 0x6E, -0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, 0x0D, 0x97, -0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF2, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0xFF, 0x68, 0x8C, 0xE8, 0xE9, 0xF5, 0x79, 0xA2, +0x06, 0xD2, 0x04, 0x32, 0x07, 0xD2, 0x08, 0xD3, +0x07, 0x93, 0x30, 0xF0, 0x20, 0x69, 0x08, 0x6A, +0x4D, 0xEB, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, +0xC3, 0x67, 0x07, 0xD3, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF2, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x99, 0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x24, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0x18, 0x4A, -0x40, 0x9A, 0x30, 0xF0, 0x21, 0x68, 0x12, 0xF5, -0x08, 0x48, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, -0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, -0x04, 0x6B, 0x90, 0x67, 0x00, 0x6D, 0x33, 0x6E, -0x0F, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x8D, 0x5A, -0x90, 0x67, 0xF1, 0x67, 0x03, 0x6A, 0x00, 0x6D, -0x3E, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, 0x4C, 0x9A, -0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, 0x3F, 0x6E, -0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, 0x00, 0x6B, -0xA3, 0x67, 0x90, 0x67, 0xF1, 0x67, 0xEF, 0x6E, -0x04, 0xD3, 0x80, 0x18, 0x8D, 0x5A, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF2, 0x18, 0x4A, 0x40, 0x9A, -0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, 0xEF, 0x6E, -0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, 0x04, 0x6B, -0x90, 0x67, 0x01, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, -0x04, 0xD3, 0x80, 0x18, 0x8D, 0x5A, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF5, 0x50, 0x9A, 0x90, 0x67, -0xF1, 0x67, 0x01, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0x8D, 0x5A, 0x90, 0x67, 0xF1, 0x67, -0x00, 0x6A, 0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0x8D, 0x5A, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF2, 0x18, 0x4B, 0x60, 0x9B, 0x90, 0x67, -0xF1, 0x67, 0x00, 0x6D, 0xEF, 0x6E, 0x04, 0xD3, -0x80, 0x18, 0x8D, 0x5A, 0x90, 0x67, 0x06, 0x6A, -0x00, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0x8D, 0x5A, 0x03, 0x6B, 0x90, 0x67, -0xF1, 0x67, 0x00, 0x6D, 0x3E, 0x6E, 0x04, 0xD3, -0x80, 0x18, 0x8D, 0x5A, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF5, 0x54, 0x9A, 0x90, 0x67, 0xF1, 0x67, -0x00, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, -0x8D, 0x5A, 0x00, 0x6A, 0x90, 0x67, 0xF1, 0x67, -0xA2, 0x67, 0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, -0x8D, 0x5A, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, -0x18, 0x4B, 0x60, 0x9B, 0x90, 0x67, 0xF1, 0x67, -0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, -0x8D, 0x5A, 0x90, 0x67, 0x06, 0x6A, 0x01, 0x6D, -0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0x8D, 0x5A, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, -0x58, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, -0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, -0x00, 0x6B, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, -0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x8D, 0x5A, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0x18, 0x4A, -0x40, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, -0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, -0x07, 0x6B, 0x90, 0x67, 0x00, 0x6D, 0x33, 0x6E, -0x0F, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x8D, 0x5A, -0x90, 0x67, 0xF1, 0x67, 0x03, 0x6A, 0x00, 0x6D, -0x3E, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, 0x5C, 0x9A, -0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, 0x3F, 0x6E, -0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, 0x00, 0x6B, -0xA3, 0x67, 0x90, 0x67, 0xF1, 0x67, 0xEF, 0x6E, -0x04, 0xD3, 0x80, 0x18, 0x8D, 0x5A, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF2, 0x18, 0x4A, 0x40, 0x9A, -0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, 0xEF, 0x6E, -0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, 0x07, 0x6B, -0x90, 0x67, 0x01, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, -0x04, 0xD3, 0x80, 0x18, 0x8D, 0x5A, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF5, 0x40, 0x9A, 0x90, 0x67, -0xF1, 0x67, 0x01, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0x8D, 0x5A, 0x90, 0x67, 0xF1, 0x67, -0x00, 0x6A, 0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0x8D, 0x5A, 0x00, 0x6B, 0xA3, 0x67, -0x90, 0x67, 0xF1, 0x67, 0x19, 0x6E, 0x04, 0xD3, -0x80, 0x18, 0x8D, 0x5A, 0x90, 0x67, 0xF1, 0x67, -0x00, 0x6A, 0x01, 0x6D, 0x19, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0x8D, 0x5A, 0x09, 0x97, 0x08, 0x91, -0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xED, 0x06, 0xD4, -0x07, 0xD5, 0x01, 0x68, 0x00, 0x69, 0x85, 0xF5, -0x1C, 0x6C, 0xFF, 0x6D, 0x80, 0x18, 0x35, 0x25, -0x55, 0x72, 0x11, 0x61, 0x07, 0x92, 0x03, 0x2A, -0x00, 0x68, 0x50, 0x67, 0x17, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF3, 0xB0, 0x9A, 0x03, 0xF3, -0x08, 0x6C, 0xFF, 0x68, 0x80, 0x18, 0x35, 0x25, -0x4C, 0xE8, 0x00, 0x6A, 0x0B, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x64, 0x6C, -0x01, 0x49, 0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, -0x4C, 0xE9, 0x01, 0x6A, 0xA1, 0xF3, 0x18, 0x59, -0x02, 0x61, 0x01, 0x68, 0x01, 0x10, 0xD7, 0x2A, -0x06, 0x95, 0x30, 0xF0, 0x21, 0x69, 0x12, 0xF5, -0x08, 0x49, 0x91, 0x67, 0x00, 0x6A, 0x8F, 0x6E, -0x08, 0xF0, 0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0x8D, 0x5A, 0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x06, 0x95, 0x03, 0xF5, 0xE4, 0x9A, -0x91, 0x67, 0x00, 0x6E, 0x80, 0x18, 0x8D, 0x5A, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, -0x0A, 0x6C, 0x30, 0xF0, 0x20, 0x69, 0x40, 0xEA, -0x06, 0x92, 0x01, 0x6D, 0x08, 0x6B, 0x44, 0x36, -0xC0, 0xF3, 0x44, 0x99, 0x03, 0xF3, 0x00, 0x6C, -0xAB, 0xED, 0x6D, 0xEE, 0x40, 0xEA, 0x0A, 0x28, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, -0x23, 0xF3, 0x00, 0x6C, 0x83, 0xF3, 0xA4, 0x9B, -0x02, 0x6E, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x99, 0x83, 0xF3, 0xA4, 0x9B, -0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, -0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x00, 0x6A, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x00, 0x68, 0x05, 0xD5, 0x04, 0xD4, 0x05, 0x92, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x04, 0x4B, -0xE0, 0x9B, 0xC0, 0x9A, 0x30, 0xF0, 0x21, 0x69, -0x12, 0xF5, 0x08, 0x49, 0x91, 0x67, 0x00, 0x6D, -0x80, 0x18, 0x1A, 0x5A, 0x04, 0x93, 0x91, 0x67, -0x01, 0x6D, 0x40, 0xDB, 0x05, 0x92, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF3, 0x04, 0x4B, 0xE0, 0x9B, -0xC0, 0x9A, 0x01, 0x48, 0x80, 0x18, 0x1A, 0x5A, -0x04, 0x93, 0x41, 0xDB, 0xFF, 0x6A, 0x4C, 0xE8, -0x05, 0x92, 0x08, 0x4B, 0x03, 0x70, 0x04, 0x4A, -0x05, 0xD2, 0x04, 0xD3, 0xD8, 0x61, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x69, 0x04, 0x67, 0x30, 0xF0, 0x20, 0x6A, -0x2C, 0xE8, 0xC0, 0xF3, 0x44, 0x9A, 0x08, 0x6B, -0x04, 0x36, 0x01, 0x6D, 0x6D, 0xEE, 0x03, 0xF3, +0xC0, 0xF3, 0x44, 0x99, 0x3F, 0x6D, 0xC5, 0x67, +0xC3, 0xF3, 0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0x07, 0x96, 0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF3, 0xE4, 0x9A, 0x30, 0xF0, -0x21, 0x6C, 0x12, 0xF5, 0x08, 0x4C, 0xB0, 0x67, -0x58, 0x6E, 0x80, 0x18, 0x1A, 0x5A, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF5, 0x64, 0x9B, 0x4C, 0xEB, -0x62, 0x33, 0x7A, 0x33, 0x2C, 0xEB, 0x0B, 0x23, -0x3F, 0x73, 0x09, 0x60, 0x07, 0xF7, 0x00, 0x6B, -0x4C, 0xEB, 0x62, 0x32, 0x2C, 0xEA, 0x03, 0x22, -0x3F, 0x72, 0x00, 0x6A, 0x56, 0x61, 0x30, 0xF0, -0x21, 0x69, 0x12, 0xF5, 0x08, 0x49, 0x00, 0x6A, -0x91, 0x67, 0xB0, 0x67, 0x57, 0x6E, 0x01, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, 0x01, 0x6A, -0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, 0x10, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, 0x30, 0xF0, -0x21, 0x6A, 0x34, 0xF7, 0x50, 0xA2, 0x01, 0x22, -0x20, 0x6A, 0x91, 0x67, 0x30, 0xF0, 0x21, 0x69, -0x12, 0xF5, 0x08, 0x49, 0xB0, 0x67, 0x33, 0x6E, -0x7F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, -0x20, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, -0x07, 0xF7, 0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0x8D, 0x5A, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF5, -0xE4, 0x9A, 0x20, 0x6B, 0x91, 0x67, 0xB0, 0x67, -0x08, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x8D, 0x5A, +0x20, 0x6B, 0x83, 0xF3, 0xB4, 0x9B, 0xC0, 0xF3, +0x44, 0x99, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x30, 0xF0, +0x21, 0x69, 0x12, 0xF5, 0x08, 0x49, 0x23, 0xF3, +0x00, 0x6C, 0xE0, 0xF3, 0x00, 0x6D, 0x12, 0x6E, +0x40, 0xEA, 0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0xDF, 0x6E, 0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x00, 0x6B, 0x91, 0x67, 0xB0, 0x67, +0x9E, 0x6E, 0x20, 0x6F, 0x04, 0xD3, 0x80, 0x18, +0x12, 0x59, 0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x9E, 0x6E, 0x00, 0xF4, 0x00, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x06, 0x93, 0xE9, 0xF5, +0x78, 0xA3, 0x06, 0xD3, 0x35, 0x2B, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF1, 0x1C, 0x4B, 0xE0, 0x9B, +0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x81, 0xF0, +0x07, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, +0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0xEF, 0x6E, 0x04, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, +0x1C, 0x4A, 0x06, 0x93, 0xE0, 0x9A, 0x91, 0x67, +0xB0, 0x67, 0x18, 0x6E, 0x04, 0xD3, 0x80, 0x18, +0x12, 0x59, 0x04, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x08, 0x6E, 0x70, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x06, 0x93, 0x04, 0xD3, 0x3C, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0x1C, 0x4B, +0xE0, 0x9B, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0xDE, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x61, 0xF0, 0x08, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF1, 0x1C, 0x4A, 0xE0, 0x9A, 0x01, 0x6B, +0x91, 0x67, 0xB0, 0x67, 0x18, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x00, 0x6B, 0x91, 0x67, +0xB0, 0x67, 0x33, 0x6E, 0x01, 0x6F, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x04, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x08, 0x6E, 0x70, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x00, 0x6A, 0x04, 0xD2, +0x91, 0x67, 0x30, 0xF0, 0x21, 0x69, 0xB0, 0x67, +0xEF, 0x6E, 0x04, 0x6F, 0x12, 0xF5, 0x08, 0x49, +0x80, 0x18, 0x12, 0x59, 0x00, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x57, 0x6E, 0x01, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0xEF, 0x6E, 0x10, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x21, 0x6A, +0x34, 0xF7, 0x50, 0xA2, 0x01, 0x22, 0x20, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, 0x7F, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0xC3, 0xF3, +0x0C, 0x6C, 0xFF, 0x6D, 0x09, 0x6E, 0x40, 0xEA, +0x08, 0x93, 0x06, 0x73, 0x0A, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, +0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x08, 0x6E, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, +0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF3, +0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF3, 0x04, 0x4A, 0xE0, 0x9A, 0x30, 0xF0, +0x21, 0x68, 0x00, 0x69, 0x12, 0xF5, 0x08, 0x48, +0x0E, 0xD4, 0x0F, 0xD5, 0x90, 0x67, 0xB1, 0x67, +0xEF, 0x6E, 0x04, 0xD1, 0x80, 0x18, 0x12, 0x59, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x04, 0x4B, +0xE0, 0x9B, 0x90, 0x67, 0x01, 0x6D, 0xEF, 0x6E, +0x04, 0xD1, 0x80, 0x18, 0x12, 0x59, 0x0E, 0x90, +0x0F, 0x91, 0x00, 0x6A, 0x07, 0xD2, 0x30, 0xF0, +0x21, 0x6B, 0x12, 0xF5, 0x08, 0x4B, 0x06, 0xD3, +0x40, 0x99, 0xC0, 0x98, 0x83, 0x67, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x04, 0x4A, -0xE0, 0x9A, 0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, -0x80, 0x18, 0x1A, 0x5A, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF3, 0x04, 0x4B, 0xE0, 0x9B, 0x91, 0x67, -0xB0, 0x67, 0x58, 0x6E, 0x80, 0x18, 0x1A, 0x5A, -0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, -0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, -0x01, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0xE0, 0x9A, 0x00, 0x6D, 0x80, 0x18, 0x12, 0x59, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x04, 0x4B, +0xC0, 0x98, 0x41, 0x99, 0xE0, 0x9B, 0x06, 0x94, +0x01, 0x6D, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x07, 0x92, 0x04, 0x48, 0x08, 0x49, 0x01, 0x4A, +0x07, 0xD2, 0x07, 0x93, 0xFF, 0x6A, 0x4C, 0xEB, +0x03, 0x73, 0x58, 0x67, 0x07, 0xD3, 0x08, 0xD2, +0xD6, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, +0x1C, 0x9A, 0x06, 0x94, 0x78, 0x67, 0xF0, 0x67, +0x00, 0x6D, 0xDE, 0x6E, 0x04, 0xD3, 0x80, 0x18, +0x12, 0x59, 0x08, 0x92, 0x06, 0x94, 0xF0, 0x67, +0x01, 0x6D, 0xDE, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0xA4, 0x9B, +0xC0, 0xF3, 0x44, 0x9A, 0xA3, 0xF3, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF3, 0x24, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF2, 0x1C, 0x4A, 0x40, 0x9A, 0x30, 0xF0, +0x21, 0x68, 0x12, 0xF5, 0x08, 0x48, 0x90, 0x67, +0xF1, 0x67, 0x00, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x04, 0x6B, 0x90, 0x67, +0x00, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x90, 0x67, 0xF1, 0x67, +0x03, 0x6A, 0x00, 0x6D, 0x3E, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF5, 0x5C, 0x9A, 0x90, 0x67, 0xF1, 0x67, +0x00, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x00, 0x6B, 0xA3, 0x67, 0x90, 0x67, +0xF1, 0x67, 0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, +0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, +0x1C, 0x4A, 0x40, 0x9A, 0x90, 0x67, 0xF1, 0x67, +0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x04, 0x6B, 0x90, 0x67, 0x01, 0x6D, +0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD3, 0x80, 0x18, +0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF5, +0x40, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, +0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x90, 0x67, 0xF1, 0x67, 0x00, 0x6A, 0x01, 0x6D, +0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0x1C, 0x4B, +0x60, 0x9B, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, +0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x12, 0x59, +0x90, 0x67, 0x06, 0x6A, 0x00, 0x6D, 0x33, 0x6E, +0x0F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x03, 0x6B, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, +0x3E, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x12, 0x59, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF5, 0x44, 0x9A, +0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, 0x3F, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x00, 0x6A, +0x90, 0x67, 0xF1, 0x67, 0xA2, 0x67, 0xEF, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF2, 0x1C, 0x4B, 0x60, 0x9B, +0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, 0xEF, 0x6E, +0x04, 0xD3, 0x80, 0x18, 0x12, 0x59, 0x90, 0x67, +0x06, 0x6A, 0x01, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF5, 0x48, 0x9A, 0x90, 0x67, +0xF1, 0x67, 0x01, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x00, 0x6B, 0x90, 0x67, +0xF1, 0x67, 0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF2, 0x1C, 0x4A, 0x40, 0x9A, 0x90, 0x67, +0xF1, 0x67, 0x00, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x07, 0x6B, 0x90, 0x67, +0x00, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x90, 0x67, 0xF1, 0x67, +0x03, 0x6A, 0x00, 0x6D, 0x3E, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF5, 0x4C, 0x9A, 0x90, 0x67, 0xF1, 0x67, +0x00, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x00, 0x6B, 0xA3, 0x67, 0x90, 0x67, +0xF1, 0x67, 0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, +0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, +0x1C, 0x4A, 0x40, 0x9A, 0x90, 0x67, 0xF1, 0x67, +0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x07, 0x6B, 0x90, 0x67, 0x01, 0x6D, +0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD3, 0x80, 0x18, +0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF5, +0x50, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, +0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x90, 0x67, 0xF1, 0x67, 0x00, 0x6A, 0x01, 0x6D, +0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x00, 0x6B, 0xA3, 0x67, 0x90, 0x67, 0xF1, 0x67, +0x19, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x12, 0x59, +0x90, 0x67, 0xF1, 0x67, 0x00, 0x6A, 0x01, 0x6D, +0x19, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, +0x4C, 0xED, 0x06, 0xD4, 0x07, 0xD5, 0x01, 0x68, +0x00, 0x69, 0x85, 0xF5, 0x1C, 0x6C, 0xFF, 0x6D, +0x80, 0x18, 0x0D, 0x28, 0x55, 0x72, 0x11, 0x61, +0x07, 0x92, 0x03, 0x2A, 0x00, 0x68, 0x50, 0x67, +0x17, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, +0xB0, 0x9A, 0x03, 0xF3, 0x08, 0x6C, 0xFF, 0x68, +0x80, 0x18, 0x0D, 0x28, 0x4C, 0xE8, 0x00, 0x6A, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x64, 0x6C, 0x01, 0x49, 0x40, 0xEA, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE9, 0x01, 0x6A, +0xA1, 0xF3, 0x18, 0x59, 0x02, 0x61, 0x01, 0x68, +0x01, 0x10, 0xD7, 0x2A, 0x06, 0x95, 0x30, 0xF0, +0x21, 0x69, 0x12, 0xF5, 0x08, 0x49, 0x91, 0x67, +0x00, 0x6A, 0x8F, 0x6E, 0x08, 0xF0, 0x00, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x01, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0x95, +0x03, 0xF5, 0xF4, 0x9A, 0x91, 0x67, 0x00, 0x6E, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x30, 0xF0, +0x20, 0x69, 0x40, 0xEA, 0x06, 0x92, 0x01, 0x6D, +0x08, 0x6B, 0x44, 0x36, 0xC0, 0xF3, 0x44, 0x99, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x6D, 0xEE, +0x40, 0xEA, 0x0A, 0x28, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, 0x00, 0x6C, +0x83, 0xF3, 0xA4, 0x9B, 0x02, 0x6E, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, +0x83, 0xF3, 0xA4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF3, 0x10, 0x6C, +0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x00, 0x6A, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x00, 0x68, 0x05, 0xD5, +0x04, 0xD4, 0x05, 0x92, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF3, 0x04, 0x4B, 0xE0, 0x9B, 0xC0, 0x9A, +0x30, 0xF0, 0x21, 0x69, 0x12, 0xF5, 0x08, 0x49, +0x91, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x9F, 0x58, +0x04, 0x93, 0x91, 0x67, 0x01, 0x6D, 0x40, 0xDB, +0x05, 0x92, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, +0x04, 0x4B, 0xE0, 0x9B, 0xC0, 0x9A, 0x01, 0x48, +0x80, 0x18, 0x9F, 0x58, 0x04, 0x93, 0x41, 0xDB, +0xFF, 0x6A, 0x4C, 0xE8, 0x05, 0x92, 0x08, 0x4B, +0x03, 0x70, 0x04, 0x4A, 0x05, 0xD2, 0x04, 0xD3, +0xD8, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x04, 0x67, +0x30, 0xF0, 0x20, 0x6A, 0x2C, 0xE8, 0xC0, 0xF3, +0x44, 0x9A, 0x08, 0x6B, 0x04, 0x36, 0x01, 0x6D, +0x6D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, +0xE4, 0x9A, 0x30, 0xF0, 0x21, 0x6C, 0x12, 0xF5, +0x08, 0x4C, 0xB0, 0x67, 0x58, 0x6E, 0x80, 0x18, +0x9F, 0x58, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF5, +0x74, 0x9B, 0x4C, 0xEB, 0x62, 0x33, 0x7A, 0x33, +0x2C, 0xEB, 0x0B, 0x23, 0x3F, 0x73, 0x09, 0x60, +0x07, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, 0x62, 0x32, +0x2C, 0xEA, 0x03, 0x22, 0x3F, 0x72, 0x00, 0x6A, +0x56, 0x61, 0x30, 0xF0, 0x21, 0x69, 0x12, 0xF5, +0x08, 0x49, 0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x57, 0x6E, 0x01, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0xEF, 0x6E, 0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x30, 0xF0, 0x21, 0x6A, 0x34, 0xF7, +0x50, 0xA2, 0x01, 0x22, 0x20, 0x6A, 0x91, 0x67, +0x30, 0xF0, 0x21, 0x69, 0x12, 0xF5, 0x08, 0x49, +0xB0, 0x67, 0x33, 0x6E, 0x7F, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x20, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x08, 0x6E, 0x07, 0xF7, 0x00, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF5, 0xF4, 0x9A, 0x20, 0x6B, +0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF3, 0x04, 0x4A, 0xE0, 0x9A, 0x91, 0x67, +0xB0, 0x67, 0x08, 0x6E, 0x80, 0x18, 0x9F, 0x58, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x04, 0x4B, +0xE0, 0x9B, 0x91, 0x67, 0xB0, 0x67, 0x58, 0x6E, +0x80, 0x18, 0x9F, 0x58, 0x00, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0xEF, 0x6E, 0x10, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x01, 0x6A, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x68, 0x0C, 0xEC, 0x01, 0x74, 0xAC, 0xE8, +0x80, 0xF0, 0x0B, 0x60, 0x07, 0x24, 0x02, 0x74, +0x80, 0xF0, 0x1D, 0x60, 0x03, 0x74, 0x80, 0xF0, +0x1E, 0x60, 0xA2, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0x6A, 0xF1, 0x78, 0x9A, +0x30, 0xF0, 0x21, 0x6C, 0x30, 0xF0, 0x21, 0x6D, +0x6A, 0xF1, 0x7C, 0xDA, 0x00, 0x6E, 0x30, 0xF0, +0x21, 0x6B, 0x30, 0xF0, 0x21, 0x6A, 0xD5, 0xF2, +0x08, 0x4C, 0xD5, 0xF2, 0x00, 0x4B, 0xB5, 0xF2, +0x1C, 0x4A, 0xB5, 0xF0, 0x0A, 0x4D, 0x04, 0xD6, +0xC0, 0x9C, 0x04, 0x97, 0x00, 0x69, 0xC2, 0xDC, +0xC0, 0xAB, 0xA5, 0xF0, 0x18, 0x4F, 0xE4, 0x37, +0xC2, 0xCB, 0xC0, 0xA2, 0x06, 0xD5, 0x05, 0xD1, +0xC2, 0xC2, 0x30, 0xF0, 0x20, 0x6E, 0x2B, 0xF1, +0x18, 0x4E, 0xFD, 0xE6, 0xC0, 0xA7, 0x22, 0x68, +0x04, 0x91, 0xC4, 0xC7, 0x05, 0x96, 0x18, 0xEE, +0x44, 0x6E, 0x12, 0xE8, 0xD8, 0xE9, 0x30, 0xF0, +0x20, 0x69, 0x2B, 0xF1, 0x18, 0x49, 0x12, 0xEE, +0xC1, 0xE0, 0xD0, 0x67, 0x49, 0xF7, 0x10, 0x4E, +0x6A, 0xF0, 0x00, 0x48, 0xD9, 0xE1, 0x01, 0xE1, +0x20, 0xAE, 0x80, 0xF0, 0x28, 0xCE, 0x20, 0xA8, +0x02, 0x4E, 0x80, 0xF0, 0x28, 0xC8, 0x06, 0x91, +0x02, 0x48, 0x2A, 0xEE, 0xF5, 0x61, 0x05, 0x96, +0x22, 0x49, 0x01, 0x4F, 0x01, 0x4E, 0x02, 0x76, +0x05, 0xD6, 0x06, 0xD1, 0xD7, 0x61, 0x04, 0x91, +0x04, 0x4C, 0x02, 0x4B, 0x01, 0x49, 0x02, 0x71, +0x04, 0xD1, 0x01, 0x4A, 0x44, 0x4D, 0xBC, 0x61, +0x30, 0xF0, 0x21, 0x6B, 0xB5, 0xF2, 0x1C, 0x4B, +0x44, 0x43, 0xA7, 0x43, 0x16, 0x4D, 0xC2, 0x67, +0x00, 0x6C, 0x80, 0xC3, 0x01, 0x4B, 0x00, 0x6C, +0xCA, 0xEB, 0x80, 0xCA, 0xFF, 0xF7, 0x88, 0xC2, +0x20, 0xF0, 0x85, 0xC2, 0xFF, 0xF7, 0x89, 0xC2, +0x20, 0xF0, 0x86, 0xC2, 0x80, 0xC5, 0x81, 0xC5, +0x82, 0xC5, 0x02, 0x4A, 0x03, 0x4D, 0xEC, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0x8A, 0xF1, 0x60, 0x9A, 0x6A, 0xF1, 0x78, 0xDA, +0x1F, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, +0xE4, 0x9A, 0x30, 0xF0, 0x21, 0x6C, 0xB0, 0x67, +0x12, 0xF5, 0x08, 0x4C, 0x58, 0x6E, 0x80, 0x18, +0x9F, 0x58, 0x62, 0xF4, 0x04, 0x48, 0x30, 0xF0, +0x20, 0x6B, 0x08, 0x30, 0x2B, 0xF1, 0x18, 0x4B, +0x6D, 0xE0, 0x40, 0xDB, 0x09, 0x10, 0x00, 0x6C, +0xB0, 0x67, 0xC4, 0x67, 0x03, 0x10, 0x01, 0x6C, +0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, 0x03, 0x0D, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x04, 0x67, 0x4C, 0xE8, 0xAC, 0xEA, 0x0E, 0x22, 0x08, 0x6A, 0x04, 0x31, 0x4D, 0xE9, 0x01, 0x6B, 0x44, 0x40, @@ -27740,14 +27542,14 @@ u8 array_mp_8822c_fw_nic[] = { 0x01, 0x6B, 0x44, 0x40, 0x64, 0xEA, 0x30, 0xF0, 0x21, 0x6A, 0x12, 0xF5, 0x08, 0x4A, 0x06, 0xD2, 0x6D, 0xE9, 0x04, 0x6A, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x06, 0x94, 0x03, 0xF5, 0xE4, 0x9A, -0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, 0x8D, 0x5A, +0x20, 0x6A, 0x06, 0x94, 0x03, 0xF5, 0xF4, 0x9A, +0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, 0x12, 0x59, 0x06, 0x94, 0x08, 0xF0, 0x00, 0x6F, 0x01, 0x6B, 0x8F, 0x6E, 0xB0, 0x67, 0x04, 0xD3, 0x80, 0x18, -0x8D, 0x5A, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x01, 0x6C, -0x80, 0x18, 0x08, 0x0C, 0x90, 0x67, 0x00, 0x6D, -0x80, 0x18, 0x70, 0x0B, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0x18, 0xDD, 0x0C, 0x90, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x45, 0x0C, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, 0xD1, 0x67, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, @@ -27756,11 +27558,11 @@ u8 array_mp_8822c_fw_nic[] = { 0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x21, 0x6C, 0xEF, 0x6E, 0x10, 0x6F, 0x00, 0x6A, 0x12, 0xF5, 0x08, 0x4C, 0xB0, 0x67, -0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, 0x01, 0x6D, -0x90, 0x67, 0x80, 0x18, 0x70, 0x0B, 0x00, 0x6C, -0x80, 0x18, 0x08, 0x0C, 0x90, 0x67, 0x00, 0x6D, -0x80, 0x18, 0x3E, 0x0F, 0x22, 0x67, 0x04, 0x2A, -0x01, 0x6C, 0xB0, 0x67, 0x00, 0x18, 0x52, 0xC2, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x01, 0x6D, +0x90, 0x67, 0x80, 0x18, 0x45, 0x0C, 0x00, 0x6C, +0x80, 0x18, 0xDD, 0x0C, 0x90, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x65, 0x10, 0x22, 0x67, 0x04, 0x2A, +0x01, 0x6C, 0xB0, 0x67, 0x80, 0x18, 0x08, 0x11, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x41, 0xE0, 0x09, 0xF6, 0x29, 0xC0, 0x51, 0x67, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, @@ -27782,8 +27584,8 @@ u8 array_mp_8822c_fw_nic[] = { 0x30, 0xF0, 0x21, 0x6A, 0x12, 0xF5, 0x08, 0x4A, 0x08, 0x69, 0x06, 0xD2, 0x6D, 0xE9, 0x06, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0x94, -0x03, 0xF5, 0xE4, 0x9A, 0xB0, 0x67, 0x00, 0x6E, -0x80, 0x18, 0x8D, 0x5A, 0x01, 0x6A, 0x25, 0x10, +0x03, 0xF5, 0xF4, 0x9A, 0xB0, 0x67, 0x00, 0x6E, +0x80, 0x18, 0x12, 0x59, 0x01, 0x6A, 0x25, 0x10, 0x08, 0x93, 0x00, 0x69, 0x02, 0x73, 0x2F, 0x61, 0x07, 0x94, 0x04, 0x24, 0xFF, 0x6A, 0x04, 0x33, 0x01, 0x4A, 0x03, 0x10, 0x0A, 0x4A, 0x04, 0x33, @@ -27791,21 +27593,21 @@ u8 array_mp_8822c_fw_nic[] = { 0x44, 0xEC, 0x4D, 0xEB, 0x30, 0xF0, 0x21, 0x6A, 0x12, 0xF5, 0x08, 0x4A, 0x06, 0xD2, 0x07, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0x94, -0x03, 0xF5, 0xE4, 0x9A, 0x08, 0x69, 0xB0, 0x67, -0x00, 0x6E, 0x6D, 0xE9, 0x80, 0x18, 0x8D, 0x5A, +0x03, 0xF5, 0xF4, 0x9A, 0x08, 0x69, 0xB0, 0x67, +0x00, 0x6E, 0x6D, 0xE9, 0x80, 0x18, 0x12, 0x59, 0x00, 0x6A, 0x06, 0x94, 0xB0, 0x67, 0x8F, 0x6E, 0x08, 0xF0, 0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0x8D, 0x5A, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x01, 0x6C, -0x80, 0x18, 0x08, 0x0C, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0x18, 0xDD, 0x0C, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0xD1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF3, 0x44, 0x9C, 0x01, 0x6D, 0xC1, 0x41, 0xAB, 0xED, 0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, 0x40, 0xEA, -0x01, 0x6D, 0x90, 0x67, 0x80, 0x18, 0x3E, 0x0F, -0x00, 0x6C, 0x06, 0xD2, 0x80, 0x18, 0x08, 0x0C, +0x01, 0x6D, 0x90, 0x67, 0x80, 0x18, 0x65, 0x10, +0x00, 0x6C, 0x06, 0xD2, 0x80, 0x18, 0xDD, 0x0C, 0x04, 0x32, 0x09, 0xD2, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x09, 0x93, 0x01, 0x6D, 0x08, 0x6E, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, @@ -27815,13 +27617,13 @@ u8 array_mp_8822c_fw_nic[] = { 0x06, 0x94, 0x44, 0x32, 0x2B, 0xF1, 0x18, 0x49, 0x29, 0xE2, 0x60, 0xC2, 0x48, 0x2C, 0x07, 0x92, 0x09, 0x22, 0x01, 0x6D, 0x23, 0xF3, 0x18, 0x4C, -0xAB, 0xED, 0x80, 0x18, 0x35, 0x25, 0x62, 0xF4, +0xAB, 0xED, 0x80, 0x18, 0x0D, 0x28, 0x62, 0xF4, 0x10, 0x48, 0x35, 0x10, 0x02, 0x6C, 0x38, 0x10, 0x08, 0x93, 0x02, 0x73, 0x38, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0xE4, 0x9A, 0x30, 0xF0, 0x21, 0x6C, 0x30, 0xF0, 0x20, 0x69, 0x2B, 0xF1, 0x18, 0x49, 0x12, 0xF5, 0x08, 0x4C, 0xB0, 0x67, -0x00, 0x6E, 0x80, 0x18, 0x1A, 0x5A, 0xE9, 0xF5, +0x00, 0x6E, 0x80, 0x18, 0x9F, 0x58, 0xE9, 0xF5, 0x9E, 0xA1, 0xFF, 0x6B, 0x56, 0x32, 0x6C, 0xEA, 0x80, 0x34, 0xC5, 0xF0, 0x64, 0x40, 0x8D, 0xEA, 0x64, 0x33, 0x09, 0x94, 0x2D, 0xE3, 0x40, 0xCB, @@ -27829,606 +27631,736 @@ u8 array_mp_8822c_fw_nic[] = { 0x60, 0xA4, 0x06, 0x94, 0x6A, 0xF1, 0x71, 0xC2, 0x12, 0x2C, 0x07, 0x92, 0x0C, 0x22, 0x01, 0x6D, 0x23, 0xF3, 0x1C, 0x4C, 0xAB, 0xED, 0x80, 0x18, -0x35, 0x25, 0x62, 0xF4, 0x12, 0x48, 0x08, 0x30, +0x0D, 0x28, 0x62, 0xF4, 0x12, 0x48, 0x08, 0x30, 0x25, 0xE0, 0x40, 0xD9, 0x04, 0x10, 0x03, 0x6C, -0xB0, 0x67, 0x00, 0x18, 0x52, 0xC2, 0x06, 0x92, +0xB0, 0x67, 0x80, 0x18, 0x08, 0x11, 0x06, 0x92, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x30, 0xF0, -0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0x00, 0x6B, -0x8C, 0xEA, 0xAA, 0xF1, 0x7C, 0xC0, 0x27, 0x2A, -0xE9, 0xF5, 0x5A, 0xA0, 0x24, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF3, 0xE4, 0x9A, 0x30, 0xF0, -0x21, 0x6C, 0x12, 0xF5, 0x08, 0x4C, 0x00, 0x6D, -0x18, 0x6E, 0x80, 0x18, 0x1A, 0x5A, 0x6A, 0xF1, -0x78, 0x98, 0x8A, 0xF1, 0x40, 0xD8, 0x00, 0x69, -0x4E, 0xEB, 0x05, 0x23, 0x6A, 0xF1, 0x7C, 0x98, -0x6E, 0xEA, 0x0D, 0x2A, 0x01, 0x69, 0x91, 0x67, -0x02, 0x6D, 0x80, 0x18, 0xD8, 0x53, 0x91, 0x67, -0x80, 0x18, 0xA7, 0x53, 0x01, 0x6B, 0x30, 0xF0, -0x21, 0x6A, 0xF5, 0xF2, 0x74, 0xC2, 0x30, 0xF0, -0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xAA, 0xF1, -0xDC, 0xA0, 0xC0, 0xF3, 0x44, 0x9A, 0xA3, 0xF1, -0xB8, 0x9B, 0xE3, 0xF3, 0x10, 0x6C, 0x40, 0xEA, -0xAA, 0xF1, 0x5C, 0xA0, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF1, 0xB4, 0x9A, 0x63, 0xF6, 0x1C, 0x6C, -0x80, 0x18, 0x35, 0x25, 0x06, 0x22, 0x01, 0x6B, -0x30, 0xF0, 0x21, 0x6A, 0xD5, 0xF2, 0x78, 0xC2, -0x04, 0x10, 0x30, 0xF0, 0x21, 0x6B, 0xD5, 0xF2, -0x58, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, -0xE4, 0x9A, 0x30, 0xF0, 0x21, 0x6C, 0x12, 0xF5, -0x08, 0x4C, 0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, -0x1A, 0x5A, 0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF1, -0x98, 0x9C, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, -0x18, 0x4B, 0x4C, 0xEC, 0x82, 0x34, 0x82, 0x34, -0x09, 0xF6, 0x86, 0xC3, 0x06, 0xF0, 0x00, 0x6C, -0x4C, 0xEC, 0x82, 0x34, 0x92, 0x34, 0x09, 0xF6, -0x47, 0xC3, 0x09, 0xF6, 0x88, 0xC3, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, 0x80, 0x18, -0xD6, 0x10, 0x03, 0x28, 0x00, 0x6C, 0xA4, 0x67, -0x07, 0x10, 0x01, 0x70, 0x03, 0x61, 0x00, 0x6C, -0x01, 0x6D, 0x02, 0x10, 0x00, 0x6C, 0x02, 0x6D, -0x80, 0x18, 0xD8, 0x53, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x24, 0x67, -0x4C, 0xE9, 0xAC, 0xEA, 0x01, 0x72, 0x43, 0x61, -0x44, 0x41, 0x01, 0x6B, 0x64, 0xEA, 0x00, 0xF2, -0x08, 0x6A, 0x4D, 0xEB, 0x04, 0x6A, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, 0xE4, 0x9A, -0x30, 0xF0, 0x21, 0x68, 0x12, 0xF5, 0x08, 0x48, -0x90, 0x67, 0xB1, 0x67, 0x00, 0x6E, 0x06, 0xD3, -0x80, 0x18, 0x8D, 0x5A, 0x01, 0x6C, 0x08, 0xF0, -0x00, 0x6F, 0xB1, 0x67, 0x04, 0xD4, 0x8F, 0x6E, -0x90, 0x67, 0x80, 0x18, 0x8D, 0x5A, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x30, 0xF0, -0x20, 0x68, 0x0A, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x06, 0x96, 0x01, 0x6D, 0x03, 0xF3, -0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x06, 0x96, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xAB, 0xED, -0x01, 0x4E, 0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, -0x01, 0x6C, 0x40, 0xEA, 0x91, 0x67, 0x01, 0x6D, -0x80, 0x18, 0x3E, 0x0F, 0xF0, 0x10, 0x02, 0x72, -0x01, 0x6A, 0xE0, 0xF0, 0x0C, 0x61, 0x30, 0xF0, -0x21, 0x6A, 0x34, 0xF7, 0x56, 0xA2, 0x00, 0x68, -0x09, 0x72, 0x0C, 0x60, 0x12, 0x72, 0x01, 0x68, -0x09, 0x60, 0x1B, 0x72, 0x02, 0x68, 0x06, 0x60, -0x24, 0x68, 0x4E, 0xE8, 0x01, 0x58, 0x18, 0x67, -0x04, 0x6A, 0x03, 0xE2, 0x24, 0x32, 0x08, 0xD2, -0x08, 0x93, 0x08, 0x6A, 0x30, 0xF0, 0x20, 0x6C, -0x4D, 0xEB, 0xC0, 0xF3, 0x44, 0x9C, 0x01, 0x6D, -0xC3, 0x67, 0x08, 0xD3, 0x03, 0xF3, 0x00, 0x6C, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x06, 0xD2, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x06, 0x93, -0x01, 0x6D, 0xAB, 0xED, 0xE9, 0xF5, 0xDE, 0xA3, -0xC3, 0xF3, 0x0C, 0x6C, 0x40, 0xEA, 0x44, 0x41, -0x01, 0x6C, 0x30, 0xF0, 0x20, 0x6B, 0x84, 0xEA, -0x00, 0xF3, 0x08, 0x6A, 0x4D, 0xEC, 0x80, 0xF3, -0x4C, 0x9B, 0x07, 0xD4, 0x0A, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF3, 0x44, 0x9C, -0x07, 0x96, 0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x07, 0x96, 0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, -0xAB, 0xED, 0x01, 0x4E, 0x03, 0xF3, 0x00, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0x80, 0xF3, -0x4C, 0x9C, 0xC8, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF3, 0x04, 0x4B, 0xE0, 0x9B, -0x30, 0xF0, 0x21, 0x6A, 0x12, 0xF5, 0x08, 0x4A, -0x82, 0x67, 0xB1, 0x67, 0x00, 0x6E, 0x07, 0xD2, -0x80, 0x18, 0x1A, 0x5A, 0x91, 0x67, 0x01, 0x6D, -0x80, 0x18, 0x3E, 0x0F, 0x01, 0x72, 0x0A, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF4, 0x1C, 0x4A, -0x41, 0xE0, 0x40, 0xA0, 0x06, 0x94, 0xE9, 0xF5, -0x5E, 0xC4, 0x70, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0x04, 0x4A, 0x07, 0x94, 0xE0, 0x9A, -0xB1, 0x67, 0x00, 0x6E, 0x80, 0x18, 0x1A, 0x5A, -0x30, 0xF0, 0x20, 0x6B, 0x22, 0x67, 0x08, 0x96, -0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, 0x03, 0xF3, -0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xE3, 0xF7, -0x00, 0x6A, 0x2C, 0xEA, 0x06, 0x93, 0x56, 0x34, -0x96, 0x32, 0x09, 0xF6, 0x40, 0xDB, 0x1F, 0x6A, -0x8C, 0xEA, 0x02, 0x5A, 0xFF, 0x6B, 0x0B, 0x60, -0x03, 0x70, 0x03, 0x60, 0x01, 0x48, 0x6C, 0xE8, -0x4F, 0x10, 0x06, 0x94, 0x01, 0x6B, 0x03, 0x68, -0xAA, 0xF1, 0x75, 0xC4, 0x49, 0x10, 0x0A, 0x5A, -0x0B, 0x61, 0x04, 0x20, 0xFF, 0x48, 0x6C, 0xE8, -0x01, 0x6B, 0x0B, 0x10, 0x06, 0x94, 0x01, 0x6B, -0xAA, 0xF1, 0x75, 0xC4, 0x01, 0x6B, 0x09, 0x10, -0x06, 0x94, 0x00, 0x6B, 0xAA, 0xF1, 0x75, 0xC4, -0x00, 0x6B, 0x03, 0x20, 0x04, 0x58, 0x01, 0x61, -0x03, 0x68, 0x30, 0xF0, 0x20, 0x6C, 0x2B, 0xF1, -0x18, 0x4C, 0xAA, 0xF1, 0xB5, 0xA4, 0x01, 0x5D, -0xB8, 0x67, 0xAB, 0xED, 0xAC, 0xEB, 0x30, 0xF0, -0x20, 0x6D, 0x82, 0xF4, 0x1C, 0x4D, 0xA1, 0xE0, -0xA0, 0xA0, 0xE9, 0xF5, 0xBE, 0xC4, 0x0F, 0x2B, -0xE9, 0xF5, 0xDE, 0xA4, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x64, 0x9B, 0xC0, 0x36, 0x01, 0x6D, -0x4D, 0xEE, 0xE3, 0xF3, 0x08, 0x6C, 0xAB, 0xED, -0x40, 0xEB, 0x00, 0x6A, 0x0C, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, -0xE3, 0xF3, 0x08, 0x6C, 0xAB, 0xED, 0xFF, 0xF7, -0x1F, 0x6E, 0x40, 0xEA, 0x01, 0x6A, 0x0D, 0x97, -0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, -0x01, 0x6B, 0xC8, 0x17, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x21, 0x6A, 0x34, 0xF7, -0x73, 0xA2, 0xFF, 0x68, 0x8C, 0xE8, 0x06, 0x5B, -0x01, 0x6A, 0x7C, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x68, 0x33, 0x62, 0xF4, 0x0C, 0x4A, 0x69, 0xE2, -0x40, 0x9A, 0x00, 0xEA, 0x90, 0x67, 0x80, 0x18, -0xE9, 0x0C, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, -0xE1, 0x0F, 0x62, 0x10, 0x90, 0x67, 0x80, 0x18, -0x97, 0x0C, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, -0x25, 0x10, 0x52, 0x22, 0x03, 0x6C, 0x98, 0xE8, -0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, -0x12, 0xEC, 0x71, 0xE4, 0xAA, 0xF1, 0xA2, 0xA4, -0x02, 0x5D, 0x04, 0x60, 0x01, 0x4D, 0xAA, 0xF1, -0xA2, 0xC4, 0xEB, 0x17, 0x61, 0xE0, 0x01, 0x6C, -0x39, 0x10, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, -0x2E, 0x0C, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x00, 0x6B, 0xAA, 0xF1, 0x75, 0xC2, -0x90, 0x67, 0x02, 0x6D, 0x80, 0x18, 0xFF, 0x10, -0x2F, 0x22, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0x34, -0x2B, 0xF1, 0x18, 0x4B, 0x6D, 0xE4, 0xAA, 0xF1, -0x8E, 0xA3, 0x0A, 0x5C, 0x25, 0x60, 0x01, 0x4C, -0xAA, 0xF1, 0x8E, 0xC3, 0xED, 0x17, 0x90, 0x67, -0x00, 0x6D, 0x80, 0x18, 0x2E, 0x0C, 0x90, 0x67, -0x02, 0x6D, 0x80, 0x18, 0x25, 0x10, 0x18, 0x22, -0x03, 0x6C, 0x98, 0xE8, 0x30, 0xF0, 0x20, 0x6B, -0x2B, 0xF1, 0x18, 0x4B, 0x12, 0xEC, 0x71, 0xE4, -0xAA, 0xF1, 0xA3, 0xA4, 0x02, 0x5D, 0x04, 0x60, -0x01, 0x4D, 0xAA, 0xF1, 0xA3, 0xC4, 0xEB, 0x17, -0x61, 0xE0, 0x02, 0x6C, 0x29, 0xF7, 0x94, 0xC0, -0x06, 0x6C, 0xE9, 0xF5, 0x9B, 0xC3, 0x12, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, -0xE9, 0xF5, 0x9B, 0xA3, 0x01, 0x4C, 0xF5, 0x17, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0xE9, 0xF5, 0x7B, 0xA2, 0x01, 0x4B, 0xE9, 0xF5, -0x7B, 0xC2, 0x01, 0x6A, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xEF, 0x00, 0x65, 0xF7, 0x63, 0x11, 0x62, +0x10, 0xD1, 0x0F, 0xD0, 0xFF, 0x6A, 0x04, 0x67, +0x4C, 0xE8, 0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE9, 0xF5, 0x79, 0xA2, -0xE9, 0xF5, 0x5C, 0xA2, 0x08, 0xD3, 0x06, 0x5A, -0x76, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x48, 0x32, -0x82, 0xF4, 0x04, 0x4B, 0x4D, 0xE3, 0x40, 0x9B, -0x00, 0xEA, 0x00, 0x6C, 0x80, 0x18, 0xA1, 0x11, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0xE9, 0xF5, 0x7B, 0xA2, 0x06, 0x73, 0xF5, 0x61, -0x2A, 0x10, 0x00, 0x6C, 0x80, 0x18, 0xD9, 0x0D, -0x00, 0x6C, 0xA4, 0x67, 0x37, 0x10, 0x00, 0x6C, -0x80, 0x18, 0xA1, 0x0D, 0x00, 0x6C, 0xA4, 0x67, -0x80, 0x18, 0x25, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x2B, 0xF1, 0x18, 0x4B, 0x09, 0xF6, 0x84, 0xA3, -0x01, 0x4C, 0x09, 0xF6, 0x84, 0xC3, 0x42, 0x22, -0xAA, 0xF1, 0x41, 0xA3, 0x03, 0x5A, 0x3E, 0x60, -0x01, 0x4A, 0xAA, 0xF1, 0x41, 0xC3, 0x43, 0x10, -0x01, 0x6C, 0x80, 0x18, 0xA1, 0x11, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE9, 0xF5, -0x7B, 0xA2, 0x06, 0x73, 0xF5, 0x61, 0xE9, 0xF5, -0x7C, 0xA2, 0x01, 0x4B, 0xE9, 0xF5, 0x7C, 0xC2, -0x78, 0x67, 0xE9, 0xF5, 0x7B, 0xC2, 0x09, 0xF6, -0x64, 0xA2, 0x01, 0x4B, 0x09, 0xF6, 0x64, 0xC2, -0x2A, 0x10, 0x01, 0x6C, 0x80, 0x18, 0xD9, 0x0D, -0x01, 0x6C, 0x00, 0x6D, 0x80, 0x18, 0xE1, 0x0F, -0x19, 0x10, 0x01, 0x6C, 0x80, 0x18, 0xA1, 0x0D, -0x01, 0x6C, 0x00, 0x6D, 0x80, 0x18, 0x25, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, -0x09, 0xF6, 0x84, 0xA3, 0x01, 0x4C, 0x09, 0xF6, -0x84, 0xC3, 0x08, 0x22, 0xAA, 0xF1, 0x44, 0xA3, -0x03, 0x5A, 0x04, 0x60, 0x01, 0x4A, 0xAA, 0xF1, -0x44, 0xC3, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xE9, 0xF5, 0x7C, 0xA2, -0x01, 0x4B, 0xE9, 0xF5, 0x7C, 0xC2, 0x30, 0xF0, -0x21, 0x6A, 0x34, 0xF7, 0x54, 0xA2, 0x06, 0x72, -0x80, 0xF0, 0x08, 0x61, 0x30, 0xF0, 0x21, 0x69, -0x00, 0x6A, 0xF5, 0xF2, 0x18, 0x49, 0x06, 0xD2, -0x06, 0x92, 0xFF, 0x6B, 0x30, 0xF0, 0x20, 0x68, -0x6C, 0xEA, 0x06, 0x93, 0x07, 0xD2, 0x01, 0x6D, -0x64, 0x36, 0xC0, 0xF3, 0x64, 0x98, 0x08, 0x6A, -0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, -0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, -0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, -0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0x08, 0x92, 0x06, 0x72, -0x1A, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, -0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, -0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xC0, 0x99, 0x01, 0x6D, 0x23, 0xF3, -0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x01, 0x6D, +0x30, 0xF0, 0x21, 0x6C, 0xF5, 0xF2, 0x18, 0x4C, +0x0D, 0xD3, 0x31, 0xF2, 0x62, 0x40, 0x6C, 0x33, +0x6D, 0xE2, 0x0C, 0xD5, 0x0A, 0xD3, 0x08, 0xD4, +0x00, 0x69, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF3, 0x04, 0x4B, 0xE0, 0x9B, 0xFF, 0x6A, +0x30, 0xF0, 0x21, 0x68, 0x12, 0xF5, 0x08, 0x48, +0x2C, 0xEA, 0x90, 0x67, 0xA2, 0x67, 0xDF, 0x6E, +0x06, 0xD2, 0x80, 0x18, 0x9F, 0x58, 0x10, 0x6B, +0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, +0x04, 0x4A, 0x06, 0x95, 0xE0, 0x9A, 0x90, 0x67, +0xDF, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x12, 0x59, +0x0A, 0x93, 0x06, 0x95, 0x90, 0x67, 0x40, 0x9B, +0x58, 0x6E, 0x30, 0xF0, 0x20, 0x68, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x04, 0x4A, +0xE0, 0x9A, 0x80, 0x18, 0x12, 0x59, 0xC0, 0xF3, +0x44, 0x98, 0x08, 0x6B, 0x24, 0x36, 0x01, 0x6D, +0x6D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, +0x0C, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x0D, 0x93, 0x06, 0x73, 0x1C, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF3, 0xB0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x08, 0x93, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xC0, 0x9B, 0x23, 0xF3, 0x18, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x08, 0x93, 0x01, 0x6D, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x1C, 0x6C, -0xAB, 0xED, 0xC2, 0x99, 0x21, 0x10, 0x30, 0xF0, +0xAB, 0xED, 0xC2, 0x9B, 0x21, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, -0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, -0x14, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, +0x18, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, 0x01, 0x6D, 0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF2, 0xA0, 0x9B, 0xC0, 0xF3, -0x44, 0x9A, 0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, -0x40, 0xEA, 0x03, 0x6A, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x07, 0x95, 0x03, 0xF5, 0xE4, 0x9A, -0x30, 0xF0, 0x21, 0x6C, 0x12, 0xF5, 0x08, 0x4C, -0x00, 0x6E, 0x80, 0x18, 0x8D, 0x5A, 0x06, 0x92, -0x04, 0x49, 0x01, 0x4A, 0x02, 0x72, 0x06, 0xD2, -0x7F, 0xF7, 0x1E, 0x61, 0x0D, 0x97, 0x0C, 0x91, -0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x30, 0xF0, 0x21, 0x6A, 0x34, 0xF7, 0x51, 0xA2, -0xFF, 0x69, 0x8C, 0xE9, 0x02, 0x72, 0x02, 0x6A, -0x05, 0xD2, 0x02, 0x60, 0x04, 0x6B, 0x05, 0xD3, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0x08, 0x6E, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, -0x40, 0xEA, 0x01, 0x6D, 0x03, 0xF3, 0x08, 0x6C, -0xAB, 0xED, 0x80, 0x18, 0x35, 0x25, 0x04, 0xD2, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, -0x06, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, 0x80, 0x6D, +0x40, 0xEA, 0x0C, 0x94, 0x06, 0x24, 0x00, 0x6A, +0x01, 0x74, 0x06, 0xD2, 0xC0, 0xF0, 0x05, 0x61, +0x62, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x83, 0xF3, +0xB4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x03, 0x6E, +0x40, 0xEA, 0x44, 0x6B, 0x78, 0xE9, 0x09, 0x94, +0x88, 0x6A, 0x00, 0x68, 0x12, 0xEB, 0x58, 0xEC, +0x12, 0xEA, 0x49, 0xE3, 0x30, 0xF0, 0x20, 0x6B, +0x49, 0xF7, 0x10, 0x4A, 0x2B, 0xF1, 0x18, 0x4B, +0x4D, 0xE3, 0x06, 0xD3, 0x06, 0x92, 0x01, 0x6D, +0xC3, 0xF3, 0x18, 0x6C, 0xC0, 0xAA, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF4, 0x58, 0x9A, 0xC0, 0x36, +0xAB, 0xED, 0x4D, 0xEE, 0x08, 0x32, 0x4D, 0xEE, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x02, 0x4E, 0x01, 0x48, 0x40, 0xEA, 0x06, 0x93, +0x11, 0x70, 0x02, 0x4B, 0x06, 0xD3, 0xE6, 0x61, +0x44, 0x6B, 0x78, 0xE9, 0x09, 0x94, 0x88, 0x6A, +0x00, 0x68, 0x12, 0xEB, 0x58, 0xEC, 0x12, 0xEA, +0x49, 0xE3, 0x30, 0xF0, 0x20, 0x6B, 0x6A, 0xF0, +0x00, 0x4A, 0x2B, 0xF1, 0x18, 0x4B, 0x4D, 0xE3, +0x06, 0xD3, 0x06, 0x92, 0x08, 0x33, 0x01, 0x6D, +0xC0, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF4, +0x58, 0x9A, 0xC0, 0x36, 0xC3, 0xF3, 0x18, 0x6C, +0x4D, 0xEE, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x6D, 0xEE, 0xAB, 0xED, 0x40, 0xEA, +0x06, 0x93, 0x01, 0x48, 0x11, 0x70, 0x02, 0x4B, +0x06, 0xD3, 0xE7, 0x61, 0xE7, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x83, 0xF3, 0xB4, 0x9B, 0x23, 0xF3, +0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x44, 0x6B, +0x78, 0xE9, 0x09, 0x94, 0x88, 0x6A, 0x00, 0x68, +0x12, 0xEB, 0x58, 0xEC, 0x12, 0xEA, 0x49, 0xE3, +0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF7, 0x12, 0x4A, +0x2B, 0xF1, 0x18, 0x4B, 0x4D, 0xE3, 0x06, 0xD3, +0x06, 0x92, 0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, +0xC0, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF4, +0x5C, 0x9A, 0xC0, 0x36, 0xAB, 0xED, 0x4D, 0xEE, +0x08, 0x32, 0x4D, 0xEE, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x02, 0x4E, 0x01, 0x48, +0x40, 0xEA, 0x06, 0x93, 0x11, 0x70, 0x02, 0x4B, +0x06, 0xD3, 0xE6, 0x61, 0x44, 0x6B, 0x78, 0xE9, +0x09, 0x94, 0x88, 0x6A, 0x00, 0x68, 0x12, 0xEB, +0x58, 0xEC, 0x12, 0xEA, 0x49, 0xE3, 0x30, 0xF0, +0x20, 0x6B, 0x8A, 0xF0, 0x02, 0x4A, 0x2B, 0xF1, +0x18, 0x4B, 0x4D, 0xE3, 0x06, 0xD3, 0x06, 0x92, +0x08, 0x33, 0x01, 0x6D, 0xC0, 0xAA, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF4, 0x5C, 0x9A, 0xC0, 0x36, +0xC3, 0xF3, 0x18, 0x6C, 0x4D, 0xEE, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x6D, 0xEE, +0xAB, 0xED, 0x40, 0xEA, 0x06, 0x93, 0x01, 0x48, +0x11, 0x70, 0x02, 0x4B, 0x06, 0xD3, 0xE7, 0x61, +0x85, 0x10, 0x06, 0x94, 0xFF, 0x6A, 0x8C, 0xEA, +0x11, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x83, 0xF3, +0xB4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x03, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF4, +0x58, 0x9A, 0x10, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x83, 0xF3, 0xB4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF4, 0x5C, 0x9A, 0x0B, 0xD2, 0x06, 0x92, +0x22, 0x6B, 0x09, 0x94, 0x78, 0xEA, 0x44, 0x6A, +0x00, 0x68, 0x12, 0xEB, 0x58, 0xE9, 0x12, 0xEA, +0x49, 0xE3, 0x88, 0x6B, 0x78, 0xEC, 0x12, 0xEB, +0x69, 0xE2, 0x30, 0xF0, 0x20, 0x6B, 0x49, 0xF7, +0x10, 0x4A, 0x2B, 0xF1, 0x18, 0x4B, 0x4D, 0xE3, +0x07, 0xD3, 0x07, 0x92, 0x0B, 0x93, 0x01, 0x6D, +0xC0, 0xAA, 0x08, 0x32, 0xC3, 0xF3, 0x18, 0x6C, +0xC0, 0x36, 0x6D, 0xEE, 0x4D, 0xEE, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0xAB, 0xED, +0x02, 0x4E, 0x40, 0xEA, 0x07, 0x94, 0x01, 0x48, +0x11, 0x70, 0x02, 0x4C, 0x07, 0xD4, 0xE9, 0x61, +0x06, 0x92, 0x22, 0x6B, 0x09, 0x94, 0x78, 0xEA, +0x44, 0x6A, 0x00, 0x68, 0x12, 0xEB, 0x58, 0xE9, +0x12, 0xEA, 0x49, 0xE3, 0x88, 0x6B, 0x78, 0xEC, +0x12, 0xEB, 0x69, 0xE2, 0x30, 0xF0, 0x20, 0x6B, +0x6A, 0xF0, 0x00, 0x4A, 0x2B, 0xF1, 0x18, 0x4B, +0x4D, 0xE3, 0x07, 0xD3, 0x07, 0x92, 0x0B, 0x93, +0x01, 0x6D, 0xC0, 0xAA, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0xC0, 0x36, 0x6D, 0xEE, +0x08, 0x33, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x6D, 0xEE, 0x40, 0xEA, 0x07, 0x94, 0x01, 0x48, +0x11, 0x70, 0x02, 0x4C, 0x07, 0xD4, 0xEA, 0x61, +0x06, 0x92, 0x01, 0x4A, 0x02, 0x72, 0x06, 0xD2, +0x7F, 0xF7, 0x1B, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0x63, 0xF3, 0xCC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF3, 0xB4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x00, 0x6B, 0x06, 0xD3, 0x06, 0x93, +0x06, 0x92, 0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6C, +0x8C, 0xEA, 0x64, 0x36, 0xC0, 0xF3, 0x64, 0x98, +0x07, 0xD2, 0x01, 0x6D, 0x08, 0x6A, 0x4D, 0xEE, +0x03, 0xF2, 0x01, 0x4C, 0xAB, 0xED, 0x40, 0xEB, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, 0xB0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x03, 0xF3, 0x00, 0x6C, 0x06, 0x6D, 0x01, 0x6E, +0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, +0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, +0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x03, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x07, 0x95, +0x03, 0xF5, 0xF4, 0x9A, 0x30, 0xF0, 0x21, 0x6C, +0x12, 0xF5, 0x08, 0x4C, 0x00, 0x6E, 0x80, 0x18, +0x12, 0x59, 0x06, 0x94, 0x01, 0x4C, 0x02, 0x74, +0x06, 0xD4, 0xA9, 0x61, 0x0A, 0x92, 0x08, 0x93, +0x01, 0x49, 0x04, 0x4A, 0x04, 0x4B, 0x02, 0x71, +0x0A, 0xD2, 0x08, 0xD3, 0xBF, 0xF5, 0x16, 0x61, +0x11, 0x97, 0x10, 0x91, 0x0F, 0x90, 0x09, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0x00, 0x6B, +0x8C, 0xEA, 0xAA, 0xF1, 0x7C, 0xC0, 0x2A, 0x2A, +0xE9, 0xF5, 0x5A, 0xA0, 0x27, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF3, 0xE4, 0x9A, 0x30, 0xF0, +0x21, 0x6C, 0x12, 0xF5, 0x08, 0x4C, 0x00, 0x6D, +0x18, 0x6E, 0x80, 0x18, 0x9F, 0x58, 0x6A, 0xF1, +0x78, 0x98, 0x8A, 0xF1, 0x40, 0xD8, 0x00, 0x69, +0x4E, 0xEB, 0x05, 0x23, 0x6A, 0xF1, 0x7C, 0x98, +0x6E, 0xEA, 0x10, 0x2A, 0x01, 0x69, 0x02, 0x6D, +0x91, 0x67, 0x80, 0x18, 0x33, 0x12, 0x91, 0x67, +0x80, 0x18, 0xE4, 0x08, 0x01, 0x6C, 0x80, 0x18, +0x15, 0x09, 0x01, 0x6B, 0x30, 0xF0, 0x21, 0x6A, +0xF5, 0xF2, 0x74, 0xC2, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x08, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x69, 0x30, 0xF0, 0x20, 0x6B, +0x2B, 0xF1, 0x18, 0x49, 0xA3, 0xF1, 0x1C, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xAA, 0xF1, +0xDC, 0xA1, 0xE3, 0xF3, 0x10, 0x6C, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x0A, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0x1C, 0x4B, +0xC0, 0xF3, 0x44, 0x98, 0xAA, 0xF1, 0xDC, 0xA1, +0xA0, 0x9B, 0xE3, 0xF3, 0x10, 0x6C, 0x40, 0xEA, +0xAA, 0xF1, 0x5C, 0xA1, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0xB8, 0x9A, +0x63, 0xF6, 0x1C, 0x6C, 0x80, 0x18, 0x0D, 0x28, +0x06, 0x22, 0x01, 0x6B, 0x30, 0xF0, 0x21, 0x6A, +0xD5, 0xF2, 0x78, 0xC2, 0x04, 0x10, 0x30, 0xF0, +0x21, 0x6B, 0xD5, 0xF2, 0x58, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF3, 0x04, 0x4A, 0xE0, 0x9A, +0x30, 0xF0, 0x21, 0x68, 0x12, 0xF5, 0x08, 0x48, +0x90, 0x67, 0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, +0x9F, 0x58, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, +0x04, 0x4B, 0xE0, 0x9B, 0x90, 0x67, 0x00, 0x6D, +0x18, 0x6E, 0x22, 0x67, 0x80, 0x18, 0x9F, 0x58, +0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, +0x8A, 0xF1, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF1, 0x5C, 0x9A, 0x09, 0xF6, 0x27, 0xC3, +0x2C, 0xEA, 0x42, 0x32, 0x42, 0x32, 0x09, 0xF6, +0x46, 0xC3, 0x06, 0xF0, 0x00, 0x6A, 0x2C, 0xEA, +0x42, 0x32, 0x52, 0x32, 0x09, 0xF6, 0x48, 0xC3, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, 0x80, 0x18, +0xA0, 0x13, 0x00, 0x6C, 0x80, 0x18, 0x15, 0x09, +0x03, 0x28, 0x00, 0x6C, 0xA4, 0x67, 0x07, 0x10, +0x01, 0x70, 0x03, 0x61, 0x00, 0x6C, 0x01, 0x6D, +0x02, 0x10, 0x00, 0x6C, 0x02, 0x6D, 0x80, 0x18, +0x33, 0x12, 0x01, 0x6C, 0x80, 0x18, 0x15, 0x09, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x24, 0x67, 0x4C, 0xE9, 0xAC, 0xEA, +0x01, 0x72, 0x43, 0x61, 0x44, 0x41, 0x01, 0x6B, +0x64, 0xEA, 0x00, 0xF2, 0x08, 0x6A, 0x4D, 0xEB, +0x04, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF5, 0xF4, 0x9A, 0x30, 0xF0, 0x21, 0x68, +0x12, 0xF5, 0x08, 0x48, 0x90, 0x67, 0xB1, 0x67, +0x00, 0x6E, 0x06, 0xD3, 0x80, 0x18, 0x12, 0x59, +0x01, 0x6C, 0x08, 0xF0, 0x00, 0x6F, 0xB1, 0x67, +0x04, 0xD4, 0x8F, 0x6E, 0x90, 0x67, 0x80, 0x18, +0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x0A, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x06, 0x96, +0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x06, 0x96, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xAB, 0xED, 0x01, 0x4E, 0x03, 0xF3, +0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, 0x40, 0xEA, +0x91, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x65, 0x10, +0xF0, 0x10, 0x02, 0x72, 0x01, 0x6A, 0xE0, 0xF0, +0x0C, 0x61, 0x30, 0xF0, 0x21, 0x6A, 0x34, 0xF7, +0x56, 0xA2, 0x00, 0x68, 0x09, 0x72, 0x0C, 0x60, +0x12, 0x72, 0x01, 0x68, 0x09, 0x60, 0x1B, 0x72, +0x02, 0x68, 0x06, 0x60, 0x24, 0x68, 0x4E, 0xE8, +0x01, 0x58, 0x18, 0x67, 0x04, 0x6A, 0x03, 0xE2, +0x24, 0x32, 0x08, 0xD2, 0x08, 0x93, 0x08, 0x6A, +0x30, 0xF0, 0x20, 0x6C, 0x4D, 0xEB, 0xC0, 0xF3, +0x44, 0x9C, 0x01, 0x6D, 0xC3, 0x67, 0x08, 0xD3, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9B, 0x06, 0x93, 0x01, 0x6D, 0xAB, 0xED, +0xE9, 0xF5, 0xDE, 0xA3, 0xC3, 0xF3, 0x0C, 0x6C, +0x40, 0xEA, 0x44, 0x41, 0x01, 0x6C, 0x30, 0xF0, +0x20, 0x6B, 0x84, 0xEA, 0x00, 0xF3, 0x08, 0x6A, +0x4D, 0xEC, 0x80, 0xF3, 0x4C, 0x9B, 0x07, 0xD4, +0x0A, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0xC0, 0xF3, 0x44, 0x9C, 0x07, 0x96, 0x01, 0x6D, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x07, 0x96, 0xC0, 0xF3, +0x44, 0x9B, 0x01, 0x6D, 0xAB, 0xED, 0x01, 0x4E, +0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6C, 0x80, 0xF3, 0x4C, 0x9C, 0xC8, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, +0x04, 0x4B, 0xE0, 0x9B, 0x30, 0xF0, 0x21, 0x6A, +0x12, 0xF5, 0x08, 0x4A, 0x82, 0x67, 0xB1, 0x67, +0x00, 0x6E, 0x07, 0xD2, 0x80, 0x18, 0x9F, 0x58, +0x91, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x65, 0x10, +0x01, 0x72, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF4, 0x1C, 0x4A, 0x41, 0xE0, 0x40, 0xA0, +0x06, 0x94, 0xE9, 0xF5, 0x5E, 0xC4, 0x70, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x04, 0x4A, +0x07, 0x94, 0xE0, 0x9A, 0xB1, 0x67, 0x00, 0x6E, +0x80, 0x18, 0x9F, 0x58, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0x67, 0x08, 0x96, 0xC0, 0xF3, 0x44, 0x9B, +0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0xE3, 0xF7, 0x00, 0x6A, 0x2C, 0xEA, +0x06, 0x93, 0x56, 0x34, 0x96, 0x32, 0x09, 0xF6, +0x40, 0xDB, 0x1F, 0x6A, 0x8C, 0xEA, 0x02, 0x5A, +0xFF, 0x6B, 0x0B, 0x60, 0x03, 0x70, 0x03, 0x60, +0x01, 0x48, 0x6C, 0xE8, 0x4F, 0x10, 0x06, 0x94, +0x01, 0x6B, 0x03, 0x68, 0xAA, 0xF1, 0x75, 0xC4, +0x49, 0x10, 0x0A, 0x5A, 0x0B, 0x61, 0x04, 0x20, +0xFF, 0x48, 0x6C, 0xE8, 0x01, 0x6B, 0x0B, 0x10, +0x06, 0x94, 0x01, 0x6B, 0xAA, 0xF1, 0x75, 0xC4, +0x01, 0x6B, 0x09, 0x10, 0x06, 0x94, 0x00, 0x6B, +0xAA, 0xF1, 0x75, 0xC4, 0x00, 0x6B, 0x03, 0x20, +0x04, 0x58, 0x01, 0x61, 0x03, 0x68, 0x30, 0xF0, +0x20, 0x6C, 0x2B, 0xF1, 0x18, 0x4C, 0xAA, 0xF1, +0xB5, 0xA4, 0x01, 0x5D, 0xB8, 0x67, 0xAB, 0xED, +0xAC, 0xEB, 0x30, 0xF0, 0x20, 0x6D, 0x82, 0xF4, +0x1C, 0x4D, 0xA1, 0xE0, 0xA0, 0xA0, 0xE9, 0xF5, +0xBE, 0xC4, 0x0F, 0x2B, 0xE9, 0xF5, 0xDE, 0xA4, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x64, 0x9B, +0xC0, 0x36, 0x01, 0x6D, 0x4D, 0xEE, 0xE3, 0xF3, +0x08, 0x6C, 0xAB, 0xED, 0x40, 0xEB, 0x00, 0x6A, +0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x01, 0x6D, 0xE3, 0xF3, 0x08, 0x6C, +0xAB, 0xED, 0xFF, 0xF7, 0x1F, 0x6E, 0x40, 0xEA, +0x01, 0x6A, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0x01, 0x6B, 0xC8, 0x17, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x21, 0x6A, 0x34, 0xF7, 0x73, 0xA2, 0xFF, 0x68, +0x8C, 0xE8, 0x06, 0x5B, 0x01, 0x6A, 0x7C, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x68, 0x33, 0x62, 0xF4, +0x0C, 0x4A, 0x69, 0xE2, 0x40, 0x9A, 0x00, 0xEA, +0x90, 0x67, 0x80, 0x18, 0x10, 0x0E, 0x90, 0x67, +0x01, 0x6D, 0x80, 0x18, 0x65, 0x11, 0x62, 0x10, +0x90, 0x67, 0x80, 0x18, 0xBE, 0x0D, 0x90, 0x67, +0x01, 0x6D, 0x80, 0x18, 0xA9, 0x11, 0x52, 0x22, +0x03, 0x6C, 0x98, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0x2B, 0xF1, 0x18, 0x4B, 0x12, 0xEC, 0x71, 0xE4, +0xAA, 0xF1, 0xA2, 0xA4, 0x02, 0x5D, 0x04, 0x60, +0x01, 0x4D, 0xAA, 0xF1, 0xA2, 0xC4, 0xEB, 0x17, +0x61, 0xE0, 0x01, 0x6C, 0x39, 0x10, 0x90, 0x67, +0x01, 0x6D, 0x80, 0x18, 0x55, 0x0D, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x00, 0x6B, +0xAA, 0xF1, 0x75, 0xC2, 0x90, 0x67, 0x02, 0x6D, +0x80, 0x18, 0xD6, 0x13, 0x2F, 0x22, 0x30, 0xF0, +0x20, 0x6B, 0x04, 0x34, 0x2B, 0xF1, 0x18, 0x4B, +0x6D, 0xE4, 0xAA, 0xF1, 0x8E, 0xA3, 0x0A, 0x5C, +0x25, 0x60, 0x01, 0x4C, 0xAA, 0xF1, 0x8E, 0xC3, +0xED, 0x17, 0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, +0x55, 0x0D, 0x90, 0x67, 0x02, 0x6D, 0x80, 0x18, +0xA9, 0x11, 0x18, 0x22, 0x03, 0x6C, 0x98, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, +0x12, 0xEC, 0x71, 0xE4, 0xAA, 0xF1, 0xA3, 0xA4, +0x02, 0x5D, 0x04, 0x60, 0x01, 0x4D, 0xAA, 0xF1, +0xA3, 0xC4, 0xEB, 0x17, 0x61, 0xE0, 0x02, 0x6C, +0x29, 0xF7, 0x94, 0xC0, 0x06, 0x6C, 0xE9, 0xF5, +0x9B, 0xC3, 0x12, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x2B, 0xF1, 0x18, 0x4B, 0xE9, 0xF5, 0x9B, 0xA3, +0x01, 0x4C, 0xF5, 0x17, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0xE9, 0xF5, 0x7B, 0xA2, +0x01, 0x4B, 0xE9, 0xF5, 0x7B, 0xC2, 0x01, 0x6A, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0xE9, 0xF5, 0x79, 0xA2, 0xE9, 0xF5, 0x5C, 0xA2, +0x08, 0xD3, 0x06, 0x5A, 0x76, 0x60, 0x30, 0xF0, +0x20, 0x6B, 0x48, 0x32, 0x82, 0xF4, 0x04, 0x4B, +0x4D, 0xE3, 0x40, 0x9B, 0x00, 0xEA, 0x00, 0x6C, +0x80, 0x18, 0x78, 0x14, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0xE9, 0xF5, 0x7B, 0xA2, +0x06, 0x73, 0xF5, 0x61, 0x2A, 0x10, 0x00, 0x6C, +0x80, 0x18, 0x00, 0x0F, 0x00, 0x6C, 0xA4, 0x67, +0x37, 0x10, 0x00, 0x6C, 0x80, 0x18, 0xC8, 0x0E, +0x00, 0x6C, 0xA4, 0x67, 0x80, 0x18, 0xA9, 0x11, +0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, +0x09, 0xF6, 0x84, 0xA3, 0x01, 0x4C, 0x09, 0xF6, +0x84, 0xC3, 0x42, 0x22, 0xAA, 0xF1, 0x41, 0xA3, +0x03, 0x5A, 0x3E, 0x60, 0x01, 0x4A, 0xAA, 0xF1, +0x41, 0xC3, 0x43, 0x10, 0x01, 0x6C, 0x80, 0x18, +0x78, 0x14, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0xE9, 0xF5, 0x7B, 0xA2, 0x06, 0x73, +0xF5, 0x61, 0xE9, 0xF5, 0x7C, 0xA2, 0x01, 0x4B, +0xE9, 0xF5, 0x7C, 0xC2, 0x78, 0x67, 0xE9, 0xF5, +0x7B, 0xC2, 0x09, 0xF6, 0x64, 0xA2, 0x01, 0x4B, +0x09, 0xF6, 0x64, 0xC2, 0x2A, 0x10, 0x01, 0x6C, +0x80, 0x18, 0x00, 0x0F, 0x01, 0x6C, 0x00, 0x6D, +0x80, 0x18, 0x65, 0x11, 0x19, 0x10, 0x01, 0x6C, +0x80, 0x18, 0xC8, 0x0E, 0x01, 0x6C, 0x00, 0x6D, +0x80, 0x18, 0xA9, 0x11, 0x30, 0xF0, 0x20, 0x6B, +0x2B, 0xF1, 0x18, 0x4B, 0x09, 0xF6, 0x84, 0xA3, +0x01, 0x4C, 0x09, 0xF6, 0x84, 0xC3, 0x08, 0x22, +0xAA, 0xF1, 0x44, 0xA3, 0x03, 0x5A, 0x04, 0x60, +0x01, 0x4A, 0xAA, 0xF1, 0x44, 0xC3, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0xE9, 0xF5, 0x7C, 0xA2, 0x01, 0x4B, 0xE9, 0xF5, +0x7C, 0xC2, 0x30, 0xF0, 0x21, 0x6A, 0x34, 0xF7, +0x54, 0xA2, 0x06, 0x72, 0x80, 0xF0, 0x08, 0x61, +0x30, 0xF0, 0x21, 0x69, 0x00, 0x6A, 0xF5, 0xF2, +0x18, 0x49, 0x06, 0xD2, 0x06, 0x92, 0xFF, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0x6C, 0xEA, 0x06, 0x93, +0x07, 0xD2, 0x01, 0x6D, 0x64, 0x36, 0xC0, 0xF3, +0x64, 0x98, 0x08, 0x6A, 0x4D, 0xEE, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF2, 0xA4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, +0x0C, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x08, 0x92, 0x06, 0x72, 0x1A, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF3, 0xB0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x99, +0x01, 0x6D, 0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x01, 0x6D, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, 0xC2, 0x99, +0x21, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, +0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, +0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF1, 0x18, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF1, 0x18, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xC0, 0x9B, 0x01, 0x6D, 0x23, 0xF3, +0x1C, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, +0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, 0xA3, 0xF3, +0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x03, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x07, 0x95, +0x03, 0xF5, 0xF4, 0x9A, 0x30, 0xF0, 0x21, 0x6C, +0x12, 0xF5, 0x08, 0x4C, 0x00, 0x6E, 0x80, 0x18, +0x12, 0x59, 0x06, 0x92, 0x04, 0x49, 0x01, 0x4A, +0x02, 0x72, 0x06, 0xD2, 0x7F, 0xF7, 0x1E, 0x61, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x21, 0x6A, +0x34, 0xF7, 0x51, 0xA2, 0xFF, 0x69, 0x8C, 0xE9, +0x02, 0x72, 0x02, 0x6A, 0x05, 0xD2, 0x02, 0x60, +0x04, 0x6B, 0x05, 0xD3, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x08, 0x6E, 0x03, 0xF3, +0x00, 0x6C, 0x0F, 0x6D, 0x40, 0xEA, 0x01, 0x6D, +0x03, 0xF3, 0x08, 0x6C, 0xAB, 0xED, 0x80, 0x18, +0x0D, 0x28, 0x04, 0xD2, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x00, 0x6C, 0x06, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, 0x80, 0x6D, 0x01, 0x6E, 0x40, 0xEA, -0x00, 0x68, 0x91, 0x67, 0x80, 0x18, 0xE7, 0x11, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0xE9, 0xF5, 0x7C, 0xA2, 0x06, 0x73, 0x0B, 0x60, -0x05, 0x21, 0x09, 0xF6, 0x44, 0xA2, 0x05, 0x93, -0x6E, 0xEA, 0x05, 0x22, 0x01, 0x48, 0xFF, 0x6A, -0x4C, 0xE8, 0x64, 0x70, 0xEA, 0x61, 0x30, 0xF0, -0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, -0x00, 0x6C, 0x06, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, 0x03, 0xF3, -0x08, 0x69, 0x01, 0x6D, 0x91, 0x67, 0xAB, 0xED, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, -0x00, 0x6C, 0x06, 0x6D, 0x01, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, 0x01, 0x6D, -0x91, 0x67, 0xAB, 0xED, 0x40, 0xEA, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0xE4, 0x9A, 0x30, 0xF0, 0x21, 0x6C, -0x12, 0xF5, 0x08, 0x4C, 0x00, 0x6D, 0x18, 0x6E, -0x80, 0x18, 0x1A, 0x5A, 0x30, 0xF0, 0x20, 0x6B, -0x06, 0xF0, 0x00, 0x6C, 0x2B, 0xF1, 0x18, 0x4B, -0x4C, 0xEC, 0x8A, 0xF1, 0x40, 0xDB, 0x82, 0x32, -0x52, 0x32, 0x02, 0x72, 0x0A, 0x60, 0x03, 0x6C, -0x4E, 0xEC, 0x04, 0x24, 0x01, 0x72, 0x02, 0x6A, -0x07, 0x60, 0x05, 0x10, 0xE9, 0xF5, 0x99, 0xC3, -0x05, 0x10, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, -0xE9, 0xF5, 0x59, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF1, 0x78, 0x9B, 0x8A, 0xF1, 0x80, 0x9A, -0x8C, 0xEB, 0x62, 0x33, 0x62, 0x33, 0xE9, 0xF5, -0x78, 0xC2, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xF1, 0x63, 0x1D, 0x62, 0x1C, 0xD1, 0x1B, 0xD0, -0x08, 0xA4, 0x02, 0x6A, 0x01, 0x69, 0x0C, 0xEA, -0x46, 0x32, 0x18, 0xD2, 0x80, 0x18, 0x27, 0x08, -0x80, 0x18, 0xB0, 0x12, 0x80, 0x18, 0xD6, 0x10, -0x90, 0x67, 0x2C, 0xEC, 0x00, 0x6D, 0x80, 0x18, -0xAF, 0x10, 0x80, 0xF0, 0x03, 0x2A, 0x30, 0xF0, -0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0xE9, 0xF5, -0x7A, 0xA0, 0xE9, 0xF5, 0x5C, 0xC0, 0xE9, 0xF5, -0x5B, 0xC0, 0x01, 0x4B, 0xE9, 0xF5, 0x7A, 0xC0, -0x09, 0xF6, 0x44, 0xC0, 0x09, 0xF6, 0x25, 0xC0, -0x38, 0x6C, 0x80, 0x18, 0xC3, 0x0B, 0x00, 0x6C, -0xAA, 0xF1, 0x58, 0xD8, 0xA4, 0x67, 0x00, 0x18, -0x52, 0xC2, 0x30, 0xF0, 0x20, 0x6E, 0x30, 0xF0, -0x20, 0x6F, 0x04, 0x04, 0x0D, 0x05, 0x82, 0xF0, -0x10, 0x4E, 0x82, 0xF0, 0x1C, 0x4F, 0x80, 0x18, -0x13, 0x0C, 0x30, 0xF0, 0x20, 0x6D, 0x07, 0x04, -0xE2, 0xF0, 0x10, 0x4D, 0x80, 0x18, 0x80, 0x0F, -0x00, 0x68, 0x80, 0x18, 0x39, 0x0B, 0x01, 0x6C, -0x80, 0x18, 0x7C, 0x08, 0x18, 0x94, 0x80, 0x18, -0x74, 0x12, 0x00, 0x6C, 0x80, 0x18, 0x7C, 0x08, -0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF0, 0x10, 0x4C, -0x07, 0x05, 0x80, 0x18, 0x72, 0x0E, 0x30, 0xF0, -0x20, 0x6E, 0x30, 0xF0, 0x20, 0x6F, 0x04, 0x04, -0x0D, 0x05, 0x82, 0xF0, 0x10, 0x4E, 0x82, 0xF0, -0x1C, 0x4F, 0x80, 0x18, 0xF6, 0x0A, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE9, 0xF5, -0x7C, 0xA2, 0x06, 0x73, 0x0E, 0x60, 0xFF, 0x6B, -0x01, 0x48, 0x6C, 0xE8, 0x00, 0x6B, 0x09, 0xF6, -0x64, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x48, 0x9A, 0x32, 0x6C, 0x40, 0xEA, 0x03, 0x70, -0xCC, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x00, 0x6C, -0x80, 0x18, 0xA7, 0x53, 0xC0, 0xF3, 0x44, 0x98, -0x03, 0xF3, 0x00, 0x6C, 0xFF, 0x6D, 0x08, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, -0x10, 0x69, 0x91, 0x67, 0xFF, 0x6D, 0xAA, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, -0x00, 0x6C, 0xFF, 0x6D, 0x0A, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0xFF, 0x6D, -0xAA, 0x6E, 0x40, 0xEA, 0x1D, 0x97, 0x1C, 0x91, -0x1B, 0x90, 0x00, 0x6A, 0x0F, 0x63, 0x00, 0xEF, -0xF2, 0x63, 0x1B, 0x62, 0x1A, 0xD0, 0x30, 0xF0, -0x20, 0x6D, 0x04, 0x67, 0x02, 0xF5, 0x1C, 0x4D, -0x04, 0x04, 0x54, 0x6E, 0x00, 0x18, 0xEC, 0xD7, -0x00, 0x6A, 0x26, 0x20, 0x70, 0x67, 0x01, 0x73, -0x03, 0x60, 0x66, 0x33, 0x01, 0x4A, 0xFB, 0x17, -0x01, 0x6C, 0x01, 0x4A, 0x64, 0x67, 0x04, 0x10, -0x01, 0x4B, 0xFF, 0x6D, 0x84, 0x34, 0xAC, 0xEB, -0x63, 0xEA, 0xFA, 0x60, 0x64, 0x6B, 0x78, 0xE8, -0x05, 0x6D, 0x12, 0xE8, 0x9B, 0xE8, 0x01, 0x2C, -0xE5, 0xE8, 0x12, 0xEC, 0xBB, 0xEC, 0x01, 0x2D, -0xE5, 0xE8, 0x12, 0xEC, 0x15, 0x5C, 0x78, 0xEA, -0x12, 0xEA, 0x01, 0x61, 0x14, 0x6C, 0x7D, 0x67, -0x88, 0x34, 0x91, 0xE3, 0x64, 0x9C, 0x6B, 0xE2, -0x1B, 0x97, 0x1A, 0x90, 0x0E, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x26, 0x67, 0xC3, 0xF4, -0xD8, 0x9B, 0x05, 0x67, 0x01, 0x6D, 0x0D, 0xD7, -0x63, 0xF5, 0x10, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x00, 0x6A, 0x04, 0xD2, 0x0E, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xA8, 0xC0, 0x99, 0xC0, 0xF3, -0x44, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, -0x04, 0x93, 0x04, 0x48, 0x04, 0x49, 0x01, 0x4B, -0x04, 0xD3, 0x04, 0x92, 0x0D, 0x93, 0x63, 0xEA, -0xEE, 0x61, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, -0x0C, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xC3, 0xF3, 0x14, 0x6C, 0xF0, 0x6D, 0x04, 0x6E, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, +0x06, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, 0x80, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0x00, 0x68, 0x91, 0x67, +0x80, 0x18, 0xBE, 0x14, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0xE9, 0xF5, 0x7C, 0xA2, +0x06, 0x73, 0x0B, 0x60, 0x05, 0x21, 0x09, 0xF6, +0x44, 0xA2, 0x05, 0x93, 0x6E, 0xEA, 0x05, 0x22, +0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, 0x64, 0x70, +0xEA, 0x61, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x06, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x04, 0x96, 0x03, 0xF3, 0x08, 0x69, 0x01, 0x6D, +0x91, 0x67, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x06, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x04, 0x96, 0x01, 0x6D, 0x91, 0x67, 0xAB, 0xED, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, -0xC0, 0xF3, 0x44, 0x99, 0xFF, 0x68, 0xAC, 0xE8, -0xD0, 0x67, 0xA3, 0xF0, 0x04, 0x6C, 0x80, 0x6D, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xD0, 0x67, -0xA8, 0xF1, 0x04, 0x6C, 0x80, 0x6D, 0x40, 0xEA, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x68, 0x23, 0xF5, 0x28, 0x9A, -0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0x00, 0x6C, -0xB1, 0x67, 0x1F, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xB1, 0x67, 0xA8, 0xF1, 0x00, 0x6C, -0x1F, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF5, 0x2C, 0x9A, 0xC0, 0xF3, 0x44, 0x98, -0xE3, 0xF0, 0x08, 0x6C, 0xB1, 0x67, 0x1F, 0x6E, +0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0xE4, 0x9A, +0x30, 0xF0, 0x21, 0x6C, 0x12, 0xF5, 0x08, 0x4C, +0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, 0x9F, 0x58, +0x30, 0xF0, 0x20, 0x6B, 0x06, 0xF0, 0x00, 0x6C, +0x2B, 0xF1, 0x18, 0x4B, 0x4C, 0xEC, 0x8A, 0xF1, +0x40, 0xDB, 0x82, 0x32, 0x52, 0x32, 0x02, 0x72, +0x0A, 0x60, 0x03, 0x6C, 0x4E, 0xEC, 0x04, 0x24, +0x01, 0x72, 0x02, 0x6A, 0x07, 0x60, 0x05, 0x10, +0xE9, 0xF5, 0x99, 0xC3, 0x05, 0x10, 0x01, 0x6A, +0x01, 0x10, 0x00, 0x6A, 0xE9, 0xF5, 0x59, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0x7C, 0x9B, +0x8A, 0xF1, 0x80, 0x9A, 0x8C, 0xEB, 0x62, 0x33, +0x62, 0x33, 0xE9, 0xF5, 0x78, 0xC2, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xF1, 0x63, 0x1D, 0x62, +0x1C, 0xD1, 0x1B, 0xD0, 0x08, 0xA4, 0x02, 0x6A, +0x01, 0x69, 0x0C, 0xEA, 0x46, 0x32, 0x18, 0xD2, +0x80, 0x18, 0x3A, 0x08, 0x80, 0x18, 0x87, 0x15, +0x80, 0x18, 0xA0, 0x13, 0x00, 0x6C, 0x80, 0x18, +0x15, 0x09, 0x90, 0x67, 0x2C, 0xEC, 0x00, 0x6D, +0x80, 0x18, 0x69, 0x13, 0x80, 0xF0, 0x00, 0x2A, +0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, +0xE9, 0xF5, 0x7A, 0xA0, 0xE9, 0xF5, 0x5C, 0xC0, +0xE9, 0xF5, 0x5B, 0xC0, 0x01, 0x4B, 0xE9, 0xF5, +0x7A, 0xC0, 0x09, 0xF6, 0x44, 0xC0, 0x09, 0xF6, +0x25, 0xC0, 0x38, 0x6C, 0x80, 0x18, 0x98, 0x0C, +0x00, 0x6C, 0xAA, 0xF1, 0x58, 0xD8, 0xA4, 0x67, +0x80, 0x18, 0x08, 0x11, 0x30, 0xF0, 0x20, 0x6E, +0x30, 0xF0, 0x20, 0x6F, 0x04, 0x04, 0x0D, 0x05, +0x82, 0xF0, 0x10, 0x4E, 0x82, 0xF0, 0x1C, 0x4F, +0x80, 0x18, 0xE8, 0x0C, 0x30, 0xF0, 0x20, 0x6D, +0x07, 0x04, 0xE2, 0xF0, 0x10, 0x4D, 0x80, 0x18, +0xA7, 0x10, 0x00, 0x68, 0x80, 0x18, 0x0E, 0x0C, +0x01, 0x6C, 0x80, 0x18, 0x51, 0x09, 0x18, 0x94, +0x80, 0x18, 0x4B, 0x15, 0x00, 0x6C, 0x80, 0x18, +0x51, 0x09, 0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF0, +0x10, 0x4C, 0x07, 0x05, 0x80, 0x18, 0x99, 0x0F, +0x30, 0xF0, 0x20, 0x6E, 0x30, 0xF0, 0x20, 0x6F, +0x04, 0x04, 0x0D, 0x05, 0x82, 0xF0, 0x10, 0x4E, +0x82, 0xF0, 0x1C, 0x4F, 0x80, 0x18, 0xCB, 0x0B, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0xE9, 0xF5, 0x7C, 0xA2, 0x06, 0x73, 0x08, 0x60, +0xFF, 0x6B, 0x01, 0x48, 0x6C, 0xE8, 0x03, 0x70, +0x00, 0x6B, 0x09, 0xF6, 0x64, 0xC2, 0xD2, 0x61, +0x30, 0xF0, 0x20, 0x68, 0x00, 0x6C, 0x80, 0x18, +0xE4, 0x08, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x00, 0x6C, 0xFF, 0x6D, 0x08, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x10, 0x69, +0x91, 0x67, 0xFF, 0x6D, 0xAA, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, +0xFF, 0x6D, 0x0A, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0xFF, 0x6D, 0xAA, 0x6E, +0x40, 0xEA, 0x01, 0x6C, 0x80, 0x18, 0x15, 0x09, +0x1D, 0x97, 0x1C, 0x91, 0x1B, 0x90, 0x00, 0x6A, +0x0F, 0x63, 0x00, 0xEF, 0xF2, 0x63, 0x1B, 0x62, +0x1A, 0xD0, 0x30, 0xF0, 0x20, 0x6D, 0x04, 0x67, +0x02, 0xF5, 0x1C, 0x4D, 0x04, 0x04, 0x54, 0x6E, +0x00, 0x18, 0x42, 0xD7, 0x00, 0x6A, 0x26, 0x20, +0x70, 0x67, 0x01, 0x73, 0x03, 0x60, 0x66, 0x33, +0x01, 0x4A, 0xFB, 0x17, 0x01, 0x6C, 0x01, 0x4A, +0x64, 0x67, 0x04, 0x10, 0x01, 0x4B, 0xFF, 0x6D, +0x84, 0x34, 0xAC, 0xEB, 0x63, 0xEA, 0xFA, 0x60, +0x64, 0x6B, 0x78, 0xE8, 0x05, 0x6D, 0x12, 0xE8, +0x9B, 0xE8, 0x01, 0x2C, 0xE5, 0xE8, 0x12, 0xEC, +0xBB, 0xEC, 0x01, 0x2D, 0xE5, 0xE8, 0x12, 0xEC, +0x15, 0x5C, 0x78, 0xEA, 0x12, 0xEA, 0x01, 0x61, +0x14, 0x6C, 0x7D, 0x67, 0x88, 0x34, 0x91, 0xE3, +0x64, 0x9C, 0x6B, 0xE2, 0x1B, 0x97, 0x1A, 0x90, +0x0E, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x26, 0x67, 0xE3, 0xF4, 0xC8, 0x9B, 0x05, 0x67, +0x01, 0x6D, 0x0D, 0xD7, 0x63, 0xF5, 0x10, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x00, 0x6A, 0x04, 0xD2, +0x0E, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xA8, +0xC0, 0x99, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, +0xAB, 0xED, 0x40, 0xEA, 0x04, 0x93, 0x04, 0x48, +0x04, 0x49, 0x01, 0x4B, 0x04, 0xD3, 0x04, 0x92, +0x0D, 0x93, 0x63, 0xEA, 0xEE, 0x61, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x00, 0x6C, 0x0F, 0x6D, 0x0C, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x14, 0x6C, +0xF0, 0x6D, 0x04, 0x6E, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, +0xFF, 0x68, 0xAC, 0xE8, 0xD0, 0x67, 0xA3, 0xF0, +0x04, 0x6C, 0x80, 0x6D, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0xD0, 0x67, 0xA8, 0xF1, 0x04, 0x6C, +0x80, 0x6D, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x68, +0x23, 0xF5, 0x38, 0x9A, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x1F, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, -0xE8, 0xF1, 0x08, 0x6C, 0x1F, 0x6E, 0x40, 0xEA, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, -0x08, 0xD4, 0x80, 0xF1, 0x16, 0x22, 0x30, 0xF0, -0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, -0x2B, 0xE9, 0x23, 0xF4, 0x18, 0x6C, 0xB1, 0x67, -0xD1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, -0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0x04, 0x4B, +0xA8, 0xF1, 0x00, 0x6C, 0x1F, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF5, 0x3C, 0x9A, +0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF0, 0x08, 0x6C, +0xB1, 0x67, 0x1F, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0xE8, 0xF1, 0x08, 0x6C, +0x1F, 0x6E, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0xAC, 0xEA, 0x08, 0xD4, 0x80, 0xF1, +0x16, 0x22, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF4, +0x18, 0x6C, 0xB1, 0x67, 0xD1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, -0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0x14, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, -0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, 0x04, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, -0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, 0x14, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, -0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0x00, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, -0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0x0C, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, -0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0x1C, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, -0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, 0x0C, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, -0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, 0x1C, 0x4B, -0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x63, 0xF4, 0x1C, 0x4B, -0x70, 0x12, 0x08, 0x93, 0x60, 0xF0, 0x5B, 0xA3, -0xE0, 0xF0, 0x1B, 0x22, 0x30, 0xF0, 0x20, 0x68, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, -0x23, 0xF4, 0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x08, 0x92, 0x04, 0x6B, 0x63, 0xF0, 0x00, 0x6C, -0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, -0x0E, 0xF0, 0x00, 0x6D, 0x67, 0xEE, 0xC3, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, -0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x08, 0x92, 0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, -0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, -0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF4, 0x08, 0x4B, 0x60, 0x9B, -0x6D, 0xEE, 0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, -0x23, 0xF0, 0x10, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, -0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, -0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, -0x0C, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, -0x08, 0x92, 0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, -0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, -0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF4, 0x10, 0x4B, 0x60, 0x9B, -0x6D, 0xEE, 0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, -0x23, 0xF0, 0x10, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, -0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, -0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, -0x14, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, 0x18, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x08, 0x92, -0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0x80, 0xF0, -0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, -0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF4, 0x1C, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, -0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x08, 0x92, 0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, -0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, -0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF4, 0x08, 0x4B, 0x60, 0x9B, -0x6D, 0xEE, 0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, -0x28, 0xF1, 0x10, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, -0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, -0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, -0x0C, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, -0x08, 0x92, 0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, -0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, -0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF4, 0x10, 0x4B, 0x60, 0x9B, -0x6D, 0xEE, 0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, -0x28, 0xF1, 0x10, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, -0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, -0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, -0x14, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, 0x18, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x08, 0x92, -0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, 0x80, 0xF0, -0xD1, 0xA2, 0xB1, 0x67, 0xC0, 0xF3, 0x44, 0x98, -0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF4, 0x1C, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, -0xA7, 0x10, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF5, 0xD0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF4, -0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x43, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0x1C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, +0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, 0x0C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, 0x1C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, +0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, 0x0C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, +0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0x14, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, 0x04, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, +0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, 0x14, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, 0x04, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF4, 0x0C, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xC0, 0x9B, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x83, 0xF4, 0x0C, 0x4B, 0x70, 0x12, 0x08, 0x93, +0x60, 0xF0, 0x5B, 0xA3, 0xE0, 0xF0, 0x1B, 0x22, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF4, 0xD0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF4, 0x18, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, +0x63, 0xF0, 0x00, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, +0xC0, 0xF3, 0x44, 0x98, 0x0E, 0xF0, 0x00, 0x6D, +0x67, 0xEE, 0xC3, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, +0x23, 0xF0, 0x10, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, +0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, +0x18, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, +0x08, 0x92, 0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, +0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF4, 0x1C, 0x4B, 0x60, 0x9B, +0x6D, 0xEE, 0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, +0x23, 0xF0, 0x10, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, +0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x00, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, +0x08, 0x92, 0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, +0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x04, 0x4B, 0x60, 0x9B, +0x6D, 0xEE, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, 0x23, 0xF0, +0x10, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x0C, 0x4B, +0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, +0x28, 0xF1, 0x10, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, +0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, +0x18, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, +0x08, 0x92, 0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, +0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF4, 0x1C, 0x4B, 0x60, 0x9B, +0x6D, 0xEE, 0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, +0x28, 0xF1, 0x10, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, +0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x00, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, +0x08, 0x92, 0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, +0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x04, 0x4B, 0x60, 0x9B, +0x6D, 0xEE, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, 0x28, 0xF1, +0x10, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, 0xB1, 0x67, +0xC0, 0xF3, 0x44, 0x98, 0x67, 0xEE, 0xC3, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x0C, 0x4B, +0x60, 0x9B, 0x6D, 0xEE, 0xA7, 0x10, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF5, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, +0x2B, 0xE9, 0x23, 0xF4, 0x18, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, +0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, -0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, +0x20, 0x6B, 0xC3, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, -0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, 0x04, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x83, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, -0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x0C, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF4, 0x10, 0x4B, 0xC0, 0xF3, 0x44, 0x98, -0xC0, 0x9B, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x68, 0xA3, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x18, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, -0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, 0x08, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, -0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, @@ -28437,1613 +28369,1653 @@ u8 array_mp_8822c_fw_nic[] = { 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, -0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, 0x04, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, 0x00, 0x4B, +0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0xC3, 0xF4, +0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0xC3, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, +0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, -0x10, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, +0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x30, 0xF0, 0x20, 0x6B, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0xC3, 0xF4, -0x14, 0x4B, 0xC0, 0x9B, 0x40, 0xEA, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xED, 0x1E, 0xF0, -0x01, 0x4D, 0x6C, 0xED, 0x02, 0x5D, 0x6C, 0xEE, -0x09, 0x61, 0x02, 0xF0, 0x00, 0x76, 0x06, 0x60, -0xE1, 0xF7, 0x1F, 0x6A, 0x4E, 0xEE, 0x01, 0x5E, -0x58, 0x67, 0x20, 0xE8, 0x01, 0x6A, 0x20, 0xE8, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x6A, 0xAC, 0xEA, 0x50, 0x6B, 0x78, 0xEA, -0xE0, 0xF0, 0x68, 0x44, 0x24, 0x67, 0x12, 0xEA, -0x90, 0xF0, 0x08, 0x42, 0x4D, 0xE3, 0x01, 0xE4, -0x04, 0xD3, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF5, -0xB4, 0x9A, 0x40, 0x98, 0xE3, 0xF7, 0x1F, 0x6E, -0x91, 0x67, 0x4C, 0xED, 0xA2, 0x35, 0xA2, 0x35, -0x4C, 0xEE, 0x80, 0x18, 0x8A, 0x15, 0x02, 0x22, -0x00, 0x6A, 0x05, 0x10, 0x04, 0x92, 0x04, 0x48, -0x4A, 0xE8, 0xEB, 0x61, 0x01, 0x6A, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0x4C, 0xED, -0x4C, 0xEE, 0x01, 0x69, 0xC0, 0xF3, 0x44, 0x98, -0x2B, 0xE9, 0x0C, 0xD4, 0x05, 0xD5, 0x06, 0xD6, -0xB1, 0x67, 0x03, 0xF3, 0x00, 0x6C, 0x0C, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, -0xC3, 0xF3, 0x14, 0x6C, 0xF0, 0x6E, 0x40, 0xEA, -0x05, 0x93, 0x50, 0x6A, 0x03, 0xF3, 0x0C, 0x68, -0x58, 0xEB, 0x0C, 0x93, 0x00, 0x69, 0x12, 0xEA, -0x7F, 0x4A, 0x19, 0x4A, 0x49, 0xE3, 0x04, 0xD2, -0x05, 0x92, 0x90, 0x67, 0x05, 0x22, 0x87, 0x40, -0x51, 0x4C, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEC, -0x06, 0x93, 0x0A, 0x2B, 0x03, 0x71, 0x03, 0x60, -0xE3, 0xF7, 0x1F, 0x6E, 0x07, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF5, 0xD8, 0x9A, 0x02, 0x10, -0x04, 0x92, 0xC0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, 0xAB, 0xED, -0x40, 0xEA, 0x04, 0x93, 0xFF, 0x6A, 0x01, 0x49, -0x4C, 0xE9, 0x04, 0x4B, 0x04, 0x48, 0xFF, 0xF7, -0x1F, 0x6A, 0x14, 0x71, 0x04, 0xD3, 0x4C, 0xE8, -0xD7, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0x20, 0xE8, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0xC0, 0xF3, 0x44, 0x98, 0x24, 0x67, 0x0F, 0x6D, -0x03, 0xF3, 0x00, 0x6C, 0x0C, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0x14, 0x4B, -0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x60, 0xF0, -0xD9, 0xA1, 0x03, 0xF3, 0x08, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0x14, 0x4B, -0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, 0x60, 0xF0, -0xD9, 0xA1, 0x63, 0xF3, 0x00, 0x6C, 0x40, 0xEA, -0x60, 0xF0, 0x58, 0xA1, 0x2C, 0x22, 0x60, 0xF0, -0x5E, 0xA9, 0x01, 0x6B, 0x6C, 0xEA, 0x10, 0x22, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, -0x18, 0xF0, 0x00, 0x6D, 0xC3, 0x67, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x20, 0xF1, 0xD8, 0xA9, -0x03, 0xF3, 0x04, 0x6C, 0xFF, 0x6D, 0x40, 0xEA, -0x60, 0xF0, 0x5E, 0xA9, 0x02, 0x6B, 0x6C, 0xEA, -0x3C, 0x22, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, -0x44, 0x98, 0x63, 0xF3, 0x00, 0x6C, 0x18, 0xF0, -0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x43, 0xF3, 0x1C, 0x6C, 0xFF, 0x6D, -0x20, 0xF1, 0xDA, 0xA9, 0x29, 0x10, 0x60, 0xF0, -0x5E, 0xA9, 0x01, 0x6B, 0x6C, 0xEA, 0x0F, 0x22, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, -0x18, 0xF0, 0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x04, 0x6C, -0xFF, 0x6D, 0x5B, 0x6E, 0x40, 0xEA, 0x60, 0xF0, -0x5E, 0xA9, 0x02, 0x6B, 0x6C, 0xEA, 0x11, 0x22, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0x63, 0xF3, 0x00, 0x6C, 0x18, 0xF0, 0x00, 0x6D, -0x03, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x43, 0xF3, 0x1C, 0x6C, 0xFF, 0x6D, 0x5B, 0x6E, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, 0x0C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, 0x1C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF4, 0x00, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xC0, 0x9B, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x30, 0xF0, 0x20, 0x6B, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0xE3, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x68, 0x23, 0xF5, 0xBC, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x20, 0xF5, 0x00, 0x6C, -0xFF, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x63, 0xF6, 0x10, 0x6C, 0x0F, 0x6D, 0x02, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, -0x24, 0x9A, 0x30, 0xF0, 0x21, 0x68, 0x12, 0xF5, -0x08, 0x48, 0x00, 0x6D, 0x90, 0x67, 0xC5, 0x67, -0xF1, 0x67, 0x80, 0x18, 0x1A, 0x5A, 0xFF, 0x6B, -0x4C, 0xEB, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, -0x00, 0x6E, 0x04, 0xD3, 0xFF, 0x69, 0x80, 0x18, -0x1A, 0x5A, 0x4C, 0xE9, 0x00, 0x68, 0x27, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, 0x04, 0x4A, -0xE0, 0x9A, 0x30, 0xF0, 0x21, 0x69, 0x12, 0xF5, -0x08, 0x49, 0x00, 0x6D, 0x91, 0x67, 0xC5, 0x67, -0x80, 0x18, 0x1A, 0x5A, 0xFF, 0x6B, 0x4C, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, 0x04, 0x4A, -0xE0, 0x9A, 0x91, 0x67, 0x01, 0x6D, 0x00, 0x6E, -0x04, 0xD3, 0xFF, 0x69, 0x80, 0x18, 0x1A, 0x5A, -0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x02, 0x6C, 0x01, 0x48, 0x40, 0xEA, -0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0x04, 0x93, -0x02, 0x73, 0x02, 0x60, 0x02, 0x71, 0x03, 0x61, -0xC1, 0xF1, 0x04, 0x70, 0xD1, 0x61, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x04, 0x67, 0x80, 0x18, 0x19, 0x16, 0x60, 0xF0, -0x5B, 0xA0, 0x1E, 0x22, 0x30, 0xF0, 0x20, 0x68, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0xB4, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF6, 0x1C, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF2, 0x34, 0x9A, 0xC0, 0xF3, 0x44, 0x98, -0xA3, 0xF0, 0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, -0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF2, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF6, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF5, 0x18, 0x6C, -0xE1, 0xF7, 0x18, 0x6D, 0xE0, 0xF1, 0x1F, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, -0x34, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, -0x04, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x68, 0xF1, -0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF3, 0x3C, 0x9A, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF0, 0x0C, 0x6C, 0xB1, 0x67, -0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xB1, 0x67, 0x08, 0xF1, 0x0C, 0x6C, 0x01, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, -0x0C, 0x6C, 0x80, 0x6D, 0x01, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x68, 0xF1, 0x0C, 0x6C, -0x80, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF0, 0x0C, 0x6C, 0x03, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x08, 0xF1, 0x0C, 0x6C, 0x03, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, -0x14, 0x6C, 0x00, 0xF3, 0x00, 0x6D, 0x03, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, -0x0C, 0x6C, 0x0F, 0x6D, 0x08, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x03, 0xF5, 0xA4, 0x9B, 0x21, 0xF0, 0x04, 0x69, -0x91, 0x67, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF3, -0xBC, 0x9B, 0x91, 0x67, 0x03, 0x6E, 0x40, 0xEA, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x00, 0x6A, 0x25, 0x67, -0x04, 0xD6, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF3, 0x04, 0x4B, 0xC0, 0x99, 0xE0, 0x9B, -0x30, 0xF0, 0x21, 0x68, 0x12, 0xF5, 0x08, 0x48, -0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x1A, 0x5A, -0x04, 0x93, 0x90, 0x67, 0x01, 0x6D, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x04, 0x4A, -0xC0, 0x99, 0xE0, 0x9A, 0x04, 0x49, 0x80, 0x18, -0x1A, 0x5A, 0x04, 0x93, 0x41, 0xDB, 0x05, 0x92, -0x08, 0x4B, 0x04, 0xD3, 0x01, 0x4A, 0x07, 0x72, -0x05, 0xD2, 0xDC, 0x61, 0x09, 0x97, 0x08, 0x91, -0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x69, 0x30, 0xF0, 0x20, 0x68, 0x2C, 0xEE, -0xC0, 0xF3, 0x64, 0x98, 0x08, 0x6A, 0x04, 0xD6, -0x2C, 0xEF, 0xC4, 0x36, 0x0A, 0xD4, 0x0B, 0xD5, -0x4D, 0xEE, 0x05, 0xD7, 0x03, 0xF3, 0x00, 0x6C, -0x0F, 0x6D, 0x40, 0xEB, 0x05, 0x92, 0x0C, 0x22, -0x0B, 0x96, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0xFA, 0x4E, 0x63, 0xF3, 0x04, 0x6C, -0xE3, 0xF4, 0xB0, 0x9B, 0x2C, 0xEE, 0x09, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0xE3, 0xF4, 0xB0, 0x9B, 0x63, 0xF3, 0x04, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x0A, 0x93, 0x04, 0x92, -0x63, 0xF3, 0x04, 0x6C, 0x41, 0xE3, 0x7D, 0x67, -0x47, 0x43, 0x0D, 0x4A, 0x60, 0xA2, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF4, 0xB0, 0x9A, 0x80, 0xF0, -0x73, 0xC0, 0x80, 0x18, 0x35, 0x25, 0x80, 0xF0, -0x55, 0xC0, 0x0A, 0x94, 0x04, 0x95, 0x05, 0x96, -0x80, 0x18, 0xAA, 0x15, 0x09, 0x97, 0x08, 0x91, -0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x6A, 0x4C, 0xEF, 0x4C, 0xED, 0x24, 0x67, -0x0C, 0xD6, 0x04, 0xD7, 0x05, 0x2D, 0xA7, 0x67, -0x80, 0x18, 0x94, 0x15, 0x01, 0x68, 0x01, 0x2A, -0x00, 0x68, 0x0C, 0x95, 0x04, 0x96, 0x91, 0x67, -0xF0, 0x67, 0x80, 0x18, 0xB8, 0x16, 0x50, 0x67, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xE3, 0xF3, 0x1C, 0x68, -0x01, 0x6D, 0x90, 0x67, 0xAB, 0xED, 0x80, 0x18, -0x35, 0x25, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF5, -0xA0, 0x9A, 0x90, 0x67, 0xFF, 0xF7, 0x1F, 0x69, -0x80, 0x18, 0x35, 0x25, 0x90, 0x67, 0xB1, 0x67, -0x04, 0xD2, 0x80, 0x18, 0x35, 0x25, 0xE3, 0xF7, -0x1F, 0x6B, 0x6C, 0xEA, 0x04, 0xF0, 0x00, 0x6C, -0x53, 0xE4, 0x04, 0x92, 0x6C, 0xEC, 0xFF, 0x4C, -0x4C, 0xEB, 0x2C, 0xEC, 0x60, 0x32, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x40, 0x32, 0x8D, 0xEA, -0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x04, 0x63, 0x00, 0xEF, 0xFF, 0xF7, 0x1F, 0x6B, +0x6C, 0xED, 0x1E, 0xF0, 0x01, 0x4D, 0x6C, 0xED, +0x02, 0x5D, 0x6C, 0xEE, 0x09, 0x61, 0x02, 0xF0, +0x00, 0x76, 0x06, 0x60, 0xE1, 0xF7, 0x1F, 0x6A, +0x4E, 0xEE, 0x01, 0x5E, 0x58, 0x67, 0x20, 0xE8, +0x01, 0x6A, 0x20, 0xE8, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, -0x30, 0xF0, 0x20, 0x68, 0x05, 0xD2, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x6D, 0x24, 0x67, 0xAB, 0xED, -0x03, 0xF3, 0x00, 0x6C, 0x0C, 0x6E, 0x40, 0xEA, -0x05, 0x93, 0x0F, 0x2B, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF2, 0xB8, 0x9B, -0xA3, 0xF3, 0x14, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x04, 0x6C, -0x11, 0x10, 0x05, 0x94, 0x01, 0x74, 0x15, 0x61, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0xE3, 0xF2, 0xB8, 0x9B, 0xA3, 0xF3, 0x14, 0x6C, -0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x43, 0xF3, 0x1C, 0x6C, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF5, 0xC4, 0x9B, 0x01, 0x6D, 0xAB, 0xED, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0x43, 0xF5, -0xC8, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0xC3, 0xF3, -0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, -0xED, 0x16, 0x05, 0x94, 0x50, 0x6D, 0xB8, 0xEC, -0xAF, 0x4D, 0xC3, 0xF3, 0x14, 0x6C, 0x12, 0xEB, -0x6D, 0xE1, 0x04, 0xD3, 0x80, 0xF0, 0x58, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, -0x43, 0xF5, 0xCC, 0x9A, 0x40, 0xEB, 0x91, 0x67, -0x80, 0x18, 0xED, 0x16, 0x04, 0x93, 0x01, 0x6D, -0xAB, 0xED, 0x80, 0xF0, 0x5C, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0x43, 0xF5, -0xD0, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, -0x91, 0x67, 0x80, 0x18, 0xED, 0x16, 0x04, 0x94, -0x01, 0x6D, 0xAB, 0xED, 0xA0, 0xF0, 0x40, 0xDC, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, -0x43, 0xF5, 0xD4, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, -0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, 0xED, 0x16, -0x04, 0x95, 0xC3, 0xF3, 0x14, 0x6C, 0xA0, 0xF0, -0x44, 0xDD, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x64, 0x98, 0x43, 0xF5, 0xD8, 0x9A, 0x01, 0x6D, -0xAB, 0xED, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, -0xED, 0x16, 0x04, 0x93, 0x01, 0x6D, 0xAB, 0xED, -0xA0, 0xF0, 0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x64, 0x98, 0x43, 0xF5, 0xDC, 0x9A, -0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, -0x80, 0x18, 0xED, 0x16, 0x04, 0x94, 0x01, 0x6D, -0xAB, 0xED, 0xA0, 0xF0, 0x4C, 0xDC, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0x63, 0xF5, -0xC0, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, -0x91, 0x67, 0x80, 0x18, 0xED, 0x16, 0x04, 0x95, -0xC3, 0xF3, 0x14, 0x6C, 0xA0, 0xF0, 0x50, 0xDD, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, -0x63, 0xF5, 0xC4, 0x9A, 0x01, 0x6D, 0xAB, 0xED, -0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, 0xED, 0x16, -0x04, 0x93, 0x01, 0x6D, 0xAB, 0xED, 0xA0, 0xF0, -0x54, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x64, 0x98, 0x63, 0xF5, 0xC8, 0x9A, 0xC3, 0xF3, -0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, -0xED, 0x16, 0x04, 0x94, 0x01, 0x6D, 0xAB, 0xED, -0xA0, 0xF0, 0x58, 0xDC, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x64, 0x98, 0x63, 0xF5, 0xCC, 0x9A, -0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, -0x80, 0x18, 0xED, 0x16, 0x04, 0x95, 0xC3, 0xF3, -0x14, 0x6C, 0xA0, 0xF0, 0x5C, 0xDD, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0x63, 0xF5, -0xD0, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEB, -0x91, 0x67, 0x80, 0x18, 0xED, 0x16, 0x04, 0x93, -0x01, 0x6D, 0xAB, 0xED, 0xC0, 0xF0, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, -0x63, 0xF5, 0xD4, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, -0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, 0xED, 0x16, -0x04, 0x94, 0x01, 0x6D, 0xAB, 0xED, 0xC0, 0xF0, -0x44, 0xDC, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x64, 0x98, 0x63, 0xF5, 0xD8, 0x9A, 0xC3, 0xF3, -0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, -0xED, 0x16, 0x05, 0x93, 0x50, 0x6C, 0x01, 0x6D, -0x01, 0x4B, 0x98, 0xEB, 0xAB, 0xED, 0x83, 0xF3, -0x04, 0x4C, 0x12, 0xEB, 0x6D, 0xE1, 0x5E, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, -0x63, 0xF5, 0xDC, 0x9A, 0x40, 0xEB, 0x91, 0x67, -0x80, 0x18, 0xED, 0x16, 0x04, 0x95, 0xC3, 0xF3, -0x14, 0x6C, 0xC0, 0xF0, 0x4C, 0xDD, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0x83, 0xF5, -0xC0, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEB, -0x91, 0x67, 0x80, 0x18, 0xED, 0x16, 0x04, 0x93, -0x01, 0x6D, 0xAB, 0xED, 0xC0, 0xF0, 0x50, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, -0x83, 0xF5, 0xC4, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, -0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, 0xED, 0x16, -0x04, 0x94, 0x01, 0x6D, 0xAB, 0xED, 0xC0, 0xF0, -0x54, 0xDC, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x64, 0x98, 0x83, 0xF5, 0xC8, 0x9A, 0xC3, 0xF3, -0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, -0xED, 0x16, 0x04, 0x95, 0xC3, 0xF3, 0x14, 0x6C, -0xC0, 0xF0, 0x58, 0xDD, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x64, 0x98, 0x83, 0xF5, 0xCC, 0x9A, -0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEB, 0x91, 0x67, -0x80, 0x18, 0xED, 0x16, 0x04, 0x93, 0x01, 0x6D, -0xAB, 0xED, 0xC0, 0xF0, 0x5C, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0x83, 0xF5, -0xD0, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, -0x91, 0x67, 0x80, 0x18, 0xED, 0x16, 0x04, 0x94, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, 0xD4, 0x9B, -0xE0, 0xF0, 0x40, 0xDC, 0xC0, 0xF3, 0x44, 0x98, -0x01, 0x6D, 0xAB, 0xED, 0xC3, 0xF3, 0x14, 0x6C, -0x40, 0xEA, 0x91, 0x67, 0x80, 0x18, 0xED, 0x16, -0x04, 0x95, 0xE0, 0xF0, 0x44, 0xDD, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6A, 0x4C, 0xED, -0xC0, 0xF3, 0x44, 0x98, 0x08, 0x6B, 0xA4, 0x36, -0x6D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF3, -0x08, 0x69, 0x91, 0x67, 0x08, 0xF0, 0x00, 0x6D, -0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF5, 0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x01, 0x6D, 0xC3, 0xF3, 0x14, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0xE3, 0xF3, 0x1C, 0x6C, 0xF0, 0x6D, -0x80, 0x18, 0x35, 0x25, 0x04, 0xD2, 0xC0, 0xF3, -0x44, 0x98, 0x91, 0x67, 0x08, 0xF0, 0x00, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0x04, 0x92, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0xFF, 0x6B, 0x6C, 0xEA, -0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0xFF, 0x6A, 0x4C, 0xED, 0x4C, 0xEE, 0x01, 0x69, -0xC0, 0xF3, 0x44, 0x98, 0x08, 0x6B, 0x2B, 0xE9, -0x04, 0xD6, 0xA4, 0x36, 0x6D, 0xEE, 0x03, 0xF3, -0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x43, 0xF3, 0x08, 0x6C, 0x08, 0xF0, -0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF5, 0xDC, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0xC3, 0xF3, 0x14, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF3, -0x0C, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, -0x04, 0x92, 0x04, 0x22, 0x02, 0x72, 0x00, 0x68, -0x2C, 0x60, 0x44, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF2, 0xD8, 0x9B, -0xB1, 0x67, 0x43, 0xF3, 0x0C, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF5, 0xA0, 0x9A, -0xE3, 0xF3, 0x1C, 0x69, 0x91, 0x67, 0x80, 0x18, -0x35, 0x25, 0x91, 0x67, 0xFF, 0xF7, 0x1F, 0x6D, -0x02, 0x67, 0x80, 0x18, 0x35, 0x25, 0x22, 0x67, -0x42, 0x32, 0x5E, 0x32, 0x05, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF1, 0x58, 0x9A, 0x27, 0xE2, -0x02, 0x32, 0x5E, 0x32, 0x21, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF1, 0x58, 0x9A, 0x03, 0xE2, -0x1B, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, -0x78, 0x9B, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x44, 0x9A, 0x01, 0x69, 0x2B, 0xE9, 0x00, 0xF6, -0x00, 0x36, 0x43, 0xF3, 0x0C, 0x6C, 0xB1, 0x67, -0x6D, 0xEE, 0x40, 0xEA, 0x01, 0x48, 0xE3, 0xF3, -0x1C, 0x6C, 0xB1, 0x67, 0x80, 0x18, 0x35, 0x25, -0x40, 0x70, 0xE7, 0x61, 0x00, 0x68, 0x30, 0x67, +0x50, 0x6B, 0x78, 0xEA, 0xE0, 0xF0, 0x68, 0x44, +0x24, 0x67, 0x12, 0xEA, 0x90, 0xF0, 0x08, 0x42, +0x4D, 0xE3, 0x01, 0xE4, 0x04, 0xD3, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF5, 0xA4, 0x9A, 0x40, 0x98, +0xE3, 0xF7, 0x1F, 0x6E, 0x91, 0x67, 0x4C, 0xED, +0xA2, 0x35, 0xA2, 0x35, 0x4C, 0xEE, 0x80, 0x18, +0x61, 0x18, 0x02, 0x22, 0x00, 0x6A, 0x05, 0x10, +0x04, 0x92, 0x04, 0x48, 0x4A, 0xE8, 0xEB, 0x61, +0x01, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x68, 0x4C, 0xED, 0x4C, 0xEE, 0x01, 0x69, +0xC0, 0xF3, 0x44, 0x98, 0x2B, 0xE9, 0x0C, 0xD4, +0x05, 0xD5, 0x06, 0xD6, 0xB1, 0x67, 0x03, 0xF3, +0x00, 0x6C, 0x0C, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0xC3, 0xF3, 0x14, 0x6C, +0xF0, 0x6E, 0x40, 0xEA, 0x05, 0x93, 0x50, 0x6A, +0x03, 0xF3, 0x0C, 0x68, 0x58, 0xEB, 0x0C, 0x93, +0x00, 0x69, 0x12, 0xEA, 0x7F, 0x4A, 0x19, 0x4A, +0x49, 0xE3, 0x04, 0xD2, 0x05, 0x92, 0x90, 0x67, +0x05, 0x22, 0x87, 0x40, 0x51, 0x4C, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xEC, 0x06, 0x93, 0x0A, 0x2B, +0x03, 0x71, 0x03, 0x60, 0xE3, 0xF7, 0x1F, 0x6E, +0x07, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF5, +0xC8, 0x9A, 0x02, 0x10, 0x04, 0x92, 0xC0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, -0x01, 0x6D, 0x43, 0xF3, 0x0C, 0x6C, 0xAB, 0xED, -0x00, 0x6E, 0x40, 0xEA, 0x18, 0xE8, 0x09, 0x97, -0x12, 0xE8, 0x38, 0xE9, 0x12, 0xE9, 0x29, 0xE0, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, -0x00, 0x6C, 0x0F, 0x6D, 0x0C, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF5, 0xBC, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x00, 0x6E, 0xC3, 0xF3, -0x14, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0xB0, 0x9A, 0xE3, 0xF3, 0x1C, 0x6C, -0x80, 0x18, 0x35, 0x25, 0x05, 0x97, 0x04, 0x90, -0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF5, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, 0xC3, 0xF3, -0x14, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF3, 0xB0, 0x9A, 0xE3, 0xF3, -0x1C, 0x69, 0x91, 0x67, 0x80, 0x18, 0x35, 0x25, -0xFF, 0xF7, 0x1F, 0x68, 0x91, 0x67, 0xE1, 0xF7, -0x1F, 0x6D, 0x4C, 0xE8, 0xFF, 0xF7, 0x1F, 0x69, -0x80, 0x18, 0x35, 0x25, 0x4C, 0xE9, 0x02, 0x32, -0x4E, 0x32, 0x01, 0x72, 0x06, 0x61, 0x02, 0xF0, -0x00, 0x6A, 0x03, 0xE2, 0xFF, 0xF7, 0x1F, 0x6A, -0x4C, 0xE8, 0x22, 0x32, 0x4E, 0x32, 0x01, 0x72, -0x06, 0x61, 0x02, 0xF0, 0x00, 0x6A, 0x27, 0xE2, -0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE9, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, -0xF0, 0x6E, 0xC3, 0xF3, 0x14, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0xE3, 0xF3, 0x1C, 0x6C, 0xFF, 0x6D, -0x80, 0x18, 0x35, 0x25, 0xE3, 0xF3, 0x1C, 0x6C, -0x1F, 0xF7, 0x00, 0x6D, 0x04, 0xD2, 0x80, 0x18, -0x35, 0x25, 0xC9, 0x58, 0x0C, 0x60, 0xC9, 0x59, -0x0A, 0x60, 0x04, 0x93, 0xFF, 0x6A, 0x6C, 0xEA, -0x28, 0x5A, 0x05, 0x61, 0x42, 0x5A, 0x58, 0x67, -0x01, 0x6B, 0x6E, 0xEA, 0x01, 0x10, 0x01, 0x6A, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, -0xB4, 0x9A, 0x04, 0x67, 0x63, 0xF6, 0x1C, 0x6C, -0x80, 0x18, 0x35, 0x25, 0x01, 0x22, 0x01, 0x6A, -0x60, 0xF0, 0x5B, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0xE4, 0x9A, 0x30, 0xF0, 0x21, 0x6C, -0x12, 0xF5, 0x08, 0x4C, 0x00, 0x6D, 0x18, 0x6E, -0x80, 0x18, 0x1A, 0x5A, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF1, 0x78, 0x9B, 0x80, 0xF0, 0x50, 0xC0, -0x05, 0x97, 0x4C, 0xEB, 0x62, 0x33, 0x62, 0x33, -0x80, 0xF0, 0x71, 0xC0, 0x06, 0xF0, 0x00, 0x6B, -0x4C, 0xEB, 0x62, 0x33, 0x72, 0x33, 0x80, 0xF0, -0x72, 0xC0, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x00, 0x6A, 0x0D, 0xD7, 0x05, 0x67, 0x26, 0x67, -0x04, 0xD2, 0x0B, 0x10, 0x80, 0xA8, 0x01, 0x6D, -0xAB, 0xED, 0x80, 0x18, 0x35, 0x25, 0x40, 0xD9, -0x04, 0x93, 0x04, 0x48, 0x04, 0x49, 0x01, 0x4B, -0x04, 0xD3, 0x04, 0x92, 0x0D, 0x93, 0x63, 0xEA, -0xF1, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF2, 0x18, 0x4B, 0xE0, 0x9B, 0xFF, 0x69, -0x30, 0xF0, 0x21, 0x68, 0xAC, 0xE9, 0x12, 0xF5, -0x08, 0x48, 0x90, 0x67, 0xB1, 0x67, 0x01, 0x6A, -0x42, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, -0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF2, 0x18, 0x4A, 0xE0, 0x9A, 0x90, 0x67, -0xB1, 0x67, 0x42, 0x6E, 0x80, 0x18, 0x8D, 0x5A, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0x18, 0x4A, -0xE0, 0x9A, 0x01, 0x6B, 0xB1, 0x67, 0x90, 0x67, -0x42, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x8D, 0x5A, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, -0x0F, 0x6C, 0x40, 0xEA, 0x90, 0x67, 0xB1, 0x67, -0x42, 0x6E, 0x7E, 0x6F, 0x80, 0x18, 0x1A, 0x5A, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0xFF, 0x6B, -0x6C, 0xEA, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x00, 0x6A, 0x0A, 0xD4, 0x60, 0xF0, 0x5E, 0xCC, -0x0A, 0x90, 0x04, 0xD4, 0x00, 0x69, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x9A, 0x24, 0x36, -0x08, 0x6A, 0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, -0x0F, 0x6D, 0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x9B, 0x43, 0xF3, 0x18, 0x6C, -0x7F, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x00, 0x6A, -0x80, 0xF0, 0x55, 0xC0, 0x80, 0xF0, 0x53, 0xC0, -0x04, 0x94, 0x5B, 0x6B, 0xB1, 0x67, 0x20, 0xF1, -0x78, 0xCC, 0x80, 0xF0, 0x44, 0xC0, 0x0A, 0x94, -0x01, 0x49, 0x80, 0x18, 0xA3, 0x18, 0x80, 0xF0, -0x40, 0xC0, 0x04, 0x92, 0x02, 0x71, 0x01, 0x48, -0x02, 0x4A, 0x04, 0xD2, 0xD4, 0x61, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x0C, 0xD4, 0x80, 0xF0, 0x51, 0xA4, 0xFF, 0x68, -0xAC, 0xE8, 0x07, 0xD2, 0x5D, 0x2A, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF3, 0x04, 0x4B, 0x30, 0xF0, -0x20, 0x6A, 0xE0, 0x9B, 0xA3, 0xF5, 0x44, 0x9A, -0x30, 0xF0, 0x21, 0x69, 0x12, 0xF5, 0x08, 0x49, -0x91, 0x67, 0xB0, 0x67, 0x00, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0x8D, 0x5A, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0x04, 0x4A, 0xE0, 0x9A, 0x91, 0x67, -0xB0, 0x67, 0x56, 0x6E, 0x80, 0x18, 0x1A, 0x5A, -0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, -0xF8, 0x9A, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, -0xDE, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x8D, 0x5A, -0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF2, 0xF8, 0x9A, 0x91, 0x67, 0xB0, 0x67, -0xDE, 0x6E, 0x80, 0x18, 0x8D, 0x5A, 0x30, 0xF0, -0x20, 0x6A, 0x07, 0x93, 0xA3, 0xF5, 0xE8, 0x9A, -0x91, 0x67, 0xB0, 0x67, 0x55, 0x6E, 0x04, 0xD3, -0x80, 0x18, 0x8D, 0x5A, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF3, 0x04, 0x4B, 0xE0, 0x9B, 0x06, 0x92, -0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0x8D, 0x5A, 0x01, 0x6A, 0x91, 0x67, -0xB0, 0x67, 0x55, 0x6E, 0x1C, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0x8D, 0x5A, 0x07, 0x93, 0x30, 0xF0, -0x20, 0x6A, 0x91, 0x67, 0x04, 0xD3, 0xB0, 0x67, -0x87, 0x6E, 0x63, 0xF2, 0xF4, 0x9A, 0x6B, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF5, 0x44, 0x9A, -0x30, 0xF0, 0x21, 0x69, 0x12, 0xF5, 0x08, 0x49, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, -0x04, 0x4A, 0xE0, 0x9A, 0x91, 0x67, 0xB0, 0x67, -0x00, 0x6E, 0x80, 0x18, 0x8D, 0x5A, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF3, 0x04, 0x4B, 0xE0, 0x9B, -0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, 0x80, 0x18, -0x1A, 0x5A, 0x06, 0xD2, 0x01, 0x6A, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0xF8, 0x9A, -0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, 0x80, 0x18, -0x8D, 0x5A, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, -0xF8, 0x9A, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, -0xDE, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x8D, 0x5A, -0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF5, 0xE8, 0x9A, 0x91, 0x67, 0xB0, 0x67, -0x55, 0x6E, 0x80, 0x18, 0x8D, 0x5A, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF3, 0x04, 0x4A, 0x06, 0x93, -0xE0, 0x9A, 0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, -0x04, 0xD3, 0x80, 0x18, 0x8D, 0x5A, 0x00, 0x6B, -0x91, 0x67, 0xB0, 0x67, 0x63, 0x6E, 0x18, 0xF0, -0x00, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x8D, 0x5A, -0x06, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x63, 0x6E, -0x1C, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, -0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x63, 0x6E, -0x06, 0xF0, 0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0x8D, 0x5A, 0x00, 0x6B, 0x04, 0xD3, 0x91, 0x67, -0xB0, 0x67, 0x8A, 0x6E, 0x18, 0x6F, 0x80, 0x18, -0x8D, 0x5A, 0x91, 0x67, 0x30, 0xF0, 0x21, 0x69, -0x0F, 0x6A, 0xB0, 0x67, 0x00, 0x6E, 0xE0, 0xF3, -0x00, 0x6F, 0x12, 0xF5, 0x08, 0x49, 0x04, 0xD2, -0x80, 0x18, 0x8D, 0x5A, 0x01, 0x6A, 0x91, 0x67, -0xB0, 0x67, 0xDE, 0x6E, 0x04, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0x8D, 0x5A, 0x00, 0x6A, 0x91, 0x67, -0xB0, 0x67, 0x1A, 0x6E, 0x01, 0xF4, 0x00, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, 0x0C, 0x93, -0x80, 0xF0, 0x52, 0xA3, 0x01, 0x72, 0x02, 0x6A, -0x01, 0x60, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, -0x1A, 0x6E, 0x0E, 0xF0, 0x00, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0x8D, 0x5A, 0x30, 0xF0, 0x21, 0x6C, -0xB0, 0x67, 0x8F, 0x6E, 0x02, 0x6F, 0x30, 0xF0, -0x20, 0x68, 0x01, 0x6A, 0x12, 0xF5, 0x08, 0x4C, -0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, 0x80, 0xF3, -0x4C, 0x98, 0x14, 0x6C, 0x40, 0xEA, 0x80, 0xF3, -0x4C, 0x98, 0x14, 0x6C, 0x40, 0xEA, 0x80, 0xF3, -0x4C, 0x98, 0x14, 0x6C, 0x40, 0xEA, 0x80, 0xF3, -0x4C, 0x98, 0x14, 0x6C, 0x40, 0xEA, 0x80, 0xF3, -0x4C, 0x98, 0x14, 0x6C, 0x40, 0xEA, 0x06, 0x93, -0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x1F, 0x6A, -0x6C, 0xEA, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x00, 0x69, 0x0A, 0xD4, 0x00, 0x6A, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0xE4, 0x9A, -0x30, 0xF0, 0x21, 0x6C, 0xFF, 0x6D, 0x12, 0xF5, -0x08, 0x4C, 0x2C, 0xED, 0x19, 0x6E, 0x30, 0xF0, -0x20, 0x68, 0x80, 0x18, 0x8D, 0x5A, 0xC0, 0xF3, -0x64, 0x98, 0x08, 0x6A, 0x24, 0x36, 0x01, 0x6D, -0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, -0x40, 0xEB, 0x0A, 0x93, 0x80, 0xF0, 0x51, 0xA3, -0x0B, 0x2A, 0x01, 0x6D, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF3, 0x00, 0x6C, -0xAB, 0xED, 0xA3, 0xF5, 0xCC, 0x9B, 0x0A, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0xA3, 0xF5, 0xD0, 0x9B, 0x01, 0x6D, 0x63, 0xF3, -0x00, 0x6C, 0xAB, 0xED, 0x30, 0xF0, 0x20, 0x68, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF3, -0x04, 0x6C, 0x0E, 0xF0, 0x00, 0x6D, 0x04, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x83, 0xF3, 0xB4, 0x9B, 0x23, 0xF3, -0x00, 0x6C, 0x03, 0x6E, 0x01, 0x49, 0x40, 0xEA, -0x02, 0x71, 0xB4, 0x61, 0xC0, 0xF3, 0x44, 0x98, -0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x0C, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0xA3, 0xF5, 0xD4, 0x9B, 0x01, 0x69, -0x2B, 0xE9, 0xB1, 0x67, 0xE3, 0xF3, 0x04, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0xA3, 0xF5, 0xD8, 0x9B, 0xB1, 0x67, -0xE3, 0xF3, 0x08, 0x6C, 0x40, 0xEA, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF5, 0x5C, 0x9A, -0xFF, 0x69, 0x30, 0xF0, 0x21, 0x68, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x04, 0x4A, -0xE0, 0x9A, 0x12, 0xF5, 0x08, 0x48, 0xAC, 0xE9, -0x90, 0x67, 0xB1, 0x67, 0x92, 0x6E, 0x80, 0x18, -0x8D, 0x5A, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x05, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF3, 0x04, 0x4B, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF5, 0x40, 0x9A, 0xE0, 0x9B, -0x90, 0x67, 0xB1, 0x67, 0x92, 0x6E, 0x04, 0xD2, -0x00, 0x68, 0x80, 0x18, 0x8D, 0x5A, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, -0x01, 0x48, 0x40, 0xEA, 0xFF, 0x6A, 0x4C, 0xE8, -0x1E, 0x70, 0xF5, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF5, 0x5C, 0x9A, 0x30, 0xF0, 0x21, 0x6C, -0xB1, 0x67, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0xE4, 0x9A, 0x12, 0xF5, 0x08, 0x4C, -0x92, 0x6E, 0x80, 0x18, 0x8D, 0x5A, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x00, 0x6A, 0x06, 0xD5, 0x06, 0x67, 0x07, 0xD2, -0x40, 0x98, 0x06, 0x93, 0x30, 0xF0, 0x21, 0x69, -0x12, 0xF5, 0x08, 0x49, 0xC0, 0x9B, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x04, 0x4A, -0xE0, 0x9A, 0x91, 0x67, 0x00, 0x6D, 0x80, 0x18, -0x8D, 0x5A, 0x41, 0x98, 0x06, 0x93, 0x91, 0x67, -0x01, 0x6D, 0xC0, 0x9B, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF3, 0x04, 0x4A, 0xE0, 0x9A, -0x08, 0x48, 0x80, 0x18, 0x8D, 0x5A, 0x07, 0x93, -0x06, 0x92, 0x01, 0x4B, 0x04, 0x4A, 0x07, 0x73, -0x07, 0xD3, 0x06, 0xD2, 0xD9, 0x61, 0x0B, 0x97, +0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, 0x04, 0x93, +0xFF, 0x6A, 0x01, 0x49, 0x4C, 0xE9, 0x04, 0x4B, +0x04, 0x48, 0xFF, 0xF7, 0x1F, 0x6A, 0x14, 0x71, +0x04, 0xD3, 0x4C, 0xE8, 0xD7, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x00, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF5, -0x5C, 0x9A, 0x30, 0xF0, 0x21, 0x69, 0x12, 0xF5, -0x08, 0x49, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0x04, 0x4A, 0xE0, 0x9A, 0x91, 0x67, -0xB0, 0x67, 0x92, 0x6E, 0x80, 0x18, 0x8D, 0x5A, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, -0x05, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF3, 0x04, 0x4B, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF5, 0x40, 0x9A, 0xE0, 0x9B, 0x91, 0x67, -0xB0, 0x67, 0x92, 0x6E, 0x04, 0xD2, 0x00, 0x69, -0x80, 0x18, 0x8D, 0x5A, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, 0x01, 0x49, -0x40, 0xEA, 0xFF, 0x6A, 0x4C, 0xE9, 0x1E, 0x71, -0xF5, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF5, -0x5C, 0x9A, 0x30, 0xF0, 0x21, 0x6C, 0xB0, 0x67, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, -0xE4, 0x9A, 0x12, 0xF5, 0x08, 0x4C, 0x92, 0x6E, -0x80, 0x18, 0x8D, 0x5A, 0x01, 0x48, 0xFF, 0x6B, -0x6C, 0xE8, 0x02, 0x70, 0xB6, 0x61, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x00, 0x69, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF4, -0xB0, 0x9A, 0x02, 0xF7, 0x00, 0x6C, 0x80, 0x18, -0xAD, 0x25, 0x20, 0x6B, 0x4C, 0xEB, 0x12, 0x2B, -0x00, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x14, 0x6C, 0x01, 0x48, 0x40, 0xEA, -0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0xE0, 0xF1, -0x14, 0x70, 0xF3, 0x61, 0x01, 0x49, 0x0A, 0x71, -0xE4, 0x61, 0x0A, 0x69, 0x51, 0x67, 0x07, 0x97, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x24, 0x67, 0x0F, 0x6D, 0x03, 0xF3, 0x00, 0x6C, +0x0C, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF1, 0x18, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x60, 0xF0, 0xD9, 0xA1, 0x03, 0xF3, +0x08, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF1, 0x18, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xA0, 0x9B, 0x60, 0xF0, 0xD9, 0xA1, 0x63, 0xF3, +0x00, 0x6C, 0x40, 0xEA, 0x60, 0xF0, 0x58, 0xA1, +0x2C, 0x22, 0x60, 0xF0, 0x5E, 0xA9, 0x01, 0x6B, +0x6C, 0xEA, 0x10, 0x22, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x08, 0x6C, 0x18, 0xF0, 0x00, 0x6D, +0xC3, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x20, 0xF1, 0xD8, 0xA9, 0x03, 0xF3, 0x04, 0x6C, +0xFF, 0x6D, 0x40, 0xEA, 0x60, 0xF0, 0x5E, 0xA9, +0x02, 0x6B, 0x6C, 0xEA, 0x3C, 0x22, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF3, +0x00, 0x6C, 0x18, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF3, +0x1C, 0x6C, 0xFF, 0x6D, 0x20, 0xF1, 0xDA, 0xA9, +0x29, 0x10, 0x60, 0xF0, 0x5E, 0xA9, 0x01, 0x6B, +0x6C, 0xEA, 0x0F, 0x22, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x08, 0x6C, 0x18, 0xF0, 0x00, 0x6D, +0x03, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x04, 0x6C, 0xFF, 0x6D, 0x5B, 0x6E, +0x40, 0xEA, 0x60, 0xF0, 0x5E, 0xA9, 0x02, 0x6B, +0x6C, 0xEA, 0x11, 0x22, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF3, 0x00, 0x6C, +0x18, 0xF0, 0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF3, 0x1C, 0x6C, +0xFF, 0x6D, 0x5B, 0x6E, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFF, 0xF7, 0x1F, 0x68, 0xAC, 0xE8, 0x80, 0x18, -0x1E, 0x1A, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF4, -0xD4, 0x9A, 0x01, 0x69, 0x2B, 0xE9, 0x0D, 0xEE, -0xB1, 0x67, 0x02, 0xF7, 0x00, 0x6C, 0x80, 0x18, -0xC2, 0x25, 0xB1, 0x67, 0x02, 0xF7, 0x08, 0x6C, -0x80, 0x18, 0xAD, 0x25, 0x07, 0x97, 0x06, 0x91, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, +0x43, 0xF5, 0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x20, 0xF5, 0x00, 0x6C, 0xFF, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF6, 0x10, 0x6C, +0x0F, 0x6D, 0x02, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF5, 0x34, 0x9A, 0x30, 0xF0, +0x21, 0x68, 0x12, 0xF5, 0x08, 0x48, 0x00, 0x6D, +0x90, 0x67, 0xC5, 0x67, 0xF1, 0x67, 0x80, 0x18, +0x9F, 0x58, 0xFF, 0x6B, 0x4C, 0xEB, 0x90, 0x67, +0xF1, 0x67, 0x01, 0x6D, 0x00, 0x6E, 0x04, 0xD3, +0xFF, 0x69, 0x80, 0x18, 0x9F, 0x58, 0x4C, 0xE9, +0x00, 0x68, 0x27, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF5, 0x14, 0x4A, 0xE0, 0x9A, 0x30, 0xF0, +0x21, 0x69, 0x12, 0xF5, 0x08, 0x49, 0x00, 0x6D, +0x91, 0x67, 0xC5, 0x67, 0x80, 0x18, 0x9F, 0x58, +0xFF, 0x6B, 0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF5, 0x14, 0x4A, 0xE0, 0x9A, 0x91, 0x67, +0x01, 0x6D, 0x00, 0x6E, 0x04, 0xD3, 0xFF, 0x69, +0x80, 0x18, 0x9F, 0x58, 0x4C, 0xE9, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x02, 0x6C, +0x01, 0x48, 0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE8, 0x04, 0x93, 0x02, 0x73, 0x02, 0x60, +0x02, 0x71, 0x03, 0x61, 0xC1, 0xF1, 0x04, 0x70, +0xD1, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x04, 0x67, 0x80, 0x18, +0xF0, 0x18, 0x60, 0xF0, 0x5B, 0xA0, 0x1E, 0x22, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF1, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF6, 0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x38, 0x9A, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0x04, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xA8, 0xF1, 0x04, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0xB4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF6, 0x04, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x43, 0xF5, 0x18, 0x6C, 0xE1, 0xF7, 0x18, 0x6D, +0xE0, 0xF1, 0x1F, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF1, 0x38, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0x63, 0xF0, 0x04, 0x6C, 0xB1, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x68, 0xF1, 0x04, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, +0x3C, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x0C, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x08, 0xF1, +0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x63, 0xF0, 0x0C, 0x6C, 0x80, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x68, 0xF1, 0x0C, 0x6C, 0x80, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x0C, 0x6C, 0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, 0x0C, 0x6C, +0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF2, 0x14, 0x6C, 0x00, 0xF3, +0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0xF0, 0x0C, 0x6C, 0x0F, 0x6D, +0x08, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF5, 0xB4, 0x9B, +0x21, 0xF0, 0x04, 0x69, 0x91, 0x67, 0x03, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x83, 0xF3, 0xBC, 0x9B, 0x91, 0x67, +0x03, 0x6E, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0xF7, 0x1F, 0x68, 0x24, 0x67, 0x0C, 0xD6, -0x0D, 0xD7, 0xAC, 0xE8, 0x38, 0x26, 0x66, 0x67, -0x01, 0x4B, 0x00, 0x6A, 0x09, 0x2B, 0x01, 0x69, -0x2B, 0xE9, 0x80, 0x18, 0x1E, 0x1A, 0x02, 0xF7, -0x04, 0x6C, 0xB1, 0x67, 0x0D, 0x96, 0x1F, 0x10, -0x0C, 0x93, 0x01, 0x6C, 0x66, 0xEA, 0x8C, 0xEB, -0x04, 0x2B, 0x01, 0x4A, 0x20, 0x72, 0xF8, 0x61, -0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x05, 0xD2, -0x80, 0x18, 0x32, 0x1A, 0x0C, 0x93, 0x91, 0x67, -0x01, 0x69, 0x6F, 0xEB, 0x4C, 0xEB, 0x04, 0xD3, -0x80, 0x18, 0x1E, 0x1A, 0x0D, 0x96, 0x05, 0x92, -0x04, 0x93, 0x2B, 0xE9, 0xC4, 0xEA, 0x02, 0xF7, -0x04, 0x6C, 0xB1, 0x67, 0x6D, 0xEE, 0x80, 0x18, -0xC2, 0x25, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF4, -0xD8, 0x9A, 0x02, 0xF7, 0x00, 0x6C, 0xB1, 0x67, -0x0D, 0xEE, 0x80, 0x18, 0xC2, 0x25, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFF, 0x6A, 0xAC, 0xEA, 0x04, 0x67, 0x1D, 0x22, -0x01, 0x6D, 0x70, 0x6C, 0xAB, 0xED, 0x80, 0x18, -0xAD, 0x25, 0x80, 0xF0, 0x48, 0xD8, 0x90, 0x67, -0x38, 0x6D, 0x80, 0x18, 0x32, 0x1A, 0x80, 0xF0, -0x4C, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, -0xB0, 0x9A, 0x70, 0x6C, 0x01, 0x6E, 0x80, 0x18, -0xC2, 0x25, 0x90, 0x67, 0x38, 0x6D, 0x1F, 0xF7, -0x00, 0x6E, 0x77, 0x6F, 0x80, 0x18, 0x42, 0x1A, -0x0E, 0x10, 0x01, 0x69, 0x80, 0xF0, 0xEC, 0x98, -0x2B, 0xE9, 0x38, 0x6D, 0xD1, 0x67, 0x80, 0x18, -0x42, 0x1A, 0x80, 0xF0, 0xC8, 0x98, 0x70, 0x6C, -0xB1, 0x67, 0x80, 0x18, 0xC2, 0x25, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x6A, 0x4C, 0xED, 0x0A, 0xD4, 0x04, 0xD5, -0x80, 0xF0, 0x72, 0xA4, 0x01, 0x6C, 0x26, 0x67, -0x8E, 0xEB, 0x01, 0x5B, 0x4C, 0xE9, 0x78, 0x67, -0x01, 0x71, 0x64, 0x33, 0x03, 0x61, 0x05, 0x67, -0x14, 0x48, 0x10, 0x10, 0x02, 0x71, 0x03, 0x61, -0x04, 0x90, 0x16, 0x48, 0x0A, 0x10, 0x03, 0x71, -0x03, 0x61, 0x04, 0x90, 0x1A, 0x48, 0x06, 0x10, -0x04, 0x71, 0x00, 0x68, 0x04, 0x61, 0x04, 0x90, -0x1C, 0x48, 0x01, 0xE3, 0x4C, 0xE8, 0x0A, 0x94, -0x01, 0x6D, 0x80, 0x18, 0x66, 0x1A, 0x4A, 0x29, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0xA3, 0xF3, 0x14, 0x49, 0x91, 0x67, 0x02, 0xF0, -0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x91, 0x67, 0x02, 0xF0, 0x00, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF3, 0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x00, 0x6E, 0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, -0x14, 0x6C, 0x00, 0x68, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF1, 0xB4, 0x9A, 0xE3, 0xF3, -0x1C, 0x6C, 0x80, 0x18, 0x35, 0x25, 0xFF, 0x6B, -0x4C, 0xEB, 0x14, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, 0x01, 0x48, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, -0xB4, 0x9A, 0xE3, 0xF3, 0x1C, 0x6C, 0x80, 0x18, -0x35, 0x25, 0xFF, 0x6B, 0x4C, 0xEB, 0xFF, 0xF7, -0x1F, 0x6A, 0x4C, 0xE8, 0x01, 0x73, 0x60, 0x60, -0xE0, 0xF3, 0x08, 0x70, 0xE7, 0x61, 0xE0, 0xF3, -0x08, 0x68, 0x5A, 0x10, 0x04, 0x92, 0x30, 0xF0, -0x20, 0x69, 0xC0, 0xF3, 0x64, 0x99, 0x44, 0x36, -0x08, 0x6A, 0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, -0x0F, 0x6D, 0x40, 0xEB, 0xC0, 0xF3, 0x44, 0x99, -0xC3, 0xF3, 0x0C, 0x6C, 0x3F, 0x6D, 0x09, 0x6E, -0x40, 0xEA, 0x00, 0x30, 0x48, 0x6A, 0x4D, 0xE8, -0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0xD0, 0x67, -0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0xC1, 0x40, -0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x85, 0xF5, 0x1C, 0x6C, 0xFF, 0x6D, 0x80, 0x18, -0x35, 0x25, 0xFF, 0x6B, 0x4C, 0xEB, 0x00, 0x68, -0x11, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x14, 0x6C, 0x01, 0x48, 0x40, 0xEA, -0x85, 0xF5, 0x1C, 0x6C, 0xFF, 0x6D, 0x80, 0x18, -0x35, 0x25, 0xFF, 0x6B, 0x4C, 0xEB, 0xFF, 0xF7, -0x1F, 0x6A, 0x4C, 0xE8, 0x55, 0x73, 0x05, 0x60, -0xE0, 0xF3, 0x08, 0x70, 0xEA, 0x61, 0xE0, 0xF3, -0x08, 0x68, 0x04, 0x94, 0x30, 0xF0, 0x20, 0x69, -0xC0, 0xF3, 0x44, 0x99, 0x84, 0x36, 0x08, 0x6B, -0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x6D, 0xEE, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xC3, 0xF3, -0x0C, 0x6C, 0x3F, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0x0A, 0x94, 0x00, 0x6D, 0x80, 0x18, 0x66, 0x1A, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, -0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0xE0, 0xF3, 0x08, 0x6A, 0x0E, 0xEA, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x01, 0x5A, -0x58, 0x67, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x60, 0xF0, 0x5E, 0xAC, 0x24, 0x67, 0x03, 0x2A, -0x80, 0xF0, 0x50, 0xA4, 0x71, 0x22, 0x80, 0x18, -0x7B, 0x18, 0x00, 0x68, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x9B, 0x04, 0x36, 0x08, 0x6B, -0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x6D, 0xEE, -0x40, 0xEA, 0x80, 0xF0, 0x51, 0xA1, 0x0D, 0x2A, -0x30, 0xF0, 0x20, 0x6C, 0x01, 0x6D, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9C, 0xAB, 0xED, -0x63, 0xF3, 0x00, 0x6C, 0xA3, 0xF5, 0xCC, 0x9B, -0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, -0xD0, 0x9B, 0x01, 0x6D, 0x63, 0xF3, 0x00, 0x6C, -0xAB, 0xED, 0x40, 0xEA, 0x0D, 0xE1, 0x30, 0xF0, -0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0x80, 0xF0, -0xD5, 0xA3, 0xC0, 0xF3, 0x44, 0x9C, 0xE3, 0xF4, -0xB0, 0x9D, 0x63, 0xF3, 0x04, 0x6C, 0x40, 0xEA, -0x60, 0xF0, 0xDE, 0xA1, 0x01, 0x6A, 0x44, 0xE8, -0x47, 0xE8, 0x4C, 0xEE, 0x91, 0x67, 0xB0, 0x67, -0x80, 0x18, 0xAA, 0x15, 0x91, 0x67, 0xB0, 0x67, -0x03, 0x6E, 0x80, 0x18, 0x82, 0x1A, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x03, 0xF3, -0x00, 0x6C, 0x0F, 0x6D, 0x0C, 0x6E, 0x40, 0xEA, -0xFF, 0x6A, 0x0C, 0xEA, 0x0D, 0x2A, 0x30, 0xF0, -0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x9C, 0xC3, 0xF5, 0xA4, 0x9B, 0x03, 0xF3, -0x04, 0x6C, 0x20, 0xF1, 0xD8, 0xA9, 0x0C, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF5, 0xA4, 0x9B, -0x20, 0xF1, 0xDA, 0xA9, 0x43, 0xF3, 0x1C, 0x6C, -0x01, 0x48, 0x40, 0xEA, 0x02, 0x70, 0x92, 0x61, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x00, 0x6A, 0x60, 0xF0, 0x5C, 0xC4, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0xE4, 0x9A, -0x04, 0x67, 0x30, 0xF0, 0x21, 0x6C, 0x12, 0xF5, -0x08, 0x4C, 0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, -0x1A, 0x5A, 0x80, 0xF0, 0x90, 0xA0, 0xFF, 0x6B, -0x4C, 0xEB, 0x8E, 0xEB, 0x06, 0x2B, 0x90, 0x67, -0x80, 0x18, 0xF6, 0x1A, 0x01, 0x6A, 0x60, 0xF0, -0x5C, 0xC0, 0x60, 0xF0, 0x5C, 0xA0, 0x05, 0x97, -0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0xAC, 0xEA, -0x04, 0xD2, 0x44, 0x36, 0xC0, 0xF3, 0x44, 0x98, -0x08, 0x6B, 0x6D, 0xEE, 0x0A, 0xD4, 0x0F, 0x6D, -0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF2, 0xA8, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF3, 0x00, 0x69, 0x91, 0x67, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF3, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x7F, 0x49, -0xC0, 0xF3, 0x44, 0x98, 0x2D, 0x49, 0x91, 0x67, -0x3F, 0x6D, 0x09, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF2, 0xAC, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, -0x0F, 0x6D, 0x0C, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xC3, 0xF3, 0x14, 0x6C, 0xF0, 0x6D, -0x0F, 0x6E, 0x40, 0xEA, 0x04, 0x93, 0x12, 0x2B, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF5, 0xA4, 0x9B, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0xC3, 0xF5, 0xC8, 0x9B, 0x03, 0xF3, 0x04, 0x6C, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, -0x08, 0x6C, 0x11, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF5, 0xA4, 0x9B, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF5, 0xC8, 0x9B, -0x43, 0xF3, 0x1C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x63, 0xF3, 0x00, 0x6C, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF1, 0xB4, 0x9B, 0x01, 0x6E, -0x40, 0xEA, 0x0A, 0x93, 0x80, 0xF0, 0x52, 0xA3, -0x01, 0x72, 0x41, 0x61, 0x30, 0xF0, 0x20, 0x68, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF5, 0xCC, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, -0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF3, 0x18, 0x6C, -0xB1, 0x67, 0x02, 0xF3, 0x10, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF5, 0xD0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF3, 0x18, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF5, 0xD4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF3, 0x18, 0x6C, -0xB1, 0x67, 0x36, 0xF4, 0x08, 0x6E, 0x40, 0xEA, -0x04, 0x92, 0x01, 0x6E, 0x30, 0xF0, 0x20, 0x6B, -0xC4, 0xEA, 0x00, 0xF7, 0xC0, 0x36, 0xC0, 0xF3, -0x44, 0x98, 0xE3, 0xF3, 0x14, 0x6C, 0xB1, 0x67, -0xC3, 0xF5, 0x78, 0x9B, 0x42, 0x10, 0x30, 0xF0, -0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF5, -0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, -0x2B, 0xE9, 0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF5, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF3, -0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE3, 0xF5, 0xC4, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF5, -0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF3, -0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, -0x36, 0xF4, 0x08, 0x6E, 0x40, 0xEA, 0x04, 0x93, -0x01, 0x6E, 0xC0, 0xF3, 0x44, 0x98, 0xC4, 0xEB, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF5, 0x6C, 0x9B, -0x00, 0xF7, 0xC0, 0x36, 0xE3, 0xF3, 0x14, 0x6C, -0xB1, 0x67, 0x6D, 0xEE, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0xE3, 0xF4, -0x30, 0x9A, 0x04, 0x96, 0xC0, 0xF3, 0x44, 0x98, -0x08, 0x6B, 0x6D, 0xEE, 0xB1, 0x67, 0xA3, 0xF3, -0x14, 0x6C, 0x40, 0xEA, 0x0A, 0x94, 0x04, 0x95, -0x00, 0x6E, 0x80, 0x18, 0x82, 0x1A, 0xC0, 0xF3, -0x44, 0x98, 0xB1, 0x67, 0xE3, 0xF3, 0x14, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x04, 0x92, 0x08, 0x6B, -0x03, 0xF3, 0x00, 0x6C, 0x44, 0x36, 0xC0, 0xF3, -0x44, 0x98, 0x6D, 0xEE, 0x0F, 0x6D, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF5, 0xB0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x69, -0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF2, 0xAC, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, -0x0F, 0x6D, 0x0C, 0x6E, 0x40, 0xEA, 0x04, 0x92, -0x05, 0x2A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, -0x04, 0x6C, 0x04, 0x10, 0xC0, 0xF3, 0x44, 0x98, -0x43, 0xF3, 0x1C, 0x6C, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF5, 0xA4, 0x9B, 0x5B, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, -0xC3, 0xF3, 0x14, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0xB0, 0x9A, -0xE3, 0xF3, 0x1C, 0x6C, 0x80, 0x18, 0x35, 0x25, -0xFF, 0xF7, 0x1F, 0x6B, 0x80, 0xF3, 0x0E, 0x6C, -0x6C, 0xEA, 0x98, 0xEA, 0x0A, 0x6C, 0x12, 0xE8, -0x02, 0x30, 0x0A, 0x30, 0x9B, 0xE8, 0x01, 0x2C, -0xE5, 0xE8, 0x10, 0xEC, 0x05, 0x5C, 0x12, 0xE8, -0x6C, 0xE8, 0x02, 0x61, 0x01, 0x48, 0x6C, 0xE8, -0x04, 0x92, 0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF3, 0x04, 0x6C, -0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x44, 0x9A, 0x43, 0xF3, 0x1C, 0x6C, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF5, 0xA4, 0x9B, 0xD0, 0x67, -0x40, 0xEA, 0x04, 0x92, 0x0A, 0x93, 0x7F, 0x4A, -0x1D, 0x4A, 0x44, 0x32, 0x49, 0xE3, 0x00, 0xCA, +0x00, 0x6A, 0x25, 0x67, 0x04, 0xD6, 0x05, 0xD2, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x04, 0x4B, +0xC0, 0x99, 0xE0, 0x9B, 0x30, 0xF0, 0x21, 0x68, +0x12, 0xF5, 0x08, 0x48, 0x90, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x9F, 0x58, 0x04, 0x93, 0x90, 0x67, +0x01, 0x6D, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF3, 0x04, 0x4A, 0xC0, 0x99, 0xE0, 0x9A, +0x04, 0x49, 0x80, 0x18, 0x9F, 0x58, 0x04, 0x93, +0x41, 0xDB, 0x05, 0x92, 0x08, 0x4B, 0x04, 0xD3, +0x01, 0x4A, 0x07, 0x72, 0x05, 0xD2, 0xDC, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0xAC, 0xE8, -0xB0, 0x67, 0x03, 0x6E, 0x24, 0x67, 0x80, 0x18, -0x82, 0x1A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x9B, 0x04, 0x36, 0x08, 0x6B, 0x6D, 0xEE, -0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0xB4, 0x9B, -0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x60, 0xF0, 0x7E, 0xA9, 0x01, 0x6A, 0x44, 0xE8, -0x6C, 0xEA, 0x47, 0xE8, 0x04, 0x22, 0x91, 0x67, -0xB0, 0x67, 0x80, 0x18, 0x4A, 0x1B, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0x68, 0xCC, 0xE8, 0xB0, 0x67, 0x02, 0x6E, -0x24, 0x67, 0x80, 0x18, 0x82, 0x1A, 0x07, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, -0x08, 0x6B, 0x04, 0x36, 0x6D, 0xEE, 0x03, 0xF3, -0x00, 0x6C, 0x0F, 0x6D, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF3, 0xB0, 0x9A, 0x03, 0xF3, -0x08, 0x6C, 0x80, 0x18, 0x35, 0x25, 0x06, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF5, 0x54, 0x9A, -0x30, 0xF0, 0x21, 0x6C, 0xB0, 0x67, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0xE4, 0x9A, -0x00, 0x6E, 0x12, 0xF5, 0x08, 0x4C, 0x80, 0x18, -0x8D, 0x5A, 0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, -0x03, 0x17, 0x06, 0x93, 0x07, 0x92, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x6D, 0xEA, 0xFF, 0x6B, -0x6C, 0xEA, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x30, 0xF0, +0x20, 0x68, 0x2C, 0xEE, 0xC0, 0xF3, 0x64, 0x98, +0x08, 0x6A, 0x04, 0xD6, 0x2C, 0xEF, 0xC4, 0x36, +0x0A, 0xD4, 0x0B, 0xD5, 0x4D, 0xEE, 0x05, 0xD7, +0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x40, 0xEB, +0x05, 0x92, 0x0C, 0x22, 0x0B, 0x96, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xFA, 0x4E, +0x63, 0xF3, 0x04, 0x6C, 0x03, 0xF5, 0xA0, 0x9B, +0x2C, 0xEE, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF5, 0xA0, 0x9B, +0x63, 0xF3, 0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x0A, 0x93, 0x04, 0x92, 0x63, 0xF3, 0x04, 0x6C, +0x41, 0xE3, 0x7D, 0x67, 0x47, 0x43, 0x0D, 0x4A, +0x60, 0xA2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, +0xA0, 0x9A, 0x80, 0xF0, 0x73, 0xC0, 0x80, 0x18, +0x0D, 0x28, 0x80, 0xF0, 0x55, 0xC0, 0x0A, 0x94, +0x04, 0x95, 0x05, 0x96, 0x80, 0x18, 0x81, 0x18, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x4C, 0xEF, +0x4C, 0xED, 0x24, 0x67, 0x0C, 0xD6, 0x04, 0xD7, +0x05, 0x2D, 0xA7, 0x67, 0x80, 0x18, 0x6B, 0x18, +0x01, 0x68, 0x01, 0x2A, 0x00, 0x68, 0x0C, 0x95, +0x04, 0x96, 0x91, 0x67, 0xF0, 0x67, 0x80, 0x18, +0x8F, 0x19, 0x50, 0x67, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x6A, 0x25, 0x67, 0x4C, 0xEE, 0x4C, 0xE9, -0xEC, 0xEA, 0x01, 0x72, 0x04, 0x67, 0x04, 0xD6, -0x17, 0x61, 0xB1, 0x67, 0x04, 0x6E, 0x80, 0x18, -0x82, 0x1A, 0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, -0x36, 0x18, 0x00, 0xF6, 0x00, 0x5A, 0x04, 0x61, -0x04, 0x93, 0x02, 0x6A, 0x23, 0x2B, 0x25, 0x10, -0x04, 0x94, 0x00, 0xF3, 0x00, 0x5A, 0x78, 0x67, -0x01, 0x5C, 0x58, 0x67, 0x1E, 0x2B, 0x1A, 0x10, -0x19, 0x2A, 0xB1, 0x67, 0x00, 0x6E, 0x80, 0x18, -0xEF, 0x17, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF5, -0x78, 0x9B, 0x43, 0xEB, 0x11, 0x60, 0x42, 0x34, -0x96, 0x34, 0x80, 0x18, 0x1E, 0x13, 0x03, 0x6B, -0x78, 0xEA, 0x03, 0x6A, 0x12, 0xEB, 0xFE, 0xF0, -0x02, 0x4B, 0xE0, 0xF3, 0x09, 0x5B, 0x05, 0x60, -0xFA, 0x5B, 0x02, 0x61, 0x00, 0x6A, 0x01, 0x10, -0x04, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xF7, 0x63, 0x11, 0x62, -0x10, 0xD1, 0x0F, 0xD0, 0xFF, 0x6A, 0x25, 0x67, -0x4C, 0xEE, 0x4C, 0xEF, 0x4C, 0xE9, 0x00, 0x6A, -0x12, 0xD4, 0x0C, 0xD6, 0x0A, 0xD7, 0x07, 0xD2, -0x08, 0xD2, 0x09, 0xD2, 0x06, 0xD2, 0x02, 0x67, -0x06, 0x5A, 0x80, 0xF0, 0x1C, 0x60, 0x30, 0xF0, -0x20, 0x6B, 0x48, 0x32, 0xA2, 0xF4, 0x00, 0x4B, -0x49, 0xE3, 0x40, 0x9A, 0x00, 0xEA, 0x30, 0xF0, -0x21, 0x68, 0x12, 0xF5, 0x08, 0x48, 0x90, 0x67, -0xB1, 0x67, 0x56, 0x6E, 0x1F, 0x6F, 0x80, 0x18, -0x1A, 0x5A, 0x90, 0x67, 0xB1, 0x67, 0x00, 0x6E, -0xE0, 0xF3, 0x00, 0x6F, 0x0B, 0xD2, 0x80, 0x18, -0x1A, 0x5A, 0x0A, 0x94, 0x06, 0xD2, 0x0D, 0x2C, -0x12, 0x94, 0x08, 0x96, 0xB1, 0x67, 0x01, 0x6F, -0x80, 0x18, 0x4E, 0x1C, 0x07, 0x2A, 0x0C, 0x92, -0x04, 0x22, 0x01, 0x6B, 0x09, 0xD3, 0x0A, 0x92, -0x01, 0x10, 0x05, 0x6A, 0x06, 0x94, 0xFF, 0x6B, -0x0B, 0x90, 0x6C, 0xEC, 0x06, 0xD4, 0x07, 0x94, -0x6C, 0xE8, 0x01, 0x4C, 0x6C, 0xEC, 0x07, 0xD4, -0x60, 0x10, 0x06, 0x92, 0x0F, 0x5A, 0x12, 0x60, -0x06, 0x92, 0xFF, 0x6B, 0xF4, 0x4A, 0x6C, 0xEA, -0x03, 0x5A, 0x54, 0x60, 0x00, 0x6A, 0x30, 0xF0, -0x21, 0x6C, 0x04, 0xD2, 0x12, 0xF5, 0x08, 0x4C, -0xB1, 0x67, 0xC2, 0x67, 0x13, 0x10, 0x06, 0x93, -0x0C, 0x5B, 0x02, 0x60, 0x0C, 0x6A, 0x07, 0x10, -0x06, 0x92, 0xFF, 0x6B, 0xF4, 0x4A, 0x6C, 0xEA, -0x03, 0x5A, 0x40, 0x60, 0x0F, 0x6A, 0x30, 0xF0, -0x21, 0x6C, 0x04, 0xD2, 0x12, 0xF5, 0x08, 0x4C, -0xB1, 0x67, 0x00, 0x6E, 0xE0, 0xF3, 0x00, 0x6F, -0x80, 0x18, 0x8D, 0x5A, 0x35, 0x10, 0x3B, 0x20, -0xFF, 0x6A, 0xFE, 0x48, 0x30, 0xF0, 0x21, 0x6C, -0x4C, 0xE8, 0x12, 0xF5, 0x08, 0x4C, 0xB1, 0x67, -0x56, 0x6E, 0x1F, 0x6F, 0x04, 0xD0, 0x80, 0x18, -0x8D, 0x5A, 0x00, 0x6C, 0x08, 0xD4, 0x44, 0x67, -0x24, 0x10, 0x1F, 0x70, 0x02, 0x61, 0x1F, 0x68, -0x26, 0x10, 0xFF, 0x6A, 0x03, 0x48, 0x30, 0xF0, -0x21, 0x6C, 0x4C, 0xE8, 0x12, 0xF5, 0x08, 0x4C, -0xB1, 0x67, 0x56, 0x6E, 0x1F, 0x6F, 0x04, 0xD0, -0x80, 0x18, 0x8D, 0x5A, 0x00, 0x6A, 0x08, 0xD2, -0x10, 0x10, 0x12, 0x94, 0xB1, 0x67, 0x01, 0x6E, -0x80, 0x18, 0x82, 0x1A, 0x12, 0x94, 0x08, 0x96, -0xB1, 0x67, 0x00, 0x6F, 0x80, 0x18, 0x4E, 0x1C, -0x0A, 0x22, 0x03, 0x10, 0x01, 0x6B, 0x08, 0xD3, -0x00, 0x6A, 0x09, 0x94, 0x04, 0x2C, 0x07, 0x93, -0x06, 0x5B, 0x7F, 0xF7, 0x01, 0x61, 0x50, 0x67, -0x11, 0x97, 0x10, 0x91, 0x0F, 0x90, 0x09, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, -0x0E, 0xD1, 0x0D, 0xD0, 0xFF, 0x68, 0xAC, 0xE8, -0xB0, 0x67, 0x24, 0x67, 0x80, 0x18, 0xE2, 0x18, -0x30, 0xF0, 0x21, 0x6C, 0x1F, 0x6F, 0x00, 0x6E, -0x12, 0xF5, 0x08, 0x4C, 0xB0, 0x67, 0x0A, 0xD2, -0x80, 0x18, 0x1A, 0x5A, 0x91, 0x67, 0xB0, 0x67, -0x09, 0xD2, 0x80, 0x18, 0xB2, 0x19, 0x91, 0x67, -0xB0, 0x67, 0x04, 0x6E, 0x80, 0x18, 0x82, 0x1A, -0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, 0x36, 0x18, -0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, 0x49, 0x18, -0x0D, 0x22, 0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, -0xB2, 0x19, 0x91, 0x67, 0xB0, 0x67, 0x04, 0x6E, -0x80, 0x18, 0x82, 0x1A, 0x91, 0x67, 0xB0, 0x67, -0x80, 0x18, 0x49, 0x18, 0x91, 0x67, 0xB0, 0x67, -0x80, 0x18, 0xA3, 0x18, 0x91, 0x67, 0xB0, 0x67, -0x00, 0x6E, 0x01, 0x6F, 0x07, 0xD2, 0x80, 0x18, -0x71, 0x1C, 0x91, 0x67, 0xB0, 0x67, 0x08, 0xD2, -0x80, 0x18, 0xD2, 0x17, 0x08, 0x93, 0x00, 0x6C, -0x06, 0xD4, 0x43, 0xEB, 0x06, 0x61, 0x4B, 0xE3, -0x06, 0xD2, 0x06, 0x94, 0xFF, 0x6A, 0x4C, 0xEC, -0x06, 0xD4, 0x06, 0x92, 0x30, 0xF0, 0x21, 0x6C, -0x12, 0xF5, 0x08, 0x4C, 0xB0, 0x67, 0x56, 0x6E, -0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, -0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, 0xA3, 0x18, -0x07, 0x93, 0x43, 0xEB, 0x02, 0x60, 0x6B, 0xE2, -0x02, 0x10, 0x07, 0x94, 0x4B, 0xE4, 0xFF, 0x6B, -0x6C, 0xEA, 0x01, 0xE1, 0x20, 0xF1, 0x5C, 0xC0, -0x09, 0x93, 0x0A, 0x94, 0x0F, 0x97, 0x0E, 0x91, -0x8B, 0xE3, 0x06, 0x93, 0x0D, 0x90, 0x49, 0xE3, -0xFF, 0x6B, 0x6C, 0xEA, 0x08, 0x63, 0x00, 0xEF, +0xE3, 0xF3, 0x1C, 0x68, 0x01, 0x6D, 0x90, 0x67, +0xAB, 0xED, 0x80, 0x18, 0x0D, 0x28, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF5, 0xB0, 0x9A, 0x90, 0x67, +0xFF, 0xF7, 0x1F, 0x69, 0x80, 0x18, 0x0D, 0x28, +0x90, 0x67, 0xB1, 0x67, 0x04, 0xD2, 0x80, 0x18, +0x0D, 0x28, 0xE3, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, +0x04, 0xF0, 0x00, 0x6C, 0x53, 0xE4, 0x04, 0x92, +0x6C, 0xEC, 0xFF, 0x4C, 0x4C, 0xEB, 0x2C, 0xEC, +0x60, 0x32, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x40, 0x32, 0x8D, 0xEA, 0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x68, 0xAC, 0xE8, 0xB0, 0x67, 0x24, 0x67, -0x80, 0x18, 0xCD, 0x1C, 0xA2, 0x67, 0x91, 0x67, -0xD0, 0x67, 0x04, 0xD2, 0x80, 0x18, 0x2E, 0x1C, -0x04, 0x96, 0x91, 0x67, 0xA2, 0x67, 0xF0, 0x67, -0x80, 0x18, 0xDE, 0x16, 0x09, 0xE1, 0x80, 0xF0, -0x53, 0xA2, 0x07, 0x22, 0x60, 0xF0, 0x7E, 0xA9, -0x01, 0x6A, 0x44, 0xE8, 0x6D, 0xEA, 0x60, 0xF0, -0x5E, 0xC9, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0xFF, 0x6A, 0xAC, 0xEA, 0x30, 0xF0, 0x20, 0x68, +0x05, 0xD2, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0x24, 0x67, 0xAB, 0xED, 0x03, 0xF3, 0x00, 0x6C, +0x0C, 0x6E, 0x40, 0xEA, 0x05, 0x93, 0x0F, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0xE3, 0xF2, 0xB8, 0x9B, 0xA3, 0xF3, 0x14, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x04, 0x6C, 0x11, 0x10, 0x05, 0x94, +0x01, 0x74, 0x15, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF2, 0xB8, 0x9B, +0xA3, 0xF3, 0x14, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF3, 0x1C, 0x6C, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF5, 0xD4, 0x9B, +0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x64, 0x98, 0x43, 0xF5, 0xD8, 0x9A, 0x01, 0x6D, +0xAB, 0xED, 0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, +0x91, 0x67, 0x80, 0x18, 0xC4, 0x19, 0x05, 0x94, +0x50, 0x6D, 0xB8, 0xEC, 0xAF, 0x4D, 0xC3, 0xF3, +0x14, 0x6C, 0x12, 0xEB, 0x6D, 0xE1, 0x04, 0xD3, +0x80, 0xF0, 0x58, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x64, 0x98, 0x43, 0xF5, 0xDC, 0x9A, +0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, 0xC4, 0x19, +0x04, 0x93, 0x01, 0x6D, 0xAB, 0xED, 0x80, 0xF0, +0x5C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x64, 0x98, 0x63, 0xF5, 0xC0, 0x9A, 0xC3, 0xF3, +0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, +0xC4, 0x19, 0x04, 0x94, 0x01, 0x6D, 0xAB, 0xED, +0xA0, 0xF0, 0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x64, 0x98, 0x63, 0xF5, 0xC4, 0x9A, +0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, +0x80, 0x18, 0xC4, 0x19, 0x04, 0x95, 0xC3, 0xF3, +0x14, 0x6C, 0xA0, 0xF0, 0x44, 0xDD, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0x63, 0xF5, +0xC8, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEB, +0x91, 0x67, 0x80, 0x18, 0xC4, 0x19, 0x04, 0x93, +0x01, 0x6D, 0xAB, 0xED, 0xA0, 0xF0, 0x48, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, +0x63, 0xF5, 0xCC, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, +0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, 0xC4, 0x19, +0x04, 0x94, 0x01, 0x6D, 0xAB, 0xED, 0xA0, 0xF0, +0x4C, 0xDC, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x64, 0x98, 0x63, 0xF5, 0xD0, 0x9A, 0xC3, 0xF3, +0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, +0xC4, 0x19, 0x04, 0x95, 0xC3, 0xF3, 0x14, 0x6C, +0xA0, 0xF0, 0x50, 0xDD, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x64, 0x98, 0x63, 0xF5, 0xD4, 0x9A, +0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEB, 0x91, 0x67, +0x80, 0x18, 0xC4, 0x19, 0x04, 0x93, 0x01, 0x6D, +0xAB, 0xED, 0xA0, 0xF0, 0x54, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0x63, 0xF5, +0xD8, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, +0x91, 0x67, 0x80, 0x18, 0xC4, 0x19, 0x04, 0x94, +0x01, 0x6D, 0xAB, 0xED, 0xA0, 0xF0, 0x58, 0xDC, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, +0x63, 0xF5, 0xDC, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, +0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, 0xC4, 0x19, +0x04, 0x95, 0xC3, 0xF3, 0x14, 0x6C, 0xA0, 0xF0, +0x5C, 0xDD, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x64, 0x98, 0x83, 0xF5, 0xC0, 0x9A, 0x01, 0x6D, +0xAB, 0xED, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, +0xC4, 0x19, 0x04, 0x93, 0x01, 0x6D, 0xAB, 0xED, +0xC0, 0xF0, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x64, 0x98, 0x83, 0xF5, 0xC4, 0x9A, +0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, +0x80, 0x18, 0xC4, 0x19, 0x04, 0x94, 0x01, 0x6D, +0xAB, 0xED, 0xC0, 0xF0, 0x44, 0xDC, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0x83, 0xF5, +0xC8, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, +0x91, 0x67, 0x80, 0x18, 0xC4, 0x19, 0x05, 0x93, +0x50, 0x6C, 0x01, 0x6D, 0x01, 0x4B, 0x98, 0xEB, +0xAB, 0xED, 0x83, 0xF3, 0x04, 0x4C, 0x12, 0xEB, +0x6D, 0xE1, 0x5E, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x64, 0x98, 0x83, 0xF5, 0xCC, 0x9A, +0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, 0xC4, 0x19, +0x04, 0x95, 0xC3, 0xF3, 0x14, 0x6C, 0xC0, 0xF0, +0x4C, 0xDD, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x64, 0x98, 0x83, 0xF5, 0xD0, 0x9A, 0x01, 0x6D, +0xAB, 0xED, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, +0xC4, 0x19, 0x04, 0x93, 0x01, 0x6D, 0xAB, 0xED, +0xC0, 0xF0, 0x50, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x64, 0x98, 0x83, 0xF5, 0xD4, 0x9A, +0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, +0x80, 0x18, 0xC4, 0x19, 0x04, 0x94, 0x01, 0x6D, +0xAB, 0xED, 0xC0, 0xF0, 0x54, 0xDC, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0x83, 0xF5, +0xD8, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, +0x91, 0x67, 0x80, 0x18, 0xC4, 0x19, 0x04, 0x95, +0xC3, 0xF3, 0x14, 0x6C, 0xC0, 0xF0, 0x58, 0xDD, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, +0x83, 0xF5, 0xDC, 0x9A, 0x01, 0x6D, 0xAB, 0xED, +0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, 0xC4, 0x19, +0x04, 0x93, 0x01, 0x6D, 0xAB, 0xED, 0xC0, 0xF0, +0x5C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x64, 0x98, 0xA3, 0xF5, 0xC0, 0x9A, 0xC3, 0xF3, +0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, +0xC4, 0x19, 0x04, 0x94, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF5, 0xC4, 0x9B, 0xE0, 0xF0, 0x40, 0xDC, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xAB, 0xED, +0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEA, 0x91, 0x67, +0x80, 0x18, 0xC4, 0x19, 0x04, 0x95, 0xE0, 0xF0, +0x44, 0xDD, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xFF, 0x6A, 0x4C, 0xED, 0xC0, 0xF3, 0x44, 0x98, +0x08, 0x6B, 0xA4, 0x36, 0x6D, 0xEE, 0x03, 0xF3, +0x00, 0x6C, 0x0F, 0x6D, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF3, 0x08, 0x69, 0x91, 0x67, +0x08, 0xF0, 0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, 0xC8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC3, 0xF3, +0x14, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xE3, 0xF3, +0x1C, 0x6C, 0xF0, 0x6D, 0x80, 0x18, 0x0D, 0x28, +0x04, 0xD2, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x08, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x04, 0x92, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0xFF, 0x6B, 0x6C, 0xEA, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6A, 0x4C, 0xED, +0x4C, 0xEE, 0x01, 0x69, 0xC0, 0xF3, 0x44, 0x98, +0x08, 0x6B, 0x2B, 0xE9, 0x04, 0xD6, 0xA4, 0x36, +0x6D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF3, +0x08, 0x6C, 0x08, 0xF0, 0x00, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, +0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, +0x14, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF3, 0x0C, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0x04, 0x92, 0x04, 0x22, +0x02, 0x72, 0x00, 0x68, 0x2C, 0x60, 0x44, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF2, 0xDC, 0x9B, 0xB1, 0x67, 0x43, 0xF3, +0x0C, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF5, 0xB0, 0x9A, 0xE3, 0xF3, 0x1C, 0x69, +0x91, 0x67, 0x80, 0x18, 0x0D, 0x28, 0x91, 0x67, +0xFF, 0xF7, 0x1F, 0x6D, 0x02, 0x67, 0x80, 0x18, +0x0D, 0x28, 0x22, 0x67, 0x42, 0x32, 0x5E, 0x32, +0x05, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, +0x5C, 0x9A, 0x27, 0xE2, 0x02, 0x32, 0x5E, 0x32, +0x21, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, +0x5C, 0x9A, 0x03, 0xE2, 0x1B, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF2, 0x7C, 0x9B, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x69, +0x2B, 0xE9, 0x00, 0xF6, 0x00, 0x36, 0x43, 0xF3, +0x0C, 0x6C, 0xB1, 0x67, 0x6D, 0xEE, 0x40, 0xEA, +0x01, 0x48, 0xE3, 0xF3, 0x1C, 0x6C, 0xB1, 0x67, +0x80, 0x18, 0x0D, 0x28, 0x40, 0x70, 0xE7, 0x61, +0x00, 0x68, 0x30, 0x67, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, 0x43, 0xF3, +0x0C, 0x6C, 0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, +0x18, 0xE8, 0x09, 0x97, 0x12, 0xE8, 0x38, 0xE9, +0x12, 0xE9, 0x29, 0xE0, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x00, 0x6D, 0x04, 0x67, 0x80, 0x18, -0x08, 0x1D, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, -0x08, 0x1D, 0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, -0x15, 0x1C, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, -0x15, 0x1C, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xDF, 0x63, 0x41, 0x62, -0x40, 0xD1, 0x3F, 0xD0, 0x30, 0xF0, 0x20, 0x6D, -0x24, 0x67, 0xC2, 0xF4, 0x14, 0x4D, 0x2B, 0x04, -0x48, 0x6E, 0x00, 0x18, 0xEC, 0xD7, 0x30, 0xF0, -0x20, 0x6D, 0x04, 0x04, 0xA2, 0xF4, 0x18, 0x4D, -0x1C, 0x6E, 0x00, 0x18, 0xEC, 0xD7, 0x52, 0x99, -0x40, 0xA2, 0x04, 0x2A, 0x91, 0x67, 0x80, 0x18, -0x37, 0x1B, 0x3C, 0x2A, 0x91, 0x67, 0x80, 0x18, -0x7B, 0x18, 0x04, 0x00, 0x12, 0x6F, 0x91, 0x67, -0x2B, 0x05, 0x19, 0x06, 0x80, 0x18, 0x94, 0x18, -0x0B, 0x06, 0xB0, 0x67, 0x91, 0x67, 0x80, 0x18, -0x9F, 0x16, 0x91, 0x67, 0x80, 0x18, 0x4C, 0x16, -0x91, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x7F, 0x13, -0x01, 0x6D, 0x91, 0x67, 0x80, 0x18, 0x59, 0x13, -0x91, 0x67, 0x80, 0x18, 0x78, 0x19, 0x91, 0x67, -0x80, 0x18, 0xC4, 0x18, 0x91, 0x67, 0x80, 0x18, -0x1B, 0x1D, 0x91, 0x67, 0x80, 0x18, 0xD6, 0x15, -0x91, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x59, 0x13, -0x91, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x7F, 0x13, -0xB0, 0x67, 0x0B, 0x06, 0x91, 0x67, 0x80, 0x18, -0xDA, 0x19, 0x91, 0x67, 0x80, 0x18, 0xF4, 0x19, -0x91, 0x67, 0x2B, 0x05, 0x19, 0x06, 0x12, 0x6F, -0x80, 0x18, 0x3A, 0x13, 0x41, 0x97, 0x40, 0x91, -0x3F, 0x90, 0x21, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0x69, 0x2C, 0xED, 0x01, 0x75, 0x58, 0x67, -0x0C, 0xD4, 0x06, 0xD2, 0x80, 0xF0, 0x0C, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x24, 0x9A, -0x00, 0x6D, 0xC5, 0x67, 0xF1, 0x67, 0x80, 0x18, -0x1A, 0x5A, 0x30, 0xF0, 0x20, 0x68, 0x0C, 0x94, -0x2B, 0xF1, 0x18, 0x48, 0xF1, 0x67, 0x43, 0xF6, -0x58, 0xD8, 0x01, 0x6D, 0x00, 0x6E, 0x80, 0x18, -0x1A, 0x5A, 0x43, 0xF6, 0x5C, 0xD8, 0x30, 0xF0, -0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, -0x0C, 0x6C, 0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x00, 0x6E, 0x08, 0xF1, -0x0C, 0x6C, 0x03, 0x6D, 0x40, 0xEA, 0x01, 0x6D, -0x21, 0xF0, 0x04, 0x6C, 0xAB, 0xED, 0x80, 0x18, -0x35, 0x25, 0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x64, 0x98, 0x03, 0xF5, 0xA4, 0x9A, -0x21, 0xF0, 0x04, 0x6C, 0x03, 0x6E, 0x40, 0xEB, -0x06, 0x93, 0x0C, 0x94, 0x00, 0x6D, 0xC5, 0x67, -0xF1, 0x67, 0x04, 0xD3, 0x80, 0x18, 0x8D, 0x5A, -0x06, 0x92, 0x0C, 0x94, 0xF1, 0x67, 0x01, 0x6D, -0x00, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, -0xC0, 0xF3, 0x44, 0x98, 0x07, 0x96, 0x01, 0x6D, -0x21, 0xF0, 0x04, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x0C, 0x94, 0x00, 0x68, 0x80, 0x18, 0x07, 0x5B, -0x0C, 0x94, 0x80, 0x18, 0x1F, 0x57, 0x1B, 0x2A, -0xE0, 0xF3, 0x09, 0x70, 0x0D, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF2, 0x68, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0x83, 0xF6, 0x98, 0x9C, 0x40, 0x9B, -0x8D, 0xEA, 0x40, 0xDB, 0x00, 0x6A, 0x91, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, -0x32, 0x6C, 0x01, 0x48, 0x40, 0xEA, 0xFF, 0xF7, -0x1F, 0x6A, 0x4C, 0xE8, 0xE1, 0x17, 0x30, 0xF0, -0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, -0x04, 0x6C, 0x08, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0x6C, 0x9A, -0xFE, 0x6A, 0x01, 0x6D, 0x80, 0xA3, 0xC5, 0x67, -0x8C, 0xEA, 0x40, 0xC3, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF4, 0x04, 0x6C, 0x40, 0xEA, 0x6C, 0x10, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0x01, 0x6D, 0x00, 0x6E, 0x23, 0xF4, 0x04, 0x6C, -0x40, 0xEA, 0x00, 0x18, 0x8D, 0xEB, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF1, 0x6C, 0x9A, 0x01, 0x6C, -0x40, 0xA3, 0x2C, 0xEA, 0x8D, 0xEA, 0x2C, 0xEA, -0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x69, 0x2B, 0xF1, -0x18, 0x49, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x01, 0x6E, 0x63, 0xF4, 0x04, 0x6C, 0x08, 0x6D, -0x40, 0xEA, 0x01, 0x6D, 0x21, 0xF0, 0x04, 0x6C, -0xAB, 0xED, 0x80, 0x18, 0x35, 0x25, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF5, 0xA4, 0x9B, 0x06, 0xD2, -0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, 0x04, 0x6C, -0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF3, 0x04, 0x4B, 0xE0, 0x9B, 0x43, 0xF6, -0x58, 0x99, 0x0C, 0x94, 0x00, 0x6D, 0xC5, 0x67, -0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, 0x43, 0xF6, -0x5C, 0x99, 0x0C, 0x94, 0x01, 0x6D, 0x04, 0xD2, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, +0x0C, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF5, 0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x00, 0x6E, 0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0xB0, 0x9A, +0xE3, 0xF3, 0x1C, 0x6C, 0x80, 0x18, 0x0D, 0x28, +0x05, 0x97, 0x04, 0x90, 0xFF, 0xF7, 0x1F, 0x6B, +0x6C, 0xEA, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF5, 0xD0, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, +0x01, 0x6D, 0xC3, 0xF3, 0x14, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, +0xB0, 0x9A, 0xE3, 0xF3, 0x1C, 0x69, 0x91, 0x67, +0x80, 0x18, 0x0D, 0x28, 0xFF, 0xF7, 0x1F, 0x68, +0x91, 0x67, 0xE1, 0xF7, 0x1F, 0x6D, 0x4C, 0xE8, +0xFF, 0xF7, 0x1F, 0x69, 0x80, 0x18, 0x0D, 0x28, +0x4C, 0xE9, 0x02, 0x32, 0x4E, 0x32, 0x01, 0x72, +0x06, 0x61, 0x02, 0xF0, 0x00, 0x6A, 0x03, 0xE2, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0x22, 0x32, +0x4E, 0x32, 0x01, 0x72, 0x06, 0x61, 0x02, 0xF0, +0x00, 0x6A, 0x27, 0xE2, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x01, 0x6D, 0xF0, 0x6E, 0xC3, 0xF3, +0x14, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xE3, 0xF3, +0x1C, 0x6C, 0xFF, 0x6D, 0x80, 0x18, 0x0D, 0x28, +0xE3, 0xF3, 0x1C, 0x6C, 0x1F, 0xF7, 0x00, 0x6D, +0x04, 0xD2, 0x80, 0x18, 0x0D, 0x28, 0xC9, 0x58, +0x0C, 0x60, 0xC9, 0x59, 0x0A, 0x60, 0x04, 0x93, +0xFF, 0x6A, 0x6C, 0xEA, 0x28, 0x5A, 0x05, 0x61, +0x42, 0x5A, 0x58, 0x67, 0x01, 0x6B, 0x6E, 0xEA, +0x01, 0x10, 0x01, 0x6A, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF1, 0xB8, 0x9A, 0x04, 0x67, +0x63, 0xF6, 0x1C, 0x6C, 0x80, 0x18, 0x0D, 0x28, +0x01, 0x22, 0x01, 0x6A, 0x60, 0xF0, 0x5B, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0xE4, 0x9A, +0x30, 0xF0, 0x21, 0x6C, 0x12, 0xF5, 0x08, 0x4C, +0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, 0x9F, 0x58, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0x7C, 0x9B, +0x80, 0xF0, 0x50, 0xC0, 0x05, 0x97, 0x4C, 0xEB, +0x62, 0x33, 0x62, 0x33, 0x80, 0xF0, 0x71, 0xC0, +0x06, 0xF0, 0x00, 0x6B, 0x4C, 0xEB, 0x62, 0x33, +0x72, 0x33, 0x80, 0xF0, 0x72, 0xC0, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x00, 0x6A, 0x0D, 0xD7, +0x05, 0x67, 0x26, 0x67, 0x04, 0xD2, 0x0B, 0x10, +0x80, 0xA8, 0x01, 0x6D, 0xAB, 0xED, 0x80, 0x18, +0x0D, 0x28, 0x40, 0xD9, 0x04, 0x93, 0x04, 0x48, +0x04, 0x49, 0x01, 0x4B, 0x04, 0xD3, 0x04, 0x92, +0x0D, 0x93, 0x63, 0xEA, 0xF1, 0x61, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0x1C, 0x4B, +0xE0, 0x9B, 0xFF, 0x69, 0x30, 0xF0, 0x21, 0x68, +0xAC, 0xE9, 0x12, 0xF5, 0x08, 0x48, 0x90, 0x67, +0xB1, 0x67, 0x01, 0x6A, 0x42, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x00, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0x1C, 0x4A, +0xE0, 0x9A, 0x90, 0x67, 0xB1, 0x67, 0x42, 0x6E, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF2, 0x1C, 0x4A, 0xE0, 0x9A, 0x01, 0x6B, +0xB1, 0x67, 0x90, 0x67, 0x42, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x0F, 0x6C, 0x40, 0xEA, +0x90, 0x67, 0xB1, 0x67, 0x42, 0x6E, 0x7E, 0x6F, +0x80, 0x18, 0x9F, 0x58, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0xFF, 0x6B, 0x6C, 0xEA, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x00, 0x6A, 0x0A, 0xD4, +0x60, 0xF0, 0x5E, 0xCC, 0x0A, 0x90, 0x04, 0xD4, +0x00, 0x69, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x64, 0x9A, 0x24, 0x36, 0x08, 0x6A, 0x4D, 0xEE, +0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x40, 0xEB, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x43, 0xF3, 0x18, 0x6C, 0x7F, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x00, 0x6A, 0x80, 0xF0, 0x55, 0xC0, +0x80, 0xF0, 0x53, 0xC0, 0x04, 0x94, 0x5B, 0x6B, +0xB1, 0x67, 0x20, 0xF1, 0x78, 0xCC, 0x80, 0xF0, +0x44, 0xC0, 0x0A, 0x94, 0x01, 0x49, 0x80, 0x18, +0x7A, 0x1B, 0x80, 0xF0, 0x40, 0xC0, 0x04, 0x92, +0x02, 0x71, 0x01, 0x48, 0x02, 0x4A, 0x04, 0xD2, +0xD4, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x0C, 0xD4, 0x80, 0xF0, +0x51, 0xA4, 0xFF, 0x68, 0xAC, 0xE8, 0x07, 0xD2, +0x5D, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, +0x04, 0x4B, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0x9B, +0xA3, 0xF5, 0x54, 0x9A, 0x30, 0xF0, 0x21, 0x69, +0x12, 0xF5, 0x08, 0x49, 0x91, 0x67, 0xB0, 0x67, +0x00, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x04, 0x4A, -0xE0, 0x9A, 0x00, 0x6E, 0x80, 0x18, 0x8D, 0x5A, -0xC0, 0xF3, 0x44, 0x98, 0x06, 0x96, 0x01, 0x6D, -0xAB, 0xED, 0x21, 0xF0, 0x04, 0x6C, 0x40, 0xEA, -0x0C, 0x94, 0x80, 0x18, 0x1E, 0x5B, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0x6D, 0xC5, 0x67, 0x03, 0xF0, -0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x03, 0x6D, 0x08, 0xF1, 0x0C, 0x6C, 0xC5, 0x67, -0x40, 0xEA, 0x0C, 0x94, 0x80, 0x18, 0xD8, 0x5A, -0x01, 0x6A, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF2, -0x08, 0x4A, 0x66, 0xAA, 0xEF, 0xF7, 0x1F, 0x68, -0x01, 0x4B, 0x66, 0xCA, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF6, 0x4C, 0x9A, 0x02, 0x6B, 0x40, 0xAA, -0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0xEF, 0xF6, -0x50, 0xAA, 0x0E, 0xEA, 0x6C, 0xEA, 0x04, 0x22, -0x80, 0x18, 0x4C, 0x7B, 0x00, 0x18, 0x12, 0xD9, -0x02, 0x6B, 0x50, 0x67, 0x6C, 0xEA, 0x08, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xEF, 0xF6, 0x50, 0xAA, -0x6C, 0xEA, 0x02, 0x2A, 0x80, 0x18, 0x4C, 0x7B, -0x30, 0xF0, 0x20, 0x6A, 0xEF, 0xF6, 0x10, 0xCA, -0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF2, 0x16, 0xCA, -0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF5, 0x50, 0x9A, -0x04, 0x6C, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, -0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0xEB, 0xF1, -0x00, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0x80, 0xA4, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x01, 0x6B, -0x8C, 0xEB, 0x03, 0xF6, 0xA2, 0xA2, 0x64, 0x34, -0x03, 0x6B, 0x6B, 0xEB, 0xAC, 0xEB, 0x8D, 0xEB, -0x03, 0xF6, 0x62, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0xE0, 0x9A, 0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, +0x80, 0x18, 0x9F, 0x58, 0x06, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF1, 0xFC, 0x9A, 0x01, 0x6B, +0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x01, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0xFC, 0x9A, +0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, 0x80, 0x18, +0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, 0x07, 0x93, +0xA3, 0xF5, 0xF8, 0x9A, 0x91, 0x67, 0xB0, 0x67, +0x55, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x12, 0x59, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x04, 0x4B, +0xE0, 0x9B, 0x06, 0x92, 0x91, 0x67, 0xB0, 0x67, +0x56, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x55, 0x6E, +0x1C, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x07, 0x93, 0x30, 0xF0, 0x20, 0x6A, 0x91, 0x67, +0x04, 0xD3, 0xB0, 0x67, 0x87, 0x6E, 0x63, 0xF2, +0xF8, 0x9A, 0x6B, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF5, 0x54, 0x9A, 0x30, 0xF0, 0x21, 0x69, +0x12, 0xF5, 0x08, 0x49, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF3, 0x04, 0x4A, 0xE0, 0x9A, +0x91, 0x67, 0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, +0x12, 0x59, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, +0x04, 0x4B, 0xE0, 0x9B, 0x91, 0x67, 0xB0, 0x67, +0x56, 0x6E, 0x80, 0x18, 0x9F, 0x58, 0x06, 0xD2, +0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF1, 0xFC, 0x9A, 0x91, 0x67, 0xB0, 0x67, +0xDE, 0x6E, 0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF2, 0xFC, 0x9A, 0x01, 0x6B, +0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x00, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF5, 0xF8, 0x9A, +0x91, 0x67, 0xB0, 0x67, 0x55, 0x6E, 0x80, 0x18, +0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, +0x04, 0x4A, 0x06, 0x93, 0xE0, 0x9A, 0x91, 0x67, +0xB0, 0x67, 0x56, 0x6E, 0x04, 0xD3, 0x80, 0x18, +0x12, 0x59, 0x00, 0x6B, 0x91, 0x67, 0xB0, 0x67, +0x63, 0x6E, 0x18, 0xF0, 0x00, 0x6F, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x06, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x63, 0x6E, 0x1C, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x63, 0x6E, 0x06, 0xF0, 0x00, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x00, 0x6B, +0x04, 0xD3, 0x91, 0x67, 0xB0, 0x67, 0x8A, 0x6E, +0x18, 0x6F, 0x80, 0x18, 0x12, 0x59, 0x91, 0x67, +0x30, 0xF0, 0x21, 0x69, 0x0F, 0x6A, 0xB0, 0x67, +0x00, 0x6E, 0xE0, 0xF3, 0x00, 0x6F, 0x12, 0xF5, +0x08, 0x49, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, +0x04, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x1A, 0x6E, +0x01, 0xF4, 0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x0C, 0x93, 0x80, 0xF0, 0x52, 0xA3, +0x01, 0x72, 0x02, 0x6A, 0x01, 0x60, 0x01, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x1A, 0x6E, 0x0E, 0xF0, +0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x30, 0xF0, 0x21, 0x6C, 0xB0, 0x67, 0x8F, 0x6E, +0x02, 0x6F, 0x30, 0xF0, 0x20, 0x68, 0x01, 0x6A, +0x12, 0xF5, 0x08, 0x4C, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x80, 0xF3, 0x4C, 0x98, 0x14, 0x6C, +0x40, 0xEA, 0x80, 0xF3, 0x4C, 0x98, 0x14, 0x6C, +0x40, 0xEA, 0x80, 0xF3, 0x4C, 0x98, 0x14, 0x6C, +0x40, 0xEA, 0x80, 0xF3, 0x4C, 0x98, 0x14, 0x6C, +0x40, 0xEA, 0x80, 0xF3, 0x4C, 0x98, 0x14, 0x6C, +0x40, 0xEA, 0x06, 0x93, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x1F, 0x6A, 0x6C, 0xEA, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x00, 0x69, 0x0A, 0xD4, +0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF3, 0xE4, 0x9A, 0x30, 0xF0, 0x21, 0x6C, +0xFF, 0x6D, 0x12, 0xF5, 0x08, 0x4C, 0x2C, 0xED, +0x19, 0x6E, 0x30, 0xF0, 0x20, 0x68, 0x80, 0x18, +0x12, 0x59, 0xC0, 0xF3, 0x64, 0x98, 0x08, 0x6A, +0x24, 0x36, 0x01, 0x6D, 0x4D, 0xEE, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, 0x0A, 0x93, +0x80, 0xF0, 0x51, 0xA3, 0x0B, 0x2A, 0x01, 0x6D, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0xA3, 0xF5, +0xDC, 0x9B, 0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF5, 0xC0, 0x9B, +0x01, 0x6D, 0x63, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF3, 0x04, 0x6C, 0x0E, 0xF0, +0x00, 0x6D, 0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF3, +0xB4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x03, 0x6E, +0x01, 0x49, 0x40, 0xEA, 0x02, 0x71, 0xB4, 0x61, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, +0x0F, 0x6D, 0x0C, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF5, +0xC4, 0x9B, 0x01, 0x69, 0x2B, 0xE9, 0xB1, 0x67, +0xE3, 0xF3, 0x04, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF5, +0xC8, 0x9B, 0xB1, 0x67, 0xE3, 0xF3, 0x08, 0x6C, +0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF5, 0x4C, 0x9A, 0xFF, 0x69, 0x30, 0xF0, +0x21, 0x68, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF3, 0x04, 0x4A, 0xE0, 0x9A, 0x12, 0xF5, +0x08, 0x48, 0xAC, 0xE9, 0x90, 0x67, 0xB1, 0x67, +0x92, 0x6E, 0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x05, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, +0x04, 0x4B, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF5, +0x50, 0x9A, 0xE0, 0x9B, 0x90, 0x67, 0xB1, 0x67, +0x92, 0x6E, 0x04, 0xD2, 0x00, 0x68, 0x80, 0x18, +0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x14, 0x6C, 0x01, 0x48, 0x40, 0xEA, +0xFF, 0x6A, 0x4C, 0xE8, 0x1E, 0x70, 0xF5, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF5, 0x4C, 0x9A, +0x30, 0xF0, 0x21, 0x6C, 0xB1, 0x67, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0xE4, 0x9A, +0x12, 0xF5, 0x08, 0x4C, 0x92, 0x6E, 0x80, 0x18, +0x12, 0x59, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x00, 0x6A, 0x06, 0xD5, +0x06, 0x67, 0x07, 0xD2, 0x40, 0x98, 0x06, 0x93, +0x30, 0xF0, 0x21, 0x69, 0x12, 0xF5, 0x08, 0x49, +0xC0, 0x9B, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF3, 0x04, 0x4A, 0xE0, 0x9A, 0x91, 0x67, +0x00, 0x6D, 0x80, 0x18, 0x12, 0x59, 0x41, 0x98, +0x06, 0x93, 0x91, 0x67, 0x01, 0x6D, 0xC0, 0x9B, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, +0x04, 0x4A, 0xE0, 0x9A, 0x08, 0x48, 0x80, 0x18, +0x12, 0x59, 0x07, 0x93, 0x06, 0x92, 0x01, 0x4B, +0x04, 0x4A, 0x07, 0x73, 0x07, 0xD3, 0x06, 0xD2, +0xD9, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x00, 0x68, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF5, 0x4C, 0x9A, 0x30, 0xF0, +0x21, 0x69, 0x12, 0xF5, 0x08, 0x49, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x04, 0x4A, +0xE0, 0x9A, 0x91, 0x67, 0xB0, 0x67, 0x92, 0x6E, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x05, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x04, 0x4B, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF5, 0x50, 0x9A, +0xE0, 0x9B, 0x91, 0x67, 0xB0, 0x67, 0x92, 0x6E, +0x04, 0xD2, 0x00, 0x69, 0x80, 0x18, 0x12, 0x59, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x14, 0x6C, 0x01, 0x49, 0x40, 0xEA, 0xFF, 0x6A, +0x4C, 0xE9, 0x1E, 0x71, 0xF5, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF5, 0x4C, 0x9A, 0x30, 0xF0, +0x21, 0x6C, 0xB0, 0x67, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF3, 0xE4, 0x9A, 0x12, 0xF5, +0x08, 0x4C, 0x92, 0x6E, 0x80, 0x18, 0x12, 0x59, +0x01, 0x48, 0xFF, 0x6B, 0x6C, 0xE8, 0x02, 0x70, +0xB6, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x00, 0x69, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF5, 0xA0, 0x9A, 0x02, 0xF7, +0x00, 0x6C, 0x80, 0x18, 0x85, 0x28, 0x20, 0x6B, +0x4C, 0xEB, 0x12, 0x2B, 0x00, 0x68, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, +0x01, 0x48, 0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE8, 0xE0, 0xF1, 0x14, 0x70, 0xF3, 0x61, +0x01, 0x49, 0x0A, 0x71, 0xE4, 0x61, 0x0A, 0x69, +0x51, 0x67, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x68, +0xAC, 0xE8, 0x80, 0x18, 0xF5, 0x1C, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF5, 0xC4, 0x9A, 0x01, 0x69, +0x2B, 0xE9, 0x0D, 0xEE, 0xB1, 0x67, 0x02, 0xF7, +0x00, 0x6C, 0x80, 0x18, 0x9A, 0x28, 0xB1, 0x67, +0x02, 0xF7, 0x08, 0x6C, 0x80, 0x18, 0x85, 0x28, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0xF7, 0x1F, 0x68, +0x24, 0x67, 0x0C, 0xD6, 0x0D, 0xD7, 0xAC, 0xE8, +0x38, 0x26, 0x66, 0x67, 0x01, 0x4B, 0x00, 0x6A, +0x09, 0x2B, 0x01, 0x69, 0x2B, 0xE9, 0x80, 0x18, +0xF5, 0x1C, 0x02, 0xF7, 0x04, 0x6C, 0xB1, 0x67, +0x0D, 0x96, 0x1F, 0x10, 0x0C, 0x93, 0x01, 0x6C, +0x66, 0xEA, 0x8C, 0xEB, 0x04, 0x2B, 0x01, 0x4A, +0x20, 0x72, 0xF8, 0x61, 0x00, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x05, 0xD2, 0x80, 0x18, 0x09, 0x1D, +0x0C, 0x93, 0x91, 0x67, 0x01, 0x69, 0x6F, 0xEB, +0x4C, 0xEB, 0x04, 0xD3, 0x80, 0x18, 0xF5, 0x1C, +0x0D, 0x96, 0x05, 0x92, 0x04, 0x93, 0x2B, 0xE9, +0xC4, 0xEA, 0x02, 0xF7, 0x04, 0x6C, 0xB1, 0x67, +0x6D, 0xEE, 0x80, 0x18, 0x9A, 0x28, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF5, 0xC8, 0x9A, 0x02, 0xF7, +0x00, 0x6C, 0xB1, 0x67, 0x0D, 0xEE, 0x80, 0x18, +0x9A, 0x28, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, +0x04, 0x67, 0x1D, 0x22, 0x01, 0x6D, 0x70, 0x6C, +0xAB, 0xED, 0x80, 0x18, 0x85, 0x28, 0x80, 0xF0, +0x48, 0xD8, 0x90, 0x67, 0x38, 0x6D, 0x80, 0x18, +0x09, 0x1D, 0x80, 0xF0, 0x4C, 0xD8, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF3, 0xB0, 0x9A, 0x70, 0x6C, +0x01, 0x6E, 0x80, 0x18, 0x9A, 0x28, 0x90, 0x67, +0x38, 0x6D, 0x1F, 0xF7, 0x00, 0x6E, 0x77, 0x6F, +0x80, 0x18, 0x19, 0x1D, 0x0E, 0x10, 0x01, 0x69, +0x80, 0xF0, 0xEC, 0x98, 0x2B, 0xE9, 0x38, 0x6D, +0xD1, 0x67, 0x80, 0x18, 0x19, 0x1D, 0x80, 0xF0, +0xC8, 0x98, 0x70, 0x6C, 0xB1, 0x67, 0x80, 0x18, +0x9A, 0x28, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x4C, 0xED, +0x0A, 0xD4, 0x04, 0xD5, 0x80, 0xF0, 0x72, 0xA4, +0x01, 0x6C, 0x26, 0x67, 0x8E, 0xEB, 0x01, 0x5B, +0x4C, 0xE9, 0x78, 0x67, 0x01, 0x71, 0x64, 0x33, +0x03, 0x61, 0x05, 0x67, 0x14, 0x48, 0x10, 0x10, +0x02, 0x71, 0x03, 0x61, 0x04, 0x90, 0x16, 0x48, +0x0A, 0x10, 0x03, 0x71, 0x03, 0x61, 0x04, 0x90, +0x1A, 0x48, 0x06, 0x10, 0x04, 0x71, 0x00, 0x68, +0x04, 0x61, 0x04, 0x90, 0x1C, 0x48, 0x01, 0xE3, +0x4C, 0xE8, 0x0A, 0x94, 0x01, 0x6D, 0x80, 0x18, +0x3D, 0x1D, 0x4A, 0x29, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0x14, 0x49, +0x91, 0x67, 0x02, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x02, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0xA8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x00, 0x6E, 0xC3, 0xF3, +0x14, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, 0x00, 0x68, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, +0xB8, 0x9A, 0xE3, 0xF3, 0x1C, 0x6C, 0x80, 0x18, +0x0D, 0x28, 0xFF, 0x6B, 0x4C, 0xEB, 0x14, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x14, 0x6C, 0x01, 0x48, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF1, 0xB8, 0x9A, 0xE3, 0xF3, +0x1C, 0x6C, 0x80, 0x18, 0x0D, 0x28, 0xFF, 0x6B, +0x4C, 0xEB, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, +0x01, 0x73, 0x60, 0x60, 0xE0, 0xF3, 0x08, 0x70, +0xE7, 0x61, 0xE0, 0xF3, 0x08, 0x68, 0x5A, 0x10, +0x04, 0x92, 0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, +0x64, 0x99, 0x44, 0x36, 0x08, 0x6A, 0x4D, 0xEE, +0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x40, 0xEB, +0xC0, 0xF3, 0x44, 0x99, 0xC3, 0xF3, 0x0C, 0x6C, +0x3F, 0x6D, 0x09, 0x6E, 0x40, 0xEA, 0x00, 0x30, +0x48, 0x6A, 0x4D, 0xE8, 0xC0, 0xF3, 0x44, 0x99, +0x01, 0x6D, 0xD0, 0x67, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, +0x01, 0x6D, 0xC1, 0x40, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x85, 0xF5, 0x1C, 0x6C, +0xFF, 0x6D, 0x80, 0x18, 0x0D, 0x28, 0xFF, 0x6B, +0x4C, 0xEB, 0x00, 0x68, 0x11, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, +0x01, 0x48, 0x40, 0xEA, 0x85, 0xF5, 0x1C, 0x6C, +0xFF, 0x6D, 0x80, 0x18, 0x0D, 0x28, 0xFF, 0x6B, +0x4C, 0xEB, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, +0x55, 0x73, 0x05, 0x60, 0xE0, 0xF3, 0x08, 0x70, +0xEA, 0x61, 0xE0, 0xF3, 0x08, 0x68, 0x04, 0x94, +0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, +0x84, 0x36, 0x08, 0x6B, 0x03, 0xF3, 0x00, 0x6C, +0x0F, 0x6D, 0x6D, 0xEE, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0xC3, 0xF3, 0x0C, 0x6C, 0x3F, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x0A, 0x94, 0x00, 0x6D, +0x80, 0x18, 0x3D, 0x1D, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF3, 0x10, 0x6C, +0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xE0, 0xF3, +0x08, 0x6A, 0x0E, 0xEA, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x01, 0x5A, 0x58, 0x67, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x60, 0xF0, 0x5E, 0xAC, +0x24, 0x67, 0x03, 0x2A, 0x80, 0xF0, 0x50, 0xA4, +0x71, 0x22, 0x80, 0x18, 0x52, 0x1B, 0x00, 0x68, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x04, 0x36, 0x08, 0x6B, 0x03, 0xF3, 0x00, 0x6C, +0x0F, 0x6D, 0x6D, 0xEE, 0x40, 0xEA, 0x80, 0xF0, +0x51, 0xA1, 0x0D, 0x2A, 0x30, 0xF0, 0x20, 0x6C, +0x01, 0x6D, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9C, 0xAB, 0xED, 0x63, 0xF3, 0x00, 0x6C, +0xA3, 0xF5, 0xDC, 0x9B, 0x0C, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF5, 0xC0, 0x9B, 0x01, 0x6D, +0x63, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x0D, 0xE1, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6D, 0x80, 0xF0, 0xD5, 0xA3, 0xC0, 0xF3, +0x44, 0x9C, 0x03, 0xF5, 0xA0, 0x9D, 0x63, 0xF3, +0x04, 0x6C, 0x40, 0xEA, 0x60, 0xF0, 0xDE, 0xA1, +0x01, 0x6A, 0x44, 0xE8, 0x47, 0xE8, 0x4C, 0xEE, +0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, 0x81, 0x18, +0x91, 0x67, 0xB0, 0x67, 0x03, 0x6E, 0x80, 0x18, +0x59, 0x1D, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9B, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, +0x0C, 0x6E, 0x40, 0xEA, 0xFF, 0x6A, 0x0C, 0xEA, +0x0D, 0x2A, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9C, 0xC3, 0xF5, +0xB4, 0x9B, 0x03, 0xF3, 0x04, 0x6C, 0x20, 0xF1, +0xD8, 0xA9, 0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF5, 0xB4, 0x9B, 0x20, 0xF1, 0xDA, 0xA9, +0x43, 0xF3, 0x1C, 0x6C, 0x01, 0x48, 0x40, 0xEA, +0x02, 0x70, 0x92, 0x61, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x00, 0x6A, +0x60, 0xF0, 0x5C, 0xC4, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF3, 0xE4, 0x9A, 0x04, 0x67, 0x30, 0xF0, +0x21, 0x6C, 0x12, 0xF5, 0x08, 0x4C, 0x00, 0x6D, +0x18, 0x6E, 0x80, 0x18, 0x9F, 0x58, 0x80, 0xF0, +0x90, 0xA0, 0xFF, 0x6B, 0x4C, 0xEB, 0x8E, 0xEB, +0x06, 0x2B, 0x90, 0x67, 0x80, 0x18, 0xCD, 0x1D, +0x01, 0x6A, 0x60, 0xF0, 0x5C, 0xC0, 0x60, 0xF0, +0x5C, 0xA0, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x68, 0xAC, 0xEA, 0x04, 0xD2, 0x44, 0x36, +0xC0, 0xF3, 0x44, 0x98, 0x08, 0x6B, 0x6D, 0xEE, +0x0A, 0xD4, 0x0F, 0x6D, 0x03, 0xF3, 0x00, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, +0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, +0x00, 0x69, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0xB4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0x7F, 0x49, 0xC0, 0xF3, 0x44, 0x98, +0x2D, 0x49, 0x91, 0x67, 0x3F, 0x6D, 0x09, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, +0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x0C, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, +0x14, 0x6C, 0xF0, 0x6D, 0x0F, 0x6E, 0x40, 0xEA, +0x04, 0x93, 0x12, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF5, 0xB4, 0x9B, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF5, 0xD8, 0x9B, +0x03, 0xF3, 0x04, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, 0x11, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF5, 0xB4, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF5, 0xD8, 0x9B, 0x43, 0xF3, 0x1C, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF3, +0x00, 0x6C, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, +0xB8, 0x9B, 0x01, 0x6E, 0x40, 0xEA, 0x0A, 0x93, +0x80, 0xF0, 0x52, 0xA3, 0x01, 0x72, 0x41, 0x61, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF5, 0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x69, 0x2B, 0xE9, 0xE3, 0xF3, 0x18, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, 0x02, 0xF3, +0x10, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF5, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF5, 0xC4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF3, 0x18, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, 0x36, 0xF4, +0x08, 0x6E, 0x40, 0xEA, 0x04, 0x92, 0x01, 0x6E, +0x30, 0xF0, 0x20, 0x6B, 0xC4, 0xEA, 0x00, 0xF7, +0xC0, 0x36, 0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF3, +0x14, 0x6C, 0xB1, 0x67, 0xE3, 0xF5, 0x68, 0x9B, +0x42, 0x10, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF5, 0xCC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0xE3, 0xF3, +0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF5, 0xD0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF5, +0xD4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF3, +0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF5, 0xD8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF3, +0x18, 0x6C, 0xB1, 0x67, 0x36, 0xF4, 0x08, 0x6E, +0x40, 0xEA, 0x04, 0x93, 0x01, 0x6E, 0xC0, 0xF3, +0x44, 0x98, 0xC4, 0xEB, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF5, 0x7C, 0x9B, 0x00, 0xF7, 0xC0, 0x36, +0xE3, 0xF3, 0x14, 0x6C, 0xB1, 0x67, 0x6D, 0xEE, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x68, 0x03, 0xF5, 0x20, 0x9A, 0x04, 0x96, +0xC0, 0xF3, 0x44, 0x98, 0x08, 0x6B, 0x6D, 0xEE, +0xB1, 0x67, 0xA3, 0xF3, 0x14, 0x6C, 0x40, 0xEA, +0x0A, 0x94, 0x04, 0x95, 0x00, 0x6E, 0x80, 0x18, +0x59, 0x1D, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0xE3, 0xF3, 0x14, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x04, 0x92, 0x08, 0x6B, 0x03, 0xF3, 0x00, 0x6C, +0x44, 0x36, 0xC0, 0xF3, 0x44, 0x98, 0x6D, 0xEE, +0x0F, 0x6D, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF6, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF3, 0x0C, 0x69, 0x91, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, +0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x0C, 0x6E, +0x40, 0xEA, 0x04, 0x92, 0x05, 0x2A, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x04, 0x6C, 0x04, 0x10, +0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF3, 0x1C, 0x6C, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF5, 0xB4, 0x9B, +0x5B, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0xA8, 0x9B, +0xC0, 0xF3, 0x44, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF3, 0xB0, 0x9A, 0xE3, 0xF3, 0x1C, 0x6C, +0x80, 0x18, 0x0D, 0x28, 0xFF, 0xF7, 0x1F, 0x6B, +0x80, 0xF3, 0x0E, 0x6C, 0x6C, 0xEA, 0x98, 0xEA, +0x0A, 0x6C, 0x12, 0xE8, 0x02, 0x30, 0x0A, 0x30, +0x9B, 0xE8, 0x01, 0x2C, 0xE5, 0xE8, 0x10, 0xEC, +0x05, 0x5C, 0x12, 0xE8, 0x6C, 0xE8, 0x02, 0x61, +0x01, 0x48, 0x6C, 0xE8, 0x04, 0x92, 0x07, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x03, 0xF3, 0x04, 0x6C, 0x06, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x43, 0xF3, +0x1C, 0x6C, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF5, +0xB4, 0x9B, 0xD0, 0x67, 0x40, 0xEA, 0x04, 0x92, +0x0A, 0x93, 0x7F, 0x4A, 0x1D, 0x4A, 0x44, 0x32, +0x49, 0xE3, 0x00, 0xCA, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x68, 0xAC, 0xE8, 0xB0, 0x67, 0x03, 0x6E, +0x24, 0x67, 0x80, 0x18, 0x59, 0x1D, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x04, 0x36, +0x08, 0x6B, 0x6D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, +0x0F, 0x6D, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF3, 0xB4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x60, 0xF0, 0x7E, 0xA9, +0x01, 0x6A, 0x44, 0xE8, 0x6C, 0xEA, 0x47, 0xE8, +0x04, 0x22, 0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, +0x21, 0x1E, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x68, 0xCC, 0xE8, +0xB0, 0x67, 0x02, 0x6E, 0x24, 0x67, 0x80, 0x18, +0x59, 0x1D, 0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x08, 0x6B, 0x04, 0x36, +0x6D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, +0xB0, 0x9A, 0x03, 0xF3, 0x08, 0x6C, 0x80, 0x18, +0x0D, 0x28, 0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF6, 0x44, 0x9A, 0x30, 0xF0, 0x21, 0x6C, +0xB0, 0x67, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF3, 0xE4, 0x9A, 0x00, 0x6E, 0x12, 0xF5, +0x08, 0x4C, 0x80, 0x18, 0x12, 0x59, 0x91, 0x67, +0xB0, 0x67, 0x80, 0x18, 0xDA, 0x19, 0x06, 0x93, +0x07, 0x92, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x6D, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x25, 0x67, +0x4C, 0xEE, 0x4C, 0xE9, 0xEC, 0xEA, 0x01, 0x72, +0x04, 0x67, 0x04, 0xD6, 0x17, 0x61, 0xB1, 0x67, +0x04, 0x6E, 0x80, 0x18, 0x59, 0x1D, 0x90, 0x67, +0xB1, 0x67, 0x80, 0x18, 0x0D, 0x1B, 0x00, 0xF6, +0x00, 0x5A, 0x04, 0x61, 0x04, 0x93, 0x02, 0x6A, +0x23, 0x2B, 0x25, 0x10, 0x04, 0x94, 0x00, 0xF3, +0x00, 0x5A, 0x78, 0x67, 0x01, 0x5C, 0x58, 0x67, +0x1E, 0x2B, 0x1A, 0x10, 0x19, 0x2A, 0xB1, 0x67, +0x00, 0x6E, 0x80, 0x18, 0xC6, 0x1A, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF6, 0x68, 0x9B, 0x43, 0xEB, +0x11, 0x60, 0x42, 0x34, 0x96, 0x34, 0x80, 0x18, +0xF5, 0x15, 0x03, 0x6B, 0x78, 0xEA, 0x03, 0x6A, +0x12, 0xEB, 0xFE, 0xF0, 0x02, 0x4B, 0xE0, 0xF3, +0x09, 0x5B, 0x05, 0x60, 0xFA, 0x5B, 0x02, 0x61, +0x00, 0x6A, 0x01, 0x10, 0x04, 0x6A, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xF7, 0x63, 0x11, 0x62, 0x10, 0xD1, 0x0F, 0xD0, +0xFF, 0x6A, 0x25, 0x67, 0x4C, 0xEE, 0x4C, 0xEF, +0x4C, 0xE9, 0x00, 0x6A, 0x12, 0xD4, 0x0C, 0xD6, +0x0A, 0xD7, 0x07, 0xD2, 0x08, 0xD2, 0x09, 0xD2, +0x06, 0xD2, 0x02, 0x67, 0x06, 0x5A, 0x80, 0xF0, +0x1C, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x48, 0x32, +0xA2, 0xF4, 0x00, 0x4B, 0x49, 0xE3, 0x40, 0x9A, +0x00, 0xEA, 0x30, 0xF0, 0x21, 0x68, 0x12, 0xF5, +0x08, 0x48, 0x90, 0x67, 0xB1, 0x67, 0x56, 0x6E, +0x1F, 0x6F, 0x80, 0x18, 0x9F, 0x58, 0x90, 0x67, +0xB1, 0x67, 0x00, 0x6E, 0xE0, 0xF3, 0x00, 0x6F, +0x0B, 0xD2, 0x80, 0x18, 0x9F, 0x58, 0x0A, 0x94, +0x06, 0xD2, 0x0D, 0x2C, 0x12, 0x94, 0x08, 0x96, +0xB1, 0x67, 0x01, 0x6F, 0x80, 0x18, 0x25, 0x1F, +0x07, 0x2A, 0x0C, 0x92, 0x04, 0x22, 0x01, 0x6B, +0x09, 0xD3, 0x0A, 0x92, 0x01, 0x10, 0x05, 0x6A, +0x06, 0x94, 0xFF, 0x6B, 0x0B, 0x90, 0x6C, 0xEC, +0x06, 0xD4, 0x07, 0x94, 0x6C, 0xE8, 0x01, 0x4C, +0x6C, 0xEC, 0x07, 0xD4, 0x60, 0x10, 0x06, 0x92, +0x0F, 0x5A, 0x12, 0x60, 0x06, 0x92, 0xFF, 0x6B, +0xF4, 0x4A, 0x6C, 0xEA, 0x03, 0x5A, 0x54, 0x60, +0x00, 0x6A, 0x30, 0xF0, 0x21, 0x6C, 0x04, 0xD2, +0x12, 0xF5, 0x08, 0x4C, 0xB1, 0x67, 0xC2, 0x67, +0x13, 0x10, 0x06, 0x93, 0x0C, 0x5B, 0x02, 0x60, +0x0C, 0x6A, 0x07, 0x10, 0x06, 0x92, 0xFF, 0x6B, +0xF4, 0x4A, 0x6C, 0xEA, 0x03, 0x5A, 0x40, 0x60, +0x0F, 0x6A, 0x30, 0xF0, 0x21, 0x6C, 0x04, 0xD2, +0x12, 0xF5, 0x08, 0x4C, 0xB1, 0x67, 0x00, 0x6E, +0xE0, 0xF3, 0x00, 0x6F, 0x80, 0x18, 0x12, 0x59, +0x35, 0x10, 0x3B, 0x20, 0xFF, 0x6A, 0xFE, 0x48, +0x30, 0xF0, 0x21, 0x6C, 0x4C, 0xE8, 0x12, 0xF5, +0x08, 0x4C, 0xB1, 0x67, 0x56, 0x6E, 0x1F, 0x6F, +0x04, 0xD0, 0x80, 0x18, 0x12, 0x59, 0x00, 0x6C, +0x08, 0xD4, 0x44, 0x67, 0x24, 0x10, 0x1F, 0x70, +0x02, 0x61, 0x1F, 0x68, 0x26, 0x10, 0xFF, 0x6A, +0x03, 0x48, 0x30, 0xF0, 0x21, 0x6C, 0x4C, 0xE8, +0x12, 0xF5, 0x08, 0x4C, 0xB1, 0x67, 0x56, 0x6E, +0x1F, 0x6F, 0x04, 0xD0, 0x80, 0x18, 0x12, 0x59, +0x00, 0x6A, 0x08, 0xD2, 0x10, 0x10, 0x12, 0x94, +0xB1, 0x67, 0x01, 0x6E, 0x80, 0x18, 0x59, 0x1D, +0x12, 0x94, 0x08, 0x96, 0xB1, 0x67, 0x00, 0x6F, +0x80, 0x18, 0x25, 0x1F, 0x0A, 0x22, 0x03, 0x10, +0x01, 0x6B, 0x08, 0xD3, 0x00, 0x6A, 0x09, 0x94, +0x04, 0x2C, 0x07, 0x93, 0x06, 0x5B, 0x7F, 0xF7, +0x01, 0x61, 0x50, 0x67, 0x11, 0x97, 0x10, 0x91, +0x0F, 0x90, 0x09, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, +0xFF, 0x68, 0xAC, 0xE8, 0xB0, 0x67, 0x24, 0x67, +0x80, 0x18, 0xB9, 0x1B, 0x30, 0xF0, 0x21, 0x6C, +0x1F, 0x6F, 0x00, 0x6E, 0x12, 0xF5, 0x08, 0x4C, +0xB0, 0x67, 0x0A, 0xD2, 0x80, 0x18, 0x9F, 0x58, +0x91, 0x67, 0xB0, 0x67, 0x09, 0xD2, 0x80, 0x18, +0x89, 0x1C, 0x91, 0x67, 0xB0, 0x67, 0x04, 0x6E, +0x80, 0x18, 0x59, 0x1D, 0x91, 0x67, 0xB0, 0x67, +0x80, 0x18, 0x0D, 0x1B, 0x91, 0x67, 0xB0, 0x67, +0x80, 0x18, 0x20, 0x1B, 0x0D, 0x22, 0x91, 0x67, +0xB0, 0x67, 0x80, 0x18, 0x89, 0x1C, 0x91, 0x67, +0xB0, 0x67, 0x04, 0x6E, 0x80, 0x18, 0x59, 0x1D, +0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, 0x20, 0x1B, +0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, 0x7A, 0x1B, +0x91, 0x67, 0xB0, 0x67, 0x00, 0x6E, 0x01, 0x6F, +0x07, 0xD2, 0x80, 0x18, 0x48, 0x1F, 0x91, 0x67, +0xB0, 0x67, 0x08, 0xD2, 0x80, 0x18, 0xA9, 0x1A, +0x08, 0x93, 0x00, 0x6C, 0x06, 0xD4, 0x43, 0xEB, +0x06, 0x61, 0x4B, 0xE3, 0x06, 0xD2, 0x06, 0x94, +0xFF, 0x6A, 0x4C, 0xEC, 0x06, 0xD4, 0x06, 0x92, +0x30, 0xF0, 0x21, 0x6C, 0x12, 0xF5, 0x08, 0x4C, +0xB0, 0x67, 0x56, 0x6E, 0x1F, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x91, 0x67, 0xB0, 0x67, +0x80, 0x18, 0x7A, 0x1B, 0x07, 0x93, 0x43, 0xEB, +0x02, 0x60, 0x6B, 0xE2, 0x02, 0x10, 0x07, 0x94, +0x4B, 0xE4, 0xFF, 0x6B, 0x6C, 0xEA, 0x01, 0xE1, +0x20, 0xF1, 0x5C, 0xC0, 0x09, 0x93, 0x0A, 0x94, +0x0F, 0x97, 0x0E, 0x91, 0x8B, 0xE3, 0x06, 0x93, +0x0D, 0x90, 0x49, 0xE3, 0xFF, 0x6B, 0x6C, 0xEA, +0x08, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x68, 0xAC, 0xE8, +0xB0, 0x67, 0x24, 0x67, 0x80, 0x18, 0xA4, 0x1F, +0xA2, 0x67, 0x91, 0x67, 0xD0, 0x67, 0x04, 0xD2, +0x80, 0x18, 0x05, 0x1F, 0x04, 0x96, 0x91, 0x67, +0xA2, 0x67, 0xF0, 0x67, 0x80, 0x18, 0xB5, 0x19, +0x09, 0xE1, 0x80, 0xF0, 0x53, 0xA2, 0x07, 0x22, +0x60, 0xF0, 0x7E, 0xA9, 0x01, 0x6A, 0x44, 0xE8, +0x6D, 0xEA, 0x60, 0xF0, 0x5E, 0xC9, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x00, 0x6D, +0x04, 0x67, 0x80, 0x18, 0xDF, 0x1F, 0x90, 0x67, +0x01, 0x6D, 0x80, 0x18, 0xDF, 0x1F, 0x90, 0x67, +0x00, 0x6D, 0x80, 0x18, 0xEC, 0x1E, 0x90, 0x67, +0x01, 0x6D, 0x80, 0x18, 0xEC, 0x1E, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xDF, 0x63, 0x41, 0x62, 0x40, 0xD1, 0x3F, 0xD0, +0x30, 0xF0, 0x20, 0x6D, 0x24, 0x67, 0xC2, 0xF4, +0x14, 0x4D, 0x2B, 0x04, 0x48, 0x6E, 0x00, 0x18, +0x42, 0xD7, 0x30, 0xF0, 0x20, 0x6D, 0x04, 0x04, +0xA2, 0xF4, 0x18, 0x4D, 0x1C, 0x6E, 0x00, 0x18, +0x42, 0xD7, 0x52, 0x99, 0x40, 0xA2, 0x04, 0x2A, +0x91, 0x67, 0x80, 0x18, 0x0E, 0x1E, 0x3C, 0x2A, +0x91, 0x67, 0x80, 0x18, 0x52, 0x1B, 0x04, 0x00, +0x12, 0x6F, 0x91, 0x67, 0x2B, 0x05, 0x19, 0x06, +0x80, 0x18, 0x6B, 0x1B, 0x0B, 0x06, 0xB0, 0x67, +0x91, 0x67, 0x80, 0x18, 0x76, 0x19, 0x91, 0x67, +0x80, 0x18, 0x23, 0x19, 0x91, 0x67, 0x01, 0x6D, +0x80, 0x18, 0x56, 0x16, 0x01, 0x6D, 0x91, 0x67, +0x80, 0x18, 0x30, 0x16, 0x91, 0x67, 0x80, 0x18, +0x4F, 0x1C, 0x91, 0x67, 0x80, 0x18, 0x9B, 0x1B, +0x91, 0x67, 0x80, 0x18, 0xF2, 0x1F, 0x91, 0x67, +0x80, 0x18, 0xAD, 0x18, 0x91, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x30, 0x16, 0x91, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x56, 0x16, 0xB0, 0x67, 0x0B, 0x06, +0x91, 0x67, 0x80, 0x18, 0xB1, 0x1C, 0x91, 0x67, +0x80, 0x18, 0xCB, 0x1C, 0x91, 0x67, 0x2B, 0x05, +0x19, 0x06, 0x12, 0x6F, 0x80, 0x18, 0x11, 0x16, +0x41, 0x97, 0x40, 0x91, 0x3F, 0x90, 0x21, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x69, 0x2C, 0xED, +0x01, 0x75, 0x58, 0x67, 0x0C, 0xD4, 0x06, 0xD2, +0x80, 0xF0, 0x0C, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF3, 0x24, 0x9A, 0x00, 0x6D, 0xC5, 0x67, +0xF1, 0x67, 0x80, 0x18, 0x9F, 0x58, 0x30, 0xF0, +0x20, 0x68, 0x0C, 0x94, 0x2B, 0xF1, 0x18, 0x48, +0xF1, 0x67, 0x43, 0xF6, 0x54, 0xD8, 0x01, 0x6D, +0x00, 0x6E, 0x80, 0x18, 0x9F, 0x58, 0x43, 0xF6, +0x58, 0xD8, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF0, 0x0C, 0x6C, 0x03, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x00, 0x6E, 0x08, 0xF1, 0x0C, 0x6C, 0x03, 0x6D, +0x40, 0xEA, 0x01, 0x6D, 0x21, 0xF0, 0x04, 0x6C, +0xAB, 0xED, 0x80, 0x18, 0x0D, 0x28, 0x07, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, +0x03, 0xF5, 0xB4, 0x9A, 0x21, 0xF0, 0x04, 0x6C, +0x03, 0x6E, 0x40, 0xEB, 0x06, 0x93, 0x0C, 0x94, +0x00, 0x6D, 0xC5, 0x67, 0xF1, 0x67, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x06, 0x92, 0x0C, 0x94, +0xF1, 0x67, 0x01, 0x6D, 0x00, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0xC0, 0xF3, 0x44, 0x98, +0x07, 0x96, 0x01, 0x6D, 0x21, 0xF0, 0x04, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x0C, 0x94, 0x00, 0x68, +0x80, 0x18, 0x8C, 0x59, 0x0C, 0x94, 0x80, 0x18, +0xA4, 0x55, 0x1B, 0x2A, 0xE0, 0xF3, 0x09, 0x70, +0x0D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, +0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF6, +0x88, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x00, 0x6A, 0x91, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x32, 0x6C, 0x01, 0x48, +0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, +0xE1, 0x17, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x63, 0xF4, 0x04, 0x6C, 0x08, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF1, 0x70, 0x9A, 0xFE, 0x6A, 0x01, 0x6D, +0x80, 0xA3, 0xC5, 0x67, 0x8C, 0xEA, 0x40, 0xC3, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF4, 0x04, 0x6C, +0x40, 0xEA, 0x6C, 0x10, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x00, 0x6E, +0x23, 0xF4, 0x04, 0x6C, 0x40, 0xEA, 0x00, 0x18, +0xE3, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, +0x70, 0x9A, 0x01, 0x6C, 0x40, 0xA3, 0x2C, 0xEA, +0x8D, 0xEA, 0x2C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x30, 0xF0, +0x20, 0x69, 0x2B, 0xF1, 0x18, 0x49, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6E, 0x63, 0xF4, +0x04, 0x6C, 0x08, 0x6D, 0x40, 0xEA, 0x01, 0x6D, +0x21, 0xF0, 0x04, 0x6C, 0xAB, 0xED, 0x80, 0x18, +0x0D, 0x28, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, +0xB4, 0x9B, 0x06, 0xD2, 0xC0, 0xF3, 0x44, 0x98, +0x21, 0xF0, 0x04, 0x6C, 0x03, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x04, 0x4B, +0xE0, 0x9B, 0x43, 0xF6, 0x54, 0x99, 0x0C, 0x94, +0x00, 0x6D, 0xC5, 0x67, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x43, 0xF6, 0x58, 0x99, 0x0C, 0x94, +0x01, 0x6D, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF3, 0x04, 0x4A, 0xE0, 0x9A, 0x00, 0x6E, +0x80, 0x18, 0x12, 0x59, 0xC0, 0xF3, 0x44, 0x98, +0x06, 0x96, 0x01, 0x6D, 0xAB, 0xED, 0x21, 0xF0, +0x04, 0x6C, 0x40, 0xEA, 0x0C, 0x94, 0x80, 0x18, +0xA3, 0x59, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0x6D, +0xC5, 0x67, 0x03, 0xF0, 0x0C, 0x6C, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0x6D, 0x08, 0xF1, +0x0C, 0x6C, 0xC5, 0x67, 0x40, 0xEA, 0x0C, 0x94, +0x80, 0x18, 0x5D, 0x59, 0x01, 0x6A, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x69, 0xF2, 0x08, 0x4A, 0x66, 0xAA, +0xEF, 0xF7, 0x1F, 0x68, 0x01, 0x4B, 0x66, 0xCA, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, 0x5C, 0x9A, +0x02, 0x6B, 0x40, 0xAA, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0xEF, 0xF6, 0x4C, 0xAA, 0x0E, 0xEA, +0x6C, 0xEA, 0x04, 0x22, 0x80, 0x18, 0xA4, 0x79, +0x00, 0x18, 0x71, 0xD8, 0x02, 0x6B, 0x50, 0x67, +0x6C, 0xEA, 0x08, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xEF, 0xF6, 0x4C, 0xAA, 0x6C, 0xEA, 0x02, 0x2A, +0x80, 0x18, 0xA4, 0x79, 0x30, 0xF0, 0x20, 0x6A, +0xEF, 0xF6, 0x0C, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0x69, 0xF2, 0x16, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF5, 0x50, 0x9A, 0x04, 0x6C, 0x40, 0xEA, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, -0x20, 0x6C, 0x0B, 0xF2, 0x0F, 0x4C, 0x07, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0xC0, 0xF0, 0x97, 0xA2, 0x01, 0x6B, -0x8C, 0xEB, 0x0C, 0x23, 0xC0, 0xF0, 0x79, 0xA2, -0xFF, 0x73, 0x08, 0x60, 0xC0, 0xF0, 0x98, 0xA2, -0x03, 0xF6, 0x7E, 0xA2, 0x6D, 0xE4, 0x03, 0x4B, -0x03, 0xF6, 0x74, 0xCA, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, -0x2B, 0xF1, 0x18, 0x4B, 0xA0, 0xA4, 0x40, 0xF1, -0xFE, 0xA3, 0x02, 0x6A, 0x01, 0x6E, 0x4B, 0xEA, -0xCC, 0xED, 0xEC, 0xEA, 0xAD, 0xEA, 0x40, 0xF1, -0x5E, 0xC3, 0xA1, 0xA4, 0xCC, 0xEA, 0x40, 0xF1, -0xBF, 0xC3, 0xFF, 0x6D, 0x0D, 0x22, 0x61, 0xA4, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, 0x48, 0x9A, -0x74, 0x33, 0x40, 0x6C, 0x4D, 0xE3, 0x40, 0xA3, -0xAC, 0xEA, 0x8D, 0xEA, 0xAC, 0xEA, 0x0A, 0x10, -0x61, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, -0x48, 0x9A, 0x74, 0x33, 0x4D, 0xE3, 0x80, 0xA3, -0xBF, 0x6A, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x20, 0x6C, 0xEB, 0xF1, 0x00, 0x4C, 0x07, 0x6E, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x80, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0x01, 0x6B, 0x8C, 0xEB, 0xE3, 0xF5, +0xBE, 0xA2, 0x64, 0x34, 0x03, 0x6B, 0x6B, 0xEB, +0xAC, 0xEB, 0x8D, 0xEB, 0xE3, 0xF5, 0x7E, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x0B, 0xF2, +0x0F, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xC0, 0xF0, +0x97, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, 0x0C, 0x23, +0xC0, 0xF0, 0x79, 0xA2, 0xFF, 0x73, 0x08, 0x60, +0xC0, 0xF0, 0x98, 0xA2, 0x03, 0xF6, 0x7A, 0xA2, +0x6D, 0xE4, 0x03, 0x4B, 0x03, 0xF6, 0x70, 0xCA, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, +0xA0, 0xA4, 0x40, 0xF1, 0xFE, 0xA3, 0x02, 0x6A, +0x01, 0x6E, 0x4B, 0xEA, 0xCC, 0xED, 0xEC, 0xEA, +0xAD, 0xEA, 0x40, 0xF1, 0x5E, 0xC3, 0xA1, 0xA4, +0xCC, 0xEA, 0x40, 0xF1, 0xBF, 0xC3, 0xFF, 0x6D, +0x0D, 0x22, 0x61, 0xA4, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF4, 0x48, 0x9A, 0x74, 0x33, 0x40, 0x6C, +0x4D, 0xE3, 0x40, 0xA3, 0xAC, 0xEA, 0x8D, 0xEA, +0xAC, 0xEA, 0x0A, 0x10, 0x61, 0xA4, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF4, 0x48, 0x9A, 0x74, 0x33, +0x4D, 0xE3, 0x80, 0xA3, 0xBF, 0x6A, 0x8C, 0xEA, +0x40, 0xC3, 0x20, 0xE8, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF1, 0x50, 0x9A, 0x60, 0xA2, 0x03, 0x6A, +0x6C, 0xEA, 0x10, 0x6B, 0x64, 0xEA, 0xFF, 0x6A, +0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF7, +0x50, 0x9A, 0x04, 0xD3, 0x40, 0x9A, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, 0x4C, 0x9A, -0x60, 0xA2, 0x03, 0x6A, 0x6C, 0xEA, 0x10, 0x6B, -0x64, 0xEA, 0xFF, 0x6A, 0x4C, 0xEB, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF7, 0x40, 0x9A, 0x04, 0xD3, -0x40, 0x9A, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF1, 0x48, 0x9A, 0x00, 0x9A, 0x05, 0x92, -0x0A, 0xEA, 0xC0, 0xF0, 0x04, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xF0, -0x64, 0x9A, 0x02, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, -0x64, 0xDA, 0x30, 0xF0, 0x20, 0x69, 0x2B, 0xF1, -0x18, 0x49, 0x22, 0xF6, 0x4A, 0xA9, 0x00, 0xF7, -0x00, 0x72, 0x07, 0x60, 0x22, 0xF6, 0x6A, 0xA1, -0x22, 0xF6, 0x8B, 0xA1, 0xAF, 0x43, 0x8E, 0xED, -0x13, 0x2D, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, -0x68, 0x9A, 0xFF, 0x6C, 0x01, 0x4C, 0x40, 0x9B, -0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x60, 0x9A, -0x8D, 0xEB, 0xA3, 0xF3, 0x60, 0xDA, 0x97, 0x10, -0x30, 0xF0, 0x20, 0x6D, 0x03, 0xF2, 0xBC, 0x9D, -0x7F, 0x6E, 0xB5, 0xE0, 0xE0, 0xA5, 0xCC, 0xEF, -0x45, 0x2F, 0x00, 0xF4, 0x00, 0x72, 0x80, 0xF0, -0x0A, 0x60, 0xAC, 0x43, 0x8E, 0xED, 0x80, 0xF0, -0x06, 0x25, 0x00, 0xF5, 0x01, 0x72, 0x80, 0xF0, -0x02, 0x60, 0x00, 0xF6, 0x02, 0x72, 0x7F, 0x60, -0x00, 0xF7, 0x03, 0x72, 0x7C, 0x60, 0x00, 0xF5, -0x00, 0x72, 0x79, 0x60, 0xFD, 0x4B, 0x6E, 0xEC, -0x76, 0x24, 0x30, 0xF0, 0x20, 0x69, 0x2B, 0xF1, -0x18, 0x49, 0x22, 0xF6, 0x4A, 0xA9, 0x00, 0xF6, -0x01, 0x72, 0x6D, 0x60, 0x00, 0xF7, 0x02, 0x72, -0x6A, 0x60, 0x00, 0xF6, 0x00, 0x72, 0x67, 0x60, +0x00, 0x9A, 0x05, 0x92, 0x0A, 0xEA, 0xC0, 0xF0, +0x04, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0xA0, 0xF0, 0x64, 0x9A, 0x02, 0x6C, +0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x30, 0xF0, +0x20, 0x69, 0x2B, 0xF1, 0x18, 0x49, 0x22, 0xF6, +0x4A, 0xA9, 0x00, 0xF7, 0x00, 0x72, 0x07, 0x60, 0x22, 0xF6, 0x6A, 0xA1, 0x22, 0xF6, 0x8B, 0xA1, -0xFE, 0x4B, 0x8E, 0xEB, 0x60, 0x23, 0x00, 0xF7, -0x01, 0x72, 0x5D, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF7, 0x44, 0x9A, 0x30, 0xF0, 0x20, 0x6D, -0x03, 0xF2, 0xBC, 0x9D, 0x49, 0xE0, 0x94, 0x34, -0x60, 0xAA, 0x91, 0xE1, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x4C, 0x9A, 0x22, 0xF5, 0x0A, 0x4C, -0xB5, 0xE0, 0x12, 0x10, 0x40, 0xA5, 0x4C, 0xEE, -0x01, 0x76, 0x1E, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF7, 0x44, 0x9A, 0x94, 0x34, 0x91, 0xE1, -0x49, 0xE0, 0x60, 0xAA, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x4C, 0x9A, 0x22, 0xF5, 0x0A, 0x4C, -0xFF, 0x6E, 0x6C, 0xEE, 0x40, 0xEA, 0x22, 0xF6, -0x4B, 0xA1, 0x08, 0x6B, 0x01, 0x4A, 0x22, 0xF6, -0x4B, 0xC1, 0x22, 0xF6, 0x4B, 0xA1, 0x6E, 0xEA, -0x13, 0x2A, 0x22, 0xF6, 0x4B, 0xC1, 0x10, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x88, 0x9A, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, 0x70, 0x9B, -0x40, 0x9C, 0x6D, 0xEA, 0x40, 0xDC, 0xA3, 0xF3, -0x40, 0x99, 0x6D, 0xEA, 0xA3, 0xF3, 0x40, 0xD9, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF7, 0x48, 0x9A, -0x04, 0x93, 0x40, 0x9A, 0x0E, 0xEA, 0x61, 0xE0, -0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, -0x44, 0x9A, 0x00, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF1, 0x48, 0x9A, 0x00, 0xDA, 0x05, 0x92, -0x4A, 0xE8, 0x5F, 0xF7, 0x06, 0x61, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFE, 0x63, 0x03, 0xD1, 0x02, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, -0x60, 0x9A, 0x02, 0x6D, 0xAC, 0xEB, 0x40, 0xF1, -0x1A, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, -0x70, 0x9B, 0x80, 0xA3, 0x0F, 0x6B, 0x8C, 0xEB, -0x05, 0x23, 0xA0, 0xF0, 0x84, 0x9A, 0xAD, 0xEC, -0xA0, 0xF0, 0x84, 0xDA, 0x30, 0xF0, 0x20, 0x6A, -0xCB, 0xF2, 0x58, 0xA2, 0xFF, 0x4A, 0x00, 0xD2, -0x44, 0x11, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0xA0, 0xF1, 0x80, 0xAA, 0x00, 0xF7, -0x00, 0x74, 0x05, 0x60, 0xA0, 0xF1, 0x01, 0xA2, -0x00, 0x94, 0x8A, 0xE8, 0x13, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF2, 0x68, 0x9A, 0xFF, 0x6C, +0xAF, 0x43, 0x8E, 0xED, 0x13, 0x2D, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF2, 0x6C, 0x9A, 0xFF, 0x6C, 0x01, 0x4C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, -0x60, 0xDA, 0x25, 0x11, 0x30, 0xF0, 0x20, 0x6C, -0xA9, 0xF2, 0xDE, 0xA4, 0xE3, 0x67, 0xFF, 0x6D, -0xE7, 0xEE, 0xC7, 0x67, 0x01, 0x6F, 0xEC, 0xEE, -0xA0, 0xF0, 0x0A, 0x26, 0x0C, 0x35, 0x60, 0xF1, -0x04, 0x4D, 0xB5, 0xE2, 0x00, 0x6A, 0x30, 0xF0, -0x20, 0x6E, 0xA9, 0xF2, 0xFE, 0xA6, 0xFF, 0x6C, -0x1F, 0xF7, 0x00, 0x69, 0x8C, 0xEF, 0x74, 0x4F, -0xE8, 0x37, 0xFD, 0xE2, 0x2C, 0xEF, 0x02, 0xF0, -0x00, 0x77, 0x08, 0x60, 0xA9, 0xF2, 0xFE, 0xA6, -0x8C, 0xEF, 0x74, 0x4F, 0xE8, 0x37, 0xFD, 0xE2, -0x2C, 0xEF, 0x0F, 0x2F, 0x30, 0xF0, 0x20, 0x6C, -0xA9, 0xF2, 0x3E, 0xA4, 0xFF, 0x6C, 0x30, 0xF0, -0x20, 0x6E, 0x8C, 0xE9, 0x74, 0x49, 0x28, 0x31, -0xE2, 0x67, 0x25, 0xE2, 0x43, 0xF1, 0xC0, 0x9E, -0x0B, 0x10, 0xA9, 0xF2, 0x3E, 0xA6, 0x30, 0xF0, -0x20, 0x6E, 0x43, 0xF1, 0xC4, 0x9E, 0x8C, 0xE9, -0x74, 0x49, 0x28, 0x31, 0xE2, 0x67, 0x25, 0xE2, -0xD9, 0xE1, 0xC0, 0xA6, 0x0C, 0x31, 0xCC, 0xEC, -0x30, 0xF0, 0x20, 0x6E, 0x2B, 0xF1, 0x18, 0x4E, -0xD9, 0xE1, 0xFD, 0xE6, 0x60, 0xF1, 0x80, 0xC7, -0x30, 0xF0, 0x20, 0x6E, 0xA9, 0xF2, 0xFE, 0xA6, -0xFF, 0x6C, 0x1F, 0xF7, 0x00, 0x69, 0x8C, 0xEF, -0x7C, 0x4F, 0xE8, 0x37, 0xFD, 0xE2, 0x2C, 0xEF, -0x02, 0xF0, 0x00, 0x77, 0x08, 0x60, 0xA9, 0xF2, -0xFE, 0xA6, 0x8C, 0xEF, 0x7C, 0x4F, 0xE8, 0x37, -0xFD, 0xE2, 0x2C, 0xEF, 0x0E, 0x2F, 0x30, 0xF0, -0x20, 0x6C, 0xA9, 0xF2, 0xDE, 0xA4, 0xFF, 0x6C, -0x30, 0xF0, 0x20, 0x6F, 0x8C, 0xEE, 0x7C, 0x4E, -0xC8, 0x36, 0xD9, 0xE2, 0x43, 0xF1, 0xE0, 0x9F, -0x0A, 0x10, 0xA9, 0xF2, 0xDE, 0xA6, 0x30, 0xF0, -0x20, 0x6F, 0x43, 0xF1, 0xE4, 0x9F, 0x8C, 0xEE, -0x7C, 0x4E, 0xC8, 0x36, 0xD9, 0xE2, 0xF9, 0xE6, -0xC0, 0xA6, 0x01, 0x4A, 0x04, 0x72, 0xCC, 0xEC, -0x80, 0xC5, 0x01, 0x4D, 0x8C, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xA9, 0xF2, 0xBE, 0xA2, 0x01, 0x6C, -0xC4, 0x67, 0xC4, 0xED, 0xCF, 0xED, 0xA9, 0xF2, -0xDE, 0xA2, 0xAC, 0xEB, 0xFF, 0x6D, 0x84, 0xEE, -0x30, 0xF0, 0x20, 0x6E, 0x43, 0xF2, 0xD0, 0x9E, -0xAC, 0xEC, 0x08, 0x6F, 0x80, 0xC6, 0xA9, 0xF2, -0x9E, 0xA2, 0xAC, 0xEC, 0x01, 0x4C, 0xAC, 0xEC, -0xA9, 0xF2, 0x9E, 0xC2, 0xA9, 0xF2, 0xBE, 0xA2, -0x03, 0x6C, 0xAC, 0xEC, 0xA9, 0xF2, 0x9E, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0xA0, 0xF1, 0x81, 0xA2, 0x01, 0x4C, 0xA0, 0xF1, -0x81, 0xC2, 0xA0, 0xF1, 0x81, 0xA2, 0xEE, 0xEC, -0x70, 0x2C, 0xA0, 0xF1, 0x81, 0xC2, 0x6D, 0x10, -0x30, 0xF0, 0x20, 0x6E, 0x23, 0xF2, 0x08, 0x9E, -0x02, 0x6F, 0xC0, 0x98, 0xED, 0xEE, 0xC0, 0xD8, -0xA3, 0xF3, 0xC0, 0x9A, 0xA3, 0xF3, 0x6C, 0xC2, -0xA9, 0xF2, 0x7E, 0xA4, 0xED, 0xEE, 0xA3, 0xF3, -0xC0, 0xDA, 0xA3, 0xF3, 0x6D, 0xC2, 0xA9, 0xF2, -0x5E, 0xA4, 0x1F, 0xF7, 0x00, 0x6B, 0xAC, 0xEA, -0x74, 0x4A, 0x48, 0x32, 0x6C, 0xEA, 0x02, 0xF0, -0x00, 0x72, 0x07, 0x60, 0xA9, 0xF2, 0x5E, 0xA4, -0xAC, 0xEA, 0x74, 0x4A, 0x48, 0x32, 0x6C, 0xEA, -0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF2, -0x7E, 0xA2, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF7, -0x8C, 0x9C, 0xFF, 0x6A, 0x4C, 0xEB, 0x8D, 0xE3, -0x68, 0x33, 0xA0, 0xA3, 0x0A, 0x10, 0xA9, 0xF2, -0x5E, 0xA4, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF7, -0x70, 0x9B, 0xAC, 0xEA, 0x69, 0xE2, 0x48, 0x32, -0x40, 0xA2, 0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF4, 0xA6, 0xC2, -0xA9, 0xF2, 0x5E, 0xA3, 0xA9, 0xF2, 0x9E, 0xA3, -0xFF, 0x6A, 0x1F, 0xF7, 0x00, 0x6D, 0x4C, 0xEC, -0x88, 0x34, 0xC0, 0xF1, 0x11, 0x4C, 0xAC, 0xEC, -0x0B, 0x2C, 0xA9, 0xF2, 0x7E, 0xA3, 0xFF, 0x6A, -0x30, 0xF0, 0x20, 0x6C, 0x4C, 0xEB, 0x74, 0x4B, -0x68, 0x33, 0x23, 0xF7, 0x94, 0x9C, 0x09, 0x10, -0xA9, 0xF2, 0x7E, 0xA3, 0x30, 0xF0, 0x20, 0x6C, -0x23, 0xF7, 0x98, 0x9C, 0x4C, 0xEB, 0x74, 0x4B, -0x68, 0x33, 0x8D, 0xE3, 0x60, 0xA3, 0x6C, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xEE, 0xF4, 0x47, 0xC3, -0x02, 0x10, 0xBF, 0xF6, 0x1A, 0x2B, 0x03, 0x91, -0x02, 0x90, 0x02, 0x63, 0x20, 0xE8, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF7, 0x5C, 0x9A, -0xFF, 0x68, 0x60, 0xA2, 0x6C, 0xE8, 0x24, 0x20, -0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, 0x40, 0x9A, -0x20, 0x6B, 0x01, 0x70, 0x60, 0xC2, 0x06, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF6, 0x5C, 0x9A, -0x40, 0xEA, 0x0E, 0x10, 0x80, 0x69, 0x0E, 0xE9, -0x0B, 0x29, 0x00, 0x18, 0xDA, 0xC9, 0x80, 0x6C, -0x00, 0x6D, 0x80, 0x18, 0x20, 0x01, 0x30, 0xF0, -0x20, 0x6A, 0x6D, 0xF7, 0x2E, 0xC2, 0x0F, 0x10, -0x20, 0x70, 0x0D, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6C, -0xA0, 0xF0, 0x64, 0x9A, 0xA3, 0xF2, 0x94, 0x9C, -0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x74, 0x9B, -0x10, 0xF0, 0x30, 0x6A, 0x0F, 0xF6, 0x01, 0x4A, -0x40, 0xDB, 0x00, 0x1C, 0xAC, 0x39, 0x80, 0x18, -0x8D, 0x78, 0x05, 0x6C, 0x01, 0x6D, 0x80, 0x18, -0x20, 0x01, 0x20, 0xBA, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0xFF, 0x17, 0x00, 0x65, -0xDD, 0x63, 0x45, 0x62, 0x44, 0xD1, 0x43, 0xD0, -0x00, 0x6A, 0x06, 0xD2, 0x07, 0xD2, 0x01, 0x6A, -0x7D, 0x67, 0x4B, 0xEA, 0x20, 0xF0, 0x40, 0xC3, -0x01, 0x6A, 0x20, 0xF0, 0x42, 0xC3, 0x08, 0x6A, -0x20, 0xF0, 0x43, 0xC3, 0x60, 0xA4, 0x7F, 0x6A, -0x6C, 0xEA, 0x01, 0x72, 0x7E, 0x30, 0x00, 0xF1, -0x04, 0x61, 0x48, 0xA4, 0xBD, 0x67, 0x20, 0xF0, -0x44, 0xC5, 0x41, 0xA4, 0x20, 0xF0, 0x45, 0xC5, -0x42, 0xA4, 0x20, 0xF0, 0x46, 0xC5, 0x46, 0xA4, -0x20, 0xF0, 0x48, 0xC5, 0x43, 0xA4, 0x20, 0xF0, -0x47, 0xC5, 0x47, 0xA4, 0x20, 0xF0, 0x49, 0xC5, -0x20, 0xF0, 0x44, 0xA5, 0xE0, 0xF0, 0x07, 0x2A, -0x7D, 0x67, 0x20, 0xF0, 0x47, 0xA3, 0x20, 0xF0, -0x66, 0xA3, 0x40, 0x32, 0x6D, 0xEA, 0x03, 0x72, -0x0A, 0x60, 0x04, 0x52, 0x03, 0x60, 0x02, 0x72, -0x5E, 0x60, 0xD9, 0x10, 0x08, 0x72, 0x2C, 0x60, -0xB7, 0x72, 0x43, 0x60, 0xD4, 0x10, 0x06, 0x20, -0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, -0x08, 0x04, 0x40, 0xEA, 0x9D, 0x67, 0x20, 0xF0, -0xE9, 0xA4, 0x20, 0xF0, 0x48, 0xA4, 0xFF, 0xF7, -0x1F, 0x6B, 0xE0, 0x37, 0x5D, 0xE7, 0x30, 0xF0, -0x20, 0x6A, 0x60, 0xF4, 0x50, 0x9A, 0x30, 0xF0, -0x20, 0x6D, 0x05, 0x6C, 0x6C, 0xEF, 0x6D, 0xF7, -0x14, 0x4D, 0x00, 0xF2, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x07, 0xF3, 0x94, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, -0x8C, 0xEB, 0x07, 0xF3, 0x74, 0xC2, 0xCA, 0x10, -0xBD, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0x10, 0x6A, -0x20, 0xF0, 0x43, 0xC5, 0x30, 0xF0, 0x21, 0x69, -0x80, 0xF2, 0x4C, 0x9B, 0x12, 0xF3, 0x14, 0x49, -0x0B, 0x04, 0xB1, 0x67, 0x04, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6C, 0x80, 0xF2, 0x4C, 0x9C, -0xA4, 0x41, 0x0C, 0x04, 0x04, 0x6E, 0x40, 0xEA, -0x92, 0x10, 0x08, 0x20, 0x30, 0xF0, 0x20, 0x6A, -0x20, 0xF4, 0x40, 0x9A, 0x08, 0x04, 0x40, 0xEA, -0x00, 0x18, 0x5A, 0xDC, 0xBD, 0x67, 0x20, 0xF0, -0x89, 0xA5, 0x20, 0xF0, 0x48, 0xA5, 0x80, 0x34, -0x51, 0xE4, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEC, -0x80, 0x18, 0x8A, 0x01, 0x9B, 0x10, 0x10, 0x6A, -0x7D, 0x67, 0x20, 0xF0, 0x43, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF7, 0x44, 0x9A, 0x30, 0xF0, -0x20, 0x69, 0x0B, 0x04, 0x40, 0x9A, 0x07, 0x05, -0x04, 0x6E, 0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF7, 0x48, 0x9A, 0x40, 0x9A, 0x07, 0xD2, -0x80, 0xF2, 0x4C, 0x99, 0x40, 0xEA, 0x80, 0xF2, -0x4C, 0x99, 0x0C, 0x04, 0x06, 0x05, 0x04, 0x6E, -0x40, 0xEA, 0x06, 0x20, 0x30, 0xF0, 0x20, 0x6A, -0x20, 0xF4, 0x40, 0x9A, 0x08, 0x04, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, -0xE7, 0xF1, 0x78, 0xA0, 0x01, 0x6A, 0xFF, 0x69, -0x6C, 0xEA, 0x42, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF4, 0x50, 0x9A, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF0, 0x74, 0x9A, 0x80, 0x6C, -0x8B, 0xEC, 0x40, 0xA3, 0x2C, 0xEA, 0x8D, 0xEA, -0x2C, 0xEA, 0x40, 0xC3, 0x40, 0xA3, 0x08, 0x6C, -0x2C, 0xEA, 0x8D, 0xEA, 0x2C, 0xEA, 0x40, 0xC3, -0xE7, 0xF1, 0x64, 0xA0, 0x04, 0x6A, 0x6C, 0xEA, -0x2C, 0xEA, 0x23, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF7, 0x44, 0x9A, 0xE7, 0xF1, 0xD0, 0x98, -0x10, 0xF0, 0x32, 0x6C, 0x40, 0x9A, 0xB3, 0xF6, -0x01, 0x4C, 0x00, 0x6D, 0x06, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF7, 0x48, 0x9A, 0x01, 0x6F, -0x40, 0x9A, 0x5B, 0xE6, 0x07, 0xD2, 0xE0, 0xF3, -0x08, 0x6A, 0x5B, 0xEE, 0x01, 0x2A, 0xE5, 0xE8, -0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x00, 0xF3, 0x4C, 0x9A, 0x12, 0xEE, 0x40, 0xEA, -0x2D, 0x10, 0x80, 0x18, 0xA8, 0x67, 0x2A, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF4, 0x54, 0x9A, -0x40, 0xEA, 0xE7, 0xF1, 0xB6, 0xA8, 0x00, 0x6C, -0x80, 0x18, 0xE4, 0x66, 0x1F, 0x10, 0x1E, 0x20, -0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, -0x17, 0x10, 0x18, 0x2A, 0x69, 0xA4, 0xBD, 0x67, -0x20, 0xF0, 0x64, 0xC5, 0x68, 0xA4, 0x20, 0xF0, -0x46, 0xC5, 0x20, 0xF0, 0x47, 0xC5, 0x20, 0xF0, -0x65, 0xC5, 0x46, 0xA4, 0x20, 0xF0, 0x48, 0xC5, -0x67, 0xA4, 0x08, 0x20, 0x30, 0xF0, 0x20, 0x6A, -0x20, 0xF4, 0x40, 0x9A, 0x20, 0xF0, 0x69, 0xC5, -0x08, 0x04, 0x40, 0xEA, 0x45, 0x97, 0x44, 0x91, -0x43, 0x90, 0x23, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, -0x68, 0x44, 0xFA, 0x4B, 0x4C, 0xEB, 0x04, 0x5B, -0x03, 0x60, 0x80, 0x18, 0x4D, 0x42, 0x48, 0x10, -0x0D, 0x74, 0x22, 0x60, 0x0E, 0x5C, 0x10, 0x60, -0x08, 0x74, 0x53, 0x60, 0x09, 0x5C, 0x05, 0x60, -0x02, 0x74, 0x1F, 0x60, 0x03, 0x74, 0x3E, 0x60, -0x71, 0x10, 0x0A, 0x74, 0x56, 0x60, 0x0A, 0x5C, -0x4F, 0x61, 0x0C, 0x74, 0x1A, 0x60, 0x6A, 0x10, -0x16, 0x74, 0x1C, 0x60, 0x17, 0x5C, 0x05, 0x60, -0x12, 0x74, 0x5A, 0x60, 0x13, 0x74, 0x4E, 0x60, -0x61, 0x10, 0x24, 0x74, 0x51, 0x60, 0xB7, 0x74, -0x57, 0x60, 0x18, 0x74, 0x22, 0x60, 0x5A, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, 0x48, 0x9A, -0x34, 0x10, 0x85, 0x67, 0x80, 0x18, 0x24, 0x67, -0x1B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF4, -0x44, 0x9A, 0x2B, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x2B, 0xF1, 0x18, 0x4B, 0x07, 0xF3, 0x94, 0xA3, -0x01, 0x6E, 0xCC, 0xEC, 0x4C, 0xEC, 0x58, 0x2C, -0xE7, 0xF1, 0x78, 0xA3, 0xCC, 0xEB, 0x4C, 0xEB, -0x53, 0x2B, 0x85, 0x67, 0x80, 0x18, 0x5A, 0x70, -0x03, 0x10, 0x85, 0x67, 0x80, 0x18, 0x9E, 0x70, -0x62, 0x67, 0x4B, 0x10, 0x30, 0xF0, 0x21, 0x6B, -0x52, 0xF4, 0x6C, 0xA3, 0x02, 0x6C, 0x6C, 0xEC, -0x4C, 0xEC, 0x12, 0x6B, 0x42, 0x2C, 0x30, 0xF0, -0x20, 0x6A, 0x60, 0xF4, 0x54, 0x9A, 0x40, 0xEA, -0xEF, 0x17, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, -0x58, 0x9A, 0x85, 0x67, 0x40, 0xEA, 0xE8, 0x17, -0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, 0x5C, 0x9A, -0xF8, 0x17, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF4, -0x40, 0x9A, 0xF3, 0x17, 0x87, 0x45, 0x01, 0x4C, -0x80, 0x18, 0x28, 0x6A, 0x00, 0x6B, 0x25, 0x10, -0x85, 0x67, 0x80, 0x18, 0xD5, 0x73, 0xD4, 0x17, -0x85, 0x67, 0x80, 0x18, 0xBD, 0x26, 0xD0, 0x17, -0x80, 0x18, 0xD7, 0x07, 0x00, 0x6B, 0x19, 0x2A, -0x13, 0x6B, 0x17, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF2, 0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0x63, 0xF2, 0x90, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, -0xA3, 0xF3, 0x60, 0xDA, 0xFF, 0x6B, 0x01, 0x10, -0x10, 0x6B, 0x05, 0x97, 0x43, 0x67, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x60, 0xDA, 0x97, 0x10, 0x30, 0xF0, 0x20, 0x6D, +0x23, 0xF2, 0xA0, 0x9D, 0x7F, 0x6E, 0xB5, 0xE0, +0xE0, 0xA5, 0xCC, 0xEF, 0x45, 0x2F, 0x00, 0xF4, +0x00, 0x72, 0x80, 0xF0, 0x0A, 0x60, 0xAC, 0x43, +0x8E, 0xED, 0x80, 0xF0, 0x06, 0x25, 0x00, 0xF5, +0x01, 0x72, 0x80, 0xF0, 0x02, 0x60, 0x00, 0xF6, +0x02, 0x72, 0x7F, 0x60, 0x00, 0xF7, 0x03, 0x72, +0x7C, 0x60, 0x00, 0xF5, 0x00, 0x72, 0x79, 0x60, +0xFD, 0x4B, 0x6E, 0xEC, 0x76, 0x24, 0x30, 0xF0, +0x20, 0x69, 0x2B, 0xF1, 0x18, 0x49, 0x22, 0xF6, +0x4A, 0xA9, 0x00, 0xF6, 0x01, 0x72, 0x6D, 0x60, +0x00, 0xF7, 0x02, 0x72, 0x6A, 0x60, 0x00, 0xF6, +0x00, 0x72, 0x67, 0x60, 0x22, 0xF6, 0x6A, 0xA1, +0x22, 0xF6, 0x8B, 0xA1, 0xFE, 0x4B, 0x8E, 0xEB, +0x60, 0x23, 0x00, 0xF7, 0x01, 0x72, 0x5D, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF7, 0x54, 0x9A, +0x30, 0xF0, 0x20, 0x6D, 0x23, 0xF2, 0xA0, 0x9D, +0x49, 0xE0, 0x94, 0x34, 0x60, 0xAA, 0x91, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, -0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0xEB, 0xF1, -0x13, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xF0, -0x7F, 0xA2, 0xA0, 0xF0, 0xBB, 0xA2, 0x00, 0x6C, -0x63, 0xF6, 0x7C, 0xC2, 0x7F, 0x6B, 0xAC, 0xEB, -0x63, 0xF6, 0x9E, 0xC2, 0x04, 0x2B, 0x01, 0x6B, -0x63, 0xF6, 0x7F, 0xC2, 0x02, 0x10, 0x63, 0xF6, -0x9F, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0xA0, 0xF0, 0xDB, 0xA2, 0x63, 0xF6, -0x9D, 0xA2, 0x7F, 0x6B, 0xCC, 0xEB, 0x6E, 0xEC, -0xFF, 0x6D, 0x07, 0x24, 0xA0, 0xF0, 0x9E, 0xA2, -0x96, 0x34, 0xAC, 0xEC, 0x00, 0x18, 0xD3, 0xD2, -0x07, 0x10, 0x06, 0x23, 0xA0, 0xF0, 0x9E, 0xA2, -0x96, 0x34, 0xAC, 0xEC, 0x00, 0x18, 0x5B, 0xD2, +0x22, 0xF5, 0x0A, 0x4C, 0xB5, 0xE0, 0x12, 0x10, +0x40, 0xA5, 0x4C, 0xEE, 0x01, 0x76, 0x1E, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF7, 0x54, 0x9A, +0x94, 0x34, 0x91, 0xE1, 0x49, 0xE0, 0x60, 0xAA, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0x22, 0xF5, 0x0A, 0x4C, 0xFF, 0x6E, 0x6C, 0xEE, +0x40, 0xEA, 0x22, 0xF6, 0x4B, 0xA1, 0x08, 0x6B, +0x01, 0x4A, 0x22, 0xF6, 0x4B, 0xC1, 0x22, 0xF6, +0x4B, 0xA1, 0x6E, 0xEA, 0x13, 0x2A, 0x22, 0xF6, +0x4B, 0xC1, 0x10, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF2, 0x8C, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF3, 0x70, 0x9B, 0x40, 0x9C, 0x6D, 0xEA, +0x40, 0xDC, 0xA3, 0xF3, 0x40, 0x99, 0x6D, 0xEA, +0xA3, 0xF3, 0x40, 0xD9, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF7, 0x58, 0x9A, 0x04, 0x93, 0x40, 0x9A, +0x0E, 0xEA, 0x61, 0xE0, 0x05, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF1, 0x48, 0x9A, 0x00, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, 0x4C, 0x9A, +0x00, 0xDA, 0x05, 0x92, 0x4A, 0xE8, 0x5F, 0xF7, +0x06, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFE, 0x63, 0x03, 0xD1, +0x02, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0xA3, 0xF3, 0x60, 0x9A, 0x02, 0x6D, +0xAC, 0xEB, 0x40, 0xF1, 0x1A, 0x2B, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF2, 0x74, 0x9B, 0x80, 0xA3, +0x0F, 0x6B, 0x8C, 0xEB, 0x05, 0x23, 0xA0, 0xF0, +0x84, 0x9A, 0xAD, 0xEC, 0xA0, 0xF0, 0x84, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0xCB, 0xF2, 0x58, 0xA2, +0xFF, 0x4A, 0x00, 0xD2, 0x44, 0x11, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xF1, +0x80, 0xAA, 0x00, 0xF7, 0x00, 0x74, 0x05, 0x60, +0xA0, 0xF1, 0x01, 0xA2, 0x00, 0x94, 0x8A, 0xE8, +0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, +0x6C, 0x9A, 0xFF, 0x6C, 0x01, 0x4C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x60, 0x9A, +0x8D, 0xEB, 0xA3, 0xF3, 0x60, 0xDA, 0x25, 0x11, +0x30, 0xF0, 0x20, 0x6C, 0xA9, 0xF2, 0xDE, 0xA4, +0xE3, 0x67, 0xFF, 0x6D, 0xE7, 0xEE, 0xC7, 0x67, +0x01, 0x6F, 0xEC, 0xEE, 0xA0, 0xF0, 0x0A, 0x26, +0x0C, 0x35, 0x60, 0xF1, 0x04, 0x4D, 0xB5, 0xE2, +0x00, 0x6A, 0x30, 0xF0, 0x20, 0x6E, 0xA9, 0xF2, +0xFE, 0xA6, 0xFF, 0x6C, 0x1F, 0xF7, 0x00, 0x69, +0x8C, 0xEF, 0x74, 0x4F, 0xE8, 0x37, 0xFD, 0xE2, +0x2C, 0xEF, 0x02, 0xF0, 0x00, 0x77, 0x08, 0x60, +0xA9, 0xF2, 0xFE, 0xA6, 0x8C, 0xEF, 0x74, 0x4F, +0xE8, 0x37, 0xFD, 0xE2, 0x2C, 0xEF, 0x0F, 0x2F, +0x30, 0xF0, 0x20, 0x6C, 0xA9, 0xF2, 0x3E, 0xA4, +0xFF, 0x6C, 0x30, 0xF0, 0x20, 0x6E, 0x8C, 0xE9, +0x74, 0x49, 0x28, 0x31, 0xE2, 0x67, 0x25, 0xE2, +0x43, 0xF1, 0xC4, 0x9E, 0x0B, 0x10, 0xA9, 0xF2, +0x3E, 0xA6, 0x30, 0xF0, 0x20, 0x6E, 0x43, 0xF1, +0xC8, 0x9E, 0x8C, 0xE9, 0x74, 0x49, 0x28, 0x31, +0xE2, 0x67, 0x25, 0xE2, 0xD9, 0xE1, 0xC0, 0xA6, +0x0C, 0x31, 0xCC, 0xEC, 0x30, 0xF0, 0x20, 0x6E, +0x2B, 0xF1, 0x18, 0x4E, 0xD9, 0xE1, 0xFD, 0xE6, +0x60, 0xF1, 0x80, 0xC7, 0x30, 0xF0, 0x20, 0x6E, +0xA9, 0xF2, 0xFE, 0xA6, 0xFF, 0x6C, 0x1F, 0xF7, +0x00, 0x69, 0x8C, 0xEF, 0x7C, 0x4F, 0xE8, 0x37, +0xFD, 0xE2, 0x2C, 0xEF, 0x02, 0xF0, 0x00, 0x77, +0x08, 0x60, 0xA9, 0xF2, 0xFE, 0xA6, 0x8C, 0xEF, +0x7C, 0x4F, 0xE8, 0x37, 0xFD, 0xE2, 0x2C, 0xEF, +0x0E, 0x2F, 0x30, 0xF0, 0x20, 0x6C, 0xA9, 0xF2, +0xDE, 0xA4, 0xFF, 0x6C, 0x30, 0xF0, 0x20, 0x6F, +0x8C, 0xEE, 0x7C, 0x4E, 0xC8, 0x36, 0xD9, 0xE2, +0x43, 0xF1, 0xE4, 0x9F, 0x0A, 0x10, 0xA9, 0xF2, +0xDE, 0xA6, 0x30, 0xF0, 0x20, 0x6F, 0x43, 0xF1, +0xE8, 0x9F, 0x8C, 0xEE, 0x7C, 0x4E, 0xC8, 0x36, +0xD9, 0xE2, 0xF9, 0xE6, 0xC0, 0xA6, 0x01, 0x4A, +0x04, 0x72, 0xCC, 0xEC, 0x80, 0xC5, 0x01, 0x4D, +0x8C, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF2, +0xBE, 0xA2, 0x01, 0x6C, 0xC4, 0x67, 0xC4, 0xED, +0xCF, 0xED, 0xA9, 0xF2, 0xDE, 0xA2, 0xAC, 0xEB, +0xFF, 0x6D, 0x84, 0xEE, 0x30, 0xF0, 0x20, 0x6E, +0x43, 0xF2, 0xD4, 0x9E, 0xAC, 0xEC, 0x08, 0x6F, +0x80, 0xC6, 0xA9, 0xF2, 0x9E, 0xA2, 0xAC, 0xEC, +0x01, 0x4C, 0xAC, 0xEC, 0xA9, 0xF2, 0x9E, 0xC2, +0xA9, 0xF2, 0xBE, 0xA2, 0x03, 0x6C, 0xAC, 0xEC, +0xA9, 0xF2, 0x9E, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xF1, 0x81, 0xA2, +0x01, 0x4C, 0xA0, 0xF1, 0x81, 0xC2, 0xA0, 0xF1, +0x81, 0xA2, 0xEE, 0xEC, 0x70, 0x2C, 0xA0, 0xF1, +0x81, 0xC2, 0x6D, 0x10, 0x30, 0xF0, 0x20, 0x6E, +0x23, 0xF2, 0x0C, 0x9E, 0x02, 0x6F, 0xC0, 0x98, +0xED, 0xEE, 0xC0, 0xD8, 0xA3, 0xF3, 0xC0, 0x9A, +0xA3, 0xF3, 0x6C, 0xC2, 0xA9, 0xF2, 0x7E, 0xA4, +0xED, 0xEE, 0xA3, 0xF3, 0xC0, 0xDA, 0xA3, 0xF3, +0x6D, 0xC2, 0xA9, 0xF2, 0x5E, 0xA4, 0x1F, 0xF7, +0x00, 0x6B, 0xAC, 0xEA, 0x74, 0x4A, 0x48, 0x32, +0x6C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x07, 0x60, +0xA9, 0xF2, 0x5E, 0xA4, 0xAC, 0xEA, 0x74, 0x4A, +0x48, 0x32, 0x6C, 0xEA, 0x0E, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xA9, 0xF2, 0x7E, 0xA2, 0x30, 0xF0, +0x20, 0x6C, 0x23, 0xF7, 0x9C, 0x9C, 0xFF, 0x6A, +0x4C, 0xEB, 0x8D, 0xE3, 0x68, 0x33, 0xA0, 0xA3, +0x0A, 0x10, 0xA9, 0xF2, 0x5E, 0xA4, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF7, 0x60, 0x9B, 0xAC, 0xEA, +0x69, 0xE2, 0x48, 0x32, 0x40, 0xA2, 0x4C, 0xED, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xEE, 0xF4, 0xA6, 0xC2, 0xA9, 0xF2, 0x5E, 0xA3, +0xA9, 0xF2, 0x9E, 0xA3, 0xFF, 0x6A, 0x1F, 0xF7, +0x00, 0x6D, 0x4C, 0xEC, 0x88, 0x34, 0xC0, 0xF1, +0x11, 0x4C, 0xAC, 0xEC, 0x0B, 0x2C, 0xA9, 0xF2, +0x7E, 0xA3, 0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x6C, +0x4C, 0xEB, 0x74, 0x4B, 0x68, 0x33, 0x43, 0xF7, +0x84, 0x9C, 0x09, 0x10, 0xA9, 0xF2, 0x7E, 0xA3, +0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF7, 0x88, 0x9C, +0x4C, 0xEB, 0x74, 0x4B, 0x68, 0x33, 0x8D, 0xE3, +0x60, 0xA3, 0x6C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xEE, 0xF4, 0x47, 0xC3, 0x02, 0x10, 0xBF, 0xF6, +0x1A, 0x2B, 0x03, 0x91, 0x02, 0x90, 0x02, 0x63, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF0, 0x5C, 0x9A, 0xFF, 0x68, 0x60, 0xA2, +0x6C, 0xE8, 0x24, 0x20, 0x00, 0x6B, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x01, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF7, 0x4C, 0x9A, 0x20, 0x6B, 0x01, 0x70, +0x60, 0xC2, 0x06, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF6, 0x5C, 0x9A, 0x40, 0xEA, 0x0E, 0x10, +0x80, 0x69, 0x0E, 0xE9, 0x0B, 0x29, 0x00, 0x18, +0x2B, 0xC9, 0x80, 0x6C, 0x00, 0x6D, 0x80, 0x18, +0x20, 0x01, 0x30, 0xF0, 0x20, 0x6A, 0x6D, 0xF7, +0x2E, 0xC2, 0x0F, 0x10, 0x20, 0x70, 0x0D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0x70, 0x9B, -0x63, 0xF6, 0x9C, 0x9A, 0x8C, 0xEB, 0x04, 0x73, -0x0C, 0x61, 0x03, 0xF6, 0x63, 0xA2, 0x04, 0x6C, -0x8C, 0xEB, 0x07, 0x23, 0x01, 0x6B, 0x63, 0xF6, -0x7E, 0xC2, 0x01, 0x6C, 0x00, 0x6D, 0x00, 0x18, -0x2C, 0xC9, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0xA0, 0xF0, 0x9B, 0xA2, 0x7F, 0x6B, -0x8C, 0xEB, 0x63, 0xF6, 0x7D, 0xC2, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0x08, 0xD4, 0x41, 0xA4, -0x24, 0x67, 0x06, 0xD2, 0x60, 0xA4, 0x02, 0x6A, -0x6C, 0xEA, 0x06, 0x93, 0x07, 0xD3, 0x02, 0x22, -0x82, 0xA4, 0x07, 0xD4, 0x06, 0x90, 0x34, 0x10, -0x08, 0x93, 0x01, 0x6D, 0x90, 0x67, 0x40, 0xA3, -0x4C, 0xED, 0x00, 0x18, 0x7C, 0xC5, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, 0x90, 0x67, -0x40, 0xEA, 0x0F, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x58, 0x9A, 0x90, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, 0x48, 0x9A, -0x14, 0x33, 0x4D, 0xE3, 0x80, 0xA3, 0xBF, 0x6A, -0x12, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x54, 0x9A, 0x90, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF4, 0x48, 0x9A, 0x14, 0x33, -0xFF, 0x6C, 0x4D, 0xE3, 0x40, 0xA3, 0x8C, 0xEA, -0x40, 0x6C, 0x8D, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, -0x40, 0xC3, 0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, -0x07, 0x92, 0x03, 0xEA, 0xC9, 0x60, 0x30, 0xF0, -0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0xC0, 0xF0, -0x9F, 0xA0, 0x06, 0x92, 0x8E, 0xEA, 0x1E, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, -0x40, 0xEA, 0x18, 0x2A, 0x00, 0x18, 0xC4, 0xEB, -0xA0, 0xF0, 0x9E, 0xA0, 0x96, 0x34, 0x00, 0x18, -0x12, 0xC7, 0x03, 0xF6, 0x60, 0xA0, 0x05, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0x03, 0xF6, 0x61, 0xA0, -0x03, 0xF6, 0x40, 0xC0, 0x02, 0x6A, 0x4B, 0xEA, -0x6C, 0xEA, 0x03, 0x6B, 0x6B, 0xEB, 0x6C, 0xEA, -0x03, 0xF6, 0x41, 0xC0, 0x43, 0xA1, 0x07, 0x6B, -0x01, 0x6C, 0x4C, 0xEB, 0x40, 0xA1, 0x8C, 0xEA, -0x1C, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0xA4, 0xF5, 0xDC, 0xA2, 0x84, 0xEB, -0x1F, 0x6F, 0xCA, 0x35, 0x8F, 0xEC, 0xEC, 0xED, -0x8C, 0xED, 0x7D, 0x6C, 0x8B, 0xEC, 0xA8, 0x35, -0xCC, 0xEC, 0xAD, 0xEC, 0xA4, 0xF5, 0x9C, 0xC2, -0xC0, 0xF0, 0x9E, 0xA2, 0x8E, 0xEB, 0x1E, 0x2B, -0x01, 0x6B, 0x6B, 0xEB, 0xA4, 0xF5, 0x7D, 0xC2, -0x19, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0xA4, 0xF5, 0xDC, 0xA2, 0x1F, 0x6F, -0x84, 0xEB, 0xCA, 0x35, 0xEC, 0xED, 0xAD, 0xEC, -0xEC, 0xEC, 0x88, 0x35, 0x7D, 0x6C, 0x8B, 0xEC, -0xCC, 0xEC, 0xAD, 0xEC, 0xA4, 0xF5, 0x9C, 0xC2, -0xC0, 0xF0, 0x9E, 0xA2, 0x8E, 0xEB, 0x02, 0x2B, -0xA4, 0xF5, 0x9D, 0xC2, 0x30, 0xF0, 0x20, 0x68, -0x2B, 0xF1, 0x18, 0x48, 0xA4, 0xF5, 0x7C, 0xA0, -0x02, 0x6A, 0x6C, 0xEA, 0x1A, 0x22, 0x03, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0xA4, 0xF5, 0x5C, 0xC0, -0x00, 0x18, 0xBA, 0xE6, 0x04, 0xD2, 0x04, 0x93, -0xC4, 0xF5, 0x40, 0x98, 0x6E, 0xEA, 0x03, 0x22, -0x04, 0x94, 0x00, 0x18, 0xDB, 0xE6, 0x30, 0xF0, +0x30, 0xF0, 0x20, 0x6C, 0xA0, 0xF0, 0x64, 0x9A, +0xA3, 0xF2, 0x98, 0x9C, 0x8D, 0xEB, 0xA0, 0xF0, +0x64, 0xDA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF0, 0x74, 0x9B, 0x10, 0xF0, 0x31, 0x6A, +0x51, 0xF1, 0x1D, 0x4A, 0x40, 0xDB, 0x00, 0x1C, +0xAC, 0x39, 0x80, 0x18, 0xE5, 0x76, 0x05, 0x6C, +0x01, 0x6D, 0x80, 0x18, 0x20, 0x01, 0x20, 0xBA, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0xFF, 0x17, 0x00, 0x65, 0xDD, 0x63, 0x45, 0x62, +0x44, 0xD1, 0x43, 0xD0, 0x00, 0x6A, 0x06, 0xD2, +0x07, 0xD2, 0x01, 0x6A, 0x7D, 0x67, 0x4B, 0xEA, +0x20, 0xF0, 0x40, 0xC3, 0x01, 0x6A, 0x20, 0xF0, +0x42, 0xC3, 0x08, 0x6A, 0x20, 0xF0, 0x43, 0xC3, +0x60, 0xA4, 0x7F, 0x6A, 0x6C, 0xEA, 0x01, 0x72, +0x7E, 0x30, 0x00, 0xF1, 0x04, 0x61, 0x48, 0xA4, +0xBD, 0x67, 0x20, 0xF0, 0x44, 0xC5, 0x41, 0xA4, +0x20, 0xF0, 0x45, 0xC5, 0x42, 0xA4, 0x20, 0xF0, +0x46, 0xC5, 0x46, 0xA4, 0x20, 0xF0, 0x48, 0xC5, +0x43, 0xA4, 0x20, 0xF0, 0x47, 0xC5, 0x47, 0xA4, +0x20, 0xF0, 0x49, 0xC5, 0x20, 0xF0, 0x44, 0xA5, +0xE0, 0xF0, 0x07, 0x2A, 0x7D, 0x67, 0x20, 0xF0, +0x47, 0xA3, 0x20, 0xF0, 0x66, 0xA3, 0x40, 0x32, +0x6D, 0xEA, 0x03, 0x72, 0x0A, 0x60, 0x04, 0x52, +0x03, 0x60, 0x02, 0x72, 0x5E, 0x60, 0xD9, 0x10, +0x08, 0x72, 0x2C, 0x60, 0xB7, 0x72, 0x43, 0x60, +0xD4, 0x10, 0x06, 0x20, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF4, 0x40, 0x9A, 0x08, 0x04, 0x40, 0xEA, +0x9D, 0x67, 0x20, 0xF0, 0xE9, 0xA4, 0x20, 0xF0, +0x48, 0xA4, 0xFF, 0xF7, 0x1F, 0x6B, 0xE0, 0x37, +0x5D, 0xE7, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, +0x50, 0x9A, 0x30, 0xF0, 0x20, 0x6D, 0x05, 0x6C, +0x6C, 0xEF, 0x6D, 0xF7, 0x14, 0x4D, 0x00, 0xF2, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0x07, 0xF3, 0x90, 0xA2, +0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x07, 0xF3, +0x70, 0xC2, 0xCA, 0x10, 0xBD, 0x67, 0x30, 0xF0, +0x20, 0x6B, 0x10, 0x6A, 0x20, 0xF0, 0x43, 0xC5, +0x30, 0xF0, 0x21, 0x69, 0x80, 0xF2, 0x4C, 0x9B, +0x12, 0xF3, 0x10, 0x49, 0x0B, 0x04, 0xB1, 0x67, +0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x80, 0xF2, 0x4C, 0x9C, 0xA4, 0x41, 0x0C, 0x04, +0x04, 0x6E, 0x40, 0xEA, 0x92, 0x10, 0x08, 0x20, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, +0x08, 0x04, 0x40, 0xEA, 0x00, 0x18, 0xB9, 0xDB, +0xBD, 0x67, 0x20, 0xF0, 0x89, 0xA5, 0x20, 0xF0, +0x48, 0xA5, 0x80, 0x34, 0x51, 0xE4, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xEC, 0x80, 0x18, 0x8A, 0x01, +0x9B, 0x10, 0x10, 0x6A, 0x7D, 0x67, 0x20, 0xF0, +0x43, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, +0x50, 0x9A, 0x30, 0xF0, 0x20, 0x69, 0x0B, 0x04, +0x40, 0x9A, 0x07, 0x05, 0x04, 0x6E, 0x06, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, 0x54, 0x9A, +0x40, 0x9A, 0x07, 0xD2, 0x80, 0xF2, 0x4C, 0x99, +0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x99, 0x0C, 0x04, +0x06, 0x05, 0x04, 0x6E, 0x40, 0xEA, 0x06, 0x20, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, +0x08, 0x04, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x68, +0x2B, 0xF1, 0x18, 0x48, 0xE7, 0xF1, 0x74, 0xA0, +0x01, 0x6A, 0xFF, 0x69, 0x6C, 0xEA, 0x42, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF4, 0x50, 0x9A, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, +0x78, 0x9A, 0x80, 0x6C, 0x8B, 0xEC, 0x40, 0xA3, +0x2C, 0xEA, 0x8D, 0xEA, 0x2C, 0xEA, 0x40, 0xC3, +0x40, 0xA3, 0x08, 0x6C, 0x2C, 0xEA, 0x8D, 0xEA, +0x2C, 0xEA, 0x40, 0xC3, 0xE7, 0xF1, 0x60, 0xA0, +0x04, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x23, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, 0x50, 0x9A, +0xE7, 0xF1, 0xCC, 0x98, 0x10, 0xF0, 0x32, 0x6C, +0x40, 0x9A, 0x32, 0xF7, 0x11, 0x4C, 0x00, 0x6D, +0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, +0x54, 0x9A, 0x01, 0x6F, 0x40, 0x9A, 0x5B, 0xE6, +0x07, 0xD2, 0xE0, 0xF3, 0x08, 0x6A, 0x5B, 0xEE, +0x01, 0x2A, 0xE5, 0xE8, 0x00, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, +0x12, 0xEE, 0x40, 0xEA, 0x2D, 0x10, 0x80, 0x18, +0xCC, 0x65, 0x2A, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF4, 0x54, 0x9A, 0x40, 0xEA, 0xE7, 0xF1, +0xB2, 0xA8, 0x00, 0x6C, 0x80, 0x18, 0x08, 0x65, +0x1F, 0x10, 0x1E, 0x20, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF4, 0x40, 0x9A, 0x17, 0x10, 0x18, 0x2A, +0x69, 0xA4, 0xBD, 0x67, 0x20, 0xF0, 0x64, 0xC5, +0x68, 0xA4, 0x20, 0xF0, 0x46, 0xC5, 0x20, 0xF0, +0x47, 0xC5, 0x20, 0xF0, 0x65, 0xC5, 0x46, 0xA4, +0x20, 0xF0, 0x48, 0xC5, 0x67, 0xA4, 0x08, 0x20, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, +0x20, 0xF0, 0x69, 0xC5, 0x08, 0x04, 0x40, 0xEA, +0x45, 0x97, 0x44, 0x91, 0x43, 0x90, 0x23, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0x68, 0x44, 0xFA, 0x4B, +0x4C, 0xEB, 0x04, 0x5B, 0x03, 0x60, 0x80, 0x18, +0x5C, 0x42, 0x48, 0x10, 0x0D, 0x74, 0x22, 0x60, +0x0E, 0x5C, 0x10, 0x60, 0x08, 0x74, 0x53, 0x60, +0x09, 0x5C, 0x05, 0x60, 0x02, 0x74, 0x1F, 0x60, +0x03, 0x74, 0x3E, 0x60, 0x71, 0x10, 0x0A, 0x74, +0x56, 0x60, 0x0A, 0x5C, 0x4F, 0x61, 0x0C, 0x74, +0x1A, 0x60, 0x6A, 0x10, 0x16, 0x74, 0x1C, 0x60, +0x17, 0x5C, 0x05, 0x60, 0x12, 0x74, 0x5A, 0x60, +0x13, 0x74, 0x4E, 0x60, 0x61, 0x10, 0x24, 0x74, +0x51, 0x60, 0xB7, 0x74, 0x57, 0x60, 0x18, 0x74, +0x22, 0x60, 0x5A, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xF4, 0x48, 0x9A, 0x34, 0x10, 0x85, 0x67, +0x80, 0x18, 0x48, 0x65, 0x1B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF4, 0x44, 0x9A, 0x2B, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, +0x07, 0xF3, 0x90, 0xA3, 0x01, 0x6E, 0xCC, 0xEC, +0x4C, 0xEC, 0x58, 0x2C, 0xE7, 0xF1, 0x74, 0xA3, +0xCC, 0xEB, 0x4C, 0xEB, 0x53, 0x2B, 0x85, 0x67, +0x80, 0x18, 0xAF, 0x6E, 0x03, 0x10, 0x85, 0x67, +0x80, 0x18, 0xF3, 0x6E, 0x62, 0x67, 0x4B, 0x10, +0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, 0x68, 0xA3, +0x02, 0x6C, 0x6C, 0xEC, 0x4C, 0xEC, 0x12, 0x6B, +0x42, 0x2C, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, +0x54, 0x9A, 0x40, 0xEA, 0xEF, 0x17, 0x30, 0xF0, +0x20, 0x6A, 0x60, 0xF4, 0x58, 0x9A, 0x85, 0x67, +0x40, 0xEA, 0xE8, 0x17, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xF4, 0x5C, 0x9A, 0xF8, 0x17, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF4, 0x40, 0x9A, 0xF3, 0x17, +0x87, 0x45, 0x01, 0x4C, 0x80, 0x18, 0x4C, 0x68, +0x00, 0x6B, 0x25, 0x10, 0x85, 0x67, 0x80, 0x18, +0x2A, 0x72, 0xD4, 0x17, 0x85, 0x67, 0x80, 0x18, +0x95, 0x29, 0xD0, 0x17, 0x80, 0x18, 0xEA, 0x07, +0x00, 0x6B, 0x19, 0x2A, 0x13, 0x6B, 0x17, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x6C, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF2, 0x94, 0x9C, +0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, +0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, 0x60, 0xDA, +0xFF, 0x6B, 0x01, 0x10, 0x10, 0x6B, 0x05, 0x97, +0x43, 0x67, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, +0x20, 0x6C, 0xEB, 0xF1, 0x13, 0x4C, 0x07, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0xA0, 0xF0, 0x7F, 0xA2, 0xA0, 0xF0, +0xBB, 0xA2, 0x00, 0x6C, 0x63, 0xF6, 0x78, 0xC2, +0x7F, 0x6B, 0xAC, 0xEB, 0x63, 0xF6, 0x9A, 0xC2, +0x04, 0x2B, 0x01, 0x6B, 0x63, 0xF6, 0x7B, 0xC2, +0x02, 0x10, 0x63, 0xF6, 0x9B, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xF0, +0xDB, 0xA2, 0x63, 0xF6, 0x99, 0xA2, 0x7F, 0x6B, +0xCC, 0xEB, 0x6E, 0xEC, 0xFF, 0x6D, 0x07, 0x24, +0xA0, 0xF0, 0x9E, 0xA2, 0x96, 0x34, 0xAC, 0xEC, +0x00, 0x18, 0x28, 0xD2, 0x07, 0x10, 0x06, 0x23, +0xA0, 0xF0, 0x9E, 0xA2, 0x96, 0x34, 0xAC, 0xEC, +0x00, 0x18, 0xB0, 0xD1, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF1, 0x74, 0x9B, 0x63, 0xF6, 0x98, 0x9A, +0x8C, 0xEB, 0x04, 0x73, 0x0C, 0x61, 0xE3, 0xF5, +0x7F, 0xA2, 0x04, 0x6C, 0x8C, 0xEB, 0x07, 0x23, +0x01, 0x6B, 0x63, 0xF6, 0x7A, 0xC2, 0x01, 0x6C, +0x00, 0x6D, 0x00, 0x18, 0x62, 0xC8, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xF0, +0x9B, 0xA2, 0x7F, 0x6B, 0x8C, 0xEB, 0x63, 0xF6, +0x79, 0xC2, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x08, 0xD4, 0x41, 0xA4, 0x24, 0x67, 0x06, 0xD2, +0x60, 0xA4, 0x02, 0x6A, 0x6C, 0xEA, 0x06, 0x93, +0x07, 0xD3, 0x02, 0x22, 0x82, 0xA4, 0x07, 0xD4, +0x06, 0x90, 0x34, 0x10, 0x08, 0x93, 0x01, 0x6D, +0x90, 0x67, 0x40, 0xA3, 0x4C, 0xED, 0x00, 0x18, +0xC8, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x5C, 0x9A, 0x90, 0x67, 0x40, 0xEA, 0x0F, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x58, 0x9A, +0x90, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF4, 0x48, 0x9A, 0x14, 0x33, 0x4D, 0xE3, +0x80, 0xA3, 0xBF, 0x6A, 0x12, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x54, 0x9A, 0x90, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, +0x48, 0x9A, 0x14, 0x33, 0xFF, 0x6C, 0x4D, 0xE3, +0x40, 0xA3, 0x8C, 0xEA, 0x40, 0x6C, 0x8D, 0xEA, +0xFF, 0x6C, 0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x48, +0xFF, 0x6A, 0x4C, 0xE8, 0x07, 0x92, 0x03, 0xEA, +0xC9, 0x60, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, +0x18, 0x48, 0xC0, 0xF0, 0x9F, 0xA0, 0x06, 0x92, +0x8E, 0xEA, 0x1E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x5C, 0x9A, 0x40, 0xEA, 0x18, 0x2A, +0x00, 0x18, 0x1A, 0xEB, 0xA0, 0xF0, 0x9E, 0xA0, +0x96, 0x34, 0x00, 0x18, 0x48, 0xC6, 0xE3, 0xF5, +0x7C, 0xA0, 0x05, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xE3, 0xF5, 0x7D, 0xA0, 0xE3, 0xF5, 0x5C, 0xC0, +0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x03, 0x6B, +0x6B, 0xEB, 0x6C, 0xEA, 0xE3, 0xF5, 0x5D, 0xC0, +0x43, 0xA1, 0x07, 0x6B, 0x01, 0x6C, 0x4C, 0xEB, +0x40, 0xA1, 0x8C, 0xEA, 0x1C, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA4, 0xF5, -0x9C, 0xA2, 0x02, 0x6B, 0x8D, 0xEB, 0xA4, 0xF5, -0x7C, 0xC2, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, -0x07, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, 0x68, 0x44, -0xC8, 0x4B, 0x4C, 0xEB, 0x20, 0x5B, 0x05, 0x67, -0x03, 0x60, 0x80, 0x18, 0x58, 0x46, 0x8F, 0x11, -0x2E, 0x74, 0x00, 0xF1, 0x19, 0x60, 0x2F, 0x5C, -0x5E, 0x60, 0x1C, 0x74, 0xE0, 0xF0, 0x08, 0x60, -0x1D, 0x5C, 0x2D, 0x60, 0x10, 0x74, 0xC0, 0xF0, -0x0B, 0x60, 0x11, 0x5C, 0x12, 0x60, 0x09, 0x74, -0xA0, 0xF0, 0x1A, 0x60, 0x0A, 0x5C, 0x06, 0x60, -0xA0, 0xF0, 0x0A, 0x24, 0x01, 0x74, 0xA0, 0xF0, -0x0B, 0x60, 0x62, 0x11, 0x0B, 0x74, 0xA0, 0xF0, -0x13, 0x60, 0x0E, 0x74, 0xA0, 0xF0, 0x14, 0x60, -0x5B, 0x11, 0x16, 0x74, 0xA0, 0xF0, 0x1C, 0x60, -0x17, 0x5C, 0x07, 0x60, 0x14, 0x74, 0x60, 0xF1, -0x06, 0x60, 0x15, 0x74, 0xA0, 0xF0, 0x10, 0x60, -0x4F, 0x11, 0x18, 0x74, 0xA0, 0xF0, 0x18, 0x60, -0x18, 0x5C, 0xA0, 0xF0, 0x11, 0x61, 0x19, 0x74, -0xA0, 0xF0, 0x16, 0x60, 0x45, 0x11, 0x23, 0x74, -0x40, 0xF1, 0x15, 0x60, 0x24, 0x5C, 0x11, 0x60, -0x1F, 0x74, 0xA0, 0xF0, 0x19, 0x60, 0x20, 0x5C, -0x07, 0x60, 0x1D, 0x74, 0xA0, 0xF0, 0x10, 0x60, -0x1E, 0x74, 0xA0, 0xF0, 0x15, 0x60, 0x34, 0x11, -0x20, 0x74, 0xA0, 0xF0, 0x15, 0x60, 0x21, 0x74, -0x09, 0x10, 0x27, 0x74, 0xA0, 0xF0, 0x1C, 0x60, -0x28, 0x5C, 0x07, 0x60, 0x24, 0x74, 0xA0, 0xF0, -0x13, 0x60, 0x25, 0x74, 0x20, 0xF1, 0x17, 0x60, -0x23, 0x11, 0x2C, 0x74, 0xA0, 0xF0, 0x18, 0x60, -0x2D, 0x5C, 0xA0, 0xF0, 0x19, 0x60, 0x2B, 0x74, -0xA0, 0xF0, 0x0E, 0x60, 0x19, 0x11, 0x69, 0x74, -0xE0, 0xF0, 0x1A, 0x60, 0x6A, 0x5C, 0x2B, 0x60, -0x62, 0x74, 0xE0, 0xF0, 0x01, 0x60, 0x63, 0x5C, -0x13, 0x60, 0x31, 0x74, 0x80, 0xF0, 0x14, 0x60, -0x32, 0x5C, 0x07, 0x60, 0x2F, 0x74, 0xA0, 0xF0, -0x0B, 0x60, 0x30, 0x74, 0xA0, 0xF0, 0x0C, 0x60, -0x03, 0x11, 0x60, 0x74, 0xA0, 0xF0, 0x0C, 0x60, -0x61, 0x74, 0xC0, 0xF0, 0x09, 0x60, 0xFC, 0x10, -0x65, 0x74, 0xA0, 0xF0, 0x0D, 0x60, 0x66, 0x5C, -0x07, 0x60, 0x63, 0x74, 0xC0, 0xF0, 0x08, 0x60, -0x64, 0x74, 0xA0, 0xF0, 0x01, 0x60, 0xF0, 0x10, -0x67, 0x74, 0xC0, 0xF0, 0x09, 0x60, 0x68, 0x5C, -0xC0, 0xF0, 0x0A, 0x60, 0xC1, 0x10, 0x71, 0x74, -0xA0, 0xF0, 0x0E, 0x60, 0x72, 0x5C, 0x13, 0x60, -0x6E, 0x74, 0x80, 0xF0, 0x1D, 0x60, 0x6F, 0x5C, -0x07, 0x60, 0x6C, 0x74, 0xC0, 0xF0, 0x04, 0x60, -0x6D, 0x74, 0x80, 0xF0, 0x11, 0x60, 0xD8, 0x10, -0x6F, 0x74, 0x80, 0xF0, 0x15, 0x60, 0x70, 0x74, +0xD8, 0xA2, 0x84, 0xEB, 0x1F, 0x6F, 0xCA, 0x35, +0x8F, 0xEC, 0xEC, 0xED, 0x8C, 0xED, 0x7D, 0x6C, +0x8B, 0xEC, 0xA8, 0x35, 0xCC, 0xEC, 0xAD, 0xEC, +0xA4, 0xF5, 0x98, 0xC2, 0xC0, 0xF0, 0x9E, 0xA2, +0x8E, 0xEB, 0x1E, 0x2B, 0x01, 0x6B, 0x6B, 0xEB, +0xA4, 0xF5, 0x79, 0xC2, 0x19, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA4, 0xF5, +0xD8, 0xA2, 0x1F, 0x6F, 0x84, 0xEB, 0xCA, 0x35, +0xEC, 0xED, 0xAD, 0xEC, 0xEC, 0xEC, 0x88, 0x35, +0x7D, 0x6C, 0x8B, 0xEC, 0xCC, 0xEC, 0xAD, 0xEC, +0xA4, 0xF5, 0x98, 0xC2, 0xC0, 0xF0, 0x9E, 0xA2, +0x8E, 0xEB, 0x02, 0x2B, 0xA4, 0xF5, 0x99, 0xC2, +0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, +0xA4, 0xF5, 0x78, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, +0x1A, 0x22, 0x03, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xA4, 0xF5, 0x58, 0xC0, 0x00, 0x18, 0x10, 0xE6, +0x04, 0xD2, 0x04, 0x93, 0xA4, 0xF5, 0x5C, 0x98, +0x6E, 0xEA, 0x03, 0x22, 0x04, 0x94, 0x00, 0x18, +0x31, 0xE6, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0xA4, 0xF5, 0x98, 0xA2, 0x02, 0x6B, +0x8D, 0xEB, 0xA4, 0xF5, 0x78, 0xC2, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, +0x4C, 0xEC, 0x68, 0x44, 0xC8, 0x4B, 0x4C, 0xEB, +0x20, 0x5B, 0x05, 0x67, 0x03, 0x60, 0x80, 0x18, +0x67, 0x46, 0x91, 0x11, 0x2F, 0x74, 0x00, 0xF1, +0x1B, 0x60, 0x30, 0x5C, 0x5D, 0x60, 0x1D, 0x74, +0xE0, 0xF0, 0x0A, 0x60, 0x1E, 0x5C, 0x2D, 0x60, +0x14, 0x74, 0x80, 0xF1, 0x04, 0x60, 0x15, 0x5C, +0x12, 0x60, 0x09, 0x74, 0xA0, 0xF0, 0x1C, 0x60, +0x0A, 0x5C, 0x06, 0x60, 0xA0, 0xF0, 0x0C, 0x24, +0x01, 0x74, 0xA0, 0xF0, 0x0D, 0x60, 0x64, 0x11, +0x0B, 0x74, 0xA0, 0xF0, 0x15, 0x60, 0x10, 0x74, +0xA0, 0xF0, 0x16, 0x60, 0x5D, 0x11, 0x17, 0x74, +0xA0, 0xF0, 0x1E, 0x60, 0x18, 0x5C, 0x07, 0x60, +0x15, 0x74, 0xA0, 0xF0, 0x11, 0x60, 0x16, 0x74, +0xA0, 0xF0, 0x12, 0x60, 0x51, 0x11, 0x19, 0x74, +0xA0, 0xF0, 0x1A, 0x60, 0x19, 0x5C, 0xA0, 0xF0, +0x13, 0x61, 0x1C, 0x74, 0xA0, 0xF0, 0x18, 0x60, +0x47, 0x11, 0x24, 0x74, 0xC0, 0xF0, 0x0C, 0x60, +0x25, 0x5C, 0x13, 0x60, 0x20, 0x74, 0xA0, 0xF0, +0x1F, 0x60, 0x21, 0x5C, 0x07, 0x60, 0x1E, 0x74, +0xA0, 0xF0, 0x16, 0x60, 0x1F, 0x74, 0xA0, 0xF0, +0x0F, 0x60, 0x36, 0x11, 0x21, 0x74, 0x40, 0xF1, +0x06, 0x60, 0x23, 0x74, 0x40, 0xF1, 0x03, 0x60, +0x2F, 0x11, 0x2B, 0x74, 0xA0, 0xF0, 0x1C, 0x60, +0x2C, 0x5C, 0x07, 0x60, 0x25, 0x74, 0x20, 0xF1, +0x1A, 0x60, 0x27, 0x74, 0xA0, 0xF0, 0x10, 0x60, +0x23, 0x11, 0x2D, 0x74, 0xA0, 0xF0, 0x18, 0x60, +0x2E, 0x5C, 0xA0, 0xF0, 0x19, 0x60, 0xB0, 0x10, +0x6C, 0x74, 0xE0, 0xF0, 0x1D, 0x60, 0x6D, 0x5C, +0x2E, 0x60, 0x63, 0x74, 0xE0, 0xF0, 0x04, 0x60, +0x64, 0x5C, 0x13, 0x60, 0x60, 0x74, 0xA0, 0xF0, +0x17, 0x60, 0x61, 0x5C, 0x07, 0x60, 0x30, 0x74, +0xA0, 0xF0, 0x0E, 0x60, 0x31, 0x74, 0x80, 0xF0, +0x0B, 0x60, 0x06, 0x11, 0x61, 0x74, 0xC0, 0xF0, +0x0B, 0x60, 0x62, 0x74, 0xC0, 0xF0, 0x0C, 0x60, +0xFF, 0x10, 0x66, 0x74, 0xC0, 0xF0, 0x10, 0x60, +0x67, 0x5C, 0x07, 0x60, 0x64, 0x74, 0xA0, 0xF0, +0x03, 0x60, 0x65, 0x74, 0xA0, 0xF0, 0x04, 0x60, +0xF3, 0x10, 0x68, 0x74, 0xC0, 0xF0, 0x0C, 0x60, +0x68, 0x5C, 0xC0, 0xF0, 0x05, 0x61, 0x69, 0x74, +0xC0, 0xF0, 0x0A, 0x60, 0xE9, 0x10, 0x72, 0x74, +0xC0, 0xF0, 0x0E, 0x60, 0x73, 0x5C, 0x13, 0x60, +0x6F, 0x74, 0x80, 0xF0, 0x1D, 0x60, 0x70, 0x5C, +0x07, 0x60, 0x6D, 0x74, 0x80, 0xF0, 0x10, 0x60, +0x6E, 0x74, 0x80, 0xF0, 0x11, 0x60, 0xD8, 0x10, +0x70, 0x74, 0x80, 0xF0, 0x15, 0x60, 0x71, 0x74, 0x80, 0xF0, 0x16, 0x60, 0xD1, 0x10, 0xC3, 0x74, 0xC0, 0xF0, 0x0A, 0x60, 0xC4, 0x5C, 0x06, 0x60, 0xBA, 0x74, 0xA0, 0xF0, 0x15, 0x60, 0xBB, 0x74, 0x13, 0x60, 0xC6, 0x10, 0xCD, 0x74, 0xA0, 0xF0, 0x17, 0x60, 0xD1, 0x74, 0xA0, 0xF0, 0x18, 0x60, 0xCA, 0x74, 0xA0, 0xF0, 0x0D, 0x60, 0xBC, 0x10, -0x85, 0x67, 0x80, 0x18, 0xF9, 0x1D, 0xCB, 0x10, -0x85, 0x67, 0x80, 0x18, 0xC3, 0x20, 0xC7, 0x10, -0x85, 0x67, 0x00, 0x18, 0x0D, 0xF3, 0xC3, 0x10, +0x85, 0x67, 0x80, 0x18, 0xD0, 0x20, 0xCB, 0x10, +0x85, 0x67, 0x80, 0x18, 0x9A, 0x23, 0xC7, 0x10, +0x85, 0x67, 0x00, 0x18, 0x63, 0xF2, 0xC3, 0x10, 0x85, 0x67, 0x80, 0x18, 0x0B, 0x00, 0xBF, 0x10, -0x85, 0x67, 0x80, 0x18, 0xF1, 0x63, 0xBB, 0x10, -0x85, 0x67, 0x80, 0x18, 0xC1, 0x65, 0xB7, 0x10, -0x85, 0x67, 0x80, 0x18, 0xEF, 0x65, 0xB3, 0x10, -0x85, 0x67, 0x80, 0x18, 0x1A, 0x65, 0xAF, 0x10, -0x85, 0x67, 0x80, 0x18, 0x32, 0x65, 0xAB, 0x10, -0x85, 0x67, 0x80, 0x18, 0x03, 0x6D, 0xA7, 0x10, -0x85, 0x67, 0x80, 0x18, 0x79, 0x6C, 0xA3, 0x10, -0x85, 0x67, 0x80, 0x18, 0x3E, 0x65, 0x9F, 0x10, -0x85, 0x67, 0x80, 0x18, 0x7A, 0x6C, 0x9B, 0x10, -0x85, 0x67, 0x80, 0x18, 0x7B, 0x6C, 0x97, 0x10, -0x85, 0x67, 0x00, 0x18, 0x60, 0xDD, 0x93, 0x10, -0x85, 0x67, 0x00, 0x18, 0x46, 0xDD, 0x8F, 0x10, -0x85, 0x67, 0x80, 0x18, 0x91, 0x20, 0x8B, 0x10, -0x85, 0x67, 0x80, 0x18, 0x01, 0x1E, 0x87, 0x10, -0x85, 0x67, 0x80, 0x18, 0x02, 0x64, 0x83, 0x10, -0x85, 0x67, 0x80, 0x18, 0xF9, 0x63, 0x7F, 0x10, -0x85, 0x67, 0x00, 0x18, 0x97, 0xDD, 0x7B, 0x10, -0x85, 0x67, 0x00, 0x18, 0xD3, 0xC2, 0x77, 0x10, -0x85, 0x67, 0x80, 0x18, 0x0A, 0x1E, 0x73, 0x10, -0x85, 0x67, 0x80, 0x18, 0x24, 0x24, 0x6F, 0x10, -0x85, 0x67, 0x80, 0x18, 0xEB, 0x24, 0x6B, 0x10, -0x85, 0x67, 0x80, 0x18, 0x20, 0x25, 0x67, 0x10, -0x85, 0x67, 0x80, 0x18, 0x2F, 0x60, 0x63, 0x10, -0x85, 0x67, 0x80, 0x18, 0x44, 0x60, 0x5F, 0x10, -0x85, 0x67, 0x80, 0x18, 0x45, 0x60, 0x5B, 0x10, -0x85, 0x67, 0x80, 0x18, 0x27, 0x63, 0x57, 0x10, -0x85, 0x67, 0x80, 0x18, 0x52, 0x60, 0x53, 0x10, -0x85, 0x67, 0x80, 0x18, 0x61, 0x60, 0x4F, 0x10, -0x85, 0x67, 0x80, 0x18, 0x6D, 0x60, 0x4B, 0x10, -0x85, 0x67, 0x80, 0x18, 0x9B, 0x60, 0x47, 0x10, -0x85, 0x67, 0x80, 0x18, 0x22, 0x63, 0x43, 0x10, -0x85, 0x67, 0x80, 0x18, 0x1D, 0x63, 0x3F, 0x10, -0x85, 0x67, 0x80, 0x18, 0x18, 0x63, 0x3B, 0x10, -0x85, 0x67, 0x80, 0x18, 0x13, 0x63, 0x37, 0x10, -0x85, 0x67, 0x80, 0x18, 0x07, 0x63, 0x33, 0x10, -0x85, 0x67, 0x80, 0x18, 0x02, 0x63, 0x2F, 0x10, -0x85, 0x67, 0x80, 0x18, 0xA2, 0x62, 0x2B, 0x10, -0x85, 0x67, 0x80, 0x18, 0x9D, 0x62, 0x27, 0x10, +0x85, 0x67, 0x80, 0x18, 0x85, 0x62, 0xBB, 0x10, +0x85, 0x67, 0x80, 0x18, 0x13, 0x64, 0xB7, 0x10, +0x85, 0x67, 0x80, 0x18, 0xAE, 0x63, 0xB3, 0x10, +0x85, 0x67, 0x80, 0x18, 0xC6, 0x63, 0xAF, 0x10, +0x85, 0x67, 0x80, 0x18, 0x58, 0x6B, 0xAB, 0x10, +0x85, 0x67, 0x80, 0x18, 0x9D, 0x6A, 0xA7, 0x10, +0x85, 0x67, 0x80, 0x18, 0xD2, 0x63, 0xA3, 0x10, +0x85, 0x67, 0x80, 0x18, 0x9E, 0x6A, 0x9F, 0x10, +0x85, 0x67, 0x80, 0x18, 0x9F, 0x6A, 0x9B, 0x10, +0x85, 0x67, 0x00, 0x18, 0xBF, 0xDC, 0x97, 0x10, +0x85, 0x67, 0x00, 0x18, 0xA5, 0xDC, 0x93, 0x10, +0x85, 0x67, 0x80, 0x18, 0x68, 0x23, 0x8F, 0x10, +0x85, 0x67, 0x80, 0x18, 0xD8, 0x20, 0x8B, 0x10, +0x85, 0x67, 0x80, 0x18, 0x96, 0x62, 0x87, 0x10, +0x85, 0x67, 0x80, 0x18, 0x8D, 0x62, 0x83, 0x10, +0x85, 0x67, 0x00, 0x18, 0xF6, 0xDC, 0x7F, 0x10, +0x85, 0x67, 0x00, 0x18, 0xC6, 0xC1, 0x7B, 0x10, +0x85, 0x67, 0x80, 0x18, 0xE1, 0x20, 0x77, 0x10, +0x85, 0x67, 0x80, 0x18, 0xFC, 0x26, 0x73, 0x10, +0x85, 0x67, 0x80, 0x18, 0xC3, 0x27, 0x6F, 0x10, +0x85, 0x67, 0x80, 0x18, 0xF8, 0x27, 0x6B, 0x10, +0x85, 0x67, 0x80, 0x18, 0xB4, 0x5E, 0x67, 0x10, +0x85, 0x67, 0x80, 0x18, 0xC9, 0x5E, 0x63, 0x10, +0x85, 0x67, 0x80, 0x18, 0xCA, 0x5E, 0x5F, 0x10, +0x85, 0x67, 0x80, 0x18, 0xB4, 0x61, 0x5B, 0x10, +0x85, 0x67, 0x80, 0x18, 0xD7, 0x5E, 0x57, 0x10, +0x85, 0x67, 0x80, 0x18, 0xE6, 0x5E, 0x53, 0x10, +0x85, 0x67, 0x80, 0x18, 0xF2, 0x5E, 0x4F, 0x10, +0x85, 0x67, 0x80, 0x18, 0x20, 0x5F, 0x4B, 0x10, +0x85, 0x67, 0x80, 0x18, 0xAC, 0x61, 0x47, 0x10, +0x85, 0x67, 0x80, 0x18, 0xA7, 0x61, 0x43, 0x10, +0x85, 0x67, 0x80, 0x18, 0xA2, 0x61, 0x3F, 0x10, +0x85, 0x67, 0x80, 0x18, 0x9D, 0x61, 0x3B, 0x10, +0x85, 0x67, 0x80, 0x18, 0x91, 0x61, 0x37, 0x10, +0x85, 0x67, 0x80, 0x18, 0x8C, 0x61, 0x33, 0x10, +0x85, 0x67, 0x80, 0x18, 0x2C, 0x61, 0x2F, 0x10, +0x85, 0x67, 0x80, 0x18, 0x27, 0x61, 0x2B, 0x10, +0x85, 0x67, 0x80, 0x18, 0x22, 0x61, 0x27, 0x10, 0x85, 0x67, 0x80, 0x18, 0x86, 0x00, 0x23, 0x10, -0x85, 0x67, 0x00, 0x18, 0x21, 0xDD, 0x1F, 0x10, -0x85, 0x67, 0x80, 0x18, 0x1D, 0x1E, 0x1B, 0x10, -0x85, 0x67, 0x00, 0x18, 0xB0, 0xF4, 0x17, 0x10, -0x85, 0x67, 0x80, 0x18, 0xD4, 0x64, 0x13, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x68, 0x9A, +0x85, 0x67, 0x00, 0x18, 0x80, 0xDC, 0x1F, 0x10, +0x85, 0x67, 0x80, 0x18, 0xF4, 0x20, 0x1B, 0x10, +0x85, 0x67, 0x00, 0x18, 0x06, 0xF4, 0x17, 0x10, +0x85, 0x67, 0x80, 0x18, 0x68, 0x63, 0x13, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x6C, 0x9A, 0x01, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, @@ -30055,14 +30027,14 @@ u8 array_mp_8822c_fw_nic[] = { 0x61, 0xA0, 0x4E, 0xEB, 0x29, 0x23, 0x67, 0x42, 0x25, 0x4B, 0x6C, 0x33, 0x0D, 0xE3, 0x4C, 0x32, 0x80, 0xA3, 0x60, 0xF1, 0xA1, 0x42, 0xB5, 0xE0, -0x80, 0x18, 0x2D, 0x21, 0xA0, 0xF1, 0x40, 0xA0, +0x80, 0x18, 0x04, 0x24, 0xA0, 0xF1, 0x40, 0xA0, 0x01, 0x4A, 0xA0, 0xF1, 0x40, 0xC0, 0xA0, 0xF1, 0x60, 0xA0, 0xA0, 0xF1, 0x41, 0xA0, 0x6E, 0xEA, 0x06, 0x22, 0xA0, 0xF0, 0x44, 0x98, 0x02, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xF1, 0x60, 0xA2, 0x08, 0x6C, 0x8E, 0xEB, 0x02, 0x2B, -0xA0, 0xF1, 0x60, 0xC2, 0x80, 0x18, 0xA8, 0x1E, +0xA0, 0xF1, 0x60, 0xC2, 0x80, 0x18, 0x7F, 0x21, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0x22, 0xF6, @@ -30070,26 +30042,26 @@ u8 array_mp_8822c_fw_nic[] = { 0xB4, 0x35, 0x09, 0xE5, 0xA0, 0xF0, 0x4A, 0xA2, 0x8C, 0xEA, 0x20, 0x2A, 0x74, 0x33, 0x09, 0xE3, 0x22, 0xF5, 0x92, 0xA2, 0xA2, 0x67, 0x22, 0xF5, -0x13, 0x4D, 0x80, 0x18, 0x2D, 0x21, 0x22, 0xF6, +0x13, 0x4D, 0x80, 0x18, 0x04, 0x24, 0x22, 0xF6, 0x4A, 0xA0, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF7, -0x90, 0x9C, 0x54, 0x33, 0x0D, 0xE3, 0x22, 0xF5, +0x9C, 0x9C, 0x54, 0x33, 0x0D, 0xE3, 0x22, 0xF5, 0xB0, 0xA3, 0x54, 0x32, 0x41, 0xE0, 0xA0, 0xC4, 0x22, 0xF5, 0x91, 0xA3, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF7, 0x74, 0x9B, 0x80, 0xC3, 0x22, 0xF5, +0x83, 0xF7, 0x60, 0x9B, 0x80, 0xC3, 0x22, 0xF5, 0x8A, 0x40, 0x34, 0x10, 0x01, 0x72, 0x34, 0x61, 0x74, 0x33, 0x0D, 0xE3, 0x22, 0xF5, 0x4B, 0xA3, 0xFF, 0x72, 0x0E, 0x61, 0xB5, 0xE0, 0x22, 0xF5, 0x8C, 0xA3, 0x7F, 0x4D, 0x2B, 0x4D, 0x80, 0x18, -0x3E, 0x20, 0x22, 0xF6, 0x6A, 0xA0, 0x74, 0x33, +0x15, 0x23, 0x22, 0xF6, 0x6A, 0xA0, 0x74, 0x33, 0x01, 0xE3, 0x22, 0xF5, 0x52, 0xC0, 0x04, 0x10, 0x01, 0x6A, 0x4B, 0xEA, 0x22, 0xF5, 0x52, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x22, 0xF6, 0x6A, 0xA2, 0x30, 0xF0, 0x20, 0x6D, -0x63, 0xF7, 0xB0, 0x9D, 0x74, 0x34, 0x51, 0xE4, +0x63, 0xF7, 0xBC, 0x9D, 0x74, 0x34, 0x51, 0xE4, 0x22, 0xF5, 0xD0, 0xA4, 0x74, 0x33, 0x69, 0xE2, 0xC0, 0xC5, 0x22, 0xF5, 0xB1, 0xA4, 0x30, 0xF0, -0x20, 0x6C, 0x63, 0xF7, 0x94, 0x9C, 0xA0, 0xC4, -0x22, 0xF5, 0x8A, 0x42, 0x80, 0x18, 0xA0, 0x1F, +0x20, 0x6C, 0x83, 0xF7, 0x80, 0x9C, 0xA0, 0xC4, +0x22, 0xF5, 0x8A, 0x42, 0x80, 0x18, 0x77, 0x22, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0x22, 0xF6, @@ -30103,47 +30075,47 @@ u8 array_mp_8822c_fw_nic[] = { 0x2B, 0xF1, 0x18, 0x4B, 0xA0, 0xF0, 0x44, 0x9B, 0x04, 0x6C, 0x8D, 0xEA, 0x02, 0x6C, 0x8D, 0xEA, 0xA0, 0xF0, 0x44, 0xDB, 0x20, 0x10, 0x80, 0x18, -0x1C, 0x22, 0x22, 0xF6, 0x4A, 0xA0, 0x01, 0x4A, +0xF4, 0x24, 0x22, 0xF6, 0x4A, 0xA0, 0x01, 0x4A, 0x22, 0xF6, 0x4A, 0xC0, 0x22, 0xF6, 0x6A, 0xA0, 0x22, 0xF6, 0x4B, 0xA0, 0x6E, 0xEA, 0x06, 0x22, 0xA0, 0xF0, 0x44, 0x98, 0x02, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x22, 0xF6, 0x6A, 0xA2, 0x08, 0x6C, 0x8E, 0xEB, 0x02, 0x2B, 0x22, 0xF6, -0x6A, 0xC2, 0x80, 0x18, 0x34, 0x1E, 0x05, 0x97, +0x6A, 0xC2, 0x80, 0x18, 0x0B, 0x21, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF7, 0x68, 0x9B, 0x30, 0xF0, 0x20, 0x68, -0x83, 0xF7, 0x0C, 0x98, 0xE0, 0x9B, 0xFF, 0x6A, +0x83, 0xF7, 0x6C, 0x9B, 0x30, 0xF0, 0x20, 0x68, +0x83, 0xF7, 0x10, 0x98, 0xE0, 0x9B, 0xFF, 0x6A, 0x4C, 0xEC, 0x0C, 0xEF, 0x08, 0x5C, 0x4C, 0xED, 0x4C, 0xEE, 0xE0, 0xDB, 0x46, 0x60, 0xB0, 0x75, 0x2E, 0x61, 0xB2, 0x76, 0x13, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF7, 0xB0, 0x9A, 0x01, 0x6A, +0x20, 0x6A, 0x83, 0xF7, 0xB4, 0x9A, 0x01, 0x6A, 0x44, 0xEC, 0xC0, 0x9D, 0x00, 0xF6, 0x40, 0x34, 0xCD, 0xEC, 0x80, 0xDD, 0xC0, 0x9D, 0x40, 0x34, 0x80, 0x34, 0x8F, 0xEC, 0xCC, 0xEC, 0x80, 0xDD, 0x80, 0x9B, 0x4E, 0x10, 0xB1, 0x76, 0x80, 0xF0, 0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF7, -0xB0, 0x9A, 0x01, 0x6A, 0x44, 0xEC, 0xC0, 0x9D, +0xB4, 0x9A, 0x01, 0x6A, 0x44, 0xEC, 0xC0, 0x9D, 0x00, 0xF6, 0x40, 0x34, 0xCD, 0xEC, 0x80, 0xDD, 0xC0, 0x9D, 0x40, 0x34, 0x80, 0x34, 0x8F, 0xEC, 0xCC, 0xEC, 0x80, 0xDD, 0x80, 0x9B, 0x4F, 0xEA, 0x8C, 0xEA, 0x40, 0xDB, 0x7B, 0x10, 0xA0, 0x75, 0x7D, 0x61, 0xA1, 0x76, 0x08, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF7, 0x50, 0x9A, 0x01, 0x6B, +0x20, 0x6A, 0x83, 0xF7, 0x54, 0x9A, 0x01, 0x6B, 0x64, 0xEC, 0xA0, 0x9A, 0x51, 0x10, 0xA2, 0x76, 0x6F, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF7, -0x50, 0x9A, 0x01, 0x6B, 0x64, 0xEC, 0xA0, 0x9A, +0x54, 0x9A, 0x01, 0x6B, 0x64, 0xEC, 0xA0, 0x9A, 0x5A, 0x10, 0xE8, 0x44, 0x4C, 0xEF, 0x08, 0x5F, 0xE0, 0x6A, 0x65, 0x60, 0xB0, 0x75, 0x35, 0x61, 0xB2, 0x76, 0x18, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF7, 0x54, 0x9A, 0x01, 0x6E, 0xA6, 0x67, +0x83, 0xF7, 0x58, 0x9A, 0x01, 0x6E, 0xA6, 0x67, 0x00, 0x9A, 0xA4, 0xEF, 0xE5, 0x67, 0x00, 0xF6, 0xA0, 0x35, 0x0D, 0xED, 0xA0, 0xDA, 0xA0, 0x9A, 0xE0, 0x37, 0xE0, 0x37, 0xEF, 0xEF, 0xAC, 0xEF, 0xE0, 0xDA, 0x40, 0x9B, 0xC4, 0xEC, 0x86, 0x67, 0x4D, 0xEC, 0x19, 0x10, 0xB1, 0x76, 0x44, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF7, 0x54, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF7, 0x58, 0x9A, 0x01, 0x6E, 0xA6, 0x67, 0x00, 0x9A, 0xA4, 0xEF, 0xE5, 0x67, 0x00, 0xF6, 0xA0, 0x35, 0x0D, 0xED, 0xA0, 0xDA, 0xA0, 0x9A, 0xE0, 0x37, 0xE0, 0x37, @@ -30151,11 +30123,11 @@ u8 array_mp_8822c_fw_nic[] = { 0xC4, 0xEC, 0xCF, 0xEC, 0x4C, 0xEC, 0x80, 0xDB, 0x29, 0x10, 0xA0, 0x75, 0x2B, 0x61, 0xA1, 0x76, 0x11, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF7, -0x54, 0x9A, 0x01, 0x6B, 0x64, 0xEF, 0xA0, 0x9A, +0x58, 0x9A, 0x01, 0x6B, 0x64, 0xEF, 0xA0, 0x9A, 0x00, 0xF6, 0x60, 0x34, 0x8F, 0xEC, 0xAC, 0xEC, 0x80, 0xDA, 0x80, 0x9A, 0x60, 0x33, 0x60, 0x33, 0x8D, 0xEB, 0x13, 0x10, 0xA2, 0x76, 0x14, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF7, 0x54, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF7, 0x58, 0x9A, 0x01, 0x6B, 0x64, 0xEF, 0xA0, 0x9A, 0x00, 0xF6, 0x60, 0x34, 0x8F, 0xEC, 0xAC, 0xEC, 0x80, 0xDA, 0x80, 0x9A, 0x60, 0x33, 0x60, 0x33, 0x6F, 0xEB, @@ -30163,73 +30135,73 @@ u8 array_mp_8822c_fw_nic[] = { 0xE2, 0x6A, 0x01, 0x10, 0xE1, 0x6A, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, 0xFF, 0x6B, 0x6C, 0xEC, 0x08, 0x5C, 0xFF, 0x63, 0x18, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF7, 0x58, 0x9A, 0x01, 0x6D, +0x20, 0x6A, 0x83, 0xF7, 0x5C, 0x9A, 0x01, 0x6D, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, -0x37, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF7, -0x5C, 0x9A, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, +0x37, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, +0x40, 0x9A, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x30, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF7, 0x50, 0x9A, 0x1C, 0x10, 0xF8, 0x4C, +0x83, 0xF7, 0x54, 0x9A, 0x1C, 0x10, 0xF8, 0x4C, 0x6C, 0xEC, 0x08, 0x5C, 0xE0, 0x6A, 0x27, 0x60, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, 0x40, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, 0x44, 0x9A, 0x01, 0x6D, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x1A, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF7, 0x44, 0x9A, 0x40, 0xA2, 0x6C, 0xEA, +0xA3, 0xF7, 0x48, 0x9A, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x13, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF7, 0x54, 0x9A, 0x40, 0xA2, +0x20, 0x6A, 0x83, 0xF7, 0x58, 0x9A, 0x40, 0xA2, 0xA4, 0xEC, 0x85, 0x67, 0x6C, 0xEC, 0x4C, 0xEC, 0x5D, 0x67, 0x80, 0xC2, 0x40, 0xA2, 0x4C, 0xEB, 0x6B, 0xEA, 0xC0, 0xF7, 0x42, 0x32, 0x03, 0x10, 0xE4, 0x6A, 0x01, 0x10, 0xE6, 0x6A, 0x01, 0x63, 0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, 0x08, 0x5C, 0x6C, 0xED, 0x20, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF7, 0x58, 0x9A, 0x01, 0x6E, +0x20, 0x6A, 0x83, 0xF7, 0x5C, 0x9A, 0x01, 0x6E, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xCC, 0xEA, -0x48, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF7, -0x5C, 0x9A, 0xC4, 0xEC, 0x86, 0x67, 0x40, 0xA2, +0x48, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, +0x40, 0x9A, 0xC4, 0xEC, 0x86, 0x67, 0x40, 0xA2, 0x6C, 0xEA, 0xCC, 0xEA, 0xCE, 0xEA, 0x3B, 0x2A, 0x05, 0x25, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, -0xA8, 0x9A, 0x24, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF7, 0x48, 0x9A, 0x29, 0x10, 0xF8, 0x4C, +0xAC, 0x9A, 0x24, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF7, 0x4C, 0x9A, 0x29, 0x10, 0xF8, 0x4C, 0x6C, 0xEC, 0x08, 0x5C, 0xE0, 0x6A, 0x2E, 0x60, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, 0x40, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, 0x44, 0x9A, 0x01, 0x6E, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xCC, 0xEA, 0x23, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF7, 0x44, 0x9A, 0xC4, 0xEC, 0x86, 0x67, +0xA3, 0xF7, 0x48, 0x9A, 0xC4, 0xEC, 0x86, 0x67, 0x40, 0xA2, 0x6C, 0xEA, 0xCC, 0xEA, 0xCE, 0xEA, 0x16, 0x2A, 0x0A, 0x25, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF7, 0xAC, 0x9A, 0x40, 0xA5, 0x6C, 0xEA, +0xA3, 0xF7, 0xB0, 0x9A, 0x40, 0xA5, 0x6C, 0xEA, 0x8D, 0xEA, 0x6C, 0xEA, 0x40, 0xC5, 0x09, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, 0x4C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, 0x50, 0x9A, 0xA0, 0xA2, 0x8F, 0xEC, 0x6C, 0xEC, 0xAC, 0xEC, 0x80, 0xC2, 0xF0, 0x6A, 0x20, 0xE8, 0xE5, 0x6A, 0x20, 0xE8, 0xE4, 0x6A, 0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, 0x08, 0x5C, 0x0F, 0x60, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF7, 0x58, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF7, 0x5C, 0x9A, 0x01, 0x6D, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x1F, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF7, 0x5C, 0x9A, 0x13, 0x10, 0xF8, 0x4C, +0xA3, 0xF7, 0x40, 0x9A, 0x13, 0x10, 0xF8, 0x4C, 0x6C, 0xEC, 0x08, 0x5C, 0xE0, 0x6A, 0x16, 0x60, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, 0x40, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, 0x44, 0x9A, 0x01, 0x6D, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x0B, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF7, 0x44, 0x9A, 0x40, 0xA2, 0x4C, 0xEB, +0xA3, 0xF7, 0x48, 0x9A, 0x40, 0xA2, 0x4C, 0xEB, 0x67, 0xEC, 0x45, 0x67, 0x6E, 0xEA, 0xAC, 0xEA, 0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, 0x08, 0x5C, 0x1A, 0x60, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF7, 0x58, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF7, 0x5C, 0x9A, 0x01, 0x6E, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xCC, 0xEA, 0x35, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF7, 0x5C, 0x9A, 0xC4, 0xEC, 0x86, 0x67, +0xA3, 0xF7, 0x40, 0x9A, 0xC4, 0xEC, 0x86, 0x67, 0xA0, 0xA2, 0x6C, 0xED, 0xCC, 0xED, 0xCE, 0xED, 0x2A, 0x2D, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, -0x48, 0x9A, 0x1E, 0x10, 0xF8, 0x4C, 0x6C, 0xEC, +0x4C, 0x9A, 0x1E, 0x10, 0xF8, 0x4C, 0x6C, 0xEC, 0x08, 0x5C, 0xE0, 0x6A, 0x21, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF7, 0x40, 0x9A, 0x01, 0x6E, +0x20, 0x6A, 0xA3, 0xF7, 0x44, 0x9A, 0x01, 0x6E, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xCC, 0xEA, 0x16, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, -0x44, 0x9A, 0xC4, 0xEC, 0x86, 0x67, 0xA0, 0xA2, +0x48, 0x9A, 0xC4, 0xEC, 0x86, 0x67, 0xA0, 0xA2, 0x6C, 0xED, 0xCC, 0xED, 0xCE, 0xED, 0x0B, 0x2D, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, 0x4C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, 0x50, 0x9A, 0x40, 0xA2, 0x4C, 0xEB, 0x8C, 0xEB, 0x6E, 0xEC, 0x01, 0x5C, 0x58, 0x67, 0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, @@ -30240,89 +30212,89 @@ u8 array_mp_8822c_fw_nic[] = { 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x04, 0x67, 0x2C, 0xE8, 0x90, 0x67, -0xA0, 0x6D, 0xA2, 0x6E, 0x80, 0x18, 0x7C, 0x22, -0x90, 0x67, 0x80, 0x18, 0xDF, 0x22, 0x7D, 0x67, +0xA0, 0x6D, 0xA2, 0x6E, 0x80, 0x18, 0x54, 0x25, +0x90, 0x67, 0x80, 0x18, 0xB7, 0x25, 0x7D, 0x67, 0x50, 0xC3, 0x50, 0xA3, 0x09, 0x97, 0x07, 0x90, 0x2C, 0xEA, 0x08, 0x91, 0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0x24, 0x67, 0x0C, 0xE9, 0x91, 0x67, 0xAC, 0xE8, 0xA1, 0x6E, 0xA0, 0x6D, 0x80, 0x18, -0x7C, 0x22, 0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, -0x05, 0x23, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x54, 0x25, 0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, +0xDD, 0x25, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF7, 0x68, 0x9A, -0x30, 0xF0, 0x20, 0x6D, 0x83, 0xF7, 0xAC, 0x9D, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF7, 0x6C, 0x9A, +0x30, 0xF0, 0x20, 0x6D, 0x83, 0xF7, 0xB0, 0x9D, 0x40, 0x9B, 0xA2, 0x6E, 0xAC, 0xEA, 0x40, 0xDB, 0xFF, 0x6A, 0x4C, 0xEC, 0xA0, 0x6D, 0x80, 0x18, -0x7C, 0x22, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x54, 0x25, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, -0xB0, 0x6D, 0xB2, 0x6E, 0x80, 0x18, 0x7C, 0x22, +0xB0, 0x6D, 0xB2, 0x6E, 0x80, 0x18, 0x54, 0x25, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, -0xB0, 0x6D, 0xB1, 0x6E, 0x80, 0x18, 0x7C, 0x22, +0xB0, 0x6D, 0xB1, 0x6E, 0x80, 0x18, 0x54, 0x25, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, 0x04, 0x67, 0x4C, 0xE8, 0xAC, 0xEA, 0xA4, 0x72, -0x0C, 0x61, 0x90, 0x67, 0x80, 0x18, 0x32, 0x23, +0x0C, 0x61, 0x90, 0x67, 0x80, 0x18, 0x0A, 0x26, 0x01, 0x72, 0x04, 0x61, 0x90, 0x67, 0x80, 0x18, -0x8F, 0x23, 0x1F, 0x10, 0x90, 0x67, 0x00, 0x6D, +0x67, 0x26, 0x1F, 0x10, 0x90, 0x67, 0x00, 0x6D, 0x0D, 0x10, 0xA5, 0x72, 0x11, 0x61, 0x90, 0x67, -0x80, 0x18, 0x32, 0x23, 0x01, 0x72, 0x04, 0x61, -0x90, 0x67, 0x80, 0x18, 0x8F, 0x23, 0x18, 0x10, -0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x84, 0x23, -0x90, 0x67, 0x80, 0x18, 0x8F, 0x23, 0x14, 0x10, -0x90, 0x67, 0x80, 0x18, 0x4A, 0x23, 0x01, 0x72, +0x80, 0x18, 0x0A, 0x26, 0x01, 0x72, 0x04, 0x61, +0x90, 0x67, 0x80, 0x18, 0x67, 0x26, 0x18, 0x10, +0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x5C, 0x26, +0x90, 0x67, 0x80, 0x18, 0x67, 0x26, 0x14, 0x10, +0x90, 0x67, 0x80, 0x18, 0x22, 0x26, 0x01, 0x72, 0x07, 0x61, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, -0x84, 0x23, 0x90, 0x67, 0x00, 0x6D, 0x06, 0x10, -0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x84, 0x23, -0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x84, 0x23, +0x5C, 0x26, 0x90, 0x67, 0x00, 0x6D, 0x06, 0x10, +0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x5C, 0x26, +0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x5C, 0x26, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xEE, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x87, 0xF3, -0x6D, 0xA2, 0xFF, 0xF7, 0x1F, 0x69, 0x04, 0xD4, +0x69, 0xA2, 0xFF, 0xF7, 0x1F, 0x69, 0x04, 0xD4, 0xAC, 0xE9, 0x05, 0xD6, 0x0B, 0x23, 0x87, 0xF3, -0x6E, 0xA2, 0x04, 0x23, 0x87, 0xF3, 0x8B, 0xA2, -0xA5, 0x6D, 0x07, 0x10, 0x87, 0xF3, 0x8B, 0xA2, -0xA4, 0x6D, 0x03, 0x10, 0x87, 0xF3, 0x8B, 0xA2, +0x6A, 0xA2, 0x04, 0x23, 0x87, 0xF3, 0x87, 0xA2, +0xA5, 0x6D, 0x07, 0x10, 0x87, 0xF3, 0x87, 0xA2, +0xA4, 0x6D, 0x03, 0x10, 0x87, 0xF3, 0x87, 0xA2, 0xA3, 0x6D, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, -0x18, 0x48, 0x80, 0x18, 0xA6, 0x23, 0x87, 0xF3, -0x4F, 0xA0, 0x7D, 0x22, 0x04, 0x94, 0xB1, 0x67, -0x80, 0x18, 0x6D, 0x23, 0x87, 0xF3, 0x4D, 0xA0, -0x0B, 0x22, 0x87, 0xF3, 0x4E, 0xA0, 0x04, 0x22, -0x87, 0xF3, 0x8B, 0xA0, 0xA5, 0x6D, 0x07, 0x10, -0x87, 0xF3, 0x8B, 0xA0, 0xA4, 0x6D, 0x03, 0x10, -0x87, 0xF3, 0x8B, 0xA0, 0xA3, 0x6D, 0x80, 0x18, -0xA6, 0x23, 0x30, 0xF0, 0x21, 0x6A, 0xD2, 0xF4, -0x48, 0xA2, 0x01, 0x68, 0x5D, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF7, 0x50, 0x9A, 0x60, 0xA2, +0x18, 0x48, 0x80, 0x18, 0x7E, 0x26, 0x87, 0xF3, +0x4B, 0xA0, 0x7D, 0x22, 0x04, 0x94, 0xB1, 0x67, +0x80, 0x18, 0x45, 0x26, 0x87, 0xF3, 0x49, 0xA0, +0x0B, 0x22, 0x87, 0xF3, 0x4A, 0xA0, 0x04, 0x22, +0x87, 0xF3, 0x87, 0xA0, 0xA5, 0x6D, 0x07, 0x10, +0x87, 0xF3, 0x87, 0xA0, 0xA4, 0x6D, 0x03, 0x10, +0x87, 0xF3, 0x87, 0xA0, 0xA3, 0x6D, 0x80, 0x18, +0x7E, 0x26, 0x30, 0xF0, 0x21, 0x6A, 0xD2, 0xF4, +0x44, 0xA2, 0x01, 0x68, 0x5D, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF7, 0x54, 0x9A, 0x60, 0xA2, 0x10, 0x6A, 0x6C, 0xEA, 0x58, 0x2A, 0x04, 0x94, -0xB1, 0x67, 0x80, 0x18, 0x6D, 0x23, 0x30, 0xF0, +0xB1, 0x67, 0x80, 0x18, 0x45, 0x26, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x87, 0xF3, -0x6D, 0xA2, 0x0B, 0x23, 0x87, 0xF3, 0x6E, 0xA2, -0x04, 0x23, 0x87, 0xF3, 0x8B, 0xA2, 0xA5, 0x6D, -0x07, 0x10, 0x87, 0xF3, 0x8B, 0xA2, 0xA4, 0x6D, -0x03, 0x10, 0x87, 0xF3, 0x8B, 0xA2, 0xA3, 0x6D, -0x80, 0x18, 0xA6, 0x23, 0xDC, 0x17, 0x04, 0x94, -0xB1, 0x67, 0x80, 0x18, 0x6D, 0x23, 0x30, 0xF0, +0x69, 0xA2, 0x0B, 0x23, 0x87, 0xF3, 0x6A, 0xA2, +0x04, 0x23, 0x87, 0xF3, 0x87, 0xA2, 0xA5, 0x6D, +0x07, 0x10, 0x87, 0xF3, 0x87, 0xA2, 0xA4, 0x6D, +0x03, 0x10, 0x87, 0xF3, 0x87, 0xA2, 0xA3, 0x6D, +0x80, 0x18, 0x7E, 0x26, 0xDC, 0x17, 0x04, 0x94, +0xB1, 0x67, 0x80, 0x18, 0x45, 0x26, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x87, 0xF3, -0x6D, 0xA2, 0x0B, 0x23, 0x87, 0xF3, 0x6E, 0xA2, -0x04, 0x23, 0x87, 0xF3, 0x8B, 0xA2, 0xA5, 0x6D, -0x07, 0x10, 0x87, 0xF3, 0x8B, 0xA2, 0xA4, 0x6D, -0x03, 0x10, 0x87, 0xF3, 0x8B, 0xA2, 0xA3, 0x6D, -0x80, 0x18, 0xA6, 0x23, 0x04, 0x94, 0xB1, 0x67, -0x80, 0x18, 0x6D, 0x23, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x87, 0xF3, 0x6D, 0xA2, -0x0B, 0x23, 0x87, 0xF3, 0x6E, 0xA2, 0x04, 0x23, -0x87, 0xF3, 0x8B, 0xA2, 0xA5, 0x6D, 0x07, 0x10, -0x87, 0xF3, 0x8B, 0xA2, 0xA4, 0x6D, 0x03, 0x10, -0x87, 0xF3, 0x8B, 0xA2, 0xA3, 0x6D, 0x80, 0x18, -0xA6, 0x23, 0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, +0x69, 0xA2, 0x0B, 0x23, 0x87, 0xF3, 0x6A, 0xA2, +0x04, 0x23, 0x87, 0xF3, 0x87, 0xA2, 0xA5, 0x6D, +0x07, 0x10, 0x87, 0xF3, 0x87, 0xA2, 0xA4, 0x6D, +0x03, 0x10, 0x87, 0xF3, 0x87, 0xA2, 0xA3, 0x6D, +0x80, 0x18, 0x7E, 0x26, 0x04, 0x94, 0xB1, 0x67, +0x80, 0x18, 0x45, 0x26, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0x87, 0xF3, 0x69, 0xA2, +0x0B, 0x23, 0x87, 0xF3, 0x6A, 0xA2, 0x04, 0x23, +0x87, 0xF3, 0x87, 0xA2, 0xA5, 0x6D, 0x07, 0x10, +0x87, 0xF3, 0x87, 0xA2, 0xA4, 0x6D, 0x03, 0x10, +0x87, 0xF3, 0x87, 0xA2, 0xA3, 0x6D, 0x80, 0x18, +0x7E, 0x26, 0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, 0x05, 0x92, 0x43, 0xE8, 0xC4, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, 0x30, 0xF0, 0x21, 0x6C, -0xD2, 0xF4, 0x03, 0x4C, 0x00, 0x6D, 0x06, 0x6E, +0xB2, 0xF4, 0x1F, 0x4C, 0x00, 0x6D, 0x06, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, @@ -30340,10 +30312,10 @@ u8 array_mp_8822c_fw_nic[] = { 0x46, 0xA5, 0x7F, 0x6C, 0x01, 0x6D, 0x4C, 0xEC, 0x6C, 0xEC, 0x13, 0x10, 0xE0, 0xF0, 0x46, 0xA5, 0x7F, 0x6C, 0x4C, 0xEC, 0x6C, 0xEC, 0x80, 0x18, -0x8F, 0x23, 0x0D, 0x10, 0xE0, 0xF0, 0xC6, 0xA5, +0x67, 0x26, 0x0D, 0x10, 0xE0, 0xF0, 0xC6, 0xA5, 0xE0, 0xF0, 0xA5, 0xA5, 0x7F, 0x6C, 0xCC, 0xEC, 0xA6, 0x35, 0x01, 0x6E, 0xCE, 0xED, 0x6C, 0xEC, -0x4C, 0xED, 0x80, 0x18, 0x84, 0x23, 0x05, 0x97, +0x4C, 0xED, 0x80, 0x18, 0x5C, 0x26, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xF7, 0x63, 0x11, 0x62, 0x10, 0xD1, 0x0F, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0xE0, 0xF0, 0xD3, 0xA3, @@ -30351,23 +30323,23 @@ u8 array_mp_8822c_fw_nic[] = { 0x4C, 0xEC, 0x20, 0xF1, 0x06, 0x25, 0xE0, 0xF0, 0xF4, 0xA3, 0x1F, 0x6D, 0xEC, 0xED, 0x8E, 0xED, 0x00, 0xF1, 0x1F, 0x2D, 0x01, 0x6C, 0xCC, 0xEC, -0x4C, 0xEC, 0x07, 0x24, 0x87, 0xF3, 0x94, 0x9B, -0xA7, 0xF3, 0x4C, 0x9B, 0x8E, 0xEA, 0x00, 0xF1, +0x4C, 0xEC, 0x07, 0x24, 0x87, 0xF3, 0x90, 0x9B, +0xA7, 0xF3, 0x48, 0x9B, 0x8E, 0xEA, 0x00, 0xF1, 0x14, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE0, 0xF0, 0x93, 0xA2, 0x10, 0x6B, -0x8C, 0xEB, 0x07, 0x23, 0x87, 0xF3, 0x7C, 0x9A, -0xA7, 0xF3, 0x54, 0x9A, 0x6E, 0xEA, 0x00, 0xF1, +0x8C, 0xEB, 0x07, 0x23, 0x87, 0xF3, 0x78, 0x9A, +0xA7, 0xF3, 0x50, 0x9A, 0x6E, 0xEA, 0x00, 0xF1, 0x04, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, -0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x07, 0x05, +0x50, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x07, 0x05, 0x40, 0x9A, 0x04, 0x6E, 0x30, 0xF0, 0x20, 0x69, 0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, -0x48, 0x9A, 0x2B, 0xF1, 0x18, 0x49, 0x40, 0x9A, +0x4C, 0x9A, 0x2B, 0xF1, 0x18, 0x49, 0x40, 0x9A, 0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, -0x74, 0x9A, 0x8F, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x78, 0x9A, 0x8F, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, -0x48, 0x9A, 0x7D, 0x67, 0x08, 0x6C, 0x40, 0x9A, +0x54, 0x9A, 0x7D, 0x67, 0x08, 0x6C, 0x40, 0x9A, 0x8B, 0xEC, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF7, 0x44, 0x9A, 0x40, 0x9A, 0x04, 0xD2, +0x43, 0xF7, 0x50, 0x9A, 0x40, 0x9A, 0x04, 0xD2, 0x2F, 0x6A, 0x20, 0xF0, 0x40, 0xC3, 0x0A, 0x6A, 0x57, 0xCB, 0x20, 0xF0, 0x42, 0xA3, 0x8C, 0xEA, 0x20, 0xF0, 0x42, 0xC3, 0x80, 0xF2, 0x4C, 0x98, @@ -30387,10 +30359,10 @@ u8 array_mp_8822c_fw_nic[] = { 0xAB, 0xED, 0x02, 0x6B, 0xAC, 0xEA, 0x6D, 0xEA, 0x20, 0xF0, 0x42, 0xC4, 0xE0, 0xF0, 0x53, 0xA1, 0x04, 0x6E, 0x56, 0x32, 0x20, 0xF0, 0x43, 0xC4, -0x30, 0xF0, 0x21, 0x6A, 0xD2, 0xF4, 0x14, 0x4A, +0x30, 0xF0, 0x21, 0x6A, 0xD2, 0xF4, 0x10, 0x4A, 0x0C, 0xD2, 0x0C, 0x95, 0x80, 0xF2, 0x4C, 0x98, 0x09, 0x04, 0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x98, -0x30, 0xF0, 0x21, 0x6D, 0xD2, 0xF4, 0x18, 0x4D, +0x30, 0xF0, 0x21, 0x6D, 0xD2, 0xF4, 0x14, 0x4D, 0x04, 0x6E, 0x0A, 0x04, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF4, 0x5C, 0x9B, 0x08, 0x04, 0x40, 0xEA, 0x9D, 0x67, 0x20, 0xF0, 0x62, 0xA4, @@ -30398,30 +30370,30 @@ u8 array_mp_8822c_fw_nic[] = { 0x6D, 0xEA, 0x20, 0xF0, 0x42, 0xC4, 0xE0, 0xF0, 0x53, 0xA1, 0x30, 0xF0, 0x21, 0x6D, 0xC3, 0x67, 0x56, 0x32, 0x20, 0xF0, 0x43, 0xC4, 0x80, 0xF2, -0x4C, 0x98, 0x09, 0x04, 0xD2, 0xF4, 0x1C, 0x4D, +0x4C, 0x98, 0x09, 0x04, 0xD2, 0xF4, 0x18, 0x4D, 0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, -0x21, 0x6D, 0x04, 0x6E, 0x0A, 0x04, 0xF2, 0xF4, -0x00, 0x4D, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6D, +0x21, 0x6D, 0x04, 0x6E, 0x0A, 0x04, 0xD2, 0xF4, +0x1C, 0x4D, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6D, 0x00, 0xF4, 0x5C, 0x9D, 0x08, 0x04, 0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x98, 0x0C, 0x95, 0x30, 0xF0, -0x21, 0x6C, 0xF2, 0xF4, 0x0C, 0x4C, 0x10, 0x6E, +0x21, 0x6C, 0xF2, 0xF4, 0x08, 0x4C, 0x10, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE0, 0xF0, 0x93, 0xA2, 0x01, 0x6B, -0x8C, 0xEB, 0x3B, 0x23, 0x87, 0xF3, 0x94, 0x9A, -0xA7, 0xF3, 0x6C, 0x9A, 0x8E, 0xEB, 0x35, 0x23, +0x8C, 0xEB, 0x3B, 0x23, 0x87, 0xF3, 0x90, 0x9A, +0xA7, 0xF3, 0x68, 0x9A, 0x8E, 0xEB, 0x35, 0x23, 0xBD, 0x67, 0x20, 0xF0, 0x82, 0xA5, 0x08, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x03, 0x6C, 0x8D, 0xEB, 0x20, 0xF0, 0x62, 0xC5, 0xE0, 0xF0, 0x53, 0xA2, 0x07, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x46, 0x32, 0x6C, 0xEA, 0x20, 0xF0, 0x43, 0xC5, 0x30, 0xF0, 0x21, 0x69, 0x80, 0xF2, 0x4C, 0x98, 0xD2, 0xF4, -0x0C, 0x49, 0x09, 0x04, 0xB1, 0x67, 0x04, 0x6E, +0x08, 0x49, 0x09, 0x04, 0xB1, 0x67, 0x04, 0x6E, 0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, -0x21, 0x6D, 0xD2, 0xF4, 0x10, 0x4D, 0x04, 0x6E, +0x21, 0x6D, 0xD2, 0xF4, 0x0C, 0x4D, 0x04, 0x6E, 0x0A, 0x04, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x08, 0x04, 0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, 0x21, 0x6C, -0xF2, 0xF4, 0x04, 0x4C, 0xB1, 0x67, 0x08, 0x6E, +0xF2, 0xF4, 0x00, 0x4C, 0xB1, 0x67, 0x08, 0x6E, 0x40, 0xEA, 0x11, 0x97, 0x10, 0x91, 0x0F, 0x90, 0x09, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, @@ -30431,7 +30403,7 @@ u8 array_mp_8822c_fw_nic[] = { 0x40, 0xEA, 0xE0, 0xF0, 0x4C, 0xA0, 0x01, 0x6B, 0xFF, 0x69, 0x6C, 0xEA, 0x4B, 0x22, 0xE0, 0xF0, 0x8C, 0xA0, 0x96, 0x34, 0x2C, 0xEC, 0x00, 0x18, -0x93, 0xE8, 0xE0, 0xF0, 0x6C, 0xA0, 0x02, 0x6A, +0xE9, 0xE7, 0xE0, 0xF0, 0x6C, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x1B, 0x22, 0x04, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x0B, 0x22, 0x08, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x22, 0x2A, 0xE0, 0xF0, @@ -30444,11 +30416,11 @@ u8 array_mp_8822c_fw_nic[] = { 0x2C, 0xEA, 0x07, 0x22, 0xE0, 0xF0, 0x4D, 0xA0, 0x7F, 0x6C, 0x01, 0x6D, 0x4C, 0xEC, 0x2C, 0xEC, 0x13, 0x10, 0xE0, 0xF0, 0x4D, 0xA0, 0x7F, 0x6C, -0x4C, 0xEC, 0x2C, 0xEC, 0x80, 0x18, 0x8F, 0x23, +0x4C, 0xEC, 0x2C, 0xEC, 0x80, 0x18, 0x67, 0x26, 0x0D, 0x10, 0xE0, 0xF0, 0xAC, 0xA0, 0xE0, 0xF0, 0x4D, 0xA0, 0x01, 0x6B, 0x7F, 0x6C, 0xA6, 0x35, 0x4C, 0xEC, 0x6E, 0xED, 0x2C, 0xEC, 0x6C, 0xED, -0x80, 0x18, 0x84, 0x23, 0x07, 0x97, 0x06, 0x91, +0x80, 0x18, 0x5C, 0x26, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, @@ -30456,13 +30428,13 @@ u8 array_mp_8822c_fw_nic[] = { 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE0, 0xF0, 0x93, 0xA2, 0x10, 0x6B, 0x8C, 0xEB, 0x05, 0x23, 0x96, 0x34, 0xFF, 0x6A, -0x4C, 0xEC, 0x00, 0x18, 0x93, 0xE8, 0x30, 0xF0, +0x4C, 0xEC, 0x00, 0x18, 0xE9, 0xE7, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF2, 0x4C, 0xA2, 0x1F, 0x6C, 0x4C, 0xEC, 0x0C, 0x4C, 0x01, 0x6A, 0x44, 0xEC, -0x82, 0x67, 0x80, 0x18, 0xDA, 0x77, 0x05, 0x97, +0x82, 0x67, 0x80, 0x18, 0x32, 0x76, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF1, 0x64, 0x9B, 0xFF, 0xF7, 0x1F, 0x6A, +0x43, 0xF1, 0x68, 0x9B, 0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0x69, 0xE2, 0x00, 0x9A, 0x41, 0x45, 0x25, 0x67, 0x08, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, 0x85, 0x67, 0x2C, 0xE8, @@ -30471,39 +30443,39 @@ u8 array_mp_8822c_fw_nic[] = { 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0xFF, 0xF7, 0x1F, 0x68, 0x41, 0x45, 0x25, 0x67, 0x0C, 0xD6, 0x8C, 0xE8, 0x07, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF1, 0x44, 0x9A, 0x41, 0xE0, +0x20, 0x6A, 0x43, 0xF1, 0x48, 0x9A, 0x41, 0xE0, 0xC0, 0xD8, 0x1A, 0x10, 0x01, 0x6D, 0x90, 0x67, -0xAB, 0xED, 0x80, 0x18, 0x35, 0x25, 0x04, 0xD2, +0xAB, 0xED, 0x80, 0x18, 0x0D, 0x28, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, 0x91, 0x67, 0x40, 0xEA, 0x0C, 0x93, 0x64, 0xEA, 0x43, 0x67, 0x04, 0x93, 0x2C, 0xEA, 0x2F, 0xE9, 0x6C, 0xE9, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, -0x64, 0x9B, 0x2D, 0xEA, 0x61, 0xE0, 0x40, 0xD8, +0x68, 0x9B, 0x2D, 0xEA, 0x61, 0xE0, 0x40, 0xD8, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x01, 0x74, 0x0D, 0x60, 0x06, 0x24, 0x02, 0x74, 0x10, 0x60, 0x03, 0x74, 0x00, 0x6A, 0x1C, 0x61, 0x14, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xA8, 0x35, 0x04, 0xF0, 0x54, 0x9A, +0x20, 0x6A, 0xA8, 0x35, 0x04, 0xF0, 0x58, 0x9A, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA8, 0x35, -0x04, 0xF0, 0x58, 0x9A, 0x05, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x04, 0xF0, 0x5C, 0x9A, 0xA8, 0x35, -0x55, 0xE5, 0x40, 0x9D, 0x20, 0xE8, 0x30, 0xF0, +0x04, 0xF0, 0x5C, 0x9A, 0x05, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, 0x40, 0x9A, 0xA8, 0x35, +0x55, 0xE5, 0x40, 0x9D, 0x20, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x24, 0xF0, 0x44, 0x9A, 0xA8, 0x35, 0x55, 0xE5, 0x40, 0x9D, 0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x6E, 0xF3, 0x18, 0x4A, 0x88, 0x34, 0x91, 0xE2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF5, 0xA0, 0x35, 0xCC, 0xEB, 0x30, 0xF0, 0x20, 0x6E, 0xC3, 0xF5, -0xC4, 0x9E, 0xC0, 0xF3, 0x44, 0x9A, 0x80, 0xAC, +0xD4, 0x9E, 0xC0, 0xF3, 0x44, 0x9A, 0x80, 0xAC, 0xAD, 0xEB, 0x01, 0x6D, 0xAB, 0xED, 0x6C, 0xEE, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6B, 0x8C, 0xEB, 0xFF, 0xF7, 0x1F, 0x6A, 0x81, 0x46, 0x06, 0x67, 0xAC, 0xEA, 0x06, 0x2C, -0x83, 0x67, 0xA2, 0x67, 0x80, 0x18, 0x5D, 0x25, +0x83, 0x67, 0xA2, 0x67, 0x80, 0x18, 0x35, 0x28, 0x02, 0x67, 0x0D, 0x10, 0x83, 0x67, 0xA2, 0x67, -0x80, 0x18, 0x5D, 0x25, 0x22, 0x67, 0x30, 0xF0, +0x80, 0x18, 0x35, 0x28, 0x22, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, 0x90, 0x67, 0x2C, 0xE8, 0x40, 0xEA, 0x06, 0xEA, 0x50, 0x67, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, @@ -30512,12 +30484,12 @@ u8 array_mp_8822c_fw_nic[] = { 0xFF, 0xF7, 0x1F, 0x69, 0x01, 0x4A, 0x0C, 0xD6, 0x0D, 0xD7, 0x8C, 0xE8, 0xAC, 0xE9, 0x04, 0x2A, 0x90, 0x67, 0xB1, 0x67, 0xC7, 0x67, 0x15, 0x10, -0xB1, 0x67, 0x90, 0x67, 0x80, 0x18, 0x5D, 0x25, +0xB1, 0x67, 0x90, 0x67, 0x80, 0x18, 0x35, 0x28, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x0C, 0x94, 0xA0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x0D, 0x96, 0x90, 0x67, 0xB1, 0x67, 0xC4, 0xEA, 0x0C, 0x92, 0x4C, 0xEE, 0x4F, 0xEB, 0x04, 0x92, 0x4C, 0xEB, -0x6D, 0xEE, 0x80, 0x18, 0x70, 0x25, 0x30, 0xF0, +0x6D, 0xEE, 0x80, 0x18, 0x48, 0x28, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, @@ -30525,8 +30497,8 @@ u8 array_mp_8822c_fw_nic[] = { 0x8C, 0xEA, 0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x25, 0x67, 0x01, 0x60, 0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, -0x60, 0x9B, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF1, 0x64, 0x9B, 0x69, 0xE2, 0x00, 0x9A, +0x64, 0x9B, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF1, 0x68, 0x9B, 0x69, 0xE2, 0x00, 0x9A, 0x41, 0x41, 0x08, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, 0x91, 0x67, 0x2C, 0xE8, 0x40, 0xEA, 0x06, 0xEA, 0x50, 0x67, 0x07, 0x97, @@ -30536,22 +30508,22 @@ u8 array_mp_8822c_fw_nic[] = { 0x0C, 0xD6, 0x8C, 0xE8, 0x16, 0x2A, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF1, 0x40, 0x9A, 0x41, 0xE0, 0x0C, 0x92, +0x43, 0xF1, 0x44, 0x9A, 0x41, 0xE0, 0x0C, 0x92, 0x3A, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, -0x44, 0x9A, 0x0C, 0x93, 0x41, 0xE0, 0x60, 0xD8, +0x48, 0x9A, 0x0C, 0x93, 0x41, 0xE0, 0x60, 0xD8, 0x33, 0x10, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x40, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x44, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, -0x44, 0x9A, 0x49, 0xE0, 0x40, 0x9A, 0x91, 0x67, +0x48, 0x9A, 0x49, 0xE0, 0x40, 0x9A, 0x91, 0x67, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x0C, 0x93, 0x64, 0xEA, 0x43, 0x67, 0x04, 0x93, 0x2C, 0xEA, 0x2F, 0xE9, 0x6C, 0xE9, 0x1F, 0xF7, 0x00, 0x6B, 0x0C, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x2D, 0xEA, 0x01, 0x60, 0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, -0x60, 0x9B, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF1, 0x64, 0x9B, 0x61, 0xE0, 0x40, 0xD8, +0x64, 0x9B, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF1, 0x68, 0x9B, 0x61, 0xE0, 0x40, 0xD8, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x03, 0xF0, 0x08, 0x6B, @@ -30581,7 +30553,7 @@ u8 array_mp_8822c_fw_nic[] = { 0x40, 0xA8, 0x01, 0x4A, 0x40, 0xC8, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x95, 0x05, 0x96, 0x63, 0xF3, 0xE4, 0x9A, 0x30, 0xF0, 0x21, 0x6C, 0x12, 0xF5, -0x08, 0x4C, 0x80, 0x18, 0x1A, 0x5A, 0x0C, 0x93, +0x08, 0x4C, 0x80, 0x18, 0x9F, 0x58, 0x0C, 0x93, 0x6C, 0xEA, 0x0D, 0x93, 0x6E, 0xEA, 0x03, 0x22, 0x40, 0xA8, 0x23, 0xEA, 0xE3, 0x61, 0x40, 0xA8, 0x09, 0x97, 0x07, 0x90, 0x23, 0xEA, 0x08, 0x91, @@ -30596,14 +30568,14 @@ u8 array_mp_8822c_fw_nic[] = { 0x55, 0xC3, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0xA3, 0xF3, 0xD4, 0xA3, 0x3F, 0x6D, 0x30, 0xF0, 0x20, 0x6A, 0xBB, 0xEE, -0x01, 0x2D, 0xE5, 0xE8, 0x44, 0xF0, 0x4C, 0x9A, +0x01, 0x2D, 0xE5, 0xE8, 0x44, 0xF0, 0x50, 0x9A, 0x49, 0xE4, 0x10, 0xED, 0xA8, 0x35, 0xA0, 0xC2, 0xA3, 0xF3, 0x54, 0xA3, 0x01, 0x4A, 0xA3, 0xF3, 0x54, 0xC3, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF2, 0x5C, 0x9A, 0xFF, 0x69, 0x00, 0x68, +0x83, 0xF2, 0x40, 0x9A, 0xFF, 0x69, 0x00, 0x68, 0x40, 0xA2, 0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, -0x44, 0xF0, 0x70, 0x9A, 0xEE, 0xF1, 0x1F, 0x6A, +0x44, 0xF0, 0x74, 0x9A, 0xEE, 0xF1, 0x1F, 0x6A, 0x80, 0xAB, 0x8C, 0xEA, 0x10, 0xF0, 0x00, 0x6C, 0x8B, 0xEC, 0x8D, 0xEA, 0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEA, 0x40, 0xCB, 0x18, 0x10, 0x30, 0xF0, @@ -30613,17 +30585,17 @@ u8 array_mp_8822c_fw_nic[] = { 0x65, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, 0x01, 0x48, 0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF2, 0x50, 0x9A, 0x60, 0xAA, +0x20, 0x6A, 0xA3, 0xF2, 0x54, 0x9A, 0x60, 0xAA, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0xC0, 0xF7, 0x10, 0x70, 0xDC, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF4, 0x88, 0xA3, 0xA0, 0xF2, 0x54, 0x9A, 0x01, 0x6D, 0x05, 0x6E, 0x08, 0x6F, 0x40, 0xEA, 0x02, 0x67, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x40, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x44, 0x9A, 0x49, 0xE0, 0x60, 0xA2, 0xFF, 0x6A, 0x6C, 0xEA, 0x54, 0x72, 0x03, 0x61, 0x90, 0x67, 0x80, 0x18, -0x3F, 0x26, 0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF0, -0x54, 0x9A, 0x6F, 0x6D, 0x2C, 0xED, 0x41, 0xE0, +0x17, 0x29, 0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF0, +0x58, 0x9A, 0x6F, 0x6D, 0x2C, 0xED, 0x41, 0xE0, 0x60, 0xA0, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0xFF, 0x6A, 0xA3, 0xF3, 0x95, 0xA0, 0x4C, 0xEB, 0x76, 0x33, 0x03, 0x6A, 0x4C, 0xEB, @@ -30632,7 +30604,7 @@ u8 array_mp_8822c_fw_nic[] = { 0x50, 0x9A, 0x90, 0x6C, 0x19, 0x6E, 0x40, 0xEA, 0xA3, 0xF3, 0x75, 0xA0, 0x08, 0x6A, 0xFF, 0x6C, 0x6C, 0xEA, 0x8C, 0xEA, 0x0F, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF6, 0x4C, 0x9A, 0x20, 0x6C, +0x20, 0x6A, 0xC3, 0xF6, 0x5C, 0x9A, 0x20, 0x6C, 0x80, 0xC2, 0xA3, 0xF3, 0x56, 0xA8, 0x01, 0x4A, 0xA3, 0xF3, 0x56, 0xC8, 0x04, 0x6A, 0x6D, 0xEA, 0xA3, 0xF3, 0x55, 0xC0, 0x07, 0x97, 0x06, 0x91, @@ -30640,19 +30612,19 @@ u8 array_mp_8822c_fw_nic[] = { 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0xA3, 0xF3, 0x75, 0xA0, 0x08, 0x6A, 0x6C, 0xEA, 0x1A, 0x22, -0x80, 0x18, 0x4B, 0x26, 0xA3, 0xF3, 0xD2, 0xA8, +0x80, 0x18, 0x23, 0x29, 0xA3, 0xF3, 0xD2, 0xA8, 0x09, 0x26, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, 0xFF, 0x6C, 0x5D, 0x4C, 0x00, 0x6D, 0x40, 0xEA, 0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x44, 0xF0, 0x58, 0x9A, 0xC0, 0xC2, 0xA3, 0xF3, +0x44, 0xF0, 0x5C, 0x9A, 0xC0, 0xC2, 0xA3, 0xF3, 0x75, 0xA0, 0x09, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xA3, 0xF3, 0x55, 0xC0, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, 0x00, 0x18, -0x25, 0xD7, 0x01, 0xE2, 0xFF, 0xF7, 0x1F, 0x6A, +0x7B, 0xD6, 0x01, 0xE2, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0x1C, 0x30, 0x00, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6D, 0x03, 0xF2, -0x9C, 0x9A, 0x43, 0xF2, 0xA0, 0x9D, 0x68, 0x32, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6D, 0x23, 0xF2, +0x80, 0x9A, 0x43, 0xF2, 0xA4, 0x9D, 0x68, 0x32, 0x91, 0xE0, 0xB5, 0xE0, 0x51, 0xE4, 0x49, 0xE5, 0x40, 0x9A, 0x01, 0x4B, 0x14, 0x73, 0x40, 0xDC, 0xEE, 0x61, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, @@ -30666,7 +30638,7 @@ u8 array_mp_8822c_fw_nic[] = { 0x55, 0xC0, 0x52, 0xA4, 0x71, 0xA4, 0xA3, 0xF3, 0x50, 0xC0, 0x05, 0x6A, 0x58, 0xEB, 0xA3, 0xF3, 0x90, 0xA0, 0x12, 0xEA, 0xA3, 0xF3, 0x52, 0xC8, -0x80, 0x18, 0xAB, 0x26, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0x18, 0x83, 0x29, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, 0xA3, 0xF3, 0xD2, 0xA8, 0xFF, 0x6C, 0x5D, 0x4C, 0x00, 0x6D, 0x40, 0xEA, 0x17, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, @@ -30674,13 +30646,13 @@ u8 array_mp_8822c_fw_nic[] = { 0x8B, 0xEC, 0xAC, 0xEC, 0xA3, 0xF3, 0x95, 0xC2, 0x01, 0x6C, 0x8B, 0xEC, 0xA3, 0xF3, 0x72, 0xCA, 0xA3, 0xF3, 0x90, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x44, 0xF0, 0x58, 0x9A, 0x00, 0x6B, 0x60, 0xC2, +0x44, 0xF0, 0x5C, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x07, 0x97, 0x06, 0x90, 0x00, 0x6A, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF0, -0x7C, 0x9A, 0x7F, 0x6A, 0x01, 0x68, 0x80, 0xA3, +0x08, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF0, +0x60, 0x9A, 0x7F, 0x6A, 0x01, 0x68, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0x64, 0xF0, 0x40, 0x9A, 0x60, 0xA2, 0xFF, 0x6A, +0x64, 0xF0, 0x44, 0x9A, 0x60, 0xA2, 0xFF, 0x6A, 0x6C, 0xE8, 0x2A, 0x20, 0x30, 0xF0, 0x20, 0x6B, 0xEE, 0xF4, 0x8D, 0xA3, 0x04, 0x6B, 0x8C, 0xEB, 0x4C, 0xEB, 0x22, 0x23, 0x03, 0x6B, 0x8C, 0xEB, @@ -30695,32 +30667,32 @@ u8 array_mp_8822c_fw_nic[] = { 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x95, 0xA2, 0x05, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xA3, 0xF3, 0x75, 0xC2, 0x90, 0x67, -0x80, 0x18, 0x17, 0x4D, 0x9D, 0x67, 0x72, 0xA4, +0x80, 0x18, 0x26, 0x4D, 0x9D, 0x67, 0x72, 0xA4, 0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x0D, 0xEA, 0x52, 0xC4, 0x02, 0x6A, 0x50, 0xC4, 0x01, 0x6A, 0x4F, 0xCC, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x21, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0x12, 0xF3, 0x91, 0xA3, +0x30, 0xF0, 0x20, 0x6A, 0x12, 0xF3, 0x8D, 0xA3, 0xA0, 0xF2, 0x54, 0x9A, 0x00, 0x6E, 0xE6, 0x67, 0x01, 0x6D, 0x40, 0xEA, 0x05, 0x97, 0x01, 0x6A, 0x03, 0x63, 0x00, 0xEF, 0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x01, 0x74, 0x11, 0x60, 0x05, 0x24, 0x02, 0x74, 0x03, 0x60, 0x03, 0x74, 0x0F, 0x60, 0x19, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x24, 0xF1, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x24, 0xF1, 0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF3, 0x94, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, -0x0D, 0x10, 0x00, 0x18, 0x01, 0xDA, 0x0B, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF1, 0x78, 0x9A, +0x0D, 0x10, 0x00, 0x18, 0x60, 0xD9, 0x0B, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF1, 0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF3, 0x90, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFF, 0x6A, 0x8C, 0xEA, -0x0B, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, -0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF2, -0x94, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x0A, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, 0x7C, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF1, 0x9C, 0x9C, +0x0B, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF7, +0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF2, +0x98, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x0A, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF7, 0x6C, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF1, 0x80, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, 0x40, 0xDB, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xEC, 0x07, 0x6B, 0x8C, 0xEB, 0x4C, 0xED, 0x8E, 0x34, 0x42, 0xF4, 0x10, 0x4C, @@ -30728,50 +30700,50 @@ u8 array_mp_8822c_fw_nic[] = { 0x02, 0xF0, 0x00, 0x75, 0x01, 0x60, 0x21, 0x2D, 0x1F, 0xF7, 0x00, 0x6A, 0x8C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x07, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF1, 0xA0, 0x9A, 0xB5, 0xE4, +0x20, 0x6A, 0x43, 0xF1, 0xA4, 0x9A, 0xB5, 0xE4, 0x80, 0xA5, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF1, 0xA0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF1, 0x44, 0x9A, 0xB5, 0xE4, 0x51, 0xE4, +0x43, 0xF1, 0xA4, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF1, 0x48, 0x9A, 0xB5, 0xE4, 0x51, 0xE4, 0x80, 0xA4, 0x00, 0xF6, 0x80, 0x34, 0x01, 0x6A, 0x00, 0xF6, 0x83, 0x34, 0x44, 0xEB, 0x8D, 0xEA, 0x36, 0x10, 0x30, 0xF0, 0x20, 0x6D, 0x43, 0xF1, -0xA4, 0x9D, 0x01, 0x6E, 0xC4, 0xEB, 0xB1, 0xE4, +0xA8, 0x9D, 0x01, 0x6E, 0xC4, 0xEB, 0xB1, 0xE4, 0xA0, 0xA4, 0x00, 0xF6, 0xA0, 0x35, 0x00, 0xF6, 0xA3, 0x35, 0xCD, 0xED, 0x3A, 0x10, 0x1F, 0xF7, 0x00, 0x6D, 0x8C, 0xED, 0x02, 0xF0, 0x00, 0x75, 0x01, 0x60, 0x25, 0x2D, 0x1F, 0xF7, 0x00, 0x6A, 0x8C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, -0xA0, 0x9A, 0xB5, 0xE4, 0x80, 0xA5, 0x0B, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0xA0, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x44, 0x9A, +0xA4, 0x9A, 0xB5, 0xE4, 0x80, 0xA5, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0xA4, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x48, 0x9A, 0xB5, 0xE4, 0x51, 0xE4, 0x80, 0xA4, 0x01, 0x6A, 0x00, 0xF6, 0x80, 0x34, 0x44, 0xEB, 0x00, 0xF6, 0x83, 0x34, 0x4F, 0xEA, 0x8C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x40, 0xC5, 0x20, 0xE8, 0x30, 0xF0, -0x20, 0x6D, 0x43, 0xF1, 0xA4, 0x9D, 0x01, 0x6E, +0x20, 0x6D, 0x43, 0xF1, 0xA8, 0x9D, 0x01, 0x6E, 0xC4, 0xEB, 0xB1, 0xE4, 0xA0, 0xA4, 0xCF, 0xEE, 0x00, 0xF6, 0xA0, 0x35, 0x00, 0xF6, 0xA3, 0x35, 0xCC, 0xED, 0x4C, 0xED, 0xA0, 0xC4, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0x67, 0xC2, 0xA3, 0x80, 0xAC, 0xA0, 0xF2, 0x54, 0x9A, 0x01, 0x6D, 0x03, 0x6F, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF1, 0x60, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF1, 0x64, 0x9A, 0xFF, 0x6C, 0x08, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x05, 0x97, 0x01, 0x6A, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0xF2, 0x63, 0x1B, 0x62, 0x1A, 0xD1, 0x19, 0xD0, 0xFF, 0xF7, 0x1F, 0x69, 0xFF, 0x68, 0x8C, 0xE9, 0xAC, 0xE8, 0x0C, 0x04, -0x00, 0x6D, 0x30, 0x6E, 0x00, 0x18, 0xE7, 0xD7, +0x00, 0x6D, 0x30, 0x6E, 0x00, 0x18, 0x3D, 0xD7, 0x5D, 0x67, 0x40, 0xF0, 0x28, 0xCA, 0x40, 0xF0, -0x0A, 0xC2, 0x10, 0xF0, 0x31, 0x6A, 0xF3, 0xF5, +0x0A, 0xC2, 0x10, 0xF0, 0x31, 0x6A, 0x55, 0xF1, 0x19, 0x4A, 0x0C, 0xD2, 0x10, 0xF0, 0x31, 0x6A, -0x33, 0xF6, 0x11, 0x4A, 0x0D, 0xD2, 0x04, 0x04, +0x95, 0xF1, 0x11, 0x4A, 0x0D, 0xD2, 0x04, 0x04, 0x00, 0x6A, 0x10, 0x03, 0x05, 0x10, 0x59, 0xE3, 0xC0, 0xA6, 0x55, 0xE4, 0x01, 0x4A, 0xC0, 0xC5, 0x20, 0x5A, 0xF9, 0x61, 0x0F, 0x97, 0x0C, 0x94, -0x0D, 0x95, 0x0E, 0x96, 0x00, 0x18, 0xC4, 0xE5, +0x0D, 0x95, 0x0E, 0x96, 0x00, 0x18, 0x1A, 0xE5, 0x1B, 0x97, 0x1A, 0x91, 0x19, 0x90, 0x0E, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -33526,382 +33498,18 @@ u8 array_mp_8822c_fw_nic[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF4, 0x74, 0xA2, 0x80, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x02, 0x2A, -0x00, 0x18, 0xC4, 0xEB, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0x18, 0x1A, 0xEB, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0xA3, 0xF3, 0x9C, 0xA3, 0x80, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, 0x05, 0x22, 0xA3, 0xF3, 0x9F, 0xA3, 0x80, 0x18, 0x71, 0x40, 0x08, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, 0xFF, 0x6C, 0xC5, 0x67, 0x40, 0xEA, 0x0C, 0x6D, -0x01, 0x6C, 0x00, 0x18, 0x8B, 0xC6, 0x0C, 0x6C, -0x80, 0x18, 0x6A, 0x72, 0x05, 0x97, 0x03, 0x63, +0x01, 0x6C, 0x00, 0x18, 0xD7, 0xC5, 0x0C, 0x6C, +0x80, 0x18, 0xBF, 0x70, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0xA3, 0xF3, 0x9C, 0xA3, 0x80, 0x6A, 0x4B, 0xEA, @@ -33913,10 +33521,10 @@ u8 array_mp_8822c_fw_nic[] = { 0x5C, 0x9A, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF4, 0x74, 0xA2, 0x80, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x02, 0x2A, -0x00, 0x18, 0xDA, 0xEB, 0x08, 0x6D, 0x01, 0x6C, -0x00, 0x18, 0x8B, 0xC6, 0x08, 0x6C, 0x80, 0x18, -0x6A, 0x72, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x26, 0xD4, +0x00, 0x18, 0x30, 0xEB, 0x08, 0x6D, 0x01, 0x6C, +0x00, 0x18, 0xD7, 0xC5, 0x08, 0x6C, 0x80, 0x18, +0xBF, 0x70, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x7B, 0xD3, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xEB, 0xF1, 0x12, 0x4C, 0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, @@ -33928,30 +33536,30 @@ u8 array_mp_8822c_fw_nic[] = { 0x79, 0xC2, 0x0C, 0x6B, 0xA3, 0xF3, 0x7A, 0xC2, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF2, 0x50, 0x9A, 0x60, 0xA2, +0x20, 0x6A, 0x83, 0xF2, 0x54, 0x9A, 0x60, 0xA2, 0x40, 0x23, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF2, 0x48, 0x9A, 0x02, 0x6B, +0x20, 0x6A, 0x63, 0xF2, 0x4C, 0x9A, 0x02, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x60, 0xC2, 0x2B, 0xF1, -0x18, 0x48, 0x03, 0xF6, 0x60, 0xA0, 0x02, 0x6A, +0x18, 0x48, 0xE3, 0xF5, 0x7C, 0xA0, 0x02, 0x6A, 0xFF, 0x6C, 0x6C, 0xEA, 0x8C, 0xEA, 0x0B, 0x22, -0x03, 0x6A, 0x4B, 0xEA, 0x4C, 0xEB, 0x03, 0xF6, -0x60, 0xC0, 0x03, 0xF6, 0x65, 0xA0, 0x6C, 0xEA, -0x03, 0xF6, 0x45, 0xC0, 0x22, 0x10, 0x03, 0xF6, -0x4D, 0xA0, 0x03, 0xF6, 0x65, 0xA0, 0x01, 0x4A, -0x03, 0xF6, 0x4D, 0xC0, 0x11, 0x6A, 0x4B, 0xEA, -0x6C, 0xEA, 0x03, 0xF6, 0x45, 0xC0, 0x03, 0xF6, -0x6D, 0xA0, 0xC0, 0xF0, 0x42, 0xA0, 0x63, 0xEA, +0x03, 0x6A, 0x4B, 0xEA, 0x4C, 0xEB, 0xE3, 0xF5, +0x7C, 0xC0, 0x03, 0xF6, 0x61, 0xA0, 0x6C, 0xEA, +0x03, 0xF6, 0x41, 0xC0, 0x22, 0x10, 0x03, 0xF6, +0x49, 0xA0, 0x03, 0xF6, 0x61, 0xA0, 0x01, 0x4A, +0x03, 0xF6, 0x49, 0xC0, 0x11, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x03, 0xF6, 0x41, 0xC0, 0x03, 0xF6, +0x69, 0xA0, 0xC0, 0xF0, 0x42, 0xA0, 0x63, 0xEA, 0x10, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, 0xC0, 0xF0, 0x9F, 0xA0, 0x40, 0xEA, -0x01, 0x72, 0x07, 0x61, 0x03, 0xF6, 0x60, 0xA0, -0x21, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x03, 0xF6, -0x40, 0xC0, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x01, 0x72, 0x07, 0x61, 0xE3, 0xF5, 0x7C, 0xA0, +0x21, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xE3, 0xF5, +0x5C, 0xC0, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, 0x00, 0x6D, 0x12, 0x6E, -0x00, 0x18, 0x91, 0xE2, 0x05, 0x97, 0x03, 0x63, +0x00, 0x18, 0xE7, 0xE1, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, 0x01, 0x6D, 0x11, 0x6E, -0x00, 0x18, 0x91, 0xE2, 0x05, 0x97, 0x03, 0x63, +0x00, 0x18, 0xE7, 0xE1, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x6A, 0x8C, 0xEA, 0xC2, 0xF2, 0x9C, 0x9B, @@ -33961,53 +33569,53 @@ u8 array_mp_8822c_fw_nic[] = { 0x00, 0x6B, 0x8C, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x0B, 0x2B, 0x9D, 0x67, 0x44, 0x33, 0x6D, 0xE4, 0x88, 0xAB, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF1, 0x60, 0x9B, 0x6D, 0xE4, 0x60, 0xAB, +0x43, 0xF1, 0x64, 0x9B, 0x6D, 0xE4, 0x60, 0xAB, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, -0x64, 0x9B, 0x71, 0xE4, 0x60, 0xAC, 0xFF, 0xF7, +0x68, 0x9B, 0x71, 0xE4, 0x60, 0xAC, 0xFF, 0xF7, 0x1F, 0x68, 0x6C, 0xE8, 0x18, 0xF0, 0x00, 0x6B, 0x0C, 0xEB, 0x0F, 0x2B, 0x30, 0xF0, 0x20, 0x6B, -0x2B, 0xF1, 0x18, 0x4B, 0x03, 0xF6, 0x85, 0xA3, +0x2B, 0xF1, 0x18, 0x4B, 0x03, 0xF6, 0x81, 0xA3, 0x02, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, 0x03, 0x6C, -0x8B, 0xEC, 0x8C, 0xEA, 0x03, 0xF6, 0x45, 0xC3, +0x8B, 0xEC, 0x8C, 0xEA, 0x03, 0xF6, 0x41, 0xC3, 0x79, 0x10, 0x08, 0xF0, 0x00, 0x6B, 0x0C, 0xEB, 0x42, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0xA0, 0xF0, 0xDB, 0xA3, 0x7F, 0x6D, 0xFF, 0x6C, 0xCC, 0xED, 0x02, 0x75, 0x1F, 0x61, 0xA0, 0xF0, 0x5E, 0xA3, 0x01, 0x6D, 0xAC, 0xEA, -0x8C, 0xEA, 0x06, 0x2A, 0x03, 0xF6, 0x45, 0xA3, -0x4D, 0xED, 0x03, 0xF6, 0xA5, 0xC3, 0x21, 0x10, +0x8C, 0xEA, 0x06, 0x2A, 0x03, 0xF6, 0x41, 0xA3, +0x4D, 0xED, 0x03, 0xF6, 0xA1, 0xC3, 0x21, 0x10, 0xA0, 0xF0, 0xBC, 0xA3, 0x10, 0x6A, 0x4B, 0xEA, 0xAC, 0xEA, 0x8C, 0xEA, 0x10, 0x72, 0x2E, 0x61, -0x03, 0xF6, 0x85, 0xA3, 0x04, 0x6A, 0x00, 0x6D, -0x8D, 0xEA, 0x03, 0xF6, 0x45, 0xC3, 0x01, 0x6C, -0x00, 0x18, 0x77, 0xD3, 0x23, 0x10, 0x03, 0xF6, -0xC5, 0xA3, 0x01, 0x6D, 0xCD, 0xED, 0x03, 0xF6, -0xA5, 0xC3, 0xA0, 0xF0, 0xBC, 0xA3, 0x10, 0x6B, +0x03, 0xF6, 0x81, 0xA3, 0x04, 0x6A, 0x00, 0x6D, +0x8D, 0xEA, 0x03, 0xF6, 0x41, 0xC3, 0x01, 0x6C, +0x00, 0x18, 0xCC, 0xD2, 0x23, 0x10, 0x03, 0xF6, +0xC1, 0xA3, 0x01, 0x6D, 0xCD, 0xED, 0x03, 0xF6, +0xA1, 0xC3, 0xA0, 0xF0, 0xBC, 0xA3, 0x10, 0x6B, 0x6B, 0xEB, 0xAC, 0xEB, 0x8C, 0xEB, 0x20, 0x73, 0x06, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, 0x40, 0x9A, 0x40, 0xEA, 0x0F, 0x10, 0x82, 0x67, -0x00, 0x18, 0x7B, 0xD0, 0x0B, 0x10, 0x30, 0xF0, +0x00, 0x18, 0xD0, 0xCF, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x03, 0xF6, -0x85, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, -0x03, 0xF6, 0x65, 0xC2, 0x02, 0x30, 0x1E, 0x30, +0x81, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x03, 0xF6, 0x61, 0xC2, 0x02, 0x30, 0x1E, 0x30, 0x1A, 0x20, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, -0x18, 0x48, 0x03, 0xF6, 0x45, 0xA0, 0x02, 0x69, +0x18, 0x48, 0x03, 0xF6, 0x41, 0xA0, 0x02, 0x69, 0xC0, 0xF0, 0xC3, 0xA0, 0x2D, 0xEA, 0x03, 0xF6, -0x45, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x41, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, 0xFF, 0x6C, 0x55, 0x4C, 0x00, 0x6D, -0x40, 0xEA, 0x03, 0xF6, 0x40, 0xA0, 0x4D, 0xE9, -0x03, 0xF6, 0x20, 0xC0, 0x0B, 0x10, 0x30, 0xF0, +0x40, 0xEA, 0xE3, 0xF5, 0x5C, 0xA0, 0x4D, 0xE9, +0xE3, 0xF5, 0x3C, 0xC0, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x03, 0xF6, -0x85, 0xA2, 0x03, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, -0x03, 0xF6, 0x65, 0xC2, 0x0B, 0x97, 0x0A, 0x91, +0x81, 0xA2, 0x03, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x03, 0xF6, 0x61, 0xC2, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x68, -0x8C, 0xE8, 0x00, 0x18, 0xB6, 0xC6, 0x03, 0x2A, -0x90, 0x67, 0x00, 0x18, 0xFA, 0xCF, 0x05, 0x97, +0x8C, 0xE8, 0x00, 0x18, 0x02, 0xC6, 0x03, 0x2A, +0x90, 0x67, 0x00, 0x18, 0x4F, 0xCF, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0x1F, 0x71, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0x74, 0x6F, 0x01, 0x72, 0x01, 0x6C, 0x01, 0x60, 0x02, 0x6C, -0x80, 0x18, 0x95, 0x73, 0x05, 0x97, 0x03, 0x63, +0x80, 0x18, 0xEA, 0x71, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0xA0, 0xF0, 0x7A, 0xA0, 0x01, 0x6A, @@ -34015,10 +33623,10 @@ u8 array_mp_8822c_fw_nic[] = { 0x04, 0x72, 0x19, 0x60, 0xA3, 0xF3, 0x5A, 0xA0, 0x02, 0x72, 0x15, 0x60, 0x02, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x80, 0x18, -0xE6, 0x40, 0x0D, 0x10, 0x80, 0x18, 0x87, 0x72, +0xE6, 0x40, 0x0D, 0x10, 0x80, 0x18, 0xDC, 0x70, 0xA3, 0xF3, 0x5A, 0xA0, 0x0C, 0x6C, 0x08, 0x72, 0x02, 0x60, 0x05, 0x2A, 0x04, 0x6C, 0x00, 0x6D, -0xC5, 0x67, 0x00, 0x18, 0xD3, 0xCE, 0x05, 0x97, +0xC5, 0x67, 0x00, 0x18, 0x28, 0xCE, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0xA0, 0xF0, @@ -34032,7 +33640,7 @@ u8 array_mp_8822c_fw_nic[] = { 0x80, 0x18, 0x4A, 0x40, 0xA3, 0xF3, 0x5A, 0xA0, 0x0C, 0x72, 0x03, 0x61, 0x08, 0x6C, 0x00, 0x6D, 0x04, 0x10, 0x04, 0x72, 0x05, 0x61, 0x00, 0x6C, -0xA4, 0x67, 0xC5, 0x67, 0x00, 0x18, 0xD3, 0xCE, +0xA4, 0x67, 0xC5, 0x67, 0x00, 0x18, 0x28, 0xCE, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x06, 0xD4, 0x09, 0xD7, @@ -34043,23 +33651,23 @@ u8 array_mp_8822c_fw_nic[] = { 0x27, 0x67, 0x1F, 0x22, 0x1F, 0xF7, 0x00, 0x6A, 0xAC, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, -0x40, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF1, 0x44, 0x9A, 0x49, 0xE0, 0x40, 0x9A, +0x44, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF1, 0x48, 0x9A, 0x49, 0xE0, 0x40, 0x9A, 0x0C, 0x94, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x0C, 0x93, 0x24, 0xEA, 0x6F, 0xEA, 0x04, 0x93, 0x6C, 0xEA, 0x4D, 0xE9, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x40, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x44, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, -0x44, 0x9A, 0x41, 0xE0, 0x20, 0xD8, 0x09, 0x97, +0x48, 0x9A, 0x41, 0xE0, 0x20, 0xD8, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x1F, 0xF7, 0x00, 0x6A, 0xAC, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x26, 0x67, 0x01, 0x60, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x40, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x44, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, -0x44, 0x9A, 0x55, 0xE5, 0x30, 0xF0, 0x20, 0x6A, +0x48, 0x9A, 0x55, 0xE5, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0x9D, 0xA0, 0xF3, 0x44, 0x9A, 0x91, 0x67, 0x2C, 0xE8, 0x40, 0xEA, 0x06, 0xEA, 0x50, 0x67, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, @@ -34072,1617 +33680,1625 @@ u8 array_mp_8822c_fw_nic[] = { 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x85, 0x67, 0xA6, 0x67, 0xC7, 0x67, 0x00, 0x18, -0xEC, 0xD7, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0x6A, 0x8C, 0xEA, 0x94, 0xF7, 0xA8, 0x42, -0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, -0xA4, 0x35, 0x15, 0xE5, 0xC4, 0xA5, 0xC2, 0xF3, -0x68, 0x42, 0x03, 0x6D, 0x48, 0x34, 0x44, 0x32, -0xAC, 0xEE, 0x09, 0xE2, 0x11, 0xE4, 0xC0, 0x36, -0x29, 0xF7, 0x55, 0xA2, 0x68, 0x33, 0xFE, 0x65, -0x0D, 0xE3, 0x29, 0xF7, 0x21, 0xA4, 0x29, 0xF7, -0xC2, 0xA4, 0x29, 0xF7, 0x83, 0xA4, 0xE0, 0xA3, -0xAC, 0xEA, 0x01, 0x6B, 0x6C, 0xE9, 0x6C, 0xEE, -0x6C, 0xEC, 0x40, 0x32, 0x6C, 0xEF, 0x30, 0x31, -0x7F, 0x67, 0x48, 0x32, 0xC4, 0x36, 0x94, 0x34, -0xD9, 0xE7, 0x91, 0xE1, 0x4D, 0xE3, 0x30, 0xF0, -0x20, 0x69, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0xD6, -0x04, 0xD3, 0x63, 0xF3, 0xC0, 0x9A, 0xC0, 0xF3, -0x64, 0x99, 0x05, 0xD4, 0xFC, 0x4D, 0x03, 0xF3, -0x00, 0x6C, 0x40, 0xEB, 0x06, 0x92, 0x05, 0x96, -0x04, 0x93, 0xE3, 0xF3, 0x10, 0x6C, 0x4D, 0xEE, -0xC0, 0xF3, 0x44, 0x99, 0x6D, 0xEE, 0xFF, 0xF7, -0x1F, 0x6D, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6E, -0xA3, 0xF1, 0x18, 0x4E, 0xC0, 0xF3, 0x44, 0x99, -0xA0, 0x9E, 0xAA, 0xF1, 0xDC, 0xA0, 0xE3, 0xF3, -0x10, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF1, 0x18, 0x4B, 0xC0, 0xF3, 0x44, 0x99, -0xAA, 0xF1, 0xDC, 0xA0, 0xA0, 0x9B, 0xE3, 0xF3, -0x10, 0x6C, 0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, -0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x00, 0x6B, -0xE7, 0xF3, 0x6B, 0xC2, 0x30, 0xF0, 0x21, 0x6B, -0x32, 0xF5, 0x03, 0x4B, 0x07, 0xF4, 0x78, 0xDA, -0x00, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, -0x6C, 0x9B, 0x54, 0x34, 0x20, 0x68, 0x71, 0xE4, -0xA0, 0xA4, 0xF8, 0x6B, 0x01, 0x4A, 0xAC, 0xEB, -0x4E, 0xE8, 0x60, 0xC4, 0xF2, 0x28, 0x80, 0x18, -0x7B, 0x46, 0x30, 0xF0, 0x21, 0x6A, 0x32, 0xF5, -0x1A, 0xC2, 0x80, 0x18, 0x98, 0x4A, 0x80, 0x18, -0x26, 0x47, 0x30, 0xF0, 0x21, 0x6C, 0x12, 0xF5, -0x08, 0x4C, 0x80, 0x18, 0x9B, 0x46, 0x80, 0x18, -0x39, 0x53, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0xD1, -0x08, 0xD0, 0x0A, 0xD4, 0x44, 0x67, 0x82, 0x10, -0x25, 0x73, 0x04, 0x60, 0x60, 0xA5, 0x60, 0xC2, -0x01, 0x4A, 0x7B, 0x10, 0x61, 0x85, 0x62, 0x73, -0x7D, 0x67, 0x20, 0x61, 0x62, 0x85, 0x78, 0x73, -0x03, 0x60, 0x58, 0x73, 0x7D, 0x67, 0x1A, 0x61, -0x82, 0x85, 0x60, 0xA6, 0x78, 0x6F, 0xEE, 0xEC, -0x30, 0xF0, 0x20, 0x6F, 0x72, 0x30, 0xC4, 0xF2, -0x08, 0x4F, 0xE1, 0xE0, 0x00, 0xA0, 0x01, 0x5C, -0x98, 0x67, 0x94, 0x34, 0x8D, 0xE8, 0x3D, 0x67, -0x00, 0xC1, 0x0F, 0x68, 0x6C, 0xE8, 0xFD, 0xE0, -0x60, 0xA7, 0x02, 0x4D, 0x8D, 0xEB, 0x61, 0xC1, -0x00, 0xF0, 0x02, 0x03, 0x81, 0x85, 0x77, 0x74, -0x26, 0x61, 0x82, 0x85, 0x78, 0x74, 0x02, 0x60, -0x58, 0x74, 0x21, 0x61, 0x80, 0xAE, 0x06, 0xD3, -0x07, 0xD4, 0x82, 0x85, 0x78, 0x74, 0xF8, 0x67, -0x01, 0x5F, 0x18, 0x67, 0x14, 0x30, 0x18, 0x65, -0x0C, 0x6C, 0x07, 0x97, 0x0F, 0x68, 0x30, 0xF0, -0x20, 0x69, 0xE7, 0xEC, 0x0C, 0xEF, 0xC4, 0xF2, -0x08, 0x49, 0x3D, 0xE7, 0xE0, 0xA7, 0x06, 0x90, -0x38, 0x67, 0x2D, 0xEF, 0xFC, 0x4C, 0xE0, 0xC0, -0x01, 0x48, 0xE4, 0x44, 0x06, 0xD0, 0xED, 0x2F, -0x04, 0x4B, 0x02, 0x4D, 0x25, 0x10, 0x81, 0x85, -0x78, 0x74, 0x02, 0x60, 0x58, 0x74, 0x20, 0x61, -0x81, 0x85, 0x20, 0x9E, 0x06, 0xD3, 0x78, 0x74, -0x98, 0x67, 0x01, 0x5C, 0xF8, 0x67, 0xF4, 0x37, -0x07, 0xD1, 0x1F, 0x65, 0x1C, 0x6C, 0x07, 0x97, -0x0F, 0x68, 0x30, 0xF0, 0x20, 0x69, 0xE6, 0xEC, -0x0C, 0xEF, 0xC4, 0xF2, 0x08, 0x49, 0x3D, 0xE7, -0xE0, 0xA7, 0x06, 0x91, 0x18, 0x67, 0x0D, 0xEF, -0xFC, 0x4C, 0xE0, 0xC1, 0x01, 0x49, 0xE4, 0x44, -0x06, 0xD1, 0xED, 0x2F, 0x08, 0x4B, 0x01, 0x4D, -0x9D, 0x67, 0x04, 0x10, 0xE0, 0xA4, 0x01, 0x4C, -0xE0, 0xC2, 0x01, 0x4A, 0x63, 0xEC, 0xFA, 0x61, -0x04, 0x4E, 0x01, 0x4D, 0x60, 0x85, 0x7F, 0xF7, -0x1B, 0x2B, 0x0A, 0x94, 0x01, 0x24, 0x60, 0xC2, -0x0A, 0x97, 0x09, 0x91, 0x08, 0x90, 0xEB, 0xE2, -0x05, 0x63, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x01, 0x6B, 0x2B, 0xF1, 0x18, 0x4A, 0x6B, 0xEB, -0x28, 0xF7, 0x6C, 0xC2, 0x28, 0xF7, 0x6D, 0xC2, -0x28, 0xF7, 0x6E, 0xC2, 0x20, 0xE8, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x00, 0xF0, 0x12, 0x02, -0x00, 0xF0, 0x1E, 0x03, 0x00, 0x6D, 0xA0, 0xC2, -0x01, 0x4A, 0x6A, 0xEA, 0xFB, 0x61, 0x61, 0xA4, -0x40, 0xA4, 0x02, 0x5B, 0x29, 0x60, 0x80, 0x6C, -0x8B, 0xEC, 0x74, 0x33, 0x4D, 0xEC, 0x6D, 0xE2, -0xBD, 0x67, 0x92, 0xC5, 0x61, 0xF1, 0x0B, 0x4B, -0x30, 0xF0, 0x20, 0x6C, 0x2B, 0xF1, 0x18, 0x4C, -0x6C, 0x33, 0x6D, 0xE4, 0x04, 0x4B, 0x00, 0xF0, -0x13, 0x02, 0x00, 0xF0, 0x1B, 0x04, 0xA0, 0xAB, -0xA0, 0xC2, 0xA2, 0x35, 0xA1, 0xC2, 0x02, 0x4A, -0x00, 0x6D, 0x8A, 0xEA, 0xA0, 0xCB, 0x02, 0x4B, -0xF6, 0x61, 0x0D, 0x6A, 0x7D, 0x67, 0x50, 0xC3, -0x09, 0x6A, 0x4F, 0xCB, 0x30, 0xF0, 0x20, 0x6A, -0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, -0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0x68, 0xA4, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE7, 0xF3, -0x74, 0xC2, 0x69, 0xA4, 0xE7, 0xF3, 0x69, 0xC2, -0x6A, 0xA4, 0xE7, 0xF3, 0x73, 0xC2, 0xAB, 0xA4, -0x0F, 0x6B, 0xAC, 0xEB, 0xE7, 0xF3, 0x7D, 0xC2, -0x6B, 0xA4, 0x72, 0x33, 0xE7, 0xF3, 0x7A, 0xC2, -0x8E, 0xA4, 0x01, 0x6B, 0x8C, 0xEB, 0xE7, 0xF3, -0x6B, 0xC2, 0x30, 0xF0, 0x21, 0x6B, 0x32, 0xF5, -0x03, 0x4B, 0x07, 0xF4, 0x78, 0xDA, 0x00, 0x6A, -0x20, 0xE8, 0x00, 0x65, 0x60, 0xA4, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE7, 0xF3, -0x74, 0xC2, 0x61, 0xA4, 0xE7, 0xF3, 0x69, 0xC2, -0x62, 0xA4, 0xE7, 0xF3, 0x73, 0xC2, 0xA3, 0xA4, -0x0F, 0x6B, 0xAC, 0xEB, 0xE7, 0xF3, 0x7D, 0xC2, -0x63, 0xA4, 0x72, 0x33, 0xE7, 0xF3, 0x7A, 0xC2, -0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0x8C, 0xEA, 0x0E, 0x72, 0x03, 0x60, -0x11, 0x72, 0x05, 0x60, 0x08, 0x10, 0x85, 0x67, -0x80, 0x18, 0xCE, 0x12, 0x19, 0x10, 0x85, 0x67, -0x80, 0x18, 0x2F, 0x42, 0x15, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF2, 0x68, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0x63, 0xF2, 0x90, 0x9C, 0x40, 0x9B, -0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x60, 0x9A, -0x8D, 0xEB, 0xA3, 0xF3, 0x60, 0xDA, 0xFF, 0x6A, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x42, 0xD7, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x04, 0xD2, 0x04, 0x95, +0x30, 0xF0, 0x20, 0x69, 0x2B, 0xF1, 0x18, 0x49, +0xA8, 0x34, 0x31, 0xE4, 0x05, 0xD4, 0x05, 0x90, +0xC2, 0xF3, 0x08, 0x4A, 0x48, 0x32, 0x29, 0xE2, +0x29, 0xF7, 0xC2, 0xA0, 0x60, 0xA2, 0x01, 0x6A, +0x4C, 0xEE, 0x4C, 0xEB, 0xC4, 0x36, 0x29, 0xF7, +0xE1, 0xA4, 0xD9, 0xE3, 0x29, 0xF7, 0x63, 0xA0, +0x4C, 0xEF, 0xF0, 0x37, 0x4C, 0xEB, 0x74, 0x33, +0x6D, 0xE7, 0x07, 0xD3, 0x04, 0x93, 0x85, 0x67, +0x84, 0xF7, 0x18, 0x4C, 0x64, 0x32, 0x29, 0xE2, +0x84, 0x34, 0x31, 0xE4, 0x29, 0xF7, 0x55, 0xA2, +0xA4, 0xA4, 0x03, 0x6C, 0x8C, 0xEA, 0x8C, 0xED, +0x40, 0x32, 0xA0, 0x35, 0x48, 0x32, 0x49, 0xE5, +0x30, 0xF0, 0x20, 0x68, 0x06, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x08, 0xD6, 0xC0, 0xF3, 0x64, 0x98, +0x63, 0xF3, 0xC0, 0x9A, 0x01, 0x6D, 0xE3, 0xF2, +0x1D, 0x4C, 0xAB, 0xED, 0x40, 0xEB, 0x08, 0x94, +0x07, 0x96, 0x06, 0x93, 0xC0, 0xF3, 0x44, 0x98, +0x8D, 0xEE, 0x6D, 0xEE, 0xE3, 0xF3, 0x10, 0x6C, +0xFF, 0xF7, 0x1F, 0x6D, 0x40, 0xEA, 0x04, 0x92, +0x05, 0x94, 0x01, 0x6D, 0xC2, 0xF3, 0x0E, 0x4A, +0x29, 0xF7, 0xDA, 0xAC, 0x48, 0x32, 0x29, 0xE2, +0x60, 0xAA, 0xC0, 0x36, 0xC0, 0xF3, 0x44, 0x98, +0xC0, 0x36, 0x6D, 0xEE, 0xE3, 0xF3, 0x08, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x04, 0x92, 0x05, 0x95, +0xE3, 0xF3, 0x0C, 0x6C, 0xC2, 0xF3, 0x0F, 0x4A, +0x29, 0xF7, 0xDE, 0xAD, 0x48, 0x32, 0x29, 0xE2, +0x60, 0xAA, 0xC0, 0x36, 0xC0, 0xF3, 0x44, 0x98, +0xC0, 0x36, 0x01, 0x6D, 0x6D, 0xEE, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xAA, 0xF1, 0xDC, 0xA1, 0xA3, 0xF1, +0xBC, 0x9B, 0xE3, 0xF3, 0x10, 0x6C, 0x40, 0xEA, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0x00, 0x6B, 0xE7, 0xF3, 0x6B, 0xC2, +0x30, 0xF0, 0x21, 0x6B, 0x32, 0xF5, 0x03, 0x4B, +0x07, 0xF4, 0x78, 0xDA, 0x00, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF3, 0x6C, 0x9B, 0x54, 0x34, +0x20, 0x68, 0x71, 0xE4, 0xA0, 0xA4, 0xF8, 0x6B, +0x01, 0x4A, 0xAC, 0xEB, 0x4E, 0xE8, 0x60, 0xC4, +0xF2, 0x28, 0x80, 0x18, 0x8A, 0x46, 0x30, 0xF0, +0x21, 0x6A, 0x32, 0xF5, 0x1A, 0xC2, 0x80, 0x18, +0xA7, 0x4A, 0x80, 0x18, 0x35, 0x47, 0x30, 0xF0, +0x21, 0x6C, 0x12, 0xF5, 0x08, 0x4C, 0x80, 0x18, +0xAA, 0x46, 0x80, 0x18, 0x49, 0x53, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0xD1, 0x08, 0xD0, 0x0A, 0xD4, +0x44, 0x67, 0x82, 0x10, 0x25, 0x73, 0x04, 0x60, +0x60, 0xA5, 0x60, 0xC2, 0x01, 0x4A, 0x7B, 0x10, +0x61, 0x85, 0x62, 0x73, 0x7D, 0x67, 0x20, 0x61, +0x62, 0x85, 0x78, 0x73, 0x03, 0x60, 0x58, 0x73, +0x7D, 0x67, 0x1A, 0x61, 0x82, 0x85, 0x60, 0xA6, +0x78, 0x6F, 0xEE, 0xEC, 0x30, 0xF0, 0x20, 0x6F, +0x72, 0x30, 0xC4, 0xF2, 0x0C, 0x4F, 0xE1, 0xE0, +0x00, 0xA0, 0x01, 0x5C, 0x98, 0x67, 0x94, 0x34, +0x8D, 0xE8, 0x3D, 0x67, 0x00, 0xC1, 0x0F, 0x68, +0x6C, 0xE8, 0xFD, 0xE0, 0x60, 0xA7, 0x02, 0x4D, +0x8D, 0xEB, 0x61, 0xC1, 0x00, 0xF0, 0x02, 0x03, +0x81, 0x85, 0x77, 0x74, 0x26, 0x61, 0x82, 0x85, +0x78, 0x74, 0x02, 0x60, 0x58, 0x74, 0x21, 0x61, +0x80, 0xAE, 0x06, 0xD3, 0x07, 0xD4, 0x82, 0x85, +0x78, 0x74, 0xF8, 0x67, 0x01, 0x5F, 0x18, 0x67, +0x14, 0x30, 0x18, 0x65, 0x0C, 0x6C, 0x07, 0x97, +0x0F, 0x68, 0x30, 0xF0, 0x20, 0x69, 0xE7, 0xEC, +0x0C, 0xEF, 0xC4, 0xF2, 0x0C, 0x49, 0x3D, 0xE7, +0xE0, 0xA7, 0x06, 0x90, 0x38, 0x67, 0x2D, 0xEF, +0xFC, 0x4C, 0xE0, 0xC0, 0x01, 0x48, 0xE4, 0x44, +0x06, 0xD0, 0xED, 0x2F, 0x04, 0x4B, 0x02, 0x4D, +0x25, 0x10, 0x81, 0x85, 0x78, 0x74, 0x02, 0x60, +0x58, 0x74, 0x20, 0x61, 0x81, 0x85, 0x20, 0x9E, +0x06, 0xD3, 0x78, 0x74, 0x98, 0x67, 0x01, 0x5C, +0xF8, 0x67, 0xF4, 0x37, 0x07, 0xD1, 0x1F, 0x65, +0x1C, 0x6C, 0x07, 0x97, 0x0F, 0x68, 0x30, 0xF0, +0x20, 0x69, 0xE6, 0xEC, 0x0C, 0xEF, 0xC4, 0xF2, +0x0C, 0x49, 0x3D, 0xE7, 0xE0, 0xA7, 0x06, 0x91, +0x18, 0x67, 0x0D, 0xEF, 0xFC, 0x4C, 0xE0, 0xC1, +0x01, 0x49, 0xE4, 0x44, 0x06, 0xD1, 0xED, 0x2F, +0x08, 0x4B, 0x01, 0x4D, 0x9D, 0x67, 0x04, 0x10, +0xE0, 0xA4, 0x01, 0x4C, 0xE0, 0xC2, 0x01, 0x4A, +0x63, 0xEC, 0xFA, 0x61, 0x04, 0x4E, 0x01, 0x4D, +0x60, 0x85, 0x7F, 0xF7, 0x1B, 0x2B, 0x0A, 0x94, +0x01, 0x24, 0x60, 0xC2, 0x0A, 0x97, 0x09, 0x91, +0x08, 0x90, 0xEB, 0xE2, 0x05, 0x63, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x01, 0x6B, 0x2B, 0xF1, +0x18, 0x4A, 0x6B, 0xEB, 0x28, 0xF7, 0x6C, 0xC2, +0x28, 0xF7, 0x6D, 0xC2, 0x28, 0xF7, 0x6E, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x00, 0xF0, 0x12, 0x02, 0x00, 0xF0, 0x1E, 0x03, +0x00, 0x6D, 0xA0, 0xC2, 0x01, 0x4A, 0x6A, 0xEA, +0xFB, 0x61, 0x61, 0xA4, 0x40, 0xA4, 0x02, 0x5B, +0x29, 0x60, 0x80, 0x6C, 0x8B, 0xEC, 0x74, 0x33, +0x4D, 0xEC, 0x6D, 0xE2, 0xBD, 0x67, 0x92, 0xC5, +0x61, 0xF1, 0x0B, 0x4B, 0x30, 0xF0, 0x20, 0x6C, +0x2B, 0xF1, 0x18, 0x4C, 0x6C, 0x33, 0x6D, 0xE4, +0x04, 0x4B, 0x00, 0xF0, 0x13, 0x02, 0x00, 0xF0, +0x1B, 0x04, 0xA0, 0xAB, 0xA0, 0xC2, 0xA2, 0x35, +0xA1, 0xC2, 0x02, 0x4A, 0x00, 0x6D, 0x8A, 0xEA, +0xA0, 0xCB, 0x02, 0x4B, 0xF6, 0x61, 0x0D, 0x6A, +0x7D, 0x67, 0x50, 0xC3, 0x09, 0x6A, 0x4F, 0xCB, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, +0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x68, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0xE7, 0xF3, 0x74, 0xC2, 0x69, 0xA4, +0xE7, 0xF3, 0x69, 0xC2, 0x6A, 0xA4, 0xE7, 0xF3, +0x73, 0xC2, 0xAB, 0xA4, 0x0F, 0x6B, 0xAC, 0xEB, +0xE7, 0xF3, 0x7D, 0xC2, 0x6B, 0xA4, 0x72, 0x33, +0xE7, 0xF3, 0x7A, 0xC2, 0x8E, 0xA4, 0x01, 0x6B, +0x8C, 0xEB, 0xE7, 0xF3, 0x6B, 0xC2, 0x30, 0xF0, +0x21, 0x6B, 0x32, 0xF5, 0x03, 0x4B, 0x07, 0xF4, +0x78, 0xDA, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0x60, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0xE7, 0xF3, 0x74, 0xC2, 0x61, 0xA4, +0xE7, 0xF3, 0x69, 0xC2, 0x62, 0xA4, 0xE7, 0xF3, +0x73, 0xC2, 0xA3, 0xA4, 0x0F, 0x6B, 0xAC, 0xEB, +0xE7, 0xF3, 0x7D, 0xC2, 0x63, 0xA4, 0x72, 0x33, +0xE7, 0xF3, 0x7A, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, +0x0E, 0x72, 0x03, 0x60, 0x11, 0x72, 0x05, 0x60, +0x08, 0x10, 0x85, 0x67, 0x80, 0x18, 0xA5, 0x15, +0x19, 0x10, 0x85, 0x67, 0x80, 0x18, 0x3E, 0x42, +0x15, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, +0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF2, +0x94, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x60, 0xDA, 0xFF, 0x6A, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, +0x0E, 0xD1, 0x0D, 0xD0, 0x42, 0xA4, 0x00, 0xA4, +0x21, 0xA4, 0x0A, 0xD2, 0x63, 0xA4, 0x00, 0xF0, +0x16, 0x02, 0x20, 0xF0, 0x02, 0x04, 0x00, 0x6D, +0xA0, 0xC2, 0x01, 0x4A, 0x8A, 0xEA, 0xFB, 0x61, +0x01, 0x6A, 0x6C, 0xEA, 0x10, 0x22, 0x04, 0x04, +0x00, 0xF0, 0x11, 0x05, 0x80, 0x18, 0x19, 0x49, +0x7D, 0x67, 0x50, 0xA3, 0x01, 0x6C, 0x96, 0xC3, +0x57, 0xC3, 0x51, 0xA3, 0x58, 0xC3, 0x26, 0x6A, +0x54, 0xC3, 0x03, 0x6A, 0x51, 0xCB, 0x0A, 0x93, +0x01, 0x6A, 0x4C, 0xEB, 0x1E, 0x23, 0x20, 0x58, +0xE0, 0xF0, 0x13, 0x61, 0x20, 0x59, 0xE0, 0xF0, +0x10, 0x61, 0xBD, 0x67, 0x56, 0xC5, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x89, 0xF2, +0x78, 0x9A, 0x62, 0x34, 0x77, 0xC5, 0x00, 0xF6, +0x62, 0x33, 0x7A, 0xC5, 0x0D, 0x6B, 0x74, 0xC5, +0x05, 0x6B, 0x98, 0xC5, 0x71, 0xCD, 0x82, 0x34, +0x00, 0x6B, 0x99, 0xC5, 0x89, 0xF2, 0x78, 0xDA, +0xD8, 0x10, 0x0A, 0x92, 0x02, 0x6C, 0x8C, 0xEA, +0x31, 0x22, 0xDD, 0x67, 0x20, 0x58, 0x96, 0xC6, +0x17, 0x60, 0x64, 0xF5, 0x8C, 0x40, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x84, 0x34, +0x51, 0xE4, 0xA2, 0xAC, 0x44, 0xF5, 0x0C, 0x48, +0x04, 0x30, 0x49, 0xE0, 0xB7, 0xC6, 0xA2, 0x35, +0xB8, 0xC6, 0xA2, 0xAA, 0x62, 0xCC, 0x62, 0xCA, +0xB9, 0xC6, 0xA2, 0x35, 0xBA, 0xC6, 0x04, 0x10, +0x16, 0x6A, 0x4B, 0xEA, 0x7D, 0x67, 0x57, 0xC3, +0x20, 0x59, 0x4E, 0x60, 0x64, 0xF5, 0x6C, 0x41, +0x30, 0xF0, 0x20, 0x6A, 0x64, 0x33, 0x2B, 0xF1, +0x18, 0x4A, 0x4D, 0xE3, 0x82, 0xAB, 0xBD, 0x67, +0x44, 0xF5, 0x0C, 0x49, 0x9B, 0xC5, 0x82, 0x34, +0x9C, 0xC5, 0x34, 0x10, 0x0A, 0x95, 0x08, 0x6B, +0xAC, 0xEB, 0x43, 0x23, 0xDD, 0x67, 0x20, 0x58, +0x96, 0xC6, 0x17, 0x60, 0x64, 0xF5, 0x8C, 0x40, +0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, +0x84, 0x34, 0x71, 0xE4, 0xA2, 0xAC, 0x84, 0xF5, +0x0C, 0x48, 0x04, 0x30, 0x6D, 0xE0, 0xB7, 0xC6, +0xA2, 0x35, 0xB8, 0xC6, 0xA2, 0xAB, 0x42, 0xCC, +0x42, 0xCB, 0xB9, 0xC6, 0xA2, 0x35, 0xBA, 0xC6, +0x04, 0x10, 0x16, 0x6A, 0x4B, 0xEA, 0x7D, 0x67, +0x57, 0xC3, 0x20, 0x59, 0x19, 0x60, 0x64, 0xF5, +0x6C, 0x41, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0x33, +0x2B, 0xF1, 0x18, 0x4A, 0x4D, 0xE3, 0x82, 0xAB, +0xBD, 0x67, 0x84, 0xF5, 0x0C, 0x49, 0x9B, 0xC5, +0x82, 0x34, 0x9C, 0xC5, 0x24, 0x31, 0x49, 0xE1, +0x82, 0xAA, 0x9D, 0xC5, 0x82, 0x34, 0x9E, 0xC5, +0x00, 0x6C, 0x82, 0xCB, 0x82, 0xCA, 0x04, 0x10, +0x16, 0x6A, 0x4B, 0xEA, 0xDD, 0x67, 0x5B, 0xC6, +0x0D, 0x6A, 0x7D, 0x67, 0x54, 0xC3, 0x09, 0x6A, +0x56, 0x10, 0x0A, 0x94, 0x56, 0x2C, 0x20, 0x58, +0x24, 0x60, 0x04, 0xF5, 0x6C, 0x40, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x64, 0x33, +0x4D, 0xE3, 0x80, 0xAB, 0xBD, 0x67, 0x16, 0xC5, +0x97, 0xC5, 0x82, 0x34, 0x98, 0xC5, 0x24, 0xF5, +0x8C, 0x40, 0x84, 0x34, 0x49, 0xE4, 0x80, 0xAA, +0x14, 0x30, 0xC7, 0x45, 0x99, 0xC5, 0x82, 0x34, +0x9A, 0xC5, 0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF1, +0x8C, 0x9C, 0x21, 0x4E, 0xC0, 0xAE, 0x81, 0xE0, +0x80, 0xA0, 0xC0, 0xCB, 0xC0, 0xCA, 0x9B, 0xC5, +0x02, 0x10, 0x9D, 0x67, 0x16, 0xC4, 0x20, 0x59, +0x24, 0x60, 0x04, 0xF5, 0x6C, 0x41, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x64, 0x33, +0x4D, 0xE3, 0x80, 0xAB, 0xBD, 0x67, 0x3C, 0xC5, +0x9D, 0xC5, 0x82, 0x34, 0x9E, 0xC5, 0x24, 0xF5, +0x8C, 0x41, 0x84, 0x34, 0x49, 0xE4, 0x80, 0xAA, +0x34, 0x31, 0x9F, 0xC5, 0x82, 0x34, 0x20, 0xF0, +0x80, 0xC5, 0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF1, +0x8C, 0x9C, 0x85, 0xE1, 0x80, 0xA1, 0x20, 0xF0, +0x81, 0xC5, 0x00, 0x6C, 0x80, 0xCB, 0x80, 0xCA, +0x02, 0x10, 0x5D, 0x67, 0x3C, 0xC2, 0x04, 0x6A, +0x7D, 0x67, 0x54, 0xC3, 0x0C, 0x6A, 0x51, 0xCB, +0x04, 0x10, 0x9D, 0x67, 0x04, 0x6A, 0x54, 0xC4, +0x71, 0xCC, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x5C, 0x9A, 0x05, 0x04, 0x40, 0xEA, 0x0F, 0x97, +0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, 0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, -0x42, 0xA4, 0x00, 0xA4, 0x21, 0xA4, 0x0A, 0xD2, -0x63, 0xA4, 0x00, 0xF0, 0x16, 0x02, 0x20, 0xF0, -0x02, 0x04, 0x00, 0x6D, 0xA0, 0xC2, 0x01, 0x4A, -0x8A, 0xEA, 0xFB, 0x61, 0x01, 0x6A, 0x6C, 0xEA, -0x10, 0x22, 0x04, 0x04, 0x00, 0xF0, 0x11, 0x05, -0x80, 0x18, 0x0A, 0x49, 0x7D, 0x67, 0x50, 0xA3, -0x01, 0x6C, 0x96, 0xC3, 0x57, 0xC3, 0x51, 0xA3, -0x58, 0xC3, 0x26, 0x6A, 0x54, 0xC3, 0x03, 0x6A, -0x51, 0xCB, 0x0A, 0x93, 0x01, 0x6A, 0x4C, 0xEB, -0x1E, 0x23, 0x20, 0x58, 0xE0, 0xF0, 0x13, 0x61, -0x20, 0x59, 0xE0, 0xF0, 0x10, 0x61, 0xBD, 0x67, -0x56, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x89, 0xF2, 0x78, 0x9A, 0x62, 0x34, -0x77, 0xC5, 0x00, 0xF6, 0x62, 0x33, 0x7A, 0xC5, -0x0D, 0x6B, 0x74, 0xC5, 0x05, 0x6B, 0x98, 0xC5, -0x71, 0xCD, 0x82, 0x34, 0x00, 0x6B, 0x99, 0xC5, -0x89, 0xF2, 0x78, 0xDA, 0xD8, 0x10, 0x0A, 0x92, -0x02, 0x6C, 0x8C, 0xEA, 0x31, 0x22, 0xDD, 0x67, -0x20, 0x58, 0x96, 0xC6, 0x17, 0x60, 0x64, 0xF5, -0x8C, 0x40, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x84, 0x34, 0x51, 0xE4, 0xA2, 0xAC, -0x44, 0xF5, 0x0C, 0x48, 0x04, 0x30, 0x49, 0xE0, -0xB7, 0xC6, 0xA2, 0x35, 0xB8, 0xC6, 0xA2, 0xAA, -0x62, 0xCC, 0x62, 0xCA, 0xB9, 0xC6, 0xA2, 0x35, -0xBA, 0xC6, 0x04, 0x10, 0x16, 0x6A, 0x4B, 0xEA, -0x7D, 0x67, 0x57, 0xC3, 0x20, 0x59, 0x4E, 0x60, -0x64, 0xF5, 0x6C, 0x41, 0x30, 0xF0, 0x20, 0x6A, -0x64, 0x33, 0x2B, 0xF1, 0x18, 0x4A, 0x4D, 0xE3, -0x82, 0xAB, 0xBD, 0x67, 0x44, 0xF5, 0x0C, 0x49, -0x9B, 0xC5, 0x82, 0x34, 0x9C, 0xC5, 0x34, 0x10, -0x0A, 0x95, 0x08, 0x6B, 0xAC, 0xEB, 0x43, 0x23, -0xDD, 0x67, 0x20, 0x58, 0x96, 0xC6, 0x17, 0x60, -0x64, 0xF5, 0x8C, 0x40, 0x30, 0xF0, 0x20, 0x6B, -0x2B, 0xF1, 0x18, 0x4B, 0x84, 0x34, 0x71, 0xE4, -0xA2, 0xAC, 0x84, 0xF5, 0x0C, 0x48, 0x04, 0x30, -0x6D, 0xE0, 0xB7, 0xC6, 0xA2, 0x35, 0xB8, 0xC6, -0xA2, 0xAB, 0x42, 0xCC, 0x42, 0xCB, 0xB9, 0xC6, -0xA2, 0x35, 0xBA, 0xC6, 0x04, 0x10, 0x16, 0x6A, -0x4B, 0xEA, 0x7D, 0x67, 0x57, 0xC3, 0x20, 0x59, -0x19, 0x60, 0x64, 0xF5, 0x6C, 0x41, 0x30, 0xF0, -0x20, 0x6A, 0x64, 0x33, 0x2B, 0xF1, 0x18, 0x4A, -0x4D, 0xE3, 0x82, 0xAB, 0xBD, 0x67, 0x84, 0xF5, -0x0C, 0x49, 0x9B, 0xC5, 0x82, 0x34, 0x9C, 0xC5, -0x24, 0x31, 0x49, 0xE1, 0x82, 0xAA, 0x9D, 0xC5, -0x82, 0x34, 0x9E, 0xC5, 0x00, 0x6C, 0x82, 0xCB, -0x82, 0xCA, 0x04, 0x10, 0x16, 0x6A, 0x4B, 0xEA, -0xDD, 0x67, 0x5B, 0xC6, 0x0D, 0x6A, 0x7D, 0x67, -0x54, 0xC3, 0x09, 0x6A, 0x56, 0x10, 0x0A, 0x94, -0x56, 0x2C, 0x20, 0x58, 0x24, 0x60, 0x04, 0xF5, -0x6C, 0x40, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x64, 0x33, 0x4D, 0xE3, 0x80, 0xAB, -0xBD, 0x67, 0x16, 0xC5, 0x97, 0xC5, 0x82, 0x34, -0x98, 0xC5, 0x24, 0xF5, 0x8C, 0x40, 0x84, 0x34, -0x49, 0xE4, 0x80, 0xAA, 0x14, 0x30, 0xC7, 0x45, -0x99, 0xC5, 0x82, 0x34, 0x9A, 0xC5, 0x30, 0xF0, -0x20, 0x6C, 0xA3, 0xF1, 0x88, 0x9C, 0x21, 0x4E, -0xC0, 0xAE, 0x81, 0xE0, 0x80, 0xA0, 0xC0, 0xCB, -0xC0, 0xCA, 0x9B, 0xC5, 0x02, 0x10, 0x9D, 0x67, -0x16, 0xC4, 0x20, 0x59, 0x24, 0x60, 0x04, 0xF5, -0x6C, 0x41, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x64, 0x33, 0x4D, 0xE3, 0x80, 0xAB, -0xBD, 0x67, 0x3C, 0xC5, 0x9D, 0xC5, 0x82, 0x34, -0x9E, 0xC5, 0x24, 0xF5, 0x8C, 0x41, 0x84, 0x34, -0x49, 0xE4, 0x80, 0xAA, 0x34, 0x31, 0x9F, 0xC5, -0x82, 0x34, 0x20, 0xF0, 0x80, 0xC5, 0x30, 0xF0, -0x20, 0x6C, 0xA3, 0xF1, 0x88, 0x9C, 0x85, 0xE1, -0x80, 0xA1, 0x20, 0xF0, 0x81, 0xC5, 0x00, 0x6C, -0x80, 0xCB, 0x80, 0xCA, 0x02, 0x10, 0x5D, 0x67, -0x3C, 0xC2, 0x04, 0x6A, 0x7D, 0x67, 0x54, 0xC3, -0x0C, 0x6A, 0x51, 0xCB, 0x04, 0x10, 0x9D, 0x67, -0x04, 0x6A, 0x54, 0xC4, 0x71, 0xCC, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x05, 0x04, -0x40, 0xEA, 0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, -0x08, 0x63, 0x00, 0xEF, 0xF8, 0x63, 0x0F, 0x62, -0x0E, 0xD1, 0x0D, 0xD0, 0x00, 0x6A, 0x10, 0xD4, -0x01, 0x68, 0x62, 0x67, 0xA0, 0xA4, 0x0E, 0x25, -0xFF, 0x6D, 0x01, 0x4B, 0xAC, 0xEB, 0x01, 0x4A, -0x0B, 0x73, 0xAC, 0xEA, 0x03, 0x61, 0x01, 0x48, -0xAC, 0xE8, 0x00, 0x6B, 0x37, 0x72, 0x01, 0x4C, -0xF1, 0x61, 0x37, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0x2B, 0xF1, 0x18, 0x4B, 0x28, 0xF7, 0x90, 0xA3, -0x0F, 0x5C, 0x01, 0x4C, 0x01, 0x61, 0x00, 0x6C, -0x28, 0xF7, 0x90, 0xC3, 0x30, 0xF0, 0x21, 0x6B, -0x74, 0xF0, 0x68, 0xA3, 0x0B, 0x6D, 0x2F, 0x40, -0x70, 0x33, 0x0A, 0xD3, 0x0A, 0x94, 0xFF, 0x6B, -0x6C, 0xE9, 0x6C, 0xEC, 0x0A, 0xD4, 0x01, 0x6C, -0x13, 0xE4, 0xB8, 0xEC, 0x12, 0xEC, 0x91, 0xE2, -0x6C, 0xEC, 0x09, 0xD4, 0x00, 0x6A, 0x01, 0x4C, -0x0B, 0xD4, 0x08, 0xD2, 0x3C, 0x10, 0x08, 0x94, -0x0B, 0x6B, 0x0A, 0x95, 0x78, 0xEC, 0x9D, 0x67, -0x12, 0xEB, 0x4C, 0xEB, 0x0F, 0x6A, 0x2C, 0xEA, -0xAD, 0xEA, 0x08, 0x95, 0x52, 0xC4, 0x4F, 0x40, -0xAE, 0xEA, 0x07, 0x22, 0x10, 0x92, 0x00, 0xF0, -0x1E, 0x04, 0x6D, 0xE2, 0x00, 0xF0, 0x13, 0x02, -0x0F, 0x10, 0x10, 0x94, 0x09, 0x95, 0x00, 0xF0, -0x13, 0x02, 0x6D, 0xE4, 0xB1, 0xE2, 0x04, 0x10, -0xA0, 0xA3, 0x01, 0x4B, 0xA0, 0xC2, 0x01, 0x4A, -0x8A, 0xEA, 0xFA, 0x61, 0x0B, 0x92, 0x07, 0x10, -0xA0, 0xA3, 0x01, 0x4B, 0xA0, 0xC2, 0x01, 0x4A, -0x8A, 0xEA, 0xFA, 0x61, 0x0C, 0x6A, 0x9D, 0x67, -0x00, 0x6B, 0x4F, 0xCC, 0x70, 0xC4, 0x05, 0x95, -0x04, 0x94, 0x06, 0x96, 0x07, 0x97, 0xFF, 0x49, -0x80, 0x18, 0x20, 0x41, 0x08, 0x95, 0xFF, 0x6A, -0x4C, 0xE9, 0x01, 0x4D, 0x08, 0xD5, 0x08, 0x93, -0xFF, 0x6A, 0x4C, 0xEB, 0x03, 0xEB, 0xBF, 0x61, -0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x21, 0x6B, 0xA3, 0xF3, 0x50, 0x9A, 0x74, 0xF0, -0x68, 0x9B, 0x07, 0xD5, 0x08, 0xD6, 0x6C, 0xEA, -0x00, 0xF1, 0x00, 0x72, 0x09, 0xD7, 0x06, 0xD4, -0x0C, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x06, 0x95, -0x0A, 0xF0, 0x08, 0x48, 0x90, 0x67, 0x07, 0x06, -0x80, 0x18, 0xBF, 0x41, 0x90, 0x67, 0x80, 0x18, -0xF7, 0x42, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x61, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0xA0, 0xA4, 0xE7, 0xF3, 0x7B, 0xC2, -0xE7, 0xF3, 0x60, 0x9A, 0x20, 0x6C, 0x8C, 0xEB, -0x08, 0x23, 0xE7, 0xF3, 0xDB, 0xA2, 0x30, 0xF0, -0x20, 0x6C, 0xC4, 0xF2, 0x1C, 0x4C, 0x80, 0x18, -0x39, 0x43, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xF3, 0x63, 0x19, 0x62, 0x18, 0xD1, 0x17, 0xD0, -0xFF, 0x6A, 0x8C, 0xEA, 0x15, 0xD2, 0x40, 0xF0, -0x06, 0x03, 0x20, 0xF0, 0x1A, 0x02, 0x00, 0x6C, -0x80, 0xC2, 0x01, 0x4A, 0x6A, 0xEA, 0xFB, 0x61, -0x30, 0xF0, 0x21, 0x6B, 0x74, 0xF0, 0x04, 0x4B, -0x00, 0x68, 0x12, 0xD3, 0x14, 0xD0, 0x70, 0x10, -0x12, 0x92, 0x40, 0xA2, 0xFF, 0x72, 0x13, 0xD2, -0x0A, 0x61, 0x7D, 0x67, 0x09, 0xE3, 0x01, 0x6B, -0x6B, 0xEB, 0x20, 0xF0, 0x7A, 0xC2, 0x01, 0x48, -0xFF, 0x6A, 0x4C, 0xE8, 0x65, 0x10, 0x13, 0x92, -0x30, 0x69, 0x9D, 0x67, 0x38, 0xEA, 0x30, 0xF0, -0x21, 0x6A, 0x73, 0xF0, 0x00, 0x4A, 0x0E, 0x03, -0x0D, 0xE3, 0x04, 0x48, 0x12, 0xE9, 0x25, 0xE2, -0x47, 0x44, 0x45, 0x4A, 0x80, 0xA2, 0x82, 0xC3, -0x4A, 0xA9, 0x03, 0x6C, 0x43, 0xC3, 0x42, 0xA1, -0x44, 0xC3, 0x47, 0xA1, 0x4A, 0x32, 0x8C, 0xEA, -0x45, 0xC3, 0xFF, 0x6B, 0x6C, 0xE8, 0x30, 0xF0, -0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0xE7, 0xF3, -0xA0, 0x9B, 0xE7, 0xF7, 0x1D, 0x4C, 0xAC, 0xEC, -0x0E, 0x24, 0xE7, 0xF3, 0x64, 0x9B, 0x05, 0x5B, -0x0A, 0x61, 0xCA, 0xA9, 0xE2, 0xA1, 0x13, 0x95, -0x30, 0xF0, 0x20, 0x6C, 0xE4, 0xF2, 0x14, 0x4C, -0x04, 0xD2, 0x80, 0x18, 0x39, 0x43, 0x15, 0x92, -0x02, 0x6B, 0x6E, 0xEA, 0x21, 0x2A, 0x96, 0xA9, -0x0E, 0x03, 0x0D, 0xE3, 0x82, 0xC3, 0x96, 0xA9, -0x02, 0x48, 0x82, 0x34, 0x83, 0xC3, 0x56, 0xC9, -0xFF, 0x6A, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xE7, 0xF3, 0x80, 0x9A, -0x08, 0xF0, 0x00, 0x6B, 0x8C, 0xEB, 0x0C, 0x23, -0xE7, 0xF3, 0x44, 0x9A, 0x05, 0x5A, 0x08, 0x61, -0x13, 0x95, 0x30, 0xF0, 0x20, 0x6C, 0x04, 0xF3, -0x18, 0x4C, 0x00, 0x6E, 0x80, 0x18, 0x39, 0x43, -0x14, 0x94, 0xFF, 0x6A, 0x01, 0x4C, 0x4C, 0xEC, -0x12, 0x92, 0x14, 0xD4, 0x01, 0x4A, 0x12, 0xD2, -0x14, 0x93, 0x15, 0x94, 0x83, 0xEB, 0x8C, 0x61, +0x00, 0x6A, 0x10, 0xD4, 0x01, 0x68, 0x62, 0x67, +0xA0, 0xA4, 0x0E, 0x25, 0xFF, 0x6D, 0x01, 0x4B, +0xAC, 0xEB, 0x01, 0x4A, 0x0B, 0x73, 0xAC, 0xEA, +0x03, 0x61, 0x01, 0x48, 0xAC, 0xE8, 0x00, 0x6B, +0x37, 0x72, 0x01, 0x4C, 0xF1, 0x61, 0x37, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, +0x28, 0xF7, 0x90, 0xA3, 0x0F, 0x5C, 0x01, 0x4C, +0x01, 0x61, 0x00, 0x6C, 0x28, 0xF7, 0x90, 0xC3, +0x30, 0xF0, 0x21, 0x6B, 0x74, 0xF0, 0x68, 0xA3, +0x0B, 0x6D, 0x2F, 0x40, 0x70, 0x33, 0x0A, 0xD3, +0x0A, 0x94, 0xFF, 0x6B, 0x6C, 0xE9, 0x6C, 0xEC, +0x0A, 0xD4, 0x01, 0x6C, 0x13, 0xE4, 0xB8, 0xEC, +0x12, 0xEC, 0x91, 0xE2, 0x6C, 0xEC, 0x09, 0xD4, +0x00, 0x6A, 0x01, 0x4C, 0x0B, 0xD4, 0x08, 0xD2, +0x3C, 0x10, 0x08, 0x94, 0x0B, 0x6B, 0x0A, 0x95, +0x78, 0xEC, 0x9D, 0x67, 0x12, 0xEB, 0x4C, 0xEB, +0x0F, 0x6A, 0x2C, 0xEA, 0xAD, 0xEA, 0x08, 0x95, +0x52, 0xC4, 0x4F, 0x40, 0xAE, 0xEA, 0x07, 0x22, +0x10, 0x92, 0x00, 0xF0, 0x1E, 0x04, 0x6D, 0xE2, +0x00, 0xF0, 0x13, 0x02, 0x0F, 0x10, 0x10, 0x94, +0x09, 0x95, 0x00, 0xF0, 0x13, 0x02, 0x6D, 0xE4, +0xB1, 0xE2, 0x04, 0x10, 0xA0, 0xA3, 0x01, 0x4B, +0xA0, 0xC2, 0x01, 0x4A, 0x8A, 0xEA, 0xFA, 0x61, +0x0B, 0x92, 0x07, 0x10, 0xA0, 0xA3, 0x01, 0x4B, +0xA0, 0xC2, 0x01, 0x4A, 0x8A, 0xEA, 0xFA, 0x61, +0x0C, 0x6A, 0x9D, 0x67, 0x00, 0x6B, 0x4F, 0xCC, +0x70, 0xC4, 0x05, 0x95, 0x04, 0x94, 0x06, 0x96, +0x07, 0x97, 0xFF, 0x49, 0x80, 0x18, 0x20, 0x41, +0x08, 0x95, 0xFF, 0x6A, 0x4C, 0xE9, 0x01, 0x4D, +0x08, 0xD5, 0x08, 0x93, 0xFF, 0x6A, 0x4C, 0xEB, +0x03, 0xEB, 0xBF, 0x61, 0x0F, 0x97, 0x0E, 0x91, +0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x21, 0x6B, 0xA3, 0xF3, +0x50, 0x9A, 0x74, 0xF0, 0x68, 0x9B, 0x07, 0xD5, +0x08, 0xD6, 0x6C, 0xEA, 0x00, 0xF1, 0x00, 0x72, +0x09, 0xD7, 0x06, 0xD4, 0x0C, 0x61, 0x30, 0xF0, +0x20, 0x68, 0x06, 0x95, 0x0A, 0xF0, 0x08, 0x48, +0x90, 0x67, 0x07, 0x06, 0x80, 0x18, 0xCE, 0x41, +0x90, 0x67, 0x80, 0x18, 0x06, 0x43, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x61, 0xA4, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xA4, +0xE7, 0xF3, 0x7B, 0xC2, 0xE7, 0xF3, 0x60, 0x9A, +0x20, 0x6C, 0x8C, 0xEB, 0x08, 0x23, 0xE7, 0xF3, +0xDB, 0xA2, 0x30, 0xF0, 0x20, 0x6C, 0xE4, 0xF2, +0x00, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xF3, 0x63, 0x19, 0x62, +0x18, 0xD1, 0x17, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, +0x15, 0xD2, 0x40, 0xF0, 0x06, 0x03, 0x20, 0xF0, +0x1A, 0x02, 0x00, 0x6C, 0x80, 0xC2, 0x01, 0x4A, +0x6A, 0xEA, 0xFB, 0x61, 0x30, 0xF0, 0x21, 0x6B, +0x74, 0xF0, 0x04, 0x4B, 0x00, 0x68, 0x12, 0xD3, +0x14, 0xD0, 0x70, 0x10, 0x12, 0x92, 0x40, 0xA2, +0xFF, 0x72, 0x13, 0xD2, 0x0A, 0x61, 0x7D, 0x67, +0x09, 0xE3, 0x01, 0x6B, 0x6B, 0xEB, 0x20, 0xF0, +0x7A, 0xC2, 0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, +0x65, 0x10, 0x13, 0x92, 0x30, 0x69, 0x9D, 0x67, +0x38, 0xEA, 0x30, 0xF0, 0x21, 0x6A, 0x73, 0xF0, +0x00, 0x4A, 0x0E, 0x03, 0x0D, 0xE3, 0x04, 0x48, +0x12, 0xE9, 0x25, 0xE2, 0x47, 0x44, 0x45, 0x4A, +0x80, 0xA2, 0x82, 0xC3, 0x4A, 0xA9, 0x03, 0x6C, +0x43, 0xC3, 0x42, 0xA1, 0x44, 0xC3, 0x47, 0xA1, +0x4A, 0x32, 0x8C, 0xEA, 0x45, 0xC3, 0xFF, 0x6B, +0x6C, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, +0x18, 0x4B, 0xE7, 0xF3, 0xA0, 0x9B, 0xE7, 0xF7, +0x1D, 0x4C, 0xAC, 0xEC, 0x0E, 0x24, 0xE7, 0xF3, +0x64, 0x9B, 0x05, 0x5B, 0x0A, 0x61, 0xCA, 0xA9, +0xE2, 0xA1, 0x13, 0x95, 0x30, 0xF0, 0x20, 0x6C, +0xE4, 0xF2, 0x18, 0x4C, 0x04, 0xD2, 0x80, 0x18, +0x48, 0x43, 0x15, 0x92, 0x02, 0x6B, 0x6E, 0xEA, +0x21, 0x2A, 0x96, 0xA9, 0x0E, 0x03, 0x0D, 0xE3, +0x82, 0xC3, 0x96, 0xA9, 0x02, 0x48, 0x82, 0x34, +0x83, 0xC3, 0x56, 0xC9, 0xFF, 0x6A, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE7, 0xF3, 0x80, 0x9A, 0x08, 0xF0, 0x00, 0x6B, -0x8C, 0xEB, 0x2D, 0x23, 0xE7, 0xF3, 0x44, 0x9A, -0x05, 0x5A, 0x29, 0x61, 0x5D, 0x67, 0x20, 0xF0, -0xBA, 0xA2, 0x20, 0xF0, 0xDB, 0xA2, 0x20, 0xF0, -0xFC, 0xA2, 0x20, 0xF0, 0x5D, 0xA2, 0x7D, 0x67, -0x30, 0xF0, 0x20, 0x6C, 0x04, 0xD2, 0x20, 0xF0, -0x5E, 0xA3, 0x24, 0xF3, 0x10, 0x4C, 0x05, 0xD2, -0x20, 0xF0, 0x5F, 0xA3, 0x06, 0xD2, 0x40, 0xF0, -0x40, 0xA3, 0x07, 0xD2, 0x40, 0xF0, 0x41, 0xA3, -0x08, 0xD2, 0x40, 0xF0, 0x42, 0xA3, 0x09, 0xD2, -0x40, 0xF0, 0x43, 0xA3, 0x0A, 0xD2, 0x40, 0xF0, -0x44, 0xA3, 0x0B, 0xD2, 0x40, 0xF0, 0x45, 0xA3, -0x0C, 0xD2, 0x80, 0x18, 0x39, 0x43, 0x9D, 0x67, -0x2C, 0x6A, 0x20, 0xF0, 0x58, 0xC4, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x40, 0xF0, -0x06, 0xCC, 0x0E, 0x04, 0x40, 0xEA, 0x19, 0x97, -0x18, 0x91, 0x17, 0x90, 0x0D, 0x63, 0x00, 0xEF, -0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, -0x43, 0xA4, 0x62, 0xA4, 0xC0, 0xA4, 0x40, 0x32, -0x40, 0x32, 0x60, 0x33, 0x4D, 0xE3, 0x41, 0xA4, -0x0F, 0x6D, 0xCC, 0xED, 0x4D, 0xE3, 0x44, 0xA4, -0xD2, 0x36, 0x01, 0x5E, 0x00, 0xF6, 0x40, 0x32, -0x49, 0xE3, 0x08, 0xD2, 0xB4, 0x32, 0x06, 0xD2, -0x06, 0x93, 0xFF, 0x6A, 0x4C, 0xEB, 0x06, 0xD3, -0x03, 0x6A, 0x78, 0x67, 0x6F, 0xE2, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE7, 0xF3, -0x80, 0x9A, 0x07, 0xD3, 0x08, 0xF0, 0x00, 0x6B, -0x8C, 0xEB, 0x0B, 0x23, 0xE7, 0xF3, 0x44, 0x9A, -0x05, 0x5A, 0x07, 0x61, 0x08, 0x97, 0x30, 0xF0, -0x20, 0x6C, 0x64, 0xF3, 0x0C, 0x4C, 0x80, 0x18, -0x39, 0x43, 0x80, 0x18, 0x09, 0x42, 0x00, 0x68, -0x06, 0x91, 0x4E, 0x10, 0x08, 0x94, 0x01, 0x6A, -0x44, 0xE9, 0x8C, 0xEA, 0x1C, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x4D, 0xE0, -0x28, 0xF7, 0x2C, 0xC3, 0xE7, 0xF3, 0x80, 0x9A, -0xFF, 0x6B, 0x01, 0x48, 0x6C, 0xE8, 0x07, 0xF7, -0x01, 0x4B, 0x8C, 0xEB, 0x0C, 0x23, 0xE7, 0xF3, -0x44, 0x9A, 0x05, 0x5A, 0x08, 0x61, 0x30, 0xF0, -0x20, 0x6C, 0x84, 0xF3, 0x14, 0x4C, 0xB0, 0x67, -0xD1, 0x67, 0x80, 0x18, 0x39, 0x43, 0x07, 0x92, -0x4A, 0xE8, 0x04, 0x60, 0x06, 0x92, 0x1F, 0x4A, -0x2E, 0xEA, 0x23, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x8C, 0xEB, 0x0C, 0x23, 0xE7, 0xF3, 0x44, 0x9A, +0x05, 0x5A, 0x08, 0x61, 0x13, 0x95, 0x30, 0xF0, +0x20, 0x6C, 0x04, 0xF3, 0x1C, 0x4C, 0x00, 0x6E, +0x80, 0x18, 0x48, 0x43, 0x14, 0x94, 0xFF, 0x6A, +0x01, 0x4C, 0x4C, 0xEC, 0x12, 0x92, 0x14, 0xD4, +0x01, 0x4A, 0x12, 0xD2, 0x14, 0x93, 0x15, 0x94, +0x83, 0xEB, 0x8C, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE7, 0xF3, 0x80, 0x9A, -0x08, 0xF0, 0x00, 0x6B, 0x8C, 0xEB, 0x12, 0x23, -0xE7, 0xF3, 0x64, 0x9A, 0x05, 0x5B, 0x0E, 0x61, -0x28, 0xF7, 0xCC, 0xA2, 0x28, 0xF7, 0xED, 0xA2, -0x28, 0xF7, 0x4E, 0xA2, 0x30, 0xF0, 0x20, 0x6C, -0xA4, 0xF3, 0x14, 0x4C, 0xB0, 0x67, 0x04, 0xD2, -0x80, 0x18, 0x39, 0x43, 0x0D, 0x20, 0x07, 0x94, -0x00, 0x68, 0x80, 0x18, 0x58, 0x43, 0x80, 0x18, -0x09, 0x42, 0x01, 0x49, 0xFF, 0x6A, 0x4C, 0xE9, -0x06, 0x92, 0x20, 0x4A, 0x42, 0xE9, 0xAE, 0x61, -0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xF6, 0x63, 0x13, 0x62, -0x12, 0xD1, 0x11, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0xFF, 0x6A, 0x8C, 0xEA, 0x62, 0xF3, 0x84, 0x9B, -0x62, 0xF3, 0x04, 0x4B, 0x01, 0x72, 0x04, 0xD4, -0x81, 0x9B, 0x68, 0xA3, 0x05, 0xD4, 0x9D, 0x67, -0x78, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, -0x98, 0x9B, 0x42, 0xF3, 0x18, 0x4B, 0x07, 0xD4, -0x81, 0x9B, 0x68, 0xA3, 0x08, 0xD4, 0x9D, 0x67, -0x20, 0xF0, 0x64, 0xC4, 0x20, 0x61, 0x00, 0x68, -0x5D, 0x67, 0x0D, 0xE2, 0x5C, 0xA3, 0x0B, 0x5A, -0x01, 0x61, 0x0A, 0x6A, 0xFF, 0x6B, 0x6C, 0xEA, -0x02, 0x4A, 0x7D, 0x67, 0x5B, 0xCB, 0x0E, 0x6A, -0x20, 0xF0, 0x48, 0xC3, 0x01, 0x6A, 0x20, 0xF0, -0x4A, 0xC3, 0x09, 0xE3, 0x50, 0xA2, 0x0B, 0x95, -0x0C, 0x96, 0x20, 0xF0, 0x4B, 0xC3, 0x0A, 0x94, -0x0D, 0x97, 0x01, 0x48, 0x80, 0x18, 0x20, 0x41, -0x09, 0x70, 0xE2, 0x61, 0x71, 0x10, 0x08, 0x72, -0x37, 0x61, 0x20, 0xF0, 0x05, 0x04, 0x07, 0x00, -0x04, 0x01, 0x0E, 0xD4, 0x40, 0xA0, 0x0B, 0x5A, -0x01, 0x61, 0x0A, 0x6A, 0xFF, 0x6B, 0x4C, 0xEB, -0x9D, 0x67, 0x42, 0x43, 0x5B, 0xCC, 0x0E, 0x6A, -0x20, 0xF0, 0x48, 0xC4, 0x08, 0x6A, 0x20, 0xF0, -0x4A, 0xC4, 0x40, 0xA1, 0x20, 0xF0, 0x4B, 0xC4, -0x00, 0x6A, 0x0E, 0x10, 0x9D, 0x67, 0x55, 0xE4, -0xC0, 0xA1, 0x30, 0xF0, 0x20, 0x6C, 0x2B, 0xF1, -0x18, 0x4C, 0x91, 0xE2, 0xD1, 0xE4, 0x28, 0xF5, -0x88, 0xA4, 0x01, 0x4A, 0x20, 0xF0, 0x8C, 0xC5, -0xFF, 0x6C, 0x4C, 0xEC, 0x63, 0xEC, 0xEE, 0x61, -0x0A, 0x94, 0x0B, 0x95, 0x0C, 0x96, 0x0D, 0x97, -0x01, 0x48, 0x01, 0x49, 0x80, 0x18, 0x20, 0x41, -0x0E, 0x92, 0x4A, 0xE8, 0xCF, 0x61, 0x38, 0x10, -0x09, 0x72, 0x36, 0x61, 0x20, 0xF0, 0x05, 0x03, -0x07, 0x00, 0x04, 0x01, 0x0F, 0xD3, 0x40, 0xA0, -0x0B, 0x5A, 0x01, 0x61, 0x0A, 0x6A, 0xFF, 0x6B, -0x4C, 0xEB, 0x9D, 0x67, 0x42, 0x43, 0x5B, 0xCC, -0x0E, 0x6A, 0x20, 0xF0, 0x48, 0xC4, 0x09, 0x6A, -0x20, 0xF0, 0x4A, 0xC4, 0x40, 0xA1, 0x20, 0xF0, -0x4B, 0xC4, 0x00, 0x6A, 0x0E, 0x10, 0x9D, 0x67, -0x55, 0xE4, 0xC0, 0xA1, 0x30, 0xF0, 0x20, 0x6C, -0x2B, 0xF1, 0x18, 0x4C, 0x91, 0xE2, 0xD1, 0xE4, -0x68, 0xF5, 0x9C, 0xA4, 0x01, 0x4A, 0x20, 0xF0, -0x8C, 0xC5, 0xFF, 0x6C, 0x4C, 0xEC, 0x63, 0xEC, -0xEE, 0x61, 0x0A, 0x94, 0x0B, 0x95, 0x0C, 0x96, -0x0D, 0x97, 0x01, 0x48, 0x01, 0x49, 0x80, 0x18, -0x20, 0x41, 0x0F, 0x92, 0x4A, 0xE8, 0xCF, 0x61, -0x13, 0x97, 0x12, 0x91, 0x11, 0x90, 0x0A, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x44, 0x67, 0x65, 0xA2, -0x02, 0x6D, 0x81, 0xA4, 0xAC, 0xEB, 0x03, 0x23, -0x80, 0x18, 0x0B, 0x44, 0x3D, 0x10, 0x01, 0x74, -0x22, 0xA2, 0x04, 0xA2, 0x43, 0xA2, 0x07, 0x61, -0x30, 0xF0, 0x20, 0x6C, 0xC4, 0xF3, 0x1C, 0x4C, -0x80, 0x18, 0xF7, 0x42, 0x31, 0x10, 0x10, 0x30, -0x08, 0x74, 0x4D, 0xE8, 0x0E, 0x61, 0x30, 0xF0, -0x20, 0x6C, 0xE4, 0xF3, 0x08, 0x4C, 0x80, 0x18, -0xF7, 0x42, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x45, 0xE1, 0x28, 0xF5, 0x08, 0xC1, -0x1F, 0x10, 0x09, 0x74, 0x0E, 0x61, 0x30, 0xF0, -0x20, 0x6C, 0x04, 0xF4, 0x08, 0x4C, 0x80, 0x18, -0xF7, 0x42, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x45, 0xE1, 0x68, 0xF5, 0x1C, 0xC1, -0x0F, 0x10, 0x0A, 0x74, 0x0D, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF3, 0xF4, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0x04, 0xF4, 0x18, 0x4C, 0xF9, 0x6D, -0x28, 0xF3, 0x01, 0x6E, 0x80, 0x18, 0x39, 0x43, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0xFF, 0x6A, 0x4C, 0xEC, 0x30, 0x6B, 0x78, 0xEC, -0x30, 0xF0, 0x21, 0x6E, 0x73, 0xF0, 0x00, 0x4E, -0xAC, 0xEA, 0x05, 0x6D, 0x12, 0xEB, 0x6D, 0xE6, -0xDD, 0x67, 0xAF, 0xCE, 0x0F, 0x6D, 0xB0, 0xC6, -0x92, 0xC6, 0x53, 0xC6, 0x5B, 0xA3, 0x07, 0x97, -0x04, 0x94, 0x54, 0xC6, 0x5C, 0xA3, 0x55, 0xC6, -0x5D, 0xA3, 0x56, 0xC6, 0x05, 0x95, 0x06, 0x96, -0x80, 0x18, 0x20, 0x41, 0x09, 0x97, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, -0x0E, 0xD1, 0x0D, 0xD0, 0x14, 0x92, 0x15, 0x93, -0x16, 0x90, 0x0A, 0xD2, 0xFF, 0x6A, 0x1A, 0x65, -0xAC, 0xEA, 0x08, 0xD2, 0x58, 0x67, 0xCC, 0xEA, -0x17, 0x91, 0x1A, 0x65, 0x0A, 0x92, 0xFF, 0xF7, -0x1F, 0x6D, 0xAC, 0xEF, 0xAC, 0xEA, 0xAC, 0xEB, -0xAC, 0xE8, 0xAC, 0xE9, 0x30, 0xF0, 0x20, 0x6D, -0x2B, 0xF1, 0x18, 0x4D, 0xE7, 0xF3, 0xC0, 0x9D, -0x0A, 0xD2, 0x8C, 0xEE, 0x36, 0x26, 0xE7, 0xF3, -0x84, 0x9D, 0x05, 0x6A, 0x4E, 0xEC, 0x31, 0x2C, -0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF3, 0x90, 0x9C, -0x28, 0xF7, 0xB0, 0x9D, 0x7F, 0x4A, 0x7C, 0x4A, -0xAC, 0xEC, 0x4E, 0xEC, 0x26, 0x2C, 0x9D, 0x67, -0x47, 0x44, 0x19, 0x4A, 0x40, 0xA2, 0xF4, 0xC4, -0xE2, 0x37, 0x52, 0xC4, 0x58, 0x67, 0x53, 0xC4, -0x47, 0x44, 0x21, 0x4A, 0x40, 0xA2, 0xF5, 0xC4, -0x56, 0xC4, 0x0A, 0x94, 0x82, 0x32, 0x9D, 0x67, -0x57, 0xC4, 0x02, 0x6A, 0x4B, 0xEA, 0x78, 0xC4, -0x1A, 0xC4, 0x3C, 0xC4, 0x50, 0xC4, 0x62, 0x33, -0x02, 0x30, 0x22, 0x31, 0x0C, 0x6A, 0x79, 0xC4, -0x1B, 0xC4, 0x3D, 0xC4, 0x4F, 0xCC, 0x05, 0x95, -0x04, 0x94, 0x06, 0x96, 0x07, 0x97, 0x80, 0x18, -0x20, 0x41, 0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, -0x08, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x40, 0xA4, 0x70, 0x69, -0x30, 0xF0, 0x20, 0x68, 0x06, 0xD2, 0x81, 0xA4, -0x2B, 0xF1, 0x18, 0x48, 0x05, 0xD4, 0x05, 0x92, -0x9E, 0x33, 0x07, 0xD3, 0x8C, 0xE9, 0x7D, 0x67, -0x03, 0x6C, 0x8C, 0xEA, 0x87, 0x43, 0x11, 0x4C, -0x60, 0xA4, 0x32, 0x31, 0x04, 0xD2, 0x9D, 0x67, -0x09, 0xE1, 0x07, 0xF7, 0x6E, 0xC2, 0x67, 0x44, -0x09, 0x4B, 0x80, 0xA3, 0x07, 0xF7, 0x90, 0xC2, -0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF4, 0x04, 0x4C, -0x80, 0x18, 0x39, 0x43, 0x5D, 0x67, 0x67, 0x42, -0x15, 0x4B, 0x40, 0xA3, 0x07, 0x93, 0x07, 0xF7, -0x57, 0xC0, 0x21, 0x23, 0x07, 0xF7, 0x74, 0xA0, -0x01, 0x6A, 0x44, 0xE9, 0x6D, 0xEA, 0x07, 0xF7, -0x54, 0xC0, 0xE7, 0xF3, 0x40, 0x98, 0x10, 0x6B, -0x6C, 0xEA, 0x0D, 0x22, 0xE7, 0xF3, 0x44, 0x98, -0x05, 0x5A, 0x09, 0x61, 0x04, 0x96, 0x06, 0x97, -0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF4, 0x10, 0x4C, -0xB1, 0x67, 0x80, 0x18, 0x39, 0x43, 0x05, 0x94, -0x0C, 0x6D, 0x8C, 0xED, 0xAA, 0x35, 0x91, 0x67, -0x80, 0x18, 0x5B, 0x4D, 0x23, 0x10, 0x07, 0xF7, -0x74, 0xA0, 0x01, 0x6A, 0x44, 0xE9, 0x4F, 0xEA, -0x6C, 0xEA, 0x07, 0xF7, 0x54, 0xC0, 0xE7, 0xF3, +0x08, 0xF0, 0x00, 0x6B, 0x8C, 0xEB, 0x2D, 0x23, +0xE7, 0xF3, 0x44, 0x9A, 0x05, 0x5A, 0x29, 0x61, +0x5D, 0x67, 0x20, 0xF0, 0xBA, 0xA2, 0x20, 0xF0, +0xDB, 0xA2, 0x20, 0xF0, 0xFC, 0xA2, 0x20, 0xF0, +0x5D, 0xA2, 0x7D, 0x67, 0x30, 0xF0, 0x20, 0x6C, +0x04, 0xD2, 0x20, 0xF0, 0x5E, 0xA3, 0x24, 0xF3, +0x14, 0x4C, 0x05, 0xD2, 0x20, 0xF0, 0x5F, 0xA3, +0x06, 0xD2, 0x40, 0xF0, 0x40, 0xA3, 0x07, 0xD2, +0x40, 0xF0, 0x41, 0xA3, 0x08, 0xD2, 0x40, 0xF0, +0x42, 0xA3, 0x09, 0xD2, 0x40, 0xF0, 0x43, 0xA3, +0x0A, 0xD2, 0x40, 0xF0, 0x44, 0xA3, 0x0B, 0xD2, +0x40, 0xF0, 0x45, 0xA3, 0x0C, 0xD2, 0x80, 0x18, +0x48, 0x43, 0x9D, 0x67, 0x2C, 0x6A, 0x20, 0xF0, +0x58, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x5C, 0x9A, 0x40, 0xF0, 0x06, 0xCC, 0x0E, 0x04, +0x40, 0xEA, 0x19, 0x97, 0x18, 0x91, 0x17, 0x90, +0x0D, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x43, 0xA4, 0x62, 0xA4, +0xC0, 0xA4, 0x40, 0x32, 0x40, 0x32, 0x60, 0x33, +0x4D, 0xE3, 0x41, 0xA4, 0x0F, 0x6D, 0xCC, 0xED, +0x4D, 0xE3, 0x44, 0xA4, 0xD2, 0x36, 0x01, 0x5E, +0x00, 0xF6, 0x40, 0x32, 0x49, 0xE3, 0x08, 0xD2, +0xB4, 0x32, 0x06, 0xD2, 0x06, 0x93, 0xFF, 0x6A, +0x4C, 0xEB, 0x06, 0xD3, 0x03, 0x6A, 0x78, 0x67, +0x6F, 0xE2, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0xE7, 0xF3, 0x80, 0x9A, 0x07, 0xD3, +0x08, 0xF0, 0x00, 0x6B, 0x8C, 0xEB, 0x0B, 0x23, +0xE7, 0xF3, 0x44, 0x9A, 0x05, 0x5A, 0x07, 0x61, +0x08, 0x97, 0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF3, +0x10, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x80, 0x18, +0x18, 0x42, 0x00, 0x68, 0x06, 0x91, 0x4E, 0x10, +0x08, 0x94, 0x01, 0x6A, 0x44, 0xE9, 0x8C, 0xEA, +0x1C, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0x4D, 0xE0, 0x28, 0xF7, 0x2C, 0xC3, +0xE7, 0xF3, 0x80, 0x9A, 0xFF, 0x6B, 0x01, 0x48, +0x6C, 0xE8, 0x07, 0xF7, 0x01, 0x4B, 0x8C, 0xEB, +0x0C, 0x23, 0xE7, 0xF3, 0x44, 0x9A, 0x05, 0x5A, +0x08, 0x61, 0x30, 0xF0, 0x20, 0x6C, 0x84, 0xF3, +0x18, 0x4C, 0xB0, 0x67, 0xD1, 0x67, 0x80, 0x18, +0x48, 0x43, 0x07, 0x92, 0x4A, 0xE8, 0x04, 0x60, +0x06, 0x92, 0x1F, 0x4A, 0x2E, 0xEA, 0x23, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0xE7, 0xF3, 0x80, 0x9A, 0x08, 0xF0, 0x00, 0x6B, +0x8C, 0xEB, 0x12, 0x23, 0xE7, 0xF3, 0x64, 0x9A, +0x05, 0x5B, 0x0E, 0x61, 0x28, 0xF7, 0xCC, 0xA2, +0x28, 0xF7, 0xED, 0xA2, 0x28, 0xF7, 0x4E, 0xA2, +0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF3, 0x18, 0x4C, +0xB0, 0x67, 0x04, 0xD2, 0x80, 0x18, 0x48, 0x43, +0x0D, 0x20, 0x07, 0x94, 0x00, 0x68, 0x80, 0x18, +0x67, 0x43, 0x80, 0x18, 0x18, 0x42, 0x01, 0x49, +0xFF, 0x6A, 0x4C, 0xE9, 0x06, 0x92, 0x20, 0x4A, +0x42, 0xE9, 0xAE, 0x61, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF6, 0x63, 0x13, 0x62, 0x12, 0xD1, 0x11, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x6A, 0x8C, 0xEA, +0x62, 0xF3, 0x84, 0x9B, 0x62, 0xF3, 0x04, 0x4B, +0x01, 0x72, 0x04, 0xD4, 0x81, 0x9B, 0x68, 0xA3, +0x05, 0xD4, 0x9D, 0x67, 0x78, 0xC4, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF3, 0x98, 0x9B, 0x42, 0xF3, +0x18, 0x4B, 0x07, 0xD4, 0x81, 0x9B, 0x68, 0xA3, +0x08, 0xD4, 0x9D, 0x67, 0x20, 0xF0, 0x64, 0xC4, +0x20, 0x61, 0x00, 0x68, 0x5D, 0x67, 0x0D, 0xE2, +0x5C, 0xA3, 0x0B, 0x5A, 0x01, 0x61, 0x0A, 0x6A, +0xFF, 0x6B, 0x6C, 0xEA, 0x02, 0x4A, 0x7D, 0x67, +0x5B, 0xCB, 0x0E, 0x6A, 0x20, 0xF0, 0x48, 0xC3, +0x01, 0x6A, 0x20, 0xF0, 0x4A, 0xC3, 0x09, 0xE3, +0x50, 0xA2, 0x0B, 0x95, 0x0C, 0x96, 0x20, 0xF0, +0x4B, 0xC3, 0x0A, 0x94, 0x0D, 0x97, 0x01, 0x48, +0x80, 0x18, 0x20, 0x41, 0x09, 0x70, 0xE2, 0x61, +0x71, 0x10, 0x08, 0x72, 0x37, 0x61, 0x20, 0xF0, +0x05, 0x04, 0x07, 0x00, 0x04, 0x01, 0x0E, 0xD4, +0x40, 0xA0, 0x0B, 0x5A, 0x01, 0x61, 0x0A, 0x6A, +0xFF, 0x6B, 0x4C, 0xEB, 0x9D, 0x67, 0x42, 0x43, +0x5B, 0xCC, 0x0E, 0x6A, 0x20, 0xF0, 0x48, 0xC4, +0x08, 0x6A, 0x20, 0xF0, 0x4A, 0xC4, 0x40, 0xA1, +0x20, 0xF0, 0x4B, 0xC4, 0x00, 0x6A, 0x0E, 0x10, +0x9D, 0x67, 0x55, 0xE4, 0xC0, 0xA1, 0x30, 0xF0, +0x20, 0x6C, 0x2B, 0xF1, 0x18, 0x4C, 0x91, 0xE2, +0xD1, 0xE4, 0x28, 0xF5, 0x88, 0xA4, 0x01, 0x4A, +0x20, 0xF0, 0x8C, 0xC5, 0xFF, 0x6C, 0x4C, 0xEC, +0x63, 0xEC, 0xEE, 0x61, 0x0A, 0x94, 0x0B, 0x95, +0x0C, 0x96, 0x0D, 0x97, 0x01, 0x48, 0x01, 0x49, +0x80, 0x18, 0x20, 0x41, 0x0E, 0x92, 0x4A, 0xE8, +0xCF, 0x61, 0x38, 0x10, 0x09, 0x72, 0x36, 0x61, +0x20, 0xF0, 0x05, 0x03, 0x07, 0x00, 0x04, 0x01, +0x0F, 0xD3, 0x40, 0xA0, 0x0B, 0x5A, 0x01, 0x61, +0x0A, 0x6A, 0xFF, 0x6B, 0x4C, 0xEB, 0x9D, 0x67, +0x42, 0x43, 0x5B, 0xCC, 0x0E, 0x6A, 0x20, 0xF0, +0x48, 0xC4, 0x09, 0x6A, 0x20, 0xF0, 0x4A, 0xC4, +0x40, 0xA1, 0x20, 0xF0, 0x4B, 0xC4, 0x00, 0x6A, +0x0E, 0x10, 0x9D, 0x67, 0x55, 0xE4, 0xC0, 0xA1, +0x30, 0xF0, 0x20, 0x6C, 0x2B, 0xF1, 0x18, 0x4C, +0x91, 0xE2, 0xD1, 0xE4, 0x68, 0xF5, 0x9C, 0xA4, +0x01, 0x4A, 0x20, 0xF0, 0x8C, 0xC5, 0xFF, 0x6C, +0x4C, 0xEC, 0x63, 0xEC, 0xEE, 0x61, 0x0A, 0x94, +0x0B, 0x95, 0x0C, 0x96, 0x0D, 0x97, 0x01, 0x48, +0x01, 0x49, 0x80, 0x18, 0x20, 0x41, 0x0F, 0x92, +0x4A, 0xE8, 0xCF, 0x61, 0x13, 0x97, 0x12, 0x91, +0x11, 0x90, 0x0A, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x44, 0x67, 0x65, 0xA2, 0x02, 0x6D, 0x81, 0xA4, +0xAC, 0xEB, 0x03, 0x23, 0x80, 0x18, 0x1A, 0x44, +0x3D, 0x10, 0x01, 0x74, 0x22, 0xA2, 0x04, 0xA2, +0x43, 0xA2, 0x07, 0x61, 0x30, 0xF0, 0x20, 0x6C, +0xE4, 0xF3, 0x00, 0x4C, 0x80, 0x18, 0x06, 0x43, +0x31, 0x10, 0x10, 0x30, 0x08, 0x74, 0x4D, 0xE8, +0x0E, 0x61, 0x30, 0xF0, 0x20, 0x6C, 0xE4, 0xF3, +0x0C, 0x4C, 0x80, 0x18, 0x06, 0x43, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x45, 0xE1, +0x28, 0xF5, 0x08, 0xC1, 0x1F, 0x10, 0x09, 0x74, +0x0E, 0x61, 0x30, 0xF0, 0x20, 0x6C, 0x04, 0xF4, +0x0C, 0x4C, 0x80, 0x18, 0x06, 0x43, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x45, 0xE1, +0x68, 0xF5, 0x1C, 0xC1, 0x0F, 0x10, 0x0A, 0x74, +0x0D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, +0xF4, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x04, 0xF4, +0x1C, 0x4C, 0xF9, 0x6D, 0x28, 0xF3, 0x01, 0x6E, +0x80, 0x18, 0x48, 0x43, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0x30, 0x6B, 0x78, 0xEC, 0x30, 0xF0, 0x21, 0x6E, +0x73, 0xF0, 0x00, 0x4E, 0xAC, 0xEA, 0x05, 0x6D, +0x12, 0xEB, 0x6D, 0xE6, 0xDD, 0x67, 0xAF, 0xCE, +0x0F, 0x6D, 0xB0, 0xC6, 0x92, 0xC6, 0x53, 0xC6, +0x5B, 0xA3, 0x07, 0x97, 0x04, 0x94, 0x54, 0xC6, +0x5C, 0xA3, 0x55, 0xC6, 0x5D, 0xA3, 0x56, 0xC6, +0x05, 0x95, 0x06, 0x96, 0x80, 0x18, 0x20, 0x41, +0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, +0x14, 0x92, 0x15, 0x93, 0x16, 0x90, 0x0A, 0xD2, +0xFF, 0x6A, 0x1A, 0x65, 0xAC, 0xEA, 0x08, 0xD2, +0x58, 0x67, 0xCC, 0xEA, 0x17, 0x91, 0x1A, 0x65, +0x0A, 0x92, 0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEF, +0xAC, 0xEA, 0xAC, 0xEB, 0xAC, 0xE8, 0xAC, 0xE9, +0x30, 0xF0, 0x20, 0x6D, 0x2B, 0xF1, 0x18, 0x4D, +0xE7, 0xF3, 0xC0, 0x9D, 0x0A, 0xD2, 0x8C, 0xEE, +0x36, 0x26, 0xE7, 0xF3, 0x84, 0x9D, 0x05, 0x6A, +0x4E, 0xEC, 0x31, 0x2C, 0x30, 0xF0, 0x20, 0x6C, +0xA3, 0xF3, 0x90, 0x9C, 0x28, 0xF7, 0xB0, 0x9D, +0x7F, 0x4A, 0x7C, 0x4A, 0xAC, 0xEC, 0x4E, 0xEC, +0x26, 0x2C, 0x9D, 0x67, 0x47, 0x44, 0x19, 0x4A, +0x40, 0xA2, 0xF4, 0xC4, 0xE2, 0x37, 0x52, 0xC4, +0x58, 0x67, 0x53, 0xC4, 0x47, 0x44, 0x21, 0x4A, +0x40, 0xA2, 0xF5, 0xC4, 0x56, 0xC4, 0x0A, 0x94, +0x82, 0x32, 0x9D, 0x67, 0x57, 0xC4, 0x02, 0x6A, +0x4B, 0xEA, 0x78, 0xC4, 0x1A, 0xC4, 0x3C, 0xC4, +0x50, 0xC4, 0x62, 0x33, 0x02, 0x30, 0x22, 0x31, +0x0C, 0x6A, 0x79, 0xC4, 0x1B, 0xC4, 0x3D, 0xC4, +0x4F, 0xCC, 0x05, 0x95, 0x04, 0x94, 0x06, 0x96, +0x07, 0x97, 0x80, 0x18, 0x20, 0x41, 0x0F, 0x97, +0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x40, 0xA4, 0x70, 0x69, 0x30, 0xF0, 0x20, 0x68, +0x06, 0xD2, 0x81, 0xA4, 0x2B, 0xF1, 0x18, 0x48, +0x05, 0xD4, 0x05, 0x92, 0x9E, 0x33, 0x07, 0xD3, +0x8C, 0xE9, 0x7D, 0x67, 0x03, 0x6C, 0x8C, 0xEA, +0x87, 0x43, 0x11, 0x4C, 0x60, 0xA4, 0x32, 0x31, +0x04, 0xD2, 0x9D, 0x67, 0x09, 0xE1, 0x07, 0xF7, +0x6E, 0xC2, 0x67, 0x44, 0x09, 0x4B, 0x80, 0xA3, +0x07, 0xF7, 0x90, 0xC2, 0x30, 0xF0, 0x20, 0x6C, +0x44, 0xF4, 0x08, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x5D, 0x67, 0x67, 0x42, 0x15, 0x4B, 0x40, 0xA3, +0x07, 0x93, 0x07, 0xF7, 0x57, 0xC0, 0x21, 0x23, +0x07, 0xF7, 0x74, 0xA0, 0x01, 0x6A, 0x44, 0xE9, +0x6D, 0xEA, 0x07, 0xF7, 0x54, 0xC0, 0xE7, 0xF3, 0x40, 0x98, 0x10, 0x6B, 0x6C, 0xEA, 0x0D, 0x22, 0xE7, 0xF3, 0x44, 0x98, 0x05, 0x5A, 0x09, 0x61, 0x04, 0x96, 0x06, 0x97, 0x30, 0xF0, 0x20, 0x6C, -0x64, 0xF4, 0x04, 0x4C, 0xB1, 0x67, 0x80, 0x18, -0x39, 0x43, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x45, 0xE1, 0x01, 0x6A, 0x4B, 0xEA, -0x07, 0xF7, 0x4E, 0xC1, 0x0B, 0x97, 0x0A, 0x91, -0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, -0x40, 0xA4, 0x30, 0x68, 0x20, 0x6B, 0x18, 0xEA, -0x06, 0xD2, 0x30, 0xF0, 0x21, 0x6A, 0x73, 0xF0, -0x00, 0x4A, 0x24, 0x67, 0x12, 0xE8, 0x01, 0xE2, -0x58, 0xA0, 0x0A, 0xD2, 0x42, 0xA4, 0xBA, 0xA0, -0x58, 0xC0, 0x43, 0xA4, 0x01, 0x6C, 0x6C, 0xEA, -0xBF, 0x4B, 0xAC, 0xEB, 0x4D, 0xEB, 0x7A, 0xC0, -0x43, 0xA1, 0xA8, 0xA0, 0x4C, 0xEC, 0x02, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0x8D, 0xEA, 0x5A, 0xC0, -0x83, 0xA1, 0x02, 0x6B, 0x6C, 0xEC, 0xFB, 0x4B, -0x4C, 0xEB, 0x8D, 0xEB, 0x7A, 0xC0, 0x83, 0xA1, -0x40, 0x6A, 0x4C, 0xEC, 0x80, 0x4A, 0xFF, 0x4A, -0x6C, 0xEA, 0x8D, 0xEA, 0x5A, 0xC0, 0x83, 0xA1, -0x7F, 0x6B, 0xAC, 0xEB, 0x9E, 0x34, 0x9C, 0x34, -0x8D, 0xEB, 0x68, 0xC0, 0x83, 0xA1, 0x09, 0xD4, -0x64, 0xA1, 0x7E, 0xC0, 0x65, 0xA1, 0x07, 0xD3, -0x86, 0xA1, 0x04, 0x6B, 0x8C, 0xEB, 0x6B, 0x33, -0x08, 0xD4, 0x20, 0xF0, 0x6E, 0xC0, 0x20, 0x6B, -0x6C, 0xEA, 0x22, 0x22, 0x06, 0x94, 0x80, 0x18, -0x40, 0x47, 0xC7, 0xA0, 0x03, 0x6C, 0xB8, 0xA0, -0xCA, 0x36, 0x8C, 0xEE, 0x06, 0x94, 0xFF, 0x6A, -0x4C, 0xEE, 0x80, 0x18, 0xED, 0x50, 0x30, 0xF0, -0x21, 0x6A, 0x12, 0xF5, 0x58, 0x9A, 0x20, 0x6B, -0x6C, 0xEA, 0x0E, 0x22, 0xE7, 0xA0, 0x03, 0x6C, -0x06, 0x95, 0xEA, 0x37, 0xD8, 0xA0, 0x8C, 0xEF, -0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF4, -0x1C, 0x4C, 0x4C, 0xEF, 0x80, 0x18, 0x39, 0x43, -0x30, 0xF0, 0x21, 0x6A, 0x12, 0xF5, 0x58, 0x9A, -0x20, 0x6B, 0x6C, 0xEA, 0x0E, 0x22, 0x5E, 0xA0, -0xD8, 0xA0, 0xE3, 0xA1, 0x04, 0xD2, 0x20, 0xF0, -0x4E, 0xA0, 0x06, 0x95, 0x30, 0xF0, 0x20, 0x6C, -0x84, 0xF4, 0x14, 0x4C, 0x05, 0xD2, 0x80, 0x18, -0x39, 0x43, 0x09, 0x93, 0x08, 0x6A, 0x6C, 0xEA, -0x19, 0x22, 0x30, 0xF0, 0x21, 0x6A, 0x12, 0xF5, -0x58, 0x9A, 0x08, 0x94, 0x20, 0x6B, 0x03, 0x69, -0x6C, 0xEA, 0x8C, 0xE9, 0x09, 0x22, 0x06, 0x95, -0x07, 0x96, 0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF4, -0x14, 0x4C, 0xF1, 0x67, 0x80, 0x18, 0x39, 0x43, -0x06, 0x94, 0x07, 0x95, 0x00, 0x6E, 0xF1, 0x67, -0x80, 0x18, 0x90, 0x4D, 0xFA, 0xA0, 0xD8, 0xA0, -0x06, 0x94, 0x0A, 0x95, 0x01, 0x6A, 0xF6, 0x37, -0x4C, 0xEF, 0x80, 0x18, 0x8F, 0x4C, 0x0F, 0x97, -0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x03, 0xA4, -0x44, 0xA4, 0xC0, 0xA4, 0x00, 0x30, 0x00, 0x30, -0x00, 0xF6, 0x40, 0x32, 0xA5, 0xA4, 0xE6, 0xA4, -0x0D, 0xEA, 0x01, 0xA4, 0x82, 0xA4, 0x30, 0xF0, -0x20, 0x6B, 0x0D, 0xEA, 0x80, 0x34, 0x2B, 0xF1, -0x18, 0x4B, 0x8D, 0xEA, 0xE7, 0xF3, 0x40, 0xDB, -0x28, 0xF7, 0xD1, 0xC3, 0x0A, 0x26, 0x01, 0x6C, -0x4C, 0xEC, 0x07, 0x24, 0x28, 0xF7, 0xB2, 0xC3, -0x28, 0xF7, 0xF3, 0xC3, 0x02, 0x25, 0x80, 0x18, -0x5C, 0x52, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xA4, -0x30, 0xF0, 0x20, 0x6D, 0xA3, 0xF3, 0x58, 0x9A, -0xA3, 0xF3, 0xBC, 0x9D, 0x0C, 0x33, 0x49, 0xE3, -0x03, 0x4C, 0xAD, 0xE3, 0xA0, 0xA4, 0x01, 0x4C, -0xA0, 0xC2, 0x01, 0x4A, 0x6A, 0xEA, 0xFA, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0xE7, 0xF3, 0x60, 0x9A, 0x20, 0x6C, 0x8C, 0xEB, -0x11, 0x23, 0xE7, 0xF3, 0x44, 0x9A, 0x05, 0x5A, -0x0D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, -0x58, 0x9A, 0x0C, 0x33, 0x30, 0xF0, 0x20, 0x6C, -0x49, 0xE3, 0xA0, 0x9A, 0xC4, 0xF4, 0x10, 0x4C, -0x80, 0x18, 0x39, 0x43, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF3, 0x58, 0x9A, 0x0C, 0x33, 0x30, 0xF0, -0x20, 0x6C, 0x49, 0xE3, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF3, 0x60, 0x9B, 0x40, 0x9A, 0x2B, 0xF1, -0x18, 0x4C, 0xFF, 0x6E, 0x6C, 0xEA, 0x87, 0xF3, -0x65, 0xA4, 0x87, 0xF3, 0x8A, 0xA4, 0xAF, 0x43, -0xCC, 0xED, 0x02, 0x5D, 0x04, 0x61, 0x01, 0x74, -0x02, 0x60, 0x02, 0x74, 0x11, 0x61, 0x10, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x44, 0x9A, -0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF3, 0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF0, 0x54, 0x9A, 0x60, 0xDA, 0xF0, 0x17, -0x03, 0x73, 0x13, 0x61, 0x00, 0xF4, 0x00, 0x5A, -0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, -0x44, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF3, 0x6C, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF0, 0x54, 0x9A, 0x60, 0xDA, -0xF0, 0x17, 0x90, 0x67, 0x80, 0x18, 0xE0, 0x4D, -0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x20, 0xA4, 0x30, 0x6E, 0x30, 0xF0, 0x21, 0x6A, -0xD8, 0xE9, 0x73, 0xF0, 0x00, 0x4A, 0x61, 0xA4, -0x7E, 0x33, 0x68, 0x33, 0x12, 0xE8, 0x01, 0xE2, -0xAC, 0xA0, 0x05, 0x6A, 0x4B, 0xEA, 0xAC, 0xEA, -0x6D, 0xEA, 0x4C, 0xC0, 0xA1, 0xA4, 0x60, 0x6B, -0xAC, 0xEB, 0x76, 0x33, 0x06, 0xD3, 0xE8, 0xA0, -0x1F, 0x6B, 0xAC, 0xEB, 0x20, 0x6D, 0xAB, 0xED, -0xEC, 0xED, 0x6D, 0xED, 0xA8, 0xC0, 0xE2, 0xA4, -0x41, 0x6B, 0x6B, 0xEB, 0xFE, 0x37, 0xF8, 0x37, -0xAC, 0xEB, 0xED, 0xEB, 0x68, 0xC0, 0xA2, 0xA4, -0x40, 0x6F, 0xEC, 0xED, 0xBA, 0x35, 0xB4, 0x37, -0x21, 0x6D, 0xAB, 0xED, 0x6C, 0xED, 0xED, 0xED, -0xA8, 0xC0, 0xA2, 0xA4, 0x03, 0x6B, 0xCC, 0xED, -0xCC, 0x4E, 0xB2, 0x35, 0xCC, 0xEA, 0xAD, 0xEA, -0x4C, 0xC0, 0x42, 0xA4, 0x08, 0x6D, 0x03, 0x4C, -0x4C, 0xED, 0xAE, 0x35, 0x07, 0xD5, 0x4C, 0xEB, -0x47, 0xA0, 0x30, 0xF0, 0x20, 0x6D, 0xA3, 0xF3, -0xB8, 0x9D, 0xCC, 0xEA, 0x6D, 0xEA, 0x47, 0xC0, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x50, 0x9A, -0x2C, 0x33, 0x49, 0xE3, 0xAD, 0xE3, 0xA0, 0xA4, -0x01, 0x4C, 0xA0, 0xC2, 0x01, 0x4A, 0x6A, 0xEA, -0xFA, 0x61, 0x07, 0x92, 0x09, 0x2A, 0x67, 0xA0, -0x03, 0x6A, 0x6C, 0xEA, 0x48, 0x34, 0x0D, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0x8D, 0xEA, 0x47, 0xC0, -0x30, 0xF0, 0x21, 0x6A, 0x12, 0xF5, 0x58, 0x9A, -0x20, 0x6B, 0x6C, 0xEA, 0x13, 0x22, 0x8C, 0xA0, -0xC7, 0xA0, 0x03, 0x6A, 0x8A, 0x33, 0x4C, 0xEC, -0xCA, 0x37, 0x01, 0x6D, 0x05, 0xD4, 0x30, 0xF0, -0x20, 0x6C, 0xAC, 0xEB, 0xC4, 0xF4, 0x1C, 0x4C, -0xB1, 0x67, 0x4C, 0xEE, 0x4C, 0xEF, 0x04, 0xD3, -0x80, 0x18, 0x39, 0x43, 0x30, 0xF0, 0x21, 0x6A, +0x44, 0xF4, 0x14, 0x4C, 0xB1, 0x67, 0x80, 0x18, +0x48, 0x43, 0x05, 0x94, 0x0C, 0x6D, 0x8C, 0xED, +0xAA, 0x35, 0x91, 0x67, 0x80, 0x18, 0x6A, 0x4D, +0x23, 0x10, 0x07, 0xF7, 0x74, 0xA0, 0x01, 0x6A, +0x44, 0xE9, 0x4F, 0xEA, 0x6C, 0xEA, 0x07, 0xF7, +0x54, 0xC0, 0xE7, 0xF3, 0x40, 0x98, 0x10, 0x6B, +0x6C, 0xEA, 0x0D, 0x22, 0xE7, 0xF3, 0x44, 0x98, +0x05, 0x5A, 0x09, 0x61, 0x04, 0x96, 0x06, 0x97, +0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF4, 0x08, 0x4C, +0xB1, 0x67, 0x80, 0x18, 0x48, 0x43, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x45, 0xE1, +0x01, 0x6A, 0x4B, 0xEA, 0x07, 0xF7, 0x4E, 0xC1, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, +0x0E, 0xD1, 0x0D, 0xD0, 0x40, 0xA4, 0x30, 0x68, +0x20, 0x6B, 0x18, 0xEA, 0x06, 0xD2, 0x30, 0xF0, +0x21, 0x6A, 0x73, 0xF0, 0x00, 0x4A, 0x24, 0x67, +0x12, 0xE8, 0x01, 0xE2, 0x58, 0xA0, 0x0A, 0xD2, +0x42, 0xA4, 0xBA, 0xA0, 0x58, 0xC0, 0x43, 0xA4, +0x01, 0x6C, 0x6C, 0xEA, 0xBF, 0x4B, 0xAC, 0xEB, +0x4D, 0xEB, 0x7A, 0xC0, 0x43, 0xA1, 0xA8, 0xA0, +0x4C, 0xEC, 0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x8D, 0xEA, 0x5A, 0xC0, 0x83, 0xA1, 0x02, 0x6B, +0x6C, 0xEC, 0xFB, 0x4B, 0x4C, 0xEB, 0x8D, 0xEB, +0x7A, 0xC0, 0x83, 0xA1, 0x40, 0x6A, 0x4C, 0xEC, +0x80, 0x4A, 0xFF, 0x4A, 0x6C, 0xEA, 0x8D, 0xEA, +0x5A, 0xC0, 0x83, 0xA1, 0x7F, 0x6B, 0xAC, 0xEB, +0x9E, 0x34, 0x9C, 0x34, 0x8D, 0xEB, 0x68, 0xC0, +0x83, 0xA1, 0x09, 0xD4, 0x64, 0xA1, 0x7E, 0xC0, +0x65, 0xA1, 0x07, 0xD3, 0x86, 0xA1, 0x04, 0x6B, +0x8C, 0xEB, 0x6B, 0x33, 0x08, 0xD4, 0x20, 0xF0, +0x6E, 0xC0, 0x20, 0x6B, 0x6C, 0xEA, 0x22, 0x22, +0x06, 0x94, 0x80, 0x18, 0x4F, 0x47, 0xC7, 0xA0, +0x03, 0x6C, 0xB8, 0xA0, 0xCA, 0x36, 0x8C, 0xEE, +0x06, 0x94, 0xFF, 0x6A, 0x4C, 0xEE, 0x80, 0x18, +0xFD, 0x50, 0x30, 0xF0, 0x21, 0x6A, 0x12, 0xF5, +0x58, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x0E, 0x22, +0xE7, 0xA0, 0x03, 0x6C, 0x06, 0x95, 0xEA, 0x37, +0xD8, 0xA0, 0x8C, 0xEF, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x6C, 0x84, 0xF4, 0x00, 0x4C, 0x4C, 0xEF, +0x80, 0x18, 0x48, 0x43, 0x30, 0xF0, 0x21, 0x6A, 0x12, 0xF5, 0x58, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, -0x12, 0x22, 0x06, 0x94, 0x48, 0xA0, 0x01, 0x6B, -0x04, 0xD4, 0x07, 0x94, 0x5A, 0x35, 0x56, 0x36, -0x05, 0xD4, 0x1F, 0x6F, 0x30, 0xF0, 0x20, 0x6C, -0x04, 0xF5, 0x04, 0x4C, 0x6C, 0xED, 0x6C, 0xEE, -0x4C, 0xEF, 0x80, 0x18, 0x39, 0x43, 0x30, 0xF0, -0x21, 0x6A, 0x12, 0xF5, 0x58, 0x9A, 0x20, 0x6B, -0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF3, 0x50, 0x9A, 0x2C, 0x33, 0x30, 0xF0, -0x20, 0x6C, 0x49, 0xE3, 0xA0, 0x9A, 0x24, 0xF5, -0x10, 0x4C, 0x80, 0x18, 0x39, 0x43, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF3, 0x50, 0x9A, 0x2C, 0x33, -0x49, 0xE3, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x87, 0xF3, 0x85, 0xA2, -0x01, 0x74, 0x04, 0x60, 0x87, 0xF3, 0x4A, 0xA2, -0x01, 0x72, 0x16, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF3, 0x54, 0x9A, 0x63, 0xEA, 0x10, 0x60, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x44, 0x9A, -0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF3, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF0, 0x54, 0x9A, 0x60, 0xDA, 0xF0, 0x17, -0x47, 0xA0, 0x03, 0x6B, 0x4A, 0x32, 0x6C, 0xEA, -0x30, 0xF0, 0x21, 0x6B, 0xB2, 0xF4, 0x7C, 0xA3, -0x05, 0x73, 0x11, 0x61, 0x38, 0x22, 0x30, 0xF0, +0x0E, 0x22, 0x5E, 0xA0, 0xD8, 0xA0, 0xE3, 0xA1, +0x04, 0xD2, 0x20, 0xF0, 0x4E, 0xA0, 0x06, 0x95, +0x30, 0xF0, 0x20, 0x6C, 0x84, 0xF4, 0x18, 0x4C, +0x05, 0xD2, 0x80, 0x18, 0x48, 0x43, 0x09, 0x93, +0x08, 0x6A, 0x6C, 0xEA, 0x19, 0x22, 0x30, 0xF0, +0x21, 0x6A, 0x12, 0xF5, 0x58, 0x9A, 0x08, 0x94, +0x20, 0x6B, 0x03, 0x69, 0x6C, 0xEA, 0x8C, 0xE9, +0x09, 0x22, 0x06, 0x95, 0x07, 0x96, 0x30, 0xF0, +0x20, 0x6C, 0xA4, 0xF4, 0x18, 0x4C, 0xF1, 0x67, +0x80, 0x18, 0x48, 0x43, 0x06, 0x94, 0x07, 0x95, +0x00, 0x6E, 0xF1, 0x67, 0x80, 0x18, 0x9F, 0x4D, +0xFA, 0xA0, 0xD8, 0xA0, 0x06, 0x94, 0x0A, 0x95, +0x01, 0x6A, 0xF6, 0x37, 0x4C, 0xEF, 0x80, 0x18, +0x9E, 0x4C, 0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, +0x08, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x03, 0xA4, 0x44, 0xA4, 0xC0, 0xA4, +0x00, 0x30, 0x00, 0x30, 0x00, 0xF6, 0x40, 0x32, +0xA5, 0xA4, 0xE6, 0xA4, 0x0D, 0xEA, 0x01, 0xA4, +0x82, 0xA4, 0x30, 0xF0, 0x20, 0x6B, 0x0D, 0xEA, +0x80, 0x34, 0x2B, 0xF1, 0x18, 0x4B, 0x8D, 0xEA, +0xE7, 0xF3, 0x40, 0xDB, 0x28, 0xF7, 0xD1, 0xC3, +0x0A, 0x26, 0x01, 0x6C, 0x4C, 0xEC, 0x07, 0x24, +0x28, 0xF7, 0xB2, 0xC3, 0x28, 0xF7, 0xF3, 0xC3, +0x02, 0x25, 0x80, 0x18, 0x6C, 0x52, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xA4, 0x30, 0xF0, 0x20, 0x6D, +0xA3, 0xF3, 0x58, 0x9A, 0xA3, 0xF3, 0xBC, 0x9D, +0x0C, 0x33, 0x49, 0xE3, 0x03, 0x4C, 0xAD, 0xE3, +0xA0, 0xA4, 0x01, 0x4C, 0xA0, 0xC2, 0x01, 0x4A, +0x6A, 0xEA, 0xFA, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0xE7, 0xF3, 0x60, 0x9A, +0x20, 0x6C, 0x8C, 0xEB, 0x11, 0x23, 0xE7, 0xF3, +0x44, 0x9A, 0x05, 0x5A, 0x0D, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF3, 0x58, 0x9A, 0x0C, 0x33, +0x30, 0xF0, 0x20, 0x6C, 0x49, 0xE3, 0xA0, 0x9A, +0xC4, 0xF4, 0x14, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, 0x58, 0x9A, +0x0C, 0x33, 0x30, 0xF0, 0x20, 0x6C, 0x49, 0xE3, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0x60, 0x9B, +0x40, 0x9A, 0x2B, 0xF1, 0x18, 0x4C, 0xFF, 0x6E, +0x6C, 0xEA, 0x87, 0xF3, 0x61, 0xA4, 0x87, 0xF3, +0x86, 0xA4, 0xAF, 0x43, 0xCC, 0xED, 0x02, 0x5D, +0x04, 0x61, 0x01, 0x74, 0x02, 0x60, 0x02, 0x74, +0x11, 0x61, 0x10, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF3, 0x44, 0x9A, 0x00, 0x6B, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x68, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, 0x54, 0x9A, +0x60, 0xDA, 0xF0, 0x17, 0x03, 0x73, 0x13, 0x61, +0x00, 0xF4, 0x00, 0x5A, 0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x44, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, -0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, -0x54, 0x9A, 0x60, 0xDA, 0xF0, 0x17, 0x06, 0x73, -0x12, 0x61, 0x02, 0x5A, 0x24, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF3, 0x44, 0x9A, 0x00, 0x6B, -0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF3, -0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, -0x54, 0x9A, 0x60, 0xDA, 0xF0, 0x17, 0x07, 0x73, -0x12, 0x61, 0x03, 0x72, 0x10, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF3, 0x44, 0x9A, 0x00, 0x6B, -0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF3, -0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, -0x54, 0x9A, 0x60, 0xDA, 0xF0, 0x17, 0x30, 0xF0, -0x21, 0x6A, 0xB2, 0xF4, 0x5E, 0xA2, 0x02, 0x72, -0x14, 0x61, 0x6C, 0xA0, 0x03, 0x6A, 0x6C, 0xEA, -0x10, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, +0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, +0x54, 0x9A, 0x60, 0xDA, 0xF0, 0x17, 0x90, 0x67, +0x80, 0x18, 0xF0, 0x4D, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x20, 0xA4, 0x30, 0x6E, +0x30, 0xF0, 0x21, 0x6A, 0xD8, 0xE9, 0x73, 0xF0, +0x00, 0x4A, 0x61, 0xA4, 0x7E, 0x33, 0x68, 0x33, +0x12, 0xE8, 0x01, 0xE2, 0xAC, 0xA0, 0x05, 0x6A, +0x4B, 0xEA, 0xAC, 0xEA, 0x6D, 0xEA, 0x4C, 0xC0, +0xA1, 0xA4, 0x60, 0x6B, 0xAC, 0xEB, 0x76, 0x33, +0x06, 0xD3, 0xE8, 0xA0, 0x1F, 0x6B, 0xAC, 0xEB, +0x20, 0x6D, 0xAB, 0xED, 0xEC, 0xED, 0x6D, 0xED, +0xA8, 0xC0, 0xE2, 0xA4, 0x41, 0x6B, 0x6B, 0xEB, +0xFE, 0x37, 0xF8, 0x37, 0xAC, 0xEB, 0xED, 0xEB, +0x68, 0xC0, 0xA2, 0xA4, 0x40, 0x6F, 0xEC, 0xED, +0xBA, 0x35, 0xB4, 0x37, 0x21, 0x6D, 0xAB, 0xED, +0x6C, 0xED, 0xED, 0xED, 0xA8, 0xC0, 0xA2, 0xA4, +0x03, 0x6B, 0xCC, 0xED, 0xCC, 0x4E, 0xB2, 0x35, +0xCC, 0xEA, 0xAD, 0xEA, 0x4C, 0xC0, 0x42, 0xA4, +0x08, 0x6D, 0x03, 0x4C, 0x4C, 0xED, 0xAE, 0x35, +0x07, 0xD5, 0x4C, 0xEB, 0x47, 0xA0, 0x30, 0xF0, +0x20, 0x6D, 0xA3, 0xF3, 0xB8, 0x9D, 0xCC, 0xEA, +0x6D, 0xEA, 0x47, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF3, 0x50, 0x9A, 0x2C, 0x33, 0x49, 0xE3, +0xAD, 0xE3, 0xA0, 0xA4, 0x01, 0x4C, 0xA0, 0xC2, +0x01, 0x4A, 0x6A, 0xEA, 0xFA, 0x61, 0x07, 0x92, +0x09, 0x2A, 0x67, 0xA0, 0x03, 0x6A, 0x6C, 0xEA, +0x48, 0x34, 0x0D, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x8D, 0xEA, 0x47, 0xC0, 0x30, 0xF0, 0x21, 0x6A, +0x12, 0xF5, 0x58, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, +0x13, 0x22, 0x8C, 0xA0, 0xC7, 0xA0, 0x03, 0x6A, +0x8A, 0x33, 0x4C, 0xEC, 0xCA, 0x37, 0x01, 0x6D, +0x05, 0xD4, 0x30, 0xF0, 0x20, 0x6C, 0xAC, 0xEB, +0xE4, 0xF4, 0x00, 0x4C, 0xB1, 0x67, 0x4C, 0xEE, +0x4C, 0xEF, 0x04, 0xD3, 0x80, 0x18, 0x48, 0x43, +0x30, 0xF0, 0x21, 0x6A, 0x12, 0xF5, 0x58, 0x9A, +0x20, 0x6B, 0x6C, 0xEA, 0x12, 0x22, 0x06, 0x94, +0x48, 0xA0, 0x01, 0x6B, 0x04, 0xD4, 0x07, 0x94, +0x5A, 0x35, 0x56, 0x36, 0x05, 0xD4, 0x1F, 0x6F, +0x30, 0xF0, 0x20, 0x6C, 0x04, 0xF5, 0x08, 0x4C, +0x6C, 0xED, 0x6C, 0xEE, 0x4C, 0xEF, 0x80, 0x18, +0x48, 0x43, 0x30, 0xF0, 0x21, 0x6A, 0x12, 0xF5, +0x58, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x0D, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x50, 0x9A, +0x2C, 0x33, 0x30, 0xF0, 0x20, 0x6C, 0x49, 0xE3, +0xA0, 0x9A, 0x24, 0xF5, 0x14, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, +0x50, 0x9A, 0x2C, 0x33, 0x49, 0xE3, 0x60, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0x87, 0xF3, 0x81, 0xA2, 0x01, 0x74, 0x04, 0x60, +0x87, 0xF3, 0x46, 0xA2, 0x01, 0x72, 0x16, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x54, 0x9A, +0x63, 0xEA, 0x10, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF3, 0x44, 0x9A, 0x00, 0x6B, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x78, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, 0x54, 0x9A, +0x60, 0xDA, 0xF0, 0x17, 0x47, 0xA0, 0x03, 0x6B, +0x4A, 0x32, 0x6C, 0xEA, 0x30, 0xF0, 0x21, 0x6B, +0xB2, 0xF4, 0x78, 0xA3, 0x05, 0x73, 0x11, 0x61, +0x38, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x44, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF3, 0x68, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF3, 0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, 0x54, 0x9A, 0x60, 0xDA, -0xF0, 0x17, 0x91, 0x67, 0x80, 0x18, 0xE0, 0x4D, -0x06, 0x92, 0x0D, 0x22, 0x04, 0x6B, 0xC7, 0xA0, -0x4F, 0xE3, 0x09, 0x6A, 0x44, 0xEB, 0xFF, 0x6D, -0xCA, 0x36, 0x4C, 0xED, 0x03, 0x6A, 0x91, 0x67, -0x4C, 0xEE, 0x80, 0x18, 0xED, 0x50, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, -0xC0, 0x4C, 0x4C, 0xEC, 0x13, 0x5C, 0x3B, 0x60, -0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, 0x02, 0xF3, -0x0C, 0x4A, 0x89, 0xE2, 0x40, 0x9A, 0x00, 0xEA, -0x85, 0x67, 0x80, 0x18, 0xB4, 0x45, 0x2F, 0x10, -0x85, 0x67, 0x80, 0x18, 0x0C, 0x45, 0x2B, 0x10, -0x85, 0x67, 0x80, 0x18, 0x77, 0x45, 0x27, 0x10, -0x85, 0x67, 0x80, 0x18, 0x67, 0x44, 0x23, 0x10, -0x85, 0x67, 0x80, 0x18, 0x4B, 0x43, 0x1F, 0x10, -0x85, 0x67, 0x80, 0x18, 0x62, 0x45, 0x1B, 0x10, -0x85, 0x67, 0x80, 0x18, 0xC2, 0x43, 0x17, 0x10, -0x85, 0x67, 0x80, 0x18, 0xCF, 0x44, 0x13, 0x10, -0x85, 0x67, 0x80, 0x18, 0x62, 0x42, 0x0F, 0x10, -0x85, 0x67, 0x80, 0x18, 0x10, 0x42, 0x0B, 0x10, -0x85, 0x67, 0x80, 0x18, 0x41, 0x42, 0x07, 0x10, -0x85, 0x67, 0x80, 0x18, 0xA1, 0x46, 0x03, 0x10, -0x85, 0x67, 0x80, 0x18, 0x4D, 0x53, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x05, 0x6B, 0xE7, 0xF3, -0x64, 0xDA, 0x09, 0x6B, 0xE7, 0xF3, 0x60, 0xDA, -0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x40, 0xF3, -0xCE, 0xAC, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF6, -0x00, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xFF, 0x6D, 0x63, 0xF6, -0x00, 0x6C, 0x01, 0x4D, 0x01, 0x6E, 0x40, 0xEA, -0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0x63, 0xF6, 0x00, 0x69, 0x91, 0x67, 0x01, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x01, 0x6D, 0x91, 0x67, 0xC5, 0x67, 0x40, 0xEA, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x00, 0x6A, 0x40, 0xF3, -0x4B, 0xC4, 0x40, 0xF3, 0x4A, 0xC4, 0x05, 0x6A, -0x40, 0xF3, 0x49, 0xC4, 0x00, 0x6A, 0x40, 0xF3, -0x50, 0xDC, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x60, 0xA4, 0x80, 0x6A, -0x30, 0xF0, 0x20, 0x68, 0x4B, 0xEA, 0x2B, 0xF1, -0x18, 0x48, 0x6C, 0xEA, 0x07, 0xF7, 0x5B, 0xC0, -0x60, 0xA4, 0x0F, 0x6A, 0x24, 0x67, 0x6C, 0xEA, -0x07, 0xF7, 0x58, 0xC0, 0x41, 0xA4, 0x07, 0xF7, -0x78, 0xA0, 0x30, 0xF0, 0x21, 0x6C, 0x07, 0xF7, -0x59, 0xC0, 0x00, 0x6A, 0x01, 0x4B, 0x07, 0xF7, -0x5A, 0xC0, 0x01, 0x6A, 0x44, 0xEB, 0xFF, 0x4A, -0x12, 0xF5, 0x08, 0x4C, 0x07, 0xF7, 0x5E, 0xC8, -0x80, 0x18, 0x81, 0x46, 0xE7, 0xF3, 0x60, 0x98, -0x10, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x0A, 0x22, -0xA1, 0xA1, 0xC0, 0xA1, 0x07, 0xF7, 0xFE, 0xA8, -0x30, 0xF0, 0x20, 0x6C, 0x24, 0xF5, 0x1C, 0x4C, -0x80, 0x18, 0x39, 0x43, 0x07, 0x97, 0x06, 0x91, +0xF0, 0x17, 0x06, 0x73, 0x12, 0x61, 0x02, 0x5A, +0x24, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, +0x44, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF3, 0x60, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF0, 0x54, 0x9A, 0x60, 0xDA, +0xF0, 0x17, 0x07, 0x73, 0x12, 0x61, 0x03, 0x72, +0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, +0x44, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF3, 0x64, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF0, 0x54, 0x9A, 0x60, 0xDA, +0xF0, 0x17, 0x30, 0xF0, 0x21, 0x6A, 0xB2, 0xF4, +0x5A, 0xA2, 0x02, 0x72, 0x14, 0x61, 0x6C, 0xA0, +0x03, 0x6A, 0x6C, 0xEA, 0x10, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF3, 0x44, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF3, +0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, +0x54, 0x9A, 0x60, 0xDA, 0xF0, 0x17, 0x91, 0x67, +0x80, 0x18, 0xF0, 0x4D, 0x06, 0x92, 0x0D, 0x22, +0x04, 0x6B, 0xC7, 0xA0, 0x4F, 0xE3, 0x09, 0x6A, +0x44, 0xEB, 0xFF, 0x6D, 0xCA, 0x36, 0x4C, 0xED, +0x03, 0x6A, 0x91, 0x67, 0x4C, 0xEE, 0x80, 0x18, +0xFD, 0x50, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0xC0, 0x4C, 0x4C, 0xEC, +0x13, 0x5C, 0x3B, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x88, 0x34, 0x02, 0xF3, 0x0C, 0x4A, 0x89, 0xE2, +0x40, 0x9A, 0x00, 0xEA, 0x85, 0x67, 0x80, 0x18, +0xC3, 0x45, 0x2F, 0x10, 0x85, 0x67, 0x80, 0x18, +0x1B, 0x45, 0x2B, 0x10, 0x85, 0x67, 0x80, 0x18, +0x86, 0x45, 0x27, 0x10, 0x85, 0x67, 0x80, 0x18, +0x76, 0x44, 0x23, 0x10, 0x85, 0x67, 0x80, 0x18, +0x5A, 0x43, 0x1F, 0x10, 0x85, 0x67, 0x80, 0x18, +0x71, 0x45, 0x1B, 0x10, 0x85, 0x67, 0x80, 0x18, +0xD1, 0x43, 0x17, 0x10, 0x85, 0x67, 0x80, 0x18, +0xDE, 0x44, 0x13, 0x10, 0x85, 0x67, 0x80, 0x18, +0x71, 0x42, 0x0F, 0x10, 0x85, 0x67, 0x80, 0x18, +0x1F, 0x42, 0x0B, 0x10, 0x85, 0x67, 0x80, 0x18, +0x50, 0x42, 0x07, 0x10, 0x85, 0x67, 0x80, 0x18, +0xB0, 0x46, 0x03, 0x10, 0x85, 0x67, 0x80, 0x18, +0x5D, 0x53, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0x05, 0x6B, 0xE7, 0xF3, 0x64, 0xDA, 0x09, 0x6B, +0xE7, 0xF3, 0x60, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0x40, 0xF3, 0xCE, 0xAC, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF6, 0x00, 0x6C, 0xFF, 0xF7, +0x1F, 0x6D, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xFF, 0x6D, 0x63, 0xF6, 0x00, 0x6C, 0x01, 0x4D, +0x01, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF6, 0x00, 0x69, +0x91, 0x67, 0x01, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x91, 0x67, +0xC5, 0x67, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x00, 0x6A, 0x40, 0xF3, 0x4B, 0xC4, 0x40, 0xF3, +0x4A, 0xC4, 0x05, 0x6A, 0x40, 0xF3, 0x49, 0xC4, +0x00, 0x6A, 0x40, 0xF3, 0x50, 0xDC, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0xB8, 0x9A, -0x24, 0x67, 0x85, 0xF5, 0x08, 0x6C, 0x80, 0x18, -0x35, 0x25, 0x01, 0x22, 0x01, 0x6A, 0x64, 0x99, -0x02, 0x67, 0x10, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, -0x07, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF5, -0x18, 0x4C, 0xB0, 0x67, 0x80, 0x18, 0x39, 0x43, -0x50, 0x67, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0xFF, 0xF7, 0x1F, 0x6D, 0x04, 0x67, -0x85, 0xF5, 0x08, 0x6C, 0x80, 0x18, 0x35, 0x25, -0x64, 0x98, 0x40, 0xF3, 0x4C, 0xC8, 0x10, 0xF0, -0x00, 0x6A, 0x6C, 0xEA, 0x08, 0x22, 0x40, 0xF3, -0xAC, 0xA8, 0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF5, -0x04, 0x4C, 0x80, 0x18, 0x39, 0x43, 0x05, 0x97, -0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x64, 0x9C, 0x10, 0xF0, 0x00, 0x6A, 0xFF, 0x69, -0x05, 0x67, 0x6C, 0xEA, 0x2C, 0xE8, 0xCC, 0xE9, -0x08, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF5, -0x10, 0x4C, 0xB0, 0x67, 0xD1, 0x67, 0x80, 0x18, -0x39, 0x43, 0x5D, 0x67, 0x12, 0xC2, 0x33, 0xC2, -0x7D, 0x67, 0x2A, 0x6A, 0x50, 0xC3, 0x02, 0x6A, -0x4F, 0xCB, 0x07, 0x97, 0x04, 0x94, 0x05, 0x95, -0x06, 0x96, 0x80, 0x18, 0x20, 0x41, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x40, 0xF3, -0x4B, 0xA4, 0x04, 0x67, 0x59, 0x22, 0x40, 0xF3, -0xCA, 0xA4, 0x40, 0xF3, 0x49, 0xA4, 0xC3, 0xEA, -0x53, 0x61, 0x64, 0x9C, 0x10, 0xF0, 0x00, 0x6A, -0x6C, 0xEA, 0x08, 0x22, 0x40, 0xF3, 0xB0, 0x98, -0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF5, 0x1C, 0x4C, -0x80, 0x18, 0x39, 0x43, 0x40, 0xF3, 0x70, 0x98, -0x03, 0x6A, 0x5B, 0xEB, 0x01, 0x2A, 0xE5, 0xE8, -0x10, 0xEA, 0x39, 0x2A, 0x90, 0x67, 0x80, 0x18, -0xC0, 0x46, 0x27, 0x22, 0x64, 0x98, 0x10, 0xF0, -0x00, 0x6A, 0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x84, 0xF5, 0x10, 0x4C, 0x80, 0x18, -0x39, 0x43, 0x90, 0x67, 0x80, 0x18, 0xD1, 0x46, -0x40, 0xF3, 0x4E, 0xA8, 0xFF, 0xF7, 0x1F, 0x72, -0x14, 0x61, 0x40, 0xF3, 0xAC, 0xA8, 0x64, 0x6A, -0x90, 0x67, 0x58, 0xED, 0x8F, 0xF7, 0x1C, 0x4A, -0x12, 0xED, 0x55, 0xE5, 0x40, 0xF3, 0x4A, 0xA0, -0xA2, 0x35, 0xA2, 0x35, 0x01, 0x4A, 0x40, 0xF3, -0x4A, 0xC0, 0x40, 0xF3, 0xCA, 0xA0, 0x80, 0x18, -0xE0, 0x46, 0x64, 0x98, 0x10, 0xF0, 0x00, 0x6A, -0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, -0x84, 0xF5, 0x18, 0x4C, 0x80, 0x18, 0x39, 0x43, -0x90, 0x67, 0x80, 0x18, 0x8E, 0x46, 0x40, 0xF3, -0x50, 0x98, 0x01, 0x4A, 0x40, 0xF3, 0x50, 0xD8, -0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x21, 0x6A, 0x54, 0xF2, 0x10, 0x4A, -0x30, 0xF0, 0x21, 0x6C, 0xA7, 0x42, 0x74, 0xF1, -0x10, 0x4C, 0x39, 0x4D, 0x00, 0x6B, 0x3F, 0xF6, -0x60, 0xCA, 0x7F, 0xF6, 0x60, 0xCA, 0x60, 0xC4, -0x20, 0xF0, 0x60, 0xC4, 0x40, 0xF0, 0x60, 0xCA, -0x80, 0xF0, 0x60, 0xCA, 0x60, 0xCA, 0xC0, 0xF0, -0x60, 0xCA, 0x40, 0xF1, 0x60, 0xCA, 0x00, 0xF1, -0x60, 0xCA, 0x80, 0xF1, 0x64, 0xCA, 0xC0, 0xF1, -0x64, 0xCA, 0x00, 0xF2, 0x64, 0xCA, 0x7F, 0xF7, -0x60, 0xCA, 0xBF, 0xF7, 0x60, 0xCA, 0x02, 0x4A, -0xAA, 0xEA, 0xC0, 0xF0, 0x60, 0xC4, 0x01, 0x4C, -0xDD, 0x61, 0x30, 0xF0, 0x21, 0x6A, 0x78, 0x67, -0xD4, 0xF3, 0x70, 0xDA, 0x20, 0xE8, 0x00, 0x65, -0xFF, 0x6A, 0x8C, 0xEA, 0x24, 0xF5, 0xAC, 0x42, -0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, -0xA4, 0x35, 0x00, 0x6C, 0x75, 0xE5, 0x80, 0xCD, -0x04, 0xF5, 0xAC, 0x42, 0xA4, 0x35, 0x75, 0xE5, -0x80, 0xCD, 0x44, 0xF5, 0xAC, 0x42, 0xA4, 0x35, -0x75, 0xE5, 0x82, 0xCD, 0x64, 0xF5, 0xAC, 0x42, -0x84, 0xF5, 0x0C, 0x4A, 0xA4, 0x35, 0x44, 0x32, -0x75, 0xE5, 0x6D, 0xE2, 0x82, 0xCD, 0x82, 0xCB, +0x60, 0xA4, 0x80, 0x6A, 0x30, 0xF0, 0x20, 0x68, +0x4B, 0xEA, 0x2B, 0xF1, 0x18, 0x48, 0x6C, 0xEA, +0x07, 0xF7, 0x5B, 0xC0, 0x60, 0xA4, 0x0F, 0x6A, +0x24, 0x67, 0x6C, 0xEA, 0x07, 0xF7, 0x58, 0xC0, +0x41, 0xA4, 0x07, 0xF7, 0x78, 0xA0, 0x30, 0xF0, +0x21, 0x6C, 0x07, 0xF7, 0x59, 0xC0, 0x00, 0x6A, +0x01, 0x4B, 0x07, 0xF7, 0x5A, 0xC0, 0x01, 0x6A, +0x44, 0xEB, 0xFF, 0x4A, 0x12, 0xF5, 0x08, 0x4C, +0x07, 0xF7, 0x5E, 0xC8, 0x80, 0x18, 0x90, 0x46, +0xE7, 0xF3, 0x60, 0x98, 0x10, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x0A, 0x22, 0xA1, 0xA1, 0xC0, 0xA1, +0x07, 0xF7, 0xFE, 0xA8, 0x30, 0xF0, 0x20, 0x6C, +0x44, 0xF5, 0x00, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF1, 0xBC, 0x9A, 0x24, 0x67, 0x85, 0xF5, +0x08, 0x6C, 0x80, 0x18, 0x0D, 0x28, 0x01, 0x22, +0x01, 0x6A, 0x64, 0x99, 0x02, 0x67, 0x10, 0xF0, +0x00, 0x6A, 0x6C, 0xEA, 0x07, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x44, 0xF5, 0x1C, 0x4C, 0xB0, 0x67, +0x80, 0x18, 0x48, 0x43, 0x50, 0x67, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0xF7, +0x1F, 0x6D, 0x04, 0x67, 0x85, 0xF5, 0x08, 0x6C, +0x80, 0x18, 0x0D, 0x28, 0x64, 0x98, 0x40, 0xF3, +0x4C, 0xC8, 0x10, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, +0x08, 0x22, 0x40, 0xF3, 0xAC, 0xA8, 0x30, 0xF0, +0x20, 0x6C, 0x64, 0xF5, 0x08, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x64, 0x9C, 0x10, 0xF0, +0x00, 0x6A, 0xFF, 0x69, 0x05, 0x67, 0x6C, 0xEA, +0x2C, 0xE8, 0xCC, 0xE9, 0x08, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x64, 0xF5, 0x14, 0x4C, 0xB0, 0x67, +0xD1, 0x67, 0x80, 0x18, 0x48, 0x43, 0x5D, 0x67, +0x12, 0xC2, 0x33, 0xC2, 0x7D, 0x67, 0x2A, 0x6A, +0x50, 0xC3, 0x02, 0x6A, 0x4F, 0xCB, 0x07, 0x97, +0x04, 0x94, 0x05, 0x95, 0x06, 0x96, 0x80, 0x18, +0x20, 0x41, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x40, 0xF3, 0x4B, 0xA4, 0x04, 0x67, +0x59, 0x22, 0x40, 0xF3, 0xCA, 0xA4, 0x40, 0xF3, +0x49, 0xA4, 0xC3, 0xEA, 0x53, 0x61, 0x64, 0x9C, +0x10, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x08, 0x22, +0x40, 0xF3, 0xB0, 0x98, 0x30, 0xF0, 0x20, 0x6C, +0x84, 0xF5, 0x00, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x40, 0xF3, 0x70, 0x98, 0x03, 0x6A, 0x5B, 0xEB, +0x01, 0x2A, 0xE5, 0xE8, 0x10, 0xEA, 0x39, 0x2A, +0x90, 0x67, 0x80, 0x18, 0xCF, 0x46, 0x27, 0x22, +0x64, 0x98, 0x10, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, +0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x84, 0xF5, +0x14, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x90, 0x67, +0x80, 0x18, 0xE0, 0x46, 0x40, 0xF3, 0x4E, 0xA8, +0xFF, 0xF7, 0x1F, 0x72, 0x14, 0x61, 0x40, 0xF3, +0xAC, 0xA8, 0x64, 0x6A, 0x90, 0x67, 0x58, 0xED, +0x8F, 0xF7, 0x1C, 0x4A, 0x12, 0xED, 0x55, 0xE5, +0x40, 0xF3, 0x4A, 0xA0, 0xA2, 0x35, 0xA2, 0x35, +0x01, 0x4A, 0x40, 0xF3, 0x4A, 0xC0, 0x40, 0xF3, +0xCA, 0xA0, 0x80, 0x18, 0xEF, 0x46, 0x64, 0x98, +0x10, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x06, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x84, 0xF5, 0x1C, 0x4C, +0x80, 0x18, 0x48, 0x43, 0x90, 0x67, 0x80, 0x18, +0x9D, 0x46, 0x40, 0xF3, 0x50, 0x98, 0x01, 0x4A, +0x40, 0xF3, 0x50, 0xD8, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x21, 0x6A, +0x54, 0xF2, 0x10, 0x4A, 0x30, 0xF0, 0x21, 0x6C, +0xA7, 0x42, 0x74, 0xF1, 0x10, 0x4C, 0x39, 0x4D, +0x00, 0x6B, 0x3F, 0xF6, 0x60, 0xCA, 0x7F, 0xF6, +0x60, 0xCA, 0x60, 0xC4, 0x20, 0xF0, 0x60, 0xC4, +0x40, 0xF0, 0x60, 0xCA, 0x80, 0xF0, 0x60, 0xCA, +0x60, 0xCA, 0xC0, 0xF0, 0x60, 0xCA, 0x40, 0xF1, +0x60, 0xCA, 0x00, 0xF1, 0x60, 0xCA, 0x80, 0xF1, +0x64, 0xCA, 0xC0, 0xF1, 0x64, 0xCA, 0x00, 0xF2, +0x64, 0xCA, 0x7F, 0xF7, 0x60, 0xCA, 0xBF, 0xF7, +0x60, 0xCA, 0x02, 0x4A, 0xAA, 0xEA, 0xC0, 0xF0, +0x60, 0xC4, 0x01, 0x4C, 0xDD, 0x61, 0x30, 0xF0, +0x21, 0x6A, 0x78, 0x67, 0xD4, 0xF3, 0x70, 0xDA, 0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x8C, 0xEA, -0x34, 0xF4, 0xAC, 0x42, 0x30, 0xF0, 0x20, 0x6B, +0x24, 0xF5, 0xAC, 0x42, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0xA4, 0x35, 0x00, 0x6C, -0x75, 0xE5, 0x80, 0xCD, 0x54, 0xF4, 0xAC, 0x42, -0xA4, 0x35, 0x75, 0xE5, 0x69, 0xE2, 0x80, 0xCD, -0xE9, 0xF0, 0x98, 0xC2, 0x20, 0xE8, 0x00, 0x65, -0xFF, 0x6A, 0x8C, 0xEA, 0x84, 0xF4, 0xAC, 0x42, +0x75, 0xE5, 0x80, 0xCD, 0x04, 0xF5, 0xAC, 0x42, +0xA4, 0x35, 0x75, 0xE5, 0x80, 0xCD, 0x44, 0xF5, +0xAC, 0x42, 0xA4, 0x35, 0x75, 0xE5, 0x82, 0xCD, +0x64, 0xF5, 0xAC, 0x42, 0x84, 0xF5, 0x0C, 0x4A, +0xA4, 0x35, 0x44, 0x32, 0x75, 0xE5, 0x6D, 0xE2, +0x82, 0xCD, 0x82, 0xCB, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0x8C, 0xEA, 0x34, 0xF4, 0xAC, 0x42, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0xA4, 0x35, 0x00, 0x6C, 0x75, 0xE5, 0x80, 0xCD, -0xE4, 0xF4, 0xAC, 0x42, 0xA4, 0x35, 0x75, 0xE5, -0x80, 0xCD, 0xA4, 0xF4, 0xAC, 0x42, 0xA4, 0x35, -0x75, 0xE5, 0x80, 0xCD, 0xC4, 0xF4, 0xAC, 0x42, -0xA4, 0x35, 0x75, 0xE5, 0x80, 0xCD, 0x30, 0x6C, -0x98, 0xEA, 0xB0, 0x4C, 0x12, 0xEA, 0x6D, 0xE2, -0x47, 0xF7, 0x47, 0xA3, 0x4C, 0xEC, 0x47, 0xF7, -0x87, 0xC3, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0xD1, -0x06, 0xD0, 0x0D, 0x92, 0xFF, 0xF7, 0x1F, 0x6B, -0x1B, 0x65, 0x02, 0xD2, 0xCC, 0xEB, 0x00, 0xD3, -0x0C, 0x90, 0x02, 0x93, 0xD8, 0x67, 0xFF, 0x69, -0x2C, 0xEC, 0xCC, 0xEF, 0xCC, 0xEB, 0xCC, 0xE8, -0x30, 0x6E, 0xD8, 0xEC, 0x0E, 0x92, 0x30, 0xF0, -0x21, 0x6E, 0x73, 0xF0, 0x00, 0x4E, 0x2C, 0xEA, -0x02, 0xD3, 0x03, 0xE7, 0x78, 0x67, 0x6C, 0xE8, -0x12, 0xE9, 0x39, 0xE6, 0x00, 0x91, 0x01, 0xD6, -0x3B, 0xE5, 0xFB, 0xE6, 0x03, 0xD6, 0x24, 0xF5, -0x2C, 0x44, 0x30, 0xF0, 0x20, 0x6E, 0x24, 0x31, -0x2B, 0xF1, 0x18, 0x4E, 0xD9, 0xE1, 0x00, 0x91, -0x04, 0xD6, 0xC0, 0xAE, 0x2F, 0xE3, 0xC2, 0xEB, -0x03, 0x61, 0x04, 0x93, 0xD9, 0xE1, 0xC0, 0xCB, -0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF5, 0xCC, 0x44, -0x2B, 0xF1, 0x18, 0x4B, 0xC4, 0x36, 0x79, 0xE6, -0x60, 0xAE, 0xFF, 0xF7, 0x1F, 0x69, 0xE7, 0xE1, -0x62, 0xE9, 0x02, 0x61, 0x6D, 0xE7, 0x60, 0xCE, -0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, -0x89, 0xF2, 0xD8, 0x9B, 0x0F, 0xE9, 0xC3, 0xE9, -0x03, 0x61, 0xC1, 0xE0, 0x89, 0xF2, 0x18, 0xDB, -0x30, 0xF0, 0x20, 0x6E, 0x44, 0xF5, 0x6C, 0x44, +0x54, 0xF4, 0xAC, 0x42, 0xA4, 0x35, 0x75, 0xE5, +0x69, 0xE2, 0x80, 0xCD, 0xE9, 0xF0, 0x98, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x8C, 0xEA, +0x84, 0xF4, 0xAC, 0x42, 0x30, 0xF0, 0x20, 0x6B, +0x2B, 0xF1, 0x18, 0x4B, 0xA4, 0x35, 0x00, 0x6C, +0x75, 0xE5, 0x80, 0xCD, 0xE4, 0xF4, 0xAC, 0x42, +0xA4, 0x35, 0x75, 0xE5, 0x80, 0xCD, 0xA4, 0xF4, +0xAC, 0x42, 0xA4, 0x35, 0x75, 0xE5, 0x80, 0xCD, +0xC4, 0xF4, 0xAC, 0x42, 0xA4, 0x35, 0x75, 0xE5, +0x80, 0xCD, 0x30, 0x6C, 0x98, 0xEA, 0xB0, 0x4C, +0x12, 0xEA, 0x6D, 0xE2, 0x47, 0xF7, 0x47, 0xA3, +0x4C, 0xEC, 0x47, 0xF7, 0x87, 0xC3, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0xD1, 0x06, 0xD0, 0x0D, 0x92, +0xFF, 0xF7, 0x1F, 0x6B, 0x1B, 0x65, 0x02, 0xD2, +0xCC, 0xEB, 0x00, 0xD3, 0x0C, 0x90, 0x02, 0x93, +0xD8, 0x67, 0xFF, 0x69, 0x2C, 0xEC, 0xCC, 0xEF, +0xCC, 0xEB, 0xCC, 0xE8, 0x30, 0x6E, 0xD8, 0xEC, +0x0E, 0x92, 0x30, 0xF0, 0x21, 0x6E, 0x73, 0xF0, +0x00, 0x4E, 0x2C, 0xEA, 0x02, 0xD3, 0x03, 0xE7, +0x78, 0x67, 0x6C, 0xE8, 0x12, 0xE9, 0x39, 0xE6, +0x00, 0x91, 0x01, 0xD6, 0x3B, 0xE5, 0xFB, 0xE6, +0x03, 0xD6, 0x24, 0xF5, 0x2C, 0x44, 0x30, 0xF0, +0x20, 0x6E, 0x24, 0x31, 0x2B, 0xF1, 0x18, 0x4E, +0xD9, 0xE1, 0x00, 0x91, 0x04, 0xD6, 0xC0, 0xAE, +0x2F, 0xE3, 0xC2, 0xEB, 0x03, 0x61, 0x04, 0x93, +0xD9, 0xE1, 0xC0, 0xCB, 0x30, 0xF0, 0x20, 0x6B, +0x04, 0xF5, 0xCC, 0x44, 0x2B, 0xF1, 0x18, 0x4B, +0xC4, 0x36, 0x79, 0xE6, 0x60, 0xAE, 0xFF, 0xF7, +0x1F, 0x69, 0xE7, 0xE1, 0x62, 0xE9, 0x02, 0x61, +0x6D, 0xE7, 0x60, 0xCE, 0x30, 0xF0, 0x20, 0x6B, +0x2B, 0xF1, 0x18, 0x4B, 0x89, 0xF2, 0xD8, 0x9B, +0x0F, 0xE9, 0xC3, 0xE9, 0x03, 0x61, 0xC1, 0xE0, +0x89, 0xF2, 0x18, 0xDB, 0x30, 0xF0, 0x20, 0x6E, +0x44, 0xF5, 0x6C, 0x44, 0x2B, 0xF1, 0x18, 0x4E, +0x64, 0x33, 0xCD, 0xE3, 0x03, 0x91, 0xC2, 0xAB, +0xFF, 0xF7, 0x1F, 0x68, 0x23, 0xE0, 0xC3, 0xE8, +0x02, 0x61, 0xD9, 0xE1, 0xC2, 0xCB, 0x30, 0xF0, +0x20, 0x6E, 0x84, 0xF5, 0x6C, 0x44, 0x2B, 0xF1, +0x18, 0x4E, 0x64, 0x33, 0xCD, 0xE3, 0x02, 0x91, +0xC2, 0xAB, 0xFF, 0xF7, 0x1F, 0x68, 0x23, 0xE0, +0xC2, 0xE8, 0x02, 0x61, 0xD9, 0xE1, 0xC2, 0xCB, +0x30, 0xF0, 0x20, 0x6E, 0x64, 0xF5, 0x6C, 0x44, 0x2B, 0xF1, 0x18, 0x4E, 0x64, 0x33, 0xCD, 0xE3, -0x03, 0x91, 0xC2, 0xAB, 0xFF, 0xF7, 0x1F, 0x68, -0x23, 0xE0, 0xC3, 0xE8, 0x02, 0x61, 0xD9, 0xE1, -0xC2, 0xCB, 0x30, 0xF0, 0x20, 0x6E, 0x84, 0xF5, -0x6C, 0x44, 0x2B, 0xF1, 0x18, 0x4E, 0x64, 0x33, -0xCD, 0xE3, 0x02, 0x91, 0xC2, 0xAB, 0xFF, 0xF7, -0x1F, 0x68, 0x23, 0xE0, 0xC2, 0xE8, 0x02, 0x61, -0xD9, 0xE1, 0xC2, 0xCB, 0x30, 0xF0, 0x20, 0x6E, -0x64, 0xF5, 0x6C, 0x44, 0x2B, 0xF1, 0x18, 0x4E, -0x64, 0x33, 0xCD, 0xE3, 0xC2, 0xAB, 0xFF, 0xF7, -0x1F, 0x68, 0xA3, 0xE0, 0xC3, 0xE8, 0x02, 0x61, -0xD9, 0xE5, 0xC2, 0xCB, 0x01, 0x96, 0x75, 0xAE, -0xFF, 0xF7, 0x1F, 0x6E, 0xBB, 0xE6, 0xC3, 0xEB, -0x03, 0x60, 0x01, 0x90, 0x6D, 0xE5, 0x75, 0xC8, -0x01, 0x91, 0xFF, 0xF7, 0x1F, 0x6E, 0xBB, 0xE6, -0x76, 0xA9, 0xC3, 0xEB, 0x02, 0x60, 0x75, 0xE5, -0xB6, 0xC9, 0x6A, 0x42, 0xFF, 0x6D, 0xAC, 0xEB, -0x02, 0x5B, 0x00, 0x6B, 0x0A, 0x61, 0x6C, 0x42, -0xAC, 0xEB, 0x02, 0x5B, 0x01, 0x6B, 0x05, 0x61, -0x03, 0x22, 0x03, 0x72, 0x03, 0x6B, 0x01, 0x61, -0x02, 0x6B, 0x88, 0x32, 0x69, 0xE2, 0x30, 0xF0, -0x20, 0x6D, 0xA4, 0xF5, 0x0C, 0x4A, 0x2B, 0xF1, -0x18, 0x4D, 0x44, 0x32, 0xA9, 0xE2, 0xA2, 0xAA, -0xFF, 0xF7, 0x1F, 0x6E, 0xFB, 0xE6, 0xC2, 0xED, -0x02, 0x60, 0xBD, 0xE7, 0xE2, 0xCA, 0x88, 0x34, -0x6D, 0xE4, 0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF6, -0x0C, 0x4B, 0x2B, 0xF1, 0x18, 0x4A, 0x64, 0x33, -0x4D, 0xE3, 0x00, 0x95, 0x42, 0xAB, 0xFF, 0xF7, -0x1F, 0x6C, 0xB3, 0xE4, 0x82, 0xEA, 0x02, 0x60, -0x49, 0xE5, 0x42, 0xCB, 0x07, 0x91, 0x06, 0x90, -0x04, 0x63, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x21, 0x6A, 0x12, 0xF5, -0x58, 0x9A, 0x01, 0x6B, 0xFF, 0x68, 0x6C, 0xEA, -0x8C, 0xE8, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, -0xA4, 0xF5, 0x04, 0x4C, 0x80, 0x18, 0x39, 0x43, -0xD4, 0xF3, 0x8C, 0x40, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x84, 0x34, 0x00, 0x6B, -0x51, 0xE4, 0x60, 0xCC, 0xF4, 0xF3, 0x8C, 0x40, -0x84, 0x34, 0x51, 0xE4, 0x60, 0xCC, 0xB4, 0xF3, -0x8C, 0x40, 0x84, 0x34, 0x51, 0xE4, 0x60, 0xCC, -0x94, 0xF3, 0x8C, 0x40, 0x84, 0x34, 0x41, 0xE0, -0x51, 0xE4, 0x60, 0xCC, 0x29, 0xF0, 0x78, 0xC0, -0x49, 0xF0, 0x78, 0xC0, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, 0x6C, 0x9B, -0xFF, 0x6A, 0x8C, 0xEA, 0x50, 0x32, 0x69, 0xE2, -0x60, 0x9A, 0x30, 0xF0, 0x21, 0x6C, 0x94, 0xF6, -0x14, 0x4C, 0x04, 0xD3, 0x61, 0x9A, 0x04, 0x05, -0x10, 0x6E, 0x05, 0xD3, 0x62, 0x9A, 0x06, 0xD3, -0x43, 0x9A, 0x07, 0xD2, 0x00, 0x18, 0xEC, 0xD7, -0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, -0xFF, 0x69, 0x2C, 0xEC, 0x80, 0x18, 0xF1, 0x47, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x49, 0xF5, 0x7E, 0xA2, 0x7F, 0x68, 0x01, 0x6C, -0x6C, 0xE8, 0xE7, 0xF3, 0x60, 0x9A, 0x2C, 0xE8, -0x8C, 0xEB, 0x21, 0x23, 0x69, 0xF5, 0x85, 0xA2, -0x69, 0xF5, 0xC4, 0xA2, 0x49, 0xF5, 0xFF, 0xA2, -0x04, 0xD4, 0x69, 0xF5, 0x88, 0xA2, 0x3F, 0x6B, -0x6C, 0xEE, 0x6C, 0xEC, 0x05, 0xD4, 0x69, 0xF5, -0x80, 0xA2, 0xB0, 0x67, 0x2C, 0xEE, 0x6C, 0xEC, -0x06, 0xD4, 0x69, 0xF5, 0x81, 0xA2, 0x8C, 0xEB, -0x07, 0xD3, 0x69, 0xF5, 0x40, 0xA2, 0x30, 0xF0, -0x20, 0x6C, 0xA4, 0xF5, 0x10, 0x4C, 0x5E, 0x32, -0x08, 0xD2, 0x80, 0x18, 0x39, 0x43, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, 0x90, 0x67, -0x40, 0xEA, 0xC0, 0xF1, 0x0F, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x49, 0xF5, -0x9D, 0xA2, 0x80, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, -0xFF, 0x6C, 0x8C, 0xEB, 0x0B, 0x23, 0xE7, 0xF3, -0x40, 0x9A, 0x01, 0x6B, 0x6C, 0xEA, 0xA0, 0xF1, -0x1D, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xE4, 0xF5, -0x08, 0x4C, 0x10, 0x10, 0x69, 0xF5, 0xA3, 0xA2, -0x10, 0x6B, 0xAC, 0xEB, 0x8C, 0xEB, 0x0D, 0x23, -0xE7, 0xF3, 0x40, 0x9A, 0x01, 0x6B, 0x6C, 0xEA, -0xA0, 0xF1, 0x0C, 0x22, 0x30, 0xF0, 0x20, 0x6C, -0xE4, 0xF5, 0x14, 0x4C, 0x80, 0x18, 0x39, 0x43, -0xA5, 0x11, 0x69, 0xF5, 0x69, 0xA2, 0x3F, 0x6A, -0x6C, 0xEA, 0x8C, 0xEA, 0x02, 0x22, 0x3F, 0x72, -0x1E, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, -0x48, 0x9A, 0x14, 0x33, 0xFF, 0x6E, 0x49, 0xE3, -0x40, 0xA2, 0x4C, 0xEE, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x49, 0xF5, 0xBF, 0xA2, -0xCA, 0xED, 0x0D, 0x60, 0xE7, 0xF3, 0x40, 0x9A, -0x01, 0x6B, 0x6C, 0xEA, 0x80, 0xF1, 0x06, 0x22, -0x30, 0xF0, 0x20, 0x6C, 0x04, 0xF6, 0x00, 0x4C, -0x80, 0x18, 0x39, 0x43, 0x7F, 0x11, 0x30, 0x69, -0x38, 0xE8, 0x30, 0xF0, 0x21, 0x6A, 0x73, 0xF0, -0x00, 0x4A, 0x12, 0xE9, 0x25, 0xE2, 0x68, 0xA1, -0x40, 0x6A, 0x6C, 0xEA, 0x10, 0x22, 0x30, 0xF0, +0xC2, 0xAB, 0xFF, 0xF7, 0x1F, 0x68, 0xA3, 0xE0, +0xC3, 0xE8, 0x02, 0x61, 0xD9, 0xE5, 0xC2, 0xCB, +0x01, 0x96, 0x75, 0xAE, 0xFF, 0xF7, 0x1F, 0x6E, +0xBB, 0xE6, 0xC3, 0xEB, 0x03, 0x60, 0x01, 0x90, +0x6D, 0xE5, 0x75, 0xC8, 0x01, 0x91, 0xFF, 0xF7, +0x1F, 0x6E, 0xBB, 0xE6, 0x76, 0xA9, 0xC3, 0xEB, +0x02, 0x60, 0x75, 0xE5, 0xB6, 0xC9, 0x6A, 0x42, +0xFF, 0x6D, 0xAC, 0xEB, 0x02, 0x5B, 0x00, 0x6B, +0x0A, 0x61, 0x6C, 0x42, 0xAC, 0xEB, 0x02, 0x5B, +0x01, 0x6B, 0x05, 0x61, 0x03, 0x22, 0x03, 0x72, +0x03, 0x6B, 0x01, 0x61, 0x02, 0x6B, 0x88, 0x32, +0x69, 0xE2, 0x30, 0xF0, 0x20, 0x6D, 0xA4, 0xF5, +0x0C, 0x4A, 0x2B, 0xF1, 0x18, 0x4D, 0x44, 0x32, +0xA9, 0xE2, 0xA2, 0xAA, 0xFF, 0xF7, 0x1F, 0x6E, +0xFB, 0xE6, 0xC2, 0xED, 0x02, 0x60, 0xBD, 0xE7, +0xE2, 0xCA, 0x88, 0x34, 0x6D, 0xE4, 0x30, 0xF0, +0x20, 0x6A, 0x24, 0xF6, 0x0C, 0x4B, 0x2B, 0xF1, +0x18, 0x4A, 0x64, 0x33, 0x4D, 0xE3, 0x00, 0x95, +0x42, 0xAB, 0xFF, 0xF7, 0x1F, 0x6C, 0xB3, 0xE4, +0x82, 0xEA, 0x02, 0x60, 0x49, 0xE5, 0x42, 0xCB, +0x07, 0x91, 0x06, 0x90, 0x04, 0x63, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, 0x21, 0x6A, 0x12, 0xF5, 0x58, 0x9A, 0x01, 0x6B, -0x6C, 0xEA, 0x60, 0xF1, 0x0B, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x04, 0xF6, 0x1C, 0x4C, 0xB0, 0x67, -0x80, 0x18, 0x39, 0x43, 0x63, 0x11, 0x80, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, -0x0B, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x69, 0xF5, 0x81, 0xA2, 0xDF, 0xF6, -0x01, 0x4B, 0x8C, 0xEB, 0x69, 0xF5, 0x61, 0xC2, -0x5F, 0xA1, 0x1F, 0x6E, 0x3F, 0x6F, 0x4C, 0xEE, +0xFF, 0x68, 0x6C, 0xEA, 0x8C, 0xE8, 0x06, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF5, 0x08, 0x4C, +0x80, 0x18, 0x48, 0x43, 0xD4, 0xF3, 0x8C, 0x40, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x69, 0xF5, 0x64, 0xA2, 0xE7, 0xF3, 0x40, 0x9A, -0x6C, 0xEF, 0x01, 0x6B, 0x6C, 0xEA, 0x08, 0x22, -0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xEF, 0x24, 0xF6, -0x08, 0x4C, 0xB8, 0x67, 0x80, 0x18, 0x39, 0x43, +0x84, 0x34, 0x00, 0x6B, 0x51, 0xE4, 0x60, 0xCC, +0xF4, 0xF3, 0x8C, 0x40, 0x84, 0x34, 0x51, 0xE4, +0x60, 0xCC, 0xB4, 0xF3, 0x8C, 0x40, 0x84, 0x34, +0x51, 0xE4, 0x60, 0xCC, 0x94, 0xF3, 0x8C, 0x40, +0x84, 0x34, 0x41, 0xE0, 0x51, 0xE4, 0x60, 0xCC, +0x29, 0xF0, 0x78, 0xC0, 0x49, 0xF0, 0x78, 0xC0, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF3, 0x6C, 0x9B, 0xFF, 0x6A, 0x8C, 0xEA, +0x50, 0x32, 0x69, 0xE2, 0x60, 0x9A, 0x30, 0xF0, +0x21, 0x6C, 0x94, 0xF6, 0x14, 0x4C, 0x04, 0xD3, +0x61, 0x9A, 0x04, 0x05, 0x10, 0x6E, 0x05, 0xD3, +0x62, 0x9A, 0x06, 0xD3, 0x43, 0x9A, 0x07, 0xD2, +0x00, 0x18, 0x42, 0xD7, 0x09, 0x97, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, +0x0E, 0xD1, 0x0D, 0xD0, 0xFF, 0x69, 0x2C, 0xEC, +0x80, 0x18, 0x00, 0x48, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0x49, 0xF5, 0x7E, 0xA2, +0x7F, 0x68, 0x01, 0x6C, 0x6C, 0xE8, 0xE7, 0xF3, +0x60, 0x9A, 0x2C, 0xE8, 0x8C, 0xEB, 0x21, 0x23, +0x69, 0xF5, 0x85, 0xA2, 0x69, 0xF5, 0xC4, 0xA2, +0x49, 0xF5, 0xFF, 0xA2, 0x04, 0xD4, 0x69, 0xF5, +0x88, 0xA2, 0x3F, 0x6B, 0x6C, 0xEE, 0x6C, 0xEC, +0x05, 0xD4, 0x69, 0xF5, 0x80, 0xA2, 0xB0, 0x67, +0x2C, 0xEE, 0x6C, 0xEC, 0x06, 0xD4, 0x69, 0xF5, +0x81, 0xA2, 0x8C, 0xEB, 0x07, 0xD3, 0x69, 0xF5, +0x40, 0xA2, 0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF5, +0x14, 0x4C, 0x5E, 0x32, 0x08, 0xD2, 0x80, 0x18, +0x48, 0x43, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x5C, 0x9A, 0x90, 0x67, 0x40, 0xEA, 0xC0, 0xF1, +0x0F, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0x49, 0xF5, 0x9D, 0xA2, 0x80, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0xFF, 0x6C, 0x8C, 0xEB, +0x0B, 0x23, 0xE7, 0xF3, 0x40, 0x9A, 0x01, 0x6B, +0x6C, 0xEA, 0xA0, 0xF1, 0x1D, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0xE4, 0xF5, 0x0C, 0x4C, 0x10, 0x10, +0x69, 0xF5, 0xA3, 0xA2, 0x10, 0x6B, 0xAC, 0xEB, +0x8C, 0xEB, 0x0D, 0x23, 0xE7, 0xF3, 0x40, 0x9A, +0x01, 0x6B, 0x6C, 0xEA, 0xA0, 0xF1, 0x0C, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0xE4, 0xF5, 0x18, 0x4C, +0x80, 0x18, 0x48, 0x43, 0xA5, 0x11, 0x69, 0xF5, +0x69, 0xA2, 0x3F, 0x6A, 0x6C, 0xEA, 0x8C, 0xEA, +0x02, 0x22, 0x3F, 0x72, 0x1E, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF1, 0x4C, 0x9A, 0x14, 0x33, +0xFF, 0x6E, 0x49, 0xE3, 0x40, 0xA2, 0x4C, 0xEE, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x69, 0xF5, 0x64, 0xA2, 0xDF, 0xA1, 0x1F, 0x6D, -0x6C, 0xED, 0x20, 0x6B, 0x6B, 0xEB, 0xCC, 0xEB, -0xAD, 0xEB, 0x7F, 0xC1, 0x69, 0xF5, 0x60, 0xA2, -0x69, 0xF5, 0xA8, 0xA2, 0x69, 0xF5, 0xC1, 0xA2, -0x3F, 0x6C, 0x8C, 0xED, 0x8C, 0xEE, 0x6C, 0xEC, -0x8D, 0xE6, 0x85, 0x67, 0x6E, 0xEC, 0x0A, 0x2C, +0x49, 0xF5, 0xBF, 0xA2, 0xCA, 0xED, 0x0D, 0x60, 0xE7, 0xF3, 0x40, 0x9A, 0x01, 0x6B, 0x6C, 0xEA, -0x10, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF6, -0x00, 0x4C, 0x09, 0x10, 0xE7, 0xF3, 0x40, 0x9A, -0x01, 0x6B, 0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x44, 0xF6, 0x0C, 0x4C, 0x80, 0x18, -0x39, 0x43, 0x30, 0xF0, 0x21, 0x6A, 0x94, 0xF6, -0x78, 0xA2, 0x80, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, -0xFF, 0x6B, 0x6C, 0xEA, 0x00, 0x6B, 0x03, 0x22, -0x6C, 0x81, 0xC0, 0xF7, 0x62, 0x33, 0x30, 0xF0, -0x21, 0x6A, 0xB4, 0xF6, 0x81, 0xA2, 0x3F, 0x6A, -0x8C, 0xEA, 0x02, 0x22, 0x3F, 0x72, 0x10, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x69, 0xF5, 0xA5, 0xA2, 0x49, 0xF5, 0x9F, 0xA2, -0xAE, 0xEC, 0x06, 0x2C, 0x69, 0xF5, 0x40, 0xA2, -0x3F, 0x6C, 0x4C, 0xEC, 0x0A, 0xD4, 0x02, 0x10, -0x00, 0x6D, 0x0A, 0xD5, 0x43, 0x23, 0x30, 0xF0, -0x20, 0x6A, 0x84, 0xF4, 0x6C, 0x40, 0x2B, 0xF1, -0x18, 0x4A, 0x64, 0x33, 0x4D, 0xE3, 0x80, 0xAB, -0x0A, 0x97, 0x91, 0xE7, 0x80, 0xCB, 0xA4, 0xF4, -0x6C, 0x40, 0x64, 0x33, 0x4D, 0xE3, 0x69, 0xF5, -0xA8, 0xA2, 0xC0, 0xAB, 0x3F, 0x6C, 0x8C, 0xED, -0xB5, 0xE6, 0xA0, 0xCB, 0xE4, 0xF4, 0xAC, 0x40, -0xA4, 0x35, 0x55, 0xE5, 0x69, 0xF5, 0xC0, 0xA2, -0xE0, 0xAD, 0x8C, 0xEE, 0xD9, 0xE7, 0xC0, 0xCD, -0x69, 0xF5, 0xC1, 0xA2, 0xC4, 0xF4, 0xAC, 0x40, -0xA4, 0x35, 0x55, 0xE5, 0xCC, 0xEC, 0xC0, 0xAD, -0x91, 0xE6, 0x80, 0xCD, 0xA0, 0xAB, 0x70, 0xA1, -0x63, 0xED, 0x80, 0xF0, 0x13, 0x61, 0xE7, 0xF3, -0x40, 0x9A, 0x01, 0x6B, 0x6C, 0xEA, 0x07, 0x22, -0xD1, 0xA1, 0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF6, -0x18, 0x4C, 0x80, 0x18, 0x39, 0x43, 0x90, 0x67, -0x80, 0x18, 0x81, 0x51, 0x90, 0x67, 0x80, 0x18, -0x5C, 0x47, 0x80, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0xD4, 0xF3, 0x6C, 0x40, 0x2B, 0xF1, 0x18, 0x4A, -0x64, 0x33, 0x4D, 0xE3, 0x80, 0xAB, 0x0A, 0x95, -0x91, 0xE5, 0x80, 0xCB, 0x94, 0xF3, 0x8C, 0x40, -0x84, 0x34, 0x69, 0xF5, 0xA8, 0xA2, 0x51, 0xE4, -0xC0, 0xAC, 0x3F, 0x6B, 0x6C, 0xED, 0xB5, 0xE6, -0xA0, 0xCC, 0xF4, 0xF3, 0xAC, 0x40, 0xA4, 0x35, -0x69, 0xF5, 0xC0, 0xA2, 0x55, 0xE5, 0xE0, 0xAD, -0x6C, 0xEE, 0xD9, 0xE7, 0xC0, 0xCD, 0xB4, 0xF3, -0xAC, 0x40, 0xA4, 0x35, 0x69, 0xF5, 0xC1, 0xA2, -0x55, 0xE5, 0xE0, 0xAD, 0x6C, 0xEE, 0xD9, 0xE7, -0xC0, 0xCD, 0x54, 0xF4, 0xAC, 0x40, 0xA4, 0x35, -0x55, 0xE5, 0xC0, 0xAD, 0x0A, 0x97, 0xD9, 0xE7, -0xC0, 0xCD, 0x69, 0xF5, 0xC8, 0xA2, 0x34, 0xF4, -0xAC, 0x40, 0xA4, 0x35, 0x55, 0xE5, 0xCC, 0xEB, -0xC0, 0xAD, 0x6D, 0xE6, 0x60, 0xCD, 0x80, 0xAC, -0x20, 0xF0, 0x68, 0xA1, 0x63, 0xEC, 0x1A, 0x61, -0x20, 0xF0, 0x6E, 0xA1, 0x17, 0x2B, 0xE7, 0xF3, -0x40, 0x9A, 0x01, 0x6B, 0x6C, 0xEA, 0x09, 0x22, -0x20, 0xF0, 0xC8, 0xA1, 0x30, 0xF0, 0x20, 0x6C, -0x64, 0xF6, 0x14, 0x4C, 0xB0, 0x67, 0x80, 0x18, -0x39, 0x43, 0x90, 0x67, 0x80, 0x18, 0x14, 0x50, -0x20, 0xF0, 0x45, 0xA1, 0x01, 0x4A, 0x20, 0xF0, -0x45, 0xC1, 0x24, 0x10, 0x6F, 0xA1, 0x40, 0x6A, -0x6C, 0xEA, 0x20, 0x22, 0x30, 0xF0, 0x21, 0x6A, -0x12, 0xF5, 0x58, 0x9A, 0x01, 0x6B, 0x6C, 0xEA, -0x07, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x84, 0xF6, -0x08, 0x4C, 0xB0, 0x67, 0x80, 0x18, 0x39, 0x43, -0x30, 0xF0, 0x20, 0x6A, 0x94, 0xF3, 0x6C, 0x40, -0x64, 0x33, 0x2B, 0xF1, 0x18, 0x4A, 0x49, 0xE3, -0x40, 0xAA, 0x03, 0x22, 0x90, 0x67, 0x80, 0x18, -0x14, 0x50, 0x6F, 0xA1, 0x41, 0x6A, 0x4B, 0xEA, -0x6C, 0xEA, 0x4F, 0xC1, 0x0A, 0x94, 0x30, 0xF0, -0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x69, 0xF5, -0xA8, 0xA3, 0x69, 0xF5, 0xC1, 0xA3, 0x69, 0xF5, -0xE0, 0xA3, 0x04, 0xD4, 0x69, 0xF5, 0x84, 0xA3, -0x3F, 0x6A, 0x4C, 0xED, 0x4C, 0xEC, 0x05, 0xD4, -0x49, 0xF5, 0x9D, 0xA3, 0x1F, 0x6B, 0x4C, 0xEE, -0x8C, 0xEB, 0x4C, 0xEF, 0x90, 0x67, 0x06, 0xD3, -0x80, 0x18, 0x6F, 0x47, 0x0F, 0x97, 0x0E, 0x91, -0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF0, 0x6C, 0xA2, -0x82, 0xF0, 0x0C, 0x4A, 0x60, 0xC4, 0x41, 0xA2, -0x40, 0xC5, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF1, 0x68, 0x9B, 0xFF, 0x6A, 0x4C, 0xEC, -0x94, 0x34, 0x71, 0xE4, 0x60, 0xA4, 0x6C, 0xEA, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF3, 0x6C, 0x9B, 0xFF, 0x6A, 0x4C, 0xEC, -0x94, 0x34, 0x71, 0xE4, 0x60, 0xA4, 0x6C, 0xEA, -0x20, 0xE8, 0x00, 0x65, 0x40, 0xA4, 0x60, 0xA5, -0x60, 0xC4, 0x40, 0xC5, 0x20, 0xE8, 0x00, 0x65, -0xFF, 0x6B, 0x6C, 0xEC, 0x0C, 0x5C, 0x13, 0x61, -0x2C, 0x5C, 0x06, 0x60, 0x48, 0x44, 0xFC, 0x4A, -0x4F, 0x32, 0x01, 0x4A, 0x6C, 0xEA, 0x20, 0xE8, -0x36, 0x5C, 0x09, 0x61, 0x40, 0x5C, 0x02, 0x6A, -0x07, 0x61, 0x4A, 0x5C, 0x03, 0x6A, 0x04, 0x61, -0x54, 0x5C, 0x04, 0x6A, 0x01, 0x61, 0x01, 0x6A, -0x20, 0xE8, 0x00, 0x65, 0xAA, 0xEC, 0x64, 0x6A, -0x31, 0x60, 0x2F, 0x24, 0x83, 0xED, 0x2D, 0x61, -0x02, 0xF0, 0x00, 0x5D, 0x04, 0x6A, 0x0C, 0x61, -0x04, 0xF0, 0x00, 0x5D, 0x03, 0x6A, 0x08, 0x61, -0x08, 0xF0, 0x00, 0x5D, 0x02, 0x6A, 0x04, 0x61, -0xEF, 0xF7, 0x1E, 0x4A, 0x43, 0xED, 0x58, 0x67, -0xA4, 0xEA, 0x84, 0xEA, 0x00, 0x6B, 0x01, 0x6A, -0xA6, 0x35, 0x83, 0xED, 0x11, 0x60, 0x81, 0xF4, -0x00, 0x6E, 0xC7, 0xEB, 0xC9, 0xE2, 0x01, 0x75, -0xFF, 0xF7, 0x1F, 0x6E, 0xCC, 0xEA, 0xB3, 0xE4, -0x04, 0x61, 0x02, 0x5C, 0x04, 0x60, 0x01, 0x74, -0x06, 0x60, 0x02, 0x2C, 0x04, 0x10, 0x02, 0x6D, -0x01, 0x4B, 0x0C, 0x73, 0xE9, 0x61, 0x5A, 0x32, -0x01, 0x10, 0x00, 0x6A, 0xFF, 0x6B, 0x6C, 0xEA, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0xFF, 0x6B, 0x8C, 0xEB, 0x62, 0xF4, 0x80, 0x9A, -0xFE, 0x63, 0x62, 0xF4, 0x00, 0x4A, 0x00, 0xD4, -0x81, 0x9A, 0x44, 0xAA, 0x00, 0xF0, 0x0A, 0x05, -0x01, 0xD4, 0x9D, 0x67, 0x44, 0xCC, 0x40, 0xA4, -0x43, 0xEB, 0x05, 0x61, 0x01, 0x4B, 0x4B, 0xE3, -0xFF, 0x6B, 0x6C, 0xEA, 0x04, 0x10, 0x01, 0x4C, -0xAA, 0xEC, 0xF5, 0x61, 0x00, 0x6A, 0x02, 0x63, -0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0xFF, 0x6A, 0x04, 0x67, 0x4C, 0xE8, -0xAC, 0xEA, 0x7F, 0x6B, 0x82, 0x67, 0x6C, 0xEC, -0x80, 0x18, 0x47, 0x49, 0x30, 0x6B, 0x78, 0xE8, -0x14, 0x6C, 0x30, 0xF0, 0x21, 0x6B, 0x73, 0xF0, -0x00, 0x4B, 0x12, 0xE8, 0x0D, 0xE3, 0x98, 0xEA, -0x12, 0xEA, 0x20, 0xF0, 0x48, 0xC3, 0x05, 0x97, -0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFF, 0x6B, 0x6C, 0xEC, 0x45, 0x67, 0x30, 0x6D, -0xB8, 0xEC, 0x30, 0xF0, 0x21, 0x6D, 0x73, 0xF0, -0x00, 0x4D, 0x6C, 0xEA, 0x12, 0xEC, 0x95, 0xE5, -0xC0, 0xA5, 0x81, 0xA5, 0x30, 0xF0, 0x21, 0x6D, -0x74, 0xF0, 0xEC, 0xA5, 0x04, 0x6D, 0xEC, 0xED, -0x6C, 0xED, 0x16, 0x2D, 0xFF, 0x72, 0x02, 0x61, -0x43, 0x67, 0x20, 0xE8, 0x7F, 0x6D, 0xAC, 0xEE, -0x4C, 0xED, 0xA3, 0xEE, 0x0A, 0x60, 0x80, 0x6C, -0x8B, 0xEC, 0x4C, 0xEC, 0xCD, 0xEC, 0x00, 0xF6, -0x80, 0x32, 0x00, 0xF6, 0x43, 0x32, 0x6C, 0xEA, -0x20, 0xE8, 0x83, 0xED, 0x01, 0x60, 0x44, 0x67, -0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEE, -0x4C, 0xEC, 0x4C, 0xED, 0x06, 0x26, 0x2C, 0x5C, -0x04, 0x61, 0x68, 0x44, 0xE8, 0x4B, 0x4C, 0xEB, -0x01, 0x10, 0x64, 0x67, 0x20, 0x5B, 0x0B, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, 0x58, 0x9A, -0xAC, 0x35, 0xE0, 0x4B, 0x55, 0xE5, 0x40, 0x9D, -0xFF, 0x6D, 0xAC, 0xEB, 0x07, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF3, 0x50, 0x9A, 0xAC, 0x35, -0x55, 0xE5, 0x40, 0x9D, 0x01, 0x6D, 0xA4, 0xEB, -0x4C, 0xED, 0xFF, 0x6A, 0x01, 0x25, 0x44, 0x67, -0x20, 0xE8, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x4C, 0xEE, -0x30, 0x68, 0x18, 0xEE, 0x30, 0xF0, 0x21, 0x6B, -0x73, 0xF0, 0x00, 0x4B, 0x4C, 0xED, 0x4C, 0xEC, -0x27, 0x67, 0x01, 0x75, 0x09, 0xD6, 0x4C, 0xE9, -0x12, 0xE8, 0x01, 0xE3, 0x7F, 0x6B, 0x6C, 0xEC, -0x1F, 0x61, 0x0C, 0x5C, 0x05, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0x28, 0xF3, 0x08, 0x4A, 0x1E, 0x10, -0x0A, 0x29, 0xF4, 0x4C, 0x4C, 0xEC, 0x03, 0x6A, -0x58, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0xA8, 0xF4, -0x0C, 0x4A, 0x12, 0xEC, 0x36, 0x10, 0x2C, 0x5C, -0xC0, 0xF0, 0x0F, 0x61, 0xD4, 0x4C, 0x4C, 0xEC, -0x03, 0x6A, 0x58, 0xEC, 0x30, 0xF0, 0x20, 0x6A, -0x48, 0xF4, 0x10, 0x4A, 0x12, 0xEC, 0x29, 0x10, -0x0C, 0x5C, 0x10, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x28, 0xF3, 0x14, 0x4A, 0x91, 0xE2, 0x80, 0xA4, -0x09, 0x95, 0xD1, 0x67, 0x80, 0x18, 0x7D, 0x49, -0x8C, 0xA0, 0x19, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, -0x6C, 0xC0, 0xB4, 0x10, 0x0A, 0x29, 0xF4, 0x4C, -0x4C, 0xEC, 0x03, 0x6A, 0x58, 0xEC, 0x30, 0xF0, -0x20, 0x6A, 0x48, 0xF5, 0x10, 0x4A, 0x12, 0xEC, -0x0C, 0x10, 0x2C, 0x5C, 0xA0, 0xF0, 0x05, 0x61, -0xD4, 0x4C, 0x4C, 0xEC, 0x03, 0x6A, 0x58, 0xEC, -0x30, 0xF0, 0x20, 0x6A, 0xE8, 0xF4, 0x14, 0x4A, -0x12, 0xEC, 0x89, 0xE2, 0x08, 0xD2, 0x01, 0x6A, -0x4B, 0xEA, 0x7D, 0x67, 0x00, 0x6C, 0x50, 0xC3, -0x51, 0xC3, 0x52, 0xC3, 0x07, 0xD4, 0x06, 0xD4, -0x07, 0x94, 0x08, 0x93, 0x89, 0xE3, 0x80, 0xA2, -0x2C, 0x74, 0x03, 0x61, 0x2C, 0x6C, 0x01, 0x29, -0x0C, 0x6C, 0x09, 0x95, 0xD1, 0x67, 0x80, 0x18, -0x7D, 0x49, 0xFF, 0x72, 0x08, 0x60, 0x06, 0x94, -0xBD, 0x67, 0x8D, 0xE5, 0x50, 0xC3, 0x01, 0x4C, -0xFF, 0x6A, 0x4C, 0xEC, 0x06, 0xD4, 0x07, 0x95, -0x01, 0x4D, 0x03, 0x75, 0x07, 0xD5, 0xE4, 0x61, -0x06, 0x92, 0x05, 0x2A, 0x6C, 0xA0, 0xE7, 0x4A, -0x6C, 0xEA, 0x4C, 0xC0, 0x6E, 0x10, 0x7A, 0xA0, -0x02, 0x6A, 0x6C, 0xEA, 0x1F, 0x22, 0x6F, 0xA0, -0x30, 0x6A, 0x6C, 0xEA, 0x20, 0x72, 0x1A, 0x61, -0x05, 0x21, 0x30, 0xF0, 0x20, 0x6A, 0x88, 0xF6, -0x04, 0x4A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x68, 0xF6, 0x1C, 0x4A, 0x9D, 0x67, 0x71, 0xA4, -0x2D, 0x5B, 0x01, 0x61, 0xE0, 0x4B, 0x40, 0x9A, -0x01, 0x6C, 0x84, 0xEB, 0x4C, 0xEC, 0x29, 0x24, -0x04, 0x04, 0x00, 0xF0, 0x11, 0x05, 0x80, 0x18, -0x1B, 0x49, 0x23, 0x10, 0x7A, 0xA0, 0x40, 0x6A, -0x6C, 0xEA, 0x1F, 0x22, 0x6F, 0xA0, 0x30, 0x6A, -0x6C, 0xEA, 0x20, 0x72, 0x1A, 0x61, 0x05, 0x21, -0x30, 0xF0, 0x20, 0x6A, 0x88, 0xF6, 0x14, 0x4A, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x88, 0xF6, -0x0C, 0x4A, 0xBD, 0x67, 0x71, 0xA5, 0x2D, 0x5B, -0x01, 0x61, 0xE0, 0x4B, 0x40, 0x9A, 0x01, 0x6C, -0x84, 0xEB, 0x4C, 0xEC, 0x06, 0x24, 0x7D, 0x67, -0x51, 0xA3, 0x50, 0xC3, 0x01, 0x6A, 0x4B, 0xEA, -0x51, 0xC3, 0x9D, 0x67, 0x71, 0xA4, 0xFF, 0x73, -0x0B, 0x60, 0x52, 0xA4, 0xFF, 0x72, 0x08, 0x60, -0x65, 0xC0, 0x6C, 0xA0, 0x44, 0xC0, 0x19, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0x10, 0x6B, 0x14, 0x10, -0xBD, 0x67, 0x51, 0xA5, 0xFF, 0x72, 0x03, 0x60, -0x72, 0xA5, 0xFF, 0x73, 0x07, 0x60, 0x7D, 0x67, -0x51, 0xA3, 0xFF, 0x72, 0x0B, 0x61, 0x52, 0xA3, -0xFF, 0x72, 0x08, 0x60, 0x6C, 0xA0, 0x44, 0xC0, -0x19, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x08, 0x6B, -0x6D, 0xEA, 0x4C, 0xC0, 0x9D, 0x67, 0x50, 0xA4, -0x01, 0x10, 0xFF, 0x6A, 0x0D, 0x97, 0x0C, 0x91, -0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFF, 0x63, 0x01, 0xD1, 0x00, 0xD0, 0xFF, 0x6A, -0x4C, 0xEC, 0x30, 0x6B, 0x78, 0xEC, 0x30, 0xF0, -0x21, 0x6B, 0x73, 0xF0, 0x00, 0x4B, 0x06, 0x67, -0x4C, 0xE8, 0xE0, 0xA5, 0x12, 0xEC, 0x91, 0xE3, -0xCC, 0xA4, 0x03, 0x6B, 0xCC, 0xEB, 0x4C, 0xEB, -0x54, 0x23, 0x04, 0x6B, 0xCC, 0xEB, 0x4C, 0xEB, -0x50, 0x23, 0xDF, 0xA4, 0x20, 0x6B, 0x6B, 0xEB, -0xCC, 0xEB, 0x4C, 0xEB, 0x4A, 0x23, 0x7F, 0xA4, -0x0A, 0x69, 0x7F, 0x6E, 0x76, 0x33, 0xFF, 0x4B, -0x38, 0xEB, 0xEC, 0xEE, 0x12, 0xEB, 0x4C, 0xEB, -0x27, 0x43, 0x2C, 0x49, 0x22, 0xEE, 0x3D, 0x61, -0x80, 0x69, 0x7B, 0xE6, 0x02, 0x70, 0xEC, 0xE9, -0x4C, 0xEE, 0x11, 0x61, 0x33, 0x76, 0x35, 0x60, -0x02, 0x21, 0xC4, 0xC4, 0x02, 0x10, 0x4F, 0x46, -0x44, 0xC4, 0x80, 0x6A, 0xEF, 0x46, 0x4B, 0xEA, -0x4D, 0xEF, 0xFF, 0x6A, 0x4C, 0xEF, 0xCC, 0xA4, -0xFF, 0xF6, 0x08, 0x4A, 0x17, 0x10, 0x35, 0x76, -0x24, 0x60, 0x34, 0x76, 0x03, 0x61, 0xB5, 0x6F, -0x15, 0x29, 0x06, 0x10, 0x05, 0x21, 0x80, 0x68, -0xE1, 0x46, 0x0B, 0xE8, 0x0D, 0xEF, 0x04, 0x10, -0x80, 0x6F, 0xEB, 0xEF, 0xCD, 0xEF, 0xFF, 0x6A, -0x01, 0x4E, 0xC4, 0xC4, 0xCC, 0xA4, 0x4C, 0xEF, -0x19, 0x6A, 0x4B, 0xEA, 0xCC, 0xEA, 0x08, 0x6E, -0xCD, 0xEA, 0x4C, 0xC4, 0xCC, 0xA4, 0x18, 0x6A, -0xCC, 0xEA, 0x03, 0x22, 0x44, 0xA4, 0x49, 0xE3, -0x44, 0xC4, 0x6D, 0xE7, 0x60, 0xC5, 0x01, 0x6A, -0x01, 0x10, 0x00, 0x6A, 0x01, 0x91, 0x00, 0x90, -0x01, 0x63, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, -0x30, 0x6B, 0x78, 0xEA, 0x30, 0xF0, 0x21, 0x6C, -0x73, 0xF0, 0x00, 0x4C, 0x12, 0xEB, 0x6D, 0xE4, -0x03, 0x2E, 0x25, 0x67, 0x00, 0x68, 0x02, 0x10, -0x26, 0x67, 0x20, 0x68, 0x1F, 0x6C, 0x00, 0xF6, -0x80, 0x37, 0x00, 0xF6, 0xE3, 0x37, 0x1F, 0x65, -0x01, 0x6F, 0xE4, 0xEC, 0x2C, 0xEF, 0x10, 0x27, -0xEC, 0xA3, 0x38, 0x67, 0x21, 0xE0, 0x1F, 0x65, -0x38, 0x67, 0x03, 0x6F, 0xFF, 0x6C, 0x2C, 0xEF, -0x8C, 0xEF, 0x8C, 0xE8, 0x09, 0x27, 0x0C, 0x58, -0x07, 0x61, 0x20, 0x48, 0x8C, 0xE8, 0x04, 0x10, -0xFF, 0x4C, 0xE1, 0x44, 0xE4, 0x2F, 0x00, 0x68, -0x00, 0x69, 0x02, 0x2D, 0xA6, 0x67, 0x20, 0x69, -0x00, 0x6C, 0x01, 0x6F, 0xE4, 0xEC, 0x00, 0xF6, -0x80, 0x36, 0xAC, 0xEF, 0x00, 0xF6, 0xC3, 0x36, -0x0D, 0x27, 0xC5, 0xE1, 0xCC, 0xA3, 0x03, 0x6D, -0xFF, 0x6C, 0xCC, 0xED, 0x8C, 0xED, 0x8C, 0xE9, -0x09, 0x25, 0x0C, 0x59, 0x07, 0x61, 0x20, 0x49, -0x8C, 0xE9, 0x04, 0x10, 0x01, 0x4C, 0x20, 0x74, -0xE8, 0x61, 0x00, 0x69, 0x00, 0xC3, 0x21, 0xC3, -0x82, 0x67, 0x80, 0x18, 0x0F, 0x49, 0x7F, 0x6B, -0x4C, 0xEB, 0x63, 0xE8, 0x50, 0x67, 0x09, 0x61, -0xFF, 0x6A, 0x83, 0x67, 0x4C, 0xEB, 0x2C, 0xEA, -0x43, 0xEB, 0x01, 0x60, 0x91, 0x67, 0xFF, 0x6A, -0x8C, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFF, 0x63, 0x01, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF3, 0xD0, 0x9A, -0x03, 0x6A, 0x02, 0x68, 0x40, 0xC6, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF3, 0xB4, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF2, 0xE8, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF3, 0x78, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF3, 0x9C, 0x9A, 0x01, 0x6A, -0xE0, 0xDD, 0x80, 0xDB, 0x00, 0xC6, 0xE0, 0xDD, -0x80, 0xDB, 0x40, 0xC6, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF4, 0x40, 0x9A, 0x40, 0xDD, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x80, 0xDB, -0xC8, 0xF5, 0x11, 0xC2, 0x00, 0x68, 0x00, 0xC6, -0xE0, 0xDD, 0x80, 0xDB, 0x04, 0x6B, 0xC8, 0xF5, -0x70, 0xC2, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, -0xE4, 0x63, 0x37, 0x62, 0x36, 0xD1, 0x35, 0xD0, -0x30, 0xF0, 0x20, 0x6D, 0x07, 0x04, 0x02, 0xF4, -0x0C, 0x4D, 0x54, 0x6E, 0x00, 0x18, 0xEC, 0xD7, -0x30, 0xF0, 0x20, 0x6D, 0x1C, 0x04, 0xA2, 0xF3, -0x18, 0x4D, 0x54, 0x6E, 0x00, 0x18, 0xEC, 0xD7, -0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF3, 0x6C, 0x9A, -0xA2, 0xF3, 0x0C, 0x4A, 0x30, 0xF0, 0x21, 0x68, -0x04, 0xD3, 0x61, 0x9A, 0x44, 0xAA, 0x73, 0xF0, -0x00, 0x48, 0x05, 0xD3, 0x7D, 0x67, 0x4C, 0xCB, -0x30, 0xF0, 0x21, 0x6A, 0x73, 0xF6, 0x00, 0x4A, -0x32, 0xD2, 0x68, 0xA0, 0x20, 0x6A, 0xC7, 0xA0, -0x4B, 0xEA, 0x6C, 0xEA, 0x09, 0x6B, 0x6D, 0xEA, -0xEA, 0x4B, 0xCC, 0xEB, 0x04, 0x6E, 0xEC, 0xA0, -0xCB, 0xEE, 0xCC, 0xEB, 0x67, 0xC0, 0x04, 0x6B, -0xED, 0xEB, 0xCC, 0xEB, 0x20, 0x6E, 0xCD, 0xEA, -0x40, 0x6E, 0xCD, 0xEA, 0xDA, 0xA0, 0x48, 0xC0, -0x03, 0x6A, 0x4B, 0xEA, 0xCC, 0xEA, 0x41, 0x6E, -0xCB, 0xEE, 0x00, 0x6C, 0xCC, 0xEA, 0xCF, 0xA0, -0x81, 0xC0, 0x82, 0xC0, 0x99, 0xC0, 0x31, 0x6C, -0x8B, 0xEC, 0xCC, 0xEC, 0x8F, 0xC0, 0x7F, 0x6C, -0x8C, 0xEB, 0x00, 0x6C, 0x8A, 0xC0, 0x8A, 0xC8, -0xDF, 0x4C, 0x8C, 0xEA, 0x8D, 0xA0, 0x5A, 0xC0, -0x02, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, 0x6C, 0xC0, -0x4D, 0xC0, 0x00, 0x6B, 0x33, 0x6D, 0x01, 0x6A, -0x7F, 0xC0, 0x20, 0xF0, 0x6E, 0xC0, 0xA0, 0xC0, -0xA6, 0xC0, 0x20, 0xF0, 0x48, 0xC0, 0x30, 0xF0, -0x20, 0x69, 0x80, 0xF2, 0x48, 0x99, 0x87, 0x40, -0x1A, 0x4C, 0xFF, 0x6D, 0x02, 0x6E, 0x40, 0xEA, -0x80, 0xF2, 0x48, 0x99, 0x87, 0x40, 0x1C, 0x4C, -0x00, 0x6D, 0x02, 0x6E, 0x40, 0xEA, 0x32, 0x93, -0x30, 0x48, 0x6A, 0xE8, 0xAE, 0x61, 0x30, 0xF0, -0x20, 0x68, 0x80, 0x18, 0x7D, 0x4A, 0x30, 0xF0, -0x21, 0x69, 0x80, 0xF2, 0x4C, 0x98, 0x73, 0xF6, -0x00, 0x49, 0x91, 0x67, 0x1C, 0x05, 0x54, 0x6E, -0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x98, 0x87, 0x41, -0x4D, 0x4C, 0x07, 0x05, 0x54, 0x6E, 0x40, 0xEA, -0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, 0x21, 0x6C, -0x54, 0xF0, 0x1A, 0x4C, 0x04, 0x05, 0x0A, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x21, 0x6A, 0x30, 0xF0, -0x21, 0x6B, 0x13, 0xF7, 0x0A, 0x4A, 0xB3, 0xF7, -0x12, 0x4B, 0x0A, 0x6C, 0x80, 0xCA, 0x00, 0x6C, -0xA0, 0xF0, 0x88, 0xCA, 0x02, 0x4A, 0x6A, 0xEA, -0xF8, 0x61, 0x37, 0x97, 0x36, 0x91, 0x35, 0x90, -0x1C, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, -0x4C, 0xEE, 0x30, 0x6A, 0x58, 0xEC, 0x30, 0xF0, -0x21, 0x6A, 0x73, 0xF0, 0x00, 0x4A, 0xFF, 0xF7, -0x1F, 0x6B, 0x6C, 0xED, 0x11, 0xD7, 0x04, 0xD5, -0x05, 0xD6, 0x12, 0xEC, 0x89, 0xE2, 0x86, 0x67, -0x06, 0xD2, 0xE4, 0xF2, 0x08, 0x4C, 0x30, 0xF0, -0x20, 0x6A, 0x84, 0x34, 0x2B, 0xF1, 0x18, 0x4A, -0x49, 0xE4, 0x01, 0xAA, 0x03, 0xED, 0x13, 0xE5, -0x02, 0x60, 0x04, 0x92, 0x53, 0xE0, 0x6C, 0xEC, -0x05, 0x93, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x24, 0xF3, 0x1C, 0x4B, 0x64, 0x33, -0x4D, 0xE3, 0x61, 0xAB, 0xFF, 0x4C, 0x07, 0xD3, -0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEC, 0x07, 0x5C, -0x13, 0x60, 0x04, 0x93, 0x03, 0xEB, 0x08, 0x60, -0x05, 0x93, 0xE4, 0xF2, 0x08, 0x4B, 0x64, 0x33, -0x49, 0xE3, 0x61, 0xAA, 0xFF, 0x4B, 0x12, 0x10, -0x05, 0x93, 0xE4, 0xF2, 0x08, 0x4B, 0x64, 0x33, -0x49, 0xE3, 0x61, 0xAA, 0x01, 0x4B, 0x0A, 0x10, -0x05, 0x93, 0x04, 0x94, 0xE4, 0xF2, 0x08, 0x4B, -0x64, 0x33, 0x49, 0xE3, 0x0C, 0x33, 0x0F, 0xE3, -0x8D, 0xE3, 0x6F, 0x33, 0x61, 0xCA, 0x05, 0x93, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0xE4, 0xF2, 0x08, 0x4B, 0x64, 0x33, 0x4D, 0xE3, -0x61, 0xAB, 0xE7, 0xF3, 0x40, 0x9A, 0x08, 0xD3, -0xFF, 0x6B, 0x01, 0x4B, 0x4C, 0xEB, 0x09, 0x23, -0x08, 0x95, 0x04, 0x97, 0x30, 0xF0, 0x20, 0x6C, -0x84, 0xF6, 0x14, 0x4C, 0xD0, 0x67, 0x80, 0x18, -0x39, 0x43, 0x04, 0x92, 0x43, 0xE8, 0x14, 0x61, -0x06, 0x94, 0x43, 0xE0, 0xFF, 0xF7, 0x1F, 0x6A, -0x69, 0xA4, 0x4C, 0xE8, 0x0F, 0x6C, 0x6A, 0x32, -0x8C, 0xEA, 0x44, 0x32, 0x01, 0x6D, 0xAD, 0xEA, -0x8C, 0xEA, 0xB4, 0x4C, 0x48, 0x32, 0x6C, 0xEC, -0x4D, 0xEC, 0x06, 0x92, 0x89, 0xC2, 0x13, 0x10, -0x04, 0x93, 0x06, 0x94, 0xFF, 0xF7, 0x1F, 0x6A, -0x03, 0xE3, 0x69, 0xA4, 0x4C, 0xE8, 0x0F, 0x6C, -0x6A, 0x32, 0x8C, 0xEA, 0x44, 0x32, 0x8C, 0xEA, -0x48, 0x34, 0x3D, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, -0x06, 0x93, 0x8D, 0xEA, 0x49, 0xC3, 0x06, 0x94, -0x03, 0x6B, 0x49, 0xA4, 0x4A, 0x32, 0x6C, 0xEA, -0xFF, 0x4A, 0x02, 0x5A, 0x04, 0x61, 0x03, 0x58, -0x07, 0x91, 0x40, 0x60, 0x07, 0x10, 0x09, 0x58, -0x09, 0x6A, 0x01, 0x60, 0x50, 0x67, 0xFF, 0xF7, -0x1F, 0x68, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xE7, 0xF3, 0x80, 0x9A, -0xFF, 0x6B, 0x01, 0x4B, 0x8C, 0xEB, 0x0F, 0x23, -0x06, 0x93, 0x49, 0xE0, 0x28, 0xF7, 0xE2, 0xA2, -0xA9, 0xA3, 0x30, 0xF0, 0x20, 0x6C, 0x0F, 0x6B, -0xAA, 0x35, 0xA4, 0xF6, 0x18, 0x4C, 0x6C, 0xED, -0xD0, 0x67, 0x80, 0x18, 0x39, 0x43, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x41, 0xE0, -0x28, 0xF7, 0x42, 0xA0, 0x07, 0x94, 0xFF, 0xF7, -0x1F, 0x6B, 0x00, 0x69, 0x49, 0xE4, 0x6C, 0xEA, -0x0A, 0x5A, 0x06, 0x61, 0x28, 0x42, 0xFE, 0x49, -0x6C, 0xE9, 0x1F, 0x59, 0x01, 0x61, 0x1E, 0x69, -0x05, 0x93, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x24, 0xF3, 0x1C, 0x4B, 0x64, 0x33, -0x49, 0xE3, 0x21, 0xCA, 0x30, 0xF0, 0x21, 0x6B, -0x12, 0xF5, 0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, -0x6C, 0xEA, 0x08, 0x22, 0x07, 0x95, 0x30, 0xF0, -0x20, 0x6C, 0xC4, 0xF6, 0x10, 0x4C, 0xD1, 0x67, -0x80, 0x18, 0x39, 0x43, 0x08, 0x94, 0x11, 0x67, -0x0B, 0x5C, 0x10, 0x61, 0x15, 0x59, 0x01, 0x6A, -0x06, 0x60, 0x0B, 0x59, 0x58, 0x67, 0x01, 0x5A, -0x58, 0x67, 0x03, 0x6B, 0x4B, 0xE3, 0x08, 0x90, -0xF6, 0x48, 0x07, 0xEA, 0x01, 0xE1, 0xFF, 0xF7, -0x1F, 0x6A, 0x4C, 0xE8, 0x28, 0x58, 0x01, 0x61, -0x28, 0x68, 0x03, 0x59, 0x00, 0x69, 0x02, 0x60, -0x04, 0x92, 0x4A, 0x31, 0x30, 0xF0, 0x21, 0x6B, -0x12, 0xF5, 0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, +0x80, 0xF1, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0x04, 0xF6, 0x04, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x7F, 0x11, 0x30, 0x69, 0x38, 0xE8, 0x30, 0xF0, +0x21, 0x6A, 0x73, 0xF0, 0x00, 0x4A, 0x12, 0xE9, +0x25, 0xE2, 0x68, 0xA1, 0x40, 0x6A, 0x6C, 0xEA, +0x10, 0x22, 0x30, 0xF0, 0x21, 0x6A, 0x12, 0xF5, +0x58, 0x9A, 0x01, 0x6B, 0x6C, 0xEA, 0x60, 0xF1, +0x0B, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x24, 0xF6, +0x00, 0x4C, 0xB0, 0x67, 0x80, 0x18, 0x48, 0x43, +0x63, 0x11, 0x80, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xFF, 0x6B, 0x6C, 0xEA, 0x0B, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x69, 0xF5, +0x81, 0xA2, 0xDF, 0xF6, 0x01, 0x4B, 0x8C, 0xEB, +0x69, 0xF5, 0x61, 0xC2, 0x5F, 0xA1, 0x1F, 0x6E, +0x3F, 0x6F, 0x4C, 0xEE, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0x69, 0xF5, 0x64, 0xA2, +0xE7, 0xF3, 0x40, 0x9A, 0x6C, 0xEF, 0x01, 0x6B, 0x6C, 0xEA, 0x08, 0x22, 0x30, 0xF0, 0x20, 0x6C, -0xE4, 0xF6, 0x00, 0x4C, 0xB1, 0x67, 0xD0, 0x67, -0x80, 0x18, 0x39, 0x43, 0x12, 0x92, 0x20, 0xCA, -0x11, 0x93, 0x00, 0xCB, 0x0D, 0x97, 0x0C, 0x91, -0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xC2, 0xEF, 0x24, 0xF6, 0x0C, 0x4C, 0xB8, 0x67, +0x80, 0x18, 0x48, 0x43, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0x69, 0xF5, 0x64, 0xA2, +0xDF, 0xA1, 0x1F, 0x6D, 0x6C, 0xED, 0x20, 0x6B, +0x6B, 0xEB, 0xCC, 0xEB, 0xAD, 0xEB, 0x7F, 0xC1, +0x69, 0xF5, 0x60, 0xA2, 0x69, 0xF5, 0xA8, 0xA2, +0x69, 0xF5, 0xC1, 0xA2, 0x3F, 0x6C, 0x8C, 0xED, +0x8C, 0xEE, 0x6C, 0xEC, 0x8D, 0xE6, 0x85, 0x67, +0x6E, 0xEC, 0x0A, 0x2C, 0xE7, 0xF3, 0x40, 0x9A, +0x01, 0x6B, 0x6C, 0xEA, 0x10, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x44, 0xF6, 0x04, 0x4C, 0x09, 0x10, +0xE7, 0xF3, 0x40, 0x9A, 0x01, 0x6B, 0x6C, 0xEA, +0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF6, +0x10, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x30, 0xF0, +0x21, 0x6A, 0x94, 0xF6, 0x78, 0xA2, 0x80, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, +0x00, 0x6B, 0x03, 0x22, 0x6C, 0x81, 0xC0, 0xF7, +0x62, 0x33, 0x30, 0xF0, 0x21, 0x6A, 0xB4, 0xF6, +0x81, 0xA2, 0x3F, 0x6A, 0x8C, 0xEA, 0x02, 0x22, +0x3F, 0x72, 0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0x69, 0xF5, 0xA5, 0xA2, +0x49, 0xF5, 0x9F, 0xA2, 0xAE, 0xEC, 0x06, 0x2C, +0x69, 0xF5, 0x40, 0xA2, 0x3F, 0x6C, 0x4C, 0xEC, +0x0A, 0xD4, 0x02, 0x10, 0x00, 0x6D, 0x0A, 0xD5, +0x43, 0x23, 0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF4, +0x6C, 0x40, 0x2B, 0xF1, 0x18, 0x4A, 0x64, 0x33, +0x4D, 0xE3, 0x80, 0xAB, 0x0A, 0x97, 0x91, 0xE7, +0x80, 0xCB, 0xA4, 0xF4, 0x6C, 0x40, 0x64, 0x33, +0x4D, 0xE3, 0x69, 0xF5, 0xA8, 0xA2, 0xC0, 0xAB, +0x3F, 0x6C, 0x8C, 0xED, 0xB5, 0xE6, 0xA0, 0xCB, +0xE4, 0xF4, 0xAC, 0x40, 0xA4, 0x35, 0x55, 0xE5, +0x69, 0xF5, 0xC0, 0xA2, 0xE0, 0xAD, 0x8C, 0xEE, +0xD9, 0xE7, 0xC0, 0xCD, 0x69, 0xF5, 0xC1, 0xA2, +0xC4, 0xF4, 0xAC, 0x40, 0xA4, 0x35, 0x55, 0xE5, +0xCC, 0xEC, 0xC0, 0xAD, 0x91, 0xE6, 0x80, 0xCD, +0xA0, 0xAB, 0x70, 0xA1, 0x63, 0xED, 0x80, 0xF0, +0x13, 0x61, 0xE7, 0xF3, 0x40, 0x9A, 0x01, 0x6B, +0x6C, 0xEA, 0x07, 0x22, 0xD1, 0xA1, 0x30, 0xF0, +0x20, 0x6C, 0x44, 0xF6, 0x1C, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x90, 0x67, 0x80, 0x18, 0x91, 0x51, +0x90, 0x67, 0x80, 0x18, 0x6B, 0x47, 0x80, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xD4, 0xF3, 0x6C, 0x40, +0x2B, 0xF1, 0x18, 0x4A, 0x64, 0x33, 0x4D, 0xE3, +0x80, 0xAB, 0x0A, 0x95, 0x91, 0xE5, 0x80, 0xCB, +0x94, 0xF3, 0x8C, 0x40, 0x84, 0x34, 0x69, 0xF5, +0xA8, 0xA2, 0x51, 0xE4, 0xC0, 0xAC, 0x3F, 0x6B, +0x6C, 0xED, 0xB5, 0xE6, 0xA0, 0xCC, 0xF4, 0xF3, +0xAC, 0x40, 0xA4, 0x35, 0x69, 0xF5, 0xC0, 0xA2, +0x55, 0xE5, 0xE0, 0xAD, 0x6C, 0xEE, 0xD9, 0xE7, +0xC0, 0xCD, 0xB4, 0xF3, 0xAC, 0x40, 0xA4, 0x35, +0x69, 0xF5, 0xC1, 0xA2, 0x55, 0xE5, 0xE0, 0xAD, +0x6C, 0xEE, 0xD9, 0xE7, 0xC0, 0xCD, 0x54, 0xF4, +0xAC, 0x40, 0xA4, 0x35, 0x55, 0xE5, 0xC0, 0xAD, +0x0A, 0x97, 0xD9, 0xE7, 0xC0, 0xCD, 0x69, 0xF5, +0xC8, 0xA2, 0x34, 0xF4, 0xAC, 0x40, 0xA4, 0x35, +0x55, 0xE5, 0xCC, 0xEB, 0xC0, 0xAD, 0x6D, 0xE6, +0x60, 0xCD, 0x80, 0xAC, 0x20, 0xF0, 0x68, 0xA1, +0x63, 0xEC, 0x1A, 0x61, 0x20, 0xF0, 0x6E, 0xA1, +0x17, 0x2B, 0xE7, 0xF3, 0x40, 0x9A, 0x01, 0x6B, +0x6C, 0xEA, 0x09, 0x22, 0x20, 0xF0, 0xC8, 0xA1, +0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF6, 0x18, 0x4C, +0xB0, 0x67, 0x80, 0x18, 0x48, 0x43, 0x90, 0x67, +0x80, 0x18, 0x24, 0x50, 0x20, 0xF0, 0x45, 0xA1, +0x01, 0x4A, 0x20, 0xF0, 0x45, 0xC1, 0x24, 0x10, +0x6F, 0xA1, 0x40, 0x6A, 0x6C, 0xEA, 0x20, 0x22, +0x30, 0xF0, 0x21, 0x6A, 0x12, 0xF5, 0x58, 0x9A, +0x01, 0x6B, 0x6C, 0xEA, 0x07, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x84, 0xF6, 0x0C, 0x4C, 0xB0, 0x67, +0x80, 0x18, 0x48, 0x43, 0x30, 0xF0, 0x20, 0x6A, +0x94, 0xF3, 0x6C, 0x40, 0x64, 0x33, 0x2B, 0xF1, +0x18, 0x4A, 0x49, 0xE3, 0x40, 0xAA, 0x03, 0x22, +0x90, 0x67, 0x80, 0x18, 0x24, 0x50, 0x6F, 0xA1, +0x41, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x4F, 0xC1, +0x0A, 0x94, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, +0x18, 0x4B, 0x69, 0xF5, 0xA8, 0xA3, 0x69, 0xF5, +0xC1, 0xA3, 0x69, 0xF5, 0xE0, 0xA3, 0x04, 0xD4, +0x69, 0xF5, 0x84, 0xA3, 0x3F, 0x6A, 0x4C, 0xED, +0x4C, 0xEC, 0x05, 0xD4, 0x49, 0xF5, 0x9D, 0xA3, +0x1F, 0x6B, 0x4C, 0xEE, 0x8C, 0xEB, 0x4C, 0xEF, +0x90, 0x67, 0x06, 0xD3, 0x80, 0x18, 0x7E, 0x47, +0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF0, 0x6C, 0xA2, 0x82, 0xF0, 0x0C, 0x4A, +0x60, 0xC4, 0x41, 0xA2, 0x40, 0xC5, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0x6C, 0x9B, +0xFF, 0x6A, 0x4C, 0xEC, 0x94, 0x34, 0x71, 0xE4, +0x60, 0xA4, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, 0x6C, 0x9B, +0xFF, 0x6A, 0x4C, 0xEC, 0x94, 0x34, 0x71, 0xE4, +0x60, 0xA4, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0x40, 0xA4, 0x60, 0xA5, 0x60, 0xC4, 0x40, 0xC5, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, +0x0C, 0x5C, 0x13, 0x61, 0x2C, 0x5C, 0x06, 0x60, +0x48, 0x44, 0xFC, 0x4A, 0x4F, 0x32, 0x01, 0x4A, +0x6C, 0xEA, 0x20, 0xE8, 0x36, 0x5C, 0x09, 0x61, +0x40, 0x5C, 0x02, 0x6A, 0x07, 0x61, 0x4A, 0x5C, +0x03, 0x6A, 0x04, 0x61, 0x54, 0x5C, 0x04, 0x6A, +0x01, 0x61, 0x01, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0xAA, 0xEC, 0x64, 0x6A, 0x31, 0x60, 0x2F, 0x24, +0x83, 0xED, 0x2D, 0x61, 0x02, 0xF0, 0x00, 0x5D, +0x04, 0x6A, 0x0C, 0x61, 0x04, 0xF0, 0x00, 0x5D, +0x03, 0x6A, 0x08, 0x61, 0x08, 0xF0, 0x00, 0x5D, +0x02, 0x6A, 0x04, 0x61, 0xEF, 0xF7, 0x1E, 0x4A, +0x43, 0xED, 0x58, 0x67, 0xA4, 0xEA, 0x84, 0xEA, +0x00, 0x6B, 0x01, 0x6A, 0xA6, 0x35, 0x83, 0xED, +0x11, 0x60, 0x81, 0xF4, 0x00, 0x6E, 0xC7, 0xEB, +0xC9, 0xE2, 0x01, 0x75, 0xFF, 0xF7, 0x1F, 0x6E, +0xCC, 0xEA, 0xB3, 0xE4, 0x04, 0x61, 0x02, 0x5C, +0x04, 0x60, 0x01, 0x74, 0x06, 0x60, 0x02, 0x2C, +0x04, 0x10, 0x02, 0x6D, 0x01, 0x4B, 0x0C, 0x73, +0xE9, 0x61, 0x5A, 0x32, 0x01, 0x10, 0x00, 0x6A, +0xFF, 0x6B, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x6B, 0x8C, 0xEB, +0x62, 0xF4, 0x80, 0x9A, 0xFE, 0x63, 0x62, 0xF4, +0x00, 0x4A, 0x00, 0xD4, 0x81, 0x9A, 0x44, 0xAA, +0x00, 0xF0, 0x0A, 0x05, 0x01, 0xD4, 0x9D, 0x67, +0x44, 0xCC, 0x40, 0xA4, 0x43, 0xEB, 0x05, 0x61, +0x01, 0x4B, 0x4B, 0xE3, 0xFF, 0x6B, 0x6C, 0xEA, +0x04, 0x10, 0x01, 0x4C, 0xAA, 0xEC, 0xF5, 0x61, +0x00, 0x6A, 0x02, 0x63, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, +0x04, 0x67, 0x4C, 0xE8, 0xAC, 0xEA, 0x7F, 0x6B, +0x82, 0x67, 0x6C, 0xEC, 0x80, 0x18, 0x56, 0x49, +0x30, 0x6B, 0x78, 0xE8, 0x14, 0x6C, 0x30, 0xF0, +0x21, 0x6B, 0x73, 0xF0, 0x00, 0x4B, 0x12, 0xE8, +0x0D, 0xE3, 0x98, 0xEA, 0x12, 0xEA, 0x20, 0xF0, +0x48, 0xC3, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, +0x45, 0x67, 0x30, 0x6D, 0xB8, 0xEC, 0x30, 0xF0, +0x21, 0x6D, 0x73, 0xF0, 0x00, 0x4D, 0x6C, 0xEA, +0x12, 0xEC, 0x95, 0xE5, 0xC0, 0xA5, 0x81, 0xA5, +0x30, 0xF0, 0x21, 0x6D, 0x74, 0xF0, 0xEC, 0xA5, +0x04, 0x6D, 0xEC, 0xED, 0x6C, 0xED, 0x16, 0x2D, +0xFF, 0x72, 0x02, 0x61, 0x43, 0x67, 0x20, 0xE8, +0x7F, 0x6D, 0xAC, 0xEE, 0x4C, 0xED, 0xA3, 0xEE, +0x0A, 0x60, 0x80, 0x6C, 0x8B, 0xEC, 0x4C, 0xEC, +0xCD, 0xEC, 0x00, 0xF6, 0x80, 0x32, 0x00, 0xF6, +0x43, 0x32, 0x6C, 0xEA, 0x20, 0xE8, 0x83, 0xED, +0x01, 0x60, 0x44, 0x67, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0x4C, 0xEE, 0x4C, 0xEC, 0x4C, 0xED, +0x06, 0x26, 0x2C, 0x5C, 0x04, 0x61, 0x68, 0x44, +0xE8, 0x4B, 0x4C, 0xEB, 0x01, 0x10, 0x64, 0x67, +0x20, 0x5B, 0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF3, 0x58, 0x9A, 0xAC, 0x35, 0xE0, 0x4B, +0x55, 0xE5, 0x40, 0x9D, 0xFF, 0x6D, 0xAC, 0xEB, +0x07, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, +0x50, 0x9A, 0xAC, 0x35, 0x55, 0xE5, 0x40, 0x9D, +0x01, 0x6D, 0xA4, 0xEB, 0x4C, 0xED, 0xFF, 0x6A, +0x01, 0x25, 0x44, 0x67, 0x20, 0xE8, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, -0xFF, 0x68, 0x0C, 0xEC, 0x30, 0x6B, 0x78, 0xEC, -0x5D, 0x67, 0x25, 0x67, 0x40, 0xF0, 0xA8, 0xAA, -0x30, 0xF0, 0x21, 0x6A, 0x73, 0xF0, 0x00, 0x4A, -0x0C, 0xE9, 0x10, 0xD6, 0x11, 0xD7, 0x06, 0x07, -0x12, 0xEB, 0x69, 0xE2, 0x09, 0xD2, 0x7F, 0x6A, -0x2C, 0xEA, 0x08, 0xD2, 0x08, 0x96, 0x7D, 0x67, -0x00, 0x6A, 0x4C, 0xCB, 0x4D, 0xCB, 0x00, 0xF0, -0x1A, 0x02, 0x04, 0xD2, 0x80, 0x18, 0xEF, 0x4A, -0x80, 0x6B, 0x6B, 0xEB, 0x2C, 0xEB, 0x0C, 0xEB, -0x0A, 0x6A, 0x08, 0x2B, 0x08, 0x94, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x49, 0xE4, -0x68, 0xF5, 0x5C, 0xA2, 0xDD, 0x67, 0x8C, 0xAE, -0x6D, 0xAE, 0x00, 0x69, 0xA3, 0x44, 0x55, 0xE5, -0xA2, 0xEB, 0x05, 0x60, 0x23, 0x44, 0x67, 0xE1, -0x25, 0xE2, 0xFF, 0x6A, 0x4C, 0xE9, 0x08, 0x93, +0xFF, 0x6A, 0x4C, 0xEE, 0x30, 0x68, 0x18, 0xEE, +0x30, 0xF0, 0x21, 0x6B, 0x73, 0xF0, 0x00, 0x4B, +0x4C, 0xED, 0x4C, 0xEC, 0x27, 0x67, 0x01, 0x75, +0x09, 0xD6, 0x4C, 0xE9, 0x12, 0xE8, 0x01, 0xE3, +0x7F, 0x6B, 0x6C, 0xEC, 0x1F, 0x61, 0x0C, 0x5C, +0x05, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x28, 0xF3, +0x0C, 0x4A, 0x1E, 0x10, 0x0A, 0x29, 0xF4, 0x4C, +0x4C, 0xEC, 0x03, 0x6A, 0x58, 0xEC, 0x30, 0xF0, +0x20, 0x6A, 0xA8, 0xF4, 0x10, 0x4A, 0x12, 0xEC, +0x36, 0x10, 0x2C, 0x5C, 0xC0, 0xF0, 0x0F, 0x61, +0xD4, 0x4C, 0x4C, 0xEC, 0x03, 0x6A, 0x58, 0xEC, +0x30, 0xF0, 0x20, 0x6A, 0x48, 0xF4, 0x14, 0x4A, +0x12, 0xEC, 0x29, 0x10, 0x0C, 0x5C, 0x10, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x28, 0xF3, 0x18, 0x4A, +0x91, 0xE2, 0x80, 0xA4, 0x09, 0x95, 0xD1, 0x67, +0x80, 0x18, 0x8C, 0x49, 0x8C, 0xA0, 0x19, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0x6C, 0xC0, 0xB4, 0x10, +0x0A, 0x29, 0xF4, 0x4C, 0x4C, 0xEC, 0x03, 0x6A, +0x58, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0x48, 0xF5, +0x14, 0x4A, 0x12, 0xEC, 0x0C, 0x10, 0x2C, 0x5C, +0xA0, 0xF0, 0x05, 0x61, 0xD4, 0x4C, 0x4C, 0xEC, +0x03, 0x6A, 0x58, 0xEC, 0x30, 0xF0, 0x20, 0x6A, +0xE8, 0xF4, 0x18, 0x4A, 0x12, 0xEC, 0x89, 0xE2, +0x08, 0xD2, 0x01, 0x6A, 0x4B, 0xEA, 0x7D, 0x67, +0x00, 0x6C, 0x50, 0xC3, 0x51, 0xC3, 0x52, 0xC3, +0x07, 0xD4, 0x06, 0xD4, 0x07, 0x94, 0x08, 0x93, +0x89, 0xE3, 0x80, 0xA2, 0x2C, 0x74, 0x03, 0x61, +0x2C, 0x6C, 0x01, 0x29, 0x0C, 0x6C, 0x09, 0x95, +0xD1, 0x67, 0x80, 0x18, 0x8C, 0x49, 0xFF, 0x72, +0x08, 0x60, 0x06, 0x94, 0xBD, 0x67, 0x8D, 0xE5, +0x50, 0xC3, 0x01, 0x4C, 0xFF, 0x6A, 0x4C, 0xEC, +0x06, 0xD4, 0x07, 0x95, 0x01, 0x4D, 0x03, 0x75, +0x07, 0xD5, 0xE4, 0x61, 0x06, 0x92, 0x05, 0x2A, +0x6C, 0xA0, 0xE7, 0x4A, 0x6C, 0xEA, 0x4C, 0xC0, +0x6E, 0x10, 0x7A, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, +0x1F, 0x22, 0x6F, 0xA0, 0x30, 0x6A, 0x6C, 0xEA, +0x20, 0x72, 0x1A, 0x61, 0x05, 0x21, 0x30, 0xF0, +0x20, 0x6A, 0x88, 0xF6, 0x08, 0x4A, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x88, 0xF6, 0x00, 0x4A, +0x9D, 0x67, 0x71, 0xA4, 0x2D, 0x5B, 0x01, 0x61, +0xE0, 0x4B, 0x40, 0x9A, 0x01, 0x6C, 0x84, 0xEB, +0x4C, 0xEC, 0x29, 0x24, 0x04, 0x04, 0x00, 0xF0, +0x11, 0x05, 0x80, 0x18, 0x2A, 0x49, 0x23, 0x10, +0x7A, 0xA0, 0x40, 0x6A, 0x6C, 0xEA, 0x1F, 0x22, +0x6F, 0xA0, 0x30, 0x6A, 0x6C, 0xEA, 0x20, 0x72, +0x1A, 0x61, 0x05, 0x21, 0x30, 0xF0, 0x20, 0x6A, +0x88, 0xF6, 0x18, 0x4A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x88, 0xF6, 0x10, 0x4A, 0xBD, 0x67, +0x71, 0xA5, 0x2D, 0x5B, 0x01, 0x61, 0xE0, 0x4B, +0x40, 0x9A, 0x01, 0x6C, 0x84, 0xEB, 0x4C, 0xEC, +0x06, 0x24, 0x7D, 0x67, 0x51, 0xA3, 0x50, 0xC3, +0x01, 0x6A, 0x4B, 0xEA, 0x51, 0xC3, 0x9D, 0x67, +0x71, 0xA4, 0xFF, 0x73, 0x0B, 0x60, 0x52, 0xA4, +0xFF, 0x72, 0x08, 0x60, 0x65, 0xC0, 0x6C, 0xA0, +0x44, 0xC0, 0x19, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x10, 0x6B, 0x14, 0x10, 0xBD, 0x67, 0x51, 0xA5, +0xFF, 0x72, 0x03, 0x60, 0x72, 0xA5, 0xFF, 0x73, +0x07, 0x60, 0x7D, 0x67, 0x51, 0xA3, 0xFF, 0x72, +0x0B, 0x61, 0x52, 0xA3, 0xFF, 0x72, 0x08, 0x60, +0x6C, 0xA0, 0x44, 0xC0, 0x19, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x08, 0x6B, 0x6D, 0xEA, 0x4C, 0xC0, +0x9D, 0x67, 0x50, 0xA4, 0x01, 0x10, 0xFF, 0x6A, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD1, +0x00, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, 0x30, 0x6B, +0x78, 0xEC, 0x30, 0xF0, 0x21, 0x6B, 0x73, 0xF0, +0x00, 0x4B, 0x06, 0x67, 0x4C, 0xE8, 0xE0, 0xA5, +0x12, 0xEC, 0x91, 0xE3, 0xCC, 0xA4, 0x03, 0x6B, +0xCC, 0xEB, 0x4C, 0xEB, 0x54, 0x23, 0x04, 0x6B, +0xCC, 0xEB, 0x4C, 0xEB, 0x50, 0x23, 0xDF, 0xA4, +0x20, 0x6B, 0x6B, 0xEB, 0xCC, 0xEB, 0x4C, 0xEB, +0x4A, 0x23, 0x7F, 0xA4, 0x0A, 0x69, 0x7F, 0x6E, +0x76, 0x33, 0xFF, 0x4B, 0x38, 0xEB, 0xEC, 0xEE, +0x12, 0xEB, 0x4C, 0xEB, 0x27, 0x43, 0x2C, 0x49, +0x22, 0xEE, 0x3D, 0x61, 0x80, 0x69, 0x7B, 0xE6, +0x02, 0x70, 0xEC, 0xE9, 0x4C, 0xEE, 0x11, 0x61, +0x33, 0x76, 0x35, 0x60, 0x02, 0x21, 0xC4, 0xC4, +0x02, 0x10, 0x4F, 0x46, 0x44, 0xC4, 0x80, 0x6A, +0xEF, 0x46, 0x4B, 0xEA, 0x4D, 0xEF, 0xFF, 0x6A, +0x4C, 0xEF, 0xCC, 0xA4, 0xFF, 0xF6, 0x08, 0x4A, +0x17, 0x10, 0x35, 0x76, 0x24, 0x60, 0x34, 0x76, +0x03, 0x61, 0xB5, 0x6F, 0x15, 0x29, 0x06, 0x10, +0x05, 0x21, 0x80, 0x68, 0xE1, 0x46, 0x0B, 0xE8, +0x0D, 0xEF, 0x04, 0x10, 0x80, 0x6F, 0xEB, 0xEF, +0xCD, 0xEF, 0xFF, 0x6A, 0x01, 0x4E, 0xC4, 0xC4, +0xCC, 0xA4, 0x4C, 0xEF, 0x19, 0x6A, 0x4B, 0xEA, +0xCC, 0xEA, 0x08, 0x6E, 0xCD, 0xEA, 0x4C, 0xC4, +0xCC, 0xA4, 0x18, 0x6A, 0xCC, 0xEA, 0x03, 0x22, +0x44, 0xA4, 0x49, 0xE3, 0x44, 0xC4, 0x6D, 0xE7, +0x60, 0xC5, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, +0x01, 0x91, 0x00, 0x90, 0x01, 0x63, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0x6B, 0x78, 0xEA, +0x30, 0xF0, 0x21, 0x6C, 0x73, 0xF0, 0x00, 0x4C, +0x12, 0xEB, 0x6D, 0xE4, 0x03, 0x2E, 0x25, 0x67, +0x00, 0x68, 0x02, 0x10, 0x26, 0x67, 0x20, 0x68, +0x1F, 0x6C, 0x00, 0xF6, 0x80, 0x37, 0x00, 0xF6, +0xE3, 0x37, 0x1F, 0x65, 0x01, 0x6F, 0xE4, 0xEC, +0x2C, 0xEF, 0x10, 0x27, 0xEC, 0xA3, 0x38, 0x67, +0x21, 0xE0, 0x1F, 0x65, 0x38, 0x67, 0x03, 0x6F, +0xFF, 0x6C, 0x2C, 0xEF, 0x8C, 0xEF, 0x8C, 0xE8, +0x09, 0x27, 0x0C, 0x58, 0x07, 0x61, 0x20, 0x48, +0x8C, 0xE8, 0x04, 0x10, 0xFF, 0x4C, 0xE1, 0x44, +0xE4, 0x2F, 0x00, 0x68, 0x00, 0x69, 0x02, 0x2D, +0xA6, 0x67, 0x20, 0x69, 0x00, 0x6C, 0x01, 0x6F, +0xE4, 0xEC, 0x00, 0xF6, 0x80, 0x36, 0xAC, 0xEF, +0x00, 0xF6, 0xC3, 0x36, 0x0D, 0x27, 0xC5, 0xE1, +0xCC, 0xA3, 0x03, 0x6D, 0xFF, 0x6C, 0xCC, 0xED, +0x8C, 0xED, 0x8C, 0xE9, 0x09, 0x25, 0x0C, 0x59, +0x07, 0x61, 0x20, 0x49, 0x8C, 0xE9, 0x04, 0x10, +0x01, 0x4C, 0x20, 0x74, 0xE8, 0x61, 0x00, 0x69, +0x00, 0xC3, 0x21, 0xC3, 0x82, 0x67, 0x80, 0x18, +0x1E, 0x49, 0x7F, 0x6B, 0x4C, 0xEB, 0x63, 0xE8, +0x50, 0x67, 0x09, 0x61, 0xFF, 0x6A, 0x83, 0x67, +0x4C, 0xEB, 0x2C, 0xEA, 0x43, 0xEB, 0x01, 0x60, +0x91, 0x67, 0xFF, 0x6A, 0x8C, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFF, 0x63, 0x01, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF3, 0xD0, 0x9A, 0x03, 0x6A, 0x02, 0x68, +0x40, 0xC6, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF3, +0xB4, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, +0xEC, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF3, +0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF3, +0x9C, 0x9A, 0x01, 0x6A, 0xE0, 0xDD, 0x80, 0xDB, +0x00, 0xC6, 0xE0, 0xDD, 0x80, 0xDB, 0x40, 0xC6, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, 0x40, 0x9A, +0x40, 0xDD, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0x80, 0xDB, 0xC8, 0xF5, 0x11, 0xC2, +0x00, 0x68, 0x00, 0xC6, 0xE0, 0xDD, 0x80, 0xDB, +0x04, 0x6B, 0xC8, 0xF5, 0x70, 0xC2, 0x01, 0x90, +0x01, 0x63, 0x20, 0xE8, 0xE4, 0x63, 0x37, 0x62, +0x36, 0xD1, 0x35, 0xD0, 0x30, 0xF0, 0x20, 0x6D, +0x07, 0x04, 0x02, 0xF4, 0x0C, 0x4D, 0x54, 0x6E, +0x00, 0x18, 0x42, 0xD7, 0x30, 0xF0, 0x20, 0x6D, +0x1C, 0x04, 0xA2, 0xF3, 0x18, 0x4D, 0x54, 0x6E, +0x00, 0x18, 0x42, 0xD7, 0x30, 0xF0, 0x20, 0x6A, +0xA2, 0xF3, 0x6C, 0x9A, 0xA2, 0xF3, 0x0C, 0x4A, +0x30, 0xF0, 0x21, 0x68, 0x04, 0xD3, 0x61, 0x9A, +0x44, 0xAA, 0x73, 0xF0, 0x00, 0x48, 0x05, 0xD3, +0x7D, 0x67, 0x4C, 0xCB, 0x30, 0xF0, 0x21, 0x6A, +0x73, 0xF6, 0x00, 0x4A, 0x32, 0xD2, 0x68, 0xA0, +0x20, 0x6A, 0xC7, 0xA0, 0x4B, 0xEA, 0x6C, 0xEA, +0x09, 0x6B, 0x6D, 0xEA, 0xEA, 0x4B, 0xCC, 0xEB, +0x04, 0x6E, 0xEC, 0xA0, 0xCB, 0xEE, 0xCC, 0xEB, +0x67, 0xC0, 0x04, 0x6B, 0xED, 0xEB, 0xCC, 0xEB, +0x20, 0x6E, 0xCD, 0xEA, 0x40, 0x6E, 0xCD, 0xEA, +0xDA, 0xA0, 0x48, 0xC0, 0x03, 0x6A, 0x4B, 0xEA, +0xCC, 0xEA, 0x41, 0x6E, 0xCB, 0xEE, 0x00, 0x6C, +0xCC, 0xEA, 0xCF, 0xA0, 0x81, 0xC0, 0x82, 0xC0, +0x99, 0xC0, 0x31, 0x6C, 0x8B, 0xEC, 0xCC, 0xEC, +0x8F, 0xC0, 0x7F, 0x6C, 0x8C, 0xEB, 0x00, 0x6C, +0x8A, 0xC0, 0x8A, 0xC8, 0xDF, 0x4C, 0x8C, 0xEA, +0x8D, 0xA0, 0x5A, 0xC0, 0x02, 0x6A, 0x4B, 0xEA, +0x8C, 0xEA, 0x6C, 0xC0, 0x4D, 0xC0, 0x00, 0x6B, +0x33, 0x6D, 0x01, 0x6A, 0x7F, 0xC0, 0x20, 0xF0, +0x6E, 0xC0, 0xA0, 0xC0, 0xA6, 0xC0, 0x20, 0xF0, +0x48, 0xC0, 0x30, 0xF0, 0x20, 0x69, 0x80, 0xF2, +0x48, 0x99, 0x87, 0x40, 0x1A, 0x4C, 0xFF, 0x6D, +0x02, 0x6E, 0x40, 0xEA, 0x80, 0xF2, 0x48, 0x99, +0x87, 0x40, 0x1C, 0x4C, 0x00, 0x6D, 0x02, 0x6E, +0x40, 0xEA, 0x32, 0x93, 0x30, 0x48, 0x6A, 0xE8, +0xAE, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x80, 0x18, +0x8C, 0x4A, 0x30, 0xF0, 0x21, 0x69, 0x80, 0xF2, +0x4C, 0x98, 0x73, 0xF6, 0x00, 0x49, 0x91, 0x67, +0x1C, 0x05, 0x54, 0x6E, 0x40, 0xEA, 0x80, 0xF2, +0x4C, 0x98, 0x87, 0x41, 0x4D, 0x4C, 0x07, 0x05, +0x54, 0x6E, 0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x98, +0x30, 0xF0, 0x21, 0x6C, 0x54, 0xF0, 0x1A, 0x4C, +0x04, 0x05, 0x0A, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x21, 0x6A, 0x30, 0xF0, 0x21, 0x6B, 0x13, 0xF7, +0x0A, 0x4A, 0xB3, 0xF7, 0x12, 0x4B, 0x0A, 0x6C, +0x80, 0xCA, 0x00, 0x6C, 0xA0, 0xF0, 0x88, 0xCA, +0x02, 0x4A, 0x6A, 0xEA, 0xF8, 0x61, 0x37, 0x97, +0x36, 0x91, 0x35, 0x90, 0x1C, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xEE, 0x30, 0x6A, +0x58, 0xEC, 0x30, 0xF0, 0x21, 0x6A, 0x73, 0xF0, +0x00, 0x4A, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xED, +0x11, 0xD7, 0x04, 0xD5, 0x05, 0xD6, 0x12, 0xEC, +0x89, 0xE2, 0x86, 0x67, 0x06, 0xD2, 0xE4, 0xF2, +0x08, 0x4C, 0x30, 0xF0, 0x20, 0x6A, 0x84, 0x34, +0x2B, 0xF1, 0x18, 0x4A, 0x49, 0xE4, 0x01, 0xAA, +0x03, 0xED, 0x13, 0xE5, 0x02, 0x60, 0x04, 0x92, +0x53, 0xE0, 0x6C, 0xEC, 0x05, 0x93, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x24, 0xF3, +0x1C, 0x4B, 0x64, 0x33, 0x4D, 0xE3, 0x61, 0xAB, +0xFF, 0x4C, 0x07, 0xD3, 0xFF, 0xF7, 0x1F, 0x6B, +0x6C, 0xEC, 0x07, 0x5C, 0x13, 0x60, 0x04, 0x93, +0x03, 0xEB, 0x08, 0x60, 0x05, 0x93, 0xE4, 0xF2, +0x08, 0x4B, 0x64, 0x33, 0x49, 0xE3, 0x61, 0xAA, +0xFF, 0x4B, 0x12, 0x10, 0x05, 0x93, 0xE4, 0xF2, +0x08, 0x4B, 0x64, 0x33, 0x49, 0xE3, 0x61, 0xAA, +0x01, 0x4B, 0x0A, 0x10, 0x05, 0x93, 0x04, 0x94, +0xE4, 0xF2, 0x08, 0x4B, 0x64, 0x33, 0x49, 0xE3, +0x0C, 0x33, 0x0F, 0xE3, 0x8D, 0xE3, 0x6F, 0x33, +0x61, 0xCA, 0x05, 0x93, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0xE4, 0xF2, 0x08, 0x4B, +0x64, 0x33, 0x4D, 0xE3, 0x61, 0xAB, 0xE7, 0xF3, +0x40, 0x9A, 0x08, 0xD3, 0xFF, 0x6B, 0x01, 0x4B, +0x4C, 0xEB, 0x09, 0x23, 0x08, 0x95, 0x04, 0x97, +0x30, 0xF0, 0x20, 0x6C, 0x84, 0xF6, 0x18, 0x4C, +0xD0, 0x67, 0x80, 0x18, 0x48, 0x43, 0x04, 0x92, +0x43, 0xE8, 0x14, 0x61, 0x06, 0x94, 0x43, 0xE0, +0xFF, 0xF7, 0x1F, 0x6A, 0x69, 0xA4, 0x4C, 0xE8, +0x0F, 0x6C, 0x6A, 0x32, 0x8C, 0xEA, 0x44, 0x32, +0x01, 0x6D, 0xAD, 0xEA, 0x8C, 0xEA, 0xB4, 0x4C, +0x48, 0x32, 0x6C, 0xEC, 0x4D, 0xEC, 0x06, 0x92, +0x89, 0xC2, 0x13, 0x10, 0x04, 0x93, 0x06, 0x94, +0xFF, 0xF7, 0x1F, 0x6A, 0x03, 0xE3, 0x69, 0xA4, +0x4C, 0xE8, 0x0F, 0x6C, 0x6A, 0x32, 0x8C, 0xEA, +0x44, 0x32, 0x8C, 0xEA, 0x48, 0x34, 0x3D, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x06, 0x93, 0x8D, 0xEA, +0x49, 0xC3, 0x06, 0x94, 0x03, 0x6B, 0x49, 0xA4, +0x4A, 0x32, 0x6C, 0xEA, 0xFF, 0x4A, 0x02, 0x5A, +0x04, 0x61, 0x03, 0x58, 0x07, 0x91, 0x40, 0x60, +0x07, 0x10, 0x09, 0x58, 0x09, 0x6A, 0x01, 0x60, +0x50, 0x67, 0xFF, 0xF7, 0x1F, 0x68, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x49, 0xE3, 0xDD, 0x67, 0x28, 0xF5, 0x48, 0xA2, -0x8C, 0xAE, 0x6D, 0xAE, 0x00, 0x68, 0x95, 0xE2, -0xA2, 0xEB, 0x04, 0x60, 0x63, 0xE4, 0x41, 0xE0, -0xFF, 0x6A, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xE7, 0xF3, 0x80, 0x9A, -0xFF, 0x6B, 0x01, 0x4B, 0x8C, 0xEB, 0x0C, 0x23, -0x08, 0x93, 0x30, 0xF0, 0x20, 0x6C, 0xE4, 0xF6, -0x18, 0x4C, 0x49, 0xE3, 0x28, 0xF5, 0xA8, 0xA2, -0x68, 0xF5, 0xDC, 0xA2, 0x80, 0x18, 0x39, 0x43, +0xE7, 0xF3, 0x80, 0x9A, 0xFF, 0x6B, 0x01, 0x4B, +0x8C, 0xEB, 0x0F, 0x23, 0x06, 0x93, 0x49, 0xE0, +0x28, 0xF7, 0xE2, 0xA2, 0xA9, 0xA3, 0x30, 0xF0, +0x20, 0x6C, 0x0F, 0x6B, 0xAA, 0x35, 0xA4, 0xF6, +0x1C, 0x4C, 0x6C, 0xED, 0xD0, 0x67, 0x80, 0x18, +0x48, 0x43, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0x41, 0xE0, 0x28, 0xF7, 0x42, 0xA0, +0x07, 0x94, 0xFF, 0xF7, 0x1F, 0x6B, 0x00, 0x69, +0x49, 0xE4, 0x6C, 0xEA, 0x0A, 0x5A, 0x06, 0x61, +0x28, 0x42, 0xFE, 0x49, 0x6C, 0xE9, 0x1F, 0x59, +0x01, 0x61, 0x1E, 0x69, 0x05, 0x93, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x24, 0xF3, +0x1C, 0x4B, 0x64, 0x33, 0x49, 0xE3, 0x21, 0xCA, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x08, 0x22, -0x30, 0xF0, 0x20, 0x6C, 0x04, 0xF7, 0x08, 0x4C, -0xB0, 0x67, 0xD1, 0x67, 0x80, 0x18, 0x39, 0x43, -0x09, 0x94, 0x3F, 0x6B, 0x5E, 0xA4, 0x6C, 0xEA, -0x7E, 0x84, 0x00, 0x53, 0x0F, 0x60, 0x43, 0xE9, -0x02, 0x60, 0x00, 0x69, 0x03, 0x10, 0x47, 0xE1, -0xFF, 0x6B, 0x6C, 0xE9, 0x43, 0xE8, 0x02, 0x60, -0x00, 0x68, 0x0A, 0x10, 0x43, 0xE0, 0xFF, 0x6A, -0x4C, 0xE8, 0x06, 0x10, 0x05, 0x22, 0xFF, 0x6B, -0x45, 0xE1, 0x41, 0xE0, 0x6C, 0xE9, 0x6C, 0xE8, -0x42, 0x58, 0x50, 0x67, 0x01, 0x61, 0x41, 0x6A, -0x10, 0x96, 0x5B, 0x59, 0x40, 0xC6, 0x51, 0x67, -0x01, 0x61, 0x5A, 0x6A, 0x11, 0x93, 0x40, 0xC3, +0x07, 0x95, 0x30, 0xF0, 0x20, 0x6C, 0xC4, 0xF6, +0x14, 0x4C, 0xD1, 0x67, 0x80, 0x18, 0x48, 0x43, +0x08, 0x94, 0x11, 0x67, 0x0B, 0x5C, 0x10, 0x61, +0x15, 0x59, 0x01, 0x6A, 0x06, 0x60, 0x0B, 0x59, +0x58, 0x67, 0x01, 0x5A, 0x58, 0x67, 0x03, 0x6B, +0x4B, 0xE3, 0x08, 0x90, 0xF6, 0x48, 0x07, 0xEA, +0x01, 0xE1, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, +0x28, 0x58, 0x01, 0x61, 0x28, 0x68, 0x03, 0x59, +0x00, 0x69, 0x02, 0x60, 0x04, 0x92, 0x4A, 0x31, +0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, +0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x08, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0xE4, 0xF6, 0x04, 0x4C, +0xB1, 0x67, 0xD0, 0x67, 0x80, 0x18, 0x48, 0x43, +0x12, 0x92, 0x20, 0xCA, 0x11, 0x93, 0x00, 0xCB, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, -0x30, 0x68, 0x18, 0xEC, 0x4C, 0xED, 0x30, 0xF0, -0x21, 0x6A, 0x73, 0xF0, 0x00, 0x4A, 0x07, 0xD4, -0x06, 0xD5, 0x01, 0x69, 0x12, 0xE8, 0x01, 0xE2, -0x46, 0xA0, 0x08, 0xD2, 0x00, 0x6A, 0x05, 0xD2, -0x81, 0xA0, 0x4C, 0xA0, 0x07, 0x96, 0xFF, 0x6B, -0x91, 0xE1, 0x03, 0x6F, 0x6C, 0xEC, 0x01, 0x6D, -0x4C, 0xEF, 0x80, 0x18, 0x91, 0x49, 0x30, 0xF0, -0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x04, 0xD2, -0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x0C, 0x22, -0x05, 0x92, 0xC1, 0xA0, 0x04, 0x97, 0x01, 0x4A, -0x30, 0xF0, 0x20, 0x6C, 0x04, 0xF7, 0x18, 0x4C, -0xA2, 0x67, 0xD9, 0xE2, 0x80, 0x18, 0x39, 0x43, -0x04, 0x92, 0xFF, 0x72, 0x0E, 0x61, 0x05, 0x93, -0x81, 0xA0, 0x40, 0xA0, 0x01, 0x4B, 0x91, 0xE3, -0x42, 0xEC, 0x06, 0x60, 0x01, 0x49, 0xFF, 0x6A, -0x4C, 0xE9, 0x54, 0x71, 0x05, 0xD3, 0xD0, 0x61, -0x04, 0xD2, 0x06, 0x92, 0x38, 0x5A, 0x02, 0x61, -0x46, 0xA0, 0x0D, 0x10, 0x06, 0x92, 0x24, 0x5A, -0x05, 0x61, 0x08, 0x92, 0xFF, 0x6B, 0xFE, 0x4A, -0x6C, 0xEA, 0x05, 0x10, 0x06, 0x92, 0x15, 0x5A, -0x04, 0x92, 0x01, 0x60, 0x41, 0xA0, 0x0D, 0x97, -0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0x6A, 0x4C, 0xEC, 0x30, 0x68, 0x18, 0xEC, -0x4C, 0xEF, 0x30, 0xF0, 0x21, 0x6B, 0x0D, 0xD5, -0x0E, 0xD6, 0x06, 0xD4, 0x05, 0xD7, 0x73, 0xF0, -0x00, 0x4B, 0x20, 0xA5, 0x03, 0x6D, 0x12, 0xE8, -0x01, 0xE3, 0x60, 0xA6, 0x04, 0xD3, 0x87, 0xA0, -0x04, 0x96, 0xAC, 0xEC, 0x64, 0x67, 0x4C, 0xEB, -0xC2, 0xEB, 0x03, 0x60, 0x0E, 0x91, 0x80, 0xC1, -0xA2, 0x10, 0xA0, 0xF0, 0x00, 0x23, 0x2F, 0x59, -0x80, 0xF0, 0x1D, 0x60, 0x6C, 0xA0, 0x6C, 0xED, -0x4C, 0xED, 0x80, 0xF0, 0x18, 0x25, 0x30, 0xF0, -0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0xFF, 0x6A, -0x01, 0x4A, 0x6C, 0xEA, 0x09, 0x22, 0x05, 0x95, -0x04, 0x96, 0x30, 0xF0, 0x20, 0x6C, 0x24, 0xF7, -0x0C, 0x4C, 0xF1, 0x67, 0x80, 0x18, 0x39, 0x43, -0x05, 0x92, 0x01, 0x72, 0x03, 0x60, 0x05, 0x6B, -0x01, 0x6A, 0x42, 0x10, 0x04, 0x6B, 0x00, 0x6A, -0x3F, 0x10, 0x05, 0x93, 0x81, 0x42, 0x01, 0x73, -0x01, 0x60, 0x8F, 0x42, 0xFF, 0x6A, 0x4C, 0xEC, -0x30, 0xF0, 0x20, 0x6F, 0x28, 0xF4, 0x1C, 0x4F, -0x88, 0x32, 0xE9, 0xE2, 0xC0, 0xAA, 0xFF, 0x6D, -0x88, 0x34, 0x26, 0x67, 0xAC, 0xE9, 0x04, 0xD1, -0x47, 0xA0, 0x91, 0xE7, 0xE1, 0xAC, 0x1A, 0x65, -0x38, 0x67, 0x03, 0x6A, 0x2C, 0xEA, 0xE2, 0x34, -0xAC, 0xEA, 0xAC, 0xEC, 0xC2, 0x33, 0x82, 0xEA, -0xAC, 0xEB, 0x41, 0x61, 0xE4, 0xC0, 0x30, 0xF0, -0x20, 0x6D, 0x05, 0xD5, 0x06, 0x95, 0x30, 0x69, -0x38, 0xED, 0x05, 0x91, 0x2B, 0xF1, 0x18, 0x49, -0x12, 0xED, 0x35, 0xE5, 0x47, 0xF7, 0x8E, 0xC5, -0x84, 0xA0, 0xFF, 0x74, 0x30, 0x60, 0xAC, 0xA0, -0x19, 0x6C, 0x8B, 0xEC, 0xAC, 0xEC, 0x08, 0x6D, -0xAD, 0xEC, 0x8C, 0xC0, 0x28, 0x10, 0x01, 0x4A, -0xFF, 0x6C, 0x8C, 0xEA, 0x63, 0xEA, 0x46, 0x60, -0x30, 0xF0, 0x20, 0x6C, 0x48, 0x35, 0x28, 0xF4, -0x1C, 0x4C, 0x91, 0xE5, 0xA0, 0xAC, 0xFF, 0x6C, -0xC5, 0x67, 0x8C, 0xEE, 0x2E, 0xEE, 0x05, 0x2E, -0xA2, 0x35, 0x8C, 0xED, 0x04, 0x94, 0x8E, 0xED, -0xB0, 0x25, 0x30, 0xF0, 0x20, 0x6C, 0x48, 0x35, -0x28, 0xF4, 0x1C, 0x4C, 0xB1, 0xE4, 0xA1, 0xAC, -0xFF, 0x6C, 0xC5, 0x67, 0x8C, 0xEE, 0x2E, 0xEE, -0xDE, 0x2E, 0x04, 0x96, 0xA2, 0x35, 0x8C, 0xED, -0xCE, 0xED, 0xD9, 0x2D, 0x9E, 0x17, 0x62, 0xEA, -0x00, 0x68, 0x09, 0x61, 0x3D, 0x67, 0x47, 0x41, -0x09, 0x4A, 0x40, 0xA2, 0x0D, 0x91, 0x01, 0x68, -0x40, 0xC1, 0x0E, 0x94, 0x60, 0xC4, 0x30, 0xF0, -0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0xFF, 0x6A, -0x01, 0x4A, 0x6C, 0xEA, 0x09, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x44, 0xF7, 0x08, 0x4C, 0xB0, 0x67, -0x80, 0x18, 0x39, 0x43, 0x01, 0x10, 0x00, 0x68, -0x50, 0x67, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0x00, 0x68, 0xF0, 0x67, -0xD0, 0x67, 0xE5, 0x17, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x68, 0x0C, 0xEC, -0xAC, 0xE8, 0xFF, 0x70, 0x04, 0xD4, 0x33, 0x60, -0x7F, 0x69, 0x0C, 0xE9, 0x91, 0x67, 0x80, 0x18, -0x1E, 0x49, 0x04, 0x93, 0x30, 0x6C, 0x98, 0xEB, -0x30, 0xF0, 0x21, 0x6B, 0x73, 0xF0, 0x00, 0x4B, -0x12, 0xEC, 0x8D, 0xE3, 0x4D, 0xE3, 0x20, 0xF0, -0x60, 0xA3, 0x00, 0xF2, 0x00, 0x6A, 0x04, 0xD3, -0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, -0x6C, 0xEA, 0x08, 0x22, 0x04, 0x96, 0x30, 0xF0, -0x20, 0x6C, 0x64, 0xF7, 0x00, 0x4C, 0xB0, 0x67, -0x80, 0x18, 0x39, 0x43, 0x04, 0x94, 0xFF, 0x74, -0x0F, 0x60, 0x7F, 0x6A, 0x8C, 0xEA, 0x23, 0xEA, -0x0A, 0x61, 0x4E, 0xE9, 0x09, 0x29, 0x80, 0x6A, -0x70, 0x67, 0x4C, 0xEB, 0x8C, 0xEA, 0x4A, 0xEB, -0x02, 0x60, 0x02, 0x23, 0x01, 0x2A, 0xFF, 0x68, -0x50, 0x67, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x4C, 0xED, -0x4C, 0xEE, 0xC3, 0xED, 0x4C, 0xEC, 0xEC, 0xEA, -0x02, 0x61, 0xD7, 0xE5, 0x01, 0x10, 0xB7, 0xE6, -0x03, 0x55, 0x01, 0x60, 0x25, 0x22, 0x30, 0x69, -0x38, 0xEC, 0x30, 0xF0, 0x21, 0x6A, 0x73, 0xF0, -0x00, 0x4A, 0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6D, -0x02, 0x6E, 0x12, 0xE9, 0x25, 0xE2, 0x80, 0xF2, -0x48, 0x98, 0x87, 0x41, 0x1A, 0x4C, 0x40, 0xEA, -0x80, 0xF2, 0x48, 0x98, 0x87, 0x41, 0x1C, 0x4C, -0x00, 0x6D, 0x02, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x01, 0xF0, -0x00, 0x6A, 0x6C, 0xEA, 0x13, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x64, 0xF7, 0x10, 0x4C, 0x0C, 0x10, -0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, -0x01, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x06, 0x22, -0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF7, 0x1C, 0x4C, -0x80, 0x18, 0x39, 0x43, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, -0x30, 0x6B, 0x78, 0xEA, 0x30, 0xF0, 0x21, 0x6C, -0x73, 0xF0, 0x00, 0x4C, 0x12, 0xEB, 0x6D, 0xE4, -0x20, 0xF0, 0x81, 0xA3, 0xFF, 0x74, 0x0F, 0x60, -0x20, 0xF0, 0x83, 0xA3, 0x32, 0x5C, 0x04, 0x60, -0x01, 0x4C, 0x20, 0xF0, 0x83, 0xC3, 0x07, 0x10, -0x00, 0x6C, 0x20, 0xF0, 0x83, 0xC3, 0x01, 0x6C, -0x8B, 0xEC, 0x20, 0xF0, 0x81, 0xC3, 0x20, 0xF0, -0x82, 0xA3, 0xFF, 0x74, 0x0F, 0x60, 0x20, 0xF0, -0x84, 0xA3, 0x32, 0x5C, 0x08, 0x61, 0x00, 0x6C, -0x20, 0xF0, 0x84, 0xC3, 0x01, 0x6C, 0x8B, 0xEC, -0x20, 0xF0, 0x82, 0xC3, 0x03, 0x10, 0x01, 0x4C, -0x20, 0xF0, 0x84, 0xC3, 0x17, 0x2A, 0x30, 0xF0, -0x21, 0x6C, 0x12, 0xF5, 0x98, 0x9C, 0x01, 0xF0, -0x00, 0x4A, 0x8C, 0xEA, 0x0F, 0x22, 0x20, 0xF0, -0xA1, 0xA3, 0x20, 0xF0, 0xC3, 0xA3, 0x20, 0xF0, -0xE2, 0xA3, 0x20, 0xF0, 0x44, 0xA3, 0x30, 0xF0, -0x20, 0x6C, 0x84, 0xF7, 0x08, 0x4C, 0x04, 0xD2, -0x80, 0x18, 0x39, 0x43, 0x07, 0x97, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0xFF, 0x6E, 0x44, 0x67, 0x20, 0xF4, 0x0D, 0x6B, -0x9D, 0x67, 0x68, 0xCC, 0xCC, 0xEA, 0x20, 0xF4, -0x0F, 0x6B, 0x69, 0xCC, 0x44, 0x33, 0x6D, 0xE4, -0x68, 0xAB, 0x1F, 0xF7, 0x00, 0x6C, 0xAC, 0xEE, -0x6C, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, -0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF1, -0x80, 0x9C, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, -0x43, 0xF1, 0x84, 0x9C, 0x91, 0xE3, 0xA0, 0xA4, -0xF1, 0x6C, 0xAC, 0xEC, 0xC4, 0x35, 0x8D, 0xED, -0x00, 0xF6, 0xA0, 0x34, 0x00, 0xF6, 0x83, 0x34, -0xFF, 0x6D, 0xAC, 0xEC, 0x1F, 0xF7, 0x00, 0x6D, -0x6C, 0xED, 0x02, 0xF0, 0x00, 0x75, 0x01, 0x60, -0x05, 0x2D, 0x30, 0xF0, 0x20, 0x6D, 0x43, 0xF1, -0xA0, 0x9D, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6D, -0x43, 0xF1, 0xA4, 0x9D, 0xAD, 0xE3, 0x80, 0xC3, -0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, -0x10, 0x6C, 0x8C, 0xEB, 0x07, 0x23, 0x30, 0xF0, -0x20, 0x6C, 0xA4, 0xF7, 0x04, 0x4C, 0xA2, 0x67, -0x80, 0x18, 0x39, 0x43, 0x07, 0x97, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x2B, 0xF1, 0x18, 0x48, 0x07, 0xF7, 0x57, 0xA0, -0xFF, 0x69, 0x8C, 0xE9, 0x16, 0x22, 0x09, 0xE1, -0x07, 0xF7, 0xB2, 0xA2, 0x91, 0x67, 0x04, 0xD2, -0x80, 0x18, 0xDB, 0x4C, 0xE7, 0xF3, 0x40, 0x98, -0x10, 0x6B, 0x6C, 0xEA, 0x0A, 0x22, 0x04, 0x92, -0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF7, 0x1C, 0x4C, -0x07, 0xF7, 0xD2, 0xA2, 0xB1, 0x67, 0x80, 0x18, -0x39, 0x43, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xF8, 0x63, 0x0F, 0x62, -0x0E, 0xD1, 0x0D, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0xFF, 0x6A, 0x03, 0xF4, 0x64, 0x9B, 0x4C, 0xEC, -0x08, 0xD4, 0x00, 0xA3, 0x10, 0x6B, 0x30, 0xF0, -0x20, 0x69, 0x6C, 0xE8, 0x13, 0x30, 0x4C, 0xE8, -0x2B, 0xF1, 0x18, 0x49, 0x35, 0xE0, 0x07, 0xF7, -0x4E, 0xA5, 0x06, 0xD5, 0x82, 0x67, 0x07, 0xD2, -0x80, 0x18, 0x0F, 0x49, 0x7F, 0x6C, 0x4C, 0xEC, -0x09, 0xD2, 0x80, 0x18, 0x1E, 0x49, 0x06, 0x93, -0x0A, 0xD2, 0x07, 0xF7, 0x57, 0xA1, 0x07, 0xF7, -0x70, 0xA3, 0x06, 0xD3, 0x59, 0x22, 0xE7, 0xF3, -0x40, 0x99, 0x10, 0x6D, 0xAC, 0xEA, 0x0C, 0x22, -0x07, 0xF7, 0x56, 0xA1, 0x07, 0x95, 0x08, 0x96, -0x09, 0x97, 0x30, 0xF0, 0x20, 0x6C, 0xC4, 0xF7, -0x14, 0x4C, 0x04, 0xD2, 0x80, 0x18, 0x39, 0x43, -0x08, 0x92, 0x12, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x07, 0xF7, 0xB5, 0xA2, -0x01, 0x6B, 0x83, 0x67, 0x84, 0xE8, 0xAD, 0xEC, -0x07, 0xF7, 0x95, 0xC2, 0x06, 0x94, 0x0A, 0x95, -0x01, 0x4C, 0xA2, 0xEC, 0x0E, 0x60, 0x22, 0x10, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x68, 0x0C, 0xEC, +0x30, 0x6B, 0x78, 0xEC, 0x5D, 0x67, 0x25, 0x67, +0x40, 0xF0, 0xA8, 0xAA, 0x30, 0xF0, 0x21, 0x6A, +0x73, 0xF0, 0x00, 0x4A, 0x0C, 0xE9, 0x10, 0xD6, +0x11, 0xD7, 0x06, 0x07, 0x12, 0xEB, 0x69, 0xE2, +0x09, 0xD2, 0x7F, 0x6A, 0x2C, 0xEA, 0x08, 0xD2, +0x08, 0x96, 0x7D, 0x67, 0x00, 0x6A, 0x4C, 0xCB, +0x4D, 0xCB, 0x00, 0xF0, 0x1A, 0x02, 0x04, 0xD2, +0x80, 0x18, 0xFE, 0x4A, 0x80, 0x6B, 0x6B, 0xEB, +0x2C, 0xEB, 0x0C, 0xEB, 0x0A, 0x6A, 0x08, 0x2B, +0x08, 0x94, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0x49, 0xE4, 0x68, 0xF5, 0x5C, 0xA2, +0xDD, 0x67, 0x8C, 0xAE, 0x6D, 0xAE, 0x00, 0x69, +0xA3, 0x44, 0x55, 0xE5, 0xA2, 0xEB, 0x05, 0x60, +0x23, 0x44, 0x67, 0xE1, 0x25, 0xE2, 0xFF, 0x6A, +0x4C, 0xE9, 0x08, 0x93, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0x49, 0xE3, 0xDD, 0x67, +0x28, 0xF5, 0x48, 0xA2, 0x8C, 0xAE, 0x6D, 0xAE, +0x00, 0x68, 0x95, 0xE2, 0xA2, 0xEB, 0x04, 0x60, +0x63, 0xE4, 0x41, 0xE0, 0xFF, 0x6A, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x07, 0xF7, 0x95, 0xA2, 0x01, 0x6B, 0x64, 0xE8, -0x6F, 0xEB, 0x8C, 0xEB, 0x07, 0xF7, 0x75, 0xC2, -0x15, 0x10, 0x07, 0xF7, 0x96, 0xA2, 0x87, 0xE8, -0x6C, 0xEC, 0x10, 0x24, 0xE7, 0xF3, 0x40, 0x9A, -0x10, 0x6B, 0x6C, 0xEA, 0x07, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0xE4, 0xF7, 0x14, 0x4C, 0xB0, 0x67, -0x80, 0x18, 0x39, 0x43, 0x90, 0x67, 0x80, 0x18, -0x03, 0x4D, 0x12, 0x10, 0x30, 0xF0, 0x21, 0x6A, -0x12, 0xF5, 0x58, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, -0x07, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x05, 0xF0, -0x00, 0x4C, 0xB0, 0x67, 0x80, 0x18, 0x39, 0x43, -0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0xDB, 0x4C, -0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6B, 0x44, 0x67, 0x6C, 0xEA, 0xAC, 0xEB, -0x01, 0x73, 0x0B, 0x60, 0x03, 0x23, 0x02, 0x73, -0x0F, 0x60, 0x16, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x2B, 0xF1, 0x18, 0x4B, 0x6D, 0xE2, 0x01, 0x6C, -0x0D, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, -0x18, 0x4B, 0x6D, 0xE2, 0x03, 0x6C, 0x06, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, -0x6D, 0xE2, 0x07, 0x6C, 0x07, 0xF7, 0x92, 0xC3, -0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, -0xE7, 0xF3, 0x80, 0x9B, 0x10, 0x6D, 0xAC, 0xEC, -0x0A, 0x24, 0x6D, 0xE2, 0x07, 0xF7, 0xD2, 0xA3, -0x30, 0xF0, 0x20, 0x6C, 0x05, 0xF0, 0x0C, 0x4C, -0xA2, 0x67, 0x80, 0x18, 0x39, 0x43, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xEE, 0x4C, 0xED, -0xEC, 0xEA, 0x30, 0x6F, 0xF8, 0xEC, 0x30, 0xF0, -0x21, 0x6B, 0x73, 0xF0, 0x00, 0x4B, 0x12, 0xEF, -0xED, 0xE3, 0xFD, 0x67, 0xB2, 0xC7, 0x93, 0xC7, -0x55, 0xC7, 0x4B, 0xAB, 0x56, 0xC7, 0x4A, 0xAB, -0xD8, 0xC7, 0x57, 0xC7, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x49, 0xE4, 0x49, 0xF0, -0x98, 0xA2, 0x29, 0xF0, 0xB8, 0xA2, 0x80, 0x18, -0x2B, 0x49, 0x7D, 0x67, 0x59, 0xC3, 0x0C, 0x6A, -0x50, 0xC3, 0x08, 0x6A, 0x4F, 0xCB, 0x07, 0x97, -0x04, 0x94, 0x05, 0x95, 0x06, 0x96, 0x80, 0x18, -0x20, 0x41, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, -0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x6A, 0x03, 0xF4, -0x68, 0x9B, 0x4C, 0xEC, 0x04, 0xD4, 0x4C, 0xED, -0x4C, 0xEE, 0x4C, 0xEF, 0x94, 0x34, 0x06, 0xD5, -0x07, 0xD6, 0x05, 0xD7, 0x6D, 0xE4, 0x60, 0xA3, -0x04, 0x94, 0x6C, 0xEA, 0x08, 0xD2, 0x80, 0x18, -0x15, 0x49, 0x04, 0x94, 0x06, 0x95, 0x09, 0xD2, -0x80, 0x18, 0x66, 0x49, 0xFF, 0x72, 0x22, 0x67, -0x79, 0x60, 0x04, 0x92, 0x30, 0x68, 0x0C, 0x59, -0x18, 0xEA, 0x30, 0xF0, 0x21, 0x6A, 0x73, 0xF0, -0x00, 0x4A, 0x12, 0xE8, 0x01, 0xE2, 0x22, 0xC0, -0x05, 0x60, 0x67, 0xA0, 0x0D, 0x6A, 0x4B, 0xEA, -0x6C, 0xEA, 0x09, 0x10, 0x05, 0x94, 0x03, 0x6B, -0x0D, 0x6A, 0x8C, 0xEB, 0x87, 0xA0, 0x4B, 0xEA, -0x68, 0x33, 0x8C, 0xEA, 0x6D, 0xEA, 0x47, 0xC0, -0x07, 0x95, 0x15, 0x2D, 0x43, 0xA0, 0x2E, 0xEA, -0x01, 0x22, 0xB6, 0xC8, 0x6C, 0xA0, 0x7F, 0x6A, -0xB1, 0x67, 0x6C, 0xEA, 0x4C, 0xC0, 0x04, 0x94, -0x80, 0x18, 0x57, 0x49, 0x04, 0x94, 0x05, 0x96, -0xB1, 0x67, 0x00, 0x6F, 0x80, 0x18, 0x77, 0x4D, -0x00, 0x6A, 0x62, 0x67, 0x1C, 0x10, 0x6C, 0xA0, -0x80, 0x6A, 0x4B, 0xEA, 0x6D, 0xEA, 0x4C, 0xC0, -0x04, 0x94, 0x05, 0x96, 0xB1, 0x67, 0x05, 0x6F, -0x80, 0x18, 0x77, 0x4D, 0x06, 0x94, 0x30, 0xF0, -0x20, 0x6A, 0x7F, 0x6B, 0x8C, 0xEB, 0xE8, 0xF3, -0x08, 0x4A, 0x49, 0xE3, 0x40, 0xA2, 0x50, 0xC0, -0x70, 0xA0, 0x51, 0xA0, 0x63, 0xEA, 0x01, 0x60, -0x50, 0xC0, 0x40, 0x6A, 0x01, 0x6B, 0x09, 0x95, -0x05, 0x96, 0x07, 0x6C, 0xAC, 0xEC, 0xCC, 0x35, -0xB1, 0xE4, 0x08, 0x96, 0x4D, 0xEC, 0x04, 0x6A, -0x4B, 0xEA, 0xCC, 0xEA, 0x6D, 0xEA, 0x00, 0xF6, -0x80, 0x34, 0x00, 0xF6, 0x40, 0x32, 0xFF, 0x6D, -0x00, 0xF6, 0x83, 0x34, 0x00, 0xF6, 0x43, 0x32, -0xAC, 0xEC, 0xAC, 0xEA, 0x04, 0x95, 0xB4, 0x33, -0x30, 0xF0, 0x20, 0x6D, 0xA3, 0xF1, 0xA8, 0x9D, -0xB5, 0xE3, 0x20, 0xC5, 0x30, 0xF0, 0x20, 0x6D, -0xA3, 0xF3, 0xAC, 0x9D, 0xB5, 0xE3, 0x80, 0xC5, -0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF4, 0x88, 0x9C, -0x8D, 0xE3, 0x40, 0xC3, 0x0D, 0x97, 0x0C, 0x91, +0xE7, 0xF3, 0x80, 0x9A, 0xFF, 0x6B, 0x01, 0x4B, +0x8C, 0xEB, 0x0C, 0x23, 0x08, 0x93, 0x30, 0xF0, +0x20, 0x6C, 0xE4, 0xF6, 0x1C, 0x4C, 0x49, 0xE3, +0x28, 0xF5, 0xA8, 0xA2, 0x68, 0xF5, 0xDC, 0xA2, +0x80, 0x18, 0x48, 0x43, 0x30, 0xF0, 0x21, 0x6B, +0x12, 0xF5, 0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, +0x6C, 0xEA, 0x08, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0x04, 0xF7, 0x0C, 0x4C, 0xB0, 0x67, 0xD1, 0x67, +0x80, 0x18, 0x48, 0x43, 0x09, 0x94, 0x3F, 0x6B, +0x5E, 0xA4, 0x6C, 0xEA, 0x7E, 0x84, 0x00, 0x53, +0x0F, 0x60, 0x43, 0xE9, 0x02, 0x60, 0x00, 0x69, +0x03, 0x10, 0x47, 0xE1, 0xFF, 0x6B, 0x6C, 0xE9, +0x43, 0xE8, 0x02, 0x60, 0x00, 0x68, 0x0A, 0x10, +0x43, 0xE0, 0xFF, 0x6A, 0x4C, 0xE8, 0x06, 0x10, +0x05, 0x22, 0xFF, 0x6B, 0x45, 0xE1, 0x41, 0xE0, +0x6C, 0xE9, 0x6C, 0xE8, 0x42, 0x58, 0x50, 0x67, +0x01, 0x61, 0x41, 0x6A, 0x10, 0x96, 0x5B, 0x59, +0x40, 0xC6, 0x51, 0x67, 0x01, 0x61, 0x5A, 0x6A, +0x11, 0x93, 0x40, 0xC3, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0x30, 0x68, 0x18, 0xEC, +0x4C, 0xED, 0x30, 0xF0, 0x21, 0x6A, 0x73, 0xF0, +0x00, 0x4A, 0x07, 0xD4, 0x06, 0xD5, 0x01, 0x69, +0x12, 0xE8, 0x01, 0xE2, 0x46, 0xA0, 0x08, 0xD2, +0x00, 0x6A, 0x05, 0xD2, 0x81, 0xA0, 0x4C, 0xA0, +0x07, 0x96, 0xFF, 0x6B, 0x91, 0xE1, 0x03, 0x6F, +0x6C, 0xEC, 0x01, 0x6D, 0x4C, 0xEF, 0x80, 0x18, +0xA0, 0x49, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, +0x78, 0x9B, 0x04, 0xD2, 0x00, 0xF2, 0x00, 0x6A, +0x6C, 0xEA, 0x0C, 0x22, 0x05, 0x92, 0xC1, 0xA0, +0x04, 0x97, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6C, +0x04, 0xF7, 0x1C, 0x4C, 0xA2, 0x67, 0xD9, 0xE2, +0x80, 0x18, 0x48, 0x43, 0x04, 0x92, 0xFF, 0x72, +0x0E, 0x61, 0x05, 0x93, 0x81, 0xA0, 0x40, 0xA0, +0x01, 0x4B, 0x91, 0xE3, 0x42, 0xEC, 0x06, 0x60, +0x01, 0x49, 0xFF, 0x6A, 0x4C, 0xE9, 0x54, 0x71, +0x05, 0xD3, 0xD0, 0x61, 0x04, 0xD2, 0x06, 0x92, +0x38, 0x5A, 0x02, 0x61, 0x46, 0xA0, 0x0D, 0x10, +0x06, 0x92, 0x24, 0x5A, 0x05, 0x61, 0x08, 0x92, +0xFF, 0x6B, 0xFE, 0x4A, 0x6C, 0xEA, 0x05, 0x10, +0x06, 0x92, 0x15, 0x5A, 0x04, 0x92, 0x01, 0x60, +0x41, 0xA0, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, +0x30, 0x68, 0x18, 0xEC, 0x4C, 0xEF, 0x30, 0xF0, +0x21, 0x6B, 0x0D, 0xD5, 0x0E, 0xD6, 0x06, 0xD4, +0x05, 0xD7, 0x73, 0xF0, 0x00, 0x4B, 0x20, 0xA5, +0x03, 0x6D, 0x12, 0xE8, 0x01, 0xE3, 0x60, 0xA6, +0x04, 0xD3, 0x87, 0xA0, 0x04, 0x96, 0xAC, 0xEC, +0x64, 0x67, 0x4C, 0xEB, 0xC2, 0xEB, 0x03, 0x60, +0x0E, 0x91, 0x80, 0xC1, 0xA2, 0x10, 0xA0, 0xF0, +0x00, 0x23, 0x2F, 0x59, 0x80, 0xF0, 0x1D, 0x60, +0x6C, 0xA0, 0x6C, 0xED, 0x4C, 0xED, 0x80, 0xF0, +0x18, 0x25, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, +0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x09, 0x22, 0x05, 0x95, 0x04, 0x96, 0x30, 0xF0, +0x20, 0x6C, 0x24, 0xF7, 0x10, 0x4C, 0xF1, 0x67, +0x80, 0x18, 0x48, 0x43, 0x05, 0x92, 0x01, 0x72, +0x03, 0x60, 0x05, 0x6B, 0x01, 0x6A, 0x42, 0x10, +0x04, 0x6B, 0x00, 0x6A, 0x3F, 0x10, 0x05, 0x93, +0x81, 0x42, 0x01, 0x73, 0x01, 0x60, 0x8F, 0x42, +0xFF, 0x6A, 0x4C, 0xEC, 0x30, 0xF0, 0x20, 0x6F, +0x48, 0xF4, 0x00, 0x4F, 0x88, 0x32, 0xE9, 0xE2, +0xC0, 0xAA, 0xFF, 0x6D, 0x88, 0x34, 0x26, 0x67, +0xAC, 0xE9, 0x04, 0xD1, 0x47, 0xA0, 0x91, 0xE7, +0xE1, 0xAC, 0x1A, 0x65, 0x38, 0x67, 0x03, 0x6A, +0x2C, 0xEA, 0xE2, 0x34, 0xAC, 0xEA, 0xAC, 0xEC, +0xC2, 0x33, 0x82, 0xEA, 0xAC, 0xEB, 0x41, 0x61, +0xE4, 0xC0, 0x30, 0xF0, 0x20, 0x6D, 0x05, 0xD5, +0x06, 0x95, 0x30, 0x69, 0x38, 0xED, 0x05, 0x91, +0x2B, 0xF1, 0x18, 0x49, 0x12, 0xED, 0x35, 0xE5, +0x47, 0xF7, 0x8E, 0xC5, 0x84, 0xA0, 0xFF, 0x74, +0x30, 0x60, 0xAC, 0xA0, 0x19, 0x6C, 0x8B, 0xEC, +0xAC, 0xEC, 0x08, 0x6D, 0xAD, 0xEC, 0x8C, 0xC0, +0x28, 0x10, 0x01, 0x4A, 0xFF, 0x6C, 0x8C, 0xEA, +0x63, 0xEA, 0x46, 0x60, 0x30, 0xF0, 0x20, 0x6C, +0x48, 0x35, 0x48, 0xF4, 0x00, 0x4C, 0x91, 0xE5, +0xA0, 0xAC, 0xFF, 0x6C, 0xC5, 0x67, 0x8C, 0xEE, +0x2E, 0xEE, 0x05, 0x2E, 0xA2, 0x35, 0x8C, 0xED, +0x04, 0x94, 0x8E, 0xED, 0xB0, 0x25, 0x30, 0xF0, +0x20, 0x6C, 0x48, 0x35, 0x48, 0xF4, 0x00, 0x4C, +0xB1, 0xE4, 0xA1, 0xAC, 0xFF, 0x6C, 0xC5, 0x67, +0x8C, 0xEE, 0x2E, 0xEE, 0xDE, 0x2E, 0x04, 0x96, +0xA2, 0x35, 0x8C, 0xED, 0xCE, 0xED, 0xD9, 0x2D, +0x9E, 0x17, 0x62, 0xEA, 0x00, 0x68, 0x09, 0x61, +0x3D, 0x67, 0x47, 0x41, 0x09, 0x4A, 0x40, 0xA2, +0x0D, 0x91, 0x01, 0x68, 0x40, 0xC1, 0x0E, 0x94, +0x60, 0xC4, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, +0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x09, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF7, +0x0C, 0x4C, 0xB0, 0x67, 0x80, 0x18, 0x48, 0x43, +0x01, 0x10, 0x00, 0x68, 0x50, 0x67, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0x00, 0x68, 0xF0, 0x67, 0xD0, 0x67, 0xE5, 0x17, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x68, 0x0C, 0xEC, 0xAC, 0xE8, 0xFF, 0x70, +0x04, 0xD4, 0x33, 0x60, 0x7F, 0x69, 0x0C, 0xE9, +0x91, 0x67, 0x80, 0x18, 0x2D, 0x49, 0x04, 0x93, +0x30, 0x6C, 0x98, 0xEB, 0x30, 0xF0, 0x21, 0x6B, +0x73, 0xF0, 0x00, 0x4B, 0x12, 0xEC, 0x8D, 0xE3, +0x4D, 0xE3, 0x20, 0xF0, 0x60, 0xA3, 0x00, 0xF2, +0x00, 0x6A, 0x04, 0xD3, 0x30, 0xF0, 0x21, 0x6B, +0x12, 0xF5, 0x78, 0x9B, 0x6C, 0xEA, 0x08, 0x22, +0x04, 0x96, 0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF7, +0x04, 0x4C, 0xB0, 0x67, 0x80, 0x18, 0x48, 0x43, +0x04, 0x94, 0xFF, 0x74, 0x0F, 0x60, 0x7F, 0x6A, +0x8C, 0xEA, 0x23, 0xEA, 0x0A, 0x61, 0x4E, 0xE9, +0x09, 0x29, 0x80, 0x6A, 0x70, 0x67, 0x4C, 0xEB, +0x8C, 0xEA, 0x4A, 0xEB, 0x02, 0x60, 0x02, 0x23, +0x01, 0x2A, 0xFF, 0x68, 0x50, 0x67, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0x4C, 0xED, 0x4C, 0xEE, 0xC3, 0xED, +0x4C, 0xEC, 0xEC, 0xEA, 0x02, 0x61, 0xD7, 0xE5, +0x01, 0x10, 0xB7, 0xE6, 0x03, 0x55, 0x01, 0x60, +0x25, 0x22, 0x30, 0x69, 0x38, 0xEC, 0x30, 0xF0, +0x21, 0x6A, 0x73, 0xF0, 0x00, 0x4A, 0x30, 0xF0, +0x20, 0x68, 0xFF, 0x6D, 0x02, 0x6E, 0x12, 0xE9, +0x25, 0xE2, 0x80, 0xF2, 0x48, 0x98, 0x87, 0x41, +0x1A, 0x4C, 0x40, 0xEA, 0x80, 0xF2, 0x48, 0x98, +0x87, 0x41, 0x1C, 0x4C, 0x00, 0x6D, 0x02, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, +0x78, 0x9B, 0x01, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, +0x13, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF7, +0x14, 0x4C, 0x0C, 0x10, 0x30, 0xF0, 0x21, 0x6B, +0x12, 0xF5, 0x78, 0x9B, 0x01, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0x84, 0xF7, 0x00, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0x6B, 0x78, 0xEA, +0x30, 0xF0, 0x21, 0x6C, 0x73, 0xF0, 0x00, 0x4C, +0x12, 0xEB, 0x6D, 0xE4, 0x20, 0xF0, 0x81, 0xA3, +0xFF, 0x74, 0x0F, 0x60, 0x20, 0xF0, 0x83, 0xA3, +0x32, 0x5C, 0x04, 0x60, 0x01, 0x4C, 0x20, 0xF0, +0x83, 0xC3, 0x07, 0x10, 0x00, 0x6C, 0x20, 0xF0, +0x83, 0xC3, 0x01, 0x6C, 0x8B, 0xEC, 0x20, 0xF0, +0x81, 0xC3, 0x20, 0xF0, 0x82, 0xA3, 0xFF, 0x74, +0x0F, 0x60, 0x20, 0xF0, 0x84, 0xA3, 0x32, 0x5C, +0x08, 0x61, 0x00, 0x6C, 0x20, 0xF0, 0x84, 0xC3, +0x01, 0x6C, 0x8B, 0xEC, 0x20, 0xF0, 0x82, 0xC3, +0x03, 0x10, 0x01, 0x4C, 0x20, 0xF0, 0x84, 0xC3, +0x17, 0x2A, 0x30, 0xF0, 0x21, 0x6C, 0x12, 0xF5, +0x98, 0x9C, 0x01, 0xF0, 0x00, 0x4A, 0x8C, 0xEA, +0x0F, 0x22, 0x20, 0xF0, 0xA1, 0xA3, 0x20, 0xF0, +0xC3, 0xA3, 0x20, 0xF0, 0xE2, 0xA3, 0x20, 0xF0, +0x44, 0xA3, 0x30, 0xF0, 0x20, 0x6C, 0x84, 0xF7, +0x0C, 0x4C, 0x04, 0xD2, 0x80, 0x18, 0x48, 0x43, +0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0xFF, 0x6E, 0x44, 0x67, +0x20, 0xF4, 0x0D, 0x6B, 0x9D, 0x67, 0x68, 0xCC, +0xCC, 0xEA, 0x20, 0xF4, 0x0F, 0x6B, 0x69, 0xCC, +0x44, 0x33, 0x6D, 0xE4, 0x68, 0xAB, 0x1F, 0xF7, +0x00, 0x6C, 0xAC, 0xEE, 0x6C, 0xEC, 0x02, 0xF0, +0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, +0x20, 0x6C, 0x43, 0xF1, 0x84, 0x9C, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF1, 0x88, 0x9C, +0x91, 0xE3, 0xA0, 0xA4, 0xF1, 0x6C, 0xAC, 0xEC, +0xC4, 0x35, 0x8D, 0xED, 0x00, 0xF6, 0xA0, 0x34, +0x00, 0xF6, 0x83, 0x34, 0xFF, 0x6D, 0xAC, 0xEC, +0x1F, 0xF7, 0x00, 0x6D, 0x6C, 0xED, 0x02, 0xF0, +0x00, 0x75, 0x01, 0x60, 0x05, 0x2D, 0x30, 0xF0, +0x20, 0x6D, 0x43, 0xF1, 0xA4, 0x9D, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6D, 0x43, 0xF1, 0xA8, 0x9D, +0xAD, 0xE3, 0x80, 0xC3, 0x30, 0xF0, 0x21, 0x6B, +0x12, 0xF5, 0x78, 0x9B, 0x10, 0x6C, 0x8C, 0xEB, +0x07, 0x23, 0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF7, +0x08, 0x4C, 0xA2, 0x67, 0x80, 0x18, 0x48, 0x43, +0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, +0x07, 0xF7, 0x57, 0xA0, 0xFF, 0x69, 0x8C, 0xE9, +0x16, 0x22, 0x09, 0xE1, 0x07, 0xF7, 0xB2, 0xA2, +0x91, 0x67, 0x04, 0xD2, 0x80, 0x18, 0xEA, 0x4C, +0xE7, 0xF3, 0x40, 0x98, 0x10, 0x6B, 0x6C, 0xEA, +0x0A, 0x22, 0x04, 0x92, 0x30, 0xF0, 0x20, 0x6C, +0xC4, 0xF7, 0x00, 0x4C, 0x07, 0xF7, 0xD2, 0xA2, +0xB1, 0x67, 0x80, 0x18, 0x48, 0x43, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x6A, 0x03, 0xF4, +0x64, 0x9B, 0x4C, 0xEC, 0x08, 0xD4, 0x00, 0xA3, +0x10, 0x6B, 0x30, 0xF0, 0x20, 0x69, 0x6C, 0xE8, +0x13, 0x30, 0x4C, 0xE8, 0x2B, 0xF1, 0x18, 0x49, +0x35, 0xE0, 0x07, 0xF7, 0x4E, 0xA5, 0x06, 0xD5, +0x82, 0x67, 0x07, 0xD2, 0x80, 0x18, 0x1E, 0x49, +0x7F, 0x6C, 0x4C, 0xEC, 0x09, 0xD2, 0x80, 0x18, +0x2D, 0x49, 0x06, 0x93, 0x0A, 0xD2, 0x07, 0xF7, +0x57, 0xA1, 0x07, 0xF7, 0x70, 0xA3, 0x06, 0xD3, +0x59, 0x22, 0xE7, 0xF3, 0x40, 0x99, 0x10, 0x6D, +0xAC, 0xEA, 0x0C, 0x22, 0x07, 0xF7, 0x56, 0xA1, +0x07, 0x95, 0x08, 0x96, 0x09, 0x97, 0x30, 0xF0, +0x20, 0x6C, 0xC4, 0xF7, 0x18, 0x4C, 0x04, 0xD2, +0x80, 0x18, 0x48, 0x43, 0x08, 0x92, 0x12, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0x07, 0xF7, 0xB5, 0xA2, 0x01, 0x6B, 0x83, 0x67, +0x84, 0xE8, 0xAD, 0xEC, 0x07, 0xF7, 0x95, 0xC2, +0x06, 0x94, 0x0A, 0x95, 0x01, 0x4C, 0xA2, 0xEC, +0x0E, 0x60, 0x22, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0x07, 0xF7, 0x95, 0xA2, +0x01, 0x6B, 0x64, 0xE8, 0x6F, 0xEB, 0x8C, 0xEB, +0x07, 0xF7, 0x75, 0xC2, 0x15, 0x10, 0x07, 0xF7, +0x96, 0xA2, 0x87, 0xE8, 0x6C, 0xEC, 0x10, 0x24, +0xE7, 0xF3, 0x40, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, +0x07, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xE4, 0xF7, +0x18, 0x4C, 0xB0, 0x67, 0x80, 0x18, 0x48, 0x43, +0x90, 0x67, 0x80, 0x18, 0x12, 0x4D, 0x12, 0x10, +0x30, 0xF0, 0x21, 0x6A, 0x12, 0xF5, 0x58, 0x9A, +0x10, 0x6B, 0x6C, 0xEA, 0x07, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x05, 0xF0, 0x04, 0x4C, 0xB0, 0x67, +0x80, 0x18, 0x48, 0x43, 0x90, 0x67, 0x00, 0x6D, +0x80, 0x18, 0xEA, 0x4C, 0x0F, 0x97, 0x0E, 0x91, +0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6B, 0x44, 0x67, +0x6C, 0xEA, 0xAC, 0xEB, 0x01, 0x73, 0x0B, 0x60, +0x03, 0x23, 0x02, 0x73, 0x0F, 0x60, 0x16, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, +0x6D, 0xE2, 0x01, 0x6C, 0x0D, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x6D, 0xE2, +0x03, 0x6C, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x2B, 0xF1, 0x18, 0x4B, 0x6D, 0xE2, 0x07, 0x6C, +0x07, 0xF7, 0x92, 0xC3, 0x30, 0xF0, 0x20, 0x6B, +0x2B, 0xF1, 0x18, 0x4B, 0xE7, 0xF3, 0x80, 0x9B, +0x10, 0x6D, 0xAC, 0xEC, 0x0A, 0x24, 0x6D, 0xE2, +0x07, 0xF7, 0xD2, 0xA3, 0x30, 0xF0, 0x20, 0x6C, +0x05, 0xF0, 0x10, 0x4C, 0xA2, 0x67, 0x80, 0x18, +0x48, 0x43, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0x4C, 0xEE, 0x4C, 0xED, 0xEC, 0xEA, 0x30, 0x6F, +0xF8, 0xEC, 0x30, 0xF0, 0x21, 0x6B, 0x73, 0xF0, +0x00, 0x4B, 0x12, 0xEF, 0xED, 0xE3, 0xFD, 0x67, +0xB2, 0xC7, 0x93, 0xC7, 0x55, 0xC7, 0x4B, 0xAB, +0x56, 0xC7, 0x4A, 0xAB, 0xD8, 0xC7, 0x57, 0xC7, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0x49, 0xE4, 0x49, 0xF0, 0x98, 0xA2, 0x29, 0xF0, +0xB8, 0xA2, 0x80, 0x18, 0x3A, 0x49, 0x7D, 0x67, +0x59, 0xC3, 0x0C, 0x6A, 0x50, 0xC3, 0x08, 0x6A, +0x4F, 0xCB, 0x07, 0x97, 0x04, 0x94, 0x05, 0x95, +0x06, 0x96, 0x80, 0x18, 0x20, 0x41, 0x09, 0x97, +0x05, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0xFF, 0x6A, 0x03, 0xF4, 0x68, 0x9B, 0x4C, 0xEC, +0x04, 0xD4, 0x4C, 0xED, 0x4C, 0xEE, 0x4C, 0xEF, +0x94, 0x34, 0x06, 0xD5, 0x07, 0xD6, 0x05, 0xD7, +0x6D, 0xE4, 0x60, 0xA3, 0x04, 0x94, 0x6C, 0xEA, +0x08, 0xD2, 0x80, 0x18, 0x24, 0x49, 0x04, 0x94, +0x06, 0x95, 0x09, 0xD2, 0x80, 0x18, 0x75, 0x49, +0xFF, 0x72, 0x22, 0x67, 0x7C, 0x60, 0x04, 0x92, +0x30, 0x68, 0x0C, 0x59, 0x18, 0xEA, 0x30, 0xF0, +0x21, 0x6A, 0x73, 0xF0, 0x00, 0x4A, 0x12, 0xE8, +0x01, 0xE2, 0x22, 0xC0, 0x08, 0x60, 0x67, 0xA0, +0x0D, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x00, 0x6C, +0x47, 0xC0, 0x05, 0xD4, 0x0A, 0x10, 0x05, 0x95, +0x87, 0xA0, 0x03, 0x6B, 0x0D, 0x6A, 0xAC, 0xEB, +0x4B, 0xEA, 0x68, 0x33, 0x8C, 0xEA, 0x6D, 0xEA, +0x47, 0xC0, 0x07, 0x96, 0x15, 0x2E, 0x43, 0xA0, +0x2E, 0xEA, 0x01, 0x22, 0xD6, 0xC8, 0x6C, 0xA0, +0x7F, 0x6A, 0xB1, 0x67, 0x6C, 0xEA, 0x4C, 0xC0, +0x04, 0x94, 0x80, 0x18, 0x66, 0x49, 0x04, 0x94, +0x05, 0x96, 0xB1, 0x67, 0x00, 0x6F, 0x80, 0x18, +0x86, 0x4D, 0x00, 0x6A, 0x62, 0x67, 0x1C, 0x10, +0x6C, 0xA0, 0x80, 0x6A, 0x4B, 0xEA, 0x6D, 0xEA, +0x4C, 0xC0, 0x04, 0x94, 0x05, 0x96, 0xB1, 0x67, +0x05, 0x6F, 0x80, 0x18, 0x86, 0x4D, 0x06, 0x94, +0x30, 0xF0, 0x20, 0x6A, 0x7F, 0x6B, 0x8C, 0xEB, +0xE8, 0xF3, 0x0C, 0x4A, 0x49, 0xE3, 0x40, 0xA2, +0x50, 0xC0, 0x70, 0xA0, 0x51, 0xA0, 0x63, 0xEA, +0x01, 0x60, 0x50, 0xC0, 0x40, 0x6A, 0x01, 0x6B, +0x05, 0x96, 0x07, 0x6C, 0xCC, 0x35, 0x09, 0x96, +0xCC, 0xEC, 0x91, 0xE5, 0x08, 0x96, 0x4D, 0xEC, +0x04, 0x6A, 0x4B, 0xEA, 0xCC, 0xEA, 0x6D, 0xEA, +0x00, 0xF6, 0x80, 0x34, 0x00, 0xF6, 0x40, 0x32, +0xFF, 0x6D, 0x00, 0xF6, 0x83, 0x34, 0x00, 0xF6, +0x43, 0x32, 0xAC, 0xEC, 0xAC, 0xEA, 0x04, 0x95, +0xB4, 0x33, 0x30, 0xF0, 0x20, 0x6D, 0xA3, 0xF1, +0xAC, 0x9D, 0xB5, 0xE3, 0x20, 0xC5, 0x30, 0xF0, +0x20, 0x6D, 0xA3, 0xF3, 0xAC, 0x9D, 0xB5, 0xE3, +0x80, 0xC5, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF4, +0x88, 0x9C, 0x8D, 0xE3, 0x40, 0xC3, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x8C, 0xE9, 0x30, 0x68, 0x18, 0xE9, 0x30, 0xF0, 0x21, 0x6A, 0x73, 0xF0, 0x00, 0x4A, 0x91, 0x67, 0x12, 0xE8, 0x01, 0xE2, 0x80, 0x18, -0x0F, 0x49, 0x7F, 0x6B, 0x4C, 0xEB, 0x04, 0xD3, +0x1E, 0x49, 0x7F, 0x6B, 0x4C, 0xEB, 0x04, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0x70, 0x9B, 0x2C, 0x32, 0x91, 0x67, 0x6D, 0xE2, 0xA0, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, 0x78, 0x9B, -0x69, 0xE2, 0xC0, 0x9A, 0x80, 0x18, 0x49, 0x4A, +0x69, 0xE2, 0xC0, 0x9A, 0x80, 0x18, 0x58, 0x4A, 0x05, 0xD2, 0x30, 0xF0, 0x21, 0x6A, 0x12, 0xF5, 0x58, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x08, 0x22, 0x04, 0x95, 0x05, 0x96, 0x30, 0xF0, 0x20, 0x6C, -0x25, 0xF0, 0x04, 0x4C, 0x80, 0x18, 0x39, 0x43, +0x25, 0xF0, 0x08, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x04, 0x92, 0x05, 0x93, 0x6E, 0xEA, 0x09, 0x22, 0xE7, 0xA0, 0x03, 0x6A, 0x91, 0x67, 0xEA, 0x37, 0xA3, 0x67, 0x00, 0x6E, 0x4C, 0xEF, 0x80, 0x18, -0x90, 0x4D, 0x6C, 0xA0, 0x03, 0x6A, 0x6C, 0xEA, +0x9F, 0x4D, 0x6C, 0xA0, 0x03, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x33, 0x6A, 0x01, 0x10, 0x13, 0x6A, 0x46, 0xC0, 0x66, 0xA0, 0x40, 0xA0, 0x63, 0xEA, 0x01, 0x60, 0x46, 0xC0, 0x68, 0xA0, 0x1F, 0x6A, @@ -35702,7 +35318,7 @@ u8 array_mp_8822c_fw_nic[] = { 0x21, 0x6A, 0x12, 0xF5, 0x58, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x0A, 0x22, 0xFF, 0xA0, 0xA0, 0xA0, 0xC1, 0xA0, 0x30, 0xF0, 0x20, 0x6C, 0x25, 0xF0, -0x14, 0x4C, 0xF6, 0x37, 0x80, 0x18, 0x39, 0x43, +0x18, 0x4C, 0xF6, 0x37, 0x80, 0x18, 0x48, 0x43, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, 0x30, 0xF0, 0x20, 0x6A, @@ -35731,7 +35347,7 @@ u8 array_mp_8822c_fw_nic[] = { 0x80, 0xA4, 0x8C, 0xEB, 0x0A, 0xD3, 0x01, 0xF0, 0x00, 0x6B, 0x4C, 0xEB, 0x09, 0x23, 0x0A, 0x96, 0x09, 0x97, 0x30, 0xF0, 0x20, 0x6C, 0x45, 0xF0, -0x0C, 0x4C, 0xB0, 0x67, 0x80, 0x18, 0x39, 0x43, +0x10, 0x4C, 0xB0, 0x67, 0x80, 0x18, 0x48, 0x43, 0x90, 0x67, 0x09, 0x95, 0x00, 0x6E, 0x0A, 0x97, 0x25, 0x10, 0x0B, 0x94, 0xFF, 0x74, 0x24, 0x61, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF4, 0x94, 0x9C, @@ -35740,9 +35356,9 @@ u8 array_mp_8822c_fw_nic[] = { 0x6C, 0xED, 0x0A, 0xD5, 0x80, 0xA4, 0x8C, 0xEB, 0x09, 0xD3, 0x01, 0xF0, 0x00, 0x6B, 0x4C, 0xEB, 0x09, 0x23, 0x09, 0x96, 0x0A, 0x97, 0x30, 0xF0, -0x20, 0x6C, 0x45, 0xF0, 0x0C, 0x4C, 0xB0, 0x67, -0x80, 0x18, 0x39, 0x43, 0x0A, 0x95, 0x09, 0x97, -0x90, 0x67, 0x00, 0x6E, 0x80, 0x18, 0x90, 0x4D, +0x20, 0x6C, 0x45, 0xF0, 0x10, 0x4C, 0xB0, 0x67, +0x80, 0x18, 0x48, 0x43, 0x0A, 0x95, 0x09, 0x97, +0x90, 0x67, 0x00, 0x6E, 0x80, 0x18, 0x9F, 0x4D, 0x20, 0xF0, 0x45, 0xA1, 0x07, 0x2A, 0x08, 0x92, 0x6F, 0xA2, 0x40, 0x6A, 0x6D, 0xEA, 0x08, 0x93, 0x4F, 0xC3, 0x06, 0x10, 0x08, 0x94, 0x41, 0x6A, @@ -35750,34 +35366,34 @@ u8 array_mp_8822c_fw_nic[] = { 0x07, 0x95, 0x40, 0xA5, 0x01, 0x4A, 0x40, 0xC5, 0x40, 0xA5, 0x28, 0x5A, 0x30, 0x61, 0x06, 0x92, 0xA0, 0xAA, 0x40, 0xF0, 0x80, 0xAA, 0x93, 0xE5, -0x80, 0x18, 0x2B, 0x49, 0x08, 0xD2, 0x30, 0xF0, +0x80, 0x18, 0x3A, 0x49, 0x08, 0xD2, 0x30, 0xF0, 0x21, 0x6A, 0x12, 0xF5, 0x58, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, 0x0E, 0x22, 0x06, 0x94, 0x07, 0x93, 0xB0, 0x67, 0xE0, 0xAC, 0x40, 0xF0, 0x40, 0xAC, 0xC0, 0xA3, 0x30, 0xF0, 0x20, 0x6C, 0x65, 0xF0, -0x08, 0x4C, 0x04, 0xD2, 0x80, 0x18, 0x39, 0x43, +0x0C, 0x4C, 0x04, 0xD2, 0x80, 0x18, 0x48, 0x43, 0x30, 0xF0, 0x21, 0x6A, 0x12, 0xF5, 0x58, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, 0x09, 0x22, 0xC3, 0xA1, 0x08, 0x97, 0x30, 0xF0, 0x20, 0x6C, 0x85, 0xF0, -0x08, 0x4C, 0xB0, 0x67, 0x80, 0x18, 0x39, 0x43, -0x90, 0x67, 0x80, 0x18, 0x51, 0x47, 0xFF, 0x6A, +0x0C, 0x4C, 0xB0, 0x67, 0x80, 0x18, 0x48, 0x43, +0x90, 0x67, 0x80, 0x18, 0x60, 0x47, 0xFF, 0x6A, 0x0C, 0xEA, 0x10, 0x2A, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x01, 0xF0, 0x00, 0x4A, 0x6C, 0xEA, 0x08, 0x22, 0x20, 0xF0, 0xA5, 0xA1, -0x30, 0xF0, 0x20, 0x6C, 0xA5, 0xF0, 0x04, 0x4C, -0x80, 0x18, 0x39, 0x43, 0x00, 0x6A, 0x20, 0xF0, -0x45, 0xC1, 0x90, 0x67, 0x80, 0x18, 0xB4, 0x4C, +0x30, 0xF0, 0x20, 0x6C, 0xA5, 0xF0, 0x08, 0x4C, +0x80, 0x18, 0x48, 0x43, 0x00, 0x6A, 0x20, 0xF0, +0x45, 0xC1, 0x90, 0x67, 0x80, 0x18, 0xC3, 0x4C, 0x07, 0x95, 0x06, 0x92, 0x01, 0x48, 0x01, 0x4D, 0x02, 0x4A, 0x20, 0x70, 0x30, 0x49, 0x07, 0xD5, 0x06, 0xD2, 0x3F, 0xF7, 0x0D, 0x61, 0x30, 0xF0, 0x21, 0x6C, 0x12, 0xF5, 0x08, 0x4C, 0x80, 0x18, -0xF4, 0x46, 0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, +0x03, 0x47, 0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, 0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0x68, 0x18, 0xEA, 0x08, 0xD2, 0x08, 0x94, 0xFF, 0x6B, 0x30, 0xF0, 0x21, 0x6A, 0xAC, 0xEB, 0x73, 0xF0, 0x00, 0x4A, 0x0B, 0xD3, 0x7F, 0x69, -0x12, 0xE8, 0x01, 0xE2, 0x80, 0x18, 0x0F, 0x49, +0x12, 0xE8, 0x01, 0xE2, 0x80, 0x18, 0x1E, 0x49, 0x7D, 0x67, 0x58, 0xC3, 0x98, 0xA3, 0x03, 0x6B, 0x09, 0xD4, 0x40, 0xA0, 0x8C, 0xE9, 0x9D, 0x67, 0x0A, 0xD2, 0xE7, 0xA0, 0xEA, 0x32, 0x6C, 0xEA, @@ -35788,8 +35404,8 @@ u8 array_mp_8822c_fw_nic[] = { 0x12, 0xF5, 0x98, 0x9C, 0x00, 0xF2, 0x00, 0x6A, 0x8C, 0xEA, 0x0C, 0x22, 0x5D, 0x67, 0x09, 0x95, 0xD9, 0xA2, 0x6C, 0xEF, 0x30, 0xF0, 0x20, 0x6C, -0xFF, 0x6B, 0xA5, 0xF0, 0x10, 0x4C, 0x6C, 0xEF, -0x80, 0x18, 0x39, 0x43, 0x0A, 0x94, 0x8A, 0xE9, +0xFF, 0x6B, 0xA5, 0xF0, 0x14, 0x4C, 0x6C, 0xEF, +0x80, 0x18, 0x48, 0x43, 0x0A, 0x94, 0x8A, 0xE9, 0x2F, 0x61, 0x6C, 0xA0, 0x04, 0x6A, 0x6C, 0xEA, 0x19, 0x22, 0x09, 0x92, 0x80, 0x6B, 0x6B, 0xEB, 0x6C, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, 0x12, 0x2A, @@ -35797,66 +35413,66 @@ u8 array_mp_8822c_fw_nic[] = { 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0xA0, 0xF0, 0x19, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xC5, 0xF0, -0x0C, 0x4C, 0xB0, 0x10, 0x30, 0xF0, 0x21, 0x6B, +0x10, 0x4C, 0xB0, 0x10, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x40, 0xF1, 0x19, 0x22, 0x7D, 0x67, 0xB8, 0xA3, 0x30, 0xF0, 0x20, 0x6C, 0xC5, 0xF0, -0x18, 0x4C, 0x80, 0x18, 0x39, 0x43, 0x50, 0x11, +0x1C, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x50, 0x11, 0x0A, 0x94, 0x23, 0xEC, 0x17, 0x60, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x08, 0x22, 0x5D, 0x67, 0xB8, 0xA2, 0x30, 0xF0, 0x20, 0x6C, 0xE5, 0xF0, -0x08, 0x4C, 0x80, 0x18, 0x39, 0x43, 0x7D, 0x67, +0x0C, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x7D, 0x67, 0x87, 0x43, 0x21, 0x4C, 0x80, 0xA4, 0x00, 0x69, 0x98, 0xC3, 0x89, 0x10, 0x08, 0x94, 0x06, 0x05, 0x00, 0xF0, 0x19, 0x06, 0x01, 0x6F, 0x80, 0x18, -0x06, 0x4C, 0x12, 0x22, 0x30, 0xF0, 0x21, 0x6B, +0x15, 0x4C, 0x12, 0x22, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x00, 0xF4, 0x00, 0x6A, 0x6C, 0xEA, 0x78, 0x22, 0x5D, 0x67, 0xB8, 0xA2, 0xD9, 0xA2, 0x30, 0xF0, 0x20, 0x6C, 0xE5, 0xF0, -0x18, 0x4C, 0x80, 0x18, 0x39, 0x43, 0x6E, 0x10, +0x1C, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x6E, 0x10, 0x7D, 0x67, 0x87, 0xA0, 0x59, 0xA3, 0x03, 0x6B, 0x8C, 0xEB, 0x62, 0xEA, 0x15, 0x60, 0x9D, 0x67, 0x78, 0xA4, 0x0C, 0x5B, 0x11, 0x61, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x01, 0x4A, 0x59, 0xC4, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x59, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x5D, 0x67, -0x05, 0xF1, 0x14, 0x4C, 0xB9, 0xA2, 0x50, 0x10, +0x05, 0xF1, 0x18, 0x4C, 0xB9, 0xA2, 0x50, 0x10, 0x08, 0x94, 0x06, 0x05, 0x01, 0x6E, 0x80, 0x18, -0x12, 0x4A, 0x00, 0x6B, 0x09, 0xD3, 0x10, 0x22, +0x21, 0x4A, 0x00, 0x6B, 0x09, 0xD3, 0x10, 0x22, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x42, 0x22, -0x30, 0xF0, 0x20, 0x6C, 0x25, 0xF1, 0x00, 0x4C, +0x30, 0xF0, 0x20, 0x6C, 0x25, 0xF1, 0x04, 0x4C, 0x39, 0x10, 0x01, 0x49, 0xFF, 0x6A, 0x4C, 0xE9, 0x4C, 0xA0, 0x08, 0x96, 0x03, 0x6F, 0x91, 0x67, -0x01, 0x6D, 0x4C, 0xEF, 0x80, 0x18, 0x91, 0x49, +0x01, 0x6D, 0x4C, 0xEF, 0x80, 0x18, 0xA0, 0x49, 0x7D, 0x67, 0x58, 0xC3, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x0A, 0x22, 0x5D, 0x67, 0x09, 0x95, 0xF8, 0xA2, 0x30, 0xF0, 0x20, 0x6C, 0x25, 0xF1, -0x10, 0x4C, 0xD1, 0x67, 0x80, 0x18, 0x39, 0x43, +0x14, 0x4C, 0xD1, 0x67, 0x80, 0x18, 0x48, 0x43, 0x7D, 0x67, 0x58, 0xA3, 0xFF, 0x72, 0x0A, 0x61, 0x0A, 0x94, 0x83, 0xE9, 0x02, 0x61, 0x98, 0xC3, 0x05, 0x10, 0x09, 0x93, 0x01, 0x4B, 0x54, 0x73, 0x09, 0xD3, 0xD3, 0x61, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x08, 0x22, 0x30, 0xF0, 0x20, 0x6C, -0x45, 0xF1, 0x00, 0x4C, 0x5D, 0x67, 0xB8, 0xA2, -0x80, 0x18, 0x39, 0x43, 0x01, 0x69, 0x30, 0xF0, +0x45, 0xF1, 0x04, 0x4C, 0x5D, 0x67, 0xB8, 0xA2, +0x80, 0x18, 0x48, 0x43, 0x01, 0x69, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x0A, 0x22, 0x7D, 0x67, 0xB8, 0xA3, 0xC4, 0xA0, 0xE5, 0xA0, 0x30, 0xF0, -0x20, 0x6C, 0x45, 0xF1, 0x0C, 0x4C, 0x80, 0x18, -0x39, 0x43, 0x5D, 0x67, 0x08, 0x94, 0xB8, 0xA2, -0x80, 0x18, 0x6D, 0x4C, 0x7D, 0x67, 0x58, 0xC3, +0x20, 0x6C, 0x45, 0xF1, 0x10, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x5D, 0x67, 0x08, 0x94, 0xB8, 0xA2, +0x80, 0x18, 0x7C, 0x4C, 0x7D, 0x67, 0x58, 0xC3, 0x6C, 0xA0, 0x18, 0x6A, 0x6C, 0xEA, 0x0A, 0x22, -0x08, 0x94, 0xA4, 0xA0, 0x80, 0x18, 0x6D, 0x4C, +0x08, 0x94, 0xA4, 0xA0, 0x80, 0x18, 0x7C, 0x4C, 0x44, 0xC0, 0x08, 0x94, 0xA5, 0xA0, 0x80, 0x18, -0x6D, 0x4C, 0x45, 0xC0, 0x30, 0xF0, 0x21, 0x6B, +0x7C, 0x4C, 0x45, 0xC0, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x0A, 0x22, 0x5D, 0x67, 0xB8, 0xA2, 0xC4, 0xA0, 0xE5, 0xA0, 0x30, 0xF0, 0x20, 0x6C, -0x45, 0xF1, 0x1C, 0x4C, 0x80, 0x18, 0x39, 0x43, +0x65, 0xF1, 0x00, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x45, 0xA0, 0xFF, 0x6B, 0x84, 0xA0, 0x4E, 0xEB, 0x01, 0x5B, 0x78, 0x67, 0xFF, 0x74, 0x05, 0x61, 0x44, 0xC0, 0x01, 0x6A, 0x4B, 0xEA, 0x45, 0xC0, @@ -35873,7 +35489,7 @@ u8 array_mp_8822c_fw_nic[] = { 0x14, 0x10, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x65, 0xF1, -0x0C, 0x4C, 0x80, 0x18, 0x39, 0x43, 0x6C, 0xA0, +0x10, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x6C, 0xA0, 0x19, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x4C, 0xC0, 0x2B, 0x10, 0x6C, 0xA0, 0x19, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x4C, 0xC0, 0x00, 0x69, 0x30, 0xF0, @@ -35881,18 +35497,18 @@ u8 array_mp_8822c_fw_nic[] = { 0x00, 0x6A, 0x6C, 0xEA, 0x10, 0x22, 0x7D, 0x67, 0xB8, 0xA3, 0xC4, 0xA0, 0xE5, 0xA0, 0x04, 0xD1, 0x4C, 0xA0, 0x03, 0x6B, 0x30, 0xF0, 0x20, 0x6C, -0x4E, 0x32, 0x6C, 0xEA, 0x65, 0xF1, 0x18, 0x4C, -0x05, 0xD2, 0x80, 0x18, 0x39, 0x43, 0x6B, 0xA0, +0x4E, 0x32, 0x6C, 0xEA, 0x65, 0xF1, 0x1C, 0x4C, +0x05, 0xD2, 0x80, 0x18, 0x48, 0x43, 0x6B, 0xA0, 0x0F, 0x6A, 0xD1, 0x67, 0x6C, 0xEA, 0x10, 0x6B, 0x6D, 0xEA, 0x4B, 0xC0, 0x5D, 0x67, 0x08, 0x94, -0xB8, 0xA2, 0xF9, 0xA2, 0x80, 0x18, 0x90, 0x4D, +0xB8, 0xA2, 0xF9, 0xA2, 0x80, 0x18, 0x9F, 0x4D, 0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xF6, 0x63, 0x13, 0x62, 0x12, 0xD1, 0x11, 0xD0, 0xFF, 0x68, 0x0C, 0xEC, 0x30, 0x69, 0x38, 0xEC, 0x30, 0xF0, 0x21, 0x6A, 0x0C, 0xED, 0x0C, 0xEE, 0x73, 0xF0, 0x00, 0x4A, 0x09, 0xD4, 0x0D, 0xD5, 0x0E, 0xD6, 0x12, 0xE9, -0x25, 0xE2, 0x80, 0x18, 0x0F, 0x49, 0x7D, 0x67, +0x25, 0xE2, 0x80, 0x18, 0x1E, 0x49, 0x7D, 0x67, 0x58, 0xC3, 0x98, 0xA3, 0x0C, 0xD4, 0x40, 0xA1, 0x9D, 0x67, 0x0A, 0xD2, 0x61, 0xA1, 0x0B, 0xD3, 0xE7, 0xA1, 0x03, 0x6B, 0xEA, 0x32, 0x6C, 0xEA, @@ -35903,26 +35519,26 @@ u8 array_mp_8822c_fw_nic[] = { 0x12, 0xF5, 0x98, 0x9C, 0x00, 0xF4, 0x00, 0x6A, 0x8C, 0xEA, 0x0B, 0x22, 0x5D, 0x67, 0x0C, 0x95, 0xD9, 0xA2, 0x6C, 0xEF, 0x30, 0xF0, 0x20, 0x6C, -0x85, 0xF1, 0x1C, 0x4C, 0x0C, 0xEF, 0x80, 0x18, -0x39, 0x43, 0x0D, 0x93, 0xA0, 0xF0, 0x07, 0x23, +0xA5, 0xF1, 0x00, 0x4C, 0x0C, 0xEF, 0x80, 0x18, +0x48, 0x43, 0x0D, 0x93, 0xA0, 0xF0, 0x07, 0x23, 0x0C, 0x92, 0x0A, 0x93, 0x7F, 0x6C, 0x8C, 0xEA, 0x43, 0xEB, 0x08, 0xD2, 0x02, 0x60, 0x9D, 0x67, 0x78, 0xC4, 0x08, 0x93, 0x0B, 0x94, 0x8A, 0xEB, 0x80, 0xF0, 0x19, 0x60, 0x63, 0xEC, 0x04, 0x61, 0x5D, 0x67, 0x98, 0xC2, 0x00, 0x68, 0x65, 0x10, 0x09, 0x94, 0x06, 0x00, 0xB0, 0x67, 0x00, 0xF0, -0x19, 0x06, 0x02, 0x6F, 0x80, 0x18, 0x06, 0x4C, +0x19, 0x06, 0x02, 0x6F, 0x80, 0x18, 0x15, 0x4C, 0x0D, 0x22, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x00, 0xF4, 0x00, 0x6A, 0x6C, 0xEA, 0x53, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xA5, 0xF1, -0x18, 0x4C, 0x4A, 0x10, 0x09, 0x94, 0xB0, 0x67, -0x02, 0x6E, 0x80, 0x18, 0x12, 0x4A, 0x00, 0x68, +0x1C, 0x4C, 0x4A, 0x10, 0x09, 0x94, 0xB0, 0x67, +0x02, 0x6E, 0x80, 0x18, 0x21, 0x4A, 0x00, 0x68, 0x2E, 0x22, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x00, 0xF4, 0x00, 0x6A, 0x6C, 0xEA, 0x3F, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x7D, 0x67, -0xC5, 0xF1, 0x04, 0x4C, 0xB8, 0xA3, 0x36, 0x10, +0xC5, 0xF1, 0x08, 0x4C, 0xB8, 0xA3, 0x36, 0x10, 0x4C, 0xA1, 0x08, 0x94, 0x09, 0x96, 0x03, 0x6F, -0x02, 0x6D, 0x4C, 0xEF, 0x80, 0x18, 0x91, 0x49, +0x02, 0x6D, 0x4C, 0xEF, 0x80, 0x18, 0xA0, 0x49, 0x9D, 0x67, 0x58, 0xC4, 0x0B, 0x93, 0x08, 0x92, 0x43, 0xEB, 0x02, 0x61, 0x78, 0xC4, 0x0C, 0x10, 0x7D, 0x67, 0x58, 0xA3, 0xFF, 0x72, 0x08, 0x61, @@ -35933,8 +35549,8 @@ u8 array_mp_8822c_fw_nic[] = { 0xAC, 0x4C, 0x4C, 0xEC, 0x0A, 0xD4, 0xD8, 0x17, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x00, 0xF4, 0x00, 0x6A, 0x6C, 0xEA, 0x08, 0x22, -0x30, 0xF0, 0x20, 0x6C, 0xC5, 0xF1, 0x14, 0x4C, -0x5D, 0x67, 0xB8, 0xA2, 0x80, 0x18, 0x39, 0x43, +0x30, 0xF0, 0x20, 0x6C, 0xC5, 0xF1, 0x18, 0x4C, +0x5D, 0x67, 0xB8, 0xA2, 0x80, 0x18, 0x48, 0x43, 0x01, 0x68, 0x0E, 0x93, 0x01, 0x73, 0x06, 0x61, 0x6C, 0xA1, 0x19, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x4C, 0xC1, 0x00, 0x68, 0x30, 0xF0, 0x21, 0x6B, @@ -35942,31 +35558,31 @@ u8 array_mp_8822c_fw_nic[] = { 0x6C, 0xEA, 0x10, 0x22, 0x9D, 0x67, 0xB8, 0xA4, 0xC4, 0xA1, 0xE5, 0xA1, 0x04, 0xD0, 0x4C, 0xA1, 0x03, 0x6B, 0x30, 0xF0, 0x20, 0x6C, 0x4E, 0x32, -0x6C, 0xEA, 0xE5, 0xF1, 0x04, 0x4C, 0x05, 0xD2, -0x80, 0x18, 0x39, 0x43, 0x6B, 0xA1, 0x0F, 0x6A, +0x6C, 0xEA, 0xE5, 0xF1, 0x08, 0x4C, 0x05, 0xD2, +0x80, 0x18, 0x48, 0x43, 0x6B, 0xA1, 0x0F, 0x6A, 0xD0, 0x67, 0x6C, 0xEA, 0x20, 0x6B, 0x6D, 0xEA, 0x4B, 0xC1, 0x5D, 0x67, 0x09, 0x94, 0xB8, 0xA2, -0xF9, 0xA2, 0x80, 0x18, 0x90, 0x4D, 0x13, 0x97, +0xF9, 0xA2, 0x80, 0x18, 0x9F, 0x4D, 0x13, 0x97, 0x12, 0x91, 0x11, 0x90, 0x0A, 0x63, 0x00, 0xEF, 0xF6, 0x63, 0x13, 0x62, 0x12, 0xD1, 0x11, 0xD0, 0xFF, 0x69, 0x8C, 0xE9, 0x30, 0x68, 0x18, 0xE9, 0x30, 0xF0, 0x21, 0x6A, 0x73, 0xF0, 0x00, 0x4A, 0x91, 0x67, 0x12, 0xE8, 0x01, 0xE2, 0x80, 0x18, -0x0F, 0x49, 0x91, 0x67, 0x0B, 0xD2, 0x80, 0x18, -0x15, 0x49, 0x8C, 0xA0, 0x80, 0x6B, 0x6B, 0xEB, +0x1E, 0x49, 0x91, 0x67, 0x0B, 0xD2, 0x80, 0x18, +0x24, 0x49, 0x8C, 0xA0, 0x80, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xFF, 0x6C, 0x8C, 0xEB, 0x0E, 0x23, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x80, 0xF1, 0x04, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x05, 0xF2, -0x08, 0x4C, 0x7D, 0x11, 0x18, 0x6B, 0x4C, 0xEB, +0x0C, 0x4C, 0x7D, 0x11, 0x18, 0x6B, 0x4C, 0xEB, 0x6F, 0x33, 0xFF, 0x6D, 0xAC, 0xEB, 0x08, 0xD3, 0x0B, 0x93, 0x7F, 0x6A, 0x6C, 0xEA, 0x60, 0xA0, 0x42, 0xEB, 0x15, 0x60, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, -0x05, 0xF2, 0x10, 0x4C, 0x80, 0x18, 0x39, 0x43, +0x05, 0xF2, 0x14, 0x4C, 0x80, 0x18, 0x48, 0x43, 0xA0, 0xA0, 0x08, 0x97, 0x91, 0x67, 0x00, 0x6E, -0x80, 0x18, 0x90, 0x4D, 0x61, 0x11, 0x9D, 0x67, +0x80, 0x18, 0x9F, 0x4D, 0x61, 0x11, 0x9D, 0x67, 0xA7, 0x44, 0x25, 0x4D, 0x80, 0xA5, 0x31, 0x6A, 0x4B, 0xEA, 0x83, 0xC0, 0x08, 0x95, 0x87, 0xA0, 0xB0, 0x33, 0x8C, 0xEA, 0x6D, 0xEA, 0x47, 0xC0, @@ -35976,9 +35592,9 @@ u8 array_mp_8822c_fw_nic[] = { 0x64, 0x33, 0x4D, 0xE3, 0x60, 0xAB, 0x0C, 0xD3, 0x94, 0xF3, 0x6C, 0x41, 0x64, 0x33, 0x49, 0xE3, 0x40, 0xAA, 0x0D, 0x93, 0xA2, 0x67, 0x73, 0xE2, -0x0A, 0xD2, 0x80, 0x18, 0x2B, 0x49, 0x09, 0xD2, +0x0A, 0xD2, 0x80, 0x18, 0x3A, 0x49, 0x09, 0xD2, 0x0C, 0x95, 0x0D, 0x92, 0x53, 0xE5, 0x80, 0x18, -0x2B, 0x49, 0x7D, 0x67, 0x87, 0x43, 0x1D, 0x4C, +0x3A, 0x49, 0x7D, 0x67, 0x87, 0x43, 0x1D, 0x4C, 0x60, 0xAC, 0x0E, 0xD2, 0x6A, 0xC8, 0x0A, 0x94, 0x40, 0x6B, 0x86, 0x32, 0x41, 0x5A, 0x03, 0x60, 0x61, 0x42, 0xFF, 0x6D, 0xAC, 0xEB, 0x30, 0xF0, @@ -35987,49 +35603,49 @@ u8 array_mp_8822c_fw_nic[] = { 0x8C, 0xEB, 0x11, 0x23, 0xB4, 0xF3, 0x6C, 0x41, 0x64, 0x33, 0x49, 0xE3, 0x40, 0xAA, 0x0D, 0x96, 0x0A, 0x97, 0x04, 0xD2, 0x0C, 0x92, 0x30, 0xF0, -0x20, 0x6C, 0x05, 0xF2, 0x1C, 0x4C, 0xB1, 0x67, -0x05, 0xD2, 0x80, 0x18, 0x39, 0x43, 0x30, 0xF0, +0x20, 0x6C, 0x25, 0xF2, 0x00, 0x4C, 0xB1, 0x67, +0x05, 0xD2, 0x80, 0x18, 0x48, 0x43, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x08, 0x22, 0x09, 0x95, 0x0E, 0x96, 0x30, 0xF0, 0x20, 0x6C, 0x45, 0xF2, -0x00, 0x4C, 0x80, 0x18, 0x39, 0x43, 0x30, 0xF0, +0x04, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x0C, 0x22, 0xA7, 0xA0, 0x08, 0x96, 0x0B, 0x97, 0xAA, 0x35, 0x30, 0xF0, -0x20, 0x6C, 0x03, 0x6A, 0x45, 0xF2, 0x10, 0x4C, -0x4C, 0xED, 0x80, 0x18, 0x39, 0x43, 0x09, 0x93, +0x20, 0x6C, 0x03, 0x6A, 0x45, 0xF2, 0x14, 0x4C, +0x4C, 0xED, 0x80, 0x18, 0x48, 0x43, 0x09, 0x93, 0x0B, 0x95, 0x91, 0x67, 0x06, 0x06, 0x00, 0xF0, -0x19, 0x07, 0x04, 0xD3, 0x80, 0x18, 0x84, 0x4B, +0x19, 0x07, 0x04, 0xD3, 0x80, 0x18, 0x93, 0x4B, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x09, 0x22, 0x5D, 0x67, 0xB8, 0xA2, 0xD9, 0xA2, 0x30, 0xF0, -0x20, 0x6C, 0x65, 0xF2, 0x08, 0x4C, 0x80, 0x18, -0x39, 0x43, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, +0x20, 0x6C, 0x65, 0xF2, 0x0C, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x28, 0xF7, 0xB4, 0xA3, 0x04, 0x6C, 0xFF, 0x6A, 0xAC, 0xEC, 0x0B, 0x24, 0xE7, 0xF3, 0x60, 0x9B, 0x01, 0x4A, 0x6C, 0xEA, 0xA0, 0xF0, 0x18, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x65, 0xF2, -0x18, 0x4C, 0xB1, 0x10, 0xBD, 0x67, 0x99, 0xA5, +0x1C, 0x4C, 0xB1, 0x10, 0xBD, 0x67, 0x99, 0xA5, 0x09, 0x95, 0x83, 0xED, 0x03, 0x60, 0x0E, 0x94, 0x1E, 0x5C, 0x52, 0x61, 0x0E, 0x95, 0x50, 0x5D, 0x15, 0x61, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x85, 0xF2, -0x04, 0x4C, 0x80, 0x18, 0x39, 0x43, 0x01, 0x6D, -0x91, 0x67, 0xC5, 0x67, 0x80, 0x18, 0x9B, 0x4F, +0x08, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x01, 0x6D, +0x91, 0x67, 0xC5, 0x67, 0x80, 0x18, 0xAB, 0x4F, 0x00, 0x6A, 0x72, 0x10, 0x8A, 0xA0, 0x0F, 0x6D, 0x10, 0x6A, 0x64, 0x67, 0xAC, 0xEB, 0x01, 0x4B, 0x4B, 0xEA, 0xAC, 0xEB, 0x8C, 0xEA, 0x6D, 0xEA, 0x4A, 0xC0, 0x30, 0xF0, 0x21, 0x6C, 0x12, 0xF5, 0x98, 0x9C, 0xFF, 0x6B, 0x01, 0x4B, 0x8C, 0xEB, 0x07, 0x23, 0x30, 0xF0, 0x20, 0x6C, 0x85, 0xF2, -0x10, 0x4C, 0x4C, 0xED, 0x80, 0x18, 0x39, 0x43, +0x14, 0x4C, 0x4C, 0xED, 0x80, 0x18, 0x48, 0x43, 0x6A, 0xA0, 0x0F, 0x6A, 0x6C, 0xEA, 0x02, 0x52, 0x18, 0x61, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xA5, 0xF2, -0x00, 0x4C, 0x80, 0x18, 0x39, 0x43, 0x91, 0x67, -0x01, 0x6D, 0x00, 0x6E, 0x80, 0x18, 0x9B, 0x4F, +0x04, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x91, 0x67, +0x01, 0x6D, 0x00, 0x6E, 0x80, 0x18, 0xAB, 0x4F, 0x6A, 0xA0, 0x10, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x4A, 0xC0, 0x6A, 0xA0, 0x0F, 0x6A, 0x37, 0x10, 0x9D, 0x67, 0xB8, 0xA4, 0xFF, 0xF7, 0x1F, 0x6C, @@ -36037,13 +35653,13 @@ u8 array_mp_8822c_fw_nic[] = { 0x8A, 0xA0, 0x10, 0x4C, 0x8A, 0xC0, 0xE7, 0xF3, 0x60, 0x9B, 0xFF, 0x6C, 0x01, 0x4C, 0x6C, 0xEC, 0x09, 0x24, 0xAA, 0xA0, 0x30, 0xF0, 0x20, 0x6C, -0xA5, 0xF2, 0x0C, 0x4C, 0xB2, 0x35, 0x4C, 0xED, -0x80, 0x18, 0x39, 0x43, 0x4A, 0xA0, 0x52, 0x32, +0xA5, 0xF2, 0x10, 0x4C, 0xB2, 0x35, 0x4C, 0xED, +0x80, 0x18, 0x48, 0x43, 0x4A, 0xA0, 0x52, 0x32, 0x03, 0x52, 0x16, 0x61, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, -0xA5, 0xF2, 0x18, 0x4C, 0x80, 0x18, 0x39, 0x43, -0x91, 0x67, 0x00, 0x6D, 0x80, 0x18, 0xB5, 0x4E, +0xA5, 0xF2, 0x1C, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x91, 0x67, 0x00, 0x6D, 0x80, 0x18, 0xC5, 0x4E, 0x6A, 0xA0, 0x0F, 0x6A, 0x6C, 0xEA, 0x4A, 0xC0, 0x6A, 0xA0, 0x10, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x4A, 0xC0, 0x1F, 0x10, 0x8A, 0xA0, 0x92, 0x33, @@ -36053,19 +35669,19 @@ u8 array_mp_8822c_fw_nic[] = { 0x8C, 0xEA, 0x6D, 0xEA, 0x4A, 0xC0, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0xC5, 0xF2, 0x00, 0x4C, 0x80, 0x18, -0x39, 0x43, 0x91, 0x67, 0x80, 0x18, 0xD7, 0x47, +0x20, 0x6C, 0xC5, 0xF2, 0x04, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x91, 0x67, 0x80, 0x18, 0xE6, 0x47, 0x13, 0x97, 0x12, 0x91, 0x11, 0x90, 0x0A, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x04, 0x67, 0x26, 0x67, 0x4C, 0xE8, 0x4C, 0xE9, 0x90, 0x67, -0x4C, 0xED, 0xD1, 0x67, 0x80, 0x18, 0xD7, 0x4B, +0x4C, 0xED, 0xD1, 0x67, 0x80, 0x18, 0xE6, 0x4B, 0xA2, 0x67, 0x90, 0x67, 0x00, 0x6E, 0xF1, 0x67, -0x04, 0xD2, 0x80, 0x18, 0x90, 0x4D, 0x30, 0xF0, +0x04, 0xD2, 0x80, 0x18, 0x9F, 0x4D, 0x30, 0xF0, 0x21, 0x6A, 0x12, 0xF5, 0x58, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x07, 0x22, 0x04, 0x95, 0x30, 0xF0, -0x20, 0x6C, 0xC5, 0xF2, 0x0C, 0x4C, 0x80, 0x18, -0x39, 0x43, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x20, 0x6C, 0xC5, 0xF2, 0x10, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, 0x30, 0x69, 0x38, 0xEC, 0x30, 0xF0, 0x21, 0x6B, @@ -36076,43 +35692,43 @@ u8 array_mp_8822c_fw_nic[] = { 0x01, 0x60, 0x04, 0xD2, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x08, 0x22, 0x04, 0x95, 0x30, 0xF0, -0x20, 0x6C, 0xC5, 0xF2, 0x1C, 0x4C, 0xD0, 0x67, -0x80, 0x18, 0x39, 0x43, 0x43, 0xA1, 0x04, 0x93, +0x20, 0x6C, 0xE5, 0xF2, 0x00, 0x4C, 0xD0, 0x67, +0x80, 0x18, 0x48, 0x43, 0x43, 0xA1, 0x04, 0x93, 0x80, 0x6D, 0xAB, 0xED, 0x4C, 0xED, 0x6D, 0xED, 0x05, 0x94, 0x00, 0xF6, 0xA0, 0x35, 0xFF, 0x6A, 0x00, 0xF6, 0xA3, 0x35, 0xF0, 0x67, 0x4C, 0xED, -0x00, 0x6E, 0x80, 0x18, 0x90, 0x4D, 0x09, 0x97, +0x00, 0x6E, 0x80, 0x18, 0x9F, 0x4D, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0x68, 0x18, 0xEA, 0x04, 0xD2, 0x04, 0x94, 0xFF, 0x6E, 0x30, 0xF0, 0x21, 0x6A, 0xAC, 0xEE, 0x73, 0xF0, 0x00, 0x4A, 0x06, 0xD6, 0x18, 0x69, 0x12, 0xE8, 0x01, 0xE2, -0x80, 0x18, 0x0F, 0x49, 0x04, 0x94, 0x05, 0xD2, -0x80, 0x18, 0x15, 0x49, 0x06, 0x96, 0x4C, 0xE9, +0x80, 0x18, 0x1E, 0x49, 0x04, 0x94, 0x05, 0xD2, +0x80, 0x18, 0x24, 0x49, 0x06, 0x96, 0x4C, 0xE9, 0x2F, 0x31, 0xFF, 0x6A, 0x01, 0x76, 0x4C, 0xE9, 0x1C, 0x61, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x01, 0xF7, 0x01, 0x4A, 0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xE5, 0xF2, -0x14, 0x4C, 0x80, 0x18, 0x39, 0x43, 0x6B, 0xA0, +0x18, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x6B, 0xA0, 0x10, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x4B, 0xC0, 0x04, 0x94, 0x05, 0x95, 0x00, 0x6E, 0xF1, 0x67, -0x80, 0x18, 0x90, 0x4D, 0x6C, 0xA0, 0x19, 0x6A, +0x80, 0x18, 0x9F, 0x4D, 0x6C, 0xA0, 0x19, 0x6A, 0x21, 0x10, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x05, 0xF3, -0x00, 0x4C, 0x80, 0x18, 0x39, 0x43, 0x8B, 0xA0, +0x04, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x8B, 0xA0, 0x0F, 0x6A, 0x64, 0x67, 0x4C, 0xEB, 0x01, 0x4B, 0x4C, 0xEB, 0xE1, 0x4A, 0x8C, 0xEA, 0x6D, 0xEA, 0x6C, 0xA0, 0x4B, 0xC0, 0x18, 0x6A, 0x6C, 0xEA, -0x09, 0x2A, 0x04, 0x94, 0x80, 0x18, 0x01, 0x51, +0x09, 0x2A, 0x04, 0x94, 0x80, 0x18, 0x11, 0x51, 0x6C, 0xA0, 0x61, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x4C, 0xC0, 0x57, 0x10, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x0C, 0x22, 0xAC, 0xA0, 0x03, 0x6A, 0x30, 0xF0, 0x20, 0x6C, 0xAE, 0x35, 0x4C, 0xED, -0xFF, 0x6A, 0x05, 0xF3, 0x08, 0x4C, 0x4C, 0xED, -0x80, 0x18, 0x39, 0x43, 0xAC, 0xA0, 0x03, 0x6B, +0xFF, 0x6A, 0x05, 0xF3, 0x0C, 0x4C, 0x4C, 0xED, +0x80, 0x18, 0x48, 0x43, 0xAC, 0xA0, 0x03, 0x6B, 0xB6, 0x32, 0x6C, 0xEA, 0x51, 0xE0, 0xC4, 0xA4, 0x01, 0x4A, 0x6C, 0xEA, 0x05, 0xD6, 0x54, 0x36, 0x61, 0x6A, 0x4B, 0xEA, 0xAC, 0xEA, 0xCD, 0xEA, @@ -36123,23 +35739,23 @@ u8 array_mp_8822c_fw_nic[] = { 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x22, 0x67, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x07, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x05, 0xF3, -0x18, 0x4C, 0xB1, 0x67, 0x80, 0x18, 0x39, 0x43, +0x1C, 0x4C, 0xB1, 0x67, 0x80, 0x18, 0x48, 0x43, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x07, 0x22, 0x05, 0x95, 0x30, 0xF0, 0x20, 0x6C, 0x25, 0xF3, -0x04, 0x4C, 0x80, 0x18, 0x39, 0x43, 0x04, 0x94, +0x08, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x04, 0x94, 0x05, 0x95, 0x01, 0x6E, 0xF1, 0x67, 0x80, 0x18, -0x90, 0x4D, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x9F, 0x4D, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0xF6, 0x63, 0x13, 0x62, 0x12, 0xD1, 0x11, 0xD0, 0xFF, 0x69, 0x8C, 0xE9, 0x30, 0x68, 0x18, 0xE9, 0x30, 0xF0, 0x21, 0x6A, 0x73, 0xF0, 0x00, 0x4A, 0x91, 0x67, 0x12, 0xE8, -0x01, 0xE2, 0x80, 0x18, 0x0F, 0x49, 0x91, 0x67, -0x09, 0xD2, 0x80, 0x18, 0x15, 0x49, 0x0B, 0xD2, +0x01, 0xE2, 0x80, 0x18, 0x1E, 0x49, 0x91, 0x67, +0x09, 0xD2, 0x80, 0x18, 0x24, 0x49, 0x0B, 0xD2, 0x4A, 0xA8, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x0E, 0xD2, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, -0x25, 0xF3, 0x10, 0x4C, 0x80, 0x18, 0x39, 0x43, +0x25, 0xF3, 0x14, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x6C, 0xA0, 0x80, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x80, 0xF1, 0x03, 0x22, 0x30, 0xF0, 0x20, 0x6B, 0xB4, 0xF3, 0x4C, 0x41, @@ -36147,47 +35763,47 @@ u8 array_mp_8822c_fw_nic[] = { 0x40, 0xAA, 0x06, 0xD3, 0x03, 0x5A, 0x0F, 0x61, 0xE7, 0xF3, 0x60, 0x9B, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, -0xE4, 0xF5, 0x18, 0x4C, 0x80, 0x18, 0x39, 0x43, +0xE4, 0xF5, 0x1C, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x91, 0x67, 0x00, 0x6D, 0x66, 0x11, 0x06, 0x94, 0xA4, 0xF4, 0x4C, 0x41, 0x44, 0x32, 0x89, 0xE2, 0xA0, 0xAA, 0x08, 0xD2, 0x84, 0xF4, 0x4C, 0x41, 0x44, 0x32, 0x89, 0xE2, 0x80, 0xAA, 0x07, 0xD2, -0x93, 0xE5, 0x80, 0x18, 0x2B, 0x49, 0x06, 0x93, +0x93, 0xE5, 0x80, 0x18, 0x3A, 0x49, 0x06, 0x93, 0x0D, 0xD2, 0xE4, 0xF4, 0x4C, 0x41, 0x44, 0x32, 0x69, 0xE2, 0xA0, 0xAA, 0x0A, 0xD2, 0x07, 0x92, -0x80, 0xAA, 0x93, 0xE5, 0x80, 0x18, 0x2B, 0x49, +0x80, 0xAA, 0x93, 0xE5, 0x80, 0x18, 0x3A, 0x49, 0x06, 0x94, 0x0C, 0xD2, 0x02, 0xF0, 0x00, 0x6A, 0xE7, 0xF3, 0x60, 0x9C, 0x6C, 0xEA, 0x12, 0x22, 0x07, 0x92, 0x08, 0x93, 0xA0, 0xAA, 0xC4, 0xF4, 0x4C, 0x41, 0x44, 0x32, 0x89, 0xE2, 0x0A, 0x94, 0xE0, 0xAA, 0xC0, 0xAB, 0x40, 0xAC, 0x30, 0xF0, -0x20, 0x6C, 0x25, 0xF3, 0x1C, 0x4C, 0x04, 0xD2, -0x80, 0x18, 0x39, 0x43, 0x30, 0xF0, 0x21, 0x6B, +0x20, 0x6C, 0x45, 0xF3, 0x00, 0x4C, 0x04, 0xD2, +0x80, 0x18, 0x48, 0x43, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x08, 0x22, 0x0D, 0x95, 0x0C, 0x96, -0x30, 0xF0, 0x20, 0x6C, 0x45, 0xF2, 0x00, 0x4C, -0x80, 0x18, 0x39, 0x43, 0x0B, 0x93, 0x18, 0x6A, +0x30, 0xF0, 0x20, 0x6C, 0x45, 0xF2, 0x04, 0x4C, +0x80, 0x18, 0x48, 0x43, 0x0B, 0x93, 0x18, 0x6A, 0x6C, 0xEA, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x4E, 0x32, 0x0A, 0xD2, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x08, 0x22, 0x0A, 0x95, 0x09, 0x96, 0x30, 0xF0, 0x20, 0x6C, 0x45, 0xF3, -0x18, 0x4C, 0x80, 0x18, 0x39, 0x43, 0x09, 0x92, +0x1C, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x09, 0x92, 0x7F, 0x6C, 0x09, 0x93, 0x8C, 0xEA, 0x06, 0xD2, 0x80, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x0F, 0x22, 0x06, 0x94, 0x30, 0xF0, -0x20, 0x6A, 0x88, 0xF5, 0x18, 0x4A, 0x84, 0x33, +0x20, 0x6A, 0x88, 0xF5, 0x1C, 0x4A, 0x84, 0x33, 0x49, 0xE3, 0x40, 0xAA, 0x52, 0x34, 0x56, 0x33, 0x6D, 0xE4, 0x4D, 0xE3, 0x5E, 0x32, 0x49, 0xE3, 0x08, 0x10, 0x06, 0x94, 0x30, 0xF0, 0x20, 0x6A, -0x88, 0xF5, 0x18, 0x4A, 0x84, 0x33, 0x49, 0xE3, +0x88, 0xF5, 0x1C, 0x4A, 0x84, 0x33, 0x49, 0xE3, 0x40, 0xAA, 0x0B, 0xD2, 0x43, 0x80, 0x00, 0x52, 0x12, 0x60, 0x63, 0xA0, 0x7F, 0x6C, 0x30, 0xF0, -0x20, 0x6A, 0x8C, 0xEB, 0x88, 0xF5, 0x18, 0x4A, +0x20, 0x6A, 0x8C, 0xEB, 0x88, 0xF5, 0x1C, 0x4A, 0x64, 0x33, 0x4D, 0xE3, 0x40, 0xAB, 0x52, 0x34, 0x56, 0x33, 0x6D, 0xE4, 0x4D, 0xE3, 0x5E, 0x32, 0x49, 0xE3, 0x08, 0xD2, 0x0B, 0x10, 0x63, 0xA0, 0x7F, 0x6C, 0x30, 0xF0, 0x20, 0x6A, 0x8C, 0xEB, -0x64, 0x33, 0x88, 0xF5, 0x18, 0x4A, 0x4D, 0xE3, +0x64, 0x33, 0x88, 0xF5, 0x1C, 0x4A, 0x4D, 0xE3, 0x60, 0xAB, 0x08, 0xD3, 0x4B, 0xA0, 0x10, 0x6B, 0x6B, 0xEB, 0x4C, 0xEB, 0xFF, 0x6A, 0x10, 0x6C, 0x4C, 0xEB, 0x8E, 0xEB, 0x01, 0x5B, 0x78, 0x67, @@ -36196,7 +35812,7 @@ u8 array_mp_8822c_fw_nic[] = { 0x02, 0xF0, 0x00, 0x6B, 0x8C, 0xEB, 0x0C, 0x23, 0xA7, 0xA0, 0x03, 0x6B, 0x0A, 0x96, 0xB2, 0x35, 0x6C, 0xED, 0x30, 0xF0, 0x20, 0x6C, 0x65, 0xF3, -0x08, 0x4C, 0x4C, 0xED, 0x80, 0x18, 0x39, 0x43, +0x0C, 0x4C, 0x4C, 0xED, 0x80, 0x18, 0x48, 0x43, 0x0E, 0x92, 0x07, 0x94, 0xFF, 0x6D, 0x64, 0x6B, 0x4C, 0xED, 0xAB, 0xE3, 0x89, 0xE2, 0x08, 0x94, 0x98, 0xEA, 0x12, 0xEC, 0x08, 0xD4, 0x47, 0xA0, @@ -36206,16 +35822,16 @@ u8 array_mp_8822c_fw_nic[] = { 0x44, 0xEB, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x07, 0xD2, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x07, 0x22, 0x0D, 0x96, 0x30, 0xF0, -0x20, 0x6C, 0x65, 0xF3, 0x14, 0x4C, 0x80, 0x18, -0x39, 0x43, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, +0x20, 0x6C, 0x65, 0xF3, 0x18, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x08, 0x22, 0xA3, 0xA0, 0x09, 0x96, 0x30, 0xF0, -0x20, 0x6C, 0x85, 0xF3, 0x04, 0x4C, 0x80, 0x18, -0x39, 0x43, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, +0x20, 0x6C, 0x85, 0xF3, 0x08, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x0A, 0x22, 0x08, 0x92, 0x07, 0x93, 0x30, 0xF0, -0x20, 0x6C, 0x85, 0xF3, 0x14, 0x4C, 0x4E, 0x35, -0x6E, 0x36, 0x80, 0x18, 0x39, 0x43, 0x07, 0x94, +0x20, 0x6C, 0x85, 0xF3, 0x18, 0x4C, 0x4E, 0x35, +0x6E, 0x36, 0x80, 0x18, 0x48, 0x43, 0x07, 0x94, 0x08, 0x92, 0x43, 0xEC, 0x03, 0x61, 0x0C, 0x93, 0x1E, 0x5B, 0x2F, 0x61, 0x6B, 0xA0, 0x10, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, @@ -36223,8 +35839,8 @@ u8 array_mp_8822c_fw_nic[] = { 0x35, 0x61, 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x07, 0x22, 0x09, 0x95, 0x30, 0xF0, 0x20, 0x6C, -0xA5, 0xF3, 0x04, 0x4C, 0x80, 0x18, 0x39, 0x43, -0x06, 0x94, 0x80, 0x18, 0x1E, 0x49, 0x02, 0x72, +0xA5, 0xF3, 0x08, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x06, 0x94, 0x80, 0x18, 0x2D, 0x49, 0x02, 0x72, 0x09, 0x61, 0x5D, 0x67, 0x67, 0x42, 0x1D, 0x4B, 0x40, 0xA3, 0x00, 0x6B, 0x20, 0xF0, 0x42, 0xC0, 0x06, 0xD3, 0x1A, 0x10, 0x9D, 0x67, 0x47, 0x44, @@ -36237,8 +35853,8 @@ u8 array_mp_8822c_fw_nic[] = { 0x30, 0xF0, 0x21, 0x6B, 0x12, 0xF5, 0x78, 0x9B, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x07, 0x22, 0x06, 0x95, 0x30, 0xF0, 0x20, 0x6C, 0xA5, 0xF3, -0x10, 0x4C, 0x80, 0x18, 0x39, 0x43, 0x06, 0x95, -0x91, 0x67, 0x80, 0x18, 0x22, 0x51, 0x13, 0x97, +0x14, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x06, 0x95, +0x91, 0x67, 0x80, 0x18, 0x32, 0x51, 0x13, 0x97, 0x12, 0x91, 0x11, 0x90, 0x0A, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, @@ -36282,8 +35898,8 @@ u8 array_mp_8822c_fw_nic[] = { 0x4B, 0xA8, 0x54, 0xC5, 0x5E, 0xA0, 0x55, 0xC5, 0x6A, 0xA0, 0x72, 0x32, 0x56, 0xC5, 0x0F, 0x6A, 0x6C, 0xEA, 0x57, 0xC5, 0x20, 0xF0, 0x45, 0xA0, -0x58, 0xC5, 0x80, 0x18, 0x0F, 0x49, 0x7D, 0x67, -0x91, 0x67, 0x59, 0xC3, 0x80, 0x18, 0x15, 0x49, +0x58, 0xC5, 0x80, 0x18, 0x1E, 0x49, 0x7D, 0x67, +0x91, 0x67, 0x59, 0xC3, 0x80, 0x18, 0x24, 0x49, 0x9D, 0x67, 0xA7, 0x44, 0x19, 0x4D, 0xA0, 0xA5, 0x5A, 0xC4, 0xBB, 0xC4, 0x42, 0xA0, 0x5C, 0xC4, 0x43, 0xA0, 0x5D, 0xC4, 0x11, 0x10, 0x7D, 0x67, @@ -36314,7 +35930,7 @@ u8 array_mp_8822c_fw_nic[] = { 0x2B, 0xF1, 0x18, 0x48, 0x87, 0xF6, 0x48, 0xA0, 0x80, 0xF0, 0x13, 0x22, 0x30, 0xF0, 0x21, 0x6C, 0x00, 0x6D, 0x12, 0xF5, 0x08, 0x4C, 0x18, 0x6E, -0xE0, 0xF3, 0x1F, 0x6F, 0x80, 0x18, 0x1A, 0x5A, +0xE0, 0xF3, 0x1F, 0x6F, 0x80, 0x18, 0x9F, 0x58, 0x87, 0xF6, 0x6A, 0xA8, 0xFF, 0xF7, 0x1F, 0x6D, 0x4C, 0xED, 0xAE, 0xEB, 0x6B, 0xEA, 0x6D, 0xEA, 0xC0, 0xF7, 0x43, 0x32, 0xFF, 0x69, 0x4C, 0xE9, @@ -36322,18 +35938,18 @@ u8 array_mp_8822c_fw_nic[] = { 0xFF, 0x71, 0x11, 0x61, 0xE7, 0xF3, 0x40, 0x98, 0x80, 0x6B, 0x6C, 0xEA, 0x72, 0x22, 0xE7, 0xF3, 0x44, 0x98, 0x05, 0x5A, 0x6E, 0x61, 0x30, 0xF0, -0x20, 0x6C, 0xA5, 0xF3, 0x1C, 0x4C, 0x80, 0x18, -0x39, 0x43, 0x67, 0x10, 0x01, 0x69, 0x30, 0xF0, +0x20, 0x6C, 0xC5, 0xF3, 0x00, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x67, 0x10, 0x01, 0x69, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE7, 0xF3, 0x60, 0x9A, 0x80, 0x6C, 0x8C, 0xEB, 0x0B, 0x23, 0xE7, 0xF3, 0x44, 0x9A, 0x05, 0x5A, 0x07, 0x61, -0x30, 0xF0, 0x20, 0x6C, 0xC5, 0xF3, 0x0C, 0x4C, -0xD1, 0x67, 0x80, 0x18, 0x39, 0x43, 0x30, 0xF0, +0x30, 0xF0, 0x20, 0x6C, 0xC5, 0xF3, 0x10, 0x4C, +0xD1, 0x67, 0x80, 0x18, 0x48, 0x43, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE7, 0xF3, 0x60, 0x9A, 0x80, 0x6C, 0x8C, 0xEB, 0x0A, 0x23, 0xE7, 0xF3, 0x44, 0x9A, 0x05, 0x5A, 0x06, 0x61, -0x30, 0xF0, 0x20, 0x6C, 0xC5, 0xF3, 0x1C, 0x4C, -0x80, 0x18, 0x39, 0x43, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6C, 0xE5, 0xF3, 0x00, 0x4C, +0x80, 0x18, 0x48, 0x43, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x25, 0xE2, 0x30, 0xF0, 0x21, 0x6A, 0x30, 0xF0, 0x21, 0x68, 0x13, 0xF0, 0x06, 0x4A, 0xD2, 0xF7, 0x06, 0x48, 0xC7, 0xF6, @@ -36341,13 +35957,13 @@ u8 array_mp_8822c_fw_nic[] = { 0xFF, 0xF7, 0x1F, 0x75, 0x25, 0x60, 0x1F, 0xF7, 0x00, 0x6A, 0xAC, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF1, 0x40, 0x9A, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF1, 0x44, 0x9A, 0x49, 0xE5, +0x43, 0xF1, 0x44, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF1, 0x48, 0x9A, 0x49, 0xE5, 0xC0, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE7, 0xF3, 0x60, 0x9A, 0x80, 0x6C, 0x8C, 0xEB, 0x0A, 0x23, 0xE7, 0xF3, 0x44, 0x9A, 0x05, 0x5A, 0x06, 0x61, 0x30, 0xF0, 0x20, 0x6C, -0xE5, 0xF3, 0x10, 0x4C, 0x80, 0x18, 0x39, 0x43, +0xE5, 0xF3, 0x14, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x04, 0x92, 0x02, 0x48, 0x02, 0x49, 0x4A, 0xE8, 0xD1, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, @@ -36355,10 +35971,10 @@ u8 array_mp_8822c_fw_nic[] = { 0x18, 0x4A, 0xE7, 0xF3, 0x60, 0x9A, 0x80, 0x6C, 0x8C, 0xEB, 0x0A, 0x23, 0xE7, 0xF3, 0x44, 0x9A, 0x05, 0x5A, 0x06, 0x61, 0x30, 0xF0, 0x20, 0x6C, -0x05, 0xF4, 0x08, 0x4C, 0x80, 0x18, 0x39, 0x43, +0x05, 0xF4, 0x0C, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x00, 0x6B, 0x87, 0xF6, 0x68, 0xC2, 0x00, 0x68, -0x90, 0x67, 0x01, 0x48, 0x80, 0x18, 0xD4, 0x52, +0x90, 0x67, 0x01, 0x48, 0x80, 0x18, 0xE4, 0x52, 0x20, 0x70, 0xFA, 0x61, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, 0x60, 0xA4, 0x30, 0xF0, @@ -36372,28 +35988,28 @@ u8 array_mp_8822c_fw_nic[] = { 0x60, 0x9A, 0x06, 0xD4, 0x80, 0x6C, 0x8C, 0xEB, 0x0D, 0x23, 0xE7, 0xF3, 0x64, 0x9A, 0x05, 0x5B, 0x09, 0x61, 0x87, 0xF6, 0xA8, 0xA2, 0x09, 0x96, -0x30, 0xF0, 0x20, 0x6C, 0x05, 0xF4, 0x1C, 0x4C, -0x80, 0x18, 0x39, 0x43, 0x30, 0xF0, 0x21, 0x6A, +0x30, 0xF0, 0x20, 0x6C, 0x25, 0xF4, 0x00, 0x4C, +0x80, 0x18, 0x48, 0x43, 0x30, 0xF0, 0x21, 0x6A, 0xD2, 0xF7, 0x40, 0xA2, 0x02, 0x2A, 0x80, 0x18, -0x39, 0x53, 0x09, 0x92, 0x1C, 0x2A, 0x30, 0xF0, +0x49, 0x53, 0x09, 0x92, 0x1C, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE7, 0xF3, 0x60, 0x9A, 0x80, 0x6C, 0x8C, 0xEB, 0x0F, 0x23, 0xE7, 0xF3, 0x44, 0x9A, 0x05, 0x5A, 0x0B, 0x61, 0x06, 0x93, 0x08, 0x96, 0x07, 0x97, 0x30, 0xF0, -0x20, 0x6C, 0x45, 0xF4, 0x04, 0x4C, 0xB1, 0x67, -0x04, 0xD3, 0x80, 0x18, 0x39, 0x43, 0x91, 0x67, -0x80, 0x18, 0xD4, 0x52, 0x55, 0x10, 0x09, 0x94, +0x20, 0x6C, 0x45, 0xF4, 0x08, 0x4C, 0xB1, 0x67, +0x04, 0xD3, 0x80, 0x18, 0x48, 0x43, 0x91, 0x67, +0x80, 0x18, 0xE4, 0x52, 0x55, 0x10, 0x09, 0x94, 0x01, 0x74, 0x29, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE7, 0xF3, 0x60, 0x9A, 0x80, 0x6C, 0x8C, 0xEB, 0x0F, 0x23, 0xE7, 0xF3, 0x44, 0x9A, 0x05, 0x5A, 0x0B, 0x61, 0x06, 0x92, 0x08, 0x96, 0x07, 0x97, 0x30, 0xF0, 0x20, 0x6C, -0x45, 0xF4, 0x04, 0x4C, 0xB1, 0x67, 0x04, 0xD2, -0x80, 0x18, 0x39, 0x43, 0x07, 0x93, 0xFF, 0x73, +0x45, 0xF4, 0x08, 0x4C, 0xB1, 0x67, 0x04, 0xD2, +0x80, 0x18, 0x48, 0x43, 0x07, 0x93, 0xFF, 0x73, 0x02, 0x61, 0x06, 0x94, 0x07, 0xD4, 0x06, 0x92, 0xFF, 0x72, 0x02, 0x61, 0x07, 0x93, 0x06, 0xD3, 0x08, 0x95, 0x07, 0x96, 0x06, 0x97, 0x91, 0x67, -0x80, 0x18, 0xC8, 0x52, 0x29, 0x10, 0x09, 0x94, +0x80, 0x18, 0xD8, 0x52, 0x29, 0x10, 0x09, 0x94, 0x03, 0x74, 0x26, 0x61, 0x22, 0xA0, 0x84, 0xA0, 0x63, 0xA0, 0x51, 0x67, 0x40, 0x31, 0x41, 0xA0, 0x80, 0x34, 0x61, 0xE4, 0x45, 0xE1, 0xE0, 0xF3, @@ -36401,1928 +36017,1733 @@ u8 array_mp_8822c_fw_nic[] = { 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE7, 0xF3, 0x60, 0x9A, 0x80, 0x6C, 0x8C, 0xEB, 0x0C, 0x23, 0xE7, 0xF3, 0x44, 0x9A, 0x05, 0x5A, 0x08, 0x61, -0x30, 0xF0, 0x20, 0x6C, 0x65, 0xF4, 0x08, 0x4C, -0xB1, 0x67, 0xD0, 0x67, 0x80, 0x18, 0x39, 0x43, -0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, 0xE0, 0x52, +0x30, 0xF0, 0x20, 0x6C, 0x65, 0xF4, 0x0C, 0x4C, +0xB1, 0x67, 0xD0, 0x67, 0x80, 0x18, 0x48, 0x43, +0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, 0xF0, 0x52, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, -0x52, 0xF4, 0x8C, 0x42, 0x30, 0xF0, 0x20, 0x6B, -0xC5, 0xF0, 0x00, 0x4A, 0x2B, 0xF1, 0x18, 0x4B, -0x88, 0x34, 0x44, 0x32, 0x91, 0xE3, 0x4D, 0xE3, -0x00, 0x68, 0x04, 0x4B, 0x04, 0xD4, 0x05, 0xD3, -0x06, 0xD0, 0x07, 0xD0, 0x08, 0xD0, 0x04, 0x95, -0x01, 0x6C, 0x08, 0x93, 0x40, 0xA5, 0x30, 0xF0, -0x20, 0x69, 0x04, 0x36, 0x8C, 0xEA, 0x44, 0xE8, -0x4D, 0xE3, 0x41, 0xA5, 0x05, 0x95, 0x08, 0xD3, -0x8C, 0xEA, 0x07, 0x94, 0x64, 0x40, 0x44, 0xEB, -0x51, 0xE4, 0x40, 0xA5, 0x07, 0xD4, 0x03, 0x6C, -0x64, 0x33, 0x8C, 0xEA, 0x44, 0xEB, 0x04, 0x94, -0x06, 0x93, 0x01, 0x6D, 0x8C, 0xAC, 0x4D, 0xE3, -0x06, 0xD3, 0xC0, 0xF3, 0x64, 0x99, 0x08, 0x6A, -0x4D, 0xEE, 0x09, 0xD4, 0xAB, 0xED, 0x03, 0xF3, -0x00, 0x6C, 0x40, 0xEB, 0x08, 0x95, 0x07, 0x96, -0x06, 0x93, 0xC0, 0xF3, 0x44, 0x99, 0xAD, 0xEE, -0x6D, 0xEE, 0xE3, 0xF3, 0x10, 0x6C, 0xFF, 0xF7, -0x1F, 0x6D, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, -0x09, 0x96, 0x01, 0x6D, 0xE3, 0xF3, 0x08, 0x6C, -0xAB, 0xED, 0x40, 0xEA, 0x04, 0x94, 0x05, 0x95, -0x01, 0x48, 0x02, 0x4C, 0x01, 0x4D, 0x02, 0x70, -0x04, 0xD4, 0x05, 0xD5, 0xBC, 0x61, 0x0D, 0x97, -0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, -0xF7, 0x63, 0x11, 0x62, 0x10, 0xD1, 0x0F, 0xD0, -0xFF, 0x6A, 0x04, 0x67, 0x4C, 0xE8, 0x4C, 0xED, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0xE9, 0xF5, 0x79, 0xA2, 0x30, 0xF0, 0x21, 0x6C, -0xF5, 0xF2, 0x18, 0x4C, 0x0D, 0xD3, 0x31, 0xF2, -0x62, 0x40, 0x6C, 0x33, 0x6D, 0xE2, 0x0C, 0xD5, -0x0A, 0xD3, 0x08, 0xD4, 0x00, 0x69, 0x09, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x04, 0x4B, -0xE0, 0x9B, 0xFF, 0x6A, 0x30, 0xF0, 0x21, 0x68, -0x12, 0xF5, 0x08, 0x48, 0x2C, 0xEA, 0x90, 0x67, -0xA2, 0x67, 0xDF, 0x6E, 0x06, 0xD2, 0x80, 0x18, -0x1A, 0x5A, 0x10, 0x6B, 0x4D, 0xEB, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF3, 0x04, 0x4A, 0x06, 0x95, -0xE0, 0x9A, 0x90, 0x67, 0xDF, 0x6E, 0x04, 0xD3, -0x80, 0x18, 0x8D, 0x5A, 0x0A, 0x93, 0x06, 0x95, -0x90, 0x67, 0x40, 0x9B, 0x58, 0x6E, 0x30, 0xF0, -0x20, 0x68, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0x04, 0x4A, 0xE0, 0x9A, 0x80, 0x18, -0x8D, 0x5A, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0x6B, -0x24, 0x36, 0x01, 0x6D, 0x6D, 0xEE, 0x03, 0xF3, -0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0x0D, 0x93, 0x06, 0x73, -0x1C, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, -0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, -0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x08, 0x93, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC0, 0x9B, -0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x08, 0x93, 0x01, 0x6D, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, 0xC2, 0x9B, -0x21, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, -0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, -0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF1, 0x14, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, -0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF1, 0x14, 0x4B, 0xC0, 0xF3, -0x44, 0x98, 0xC0, 0x9B, 0x01, 0x6D, 0x23, 0xF3, -0x1C, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x0C, 0x94, -0x06, 0x24, 0x00, 0x6A, 0x01, 0x74, 0x06, 0xD2, -0xE0, 0xF0, 0x15, 0x61, 0x7A, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x44, 0x9A, 0x83, 0xF3, 0xB4, 0x9B, 0x23, 0xF3, -0x00, 0x6C, 0x03, 0x6E, 0x40, 0xEA, 0x44, 0x6B, -0x78, 0xE9, 0x09, 0x94, 0x88, 0x6A, 0x00, 0x68, -0x12, 0xEB, 0x58, 0xEC, 0x12, 0xEA, 0x49, 0xE3, -0x30, 0xF0, 0x20, 0x6B, 0x49, 0xF7, 0x10, 0x4A, -0x2B, 0xF1, 0x18, 0x4B, 0x4D, 0xE3, 0x06, 0xD3, -0x06, 0x92, 0x30, 0xF0, 0x20, 0x6B, 0x01, 0x6D, -0xC0, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF4, -0x58, 0x9A, 0xC0, 0x36, 0xC3, 0xF3, 0x18, 0x6C, -0x4D, 0xEE, 0x08, 0x32, 0x4D, 0xEE, 0xC0, 0xF3, -0x44, 0x9B, 0xAB, 0xED, 0x02, 0x4E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x9C, 0xA3, 0xF1, 0xB4, 0x9B, -0xC3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x06, 0x92, 0x01, 0x48, 0x11, 0x70, 0x02, 0x4A, -0x06, 0xD2, 0xDA, 0x61, 0x44, 0x6B, 0x78, 0xE9, -0x09, 0x94, 0x88, 0x6A, 0x00, 0x68, 0x12, 0xEB, -0x58, 0xEC, 0x12, 0xEA, 0x49, 0xE3, 0x30, 0xF0, -0x20, 0x6B, 0x6A, 0xF0, 0x00, 0x4A, 0x2B, 0xF1, -0x18, 0x4B, 0x4D, 0xE3, 0x06, 0xD3, 0x06, 0x92, -0x30, 0xF0, 0x20, 0x6C, 0x08, 0x33, 0xC0, 0xAA, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF4, 0x58, 0x9A, -0xC0, 0x36, 0x01, 0x6D, 0x4D, 0xEE, 0xC0, 0xF3, -0x44, 0x9C, 0x6D, 0xEE, 0xC3, 0xF3, 0x18, 0x6C, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF1, 0xB4, 0x9B, 0xC3, 0xF3, 0x18, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x06, 0x94, 0x01, 0x48, -0x11, 0x70, 0x02, 0x4C, 0x06, 0xD4, 0xDB, 0x61, -0x17, 0x11, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x83, 0xF3, -0xB4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, -0x40, 0xEA, 0x44, 0x6B, 0x78, 0xE9, 0x09, 0x94, -0x88, 0x6A, 0x00, 0x68, 0x12, 0xEB, 0x58, 0xEC, -0x12, 0xEA, 0x49, 0xE3, 0x30, 0xF0, 0x20, 0x6B, -0x69, 0xF7, 0x12, 0x4A, 0x2B, 0xF1, 0x18, 0x4B, -0x4D, 0xE3, 0x06, 0xD3, 0x06, 0x92, 0x30, 0xF0, -0x20, 0x6B, 0x01, 0x6D, 0xC0, 0xAA, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF4, 0x5C, 0x9A, 0xC0, 0x36, -0xC3, 0xF3, 0x18, 0x6C, 0x4D, 0xEE, 0x08, 0x32, -0x4D, 0xEE, 0xC0, 0xF3, 0x44, 0x9B, 0xAB, 0xED, -0x02, 0x4E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9C, -0xA3, 0xF1, 0xB4, 0x9B, 0xC3, 0xF3, 0x18, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x06, 0x92, 0x01, 0x48, -0x11, 0x70, 0x02, 0x4A, 0x06, 0xD2, 0xDA, 0x61, -0x44, 0x6B, 0x78, 0xE9, 0x09, 0x94, 0x88, 0x6A, -0x00, 0x68, 0x12, 0xEB, 0x58, 0xEC, 0x12, 0xEA, -0x49, 0xE3, 0x30, 0xF0, 0x20, 0x6B, 0x8A, 0xF0, -0x02, 0x4A, 0x2B, 0xF1, 0x18, 0x4B, 0x4D, 0xE3, -0x06, 0xD3, 0x06, 0x92, 0x30, 0xF0, 0x20, 0x6C, -0x08, 0x33, 0xC0, 0xAA, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF4, 0x5C, 0x9A, 0xC0, 0x36, 0x01, 0x6D, -0x4D, 0xEE, 0xC0, 0xF3, 0x44, 0x9C, 0x6D, 0xEE, -0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0xB4, 0x9B, -0xC3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x06, 0x94, 0x01, 0x48, 0x11, 0x70, 0x02, 0x4C, -0x06, 0xD4, 0xDB, 0x61, 0x9D, 0x10, 0x06, 0x93, -0xFF, 0x6A, 0x6C, 0xEA, 0x11, 0x2A, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x44, 0x9A, 0x83, 0xF3, 0xB4, 0x9B, 0x23, 0xF3, -0x00, 0x6C, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF4, 0x58, 0x9A, 0x10, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x83, 0xF3, 0xB4, 0x9B, -0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF4, 0x5C, 0x9A, -0x0B, 0xD2, 0x06, 0x92, 0x22, 0x6B, 0x09, 0x94, -0x78, 0xEA, 0x44, 0x6A, 0x00, 0x68, 0x12, 0xEB, -0x58, 0xE9, 0x12, 0xEA, 0x49, 0xE3, 0x88, 0x6B, -0x78, 0xEC, 0x12, 0xEB, 0x69, 0xE2, 0x30, 0xF0, -0x20, 0x6B, 0x49, 0xF7, 0x10, 0x4A, 0x2B, 0xF1, -0x18, 0x4B, 0x4D, 0xE3, 0x07, 0xD3, 0x07, 0x92, -0x0B, 0x93, 0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xAA, -0x08, 0x32, 0x01, 0x6D, 0xC0, 0x36, 0x6D, 0xEE, -0x4D, 0xEE, 0xC0, 0xF3, 0x44, 0x9C, 0xAB, 0xED, -0xC3, 0xF3, 0x18, 0x6C, 0x02, 0x4E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0xB4, 0x9B, -0xC3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x07, 0x94, 0x01, 0x48, 0x11, 0x70, 0x02, 0x4C, -0x07, 0xD4, 0xDD, 0x61, 0x06, 0x92, 0x22, 0x6B, -0x09, 0x94, 0x78, 0xEA, 0x44, 0x6A, 0x00, 0x68, -0x12, 0xEB, 0x58, 0xE9, 0x12, 0xEA, 0x49, 0xE3, -0x88, 0x6B, 0x78, 0xEC, 0x12, 0xEB, 0x69, 0xE2, -0x30, 0xF0, 0x20, 0x6B, 0x6A, 0xF0, 0x00, 0x4A, -0x2B, 0xF1, 0x18, 0x4B, 0x4D, 0xE3, 0x07, 0xD3, -0x07, 0x92, 0x0B, 0x93, 0x30, 0xF0, 0x20, 0x6C, -0xC0, 0xAA, 0xC0, 0xF3, 0x44, 0x9C, 0x01, 0x6D, -0xC0, 0x36, 0x6D, 0xEE, 0x08, 0x33, 0x6D, 0xEE, -0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0xB4, 0x9B, -0xC3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x07, 0x94, 0x01, 0x48, 0x11, 0x70, 0x02, 0x4C, -0x07, 0xD4, 0xDE, 0x61, 0x06, 0x92, 0x01, 0x4A, -0x02, 0x72, 0x06, 0xD2, 0x7F, 0xF7, 0x03, 0x61, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, -0x63, 0xF3, 0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, -0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, -0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x00, 0x6B, -0x06, 0xD3, 0x06, 0x93, 0x06, 0x92, 0x30, 0xF0, -0x20, 0x68, 0xFF, 0x6C, 0x8C, 0xEA, 0x64, 0x36, -0xC0, 0xF3, 0x64, 0x98, 0x07, 0xD2, 0x01, 0x6D, -0x08, 0x6A, 0x4D, 0xEE, 0x03, 0xF2, 0x01, 0x4C, -0xAB, 0xED, 0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF3, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, -0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF1, 0x14, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, -0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF1, 0x14, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, -0x1C, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF2, 0xA0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, -0x40, 0xEA, 0x03, 0x6A, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x07, 0x95, 0x03, 0xF5, 0xE4, 0x9A, -0x30, 0xF0, 0x21, 0x6C, 0x12, 0xF5, 0x08, 0x4C, -0x00, 0x6E, 0x80, 0x18, 0x8D, 0x5A, 0x06, 0x94, -0x01, 0x4C, 0x02, 0x74, 0x06, 0xD4, 0xA9, 0x61, -0x0A, 0x92, 0x08, 0x93, 0x01, 0x49, 0x04, 0x4A, -0x04, 0x4B, 0x02, 0x71, 0x0A, 0xD2, 0x08, 0xD3, -0x7F, 0xF5, 0x0E, 0x61, 0x11, 0x97, 0x10, 0x91, -0x0F, 0x90, 0x09, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, +0x1C, 0x22, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0xFF, 0x6D, 0x83, 0xF4, 0x10, 0x6C, +0x01, 0x4D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF3, 0x24, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x01, 0x6E, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0xFF, 0x6D, 0x83, 0xF4, 0x10, 0x6C, +0x01, 0x4D, 0x00, 0x6E, 0x40, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFF, 0x63, 0x01, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF3, 0x64, 0x9B, 0x46, 0x67, 0x8E, 0xEB, +0x12, 0x23, 0x00, 0x6E, 0x66, 0x67, 0xE4, 0x67, +0xE6, 0xEE, 0x01, 0x68, 0x0C, 0xEF, 0x07, 0x2F, +0x01, 0x4B, 0xFF, 0x6F, 0xEC, 0xEB, 0x14, 0x73, +0x01, 0x4E, 0xF5, 0x61, 0x14, 0x6B, 0x8F, 0xEC, +0x44, 0xEB, 0xAC, 0xEC, 0x8D, 0xEA, 0x01, 0x90, +0x01, 0x63, 0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, +0x20, 0xE8, 0x00, 0x65, 0x01, 0x6A, 0x20, 0xE8, +0x20, 0xE8, 0x00, 0x65, 0x00, 0x6A, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFF, 0x6A, 0xAC, 0xEA, 0x1C, 0x22, 0x30, 0xF0, -0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0xFF, 0x6D, -0x83, 0xF4, 0x10, 0x6C, 0x01, 0x4D, 0x01, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, -0x24, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x01, 0x6E, 0x09, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0xFF, 0x6D, -0x83, 0xF4, 0x10, 0x6C, 0x01, 0x4D, 0x00, 0x6E, -0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFF, 0x63, 0x01, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x64, 0x9B, -0x46, 0x67, 0x8E, 0xEB, 0x12, 0x23, 0x00, 0x6E, -0x66, 0x67, 0xE4, 0x67, 0xE6, 0xEE, 0x01, 0x68, -0x0C, 0xEF, 0x07, 0x2F, 0x01, 0x4B, 0xFF, 0x6F, -0xEC, 0xEB, 0x14, 0x73, 0x01, 0x4E, 0xF5, 0x61, -0x14, 0x6B, 0x8F, 0xEC, 0x44, 0xEB, 0xAC, 0xEC, -0x8D, 0xEA, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, -0x00, 0x6A, 0x20, 0xE8, 0x20, 0xE8, 0x00, 0x65, -0x01, 0x6A, 0x20, 0xE8, 0x20, 0xE8, 0x00, 0x65, -0x00, 0x6A, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x01, 0x75, 0x33, 0x61, -0x01, 0x76, 0x17, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0x24, 0x9A, 0x30, 0xF0, 0x20, 0x68, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0xE3, 0xF5, 0xDC, 0x9B, 0x03, 0xF0, 0x00, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x08, 0xF1, 0x00, 0x6C, 0xB1, 0x67, 0x00, 0x6E, -0x81, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, -0x24, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x68, 0xE3, 0xF5, 0xDC, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, 0xB1, 0x67, -0x03, 0xF6, 0xC0, 0x9B, 0x67, 0x10, 0x02, 0x75, -0x2C, 0x61, 0x01, 0x76, 0x10, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF3, 0x24, 0x9A, 0x30, 0xF0, -0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, -0x03, 0xF6, 0xC0, 0x9B, 0x2D, 0x10, 0x30, 0xF0, +0x01, 0x75, 0x33, 0x61, 0x01, 0x76, 0x17, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x24, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF6, 0xCC, 0x9B, +0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x81, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x24, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x03, 0xF6, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, -0x00, 0x6C, 0xB1, 0x67, 0xE3, 0xF5, 0xDC, 0x9B, -0x39, 0x10, 0x03, 0x75, 0x38, 0x61, 0x01, 0x76, -0x1A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, +0x00, 0x6C, 0xB1, 0x67, 0x03, 0xF6, 0xD0, 0x9B, +0x67, 0x10, 0x02, 0x75, 0x2C, 0x61, 0x01, 0x76, +0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x24, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF5, -0xDC, 0x9B, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x00, 0x6C, 0xB1, 0x67, 0x03, 0xF6, 0xD0, 0x9B, +0x2D, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, +0x24, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0x03, 0xF6, 0xD0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, 0xB1, 0x67, -0x03, 0xF6, 0xC4, 0x9B, 0x1B, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, -0x24, 0x9A, 0xE3, 0xF5, 0x1C, 0x4B, 0x30, 0xF0, -0x20, 0x68, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF5, 0x1C, 0x4B, -0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, 0x08, 0xF1, -0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0x01, 0x6A, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, -0x0E, 0x72, 0x51, 0x61, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x68, 0x43, 0xF5, 0x00, 0x4B, -0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, -0x00, 0x6C, 0xA7, 0xF5, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF6, 0xC8, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, -0x23, 0xF2, 0x04, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x08, 0x6C, -0xFF, 0xF7, 0x1F, 0x6D, 0xAD, 0xF2, 0x03, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF5, -0x00, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x83, 0xF2, 0x18, 0x6C, 0x75, 0xF2, 0x1B, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF2, -0x1C, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0xDE, 0xF3, -0x17, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xA3, 0xF2, 0x00, 0x6C, 0xB1, 0x67, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF6, 0xCC, 0x9B, 0xA3, 0xF2, -0x0C, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xA3, 0xF2, 0x10, 0x6C, 0xB1, 0x67, -0xFF, 0xF7, 0x1F, 0x6E, 0x55, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x43, 0xF5, -0x00, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF2, 0x00, 0x6C, 0x8A, 0xF2, 0x04, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF6, -0xD0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, -0x2B, 0xE9, 0x23, 0xF2, 0x04, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, -0x08, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0x81, 0xF2, -0x08, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF5, 0x00, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x83, 0xF2, 0x18, 0x6C, 0xD5, 0xF4, -0x04, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x83, 0xF2, 0x1C, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, -0xB9, 0xF0, 0x12, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF6, 0xD4, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0xA3, 0xF2, 0x00, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF6, -0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF2, -0x0C, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF5, -0xC4, 0x9B, 0xA3, 0xF2, 0x10, 0x6C, 0xB1, 0x67, +0x03, 0xF6, 0xCC, 0x9B, 0x39, 0x10, 0x03, 0x75, +0x38, 0x61, 0x01, 0x76, 0x1A, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF3, 0x24, 0x9A, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF6, 0xCC, 0x9B, 0x03, 0xF0, +0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, +0x00, 0x6C, 0xB1, 0x67, 0x03, 0xF6, 0xD4, 0x9B, +0x1B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF3, 0x24, 0x9A, 0x03, 0xF6, +0x0C, 0x4B, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF6, 0x0C, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xC0, 0x9B, 0x08, 0xF1, 0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, -0xC0, 0xF3, 0x44, 0x99, 0xFF, 0x68, 0xAC, 0xE8, -0xD0, 0x67, 0xA3, 0xF0, 0x0C, 0x6C, 0x1E, 0xF0, -0x00, 0x6D, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, -0xD0, 0x67, 0xA8, 0xF1, 0x0C, 0x6C, 0x1E, 0xF0, -0x00, 0x6D, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x68, 0xAC, 0xE8, 0x09, 0xE4, 0x0A, 0xD4, -0x05, 0xD2, 0x40, 0xF0, 0x71, 0xA2, 0x30, 0xF0, -0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, 0x04, 0xD3, -0xA3, 0xF0, 0x0C, 0x6C, 0xE0, 0xF1, 0x10, 0x6D, -0xD0, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, -0xA8, 0xF1, 0x0C, 0x6C, 0xE0, 0xF1, 0x10, 0x6D, -0xD0, 0x67, 0x40, 0xEA, 0x0A, 0x92, 0x40, 0xF0, -0x10, 0xC2, 0x05, 0x93, 0x60, 0xF0, 0x41, 0xA3, -0x02, 0x2A, 0x0D, 0x6A, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x04, 0x96, -0x21, 0xF0, 0x08, 0x6C, 0xF8, 0x6D, 0x40, 0xEA, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0x4C, 0xED, 0x68, 0x45, 0xFB, 0x4B, -0x4C, 0xEB, 0x02, 0x5B, 0x0B, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, -0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x61, 0xF1, -0x09, 0x6E, 0x78, 0x10, 0x68, 0x45, 0xFD, 0x4B, -0x4C, 0xEB, 0x02, 0x5B, 0x0B, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, -0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x61, 0xF1, -0x0A, 0x6E, 0x68, 0x10, 0x6F, 0x45, 0x4C, 0xEB, -0x0A, 0x5B, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, -0xE1, 0xF7, 0x1F, 0x6D, 0xA1, 0xF1, 0x0A, 0x6E, -0x59, 0x10, 0x68, 0x45, 0xE4, 0x4B, 0x4C, 0xEB, -0x10, 0x5B, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, -0xE1, 0xF7, 0x1F, 0x6D, 0x80, 0xF4, 0x14, 0x6E, -0x49, 0x10, 0x68, 0x45, 0xD4, 0x4B, 0x4C, 0xEB, -0x04, 0x5B, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, -0xE1, 0xF7, 0x1F, 0x6D, 0x80, 0xF4, 0x13, 0x6E, -0x39, 0x10, 0x68, 0x45, 0xD0, 0x4B, 0x4C, 0xEB, -0x38, 0x5B, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, -0xE1, 0xF7, 0x1F, 0x6D, 0x40, 0xF4, 0x13, 0x6E, -0x29, 0x10, 0x68, 0x45, 0x98, 0x4B, 0x4C, 0xEB, -0x08, 0x5B, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, -0xE1, 0xF7, 0x1F, 0x6D, 0x40, 0xF4, 0x12, 0x6E, -0x19, 0x10, 0x88, 0x4D, 0x4C, 0xED, 0x35, 0x5D, +0x04, 0x63, 0x00, 0xEF, 0x01, 0x6A, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0xAC, 0xEA, 0x0E, 0x72, 0x51, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, +0x43, 0xF5, 0x10, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF2, 0x00, 0x6C, 0xA7, 0xF5, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF6, 0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF2, 0x04, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF2, 0x08, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, +0xAD, 0xF2, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF5, 0x10, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF2, 0x18, 0x6C, +0x75, 0xF2, 0x1B, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x83, 0xF2, 0x1C, 0x6C, 0xFF, 0xF7, +0x1F, 0x6D, 0xDE, 0xF3, 0x17, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF2, 0x00, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF6, +0xDC, 0x9B, 0xA3, 0xF2, 0x0C, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF2, +0x10, 0x6C, 0xB1, 0x67, 0xFF, 0xF7, 0x1F, 0x6E, +0x55, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0x43, 0xF5, 0x10, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x00, 0x6C, +0x8A, 0xF2, 0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF6, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF2, +0x04, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF2, 0x08, 0x6C, 0xFF, 0xF7, +0x1F, 0x6D, 0x81, 0xF2, 0x08, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF5, 0x10, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF2, +0x18, 0x6C, 0xD5, 0xF4, 0x04, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF2, 0x1C, 0x6C, +0xFF, 0xF7, 0x1F, 0x6D, 0xB9, 0xF0, 0x12, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF6, +0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF2, +0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF6, 0xC8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xA3, 0xF2, 0x0C, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF5, 0xD4, 0x9B, 0xA3, 0xF2, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, +0xFF, 0x68, 0xAC, 0xE8, 0xD0, 0x67, 0xA3, 0xF0, +0x0C, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0xD0, 0x67, 0xA8, 0xF1, +0x0C, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, 0x40, 0xEA, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x68, 0xAC, 0xE8, +0x09, 0xE4, 0x0A, 0xD4, 0x05, 0xD2, 0x40, 0xF0, +0x71, 0xA2, 0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, +0x44, 0x99, 0x04, 0xD3, 0xA3, 0xF0, 0x0C, 0x6C, +0xE0, 0xF1, 0x10, 0x6D, 0xD0, 0x67, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0xA8, 0xF1, 0x0C, 0x6C, +0xE0, 0xF1, 0x10, 0x6D, 0xD0, 0x67, 0x40, 0xEA, +0x0A, 0x92, 0x40, 0xF0, 0x10, 0xC2, 0x05, 0x93, +0x60, 0xF0, 0x41, 0xA3, 0x02, 0x2A, 0x0D, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x04, 0x96, 0x21, 0xF0, 0x08, 0x6C, +0xF8, 0x6D, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xED, +0x68, 0x45, 0xFB, 0x4B, 0x4C, 0xEB, 0x02, 0x5B, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, 0xE1, 0xF7, -0x1F, 0x6D, 0x00, 0xF4, 0x12, 0x6E, 0x0A, 0x10, +0x1F, 0x6D, 0x61, 0xF1, 0x09, 0x6E, 0x78, 0x10, +0x68, 0x45, 0xFD, 0x4B, 0x4C, 0xEB, 0x02, 0x5B, +0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, 0xE1, 0xF7, +0x1F, 0x6D, 0x61, 0xF1, 0x0A, 0x6E, 0x68, 0x10, +0x6F, 0x45, 0x4C, 0xEB, 0x0A, 0x5B, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, -0x00, 0xF4, 0x11, 0x6E, 0x40, 0xEA, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0xAC, 0xEA, 0x0F, 0x5A, 0x0B, 0x60, -0x0D, 0x72, 0x09, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x01, 0xF0, 0x08, 0x6C, -0x70, 0x6D, 0x01, 0x6E, 0x08, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0xF0, -0x08, 0x6C, 0x70, 0x6D, 0x03, 0x6E, 0x40, 0xEA, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFF, 0x6A, 0xAC, 0xEA, 0x26, 0x67, 0x3B, 0x22, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, -0x03, 0xF6, 0x1C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x43, 0xF1, 0x04, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF6, 0x1C, 0x4B, -0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xD1, 0x67, -0x48, 0xF0, 0x04, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF1, 0x34, 0x9A, 0xC0, 0xF3, -0x44, 0x98, 0x43, 0xF1, 0x00, 0x6C, 0xB1, 0x67, -0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x48, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x01, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, -0x18, 0x6C, 0x01, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0xA1, 0xF1, 0x0A, 0x6E, 0x59, 0x10, 0x68, 0x45, +0xE4, 0x4B, 0x4C, 0xEB, 0x10, 0x5B, 0x0B, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x21, 0xF4, 0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x80, 0xF4, 0x14, 0x6E, 0x49, 0x10, 0x68, 0x45, +0xD4, 0x4B, 0x4C, 0xEB, 0x04, 0x5B, 0x0B, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x21, 0xF4, 0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x80, 0xF4, 0x13, 0x6E, 0x39, 0x10, 0x68, 0x45, +0xD0, 0x4B, 0x4C, 0xEB, 0x38, 0x5B, 0x0B, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x21, 0xF4, 0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x40, 0xF4, 0x13, 0x6E, 0x29, 0x10, 0x68, 0x45, +0x98, 0x4B, 0x4C, 0xEB, 0x08, 0x5B, 0x0B, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x21, 0xF4, 0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x40, 0xF4, 0x12, 0x6E, 0x19, 0x10, 0x88, 0x4D, +0x4C, 0xED, 0x35, 0x5D, 0x0B, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, +0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x00, 0xF4, +0x12, 0x6E, 0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x00, 0xF4, 0x11, 0x6E, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0xAC, 0xEA, +0x0F, 0x5A, 0x0B, 0x60, 0x0D, 0x72, 0x09, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x01, 0xF0, 0x08, 0x6C, 0x70, 0x6D, 0x01, 0x6E, +0x08, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x01, 0xF0, 0x08, 0x6C, 0x70, 0x6D, +0x03, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, +0x26, 0x67, 0x3B, 0x22, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0x23, 0xF6, 0x0C, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF1, +0x04, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF6, 0x0C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xD1, 0x67, 0x48, 0xF0, 0x04, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, +0x38, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF1, +0x00, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x48, 0xF0, 0x00, 0x6C, +0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0xF0, 0x18, 0x6C, 0x01, 0xF0, +0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF5, +0x1C, 0x6C, 0x23, 0xF6, 0xB0, 0x9B, 0x0F, 0x6E, +0x37, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x68, 0x23, 0xF6, 0x2C, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF1, 0x04, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x48, 0xF0, 0x04, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, +0x38, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF1, +0x00, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x48, 0xF0, 0x00, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0xF0, 0x18, 0x6C, 0x01, 0xF0, +0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF6, +0xB0, 0x9B, 0x23, 0xF5, 0x1C, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, 0x13, 0x22, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0xF0, 0x18, 0x6C, 0x08, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF5, 0x1C, 0x6C, 0x23, 0xF6, -0xA0, 0x9B, 0x0F, 0x6E, 0x37, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0x03, 0xF6, -0x3C, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF1, -0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x48, 0xF0, -0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF1, 0x34, 0x9A, 0xC0, 0xF3, -0x44, 0x98, 0x43, 0xF1, 0x00, 0x6C, 0xB1, 0x67, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x48, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, -0x18, 0x6C, 0x01, 0xF0, 0x00, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF6, 0xA0, 0x9B, 0x23, 0xF5, -0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, -0xAC, 0xEA, 0x13, 0x22, 0x30, 0xF0, 0x20, 0x68, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, 0x18, 0x6C, -0x08, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF5, -0x1C, 0x6C, 0x23, 0xF6, 0xA0, 0x9B, 0x0F, 0x6E, -0x12, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0xF0, 0x18, 0x6C, 0x08, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF6, 0xA0, 0x9B, -0x23, 0xF5, 0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFF, 0x68, 0xAC, 0xE8, 0x00, 0x6D, 0x24, 0x67, -0x80, 0x18, 0xCE, 0x56, 0x99, 0x70, 0x07, 0x61, -0x50, 0x99, 0x40, 0xA2, 0x04, 0x2A, 0x91, 0x67, -0x01, 0x6D, 0x70, 0x6E, 0x03, 0x10, 0x00, 0x6D, -0x91, 0x67, 0xC5, 0x67, 0x80, 0x18, 0x8E, 0x56, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0xAC, 0xEA, 0x0C, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x9A, 0x63, 0xF4, 0x04, 0x6C, 0xA3, 0xF1, -0xB4, 0x9B, 0x01, 0x6E, 0x0B, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x9A, 0xA3, 0xF1, 0xB4, 0x9B, 0x63, 0xF4, -0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0xAC, 0xEA, 0x09, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x41, 0xF4, -0x14, 0x6C, 0x80, 0x6D, 0x01, 0x6E, 0x08, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, -0x41, 0xF4, 0x14, 0x6C, 0x80, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0x5B, 0xAC, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0xFF, 0xF7, 0x1F, 0x68, -0xAC, 0xE8, 0x24, 0x67, 0xD0, 0x67, 0x61, 0xF2, -0x10, 0x6C, 0xE0, 0xF3, 0x1F, 0x6D, 0x40, 0xEA, -0x1B, 0xC9, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF6, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, -0x00, 0x6E, 0x23, 0xF4, 0x1C, 0x6C, 0x40, 0xEA, -0x01, 0x6D, 0xA5, 0xF5, 0x14, 0x6C, 0xAB, 0xED, -0x80, 0x18, 0x35, 0x25, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF6, 0x68, 0x9B, 0x05, 0x97, 0x4C, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, 0x54, 0x9A, -0x4E, 0xEB, 0x01, 0x5B, 0x58, 0x67, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x83, 0xF2, 0x18, 0x68, -0x24, 0x67, 0x18, 0xF0, 0x00, 0x6D, 0x90, 0x67, -0x80, 0x18, 0x35, 0x25, 0x05, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF5, 0xA4, 0x9A, 0xA3, 0xF2, -0x08, 0x6C, 0x80, 0x18, 0x35, 0x25, 0x90, 0x67, -0xC0, 0x6D, 0x04, 0xD2, 0x80, 0x18, 0x35, 0x25, -0x02, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, -0xBC, 0x9A, 0x63, 0xF2, 0x10, 0x6C, 0x80, 0x18, -0x35, 0x25, 0x05, 0x93, 0x04, 0x95, 0xFF, 0x6C, -0x8C, 0xEB, 0x8C, 0xE8, 0x70, 0x33, 0x10, 0x30, -0x4D, 0xE8, 0xAD, 0xEB, 0x60, 0xF0, 0x71, 0xC1, -0x60, 0xF0, 0x12, 0xC1, 0x09, 0x97, 0x08, 0x91, -0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFF, 0x6A, 0x4C, 0xED, 0x08, 0xD4, 0xCC, 0xEA, -0xC0, 0xF0, 0x1C, 0x25, 0x20, 0x22, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x23, 0xF6, -0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, -0x00, 0x6C, 0x21, 0xF0, 0x13, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, 0x08, 0x6C, -0x18, 0xF0, 0x00, 0x6D, 0x02, 0x6E, 0x40, 0xEA, -0x01, 0x6D, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xAB, 0xED, -0x23, 0xF6, 0xD0, 0x9B, 0x90, 0x11, 0x08, 0x93, -0x50, 0x9B, 0x40, 0xA2, 0x01, 0x72, 0x80, 0xF1, -0x0B, 0x61, 0x01, 0x69, 0x2B, 0xE9, 0xA1, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x80, 0x18, 0x35, 0x25, -0x08, 0x93, 0x30, 0xF0, 0x20, 0x68, 0x03, 0xF0, -0x00, 0x6C, 0x5D, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF6, 0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x81, 0xF0, 0x08, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF1, 0xB4, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x81, 0xF0, 0x18, 0x6C, 0x01, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, -0x08, 0x6C, 0x18, 0xF0, 0x00, 0x6D, 0x01, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA1, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x04, 0xF2, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF6, -0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF6, 0x10, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF6, 0xD4, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF6, -0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF6, 0xDC, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF6, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF6, 0xC4, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF6, -0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF6, 0xCC, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF6, -0xD0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF6, 0xD4, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF6, -0x18, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0xB0, 0x9B, 0x0F, 0x6E, 0x12, 0x10, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, +0x18, 0x6C, 0x08, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x43, 0xF6, -0x18, 0x4B, 0xD4, 0x10, 0x20, 0x22, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x23, 0xF6, -0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, -0x00, 0x6C, 0x20, 0xF3, 0x13, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, 0x08, 0x6C, -0x18, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0x01, 0x6D, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xAB, 0xED, -0x43, 0xF6, 0xDC, 0x9B, 0xB4, 0x10, 0x08, 0x93, -0x50, 0x9B, 0x40, 0xA2, 0x01, 0x72, 0xA0, 0xF0, -0x0F, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF6, 0xAC, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0x20, 0xF3, -0x13, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF1, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x81, 0xF0, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, 0x08, 0x6C, -0x18, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0x08, 0x93, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, -0xDD, 0x9B, 0x2B, 0xE9, 0xA1, 0xF1, 0x10, 0x6C, +0x23, 0xF6, 0xB0, 0x9B, 0x23, 0xF5, 0x1C, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0xAC, 0xE8, +0x00, 0x6D, 0x24, 0x67, 0x80, 0x18, 0x53, 0x55, +0x99, 0x70, 0x07, 0x61, 0x50, 0x99, 0x40, 0xA2, +0x04, 0x2A, 0x91, 0x67, 0x01, 0x6D, 0x70, 0x6E, +0x03, 0x10, 0x00, 0x6D, 0x91, 0x67, 0xC5, 0x67, +0x80, 0x18, 0x13, 0x55, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0xAC, 0xEA, +0x0C, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, 0x63, 0xF4, +0x04, 0x6C, 0xA3, 0xF1, 0xB8, 0x9B, 0x01, 0x6E, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, 0xA3, 0xF1, +0xB8, 0x9B, 0x63, 0xF4, 0x04, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0xAC, 0xEA, +0x09, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x41, 0xF4, 0x14, 0x6C, 0x80, 0x6D, +0x01, 0x6E, 0x08, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x41, 0xF4, 0x14, 0x6C, +0x80, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x5B, 0xAC, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0xFF, 0xF7, 0x1F, 0x68, 0xAC, 0xE8, 0x24, 0x67, +0xD0, 0x67, 0x61, 0xF2, 0x10, 0x6C, 0xE0, 0xF3, +0x1F, 0x6D, 0x40, 0xEA, 0x1B, 0xC9, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF6, 0xB4, 0x9B, +0xC0, 0xF3, 0x44, 0x9A, 0x00, 0x6E, 0x23, 0xF4, +0x1C, 0x6C, 0x40, 0xEA, 0x01, 0x6D, 0xA5, 0xF5, +0x14, 0x6C, 0xAB, 0xED, 0x80, 0x18, 0x0D, 0x28, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF6, 0x78, 0x9B, +0x05, 0x97, 0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF3, 0x54, 0x9A, 0x4E, 0xEB, 0x01, 0x5B, +0x58, 0x67, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x83, 0xF2, 0x18, 0x68, 0x24, 0x67, 0x18, 0xF0, +0x00, 0x6D, 0x90, 0x67, 0x80, 0x18, 0x0D, 0x28, +0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, +0xB4, 0x9A, 0xA3, 0xF2, 0x08, 0x6C, 0x80, 0x18, +0x0D, 0x28, 0x90, 0x67, 0xC0, 0x6D, 0x04, 0xD2, +0x80, 0x18, 0x0D, 0x28, 0x02, 0x67, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF3, 0xBC, 0x9A, 0x63, 0xF2, +0x10, 0x6C, 0x80, 0x18, 0x0D, 0x28, 0x05, 0x93, +0x04, 0x95, 0xFF, 0x6C, 0x8C, 0xEB, 0x8C, 0xE8, +0x70, 0x33, 0x10, 0x30, 0x4D, 0xE8, 0xAD, 0xEB, +0x60, 0xF0, 0x71, 0xC1, 0x60, 0xF0, 0x12, 0xC1, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x4C, 0xED, +0x08, 0xD4, 0xCC, 0xEA, 0xC0, 0xF0, 0x1C, 0x25, +0x20, 0x22, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0x23, 0xF6, 0xBC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0x21, 0xF0, +0x13, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF4, 0x08, 0x6C, 0x18, 0xF0, 0x00, 0x6D, +0x02, 0x6E, 0x40, 0xEA, 0x01, 0x6D, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xAB, 0xED, 0x43, 0xF6, 0xC0, 0x9B, +0x90, 0x11, 0x08, 0x93, 0x50, 0x9B, 0x40, 0xA2, +0x01, 0x72, 0x80, 0xF1, 0x0B, 0x61, 0x01, 0x69, +0x2B, 0xE9, 0xA1, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x80, 0x18, 0x0D, 0x28, 0x08, 0x93, 0x30, 0xF0, +0x20, 0x68, 0x03, 0xF0, 0x00, 0x6C, 0x5D, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF6, 0xBC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x81, 0xF0, 0x08, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, +0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x81, 0xF0, +0x18, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x63, 0xF4, 0x08, 0x6C, 0x18, 0xF0, +0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xA1, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x04, 0xF2, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF6, 0x00, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF6, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x43, 0xF6, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF6, -0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF6, 0xC0, 0x9B, +0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF6, 0xC8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF6, +0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF6, 0xD0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF6, +0xD4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF6, 0xD8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF6, +0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF6, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF6, +0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF6, 0x08, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xC0, 0x9B, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x63, 0xF6, 0x08, 0x4B, 0xD4, 0x10, +0x20, 0x22, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0x23, 0xF6, 0xBC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0x20, 0xF3, +0x13, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF4, 0x08, 0x6C, 0x18, 0xF0, 0x00, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x01, 0x6D, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xAB, 0xED, 0x63, 0xF6, 0xCC, 0x9B, +0xB4, 0x10, 0x08, 0x93, 0x50, 0x9B, 0x40, 0xA2, +0x01, 0x72, 0xA0, 0xF0, 0x0F, 0x61, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF6, +0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x00, 0x6C, 0x20, 0xF3, 0x13, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0xB8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x81, 0xF0, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF4, 0x08, 0x6C, 0x18, 0xF0, 0x00, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x08, 0x93, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x69, 0xDD, 0x9B, 0x2B, 0xE9, +0xA1, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF6, 0x0C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF6, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF6, 0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF6, 0xD0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF6, 0xC8, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF6, 0xD4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF6, 0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF6, 0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF6, 0xD0, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF6, 0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF6, 0xD4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x83, 0xF6, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF6, 0xD8, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF6, 0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF6, 0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x83, 0xF6, 0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF6, 0xC0, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF6, 0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF6, 0x04, 0x4B, 0xC0, 0xF3, 0x44, 0x98, -0xC0, 0x9B, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x83, 0xF6, 0x04, 0x4B, 0xC0, 0x9B, 0x40, 0xEA, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x05, 0x67, -0x03, 0xF5, 0xA4, 0x9A, 0x21, 0xF0, 0x04, 0x6C, -0x80, 0x18, 0x35, 0x25, 0x40, 0xC0, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF3, 0xBC, 0x9A, 0x03, 0xF2, -0x04, 0x6C, 0x80, 0x18, 0x35, 0x25, 0x01, 0x72, -0x02, 0x61, 0x03, 0x6A, 0x06, 0x10, 0x02, 0x2A, -0x01, 0x6A, 0x03, 0x10, 0x05, 0x72, 0x02, 0x61, -0x02, 0x6A, 0x41, 0xC0, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x05, 0x67, 0x01, 0x6D, 0x21, 0xF0, -0x00, 0x6C, 0xAB, 0xED, 0x80, 0x18, 0x35, 0x25, -0xF0, 0x6B, 0x4C, 0xEB, 0x72, 0x33, 0x61, 0xC0, -0x0F, 0x6B, 0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF3, 0xAC, 0x9A, 0x60, 0xC0, 0x03, 0xF2, -0x04, 0x6C, 0x80, 0x18, 0x35, 0x25, 0x0C, 0x72, -0x02, 0x61, 0x03, 0x6A, 0x09, 0x10, 0x08, 0x72, -0x02, 0x61, 0x01, 0x6A, 0x05, 0x10, 0x04, 0x72, -0x02, 0x61, 0x02, 0x6A, 0x01, 0x10, 0x01, 0x2A, -0x42, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, -0xB8, 0x9A, 0x23, 0xF6, 0x04, 0x6C, 0x80, 0x18, -0x35, 0x25, 0x4F, 0xEA, 0x43, 0xC0, 0x01, 0x6A, -0x44, 0xC0, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x63, 0xF5, 0x10, 0x69, -0x01, 0x6D, 0x91, 0x67, 0xAB, 0xED, 0x80, 0x18, -0x35, 0x25, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x68, -0x04, 0x96, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, -0x91, 0x67, 0xAB, 0xED, 0xFF, 0xF5, 0x1E, 0x4E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, -0x01, 0x6D, 0x91, 0x67, 0xAB, 0xED, 0x40, 0xEA, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x68, 0x30, 0xF0, -0x20, 0x6A, 0x0C, 0xED, 0x03, 0xF5, 0x04, 0x4A, -0x04, 0xD5, 0xA0, 0x9A, 0x21, 0xF0, 0x04, 0x69, -0x91, 0x67, 0x80, 0x18, 0x35, 0x25, 0x04, 0x93, -0x48, 0x23, 0x4C, 0xE8, 0x03, 0x70, 0x08, 0x60, -0x30, 0xF0, 0x20, 0x6C, 0x65, 0xF4, 0x1C, 0x4C, -0x80, 0x18, 0x39, 0x43, 0x00, 0x6A, 0x7B, 0x10, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0x21, 0xF0, 0x1C, 0x6C, 0x04, 0x6D, 0x01, 0x6E, +0x83, 0xF6, 0xD0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF6, 0x14, 0x4B, +0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x83, 0xF6, 0x14, 0x4B, +0xC0, 0x9B, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x05, 0x67, 0x03, 0xF5, 0xB4, 0x9A, +0x21, 0xF0, 0x04, 0x6C, 0x80, 0x18, 0x0D, 0x28, +0x40, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, +0xBC, 0x9A, 0x03, 0xF2, 0x04, 0x6C, 0x80, 0x18, +0x0D, 0x28, 0x01, 0x72, 0x02, 0x61, 0x03, 0x6A, +0x06, 0x10, 0x02, 0x2A, 0x01, 0x6A, 0x03, 0x10, +0x05, 0x72, 0x02, 0x61, 0x02, 0x6A, 0x41, 0xC0, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x05, 0x67, +0x01, 0x6D, 0x21, 0xF0, 0x00, 0x6C, 0xAB, 0xED, +0x80, 0x18, 0x0D, 0x28, 0xF0, 0x6B, 0x4C, 0xEB, +0x72, 0x33, 0x61, 0xC0, 0x0F, 0x6B, 0x4C, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, 0xAC, 0x9A, +0x60, 0xC0, 0x03, 0xF2, 0x04, 0x6C, 0x80, 0x18, +0x0D, 0x28, 0x0C, 0x72, 0x02, 0x61, 0x03, 0x6A, +0x09, 0x10, 0x08, 0x72, 0x02, 0x61, 0x01, 0x6A, +0x05, 0x10, 0x04, 0x72, 0x02, 0x61, 0x02, 0x6A, +0x01, 0x10, 0x01, 0x2A, 0x42, 0xC0, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF1, 0xBC, 0x9A, 0x23, 0xF6, +0x04, 0x6C, 0x80, 0x18, 0x0D, 0x28, 0x4F, 0xEA, +0x43, 0xC0, 0x01, 0x6A, 0x44, 0xC0, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x63, 0xF5, 0x10, 0x69, 0x01, 0x6D, 0x91, 0x67, +0xAB, 0xED, 0x80, 0x18, 0x0D, 0x28, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x68, 0x04, 0x96, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0x91, 0x67, 0xAB, 0xED, +0xFF, 0xF5, 0x1E, 0x4E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x04, 0x96, 0x01, 0x6D, 0x91, 0x67, +0xAB, 0xED, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x0C, 0xED, +0x03, 0xF5, 0x14, 0x4A, 0x04, 0xD5, 0xA0, 0x9A, +0x21, 0xF0, 0x04, 0x69, 0x91, 0x67, 0x80, 0x18, +0x0D, 0x28, 0x04, 0x93, 0x48, 0x23, 0x4C, 0xE8, +0x03, 0x70, 0x08, 0x60, 0x30, 0xF0, 0x20, 0x6C, +0x85, 0xF4, 0x00, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x00, 0x6A, 0x7B, 0x10, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, 0x1C, 0x6C, +0x04, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF3, 0x1C, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, +0x14, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x08, 0xF1, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0x1C, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, +0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF5, 0xA8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF2, 0x0C, 0x69, 0x91, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x83, 0xF6, +0xB8, 0x9B, 0x00, 0x6E, 0x3C, 0x10, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, +0x1C, 0x6C, 0x04, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0x1C, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF5, 0x14, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0x1C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF5, 0x04, 0x4B, 0xA0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, -0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF3, 0x1C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF2, 0x04, 0x6C, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, -0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, -0x0C, 0x69, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x91, 0x67, 0x83, 0xF6, 0xA8, 0x9B, 0x00, 0x6E, -0x3C, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, -0x44, 0x98, 0x21, 0xF0, 0x1C, 0x6C, 0x04, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF3, 0x1C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x91, 0x67, 0x03, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, 0x04, 0x4B, -0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, -0x00, 0x6C, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF3, 0x1C, 0x4B, 0xA0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x04, 0x6C, -0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF5, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF2, 0x0C, 0x69, 0x91, 0x67, 0x01, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x83, 0xF6, 0xA8, 0x9B, 0x91, 0x67, -0x01, 0x6E, 0x40, 0xEA, 0x01, 0x6A, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, -0xFF, 0x6A, 0xCC, 0xEA, 0x08, 0xD2, 0x0E, 0xD4, -0x0F, 0xD5, 0x11, 0xD7, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF2, 0x54, 0x9A, 0x64, 0x9C, 0x6C, 0xEA, -0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, -0x20, 0x6D, 0xA5, 0xF4, 0x08, 0x4C, 0x22, 0xF6, -0x0C, 0x4D, 0x80, 0x18, 0x39, 0x43, 0x0F, 0x93, -0x02, 0x5B, 0x03, 0x60, 0x08, 0x94, 0x54, 0x5C, -0x12, 0x61, 0x0E, 0x94, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF2, 0x54, 0x9A, 0x64, 0x9C, 0xFF, 0x69, -0x6C, 0xEA, 0x80, 0xF0, 0x15, 0x22, 0x0F, 0x95, -0x30, 0xF0, 0x20, 0x6C, 0xA5, 0xF4, 0x14, 0x4C, -0x80, 0x18, 0x39, 0x43, 0x8D, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x03, 0xF2, -0x14, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x63, 0xF4, 0x1C, 0x69, 0x91, 0x67, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF6, -0xAC, 0x9A, 0xC0, 0xF3, 0x64, 0x98, 0x08, 0x96, -0x91, 0x67, 0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF2, 0x14, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, -0xE5, 0xF5, 0x08, 0x6C, 0xFF, 0x6D, 0x80, 0x18, -0x35, 0x25, 0x00, 0xF6, 0x40, 0x31, 0x00, 0xF6, -0x23, 0x31, 0x40, 0x6A, 0x2C, 0xEA, 0x03, 0x22, -0x80, 0x6A, 0x4B, 0xEA, 0x4D, 0xE9, 0x11, 0x94, -0x0B, 0x74, 0x10, 0x61, 0x0F, 0x93, 0xA3, 0xF0, -0x00, 0x6A, 0x06, 0xD2, 0x05, 0xF1, 0x00, 0x4A, -0x07, 0xD2, 0x9D, 0x67, 0x68, 0x32, 0x49, 0xE4, -0x8C, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF6, -0xB0, 0x9A, 0x13, 0x10, 0x11, 0x92, 0x00, 0x68, -0x0C, 0x72, 0x13, 0x61, 0x0F, 0x93, 0xE3, 0xF0, -0x08, 0x6A, 0x04, 0xD2, 0x05, 0xF1, 0x00, 0x4A, -0x05, 0xD2, 0x9D, 0x67, 0x68, 0x32, 0x49, 0xE4, -0x88, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF6, -0xB4, 0x9A, 0x80, 0x18, 0x35, 0x25, 0xFF, 0x68, -0x4C, 0xE8, 0x0E, 0x94, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF2, 0x54, 0x9A, 0x64, 0x9C, 0x6C, 0xEA, -0x08, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xC5, 0xF4, -0x0C, 0x4C, 0xB1, 0x67, 0xD0, 0x67, 0x80, 0x18, -0x39, 0x43, 0x21, 0xE0, 0x00, 0x50, 0x00, 0x69, -0x02, 0x61, 0xFF, 0x69, 0x0C, 0xE9, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x44, 0x9A, 0x03, 0xF2, 0xB4, 0x9B, 0x63, 0xF4, -0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x0E, 0x94, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x54, 0x9A, -0x64, 0x9C, 0x6C, 0xEA, 0x09, 0x22, 0x0F, 0x95, -0x08, 0x96, 0x30, 0xF0, 0x20, 0x6C, 0xC5, 0xF4, -0x1C, 0x4C, 0xF1, 0x67, 0x80, 0x18, 0x39, 0x43, -0x51, 0x67, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, -0x07, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0x00, 0xF6, 0xA0, 0x35, -0x00, 0xF6, 0xC0, 0x36, 0x00, 0xF6, 0xE0, 0x37, -0x00, 0xF6, 0xA3, 0x35, 0x00, 0xF6, 0xC3, 0x36, -0x00, 0xF6, 0xE3, 0x37, 0x05, 0xD5, 0x06, 0xD6, -0x07, 0xD7, 0x5D, 0x67, 0x40, 0xF0, 0x48, 0x82, -0x7D, 0x67, 0x24, 0x67, 0x08, 0xD2, 0x40, 0xF0, -0x6C, 0xA3, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, -0x54, 0x9A, 0x04, 0xD3, 0x64, 0x9C, 0x6C, 0xEA, -0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, -0x20, 0x6D, 0xA5, 0xF4, 0x08, 0x4C, 0x42, 0xF6, -0x0C, 0x4D, 0x80, 0x18, 0x39, 0x43, 0x20, 0xF0, -0x4F, 0xA1, 0x0E, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF2, 0x54, 0x9A, 0x64, 0x99, 0x6C, 0xEA, -0x5F, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xE5, 0xF4, -0x1C, 0x4C, 0x80, 0x18, 0x39, 0x43, 0x58, 0x10, -0x04, 0x92, 0x40, 0x5A, 0x10, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF2, 0x74, 0x9A, 0x44, 0x99, -0x4C, 0xEB, 0x00, 0x6A, 0x4E, 0x23, 0x30, 0xF0, -0x20, 0x6C, 0x05, 0xF5, 0x18, 0x4C, 0x80, 0x18, -0x39, 0x43, 0x00, 0x6A, 0x46, 0x10, 0x83, 0xF4, -0x10, 0x68, 0x90, 0x67, 0x10, 0xF0, 0x00, 0x6D, -0x80, 0x18, 0x35, 0x25, 0x09, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x90, 0x67, -0x10, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0x06, 0x90, 0x05, 0x93, 0x7F, 0x6A, 0x4C, 0xE8, -0x4C, 0xEB, 0x00, 0x30, 0x6D, 0xE8, 0x07, 0x93, -0x04, 0x6C, 0x8B, 0xEC, 0x4C, 0xEB, 0x60, 0x33, -0x60, 0x33, 0x6D, 0xE8, 0x08, 0x93, 0x01, 0x6D, -0xAB, 0xED, 0x6C, 0xEA, 0x00, 0xF6, 0x40, 0x32, -0x4D, 0xE8, 0x04, 0x92, 0xFF, 0xF7, 0x1F, 0x6B, -0xD0, 0x67, 0x4C, 0xEC, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x07, 0xF2, 0x00, 0x4C, -0x6C, 0xEC, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF2, 0x54, 0x9A, 0x64, 0x99, 0x6C, 0xEA, -0x0B, 0x22, 0x04, 0x95, 0x30, 0xF0, 0x20, 0x6C, -0x25, 0xF5, 0x0C, 0x4C, 0xC5, 0x67, 0x07, 0xF2, -0x00, 0x4E, 0xF0, 0x67, 0x80, 0x18, 0x39, 0x43, -0x01, 0x6A, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, -0x07, 0x63, 0x00, 0xEF, 0xF8, 0x63, 0x0F, 0x62, -0x0E, 0xD1, 0x0D, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x12, 0xD6, 0x13, 0xD7, 0xA3, 0xF2, 0x54, 0x9A, -0x64, 0x9C, 0xFF, 0x69, 0x04, 0x67, 0x6C, 0xEA, -0xAC, 0xE9, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, -0x30, 0xF0, 0x20, 0x6D, 0xA5, 0xF4, 0x08, 0x4C, -0x62, 0xF6, 0x10, 0x4D, 0x80, 0x18, 0x39, 0x43, -0x20, 0xF0, 0x4F, 0xA0, 0x0E, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF2, 0x54, 0x9A, 0x64, 0x98, -0x6C, 0xEA, 0x7E, 0x22, 0x30, 0xF0, 0x20, 0x6C, -0xE5, 0xF4, 0x1C, 0x4C, 0x80, 0x18, 0x39, 0x43, -0x77, 0x10, 0x12, 0x92, 0x02, 0x5A, 0x11, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x74, 0x9A, -0x44, 0x98, 0x4C, 0xEB, 0x00, 0x6A, 0x6D, 0x23, -0x12, 0x95, 0x30, 0xF0, 0x20, 0x6C, 0xA5, 0xF4, -0x14, 0x4C, 0x80, 0x18, 0x39, 0x43, 0x00, 0x6A, -0x64, 0x10, 0x83, 0xF4, 0x10, 0x6C, 0x10, 0xF0, -0x00, 0x6D, 0x80, 0x18, 0x35, 0x25, 0x0A, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, -0x83, 0xF4, 0x10, 0x6C, 0x10, 0xF0, 0x00, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0x13, 0x93, 0x0B, 0x73, -0x27, 0x61, 0x12, 0x93, 0xA3, 0xF0, 0x00, 0x6A, -0x08, 0xD2, 0x05, 0xF1, 0x00, 0x4A, 0x09, 0xD2, -0x68, 0x32, 0x06, 0x03, 0x4D, 0xE3, 0x0A, 0xD3, -0x84, 0xAB, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, 0x83, 0xF6, -0xB0, 0x9B, 0xD1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF2, 0x54, 0x9A, 0x64, 0x98, -0x6C, 0xEA, 0x32, 0x22, 0x0A, 0x92, 0x30, 0xF0, -0x20, 0x6C, 0x45, 0xF5, 0x0C, 0x4C, 0xE2, 0x9A, -0x12, 0x95, 0x04, 0xD1, 0x0B, 0x6E, 0x26, 0x10, -0x12, 0x93, 0xE3, 0xF0, 0x08, 0x6A, 0x06, 0xD2, -0x05, 0xF1, 0x00, 0x4A, 0x07, 0xD2, 0x68, 0x32, -0x06, 0x03, 0x4D, 0xE3, 0x0B, 0xD3, 0x80, 0xAB, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x9A, 0x83, 0xF6, 0xB4, 0x9B, -0xD1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF2, 0x54, 0x9A, 0x64, 0x98, 0x6C, 0xEA, -0x0B, 0x22, 0x0B, 0x92, 0x12, 0x95, 0x13, 0x96, -0x30, 0xF0, 0x20, 0x6C, 0xE0, 0x9A, 0x45, 0xF5, -0x0C, 0x4C, 0x04, 0xD1, 0x80, 0x18, 0x39, 0x43, -0x01, 0x6A, 0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, -0x08, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x0C, 0xD4, 0x25, 0x67, -0xA0, 0xA5, 0x00, 0x6E, 0x0B, 0x6F, 0x80, 0x18, -0x6D, 0x59, 0x0C, 0x94, 0xA1, 0xA1, 0x01, 0x6E, -0x0B, 0x6F, 0x80, 0x18, 0x6D, 0x59, 0x0C, 0x94, -0xA2, 0xA1, 0x00, 0x6E, 0x0C, 0x6F, 0x80, 0x18, -0x6D, 0x59, 0x0C, 0x94, 0xA3, 0xA1, 0x01, 0x6E, -0x0C, 0x6F, 0x80, 0x18, 0x6D, 0x59, 0xFD, 0x6A, -0x00, 0x6B, 0x11, 0x67, 0x06, 0xD2, 0x07, 0xD3, -0x07, 0x93, 0x03, 0x6A, 0x6C, 0xEA, 0x03, 0x72, -0x0A, 0x61, 0x44, 0x80, 0xA1, 0x80, 0xC2, 0x80, -0xE3, 0x80, 0x0C, 0x94, 0x04, 0xD2, 0x06, 0x92, -0x05, 0xD2, 0x80, 0x18, 0x1F, 0x59, 0x06, 0x92, -0x07, 0x93, 0x01, 0x48, 0x01, 0x4A, 0x06, 0xD2, -0x01, 0x4B, 0x07, 0xD3, 0x06, 0x93, 0xFF, 0x6A, -0x4C, 0xEB, 0x07, 0x92, 0x06, 0xD3, 0x1C, 0x72, -0xE3, 0x61, 0x11, 0x67, 0x29, 0x69, 0x43, 0x41, -0x03, 0x6B, 0x6C, 0xEA, 0x03, 0x72, 0x0D, 0x61, -0x20, 0xF0, 0xAD, 0x80, 0x20, 0xF0, 0xCE, 0x80, -0x20, 0xF0, 0xEF, 0x80, 0x20, 0xF0, 0x50, 0x80, -0x0C, 0x94, 0x05, 0xD1, 0x04, 0xD2, 0x80, 0x18, -0x1F, 0x59, 0x01, 0x49, 0x3D, 0x71, 0x01, 0x48, -0xEA, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x0C, 0xD4, 0x0D, 0xD5, 0x0F, 0xD7, 0xA3, 0xF2, -0x54, 0x9A, 0x64, 0x9C, 0x06, 0x67, 0x6C, 0xEA, -0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, -0x20, 0x6D, 0xA5, 0xF4, 0x08, 0x4C, 0xA2, 0xF6, -0x14, 0x4D, 0x80, 0x18, 0x39, 0x43, 0x07, 0xF4, -0x00, 0x6A, 0x06, 0xD2, 0x02, 0xF0, 0x00, 0x4A, -0x07, 0xD2, 0xFF, 0x69, 0x30, 0xF0, 0x20, 0x6A, -0x0D, 0x93, 0x0C, 0xE9, 0x63, 0xF3, 0x04, 0x9A, -0x0F, 0x92, 0x28, 0x34, 0x10, 0x96, 0x4C, 0xE8, -0x68, 0x32, 0x7D, 0x67, 0x49, 0xE3, 0x46, 0x9A, -0xFF, 0xF7, 0x1F, 0x6B, 0xB0, 0x67, 0x51, 0xE4, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, -0x6C, 0xEC, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, 0x40, 0xEA, -0x0C, 0x94, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, -0x54, 0x9A, 0x64, 0x9C, 0x6C, 0xEA, 0x0A, 0x22, -0x0D, 0x95, 0x10, 0x97, 0x30, 0xF0, 0x20, 0x6C, -0x65, 0xF5, 0x10, 0x4C, 0xD1, 0x67, 0x04, 0xD0, -0x80, 0x18, 0x39, 0x43, 0x0B, 0x97, 0x0A, 0x91, -0x09, 0x90, 0x01, 0x6A, 0x06, 0x63, 0x00, 0xEF, -0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x0F, 0xD5, 0x11, 0xD7, -0xA3, 0xF2, 0x54, 0x9A, 0x64, 0x9C, 0x04, 0x67, -0x26, 0x67, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0xA5, 0xF4, -0x08, 0x4C, 0xC2, 0xF6, 0x1C, 0x4D, 0x80, 0x18, -0x39, 0x43, 0x0F, 0x92, 0x02, 0x5A, 0x16, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x54, 0x9A, -0x64, 0x98, 0x6C, 0xEA, 0x04, 0x2A, 0x01, 0x6B, -0x6B, 0xEB, 0x08, 0xD3, 0x39, 0x10, 0x0F, 0x95, -0x30, 0xF0, 0x20, 0x6C, 0xA5, 0xF4, 0x14, 0x4C, -0x80, 0x18, 0x39, 0x43, 0x01, 0x6A, 0x4B, 0xEA, -0x08, 0xD2, 0x2E, 0x10, 0x07, 0xF4, 0x00, 0x6A, -0x06, 0xD2, 0xFF, 0x6B, 0x02, 0xF0, 0x00, 0x4A, -0x2C, 0xEB, 0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0x24, 0x9A, 0x09, 0xD3, 0x11, 0x92, -0x68, 0x34, 0x0F, 0x93, 0x4C, 0xE9, 0xB1, 0x67, -0x68, 0x32, 0x7D, 0x67, 0x49, 0xE3, 0x46, 0x9A, -0x51, 0xE4, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEC, -0x80, 0x18, 0x35, 0x25, 0x08, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF2, 0x54, 0x9A, 0x64, 0x98, -0x6C, 0xEA, 0x0A, 0x22, 0x0F, 0x95, 0x09, 0x96, -0x08, 0x97, 0x30, 0xF0, 0x20, 0x6C, 0x85, 0xF5, -0x18, 0x4C, 0x04, 0xD1, 0x80, 0x18, 0x39, 0x43, -0x08, 0x92, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, -0x07, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x20, 0xF0, 0x44, 0xA4, -0x25, 0x67, 0x18, 0x6E, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF3, 0xE4, 0x9A, 0x00, 0x6D, -0x04, 0x67, 0x80, 0x18, 0x1A, 0x5A, 0x05, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x54, 0x9A, -0x64, 0x98, 0x6C, 0xEA, 0x0B, 0x22, 0x20, 0xF0, -0xAA, 0xA0, 0x20, 0xF0, 0xCD, 0xA0, 0x04, 0x97, -0x30, 0xF0, 0x20, 0x6C, 0xA5, 0xF5, 0x1C, 0x4C, -0x80, 0x18, 0x39, 0x43, 0x04, 0x93, 0xFF, 0x6A, -0xEB, 0x4B, 0x4C, 0xEB, 0x02, 0x5B, 0x50, 0x60, -0x05, 0x93, 0x6C, 0xEA, 0x0F, 0x5A, 0x58, 0x67, -0x01, 0x5A, 0x58, 0x67, 0x4B, 0xEA, 0x4C, 0xE9, -0x01, 0x71, 0x12, 0x60, 0x05, 0x21, 0x02, 0x71, -0x23, 0x60, 0x03, 0x71, 0x2D, 0x60, 0x40, 0x10, -0x30, 0xF0, 0x20, 0x68, 0xFF, 0xF7, 0x1F, 0x69, -0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF0, 0x00, 0x6C, -0xB1, 0x67, 0x6E, 0xF7, 0x10, 0x6E, 0x0B, 0x10, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0xFF, 0xF7, 0x1F, 0x69, 0x43, 0xF0, 0x00, 0x6C, -0xB1, 0x67, 0x04, 0xF3, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x48, 0xF1, 0x04, 0x6C, -0xB1, 0x67, 0x6E, 0xF0, 0x17, 0x6E, 0x1F, 0x10, -0x30, 0xF0, 0x20, 0x68, 0xFF, 0xF7, 0x1F, 0x69, -0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF0, 0x00, 0x6C, -0xB1, 0x67, 0x6E, 0xF7, 0x10, 0x6E, 0x0B, 0x10, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0xFF, 0xF7, 0x1F, 0x69, 0x43, 0xF0, 0x00, 0x6C, -0xB1, 0x67, 0x04, 0xF3, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x48, 0xF1, 0x04, 0x6C, -0xB1, 0x67, 0x24, 0xF0, 0x10, 0x6E, 0x40, 0xEA, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x10, 0xD6, 0x11, 0xD7, 0xA3, 0xF2, 0x54, 0x9A, -0x64, 0x9C, 0x04, 0x67, 0x25, 0x67, 0x6C, 0xEA, -0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, -0x20, 0x6D, 0xA5, 0xF4, 0x08, 0x4C, 0x82, 0xF6, -0x14, 0x4D, 0x80, 0x18, 0x39, 0x43, 0x02, 0x59, -0x0F, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, -0x54, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x6D, 0x22, -0x30, 0xF0, 0x20, 0x6C, 0xE5, 0xF5, 0x1C, 0x4C, -0xB1, 0x67, 0x80, 0x18, 0x39, 0x43, 0x65, 0x10, -0x10, 0x92, 0x09, 0x22, 0x12, 0x94, 0x11, 0x97, -0xB1, 0x67, 0x04, 0xD4, 0xC2, 0x67, 0x90, 0x67, -0x80, 0x18, 0xEF, 0x59, 0x5B, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF3, 0xE4, 0x9A, 0x11, 0x92, -0x00, 0x6C, 0x08, 0xD4, 0xEC, 0xEA, 0xEA, 0xEA, -0x09, 0xD2, 0x1C, 0x60, 0x90, 0x67, 0xB1, 0x67, -0x00, 0x6E, 0x80, 0x18, 0x1A, 0x5A, 0x08, 0xD2, -0x01, 0x4A, 0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF2, 0x54, 0x9A, 0x64, 0x98, 0x6C, 0xEA, -0x40, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x05, 0xF6, -0x10, 0x4C, 0x80, 0x18, 0x39, 0x43, 0x39, 0x10, -0x09, 0x94, 0x08, 0x95, 0x12, 0x96, 0x80, 0x18, -0x4B, 0x55, 0x12, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x64, 0x9A, 0x03, 0xF0, 0x08, 0x6A, -0x06, 0xD2, 0x05, 0xF1, 0x00, 0x4A, 0x07, 0xD2, -0x9D, 0x67, 0x28, 0x32, 0x49, 0xE4, 0x8C, 0xAA, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0xC4, 0x9A, -0x12, 0x92, 0x01, 0x6D, 0xAB, 0xED, 0x4C, 0xEE, -0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, -0x54, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x0D, 0x22, -0x08, 0x94, 0x09, 0x92, 0x12, 0x97, 0x04, 0xD4, -0x30, 0xF0, 0x20, 0x6C, 0x25, 0xF6, 0x0C, 0x4C, -0xB1, 0x67, 0x00, 0x6E, 0x05, 0xD2, 0x80, 0x18, -0x39, 0x43, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x0D, 0x6C, 0x40, 0xEA, 0x01, 0x6A, -0x01, 0x10, 0x00, 0x6A, 0x0D, 0x97, 0x0C, 0x91, -0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x00, 0x6D, 0x0A, 0xD4, 0x80, 0x18, 0x32, 0x55, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0x38, 0x9A, -0x30, 0xF0, 0x21, 0x68, 0x12, 0xF5, 0x08, 0x48, -0x00, 0x6A, 0x90, 0x67, 0xF1, 0x67, 0xA2, 0x67, -0xBC, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, -0x90, 0x67, 0xF1, 0x67, 0x01, 0x6A, 0x00, 0x6D, -0xBC, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, -0x00, 0x6A, 0xF1, 0x67, 0x90, 0x67, 0xBC, 0x6E, -0xA2, 0x67, 0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, -0x0A, 0x94, 0x01, 0x6D, 0x80, 0x18, 0x32, 0x55, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0x25, 0x67, -0x0C, 0xE9, 0x29, 0x59, 0xCC, 0xE8, 0x03, 0x61, -0x17, 0x58, 0x03, 0x60, 0x08, 0x10, 0x17, 0x58, -0x06, 0x60, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF4, -0x1C, 0x6C, 0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, -0x65, 0xF6, 0x04, 0x4C, 0xE2, 0xF6, 0x1C, 0x4D, -0xD1, 0x67, 0xF0, 0x67, 0x80, 0x18, 0x39, 0x43, -0x00, 0x6A, 0xE4, 0x17, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, -0xC0, 0xF3, 0x44, 0x99, 0xFF, 0x6D, 0x83, 0xF4, -0x10, 0x6C, 0x01, 0x4D, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0x18, 0x9A, -0x00, 0x6C, 0x01, 0x6E, 0xB0, 0x67, 0x80, 0x18, -0xC2, 0x25, 0x00, 0x6C, 0xB0, 0x67, 0xC4, 0x67, -0x80, 0x18, 0xC2, 0x25, 0xB0, 0x67, 0x00, 0x6C, -0x01, 0x6E, 0x80, 0x18, 0xC2, 0x25, 0xC0, 0xF3, -0x44, 0x99, 0xFF, 0x6D, 0x83, 0xF4, 0x10, 0x6C, -0x01, 0x4D, 0x01, 0x6E, 0x40, 0xEA, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x52, 0x9C, -0x40, 0xA2, 0x13, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF1, 0x18, 0x9A, 0x00, 0x6C, 0x01, 0x6E, -0xB0, 0x67, 0x80, 0x18, 0xC2, 0x25, 0x00, 0x6C, -0xC4, 0x67, 0xB0, 0x67, 0x80, 0x18, 0xC2, 0x25, -0x00, 0x6C, 0xB0, 0x67, 0x01, 0x6E, 0x80, 0x18, -0xC2, 0x25, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x09, 0xD5, 0xA3, 0xF2, 0x54, 0x9A, 0x64, 0x9C, -0x04, 0x67, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0xA5, 0xF4, -0x08, 0x4C, 0x82, 0xF5, 0x0C, 0x4D, 0x80, 0x18, -0x39, 0x43, 0x90, 0x67, 0x80, 0x18, 0x31, 0x57, -0x52, 0x98, 0x40, 0xA2, 0x04, 0x22, 0x90, 0x67, -0x01, 0x6D, 0x80, 0x18, 0x05, 0x57, 0x20, 0xF0, -0x58, 0xA0, 0x04, 0x22, 0x90, 0x67, 0xE0, 0xF3, -0x1F, 0x6D, 0x02, 0x10, 0x90, 0x67, 0x00, 0x6D, -0x30, 0xF0, 0x20, 0x69, 0x80, 0x18, 0x13, 0x57, -0xC0, 0xF3, 0x44, 0x99, 0x03, 0x6D, 0xC5, 0x67, -0x03, 0xF0, 0x0C, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF2, 0x14, 0x4B, 0xA0, 0x9B, -0xC0, 0xF3, 0x44, 0x99, 0x03, 0xF0, 0x0C, 0x6C, -0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, -0x03, 0x6D, 0xC5, 0x67, 0x08, 0xF1, 0x0C, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF2, -0x14, 0x4B, 0xC0, 0xF3, 0x44, 0x99, 0xA0, 0x9B, -0x08, 0xF1, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0x09, 0x92, 0x14, 0x2A, 0xC0, 0xF3, 0x44, 0x99, -0x23, 0xF4, 0x1C, 0x6C, 0x03, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF2, -0x14, 0x4B, 0x44, 0x98, 0x60, 0x9B, 0x6C, 0xEA, -0x2F, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xA5, 0xF6, -0x04, 0x4C, 0x16, 0x10, 0x09, 0x92, 0x01, 0x72, -0x16, 0x61, 0xC0, 0xF3, 0x44, 0x99, 0x03, 0x6D, -0x23, 0xF4, 0x1C, 0x6C, 0xC5, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF2, 0x14, 0x4B, -0x44, 0x98, 0x60, 0x9B, 0x6C, 0xEA, 0x18, 0x22, -0x30, 0xF0, 0x20, 0x6C, 0xC5, 0xF6, 0x10, 0x4C, -0x80, 0x18, 0x39, 0x43, 0x11, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF2, 0x14, 0x4A, 0x40, 0x9A, -0x64, 0x98, 0x4C, 0xEB, 0x00, 0x6A, 0x0C, 0x23, -0x30, 0xF0, 0x20, 0x6C, 0xE5, 0xF6, 0x1C, 0x4C, -0x80, 0x18, 0x39, 0x43, 0x00, 0x6A, 0x04, 0x10, -0x90, 0x67, 0x80, 0x18, 0x1E, 0x5B, 0x01, 0x6A, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, -0x06, 0xD2, 0x10, 0xD6, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF2, 0x54, 0x9A, 0x64, 0x9C, 0x04, 0x67, -0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, -0x30, 0xF0, 0x20, 0x6D, 0xA5, 0xF4, 0x08, 0x4C, -0xA2, 0xF5, 0x10, 0x4D, 0x80, 0x18, 0x39, 0x43, -0x20, 0xF0, 0x4F, 0xA0, 0x10, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF2, 0x74, 0x9A, 0x44, 0x98, -0x4C, 0xEB, 0x01, 0x6A, 0x40, 0xF2, 0x0D, 0x23, -0x30, 0xF0, 0x20, 0x6C, 0x05, 0xF7, 0x0C, 0x4C, -0x80, 0x18, 0x39, 0x43, 0x43, 0x12, 0x10, 0x93, -0x07, 0x5B, 0x0B, 0x60, 0x01, 0x73, 0x03, 0x61, -0x06, 0x92, 0x03, 0x5A, 0x05, 0x10, 0x10, 0x93, -0x02, 0x73, 0x10, 0x61, 0x06, 0x92, 0x05, 0x5A, -0x0D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, -0x54, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x20, 0xF2, -0x0F, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x25, 0xF7, -0x0C, 0x4C, 0x0E, 0x12, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0xE4, 0x9A, 0x90, 0x67, 0x00, 0x6D, -0x18, 0x6E, 0x80, 0x18, 0x1A, 0x5A, 0x06, 0xF0, -0x01, 0x6B, 0x6B, 0xEB, 0x09, 0xD2, 0x6C, 0xEA, -0x07, 0xD2, 0x10, 0x92, 0x07, 0x5A, 0x60, 0xF1, -0x0E, 0x60, 0x48, 0x33, 0x30, 0xF0, 0x20, 0x6A, -0x62, 0xF5, 0x10, 0x4A, 0x69, 0xE2, 0x40, 0x9A, -0x00, 0xEA, 0x10, 0x93, 0x05, 0x73, 0x25, 0x61, -0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, -0x01, 0xF0, 0x10, 0x6C, 0xE7, 0xF7, 0x10, 0x6D, -0xA0, 0xF2, 0x0B, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x99, 0xA1, 0xF1, 0x10, 0x6C, 0xDF, 0xF7, -0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x99, 0xA1, 0xF1, 0x14, 0x6C, 0x00, 0xF7, -0x00, 0x6D, 0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, -0x14, 0x6C, 0x83, 0xF6, 0xBC, 0x9B, 0x04, 0x6E, -0x4E, 0x10, 0x10, 0x92, 0x06, 0x72, 0x25, 0x61, -0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, -0x01, 0xF0, 0x10, 0x6C, 0xE7, 0xF7, 0x10, 0x6D, -0xA0, 0xF2, 0x0B, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x99, 0xA1, 0xF1, 0x10, 0x6C, 0xDF, 0xF7, -0x00, 0x6D, 0x02, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x99, 0xA1, 0xF1, 0x14, 0x6C, 0x00, 0xF7, -0x00, 0x6D, 0x06, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, -0x14, 0x6C, 0x83, 0xF6, 0xBC, 0x9B, 0x05, 0x6E, -0x26, 0x10, 0x10, 0x93, 0x25, 0x2B, 0x30, 0xF0, -0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0xF0, -0x10, 0x6C, 0xE7, 0xF7, 0x10, 0x6D, 0x80, 0xF1, -0x1B, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, -0xA1, 0xF1, 0x10, 0x6C, 0xDF, 0xF7, 0x00, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, -0xA1, 0xF1, 0x14, 0x6C, 0x00, 0xF7, 0x00, 0x6D, -0x07, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x99, 0x83, 0xF6, 0xBC, 0x9B, -0xA1, 0xF1, 0x14, 0x6C, 0x06, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, -0xA1, 0xF1, 0x10, 0x6C, 0x0F, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0x07, 0x93, 0x06, 0xF0, 0x00, 0x6A, -0xA1, 0xF4, 0x1C, 0x6C, 0x4D, 0xEB, 0x07, 0xD3, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, 0xAC, 0x9B, -0xC0, 0xF3, 0x44, 0x99, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0xB4, 0x9B, -0xC0, 0xF3, 0x44, 0x99, 0xA3, 0xF2, 0x1C, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF1, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x99, -0xE3, 0xF2, 0x08, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x99, 0xE3, 0xF2, 0x0C, 0x6C, -0x0F, 0x6D, 0x06, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x99, 0x81, 0xF0, 0x0C, 0x6C, 0x1E, 0xF0, -0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x53, 0x98, -0x18, 0x6B, 0x40, 0xA2, 0x08, 0xD3, 0xC0, 0xF0, -0x01, 0x2A, 0x90, 0x67, 0x05, 0x6D, 0x80, 0x18, -0x0D, 0x56, 0x90, 0x67, 0x06, 0x6D, 0x80, 0x18, -0x1C, 0x56, 0x18, 0x6A, 0xB6, 0x10, 0x06, 0x93, -0x01, 0x73, 0x09, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF2, 0x00, 0x6C, -0x10, 0x6D, 0x01, 0x6E, 0x08, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF2, -0x00, 0x6C, 0x10, 0x6D, 0x00, 0x6E, 0x30, 0xF0, -0x20, 0x69, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, -0xA1, 0xF1, 0x10, 0x6C, 0x0F, 0x6D, 0x05, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, -0x10, 0x6C, 0xC0, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0x06, 0x92, 0x06, 0x93, 0xA1, 0xF1, 0x10, 0x6C, -0x50, 0x36, 0xC0, 0xF3, 0x44, 0x99, 0x6D, 0xEE, -0x1F, 0xF7, 0x00, 0x6D, 0x40, 0xEA, 0x07, 0x93, -0x04, 0xF0, 0x00, 0x6A, 0xA1, 0xF4, 0x1C, 0x6C, -0x4D, 0xEB, 0x07, 0xD3, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF2, 0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x99, -0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF1, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x99, -0xA3, 0xF2, 0x1C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0xB4, 0x9B, -0xC0, 0xF3, 0x44, 0x99, 0xE3, 0xF2, 0x08, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, -0xE3, 0xF2, 0x0C, 0x6C, 0x0F, 0x6D, 0x08, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x81, 0xF0, -0x0C, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, 0x01, 0x6E, -0x40, 0xEA, 0x53, 0x98, 0x10, 0x6B, 0x40, 0xA2, -0x08, 0xD3, 0x50, 0x2A, 0x90, 0x67, 0x04, 0x6D, -0x80, 0x18, 0x0D, 0x56, 0x90, 0x67, 0x00, 0x6D, -0x80, 0x18, 0x1C, 0x56, 0x10, 0x6A, 0x45, 0x10, -0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, -0xA1, 0xF1, 0x10, 0x6C, 0x0F, 0x6D, 0x0A, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, -0x10, 0x6C, 0xC0, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0x06, 0x93, 0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, -0x10, 0x6C, 0x70, 0x36, 0x6D, 0xEE, 0x1F, 0xF7, -0x00, 0x6D, 0x40, 0xEA, 0x07, 0x93, 0x02, 0xF0, -0x00, 0x6A, 0xA1, 0xF4, 0x1C, 0x6C, 0x4D, 0xEB, -0x07, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, -0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x81, 0xF0, -0x0C, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, 0x06, 0x6E, -0x40, 0xEA, 0x08, 0x6A, 0x12, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x64, 0x98, 0xA3, 0xF2, 0x54, 0x9A, -0x6C, 0xEA, 0x00, 0x6B, 0x08, 0xD3, 0x0A, 0x22, -0x10, 0x95, 0x06, 0x96, 0x30, 0xF0, 0x20, 0x6C, -0x45, 0xF7, 0x14, 0x4C, 0x80, 0x18, 0x39, 0x43, -0x00, 0x6A, 0x08, 0xD2, 0x30, 0xF0, 0x21, 0x69, -0x12, 0xF5, 0x08, 0x49, 0x90, 0x67, 0x00, 0x6D, -0x80, 0x18, 0x32, 0x55, 0x01, 0x6B, 0x91, 0x67, -0x00, 0x6D, 0xEE, 0x6E, 0x04, 0x6F, 0x04, 0xD3, -0x80, 0x18, 0x8D, 0x5A, 0x12, 0x6A, 0x91, 0x67, -0x00, 0x6D, 0x33, 0x6E, 0x1F, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0x8D, 0x5A, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0x04, 0x4A, 0x08, 0x93, 0xE0, 0x9A, -0x91, 0x67, 0x00, 0x6D, 0x3F, 0x6E, 0x04, 0xD3, -0x80, 0x18, 0x8D, 0x5A, 0x00, 0x6B, 0xA3, 0x67, -0x91, 0x67, 0xEE, 0x6E, 0x04, 0x6F, 0x04, 0xD3, -0x80, 0x18, 0x8D, 0x5A, 0x01, 0x6A, 0x91, 0x67, -0xA2, 0x67, 0xEE, 0x6E, 0x04, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0x8D, 0x5A, 0x12, 0x6B, 0x91, 0x67, -0x01, 0x6D, 0x33, 0x6E, 0x1F, 0x6F, 0x04, 0xD3, -0x80, 0x18, 0x8D, 0x5A, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF3, 0x04, 0x4B, 0xE0, 0x9B, 0x08, 0x92, -0x91, 0x67, 0x01, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0x8D, 0x5A, 0x00, 0x6A, 0x91, 0x67, -0x01, 0x6D, 0xEE, 0x6E, 0x04, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0x8D, 0x5A, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0x04, 0x4A, 0x07, 0x93, 0xE0, 0x9A, -0x91, 0x67, 0x00, 0x6D, 0x18, 0x6E, 0x04, 0xD3, -0x80, 0x18, 0x8D, 0x5A, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0x04, 0x4A, 0x07, 0x93, 0xE0, 0x9A, -0x91, 0x67, 0x01, 0x6D, 0x18, 0x6E, 0x04, 0xD3, -0x80, 0x18, 0x8D, 0x5A, 0x90, 0x67, 0x01, 0x6D, -0x80, 0x18, 0x32, 0x55, 0x09, 0x92, 0x01, 0x4A, -0x10, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, -0x54, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x20, 0x22, -0x30, 0xF0, 0x20, 0x6C, 0x65, 0xF7, 0x1C, 0x4C, -0x10, 0x95, 0x06, 0x96, 0x80, 0x18, 0x39, 0x43, -0x17, 0x10, 0x90, 0x67, 0x80, 0x18, 0x5B, 0x58, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x54, 0x9A, -0x64, 0x98, 0x6C, 0xEA, 0x08, 0x22, 0x10, 0x95, -0x06, 0x96, 0x30, 0xF0, 0x20, 0x6C, 0xC5, 0xF7, -0x0C, 0x4C, 0x80, 0x18, 0x39, 0x43, 0x90, 0x67, -0x80, 0x18, 0x1E, 0x5B, 0x01, 0x6A, 0x01, 0x10, -0x00, 0x6A, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, -0x07, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x08, 0xD4, 0x09, 0xD5, -0x52, 0x9C, 0x60, 0xA2, 0x45, 0x67, 0x55, 0x2B, -0x02, 0x75, 0x29, 0x61, 0x30, 0xF0, 0x20, 0x68, -0xC0, 0xF3, 0x44, 0x98, 0xC1, 0xF4, 0x00, 0x69, -0x91, 0x67, 0xE0, 0xF7, 0x1F, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF6, -0x18, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x08, 0x49, 0x91, 0x67, 0xE0, 0xF7, -0x1F, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF6, 0x18, 0x4B, 0xC0, 0xF3, -0x44, 0x98, 0xA0, 0x9B, 0x91, 0x67, 0x01, 0x6E, -0x40, 0xEA, 0x03, 0x6A, 0x2A, 0x10, 0x30, 0xF0, -0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0xC1, 0xF4, -0x00, 0x69, 0x91, 0x67, 0xE0, 0xF7, 0x1F, 0x6D, -0x00, 0xF4, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF6, 0x18, 0x4B, 0xA0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0x49, -0x91, 0x67, 0xE0, 0xF7, 0x1F, 0x6D, 0x00, 0xF4, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF6, 0x18, 0x4B, 0xC0, 0xF3, 0x44, 0x98, -0xA0, 0x9B, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, -0x09, 0x92, 0x6F, 0x42, 0x02, 0x5B, 0x46, 0x60, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF5, 0x10, 0x69, 0x91, 0x67, 0x00, 0xF3, -0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF6, 0xA8, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0xB0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x41, 0xF4, 0x04, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF2, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x41, 0xF4, 0x14, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, 0xB8, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF4, 0x18, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF5, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x09, 0x96, 0xFD, 0xF2, 0x14, 0x49, 0x91, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x91, 0x67, 0x83, 0xF3, 0xBC, 0x9B, -0x09, 0x96, 0x47, 0x10, 0x03, 0x72, 0x46, 0x61, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF5, 0x10, 0x69, 0x91, 0x67, 0x00, 0xF3, -0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF6, 0xA8, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0xB0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x41, 0xF4, 0x04, 0x6C, -0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF2, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x41, 0xF4, 0x14, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, 0xB8, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF4, 0x18, 0x6C, -0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF5, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0xFD, 0xF2, 0x14, 0x49, 0x91, 0x67, 0x03, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x83, 0xF3, 0xBC, 0x9B, 0x91, 0x67, -0x03, 0x6E, 0x40, 0xEA, 0x08, 0x94, 0x80, 0x18, -0x1E, 0x5B, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x03, 0x75, 0x24, 0x67, -0x53, 0x60, 0x01, 0x76, 0x09, 0x61, 0x30, 0xF0, -0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, -0x00, 0x6C, 0xFF, 0x6D, 0x01, 0x6E, 0x08, 0x10, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0x21, 0xF0, 0x00, 0x6C, 0xFF, 0x6D, 0x02, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF6, -0x0C, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0x00, 0x6E, -0x2E, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, -0x44, 0x98, 0x21, 0xF0, 0x00, 0x6C, 0xFF, 0x6D, -0x31, 0x6E, 0x0A, 0x10, 0x02, 0x76, 0x12, 0x61, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0x21, 0xF0, 0x00, 0x6C, 0xFF, 0x6D, 0x32, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF6, -0x0C, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0x00, 0xF4, -0x00, 0x6E, 0x11, 0x10, 0x30, 0xF0, 0x20, 0x68, -0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, 0x00, 0x6C, -0xFF, 0x6D, 0x33, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF6, 0x0C, 0x6C, 0xFF, 0xF7, -0x1F, 0x6D, 0x00, 0xF4, 0x04, 0x6E, 0x40, 0xEA, -0x91, 0x67, 0x80, 0x18, 0x1E, 0x5B, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0x01, 0x76, 0xD0, 0x61, 0xC6, 0x17, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x01, 0x75, 0x08, 0xD4, 0x26, 0x61, 0x30, 0xF0, -0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, -0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, -0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF2, 0x0C, 0x69, 0x91, 0x67, -0x20, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF5, 0xB8, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x91, 0x67, 0x83, 0xF6, 0xA8, 0x9B, 0x00, 0x6E, -0x46, 0x10, 0x02, 0x75, 0x1D, 0x61, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x83, 0xF3, -0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, -0x04, 0x6C, 0x05, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF2, 0x0C, 0x69, 0x91, 0x67, -0x20, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, -0x83, 0xF5, 0xB8, 0x9B, 0x00, 0x6E, 0x1E, 0x10, -0x03, 0x75, 0x26, 0x61, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x68, 0x83, 0xF3, 0xBC, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x04, 0x6C, -0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF2, 0x0C, 0x69, 0x91, 0x67, 0x20, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF5, 0xB8, 0x9B, +0x03, 0xF2, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, 0xA8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x0C, 0x69, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF6, -0xA8, 0x9B, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, -0x08, 0x94, 0x80, 0x18, 0x1E, 0x5B, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x01, 0x6A, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x04, 0x67, 0x25, 0x67, -0x80, 0x18, 0x62, 0x5D, 0xB1, 0x67, 0x90, 0x67, -0x80, 0x18, 0xB7, 0x5C, 0x20, 0xF0, 0x2D, 0xC0, -0x90, 0x67, 0x80, 0x18, 0x1E, 0x5B, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x01, 0x75, -0x04, 0x67, 0x0C, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xB8, 0x9B, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0x01, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0xCC, 0xEA, +0x08, 0xD2, 0x0E, 0xD4, 0x0F, 0xD5, 0x11, 0xD7, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x58, 0x9A, +0x64, 0x9C, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0xA5, 0xF4, +0x0C, 0x4C, 0x22, 0xF6, 0x0C, 0x4D, 0x80, 0x18, +0x48, 0x43, 0x0F, 0x93, 0x02, 0x5B, 0x03, 0x60, +0x08, 0x94, 0x54, 0x5C, 0x12, 0x61, 0x0E, 0x94, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x58, 0x9A, +0x64, 0x9C, 0xFF, 0x69, 0x6C, 0xEA, 0x80, 0xF0, +0x15, 0x22, 0x0F, 0x95, 0x30, 0xF0, 0x20, 0x6C, +0xA5, 0xF4, 0x18, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x8D, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0x03, 0xF2, 0x18, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, 0x1C, 0x69, +0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF6, 0xBC, 0x9A, 0xC0, 0xF3, +0x64, 0x98, 0x08, 0x96, 0x91, 0x67, 0x40, 0xEB, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF2, 0x18, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0xE5, 0xF5, 0x08, 0x6C, +0xFF, 0x6D, 0x80, 0x18, 0x0D, 0x28, 0x00, 0xF6, +0x40, 0x31, 0x00, 0xF6, 0x23, 0x31, 0x40, 0x6A, +0x2C, 0xEA, 0x03, 0x22, 0x80, 0x6A, 0x4B, 0xEA, +0x4D, 0xE9, 0x11, 0x94, 0x0B, 0x74, 0x10, 0x61, +0x0F, 0x93, 0xA3, 0xF0, 0x00, 0x6A, 0x06, 0xD2, +0x05, 0xF1, 0x00, 0x4A, 0x07, 0xD2, 0x9D, 0x67, +0x68, 0x32, 0x49, 0xE4, 0x8C, 0xAA, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF6, 0xA0, 0x9A, 0x13, 0x10, +0x11, 0x92, 0x00, 0x68, 0x0C, 0x72, 0x13, 0x61, +0x0F, 0x93, 0xE3, 0xF0, 0x08, 0x6A, 0x04, 0xD2, +0x05, 0xF1, 0x00, 0x4A, 0x05, 0xD2, 0x9D, 0x67, +0x68, 0x32, 0x49, 0xE4, 0x88, 0xAA, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF6, 0xA4, 0x9A, 0x80, 0x18, +0x0D, 0x28, 0xFF, 0x68, 0x4C, 0xE8, 0x0E, 0x94, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x58, 0x9A, +0x64, 0x9C, 0x6C, 0xEA, 0x08, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0xC5, 0xF4, 0x10, 0x4C, 0xB1, 0x67, +0xD0, 0x67, 0x80, 0x18, 0x48, 0x43, 0x21, 0xE0, +0x00, 0x50, 0x00, 0x69, 0x02, 0x61, 0xFF, 0x69, +0x0C, 0xE9, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF2, +0xB8, 0x9B, 0x63, 0xF4, 0x1C, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x0E, 0x94, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF2, 0x58, 0x9A, 0x64, 0x9C, 0x6C, 0xEA, +0x09, 0x22, 0x0F, 0x95, 0x08, 0x96, 0x30, 0xF0, +0x20, 0x6C, 0xE5, 0xF4, 0x00, 0x4C, 0xF1, 0x67, +0x80, 0x18, 0x48, 0x43, 0x51, 0x67, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x00, 0xF6, 0xA0, 0x35, 0x00, 0xF6, 0xC0, 0x36, +0x00, 0xF6, 0xE0, 0x37, 0x00, 0xF6, 0xA3, 0x35, +0x00, 0xF6, 0xC3, 0x36, 0x00, 0xF6, 0xE3, 0x37, +0x05, 0xD5, 0x06, 0xD6, 0x07, 0xD7, 0x5D, 0x67, +0x40, 0xF0, 0x48, 0x82, 0x7D, 0x67, 0x24, 0x67, +0x08, 0xD2, 0x40, 0xF0, 0x6C, 0xA3, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF2, 0x58, 0x9A, 0x04, 0xD3, +0x64, 0x9C, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0xA5, 0xF4, +0x0C, 0x4C, 0x42, 0xF6, 0x0C, 0x4D, 0x80, 0x18, +0x48, 0x43, 0x20, 0xF0, 0x4F, 0xA1, 0x0E, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x58, 0x9A, +0x64, 0x99, 0x6C, 0xEA, 0x5F, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x05, 0xF5, 0x00, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x58, 0x10, 0x04, 0x92, 0x40, 0x5A, +0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, +0x78, 0x9A, 0x44, 0x99, 0x4C, 0xEB, 0x00, 0x6A, +0x4E, 0x23, 0x30, 0xF0, 0x20, 0x6C, 0x05, 0xF5, +0x1C, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x00, 0x6A, +0x46, 0x10, 0x83, 0xF4, 0x10, 0x68, 0x90, 0x67, +0x10, 0xF0, 0x00, 0x6D, 0x80, 0x18, 0x0D, 0x28, +0x09, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x90, 0x67, 0x10, 0xF0, 0x00, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x06, 0x90, 0x05, 0x93, +0x7F, 0x6A, 0x4C, 0xE8, 0x4C, 0xEB, 0x00, 0x30, +0x6D, 0xE8, 0x07, 0x93, 0x04, 0x6C, 0x8B, 0xEC, +0x4C, 0xEB, 0x60, 0x33, 0x60, 0x33, 0x6D, 0xE8, +0x08, 0x93, 0x01, 0x6D, 0xAB, 0xED, 0x6C, 0xEA, +0x00, 0xF6, 0x40, 0x32, 0x4D, 0xE8, 0x04, 0x92, +0xFF, 0xF7, 0x1F, 0x6B, 0xD0, 0x67, 0x4C, 0xEC, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x07, 0xF2, 0x00, 0x4C, 0x6C, 0xEC, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x58, 0x9A, +0x64, 0x99, 0x6C, 0xEA, 0x0B, 0x22, 0x04, 0x95, +0x30, 0xF0, 0x20, 0x6C, 0x25, 0xF5, 0x10, 0x4C, +0xC5, 0x67, 0x07, 0xF2, 0x00, 0x4E, 0xF0, 0x67, +0x80, 0x18, 0x48, 0x43, 0x01, 0x6A, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x12, 0xD6, 0x13, 0xD7, +0xA3, 0xF2, 0x58, 0x9A, 0x64, 0x9C, 0xFF, 0x69, +0x04, 0x67, 0x6C, 0xEA, 0xAC, 0xE9, 0x0A, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, +0xA5, 0xF4, 0x0C, 0x4C, 0x62, 0xF6, 0x10, 0x4D, +0x80, 0x18, 0x48, 0x43, 0x20, 0xF0, 0x4F, 0xA0, +0x0E, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, +0x58, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x7E, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x05, 0xF5, 0x00, 0x4C, +0x80, 0x18, 0x48, 0x43, 0x77, 0x10, 0x12, 0x92, +0x02, 0x5A, 0x11, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF2, 0x78, 0x9A, 0x44, 0x98, 0x4C, 0xEB, +0x00, 0x6A, 0x6D, 0x23, 0x12, 0x95, 0x30, 0xF0, +0x20, 0x6C, 0xA5, 0xF4, 0x18, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x00, 0x6A, 0x64, 0x10, 0x83, 0xF4, +0x10, 0x6C, 0x10, 0xF0, 0x00, 0x6D, 0x80, 0x18, +0x0D, 0x28, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x83, 0xF4, 0x10, 0x6C, +0x10, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x13, 0x93, 0x0B, 0x73, 0x27, 0x61, 0x12, 0x93, +0xA3, 0xF0, 0x00, 0x6A, 0x08, 0xD2, 0x05, 0xF1, +0x00, 0x4A, 0x09, 0xD2, 0x68, 0x32, 0x06, 0x03, +0x4D, 0xE3, 0x0A, 0xD3, 0x84, 0xAB, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9A, 0xA3, 0xF6, 0xA0, 0x9B, 0xD1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, +0x58, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x32, 0x22, +0x0A, 0x92, 0x30, 0xF0, 0x20, 0x6C, 0x45, 0xF5, +0x10, 0x4C, 0xE2, 0x9A, 0x12, 0x95, 0x04, 0xD1, +0x0B, 0x6E, 0x26, 0x10, 0x12, 0x93, 0xE3, 0xF0, +0x08, 0x6A, 0x06, 0xD2, 0x05, 0xF1, 0x00, 0x4A, +0x07, 0xD2, 0x68, 0x32, 0x06, 0x03, 0x4D, 0xE3, +0x0B, 0xD3, 0x80, 0xAB, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, -0x03, 0xF2, 0x04, 0x6C, 0x83, 0xF3, 0xAC, 0x9B, -0x08, 0x6E, 0x19, 0x10, 0x02, 0x75, 0x0C, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF2, 0x04, 0x6C, -0x83, 0xF3, 0xAC, 0x9B, 0x04, 0x6E, 0x0B, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x9A, 0x83, 0xF3, 0xAC, 0x9B, -0x03, 0xF2, 0x04, 0x6C, 0x0C, 0x6E, 0x40, 0xEA, -0x90, 0x67, 0x80, 0x18, 0x1E, 0x5B, 0x05, 0x97, +0xA3, 0xF6, 0xA4, 0x9B, 0xD1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x58, 0x9A, +0x64, 0x98, 0x6C, 0xEA, 0x0B, 0x22, 0x0B, 0x92, +0x12, 0x95, 0x13, 0x96, 0x30, 0xF0, 0x20, 0x6C, +0xE0, 0x9A, 0x45, 0xF5, 0x10, 0x4C, 0x04, 0xD1, +0x80, 0x18, 0x48, 0x43, 0x01, 0x6A, 0x0F, 0x97, +0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x0C, 0xD4, 0x25, 0x67, 0xA0, 0xA5, 0x00, 0x6E, +0x0B, 0x6F, 0x80, 0x18, 0xF2, 0x57, 0x0C, 0x94, +0xA1, 0xA1, 0x01, 0x6E, 0x0B, 0x6F, 0x80, 0x18, +0xF2, 0x57, 0x0C, 0x94, 0xA2, 0xA1, 0x00, 0x6E, +0x0C, 0x6F, 0x80, 0x18, 0xF2, 0x57, 0x0C, 0x94, +0xA3, 0xA1, 0x01, 0x6E, 0x0C, 0x6F, 0x80, 0x18, +0xF2, 0x57, 0xFD, 0x6A, 0x00, 0x6B, 0x11, 0x67, +0x06, 0xD2, 0x07, 0xD3, 0x07, 0x93, 0x03, 0x6A, +0x6C, 0xEA, 0x03, 0x72, 0x0A, 0x61, 0x44, 0x80, +0xA1, 0x80, 0xC2, 0x80, 0xE3, 0x80, 0x0C, 0x94, +0x04, 0xD2, 0x06, 0x92, 0x05, 0xD2, 0x80, 0x18, +0xA4, 0x57, 0x06, 0x92, 0x07, 0x93, 0x01, 0x48, +0x01, 0x4A, 0x06, 0xD2, 0x01, 0x4B, 0x07, 0xD3, +0x06, 0x93, 0xFF, 0x6A, 0x4C, 0xEB, 0x07, 0x92, +0x06, 0xD3, 0x1C, 0x72, 0xE3, 0x61, 0x11, 0x67, +0x29, 0x69, 0x43, 0x41, 0x03, 0x6B, 0x6C, 0xEA, +0x03, 0x72, 0x0D, 0x61, 0x20, 0xF0, 0xAD, 0x80, +0x20, 0xF0, 0xCE, 0x80, 0x20, 0xF0, 0xEF, 0x80, +0x20, 0xF0, 0x50, 0x80, 0x0C, 0x94, 0x05, 0xD1, +0x04, 0xD2, 0x80, 0x18, 0xA4, 0x57, 0x01, 0x49, +0x3D, 0x71, 0x01, 0x48, 0xEA, 0x61, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x0C, 0xD4, 0x0D, 0xD5, +0x0F, 0xD7, 0xA3, 0xF2, 0x58, 0x9A, 0x64, 0x9C, +0x06, 0x67, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0xA5, 0xF4, +0x0C, 0x4C, 0xA2, 0xF6, 0x14, 0x4D, 0x80, 0x18, +0x48, 0x43, 0x07, 0xF4, 0x00, 0x6A, 0x06, 0xD2, +0x02, 0xF0, 0x00, 0x4A, 0x07, 0xD2, 0xFF, 0x69, +0x30, 0xF0, 0x20, 0x6A, 0x0D, 0x93, 0x0C, 0xE9, +0x63, 0xF3, 0x04, 0x9A, 0x0F, 0x92, 0x28, 0x34, +0x10, 0x96, 0x4C, 0xE8, 0x68, 0x32, 0x7D, 0x67, +0x49, 0xE3, 0x46, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, +0xB0, 0x67, 0x51, 0xE4, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x6C, 0xEC, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x01, 0x6C, 0x40, 0xEA, 0x0C, 0x94, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF2, 0x58, 0x9A, 0x64, 0x9C, +0x6C, 0xEA, 0x0A, 0x22, 0x0D, 0x95, 0x10, 0x97, +0x30, 0xF0, 0x20, 0x6C, 0x65, 0xF5, 0x14, 0x4C, +0xD1, 0x67, 0x04, 0xD0, 0x80, 0x18, 0x48, 0x43, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x01, 0x6A, +0x06, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x0F, 0xD5, 0x11, 0xD7, 0xA3, 0xF2, 0x58, 0x9A, +0x64, 0x9C, 0x04, 0x67, 0x26, 0x67, 0x6C, 0xEA, +0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6D, 0xA5, 0xF4, 0x0C, 0x4C, 0xC2, 0xF6, +0x1C, 0x4D, 0x80, 0x18, 0x48, 0x43, 0x0F, 0x92, +0x02, 0x5A, 0x16, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF2, 0x58, 0x9A, 0x64, 0x98, 0x6C, 0xEA, +0x04, 0x2A, 0x01, 0x6B, 0x6B, 0xEB, 0x08, 0xD3, +0x39, 0x10, 0x0F, 0x95, 0x30, 0xF0, 0x20, 0x6C, +0xA5, 0xF4, 0x18, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x01, 0x6A, 0x4B, 0xEA, 0x08, 0xD2, 0x2E, 0x10, +0x07, 0xF4, 0x00, 0x6A, 0x06, 0xD2, 0xFF, 0x6B, +0x02, 0xF0, 0x00, 0x4A, 0x2C, 0xEB, 0x07, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x24, 0x9A, +0x09, 0xD3, 0x11, 0x92, 0x68, 0x34, 0x0F, 0x93, +0x4C, 0xE9, 0xB1, 0x67, 0x68, 0x32, 0x7D, 0x67, +0x49, 0xE3, 0x46, 0x9A, 0x51, 0xE4, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xEC, 0x80, 0x18, 0x0D, 0x28, +0x08, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, +0x58, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x0A, 0x22, +0x0F, 0x95, 0x09, 0x96, 0x08, 0x97, 0x30, 0xF0, +0x20, 0x6C, 0x85, 0xF5, 0x1C, 0x4C, 0x04, 0xD1, +0x80, 0x18, 0x48, 0x43, 0x08, 0x92, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x20, 0xF0, 0x44, 0xA4, 0x25, 0x67, 0x18, 0x6E, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, +0xE4, 0x9A, 0x00, 0x6D, 0x04, 0x67, 0x80, 0x18, +0x9F, 0x58, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF2, 0x58, 0x9A, 0x64, 0x98, 0x6C, 0xEA, +0x0B, 0x22, 0x20, 0xF0, 0xAA, 0xA0, 0x20, 0xF0, +0xCD, 0xA0, 0x04, 0x97, 0x30, 0xF0, 0x20, 0x6C, +0xC5, 0xF5, 0x00, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x04, 0x93, 0xFF, 0x6A, 0xEB, 0x4B, 0x4C, 0xEB, +0x02, 0x5B, 0x50, 0x60, 0x05, 0x93, 0x6C, 0xEA, +0x0F, 0x5A, 0x58, 0x67, 0x01, 0x5A, 0x58, 0x67, +0x4B, 0xEA, 0x4C, 0xE9, 0x01, 0x71, 0x12, 0x60, +0x05, 0x21, 0x02, 0x71, 0x23, 0x60, 0x03, 0x71, +0x2D, 0x60, 0x40, 0x10, 0x30, 0xF0, 0x20, 0x68, +0xFF, 0xF7, 0x1F, 0x69, 0xC0, 0xF3, 0x44, 0x98, +0x43, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x6E, 0xF7, +0x10, 0x6E, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0xFF, 0xF7, 0x1F, 0x69, +0x43, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x04, 0xF3, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x48, 0xF1, 0x04, 0x6C, 0xB1, 0x67, 0x6E, 0xF0, +0x17, 0x6E, 0x1F, 0x10, 0x30, 0xF0, 0x20, 0x68, +0xFF, 0xF7, 0x1F, 0x69, 0xC0, 0xF3, 0x44, 0x98, +0x43, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x6E, 0xF7, +0x10, 0x6E, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0xFF, 0xF7, 0x1F, 0x69, +0x43, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x04, 0xF3, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x48, 0xF1, 0x04, 0x6C, 0xB1, 0x67, 0x24, 0xF0, +0x10, 0x6E, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x10, 0xD6, 0x11, 0xD7, +0xA3, 0xF2, 0x58, 0x9A, 0x64, 0x9C, 0x04, 0x67, +0x25, 0x67, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0xA5, 0xF4, +0x0C, 0x4C, 0x82, 0xF6, 0x14, 0x4D, 0x80, 0x18, +0x48, 0x43, 0x02, 0x59, 0x0F, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF2, 0x58, 0x9A, 0x64, 0x98, +0x6C, 0xEA, 0x6D, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0x05, 0xF6, 0x00, 0x4C, 0xB1, 0x67, 0x80, 0x18, +0x48, 0x43, 0x65, 0x10, 0x10, 0x92, 0x09, 0x22, +0x12, 0x94, 0x11, 0x97, 0xB1, 0x67, 0x04, 0xD4, +0xC2, 0x67, 0x90, 0x67, 0x80, 0x18, 0x74, 0x58, +0x5B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, +0xE4, 0x9A, 0x11, 0x92, 0x00, 0x6C, 0x08, 0xD4, +0xEC, 0xEA, 0xEA, 0xEA, 0x09, 0xD2, 0x1C, 0x60, +0x90, 0x67, 0xB1, 0x67, 0x00, 0x6E, 0x80, 0x18, +0x9F, 0x58, 0x08, 0xD2, 0x01, 0x4A, 0x0E, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x58, 0x9A, +0x64, 0x98, 0x6C, 0xEA, 0x40, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x05, 0xF6, 0x14, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x39, 0x10, 0x09, 0x94, 0x08, 0x95, +0x12, 0x96, 0x80, 0x18, 0xD0, 0x53, 0x12, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x9A, +0x03, 0xF0, 0x08, 0x6A, 0x06, 0xD2, 0x05, 0xF1, +0x00, 0x4A, 0x07, 0xD2, 0x9D, 0x67, 0x28, 0x32, +0x49, 0xE4, 0x8C, 0xAA, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF3, 0xC4, 0x9A, 0x12, 0x92, 0x01, 0x6D, +0xAB, 0xED, 0x4C, 0xEE, 0x40, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF2, 0x58, 0x9A, 0x64, 0x98, +0x6C, 0xEA, 0x0D, 0x22, 0x08, 0x94, 0x09, 0x92, +0x12, 0x97, 0x04, 0xD4, 0x30, 0xF0, 0x20, 0x6C, +0x25, 0xF6, 0x10, 0x4C, 0xB1, 0x67, 0x00, 0x6E, +0x05, 0xD2, 0x80, 0x18, 0x48, 0x43, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0D, 0x6C, +0x40, 0xEA, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x00, 0x6D, 0x0A, 0xD4, +0x80, 0x18, 0xB7, 0x53, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF2, 0x3C, 0x9A, 0x30, 0xF0, 0x21, 0x68, +0x12, 0xF5, 0x08, 0x48, 0x00, 0x6A, 0x90, 0x67, +0xF1, 0x67, 0xA2, 0x67, 0xBC, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x90, 0x67, 0xF1, 0x67, +0x01, 0x6A, 0x00, 0x6D, 0xBC, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x00, 0x6A, 0xF1, 0x67, +0x90, 0x67, 0xBC, 0x6E, 0xA2, 0x67, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x0A, 0x94, 0x01, 0x6D, +0x80, 0x18, 0xB7, 0x53, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x68, 0x25, 0x67, 0x0C, 0xE9, 0x29, 0x59, +0xCC, 0xE8, 0x03, 0x61, 0x17, 0x58, 0x03, 0x60, +0x08, 0x10, 0x17, 0x58, 0x06, 0x60, 0x01, 0x6A, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x23, 0xF4, 0x1C, 0x6C, 0x03, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x30, 0xF0, 0x20, 0x6D, 0x65, 0xF6, 0x08, 0x4C, +0xE2, 0xF6, 0x1C, 0x4D, 0xD1, 0x67, 0xF0, 0x67, +0x80, 0x18, 0x48, 0x43, 0x00, 0x6A, 0xE4, 0x17, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, +0xFF, 0x6D, 0x83, 0xF4, 0x10, 0x6C, 0x01, 0x4D, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF1, 0x1C, 0x9A, 0x00, 0x6C, 0x01, 0x6E, +0xB0, 0x67, 0x80, 0x18, 0x9A, 0x28, 0x00, 0x6C, +0xB0, 0x67, 0xC4, 0x67, 0x80, 0x18, 0x9A, 0x28, +0xB0, 0x67, 0x00, 0x6C, 0x01, 0x6E, 0x80, 0x18, +0x9A, 0x28, 0xC0, 0xF3, 0x44, 0x99, 0xFF, 0x6D, +0x83, 0xF4, 0x10, 0x6C, 0x01, 0x4D, 0x01, 0x6E, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x52, 0x9C, 0x40, 0xA2, 0x13, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0x1C, 0x9A, +0x00, 0x6C, 0x01, 0x6E, 0xB0, 0x67, 0x80, 0x18, +0x9A, 0x28, 0x00, 0x6C, 0xC4, 0x67, 0xB0, 0x67, +0x80, 0x18, 0x9A, 0x28, 0x00, 0x6C, 0xB0, 0x67, +0x01, 0x6E, 0x80, 0x18, 0x9A, 0x28, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x7D, 0x67, 0x04, 0x67, 0x47, 0x43, 0x0A, 0xD6, -0x20, 0xF0, 0xAC, 0xC0, 0x21, 0x4A, 0x60, 0xA2, -0x46, 0x67, 0xAD, 0xEA, 0x0B, 0xD7, 0x25, 0x67, -0x20, 0xF0, 0x6B, 0xC4, 0x20, 0xF0, 0x4A, 0xC4, -0xA7, 0x67, 0x80, 0x18, 0xAC, 0x5D, 0x0A, 0x96, -0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, 0x33, 0x5D, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x54, 0x9A, -0x64, 0x98, 0x6C, 0xEA, 0x09, 0x22, 0x0A, 0x96, -0x0B, 0x97, 0x30, 0xF0, 0x20, 0x6C, 0xE5, 0xF7, -0x18, 0x4C, 0xB1, 0x67, 0x80, 0x18, 0x39, 0x43, -0x90, 0x67, 0x80, 0x18, 0x1E, 0x5B, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x0D, 0xD5, 0x0E, 0xD6, 0x20, 0xF0, 0x44, 0xA4, -0x04, 0x67, 0x27, 0x67, 0x07, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF2, 0x54, 0x9A, 0x64, 0x9C, -0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, -0x30, 0xF0, 0x20, 0x6D, 0xA5, 0xF4, 0x08, 0x4C, -0x02, 0xF6, 0x10, 0x4D, 0x80, 0x18, 0x39, 0x43, -0x20, 0xF0, 0x4F, 0xA0, 0x0B, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0x06, 0xF0, -0x1C, 0x4C, 0x02, 0xF6, 0x10, 0x4D, 0x80, 0x18, -0x39, 0x43, 0x8D, 0x10, 0x0E, 0x93, 0x04, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0x26, 0xF0, -0x14, 0x4C, 0x02, 0xF6, 0x10, 0x4D, 0xC3, 0x67, -0x16, 0x10, 0x0D, 0x92, 0xFF, 0x72, 0x02, 0x61, -0xFF, 0x71, 0x15, 0x60, 0x0D, 0x93, 0x04, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0x03, 0x2A, 0xA3, 0x67, -0x06, 0xD2, 0x10, 0x10, 0x0D, 0x96, 0x30, 0xF0, -0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0x46, 0xF0, -0x0C, 0x4C, 0x02, 0xF6, 0x10, 0x4D, 0x80, 0x18, -0x39, 0x43, 0x00, 0x6A, 0x65, 0x10, 0x01, 0x6B, -0x03, 0x6D, 0x06, 0xD3, 0x0E, 0x96, 0x90, 0x67, -0x80, 0x18, 0x5F, 0x55, 0x0E, 0x95, 0x90, 0x67, -0x80, 0x18, 0xA1, 0x5D, 0x20, 0xF0, 0x4B, 0xA0, -0x03, 0x2A, 0x01, 0x6A, 0x20, 0xF0, 0x4B, 0xC0, -0x0D, 0x92, 0xFF, 0x4A, 0x02, 0x5A, 0x02, 0x60, -0x0D, 0x91, 0x0D, 0x10, 0x0D, 0x93, 0x03, 0x73, -0x06, 0x61, 0xFF, 0x71, 0x0B, 0x61, 0x20, 0xF0, -0x2B, 0xA0, 0x03, 0x6A, 0x05, 0x10, 0x06, 0x93, -0x05, 0x23, 0x20, 0xF0, 0x2B, 0xA0, 0x00, 0x6A, -0x06, 0xD2, 0x02, 0x10, 0x03, 0x6B, 0x06, 0xD3, -0x06, 0x95, 0x90, 0x67, 0xD1, 0x67, 0xF1, 0x67, -0x80, 0x18, 0xC6, 0x5D, 0x07, 0x92, 0xFF, 0x6B, -0xEB, 0x4A, 0x6C, 0xEA, 0x02, 0x5A, 0x18, 0x60, -0x20, 0xF0, 0x4A, 0xA0, 0x01, 0x72, 0x06, 0x61, -0x0E, 0x92, 0x01, 0x72, 0x03, 0x61, 0x90, 0x67, -0x01, 0x6D, 0x0C, 0x10, 0x20, 0xF0, 0x4A, 0xA0, -0x02, 0x72, 0x06, 0x61, 0x0E, 0x93, 0x02, 0x73, -0x03, 0x61, 0x90, 0x67, 0x02, 0x6D, 0x02, 0x10, -0x90, 0x67, 0x03, 0x6D, 0x80, 0x18, 0x4D, 0x5A, -0x90, 0x67, 0x80, 0x18, 0x5B, 0x58, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF2, 0x54, 0x9A, 0x64, 0x98, -0x6C, 0xEA, 0x0A, 0x22, 0x0E, 0x95, 0x0D, 0x96, -0x06, 0x97, 0x30, 0xF0, 0x20, 0x6C, 0x66, 0xF0, -0x04, 0x4C, 0x04, 0xD1, 0x80, 0x18, 0x39, 0x43, -0x90, 0x67, 0x80, 0x18, 0x1E, 0x5B, 0x01, 0x6A, -0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, -0x0E, 0xD1, 0x0D, 0xD0, 0x20, 0xF0, 0x44, 0xA4, -0xFF, 0x69, 0x04, 0x67, 0x0A, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF2, 0x54, 0x9A, 0x64, 0x9C, -0xAC, 0xE9, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0xA5, 0xF4, -0x08, 0x4C, 0xC2, 0xF5, 0x14, 0x4D, 0x80, 0x18, -0x39, 0x43, 0x20, 0xF0, 0x4F, 0xA0, 0x0F, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x54, 0x9A, -0x64, 0x98, 0x6C, 0xEA, 0x80, 0xF1, 0x1A, 0x22, -0x30, 0xF0, 0x20, 0x6C, 0x86, 0xF0, 0x08, 0x4C, -0x80, 0x18, 0x39, 0x43, 0x93, 0x11, 0x48, 0x41, -0xF9, 0x4A, 0xFF, 0x6B, 0x6C, 0xEA, 0x15, 0x5A, -0x0C, 0x61, 0x48, 0x41, 0xC7, 0x4A, 0x6C, 0xEA, -0x23, 0x5A, 0x07, 0x61, 0x47, 0x41, 0x68, 0x4A, -0x6C, 0xEA, 0x04, 0x5A, 0x02, 0x61, 0xB2, 0x59, -0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, -0x54, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x60, 0xF1, -0x1B, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x86, 0xF0, -0x1C, 0x4C, 0xB1, 0x67, 0x80, 0x18, 0x39, 0x43, -0x73, 0x11, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, -0xE4, 0x9A, 0x90, 0x67, 0x00, 0x6D, 0x18, 0x6E, -0x80, 0x18, 0x1A, 0x5A, 0x09, 0xD2, 0x01, 0x4A, -0x0F, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, -0x54, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x40, 0xF1, -0x1F, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xA6, 0xF0, -0x0C, 0x4C, 0x80, 0x18, 0x39, 0x43, 0x58, 0x11, -0x20, 0xF0, 0x6B, 0xA0, 0x0F, 0x59, 0x58, 0x67, -0x0B, 0xD2, 0x06, 0xD3, 0x15, 0x2B, 0x21, 0xF0, -0x00, 0x6C, 0x0F, 0x6D, 0x80, 0x18, 0x35, 0x25, -0xFF, 0x6B, 0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, -0x30, 0xF0, 0x20, 0x6D, 0x20, 0xF0, 0x6B, 0xC0, -0xC6, 0xF0, 0x00, 0x4C, 0xC2, 0xF5, 0x14, 0x4D, -0xC3, 0x67, 0x06, 0xD3, 0x80, 0x18, 0x39, 0x43, -0x20, 0xF0, 0x4A, 0xA0, 0x08, 0xD2, 0x1B, 0x2A, -0x21, 0xF0, 0x00, 0x6C, 0xF0, 0x6D, 0x80, 0x18, -0x35, 0x25, 0xC2, 0x67, 0x06, 0x92, 0xFF, 0x6B, -0x6C, 0xEE, 0xCD, 0xEA, 0x6C, 0xEA, 0x30, 0xF0, -0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0x20, 0xF0, -0xCC, 0xC0, 0x20, 0xF0, 0x4A, 0xC0, 0xE6, 0xF0, -0x08, 0x4C, 0xC2, 0xF5, 0x14, 0x4D, 0xE2, 0x67, -0x08, 0xD2, 0x80, 0x18, 0x39, 0x43, 0x20, 0xF0, -0x6D, 0xA0, 0x07, 0xD3, 0x18, 0x2B, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF5, 0xA4, 0x9A, 0x21, 0xF0, -0x04, 0x6C, 0x80, 0x18, 0x35, 0x25, 0xFF, 0x6B, -0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, -0x20, 0x6D, 0x20, 0xF0, 0x6D, 0xC0, 0x26, 0xF1, -0x04, 0x4C, 0xC2, 0xF5, 0x14, 0x4D, 0xC3, 0x67, -0x07, 0xD3, 0x80, 0x18, 0x39, 0x43, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF6, 0x40, 0x9A, 0x09, 0x93, -0x4C, 0xEB, 0x0B, 0x92, 0x2D, 0xEB, 0x06, 0xD3, -0x16, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, -0x44, 0x9A, 0x91, 0x59, 0x4D, 0xEB, 0x06, 0xD3, -0x05, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, -0x54, 0x9A, 0x07, 0x10, 0x50, 0x59, 0x07, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0x50, 0x9A, -0x06, 0x93, 0x4D, 0xEB, 0x06, 0xD3, 0x90, 0x67, -0x00, 0x6D, 0x80, 0x18, 0x32, 0x55, 0x30, 0xF0, -0x21, 0x6A, 0x12, 0xF5, 0x08, 0x4A, 0x82, 0x67, -0x09, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, -0x04, 0x4A, 0x06, 0x93, 0xE0, 0x9A, 0x00, 0x6D, -0x18, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x8D, 0x5A, +0x30, 0xF0, 0x20, 0x6A, 0x09, 0xD5, 0xA3, 0xF2, +0x58, 0x9A, 0x64, 0x9C, 0x04, 0x67, 0x6C, 0xEA, +0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6D, 0xA5, 0xF4, 0x0C, 0x4C, 0x82, 0xF5, +0x0C, 0x4D, 0x80, 0x18, 0x48, 0x43, 0x90, 0x67, +0x80, 0x18, 0xB6, 0x55, 0x52, 0x98, 0x40, 0xA2, +0x04, 0x22, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, +0x8A, 0x55, 0x20, 0xF0, 0x58, 0xA0, 0x04, 0x22, +0x90, 0x67, 0xE0, 0xF3, 0x1F, 0x6D, 0x02, 0x10, +0x90, 0x67, 0x00, 0x6D, 0x30, 0xF0, 0x20, 0x69, +0x80, 0x18, 0x98, 0x55, 0xC0, 0xF3, 0x44, 0x99, +0x03, 0x6D, 0xC5, 0x67, 0x03, 0xF0, 0x0C, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF2, +0x18, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0x03, 0xF0, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0x03, 0x6D, 0xC5, 0x67, +0x08, 0xF1, 0x0C, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF2, 0x18, 0x4B, 0xC0, 0xF3, +0x44, 0x99, 0xA0, 0x9B, 0x08, 0xF1, 0x0C, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x09, 0x92, 0x14, 0x2A, +0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF4, 0x1C, 0x6C, +0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF2, 0x18, 0x4B, 0x44, 0x98, +0x60, 0x9B, 0x6C, 0xEA, 0x2F, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0xA5, 0xF6, 0x08, 0x4C, 0x16, 0x10, +0x09, 0x92, 0x01, 0x72, 0x16, 0x61, 0xC0, 0xF3, +0x44, 0x99, 0x03, 0x6D, 0x23, 0xF4, 0x1C, 0x6C, +0xC5, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF2, 0x18, 0x4B, 0x44, 0x98, 0x60, 0x9B, +0x6C, 0xEA, 0x18, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0xC5, 0xF6, 0x14, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x11, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, +0x18, 0x4A, 0x40, 0x9A, 0x64, 0x98, 0x4C, 0xEB, +0x00, 0x6A, 0x0C, 0x23, 0x30, 0xF0, 0x20, 0x6C, +0x05, 0xF7, 0x00, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x00, 0x6A, 0x04, 0x10, 0x90, 0x67, 0x80, 0x18, +0xA3, 0x59, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0xAC, 0xEA, 0x06, 0xD2, 0x10, 0xD6, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x58, 0x9A, +0x64, 0x9C, 0x04, 0x67, 0x6C, 0xEA, 0x0A, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, +0xA5, 0xF4, 0x0C, 0x4C, 0xA2, 0xF5, 0x10, 0x4D, +0x80, 0x18, 0x48, 0x43, 0x20, 0xF0, 0x4F, 0xA0, +0x10, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, +0x78, 0x9A, 0x44, 0x98, 0x4C, 0xEB, 0x01, 0x6A, +0x40, 0xF2, 0x0D, 0x23, 0x30, 0xF0, 0x20, 0x6C, +0x05, 0xF7, 0x10, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x43, 0x12, 0x10, 0x93, 0x07, 0x5B, 0x0B, 0x60, +0x01, 0x73, 0x03, 0x61, 0x06, 0x92, 0x03, 0x5A, +0x05, 0x10, 0x10, 0x93, 0x02, 0x73, 0x10, 0x61, +0x06, 0x92, 0x05, 0x5A, 0x0D, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF2, 0x58, 0x9A, 0x64, 0x98, +0x6C, 0xEA, 0x20, 0xF2, 0x0F, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x25, 0xF7, 0x10, 0x4C, 0x0E, 0x12, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0xE4, 0x9A, +0x90, 0x67, 0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, +0x9F, 0x58, 0x06, 0xF0, 0x01, 0x6B, 0x6B, 0xEB, +0x09, 0xD2, 0x6C, 0xEA, 0x07, 0xD2, 0x10, 0x92, +0x07, 0x5A, 0x60, 0xF1, 0x0E, 0x60, 0x48, 0x33, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, 0x10, 0x4A, +0x69, 0xE2, 0x40, 0x9A, 0x00, 0xEA, 0x10, 0x93, +0x05, 0x73, 0x25, 0x61, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x44, 0x99, 0x01, 0xF0, 0x10, 0x6C, +0xE7, 0xF7, 0x10, 0x6D, 0xA0, 0xF2, 0x0B, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, +0x10, 0x6C, 0xDF, 0xF7, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, +0x14, 0x6C, 0x00, 0xF7, 0x00, 0x6D, 0x04, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x99, 0xA1, 0xF1, 0x14, 0x6C, 0xA3, 0xF6, +0xAC, 0x9B, 0x04, 0x6E, 0x4E, 0x10, 0x10, 0x92, +0x06, 0x72, 0x25, 0x61, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x44, 0x99, 0x01, 0xF0, 0x10, 0x6C, +0xE7, 0xF7, 0x10, 0x6D, 0xA0, 0xF2, 0x0B, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, +0x10, 0x6C, 0xDF, 0xF7, 0x00, 0x6D, 0x02, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, +0x14, 0x6C, 0x00, 0xF7, 0x00, 0x6D, 0x06, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x99, 0xA1, 0xF1, 0x14, 0x6C, 0xA3, 0xF6, +0xAC, 0x9B, 0x05, 0x6E, 0x26, 0x10, 0x10, 0x93, +0x25, 0x2B, 0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, +0x44, 0x99, 0x01, 0xF0, 0x10, 0x6C, 0xE7, 0xF7, +0x10, 0x6D, 0x80, 0xF1, 0x1B, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, 0x10, 0x6C, +0xDF, 0xF7, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, 0x14, 0x6C, +0x00, 0xF7, 0x00, 0x6D, 0x07, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, +0xA3, 0xF6, 0xAC, 0x9B, 0xA1, 0xF1, 0x14, 0x6C, +0x06, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, 0x10, 0x6C, +0x0F, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x07, 0x93, +0x06, 0xF0, 0x00, 0x6A, 0xA1, 0xF4, 0x1C, 0x6C, +0x4D, 0xEB, 0x07, 0xD3, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF2, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF1, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0xA3, 0xF2, 0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0xB8, 0x9B, +0xC0, 0xF3, 0x44, 0x99, 0xE3, 0xF2, 0x08, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, +0xE3, 0xF2, 0x0C, 0x6C, 0x0F, 0x6D, 0x06, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x81, 0xF0, +0x0C, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x53, 0x98, 0x18, 0x6B, 0x40, 0xA2, +0x08, 0xD3, 0xC0, 0xF0, 0x01, 0x2A, 0x90, 0x67, +0x05, 0x6D, 0x80, 0x18, 0x92, 0x54, 0x90, 0x67, +0x06, 0x6D, 0x80, 0x18, 0xA1, 0x54, 0x18, 0x6A, +0xB6, 0x10, 0x06, 0x93, 0x01, 0x73, 0x09, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x03, 0xF2, 0x00, 0x6C, 0x10, 0x6D, 0x01, 0x6E, +0x08, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x03, 0xF2, 0x00, 0x6C, 0x10, 0x6D, +0x00, 0x6E, 0x30, 0xF0, 0x20, 0x69, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, 0x10, 0x6C, +0x0F, 0x6D, 0x05, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0xA1, 0xF1, 0x10, 0x6C, 0xC0, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x06, 0x92, 0x06, 0x93, +0xA1, 0xF1, 0x10, 0x6C, 0x50, 0x36, 0xC0, 0xF3, +0x44, 0x99, 0x6D, 0xEE, 0x1F, 0xF7, 0x00, 0x6D, +0x40, 0xEA, 0x07, 0x93, 0x04, 0xF0, 0x00, 0x6A, +0xA1, 0xF4, 0x1C, 0x6C, 0x4D, 0xEB, 0x07, 0xD3, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, 0xB0, 0x9B, +0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0xB8, 0x9B, +0xC0, 0xF3, 0x44, 0x99, 0xA3, 0xF2, 0x1C, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF1, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0xE3, 0xF2, 0x08, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0xE3, 0xF2, 0x0C, 0x6C, +0x0F, 0x6D, 0x08, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0x81, 0xF0, 0x0C, 0x6C, 0x1E, 0xF0, +0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x53, 0x98, +0x10, 0x6B, 0x40, 0xA2, 0x08, 0xD3, 0x50, 0x2A, +0x90, 0x67, 0x04, 0x6D, 0x80, 0x18, 0x92, 0x54, +0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0xA1, 0x54, +0x10, 0x6A, 0x45, 0x10, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, 0x10, 0x6C, +0x0F, 0x6D, 0x0A, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0xA1, 0xF1, 0x10, 0x6C, 0xC0, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x06, 0x93, 0xC0, 0xF3, +0x44, 0x99, 0xA1, 0xF1, 0x10, 0x6C, 0x70, 0x36, +0x6D, 0xEE, 0x1F, 0xF7, 0x00, 0x6D, 0x40, 0xEA, +0x07, 0x93, 0x02, 0xF0, 0x00, 0x6A, 0xA1, 0xF4, +0x1C, 0x6C, 0x4D, 0xEB, 0x07, 0xD3, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF2, 0xB0, 0x9B, 0xC0, 0xF3, +0x44, 0x99, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0x81, 0xF0, 0x0C, 0x6C, 0x1E, 0xF0, +0x00, 0x6D, 0x06, 0x6E, 0x40, 0xEA, 0x08, 0x6A, +0x12, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0x98, +0xA3, 0xF2, 0x58, 0x9A, 0x6C, 0xEA, 0x00, 0x6B, +0x08, 0xD3, 0x0A, 0x22, 0x10, 0x95, 0x06, 0x96, +0x30, 0xF0, 0x20, 0x6C, 0x45, 0xF7, 0x18, 0x4C, +0x80, 0x18, 0x48, 0x43, 0x00, 0x6A, 0x08, 0xD2, +0x30, 0xF0, 0x21, 0x69, 0x12, 0xF5, 0x08, 0x49, +0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0xB7, 0x53, +0x01, 0x6B, 0x91, 0x67, 0x00, 0x6D, 0xEE, 0x6E, +0x04, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x12, 0x59, +0x12, 0x6A, 0x91, 0x67, 0x00, 0x6D, 0x33, 0x6E, +0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x04, 0x4A, -0x06, 0x93, 0x09, 0x94, 0xE0, 0x9A, 0x01, 0x6D, -0x18, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x8D, 0x5A, -0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x32, 0x55, -0x0F, 0x59, 0x11, 0x60, 0x50, 0x98, 0x40, 0xA2, -0x07, 0x2A, 0x90, 0x67, 0x05, 0x6D, 0x80, 0x18, -0x0D, 0x56, 0x90, 0x67, 0x06, 0x6D, 0x1A, 0x10, -0x90, 0x67, 0x04, 0x6D, 0x80, 0x18, 0x0D, 0x56, -0x90, 0x67, 0x00, 0x6D, 0x13, 0x10, 0x68, 0x41, -0xE4, 0x4B, 0xFF, 0x6A, 0x4C, 0xEB, 0x1D, 0x5B, -0x03, 0x60, 0x90, 0x67, 0x01, 0x6D, 0x0A, 0x10, -0x68, 0x41, 0xA4, 0x4B, 0x4C, 0xEB, 0x2D, 0x5B, -0x03, 0x60, 0x90, 0x67, 0x02, 0x6D, 0x02, 0x10, -0x90, 0x67, 0x03, 0x6D, 0x80, 0x18, 0x1C, 0x56, -0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, 0x37, 0x56, -0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, 0x7F, 0x56, -0x0B, 0x93, 0x2F, 0x23, 0x90, 0x67, 0xB1, 0x67, -0x80, 0x18, 0xB3, 0x55, 0x90, 0x67, 0x01, 0x6D, -0x00, 0x18, 0xB0, 0xC2, 0x40, 0xF4, 0x14, 0x6C, -0x80, 0x6D, 0x00, 0x6E, 0x80, 0x18, 0xC2, 0x25, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0xB4, 0x9B, -0x83, 0xF2, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF6, 0xA8, 0x9B, -0x83, 0xF4, 0x00, 0x6C, 0x0F, 0x6E, 0x40, 0xEA, -0x0A, 0x92, 0xFF, 0x6B, 0xEB, 0x4A, 0x6C, 0xEA, -0x02, 0x5A, 0x41, 0x60, 0x90, 0x67, 0x00, 0x6D, -0x3C, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, -0xB4, 0x9B, 0x83, 0xF2, 0x00, 0x6C, 0x01, 0x6E, -0x40, 0xEA, 0x01, 0x6E, 0x40, 0xF4, 0x14, 0x6C, -0x80, 0x6D, 0x80, 0x18, 0xC2, 0x25, 0x90, 0x67, -0x02, 0x6D, 0x00, 0x18, 0xB0, 0xC2, 0x30, 0xF0, +0x08, 0x93, 0xE0, 0x9A, 0x91, 0x67, 0x00, 0x6D, +0x3F, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x12, 0x59, +0x00, 0x6B, 0xA3, 0x67, 0x91, 0x67, 0xEE, 0x6E, +0x04, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x12, 0x59, +0x01, 0x6A, 0x91, 0x67, 0xA2, 0x67, 0xEE, 0x6E, +0x04, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x12, 0x6B, 0x91, 0x67, 0x01, 0x6D, 0x33, 0x6E, +0x1F, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x12, 0x59, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x04, 0x4B, +0xE0, 0x9B, 0x08, 0x92, 0x91, 0x67, 0x01, 0x6D, +0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x00, 0x6A, 0x91, 0x67, 0x01, 0x6D, 0xEE, 0x6E, +0x04, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x04, 0x4A, +0x07, 0x93, 0xE0, 0x9A, 0x91, 0x67, 0x00, 0x6D, +0x18, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x12, 0x59, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x04, 0x4A, +0x07, 0x93, 0xE0, 0x9A, 0x91, 0x67, 0x01, 0x6D, +0x18, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x12, 0x59, +0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, 0xB7, 0x53, +0x09, 0x92, 0x01, 0x4A, 0x10, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF2, 0x58, 0x9A, 0x64, 0x98, +0x6C, 0xEA, 0x20, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0x85, 0xF7, 0x00, 0x4C, 0x10, 0x95, 0x06, 0x96, +0x80, 0x18, 0x48, 0x43, 0x17, 0x10, 0x90, 0x67, +0x80, 0x18, 0xE0, 0x56, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF2, 0x58, 0x9A, 0x64, 0x98, 0x6C, 0xEA, +0x08, 0x22, 0x10, 0x95, 0x06, 0x96, 0x30, 0xF0, +0x20, 0x6C, 0xC5, 0xF7, 0x10, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x90, 0x67, 0x80, 0x18, 0xA3, 0x59, +0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x08, 0xD4, 0x09, 0xD5, 0x52, 0x9C, 0x60, 0xA2, +0x45, 0x67, 0x55, 0x2B, 0x02, 0x75, 0x29, 0x61, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0xC1, 0xF4, 0x00, 0x69, 0x91, 0x67, 0xE0, 0xF7, +0x1F, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF6, 0x08, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0x49, +0x91, 0x67, 0xE0, 0xF7, 0x1F, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF6, +0x08, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, +0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x03, 0x6A, +0x2A, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0xC1, 0xF4, 0x00, 0x69, 0x91, 0x67, +0xE0, 0xF7, 0x1F, 0x6D, 0x00, 0xF4, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF6, +0x08, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x08, 0x49, 0x91, 0x67, 0xE0, 0xF7, +0x1F, 0x6D, 0x00, 0xF4, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF6, 0x08, 0x4B, +0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, 0x91, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0x09, 0x92, 0x6F, 0x42, +0x02, 0x5B, 0x46, 0x60, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF5, 0x10, 0x69, +0x91, 0x67, 0x00, 0xF3, 0x00, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF6, +0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF2, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x41, 0xF4, 0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0xA4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x41, 0xF4, 0x14, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF2, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x21, 0xF4, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, 0xB4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x09, 0x96, 0xFD, 0xF2, +0x14, 0x49, 0x91, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x83, 0xF3, 0xBC, 0x9B, 0x09, 0x96, 0x47, 0x10, +0x03, 0x72, 0x46, 0x61, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF5, 0x10, 0x69, +0x91, 0x67, 0x00, 0xF3, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF6, +0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF2, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x41, 0xF4, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0xA4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x41, 0xF4, 0x14, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF2, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x21, 0xF4, 0x18, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, 0xB4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xFD, 0xF2, 0x14, 0x49, +0x91, 0x67, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF3, +0xBC, 0x9B, 0x91, 0x67, 0x03, 0x6E, 0x40, 0xEA, +0x08, 0x94, 0x80, 0x18, 0xA3, 0x59, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x03, 0x75, 0x24, 0x67, 0x53, 0x60, 0x01, 0x76, +0x09, 0x61, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x21, 0xF0, 0x00, 0x6C, 0xFF, 0x6D, +0x01, 0x6E, 0x08, 0x10, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, 0x00, 0x6C, +0xFF, 0x6D, 0x02, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF6, 0x0C, 0x6C, 0xFF, 0xF7, +0x1F, 0x6D, 0x00, 0x6E, 0x2E, 0x10, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, +0x00, 0x6C, 0xFF, 0x6D, 0x31, 0x6E, 0x0A, 0x10, +0x02, 0x76, 0x12, 0x61, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, 0x00, 0x6C, +0xFF, 0x6D, 0x32, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF6, 0x0C, 0x6C, 0xFF, 0xF7, +0x1F, 0x6D, 0x00, 0xF4, 0x00, 0x6E, 0x11, 0x10, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x21, 0xF0, 0x00, 0x6C, 0xFF, 0x6D, 0x33, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF6, +0x0C, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0x00, 0xF4, +0x04, 0x6E, 0x40, 0xEA, 0x91, 0x67, 0x80, 0x18, +0xA3, 0x59, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0x01, 0x76, 0xD0, 0x61, +0xC6, 0x17, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x01, 0x75, 0x08, 0xD4, +0x26, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF3, 0xBC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF2, 0x04, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, +0x0C, 0x69, 0x91, 0x67, 0x20, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, +0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x83, 0xF6, +0xB8, 0x9B, 0x00, 0x6E, 0x46, 0x10, 0x02, 0x75, +0x1D, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0x83, 0xF3, 0xBC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF2, 0x04, 0x6C, 0x05, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, +0x0C, 0x69, 0x91, 0x67, 0x20, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0xA3, 0xF5, 0xA8, 0x9B, +0x00, 0x6E, 0x1E, 0x10, 0x03, 0x75, 0x26, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, +0x83, 0xF3, 0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF2, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x0C, 0x69, +0x91, 0x67, 0x20, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF5, 0xA8, 0x9B, 0x91, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x83, 0xF6, 0xB8, 0x9B, 0x91, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0x08, 0x94, 0x80, 0x18, +0xA3, 0x59, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x01, 0x6A, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x04, 0x67, 0x25, 0x67, 0x80, 0x18, 0xE7, 0x5B, +0xB1, 0x67, 0x90, 0x67, 0x80, 0x18, 0x3C, 0x5B, +0x20, 0xF0, 0x2D, 0xC0, 0x90, 0x67, 0x80, 0x18, +0xA3, 0x59, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x01, 0x75, 0x04, 0x67, 0x0C, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF2, 0x04, 0x6C, +0x83, 0xF3, 0xAC, 0x9B, 0x08, 0x6E, 0x19, 0x10, +0x02, 0x75, 0x0C, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, +0x03, 0xF2, 0x04, 0x6C, 0x83, 0xF3, 0xAC, 0x9B, +0x04, 0x6E, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, +0x83, 0xF3, 0xAC, 0x9B, 0x03, 0xF2, 0x04, 0x6C, +0x0C, 0x6E, 0x40, 0xEA, 0x90, 0x67, 0x80, 0x18, +0xA3, 0x59, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x7D, 0x67, 0x04, 0x67, +0x47, 0x43, 0x0A, 0xD6, 0x20, 0xF0, 0xAC, 0xC0, +0x21, 0x4A, 0x60, 0xA2, 0x46, 0x67, 0xAD, 0xEA, +0x0B, 0xD7, 0x25, 0x67, 0x20, 0xF0, 0x6B, 0xC4, +0x20, 0xF0, 0x4A, 0xC4, 0xA7, 0x67, 0x80, 0x18, +0x31, 0x5C, 0x0A, 0x96, 0x90, 0x67, 0xB1, 0x67, +0x80, 0x18, 0xB8, 0x5B, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF2, 0x58, 0x9A, 0x64, 0x98, 0x6C, 0xEA, +0x09, 0x22, 0x0A, 0x96, 0x0B, 0x97, 0x30, 0xF0, +0x20, 0x6C, 0xE5, 0xF7, 0x1C, 0x4C, 0xB1, 0x67, +0x80, 0x18, 0x48, 0x43, 0x90, 0x67, 0x80, 0x18, +0xA3, 0x59, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x0D, 0xD5, 0x0E, 0xD6, +0x20, 0xF0, 0x44, 0xA4, 0x04, 0x67, 0x27, 0x67, +0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, +0x58, 0x9A, 0x64, 0x9C, 0x6C, 0xEA, 0x0A, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, +0xA5, 0xF4, 0x0C, 0x4C, 0x02, 0xF6, 0x10, 0x4D, +0x80, 0x18, 0x48, 0x43, 0x20, 0xF0, 0x4F, 0xA0, +0x0B, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6D, 0x26, 0xF0, 0x00, 0x4C, 0x02, 0xF6, +0x10, 0x4D, 0x80, 0x18, 0x48, 0x43, 0x8D, 0x10, +0x0E, 0x93, 0x04, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6D, 0x26, 0xF0, 0x18, 0x4C, 0x02, 0xF6, +0x10, 0x4D, 0xC3, 0x67, 0x16, 0x10, 0x0D, 0x92, +0xFF, 0x72, 0x02, 0x61, 0xFF, 0x71, 0x15, 0x60, +0x0D, 0x93, 0x04, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x03, 0x2A, 0xA3, 0x67, 0x06, 0xD2, 0x10, 0x10, +0x0D, 0x96, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6D, 0x46, 0xF0, 0x10, 0x4C, 0x02, 0xF6, +0x10, 0x4D, 0x80, 0x18, 0x48, 0x43, 0x00, 0x6A, +0x65, 0x10, 0x01, 0x6B, 0x06, 0xD3, 0x03, 0x6D, +0x0E, 0x96, 0x90, 0x67, 0x80, 0x18, 0xE4, 0x53, +0x0E, 0x95, 0x90, 0x67, 0x80, 0x18, 0x26, 0x5C, +0x20, 0xF0, 0x4B, 0xA0, 0x03, 0x2A, 0x01, 0x6A, +0x20, 0xF0, 0x4B, 0xC0, 0x0D, 0x92, 0xFF, 0x4A, +0x02, 0x5A, 0x02, 0x60, 0x0D, 0x91, 0x0D, 0x10, +0x0D, 0x93, 0x03, 0x73, 0x06, 0x61, 0xFF, 0x71, +0x0B, 0x61, 0x20, 0xF0, 0x2B, 0xA0, 0x03, 0x6A, +0x05, 0x10, 0x06, 0x93, 0x05, 0x23, 0x20, 0xF0, +0x2B, 0xA0, 0x00, 0x6A, 0x06, 0xD2, 0x02, 0x10, +0x03, 0x6B, 0x06, 0xD3, 0x06, 0x95, 0x90, 0x67, +0xD1, 0x67, 0xF1, 0x67, 0x80, 0x18, 0x4B, 0x5C, +0x07, 0x92, 0xFF, 0x6B, 0xEB, 0x4A, 0x6C, 0xEA, +0x02, 0x5A, 0x18, 0x60, 0x20, 0xF0, 0x4A, 0xA0, +0x01, 0x72, 0x06, 0x61, 0x0E, 0x92, 0x01, 0x72, +0x03, 0x61, 0x90, 0x67, 0x01, 0x6D, 0x0C, 0x10, +0x20, 0xF0, 0x4A, 0xA0, 0x02, 0x72, 0x06, 0x61, +0x0E, 0x93, 0x02, 0x73, 0x03, 0x61, 0x90, 0x67, +0x02, 0x6D, 0x02, 0x10, 0x90, 0x67, 0x03, 0x6D, +0x80, 0x18, 0xD2, 0x58, 0x90, 0x67, 0x80, 0x18, +0xE0, 0x56, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, +0x58, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x0A, 0x22, +0x0E, 0x95, 0x0D, 0x96, 0x06, 0x97, 0x30, 0xF0, +0x20, 0x6C, 0x66, 0xF0, 0x08, 0x4C, 0x04, 0xD1, +0x80, 0x18, 0x48, 0x43, 0x90, 0x67, 0x80, 0x18, +0xA3, 0x59, 0x01, 0x6A, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, +0x20, 0xF0, 0x44, 0xA4, 0xFF, 0x69, 0x04, 0x67, +0x0A, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, +0x58, 0x9A, 0x64, 0x9C, 0xAC, 0xE9, 0x6C, 0xEA, +0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6D, 0xA5, 0xF4, 0x0C, 0x4C, 0xC2, 0xF5, +0x14, 0x4D, 0x80, 0x18, 0x48, 0x43, 0x20, 0xF0, +0x4F, 0xA0, 0x0F, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF2, 0x58, 0x9A, 0x64, 0x98, 0x6C, 0xEA, +0x80, 0xF1, 0x1A, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0x86, 0xF0, 0x0C, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x93, 0x11, 0x48, 0x41, 0xF9, 0x4A, 0xFF, 0x6B, +0x6C, 0xEA, 0x15, 0x5A, 0x0C, 0x61, 0x48, 0x41, +0xC7, 0x4A, 0x6C, 0xEA, 0x23, 0x5A, 0x07, 0x61, +0x47, 0x41, 0x68, 0x4A, 0x6C, 0xEA, 0x04, 0x5A, +0x02, 0x61, 0xB2, 0x59, 0x10, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF2, 0x58, 0x9A, 0x64, 0x98, +0x6C, 0xEA, 0x60, 0xF1, 0x1B, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0xA6, 0xF0, 0x00, 0x4C, 0xB1, 0x67, +0x80, 0x18, 0x48, 0x43, 0x73, 0x11, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF3, 0xE4, 0x9A, 0x90, 0x67, +0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, 0x9F, 0x58, +0x09, 0xD2, 0x01, 0x4A, 0x0F, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF2, 0x58, 0x9A, 0x64, 0x98, +0x6C, 0xEA, 0x40, 0xF1, 0x1F, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0xA6, 0xF0, 0x10, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x58, 0x11, 0x20, 0xF0, 0x6B, 0xA0, +0x0F, 0x59, 0x58, 0x67, 0x0B, 0xD2, 0x06, 0xD3, +0x15, 0x2B, 0x21, 0xF0, 0x00, 0x6C, 0x0F, 0x6D, +0x80, 0x18, 0x0D, 0x28, 0xFF, 0x6B, 0x4C, 0xEB, +0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, +0x20, 0xF0, 0x6B, 0xC0, 0xC6, 0xF0, 0x04, 0x4C, +0xC2, 0xF5, 0x14, 0x4D, 0xC3, 0x67, 0x06, 0xD3, +0x80, 0x18, 0x48, 0x43, 0x20, 0xF0, 0x4A, 0xA0, +0x08, 0xD2, 0x1B, 0x2A, 0x21, 0xF0, 0x00, 0x6C, +0xF0, 0x6D, 0x80, 0x18, 0x0D, 0x28, 0xC2, 0x67, +0x06, 0x92, 0xFF, 0x6B, 0x6C, 0xEE, 0xCD, 0xEA, +0x6C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6D, 0x20, 0xF0, 0xCC, 0xC0, 0x20, 0xF0, +0x4A, 0xC0, 0xE6, 0xF0, 0x0C, 0x4C, 0xC2, 0xF5, +0x14, 0x4D, 0xE2, 0x67, 0x08, 0xD2, 0x80, 0x18, +0x48, 0x43, 0x20, 0xF0, 0x6D, 0xA0, 0x07, 0xD3, +0x18, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, +0xB4, 0x9A, 0x21, 0xF0, 0x04, 0x6C, 0x80, 0x18, +0x0D, 0x28, 0xFF, 0x6B, 0x4C, 0xEB, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0x20, 0xF0, +0x6D, 0xC0, 0x26, 0xF1, 0x08, 0x4C, 0xC2, 0xF5, +0x14, 0x4D, 0xC3, 0x67, 0x07, 0xD3, 0x80, 0x18, +0x48, 0x43, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, +0x50, 0x9A, 0x09, 0x93, 0x4C, 0xEB, 0x0B, 0x92, +0x2D, 0xEB, 0x06, 0xD3, 0x16, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF6, 0x54, 0x9A, 0x91, 0x59, +0x4D, 0xEB, 0x06, 0xD3, 0x05, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF2, 0x58, 0x9A, 0x07, 0x10, +0x50, 0x59, 0x07, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF2, 0x54, 0x9A, 0x06, 0x93, 0x4D, 0xEB, +0x06, 0xD3, 0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, +0xB7, 0x53, 0x30, 0xF0, 0x21, 0x6A, 0x12, 0xF5, +0x08, 0x4A, 0x82, 0x67, 0x09, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF3, 0x04, 0x4A, 0x06, 0x93, +0xE0, 0x9A, 0x00, 0x6D, 0x18, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF3, 0x04, 0x4A, 0x06, 0x93, 0x09, 0x94, +0xE0, 0x9A, 0x01, 0x6D, 0x18, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x90, 0x67, 0x01, 0x6D, +0x80, 0x18, 0xB7, 0x53, 0x0F, 0x59, 0x11, 0x60, +0x50, 0x98, 0x40, 0xA2, 0x07, 0x2A, 0x90, 0x67, +0x05, 0x6D, 0x80, 0x18, 0x92, 0x54, 0x90, 0x67, +0x06, 0x6D, 0x1A, 0x10, 0x90, 0x67, 0x04, 0x6D, +0x80, 0x18, 0x92, 0x54, 0x90, 0x67, 0x00, 0x6D, +0x13, 0x10, 0x68, 0x41, 0xE4, 0x4B, 0xFF, 0x6A, +0x4C, 0xEB, 0x1D, 0x5B, 0x03, 0x60, 0x90, 0x67, +0x01, 0x6D, 0x0A, 0x10, 0x68, 0x41, 0xA4, 0x4B, +0x4C, 0xEB, 0x2D, 0x5B, 0x03, 0x60, 0x90, 0x67, +0x02, 0x6D, 0x02, 0x10, 0x90, 0x67, 0x03, 0x6D, +0x80, 0x18, 0xA1, 0x54, 0x90, 0x67, 0xB1, 0x67, +0x80, 0x18, 0xBC, 0x54, 0x90, 0x67, 0xB1, 0x67, +0x80, 0x18, 0x04, 0x55, 0x0B, 0x93, 0x2F, 0x23, +0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, 0x38, 0x54, +0x90, 0x67, 0x01, 0x6D, 0x00, 0x18, 0xA3, 0xC1, +0x40, 0xF4, 0x14, 0x6C, 0x80, 0x6D, 0x00, 0x6E, +0x80, 0x18, 0x9A, 0x28, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF2, 0xB8, 0x9B, 0x83, 0xF2, 0x00, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF6, 0xB8, 0x9B, 0x83, 0xF4, 0x00, 0x6C, +0x0F, 0x6E, 0x40, 0xEA, 0x0A, 0x92, 0xFF, 0x6B, +0xEB, 0x4A, 0x6C, 0xEA, 0x02, 0x5A, 0x41, 0x60, +0x90, 0x67, 0x00, 0x6D, 0x3C, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF6, 0xA8, 0x9B, 0x83, 0xF4, -0x00, 0x6C, 0x22, 0x6E, 0x40, 0xEA, 0x0A, 0x92, -0xFF, 0x6B, 0xEB, 0x4A, 0x6C, 0xEA, 0x02, 0x5A, -0x16, 0x60, 0x08, 0x92, 0x01, 0x72, 0x06, 0x61, -0x07, 0x93, 0x01, 0x73, 0x0C, 0x61, 0x90, 0x67, -0x01, 0x6D, 0x0B, 0x10, 0x08, 0x92, 0x02, 0x72, -0x06, 0x61, 0x07, 0x93, 0x02, 0x73, 0x03, 0x61, -0x90, 0x67, 0x02, 0x6D, 0x02, 0x10, 0x90, 0x67, -0x03, 0x6D, 0x80, 0x18, 0x4D, 0x5A, 0x90, 0x67, -0x80, 0x18, 0x5B, 0x58, 0x52, 0x98, 0x40, 0xA2, -0x04, 0x22, 0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, -0xE6, 0x56, 0x90, 0x67, 0x80, 0x18, 0x1E, 0x5B, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x54, 0x9A, -0x64, 0x98, 0x6C, 0xEA, 0x07, 0x22, 0x30, 0xF0, -0x20, 0x6C, 0x46, 0xF1, 0x14, 0x4C, 0xB1, 0x67, -0x80, 0x18, 0x39, 0x43, 0x01, 0x6A, 0x01, 0x10, -0x00, 0x6A, 0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, -0x08, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x26, 0x67, -0x4C, 0xED, 0x04, 0x67, 0x0B, 0xD7, 0x4C, 0xE9, -0x80, 0x18, 0x3F, 0x5E, 0x00, 0x6B, 0x09, 0x22, -0x0B, 0x96, 0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, -0x7B, 0x5B, 0x4B, 0xEB, 0x4D, 0xEB, 0xC0, 0xF7, -0x62, 0x33, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x43, 0x67, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x09, 0x6B, 0xBD, 0x67, -0xFF, 0x6A, 0x70, 0xC5, 0x07, 0x6B, 0x4C, 0xEC, -0x6F, 0xCD, 0x04, 0x6B, 0x8E, 0xEB, 0x92, 0xC5, -0x31, 0x23, 0x05, 0x74, 0x3E, 0x60, 0x4A, 0x2C, -0x30, 0xF0, 0x20, 0x6B, 0xAF, 0xF6, 0x94, 0xA3, -0x20, 0x6B, 0x8C, 0xEB, 0x4C, 0xEB, 0x1C, 0x23, -0x40, 0x6B, 0x8C, 0xEB, 0x4C, 0xEB, 0x04, 0x23, -0x01, 0x6A, 0x7D, 0x67, 0x53, 0xC3, 0x16, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF6, 0x60, 0x9B, -0x60, 0xA3, 0x07, 0x2B, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF6, 0x64, 0x9B, 0x60, 0xA3, 0x6C, 0xEA, -0x04, 0x22, 0x01, 0x6A, 0x9D, 0x67, 0x53, 0xC4, -0x05, 0x10, 0xBD, 0x67, 0x53, 0xC5, 0x02, 0x10, -0x5D, 0x67, 0x73, 0xC2, 0x00, 0x6A, 0x7D, 0x67, -0x54, 0xC3, 0x55, 0xC3, 0x56, 0xC3, 0x57, 0xC3, -0x58, 0xC3, 0x44, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xA4, 0xF5, 0x98, 0xAA, -0xBD, 0x67, 0x75, 0xC5, 0x82, 0x32, 0x93, 0xC5, -0x54, 0xC5, 0x76, 0xC5, 0x77, 0xC5, 0x78, 0xC5, -0x35, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, -0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6D, 0x00, 0xF0, -0x13, 0x04, 0x2B, 0xF2, 0x12, 0x4D, 0x05, 0x6E, -0x40, 0xEA, 0x28, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xA4, 0xF5, 0x72, 0xA2, -0x9D, 0x67, 0xBD, 0x67, 0x73, 0xC4, 0xA4, 0xF5, -0x93, 0xA2, 0x94, 0xC5, 0xA4, 0xF5, 0x94, 0xA2, -0x95, 0xC5, 0xA4, 0xF5, 0x95, 0xA2, 0x96, 0xC5, -0xA4, 0xF5, 0x96, 0xA2, 0x97, 0xC5, 0xA4, 0xF5, -0x97, 0xA2, 0x98, 0xC5, 0x64, 0xF5, 0xDC, 0xA2, -0x01, 0x6C, 0x6C, 0xEC, 0x21, 0x6B, 0x6B, 0xEB, -0x94, 0x35, 0xCC, 0xEB, 0xAD, 0xEB, 0x41, 0x6D, -0xAB, 0xED, 0x98, 0x34, 0xAC, 0xEB, 0x8D, 0xEB, -0x64, 0xF5, 0x7C, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0x6B, 0x63, 0xF2, 0xB8, 0x9B, 0x83, 0xF2, +0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x01, 0x6E, +0x40, 0xF4, 0x14, 0x6C, 0x80, 0x6D, 0x80, 0x18, +0x9A, 0x28, 0x90, 0x67, 0x02, 0x6D, 0x00, 0x18, +0xA3, 0xC1, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF6, +0xB8, 0x9B, 0x83, 0xF4, 0x00, 0x6C, 0x22, 0x6E, +0x40, 0xEA, 0x0A, 0x92, 0xFF, 0x6B, 0xEB, 0x4A, +0x6C, 0xEA, 0x02, 0x5A, 0x16, 0x60, 0x08, 0x92, +0x01, 0x72, 0x06, 0x61, 0x07, 0x93, 0x01, 0x73, +0x0C, 0x61, 0x90, 0x67, 0x01, 0x6D, 0x0B, 0x10, +0x08, 0x92, 0x02, 0x72, 0x06, 0x61, 0x07, 0x93, +0x02, 0x73, 0x03, 0x61, 0x90, 0x67, 0x02, 0x6D, +0x02, 0x10, 0x90, 0x67, 0x03, 0x6D, 0x80, 0x18, +0xD2, 0x58, 0x90, 0x67, 0x80, 0x18, 0xE0, 0x56, +0x52, 0x98, 0x40, 0xA2, 0x04, 0x22, 0x90, 0x67, +0xB1, 0x67, 0x80, 0x18, 0x6B, 0x55, 0x90, 0x67, +0x80, 0x18, 0xA3, 0x59, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF2, 0x58, 0x9A, 0x64, 0x98, 0x6C, 0xEA, +0x07, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x46, 0xF1, +0x18, 0x4C, 0xB1, 0x67, 0x80, 0x18, 0x48, 0x43, +0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x0F, 0x97, +0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0x26, 0x67, 0x4C, 0xED, 0x04, 0x67, +0x0B, 0xD7, 0x4C, 0xE9, 0x80, 0x18, 0xC4, 0x5C, +0x00, 0x6B, 0x09, 0x22, 0x0B, 0x96, 0x90, 0x67, +0xB1, 0x67, 0x80, 0x18, 0x00, 0x5A, 0x4B, 0xEB, +0x4D, 0xEB, 0xC0, 0xF7, 0x62, 0x33, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x43, 0x67, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x09, 0x6B, 0xBD, 0x67, 0xFF, 0x6A, 0x70, 0xC5, +0x07, 0x6B, 0x4C, 0xEC, 0x6F, 0xCD, 0x04, 0x6B, +0x8E, 0xEB, 0x92, 0xC5, 0x31, 0x23, 0x05, 0x74, +0x3E, 0x60, 0x4A, 0x2C, 0x30, 0xF0, 0x20, 0x6B, +0xAF, 0xF6, 0x90, 0xA3, 0x20, 0x6B, 0x8C, 0xEB, +0x4C, 0xEB, 0x1C, 0x23, 0x40, 0x6B, 0x8C, 0xEB, +0x4C, 0xEB, 0x04, 0x23, 0x01, 0x6A, 0x7D, 0x67, +0x53, 0xC3, 0x16, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF6, 0x70, 0x9B, 0x60, 0xA3, 0x07, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF6, 0x74, 0x9B, +0x60, 0xA3, 0x6C, 0xEA, 0x04, 0x22, 0x01, 0x6A, +0x9D, 0x67, 0x53, 0xC4, 0x05, 0x10, 0xBD, 0x67, +0x53, 0xC5, 0x02, 0x10, 0x5D, 0x67, 0x73, 0xC2, +0x00, 0x6A, 0x7D, 0x67, 0x54, 0xC3, 0x55, 0xC3, +0x56, 0xC3, 0x57, 0xC3, 0x58, 0xC3, 0x44, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0xA4, 0xF5, 0x94, 0xAA, 0xBD, 0x67, 0x75, 0xC5, +0x82, 0x32, 0x93, 0xC5, 0x54, 0xC5, 0x76, 0xC5, +0x77, 0xC5, 0x78, 0xC5, 0x35, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0x30, 0xF0, +0x20, 0x6D, 0x00, 0xF0, 0x13, 0x04, 0x2B, 0xF2, +0x12, 0x4D, 0x05, 0x6E, 0x40, 0xEA, 0x28, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0xA4, 0xF5, 0x6E, 0xA2, 0x9D, 0x67, 0xBD, 0x67, +0x73, 0xC4, 0xA4, 0xF5, 0x8F, 0xA2, 0x94, 0xC5, +0xA4, 0xF5, 0x90, 0xA2, 0x95, 0xC5, 0xA4, 0xF5, +0x91, 0xA2, 0x96, 0xC5, 0xA4, 0xF5, 0x92, 0xA2, +0x97, 0xC5, 0xA4, 0xF5, 0x93, 0xA2, 0x98, 0xC5, +0x64, 0xF5, 0xD8, 0xA2, 0x01, 0x6C, 0x6C, 0xEC, +0x21, 0x6B, 0x6B, 0xEB, 0x94, 0x35, 0xCC, 0xEB, +0xAD, 0xEB, 0x41, 0x6D, 0xAB, 0xED, 0x98, 0x34, +0xAC, 0xEB, 0x8D, 0xEB, 0x64, 0xF5, 0x78, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, +0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x0A, 0x6A, 0x7D, 0x67, 0x50, 0xC3, 0x06, 0x6A, +0x4F, 0xCB, 0x40, 0xA4, 0x52, 0xC3, 0x41, 0xA4, +0x53, 0xC3, 0x42, 0xA4, 0x54, 0xC3, 0x43, 0xA4, +0x55, 0xC3, 0x44, 0xA4, 0x56, 0xC3, 0x45, 0xA4, +0x04, 0x04, 0x57, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF4, 0x5C, 0x9A, 0x40, 0xEA, 0x09, 0x97, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0x0B, 0x6B, 0x4C, 0xED, +0xCC, 0xEA, 0xDD, 0x67, 0x70, 0xC6, 0x07, 0x6B, +0x6F, 0xCE, 0x92, 0xC6, 0x17, 0x24, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA4, 0xF5, +0x6F, 0xA2, 0x73, 0xC6, 0xA4, 0xF5, 0x6D, 0xA2, +0x74, 0xC6, 0xA4, 0xF5, 0x70, 0xA2, 0x75, 0xC6, +0xA4, 0xF5, 0x71, 0xA2, 0x76, 0xC6, 0xA4, 0xF5, +0x72, 0xA2, 0xA4, 0xF5, 0x53, 0xA2, 0x77, 0xC6, +0x58, 0xC6, 0x07, 0x10, 0x7D, 0x67, 0xB3, 0xC3, +0x54, 0xC3, 0x95, 0xC3, 0x96, 0xC3, 0x97, 0xC3, +0x98, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x15, 0x6A, 0x7D, 0x67, 0x50, 0xC3, 0x01, 0x6A, +0x4F, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x5C, 0x9A, 0x92, 0xC3, 0x04, 0x04, 0x40, 0xEA, +0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x27, 0x6A, 0x7D, 0x67, +0x50, 0xC3, 0x08, 0x6A, 0x4F, 0xCB, 0x52, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0x84, 0xF5, 0x76, 0xA2, 0x9D, 0x67, 0x73, 0xC4, +0x84, 0xF5, 0x77, 0xA2, 0x74, 0xC4, 0x84, 0xF5, +0x7E, 0xA2, 0x75, 0xC4, 0x84, 0xF5, 0x7C, 0xA2, +0x76, 0xC4, 0x84, 0xF5, 0x7D, 0xA2, 0x77, 0xC4, +0xA4, 0xF5, 0x65, 0xA2, 0xA4, 0xF5, 0x47, 0xA2, +0x78, 0xC4, 0x59, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x0A, 0x6A, 0x7D, 0x67, -0x50, 0xC3, 0x06, 0x6A, 0x4F, 0xCB, 0x40, 0xA4, -0x52, 0xC3, 0x41, 0xA4, 0x53, 0xC3, 0x42, 0xA4, -0x54, 0xC3, 0x43, 0xA4, 0x55, 0xC3, 0x44, 0xA4, -0x56, 0xC3, 0x45, 0xA4, 0x04, 0x04, 0x57, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, -0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, -0x0B, 0x6B, 0x4C, 0xED, 0xCC, 0xEA, 0xDD, 0x67, -0x70, 0xC6, 0x07, 0x6B, 0x6F, 0xCE, 0x92, 0xC6, -0x17, 0x24, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0xA4, 0xF5, 0x73, 0xA2, 0x73, 0xC6, -0xA4, 0xF5, 0x71, 0xA2, 0x74, 0xC6, 0xA4, 0xF5, -0x74, 0xA2, 0x75, 0xC6, 0xA4, 0xF5, 0x75, 0xA2, -0x76, 0xC6, 0xA4, 0xF5, 0x76, 0xA2, 0xA4, 0xF5, -0x57, 0xA2, 0x77, 0xC6, 0x58, 0xC6, 0x07, 0x10, -0x7D, 0x67, 0xB3, 0xC3, 0x54, 0xC3, 0x95, 0xC3, -0x96, 0xC3, 0x97, 0xC3, 0x98, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, -0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x15, 0x6A, 0x7D, 0x67, -0x50, 0xC3, 0x01, 0x6A, 0x4F, 0xCB, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x92, 0xC3, -0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x27, 0x6A, 0x7D, 0x67, 0x50, 0xC3, 0x08, 0x6A, -0x4F, 0xCB, 0x52, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x84, 0xF5, 0x7A, 0xA2, -0x9D, 0x67, 0x73, 0xC4, 0x84, 0xF5, 0x7B, 0xA2, -0x74, 0xC4, 0xA4, 0xF5, 0x62, 0xA2, 0x75, 0xC4, -0xA4, 0xF5, 0x60, 0xA2, 0x76, 0xC4, 0xA4, 0xF5, -0x61, 0xA2, 0x77, 0xC4, 0xA4, 0xF5, 0x69, 0xA2, -0xA4, 0xF5, 0x4B, 0xA2, 0x78, 0xC4, 0x59, 0xC4, -0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, -0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF6, 0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF6, 0x50, 0x9A, 0x60, 0xDA, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, 0x74, 0x9A, -0xFC, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, 0x58, 0x9A, -0x0D, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x69, 0xF2, 0x08, 0x4A, 0x74, 0x9A, 0x07, 0x23, -0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF6, 0x90, 0x9C, -0x60, 0xDC, 0x00, 0x6B, 0x74, 0xDA, 0x20, 0xE8, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0x64, 0xF5, -0x9D, 0xA0, 0x01, 0x6B, 0x43, 0x67, 0x8C, 0xEA, -0x57, 0x2A, 0x30, 0xF0, 0x20, 0x6D, 0x89, 0xF0, -0x58, 0xDD, 0x30, 0xF0, 0x20, 0x6D, 0x89, 0xF0, -0x5C, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF5, -0x54, 0x9A, 0x8D, 0xEB, 0x64, 0xF5, 0x7D, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, 0x78, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, 0x40, 0x9A, +0x60, 0xDA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF6, 0x64, 0x9A, 0xFC, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF6, 0x48, 0x9A, 0x0D, 0x6B, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF2, 0x08, 0x4A, +0x74, 0x9A, 0x07, 0x23, 0x30, 0xF0, 0x20, 0x6C, +0xC3, 0xF6, 0x80, 0x9C, 0x60, 0xDC, 0x00, 0x6B, +0x74, 0xDA, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, +0x18, 0x48, 0x64, 0xF5, 0x99, 0xA0, 0x01, 0x6B, +0x43, 0x67, 0x8C, 0xEA, 0x57, 0x2A, 0x30, 0xF0, +0x20, 0x6D, 0x89, 0xF0, 0x58, 0xDD, 0x30, 0xF0, +0x20, 0x6D, 0x89, 0xF0, 0x5C, 0xC5, 0x30, 0xF0, +0x20, 0x6A, 0x40, 0xF5, 0x54, 0x9A, 0x8D, 0xEB, +0x64, 0xF5, 0x79, 0xC0, 0x00, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF5, 0x58, 0x9A, +0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF5, 0x5C, 0x9A, 0x00, 0x6C, 0x40, 0xEA, +0xE0, 0xF0, 0x7E, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, +0xFF, 0x6B, 0x6C, 0xEA, 0x10, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF6, 0x44, 0x9A, 0x02, 0xF0, +0x00, 0x6C, 0x60, 0x9A, 0x8D, 0xEB, 0x60, 0xDA, +0x30, 0xF0, 0x20, 0x6C, 0x60, 0x9A, 0xA3, 0xF2, +0x98, 0x9C, 0x8D, 0xEB, 0x60, 0xDA, 0x30, 0xF0, +0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0x00, 0xF1, +0x76, 0xA0, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, +0x4C, 0x9A, 0x07, 0x6C, 0x6C, 0xEC, 0x00, 0x6D, +0x40, 0xEA, 0xE0, 0xF0, 0x9E, 0xA0, 0x04, 0x6B, +0x8C, 0xEB, 0x10, 0x23, 0x84, 0xF5, 0x78, 0x98, +0x43, 0xEB, 0x0C, 0x60, 0x84, 0xF5, 0x9F, 0xA0, +0x6F, 0xE2, 0x80, 0x34, 0x88, 0x34, 0x63, 0xEC, +0x05, 0x60, 0x84, 0xF5, 0x5D, 0xA0, 0x01, 0x4A, +0x84, 0xF5, 0x5D, 0xC0, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0xA4, 0xF5, 0x64, 0xA2, +0x01, 0x4B, 0xA4, 0xF5, 0x64, 0xC2, 0x20, 0xE8, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF0, 0x58, 0x9A, +0x14, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF0, +0x7C, 0xA2, 0x0F, 0x23, 0x00, 0x6B, 0x89, 0xF0, +0x7C, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF5, +0x54, 0x9A, 0x01, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x40, 0xF5, 0x58, 0x9A, 0x01, 0x6C, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0x93, 0x5E, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x89, 0xF0, 0x58, 0x9A, 0x11, 0x22, 0x01, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF0, 0x7C, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF5, 0x54, 0x9A, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF5, 0x58, 0x9A, 0x00, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF5, 0x5C, 0x9A, -0x00, 0x6C, 0x40, 0xEA, 0xE0, 0xF0, 0x7E, 0xA0, -0x02, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, -0x10, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, -0x54, 0x9A, 0x02, 0xF0, 0x00, 0x6C, 0x60, 0x9A, -0x8D, 0xEB, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6C, -0x60, 0x9A, 0xA3, 0xF2, 0x94, 0x9C, 0x8D, 0xEB, -0x60, 0xDA, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, -0x18, 0x48, 0x00, 0xF1, 0x76, 0xA0, 0x30, 0xF0, -0x20, 0x6A, 0x40, 0xF4, 0x4C, 0x9A, 0x07, 0x6C, -0x6C, 0xEC, 0x00, 0x6D, 0x40, 0xEA, 0xE0, 0xF0, -0x9E, 0xA0, 0x04, 0x6B, 0x8C, 0xEB, 0x10, 0x23, -0x84, 0xF5, 0x7C, 0x98, 0x43, 0xEB, 0x0C, 0x60, -0xA4, 0xF5, 0x83, 0xA0, 0x6F, 0xE2, 0x80, 0x34, -0x88, 0x34, 0x63, 0xEC, 0x05, 0x60, 0xA4, 0xF5, -0x41, 0xA0, 0x01, 0x4A, 0xA4, 0xF5, 0x41, 0xC0, -0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0xA4, 0xF5, 0x68, 0xA2, 0x01, 0x4B, 0xA4, 0xF5, -0x68, 0xC2, 0x20, 0xE8, 0x20, 0xE8, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x89, 0xF0, 0x58, 0x9A, 0x14, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x89, 0xF0, 0x7C, 0xA2, 0x0F, 0x23, -0x00, 0x6B, 0x89, 0xF0, 0x7C, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x40, 0xF5, 0x54, 0x9A, 0x01, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF5, -0x58, 0x9A, 0x01, 0x6C, 0x40, 0xEA, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x80, 0x18, 0x0E, 0x60, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF0, 0x58, 0x9A, -0x11, 0x22, 0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0x89, 0xF0, 0x7C, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x40, 0xF5, 0x54, 0x9A, 0x00, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF5, 0x58, 0x9A, -0x00, 0x6C, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x69, -0x80, 0xF2, 0x4C, 0x99, 0x04, 0x67, 0xB0, 0x67, -0x04, 0x04, 0x05, 0x6E, 0x40, 0xEA, 0x80, 0xF2, -0x4C, 0x99, 0x30, 0xF0, 0x20, 0x6C, 0x89, 0xF0, -0x10, 0x4C, 0xB0, 0x67, 0x05, 0x6E, 0x40, 0xEA, -0x60, 0xA0, 0x01, 0x6A, 0x4C, 0xEB, 0x05, 0x23, -0x30, 0xF0, 0x20, 0x6B, 0x89, 0xF0, 0x55, 0xC3, -0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF5, -0x4C, 0x9A, 0x90, 0x67, 0x40, 0xEA, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, -0x2B, 0xF1, 0x18, 0x4B, 0xC0, 0xA4, 0x00, 0xF1, -0xE1, 0xA3, 0x02, 0x6A, 0x01, 0x6D, 0x4B, 0xEA, -0xAC, 0xEE, 0xEC, 0xEA, 0xCD, 0xEA, 0x00, 0xF1, -0x41, 0xC3, 0x80, 0xA4, 0x86, 0x34, 0xAC, 0xEC, -0x84, 0x35, 0x03, 0x6C, 0x8B, 0xEC, 0x4C, 0xEC, -0xAD, 0xEC, 0x00, 0xF1, 0x81, 0xC3, 0x20, 0xE8, -0x40, 0xA4, 0x0C, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF6, 0x70, 0x9A, 0xFF, 0x6C, 0x18, 0x6D, -0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, -0x40, 0xC3, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0xAF, 0xF6, 0x74, 0xA2, 0x08, 0x6A, 0x6C, 0xEA, -0x08, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, -0x70, 0x9A, 0xE7, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, -0x40, 0xC3, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xA4, 0x00, 0xF1, -0xC8, 0xA2, 0x02, 0x6B, 0x01, 0x6C, 0x6B, 0xEB, -0x8C, 0xED, 0xCC, 0xEB, 0xAD, 0xEB, 0x00, 0xF1, -0x68, 0xC2, 0x8C, 0xEB, 0x01, 0x23, 0x18, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, 0x50, 0x9A, -0x60, 0xC2, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0xA0, 0xA4, 0x00, 0xF1, 0xCF, 0xA2, 0x02, 0x6B, -0x01, 0x6C, 0x6B, 0xEB, 0x8C, 0xED, 0xCC, 0xEB, -0xAD, 0xEB, 0x00, 0xF1, 0x6F, 0xC2, 0x8C, 0xEB, -0xFF, 0x6A, 0x44, 0x23, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF6, 0x94, 0x9B, 0xE5, 0x6D, 0xAB, 0xED, -0x60, 0xA4, 0x4C, 0xEB, 0xAC, 0xEB, 0xA4, 0x6D, -0xAD, 0xEB, 0x60, 0xDC, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF6, 0x78, 0x9B, 0x80, 0xA3, 0x8C, 0xEA, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, -0x5C, 0x9A, 0x42, 0xF2, 0x15, 0x6B, 0x01, 0x6C, -0x60, 0xCA, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF5, -0x50, 0x9A, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF6, 0x74, 0x9A, 0x03, 0x6C, 0x40, 0x9B, -0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF6, 0x60, 0x9A, 0xFE, 0xF5, 0x1C, 0x4C, -0x40, 0x9B, 0x8C, 0xEA, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF6, 0x64, 0x9A, 0x7F, 0x6A, -0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF6, 0x68, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0xE3, 0xF6, 0x8C, 0x9C, 0x40, 0x9B, -0x8C, 0xEA, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x60, 0xA4, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x00, 0xF1, -0xB6, 0xA2, 0x07, 0x6C, 0x6C, 0xEC, 0x08, 0x6B, -0x6B, 0xEB, 0xAC, 0xEB, 0x8D, 0xEB, 0x00, 0xF1, -0x76, 0xC2, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, -0x01, 0x6A, 0x7D, 0x67, 0x50, 0xC3, 0x02, 0x6A, -0x51, 0xC3, 0x03, 0x6A, 0x52, 0xC3, 0x04, 0x6C, -0x04, 0x6A, 0x04, 0x05, 0x53, 0xC3, 0x00, 0x18, -0x80, 0xC1, 0x07, 0x97, 0x00, 0x6A, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0xA4, 0xF5, 0x85, 0xA2, 0x03, 0x6B, -0x8C, 0xEB, 0x03, 0x73, 0x1D, 0x61, 0xE0, 0xF0, -0x7E, 0xA2, 0x04, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, -0x6C, 0xEA, 0x16, 0x22, 0x30, 0xF0, 0x20, 0x68, -0x89, 0xF0, 0x58, 0x98, 0x11, 0x22, 0x00, 0x6C, -0x00, 0x18, 0x06, 0xDE, 0x89, 0xF0, 0x78, 0x98, -0x43, 0xEB, 0x0A, 0x60, 0x6B, 0xE2, 0x30, 0xF0, -0x20, 0x6B, 0xE3, 0xF6, 0x90, 0x9B, 0x01, 0x6B, -0x43, 0xEC, 0x58, 0x67, 0x6E, 0xEA, 0x01, 0x10, -0x00, 0x6A, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, -0x30, 0xF0, 0x20, 0x6B, 0x06, 0xD4, 0x2B, 0xF1, -0x18, 0x4B, 0xA4, 0xF5, 0xA5, 0xA3, 0x03, 0x6C, -0xAC, 0xEC, 0x4C, 0xEC, 0x0D, 0x2C, 0xA4, 0xF5, -0x46, 0xA3, 0x01, 0x4A, 0xA4, 0xF5, 0x46, 0xC3, -0xA4, 0xF5, 0x45, 0xA3, 0xA4, 0xF5, 0x86, 0xA3, -0x4A, 0x32, 0x42, 0xEC, 0x4B, 0x60, 0xAD, 0x10, -0xA4, 0xF5, 0x45, 0xA3, 0xA4, 0xF5, 0x86, 0xA3, -0x4A, 0x32, 0x42, 0xEC, 0x0E, 0x60, 0x00, 0x6A, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, -0x4C, 0x9A, 0x10, 0xF0, 0x32, 0x6C, 0x00, 0x6D, -0xD0, 0xF5, 0x19, 0x4C, 0xC5, 0x67, 0x01, 0x6F, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0xA4, 0xF5, 0x66, 0xA2, 0x29, 0x23, -0xA4, 0xF5, 0x65, 0xA2, 0x03, 0x6A, 0x6C, 0xEA, -0x03, 0x6B, 0x6E, 0xEA, 0x0C, 0x2A, 0x04, 0xD2, -0x10, 0xF0, 0x32, 0x6C, 0x30, 0xF0, 0x20, 0x6A, -0x00, 0xF3, 0x4C, 0x9A, 0xB0, 0xF4, 0x15, 0x4C, -0x00, 0x6D, 0x34, 0x6E, 0x0C, 0x10, 0x00, 0x6A, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, -0x4C, 0x9A, 0x10, 0xF0, 0x32, 0x6C, 0xB0, 0xF4, -0x15, 0x4C, 0x00, 0x6D, 0x66, 0x6E, 0x01, 0x6F, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0xA4, 0xF5, 0x66, 0xA2, 0xFF, 0x4B, -0x03, 0x10, 0xA4, 0xF5, 0x65, 0xA2, 0x6A, 0x33, -0xA4, 0xF5, 0x66, 0xC2, 0x30, 0xF0, 0x20, 0x68, -0x2B, 0xF1, 0x18, 0x48, 0xE0, 0xF0, 0x7A, 0xA0, -0x01, 0x6A, 0xFF, 0x69, 0x6C, 0xEA, 0x34, 0x22, -0x00, 0x6A, 0x64, 0xF5, 0x7C, 0xA0, 0x64, 0xF5, -0x5F, 0xC0, 0x80, 0x6A, 0x4B, 0xEA, 0x6D, 0xEA, -0x64, 0xF5, 0x5C, 0xC0, 0x80, 0x18, 0xAD, 0x60, -0x06, 0x22, 0x06, 0x92, 0x01, 0x72, 0x49, 0x61, -0x80, 0x18, 0x21, 0x60, 0x46, 0x10, 0xE0, 0xF0, -0x9A, 0xA0, 0x04, 0x6B, 0x8C, 0xEB, 0x2C, 0xEB, -0x15, 0x23, 0x84, 0xF5, 0x98, 0xA0, 0x84, 0xF5, -0x79, 0xA0, 0x63, 0xEC, 0x08, 0x61, 0x30, 0xF0, -0x20, 0x6B, 0x84, 0xF5, 0x90, 0x98, 0xA3, 0xF6, -0x70, 0x9B, 0x80, 0xDB, 0x05, 0x10, 0x00, 0x18, -0x3F, 0xD9, 0x84, 0xF5, 0x58, 0xA0, 0x01, 0x4A, -0x84, 0xF5, 0x58, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0x60, 0xF5, 0x48, 0x9A, 0x40, 0xEA, 0x25, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, 0x4C, 0x9A, -0x60, 0xAA, 0xEF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, -0xA4, 0xF5, 0x58, 0xC8, 0x30, 0xF0, 0x20, 0x6B, -0x69, 0xF2, 0x56, 0xCB, 0xA4, 0xF5, 0x58, 0xA8, -0x10, 0x6B, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF6, 0x74, 0x9A, 0x03, 0x6C, -0x40, 0xA3, 0x2C, 0xEA, 0x8D, 0xEA, 0x2C, 0xEA, -0x07, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, -0x74, 0x9A, 0xFC, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, -0x40, 0xC3, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x6C, 0x80, 0x18, 0xC5, 0x60, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF0, 0x75, 0xA2, -0x0C, 0x23, 0x00, 0x6B, 0x89, 0xF0, 0x75, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF5, 0x4C, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0x89, 0xF0, 0x10, 0x4C, -0x40, 0xEA, 0x01, 0x6C, 0x80, 0x18, 0xC5, 0x60, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x30, 0xF0, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x69, 0x80, 0xF2, 0x4C, 0x99, +0x04, 0x67, 0xB0, 0x67, 0x04, 0x04, 0x05, 0x6E, +0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x99, 0x30, 0xF0, +0x20, 0x6C, 0x89, 0xF0, 0x10, 0x4C, 0xB0, 0x67, +0x05, 0x6E, 0x40, 0xEA, 0x60, 0xA0, 0x01, 0x6A, +0x4C, 0xEB, 0x05, 0x23, 0x30, 0xF0, 0x20, 0x6B, +0x89, 0xF0, 0x55, 0xC3, 0x06, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x60, 0xF5, 0x4C, 0x9A, 0x90, 0x67, +0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, +0xC0, 0xA4, 0x00, 0xF1, 0xE1, 0xA3, 0x02, 0x6A, +0x01, 0x6D, 0x4B, 0xEA, 0xAC, 0xEE, 0xEC, 0xEA, +0xCD, 0xEA, 0x00, 0xF1, 0x41, 0xC3, 0x80, 0xA4, +0x86, 0x34, 0xAC, 0xEC, 0x84, 0x35, 0x03, 0x6C, +0x8B, 0xEC, 0x4C, 0xEC, 0xAD, 0xEC, 0x00, 0xF1, +0x81, 0xC3, 0x20, 0xE8, 0x40, 0xA4, 0x0C, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF6, 0x60, 0x9A, +0xFF, 0x6C, 0x18, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0xAF, 0xF6, 0x70, 0xA2, +0x08, 0x6A, 0x6C, 0xEA, 0x08, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF6, 0x60, 0x9A, 0xE7, 0x6A, +0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0xA0, 0xA4, 0x00, 0xF1, 0xC8, 0xA2, 0x02, 0x6B, +0x01, 0x6C, 0x6B, 0xEB, 0x8C, 0xED, 0xCC, 0xEB, +0xAD, 0xEB, 0x00, 0xF1, 0x68, 0xC2, 0x8C, 0xEB, +0x01, 0x23, 0x18, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF6, 0x40, 0x9A, 0x60, 0xC2, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xA4, 0x00, 0xF1, +0xCF, 0xA2, 0x02, 0x6B, 0x01, 0x6C, 0x6B, 0xEB, +0x8C, 0xED, 0xCC, 0xEB, 0xAD, 0xEB, 0x00, 0xF1, +0x6F, 0xC2, 0x8C, 0xEB, 0xFF, 0x6A, 0x44, 0x23, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF6, 0x84, 0x9B, +0xE5, 0x6D, 0xAB, 0xED, 0x60, 0xA4, 0x4C, 0xEB, +0xAC, 0xEB, 0xA4, 0x6D, 0xAD, 0xEB, 0x60, 0xDC, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF6, 0x68, 0x9B, +0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF6, 0x4C, 0x9A, 0x42, 0xF2, +0x15, 0x6B, 0x01, 0x6C, 0x60, 0xCA, 0x30, 0xF0, +0x20, 0x6A, 0x40, 0xF5, 0x50, 0x9A, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, 0x64, 0x9A, +0x03, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF6, 0x70, 0x9A, +0xFE, 0xF5, 0x1C, 0x4C, 0x40, 0x9B, 0x8C, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF6, +0x74, 0x9A, 0x7F, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF6, +0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF6, +0x9C, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, 0x40, 0xDB, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x60, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0x00, 0xF1, 0xB6, 0xA2, 0x07, 0x6C, +0x6C, 0xEC, 0x08, 0x6B, 0x6B, 0xEB, 0xAC, 0xEB, +0x8D, 0xEB, 0x00, 0xF1, 0x76, 0xC2, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x01, 0x6A, 0x7D, 0x67, +0x50, 0xC3, 0x02, 0x6A, 0x51, 0xC3, 0x03, 0x6A, +0x52, 0xC3, 0x04, 0x6C, 0x04, 0x6A, 0x04, 0x05, +0x53, 0xC3, 0x00, 0x18, 0x80, 0xC1, 0x07, 0x97, +0x00, 0x6A, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA4, 0xF5, -0xC5, 0xA2, 0x03, 0x6B, 0xFF, 0x6D, 0xCC, 0xEB, -0xAC, 0xEB, 0xAC, 0xEC, 0x09, 0x2B, 0xA4, 0xF5, -0xA5, 0xA2, 0xA4, 0xF5, 0xC6, 0xA2, 0xAA, 0x35, -0xA2, 0xEE, 0x55, 0x61, 0xA4, 0xF5, 0x66, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0xE0, 0xF0, 0xBA, 0xA2, 0x01, 0x6B, 0xAC, 0xEB, -0x4A, 0x23, 0x64, 0xF5, 0x5F, 0xA2, 0x47, 0x2A, -0x01, 0x74, 0x07, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x89, 0xF0, 0x7D, 0xA2, 0x01, 0x4B, 0x89, 0xF0, -0x7D, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF0, -0x7D, 0xA2, 0x14, 0x5B, 0x05, 0x61, 0x00, 0x6B, -0x89, 0xF0, 0x7D, 0xC2, 0x80, 0x18, 0xA9, 0x5F, -0x80, 0x18, 0xAD, 0x60, 0x1C, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x89, 0xF0, 0x58, 0x9A, 0x2B, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF0, 0x5C, 0xA2, -0x26, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF2, -0xD3, 0xA2, 0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x81, 0xA2, 0x03, 0x6B, 0x8C, 0xEB, 0x03, 0x73, +0x1D, 0x61, 0xE0, 0xF0, 0x7E, 0xA2, 0x04, 0x6A, +0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x16, 0x22, +0x30, 0xF0, 0x20, 0x68, 0x89, 0xF0, 0x58, 0x98, +0x11, 0x22, 0x00, 0x6C, 0x00, 0x18, 0x65, 0xDD, +0x89, 0xF0, 0x78, 0x98, 0x43, 0xEB, 0x0A, 0x60, +0x6B, 0xE2, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF7, +0x80, 0x9B, 0x01, 0x6B, 0x43, 0xEC, 0x58, 0x67, +0x6E, 0xEA, 0x01, 0x10, 0x00, 0x6A, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0x30, 0xF0, 0x20, 0x6B, +0x06, 0xD4, 0x2B, 0xF1, 0x18, 0x4B, 0xA4, 0xF5, +0xA1, 0xA3, 0x03, 0x6C, 0xAC, 0xEC, 0x4C, 0xEC, +0x0D, 0x2C, 0xA4, 0xF5, 0x42, 0xA3, 0x01, 0x4A, +0xA4, 0xF5, 0x42, 0xC3, 0xA4, 0xF5, 0x41, 0xA3, +0xA4, 0xF5, 0x82, 0xA3, 0x4A, 0x32, 0x42, 0xEC, +0x4B, 0x60, 0xAD, 0x10, 0xA4, 0xF5, 0x41, 0xA3, +0xA4, 0xF5, 0x82, 0xA3, 0x4A, 0x32, 0x42, 0xEC, +0x0E, 0x60, 0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, -0x32, 0x6C, 0x30, 0xF0, 0x19, 0x4C, 0x00, 0x6D, -0x01, 0x6F, 0x40, 0xEA, 0x14, 0x10, 0x30, 0xF0, -0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0x30, 0xF0, -0x20, 0x6A, 0x60, 0xF5, 0x54, 0x9A, 0xE0, 0xF0, -0x9B, 0xA0, 0x40, 0xEA, 0x64, 0xF5, 0x7D, 0xA0, -0x01, 0x6A, 0x64, 0xF5, 0x5F, 0xC0, 0x01, 0x6A, -0x6D, 0xEA, 0x64, 0xF5, 0x5D, 0xC0, 0x07, 0x97, -0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x31, 0x6C, 0x00, 0x6D, 0xEF, 0xF7, 0x0D, 0x4C, +0xC5, 0x67, 0x01, 0x6F, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA4, 0xF5, +0x62, 0xA2, 0x29, 0x23, 0xA4, 0xF5, 0x61, 0xA2, +0x03, 0x6A, 0x6C, 0xEA, 0x03, 0x6B, 0x6E, 0xEA, +0x0C, 0x2A, 0x04, 0xD2, 0x10, 0xF0, 0x31, 0x6C, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, +0xCF, 0xF6, 0x09, 0x4C, 0x00, 0x6D, 0x34, 0x6E, +0x0C, 0x10, 0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, +0x31, 0x6C, 0xCF, 0xF6, 0x09, 0x4C, 0x00, 0x6D, +0x66, 0x6E, 0x01, 0x6F, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA4, 0xF5, +0x62, 0xA2, 0xFF, 0x4B, 0x03, 0x10, 0xA4, 0xF5, +0x61, 0xA2, 0x6A, 0x33, 0xA4, 0xF5, 0x62, 0xC2, +0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, +0xE0, 0xF0, 0x7A, 0xA0, 0x01, 0x6A, 0xFF, 0x69, +0x6C, 0xEA, 0x34, 0x22, 0x00, 0x6A, 0x64, 0xF5, +0x78, 0xA0, 0x64, 0xF5, 0x5B, 0xC0, 0x80, 0x6A, +0x4B, 0xEA, 0x6D, 0xEA, 0x64, 0xF5, 0x58, 0xC0, +0x80, 0x18, 0x32, 0x5F, 0x06, 0x22, 0x06, 0x92, +0x01, 0x72, 0x49, 0x61, 0x80, 0x18, 0xA6, 0x5E, +0x46, 0x10, 0xE0, 0xF0, 0x9A, 0xA0, 0x04, 0x6B, +0x8C, 0xEB, 0x2C, 0xEB, 0x15, 0x23, 0x84, 0xF5, +0x94, 0xA0, 0x84, 0xF5, 0x75, 0xA0, 0x63, 0xEC, +0x08, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x84, 0xF5, +0x8C, 0x98, 0xC3, 0xF6, 0x60, 0x9B, 0x80, 0xDB, +0x05, 0x10, 0x00, 0x18, 0x9E, 0xD8, 0x84, 0xF5, +0x54, 0xA0, 0x01, 0x4A, 0x84, 0xF5, 0x54, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF5, 0x48, 0x9A, +0x40, 0xEA, 0x25, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF6, 0x5C, 0x9A, 0x60, 0xAA, 0xEF, 0xF7, +0x1F, 0x6A, 0x6C, 0xEA, 0xA4, 0xF5, 0x54, 0xC8, +0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF2, 0x56, 0xCB, +0xA4, 0xF5, 0x54, 0xA8, 0x10, 0x6B, 0x6C, 0xEA, +0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, +0x64, 0x9A, 0x03, 0x6C, 0x40, 0xA3, 0x2C, 0xEA, +0x8D, 0xEA, 0x2C, 0xEA, 0x07, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF6, 0x64, 0x9A, 0xFC, 0x6A, +0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x00, 0x6C, 0x80, 0x18, -0x3E, 0x61, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x01, 0x6C, 0x80, 0x18, -0x3E, 0x61, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x00, 0x6C, -0x00, 0x18, 0x06, 0xDE, 0x30, 0xF0, 0x20, 0x6B, -0x89, 0xF0, 0x58, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xA4, 0xF5, 0x69, 0xA2, -0xFF, 0x6D, 0x01, 0x4B, 0xA4, 0xF5, 0x69, 0xC2, -0xA4, 0xF5, 0x6A, 0xA2, 0xA4, 0xF5, 0x89, 0xA2, -0x14, 0x4B, 0xAC, 0xEB, 0x8E, 0xEB, 0x02, 0x2B, -0xA4, 0xF5, 0x8A, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x40, 0xF5, 0x5C, 0x9A, 0x01, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF5, 0x54, 0x9A, -0x01, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x40, 0xF5, 0x58, 0x9A, 0x01, 0x6C, 0x40, 0xEA, +0x4A, 0x5F, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x89, 0xF0, 0x75, 0xA2, 0x0C, 0x23, 0x00, 0x6B, +0x89, 0xF0, 0x75, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xF5, 0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x89, 0xF0, 0x10, 0x4C, 0x40, 0xEA, 0x01, 0x6C, +0x80, 0x18, 0x4A, 0x5F, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0xA4, 0xF5, 0xC1, 0xA2, 0x03, 0x6B, +0xFF, 0x6D, 0xCC, 0xEB, 0xAC, 0xEB, 0xAC, 0xEC, +0x09, 0x2B, 0xA4, 0xF5, 0xA1, 0xA2, 0xA4, 0xF5, +0xC2, 0xA2, 0xAA, 0x35, 0xA2, 0xEE, 0x55, 0x61, +0xA4, 0xF5, 0x62, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0xE0, 0xF0, 0xBA, 0xA2, +0x01, 0x6B, 0xAC, 0xEB, 0x4A, 0x23, 0x64, 0xF5, +0x5B, 0xA2, 0x47, 0x2A, 0x01, 0x74, 0x07, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF0, 0x7D, 0xA2, +0x01, 0x4B, 0x89, 0xF0, 0x7D, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x89, 0xF0, 0x7D, 0xA2, 0x14, 0x5B, +0x05, 0x61, 0x00, 0x6B, 0x89, 0xF0, 0x7D, 0xC2, +0x80, 0x18, 0x2E, 0x5E, 0x80, 0x18, 0x32, 0x5F, +0x1C, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF0, +0x58, 0x9A, 0x2B, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x89, 0xF0, 0x5C, 0xA2, 0x26, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF2, 0xD3, 0xA2, 0x00, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x4C, 0x9A, 0x10, 0xF0, 0x31, 0x6C, 0x4F, 0xF2, +0x0D, 0x4C, 0x00, 0x6D, 0x01, 0x6F, 0x40, 0xEA, +0x14, 0x10, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, +0x18, 0x48, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF5, +0x54, 0x9A, 0xE0, 0xF0, 0x9B, 0xA0, 0x40, 0xEA, +0x64, 0xF5, 0x79, 0xA0, 0x01, 0x6A, 0x64, 0xF5, +0x5B, 0xC0, 0x01, 0x6A, 0x6D, 0xEA, 0x64, 0xF5, +0x59, 0xC0, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x6C, 0x80, 0x18, 0xC3, 0x5F, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x01, 0x6C, 0x80, 0x18, 0xC3, 0x5F, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD0, 0x00, 0x6C, 0x00, 0x18, 0x65, 0xDD, +0x30, 0xF0, 0x20, 0x6B, 0x89, 0xF0, 0x58, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x00, 0x6B, 0x64, 0xF5, 0x7F, 0xC2, 0x30, 0xF0, -0x20, 0x6B, 0xE3, 0xF6, 0xB4, 0x9B, 0xE0, 0xF0, -0x7C, 0x9A, 0xAC, 0xEB, 0x6E, 0xED, 0x14, 0x2D, -0x64, 0xF5, 0x9D, 0xA2, 0x10, 0x6B, 0xA4, 0xF5, -0xC4, 0xA2, 0x8D, 0xEB, 0x64, 0xF5, 0x7D, 0xC2, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0x60, 0xF5, 0x84, 0x9B, 0x00, 0xF3, 0x4C, 0x9A, -0x04, 0xD5, 0xC6, 0x36, 0x01, 0x6F, 0x40, 0xEA, +0xA4, 0xF5, 0x65, 0xA2, 0xFF, 0x6D, 0x01, 0x4B, +0xA4, 0xF5, 0x65, 0xC2, 0xA4, 0xF5, 0x66, 0xA2, +0xA4, 0xF5, 0x85, 0xA2, 0x14, 0x4B, 0xAC, 0xEB, +0x8E, 0xEB, 0x02, 0x2B, 0xA4, 0xF5, 0x86, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF5, 0x5C, 0x9A, +0x01, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF5, 0x54, 0x9A, 0x01, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF5, 0x58, 0x9A, +0x01, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0x00, 0x6B, 0x64, 0xF5, +0x7B, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF7, +0xA4, 0x9B, 0xE0, 0xF0, 0x7C, 0x9A, 0xAC, 0xEB, +0x6E, 0xED, 0x14, 0x2D, 0x64, 0xF5, 0x99, 0xA2, +0x10, 0x6B, 0xA4, 0xF5, 0xC0, 0xA2, 0x8D, 0xEB, +0x64, 0xF5, 0x79, 0xC2, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF5, 0x84, 0x9B, +0x00, 0xF3, 0x4C, 0x9A, 0x04, 0xD5, 0xC6, 0x36, +0x01, 0x6F, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x68, +0x2B, 0xF1, 0x18, 0x48, 0x00, 0xF1, 0x76, 0xA0, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x4C, 0x9A, +0x07, 0x6C, 0x6C, 0xEC, 0x00, 0x6D, 0x40, 0xEA, +0x84, 0xF5, 0x58, 0xD8, 0x07, 0x97, 0x06, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0x24, 0x67, 0x30, 0xF0, +0x20, 0x6C, 0x2B, 0xF2, 0x12, 0x4C, 0xB1, 0x67, +0x05, 0x6E, 0x40, 0xEA, 0x60, 0xA1, 0x01, 0x6A, +0x6C, 0xEA, 0x5D, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF1, 0x54, 0x9A, 0x30, 0xF0, 0x20, 0x68, +0x2B, 0xF1, 0x18, 0x48, 0x40, 0xA2, 0x64, 0xF5, +0x79, 0xA0, 0x04, 0x6C, 0x84, 0xF5, 0x44, 0xC0, +0x41, 0xA1, 0x00, 0x69, 0x64, 0xF5, 0x3A, 0xC0, +0xE0, 0xF0, 0x5B, 0xC0, 0x07, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x64, 0xF5, 0x59, 0xC0, 0x30, 0xF0, +0x20, 0x6A, 0x40, 0xF5, 0x5C, 0x9A, 0x40, 0xEA, +0xE0, 0xF0, 0x7A, 0xA0, 0x04, 0x6A, 0x6C, 0xEA, +0xFF, 0x6B, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF6, 0x40, 0x9A, 0x84, 0xF5, +0x34, 0xC0, 0x40, 0x9A, 0x84, 0xF5, 0x50, 0xD8, +0x02, 0x10, 0x00, 0x18, 0x9E, 0xD8, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE0, 0xF0, +0x9C, 0xA2, 0x04, 0x6B, 0x8C, 0xEB, 0x11, 0x23, +0xA4, 0xF5, 0x80, 0xA2, 0x01, 0x6B, 0xFF, 0x6D, +0x8C, 0xEB, 0x6C, 0xED, 0x05, 0x2D, 0x64, 0x6C, +0x6D, 0xEC, 0xA4, 0xF5, 0x80, 0xC2, 0x05, 0x10, +0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xA4, 0xF5, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, +0x44, 0x9A, 0x03, 0x6B, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF2, 0x40, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x06, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xAF, 0xF6, 0x73, 0xC2, 0x20, 0x10, 0x00, 0x18, +0x9E, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF5, +0x58, 0x9A, 0x03, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x40, 0xF5, 0x5C, 0x9A, 0x03, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0x64, 0xF5, 0x99, 0xA2, 0x07, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0xE0, 0xF0, 0x9E, 0xA2, +0x64, 0xF5, 0x79, 0xC2, 0x41, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xE0, 0xF0, 0x7E, 0xC2, 0x30, 0xF0, +0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0x64, 0xF5, +0x78, 0xA0, 0x02, 0x6A, 0x4B, 0xEA, 0x4C, 0xEB, +0x64, 0xF5, 0x78, 0xC0, 0x64, 0xF5, 0x79, 0xA0, +0x05, 0x6C, 0xFF, 0x69, 0x6C, 0xEA, 0x64, 0xF5, +0x59, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF5, +0x54, 0x9A, 0x40, 0xEA, 0xE0, 0xF0, 0x7C, 0xA0, +0x08, 0x6A, 0x6C, 0xEA, 0x0F, 0x22, 0x00, 0xF1, +0x96, 0xA0, 0x07, 0x6A, 0x01, 0x6D, 0x4C, 0xEC, +0x2C, 0xEC, 0x00, 0x18, 0xB2, 0xCD, 0x00, 0xF1, +0x96, 0xA0, 0x07, 0x6A, 0x01, 0x6D, 0x4C, 0xEC, +0x2C, 0xEC, 0x14, 0x10, 0xA0, 0xF0, 0x7B, 0xA0, +0x7F, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x10, 0x2A, +0x00, 0xF1, 0x96, 0xA0, 0x07, 0x6A, 0x00, 0x6D, +0x4C, 0xEC, 0x2C, 0xEC, 0x00, 0x18, 0xB2, 0xCD, +0x00, 0xF1, 0x96, 0xA0, 0x07, 0x6A, 0x00, 0x6D, +0x4C, 0xEC, 0x2C, 0xEC, 0x00, 0x18, 0xDF, 0xCD, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0x00, 0xF1, 0x76, 0xA0, 0x30, 0xF0, 0x20, 0x6A, -0x40, 0xF4, 0x4C, 0x9A, 0x07, 0x6C, 0x6C, 0xEC, -0x00, 0x6D, 0x40, 0xEA, 0x84, 0xF5, 0x5C, 0xD8, -0x07, 0x97, 0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, -0x24, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x2B, 0xF2, -0x12, 0x4C, 0xB1, 0x67, 0x05, 0x6E, 0x40, 0xEA, -0x60, 0xA1, 0x01, 0x6A, 0x6C, 0xEA, 0x5D, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0x50, 0x9A, -0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, -0x40, 0xA2, 0x64, 0xF5, 0x7D, 0xA0, 0x04, 0x6C, -0x84, 0xF5, 0x48, 0xC0, 0x41, 0xA1, 0x00, 0x69, -0x64, 0xF5, 0x3E, 0xC0, 0xE0, 0xF0, 0x5B, 0xC0, -0x07, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x64, 0xF5, -0x5D, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF5, -0x5C, 0x9A, 0x40, 0xEA, 0xE0, 0xF0, 0x7A, 0xA0, -0x04, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, -0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, -0x50, 0x9A, 0x84, 0xF5, 0x38, 0xC0, 0x40, 0x9A, -0x84, 0xF5, 0x54, 0xD8, 0x02, 0x10, 0x00, 0x18, -0x3F, 0xD9, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0xE0, 0xF0, 0x9C, 0xA2, 0x04, 0x6B, -0x8C, 0xEB, 0x11, 0x23, 0xA4, 0xF5, 0x84, 0xA2, -0x01, 0x6B, 0xFF, 0x6D, 0x8C, 0xEB, 0x6C, 0xED, -0x05, 0x2D, 0x64, 0x6C, 0x6D, 0xEC, 0xA4, 0xF5, -0x84, 0xC2, 0x05, 0x10, 0x02, 0x6B, 0x6B, 0xEB, -0x8C, 0xEB, 0xA4, 0xF5, 0x64, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF1, 0x40, 0x9A, 0x03, 0x6B, -0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, -0x5C, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x06, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0xAF, 0xF6, 0x77, 0xC2, -0x20, 0x10, 0x00, 0x18, 0x3F, 0xD9, 0x30, 0xF0, -0x20, 0x6A, 0x40, 0xF5, 0x58, 0x9A, 0x03, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF5, -0x5C, 0x9A, 0x03, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x64, 0xF5, -0x9D, 0xA2, 0x07, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, -0xE0, 0xF0, 0x9E, 0xA2, 0x64, 0xF5, 0x7D, 0xC2, -0x41, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xE0, 0xF0, -0x7E, 0xC2, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, -0x18, 0x48, 0x64, 0xF5, 0x7C, 0xA0, 0x02, 0x6A, -0x4B, 0xEA, 0x4C, 0xEB, 0x64, 0xF5, 0x7C, 0xC0, -0x64, 0xF5, 0x7D, 0xA0, 0x05, 0x6C, 0xFF, 0x69, -0x6C, 0xEA, 0x64, 0xF5, 0x5D, 0xC0, 0x30, 0xF0, -0x20, 0x6A, 0x40, 0xF5, 0x54, 0x9A, 0x40, 0xEA, -0xE0, 0xF0, 0x7C, 0xA0, 0x08, 0x6A, 0x6C, 0xEA, -0x0F, 0x22, 0x00, 0xF1, 0x96, 0xA0, 0x07, 0x6A, -0x01, 0x6D, 0x4C, 0xEC, 0x2C, 0xEC, 0x00, 0x18, -0x5D, 0xCE, 0x00, 0xF1, 0x96, 0xA0, 0x07, 0x6A, -0x01, 0x6D, 0x4C, 0xEC, 0x2C, 0xEC, 0x14, 0x10, -0xA0, 0xF0, 0x7B, 0xA0, 0x7F, 0x6A, 0x6C, 0xEA, -0x2C, 0xEA, 0x10, 0x2A, 0x00, 0xF1, 0x96, 0xA0, -0x07, 0x6A, 0x00, 0x6D, 0x4C, 0xEC, 0x2C, 0xEC, -0x00, 0x18, 0x5D, 0xCE, 0x00, 0xF1, 0x96, 0xA0, -0x07, 0x6A, 0x00, 0x6D, 0x4C, 0xEC, 0x2C, 0xEC, -0x00, 0x18, 0x8A, 0xCE, 0x30, 0xF0, 0x20, 0x68, -0x2B, 0xF1, 0x18, 0x48, 0x00, 0xF1, 0x76, 0xA0, -0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x5C, 0x9A, -0x07, 0x6C, 0x6C, 0xEC, 0x00, 0x6D, 0x40, 0xEA, -0xA4, 0xF5, 0x45, 0xA0, 0x07, 0x97, 0x06, 0x91, -0x4A, 0x32, 0xA4, 0xF5, 0x46, 0xC0, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0xA4, 0xF5, 0x67, 0xA2, 0x02, 0x4B, 0xA4, 0xF5, -0x67, 0xC2, 0xA4, 0xF5, 0x68, 0xA2, 0x1C, 0x23, -0xA4, 0xF5, 0x67, 0xA2, 0x66, 0x33, 0x05, 0x53, -0x17, 0x60, 0x00, 0x6B, 0xA4, 0xF5, 0x68, 0xC2, -0xA4, 0xF5, 0x6B, 0xA2, 0x10, 0xF0, 0x32, 0x6C, -0x91, 0xF0, 0x1D, 0x4C, 0x01, 0x4B, 0xA4, 0xF5, -0x6B, 0xC2, 0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0x00, 0x6D, -0x05, 0x6E, 0x01, 0x6F, 0x40, 0xEA, 0x09, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0xB8, 0x9A, -0x01, 0x6C, 0x80, 0x18, 0x1E, 0x78, 0x80, 0x18, -0x7E, 0x61, 0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, +0x40, 0xF4, 0x5C, 0x9A, 0x07, 0x6C, 0x6C, 0xEC, +0x00, 0x6D, 0x40, 0xEA, 0xA4, 0xF5, 0x41, 0xA0, +0x07, 0x97, 0x06, 0x91, 0x4A, 0x32, 0xA4, 0xF5, +0x42, 0xC0, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x60, 0xF5, 0x54, 0x9A, 0x03, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF5, 0x5C, 0x9A, -0x02, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xE0, 0xF0, 0x9E, 0xA2, -0x40, 0x6B, 0x8C, 0xEB, 0x16, 0x23, 0x64, 0xF5, -0x9D, 0xA2, 0x07, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, -0x02, 0x6C, 0x8D, 0xEB, 0x64, 0xF5, 0x7D, 0xC2, -0x00, 0x6B, 0x64, 0xF5, 0x7E, 0xC2, 0x83, 0xF3, -0x7C, 0xA2, 0x0A, 0x23, 0x64, 0xF5, 0x9C, 0xA2, -0x04, 0x6B, 0x8D, 0xEB, 0x64, 0xF5, 0x7C, 0xC2, -0x03, 0x10, 0x05, 0x6B, 0x64, 0xF5, 0x7F, 0xC2, +0x2B, 0xF1, 0x18, 0x4A, 0xA4, 0xF5, 0x63, 0xA2, +0x02, 0x4B, 0xA4, 0xF5, 0x63, 0xC2, 0xA4, 0xF5, +0x64, 0xA2, 0x1C, 0x23, 0xA4, 0xF5, 0x63, 0xA2, +0x66, 0x33, 0x05, 0x53, 0x17, 0x60, 0x00, 0x6B, +0xA4, 0xF5, 0x64, 0xC2, 0xA4, 0xF5, 0x67, 0xA2, +0x10, 0xF0, 0x32, 0x6C, 0xB0, 0xF2, 0x11, 0x4C, +0x01, 0x4B, 0xA4, 0xF5, 0x67, 0xC2, 0x00, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x4C, 0x9A, 0x00, 0x6D, 0x05, 0x6E, 0x01, 0x6F, +0x40, 0xEA, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF1, 0xBC, 0x9A, 0x01, 0x6C, 0x80, 0x18, +0x76, 0x76, 0x80, 0x18, 0x03, 0x60, 0x07, 0x97, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF5, 0x54, 0x9A, +0x03, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF5, 0x5C, 0x9A, 0x02, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x64, 0xF5, 0x9D, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, -0x8C, 0xEB, 0x64, 0xF5, 0x7D, 0xC2, 0xA4, 0xF5, -0x47, 0xA2, 0x7D, 0x67, 0x42, 0x6C, 0x46, 0x32, -0x50, 0xC3, 0x01, 0x6D, 0x04, 0x06, 0x80, 0x18, -0xFA, 0x6A, 0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0xE0, 0xF0, 0x3A, 0xA2, 0x01, 0x6B, 0x2C, 0xEB, -0x5B, 0x23, 0xE0, 0xF0, 0x7E, 0xA2, 0x40, 0x6A, -0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x06, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF5, 0x50, 0x9A, -0x40, 0xEA, 0x4E, 0x22, 0x30, 0xF0, 0x20, 0x68, -0x2B, 0xF1, 0x18, 0x48, 0x64, 0xF5, 0x5F, 0xA0, -0x01, 0x72, 0x04, 0x60, 0x2F, 0x22, 0x05, 0x72, -0x04, 0x60, 0x42, 0x10, 0x80, 0x18, 0x42, 0x62, -0x3F, 0x10, 0x30, 0x6A, 0x2C, 0xEA, 0x20, 0x72, -0x07, 0x60, 0xA4, 0xF5, 0x27, 0xA0, 0x01, 0x6A, -0x4C, 0xE9, 0xFF, 0x6A, 0x4C, 0xE9, 0x03, 0x21, -0x80, 0x18, 0x7E, 0x61, 0x31, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF1, 0xB8, 0x9A, 0x01, 0x6C, -0x80, 0x18, 0xED, 0x77, 0xA4, 0xF5, 0x47, 0xA0, -0x01, 0x6B, 0x10, 0xF0, 0x32, 0x6C, 0x6C, 0xEA, -0xA4, 0xF5, 0x47, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0x00, 0xF3, 0x4C, 0x9A, 0x04, 0xD1, 0x91, 0xF0, -0x1D, 0x4C, 0x00, 0x6D, 0x05, 0x6E, 0xE3, 0x67, -0x40, 0xEA, 0x16, 0x10, 0xA4, 0xF5, 0x67, 0xA0, -0x01, 0x6A, 0x6C, 0xEA, 0x0C, 0x2A, 0x64, 0xF5, -0x7C, 0xA0, 0x80, 0x4A, 0x10, 0xF0, 0x32, 0x6C, -0x6D, 0xEA, 0x91, 0xF0, 0x1D, 0x4C, 0x64, 0xF5, -0x5C, 0xC0, 0x00, 0x18, 0x63, 0xE7, 0x30, 0xF0, -0x20, 0x6A, 0x60, 0xF5, 0x48, 0x9A, 0x40, 0xEA, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xE0, 0xF0, 0x9E, 0xA2, 0x40, 0x6B, 0x8C, 0xEB, +0x16, 0x23, 0x64, 0xF5, 0x99, 0xA2, 0x07, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0x02, 0x6C, 0x8D, 0xEB, +0x64, 0xF5, 0x79, 0xC2, 0x00, 0x6B, 0x64, 0xF5, +0x7A, 0xC2, 0x83, 0xF3, 0x7C, 0xA2, 0x0A, 0x23, +0x64, 0xF5, 0x98, 0xA2, 0x04, 0x6B, 0x8D, 0xEB, +0x64, 0xF5, 0x78, 0xC2, 0x03, 0x10, 0x05, 0x6B, +0x64, 0xF5, 0x7B, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0x64, 0xF5, 0x99, 0xA2, +0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x64, 0xF5, +0x79, 0xC2, 0xA4, 0xF5, 0x43, 0xA2, 0x7D, 0x67, +0x42, 0x6C, 0x46, 0x32, 0x50, 0xC3, 0x01, 0x6D, +0x04, 0x06, 0x80, 0x18, 0x1E, 0x69, 0x07, 0x97, +0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0xE0, 0xF0, 0x3A, 0xA2, +0x01, 0x6B, 0x2C, 0xEB, 0x5B, 0x23, 0xE0, 0xF0, +0x7E, 0xA2, 0x40, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, +0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xF5, 0x50, 0x9A, 0x40, 0xEA, 0x4E, 0x22, +0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, +0x64, 0xF5, 0x5B, 0xA0, 0x01, 0x72, 0x04, 0x60, +0x2F, 0x22, 0x05, 0x72, 0x04, 0x60, 0x42, 0x10, +0x80, 0x18, 0xC7, 0x60, 0x3F, 0x10, 0x30, 0x6A, +0x2C, 0xEA, 0x20, 0x72, 0x07, 0x60, 0xA4, 0xF5, +0x23, 0xA0, 0x01, 0x6A, 0x4C, 0xE9, 0xFF, 0x6A, +0x4C, 0xE9, 0x03, 0x21, 0x80, 0x18, 0x03, 0x60, +0x31, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, +0xBC, 0x9A, 0x01, 0x6C, 0x80, 0x18, 0x45, 0x76, +0xA4, 0xF5, 0x43, 0xA0, 0x01, 0x6B, 0x10, 0xF0, +0x32, 0x6C, 0x6C, 0xEA, 0xA4, 0xF5, 0x43, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, +0x04, 0xD1, 0xB0, 0xF2, 0x11, 0x4C, 0x00, 0x6D, +0x05, 0x6E, 0xE3, 0x67, 0x40, 0xEA, 0x16, 0x10, +0xA4, 0xF5, 0x63, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, +0x0C, 0x2A, 0x64, 0xF5, 0x78, 0xA0, 0x80, 0x4A, +0x10, 0xF0, 0x32, 0x6C, 0x6D, 0xEA, 0xB0, 0xF2, +0x11, 0x4C, 0x64, 0xF5, 0x58, 0xC0, 0x00, 0x18, +0xB9, 0xE6, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF5, +0x48, 0x9A, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x02, 0x6D, 0xC4, 0x67, +0x24, 0x6C, 0x80, 0x18, 0x1E, 0x69, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x02, 0x6D, 0xC4, 0x67, 0x38, 0x6C, 0x80, 0x18, -0xFA, 0x6A, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x1E, 0x69, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x61, 0xA4, 0xBD, 0x67, 0x40, 0xA4, 0x70, 0xC5, 0x62, 0xA4, 0x0E, 0x5A, 0x71, 0xC5, 0x63, 0xA4, 0x72, 0xC5, 0x64, 0xA4, @@ -38333,215 +37754,220 @@ u8 array_mp_8822c_fw_nic[] = { 0x2A, 0x6C, 0x08, 0x10, 0x29, 0x6C, 0x02, 0x6D, 0x98, 0x10, 0x31, 0x6C, 0x95, 0x10, 0x32, 0x6C, 0x93, 0x10, 0x33, 0x6C, 0x06, 0x6D, 0x91, 0x10, -0x04, 0x04, 0x80, 0x18, 0x78, 0x5F, 0x90, 0x10, +0x04, 0x04, 0x80, 0x18, 0xFD, 0x5D, 0x90, 0x10, 0x9D, 0x67, 0x70, 0xA4, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x84, 0xF5, 0x6A, 0xC2, -0x71, 0xA4, 0x84, 0xF5, 0x6B, 0xC2, 0x72, 0xA4, -0x84, 0xF5, 0x6C, 0xC2, 0x73, 0xA4, 0x84, 0xF5, -0x6D, 0xC2, 0x74, 0xA4, 0x84, 0xF5, 0x6E, 0xC2, +0x2B, 0xF1, 0x18, 0x4A, 0x84, 0xF5, 0x66, 0xC2, +0x71, 0xA4, 0x84, 0xF5, 0x67, 0xC2, 0x72, 0xA4, +0x84, 0xF5, 0x68, 0xC2, 0x73, 0xA4, 0x84, 0xF5, +0x69, 0xC2, 0x74, 0xA4, 0x84, 0xF5, 0x6A, 0xC2, 0x7B, 0x10, 0xBD, 0x67, 0x50, 0xA5, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x93, 0xA5, -0x84, 0xF5, 0x59, 0xC3, 0x54, 0xA5, 0x80, 0x34, +0x84, 0xF5, 0x55, 0xC3, 0x54, 0xA5, 0x80, 0x34, 0x80, 0x34, 0x00, 0xF6, 0x40, 0x32, 0x8D, 0xEA, 0x91, 0xA5, 0x8D, 0xEA, 0x92, 0xA5, 0x80, 0x34, -0x8D, 0xEA, 0x84, 0xF5, 0x50, 0xDB, 0x64, 0x10, -0x80, 0x18, 0xA9, 0x5F, 0x61, 0x10, 0xBD, 0x67, +0x8D, 0xEA, 0x84, 0xF5, 0x4C, 0xDB, 0x64, 0x10, +0x80, 0x18, 0x2E, 0x5E, 0x61, 0x10, 0xBD, 0x67, 0x90, 0xA5, 0x30, 0xF0, 0x20, 0x6A, 0x01, 0x6B, 0x84, 0x34, 0x2B, 0xF1, 0x18, 0x4A, 0x6D, 0xEC, -0xA4, 0xF5, 0x84, 0xC2, 0xA4, 0xF5, 0x84, 0xA2, +0xA4, 0xF5, 0x80, 0xC2, 0xA4, 0xF5, 0x80, 0xA2, 0x86, 0x35, 0x1E, 0x55, 0x05, 0x60, 0x8C, 0xEB, -0x3C, 0x6C, 0x8D, 0xEB, 0xA4, 0xF5, 0x64, 0xC2, +0x3C, 0x6C, 0x8D, 0xEB, 0xA4, 0xF5, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0xA4, 0xF5, 0x64, 0xA2, 0x66, 0x34, 0x51, 0x54, +0xA4, 0xF5, 0x60, 0xA2, 0x66, 0x34, 0x51, 0x54, 0x43, 0x61, 0x01, 0x6C, 0x6C, 0xEC, 0x60, 0x6B, -0x6B, 0xEB, 0x6D, 0xEC, 0xA4, 0xF5, 0x84, 0xC2, +0x6B, 0xEB, 0x6D, 0xEC, 0xA4, 0xF5, 0x80, 0xC2, 0x3B, 0x10, 0x5D, 0x67, 0x70, 0xA2, 0x30, 0xF0, -0x20, 0x6A, 0xCF, 0xF6, 0x7B, 0xC2, 0x34, 0x10, +0x20, 0x6A, 0xCF, 0xF6, 0x77, 0xC2, 0x34, 0x10, 0x7D, 0x67, 0x50, 0xA3, 0x3F, 0x6B, 0x4C, 0xEB, 0x68, 0x33, 0x5A, 0x32, 0x6D, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xCF, 0xF6, 0x5D, 0xC3, 0x28, 0x10, +0x20, 0x6B, 0xCF, 0xF6, 0x59, 0xC3, 0x28, 0x10, 0xBD, 0x67, 0x50, 0xA5, 0x30, 0xF0, 0x20, 0x6B, -0x2B, 0xF1, 0x18, 0x4B, 0xA4, 0xF5, 0xA7, 0xA3, +0x2B, 0xF1, 0x18, 0x4B, 0xA4, 0xF5, 0xA3, 0xA3, 0x01, 0x6C, 0x4C, 0xEC, 0x02, 0x6A, 0x4B, 0xEA, -0xAC, 0xEA, 0x8D, 0xEA, 0xA4, 0xF5, 0x47, 0xC3, +0xAC, 0xEA, 0x8D, 0xEA, 0xA4, 0xF5, 0x43, 0xC3, 0x17, 0x10, 0x7D, 0x67, 0x54, 0xA3, 0x73, 0xA3, 0x9D, 0x67, 0x00, 0xF6, 0x40, 0x32, 0x60, 0x33, 0x60, 0x33, 0x6D, 0xEA, 0x71, 0xA4, 0x6D, 0xEA, 0x72, 0xA4, 0x60, 0x33, 0x6D, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xEF, 0xF6, 0x44, 0xDB, 0x04, 0x10, -0x01, 0x6D, 0x04, 0x06, 0x80, 0x18, 0xFA, 0x6A, +0x20, 0x6B, 0xEF, 0xF6, 0x40, 0xDB, 0x04, 0x10, +0x01, 0x6D, 0x04, 0x06, 0x80, 0x18, 0x1E, 0x69, 0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x01, 0x6D, 0xC4, 0x67, -0x28, 0x6C, 0x80, 0x18, 0xFA, 0x6A, 0x05, 0x97, +0x28, 0x6C, 0x80, 0x18, 0x1E, 0x69, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x40, 0xA4, 0x7D, 0x67, 0x07, 0x6D, 0x50, 0xC3, 0x41, 0xA4, 0x04, 0x06, 0x51, 0xC3, 0x42, 0xA4, 0x52, 0xC3, 0x43, 0xA4, 0x53, 0xC3, 0x44, 0xA4, 0x30, 0x6C, 0x54, 0xC3, 0x00, 0x6A, 0x55, 0xC3, -0x56, 0xC3, 0x80, 0x18, 0xFA, 0x6A, 0x07, 0x97, +0x56, 0xC3, 0x80, 0x18, 0x1E, 0x69, 0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x03, 0x6D, 0xC4, 0x67, 0x11, 0x6C, 0x80, 0x18, -0xFA, 0x6A, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x1E, 0x69, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x01, 0x6D, 0xC4, 0x67, -0x1B, 0x6C, 0x80, 0x18, 0xFA, 0x6A, 0x05, 0x97, +0x1B, 0x6C, 0x80, 0x18, 0x1E, 0x69, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x01, 0x6D, 0xC4, 0x67, 0x17, 0x6C, 0x80, 0x18, -0xFA, 0x6A, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x01, 0x6D, 0xC4, 0x67, -0x23, 0x6C, 0x80, 0x18, 0xFA, 0x6A, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x80, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x01, 0x6B, 0x8C, 0xEB, 0x64, 0xF5, -0xBD, 0xA2, 0x6C, 0x34, 0x09, 0x6B, 0x6B, 0xEB, -0xAC, 0xEB, 0x8D, 0xEB, 0x08, 0x6C, 0x64, 0xF5, -0x7D, 0xC2, 0x8C, 0xEB, 0x23, 0x23, 0x30, 0xF0, -0x20, 0x6B, 0x69, 0xF2, 0x08, 0x4B, 0xB6, 0xA3, -0x01, 0x4D, 0xB6, 0xC3, 0x64, 0xF5, 0x5C, 0xA2, -0x8C, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, 0x0C, 0x22, -0x58, 0xA3, 0x02, 0x6C, 0x00, 0x6E, 0x01, 0x4A, -0x58, 0xC3, 0x4D, 0x9B, 0x01, 0x6D, 0xE6, 0x67, -0x8D, 0xEA, 0x4D, 0xDB, 0x00, 0x18, 0x36, 0xDA, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, 0x6C, 0x9A, -0xFF, 0x6C, 0x01, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, -0xAD, 0xEA, 0x0D, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x69, 0xF2, 0x08, 0x4A, 0x77, 0xA2, 0x01, 0x4B, -0x77, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, -0x6C, 0x9A, 0xFE, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, -0x40, 0xC3, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x69, 0xF2, 0x08, 0x4A, 0x61, 0xA2, -0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, -0x01, 0x4B, 0x61, 0xC2, 0xA4, 0xF5, 0x70, 0xA0, -0x30, 0x73, 0x2C, 0x60, 0x31, 0x5B, 0x07, 0x60, -0x23, 0x73, 0x15, 0x60, 0x27, 0x73, 0x1C, 0x60, -0x15, 0x73, 0x09, 0x60, 0xC3, 0x10, 0x39, 0x73, -0x50, 0x60, 0x41, 0x73, 0xA0, 0xF0, 0x15, 0x60, -0x34, 0x73, 0x28, 0x60, 0xBB, 0x10, 0x62, 0xA2, -0xA4, 0xF5, 0x92, 0xA0, 0x01, 0x4B, 0x62, 0xC2, -0x80, 0x18, 0x43, 0x6B, 0xBF, 0x10, 0x63, 0xA2, -0x01, 0x6C, 0x01, 0x4B, 0x63, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x20, 0xF5, 0x50, 0x9A, 0x08, 0x10, -0x64, 0xA2, 0x02, 0x6C, 0x01, 0x4B, 0x64, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF5, 0x50, 0x9A, -0x40, 0xEA, 0xAC, 0x10, 0x65, 0xA2, 0x00, 0x6D, +0x1E, 0x69, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x40, 0xA4, 0xC4, 0x67, +0x01, 0x72, 0x03, 0x61, 0x23, 0x6C, 0x03, 0x6D, +0x02, 0x10, 0x23, 0x6C, 0x01, 0x6D, 0x80, 0x18, +0x1E, 0x69, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x80, 0xA4, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x01, 0x6B, +0x8C, 0xEB, 0x64, 0xF5, 0xB9, 0xA2, 0x6C, 0x34, +0x09, 0x6B, 0x6B, 0xEB, 0xAC, 0xEB, 0x8D, 0xEB, +0x08, 0x6C, 0x64, 0xF5, 0x79, 0xC2, 0x8C, 0xEB, +0x23, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF2, +0x08, 0x4B, 0xB6, 0xA3, 0x01, 0x4D, 0xB6, 0xC3, +0x64, 0xF5, 0x58, 0xA2, 0x8C, 0xEA, 0xFF, 0x6C, +0x8C, 0xEA, 0x0C, 0x22, 0x58, 0xA3, 0x02, 0x6C, +0x00, 0x6E, 0x01, 0x4A, 0x58, 0xC3, 0x4D, 0x9B, +0x01, 0x6D, 0xE6, 0x67, 0x8D, 0xEA, 0x4D, 0xDB, +0x00, 0x18, 0x95, 0xD9, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF0, 0x70, 0x9A, 0xFF, 0x6C, 0x01, 0x6D, +0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x0D, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF2, 0x08, 0x4A, +0x77, 0xA2, 0x01, 0x4B, 0x77, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF0, 0x70, 0x9A, 0xFE, 0x6A, +0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF2, +0x08, 0x4A, 0x61, 0xA2, 0x30, 0xF0, 0x20, 0x68, +0x2B, 0xF1, 0x18, 0x48, 0x01, 0x4B, 0x61, 0xC2, +0xA4, 0xF5, 0x6C, 0xA0, 0x27, 0x73, 0x31, 0x60, +0x28, 0x5B, 0x07, 0x60, 0x23, 0x73, 0x1A, 0x60, +0x24, 0x73, 0x21, 0x60, 0x15, 0x73, 0x0E, 0x60, +0xD1, 0x10, 0x34, 0x73, 0x3B, 0x60, 0x35, 0x5B, +0x03, 0x60, 0x30, 0x73, 0x2B, 0x60, 0xCA, 0x10, +0x39, 0x73, 0x57, 0x60, 0x41, 0x73, 0xA0, 0xF0, +0x1C, 0x60, 0xC4, 0x10, 0x62, 0xA2, 0xA4, 0xF5, +0x8E, 0xA0, 0x01, 0x4B, 0x62, 0xC2, 0x80, 0x18, +0x67, 0x69, 0xC8, 0x10, 0x63, 0xA2, 0x01, 0x6C, +0x01, 0x4B, 0x63, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF5, 0x50, 0x9A, 0x08, 0x10, 0x63, 0xA2, +0x06, 0x6C, 0x01, 0x4B, 0x63, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF5, 0x50, 0x9A, 0x40, 0xEA, +0xB5, 0x10, 0x64, 0xA2, 0x02, 0x6C, 0x01, 0x4B, +0x64, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF5, +0x50, 0x9A, 0xF5, 0x17, 0x65, 0xA2, 0x00, 0x6D, 0x01, 0x6C, 0x01, 0x4B, 0x65, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF5, 0x54, 0x9A, 0xC5, 0x67, -0x40, 0xEA, 0xA0, 0x10, 0xA4, 0xF5, 0x72, 0xA0, +0x40, 0xEA, 0xA0, 0x10, 0xA4, 0xF5, 0x6E, 0xA0, 0x01, 0x6C, 0x8C, 0xEB, 0x16, 0x23, 0x71, 0xA2, -0x01, 0x4B, 0x71, 0xC2, 0x64, 0xF5, 0xBD, 0xA0, +0x01, 0x4B, 0x71, 0xC2, 0x64, 0xF5, 0xB9, 0xA0, 0x08, 0x6B, 0xAC, 0xEB, 0xA4, 0x67, 0x12, 0x23, 0x74, 0xA2, 0x00, 0x6E, 0x02, 0x6D, 0x01, 0x4B, 0x74, 0xC2, 0x6C, 0x9A, 0xE6, 0x67, 0x8D, 0xEB, -0x6C, 0xDA, 0x03, 0x6C, 0x00, 0x18, 0x36, 0xDA, +0x6C, 0xDA, 0x03, 0x6C, 0x00, 0x18, 0x95, 0xD9, 0x73, 0x10, 0x72, 0xA2, 0x00, 0x6C, 0x04, 0x6D, -0x01, 0x4B, 0x72, 0xC2, 0x00, 0x18, 0xAF, 0xD9, +0x01, 0x4B, 0x72, 0xC2, 0x00, 0x18, 0x0E, 0xD9, 0x6B, 0x10, 0x66, 0xA2, 0x01, 0x4B, 0x66, 0xC2, -0x80, 0x18, 0xAD, 0x60, 0x1E, 0x22, 0xE0, 0xF0, +0x80, 0x18, 0x32, 0x5F, 0x1E, 0x22, 0xE0, 0xF0, 0x9A, 0xA0, 0x01, 0x6A, 0xFF, 0x6B, 0x8C, 0xEA, -0x18, 0x22, 0xA4, 0xF5, 0x40, 0xA0, 0x64, 0xF5, -0x9C, 0xA0, 0x01, 0x4A, 0xA4, 0xF5, 0x40, 0xC0, +0x18, 0x22, 0x84, 0xF5, 0x5C, 0xA0, 0x64, 0xF5, +0x98, 0xA0, 0x01, 0x4A, 0x84, 0xF5, 0x5C, 0xC0, 0x7F, 0x6A, 0x8C, 0xEA, 0xE0, 0xF0, 0x9C, 0xA0, -0x64, 0xF5, 0x5C, 0xC0, 0x04, 0x6A, 0x8C, 0xEA, -0x6C, 0xEA, 0x45, 0x22, 0x64, 0xF5, 0x9D, 0xA0, +0x64, 0xF5, 0x58, 0xC0, 0x04, 0x6A, 0x8C, 0xEA, +0x6C, 0xEA, 0x45, 0x22, 0x64, 0xF5, 0x99, 0xA0, 0x10, 0x6A, 0x8C, 0xEA, 0x6C, 0xEA, 0x5A, 0x2A, 0x3E, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE0, 0xF0, 0xBA, 0xA2, 0x01, 0x6B, 0xFF, 0x6C, 0xAC, 0xEB, 0x4F, 0x23, 0xE0, 0xF0, 0xBE, 0xA2, 0x04, 0x6E, 0xCC, 0xED, 0x8C, 0xED, -0x49, 0x25, 0x64, 0xF5, 0xBC, 0xA2, 0x80, 0x6B, +0x49, 0x25, 0x64, 0xF5, 0xB8, 0xA2, 0x80, 0x6B, 0x6B, 0xEB, 0xAC, 0xEB, 0x8C, 0xEB, 0x42, 0x23, -0xA4, 0xF5, 0x60, 0xA2, 0x01, 0x4B, 0xA4, 0xF5, -0x60, 0xC2, 0xE0, 0xF0, 0x7C, 0xA2, 0xCC, 0xEB, -0x8C, 0xEB, 0x0B, 0x23, 0x64, 0xF5, 0xDD, 0xA2, +0x84, 0xF5, 0x7C, 0xA2, 0x01, 0x4B, 0x84, 0xF5, +0x7C, 0xC2, 0xE0, 0xF0, 0x7C, 0xA2, 0xCC, 0xEB, +0x8C, 0xEB, 0x0B, 0x23, 0x64, 0xF5, 0xD9, 0xA2, 0x10, 0x6B, 0xCC, 0xEB, 0x8C, 0xEB, 0x05, 0x23, -0x7F, 0x6B, 0xAC, 0xEB, 0x64, 0xF5, 0x7C, 0xC2, +0x7F, 0x6B, 0xAC, 0xEB, 0x64, 0xF5, 0x78, 0xC2, 0x2D, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x64, 0xF5, 0x7F, 0xA2, 0x26, 0x2B, -0x64, 0xF5, 0x9C, 0xA2, 0x7F, 0x6B, 0x8C, 0xEB, -0x64, 0xF5, 0x7C, 0xC2, 0xE0, 0xF0, 0x7E, 0xA2, +0x18, 0x4A, 0x64, 0xF5, 0x7B, 0xA2, 0x26, 0x2B, +0x64, 0xF5, 0x98, 0xA2, 0x7F, 0x6B, 0x8C, 0xEB, +0x64, 0xF5, 0x78, 0xC2, 0xE0, 0xF0, 0x7E, 0xA2, 0x04, 0x6A, 0x6C, 0xEA, 0x1B, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF5, 0x48, 0x9A, 0x40, 0xEA, 0x15, 0x10, 0x75, 0xA2, 0x01, 0x4B, 0x75, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF5, 0x50, 0x9A, -0x03, 0x6C, 0x5E, 0x17, 0x30, 0xF0, 0x20, 0x6A, -0xEF, 0xF6, 0x48, 0xA2, 0x7D, 0x67, 0x06, 0x6C, +0x03, 0x6C, 0x55, 0x17, 0x30, 0xF0, 0x20, 0x6A, +0xEF, 0xF6, 0x44, 0xA2, 0x7D, 0x67, 0x06, 0x6C, 0x50, 0xC3, 0x03, 0x6D, 0x04, 0x06, 0x01, 0x6F, -0x00, 0x18, 0x36, 0xDA, 0x07, 0x97, 0x06, 0x90, +0x00, 0x18, 0x95, 0xD9, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6C, 0x69, 0xF2, 0x08, 0x4C, 0x00, 0x6D, 0x54, 0x6E, 0x00, 0x18, -0xE7, 0xD7, 0x00, 0x18, 0x4F, 0xDB, 0x30, 0xF0, +0x3D, 0xD7, 0x00, 0x18, 0xAE, 0xDA, 0x30, 0xF0, 0x20, 0x6C, 0x2B, 0xF2, 0x12, 0x4C, 0x00, 0x6D, 0x07, 0x6E, 0x30, 0xF0, 0x20, 0x68, 0x00, 0x18, -0xE7, 0xD7, 0x2B, 0xF1, 0x18, 0x48, 0x0B, 0x6A, +0x3D, 0xD7, 0x2B, 0xF1, 0x18, 0x48, 0x0B, 0x6A, 0xE0, 0xF0, 0x5B, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF7, 0x44, 0x9A, 0xE0, 0xF0, 0x9D, 0xA0, +0x03, 0xF7, 0x54, 0x9A, 0xE0, 0xF0, 0x9D, 0xA0, 0x00, 0x6D, 0x60, 0xA2, 0xFF, 0x6A, 0x34, 0x6E, 0x6C, 0xEA, 0x4A, 0x32, 0x01, 0x6B, 0x6C, 0xEA, 0x58, 0x33, 0x41, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0x6D, 0xEA, 0xAF, 0xF6, -0x14, 0x4C, 0xE0, 0xF0, 0x5D, 0xC0, 0x00, 0x18, -0xE7, 0xD7, 0x64, 0xF5, 0x7C, 0xA0, 0x20, 0x6A, +0x10, 0x4C, 0xE0, 0xF0, 0x5D, 0xC0, 0x00, 0x18, +0x3D, 0xD7, 0x64, 0xF5, 0x78, 0xA0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6C, 0x6D, 0xEA, 0x00, 0x6D, 0x07, 0x6E, 0x4B, 0xF2, 0x07, 0x4C, 0x64, 0xF5, -0x5C, 0xC0, 0x00, 0x18, 0xE7, 0xD7, 0x00, 0xF1, +0x58, 0xC0, 0x00, 0x18, 0x3D, 0xD7, 0x00, 0xF1, 0x76, 0xA0, 0x08, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, -0x00, 0xF1, 0x56, 0xC0, 0x1E, 0x6A, 0xA4, 0xF5, -0x43, 0xC0, 0x04, 0x6A, 0xA4, 0xF5, 0x45, 0xC0, +0x00, 0xF1, 0x56, 0xC0, 0x1E, 0x6A, 0x84, 0xF5, +0x5F, 0xC0, 0x04, 0x6A, 0xA4, 0xF5, 0x41, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF5, 0x50, 0x9A, 0x01, 0x6C, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0xA2, 0xA4, 0x41, 0xA4, 0x80, 0xA4, 0xA0, 0x35, 0x55, 0xE5, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xED, -0x80, 0x18, 0xDD, 0x75, 0x05, 0x97, 0x03, 0x63, +0x80, 0x18, 0x32, 0x74, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x0B, 0xF2, 0x01, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0x00, 0x18, -0x91, 0xCF, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xE6, 0xCE, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, 0x0C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, 0x18, 0x9A, 0x0A, 0xD4, 0xFF, 0x69, 0x40, 0xA0, 0x0A, 0x95, 0x30, 0xF0, 0x20, 0x6C, 0x62, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0x2C, 0xEB, 0x05, 0xD3, 0xEB, 0xF1, 0x12, 0x4C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, -0x70, 0x9A, 0xF8, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, -0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, -0x54, 0x9A, 0x02, 0x6B, 0x00, 0x6C, 0x60, 0xC2, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF7, 0x78, 0x9B, -0x80, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF7, -0x7C, 0x9B, 0x10, 0x6C, 0x80, 0xC3, 0x40, 0xA2, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF7, 0x60, 0x9B, +0x7C, 0x9A, 0xF8, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF7, +0x40, 0x9A, 0x02, 0x6B, 0x00, 0x6C, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF7, 0x64, 0x9B, +0x80, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF7, +0x68, 0x9B, 0x10, 0x6C, 0x80, 0xC3, 0x40, 0xA2, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF7, 0x6C, 0x9B, 0x2C, 0xEA, 0x50, 0x32, 0x01, 0x4A, 0x2C, 0xEA, 0x40, 0xC3, 0x0A, 0x94, 0x02, 0x6B, 0x40, 0xA4, 0x6C, 0xEA, 0x2C, 0xEA, 0xA0, 0xF0, 0x0B, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x2B, 0xF1, 0x18, 0x4C, 0x04, 0xD4, 0xA0, 0xF0, 0x7A, 0xA4, 0x01, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x80, 0xF0, 0x14, 0x22, -0x01, 0x6C, 0xC0, 0x6D, 0x80, 0x18, 0x51, 0x78, +0x01, 0x6C, 0xC0, 0x6D, 0x80, 0x18, 0xA9, 0x76, 0x04, 0x94, 0x05, 0x92, 0x20, 0x68, 0xA0, 0xF0, 0x7A, 0xA4, 0x4D, 0xE8, 0x04, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x2C, 0xE8, 0x17, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF7, 0x44, 0x9A, 0x01, 0x6C, +0x20, 0x6A, 0x63, 0xF7, 0x50, 0x9A, 0x01, 0x6C, 0x10, 0xF0, 0x00, 0x6D, 0x60, 0xA2, 0x2C, 0xEB, -0x60, 0xC2, 0x80, 0x18, 0x51, 0x78, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF7, 0x68, 0x9A, 0x02, 0x6C, +0x60, 0xC2, 0x80, 0x18, 0xA9, 0x76, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF7, 0x74, 0x9A, 0x02, 0x6C, 0x40, 0xA3, 0x2C, 0xEA, 0x8D, 0xEA, 0x2C, 0xEA, 0x40, 0xC3, 0x11, 0x10, 0x04, 0x92, 0x01, 0x6C, 0x10, 0xF0, 0x00, 0x6D, 0xA3, 0xF3, 0x78, 0xA2, 0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x03, 0x6B, 0x6B, 0xEB, 0x6C, 0xEA, 0x04, 0x93, 0xA3, 0xF3, -0x58, 0xC3, 0x80, 0x18, 0x6E, 0x78, 0x30, 0xF0, +0x58, 0xC3, 0x80, 0x18, 0xC6, 0x76, 0x30, 0xF0, 0x20, 0x6A, 0xEB, 0xF1, 0x92, 0xA2, 0x08, 0x6A, 0xFF, 0x6B, 0x8C, 0xEA, 0x0D, 0x22, 0x02, 0x6A, 0x4D, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF7, -0x88, 0x9A, 0x01, 0x6D, 0x6C, 0xE8, 0x40, 0xA4, +0x94, 0x9A, 0x01, 0x6D, 0x6C, 0xE8, 0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0xEB, 0xF1, 0x92, 0xA2, 0x10, 0x6A, 0xFF, 0x6B, 0x8C, 0xEA, 0x0D, 0x22, 0x04, 0x6A, 0x4D, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF7, 0x88, 0x9A, 0x01, 0x6D, 0x6C, 0xE8, +0x63, 0xF7, 0x94, 0x9A, 0x01, 0x6D, 0x6C, 0xE8, 0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0xEB, 0xF1, 0x72, 0xA2, 0x20, 0x6A, 0x6C, 0xEA, 0x05, 0x22, @@ -38549,39 +37975,39 @@ u8 array_mp_8822c_fw_nic[] = { 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0xEB, 0xF1, 0x72, 0xA2, 0x40, 0x6A, 0x4C, 0xEB, 0x03, 0x2B, 0x4D, 0xE8, 0xFF, 0x6A, 0x4C, 0xE8, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF7, 0x4C, 0x9A, 0x00, 0xC2, +0x20, 0x6A, 0x43, 0xF7, 0x58, 0x9A, 0x00, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF4, 0x51, 0xA2, -0x03, 0x2A, 0x01, 0x6C, 0x80, 0x18, 0x95, 0x73, +0x03, 0x2A, 0x01, 0x6C, 0x80, 0x18, 0xEA, 0x71, 0x30, 0xF0, 0x20, 0x6A, 0xEB, 0xF1, 0x72, 0xA2, 0x40, 0x6A, 0x04, 0x6C, 0x6C, 0xEA, 0x05, 0x2A, -0x80, 0x18, 0x1F, 0x71, 0x01, 0x6C, 0x01, 0x2A, -0x02, 0x6C, 0x80, 0x18, 0x95, 0x73, 0x98, 0x10, +0x80, 0x18, 0x74, 0x6F, 0x01, 0x6C, 0x01, 0x2A, +0x02, 0x6C, 0x80, 0x18, 0xEA, 0x71, 0x98, 0x10, 0x40, 0xC0, 0x04, 0x94, 0xA3, 0xF3, 0x59, 0xA4, 0x04, 0x72, 0xA0, 0xF0, 0x13, 0x61, 0x00, 0x6C, -0x80, 0x18, 0x95, 0x73, 0xAF, 0x10, 0x30, 0xF0, +0x80, 0x18, 0xEA, 0x71, 0xAF, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x04, 0xD2, 0xA0, 0xF0, 0x5A, 0xA2, 0x01, 0x6B, 0x6C, 0xEA, 0x2C, 0xEA, 0x80, 0xF0, 0x08, 0x22, 0x83, 0x67, -0xC0, 0x6D, 0x80, 0x18, 0x51, 0x78, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF7, 0x08, 0x4B, 0x60, 0x9B, +0xC0, 0x6D, 0x80, 0x18, 0xA9, 0x76, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF7, 0x14, 0x4B, 0x60, 0x9B, 0x05, 0x94, 0x20, 0x68, 0x40, 0xA3, 0x8D, 0xE8, 0x01, 0x6C, 0x2C, 0xEA, 0x8D, 0xEA, 0x2C, 0xEA, 0x40, 0xC3, 0x04, 0x94, 0x04, 0x6A, 0x2C, 0xE8, 0xA0, 0xF0, 0x7A, 0xA4, 0x6C, 0xEA, 0x2C, 0xEA, 0x18, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF7, -0x44, 0x9A, 0x01, 0x6C, 0x10, 0xF0, 0x00, 0x6D, +0x50, 0x9A, 0x01, 0x6C, 0x10, 0xF0, 0x00, 0x6D, 0x60, 0xA2, 0x2C, 0xEB, 0x60, 0xC2, 0x80, 0x18, -0x51, 0x78, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF7, -0x08, 0x4B, 0x60, 0x9B, 0x02, 0x6C, 0x40, 0xA3, +0xA9, 0x76, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF7, +0x14, 0x4B, 0x60, 0x9B, 0x02, 0x6C, 0x40, 0xA3, 0x2C, 0xEA, 0x8D, 0xEA, 0x2C, 0xEA, 0x40, 0xC3, 0x05, 0x10, 0x01, 0x6C, 0x10, 0xF0, 0x00, 0x6D, -0x80, 0x18, 0x6E, 0x78, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0x18, 0xC6, 0x76, 0x30, 0xF0, 0x20, 0x6A, 0xEB, 0xF1, 0x72, 0xA2, 0x08, 0x6A, 0x6C, 0xEA, 0x04, 0x22, 0x02, 0x6A, 0x4D, 0xE8, 0xFF, 0x6A, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0xEB, 0xF1, 0x72, 0xA2, 0x10, 0x6A, 0x6C, 0xEA, 0x04, 0x22, 0x04, 0x6A, 0x4D, 0xE8, 0xFF, 0x6A, 0x4C, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, 0x6C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, 0x78, 0x9A, 0x40, 0x6D, 0xFF, 0x6C, 0x00, 0xC3, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0xA0, 0xF0, 0x5A, 0xA0, 0xAC, 0xEA, 0x07, 0x22, 0xA3, 0xF3, @@ -38589,24 +38015,24 @@ u8 array_mp_8822c_fw_nic[] = { 0x00, 0x6D, 0x16, 0x10, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0xA3, 0xF3, 0x5A, 0xA0, 0x02, 0x72, 0x11, 0x61, 0x00, 0x18, -0x76, 0xCC, 0x80, 0x18, 0x1F, 0x71, 0x01, 0x72, -0x05, 0x61, 0x63, 0xF6, 0x9C, 0xA0, 0x01, 0x6D, +0xC7, 0xCB, 0x80, 0x18, 0x74, 0x6F, 0x01, 0x72, +0x05, 0x61, 0x63, 0xF6, 0x98, 0xA0, 0x01, 0x6D, 0x00, 0x6E, 0x03, 0x10, 0x00, 0x6C, 0xA4, 0x67, -0xC5, 0x67, 0x00, 0x18, 0xD3, 0xCE, 0x04, 0x10, -0x03, 0xF6, 0x43, 0xA0, 0xA3, 0xF3, 0x5A, 0xC0, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF7, 0x4C, 0x9A, +0xC5, 0x67, 0x00, 0x18, 0x28, 0xCE, 0x04, 0x10, +0xE3, 0xF5, 0x5F, 0xA0, 0xA3, 0xF3, 0x5A, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF7, 0x58, 0x9A, 0x22, 0x6B, 0x60, 0xC2, 0x1B, 0x10, 0x40, 0xC0, 0x04, 0x94, 0xA3, 0xF3, 0x5A, 0xA4, 0x04, 0x6C, 0x02, 0x72, 0x03, 0x60, 0x08, 0x72, 0x05, 0x61, 0x0C, 0x6C, 0x01, 0x6D, 0x00, 0x6E, 0x00, 0x18, -0xD3, 0xCE, 0x00, 0x6C, 0x80, 0x18, 0xDE, 0x40, -0x30, 0xF0, 0x20, 0x6A, 0xAE, 0xF7, 0x94, 0xA2, -0x01, 0x6D, 0x00, 0x6E, 0x00, 0x18, 0xD3, 0xCE, +0x28, 0xCE, 0x00, 0x6C, 0x80, 0x18, 0xDE, 0x40, +0x30, 0xF0, 0x20, 0x6A, 0xAE, 0xF7, 0x90, 0xA2, +0x01, 0x6D, 0x00, 0x6E, 0x00, 0x18, 0x28, 0xCE, 0x80, 0x18, 0x34, 0x40, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x40, 0xA4, 0x01, 0x72, -0x04, 0x61, 0x00, 0x18, 0xB3, 0xDD, 0x00, 0x18, -0xA9, 0xDD, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x04, 0x61, 0x00, 0x18, 0x12, 0xDD, 0x00, 0x18, +0x08, 0xDD, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x22, 0x6A, 0x7D, 0x67, 0x50, 0xC3, 0x01, 0x6A, 0x4F, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x92, 0xC3, @@ -38616,20 +38042,20 @@ u8 array_mp_8822c_fw_nic[] = { 0x4C, 0xE8, 0x6C, 0x40, 0x4C, 0xEB, 0x03, 0x5B, 0x01, 0x6C, 0x03, 0x61, 0x0E, 0xEC, 0x01, 0x5C, 0x98, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x0E, 0xF5, -0x70, 0xA2, 0x60, 0x6A, 0x6C, 0xEA, 0x40, 0x72, +0x6C, 0xA2, 0x60, 0x6A, 0x6C, 0xEA, 0x40, 0x72, 0x09, 0x60, 0x20, 0x72, 0x01, 0x61, 0x06, 0x2C, 0x03, 0x70, 0x04, 0x60, 0x02, 0x70, 0x02, 0x60, 0x09, 0x70, 0x49, 0x61, 0x09, 0x70, 0x06, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x0E, 0xF5, 0x32, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x0E, 0xF5, 0x2E, 0xA2, 0x32, 0x31, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x0E, 0xF5, 0x5C, 0xA2, 0x0F, 0x69, 0x4C, 0xE9, +0x0E, 0xF5, 0x58, 0xA2, 0x0F, 0x69, 0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x4C, 0x9B, 0x91, 0x67, 0x00, 0x6D, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0x08, 0xD2, 0x40, 0xF4, 0x4C, 0x9C, 0x01, 0x6D, 0x91, 0x67, 0x40, 0xEA, 0x9D, 0x67, 0x17, 0x6B, 0x70, 0xC4, 0x0A, 0x6B, 0x6F, 0xCC, 0x12, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0x0E, 0xF5, -0x70, 0xA3, 0x0F, 0x6C, 0x66, 0x33, 0x8C, 0xEB, +0x6C, 0xA3, 0x0F, 0x6C, 0x66, 0x33, 0x8C, 0xEB, 0x9D, 0x67, 0x73, 0xC4, 0x67, 0x44, 0x19, 0x4B, 0x60, 0xA3, 0x74, 0xC4, 0x08, 0x94, 0x82, 0x33, 0x9D, 0x67, 0x75, 0xC4, 0x62, 0x33, 0x76, 0xC4, @@ -38642,21 +38068,21 @@ u8 array_mp_8822c_fw_nic[] = { 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x60, 0xA4, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0x0F, 0x6A, 0x4C, 0xEB, 0xC3, 0xF3, -0x5A, 0xA0, 0x24, 0x67, 0x0F, 0x6C, 0x70, 0x33, +0x56, 0xA0, 0x24, 0x67, 0x0F, 0x6C, 0x70, 0x33, 0x8C, 0xEA, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF3, 0x5A, 0xC0, 0x80, 0xF5, 0x48, 0x9B, +0xC3, 0xF3, 0x56, 0xC0, 0x80, 0xF5, 0x48, 0x9B, 0x09, 0x6C, 0x40, 0xEA, 0x60, 0xA1, 0xC3, 0xF3, -0x5A, 0xA0, 0x0F, 0x6C, 0x72, 0x33, 0x70, 0x33, +0x56, 0xA0, 0x0F, 0x6C, 0x72, 0x33, 0x70, 0x33, 0x8C, 0xEA, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF3, 0x5A, 0xC0, 0x80, 0xF5, 0x48, 0x9B, +0xC3, 0xF3, 0x56, 0xC0, 0x80, 0xF5, 0x48, 0x9B, 0x09, 0x6C, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x60, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0xE3, 0xF3, 0x65, 0xC2, 0x61, 0xA4, -0xE3, 0xF3, 0x66, 0xC2, 0x62, 0xA4, 0xE3, 0xF3, -0x71, 0xC2, 0x63, 0xA4, 0xE3, 0xF3, 0x72, 0xC2, -0x64, 0xA4, 0xE3, 0xF3, 0x7D, 0xC2, 0x65, 0xA4, -0xE3, 0xF3, 0x7E, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0x18, 0x4A, 0xE3, 0xF3, 0x61, 0xC2, 0x61, 0xA4, +0xE3, 0xF3, 0x62, 0xC2, 0x62, 0xA4, 0xE3, 0xF3, +0x6D, 0xC2, 0x63, 0xA4, 0xE3, 0xF3, 0x6E, 0xC2, +0x64, 0xA4, 0xE3, 0xF3, 0x79, 0xC2, 0x65, 0xA4, +0xE3, 0xF3, 0x7A, 0xC2, 0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x45, 0xA4, 0x01, 0x68, 0xA4, 0x67, 0x0C, 0xEA, 0x3F, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, @@ -38664,17 +38090,17 @@ u8 array_mp_8822c_fw_nic[] = { 0x0D, 0xEB, 0xA0, 0xF0, 0x79, 0xC2, 0x81, 0xA4, 0xE0, 0xF3, 0x08, 0x6B, 0x80, 0x34, 0x88, 0x34, 0x7A, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, 0x12, 0xEB, -0xE3, 0xF4, 0x7C, 0xC2, 0x65, 0xA5, 0x66, 0x33, -0xE3, 0xF4, 0x7D, 0xC2, 0x65, 0xA5, 0x82, 0xA5, -0x66, 0x33, 0x6F, 0xE4, 0xE3, 0xF4, 0x7E, 0xC2, -0x62, 0xA5, 0xE3, 0xF4, 0x7F, 0xC2, 0x80, 0xA5, +0xE3, 0xF4, 0x78, 0xC2, 0x65, 0xA5, 0x66, 0x33, +0xE3, 0xF4, 0x79, 0xC2, 0x65, 0xA5, 0x82, 0xA5, +0x66, 0x33, 0x6F, 0xE4, 0xE3, 0xF4, 0x7A, 0xC2, +0x62, 0xA5, 0xE3, 0xF4, 0x7B, 0xC2, 0x80, 0xA5, 0x02, 0x6B, 0x6B, 0xEB, 0x0C, 0xEC, 0xCC, 0xEB, 0x8D, 0xEB, 0xA0, 0xF0, 0x74, 0xC2, 0x80, 0xA5, 0x0C, 0xEB, 0x86, 0x34, 0x84, 0x34, 0x8D, 0xEB, -0xA0, 0xF0, 0x74, 0xC2, 0xE3, 0xF4, 0x7F, 0xA2, +0xA0, 0xF0, 0x74, 0xC2, 0xE3, 0xF4, 0x7B, 0xA2, 0x64, 0x73, 0x06, 0x60, 0x96, 0x73, 0x04, 0x61, -0x03, 0x6B, 0xE3, 0xF4, 0x7F, 0xC2, 0x39, 0x10, -0xE3, 0xF4, 0x1F, 0xC2, 0x36, 0x10, 0x30, 0xF0, +0x03, 0x6B, 0xE3, 0xF4, 0x7B, 0xC2, 0x39, 0x10, +0xE3, 0xF4, 0x1B, 0xC2, 0x36, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xEB, 0xF1, 0x0C, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, @@ -38686,75 +38112,19 @@ u8 array_mp_8822c_fw_nic[] = { 0xA0, 0xF0, 0x76, 0xC2, 0x02, 0x10, 0xA0, 0xF0, 0x16, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA0, 0xF0, 0x76, 0xA2, 0xC3, 0xF3, -0xBB, 0xA2, 0x0F, 0x6C, 0x6C, 0xEC, 0x10, 0x6B, +0xB7, 0xA2, 0x0F, 0x6C, 0x6C, 0xEC, 0x10, 0x6B, 0x6B, 0xEB, 0xAC, 0xEB, 0x8D, 0xEB, 0xC3, 0xF3, -0x7B, 0xC2, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x2B, 0xF1, 0x18, 0x48, 0xC3, 0xF3, 0x74, 0xA0, -0x01, 0x6E, 0xFF, 0x69, 0xCC, 0xEB, 0x44, 0x67, -0x2C, 0xEB, 0x2C, 0xEA, 0x2C, 0xED, 0x48, 0x23, -0xC3, 0xF3, 0x94, 0xA0, 0x92, 0x34, 0x2C, 0xEC, -0x8E, 0xEA, 0x42, 0x2A, 0x1C, 0x25, 0xC3, 0xF3, -0x56, 0xA0, 0x0F, 0x6D, 0xC3, 0xF3, 0x95, 0xA0, -0x4C, 0xED, 0x52, 0x36, 0x30, 0xF0, 0x20, 0x6A, -0x00, 0xF4, 0x58, 0x9A, 0x2C, 0xED, 0x2C, 0xEE, -0x40, 0xEA, 0xC3, 0xF3, 0xF4, 0xA0, 0x30, 0xF0, -0x20, 0x6A, 0xA0, 0xF0, 0x8A, 0xA0, 0x40, 0xF4, -0x50, 0x9A, 0xF2, 0x37, 0x00, 0x6D, 0x08, 0x6E, -0x2C, 0xEF, 0x40, 0xEA, 0x25, 0x10, 0x7D, 0x67, -0x1F, 0x6A, 0x50, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0x40, 0xF4, 0x44, 0x9A, 0xCF, 0xCB, 0x00, 0x6D, -0x40, 0xEA, 0x7D, 0x67, 0x52, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, -0x40, 0xEA, 0xC3, 0xF3, 0x74, 0xA0, 0x02, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0xC3, 0xF3, 0x54, 0xC0, -0xC3, 0xF3, 0x94, 0xA0, 0x92, 0x34, 0x2C, 0xEC, -0x00, 0x18, 0x6A, 0xE8, 0xC3, 0xF3, 0x94, 0xA0, -0x92, 0x34, 0x2C, 0xEC, 0x00, 0x18, 0x60, 0xE8, -0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x77, 0xC2, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, -0x18, 0x48, 0xC3, 0xF3, 0x74, 0xA0, 0x01, 0x6A, -0x6C, 0xEA, 0x13, 0x22, 0x00, 0x6C, 0x04, 0xF0, -0x00, 0x6D, 0x80, 0x18, 0x6E, 0x78, 0xC3, 0xF3, -0xF4, 0xA0, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, -0x50, 0x9A, 0xA0, 0xF0, 0x8A, 0xA0, 0xF2, 0x37, -0xFF, 0x6B, 0x01, 0x6D, 0x08, 0x6E, 0x6C, 0xEF, -0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x4C, 0x9A, 0x24, 0x67, 0x30, 0xF0, -0x20, 0x6C, 0xB1, 0x67, 0x02, 0x6E, 0x0E, 0xF5, -0x0D, 0x4C, 0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, -0x2B, 0xF1, 0x18, 0x48, 0x62, 0xA1, 0xC3, 0xF3, -0x94, 0xA0, 0x0F, 0x6A, 0x4C, 0xEB, 0x70, 0x33, -0x8C, 0xEA, 0x6D, 0xEA, 0xC3, 0xF3, 0x54, 0xC0, -0x66, 0xA1, 0x00, 0xF6, 0x60, 0x33, 0x04, 0xD3, -0x65, 0xA1, 0x04, 0x94, 0x60, 0x33, 0x60, 0x33, -0x6D, 0xEC, 0x63, 0xA1, 0x6D, 0xEC, 0x64, 0xA1, -0xFF, 0x69, 0x60, 0x33, 0x6D, 0xEC, 0x01, 0x6B, -0x4D, 0xEB, 0xC3, 0xF3, 0x74, 0xC0, 0x04, 0xD4, -0xC3, 0xF3, 0x94, 0xA0, 0x92, 0x34, 0x00, 0x18, -0x56, 0xE8, 0xC3, 0xF3, 0x94, 0xA0, 0x92, 0x34, -0x00, 0x18, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF7, 0x60, 0x9A, 0x08, 0x6C, 0x8B, 0xEC, -0x40, 0xA3, 0x04, 0xF0, 0x00, 0x6D, 0x2C, 0xEA, -0x8C, 0xEA, 0xC3, 0xF3, 0x94, 0xA0, 0x92, 0x34, -0x8D, 0xEA, 0x2C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF7, 0x44, 0x9A, 0x04, 0x93, -0x00, 0x6C, 0x60, 0xDA, 0x80, 0x18, 0x51, 0x78, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x80, 0x18, 0x8B, 0x6C, 0x05, 0x97, 0x03, 0x63, +0x80, 0x18, 0xE0, 0x6A, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, -0xC3, 0xF3, 0xDD, 0xA3, 0x20, 0x6D, 0xFF, 0x6A, +0xC3, 0xF3, 0xD9, 0xA3, 0x20, 0x6D, 0xFF, 0x6A, 0xCC, 0xED, 0x4C, 0xED, 0x4C, 0xEC, 0x10, 0x2D, -0xE3, 0xF3, 0xC4, 0xA3, 0x0F, 0x6D, 0xCC, 0xED, -0x8E, 0xED, 0x0A, 0x2D, 0xC3, 0xF3, 0x98, 0xA3, +0xE3, 0xF3, 0xC0, 0xA3, 0x0F, 0x6D, 0xCC, 0xED, +0x8E, 0xED, 0x0A, 0x2D, 0xC3, 0xF3, 0x94, 0xA3, 0x01, 0x6B, 0x8C, 0xEB, 0x4C, 0xEB, 0x04, 0x23, -0x80, 0x18, 0x21, 0x6C, 0x80, 0x18, 0x61, 0x6C, +0x80, 0x18, 0x45, 0x6A, 0x80, 0x18, 0x85, 0x6A, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x69, 0x80, 0xF2, @@ -38771,16 +38141,16 @@ u8 array_mp_8822c_fw_nic[] = { 0x40, 0x40, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, 0x00, 0xF1, 0x00, 0x5A, 0x39, 0x60, 0x08, 0x92, 0x04, 0x72, 0x11, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF1, 0x40, 0x9A, 0xFF, 0x6B, 0x49, 0xE0, +0x43, 0xF1, 0x44, 0x9A, 0xFF, 0x6B, 0x49, 0xE0, 0x40, 0xA2, 0x4C, 0xEB, 0x5F, 0x21, 0x06, 0x94, 0x8F, 0xEA, 0x6C, 0xEA, 0x04, 0x93, 0x8C, 0xEB, 0x6D, 0xEA, 0x04, 0xD2, 0x57, 0x10, 0x08, 0x92, 0x05, 0x72, 0x12, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF1, 0x40, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, +0x43, 0xF1, 0x44, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, 0x49, 0xE0, 0x40, 0xAA, 0x4C, 0xEB, 0x7F, 0x21, 0x06, 0x94, 0x8F, 0xEA, 0x6C, 0xEA, 0x04, 0x93, 0x8C, 0xEB, 0x6D, 0xEA, 0x04, 0xD2, 0x77, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x40, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x44, 0x9A, 0x49, 0xE0, 0x60, 0x9A, 0x80, 0xF0, 0x1E, 0x21, 0x06, 0x94, 0x8F, 0xEA, 0x6C, 0xEA, 0x04, 0x93, 0x8C, 0xEB, 0x6D, 0xEA, 0x04, 0xD2, 0x96, 0x10, @@ -38790,43 +38160,43 @@ u8 array_mp_8822c_fw_nic[] = { 0x08, 0x92, 0x04, 0x72, 0x31, 0x61, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF1, 0x40, 0x9A, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF1, 0x44, 0x9A, 0x49, 0xE0, +0x43, 0xF1, 0x44, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF1, 0x48, 0x9A, 0x49, 0xE0, 0x60, 0xA2, 0xFF, 0x6A, 0x6C, 0xEA, 0x07, 0x21, 0x06, 0x94, 0x8F, 0xEB, 0x4C, 0xEB, 0x04, 0x92, 0x8C, 0xEA, 0x4D, 0xEB, 0x04, 0xD3, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF1, 0x40, 0x9A, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF1, 0x44, 0x9A, 0x7D, 0x67, +0x43, 0xF1, 0x44, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF1, 0x48, 0x9A, 0x7D, 0x67, 0x41, 0xE0, 0x50, 0xA3, 0x40, 0xC0, 0x7E, 0x10, 0x08, 0x92, 0x05, 0x72, 0x32, 0x61, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF1, 0x40, 0x9A, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF1, 0x44, 0x9A, 0x49, 0xE0, +0x43, 0xF1, 0x44, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF1, 0x48, 0x9A, 0x49, 0xE0, 0x60, 0xAA, 0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, 0x07, 0x21, 0x06, 0x94, 0x8F, 0xEB, 0x4C, 0xEB, 0x04, 0x92, 0x8C, 0xEA, 0x4D, 0xEB, 0x04, 0xD3, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF1, 0x40, 0x9A, 0x04, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x44, 0x9A, +0x20, 0x6A, 0x43, 0xF1, 0x44, 0x9A, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x48, 0x9A, 0x7D, 0x67, 0x41, 0xE0, 0x48, 0xAB, 0x40, 0xC8, 0x49, 0x10, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x40, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x44, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, -0x44, 0x9A, 0x49, 0xE0, 0x60, 0x9A, 0x07, 0x21, +0x48, 0x9A, 0x49, 0xE0, 0x60, 0x9A, 0x07, 0x21, 0x06, 0x94, 0x8F, 0xEA, 0x6C, 0xEA, 0x04, 0x93, 0x8C, 0xEB, 0x6D, 0xEA, 0x04, 0xD2, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF1, 0x40, 0x9A, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF1, 0x44, 0x9A, 0x41, 0xE0, +0x43, 0xF1, 0x44, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF1, 0x48, 0x9A, 0x41, 0xE0, 0x04, 0x92, 0x40, 0xD8, 0x1B, 0x10, 0xFF, 0xF7, 0x1C, 0x6A, 0x0C, 0xEA, 0x01, 0x6D, 0x82, 0x67, -0xAB, 0xED, 0x08, 0xD2, 0x80, 0x18, 0x35, 0x25, +0xAB, 0xED, 0x08, 0xD2, 0x80, 0x18, 0x0D, 0x28, 0x05, 0xD2, 0x07, 0x21, 0x06, 0x94, 0x8F, 0xEB, 0x4C, 0xEB, 0x04, 0x92, 0x8C, 0xEA, 0x4D, 0xEB, 0x04, 0xD3, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, @@ -38843,21 +38213,21 @@ u8 array_mp_8822c_fw_nic[] = { 0x03, 0x6A, 0x51, 0x10, 0x61, 0xA4, 0x80, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6E, 0x07, 0x03, 0x90, 0x67, 0x4C, 0xEE, 0x06, 0x07, 0x04, 0xD3, -0x80, 0x18, 0x04, 0x66, 0x28, 0x10, 0x81, 0xA4, +0x80, 0x18, 0x28, 0x64, 0x28, 0x10, 0x81, 0xA4, 0x80, 0x6A, 0xFF, 0x69, 0x64, 0x67, 0x4C, 0xEB, 0x0C, 0xE9, 0x02, 0x32, 0x30, 0xF0, 0x21, 0x6C, 0x01, 0x6F, 0x12, 0xF5, 0x08, 0x4C, 0xA2, 0x67, 0xD1, 0x67, 0xEB, 0xEF, 0x08, 0xD3, 0x09, 0xD2, -0x80, 0x18, 0x1A, 0x5A, 0x08, 0x93, 0x07, 0x23, +0x80, 0x18, 0x9F, 0x58, 0x08, 0x93, 0x07, 0x23, 0x07, 0x94, 0x8F, 0xEB, 0x4C, 0xEB, 0x06, 0x92, 0x8C, 0xEA, 0x4D, 0xEB, 0x06, 0xD3, 0x06, 0x92, 0x09, 0x95, 0x30, 0xF0, 0x21, 0x6C, 0x01, 0x6F, 0x12, 0xF5, 0x08, 0x4C, 0xD1, 0x67, 0xEB, 0xEF, -0x04, 0xD2, 0x80, 0x18, 0x8D, 0x5A, 0x30, 0xF0, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xC7, 0xF1, -0x7C, 0x9A, 0x06, 0x94, 0x61, 0xE0, 0xE7, 0xF1, -0x60, 0x9A, 0xC7, 0xF1, 0x1C, 0xDA, 0x6D, 0xE4, -0xE7, 0xF1, 0x60, 0xDA, 0x0B, 0x10, 0x30, 0xF0, +0x78, 0x9A, 0x06, 0x94, 0x61, 0xE0, 0xC7, 0xF1, +0x7C, 0x9A, 0xC7, 0xF1, 0x18, 0xDA, 0x6D, 0xE4, +0xC7, 0xF1, 0x7C, 0xDA, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, 0x90, 0x67, 0x40, 0xEA, 0x01, 0x6A, 0x0D, 0x97, @@ -38872,10 +38242,10 @@ u8 array_mp_8822c_fw_nic[] = { 0x1F, 0x6A, 0xAC, 0xEA, 0xBD, 0x67, 0x5E, 0xC5, 0x42, 0x32, 0x5F, 0xC5, 0x0C, 0x6A, 0x5B, 0xC5, 0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xEB, -0x43, 0xF7, 0x44, 0x9A, 0x78, 0xC5, 0x03, 0x6B, +0x43, 0xF7, 0x50, 0x9A, 0x78, 0xC5, 0x03, 0x6B, 0x7A, 0xC5, 0x9C, 0xC5, 0x40, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x08, 0x04, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF7, 0x48, 0x9A, 0x05, 0x05, +0x20, 0x6A, 0x43, 0xF7, 0x54, 0x9A, 0x05, 0x05, 0x04, 0x6E, 0x40, 0x9A, 0x05, 0xD2, 0x80, 0xF2, 0x4C, 0x98, 0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x98, 0x09, 0x04, 0x04, 0x05, 0x04, 0x6E, 0x40, 0xEA, @@ -38884,76 +38254,76 @@ u8 array_mp_8822c_fw_nic[] = { 0x21, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0xA7, 0x44, 0x30, 0xF0, 0x21, 0x6C, 0x01, 0x4D, -0x12, 0xF3, 0x1C, 0x4C, 0x14, 0x6E, 0x40, 0xEA, +0x12, 0xF3, 0x18, 0x4C, 0x14, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xE0, 0x63, 0x3F, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, 0x30, 0xF0, 0x20, 0x6B, 0xAC, 0xEA, 0x30, 0xF0, -0x20, 0x6D, 0x43, 0xF7, 0xA8, 0x9D, 0x43, 0xF7, -0x64, 0x9B, 0xFD, 0x67, 0x60, 0x9B, 0xC0, 0x9D, +0x20, 0x6D, 0x43, 0xF7, 0xB4, 0x9D, 0x43, 0xF7, +0x70, 0x9B, 0xFD, 0x67, 0x60, 0x9B, 0xC0, 0x9D, 0x01, 0x6D, 0x56, 0xC7, 0xAB, 0xED, 0xC2, 0x32, 0xB0, 0xC7, 0x59, 0xC7, 0x22, 0x6D, 0x42, 0x32, 0xB2, 0xC7, 0x5A, 0xC7, 0x0C, 0x6D, 0x62, 0x32, 0xB3, 0xC7, 0x5D, 0xC7, 0x30, 0xF0, 0x21, 0x6D, -0x42, 0x32, 0x52, 0xF4, 0xA0, 0xA5, 0x5E, 0xC7, +0x42, 0x32, 0x32, 0xF4, 0xBC, 0xA5, 0x5E, 0xC7, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, 0xD8, 0xC7, 0x7C, 0xC7, 0x00, 0xF6, 0xC2, 0x36, 0x00, 0xF6, 0x62, 0x33, 0xB4, 0xC7, 0x95, 0xC7, 0xDB, 0xC7, 0x7F, 0xC7, 0x04, 0x04, 0x40, 0xEA, 0x3F, 0x97, 0x20, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x04, 0x67, 0x80, 0x18, 0xFF, 0x66, 0x47, 0xA0, +0x04, 0x67, 0x80, 0x18, 0x23, 0x65, 0x47, 0xA0, 0x66, 0xA0, 0x30, 0xF0, 0x20, 0x69, 0x2B, 0xF1, -0x18, 0x49, 0x40, 0x32, 0xE7, 0xF1, 0x84, 0xA1, -0x69, 0xE2, 0xE7, 0xF1, 0x56, 0xC9, 0x01, 0x6A, +0x18, 0x49, 0x40, 0x32, 0xE7, 0xF1, 0x80, 0xA1, +0x69, 0xE2, 0xE7, 0xF1, 0x52, 0xC9, 0x01, 0x6A, 0x8C, 0xEA, 0xFF, 0x6B, 0x1C, 0x2A, 0xE7, 0xF1, -0xB8, 0xA1, 0xFE, 0x4A, 0xAC, 0xEA, 0xE7, 0xF1, -0x58, 0xC1, 0x02, 0x6A, 0x8C, 0xEA, 0x6C, 0xEA, -0x52, 0x22, 0xE7, 0xF1, 0x47, 0xA1, 0x0F, 0x6D, -0xE7, 0xF1, 0x88, 0xA1, 0x4C, 0xED, 0x52, 0x36, +0xB4, 0xA1, 0xFE, 0x4A, 0xAC, 0xEA, 0xE7, 0xF1, +0x54, 0xC1, 0x02, 0x6A, 0x8C, 0xEA, 0x6C, 0xEA, +0x52, 0x22, 0xE7, 0xF1, 0x43, 0xA1, 0x0F, 0x6D, +0xE7, 0xF1, 0x84, 0xA1, 0x4C, 0xED, 0x52, 0x36, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x58, 0x9A, 0x6C, 0xED, 0x6C, 0xEE, 0x40, 0xEA, 0x01, 0x72, 0x0D, 0x6A, 0x42, 0x61, 0x40, 0x10, 0xE7, 0xF1, -0x78, 0xA1, 0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, -0xE7, 0xF1, 0x58, 0xC1, 0xE7, 0xF1, 0x54, 0xA9, +0x74, 0xA1, 0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xE7, 0xF1, 0x54, 0xC1, 0xE7, 0xF1, 0x50, 0xA9, 0x00, 0xF1, 0x01, 0x5A, 0x0C, 0x6A, 0x34, 0x60, -0x00, 0x6A, 0xE7, 0xF1, 0x59, 0xC1, 0xE7, 0xF1, -0x5A, 0xC1, 0xE7, 0xF1, 0x05, 0xA1, 0x00, 0x6A, -0xE7, 0xF1, 0x5C, 0xC9, 0xE7, 0xF1, 0x5E, 0xC9, -0x07, 0xF2, 0x44, 0xC1, 0x07, 0xF2, 0x45, 0xC1, -0x00, 0x18, 0x25, 0xD7, 0x01, 0xE2, 0x00, 0x6A, -0xE7, 0xF1, 0xF4, 0xA9, 0x04, 0xD2, 0x05, 0xD2, +0x00, 0x6A, 0xE7, 0xF1, 0x55, 0xC1, 0xE7, 0xF1, +0x56, 0xC1, 0xE7, 0xF1, 0x01, 0xA1, 0x00, 0x6A, +0xE7, 0xF1, 0x58, 0xC9, 0xE7, 0xF1, 0x5A, 0xC9, +0x07, 0xF2, 0x40, 0xC1, 0x07, 0xF2, 0x41, 0xC1, +0x00, 0x18, 0x7B, 0xD6, 0x01, 0xE2, 0x00, 0x6A, +0xE7, 0xF1, 0xF0, 0xA9, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, 0x78, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF0, 0xB4, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0x54, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF0, 0xB8, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0x58, 0x9A, 0x30, 0xF0, 0x21, 0x6E, 0x1C, 0x30, 0x32, 0xF3, -0x1E, 0x4E, 0x00, 0x6C, 0xB5, 0xE0, 0x59, 0xE6, -0x40, 0xEB, 0xE7, 0xF1, 0x58, 0xA1, 0x01, 0x6B, -0x6D, 0xEA, 0xE7, 0xF1, 0x58, 0xC1, 0x00, 0x6A, +0x1A, 0x4E, 0x00, 0x6C, 0xB5, 0xE0, 0x59, 0xE6, +0x40, 0xEB, 0xE7, 0xF1, 0x54, 0xA1, 0x01, 0x6B, +0x6D, 0xEA, 0xE7, 0xF1, 0x54, 0xC1, 0x00, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xF2, 0x63, 0x1B, 0x62, 0x1A, 0xD1, 0x19, 0xD0, 0x30, 0xF0, 0x21, 0x6A, -0x52, 0xF4, 0x08, 0x9A, 0x04, 0x6A, 0x61, 0xA0, +0x52, 0xF4, 0x04, 0x9A, 0x04, 0x6A, 0x61, 0xA0, 0x6C, 0xEA, 0x04, 0x22, 0x04, 0x6C, 0x00, 0x6D, -0x80, 0x18, 0x08, 0x67, 0x42, 0xA0, 0x7F, 0x6E, +0x80, 0x18, 0x2C, 0x65, 0x42, 0xA0, 0x7F, 0x6E, 0x30, 0xF0, 0x21, 0x6C, 0x4C, 0xEE, 0x52, 0xF4, -0x15, 0x4C, 0x00, 0x6B, 0x40, 0xA4, 0xFF, 0x6D, +0x11, 0x4C, 0x00, 0x6B, 0x40, 0xA4, 0xFF, 0x6D, 0x6C, 0xED, 0xCE, 0xEA, 0x47, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x60, 0xF7, 0xE3, 0x43, 0xEC, 0x37, -0x2B, 0xF1, 0x18, 0x4A, 0x5D, 0xE7, 0xE4, 0xA7, +0x20, 0x6A, 0x60, 0xF7, 0xE2, 0x43, 0xEC, 0x37, +0x2B, 0xF1, 0x18, 0x4A, 0x5D, 0xE7, 0xE8, 0xA7, 0x1F, 0x65, 0x38, 0x67, 0x01, 0x6F, 0x2C, 0xEF, 0x01, 0x77, 0x38, 0x61, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF2, 0x68, 0x9B, 0xC7, 0xF1, 0xD9, 0xA2, -0x60, 0xF7, 0x03, 0x4D, 0x80, 0xAB, 0xE1, 0xF7, +0xA3, 0xF2, 0x6C, 0x9B, 0xC7, 0xF1, 0xD5, 0xA2, +0x60, 0xF7, 0x02, 0x4D, 0x80, 0xAB, 0xE1, 0xF7, 0x1F, 0x6B, 0xAC, 0x35, 0x8C, 0xEB, 0x49, 0xE5, -0xD9, 0xE3, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0x9A, -0x03, 0xF1, 0x74, 0x9B, 0xE3, 0xAA, 0x58, 0x67, +0xD9, 0xE3, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0x9A, +0x03, 0xF1, 0x78, 0x9B, 0xE5, 0xAA, 0x58, 0x67, 0x75, 0xE5, 0x30, 0xF0, 0x20, 0x6B, 0x64, 0xF0, -0x78, 0x9B, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, +0x7C, 0x9B, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, 0x58, 0x9A, 0xDC, 0x36, 0x79, 0xE6, 0x00, 0x6C, 0x40, 0xEA, 0x0C, 0x04, -0x00, 0x6D, 0x30, 0x6E, 0x00, 0x18, 0xE7, 0xD7, -0x10, 0xF0, 0x31, 0x6A, 0x53, 0xF4, 0x19, 0x4A, -0x0C, 0xD2, 0x10, 0xF0, 0x31, 0x6A, 0x73, 0xF4, +0x00, 0x6D, 0x30, 0x6E, 0x00, 0x18, 0x3D, 0xD7, +0x10, 0xF0, 0x31, 0x6A, 0xB4, 0xF7, 0x19, 0x4A, +0x0C, 0xD2, 0x10, 0xF0, 0x31, 0x6A, 0xD4, 0xF7, 0x1D, 0x4A, 0x0D, 0xD2, 0x04, 0x04, 0x00, 0x6A, 0x10, 0x03, 0x10, 0x10, 0x01, 0x4B, 0x0A, 0x73, 0x08, 0x4C, 0xB0, 0x61, 0x61, 0xA0, 0x02, 0x6A, @@ -38961,162 +38331,162 @@ u8 array_mp_8822c_fw_nic[] = { 0x17, 0x10, 0x59, 0xE3, 0xC0, 0xA6, 0x55, 0xE4, 0x01, 0x4A, 0xC0, 0xC5, 0x20, 0x5A, 0xF9, 0x61, 0x0C, 0x94, 0x0D, 0x95, 0x0E, 0x96, 0x0F, 0x97, -0x00, 0x18, 0xC4, 0xE5, 0x81, 0xA0, 0x02, 0x6B, +0x00, 0x18, 0x1A, 0xE5, 0x81, 0xA0, 0x02, 0x6B, 0x8C, 0xEB, 0x08, 0x23, 0x03, 0x2A, 0x05, 0x6C, 0x08, 0x6D, 0x02, 0x10, 0x05, 0x6C, 0x07, 0x6D, -0x80, 0x18, 0x08, 0x67, 0x1B, 0x97, 0x1A, 0x91, +0x80, 0x18, 0x2C, 0x65, 0x1B, 0x97, 0x1A, 0x91, 0x19, 0x90, 0x0E, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF2, 0x68, 0x9A, 0x23, 0x23, 0x80, 0xA3, 0x80, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, 0x1C, 0x22, -0x30, 0xF0, 0x21, 0x6A, 0x32, 0xF3, 0x5C, 0xA2, +0x30, 0xF0, 0x21, 0x6A, 0x32, 0xF3, 0x58, 0xA2, 0x01, 0x72, 0x16, 0x61, 0x61, 0xA3, 0x01, 0x6A, 0x6C, 0xEA, 0x8C, 0xEA, 0x04, 0x22, 0x06, 0x6C, -0x00, 0x6D, 0x80, 0x18, 0x08, 0x67, 0x30, 0xF0, +0x00, 0x6D, 0x80, 0x18, 0x2C, 0x65, 0x30, 0xF0, 0x20, 0x6B, 0xC9, 0xF2, 0x88, 0x9B, 0x7F, 0x6A, 0xA0, 0xA4, 0x4C, 0xED, 0xA0, 0xC4, 0xC9, 0xF2, 0x68, 0x9B, 0xC0, 0xA3, 0x4C, 0xEE, 0x5D, 0x11, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, -0x07, 0xF3, 0x90, 0x98, 0x00, 0x6A, 0x07, 0xF2, -0x45, 0xC0, 0x07, 0xF2, 0x44, 0xC0, 0x00, 0x18, -0x07, 0xD8, 0x30, 0xF0, 0x21, 0x6A, 0x32, 0xF3, -0x1E, 0x4A, 0x06, 0xD2, 0x06, 0x93, 0xE7, 0xF1, -0xBC, 0xA8, 0x30, 0xF0, 0x20, 0x69, 0x80, 0xF2, +0x07, 0xF3, 0x8C, 0x98, 0x00, 0x6A, 0x07, 0xF2, +0x41, 0xC0, 0x07, 0xF2, 0x40, 0xC0, 0x00, 0x18, +0x5D, 0xD7, 0x30, 0xF0, 0x21, 0x6A, 0x32, 0xF3, +0x1A, 0x4A, 0x06, 0xD2, 0x06, 0x93, 0xE7, 0xF1, +0xB8, 0xA8, 0x30, 0xF0, 0x20, 0x69, 0x80, 0xF2, 0x4C, 0x99, 0x30, 0xF0, 0x21, 0x6C, 0xB5, 0xE3, -0x52, 0xF4, 0x00, 0x4C, 0x04, 0x6E, 0x40, 0xEA, -0xE7, 0xF1, 0x5C, 0xA8, 0x07, 0xF3, 0x6B, 0xA0, -0x04, 0x4A, 0xE7, 0xF1, 0x5C, 0xC8, 0x80, 0x6A, +0x32, 0xF4, 0x1C, 0x4C, 0x04, 0x6E, 0x40, 0xEA, +0xE7, 0xF1, 0x58, 0xA8, 0x07, 0xF3, 0x67, 0xA0, +0x04, 0x4A, 0xE7, 0xF1, 0x58, 0xC8, 0x80, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0x07, 0xF3, -0x50, 0xD8, 0xC9, 0xF2, 0x48, 0xDB, 0x40, 0x10, -0x06, 0x93, 0xE7, 0xF1, 0xBC, 0xA8, 0x80, 0xF2, +0x4C, 0xD8, 0xC9, 0xF2, 0x48, 0xDB, 0x40, 0x10, +0x06, 0x93, 0xE7, 0xF1, 0xB8, 0xA8, 0x80, 0xF2, 0x4C, 0x99, 0x30, 0xF0, 0x21, 0x6C, 0xB5, 0xE3, -0x52, 0xF4, 0x04, 0x4C, 0x02, 0x6E, 0x40, 0xEA, -0xE7, 0xF1, 0x5C, 0xA8, 0x07, 0xF3, 0x6C, 0xA0, -0x02, 0x4A, 0xE7, 0xF1, 0x5C, 0xC8, 0x7F, 0x6A, +0x52, 0xF4, 0x00, 0x4C, 0x02, 0x6E, 0x40, 0xEA, +0xE7, 0xF1, 0x58, 0xA8, 0x07, 0xF3, 0x68, 0xA0, +0x02, 0x4A, 0xE7, 0xF1, 0x58, 0xC8, 0x7F, 0x6A, 0x6C, 0xEA, 0x03, 0x72, 0x17, 0x61, 0x07, 0xF3, -0x8D, 0xA0, 0x00, 0x18, 0x16, 0xD8, 0x07, 0xF3, -0x50, 0xD8, 0xE7, 0xF1, 0xBC, 0xA8, 0x82, 0x67, +0x89, 0xA0, 0x00, 0x18, 0x6C, 0xD7, 0x07, 0xF3, +0x4C, 0xD8, 0xE7, 0xF1, 0xB8, 0xA8, 0x82, 0x67, 0x06, 0x92, 0x80, 0xF2, 0x6C, 0x99, 0x07, 0xF3, -0xCD, 0xA0, 0xB5, 0xE2, 0x40, 0xEB, 0x07, 0xF3, -0x70, 0x98, 0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF2, +0xC9, 0xA0, 0xB5, 0xE2, 0x40, 0xEB, 0x07, 0xF3, +0x6C, 0x98, 0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF2, 0x68, 0xDA, 0x07, 0x10, 0x00, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x07, 0xF3, 0x50, 0xD8, 0xC9, 0xF2, +0x20, 0x6B, 0x07, 0xF3, 0x4C, 0xD8, 0xC9, 0xF2, 0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0xE7, 0xF1, 0x7C, 0xAA, 0x07, 0xF3, -0x8D, 0xA2, 0x6D, 0xE4, 0xE7, 0xF1, 0x7C, 0xCA, +0x18, 0x4A, 0xE7, 0xF1, 0x78, 0xAA, 0x07, 0xF3, +0x89, 0xA2, 0x6D, 0xE4, 0xE7, 0xF1, 0x78, 0xCA, 0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF2, 0x48, 0x9A, 0x61, 0xA2, 0x10, 0x6A, 0x6C, 0xEA, 0x04, 0x22, -0x00, 0x6C, 0xA4, 0x67, 0x80, 0x18, 0x08, 0x67, +0x00, 0x6C, 0xA4, 0x67, 0x80, 0x18, 0x2C, 0x65, 0x30, 0xF0, 0x20, 0x6C, 0x2B, 0xF1, 0x18, 0x4C, -0x07, 0xF3, 0x69, 0xA4, 0x30, 0xF0, 0x20, 0x6A, -0x00, 0xF4, 0x58, 0x9A, 0x07, 0xF3, 0x88, 0xA4, +0x07, 0xF3, 0x65, 0xA4, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF4, 0x58, 0x9A, 0x07, 0xF3, 0x84, 0xA4, 0x0F, 0x6D, 0x6C, 0xED, 0x72, 0x36, 0xFF, 0x68, 0x40, 0xEA, 0x27, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF2, 0x48, 0x9A, 0x61, 0xA2, 0x08, 0x6A, 0x6C, 0xEA, 0x0C, 0xEA, 0x04, 0x22, 0x01, 0x6C, -0x02, 0x6D, 0x80, 0x18, 0x08, 0x67, 0x30, 0xF0, +0x02, 0x6D, 0x80, 0x18, 0x2C, 0x65, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0xE7, 0xF1, -0x64, 0xA0, 0x20, 0x6A, 0x6C, 0xEA, 0x80, 0xF0, +0x60, 0xA0, 0x20, 0x6A, 0x6C, 0xEA, 0x80, 0xF0, 0x10, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF4, -0x54, 0x9A, 0x40, 0xEA, 0xE7, 0xF1, 0x78, 0xA0, +0x54, 0x9A, 0x40, 0xEA, 0xE7, 0xF1, 0x74, 0xA0, 0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xE7, 0xF1, -0x58, 0xC0, 0x01, 0x6C, 0xE7, 0xF1, 0xB6, 0xA8, +0x54, 0xC0, 0x01, 0x6C, 0xE7, 0xF1, 0xB2, 0xA8, 0xCC, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF2, 0x48, 0x9A, 0x61, 0xA2, 0x08, 0x6A, 0x6C, 0xEA, 0x0C, 0xEA, 0x04, 0x22, 0x01, 0x6C, 0xA4, 0x67, -0x80, 0x18, 0x08, 0x67, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x07, 0xF3, 0xAB, 0xA2, +0x80, 0x18, 0x2C, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0x07, 0xF3, 0xA7, 0xA2, 0x7F, 0x6B, 0xFF, 0x6C, 0xAC, 0xEB, 0x56, 0x23, 0x01, 0x73, 0x4D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF2, 0x48, 0x9A, 0x61, 0xA2, 0x04, 0x6A, 0x6C, 0xEA, 0x8C, 0xEA, 0x04, 0x22, 0x02, 0x6C, -0x00, 0x6D, 0x80, 0x18, 0x08, 0x67, 0x30, 0xF0, +0x00, 0x6D, 0x80, 0x18, 0x2C, 0x65, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, 0x4C, 0x9A, 0x00, 0x6C, 0x40, 0xEA, 0x0B, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF2, 0x48, 0x9A, 0x61, 0xA2, 0x02, 0x6A, 0x6C, 0xEA, 0x17, 0x22, 0x03, 0x6C, 0xA4, 0x67, 0x12, 0x10, 0x30, 0xF0, 0x21, 0x6A, 0x12, 0xF3, -0x91, 0xA2, 0x00, 0x6D, 0x80, 0x18, 0x8D, 0x27, +0x8D, 0xA2, 0x00, 0x6D, 0x80, 0x18, 0x65, 0x2A, 0x14, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF2, 0x48, 0x9A, 0x61, 0xA2, 0x02, 0x6A, 0x6C, 0xEA, 0x04, 0x22, 0x03, 0x6C, 0x05, 0x6D, 0x80, 0x18, -0x08, 0x67, 0x30, 0xF0, 0x21, 0x6A, 0x12, 0xF3, -0x7C, 0xA2, 0x20, 0x6A, 0x6C, 0xEA, 0x2D, 0x2A, +0x2C, 0x65, 0x30, 0xF0, 0x21, 0x6A, 0x12, 0xF3, +0x78, 0xA2, 0x20, 0x6A, 0x6C, 0xEA, 0x2D, 0x2A, 0x6A, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF2, 0x48, 0x9A, 0x61, 0xA2, 0x02, 0x6A, 0x6C, 0xEA, 0x04, 0x22, 0x03, 0x6C, 0x04, 0x6D, 0x80, 0x18, -0x08, 0x67, 0x01, 0x6B, 0x30, 0xF0, 0x21, 0x6A, -0x32, 0xF3, 0x7D, 0xC2, 0x07, 0x10, 0xE7, 0xF1, -0xA4, 0xA2, 0x20, 0x6B, 0xAC, 0xEB, 0x8C, 0xEB, +0x2C, 0x65, 0x01, 0x6B, 0x30, 0xF0, 0x21, 0x6A, +0x32, 0xF3, 0x79, 0xC2, 0x07, 0x10, 0xE7, 0xF1, +0xA0, 0xA2, 0x20, 0x6B, 0xAC, 0xEB, 0x8C, 0xEB, 0x14, 0x2B, 0x48, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF2, 0x48, 0x9A, 0x61, 0xA2, 0x80, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, 0x21, 0x6A, 0x32, 0xF3, -0x5D, 0xA2, 0x01, 0x72, 0x02, 0x60, 0x80, 0x18, -0x61, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0xE7, 0xF1, 0x79, 0xA2, 0x07, 0xF3, -0x8A, 0xA2, 0x01, 0x4B, 0xE7, 0xF1, 0x79, 0xC2, -0xE7, 0xF1, 0x7E, 0xAA, 0x6D, 0xE4, 0xE7, 0xF1, -0x7E, 0xCA, 0xE7, 0xF1, 0x99, 0xA2, 0xE7, 0xF1, -0x66, 0xA2, 0x8E, 0xEB, 0x0C, 0x2B, 0x07, 0xF3, -0xCA, 0xA2, 0x10, 0xF0, 0x32, 0x6C, 0x30, 0xF0, +0x59, 0xA2, 0x01, 0x72, 0x02, 0x60, 0x80, 0x18, +0x85, 0x65, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0xE7, 0xF1, 0x75, 0xA2, 0x07, 0xF3, +0x86, 0xA2, 0x01, 0x4B, 0xE7, 0xF1, 0x75, 0xC2, +0xE7, 0xF1, 0x7A, 0xAA, 0x6D, 0xE4, 0xE7, 0xF1, +0x7A, 0xCA, 0xE7, 0xF1, 0x95, 0xA2, 0xE7, 0xF1, +0x62, 0xA2, 0x8E, 0xEB, 0x0C, 0x2B, 0x07, 0xF3, +0xC6, 0xA2, 0x10, 0xF0, 0x32, 0x6C, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0xD3, 0x00, 0xF3, 0x4C, 0x9A, -0x34, 0xF2, 0x1D, 0x4C, 0x0C, 0x10, 0x07, 0xF3, -0xCA, 0xA2, 0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0xD3, 0xF2, 0x0D, 0x4C, 0x0C, 0x10, 0x07, 0xF3, +0xC6, 0xA2, 0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, -0x32, 0x6C, 0x14, 0xF2, 0x11, 0x4C, 0x64, 0x6B, +0x32, 0x6C, 0xB3, 0xF2, 0x01, 0x4C, 0x64, 0x6B, 0x78, 0xEE, 0x00, 0x6D, 0x01, 0x6F, 0x12, 0xEE, -0x40, 0xEA, 0x19, 0x10, 0xE7, 0xF1, 0x98, 0xA2, +0x40, 0xEA, 0x19, 0x10, 0xE7, 0xF1, 0x94, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xE7, 0xF1, -0x78, 0xC2, 0x02, 0x6C, 0x0C, 0x10, 0x30, 0xF0, +0x74, 0xC2, 0x02, 0x6C, 0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE7, 0xF1, -0x98, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, -0xE7, 0xF1, 0x78, 0xC2, 0x03, 0x6C, 0xE7, 0xF1, -0xB6, 0xAA, 0x80, 0x18, 0xE4, 0x66, 0x0B, 0x97, +0x94, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0xE7, 0xF1, 0x74, 0xC2, 0x03, 0x6C, 0xE7, 0xF1, +0xB2, 0xAA, 0x80, 0x18, 0x08, 0x65, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xE7, 0xF1, 0x98, 0xA2, +0x2B, 0xF1, 0x18, 0x4A, 0xE7, 0xF1, 0x94, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, 0x08, 0x23, 0x07, 0xF3, -0x66, 0xA2, 0x03, 0x23, 0x00, 0x6B, 0x07, 0xF3, -0x66, 0xC2, 0x80, 0x18, 0xA8, 0x67, 0x05, 0x97, +0x62, 0xA2, 0x03, 0x23, 0x00, 0x6B, 0x07, 0xF3, +0x62, 0xC2, 0x80, 0x18, 0xCC, 0x65, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0xE7, 0xF1, 0xB8, 0xA2, 0x01, 0x6C, +0x18, 0x4A, 0xE7, 0xF1, 0xB4, 0xA2, 0x01, 0x6C, 0xFF, 0x6B, 0x8C, 0xED, 0x40, 0xF1, 0x03, 0x25, -0x07, 0xF3, 0x10, 0x9A, 0x27, 0x20, 0xC0, 0xA0, +0x07, 0xF3, 0x0C, 0x9A, 0x27, 0x20, 0xC0, 0xA0, 0x80, 0x6D, 0xAB, 0xED, 0xCC, 0xED, 0x6C, 0xED, -0x21, 0x25, 0x07, 0xF2, 0x44, 0xA2, 0x01, 0x72, +0x21, 0x25, 0x07, 0xF2, 0x40, 0xA2, 0x01, 0x72, 0x1D, 0x61, 0x41, 0xA0, 0x4C, 0xEC, 0x6C, 0xEC, 0x04, 0x24, 0x06, 0x6C, 0x00, 0x6D, 0x80, 0x18, -0x08, 0x67, 0x40, 0xA0, 0x7F, 0x6B, 0x64, 0x6E, +0x2C, 0x65, 0x40, 0xA0, 0x7F, 0x6B, 0x64, 0x6E, 0x4C, 0xEB, 0xD8, 0xEB, 0x00, 0x6A, 0x60, 0xC0, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, -0x4C, 0x9A, 0x10, 0xF0, 0x32, 0x6C, 0x34, 0xF2, -0x1D, 0x4C, 0x00, 0x6D, 0x01, 0x6F, 0x12, 0xEE, +0x4C, 0x9A, 0x10, 0xF0, 0x32, 0x6C, 0xD3, 0xF2, +0x0D, 0x4C, 0x00, 0x6D, 0x01, 0x6F, 0x12, 0xEE, 0x40, 0xEA, 0x19, 0x11, 0x30, 0xF0, 0x20, 0x68, -0x2B, 0xF1, 0x18, 0x48, 0xE7, 0xF1, 0x84, 0xA0, +0x2B, 0xF1, 0x18, 0x48, 0xE7, 0xF1, 0x80, 0xA0, 0x03, 0x6D, 0xFF, 0x6B, 0x8E, 0x32, 0xAC, 0xEA, 0x02, 0x72, 0x7E, 0x60, 0x03, 0x72, 0xC0, 0xF0, 0x1F, 0x60, 0x01, 0x72, 0x27, 0x60, 0xE7, 0xF1, -0xB8, 0xA0, 0x02, 0x6A, 0x4B, 0xEA, 0xAC, 0xEA, -0xE7, 0xF1, 0x58, 0xC0, 0x02, 0x6A, 0x8C, 0xEA, -0x6C, 0xEA, 0x11, 0x22, 0xE7, 0xF1, 0x47, 0xA0, -0x0F, 0x6D, 0xE7, 0xF1, 0x88, 0xA0, 0x4C, 0xED, +0xB4, 0xA0, 0x02, 0x6A, 0x4B, 0xEA, 0xAC, 0xEA, +0xE7, 0xF1, 0x54, 0xC0, 0x02, 0x6A, 0x8C, 0xEA, +0x6C, 0xEA, 0x11, 0x22, 0xE7, 0xF1, 0x43, 0xA0, +0x0F, 0x6D, 0xE7, 0xF1, 0x84, 0xA0, 0x4C, 0xED, 0x52, 0x36, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x58, 0x9A, 0x6C, 0xED, 0x6C, 0xEE, 0x40, 0xEA, 0x01, 0x72, 0x01, 0x6C, 0x01, 0x61, 0x00, 0x6C, -0xE7, 0xF1, 0xB6, 0xA8, 0x80, 0x18, 0xE4, 0x66, +0xE7, 0xF1, 0xB2, 0xA8, 0x80, 0x18, 0x08, 0x65, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF4, 0x54, 0x9A, 0x40, 0xEA, 0xC0, 0x10, 0x02, 0x6A, 0x8C, 0xEA, -0x6C, 0xEA, 0x11, 0x22, 0xE7, 0xF1, 0x47, 0xA0, -0x0F, 0x6D, 0xE7, 0xF1, 0x88, 0xA0, 0x4C, 0xED, +0x6C, 0xEA, 0x11, 0x22, 0xE7, 0xF1, 0x43, 0xA0, +0x0F, 0x6D, 0xE7, 0xF1, 0x84, 0xA0, 0x4C, 0xED, 0x52, 0x36, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x58, 0x9A, 0x6C, 0xED, 0x6C, 0xEE, 0x40, 0xEA, 0x01, 0x72, 0xA0, 0xF0, 0x1C, 0x61, 0xE7, 0xF1, -0xB6, 0xA8, 0x00, 0x6C, 0x80, 0x18, 0xE4, 0x66, -0x30, 0xF0, 0x21, 0x6A, 0x32, 0xF3, 0x41, 0xA2, +0xB2, 0xA8, 0x00, 0x6C, 0x80, 0x18, 0x08, 0x65, +0x30, 0xF0, 0x21, 0x6A, 0x12, 0xF3, 0x5D, 0xA2, 0x5A, 0x33, 0x02, 0x73, 0x0D, 0x60, 0x03, 0x73, 0x0F, 0x60, 0x01, 0x73, 0x05, 0x60, 0x3F, 0x6E, 0x4C, 0xEE, 0xFF, 0x6A, 0x4C, 0xEE, 0x0E, 0x10, @@ -39125,22 +38495,22 @@ u8 array_mp_8822c_fw_nic[] = { 0x3F, 0x6B, 0x4C, 0xEB, 0xE0, 0xF3, 0x08, 0x6E, 0xD8, 0xEB, 0x12, 0xEE, 0x0A, 0x6A, 0x58, 0xEE, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0xE7, 0xF1, 0x7E, 0xAA, 0x10, 0xF0, 0x32, 0x6C, -0x14, 0xF2, 0x11, 0x4C, 0x00, 0x6D, 0x12, 0xEE, -0x7B, 0xE6, 0x01, 0x6B, 0x07, 0xF3, 0x66, 0xC2, +0xE7, 0xF1, 0x7A, 0xAA, 0x10, 0xF0, 0x32, 0x6C, +0xB3, 0xF2, 0x01, 0x4C, 0x00, 0x6D, 0x12, 0xEE, +0x7B, 0xE6, 0x01, 0x6B, 0x07, 0xF3, 0x62, 0xC2, 0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0x64, 0x6B, 0x5F, 0x10, 0x02, 0x6A, 0x8C, 0xEA, 0x6C, 0xEA, 0x10, 0x22, -0xE7, 0xF1, 0x47, 0xA0, 0x0F, 0x6D, 0xE7, 0xF1, -0x88, 0xA0, 0x4C, 0xED, 0x52, 0x36, 0x30, 0xF0, +0xE7, 0xF1, 0x43, 0xA0, 0x0F, 0x6D, 0xE7, 0xF1, +0x84, 0xA0, 0x4C, 0xED, 0x52, 0x36, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x58, 0x9A, 0x6C, 0xED, 0x6C, 0xEE, 0x40, 0xEA, 0x01, 0x72, 0x6B, 0x61, -0xE7, 0xF1, 0xB6, 0xA8, 0x00, 0x6C, 0x80, 0x18, -0xE4, 0x66, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0xE7, 0xF1, 0x8B, 0xA2, 0xE7, 0xF1, -0x7A, 0xA2, 0xFF, 0x4C, 0x6E, 0xEC, 0x03, 0x2C, -0xE7, 0xF1, 0x4A, 0xA2, 0x05, 0x10, 0x01, 0x4B, -0xE7, 0xF1, 0x7A, 0xC2, 0xE7, 0xF1, 0x49, 0xA2, +0xE7, 0xF1, 0xB2, 0xA8, 0x00, 0x6C, 0x80, 0x18, +0x08, 0x65, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0xE7, 0xF1, 0x87, 0xA2, 0xE7, 0xF1, +0x76, 0xA2, 0xFF, 0x4C, 0x6E, 0xEC, 0x03, 0x2C, +0xE7, 0xF1, 0x46, 0xA2, 0x05, 0x10, 0x01, 0x4B, +0xE7, 0xF1, 0x76, 0xC2, 0xE7, 0xF1, 0x45, 0xA2, 0x5A, 0x33, 0x02, 0x73, 0x0D, 0x60, 0x03, 0x73, 0x0F, 0x60, 0x01, 0x73, 0x05, 0x60, 0x3F, 0x6B, 0x4C, 0xEB, 0xFF, 0x6A, 0x4C, 0xEB, 0x0E, 0x10, @@ -39148,24 +38518,24 @@ u8 array_mp_8822c_fw_nic[] = { 0x3F, 0x6B, 0x4C, 0xEB, 0x64, 0x6A, 0x04, 0x10, 0x3F, 0x6B, 0x4C, 0xEB, 0xE0, 0xF3, 0x08, 0x6A, 0x58, 0xEB, 0x12, 0xEB, 0x0A, 0x6A, 0x58, 0xEB, -0x30, 0xF0, 0x21, 0x6A, 0x32, 0xF3, 0x56, 0xAA, +0x30, 0xF0, 0x21, 0x6A, 0x32, 0xF3, 0x52, 0xAA, 0x01, 0x6C, 0x00, 0x6D, 0x64, 0x6E, 0x12, 0xEB, 0x4F, 0xE3, 0x30, 0xF0, 0x21, 0x6A, 0x32, 0xF4, -0x9E, 0xC2, 0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x9A, 0xC2, 0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, -0x32, 0x6C, 0x14, 0xF2, 0x11, 0x4C, 0xD8, 0xEB, +0x32, 0x6C, 0xB3, 0xF2, 0x01, 0x4C, 0xD8, 0xEB, 0x01, 0x6F, 0x12, 0xEE, 0x40, 0xEA, 0x0A, 0x10, -0xE7, 0xF1, 0xB6, 0xA8, 0x00, 0x6C, 0x80, 0x18, -0xE4, 0x66, 0x01, 0x6A, 0x07, 0xF3, 0x46, 0xC0, -0x80, 0x18, 0x84, 0x68, 0x30, 0xF0, 0x20, 0x6A, +0xE7, 0xF1, 0xB2, 0xA8, 0x00, 0x6C, 0x80, 0x18, +0x08, 0x65, 0x01, 0x6A, 0x07, 0xF3, 0x42, 0xC0, +0x80, 0x18, 0xA8, 0x66, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x00, 0x6B, 0xE7, 0xF1, -0x79, 0xC2, 0x00, 0x6B, 0xE7, 0xF1, 0x7E, 0xCA, -0xE7, 0xF1, 0x7C, 0xCA, 0x07, 0xF2, 0x65, 0xC2, -0x07, 0xF2, 0x64, 0xC2, 0x10, 0x10, 0x30, 0xF0, +0x75, 0xC2, 0x00, 0x6B, 0xE7, 0xF1, 0x7A, 0xCA, +0xE7, 0xF1, 0x78, 0xCA, 0x07, 0xF2, 0x61, 0xC2, +0x07, 0xF2, 0x60, 0xC2, 0x10, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE7, 0xF1, -0x98, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0xE7, 0xF1, -0xB6, 0xAA, 0x8C, 0xEB, 0xE7, 0xF1, 0x78, 0xC2, -0x01, 0x6C, 0x80, 0x18, 0xE4, 0x66, 0x07, 0x97, +0x94, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0xE7, 0xF1, +0xB2, 0xAA, 0x8C, 0xEB, 0xE7, 0xF1, 0x74, 0xC2, +0x01, 0x6C, 0x80, 0x18, 0x08, 0x65, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x69, 0x04, 0x67, @@ -39175,9 +38545,9 @@ u8 array_mp_8822c_fw_nic[] = { 0x18, 0x4A, 0x0F, 0x58, 0x43, 0xF2, 0x18, 0xC2, 0x43, 0xF2, 0x30, 0xDA, 0x01, 0x6B, 0x01, 0x60, 0x00, 0x6B, 0x43, 0xF2, 0x74, 0xDA, 0x90, 0x67, -0x00, 0x18, 0x3E, 0xDA, 0x04, 0x96, 0x30, 0xF0, +0x00, 0x18, 0x9D, 0xD9, 0x04, 0x96, 0x30, 0xF0, 0x21, 0x6C, 0xB0, 0x67, 0xF1, 0x67, 0x12, 0xF5, -0x08, 0x4C, 0x80, 0x18, 0x23, 0x5F, 0x09, 0x97, +0x08, 0x4C, 0x80, 0x18, 0xA8, 0x5D, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6B, 0xCC, 0xEB, 0x17, 0x24, 0xE3, 0x5B, 0x15, 0x60, 0x01, 0x6A, @@ -39197,7 +38567,7 @@ u8 array_mp_8822c_fw_nic[] = { 0x01, 0x6A, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x40, 0xA4, 0x86, 0xF1, 0x04, 0x48, 0x40, 0xF0, +0x40, 0xA4, 0x86, 0xF1, 0x08, 0x48, 0x40, 0xF0, 0x7F, 0xA0, 0x46, 0x32, 0x24, 0x67, 0x6E, 0xEA, 0x05, 0x22, 0x55, 0x98, 0x01, 0x4A, 0x55, 0xD8, 0x03, 0x6A, 0x1A, 0x10, 0x40, 0xF0, 0x9C, 0xA8, @@ -39227,110 +38597,110 @@ u8 array_mp_8822c_fw_nic[] = { 0x20, 0xF4, 0x40, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x3F, 0x97, 0x20, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x24, 0x67, 0x80, 0x18, 0x73, 0x69, 0x02, 0x67, -0x03, 0x2A, 0x91, 0x67, 0x80, 0x18, 0x8D, 0x69, +0x24, 0x67, 0x80, 0x18, 0x97, 0x67, 0x02, 0x67, +0x03, 0x2A, 0x91, 0x67, 0x80, 0x18, 0xB1, 0x67, 0x50, 0x67, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xC2, 0x63, 0x7B, 0x62, 0x7A, 0xD1, 0x79, 0xD0, 0x80, 0x91, 0xFF, 0x6B, 0x06, 0x5C, 0x44, 0x67, 0x05, 0x67, 0x6C, 0xEE, 0x6C, 0xE9, 0x08, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x86, 0xF1, 0x04, 0x4A, 0x72, 0x9A, 0x01, 0x4B, +0x86, 0xF1, 0x08, 0x4A, 0x72, 0x9A, 0x01, 0x4B, 0x72, 0xDA, 0x2E, 0x10, 0x06, 0x2D, 0x30, 0xF0, -0x20, 0x6B, 0xE6, 0xF1, 0x64, 0xA3, 0x10, 0x2B, +0x20, 0x6B, 0xE6, 0xF1, 0x68, 0xA3, 0x10, 0x2B, 0x27, 0x10, 0x03, 0x6C, 0x98, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x86, 0xF1, 0x04, 0x4B, 0x12, 0xEC, +0x20, 0x6B, 0x86, 0xF1, 0x08, 0x4B, 0x12, 0xEC, 0x6D, 0xE4, 0x98, 0xA3, 0x1D, 0x24, 0x06, 0x75, 0x03, 0x60, 0x79, 0xA3, 0xA3, 0xEB, 0x18, 0x61, 0xFF, 0x6D, 0x06, 0x04, 0x4C, 0xED, 0x10, 0x30, -0x04, 0xD1, 0x80, 0x18, 0x62, 0x69, 0x5D, 0x67, +0x04, 0xD1, 0x80, 0x18, 0x86, 0x67, 0x5D, 0x67, 0x19, 0xC2, 0xC6, 0x41, 0x3E, 0x00, 0xFF, 0x6A, 0x90, 0x67, 0x06, 0x05, 0x4C, 0xEE, 0x80, 0x18, -0x52, 0x69, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x76, 0x67, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, 0x90, 0x67, 0x40, 0xEA, 0x7B, 0x97, 0x7A, 0x91, 0x79, 0x90, 0x3E, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD0, 0xE4, 0x67, 0x41, 0xA7, 0x85, 0x67, 0x06, 0x5A, 0x17, 0x60, 0x30, 0xF0, 0x20, 0x6B, -0x48, 0x32, 0x86, 0xF1, 0x04, 0x4B, 0x69, 0xE2, +0x48, 0x32, 0x86, 0xF1, 0x08, 0x4B, 0x69, 0xE2, 0x40, 0x9A, 0x0F, 0x22, 0x4F, 0x9B, 0x01, 0x4A, 0x4F, 0xDB, 0x41, 0xA7, 0xA2, 0xAF, 0xC3, 0xA7, 0x48, 0x32, 0x69, 0xE2, 0x62, 0xA7, 0x04, 0xD5, 0x40, 0x9A, 0xA3, 0x67, 0x06, 0x4F, 0x40, 0xEA, 0x18, 0x10, 0x06, 0x00, 0x30, 0xF0, 0x20, 0x6D, -0x90, 0x67, 0x66, 0xF1, 0x0C, 0x4D, 0x13, 0x6E, -0x00, 0x18, 0xEC, 0xD7, 0x01, 0x6C, 0x13, 0x6A, +0x90, 0x67, 0x66, 0xF1, 0x10, 0x4D, 0x13, 0x6E, +0x00, 0x18, 0x42, 0xD7, 0x01, 0x6C, 0x13, 0x6A, 0x03, 0x6D, 0xC4, 0x67, 0xF0, 0x67, 0x04, 0xD2, -0x80, 0x18, 0xB9, 0x69, 0x30, 0xF0, 0x20, 0x6A, -0x86, 0xF1, 0x04, 0x4A, 0x72, 0x9A, 0x01, 0x4B, +0x80, 0x18, 0xDD, 0x67, 0x30, 0xF0, 0x20, 0x6A, +0x86, 0xF1, 0x08, 0x4A, 0x72, 0x9A, 0x01, 0x4B, 0x72, 0xDA, 0x0D, 0x97, 0x0C, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xDE, 0x63, 0x43, 0x62, 0x42, 0xD1, 0x41, 0xD0, 0xFF, 0x69, 0x04, 0x67, 0xE5, 0x67, 0xCC, 0xE9, 0x31, 0x24, 0x30, 0x25, 0xDB, 0x59, 0x08, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x86, 0xF1, 0x04, 0x4A, 0x71, 0x9A, 0x01, 0x4B, +0x86, 0xF1, 0x08, 0x4A, 0x71, 0x9A, 0x01, 0x4B, 0x71, 0xDA, 0x26, 0x10, 0xA2, 0xA4, 0xC3, 0xA4, 0x00, 0xF0, 0x1E, 0x04, 0x04, 0xD1, 0x80, 0x18, -0x62, 0x69, 0x1E, 0x22, 0xBD, 0x67, 0x81, 0xA0, +0x86, 0x67, 0x1E, 0x22, 0xBD, 0x67, 0x81, 0xA0, 0x5E, 0xA5, 0x01, 0x6B, 0x84, 0x34, 0x6C, 0xEA, 0x8D, 0xEA, 0x5E, 0xC5, 0xC6, 0x41, 0xFF, 0x6A, 0x06, 0x01, 0x7F, 0xC5, 0x91, 0x67, 0x00, 0xF0, -0x1E, 0x05, 0x4C, 0xEE, 0x80, 0x18, 0x52, 0x69, +0x1E, 0x05, 0x4C, 0xEE, 0x80, 0x18, 0x76, 0x67, 0x0B, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, 0x91, 0x67, 0x40, 0xEA, 0x90, 0x67, -0x00, 0x18, 0x19, 0xC3, 0x01, 0x6A, 0x01, 0x10, +0x00, 0x18, 0x0C, 0xC2, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x43, 0x97, 0x42, 0x91, 0x41, 0x90, 0x22, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, 0x10, 0x2A, 0x7D, 0x67, 0x01, 0x68, 0xBD, 0x67, 0x10, 0xC3, 0x51, 0xC3, 0x02, 0x6B, 0x72, 0xC5, 0x53, 0xC5, -0x04, 0x6E, 0x04, 0x05, 0x80, 0x18, 0xFB, 0x69, -0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF1, 0x04, 0xC2, +0x04, 0x6E, 0x04, 0x05, 0x80, 0x18, 0x1F, 0x68, +0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF1, 0x08, 0xC2, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x68, 0x86, 0xF1, 0x04, 0x48, +0x30, 0xF0, 0x20, 0x68, 0x86, 0xF1, 0x08, 0x48, 0x4C, 0x98, 0x24, 0x67, 0x01, 0x4A, 0x4C, 0xD8, -0x80, 0x18, 0xB0, 0x69, 0x38, 0x2A, 0x60, 0xA1, +0x80, 0x18, 0xD4, 0x67, 0x38, 0x2A, 0x60, 0xA1, 0x01, 0x6A, 0x4C, 0xEB, 0x04, 0x23, 0x4D, 0x98, 0x01, 0x4A, 0x4D, 0xD8, 0x42, 0x10, 0x30, 0xF0, 0x21, 0x68, 0x1B, 0xF1, 0x08, 0x48, 0x60, 0xA0, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x03, 0x22, -0x90, 0x67, 0x80, 0x18, 0x9C, 0x69, 0x00, 0x18, -0x1B, 0xC3, 0x22, 0x67, 0x18, 0x22, 0x40, 0xA0, +0x90, 0x67, 0x80, 0x18, 0xC0, 0x67, 0x00, 0x18, +0x0E, 0xC2, 0x22, 0x67, 0x18, 0x22, 0x40, 0xA0, 0x90, 0x67, 0xB1, 0x67, 0x46, 0x32, 0x41, 0xC1, 0x41, 0xA0, 0x42, 0xC1, 0x42, 0xA0, 0x43, 0xC1, -0x43, 0xA0, 0x44, 0xC1, 0x80, 0x18, 0xDD, 0x69, -0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF1, 0x04, 0x4A, +0x43, 0xA0, 0x44, 0xC1, 0x80, 0x18, 0x01, 0x68, +0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF1, 0x08, 0x4A, 0x6E, 0x9A, 0x91, 0x67, 0x01, 0x4B, 0x6E, 0xDA, -0x00, 0x18, 0x19, 0xC3, 0x0B, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x86, 0xF1, 0x04, 0x4A, 0x74, 0x9A, +0x00, 0x18, 0x0C, 0xC2, 0x0B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x86, 0xF1, 0x08, 0x4A, 0x74, 0x9A, 0x01, 0x4B, 0x74, 0xDA, 0x03, 0x10, 0x53, 0x98, 0x01, 0x4A, 0x53, 0xD8, 0x30, 0xF0, 0x20, 0x6A, -0x86, 0xF1, 0x04, 0x4A, 0x40, 0xF0, 0x7E, 0xA2, +0x86, 0xF1, 0x08, 0x4A, 0x40, 0xF0, 0x7E, 0xA2, 0x01, 0x4B, 0x40, 0xF0, 0x7E, 0xC2, 0x00, 0x6B, 0x40, 0xF0, 0x7F, 0xC2, 0x00, 0x6B, 0x40, 0xF0, 0x7C, 0xCA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xE4, 0xA4, 0x03, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x58, 0xEF, 0x86, 0xF1, -0x04, 0x4B, 0xC6, 0xA4, 0xA7, 0xA4, 0x12, 0xEA, +0x08, 0x4B, 0xC6, 0xA4, 0xA7, 0xA4, 0x12, 0xEA, 0x69, 0xE2, 0x65, 0xA4, 0xD9, 0xC2, 0xBA, 0xC2, 0x78, 0xC2, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0xFF, 0x6B, 0x44, 0x67, 0x6C, 0xEA, 0xE5, 0x67, 0xCC, 0xEB, 0x01, 0x6C, 0x03, 0x6D, 0xC2, 0x67, 0x04, 0xD3, 0x80, 0x18, -0xB9, 0x69, 0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, +0xDD, 0x67, 0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x01, 0x6A, 0x04, 0xD2, 0x41, 0xA4, 0x05, 0x67, 0x09, 0x2A, 0x43, 0xA4, 0x62, 0xA4, 0x40, 0x32, 0x6D, 0xEA, -0x03, 0x5A, 0x03, 0x61, 0x80, 0x18, 0x57, 0x6A, +0x03, 0x5A, 0x03, 0x61, 0x80, 0x18, 0x7B, 0x68, 0x04, 0xD2, 0x90, 0x67, 0x04, 0x05, 0x04, 0x6E, -0x80, 0x18, 0xFB, 0x69, 0x07, 0x97, 0x06, 0x90, +0x80, 0x18, 0x1F, 0x68, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x40, 0xA4, 0x02, 0x2A, 0x80, 0x18, 0x68, 0x6A, +0x40, 0xA4, 0x02, 0x2A, 0x80, 0x18, 0x8C, 0x68, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x00, 0x6C, 0x30, 0xF0, 0x20, 0x6A, 0x25, 0x67, 0xC9, 0xF2, 0x0C, 0x48, -0x86, 0xF1, 0x04, 0x4A, 0x64, 0x67, 0xA0, 0x9A, +0x86, 0xF1, 0x08, 0x4A, 0x64, 0x67, 0xA0, 0x9A, 0x03, 0x25, 0x01, 0x6D, 0xA4, 0xEB, 0xAD, 0xEC, 0x01, 0x4B, 0x06, 0x73, 0x04, 0x4A, 0xF7, 0x61, 0x02, 0x6A, 0x40, 0xC0, 0x58, 0x67, 0x41, 0xC0, @@ -39338,23 +38708,23 @@ u8 array_mp_8822c_fw_nic[] = { 0x80, 0xF2, 0x4C, 0x9A, 0x04, 0xD4, 0x04, 0x05, 0x84, 0x40, 0x04, 0x6E, 0x40, 0xEA, 0xC2, 0xA0, 0xFF, 0x6A, 0x91, 0x67, 0x04, 0x4E, 0xB0, 0x67, -0x4C, 0xEE, 0x80, 0x18, 0xFB, 0x69, 0x09, 0x97, +0x4C, 0xEE, 0x80, 0x18, 0x1F, 0x68, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x41, 0xA4, 0x02, 0x2A, -0x80, 0x18, 0x7A, 0x6A, 0x05, 0x97, 0x03, 0x63, +0x80, 0x18, 0x9E, 0x68, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xA9, 0xF3, 0x10, 0x48, 0x00, 0x6A, 0x41, 0xC0, 0x01, 0x6A, 0x40, 0xC0, 0x30, 0x6A, 0x41, 0xC8, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6D, 0x24, 0x67, 0xA6, 0xF1, -0x10, 0x4D, 0x84, 0x40, 0x30, 0x6E, 0x40, 0xEA, +0x14, 0x4D, 0x84, 0x40, 0x30, 0x6E, 0x40, 0xEA, 0xC2, 0xA0, 0xFF, 0x6A, 0x91, 0x67, 0x04, 0x4E, -0xB0, 0x67, 0x4C, 0xEE, 0x80, 0x18, 0xFB, 0x69, +0xB0, 0x67, 0x4C, 0xEE, 0x80, 0x18, 0x1F, 0x68, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x41, 0xA4, 0x03, 0x2A, 0x85, 0x67, 0x80, 0x18, -0x99, 0x6A, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xBD, 0x68, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x43, 0xA4, 0x62, 0xA4, 0x25, 0x67, 0x40, 0x32, 0x6D, 0xEA, 0x30, 0x22, 0x44, 0xA4, 0x06, 0x5A, @@ -39362,33 +38732,33 @@ u8 array_mp_8822c_fw_nic[] = { 0x20, 0x68, 0x89, 0xF4, 0x14, 0x48, 0x00, 0x6B, 0x61, 0xC0, 0x60, 0xC0, 0x44, 0xC0, 0x04, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x61, 0xC8, 0x80, 0xF2, -0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0x86, 0xF1, -0x1C, 0x4B, 0x85, 0x40, 0x03, 0x6E, 0x12, 0xED, +0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF1, +0x00, 0x4B, 0x85, 0x40, 0x03, 0x6E, 0x12, 0xED, 0xB5, 0xE3, 0x40, 0xEA, 0xC2, 0xA0, 0xFF, 0x6A, 0x91, 0x67, 0x04, 0x4E, 0xB0, 0x67, 0x4C, 0xEE, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6D, 0x89, 0xF4, 0x14, 0x4D, 0x00, 0x6A, 0x41, 0xC5, 0x40, 0xC5, 0x00, 0x6A, 0x41, 0xCD, 0x91, 0x67, 0x04, 0x6E, -0x80, 0x18, 0xFB, 0x69, 0x07, 0x97, 0x06, 0x91, +0x80, 0x18, 0x1F, 0x68, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x41, 0xA4, 0x07, 0x2A, 0x43, 0xA4, 0x62, 0xA4, 0x40, 0x32, 0x6D, 0xEA, -0x02, 0x22, 0x80, 0x18, 0xB2, 0x6A, 0x05, 0x97, +0x02, 0x22, 0x80, 0x18, 0xD6, 0x68, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x40, 0xA4, 0x01, 0x72, 0x07, 0x60, 0x03, 0x22, 0x02, 0x72, 0x07, 0x60, 0x08, 0x10, 0x80, 0x18, -0xD2, 0x6A, 0x05, 0x10, 0x80, 0x18, 0xAD, 0x6A, -0x02, 0x10, 0x80, 0x18, 0x94, 0x6A, 0x05, 0x97, +0xF6, 0x68, 0x05, 0x10, 0x80, 0x18, 0xD1, 0x68, +0x02, 0x10, 0x80, 0x18, 0xB8, 0x68, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6B, 0xAC, 0xEB, 0x44, 0x67, 0x87, 0x67, 0x03, 0x23, 0x01, 0x73, 0x05, 0x60, 0x07, 0x10, -0xA2, 0x67, 0x80, 0x18, 0xD9, 0x6A, 0x03, 0x10, -0xA2, 0x67, 0x80, 0x18, 0x75, 0x6A, 0x05, 0x97, +0xA2, 0x67, 0x80, 0x18, 0xFD, 0x68, 0x03, 0x10, +0xA2, 0x67, 0x80, 0x18, 0x99, 0x68, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF1, 0x70, 0x9A, 0x01, 0x6D, 0xFF, 0x6C, +0x83, 0xF1, 0x74, 0x9A, 0x01, 0x6D, 0xFF, 0x6C, 0x40, 0xA3, 0xAC, 0xEA, 0x05, 0x22, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x70, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x74, 0x9A, 0xFF, 0x6C, 0x02, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, @@ -39396,11 +38766,11 @@ u8 array_mp_8822c_fw_nic[] = { 0x26, 0x67, 0x4C, 0xED, 0x09, 0x61, 0x41, 0xA6, 0x0C, 0x72, 0x06, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF5, 0x5C, 0xA2, 0x00, 0x6B, 0x44, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF1, 0x70, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF1, 0x74, 0x9A, 0xFF, 0x6C, 0x08, 0x6E, 0x40, 0xA3, 0xCB, 0xEE, 0x8C, 0xEA, 0xCC, 0xEA, 0x05, 0x6E, 0xCD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0x24, 0xF1, 0x54, 0x9A, 0x60, 0xA2, 0x0F, 0x6A, +0x24, 0xF1, 0x58, 0x9A, 0x60, 0xA2, 0x0F, 0x6A, 0x6C, 0xEA, 0x04, 0x72, 0x1C, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF5, 0x48, 0x9A, 0x90, 0x67, 0xD1, 0x67, 0x40, 0xEA, 0x01, 0x72, 0x01, 0x6B, @@ -39435,24 +38805,24 @@ u8 array_mp_8822c_fw_nic[] = { 0x63, 0xF3, 0x56, 0xA3, 0x05, 0x2A, 0x63, 0xF3, 0x77, 0xA3, 0x03, 0x23, 0x01, 0x6A, 0x20, 0xE8, 0x01, 0x6A, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, -0x30, 0xF0, 0x21, 0x6A, 0xD2, 0xF4, 0x40, 0xA2, -0x0E, 0x72, 0x29, 0x61, 0x80, 0x18, 0x47, 0x6B, +0x30, 0xF0, 0x21, 0x6A, 0xB2, 0xF4, 0x5C, 0xA2, +0x0E, 0x72, 0x29, 0x61, 0x80, 0x18, 0x6B, 0x69, 0x26, 0x22, 0x30, 0xF0, 0x21, 0x6C, 0x12, 0xF5, -0x08, 0x4C, 0x04, 0x05, 0x80, 0x18, 0x3F, 0x58, -0x5D, 0x67, 0x92, 0xA2, 0x80, 0x18, 0x44, 0x6B, +0x08, 0x4C, 0x04, 0x05, 0x80, 0x18, 0xC4, 0x56, +0x5D, 0x67, 0x92, 0xA2, 0x80, 0x18, 0x68, 0x69, 0x0A, 0x22, 0x5D, 0x67, 0x90, 0xA2, 0x80, 0x18, -0x44, 0x6B, 0x05, 0x22, 0x5D, 0x67, 0x91, 0xA2, -0x80, 0x18, 0x44, 0x6B, 0x10, 0x2A, 0x30, 0xF0, +0x68, 0x69, 0x05, 0x22, 0x5D, 0x67, 0x91, 0xA2, +0x80, 0x18, 0x68, 0x69, 0x10, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x44, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF1, -0x70, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, +0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, 0x54, 0x9A, 0x60, 0xDA, 0xF0, 0x17, 0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD0, 0x30, 0xF0, 0x21, 0x6A, 0xB2, 0xF4, -0x5D, 0xA2, 0x01, 0x72, 0x4A, 0x61, 0x80, 0x18, -0x47, 0x6B, 0x47, 0x22, 0x30, 0xF0, 0x21, 0x68, +0x59, 0xA2, 0x01, 0x72, 0x4A, 0x61, 0x80, 0x18, +0x6B, 0x69, 0x47, 0x22, 0x30, 0xF0, 0x21, 0x68, 0x12, 0xF5, 0x08, 0x48, 0x90, 0x67, 0x05, 0x05, -0x80, 0x18, 0x3F, 0x58, 0x7D, 0x67, 0x56, 0xA3, +0x80, 0x18, 0xC4, 0x56, 0x7D, 0x67, 0x56, 0xA3, 0x01, 0x72, 0x0E, 0x60, 0x03, 0x72, 0x0C, 0x60, 0x54, 0xA3, 0x01, 0x72, 0x09, 0x60, 0x03, 0x72, 0x07, 0x60, 0x55, 0xA3, 0x01, 0x72, 0x04, 0x60, @@ -39461,7 +38831,7 @@ u8 array_mp_8822c_fw_nic[] = { 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, 0x54, 0x9A, 0x60, 0xDA, 0xF0, 0x17, -0x90, 0x67, 0x04, 0x05, 0x80, 0x18, 0x2D, 0x58, +0x90, 0x67, 0x04, 0x05, 0x80, 0x18, 0xB2, 0x56, 0x7D, 0x67, 0x51, 0xA3, 0x01, 0x72, 0x05, 0x60, 0x03, 0x72, 0x03, 0x60, 0x50, 0xA3, 0x01, 0x72, 0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, @@ -39476,26 +38846,26 @@ u8 array_mp_8822c_fw_nic[] = { 0x40, 0xEA, 0x00, 0x6B, 0x05, 0x97, 0x43, 0x67, 0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, -0xC4, 0x67, 0xC3, 0xF3, 0x98, 0xA3, 0x0F, 0x6D, +0xC4, 0x67, 0xC3, 0xF3, 0x94, 0xA3, 0x0F, 0x6D, 0xFF, 0x6A, 0x86, 0x34, 0xAC, 0xEC, 0x4C, 0xEC, 0x0C, 0x6D, 0xB8, 0xEC, 0x4C, 0xEE, 0x12, 0xED, -0x6D, 0xE5, 0xE3, 0xF3, 0xA3, 0xA3, 0x07, 0x6B, +0x6D, 0xE5, 0xC3, 0xF3, 0xBF, 0xA3, 0x07, 0x6B, 0xAC, 0xEB, 0x4C, 0xEB, 0x01, 0x73, 0x2E, 0x60, 0x05, 0x23, 0x02, 0x73, 0x03, 0x60, 0x03, 0x73, 0x29, 0x60, 0x3E, 0x10, 0x0C, 0x6B, 0x78, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x01, 0x6D, 0x12, 0xEC, 0x51, 0xE4, 0xE3, 0xF3, -0x63, 0xA4, 0x76, 0x33, 0xAC, 0xEB, 0x14, 0x2B, -0xE3, 0xF3, 0xA7, 0xA4, 0x0F, 0x6A, 0x4B, 0xEA, -0xAC, 0xEA, 0xE3, 0xF3, 0x47, 0xC4, 0x30, 0xF0, +0x01, 0x6D, 0x12, 0xEC, 0x51, 0xE4, 0xC3, 0xF3, +0x7F, 0xA4, 0x76, 0x33, 0xAC, 0xEB, 0x14, 0x2B, +0xE3, 0xF3, 0xA3, 0xA4, 0x0F, 0x6A, 0x4B, 0xEA, +0xAC, 0xEA, 0xE3, 0xF3, 0x43, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, 0x98, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0x04, 0xD3, 0x00, 0x6D, 0x01, 0x6F, 0x40, 0xEA, 0x1C, 0x10, -0x02, 0x6B, 0xC3, 0xF3, 0x7C, 0xC2, 0xE3, 0xF3, -0x84, 0xA4, 0x0D, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0x6B, 0xC3, 0xF3, 0x78, 0xC2, 0xE3, 0xF3, +0x80, 0xA4, 0x0D, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x02, 0x6B, 0xC3, 0xF3, -0x7C, 0xC2, 0x0C, 0x6B, 0x78, 0xEC, 0x12, 0xEC, -0x49, 0xE4, 0xE3, 0xF3, 0x84, 0xA2, 0x30, 0xF0, +0x78, 0xC2, 0x0C, 0x6B, 0x78, 0xEC, 0x12, 0xEC, +0x49, 0xE4, 0xE3, 0xF3, 0x80, 0xA2, 0x30, 0xF0, 0x20, 0x6A, 0x92, 0x34, 0x80, 0xF5, 0x4C, 0x9A, 0x91, 0xE6, 0xFF, 0x6B, 0x6C, 0xEC, 0x40, 0xEA, 0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, @@ -39506,1325 +38876,1351 @@ u8 array_mp_8822c_fw_nic[] = { 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, -0xC3, 0xF3, 0x38, 0xA0, 0xC3, 0xF3, 0xBC, 0xA0, +0xC3, 0xF3, 0x34, 0xA0, 0xC3, 0xF3, 0xB8, 0xA0, 0x0F, 0x6B, 0x26, 0x31, 0xFF, 0x6A, 0x6C, 0xE9, 0x01, 0x75, 0x4C, 0xEC, 0x4C, 0xE9, 0x38, 0x61, 0x0C, 0x6D, 0xB8, 0xE9, 0x12, 0xED, 0x15, 0xE5, -0xE3, 0xF3, 0xC4, 0xA5, 0xCC, 0xEB, 0x8E, 0xEB, -0x2F, 0x2B, 0xE3, 0xF3, 0xC7, 0xA5, 0x01, 0x6B, +0xE3, 0xF3, 0xC0, 0xA5, 0xCC, 0xEB, 0x8E, 0xEB, +0x2F, 0x2B, 0xE3, 0xF3, 0xC3, 0xA5, 0x01, 0x6B, 0xCC, 0xEB, 0x4C, 0xEB, 0x29, 0x23, 0xFF, 0xF6, -0x1F, 0x4A, 0xCC, 0xEA, 0xE3, 0xF3, 0x47, 0xC5, +0x1F, 0x4A, 0xCC, 0xEA, 0xE3, 0xF3, 0x43, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x44, 0x9A, 0x01, 0x6D, 0x40, 0xEA, 0x14, 0x22, 0x34, 0x6A, 0x58, 0xE9, 0x02, 0x6C, 0xB1, 0x67, 0x12, 0xEA, -0x09, 0xE2, 0x23, 0xF5, 0x74, 0x9A, 0x01, 0x4B, -0x23, 0xF5, 0x74, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0x09, 0xE2, 0x23, 0xF5, 0x70, 0x9A, 0x01, 0x4B, +0x23, 0xF5, 0x70, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, 0x40, 0x9A, 0x40, 0xEA, 0x02, 0x6A, -0xC3, 0xF3, 0x5C, 0xC0, 0x09, 0x10, 0x34, 0x6A, +0xC3, 0xF3, 0x58, 0xC0, 0x09, 0x10, 0x34, 0x6A, 0x58, 0xE9, 0x12, 0xE9, 0x01, 0xE1, 0x23, 0xF5, -0x58, 0x98, 0x01, 0x4A, 0x23, 0xF5, 0x58, 0xD8, +0x54, 0x98, 0x01, 0x4A, 0x23, 0xF5, 0x54, 0xD8, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x2B, 0xF1, 0x18, 0x48, 0xC3, 0xF3, 0x78, 0xA0, +0x2B, 0xF1, 0x18, 0x48, 0xC3, 0xF3, 0x74, 0xA0, 0x01, 0x6A, 0xFF, 0x69, 0x6C, 0xEA, 0x24, 0x22, -0xC3, 0xF3, 0x59, 0xA0, 0x20, 0x4A, 0xC3, 0xF3, -0x59, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF5, -0x48, 0x9A, 0x40, 0xEA, 0xC3, 0xF3, 0x58, 0xA0, -0x0F, 0x6B, 0xC3, 0xF3, 0x99, 0xA0, 0x46, 0x32, +0xC3, 0xF3, 0x55, 0xA0, 0x20, 0x4A, 0xC3, 0xF3, +0x55, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF5, +0x48, 0x9A, 0x40, 0xEA, 0xC3, 0xF3, 0x54, 0xA0, +0x0F, 0x6B, 0xC3, 0xF3, 0x95, 0xA0, 0x46, 0x32, 0x6C, 0xEA, 0xA0, 0xF0, 0x76, 0xA0, 0x96, 0x34, 0x2C, 0xEA, 0x82, 0xEB, 0x0D, 0x61, 0x0C, 0x6B, 0x78, 0xEA, 0x12, 0xEA, 0x01, 0xE2, 0xE3, 0xF3, -0x84, 0xA0, 0xE3, 0xF3, 0x42, 0xA0, 0x92, 0x34, -0x93, 0xE2, 0x2C, 0xEC, 0x80, 0x18, 0xA1, 0x6B, +0x80, 0xA0, 0xC3, 0xF3, 0x5E, 0xA0, 0x92, 0x34, +0x93, 0xE2, 0x2C, 0xEC, 0x80, 0x18, 0xC5, 0x69, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0xC3, 0xF3, 0x78, 0xA2, 0x80, 0x6C, +0x18, 0x4A, 0xC3, 0xF3, 0x74, 0xA2, 0x80, 0x6C, 0x8B, 0xEC, 0x6C, 0xEC, 0xFF, 0x6B, 0x6C, 0xEC, -0x6D, 0x24, 0xC3, 0xF3, 0xFB, 0xA2, 0x0F, 0x6D, +0x6D, 0x24, 0xC3, 0xF3, 0xF7, 0xA2, 0x0F, 0x6D, 0x10, 0x6C, 0xC7, 0x67, 0xAC, 0xEE, 0x01, 0x4E, 0x8B, 0xEC, 0xAC, 0xEE, 0xEC, 0xEC, 0xCD, 0xEC, -0xA0, 0xF0, 0xD6, 0xA2, 0xC3, 0xF3, 0x9B, 0xC2, +0xA0, 0xF0, 0xD6, 0xA2, 0xC3, 0xF3, 0x97, 0xC2, 0xAC, 0xEC, 0xC2, 0xEC, 0x5B, 0x61, 0xA0, 0xF0, 0xB9, 0xA2, 0x01, 0x6C, 0xAC, 0xEC, 0x6C, 0xEC, 0x15, 0x24, 0xFF, 0xF6, 0x1F, 0x4B, 0xAC, 0xEB, -0xA0, 0xF0, 0x79, 0xC2, 0xE3, 0xF4, 0x7C, 0xA2, -0xA0, 0xF0, 0x75, 0xC2, 0xE3, 0xF4, 0x7F, 0xA2, -0xA0, 0xF0, 0x76, 0xC2, 0xE3, 0xF4, 0x7D, 0xA2, -0xE3, 0xF3, 0x62, 0xC2, 0xE3, 0xF4, 0x7E, 0xA2, -0xE3, 0xF3, 0x6E, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xC3, 0xF3, 0x98, 0xA2, +0xA0, 0xF0, 0x79, 0xC2, 0xE3, 0xF4, 0x78, 0xA2, +0xA0, 0xF0, 0x75, 0xC2, 0xE3, 0xF4, 0x7B, 0xA2, +0xA0, 0xF0, 0x76, 0xC2, 0xE3, 0xF4, 0x79, 0xA2, +0xC3, 0xF3, 0x7E, 0xC2, 0xE3, 0xF4, 0x7A, 0xA2, +0xE3, 0xF3, 0x6A, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0xC3, 0xF3, 0x94, 0xA2, 0x1E, 0x6B, 0x8C, 0xEB, 0x02, 0x73, 0x05, 0x61, -0x63, 0xF5, 0x74, 0xA2, 0x01, 0x4B, 0x63, 0xF5, -0x74, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, +0x63, 0xF5, 0x70, 0xA2, 0x01, 0x4B, 0x63, 0xF5, +0x70, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, 0x48, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0x08, 0x6C, 0x40, 0xEA, 0xC3, 0xF3, -0x78, 0xA0, 0x1F, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, -0xC3, 0xF3, 0x58, 0xC0, 0xC3, 0xF3, 0x58, 0xA0, +0x74, 0xA0, 0x1F, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xC3, 0xF3, 0x54, 0xC0, 0xC3, 0xF3, 0x54, 0xA0, 0x0F, 0x6B, 0x46, 0x32, 0x6C, 0xEA, 0x0C, 0x6B, 0x78, 0xEA, 0x12, 0xEA, 0x09, 0xE2, 0xE3, 0xF3, -0x84, 0xA2, 0xA0, 0xF0, 0x55, 0xA0, 0x92, 0x34, +0x80, 0xA2, 0xA0, 0xF0, 0x55, 0xA0, 0x92, 0x34, 0x93, 0xE2, 0xFF, 0x6A, 0x4C, 0xEC, 0x80, 0x18, -0xA1, 0x6B, 0xC3, 0xF3, 0x7B, 0xA0, 0x10, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0xC3, 0xF3, 0x79, 0xA0, -0xC3, 0xF3, 0x5B, 0xC0, 0x1F, 0x6A, 0x6C, 0xEA, -0xC3, 0xF3, 0x59, 0xC0, 0x05, 0x97, 0x04, 0x90, +0xC5, 0x69, 0xC3, 0xF3, 0x77, 0xA0, 0x10, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xC3, 0xF3, 0x75, 0xA0, +0xC3, 0xF3, 0x57, 0xC0, 0x1F, 0x6A, 0x6C, 0xEA, +0xC3, 0xF3, 0x55, 0xC0, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0xA0, 0xF0, 0x94, 0xA3, 0x01, 0x6A, 0xFF, 0x6E, -0x8C, 0xEA, 0x20, 0x22, 0xC3, 0xF3, 0xF9, 0xA3, +0x8C, 0xEA, 0x20, 0x22, 0xC3, 0xF3, 0xF5, 0xA3, 0x1F, 0x6C, 0xA7, 0x67, 0x8C, 0xED, 0x45, 0x67, 0xCC, 0xEA, 0x18, 0x22, 0x20, 0x6A, 0x1F, 0x4D, 0x4B, 0xEA, 0x8C, 0xED, 0xEC, 0xEA, 0xAD, 0xEA, -0xC3, 0xF3, 0x59, 0xC3, 0x8C, 0xEA, 0xCC, 0xEA, +0xC3, 0xF3, 0x55, 0xC3, 0x8C, 0xEA, 0xCC, 0xEA, 0x0D, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF5, 0x84, 0x9B, 0x00, 0xF3, 0x4C, 0x9A, 0x00, 0x6D, 0x14, 0x6E, 0x01, 0x6F, 0x40, 0xEA, 0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x61, 0xA4, -0x04, 0x67, 0x00, 0xF4, 0x58, 0x9A, 0x80, 0xA4, -0x0F, 0x6D, 0x6C, 0xED, 0x72, 0x36, 0x40, 0xEA, -0x7D, 0x67, 0x10, 0x6A, 0x50, 0xC3, 0x01, 0x6A, -0x4F, 0xCB, 0x40, 0xA0, 0x04, 0x04, 0x52, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, -0x40, 0xEA, 0x09, 0x97, 0x08, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x04, 0x67, 0x00, 0x18, -0x25, 0xD7, 0x05, 0xD2, 0x80, 0xA0, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xE3, 0xF3, -0x88, 0xCA, 0x81, 0xA0, 0xC3, 0xF3, 0xFD, 0xA2, -0x02, 0x6D, 0xE3, 0xF3, 0x94, 0xCA, 0x82, 0xA0, -0x01, 0x6E, 0xAB, 0xED, 0x03, 0xF4, 0x80, 0xCA, -0x83, 0xA0, 0xEC, 0xED, 0x70, 0x67, 0xCC, 0xEC, -0x8D, 0xED, 0xC3, 0xF3, 0xBD, 0xC2, 0xE3, 0xA0, -0x1F, 0x6C, 0x8B, 0xEC, 0xF2, 0x37, 0xE4, 0x37, -0xAC, 0xEC, 0xED, 0xEC, 0xC3, 0xF3, 0x9D, 0xC2, -0xCC, 0xEC, 0xA0, 0xF0, 0x11, 0x24, 0x30, 0xF0, -0x20, 0x6A, 0xAE, 0xF6, 0x10, 0x4A, 0x00, 0x6D, -0xB1, 0xE3, 0x05, 0x96, 0x84, 0xA4, 0x30, 0xF0, -0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0x91, 0xE6, -0xFF, 0xF7, 0x1F, 0x6E, 0xCC, 0xEC, 0x30, 0xF0, -0x20, 0x6E, 0xA3, 0xF2, 0xC4, 0x9E, 0x80, 0xCE, -0x30, 0xF0, 0x20, 0x6E, 0x03, 0xF2, 0xDC, 0x9E, -0x9C, 0x34, 0xDD, 0xE4, 0xE0, 0xA7, 0xE0, 0xC2, -0xE1, 0x44, 0xDD, 0xE7, 0xE0, 0xA7, 0xE1, 0xC2, -0xE2, 0x44, 0xDD, 0xE7, 0xE0, 0xA7, 0xE2, 0xC2, -0xE3, 0x44, 0xD9, 0xE7, 0x44, 0x6F, 0xF8, 0xED, -0xC0, 0xA6, 0xC3, 0xC2, 0x30, 0xF0, 0x20, 0x6E, -0x23, 0xF7, 0xC4, 0x9E, 0xD9, 0xE4, 0x12, 0xEF, -0xFD, 0xE0, 0x30, 0xF0, 0x20, 0x68, 0x23, 0xF4, -0x14, 0x98, 0x63, 0xF5, 0x1C, 0x4F, 0x11, 0xE4, -0x00, 0xA6, 0x01, 0x4E, 0x8A, 0xEE, 0x00, 0xC7, -0x01, 0x4F, 0xFA, 0x61, 0x01, 0x4D, 0x02, 0x75, -0x44, 0x4A, 0xC2, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xEE, 0xF6, 0x14, 0x4A, 0x00, 0x6D, 0x44, 0x68, -0x18, 0xED, 0x01, 0x6F, 0xC1, 0x45, 0xEC, 0xEE, -0xD9, 0xE3, 0xE4, 0xA6, 0x05, 0x96, 0xFF, 0x6C, -0xAC, 0xEC, 0xDD, 0xE7, 0xFF, 0xF7, 0x1F, 0x6E, -0xCC, 0xEF, 0x30, 0xF0, 0x20, 0x6E, 0xA3, 0xF2, -0xC4, 0x9E, 0xE0, 0xCE, 0x30, 0xF0, 0x20, 0x6E, -0x2B, 0xF1, 0x18, 0x4E, 0x12, 0xE8, 0x01, 0xE6, -0x30, 0xF0, 0x20, 0x6E, 0x03, 0xF2, 0xDC, 0x9E, -0xFC, 0x37, 0x63, 0xF5, 0x1C, 0x48, 0xD9, 0xE7, -0x04, 0xD6, 0x06, 0xD3, 0x20, 0xA0, 0x04, 0x93, -0xFF, 0x6E, 0x25, 0xE4, 0xCC, 0xE9, 0x01, 0x48, -0x20, 0xC3, 0x4A, 0xE8, 0x01, 0x4B, 0x04, 0xD3, -0xF5, 0x61, 0x30, 0xF0, 0x20, 0x69, 0x03, 0xF2, -0x1C, 0x49, 0x20, 0x99, 0x07, 0x47, 0x39, 0x48, -0x21, 0xE0, 0xBF, 0xF7, 0x3E, 0xA2, 0x06, 0x93, -0x01, 0x4D, 0x02, 0x49, 0x25, 0xE4, 0xCC, 0xE9, -0x20, 0xC0, 0x30, 0xF0, 0x20, 0x68, 0x03, 0xF2, -0x1C, 0x48, 0x00, 0x98, 0x27, 0x47, 0x3A, 0x49, -0x05, 0xE1, 0x19, 0x65, 0xBF, 0xF7, 0x3F, 0xA2, -0x18, 0x67, 0x42, 0x4F, 0x02, 0x49, 0x25, 0xE4, -0xCC, 0xE9, 0x20, 0xC0, 0x30, 0xF0, 0x20, 0x69, -0x03, 0xF2, 0x1C, 0x49, 0x20, 0x99, 0x02, 0x75, -0x21, 0xE7, 0xBF, 0xF7, 0x3C, 0xA2, 0x03, 0x49, -0x25, 0xE4, 0xCC, 0xE9, 0x20, 0xC0, 0x30, 0xF0, -0x20, 0x68, 0x44, 0xF1, 0x14, 0x98, 0x1D, 0xE7, -0xBF, 0xF7, 0x1D, 0xA2, 0x44, 0x4A, 0x03, 0x48, -0x11, 0xE4, 0xCC, 0xEC, 0x80, 0xC7, 0x97, 0x61, -0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x10, 0xF0, 0x24, 0x6D, 0x05, 0x6C, 0x36, 0xF3, -0x19, 0x4D, 0x00, 0x18, 0x27, 0xC3, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x60, 0xA4, 0x0F, 0x69, -0x51, 0x67, 0x6C, 0xEA, 0x04, 0xD2, 0x10, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, -0xF0, 0x72, 0x04, 0x67, 0x37, 0x61, 0x04, 0x92, +0x20, 0xE8, 0x00, 0x65, 0xF7, 0x63, 0x11, 0x62, +0x10, 0xD1, 0x0F, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x61, 0xA4, 0x24, 0x67, 0x00, 0xF4, 0x58, 0x9A, +0x80, 0xA4, 0x0F, 0x6D, 0x6C, 0xED, 0x72, 0x36, +0x40, 0xEA, 0x62, 0xA1, 0x01, 0x6A, 0x72, 0x30, +0x4C, 0xEB, 0x4F, 0x23, 0x30, 0xF0, 0x20, 0x6B, +0x0E, 0xF5, 0x71, 0xA3, 0x6C, 0xEA, 0xFF, 0x6B, +0x6C, 0xEA, 0x00, 0x6B, 0x0D, 0xD3, 0x38, 0x2A, +0x44, 0x10, 0x1F, 0x6D, 0xB8, 0xE8, 0x0D, 0x96, +0x0C, 0x6A, 0x12, 0xED, 0x58, 0xEE, 0x0C, 0x96, +0x12, 0xEA, 0x55, 0xE5, 0xD5, 0xE5, 0x89, 0xE2, +0xE0, 0xF6, 0x1E, 0x4D, 0x69, 0xE2, 0xA8, 0x35, +0xC9, 0xE2, 0x75, 0xE5, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF6, 0x70, 0x9B, 0xA2, 0x9D, 0x0D, 0x96, +0x63, 0xF4, 0xE0, 0xA2, 0x30, 0xF0, 0x21, 0x6C, +0x12, 0xF5, 0x08, 0x4C, 0x40, 0xEB, 0x0C, 0x92, +0x01, 0x4A, 0x0C, 0xD2, 0x0C, 0x93, 0xFF, 0x6A, +0x4C, 0xEB, 0x0C, 0xD3, 0x7C, 0x6C, 0x98, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, -0xFF, 0x4A, 0xC3, 0xF3, 0xB8, 0xA3, 0x2C, 0xEA, -0x44, 0x34, 0x1F, 0x6A, 0x4B, 0xEA, 0xAC, 0xEA, -0x8D, 0xEA, 0xC3, 0xF3, 0x58, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF5, 0x44, 0x9A, 0x04, 0x94, -0x40, 0xEA, 0x01, 0x72, 0x0D, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF5, 0x40, 0x9A, 0x00, 0x6C, -0xA4, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF5, 0x48, 0x9A, 0x02, 0x6C, 0x05, 0x10, +0x0C, 0x95, 0x12, 0xEC, 0x69, 0xE4, 0x63, 0xF4, +0x58, 0xA2, 0x43, 0xED, 0xCE, 0x61, 0x0D, 0x96, +0xFF, 0x6A, 0x01, 0x4E, 0x4C, 0xEE, 0x0D, 0xD6, +0x30, 0xF0, 0x20, 0x6A, 0x0E, 0xF5, 0x51, 0xA2, +0x0F, 0x6B, 0x46, 0x32, 0x6C, 0xEA, 0x0D, 0x93, +0x42, 0xEB, 0x03, 0x60, 0x00, 0x6D, 0x0C, 0xD5, +0xE1, 0x17, 0x62, 0xA1, 0x02, 0x6A, 0x6C, 0xEA, +0x08, 0x22, 0x00, 0x6A, 0xDD, 0x67, 0x58, 0xC6, +0x04, 0x04, 0x04, 0xD2, 0x05, 0xD2, 0x80, 0x18, +0xA5, 0x15, 0x7D, 0x67, 0x10, 0x6A, 0x5C, 0xC3, +0x01, 0x6A, 0x55, 0xCB, 0x40, 0xA1, 0x07, 0x04, +0x5E, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x5C, 0x9A, 0x40, 0xEA, 0x11, 0x97, 0x10, 0x91, +0x0F, 0x90, 0x09, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x04, 0x67, 0x00, 0x18, 0x7B, 0xD6, 0x05, 0xD2, +0x80, 0xA0, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0xE3, 0xF3, 0x84, 0xCA, 0x81, 0xA0, +0xC3, 0xF3, 0xF9, 0xA2, 0x02, 0x6D, 0xE3, 0xF3, +0x90, 0xCA, 0x82, 0xA0, 0x01, 0x6E, 0xAB, 0xED, +0xE3, 0xF3, 0x9C, 0xCA, 0x83, 0xA0, 0xEC, 0xED, +0x70, 0x67, 0xCC, 0xEC, 0x8D, 0xED, 0xC3, 0xF3, +0xB9, 0xC2, 0xE3, 0xA0, 0x1F, 0x6C, 0x8B, 0xEC, +0xF2, 0x37, 0xE4, 0x37, 0xAC, 0xEC, 0xED, 0xEC, +0xC3, 0xF3, 0x99, 0xC2, 0xCC, 0xEC, 0xA0, 0xF0, +0x11, 0x24, 0x30, 0xF0, 0x20, 0x6A, 0xAE, 0xF6, +0x0C, 0x4A, 0x00, 0x6D, 0xB1, 0xE3, 0x05, 0x96, +0x84, 0xA4, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, +0x18, 0x48, 0x91, 0xE6, 0xFF, 0xF7, 0x1F, 0x6E, +0xCC, 0xEC, 0x30, 0xF0, 0x20, 0x6E, 0xA3, 0xF2, +0xC8, 0x9E, 0x80, 0xCE, 0x30, 0xF0, 0x20, 0x6E, +0x23, 0xF2, 0xC0, 0x9E, 0x9C, 0x34, 0xDD, 0xE4, +0xE0, 0xA7, 0xE0, 0xC2, 0xE1, 0x44, 0xDD, 0xE7, +0xE0, 0xA7, 0xE1, 0xC2, 0xE2, 0x44, 0xDD, 0xE7, +0xE0, 0xA7, 0xE2, 0xC2, 0xE3, 0x44, 0xD9, 0xE7, +0x44, 0x6F, 0xF8, 0xED, 0xC0, 0xA6, 0xC3, 0xC2, +0x30, 0xF0, 0x20, 0x6E, 0x23, 0xF7, 0xD4, 0x9E, +0xD9, 0xE4, 0x12, 0xEF, 0xFD, 0xE0, 0x30, 0xF0, +0x20, 0x68, 0x23, 0xF4, 0x14, 0x98, 0x63, 0xF5, +0x18, 0x4F, 0x11, 0xE4, 0x00, 0xA6, 0x01, 0x4E, +0x8A, 0xEE, 0x00, 0xC7, 0x01, 0x4F, 0xFA, 0x61, +0x01, 0x4D, 0x02, 0x75, 0x44, 0x4A, 0xC2, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF6, 0x10, 0x4A, +0x00, 0x6D, 0x44, 0x68, 0x18, 0xED, 0x01, 0x6F, +0xC1, 0x45, 0xEC, 0xEE, 0xD9, 0xE3, 0xE4, 0xA6, +0x05, 0x96, 0xFF, 0x6C, 0xAC, 0xEC, 0xDD, 0xE7, +0xFF, 0xF7, 0x1F, 0x6E, 0xCC, 0xEF, 0x30, 0xF0, +0x20, 0x6E, 0xA3, 0xF2, 0xC8, 0x9E, 0xE0, 0xCE, +0x30, 0xF0, 0x20, 0x6E, 0x2B, 0xF1, 0x18, 0x4E, +0x12, 0xE8, 0x01, 0xE6, 0x30, 0xF0, 0x20, 0x6E, +0x23, 0xF2, 0xC0, 0x9E, 0xFC, 0x37, 0x63, 0xF5, +0x18, 0x48, 0xD9, 0xE7, 0x04, 0xD6, 0x06, 0xD3, +0x20, 0xA0, 0x04, 0x93, 0xFF, 0x6E, 0x25, 0xE4, +0xCC, 0xE9, 0x01, 0x48, 0x20, 0xC3, 0x4A, 0xE8, +0x01, 0x4B, 0x04, 0xD3, 0xF5, 0x61, 0x30, 0xF0, +0x20, 0x69, 0x23, 0xF2, 0x00, 0x49, 0x20, 0x99, +0x07, 0x47, 0x39, 0x48, 0x21, 0xE0, 0xBF, 0xF7, +0x3E, 0xA2, 0x06, 0x93, 0x01, 0x4D, 0x02, 0x49, +0x25, 0xE4, 0xCC, 0xE9, 0x20, 0xC0, 0x30, 0xF0, +0x20, 0x68, 0x23, 0xF2, 0x00, 0x48, 0x00, 0x98, +0x27, 0x47, 0x3A, 0x49, 0x05, 0xE1, 0x19, 0x65, +0xBF, 0xF7, 0x3F, 0xA2, 0x18, 0x67, 0x42, 0x4F, +0x02, 0x49, 0x25, 0xE4, 0xCC, 0xE9, 0x20, 0xC0, +0x30, 0xF0, 0x20, 0x69, 0x23, 0xF2, 0x00, 0x49, +0x20, 0x99, 0x02, 0x75, 0x21, 0xE7, 0xBF, 0xF7, +0x3C, 0xA2, 0x03, 0x49, 0x25, 0xE4, 0xCC, 0xE9, +0x20, 0xC0, 0x30, 0xF0, 0x20, 0x68, 0x44, 0xF1, +0x18, 0x98, 0x1D, 0xE7, 0xBF, 0xF7, 0x1D, 0xA2, +0x44, 0x4A, 0x03, 0x48, 0x11, 0xE4, 0xCC, 0xEC, +0x80, 0xC7, 0x97, 0x61, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x10, 0xF0, 0x24, 0x6D, +0x05, 0x6C, 0x96, 0xF0, 0x11, 0x4D, 0x00, 0x18, +0x1A, 0xC2, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x60, 0xA4, 0x0F, 0x69, 0x51, 0x67, 0x6C, 0xEA, +0x04, 0xD2, 0x10, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xFF, 0x6B, 0x6C, 0xEA, 0xF0, 0x72, 0x04, 0x67, +0x37, 0x61, 0x04, 0x92, 0x30, 0xF0, 0x20, 0x6B, +0x2B, 0xF1, 0x18, 0x4B, 0xFF, 0x4A, 0xC3, 0xF3, +0xB4, 0xA3, 0x2C, 0xEA, 0x44, 0x34, 0x1F, 0x6A, +0x4B, 0xEA, 0xAC, 0xEA, 0x8D, 0xEA, 0xC3, 0xF3, +0x54, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, +0x44, 0x9A, 0x04, 0x94, 0x40, 0xEA, 0x01, 0x72, +0x0D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, +0x40, 0x9A, 0x00, 0x6C, 0xA4, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, 0x48, 0x9A, -0x04, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xC3, 0xF3, 0x98, 0xA2, -0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xC3, 0xF3, -0x78, 0xC2, 0xC1, 0x10, 0x04, 0x93, 0x0C, 0x6A, -0x30, 0xF0, 0x20, 0x6C, 0x58, 0xEB, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0x0E, 0xF5, -0x18, 0x4C, 0xA1, 0x40, 0x05, 0x6E, 0x12, 0xEB, -0x71, 0xE4, 0x05, 0xD3, 0x40, 0xEA, 0x05, 0x94, +0x02, 0x6C, 0x05, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF5, 0x48, 0x9A, 0x04, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x4D, 0xE4, 0xE3, 0xF3, 0x84, 0xA3, 0xFF, 0x6D, -0x92, 0x32, 0xAC, 0xEA, 0x05, 0x2A, 0x8C, 0xE9, -0x20, 0x6A, 0x4D, 0xE9, 0xE3, 0xF3, 0x24, 0xC3, -0x04, 0x94, 0x0C, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0x78, 0xEC, 0x2B, 0xF1, 0x18, 0x4A, 0xE0, 0xF3, -0x08, 0x6C, 0x12, 0xEB, 0x4D, 0xE3, 0xE3, 0xF3, -0xA2, 0xA3, 0xA0, 0x35, 0xA8, 0x35, 0x9A, 0xED, -0x01, 0x2C, 0xE5, 0xE8, 0x12, 0xEC, 0xE3, 0xF3, -0x82, 0xC3, 0x60, 0xA0, 0x04, 0x94, 0x72, 0x33, -0xFF, 0x4B, 0x8E, 0xEB, 0x80, 0xF0, 0x03, 0x2B, -0xA0, 0xF0, 0x9A, 0xAA, 0x0F, 0xF7, 0x01, 0x4B, -0x8C, 0xEB, 0x07, 0x23, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF5, 0x48, 0x9A, 0x05, 0x6C, 0x40, 0xEA, -0x8E, 0x10, 0xC3, 0xF3, 0x78, 0xA2, 0x1F, 0x6C, -0x8B, 0xEC, 0x6C, 0xEC, 0xC3, 0xF3, 0x98, 0xC2, -0xC3, 0xF3, 0xDA, 0xA2, 0xA0, 0xA0, 0x10, 0x6B, -0x6B, 0xEB, 0xB2, 0x35, 0xCC, 0xEB, 0xAD, 0xEB, -0xE3, 0xF3, 0xA3, 0xA2, 0xC3, 0xF3, 0x7A, 0xC2, -0x61, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xBA, 0x35, -0xA0, 0xF0, 0x94, 0xA2, 0xB4, 0x35, 0xAD, 0xEB, -0x01, 0x6D, 0xAC, 0xEC, 0xFF, 0x6E, 0xCC, 0xEC, -0x0B, 0x24, 0x7F, 0x6C, 0x6C, 0xEC, 0xC3, 0xF3, -0x98, 0xC2, 0xC3, 0xF3, 0x99, 0xA2, 0x20, 0x6B, -0x6B, 0xEB, 0x8C, 0xEB, 0xAD, 0xEB, 0x0A, 0x10, -0x80, 0x6C, 0x8B, 0xEC, 0x6D, 0xEC, 0xC3, 0xF3, -0x98, 0xC2, 0xC3, 0xF3, 0x99, 0xA2, 0x20, 0x6B, -0x6B, 0xEB, 0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x68, -0x2B, 0xF1, 0x18, 0x48, 0xC3, 0xF3, 0x79, 0xC2, -0xC3, 0xF3, 0x78, 0xA0, 0x01, 0x6A, 0x30, 0xF0, -0x20, 0x6C, 0x6D, 0xEA, 0xC3, 0xF3, 0x58, 0xC0, -0xC3, 0xF3, 0x7D, 0xA0, 0x00, 0x6A, 0xC3, 0xF3, -0x5C, 0xC0, 0x21, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, -0xC3, 0xF3, 0x5D, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x48, 0x9A, 0x00, 0x6D, 0x78, 0x6E, -0x2E, 0xF6, 0x18, 0x4C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF5, 0x48, 0x9A, 0x03, 0x6C, -0x0F, 0x69, 0x40, 0xEA, 0xE3, 0xF3, 0x84, 0xA0, -0x2C, 0xEC, 0x00, 0x18, 0x85, 0xE8, 0xE3, 0xF3, -0x84, 0xA0, 0x2C, 0xEC, 0x00, 0x18, 0x4C, 0xE8, -0xE3, 0xF3, 0x90, 0xA0, 0x2C, 0xEC, 0x00, 0x18, -0x4C, 0xE8, 0xE3, 0xF3, 0x84, 0xA0, 0x2C, 0xEC, -0x00, 0x18, 0x56, 0xE8, 0xE3, 0xF3, 0x90, 0xA0, -0x2C, 0xEC, 0x00, 0x18, 0x56, 0xE8, 0x30, 0xF0, -0x20, 0x6A, 0xA0, 0xF5, 0x84, 0x9A, 0x00, 0x18, -0x63, 0xE7, 0x10, 0xF0, 0x32, 0x6C, 0x96, 0xF0, -0x05, 0x4C, 0x00, 0x18, 0x63, 0xE7, 0x30, 0xF0, -0x20, 0x6A, 0xA0, 0xF5, 0x80, 0x9A, 0x00, 0x18, -0x63, 0xE7, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, -0x98, 0x9A, 0x00, 0x18, 0x63, 0xE7, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xF1, 0x63, 0x1D, 0x62, 0x1C, 0xD1, 0x1B, 0xD0, -0x30, 0xF0, 0x20, 0x69, 0xFF, 0x6A, 0x2B, 0xF1, -0x18, 0x49, 0x4C, 0xEC, 0xC3, 0xF3, 0x58, 0xA1, -0x0F, 0x6B, 0xFF, 0x6D, 0x46, 0x32, 0x6C, 0xEA, -0xAC, 0xEA, 0x0C, 0x68, 0x18, 0xEA, 0x18, 0xD2, -0x12, 0xE8, 0x21, 0xE0, 0xE3, 0xF3, 0x44, 0xA0, -0x6C, 0xEA, 0x8E, 0xEA, 0x7E, 0x2A, 0xE3, 0xF3, -0x67, 0xA0, 0x01, 0x6D, 0x72, 0x32, 0xAC, 0xEA, -0xFF, 0x6D, 0xAC, 0xEA, 0x76, 0x22, 0x11, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0xE3, 0xF3, 0x47, 0xC0, -0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x44, 0x9A, -0x00, 0x6D, 0x40, 0xEA, 0x60, 0x2A, 0xE3, 0xF3, -0x23, 0xA0, 0x01, 0x6A, 0xFF, 0x6B, 0x32, 0x31, -0x4C, 0xE9, 0x6C, 0xE9, 0x49, 0x29, 0xE3, 0xF3, -0x47, 0xA0, 0x56, 0x33, 0x02, 0x53, 0x44, 0x60, -0x10, 0x6B, 0x4D, 0xEB, 0xE3, 0xF3, 0x67, 0xC0, -0x0C, 0x04, 0x00, 0x6D, 0x30, 0x6E, 0x00, 0x18, -0xE7, 0xD7, 0xE3, 0xF3, 0x48, 0xA8, 0xBD, 0x67, -0x40, 0xF0, 0x2A, 0xC5, 0x40, 0xF0, 0x48, 0xCD, -0x01, 0x6A, 0x4B, 0xEA, 0x40, 0xF0, 0x4B, 0xC5, -0xE3, 0xF3, 0x44, 0xA0, 0x0F, 0x6B, 0x04, 0x04, -0x6C, 0xEA, 0x40, 0xF0, 0x4C, 0xC5, 0x10, 0xF0, -0x32, 0x6A, 0x37, 0xF6, 0x09, 0x4A, 0x0C, 0xD2, -0x10, 0xF0, 0x24, 0x6A, 0x56, 0xF2, 0x11, 0x4A, -0x0D, 0xD2, 0x10, 0x03, 0x00, 0x6A, 0x05, 0x10, -0x59, 0xE3, 0xC0, 0xA6, 0x55, 0xE4, 0x01, 0x4A, -0xC0, 0xC5, 0x20, 0x5A, 0xF9, 0x61, 0x0C, 0x94, -0x0D, 0x95, 0x0E, 0x96, 0x0F, 0x97, 0x0C, 0x69, -0x00, 0x18, 0xC4, 0xE5, 0x18, 0x93, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x38, 0xEB, -0x12, 0xE9, 0x49, 0xE1, 0xE3, 0xF3, 0x67, 0xA2, -0x20, 0x4B, 0xE3, 0xF3, 0x67, 0xC2, 0x19, 0x10, -0x18, 0x93, 0x34, 0x69, 0x30, 0xF0, 0x20, 0x6A, -0x38, 0xEB, 0x2B, 0xF1, 0x18, 0x4A, 0x12, 0xE9, -0x49, 0xE1, 0x23, 0xF5, 0x60, 0x9A, 0x01, 0x4B, -0x23, 0xF5, 0x60, 0xDA, 0x0A, 0x10, 0x18, 0x93, -0x34, 0x6A, 0x58, 0xEB, 0x12, 0xEA, 0x25, 0xE2, -0x03, 0xF5, 0x5C, 0x99, 0x01, 0x4A, 0x03, 0xF5, -0x5C, 0xD9, 0x1D, 0x97, 0x1C, 0x91, 0x1B, 0x90, -0x0F, 0x63, 0x00, 0xEF, 0xF2, 0x63, 0x1B, 0x62, -0x1A, 0xD1, 0x19, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x2B, 0xF1, 0x18, 0x48, 0xC3, 0xF3, 0x38, 0xA0, -0x0F, 0x6A, 0x0C, 0x04, 0x26, 0x31, 0x00, 0x6D, -0x30, 0x6E, 0x4C, 0xE9, 0x00, 0x18, 0xE7, 0xD7, -0x0C, 0x6A, 0x58, 0xE9, 0x7D, 0x67, 0x04, 0x04, -0x12, 0xE9, 0x01, 0xE1, 0xE3, 0xF3, 0x48, 0xA8, -0x40, 0xF0, 0x48, 0xCB, 0x01, 0x6A, 0x4B, 0xEA, -0x40, 0xF0, 0x4B, 0xC3, 0xE3, 0xF3, 0x44, 0xA0, -0x0F, 0x6B, 0x6C, 0xEA, 0x7D, 0x67, 0x40, 0xF0, -0x4C, 0xC3, 0x10, 0xF0, 0x32, 0x6A, 0x37, 0xF6, -0x09, 0x4A, 0x0C, 0xD2, 0x10, 0xF0, 0x24, 0x6A, -0x56, 0xF2, 0x11, 0x4A, 0x0D, 0xD2, 0x10, 0x03, +0xC3, 0xF3, 0x94, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xC3, 0xF3, 0x74, 0xC2, 0xC1, 0x10, +0x04, 0x93, 0x0C, 0x6A, 0x30, 0xF0, 0x20, 0x6C, +0x58, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0x0E, 0xF5, 0x14, 0x4C, 0xA1, 0x40, +0x05, 0x6E, 0x12, 0xEB, 0x71, 0xE4, 0x05, 0xD3, +0x40, 0xEA, 0x05, 0x94, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0x4D, 0xE4, 0xE3, 0xF3, +0x80, 0xA3, 0xFF, 0x6D, 0x92, 0x32, 0xAC, 0xEA, +0x05, 0x2A, 0x8C, 0xE9, 0x20, 0x6A, 0x4D, 0xE9, +0xE3, 0xF3, 0x20, 0xC3, 0x04, 0x94, 0x0C, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x78, 0xEC, 0x2B, 0xF1, +0x18, 0x4A, 0xE0, 0xF3, 0x08, 0x6C, 0x12, 0xEB, +0x4D, 0xE3, 0xC3, 0xF3, 0xBE, 0xA3, 0xA0, 0x35, +0xA8, 0x35, 0x9A, 0xED, 0x01, 0x2C, 0xE5, 0xE8, +0x12, 0xEC, 0xC3, 0xF3, 0x9E, 0xC3, 0x60, 0xA0, +0x04, 0x94, 0x72, 0x33, 0xFF, 0x4B, 0x8E, 0xEB, +0x80, 0xF0, 0x03, 0x2B, 0xA0, 0xF0, 0x9A, 0xAA, +0x0F, 0xF7, 0x01, 0x4B, 0x8C, 0xEB, 0x07, 0x23, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, 0x48, 0x9A, +0x05, 0x6C, 0x40, 0xEA, 0x8E, 0x10, 0xC3, 0xF3, +0x74, 0xA2, 0x1F, 0x6C, 0x8B, 0xEC, 0x6C, 0xEC, +0xC3, 0xF3, 0x94, 0xC2, 0xC3, 0xF3, 0xD6, 0xA2, +0xA0, 0xA0, 0x10, 0x6B, 0x6B, 0xEB, 0xB2, 0x35, +0xCC, 0xEB, 0xAD, 0xEB, 0xC3, 0xF3, 0xBF, 0xA2, +0xC3, 0xF3, 0x76, 0xC2, 0x61, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xBA, 0x35, 0xA0, 0xF0, 0x94, 0xA2, +0xB4, 0x35, 0xAD, 0xEB, 0x01, 0x6D, 0xAC, 0xEC, +0xFF, 0x6E, 0xCC, 0xEC, 0x0B, 0x24, 0x7F, 0x6C, +0x6C, 0xEC, 0xC3, 0xF3, 0x94, 0xC2, 0xC3, 0xF3, +0x95, 0xA2, 0x20, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0xAD, 0xEB, 0x0A, 0x10, 0x80, 0x6C, 0x8B, 0xEC, +0x6D, 0xEC, 0xC3, 0xF3, 0x94, 0xC2, 0xC3, 0xF3, +0x95, 0xA2, 0x20, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, +0xC3, 0xF3, 0x75, 0xC2, 0xC3, 0xF3, 0x74, 0xA0, +0x01, 0x6A, 0x30, 0xF0, 0x20, 0x6C, 0x6D, 0xEA, +0xC3, 0xF3, 0x54, 0xC0, 0xC3, 0xF3, 0x79, 0xA0, +0x00, 0x6A, 0xC3, 0xF3, 0x58, 0xC0, 0x21, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xC3, 0xF3, 0x59, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, +0x00, 0x6D, 0x78, 0x6E, 0x2E, 0xF6, 0x14, 0x4C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, +0x48, 0x9A, 0x03, 0x6C, 0x0F, 0x69, 0x40, 0xEA, +0xE3, 0xF3, 0x80, 0xA0, 0x2C, 0xEC, 0x00, 0x18, +0xDB, 0xE7, 0xE3, 0xF3, 0x80, 0xA0, 0x2C, 0xEC, +0x00, 0x18, 0xA2, 0xE7, 0xE3, 0xF3, 0x8C, 0xA0, +0x2C, 0xEC, 0x00, 0x18, 0xA2, 0xE7, 0xE3, 0xF3, +0x80, 0xA0, 0x2C, 0xEC, 0x00, 0x18, 0xAC, 0xE7, +0xE3, 0xF3, 0x8C, 0xA0, 0x2C, 0xEC, 0x00, 0x18, +0xAC, 0xE7, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF5, +0x84, 0x9A, 0x00, 0x18, 0xB9, 0xE6, 0x10, 0xF0, +0x32, 0x6C, 0x15, 0xF1, 0x15, 0x4C, 0x00, 0x18, +0xB9, 0xE6, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF5, +0x80, 0x9A, 0x00, 0x18, 0xB9, 0xE6, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF5, 0x98, 0x9A, 0x00, 0x18, +0xB9, 0xE6, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xF1, 0x63, 0x1D, 0x62, +0x1C, 0xD1, 0x1B, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0xFF, 0x6A, 0x2B, 0xF1, 0x18, 0x49, 0x4C, 0xEC, +0xC3, 0xF3, 0x54, 0xA1, 0x0F, 0x6B, 0xFF, 0x6D, +0x46, 0x32, 0x6C, 0xEA, 0xAC, 0xEA, 0x0C, 0x68, +0x18, 0xEA, 0x18, 0xD2, 0x12, 0xE8, 0x21, 0xE0, +0xE3, 0xF3, 0x40, 0xA0, 0x6C, 0xEA, 0x8E, 0xEA, +0x7E, 0x2A, 0xE3, 0xF3, 0x63, 0xA0, 0x01, 0x6D, +0x72, 0x32, 0xAC, 0xEA, 0xFF, 0x6D, 0xAC, 0xEA, +0x76, 0x22, 0x11, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xE3, 0xF3, 0x43, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF4, 0x44, 0x9A, 0x00, 0x6D, 0x40, 0xEA, +0x60, 0x2A, 0xC3, 0xF3, 0x3F, 0xA0, 0x01, 0x6A, +0xFF, 0x6B, 0x32, 0x31, 0x4C, 0xE9, 0x6C, 0xE9, +0x49, 0x29, 0xE3, 0xF3, 0x43, 0xA0, 0x56, 0x33, +0x02, 0x53, 0x44, 0x60, 0x10, 0x6B, 0x4D, 0xEB, +0xE3, 0xF3, 0x63, 0xC0, 0x0C, 0x04, 0x00, 0x6D, +0x30, 0x6E, 0x00, 0x18, 0x3D, 0xD7, 0xE3, 0xF3, +0x44, 0xA8, 0xBD, 0x67, 0x40, 0xF0, 0x2A, 0xC5, +0x40, 0xF0, 0x48, 0xCD, 0x01, 0x6A, 0x4B, 0xEA, +0x40, 0xF0, 0x4B, 0xC5, 0xE3, 0xF3, 0x40, 0xA0, +0x0F, 0x6B, 0x04, 0x04, 0x6C, 0xEA, 0x40, 0xF0, +0x4C, 0xC5, 0x10, 0xF0, 0x32, 0x6A, 0x76, 0xF7, +0x1D, 0x4A, 0x0C, 0xD2, 0x10, 0xF0, 0x24, 0x6A, +0xB5, 0xF7, 0x09, 0x4A, 0x0D, 0xD2, 0x10, 0x03, 0x00, 0x6A, 0x05, 0x10, 0x59, 0xE3, 0xC0, 0xA6, 0x55, 0xE4, 0x01, 0x4A, 0xC0, 0xC5, 0x20, 0x5A, -0xF9, 0x61, 0x0F, 0x97, 0x0C, 0x94, 0x0D, 0x95, -0x0E, 0x96, 0x00, 0x18, 0xC4, 0xE5, 0x1B, 0x97, -0x1A, 0x91, 0x19, 0x90, 0x0E, 0x63, 0x00, 0xEF, -0xF1, 0x63, 0x1D, 0x62, 0x1C, 0xD1, 0x1B, 0xD0, -0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, -0xC3, 0xF3, 0x58, 0xA0, 0x0F, 0x69, 0x46, 0x32, -0x2C, 0xEA, 0x18, 0xD2, 0xC3, 0xF3, 0x5C, 0xA0, -0x03, 0x72, 0x71, 0x60, 0x0C, 0x04, 0x00, 0x6D, -0x30, 0x6E, 0x00, 0x18, 0xE7, 0xD7, 0x18, 0x93, -0x0C, 0x6A, 0xBD, 0x67, 0x58, 0xEB, 0x04, 0x04, -0x10, 0x03, 0x12, 0xEA, 0x01, 0xE2, 0xE3, 0xF3, -0x48, 0xA8, 0x40, 0xF0, 0x48, 0xCD, 0x01, 0x6A, -0x40, 0xF0, 0x4A, 0xC5, 0x01, 0x6A, 0x4B, 0xEA, -0x40, 0xF0, 0x4B, 0xC5, 0xE3, 0xF3, 0x44, 0xA0, -0x4C, 0xE9, 0x10, 0xF0, 0x32, 0x6A, 0x37, 0xF6, -0x09, 0x4A, 0x0C, 0xD2, 0x10, 0xF0, 0x24, 0x6A, -0xF6, 0xF1, 0x05, 0x4A, 0x0D, 0xD2, 0x40, 0xF0, -0x2C, 0xC5, 0x00, 0x6A, 0x05, 0x10, 0x59, 0xE3, -0xC0, 0xA6, 0x55, 0xE4, 0x01, 0x4A, 0xC0, 0xC5, -0x20, 0x5A, 0xF9, 0x61, 0x0C, 0x94, 0x0D, 0x95, -0x0E, 0x96, 0x0F, 0x97, 0x00, 0x18, 0xC4, 0xE5, -0x18, 0x95, 0x0C, 0x6B, 0x30, 0xF0, 0x20, 0x6C, -0x78, 0xED, 0x2B, 0xF1, 0x18, 0x4C, 0x12, 0xEB, -0x8D, 0xE3, 0xE3, 0xF3, 0x4A, 0xC3, 0xE3, 0xF3, -0x4A, 0xA3, 0x06, 0x22, 0xE3, 0xF3, 0x87, 0xA3, -0x01, 0x6A, 0x8D, 0xEA, 0xE3, 0xF3, 0x47, 0xC3, -0x18, 0x92, 0x0C, 0x6C, 0x30, 0xF0, 0x20, 0x6B, -0x98, 0xEA, 0x2B, 0xF1, 0x18, 0x4B, 0x07, 0x6E, -0x12, 0xEC, 0x71, 0xE4, 0xE3, 0xF3, 0xA7, 0xA4, -0xA6, 0x32, 0xCC, 0xEA, 0x01, 0x4A, 0xCC, 0xEA, -0x44, 0x36, 0x0F, 0x6A, 0x4B, 0xEA, 0xAC, 0xEA, -0xCD, 0xEA, 0xE3, 0xF3, 0x47, 0xC4, 0xC3, 0xF3, -0x5C, 0xA3, 0x08, 0x2A, 0xE3, 0xF3, 0x84, 0xA4, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, 0x4C, 0x9A, -0x92, 0x34, 0x40, 0xEA, 0x01, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0x0E, 0xF5, 0x74, 0xC2, 0x1D, 0x97, +0xF9, 0x61, 0x0C, 0x94, 0x0D, 0x95, 0x0E, 0x96, +0x0F, 0x97, 0x0C, 0x69, 0x00, 0x18, 0x1A, 0xE5, +0x18, 0x93, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0x38, 0xEB, 0x12, 0xE9, 0x49, 0xE1, +0xE3, 0xF3, 0x63, 0xA2, 0x20, 0x4B, 0xE3, 0xF3, +0x63, 0xC2, 0x19, 0x10, 0x18, 0x93, 0x34, 0x69, +0x30, 0xF0, 0x20, 0x6A, 0x38, 0xEB, 0x2B, 0xF1, +0x18, 0x4A, 0x12, 0xE9, 0x49, 0xE1, 0x03, 0xF5, +0x7C, 0x9A, 0x01, 0x4B, 0x03, 0xF5, 0x7C, 0xDA, +0x0A, 0x10, 0x18, 0x93, 0x34, 0x6A, 0x58, 0xEB, +0x12, 0xEA, 0x25, 0xE2, 0x03, 0xF5, 0x58, 0x99, +0x01, 0x4A, 0x03, 0xF5, 0x58, 0xD9, 0x1D, 0x97, 0x1C, 0x91, 0x1B, 0x90, 0x0F, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6C, 0x2B, 0xF1, 0x18, 0x4C, -0xC3, 0xF3, 0x18, 0xA4, 0x0F, 0x6F, 0x0C, 0x69, -0x06, 0x30, 0xEC, 0xE8, 0x38, 0xE8, 0x07, 0x6D, -0xFF, 0x6A, 0x12, 0xEB, 0x8D, 0xE3, 0xE3, 0xF3, -0xC3, 0xA3, 0xCC, 0xED, 0xC3, 0xF3, 0xDC, 0xA4, -0x02, 0x76, 0x06, 0x60, 0x03, 0x6A, 0xCE, 0xEA, -0x5C, 0x22, 0x01, 0x76, 0x54, 0x60, 0x5B, 0x10, -0x01, 0x75, 0x06, 0x60, 0x30, 0x25, 0x02, 0x75, -0x2E, 0x60, 0x03, 0x75, 0x38, 0x60, 0x53, 0x10, -0xC3, 0xF3, 0xDA, 0xA4, 0xA1, 0x40, 0x4C, 0xED, -0xCC, 0xEF, 0xAE, 0xEF, 0xEB, 0xEE, 0xED, 0xEE, -0xC0, 0xF7, 0xC3, 0x36, 0xCC, 0xED, 0x38, 0xED, -0x12, 0xE9, 0x85, 0xE1, 0xE3, 0xF3, 0x82, 0xA1, -0x20, 0x5C, 0x0A, 0x61, 0xE3, 0xF3, 0x88, 0xAB, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x74, 0x9B, -0x4C, 0xEC, 0x0F, 0xF4, 0x00, 0x6D, 0x0E, 0x10, -0xE3, 0xF3, 0xA2, 0xA1, 0xE3, 0xF3, 0x88, 0xAB, -0x30, 0xF0, 0x20, 0x6B, 0xA0, 0x35, 0x40, 0xF4, -0x74, 0x9B, 0xA8, 0x35, 0x4C, 0xEC, 0xFF, 0xF7, -0x1F, 0x6A, 0x4C, 0xED, 0x40, 0xEB, 0x0C, 0x6B, -0x78, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x12, 0xEB, 0x49, 0xE3, 0xE3, 0xF3, -0x8A, 0xA2, 0x00, 0x18, 0x6B, 0xE6, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF5, 0x40, 0x9A, 0x02, 0x6C, -0xB0, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF5, 0x4C, 0x9A, 0x40, 0xEA, 0x0F, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, 0x48, 0x9A, -0x06, 0x6C, 0x40, 0xEA, 0x08, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF5, 0x54, 0x9A, 0x40, 0xEA, -0x02, 0x10, 0xC3, 0xF3, 0x5C, 0xC4, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0xC3, 0xF3, 0x78, 0xA2, 0x0C, 0x69, 0x66, 0x33, -0x06, 0xD3, 0x06, 0x94, 0x0F, 0x6B, 0x6C, 0xEC, -0x38, 0xEC, 0x06, 0xD4, 0x01, 0x6B, 0x12, 0xE9, -0x45, 0xE1, 0xE3, 0xF3, 0x03, 0xA1, 0x12, 0x30, -0x6C, 0xE8, 0x23, 0x28, 0xE3, 0xF3, 0x67, 0xA1, -0x07, 0x6C, 0x66, 0x33, 0x8C, 0xEB, 0x02, 0x53, -0x1C, 0x60, 0x63, 0xF5, 0x76, 0xA2, 0x01, 0x4B, -0x63, 0xF5, 0x76, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF5, 0x58, 0x9A, 0x40, 0xEA, 0xE3, 0xF3, -0xC4, 0xA1, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF5, -0x88, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, -0x4C, 0x9A, 0xFF, 0x6B, 0xD2, 0x36, 0x04, 0xD0, -0x00, 0x6D, 0x6C, 0xEE, 0x01, 0x6F, 0x40, 0xEA, -0x31, 0x10, 0x06, 0x93, 0x0C, 0x69, 0x30, 0xF0, -0x20, 0x6A, 0x38, 0xEB, 0x2B, 0xF1, 0x18, 0x4A, -0x01, 0x6B, 0x12, 0xE9, 0x45, 0xE1, 0xE3, 0xF3, -0x03, 0xA1, 0x0E, 0x30, 0x6C, 0xE8, 0x1F, 0x28, -0x63, 0xF5, 0x75, 0xA2, 0x01, 0x4B, 0x63, 0xF5, -0x75, 0xC2, 0xE3, 0xF3, 0x8A, 0xA1, 0x00, 0x18, -0x6B, 0xE6, 0xE3, 0xF3, 0x0A, 0xC1, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF5, 0x40, 0x9A, 0x06, 0x95, -0x02, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF5, 0x4C, 0x9A, 0x40, 0xEA, 0x0A, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, 0x48, 0x9A, -0x06, 0x6C, 0x40, 0xEA, 0x03, 0x10, 0x03, 0x6B, -0xC3, 0xF3, 0x7C, 0xC2, 0x0B, 0x97, 0x0A, 0x91, -0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xE9, 0x63, 0x2D, 0x62, 0x2C, 0xD1, 0x2B, 0xD0, -0x00, 0x6A, 0x7D, 0x67, 0x20, 0xF0, 0x58, 0xC3, -0x0C, 0xD2, 0x0D, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x20, 0xF4, 0x5C, 0x9A, 0x40, 0xEA, 0x00, 0x6B, -0x60, 0xF1, 0x10, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xC3, 0xF3, 0xB8, 0xA2, -0x0F, 0x6C, 0x1F, 0x6E, 0xA6, 0x33, 0x8C, 0xEB, -0x23, 0x67, 0x01, 0x4B, 0x8C, 0xEB, 0xCB, 0xEE, -0x64, 0x33, 0xCC, 0xED, 0x6D, 0xED, 0xC3, 0xF3, -0xB8, 0xC2, 0xC3, 0xF3, 0xB8, 0xA2, 0xC3, 0xF3, -0x7A, 0xA2, 0xFF, 0x6F, 0xA6, 0x30, 0x0E, 0xEB, -0x8C, 0xEB, 0xEC, 0xEB, 0xEC, 0xE9, 0x04, 0x2B, -0x66, 0x67, 0xAC, 0xEB, 0xC3, 0xF3, 0x78, 0xC2, +0xF2, 0x63, 0x1B, 0x62, 0x1A, 0xD1, 0x19, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, -0xC3, 0xF3, 0x58, 0xA0, 0x46, 0x32, 0x28, 0xD2, -0x28, 0x94, 0x0F, 0x6A, 0x4C, 0xEC, 0x28, 0xD4, -0x00, 0x18, 0x00, 0xDE, 0x28, 0x96, 0x30, 0xF0, -0x20, 0x6C, 0x69, 0xF6, 0x10, 0x4C, 0xCC, 0x35, -0x95, 0xE5, 0x40, 0xDD, 0x2C, 0x32, 0x61, 0xDD, -0x91, 0xE2, 0x40, 0x9C, 0x61, 0x9C, 0x6D, 0xEA, -0x29, 0x22, 0x60, 0x9D, 0x40, 0x9C, 0x01, 0xE1, -0x03, 0xF5, 0x88, 0xA0, 0x4B, 0xE3, 0xE0, 0xF3, -0x08, 0x6B, 0x78, 0xEC, 0x12, 0xEC, 0x43, 0xEC, -0x06, 0x60, 0x7B, 0xEA, 0x01, 0x2B, 0xE5, 0xE8, -0x12, 0xEB, 0x03, 0xF5, 0x68, 0xC0, 0x30, 0xF0, -0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x6D, 0xE1, -0x03, 0xF5, 0xA6, 0xA3, 0x03, 0x2D, 0xE0, 0xF3, -0x08, 0x6C, 0x06, 0x10, 0xE0, 0xF3, 0x08, 0x6C, -0x98, 0xED, 0x12, 0xED, 0xA3, 0xEA, 0x06, 0x60, -0x9B, 0xEA, 0x01, 0x2C, 0xE5, 0xE8, 0x12, 0xEA, -0x03, 0xF5, 0x46, 0xC3, 0x28, 0x92, 0x0C, 0x6C, -0x30, 0xF0, 0x20, 0x68, 0x98, 0xEA, 0x2B, 0xF1, -0x18, 0x48, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, -0x58, 0x9A, 0x0F, 0x6D, 0x12, 0xEC, 0x11, 0xE4, -0xE3, 0xF3, 0x61, 0xA4, 0xE3, 0xF3, 0x80, 0xA4, -0x6C, 0xED, 0x72, 0x36, 0x40, 0xEA, 0x80, 0x18, -0xE7, 0x52, 0xC3, 0xF3, 0x7D, 0xA0, 0x01, 0x6A, -0x6C, 0xEA, 0x0F, 0x22, 0x28, 0x92, 0x44, 0x6D, -0x30, 0xF0, 0x21, 0x6C, 0xB8, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xAE, 0xF6, 0x10, 0x4A, 0x12, 0xF5, -0x08, 0x4C, 0x12, 0xED, 0xB5, 0xE2, 0x80, 0x18, -0xC1, 0x59, 0x0C, 0x68, 0x0C, 0x04, 0x80, 0x18, -0xCE, 0x12, 0x18, 0xE9, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x02, 0x6B, 0x6B, 0xEB, -0x01, 0x6E, 0x12, 0xE9, 0x45, 0xE1, 0xE3, 0xF3, -0x87, 0xA1, 0x8C, 0xEB, 0xE3, 0xF3, 0x67, 0xC1, -0x28, 0x93, 0x18, 0xEB, 0x11, 0x6B, 0x6B, 0xEB, -0x12, 0xE8, 0x41, 0xE0, 0xE3, 0xF3, 0x87, 0xA0, -0xE3, 0xF3, 0xA3, 0xA0, 0x8C, 0xEB, 0x1F, 0x6C, -0x8C, 0xEB, 0xE3, 0xF3, 0x67, 0xC0, 0xB6, 0x33, -0xCC, 0xEB, 0xFF, 0x6C, 0xA0, 0xF0, 0x01, 0x2B, -0xC3, 0xF3, 0xDD, 0xA2, 0x20, 0x6B, 0xCC, 0xEB, -0x8C, 0xEB, 0x4D, 0x23, 0x07, 0x69, 0xAC, 0xE9, -0x8C, 0xE9, 0x32, 0x29, 0x10, 0x04, 0x00, 0x6D, -0x30, 0x6E, 0x00, 0x18, 0xE7, 0xD7, 0xE3, 0xF3, -0x48, 0xA8, 0x9D, 0x67, 0x40, 0xF0, 0x3A, 0xC4, -0x40, 0xF0, 0x58, 0xCC, 0x01, 0x6A, 0x4B, 0xEA, -0x40, 0xF0, 0x5B, 0xC4, 0xE3, 0xF3, 0x64, 0xA0, -0x0F, 0x6A, 0x6C, 0xEA, 0x40, 0xF0, 0x5C, 0xC4, -0x10, 0xF0, 0x32, 0x6A, 0x37, 0xF6, 0x09, 0x4A, -0x10, 0xD2, 0x10, 0xF0, 0x24, 0x6A, 0x56, 0xF2, -0x11, 0x4A, 0x11, 0xD2, 0x04, 0x04, 0x00, 0x6A, -0x14, 0x03, 0x05, 0x10, 0x59, 0xE3, 0xC0, 0xA6, -0x55, 0xE4, 0x01, 0x4A, 0xC0, 0xC5, 0x20, 0x5A, -0xF9, 0x61, 0x10, 0x94, 0x11, 0x95, 0x12, 0x96, -0x13, 0x97, 0x00, 0x18, 0xC4, 0xE5, 0x65, 0x10, -0x02, 0x6E, 0xCE, 0xE9, 0x62, 0x29, 0xC3, 0xF3, -0xC8, 0x9A, 0xC3, 0xF3, 0x44, 0x9A, 0x30, 0xF0, -0x20, 0x6B, 0x80, 0xF5, 0x9C, 0x9B, 0x5B, 0xE6, -0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, -0xC2, 0x36, 0x04, 0xD1, 0x00, 0x6D, 0xCE, 0x36, -0x01, 0x6F, 0x40, 0xEA, 0x4E, 0x10, 0x07, 0x6A, -0xAC, 0xEA, 0x8C, 0xEA, 0x02, 0x22, 0x02, 0x72, -0x48, 0x61, 0x1C, 0x04, 0x30, 0x6E, 0x00, 0x6D, -0x00, 0x18, 0xE7, 0xD7, 0x28, 0x94, 0x0C, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0x78, 0xEC, 0x2B, 0xF1, -0x18, 0x4A, 0xDD, 0x67, 0x04, 0x04, 0x12, 0xEB, -0x49, 0xE3, 0xE3, 0xF3, 0x68, 0xAA, 0x80, 0xF0, -0x68, 0xCE, 0x01, 0x6B, 0x6B, 0xEB, 0x80, 0xF0, -0x6B, 0xC6, 0xE3, 0xF3, 0x64, 0xA2, 0x0F, 0x6A, -0x6C, 0xEA, 0x80, 0xF0, 0x4C, 0xC6, 0x10, 0xF0, -0x32, 0x6A, 0x37, 0xF6, 0x09, 0x4A, 0x1C, 0xD2, -0x10, 0xF0, 0x24, 0x6A, 0x56, 0xF2, 0x11, 0x4A, -0x1D, 0xD2, 0x20, 0x03, 0x00, 0x6A, 0x05, 0x10, +0xC3, 0xF3, 0x34, 0xA0, 0x0F, 0x6A, 0x0C, 0x04, +0x26, 0x31, 0x00, 0x6D, 0x30, 0x6E, 0x4C, 0xE9, +0x00, 0x18, 0x3D, 0xD7, 0x0C, 0x6A, 0x58, 0xE9, +0x7D, 0x67, 0x04, 0x04, 0x12, 0xE9, 0x01, 0xE1, +0xE3, 0xF3, 0x44, 0xA8, 0x40, 0xF0, 0x48, 0xCB, +0x01, 0x6A, 0x4B, 0xEA, 0x40, 0xF0, 0x4B, 0xC3, +0xE3, 0xF3, 0x40, 0xA0, 0x0F, 0x6B, 0x6C, 0xEA, +0x7D, 0x67, 0x40, 0xF0, 0x4C, 0xC3, 0x10, 0xF0, +0x32, 0x6A, 0x76, 0xF7, 0x1D, 0x4A, 0x0C, 0xD2, +0x10, 0xF0, 0x24, 0x6A, 0xB5, 0xF7, 0x09, 0x4A, +0x0D, 0xD2, 0x10, 0x03, 0x00, 0x6A, 0x05, 0x10, 0x59, 0xE3, 0xC0, 0xA6, 0x55, 0xE4, 0x01, 0x4A, -0xC0, 0xC5, 0x20, 0x5A, 0xF9, 0x61, 0x1C, 0x94, -0x1D, 0x95, 0x1E, 0x96, 0x1F, 0x97, 0x00, 0x18, -0xC4, 0xE5, 0x28, 0x94, 0x0C, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0x78, 0xEC, 0x2B, 0xF1, 0x18, 0x4A, -0x12, 0xEB, 0x4D, 0xE3, 0xE3, 0xF3, 0x87, 0xA3, -0x10, 0x6A, 0x8D, 0xEA, 0x20, 0x4A, 0xE3, 0xF3, -0x47, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x28, 0x95, -0x80, 0xF5, 0x40, 0x9A, 0x01, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x00, 0x6B, 0x2B, 0xF1, -0x18, 0x4A, 0xC3, 0xF3, 0x7C, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF5, 0x48, 0x9A, 0x00, 0x6C, -0x40, 0xEA, 0x01, 0x6B, 0x2D, 0x97, 0x2C, 0x91, -0x2B, 0x90, 0x43, 0x67, 0x17, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xC0, 0xF7, 0x11, 0x5D, 0x04, 0x67, 0x00, 0x6A, -0x39, 0x60, 0x82, 0xA4, 0xA4, 0xA0, 0x00, 0x18, -0xB5, 0xD3, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xA8, -0xC3, 0xA0, 0xA0, 0xF2, 0x54, 0x9A, 0x04, 0x6F, -0x01, 0x6D, 0x40, 0xEA, 0x22, 0x67, 0x30, 0xF0, -0x20, 0x6A, 0x40, 0xF4, 0x58, 0x9A, 0x82, 0xA0, -0xC4, 0xA0, 0xB1, 0x67, 0x40, 0xEA, 0x82, 0xA0, -0x00, 0x18, 0x18, 0xD3, 0x30, 0xF0, 0x20, 0x6B, -0x0E, 0xF5, 0x70, 0xA3, 0x0F, 0x6C, 0x66, 0x33, -0x8C, 0xEB, 0x34, 0x6C, 0x98, 0xEB, 0x30, 0xF0, -0x20, 0x6C, 0x4E, 0xF6, 0x04, 0x4C, 0x12, 0xEB, -0x6D, 0xE4, 0x04, 0x22, 0x86, 0x9B, 0x01, 0x4C, -0x86, 0xDB, 0x03, 0x10, 0x80, 0x9B, 0x01, 0x4C, -0x80, 0xDB, 0xA2, 0x67, 0x91, 0x67, 0x00, 0x18, -0x35, 0xF1, 0xA4, 0xA0, 0x91, 0x67, 0x00, 0x18, -0x44, 0xF1, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF0, 0x48, 0x9A, -0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, -0x80, 0xA2, 0xE7, 0xF1, 0xD8, 0xA3, 0x07, 0xF2, -0x80, 0xC3, 0xA0, 0xAA, 0x01, 0xF0, 0x00, 0x6C, -0xAC, 0xEC, 0x83, 0x35, 0x03, 0x6C, 0xAE, 0x35, -0x8B, 0xEC, 0xA4, 0x35, 0xCC, 0xEC, 0xAD, 0xEC, -0xE7, 0xF1, 0x98, 0xC3, 0x30, 0xF0, 0x20, 0x6C, -0x44, 0xF1, 0x98, 0x9C, 0xA0, 0xAC, 0x07, 0xF2, -0xA2, 0xCB, 0xA0, 0xAA, 0xBF, 0xF7, 0x1F, 0x6B, -0xAC, 0xEB, 0x60, 0xCA, 0xA0, 0xAA, 0x7F, 0xF7, -0x1F, 0x6B, 0xAC, 0xEB, 0x60, 0xCA, 0xC0, 0xAA, -0xFE, 0xF7, 0x1F, 0x6B, 0xFF, 0xF7, 0x1F, 0x6D, -0xCC, 0xEB, 0x60, 0xCA, 0x40, 0xAC, 0xFF, 0x6B, -0x21, 0x4B, 0xAC, 0xEA, 0x6D, 0xEA, 0xAC, 0xEA, -0x40, 0xCC, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x07, 0xF2, 0x80, 0xA2, 0xE4, 0xF0, 0x68, 0x9B, -0x01, 0x6E, 0x80, 0xC3, 0x30, 0xF0, 0x20, 0x6C, -0x07, 0xF2, 0xA2, 0xAA, 0x44, 0xF1, 0x98, 0x9C, -0xA0, 0xCC, 0xE7, 0xF1, 0x58, 0xA2, 0x80, 0xAB, -0xFF, 0xF7, 0x1F, 0x6D, 0x46, 0x32, 0xCC, 0xEA, -0xAC, 0xEC, 0x40, 0x32, 0xFE, 0xF7, 0x1E, 0x4E, -0x4C, 0x32, 0xCC, 0xEC, 0x8D, 0xEA, 0xAC, 0xEA, -0x40, 0xCB, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x07, 0xF3, 0x94, 0xA2, 0x01, 0x6B, -0x00, 0x68, 0x8D, 0xEB, 0x07, 0xF3, 0x74, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, -0x90, 0x67, 0x04, 0x05, 0x40, 0xEA, 0x01, 0x72, -0x0E, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF6, -0x40, 0x9A, 0x9D, 0x67, 0x70, 0xA4, 0x09, 0xE2, -0x01, 0x48, 0x00, 0xF2, 0x00, 0x70, 0x60, 0xC2, -0xEB, 0x61, 0x00, 0x6A, 0x0C, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x07, 0xF3, -0x94, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, -0x07, 0xF3, 0x74, 0xC2, 0x03, 0x6A, 0x07, 0x97, -0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0x6D, 0xF7, 0x14, 0x4A, -0x03, 0x6B, 0x4C, 0xEB, 0x03, 0x2B, 0x00, 0xF2, -0x00, 0x6C, 0x09, 0x10, 0x04, 0x6B, 0x03, 0x4A, -0x6B, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0x6C, 0xEA, -0x6E, 0xF1, 0x14, 0x4C, 0x53, 0xE4, 0xF8, 0x4C, -0x04, 0x6E, 0xCB, 0xEE, 0x30, 0xF0, 0x20, 0x6B, -0x91, 0xE2, 0x2B, 0xF1, 0x18, 0x4B, 0x00, 0x6D, -0xCC, 0xEC, 0x67, 0xF3, 0x94, 0xDB, 0x67, 0xF3, -0xB0, 0xDB, 0x67, 0xF3, 0x4C, 0xDB, 0xA1, 0xDC, -0x67, 0xF3, 0xD4, 0x9B, 0x53, 0xE4, 0xA0, 0xDE, -0x81, 0xDA, 0x67, 0xF3, 0xB4, 0x9B, 0xA0, 0xDA, -0x07, 0xF3, 0x98, 0xDB, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x21, 0x6A, 0xB2, 0xF4, 0x04, 0x4A, -0x01, 0x10, 0x43, 0x67, 0x60, 0x9A, 0x83, 0xEB, -0xFC, 0x61, 0x61, 0x9A, 0x75, 0xE2, 0x8E, 0xED, -0x04, 0x2D, 0x81, 0x9C, 0x8D, 0xE3, 0x61, 0xDA, -0x82, 0x67, 0xC1, 0x9C, 0x60, 0x9A, 0xD5, 0xE4, -0x6E, 0xED, 0x0E, 0x2D, 0x30, 0xF0, 0x21, 0x6D, -0xB2, 0xF4, 0xAC, 0x9D, 0xAA, 0xEB, 0x06, 0x60, -0x61, 0x9B, 0x79, 0xE6, 0xC1, 0xDC, 0x60, 0x9A, -0x60, 0x9B, 0x02, 0x10, 0xA0, 0xDC, 0x01, 0x10, -0x60, 0xDC, 0x8A, 0xEA, 0x01, 0x60, 0x80, 0xDA, -0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x21, 0x6A, -0xB2, 0xF4, 0x4C, 0x9A, 0x04, 0x67, 0x02, 0x2A, -0x80, 0x18, 0xF8, 0x6F, 0x41, 0x20, 0x47, 0x40, -0x01, 0x4A, 0x03, 0x6B, 0x4C, 0xEB, 0x04, 0x23, -0x04, 0x6B, 0x6B, 0xEB, 0x4C, 0xEB, 0x44, 0x43, -0x37, 0x22, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, -0x18, 0x4B, 0x07, 0xF3, 0x98, 0x9B, 0x43, 0xEC, -0x2F, 0x61, 0x67, 0xF3, 0x0C, 0x9B, 0x30, 0xF0, -0x21, 0x6B, 0xB2, 0xF4, 0x04, 0x4B, 0x02, 0x10, -0x70, 0x67, 0x04, 0x67, 0x81, 0x98, 0x43, 0xEC, -0x02, 0x60, 0x80, 0x98, 0xF9, 0x2C, 0x30, 0xF0, -0x21, 0x6C, 0xB2, 0xF4, 0x8C, 0x9C, 0x0E, 0xEC, -0x1B, 0x24, 0x80, 0x98, 0x20, 0x9B, 0x80, 0xDB, -0x61, 0x98, 0x4F, 0xE3, 0x11, 0x5B, 0x05, 0x61, -0x51, 0xE0, 0x61, 0xDC, 0x41, 0xD8, 0x80, 0x18, -0x10, 0x70, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, -0x18, 0x4B, 0x07, 0xF3, 0xB8, 0x9B, 0x81, 0x98, -0x47, 0x41, 0x01, 0x4A, 0x93, 0xE5, 0x07, 0xF3, -0x98, 0xDB, 0x00, 0x6B, 0x60, 0xD8, 0x01, 0x10, -0x00, 0x6A, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x0F, 0x24, 0xF8, 0x4C, 0x40, 0x9C, 0x0C, 0x2A, +0xC0, 0xC5, 0x20, 0x5A, 0xF9, 0x61, 0x0F, 0x97, +0x0C, 0x94, 0x0D, 0x95, 0x0E, 0x96, 0x00, 0x18, +0x1A, 0xE5, 0x1B, 0x97, 0x1A, 0x91, 0x19, 0x90, +0x0E, 0x63, 0x00, 0xEF, 0xF1, 0x63, 0x1D, 0x62, +0x1C, 0xD1, 0x1B, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0x2B, 0xF1, 0x18, 0x48, 0xC3, 0xF3, 0x54, 0xA0, +0x0F, 0x69, 0x46, 0x32, 0x2C, 0xEA, 0x18, 0xD2, +0xC3, 0xF3, 0x58, 0xA0, 0x03, 0x72, 0x71, 0x60, +0x0C, 0x04, 0x00, 0x6D, 0x30, 0x6E, 0x00, 0x18, +0x3D, 0xD7, 0x18, 0x93, 0x0C, 0x6A, 0xBD, 0x67, +0x58, 0xEB, 0x04, 0x04, 0x10, 0x03, 0x12, 0xEA, +0x01, 0xE2, 0xE3, 0xF3, 0x44, 0xA8, 0x40, 0xF0, +0x48, 0xCD, 0x01, 0x6A, 0x40, 0xF0, 0x4A, 0xC5, +0x01, 0x6A, 0x4B, 0xEA, 0x40, 0xF0, 0x4B, 0xC5, +0xE3, 0xF3, 0x40, 0xA0, 0x4C, 0xE9, 0x10, 0xF0, +0x32, 0x6A, 0x76, 0xF7, 0x1D, 0x4A, 0x0C, 0xD2, +0x10, 0xF0, 0x24, 0x6A, 0x35, 0xF7, 0x1D, 0x4A, +0x0D, 0xD2, 0x40, 0xF0, 0x2C, 0xC5, 0x00, 0x6A, +0x05, 0x10, 0x59, 0xE3, 0xC0, 0xA6, 0x55, 0xE4, +0x01, 0x4A, 0xC0, 0xC5, 0x20, 0x5A, 0xF9, 0x61, +0x0C, 0x94, 0x0D, 0x95, 0x0E, 0x96, 0x0F, 0x97, +0x00, 0x18, 0x1A, 0xE5, 0x18, 0x95, 0x0C, 0x6B, +0x30, 0xF0, 0x20, 0x6C, 0x78, 0xED, 0x2B, 0xF1, +0x18, 0x4C, 0x12, 0xEB, 0x8D, 0xE3, 0xE3, 0xF3, +0x46, 0xC3, 0xE3, 0xF3, 0x46, 0xA3, 0x06, 0x22, +0xE3, 0xF3, 0x83, 0xA3, 0x01, 0x6A, 0x8D, 0xEA, +0xE3, 0xF3, 0x43, 0xC3, 0x18, 0x92, 0x0C, 0x6C, +0x30, 0xF0, 0x20, 0x6B, 0x98, 0xEA, 0x2B, 0xF1, +0x18, 0x4B, 0x07, 0x6E, 0x12, 0xEC, 0x71, 0xE4, +0xE3, 0xF3, 0xA3, 0xA4, 0xA6, 0x32, 0xCC, 0xEA, +0x01, 0x4A, 0xCC, 0xEA, 0x44, 0x36, 0x0F, 0x6A, +0x4B, 0xEA, 0xAC, 0xEA, 0xCD, 0xEA, 0xE3, 0xF3, +0x43, 0xC4, 0xC3, 0xF3, 0x58, 0xA3, 0x08, 0x2A, +0xE3, 0xF3, 0x80, 0xA4, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF5, 0x4C, 0x9A, 0x92, 0x34, 0x40, 0xEA, +0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x0E, 0xF5, +0x70, 0xC2, 0x1D, 0x97, 0x1C, 0x91, 0x1B, 0x90, +0x0F, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6C, +0x2B, 0xF1, 0x18, 0x4C, 0xC3, 0xF3, 0x14, 0xA4, +0x0F, 0x6F, 0x0C, 0x69, 0x06, 0x30, 0xEC, 0xE8, +0x38, 0xE8, 0x07, 0x6D, 0xFF, 0x6A, 0x12, 0xEB, +0x8D, 0xE3, 0xC3, 0xF3, 0xDF, 0xA3, 0xCC, 0xED, +0xC3, 0xF3, 0xD8, 0xA4, 0x02, 0x76, 0x06, 0x60, +0x03, 0x6A, 0xCE, 0xEA, 0x5C, 0x22, 0x01, 0x76, +0x54, 0x60, 0x5B, 0x10, 0x01, 0x75, 0x06, 0x60, +0x30, 0x25, 0x02, 0x75, 0x2E, 0x60, 0x03, 0x75, +0x38, 0x60, 0x53, 0x10, 0xC3, 0xF3, 0xD6, 0xA4, +0xA1, 0x40, 0x4C, 0xED, 0xCC, 0xEF, 0xAE, 0xEF, +0xEB, 0xEE, 0xED, 0xEE, 0xC0, 0xF7, 0xC3, 0x36, +0xCC, 0xED, 0x38, 0xED, 0x12, 0xE9, 0x85, 0xE1, +0xC3, 0xF3, 0x9E, 0xA1, 0x20, 0x5C, 0x0A, 0x61, +0xE3, 0xF3, 0x84, 0xAB, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x74, 0x9B, 0x4C, 0xEC, 0x0F, 0xF4, +0x00, 0x6D, 0x0E, 0x10, 0xC3, 0xF3, 0xBE, 0xA1, +0xE3, 0xF3, 0x84, 0xAB, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0x35, 0x40, 0xF4, 0x74, 0x9B, 0xA8, 0x35, +0x4C, 0xEC, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xED, +0x40, 0xEB, 0x0C, 0x6B, 0x78, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x12, 0xEB, +0x49, 0xE3, 0xE3, 0xF3, 0x86, 0xA2, 0x00, 0x18, +0xC1, 0xE5, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, +0x40, 0x9A, 0x02, 0x6C, 0xB0, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF5, 0x4C, 0x9A, +0x40, 0xEA, 0x0F, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF5, 0x48, 0x9A, 0x06, 0x6C, 0x40, 0xEA, +0x08, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, +0x54, 0x9A, 0x40, 0xEA, 0x02, 0x10, 0xC3, 0xF3, +0x58, 0xC4, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0xC3, 0xF3, 0x74, 0xA2, +0x0C, 0x69, 0x66, 0x33, 0x06, 0xD3, 0x06, 0x94, +0x0F, 0x6B, 0x6C, 0xEC, 0x38, 0xEC, 0x06, 0xD4, +0x01, 0x6B, 0x12, 0xE9, 0x45, 0xE1, 0xC3, 0xF3, +0x1F, 0xA1, 0x12, 0x30, 0x6C, 0xE8, 0x23, 0x28, +0xE3, 0xF3, 0x63, 0xA1, 0x07, 0x6C, 0x66, 0x33, +0x8C, 0xEB, 0x02, 0x53, 0x1C, 0x60, 0x63, 0xF5, +0x72, 0xA2, 0x01, 0x4B, 0x63, 0xF5, 0x72, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, 0x58, 0x9A, +0x40, 0xEA, 0xE3, 0xF3, 0xC0, 0xA1, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF5, 0x88, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0xFF, 0x6B, +0xD2, 0x36, 0x04, 0xD0, 0x00, 0x6D, 0x6C, 0xEE, +0x01, 0x6F, 0x40, 0xEA, 0x31, 0x10, 0x06, 0x93, +0x0C, 0x69, 0x30, 0xF0, 0x20, 0x6A, 0x38, 0xEB, +0x2B, 0xF1, 0x18, 0x4A, 0x01, 0x6B, 0x12, 0xE9, +0x45, 0xE1, 0xC3, 0xF3, 0x1F, 0xA1, 0x0E, 0x30, +0x6C, 0xE8, 0x1F, 0x28, 0x63, 0xF5, 0x71, 0xA2, +0x01, 0x4B, 0x63, 0xF5, 0x71, 0xC2, 0xE3, 0xF3, +0x86, 0xA1, 0x00, 0x18, 0xC1, 0xE5, 0xE3, 0xF3, +0x06, 0xC1, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, +0x40, 0x9A, 0x06, 0x95, 0x02, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF5, 0x4C, 0x9A, +0x40, 0xEA, 0x0A, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF5, 0x48, 0x9A, 0x06, 0x6C, 0x40, 0xEA, +0x03, 0x10, 0x03, 0x6B, 0xC3, 0xF3, 0x78, 0xC2, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xE9, 0x63, 0x2D, 0x62, +0x2C, 0xD1, 0x2B, 0xD0, 0x00, 0x6A, 0x7D, 0x67, +0x20, 0xF0, 0x58, 0xC3, 0x0C, 0xD2, 0x0D, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, +0x40, 0xEA, 0x00, 0x6B, 0x60, 0xF1, 0x10, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0xA1, 0x9C, 0x07, 0xF3, 0x78, 0x9A, 0x6D, 0xE5, -0x07, 0xF3, 0x78, 0xDA, 0x80, 0x18, 0x10, 0x70, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, -0x4A, 0xA4, 0xC9, 0xA4, 0xA8, 0xA4, 0x08, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x48, 0x9A, -0xFF, 0xF7, 0x1F, 0x6B, 0x40, 0xAA, 0x4C, 0xEB, -0x07, 0xD3, 0x8B, 0xA4, 0x30, 0xF0, 0x21, 0x6A, -0x52, 0xF4, 0x15, 0x4A, 0x0A, 0xD4, 0x00, 0x6B, -0x30, 0xF0, 0x20, 0x6C, 0x60, 0xF7, 0xE3, 0x43, -0xEC, 0x37, 0x2B, 0xF1, 0x18, 0x4C, 0x91, 0xE7, -0xE4, 0xA4, 0x01, 0x6C, 0xEC, 0xEC, 0x06, 0x24, -0x80, 0xA2, 0x08, 0x97, 0xEE, 0xEC, 0x02, 0x2C, -0x11, 0x6A, 0x59, 0x10, 0x01, 0x4B, 0x0A, 0x73, -0x08, 0x4A, 0xEA, 0x61, 0x00, 0x6A, 0x30, 0xF0, -0x20, 0x68, 0x60, 0xF7, 0x63, 0x42, 0x6C, 0x33, -0x2B, 0xF1, 0x18, 0x48, 0x0D, 0xE3, 0x64, 0xA3, -0x01, 0x6F, 0xFF, 0x6C, 0xEC, 0xEB, 0x22, 0x67, -0x8C, 0xEB, 0x8C, 0xE9, 0x40, 0x2B, 0xC0, 0x36, -0xD9, 0xE5, 0x09, 0xD3, 0xFF, 0xF7, 0x1F, 0x6A, -0x66, 0x67, 0x4C, 0xEB, 0x60, 0xF7, 0x03, 0x49, -0x83, 0x67, 0x2C, 0x31, 0x06, 0xD3, 0x05, 0xE1, -0x80, 0x18, 0x25, 0x70, 0x42, 0xD9, 0x32, 0x22, -0x9D, 0x67, 0xE7, 0x44, 0x19, 0x4F, 0x80, 0xA7, -0xFD, 0x67, 0x67, 0x47, 0x85, 0xC1, 0x11, 0x4B, -0xE0, 0xAB, 0x30, 0xF0, 0x20, 0x6E, 0x64, 0xF0, -0xD8, 0x9E, 0xE3, 0xC9, 0x0A, 0x93, 0x07, 0x94, -0x09, 0x97, 0x95, 0xE3, 0xBC, 0x35, 0xD5, 0xE5, -0x30, 0xF0, 0x20, 0x6E, 0x03, 0xF1, 0xD4, 0x9E, -0x30, 0xF0, 0x20, 0x6B, 0x04, 0xD7, 0x05, 0xD7, -0xE0, 0xF2, 0x78, 0x9B, 0x06, 0x97, 0x00, 0x6C, -0xD9, 0xE2, 0x40, 0xEB, 0x44, 0xA1, 0x01, 0x6B, -0x6D, 0xEA, 0x44, 0xC1, 0x07, 0xF3, 0x54, 0xA0, -0x02, 0x6B, 0x10, 0x4A, 0x6D, 0xEA, 0x07, 0xF3, -0x54, 0xC0, 0x00, 0x6A, 0x04, 0x10, 0x01, 0x4A, -0x0A, 0x72, 0xAD, 0x61, 0x0F, 0x6A, 0x0F, 0x97, -0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x68, 0xA4, 0x01, 0x6A, 0x89, 0xA4, 0x6C, 0xEA, -0x01, 0x72, 0xB8, 0x67, 0x04, 0xD5, 0x32, 0x2D, -0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x21, 0x69, -0x80, 0xF2, 0x48, 0x98, 0x52, 0xF4, 0x0C, 0x49, -0x91, 0x67, 0x08, 0x6E, 0x40, 0xEA, 0x80, 0xF2, -0x48, 0x98, 0x87, 0x41, 0x01, 0x4C, 0x00, 0x6D, -0x50, 0x6E, 0x40, 0xEA, 0x80, 0xF2, 0x48, 0x98, -0x87, 0x41, 0x51, 0x4C, 0x00, 0x6D, 0x08, 0x6E, -0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, 0x20, 0x69, -0x2B, 0xF1, 0x18, 0x49, 0x67, 0xF3, 0x54, 0xD9, -0x80, 0xF2, 0x48, 0x98, 0x30, 0xF0, 0x20, 0x6C, -0x6D, 0xF7, 0x14, 0x4C, 0x00, 0x6D, 0x00, 0xF2, -0x00, 0x6E, 0x40, 0xEA, 0x07, 0xF3, 0x74, 0xA1, -0x03, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x07, 0xF3, -0x54, 0xC1, 0x3C, 0x10, 0x02, 0x6A, 0x6C, 0xEA, -0x39, 0x22, 0x3E, 0x10, 0x30, 0xF0, 0x20, 0x68, -0x60, 0xF7, 0xA3, 0x42, 0xAC, 0x35, 0x2B, 0xF1, -0x18, 0x48, 0x15, 0xE5, 0xC4, 0xA5, 0x01, 0x6D, -0xFF, 0x69, 0xCC, 0xED, 0x4C, 0xE9, 0x26, 0x25, -0xA0, 0xA3, 0x8E, 0xED, 0x23, 0x2D, 0x60, 0xF7, -0x43, 0x41, 0x4C, 0x32, 0x09, 0xE2, 0x82, 0x9A, -0x80, 0x18, 0x4F, 0x70, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x21, 0x6B, 0x80, 0xF2, 0x48, 0x9A, -0x52, 0xF4, 0x14, 0x4B, 0x2C, 0x34, 0x91, 0xE3, -0x00, 0x6D, 0x08, 0x6E, 0x40, 0xEA, 0x07, 0xF3, -0x74, 0xA0, 0xF0, 0x6A, 0xFF, 0x6C, 0xF0, 0x4B, -0x6C, 0xEA, 0x8C, 0xEA, 0x07, 0xF3, 0x74, 0xC0, -0x09, 0x2A, 0xFD, 0x4A, 0x6C, 0xEA, 0x07, 0xF3, -0x54, 0xC0, 0x04, 0x10, 0x01, 0x4A, 0x0A, 0x72, -0x08, 0x4B, 0xC8, 0x61, 0x09, 0x97, 0x08, 0x91, -0x07, 0x90, 0x00, 0x6A, 0x05, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, 0x15, 0x4B, -0x00, 0x6A, 0xBC, 0x17, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0xEE, 0xF4, 0x14, 0x4C, -0x00, 0x6D, 0x18, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, -0x7C, 0xA2, 0x03, 0x6C, 0x8B, 0xEC, 0x8C, 0xEB, -0xA3, 0xF3, 0xB8, 0xA2, 0xA3, 0xF3, 0x7C, 0xC2, -0x02, 0x6B, 0x6B, 0xEB, 0xAC, 0xEB, 0x8C, 0xEB, -0xA3, 0xF3, 0x78, 0xC2, 0x00, 0x6B, 0xA3, 0xF3, -0x79, 0xC2, 0x0C, 0x6B, 0xA3, 0xF3, 0x7A, 0xC2, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFF, 0x6A, 0x4C, 0xEC, 0x01, 0x74, 0xAC, 0xEA, -0x09, 0x60, 0x03, 0x24, 0x02, 0x74, 0x0B, 0x60, -0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF7, -0x6C, 0x9B, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0xA4, 0xF1, 0x70, 0x9B, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0xA4, 0xF1, 0x74, 0x9B, 0x40, 0xC3, -0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, -0x01, 0x74, 0x0A, 0x60, 0x04, 0x24, 0x02, 0x74, -0x00, 0x6A, 0x13, 0x61, 0x0C, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF7, 0x4C, 0x9A, 0x04, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF1, 0x50, 0x9A, -0x40, 0xA2, 0x6C, 0xEA, 0x20, 0xE8, 0x30, 0xF0, -0x20, 0x6A, 0xA4, 0xF1, 0x54, 0x9A, 0x40, 0xA2, -0x6C, 0xEA, 0x20, 0xE8, 0xFF, 0x6B, 0x6C, 0xEC, -0x01, 0x74, 0x0A, 0x60, 0x04, 0x24, 0x02, 0x74, -0x00, 0x6A, 0x13, 0x61, 0x0C, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xA4, 0xF1, 0x58, 0x9A, 0x04, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF1, 0x5C, 0x9A, -0x40, 0xA2, 0x6C, 0xEA, 0x20, 0xE8, 0x30, 0xF0, -0x20, 0x6A, 0xC4, 0xF1, 0x40, 0x9A, 0x40, 0xA2, -0x6C, 0xEA, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, -0xA3, 0xF3, 0x5C, 0xA3, 0x01, 0x6C, 0x4C, 0xEC, -0x00, 0x6A, 0x04, 0x24, 0xA3, 0xF3, 0x9E, 0xA3, -0x80, 0x18, 0x11, 0x71, 0x05, 0x97, 0xFF, 0x6B, -0x5E, 0x32, 0x6C, 0xEA, 0x03, 0x63, 0x00, 0xEF, +0xC3, 0xF3, 0xB4, 0xA2, 0x0F, 0x6C, 0x1F, 0x6E, +0xA6, 0x33, 0x8C, 0xEB, 0x23, 0x67, 0x01, 0x4B, +0x8C, 0xEB, 0xCB, 0xEE, 0x64, 0x33, 0xCC, 0xED, +0x6D, 0xED, 0xC3, 0xF3, 0xB4, 0xC2, 0xC3, 0xF3, +0xB4, 0xA2, 0xC3, 0xF3, 0x76, 0xA2, 0xFF, 0x6F, +0xA6, 0x30, 0x0E, 0xEB, 0x8C, 0xEB, 0xEC, 0xEB, +0xEC, 0xE9, 0x04, 0x2B, 0x66, 0x67, 0xAC, 0xEB, +0xC3, 0xF3, 0x74, 0xC2, 0x30, 0xF0, 0x20, 0x68, +0x2B, 0xF1, 0x18, 0x48, 0xC3, 0xF3, 0x54, 0xA0, +0x46, 0x32, 0x28, 0xD2, 0x28, 0x94, 0x0F, 0x6A, +0x4C, 0xEC, 0x28, 0xD4, 0x00, 0x18, 0x5F, 0xDD, +0x28, 0x96, 0x30, 0xF0, 0x20, 0x6C, 0x69, 0xF6, +0x10, 0x4C, 0xCC, 0x35, 0x95, 0xE5, 0x40, 0xDD, +0x2C, 0x32, 0x61, 0xDD, 0x91, 0xE2, 0x40, 0x9C, +0x61, 0x9C, 0x6D, 0xEA, 0x29, 0x22, 0x60, 0x9D, +0x40, 0x9C, 0x01, 0xE1, 0x03, 0xF5, 0x84, 0xA0, +0x4B, 0xE3, 0xE0, 0xF3, 0x08, 0x6B, 0x78, 0xEC, +0x12, 0xEC, 0x43, 0xEC, 0x06, 0x60, 0x7B, 0xEA, +0x01, 0x2B, 0xE5, 0xE8, 0x12, 0xEB, 0x03, 0xF5, +0x64, 0xC0, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, +0x18, 0x4B, 0x6D, 0xE1, 0x03, 0xF5, 0xA2, 0xA3, +0x03, 0x2D, 0xE0, 0xF3, 0x08, 0x6C, 0x06, 0x10, +0xE0, 0xF3, 0x08, 0x6C, 0x98, 0xED, 0x12, 0xED, +0xA3, 0xEA, 0x06, 0x60, 0x9B, 0xEA, 0x01, 0x2C, +0xE5, 0xE8, 0x12, 0xEA, 0x03, 0xF5, 0x42, 0xC3, +0x28, 0x92, 0x0C, 0x6C, 0x30, 0xF0, 0x20, 0x68, +0x98, 0xEA, 0x2B, 0xF1, 0x18, 0x48, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x58, 0x9A, 0x0F, 0x6D, +0x12, 0xEC, 0x11, 0xE4, 0xC3, 0xF3, 0x7D, 0xA4, +0xC3, 0xF3, 0x9C, 0xA4, 0x6C, 0xED, 0x72, 0x36, +0x40, 0xEA, 0x80, 0x18, 0xF7, 0x52, 0xC3, 0xF3, +0x79, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, 0x0F, 0x22, +0x28, 0x92, 0x44, 0x6D, 0x30, 0xF0, 0x21, 0x6C, +0xB8, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xAE, 0xF6, +0x0C, 0x4A, 0x12, 0xF5, 0x08, 0x4C, 0x12, 0xED, +0xB5, 0xE2, 0x80, 0x18, 0x46, 0x58, 0x0C, 0x68, +0x0C, 0x04, 0x80, 0x18, 0xA5, 0x15, 0x18, 0xE9, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0xA3, 0xF3, 0x9C, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, -0x0A, 0x23, 0xA3, 0xF3, 0x98, 0xA2, 0x02, 0x6B, -0x6B, 0xEB, 0x8C, 0xEB, 0x03, 0x6C, 0x8B, 0xEC, -0x8C, 0xEB, 0xA3, 0xF3, 0x78, 0xC2, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0xA3, 0xF3, 0x9C, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, -0x0A, 0x23, 0xA3, 0xF3, 0x98, 0xA2, 0x02, 0x6B, -0x6B, 0xEB, 0x8C, 0xEB, 0x03, 0x6C, 0x8B, 0xEC, -0x8C, 0xEB, 0xA3, 0xF3, 0x78, 0xC2, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0xA3, 0xF3, 0x9C, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, -0x0A, 0x23, 0xA3, 0xF3, 0x98, 0xA2, 0x02, 0x6B, -0x6B, 0xEB, 0x8C, 0xEB, 0x03, 0x6C, 0x8B, 0xEC, -0x8C, 0xEB, 0xA3, 0xF3, 0x78, 0xC2, 0x20, 0xE8, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, -0x30, 0xF0, 0x20, 0x69, 0xFF, 0x6C, 0x6F, 0x6D, -0x1F, 0x6E, 0x2B, 0xF1, 0x18, 0x49, 0x40, 0xEA, -0xA3, 0xF3, 0x7C, 0xA1, 0x02, 0x6A, 0x6C, 0xEA, -0x0D, 0x22, 0xA3, 0xF3, 0x1E, 0xA1, 0x90, 0x67, -0x80, 0x18, 0x03, 0x71, 0xBF, 0x6D, 0x4C, 0xED, -0x90, 0x67, 0x80, 0x18, 0xF6, 0x70, 0x04, 0x6A, -0xA3, 0xF3, 0x59, 0xC1, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x69, 0x2B, 0xF1, 0x18, 0x49, -0xA3, 0xF3, 0x7C, 0xA1, 0x02, 0x6A, 0x6C, 0xEA, -0x0D, 0x22, 0xA3, 0xF3, 0x1E, 0xA1, 0x90, 0x67, -0x80, 0x18, 0x03, 0x71, 0xBF, 0x6D, 0x4C, 0xED, -0x90, 0x67, 0x80, 0x18, 0xF6, 0x70, 0x00, 0x6A, -0xA3, 0xF3, 0x59, 0xC1, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF2, 0x50, 0x9A, 0xFF, 0x6C, 0xA4, 0x67, -0x21, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x9C, 0xA2, -0x02, 0x6B, 0x8C, 0xEB, 0x03, 0x23, 0x03, 0x6B, -0xA3, 0xF3, 0x79, 0xC2, 0x05, 0x97, 0x03, 0x63, +0x02, 0x6B, 0x6B, 0xEB, 0x01, 0x6E, 0x12, 0xE9, +0x45, 0xE1, 0xE3, 0xF3, 0x83, 0xA1, 0x8C, 0xEB, +0xE3, 0xF3, 0x63, 0xC1, 0x28, 0x93, 0x18, 0xEB, +0x11, 0x6B, 0x6B, 0xEB, 0x12, 0xE8, 0x41, 0xE0, +0xE3, 0xF3, 0x83, 0xA0, 0xC3, 0xF3, 0xBF, 0xA0, +0x8C, 0xEB, 0x1F, 0x6C, 0x8C, 0xEB, 0xE3, 0xF3, +0x63, 0xC0, 0xB6, 0x33, 0xCC, 0xEB, 0xFF, 0x6C, +0xA0, 0xF0, 0x01, 0x2B, 0xC3, 0xF3, 0xD9, 0xA2, +0x20, 0x6B, 0xCC, 0xEB, 0x8C, 0xEB, 0x4D, 0x23, +0x07, 0x69, 0xAC, 0xE9, 0x8C, 0xE9, 0x32, 0x29, +0x10, 0x04, 0x00, 0x6D, 0x30, 0x6E, 0x00, 0x18, +0x3D, 0xD7, 0xE3, 0xF3, 0x44, 0xA8, 0x9D, 0x67, +0x40, 0xF0, 0x3A, 0xC4, 0x40, 0xF0, 0x58, 0xCC, +0x01, 0x6A, 0x4B, 0xEA, 0x40, 0xF0, 0x5B, 0xC4, +0xE3, 0xF3, 0x60, 0xA0, 0x0F, 0x6A, 0x6C, 0xEA, +0x40, 0xF0, 0x5C, 0xC4, 0x10, 0xF0, 0x32, 0x6A, +0x76, 0xF7, 0x1D, 0x4A, 0x10, 0xD2, 0x10, 0xF0, +0x24, 0x6A, 0xB5, 0xF7, 0x09, 0x4A, 0x11, 0xD2, +0x04, 0x04, 0x00, 0x6A, 0x14, 0x03, 0x05, 0x10, +0x59, 0xE3, 0xC0, 0xA6, 0x55, 0xE4, 0x01, 0x4A, +0xC0, 0xC5, 0x20, 0x5A, 0xF9, 0x61, 0x10, 0x94, +0x11, 0x95, 0x12, 0x96, 0x13, 0x97, 0x00, 0x18, +0x1A, 0xE5, 0x65, 0x10, 0x02, 0x6E, 0xCE, 0xE9, +0x62, 0x29, 0xC3, 0xF3, 0xC8, 0x9A, 0xC3, 0xF3, +0x44, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF5, +0x9C, 0x9B, 0x5B, 0xE6, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF3, 0x4C, 0x9A, 0xC2, 0x36, 0x04, 0xD1, +0x00, 0x6D, 0xCE, 0x36, 0x01, 0x6F, 0x40, 0xEA, +0x4E, 0x10, 0x07, 0x6A, 0xAC, 0xEA, 0x8C, 0xEA, +0x02, 0x22, 0x02, 0x72, 0x48, 0x61, 0x1C, 0x04, +0x30, 0x6E, 0x00, 0x6D, 0x00, 0x18, 0x3D, 0xD7, +0x28, 0x94, 0x0C, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x78, 0xEC, 0x2B, 0xF1, 0x18, 0x4A, 0xDD, 0x67, +0x04, 0x04, 0x12, 0xEB, 0x49, 0xE3, 0xE3, 0xF3, +0x64, 0xAA, 0x80, 0xF0, 0x68, 0xCE, 0x01, 0x6B, +0x6B, 0xEB, 0x80, 0xF0, 0x6B, 0xC6, 0xE3, 0xF3, +0x60, 0xA2, 0x0F, 0x6A, 0x6C, 0xEA, 0x80, 0xF0, +0x4C, 0xC6, 0x10, 0xF0, 0x32, 0x6A, 0x76, 0xF7, +0x1D, 0x4A, 0x1C, 0xD2, 0x10, 0xF0, 0x24, 0x6A, +0xB5, 0xF7, 0x09, 0x4A, 0x1D, 0xD2, 0x20, 0x03, +0x00, 0x6A, 0x05, 0x10, 0x59, 0xE3, 0xC0, 0xA6, +0x55, 0xE4, 0x01, 0x4A, 0xC0, 0xC5, 0x20, 0x5A, +0xF9, 0x61, 0x1C, 0x94, 0x1D, 0x95, 0x1E, 0x96, +0x1F, 0x97, 0x00, 0x18, 0x1A, 0xE5, 0x28, 0x94, +0x0C, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x78, 0xEC, +0x2B, 0xF1, 0x18, 0x4A, 0x12, 0xEB, 0x4D, 0xE3, +0xE3, 0xF3, 0x83, 0xA3, 0x10, 0x6A, 0x8D, 0xEA, +0x20, 0x4A, 0xE3, 0xF3, 0x43, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x28, 0x95, 0x80, 0xF5, 0x40, 0x9A, +0x01, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0x6B, 0x2B, 0xF1, 0x18, 0x4A, 0xC3, 0xF3, +0x78, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, +0x48, 0x9A, 0x00, 0x6C, 0x40, 0xEA, 0x01, 0x6B, +0x2D, 0x97, 0x2C, 0x91, 0x2B, 0x90, 0x43, 0x67, +0x17, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xC0, 0xF7, 0x11, 0x5D, +0x04, 0x67, 0x00, 0x6A, 0x39, 0x60, 0x82, 0xA4, +0xA4, 0xA0, 0x00, 0x18, 0x0A, 0xD3, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xA8, 0xC3, 0xA0, 0xA0, 0xF2, +0x54, 0x9A, 0x04, 0x6F, 0x01, 0x6D, 0x40, 0xEA, +0x22, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, +0x58, 0x9A, 0x82, 0xA0, 0xC4, 0xA0, 0xB1, 0x67, +0x40, 0xEA, 0x82, 0xA0, 0x00, 0x18, 0x6D, 0xD2, +0x30, 0xF0, 0x20, 0x6B, 0x0E, 0xF5, 0x6C, 0xA3, +0x0F, 0x6C, 0x66, 0x33, 0x8C, 0xEB, 0x34, 0x6C, +0x98, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0x4E, 0xF6, +0x00, 0x4C, 0x12, 0xEB, 0x6D, 0xE4, 0x04, 0x22, +0x86, 0x9B, 0x01, 0x4C, 0x86, 0xDB, 0x03, 0x10, +0x80, 0x9B, 0x01, 0x4C, 0x80, 0xDB, 0xA2, 0x67, +0x91, 0x67, 0x00, 0x18, 0x8B, 0xF0, 0xA4, 0xA0, +0x91, 0x67, 0x00, 0x18, 0x9A, 0xF0, 0x01, 0x6A, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xE4, 0xF0, 0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0x2B, 0xF1, 0x18, 0x4B, 0x80, 0xA2, 0xE7, 0xF1, +0xD4, 0xA3, 0xE7, 0xF1, 0x9C, 0xC3, 0xA0, 0xAA, +0x01, 0xF0, 0x00, 0x6C, 0xAC, 0xEC, 0x83, 0x35, +0x03, 0x6C, 0xAE, 0x35, 0x8B, 0xEC, 0xA4, 0x35, +0xCC, 0xEC, 0xAD, 0xEC, 0xE7, 0xF1, 0x94, 0xC3, +0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF1, 0x9C, 0x9C, +0xA0, 0xAC, 0xE7, 0xF1, 0xBE, 0xCB, 0xA0, 0xAA, +0xBF, 0xF7, 0x1F, 0x6B, 0xAC, 0xEB, 0x60, 0xCA, +0xA0, 0xAA, 0x7F, 0xF7, 0x1F, 0x6B, 0xAC, 0xEB, +0x60, 0xCA, 0xC0, 0xAA, 0xFE, 0xF7, 0x1F, 0x6B, +0xFF, 0xF7, 0x1F, 0x6D, 0xCC, 0xEB, 0x60, 0xCA, +0x40, 0xAC, 0xFF, 0x6B, 0x21, 0x4B, 0xAC, 0xEA, +0x6D, 0xEA, 0xAC, 0xEA, 0x40, 0xCC, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE7, 0xF1, 0x9C, 0xA2, +0xE4, 0xF0, 0x6C, 0x9B, 0x01, 0x6E, 0x80, 0xC3, +0x30, 0xF0, 0x20, 0x6C, 0xE7, 0xF1, 0xBE, 0xAA, +0x44, 0xF1, 0x9C, 0x9C, 0xA0, 0xCC, 0xE7, 0xF1, +0x54, 0xA2, 0x80, 0xAB, 0xFF, 0xF7, 0x1F, 0x6D, +0x46, 0x32, 0xCC, 0xEA, 0xAC, 0xEC, 0x40, 0x32, +0xFE, 0xF7, 0x1E, 0x4E, 0x4C, 0x32, 0xCC, 0xEC, +0x8D, 0xEA, 0xAC, 0xEA, 0x40, 0xCB, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x07, 0xF3, +0x90, 0xA2, 0x01, 0x6B, 0x00, 0x68, 0x8D, 0xEB, +0x07, 0xF3, 0x70, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x48, 0x9A, 0x90, 0x67, 0x04, 0x05, +0x40, 0xEA, 0x01, 0x72, 0x0E, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF6, 0x40, 0x9A, 0x9D, 0x67, +0x70, 0xA4, 0x09, 0xE2, 0x01, 0x48, 0x00, 0xF2, +0x00, 0x70, 0x60, 0xC2, 0xEB, 0x61, 0x00, 0x6A, +0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0x07, 0xF3, 0x90, 0xA2, 0x02, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0x07, 0xF3, 0x70, 0xC2, +0x03, 0x6A, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x6D, 0xF7, 0x14, 0x4A, 0x03, 0x6B, 0x4C, 0xEB, +0x03, 0x2B, 0x00, 0xF2, 0x00, 0x6C, 0x09, 0x10, +0x04, 0x6B, 0x03, 0x4A, 0x6B, 0xEB, 0x30, 0xF0, +0x20, 0x6C, 0x6C, 0xEA, 0x6E, 0xF1, 0x14, 0x4C, +0x53, 0xE4, 0xF8, 0x4C, 0x04, 0x6E, 0xCB, 0xEE, +0x30, 0xF0, 0x20, 0x6B, 0x91, 0xE2, 0x2B, 0xF1, +0x18, 0x4B, 0x00, 0x6D, 0xCC, 0xEC, 0x67, 0xF3, +0x90, 0xDB, 0x67, 0xF3, 0xAC, 0xDB, 0x67, 0xF3, +0x48, 0xDB, 0xA1, 0xDC, 0x67, 0xF3, 0xD0, 0x9B, +0x53, 0xE4, 0xA0, 0xDE, 0x81, 0xDA, 0x67, 0xF3, +0xB0, 0x9B, 0xA0, 0xDA, 0x07, 0xF3, 0x94, 0xDB, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x21, 0x6A, +0xB2, 0xF4, 0x00, 0x4A, 0x01, 0x10, 0x43, 0x67, +0x60, 0x9A, 0x83, 0xEB, 0xFC, 0x61, 0x61, 0x9A, +0x75, 0xE2, 0x8E, 0xED, 0x04, 0x2D, 0x81, 0x9C, +0x8D, 0xE3, 0x61, 0xDA, 0x82, 0x67, 0xC1, 0x9C, +0x60, 0x9A, 0xD5, 0xE4, 0x6E, 0xED, 0x0E, 0x2D, +0x30, 0xF0, 0x21, 0x6D, 0xB2, 0xF4, 0xA8, 0x9D, +0xAA, 0xEB, 0x06, 0x60, 0x61, 0x9B, 0x79, 0xE6, +0xC1, 0xDC, 0x60, 0x9A, 0x60, 0x9B, 0x02, 0x10, +0xA0, 0xDC, 0x01, 0x10, 0x60, 0xDC, 0x8A, 0xEA, +0x01, 0x60, 0x80, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x21, 0x6A, 0xB2, 0xF4, 0x48, 0x9A, +0x04, 0x67, 0x02, 0x2A, 0x80, 0x18, 0x4D, 0x6E, +0x41, 0x20, 0x47, 0x40, 0x01, 0x4A, 0x03, 0x6B, +0x4C, 0xEB, 0x04, 0x23, 0x04, 0x6B, 0x6B, 0xEB, +0x4C, 0xEB, 0x44, 0x43, 0x37, 0x22, 0x30, 0xF0, +0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x07, 0xF3, +0x94, 0x9B, 0x43, 0xEC, 0x2F, 0x61, 0x67, 0xF3, +0x08, 0x9B, 0x30, 0xF0, 0x21, 0x6B, 0xB2, 0xF4, +0x00, 0x4B, 0x02, 0x10, 0x70, 0x67, 0x04, 0x67, +0x81, 0x98, 0x43, 0xEC, 0x02, 0x60, 0x80, 0x98, +0xF9, 0x2C, 0x30, 0xF0, 0x21, 0x6C, 0xB2, 0xF4, +0x88, 0x9C, 0x0E, 0xEC, 0x1B, 0x24, 0x80, 0x98, +0x20, 0x9B, 0x80, 0xDB, 0x61, 0x98, 0x4F, 0xE3, +0x11, 0x5B, 0x05, 0x61, 0x51, 0xE0, 0x61, 0xDC, +0x41, 0xD8, 0x80, 0x18, 0x65, 0x6E, 0x30, 0xF0, +0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x07, 0xF3, +0xB4, 0x9B, 0x81, 0x98, 0x47, 0x41, 0x01, 0x4A, +0x93, 0xE5, 0x07, 0xF3, 0x94, 0xDB, 0x00, 0x6B, +0x60, 0xD8, 0x01, 0x10, 0x00, 0x6A, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x0F, 0x24, 0xF8, 0x4C, +0x40, 0x9C, 0x0C, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0xA1, 0x9C, 0x07, 0xF3, +0x74, 0x9A, 0x6D, 0xE5, 0x07, 0xF3, 0x74, 0xDA, +0x80, 0x18, 0x65, 0x6E, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, +0x0E, 0xD1, 0x0D, 0xD0, 0x4A, 0xA4, 0xC9, 0xA4, +0xA8, 0xA4, 0x08, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF2, 0x4C, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, +0x40, 0xAA, 0x4C, 0xEB, 0x07, 0xD3, 0x8B, 0xA4, +0x30, 0xF0, 0x21, 0x6A, 0x52, 0xF4, 0x11, 0x4A, +0x0A, 0xD4, 0x00, 0x6B, 0x30, 0xF0, 0x20, 0x6C, +0x60, 0xF7, 0xE2, 0x43, 0xEC, 0x37, 0x2B, 0xF1, +0x18, 0x4C, 0x91, 0xE7, 0xE8, 0xA4, 0x01, 0x6C, +0xEC, 0xEC, 0x06, 0x24, 0x80, 0xA2, 0x08, 0x97, +0xEE, 0xEC, 0x02, 0x2C, 0x11, 0x6A, 0x59, 0x10, +0x01, 0x4B, 0x0A, 0x73, 0x08, 0x4A, 0xEA, 0x61, +0x00, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0x60, 0xF7, +0x62, 0x42, 0x6C, 0x33, 0x2B, 0xF1, 0x18, 0x48, +0x0D, 0xE3, 0x68, 0xA3, 0x01, 0x6F, 0xFF, 0x6C, +0xEC, 0xEB, 0x22, 0x67, 0x8C, 0xEB, 0x8C, 0xE9, +0x40, 0x2B, 0xC0, 0x36, 0xD9, 0xE5, 0x09, 0xD3, +0xFF, 0xF7, 0x1F, 0x6A, 0x66, 0x67, 0x4C, 0xEB, +0x60, 0xF7, 0x02, 0x49, 0x83, 0x67, 0x2C, 0x31, +0x06, 0xD3, 0x05, 0xE1, 0x80, 0x18, 0x7A, 0x6E, +0x43, 0xD9, 0x32, 0x22, 0x9D, 0x67, 0xE7, 0x44, +0x19, 0x4F, 0x80, 0xA7, 0xFD, 0x67, 0x67, 0x47, +0x89, 0xC1, 0x11, 0x4B, 0xE0, 0xAB, 0x30, 0xF0, +0x20, 0x6E, 0x64, 0xF0, 0xDC, 0x9E, 0xE5, 0xC9, +0x0A, 0x93, 0x07, 0x94, 0x09, 0x97, 0x95, 0xE3, +0xBC, 0x35, 0xD5, 0xE5, 0x30, 0xF0, 0x20, 0x6E, +0x03, 0xF1, 0xD8, 0x9E, 0x30, 0xF0, 0x20, 0x6B, +0x04, 0xD7, 0x05, 0xD7, 0xE0, 0xF2, 0x78, 0x9B, +0x06, 0x97, 0x00, 0x6C, 0xD9, 0xE2, 0x40, 0xEB, +0x48, 0xA1, 0x01, 0x6B, 0x6D, 0xEA, 0x48, 0xC1, +0x07, 0xF3, 0x50, 0xA0, 0x02, 0x6B, 0x10, 0x4A, +0x6D, 0xEA, 0x07, 0xF3, 0x50, 0xC0, 0x00, 0x6A, +0x04, 0x10, 0x01, 0x4A, 0x0A, 0x72, 0xAD, 0x61, +0x0F, 0x6A, 0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, +0x08, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x68, 0xA4, 0x01, 0x6A, +0x89, 0xA4, 0x6C, 0xEA, 0x01, 0x72, 0xB8, 0x67, +0x04, 0xD5, 0x32, 0x2D, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x21, 0x69, 0x80, 0xF2, 0x48, 0x98, +0x52, 0xF4, 0x08, 0x49, 0x91, 0x67, 0x08, 0x6E, +0x40, 0xEA, 0x80, 0xF2, 0x48, 0x98, 0x87, 0x41, +0x01, 0x4C, 0x00, 0x6D, 0x50, 0x6E, 0x40, 0xEA, +0x80, 0xF2, 0x48, 0x98, 0x87, 0x41, 0x51, 0x4C, +0x00, 0x6D, 0x08, 0x6E, 0x40, 0xEA, 0x04, 0x92, +0x30, 0xF0, 0x20, 0x69, 0x2B, 0xF1, 0x18, 0x49, +0x67, 0xF3, 0x50, 0xD9, 0x80, 0xF2, 0x48, 0x98, +0x30, 0xF0, 0x20, 0x6C, 0x6D, 0xF7, 0x14, 0x4C, +0x00, 0x6D, 0x00, 0xF2, 0x00, 0x6E, 0x40, 0xEA, +0x07, 0xF3, 0x70, 0xA1, 0x03, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x07, 0xF3, 0x50, 0xC1, 0x3C, 0x10, +0x02, 0x6A, 0x6C, 0xEA, 0x39, 0x22, 0x3E, 0x10, +0x30, 0xF0, 0x20, 0x68, 0x60, 0xF7, 0xA2, 0x42, +0xAC, 0x35, 0x2B, 0xF1, 0x18, 0x48, 0x15, 0xE5, +0xC8, 0xA5, 0x01, 0x6D, 0xFF, 0x69, 0xCC, 0xED, +0x4C, 0xE9, 0x26, 0x25, 0xA0, 0xA3, 0x8E, 0xED, +0x23, 0x2D, 0x60, 0xF7, 0x42, 0x41, 0x4C, 0x32, +0x09, 0xE2, 0x83, 0x9A, 0x80, 0x18, 0xA4, 0x6E, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x21, 0x6B, +0x80, 0xF2, 0x48, 0x9A, 0x52, 0xF4, 0x10, 0x4B, +0x2C, 0x34, 0x91, 0xE3, 0x00, 0x6D, 0x08, 0x6E, +0x40, 0xEA, 0x07, 0xF3, 0x70, 0xA0, 0xF0, 0x6A, +0xFF, 0x6C, 0xF0, 0x4B, 0x6C, 0xEA, 0x8C, 0xEA, +0x07, 0xF3, 0x70, 0xC0, 0x09, 0x2A, 0xFD, 0x4A, +0x6C, 0xEA, 0x07, 0xF3, 0x50, 0xC0, 0x04, 0x10, +0x01, 0x4A, 0x0A, 0x72, 0x08, 0x4B, 0xC8, 0x61, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x00, 0x6A, +0x05, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x21, 0x6B, +0x52, 0xF4, 0x11, 0x4B, 0x00, 0x6A, 0xBC, 0x17, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x48, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xEE, 0xF4, 0x14, 0x4C, 0x00, 0x6D, 0x18, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0xA3, 0xF3, 0x7C, 0xA2, 0x03, 0x6C, +0x8B, 0xEC, 0x8C, 0xEB, 0xA3, 0xF3, 0xB8, 0xA2, +0xA3, 0xF3, 0x7C, 0xC2, 0x02, 0x6B, 0x6B, 0xEB, +0xAC, 0xEB, 0x8C, 0xEB, 0xA3, 0xF3, 0x78, 0xC2, +0x00, 0x6B, 0xA3, 0xF3, 0x79, 0xC2, 0x0C, 0x6B, +0xA3, 0xF3, 0x7A, 0xC2, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, +0x01, 0x74, 0xAC, 0xEA, 0x09, 0x60, 0x03, 0x24, +0x02, 0x74, 0x0B, 0x60, 0x20, 0xE8, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF7, 0x78, 0x9B, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xA4, 0xF1, 0x74, 0x9B, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xA4, 0xF1, +0x78, 0x9B, 0x40, 0xC3, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6B, 0x6C, 0xEC, 0x01, 0x74, 0x0A, 0x60, +0x04, 0x24, 0x02, 0x74, 0x00, 0x6A, 0x13, 0x61, +0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, +0x58, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA4, 0xF1, 0x54, 0x9A, 0x40, 0xA2, 0x6C, 0xEA, +0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF1, +0x58, 0x9A, 0x40, 0xA2, 0x6C, 0xEA, 0x20, 0xE8, +0xFF, 0x6B, 0x6C, 0xEC, 0x01, 0x74, 0x0A, 0x60, +0x04, 0x24, 0x02, 0x74, 0x00, 0x6A, 0x13, 0x61, +0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF1, +0x5C, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xC4, 0xF1, 0x40, 0x9A, 0x40, 0xA2, 0x6C, 0xEA, +0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF1, +0x44, 0x9A, 0x40, 0xA2, 0x6C, 0xEA, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0x2B, 0xF1, 0x18, 0x4B, 0xA3, 0xF3, 0x5C, 0xA3, +0x01, 0x6C, 0x4C, 0xEC, 0x00, 0x6A, 0x04, 0x24, +0xA3, 0xF3, 0x9E, 0xA3, 0x80, 0x18, 0x66, 0x6F, +0x05, 0x97, 0xFF, 0x6B, 0x5E, 0x32, 0x6C, 0xEA, +0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x9C, 0xA2, -0x02, 0x6B, 0x8C, 0xEB, 0x03, 0x23, 0x01, 0x6B, -0xA3, 0xF3, 0x79, 0xC2, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0x79, 0x71, -0x80, 0x18, 0x48, 0x71, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x80, 0x18, 0x79, 0x71, 0x80, 0x18, 0x6C, 0x71, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, -0x00, 0x6D, 0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6C, -0xC5, 0x67, 0x2B, 0xF1, 0x18, 0x48, 0x40, 0xEA, -0xA3, 0xF3, 0x7C, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, -0x0F, 0x22, 0xA3, 0xF3, 0x3E, 0xA0, 0x91, 0x67, -0x80, 0x18, 0x03, 0x71, 0x40, 0x6B, 0x4D, 0xEB, -0xFF, 0x6D, 0x91, 0x67, 0x6C, 0xED, 0x80, 0x18, -0xF6, 0x70, 0x01, 0x6A, 0xA3, 0xF3, 0x59, 0xC0, +0x01, 0x6B, 0x8C, 0xEB, 0x0A, 0x23, 0xA3, 0xF3, +0x98, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x03, 0x6C, 0x8B, 0xEC, 0x8C, 0xEB, 0xA3, 0xF3, +0x78, 0xC2, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x9C, 0xA2, +0x01, 0x6B, 0x8C, 0xEB, 0x0A, 0x23, 0xA3, 0xF3, +0x98, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x03, 0x6C, 0x8B, 0xEC, 0x8C, 0xEB, 0xA3, 0xF3, +0x78, 0xC2, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x9C, 0xA2, +0x01, 0x6B, 0x8C, 0xEB, 0x0A, 0x23, 0xA3, 0xF3, +0x98, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x03, 0x6C, 0x8B, 0xEC, 0x8C, 0xEB, 0xA3, 0xF3, +0x78, 0xC2, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x30, 0xF0, 0x20, 0x69, +0xFF, 0x6C, 0x6F, 0x6D, 0x1F, 0x6E, 0x2B, 0xF1, +0x18, 0x49, 0x40, 0xEA, 0xA3, 0xF3, 0x7C, 0xA1, +0x02, 0x6A, 0x6C, 0xEA, 0x0D, 0x22, 0xA3, 0xF3, +0x1E, 0xA1, 0x90, 0x67, 0x80, 0x18, 0x58, 0x6F, +0xBF, 0x6D, 0x4C, 0xED, 0x90, 0x67, 0x80, 0x18, +0x4B, 0x6F, 0x04, 0x6A, 0xA3, 0xF3, 0x59, 0xC1, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x80, 0x18, 0x8A, 0x71, 0x80, 0x18, 0x5C, 0x71, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, -0xFF, 0x6C, 0x30, 0xF0, 0x20, 0x68, 0xA4, 0x67, -0x22, 0x6E, 0x2B, 0xF1, 0x18, 0x48, 0x40, 0xEA, -0xA3, 0xF3, 0x7C, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, -0x0F, 0x22, 0xA3, 0xF3, 0x3E, 0xA0, 0x91, 0x67, -0x80, 0x18, 0x03, 0x71, 0x40, 0x6B, 0x4D, 0xEB, -0xFF, 0x6D, 0x91, 0x67, 0x6C, 0xED, 0x80, 0x18, -0xF6, 0x70, 0x03, 0x6A, 0xA3, 0xF3, 0x59, 0xC0, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0x2B, 0xF1, 0x18, 0x49, 0xA3, 0xF3, 0x7C, 0xA1, +0x02, 0x6A, 0x6C, 0xEA, 0x0D, 0x22, 0xA3, 0xF3, +0x1E, 0xA1, 0x90, 0x67, 0x80, 0x18, 0x58, 0x6F, +0xBF, 0x6D, 0x4C, 0xED, 0x90, 0x67, 0x80, 0x18, +0x4B, 0x6F, 0x00, 0x6A, 0xA3, 0xF3, 0x59, 0xC1, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, -0x00, 0x6D, 0xFF, 0x6C, 0xC5, 0x67, 0x40, 0xEA, +0xFF, 0x6C, 0xA4, 0x67, 0x21, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0xA3, 0xF3, 0x9C, 0xA2, 0x02, 0x6B, 0x8C, 0xEB, +0x03, 0x23, 0x03, 0x6B, 0xA3, 0xF3, 0x79, 0xC2, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x9C, 0xA2, 0x02, 0x6B, 0x8C, 0xEB, 0x03, 0x23, 0x01, 0x6B, 0xA3, 0xF3, 0x79, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0xCE, 0x6F, 0x80, 0x18, 0x9D, 0x6F, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xB9, 0x71, -0x80, 0x18, 0x5C, 0x71, 0x05, 0x97, 0x03, 0x63, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xCE, 0x6F, +0x80, 0x18, 0xC1, 0x6F, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF2, 0x50, 0x9A, 0x30, 0xF0, 0x20, 0x69, -0xFF, 0x6C, 0x6F, 0x6D, 0x25, 0x6E, 0x2B, 0xF1, -0x18, 0x49, 0x40, 0xEA, 0xA3, 0xF3, 0x7C, 0xA1, -0x02, 0x6A, 0x6C, 0xEA, 0x0D, 0x22, 0xA3, 0xF3, -0x1E, 0xA1, 0x90, 0x67, 0x80, 0x18, 0x03, 0x71, -0xBF, 0x6D, 0x4C, 0xED, 0x90, 0x67, 0x80, 0x18, -0xF6, 0x70, 0x04, 0x6A, 0xA3, 0xF3, 0x59, 0xC1, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, -0x2B, 0xF1, 0x18, 0x4B, 0xA3, 0xF3, 0x5C, 0xA3, -0x01, 0x6C, 0x4C, 0xEC, 0x01, 0x6A, 0x06, 0x24, -0xA3, 0xF3, 0x59, 0xA3, 0x02, 0x6B, 0x6E, 0xEA, -0x01, 0x5A, 0x58, 0x67, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF4, 0x55, 0xA2, -0x05, 0x5A, 0xE0, 0xF0, 0x0C, 0x60, 0x30, 0xF0, -0x20, 0x6B, 0x48, 0x32, 0x83, 0xF0, 0x18, 0x4B, -0x4D, 0xE3, 0x40, 0x9B, 0x00, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0xA3, 0xF3, -0x9C, 0xA3, 0x04, 0x6A, 0xFF, 0x6D, 0x8C, 0xEA, -0x19, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF7, -0x88, 0x9A, 0x02, 0x6E, 0x40, 0xA4, 0xAC, 0xEA, -0xCD, 0xEA, 0xAC, 0xEA, 0x40, 0xC4, 0x30, 0xF0, -0x20, 0x6A, 0x04, 0xF1, 0x80, 0x9A, 0xF8, 0x6A, -0xA0, 0xA4, 0xAC, 0xEA, 0x40, 0xC4, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF3, 0x60, 0xA3, 0xC4, 0xF1, -0x44, 0x9A, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF7, 0x68, 0x9A, 0x83, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0xA3, 0xF3, -0xBC, 0xA3, 0x04, 0x6A, 0xFF, 0x6C, 0xAC, 0xEA, -0x1D, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF1, -0xA8, 0x9A, 0x02, 0x6E, 0x40, 0xA5, 0x8C, 0xEA, -0xCD, 0xEA, 0x8C, 0xEA, 0x40, 0xC5, 0x30, 0xF0, -0x20, 0x6A, 0x04, 0xF1, 0xA0, 0x9A, 0xF6, 0x4E, -0x40, 0xA5, 0x8C, 0xEA, 0xCC, 0xEA, 0x01, 0x6E, -0xCD, 0xEA, 0x8C, 0xEA, 0x40, 0xC5, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF3, 0x60, 0xA3, 0xC4, 0xF1, -0x44, 0x9A, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0xC4, 0xF1, 0x68, 0x9A, 0x57, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0xA3, 0xF3, -0xBC, 0xA3, 0x04, 0x6A, 0xFF, 0x6C, 0xAC, 0xEA, -0x1D, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF1, -0xAC, 0x9A, 0x02, 0x6E, 0x08, 0x6F, 0x40, 0xA5, -0xEB, 0xEF, 0x8C, 0xEA, 0xCD, 0xEA, 0x8C, 0xEA, -0x40, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF1, -0xA0, 0x9A, 0x40, 0xA5, 0x8C, 0xEA, 0xEC, 0xEA, -0xCD, 0xEA, 0x8C, 0xEA, 0x40, 0xC5, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF3, 0x60, 0xA3, 0xC4, 0xF1, -0x44, 0x9A, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0xC4, 0xF1, 0x6C, 0x9A, 0x2B, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0xA3, 0xF3, -0xBC, 0xA3, 0x04, 0x6A, 0xFF, 0x6C, 0xAC, 0xEA, -0x1D, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF1, -0xB0, 0x9A, 0x02, 0x6E, 0x40, 0xA5, 0x8C, 0xEA, -0xCD, 0xEA, 0x8C, 0xEA, 0x40, 0xC5, 0x30, 0xF0, -0x20, 0x6A, 0x04, 0xF1, 0xA0, 0x9A, 0xF6, 0x4E, -0x40, 0xA5, 0x8C, 0xEA, 0xCC, 0xEA, 0x03, 0x6E, -0xCD, 0xEA, 0x8C, 0xEA, 0x40, 0xC5, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF3, 0x60, 0xA3, 0xC4, 0xF1, -0x44, 0x9A, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0xC4, 0xF1, 0x70, 0x9A, 0x40, 0xA3, 0xFF, 0x6C, -0x01, 0x6D, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, -0x40, 0xC3, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, -0x2B, 0xF1, 0x18, 0x4B, 0xA3, 0xF3, 0x5C, 0xA3, -0x04, 0x6E, 0xFF, 0x6C, 0xCC, 0xEA, 0x1C, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF1, 0xB4, 0x9A, -0x02, 0x6F, 0x40, 0xA5, 0x8C, 0xEA, 0xED, 0xEA, -0x8C, 0xEA, 0x40, 0xC5, 0x30, 0xF0, 0x20, 0x6A, -0x04, 0xF1, 0xA0, 0x9A, 0xF6, 0x4F, 0x40, 0xA5, -0x8C, 0xEA, 0xEC, 0xEA, 0xCD, 0xEA, 0x8C, 0xEA, -0x40, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, -0x60, 0xA3, 0xC4, 0xF1, 0x44, 0x9A, 0x60, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF1, 0x74, 0x9A, -0xFF, 0x6C, 0x01, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, -0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0xA3, 0xF3, 0x9C, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, -0x06, 0x23, 0xA3, 0xF3, 0x98, 0xA2, 0x02, 0x6B, -0x8D, 0xEB, 0xA3, 0xF3, 0x78, 0xC2, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6D, 0x2B, 0xF1, 0x18, 0x4D, -0xA3, 0xF3, 0xDC, 0xA5, 0x02, 0x6B, 0xFF, 0x6A, -0xCC, 0xEB, 0x4C, 0xEB, 0x4C, 0xEC, 0x02, 0x2B, -0xA3, 0xF3, 0x9A, 0xC5, 0x20, 0xE8, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, -0xA0, 0xF0, 0x7B, 0xA0, 0x7F, 0x6A, 0xFF, 0x69, -0x6C, 0xEA, 0x02, 0x72, 0x16, 0x60, 0xA0, 0xF0, -0x7C, 0xA0, 0x10, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, -0x2C, 0xEA, 0x0F, 0x22, 0x00, 0x18, 0xB6, 0xC6, -0x0C, 0x2A, 0xA3, 0xF3, 0x7C, 0xA0, 0x01, 0x6A, -0x6C, 0xEA, 0x2C, 0xEA, 0x06, 0x22, 0xA3, 0xF3, -0xDD, 0xA0, 0x0C, 0x6C, 0x00, 0x6D, 0x00, 0x18, -0xD3, 0xCE, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0xA3, 0xF3, 0x9C, 0xA2, 0x01, 0x6B, 0x6C, 0xEC, -0x16, 0x24, 0xA3, 0xF3, 0xDC, 0xA2, 0xA3, 0xF3, -0xBA, 0xA2, 0xDA, 0x34, 0x6C, 0xEC, 0x0D, 0x24, -0x02, 0x75, 0x0F, 0x60, 0xCC, 0xEB, 0xFF, 0x6C, -0x8C, 0xEB, 0x09, 0x23, 0xA3, 0xF3, 0xDD, 0xA2, -0x02, 0x6C, 0x01, 0x6D, 0x00, 0x18, 0xD3, 0xCE, -0x02, 0x10, 0x02, 0x75, 0x02, 0x60, 0x80, 0x18, -0x72, 0x72, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, -0x24, 0x67, 0xA3, 0xF3, 0x9C, 0xA3, 0x01, 0x6D, -0xFF, 0x6A, 0xAC, 0xEC, 0x4C, 0xEC, 0x4C, 0xE9, -0x00, 0x68, 0x05, 0x24, 0xA3, 0xF3, 0x1C, 0xA3, -0x1A, 0x30, 0xAC, 0xE8, 0x4C, 0xE8, 0x80, 0x18, -0x1F, 0x71, 0x01, 0x72, 0x13, 0x61, 0x12, 0x28, -0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, -0xA3, 0xF3, 0x5C, 0xA3, 0x01, 0x6C, 0x4C, 0xEC, -0x01, 0x6A, 0x09, 0x24, 0xA3, 0xF3, 0xDD, 0xA3, -0xA2, 0x67, 0x91, 0x67, 0x00, 0x18, 0xD3, 0xCE, -0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, 0x30, 0xF0, +0x20, 0x68, 0xFF, 0x6C, 0xC5, 0x67, 0x2B, 0xF1, +0x18, 0x48, 0x40, 0xEA, 0xA3, 0xF3, 0x7C, 0xA0, +0x02, 0x6A, 0x6C, 0xEA, 0x0F, 0x22, 0xA3, 0xF3, +0x3E, 0xA0, 0x91, 0x67, 0x80, 0x18, 0x58, 0x6F, +0x40, 0x6B, 0x4D, 0xEB, 0xFF, 0x6D, 0x91, 0x67, +0x6C, 0xED, 0x80, 0x18, 0x4B, 0x6F, 0x01, 0x6A, +0xA3, 0xF3, 0x59, 0xC0, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xDF, 0x6F, +0x80, 0x18, 0xB1, 0x6F, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0xFF, 0x6C, 0x30, 0xF0, +0x20, 0x68, 0xA4, 0x67, 0x22, 0x6E, 0x2B, 0xF1, +0x18, 0x48, 0x40, 0xEA, 0xA3, 0xF3, 0x7C, 0xA0, +0x02, 0x6A, 0x6C, 0xEA, 0x0F, 0x22, 0xA3, 0xF3, +0x3E, 0xA0, 0x91, 0x67, 0x80, 0x18, 0x58, 0x6F, +0x40, 0x6B, 0x4D, 0xEB, 0xFF, 0x6D, 0x91, 0x67, +0x6C, 0xED, 0x80, 0x18, 0x4B, 0x6F, 0x03, 0x6A, +0xA3, 0xF3, 0x59, 0xC0, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x7C, 0xA2, -0x01, 0x6C, 0xA4, 0x67, 0x6C, 0xED, 0x0C, 0x25, -0xA3, 0xF3, 0xB8, 0xA2, 0xAD, 0xEC, 0xA3, 0xF3, -0x98, 0xC2, 0x02, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, -0x6C, 0xEA, 0x02, 0x22, 0x80, 0x18, 0xE6, 0x40, +0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, 0xFF, 0x6C, +0xC5, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x9C, 0xA2, +0x02, 0x6B, 0x8C, 0xEB, 0x03, 0x23, 0x01, 0x6B, +0xA3, 0xF3, 0x79, 0xC2, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0x0E, 0x70, 0x80, 0x18, 0xB1, 0x6F, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x69, 0x2B, 0xF1, 0x18, 0x49, -0xA3, 0xF3, 0x5E, 0xA1, 0xFF, 0x68, 0x8C, 0xE8, -0x01, 0x72, 0x31, 0x60, 0x03, 0x22, 0x02, 0x72, -0x5F, 0x60, 0xC2, 0x10, 0x01, 0x6C, 0xC0, 0x6D, -0x80, 0x18, 0x51, 0x78, 0x20, 0x6A, 0xA3, 0xF3, -0x7C, 0xA1, 0x4D, 0xE8, 0xFF, 0x6A, 0x4C, 0xE8, -0x04, 0x6A, 0x6C, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, -0x0B, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF7, -0x44, 0x9A, 0x10, 0xF0, 0x00, 0x6D, 0x60, 0xA2, -0x8C, 0xEB, 0x60, 0xC2, 0x01, 0x6C, 0x5F, 0x10, -0x02, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, -0x0A, 0x22, 0xA3, 0xF3, 0x78, 0xA1, 0x02, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0x03, 0x6B, 0x6B, 0xEB, -0x6C, 0xEA, 0xA3, 0xF3, 0x58, 0xC1, 0x01, 0x6C, -0x10, 0xF0, 0x00, 0x6D, 0x63, 0x10, 0x01, 0x6C, -0x00, 0xF3, 0x00, 0x6D, 0x80, 0x18, 0x51, 0x78, -0xA3, 0xF3, 0x7C, 0xA1, 0x20, 0x6A, 0x4D, 0xE8, -0x04, 0x6A, 0xFF, 0x6C, 0x6C, 0xEA, 0x8C, 0xEA, -0x8C, 0xE8, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF7, 0x44, 0x9A, 0x60, 0xA2, 0x8C, 0xEB, -0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x01, 0x6C, -0xA3, 0xF1, 0xB8, 0x9A, 0x30, 0x10, 0x02, 0x6A, -0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x0A, 0x22, -0xA3, 0xF3, 0x78, 0xA1, 0x02, 0x6A, 0x4B, 0xEA, -0x6C, 0xEA, 0x03, 0x6B, 0x6B, 0xEB, 0x6C, 0xEA, -0xA3, 0xF3, 0x58, 0xC1, 0x30, 0xF0, 0x20, 0x6A, -0x01, 0x6C, 0xA3, 0xF1, 0xB8, 0x9A, 0x32, 0x10, -0x01, 0x6C, 0x01, 0xF4, 0x00, 0x6D, 0x80, 0x18, -0x51, 0x78, 0xA3, 0xF3, 0x7C, 0xA1, 0x20, 0x6A, -0x4D, 0xE8, 0x04, 0x6A, 0xFF, 0x6C, 0x6C, 0xEA, -0x8C, 0xEA, 0x8C, 0xE8, 0x0F, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF7, 0x44, 0x9A, 0x60, 0xA2, -0x8C, 0xEB, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF2, 0xB0, 0x9A, 0x01, 0x6C, 0x80, 0x18, -0x51, 0x78, 0x16, 0x10, 0x02, 0x6A, 0x6C, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, +0x30, 0xF0, 0x20, 0x69, 0xFF, 0x6C, 0x6F, 0x6D, +0x25, 0x6E, 0x2B, 0xF1, 0x18, 0x49, 0x40, 0xEA, +0xA3, 0xF3, 0x7C, 0xA1, 0x02, 0x6A, 0x6C, 0xEA, +0x0D, 0x22, 0xA3, 0xF3, 0x1E, 0xA1, 0x90, 0x67, +0x80, 0x18, 0x58, 0x6F, 0xBF, 0x6D, 0x4C, 0xED, +0x90, 0x67, 0x80, 0x18, 0x4B, 0x6F, 0x04, 0x6A, +0xA3, 0xF3, 0x59, 0xC1, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, +0xA3, 0xF3, 0x5C, 0xA3, 0x01, 0x6C, 0x4C, 0xEC, +0x01, 0x6A, 0x06, 0x24, 0xA3, 0xF3, 0x59, 0xA3, +0x02, 0x6B, 0x6E, 0xEA, 0x01, 0x5A, 0x58, 0x67, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xEE, 0xF4, 0x55, 0xA2, 0x05, 0x5A, 0xE0, 0xF0, +0x0C, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x48, 0x32, +0x83, 0xF0, 0x18, 0x4B, 0x4D, 0xE3, 0x40, 0x9B, +0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, +0x18, 0x4B, 0xA3, 0xF3, 0x9C, 0xA3, 0x04, 0x6A, +0xFF, 0x6D, 0x8C, 0xEA, 0x19, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF7, 0x94, 0x9A, 0x02, 0x6E, +0x40, 0xA4, 0xAC, 0xEA, 0xCD, 0xEA, 0xAC, 0xEA, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF1, +0x84, 0x9A, 0xF8, 0x6A, 0xA0, 0xA4, 0xAC, 0xEA, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, +0x60, 0xA3, 0xC4, 0xF1, 0x48, 0x9A, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF7, 0x74, 0x9A, +0x83, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, +0x18, 0x4B, 0xA3, 0xF3, 0xBC, 0xA3, 0x04, 0x6A, +0xFF, 0x6C, 0xAC, 0xEA, 0x1D, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xC4, 0xF1, 0xAC, 0x9A, 0x02, 0x6E, +0x40, 0xA5, 0x8C, 0xEA, 0xCD, 0xEA, 0x8C, 0xEA, +0x40, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF1, +0xA4, 0x9A, 0xF6, 0x4E, 0x40, 0xA5, 0x8C, 0xEA, +0xCC, 0xEA, 0x01, 0x6E, 0xCD, 0xEA, 0x8C, 0xEA, +0x40, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, +0x60, 0xA3, 0xC4, 0xF1, 0x48, 0x9A, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF1, 0x6C, 0x9A, +0x57, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, +0x18, 0x4B, 0xA3, 0xF3, 0xBC, 0xA3, 0x04, 0x6A, +0xFF, 0x6C, 0xAC, 0xEA, 0x1D, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xC4, 0xF1, 0xB0, 0x9A, 0x02, 0x6E, +0x08, 0x6F, 0x40, 0xA5, 0xEB, 0xEF, 0x8C, 0xEA, +0xCD, 0xEA, 0x8C, 0xEA, 0x40, 0xC5, 0x30, 0xF0, +0x20, 0x6A, 0x04, 0xF1, 0xA4, 0x9A, 0x40, 0xA5, +0x8C, 0xEA, 0xEC, 0xEA, 0xCD, 0xEA, 0x8C, 0xEA, +0x40, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, +0x60, 0xA3, 0xC4, 0xF1, 0x48, 0x9A, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF1, 0x70, 0x9A, +0x2B, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, +0x18, 0x4B, 0xA3, 0xF3, 0xBC, 0xA3, 0x04, 0x6A, +0xFF, 0x6C, 0xAC, 0xEA, 0x1D, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xC4, 0xF1, 0xB4, 0x9A, 0x02, 0x6E, +0x40, 0xA5, 0x8C, 0xEA, 0xCD, 0xEA, 0x8C, 0xEA, +0x40, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF1, +0xA4, 0x9A, 0xF6, 0x4E, 0x40, 0xA5, 0x8C, 0xEA, +0xCC, 0xEA, 0x03, 0x6E, 0xCD, 0xEA, 0x8C, 0xEA, +0x40, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, +0x60, 0xA3, 0xC4, 0xF1, 0x48, 0x9A, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF1, 0x74, 0x9A, +0x40, 0xA3, 0xFF, 0x6C, 0x01, 0x6D, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, +0xA3, 0xF3, 0x5C, 0xA3, 0x04, 0x6E, 0xFF, 0x6C, +0xCC, 0xEA, 0x1C, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xC4, 0xF1, 0xB8, 0x9A, 0x02, 0x6F, 0x40, 0xA5, +0x8C, 0xEA, 0xED, 0xEA, 0x8C, 0xEA, 0x40, 0xC5, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF1, 0xA4, 0x9A, +0xF6, 0x4F, 0x40, 0xA5, 0x8C, 0xEA, 0xEC, 0xEA, +0xCD, 0xEA, 0x8C, 0xEA, 0x40, 0xC5, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF3, 0x60, 0xA3, 0xC4, 0xF1, +0x48, 0x9A, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xC4, 0xF1, 0x78, 0x9A, 0xFF, 0x6C, 0x01, 0x6D, +0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xC3, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x9C, 0xA2, +0x01, 0x6B, 0x8C, 0xEB, 0x06, 0x23, 0xA3, 0xF3, +0x98, 0xA2, 0x02, 0x6B, 0x8D, 0xEB, 0xA3, 0xF3, +0x78, 0xC2, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6D, +0x2B, 0xF1, 0x18, 0x4D, 0xA3, 0xF3, 0xDC, 0xA5, +0x02, 0x6B, 0xFF, 0x6A, 0xCC, 0xEB, 0x4C, 0xEB, +0x4C, 0xEC, 0x02, 0x2B, 0xA3, 0xF3, 0x9A, 0xC5, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0x2B, 0xF1, 0x18, 0x48, 0xA0, 0xF0, 0x7B, 0xA0, +0x7F, 0x6A, 0xFF, 0x69, 0x6C, 0xEA, 0x02, 0x72, +0x16, 0x60, 0xA0, 0xF0, 0x7C, 0xA0, 0x10, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x2C, 0xEA, 0x0F, 0x22, +0x00, 0x18, 0x02, 0xC6, 0x0C, 0x2A, 0xA3, 0xF3, +0x7C, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, +0x06, 0x22, 0xA3, 0xF3, 0xDD, 0xA0, 0x0C, 0x6C, +0x00, 0x6D, 0x00, 0x18, 0x28, 0xCE, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x9C, 0xA2, +0x01, 0x6B, 0x6C, 0xEC, 0x16, 0x24, 0xA3, 0xF3, +0xDC, 0xA2, 0xA3, 0xF3, 0xBA, 0xA2, 0xDA, 0x34, +0x6C, 0xEC, 0x0D, 0x24, 0x02, 0x75, 0x0F, 0x60, +0xCC, 0xEB, 0xFF, 0x6C, 0x8C, 0xEB, 0x09, 0x23, +0xA3, 0xF3, 0xDD, 0xA2, 0x02, 0x6C, 0x01, 0x6D, +0x00, 0x18, 0x28, 0xCE, 0x02, 0x10, 0x02, 0x75, +0x02, 0x60, 0x80, 0x18, 0xC7, 0x70, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x2B, 0xF1, 0x18, 0x4B, 0x24, 0x67, 0xA3, 0xF3, +0x9C, 0xA3, 0x01, 0x6D, 0xFF, 0x6A, 0xAC, 0xEC, +0x4C, 0xEC, 0x4C, 0xE9, 0x00, 0x68, 0x05, 0x24, +0xA3, 0xF3, 0x1C, 0xA3, 0x1A, 0x30, 0xAC, 0xE8, +0x4C, 0xE8, 0x80, 0x18, 0x74, 0x6F, 0x01, 0x72, +0x13, 0x61, 0x12, 0x28, 0x30, 0xF0, 0x20, 0x6B, +0x2B, 0xF1, 0x18, 0x4B, 0xA3, 0xF3, 0x5C, 0xA3, +0x01, 0x6C, 0x4C, 0xEC, 0x01, 0x6A, 0x09, 0x24, +0xA3, 0xF3, 0xDD, 0xA3, 0xA2, 0x67, 0x91, 0x67, +0x00, 0x18, 0x28, 0xCE, 0x01, 0x6A, 0x01, 0x10, +0x00, 0x6A, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0xA3, 0xF3, 0x7C, 0xA2, 0x01, 0x6C, 0xA4, 0x67, +0x6C, 0xED, 0x0C, 0x25, 0xA3, 0xF3, 0xB8, 0xA2, +0xAD, 0xEC, 0xA3, 0xF3, 0x98, 0xC2, 0x02, 0x6A, +0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x02, 0x22, +0x80, 0x18, 0xE6, 0x40, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0x2B, 0xF1, 0x18, 0x49, 0xA3, 0xF3, 0x5E, 0xA1, +0xFF, 0x68, 0x8C, 0xE8, 0x01, 0x72, 0x31, 0x60, +0x03, 0x22, 0x02, 0x72, 0x5F, 0x60, 0xC2, 0x10, +0x01, 0x6C, 0xC0, 0x6D, 0x80, 0x18, 0xA9, 0x76, +0x20, 0x6A, 0xA3, 0xF3, 0x7C, 0xA1, 0x4D, 0xE8, +0xFF, 0x6A, 0x4C, 0xE8, 0x04, 0x6A, 0x6C, 0xEA, +0xFF, 0x6C, 0x8C, 0xEA, 0x0B, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF7, 0x50, 0x9A, 0x10, 0xF0, +0x00, 0x6D, 0x60, 0xA2, 0x8C, 0xEB, 0x60, 0xC2, +0x01, 0x6C, 0x5F, 0x10, 0x02, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x0A, 0x22, 0xA3, 0xF3, 0x78, 0xA1, 0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x03, 0x6B, 0x6B, 0xEB, 0x6C, 0xEA, 0xA3, 0xF3, -0x58, 0xC1, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, -0xB0, 0x9A, 0x01, 0x6C, 0x80, 0x18, 0x6E, 0x78, -0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF4, 0x94, 0xA2, -0x08, 0x6A, 0xFF, 0x6B, 0x8C, 0xEA, 0x09, 0x22, -0x10, 0x6A, 0x8C, 0xEA, 0x6C, 0xEA, 0x02, 0x2A, -0x02, 0x6A, 0x01, 0x10, 0x04, 0x6A, 0x4D, 0xE8, -0x6C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF4, -0x94, 0xA2, 0x02, 0x6A, 0xFF, 0x6B, 0x8C, 0xEA, -0x08, 0x22, 0x20, 0x6A, 0x8C, 0xEA, 0x6C, 0xEA, -0x04, 0x22, 0x80, 0x6A, 0x4B, 0xEA, 0x4D, 0xE8, -0x6C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF4, -0xB4, 0xA2, 0x40, 0x6C, 0x44, 0x67, 0xAC, 0xEA, -0xFF, 0x6B, 0x06, 0x2A, 0x80, 0x4A, 0xAC, 0xEA, -0x6C, 0xEA, 0x02, 0x2A, 0x8D, 0xE8, 0x6C, 0xE8, -0x50, 0x67, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0xDA, 0xEB, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x9C, 0xA2, -0x02, 0x6B, 0x6C, 0xEC, 0x02, 0x24, 0xA3, 0xF3, -0x79, 0xC2, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, -0x9C, 0xA2, 0x02, 0x6B, 0x8C, 0xEB, 0x0C, 0x23, -0xA3, 0xF3, 0x1E, 0xA2, 0x90, 0x67, 0x80, 0x18, -0x03, 0x71, 0x40, 0x6B, 0x4D, 0xEB, 0xFF, 0x6D, -0x90, 0x67, 0x6C, 0xED, 0x80, 0x18, 0xF6, 0x70, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, -0xFF, 0x6C, 0xA4, 0x67, 0x23, 0x6E, 0x40, 0xEA, -0x00, 0x18, 0xDA, 0xEB, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x9C, 0xA2, -0x02, 0x6B, 0x6C, 0xEC, 0x02, 0x24, 0xA3, 0xF3, -0x79, 0xC2, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, -0xFF, 0x6C, 0xA4, 0x67, 0x20, 0x6E, 0x40, 0xEA, -0x00, 0x18, 0xDA, 0xEB, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x9C, 0xA2, -0x02, 0x6B, 0x6C, 0xEC, 0x02, 0x24, 0xA3, 0xF3, -0x79, 0xC2, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0x79, 0x71, -0x80, 0x18, 0x51, 0x73, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0xC4, 0xEB, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x9C, 0xA2, -0x02, 0x6B, 0x8C, 0xEB, 0x03, 0x23, 0x03, 0x6B, -0xA3, 0xF3, 0x79, 0xC2, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x00, 0x18, 0xC4, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, -0x30, 0xF0, 0x20, 0x69, 0xFF, 0x6C, 0x6F, 0x6D, -0x24, 0x6E, 0x2B, 0xF1, 0x18, 0x49, 0x40, 0xEA, -0xA3, 0xF3, 0x7C, 0xA1, 0x02, 0x6A, 0x6C, 0xEA, -0x0D, 0x22, 0xA3, 0xF3, 0x1E, 0xA1, 0x90, 0x67, -0x80, 0x18, 0x03, 0x71, 0xBF, 0x6D, 0x4C, 0xED, -0x90, 0x67, 0x80, 0x18, 0xF6, 0x70, 0x04, 0x6A, -0xA3, 0xF3, 0x59, 0xC1, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0xC4, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, -0x00, 0x6D, 0xFF, 0x6C, 0xC5, 0x67, 0x40, 0xEA, +0x58, 0xC1, 0x01, 0x6C, 0x10, 0xF0, 0x00, 0x6D, +0x63, 0x10, 0x01, 0x6C, 0x00, 0xF3, 0x00, 0x6D, +0x80, 0x18, 0xA9, 0x76, 0xA3, 0xF3, 0x7C, 0xA1, +0x20, 0x6A, 0x4D, 0xE8, 0x04, 0x6A, 0xFF, 0x6C, +0x6C, 0xEA, 0x8C, 0xEA, 0x8C, 0xE8, 0x0D, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF7, 0x50, 0x9A, +0x60, 0xA2, 0x8C, 0xEB, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x01, 0x6C, 0xA3, 0xF1, 0xBC, 0x9A, +0x30, 0x10, 0x02, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, +0x6C, 0xEA, 0x0A, 0x22, 0xA3, 0xF3, 0x78, 0xA1, +0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x03, 0x6B, +0x6B, 0xEB, 0x6C, 0xEA, 0xA3, 0xF3, 0x58, 0xC1, +0x30, 0xF0, 0x20, 0x6A, 0x01, 0x6C, 0xA3, 0xF1, +0xBC, 0x9A, 0x32, 0x10, 0x01, 0x6C, 0x01, 0xF4, +0x00, 0x6D, 0x80, 0x18, 0xA9, 0x76, 0xA3, 0xF3, +0x7C, 0xA1, 0x20, 0x6A, 0x4D, 0xE8, 0x04, 0x6A, +0xFF, 0x6C, 0x6C, 0xEA, 0x8C, 0xEA, 0x8C, 0xE8, +0x0F, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF7, +0x50, 0x9A, 0x60, 0xA2, 0x8C, 0xEB, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0xB4, 0x9A, +0x01, 0x6C, 0x80, 0x18, 0xA9, 0x76, 0x16, 0x10, +0x02, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, +0x0A, 0x22, 0xA3, 0xF3, 0x78, 0xA1, 0x02, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x03, 0x6B, 0x6B, 0xEB, +0x6C, 0xEA, 0xA3, 0xF3, 0x58, 0xC1, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF2, 0xB4, 0x9A, 0x01, 0x6C, +0x80, 0x18, 0xC6, 0x76, 0x30, 0xF0, 0x20, 0x6A, +0xEE, 0xF4, 0x94, 0xA2, 0x08, 0x6A, 0xFF, 0x6B, +0x8C, 0xEA, 0x09, 0x22, 0x10, 0x6A, 0x8C, 0xEA, +0x6C, 0xEA, 0x02, 0x2A, 0x02, 0x6A, 0x01, 0x10, +0x04, 0x6A, 0x4D, 0xE8, 0x6C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0xEE, 0xF4, 0x94, 0xA2, 0x02, 0x6A, +0xFF, 0x6B, 0x8C, 0xEA, 0x08, 0x22, 0x20, 0x6A, +0x8C, 0xEA, 0x6C, 0xEA, 0x04, 0x22, 0x80, 0x6A, +0x4B, 0xEA, 0x4D, 0xE8, 0x6C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0xEE, 0xF4, 0xB4, 0xA2, 0x40, 0x6C, +0x44, 0x67, 0xAC, 0xEA, 0xFF, 0x6B, 0x06, 0x2A, +0x80, 0x4A, 0xAC, 0xEA, 0x6C, 0xEA, 0x02, 0x2A, +0x8D, 0xE8, 0x6C, 0xE8, 0x50, 0x67, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x30, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0xA3, 0xF3, 0x9C, 0xA2, 0x02, 0x6B, 0x6C, 0xEC, +0x02, 0x24, 0xA3, 0xF3, 0x79, 0xC2, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0xA3, 0xF3, 0x9C, 0xA2, 0x02, 0x6B, +0x8C, 0xEB, 0x0C, 0x23, 0xA3, 0xF3, 0x1E, 0xA2, +0x90, 0x67, 0x80, 0x18, 0x58, 0x6F, 0x40, 0x6B, +0x4D, 0xEB, 0xFF, 0x6D, 0x90, 0x67, 0x6C, 0xED, +0x80, 0x18, 0x4B, 0x6F, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0xFF, 0x6C, 0xA4, 0x67, +0x23, 0x6E, 0x40, 0xEA, 0x00, 0x18, 0x30, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0xA3, 0xF3, 0x9C, 0xA2, 0x02, 0x6B, 0x6C, 0xEC, +0x02, 0x24, 0xA3, 0xF3, 0x79, 0xC2, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0xFF, 0x6C, 0xA4, 0x67, +0x20, 0x6E, 0x40, 0xEA, 0x00, 0x18, 0x30, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0xA3, 0xF3, 0x9C, 0xA2, 0x02, 0x6B, 0x6C, 0xEC, +0x02, 0x24, 0xA3, 0xF3, 0x79, 0xC2, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0xCE, 0x6F, 0x80, 0x18, 0xA6, 0x71, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x1A, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x9C, 0xA2, 0x02, 0x6B, 0x8C, 0xEB, -0x03, 0x23, 0x01, 0x6B, 0xA3, 0xF3, 0x79, 0xC2, +0x03, 0x23, 0x03, 0x6B, 0xA3, 0xF3, 0x79, 0xC2, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0x82, 0x73, -0x80, 0x18, 0x5C, 0x71, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6D, 0x2B, 0xF1, 0x18, 0x4D, -0xA3, 0xF3, 0xDC, 0xA5, 0x02, 0x6B, 0xFF, 0x6A, -0xCC, 0xEB, 0x4C, 0xEB, 0x4C, 0xEC, 0x00, 0x6A, -0x02, 0x23, 0xA3, 0xF3, 0x59, 0xA5, 0x8A, 0xEA, -0x69, 0x60, 0x05, 0x5C, 0x67, 0x60, 0x30, 0xF0, -0x20, 0x6B, 0x88, 0x34, 0xA3, 0xF0, 0x0C, 0x4B, -0x8D, 0xE3, 0x60, 0x9B, 0x00, 0xEB, 0x04, 0x72, -0x03, 0x61, 0x80, 0x18, 0x9F, 0x71, 0x5A, 0x10, -0x02, 0x72, 0x03, 0x61, 0x80, 0x18, 0x90, 0x73, -0x55, 0x10, 0x03, 0x72, 0x03, 0x61, 0x80, 0x18, -0xC6, 0x71, 0x50, 0x10, 0x01, 0x72, 0x4E, 0x61, -0x80, 0x18, 0x5C, 0x71, 0x4B, 0x10, 0x04, 0x72, -0x03, 0x61, 0x80, 0x18, 0x8A, 0x71, 0x46, 0x10, -0x02, 0x72, 0x03, 0x61, 0x80, 0x18, 0x82, 0x73, -0x41, 0x10, 0x03, 0x72, 0x03, 0x61, 0x80, 0x18, -0xB9, 0x71, 0x3C, 0x10, 0x3B, 0x2A, 0x80, 0x18, -0x79, 0x71, 0x38, 0x10, 0x04, 0x72, 0x03, 0x61, -0x80, 0x18, 0x38, 0x73, 0x33, 0x10, 0x01, 0x72, -0x03, 0x61, 0x80, 0x18, 0x51, 0x73, 0x2E, 0x10, -0x03, 0x72, 0x03, 0x61, 0x80, 0x18, 0x2F, 0x73, -0x29, 0x10, 0x28, 0x2A, 0x80, 0x18, 0x5E, 0x73, -0x25, 0x10, 0x04, 0x72, 0x03, 0x61, 0x80, 0x18, -0xA4, 0x71, 0x20, 0x10, 0x01, 0x72, 0x03, 0x61, -0x80, 0x18, 0x6C, 0x71, 0x1B, 0x10, 0x02, 0x72, -0x03, 0x61, 0x80, 0x18, 0x63, 0x73, 0x16, 0x10, -0x15, 0x2A, 0x80, 0x18, 0x85, 0x71, 0x12, 0x10, -0x03, 0x72, 0x03, 0x61, 0x80, 0x18, 0xCB, 0x71, -0x0D, 0x10, 0x01, 0x72, 0x03, 0x61, 0x80, 0x18, -0x48, 0x71, 0x08, 0x10, 0x02, 0x72, 0x03, 0x61, -0x80, 0x18, 0x6D, 0x73, 0x03, 0x10, 0x02, 0x2A, -0x80, 0x18, 0x80, 0x71, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x4C, 0x9A, 0xA7, 0x44, 0x30, 0xF0, -0x20, 0x6C, 0xEE, 0xF4, 0x14, 0x4C, 0x01, 0x4D, -0x18, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xC3, 0xF3, 0x98, 0xA2, -0x01, 0x6B, 0x6C, 0xEC, 0x11, 0x24, 0xA3, 0xF3, -0x9C, 0xA2, 0x8C, 0xEB, 0xFF, 0x6C, 0x8C, 0xEB, -0x0B, 0x23, 0xC3, 0xF3, 0x9D, 0xA2, 0x40, 0x6B, -0x8D, 0xEB, 0xC3, 0xF3, 0x7D, 0xC2, 0xC3, 0xF3, -0x70, 0x9A, 0xC3, 0xF3, 0x7E, 0xC2, 0x4F, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0xC3, 0xF3, 0xF8, 0xA2, 0x01, 0x6C, 0xA4, 0x67, -0xEC, 0xED, 0xFF, 0x6B, 0x44, 0x25, 0xA3, 0xF3, -0xBC, 0xA2, 0x8C, 0xED, 0x6C, 0xED, 0x3F, 0x2D, -0xC3, 0xF3, 0xDD, 0xA2, 0xDE, 0x4C, 0xA0, 0xF0, -0x16, 0xA2, 0xCC, 0xEC, 0xC3, 0xF3, 0xD9, 0xA2, -0xC3, 0xF3, 0x9D, 0xC2, 0x1F, 0x6C, 0xCC, 0xEC, -0xC3, 0xF3, 0x99, 0xC2, 0xC3, 0xF3, 0x9B, 0xA2, -0x0F, 0x6E, 0xCC, 0xE8, 0x1C, 0x65, 0x10, 0x6C, -0x8B, 0xEC, 0x38, 0x67, 0x2C, 0xEC, 0x0D, 0xEC, -0xC3, 0xF3, 0x9B, 0xC2, 0x1E, 0x6C, 0xEC, 0xEC, -0x6C, 0xEC, 0xC3, 0xF3, 0xBC, 0xC2, 0x17, 0x24, -0xC3, 0xF3, 0xB8, 0xA2, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF5, 0x40, 0x9A, 0xA6, 0x35, 0xCC, 0xED, -0x02, 0x6C, 0x6C, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xA0, 0xF5, 0x4C, 0x9A, 0x40, 0xEA, -0x06, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, -0x48, 0x9A, 0x06, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x0E, 0xF5, 0x5C, 0xA2, 0x0F, 0x6C, -0x4C, 0xEC, 0x00, 0x18, 0x85, 0xE8, 0x30, 0xF0, -0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0xA3, 0xF3, -0x5E, 0xA3, 0x01, 0x72, 0x6C, 0x60, 0x05, 0x22, -0x02, 0x72, 0x00, 0x6C, 0x20, 0xF1, 0x13, 0x61, -0xC9, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, -0x4C, 0x9A, 0xFF, 0x6D, 0x08, 0x6F, 0x80, 0xA2, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, 0xD0, 0x9A, -0xEB, 0xEF, 0xAC, 0xEC, 0x40, 0xA6, 0xAC, 0xEA, -0xEC, 0xEA, 0xA3, 0xF3, 0xFD, 0xA3, 0xED, 0xEA, -0xAC, 0xEA, 0x40, 0xC6, 0xA3, 0xF3, 0x7C, 0xA3, -0x08, 0x6A, 0x6C, 0xEA, 0xAC, 0xEA, 0x00, 0xF1, -0x16, 0x22, 0x10, 0x6E, 0x43, 0x67, 0xCC, 0xEA, -0xAC, 0xEA, 0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xC4, 0xF1, 0x78, 0x9A, 0x8F, 0x6A, 0xA0, 0xA3, -0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF1, -0x78, 0x9A, 0x71, 0x6F, 0xEB, 0xEF, 0x40, 0xA3, -0xAC, 0xEA, 0xEC, 0xEA, 0xCD, 0xEA, 0xAC, 0xEA, -0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, -0xA4, 0x9A, 0xC4, 0xF1, 0x7C, 0x9B, 0x01, 0x6E, -0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, -0xA8, 0x9A, 0xE4, 0xF1, 0x60, 0x9B, 0xA0, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0xAC, 0x9A, -0xE4, 0xF1, 0x64, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF3, 0xB0, 0x9A, 0xE4, 0xF1, -0x68, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0xE4, 0xF1, 0x6C, 0x9B, 0xA3, 0xF3, 0x5C, 0xA2, -0xFF, 0x6D, 0xE0, 0xA3, 0x52, 0x32, 0xCC, 0xEA, -0xC4, 0xEA, 0xAC, 0xEF, 0x46, 0x67, 0xED, 0xEA, -0xAC, 0xEA, 0x40, 0xC3, 0xCC, 0x10, 0x30, 0xF0, -0x20, 0x6D, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, -0x10, 0x9D, 0xA4, 0xF1, 0x50, 0x9A, 0xA3, 0xF3, -0xBD, 0xA3, 0x71, 0x6E, 0x80, 0xA2, 0xE0, 0xA0, -0xFF, 0x6A, 0xCB, 0xEE, 0x4C, 0xEF, 0xB0, 0x35, -0xCC, 0xEF, 0xED, 0xED, 0x4C, 0xED, 0xA0, 0xC0, -0xA3, 0xF3, 0xBC, 0xA3, 0x08, 0x6B, 0x4C, 0xEC, -0xAC, 0xEB, 0x4C, 0xEB, 0xA0, 0xF0, 0x0F, 0x23, -0x10, 0x6B, 0xAC, 0xEB, 0x4C, 0xEB, 0x09, 0x2B, -0x30, 0xF0, 0x20, 0x6B, 0xC4, 0xF1, 0xB8, 0x9B, -0x60, 0xA5, 0x4C, 0xEB, 0xCC, 0xEB, 0x20, 0x6E, -0x08, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xC4, 0xF1, -0xB8, 0x9B, 0x60, 0xA5, 0x4C, 0xEB, 0xCC, 0xEB, -0x30, 0x6E, 0xCD, 0xEB, 0x4C, 0xEB, 0x30, 0xF0, -0x20, 0x6A, 0x60, 0xC5, 0x2B, 0xF1, 0x18, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0xA4, 0x9A, -0xC4, 0xF1, 0x7C, 0x9B, 0x01, 0x6F, 0xFF, 0x6E, -0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, -0xA8, 0x9A, 0xE4, 0xF1, 0x60, 0x9B, 0xA0, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0xAC, 0x9A, -0xE4, 0xF1, 0x64, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF3, 0xB0, 0x9A, 0xE4, 0xF1, -0x68, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0xE4, 0xF1, 0xAC, 0x9B, 0xA3, 0xF3, 0x7C, 0xA2, -0x00, 0xA5, 0x72, 0x33, 0xEC, 0xEB, 0xCC, 0xE8, -0x42, 0x43, 0x64, 0x10, 0x30, 0xF0, 0x20, 0x6D, -0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF1, 0x54, 0x9A, -0xE4, 0xF1, 0xD0, 0x9D, 0x08, 0x6F, 0x80, 0xA2, -0xA0, 0xA6, 0xFF, 0x6A, 0xEB, 0xEF, 0x4C, 0xED, -0xEC, 0xED, 0xA3, 0xF3, 0xFD, 0xA3, 0x4C, 0xEC, -0xED, 0xED, 0x4C, 0xED, 0xA0, 0xC6, 0xA3, 0xF3, -0xBC, 0xA3, 0x08, 0x6B, 0xAC, 0xEB, 0x4C, 0xEB, -0x4E, 0x23, 0x10, 0x6B, 0xAC, 0xEB, 0x4C, 0xEB, -0x0B, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0xC4, 0xF1, -0xB8, 0x9B, 0x71, 0x6E, 0xCB, 0xEE, 0x60, 0xA5, -0x4C, 0xEB, 0xCC, 0xEB, 0x40, 0x6E, 0x0A, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0xC4, 0xF1, 0xB8, 0x9B, -0x71, 0x6E, 0xCB, 0xEE, 0x60, 0xA5, 0x4C, 0xEB, -0xCC, 0xEB, 0x50, 0x6E, 0xCD, 0xEB, 0x4C, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0x60, 0xC5, 0x2B, 0xF1, -0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, -0xA4, 0x9A, 0xC4, 0xF1, 0x7C, 0x9B, 0x01, 0x6F, -0xFF, 0x6E, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF3, 0xA8, 0x9A, 0xE4, 0xF1, 0x60, 0x9B, -0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, -0xAC, 0x9A, 0xE4, 0xF1, 0x64, 0x9B, 0xA0, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0xB0, 0x9A, -0xE4, 0xF1, 0x68, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0xE4, 0xF1, 0xAC, 0x9B, 0xA3, 0xF3, -0x7C, 0xA2, 0x00, 0xA5, 0x72, 0x33, 0xEC, 0xEB, -0xCC, 0xE8, 0x44, 0x43, 0xE4, 0xEA, 0x47, 0x67, -0x0D, 0xEA, 0xCC, 0xEA, 0x40, 0xC5, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF7, 0x58, 0x9A, 0x00, 0x6B, -0xFF, 0x69, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF7, 0x54, 0x9A, 0x02, 0x6B, 0x30, 0xF0, -0x20, 0x68, 0x60, 0xC2, 0x40, 0xA2, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF7, 0x60, 0x9B, 0x2C, 0xEA, -0x50, 0x32, 0x01, 0x4A, 0x2C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, 0x5C, 0x9A, -0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x48, 0x60, 0xC2, -0xA3, 0xF3, 0x7C, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, -0x2C, 0xEA, 0x51, 0x22, 0x80, 0x18, 0xC2, 0x72, -0x04, 0xD2, 0x80, 0x18, 0xE8, 0x71, 0xA3, 0xF3, -0x9E, 0xA0, 0x04, 0x95, 0x80, 0x18, 0xF6, 0x70, -0xA3, 0xF3, 0x7C, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, -0x2C, 0xEA, 0x16, 0x22, 0xA3, 0xF3, 0x59, 0xA0, -0x03, 0x2A, 0x01, 0x6C, 0x80, 0x18, 0x95, 0x73, -0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF4, 0x74, 0xA2, -0x40, 0x6A, 0x04, 0x6C, 0x6C, 0xEA, 0x05, 0x2A, -0x80, 0x18, 0x1F, 0x71, 0x01, 0x6C, 0x01, 0x2A, -0x02, 0x6C, 0x80, 0x18, 0x95, 0x73, 0x24, 0x10, -0x40, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x07, 0x22, -0xA3, 0xF3, 0x5A, 0xA0, 0x02, 0x72, 0x1C, 0x60, -0x02, 0x6C, 0x00, 0x6D, 0x10, 0x10, 0xA3, 0xF3, -0x5A, 0xA0, 0x02, 0x72, 0x11, 0x61, 0x00, 0x18, -0x76, 0xCC, 0x80, 0x18, 0x1F, 0x71, 0x01, 0x72, -0x04, 0x61, 0x63, 0xF6, 0x9C, 0xA0, 0x01, 0x6D, -0x02, 0x10, 0x00, 0x6C, 0xA4, 0x67, 0xA3, 0xF3, -0xDD, 0xA0, 0x00, 0x18, 0xD3, 0xCE, 0x04, 0x10, -0x03, 0xF6, 0x43, 0xA0, 0xA3, 0xF3, 0x5A, 0xC0, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF7, 0x4C, 0x9A, -0x22, 0x6B, 0x60, 0xC2, 0x31, 0x10, 0xA3, 0xF3, -0x9E, 0xA0, 0x00, 0x6D, 0x80, 0x18, 0xF6, 0x70, -0xA3, 0xF3, 0x7C, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, -0x2C, 0xEA, 0x08, 0x22, 0xA3, 0xF3, 0x59, 0xA0, -0x04, 0x72, 0x22, 0x61, 0x00, 0x6C, 0x80, 0x18, -0x95, 0x73, 0x1E, 0x10, 0xA3, 0xF3, 0x5A, 0xA0, -0x04, 0x6C, 0x02, 0x72, 0x03, 0x60, 0x08, 0x72, -0x06, 0x61, 0x0C, 0x6C, 0xA3, 0xF3, 0xDD, 0xA0, -0x01, 0x6D, 0x00, 0x18, 0xD3, 0xCE, 0x30, 0xF0, -0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0xA3, 0xF3, -0x9D, 0xA0, 0x80, 0x18, 0xDE, 0x40, 0x63, 0xF6, -0x9C, 0xA0, 0xA3, 0xF3, 0xDD, 0xA0, 0x01, 0x6D, -0x00, 0x18, 0xD3, 0xCE, 0x80, 0x18, 0xE1, 0x70, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x00, 0x6A, -0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF7, 0x48, 0x9A, 0xFF, 0x69, 0x30, 0xF0, -0x20, 0x68, 0xC0, 0x9A, 0x2C, 0xEC, 0x01, 0x6D, -0x2B, 0xF1, 0x18, 0x48, 0x00, 0x18, 0x45, 0xD4, -0xA3, 0xF3, 0x7C, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, -0x2C, 0xEA, 0x1D, 0x22, 0xA3, 0xF3, 0x59, 0xA0, -0x04, 0x72, 0x19, 0x60, 0xA3, 0xF3, 0x5A, 0xA0, -0x02, 0x72, 0x15, 0x60, 0x02, 0x6A, 0x6C, 0xEA, -0x2C, 0xEA, 0x03, 0x22, 0x80, 0x18, 0xE6, 0x40, -0x0E, 0x10, 0x80, 0x18, 0x87, 0x72, 0xA3, 0xF3, -0x5A, 0xA0, 0x0C, 0x6C, 0x08, 0x72, 0x02, 0x60, -0x06, 0x2A, 0x04, 0x6C, 0xA3, 0xF3, 0xDD, 0xA0, -0x00, 0x6D, 0x00, 0x18, 0xD3, 0xCE, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xC3, 0xF3, -0x98, 0xA2, 0x01, 0x6B, 0xFF, 0x6D, 0x6C, 0xEC, -0x49, 0x24, 0xA3, 0xF3, 0x9C, 0xA2, 0x8C, 0xEB, -0xAC, 0xEB, 0x44, 0x23, 0xC3, 0xF3, 0x7E, 0xA2, -0xFF, 0x73, 0x27, 0x60, 0xFF, 0x4B, 0xC3, 0xF3, -0x7E, 0xC2, 0xC3, 0xF3, 0xDE, 0xA2, 0x21, 0x2E, -0xC3, 0xF3, 0x9D, 0xA2, 0x21, 0x6B, 0x6B, 0xEB, -0x8C, 0xEB, 0xC3, 0xF3, 0x99, 0xA2, 0xC3, 0xF3, -0x7D, 0xC2, 0x1F, 0x6B, 0x8C, 0xEB, 0xC3, 0xF3, -0x1B, 0xA2, 0xA0, 0xF0, 0xF6, 0xA2, 0xC3, 0xF3, -0x79, 0xC2, 0x10, 0x6B, 0x0F, 0x6C, 0x6B, 0xEB, -0x8C, 0xEF, 0x0C, 0xEB, 0xED, 0xEB, 0xC3, 0xF3, -0x7B, 0xC2, 0xC3, 0xF3, 0xDC, 0xC2, 0xE3, 0xF3, -0x44, 0xA2, 0x4C, 0xEC, 0xAC, 0xEC, 0x00, 0x18, -0x85, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x0E, 0xF5, -0xB0, 0xA2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, -0x40, 0x9A, 0x0F, 0x6B, 0xA6, 0x35, 0x02, 0x6C, -0x6C, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF5, 0x4C, 0x9A, 0x40, 0xEA, 0x06, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, 0x48, 0x9A, -0x06, 0x6C, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x02, 0x6C, 0x80, 0x18, -0x09, 0x75, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x01, 0x6C, 0x80, 0x18, -0x09, 0x75, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x6C, 0x80, 0x18, -0x09, 0x75, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, 0x48, 0x9A, -0xFF, 0x68, 0x0C, 0xEC, 0xC0, 0x9A, 0x00, 0x6D, -0x00, 0x18, 0x45, 0xD4, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0x18, 0x1A, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x30, 0xF0, 0x20, 0x69, +0xFF, 0x6C, 0x6F, 0x6D, 0x24, 0x6E, 0x2B, 0xF1, +0x18, 0x49, 0x40, 0xEA, 0xA3, 0xF3, 0x7C, 0xA1, +0x02, 0x6A, 0x6C, 0xEA, 0x0D, 0x22, 0xA3, 0xF3, +0x1E, 0xA1, 0x90, 0x67, 0x80, 0x18, 0x58, 0x6F, +0xBF, 0x6D, 0x4C, 0xED, 0x90, 0x67, 0x80, 0x18, +0x4B, 0x6F, 0x04, 0x6A, 0xA3, 0xF3, 0x59, 0xC1, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x1A, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, 0xFF, 0x6C, +0xC5, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x9C, 0xA2, -0x01, 0x6B, 0x8C, 0xEB, 0x0C, 0xEB, 0x36, 0x23, -0xA3, 0xF3, 0x79, 0xA2, 0x04, 0x73, 0x32, 0x60, -0xA3, 0xF3, 0x7A, 0xA2, 0x02, 0x73, 0x2E, 0x60, -0x02, 0x6B, 0x8C, 0xEB, 0x0C, 0xEB, 0x03, 0x23, -0x80, 0x18, 0xE6, 0x40, 0x27, 0x10, 0x80, 0x6B, -0x6B, 0xEB, 0x8C, 0xEB, 0x0C, 0xEB, 0x05, 0x23, -0xA3, 0xF3, 0x9F, 0xA2, 0x80, 0x18, 0x77, 0x40, -0x08, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, -0x50, 0x9A, 0xFF, 0x6C, 0xA4, 0x67, 0xC4, 0x67, -0x40, 0xEA, 0x80, 0x18, 0x4A, 0x40, 0x30, 0xF0, -0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, -0x7A, 0xA2, 0x0C, 0x73, 0x03, 0x61, 0x08, 0x6C, -0x00, 0x6D, 0x04, 0x10, 0x04, 0x73, 0x06, 0x61, -0x00, 0x6C, 0xA4, 0x67, 0xA3, 0xF3, 0xDD, 0xA2, -0x00, 0x18, 0xD3, 0xCE, 0x30, 0xF0, 0x20, 0x68, -0x2B, 0xF1, 0x18, 0x48, 0xC3, 0xF3, 0x78, 0xA0, -0x01, 0x6A, 0xFF, 0x69, 0x4C, 0xEB, 0x80, 0xF0, -0x0C, 0x23, 0xA3, 0xF3, 0x7C, 0xA0, 0x6C, 0xEA, -0x2C, 0xEA, 0x80, 0xF0, 0x06, 0x22, 0xC3, 0xF3, -0x7D, 0xA0, 0x40, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, -0x45, 0x22, 0x20, 0x6A, 0x6D, 0xEA, 0xC3, 0xF3, -0x5D, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, -0x98, 0x9A, 0x00, 0x18, 0x63, 0xE7, 0x30, 0xF0, -0x20, 0x6A, 0xA0, 0xF5, 0x80, 0x9A, 0x00, 0x18, -0x63, 0xE7, 0xC3, 0xF3, 0x5A, 0xA0, 0x0F, 0x6B, -0x4C, 0xEB, 0x2C, 0xEB, 0x00, 0x6A, 0x11, 0x10, -0x0C, 0x6D, 0xB8, 0xEA, 0x30, 0xF0, 0x20, 0x6C, -0x2B, 0xF1, 0x18, 0x4C, 0x12, 0xED, 0x91, 0xE5, -0xE3, 0xF3, 0xA3, 0xA4, 0x07, 0x6C, 0xAC, 0xEC, -0x02, 0x74, 0x05, 0x60, 0x01, 0x4A, 0xFF, 0x6C, -0x8C, 0xEA, 0x62, 0xEA, 0xED, 0x61, 0x30, 0xF0, -0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0xC3, 0xF3, -0xB8, 0xA0, 0x0F, 0x6C, 0x1F, 0x6B, 0x8C, 0xEA, -0x6B, 0xEB, 0x44, 0x32, 0xAC, 0xEB, 0x4D, 0xEB, -0xE3, 0xF3, 0x44, 0xA0, 0xC3, 0xF3, 0x78, 0xC0, -0x4C, 0xEC, 0x00, 0x18, 0xAB, 0xE8, 0xC3, 0xF3, -0x7D, 0xA0, 0x41, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, -0xC3, 0xF3, 0x5D, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0x0E, 0xF5, 0xB0, 0xA2, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF5, 0x40, 0x9A, 0x0F, 0x6B, 0xA6, 0x35, -0x02, 0x6C, 0x6C, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xA0, 0xF5, 0x4C, 0x9A, 0x40, 0xEA, -0x06, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, -0x48, 0x9A, 0x06, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF7, 0x40, 0x9A, 0x0F, 0x6C, -0xFF, 0x6E, 0xE0, 0xA2, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x18, 0x4A, 0xC3, 0xF3, 0xB8, 0xA2, -0xC3, 0xF3, 0x64, 0x9A, 0xCC, 0xEF, 0xA6, 0x35, -0x8C, 0xED, 0x0C, 0x6C, 0x98, 0xED, 0x62, 0x33, -0x6A, 0x33, 0x12, 0xED, 0x49, 0xE5, 0xE3, 0xF3, -0x84, 0xA2, 0x4F, 0x47, 0x57, 0x32, 0x92, 0x34, -0x8F, 0xE3, 0x53, 0xE3, 0xCC, 0xEC, 0x80, 0x18, -0xA1, 0x6B, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x02, 0x6C, 0x80, 0x18, 0x5C, 0x75, 0x05, 0x97, +0x02, 0x6B, 0x8C, 0xEB, 0x03, 0x23, 0x01, 0x6B, +0xA3, 0xF3, 0x79, 0xC2, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0xD7, 0x71, 0x80, 0x18, 0xB1, 0x6F, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6D, +0x2B, 0xF1, 0x18, 0x4D, 0xA3, 0xF3, 0xDC, 0xA5, +0x02, 0x6B, 0xFF, 0x6A, 0xCC, 0xEB, 0x4C, 0xEB, +0x4C, 0xEC, 0x00, 0x6A, 0x02, 0x23, 0xA3, 0xF3, +0x59, 0xA5, 0x8A, 0xEA, 0x69, 0x60, 0x05, 0x5C, +0x67, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x88, 0x34, +0xA3, 0xF0, 0x0C, 0x4B, 0x8D, 0xE3, 0x60, 0x9B, +0x00, 0xEB, 0x04, 0x72, 0x03, 0x61, 0x80, 0x18, +0xF4, 0x6F, 0x5A, 0x10, 0x02, 0x72, 0x03, 0x61, +0x80, 0x18, 0xE5, 0x71, 0x55, 0x10, 0x03, 0x72, +0x03, 0x61, 0x80, 0x18, 0x1B, 0x70, 0x50, 0x10, +0x01, 0x72, 0x4E, 0x61, 0x80, 0x18, 0xB1, 0x6F, +0x4B, 0x10, 0x04, 0x72, 0x03, 0x61, 0x80, 0x18, +0xDF, 0x6F, 0x46, 0x10, 0x02, 0x72, 0x03, 0x61, +0x80, 0x18, 0xD7, 0x71, 0x41, 0x10, 0x03, 0x72, +0x03, 0x61, 0x80, 0x18, 0x0E, 0x70, 0x3C, 0x10, +0x3B, 0x2A, 0x80, 0x18, 0xCE, 0x6F, 0x38, 0x10, +0x04, 0x72, 0x03, 0x61, 0x80, 0x18, 0x8D, 0x71, +0x33, 0x10, 0x01, 0x72, 0x03, 0x61, 0x80, 0x18, +0xA6, 0x71, 0x2E, 0x10, 0x03, 0x72, 0x03, 0x61, +0x80, 0x18, 0x84, 0x71, 0x29, 0x10, 0x28, 0x2A, +0x80, 0x18, 0xB3, 0x71, 0x25, 0x10, 0x04, 0x72, +0x03, 0x61, 0x80, 0x18, 0xF9, 0x6F, 0x20, 0x10, +0x01, 0x72, 0x03, 0x61, 0x80, 0x18, 0xC1, 0x6F, +0x1B, 0x10, 0x02, 0x72, 0x03, 0x61, 0x80, 0x18, +0xB8, 0x71, 0x16, 0x10, 0x15, 0x2A, 0x80, 0x18, +0xDA, 0x6F, 0x12, 0x10, 0x03, 0x72, 0x03, 0x61, +0x80, 0x18, 0x20, 0x70, 0x0D, 0x10, 0x01, 0x72, +0x03, 0x61, 0x80, 0x18, 0x9D, 0x6F, 0x08, 0x10, +0x02, 0x72, 0x03, 0x61, 0x80, 0x18, 0xC2, 0x71, +0x03, 0x10, 0x02, 0x2A, 0x80, 0x18, 0xD5, 0x6F, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0xA7, 0x44, 0x30, 0xF0, 0x20, 0x6C, 0xEE, 0xF4, +0x14, 0x4C, 0x01, 0x4D, 0x18, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0xC3, 0xF3, 0x94, 0xA2, 0x01, 0x6B, 0x6C, 0xEC, +0x11, 0x24, 0xA3, 0xF3, 0x9C, 0xA2, 0x8C, 0xEB, +0xFF, 0x6C, 0x8C, 0xEB, 0x0B, 0x23, 0xC3, 0xF3, +0x99, 0xA2, 0x40, 0x6B, 0x8D, 0xEB, 0xC3, 0xF3, +0x79, 0xC2, 0xC3, 0xF3, 0x70, 0x9A, 0xC3, 0xF3, +0x7A, 0xC2, 0x4F, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x18, 0x4A, 0xC3, 0xF3, 0xF4, 0xA2, +0x01, 0x6C, 0xA4, 0x67, 0xEC, 0xED, 0xFF, 0x6B, +0x44, 0x25, 0xA3, 0xF3, 0xBC, 0xA2, 0x8C, 0xED, +0x6C, 0xED, 0x3F, 0x2D, 0xC3, 0xF3, 0xD9, 0xA2, +0xDE, 0x4C, 0xA0, 0xF0, 0x16, 0xA2, 0xCC, 0xEC, +0xC3, 0xF3, 0xD5, 0xA2, 0xC3, 0xF3, 0x99, 0xC2, +0x1F, 0x6C, 0xCC, 0xEC, 0xC3, 0xF3, 0x95, 0xC2, +0xC3, 0xF3, 0x97, 0xA2, 0x0F, 0x6E, 0xCC, 0xE8, +0x1C, 0x65, 0x10, 0x6C, 0x8B, 0xEC, 0x38, 0x67, +0x2C, 0xEC, 0x0D, 0xEC, 0xC3, 0xF3, 0x97, 0xC2, +0x1E, 0x6C, 0xEC, 0xEC, 0x6C, 0xEC, 0xC3, 0xF3, +0xB8, 0xC2, 0x17, 0x24, 0xC3, 0xF3, 0xB4, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, 0x40, 0x9A, +0xA6, 0x35, 0xCC, 0xED, 0x02, 0x6C, 0x6C, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF5, +0x4C, 0x9A, 0x40, 0xEA, 0x06, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF5, 0x48, 0x9A, 0x06, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x0E, 0xF5, +0x58, 0xA2, 0x0F, 0x6C, 0x4C, 0xEC, 0x00, 0x18, +0xDB, 0xE7, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, +0x18, 0x4B, 0xA3, 0xF3, 0x5E, 0xA3, 0x01, 0x72, +0x6C, 0x60, 0x05, 0x22, 0x02, 0x72, 0x00, 0x6C, +0x20, 0xF1, 0x13, 0x61, 0xC9, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF7, 0x58, 0x9A, 0xFF, 0x6D, +0x08, 0x6F, 0x80, 0xA2, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF7, 0xDC, 0x9A, 0xEB, 0xEF, 0xAC, 0xEC, +0x40, 0xA6, 0xAC, 0xEA, 0xEC, 0xEA, 0xA3, 0xF3, +0xFD, 0xA3, 0xED, 0xEA, 0xAC, 0xEA, 0x40, 0xC6, +0xA3, 0xF3, 0x7C, 0xA3, 0x08, 0x6A, 0x6C, 0xEA, +0xAC, 0xEA, 0x00, 0xF1, 0x16, 0x22, 0x10, 0x6E, +0x43, 0x67, 0xCC, 0xEA, 0xAC, 0xEA, 0x07, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF1, 0x7C, 0x9A, +0x8F, 0x6A, 0xA0, 0xA3, 0x0A, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC4, 0xF1, 0x7C, 0x9A, 0x71, 0x6F, +0xEB, 0xEF, 0x40, 0xA3, 0xAC, 0xEA, 0xEC, 0xEA, +0xCD, 0xEA, 0xAC, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF3, 0xA4, 0x9A, 0xE4, 0xF1, +0x60, 0x9B, 0x01, 0x6E, 0xA0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF3, 0xA8, 0x9A, 0xE4, 0xF1, +0x64, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF3, 0xAC, 0x9A, 0xE4, 0xF1, 0x68, 0x9B, +0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, +0xB0, 0x9A, 0xE4, 0xF1, 0x6C, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xE4, 0xF1, 0x70, 0x9B, +0xA3, 0xF3, 0x5C, 0xA2, 0xFF, 0x6D, 0xE0, 0xA3, +0x52, 0x32, 0xCC, 0xEA, 0xC4, 0xEA, 0xAC, 0xEF, +0x46, 0x67, 0xED, 0xEA, 0xAC, 0xEA, 0x40, 0xC3, +0xCC, 0x10, 0x30, 0xF0, 0x20, 0x6D, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF7, 0x1C, 0x9D, 0xA4, 0xF1, +0x54, 0x9A, 0xA3, 0xF3, 0xBD, 0xA3, 0x71, 0x6E, +0x80, 0xA2, 0xE0, 0xA0, 0xFF, 0x6A, 0xCB, 0xEE, +0x4C, 0xEF, 0xB0, 0x35, 0xCC, 0xEF, 0xED, 0xED, +0x4C, 0xED, 0xA0, 0xC0, 0xA3, 0xF3, 0xBC, 0xA3, +0x08, 0x6B, 0x4C, 0xEC, 0xAC, 0xEB, 0x4C, 0xEB, +0xA0, 0xF0, 0x0F, 0x23, 0x10, 0x6B, 0xAC, 0xEB, +0x4C, 0xEB, 0x09, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0xC4, 0xF1, 0xBC, 0x9B, 0x60, 0xA5, 0x4C, 0xEB, +0xCC, 0xEB, 0x20, 0x6E, 0x08, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xC4, 0xF1, 0xBC, 0x9B, 0x60, 0xA5, +0x4C, 0xEB, 0xCC, 0xEB, 0x30, 0x6E, 0xCD, 0xEB, +0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xC5, +0x2B, 0xF1, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF3, 0xA4, 0x9A, 0xE4, 0xF1, 0x60, 0x9B, +0x01, 0x6F, 0xFF, 0x6E, 0xA0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF3, 0xA8, 0x9A, 0xE4, 0xF1, +0x64, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF3, 0xAC, 0x9A, 0xE4, 0xF1, 0x68, 0x9B, +0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, +0xB0, 0x9A, 0xE4, 0xF1, 0x6C, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xE4, 0xF1, 0xB0, 0x9B, +0xA3, 0xF3, 0x7C, 0xA2, 0x00, 0xA5, 0x72, 0x33, +0xEC, 0xEB, 0xCC, 0xE8, 0x42, 0x43, 0x64, 0x10, +0x30, 0xF0, 0x20, 0x6D, 0x30, 0xF0, 0x20, 0x6A, +0xA4, 0xF1, 0x58, 0x9A, 0xE4, 0xF1, 0xD4, 0x9D, +0x08, 0x6F, 0x80, 0xA2, 0xA0, 0xA6, 0xFF, 0x6A, +0xEB, 0xEF, 0x4C, 0xED, 0xEC, 0xED, 0xA3, 0xF3, +0xFD, 0xA3, 0x4C, 0xEC, 0xED, 0xED, 0x4C, 0xED, +0xA0, 0xC6, 0xA3, 0xF3, 0xBC, 0xA3, 0x08, 0x6B, +0xAC, 0xEB, 0x4C, 0xEB, 0x4E, 0x23, 0x10, 0x6B, +0xAC, 0xEB, 0x4C, 0xEB, 0x0B, 0x2B, 0x30, 0xF0, +0x20, 0x6B, 0xC4, 0xF1, 0xBC, 0x9B, 0x71, 0x6E, +0xCB, 0xEE, 0x60, 0xA5, 0x4C, 0xEB, 0xCC, 0xEB, +0x40, 0x6E, 0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC4, 0xF1, 0xBC, 0x9B, 0x71, 0x6E, 0xCB, 0xEE, +0x60, 0xA5, 0x4C, 0xEB, 0xCC, 0xEB, 0x50, 0x6E, +0xCD, 0xEB, 0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xC5, 0x2B, 0xF1, 0x18, 0x4A, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF3, 0xA4, 0x9A, 0xE4, 0xF1, +0x60, 0x9B, 0x01, 0x6F, 0xFF, 0x6E, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0xA8, 0x9A, +0xE4, 0xF1, 0x64, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF3, 0xAC, 0x9A, 0xE4, 0xF1, +0x68, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF3, 0xB0, 0x9A, 0xE4, 0xF1, 0x6C, 0x9B, +0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xE4, 0xF1, +0xB0, 0x9B, 0xA3, 0xF3, 0x7C, 0xA2, 0x00, 0xA5, +0x72, 0x33, 0xEC, 0xEB, 0xCC, 0xE8, 0x44, 0x43, +0xE4, 0xEA, 0x47, 0x67, 0x0D, 0xEA, 0xCC, 0xEA, +0x40, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF7, +0x44, 0x9A, 0x00, 0x6B, 0xFF, 0x69, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF7, 0x40, 0x9A, +0x02, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x60, 0xC2, +0x40, 0xA2, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF7, +0x6C, 0x9B, 0x2C, 0xEA, 0x50, 0x32, 0x01, 0x4A, +0x2C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF7, 0x48, 0x9A, 0x20, 0x6B, 0x2B, 0xF1, +0x18, 0x48, 0x60, 0xC2, 0xA3, 0xF3, 0x7C, 0xA0, +0x01, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x51, 0x22, +0x80, 0x18, 0x17, 0x71, 0x04, 0xD2, 0x80, 0x18, +0x3D, 0x70, 0xA3, 0xF3, 0x9E, 0xA0, 0x04, 0x95, +0x80, 0x18, 0x4B, 0x6F, 0xA3, 0xF3, 0x7C, 0xA0, +0x02, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x16, 0x22, +0xA3, 0xF3, 0x59, 0xA0, 0x03, 0x2A, 0x01, 0x6C, +0x80, 0x18, 0xEA, 0x71, 0x30, 0xF0, 0x20, 0x6A, +0xEE, 0xF4, 0x74, 0xA2, 0x40, 0x6A, 0x04, 0x6C, +0x6C, 0xEA, 0x05, 0x2A, 0x80, 0x18, 0x74, 0x6F, +0x01, 0x6C, 0x01, 0x2A, 0x02, 0x6C, 0x80, 0x18, +0xEA, 0x71, 0x24, 0x10, 0x40, 0x6A, 0x6C, 0xEA, +0x2C, 0xEA, 0x07, 0x22, 0xA3, 0xF3, 0x5A, 0xA0, +0x02, 0x72, 0x1C, 0x60, 0x02, 0x6C, 0x00, 0x6D, +0x10, 0x10, 0xA3, 0xF3, 0x5A, 0xA0, 0x02, 0x72, +0x11, 0x61, 0x00, 0x18, 0xC7, 0xCB, 0x80, 0x18, +0x74, 0x6F, 0x01, 0x72, 0x04, 0x61, 0x63, 0xF6, +0x98, 0xA0, 0x01, 0x6D, 0x02, 0x10, 0x00, 0x6C, +0xA4, 0x67, 0xA3, 0xF3, 0xDD, 0xA0, 0x00, 0x18, +0x28, 0xCE, 0x04, 0x10, 0xE3, 0xF5, 0x5F, 0xA0, +0xA3, 0xF3, 0x5A, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF7, 0x58, 0x9A, 0x22, 0x6B, 0x60, 0xC2, +0x31, 0x10, 0xA3, 0xF3, 0x9E, 0xA0, 0x00, 0x6D, +0x80, 0x18, 0x4B, 0x6F, 0xA3, 0xF3, 0x7C, 0xA0, +0x02, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x08, 0x22, +0xA3, 0xF3, 0x59, 0xA0, 0x04, 0x72, 0x22, 0x61, +0x00, 0x6C, 0x80, 0x18, 0xEA, 0x71, 0x1E, 0x10, +0xA3, 0xF3, 0x5A, 0xA0, 0x04, 0x6C, 0x02, 0x72, +0x03, 0x60, 0x08, 0x72, 0x06, 0x61, 0x0C, 0x6C, +0xA3, 0xF3, 0xDD, 0xA0, 0x01, 0x6D, 0x00, 0x18, +0x28, 0xCE, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, +0x18, 0x48, 0xA3, 0xF3, 0x9D, 0xA0, 0x80, 0x18, +0xDE, 0x40, 0x63, 0xF6, 0x98, 0xA0, 0xA3, 0xF3, +0xDD, 0xA0, 0x01, 0x6D, 0x00, 0x18, 0x28, 0xCE, +0x80, 0x18, 0x36, 0x6F, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x00, 0x6A, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, 0x54, 0x9A, +0xFF, 0x69, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0x9A, +0x2C, 0xEC, 0x01, 0x6D, 0x2B, 0xF1, 0x18, 0x48, +0x00, 0x18, 0x9A, 0xD3, 0xA3, 0xF3, 0x7C, 0xA0, +0x01, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x1D, 0x22, +0xA3, 0xF3, 0x59, 0xA0, 0x04, 0x72, 0x19, 0x60, +0xA3, 0xF3, 0x5A, 0xA0, 0x02, 0x72, 0x15, 0x60, +0x02, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x03, 0x22, +0x80, 0x18, 0xE6, 0x40, 0x0E, 0x10, 0x80, 0x18, +0xDC, 0x70, 0xA3, 0xF3, 0x5A, 0xA0, 0x0C, 0x6C, +0x08, 0x72, 0x02, 0x60, 0x06, 0x2A, 0x04, 0x6C, +0xA3, 0xF3, 0xDD, 0xA0, 0x00, 0x6D, 0x00, 0x18, +0x28, 0xCE, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0xC3, 0xF3, 0x94, 0xA2, 0x01, 0x6B, +0xFF, 0x6D, 0x6C, 0xEC, 0x49, 0x24, 0xA3, 0xF3, +0x9C, 0xA2, 0x8C, 0xEB, 0xAC, 0xEB, 0x44, 0x23, +0xC3, 0xF3, 0x7A, 0xA2, 0xFF, 0x73, 0x27, 0x60, +0xFF, 0x4B, 0xC3, 0xF3, 0x7A, 0xC2, 0xC3, 0xF3, +0xDA, 0xA2, 0x21, 0x2E, 0xC3, 0xF3, 0x99, 0xA2, +0x21, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xC3, 0xF3, +0x95, 0xA2, 0xC3, 0xF3, 0x79, 0xC2, 0x1F, 0x6B, +0x8C, 0xEB, 0xC3, 0xF3, 0x17, 0xA2, 0xA0, 0xF0, +0xF6, 0xA2, 0xC3, 0xF3, 0x75, 0xC2, 0x10, 0x6B, +0x0F, 0x6C, 0x6B, 0xEB, 0x8C, 0xEF, 0x0C, 0xEB, +0xED, 0xEB, 0xC3, 0xF3, 0x77, 0xC2, 0xC3, 0xF3, +0xD8, 0xC2, 0xE3, 0xF3, 0x40, 0xA2, 0x4C, 0xEC, +0xAC, 0xEC, 0x00, 0x18, 0xDB, 0xE7, 0x30, 0xF0, +0x20, 0x6A, 0x0E, 0xF5, 0xAC, 0xA2, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF5, 0x40, 0x9A, 0x0F, 0x6B, +0xA6, 0x35, 0x02, 0x6C, 0x6C, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF5, 0x4C, 0x9A, +0x40, 0xEA, 0x06, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF5, 0x48, 0x9A, 0x06, 0x6C, 0x40, 0xEA, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x02, 0x6C, 0x80, 0x18, 0x5E, 0x73, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x01, 0x6C, 0x80, 0x18, 0x5C, 0x75, 0x05, 0x97, +0x01, 0x6C, 0x80, 0x18, 0x5E, 0x73, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x6C, 0x80, 0x18, 0x5C, 0x75, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0xF7, 0x1F, 0x6B, -0xAC, 0xEB, 0x06, 0xD3, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF2, 0x68, 0x9B, 0xFF, 0x6A, 0x8C, 0xEA, -0x80, 0xAB, 0xE1, 0xF7, 0x1F, 0x6B, 0x00, 0x68, -0x8C, 0xEB, 0x69, 0xE2, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF2, 0x80, 0x9B, 0x5C, 0x32, 0x91, 0xE2, -0x04, 0xD4, 0x22, 0x10, 0x04, 0x92, 0x40, 0x9A, -0x05, 0xD2, 0x0D, 0x28, 0x30, 0xF0, 0x20, 0x69, -0xC0, 0xF3, 0x44, 0x99, 0x05, 0x96, 0x01, 0x6D, -0x83, 0xF1, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x99, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x05, 0x96, -0x01, 0x6D, 0x83, 0xF1, 0x18, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x04, 0x93, 0x01, 0x48, 0xFF, 0xF7, -0x1F, 0x6A, 0x04, 0x4B, 0x4C, 0xE8, 0x04, 0xD3, -0x06, 0x92, 0x43, 0xE8, 0xDB, 0x61, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x20, 0x6A, 0x10, 0xF0, 0x23, 0x6B, +0x00, 0x6C, 0x80, 0x18, 0x5E, 0x73, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF7, 0x54, 0x9A, 0xFF, 0x68, 0x0C, 0xEC, +0xC0, 0x9A, 0x00, 0x6D, 0x00, 0x18, 0x9A, 0xD3, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0xA3, 0xF3, 0x9C, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, +0x0C, 0xEB, 0x36, 0x23, 0xA3, 0xF3, 0x79, 0xA2, +0x04, 0x73, 0x32, 0x60, 0xA3, 0xF3, 0x7A, 0xA2, +0x02, 0x73, 0x2E, 0x60, 0x02, 0x6B, 0x8C, 0xEB, +0x0C, 0xEB, 0x03, 0x23, 0x80, 0x18, 0xE6, 0x40, +0x27, 0x10, 0x80, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x0C, 0xEB, 0x05, 0x23, 0xA3, 0xF3, 0x9F, 0xA2, +0x80, 0x18, 0x77, 0x40, 0x08, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0xFF, 0x6C, +0xA4, 0x67, 0xC4, 0x67, 0x40, 0xEA, 0x80, 0x18, +0x4A, 0x40, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x18, 0x4A, 0xA3, 0xF3, 0x7A, 0xA2, 0x0C, 0x73, +0x03, 0x61, 0x08, 0x6C, 0x00, 0x6D, 0x04, 0x10, +0x04, 0x73, 0x06, 0x61, 0x00, 0x6C, 0xA4, 0x67, +0xA3, 0xF3, 0xDD, 0xA2, 0x00, 0x18, 0x28, 0xCE, +0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, +0xC3, 0xF3, 0x74, 0xA0, 0x01, 0x6A, 0xFF, 0x69, +0x4C, 0xEB, 0x80, 0xF0, 0x0C, 0x23, 0xA3, 0xF3, +0x7C, 0xA0, 0x6C, 0xEA, 0x2C, 0xEA, 0x80, 0xF0, +0x06, 0x22, 0xC3, 0xF3, 0x79, 0xA0, 0x40, 0x6A, +0x6C, 0xEA, 0x2C, 0xEA, 0x45, 0x22, 0x20, 0x6A, +0x6D, 0xEA, 0xC3, 0xF3, 0x59, 0xC0, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF5, 0x98, 0x9A, 0x00, 0x18, +0xB9, 0xE6, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF5, +0x80, 0x9A, 0x00, 0x18, 0xB9, 0xE6, 0xC3, 0xF3, +0x56, 0xA0, 0x0F, 0x6B, 0x4C, 0xEB, 0x2C, 0xEB, +0x00, 0x6A, 0x11, 0x10, 0x0C, 0x6D, 0xB8, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x2B, 0xF1, 0x18, 0x4C, +0x12, 0xED, 0x91, 0xE5, 0xC3, 0xF3, 0xBF, 0xA4, +0x07, 0x6C, 0xAC, 0xEC, 0x02, 0x74, 0x05, 0x60, +0x01, 0x4A, 0xFF, 0x6C, 0x8C, 0xEA, 0x62, 0xEA, +0xED, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, +0x18, 0x48, 0xC3, 0xF3, 0xB4, 0xA0, 0x0F, 0x6C, +0x1F, 0x6B, 0x8C, 0xEA, 0x6B, 0xEB, 0x44, 0x32, +0xAC, 0xEB, 0x4D, 0xEB, 0xE3, 0xF3, 0x40, 0xA0, +0xC3, 0xF3, 0x74, 0xC0, 0x4C, 0xEC, 0x00, 0x18, +0x01, 0xE8, 0xC3, 0xF3, 0x79, 0xA0, 0x41, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xC3, 0xF3, 0x59, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x0E, 0xF5, 0xAC, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, 0x40, 0x9A, +0x0F, 0x6B, 0xA6, 0x35, 0x02, 0x6C, 0x6C, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF5, +0x4C, 0x9A, 0x40, 0xEA, 0x06, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF5, 0x48, 0x9A, 0x06, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF7, +0x4C, 0x9A, 0x0F, 0x6C, 0xFF, 0x6E, 0xE0, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, +0xC3, 0xF3, 0xB4, 0xA2, 0xC3, 0xF3, 0x64, 0x9A, +0xCC, 0xEF, 0xA6, 0x35, 0x8C, 0xED, 0x0C, 0x6C, +0x98, 0xED, 0x62, 0x33, 0x6A, 0x33, 0x12, 0xED, +0x49, 0xE5, 0xE3, 0xF3, 0x80, 0xA2, 0x4F, 0x47, +0x57, 0x32, 0x92, 0x34, 0x8F, 0xE3, 0x53, 0xE3, +0xCC, 0xEC, 0x80, 0x18, 0xC5, 0x69, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x02, 0x6C, 0x80, 0x18, +0xB1, 0x73, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x01, 0x6C, 0x80, 0x18, +0xB1, 0x73, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x6C, 0x80, 0x18, +0xB1, 0x73, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0xF7, 0x1F, 0x6B, 0xAC, 0xEB, 0x06, 0xD3, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF2, 0x6C, 0x9B, +0xFF, 0x6A, 0x8C, 0xEA, 0x80, 0xAB, 0xE1, 0xF7, +0x1F, 0x6B, 0x00, 0x68, 0x8C, 0xEB, 0x69, 0xE2, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, 0x84, 0x9B, +0x5C, 0x32, 0x91, 0xE2, 0x04, 0xD4, 0x22, 0x10, +0x04, 0x92, 0x40, 0x9A, 0x05, 0xD2, 0x0D, 0x28, +0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, +0x05, 0x96, 0x01, 0x6D, 0x83, 0xF1, 0x18, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x05, 0x96, 0x01, 0x6D, 0x83, 0xF1, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x04, 0x93, +0x01, 0x48, 0xFF, 0xF7, 0x1F, 0x6A, 0x04, 0x4B, +0x4C, 0xE8, 0x04, 0xD3, 0x06, 0x92, 0x43, 0xE8, +0xDB, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0x10, 0xF0, 0x23, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF0, 0x1D, 0x4B, +0x40, 0xF1, 0x68, 0xDA, 0x10, 0xF0, 0x23, 0x6B, 0x40, 0xF1, 0x08, 0x4A, 0xC0, 0xF5, 0x15, 0x4B, -0x61, 0xDA, 0x10, 0xF0, 0x23, 0x6B, 0xAB, 0xF3, -0x09, 0x4B, 0x62, 0xDA, 0x10, 0xF0, 0x23, 0x6B, -0x4B, 0xF4, 0x01, 0x4B, 0x63, 0xDA, 0x10, 0xF0, -0x23, 0x6B, 0x0B, 0xF4, 0x0D, 0x4B, 0x64, 0xDA, -0x10, 0xF0, 0x23, 0x6B, 0xCB, 0xF3, 0x19, 0x4B, -0x65, 0xDA, 0x10, 0xF0, 0x23, 0x6B, 0x6B, 0xF3, -0x19, 0x4B, 0x66, 0xDA, 0x10, 0xF0, 0x23, 0x6B, -0x4B, 0xF3, 0x09, 0x4B, 0x67, 0xDA, 0x20, 0xE8, +0x61, 0xDA, 0x10, 0xF0, 0x23, 0x6B, 0x0B, 0xF1, +0x01, 0x4B, 0x62, 0xDA, 0x10, 0xF0, 0x23, 0x6B, +0x8B, 0xF1, 0x19, 0x4B, 0x63, 0xDA, 0x10, 0xF0, +0x23, 0x6B, 0x6B, 0xF1, 0x05, 0x4B, 0x64, 0xDA, +0x10, 0xF0, 0x23, 0x6B, 0x2B, 0xF1, 0x11, 0x4B, +0x65, 0xDA, 0x10, 0xF0, 0x23, 0x6B, 0xCB, 0xF0, +0x11, 0x4B, 0x66, 0xDA, 0x10, 0xF0, 0x23, 0x6B, +0xAB, 0xF0, 0x01, 0x4B, 0x67, 0xDA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x00, 0x6B, 0x63, 0xF3, 0x74, 0xC2, 0x63, 0xF3, 0x75, 0xC2, 0x63, 0xF3, 0x76, 0xC2, 0x63, 0xF3, 0x77, 0xC2, 0x42, 0xF4, 0x10, 0x6A, 0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF1, 0x60, 0x9B, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF1, 0x64, 0x9B, 0x6D, 0xE2, +0x43, 0xF1, 0x64, 0x9B, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF1, 0x68, 0x9B, 0x6D, 0xE2, 0x04, 0x4A, 0x00, 0x6C, 0x62, 0xF4, 0x00, 0x72, 0x80, 0xDB, 0xE9, 0x61, 0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x54, 0x9A, 0x03, 0x6C, 0x60, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x50, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x54, 0x9A, 0x00, 0xF5, 0x62, 0x33, 0x8C, 0xEB, 0x40, 0x9A, 0x01, 0x73, 0x42, 0x32, 0x52, 0x32, 0x8C, 0xEA, 0x05, 0x60, 0x0B, 0x2B, 0x02, 0x5A, 0x50, 0x6C, @@ -40832,20 +40228,20 @@ u8 array_mp_8822c_fw_nic[] = { 0x28, 0x6C, 0x87, 0xEA, 0xFF, 0x6A, 0x4C, 0xEC, 0x06, 0x10, 0x02, 0x5A, 0x28, 0x6C, 0x03, 0x60, 0x14, 0x6C, 0x01, 0x10, 0x50, 0x6C, 0x80, 0x18, -0x0A, 0x79, 0x80, 0x18, 0xD1, 0x00, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF2, 0x68, 0x9B, 0x00, 0x6A, +0x62, 0x77, 0x80, 0x18, 0xD1, 0x00, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF2, 0x6C, 0x9B, 0x00, 0x6A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x74, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF1, 0x78, 0x9B, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF2, 0x64, 0x9B, 0x40, 0xCB, +0xC3, 0xF1, 0x7C, 0x9B, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF2, 0x68, 0x9B, 0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, 0x60, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, -0x64, 0x9B, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, +0x68, 0x9B, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0x00, 0x69, 0xA0, 0xF0, 0x24, 0xD8, 0xA0, 0xF1, 0x20, 0xC0, 0x80, 0x18, -0x00, 0x76, 0x80, 0x18, 0x7C, 0x77, 0x30, 0xF0, +0x55, 0x74, 0x80, 0x18, 0xD4, 0x75, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF2, 0x3C, 0xC0, 0xAE, 0xF4, 0x14, 0x4A, 0xCE, 0xF4, 0x04, 0x4C, 0x00, 0x6B, 0x60, 0xC2, 0x70, 0xC2, @@ -40855,41 +40251,41 @@ u8 array_mp_8822c_fw_nic[] = { 0x79, 0xC2, 0x63, 0xF3, 0x7A, 0xC2, 0x63, 0xF3, 0x7B, 0xC2, 0x63, 0xF3, 0x78, 0xC2, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x80, 0x18, 0x14, 0x76, 0x80, 0x18, 0x91, 0x76, -0x00, 0x18, 0x30, 0xC3, 0x00, 0x18, 0x3F, 0xC3, +0x80, 0x18, 0x6C, 0x74, 0x80, 0x18, 0xE9, 0x74, +0x00, 0x18, 0x23, 0xC2, 0x00, 0x18, 0x32, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x50, 0x9A, -0x40, 0xEA, 0x80, 0x18, 0xA4, 0x41, 0x00, 0x18, -0x3B, 0xF3, 0x80, 0x18, 0x30, 0x26, 0x80, 0x18, -0xC3, 0x63, 0x80, 0x18, 0xED, 0x6A, 0x00, 0x18, -0xE3, 0xCD, 0x00, 0x18, 0xAE, 0xC6, 0x80, 0x18, -0x34, 0x40, 0x80, 0x18, 0xE1, 0x70, 0x30, 0xF0, +0x40, 0xEA, 0x80, 0x18, 0xB3, 0x41, 0x00, 0x18, +0x91, 0xF2, 0x80, 0x18, 0x08, 0x29, 0x80, 0x18, +0x57, 0x62, 0x80, 0x18, 0x11, 0x69, 0x00, 0x18, +0x38, 0xCD, 0x00, 0x18, 0xFA, 0xC5, 0x80, 0x18, +0x34, 0x40, 0x80, 0x18, 0x36, 0x6F, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, 0x44, 0x9A, 0x40, 0xEA, -0x80, 0x18, 0xD8, 0x66, 0x80, 0x18, 0x1C, 0x24, -0x00, 0x18, 0x17, 0xE7, 0x01, 0x6A, 0x04, 0xD2, +0x80, 0x18, 0xFC, 0x64, 0x80, 0x18, 0xF4, 0x26, +0x00, 0x18, 0x6D, 0xE6, 0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, 0x24, 0x6C, 0x01, 0x6F, 0x00, 0x6D, -0x64, 0x6E, 0xEB, 0xEF, 0xD3, 0xF2, 0x11, 0x4C, -0x40, 0xEA, 0x00, 0x18, 0x33, 0xE7, 0x80, 0x18, +0x64, 0x6E, 0xEB, 0xEF, 0x33, 0xF0, 0x09, 0x4C, +0x40, 0xEA, 0x00, 0x18, 0x89, 0xE6, 0x80, 0x18, 0x78, 0x00, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x18, 0x4A, 0xC7, 0xF3, 0x8C, 0xA2, 0x02, 0x6B, -0x6B, 0xEB, 0x8C, 0xEB, 0xC7, 0xF3, 0x6C, 0xC2, -0x80, 0x18, 0xFD, 0x6C, 0x07, 0x97, 0x04, 0x63, +0x18, 0x4A, 0xC7, 0xF3, 0x88, 0xA2, 0x02, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0xC7, 0xF3, 0x68, 0xC2, +0x80, 0x18, 0x52, 0x6B, 0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0x00, 0x6B, 0xA0, 0xF6, 0x62, 0xC2, 0xA0, 0xF6, 0x63, 0xC2, 0xA0, 0xF1, 0x60, 0xC2, 0xA0, 0xF1, 0x61, 0xC2, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, -0x87, 0xF3, 0x65, 0xA2, 0x0F, 0x23, 0x87, 0xF3, -0x64, 0xA2, 0x0C, 0x23, 0x87, 0xF3, 0x6A, 0xA2, -0x09, 0x23, 0x87, 0xF3, 0x66, 0xA2, 0x06, 0x23, -0x87, 0xF3, 0x68, 0xA2, 0x03, 0x23, 0x87, 0xF3, -0x47, 0xA2, 0x1E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF2, 0x70, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, +0x87, 0xF3, 0x61, 0xA2, 0x0F, 0x23, 0x87, 0xF3, +0x60, 0xA2, 0x0C, 0x23, 0x87, 0xF3, 0x66, 0xA2, +0x09, 0x23, 0x87, 0xF3, 0x62, 0xA2, 0x06, 0x23, +0x87, 0xF3, 0x64, 0xA2, 0x03, 0x23, 0x87, 0xF3, +0x43, 0xA2, 0x1E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x74, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, 0x10, 0xF0, 0x00, 0x6D, 0x40, 0xAB, 0xAB, 0xED, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x44, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF7, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF7, 0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, 0x54, 0x9A, 0x60, 0xDA, 0xF0, 0x17, 0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, @@ -40909,14 +40305,14 @@ u8 array_mp_8822c_fw_nic[] = { 0x50, 0xA3, 0x0A, 0x95, 0xE0, 0xF1, 0x19, 0x6C, 0x44, 0xC5, 0xC0, 0xF3, 0x48, 0x98, 0x04, 0x05, 0x40, 0xEA, 0xBD, 0x67, 0x90, 0xA5, 0x87, 0xF3, -0x48, 0xA1, 0x0F, 0x6B, 0x8C, 0xEB, 0x50, 0x32, +0x44, 0xA1, 0x0F, 0x6B, 0x8C, 0xEB, 0x50, 0x32, 0x6D, 0xEA, 0x0A, 0x93, 0x04, 0x05, 0xE0, 0xF1, 0x1B, 0x6C, 0x45, 0xC3, 0xC0, 0xF3, 0x48, 0x98, -0x40, 0xEA, 0x87, 0xF3, 0x4A, 0xA1, 0x87, 0xF3, -0x65, 0xA1, 0x0A, 0x95, 0x4C, 0x32, 0x74, 0x33, -0x6D, 0xEA, 0x87, 0xF3, 0x64, 0xA1, 0x6D, 0xEA, -0x46, 0xC5, 0x87, 0xF3, 0x46, 0xA1, 0x87, 0xF3, -0x67, 0xA1, 0x48, 0x32, 0x78, 0x33, 0x6D, 0xEA, +0x40, 0xEA, 0x87, 0xF3, 0x46, 0xA1, 0x87, 0xF3, +0x61, 0xA1, 0x0A, 0x95, 0x4C, 0x32, 0x74, 0x33, +0x6D, 0xEA, 0x87, 0xF3, 0x60, 0xA1, 0x6D, 0xEA, +0x46, 0xC5, 0x87, 0xF3, 0x42, 0xA1, 0x87, 0xF3, +0x63, 0xA1, 0x48, 0x32, 0x78, 0x33, 0x6D, 0xEA, 0x33, 0x6B, 0x6D, 0xEA, 0x47, 0xC5, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, @@ -40941,99 +40337,99 @@ u8 array_mp_8822c_fw_nic[] = { 0x7D, 0x67, 0x50, 0xA3, 0x47, 0xC1, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD0, 0x04, 0x00, -0x90, 0x67, 0x80, 0x18, 0xB3, 0x76, 0xA0, 0xF1, +0x90, 0x67, 0x80, 0x18, 0x0B, 0x75, 0xA0, 0xF1, 0x02, 0x6A, 0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x05, 0x2B, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, 0x60, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, 0x64, 0x9B, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, -0x64, 0x9B, 0x80, 0xA0, 0x6D, 0xE2, 0x01, 0x4A, +0x68, 0x9B, 0x80, 0xA0, 0x6D, 0xE2, 0x01, 0x4A, 0xA0, 0xF1, 0x0A, 0x72, 0x80, 0xC3, 0x01, 0x48, 0xE8, 0x61, 0x04, 0x00, 0x90, 0x67, 0x80, 0x18, -0xEA, 0x76, 0xA0, 0xF1, 0x0A, 0x6A, 0x1F, 0xF7, +0x42, 0x75, 0xA0, 0xF1, 0x0A, 0x6A, 0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF1, 0x60, 0x9B, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF1, 0x64, 0x9B, 0x80, 0xA0, +0x43, 0xF1, 0x64, 0x9B, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF1, 0x68, 0x9B, 0x80, 0xA0, 0x6D, 0xE2, 0x01, 0x4A, 0xA0, 0xF1, 0x0F, 0x72, 0x80, 0xC3, 0x01, 0x48, 0xE8, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF7, 0x5C, 0x9A, 0x19, 0x6B, +0x20, 0x6A, 0x83, 0xF7, 0x48, 0x9A, 0x19, 0x6B, 0x60, 0xC2, 0x09, 0x97, 0x08, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, -0x18, 0x48, 0x87, 0xF3, 0x44, 0xA0, 0x0E, 0x2A, +0x18, 0x48, 0x87, 0xF3, 0x40, 0xA0, 0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, 0x1A, 0x6C, 0x04, 0x05, 0x40, 0xEA, 0x9D, 0x67, 0x70, 0xA4, 0x07, 0x6A, 0x6C, 0xEA, -0x87, 0xF3, 0x44, 0xC0, 0x30, 0xF0, 0x20, 0x68, -0x2B, 0xF1, 0x18, 0x48, 0x87, 0xF3, 0x45, 0xA0, +0x87, 0xF3, 0x40, 0xC0, 0x30, 0xF0, 0x20, 0x68, +0x2B, 0xF1, 0x18, 0x48, 0x87, 0xF3, 0x41, 0xA0, 0x0D, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, 0x1A, 0x6C, 0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x56, 0x32, -0x87, 0xF3, 0x45, 0xC0, 0x30, 0xF0, 0x20, 0x68, -0x2B, 0xF1, 0x18, 0x48, 0x87, 0xF3, 0x4A, 0xA0, +0x87, 0xF3, 0x41, 0xC0, 0x30, 0xF0, 0x20, 0x68, +0x2B, 0xF1, 0x18, 0x48, 0x87, 0xF3, 0x46, 0xA0, 0x0F, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, 0x1A, 0x6C, 0x04, 0x05, 0x40, 0xEA, 0x9D, 0x67, 0x50, 0xA4, 0x18, 0x6B, -0x6C, 0xEA, 0x4F, 0x32, 0x87, 0xF3, 0x4A, 0xC0, +0x6C, 0xEA, 0x4F, 0x32, 0x87, 0xF3, 0x46, 0xC0, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, -0x87, 0xF3, 0x48, 0xA0, 0x0D, 0x2A, 0x30, 0xF0, +0x87, 0xF3, 0x44, 0xA0, 0x0D, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, 0x1C, 0x6C, 0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, -0x50, 0xA3, 0x52, 0x32, 0x87, 0xF3, 0x48, 0xC0, +0x50, 0xA3, 0x52, 0x32, 0x87, 0xF3, 0x44, 0xC0, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, -0x87, 0xF3, 0x46, 0xA0, 0x0E, 0x2A, 0x30, 0xF0, +0x87, 0xF3, 0x42, 0xA0, 0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, 0x1D, 0x6C, 0x04, 0x05, 0x40, 0xEA, 0x9D, 0x67, 0x70, 0xA4, 0x03, 0x6A, 0x6C, 0xEA, 0x87, 0xF3, -0x46, 0xC0, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, -0x18, 0x48, 0x87, 0xF3, 0x47, 0xA0, 0x0F, 0x2A, +0x42, 0xC0, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, +0x18, 0x48, 0x87, 0xF3, 0x43, 0xA0, 0x0F, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, 0x1D, 0x6C, 0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x30, 0x6B, 0x6C, 0xEA, -0x53, 0x32, 0x87, 0xF3, 0x47, 0xC0, 0x07, 0x97, +0x53, 0x32, 0x87, 0xF3, 0x43, 0xC0, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x48, 0x99, 0xE0, 0xF1, 0x19, 0x6C, 0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, 0x18, 0x48, 0x52, 0x32, 0x87, 0xF3, -0x48, 0xC0, 0xC0, 0xF3, 0x48, 0x99, 0xE0, 0xF1, +0x44, 0xC0, 0xC0, 0xF3, 0x48, 0x99, 0xE0, 0xF1, 0x1B, 0x6C, 0x04, 0x05, 0x40, 0xEA, 0x9D, 0x67, 0x70, 0xA4, 0x07, 0x6A, 0x6C, 0xEA, 0x87, 0xF3, -0x44, 0xC0, 0x43, 0x67, 0x18, 0x6B, 0x4C, 0xEB, -0x6F, 0x33, 0x87, 0xF3, 0x6A, 0xC0, 0x4F, 0x72, -0x56, 0x33, 0x87, 0xF3, 0x65, 0xC0, 0x0E, 0x61, +0x40, 0xC0, 0x43, 0x67, 0x18, 0x6B, 0x4C, 0xEB, +0x6F, 0x33, 0x87, 0xF3, 0x66, 0xC0, 0x4F, 0x72, +0x56, 0x33, 0x87, 0xF3, 0x61, 0xC0, 0x0E, 0x61, 0xC0, 0xF3, 0x48, 0x99, 0xE0, 0xF1, 0x1A, 0x6C, 0x00, 0xF0, 0x11, 0x05, 0x40, 0xEA, 0x7D, 0x67, 0x51, 0xA3, 0x57, 0x72, 0x03, 0x61, 0x02, 0x6A, -0x87, 0xF3, 0x4A, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x87, 0xF3, 0x46, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, 0x1D, 0x6C, 0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, 0x90, 0xA3, 0x0C, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x8C, 0xEB, 0x2B, 0xF1, 0x18, 0x4A, 0x6B, 0x33, 0x9A, 0x34, -0x87, 0xF3, 0x66, 0xC2, 0x87, 0xF3, 0x87, 0xC2, -0x80, 0x18, 0x39, 0x77, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF7, 0x5C, 0x9A, 0x60, 0xA2, 0xFF, 0x6A, +0x87, 0xF3, 0x62, 0xC2, 0x87, 0xF3, 0x83, 0xC2, +0x80, 0x18, 0x91, 0x75, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF7, 0x48, 0x9A, 0x60, 0xA2, 0xFF, 0x6A, 0x6C, 0xEA, 0xFD, 0x72, 0x02, 0x61, 0x80, 0x18, -0x14, 0x77, 0x80, 0x18, 0x98, 0x76, 0x09, 0x97, +0x6C, 0x75, 0x80, 0x18, 0xF0, 0x74, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, 0x40, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, 0x44, 0x9A, 0x01, 0x6B, 0x60, 0xC2, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, 0x84, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, 0x88, 0x9A, 0xFF, 0x6B, 0x20, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF1, 0x84, 0x9A, 0x08, 0x6D, +0x20, 0x6A, 0x03, 0xF1, 0x88, 0x9A, 0x08, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF7, 0x68, 0x9A, 0xFD, 0x6A, 0xFF, 0x6C, +0xC3, 0xF7, 0x6C, 0x9A, 0xFD, 0x6A, 0xFF, 0x6C, 0xA0, 0xA3, 0xAC, 0xEA, 0x40, 0xC3, 0x40, 0xA3, 0x01, 0x6D, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x48, 0x9A, 0xA3, 0xF1, 0x88, 0x9B, +0x80, 0xF2, 0x48, 0x9A, 0xA3, 0xF1, 0x8C, 0x9B, 0x00, 0x6D, 0x02, 0xF0, 0x00, 0x6E, 0x40, 0xEA, 0x00, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, -0x68, 0x9B, 0x54, 0x34, 0x01, 0x4A, 0x6D, 0xE4, +0x6C, 0x9B, 0x54, 0x34, 0x01, 0x4A, 0x6D, 0xE4, 0x80, 0x72, 0x04, 0x6C, 0x80, 0xC3, 0xF5, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x90, 0x9B, 0x80, 0xF2, 0x48, 0x9A, @@ -41041,286 +40437,286 @@ u8 array_mp_8822c_fw_nic[] = { 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x52, 0x9B, 0x8D, 0xEA, 0x52, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF7, 0x6C, 0x9B, 0x80, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, 0x68, 0x9B, +0x20, 0x6B, 0xC3, 0xF7, 0x70, 0x9B, 0x80, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, 0x6C, 0x9B, 0x40, 0xDB, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0xB2, 0x9B, 0x8F, 0xEA, 0xAC, 0xEA, 0x52, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF1, 0x68, 0x9B, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF7, 0x4C, 0x9A, 0x80, 0xDA, +0x83, 0xF1, 0x6C, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF7, 0x50, 0x9A, 0x80, 0xDA, 0x20, 0xE8, 0x00, 0x65, 0x05, 0x5C, 0x5E, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, 0x42, 0xF7, 0x14, 0x4A, 0x89, 0xE2, 0x40, 0x9A, 0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x58, 0x9B, 0xAD, 0xEA, 0x2B, 0xF1, 0x58, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF7, 0x60, 0x9B, 0xA0, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x68, 0x9B, +0x20, 0x6B, 0x43, 0xF7, 0x6C, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x6C, 0x9B, 0x32, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x41, 0x9B, 0xAD, 0xEA, 0x41, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF7, 0x70, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF7, 0x74, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, -0x6C, 0x9B, 0x21, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x70, 0x9B, 0x21, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x42, 0x9B, 0xAD, 0xEA, 0x42, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF7, -0x74, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF1, 0x70, 0x9B, 0x10, 0x10, 0x30, 0xF0, +0x78, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF1, 0x74, 0x9B, 0x10, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x43, 0x9B, 0xAD, 0xEA, 0x43, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF7, 0x78, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF1, 0x78, 0x9B, 0x40, 0xDB, +0xC3, 0xF7, 0x7C, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF1, 0x7C, 0x9B, 0x40, 0xDB, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x44, 0x9B, 0xAD, 0xEA, 0x44, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF7, 0x7C, 0x9B, -0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, -0x7C, 0x9B, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF7, 0x60, 0x9B, +0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, +0x60, 0x9B, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, 0x05, 0x5C, 0x63, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, 0x62, 0xF7, 0x08, 0x4A, 0x89, 0xE2, 0x40, 0x9A, 0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x98, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x2B, 0xF1, 0x58, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF1, 0x68, 0x9B, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF7, 0x40, 0x9A, 0x35, 0x10, +0x63, 0xF1, 0x6C, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF7, 0x4C, 0x9A, 0x35, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x81, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x41, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x6C, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x70, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, -0x50, 0x9A, 0x23, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x54, 0x9A, 0x23, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x82, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x42, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF1, 0x70, 0x9B, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF7, 0x54, 0x9A, 0x11, 0x10, +0x63, 0xF1, 0x74, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF7, 0x58, 0x9A, 0x11, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x83, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x43, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x78, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x7C, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, -0x58, 0x9A, 0xA0, 0xDA, 0x20, 0xE8, 0x30, 0xF0, +0x5C, 0x9A, 0xA0, 0xDA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x84, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x44, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF1, 0x7C, 0x9B, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, 0x5C, 0x9A, +0x20, 0x6B, 0x83, 0xF1, 0x60, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, 0x40, 0x9A, 0xA0, 0xDA, 0x20, 0xE8, 0x01, 0x74, 0x15, 0x60, 0x03, 0x24, 0x02, 0x74, 0x23, 0x60, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x54, 0x9B, 0xAD, 0xEA, 0x54, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF2, 0x68, 0x9B, 0xA0, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, 0x6C, 0x9B, +0x20, 0x6B, 0x63, 0xF2, 0x6C, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, 0x70, 0x9B, 0x21, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x55, 0x9B, 0xAD, 0xEA, 0x55, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF7, 0x64, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF7, 0x70, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, -0x60, 0x9B, 0x10, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x64, 0x9B, 0x10, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x56, 0x9B, 0xAD, 0xEA, 0x56, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF7, -0x60, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF1, 0x64, 0x9B, 0x40, 0xDB, 0x20, 0xE8, +0x64, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF1, 0x68, 0x9B, 0x40, 0xDB, 0x20, 0xE8, 0x01, 0x74, 0x16, 0x60, 0x03, 0x24, 0x02, 0x74, 0x25, 0x60, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x94, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x54, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF1, 0x6C, 0x9B, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF2, 0x48, 0x9A, 0x23, 0x10, +0x83, 0xF1, 0x70, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF2, 0x4C, 0x9A, 0x23, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x95, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x55, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, 0x60, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, 0x64, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF7, -0x44, 0x9A, 0x11, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x50, 0x9A, 0x11, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x96, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x56, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF1, 0x64, 0x9B, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF7, 0x40, 0x9A, 0xA0, 0xDA, +0x83, 0xF1, 0x68, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF7, 0x44, 0x9A, 0xA0, 0xDA, 0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6C, -0x63, 0xF1, 0x88, 0x9C, 0x00, 0x6A, 0x30, 0xF0, +0x63, 0xF1, 0x8C, 0x9C, 0x00, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x58, 0xDB, 0x2B, 0xF1, 0x18, 0x4B, 0x41, 0xDB, 0x42, 0xDB, 0x43, 0xDB, 0x44, 0xDB, 0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, -0x63, 0xF1, 0x8C, 0x9C, 0x40, 0xDC, 0x30, 0xF0, -0x20, 0x6C, 0x63, 0xF1, 0x90, 0x9C, 0x40, 0xDC, -0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF1, 0x98, 0x9C, -0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF1, -0x9C, 0x9C, 0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, -0x83, 0xF1, 0x8C, 0x9C, 0x54, 0xDB, 0x55, 0xDB, +0x63, 0xF1, 0x90, 0x9C, 0x40, 0xDC, 0x30, 0xF0, +0x20, 0x6C, 0x63, 0xF1, 0x94, 0x9C, 0x40, 0xDC, +0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF1, 0x9C, 0x9C, 0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF1, 0x80, 0x9C, 0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, -0x83, 0xF1, 0x84, 0x9C, 0x56, 0xDB, 0x40, 0xDC, +0x83, 0xF1, 0x90, 0x9C, 0x54, 0xDB, 0x55, 0xDB, +0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF1, +0x84, 0x9C, 0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, +0x83, 0xF1, 0x88, 0x9C, 0x56, 0xDB, 0x40, 0xDC, 0x52, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, -0x68, 0x9B, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF7, 0x60, 0x9B, +0x6C, 0x9B, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF7, 0x6C, 0x9B, 0x01, 0x6A, 0x4B, 0xEA, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF7, 0x70, 0x9B, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF7, 0x74, 0x9B, +0x20, 0x6B, 0xC3, 0xF7, 0x74, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF7, 0x78, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF7, -0x78, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF7, 0x7C, 0x9B, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF2, 0x68, 0x9B, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF7, 0x64, 0x9B, +0x7C, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF7, 0x60, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF2, 0x6C, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF7, 0x70, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF7, -0x60, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF7, 0x6C, 0x9B, 0x40, 0xDB, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, 0xA4, 0x9A, +0x64, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF7, 0x70, 0x9B, 0x40, 0xDB, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, 0xA8, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF3, 0x12, 0x6E, 0x2B, 0xF1, 0xD8, 0xDB, 0x01, 0xF7, 0x01, 0x6A, 0x2B, 0xF1, 0x18, 0x4B, 0x00, 0x6C, 0x42, 0xDB, 0x43, 0xDB, 0xA1, 0xDB, 0x84, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF1, 0x68, 0x9B, 0xC0, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x6C, 0x9B, +0x20, 0x6B, 0x63, 0xF1, 0x6C, 0x9B, 0xC0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x70, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, -0x70, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF1, 0x78, 0x9B, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF1, 0x5C, 0x9A, 0x80, 0xDA, +0x74, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF1, 0x7C, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x40, 0x9A, 0x80, 0xDA, 0x20, 0xE8, 0x00, 0x65, 0x80, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF1, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF1, 0x68, 0x9B, 0x40, 0xDB, +0x20, 0x6B, 0x83, 0xF1, 0x6C, 0x9B, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF7, 0x88, 0x9B, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF7, 0x8C, 0x9B, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xC0, 0xF1, 0x0F, 0x6D, 0xFF, 0x6B, 0xB4, 0xDA, 0x95, 0xDA, 0x76, 0xDA, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x4C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x50, 0x9A, 0xA0, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, -0x40, 0x9A, 0x80, 0xDA, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF1, 0x44, 0x9A, 0x60, 0xDA, 0x20, 0xE8, -0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0x8D, 0x78, -0x80, 0x18, 0xAC, 0x78, 0x80, 0x18, 0xC4, 0x78, -0x80, 0x18, 0xE1, 0x78, 0x80, 0x18, 0xDB, 0x78, +0x44, 0x9A, 0x80, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x48, 0x9A, 0x60, 0xDA, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xE5, 0x76, +0x80, 0x18, 0x04, 0x77, 0x80, 0x18, 0x1C, 0x77, +0x80, 0x18, 0x39, 0x77, 0x80, 0x18, 0x33, 0x77, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x80, 0x18, 0x1E, 0x79, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0x18, 0x76, 0x77, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0x18, 0x4B, 0x22, 0xF6, 0x54, 0xC3, 0x00, 0x6A, 0x22, 0xF6, 0x55, 0xC3, 0x80, 0x18, -0xBD, 0x77, 0x80, 0x18, 0x4C, 0x7B, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF7, 0x4C, 0x9A, 0x3F, 0x6B, -0x60, 0xC2, 0x80, 0x18, 0xAE, 0x77, 0x80, 0x18, -0xB2, 0x77, 0x80, 0x18, 0xC5, 0x77, 0x80, 0x18, -0x96, 0x7A, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x1B, 0xD8, +0x15, 0x76, 0x80, 0x18, 0xA4, 0x79, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF7, 0x50, 0x9A, 0x3F, 0x6B, +0x60, 0xC2, 0x80, 0x18, 0x06, 0x76, 0x80, 0x18, +0x0A, 0x76, 0x80, 0x18, 0x1D, 0x76, 0x80, 0x18, +0xEE, 0x78, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x71, 0xD7, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF0, 0x5C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF0, 0x40, 0x9A, 0xE0, 0xF1, 0x1B, 0x6B, 0x6B, 0xEB, 0x60, 0xCA, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x78, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x7C, 0x9A, 0xFB, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF0, 0x60, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF7, 0x8C, 0x9C, +0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF0, 0x64, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF7, 0x90, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, 0x40, 0xDB, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF0, 0x54, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF0, 0x58, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, 0x40, 0xAA, 0x4C, 0xEB, 0x62, 0x33, 0x03, 0x6A, 0x72, 0x33, 0x4C, 0xEB, 0x02, 0x6A, 0x04, 0x23, 0x01, 0x73, 0x01, 0x6A, 0x01, 0x60, 0x03, 0x6A, 0x20, 0xE8, 0x00, 0x65, -0x10, 0xF0, 0x23, 0x6A, 0x6C, 0xF3, 0x09, 0x4A, +0x10, 0xF0, 0x23, 0x6A, 0xEC, 0xF0, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, 0x48, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x6C, 0xF3, 0x1D, 0x4A, +0x10, 0xF0, 0x23, 0x6A, 0xEC, 0xF0, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, 0x4C, 0xDB, -0x10, 0xF0, 0x32, 0x6A, 0x5C, 0xF4, 0x01, 0x4A, +0x10, 0xF0, 0x32, 0x6A, 0xBB, 0xF5, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, 0x50, 0xDB, -0x10, 0xF0, 0x24, 0x6A, 0xF4, 0xF3, 0x05, 0x4A, +0x10, 0xF0, 0x24, 0x6A, 0x34, 0xF1, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF2, 0x48, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0x04, 0xF0, 0x01, 0x4A, +0x10, 0xF0, 0x31, 0x6A, 0x24, 0xF0, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF2, 0x4C, 0xDB, -0x10, 0xF0, 0x24, 0x6A, 0xB4, 0xF3, 0x15, 0x4A, +0x10, 0xF0, 0x24, 0x6A, 0x14, 0xF1, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, 0x54, 0xDB, -0x10, 0xF0, 0x24, 0x6A, 0xB2, 0xF6, 0x19, 0x4A, +0x10, 0xF0, 0x24, 0x6A, 0x12, 0xF4, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF2, 0x50, 0xDB, -0x10, 0xF0, 0x24, 0x6A, 0x98, 0xF7, 0x15, 0x4A, +0x10, 0xF0, 0x24, 0x6A, 0xF8, 0xF4, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF2, 0x54, 0xDB, -0x10, 0xF0, 0x24, 0x6A, 0xD8, 0xF6, 0x15, 0x4A, +0x10, 0xF0, 0x24, 0x6A, 0x38, 0xF4, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF2, 0x54, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x6A, 0xF4, 0x05, 0x4A, +0x10, 0xF0, 0x23, 0x6A, 0xAA, 0xF1, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF2, 0x58, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xAA, 0xF5, 0x11, 0x4A, +0x10, 0xF0, 0x23, 0x6A, 0x0A, 0xF3, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF2, 0x5C, 0xDB, -0x10, 0xF0, 0x24, 0x6A, 0xF0, 0xF7, 0x05, 0x4A, +0x10, 0xF0, 0x24, 0x6A, 0x30, 0xF5, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF3, 0x40, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xEE, 0xF6, 0x15, 0x4A, +0x10, 0xF0, 0x23, 0x6A, 0x6E, 0xF4, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF3, 0x44, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x2E, 0xF7, 0x1D, 0x4A, +0x10, 0xF0, 0x23, 0x6A, 0xAE, 0xF4, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF3, 0x48, 0xDB, -0x10, 0xF0, 0x24, 0x6A, 0xD3, 0xF5, 0x19, 0x4A, +0x10, 0xF0, 0x24, 0x6A, 0x33, 0xF3, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF3, 0x4C, 0xDB, -0x10, 0xF0, 0x32, 0x6A, 0xF4, 0xF4, 0x09, 0x4A, +0x10, 0xF0, 0x32, 0x6A, 0x73, 0xF5, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF4, 0x58, 0xDB, -0x10, 0xF0, 0x32, 0x6A, 0xB7, 0xF6, 0x19, 0x4A, +0x10, 0xF0, 0x32, 0x6A, 0x17, 0xF0, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF4, 0x50, 0xDB, -0x10, 0xF0, 0x32, 0x6A, 0x37, 0xF7, 0x0D, 0x4A, +0x10, 0xF0, 0x32, 0x6A, 0x97, 0xF0, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF4, 0x54, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xCD, 0xF7, 0x19, 0x4A, +0x10, 0xF0, 0x23, 0x6A, 0x4D, 0xF5, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF4, 0x5C, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x2E, 0xF2, 0x01, 0x4A, +0x10, 0xF0, 0x23, 0x6A, 0x8D, 0xF7, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF4, 0x40, 0xDB, -0x10, 0xF0, 0x24, 0x6A, 0x35, 0xF3, 0x01, 0x4A, +0x10, 0xF0, 0x24, 0x6A, 0x75, 0xF0, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF4, 0x5C, 0xDB, -0x10, 0xF0, 0x24, 0x6A, 0xB5, 0xF3, 0x1D, 0x4A, +0x10, 0xF0, 0x24, 0x6A, 0x15, 0xF1, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x40, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x23, 0xF1, 0x05, 0x4A, +0x10, 0xF0, 0x23, 0x6A, 0x42, 0xF6, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x48, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xA3, 0xF0, 0x1D, 0x4A, +0x10, 0xF0, 0x23, 0x6A, 0xE2, 0xF5, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x4C, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x2F, 0xF0, 0x19, 0x4A, +0x10, 0xF0, 0x23, 0x6A, 0xAE, 0xF5, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x44, 0xDB, -0x10, 0xF0, 0x32, 0x6A, 0x77, 0xF7, 0x15, 0x4A, +0x10, 0xF0, 0x32, 0x6A, 0xD7, 0xF0, 0x09, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF4, 0x54, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x69, 0xF4, 0x11, 0x4A, +0x10, 0xF0, 0x23, 0x6A, 0xC9, 0xF1, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x58, 0xDB, -0x10, 0xF0, 0x24, 0x6A, 0xB8, 0xF1, 0x01, 0x4A, +0x10, 0xF0, 0x24, 0x6A, 0xF7, 0xF6, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x5C, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xA9, 0xF4, 0x09, 0x4A, +0x10, 0xF0, 0x23, 0x6A, 0xE9, 0xF1, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF4, 0x40, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x89, 0xF7, 0x11, 0x4A, +0x10, 0xF0, 0x23, 0x6A, 0xE9, 0xF4, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x50, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0x93, 0xF4, 0x01, 0x4A, +0x10, 0xF0, 0x31, 0x6A, 0xF4, 0xF7, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF5, 0x44, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0x12, 0xF5, 0x11, 0x4A, +0x10, 0xF0, 0x31, 0x6A, 0x74, 0xF0, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x09, 0xF5, 0x15, 0x4A, +0x10, 0xF0, 0x23, 0x6A, 0x69, 0xF2, 0x09, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x54, 0xDB, -0x10, 0xF0, 0x32, 0x6A, 0xD0, 0xF6, 0x09, 0x4A, +0x10, 0xF0, 0x32, 0x6A, 0xD0, 0xF0, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF5, 0x4C, 0xDB, -0x10, 0xF0, 0x32, 0x6A, 0x91, 0xF1, 0x19, 0x4A, +0x10, 0xF0, 0x32, 0x6A, 0xB0, 0xF3, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF5, 0x58, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0x4F, 0xF7, 0x09, 0x4A, +0x10, 0xF0, 0x31, 0x6A, 0x4F, 0xF1, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF5, 0x48, 0xDB, 0x10, 0xF0, 0x21, 0x6A, 0xB9, 0xF1, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF5, 0x50, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0x8F, 0xF6, 0x01, 0x4A, +0x10, 0xF0, 0x31, 0x6A, 0x8F, 0xF0, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF5, 0x4C, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0xCF, 0xF4, 0x09, 0x4A, +0x10, 0xF0, 0x31, 0x6A, 0xCE, 0xF6, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF5, 0x50, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0x0F, 0xF6, 0x19, 0x4A, +0x10, 0xF0, 0x31, 0x6A, 0x2F, 0xF0, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF5, 0x54, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x6C, 0xF1, 0x01, 0x4A, +0x10, 0xF0, 0x23, 0x6A, 0x8B, 0xF6, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF3, 0x44, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x8C, 0xF1, 0x0D, 0x4A, +0x10, 0xF0, 0x23, 0x6A, 0xCB, 0xF6, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF3, 0x4C, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x6C, 0xF1, 0x0D, 0x4A, +0x10, 0xF0, 0x23, 0x6A, 0xAB, 0xF6, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF3, 0x48, 0xDB, -0x10, 0xF0, 0x32, 0x6A, 0x73, 0xF2, 0x19, 0x4A, +0x10, 0xF0, 0x32, 0x6A, 0x12, 0xF3, 0x09, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF3, 0x50, 0xDB, -0x10, 0xF0, 0x32, 0x6A, 0x92, 0xF3, 0x0D, 0x4A, +0x10, 0xF0, 0x32, 0x6A, 0xD1, 0xF5, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF5, 0x48, 0xDB, -0x10, 0xF0, 0x32, 0x6A, 0xD2, 0xF7, 0x0D, 0x4A, +0x10, 0xF0, 0x32, 0x6A, 0x52, 0xF0, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF5, 0x50, 0xDB, -0x10, 0xF0, 0x32, 0x6A, 0x16, 0xF0, 0x15, 0x4A, +0x10, 0xF0, 0x32, 0x6A, 0xB5, 0xF0, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF5, 0x40, 0xDB, -0x10, 0xF0, 0x32, 0x6A, 0x37, 0xF1, 0x11, 0x4A, +0x10, 0xF0, 0x32, 0x6A, 0x96, 0xF2, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF5, 0x48, 0xDB, -0x10, 0xF0, 0x32, 0x6A, 0x17, 0xF3, 0x19, 0x4A, +0x10, 0xF0, 0x32, 0x6A, 0x76, 0xF4, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF5, 0x4C, 0xDB, -0x10, 0xF0, 0x32, 0x6A, 0x55, 0xF6, 0x1D, 0x4A, +0x10, 0xF0, 0x32, 0x6A, 0xF4, 0xF6, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF5, 0x44, 0xDB, -0x10, 0xF0, 0x32, 0x6A, 0x75, 0xF7, 0x11, 0x4A, +0x10, 0xF0, 0x32, 0x6A, 0x15, 0xF0, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF5, 0x50, 0xDB, -0x10, 0xF0, 0x32, 0x6A, 0x37, 0xF2, 0x11, 0x4A, +0x10, 0xF0, 0x32, 0x6A, 0x96, 0xF3, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF5, 0x54, 0xDB, -0x10, 0xF0, 0x32, 0x6A, 0x37, 0xF0, 0x01, 0x4A, +0x10, 0xF0, 0x32, 0x6A, 0x76, 0xF1, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF5, 0x58, 0xDB, -0x10, 0xF0, 0x32, 0x6A, 0x96, 0xF7, 0x15, 0x4A, +0x10, 0xF0, 0x32, 0x6A, 0xF6, 0xF0, 0x09, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF5, 0x5C, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0x13, 0xF5, 0x01, 0x4A, +0x10, 0xF0, 0x31, 0x6A, 0x75, 0xF0, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF3, 0x40, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0x6A, 0xF5, 0x11, 0x4A, +0x10, 0xF0, 0x31, 0x6A, 0x89, 0xF7, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF6, 0x50, 0xDB, -0x10, 0xF0, 0x30, 0x6A, 0xA1, 0xF0, 0x01, 0x4A, +0x10, 0xF0, 0x30, 0x6A, 0x81, 0xF0, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF6, 0x54, 0xDB, -0x10, 0xF0, 0x30, 0x6A, 0x60, 0xF7, 0x1D, 0x4A, +0x10, 0xF0, 0x30, 0x6A, 0x23, 0xF4, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF6, 0x58, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xCB, 0xF1, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF6, 0x5C, 0xDB, @@ -41335,44 +40731,44 @@ u8 array_mp_8822c_fw_nic[] = { 0x20, 0xF6, 0x4C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xCE, 0xF4, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF6, 0x50, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0xEF, 0xF7, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xEF, 0xF7, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF6, 0x54, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF6, 0x58, 0xDB, 0x30, 0xF0, 0x21, 0x6A, -0x12, 0xF0, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x12, 0xF0, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF6, 0x5C, 0xDB, 0x30, 0xF0, 0x21, 0x6A, -0x12, 0xF3, 0x0F, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x12, 0xF3, 0x0B, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF6, 0x40, 0xDB, 0x30, 0xF0, 0x21, 0x6A, -0x12, 0xF3, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x12, 0xF3, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF6, 0x44, 0xDB, 0x30, 0xF0, 0x21, 0x6A, -0x12, 0xF3, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x12, 0xF3, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF6, 0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xEB, 0xF1, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF6, 0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0x0E, 0xF5, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x0E, 0xF5, 0x14, 0x4A, 0x60, 0xF6, 0x4C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x60, 0xF6, 0x0C, 0x4B, 0x2E, 0xF5, 0x04, 0x4A, +0x60, 0xF6, 0x0C, 0x4B, 0x2E, 0xF5, 0x00, 0x4A, 0x41, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF5, -0x10, 0x4A, 0x42, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x0E, 0xF5, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x0C, 0x4A, 0x42, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x0E, 0xF5, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF6, 0x58, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x2E, 0xF6, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x2E, 0xF6, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF6, 0x5C, 0xDB, 0x30, 0xF0, 0x21, 0x6A, 0x12, 0xF5, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF6, 0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x2E, 0xF5, 0x1C, 0x4B, 0x80, 0xF6, 0x60, 0xDC, +0x2E, 0xF5, 0x18, 0x4B, 0x80, 0xF6, 0x60, 0xDC, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF6, 0x00, 0x4C, -0xAE, 0xF5, 0x18, 0x4B, 0x61, 0xDC, 0x30, 0xF0, +0xAE, 0xF5, 0x14, 0x4B, 0x61, 0xDC, 0x30, 0xF0, 0x20, 0x6B, 0xEE, 0xF4, 0x14, 0x4B, 0x30, 0xF0, 0x20, 0x6C, 0x80, 0xF6, 0x6C, 0xDC, 0x30, 0xF0, -0x20, 0x6B, 0xEF, 0xF6, 0x08, 0x4B, 0x30, 0xF0, +0x20, 0x6B, 0xEF, 0xF6, 0x04, 0x4B, 0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF6, 0x68, 0xDC, 0x30, 0xF0, -0x20, 0x6B, 0xAF, 0xF6, 0x14, 0x4B, 0x30, 0xF0, +0x20, 0x6B, 0xAF, 0xF6, 0x10, 0x4B, 0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF6, 0x6C, 0xDC, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF2, 0x12, 0x4B, 0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF6, 0x70, 0xDC, 0x30, 0xF0, 0x20, 0x6B, 0xEB, 0xF1, 0x00, 0x4B, 0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF6, 0x74, 0xDC, 0x30, 0xF0, -0x20, 0x6B, 0xEF, 0xF6, 0x10, 0x4B, 0x30, 0xF0, +0x20, 0x6B, 0xEF, 0xF6, 0x0C, 0x4B, 0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF6, 0x78, 0xDC, 0x30, 0xF0, 0x20, 0x6B, 0x4B, 0xF2, 0x0E, 0x4B, 0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF6, 0x7C, 0xDC, 0x30, 0xF0, @@ -41384,44 +40780,44 @@ u8 array_mp_8822c_fw_nic[] = { 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x21, 0xF0, 0x00, 0x4B, 0x80, 0xF2, 0x08, 0x4A, 0x13, 0x10, 0x80, 0x9A, 0x10, 0x2C, 0x30, 0xF0, -0x20, 0x6C, 0x23, 0xF2, 0xA8, 0x9C, 0x30, 0xF0, -0x20, 0x6E, 0xA3, 0xF1, 0xD4, 0x9E, 0x80, 0x9D, +0x20, 0x6C, 0x23, 0xF2, 0xAC, 0x9C, 0x30, 0xF0, +0x20, 0x6E, 0xA3, 0xF1, 0xD8, 0x9E, 0x80, 0x9D, 0xCD, 0xEC, 0x80, 0xDD, 0x30, 0xF0, 0x20, 0x6C, -0xC4, 0xF0, 0x98, 0x9C, 0x40, 0xDC, 0x04, 0x4A, +0xC4, 0xF0, 0x9C, 0x9C, 0x40, 0xDC, 0x04, 0x4A, 0x43, 0xEB, 0xEB, 0x60, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, 0x5C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x40, 0x9A, 0xE5, 0xF6, 0x1F, 0x6B, 0xFF, 0x6C, 0x60, 0xDA, -0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, 0x5C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF0, 0x40, 0x9A, 0x10, 0x6B, 0x40, 0x6D, 0x60, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0xE4, 0xF0, 0x40, 0x9A, 0x01, 0x6B, +0x20, 0x6A, 0xE4, 0xF0, 0x44, 0x9A, 0x01, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, -0x54, 0x9A, 0x60, 0xA2, 0x8C, 0xEB, 0xAD, 0xEB, +0x58, 0x9A, 0x60, 0xA2, 0x8C, 0xEB, 0xAD, 0xEB, 0x8C, 0xEB, 0x60, 0xC2, 0x80, 0xA2, 0xF8, 0x6B, 0x8C, 0xEB, 0x60, 0xC2, 0x80, 0xA2, 0xF7, 0x6B, 0x8C, 0xEB, 0x60, 0xC2, 0x80, 0xA2, 0xEF, 0x6B, 0x8C, 0xEB, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0xE4, 0xF0, 0x44, 0x9A, 0x00, 0xF2, 0x01, 0x6C, +0xE4, 0xF0, 0x48, 0x9A, 0x00, 0xF2, 0x01, 0x6C, 0x8B, 0xEC, 0x60, 0x9A, 0x8C, 0xEB, 0x60, 0xDA, 0x60, 0x9A, 0x00, 0xF1, 0x00, 0x4C, 0x8C, 0xEB, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF0, -0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF2, -0x94, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF0, 0x4C, 0x9A, +0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF2, +0x98, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF0, 0x50, 0x9A, 0x60, 0xA2, 0x04, 0x5B, 0x02, 0x60, 0x04, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, -0x40, 0x9A, 0x60, 0xAA, 0xFF, 0xF7, 0x1F, 0x6A, +0x44, 0x9A, 0x60, 0xAA, 0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF2, -0x64, 0x9B, 0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF0, 0x74, 0x9A, 0x7F, 0x6A, 0x80, 0xA3, +0x68, 0x9B, 0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF0, 0x78, 0x9A, 0x7F, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0xFF, 0xF7, 0x1F, 0x69, 0x2C, 0xED, 0x30, 0xF0, -0x20, 0x6B, 0x04, 0xD5, 0xE4, 0xF0, 0xB0, 0x9B, +0x20, 0x6B, 0x04, 0xD5, 0xE4, 0xF0, 0xB4, 0x9B, 0xFF, 0x6A, 0x40, 0x6E, 0x60, 0xA5, 0xCB, 0xEE, 0x4C, 0xEC, 0x4C, 0xEB, 0xCC, 0xEB, 0x6D, 0xEC, 0x4C, 0xEC, 0x80, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF0, 0x54, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF0, 0x58, 0x9A, 0x00, 0xAA, 0x04, 0x92, 0x2C, 0xE8, 0x2A, 0xEA, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, 0x04, 0x94, 0x40, 0xEA, 0x04, 0x93, @@ -41432,23 +40828,23 @@ u8 array_mp_8822c_fw_nic[] = { 0x2C, 0xED, 0xFF, 0x68, 0x0C, 0xEC, 0x2C, 0xEE, 0x2A, 0xED, 0x05, 0xD4, 0x04, 0xD5, 0x06, 0xD6, 0x1F, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF0, -0x70, 0x9A, 0x40, 0x6C, 0x8B, 0xEC, 0x40, 0xA3, +0x74, 0x9A, 0x40, 0x6C, 0x8B, 0xEC, 0x40, 0xA3, 0x0C, 0xEA, 0x8C, 0xEA, 0x05, 0x94, 0x8D, 0xEA, 0x0C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0xE4, 0xF0, 0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0x43, 0xF5, 0x80, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, -0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF1, 0x94, 0x9C, +0xE4, 0xF0, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x43, 0xF5, 0x90, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF1, 0x98, 0x9C, 0x8D, 0xEA, 0xCD, 0xEA, 0x40, 0xDB, 0x34, 0x10, -0x05, 0x94, 0xB1, 0x67, 0x80, 0x18, 0xC8, 0x7A, +0x05, 0x94, 0xB1, 0x67, 0x80, 0x18, 0x20, 0x79, 0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x94, 0xA0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE4, 0xF0, 0x90, 0x9B, 0x40, 0x6D, +0x20, 0x6B, 0xE4, 0xF0, 0x94, 0x9B, 0x40, 0x6D, 0xAB, 0xED, 0x60, 0xA4, 0x2C, 0xEA, 0x0C, 0xEB, 0xAC, 0xEB, 0x05, 0x95, 0xAD, 0xEB, 0x0C, 0xEB, 0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0xE4, 0xF0, -0x94, 0x9B, 0x30, 0xF0, 0x20, 0x6D, 0x43, 0xF5, -0xA0, 0x9D, 0x60, 0x9C, 0x06, 0x96, 0xAC, 0xEB, -0x30, 0xF0, 0x20, 0x6D, 0x03, 0xF1, 0xB4, 0x9D, +0x98, 0x9B, 0x30, 0xF0, 0x20, 0x6D, 0x43, 0xF5, +0xB0, 0x9D, 0x60, 0x9C, 0x06, 0x96, 0xAC, 0xEB, +0x30, 0xF0, 0x20, 0x6D, 0x03, 0xF1, 0xB8, 0x9D, 0xC4, 0xEA, 0x46, 0x67, 0xAD, 0xEB, 0x04, 0x95, 0x07, 0x96, 0xAC, 0xEA, 0xAF, 0xED, 0xCC, 0xED, 0xAD, 0xEA, 0x2C, 0xEA, 0x4D, 0xEB, 0x60, 0xDC, @@ -41456,66 +40852,66 @@ u8 array_mp_8822c_fw_nic[] = { 0x0A, 0x6C, 0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x00, 0x6C, 0x10, 0xF0, -0x00, 0x6D, 0x80, 0x18, 0xC8, 0x7A, 0x05, 0x97, +0x00, 0x6D, 0x80, 0x18, 0x20, 0x79, 0x05, 0x97, 0x01, 0x5A, 0x58, 0x67, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x74, 0x9B, 0x10, 0xF0, -0x32, 0x6A, 0x9D, 0xF4, 0x01, 0x4A, 0x40, 0xDB, +0x32, 0x6A, 0xFC, 0xF5, 0x01, 0x4A, 0x40, 0xDB, 0x00, 0x68, 0x31, 0x10, 0x82, 0xF3, 0x08, 0x70, 0x1A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, -0x68, 0x9A, 0x02, 0xF0, 0x00, 0x6C, 0x40, 0x9B, +0x6C, 0x9A, 0x02, 0xF0, 0x00, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x18, 0x4A, 0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, 0x60, 0xDA, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF2, 0x48, 0x9A, 0x03, 0x6B, +0x20, 0x6A, 0x03, 0xF2, 0x4C, 0x9A, 0x03, 0x6B, 0x6B, 0xEB, 0x60, 0xC2, 0x18, 0x10, 0xFF, 0xF7, 0x1F, 0x6A, 0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, 0x40, 0xEA, 0x33, 0x58, 0x08, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF7, 0x50, 0x9A, 0x60, 0xA2, +0x20, 0x6A, 0xA3, 0xF7, 0x54, 0x9A, 0x60, 0xA2, 0x08, 0x6A, 0x6C, 0xEA, 0x04, 0x2A, 0x80, 0x18, -0x1A, 0x7B, 0x01, 0x72, 0xCB, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF2, 0x48, 0x9A, 0x02, 0x6B, +0x72, 0x79, 0x01, 0x72, 0xCB, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x4C, 0x9A, 0x02, 0x6B, 0x6B, 0xEB, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x74, 0x9B, 0x10, 0xF0, 0x32, 0x6A, -0x9D, 0xF4, 0x02, 0x4A, 0x40, 0xDB, 0x05, 0x97, +0xFC, 0xF5, 0x02, 0x4A, 0x40, 0xDB, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x24, 0xF0, 0x70, 0x9A, 0x02, 0x6C, +0x20, 0x6A, 0x24, 0xF0, 0x74, 0x9A, 0x02, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0x40, 0x9B, 0xFF, 0x6E, 0x41, 0x4E, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF1, 0x7C, 0x9A, 0xE0, 0xF3, +0x20, 0x6A, 0xE3, 0xF1, 0x60, 0x9A, 0xE0, 0xF3, 0x1E, 0x4C, 0x30, 0xF0, 0x20, 0x68, 0x40, 0xAB, 0xAC, 0xEA, 0x8D, 0xEA, 0xAC, 0xEA, 0x40, 0xCB, -0x02, 0x6C, 0x80, 0x18, 0xE3, 0x7A, 0x80, 0xF3, +0x02, 0x6C, 0x80, 0x18, 0x3B, 0x79, 0x80, 0xF3, 0x4C, 0x98, 0x0A, 0x6C, 0x40, 0xEA, 0x00, 0x6C, -0xC0, 0x6D, 0x02, 0x6E, 0x80, 0x18, 0xE3, 0x7A, +0xC0, 0x6D, 0x02, 0x6E, 0x80, 0x18, 0x3B, 0x79, 0x00, 0x6C, 0xC4, 0x67, 0x02, 0xF0, 0x00, 0x6D, -0x80, 0x18, 0xE3, 0x7A, 0x00, 0x6C, 0xC4, 0x67, -0x0C, 0xF0, 0x00, 0x6D, 0x80, 0x18, 0xE3, 0x7A, +0x80, 0x18, 0x3B, 0x79, 0x00, 0x6C, 0xC4, 0x67, +0x0C, 0xF0, 0x00, 0x6D, 0x80, 0x18, 0x3B, 0x79, 0x00, 0x6C, 0x01, 0xF0, 0x00, 0x6D, 0x01, 0x6E, -0x80, 0x18, 0xE3, 0x7A, 0x10, 0xF0, 0x00, 0x6D, -0x01, 0x6E, 0x00, 0x6C, 0x80, 0x18, 0xE3, 0x7A, +0x80, 0x18, 0x3B, 0x79, 0x10, 0xF0, 0x00, 0x6D, +0x01, 0x6E, 0x00, 0x6C, 0x80, 0x18, 0x3B, 0x79, 0x80, 0xF3, 0x4C, 0x98, 0x0A, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF0, 0x78, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF0, 0x7C, 0x9A, 0xFF, 0x6C, 0x04, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x98, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +0xFE, 0xCE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; -u32 array_length_mp_8822c_fw_nic = 199264; +u32 array_length_mp_8822c_fw_nic = 196888; #if !(DM_ODM_SUPPORT_TYPE & (ODM_CE)) u8 array_mp_8822c_fw_spic[] = { -0x22, 0x88, 0x00, 0x00, 0x09, 0x00, 0x07, 0x00, -0x0C, 0x68, 0xEA, 0x3F, 0x00, 0x00, 0x00, 0x00, -0x02, 0x0D, 0x0F, 0x0F, 0xE4, 0x07, 0x00, 0x00, +0x22, 0x88, 0x00, 0x00, 0x09, 0x00, 0x0D, 0x00, +0x0D, 0x9C, 0xA8, 0x60, 0x00, 0x00, 0x00, 0x00, +0x09, 0x18, 0x0E, 0x2B, 0xE5, 0x07, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, -0x00, 0x00, 0x20, 0x80, 0xC0, 0x1C, 0x00, 0x00, +0x00, 0x00, 0x20, 0x80, 0xD0, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x6B, 0x00, 0x00, 0xE0, 0x43, 0x01, 0x00, +0xC0, 0x66, 0x00, 0x00, 0xF8, 0x3D, 0x01, 0x00, 0x00, 0x00, 0x10, 0x80, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, @@ -42006,7 +41402,7 @@ u8 array_mp_8822c_fw_spic[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0xE9, 0x1A, 0x03, 0x80, 0xFD, 0xFF, 0xFF, 0xFF, +0xC5, 0x16, 0x03, 0x80, 0xFD, 0xFF, 0xFF, 0xFF, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -42015,7 +41411,7 @@ u8 array_mp_8822c_fw_spic[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x8D, 0x1A, 0x03, 0x80, +0x00, 0x00, 0x00, 0x00, 0x69, 0x16, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -42025,7 +41421,7 @@ u8 array_mp_8822c_fw_spic[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x49, 0x1A, 0x03, 0x80, 0x01, 0x00, 0x00, 0x00, +0x25, 0x16, 0x03, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -42034,8 +41430,8 @@ u8 array_mp_8822c_fw_spic[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xC4, 0x1C, 0x20, 0x80, -0xCC, 0x1C, 0x20, 0x80, 0xBD, 0x1C, 0x03, 0x80, +0x00, 0x00, 0x00, 0x00, 0xD4, 0x1C, 0x20, 0x80, +0xDC, 0x1C, 0x20, 0x80, 0x99, 0x18, 0x03, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -42045,7 +41441,7 @@ u8 array_mp_8822c_fw_spic[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0xDC, 0x1C, 0x20, 0x80, 0xD4, 0x1C, 0x20, 0x80, +0xEC, 0x1C, 0x20, 0x80, 0xE4, 0x1C, 0x20, 0x80, 0x20, 0x05, 0x00, 0x00, 0x50, 0x05, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x24, 0x08, 0x00, 0x00, 0x38, 0x1C, 0x00, 0x00, @@ -42069,9 +41465,9 @@ u8 array_mp_8822c_fw_spic[] = { 0x08, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x67, 0x18, 0x03, 0x80, 0x61, 0x18, 0x03, 0x80, -0x6D, 0x18, 0x03, 0x80, 0x73, 0x18, 0x03, 0x80, -0x79, 0x18, 0x03, 0x80, 0x7F, 0x18, 0x03, 0x80, +0x43, 0x14, 0x03, 0x80, 0x3D, 0x14, 0x03, 0x80, +0x49, 0x14, 0x03, 0x80, 0x4F, 0x14, 0x03, 0x80, +0x55, 0x14, 0x03, 0x80, 0x5B, 0x14, 0x03, 0x80, 0x00, 0x20, 0x41, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x18, 0x3F, 0x00, 0x71, 0x73, 0x29, 0x23, 0x2B, 0x48, 0x01, 0x00, 0x01, 0x00, 0x2B, 0x48, @@ -42082,155 +41478,157 @@ u8 array_mp_8822c_fw_spic[] = { 0x67, 0x65, 0x20, 0x20, 0x52, 0x65, 0x61, 0x6C, 0x74, 0x65, 0x6B, 0x20, 0x09, 0x12, 0x1B, 0x24, 0x94, 0x0C, 0x94, 0x0E, 0x94, 0x18, 0x94, 0x1A, -0xED, 0x37, 0x10, 0x80, 0xC1, 0x38, 0x10, 0x80, -0xFD, 0x37, 0x10, 0x80, 0x33, 0x38, 0x10, 0x80, -0x6F, 0x38, 0x10, 0x80, 0xC1, 0x38, 0x10, 0x80, -0x0B, 0x39, 0x10, 0x80, 0x23, 0x39, 0x10, 0x80, -0x2F, 0x39, 0x10, 0x80, 0x61, 0x39, 0x10, 0x80, -0x93, 0x39, 0x10, 0x80, 0xA3, 0x39, 0x10, 0x80, -0x09, 0x12, 0x1B, 0x24, 0xF3, 0x1E, 0x11, 0x80, -0x6B, 0x20, 0x11, 0x80, 0x45, 0x21, 0x11, 0x80, -0xEF, 0x1E, 0x11, 0x80, 0xEF, 0x1E, 0x11, 0x80, -0xF3, 0x1E, 0x11, 0x80, 0xF3, 0x1E, 0x11, 0x80, -0xA3, 0x45, 0x10, 0x80, 0xB9, 0x45, 0x10, 0x80, -0xEB, 0x45, 0x10, 0x80, 0xEB, 0x45, 0x10, 0x80, -0xEB, 0x45, 0x10, 0x80, 0xEB, 0x45, 0x10, 0x80, -0xC5, 0x45, 0x10, 0x80, 0xCF, 0x45, 0x10, 0x80, -0xD9, 0x45, 0x10, 0x80, 0xE3, 0x45, 0x10, 0x80, -0xAB, 0x45, 0x10, 0x80, 0x99, 0x45, 0x10, 0x80, -0xC5, 0x37, 0x11, 0x80, 0xE7, 0x37, 0x11, 0x80, -0x09, 0x38, 0x11, 0x80, 0x2B, 0x38, 0x11, 0x80, -0x4F, 0x38, 0x11, 0x80, 0x89, 0x38, 0x11, 0x80, -0xAD, 0x38, 0x11, 0x80, 0xD1, 0x38, 0x11, 0x80, -0xF5, 0x38, 0x11, 0x80, 0x1B, 0x39, 0x11, 0x80, +0x41, 0x43, 0x10, 0x80, 0x15, 0x44, 0x10, 0x80, +0x51, 0x43, 0x10, 0x80, 0x87, 0x43, 0x10, 0x80, +0xC3, 0x43, 0x10, 0x80, 0x15, 0x44, 0x10, 0x80, +0x5F, 0x44, 0x10, 0x80, 0x77, 0x44, 0x10, 0x80, +0x83, 0x44, 0x10, 0x80, 0xB5, 0x44, 0x10, 0x80, +0xE7, 0x44, 0x10, 0x80, 0xF7, 0x44, 0x10, 0x80, +0x09, 0x12, 0x1B, 0x24, 0x03, 0x19, 0x11, 0x80, +0x7B, 0x1A, 0x11, 0x80, 0x55, 0x1B, 0x11, 0x80, +0xFF, 0x18, 0x11, 0x80, 0xFF, 0x18, 0x11, 0x80, +0x03, 0x19, 0x11, 0x80, 0x03, 0x19, 0x11, 0x80, +0xF7, 0x50, 0x10, 0x80, 0x0D, 0x51, 0x10, 0x80, +0x3F, 0x51, 0x10, 0x80, 0x3F, 0x51, 0x10, 0x80, +0x3F, 0x51, 0x10, 0x80, 0x3F, 0x51, 0x10, 0x80, +0x19, 0x51, 0x10, 0x80, 0x23, 0x51, 0x10, 0x80, +0x2D, 0x51, 0x10, 0x80, 0x37, 0x51, 0x10, 0x80, +0xFF, 0x50, 0x10, 0x80, 0xED, 0x50, 0x10, 0x80, +0xE1, 0x31, 0x11, 0x80, 0x03, 0x32, 0x11, 0x80, +0x25, 0x32, 0x11, 0x80, 0x47, 0x32, 0x11, 0x80, +0x6B, 0x32, 0x11, 0x80, 0xA5, 0x32, 0x11, 0x80, +0xC9, 0x32, 0x11, 0x80, 0xED, 0x32, 0x11, 0x80, +0x11, 0x33, 0x11, 0x80, 0x37, 0x33, 0x11, 0x80, 0x01, 0x01, 0x04, 0x10, 0x40, 0x00, 0x00, 0x00, 0xE0, 0x04, 0xE3, 0x04, 0xE3, 0x04, 0xE3, 0x04, -0xE3, 0x04, 0x00, 0x00, 0xA9, 0x2D, 0x11, 0x80, -0xA9, 0x2D, 0x11, 0x80, 0xA9, 0x2D, 0x11, 0x80, -0xC3, 0x2D, 0x11, 0x80, 0xA9, 0x2D, 0x11, 0x80, -0xA9, 0x2D, 0x11, 0x80, 0xA9, 0x2D, 0x11, 0x80, -0xA5, 0x2D, 0x11, 0x80, 0xA5, 0x2D, 0x11, 0x80, -0xA5, 0x2D, 0x11, 0x80, 0xA5, 0x2D, 0x11, 0x80, -0xA5, 0x2D, 0x11, 0x80, 0x33, 0x2E, 0x11, 0x80, -0x3D, 0x2E, 0x11, 0x80, 0xCB, 0x41, 0x03, 0x80, -0xDB, 0x41, 0x03, 0x80, 0xE5, 0x41, 0x03, 0x80, -0xEF, 0x41, 0x03, 0x80, 0x01, 0x42, 0x03, 0x80, -0x27, 0x61, 0x03, 0x80, 0x87, 0x61, 0x03, 0x80, -0x1B, 0x62, 0x03, 0x80, 0xB9, 0x62, 0x03, 0x80, -0x5D, 0x63, 0x03, 0x80, 0xFC, 0x10, 0x60, 0xB8, -0xFA, 0xFA, 0xFA, 0xFA, 0x8C, 0x04, 0x64, 0xB8, -0x90, 0x04, 0x64, 0xB8, 0x94, 0x04, 0x64, 0xB8, -0x98, 0x04, 0x64, 0xB8, 0x9C, 0x04, 0x64, 0xB8, -0xA0, 0x04, 0x64, 0xB8, 0x77, 0x05, 0x64, 0xB8, -0x6C, 0x05, 0x64, 0xB8, 0x68, 0x05, 0x64, 0xB8, -0x54, 0x05, 0x64, 0xB8, 0xFF, 0xFF, 0xFF, 0x8F, -0x00, 0x00, 0x60, 0xB8, 0x00, 0x00, 0x64, 0xB8, -0x31, 0x00, 0x78, 0xB8, 0x1D, 0x04, 0x64, 0xB8, -0x22, 0x05, 0x64, 0xB8, 0x86, 0x00, 0x60, 0xB8, -0x87, 0x00, 0x60, 0xB8, 0x88, 0x00, 0x60, 0xB8, -0x89, 0x00, 0x60, 0xB8, 0x8A, 0x00, 0x60, 0xB8, -0x84, 0x00, 0x60, 0xB8, 0xF8, 0x10, 0x60, 0xB8, -0x00, 0x00, 0x00, 0x02, 0xCB, 0x01, 0x64, 0xB8, -0x00, 0x00, 0x68, 0xB8, 0x04, 0x00, 0x68, 0xB8, -0x08, 0x00, 0x68, 0xB8, 0x0C, 0x00, 0x68, 0xB8, -0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x42, -0xE0, 0x00, 0x60, 0xB8, 0xFF, 0xFF, 0xFF, 0xFD, -0xE3, 0x00, 0x60, 0xB8, 0x00, 0x00, 0x00, 0x40, -0x00, 0x00, 0x00, 0x01, 0xE1, 0x00, 0x60, 0xB8, -0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x20, -0xCC, 0x00, 0x60, 0xB8, 0x02, 0x00, 0x60, 0xB8, -0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, -0x00, 0x00, 0x00, 0x04, 0xFF, 0xFF, 0xFF, 0xFB, -0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0x1F, -0x04, 0x00, 0x60, 0xB8, 0x04, 0x00, 0x64, 0xB8, -0x08, 0x00, 0x60, 0xB8, 0x08, 0x00, 0x64, 0xB8, -0xE8, 0x12, 0x64, 0xB8, 0x24, 0x00, 0x60, 0xB8, -0x80, 0x00, 0x60, 0xB8, 0x8C, 0x00, 0x60, 0xB8, -0x74, 0x00, 0x60, 0xB8, 0x00, 0x00, 0x00, 0x10, -0xFF, 0xFF, 0xFF, 0xEF, 0x24, 0x04, 0x64, 0xB8, -0xB0, 0x02, 0x64, 0xB8, 0x1C, 0x04, 0x64, 0xB8, -0x1C, 0x01, 0x64, 0xB8, 0x55, 0x53, 0x42, 0x43, -0x00, 0x00, 0x00, 0x08, 0x55, 0x53, 0x42, 0x53, -0x00, 0x20, 0x78, 0xB8, 0x00, 0x10, 0x78, 0xB8, -0x00, 0x00, 0xFD, 0xFF, 0x00, 0x00, 0xFF, 0x00, -0x00, 0x00, 0x04, 0x00, 0x00, 0x0C, 0x01, 0x00, -0x08, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x01, 0x00, -0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x1F, 0x00, -0x01, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xFF, 0x0F, -0x21, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0xC0, -0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x0F, -0x62, 0x06, 0x64, 0xB8, 0xB4, 0x06, 0x64, 0xB8, -0x06, 0x00, 0x00, 0x89, 0x00, 0x0A, 0x08, 0x00, -0x01, 0x00, 0x66, 0xB8, 0x00, 0x00, 0x02, 0x00, -0x00, 0x00, 0x78, 0xB8, 0x44, 0x00, 0x78, 0xB8, -0x01, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x60, -0x01, 0x00, 0x0F, 0x70, 0x01, 0x00, 0x1F, 0x70, -0x01, 0x00, 0x2F, 0x70, 0x01, 0x00, 0x3F, 0x70, -0x01, 0x00, 0x4F, 0x70, 0x01, 0x00, 0x5F, 0x70, -0x01, 0x00, 0x6F, 0x70, 0x01, 0x00, 0x7F, 0x70, -0x01, 0x00, 0x8F, 0x70, 0x01, 0x00, 0x9F, 0x70, -0x01, 0x00, 0xAF, 0x70, 0x01, 0x00, 0xBF, 0x70, -0x01, 0x00, 0xCF, 0x70, 0x01, 0x00, 0xDF, 0x70, -0x01, 0x00, 0xEF, 0x70, 0x01, 0x00, 0xFF, 0x70, -0x5E, 0x00, 0xD5, 0xF7, 0x41, 0x80, 0x0B, 0x70, -0x40, 0x00, 0x1F, 0x70, 0x40, 0x00, 0x2F, 0x70, -0x40, 0x00, 0x3F, 0x70, 0x40, 0x00, 0x4F, 0x70, -0x41, 0x80, 0x5B, 0x70, 0x40, 0x00, 0x6F, 0x70, -0x41, 0x40, 0x14, 0x70, 0x41, 0x40, 0x24, 0x70, -0x41, 0x40, 0x34, 0x70, 0x41, 0x40, 0x44, 0x70, -0x41, 0x40, 0x64, 0x70, 0x41, 0x80, 0x7B, 0x70, -0x41, 0x80, 0x8B, 0x70, 0x41, 0x80, 0x9B, 0x70, -0x41, 0x80, 0xAB, 0x70, 0x41, 0x80, 0xBB, 0x70, -0x41, 0x80, 0xCB, 0x70, 0x41, 0x80, 0xDB, 0x70, -0x41, 0x80, 0xEB, 0x70, 0x41, 0x80, 0xFB, 0x70, -0x00, 0x00, 0x10, 0x00, 0x50, 0x50, 0x50, 0x50, -0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x03, 0x00, -0x1F, 0x00, 0x60, 0xB8, 0xEF, 0x00, 0x60, 0xB8, -0x03, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x60, -0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x0F, 0x80, -0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x20, 0x00, -0x08, 0x18, 0x07, 0x00, 0x08, 0x0C, 0x07, 0x00, -0x00, 0x00, 0x0F, 0x00, 0x08, 0x00, 0x04, 0x00, -0x00, 0x00, 0x08, 0x00, 0xFF, 0x60, 0x0F, 0x00, -0x3F, 0xD8, 0x0F, 0x00, 0xFF, 0x60, 0x07, 0x00, -0x3F, 0xD8, 0x0D, 0x00, 0xFF, 0xDE, 0x07, 0x00, -0xBF, 0xF7, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x06, -0x00, 0xC0, 0x0F, 0x00, 0x12, 0x33, 0x03, 0x00, -0x11, 0x33, 0x03, 0x00, 0x12, 0x11, 0x01, 0x00, -0x00, 0x00, 0xFF, 0xFF, 0x31, 0xC9, 0x62, 0x49, -0x55, 0x24, 0x01, 0xFF, 0xC8, 0xFE, 0x18, 0x3E, -0xDE, 0xF0, 0xFA, 0x00, 0x44, 0x23, 0x12, 0x00, -0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0xF0, 0x1F, 0x00, -0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0xF0, 0x00, -0x3F, 0xFF, 0xFE, 0xDF, 0x00, 0x00, 0x06, 0x00, -0x00, 0x00, 0x60, 0x00, 0x00, 0xFF, 0x0F, 0x00, -0x01, 0x80, 0x03, 0x70, 0x01, 0x80, 0x53, 0x70, -0x01, 0x80, 0x73, 0x70, 0x01, 0x80, 0x83, 0x70, -0x01, 0x80, 0x93, 0x70, 0x01, 0x80, 0xA3, 0x70, -0x01, 0x80, 0xB3, 0x70, 0x01, 0x80, 0xC3, 0x70, -0x01, 0x80, 0xD3, 0x70, 0x01, 0x80, 0xE3, 0x70, -0x01, 0x80, 0xF3, 0x70, 0x01, 0x80, 0x0B, 0x70, -0x01, 0x80, 0x5B, 0x70, 0x01, 0x80, 0x7B, 0x70, -0x01, 0x80, 0x8B, 0x70, 0x01, 0x80, 0x9B, 0x70, -0x01, 0x80, 0xAB, 0x70, 0x01, 0x80, 0xBB, 0x70, -0x01, 0x80, 0xCB, 0x70, 0x01, 0x80, 0xDB, 0x70, -0x01, 0x80, 0xEB, 0x70, 0x01, 0x80, 0xFB, 0x70, -0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x80, 0x00, -0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0x00, -0x00, 0xFC, 0x01, 0x00, 0x00, 0x00, 0x70, 0x00, -0x00, 0x00, 0x40, 0x00, 0x00, 0xFC, 0xF8, 0xFF, -0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x3F, -0x96, 0x02, 0x64, 0xB8, 0x00, 0x00, 0x70, 0xB8, -0x18, 0x00, 0x70, 0xB8, 0x0B, 0x00, 0x70, 0xB8, -0x02, 0x00, 0x70, 0xB8, 0x94, 0x02, 0x64, 0xB8, -0x97, 0x02, 0x64, 0xB8, 0x84, 0x02, 0x64, 0xB8, -0x06, 0x00, 0x66, 0xB8, 0x54, 0x02, 0x64, 0xB8, -0x50, 0x02, 0x64, 0xB8, 0x4C, 0x02, 0x64, 0xB8, -0x04, 0x00, 0x78, 0xB8, 0x48, 0x02, 0x64, 0xB8, -0x44, 0x02, 0x64, 0xB8, 0xCC, 0x01, 0x64, 0xB8, -0x74, 0x00, 0x18, 0x2E, 0x74, 0x00, 0x19, 0x2E, -0x01, 0x00, 0x60, 0xB8, 0x01, 0x00, 0x64, 0xB8, -0xCF, 0x01, 0x64, 0xB8, 0x34, 0x01, 0x64, 0xB8, +0xE3, 0x04, 0x00, 0x00, 0xB9, 0x27, 0x11, 0x80, +0xB9, 0x27, 0x11, 0x80, 0xB9, 0x27, 0x11, 0x80, +0xD3, 0x27, 0x11, 0x80, 0xB9, 0x27, 0x11, 0x80, +0xB9, 0x27, 0x11, 0x80, 0xB9, 0x27, 0x11, 0x80, +0xB5, 0x27, 0x11, 0x80, 0xB5, 0x27, 0x11, 0x80, +0xB5, 0x27, 0x11, 0x80, 0xB5, 0x27, 0x11, 0x80, +0xB5, 0x27, 0x11, 0x80, 0x43, 0x28, 0x11, 0x80, +0x4D, 0x28, 0x11, 0x80, 0x8B, 0x3D, 0x03, 0x80, +0x9B, 0x3D, 0x03, 0x80, 0xA5, 0x3D, 0x03, 0x80, +0xAF, 0x3D, 0x03, 0x80, 0xC1, 0x3D, 0x03, 0x80, +0xE7, 0x5C, 0x03, 0x80, 0x47, 0x5D, 0x03, 0x80, +0xDB, 0x5D, 0x03, 0x80, 0x79, 0x5E, 0x03, 0x80, +0x1D, 0x5F, 0x03, 0x80, 0xFC, 0x10, 0x60, 0xB8, +0xFA, 0xFA, 0xFA, 0xFA, 0xCF, 0x01, 0x64, 0xB8, +0x8C, 0x04, 0x64, 0xB8, 0x90, 0x04, 0x64, 0xB8, +0x94, 0x04, 0x64, 0xB8, 0x98, 0x04, 0x64, 0xB8, +0x9C, 0x04, 0x64, 0xB8, 0xA0, 0x04, 0x64, 0xB8, +0x77, 0x05, 0x64, 0xB8, 0x6C, 0x05, 0x64, 0xB8, +0x68, 0x05, 0x64, 0xB8, 0x54, 0x05, 0x64, 0xB8, +0xFF, 0xFF, 0xFF, 0x8F, 0x00, 0x00, 0x60, 0xB8, +0x00, 0x00, 0x64, 0xB8, 0x31, 0x00, 0x78, 0xB8, +0x1D, 0x04, 0x64, 0xB8, 0x22, 0x05, 0x64, 0xB8, +0x86, 0x00, 0x60, 0xB8, 0x87, 0x00, 0x60, 0xB8, +0x88, 0x00, 0x60, 0xB8, 0x89, 0x00, 0x60, 0xB8, +0x8A, 0x00, 0x60, 0xB8, 0x84, 0x00, 0x60, 0xB8, +0xF8, 0x10, 0x60, 0xB8, 0x00, 0x00, 0x00, 0x02, +0xCB, 0x01, 0x64, 0xB8, 0x00, 0x00, 0x68, 0xB8, +0x04, 0x00, 0x68, 0xB8, 0x08, 0x00, 0x68, 0xB8, +0x0C, 0x00, 0x68, 0xB8, 0x00, 0x00, 0x00, 0x03, +0x00, 0x00, 0x00, 0x42, 0xE0, 0x00, 0x60, 0xB8, +0xFF, 0xFF, 0xFF, 0xFD, 0xE3, 0x00, 0x60, 0xB8, +0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x01, +0xE1, 0x00, 0x60, 0xB8, 0x00, 0x00, 0x00, 0x60, +0x00, 0x00, 0x00, 0x20, 0xCC, 0x00, 0x60, 0xB8, +0x02, 0x00, 0x60, 0xB8, 0xFF, 0xFF, 0x03, 0x00, +0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x04, +0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xDF, +0xFF, 0xFF, 0xFF, 0x1F, 0x04, 0x00, 0x60, 0xB8, +0x04, 0x00, 0x64, 0xB8, 0x08, 0x00, 0x60, 0xB8, +0x08, 0x00, 0x64, 0xB8, 0xE8, 0x12, 0x64, 0xB8, +0x24, 0x00, 0x60, 0xB8, 0x80, 0x00, 0x60, 0xB8, +0x8C, 0x00, 0x60, 0xB8, 0x74, 0x00, 0x60, 0xB8, +0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xEF, +0x24, 0x04, 0x64, 0xB8, 0xB0, 0x02, 0x64, 0xB8, +0x1C, 0x04, 0x64, 0xB8, 0x1C, 0x01, 0x64, 0xB8, +0x55, 0x53, 0x42, 0x43, 0x00, 0x00, 0x00, 0x08, +0x55, 0x53, 0x42, 0x53, 0x00, 0x20, 0x78, 0xB8, +0x00, 0x10, 0x78, 0xB8, 0x00, 0x00, 0xFD, 0xFF, +0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x04, 0x00, +0x00, 0x0C, 0x01, 0x00, 0x08, 0x00, 0x00, 0xF8, +0x00, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x0F, 0x00, +0x00, 0x00, 0x1F, 0x00, 0x01, 0x00, 0x00, 0xE0, +0x00, 0x00, 0xFF, 0x0F, 0x21, 0x00, 0x00, 0xE0, +0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xF0, 0x0F, +0x00, 0x00, 0x00, 0x0F, 0x62, 0x06, 0x64, 0xB8, +0xB4, 0x06, 0x64, 0xB8, 0x06, 0x00, 0x00, 0x89, +0x00, 0x0A, 0x08, 0x00, 0x01, 0x00, 0x66, 0xB8, +0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x78, 0xB8, +0x44, 0x00, 0x78, 0xB8, 0x01, 0x00, 0x00, 0xC0, +0x01, 0x00, 0x00, 0x60, 0x52, 0x29, 0x46, 0xE2, +0x03, 0x29, 0x29, 0x00, 0x32, 0xFC, 0x18, 0xA2, +0x08, 0x00, 0x04, 0x05, 0x01, 0x00, 0x0F, 0x70, +0x01, 0x00, 0x1F, 0x70, 0x01, 0x00, 0x2F, 0x70, +0x01, 0x00, 0x3F, 0x70, 0x01, 0x00, 0x4F, 0x70, +0x01, 0x00, 0x5F, 0x70, 0x01, 0x00, 0x6F, 0x70, +0x01, 0x00, 0x7F, 0x70, 0x01, 0x00, 0x8F, 0x70, +0x01, 0x00, 0x9F, 0x70, 0x01, 0x00, 0xAF, 0x70, +0x01, 0x00, 0xBF, 0x70, 0x01, 0x00, 0xCF, 0x70, +0x01, 0x00, 0xDF, 0x70, 0x01, 0x00, 0xEF, 0x70, +0x01, 0x00, 0xFF, 0x70, 0x5E, 0x00, 0xD5, 0xF7, +0x41, 0x80, 0x0B, 0x70, 0x40, 0x00, 0x1F, 0x70, +0x40, 0x00, 0x2F, 0x70, 0x40, 0x00, 0x3F, 0x70, +0x40, 0x00, 0x4F, 0x70, 0x41, 0x80, 0x5B, 0x70, +0x40, 0x00, 0x6F, 0x70, 0x41, 0x40, 0x14, 0x70, +0x41, 0x40, 0x24, 0x70, 0x41, 0x40, 0x34, 0x70, +0x41, 0x40, 0x44, 0x70, 0x41, 0x40, 0x64, 0x70, +0x41, 0x80, 0x7B, 0x70, 0x41, 0x80, 0x8B, 0x70, +0x41, 0x80, 0x9B, 0x70, 0x41, 0x80, 0xAB, 0x70, +0x41, 0x80, 0xBB, 0x70, 0x41, 0x80, 0xCB, 0x70, +0x41, 0x80, 0xDB, 0x70, 0x41, 0x80, 0xEB, 0x70, +0x41, 0x80, 0xFB, 0x70, 0x00, 0x00, 0x10, 0x00, +0x50, 0x50, 0x50, 0x50, 0x00, 0x00, 0x00, 0x70, +0x00, 0x00, 0x03, 0x00, 0x1F, 0x00, 0x60, 0xB8, +0xEF, 0x00, 0x60, 0xB8, 0x03, 0x00, 0x00, 0xC0, +0x03, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xFF, +0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x0F, 0xC0, +0x00, 0x00, 0x20, 0x00, 0x08, 0x18, 0x07, 0x00, +0x08, 0x0C, 0x07, 0x00, 0x00, 0x00, 0x0F, 0x00, +0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, +0xFF, 0x60, 0x0F, 0x00, 0x3F, 0xD8, 0x0F, 0x00, +0xFF, 0x60, 0x07, 0x00, 0x3F, 0xD8, 0x0D, 0x00, +0xFF, 0xDE, 0x07, 0x00, 0xBF, 0xF7, 0x0D, 0x00, +0x00, 0x00, 0x00, 0x06, 0x00, 0xC0, 0x0F, 0x00, +0x12, 0x33, 0x03, 0x00, 0x11, 0x33, 0x03, 0x00, +0x12, 0x11, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, +0x31, 0xC9, 0x62, 0x49, 0x55, 0x24, 0x01, 0xFF, +0xC8, 0xFE, 0x18, 0x3E, 0xDE, 0xF0, 0xFA, 0x00, +0x44, 0x23, 0x12, 0x00, 0xFF, 0xFF, 0xFF, 0x0F, +0x00, 0xF0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x78, +0x00, 0x00, 0xF0, 0x00, 0x3F, 0xFF, 0xFE, 0xDF, +0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x60, 0x00, +0x00, 0xFF, 0x0F, 0x00, 0x01, 0x80, 0x03, 0x70, +0x01, 0x80, 0x53, 0x70, 0x01, 0x80, 0x73, 0x70, +0x01, 0x80, 0x83, 0x70, 0x01, 0x80, 0x93, 0x70, +0x01, 0x80, 0xA3, 0x70, 0x01, 0x80, 0xB3, 0x70, +0x01, 0x80, 0xC3, 0x70, 0x01, 0x80, 0xD3, 0x70, +0x01, 0x80, 0xE3, 0x70, 0x01, 0x80, 0xF3, 0x70, +0x01, 0x80, 0x0B, 0x70, 0x01, 0x80, 0x5B, 0x70, +0x01, 0x80, 0x7B, 0x70, 0x01, 0x80, 0x8B, 0x70, +0x01, 0x80, 0x9B, 0x70, 0x01, 0x80, 0xAB, 0x70, +0x01, 0x80, 0xBB, 0x70, 0x01, 0x80, 0xCB, 0x70, +0x01, 0x80, 0xDB, 0x70, 0x01, 0x80, 0xEB, 0x70, +0x01, 0x80, 0xFB, 0x70, 0x00, 0x00, 0x00, 0xF0, +0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7F, +0x00, 0x00, 0x7F, 0x00, 0x00, 0xFC, 0x01, 0x00, +0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x40, 0x00, +0x00, 0xFC, 0xF8, 0xFF, 0x00, 0x01, 0x01, 0x00, +0x00, 0x00, 0x00, 0x3F, 0x96, 0x02, 0x64, 0xB8, +0x00, 0x00, 0x70, 0xB8, 0x18, 0x00, 0x70, 0xB8, +0x0B, 0x00, 0x70, 0xB8, 0x02, 0x00, 0x70, 0xB8, +0x94, 0x02, 0x64, 0xB8, 0x97, 0x02, 0x64, 0xB8, +0x84, 0x02, 0x64, 0xB8, 0x06, 0x00, 0x66, 0xB8, +0x54, 0x02, 0x64, 0xB8, 0x50, 0x02, 0x64, 0xB8, +0x4C, 0x02, 0x64, 0xB8, 0x04, 0x00, 0x78, 0xB8, +0x48, 0x02, 0x64, 0xB8, 0x44, 0x02, 0x64, 0xB8, +0xCC, 0x01, 0x64, 0xB8, 0x74, 0x00, 0x18, 0x2E, +0x74, 0x00, 0x19, 0x2E, 0x01, 0x00, 0x60, 0xB8, +0x01, 0x00, 0x64, 0xB8, 0x34, 0x01, 0x64, 0xB8, 0x64, 0x05, 0x64, 0xB8, 0x60, 0x05, 0x64, 0xB8, 0xC8, 0x01, 0x64, 0xB8, 0xC9, 0x01, 0x64, 0xB8, 0x48, 0x00, 0x60, 0xB8, 0xFF, 0xFF, 0xFE, 0xFF, @@ -42437,14 +41835,14 @@ u8 array_mp_8822c_fw_spic[] = { 0x00, 0x0C, 0x0E, 0x38, 0x18, 0x00, 0x00, 0x00, 0x00, 0x83, 0x01, 0x06, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x70, 0xE0, 0x00, 0x00, 0x00, 0x00, -0x9D, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x95, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xF0, 0x21, 0x6C, 0x00, 0xF0, 0x00, 0x4C, 0xBC, 0x65, 0x94, 0xB8, 0x00, 0x65, 0x00, 0x6D, 0xFE, 0xF7, 0x1F, 0x4D, 0xAC, 0xEC, 0x94, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0xF4, 0x00, 0x6D, 0xAD, 0xEC, 0x40, 0x6D, 0xAD, 0xEC, 0x94, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x1F, 0xF7, 0x00, 0x6C, 0x8C, 0xB9, 0x00, 0x65, +0x1F, 0xF6, 0x00, 0x6C, 0x8C, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x77, 0xF0, 0x20, 0x6C, 0x80, 0xF0, 0x80, 0x9C, 0x80, 0xF0, 0x20, 0x6E, 0xCC, 0xEC, 0x18, 0x24, 0x30, 0xF0, 0x21, 0x6C, @@ -42457,60 +41855,60 @@ u8 array_mp_8822c_fw_spic[] = { 0xC0, 0xF1, 0x14, 0x4C, 0x00, 0x6E, 0x30, 0xF0, 0x20, 0x6F, 0x41, 0xF7, 0x08, 0x4F, 0xC0, 0xDC, 0x04, 0x4C, 0xE3, 0xEC, 0xB8, 0x67, 0xFB, 0x2D, -0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF4, 0x04, 0x4C, +0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF4, 0x14, 0x4C, 0x00, 0x6E, 0x30, 0xF0, 0x20, 0x6F, 0x6B, 0xF3, -0x08, 0x4F, 0xC0, 0xDC, 0x04, 0x4C, 0xE3, 0xEC, +0x18, 0x4F, 0xC0, 0xDC, 0x04, 0x4C, 0xE3, 0xEC, 0xB8, 0x67, 0xFB, 0x2D, 0x10, 0xF0, 0x23, 0x6C, 0xC0, 0xF0, 0x01, 0x4C, 0x00, 0xEC, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, 0x64, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0xC0, 0xF0, 0x01, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF3, -0x68, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, 0x30, 0xF0, +0x6C, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, 0x30, 0xF0, 0x20, 0x68, 0x40, 0xAB, 0x30, 0xF0, 0x20, 0x69, 0x8C, 0xEA, 0xFF, 0x6C, 0x01, 0x4C, 0x8D, 0xEA, 0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEA, 0x40, 0xCB, -0x00, 0x1C, 0x80, 0x00, 0x80, 0x18, 0x3E, 0x4F, -0x80, 0x18, 0x72, 0x4D, 0x80, 0x18, 0x53, 0x4D, -0x80, 0x18, 0xFB, 0x4E, 0x80, 0x18, 0x99, 0x4D, -0x80, 0x18, 0xEE, 0x4E, 0x00, 0x18, 0xAE, 0xC3, +0x00, 0x1C, 0x80, 0x00, 0x80, 0x18, 0xC5, 0x4D, +0x80, 0x18, 0xF9, 0x4B, 0x80, 0x18, 0xDA, 0x4B, +0x80, 0x18, 0x82, 0x4D, 0x80, 0x18, 0x20, 0x4C, +0x80, 0x18, 0x75, 0x4D, 0x00, 0x18, 0xA5, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x54, 0x9A, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x21, 0x6A, 0x41, 0xF7, 0x08, 0x4C, 0x1D, 0xF0, 0x00, 0x4A, 0x43, 0xDC, 0xE0, 0xF7, 0x40, 0x98, 0x00, 0x6D, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF5, 0x40, 0xDB, 0x01, 0xF0, 0x50, 0x99, +0x03, 0xF5, 0x50, 0xDB, 0x01, 0xF0, 0x50, 0x99, 0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF0, 0x10, 0x4C, 0x01, 0x6D, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF5, 0x54, 0xDB, 0x30, 0xF0, 0x20, 0x6C, +0x23, 0xF5, 0x44, 0xDB, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x21, 0x6A, 0xE1, 0xF7, 0x00, 0x4C, 0x1D, 0xF4, 0x00, 0x4A, 0x43, 0xDC, 0xE0, 0xF7, 0x40, 0x98, 0x00, 0x6D, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF5, 0x48, 0xDB, 0x01, 0xF0, +0x20, 0x6B, 0x03, 0xF5, 0x58, 0xDB, 0x01, 0xF0, 0x50, 0x99, 0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF0, 0x0C, 0x4C, 0x01, 0x6D, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF5, 0x50, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF5, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x21, 0x6A, 0x81, 0xF7, 0x14, 0x4C, 0x1E, 0xF0, 0x00, 0x4A, 0x43, 0xDC, 0xE0, 0xF7, 0x40, 0x98, 0x00, 0x6D, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, 0x44, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, 0x54, 0xDB, 0x01, 0xF0, 0x50, 0x99, 0x30, 0xF0, 0x20, 0x6C, 0x00, 0x6D, 0x82, 0xF0, 0x04, 0x4C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, 0x58, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF5, 0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x01, 0xF0, 0x44, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF0, 0x00, 0x4C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, -0x5C, 0xDB, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF5, +0x4C, 0xDB, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x21, 0x6A, 0x22, 0xF0, 0x14, 0x4C, 0x1E, 0xF4, 0x00, 0x4A, 0x43, 0xDC, 0xE0, 0xF7, 0x40, 0x98, 0x00, 0x6D, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF5, 0x4C, 0xDB, 0x80, 0x18, 0xA1, 0x50, -0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF3, 0x60, 0x9A, +0x03, 0xF5, 0x5C, 0xDB, 0x80, 0x18, 0x28, 0x4F, +0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF3, 0x64, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, 0x7F, 0xF7, 0x1F, 0x6D, 0x40, 0xAB, 0x8C, 0xEA, 0x10, 0xF0, 0x00, 0x6C, 0x8B, 0xEC, 0x8D, 0xEA, 0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEA, 0x01, 0x6C, 0x40, 0xCB, 0xC4, 0x67, -0x00, 0x18, 0xC2, 0xC5, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0x18, 0xB9, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x58, 0x9A, 0x40, 0xEA, 0x00, 0x1C, 0xAB, 0x39, 0xFF, 0x17, 0x6D, 0xB8, 0x00, 0x65, 0x00, 0xF0, 0x20, 0x6A, 0x7C, 0x4A, 0x6C, 0xEA, @@ -42520,7 +41918,7 @@ u8 array_mp_8822c_fw_spic[] = { 0x60, 0xAA, 0xBF, 0xF6, 0x1A, 0x6A, 0x6A, 0xEA, 0x31, 0x60, 0x77, 0xF0, 0x24, 0x6A, 0xA0, 0xF1, 0x1C, 0x4A, 0x1D, 0xF4, 0x00, 0x6B, 0x60, 0xDA, -0x10, 0xF0, 0x23, 0x6A, 0x01, 0xF4, 0x15, 0x4A, +0x10, 0xF0, 0x23, 0x6A, 0xE0, 0xF7, 0x11, 0x4A, 0x00, 0xEA, 0x00, 0xF0, 0x20, 0x6A, 0x1F, 0xF7, 0x00, 0x6A, 0x4C, 0xEB, 0x4C, 0xB8, 0x00, 0x65, 0x6C, 0xEA, 0x42, 0x32, 0x30, 0xF0, 0x20, 0x6B, @@ -42557,7 +41955,7 @@ u8 array_mp_8822c_fw_spic[] = { 0x80, 0x44, 0x62, 0xEC, 0x0D, 0x60, 0x77, 0xF0, 0x24, 0x6C, 0xA0, 0xF1, 0x1C, 0x4C, 0x1D, 0xF4, 0x01, 0x6B, 0x60, 0xDC, 0x10, 0xF0, 0x23, 0x6C, -0x01, 0xF4, 0x15, 0x4C, 0x00, 0xEC, 0x00, 0x65, +0xE0, 0xF7, 0x11, 0x4C, 0x00, 0xEC, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF1, 0x0C, 0x4B, 0x41, 0x9B, 0x40, 0xDB, 0x89, 0x9A, 0xBC, 0x65, 0x7D, 0x67, 0xDF, 0xF7, 0x00, 0x03, 0x4C, 0xB8, @@ -42605,7 +42003,7 @@ u8 array_mp_8822c_fw_spic[] = { 0x80, 0x44, 0x62, 0xEC, 0x0D, 0x60, 0x77, 0xF0, 0x24, 0x6C, 0xA0, 0xF1, 0x1C, 0x4C, 0x1D, 0xF4, 0x01, 0x6B, 0x60, 0xDC, 0x10, 0xF0, 0x23, 0x6C, -0x01, 0xF4, 0x15, 0x4C, 0x00, 0xEC, 0x00, 0x65, +0xE0, 0xF7, 0x11, 0x4C, 0x00, 0xEC, 0x00, 0x65, 0x40, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x41, 0xF3, 0x08, 0x4C, 0x00, 0xF4, 0x00, 0x4C, 0xBC, 0x65, 0x82, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, @@ -42628,7 +42026,7 @@ u8 array_mp_8822c_fw_spic[] = { 0x00, 0x65, 0x00, 0x65, 0x7B, 0xB8, 0x00, 0x65, 0x5A, 0xB8, 0x00, 0x65, 0x00, 0xBA, 0x00, 0x65, 0x5F, 0x67, 0x5A, 0xB9, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x18, 0xDC, 0xC2, 0x00, 0x1C, +0x00, 0x65, 0x00, 0x18, 0xD0, 0xC1, 0x00, 0x1C, 0xBA, 0x35, 0x5A, 0xB8, 0x00, 0x65, 0x00, 0xEA, 0x6D, 0xB8, 0x00, 0xF0, 0x20, 0x6A, 0x00, 0xF2, 0x00, 0x4A, 0x4F, 0xEA, 0x4C, 0xEB, 0xAB, 0xB9, @@ -42636,166 +42034,32 @@ u8 array_mp_8822c_fw_spic[] = { 0x5A, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x1C, 0x7D, 0x35, 0x5A, 0xB8, 0x00, 0x65, 0x00, 0xEA, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, -0x02, 0xF3, 0x6C, 0x9B, 0xFF, 0x6A, 0x8C, 0xEA, +0x02, 0xF3, 0x70, 0x9B, 0xFF, 0x6A, 0x8C, 0xEA, 0x80, 0xA3, 0x10, 0x6B, 0x8C, 0xEB, 0x05, 0x23, 0xE2, 0xF1, 0x10, 0x4A, 0xE2, 0xF1, 0x10, 0x6B, 0x31, 0x10, 0x7F, 0x4A, 0x09, 0x4A, 0x88, 0x6B, 0x15, 0x10, 0x1F, 0xF7, 0x00, 0x6C, 0x6C, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, -0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF2, 0x98, 0x9C, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF2, -0x9C, 0x9C, 0xC0, 0xA5, 0x91, 0xE3, 0x01, 0x4D, +0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF2, 0x9C, 0x9C, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0x02, 0xF3, +0x80, 0x9C, 0xC0, 0xA5, 0x91, 0xE3, 0x01, 0x4D, 0xC0, 0xC4, 0x01, 0x4B, 0x4A, 0xEB, 0xE9, 0x61, 0x20, 0xE8, 0x1F, 0xF7, 0x00, 0x6C, 0x6C, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, -0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF2, 0x98, 0x9C, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF2, -0x9C, 0x9C, 0xC0, 0xA5, 0x91, 0xE3, 0x01, 0x4D, +0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF2, 0x9C, 0x9C, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0x02, 0xF3, +0x80, 0x9C, 0xC0, 0xA5, 0x91, 0xE3, 0x01, 0x4D, 0xC0, 0xC4, 0x01, 0x4B, 0x4A, 0xEB, 0xE9, 0x61, -0x20, 0xE8, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x4C, 0xED, -0x4C, 0xEC, 0xCC, 0xEA, 0x4B, 0xEA, 0xC0, 0xF7, -0x42, 0x32, 0x44, 0x32, 0x30, 0xF0, 0x20, 0x68, -0x04, 0xD2, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xD5, -0xA4, 0x36, 0x08, 0x6B, 0x01, 0x6D, 0x07, 0xD4, -0xAB, 0xED, 0x03, 0xF3, 0x00, 0x6C, 0x6D, 0xEE, -0x40, 0xEA, 0x07, 0x92, 0x0F, 0x2A, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x02, 0xF4, -0xA4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x03, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF4, -0x50, 0x9A, 0x0E, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x02, 0xF4, 0xA4, 0x9B, -0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF4, 0x54, 0x9A, -0x06, 0xD2, 0x07, 0x92, 0x22, 0x6B, 0x08, 0x94, -0x78, 0xEA, 0x44, 0x6A, 0x00, 0x68, 0x12, 0xEB, -0x58, 0xEC, 0x04, 0x94, 0x12, 0xEA, 0x4D, 0xE3, -0x88, 0x6A, 0x58, 0xEC, 0x12, 0xEA, 0x4D, 0xE3, -0x30, 0xF0, 0x20, 0x6A, 0x87, 0xF3, 0x00, 0x4B, -0x63, 0xF5, 0x08, 0x4A, 0x69, 0xE2, 0x05, 0xD2, -0x05, 0x92, 0x06, 0x94, 0x30, 0xF0, 0x20, 0x69, -0xC0, 0xAA, 0x08, 0x32, 0x01, 0x6D, 0xC0, 0x36, -0x8D, 0xEE, 0x4D, 0xEE, 0xC0, 0xF3, 0x44, 0x99, -0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x02, 0x4E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x99, 0x42, 0xF3, 0xB4, 0x9B, 0xC3, 0xF3, -0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x05, 0x92, -0x01, 0x48, 0x11, 0x70, 0x02, 0x4A, 0x05, 0xD2, -0xDF, 0x61, 0x07, 0x92, 0x22, 0x6B, 0x08, 0x94, -0x78, 0xEA, 0x44, 0x6A, 0x00, 0x69, 0x12, 0xEB, -0x58, 0xEC, 0x04, 0x94, 0x12, 0xEA, 0x4D, 0xE3, -0x88, 0x6A, 0x58, 0xEC, 0x12, 0xEA, 0x4D, 0xE3, -0x30, 0xF0, 0x20, 0x6A, 0x87, 0xF4, 0x10, 0x4B, -0x63, 0xF5, 0x08, 0x4A, 0x69, 0xE2, 0x04, 0xD2, -0x04, 0x92, 0x06, 0x94, 0x30, 0xF0, 0x20, 0x68, -0xC0, 0xAA, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0x33, -0xC0, 0x36, 0x8D, 0xEE, 0x01, 0x6D, 0x6D, 0xEE, -0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x42, 0xF3, 0xB4, 0x9B, 0xC3, 0xF3, 0x18, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x04, 0x92, 0x01, 0x49, -0x11, 0x71, 0x02, 0x4A, 0x04, 0xD2, 0xE0, 0x61, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0xE2, 0xF3, 0xD8, 0x9B, 0x01, 0x6D, 0xC3, 0xF3, -0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x02, 0xF4, -0xA4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, -0x40, 0xEA, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, -0x07, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x4C, 0xED, -0x4C, 0xEC, 0xCC, 0xEA, 0x4B, 0xEA, 0xC0, 0xF7, -0x42, 0x32, 0x30, 0xF0, 0x20, 0x68, 0x44, 0x32, -0xC0, 0xF3, 0x64, 0x98, 0x06, 0xD5, 0x04, 0xD2, -0xA4, 0x36, 0x08, 0x6A, 0x01, 0x6D, 0x05, 0xD4, -0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, -0x40, 0xEB, 0x05, 0x92, 0x0A, 0x2A, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, -0x00, 0x6C, 0x02, 0xF4, 0xA4, 0x9B, 0x03, 0x6E, -0x09, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x02, 0xF4, 0xA4, 0x9B, 0x23, 0xF3, -0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0xE2, 0xF4, 0xBC, 0x9B, 0xC3, 0xF3, -0x14, 0x69, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0xE2, 0xF3, 0xB4, 0x9B, 0x91, 0x67, 0x10, 0x6E, -0x40, 0xEA, 0x05, 0x92, 0x22, 0x6B, 0x06, 0x94, -0x78, 0xEA, 0x44, 0x6A, 0x00, 0x68, 0x12, 0xEB, -0x58, 0xEC, 0x04, 0x94, 0x12, 0xEA, 0x4D, 0xE3, -0x88, 0x6A, 0x58, 0xEC, 0x12, 0xEA, 0x4D, 0xE3, -0x30, 0xF0, 0x20, 0x6A, 0x87, 0xF3, 0x20, 0x43, -0x63, 0xF5, 0x08, 0x4A, 0x87, 0xF4, 0x10, 0x4B, -0x6D, 0xE2, 0x25, 0xE2, 0x04, 0xD3, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF3, 0x58, 0x9A, 0x08, 0x36, -0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, -0x4D, 0xEE, 0x40, 0xEB, 0x01, 0x6D, 0xE3, 0xF3, -0x1C, 0x6C, 0xAB, 0xED, 0x80, 0x18, 0x1F, 0x14, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, 0x7C, 0x9B, -0x04, 0x94, 0x01, 0x48, 0x4C, 0xEB, 0x62, 0x33, -0x62, 0x33, 0x60, 0xC9, 0xE1, 0xF7, 0x1F, 0x6B, -0x4C, 0xEB, 0x60, 0xCC, 0x11, 0x70, 0x02, 0x4C, -0x02, 0x49, 0x04, 0xD4, 0xD8, 0x61, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, -0x20, 0x6B, 0x02, 0xF4, 0xA4, 0x9B, 0x23, 0xF3, -0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0x68, 0x0C, 0xEC, 0x01, 0x74, 0xAC, 0xE8, -0x80, 0xF0, 0x0B, 0x60, 0x07, 0x24, 0x02, 0x74, -0x80, 0xF0, 0x1D, 0x60, 0x03, 0x74, 0x80, 0xF0, -0x1E, 0x60, 0xA2, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0xA7, 0xF5, 0x68, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, -0xA7, 0xF5, 0x6C, 0xDA, 0x00, 0x6E, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF3, -0x08, 0x4C, 0x2B, 0xF3, 0x00, 0x4B, 0x0B, 0xF3, -0x1C, 0x4A, 0x0B, 0xF1, 0x0A, 0x4D, 0x04, 0xD6, -0xC0, 0x9C, 0x04, 0x97, 0x00, 0x69, 0xC2, 0xDC, -0xC0, 0xAB, 0xC3, 0xF6, 0x10, 0x4F, 0xE4, 0x37, -0xC2, 0xCB, 0xC0, 0xA2, 0x06, 0xD5, 0x05, 0xD1, -0xC2, 0xC2, 0x30, 0xF0, 0x20, 0x6E, 0x63, 0xF5, -0x08, 0x4E, 0xFD, 0xE6, 0xC0, 0xA7, 0x22, 0x68, -0x04, 0x91, 0xC4, 0xC7, 0x05, 0x96, 0x18, 0xEE, -0x44, 0x6E, 0x12, 0xE8, 0xD8, 0xE9, 0x30, 0xF0, -0x20, 0x69, 0x63, 0xF5, 0x08, 0x49, 0x12, 0xEE, -0xC1, 0xE0, 0x87, 0xF3, 0xC0, 0x40, 0x87, 0xF4, -0x10, 0x48, 0xD9, 0xE1, 0x01, 0xE1, 0x20, 0xAE, -0x80, 0xF0, 0x28, 0xCE, 0x20, 0xA8, 0x02, 0x4E, -0x80, 0xF0, 0x28, 0xC8, 0x06, 0x91, 0x02, 0x48, -0x2A, 0xEE, 0xF5, 0x61, 0x05, 0x96, 0x22, 0x49, -0x01, 0x4F, 0x01, 0x4E, 0x02, 0x76, 0x05, 0xD6, -0x06, 0xD1, 0xD8, 0x61, 0x04, 0x91, 0x04, 0x4C, -0x02, 0x4B, 0x01, 0x49, 0x02, 0x71, 0x04, 0xD1, -0x01, 0x4A, 0x44, 0x4D, 0xBD, 0x61, 0x30, 0xF0, -0x20, 0x6B, 0x0B, 0xF3, 0x1C, 0x4B, 0x44, 0x43, -0xA7, 0x43, 0x16, 0x4D, 0xE2, 0x67, 0x00, 0x6C, -0x80, 0xC3, 0x01, 0x4B, 0x00, 0x6C, 0x01, 0x6E, -0xEA, 0xEB, 0x80, 0xCA, 0xFF, 0xF7, 0xC8, 0xC2, -0x20, 0xF0, 0x85, 0xC2, 0xFF, 0xF7, 0xC9, 0xC2, -0x20, 0xF0, 0x86, 0xC2, 0x80, 0xC5, 0x81, 0xC5, -0x82, 0xC5, 0x02, 0x4A, 0x03, 0x4D, 0xEB, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0xA7, 0xF5, 0x70, 0x9A, 0xA7, 0xF5, 0x68, 0xDA, -0x1F, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, -0xF0, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xB0, 0x67, -0xCA, 0xF4, 0x08, 0x4C, 0x58, 0x6E, 0x80, 0x18, -0xBA, 0x46, 0x61, 0xF7, 0x10, 0x48, 0x30, 0xF0, -0x20, 0x6B, 0x08, 0x30, 0x63, 0xF5, 0x08, 0x4B, -0x6D, 0xE0, 0x40, 0xDB, 0x09, 0x10, 0x00, 0x6C, -0xB0, 0x67, 0xC4, 0x67, 0x03, 0x10, 0x01, 0x6C, -0xB0, 0x67, 0x00, 0x6E, 0x00, 0x18, 0x0F, 0xC2, -0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, 0x01, 0x72, 0x14, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xC2, 0xF4, -0xB0, 0x9B, 0x83, 0xF2, 0x1C, 0x6C, 0x01, 0x6E, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xE2, 0xF4, +0xA4, 0x9B, 0x83, 0xF2, 0x1C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x14, 0x6C, 0x00, 0xF3, 0x00, 0x6D, 0x00, 0x6E, 0x15, 0x10, 0x02, 0x72, 0x14, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0xC2, 0xF4, 0xB0, 0x9B, 0x83, 0xF2, +0x44, 0x98, 0xE2, 0xF4, 0xA4, 0x9B, 0x83, 0xF2, 0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x14, 0x6C, 0x00, 0xF3, 0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, 0x05, 0x97, @@ -42808,15485 +42072,19 @@ u8 array_mp_8822c_fw_spic[] = { 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF2, 0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF2, 0x44, 0x9A, 0x60, 0xDA, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF1, 0x00, 0x4A, 0x30, 0xF0, -0x20, 0x6B, 0xEF, 0x9A, 0xC2, 0xF2, 0x6C, 0x9B, -0xCE, 0x9A, 0xAD, 0x9A, 0x8C, 0x9A, 0xE0, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, 0x70, 0x9B, -0xC0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, -0x74, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF2, 0x78, 0x9B, 0x80, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0x89, 0x9A, 0xC2, 0xF2, 0x7C, 0x9B, -0x80, 0xDB, 0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF2, 0x40, 0x9A, 0x01, 0x6C, 0xA4, 0x67, -0x60, 0xDA, 0x80, 0x18, 0x68, 0x00, 0x00, 0x1C, -0xAC, 0x39, 0xFF, 0x17, 0x4C, 0xB8, 0x00, 0x65, -0x80, 0x34, 0x8D, 0xEA, 0x8A, 0xB9, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0x4C, 0xB8, 0x00, 0x65, 0x80, 0x34, 0x8F, 0xEC, -0x8C, 0xEA, 0x8A, 0xB9, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x00, 0xF1, 0x00, 0x4A, 0x60, 0xDA, 0x81, 0xDA, -0xA2, 0xDA, 0xC3, 0xDA, 0xE4, 0xDA, 0x05, 0xDA, -0x26, 0xDA, 0x78, 0x67, 0x67, 0xDA, 0x7D, 0x67, -0x68, 0xDA, 0x7F, 0x67, 0x69, 0xDA, 0x12, 0xEB, -0x6A, 0xDA, 0x10, 0xEB, 0x6B, 0xDA, 0x6D, 0xB8, -0x00, 0x65, 0x6C, 0xDA, 0x68, 0xB8, 0x00, 0x65, -0x6D, 0xDA, 0x6C, 0xB8, 0x00, 0x65, 0x6E, 0xDA, -0x6E, 0xB8, 0x00, 0x65, 0x6F, 0xDA, 0x10, 0xF0, -0x23, 0x6A, 0x61, 0xF3, 0x19, 0x4A, 0x00, 0xEA, -0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF2, 0x64, 0x9B, 0x10, 0xF0, 0x23, 0x6A, -0x61, 0xF4, 0x05, 0x4A, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF2, 0x44, 0x9A, 0x08, 0x6B, -0x40, 0xA2, 0x4C, 0xEB, 0x00, 0x6A, 0x11, 0x23, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0x48, 0x9A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0x9A, 0x23, 0xF5, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, -0x4C, 0x9A, 0x23, 0xF5, 0x00, 0x4B, 0x40, 0x9A, -0x41, 0xDB, 0x20, 0xE8, 0xFF, 0x6A, 0x8C, 0xEA, -0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF2, 0x84, 0x9C, -0x10, 0xF0, 0x23, 0x6B, 0xA1, 0xF4, 0x0D, 0x4B, -0x60, 0xDC, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF2, -0x64, 0x9B, 0x80, 0xA3, 0x08, 0x6B, 0x8C, 0xEB, -0x1C, 0x23, 0x05, 0x5A, 0x1A, 0x60, 0x0C, 0x6D, -0xB8, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF2, -0x68, 0x9B, 0x80, 0x9B, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF5, 0x08, 0x4B, 0x12, 0xEA, 0x49, 0xE3, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF2, 0x6C, 0x9B, -0x81, 0xDA, 0x80, 0xA2, 0x60, 0x9B, 0x62, 0xDA, -0x01, 0x6B, 0x8D, 0xEB, 0x60, 0xC2, 0x01, 0x6A, -0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, -0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, -0xC2, 0xF2, 0x84, 0x9C, 0x10, 0xF0, 0x23, 0x6B, -0x01, 0xF5, 0x11, 0x4B, 0x60, 0xDC, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF2, 0x64, 0x9B, 0x80, 0xA3, -0x08, 0x6B, 0x8C, 0xEB, 0x1B, 0x23, 0x05, 0x5A, -0x19, 0x60, 0x0C, 0x6C, 0x98, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF5, 0x08, 0x4B, 0x12, 0xEA, -0x69, 0xE2, 0x80, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, -0x0D, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF2, -0x68, 0x9B, 0x42, 0x9A, 0xA0, 0x9B, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF2, 0x6C, 0x9B, 0x60, 0x9B, -0x4B, 0xE3, 0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, -0xFF, 0x6B, 0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, -0xC2, 0xF2, 0x84, 0x9C, 0x10, 0xF0, 0x23, 0x6A, -0x61, 0xF5, 0x11, 0x4A, 0x05, 0x5B, 0x40, 0xDC, -0x00, 0x6A, 0x11, 0x60, 0x0C, 0x6C, 0x98, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF5, 0x08, 0x4A, -0x12, 0xEB, 0x4D, 0xE3, 0x80, 0xA3, 0x02, 0x6A, -0x4B, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x00, 0x6A, -0x41, 0xDB, 0x42, 0xDB, 0x01, 0x6A, 0x20, 0xE8, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6B, 0xC2, 0xF2, 0x64, 0x9B, 0x10, 0xF0, -0x23, 0x6A, 0xA1, 0xF5, 0x11, 0x4A, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x50, 0x9A, -0x40, 0xEA, 0x03, 0x22, 0x00, 0x18, 0x19, 0xC3, -0x05, 0x10, 0x10, 0xF0, 0x23, 0x68, 0x61, 0xF4, -0x05, 0x48, 0xBA, 0xFE, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, -0x64, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0xE1, 0xF5, -0x0D, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF7, 0x50, 0x9A, 0xFF, 0x68, 0x8C, 0xE8, -0x40, 0xEA, 0x04, 0x22, 0x90, 0x67, 0x00, 0x18, -0x2B, 0xC3, 0x06, 0x10, 0x90, 0x67, 0x10, 0xF0, -0x23, 0x68, 0xA1, 0xF4, 0x0D, 0x48, 0xBA, 0xFE, -0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6B, 0xC2, 0xF2, 0x64, 0x9B, 0x10, 0xF0, -0x23, 0x6A, 0x21, 0xF6, 0x11, 0x4A, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x50, 0x9A, -0xFF, 0x68, 0x8C, 0xE8, 0x40, 0xEA, 0x04, 0x22, -0x90, 0x67, 0x00, 0x18, 0x44, 0xC3, 0x06, 0x10, -0x90, 0x67, 0x10, 0xF0, 0x23, 0x68, 0x01, 0xF5, -0x11, 0x48, 0xBA, 0xFE, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, -0x64, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0x61, 0xF6, -0x15, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF7, 0x50, 0x9A, 0xFF, 0x68, 0x8C, 0xE8, -0x40, 0xEA, 0x04, 0x22, 0x90, 0x67, 0x00, 0x18, -0x5C, 0xC3, 0x06, 0x10, 0x90, 0x67, 0x10, 0xF0, -0x23, 0x68, 0x61, 0xF5, 0x11, 0x48, 0xBA, 0xFE, -0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0x10, 0xF0, 0x23, 0x6A, 0x00, 0xF3, 0x01, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x48, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xC0, 0xF4, 0x0D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x4C, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x60, 0xF5, 0x15, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x50, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xE0, 0xF5, 0x09, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x54, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x61, 0xF3, 0x19, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x58, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x01, 0xF4, 0x15, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x5C, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x61, 0xF3, 0x15, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x40, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x3C, 0xF6, 0x0C, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x44, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0xBA, 0xF4, 0x0C, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x48, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x5A, 0xF2, 0x1C, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x4C, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0xDA, 0xF5, 0x0C, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x50, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0xFA, 0xF6, 0x08, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x54, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0xFA, 0xF5, 0x14, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x58, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x7A, 0xF1, 0x18, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x5C, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0xBB, 0xF6, 0x10, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x40, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x7B, 0xF5, 0x10, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x44, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0xFB, 0xF5, 0x14, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x48, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x5C, 0xF1, 0x10, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x4C, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x5C, 0xF7, 0x00, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x50, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0xBC, 0xF1, 0x00, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x54, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0xFC, 0xF0, 0x18, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x58, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x5B, 0xF6, 0x0C, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x5C, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0xFA, 0xF5, 0x00, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x40, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0xDA, 0xF0, 0x08, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x44, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0xD9, 0xF6, 0x18, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x48, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x1C, 0xF6, 0x08, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x4C, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0xB9, 0xF6, 0x10, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x50, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0xFB, 0xF1, 0x04, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x54, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0xFB, 0xF7, 0x0C, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x58, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0xBC, 0xF6, 0x14, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x5C, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x1B, 0xF7, 0x0C, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x40, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x7B, 0xF6, 0x10, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x44, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0xFB, 0xF1, 0x00, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x48, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x41, 0xF3, 0x15, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x4C, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x5A, 0xF0, 0x18, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x50, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x1A, 0xF0, 0x14, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x54, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0xFA, 0xF0, 0x00, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x58, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x5A, 0xF2, 0x00, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x5C, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x9A, 0xF3, 0x1C, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x40, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0xFA, 0xF1, 0x10, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x44, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x5C, 0xF3, 0x0C, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x48, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x5C, 0xF4, 0x18, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x4C, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x3C, 0xF2, 0x0C, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x50, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0xBC, 0xF4, 0x18, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x54, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x1C, 0xF5, 0x18, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x58, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0xFB, 0xF1, 0x08, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x5C, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x9B, 0xF4, 0x00, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x40, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x1B, 0xF3, 0x14, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x44, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x1B, 0xF2, 0x14, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x48, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x5A, 0xF7, 0x1C, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x4C, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0xBB, 0xF0, 0x14, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x50, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x5B, 0xF0, 0x0C, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x54, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x9A, 0xF7, 0x04, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x58, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x5B, 0xF1, 0x04, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x5C, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x7B, 0xF1, 0x10, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x40, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x9C, 0xF7, 0x10, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x44, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0xFC, 0xF7, 0x04, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x48, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x1D, 0xF0, 0x10, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x4C, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x79, 0xF6, 0x0C, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x50, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0xDD, 0xF0, 0x0C, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x54, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x1D, 0xF1, 0x08, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x58, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x3D, 0xF1, 0x14, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x5C, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x9D, 0xF3, 0x08, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x40, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0xFD, 0xF3, 0x04, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x44, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x3D, 0xF4, 0x08, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x48, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x5D, 0xF4, 0x1C, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x4C, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x9D, 0xF4, 0x08, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x50, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0xDD, 0xF4, 0x04, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x54, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0xFD, 0xF6, 0x18, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x58, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x3D, 0xF7, 0x1C, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x5C, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x7D, 0xF7, 0x1C, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x40, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x1E, 0xF1, 0x10, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x44, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x7E, 0xF1, 0x00, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x48, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x9E, 0xF1, 0x1C, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, 0x40, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0xDE, 0xF1, 0x10, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x4C, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0xDE, 0xF3, 0x1C, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x50, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x3E, 0xF4, 0x18, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x54, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0x7E, 0xF4, 0x14, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x58, 0xDB, -0x10, 0xF0, 0x21, 0x6A, 0xBE, 0xF4, 0x0C, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x5C, 0xDB, -0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xED, 0x8E, 0x36, -0x07, 0x6B, 0x01, 0x75, 0x4C, 0xEE, 0x8C, 0xEB, -0x12, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, -0x08, 0x4A, 0x59, 0xE6, 0x01, 0x6A, 0x44, 0xEB, -0x03, 0xF3, 0x64, 0xA6, 0x00, 0x6D, 0x6D, 0xEA, -0x03, 0xF3, 0x44, 0xC6, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF3, 0x40, 0x9A, 0x12, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, 0x59, 0xE6, -0x01, 0x6A, 0x44, 0xEB, 0x03, 0xF3, 0x64, 0xA6, -0x4F, 0xEA, 0x01, 0x6D, 0x6C, 0xEA, 0x03, 0xF3, -0x44, 0xC6, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, -0x40, 0x9A, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, -0x01, 0x6B, 0xAC, 0xEA, 0x6E, 0xEA, 0x01, 0x5A, -0x58, 0x67, 0x05, 0x5C, 0x48, 0x32, 0x03, 0x61, -0x01, 0x6A, 0x4B, 0xEA, 0x20, 0xE8, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF2, 0xB0, 0x9B, 0x30, 0xF0, -0x20, 0x6E, 0xE2, 0xF2, 0xD4, 0x9E, 0x60, 0x9D, -0x00, 0xF7, 0x80, 0x34, 0xCC, 0xEB, 0x6D, 0xEC, -0x80, 0xDD, 0x1F, 0xF7, 0x00, 0x6B, 0x60, 0xF5, -0x80, 0x42, 0x8C, 0xEB, 0x02, 0xF0, 0x00, 0x73, -0x01, 0x60, 0x09, 0x2B, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF2, 0x78, 0x9B, 0x60, 0xF5, 0x00, 0x4A, -0x69, 0xE2, 0x40, 0x9A, 0x20, 0xE8, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF2, 0x5C, 0x9A, 0x51, 0xE4, -0x40, 0x9C, 0x20, 0xE8, 0xFB, 0x63, 0x09, 0x62, -0xFF, 0x6A, 0x4C, 0xEC, 0x32, 0x6B, 0xAC, 0xEA, -0xBD, 0x67, 0x70, 0xC5, 0x02, 0x5C, 0x02, 0x6B, -0x6F, 0xCD, 0x92, 0xC5, 0x02, 0x60, 0x53, 0xC5, -0x04, 0x10, 0x01, 0x6A, 0x4B, 0xEA, 0x7D, 0x67, -0x53, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, -0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, -0x05, 0x63, 0x00, 0xEF, 0xFF, 0x6B, 0x6C, 0xEC, -0x01, 0x6A, 0x8E, 0xEA, 0x01, 0x5A, 0x58, 0x67, -0x6C, 0xEA, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xEC, -0x01, 0x74, 0x0C, 0x61, 0x30, 0xF0, 0x20, 0x6B, -0x02, 0xF3, 0x60, 0x9B, 0x10, 0x6C, 0x75, 0xE5, -0x60, 0xA5, 0x4C, 0xEB, 0x8D, 0xEB, 0x4C, 0xEB, -0x60, 0xC5, 0x20, 0xE8, 0x09, 0x2C, 0x30, 0xF0, -0x20, 0x6A, 0x02, 0xF3, 0x40, 0x9A, 0x55, 0xE5, -0x60, 0xA5, 0xEF, 0x6A, 0x6C, 0xEA, 0x40, 0xC5, -0x20, 0xE8, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0xFF, 0x6A, 0x02, 0xF3, 0x64, 0x9B, 0x4C, 0xEE, -0x4C, 0xEF, 0x05, 0xD6, 0x04, 0xD7, 0x60, 0xA3, -0xFF, 0xF7, 0x1F, 0x68, 0x25, 0x67, 0x4C, 0xEB, -0x72, 0x33, 0x4C, 0xEB, 0x8C, 0xE8, 0x4C, 0xE9, -0x3C, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF3, -0x68, 0x9B, 0x00, 0x6C, 0xFF, 0x6D, 0x60, 0xA3, -0x26, 0x6E, 0x6C, 0xEA, 0x06, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, -0x40, 0xEA, 0x01, 0x72, 0x1D, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x05, 0x96, 0xA0, 0xF2, 0x54, 0x9A, -0x04, 0x6F, 0x90, 0x67, 0x01, 0x6D, 0x40, 0xEA, -0x02, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x96, -0x40, 0xF4, 0x58, 0x9A, 0xB0, 0x67, 0x91, 0x67, -0x40, 0xEA, 0x91, 0x67, 0x00, 0x18, 0x2D, 0xC5, -0xA2, 0x67, 0x90, 0x67, 0x00, 0x18, 0x52, 0xD9, -0x04, 0x95, 0x90, 0x67, 0x00, 0x18, 0x61, 0xD9, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, -0x06, 0x95, 0x00, 0x6C, 0x27, 0x6E, 0x40, 0xEA, -0x1D, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x05, 0x96, -0xA0, 0xF2, 0x54, 0x9A, 0x04, 0x6F, 0x90, 0x67, -0x01, 0x6D, 0x40, 0xEA, 0x02, 0x67, 0x30, 0xF0, -0x20, 0x6A, 0x04, 0x96, 0x40, 0xF4, 0x58, 0x9A, -0xB0, 0x67, 0x91, 0x67, 0x40, 0xEA, 0x91, 0x67, -0x00, 0x18, 0x2D, 0xC5, 0xA2, 0x67, 0x90, 0x67, -0x00, 0x18, 0x52, 0xD9, 0x04, 0x95, 0x90, 0x67, -0x00, 0x18, 0x61, 0xD9, 0x30, 0xF0, 0x20, 0x6A, -0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0xF7, 0x1F, 0x6A, 0x0E, 0x90, 0x24, 0x67, -0x4C, 0xE9, 0x03, 0x6B, 0x4C, 0xEF, 0x2C, 0xEB, -0x00, 0x6A, 0x0B, 0xD5, 0x0C, 0xD6, 0x04, 0xD7, -0x40, 0xC8, 0x00, 0x6A, 0x0A, 0x23, 0x28, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, -0x0A, 0x6C, 0x40, 0xEA, 0x40, 0xA8, 0x01, 0x4A, -0x40, 0xC8, 0x1F, 0xF7, 0x00, 0x6A, 0x2C, 0xEA, -0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0x58, 0x9A, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, -0x5C, 0x9A, 0x49, 0xE1, 0x0B, 0x93, 0x40, 0x9A, -0x6C, 0xEA, 0x0C, 0x93, 0x6E, 0xEA, 0x04, 0x22, -0x40, 0xA8, 0x04, 0x93, 0x63, 0xEA, 0xDC, 0x61, -0x40, 0xA8, 0x04, 0x93, 0x63, 0xEA, 0x58, 0x67, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0xA0, 0x35, -0x4C, 0xEC, 0xA0, 0x35, 0xCC, 0xEA, 0x4D, 0xED, -0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, -0x40, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x42, 0xF3, 0x44, 0x9A, 0x30, 0xF0, 0x20, 0x6B, -0x42, 0xF3, 0x88, 0x9B, 0x30, 0xF0, 0x20, 0x6B, -0x42, 0xF3, 0x6C, 0x9B, 0xAD, 0xEA, 0x40, 0xDC, -0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, -0x50, 0x9A, 0x60, 0xDC, 0x00, 0x6B, 0x60, 0xC2, -0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0xFF, 0xF7, -0x1F, 0x6B, 0x8C, 0xEA, 0xAC, 0xEB, 0x05, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, 0x54, 0x9A, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, -0x58, 0x9A, 0x60, 0x33, 0x60, 0x33, 0x4D, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, 0x48, 0x9A, -0x00, 0x6C, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, -0x42, 0xF3, 0x5C, 0x9A, 0x30, 0xF0, 0x20, 0x6B, -0x42, 0xF3, 0x70, 0x9B, 0x40, 0xA2, 0x80, 0xC3, -0xFF, 0x6B, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6B, 0x62, 0xF3, 0x60, 0x9B, 0xFF, 0x6A, -0xCC, 0xEA, 0x6D, 0xEA, 0xE0, 0xF1, 0x1F, 0x6B, -0xAC, 0xEB, 0x60, 0x33, 0x60, 0x33, 0x6D, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, 0x08, 0x9B, -0x01, 0x6C, 0x40, 0xD8, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x4C, 0x9A, 0x40, 0xEA, 0x00, 0x6A, -0x40, 0xD8, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xE0, 0xF1, 0x1F, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0xAC, 0xEA, 0x62, 0xF3, -0x64, 0x9B, 0x40, 0x32, 0x40, 0x32, 0x6D, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, 0x08, 0x4B, -0x60, 0x9B, 0x30, 0xF0, 0x20, 0x68, 0x01, 0x6C, -0x40, 0xDB, 0x80, 0xF3, 0x4C, 0x98, 0xFF, 0x69, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, -0x5C, 0x9A, 0x01, 0x6C, 0x40, 0xA2, 0x4C, 0xE9, -0x80, 0xF3, 0x4C, 0x98, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6C, 0x42, 0xF3, 0x08, 0x4C, 0x80, 0x9C, -0x00, 0x6A, 0x40, 0xDC, 0x07, 0x97, 0x51, 0x67, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, 0xC8, 0x9B, -0xFF, 0x6A, 0x04, 0x6D, 0x60, 0xA6, 0x4C, 0xEC, -0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC6, -0x11, 0x24, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, -0x8C, 0x9B, 0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, -0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xC4, -0x63, 0xF5, 0x08, 0x4A, 0x00, 0x6B, 0xC2, 0xF5, -0x65, 0xC2, 0x0D, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x62, 0xF3, 0x6C, 0x9A, 0xFB, 0x6A, 0x80, 0xA3, -0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0x26, 0xF3, 0x6D, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x62, 0xF3, 0x68, 0x9A, 0xFB, 0x6A, -0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x0E, 0x92, 0x0F, 0x91, 0x04, 0x67, 0x04, 0xD2, -0x04, 0x93, 0xFF, 0x6A, 0x4C, 0xE8, 0x4C, 0xEB, -0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, -0x5C, 0x9A, 0x0B, 0xD5, 0x0C, 0xD6, 0x0D, 0xD7, -0x04, 0xD3, 0x90, 0x67, 0x40, 0xEA, 0x80, 0xF0, -0x07, 0x22, 0x06, 0x58, 0x80, 0xF0, 0x04, 0x60, -0x30, 0xF0, 0x20, 0x6A, 0x08, 0x30, 0x42, 0xF1, -0x00, 0x4A, 0x09, 0xE2, 0x40, 0x9A, 0x00, 0xEA, -0x02, 0xF2, 0x10, 0x6A, 0x0E, 0x10, 0x02, 0xF2, -0x00, 0x6A, 0x0B, 0x10, 0x22, 0xF2, 0x00, 0x6A, -0x08, 0x10, 0x22, 0xF2, 0x10, 0x6A, 0x05, 0x10, -0x42, 0xF2, 0x00, 0x6A, 0x02, 0x10, 0x42, 0xF2, -0x10, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x0D, 0x94, -0x62, 0xF3, 0x70, 0x9B, 0x8C, 0xEB, 0x30, 0xF0, -0x20, 0x6C, 0x62, 0xF3, 0x94, 0x9C, 0x8D, 0xEB, -0x06, 0x21, 0x30, 0xF0, 0x20, 0x6C, 0x62, 0xF3, -0x98, 0x9C, 0x6D, 0xEC, 0x05, 0x10, 0x30, 0xF0, -0x20, 0x6C, 0x62, 0xF3, 0x9C, 0x9C, 0x6C, 0xEC, -0x04, 0x96, 0x06, 0x26, 0x30, 0xF0, 0x20, 0x6B, -0x62, 0xF3, 0x64, 0x9B, 0x8D, 0xEB, 0x05, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF3, 0x60, 0x9B, -0x8C, 0xEB, 0x1F, 0xF7, 0x00, 0x6C, 0x4C, 0xEC, -0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, -0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF2, 0xB8, 0x9C, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF2, -0xBC, 0x9C, 0x30, 0xF0, 0x20, 0x6C, 0x0B, 0x96, -0x82, 0xF3, 0x84, 0x9C, 0xB5, 0xE2, 0xCC, 0xEC, -0x80, 0xDD, 0x84, 0x42, 0x1F, 0xF7, 0x00, 0x6D, -0xAC, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, -0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF3, -0xA8, 0x9C, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, -0x82, 0xF3, 0xAC, 0x9C, 0x30, 0xF0, 0x20, 0x6C, -0x0C, 0x96, 0x82, 0xF3, 0x84, 0x9C, 0xB5, 0xE2, -0xCC, 0xEC, 0x80, 0xDD, 0x87, 0x42, 0x01, 0x4C, -0x1F, 0xF7, 0x00, 0x6D, 0xAC, 0xEC, 0x02, 0xF0, -0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, -0x20, 0x6C, 0x82, 0xF3, 0x90, 0x9C, 0x04, 0x10, -0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF3, 0x94, 0x9C, -0x89, 0xE2, 0x60, 0xDA, 0x01, 0x6A, 0x01, 0x10, -0x00, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x01, 0x68, 0x04, 0xEC, -0x82, 0xF3, 0x08, 0x69, 0x1C, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, -0xFF, 0x49, 0x40, 0xEA, 0x14, 0x29, 0x30, 0xF0, -0x20, 0x6A, 0x22, 0xF3, 0x64, 0x9A, 0x08, 0xF0, -0x00, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0x23, 0xF3, 0x70, 0x9A, 0x8D, 0xEB, 0x23, 0xF3, -0x70, 0xDA, 0x00, 0x6A, 0x0B, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x82, 0xF3, 0x58, 0x9A, 0x60, 0xAA, -0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, 0x0C, 0xEA, -0xDA, 0x2A, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x04, 0xF7, -0x10, 0x68, 0x1C, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x4C, 0x9A, 0x05, 0x6C, 0xFF, 0x48, -0x40, 0xEA, 0x14, 0x28, 0x30, 0xF0, 0x20, 0x6A, -0x22, 0xF3, 0x64, 0x9A, 0x08, 0xF0, 0x00, 0x6C, -0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, 0x23, 0xF3, -0x70, 0x9A, 0x8D, 0xEB, 0x23, 0xF3, 0x70, 0xDA, -0x00, 0x6A, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x82, 0xF3, 0x58, 0x9A, 0x60, 0xAA, 0x3F, 0x6A, -0x6C, 0xEA, 0xDC, 0x2A, 0x01, 0x6A, 0x05, 0x97, -0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF3, 0x58, 0x9A, -0x40, 0xAA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x82, 0xF3, 0x58, 0x9A, 0x40, 0xAA, 0x20, 0xE8, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF2, 0x24, 0x9A, -0x10, 0xF0, 0x23, 0x68, 0x43, 0xF2, 0x09, 0x48, -0x00, 0xD9, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0x01, 0xF0, 0x54, 0x9A, 0x03, 0xF5, -0x94, 0x9B, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, -0x01, 0x4A, 0x03, 0x22, 0x01, 0x48, 0x00, 0xD9, -0xE7, 0x17, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0xC2, 0xF2, 0x24, 0x9A, 0x10, 0xF0, 0x23, 0x68, -0x83, 0xF2, 0x0D, 0x48, 0x00, 0xD9, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x01, 0xF0, -0x54, 0x9A, 0x03, 0xF5, 0x90, 0x9B, 0x01, 0x6D, -0xAB, 0xED, 0x40, 0xEA, 0x01, 0x4A, 0x03, 0x22, -0x01, 0x48, 0x00, 0xD9, 0xE7, 0x17, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, 0x64, 0x9B, -0x10, 0xF0, 0x23, 0x6A, 0xC3, 0xF2, 0x11, 0x4A, -0x40, 0xDB, 0x01, 0x4A, 0x40, 0xDB, 0x20, 0xE8, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x00, 0x69, 0x00, 0x68, 0x00, 0x6C, 0x00, 0x18, -0xB4, 0xC6, 0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, -0x0A, 0x70, 0xF8, 0x61, 0x01, 0x6B, 0x6E, 0xE9, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, 0x64, 0x9B, -0x4C, 0xE9, 0x10, 0xF0, 0x23, 0x6A, 0xE3, 0xF2, -0x09, 0x4A, 0x29, 0xE2, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, -0x9C, 0x9B, 0x01, 0xF0, 0x48, 0x98, 0x01, 0x6D, -0xAB, 0xED, 0x40, 0xEA, 0x80, 0x18, 0x4F, 0x00, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF5, 0x9C, 0x9B, 0xC3, 0xF4, 0x40, 0x9A, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, -0x9C, 0x9B, 0x01, 0xF0, 0x48, 0x98, 0x01, 0x6D, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0xA0, 0xF0, 0x84, 0x9A, -0x10, 0xF0, 0x00, 0x6B, 0x8C, 0xEB, 0x08, 0x23, -0x10, 0xF0, 0x01, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, -0xA0, 0xF0, 0x64, 0xDA, 0x00, 0x18, 0xC9, 0xD2, -0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF5, 0x9C, 0x98, 0xC3, 0xF4, 0x40, 0x9A, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, -0x9C, 0x98, 0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0xA0, 0xF0, 0x84, 0x9A, -0x02, 0x6B, 0x8C, 0xEB, 0x09, 0x23, 0x03, 0x6B, -0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, -0x80, 0x18, 0xFC, 0x11, 0x80, 0x18, 0x4D, 0x12, -0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF5, 0x9C, 0x98, 0xC3, 0xF4, 0x40, 0x9A, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, -0x9C, 0x98, 0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0xA0, 0xF0, 0x84, 0x9A, -0x04, 0x6B, 0x8C, 0xEB, 0x09, 0x23, 0x05, 0x6B, -0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, -0x00, 0x18, 0x17, 0xCD, 0x00, 0x18, 0x9F, 0xCD, -0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF5, 0x9C, 0x98, 0xC3, 0xF4, 0x40, 0x9A, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, -0x9C, 0x98, 0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0xA0, 0xF0, 0x84, 0x9A, -0x02, 0xF0, 0x00, 0x6B, 0x8C, 0xEB, 0x08, 0x23, -0x02, 0xF0, 0x01, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, -0xA0, 0xF0, 0x64, 0xDA, 0x00, 0x18, 0xC5, 0xD1, -0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF5, 0x9C, 0x98, 0xC3, 0xF4, 0x40, 0x9A, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, -0x9C, 0x98, 0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xA2, 0xF3, 0x6C, 0x9B, 0xA0, 0xF0, 0x84, 0x9A, -0x8C, 0xEB, 0x09, 0x23, 0x30, 0xF0, 0x20, 0x6B, -0xA2, 0xF3, 0x70, 0x9B, 0x8C, 0xEB, 0xA0, 0xF0, -0x64, 0xDA, 0x80, 0x18, 0xD1, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, -0x9C, 0x9B, 0xC3, 0xF4, 0x40, 0x9A, 0x40, 0xEA, -0x1C, 0x17, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0xC2, 0xF2, 0x04, 0x4A, 0x40, 0x9A, 0x10, 0xF0, -0x23, 0x68, 0xA3, 0xF4, 0x1D, 0x48, 0x00, 0xDA, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0x01, 0x69, 0x01, 0xF0, 0x54, 0x9A, 0x03, 0xF5, -0x98, 0x9B, 0x2B, 0xE9, 0xB1, 0x67, 0x40, 0xEA, -0x01, 0x4A, 0x0A, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xE0, 0xF6, 0x5C, 0x9A, 0x40, 0xEA, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0x00, 0x1C, 0xAC, 0x39, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, 0x9C, 0x9B, -0x01, 0xF0, 0x48, 0x9A, 0xB1, 0x67, 0x01, 0x48, -0x40, 0xEA, 0x00, 0x18, 0xD9, 0xC7, 0x00, 0x18, -0xD5, 0xC7, 0x00, 0x18, 0xD1, 0xC7, 0x00, 0x18, -0xCD, 0xC7, 0x00, 0x18, 0xC9, 0xC7, 0x00, 0x18, -0xC5, 0xC7, 0xFC, 0x6C, 0x00, 0x18, 0xFB, 0xC2, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF5, 0x9C, 0x9B, 0xC3, 0xF4, 0x40, 0x9A, -0x40, 0xEA, 0x00, 0x1C, 0xAB, 0x39, 0x30, 0xF0, -0x20, 0x6A, 0xC2, 0xF2, 0x04, 0x4A, 0x40, 0x9A, -0x00, 0xDA, 0xB0, 0x17, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x44, 0x9A, -0x01, 0x72, 0x0C, 0x61, 0xFC, 0x6C, 0x00, 0x18, -0x00, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0x03, 0xF5, -0x98, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x44, 0x9A, -0x01, 0x72, 0x0C, 0x61, 0xFC, 0x6C, 0x00, 0x18, -0x00, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0x03, 0xF5, -0x98, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x44, 0x9A, -0x01, 0x72, 0x0C, 0x61, 0xFC, 0x6C, 0x00, 0x18, -0x00, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0x03, 0xF5, -0x98, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x44, 0x9A, -0x01, 0x72, 0x0E, 0x61, 0xFC, 0x6C, 0x00, 0x18, -0x00, 0xC3, 0x00, 0x18, 0xDB, 0xCE, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, -0x58, 0x9A, 0x03, 0xF5, 0x98, 0x9B, 0x40, 0xEA, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x44, 0x9A, 0x01, 0x72, 0x10, 0x61, -0xFC, 0x6C, 0x00, 0x18, 0x00, 0xC3, 0x00, 0x18, -0x1D, 0xD2, 0x00, 0x18, 0xAB, 0xCE, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, -0x58, 0x9A, 0x03, 0xF5, 0x98, 0x9B, 0x40, 0xEA, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF2, 0x44, 0x9A, 0x01, 0x72, -0x1D, 0x61, 0x30, 0xF0, 0x20, 0x68, 0xFC, 0x6C, -0x63, 0xF5, 0x08, 0x48, 0x00, 0x18, 0x00, 0xC3, -0x00, 0x18, 0xB2, 0xCE, 0x48, 0x98, 0x20, 0x6B, -0x6C, 0xEA, 0x07, 0x22, 0x00, 0x18, 0x64, 0xCF, -0x48, 0x98, 0x21, 0x6B, 0x6B, 0xEB, 0x6C, 0xEA, -0x48, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0x03, 0xF5, -0x98, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, -0xA2, 0xF3, 0x54, 0x9A, 0xE1, 0xF7, 0x1F, 0x6B, -0x40, 0xAA, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF3, 0x58, 0x9A, -0x60, 0x9A, 0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0xA2, 0xF3, 0x5C, 0x9A, 0x01, 0x6B, 0x40, 0x9A, -0x42, 0x32, 0x52, 0x32, 0x6E, 0xEA, 0x6C, 0xEA, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF3, 0x60, 0x9B, 0x44, 0x67, 0x30, 0xF0, -0x20, 0x6C, 0x60, 0x9B, 0x62, 0xF3, 0x90, 0x9C, -0x8C, 0xEB, 0x43, 0xEB, 0x02, 0x60, 0x6F, 0xEB, -0x69, 0xE2, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0x28, 0xD4, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0x22, 0xD4, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0x74, 0xD4, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0xED, 0xD4, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0x01, 0xD5, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0x1C, 0xD4, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x03, 0x6F, 0x8C, 0xEF, -0x64, 0x67, 0x46, 0x67, 0x04, 0x27, 0x0B, 0x10, -0xA0, 0xDB, 0xFC, 0x4A, 0x04, 0x4B, 0x04, 0x5A, -0xFB, 0x60, 0x03, 0x6A, 0x4C, 0xEE, 0x03, 0x10, -0xA0, 0xC4, 0xFF, 0x4E, 0x01, 0x4C, 0xFC, 0x2E, -0x00, 0x6A, 0x20, 0xE8, 0xFF, 0x6A, 0xAC, 0xEA, -0x03, 0x10, 0x40, 0xC4, 0xFF, 0x4E, 0x01, 0x4C, -0xFC, 0x2E, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, -0xFF, 0x63, 0x01, 0xD0, 0x03, 0x6B, 0x05, 0x67, -0x6C, 0xE8, 0x44, 0x67, 0xE4, 0x67, 0x85, 0x67, -0x12, 0x28, 0x4C, 0xEB, 0x10, 0x2B, 0x86, 0x67, -0x06, 0x10, 0x61, 0xE5, 0x00, 0x98, 0x7D, 0xE2, -0xFC, 0x4C, 0x00, 0xDF, 0x04, 0x4B, 0x04, 0x5C, -0xF8, 0x60, 0xCA, 0x34, 0x88, 0x34, 0x03, 0x6B, -0x9D, 0xE2, 0x6C, 0xEE, 0x91, 0xE5, 0x00, 0x6B, -0x06, 0x10, 0x61, 0xE4, 0x00, 0xA0, 0x75, 0xE7, -0xFF, 0x4E, 0x00, 0xC5, 0x01, 0x4B, 0xF9, 0x2E, -0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, 0x00, 0x65, -0x09, 0x10, 0x60, 0xA4, 0x40, 0xA5, 0xFF, 0x4E, -0x4A, 0xEB, 0x02, 0x60, 0x4B, 0xE3, 0x20, 0xE8, -0x01, 0x4C, 0x01, 0x4D, 0xF6, 0x2E, 0x00, 0x6A, -0x20, 0xE8, 0x00, 0x65, 0x80, 0x63, 0xFF, 0x62, -0xFE, 0xD1, 0xFD, 0xD0, 0xF9, 0x63, 0x20, 0xF4, -0x18, 0xD4, 0x00, 0x6D, 0x85, 0x04, 0x00, 0xF2, -0x00, 0x6E, 0x00, 0x18, 0xE7, 0xC7, 0x00, 0x6C, -0x0F, 0x10, 0x01, 0x6D, 0xAB, 0xED, 0xA0, 0xCB, -0x01, 0x4A, 0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEA, -0x04, 0x72, 0x02, 0x4B, 0xF6, 0x61, 0xFF, 0x6B, -0x04, 0x4C, 0x01, 0x4B, 0x8E, 0xEB, 0x05, 0x23, -0x84, 0x32, 0x85, 0x03, 0x4D, 0xE3, 0x00, 0x6A, -0xEC, 0x17, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x48, 0x9A, 0x9D, 0x67, 0x72, 0xC4, 0x71, 0xC4, -0x70, 0xC4, 0x04, 0x05, 0x00, 0x6C, 0x40, 0xEA, -0x7D, 0x67, 0x50, 0xA3, 0x01, 0x68, 0xFF, 0x72, -0x00, 0x6A, 0x80, 0xF0, 0x1D, 0x61, 0xCF, 0x10, -0x1F, 0x6A, 0x2C, 0xEA, 0x0F, 0x72, 0x2C, 0x61, -0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF3, 0x48, 0x9C, -0x00, 0xF0, 0x11, 0x05, 0x90, 0x67, 0x40, 0xEA, -0x5D, 0x67, 0x91, 0xA2, 0xFF, 0x74, 0x0F, 0x60, -0x0F, 0x6B, 0x8C, 0xEB, 0x01, 0x48, 0xFF, 0xF7, -0x1F, 0x6A, 0x0F, 0x73, 0x4C, 0xE8, 0x10, 0x61, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x48, 0x9B, -0x90, 0x67, 0x04, 0x05, 0x40, 0xEA, 0x00, 0x6D, -0x05, 0x04, 0x00, 0xF2, 0x00, 0x6E, 0x00, 0x18, -0xE7, 0xC7, 0x01, 0x6D, 0x00, 0x6B, 0x92, 0x10, -0xF0, 0x6A, 0x8C, 0xEA, 0x47, 0x32, 0x36, 0x31, -0x2D, 0xEA, 0x00, 0xF4, 0x18, 0xD3, 0x05, 0x10, -0x0F, 0x6C, 0x2C, 0xEC, 0x32, 0x32, 0x00, 0xF4, -0x18, 0xD4, 0x40, 0x5A, 0x00, 0x6B, 0x49, 0x60, -0x4C, 0x32, 0x85, 0x01, 0x45, 0xE1, 0x20, 0xF4, -0x00, 0xD1, 0x00, 0xF4, 0x1C, 0xD3, 0x00, 0xF4, -0x1C, 0x93, 0x00, 0xF4, 0x18, 0x92, 0x47, 0xEB, -0x01, 0x6B, 0x6C, 0xEA, 0x2C, 0x2A, 0x90, 0x67, -0x30, 0xF0, 0x20, 0x6B, 0xFF, 0xF7, 0x1F, 0x6A, -0x01, 0x48, 0x4C, 0xE8, 0xC0, 0xF3, 0x48, 0x9B, -0x00, 0xF0, 0x12, 0x05, 0x40, 0xEA, 0x9D, 0x67, -0x52, 0xA4, 0x20, 0xF4, 0x00, 0x93, 0x00, 0xF2, -0x00, 0x58, 0x40, 0xCB, 0x36, 0x60, 0x90, 0x67, -0x30, 0xF0, 0x20, 0x6B, 0xFF, 0xF7, 0x1F, 0x6A, -0x01, 0x48, 0x4C, 0xE8, 0xC0, 0xF3, 0x48, 0x9B, -0x00, 0xF0, 0x12, 0x05, 0x40, 0xEA, 0x9D, 0x67, -0x52, 0xA4, 0x60, 0xA9, 0x00, 0xF2, 0x00, 0x70, -0x40, 0x32, 0x6D, 0xEA, 0x40, 0xC9, 0x03, 0x61, -0x00, 0xF2, 0x00, 0x68, 0x1E, 0x10, 0x00, 0xF4, -0x1C, 0x92, 0x20, 0xF4, 0x00, 0x93, 0x02, 0x49, -0x01, 0x4A, 0x02, 0x4B, 0x04, 0x72, 0x00, 0xF4, -0x1C, 0xD2, 0x20, 0xF4, 0x00, 0xD3, 0xBF, 0x61, -0x10, 0x10, 0x00, 0xF4, 0x18, 0x92, 0x01, 0x6C, -0x47, 0xEB, 0x8C, 0xEA, 0x07, 0x2A, 0x02, 0x48, -0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0x00, 0xF2, -0x00, 0x58, 0x03, 0x60, 0x01, 0x4B, 0x04, 0x73, -0xF0, 0x61, 0xFF, 0xF7, 0x1F, 0x6A, 0x90, 0x67, -0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x48, 0x9A, 0x04, 0x05, 0x40, 0xEA, -0x9D, 0x67, 0x30, 0xA4, 0xFF, 0x71, 0x7F, 0xF7, -0x1E, 0x60, 0x00, 0xF2, 0x00, 0x58, 0x5F, 0xF7, -0x1B, 0x61, 0x79, 0x17, 0x20, 0xAC, 0x01, 0x4A, -0x02, 0x4C, 0x20, 0xC0, 0x20, 0xAF, 0x02, 0x48, -0x02, 0x4F, 0x22, 0x31, 0x20, 0xC6, 0xFF, 0xF7, -0x1F, 0x69, 0x2C, 0xEA, 0x04, 0x72, 0x02, 0x4E, -0xF1, 0x61, 0x04, 0x4B, 0x00, 0xF1, 0x00, 0x73, -0x08, 0x4D, 0x09, 0x60, 0x64, 0x30, 0x85, 0x04, -0x11, 0xE4, 0x05, 0x06, 0x01, 0xE6, 0xE4, 0x67, -0xB9, 0xE6, 0x00, 0x6A, 0xE3, 0x17, 0x7D, 0x67, -0xA0, 0xF1, 0x45, 0xA3, 0x20, 0xF4, 0x18, 0x94, -0x01, 0x6B, 0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, -0xCA, 0xF4, 0x64, 0xC2, 0x01, 0x6A, 0x07, 0x63, -0xFF, 0x97, 0xFE, 0x91, 0xFD, 0x90, 0x00, 0xF4, -0x00, 0x63, 0x00, 0xEF, 0x1F, 0x75, 0x0D, 0x60, -0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, 0x64, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0x62, 0xF3, 0x94, 0x9C, -0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x00, 0x6A, -0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF3, -0x44, 0x9A, 0x60, 0x9C, 0x4E, 0xEB, 0x01, 0x6A, -0x0C, 0x23, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, -0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF3, -0x94, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, -0x00, 0x6A, 0x20, 0xE8, 0x6D, 0xA4, 0x0F, 0x6A, -0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0x22, 0xF3, 0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0x62, 0xF3, 0x84, 0x9C, 0x40, 0x9B, 0x2F, 0x10, -0x4E, 0xA4, 0x1F, 0x6B, 0x6C, 0xEA, 0x1F, 0x4A, -0x6C, 0xEA, 0x10, 0x5A, 0x0A, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x22, 0xF3, 0x64, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0xA2, 0xF3, 0x8C, 0x9C, 0x40, 0x9B, -0x1E, 0x10, 0x4C, 0xA4, 0x0C, 0x22, 0x80, 0x72, -0x0A, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, -0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF3, -0x88, 0x9C, 0x40, 0x9B, 0x10, 0x10, 0x6D, 0xA4, -0x10, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6D, -0xAC, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0x22, 0xF3, 0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0x62, 0xF3, 0x98, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, -0x40, 0xDB, 0x00, 0x6A, 0x20, 0xE8, 0x4E, 0xA4, -0x20, 0x6B, 0x6B, 0xEB, 0x4C, 0xEB, 0xAC, 0xEB, -0x01, 0x6A, 0x0C, 0x23, 0x30, 0xF0, 0x20, 0x6A, -0x22, 0xF3, 0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0x22, 0xF3, 0x88, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, -0x40, 0xDB, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4B, -0x26, 0xF7, 0x4F, 0xA3, 0x04, 0x2A, 0x01, 0x6C, -0x26, 0xF7, 0x8F, 0xC3, 0x20, 0xE8, 0x8F, 0x42, -0x26, 0xF7, 0x8F, 0xC3, 0x20, 0xE8, 0x00, 0x65, -0xA2, 0xDC, 0x20, 0xE8, 0xAC, 0xC4, 0x20, 0xE8, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFF, 0x68, 0xAC, 0xE8, 0x00, 0x30, 0x30, 0xF0, -0x20, 0x6A, 0x8A, 0xF0, 0x10, 0x4A, 0x04, 0x30, -0x01, 0xE2, 0x24, 0x67, 0x00, 0x6D, 0x90, 0x67, -0x00, 0xF2, 0x00, 0x6E, 0x00, 0x18, 0xE7, 0xC7, -0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF3, 0x4C, 0x9A, -0x40, 0xD8, 0x41, 0x99, 0x41, 0xD8, 0x07, 0x97, -0x50, 0x67, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xDB, 0x63, 0x49, 0x62, -0x48, 0xD1, 0x47, 0xD0, 0xFF, 0x6E, 0x04, 0x67, -0x25, 0x67, 0x04, 0x04, 0x00, 0x6D, 0x01, 0x4E, -0x00, 0x18, 0xE7, 0xC7, 0x6E, 0x10, 0x00, 0x6A, -0x08, 0x58, 0x44, 0xD2, 0x0A, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xE0, 0xF3, 0x54, 0x9A, 0x91, 0x67, -0xF8, 0x48, 0x40, 0xEA, 0x02, 0xF0, 0x00, 0x49, -0x60, 0x10, 0xFF, 0x6E, 0x04, 0x04, 0x00, 0x6D, -0x01, 0x4E, 0x00, 0x18, 0xE7, 0xC7, 0x44, 0x93, -0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, 0x5C, 0x9A, -0xFF, 0x6D, 0x31, 0xE3, 0x01, 0x4D, 0x04, 0x06, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x44, 0x94, -0xC2, 0xF3, 0x70, 0x9B, 0x04, 0x02, 0x6D, 0xE4, -0x44, 0x04, 0xA0, 0xA2, 0x01, 0x4A, 0x8A, 0xEA, -0xA0, 0xC3, 0x01, 0x4B, 0xFA, 0x61, 0x44, 0x92, -0x00, 0xF1, 0x00, 0x4A, 0x02, 0xF0, 0x00, 0x72, -0x44, 0xD2, 0xDB, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xE0, 0xF3, 0x54, 0x9A, 0x91, 0x67, 0x00, 0x30, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, -0x40, 0x9A, 0x04, 0x30, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x5C, 0x9A, 0x02, 0x6C, -0x40, 0xEA, 0x2D, 0xE0, 0x44, 0xD3, 0xFF, 0x6E, -0x04, 0x04, 0x00, 0x6D, 0x01, 0x4E, 0x00, 0x18, -0xE7, 0xC7, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF3, -0x70, 0x9A, 0x44, 0x04, 0x04, 0x02, 0x6D, 0xE0, -0xA0, 0xA3, 0x01, 0x4B, 0xA0, 0xC2, 0x01, 0x4A, -0x8A, 0xEA, 0xFA, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x44, 0x94, 0xE0, 0xF3, 0x58, 0x9A, 0xFF, 0x6D, -0x01, 0x4D, 0x04, 0x06, 0x40, 0xEA, 0x44, 0x94, -0x00, 0xF1, 0x00, 0x48, 0x02, 0xF0, 0x00, 0x58, -0x00, 0xF1, 0x00, 0x4C, 0x44, 0xD4, 0xDB, 0x61, -0x00, 0x68, 0x91, 0x28, 0x49, 0x97, 0x48, 0x91, -0x47, 0x90, 0x25, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF1, 0x74, 0x9A, -0x82, 0xF1, 0x14, 0x4A, 0x41, 0x9A, 0x30, 0xF0, -0x20, 0x6D, 0x07, 0x04, 0x82, 0xF1, 0x04, 0x4D, -0x10, 0x6E, 0x05, 0xD3, 0x06, 0xD2, 0x00, 0x18, -0xEC, 0xC7, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF1, -0x40, 0x9A, 0x04, 0xD2, 0x00, 0x18, 0xCA, 0xC8, -0x40, 0x30, 0x22, 0x67, 0x30, 0xF0, 0x20, 0x6A, -0x8A, 0xF0, 0x10, 0x4A, 0x04, 0x30, 0x01, 0xE2, -0x90, 0x67, 0x00, 0x6D, 0x00, 0xF2, 0x00, 0x6E, -0x00, 0x18, 0xE7, 0xC7, 0x30, 0xF0, 0x20, 0x6A, -0xCA, 0xF4, 0x44, 0xA2, 0x08, 0x2A, 0x30, 0xF0, -0x20, 0x6C, 0xCA, 0xF4, 0x05, 0x4C, 0x00, 0x18, -0x07, 0xC8, 0x01, 0x72, 0x09, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xCA, 0xF4, 0x45, 0xA2, 0x02, 0x6B, -0x6C, 0xEA, 0x02, 0x22, 0x00, 0x6A, 0x01, 0x10, -0x05, 0x6A, 0x40, 0xC0, 0x80, 0x6A, 0x4B, 0xEA, -0x41, 0xC0, 0x01, 0x6A, 0x43, 0xC0, 0x87, 0x40, -0x1F, 0x6A, 0x05, 0x05, 0x44, 0xC0, 0x01, 0x4C, -0x08, 0x6E, 0x00, 0x18, 0xEC, 0xC7, 0x87, 0x40, -0x07, 0x05, 0x09, 0x4C, 0x10, 0x6E, 0x00, 0x18, -0xEC, 0xC7, 0x87, 0x40, 0x04, 0x05, 0x19, 0x4C, -0x04, 0x6E, 0x00, 0x18, 0xEC, 0xC7, 0x91, 0x67, -0x24, 0x6D, 0x00, 0x6E, 0x00, 0x18, 0x72, 0xD2, -0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, 0x01, 0x6A, -0x08, 0x63, 0x00, 0xEF, 0xD4, 0x63, 0x57, 0x62, -0x56, 0xD1, 0x55, 0xD0, 0x59, 0xD5, 0x30, 0xF0, -0x20, 0x6D, 0x42, 0xF1, 0x18, 0x4D, 0x28, 0x6E, -0x24, 0x67, 0x04, 0x04, 0x00, 0x18, 0xEC, 0xC7, -0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6E, 0x0E, 0x04, -0x00, 0x6D, 0x01, 0x4E, 0x63, 0xF5, 0x08, 0x48, -0x00, 0x18, 0xE7, 0xC7, 0x26, 0xF7, 0x50, 0xA0, -0x20, 0xF5, 0x0E, 0x2A, 0x59, 0x95, 0x91, 0x67, -0x00, 0x18, 0x8D, 0xC8, 0x00, 0xF5, 0x18, 0x22, -0x59, 0x95, 0x91, 0x67, 0x00, 0x18, 0x9F, 0xC8, -0x00, 0xF5, 0x12, 0x22, 0x4F, 0xA1, 0x2A, 0x72, -0x20, 0xF4, 0x11, 0x60, 0x2B, 0x5A, 0x25, 0x60, -0x1B, 0x72, 0x00, 0xF3, 0x1A, 0x60, 0x1C, 0x5A, -0x0F, 0x60, 0x03, 0x72, 0x68, 0x60, 0x04, 0x5A, -0x04, 0x60, 0x20, 0xF2, 0x0A, 0x22, 0xE0, 0xF4, -0x14, 0x10, 0x12, 0x72, 0x3F, 0x60, 0x1A, 0x72, -0x80, 0xF0, 0x1B, 0x60, 0xE0, 0xF4, 0x0D, 0x10, -0x23, 0x72, 0x78, 0x67, 0x4F, 0xD3, 0x40, 0xF1, -0x1C, 0x23, 0x24, 0x5A, 0x05, 0x60, 0x1E, 0x72, -0x40, 0xF1, 0x0C, 0x60, 0xE0, 0xF4, 0x01, 0x10, -0x25, 0x72, 0xA0, 0xF1, 0x0F, 0x60, 0x28, 0x72, -0x25, 0x10, 0x51, 0x72, 0x20, 0xF2, 0x14, 0x60, -0x52, 0x5A, 0x12, 0x60, 0x43, 0x72, 0x40, 0xF2, -0x03, 0x60, 0x44, 0x5A, 0x05, 0x60, 0x35, 0x72, -0xC0, 0xF4, 0x1A, 0x60, 0xC0, 0xF4, 0x0D, 0x10, -0x46, 0x72, 0x20, 0xF2, 0x19, 0x60, 0x4A, 0x72, -0x00, 0xF2, 0x0D, 0x60, 0xC0, 0xF4, 0x05, 0x10, -0x5A, 0x72, 0xA0, 0xF0, 0x16, 0x60, 0x5B, 0x5A, -0x05, 0x60, 0x52, 0x72, 0x20, 0xF2, 0x0C, 0x60, -0xA0, 0xF4, 0x1B, 0x10, 0xA4, 0x72, 0x80, 0xF4, -0x16, 0x60, 0xA8, 0x72, 0xE0, 0xF2, 0x09, 0x60, -0xA0, 0xF4, 0x13, 0x10, 0x82, 0x99, 0x4E, 0xD4, -0x00, 0x18, 0x26, 0xC9, 0x50, 0xD2, 0x00, 0x18, -0xCA, 0xC8, 0xA2, 0x67, 0x91, 0x67, 0x4F, 0xD2, -0x00, 0x18, 0xD4, 0xC8, 0x4E, 0x95, 0x02, 0x67, -0x25, 0x5D, 0x03, 0x61, 0x82, 0x67, 0xDC, 0x4D, -0x02, 0x10, 0x82, 0x67, 0x00, 0x6D, 0x00, 0x18, -0xD2, 0xC8, 0x50, 0x92, 0x01, 0x72, 0x40, 0xF2, -0x1B, 0x60, 0x90, 0x67, 0x01, 0x6D, 0x00, 0x18, -0xD3, 0xC8, 0x4F, 0x94, 0x38, 0x10, 0x00, 0x18, -0xCA, 0xC8, 0x4F, 0xD2, 0x40, 0x30, 0x30, 0xF0, -0x20, 0x6A, 0x62, 0x99, 0x8A, 0xF0, 0x10, 0x4A, -0x04, 0x30, 0x01, 0xE2, 0x90, 0x67, 0x00, 0x6D, -0x00, 0xF2, 0x00, 0x6E, 0x4E, 0xD3, 0x00, 0x18, -0xE7, 0xC7, 0x4E, 0x94, 0x08, 0x5C, 0x80, 0xF2, -0x06, 0x61, 0x70, 0x6A, 0x40, 0xC0, 0x44, 0x67, -0xF8, 0x4A, 0x47, 0xC0, 0x05, 0x6A, 0x42, 0xC0, -0x20, 0x6A, 0x4C, 0xC0, 0x4E, 0x92, 0x4F, 0x94, -0xFF, 0xF7, 0x1F, 0x6D, 0x4C, 0xED, 0x00, 0x6E, -0x00, 0x18, 0x72, 0xD2, 0x00, 0x18, 0xCA, 0xC8, -0xA2, 0x67, 0x91, 0x67, 0x4E, 0xD2, 0x00, 0x18, -0xD4, 0xC8, 0x02, 0x67, 0x90, 0x67, 0x00, 0x6D, -0x00, 0x18, 0xD2, 0xC8, 0x90, 0x67, 0x00, 0x6D, -0x00, 0x18, 0xD3, 0xC8, 0x4E, 0x94, 0x0D, 0x6D, -0x00, 0x6E, 0x00, 0x18, 0x72, 0xD2, 0xE0, 0xF4, -0x1C, 0x10, 0x00, 0x18, 0xCA, 0xC8, 0x4F, 0xD2, -0x40, 0x30, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0x99, -0x8A, 0xF0, 0x10, 0x4A, 0x04, 0x30, 0x01, 0xE2, -0x90, 0x67, 0x00, 0x6D, 0x00, 0xF2, 0x00, 0x6E, -0x4E, 0xD3, 0x00, 0x18, 0xE7, 0xC7, 0x4E, 0x94, -0x04, 0x5C, 0x40, 0xF2, 0x08, 0x61, 0x03, 0x6A, -0x40, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0xCA, 0xF4, -0x44, 0xA2, 0x08, 0x2A, 0x30, 0xF0, 0x20, 0x6C, -0xCA, 0xF4, 0x05, 0x4C, 0x00, 0x18, 0x07, 0xC8, -0x01, 0x72, 0x0C, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xCA, 0xF4, 0x65, 0xA2, 0x02, 0x6A, 0x6C, 0xEA, -0x05, 0x22, 0x04, 0x6A, 0x6C, 0xEA, 0x02, 0x22, -0x00, 0x6A, 0x02, 0x10, 0x80, 0x6A, 0x4B, 0xEA, -0x42, 0xC0, 0x4F, 0x94, 0x04, 0x6D, 0x00, 0x6E, -0x00, 0x18, 0x72, 0xD2, 0x00, 0x18, 0xCA, 0xC8, -0xA2, 0x67, 0x91, 0x67, 0x4F, 0xD2, 0x00, 0x18, -0xD4, 0xC8, 0x4E, 0x95, 0x02, 0x67, 0x04, 0x75, -0xC0, 0xF1, 0x0E, 0x60, 0x82, 0x67, 0xFC, 0x4D, -0xCD, 0x11, 0x00, 0x18, 0xCA, 0xC8, 0x50, 0xD2, -0x42, 0x99, 0x50, 0x94, 0x00, 0x6D, 0x4E, 0xD2, -0x80, 0x33, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0x33, -0x8A, 0xF0, 0x10, 0x4A, 0x69, 0xE2, 0x82, 0x67, -0x00, 0xF2, 0x00, 0x6E, 0x51, 0xD2, 0x00, 0x18, -0xE7, 0xC7, 0x76, 0xA1, 0x57, 0xA1, 0x60, 0x33, -0x49, 0xE3, 0x4F, 0xD2, 0x2D, 0x22, 0x46, 0xF7, -0x5C, 0xA0, 0x08, 0x2A, 0x30, 0xF0, 0x20, 0x6C, -0xCA, 0xF4, 0x05, 0x4C, 0x00, 0x18, 0x07, 0xC8, -0x01, 0x72, 0x16, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xCA, 0xF4, 0x65, 0xA2, 0x02, 0x6A, 0x6C, 0xEA, -0x0A, 0x22, 0x04, 0x6A, 0x6C, 0xEA, 0x02, 0x22, -0x00, 0x6A, 0x0C, 0x10, 0x80, 0x6A, 0x4B, 0xEA, -0x7D, 0x67, 0x53, 0xC3, 0x09, 0x10, 0x80, 0x6A, -0x4B, 0xEA, 0x9D, 0x67, 0x53, 0xC4, 0x04, 0x10, -0x80, 0x6A, 0x4B, 0xEA, 0xBD, 0x67, 0x53, 0xC5, -0x51, 0x94, 0x04, 0x05, 0x28, 0x6E, 0x00, 0x18, -0xEC, 0xC7, 0x4F, 0x92, 0x29, 0x5A, 0x02, 0x61, -0x50, 0x94, 0xCE, 0x11, 0x4E, 0x93, 0x4F, 0x94, -0x63, 0xEC, 0x06, 0x60, 0x4F, 0x92, 0xFF, 0xF7, -0x1F, 0x6D, 0x50, 0x94, 0x4C, 0xED, 0x05, 0x10, -0x4E, 0x93, 0x50, 0x94, 0xFF, 0xF7, 0x1F, 0x6D, -0x6C, 0xED, 0x00, 0x6E, 0x00, 0x18, 0x72, 0xD2, -0x00, 0x18, 0xCA, 0xC8, 0xA2, 0x67, 0x91, 0x67, -0x50, 0xD2, 0x00, 0x18, 0xD4, 0xC8, 0x4E, 0x94, -0x4F, 0x95, 0x02, 0x67, 0x83, 0xED, 0x04, 0x60, -0x82, 0x67, 0x4E, 0x92, 0xB7, 0xE2, 0x02, 0x10, -0x82, 0x67, 0x00, 0x6D, 0x00, 0x18, 0xD2, 0xC8, -0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, 0xD3, 0xC8, -0x50, 0x94, 0x3D, 0x17, 0x00, 0x18, 0xCA, 0xC8, -0xA2, 0x67, 0x91, 0x67, 0x4E, 0xD2, 0x00, 0x18, -0xD4, 0xC8, 0x02, 0x67, 0x82, 0x67, 0xA2, 0x99, -0x2B, 0x17, 0x00, 0x18, 0xCA, 0xC8, 0x50, 0xD2, -0x40, 0x33, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0x33, -0x8A, 0xF0, 0x10, 0x4A, 0x69, 0xE2, 0x82, 0x67, -0x00, 0x6D, 0x00, 0xF2, 0x00, 0x6E, 0x4E, 0xD2, -0x00, 0x18, 0xE7, 0xC7, 0x4E, 0x93, 0x08, 0x6A, -0x9D, 0x67, 0x43, 0xC3, 0x30, 0xF1, 0xAC, 0x44, -0x80, 0xA5, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF3, -0x58, 0x9A, 0x84, 0xC3, 0x26, 0xF1, 0x60, 0x98, -0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF3, 0x9C, 0x9C, -0x6D, 0xE2, 0x62, 0x33, 0x66, 0x33, 0x4E, 0x95, -0x8C, 0xEB, 0x62, 0x33, 0x62, 0x33, 0x65, 0xC5, -0x26, 0xF1, 0x60, 0x98, 0x1F, 0xF7, 0x00, 0x6C, -0x00, 0x6E, 0x6D, 0xE2, 0x62, 0x33, 0x66, 0x33, -0x8C, 0xEB, 0x62, 0x33, 0x66, 0xC5, 0x26, 0xF1, -0x60, 0x98, 0x69, 0xE2, 0x42, 0x32, 0x46, 0x32, -0x47, 0xC5, 0x7D, 0x67, 0x02, 0x6A, 0x48, 0xC5, -0x30, 0xF1, 0x8C, 0x43, 0x60, 0xA4, 0x9D, 0x67, -0x4A, 0xC5, 0x69, 0xC5, 0x30, 0xF1, 0xAC, 0x44, -0x80, 0xA5, 0x4E, 0x95, 0x8B, 0xC5, 0x50, 0x94, -0x0C, 0x6D, 0x00, 0x18, 0x72, 0xD2, 0x00, 0x18, -0xCA, 0xC8, 0xA2, 0x67, 0x91, 0x67, 0x4E, 0xD2, -0x00, 0x18, 0xD4, 0xC8, 0xA2, 0x99, 0x02, 0x67, -0x0D, 0x5D, 0xDF, 0xF6, 0x0F, 0x61, 0x82, 0x67, -0xF4, 0x4D, 0xCE, 0x16, 0x00, 0x18, 0xCA, 0xC8, -0x4E, 0xD2, 0x40, 0x30, 0x30, 0xF0, 0x20, 0x6A, -0x8A, 0xF0, 0x10, 0x4A, 0x04, 0x30, 0x01, 0xE2, -0x90, 0x67, 0x00, 0x6D, 0x00, 0xF2, 0x00, 0x6E, -0x00, 0x18, 0xE7, 0xC7, 0x56, 0xA1, 0x01, 0x6B, -0x6C, 0xEA, 0x4C, 0x2A, 0x51, 0xA1, 0x4A, 0x2A, -0x62, 0x99, 0x08, 0x5B, 0x47, 0x61, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4B, 0x30, 0xF0, -0x20, 0x6C, 0x26, 0xF1, 0xA0, 0x9B, 0xC2, 0xF3, -0x98, 0x9C, 0x30, 0xF0, 0x20, 0x6E, 0xC2, 0xF3, -0xDC, 0x9E, 0xB5, 0xE4, 0xA2, 0x35, 0xA6, 0x35, -0xFF, 0x4D, 0x00, 0xF6, 0xA2, 0x35, 0xA0, 0xC0, -0x26, 0xF1, 0xA0, 0x9B, 0xB5, 0xE4, 0xA2, 0x35, -0xA6, 0x35, 0xFF, 0x4D, 0xCC, 0xED, 0xA2, 0x35, -0xA2, 0x35, 0xA1, 0xC0, 0x26, 0xF1, 0xA0, 0x9B, -0x1F, 0xF7, 0x00, 0x6E, 0xB5, 0xE4, 0xA2, 0x35, -0xA6, 0x35, 0xFF, 0x4D, 0xCC, 0xED, 0xA2, 0x35, -0xA2, 0xC0, 0x26, 0xF1, 0x60, 0x9B, 0x44, 0xC0, -0x45, 0xC0, 0x71, 0xE4, 0x82, 0x34, 0x86, 0x34, -0x02, 0x6B, 0xFF, 0x4C, 0x66, 0xC0, 0x83, 0xC0, -0x47, 0xC0, 0x4E, 0x94, 0x08, 0x6D, 0x00, 0x6E, -0x00, 0x18, 0x72, 0xD2, 0x00, 0x18, 0xCA, 0xC8, -0xA2, 0x67, 0x91, 0x67, 0x4E, 0xD2, 0x00, 0x18, -0xD4, 0xC8, 0xA2, 0x99, 0x02, 0x67, 0x82, 0x67, -0xF8, 0x4D, 0x6E, 0x16, 0x00, 0x6C, 0xA4, 0x67, -0x23, 0x10, 0x02, 0x99, 0x13, 0x58, 0xC0, 0xF1, -0x0C, 0x60, 0x00, 0x18, 0xCA, 0xC8, 0xA2, 0x67, -0x91, 0x67, 0x4E, 0xD2, 0x00, 0x18, 0xD4, 0xC8, -0x22, 0x67, 0x82, 0x67, 0xB0, 0x67, 0x00, 0x18, -0xD2, 0xC8, 0x91, 0x67, 0x5C, 0x16, 0x00, 0x18, -0xCA, 0xC8, 0x02, 0x67, 0x40, 0x34, 0x30, 0xF0, -0x20, 0x6A, 0x8A, 0xF0, 0x10, 0x4A, 0x84, 0x34, -0x91, 0xE2, 0x00, 0x6D, 0x00, 0xF2, 0x00, 0x6E, -0x00, 0x18, 0xE7, 0xC7, 0x90, 0x67, 0x00, 0x6D, -0xC5, 0x67, 0x00, 0x18, 0x72, 0xD2, 0xA5, 0x12, -0xA2, 0x99, 0x4F, 0xD5, 0x00, 0x18, 0xCA, 0xC8, -0x00, 0x6D, 0xC5, 0x67, 0x82, 0x67, 0x00, 0x18, -0x72, 0xD2, 0x00, 0x18, 0xCA, 0xC8, 0xA2, 0x67, -0x91, 0x67, 0x4E, 0xD2, 0x00, 0x18, 0xD4, 0xC8, -0x02, 0x67, 0x82, 0x67, 0x4F, 0x95, 0xA6, 0x12, -0x00, 0x18, 0xCA, 0xC8, 0x4F, 0xD2, 0x42, 0x99, -0x4F, 0x93, 0x00, 0x6D, 0x4E, 0xD2, 0x60, 0x30, -0x30, 0xF0, 0x20, 0x6A, 0x8A, 0xF0, 0x10, 0x4A, -0x04, 0x30, 0x01, 0xE2, 0x90, 0x67, 0x00, 0xF2, -0x00, 0x6E, 0x00, 0x18, 0xE7, 0xC7, 0x6F, 0xA1, -0x43, 0x6A, 0x6E, 0xEA, 0x40, 0x2A, 0x12, 0x6B, -0x61, 0xC0, 0x01, 0x6B, 0x62, 0xC0, 0x63, 0xC0, -0x66, 0xC0, 0x56, 0x6B, 0x14, 0x6C, 0x6B, 0xEB, -0x85, 0xC0, 0x8D, 0xC0, 0x6E, 0xC0, 0x52, 0xC0, -0x53, 0xC0, 0x58, 0xA1, 0x40, 0x72, 0x03, 0x60, -0x51, 0xA1, 0x01, 0x72, 0x03, 0x61, 0x0A, 0x6A, -0x41, 0xC0, 0x05, 0x10, 0x50, 0xA1, 0x02, 0x72, -0x02, 0x61, 0x02, 0x6A, 0x4B, 0xC0, 0x4E, 0x94, -0x15, 0x5C, 0x03, 0x61, 0x4F, 0x94, 0x14, 0x6D, -0x05, 0x10, 0x4E, 0x92, 0x4F, 0x94, 0xFF, 0xF7, -0x1F, 0x6D, 0x4C, 0xED, 0x00, 0x6E, 0x00, 0x18, -0x72, 0xD2, 0x00, 0x18, 0xCA, 0xC8, 0xA2, 0x67, -0x91, 0x67, 0x4F, 0xD2, 0x00, 0x18, 0xD4, 0xC8, -0x4E, 0x93, 0x02, 0x67, 0x15, 0x5B, 0x04, 0x61, -0xA3, 0x67, 0x82, 0x67, 0xEC, 0x4D, 0x02, 0x10, -0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, 0xD2, 0xC8, -0x90, 0x67, 0x00, 0x6D, 0xA4, 0x15, 0x46, 0x73, -0x18, 0x61, 0x4E, 0x94, 0x08, 0x5C, 0x3F, 0x61, -0x04, 0x6A, 0x43, 0xC0, 0x08, 0x6A, 0x47, 0xC0, -0x4F, 0x94, 0x08, 0x6D, 0x00, 0x6E, 0x00, 0x18, -0x72, 0xD2, 0x00, 0x18, 0xCA, 0xC8, 0xA2, 0x67, -0x91, 0x67, 0x4F, 0xD2, 0x00, 0x18, 0xD4, 0xC8, -0x4E, 0x95, 0x02, 0x67, 0x82, 0x67, 0xF8, 0x4D, -0xE1, 0x17, 0x4E, 0x95, 0x20, 0x5D, 0x27, 0x61, -0x2E, 0x6A, 0x41, 0xC0, 0x01, 0x6A, 0x42, 0xC0, -0x43, 0xC0, 0x46, 0xC0, 0x02, 0x6A, 0x47, 0xC0, -0x10, 0x6A, 0x57, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF3, 0x40, 0x9A, 0x04, 0x6B, 0x65, 0xC0, -0x46, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF3, -0x50, 0x9A, 0x20, 0x6D, 0x00, 0x6E, 0x47, 0xD8, -0x4F, 0x94, 0x00, 0x18, 0x72, 0xD2, 0x00, 0x18, -0xCA, 0xC8, 0xA2, 0x67, 0x91, 0x67, 0x4F, 0xD2, -0x00, 0x18, 0xD4, 0xC8, 0x4E, 0x95, 0x02, 0x67, -0x82, 0x67, 0xE0, 0x4D, 0xB7, 0x17, 0x4F, 0x94, -0x00, 0x6D, 0xC5, 0x67, 0x00, 0x18, 0x72, 0xD2, -0x00, 0x18, 0xCA, 0xC8, 0xA2, 0x67, 0x91, 0x67, -0x4F, 0xD2, 0x00, 0x18, 0xD4, 0xC8, 0x4E, 0x95, -0x82, 0x67, 0x02, 0x67, 0x00, 0x18, 0xD2, 0xC8, -0x4C, 0x15, 0x00, 0x18, 0xCA, 0xC8, 0xA2, 0x67, -0x91, 0x67, 0x4E, 0xD2, 0x00, 0x18, 0xD4, 0xC8, -0x02, 0x67, 0x82, 0x67, 0x00, 0x6D, 0x00, 0x18, -0xD2, 0xC8, 0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, -0xD3, 0xC8, 0x4E, 0x94, 0x0D, 0x6D, 0x00, 0x6E, -0x00, 0x18, 0x72, 0xD2, 0x00, 0x18, 0x24, 0xD2, -0x74, 0x12, 0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF6, -0x48, 0x9A, 0x02, 0x99, 0x4F, 0xD2, 0x52, 0xA1, -0x71, 0xA1, 0x40, 0x32, 0x00, 0xF6, 0x60, 0x33, -0x40, 0x32, 0x49, 0xE3, 0x74, 0xA1, 0x69, 0xE2, -0x73, 0xA1, 0x60, 0x33, 0x69, 0xE2, 0x80, 0xF1, -0x00, 0x4A, 0x40, 0x32, 0x44, 0x32, 0x4E, 0xD2, -0x00, 0xF2, 0x01, 0x58, 0x58, 0x60, 0x4E, 0x92, -0x4F, 0x93, 0x09, 0xE2, 0x43, 0xEB, 0x51, 0xD2, -0x23, 0x61, 0x00, 0x18, 0xCA, 0xC8, 0x50, 0xD2, -0x40, 0x33, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0x33, -0x8A, 0xF0, 0x10, 0x4A, 0x69, 0xE2, 0x82, 0x67, -0x00, 0x6D, 0x00, 0xF2, 0x00, 0x6E, 0x4F, 0xD2, -0x00, 0x18, 0xE7, 0xC7, 0x30, 0xF0, 0x20, 0x6A, -0x4E, 0x94, 0x4F, 0x96, 0xE0, 0xF3, 0x5C, 0x9A, -0xB0, 0x67, 0x40, 0xEA, 0x50, 0x94, 0xFF, 0xF7, -0x1F, 0x6D, 0x0C, 0xED, 0x01, 0x6E, 0x00, 0x18, -0x72, 0xD2, 0x80, 0xF0, 0x1F, 0x2A, 0x9B, 0x10, -0x4E, 0x94, 0x4F, 0x95, 0xA3, 0xEC, 0x80, 0xF0, -0x08, 0x60, 0x00, 0x18, 0xCA, 0xC8, 0x52, 0xD2, -0x40, 0x33, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0x33, -0x8A, 0xF0, 0x10, 0x4A, 0x69, 0xE2, 0x82, 0x67, -0x00, 0x6D, 0x00, 0xF2, 0x00, 0x6E, 0x50, 0xD2, -0x00, 0x18, 0xE7, 0xC7, 0x4E, 0x93, 0x4F, 0x92, -0x50, 0x96, 0x83, 0x67, 0x6B, 0xE2, 0x53, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, 0x5C, 0x9A, -0x53, 0x95, 0x40, 0xEA, 0x53, 0x92, 0x52, 0x94, -0xFF, 0xF7, 0x1F, 0x6D, 0x4C, 0xED, 0x01, 0x6E, -0x00, 0x18, 0x72, 0xD2, 0x70, 0x22, 0x51, 0x93, -0x4F, 0x94, 0x83, 0xE3, 0x5B, 0x10, 0x4E, 0x92, -0x4F, 0x93, 0x00, 0xF2, 0x00, 0x4A, 0x43, 0xEB, -0x51, 0xD2, 0x27, 0x61, 0x00, 0x18, 0xCA, 0xC8, -0x52, 0xD2, 0x40, 0x33, 0x30, 0xF0, 0x20, 0x6A, -0x64, 0x33, 0x8A, 0xF0, 0x10, 0x4A, 0x69, 0xE2, -0x82, 0x67, 0x00, 0x6D, 0x00, 0xF2, 0x00, 0x6E, -0x50, 0xD2, 0x00, 0x18, 0xE7, 0xC7, 0x30, 0xF0, -0x20, 0x6A, 0x4E, 0x94, 0x50, 0x96, 0xE0, 0xF3, -0x5C, 0x9A, 0x00, 0xF2, 0x00, 0x6D, 0x40, 0xEA, -0x52, 0x94, 0x00, 0xF2, 0x00, 0x6D, 0x01, 0x6E, -0x00, 0x18, 0x72, 0xD2, 0x44, 0x22, 0x1F, 0xF6, -0x00, 0x48, 0x44, 0x20, 0x51, 0x94, 0x4E, 0xD4, -0x77, 0x17, 0x4E, 0x95, 0x4F, 0x92, 0x43, 0xED, -0x2C, 0x60, 0x00, 0x18, 0xCA, 0xC8, 0x51, 0xD2, -0x40, 0x33, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0x33, -0x8A, 0xF0, 0x10, 0x4A, 0x69, 0xE2, 0x82, 0x67, -0x00, 0x6D, 0x00, 0xF2, 0x00, 0x6E, 0x50, 0xD2, -0x00, 0x18, 0xE7, 0xC7, 0x4E, 0x94, 0x4F, 0x93, -0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, 0x5C, 0x9A, -0x50, 0x96, 0x8F, 0xE3, 0xA3, 0x67, 0x52, 0xD3, -0x40, 0xEA, 0x52, 0x92, 0x51, 0x94, 0xFF, 0xF7, -0x1F, 0x6D, 0x4C, 0xED, 0x01, 0x6E, 0x00, 0x18, -0x72, 0xD2, 0x15, 0x22, 0x4E, 0x93, 0x4F, 0x94, -0x01, 0xE3, 0x83, 0xE0, 0x01, 0x6D, 0x4E, 0xD5, -0x14, 0x10, 0x00, 0x18, 0xCA, 0xC8, 0xA2, 0x67, -0x91, 0x67, 0x4E, 0xD2, 0x00, 0x18, 0xD4, 0xC8, -0x22, 0x67, 0x82, 0x67, 0xB0, 0x67, 0x00, 0x18, -0xD2, 0xC8, 0x91, 0x67, 0x06, 0x11, 0x00, 0x6A, -0x4E, 0xD2, 0x03, 0x10, 0x01, 0x6B, 0x00, 0x68, -0x4E, 0xD3, 0x00, 0x18, 0xCA, 0xC8, 0xA2, 0x67, -0x91, 0x67, 0x4F, 0xD2, 0x00, 0x18, 0xD4, 0xC8, -0x4E, 0x94, 0x22, 0x67, 0x06, 0x24, 0x82, 0x67, -0xB0, 0x67, 0x00, 0x18, 0xD2, 0xC8, 0x91, 0x67, -0x9C, 0x16, 0x82, 0x67, 0x00, 0x6D, 0x00, 0x18, -0xD2, 0xC8, 0x91, 0x67, 0x3B, 0x14, 0x76, 0xA1, -0x57, 0xA1, 0x82, 0x99, 0x60, 0x33, 0x49, 0xE3, -0x4E, 0xD2, 0x4E, 0x95, 0xFF, 0xF7, 0x1F, 0x6A, -0x4C, 0xED, 0xA0, 0x32, 0x44, 0x32, 0x8E, 0xEA, -0x4E, 0xD5, 0xC0, 0xF0, 0x02, 0x2A, 0x4C, 0xA1, -0xA0, 0xF0, 0x1F, 0x2A, 0x52, 0xA1, 0x71, 0xA1, -0x40, 0x32, 0x40, 0x32, 0x00, 0xF6, 0x60, 0x33, -0x4D, 0xE3, 0x54, 0xA1, 0x4D, 0xE3, 0x53, 0xA1, -0x40, 0x32, 0x4D, 0xE3, 0x80, 0xF1, 0x40, 0x43, -0x40, 0x35, 0xA4, 0x35, 0x91, 0xE5, 0x51, 0xD5, -0x26, 0xF1, 0xA0, 0x98, 0x83, 0xED, 0xA0, 0xF0, -0x08, 0x61, 0x07, 0x68, 0x6C, 0xE8, 0x05, 0x28, -0x4E, 0x94, 0x51, 0x95, 0x00, 0x18, 0xE5, 0xC8, -0x62, 0x10, 0x0B, 0xE2, 0x40, 0x32, 0x44, 0x32, -0x50, 0xD2, 0x00, 0x6A, 0x4F, 0xD2, 0xFF, 0x6E, -0x0E, 0x04, 0x00, 0x6D, 0x01, 0x4E, 0x00, 0x18, -0xE7, 0xC7, 0x4F, 0x93, 0x50, 0x95, 0x30, 0xF0, -0x20, 0x6A, 0xE0, 0xF3, 0x5C, 0x9A, 0xB1, 0xE3, -0xFF, 0x6D, 0x01, 0x4D, 0x0E, 0x06, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x4F, 0x94, 0xC2, 0xF3, -0x74, 0x9B, 0x0E, 0x02, 0x6D, 0xE4, 0x4E, 0x04, -0xA0, 0xA2, 0x01, 0x4A, 0x8A, 0xEA, 0xA0, 0xC3, -0x01, 0x4B, 0xFA, 0x61, 0x4F, 0x95, 0x00, 0xF1, -0x00, 0x4D, 0x02, 0xF0, 0x00, 0x75, 0x4F, 0xD5, -0xDA, 0x61, 0x4E, 0x92, 0x50, 0x95, 0x51, 0xE0, -0x00, 0x18, 0xE5, 0xC8, 0x30, 0xF0, 0x20, 0x6A, -0xE0, 0xF3, 0x40, 0x9A, 0x00, 0x30, 0x04, 0x30, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x5C, 0x9A, 0x02, 0x6C, 0x40, 0xEA, 0x4F, 0xD0, -0x00, 0x68, 0xFF, 0x6E, 0x0E, 0x04, 0x00, 0x6D, -0x01, 0x4E, 0x00, 0x18, 0xE7, 0xC7, 0x30, 0xF0, -0x20, 0x6A, 0xC2, 0xF3, 0x74, 0x9A, 0x4E, 0x04, -0x0E, 0x02, 0x6D, 0xE0, 0xA0, 0xA3, 0x01, 0x4B, -0xA0, 0xC2, 0x01, 0x4A, 0x8A, 0xEA, 0xFA, 0x61, -0x50, 0x93, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, -0x58, 0x9A, 0xFF, 0x6D, 0x71, 0xE0, 0x01, 0x4D, -0x0E, 0x06, 0x40, 0xEA, 0x4F, 0x94, 0x00, 0xF1, -0x00, 0x48, 0x83, 0xE8, 0xDE, 0x61, 0x51, 0x93, -0x4E, 0x95, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, -0x08, 0x4A, 0x30, 0xF0, 0x20, 0x68, 0xAA, 0xF4, -0x04, 0x48, 0x26, 0xF7, 0x74, 0xDA, 0x01, 0x6B, -0x90, 0x67, 0x26, 0xF7, 0xB8, 0xDA, 0x26, 0xF7, -0x70, 0xC2, 0x00, 0x6D, 0x20, 0x6E, 0x00, 0x18, -0xE7, 0xC7, 0x90, 0x67, 0xB1, 0x67, 0x20, 0x6E, -0x00, 0x18, 0xEC, 0xC7, 0xCA, 0x10, 0x00, 0x18, -0xCA, 0xC8, 0x4F, 0xD2, 0x82, 0x99, 0x40, 0x30, -0x30, 0xF0, 0x20, 0x6A, 0x8A, 0xF0, 0x10, 0x4A, -0x04, 0x30, 0x01, 0xE2, 0x4E, 0xD4, 0x00, 0x6D, -0x90, 0x67, 0x00, 0xF2, 0x00, 0x6E, 0x00, 0x18, -0xE7, 0xC7, 0x06, 0x6A, 0x41, 0xC0, 0x25, 0x6A, -0x44, 0xC0, 0x01, 0x6A, 0x4B, 0xEA, 0x45, 0xC0, -0x01, 0x6A, 0x46, 0xC0, 0x4E, 0x92, 0xFF, 0xF7, -0x1F, 0x6D, 0x4F, 0x94, 0x4C, 0xED, 0x00, 0x6E, -0x0D, 0x16, 0x00, 0x18, 0xCA, 0xC8, 0xA2, 0x67, -0x91, 0x67, 0x4E, 0xD2, 0x00, 0x18, 0xD4, 0xC8, -0x02, 0x67, 0x82, 0x67, 0xA2, 0x99, 0x0A, 0x10, -0x00, 0x18, 0xCA, 0xC8, 0xA2, 0x67, 0x91, 0x67, -0x4E, 0xD2, 0x00, 0x18, 0xD4, 0xC8, 0x02, 0x67, -0x82, 0x67, 0x00, 0x6D, 0x00, 0x18, 0xD2, 0xC8, -0x90, 0x67, 0x01, 0x6D, 0x9F, 0xF3, 0x08, 0x10, -0x26, 0xF7, 0x78, 0x98, 0x4E, 0xD3, 0x15, 0x2B, -0x00, 0x18, 0xCA, 0xC8, 0x30, 0xF0, 0x20, 0x6C, -0xAA, 0xF4, 0x04, 0x4C, 0xA2, 0x67, 0x4F, 0xD2, -0x00, 0x18, 0xD4, 0xC8, 0x26, 0xF7, 0xB8, 0x98, -0x22, 0x67, 0x82, 0x67, 0xA0, 0x35, 0xA4, 0x35, -0x00, 0x18, 0xD2, 0xC8, 0x91, 0x67, 0x01, 0x6D, -0x62, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, -0x40, 0x9A, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x5C, 0x9A, 0x02, 0x6C, 0x40, 0xEA, -0x59, 0x93, 0xFF, 0xF7, 0x1F, 0x6A, 0x00, 0x6C, -0x4C, 0xEB, 0x4E, 0xD3, 0x26, 0xF7, 0x14, 0x98, -0x4F, 0xD4, 0x2A, 0x10, 0x4E, 0x95, 0x00, 0xF1, -0x00, 0x5D, 0x19, 0x61, 0x4F, 0x93, 0x30, 0xF0, -0x20, 0x6A, 0xE0, 0xF3, 0x58, 0x9A, 0xFF, 0x6D, -0x90, 0x67, 0x01, 0x4D, 0x79, 0xE1, 0x40, 0xEA, -0x4E, 0x94, 0x4F, 0x95, 0xFF, 0xF7, 0x1F, 0x6A, -0x80, 0x4C, 0x80, 0x4C, 0x00, 0xF1, 0x00, 0x4D, -0x4C, 0xEC, 0x4C, 0xED, 0x4E, 0xD4, 0x4F, 0xD5, -0x00, 0xF1, 0x00, 0x48, 0x0D, 0x10, 0x4F, 0x93, -0x30, 0xF0, 0x20, 0x6A, 0x4E, 0x95, 0xE0, 0xF3, -0x58, 0x9A, 0x90, 0x67, 0x79, 0xE1, 0x40, 0xEA, -0x4E, 0x94, 0x00, 0x6D, 0x4E, 0xD5, 0x81, 0xE0, -0x4E, 0x92, 0xD4, 0x2A, 0x30, 0xF0, 0x20, 0x68, -0x63, 0xF5, 0x08, 0x48, 0x26, 0xF7, 0x54, 0x98, -0x59, 0x93, 0x49, 0xE3, 0x26, 0xF7, 0x54, 0xD8, -0x26, 0xF7, 0x58, 0x98, 0xFF, 0x4A, 0x26, 0xF7, -0x58, 0xD8, 0x23, 0x2A, 0x00, 0x18, 0xCA, 0xC8, -0x30, 0xF0, 0x20, 0x6C, 0xAA, 0xF4, 0x04, 0x4C, -0xA2, 0x67, 0x4F, 0xD2, 0x00, 0x18, 0xD4, 0xC8, -0x22, 0x67, 0x82, 0x67, 0x00, 0x6D, 0x00, 0x18, -0xD2, 0xC8, 0x91, 0x67, 0x00, 0x6D, 0x00, 0x18, -0xD3, 0xC8, 0x4F, 0x94, 0x0D, 0x6D, 0x00, 0x6E, -0x00, 0x18, 0x72, 0xD2, 0x9D, 0x67, 0x30, 0xF1, -0xA8, 0x44, 0x80, 0xA5, 0x4E, 0x95, 0x26, 0xF7, -0x90, 0xC0, 0x26, 0xF7, 0xB4, 0xD8, 0x26, 0xF7, -0xB8, 0xD8, 0x57, 0x97, 0x56, 0x91, 0x55, 0x90, -0x2C, 0x63, 0x00, 0xEF, 0x06, 0x2C, 0x64, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF4, 0x70, 0xDA, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF4, -0x90, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF4, -0x50, 0x9A, 0x32, 0x72, 0x3A, 0x60, 0x33, 0x5A, -0x0C, 0x60, 0x14, 0x72, 0x1E, 0x60, 0x15, 0x5A, -0x03, 0x60, 0x0A, 0x72, 0x12, 0x60, 0x20, 0xE8, -0x19, 0x72, 0x1F, 0x60, 0x28, 0x72, 0x25, 0x60, -0x20, 0xE8, 0x64, 0x72, 0x3A, 0x60, 0x65, 0x5A, -0x03, 0x60, 0x50, 0x72, 0x2E, 0x60, 0x20, 0xE8, -0x78, 0x72, 0x3B, 0x60, 0xC8, 0x72, 0x41, 0x60, -0x20, 0xE8, 0x02, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF4, 0x74, 0xDA, 0xE0, 0xF7, 0x1E, 0x4B, -0x41, 0x10, 0x03, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF4, 0x74, 0xDA, 0xE1, 0xF3, 0x1D, 0x4B, -0x39, 0x10, 0x09, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF4, 0x74, 0xDA, 0xE4, 0xF3, 0x17, 0x4B, -0x31, 0x10, 0x05, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF4, 0x74, 0xDA, 0xE2, 0xF3, 0x1B, 0x4B, -0x29, 0x10, 0x11, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF4, 0x74, 0xDA, 0xE8, 0xF3, 0x0F, 0x4B, -0x21, 0x10, 0x0D, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF4, 0x74, 0xDA, 0x06, 0xF4, 0x08, 0x4B, -0x19, 0x10, 0x22, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF4, 0x74, 0xDA, 0x11, 0xF0, 0x00, 0x6B, -0x11, 0x10, 0x28, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF4, 0x74, 0xDA, 0x14, 0xF0, 0x00, 0x6B, -0x09, 0x10, 0x43, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF4, 0x74, 0xDA, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF3, 0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF4, 0x78, 0xDA, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF4, 0x50, 0x9A, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF4, 0x58, 0x9A, 0xFF, 0x63, 0x58, 0xEC, -0x12, 0xEA, 0x00, 0xD2, 0x00, 0x92, 0xFF, 0x4A, -0x00, 0xD2, 0x00, 0x92, 0xFB, 0x2A, 0x01, 0x63, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF4, 0x54, 0x9A, 0xFF, 0x63, 0x58, 0xEC, -0x12, 0xEA, 0x00, 0xD2, 0x00, 0x92, 0xFF, 0x4A, -0x00, 0xD2, 0x00, 0x92, 0xFB, 0x2A, 0x01, 0x63, -0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0x00, 0xC8, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0x4C, 0xED, 0x00, 0x18, 0xE7, 0xC7, -0x05, 0x97, 0x00, 0x6A, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, -0x04, 0x67, 0x4C, 0xEE, 0x00, 0x18, 0xEC, 0xC7, -0x50, 0x67, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x00, 0x68, 0x20, 0x10, 0xE0, 0xF3, -0x08, 0x70, 0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x22, 0xF3, 0x64, 0x9A, 0x80, 0x6C, 0x40, 0x9B, -0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0x23, 0xF3, 0x70, 0x9A, -0x8D, 0xEB, 0x23, 0xF3, 0x70, 0xDA, 0x00, 0x6A, -0x13, 0x10, 0xFF, 0xF7, 0x1F, 0x6A, 0x01, 0x48, -0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF5, 0x58, 0x9A, 0x60, 0xA2, -0x01, 0x6A, 0x6C, 0xEA, 0xD8, 0x2A, 0x01, 0x6A, -0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF5, -0x7C, 0x9B, 0x02, 0xF6, 0x80, 0x9C, 0x6D, 0xE5, -0x91, 0xE5, 0x00, 0x6E, 0xC0, 0xDB, 0x04, 0x4B, -0x8A, 0xEB, 0xFB, 0x61, 0xE7, 0xF7, 0x1F, 0x6B, -0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF3, -0x54, 0x9A, 0x10, 0x6C, 0x4D, 0xEB, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF5, 0x5C, 0x9A, 0x49, 0xE5, -0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, -0x44, 0x9A, 0xFF, 0x6B, 0x55, 0xE5, 0x40, 0xA5, -0x6C, 0xEA, 0x8D, 0xEA, 0x6C, 0xEA, 0x40, 0xC5, -0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF4, 0x7D, 0xA2, 0x08, 0xD4, 0x30, 0xF0, -0x20, 0x69, 0x61, 0xC5, 0x01, 0x4B, 0xE3, 0xF4, -0x7D, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, -0x9C, 0x9B, 0x08, 0x93, 0x80, 0xF2, 0x4C, 0x99, -0x02, 0x6E, 0x91, 0xE3, 0x05, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF6, 0x88, 0x9B, -0x08, 0x93, 0xCE, 0xA0, 0x80, 0xF2, 0x4C, 0x99, -0xA2, 0x40, 0x91, 0xE3, 0x40, 0xEA, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x24, 0x67, 0x00, 0x18, 0xA7, 0xCC, 0x00, 0x6B, -0x46, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF3, -0x40, 0x9A, 0xFF, 0xF7, 0x1F, 0x6E, 0xFF, 0x6F, -0x00, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF3, -0x50, 0x9A, 0x10, 0x6C, 0x8B, 0xEC, 0x4C, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0xA1, 0x40, 0x02, 0xF6, -0x4C, 0x9A, 0x65, 0x67, 0xCC, 0xEB, 0x60, 0xCA, -0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, 0x50, 0x9A, -0x60, 0xA2, 0xFA, 0x65, 0xA2, 0x32, 0xEC, 0xEB, -0x8C, 0xEB, 0x42, 0x32, 0x6D, 0xEA, 0xEC, 0xEA, -0x7F, 0x67, 0x40, 0xC3, 0x87, 0xA9, 0x02, 0x4C, -0xCC, 0xEC, 0x00, 0x18, 0xC0, 0xCC, 0x87, 0x40, -0x12, 0x4C, 0xB1, 0x67, 0x00, 0x18, 0xD7, 0xCC, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x58, 0x9A, -0x01, 0x6B, 0x80, 0xF2, 0x16, 0x6C, 0x60, 0xC2, -0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF3, 0x48, 0x9A, 0x01, 0x6D, 0x00, 0x6E, -0x04, 0xF7, 0x10, 0x6F, 0x40, 0xEA, 0x4B, 0xEB, -0x4D, 0xEB, 0xC0, 0xF7, 0x62, 0x33, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x43, 0x67, 0x06, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x63, 0xF5, -0x08, 0x48, 0x20, 0xF6, 0x92, 0xA0, 0x20, 0xF6, -0x53, 0xA0, 0x8E, 0xEA, 0x37, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x02, 0xF6, 0x54, 0x9A, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF3, 0x60, 0x9B, 0x40, 0x9A, -0x6C, 0xEA, 0x2C, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x90, 0x34, 0x83, 0xF6, 0x1A, 0x4A, 0x91, 0xE2, -0x00, 0x18, 0xEC, 0xCC, 0x1D, 0x22, 0x20, 0xF6, -0x52, 0xA0, 0x01, 0x4A, 0x20, 0xF6, 0x52, 0xC0, -0x20, 0xF6, 0x72, 0xA0, 0x20, 0xF6, 0x53, 0xA0, -0x6E, 0xEA, 0x06, 0x22, 0xA0, 0xF0, 0x44, 0x98, -0x04, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0x20, 0xF6, 0x72, 0xA2, 0x50, 0x6C, 0x8E, 0xEB, -0x09, 0x2B, 0x20, 0xF6, 0x72, 0xC2, 0x06, 0x10, -0xA0, 0xF0, 0x44, 0x98, 0x04, 0x6B, 0x6D, 0xEA, -0xA0, 0xF0, 0x44, 0xD8, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x63, 0xF5, -0x08, 0x48, 0xA0, 0xF0, 0x44, 0x98, 0x04, 0x6B, -0xA4, 0x67, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, -0x20, 0xF6, 0x52, 0xA8, 0x09, 0xF7, 0x00, 0x72, -0x07, 0x60, 0x20, 0xF6, 0x52, 0xA0, 0x20, 0xF6, -0x93, 0xA0, 0xFF, 0x4A, 0x8E, 0xEA, 0x13, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, 0x64, 0x9A, -0x00, 0xF2, 0x00, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, -0x08, 0x4A, 0x23, 0xF3, 0x70, 0x9A, 0x8D, 0xEB, -0x23, 0xF3, 0x70, 0xDA, 0x18, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, -0x4C, 0x9A, 0x83, 0xF6, 0x1A, 0x4B, 0x90, 0x34, -0x91, 0xE3, 0x10, 0x6E, 0x40, 0xEA, 0x20, 0xF6, -0x53, 0xA0, 0x50, 0x6B, 0x01, 0x4A, 0x20, 0xF6, -0x53, 0xC0, 0x20, 0xF6, 0x53, 0xA0, 0x6E, 0xEA, -0x02, 0x2A, 0x20, 0xF6, 0x53, 0xC0, 0x05, 0x97, -0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6B, 0xE3, 0xF4, 0x5C, 0xA3, 0xFF, 0x6F, -0xE0, 0xF0, 0xC7, 0xA5, 0x41, 0xC5, 0x43, 0xA5, -0xE3, 0xF4, 0x7C, 0xA3, 0x03, 0x4A, 0xEC, 0xEA, -0x09, 0x10, 0xED, 0x42, 0xFF, 0x68, 0x0C, 0xEF, -0xFD, 0xE5, 0x64, 0xC7, 0xE6, 0xA7, 0x03, 0x4F, -0xE9, 0xE2, 0x0C, 0xEA, 0xEF, 0x46, 0xE2, 0xEA, -0xF4, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF4, -0x7C, 0xA2, 0x01, 0x4B, 0xE3, 0xF4, 0x7C, 0xC2, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, 0x7C, 0x9B, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, -0x71, 0xE4, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x24, 0x67, 0x00, 0x18, -0xA7, 0xCC, 0x00, 0x6B, 0x3C, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0xC2, 0xF3, 0x40, 0x9A, 0x0F, 0x6C, -0xFF, 0xF7, 0x1F, 0x6B, 0x00, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0x62, 0xF3, 0x50, 0x9A, 0x4C, 0xE8, -0xA1, 0x40, 0xA2, 0x32, 0x42, 0x32, 0x8C, 0xEA, -0x30, 0xF0, 0x20, 0x6C, 0x02, 0xF6, 0x8C, 0x9C, -0xAC, 0xEB, 0x60, 0xCC, 0x30, 0xF0, 0x20, 0x6B, -0x02, 0xF6, 0x70, 0x9B, 0x40, 0xC3, 0xE0, 0xF0, -0x87, 0xA1, 0x00, 0x18, 0xC0, 0xCC, 0x87, 0x40, -0x12, 0x4C, 0xB1, 0x67, 0x00, 0x18, 0x60, 0xCD, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x58, 0x9A, -0x01, 0x6B, 0x80, 0xF2, 0x16, 0x6C, 0x60, 0xC2, -0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF3, 0x48, 0x9A, 0x01, 0x6D, 0x00, 0x6E, -0x04, 0xF7, 0x10, 0x6F, 0x40, 0xEA, 0x4B, 0xEB, -0x4D, 0xEB, 0xC0, 0xF7, 0x62, 0x33, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x43, 0x67, 0x06, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x63, 0xF5, -0x08, 0x48, 0xA2, 0xF4, 0x77, 0xA0, 0xA2, 0xF4, -0x58, 0xA0, 0x6E, 0xEA, 0x3E, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x02, 0xF6, 0x54, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0xE2, 0xF3, 0x80, 0x9C, 0x40, 0x9A, -0x8C, 0xEA, 0x33, 0x2A, 0xE8, 0x6A, 0x58, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF3, 0x1C, 0x4A, -0x12, 0xEB, 0x71, 0xE2, 0x00, 0x18, 0x79, 0xCD, -0x07, 0x2A, 0xA0, 0xF0, 0x44, 0x98, 0x04, 0x6B, -0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, 0x21, 0x10, -0xA2, 0xF4, 0x57, 0xA0, 0x10, 0x6B, 0x01, 0x4A, -0xA2, 0xF4, 0x57, 0xC0, 0xA2, 0xF4, 0x57, 0xA0, -0x6E, 0xEA, 0x02, 0x2A, 0xA2, 0xF4, 0x57, 0xC0, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0xA2, 0xF4, 0x97, 0xA2, 0xA2, 0xF4, 0x78, 0xA2, -0x8E, 0xEB, 0x07, 0x23, 0xA0, 0xF0, 0x64, 0x9A, -0x04, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, -0x04, 0x10, 0xA2, 0xF4, 0x96, 0xC2, 0xA2, 0xF4, -0x74, 0xCA, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0xA2, 0xF4, 0x77, 0xA2, -0xA4, 0x67, 0x04, 0x2B, 0xA2, 0xF4, 0x58, 0xA2, -0x0F, 0x72, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x68, -0x63, 0xF5, 0x08, 0x48, 0xA2, 0xF4, 0x57, 0xA0, -0xA2, 0xF4, 0x78, 0xA0, 0xFF, 0x4A, 0x6E, 0xEA, -0x15, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, -0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x02, 0xF5, -0x90, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0x23, 0xF3, 0x70, 0x9A, 0x8D, 0xEB, 0x23, 0xF3, -0x70, 0xDA, 0xAC, 0x10, 0x23, 0xA5, 0xFF, 0xF7, -0x1F, 0x6A, 0x04, 0x49, 0x4C, 0xE9, 0xA2, 0xF4, -0x54, 0xA8, 0x22, 0x2A, 0xE8, 0x6A, 0x58, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6C, -0x80, 0xF2, 0x4C, 0x9A, 0x84, 0xF3, 0x1C, 0x4C, -0xFF, 0x6E, 0x2C, 0xEE, 0x12, 0xEB, 0x71, 0xE4, -0x40, 0xEA, 0xA2, 0xF4, 0x58, 0xA0, 0xA2, 0xF4, -0x77, 0xA0, 0xA2, 0xF4, 0x34, 0xC8, 0x4E, 0xEB, -0x79, 0x2B, 0x01, 0x4A, 0xA2, 0xF4, 0x58, 0xC0, -0xA2, 0xF4, 0x58, 0xA0, 0x10, 0x6B, 0x6E, 0xEA, -0x71, 0x2A, 0xA2, 0xF4, 0x58, 0xC0, 0x6E, 0x10, -0x62, 0xA5, 0x39, 0x2B, 0x4D, 0xE1, 0xE3, 0x53, -0x36, 0x60, 0xA2, 0xF4, 0x76, 0xA0, 0xE8, 0x6C, -0x98, 0xEB, 0x12, 0xEB, 0x0D, 0xE3, 0x20, 0xF6, -0x96, 0xA3, 0x2D, 0x2C, 0x20, 0xF6, 0x97, 0xA3, -0xFF, 0x6E, 0xFC, 0x4A, 0xFF, 0x4C, 0x20, 0xF6, -0x97, 0xC3, 0xA2, 0xF4, 0x74, 0xA8, 0xA2, 0xF4, -0x96, 0xA0, 0xCC, 0xEA, 0xFF, 0x4B, 0xA2, 0xF4, -0x74, 0xC8, 0xE8, 0x6B, 0x78, 0xEC, 0x2C, 0xEE, -0x12, 0xEC, 0x91, 0xE0, 0x51, 0xE4, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0x20, 0xF6, -0x17, 0x4C, 0x40, 0xEA, 0xA2, 0xF4, 0x56, 0xA0, -0xE8, 0x6B, 0x78, 0xEA, 0x12, 0xEA, 0x09, 0xE2, -0x20, 0xF6, 0x77, 0xA2, 0x6D, 0xE1, 0x20, 0xF6, -0x77, 0xC2, 0xA2, 0xF4, 0x54, 0xA8, 0x45, 0xE1, -0xA2, 0xF4, 0x34, 0xC8, 0x33, 0x10, 0x30, 0xF0, -0x20, 0x68, 0x63, 0xF5, 0x08, 0x48, 0xA2, 0xF4, -0x98, 0xA0, 0xE8, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0x58, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, -0x4C, 0x9A, 0x84, 0xF3, 0x1C, 0x4B, 0xFF, 0x6E, -0x2C, 0xEE, 0x12, 0xEC, 0x91, 0xE3, 0x40, 0xEA, -0xA2, 0xF4, 0x58, 0xA0, 0x10, 0x6B, 0xA2, 0xF4, -0x34, 0xC8, 0x01, 0x4A, 0xA2, 0xF4, 0x58, 0xC0, -0xA2, 0xF4, 0x58, 0xA0, 0x6E, 0xEA, 0x02, 0x2A, -0xA2, 0xF4, 0x58, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0xA2, 0xF4, 0x76, 0xA2, -0x10, 0x6C, 0x01, 0x4B, 0xA2, 0xF4, 0x76, 0xC2, -0xA2, 0xF4, 0x76, 0xA2, 0x8E, 0xEB, 0x02, 0x2B, -0xA2, 0xF4, 0x76, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0xA2, 0xF4, 0x96, 0xA2, -0xE8, 0x6B, 0x78, 0xEC, 0xA2, 0xF4, 0x94, 0xAA, -0x12, 0xEB, 0x4D, 0xE3, 0x00, 0xF7, 0x9B, 0xC3, -0xA0, 0xF0, 0x64, 0x9A, 0x04, 0x6C, 0x8D, 0xEB, -0xA0, 0xF0, 0x64, 0xDA, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFF, 0xF7, 0x1F, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0x8C, 0xEA, 0x82, 0xF6, 0x6C, 0x9B, 0x30, 0xF0, -0x20, 0x6C, 0x82, 0xF6, 0x90, 0x9C, 0xCC, 0xEB, -0x40, 0xF6, 0xA0, 0x35, 0x8D, 0xEB, 0x1F, 0xF7, -0x00, 0x6C, 0x4C, 0xEC, 0x02, 0xF0, 0x00, 0x74, -0xAD, 0xEB, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, -0x20, 0x6C, 0xE2, 0xF2, 0x98, 0x9C, 0x04, 0x10, -0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF2, 0x9C, 0x9C, -0x89, 0xE2, 0x60, 0xDA, 0x20, 0xE8, 0x00, 0x65, -0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0x1F, 0xF7, -0x00, 0x6C, 0x4C, 0xEC, 0xFF, 0x6B, 0x02, 0xF0, -0x00, 0x74, 0xAC, 0xEB, 0x01, 0x60, 0x05, 0x2C, -0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF2, 0x98, 0x9C, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF2, -0x9C, 0x9C, 0x91, 0xE2, 0x00, 0x6D, 0xA0, 0xDC, -0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF6, 0x8C, 0x9C, -0xD4, 0x36, 0x40, 0xF6, 0x60, 0x33, 0x8C, 0xEE, -0x6D, 0xEE, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF6, -0x70, 0x9B, 0x6D, 0xEE, 0x1F, 0xF7, 0x00, 0x6B, -0x4C, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, -0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF2, -0x78, 0x9B, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF2, 0x7C, 0x9B, 0x69, 0xE2, 0xC0, 0xDA, -0x20, 0xE8, 0x00, 0x65, 0x0F, 0xF5, 0x00, 0x6B, -0x78, 0xEE, 0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, -0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF6, 0x8C, 0x9C, -0x40, 0xF6, 0xA0, 0x35, 0x12, 0xEB, 0x8C, 0xEB, -0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF6, 0x90, 0x9C, -0xAD, 0xEB, 0x8D, 0xEB, 0x1F, 0xF7, 0x00, 0x6C, -0x4C, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, -0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF2, -0x98, 0x9C, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, -0xE2, 0xF2, 0x9C, 0x9C, 0x89, 0xE2, 0x60, 0xDA, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF2, 0x48, 0x9A, 0x60, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF2, 0x4C, 0x9A, 0x40, 0x9A, -0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x8C, 0xEA, -0x01, 0x72, 0x06, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF2, 0x48, 0x9A, 0x40, 0x9A, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0x4C, 0x9A, -0x40, 0x9A, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, -0x42, 0xF2, 0xD8, 0x9B, 0xFD, 0x63, 0x42, 0xF2, -0x18, 0x4B, 0x02, 0xD6, 0xC1, 0x9B, 0x64, 0xAB, -0xFF, 0x6A, 0x03, 0xD6, 0xDD, 0x67, 0x68, 0xCE, -0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF2, 0xD0, 0x9B, -0x42, 0xF2, 0x10, 0x4B, 0x64, 0xA3, 0x4C, 0xEC, -0x00, 0xD6, 0xDD, 0x67, 0x64, 0xC6, 0x8D, 0xE6, -0xE0, 0xA3, 0x84, 0x33, 0x6D, 0xE6, 0xC4, 0xAB, -0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xED, 0xCC, 0xEB, -0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x0C, 0x2B, -0x5D, 0x67, 0x84, 0x34, 0x91, 0xE2, 0x30, 0xF0, -0x20, 0x6A, 0x64, 0xAC, 0xE2, 0xF2, 0x58, 0x9A, -0x49, 0xE3, 0x60, 0xA2, 0xFF, 0x6A, 0x06, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF2, 0x7C, 0x9B, -0x79, 0xE6, 0x60, 0xA6, 0xE4, 0xED, 0x6C, 0xEA, -0xA7, 0x67, 0x4C, 0xED, 0x00, 0x6B, 0x01, 0x25, -0x01, 0x6B, 0xFF, 0x6A, 0x6C, 0xEA, 0x03, 0x63, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0xA2, 0xF6, 0x88, 0x9A, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF5, 0x08, 0x4B, 0xA0, 0x9C, 0x52, 0x9B, -0xAC, 0xEA, 0x53, 0xDB, 0x40, 0xDC, 0x20, 0xE8, -0xFD, 0x63, 0x05, 0xD1, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x42, 0xF6, 0x2C, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0xA2, 0xF6, 0x14, 0x4A, 0x40, 0x9A, -0x60, 0x99, 0x30, 0xF0, 0x20, 0x6C, 0xA0, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF6, 0x5C, 0x9A, -0xC2, 0xF6, 0x04, 0x4C, 0x80, 0x9C, 0x00, 0x9A, -0x1A, 0x65, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0x9C, -0xC2, 0xF6, 0x0C, 0x4A, 0x40, 0x9A, 0x01, 0xD4, -0x30, 0xF0, 0x20, 0x6C, 0x40, 0x9A, 0x63, 0xF5, -0xE8, 0x9C, 0x00, 0xD2, 0x44, 0x67, 0x63, 0xF5, -0x08, 0x4A, 0xC1, 0x9A, 0x83, 0x9A, 0x6C, 0xEF, -0xAC, 0xEE, 0x01, 0x93, 0xA2, 0x9A, 0xE8, 0xDA, -0x6C, 0xEC, 0x0C, 0xED, 0x64, 0x9A, 0x00, 0x90, -0x8B, 0xDA, 0xC9, 0xDA, 0x0C, 0xEB, 0xAA, 0xDA, -0x6C, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF6, -0x14, 0x4A, 0x40, 0x9A, 0xE0, 0xD9, 0x18, 0x67, -0xC0, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, -0x04, 0x4A, 0x40, 0x9A, 0xA0, 0xD8, 0x80, 0xDA, -0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF6, 0x0C, 0x4C, -0x80, 0x9C, 0x60, 0xDC, 0x05, 0x91, 0x04, 0x90, -0x03, 0x63, 0x20, 0xE8, 0xFF, 0x63, 0x01, 0xD1, -0x00, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, -0x14, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, -0xFC, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, -0xC4, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, -0x08, 0x4A, 0x80, 0x98, 0xB4, 0x9A, 0x60, 0x9F, -0x20, 0x9E, 0x8C, 0xED, 0x95, 0x9A, 0xB7, 0xDA, -0x6C, 0xEC, 0x76, 0x9A, 0x98, 0xDA, 0x2C, 0xEB, -0x79, 0xDA, 0xA0, 0xD8, 0x80, 0xDF, 0x60, 0xDE, -0x01, 0x91, 0x00, 0x90, 0x01, 0x63, 0x20, 0xE8, -0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, -0x06, 0x74, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF6, 0x90, 0x9B, 0x01, 0x6D, 0x60, 0xA4, -0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, -0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, 0x64, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF3, 0x8C, 0x9C, -0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, 0x23, 0xF3, -0x70, 0x9A, 0x8D, 0xEB, 0x23, 0xF3, 0x70, 0xDA, -0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0xFF, 0x6A, 0x4C, 0xEC, 0x07, 0x6D, 0xB8, 0xEC, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4B, -0x01, 0x6E, 0x12, 0xEC, 0x71, 0xE4, 0xA0, 0xF0, -0xB6, 0xA4, 0xCC, 0xED, 0x1D, 0x25, 0xA0, 0xF0, -0xB7, 0xA4, 0xC2, 0xF5, 0x60, 0x9B, 0xA0, 0xF0, -0x96, 0xA4, 0x75, 0xE5, 0x30, 0xF0, 0x20, 0x6B, -0x22, 0xF4, 0x68, 0x9B, 0xBC, 0x35, 0x21, 0x4D, -0x75, 0xE5, 0xE0, 0xA5, 0x9E, 0x33, 0x9A, 0x34, -0xCC, 0xEC, 0x78, 0x33, 0x9C, 0x34, 0x4C, 0xEF, -0x8D, 0xEB, 0xED, 0xEB, 0x00, 0xF6, 0x60, 0x33, -0x00, 0xF6, 0x63, 0x33, 0x4C, 0xEB, 0x60, 0xC5, -0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x80, 0x18, 0x8D, 0x0F, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0xA7, 0xF0, 0x68, 0xA2, -0x02, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, -0x00, 0x18, 0x7B, 0xD1, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4B, -0x43, 0xF3, 0xA1, 0xA3, 0xFF, 0x6A, 0x4C, 0xEC, -0x8E, 0xED, 0x10, 0x2D, 0x43, 0xF3, 0xA0, 0xA3, -0x1F, 0x6E, 0xAA, 0x33, 0xCC, 0xEB, 0x67, 0xEC, -0x01, 0x6C, 0x8C, 0xEB, 0x07, 0x23, 0x02, 0x6B, -0xAC, 0xEB, 0x4C, 0xEB, 0x03, 0x23, 0x00, 0x6C, -0x00, 0x18, 0x7B, 0xD1, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0x4C, 0xEC, 0x00, 0x18, 0x3F, 0xCF, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x7A, 0xC1, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0x1A, 0x15, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x8F, 0xC6, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x8C, 0xC6, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xB7, 0x10, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0x01, 0x10, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x0A, 0xD2, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFF, 0x63, 0x01, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0x22, 0xF4, 0x68, 0x9B, 0xFF, 0x6A, 0x4C, 0xEE, -0x6D, 0xE4, 0x08, 0x68, 0x80, 0xA3, 0xDB, 0xE0, -0x02, 0x67, 0x4C, 0xED, 0x07, 0xEE, 0xD0, 0x67, -0x4C, 0xEF, 0x04, 0xED, 0x4C, 0xEC, 0xCC, 0xEF, -0x0F, 0xE8, 0x8C, 0xE8, 0xE4, 0xED, 0xED, 0xE8, -0x4C, 0xE8, 0x00, 0xC3, 0x01, 0x90, 0x01, 0x63, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x22, 0xF4, 0x48, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, -0x8C, 0xEB, 0x4D, 0xE3, 0x40, 0xA3, 0xFF, 0x6C, -0x8C, 0xEE, 0x08, 0x6B, 0xDB, 0xE3, 0x8C, 0xED, -0x8C, 0xEA, 0x64, 0x67, 0x47, 0xED, 0x67, 0xEE, -0x6C, 0xEA, 0x8C, 0xEA, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6B, 0xC2, 0xF2, 0x64, 0x9B, 0x10, 0xF0, -0x23, 0x6A, 0x27, 0xF6, 0x09, 0x4A, 0x40, 0xDB, -0x00, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF7, -0x44, 0x9A, 0x40, 0x9A, 0x21, 0x22, 0xE0, 0xF3, -0x09, 0x70, 0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x22, 0xF3, 0x64, 0x9A, 0x20, 0x6C, 0x40, 0x9B, -0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0x23, 0xF3, 0x70, 0x9A, -0x8D, 0xEB, 0x23, 0xF3, 0x70, 0xDA, 0x00, 0x6A, -0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x32, 0x6C, 0x01, 0x48, 0x40, 0xEA, -0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0xD9, 0x17, -0x01, 0x6A, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, -0x94, 0x34, 0x4C, 0xED, 0x4C, 0xEC, 0x30, 0xF0, -0x20, 0x6A, 0x02, 0xF7, 0x48, 0x9A, 0x80, 0xC2, -0xA0, 0xC2, 0x20, 0xE8, 0xFF, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x02, 0xF7, 0x68, 0x9B, 0x4C, 0xEC, -0x94, 0x34, 0x4C, 0xEC, 0x80, 0xC3, 0x60, 0xA3, -0x6C, 0xEA, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x50, 0x9A, -0x05, 0x6C, 0x40, 0xEA, 0x01, 0x6B, 0x4C, 0xEB, -0xF7, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x48, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x63, 0xF5, 0x08, 0x48, 0x06, 0xF1, 0x50, 0xA0, -0x01, 0x69, 0x71, 0x67, 0x4C, 0xEB, 0x04, 0xD3, -0xA0, 0xF0, 0x11, 0x2B, 0x30, 0xF0, 0x20, 0x6A, -0xE0, 0xF3, 0x48, 0x9A, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xE0, 0xF3, 0x40, 0x9A, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x5C, 0x9A, -0x02, 0x6C, 0x40, 0xEA, 0x06, 0xF1, 0x51, 0xA0, -0xFF, 0x6B, 0xFF, 0x4A, 0x6C, 0xEA, 0xFE, 0x5A, -0x80, 0xF0, 0x0F, 0x60, 0x06, 0xF1, 0x51, 0xA0, -0x20, 0x6B, 0x4E, 0xEB, 0x0D, 0x2B, 0x04, 0x6A, -0x06, 0xF1, 0x54, 0xC0, 0x06, 0xF1, 0x53, 0xA0, -0x06, 0xF1, 0x35, 0xC0, 0x06, 0xF1, 0x3C, 0xC0, -0x24, 0xEA, 0x06, 0xF1, 0x38, 0xD8, 0x10, 0x10, -0xC2, 0x6B, 0x4E, 0xEB, 0x12, 0x2B, 0x08, 0x6A, -0x06, 0xF1, 0x5C, 0xC0, 0x06, 0xF1, 0x53, 0xA0, -0x06, 0xF1, 0x34, 0xC0, 0x06, 0xF1, 0x35, 0xC0, -0x24, 0xEA, 0x06, 0xF1, 0x38, 0xD8, 0x2C, 0x31, -0x26, 0xF1, 0x20, 0xD8, 0x26, 0xF1, 0x64, 0xC0, -0x66, 0x10, 0xEF, 0x72, 0x33, 0x61, 0x03, 0x6A, -0x06, 0xF1, 0x54, 0xC0, 0x06, 0xF1, 0x52, 0xA0, -0x0F, 0x6B, 0x6C, 0xEA, 0x01, 0x72, 0x0C, 0x61, -0x02, 0x6A, 0x06, 0xF1, 0x55, 0xC0, 0x06, 0xF1, -0x53, 0xA0, 0x06, 0xF1, 0x3C, 0xC0, 0x24, 0xEA, -0x06, 0xF1, 0x38, 0xD8, 0x24, 0x31, 0x09, 0x10, -0x06, 0xF1, 0x53, 0xA0, 0x06, 0xF1, 0x35, 0xC0, -0x06, 0xF1, 0x3C, 0xC0, 0x24, 0xEA, 0x06, 0xF1, -0x38, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, -0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, -0x78, 0x9B, 0x06, 0xF1, 0x98, 0x9A, 0x26, 0xF1, -0x20, 0xD8, 0x83, 0xEB, 0x01, 0x6B, 0x01, 0x61, -0x00, 0x6B, 0x26, 0xF1, 0x64, 0xC2, 0x26, 0xF1, -0x65, 0xC2, 0x33, 0x10, 0x1C, 0x6B, 0x6E, 0xEA, -0x13, 0x2A, 0x05, 0x6B, 0x06, 0xF1, 0x74, 0xC0, -0x06, 0xF1, 0x73, 0xA0, 0x06, 0xF1, 0x35, 0xC0, -0x06, 0xF1, 0x3C, 0xC0, 0x24, 0xEB, 0x06, 0xF1, -0x38, 0xD8, 0x26, 0xF1, 0x20, 0xD8, 0x26, 0xF1, -0x44, 0xC0, 0x26, 0xF1, 0x45, 0xC0, 0x1D, 0x10, -0x5D, 0x67, 0x67, 0x42, 0x09, 0x4B, 0x40, 0xA3, -0x06, 0xF1, 0x35, 0xC0, 0x06, 0xF1, 0x3C, 0xC0, -0x06, 0xF1, 0x54, 0xC0, 0x06, 0xF1, 0x53, 0xA0, -0x24, 0xEA, 0x5D, 0x67, 0x67, 0x42, 0x09, 0x4B, -0x40, 0xA3, 0x7D, 0x67, 0x06, 0xF1, 0x38, 0xD8, -0x26, 0xF1, 0x44, 0xC0, 0x47, 0x43, 0x09, 0x4A, -0x60, 0xA2, 0x26, 0xF1, 0x20, 0xD8, 0x26, 0xF1, -0x65, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, -0x08, 0x4A, 0x06, 0xF1, 0x90, 0xA2, 0x01, 0x6B, -0x8D, 0xEB, 0x06, 0xF1, 0x70, 0xC2, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x52, 0xA4, 0x73, 0xA4, 0x30, 0xF0, 0x20, 0x69, -0x40, 0x32, 0x40, 0x32, 0x00, 0xF6, 0x60, 0x33, -0x4D, 0xE3, 0x50, 0xA4, 0x63, 0xF5, 0x08, 0x49, -0x04, 0x67, 0x4D, 0xE3, 0x51, 0xA4, 0x40, 0x32, -0x49, 0xE3, 0x04, 0xD2, 0x6A, 0xA4, 0x49, 0xA4, -0x60, 0x33, 0x49, 0xE3, 0x05, 0xD2, 0x4E, 0xA4, -0x6F, 0xA4, 0x40, 0x32, 0x40, 0x32, 0x00, 0xF6, -0x60, 0x33, 0x4D, 0xE3, 0x4C, 0xA4, 0x4D, 0xE3, -0x4D, 0xA4, 0x40, 0x32, 0x49, 0xE3, 0x06, 0xD2, -0x06, 0xF1, 0x50, 0xA1, 0x01, 0x6B, 0x6C, 0xEA, -0x18, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, -0x48, 0x9A, 0x40, 0xEA, 0x00, 0x18, 0xBD, 0xCF, -0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, 0x40, 0x9A, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x5C, 0x9A, 0x02, 0x6C, 0x40, 0xEA, 0x06, 0xF1, -0x50, 0xA1, 0x01, 0x6B, 0x6D, 0xEA, 0x06, 0xF1, -0x50, 0xC1, 0x48, 0xA0, 0x20, 0x72, 0x1C, 0x60, -0x21, 0x5A, 0x05, 0x60, 0x02, 0x72, 0x1F, 0x60, -0x03, 0x72, 0x22, 0x60, 0x29, 0x10, 0x52, 0x72, -0x0E, 0x60, 0x60, 0x72, 0x25, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xE0, 0xF3, 0x4C, 0x9A, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, -0xA1, 0xF7, 0x00, 0x6C, 0x0A, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xE0, 0xF3, 0x50, 0x9A, 0x04, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, 0x54, 0x9A, -0x04, 0x94, 0x40, 0xEA, 0x0D, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF4, 0x40, 0x9A, 0x04, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x44, 0x9A, -0x04, 0x94, 0x06, 0x95, 0x05, 0x96, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF7, 0x6C, 0x9A, -0x02, 0x6C, 0x8B, 0xEC, 0x40, 0x9B, 0x8C, 0xEA, -0x40, 0xDB, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x01, 0x6A, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF3, 0x68, 0x9B, -0xFF, 0x6A, 0x4C, 0xED, 0xA0, 0xC3, 0xCC, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x67, 0xF0, 0x50, 0xC3, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0xA7, 0xF0, 0x49, 0xA2, 0xFF, 0x63, 0x05, 0x5A, -0x36, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x48, 0x32, -0x82, 0xF2, 0x1C, 0x4B, 0x4D, 0xE3, 0x40, 0x9B, -0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, -0x50, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, 0x40, 0x9A, -0x1A, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, -0x50, 0x9A, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x22, 0xF7, 0x40, 0x9A, 0x0D, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x22, 0xF7, 0x40, 0x9A, 0x40, 0x9A, -0x50, 0x32, 0x00, 0xF5, 0x42, 0x32, 0x08, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, 0x44, 0x9A, -0x40, 0x9A, 0xE1, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, -0x00, 0xD2, 0x00, 0x93, 0xE0, 0xF3, 0x08, 0x6A, -0x60, 0x33, 0x68, 0x33, 0x5B, 0xEB, 0x01, 0x2A, -0xE5, 0xE8, 0x12, 0xEA, 0x01, 0x10, 0x66, 0x6A, -0x00, 0xD2, 0x00, 0x92, 0x01, 0x63, 0x20, 0xE8, -0xFF, 0x63, 0x01, 0xD0, 0x15, 0x2C, 0x30, 0xF0, -0x20, 0x6A, 0x22, 0xF3, 0x64, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0x62, 0xF3, 0x94, 0x9C, 0x40, 0x9B, -0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0x23, 0xF3, 0x70, 0x9A, -0x8D, 0xEB, 0x23, 0xF3, 0x70, 0xDA, 0x5D, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0x43, 0xF3, 0xA0, 0xA2, 0x03, 0x6B, 0x6B, 0xEB, -0xAC, 0xEB, 0x43, 0xF3, 0x60, 0xC2, 0x43, 0xF3, -0xC4, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC7, 0xF0, -0x08, 0x4A, 0x00, 0x6D, 0x18, 0x6F, 0xF8, 0xED, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4B, -0x12, 0xEF, 0x6D, 0xE7, 0x43, 0xF3, 0x14, 0xA3, -0x01, 0x6F, 0xEC, 0xE8, 0x23, 0x20, 0x43, 0xF3, -0x74, 0xA3, 0x66, 0x33, 0xEC, 0xEB, 0xFF, 0x6F, -0xEC, 0xEB, 0x1C, 0x23, 0xFF, 0xF7, 0x78, 0x9A, -0x9B, 0xEB, 0x01, 0x2C, 0xE5, 0xE8, 0x12, 0xEB, -0xFF, 0xF7, 0x7C, 0xDA, 0x10, 0xEF, 0x03, 0x27, -0x01, 0x4B, 0xFF, 0xF7, 0x7C, 0xDA, 0x60, 0x9A, -0x78, 0xEE, 0x12, 0xEB, 0x9B, 0xEB, 0x01, 0x2C, -0xE5, 0xE8, 0x12, 0xEB, 0x60, 0xDA, 0xFF, 0xF7, -0x7C, 0x9A, 0x04, 0x2B, 0x01, 0x6F, 0xFF, 0xF7, -0xFC, 0xDA, 0x60, 0xDA, 0x01, 0x4D, 0x0A, 0x75, -0x18, 0x4A, 0xCC, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0x43, 0xF3, 0x68, 0x9A, -0x43, 0xF3, 0x84, 0xDA, 0x7B, 0xEC, 0x01, 0x2B, -0xE5, 0xE8, 0x43, 0xF3, 0x80, 0xA2, 0x12, 0xEB, -0x43, 0xF3, 0x6C, 0xDA, 0x78, 0x67, 0x43, 0xF3, -0x70, 0xDA, 0x02, 0x6B, 0x8D, 0xEB, 0x43, 0xF3, -0x60, 0xC2, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x68, 0x63, 0xF5, 0x08, 0x48, 0x43, 0xF3, -0x40, 0xA0, 0x03, 0x6B, 0x4C, 0xEB, 0x00, 0x6A, -0x26, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, -0x48, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xFF, 0x6E, -0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, -0x48, 0x9A, 0xA7, 0xF0, 0x08, 0x4C, 0x00, 0x6D, -0x05, 0x4E, 0x40, 0xEA, 0x66, 0x6A, 0x43, 0xF3, -0x44, 0xD8, 0x43, 0xF3, 0x4C, 0xD8, 0x01, 0x6A, -0x4B, 0xEA, 0x43, 0xF3, 0x80, 0xA0, 0x43, 0xF3, -0x41, 0xC0, 0x7D, 0x6A, 0x4B, 0xEA, 0x01, 0x6B, -0x8C, 0xEA, 0x6D, 0xEA, 0x43, 0xF3, 0x40, 0xC0, -0x43, 0xF3, 0x68, 0xD8, 0x43, 0x67, 0x05, 0x97, -0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x30, 0xF0, -0x20, 0x68, 0x63, 0xF5, 0x08, 0x48, 0x43, 0xF3, -0x80, 0xA0, 0x01, 0x6B, 0x00, 0x6A, 0x8C, 0xEB, -0x22, 0x23, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, -0x48, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x03, 0x6A, -0x4B, 0xEA, 0x8C, 0xEA, 0x43, 0xF3, 0x40, 0xC0, -0x00, 0x18, 0x6B, 0xD0, 0x04, 0xD2, 0x04, 0x94, -0x00, 0x18, 0x8C, 0xD0, 0x43, 0xF3, 0x60, 0xA0, -0x02, 0x6A, 0x43, 0xF3, 0xC8, 0x98, 0x6D, 0xEA, -0x43, 0xF3, 0x40, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0x00, 0xF3, 0x48, 0x9A, 0x42, 0xF1, 0x1C, 0x6C, -0x01, 0x6D, 0x40, 0xEA, 0x01, 0x6A, 0x07, 0x97, -0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4B, -0x43, 0xF3, 0xA0, 0xA3, 0x02, 0x6C, 0x00, 0x6A, -0xAC, 0xEC, 0x0C, 0x24, 0x30, 0xF0, 0x20, 0x6A, -0x22, 0xF7, 0x48, 0x9A, 0x00, 0x6C, 0x80, 0xC2, -0x03, 0x6A, 0x4B, 0xEA, 0xAC, 0xEA, 0x43, 0xF3, -0x40, 0xC3, 0x01, 0x6A, 0x20, 0xE8, 0x00, 0x65, -0x00, 0x6A, 0x18, 0x6C, 0x98, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4B, 0x01, 0x4A, -0x0A, 0x72, 0x12, 0xEC, 0x71, 0xE4, 0x43, 0xF3, -0xB4, 0xA4, 0x02, 0x6B, 0x6B, 0xEB, 0xAC, 0xEB, -0x43, 0xF3, 0x74, 0xC4, 0xEE, 0x61, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0xA7, 0xF0, 0x48, 0xA2, -0x01, 0x6B, 0x4C, 0xEB, 0x00, 0x6A, 0x1C, 0x23, -0x30, 0xF0, 0x20, 0x6A, 0xC7, 0xF0, 0x0C, 0x4A, -0x00, 0x6B, 0xA0, 0x9A, 0x8E, 0xED, 0x0F, 0x2D, -0x18, 0x6E, 0xD8, 0xEB, 0x30, 0xF0, 0x20, 0x6D, -0x63, 0xF5, 0x08, 0x4D, 0x12, 0xEE, 0xB9, 0xE6, -0x43, 0xF3, 0xF4, 0xA6, 0x02, 0x6D, 0xAB, 0xED, -0xEC, 0xED, 0x43, 0xF3, 0xB4, 0xC6, 0x01, 0x4B, -0x0A, 0x73, 0x18, 0x4A, 0xEA, 0x61, 0x01, 0x6A, -0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x5D, 0x67, 0x0A, 0xD4, -0x20, 0xF0, 0x98, 0xA2, 0x30, 0xF0, 0x20, 0x6A, -0x0B, 0xD5, 0x0C, 0xD6, 0x63, 0xF5, 0x08, 0x4A, -0x43, 0xF3, 0xA0, 0xA2, 0x01, 0x6B, 0x00, 0xF6, -0xE0, 0x31, 0xAC, 0xEB, 0x00, 0xF6, 0x23, 0x31, -0x80, 0xF0, 0x09, 0x23, 0x21, 0x24, 0x01, 0x74, -0x80, 0xF0, 0x05, 0x61, 0x0A, 0x93, 0x80, 0xF0, -0x02, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, -0x6C, 0x9B, 0xC3, 0xEB, 0x7C, 0x61, 0x7F, 0x71, -0x7A, 0x60, 0xFF, 0xF7, 0x1F, 0x51, 0x77, 0x61, -0x43, 0xF3, 0x04, 0x9A, 0x1B, 0xEE, 0x01, 0x28, -0xE5, 0xE8, 0x10, 0xEA, 0x12, 0xE8, 0x02, 0x22, -0x01, 0x48, 0x04, 0x10, 0x03, 0x28, 0x01, 0x68, -0x50, 0x67, 0x1D, 0x10, 0x01, 0x6B, 0x1E, 0x10, -0x0A, 0x94, 0x65, 0x24, 0x30, 0xF0, 0x20, 0x6B, -0x22, 0xF7, 0x6C, 0x9B, 0x0C, 0x95, 0xA3, 0xEB, -0x5E, 0x61, 0x7F, 0x71, 0x5C, 0x60, 0xFF, 0xF7, -0x1F, 0x51, 0x59, 0x61, 0x43, 0xF3, 0x08, 0x9A, -0x1B, 0xED, 0x01, 0x28, 0xE5, 0xE8, 0x10, 0xEA, -0x12, 0xE8, 0x02, 0x22, 0x01, 0x48, 0x05, 0x10, -0x04, 0x28, 0x01, 0x68, 0x00, 0x6A, 0x04, 0xD2, -0x02, 0x10, 0x00, 0x6B, 0x04, 0xD3, 0x0A, 0x94, -0x00, 0x18, 0x14, 0xD1, 0x00, 0x6C, 0xFF, 0x6E, -0xA4, 0x67, 0xCC, 0xED, 0x1D, 0x65, 0x18, 0x6D, -0xB8, 0xEC, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, -0x08, 0x4B, 0x01, 0x6D, 0x12, 0xEA, 0x69, 0xE2, -0x43, 0xF3, 0x54, 0xA2, 0xAC, 0xEA, 0xCC, 0xEA, -0x2F, 0x2A, 0xD8, 0x67, 0x18, 0x6F, 0xF8, 0xEE, -0x04, 0x96, 0xC4, 0x36, 0x04, 0xD6, 0x03, 0x6E, -0xCB, 0xEE, 0x12, 0xEC, 0x71, 0xE4, 0x43, 0xF3, -0xF4, 0xA4, 0xEC, 0xEE, 0x04, 0x97, 0xED, 0xEE, -0x43, 0xF3, 0xD4, 0xC4, 0x0A, 0x96, 0x63, 0xF3, -0xC4, 0xDC, 0x0B, 0x97, 0x63, 0xF3, 0xE8, 0xDC, -0x0C, 0x96, 0x18, 0x6F, 0x43, 0xF3, 0xD8, 0xDC, -0xD8, 0x67, 0x01, 0x4E, 0xF8, 0xEE, 0x12, 0xEE, -0x6D, 0xE6, 0x43, 0xF3, 0x48, 0xDB, 0x43, 0xF3, -0x04, 0xDB, 0x43, 0xF3, 0x55, 0xC4, 0x43, 0xF3, -0x54, 0xA4, 0x43, 0xF3, 0x36, 0xC4, 0x4D, 0xED, -0x43, 0xF3, 0xB4, 0xC4, 0x01, 0x6A, 0x04, 0x10, -0x01, 0x4C, 0x0A, 0x74, 0xBC, 0x61, 0x00, 0x6A, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0xFF, 0x6A, 0x8C, 0xEA, 0x06, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0xC7, 0xF0, 0x08, 0x4A, 0x00, 0x6C, -0x2C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC7, 0xF0, -0x08, 0x4A, 0x00, 0x6B, 0x18, 0x6D, 0xB8, 0xEB, -0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF5, 0x08, 0x4C, -0x12, 0xED, 0x91, 0xE5, 0x43, 0xF3, 0xD4, 0xA4, -0x01, 0x6D, 0xAC, 0xEE, 0x08, 0x26, 0x43, 0xF3, -0x94, 0xA4, 0x86, 0x34, 0xAC, 0xEC, 0x03, 0x24, -0x80, 0x9A, 0x01, 0x4C, 0x80, 0xDA, 0x01, 0x4B, -0x0A, 0x73, 0x18, 0x4A, 0xE7, 0x61, 0x00, 0x18, -0x6B, 0xD0, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x04, 0x93, 0xA7, 0xF0, 0x4C, 0x9A, 0x6E, 0xEA, -0x52, 0x22, 0x04, 0x94, 0x00, 0x18, 0x8C, 0xD0, -0x4E, 0x10, 0x18, 0x6D, 0xB8, 0xEC, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4B, 0x12, 0xED, -0x6D, 0xE5, 0x43, 0xF3, 0xD4, 0xA3, 0x01, 0x6D, -0xAC, 0xEE, 0x0A, 0x26, 0x43, 0xF3, 0x74, 0xA3, -0x66, 0x33, 0xAC, 0xEB, 0xFF, 0x6D, 0xAC, 0xEB, -0x03, 0x2B, 0x60, 0x9A, 0x01, 0x4B, 0x60, 0xDA, -0x01, 0x4C, 0x0A, 0x74, 0x18, 0x4A, 0xE5, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0x43, 0xF3, 0x61, 0xA2, 0xFF, 0x73, 0x2B, 0x61, -0x43, 0xF3, 0x70, 0x9A, 0x01, 0x4B, 0x43, 0xF3, -0x70, 0xDA, 0x43, 0xF3, 0x4C, 0x9A, 0x4E, 0xEB, -0x22, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0xC7, 0xF0, -0x08, 0x4A, 0x18, 0x6D, 0xB8, 0xEB, 0x30, 0xF0, -0x20, 0x6C, 0x63, 0xF5, 0x08, 0x4C, 0x12, 0xED, -0x91, 0xE5, 0x43, 0xF3, 0xD4, 0xA4, 0x01, 0x6D, -0xAC, 0xEE, 0x08, 0x26, 0x43, 0xF3, 0x94, 0xA4, -0x86, 0x34, 0xAC, 0xEC, 0x03, 0x24, 0x80, 0x9A, -0x01, 0x4C, 0x80, 0xDA, 0x01, 0x4B, 0x0A, 0x73, -0x18, 0x4A, 0xE7, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x78, 0x67, 0xA7, 0xF0, 0x78, 0xDA, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, 0xA0, 0xF0, -0x64, 0x9A, 0x02, 0xF0, 0x00, 0x6C, 0x8D, 0xEB, -0xA0, 0xF0, 0x64, 0xDA, 0x07, 0x97, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0xA7, 0xF0, 0x1D, 0x48, 0x00, 0x69, 0x18, 0x6A, -0x58, 0xE9, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, -0x08, 0x4B, 0x12, 0xEA, 0x69, 0xE2, 0x43, 0xF3, -0x94, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, 0x27, 0x23, -0x00, 0xF0, 0x8B, 0x98, 0x00, 0xF0, 0x67, 0x98, -0x63, 0xEC, 0x21, 0x61, 0x61, 0x80, 0x81, 0x43, -0x04, 0xD4, 0x07, 0x2C, 0x00, 0xF0, 0x4F, 0x98, -0x00, 0xF0, 0x93, 0x98, 0x40, 0xEA, 0x04, 0x92, -0x14, 0x10, 0x80, 0xA0, 0x01, 0x4C, 0x80, 0xC0, -0x80, 0xA0, 0x82, 0xEB, 0x08, 0x60, 0x43, 0xF3, -0x94, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, -0x43, 0xF3, 0x74, 0xC2, 0x08, 0x10, 0x00, 0xF0, -0x4F, 0x98, 0x00, 0xF0, 0x93, 0x98, 0x40, 0xEA, -0x00, 0x6A, 0x00, 0xF0, 0x4B, 0xD8, 0x01, 0x49, -0x0A, 0x71, 0x18, 0x48, 0xC8, 0x61, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFF, 0x68, 0x09, 0xD5, 0x8C, 0xE8, 0x7F, 0xF7, -0x1E, 0x6D, 0x01, 0x6C, 0x00, 0x18, 0xD3, 0xC5, -0x62, 0x67, 0x67, 0xE8, 0x01, 0x6A, 0x4C, 0xEB, -0x00, 0x6A, 0x2D, 0x23, 0x0A, 0x28, 0x01, 0x6C, -0x9F, 0xF7, 0x00, 0x6D, 0x00, 0x18, 0xD3, 0xC5, -0x22, 0x67, 0x01, 0x6C, 0x9F, 0xF7, 0x01, 0x6D, -0x09, 0x10, 0x01, 0x6C, 0x9F, 0xF7, 0x02, 0x6D, -0x00, 0x18, 0xD3, 0xC5, 0x22, 0x67, 0x01, 0x6C, -0x9F, 0xF7, 0x03, 0x6D, 0x00, 0x18, 0xD3, 0xC5, -0x0F, 0x6B, 0x4C, 0xEB, 0x60, 0x32, 0x2D, 0xEA, -0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x22, 0xF4, 0x68, 0x9B, 0x00, 0x30, -0x08, 0x30, 0x61, 0xE0, 0x51, 0xE0, 0x09, 0x93, -0x04, 0x10, 0xA0, 0xA0, 0x01, 0x48, 0xA0, 0xC3, -0x01, 0x4B, 0x8A, 0xE8, 0xFA, 0x61, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x68, 0x01, 0x6C, 0x7F, 0xF7, 0x1E, 0x6D, -0x63, 0xF5, 0x08, 0x48, 0x00, 0x18, 0xD3, 0xC5, -0x26, 0xF7, 0x88, 0xA0, 0x01, 0x6B, 0x47, 0xEC, -0x6C, 0xEA, 0x0F, 0x22, 0x30, 0xF0, 0x20, 0x6D, -0x89, 0xF6, 0x10, 0x4D, 0x00, 0x18, 0xE8, 0xD1, -0x26, 0xF7, 0x4A, 0xC8, 0xA0, 0xF0, 0x44, 0x98, -0x10, 0xF0, 0x00, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, -0x44, 0xD8, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x01, 0x6C, 0x7F, 0xF7, 0x1E, 0x6D, 0x00, 0x18, -0xD3, 0xC5, 0x05, 0x97, 0x30, 0xF0, 0x20, 0x6B, -0x8A, 0xF4, 0x54, 0xC3, 0x03, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, 0x74, 0x9A, -0xFD, 0x6A, 0x1F, 0xF6, 0x10, 0x69, 0x80, 0xA3, -0xB1, 0x67, 0x7F, 0xF7, 0x1F, 0x68, 0x8C, 0xEA, -0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, -0x78, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, -0x40, 0xC3, 0x01, 0x6C, 0x00, 0x18, 0xD3, 0xC5, -0xFE, 0x6E, 0xB1, 0x67, 0x4C, 0xEE, 0x01, 0x6C, -0x00, 0x18, 0xC2, 0xC5, 0xB0, 0x67, 0x01, 0x6C, -0x00, 0x18, 0xD3, 0xC5, 0x40, 0x6E, 0x4D, 0xEE, -0xFF, 0x6A, 0xB0, 0x67, 0x4C, 0xEE, 0x01, 0x6C, -0x00, 0x18, 0xC2, 0xC5, 0xB0, 0x67, 0x01, 0x6C, -0x00, 0x18, 0xD3, 0xC5, 0x80, 0x6E, 0xCB, 0xEE, -0x4D, 0xEE, 0xFF, 0x6A, 0x4C, 0xEE, 0xB0, 0x67, -0x01, 0x6C, 0x00, 0x18, 0xC2, 0xC5, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, -0x14, 0x6C, 0x40, 0xEA, 0xB1, 0x67, 0x01, 0x6C, -0x00, 0x18, 0xD3, 0xC5, 0x01, 0x6E, 0x4D, 0xEE, -0xFF, 0x6A, 0xB1, 0x67, 0x4C, 0xEE, 0x01, 0x6C, -0x00, 0x18, 0xC2, 0xC5, 0x30, 0xF0, 0x20, 0x6A, -0xA2, 0xF3, 0x68, 0x9A, 0xFF, 0xF6, 0x1F, 0x6A, -0x80, 0xAB, 0x8C, 0xEA, 0x40, 0xCB, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x68, 0x63, 0xF5, 0x08, 0x48, 0x26, 0xF7, -0x68, 0xA0, 0x01, 0x6A, 0xFF, 0x6E, 0x44, 0xEB, -0x4C, 0xEE, 0x01, 0x6C, 0x7F, 0xF7, 0x1E, 0x6D, -0x00, 0x18, 0xC2, 0xC5, 0x26, 0xF7, 0x48, 0xA0, -0x01, 0x6B, 0x05, 0x97, 0x6E, 0xEA, 0x26, 0xF7, -0x48, 0xC0, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0x26, 0xF7, 0x6E, 0xA2, -0x01, 0x6C, 0x8E, 0xEB, 0x05, 0x2B, 0x26, 0xF7, -0x6E, 0xC2, 0x00, 0x18, 0x52, 0xD2, 0x10, 0x10, -0x26, 0xF7, 0xCC, 0xA2, 0x26, 0xF7, 0x88, 0xA2, -0x01, 0x6B, 0xA6, 0x67, 0xA7, 0xEC, 0x6C, 0xED, -0x07, 0x25, 0x6E, 0xEC, 0xC7, 0xEC, 0x86, 0x67, -0x6C, 0xEC, 0x02, 0x24, 0x26, 0xF7, 0x6D, 0xC2, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x6A, 0xFF, 0xF7, 0x1F, 0x6B, 0x05, 0x67, -0x4C, 0xEC, 0x6C, 0xE8, 0x0A, 0x35, 0x80, 0x37, -0x6C, 0xED, 0xE4, 0x37, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF5, 0x08, 0x4B, 0x4C, 0xEE, 0x26, 0xF3, -0x08, 0x4F, 0xAC, 0xEA, 0xFD, 0xE3, 0x04, 0xD2, -0x00, 0x6B, 0x1E, 0x10, 0x30, 0xF0, 0x20, 0x69, -0x8A, 0xF4, 0x31, 0xA1, 0x20, 0x31, 0x28, 0x31, -0x19, 0x65, 0x30, 0xF0, 0x20, 0x69, 0xE2, 0xF5, -0x3C, 0x99, 0x58, 0x67, 0x01, 0x76, 0x29, 0xE2, -0x68, 0x31, 0x29, 0xE2, 0xF9, 0x65, 0x20, 0x9F, -0x20, 0xDA, 0x08, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x22, 0xF7, 0x3C, 0x9A, 0x5F, 0x67, 0x29, 0xE2, -0x20, 0x9F, 0x20, 0xDA, 0x01, 0x4B, 0x04, 0x4F, -0xFF, 0x6A, 0x22, 0x67, 0xFA, 0x65, 0x04, 0x92, -0x6C, 0xE9, 0x43, 0xE9, 0xDB, 0x61, 0x03, 0x6A, -0x3F, 0x67, 0x0C, 0xEA, 0x2C, 0xED, 0x20, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0x26, 0xF7, 0xE9, 0xA2, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF5, 0x7C, 0x9B, 0xE0, 0x37, 0x9C, 0x34, -0xE8, 0x37, 0x7D, 0xE7, 0xA8, 0x33, 0xB5, 0xE4, -0xC1, 0xF4, 0x0A, 0x4D, 0xA8, 0x35, 0x49, 0xE5, -0x80, 0x9A, 0x7D, 0xE7, 0x01, 0x76, 0x80, 0xDF, -0x07, 0x61, 0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF7, -0x9C, 0x9C, 0x40, 0x9A, 0x8D, 0xE3, 0x40, 0xDB, -0xFF, 0x69, 0xD0, 0x67, 0x01, 0x6C, 0x7F, 0xF7, -0x1C, 0x6D, 0x2C, 0xEE, 0x00, 0x18, 0xC2, 0xC5, -0x02, 0x36, 0x01, 0x6C, 0x7F, 0xF7, 0x1D, 0x6D, -0x2C, 0xEE, 0x00, 0x18, 0xC2, 0xC5, 0x30, 0xF0, -0x20, 0x6A, 0x8A, 0xF4, 0x51, 0xA2, 0x01, 0x6E, -0x01, 0x6C, 0x02, 0x4A, 0xC4, 0xEA, 0x7F, 0xF7, -0x1E, 0x6D, 0x2C, 0xEE, 0x00, 0x18, 0xC2, 0xC5, -0x00, 0x68, 0x12, 0x10, 0x01, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x4E, 0xE8, 0xC2, 0xF2, 0x64, 0x9B, -0x10, 0xF0, 0x23, 0x6A, 0xC9, 0xF1, 0x09, 0x4A, -0x09, 0xE2, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, 0x40, 0xEA, -0x01, 0x6C, 0x7F, 0xF7, 0x1E, 0x6D, 0x00, 0x18, -0xD3, 0xC5, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, -0x08, 0x4B, 0x26, 0xF7, 0x89, 0xA3, 0xA2, 0x44, -0x47, 0xED, 0x01, 0x6D, 0xAC, 0xEA, 0xDE, 0x2A, -0xAE, 0xEC, 0x26, 0xF7, 0x89, 0xC3, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x45, 0x67, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xBC, 0x63, 0x87, 0x62, -0x86, 0xD1, 0x85, 0xD0, 0x30, 0xF0, 0x20, 0x69, -0x63, 0xF5, 0x08, 0x49, 0x26, 0xF7, 0xAA, 0xA9, -0x30, 0xF0, 0x20, 0x6C, 0x89, 0xF6, 0x10, 0x4C, -0x00, 0x18, 0x59, 0xC9, 0x00, 0x18, 0x52, 0xD2, -0x26, 0xF7, 0x88, 0xA1, 0x04, 0x00, 0xB0, 0x67, -0x00, 0x18, 0xE8, 0xD1, 0x11, 0x22, 0x90, 0x67, -0xA2, 0x67, 0x00, 0x18, 0x59, 0xC9, 0x26, 0xF7, -0x0D, 0xA1, 0x01, 0x6A, 0x4E, 0xE8, 0x05, 0x28, -0x00, 0x18, 0x52, 0xD2, 0x26, 0xF7, 0x0D, 0xC1, -0x03, 0x10, 0x01, 0x6A, 0x26, 0xF7, 0x4E, 0xC1, -0x87, 0x97, 0x86, 0x91, 0x85, 0x90, 0x44, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6D, 0x8C, 0xED, 0x18, 0x4D, 0x01, 0x6A, -0x44, 0xED, 0x00, 0x6C, 0xA2, 0x67, 0x80, 0x18, -0xEC, 0x4D, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6D, 0x8C, 0xED, -0x18, 0x4D, 0x01, 0x6A, 0x44, 0xED, 0x00, 0x6C, -0xA2, 0x67, 0x80, 0x18, 0x1D, 0x4E, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xDD, 0x63, 0x45, 0x62, -0x44, 0xD1, 0x43, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0xFF, 0x69, 0x42, 0xF7, 0x4C, 0x9A, 0x8C, 0xE9, -0x30, 0x31, 0x49, 0xE1, 0x40, 0xD2, 0x40, 0xA2, -0x00, 0xF6, 0x40, 0x32, 0x00, 0xF6, 0x43, 0x32, -0x00, 0x52, 0x40, 0x60, 0x01, 0x6A, 0x7D, 0x67, -0x4B, 0xEA, 0x54, 0xC3, 0x0F, 0x6A, 0x56, 0xC3, -0x10, 0x6A, 0x57, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0x42, 0xF7, 0x50, 0x9A, 0x30, 0xF0, 0x20, 0x68, -0x06, 0x04, 0x49, 0xE1, 0x40, 0x9A, 0x04, 0x05, -0x04, 0x6E, 0x04, 0xD2, 0x80, 0xF2, 0x4C, 0x98, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, -0x54, 0x9A, 0x07, 0x04, 0x04, 0x05, 0x49, 0xE1, -0x40, 0x9A, 0x04, 0x6E, 0x04, 0xD2, 0x80, 0xF2, -0x4C, 0x98, 0x40, 0xEA, 0x40, 0x93, 0x08, 0x04, -0x04, 0x05, 0x40, 0x9B, 0x04, 0x6E, 0x04, 0xD2, -0x80, 0xF2, 0x4C, 0x98, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x42, 0xF7, 0x58, 0x9A, 0x09, 0x04, -0x04, 0x05, 0x45, 0xE1, 0x40, 0x99, 0x04, 0x6E, -0x04, 0xD2, 0x80, 0xF2, 0x4C, 0x98, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, -0x05, 0x04, 0x40, 0xEA, 0x45, 0x97, 0x44, 0x91, -0x43, 0x90, 0x23, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, -0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF7, 0x90, 0x9C, -0x50, 0x33, 0x91, 0xE3, 0x80, 0x9C, 0x30, 0xF0, -0x20, 0x6C, 0x42, 0xF7, 0x94, 0x9C, 0x8D, 0xE3, -0x82, 0x67, 0x60, 0x9B, 0x00, 0x18, 0xEF, 0xD2, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0x42, 0xF7, 0x5C, 0x9A, 0x62, 0xF7, 0x60, 0x9B, -0x00, 0xA2, 0x20, 0xA3, 0xFF, 0x6A, 0x4C, 0xE8, -0x4C, 0xE9, 0x2A, 0xE8, 0x2B, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0x42, 0xF7, 0x50, 0x9A, 0x10, 0x33, -0x49, 0xE3, 0x40, 0xA2, 0xFF, 0x6B, 0x6C, 0xEA, -0x56, 0x32, 0x6C, 0xEA, 0x04, 0x72, 0x09, 0x60, -0x06, 0x72, 0x0C, 0x60, 0x02, 0x72, 0x10, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x54, 0x9A, -0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, -0x58, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x5C, 0x9A, 0x90, 0x67, 0x40, 0xEA, -0x01, 0x48, 0x7F, 0x6A, 0x4C, 0xE8, 0x0A, 0xE9, -0xDA, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, -0x5C, 0x9A, 0x20, 0xC2, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0xFF, 0x6B, -0xE2, 0x67, 0x6C, 0xEE, 0x6C, 0xEF, 0x1E, 0x65, -0x87, 0x67, 0x03, 0x6E, 0xCC, 0xEC, 0x80, 0xF0, -0x10, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0x62, 0xF7, -0x08, 0x9C, 0x08, 0x69, 0x42, 0x32, 0x80, 0xA0, -0x52, 0x32, 0x6C, 0xEA, 0x6C, 0xEC, 0x2D, 0xEC, -0x6C, 0xEC, 0x80, 0xC0, 0x30, 0xF0, 0x20, 0x6C, -0x62, 0xF7, 0x8C, 0x9C, 0xCC, 0xEA, 0xE0, 0xC4, -0x30, 0xF0, 0x20, 0x6C, 0x62, 0xF7, 0x90, 0x9C, -0x40, 0xC4, 0x0F, 0x6A, 0x98, 0x67, 0x8C, 0xEA, -0x74, 0x22, 0x01, 0x6C, 0x4C, 0xEC, 0x06, 0x24, -0x30, 0xF0, 0x20, 0x6C, 0x62, 0xF7, 0x94, 0x9C, -0xAC, 0xEB, 0x60, 0xC4, 0x02, 0x6B, 0x4C, 0xEB, -0x08, 0x23, 0xFF, 0x6C, 0xA2, 0x33, 0x8C, 0xEB, -0x30, 0xF0, 0x20, 0x6C, 0x62, 0xF7, 0x98, 0x9C, -0x60, 0xC4, 0x04, 0x6B, 0x4C, 0xEB, 0x09, 0x23, -0xA2, 0x33, 0xFF, 0x6C, 0x62, 0x33, 0x8C, 0xEB, -0x30, 0xF0, 0x20, 0x6C, 0x62, 0xF7, 0x9C, 0x9C, -0x60, 0xC4, 0x4E, 0x33, 0x07, 0x23, 0x30, 0xF0, -0x20, 0x6B, 0x82, 0xF7, 0x60, 0x9B, 0x00, 0xF6, -0xA2, 0x35, 0xA0, 0xC3, 0x20, 0x6B, 0x4D, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, 0x44, 0x9A, -0x64, 0x68, 0x60, 0xC2, 0x2C, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, -0xFF, 0x48, 0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, -0x4C, 0xE8, 0x21, 0x28, 0x30, 0xF0, 0x20, 0x6A, -0x22, 0xF3, 0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0xC2, 0xF3, 0x88, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, -0x08, 0x4A, 0x23, 0xF3, 0x70, 0x9A, 0x8D, 0xEB, -0x23, 0xF3, 0x70, 0xDA, 0x60, 0xA1, 0xD0, 0x6A, -0x6C, 0xEA, 0x40, 0xC1, 0x30, 0xF0, 0x20, 0x6A, -0x62, 0xF7, 0x68, 0x9A, 0xF7, 0x6A, 0x80, 0xA3, -0x8C, 0xEA, 0x40, 0xC3, 0x16, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x82, 0xF7, 0x24, 0x9A, 0x20, 0x6A, -0x60, 0xA1, 0x6C, 0xEA, 0xCC, 0x2A, 0x60, 0xA1, -0xF0, 0x6A, 0x6C, 0xEA, 0x40, 0xC1, 0x30, 0xF0, -0x20, 0x6A, 0x62, 0xF7, 0x68, 0x9A, 0xF7, 0x6A, -0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x6A, -0x01, 0x10, 0x00, 0x6A, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0xC2, 0x67, -0xFF, 0x6C, 0x8C, 0xEE, 0x03, 0x6D, 0x66, 0x67, -0xAC, 0xEB, 0x4B, 0x2B, 0x30, 0xF0, 0x20, 0x6B, -0x62, 0xF7, 0xE8, 0x9B, 0x08, 0x68, 0x42, 0x32, -0x60, 0xA7, 0x52, 0x32, 0x8C, 0xEA, 0x8C, 0xEB, -0x0D, 0xEB, 0x8C, 0xEB, 0x60, 0xC7, 0x30, 0xF0, -0x20, 0x6B, 0x62, 0xF7, 0x6C, 0x9B, 0xAC, 0xEA, -0x64, 0x68, 0xC0, 0xC3, 0x30, 0xF0, 0x20, 0x6B, -0x62, 0xF7, 0x70, 0x9B, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0x82, 0xF7, 0x44, 0x9A, 0x30, 0x6B, -0x60, 0xC2, 0x2E, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0xFF, 0x48, -0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, -0x23, 0x28, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, -0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF3, -0x88, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0x23, 0xF3, 0x70, 0x9A, 0x8D, 0xEB, 0x23, 0xF3, -0x70, 0xDA, 0x60, 0xA1, 0xCF, 0x6A, 0x6C, 0xEA, -0x40, 0xC1, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, -0x68, 0x9A, 0xF7, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, -0x40, 0xC3, 0x01, 0x6A, 0x4B, 0xEA, 0x19, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, 0x24, 0x9A, -0x20, 0x6A, 0x60, 0xA1, 0x6C, 0xEA, 0xCA, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, 0x54, 0x9A, -0xEF, 0x6B, 0x40, 0x9A, 0x80, 0xA1, 0x8C, 0xEB, -0x60, 0xC1, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF7, -0x88, 0x9B, 0xF7, 0x6B, 0xA0, 0xA4, 0xAC, 0xEB, -0x60, 0xC4, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, 0xA8, 0x9A, -0xE0, 0xF3, 0x10, 0x6C, 0x0F, 0x6E, 0x00, 0x18, -0x4A, 0xD3, 0xE0, 0xF3, 0x0C, 0x6C, 0x00, 0x18, -0x9E, 0xD3, 0xFF, 0x6B, 0x4C, 0xEB, 0x0B, 0x73, -0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, -0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF7, -0x90, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, 0x40, 0xDB, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6B, 0xC2, 0xF2, 0x64, 0x9B, 0x10, 0xF0, -0x23, 0x6A, 0xA9, 0xF7, 0x11, 0x4A, 0x40, 0xDB, -0x00, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF7, -0x44, 0x9A, 0x40, 0x9A, 0x21, 0x22, 0xE0, 0xF3, -0x09, 0x70, 0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x22, 0xF3, 0x64, 0x9A, 0x20, 0x6C, 0x40, 0x9B, -0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0x23, 0xF3, 0x70, 0x9A, -0x8D, 0xEB, 0x23, 0xF3, 0x70, 0xDA, 0x00, 0x6A, -0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x32, 0x6C, 0x01, 0x48, 0x40, 0xEA, -0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0xD9, 0x17, -0x01, 0x6A, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x26, 0xF3, 0x4C, 0xA2, 0x03, 0x72, 0x0D, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, 0x88, 0x9A, -0xFF, 0x6A, 0x60, 0xA4, 0x6C, 0xEA, 0x10, 0x6B, -0x4C, 0xEB, 0x03, 0x23, 0xEF, 0x6B, 0x4C, 0xEB, -0x60, 0xC4, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF7, 0x5C, 0x9A, -0xC2, 0xF7, 0x60, 0x9B, 0x40, 0xAA, 0x60, 0xAB, -0x6E, 0xEA, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, -0x01, 0x5A, 0x58, 0x67, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, 0x64, 0x9B, -0x10, 0xF0, 0x23, 0x6A, 0x6A, 0xF0, 0x11, 0x4A, -0x40, 0xDB, 0x01, 0x4A, 0x40, 0xDB, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, 0x64, 0x9B, -0x10, 0xF0, 0x23, 0x6A, 0x8A, 0xF0, 0x09, 0x4A, -0x40, 0xDB, 0x01, 0x4A, 0x40, 0xDB, 0x20, 0xE8, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, 0x64, 0x9B, -0x10, 0xF0, 0x23, 0x6A, 0xAA, 0xF0, 0x01, 0x4A, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF7, -0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, -0x50, 0x9A, 0x80, 0x9B, 0xA4, 0x67, 0x4C, 0xED, -0x4E, 0xED, 0x02, 0x25, 0x8D, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, -0x01, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xC2, 0xF7, 0x48, 0x9A, 0x01, 0x6B, 0x40, 0x9A, -0x6C, 0xEA, 0x60, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0xC2, 0xF7, 0x4C, 0x9A, 0x00, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0xC2, 0xF7, 0x50, 0x9A, 0xE0, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF7, 0x54, 0x9A, -0xC0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF7, -0x58, 0x9A, 0xA0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0xC2, 0xF7, 0x5C, 0x9A, 0x80, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF7, 0x40, 0x9A, 0x40, 0x9A, -0x41, 0x22, 0x30, 0xF0, 0x20, 0x69, 0xE2, 0xF7, -0x24, 0x99, 0x60, 0xD9, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF7, 0x68, 0x9B, 0x00, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF7, 0x6C, 0x9B, 0xE0, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, 0x70, 0x9B, -0xC0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, -0x74, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x02, 0xF7, 0x6C, 0x9B, 0x80, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF7, 0x78, 0x9B, 0x30, 0xF0, -0x20, 0x6C, 0xC2, 0xF4, 0x90, 0x9C, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, 0x64, 0x9A, -0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x5C, 0xB9, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x7D, 0xB9, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x77, 0xF0, -0x24, 0x6C, 0xC0, 0xF1, 0x04, 0x4C, 0xAE, 0xB8, -0x00, 0x65, 0xA0, 0xDC, 0x9A, 0xB8, 0x00, 0x65, -0xBB, 0xB8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF2, 0x64, 0x9B, 0x10, 0xF0, 0x23, 0x6A, -0xAA, 0xF0, 0x02, 0x4A, 0x40, 0xDB, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF2, 0x64, 0x9B, 0x10, 0xF0, 0x23, 0x6A, -0xCA, 0xF1, 0x11, 0x4A, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF5, 0x64, 0x9A, 0x63, 0x23, -0x01, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, -0xFD, 0xCE, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF5, -0x44, 0x9A, 0x02, 0x6B, 0x6C, 0xEA, 0x02, 0x22, -0x00, 0x18, 0xFE, 0xCE, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF5, 0x44, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x18, 0xFF, 0xCE, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF5, 0x44, 0x9A, 0x08, 0x6B, -0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x00, 0xCF, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF5, 0x44, 0x9A, -0x10, 0x6B, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, -0x01, 0xCF, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF5, -0x44, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x02, 0x22, -0x00, 0x18, 0x02, 0xCF, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF5, 0x44, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x18, 0x03, 0xCF, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF5, 0x64, 0x9B, 0xFF, 0x6A, -0x01, 0x4A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, -0x37, 0xCF, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF5, -0x64, 0x9B, 0x04, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x18, 0x04, 0xCF, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF5, 0x64, 0x9B, 0x08, 0xF0, -0x00, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, -0x05, 0xCF, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF5, -0x64, 0x9B, 0x10, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x18, 0x06, 0xCF, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF5, 0x68, 0x9A, 0x14, 0x23, -0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, 0x58, 0x9A, -0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x0A, 0xCF, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0x22, 0xF3, 0x48, 0x9A, 0xC3, 0xF5, 0x68, 0x9B, -0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x33, 0xCF, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF5, 0x6C, 0x9A, -0x4C, 0x23, 0x01, 0x6A, 0x6C, 0xEA, 0x03, 0x22, -0x01, 0x6C, 0x00, 0x18, 0x07, 0xCF, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF5, 0x4C, 0x9A, 0x02, 0x6B, -0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, -0x08, 0xCF, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF5, -0x4C, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, 0x03, 0x22, -0x02, 0x6C, 0x00, 0x18, 0x07, 0xCF, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF5, 0x4C, 0x9A, 0x08, 0x6B, -0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, -0x08, 0xCF, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF5, -0x4C, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, 0x03, 0x22, -0x03, 0x6C, 0x00, 0x18, 0x07, 0xCF, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF5, 0x4C, 0x9A, 0x20, 0x6B, -0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, -0x08, 0xCF, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF5, -0x4C, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, 0x03, 0x22, -0x04, 0x6C, 0x00, 0x18, 0x07, 0xCF, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF5, 0x4C, 0x9A, 0x80, 0x6B, -0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, -0x08, 0xCF, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, -0x08, 0x4A, 0x00, 0x6B, 0x77, 0xDA, 0x78, 0xDA, -0x79, 0xDA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, -0x64, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0xCA, 0xF1, -0x12, 0x4A, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, 0x64, 0x9B, -0x10, 0xF0, 0x23, 0x6A, 0xAA, 0xF3, 0x15, 0x4A, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF5, -0x74, 0x9A, 0x15, 0x23, 0xFF, 0x6A, 0x01, 0x4A, -0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x6C, 0xCF, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0x00, 0x6B, 0x73, 0xDA, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF2, 0x64, 0x9B, 0x10, 0xF0, 0x23, 0x6A, -0xAA, 0xF3, 0x16, 0x4A, 0x40, 0xDB, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, 0x64, 0x9B, -0x10, 0xF0, 0x23, 0x6A, 0x0A, 0xF4, 0x05, 0x4A, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF5, -0x68, 0x9A, 0x2B, 0x23, 0x10, 0x6A, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x18, 0x68, 0xCF, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF5, 0x48, 0x9A, 0x20, 0x6B, -0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x64, 0xCF, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF5, 0x48, 0x9A, -0x40, 0x6B, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, -0xEF, 0xCE, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, -0x68, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x18, 0x60, 0xCF, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF5, 0x68, 0x9B, 0x00, 0xF2, -0x00, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, -0x5C, 0xCF, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF5, -0x6C, 0x9A, 0x06, 0x23, 0x08, 0xF0, 0x00, 0x6A, -0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x58, 0xCF, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF5, 0x70, 0x9A, -0x32, 0x23, 0x01, 0x6A, 0x6C, 0xEA, 0x03, 0x22, -0x00, 0x6C, 0x00, 0x18, 0x4F, 0xCF, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF5, 0x70, 0x9B, 0xFF, 0x6A, -0x01, 0x4A, 0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, -0x00, 0x18, 0x4F, 0xCF, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF5, 0x70, 0x9B, 0x00, 0xF2, 0x00, 0x6A, -0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, -0x4F, 0xCF, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, -0x70, 0x9B, 0x00, 0xF4, 0x00, 0x6A, 0x6C, 0xEA, -0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, 0x4F, 0xCF, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, 0x70, 0x9B, -0x01, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, -0x04, 0x6C, 0x00, 0x18, 0x4F, 0xCF, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF5, 0x74, 0x9A, 0x32, 0x23, -0x01, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, -0x00, 0x18, 0xF3, 0xCE, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF5, 0x74, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, -0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, -0xF3, 0xCE, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, -0x74, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, -0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, 0xF3, 0xCE, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, 0x74, 0x9B, -0x00, 0xF4, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, -0x03, 0x6C, 0x00, 0x18, 0xF3, 0xCE, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF5, 0x74, 0x9B, 0x01, 0xF0, -0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, -0x00, 0x18, 0xF3, 0xCE, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0x00, 0x6B, 0x68, 0xDA, -0x69, 0xDA, 0x6A, 0xDA, 0x6B, 0xDA, 0x6C, 0xDA, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, 0x64, 0x9B, -0x10, 0xF0, 0x23, 0x6A, 0x0A, 0xF4, 0x06, 0x4A, -0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, 0xBC, 0x9B, -0x00, 0x6B, 0xFF, 0x6A, 0x60, 0xC5, 0x30, 0xF0, -0x20, 0x6B, 0x8C, 0xEA, 0x03, 0xF0, 0x80, 0x9B, -0x00, 0xF3, 0x00, 0x6E, 0x30, 0xF0, 0x20, 0x6F, -0x60, 0x9C, 0x42, 0xF5, 0xE0, 0x9F, 0xCD, 0xEB, -0x60, 0xDC, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF0, -0x84, 0x9C, 0x01, 0x6B, 0x60, 0xC4, 0x30, 0xF0, -0x20, 0x6C, 0x03, 0xF0, 0x88, 0x9C, 0x60, 0xC4, -0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF0, 0x8C, 0x9C, -0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF0, -0xD0, 0x9C, 0x80, 0x9E, 0xEC, 0xEC, 0x80, 0xDE, -0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF0, 0x94, 0x9C, -0x40, 0xC4, 0x60, 0xC5, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF0, 0x58, 0x9A, 0x60, 0xA2, 0x01, 0x6A, -0x6C, 0xEA, 0xF8, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF0, 0x54, 0x9A, 0xFF, 0x6B, 0x40, 0xA2, -0x6C, 0xEA, 0x20, 0xE8, 0xFF, 0x63, 0x01, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, 0x7C, 0x9B, -0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x00, 0x6D, -0xA0, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, -0xE0, 0x9B, 0x00, 0xF3, 0x01, 0x68, 0x0B, 0xE8, -0x60, 0x9F, 0x0C, 0xEB, 0x60, 0xDF, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF0, 0x64, 0x9B, 0x01, 0x6F, -0xE0, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, -0x6C, 0x9B, 0xA0, 0xC3, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF0, 0x74, 0x9B, 0x80, 0xC3, 0x00, 0x6B, -0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0xA0, 0xA6, -0x03, 0xF0, 0x94, 0x9C, 0x01, 0x4B, 0x01, 0x4E, -0xA0, 0xC4, 0xFF, 0x6C, 0x8C, 0xEB, 0x43, 0xEB, -0xF4, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF7, -0x5C, 0x9A, 0x01, 0x6B, 0x60, 0xC2, 0x01, 0x90, -0x01, 0x63, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x54, 0x9A, -0x00, 0x6D, 0x05, 0x6C, 0xC5, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, 0x58, 0x9A, -0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, 0xF8, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, 0x54, 0x9A, -0x05, 0x97, 0xFF, 0x6B, 0x40, 0xA2, 0x6C, 0xEA, -0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x5D, 0x67, 0x90, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x54, 0x9A, 0x05, 0x6C, 0x01, 0x6D, -0x04, 0x06, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF0, 0x58, 0x9A, 0x60, 0xA2, 0x01, 0x6A, -0x6C, 0xEA, 0xF8, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x00, 0xF4, 0x48, 0x9A, 0x40, 0xEA, 0x07, 0x97, -0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x54, 0x9A, -0x00, 0x6D, 0x06, 0x6C, 0xC5, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, 0x58, 0x9A, -0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, 0xF8, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x48, 0x9A, -0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x54, 0x9A, 0x00, 0x6D, 0x04, 0x6C, -0xC5, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF0, 0x58, 0x9A, 0x60, 0xA2, 0x01, 0x6A, -0x6C, 0xEA, 0xF8, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x00, 0xF4, 0x48, 0x9A, 0x40, 0xEA, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF7, 0x9C, 0x9A, 0x00, 0x6A, 0x00, 0xF3, -0x00, 0x6D, 0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF0, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6E, -0x42, 0xF5, 0xC0, 0x9E, 0x40, 0x9B, 0xAD, 0xEA, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, -0x64, 0x9B, 0x01, 0x6A, 0x03, 0x6D, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, 0x68, 0x9B, -0xA0, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, -0x6C, 0x9B, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF0, 0xB0, 0x9B, 0x60, 0x9D, 0xCC, 0xEB, -0x60, 0xDD, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, -0x74, 0x9B, 0x61, 0x6D, 0xAB, 0xED, 0xA0, 0xC3, -0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, -0x58, 0x9A, 0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, -0xF8, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, -0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF6, -0x84, 0x9A, 0xA0, 0xA3, 0xA1, 0xC4, 0xA0, 0xA3, -0x60, 0xF6, 0x84, 0x9A, 0xA2, 0xC4, 0x60, 0xA3, -0x60, 0xF6, 0x44, 0x9A, 0x63, 0xC2, 0x20, 0xE8, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0xE0, 0xF3, 0x40, 0x9A, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x54, 0x9A, 0x00, 0x6D, -0x60, 0x6C, 0xC5, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF0, 0x58, 0x9A, 0x60, 0xA2, -0x01, 0x6A, 0x6C, 0xEA, 0xF8, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF4, 0x48, 0x9A, 0x40, 0xEA, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0xE0, 0xF3, 0x40, 0x9A, 0x04, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF7, -0xBC, 0x9A, 0x00, 0x6A, 0x00, 0xF3, 0x01, 0x6C, -0x40, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, -0x60, 0x9A, 0x8B, 0xEC, 0x01, 0x6E, 0x40, 0x9B, -0x02, 0x37, 0x8C, 0xEA, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF0, 0x44, 0x9A, 0x03, 0x6B, -0xE2, 0x34, 0xC0, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF0, 0x4C, 0x9A, 0x60, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF0, 0x54, 0x9A, 0x52, 0x6B, -0x60, 0xC2, 0xFF, 0x6B, 0x6C, 0xEC, 0x6C, 0xEF, -0x6C, 0xE8, 0x80, 0xC2, 0xE0, 0xC2, 0x00, 0xC2, -0xC0, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, -0x58, 0x9A, 0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, -0xF8, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, -0x48, 0x9A, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, -0x01, 0x6A, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0xE0, 0xF3, 0x40, 0x9A, 0x04, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF7, -0xBC, 0x9A, 0x00, 0x6A, 0x00, 0xF3, 0x01, 0x6C, -0x40, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, -0x60, 0x9A, 0x8B, 0xEC, 0x01, 0x6E, 0x40, 0x9B, -0x02, 0x37, 0x8C, 0xEA, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF0, 0x44, 0x9A, 0x03, 0x6B, -0xE2, 0x34, 0xC0, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF0, 0x4C, 0x9A, 0x60, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF0, 0x54, 0x9A, 0x20, 0x6B, -0x60, 0xC2, 0xFF, 0x6B, 0x6C, 0xEC, 0x6C, 0xEF, -0x6C, 0xE8, 0x80, 0xC2, 0xE0, 0xC2, 0x00, 0xC2, -0xC0, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, -0x58, 0x9A, 0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, -0xF8, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, -0x48, 0x9A, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, -0x01, 0x6A, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, 0x40, 0x9A, -0x09, 0xD5, 0x04, 0x67, 0x26, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF7, 0x5C, 0x9A, -0x00, 0x6B, 0x00, 0xF3, 0x01, 0x6C, 0x60, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, 0x60, 0x9A, -0x8B, 0xEC, 0x40, 0x9B, 0x8C, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, 0x44, 0x9A, -0x01, 0x6B, 0xFF, 0x6C, 0x60, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF0, 0x4C, 0x9A, 0x03, 0x6B, -0x60, 0xC2, 0x02, 0x6B, 0x00, 0xF6, 0x00, 0x32, -0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF3, -0x7C, 0x9B, 0x0C, 0xEB, 0x62, 0x33, 0x62, 0x33, -0x8C, 0xEB, 0x60, 0x33, 0x6D, 0xEA, 0x1F, 0xF7, -0x00, 0x6B, 0x0C, 0xEB, 0x60, 0x33, 0x6D, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, 0x74, 0x9B, -0x00, 0x6C, 0x40, 0xDB, 0x71, 0x67, 0xA2, 0xA3, -0x41, 0xA3, 0x04, 0x4C, 0xA0, 0x35, 0xA0, 0x35, -0x40, 0x32, 0xAD, 0xEA, 0xA0, 0xA3, 0x0C, 0x74, -0xAD, 0xEA, 0xA3, 0xA3, 0x04, 0x4B, 0x00, 0xF6, -0xA0, 0x35, 0xAD, 0xEA, 0x30, 0xF0, 0x20, 0x6D, -0x03, 0xF0, 0xB4, 0x9D, 0x40, 0xDD, 0xEB, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF7, 0x5C, 0x9A, -0x01, 0x6B, 0x60, 0xC2, 0x0C, 0x6A, 0x08, 0x10, -0x4D, 0xE1, 0x80, 0x9B, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF0, 0x74, 0x9B, 0x04, 0x4A, 0x80, 0xDB, -0x09, 0x93, 0x63, 0xEA, 0xF5, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF0, 0x58, 0x9A, 0x60, 0xA2, -0x01, 0x6A, 0x6C, 0xEA, 0xF8, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF4, 0x48, 0x9A, 0x40, 0xEA, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x01, 0x6A, -0x04, 0x63, 0x00, 0xEF, 0xFF, 0x63, 0x01, 0xD1, -0x00, 0xD0, 0x00, 0x6B, 0x04, 0xD6, 0x63, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF7, 0x5C, 0x9A, -0x00, 0x6E, 0x30, 0xF0, 0x20, 0x6F, 0xC0, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, 0xC0, 0x9A, -0xC2, 0xF4, 0xF0, 0x9F, 0x11, 0x5D, 0x40, 0x9E, -0xEC, 0xEA, 0x00, 0xF3, 0x00, 0x6F, 0xED, 0xEA, -0x40, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, -0x44, 0x9A, 0x01, 0x6E, 0x30, 0xF0, 0x20, 0x6F, -0xC0, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, -0xD0, 0x9A, 0x42, 0xF5, 0xE0, 0x9F, 0x40, 0x9E, -0xEC, 0xEA, 0x40, 0xDE, 0x10, 0x6A, 0x02, 0x60, -0xFF, 0x6A, 0xAC, 0xEA, 0x30, 0xF0, 0x20, 0x6E, -0x03, 0xF0, 0xC8, 0x9E, 0x03, 0x6F, 0x82, 0x31, -0x40, 0xC6, 0x30, 0xF0, 0x20, 0x6E, 0x03, 0xF0, -0xCC, 0x9E, 0x22, 0x30, 0xE0, 0xC6, 0x30, 0xF0, -0x20, 0x6E, 0x03, 0xF0, 0xD4, 0x9E, 0xE0, 0xC6, -0xFF, 0x6F, 0xEC, 0xE8, 0xEC, 0xE9, 0x8C, 0xEF, -0x00, 0xC6, 0x20, 0xC6, 0xE0, 0xC6, 0x30, 0xF0, -0x20, 0x6E, 0xE2, 0xF7, 0xDC, 0x9E, 0x01, 0x6F, -0xE0, 0xC6, 0x30, 0xF0, 0x20, 0x6E, 0x03, 0xF0, -0xD8, 0x9E, 0xE0, 0xA6, 0x01, 0x6E, 0xEC, 0xEE, -0xF8, 0x2E, 0x04, 0x96, 0x7D, 0xE6, 0xC3, 0x67, -0x08, 0x10, 0x30, 0xF0, 0x20, 0x68, 0x03, 0xF0, -0x14, 0x98, 0x01, 0x4E, 0x00, 0xA0, 0x00, 0xC7, -0x01, 0x4F, 0x61, 0xE2, 0x03, 0xEE, 0xF5, 0x61, -0x57, 0xE5, 0x51, 0xE4, 0x66, 0x67, 0x9C, 0x2D, -0x01, 0x91, 0x00, 0x90, 0x01, 0x6A, 0x01, 0x63, -0x20, 0xE8, 0x00, 0x65, 0xDB, 0x63, 0x49, 0x62, -0x48, 0xD1, 0x47, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0xA2, 0xF3, 0x54, 0x9A, 0x4A, 0xD4, 0x25, 0x67, -0x60, 0xAA, 0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, -0x49, 0xE6, 0x5C, 0x32, 0x30, 0x4A, 0x44, 0xD2, -0x33, 0x10, 0x4A, 0x93, 0xFF, 0x6A, 0x6C, 0xEA, -0x0B, 0x22, 0x00, 0xF1, 0x00, 0x59, 0x04, 0x60, -0x2D, 0xE2, 0x00, 0xF1, 0x00, 0x5B, 0x0A, 0x61, -0xFF, 0x68, 0x01, 0x48, 0x43, 0xE0, 0x07, 0x10, -0x00, 0xF1, 0x00, 0x59, 0x03, 0x61, 0xFF, 0x68, -0x01, 0x48, 0x01, 0x10, 0x11, 0x67, 0x30, 0xF0, -0x20, 0x6A, 0x22, 0xF4, 0x68, 0x9A, 0x44, 0x92, -0x6D, 0xE2, 0x00, 0x6A, 0xA0, 0xA3, 0x04, 0x06, -0x51, 0xE6, 0x01, 0x4A, 0x03, 0xEA, 0xA0, 0xC4, -0x01, 0x4B, 0xF8, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xE0, 0xF3, 0x58, 0x9A, 0x4A, 0x94, 0xB0, 0x67, -0x07, 0xE1, 0x40, 0xEA, 0x44, 0x93, 0x4A, 0x92, -0x0D, 0xE3, 0x09, 0xE2, 0x44, 0xD3, 0x4A, 0xD2, -0xCC, 0x29, 0x49, 0x97, 0x48, 0x91, 0x47, 0x90, -0x25, 0x63, 0x00, 0xEF, 0xDB, 0x63, 0x49, 0x62, -0x48, 0xD1, 0x47, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0xA2, 0xF3, 0x54, 0x9A, 0x4A, 0xD4, 0x02, 0xF0, -0x01, 0x5D, 0x60, 0xAA, 0xFF, 0xF7, 0x1F, 0x6A, -0x05, 0x67, 0x6C, 0xEA, 0x49, 0xE6, 0x5C, 0x32, -0x44, 0xD2, 0x27, 0x61, 0x02, 0xF0, 0x00, 0x68, -0x24, 0x10, 0x00, 0xF1, 0x00, 0x58, 0x30, 0x67, -0x02, 0x61, 0xFF, 0x69, 0x01, 0x49, 0x30, 0xF0, -0x20, 0x6A, 0xE0, 0xF3, 0x5C, 0x9A, 0x4A, 0x94, -0xB1, 0x67, 0x04, 0x06, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x22, 0xF4, 0x68, 0x9A, 0x44, 0x92, -0x6D, 0xE2, 0x00, 0x6A, 0xBD, 0x67, 0x51, 0xE5, -0x90, 0xA4, 0x01, 0x4A, 0x23, 0xEA, 0x80, 0xC3, -0x01, 0x4B, 0xF8, 0x61, 0x44, 0x92, 0x4A, 0x95, -0x23, 0xE0, 0x29, 0xE2, 0x35, 0xE5, 0x44, 0xD2, -0x4A, 0xD5, 0xDB, 0x28, 0x49, 0x97, 0x48, 0x91, -0x47, 0x90, 0x25, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x68, 0xE0, 0xF3, 0x40, 0x98, -0xFF, 0x69, 0x8C, 0xE9, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x5C, 0x9A, 0x02, 0x6C, -0x40, 0xEA, 0xE0, 0xF3, 0x40, 0x98, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF7, 0x7C, 0x9A, -0x00, 0x6A, 0x00, 0xF3, 0x01, 0x6D, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, 0x80, 0x9A, -0xAB, 0xED, 0x40, 0x9C, 0xAC, 0xEA, 0x40, 0xDC, -0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF0, 0x84, 0x9C, -0x01, 0x6A, 0x3E, 0x6D, 0x40, 0xC4, 0x30, 0xF0, -0x20, 0x6C, 0x03, 0xF0, 0x8C, 0x9C, 0xAB, 0xED, -0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF0, -0x94, 0x9C, 0xA0, 0xC4, 0x20, 0xC4, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, 0x58, 0x9A, -0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, 0xF8, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x48, 0x9A, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x58, 0x9A, 0x40, 0xEA, 0x01, 0x6B, 0x4C, 0xEB, -0xF8, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, -0x40, 0x9A, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x5C, 0x9A, 0x3E, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, 0x44, 0x9A, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x48, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x01, 0x6A, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0xE0, 0xF3, 0x40, 0x98, 0xFF, 0x69, 0x8C, 0xE9, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x5C, 0x9A, 0x02, 0x6C, 0x40, 0xEA, 0xE0, 0xF3, -0x40, 0x98, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF7, 0x7C, 0x9A, 0x00, 0x6A, 0x00, 0xF3, -0x01, 0x6D, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF0, 0x80, 0x9A, 0xAB, 0xED, 0x40, 0x9C, -0xAC, 0xEA, 0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, -0x03, 0xF0, 0x84, 0x9C, 0x01, 0x6A, 0x3B, 0x6D, -0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF0, -0x8C, 0x9C, 0xAB, 0xED, 0x40, 0xC4, 0x30, 0xF0, -0x20, 0x6C, 0x03, 0xF0, 0x94, 0x9C, 0xA0, 0xC4, -0x20, 0xC4, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF0, 0x58, 0x9A, 0x60, 0xA2, 0x01, 0x6A, -0x6C, 0xEA, 0xF8, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x00, 0xF4, 0x48, 0x9A, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x58, 0x9A, 0x40, 0xEA, -0x01, 0x6B, 0x4C, 0xEB, 0xF8, 0x2B, 0x30, 0xF0, -0x20, 0x6A, 0xE0, 0xF3, 0x40, 0x9A, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x5C, 0x9A, -0x3E, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xE0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x01, 0x6A, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4B, 0xEC, 0xEA, -0x05, 0xD2, 0x06, 0xF1, 0x58, 0x9B, 0x04, 0x67, -0x0B, 0xD5, 0x06, 0xF1, 0x95, 0xA3, 0x0C, 0xD6, -0x62, 0x67, 0x00, 0x69, 0x06, 0x10, 0x01, 0x49, -0xFF, 0x6D, 0xAC, 0xE9, 0x23, 0xEC, 0x5B, 0x61, -0x63, 0xE0, 0x43, 0xE8, 0xF8, 0x60, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4B, 0x06, 0xF1, -0x56, 0xA3, 0x04, 0xD3, 0x2E, 0xEA, 0x06, 0x22, -0x91, 0x67, 0x00, 0x18, 0x18, 0xD7, 0x04, 0x92, -0x06, 0xF1, 0x36, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x89, 0xF6, 0x4D, 0xA2, 0x01, 0x72, 0x08, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, 0x4C, 0x9A, -0x00, 0xF6, 0x02, 0x31, 0x4C, 0xE8, 0x07, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, 0x4C, 0x9A, -0x03, 0xEA, 0x35, 0x61, 0x00, 0x69, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4B, 0x06, 0xF1, -0x57, 0xA3, 0x04, 0xD3, 0x2E, 0xEA, 0x06, 0x22, -0x91, 0x67, 0x00, 0x18, 0x4D, 0xD7, 0x04, 0x92, -0x06, 0xF1, 0x37, 0xC2, 0x05, 0x93, 0x06, 0x2B, -0x0B, 0x95, 0x0C, 0x96, 0x90, 0x67, 0x00, 0x18, -0x99, 0xD6, 0x1E, 0x10, 0x05, 0x92, 0x01, 0x72, -0x06, 0x61, 0x0B, 0x95, 0x0C, 0x96, 0x90, 0x67, -0x00, 0x18, 0x5A, 0xD6, 0x15, 0x10, 0x05, 0x93, -0x02, 0x73, 0x04, 0x61, 0x90, 0x67, 0x00, 0x18, -0x36, 0xD6, 0x0E, 0x10, 0x05, 0x92, 0x03, 0x72, -0x04, 0x61, 0x90, 0x67, 0x00, 0x18, 0x12, 0xD6, -0x07, 0x10, 0x05, 0x93, 0x00, 0x6A, 0x04, 0x73, -0x03, 0x60, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xDB, 0xEC, 0x01, 0x2E, -0xE5, 0xE8, 0x10, 0xEA, 0xAD, 0xE2, 0x63, 0xEE, -0x78, 0x67, 0x4B, 0xE6, 0x6B, 0xEB, 0x6C, 0xEA, -0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0xEC, 0xEA, 0x63, 0xF5, 0x08, 0x4B, -0x04, 0xD2, 0x26, 0xF1, 0x40, 0x9B, 0x0A, 0xD4, -0x91, 0xE5, 0x83, 0xEA, 0x0B, 0xD5, 0x0C, 0xD6, -0x00, 0x6A, 0x45, 0x61, 0x0A, 0x94, 0x06, 0xF1, -0xD8, 0x9B, 0x00, 0x18, 0xBD, 0xD7, 0x22, 0x67, -0x1A, 0x22, 0xA2, 0x67, 0x30, 0xF0, 0x20, 0x6A, -0x0A, 0x94, 0x42, 0xF3, 0xD8, 0x9A, 0x00, 0x18, -0xBD, 0xD7, 0x02, 0x67, 0x07, 0x22, 0x0A, 0x94, -0x0C, 0x96, 0x04, 0x97, 0xA2, 0x67, 0x00, 0x18, -0x7F, 0xD7, 0x2C, 0x22, 0x0A, 0x93, 0x0C, 0x92, -0x04, 0x97, 0x71, 0xE0, 0x17, 0xE1, 0x19, 0xE2, -0x00, 0x18, 0x7F, 0xD7, 0x23, 0x22, 0x0B, 0x92, -0x0A, 0x93, 0x37, 0xE2, 0x30, 0xF0, 0x20, 0x6A, -0x42, 0xF3, 0xD8, 0x9A, 0x6D, 0xE1, 0x83, 0x67, -0x05, 0xD3, 0x00, 0x18, 0xBD, 0xD7, 0x02, 0x67, -0x08, 0x22, 0x0C, 0x93, 0x05, 0x94, 0x04, 0x97, -0xA2, 0x67, 0x39, 0xE3, 0x00, 0x18, 0x7F, 0xD7, -0x0D, 0x22, 0x0A, 0x92, 0x0B, 0x93, 0x04, 0x97, -0x51, 0xE1, 0x0C, 0x92, 0x37, 0xE3, 0x39, 0xE0, -0x11, 0xE4, 0x17, 0xE5, 0xD9, 0xE2, 0x00, 0x18, -0x7F, 0xD7, 0x01, 0x10, 0x00, 0x6A, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x6D, 0xC5, 0x67, -0x03, 0x6F, 0x00, 0x18, 0xC3, 0xD7, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x6D, 0xC5, 0x67, 0x02, 0x6F, 0x00, 0x18, -0xC3, 0xD7, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x6F, 0x00, 0x18, -0xC3, 0xD7, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x01, 0x6F, 0x00, 0x18, -0xC3, 0xD7, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF0, 0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0x02, 0xF5, 0x90, 0x9C, 0x40, 0x9B, 0x30, 0xF0, -0x20, 0x6E, 0xC2, 0xF4, 0xDC, 0x9E, 0x8D, 0xEA, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF7, -0x7C, 0x9A, 0x00, 0x6A, 0x00, 0x6C, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x40, 0x9A, -0x80, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, -0xB0, 0x9A, 0x40, 0x9D, 0xCD, 0xEA, 0x40, 0xDD, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x44, 0x9A, -0x00, 0x6D, 0x18, 0x6E, 0x80, 0xC2, 0x01, 0x6A, -0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0x60, 0xF6, 0x84, 0x9B, 0x80, 0xF2, -0x48, 0x9A, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xE0, 0xF3, 0x48, 0x9A, 0x40, 0xEA, 0x00, 0x18, -0xBD, 0xCF, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, -0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x06, 0xF1, -0x98, 0x9A, 0x42, 0xF3, 0x78, 0x9B, 0x83, 0xEB, -0x0D, 0x60, 0x26, 0xF1, 0x65, 0xA2, 0x0A, 0x2B, -0x06, 0xF1, 0x75, 0xA2, 0x06, 0xF1, 0x9C, 0xA2, -0x78, 0xEC, 0x12, 0xEB, 0x00, 0xF6, 0x60, 0x33, -0x26, 0xF1, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0x06, 0xF1, 0x90, 0xA2, -0x01, 0x6B, 0x8D, 0xEB, 0x06, 0xF1, 0x70, 0xC2, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x0B, 0x2A, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0xA8, 0x9B, -0x30, 0xF0, 0x20, 0x6E, 0x23, 0xF0, 0xCC, 0x9E, -0x60, 0x9D, 0xCC, 0xEB, 0x0C, 0x10, 0x01, 0x72, -0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, -0xA8, 0x9B, 0x30, 0xF0, 0x20, 0x6E, 0x42, 0xF3, -0xD8, 0x9E, 0x60, 0x9D, 0xCD, 0xEB, 0x60, 0xDD, -0x05, 0x5C, 0x60, 0xF1, 0x1A, 0x60, 0x30, 0xF0, -0x20, 0x6B, 0x88, 0x34, 0xA2, 0xF2, 0x10, 0x4B, -0x8D, 0xE3, 0x60, 0x9B, 0x00, 0xEB, 0x07, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x68, 0x9A, -0x7F, 0x6A, 0x80, 0xA3, 0x12, 0x10, 0x01, 0x72, -0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0x68, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, -0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, -0x40, 0xA3, 0x80, 0x4D, 0xC0, 0x4D, 0x8C, 0xEA, -0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, -0x02, 0x72, 0x05, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF0, 0x68, 0x9A, 0x5B, 0x10, 0x03, 0x72, -0x40, 0xF1, 0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF0, 0x68, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, -0x40, 0xA3, 0x8C, 0xEA, 0xE9, 0x17, 0x07, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x70, 0x9A, -0xFB, 0x6A, 0x80, 0xA3, 0xE2, 0x17, 0x01, 0x72, -0x19, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0x88, 0x9A, 0xFF, 0x6A, 0x40, 0x6D, 0x60, 0xA4, -0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0x90, 0x9B, -0x01, 0x6D, 0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, -0x4C, 0xEB, 0x60, 0xC4, 0x60, 0xA4, 0x04, 0x6D, -0x4C, 0xEB, 0x48, 0x10, 0x02, 0x72, 0x0F, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x68, 0x9A, -0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x70, 0x9A, -0xFE, 0x6A, 0x80, 0xA3, 0xB6, 0x17, 0x03, 0x72, -0x00, 0xF1, 0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF0, 0x88, 0x9A, 0xFF, 0x6B, 0x40, 0x6D, -0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, -0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0x90, 0x9A, 0x01, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, -0x4B, 0x10, 0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF0, 0x70, 0x9A, 0x80, 0xA3, 0xBF, 0x6A, -0x98, 0x17, 0x01, 0x72, 0x1B, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF0, 0x88, 0x9A, 0xFF, 0x6A, -0x40, 0x6D, 0x60, 0xA4, 0x10, 0x6E, 0x4C, 0xEB, -0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF0, 0x90, 0x9B, 0x60, 0xA4, -0x4C, 0xEB, 0xCD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, -0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, -0x60, 0xC4, 0x20, 0xE8, 0x02, 0x72, 0x0F, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x68, 0x9A, -0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x70, 0x9A, -0xEF, 0x6A, 0x80, 0xA3, 0x6A, 0x17, 0x03, 0x72, -0xA0, 0xF0, 0x1F, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF0, 0x88, 0x9A, 0xFF, 0x6B, 0x40, 0x6D, -0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, -0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0x90, 0x9A, 0x10, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, -0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x20, 0xE8, -0x08, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0x70, 0x9A, 0xFF, 0xF3, 0x1F, 0x6A, 0x80, 0xAB, -0x83, 0x10, 0x01, 0x72, 0x1D, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF0, 0x68, 0x9A, 0xFF, 0x6C, -0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, -0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF0, 0x70, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, -0x7F, 0x4D, 0x40, 0xAB, 0x41, 0x4D, 0x8C, 0xEA, -0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xCB, 0x40, 0xAB, -0x00, 0xF3, 0x00, 0x4D, 0x8C, 0xEA, 0x51, 0x10, -0x02, 0x72, 0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF0, 0x68, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, -0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF0, 0x70, 0x9A, 0xFF, 0xF6, 0x1F, 0x6A, -0x80, 0xAB, 0x52, 0x10, 0x03, 0x72, 0x6D, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x68, 0x9A, -0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, -0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF0, 0x70, 0x9A, 0xFF, 0xF7, -0x1F, 0x6C, 0x7F, 0x4D, 0x40, 0xAB, 0x41, 0x4D, -0x8C, 0xEA, 0x27, 0x10, 0x08, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF0, 0x70, 0x9A, 0xF7, 0xF7, -0x1F, 0x6A, 0x80, 0xAB, 0x31, 0x10, 0x01, 0x72, -0x1E, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0x68, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, -0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x70, 0x9A, -0xFF, 0xF7, 0x1F, 0x6C, 0xC1, 0xF7, 0x00, 0x4D, -0x40, 0xAB, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, -0x40, 0xCB, 0x40, 0xAB, 0x06, 0xF0, 0x00, 0x4D, -0x8C, 0xEA, 0xAD, 0xEA, 0x11, 0x10, 0x02, 0x72, -0x12, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0x68, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, -0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0x70, 0x9A, 0xFD, 0xF7, 0x1F, 0x6A, 0x80, 0xAB, -0x8C, 0xEA, 0x40, 0xCB, 0x20, 0xE8, 0x03, 0x72, -0x18, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0x68, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, -0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x70, 0x9A, -0xFF, 0xF7, 0x1F, 0x6C, 0xC1, 0xF7, 0x00, 0x4D, -0x40, 0xAB, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, -0x40, 0xCB, 0x20, 0xE8, 0xFF, 0x63, 0x01, 0xD0, -0xFF, 0x6A, 0x4C, 0xED, 0x4C, 0xEE, 0x4C, 0xEF, -0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF3, 0x54, 0x9A, -0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEC, 0x00, 0xAA, -0xE1, 0xF7, 0x1F, 0x6A, 0x0C, 0xEA, 0x30, 0xF0, -0x20, 0x68, 0x23, 0xF0, 0x14, 0x98, 0x51, 0xE4, -0x6C, 0xEC, 0x80, 0xC8, 0x9C, 0x32, 0x30, 0xF0, -0x20, 0x6C, 0x23, 0xF0, 0x98, 0x9C, 0x30, 0xF0, -0x20, 0x68, 0x23, 0xF0, 0x1C, 0x98, 0x91, 0xE2, -0x80, 0xAC, 0x01, 0xE2, 0x00, 0x98, 0x6C, 0xEC, -0x05, 0x25, 0x10, 0xF0, 0x00, 0x6D, 0xAB, 0xED, -0xAD, 0xEC, 0x6C, 0xEC, 0xD8, 0xF0, 0x00, 0x6B, -0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF0, -0x98, 0x9C, 0x91, 0xE2, 0x60, 0xCC, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF0, 0x60, 0x9B, 0x6D, 0xE2, -0x80, 0xA3, 0x01, 0x6B, 0x8C, 0xEB, 0x05, 0x23, -0x03, 0xF7, 0x01, 0x6B, 0x6B, 0xEB, 0x0C, 0xEB, -0x06, 0x10, 0x1F, 0xF7, 0x01, 0x6B, 0x6B, 0xEB, -0x0C, 0xEB, 0xE0, 0x37, 0xED, 0xEB, 0xFF, 0x76, -0x13, 0x60, 0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF0, -0x84, 0x9C, 0x80, 0xF4, 0xC0, 0x36, 0x6C, 0xEC, -0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF4, 0x64, 0x9B, -0x6D, 0xEE, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, -0x7C, 0x9B, 0x8D, 0xEE, 0x6D, 0xE2, 0xC0, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x88, 0x9B, -0x7F, 0x6B, 0x91, 0xE2, 0xA0, 0xA4, 0xAC, 0xEB, -0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, -0x6C, 0x9B, 0x1C, 0x6C, 0x80, 0xC3, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF0, 0x70, 0x9B, 0x08, 0xF4, -0x13, 0x6C, 0x80, 0xCB, 0x30, 0xF0, 0x20, 0x6B, -0x02, 0xF3, 0x80, 0x9B, 0xF7, 0x6B, 0x91, 0xE2, -0xA0, 0xA4, 0xAC, 0xEB, 0x60, 0xC4, 0x01, 0x90, -0x01, 0x63, 0x20, 0xE8, 0xFB, 0x63, 0x09, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF3, 0x7C, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0x62, 0xF3, 0x84, 0x9C, -0x40, 0x9B, 0x10, 0x6D, 0x00, 0x6E, 0x8D, 0xEA, -0x40, 0xDB, 0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, 0x00, 0xF4, -0x1D, 0x6C, 0x82, 0xF3, 0x08, 0x6F, 0x40, 0xEA, -0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x74, 0x9B, -0xFF, 0x6A, 0x4C, 0xED, 0x6D, 0xE4, 0xC0, 0xA3, -0x3F, 0x6C, 0xCC, 0xEC, 0x80, 0xC3, 0x07, 0x2D, -0x80, 0xA3, 0x40, 0x6D, 0x4C, 0xEC, 0xAD, 0xEC, -0x4C, 0xEC, 0x80, 0xC3, 0x20, 0xE8, 0x01, 0x75, -0x07, 0x61, 0x80, 0xA3, 0x80, 0x6D, 0xAB, 0xED, -0x4C, 0xEC, 0xAD, 0xEC, 0x4C, 0xEC, 0x80, 0xC3, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF0, 0x78, 0x9B, 0xFF, 0x6A, 0xAC, 0xEA, -0x6D, 0xE4, 0x80, 0x9B, 0x80, 0xF4, 0x40, 0x32, -0x8D, 0xEA, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, -0xFF, 0x63, 0x01, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x22, 0xF4, 0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6E, -0x43, 0xF0, 0xDC, 0x9E, 0x6D, 0xE4, 0x40, 0x9B, -0x30, 0xF0, 0x20, 0x68, 0x63, 0xF0, 0x04, 0x98, -0xCC, 0xEA, 0x30, 0xF0, 0x20, 0x6E, 0x63, 0xF0, -0xC0, 0x9E, 0xCD, 0xEA, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x22, 0xF6, 0xE8, 0x9A, 0x83, 0xF7, -0x00, 0x6A, 0x4B, 0xEA, 0xFD, 0xE4, 0x60, 0x9F, -0x7F, 0x6E, 0x4C, 0xEB, 0x43, 0xA5, 0xCC, 0xEA, -0x0D, 0xEA, 0x6D, 0xEA, 0x40, 0xDF, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF0, 0x68, 0x9A, 0x30, 0xF0, -0x20, 0x6F, 0x02, 0xF5, 0xF0, 0x9F, 0x6D, 0xE4, -0x40, 0x9B, 0xED, 0xEA, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF0, 0x6C, 0x9A, 0xFF, 0x6F, -0x01, 0x4F, 0x6D, 0xE4, 0x40, 0x9B, 0xED, 0xEA, -0x3F, 0xF6, 0x1F, 0x4F, 0xEC, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x5C, 0x9A, -0x49, 0xE4, 0x60, 0x9A, 0x40, 0xA5, 0xCC, 0xEA, -0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, -0x40, 0x9A, 0x49, 0xE4, 0xC0, 0xA2, 0x01, 0x6A, -0xCC, 0xEA, 0x05, 0x22, 0x03, 0xF7, 0x01, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0x07, 0x10, 0x1F, 0xF7, -0x01, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x61, 0xA5, -0x60, 0x33, 0x6D, 0xEA, 0xC2, 0xA5, 0xFF, 0x76, -0x0D, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, -0x64, 0x9B, 0x4C, 0xEB, 0x80, 0xF4, 0xC0, 0x32, -0x30, 0xF0, 0x20, 0x6E, 0x22, 0xF4, 0xC4, 0x9E, -0xCD, 0xEA, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF0, 0x7C, 0x9B, 0x6D, 0xE4, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF0, 0xD0, 0x9A, -0x02, 0xF0, 0x00, 0x6B, 0x6B, 0xEB, 0xD9, 0xE4, -0x40, 0x9E, 0x6C, 0xEA, 0x62, 0xAD, 0xE1, 0xF7, -0x1F, 0x6D, 0xAC, 0xEB, 0x6D, 0xEA, 0x40, 0xDE, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x78, 0x9A, -0x0E, 0xF0, 0x01, 0x4D, 0x6D, 0xE4, 0x40, 0x9B, -0xAD, 0xEA, 0xC8, 0xF0, 0x00, 0x4D, 0xAC, 0xEA, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, -0x48, 0x9A, 0x51, 0xE4, 0x60, 0xA4, 0x7F, 0x6A, -0x6C, 0xEA, 0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF0, 0x4C, 0x9A, 0x1C, 0x6B, 0x60, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, 0x50, 0x9A, -0x08, 0xF4, 0x13, 0x6B, 0x60, 0xCA, 0x01, 0x90, -0x01, 0x63, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xEC, -0xAC, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF0, 0x54, 0x9A, 0x8C, 0x34, 0x30, 0xF0, -0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, 0x62, 0xF3, -0x64, 0x9B, 0x6D, 0xEA, 0x0C, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF0, 0x54, 0x9A, 0x8C, 0x34, -0x30, 0xF0, 0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, -0x82, 0xF3, 0x60, 0x9B, 0x6C, 0xEA, 0x40, 0xDC, -0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, -0xAC, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF0, 0x54, 0x9A, 0x8C, 0x34, 0x30, 0xF0, -0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, 0xA2, 0xF3, -0x6C, 0x9B, 0x6D, 0xEA, 0x0C, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF0, 0x54, 0x9A, 0x8C, 0x34, -0x30, 0xF0, 0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, -0xA2, 0xF3, 0x70, 0x9B, 0x6C, 0xEA, 0x40, 0xDC, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0xFF, 0x6B, 0x63, 0xF0, 0x54, 0x9A, 0x6C, 0xEC, -0x8C, 0x34, 0x51, 0xE4, 0x40, 0x9C, 0x01, 0x6C, -0x40, 0xF7, 0x42, 0x32, 0x8C, 0xEA, 0x6C, 0xEA, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0xFF, 0x6B, 0x63, 0xF0, 0x54, 0x9A, 0x6C, 0xEC, -0x8C, 0x34, 0x51, 0xE4, 0x40, 0x9C, 0x01, 0x6C, -0x00, 0xF7, 0x42, 0x32, 0x8C, 0xEA, 0x6C, 0xEA, -0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x00, 0x68, 0x90, 0x67, 0x00, 0x6D, -0x00, 0x18, 0xBD, 0xD9, 0x90, 0x67, 0x01, 0x6D, -0x01, 0x48, 0x00, 0x18, 0xCD, 0xD9, 0x0B, 0x70, -0xF5, 0x61, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, -0x0C, 0x6B, 0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, -0x0A, 0x69, 0x12, 0xED, 0x4C, 0xED, 0x04, 0xD5, -0xFF, 0x68, 0x2C, 0xE8, 0x90, 0x67, 0x00, 0x18, -0xDD, 0xD9, 0x17, 0x2A, 0xFF, 0x49, 0x00, 0xF6, -0x20, 0x31, 0x90, 0x67, 0x01, 0x6D, 0x00, 0xF6, -0x23, 0x31, 0x00, 0x18, 0xCD, 0xD9, 0x41, 0x41, -0xEF, 0x2A, 0x01, 0x69, 0x2B, 0xE9, 0x09, 0x10, -0x04, 0x94, 0xFF, 0x49, 0x00, 0x6D, 0x00, 0xF6, -0x20, 0x31, 0x00, 0x18, 0xCD, 0xD9, 0x00, 0xF6, -0x23, 0x31, 0x00, 0x51, 0xF5, 0x60, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFF, 0x6A, 0x0C, 0x68, 0x4C, 0xEC, 0x1B, 0xEC, -0x01, 0x28, 0xE5, 0xE8, 0x4C, 0xED, 0x10, 0xE9, -0x4C, 0xE9, 0x12, 0xE8, 0x4C, 0xE8, 0x0F, 0x25, -0x90, 0x67, 0x01, 0x6D, 0x00, 0x18, 0xBD, 0xD9, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x04, 0x4A, -0x41, 0xE0, 0x60, 0xA0, 0x01, 0x6A, 0x44, 0xE9, -0x6D, 0xEA, 0x40, 0xC0, 0x11, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF0, 0x04, 0x4A, 0x49, 0xE0, -0x80, 0xA2, 0x01, 0x6B, 0x64, 0xE9, 0x6F, 0xEB, -0x8C, 0xEB, 0x60, 0xC2, 0x40, 0xA2, 0x04, 0x2A, -0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, 0xBD, 0xD9, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0x24, 0x67, -0x0C, 0xE9, 0xAC, 0xE8, 0x91, 0x67, 0xB0, 0x67, -0x00, 0x18, 0x10, 0xDA, 0x91, 0x67, 0xB0, 0x67, -0x00, 0x18, 0xF7, 0xD9, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x0C, 0x6B, 0x7B, 0xED, 0x01, 0x2B, 0xE5, 0xE8, -0x05, 0x6E, 0xFF, 0x6A, 0x4C, 0xEC, 0x10, 0xEB, -0x12, 0xED, 0x4C, 0xED, 0xD8, 0xEB, 0x12, 0xEB, -0x4C, 0xEB, 0x1E, 0x73, 0x1D, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF0, 0x78, 0x9A, 0xAC, 0x35, -0x30, 0xF0, 0x20, 0x6E, 0x6D, 0xE5, 0x40, 0x9B, -0x63, 0xF0, 0xDC, 0x9E, 0xCC, 0xEA, 0x80, 0xF7, -0x80, 0x36, 0xCD, 0xEA, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF0, 0x54, 0x9A, 0x08, 0x6B, -0x6B, 0xEB, 0x55, 0xE5, 0x40, 0x9D, 0x8A, 0x34, -0x6C, 0xEA, 0x07, 0x6B, 0x6C, 0xEC, 0x1E, 0x10, -0x20, 0x5B, 0x0C, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF0, 0x58, 0x9A, 0x1F, 0x6E, 0xAC, 0x35, -0xE6, 0x67, 0x55, 0xE5, 0xE4, 0xEB, 0x40, 0x9D, -0xEF, 0xEF, 0x0D, 0x10, 0xE0, 0x4B, 0x4C, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF0, 0x54, 0x9A, -0xAC, 0x35, 0x1F, 0x6E, 0x55, 0xE5, 0xE0, 0x9D, -0x46, 0x67, 0x44, 0xEB, 0x4F, 0xEA, 0xCC, 0xEC, -0xEC, 0xEA, 0x84, 0xEB, 0x8D, 0xEA, 0x40, 0xDD, -0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0x2C, 0xEC, -0xCC, 0xE9, 0x05, 0x67, 0x01, 0x29, 0x00, 0x6C, -0xB0, 0x67, 0x00, 0x18, 0x36, 0xDA, 0xFF, 0x6C, -0x0C, 0xEC, 0xB1, 0x67, 0x00, 0x18, 0x2B, 0xDA, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xAE, 0xEC, 0x01, 0x6A, -0x8C, 0xEA, 0x20, 0xE8, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, -0x06, 0xD2, 0x05, 0xD4, 0x00, 0x69, 0x1F, 0x68, -0x22, 0x10, 0x05, 0x92, 0x40, 0xA2, 0x07, 0xD2, -0x00, 0x6A, 0x04, 0xD2, 0x04, 0x92, 0x07, 0x94, -0x12, 0x35, 0x87, 0xEA, 0xFF, 0x6A, 0x4C, 0xEC, -0x00, 0x18, 0x69, 0xDA, 0x06, 0x22, 0xFF, 0x6A, -0x04, 0x30, 0x4C, 0xE8, 0x05, 0x6A, 0x4E, 0xE8, -0x01, 0x10, 0x04, 0x30, 0xFF, 0x6A, 0x4C, 0xE8, -0x04, 0x92, 0x01, 0x4A, 0x08, 0x72, 0x04, 0xD2, -0xE9, 0x61, 0xFF, 0x6A, 0x01, 0x49, 0x4C, 0xE9, -0x05, 0x92, 0x01, 0x4A, 0x05, 0xD2, 0x06, 0x92, -0x43, 0xE9, 0xDB, 0x61, 0x1F, 0x6A, 0x4E, 0xE8, -0x0C, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x60, 0xA4, 0x01, 0x6A, 0x04, 0x67, -0x6C, 0xEA, 0x44, 0x22, 0x66, 0x32, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF0, 0x60, 0x9B, 0x54, 0x32, -0x69, 0xE2, 0x61, 0xA4, 0x60, 0xC2, 0x40, 0xA4, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0x64, 0x9B, -0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x62, 0xA4, -0x60, 0xC2, 0x40, 0xA4, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF0, 0x68, 0x9B, 0x46, 0x32, 0x54, 0x32, -0x69, 0xE2, 0x63, 0xA4, 0x60, 0xC2, 0x40, 0xA4, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0x6C, 0x9B, -0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x64, 0xA4, -0x60, 0xC2, 0x40, 0xA4, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF0, 0x70, 0x9B, 0x46, 0x32, 0x54, 0x32, -0x69, 0xE2, 0x65, 0xA4, 0x60, 0xC2, 0x40, 0xA4, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0x74, 0x9B, -0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x66, 0xA4, -0x10, 0xF0, 0x00, 0x6C, 0x60, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF0, 0x78, 0x9A, 0x40, 0x9B, -0x8D, 0xEA, 0x40, 0xDB, 0x81, 0x40, 0x06, 0x6D, -0x00, 0x18, 0x6B, 0xDA, 0x60, 0xA0, 0x01, 0x6E, -0x82, 0x67, 0x66, 0x35, 0x6C, 0xEE, 0x00, 0x18, -0x5D, 0xDA, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0xED, 0xD9, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF0, 0x7C, 0x9A, 0xFF, 0xF7, 0x1F, 0x6A, -0x80, 0xAB, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, -0x42, 0xF3, 0x80, 0x9C, 0x8D, 0xEA, 0x40, 0xDB, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x4A, 0xDD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0x00, 0x6B, 0xA2, 0xF4, 0x77, 0xC2, 0xA2, 0xF4, -0x78, 0xC2, 0xA2, 0xF4, 0x76, 0xC2, 0x00, 0x6B, -0xA2, 0xF4, 0x74, 0xCA, 0x20, 0xE8, 0x00, 0x65, -0xFC, 0x63, 0x07, 0xD1, 0x06, 0xD0, 0xFF, 0x6A, -0xCC, 0xEA, 0x08, 0xD4, 0x03, 0xD2, 0xE1, 0x9C, -0x00, 0x68, 0x00, 0x69, 0xA3, 0xEF, 0x40, 0x9C, -0x00, 0xD0, 0x01, 0xD1, 0x0A, 0x61, 0xBB, 0xEF, -0x01, 0x2D, 0xE5, 0xE8, 0x00, 0x69, 0x00, 0xD1, -0x12, 0xEB, 0x01, 0xD3, 0xB8, 0xEB, 0x12, 0xEB, -0x7F, 0xE7, 0xC5, 0x67, 0x00, 0x6B, 0x01, 0x6C, -0x00, 0x6D, 0x0C, 0x10, 0xC4, 0x30, 0xC3, 0xE8, -0x64, 0x33, 0xD0, 0x67, 0x18, 0x67, 0x6D, 0xE0, -0x84, 0x30, 0x83, 0xE8, 0x38, 0x67, 0xA4, 0x34, -0x95, 0xE1, 0x90, 0x67, 0x01, 0x53, 0x02, 0x60, -0x07, 0x2B, 0x06, 0x26, 0xE3, 0xEB, 0xEE, 0x61, -0x6A, 0xEF, 0x02, 0x61, 0x43, 0xEE, 0xEA, 0x61, -0x63, 0xEF, 0x18, 0x61, 0xEA, 0xEB, 0x02, 0x61, -0xC3, 0xEA, 0x14, 0x61, 0x00, 0x91, 0xC3, 0xE2, -0x03, 0xEA, 0x7F, 0xE7, 0x50, 0x67, 0x18, 0x67, -0x1F, 0xE7, 0x81, 0xE1, 0x23, 0xE8, 0x01, 0x91, -0x00, 0xD0, 0x18, 0x67, 0xA5, 0xE1, 0x21, 0xE0, -0x02, 0xD0, 0x04, 0xD1, 0x00, 0x90, 0x02, 0x91, -0x00, 0xD0, 0x01, 0xD1, 0x86, 0x30, 0xC0, 0xF7, -0xA0, 0x31, 0x0D, 0xE9, 0x19, 0x65, 0xA6, 0x31, -0x98, 0x67, 0x11, 0x67, 0x8D, 0xE8, 0x02, 0xD1, -0xB1, 0x67, 0x06, 0x20, 0xC0, 0xF7, 0x60, 0x30, -0xC6, 0x36, 0x0D, 0xEE, 0x66, 0x33, 0xD4, 0x17, -0x03, 0x93, 0x01, 0x73, 0x05, 0x61, 0x00, 0x94, -0x01, 0x95, 0x08, 0x90, 0x80, 0xD8, 0xA1, 0xD8, -0x07, 0x91, 0x06, 0x90, 0x04, 0x63, 0x20, 0xE8, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x30, 0xF0, 0x20, 0x69, 0x40, 0xF4, 0x4C, 0x99, -0xFF, 0x68, 0x8C, 0xE8, 0x0D, 0xD5, 0x90, 0x67, -0x01, 0x6D, 0x40, 0xEA, 0x06, 0xD2, 0x40, 0xF4, -0x4C, 0x99, 0x90, 0x67, 0x00, 0x6D, 0x40, 0xEA, -0x04, 0xD2, 0x0D, 0x95, 0x06, 0x92, 0x04, 0x04, -0x00, 0x6E, 0x05, 0xD2, 0x80, 0x18, 0x08, 0x00, -0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x02, 0xF3, 0x4C, 0x9A, 0xFF, 0x6B, 0x80, 0xA2, -0x00, 0xF6, 0x80, 0x34, 0x00, 0xF6, 0x83, 0x34, -0x00, 0x54, 0x25, 0x60, 0xA0, 0xA2, 0x7F, 0x6C, -0xAC, 0xEC, 0x40, 0x6D, 0xAD, 0xEC, 0x6C, 0xEC, -0x80, 0xC2, 0x30, 0xF0, 0x20, 0x6C, 0x02, 0xF3, -0x90, 0x9C, 0x3F, 0x6D, 0x80, 0xA4, 0x30, 0xF0, -0x20, 0x6C, 0x02, 0xF3, 0x94, 0x9C, 0x80, 0xA4, -0x30, 0xF0, 0x20, 0x6C, 0x02, 0xF3, 0x98, 0x9C, -0x80, 0xA4, 0x30, 0xF0, 0x20, 0x6C, 0x02, 0xF3, -0x9C, 0x9C, 0x80, 0xA4, 0x80, 0xA2, 0x6C, 0xEC, -0xAD, 0xEC, 0x6C, 0xEC, 0x80, 0xC2, 0x80, 0xA2, -0xBF, 0x6B, 0x8C, 0xEB, 0x60, 0xC2, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF3, 0x60, 0x9B, -0xFF, 0x6A, 0x4C, 0xEC, 0xC0, 0xA3, 0x4C, 0xED, -0x15, 0x26, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, -0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF3, -0x88, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0x23, 0xF3, 0x70, 0x9A, 0x8D, 0xEB, 0x23, 0xF3, -0x70, 0xDA, 0x20, 0xE8, 0x80, 0xC3, 0x0B, 0x25, -0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF3, 0x8C, 0x9B, -0x80, 0x6D, 0xAB, 0xED, 0x60, 0xA4, 0x4C, 0xEB, -0xAE, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x20, 0xE8, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF2, 0x6C, 0x9B, -0x30, 0xF0, 0x20, 0x69, 0xE3, 0xF4, 0x4C, 0x99, -0xE0, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF3, -0x70, 0x9B, 0x50, 0x32, 0x6D, 0xE2, 0xE0, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF3, 0x74, 0x9B, -0x6D, 0xE2, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x22, 0xF3, 0x78, 0x9B, 0x6D, 0xE2, 0xA0, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF3, 0x7C, 0x9B, -0x69, 0xE2, 0xC0, 0xDA, 0xE3, 0xF4, 0x0C, 0x99, -0x01, 0x48, 0x00, 0xF1, 0x00, 0x70, 0xE3, 0xF4, -0x0C, 0xD9, 0x05, 0x60, 0x00, 0xF2, 0x00, 0x6A, -0x4E, 0xE8, 0x06, 0x20, 0x0B, 0x10, 0x10, 0x6C, -0x01, 0x6D, 0x80, 0x18, 0x68, 0x00, 0x06, 0x10, -0x11, 0x6C, 0x01, 0x6D, 0x80, 0x18, 0x68, 0x00, -0xE3, 0xF4, 0x0C, 0xD9, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x00, 0x6A, 0x0B, 0xD7, -0xE0, 0xAE, 0x1F, 0xF7, 0x00, 0x6B, 0xEC, 0xEB, -0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x09, 0x2B, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xAE, 0xE2, 0xF2, -0x78, 0x9B, 0x6D, 0xE7, 0xE0, 0xA4, 0xE0, 0xC3, -0x07, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF2, -0x7C, 0x9B, 0x7D, 0xE7, 0x60, 0xA4, 0x60, 0xC7, -0x01, 0x4A, 0xFF, 0x6B, 0x6C, 0xEA, 0x03, 0x72, -0x02, 0x4E, 0x01, 0x4C, 0xE1, 0x61, 0x25, 0x67, -0x00, 0x68, 0x0B, 0x92, 0xC0, 0x99, 0x01, 0x6D, -0x0D, 0xE2, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x44, 0x9A, 0x80, 0xAB, 0xAB, 0xED, 0x02, 0x48, -0x40, 0xEA, 0x16, 0x70, 0x04, 0x49, 0xF1, 0x61, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0x00, 0x6B, 0xE7, 0xF5, -0x6C, 0xC2, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, -0xFB, 0x63, 0x09, 0xD1, 0x08, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, 0x27, 0xF2, -0x6A, 0xA2, 0x79, 0x2B, 0x01, 0x6B, 0x27, 0xF2, -0x79, 0xC2, 0x27, 0xF2, 0x7A, 0xC2, 0x30, 0xF0, -0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6B, 0xCB, 0xF0, -0x00, 0x4C, 0xCA, 0xF7, 0x08, 0x4B, 0x00, 0x6A, -0x00, 0x6D, 0xA0, 0xDC, 0x60, 0xF7, 0xCE, 0x42, -0x30, 0xF0, 0x20, 0x6D, 0x63, 0xF5, 0x08, 0x4D, -0xCC, 0x36, 0xD9, 0xE5, 0x04, 0xD6, 0xD1, 0xF6, -0xCA, 0x42, 0xC8, 0x36, 0xD9, 0xE5, 0x03, 0xD6, -0x06, 0x6E, 0xD8, 0xEA, 0x01, 0xD3, 0x12, 0xEE, -0xD9, 0xE5, 0xC7, 0xF5, 0x11, 0x4E, 0x00, 0x6D, -0x04, 0x90, 0x00, 0x6F, 0xE0, 0xD8, 0x03, 0x90, -0xE0, 0xC8, 0x44, 0x30, 0x01, 0xE5, 0xA3, 0xF5, -0x08, 0x48, 0x30, 0xF0, 0x20, 0x6F, 0x04, 0x30, -0x63, 0xF5, 0x08, 0x4F, 0x1D, 0xE7, 0x05, 0xD7, -0x01, 0x97, 0x00, 0x68, 0x00, 0xD0, 0x02, 0xD7, -0x05, 0x90, 0x01, 0x6F, 0x44, 0x31, 0xE0, 0xC0, -0x00, 0x97, 0xA5, 0xE1, 0x24, 0x31, 0x25, 0xE7, -0xA0, 0xF3, 0x05, 0x41, 0x30, 0xF0, 0x20, 0x6F, -0xA0, 0xF3, 0x0D, 0x49, 0x63, 0xF5, 0x08, 0x4F, -0x10, 0x30, 0x30, 0x31, 0x01, 0xE7, 0x25, 0xE7, -0x06, 0xD2, 0x02, 0x92, 0x00, 0x6F, 0xE0, 0xC8, -0x02, 0x48, 0x4A, 0xE8, 0xE0, 0xC9, 0x02, 0x49, -0xF8, 0x61, 0x00, 0x90, 0x06, 0x92, 0x01, 0x48, -0x00, 0xD0, 0x05, 0x90, 0x01, 0x48, 0x05, 0xD0, -0x02, 0x90, 0x10, 0x48, 0x02, 0xD0, 0x00, 0x90, -0x02, 0x70, 0xD6, 0x61, 0xE0, 0xC6, 0xE1, 0xC6, -0xE2, 0xC6, 0x04, 0x97, 0x03, 0x90, 0x01, 0x4D, -0x04, 0x4F, 0x04, 0xD7, 0x01, 0x97, 0x02, 0x48, -0x02, 0x75, 0x20, 0x4F, 0x03, 0xD0, 0x03, 0x4E, -0x01, 0xD7, 0xB2, 0x61, 0x01, 0x4A, 0x02, 0x72, -0x04, 0x4C, 0x40, 0x4B, 0x95, 0x61, 0x09, 0x91, -0x08, 0x90, 0x05, 0x63, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF3, 0xF0, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0xCA, 0xF4, 0x08, 0x4C, 0x00, 0x6D, 0x18, 0x6E, -0x80, 0x18, 0xBA, 0x46, 0x30, 0xF0, 0x20, 0x6B, -0x01, 0xF4, 0x00, 0x6C, 0x63, 0xF5, 0x08, 0x4B, -0x4C, 0xEC, 0x67, 0xF3, 0x40, 0xDB, 0x82, 0x32, -0x4A, 0x32, 0x02, 0x72, 0x0A, 0x60, 0x03, 0x6C, -0x4E, 0xEC, 0x04, 0x24, 0x01, 0x72, 0x02, 0x6A, -0x05, 0x60, 0x06, 0x10, 0x27, 0xF2, 0x89, 0xC3, -0x03, 0x10, 0x01, 0x6A, 0x27, 0xF2, 0x49, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, 0x6C, 0x9B, -0x67, 0xF3, 0x80, 0x9A, 0x8C, 0xEB, 0x62, 0x33, -0x62, 0x33, 0x27, 0xF2, 0x68, 0xC2, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x00, 0x68, 0x05, 0xD5, -0x04, 0xD4, 0x05, 0x92, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF3, 0x10, 0x4B, 0xE0, 0x9B, 0xC0, 0xA2, -0x30, 0xF0, 0x20, 0x69, 0xCA, 0xF4, 0x08, 0x49, -0x91, 0x67, 0x00, 0x6D, 0x80, 0x18, 0xBA, 0x46, -0x04, 0x93, 0x91, 0x67, 0x01, 0x6D, 0x40, 0xDB, -0x05, 0x92, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, -0x10, 0x4B, 0xE0, 0x9B, 0xC0, 0xA2, 0x01, 0x48, -0x80, 0x18, 0xBA, 0x46, 0x04, 0x93, 0x41, 0xDB, -0xFF, 0x6A, 0x4C, 0xE8, 0x05, 0x92, 0x08, 0x4B, -0x03, 0x70, 0x01, 0x4A, 0x05, 0xD2, 0x04, 0xD3, -0xD8, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0xAC, 0xE9, -0x00, 0x68, 0x85, 0xF5, 0x1C, 0x6C, 0xFF, 0x6D, -0x80, 0x18, 0x1F, 0x14, 0x55, 0x72, 0x0C, 0x61, -0x00, 0x6A, 0x15, 0x21, 0x30, 0xF0, 0x20, 0x6A, -0x62, 0xF3, 0xB8, 0x9A, 0x03, 0xF3, 0x08, 0x6C, -0x80, 0x18, 0x1F, 0x14, 0x00, 0x6A, 0x0B, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, -0x01, 0x6C, 0x01, 0x48, 0x40, 0xEA, 0xFF, 0xF7, -0x1F, 0x6A, 0x4C, 0xE8, 0x01, 0x6A, 0x32, 0x58, -0x01, 0x60, 0xDF, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF3, 0x10, 0x6C, -0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x00, 0x6A, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, -0xAC, 0xEA, 0x01, 0x72, 0x05, 0xD4, 0x24, 0x61, -0x44, 0x67, 0x04, 0x4A, 0x01, 0x68, 0x30, 0xF0, -0x20, 0x69, 0x04, 0xEA, 0x00, 0xF2, 0x08, 0x6A, -0x4D, 0xE8, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, -0xD0, 0x67, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, -0xAB, 0xED, 0xC1, 0x40, 0x03, 0xF3, 0x00, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x48, 0x9A, 0x01, 0x6C, 0x40, 0xEA, 0x05, 0x94, -0x01, 0x6D, 0x80, 0x18, 0x3F, 0x01, 0xD2, 0x10, -0x02, 0x72, 0x01, 0x6A, 0xC0, 0xF0, 0x0E, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x8A, 0xF7, 0x56, 0xA2, -0x00, 0x68, 0x09, 0x72, 0x0C, 0x60, 0x12, 0x72, -0x01, 0x68, 0x09, 0x60, 0x1B, 0x72, 0x02, 0x68, -0x06, 0x60, 0x24, 0x68, 0x4E, 0xE8, 0x01, 0x58, -0x18, 0x67, 0x04, 0x6A, 0x03, 0xE2, 0x05, 0x92, -0x30, 0xF0, 0x20, 0x69, 0x01, 0x6D, 0x44, 0x32, -0x07, 0xD2, 0x07, 0x93, 0x08, 0x6A, 0x03, 0xF3, -0x00, 0x6C, 0x4D, 0xEB, 0xC0, 0xF3, 0x44, 0x99, -0xC3, 0x67, 0x07, 0xD3, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF5, 0x08, 0x4C, -0x04, 0xD4, 0x04, 0x93, 0xC0, 0xF3, 0x44, 0x99, -0x01, 0x6D, 0x27, 0xF2, 0xCE, 0xA3, 0xC3, 0xF3, -0x0C, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x05, 0x92, -0x01, 0x6C, 0x01, 0x6D, 0x04, 0x4A, 0x84, 0xEA, -0x00, 0xF3, 0x08, 0x6A, 0x4D, 0xEC, 0x06, 0xD4, -0xC0, 0xF3, 0x44, 0x99, 0x06, 0x96, 0x03, 0xF3, -0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x06, 0x96, -0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0xAB, 0xED, -0x01, 0x4E, 0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, -0x02, 0x6C, 0x40, 0xEA, 0x05, 0x94, 0x01, 0x6D, -0x80, 0x18, 0x3F, 0x01, 0x01, 0x72, 0x0A, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF1, 0x1C, 0x4A, -0x41, 0xE0, 0x40, 0xA0, 0x04, 0x93, 0x27, 0xF2, -0x4E, 0xC3, 0x6B, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x05, 0x95, 0xE2, 0xF3, 0xF0, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0xCA, 0xF4, 0x08, 0x4C, 0x00, 0x6E, -0x80, 0x18, 0xBA, 0x46, 0x05, 0xD2, 0x07, 0x96, -0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0x03, 0xF3, -0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x05, 0x94, -0xE3, 0xF7, 0x00, 0x6A, 0x04, 0x93, 0x8C, 0xEA, -0x56, 0x34, 0x96, 0x32, 0x27, 0xF2, 0x50, 0xDB, -0x1F, 0x6A, 0x8C, 0xEA, 0x02, 0x5A, 0xFF, 0x6B, -0x0B, 0x60, 0x03, 0x70, 0x03, 0x60, 0x01, 0x48, -0x6C, 0xE8, 0x49, 0x10, 0x04, 0x94, 0x01, 0x6B, -0x03, 0x68, 0xE7, 0xF5, 0x65, 0xC4, 0x43, 0x10, -0x0A, 0x5A, 0x0B, 0x61, 0x04, 0x20, 0xFF, 0x48, -0x6C, 0xE8, 0x01, 0x6B, 0x0B, 0x10, 0x04, 0x94, -0x01, 0x6B, 0xE7, 0xF5, 0x65, 0xC4, 0x01, 0x6B, -0x09, 0x10, 0x04, 0x94, 0x00, 0x6B, 0xE7, 0xF5, -0x65, 0xC4, 0x00, 0x6B, 0x03, 0x20, 0x04, 0x58, -0x01, 0x61, 0x03, 0x68, 0x30, 0xF0, 0x20, 0x6D, -0x82, 0xF1, 0x1C, 0x4D, 0xA1, 0xE0, 0xA0, 0xA0, -0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF5, 0x08, 0x4C, -0x27, 0xF2, 0xAE, 0xC4, 0x0F, 0x2B, 0x27, 0xF2, -0xCE, 0xA4, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x64, 0x9B, 0xC0, 0x36, 0x01, 0x6D, 0x4D, 0xEE, -0xE3, 0xF3, 0x08, 0x6C, 0xAB, 0xED, 0x40, 0xEB, -0x00, 0x6A, 0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, 0xE3, 0xF3, -0x08, 0x6C, 0xAB, 0xED, 0xFF, 0xF7, 0x1F, 0x6E, -0x40, 0xEA, 0x01, 0x6A, 0x0B, 0x97, 0x0A, 0x91, -0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x01, 0x6B, -0xCE, 0x17, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x00, 0x6B, 0x0B, 0xD7, -0xE0, 0xAE, 0x1F, 0xF7, 0x00, 0x6A, 0xEC, 0xEA, -0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x08, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xAE, 0xE2, 0xF2, -0x58, 0x9A, 0x49, 0xE7, 0xE0, 0xA2, 0x06, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0x5C, 0x9A, -0x5D, 0xE7, 0xE0, 0xA7, 0xFF, 0x6A, 0xEC, 0xEA, -0x7D, 0xE4, 0x01, 0x4B, 0x03, 0x73, 0x40, 0xC7, -0x02, 0x4E, 0xE2, 0x61, 0x25, 0x67, 0x00, 0x68, -0x0B, 0x93, 0x01, 0x6D, 0xAB, 0xED, 0x09, 0xE3, -0x80, 0xAA, 0x02, 0x48, 0x80, 0x18, 0x1F, 0x14, -0x16, 0x70, 0x40, 0xD9, 0x04, 0x49, 0xF4, 0x61, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0xFF, 0x69, 0xE2, 0xF3, 0x68, 0x9B, 0x30, 0xF0, -0x20, 0x68, 0x2C, 0xEC, 0xC0, 0xF3, 0x44, 0x98, -0xAC, 0xE9, 0x24, 0x36, 0x01, 0x6D, 0x04, 0xD4, -0xAB, 0xED, 0x03, 0xF3, 0x00, 0x6C, 0x6D, 0xEE, -0x40, 0xEA, 0x04, 0x92, 0x08, 0x2A, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, -0x00, 0x6D, 0x03, 0x6E, 0x07, 0x10, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, -0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x44, 0x9A, 0xE2, 0xF3, 0xB4, 0x9B, 0xC3, 0xF3, -0x14, 0x6C, 0x10, 0x6E, 0x40, 0xEA, 0x04, 0x94, -0x24, 0x31, 0x30, 0xF0, 0x20, 0x6A, 0x25, 0xE4, -0xA0, 0xF3, 0x65, 0x41, 0xA0, 0xF3, 0x0D, 0x49, -0x63, 0xF5, 0x08, 0x4A, 0x70, 0x33, 0x30, 0x31, -0x25, 0xE2, 0x6D, 0xE2, 0x30, 0xF0, 0x20, 0x6A, -0x04, 0xD1, 0xE2, 0xF3, 0x38, 0x9A, 0x05, 0xD3, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0x01, 0x6D, 0xD1, 0x67, 0xC3, 0xF3, 0x18, 0x6C, -0xAB, 0xED, 0x40, 0xEA, 0x01, 0x6D, 0xE3, 0xF3, -0x1C, 0x6C, 0xAB, 0xED, 0x80, 0x18, 0x1F, 0x14, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, 0x7C, 0x9B, -0x05, 0x94, 0x04, 0x49, 0x4C, 0xEB, 0x62, 0x33, -0x62, 0x33, 0x60, 0xCC, 0xE1, 0xF7, 0x1F, 0x6B, -0x4C, 0xEB, 0x04, 0x92, 0x02, 0x4C, 0x05, 0xD4, -0x60, 0xCA, 0x02, 0x4A, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x02, 0xF4, 0x40, 0x9A, 0x2E, 0xEA, -0xD7, 0x2A, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, -0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, -0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, -0x05, 0x67, 0x01, 0x74, 0x4C, 0xE8, 0x80, 0xF0, -0x19, 0x60, 0x04, 0x24, 0x04, 0x5C, 0xA0, 0xF0, -0x10, 0x60, 0xAA, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0x47, 0xF3, 0x78, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, -0x47, 0xF3, 0x7C, 0xDA, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0xCB, 0xF0, 0x18, 0x4C, -0xCB, 0xF0, 0x10, 0x4B, 0xCB, 0xF0, 0x0C, 0x4A, -0xCA, 0xF7, 0x08, 0x4D, 0x00, 0x69, 0xC0, 0x9C, -0xA3, 0xF5, 0x08, 0x41, 0x04, 0x30, 0xC2, 0xDC, -0xC0, 0xAB, 0x05, 0xD5, 0xE5, 0x67, 0xC2, 0xCB, -0xC0, 0xA2, 0xC2, 0xC2, 0x30, 0xF0, 0x20, 0x6E, -0x63, 0xF5, 0x08, 0x4E, 0x01, 0xE6, 0x00, 0x6E, -0x04, 0xD6, 0xA0, 0xA0, 0x24, 0x36, 0xA4, 0xC0, -0x04, 0x95, 0xD9, 0xE5, 0xA6, 0x67, 0xA0, 0xF3, -0x05, 0x4D, 0xB0, 0x35, 0x06, 0xD5, 0x07, 0xD6, -0x30, 0xF0, 0x20, 0x6E, 0xA6, 0x67, 0x06, 0x96, -0x63, 0xF5, 0x08, 0x4D, 0x1D, 0x65, 0xD5, 0xE5, -0x07, 0x96, 0x06, 0xD5, 0xB8, 0x67, 0xA0, 0xF3, -0x0D, 0x4E, 0xD0, 0x36, 0xD9, 0xE5, 0x06, 0x95, -0x07, 0xD2, 0x40, 0xAD, 0x40, 0xF0, 0x40, 0xCD, -0x40, 0xAE, 0x02, 0x4D, 0x40, 0xF0, 0x40, 0xCE, -0x05, 0x92, 0x02, 0x4E, 0x4A, 0xED, 0xF5, 0x61, -0x04, 0x95, 0x05, 0x96, 0x07, 0x92, 0x01, 0x4D, -0x10, 0x4E, 0x02, 0x75, 0x04, 0xD5, 0x01, 0x48, -0x05, 0xD6, 0xCF, 0x61, 0x01, 0x49, 0x02, 0x6E, -0xA7, 0x67, 0x2E, 0xEE, 0x04, 0x4C, 0x02, 0x4B, -0x01, 0x4A, 0x20, 0x4D, 0xB4, 0x2E, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, 0x00, 0x6B, -0xC7, 0xF5, 0x7D, 0xC2, 0xC7, 0xF5, 0x7E, 0xC2, -0xC7, 0xF5, 0x71, 0xC2, 0xC7, 0xF5, 0x72, 0xC2, -0xC7, 0xF5, 0x73, 0xC2, 0x67, 0xF3, 0x65, 0xC2, -0xC7, 0xF5, 0x7F, 0xC2, 0xE7, 0xF5, 0x60, 0xC2, -0xC7, 0xF5, 0x74, 0xC2, 0xC7, 0xF5, 0x75, 0xC2, -0xC7, 0xF5, 0x76, 0xC2, 0x67, 0xF3, 0x60, 0x9A, -0x01, 0x6C, 0x67, 0xF3, 0xC4, 0xC2, 0x67, 0xF3, -0xC8, 0xCA, 0x47, 0xF3, 0x90, 0xC2, 0x47, 0xF3, -0x91, 0xC2, 0x67, 0xF3, 0xCA, 0xCA, 0x47, 0xF3, -0x92, 0xC2, 0x47, 0xF3, 0x93, 0xC2, 0x47, 0xF3, -0x78, 0xDA, 0x1B, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF3, 0xF0, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0xB0, 0x67, 0xCA, 0xF4, 0x08, 0x4C, 0x58, 0x6E, -0x80, 0x18, 0xBA, 0x46, 0xC1, 0xF6, 0x1C, 0x48, -0x30, 0xF0, 0x20, 0x6B, 0x08, 0x30, 0x63, 0xF5, -0x08, 0x4B, 0x6D, 0xE0, 0x40, 0xDB, 0x05, 0x10, -0xFE, 0x4C, 0x4C, 0xEC, 0xB0, 0x67, 0x80, 0x18, -0xFB, 0x01, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x8A, 0xF7, 0x5D, 0xA2, -0x18, 0x2A, 0x01, 0x6C, 0x00, 0x6D, 0x80, 0x18, -0x3F, 0x02, 0x02, 0x6C, 0x00, 0x6D, 0x80, 0x18, -0x3F, 0x02, 0x03, 0x6C, 0x00, 0x6D, 0x80, 0x18, -0x3F, 0x02, 0x01, 0x6C, 0xA4, 0x67, 0x80, 0x18, -0x3F, 0x02, 0x02, 0x6C, 0x01, 0x6D, 0x80, 0x18, -0x3F, 0x02, 0x03, 0x6C, 0x01, 0x6D, 0x80, 0x18, -0x3F, 0x02, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0x69, 0x00, 0x6A, 0x8C, 0xE9, 0x06, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, 0x10, 0x4A, -0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0xCA, 0xF4, -0x08, 0x48, 0x00, 0x6B, 0x90, 0x67, 0xB1, 0x67, -0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xFF, 0x46, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, 0x10, 0x4A, -0xE0, 0x9A, 0x00, 0x6B, 0x90, 0x67, 0xB1, 0x67, -0x08, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xFF, 0x46, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, 0x10, 0x4B, -0xE0, 0x9B, 0x90, 0x67, 0xB1, 0x67, 0x08, 0x6E, -0x80, 0x18, 0xBA, 0x46, 0x0B, 0x22, 0x06, 0x92, -0x01, 0x4A, 0x06, 0xD2, 0x06, 0x93, 0xFF, 0xF7, -0x1F, 0x6A, 0x4C, 0xEB, 0x2E, 0xF5, 0x10, 0x73, -0x06, 0xD3, 0xCE, 0x61, 0x0B, 0x97, 0x0A, 0x91, -0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xF5, 0x63, 0x15, 0x62, 0x14, 0xD1, 0x13, 0xD0, -0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xED, 0x30, 0xF0, -0x20, 0x6A, 0xA2, 0xF1, 0x00, 0x4A, 0x64, 0x67, -0x06, 0xD2, 0xC1, 0xF6, 0x14, 0x4B, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, 0x68, 0x33, -0x6D, 0xE2, 0x08, 0xD3, 0x64, 0x67, 0x60, 0xF7, -0x0E, 0x4B, 0x6C, 0x33, 0x6D, 0xE2, 0x0A, 0xD3, -0x00, 0x6B, 0x0F, 0xD4, 0x11, 0xD5, 0x07, 0xD3, -0x07, 0x95, 0x11, 0x92, 0xFF, 0x69, 0xAC, 0xE9, -0x18, 0x2A, 0x30, 0xF0, 0x20, 0x68, 0xCA, 0xF4, -0x08, 0x48, 0x01, 0x6A, 0x90, 0x67, 0xB1, 0x67, -0xDF, 0x6E, 0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0xFF, 0x46, 0x0A, 0x93, 0x90, 0x67, 0xB1, 0x67, -0x40, 0x9B, 0x58, 0x6E, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF3, 0xF0, 0x9A, 0x80, 0x18, -0xFF, 0x46, 0x07, 0x95, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF3, 0x48, 0x9A, 0xA4, 0x35, 0x00, 0x69, -0x4D, 0xED, 0x0E, 0xD5, 0x30, 0xF0, 0x20, 0x68, -0xC0, 0xF3, 0x44, 0x98, 0x0E, 0x96, 0x01, 0x6D, -0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, -0x0C, 0x6C, 0xAB, 0xED, 0x07, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, 0x04, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, -0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, 0x04, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, -0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC3, 0xF3, -0x0C, 0x6C, 0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, -0xFF, 0x6A, 0x2C, 0xEA, 0x08, 0x2A, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, -0x00, 0x6D, 0x03, 0x6E, 0x07, 0x10, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, -0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, -0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, 0xC3, 0xF3, -0x14, 0x6C, 0x10, 0x6E, 0x40, 0xEA, 0x0F, 0x95, -0x07, 0x93, 0x30, 0xF0, 0x20, 0x6A, 0xA4, 0x34, -0x71, 0xE4, 0x84, 0x34, 0x91, 0xE1, 0x02, 0xF4, -0x44, 0x9A, 0xA0, 0xF3, 0xA5, 0x44, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4B, 0xB0, 0x35, -0xA0, 0xF3, 0x0D, 0x4C, 0x46, 0xE9, 0xB5, 0xE3, -0x90, 0x34, 0x91, 0xE3, 0x0D, 0xD5, 0x61, 0x42, -0xA3, 0x42, 0x23, 0x4A, 0x09, 0xD5, 0x0C, 0xD4, -0x0B, 0xD3, 0x10, 0xD2, 0x0D, 0x95, 0x09, 0x93, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xAD, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x6D, 0xC0, 0x36, 0xC4, 0x36, -0xD9, 0xE3, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x0C, 0x95, 0x0B, 0x93, 0xC0, 0xF3, -0x44, 0x98, 0xC0, 0xAD, 0x01, 0x6D, 0xAB, 0xED, -0xC0, 0x36, 0xC4, 0x36, 0xD9, 0xE3, 0xC3, 0xF3, -0x18, 0x6C, 0x40, 0xEA, 0x0D, 0x95, 0x0C, 0x93, -0x09, 0x92, 0x02, 0x4D, 0x02, 0x4B, 0x0D, 0xD5, -0x0C, 0xD3, 0x0B, 0x95, 0x10, 0x93, 0x04, 0x4A, -0x04, 0x4D, 0x6A, 0xEA, 0x09, 0xD2, 0x0B, 0xD5, -0xD5, 0x61, 0xFF, 0x6A, 0x2C, 0xEA, 0x08, 0x2A, -0x08, 0x95, 0x06, 0x93, 0xC0, 0xF3, 0x44, 0x98, -0xC0, 0xA5, 0x80, 0xAB, 0x01, 0x6D, 0x08, 0x10, -0x06, 0x93, 0x08, 0x95, 0xC0, 0xF3, 0x44, 0x98, -0x80, 0xAB, 0xC1, 0xA5, 0x00, 0xF4, 0x00, 0x6D, -0xCF, 0xEE, 0x01, 0x49, 0x40, 0xEA, 0x02, 0x71, -0x5F, 0xF7, 0x0C, 0x61, 0x30, 0xF0, 0x20, 0x68, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC3, 0xF3, -0x18, 0x6C, 0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x06, 0xF0, 0x00, 0x6D, -0x03, 0xF3, 0x0C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x07, 0x95, 0x06, 0x92, 0x08, 0x93, 0x01, 0x4D, -0x07, 0xD5, 0x02, 0x4A, 0x0A, 0x95, 0x06, 0xD2, -0x07, 0x92, 0x02, 0x4B, 0x04, 0x4D, 0x02, 0x72, -0x08, 0xD3, 0x0A, 0xD5, 0x1F, 0xF7, 0x04, 0x61, -0x15, 0x97, 0x14, 0x91, 0x13, 0x90, 0x0B, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x8A, 0xF7, 0x5D, 0xA2, -0x05, 0x22, 0x00, 0x6C, 0x01, 0x6D, 0x80, 0x18, -0xBF, 0x00, 0x04, 0x10, 0x00, 0x6C, 0x01, 0x6D, -0x80, 0x18, 0xD2, 0x02, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x00, 0x6A, 0x7D, 0x67, -0x4C, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, -0x2C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, -0x10, 0x4A, 0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x68, -0xCA, 0xF4, 0x08, 0x48, 0x00, 0x6D, 0x90, 0x67, -0xC5, 0x67, 0x04, 0xD1, 0x80, 0x18, 0xFF, 0x46, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, 0x10, 0x4B, -0xE0, 0x9B, 0x90, 0x67, 0x01, 0x6D, 0x00, 0x6E, -0x30, 0xF0, 0x20, 0x68, 0x04, 0xD1, 0x80, 0x18, -0xFF, 0x46, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF4, -0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xE1, 0xF0, -0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x6D, 0xE1, 0xF0, 0x1C, 0x6C, -0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x07, 0x6D, 0xC5, 0x67, 0x83, 0xF1, -0x0C, 0x6C, 0x40, 0xEA, 0x06, 0x02, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, -0xA1, 0xF3, 0x18, 0x6F, 0xA1, 0xF7, 0x00, 0x6C, -0x08, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0xF0, 0x08, 0x6C, 0xFF, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x02, 0xF4, 0xAC, 0x9B, -0x01, 0xF2, 0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF3, 0x6C, 0x9A, -0xFF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0xFE, 0x6C, -0x4C, 0xEC, 0x80, 0xC3, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0x02, 0xF4, 0x50, 0x9A, 0x60, 0xA2, -0x01, 0x6A, 0x6C, 0xEA, 0x09, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x02, 0xF4, 0x78, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0x02, 0xF4, 0x54, 0x9A, 0x60, 0xDA, -0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF3, 0x30, 0x9A, 0x30, 0xF0, 0x20, 0x68, -0xCA, 0xF4, 0x08, 0x48, 0x90, 0x67, 0xF1, 0x67, -0x01, 0xF2, 0x00, 0x6A, 0x00, 0x6D, 0xB8, 0x6E, -0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, 0x30, 0xF0, -0x20, 0x6A, 0x02, 0xF4, 0x5C, 0x9A, 0x90, 0x67, -0xF1, 0x67, 0x00, 0x6D, 0xB8, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0xFF, 0x46, 0x09, 0x97, 0x08, 0x91, -0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x0E, 0xD6, 0x0F, 0xD7, 0x04, 0xD7, 0xFF, 0x68, -0xFF, 0xF7, 0x1F, 0x69, 0x0E, 0x97, 0x8C, 0xE8, -0xAC, 0xE9, 0x30, 0xF0, 0x20, 0x6C, 0xCA, 0xF4, -0x08, 0x4C, 0xB0, 0x67, 0xD1, 0x67, 0x80, 0x18, -0xFF, 0x46, 0x00, 0x6A, 0x07, 0xD2, 0x30, 0xF0, -0x20, 0x6B, 0x0E, 0x97, 0xCA, 0xF4, 0x08, 0x4B, -0x83, 0x67, 0xB0, 0x67, 0xD1, 0x67, 0x06, 0xD3, -0x80, 0x18, 0xBA, 0x46, 0x0F, 0x93, 0x6E, 0xEA, -0x1E, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x0F, 0x92, -0x06, 0x94, 0x0E, 0x97, 0xB0, 0x67, 0xD1, 0x67, -0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, 0x07, 0x93, -0x01, 0x4B, 0xE0, 0xF3, 0x08, 0x73, 0x07, 0xD3, -0xDE, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x44, 0x9A, 0xA0, 0xF1, 0x00, 0x6C, 0x1F, 0xF7, -0x00, 0x6D, 0x0A, 0x6E, 0x40, 0xEA, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x68, 0xFF, 0xF7, -0x1F, 0x69, 0xE2, 0xF3, 0xF0, 0x9A, 0x8C, 0xE8, -0xAC, 0xE9, 0x30, 0xF0, 0x20, 0x6C, 0x0E, 0xD6, -0x04, 0xD6, 0xCA, 0xF4, 0x08, 0x4C, 0xB0, 0x67, -0xD1, 0x67, 0x80, 0x18, 0xFF, 0x46, 0x00, 0x6A, -0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, -0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xE0, 0x9A, -0xCA, 0xF4, 0x08, 0x4B, 0x83, 0x67, 0xB0, 0x67, -0xD1, 0x67, 0x06, 0xD3, 0x80, 0x18, 0xBA, 0x46, -0x0E, 0x93, 0x6E, 0xEA, 0x18, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, -0x10, 0x4B, 0x0E, 0x92, 0x06, 0x94, 0xE0, 0x9B, -0xB0, 0x67, 0xD1, 0x67, 0x04, 0xD2, 0x80, 0x18, -0xFF, 0x46, 0x07, 0x92, 0x01, 0x4A, 0xE0, 0xF3, -0x08, 0x72, 0x07, 0xD2, 0xD6, 0x61, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x00, 0x6A, 0x0C, 0xD4, 0x05, 0x67, 0x06, 0xD2, -0x06, 0x92, 0xFF, 0x6B, 0x30, 0xF0, 0x20, 0x69, -0x6C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, -0x10, 0x4B, 0x07, 0xD2, 0xE0, 0x9B, 0x07, 0x95, -0xCA, 0xF4, 0x08, 0x49, 0x00, 0x6A, 0x91, 0x67, -0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, -0x40, 0x98, 0x06, 0x94, 0x11, 0x6E, 0xCB, 0xEE, -0x4C, 0xEE, 0xDF, 0x6D, 0x80, 0x18, 0xE4, 0x03, -0x0C, 0x92, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, -0x10, 0x4B, 0xC1, 0xA2, 0xE0, 0x9B, 0x42, 0x98, -0x07, 0x95, 0x91, 0x67, 0x04, 0xD2, 0x80, 0x18, -0xFF, 0x46, 0x0C, 0x92, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF3, 0x10, 0x4B, 0xC2, 0xA2, 0x07, 0x95, -0x44, 0x98, 0xE0, 0x9B, 0x91, 0x67, 0x04, 0xD2, -0x80, 0x18, 0xFF, 0x46, 0x06, 0x92, 0x04, 0x48, -0x01, 0x4A, 0x02, 0x72, 0x06, 0xD2, 0xC4, 0x61, -0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x01, 0x6B, 0x6B, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0x0A, 0xD4, 0x8A, 0xF7, -0x72, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF4, -0x28, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x0A, 0x93, -0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, 0x20, 0x6C, -0x35, 0xE3, 0x0B, 0xF3, 0x10, 0x4C, 0x08, 0x6E, -0x40, 0xEA, 0x0A, 0x95, 0x80, 0xF2, 0x4C, 0x98, -0x30, 0xF0, 0x20, 0x6C, 0x08, 0x4D, 0x35, 0xE5, -0xEB, 0xF0, 0x08, 0x4C, 0x44, 0x6E, 0x40, 0xEA, -0x0A, 0x92, 0x30, 0xF0, 0x20, 0x6C, 0x2B, 0xF1, -0x0C, 0x4C, 0x4C, 0x4A, 0x04, 0xD2, 0x04, 0x93, -0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, -0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, 0x20, 0x6C, -0x6B, 0xF1, 0x10, 0x4C, 0x44, 0x4A, 0x04, 0xD2, -0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, -0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, -0x20, 0x6C, 0xAB, 0xF1, 0x14, 0x4C, 0x44, 0x4A, -0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, -0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, -0x30, 0xF0, 0x20, 0x6C, 0xEB, 0xF1, 0x18, 0x4C, -0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, -0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, -0x04, 0x92, 0x30, 0xF0, 0x20, 0x6C, 0x2B, 0xF2, -0x1C, 0x4C, 0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, -0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, -0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, 0x20, 0x6C, -0x8B, 0xF2, 0x00, 0x4C, 0x44, 0x4A, 0x04, 0xD2, -0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, -0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, -0x20, 0x6C, 0xCB, 0xF2, 0x04, 0x4C, 0x44, 0x4A, -0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, -0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x22, 0xF4, 0xAC, 0x9B, 0x04, 0x93, -0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, 0x20, 0x6C, -0x2B, 0xF3, 0x08, 0x4C, 0xB5, 0xE3, 0x10, 0x6E, -0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0xD1, -0x08, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF0, -0x74, 0xA2, 0x80, 0xF0, 0x1A, 0x23, 0x30, 0xF0, -0x20, 0x6C, 0x42, 0xF3, 0x94, 0x9C, 0x00, 0x6B, -0xE2, 0xF0, 0x74, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0x01, 0x6B, 0x27, 0xF2, -0x7B, 0xC2, 0x47, 0xF2, 0x80, 0xDA, 0x27, 0xF2, -0x79, 0xC2, 0x27, 0xF2, 0x7D, 0xC2, 0x47, 0xF2, -0x88, 0xDA, 0x27, 0xF2, 0x7C, 0xC2, 0x47, 0xF2, -0x84, 0xDA, 0x27, 0xF2, 0x7A, 0xC2, 0x27, 0xF2, -0x7E, 0xC2, 0x47, 0xF2, 0x8C, 0xDA, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6C, 0x0B, 0xF3, -0x10, 0x4C, 0x0B, 0xF1, 0x0A, 0x4B, 0x00, 0x6A, -0x00, 0x6D, 0xA0, 0xDC, 0xB0, 0xF7, 0xC8, 0x42, -0x30, 0xF0, 0x20, 0x6D, 0x63, 0xF5, 0x08, 0x4D, -0xCC, 0x36, 0xD9, 0xE5, 0x04, 0xD6, 0x61, 0xF7, -0xCE, 0x42, 0xC8, 0x36, 0xD9, 0xE5, 0x03, 0xD6, -0x06, 0x6E, 0xD8, 0xEA, 0x01, 0xD3, 0x12, 0xEE, -0xD9, 0xE5, 0xC7, 0xF5, 0x11, 0x4E, 0x00, 0x6D, -0x04, 0x90, 0x00, 0x6F, 0xE0, 0xD8, 0x03, 0x90, -0xE0, 0xC8, 0x44, 0x30, 0x01, 0xE5, 0xC3, 0xF6, -0x10, 0x48, 0x30, 0xF0, 0x20, 0x6F, 0x04, 0x30, -0x63, 0xF5, 0x08, 0x4F, 0x1D, 0xE7, 0x05, 0xD7, -0x01, 0x97, 0x00, 0x68, 0x00, 0xD0, 0x02, 0xD7, -0x05, 0x90, 0x01, 0x6F, 0x22, 0x69, 0xE0, 0xC0, -0x00, 0x97, 0x06, 0xD2, 0x38, 0xEF, 0x44, 0x6F, -0x12, 0xE9, 0xF8, 0xED, 0x12, 0xEF, 0xE5, 0xE1, -0x88, 0x6F, 0xF8, 0xEA, 0x12, 0xEF, 0xE5, 0xE1, -0x30, 0xF0, 0x20, 0x6F, 0x87, 0xF3, 0x00, 0x41, -0x63, 0xF5, 0x08, 0x4F, 0x87, 0xF4, 0x10, 0x49, -0x01, 0xE7, 0x25, 0xE7, 0x02, 0x92, 0x00, 0x6F, -0xE0, 0xC8, 0x02, 0x48, 0x4A, 0xE8, 0xE0, 0xC9, -0x02, 0x49, 0xF8, 0x61, 0x00, 0x90, 0x06, 0x92, -0x01, 0x48, 0x00, 0xD0, 0x05, 0x90, 0x01, 0x48, -0x05, 0xD0, 0x02, 0x90, 0x22, 0x48, 0x02, 0xD0, -0x00, 0x90, 0x02, 0x70, 0xD1, 0x61, 0xE0, 0xC6, -0xE1, 0xC6, 0xE2, 0xC6, 0x04, 0x97, 0x03, 0x90, -0x01, 0x4D, 0x04, 0x4F, 0x04, 0xD7, 0x01, 0x97, -0x02, 0x48, 0x02, 0x75, 0x44, 0x4F, 0x03, 0xD0, -0x03, 0x4E, 0x01, 0xD7, 0xAD, 0x61, 0x01, 0x4A, -0x7F, 0x4B, 0x02, 0x72, 0x04, 0x4C, 0x09, 0x4B, -0x8F, 0x61, 0x09, 0x91, 0x08, 0x90, 0x05, 0x63, -0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x6A, 0x8C, 0xEA, 0x00, 0xF2, 0x1C, 0x22, -0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, -0x22, 0xF4, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF6, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF3, 0xAC, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF4, 0x10, 0x69, -0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x62, 0xF3, 0xA4, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, 0xB4, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, -0x14, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x43, 0xF5, 0x18, 0x6C, 0xE1, 0xF7, -0x18, 0x6D, 0xE0, 0xF1, 0x1F, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, 0x14, 0x4B, -0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, -0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x62, 0xF3, 0x14, 0x4B, 0xA0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x68, 0xF1, 0x04, 0x6C, -0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xC2, 0xF3, 0x28, 0x9A, 0xC0, 0xF3, 0x44, 0x98, -0x03, 0xF0, 0x0C, 0x6C, 0xB1, 0x67, 0x01, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, -0x08, 0xF1, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, 0x0C, 0x6C, -0x80, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x68, 0xF1, 0x0C, 0x6C, 0x80, 0x6D, -0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x03, 0xF0, 0x0C, 0x6C, 0x03, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, -0x0C, 0x6C, 0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x00, 0x6C, -0x03, 0x6D, 0x02, 0x6E, 0x40, 0xEA, 0x01, 0x69, -0xC0, 0xF3, 0x44, 0x98, 0x2B, 0xE9, 0x23, 0xF4, -0x18, 0x6C, 0xB1, 0x67, 0xD1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF4, 0x18, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x22, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x22, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF4, -0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF4, 0x04, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x42, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x42, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF4, -0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF4, 0x14, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x42, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x42, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF4, -0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF4, 0x04, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x62, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x62, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF4, -0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF4, 0x14, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x62, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x22, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF4, -0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF4, 0x1C, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x42, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x42, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF4, -0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF4, 0x0C, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x42, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x42, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF4, -0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF4, 0x1C, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x62, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x62, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF4, -0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF4, 0x0C, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x62, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x62, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF4, -0x14, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0xC0, 0x9B, 0xC9, 0x12, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0x04, 0xD2, 0xC7, 0xF5, 0x50, 0xA2, 0xE0, 0xF0, -0x1B, 0x22, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, -0x20, 0x6B, 0x62, 0xF4, 0xD8, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF4, -0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x04, 0x93, -0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, 0x00, 0x6C, -0x27, 0xF2, 0xD6, 0xA3, 0x04, 0x6B, 0x0E, 0xF0, -0x00, 0x6D, 0x67, 0xEE, 0xC3, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF4, 0x1C, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, -0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0x27, 0xF2, -0xD6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, -0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, -0x82, 0xF4, 0x00, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, -0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x23, 0xF0, -0x10, 0x6C, 0x27, 0xF2, 0xD6, 0xA2, 0xC0, 0xF3, -0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, -0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF4, 0x04, 0x4B, -0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, -0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0x27, 0xF2, -0xD6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, -0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, -0x82, 0xF4, 0x08, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, -0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x23, 0xF0, -0x10, 0x6C, 0x27, 0xF2, 0xD6, 0xA2, 0xC0, 0xF3, -0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, -0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF4, 0x0C, 0x4B, -0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x82, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, -0x23, 0xF0, 0x10, 0x6C, 0x27, 0xF2, 0xD6, 0xA2, -0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, -0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF4, -0x14, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF4, 0x1C, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, -0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, 0x27, 0xF2, -0xD6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, -0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, -0x82, 0xF4, 0x00, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, -0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x28, 0xF1, -0x10, 0x6C, 0x27, 0xF2, 0xD6, 0xA2, 0xC0, 0xF3, -0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, -0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF4, 0x04, 0x4B, -0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, -0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, 0x27, 0xF2, -0xD6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, -0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, -0x82, 0xF4, 0x08, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, -0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x28, 0xF1, -0x10, 0x6C, 0x27, 0xF2, 0xD6, 0xA2, 0xC0, 0xF3, -0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, -0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF4, 0x0C, 0x4B, -0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x82, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, -0x28, 0xF1, 0x10, 0x6C, 0x27, 0xF2, 0xD6, 0xA2, -0xB1, 0x67, 0xC0, 0xF3, 0x44, 0x98, 0x67, 0xEE, -0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF4, -0x14, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x63, 0x11, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, -0x62, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x82, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x82, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF4, -0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF4, 0x04, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x82, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA2, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF4, -0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF4, 0x10, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xA2, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA2, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF4, -0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF4, 0x00, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC2, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF4, -0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF4, 0x1C, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x82, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x82, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF4, -0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF4, 0x04, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x82, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA2, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF4, -0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF4, 0x10, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xA2, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA2, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF4, -0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF4, 0x00, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC2, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF4, -0x0C, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x30, 0xF0, -0x20, 0x68, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF4, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, -0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x43, 0xF5, 0x18, 0x6C, 0xE1, 0xF7, -0x18, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x62, 0xF3, 0x34, 0x9A, 0xC0, 0xF3, -0x44, 0x98, 0x63, 0xF0, 0x04, 0x6C, 0xB1, 0x67, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xB1, 0x67, 0x68, 0xF1, 0x04, 0x6C, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF3, -0x28, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, -0x0C, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, 0x0C, 0x6C, -0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x63, 0xF0, 0x0C, 0x6C, 0x80, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x68, 0xF1, 0x0C, 0x6C, 0x80, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0x6D, -0xC5, 0x67, 0x03, 0xF0, 0x0C, 0x6C, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0x6D, 0xC5, 0x67, -0x08, 0xF1, 0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF2, 0x00, 0x6C, 0x03, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, -0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x06, 0x67, 0xC2, 0xF4, -0xD4, 0x9B, 0x09, 0xD5, 0x01, 0x6D, 0x24, 0x67, -0x0B, 0xD7, 0x63, 0xF5, 0x10, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x00, 0x6A, 0x80, 0x98, 0x1F, 0xF7, -0x00, 0x6B, 0x8C, 0xEB, 0x02, 0xF0, 0x00, 0x73, -0x01, 0x60, 0x09, 0x2B, 0x30, 0xF0, 0x20, 0x6C, -0x60, 0x98, 0xE2, 0xF2, 0x98, 0x9C, 0x6D, 0xE4, -0x80, 0x99, 0x80, 0xDB, 0x07, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF2, 0x7C, 0x9B, 0x91, 0xE3, -0x60, 0x99, 0x60, 0xDC, 0x01, 0x4A, 0xFF, 0x6B, -0x6C, 0xEA, 0x03, 0x72, 0x04, 0x48, 0x04, 0x49, -0xE1, 0x61, 0x00, 0x68, 0x0B, 0x92, 0x30, 0xF0, -0x20, 0x69, 0x01, 0x6D, 0x11, 0xE2, 0x09, 0x92, -0x80, 0xAC, 0xAB, 0xED, 0x0D, 0xE2, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x99, 0x04, 0x48, 0x40, 0xEA, -0x2C, 0x70, 0xF0, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x0B, 0xF3, 0x49, 0xA2, 0x01, 0x72, 0x0A, 0x61, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, -0x03, 0xF0, 0x0C, 0x6C, 0x62, 0xF3, 0xB4, 0x9B, -0x00, 0x6E, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x99, 0x62, 0xF3, 0xB4, 0x9B, -0x03, 0xF0, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x0B, 0xF3, 0x4B, 0xA2, -0x01, 0x72, 0x0C, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, -0x08, 0xF1, 0x0C, 0x6C, 0x62, 0xF3, 0xB4, 0x9B, -0x00, 0x6E, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, -0x62, 0xF3, 0xB4, 0x9B, 0x08, 0xF1, 0x0C, 0x6C, -0x01, 0x6E, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF3, 0x58, 0xA2, 0x1E, 0x22, 0x30, 0xF0, -0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, -0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF6, -0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xA2, 0xF3, 0x2C, 0x9A, 0xC0, 0xF3, -0x44, 0x98, 0xA3, 0xF0, 0x04, 0x6C, 0xB1, 0x67, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xA8, 0xF1, 0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF3, -0x48, 0x9A, 0x01, 0x6B, 0x6B, 0xEB, 0x30, 0xF0, -0x20, 0x68, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x22, 0xF4, 0xA4, 0x9B, -0x23, 0xF6, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0xC2, 0xF4, 0xB8, 0x9B, 0xC3, 0xF4, 0x10, 0x6C, -0x07, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x62, 0xF3, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x63, 0xF5, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6E, 0xCB, 0xEE, -0xA6, 0x67, 0x23, 0xF4, 0x18, 0x6C, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x14, 0x6C, -0x00, 0xF3, 0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0xC2, 0xF4, 0xBC, 0x9B, 0x21, 0xF0, 0x04, 0x6C, -0x03, 0x6E, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, 0xE8, 0x9B, -0xFF, 0x6A, 0x04, 0x6B, 0xC0, 0xA7, 0x4C, 0xED, -0x4C, 0xEC, 0x4C, 0xEE, 0xCD, 0xEB, 0x4C, 0xEB, -0x60, 0xC7, 0x06, 0x2D, 0x07, 0x6B, 0x07, 0x24, -0x01, 0x74, 0x07, 0x6B, 0x12, 0x61, 0x0C, 0x10, -0x07, 0x2C, 0x79, 0x6B, 0x6B, 0xEB, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF4, 0x40, 0x9A, 0x08, 0x10, -0x01, 0x74, 0x07, 0x61, 0x79, 0x6B, 0x6B, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF4, 0x44, 0x9A, -0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF3, -0x48, 0x9A, 0xC0, 0xC2, 0x20, 0xE8, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x6E, 0x30, 0xF0, 0x20, 0x68, 0xCC, 0xEC, -0xC0, 0xF3, 0x44, 0x98, 0xAC, 0xEE, 0x01, 0x69, -0x08, 0x6B, 0x2B, 0xE9, 0xC4, 0x36, 0x04, 0xD4, -0xB1, 0x67, 0x03, 0xF3, 0x00, 0x6C, 0x6D, 0xEE, -0x40, 0xEA, 0x04, 0x92, 0x12, 0x2A, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, -0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, -0x18, 0x6C, 0xB1, 0x67, 0xE2, 0xF4, 0xC8, 0x9B, -0x11, 0x10, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, -0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x01, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0xE2, 0xF4, 0xCC, 0x9B, 0xC3, 0xF3, -0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF3, 0xD8, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0xB1, 0x67, 0x30, 0xF0, 0x20, 0x68, -0xC3, 0xF3, 0x18, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, -0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, -0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x00, 0x68, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF4, 0xB0, 0x9A, -0x02, 0xF7, 0x00, 0x6C, 0x80, 0x18, 0x97, 0x14, -0x20, 0x6B, 0x4C, 0xEB, 0x0A, 0x2B, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, -0x01, 0x48, 0x40, 0xEA, 0x0A, 0x70, 0xEC, 0x61, -0x0A, 0x68, 0x50, 0x67, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x68, -0x8C, 0xE8, 0x80, 0x18, 0x04, 0x08, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF4, 0xD4, 0x9A, 0x01, 0x69, -0x2B, 0xE9, 0x0D, 0xEE, 0xB1, 0x67, 0x02, 0xF7, -0x00, 0x6C, 0x80, 0x18, 0xAC, 0x14, 0xB1, 0x67, -0x02, 0xF7, 0x08, 0x6C, 0x80, 0x18, 0x97, 0x14, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0xF7, 0x1F, 0x68, -0x25, 0x67, 0x0C, 0xD6, 0x8C, 0xE8, 0x37, 0x25, -0x61, 0x45, 0x00, 0x6A, 0x0E, 0x2B, 0x80, 0x18, -0x04, 0x08, 0x01, 0x69, 0x0C, 0x96, 0x2B, 0xE9, -0x02, 0xF7, 0x04, 0x6C, 0xB1, 0x67, 0x80, 0x18, -0xAC, 0x14, 0x02, 0xF7, 0x00, 0x6C, 0xB1, 0x67, -0x1F, 0x10, 0x71, 0x67, 0x66, 0xEA, 0x01, 0x6C, -0x8C, 0xEB, 0x04, 0x2B, 0x01, 0x4A, 0x20, 0x72, -0xF8, 0x61, 0x00, 0x6A, 0x90, 0x67, 0x04, 0xD2, -0x2F, 0xE9, 0x80, 0x18, 0x13, 0x08, 0x4C, 0xE9, -0x80, 0x18, 0x04, 0x08, 0x0C, 0x96, 0x04, 0x92, -0x01, 0x6D, 0x02, 0xF7, 0x04, 0x6C, 0xC4, 0xEA, -0xAB, 0xED, 0x2D, 0xEE, 0x80, 0x18, 0xAC, 0x14, -0x01, 0x6D, 0x02, 0xF7, 0x00, 0x6C, 0xAB, 0xED, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF4, 0xD8, 0x9A, -0x0D, 0xEE, 0x80, 0x18, 0xAC, 0x14, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x38, 0x6C, 0x18, 0xF0, -0x00, 0x6D, 0x01, 0x6E, 0x80, 0x18, 0x23, 0x08, -0x38, 0x6C, 0x01, 0xF4, 0x00, 0x6D, 0x01, 0x6E, -0x80, 0x18, 0x23, 0x08, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x38, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x03, 0x6E, -0x80, 0x18, 0x23, 0x08, 0x38, 0x6C, 0x00, 0xF3, -0x00, 0x6D, 0x03, 0x6E, 0x80, 0x18, 0x23, 0x08, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, -0x05, 0x22, 0x80, 0x18, 0x4F, 0x08, 0x80, 0x18, -0x46, 0x08, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x4B, 0xF3, 0xD0, 0x9A, 0x01, 0x6D, 0x38, 0x6C, -0xAB, 0xED, 0x80, 0x18, 0x23, 0x08, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x00, 0x6A, 0x09, 0xD5, -0x27, 0x67, 0xA0, 0x9E, 0x1F, 0xF7, 0x00, 0x6B, -0xAC, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, -0x08, 0x2B, 0x30, 0xF0, 0x20, 0x6D, 0x60, 0x9E, -0xE2, 0xF2, 0xB8, 0x9D, 0x6D, 0xE5, 0x60, 0x9B, -0x06, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF2, -0x7C, 0x9B, 0xB5, 0xE3, 0x60, 0x9D, 0x55, 0xE4, -0x04, 0x4A, 0x0C, 0x72, 0x60, 0xDD, 0x04, 0x4E, -0xE4, 0x61, 0x00, 0x68, 0x09, 0xE1, 0x80, 0xAA, -0x01, 0x6D, 0xAB, 0xED, 0x80, 0x18, 0x1F, 0x14, -0x09, 0x94, 0x0D, 0xE4, 0x04, 0x48, 0x2C, 0x70, -0x40, 0xDB, 0xF4, 0x61, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6A, 0x24, 0x67, -0x63, 0xF5, 0x08, 0x48, 0x4C, 0xED, 0x4C, 0xE9, -0x27, 0xF2, 0x49, 0xA0, 0x06, 0xD5, 0x24, 0x36, -0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x64, 0x9A, 0x01, 0x6D, 0x08, 0x6A, 0x4D, 0xEE, -0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, -0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF4, 0xA4, 0x9B, -0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x27, 0xF2, 0x48, 0xA0, 0x4B, 0x2A, 0x06, 0x92, -0x03, 0x22, 0x12, 0x6A, 0x27, 0xF2, 0x4E, 0xC0, -0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, -0x8A, 0xF7, 0xD6, 0xA3, 0xC0, 0xF3, 0x44, 0x98, -0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x40, 0xEA, -0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF3, 0xEC, 0x9A, 0x30, 0xF0, 0x20, 0x6B, -0xCA, 0xF4, 0x08, 0x4B, 0x83, 0x67, 0xB1, 0x67, -0xDE, 0x6E, 0x06, 0xD3, 0x80, 0x18, 0xFF, 0x46, -0x06, 0x94, 0xE1, 0xF7, 0x1F, 0x6F, 0x20, 0x6A, -0xB1, 0x67, 0x56, 0x6E, 0x04, 0xD2, 0x80, 0x18, -0xFF, 0x46, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, -0x18, 0x6C, 0x02, 0x6D, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF5, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, -0x04, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, -0x18, 0x6E, 0x49, 0x10, 0x06, 0x92, 0x03, 0x22, -0x12, 0x6A, 0x27, 0xF2, 0x4E, 0xC0, 0x01, 0x6A, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, -0xEC, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0xCA, 0xF4, -0x08, 0x48, 0x90, 0x67, 0xB1, 0x67, 0xDE, 0x6E, -0x80, 0x18, 0xFF, 0x46, 0xE1, 0xF7, 0x1F, 0x6F, -0x90, 0x67, 0x00, 0x6A, 0xB1, 0x67, 0x56, 0x6E, -0x30, 0xF0, 0x20, 0x68, 0x04, 0xD2, 0x80, 0x18, -0xFF, 0x46, 0x30, 0xF0, 0x20, 0x6B, 0x8A, 0xF7, -0xD6, 0xA3, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, -0x0C, 0x6C, 0xFF, 0x6D, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x18, 0x6C, 0x02, 0x6D, -0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x02, 0xF5, 0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x01, 0x6D, 0x23, 0xF3, 0x04, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, -0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x0C, 0x6C, -0xE1, 0xF7, 0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, -0x07, 0x93, 0x06, 0x73, 0x0A, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, -0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x08, 0x6E, -0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x06, 0xD2, 0x63, 0xF5, -0x08, 0x4B, 0x27, 0xF2, 0x49, 0xA3, 0x07, 0xD3, -0x06, 0x93, 0x30, 0xF0, 0x20, 0x68, 0x08, 0xD2, -0x64, 0x31, 0x08, 0x6A, 0x4D, 0xE9, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x6D, 0xD1, 0x67, 0x03, 0xF3, -0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC2, 0xF4, 0x10, 0x4B, 0xA0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x3F, 0x6D, 0xC5, 0x67, 0xC3, 0xF3, 0x0C, 0x6C, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, -0xD1, 0x67, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF4, -0x10, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF4, 0xA4, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x00, 0x69, -0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x91, 0x67, 0xE0, 0xF3, 0x00, 0x6D, -0x12, 0x6E, 0x40, 0xEA, 0x07, 0x93, 0x27, 0xF2, -0x48, 0xA3, 0x11, 0x2A, 0x01, 0x6A, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x69, -0x06, 0x95, 0xE2, 0xF3, 0xEC, 0x9A, 0xCA, 0xF4, -0x08, 0x49, 0x91, 0x67, 0xDE, 0x6E, 0x80, 0x18, -0xFF, 0x46, 0x20, 0x6A, 0x10, 0x10, 0x01, 0x6A, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x69, 0x06, 0x95, 0xE2, 0xF3, 0xEC, 0x9A, -0xCA, 0xF4, 0x08, 0x49, 0x91, 0x67, 0xDE, 0x6E, -0x80, 0x18, 0xFF, 0x46, 0x00, 0x6A, 0x06, 0x95, -0x91, 0x67, 0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, 0xC0, 0xF3, -0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, -0x12, 0x6E, 0x40, 0xEA, 0x08, 0x92, 0x06, 0x72, -0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, -0x1F, 0x6D, 0x08, 0x6E, 0x09, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, -0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x38, 0x6E, -0x40, 0xEA, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, -0x07, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0xFF, 0x68, 0x27, 0xF2, -0x69, 0xA2, 0x8C, 0xE8, 0x06, 0xD2, 0x04, 0x32, -0x07, 0xD2, 0x08, 0xD3, 0x07, 0x93, 0x30, 0xF0, -0x20, 0x69, 0x08, 0x6A, 0x4D, 0xEB, 0xC0, 0xF3, -0x44, 0x99, 0x01, 0x6D, 0xC3, 0x67, 0x07, 0xD3, -0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF4, 0xB0, 0x9B, -0xC0, 0xF3, 0x44, 0x99, 0xA3, 0xF3, 0x18, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, -0x3F, 0x6D, 0xC5, 0x67, 0xC3, 0xF3, 0x0C, 0x6C, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x07, 0x96, -0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF4, -0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, -0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x99, 0x23, 0xF3, 0x00, 0x6C, 0xE0, 0xF3, -0x00, 0x6D, 0x12, 0x6E, 0x40, 0xEA, 0x06, 0x92, -0x27, 0xF2, 0x48, 0xA2, 0x06, 0xD2, 0x5B, 0x2A, -0x07, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x02, 0xF5, 0xE8, 0x9A, 0x30, 0xF0, 0x20, 0x69, -0xCA, 0xF4, 0x08, 0x49, 0x91, 0x67, 0xB0, 0x67, -0x00, 0x6E, 0x80, 0x18, 0xFF, 0x46, 0x01, 0x6B, -0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, 0x20, 0x6F, -0x04, 0xD3, 0x80, 0x18, 0xFF, 0x46, 0x01, 0x6A, -0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, 0x00, 0xF4, -0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, 0x0C, 0x4A, -0xE0, 0x9A, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, -0xDE, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xFF, 0x46, -0x10, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, -0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0xFF, 0x46, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, -0xEF, 0x6E, 0x04, 0x6F, 0x04, 0xD3, 0x80, 0x18, -0xFF, 0x46, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, -0x0C, 0x4B, 0xE0, 0x9B, 0x06, 0x92, 0x91, 0x67, -0xB0, 0x67, 0x18, 0x6E, 0x04, 0xD2, 0x80, 0x18, -0xFF, 0x46, 0x06, 0x92, 0x91, 0x67, 0xB0, 0x67, -0x33, 0x6E, 0x01, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0xFF, 0x46, 0x04, 0x6A, 0x91, 0x67, 0xB0, 0x67, -0x08, 0x6E, 0x70, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0xFF, 0x46, 0x06, 0x93, 0x5A, 0x10, 0x07, 0x6A, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF5, -0xE8, 0x9A, 0x30, 0xF0, 0x20, 0x69, 0xCA, 0xF4, -0x08, 0x49, 0x91, 0x67, 0xB0, 0x67, 0x00, 0x6E, -0x80, 0x18, 0xFF, 0x46, 0x01, 0x6A, 0x91, 0x67, -0xB0, 0x67, 0x9E, 0x6E, 0x20, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0xFF, 0x46, 0x01, 0x6B, 0x91, 0x67, -0xB0, 0x67, 0x9E, 0x6E, 0x00, 0xF4, 0x00, 0x6F, -0x04, 0xD3, 0x80, 0x18, 0xFF, 0x46, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF3, 0x0C, 0x4B, 0xE0, 0x9B, -0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, -0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, 0x00, 0x6A, -0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, 0xE1, 0xF7, -0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, -0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, -0x04, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0xFF, 0x46, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, 0x0C, 0x4B, -0xE0, 0x9B, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, -0x18, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, -0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, -0xE2, 0x67, 0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, -0x04, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, -0x70, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, -0x00, 0x6B, 0x91, 0x67, 0x30, 0xF0, 0x20, 0x69, -0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, 0xCA, 0xF4, -0x08, 0x49, 0x04, 0xD3, 0x80, 0x18, 0xFF, 0x46, -0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x57, 0x6E, -0x01, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, -0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, -0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, -0x30, 0xF0, 0x20, 0x6A, 0x8A, 0xF7, 0x50, 0xA2, -0x01, 0x22, 0x20, 0x6A, 0x7F, 0x6F, 0x91, 0x67, -0xB0, 0x67, 0x33, 0x6E, 0x30, 0xF0, 0x20, 0x69, -0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, 0xC0, 0xF3, -0x44, 0x99, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, -0x09, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, -0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, -0x38, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, -0xB0, 0x67, 0x10, 0x6F, 0x01, 0x6A, 0xCA, 0xF4, -0x08, 0x4C, 0xEF, 0x6E, 0x30, 0xF0, 0x20, 0x68, -0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x12, 0x6E, -0x40, 0xEA, 0x08, 0x92, 0x06, 0x72, 0x08, 0x61, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x0C, 0x6C, -0xE1, 0xF7, 0x1F, 0x6D, 0x08, 0x6E, 0x07, 0x10, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x0C, 0x6C, -0xE1, 0xF7, 0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, -0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0x27, 0xF2, 0x69, 0xA2, -0x30, 0xF0, 0x20, 0x68, 0xFF, 0x69, 0x8C, 0xE9, -0x07, 0xD3, 0xC0, 0xF3, 0x64, 0x98, 0x06, 0xD2, -0x24, 0x36, 0x08, 0x6A, 0x01, 0x6D, 0x4D, 0xEE, -0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF4, 0xB0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x02, 0xF5, 0xCC, 0x9B, -0x01, 0x6D, 0x23, 0xF3, 0x00, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x06, 0x93, 0x27, 0xF2, 0x48, 0xA3, -0x03, 0x2A, 0x81, 0xF0, 0x07, 0x4A, 0x02, 0x10, -0xC1, 0xF0, 0x0A, 0x6A, 0x30, 0xF0, 0x20, 0x6C, -0xCA, 0xF4, 0x08, 0x4C, 0xB1, 0x67, 0x56, 0x6E, -0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0xFF, 0x46, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, -0x0C, 0x6C, 0xFF, 0x6D, 0x09, 0x6E, 0x40, 0xEA, -0x07, 0x92, 0x06, 0x72, 0x0A, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, -0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x08, 0x6E, -0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, -0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF3, -0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0xFF, 0x68, 0x8C, 0xE8, -0x27, 0xF2, 0x69, 0xA2, 0x06, 0xD2, 0x04, 0x32, -0x07, 0xD2, 0x08, 0xD3, 0x07, 0x93, 0x30, 0xF0, -0x20, 0x69, 0x08, 0x6A, 0x4D, 0xEB, 0xC0, 0xF3, -0x44, 0x99, 0x01, 0x6D, 0xC3, 0x67, 0x07, 0xD3, -0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF4, 0xB0, 0x9B, -0xC0, 0xF3, 0x44, 0x99, 0xA3, 0xF3, 0x18, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, -0x3F, 0x6D, 0xC5, 0x67, 0xC3, 0xF3, 0x0C, 0x6C, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x07, 0x96, -0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF4, -0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, -0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x99, 0x30, 0xF0, 0x20, 0x69, 0xCA, 0xF4, -0x08, 0x49, 0x23, 0xF3, 0x00, 0x6C, 0xE0, 0xF3, -0x00, 0x6D, 0x12, 0x6E, 0x40, 0xEA, 0x00, 0x6A, -0x91, 0x67, 0xB0, 0x67, 0xDF, 0x6E, 0x10, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, 0x00, 0x6B, -0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, 0x20, 0x6F, -0x04, 0xD3, 0x80, 0x18, 0xFF, 0x46, 0x00, 0x6A, -0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, 0x00, 0xF4, -0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, -0x06, 0x93, 0x27, 0xF2, 0x68, 0xA3, 0x06, 0xD3, -0x35, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, -0x0C, 0x4B, 0xE0, 0x9B, 0x01, 0x6A, 0x91, 0x67, -0xB0, 0x67, 0xDE, 0x6E, 0x04, 0xD2, 0x80, 0x18, -0xFF, 0x46, 0x81, 0xF0, 0x07, 0x6A, 0x91, 0x67, -0xB0, 0x67, 0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, 0x01, 0x6A, -0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF3, 0x0C, 0x4A, 0x06, 0x93, -0xE0, 0x9A, 0x91, 0x67, 0xB0, 0x67, 0x18, 0x6E, -0x04, 0xD3, 0x80, 0x18, 0xFF, 0x46, 0x04, 0x6A, -0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, 0x70, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, 0x06, 0x93, -0x04, 0xD3, 0x3C, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF3, 0x0C, 0x4B, 0xE0, 0x9B, 0x01, 0x6A, -0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0xFF, 0x46, 0x61, 0xF0, 0x08, 0x6A, -0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, 0xE1, 0xF7, -0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, -0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, -0x04, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, 0x0C, 0x4A, -0xE0, 0x9A, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, -0x18, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xFF, 0x46, -0x00, 0x6B, 0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, -0x01, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0xFF, 0x46, -0x04, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, -0x70, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, -0x00, 0x6A, 0x04, 0xD2, 0x91, 0x67, 0x30, 0xF0, -0x20, 0x69, 0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, -0xCA, 0xF4, 0x08, 0x49, 0x80, 0x18, 0xFF, 0x46, -0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x57, 0x6E, -0x01, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, -0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, -0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, -0x30, 0xF0, 0x20, 0x6A, 0x8A, 0xF7, 0x50, 0xA2, -0x01, 0x22, 0x20, 0x6A, 0x91, 0x67, 0xB0, 0x67, -0x33, 0x6E, 0x7F, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0xFF, 0x46, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x44, 0x9A, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, -0x09, 0x6E, 0x40, 0xEA, 0x08, 0x93, 0x06, 0x73, -0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, -0x1F, 0x6D, 0x08, 0x6E, 0x09, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, -0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x38, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x44, 0x9A, 0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0x0D, 0x97, 0x0C, 0x91, -0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, 0x10, 0x4A, -0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x00, 0x69, -0xCA, 0xF4, 0x08, 0x48, 0x0E, 0xD4, 0x0F, 0xD5, -0x90, 0x67, 0xB1, 0x67, 0xEF, 0x6E, 0x04, 0xD1, -0x80, 0x18, 0xFF, 0x46, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF3, 0x10, 0x4B, 0xE0, 0x9B, 0x90, 0x67, -0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD1, 0x80, 0x18, -0xFF, 0x46, 0x0E, 0x90, 0x0F, 0x91, 0x00, 0x6A, -0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6B, 0xCA, 0xF4, -0x08, 0x4B, 0x06, 0xD3, 0x40, 0x99, 0xC0, 0x98, -0x83, 0x67, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF3, 0x10, 0x4A, 0xE0, 0x9A, 0x00, 0x6D, -0x80, 0x18, 0xFF, 0x46, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF3, 0x10, 0x4B, 0xC0, 0x98, 0x41, 0x99, -0xE0, 0x9B, 0x06, 0x94, 0x01, 0x6D, 0x04, 0xD2, -0x80, 0x18, 0xFF, 0x46, 0x07, 0x92, 0x04, 0x48, -0x08, 0x49, 0x01, 0x4A, 0x07, 0xD2, 0x07, 0x93, -0xFF, 0x6A, 0x4C, 0xEB, 0x03, 0x73, 0x58, 0x67, -0x07, 0xD3, 0x08, 0xD2, 0xD6, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF3, 0x0C, 0x9A, 0x06, 0x94, -0x78, 0x67, 0xF0, 0x67, 0x00, 0x6D, 0xDE, 0x6E, -0x04, 0xD3, 0x80, 0x18, 0xFF, 0x46, 0x08, 0x92, -0x06, 0x94, 0xF0, 0x67, 0x01, 0x6D, 0xDE, 0x6E, -0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, 0x0D, 0x97, -0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xC2, 0xF4, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, -0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, 0x30, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF5, 0x10, 0x4A, -0x40, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0xCA, 0xF4, -0x08, 0x48, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, -0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, -0x04, 0x6B, 0x90, 0x67, 0x00, 0x6D, 0x33, 0x6E, -0x0F, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0xFF, 0x46, -0x90, 0x67, 0xF1, 0x67, 0x03, 0x6A, 0x00, 0x6D, -0x3E, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, -0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF5, 0x54, 0x9A, -0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, 0x3F, 0x6E, -0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, 0x00, 0x6B, -0xA3, 0x67, 0x90, 0x67, 0xF1, 0x67, 0xEF, 0x6E, -0x04, 0xD3, 0x80, 0x18, 0xFF, 0x46, 0x30, 0xF0, -0x20, 0x6A, 0x02, 0xF5, 0x10, 0x4A, 0x40, 0x9A, -0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, 0xEF, 0x6E, -0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, 0x04, 0x6B, -0x90, 0x67, 0x01, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, -0x04, 0xD3, 0x80, 0x18, 0xFF, 0x46, 0x30, 0xF0, -0x20, 0x6A, 0x02, 0xF5, 0x58, 0x9A, 0x90, 0x67, -0xF1, 0x67, 0x01, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0xFF, 0x46, 0x90, 0x67, 0xF1, 0x67, -0x00, 0x6A, 0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0xFF, 0x46, 0x30, 0xF0, 0x20, 0x6B, -0x02, 0xF5, 0x10, 0x4B, 0x60, 0x9B, 0x90, 0x67, -0xF1, 0x67, 0x00, 0x6D, 0xEF, 0x6E, 0x04, 0xD3, -0x80, 0x18, 0xFF, 0x46, 0x90, 0x67, 0x06, 0x6A, -0x00, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0xFF, 0x46, 0x03, 0x6B, 0x90, 0x67, -0xF1, 0x67, 0x00, 0x6D, 0x3E, 0x6E, 0x04, 0xD3, -0x80, 0x18, 0xFF, 0x46, 0x30, 0xF0, 0x20, 0x6A, -0x02, 0xF5, 0x5C, 0x9A, 0x90, 0x67, 0xF1, 0x67, -0x00, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, -0xFF, 0x46, 0x00, 0x6A, 0x90, 0x67, 0xF1, 0x67, -0xA2, 0x67, 0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, -0xFF, 0x46, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF5, -0x10, 0x4B, 0x60, 0x9B, 0x90, 0x67, 0xF1, 0x67, -0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, -0xFF, 0x46, 0x90, 0x67, 0x06, 0x6A, 0x01, 0x6D, -0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0xFF, 0x46, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF5, -0x40, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, -0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, -0x00, 0x6B, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, -0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xFF, 0x46, -0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF5, 0x10, 0x4A, -0x40, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, -0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, -0x07, 0x6B, 0x90, 0x67, 0x00, 0x6D, 0x33, 0x6E, -0x0F, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0xFF, 0x46, -0x90, 0x67, 0xF1, 0x67, 0x03, 0x6A, 0x00, 0x6D, -0x3E, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, -0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF5, 0x44, 0x9A, -0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, 0x3F, 0x6E, -0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, 0x00, 0x6B, -0xA3, 0x67, 0x90, 0x67, 0xF1, 0x67, 0xEF, 0x6E, -0x04, 0xD3, 0x80, 0x18, 0xFF, 0x46, 0x30, 0xF0, -0x20, 0x6A, 0x02, 0xF5, 0x10, 0x4A, 0x40, 0x9A, -0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, 0xEF, 0x6E, -0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, 0x07, 0x6B, -0x90, 0x67, 0x01, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, -0x04, 0xD3, 0x80, 0x18, 0xFF, 0x46, 0x30, 0xF0, -0x20, 0x6A, 0x22, 0xF5, 0x48, 0x9A, 0x90, 0x67, -0xF1, 0x67, 0x01, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0xFF, 0x46, 0x90, 0x67, 0xF1, 0x67, -0x00, 0x6A, 0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0xFF, 0x46, 0x00, 0x6B, 0xA3, 0x67, -0x90, 0x67, 0xF1, 0x67, 0x19, 0x6E, 0x04, 0xD3, -0x80, 0x18, 0xFF, 0x46, 0x90, 0x67, 0xF1, 0x67, -0x00, 0x6A, 0x01, 0x6D, 0x19, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0xFF, 0x46, 0x09, 0x97, 0x08, 0x91, -0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xED, 0x06, 0xD4, -0x07, 0xD5, 0x01, 0x68, 0x00, 0x69, 0x85, 0xF5, -0x1C, 0x6C, 0xFF, 0x6D, 0x80, 0x18, 0x1F, 0x14, -0x55, 0x72, 0x11, 0x61, 0x07, 0x92, 0x03, 0x2A, -0x00, 0x68, 0x50, 0x67, 0x17, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x62, 0xF3, 0xB8, 0x9A, 0x03, 0xF3, -0x08, 0x6C, 0xFF, 0x68, 0x80, 0x18, 0x1F, 0x14, -0x4C, 0xE8, 0x00, 0x6A, 0x0B, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x64, 0x6C, -0x01, 0x49, 0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, -0x4C, 0xE9, 0x01, 0x6A, 0xA1, 0xF3, 0x18, 0x59, -0x02, 0x61, 0x01, 0x68, 0x01, 0x10, 0xD7, 0x2A, -0x06, 0x95, 0x30, 0xF0, 0x20, 0x69, 0xCA, 0xF4, -0x08, 0x49, 0x91, 0x67, 0x00, 0x6A, 0x8F, 0x6E, -0x08, 0xF0, 0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0xFF, 0x46, 0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x06, 0x95, 0x02, 0xF5, 0xE8, 0x9A, -0x91, 0x67, 0x00, 0x6E, 0x80, 0x18, 0xFF, 0x46, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, -0x0A, 0x6C, 0x30, 0xF0, 0x20, 0x69, 0x40, 0xEA, -0x06, 0x92, 0x01, 0x6D, 0x08, 0x6B, 0x44, 0x36, -0xC0, 0xF3, 0x44, 0x99, 0x03, 0xF3, 0x00, 0x6C, -0xAB, 0xED, 0x6D, 0xEE, 0x40, 0xEA, 0x0A, 0x28, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, -0x23, 0xF3, 0x00, 0x6C, 0x22, 0xF5, 0xAC, 0x9B, -0x02, 0x6E, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x99, 0x22, 0xF5, 0xAC, 0x9B, -0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, -0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x00, 0x6A, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x00, 0x68, 0x05, 0xD5, 0x04, 0xD4, 0x05, 0x92, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, 0x10, 0x4B, -0xE0, 0x9B, 0xC0, 0x9A, 0x30, 0xF0, 0x20, 0x69, -0xCA, 0xF4, 0x08, 0x49, 0x91, 0x67, 0x00, 0x6D, -0x80, 0x18, 0xBA, 0x46, 0x04, 0x93, 0x91, 0x67, -0x01, 0x6D, 0x40, 0xDB, 0x05, 0x92, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF3, 0x10, 0x4B, 0xE0, 0x9B, -0xC0, 0x9A, 0x01, 0x48, 0x80, 0x18, 0xBA, 0x46, -0x04, 0x93, 0x41, 0xDB, 0xFF, 0x6A, 0x4C, 0xE8, -0x05, 0x92, 0x08, 0x4B, 0x03, 0x70, 0x04, 0x4A, -0x05, 0xD2, 0x04, 0xD3, 0xD8, 0x61, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x69, 0x04, 0x67, 0x30, 0xF0, 0x20, 0x6A, -0x2C, 0xE8, 0xC0, 0xF3, 0x44, 0x9A, 0x08, 0x6B, -0x04, 0x36, 0x01, 0x6D, 0x6D, 0xEE, 0x03, 0xF3, -0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF3, 0xF0, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0xCA, 0xF4, 0x08, 0x4C, 0xB0, 0x67, -0x58, 0x6E, 0x80, 0x18, 0xBA, 0x46, 0x30, 0xF0, -0x20, 0x6B, 0x22, 0xF5, 0x70, 0x9B, 0x4C, 0xEB, -0x62, 0x33, 0x7A, 0x33, 0x2C, 0xEB, 0x0B, 0x23, -0x3F, 0x73, 0x09, 0x60, 0x07, 0xF7, 0x00, 0x6B, -0x4C, 0xEB, 0x62, 0x32, 0x2C, 0xEA, 0x03, 0x22, -0x3F, 0x72, 0x00, 0x6A, 0x56, 0x61, 0x30, 0xF0, -0x20, 0x69, 0xCA, 0xF4, 0x08, 0x49, 0x00, 0x6A, -0x91, 0x67, 0xB0, 0x67, 0x57, 0x6E, 0x01, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, 0x01, 0x6A, -0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, 0x10, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, 0x30, 0xF0, -0x20, 0x6A, 0x8A, 0xF7, 0x50, 0xA2, 0x01, 0x22, -0x20, 0x6A, 0x91, 0x67, 0x30, 0xF0, 0x20, 0x69, -0xCA, 0xF4, 0x08, 0x49, 0xB0, 0x67, 0x33, 0x6E, -0x7F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, -0x20, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, -0x07, 0xF7, 0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0xFF, 0x46, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF5, -0xF0, 0x9A, 0x20, 0x6B, 0x91, 0x67, 0xB0, 0x67, -0x08, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xFF, 0x46, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, 0x10, 0x4A, -0xE0, 0x9A, 0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, -0x80, 0x18, 0xBA, 0x46, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF3, 0x10, 0x4B, 0xE0, 0x9B, 0x91, 0x67, -0xB0, 0x67, 0x58, 0x6E, 0x80, 0x18, 0xBA, 0x46, -0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, -0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, -0x01, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x04, 0x67, -0x4C, 0xE8, 0xAC, 0xEA, 0x0E, 0x22, 0x08, 0x6A, -0x04, 0x31, 0x4D, 0xE9, 0x01, 0x6B, 0x44, 0x40, -0x64, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xCA, 0xF4, -0x08, 0x4A, 0x06, 0xD2, 0x6D, 0xE9, 0x06, 0x6A, -0x0D, 0x10, 0x08, 0x6A, 0x04, 0x31, 0x4D, 0xE9, -0x01, 0x6B, 0x44, 0x40, 0x64, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xCA, 0xF4, 0x08, 0x4A, 0x06, 0xD2, -0x6D, 0xE9, 0x04, 0x6A, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x06, 0x94, 0x02, 0xF5, 0xE8, 0x9A, -0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, 0xFF, 0x46, -0x06, 0x94, 0x08, 0xF0, 0x00, 0x6F, 0x01, 0x6B, -0x8F, 0x6E, 0xB0, 0x67, 0x04, 0xD3, 0x80, 0x18, -0xFF, 0x46, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x01, 0x6C, -0x80, 0x18, 0x58, 0x08, 0x90, 0x67, 0x00, 0x6D, -0x80, 0x18, 0xC0, 0x07, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, 0xD1, 0x67, -0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, -0x01, 0x6D, 0xC1, 0x41, 0xAB, 0xED, 0x03, 0xF3, -0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6C, 0xEF, 0x6E, 0x10, 0x6F, -0x00, 0x6A, 0xCA, 0xF4, 0x08, 0x4C, 0xB0, 0x67, -0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, 0x01, 0x6D, -0x90, 0x67, 0x80, 0x18, 0xC0, 0x07, 0x00, 0x6C, -0x80, 0x18, 0x58, 0x08, 0x90, 0x67, 0x00, 0x6D, -0x80, 0x18, 0x8E, 0x0B, 0x22, 0x67, 0x04, 0x2A, -0x01, 0x6C, 0xB0, 0x67, 0x00, 0x18, 0x5C, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0x41, 0xE0, 0x27, 0xF2, 0x39, 0xC0, 0x51, 0x67, -0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x04, 0x67, -0x4C, 0xED, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x8A, 0xF7, 0x51, 0xA2, 0x06, 0x6B, 0x08, 0xD5, -0x4E, 0xEB, 0x01, 0x5B, 0x98, 0x67, 0x07, 0xD4, -0x16, 0x2D, 0x04, 0x24, 0xFF, 0x6A, 0x04, 0x33, -0x01, 0x4A, 0x03, 0x10, 0x04, 0x4A, 0x04, 0x33, -0x40, 0x32, 0x4D, 0xEB, 0x84, 0x40, 0x01, 0x6A, -0x44, 0xEC, 0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, -0xCA, 0xF4, 0x08, 0x4A, 0x08, 0x69, 0x06, 0xD2, -0x6D, 0xE9, 0x04, 0x6A, 0x19, 0x10, 0x08, 0x93, -0x01, 0x73, 0x22, 0x61, 0x07, 0x94, 0x04, 0x24, -0xFF, 0x6A, 0x04, 0x33, 0x01, 0x4A, 0x03, 0x10, -0x07, 0x4A, 0x04, 0x33, 0x40, 0x32, 0x4D, 0xEB, -0x84, 0x40, 0x01, 0x6A, 0x44, 0xEC, 0x4D, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0xCA, 0xF4, 0x08, 0x4A, -0x08, 0x69, 0x06, 0xD2, 0x6D, 0xE9, 0x06, 0x6A, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0x94, -0x02, 0xF5, 0xE8, 0x9A, 0xB0, 0x67, 0x00, 0x6E, -0x80, 0x18, 0xFF, 0x46, 0x01, 0x6A, 0x25, 0x10, -0x08, 0x93, 0x00, 0x69, 0x02, 0x73, 0x2F, 0x61, -0x07, 0x94, 0x04, 0x24, 0xFF, 0x6A, 0x04, 0x33, -0x01, 0x4A, 0x03, 0x10, 0x0A, 0x4A, 0x04, 0x33, -0x40, 0x32, 0x4D, 0xEB, 0x84, 0x40, 0x01, 0x6A, -0x44, 0xEC, 0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, -0xCA, 0xF4, 0x08, 0x4A, 0x06, 0xD2, 0x07, 0x6A, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0x94, -0x02, 0xF5, 0xE8, 0x9A, 0x08, 0x69, 0xB0, 0x67, -0x00, 0x6E, 0x6D, 0xE9, 0x80, 0x18, 0xFF, 0x46, -0x00, 0x6A, 0x06, 0x94, 0xB0, 0x67, 0x8F, 0x6E, -0x08, 0xF0, 0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0xFF, 0x46, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x01, 0x6C, -0x80, 0x18, 0x58, 0x08, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, 0x03, 0xF3, -0x00, 0x6C, 0xAB, 0xED, 0xD1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF3, 0x44, 0x9C, -0x01, 0x6D, 0xC1, 0x41, 0xAB, 0xED, 0x03, 0xF3, -0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, 0x40, 0xEA, -0x01, 0x6D, 0x90, 0x67, 0x80, 0x18, 0x8E, 0x0B, -0x00, 0x6C, 0x06, 0xD2, 0x80, 0x18, 0x58, 0x08, -0x04, 0x32, 0x09, 0xD2, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x9B, 0x09, 0x93, 0x01, 0x6D, -0x08, 0x6E, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, -0x6D, 0xEE, 0x40, 0xEA, 0x08, 0x94, 0x1C, 0x2C, -0x7D, 0x67, 0x87, 0x43, 0x11, 0x4C, 0x60, 0xA4, -0x30, 0xF0, 0x20, 0x69, 0xD3, 0xF6, 0x40, 0x40, -0x06, 0x94, 0x44, 0x32, 0x63, 0xF5, 0x08, 0x49, -0x29, 0xE2, 0x60, 0xC2, 0x48, 0x2C, 0x07, 0x92, -0x09, 0x22, 0x01, 0x6D, 0x23, 0xF3, 0x18, 0x4C, -0xAB, 0xED, 0x80, 0x18, 0x1F, 0x14, 0x61, 0xF7, -0x1C, 0x48, 0x35, 0x10, 0x02, 0x6C, 0x38, 0x10, -0x08, 0x93, 0x02, 0x73, 0x38, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF3, 0xF0, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0x30, 0xF0, 0x20, 0x69, 0x63, 0xF5, -0x08, 0x49, 0xCA, 0xF4, 0x08, 0x4C, 0xB0, 0x67, -0x00, 0x6E, 0x80, 0x18, 0xBA, 0x46, 0x27, 0xF2, -0x8E, 0xA1, 0xFF, 0x6B, 0x56, 0x32, 0x6C, 0xEA, -0x80, 0x34, 0xD3, 0xF6, 0x6C, 0x40, 0x8D, 0xEA, -0x64, 0x33, 0x09, 0x94, 0x2D, 0xE3, 0x40, 0xCB, -0x7D, 0x67, 0x29, 0xE4, 0x87, 0x43, 0x11, 0x4C, -0x60, 0xA4, 0x06, 0x94, 0xA7, 0xF5, 0x61, 0xC2, -0x12, 0x2C, 0x07, 0x92, 0x0C, 0x22, 0x01, 0x6D, -0x23, 0xF3, 0x1C, 0x4C, 0xAB, 0xED, 0x80, 0x18, -0x1F, 0x14, 0x61, 0xF7, 0x1E, 0x48, 0x08, 0x30, -0x25, 0xE0, 0x40, 0xD9, 0x04, 0x10, 0x03, 0x6C, -0xB0, 0x67, 0x00, 0x18, 0x5C, 0xC2, 0x06, 0x92, -0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x30, 0xF0, -0x20, 0x68, 0x63, 0xF5, 0x08, 0x48, 0x00, 0x6B, -0x8C, 0xEA, 0xE7, 0xF5, 0x6C, 0xC0, 0x27, 0x2A, -0x27, 0xF2, 0x4A, 0xA0, 0x24, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF3, 0xF0, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0xCA, 0xF4, 0x08, 0x4C, 0x00, 0x6D, -0x18, 0x6E, 0x80, 0x18, 0xBA, 0x46, 0xA7, 0xF5, -0x68, 0x98, 0xA7, 0xF5, 0x50, 0xD8, 0x00, 0x69, -0x4E, 0xEB, 0x05, 0x23, 0xA7, 0xF5, 0x6C, 0x98, -0x6E, 0xEA, 0x0D, 0x2A, 0x01, 0x69, 0x91, 0x67, -0x02, 0x6D, 0x80, 0x18, 0x04, 0x41, 0x91, 0x67, -0x80, 0x18, 0xD3, 0x40, 0x01, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0x4B, 0xF3, 0x74, 0xC2, 0x30, 0xF0, -0x20, 0x68, 0x63, 0xF5, 0x08, 0x48, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xE7, 0xF5, -0xCC, 0xA0, 0xC0, 0xF3, 0x44, 0x9A, 0xE2, 0xF3, -0xAC, 0x9B, 0xE3, 0xF3, 0x10, 0x6C, 0x40, 0xEA, -0xE7, 0xF5, 0x4C, 0xA0, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x42, 0xF3, 0xB4, 0x9A, 0x63, 0xF6, 0x1C, 0x6C, -0x80, 0x18, 0x1F, 0x14, 0x06, 0x22, 0x01, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF3, 0x78, 0xC2, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF3, -0x58, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, -0xF0, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xCA, 0xF4, -0x08, 0x4C, 0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, -0xBA, 0x46, 0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF3, -0x8C, 0x9C, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, -0x08, 0x4B, 0x4C, 0xEC, 0x82, 0x34, 0x82, 0x34, -0x27, 0xF2, 0x96, 0xC3, 0x06, 0xF0, 0x00, 0x6C, -0x4C, 0xEC, 0x82, 0x34, 0x92, 0x34, 0x27, 0xF2, -0x57, 0xC3, 0x27, 0xF2, 0x98, 0xC3, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, 0x80, 0x18, -0x26, 0x0D, 0x03, 0x28, 0x00, 0x6C, 0xA4, 0x67, -0x07, 0x10, 0x01, 0x70, 0x03, 0x61, 0x00, 0x6C, -0x01, 0x6D, 0x02, 0x10, 0x00, 0x6C, 0x02, 0x6D, -0x80, 0x18, 0x04, 0x41, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x24, 0x67, -0x4C, 0xE9, 0xAC, 0xEA, 0x01, 0x72, 0x43, 0x61, -0x44, 0x41, 0x01, 0x6B, 0x64, 0xEA, 0x00, 0xF2, -0x08, 0x6A, 0x4D, 0xEB, 0x04, 0x6A, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF5, 0xE8, 0x9A, -0x30, 0xF0, 0x20, 0x68, 0xCA, 0xF4, 0x08, 0x48, -0x90, 0x67, 0xB1, 0x67, 0x00, 0x6E, 0x06, 0xD3, -0x80, 0x18, 0xFF, 0x46, 0x01, 0x6C, 0x08, 0xF0, -0x00, 0x6F, 0xB1, 0x67, 0x04, 0xD4, 0x8F, 0x6E, -0x90, 0x67, 0x80, 0x18, 0xFF, 0x46, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x30, 0xF0, -0x20, 0x68, 0x0A, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x06, 0x96, 0x01, 0x6D, 0x03, 0xF3, -0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x06, 0x96, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xAB, 0xED, -0x01, 0x4E, 0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, -0x01, 0x6C, 0x40, 0xEA, 0x91, 0x67, 0x01, 0x6D, -0x80, 0x18, 0x8E, 0x0B, 0xF0, 0x10, 0x02, 0x72, -0x01, 0x6A, 0xE0, 0xF0, 0x0C, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x8A, 0xF7, 0x56, 0xA2, 0x00, 0x68, -0x09, 0x72, 0x0C, 0x60, 0x12, 0x72, 0x01, 0x68, -0x09, 0x60, 0x1B, 0x72, 0x02, 0x68, 0x06, 0x60, -0x24, 0x68, 0x4E, 0xE8, 0x01, 0x58, 0x18, 0x67, -0x04, 0x6A, 0x03, 0xE2, 0x24, 0x32, 0x08, 0xD2, -0x08, 0x93, 0x08, 0x6A, 0x30, 0xF0, 0x20, 0x6C, -0x4D, 0xEB, 0xC0, 0xF3, 0x44, 0x9C, 0x01, 0x6D, -0xC3, 0x67, 0x08, 0xD3, 0x03, 0xF3, 0x00, 0x6C, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0x06, 0xD2, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x06, 0x93, -0x01, 0x6D, 0xAB, 0xED, 0x27, 0xF2, 0xCE, 0xA3, -0xC3, 0xF3, 0x0C, 0x6C, 0x40, 0xEA, 0x44, 0x41, -0x01, 0x6C, 0x30, 0xF0, 0x20, 0x6B, 0x84, 0xEA, -0x00, 0xF3, 0x08, 0x6A, 0x4D, 0xEC, 0x80, 0xF3, -0x4C, 0x9B, 0x07, 0xD4, 0x0A, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF3, 0x44, 0x9C, -0x07, 0x96, 0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x07, 0x96, 0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, -0xAB, 0xED, 0x01, 0x4E, 0x03, 0xF3, 0x00, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0x80, 0xF3, -0x4C, 0x9C, 0xC8, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF3, 0x10, 0x4B, 0xE0, 0x9B, -0x30, 0xF0, 0x20, 0x6A, 0xCA, 0xF4, 0x08, 0x4A, -0x82, 0x67, 0xB1, 0x67, 0x00, 0x6E, 0x07, 0xD2, -0x80, 0x18, 0xBA, 0x46, 0x91, 0x67, 0x01, 0x6D, -0x80, 0x18, 0x8E, 0x0B, 0x01, 0x72, 0x0A, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF1, 0x18, 0x4A, -0x41, 0xE0, 0x40, 0xA0, 0x06, 0x94, 0x27, 0xF2, -0x4E, 0xC4, 0x70, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF3, 0x10, 0x4A, 0x07, 0x94, 0xE0, 0x9A, -0xB1, 0x67, 0x00, 0x6E, 0x80, 0x18, 0xBA, 0x46, -0x30, 0xF0, 0x20, 0x6B, 0x22, 0x67, 0x08, 0x96, -0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, 0x03, 0xF3, -0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xE3, 0xF7, -0x00, 0x6A, 0x2C, 0xEA, 0x06, 0x93, 0x56, 0x34, -0x96, 0x32, 0x27, 0xF2, 0x50, 0xDB, 0x1F, 0x6A, -0x8C, 0xEA, 0x02, 0x5A, 0xFF, 0x6B, 0x0B, 0x60, -0x03, 0x70, 0x03, 0x60, 0x01, 0x48, 0x6C, 0xE8, -0x4F, 0x10, 0x06, 0x94, 0x01, 0x6B, 0x03, 0x68, -0xE7, 0xF5, 0x65, 0xC4, 0x49, 0x10, 0x0A, 0x5A, -0x0B, 0x61, 0x04, 0x20, 0xFF, 0x48, 0x6C, 0xE8, -0x01, 0x6B, 0x0B, 0x10, 0x06, 0x94, 0x01, 0x6B, -0xE7, 0xF5, 0x65, 0xC4, 0x01, 0x6B, 0x09, 0x10, -0x06, 0x94, 0x00, 0x6B, 0xE7, 0xF5, 0x65, 0xC4, -0x00, 0x6B, 0x03, 0x20, 0x04, 0x58, 0x01, 0x61, -0x03, 0x68, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF5, -0x08, 0x4C, 0xE7, 0xF5, 0xA5, 0xA4, 0x01, 0x5D, -0xB8, 0x67, 0xAB, 0xED, 0xAC, 0xEB, 0x30, 0xF0, -0x20, 0x6D, 0xC2, 0xF1, 0x18, 0x4D, 0xA1, 0xE0, -0xA0, 0xA0, 0x27, 0xF2, 0xAE, 0xC4, 0x0F, 0x2B, -0x27, 0xF2, 0xCE, 0xA4, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x64, 0x9B, 0xC0, 0x36, 0x01, 0x6D, -0x4D, 0xEE, 0xE3, 0xF3, 0x08, 0x6C, 0xAB, 0xED, -0x40, 0xEB, 0x00, 0x6A, 0x0C, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, -0xE3, 0xF3, 0x08, 0x6C, 0xAB, 0xED, 0xFF, 0xF7, -0x1F, 0x6E, 0x40, 0xEA, 0x01, 0x6A, 0x0D, 0x97, -0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, -0x01, 0x6B, 0xC8, 0x17, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x8A, 0xF7, -0x73, 0xA2, 0xFF, 0x68, 0x8C, 0xE8, 0x06, 0x5B, -0x01, 0x6A, 0x7C, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x68, 0x33, 0xA2, 0xF1, 0x08, 0x4A, 0x69, 0xE2, -0x40, 0x9A, 0x00, 0xEA, 0x90, 0x67, 0x80, 0x18, -0x39, 0x09, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, -0x31, 0x0C, 0x62, 0x10, 0x90, 0x67, 0x80, 0x18, -0xE7, 0x08, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, -0x75, 0x0C, 0x52, 0x22, 0x03, 0x6C, 0x98, 0xE8, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4B, -0x12, 0xEC, 0x71, 0xE4, 0xC7, 0xF5, 0xB2, 0xA4, -0x02, 0x5D, 0x04, 0x60, 0x01, 0x4D, 0xC7, 0xF5, -0xB2, 0xC4, 0xEB, 0x17, 0x61, 0xE0, 0x01, 0x6C, -0x39, 0x10, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, -0x7E, 0x08, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, -0x08, 0x4A, 0x00, 0x6B, 0xE7, 0xF5, 0x65, 0xC2, -0x90, 0x67, 0x02, 0x6D, 0x80, 0x18, 0x4F, 0x0D, -0x2F, 0x22, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0x34, -0x63, 0xF5, 0x08, 0x4B, 0x6D, 0xE4, 0xC7, 0xF5, -0x9E, 0xA3, 0x0A, 0x5C, 0x25, 0x60, 0x01, 0x4C, -0xC7, 0xF5, 0x9E, 0xC3, 0xED, 0x17, 0x90, 0x67, -0x00, 0x6D, 0x80, 0x18, 0x7E, 0x08, 0x90, 0x67, -0x02, 0x6D, 0x80, 0x18, 0x75, 0x0C, 0x18, 0x22, -0x03, 0x6C, 0x98, 0xE8, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF5, 0x08, 0x4B, 0x12, 0xEC, 0x71, 0xE4, -0xC7, 0xF5, 0xB3, 0xA4, 0x02, 0x5D, 0x04, 0x60, -0x01, 0x4D, 0xC7, 0xF5, 0xB3, 0xC4, 0xEB, 0x17, -0x61, 0xE0, 0x02, 0x6C, 0x67, 0xF3, 0x84, 0xC0, -0x06, 0x6C, 0x27, 0xF2, 0x8B, 0xC3, 0x12, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4B, -0x27, 0xF2, 0x8B, 0xA3, 0x01, 0x4C, 0xF5, 0x17, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0x27, 0xF2, 0x6B, 0xA2, 0x01, 0x4B, 0x27, 0xF2, -0x6B, 0xC2, 0x01, 0x6A, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0x27, 0xF2, 0x69, 0xA2, -0x27, 0xF2, 0x4C, 0xA2, 0x08, 0xD3, 0x06, 0x5A, -0x76, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x48, 0x32, -0xC2, 0xF1, 0x00, 0x4B, 0x4D, 0xE3, 0x40, 0x9B, -0x00, 0xEA, 0x00, 0x6C, 0x80, 0x18, 0xF1, 0x0D, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0x27, 0xF2, 0x6B, 0xA2, 0x06, 0x73, 0xF5, 0x61, -0x2A, 0x10, 0x00, 0x6C, 0x80, 0x18, 0x29, 0x0A, -0x00, 0x6C, 0xA4, 0x67, 0x37, 0x10, 0x00, 0x6C, -0x80, 0x18, 0xF1, 0x09, 0x00, 0x6C, 0xA4, 0x67, -0x80, 0x18, 0x75, 0x0C, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF5, 0x08, 0x4B, 0x27, 0xF2, 0x94, 0xA3, -0x01, 0x4C, 0x27, 0xF2, 0x94, 0xC3, 0x42, 0x22, -0xC7, 0xF5, 0x51, 0xA3, 0x03, 0x5A, 0x3E, 0x60, -0x01, 0x4A, 0xC7, 0xF5, 0x51, 0xC3, 0x43, 0x10, -0x01, 0x6C, 0x80, 0x18, 0xF1, 0x0D, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, 0x27, 0xF2, -0x6B, 0xA2, 0x06, 0x73, 0xF5, 0x61, 0x27, 0xF2, -0x6C, 0xA2, 0x01, 0x4B, 0x27, 0xF2, 0x6C, 0xC2, -0x78, 0x67, 0x27, 0xF2, 0x6B, 0xC2, 0x27, 0xF2, -0x74, 0xA2, 0x01, 0x4B, 0x27, 0xF2, 0x74, 0xC2, -0x2A, 0x10, 0x01, 0x6C, 0x80, 0x18, 0x29, 0x0A, -0x01, 0x6C, 0x00, 0x6D, 0x80, 0x18, 0x31, 0x0C, -0x19, 0x10, 0x01, 0x6C, 0x80, 0x18, 0xF1, 0x09, -0x01, 0x6C, 0x00, 0x6D, 0x80, 0x18, 0x75, 0x0C, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4B, -0x27, 0xF2, 0x94, 0xA3, 0x01, 0x4C, 0x27, 0xF2, -0x94, 0xC3, 0x08, 0x22, 0xC7, 0xF5, 0x54, 0xA3, -0x03, 0x5A, 0x04, 0x60, 0x01, 0x4A, 0xC7, 0xF5, -0x54, 0xC3, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0x27, 0xF2, 0x6C, 0xA2, -0x01, 0x4B, 0x27, 0xF2, 0x6C, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x8A, 0xF7, 0x54, 0xA2, 0x06, 0x72, -0x80, 0xF0, 0x08, 0x61, 0x30, 0xF0, 0x20, 0x69, -0x00, 0x6A, 0x4B, 0xF3, 0x18, 0x49, 0x06, 0xD2, -0x06, 0x92, 0xFF, 0x6B, 0x30, 0xF0, 0x20, 0x68, -0x6C, 0xEA, 0x06, 0x93, 0x07, 0xD2, 0x01, 0x6D, -0x64, 0x36, 0xC0, 0xF3, 0x64, 0x98, 0x08, 0x6A, -0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, -0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF4, -0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, -0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0x08, 0x92, 0x06, 0x72, -0x1A, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, -0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, -0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xC0, 0x99, 0x01, 0x6D, 0x23, 0xF3, -0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x01, 0x6D, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x1C, 0x6C, -0xAB, 0xED, 0xC2, 0x99, 0x21, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x62, 0xF3, 0xB8, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, -0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x01, 0x6D, 0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, -0x14, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, -0x01, 0x6D, 0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0xC2, 0xF4, 0xB0, 0x9B, 0xC0, 0xF3, -0x44, 0x9A, 0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, -0x40, 0xEA, 0x03, 0x6A, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x07, 0x95, 0x02, 0xF5, 0xE8, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0xCA, 0xF4, 0x08, 0x4C, -0x00, 0x6E, 0x80, 0x18, 0xFF, 0x46, 0x06, 0x92, -0x04, 0x49, 0x01, 0x4A, 0x02, 0x72, 0x06, 0xD2, -0x7F, 0xF7, 0x1E, 0x61, 0x0D, 0x97, 0x0C, 0x91, -0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x8A, 0xF7, 0x51, 0xA2, -0xFF, 0x69, 0x8C, 0xE9, 0x02, 0x72, 0x02, 0x6A, -0x05, 0xD2, 0x02, 0x60, 0x04, 0x6B, 0x05, 0xD3, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0x08, 0x6E, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, -0x40, 0xEA, 0x01, 0x6D, 0x03, 0xF3, 0x08, 0x6C, -0xAB, 0xED, 0x80, 0x18, 0x1F, 0x14, 0x04, 0xD2, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, -0x06, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, 0x80, 0x6D, -0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x03, 0xF3, 0x00, 0x6C, 0x06, 0x6D, 0x01, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, -0x08, 0x6C, 0x80, 0x6D, 0x01, 0x6E, 0x40, 0xEA, -0x00, 0x68, 0x91, 0x67, 0x80, 0x18, 0x37, 0x0E, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0x27, 0xF2, 0x6C, 0xA2, 0x06, 0x73, 0x0B, 0x60, -0x05, 0x21, 0x27, 0xF2, 0x54, 0xA2, 0x05, 0x93, -0x6E, 0xEA, 0x05, 0x22, 0x01, 0x48, 0xFF, 0x6A, -0x4C, 0xE8, 0x64, 0x70, 0xEA, 0x61, 0x30, 0xF0, -0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, -0x00, 0x6C, 0x06, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, 0x03, 0xF3, -0x08, 0x69, 0x01, 0x6D, 0x91, 0x67, 0xAB, 0xED, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, -0x00, 0x6C, 0x06, 0x6D, 0x01, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, 0x01, 0x6D, -0x91, 0x67, 0xAB, 0xED, 0x40, 0xEA, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF3, 0xF0, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0xCA, 0xF4, 0x08, 0x4C, 0x00, 0x6D, 0x18, 0x6E, -0x80, 0x18, 0xBA, 0x46, 0x30, 0xF0, 0x20, 0x6B, -0x06, 0xF0, 0x00, 0x6C, 0x63, 0xF5, 0x08, 0x4B, -0x4C, 0xEC, 0xA7, 0xF5, 0x50, 0xDB, 0x82, 0x32, -0x52, 0x32, 0x02, 0x72, 0x0A, 0x60, 0x03, 0x6C, -0x4E, 0xEC, 0x04, 0x24, 0x01, 0x72, 0x02, 0x6A, -0x07, 0x60, 0x05, 0x10, 0x27, 0xF2, 0x89, 0xC3, -0x05, 0x10, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, -0x27, 0xF2, 0x49, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF3, 0x6C, 0x9B, 0xA7, 0xF5, 0x90, 0x9A, -0x8C, 0xEB, 0x62, 0x33, 0x62, 0x33, 0x27, 0xF2, -0x68, 0xC2, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xF1, 0x63, 0x1D, 0x62, 0x1C, 0xD1, 0x1B, 0xD0, -0x08, 0xA4, 0x02, 0x6A, 0x01, 0x69, 0x0C, 0xEA, -0x46, 0x32, 0x18, 0xD2, 0x80, 0x18, 0x77, 0x04, -0x80, 0x18, 0x00, 0x0F, 0x80, 0x18, 0x26, 0x0D, -0x90, 0x67, 0x2C, 0xEC, 0x00, 0x6D, 0x80, 0x18, -0xFF, 0x0C, 0x80, 0xF0, 0x03, 0x2A, 0x30, 0xF0, -0x20, 0x68, 0x63, 0xF5, 0x08, 0x48, 0x27, 0xF2, -0x6A, 0xA0, 0x27, 0xF2, 0x4C, 0xC0, 0x27, 0xF2, -0x4B, 0xC0, 0x01, 0x4B, 0x27, 0xF2, 0x6A, 0xC0, -0x27, 0xF2, 0x54, 0xC0, 0x27, 0xF2, 0x35, 0xC0, -0x38, 0x6C, 0x80, 0x18, 0x13, 0x08, 0x00, 0x6C, -0xE7, 0xF5, 0x48, 0xD8, 0xA4, 0x67, 0x00, 0x18, -0x5C, 0xC2, 0x30, 0xF0, 0x20, 0x6E, 0x30, 0xF0, -0x20, 0x6F, 0x04, 0x04, 0x0D, 0x05, 0x82, 0xF0, -0x08, 0x4E, 0x82, 0xF0, 0x14, 0x4F, 0x80, 0x18, -0x63, 0x08, 0x30, 0xF0, 0x20, 0x6D, 0x07, 0x04, -0xE2, 0xF0, 0x08, 0x4D, 0x80, 0x18, 0xD0, 0x0B, -0x00, 0x68, 0x80, 0x18, 0x89, 0x07, 0x01, 0x6C, -0x80, 0x18, 0xCC, 0x04, 0x18, 0x94, 0x80, 0x18, -0xC4, 0x0E, 0x00, 0x6C, 0x80, 0x18, 0xCC, 0x04, -0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF0, 0x08, 0x4C, -0x07, 0x05, 0x80, 0x18, 0xC2, 0x0A, 0x30, 0xF0, -0x20, 0x6E, 0x30, 0xF0, 0x20, 0x6F, 0x04, 0x04, -0x0D, 0x05, 0x82, 0xF0, 0x08, 0x4E, 0x82, 0xF0, -0x14, 0x4F, 0x80, 0x18, 0x46, 0x07, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, 0x27, 0xF2, -0x6C, 0xA2, 0x06, 0x73, 0x0E, 0x60, 0xFF, 0x6B, -0x01, 0x48, 0x6C, 0xE8, 0x00, 0x6B, 0x27, 0xF2, -0x74, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x48, 0x9A, 0x32, 0x6C, 0x40, 0xEA, 0x03, 0x70, -0xCC, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x00, 0x6C, -0x80, 0x18, 0xD3, 0x40, 0xC0, 0xF3, 0x44, 0x98, -0x03, 0xF3, 0x00, 0x6C, 0xFF, 0x6D, 0x08, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, -0x10, 0x69, 0x91, 0x67, 0xFF, 0x6D, 0xAA, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, -0x00, 0x6C, 0xFF, 0x6D, 0x0A, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0xFF, 0x6D, -0xAA, 0x6E, 0x40, 0xEA, 0x1D, 0x97, 0x1C, 0x91, -0x1B, 0x90, 0x00, 0x6A, 0x0F, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, -0x20, 0x6C, 0x03, 0xF6, 0x10, 0x4C, 0x07, 0x6E, -0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4B, -0xA0, 0xA4, 0xE0, 0xF0, 0xEE, 0xA3, 0x02, 0x6A, -0x01, 0x6E, 0x4B, 0xEA, 0xCC, 0xED, 0xEC, 0xEA, -0xAD, 0xEA, 0xE0, 0xF0, 0x4E, 0xC3, 0xA1, 0xA4, -0xCC, 0xEA, 0xE0, 0xF0, 0xAF, 0xC3, 0xFF, 0x6D, -0x0D, 0x22, 0x61, 0xA4, 0x30, 0xF0, 0x20, 0x6A, -0x02, 0xF6, 0x58, 0x9A, 0x74, 0x33, 0x40, 0x6C, -0x4D, 0xE3, 0x40, 0xA3, 0xAC, 0xEA, 0x8D, 0xEA, -0xAC, 0xEA, 0x0A, 0x10, 0x61, 0xA4, 0x30, 0xF0, -0x20, 0x6A, 0x02, 0xF6, 0x58, 0x9A, 0x74, 0x33, -0x4D, 0xE3, 0x80, 0xA3, 0xBF, 0x6A, 0x8C, 0xEA, -0x40, 0xC3, 0x20, 0xE8, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x02, 0xF6, 0x5C, 0x9A, 0x60, 0xA2, 0x03, 0x6A, -0x6C, 0xEA, 0x10, 0x6B, 0x64, 0xEA, 0xFF, 0x6A, -0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, -0x40, 0x9A, 0x04, 0xD3, 0x40, 0x9A, 0x05, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, 0x44, 0x9A, -0x00, 0x9A, 0x05, 0x92, 0x0A, 0xEA, 0xC0, 0xF0, -0x04, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, -0x08, 0x4A, 0xA0, 0xF0, 0x64, 0x9A, 0x02, 0x6C, -0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x30, 0xF0, -0x20, 0x69, 0x63, 0xF5, 0x08, 0x49, 0xA2, 0xF5, -0x5A, 0xA9, 0x00, 0xF7, 0x00, 0x72, 0x07, 0x60, -0xA2, 0xF5, 0x7A, 0xA1, 0xA2, 0xF5, 0x9B, 0xA1, -0xAF, 0x43, 0x8E, 0xED, 0x13, 0x2D, 0x30, 0xF0, -0x20, 0x6A, 0x22, 0xF3, 0x64, 0x9A, 0xFF, 0x6C, -0x01, 0x4C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0x23, 0xF3, 0x70, 0x9A, 0x8D, 0xEB, 0x23, 0xF3, -0x70, 0xDA, 0x97, 0x10, 0x30, 0xF0, 0x20, 0x6D, -0x22, 0xF4, 0xA8, 0x9D, 0x7F, 0x6E, 0xB5, 0xE0, -0xE0, 0xA5, 0xCC, 0xEF, 0x45, 0x2F, 0x00, 0xF4, -0x00, 0x72, 0x80, 0xF0, 0x0A, 0x60, 0xAC, 0x43, -0x8E, 0xED, 0x80, 0xF0, 0x06, 0x25, 0x00, 0xF5, -0x01, 0x72, 0x80, 0xF0, 0x02, 0x60, 0x00, 0xF6, -0x02, 0x72, 0x7F, 0x60, 0x00, 0xF7, 0x03, 0x72, -0x7C, 0x60, 0x00, 0xF5, 0x00, 0x72, 0x79, 0x60, -0xFD, 0x4B, 0x6E, 0xEC, 0x76, 0x24, 0x30, 0xF0, -0x20, 0x69, 0x63, 0xF5, 0x08, 0x49, 0xA2, 0xF5, -0x5A, 0xA9, 0x00, 0xF6, 0x01, 0x72, 0x6D, 0x60, -0x00, 0xF7, 0x02, 0x72, 0x6A, 0x60, 0x00, 0xF6, -0x00, 0x72, 0x67, 0x60, 0xA2, 0xF5, 0x7A, 0xA1, -0xA2, 0xF5, 0x9B, 0xA1, 0xFE, 0x4B, 0x8E, 0xEB, -0x60, 0x23, 0x00, 0xF7, 0x01, 0x72, 0x5D, 0x60, -0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, 0x48, 0x9A, -0x30, 0xF0, 0x20, 0x6D, 0x22, 0xF4, 0xA8, 0x9D, -0x49, 0xE0, 0x94, 0x34, 0x60, 0xAA, 0x91, 0xE1, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, -0xA2, 0xF4, 0x1A, 0x4C, 0xB5, 0xE0, 0x12, 0x10, -0x40, 0xA5, 0x4C, 0xEE, 0x01, 0x76, 0x1E, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, 0x48, 0x9A, -0x94, 0x34, 0x91, 0xE1, 0x49, 0xE0, 0x60, 0xAA, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, -0xA2, 0xF4, 0x1A, 0x4C, 0xFF, 0x6E, 0x6C, 0xEE, -0x40, 0xEA, 0xA2, 0xF5, 0x5B, 0xA1, 0x08, 0x6B, -0x01, 0x4A, 0xA2, 0xF5, 0x5B, 0xC1, 0xA2, 0xF5, -0x5B, 0xA1, 0x6E, 0xEA, 0x13, 0x2A, 0xA2, 0xF5, -0x5B, 0xC1, 0x10, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x22, 0xF3, 0x84, 0x9A, 0x30, 0xF0, 0x20, 0x6B, -0x62, 0xF3, 0x78, 0x9B, 0x40, 0x9C, 0x6D, 0xEA, -0x40, 0xDC, 0x23, 0xF3, 0x50, 0x99, 0x6D, 0xEA, -0x23, 0xF3, 0x50, 0xD9, 0x30, 0xF0, 0x20, 0x6A, -0x22, 0xF6, 0x4C, 0x9A, 0x04, 0x93, 0x40, 0x9A, -0x0E, 0xEA, 0x61, 0xE0, 0x05, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x22, 0xF6, 0x50, 0x9A, 0x00, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, 0x44, 0x9A, -0x00, 0xDA, 0x05, 0x92, 0x4A, 0xE8, 0x5F, 0xF7, -0x06, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFE, 0x63, 0x03, 0xD1, -0x02, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, -0x08, 0x4A, 0x23, 0xF3, 0x70, 0x9A, 0x02, 0x6D, -0xAC, 0xEB, 0x40, 0xF1, 0x1A, 0x2B, 0x30, 0xF0, -0x20, 0x6B, 0x22, 0xF6, 0x74, 0x9B, 0x80, 0xA3, -0x0F, 0x6B, 0x8C, 0xEB, 0x05, 0x23, 0xA0, 0xF0, -0x84, 0x9A, 0xAD, 0xEC, 0xA0, 0xF0, 0x84, 0xDA, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF6, 0x58, 0xA2, -0xFF, 0x4A, 0x00, 0xD2, 0x44, 0x11, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, 0x20, 0xF1, -0x90, 0xAA, 0x00, 0xF7, 0x00, 0x74, 0x05, 0x60, -0x20, 0xF1, 0x11, 0xA2, 0x00, 0x94, 0x8A, 0xE8, -0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, -0x64, 0x9A, 0xFF, 0x6C, 0x01, 0x4C, 0x40, 0x9B, -0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0x23, 0xF3, 0x70, 0x9A, -0x8D, 0xEB, 0x23, 0xF3, 0x70, 0xDA, 0x25, 0x11, -0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF4, 0xDE, 0xA4, -0xE3, 0x67, 0xFF, 0x6D, 0xE7, 0xEE, 0xC7, 0x67, -0x01, 0x6F, 0xEC, 0xEE, 0xA0, 0xF0, 0x0A, 0x26, -0x0C, 0x35, 0x7F, 0x4D, 0x75, 0x4D, 0xB5, 0xE2, -0x00, 0x6A, 0x30, 0xF0, 0x20, 0x6E, 0xE3, 0xF4, -0xFE, 0xA6, 0xFF, 0x6C, 0x1F, 0xF7, 0x00, 0x69, -0x8C, 0xEF, 0x74, 0x4F, 0xE8, 0x37, 0xFD, 0xE2, -0x2C, 0xEF, 0x02, 0xF0, 0x00, 0x77, 0x08, 0x60, -0xE3, 0xF4, 0xFE, 0xA6, 0x8C, 0xEF, 0x74, 0x4F, -0xE8, 0x37, 0xFD, 0xE2, 0x2C, 0xEF, 0x0F, 0x2F, -0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF4, 0x3E, 0xA4, -0xFF, 0x6C, 0x30, 0xF0, 0x20, 0x6E, 0x8C, 0xE9, -0x74, 0x49, 0x28, 0x31, 0xE2, 0x67, 0x25, 0xE2, -0xE2, 0xF2, 0xD8, 0x9E, 0x0B, 0x10, 0xE3, 0xF4, -0x3E, 0xA6, 0x30, 0xF0, 0x20, 0x6E, 0xE2, 0xF2, -0xDC, 0x9E, 0x8C, 0xE9, 0x74, 0x49, 0x28, 0x31, -0xE2, 0x67, 0x25, 0xE2, 0xD9, 0xE1, 0xC0, 0xA6, -0x0C, 0x31, 0xCC, 0xEC, 0x30, 0xF0, 0x20, 0x6E, -0x63, 0xF5, 0x08, 0x4E, 0xD9, 0xE1, 0xFD, 0xE6, -0xE0, 0xF0, 0x90, 0xC7, 0x30, 0xF0, 0x20, 0x6E, -0xE3, 0xF4, 0xFE, 0xA6, 0xFF, 0x6C, 0x1F, 0xF7, -0x00, 0x69, 0x8C, 0xEF, 0x7C, 0x4F, 0xE8, 0x37, -0xFD, 0xE2, 0x2C, 0xEF, 0x02, 0xF0, 0x00, 0x77, -0x08, 0x60, 0xE3, 0xF4, 0xFE, 0xA6, 0x8C, 0xEF, -0x7C, 0x4F, 0xE8, 0x37, 0xFD, 0xE2, 0x2C, 0xEF, -0x0E, 0x2F, 0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF4, -0xDE, 0xA4, 0xFF, 0x6C, 0x30, 0xF0, 0x20, 0x6F, -0x8C, 0xEE, 0x7C, 0x4E, 0xC8, 0x36, 0xD9, 0xE2, -0xE2, 0xF2, 0xF8, 0x9F, 0x0A, 0x10, 0xE3, 0xF4, -0xDE, 0xA6, 0x30, 0xF0, 0x20, 0x6F, 0xE2, 0xF2, -0xFC, 0x9F, 0x8C, 0xEE, 0x7C, 0x4E, 0xC8, 0x36, -0xD9, 0xE2, 0xF9, 0xE6, 0xC0, 0xA6, 0x01, 0x4A, -0x04, 0x72, 0xCC, 0xEC, 0x80, 0xC5, 0x01, 0x4D, -0x8C, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF4, -0xBE, 0xA2, 0x01, 0x6C, 0xC4, 0x67, 0xC4, 0xED, -0xCF, 0xED, 0xE3, 0xF4, 0xDE, 0xA2, 0xAC, 0xEB, -0xFF, 0x6D, 0x84, 0xEE, 0x30, 0xF0, 0x20, 0x6E, -0x22, 0xF6, 0xD4, 0x9E, 0xAC, 0xEC, 0x08, 0x6F, -0x80, 0xC6, 0xE3, 0xF4, 0x9E, 0xA2, 0xAC, 0xEC, -0x01, 0x4C, 0xAC, 0xEC, 0xE3, 0xF4, 0x9E, 0xC2, -0xE3, 0xF4, 0xBE, 0xA2, 0x03, 0x6C, 0xAC, 0xEC, -0xE3, 0xF4, 0x9E, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0x20, 0xF1, 0x91, 0xA2, -0x01, 0x4C, 0x20, 0xF1, 0x91, 0xC2, 0x20, 0xF1, -0x91, 0xA2, 0xEE, 0xEC, 0x70, 0x2C, 0x20, 0xF1, -0x91, 0xC2, 0x6D, 0x10, 0x30, 0xF0, 0x20, 0x6E, -0x22, 0xF3, 0x04, 0x9E, 0x02, 0x6F, 0xC0, 0x98, -0xED, 0xEE, 0xC0, 0xD8, 0x23, 0xF3, 0xD0, 0x9A, -0x23, 0xF3, 0x7C, 0xC2, 0xE3, 0xF4, 0x7E, 0xA4, -0xED, 0xEE, 0x23, 0xF3, 0xD0, 0xDA, 0x23, 0xF3, -0x7D, 0xC2, 0xE3, 0xF4, 0x5E, 0xA4, 0x1F, 0xF7, -0x00, 0x6B, 0xAC, 0xEA, 0x74, 0x4A, 0x48, 0x32, -0x6C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x07, 0x60, -0xE3, 0xF4, 0x5E, 0xA4, 0xAC, 0xEA, 0x74, 0x4A, -0x48, 0x32, 0x6C, 0xEA, 0x0E, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF4, 0x7E, 0xA2, 0x30, 0xF0, -0x20, 0x6C, 0x22, 0xF6, 0x98, 0x9C, 0xFF, 0x6A, -0x4C, 0xEB, 0x8D, 0xE3, 0x68, 0x33, 0xA0, 0xA3, -0x0A, 0x10, 0xE3, 0xF4, 0x5E, 0xA4, 0x30, 0xF0, -0x20, 0x6B, 0x22, 0xF6, 0x7C, 0x9B, 0xAC, 0xEA, -0x69, 0xE2, 0x48, 0x32, 0x40, 0xA2, 0x4C, 0xED, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xA7, 0xF0, 0xA6, 0xC2, 0xE3, 0xF4, 0x5E, 0xA3, -0xE3, 0xF4, 0x9E, 0xA3, 0xFF, 0x6A, 0x1F, 0xF7, -0x00, 0x6D, 0x4C, 0xEC, 0x88, 0x34, 0xC0, 0xF1, -0x11, 0x4C, 0xAC, 0xEC, 0x0B, 0x2C, 0xE3, 0xF4, -0x7E, 0xA3, 0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x6C, -0x4C, 0xEB, 0x74, 0x4B, 0x68, 0x33, 0x42, 0xF6, -0x80, 0x9C, 0x09, 0x10, 0xE3, 0xF4, 0x7E, 0xA3, -0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF6, 0x84, 0x9C, -0x4C, 0xEB, 0x74, 0x4B, 0x68, 0x33, 0x8D, 0xE3, -0x60, 0xA3, 0x6C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA7, 0xF0, 0x47, 0xC3, 0x02, 0x10, 0xBF, 0xF6, -0x1A, 0x2B, 0x03, 0x91, 0x02, 0x90, 0x02, 0x63, -0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF6, -0x48, 0x9A, 0xFF, 0x68, 0x60, 0xA2, 0x6C, 0xE8, -0x25, 0x20, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF6, -0x4C, 0x9A, 0x20, 0x6B, 0x01, 0x70, 0x60, 0xC2, -0x06, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF6, -0x5C, 0x9A, 0x40, 0xEA, 0x0F, 0x10, 0x20, 0x70, -0x0D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, -0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6C, 0xA0, 0xF0, -0x64, 0x9A, 0xA2, 0xF3, 0x8C, 0x9C, 0x8D, 0xEB, -0xA0, 0xF0, 0x64, 0xDA, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF2, 0x64, 0x9B, 0x10, 0xF0, 0x30, 0x6A, -0x48, 0xF3, 0x05, 0x4A, 0x40, 0xDB, 0x00, 0x1C, -0xAC, 0x39, 0x80, 0x18, 0x8C, 0x4E, 0x05, 0x6C, -0x01, 0x6D, 0x80, 0x18, 0x68, 0x00, 0x20, 0xBA, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0xFF, 0x17, 0x00, 0x65, 0xDE, 0x63, 0x43, 0x62, -0x42, 0xD1, 0x41, 0xD0, 0x01, 0x6A, 0x7D, 0x67, -0x4B, 0xEA, 0x58, 0xC3, 0x01, 0x6A, 0x5A, 0xC3, -0x08, 0x6A, 0x5B, 0xC3, 0x60, 0xA4, 0x7F, 0x6A, -0x6C, 0xEA, 0x01, 0x72, 0x7E, 0x30, 0xA0, 0xF0, -0x05, 0x61, 0x48, 0xA4, 0xBD, 0x67, 0x5C, 0xC5, -0x41, 0xA4, 0x5D, 0xC5, 0x42, 0xA4, 0x5E, 0xC5, -0x46, 0xA4, 0x20, 0xF0, 0x40, 0xC5, 0x43, 0xA4, -0x5F, 0xC5, 0x47, 0xA4, 0x20, 0xF0, 0x41, 0xC5, -0x5C, 0xA5, 0x80, 0xF0, 0x0D, 0x2A, 0x7D, 0x67, -0x5F, 0xA3, 0x7E, 0xA3, 0x40, 0x32, 0x6D, 0xEA, -0x03, 0x72, 0x05, 0x60, 0x08, 0x72, 0x21, 0x60, -0x02, 0x72, 0x37, 0x60, 0x81, 0x10, 0x06, 0x20, -0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, -0x06, 0x04, 0x40, 0xEA, 0x9D, 0x67, 0x20, 0xF0, -0xE1, 0xA4, 0x20, 0xF0, 0x40, 0xA4, 0xFF, 0xF7, -0x1F, 0x6B, 0xE0, 0x37, 0x5D, 0xE7, 0x30, 0xF0, -0x20, 0x6A, 0x60, 0xF4, 0x50, 0x9A, 0x30, 0xF0, -0x20, 0x6D, 0x05, 0x6C, 0x26, 0xF3, 0x14, 0x4D, -0x00, 0xF2, 0x00, 0x6E, 0x6C, 0xEF, 0x40, 0xEA, -0x7E, 0x10, 0xBD, 0x67, 0x30, 0xF0, 0x20, 0x6B, -0x10, 0x6A, 0x5B, 0xC5, 0x30, 0xF0, 0x20, 0x69, -0x80, 0xF2, 0x4C, 0x9B, 0xC9, 0xF4, 0x08, 0x49, -0x09, 0x04, 0xB1, 0x67, 0x04, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6C, 0x80, 0xF2, 0x4C, 0x9C, -0xA4, 0x41, 0x0A, 0x04, 0x04, 0x6E, 0x40, 0xEA, -0x4B, 0x10, 0x06, 0x20, 0x30, 0xF0, 0x20, 0x6A, -0x20, 0xF4, 0x40, 0x9A, 0x06, 0x04, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x68, 0x63, 0xF5, 0x08, 0x48, -0x65, 0xF7, 0x7C, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, -0x30, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF4, -0x50, 0x9A, 0x40, 0xEA, 0x65, 0xF7, 0x68, 0xA0, -0x04, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, -0x21, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF6, -0x50, 0x9A, 0x65, 0xF7, 0xD4, 0x98, 0x10, 0xF0, -0x31, 0x6C, 0x40, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0x42, 0xF6, 0x54, 0x9A, 0xC5, 0xF7, 0x09, 0x4C, -0x00, 0x6D, 0x40, 0x9A, 0x01, 0x6F, 0x5B, 0xE6, -0xE0, 0xF3, 0x08, 0x6A, 0x5B, 0xEE, 0x01, 0x2A, -0xE5, 0xE8, 0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0x12, 0xEE, -0x40, 0xEA, 0x29, 0x10, 0x80, 0x18, 0xF2, 0x4B, -0x26, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF4, -0x54, 0x9A, 0x40, 0xEA, 0x65, 0xF7, 0xBA, 0xA8, -0x00, 0x6C, 0x80, 0x18, 0xA1, 0x4B, 0x1B, 0x10, -0x1A, 0x20, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, -0x40, 0x9A, 0x13, 0x10, 0x14, 0x2A, 0x69, 0xA4, -0xBD, 0x67, 0x7C, 0xC5, 0x68, 0xA4, 0x5E, 0xC5, -0x5F, 0xC5, 0x7D, 0xC5, 0x46, 0xA4, 0x20, 0xF0, -0x40, 0xC5, 0x67, 0xA4, 0x08, 0x20, 0x30, 0xF0, -0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, 0x20, 0xF0, -0x61, 0xC5, 0x06, 0x04, 0x40, 0xEA, 0x43, 0x97, -0x42, 0x91, 0x41, 0x90, 0x22, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, -0x68, 0x44, 0xFA, 0x4B, 0x4C, 0xEB, 0x04, 0x5B, -0x03, 0x60, 0x80, 0x18, 0xB8, 0x40, 0x4A, 0x10, -0xFE, 0x4C, 0x4C, 0xEC, 0x0C, 0x5C, 0x31, 0x60, -0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, 0xE2, 0xF1, -0x18, 0x4A, 0x89, 0xE2, 0x40, 0x9A, 0x00, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, 0x48, 0x9A, -0x08, 0x10, 0x85, 0x67, 0x80, 0x18, 0xB7, 0x4B, -0x35, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF4, -0x44, 0x9A, 0x85, 0x67, 0x40, 0xEA, 0x2E, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, 0x54, 0x9A, -0x40, 0xEA, 0x28, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x60, 0xF4, 0x58, 0x9A, 0xF2, 0x17, 0x30, 0xF0, -0x20, 0x6A, 0x60, 0xF4, 0x5C, 0x9A, 0xED, 0x17, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF4, 0x40, 0x9A, -0xE8, 0x17, 0x85, 0x67, 0x00, 0x18, 0x20, 0xD0, -0x15, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, -0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF4, -0x84, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0x23, 0xF3, 0x70, 0x9A, 0x8D, 0xEB, 0x23, 0xF3, -0x70, 0xDA, 0xFF, 0x6A, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x07, 0xD4, 0x60, 0xA4, -0x01, 0xA4, 0x02, 0x6A, 0x6C, 0xEA, 0x24, 0x67, -0x06, 0xD0, 0x37, 0x22, 0x42, 0xA4, 0x06, 0xD2, -0x34, 0x10, 0x07, 0x93, 0x01, 0x6D, 0x90, 0x67, -0x40, 0xA3, 0x4C, 0xED, 0x00, 0x18, 0xEB, 0xC4, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, -0x90, 0x67, 0x40, 0xEA, 0x0F, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x58, 0x9A, 0x90, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, -0x58, 0x9A, 0x14, 0x33, 0x4D, 0xE3, 0x80, 0xA3, -0xBF, 0x6A, 0x12, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x54, 0x9A, 0x90, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, 0x58, 0x9A, -0x14, 0x33, 0xFF, 0x6C, 0x4D, 0xE3, 0x40, 0xA3, -0x8C, 0xEA, 0x40, 0x6C, 0x8D, 0xEA, 0xFF, 0x6C, -0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x48, 0xFF, 0x6A, -0x4C, 0xE8, 0x06, 0x92, 0x03, 0xEA, 0xC9, 0x60, -0x43, 0xA1, 0x07, 0x6B, 0x01, 0x6C, 0x4C, 0xEB, -0x40, 0xA1, 0x8C, 0xEA, 0x1C, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, 0x43, 0xF3, -0xC0, 0xA2, 0x84, 0xEB, 0x1F, 0x6F, 0xCA, 0x35, -0x8F, 0xEC, 0xEC, 0xED, 0x8C, 0xED, 0x7D, 0x6C, -0x8B, 0xEC, 0xA8, 0x35, 0xCC, 0xEC, 0xAD, 0xEC, -0x43, 0xF3, 0x80, 0xC2, 0xA0, 0xF0, 0x8F, 0xA2, -0x8E, 0xEB, 0x1E, 0x2B, 0x01, 0x6B, 0x6B, 0xEB, -0x43, 0xF3, 0x61, 0xC2, 0x19, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, 0x43, 0xF3, -0xC0, 0xA2, 0x1F, 0x6F, 0x84, 0xEB, 0xCA, 0x35, -0xEC, 0xED, 0xAD, 0xEC, 0xEC, 0xEC, 0x88, 0x35, -0x7D, 0x6C, 0x8B, 0xEC, 0xCC, 0xEC, 0xAD, 0xEC, -0x43, 0xF3, 0x80, 0xC2, 0xA0, 0xF0, 0x8F, 0xA2, -0x8E, 0xEB, 0x02, 0x2B, 0x43, 0xF3, 0x81, 0xC2, -0x30, 0xF0, 0x20, 0x68, 0x63, 0xF5, 0x08, 0x48, -0x43, 0xF3, 0x60, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, -0x1A, 0x22, 0x03, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, -0x43, 0xF3, 0x40, 0xC0, 0x00, 0x18, 0x6B, 0xD0, -0x04, 0xD2, 0x04, 0x93, 0x43, 0xF3, 0x44, 0x98, -0x6E, 0xEA, 0x03, 0x22, 0x04, 0x94, 0x00, 0x18, -0x8C, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, -0x08, 0x4A, 0x43, 0xF3, 0x80, 0xA2, 0x02, 0x6B, -0x8D, 0xEB, 0x43, 0xF3, 0x60, 0xC2, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, -0x4C, 0xEC, 0x68, 0x44, 0xC8, 0x4B, 0x4C, 0xEB, -0x20, 0x5B, 0x05, 0x67, 0x03, 0x60, 0x80, 0x18, -0xB7, 0x40, 0x2B, 0x10, 0x01, 0x74, 0x0A, 0x60, -0x05, 0x24, 0xBB, 0x74, 0x0B, 0x60, 0xCD, 0x74, -0x0D, 0x60, 0x10, 0x10, 0x85, 0x67, 0x80, 0x18, -0x6E, 0x0F, 0x1F, 0x10, 0x85, 0x67, 0x80, 0x18, -0x87, 0x11, 0x1B, 0x10, 0x85, 0x67, 0x00, 0x18, -0x87, 0xDA, 0x17, 0x10, 0x85, 0x67, 0x80, 0x18, -0x76, 0x0F, 0x13, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x22, 0xF3, 0x64, 0x9A, 0x01, 0x6C, 0x40, 0x9B, -0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0x23, 0xF3, 0x70, 0x9A, -0x8D, 0xEB, 0x23, 0xF3, 0x70, 0xDA, 0x0E, 0x6A, -0x01, 0x10, 0x00, 0x6A, 0x40, 0xC0, 0x05, 0x97, -0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x68, 0x63, 0xF5, 0x08, 0x48, 0x20, 0xF1, -0x50, 0xA0, 0x20, 0xF1, 0x71, 0xA0, 0x4E, 0xEB, -0x29, 0x23, 0x67, 0x42, 0x17, 0x4B, 0x6C, 0x33, -0x0D, 0xE3, 0x4C, 0x32, 0x80, 0xA3, 0xF0, 0xF0, -0xA1, 0x42, 0xB5, 0xE0, 0x80, 0x18, 0xDC, 0x11, -0x20, 0xF1, 0x50, 0xA0, 0x01, 0x4A, 0x20, 0xF1, -0x50, 0xC0, 0x20, 0xF1, 0x70, 0xA0, 0x20, 0xF1, -0x51, 0xA0, 0x6E, 0xEA, 0x06, 0x22, 0xA0, 0xF0, -0x44, 0x98, 0x02, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, -0x44, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, -0x08, 0x4A, 0x20, 0xF1, 0x70, 0xA2, 0x08, 0x6C, -0x8E, 0xEB, 0x02, 0x2B, 0x20, 0xF1, 0x70, 0xC2, -0x80, 0x18, 0x01, 0x10, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x63, 0xF5, -0x08, 0x48, 0xA2, 0xF5, 0x7A, 0xA0, 0x7F, 0x6E, -0x74, 0x35, 0x11, 0xE5, 0xA2, 0xF4, 0x5A, 0xA4, -0xCC, 0xEA, 0x1E, 0x2A, 0x7F, 0x4B, 0x27, 0x4B, -0x74, 0x33, 0x0D, 0xE3, 0xA4, 0x67, 0x82, 0xA3, -0xC2, 0xF4, 0x03, 0x4D, 0x80, 0x18, 0xDC, 0x11, -0xA2, 0xF5, 0x9A, 0xA0, 0x30, 0xF0, 0x20, 0x6B, -0x42, 0xF6, 0x78, 0x9B, 0x94, 0x34, 0x09, 0xE4, -0xC2, 0xF4, 0xA0, 0xA2, 0x91, 0xE0, 0xA0, 0xC3, -0xC2, 0xF4, 0x61, 0xA2, 0x30, 0xF0, 0x20, 0x6A, -0x42, 0xF6, 0x5C, 0x9A, 0x60, 0xC2, 0x32, 0x10, -0x01, 0x72, 0x34, 0x61, 0xA2, 0xF4, 0x5B, 0xA4, -0xFF, 0x72, 0x0E, 0x61, 0xA2, 0xF4, 0x9C, 0xA4, -0xB5, 0xE0, 0xA2, 0xF4, 0x1A, 0x4D, 0x80, 0x18, -0x5A, 0x11, 0xA2, 0xF5, 0x7A, 0xA0, 0x7F, 0x4B, -0x27, 0x4B, 0x74, 0x33, 0x01, 0xE3, 0x06, 0x10, -0x7F, 0x4B, 0x27, 0x4B, 0x74, 0x33, 0x01, 0x6A, -0x01, 0xE3, 0x4B, 0xEA, 0x42, 0xC0, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, 0xA2, 0xF5, -0x9A, 0xA2, 0x30, 0xF0, 0x20, 0x6D, 0x42, 0xF6, -0xB8, 0x9D, 0x94, 0x34, 0x4D, 0xE4, 0xC2, 0xF4, -0xC0, 0xA3, 0x91, 0xE2, 0xC0, 0xC5, 0xC2, 0xF4, -0xA1, 0xA3, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF6, -0x7C, 0x9B, 0xA0, 0xC3, 0xA2, 0xF4, 0x1A, 0x4C, -0x80, 0x18, 0xF1, 0x10, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x63, 0xF5, -0x08, 0x48, 0xA2, 0xF5, 0x7A, 0xA0, 0xA2, 0xF5, -0x5B, 0xA0, 0x6E, 0xEA, 0x42, 0x22, 0x20, 0xF6, -0x52, 0xA8, 0x09, 0xF6, 0x00, 0x72, 0x10, 0x60, -0x20, 0xF6, 0x92, 0xA0, 0x20, 0xF6, 0x73, 0xA0, -0xAE, 0x44, 0x6E, 0xED, 0x09, 0x25, 0x09, 0xF7, -0x01, 0x72, 0x06, 0x60, 0x09, 0xF7, 0x00, 0x72, -0x03, 0x60, 0xFF, 0x4C, 0x8E, 0xEB, 0x0D, 0x2B, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4B, -0xA0, 0xF0, 0x44, 0x9B, 0x04, 0x6C, 0x8D, 0xEA, -0x02, 0x6C, 0x8D, 0xEA, 0xA0, 0xF0, 0x44, 0xDB, -0x20, 0x10, 0x80, 0x18, 0x19, 0x12, 0xA2, 0xF5, -0x5A, 0xA0, 0x01, 0x4A, 0xA2, 0xF5, 0x5A, 0xC0, -0xA2, 0xF5, 0x7A, 0xA0, 0xA2, 0xF5, 0x5B, 0xA0, -0x6E, 0xEA, 0x06, 0x22, 0xA0, 0xF0, 0x44, 0x98, -0x02, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0xA2, 0xF5, 0x7A, 0xA2, 0x08, 0x6C, 0x8E, 0xEB, -0x02, 0x2B, 0xA2, 0xF5, 0x7A, 0xC2, 0x80, 0x18, -0x8D, 0x0F, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF6, 0x60, 0x9B, -0x30, 0xF0, 0x20, 0x68, 0x62, 0xF6, 0x04, 0x98, -0xE0, 0x9B, 0xFF, 0x6A, 0x4C, 0xEC, 0x0C, 0xEF, -0x08, 0x5C, 0x4C, 0xED, 0x4C, 0xEE, 0xE0, 0xDB, -0x46, 0x60, 0xB0, 0x75, 0x2E, 0x61, 0xB2, 0x76, -0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, -0xA8, 0x9A, 0x01, 0x6A, 0x44, 0xEC, 0xC0, 0x9D, -0x00, 0xF6, 0x40, 0x34, 0xCD, 0xEC, 0x80, 0xDD, -0xC0, 0x9D, 0x40, 0x34, 0x80, 0x34, 0x8F, 0xEC, -0xCC, 0xEC, 0x80, 0xDD, 0x80, 0x9B, 0x4E, 0x10, -0xB1, 0x76, 0x80, 0xF0, 0x13, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x62, 0xF6, 0xA8, 0x9A, 0x01, 0x6A, -0x44, 0xEC, 0xC0, 0x9D, 0x00, 0xF6, 0x40, 0x34, -0xCD, 0xEC, 0x80, 0xDD, 0xC0, 0x9D, 0x40, 0x34, -0x80, 0x34, 0x8F, 0xEC, 0xCC, 0xEC, 0x80, 0xDD, -0x80, 0x9B, 0x4F, 0xEA, 0x8C, 0xEA, 0x40, 0xDB, -0x7B, 0x10, 0xA0, 0x75, 0x7D, 0x61, 0xA1, 0x76, -0x08, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, -0x48, 0x9A, 0x01, 0x6B, 0x64, 0xEC, 0xA0, 0x9A, -0x51, 0x10, 0xA2, 0x76, 0x6F, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x62, 0xF6, 0x48, 0x9A, 0x01, 0x6B, -0x64, 0xEC, 0xA0, 0x9A, 0x5A, 0x10, 0xE8, 0x44, -0x4C, 0xEF, 0x08, 0x5F, 0xE0, 0x6A, 0x65, 0x60, -0xB0, 0x75, 0x35, 0x61, 0xB2, 0x76, 0x18, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x4C, 0x9A, -0x01, 0x6E, 0xA6, 0x67, 0x00, 0x9A, 0xA4, 0xEF, -0xE5, 0x67, 0x00, 0xF6, 0xA0, 0x35, 0x0D, 0xED, -0xA0, 0xDA, 0xA0, 0x9A, 0xE0, 0x37, 0xE0, 0x37, -0xEF, 0xEF, 0xAC, 0xEF, 0xE0, 0xDA, 0x40, 0x9B, -0xC4, 0xEC, 0x86, 0x67, 0x4D, 0xEC, 0x19, 0x10, -0xB1, 0x76, 0x44, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x62, 0xF6, 0x4C, 0x9A, 0x01, 0x6E, 0xA6, 0x67, -0x00, 0x9A, 0xA4, 0xEF, 0xE5, 0x67, 0x00, 0xF6, -0xA0, 0x35, 0x0D, 0xED, 0xA0, 0xDA, 0xA0, 0x9A, -0xE0, 0x37, 0xE0, 0x37, 0xEF, 0xEF, 0xAC, 0xEF, -0xE0, 0xDA, 0x40, 0x9B, 0xC4, 0xEC, 0xCF, 0xEC, -0x4C, 0xEC, 0x80, 0xDB, 0x29, 0x10, 0xA0, 0x75, -0x2B, 0x61, 0xA1, 0x76, 0x11, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x62, 0xF6, 0x4C, 0x9A, 0x01, 0x6B, -0x64, 0xEF, 0xA0, 0x9A, 0x00, 0xF6, 0x60, 0x34, -0x8F, 0xEC, 0xAC, 0xEC, 0x80, 0xDA, 0x80, 0x9A, -0x60, 0x33, 0x60, 0x33, 0x8D, 0xEB, 0x13, 0x10, -0xA2, 0x76, 0x14, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x62, 0xF6, 0x4C, 0x9A, 0x01, 0x6B, 0x64, 0xEF, -0xA0, 0x9A, 0x00, 0xF6, 0x60, 0x34, 0x8F, 0xEC, -0xAC, 0xEC, 0x80, 0xDA, 0x80, 0x9A, 0x60, 0x33, -0x60, 0x33, 0x6F, 0xEB, 0x8C, 0xEB, 0x60, 0xDA, -0xF0, 0x6A, 0x03, 0x10, 0xE2, 0x6A, 0x01, 0x10, -0xE1, 0x6A, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, -0xFF, 0x6B, 0x6C, 0xEC, 0x08, 0x5C, 0xFF, 0x63, -0x18, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, -0x50, 0x9A, 0x01, 0x6D, 0x40, 0xA2, 0x6C, 0xEA, -0x47, 0xEC, 0xAC, 0xEA, 0x37, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x62, 0xF6, 0x54, 0x9A, 0x40, 0xA2, -0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x30, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x48, 0x9A, -0x1C, 0x10, 0xF8, 0x4C, 0x6C, 0xEC, 0x08, 0x5C, -0xE0, 0x6A, 0x27, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x62, 0xF6, 0x58, 0x9A, 0x01, 0x6D, 0x40, 0xA2, -0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x1A, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x5C, 0x9A, -0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, -0x13, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, -0x4C, 0x9A, 0x40, 0xA2, 0xA4, 0xEC, 0x85, 0x67, -0x6C, 0xEC, 0x4C, 0xEC, 0x5D, 0x67, 0x80, 0xC2, -0x40, 0xA2, 0x4C, 0xEB, 0x6B, 0xEA, 0xC0, 0xF7, -0x42, 0x32, 0x03, 0x10, 0xE4, 0x6A, 0x01, 0x10, -0xE6, 0x6A, 0x01, 0x63, 0x20, 0xE8, 0x00, 0x65, -0xFF, 0x6B, 0x6C, 0xEC, 0x08, 0x5C, 0x6C, 0xED, -0x20, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, -0x50, 0x9A, 0x01, 0x6E, 0x40, 0xA2, 0x6C, 0xEA, -0x47, 0xEC, 0xCC, 0xEA, 0x48, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x62, 0xF6, 0x54, 0x9A, 0xC4, 0xEC, -0x86, 0x67, 0x40, 0xA2, 0x6C, 0xEA, 0xCC, 0xEA, -0xCE, 0xEA, 0x3B, 0x2A, 0x05, 0x25, 0x30, 0xF0, -0x20, 0x6A, 0x82, 0xF6, 0xA0, 0x9A, 0x24, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, 0x40, 0x9A, -0x29, 0x10, 0xF8, 0x4C, 0x6C, 0xEC, 0x08, 0x5C, -0xE0, 0x6A, 0x2E, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x62, 0xF6, 0x58, 0x9A, 0x01, 0x6E, 0x40, 0xA2, -0x6C, 0xEA, 0x47, 0xEC, 0xCC, 0xEA, 0x23, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x5C, 0x9A, -0xC4, 0xEC, 0x86, 0x67, 0x40, 0xA2, 0x6C, 0xEA, -0xCC, 0xEA, 0xCE, 0xEA, 0x16, 0x2A, 0x0A, 0x25, -0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, 0xA4, 0x9A, -0x40, 0xA5, 0x6C, 0xEA, 0x8D, 0xEA, 0x6C, 0xEA, -0x40, 0xC5, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x82, 0xF6, 0x44, 0x9A, 0xA0, 0xA2, 0x8F, 0xEC, -0x6C, 0xEC, 0xAC, 0xEC, 0x80, 0xC2, 0xF0, 0x6A, -0x20, 0xE8, 0xE5, 0x6A, 0x20, 0xE8, 0xE4, 0x6A, -0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, -0x08, 0x5C, 0x0F, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x62, 0xF6, 0x50, 0x9A, 0x01, 0x6D, 0x40, 0xA2, -0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x1F, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x54, 0x9A, -0x13, 0x10, 0xF8, 0x4C, 0x6C, 0xEC, 0x08, 0x5C, -0xE0, 0x6A, 0x16, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x62, 0xF6, 0x58, 0x9A, 0x01, 0x6D, 0x40, 0xA2, -0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x0B, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x5C, 0x9A, -0x40, 0xA2, 0x4C, 0xEB, 0x67, 0xEC, 0x45, 0x67, -0x6E, 0xEA, 0xAC, 0xEA, 0x20, 0xE8, 0x00, 0x6A, -0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, -0x08, 0x5C, 0x1A, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x62, 0xF6, 0x50, 0x9A, 0x01, 0x6E, 0x40, 0xA2, -0x6C, 0xEA, 0x47, 0xEC, 0xCC, 0xEA, 0x35, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x54, 0x9A, -0xC4, 0xEC, 0x86, 0x67, 0xA0, 0xA2, 0x6C, 0xED, -0xCC, 0xED, 0xCE, 0xED, 0x2A, 0x2D, 0x30, 0xF0, -0x20, 0x6A, 0x82, 0xF6, 0x40, 0x9A, 0x1E, 0x10, -0xF8, 0x4C, 0x6C, 0xEC, 0x08, 0x5C, 0xE0, 0x6A, -0x21, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, -0x58, 0x9A, 0x01, 0x6E, 0x40, 0xA2, 0x6C, 0xEA, -0x47, 0xEC, 0xCC, 0xEA, 0x16, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x62, 0xF6, 0x5C, 0x9A, 0xC4, 0xEC, -0x86, 0x67, 0xA0, 0xA2, 0x6C, 0xED, 0xCC, 0xED, -0xCE, 0xED, 0x0B, 0x2D, 0x30, 0xF0, 0x20, 0x6A, -0x82, 0xF6, 0x44, 0x9A, 0x40, 0xA2, 0x4C, 0xEB, -0x8C, 0xEB, 0x6E, 0xEC, 0x01, 0x5C, 0x58, 0x67, -0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, -0x01, 0x72, 0xFF, 0xF7, 0x1F, 0x6C, 0xAC, 0xEC, -0x05, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x48, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x4C, 0x9A, 0x40, 0xEA, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x04, 0x67, -0x2C, 0xE8, 0x90, 0x67, 0xA0, 0x6D, 0xA2, 0x6E, -0x80, 0x18, 0x77, 0x12, 0x90, 0x67, 0x80, 0x18, -0xDA, 0x12, 0x7D, 0x67, 0x50, 0xC3, 0x50, 0xA3, -0x09, 0x97, 0x07, 0x90, 0x2C, 0xEA, 0x08, 0x91, -0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0x24, 0x67, -0x0C, 0xE9, 0x91, 0x67, 0xAC, 0xE8, 0xA1, 0x6E, -0xA0, 0x6D, 0x80, 0x18, 0x77, 0x12, 0x91, 0x67, -0xB0, 0x67, 0x80, 0x18, 0x00, 0x13, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x62, 0xF6, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6D, -0x62, 0xF6, 0xA4, 0x9D, 0x40, 0x9B, 0xA2, 0x6E, -0xAC, 0xEA, 0x40, 0xDB, 0xFF, 0x6A, 0x4C, 0xEC, -0xA0, 0x6D, 0x80, 0x18, 0x77, 0x12, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0x4C, 0xEC, 0xB0, 0x6D, 0xB2, 0x6E, -0x80, 0x18, 0x77, 0x12, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0x4C, 0xEC, 0xB0, 0x6D, 0xB1, 0x6E, -0x80, 0x18, 0x77, 0x12, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0xFF, 0x6A, 0x04, 0x67, 0x4C, 0xE8, -0xAC, 0xEA, 0xA4, 0x72, 0x0C, 0x61, 0x90, 0x67, -0x80, 0x18, 0x2D, 0x13, 0x01, 0x72, 0x04, 0x61, -0x90, 0x67, 0x80, 0x18, 0x8A, 0x13, 0x1F, 0x10, -0x90, 0x67, 0x00, 0x6D, 0x0D, 0x10, 0xA5, 0x72, -0x11, 0x61, 0x90, 0x67, 0x80, 0x18, 0x2D, 0x13, -0x01, 0x72, 0x04, 0x61, 0x90, 0x67, 0x80, 0x18, -0x8A, 0x13, 0x18, 0x10, 0x90, 0x67, 0x01, 0x6D, -0x80, 0x18, 0x7F, 0x13, 0x90, 0x67, 0x80, 0x18, -0x8A, 0x13, 0x14, 0x10, 0x90, 0x67, 0x80, 0x18, -0x45, 0x13, 0x01, 0x72, 0x07, 0x61, 0x90, 0x67, -0x01, 0x6D, 0x80, 0x18, 0x7F, 0x13, 0x90, 0x67, -0x00, 0x6D, 0x06, 0x10, 0x90, 0x67, 0x00, 0x6D, -0x80, 0x18, 0x7F, 0x13, 0x90, 0x67, 0x01, 0x6D, -0x80, 0x18, 0x7F, 0x13, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, -0x4C, 0xEE, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, -0x08, 0x4A, 0x06, 0xF1, 0x6A, 0xA2, 0xFF, 0xF7, -0x1F, 0x69, 0x04, 0xD4, 0xAC, 0xE9, 0x05, 0xD6, -0x0B, 0x23, 0x06, 0xF1, 0x6B, 0xA2, 0x04, 0x23, -0x06, 0xF1, 0x88, 0xA2, 0xA5, 0x6D, 0x07, 0x10, -0x06, 0xF1, 0x88, 0xA2, 0xA4, 0x6D, 0x03, 0x10, -0x06, 0xF1, 0x88, 0xA2, 0xA3, 0x6D, 0x30, 0xF0, -0x20, 0x68, 0x63, 0xF5, 0x08, 0x48, 0x80, 0x18, -0xA1, 0x13, 0x06, 0xF1, 0x4C, 0xA0, 0x7D, 0x22, -0x04, 0x94, 0xB1, 0x67, 0x80, 0x18, 0x68, 0x13, -0x06, 0xF1, 0x4A, 0xA0, 0x0B, 0x22, 0x06, 0xF1, -0x4B, 0xA0, 0x04, 0x22, 0x06, 0xF1, 0x88, 0xA0, -0xA5, 0x6D, 0x07, 0x10, 0x06, 0xF1, 0x88, 0xA0, -0xA4, 0x6D, 0x03, 0x10, 0x06, 0xF1, 0x88, 0xA0, -0xA3, 0x6D, 0x80, 0x18, 0xA1, 0x13, 0x30, 0xF0, -0x20, 0x6A, 0x69, 0xF6, 0x55, 0xA2, 0x01, 0x68, -0x5D, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, -0x48, 0x9A, 0x60, 0xA2, 0x10, 0x6A, 0x6C, 0xEA, -0x58, 0x2A, 0x04, 0x94, 0xB1, 0x67, 0x80, 0x18, -0x68, 0x13, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, -0x08, 0x4A, 0x06, 0xF1, 0x6A, 0xA2, 0x0B, 0x23, -0x06, 0xF1, 0x6B, 0xA2, 0x04, 0x23, 0x06, 0xF1, -0x88, 0xA2, 0xA5, 0x6D, 0x07, 0x10, 0x06, 0xF1, -0x88, 0xA2, 0xA4, 0x6D, 0x03, 0x10, 0x06, 0xF1, -0x88, 0xA2, 0xA3, 0x6D, 0x80, 0x18, 0xA1, 0x13, -0xDC, 0x17, 0x04, 0x94, 0xB1, 0x67, 0x80, 0x18, -0x68, 0x13, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, -0x08, 0x4A, 0x06, 0xF1, 0x6A, 0xA2, 0x0B, 0x23, -0x06, 0xF1, 0x6B, 0xA2, 0x04, 0x23, 0x06, 0xF1, -0x88, 0xA2, 0xA5, 0x6D, 0x07, 0x10, 0x06, 0xF1, -0x88, 0xA2, 0xA4, 0x6D, 0x03, 0x10, 0x06, 0xF1, -0x88, 0xA2, 0xA3, 0x6D, 0x80, 0x18, 0xA1, 0x13, -0x04, 0x94, 0xB1, 0x67, 0x80, 0x18, 0x68, 0x13, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0x06, 0xF1, 0x6A, 0xA2, 0x0B, 0x23, 0x06, 0xF1, -0x6B, 0xA2, 0x04, 0x23, 0x06, 0xF1, 0x88, 0xA2, -0xA5, 0x6D, 0x07, 0x10, 0x06, 0xF1, 0x88, 0xA2, -0xA4, 0x6D, 0x03, 0x10, 0x06, 0xF1, 0x88, 0xA2, -0xA3, 0x6D, 0x80, 0x18, 0xA1, 0x13, 0x01, 0x48, -0xFF, 0x6A, 0x4C, 0xE8, 0x05, 0x92, 0x43, 0xE8, -0xC4, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0x69, 0xF6, 0x10, 0x4C, -0x00, 0x6D, 0x06, 0x6E, 0x40, 0xEA, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF2, 0x7C, 0x9B, 0xFF, 0xF7, 0x1F, 0x6A, -0x8C, 0xEA, 0x69, 0xE2, 0x00, 0x9A, 0x41, 0x45, -0x25, 0x67, 0x08, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF3, 0x44, 0x9A, 0x85, 0x67, 0x2C, 0xE8, -0x40, 0xEA, 0x06, 0xEA, 0x50, 0x67, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0xF7, 0x1F, 0x68, 0x41, 0x45, 0x25, 0x67, -0x0C, 0xD6, 0x8C, 0xE8, 0x07, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF2, 0x5C, 0x9A, 0x41, 0xE0, -0xC0, 0xD8, 0x1A, 0x10, 0x01, 0x6D, 0x90, 0x67, -0xAB, 0xED, 0x80, 0x18, 0x1F, 0x14, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, -0x91, 0x67, 0x40, 0xEA, 0x0C, 0x93, 0x64, 0xEA, -0x43, 0x67, 0x04, 0x93, 0x2C, 0xEA, 0x2F, 0xE9, -0x6C, 0xE9, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF2, -0x7C, 0x9B, 0x2D, 0xEA, 0x61, 0xE0, 0x40, 0xD8, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x01, 0x74, 0x0D, 0x60, -0x06, 0x24, 0x02, 0x74, 0x10, 0x60, 0x03, 0x74, -0x00, 0x6A, 0x1C, 0x61, 0x14, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xA8, 0x35, 0xE2, 0xF6, 0x54, 0x9A, -0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA8, 0x35, -0xE2, 0xF6, 0x58, 0x9A, 0x05, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF6, 0x5C, 0x9A, 0xA8, 0x35, -0x55, 0xE5, 0x40, 0x9D, 0x20, 0xE8, 0x30, 0xF0, -0x20, 0x6A, 0x02, 0xF7, 0x40, 0x9A, 0xA8, 0x35, -0x55, 0xE5, 0x40, 0x9D, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x26, 0xF7, 0x18, 0x4A, 0x88, 0x34, 0x91, 0xE2, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, 0x70, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF5, 0xA0, 0x35, -0xCC, 0xEB, 0x30, 0xF0, 0x20, 0x6E, 0x42, 0xF5, -0xD8, 0x9E, 0xC0, 0xF3, 0x44, 0x9A, 0x80, 0xAC, -0xAD, 0xEB, 0x01, 0x6D, 0xAB, 0xED, 0x6C, 0xEE, -0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFF, 0x6B, 0x8C, 0xEB, 0xFF, 0xF7, 0x1F, 0x6A, -0x81, 0x46, 0x06, 0x67, 0xAC, 0xEA, 0x06, 0x2C, -0x83, 0x67, 0xA2, 0x67, 0x80, 0x18, 0x47, 0x14, -0x02, 0x67, 0x0D, 0x10, 0x83, 0x67, 0xA2, 0x67, -0x80, 0x18, 0x47, 0x14, 0x22, 0x67, 0x30, 0xF0, -0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, 0x90, 0x67, -0x2C, 0xE8, 0x40, 0xEA, 0x06, 0xEA, 0x50, 0x67, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x46, 0x67, 0xFF, 0x68, -0xFF, 0xF7, 0x1F, 0x69, 0x01, 0x4A, 0x0C, 0xD6, -0x0D, 0xD7, 0x8C, 0xE8, 0xAC, 0xE9, 0x04, 0x2A, -0x90, 0x67, 0xB1, 0x67, 0xC7, 0x67, 0x15, 0x10, -0xB1, 0x67, 0x90, 0x67, 0x80, 0x18, 0x47, 0x14, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x0C, 0x94, -0xA0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x0D, 0x96, -0x90, 0x67, 0xB1, 0x67, 0xC4, 0xEA, 0x0C, 0x92, -0x4C, 0xEE, 0x4F, 0xEB, 0x04, 0x92, 0x4C, 0xEB, -0x6D, 0xEE, 0x80, 0x18, 0x5A, 0x14, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, -0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, -0x8C, 0xEA, 0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, -0x02, 0xF0, 0x00, 0x73, 0x25, 0x67, 0x01, 0x60, -0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF2, -0x78, 0x9B, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF2, 0x7C, 0x9B, 0x69, 0xE2, 0x00, 0x9A, -0x41, 0x41, 0x08, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF3, 0x44, 0x9A, 0x91, 0x67, 0x2C, 0xE8, -0x40, 0xEA, 0x06, 0xEA, 0x50, 0x67, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0xF7, 0x1F, 0x68, 0x41, 0x45, 0x25, 0x67, -0x0C, 0xD6, 0x8C, 0xE8, 0x16, 0x2A, 0x1F, 0xF7, -0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, -0x01, 0x60, 0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF2, 0x58, 0x9A, 0x41, 0xE0, 0x0C, 0x92, -0x3A, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, -0x5C, 0x9A, 0x0C, 0x93, 0x41, 0xE0, 0x60, 0xD8, -0x33, 0x10, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, -0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0x58, 0x9A, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, -0x5C, 0x9A, 0x49, 0xE0, 0x40, 0x9A, 0x91, 0x67, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, -0x44, 0x9A, 0x40, 0xEA, 0x0C, 0x93, 0x64, 0xEA, -0x43, 0x67, 0x04, 0x93, 0x2C, 0xEA, 0x2F, 0xE9, -0x6C, 0xE9, 0x1F, 0xF7, 0x00, 0x6B, 0x0C, 0xEB, -0x02, 0xF0, 0x00, 0x73, 0x2D, 0xEA, 0x01, 0x60, -0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF2, -0x78, 0x9B, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF2, 0x7C, 0x9B, 0x61, 0xE0, 0x40, 0xD8, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0x03, 0xF0, 0x08, 0x6B, -0xC3, 0xF1, 0x70, 0xDA, 0x05, 0xF1, 0x00, 0x4B, -0xC3, 0xF1, 0x74, 0xDA, 0x02, 0xF1, 0x00, 0x4B, -0xC3, 0xF1, 0x78, 0xDA, 0x00, 0xF1, 0x00, 0x4B, -0xC3, 0xF1, 0x7C, 0xDA, 0x20, 0xE8, 0x00, 0x65, -0xFF, 0x6B, 0x6C, 0xEC, 0x1F, 0x6D, 0x8C, 0xED, -0x96, 0x34, 0x6C, 0xEC, 0x01, 0x74, 0x03, 0x6A, -0x0A, 0x60, 0x10, 0x24, 0x04, 0x74, 0x05, 0x60, -0x06, 0x74, 0x00, 0x6A, 0x12, 0x61, 0xEF, 0x4A, -0x02, 0x10, 0x07, 0x6A, 0x4B, 0xEA, 0xAB, 0xE2, -0x44, 0x32, 0x00, 0xF6, 0x40, 0x32, 0x00, 0xF6, -0x43, 0x32, 0x20, 0xE8, 0x08, 0x6A, 0xAB, 0xE2, -0x44, 0x32, 0x00, 0xF6, 0x40, 0x32, 0x00, 0xF6, -0x43, 0x32, 0x20, 0xE8, 0x00, 0xF6, 0x80, 0x34, -0x00, 0xF6, 0x83, 0x34, 0x47, 0x44, 0x5C, 0x4A, -0xFF, 0x6B, 0x6C, 0xEA, 0x77, 0x5A, 0x00, 0x6A, -0x06, 0x60, 0x00, 0x54, 0x64, 0x6A, 0x03, 0x60, -0x47, 0x44, 0x5D, 0x4A, 0x6C, 0xEA, 0x20, 0xE8, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x6A, 0x8C, 0xEA, 0x0E, 0x91, 0x04, 0xD2, -0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xED, 0x4C, 0xE9, -0x0C, 0xD6, 0x0D, 0xD7, 0x0F, 0x90, 0x05, 0xD5, -0x00, 0x6A, 0x08, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, -0x40, 0xA8, 0x01, 0x4A, 0x40, 0xC8, 0x30, 0xF0, -0x20, 0x6A, 0x04, 0x95, 0x05, 0x96, 0xE2, 0xF3, -0xF0, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xCA, 0xF4, -0x08, 0x4C, 0x80, 0x18, 0xBA, 0x46, 0x0C, 0x93, -0x6C, 0xEA, 0x0D, 0x93, 0x6E, 0xEA, 0x03, 0x22, -0x40, 0xA8, 0x23, 0xEA, 0xE3, 0x61, 0x40, 0xA8, -0x09, 0x97, 0x07, 0x90, 0x23, 0xEA, 0x08, 0x91, -0x58, 0x67, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x02, 0xF7, 0x70, 0x9A, 0x7F, 0x6A, 0xFD, 0x67, -0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0x02, 0xF7, 0x54, 0x9A, 0xD2, 0xA7, -0x02, 0x6B, 0xA0, 0xA2, 0x01, 0x6C, 0x6B, 0xEB, -0x8C, 0xED, 0xCC, 0xEB, 0xAD, 0xEB, 0x72, 0xC7, -0x02, 0x6B, 0x70, 0xC7, 0x30, 0xF0, 0x20, 0x6B, -0x02, 0xF7, 0x78, 0x9B, 0x8F, 0xCF, 0xFF, 0x6A, -0x80, 0xAB, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF6, -0xD8, 0x9B, 0x4C, 0xEC, 0x94, 0x34, 0xD1, 0xE4, -0x60, 0xA4, 0x40, 0x6D, 0x4C, 0xEB, 0xAD, 0xEB, -0x4C, 0xEB, 0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6B, -0x02, 0xF7, 0x7C, 0x9B, 0x80, 0xAB, 0x4C, 0xEC, -0x94, 0x34, 0xD1, 0xE4, 0x60, 0xA4, 0x4C, 0xEB, -0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, -0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, -0xFF, 0x6A, 0x8C, 0xEA, 0x0B, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x02, 0xF6, 0x74, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0xE2, 0xF3, 0x80, 0x9C, 0x40, 0x9B, -0x8D, 0xEA, 0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x02, 0xF6, 0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0xA2, 0xF7, 0x98, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, -0x40, 0xDB, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xEC, -0x07, 0x6B, 0x8C, 0xEB, 0x4C, 0xED, 0x8E, 0x34, -0x42, 0xF4, 0x10, 0x4C, 0x36, 0x25, 0x1F, 0xF7, -0x00, 0x6D, 0x8C, 0xED, 0x02, 0xF0, 0x00, 0x75, -0x01, 0x60, 0x21, 0x2D, 0x1F, 0xF7, 0x00, 0x6A, -0x8C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, -0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, -0xB8, 0x9A, 0xB5, 0xE4, 0x80, 0xA5, 0x0B, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0xB8, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0x5C, 0x9A, -0xB5, 0xE4, 0x51, 0xE4, 0x80, 0xA4, 0x00, 0xF6, -0x80, 0x34, 0x01, 0x6A, 0x00, 0xF6, 0x83, 0x34, -0x44, 0xEB, 0x8D, 0xEA, 0x36, 0x10, 0x30, 0xF0, -0x20, 0x6D, 0xE2, 0xF2, 0xBC, 0x9D, 0x01, 0x6E, -0xC4, 0xEB, 0xB1, 0xE4, 0xA0, 0xA4, 0x00, 0xF6, -0xA0, 0x35, 0x00, 0xF6, 0xA3, 0x35, 0xCD, 0xED, -0x3A, 0x10, 0x1F, 0xF7, 0x00, 0x6D, 0x8C, 0xED, -0x02, 0xF0, 0x00, 0x75, 0x01, 0x60, 0x25, 0x2D, -0x1F, 0xF7, 0x00, 0x6A, 0x8C, 0xEA, 0x02, 0xF0, -0x00, 0x72, 0x01, 0x60, 0x07, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF2, 0xB8, 0x9A, 0xB5, 0xE4, -0x80, 0xA5, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF2, 0xB8, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF2, 0x5C, 0x9A, 0xB5, 0xE4, 0x51, 0xE4, -0x80, 0xA4, 0x01, 0x6A, 0x00, 0xF6, 0x80, 0x34, -0x44, 0xEB, 0x00, 0xF6, 0x83, 0x34, 0x4F, 0xEA, -0x8C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x40, 0xC5, -0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6D, 0xE2, 0xF2, -0xBC, 0x9D, 0x01, 0x6E, 0xC4, 0xEB, 0xB1, 0xE4, -0xA0, 0xA4, 0xCF, 0xEE, 0x00, 0xF6, 0xA0, 0x35, -0x00, 0xF6, 0xA3, 0x35, 0xCC, 0xED, 0x4C, 0xED, -0xA0, 0xC4, 0x20, 0xE8, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0x02, 0xF3, 0x68, 0x9B, 0xFF, 0x6A, 0x25, 0x67, -0x60, 0xA3, 0xFF, 0xF7, 0x1F, 0x68, 0x4C, 0xE9, -0x6C, 0xEA, 0x8C, 0xE8, 0x04, 0xD2, 0x00, 0x18, -0xB7, 0xC7, 0x0F, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6C, 0xFF, 0x6D, -0x49, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x20, 0xF4, 0x5C, 0x9A, 0x40, 0xEA, 0x01, 0x72, -0x09, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, -0x54, 0x9A, 0x90, 0x67, 0x01, 0x6D, 0xD1, 0x67, -0x03, 0x6F, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xC2, 0xF7, 0x64, 0x9A, 0xFF, 0x6C, 0x08, 0x6D, -0x40, 0xA3, 0x4A, 0x6E, 0x8C, 0xEA, 0xAD, 0xEA, -0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0x04, 0x95, 0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, -0x54, 0x9A, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, -0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 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, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x00, 0xF4, 0x5C, 0x9A, 0x06, 0xD4, 0x09, 0xD7, -0x07, 0xD5, 0x08, 0xD6, 0x06, 0x04, 0x40, 0xEA, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x46, 0x67, 0x01, 0x4A, 0x05, 0x67, 0x0C, 0xD6, -0x27, 0x67, 0x1F, 0x22, 0x1F, 0xF7, 0x00, 0x6A, -0xAC, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, -0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, -0x58, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF2, 0x5C, 0x9A, 0x49, 0xE0, 0x40, 0x9A, -0x0C, 0x94, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x0C, 0x93, -0x24, 0xEA, 0x6F, 0xEA, 0x04, 0x93, 0x6C, 0xEA, -0x4D, 0xE9, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, -0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0x58, 0x9A, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, -0x5C, 0x9A, 0x41, 0xE0, 0x20, 0xD8, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x1F, 0xF7, 0x00, 0x6A, 0xAC, 0xEA, 0x02, 0xF0, -0x00, 0x72, 0x26, 0x67, 0x01, 0x60, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0x58, 0x9A, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, -0x5C, 0x9A, 0x55, 0xE5, 0x30, 0xF0, 0x20, 0x6A, -0x00, 0x9D, 0xA0, 0xF3, 0x44, 0x9A, 0x91, 0x67, -0x2C, 0xE8, 0x40, 0xEA, 0x06, 0xEA, 0x50, 0x67, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, -0xC0, 0xF3, 0x44, 0x99, 0xFF, 0x68, 0xAC, 0xE8, -0xD0, 0x67, 0x41, 0xF4, 0x10, 0x6C, 0x7F, 0x6D, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xD0, 0x67, -0x41, 0xF6, 0x10, 0x6C, 0x7F, 0x6D, 0x40, 0xEA, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x85, 0x67, 0xA6, 0x67, 0xC7, 0x67, 0x00, 0x18, -0xEC, 0xC7, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0x6A, 0x8C, 0xEA, 0xB3, 0xF5, 0xA0, 0x42, -0x30, 0xF0, 0x20, 0x68, 0x63, 0xF5, 0x08, 0x48, -0xA4, 0x35, 0x15, 0xE5, 0xC4, 0xA5, 0xD1, 0xF6, -0x64, 0x42, 0x03, 0x6D, 0x48, 0x34, 0x44, 0x32, -0xAC, 0xEE, 0x09, 0xE2, 0x11, 0xE4, 0xC0, 0x36, -0x67, 0xF3, 0x45, 0xA2, 0x68, 0x33, 0xFE, 0x65, -0x0D, 0xE3, 0x47, 0xF3, 0x31, 0xA4, 0x47, 0xF3, -0xD2, 0xA4, 0x47, 0xF3, 0x93, 0xA4, 0xE0, 0xA3, -0xAC, 0xEA, 0x01, 0x6B, 0x6C, 0xE9, 0x6C, 0xEE, -0x6C, 0xEC, 0x40, 0x32, 0x6C, 0xEF, 0x30, 0x31, -0x7F, 0x67, 0x48, 0x32, 0xC4, 0x36, 0x94, 0x34, -0xD9, 0xE7, 0x91, 0xE1, 0x4D, 0xE3, 0x30, 0xF0, -0x20, 0x69, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0xD6, -0x04, 0xD3, 0xE2, 0xF3, 0xC8, 0x9A, 0xC0, 0xF3, -0x64, 0x99, 0x05, 0xD4, 0xFC, 0x4D, 0x03, 0xF3, -0x00, 0x6C, 0x40, 0xEB, 0x06, 0x92, 0x05, 0x96, -0x04, 0x93, 0xE3, 0xF3, 0x10, 0x6C, 0x4D, 0xEE, -0xC0, 0xF3, 0x44, 0x99, 0x6D, 0xEE, 0xFF, 0xF7, -0x1F, 0x6D, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6E, -0xE2, 0xF3, 0x0C, 0x4E, 0xC0, 0xF3, 0x44, 0x99, -0xA0, 0x9E, 0xE7, 0xF5, 0xCC, 0xA0, 0xE3, 0xF3, -0x10, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF3, 0x0C, 0x4B, 0xC0, 0xF3, 0x44, 0x99, -0xE7, 0xF5, 0xCC, 0xA0, 0xA0, 0x9B, 0xE3, 0xF3, -0x10, 0x6C, 0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, -0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, 0x00, 0x6B, -0x66, 0xF7, 0x7B, 0xC2, 0x30, 0xF0, 0x20, 0x6B, -0xEA, 0xF4, 0x03, 0x4B, 0xA6, 0xF7, 0x68, 0xDA, -0x00, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF4, -0x60, 0x9B, 0x54, 0x34, 0x20, 0x68, 0x71, 0xE4, -0xA0, 0xA4, 0xF8, 0x6B, 0x01, 0x4A, 0xAC, 0xEB, -0x4E, 0xE8, 0x60, 0xC4, 0xF2, 0x28, 0x80, 0x18, -0xCD, 0x40, 0x30, 0xF0, 0x20, 0x6A, 0xEA, 0xF4, -0x1A, 0xC2, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x68, 0xA4, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, 0x86, 0xF7, -0x64, 0xC2, 0x69, 0xA4, 0x66, 0xF7, 0x79, 0xC2, -0x6A, 0xA4, 0x86, 0xF7, 0x63, 0xC2, 0xAB, 0xA4, -0x0F, 0x6B, 0xAC, 0xEB, 0x86, 0xF7, 0x6D, 0xC2, -0x6B, 0xA4, 0x72, 0x33, 0x86, 0xF7, 0x6A, 0xC2, -0x8E, 0xA4, 0x01, 0x6B, 0x8C, 0xEB, 0x66, 0xF7, -0x7B, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0xEA, 0xF4, -0x03, 0x4B, 0xA6, 0xF7, 0x68, 0xDA, 0x00, 0x6A, -0x20, 0xE8, 0x00, 0x65, 0x60, 0xA4, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, 0x86, 0xF7, -0x64, 0xC2, 0x61, 0xA4, 0x66, 0xF7, 0x79, 0xC2, -0x62, 0xA4, 0x86, 0xF7, 0x63, 0xC2, 0xA3, 0xA4, -0x0F, 0x6B, 0xAC, 0xEB, 0x86, 0xF7, 0x6D, 0xC2, -0x63, 0xA4, 0x72, 0x33, 0x86, 0xF7, 0x6A, 0xC2, -0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, -0x0E, 0x72, 0x03, 0x60, 0x11, 0x72, 0x05, 0x60, -0x08, 0x10, 0x85, 0x67, 0x80, 0x18, 0x1E, 0x0F, -0x19, 0x10, 0x85, 0x67, 0x80, 0x18, 0x99, 0x40, -0x15, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, -0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF4, -0x84, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0x23, 0xF3, 0x70, 0x9A, 0x8D, 0xEB, 0x23, 0xF3, -0x70, 0xDA, 0xFF, 0x6A, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0x05, 0x6B, 0x66, 0xF7, -0x74, 0xDA, 0x09, 0x6B, 0x66, 0xF7, 0x70, 0xDA, -0x20, 0xE8, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, -0x61, 0xF7, 0x88, 0x42, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF6, 0x18, 0x4A, 0x63, 0xF5, 0x08, 0x4B, -0x88, 0x34, 0x44, 0x32, 0x91, 0xE3, 0x4D, 0xE3, -0x00, 0x68, 0x04, 0x4B, 0x04, 0xD4, 0x05, 0xD3, -0x06, 0xD0, 0x07, 0xD0, 0x08, 0xD0, 0x04, 0x95, -0x01, 0x6C, 0x08, 0x93, 0x40, 0xA5, 0x30, 0xF0, -0x20, 0x69, 0x04, 0x36, 0x8C, 0xEA, 0x44, 0xE8, -0x4D, 0xE3, 0x41, 0xA5, 0x05, 0x95, 0x08, 0xD3, -0x8C, 0xEA, 0x07, 0x94, 0x64, 0x40, 0x44, 0xEB, -0x51, 0xE4, 0x40, 0xA5, 0x07, 0xD4, 0x03, 0x6C, -0x64, 0x33, 0x8C, 0xEA, 0x44, 0xEB, 0x04, 0x94, -0x06, 0x93, 0x01, 0x6D, 0x8C, 0xAC, 0x4D, 0xE3, -0x06, 0xD3, 0xC0, 0xF3, 0x64, 0x99, 0x08, 0x6A, -0x4D, 0xEE, 0x09, 0xD4, 0xAB, 0xED, 0x03, 0xF3, -0x00, 0x6C, 0x40, 0xEB, 0x08, 0x95, 0x07, 0x96, -0x06, 0x93, 0xC0, 0xF3, 0x44, 0x99, 0xAD, 0xEE, -0x6D, 0xEE, 0xE3, 0xF3, 0x10, 0x6C, 0xFF, 0xF7, -0x1F, 0x6D, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, -0x09, 0x96, 0x01, 0x6D, 0xE3, 0xF3, 0x08, 0x6C, -0xAB, 0xED, 0x40, 0xEA, 0x04, 0x94, 0x05, 0x95, -0x01, 0x48, 0x02, 0x4C, 0x01, 0x4D, 0x02, 0x70, -0x04, 0xD4, 0x05, 0xD5, 0xBC, 0x61, 0x0D, 0x97, -0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, -0xF7, 0x63, 0x11, 0x62, 0x10, 0xD1, 0x0F, 0xD0, -0xFF, 0x6A, 0x04, 0x67, 0x4C, 0xE8, 0x4C, 0xED, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0x27, 0xF2, 0x69, 0xA2, 0x30, 0xF0, 0x20, 0x6C, -0x4B, 0xF3, 0x18, 0x4C, 0x0D, 0xD3, 0xB0, 0xF7, -0x68, 0x40, 0x6C, 0x33, 0x6D, 0xE2, 0x0C, 0xD5, -0x0A, 0xD3, 0x08, 0xD4, 0x00, 0x69, 0x09, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, 0x10, 0x4B, -0xE0, 0x9B, 0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x68, -0xCA, 0xF4, 0x08, 0x48, 0x2C, 0xEA, 0x90, 0x67, -0xA2, 0x67, 0xDF, 0x6E, 0x06, 0xD2, 0x80, 0x18, -0xBA, 0x46, 0x10, 0x6B, 0x4D, 0xEB, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF3, 0x10, 0x4A, 0x06, 0x95, -0xE0, 0x9A, 0x90, 0x67, 0xDF, 0x6E, 0x04, 0xD3, -0x80, 0x18, 0xFF, 0x46, 0x0A, 0x93, 0x06, 0x95, -0x90, 0x67, 0x40, 0x9B, 0x58, 0x6E, 0x30, 0xF0, -0x20, 0x68, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF3, 0x10, 0x4A, 0xE0, 0x9A, 0x80, 0x18, -0xFF, 0x46, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0x6B, -0x24, 0x36, 0x01, 0x6D, 0x6D, 0xEE, 0x03, 0xF3, -0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0x0D, 0x93, 0x06, 0x73, -0x1C, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, -0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, -0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x08, 0x93, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC0, 0x9B, -0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x08, 0x93, 0x01, 0x6D, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, 0xC2, 0x9B, -0x21, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, -0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, -0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x42, 0xF3, 0x14, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, -0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x42, 0xF3, 0x14, 0x4B, 0xC0, 0xF3, -0x44, 0x98, 0xC0, 0x9B, 0x01, 0x6D, 0x23, 0xF3, -0x1C, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x0C, 0x94, -0x06, 0x24, 0x00, 0x6A, 0x01, 0x74, 0x06, 0xD2, -0xE0, 0xF0, 0x15, 0x61, 0x7A, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x44, 0x9A, 0x02, 0xF4, 0xA4, 0x9B, 0x23, 0xF3, -0x00, 0x6C, 0x03, 0x6E, 0x40, 0xEA, 0x44, 0x6B, -0x78, 0xE9, 0x09, 0x94, 0x88, 0x6A, 0x00, 0x68, -0x12, 0xEB, 0x58, 0xEC, 0x12, 0xEA, 0x4D, 0xE3, -0x30, 0xF0, 0x20, 0x6A, 0x87, 0xF3, 0x00, 0x4B, -0x63, 0xF5, 0x08, 0x4A, 0x69, 0xE2, 0x06, 0xD2, -0x06, 0x92, 0x30, 0xF0, 0x20, 0x6B, 0x01, 0x6D, -0xC0, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF4, -0x50, 0x9A, 0xC0, 0x36, 0xC3, 0xF3, 0x18, 0x6C, -0x4D, 0xEE, 0x08, 0x32, 0x4D, 0xEE, 0xC0, 0xF3, -0x44, 0x9B, 0xAB, 0xED, 0x02, 0x4E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x9C, 0x42, 0xF3, 0xB4, 0x9B, -0xC3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x06, 0x92, 0x01, 0x48, 0x11, 0x70, 0x02, 0x4A, -0x06, 0xD2, 0xDA, 0x61, 0x44, 0x6B, 0x78, 0xE9, -0x09, 0x94, 0x88, 0x6A, 0x00, 0x68, 0x12, 0xEB, -0x58, 0xEC, 0x12, 0xEA, 0x4D, 0xE3, 0x30, 0xF0, -0x20, 0x6A, 0x87, 0xF4, 0x10, 0x4B, 0x63, 0xF5, -0x08, 0x4A, 0x69, 0xE2, 0x06, 0xD2, 0x06, 0x92, -0x30, 0xF0, 0x20, 0x6C, 0x08, 0x33, 0xC0, 0xAA, -0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF4, 0x50, 0x9A, -0xC0, 0x36, 0x01, 0x6D, 0x4D, 0xEE, 0xC0, 0xF3, -0x44, 0x9C, 0x6D, 0xEE, 0xC3, 0xF3, 0x18, 0x6C, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, -0x42, 0xF3, 0xB4, 0x9B, 0xC3, 0xF3, 0x18, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x06, 0x94, 0x01, 0x48, -0x11, 0x70, 0x02, 0x4C, 0x06, 0xD4, 0xDB, 0x61, -0x17, 0x11, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x02, 0xF4, -0xA4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, -0x40, 0xEA, 0x44, 0x6B, 0x78, 0xE9, 0x09, 0x94, -0x88, 0x6A, 0x00, 0x68, 0x12, 0xEB, 0x58, 0xEC, -0x12, 0xEA, 0x4D, 0xE3, 0x30, 0xF0, 0x20, 0x6A, -0xA7, 0xF3, 0x02, 0x4B, 0x63, 0xF5, 0x08, 0x4A, -0x69, 0xE2, 0x06, 0xD2, 0x06, 0x92, 0x30, 0xF0, -0x20, 0x6B, 0x01, 0x6D, 0xC0, 0xAA, 0x30, 0xF0, -0x20, 0x6A, 0x22, 0xF4, 0x54, 0x9A, 0xC0, 0x36, -0xC3, 0xF3, 0x18, 0x6C, 0x4D, 0xEE, 0x08, 0x32, -0x4D, 0xEE, 0xC0, 0xF3, 0x44, 0x9B, 0xAB, 0xED, -0x02, 0x4E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9C, -0x42, 0xF3, 0xB4, 0x9B, 0xC3, 0xF3, 0x18, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x06, 0x92, 0x01, 0x48, -0x11, 0x70, 0x02, 0x4A, 0x06, 0xD2, 0xDA, 0x61, -0x44, 0x6B, 0x78, 0xE9, 0x09, 0x94, 0x88, 0x6A, -0x00, 0x68, 0x12, 0xEB, 0x58, 0xEC, 0x12, 0xEA, -0x4D, 0xE3, 0x30, 0xF0, 0x20, 0x6A, 0xA7, 0xF4, -0x12, 0x4B, 0x63, 0xF5, 0x08, 0x4A, 0x69, 0xE2, -0x06, 0xD2, 0x06, 0x92, 0x30, 0xF0, 0x20, 0x6C, -0x08, 0x33, 0xC0, 0xAA, 0x30, 0xF0, 0x20, 0x6A, -0x22, 0xF4, 0x54, 0x9A, 0xC0, 0x36, 0x01, 0x6D, -0x4D, 0xEE, 0xC0, 0xF3, 0x44, 0x9C, 0x6D, 0xEE, -0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, -0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, 0xB4, 0x9B, -0xC3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x06, 0x94, 0x01, 0x48, 0x11, 0x70, 0x02, 0x4C, -0x06, 0xD4, 0xDB, 0x61, 0x9D, 0x10, 0x06, 0x93, -0xFF, 0x6A, 0x6C, 0xEA, 0x11, 0x2A, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x44, 0x9A, 0x02, 0xF4, 0xA4, 0x9B, 0x23, 0xF3, -0x00, 0x6C, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x22, 0xF4, 0x50, 0x9A, 0x10, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x02, 0xF4, 0xA4, 0x9B, -0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF4, 0x54, 0x9A, -0x0B, 0xD2, 0x06, 0x92, 0x22, 0x6B, 0x09, 0x94, -0x78, 0xEA, 0x44, 0x6A, 0x00, 0x68, 0x12, 0xEB, -0x58, 0xE9, 0x12, 0xEA, 0x4D, 0xE3, 0x88, 0x6A, -0x58, 0xEC, 0x12, 0xEA, 0x4D, 0xE3, 0x30, 0xF0, -0x20, 0x6A, 0x87, 0xF3, 0x00, 0x4B, 0x63, 0xF5, -0x08, 0x4A, 0x69, 0xE2, 0x07, 0xD2, 0x07, 0x92, -0x0B, 0x93, 0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xAA, -0x08, 0x32, 0x01, 0x6D, 0xC0, 0x36, 0x6D, 0xEE, -0x4D, 0xEE, 0xC0, 0xF3, 0x44, 0x9C, 0xAB, 0xED, -0xC3, 0xF3, 0x18, 0x6C, 0x02, 0x4E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, -0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, 0xB4, 0x9B, -0xC3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x07, 0x94, 0x01, 0x48, 0x11, 0x70, 0x02, 0x4C, -0x07, 0xD4, 0xDD, 0x61, 0x06, 0x92, 0x22, 0x6B, -0x09, 0x94, 0x78, 0xEA, 0x44, 0x6A, 0x00, 0x68, -0x12, 0xEB, 0x58, 0xE9, 0x12, 0xEA, 0x4D, 0xE3, -0x88, 0x6A, 0x58, 0xEC, 0x12, 0xEA, 0x4D, 0xE3, -0x30, 0xF0, 0x20, 0x6A, 0x87, 0xF4, 0x10, 0x4B, -0x63, 0xF5, 0x08, 0x4A, 0x69, 0xE2, 0x07, 0xD2, -0x07, 0x92, 0x0B, 0x93, 0x30, 0xF0, 0x20, 0x6C, -0xC0, 0xAA, 0xC0, 0xF3, 0x44, 0x9C, 0x01, 0x6D, -0xC0, 0x36, 0x6D, 0xEE, 0x08, 0x33, 0x6D, 0xEE, -0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, -0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, 0xB4, 0x9B, -0xC3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x07, 0x94, 0x01, 0x48, 0x11, 0x70, 0x02, 0x4C, -0x07, 0xD4, 0xDE, 0x61, 0x06, 0x92, 0x01, 0x4A, -0x02, 0x72, 0x06, 0xD2, 0x7F, 0xF7, 0x03, 0x61, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, -0xE2, 0xF3, 0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF4, -0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, -0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x00, 0x6B, -0x06, 0xD3, 0x06, 0x93, 0x06, 0x92, 0x30, 0xF0, -0x20, 0x68, 0xFF, 0x6C, 0x8C, 0xEA, 0x64, 0x36, -0xC0, 0xF3, 0x64, 0x98, 0x07, 0xD2, 0x01, 0x6D, -0x08, 0x6A, 0x4D, 0xEE, 0x03, 0xF2, 0x01, 0x4C, -0xAB, 0xED, 0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, -0x62, 0xF3, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, -0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x42, 0xF3, 0x14, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, -0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x42, 0xF3, 0x14, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, -0x1C, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC2, 0xF4, 0xB0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, -0x40, 0xEA, 0x03, 0x6A, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x07, 0x95, 0x02, 0xF5, 0xE8, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0xCA, 0xF4, 0x08, 0x4C, -0x00, 0x6E, 0x80, 0x18, 0xFF, 0x46, 0x06, 0x94, -0x01, 0x4C, 0x02, 0x74, 0x06, 0xD4, 0xA9, 0x61, -0x0A, 0x92, 0x08, 0x93, 0x01, 0x49, 0x04, 0x4A, -0x04, 0x4B, 0x02, 0x71, 0x0A, 0xD2, 0x08, 0xD3, -0x7F, 0xF5, 0x0E, 0x61, 0x11, 0x97, 0x10, 0x91, -0x0F, 0x90, 0x09, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFF, 0x6A, 0xAC, 0xEA, 0x1C, 0x22, 0x30, 0xF0, -0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0xFF, 0x6D, -0x83, 0xF4, 0x10, 0x6C, 0x01, 0x4D, 0x01, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF3, -0x24, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x01, 0x6E, 0x09, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0xFF, 0x6D, -0x83, 0xF4, 0x10, 0x6C, 0x01, 0x4D, 0x00, 0x6E, -0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0x4C, 0xED, 0x29, 0x5D, 0xCC, 0xEA, -0x03, 0x61, 0x17, 0x5A, 0x03, 0x60, 0x06, 0x10, -0x17, 0x5A, 0x04, 0x60, 0x01, 0x6A, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF4, 0x1C, 0x6C, -0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x00, 0x6A, -0xF2, 0x17, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, 0x70, 0x9B, -0x46, 0x67, 0x8E, 0xEB, 0x12, 0x23, 0x00, 0x6E, -0x66, 0x67, 0xE4, 0x67, 0xE6, 0xEE, 0x01, 0x68, -0x0C, 0xEF, 0x07, 0x2F, 0x01, 0x4B, 0xFF, 0x6F, -0xEC, 0xEB, 0x14, 0x73, 0x01, 0x4E, 0xF5, 0x61, -0x14, 0x6B, 0x8F, 0xEC, 0x44, 0xEB, 0xAC, 0xEC, -0x8D, 0xEA, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, -0xFC, 0x63, 0x07, 0x62, 0x07, 0xF4, 0x00, 0x6A, -0x04, 0xD2, 0x02, 0xF0, 0x00, 0x4A, 0x05, 0xD2, -0xA8, 0x35, 0x5D, 0x67, 0xB5, 0xE2, 0x44, 0x9D, -0xFF, 0x6C, 0xCC, 0xEC, 0x88, 0x34, 0x51, 0xE4, -0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEC, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF3, 0xB0, 0x9B, 0x30, 0xF0, -0x20, 0x6A, 0x0C, 0x96, 0xC0, 0xF3, 0x44, 0x9A, -0xEC, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, 0x40, 0xEA, -0x07, 0x97, 0x01, 0x6A, 0x04, 0x63, 0x00, 0xEF, -0x00, 0x6A, 0x20, 0xE8, 0x20, 0xE8, 0x00, 0x65, -0x01, 0x6A, 0x20, 0xE8, 0x20, 0xE8, 0x00, 0x65, -0x00, 0x6A, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x01, 0x75, 0x33, 0x61, -0x01, 0x76, 0x17, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF3, 0x30, 0x9A, 0x30, 0xF0, 0x20, 0x68, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x22, 0xF5, 0xD4, 0x9B, 0x03, 0xF0, 0x00, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x08, 0xF1, 0x00, 0x6C, 0xB1, 0x67, 0x00, 0x6E, -0x81, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, -0x30, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x68, 0x22, 0xF5, 0xD4, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, 0xB1, 0x67, -0x22, 0xF5, 0xD8, 0x9B, 0x67, 0x10, 0x02, 0x75, -0x2C, 0x61, 0x01, 0x76, 0x10, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF3, 0x30, 0x9A, 0x30, 0xF0, -0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, -0x22, 0xF5, 0xD8, 0x9B, 0x2D, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF3, 0x30, 0x9A, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x22, 0xF5, -0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, -0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, -0x00, 0x6C, 0xB1, 0x67, 0x22, 0xF5, 0xD4, 0x9B, -0x39, 0x10, 0x03, 0x75, 0x38, 0x61, 0x01, 0x76, -0x1A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, -0x30, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x22, 0xF5, -0xD4, 0x9B, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, 0xB1, 0x67, -0x22, 0xF5, 0xDC, 0x9B, 0x1B, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, -0x30, 0x9A, 0x22, 0xF5, 0x14, 0x4B, 0x30, 0xF0, -0x20, 0x68, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF5, 0x14, 0x4B, -0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, 0x08, 0xF1, -0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0x01, 0x6A, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, -0x0E, 0x72, 0x51, 0x61, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x68, 0x42, 0xF5, 0x00, 0x4B, -0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, -0x00, 0x6C, 0xA7, 0xF5, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF5, 0xC4, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, -0x23, 0xF2, 0x04, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x08, 0x6C, -0xFF, 0xF7, 0x1F, 0x6D, 0xAD, 0xF2, 0x03, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF5, -0x00, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x83, 0xF2, 0x18, 0x6C, 0x75, 0xF2, 0x1B, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF2, -0x1C, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0xDE, 0xF3, -0x17, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xA3, 0xF2, 0x00, 0x6C, 0xB1, 0x67, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x42, 0xF5, 0xC8, 0x9B, 0xA3, 0xF2, -0x0C, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xA3, 0xF2, 0x10, 0x6C, 0xB1, 0x67, -0xFF, 0xF7, 0x1F, 0x6E, 0x55, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x42, 0xF5, -0x00, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF2, 0x00, 0x6C, 0x8A, 0xF2, 0x04, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF5, -0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, -0x2B, 0xE9, 0x23, 0xF2, 0x04, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, -0x08, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0x81, 0xF2, -0x08, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x42, 0xF5, 0x00, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x83, 0xF2, 0x18, 0x6C, 0xD5, 0xF4, -0x04, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x83, 0xF2, 0x1C, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, -0xB9, 0xF0, 0x12, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x42, 0xF5, 0xD0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0xA3, 0xF2, 0x00, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF5, -0xD4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF2, -0x0C, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x42, 0xF5, -0xD8, 0x9B, 0xA3, 0xF2, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, -0xC0, 0xF3, 0x44, 0x99, 0xFF, 0x68, 0xAC, 0xE8, -0xD0, 0x67, 0xA3, 0xF0, 0x0C, 0x6C, 0x1E, 0xF0, -0x00, 0x6D, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, -0xD0, 0x67, 0xA8, 0xF1, 0x0C, 0x6C, 0x1E, 0xF0, -0x00, 0x6D, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x68, 0xAC, 0xE8, 0x09, 0xE4, 0x0A, 0xD4, -0x05, 0xD2, 0x40, 0xF0, 0x71, 0xA2, 0x30, 0xF0, -0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, 0x04, 0xD3, -0xA3, 0xF0, 0x0C, 0x6C, 0xE0, 0xF1, 0x10, 0x6D, -0xD0, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, -0xA8, 0xF1, 0x0C, 0x6C, 0xE0, 0xF1, 0x10, 0x6D, -0xD0, 0x67, 0x40, 0xEA, 0x0A, 0x92, 0x40, 0xF0, -0x10, 0xC2, 0x05, 0x93, 0x60, 0xF0, 0x41, 0xA3, -0x02, 0x2A, 0x0D, 0x6A, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x04, 0x96, -0x21, 0xF0, 0x08, 0x6C, 0xF8, 0x6D, 0x40, 0xEA, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0x4C, 0xED, 0x68, 0x45, 0xFB, 0x4B, -0x4C, 0xEB, 0x02, 0x5B, 0x0B, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, -0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x61, 0xF1, -0x09, 0x6E, 0x78, 0x10, 0x68, 0x45, 0xFD, 0x4B, -0x4C, 0xEB, 0x02, 0x5B, 0x0B, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, -0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x61, 0xF1, -0x0A, 0x6E, 0x68, 0x10, 0x6F, 0x45, 0x4C, 0xEB, -0x0A, 0x5B, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, -0xE1, 0xF7, 0x1F, 0x6D, 0xA1, 0xF1, 0x0A, 0x6E, -0x59, 0x10, 0x68, 0x45, 0xE4, 0x4B, 0x4C, 0xEB, -0x10, 0x5B, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, -0xE1, 0xF7, 0x1F, 0x6D, 0x80, 0xF4, 0x14, 0x6E, -0x49, 0x10, 0x68, 0x45, 0xD4, 0x4B, 0x4C, 0xEB, -0x04, 0x5B, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, -0xE1, 0xF7, 0x1F, 0x6D, 0x80, 0xF4, 0x13, 0x6E, -0x39, 0x10, 0x68, 0x45, 0xD0, 0x4B, 0x4C, 0xEB, -0x38, 0x5B, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, -0xE1, 0xF7, 0x1F, 0x6D, 0x40, 0xF4, 0x13, 0x6E, -0x29, 0x10, 0x68, 0x45, 0x98, 0x4B, 0x4C, 0xEB, -0x08, 0x5B, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, -0xE1, 0xF7, 0x1F, 0x6D, 0x40, 0xF4, 0x12, 0x6E, -0x19, 0x10, 0x88, 0x4D, 0x4C, 0xED, 0x35, 0x5D, -0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, 0xE1, 0xF7, -0x1F, 0x6D, 0x00, 0xF4, 0x12, 0x6E, 0x0A, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, -0x21, 0xF4, 0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, -0x00, 0xF4, 0x11, 0x6E, 0x40, 0xEA, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0xAC, 0xEA, 0x0F, 0x5A, 0x0B, 0x60, -0x0D, 0x72, 0x09, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x01, 0xF0, 0x08, 0x6C, -0x70, 0x6D, 0x01, 0x6E, 0x08, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0xF0, -0x08, 0x6C, 0x70, 0x6D, 0x03, 0x6E, 0x40, 0xEA, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFF, 0x6A, 0xAC, 0xEA, 0x26, 0x67, 0x3B, 0x22, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, -0x42, 0xF5, 0x1C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x43, 0xF1, 0x04, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF5, 0x1C, 0x4B, -0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xD1, 0x67, -0x48, 0xF0, 0x04, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x62, 0xF3, 0x34, 0x9A, 0xC0, 0xF3, -0x44, 0x98, 0x43, 0xF1, 0x00, 0x6C, 0xB1, 0x67, -0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x48, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x01, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, -0x18, 0x6C, 0x01, 0xF0, 0x00, 0x6D, 0x01, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF5, 0x1C, 0x6C, 0x62, 0xF5, -0xA0, 0x9B, 0x0F, 0x6E, 0x37, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0x42, 0xF5, -0x3C, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF1, -0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x48, 0xF0, -0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x62, 0xF3, 0x34, 0x9A, 0xC0, 0xF3, -0x44, 0x98, 0x43, 0xF1, 0x00, 0x6C, 0xB1, 0x67, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x48, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, -0x18, 0x6C, 0x01, 0xF0, 0x00, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x62, 0xF5, 0xA0, 0x9B, 0x23, 0xF5, -0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, -0xAC, 0xEA, 0x13, 0x22, 0x30, 0xF0, 0x20, 0x68, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, 0x18, 0x6C, -0x08, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF5, -0x1C, 0x6C, 0x62, 0xF5, 0xA0, 0x9B, 0x0F, 0x6E, -0x12, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0xF0, 0x18, 0x6C, 0x08, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x62, 0xF5, 0xA0, 0x9B, -0x23, 0xF5, 0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFF, 0x68, 0xAC, 0xE8, 0x00, 0x6D, 0x24, 0x67, -0x80, 0x18, 0x1C, 0x44, 0x99, 0x70, 0x07, 0x61, -0x50, 0x99, 0x40, 0xA2, 0x04, 0x2A, 0x91, 0x67, -0x01, 0x6D, 0x70, 0x6E, 0x03, 0x10, 0x00, 0x6D, -0x91, 0x67, 0xC5, 0x67, 0x80, 0x18, 0xDC, 0x43, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0xAC, 0xEA, 0x0C, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x9A, 0x63, 0xF4, 0x04, 0x6C, 0x42, 0xF3, -0xB4, 0x9B, 0x01, 0x6E, 0x0B, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x9A, 0x42, 0xF3, 0xB4, 0x9B, 0x63, 0xF4, -0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0xAC, 0xEA, 0x09, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x41, 0xF4, -0x14, 0x6C, 0x80, 0x6D, 0x01, 0x6E, 0x08, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, -0x41, 0xF4, 0x14, 0x6C, 0x80, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0x5B, 0xAC, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0xFF, 0xF7, 0x1F, 0x68, -0xAC, 0xE8, 0x24, 0x67, 0xD0, 0x67, 0x61, 0xF2, -0x10, 0x6C, 0xE0, 0xF3, 0x1F, 0x6D, 0x40, 0xEA, -0x1B, 0xC9, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0x62, 0xF5, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, -0x00, 0x6E, 0x23, 0xF4, 0x1C, 0x6C, 0x40, 0xEA, -0x01, 0x6D, 0xA5, 0xF5, 0x14, 0x6C, 0xAB, 0xED, -0x80, 0x18, 0x1F, 0x14, 0x30, 0xF0, 0x20, 0x6B, -0x62, 0xF5, 0x68, 0x9B, 0x05, 0x97, 0x4C, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF4, 0x44, 0x9A, -0x4E, 0xEB, 0x01, 0x5B, 0x58, 0x67, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x83, 0xF2, 0x18, 0x68, -0x24, 0x67, 0x18, 0xF0, 0x00, 0x6D, 0x90, 0x67, -0x80, 0x18, 0x1F, 0x14, 0x05, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x02, 0xF5, 0xA8, 0x9A, 0xA3, 0xF2, -0x08, 0x6C, 0x80, 0x18, 0x1F, 0x14, 0x90, 0x67, -0xC0, 0x6D, 0x04, 0xD2, 0x80, 0x18, 0x1F, 0x14, -0x02, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF4, -0xAC, 0x9A, 0x63, 0xF2, 0x10, 0x6C, 0x80, 0x18, -0x1F, 0x14, 0x05, 0x93, 0x04, 0x95, 0xFF, 0x6C, -0x8C, 0xEB, 0x8C, 0xE8, 0x70, 0x33, 0x10, 0x30, -0x4D, 0xE8, 0xAD, 0xEB, 0x60, 0xF0, 0x71, 0xC1, -0x60, 0xF0, 0x12, 0xC1, 0x09, 0x97, 0x08, 0x91, -0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x0C, 0xED, -0x02, 0xF5, 0x08, 0x4A, 0x04, 0xD5, 0xA0, 0x9A, -0x21, 0xF0, 0x04, 0x69, 0x91, 0x67, 0x80, 0x18, -0x1F, 0x14, 0x04, 0x93, 0x41, 0x23, 0x4C, 0xE8, -0x03, 0x70, 0x00, 0x6A, 0x7B, 0x61, 0x30, 0xF0, -0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, -0x1C, 0x6C, 0x04, 0x6D, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF4, 0x0C, 0x4B, -0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, -0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x02, 0xF5, 0x08, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, 0x01, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF4, -0x0C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x03, 0xF2, 0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF5, 0xAC, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x02, 0xF2, 0x08, 0x49, -0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, -0x62, 0xF5, 0xB0, 0x9B, 0x00, 0x6E, 0x3C, 0x10, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0x21, 0xF0, 0x1C, 0x6C, 0x04, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF4, -0x0C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x91, 0x67, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x02, 0xF5, 0x08, 0x4B, 0xA0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, -0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x02, 0xF4, 0x0C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF2, 0x04, 0x6C, 0x01, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF5, -0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, -0x0C, 0x69, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x62, 0xF5, 0xB0, 0x9B, 0x91, 0x67, 0x01, 0x6E, -0x40, 0xEA, 0x01, 0x6A, 0x09, 0x97, 0x08, 0x91, -0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFF, 0x6A, 0x4C, 0xED, 0x08, 0xD4, 0xCC, 0xEA, -0xC0, 0xF0, 0x1C, 0x25, 0x20, 0x22, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x62, 0xF5, -0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, -0x00, 0x6C, 0x21, 0xF0, 0x13, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, 0x08, 0x6C, -0x18, 0xF0, 0x00, 0x6D, 0x02, 0x6E, 0x40, 0xEA, -0x01, 0x6D, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xAB, 0xED, -0x62, 0xF5, 0xD8, 0x9B, 0x90, 0x11, 0x08, 0x93, -0x50, 0x9B, 0x40, 0xA2, 0x01, 0x72, 0x80, 0xF1, -0x0B, 0x61, 0x01, 0x69, 0x2B, 0xE9, 0xA1, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x80, 0x18, 0x1F, 0x14, -0x08, 0x93, 0x30, 0xF0, 0x20, 0x68, 0x03, 0xF0, -0x00, 0x6C, 0x5D, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x62, 0xF5, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x81, 0xF0, 0x08, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x42, 0xF3, 0xB4, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x81, 0xF0, 0x18, 0x6C, 0x01, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, -0x08, 0x6C, 0x18, 0xF0, 0x00, 0x6D, 0x01, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA1, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x04, 0xF2, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF5, -0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF5, 0x18, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x62, 0xF5, 0xDC, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x82, 0xF5, 0xC4, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, -0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x82, 0xF5, 0xCC, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, -0xD0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x82, 0xF5, 0xD4, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, -0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x82, 0xF5, 0xDC, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF5, -0x00, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0xA2, 0xF5, -0x00, 0x4B, 0xD4, 0x10, 0x20, 0x22, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x62, 0xF5, -0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, -0x00, 0x6C, 0x20, 0xF3, 0x13, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, 0x08, 0x6C, -0x18, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0x01, 0x6D, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xAB, 0xED, -0xA2, 0xF5, 0xC4, 0x9B, 0xB4, 0x10, 0x08, 0x93, -0x50, 0x9B, 0x40, 0xA2, 0x01, 0x72, 0xA0, 0xF0, -0x0F, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, -0x20, 0x6B, 0x62, 0xF5, 0xB4, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0x20, 0xF3, -0x13, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x42, 0xF3, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x81, 0xF0, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, 0x08, 0x6C, -0x18, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0x08, 0x93, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, -0xDD, 0x9B, 0x2B, 0xE9, 0xA1, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA2, 0xF5, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF5, -0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF5, 0xC8, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA2, 0xF5, 0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF5, 0xD0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA2, 0xF5, 0xD4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF5, 0xD8, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA2, 0xF5, 0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF5, 0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, 0xC8, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF5, 0x0C, 0x4B, 0xC0, 0xF3, 0x44, 0x98, -0xC0, 0x9B, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0xC2, 0xF5, 0x0C, 0x4B, 0xC0, 0x9B, 0x40, 0xEA, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x05, 0x67, -0x02, 0xF5, 0xA8, 0x9A, 0x21, 0xF0, 0x04, 0x6C, -0x80, 0x18, 0x1F, 0x14, 0x40, 0xC0, 0x30, 0xF0, -0x20, 0x6A, 0x02, 0xF4, 0xAC, 0x9A, 0x03, 0xF2, -0x04, 0x6C, 0x80, 0x18, 0x1F, 0x14, 0x01, 0x72, -0x02, 0x61, 0x03, 0x6A, 0x06, 0x10, 0x02, 0x2A, -0x01, 0x6A, 0x03, 0x10, 0x05, 0x72, 0x02, 0x61, -0x02, 0x6A, 0x41, 0xC0, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x05, 0x67, 0x01, 0x6D, 0x21, 0xF0, -0x00, 0x6C, 0xAB, 0xED, 0x80, 0x18, 0x1F, 0x14, -0xF0, 0x6B, 0x4C, 0xEB, 0x72, 0x33, 0x61, 0xC0, -0x0F, 0x6B, 0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, -0xC2, 0xF5, 0xB0, 0x9A, 0x60, 0xC0, 0x03, 0xF2, -0x04, 0x6C, 0x80, 0x18, 0x1F, 0x14, 0x0C, 0x72, -0x02, 0x61, 0x03, 0x6A, 0x09, 0x10, 0x08, 0x72, -0x02, 0x61, 0x01, 0x6A, 0x05, 0x10, 0x04, 0x72, -0x02, 0x61, 0x02, 0x6A, 0x01, 0x10, 0x01, 0x2A, -0x42, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, -0xAC, 0x9A, 0x23, 0xF6, 0x04, 0x6C, 0x80, 0x18, -0x1F, 0x14, 0x4F, 0xEA, 0x43, 0xC0, 0x01, 0x6A, -0x44, 0xC0, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x69, 0x02, 0x5D, -0x0D, 0xD5, 0x0F, 0xD7, 0xCC, 0xE9, 0x70, 0x60, -0x54, 0x59, 0x6E, 0x60, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x68, 0xC2, 0xF5, 0x14, 0x4B, -0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, 0x63, 0xF4, -0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xC2, 0xF5, -0xB8, 0x9B, 0x63, 0xF4, 0x1C, 0x6C, 0xD1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, -0x14, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, -0x63, 0xF4, 0x1C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0xE5, 0xF5, 0x08, 0x6C, 0xFF, 0x6D, 0x80, 0x18, -0x1F, 0x14, 0x00, 0xF6, 0x40, 0x30, 0x00, 0xF6, -0x03, 0x30, 0x40, 0x6A, 0x0C, 0xEA, 0x03, 0x22, -0x80, 0x6A, 0x4B, 0xEA, 0x4D, 0xE8, 0x0F, 0x92, -0x0B, 0x72, 0x10, 0x61, 0x0D, 0x93, 0xA3, 0xF0, -0x00, 0x6A, 0x06, 0xD2, 0x05, 0xF1, 0x00, 0x4A, -0x07, 0xD2, 0x68, 0x32, 0x7D, 0x67, 0x49, 0xE3, -0x8C, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, -0xBC, 0x9A, 0x13, 0x10, 0x0F, 0x92, 0x00, 0x6B, -0x0C, 0x72, 0x13, 0x61, 0x0D, 0x93, 0xE3, 0xF0, -0x08, 0x6A, 0x04, 0xD2, 0x05, 0xF1, 0x00, 0x4A, -0x05, 0xD2, 0x68, 0x32, 0x7D, 0x67, 0x49, 0xE3, -0x88, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, -0xA0, 0x9A, 0x80, 0x18, 0x1F, 0x14, 0xFF, 0x6B, -0x4C, 0xEB, 0x0D, 0xE3, 0x00, 0x53, 0x00, 0x68, -0x02, 0x61, 0xFF, 0x68, 0x6C, 0xE8, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x44, 0x9A, 0xC2, 0xF5, 0xB4, 0x9B, 0x63, 0xF4, -0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x01, 0x10, -0xFF, 0x68, 0x50, 0x67, 0x0B, 0x97, 0x0A, 0x91, -0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, -0x00, 0xF6, 0xA0, 0x35, 0x00, 0xF6, 0xC0, 0x36, -0x00, 0xF6, 0xE0, 0x37, 0x00, 0xF6, 0xA3, 0x35, -0x00, 0xF6, 0xC3, 0x36, 0x00, 0xF6, 0xE3, 0x37, -0x05, 0xD5, 0x06, 0xD6, 0x07, 0xD7, 0x5D, 0x67, -0x40, 0xF0, 0x48, 0x82, 0x08, 0xD2, 0x5D, 0x67, -0x40, 0xF0, 0x4C, 0xA2, 0x04, 0xD2, 0x20, 0xF0, -0x6F, 0xA4, 0x01, 0x6A, 0x37, 0x2B, 0x04, 0x92, -0x40, 0x5A, 0x00, 0x6A, 0x33, 0x60, 0x83, 0xF4, -0x10, 0x68, 0x10, 0xF0, 0x00, 0x69, 0x90, 0x67, -0xB1, 0x67, 0x80, 0x18, 0x1F, 0x14, 0x08, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, -0x90, 0x67, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, -0x04, 0x92, 0x04, 0x6C, 0x06, 0x93, 0x8B, 0xEC, -0x4C, 0xEC, 0x05, 0x92, 0x7F, 0x6E, 0xCC, 0xEB, -0xCC, 0xEA, 0x60, 0x33, 0x4D, 0xEB, 0x07, 0x92, -0xFF, 0xF7, 0x1F, 0x6D, 0x07, 0xF2, 0x00, 0x4C, -0xCC, 0xEA, 0x40, 0x32, 0x40, 0x32, 0x4D, 0xEB, -0x08, 0x92, 0xAC, 0xEC, 0x01, 0x6D, 0x4C, 0xEE, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, -0x00, 0xF6, 0xC0, 0x36, 0xAB, 0xED, 0x6D, 0xEE, -0x40, 0xEA, 0x01, 0x6A, 0x0D, 0x97, 0x0C, 0x91, -0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x0F, 0xD7, 0x20, 0xF0, 0x6F, 0xA4, 0xFF, 0x68, -0x26, 0x67, 0xAC, 0xE8, 0x01, 0x6A, 0x3F, 0x2B, -0x02, 0x5E, 0x00, 0x6A, 0x3C, 0x60, 0x83, 0xF4, -0x10, 0x6C, 0x10, 0xF0, 0x00, 0x6D, 0x80, 0x18, -0x1F, 0x14, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x83, 0xF4, 0x10, 0x6C, -0x10, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0x0F, 0x92, 0x0B, 0x72, 0x13, 0x61, 0xA3, 0xF0, -0x00, 0x6B, 0x06, 0xD3, 0x05, 0xF1, 0x00, 0x4B, -0x07, 0xD3, 0x28, 0x31, 0x7D, 0x67, 0x25, 0xE3, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x9A, 0x8C, 0xA9, 0xC2, 0xF5, -0xBC, 0x9B, 0x12, 0x10, 0xE3, 0xF0, 0x08, 0x6B, -0x04, 0xD3, 0x05, 0xF1, 0x00, 0x4B, 0x05, 0xD3, -0x28, 0x31, 0x7D, 0x67, 0x25, 0xE3, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x9A, 0x88, 0xA9, 0xE2, 0xF5, 0xA0, 0x9B, -0xD0, 0x67, 0x40, 0xEA, 0x01, 0x6A, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x0C, 0xD4, 0x25, 0x67, 0xA0, 0xA5, 0x00, 0x6E, -0x0B, 0x6F, 0x80, 0x18, 0x64, 0x46, 0x0C, 0x94, -0xA1, 0xA1, 0x01, 0x6E, 0x0B, 0x6F, 0x80, 0x18, -0x64, 0x46, 0x0C, 0x94, 0xA2, 0xA1, 0x00, 0x6E, -0x0C, 0x6F, 0x80, 0x18, 0x64, 0x46, 0x0C, 0x94, -0xA3, 0xA1, 0x01, 0x6E, 0x0C, 0x6F, 0x80, 0x18, -0x64, 0x46, 0xFD, 0x6A, 0x00, 0x6B, 0x11, 0x67, -0x06, 0xD2, 0x07, 0xD3, 0x07, 0x93, 0x03, 0x6A, -0x6C, 0xEA, 0x03, 0x72, 0x0A, 0x61, 0x44, 0x80, -0xA1, 0x80, 0xC2, 0x80, 0xE3, 0x80, 0x0C, 0x94, -0x04, 0xD2, 0x06, 0x92, 0x05, 0xD2, 0x80, 0x18, -0x36, 0x46, 0x06, 0x92, 0x07, 0x93, 0x01, 0x48, -0x01, 0x4A, 0x06, 0xD2, 0x01, 0x4B, 0x07, 0xD3, -0x06, 0x93, 0xFF, 0x6A, 0x4C, 0xEB, 0x07, 0x92, -0x06, 0xD3, 0x1C, 0x72, 0xE3, 0x61, 0x11, 0x67, -0x29, 0x69, 0x43, 0x41, 0x03, 0x6B, 0x6C, 0xEA, -0x03, 0x72, 0x0D, 0x61, 0x20, 0xF0, 0xAD, 0x80, -0x20, 0xF0, 0xCE, 0x80, 0x20, 0xF0, 0xEF, 0x80, -0x20, 0xF0, 0x50, 0x80, 0x0C, 0x94, 0x05, 0xD1, -0x04, 0xD2, 0x80, 0x18, 0x36, 0x46, 0x01, 0x49, -0x3D, 0x71, 0x01, 0x48, 0xEA, 0x61, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x02, 0x5D, 0x03, 0x61, -0x01, 0x6A, 0x4B, 0xEA, 0x18, 0x10, 0x07, 0xF4, -0x00, 0x6A, 0x04, 0xD2, 0x02, 0xF0, 0x00, 0x4A, -0x05, 0xD2, 0xA8, 0x35, 0x5D, 0x67, 0xB5, 0xE2, -0x44, 0x9D, 0xFF, 0x6C, 0xCC, 0xEC, 0x88, 0x34, -0x51, 0xE4, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEC, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, 0xB0, 0x9A, -0xEC, 0xED, 0x80, 0x18, 0x1F, 0x14, 0x07, 0x97, -0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x20, 0xF0, 0x24, 0xA4, 0xE2, 0xF3, 0xF0, 0x9A, -0x05, 0x67, 0x18, 0x6E, 0x00, 0x6D, 0x80, 0x18, -0xBA, 0x46, 0xEB, 0x49, 0xFF, 0x6B, 0x6C, 0xE9, -0x02, 0x59, 0x4F, 0x60, 0x4C, 0xEB, 0x0F, 0x5B, -0x78, 0x67, 0x01, 0x5B, 0x78, 0x67, 0x6B, 0xEB, -0x6C, 0xE8, 0x01, 0x70, 0x12, 0x60, 0x05, 0x20, -0x02, 0x70, 0x23, 0x60, 0x03, 0x70, 0x2D, 0x60, -0x40, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xFF, 0xF7, -0x1F, 0x69, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF0, -0x00, 0x6C, 0xB1, 0x67, 0x6E, 0xF7, 0x10, 0x6E, -0x0B, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, -0x44, 0x98, 0xFF, 0xF7, 0x1F, 0x69, 0x43, 0xF0, -0x00, 0x6C, 0xB1, 0x67, 0x04, 0xF3, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x48, 0xF1, -0x04, 0x6C, 0xB1, 0x67, 0x6E, 0xF0, 0x17, 0x6E, -0x1F, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xFF, 0xF7, -0x1F, 0x69, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF0, -0x00, 0x6C, 0xB1, 0x67, 0x6E, 0xF7, 0x10, 0x6E, -0x0B, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, -0x44, 0x98, 0xFF, 0xF7, 0x1F, 0x69, 0x43, 0xF0, -0x00, 0x6C, 0xB1, 0x67, 0x04, 0xF3, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x48, 0xF1, -0x04, 0x6C, 0xB1, 0x67, 0x24, 0xF0, 0x10, 0x6E, -0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0x02, 0x5D, 0x05, 0x67, -0x12, 0x91, 0x37, 0x60, 0x04, 0x26, 0x04, 0xD1, -0x80, 0x18, 0x94, 0x42, 0x33, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF3, 0x50, 0x9A, 0x4C, 0xEF, -0x4A, 0xEF, 0x08, 0xD7, 0x0C, 0x60, 0x00, 0x6E, -0xE2, 0x67, 0x80, 0x18, 0xBA, 0x46, 0x61, 0x42, -0x24, 0x23, 0x08, 0x94, 0xD1, 0x67, 0xA2, 0x67, -0x80, 0x18, 0x85, 0x42, 0x22, 0x67, 0x03, 0xF0, -0x08, 0x6B, 0x06, 0xD3, 0x05, 0xF1, 0x00, 0x4B, -0x07, 0xD3, 0x08, 0x30, 0x7D, 0x67, 0x01, 0xE3, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, 0xD0, 0x9B, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, -0x8C, 0xA8, 0x01, 0x6D, 0xAB, 0xED, 0x2C, 0xEE, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x0D, 0x6C, 0x40, 0xEA, 0x01, 0x6A, -0x01, 0x10, 0x00, 0x6A, 0x0D, 0x97, 0x0C, 0x91, -0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x00, 0x6D, 0x0A, 0xD4, 0x80, 0x18, 0x5E, 0x42, -0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF5, 0x30, 0x9A, -0x30, 0xF0, 0x20, 0x68, 0xCA, 0xF4, 0x08, 0x48, -0x00, 0x6A, 0x90, 0x67, 0xF1, 0x67, 0xA2, 0x67, -0xBC, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, -0x90, 0x67, 0xF1, 0x67, 0x01, 0x6A, 0x00, 0x6D, -0xBC, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, -0x00, 0x6A, 0xF1, 0x67, 0x90, 0x67, 0xBC, 0x6E, -0xA2, 0x67, 0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, -0x0A, 0x94, 0x01, 0x6D, 0x80, 0x18, 0x5E, 0x42, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x63, 0xF5, 0x10, 0x69, -0x01, 0x6D, 0x91, 0x67, 0xAB, 0xED, 0x80, 0x18, -0x1F, 0x14, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x68, -0x04, 0x96, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, -0x91, 0x67, 0xAB, 0xED, 0xFF, 0xF5, 0x1E, 0x4E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, -0x01, 0x6D, 0x91, 0x67, 0xAB, 0xED, 0x40, 0xEA, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, -0xC0, 0xF3, 0x44, 0x99, 0xFF, 0x6D, 0x83, 0xF4, -0x10, 0x6C, 0x01, 0x4D, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, 0x0C, 0x9A, -0x00, 0x6C, 0x01, 0x6E, 0xB0, 0x67, 0x80, 0x18, -0xAC, 0x14, 0x00, 0x6C, 0xB0, 0x67, 0xC4, 0x67, -0x80, 0x18, 0xAC, 0x14, 0xB0, 0x67, 0x00, 0x6C, -0x01, 0x6E, 0x80, 0x18, 0xAC, 0x14, 0xC0, 0xF3, -0x44, 0x99, 0xFF, 0x6D, 0x83, 0xF4, 0x10, 0x6C, -0x01, 0x4D, 0x01, 0x6E, 0x40, 0xEA, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x52, 0x9C, -0x40, 0xA2, 0x13, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF3, 0x0C, 0x9A, 0x00, 0x6C, 0x01, 0x6E, -0xB0, 0x67, 0x80, 0x18, 0xAC, 0x14, 0x00, 0x6C, -0xC4, 0x67, 0xB0, 0x67, 0x80, 0x18, 0xAC, 0x14, -0x00, 0x6C, 0xB0, 0x67, 0x01, 0x6E, 0x80, 0x18, -0xAC, 0x14, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x24, 0x67, 0x09, 0xD5, -0x80, 0x18, 0x7F, 0x44, 0x52, 0x99, 0x40, 0xA2, -0x04, 0x22, 0x91, 0x67, 0x01, 0x6D, 0x80, 0x18, -0x53, 0x44, 0x20, 0xF0, 0x58, 0xA1, 0x04, 0x22, -0x91, 0x67, 0xE0, 0xF3, 0x1F, 0x6D, 0x02, 0x10, -0x91, 0x67, 0x00, 0x6D, 0x30, 0xF0, 0x20, 0x68, -0x80, 0x18, 0x61, 0x44, 0xC0, 0xF3, 0x44, 0x98, -0x03, 0x6D, 0xC5, 0x67, 0x03, 0xF0, 0x0C, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF3, -0x0C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x03, 0xF0, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0x6D, 0xC5, 0x67, -0x08, 0xF1, 0x0C, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xA2, 0xF3, 0x0C, 0x4B, 0xC0, 0xF3, -0x44, 0x98, 0xA0, 0x9B, 0x08, 0xF1, 0x0C, 0x6C, -0x01, 0x6E, 0x40, 0xEA, 0x09, 0x92, 0x07, 0x2A, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF4, 0x1C, 0x6C, -0x03, 0x6D, 0x00, 0x6E, 0x0A, 0x10, 0x09, 0x93, -0x00, 0x6A, 0x01, 0x73, 0x0B, 0x61, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0x6D, 0x23, 0xF4, 0x1C, 0x6C, -0xC5, 0x67, 0x40, 0xEA, 0x91, 0x67, 0x80, 0x18, -0x64, 0x47, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x0C, 0xD4, 0x20, 0xF0, 0x6F, 0xA4, 0xFF, 0x69, -0x06, 0x67, 0xAC, 0xE9, 0x01, 0x6A, 0xE0, 0xF1, -0x18, 0x2B, 0x07, 0x5E, 0xE0, 0xF1, 0x14, 0x60, -0x01, 0x76, 0x02, 0x61, 0x03, 0x59, 0x03, 0x10, -0x02, 0x76, 0x03, 0x61, 0x05, 0x59, 0xE0, 0xF1, -0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x0C, 0x94, -0xE2, 0xF3, 0xF0, 0x9A, 0x00, 0x6D, 0x18, 0x6E, -0x80, 0x18, 0xBA, 0x46, 0x07, 0xD2, 0x07, 0x93, -0x06, 0xF0, 0x01, 0x6A, 0x4B, 0xEA, 0x4C, 0xEB, -0x07, 0x58, 0x06, 0xD3, 0x08, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0x08, 0x33, 0xC2, 0xF1, 0x1C, 0x4A, -0x69, 0xE2, 0x40, 0x9A, 0x00, 0xEA, 0x00, 0x69, -0x5A, 0x11, 0x05, 0x70, 0x25, 0x61, 0x30, 0xF0, -0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, -0x10, 0x6C, 0xE7, 0xF7, 0x10, 0x6D, 0xA0, 0xF2, -0x0B, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xA1, 0xF1, 0x10, 0x6C, 0xDF, 0xF7, 0x00, 0x6D, -0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xA1, 0xF1, 0x14, 0x69, 0x91, 0x67, 0x00, 0xF7, -0x00, 0x6D, 0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, -0xE2, 0xF5, 0xA4, 0x9B, 0x04, 0x6E, 0x4C, 0x10, -0x06, 0x70, 0x25, 0x61, 0x30, 0xF0, 0x20, 0x68, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, 0x10, 0x6C, -0xE7, 0xF7, 0x10, 0x6D, 0xA0, 0xF2, 0x0B, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA1, 0xF1, -0x10, 0x6C, 0xDF, 0xF7, 0x00, 0x6D, 0x02, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA1, 0xF1, -0x14, 0x69, 0x91, 0x67, 0x00, 0xF7, 0x00, 0x6D, -0x06, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0xE2, 0xF5, -0xA4, 0x9B, 0x05, 0x6E, 0x25, 0x10, 0x25, 0x28, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0x01, 0xF0, 0x10, 0x6C, 0xE7, 0xF7, 0x10, 0x6D, -0x80, 0xF1, 0x1B, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xA1, 0xF1, 0x10, 0x6C, 0xDF, 0xF7, -0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xA1, 0xF1, 0x14, 0x69, 0x91, 0x67, -0x00, 0xF7, 0x00, 0x6D, 0x07, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0xE2, 0xF5, 0xA4, 0x9B, 0x91, 0x67, 0x06, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, -0x44, 0x98, 0xA1, 0xF1, 0x10, 0x6C, 0x0F, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0x06, 0x93, 0x06, 0xF0, -0x00, 0x6A, 0xA1, 0xF4, 0x1C, 0x6C, 0x4D, 0xEB, -0x06, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF4, -0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x00, 0x6E, -0x18, 0x69, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x42, 0xF3, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0xA3, 0xF2, 0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, 0xB4, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF2, 0x08, 0x6C, -0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xE3, 0xF2, 0x0C, 0x6C, 0x0F, 0x6D, 0x06, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x81, 0xF0, -0x0C, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, 0x01, 0x6E, -0x40, 0xEA, 0x0C, 0x93, 0x53, 0x9B, 0x40, 0xA2, -0xA0, 0xF0, 0x05, 0x2A, 0x83, 0x67, 0x05, 0x6D, -0x80, 0x18, 0x5B, 0x43, 0x0C, 0x94, 0x06, 0x6D, -0x6A, 0x10, 0x01, 0x71, 0x09, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF2, -0x00, 0x6C, 0x10, 0x6D, 0x01, 0x6E, 0x08, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, -0x03, 0xF2, 0x00, 0x6C, 0x10, 0x6D, 0x00, 0x6E, -0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xA1, 0xF1, 0x10, 0x6C, 0x0F, 0x6D, -0x05, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xA1, 0xF1, 0x10, 0x6C, 0xC0, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x30, 0x36, -0x2D, 0xEE, 0xA1, 0xF1, 0x10, 0x6C, 0x1F, 0xF7, -0x00, 0x6D, 0x40, 0xEA, 0x06, 0x93, 0x04, 0xF0, -0x00, 0x6A, 0xA1, 0xF4, 0x1C, 0x6C, 0x4D, 0xEB, -0x06, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF4, -0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6E, -0x10, 0x69, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x42, 0xF3, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0xA3, 0xF2, 0x1C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, 0xB4, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF2, 0x08, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xE3, 0xF2, 0x0C, 0x6C, 0x0F, 0x6D, 0x08, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x81, 0xF0, -0x0C, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, 0x01, 0x6E, -0x40, 0xEA, 0x0C, 0x93, 0x53, 0x9B, 0x40, 0xA2, -0x3A, 0x2A, 0x83, 0x67, 0x04, 0x6D, 0x80, 0x18, -0x5B, 0x43, 0x0C, 0x94, 0x00, 0x6D, 0x80, 0x18, -0x6A, 0x43, 0x31, 0x10, 0x30, 0xF0, 0x20, 0x68, -0xC0, 0xF3, 0x44, 0x98, 0xA1, 0xF1, 0x10, 0x6C, -0x0F, 0x6D, 0x0A, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xA1, 0xF1, 0x10, 0x6C, 0xC0, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x30, 0x36, 0x2D, 0xEE, 0xA1, 0xF1, 0x10, 0x6C, -0x1F, 0xF7, 0x00, 0x6D, 0x40, 0xEA, 0x06, 0x93, -0x02, 0xF0, 0x00, 0x6A, 0xA1, 0xF4, 0x1C, 0x6C, -0x4D, 0xEB, 0x06, 0xD3, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF4, 0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x01, 0x6E, 0x08, 0x69, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x81, 0xF0, 0x0C, 0x6C, 0x1E, 0xF0, -0x00, 0x6D, 0x06, 0x6E, 0x40, 0xEA, 0x0C, 0x94, -0x30, 0xF0, 0x20, 0x68, 0xCA, 0xF4, 0x08, 0x48, -0x00, 0x6D, 0x80, 0x18, 0x5E, 0x42, 0x01, 0x6A, -0x90, 0x67, 0x00, 0x6D, 0xEE, 0x6E, 0x04, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, 0x12, 0x6B, -0x90, 0x67, 0x00, 0x6D, 0x33, 0x6E, 0x1F, 0x6F, -0x04, 0xD3, 0x80, 0x18, 0xFF, 0x46, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF3, 0x10, 0x4A, 0xE0, 0x9A, -0x90, 0x67, 0x00, 0x6D, 0x3F, 0x6E, 0x04, 0xD1, -0x80, 0x18, 0xFF, 0x46, 0x00, 0x6B, 0xA3, 0x67, -0x90, 0x67, 0xEE, 0x6E, 0x04, 0x6F, 0x04, 0xD3, -0x80, 0x18, 0xFF, 0x46, 0x01, 0x6A, 0x90, 0x67, -0xA2, 0x67, 0xEE, 0x6E, 0x04, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0xFF, 0x46, 0x12, 0x6B, 0x90, 0x67, -0x01, 0x6D, 0x33, 0x6E, 0x1F, 0x6F, 0x04, 0xD3, -0x80, 0x18, 0xFF, 0x46, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF3, 0x10, 0x4A, 0xE0, 0x9A, 0x90, 0x67, -0x01, 0x6D, 0x3F, 0x6E, 0x04, 0xD1, 0x80, 0x18, -0xFF, 0x46, 0x00, 0x6B, 0x90, 0x67, 0x01, 0x6D, -0xEE, 0x6E, 0x04, 0x6F, 0x04, 0xD3, 0x80, 0x18, -0xFF, 0x46, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, -0x10, 0x4B, 0xE0, 0x9B, 0x06, 0x92, 0x90, 0x67, -0x00, 0x6D, 0x18, 0x6E, 0x04, 0xD2, 0x80, 0x18, -0xFF, 0x46, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, -0x10, 0x4B, 0x06, 0x92, 0xE0, 0x9B, 0x90, 0x67, -0x01, 0x6D, 0x18, 0x6E, 0x04, 0xD2, 0x80, 0x18, -0xFF, 0x46, 0x0C, 0x94, 0x01, 0x6D, 0x80, 0x18, -0x5E, 0x42, 0x07, 0x92, 0x01, 0x4A, 0x08, 0x22, -0x0C, 0x94, 0x80, 0x18, 0x3B, 0x47, 0x0C, 0x94, -0x80, 0x18, 0x64, 0x47, 0x01, 0x6A, 0x01, 0x10, -0x00, 0x6A, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x08, 0xD4, 0x09, 0xD5, -0x52, 0x9C, 0x60, 0xA2, 0x45, 0x67, 0x55, 0x2B, -0x02, 0x75, 0x29, 0x61, 0x30, 0xF0, 0x20, 0x68, -0xC0, 0xF3, 0x44, 0x98, 0xC1, 0xF4, 0x00, 0x69, -0x91, 0x67, 0xE0, 0xF7, 0x1F, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, -0x08, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x08, 0x49, 0x91, 0x67, 0xE0, 0xF7, -0x1F, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF5, 0x08, 0x4B, 0xC0, 0xF3, -0x44, 0x98, 0xA0, 0x9B, 0x91, 0x67, 0x01, 0x6E, -0x40, 0xEA, 0x03, 0x6A, 0x2A, 0x10, 0x30, 0xF0, -0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0xC1, 0xF4, -0x00, 0x69, 0x91, 0x67, 0xE0, 0xF7, 0x1F, 0x6D, -0x00, 0xF4, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF5, 0x08, 0x4B, 0xA0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0x49, -0x91, 0x67, 0xE0, 0xF7, 0x1F, 0x6D, 0x00, 0xF4, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF5, 0x08, 0x4B, 0xC0, 0xF3, 0x44, 0x98, -0xA0, 0x9B, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, -0x09, 0x92, 0x6F, 0x42, 0x02, 0x5B, 0x46, 0x60, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF5, 0x10, 0x69, 0x91, 0x67, 0x00, 0xF3, -0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x62, 0xF5, 0xB0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF4, 0xA4, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x41, 0xF4, 0x04, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF4, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x41, 0xF4, 0x14, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, 0xB8, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF4, 0x18, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x02, 0xF5, 0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x09, 0x96, 0xFD, 0xF2, 0x14, 0x49, 0x91, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x91, 0x67, 0x02, 0xF4, 0xAC, 0x9B, -0x09, 0x96, 0x47, 0x10, 0x03, 0x72, 0x46, 0x61, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF5, 0x10, 0x69, 0x91, 0x67, 0x00, 0xF3, -0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x62, 0xF5, 0xB0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF4, 0xA4, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x41, 0xF4, 0x04, 0x6C, -0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF4, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x41, 0xF4, 0x14, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, 0xB8, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF4, 0x18, 0x6C, -0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x02, 0xF5, 0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0xFD, 0xF2, 0x14, 0x49, 0x91, 0x67, 0x03, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x02, 0xF4, 0xAC, 0x9B, 0x91, 0x67, -0x03, 0x6E, 0x40, 0xEA, 0x08, 0x94, 0x80, 0x18, -0x64, 0x47, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x03, 0x75, 0x24, 0x67, -0x53, 0x60, 0x01, 0x76, 0x09, 0x61, 0x30, 0xF0, -0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, -0x00, 0x6C, 0xFF, 0x6D, 0x01, 0x6E, 0x08, 0x10, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0x21, 0xF0, 0x00, 0x6C, 0xFF, 0x6D, 0x02, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF6, -0x0C, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0x00, 0x6E, -0x2E, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, -0x44, 0x98, 0x21, 0xF0, 0x00, 0x6C, 0xFF, 0x6D, -0x31, 0x6E, 0x0A, 0x10, 0x02, 0x76, 0x12, 0x61, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0x21, 0xF0, 0x00, 0x6C, 0xFF, 0x6D, 0x32, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF6, -0x0C, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0x00, 0xF4, -0x00, 0x6E, 0x11, 0x10, 0x30, 0xF0, 0x20, 0x68, -0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, 0x00, 0x6C, -0xFF, 0x6D, 0x33, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF6, 0x0C, 0x6C, 0xFF, 0xF7, -0x1F, 0x6D, 0x00, 0xF4, 0x04, 0x6E, 0x40, 0xEA, -0x91, 0x67, 0x80, 0x18, 0x64, 0x47, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0x01, 0x76, 0xD0, 0x61, 0xC6, 0x17, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x01, 0x75, 0x08, 0xD4, 0x26, 0x61, 0x30, 0xF0, -0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF4, -0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, -0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF2, 0x0C, 0x69, 0x91, 0x67, -0x20, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x62, 0xF5, 0xAC, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x91, 0x67, 0x62, 0xF5, 0xB0, 0x9B, 0x00, 0x6E, -0x46, 0x10, 0x02, 0x75, 0x1D, 0x61, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x02, 0xF4, -0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, -0x04, 0x6C, 0x05, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF2, 0x0C, 0x69, 0x91, 0x67, -0x20, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, -0x62, 0xF5, 0xAC, 0x9B, 0x00, 0x6E, 0x1E, 0x10, -0x03, 0x75, 0x26, 0x61, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x68, 0x02, 0xF4, 0xAC, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x04, 0x6C, -0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF2, 0x0C, 0x69, 0x91, 0x67, 0x20, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x62, 0xF5, 0xAC, 0x9B, -0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x62, 0xF5, -0xB0, 0x9B, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, -0x08, 0x94, 0x80, 0x18, 0x64, 0x47, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x01, 0x6A, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x04, 0x67, 0x25, 0x67, -0x80, 0x18, 0x52, 0x49, 0xB1, 0x67, 0x90, 0x67, -0x80, 0x18, 0xA7, 0x48, 0x20, 0xF0, 0x2D, 0xC0, -0x90, 0x67, 0x80, 0x18, 0x64, 0x47, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x01, 0x75, -0x04, 0x67, 0x0C, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, -0x03, 0xF2, 0x04, 0x6C, 0xC2, 0xF5, 0xB0, 0x9B, -0x08, 0x6E, 0x19, 0x10, 0x02, 0x75, 0x0C, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF2, 0x04, 0x6C, -0xC2, 0xF5, 0xB0, 0x9B, 0x04, 0x6E, 0x0B, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x9A, 0xC2, 0xF5, 0xB0, 0x9B, -0x03, 0xF2, 0x04, 0x6C, 0x0C, 0x6E, 0x40, 0xEA, -0x90, 0x67, 0x80, 0x18, 0x64, 0x47, 0x05, 0x97, -0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x7D, 0x67, 0x04, 0x67, 0x47, 0x43, 0x0A, 0xD6, -0x20, 0xF0, 0xAC, 0xC0, 0x21, 0x4A, 0x60, 0xA2, -0x46, 0x67, 0xAD, 0xEA, 0x20, 0xF0, 0x6B, 0xC4, -0x20, 0xF0, 0x4A, 0xC4, 0x25, 0x67, 0xA7, 0x67, -0x80, 0x18, 0x9C, 0x49, 0x0A, 0x96, 0xB1, 0x67, -0x90, 0x67, 0x80, 0x18, 0x23, 0x49, 0x90, 0x67, -0x80, 0x18, 0x64, 0x47, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x0B, 0xD5, 0x0C, 0xD6, 0x20, 0xF0, 0x44, 0xA4, -0x04, 0x67, 0x27, 0x67, 0x05, 0xD2, 0x20, 0xF0, -0x6F, 0xA4, 0x01, 0x6A, 0x61, 0x2B, 0xFB, 0x4A, -0xCC, 0xEA, 0x5D, 0x2A, 0xFF, 0x75, 0x06, 0x61, -0xFF, 0x77, 0x04, 0x61, 0x01, 0x6B, 0x03, 0x6D, -0x04, 0xD3, 0x07, 0x10, 0x0B, 0x93, 0x04, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0x50, 0x2A, 0xA3, 0x67, -0x04, 0xD2, 0x0C, 0x96, 0x90, 0x67, 0x80, 0x18, -0xAD, 0x42, 0x0C, 0x95, 0x90, 0x67, 0x80, 0x18, -0x91, 0x49, 0x20, 0xF0, 0x4B, 0xA0, 0x03, 0x2A, -0x01, 0x6A, 0x20, 0xF0, 0x4B, 0xC0, 0x0B, 0x92, -0xFF, 0x4A, 0x02, 0x5A, 0x02, 0x60, 0x0B, 0x91, -0x0C, 0x10, 0x0B, 0x93, 0x03, 0x73, 0x05, 0x61, -0xFF, 0x71, 0x09, 0x61, 0x20, 0xF0, 0x2B, 0xA0, -0x06, 0x10, 0x04, 0x92, 0x04, 0x22, 0x20, 0xF0, -0x2B, 0xA0, 0x00, 0x6D, 0x01, 0x10, 0x03, 0x6D, -0x90, 0x67, 0xD1, 0x67, 0xF1, 0x67, 0x80, 0x18, -0xB6, 0x49, 0x05, 0x92, 0xFF, 0x6B, 0xEB, 0x4A, -0x6C, 0xEA, 0x02, 0x5A, 0x18, 0x60, 0x20, 0xF0, -0x4A, 0xA0, 0x01, 0x72, 0x06, 0x61, 0x0C, 0x93, -0x01, 0x73, 0x03, 0x61, 0x90, 0x67, 0x01, 0x6D, -0x0C, 0x10, 0x20, 0xF0, 0x4A, 0xA0, 0x02, 0x72, -0x06, 0x61, 0x0C, 0x92, 0x02, 0x72, 0x03, 0x61, -0x90, 0x67, 0x02, 0x6D, 0x02, 0x10, 0x90, 0x67, -0x03, 0x6D, 0x80, 0x18, 0xCB, 0x46, 0x90, 0x67, -0x80, 0x18, 0x3B, 0x47, 0x90, 0x67, 0x80, 0x18, -0x64, 0x47, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, -0x0E, 0xD1, 0x0D, 0xD0, 0x20, 0xF0, 0x44, 0xA4, -0xFF, 0x69, 0x04, 0x67, 0x0A, 0xD2, 0x20, 0xF0, -0x6F, 0xA4, 0xAC, 0xE9, 0x01, 0x6A, 0x40, 0xF1, -0x0A, 0x2B, 0x48, 0x41, 0xF9, 0x4A, 0xFF, 0x6B, -0x6C, 0xEA, 0x15, 0x5A, 0x40, 0xF1, 0x02, 0x61, -0x48, 0x41, 0xC7, 0x4A, 0x6C, 0xEA, 0x23, 0x5A, -0x20, 0xF1, 0x1C, 0x61, 0x47, 0x41, 0x68, 0x4A, -0x6C, 0xEA, 0x04, 0x5A, 0x20, 0xF1, 0x16, 0x61, -0xB2, 0x59, 0x20, 0xF1, 0x13, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF3, 0xF0, 0x9A, 0x00, 0x6D, -0x18, 0x6E, 0x80, 0x18, 0xBA, 0x46, 0x09, 0xD2, -0x01, 0x4A, 0x20, 0xF1, 0x07, 0x22, 0x20, 0xF0, -0x6B, 0xA0, 0x0F, 0x59, 0x58, 0x67, 0x0B, 0xD2, -0x06, 0xD3, 0x0A, 0x2B, 0x21, 0xF0, 0x00, 0x6C, -0x0F, 0x6D, 0x80, 0x18, 0x1F, 0x14, 0xFF, 0x6C, -0x4C, 0xEC, 0x06, 0xD4, 0x20, 0xF0, 0x8B, 0xC0, -0x20, 0xF0, 0x8A, 0xA0, 0x08, 0xD4, 0x0F, 0x2C, -0x21, 0xF0, 0x00, 0x4C, 0xF0, 0x6D, 0x80, 0x18, -0x1F, 0x14, 0x06, 0x94, 0xFF, 0x6B, 0x6C, 0xEA, -0x4D, 0xEC, 0x6C, 0xEC, 0x08, 0xD4, 0x20, 0xF0, -0x4C, 0xC0, 0x20, 0xF0, 0x8A, 0xC0, 0x20, 0xF0, -0x8D, 0xA0, 0x07, 0xD4, 0x0D, 0x2C, 0x30, 0xF0, -0x20, 0x6A, 0x02, 0xF5, 0xA8, 0x9A, 0x21, 0xF0, -0x04, 0x4C, 0x80, 0x18, 0x1F, 0x14, 0xFF, 0x6B, -0x4C, 0xEB, 0x07, 0xD3, 0x20, 0xF0, 0x6D, 0xC0, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x4C, 0x9A, -0x09, 0x93, 0x0B, 0x94, 0x4C, 0xEB, 0x2D, 0xEB, -0x06, 0xD3, 0x16, 0x2C, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF5, 0x50, 0x9A, 0x91, 0x59, 0x4D, 0xEB, -0x06, 0xD3, 0x05, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF3, 0x40, 0x9A, 0x07, 0x10, 0x50, 0x59, -0x07, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF4, -0x44, 0x9A, 0x06, 0x93, 0x4D, 0xEB, 0x06, 0xD3, -0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x5E, 0x42, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, 0x10, 0x4B, -0xE0, 0x9B, 0x06, 0x92, 0x30, 0xF0, 0x20, 0x6C, -0xCA, 0xF4, 0x08, 0x4C, 0x00, 0x6D, 0x18, 0x6E, -0x09, 0xD4, 0x04, 0xD2, 0x80, 0x18, 0xFF, 0x46, -0x06, 0x94, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, -0x10, 0x4A, 0x04, 0xD4, 0xE0, 0x9A, 0x09, 0x94, -0x01, 0x6D, 0x18, 0x6E, 0x80, 0x18, 0xFF, 0x46, -0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x5E, 0x42, -0x0F, 0x59, 0x11, 0x60, 0x50, 0x98, 0x40, 0xA2, -0x07, 0x2A, 0x90, 0x67, 0x05, 0x6D, 0x80, 0x18, -0x5B, 0x43, 0x90, 0x67, 0x06, 0x6D, 0x1A, 0x10, -0x90, 0x67, 0x04, 0x6D, 0x80, 0x18, 0x5B, 0x43, -0x90, 0x67, 0x00, 0x6D, 0x13, 0x10, 0x68, 0x41, -0xE4, 0x4B, 0xFF, 0x6A, 0x4C, 0xEB, 0x1D, 0x5B, -0x03, 0x60, 0x90, 0x67, 0x01, 0x6D, 0x0A, 0x10, -0x68, 0x41, 0xA4, 0x4B, 0x4C, 0xEB, 0x2D, 0x5B, -0x03, 0x60, 0x90, 0x67, 0x02, 0x6D, 0x02, 0x10, -0x90, 0x67, 0x03, 0x6D, 0x80, 0x18, 0x6A, 0x43, -0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, 0x85, 0x43, -0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, 0xCD, 0x43, -0x0B, 0x93, 0x2F, 0x23, 0x90, 0x67, 0xB1, 0x67, -0x80, 0x18, 0x01, 0x43, 0x90, 0x67, 0x01, 0x6D, -0x00, 0x18, 0xB9, 0xC2, 0x40, 0xF4, 0x14, 0x6C, -0x80, 0x6D, 0x00, 0x6E, 0x80, 0x18, 0xAC, 0x14, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6C, -0xC0, 0xF3, 0x44, 0x9C, 0xE2, 0xF3, 0xA0, 0x9B, -0x83, 0xF2, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, 0xB4, 0x9B, -0x83, 0xF4, 0x00, 0x6C, 0x0F, 0x6E, 0x40, 0xEA, -0x0A, 0x92, 0xFF, 0x6B, 0xEB, 0x4A, 0x6C, 0xEA, -0x02, 0x5A, 0x41, 0x60, 0x90, 0x67, 0x00, 0x6D, -0x3C, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x6C, 0xC0, 0xF3, 0x44, 0x9C, 0xE2, 0xF3, -0xA0, 0x9B, 0x83, 0xF2, 0x00, 0x6C, 0x01, 0x6E, -0x40, 0xEA, 0x01, 0x6E, 0x40, 0xF4, 0x14, 0x6C, -0x80, 0x6D, 0x80, 0x18, 0xAC, 0x14, 0x90, 0x67, -0x02, 0x6D, 0x00, 0x18, 0xB9, 0xC2, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF5, 0xB4, 0x9B, 0x83, 0xF4, -0x00, 0x6C, 0x22, 0x6E, 0x40, 0xEA, 0x0A, 0x92, -0xFF, 0x6B, 0xEB, 0x4A, 0x6C, 0xEA, 0x02, 0x5A, -0x16, 0x60, 0x08, 0x94, 0x01, 0x74, 0x06, 0x61, -0x07, 0x92, 0x01, 0x72, 0x0C, 0x61, 0x90, 0x67, -0x01, 0x6D, 0x0B, 0x10, 0x08, 0x93, 0x02, 0x73, -0x06, 0x61, 0x07, 0x94, 0x02, 0x74, 0x03, 0x61, -0x90, 0x67, 0x02, 0x6D, 0x02, 0x10, 0x90, 0x67, -0x03, 0x6D, 0x80, 0x18, 0xCB, 0x46, 0x90, 0x67, -0x80, 0x18, 0x3B, 0x47, 0x52, 0x98, 0x40, 0xA2, -0x04, 0x22, 0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, -0x34, 0x44, 0x90, 0x67, 0x80, 0x18, 0x64, 0x47, -0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x0F, 0x97, -0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFF, 0x6A, 0x26, 0x67, 0x4C, 0xED, 0x04, 0x67, -0x0B, 0xD7, 0x4C, 0xE9, 0x80, 0x18, 0x03, 0x4A, -0x00, 0x6B, 0x09, 0x22, 0x0B, 0x96, 0x90, 0x67, -0xB1, 0x67, 0x80, 0x18, 0xA2, 0x47, 0x4B, 0xEB, -0x4D, 0xEB, 0xC0, 0xF7, 0x62, 0x33, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x43, 0x67, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0xFF, 0x69, 0x80, 0xF2, 0x48, 0x9B, 0x2C, 0xED, -0xFF, 0xF7, 0x1F, 0x68, 0x11, 0xD7, 0x8C, 0xE8, -0x08, 0xD5, 0x04, 0x04, 0x00, 0x6D, 0xCC, 0xE9, -0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x80, 0xF2, 0x48, 0x9B, 0x05, 0x04, 0x00, 0x6D, -0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x80, 0xF2, 0x4C, 0x9B, 0x11, 0x95, 0x04, 0x04, -0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x80, 0xF2, 0x4C, 0x9B, 0x12, 0x95, 0x06, 0x04, -0x04, 0x6E, 0x40, 0xEA, 0x00, 0xF1, 0x00, 0x58, -0x08, 0x61, 0x0E, 0xF0, 0x40, 0x40, 0xFF, 0xF7, -0x1F, 0x6B, 0x6C, 0xEA, 0x00, 0xF1, 0x00, 0x5A, -0x39, 0x60, 0x08, 0x92, 0x04, 0x72, 0x11, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0x58, 0x9A, -0xFF, 0x6B, 0x49, 0xE0, 0x40, 0xA2, 0x4C, 0xEB, -0x5F, 0x21, 0x06, 0x94, 0x8F, 0xEA, 0x6C, 0xEA, -0x04, 0x93, 0x8C, 0xEB, 0x6D, 0xEA, 0x04, 0xD2, -0x57, 0x10, 0x08, 0x92, 0x05, 0x72, 0x12, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0x58, 0x9A, -0xFF, 0xF7, 0x1F, 0x6B, 0x49, 0xE0, 0x40, 0xAA, -0x4C, 0xEB, 0x7F, 0x21, 0x06, 0x94, 0x8F, 0xEA, -0x6C, 0xEA, 0x04, 0x93, 0x8C, 0xEB, 0x6D, 0xEA, -0x04, 0xD2, 0x77, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF2, 0x58, 0x9A, 0x49, 0xE0, 0x60, 0x9A, -0x80, 0xF0, 0x1E, 0x21, 0x06, 0x94, 0x8F, 0xEA, -0x6C, 0xEA, 0x04, 0x93, 0x8C, 0xEB, 0x6D, 0xEA, -0x04, 0xD2, 0x96, 0x10, 0x01, 0xF0, 0x00, 0x58, -0x09, 0x61, 0x0D, 0xF7, 0x40, 0x40, 0xFF, 0xF7, -0x1F, 0x6B, 0x6C, 0xEA, 0x00, 0xF7, 0x00, 0x5A, -0x80, 0xF0, 0x17, 0x60, 0x08, 0x92, 0x04, 0x72, -0x31, 0x61, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, -0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0x58, 0x9A, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, -0x5C, 0x9A, 0x49, 0xE0, 0x60, 0xA2, 0xFF, 0x6A, -0x6C, 0xEA, 0x07, 0x21, 0x06, 0x94, 0x8F, 0xEB, -0x4C, 0xEB, 0x04, 0x92, 0x8C, 0xEA, 0x4D, 0xEB, -0x04, 0xD3, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, -0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0x58, 0x9A, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, -0x5C, 0x9A, 0x7D, 0x67, 0x41, 0xE0, 0x50, 0xA3, -0x40, 0xC0, 0x7E, 0x10, 0x08, 0x92, 0x05, 0x72, -0x32, 0x61, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, -0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0x58, 0x9A, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, -0x5C, 0x9A, 0x49, 0xE0, 0x60, 0xAA, 0xFF, 0xF7, -0x1F, 0x6A, 0x6C, 0xEA, 0x07, 0x21, 0x06, 0x94, -0x8F, 0xEB, 0x4C, 0xEB, 0x04, 0x92, 0x8C, 0xEA, -0x4D, 0xEB, 0x04, 0xD3, 0x1F, 0xF7, 0x00, 0x6A, -0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, -0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, -0x58, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF2, 0x5C, 0x9A, 0x7D, 0x67, 0x41, 0xE0, -0x48, 0xAB, 0x40, 0xC8, 0x49, 0x10, 0x1F, 0xF7, -0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, -0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF2, 0x58, 0x9A, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF2, 0x5C, 0x9A, 0x49, 0xE0, -0x60, 0x9A, 0x07, 0x21, 0x06, 0x94, 0x8F, 0xEA, -0x6C, 0xEA, 0x04, 0x93, 0x8C, 0xEB, 0x6D, 0xEA, -0x04, 0xD2, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, -0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0x58, 0x9A, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, -0x5C, 0x9A, 0x41, 0xE0, 0x04, 0x92, 0x40, 0xD8, -0x1B, 0x10, 0xFF, 0xF7, 0x1C, 0x6A, 0x0C, 0xEA, -0x01, 0x6D, 0x82, 0x67, 0xAB, 0xED, 0x08, 0xD2, -0x80, 0x18, 0x1F, 0x14, 0x05, 0xD2, 0x07, 0x21, -0x06, 0x94, 0x8F, 0xEB, 0x4C, 0xEB, 0x04, 0x92, -0x8C, 0xEA, 0x4D, 0xEB, 0x04, 0xD3, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x08, 0x94, -0x04, 0x96, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, -0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0x41, 0x9C, 0x61, 0xA4, -0x01, 0xAC, 0x06, 0xD2, 0x42, 0x9C, 0xFF, 0x73, -0x07, 0xD2, 0x00, 0x6A, 0x62, 0x60, 0x7F, 0x6D, -0x6C, 0xED, 0x4C, 0x45, 0xFF, 0x6B, 0x6C, 0xEA, -0x0E, 0x5A, 0x08, 0x60, 0x30, 0xF0, 0x20, 0x6B, -0x48, 0x32, 0x62, 0xF2, 0x04, 0x4B, 0x4D, 0xE3, -0x40, 0x9B, 0x00, 0xEA, 0x03, 0x6A, 0x51, 0x10, -0x61, 0xA4, 0x80, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, -0xFF, 0x6E, 0x07, 0x03, 0x90, 0x67, 0x4C, 0xEE, -0x06, 0x07, 0x04, 0xD3, 0x80, 0x18, 0xC1, 0x4A, -0x28, 0x10, 0x81, 0xA4, 0x80, 0x6A, 0xFF, 0x69, -0x64, 0x67, 0x4C, 0xEB, 0x0C, 0xE9, 0x02, 0x32, -0x30, 0xF0, 0x20, 0x6C, 0x01, 0x6F, 0xCA, 0xF4, -0x08, 0x4C, 0xA2, 0x67, 0xD1, 0x67, 0xEB, 0xEF, -0x08, 0xD3, 0x09, 0xD2, 0x80, 0x18, 0xBA, 0x46, -0x08, 0x93, 0x07, 0x23, 0x07, 0x94, 0x8F, 0xEB, -0x4C, 0xEB, 0x06, 0x92, 0x8C, 0xEA, 0x4D, 0xEB, -0x06, 0xD3, 0x06, 0x92, 0x09, 0x95, 0x30, 0xF0, -0x20, 0x6C, 0x01, 0x6F, 0xCA, 0xF4, 0x08, 0x4C, -0xD1, 0x67, 0xEB, 0xEF, 0x04, 0xD2, 0x80, 0x18, -0xFF, 0x46, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, -0x08, 0x4A, 0x65, 0xF7, 0x60, 0x9A, 0x06, 0x94, -0x61, 0xE0, 0x65, 0xF7, 0x64, 0x9A, 0x65, 0xF7, -0x00, 0xDA, 0x6D, 0xE4, 0x65, 0xF7, 0x64, 0xDA, -0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x48, 0x9A, 0x90, 0x67, 0x40, 0xEA, -0x01, 0x6A, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, -0x07, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4A, -0x46, 0xF7, 0x0C, 0x4B, 0xA6, 0xF7, 0x6C, 0xDA, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF7, 0x08, 0x4B, -0xA6, 0xF7, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6B, -0x46, 0xF7, 0x10, 0x4B, 0x86, 0xF7, 0x7C, 0xDA, -0x20, 0xE8, 0x00, 0x65, 0xE0, 0x63, 0x3F, 0x62, -0xFF, 0xF7, 0x1F, 0x6A, 0xAC, 0xEA, 0xBD, 0x67, -0x56, 0xC5, 0x01, 0x6B, 0x42, 0x32, 0x57, 0xC5, -0x6B, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x70, 0xC5, -0x20, 0xF4, 0x40, 0x9A, 0x03, 0x6B, 0x72, 0xC5, -0x04, 0x6B, 0x94, 0xC5, 0x73, 0xC5, 0x04, 0x04, -0x40, 0xEA, 0x3F, 0x97, 0x20, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x4C, 0x9A, 0xA7, 0x44, 0x30, 0xF0, -0x20, 0x6C, 0x01, 0x4D, 0xC9, 0xF4, 0x10, 0x4C, -0x14, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x04, 0x67, 0x80, 0x18, -0xAE, 0x4B, 0x47, 0xA0, 0x66, 0xA0, 0x30, 0xF0, -0x20, 0x69, 0x63, 0xF5, 0x08, 0x49, 0x40, 0x32, -0x65, 0xF7, 0x88, 0xA1, 0x69, 0xE2, 0x65, 0xF7, -0x5A, 0xC9, 0x01, 0x6A, 0x8C, 0xEA, 0xFF, 0x6B, -0x1C, 0x2A, 0x65, 0xF7, 0xBC, 0xA1, 0xFE, 0x4A, -0xAC, 0xEA, 0x65, 0xF7, 0x5C, 0xC1, 0x02, 0x6A, -0x8C, 0xEA, 0x6C, 0xEA, 0x4E, 0x22, 0x65, 0xF7, -0x4B, 0xA1, 0x0F, 0x6D, 0x65, 0xF7, 0x8C, 0xA1, -0x4C, 0xED, 0x52, 0x36, 0x30, 0xF0, 0x20, 0x6A, -0x00, 0xF4, 0x58, 0x9A, 0x6C, 0xED, 0x6C, 0xEE, -0x40, 0xEA, 0x01, 0x72, 0x0D, 0x6A, 0x3E, 0x61, -0x3C, 0x10, 0x65, 0xF7, 0x7C, 0xA1, 0x02, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0x65, 0xF7, 0x5C, 0xC1, -0x65, 0xF7, 0x58, 0xA9, 0x00, 0xF1, 0x01, 0x5A, -0x0C, 0x6A, 0x30, 0x60, 0x00, 0x6A, 0x65, 0xF7, -0x5D, 0xC1, 0x65, 0xF7, 0x5E, 0xC1, 0x65, 0xF7, -0x09, 0xA1, 0x00, 0x6A, 0x85, 0xF7, 0x40, 0xC9, -0x85, 0xF7, 0x42, 0xC9, 0x00, 0x18, 0xAD, 0xC7, -0x01, 0xE2, 0x00, 0x6A, 0x65, 0xF7, 0xF8, 0xA9, -0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0xE0, 0xF2, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0x22, 0xF7, 0xB0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0x62, 0xF3, 0x54, 0x9A, 0x30, 0xF0, 0x20, 0x6E, -0x1C, 0x30, 0xE9, 0xF4, 0x12, 0x4E, 0x00, 0x6C, -0xB5, 0xE0, 0x59, 0xE6, 0x40, 0xEB, 0x65, 0xF7, -0x5C, 0xA1, 0x01, 0x6B, 0x6D, 0xEA, 0x65, 0xF7, -0x5C, 0xC1, 0x00, 0x6A, 0x09, 0x97, 0x08, 0x91, -0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x30, 0xF0, -0x20, 0x68, 0x63, 0xF5, 0x08, 0x48, 0x85, 0xF7, -0xA0, 0xA8, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x80, 0xF2, 0x4C, 0x9A, 0xE9, 0xF4, -0x12, 0x4B, 0x30, 0xF0, 0x20, 0x6C, 0xB5, 0xE3, -0xE9, 0xF5, 0x14, 0x4C, 0x04, 0x6E, 0x40, 0xEA, -0x86, 0xF0, 0x6F, 0xA0, 0x80, 0x6A, 0x4B, 0xEA, -0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x05, 0x2A, -0x85, 0xF7, 0x40, 0xA8, 0x04, 0x4A, 0x85, 0xF7, -0x40, 0xC8, 0x30, 0xF0, 0x20, 0x68, 0x63, 0xF5, -0x08, 0x48, 0x86, 0xF0, 0x6D, 0xA0, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF4, 0x58, 0x9A, 0x86, 0xF0, -0x8C, 0xA0, 0x0F, 0x6D, 0x6C, 0xED, 0x72, 0x36, -0x40, 0xEA, 0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF4, 0x54, 0x9A, 0x40, 0xEA, 0x65, 0xF7, -0x7C, 0xA0, 0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, -0x65, 0xF7, 0x5C, 0xC0, 0x01, 0x6C, 0x59, 0x10, -0x86, 0xF0, 0x6F, 0xA0, 0x7F, 0x6A, 0x6C, 0xEA, -0xFF, 0x6B, 0x6C, 0xEA, 0x15, 0x22, 0x01, 0x72, -0x48, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, -0x4C, 0x9A, 0x00, 0x6C, 0x40, 0xEA, 0x4C, 0x22, -0x45, 0xF7, 0x9D, 0xA0, 0x00, 0x6D, 0x80, 0x18, -0x87, 0x15, 0x06, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF4, 0x54, 0x9A, 0x40, 0xEA, 0x40, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0x65, 0xF7, 0x7D, 0xA2, 0x86, 0xF0, 0x8E, 0xA2, -0x01, 0x4B, 0x65, 0xF7, 0x7D, 0xC2, 0x85, 0xF7, -0x62, 0xAA, 0x6D, 0xE4, 0x85, 0xF7, 0x62, 0xCA, -0x65, 0xF7, 0x9D, 0xA2, 0x65, 0xF7, 0x6A, 0xA2, -0x8E, 0xEB, 0x0C, 0x2B, 0x86, 0xF0, 0xCE, 0xA2, -0x10, 0xF0, 0x31, 0x6C, 0x30, 0xF0, 0x20, 0x6A, -0x04, 0xD3, 0x00, 0xF3, 0x4C, 0x9A, 0x46, 0xF1, -0x1D, 0x4C, 0x0C, 0x10, 0x86, 0xF0, 0xCE, 0xA2, -0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, 0x31, 0x6C, -0x26, 0xF1, 0x11, 0x4C, 0x64, 0x6B, 0x78, 0xEE, -0x00, 0x6D, 0x01, 0x6F, 0x12, 0xEE, 0x40, 0xEA, -0x1B, 0x10, 0x65, 0xF7, 0x7C, 0xA0, 0x02, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0x65, 0xF7, 0x5C, 0xC0, -0x02, 0x6C, 0x65, 0xF7, 0xBA, 0xA8, 0x0E, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0x65, 0xF7, 0x9C, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, -0x65, 0xF7, 0xBA, 0xAA, 0x8C, 0xEB, 0x65, 0xF7, -0x7C, 0xC2, 0x03, 0x6C, 0x80, 0x18, 0xA1, 0x4B, -0x07, 0x97, 0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0x65, 0xF7, 0x9C, 0xA2, -0x01, 0x6B, 0x8C, 0xEB, 0x08, 0x23, 0x86, 0xF0, -0x6A, 0xA2, 0x03, 0x23, 0x00, 0x6B, 0x86, 0xF0, -0x6A, 0xC2, 0x80, 0x18, 0xF2, 0x4B, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x63, 0xF5, 0x08, 0x48, 0x65, 0xF7, 0x5C, 0xA0, -0x01, 0x69, 0x91, 0x67, 0x4C, 0xEC, 0xFF, 0x6B, -0x00, 0xF1, 0x0E, 0x24, 0x65, 0xF7, 0xA8, 0xA0, -0x03, 0x6E, 0xAE, 0x34, 0xCC, 0xEC, 0x6C, 0xEC, -0x02, 0x74, 0x7C, 0x60, 0x03, 0x74, 0xC0, 0xF0, -0x1D, 0x60, 0x01, 0x74, 0x25, 0x60, 0x02, 0x6C, -0x8B, 0xEC, 0x4C, 0xEC, 0x02, 0x6A, 0xAC, 0xEA, -0x6C, 0xEA, 0x65, 0xF7, 0x9C, 0xC0, 0x11, 0x22, -0x65, 0xF7, 0x4B, 0xA0, 0x0F, 0x6D, 0x65, 0xF7, -0x8C, 0xA0, 0x4C, 0xED, 0x52, 0x36, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF4, 0x58, 0x9A, 0x6C, 0xED, -0x6C, 0xEE, 0x40, 0xEA, 0x01, 0x72, 0x01, 0x6C, -0x01, 0x61, 0x00, 0x6C, 0x65, 0xF7, 0xBA, 0xA8, -0x80, 0x18, 0xA1, 0x4B, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF4, 0x54, 0x9A, 0x40, 0xEA, 0xBF, 0x10, -0x02, 0x6A, 0xAC, 0xEA, 0x6C, 0xEA, 0x11, 0x22, -0x65, 0xF7, 0x4B, 0xA0, 0x0F, 0x6D, 0x65, 0xF7, -0x8C, 0xA0, 0x4C, 0xED, 0x52, 0x36, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF4, 0x58, 0x9A, 0x6C, 0xED, -0x6C, 0xEE, 0x40, 0xEA, 0x01, 0x72, 0xA0, 0xF0, -0x17, 0x61, 0x65, 0xF7, 0xBA, 0xA8, 0x00, 0x6C, -0x80, 0x18, 0xA1, 0x4B, 0x30, 0xF0, 0x20, 0x6A, -0xC9, 0xF4, 0x55, 0xA2, 0x5A, 0x33, 0x02, 0x73, -0x0D, 0x60, 0x03, 0x73, 0x0F, 0x60, 0x01, 0x73, -0x05, 0x60, 0x3F, 0x6E, 0x4C, 0xEE, 0xFF, 0x6A, -0x4C, 0xEE, 0x0E, 0x10, 0x3F, 0x6B, 0x4C, 0xEB, -0x0A, 0x6E, 0x08, 0x10, 0x3F, 0x6B, 0x4C, 0xEB, -0x64, 0x6E, 0x04, 0x10, 0x3F, 0x6B, 0x4C, 0xEB, -0xE0, 0xF3, 0x08, 0x6E, 0xD8, 0xEB, 0x12, 0xEE, -0x0A, 0x6A, 0x58, 0xEE, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0x85, 0xF7, 0x62, 0xAA, -0x10, 0xF0, 0x31, 0x6C, 0x26, 0xF1, 0x11, 0x4C, -0x00, 0x6D, 0x12, 0xEE, 0x7B, 0xE6, 0x01, 0x6B, -0x86, 0xF0, 0x6A, 0xC2, 0x00, 0x6A, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, -0x64, 0x6B, 0x5F, 0x10, 0x02, 0x6A, 0xAC, 0xEA, -0x6C, 0xEA, 0x10, 0x22, 0x65, 0xF7, 0x4B, 0xA0, -0x0F, 0x6D, 0x65, 0xF7, 0x8C, 0xA0, 0x4C, 0xED, -0x52, 0x36, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, -0x58, 0x9A, 0x6C, 0xED, 0x6C, 0xEE, 0x40, 0xEA, -0x01, 0x72, 0x66, 0x61, 0x65, 0xF7, 0xBA, 0xA8, -0x00, 0x6C, 0x80, 0x18, 0xA1, 0x4B, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, 0x65, 0xF7, -0x8F, 0xA2, 0x65, 0xF7, 0x7E, 0xA2, 0xFF, 0x4C, -0x6E, 0xEC, 0x03, 0x2C, 0x65, 0xF7, 0x4E, 0xA2, -0x05, 0x10, 0x01, 0x4B, 0x65, 0xF7, 0x7E, 0xC2, -0x65, 0xF7, 0x4D, 0xA2, 0x5A, 0x33, 0x02, 0x73, -0x0D, 0x60, 0x03, 0x73, 0x0F, 0x60, 0x01, 0x73, -0x05, 0x60, 0x3F, 0x6B, 0x4C, 0xEB, 0xFF, 0x6A, -0x4C, 0xEB, 0x0E, 0x10, 0x3F, 0x6B, 0x4C, 0xEB, -0x0A, 0x6A, 0x08, 0x10, 0x3F, 0x6B, 0x4C, 0xEB, -0x64, 0x6A, 0x04, 0x10, 0x3F, 0x6B, 0x4C, 0xEB, -0xE0, 0xF3, 0x08, 0x6A, 0x58, 0xEB, 0x12, 0xEB, -0x0A, 0x6A, 0x58, 0xEB, 0x30, 0xF0, 0x20, 0x6A, -0xE9, 0xF4, 0x4A, 0xAA, 0x01, 0x6C, 0x00, 0x6D, -0x64, 0x6E, 0x12, 0xEB, 0x4F, 0xE3, 0x30, 0xF0, -0x20, 0x6A, 0xE9, 0xF5, 0x92, 0xC2, 0x00, 0x6A, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, -0x4C, 0x9A, 0x10, 0xF0, 0x31, 0x6C, 0x26, 0xF1, -0x11, 0x4C, 0xD8, 0xEB, 0x01, 0x6F, 0x12, 0xEE, -0x40, 0xEA, 0x09, 0x10, 0x65, 0xF7, 0xBA, 0xA8, -0x00, 0x6C, 0x80, 0x18, 0xA1, 0x4B, 0x86, 0xF0, -0x2A, 0xC0, 0x80, 0x18, 0x4C, 0x4C, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, 0x00, 0x6B, -0x65, 0xF7, 0x7D, 0xC2, 0x00, 0x6B, 0x85, 0xF7, -0x62, 0xCA, 0x85, 0xF7, 0x60, 0xCA, 0x10, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0x65, 0xF7, 0x9C, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, -0x65, 0xF7, 0xBA, 0xAA, 0x8C, 0xEB, 0x65, 0xF7, -0x7C, 0xC2, 0x01, 0x6C, 0x80, 0x18, 0xA1, 0x4B, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0xFF, 0x69, 0x04, 0x67, 0x80, 0xF4, 0x4C, 0x9A, -0x2C, 0xE8, 0x2C, 0xED, 0xCC, 0xE9, 0x04, 0xD5, -0x90, 0x67, 0xD1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, 0x0F, 0x58, -0xE3, 0xF1, 0x08, 0xC2, 0xE3, 0xF1, 0x20, 0xDA, -0x01, 0x6B, 0x01, 0x60, 0x00, 0x6B, 0x04, 0x96, -0x30, 0xF0, 0x20, 0x6C, 0xB0, 0x67, 0xF1, 0x67, -0xE3, 0xF1, 0x64, 0xDA, 0xCA, 0xF4, 0x08, 0x4C, -0x80, 0x18, 0xB2, 0x4A, 0x09, 0x97, 0x08, 0x91, -0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF7, 0x50, 0x9A, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4B, -0x80, 0xA2, 0x65, 0xF7, 0xDC, 0xA3, 0x85, 0xF7, -0x84, 0xC3, 0xA0, 0xAA, 0x01, 0xF0, 0x00, 0x6C, -0xAC, 0xEC, 0x83, 0x35, 0x03, 0x6C, 0xAE, 0x35, -0x8B, 0xEC, 0xA4, 0x35, 0xCC, 0xEC, 0xAD, 0xEC, -0x65, 0xF7, 0x9C, 0xC3, 0x30, 0xF0, 0x20, 0x6C, -0xA2, 0xF7, 0x94, 0x9C, 0xA0, 0xAC, 0x85, 0xF7, -0xA6, 0xCB, 0xA0, 0xAA, 0xBF, 0xF7, 0x1F, 0x6B, -0xAC, 0xEB, 0x60, 0xCA, 0xA0, 0xAA, 0x7F, 0xF7, -0x1F, 0x6B, 0xAC, 0xEB, 0x60, 0xCA, 0xC0, 0xAA, -0xFE, 0xF7, 0x1F, 0x6B, 0xFF, 0xF7, 0x1F, 0x6D, -0xCC, 0xEB, 0x60, 0xCA, 0x40, 0xAC, 0xFF, 0x6B, -0x21, 0x4B, 0xAC, 0xEA, 0x6D, 0xEA, 0xAC, 0xEA, -0x40, 0xCC, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x85, 0xF7, 0x84, 0xA2, 0xA2, 0xF7, 0x70, 0x9B, -0x01, 0x6E, 0x80, 0xC3, 0x30, 0xF0, 0x20, 0x6C, -0x85, 0xF7, 0xA6, 0xAA, 0xA2, 0xF7, 0x94, 0x9C, -0xA0, 0xCC, 0x65, 0xF7, 0x5C, 0xA2, 0x80, 0xAB, -0xFF, 0xF7, 0x1F, 0x6D, 0x46, 0x32, 0xCC, 0xEA, -0xAC, 0xEC, 0x40, 0x32, 0xFE, 0xF7, 0x1E, 0x4E, -0x4C, 0x32, 0xCC, 0xEC, 0x8D, 0xEA, 0xAC, 0xEA, -0x40, 0xCB, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD0, 0x00, 0x68, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x48, 0x9A, 0x90, 0x67, 0x04, 0x05, -0x40, 0xEA, 0x01, 0x72, 0x02, 0x60, 0x03, 0x6A, -0x0D, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF6, -0x40, 0x9A, 0x9D, 0x67, 0x70, 0xA4, 0x09, 0xE2, -0x01, 0x48, 0x00, 0xF2, 0x00, 0x70, 0x60, 0xC2, -0xE9, 0x61, 0x00, 0x6A, 0x07, 0x97, 0x06, 0x90, -0x04, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, -0x10, 0xF0, 0x23, 0x6B, 0x40, 0xF1, 0x08, 0x4A, -0x00, 0xF6, 0x01, 0x4B, 0x61, 0xDA, 0x10, 0xF0, -0x23, 0x6B, 0xC3, 0xF5, 0x05, 0x4B, 0x62, 0xDA, -0x10, 0xF0, 0x23, 0x6B, 0x63, 0xF6, 0x01, 0x4B, -0x63, 0xDA, 0x10, 0xF0, 0x23, 0x6B, 0x23, 0xF6, -0x09, 0x4B, 0x64, 0xDA, 0x10, 0xF0, 0x23, 0x6B, -0xE3, 0xF5, 0x15, 0x4B, 0x65, 0xDA, 0x10, 0xF0, -0x23, 0x6B, 0x83, 0xF5, 0x15, 0x4B, 0x66, 0xDA, -0x10, 0xF0, 0x23, 0x6B, 0x63, 0xF5, 0x05, 0x4B, -0x67, 0xDA, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x63, 0xF5, 0x08, 0x48, 0x00, 0x69, 0xA0, 0xF0, -0x24, 0xD8, 0x20, 0xF1, 0x30, 0xC0, 0x80, 0x18, -0x3F, 0x4D, 0xC3, 0xF1, 0x2C, 0xC0, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0x00, 0x6B, 0x03, 0xF3, 0x64, 0xC2, 0x03, 0xF3, -0x65, 0xC2, 0x03, 0xF3, 0x66, 0xC2, 0x03, 0xF3, -0x67, 0xC2, 0x42, 0xF4, 0x10, 0x6A, 0x1F, 0xF7, -0x00, 0x6B, 0x4C, 0xEB, 0x02, 0xF0, 0x00, 0x73, -0x01, 0x60, 0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF2, 0x78, 0x9B, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF2, 0x7C, 0x9B, 0x6D, 0xE2, -0x04, 0x4A, 0x00, 0x6C, 0x62, 0xF4, 0x00, 0x72, -0x80, 0xDB, 0xE9, 0x61, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x82, 0xF3, 0x5C, 0x9A, 0x03, 0x6C, 0x60, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF3, 0x40, 0x9A, -0x00, 0xF5, 0x62, 0x33, 0x8C, 0xEB, 0x40, 0x9A, -0x01, 0x73, 0x42, 0x32, 0x52, 0x32, 0x8C, 0xEA, -0x05, 0x60, 0x0B, 0x2B, 0x02, 0x5A, 0x50, 0x6C, -0x0D, 0x60, 0x03, 0x10, 0x02, 0x5A, 0x0A, 0x60, -0x28, 0x6C, 0x87, 0xEA, 0xFF, 0x6A, 0x4C, 0xEC, -0x06, 0x10, 0x02, 0x5A, 0x28, 0x6C, 0x03, 0x60, -0x14, 0x6C, 0x01, 0x10, 0x50, 0x6C, 0x80, 0x18, -0x0D, 0x4F, 0x80, 0x18, 0x00, 0x00, 0x30, 0xF0, -0x20, 0x6B, 0x22, 0xF3, 0x64, 0x9B, 0x00, 0x6A, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, -0x64, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x22, 0xF3, 0x60, 0x9B, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6B, 0x02, 0xF3, 0x6C, 0x9B, 0x40, 0xCB, -0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF3, 0x74, 0x9B, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF3, -0x64, 0x9B, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x80, 0x18, 0x5E, 0x4D, 0x80, 0x18, 0xA6, 0x4D, -0x80, 0x18, 0x84, 0x40, 0x00, 0x18, 0xB5, 0xDA, -0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, 0x44, 0x9A, -0x40, 0xEA, 0x80, 0x18, 0x95, 0x4B, 0x80, 0x18, -0x17, 0x14, 0x00, 0x18, 0xC8, 0xD0, 0x00, 0x18, -0xE4, 0xD0, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0x00, 0x6B, 0x20, 0xF6, 0x72, 0xC2, 0x20, 0xF6, -0x73, 0xC2, 0x20, 0xF1, 0x70, 0xC2, 0x20, 0xF1, -0x71, 0xC2, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x82, 0xF6, 0x54, 0x9A, 0x01, 0x6B, 0x60, 0xC2, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x82, 0xF6, 0x98, 0x9A, 0xFF, 0x6B, 0x20, 0x6D, -0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, -0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, -0x84, 0x9A, 0x08, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, -0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, 0x7C, 0x9A, -0xFD, 0x6A, 0xFF, 0x6C, 0xA0, 0xA3, 0xAC, 0xEA, -0x40, 0xC3, 0x40, 0xA3, 0x01, 0x6D, 0x8C, 0xEA, -0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, -0xA2, 0xF6, 0x80, 0x9B, 0x00, 0x6D, 0x02, 0xF0, -0x00, 0x6E, 0x40, 0xEA, 0x00, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0xA2, 0xF6, 0x60, 0x9B, 0x54, 0x34, -0x01, 0x4A, 0x6D, 0xE4, 0x80, 0x72, 0x04, 0x6C, -0x80, 0xC3, 0xF5, 0x61, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF6, 0x84, 0x9B, -0x80, 0xF2, 0x48, 0x9A, 0x00, 0x6D, 0x00, 0xF4, -0x00, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF5, 0x08, 0x4B, 0x52, 0x9B, 0x8D, 0xEA, -0x52, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF6, -0x68, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0xA2, 0xF6, 0x6C, 0x9B, 0x40, 0xDB, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4B, -0xB2, 0x9B, 0x8F, 0xEA, 0xAC, 0xEA, 0x52, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF6, 0x6C, 0x9B, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF6, -0x48, 0x9A, 0x80, 0xDA, 0x20, 0xE8, 0x00, 0x65, -0x05, 0x5C, 0x5E, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x88, 0x34, 0x22, 0xF2, 0x08, 0x4A, 0x89, 0xE2, -0x40, 0x9A, 0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF5, 0x48, 0x9B, 0xAD, 0xEA, 0x63, 0xF5, -0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF6, -0x6C, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0xA2, 0xF6, 0x70, 0x9B, 0x32, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4B, 0x41, 0x9B, -0xAD, 0xEA, 0x41, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0xA2, 0xF6, 0x74, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0xA2, 0xF6, 0x78, 0x9B, 0x21, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4B, -0x42, 0x9B, 0xAD, 0xEA, 0x42, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0xA2, 0xF6, 0x7C, 0x9B, 0xA0, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, 0x60, 0x9B, -0x10, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, -0x08, 0x4B, 0x43, 0x9B, 0xAD, 0xEA, 0x43, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, 0x64, 0x9B, -0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, -0x68, 0x9B, 0x40, 0xDB, 0x20, 0xE8, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4B, 0x44, 0x9B, -0xAD, 0xEA, 0x44, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF6, 0x6C, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0xC2, 0xF6, 0x70, 0x9B, 0x40, 0xDB, -0x20, 0xE8, 0x00, 0x65, 0x05, 0x5C, 0x63, 0x60, -0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, 0x22, 0xF2, -0x1C, 0x4A, 0x89, 0xE2, 0x40, 0x9A, 0x00, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x88, 0x9B, -0xAF, 0xEA, 0x8C, 0xEA, 0x63, 0xF5, 0x48, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF6, 0x70, 0x9B, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF6, -0x4C, 0x9A, 0x35, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF5, 0x08, 0x4B, 0x81, 0x9B, 0xAF, 0xEA, -0x8C, 0xEA, 0x41, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0xA2, 0xF6, 0x78, 0x9B, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0xA2, 0xF6, 0x54, 0x9A, 0x23, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4B, -0x82, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x42, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, 0x60, 0x9B, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF6, -0x5C, 0x9A, 0x11, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF5, 0x08, 0x4B, 0x83, 0x9B, 0xAF, 0xEA, -0x8C, 0xEA, 0x43, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF6, 0x68, 0x9B, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0xC2, 0xF6, 0x44, 0x9A, 0xA0, 0xDA, -0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, -0x08, 0x4B, 0x84, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, -0x44, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, -0x70, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0xC2, 0xF6, 0x4C, 0x9A, 0xA0, 0xDA, 0x20, 0xE8, -0x01, 0x74, 0x15, 0x60, 0x03, 0x24, 0x02, 0x74, -0x23, 0x60, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF5, 0x08, 0x4B, 0x54, 0x9B, 0xAD, 0xEA, -0x54, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, -0x74, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF6, 0x78, 0x9B, 0x21, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4B, 0x55, 0x9B, -0xAD, 0xEA, 0x55, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF6, 0x7C, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF6, 0x60, 0x9B, 0x10, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4B, -0x56, 0x9B, 0xAD, 0xEA, 0x56, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF6, 0x64, 0x9B, 0xA0, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF6, 0x68, 0x9B, -0x40, 0xDB, 0x20, 0xE8, 0x01, 0x74, 0x16, 0x60, -0x03, 0x24, 0x02, 0x74, 0x25, 0x60, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4B, -0x94, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x54, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, 0x78, 0x9B, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, -0x54, 0x9A, 0x23, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF5, 0x08, 0x4B, 0x95, 0x9B, 0xAF, 0xEA, -0x8C, 0xEA, 0x55, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF6, 0x60, 0x9B, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0xC2, 0xF6, 0x5C, 0x9A, 0x11, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4B, -0x96, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x56, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF6, 0x68, 0x9B, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, -0x44, 0x9A, 0xA0, 0xDA, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6C, 0xA2, 0xF6, 0x90, 0x9C, -0x00, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, -0x48, 0xDB, 0x63, 0xF5, 0x08, 0x4B, 0x41, 0xDB, -0x42, 0xDB, 0x43, 0xDB, 0x44, 0xDB, 0x40, 0xDC, -0x30, 0xF0, 0x20, 0x6C, 0xA2, 0xF6, 0x98, 0x9C, -0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF6, -0x80, 0x9C, 0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, -0xC2, 0xF6, 0x88, 0x9C, 0x40, 0xDC, 0x30, 0xF0, -0x20, 0x6C, 0xC2, 0xF6, 0x90, 0x9C, 0x40, 0xDC, -0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF6, 0x98, 0x9C, -0x54, 0xDB, 0x55, 0xDB, 0x40, 0xDC, 0x30, 0xF0, -0x20, 0x6C, 0xE2, 0xF6, 0x80, 0x9C, 0x40, 0xDC, -0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF6, 0x88, 0x9C, -0x56, 0xDB, 0x40, 0xDC, 0x52, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0xA2, 0xF6, 0x6C, 0x9B, 0x40, 0xDB, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, -0x42, 0xF6, 0x6C, 0x9B, 0x01, 0x6A, 0x4B, 0xEA, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF6, -0x74, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0xA2, 0xF6, 0x7C, 0x9B, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0xC2, 0xF6, 0x64, 0x9B, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, 0x6C, 0x9B, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, -0x74, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF6, 0x7C, 0x9B, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF6, 0x64, 0x9B, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF6, 0x68, 0x9B, -0x40, 0xDB, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, -0xE0, 0xF3, 0x10, 0x6E, 0x63, 0xF5, 0xC8, 0xDB, -0x01, 0xF7, 0x01, 0x6A, 0x63, 0xF5, 0x08, 0x4B, -0x08, 0xF0, 0x00, 0x6D, 0x00, 0x6C, 0x42, 0xDB, -0x43, 0xDB, 0xA1, 0xDB, 0x84, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0xA2, 0xF6, 0x70, 0x9B, 0xC0, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF6, 0x78, 0x9B, -0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, -0x60, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF6, 0x68, 0x9B, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0xC2, 0xF6, 0x50, 0x9A, 0x80, 0xDA, -0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x01, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, 0x50, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF6, 0x6C, 0x9B, -0x40, 0xDB, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, -0x42, 0xF3, 0x80, 0x9B, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF5, 0x08, 0x4A, 0x80, 0xF1, 0x06, 0x6D, -0xFF, 0x6B, 0xB4, 0xDA, 0x95, 0xDA, 0x76, 0xDA, -0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, 0x58, 0x9A, -0xA0, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, -0x40, 0x9A, 0x80, 0xDA, 0x30, 0xF0, 0x20, 0x6A, -0xE2, 0xF6, 0x48, 0x9A, 0x60, 0xDA, 0x20, 0xE8, -0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0x8C, 0x4E, -0x80, 0x18, 0xAB, 0x4E, 0x80, 0x18, 0xC3, 0x4E, -0x80, 0x18, 0xDF, 0x4E, 0x80, 0x18, 0xD9, 0x4E, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x4C, 0x9A, 0x40, 0xEA, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x80, 0x18, 0x34, 0x4F, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF5, 0x08, 0x4B, 0xC2, 0xF5, 0x44, 0xC3, -0x00, 0x6A, 0xC2, 0xF5, 0x45, 0xC3, 0x80, 0x18, -0xBC, 0x4D, 0x80, 0x18, 0xCD, 0x50, 0x80, 0x18, -0xF6, 0x4E, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, -0x4C, 0x9A, 0x3F, 0x6B, 0x60, 0xC2, 0x80, 0x18, -0xAD, 0x4D, 0x80, 0x18, 0xB1, 0x4D, 0x80, 0x18, -0xC4, 0x4D, 0x80, 0x18, 0x13, 0x4F, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0x47, 0xCC, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0x00, 0x6B, 0x01, 0x6C, 0x9F, 0xF7, 0x00, 0x6D, -0x00, 0x6E, 0x26, 0xF7, 0x68, 0xC2, 0x26, 0xF7, -0x69, 0xC2, 0x00, 0x18, 0xC2, 0xC5, 0x01, 0x6C, -0x9F, 0xF7, 0x01, 0x6D, 0x00, 0x6E, 0x00, 0x18, -0xC2, 0xC5, 0x01, 0x6C, 0x9F, 0xF7, 0x02, 0x6D, -0x00, 0x6E, 0x00, 0x18, 0xC2, 0xC5, 0x01, 0x6C, -0x9F, 0xF7, 0x03, 0x6D, 0x00, 0x6E, 0x00, 0x18, -0xC2, 0xC5, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, 0x40, 0x9A, -0xE0, 0xF1, 0x1B, 0x6B, 0x6B, 0xEB, 0x60, 0xCA, -0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, 0x64, 0x9A, -0xFB, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, 0x68, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0x62, 0xF6, 0x84, 0x9C, -0x40, 0x9B, 0x8C, 0xEA, 0x40, 0xDB, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, 0x44, 0x9A, -0xFF, 0xF7, 0x1F, 0x6B, 0x40, 0xAA, 0x4C, 0xEB, -0x62, 0x33, 0x03, 0x6A, 0x72, 0x33, 0x4C, 0xEB, -0x02, 0x6A, 0x04, 0x23, 0x01, 0x73, 0x01, 0x6A, -0x01, 0x60, 0x03, 0x6A, 0x20, 0xE8, 0x00, 0x65, -0x10, 0xF0, 0x23, 0x6A, 0x66, 0xF2, 0x0D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, 0x48, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x86, 0xF2, 0x01, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, 0x4C, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0x87, 0xF4, 0x19, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, 0x50, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x69, 0xF4, 0x11, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, 0x54, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x88, 0xF1, 0x11, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF2, 0x50, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x0C, 0xF4, 0x0D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF2, 0x54, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x0C, 0xF5, 0x0D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF2, 0x54, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x03, 0xF0, 0x19, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF2, 0x58, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x63, 0xF1, 0x05, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF2, 0x5C, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xC7, 0xF5, 0x01, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF3, 0x40, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xE7, 0xF0, 0x01, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF3, 0x44, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x27, 0xF1, 0x09, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF3, 0x48, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x88, 0xF4, 0x1D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF3, 0x4C, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0xA6, 0xF3, 0x05, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF4, 0x58, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0x06, 0xF4, 0x01, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF4, 0x50, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0x66, 0xF4, 0x15, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF4, 0x54, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xE6, 0xF4, 0x0D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF4, 0x5C, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x06, 0xF7, 0x1D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF4, 0x40, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xA9, 0xF7, 0x11, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF4, 0x5C, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x27, 0xF2, 0x05, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x44, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0xA6, 0xF4, 0x1D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF4, 0x54, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xC2, 0xF4, 0x05, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x58, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xCC, 0xF0, 0x19, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x5C, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xE2, 0xF4, 0x1D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x50, 0xDB, -0x10, 0xF0, 0x30, 0x6A, 0xAA, 0xF0, 0x19, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xC7, 0xF6, 0x0D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF4, 0x48, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x0C, 0xF0, 0x11, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x4C, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x8A, 0xF5, 0x19, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x50, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x0A, 0xF6, 0x1D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x54, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x8A, 0xF6, 0x15, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x58, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xCA, 0xF6, 0x0D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x5C, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x0A, 0xF7, 0x05, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF3, 0x40, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x2A, 0xF7, 0x19, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF3, 0x44, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x6A, 0xF7, 0x0D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF3, 0x48, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x0B, 0xF0, 0x09, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF3, 0x4C, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xCB, 0xF7, 0x09, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF3, 0x50, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xCB, 0xF7, 0x1D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF3, 0x54, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x0C, 0xF0, 0x01, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF3, 0x58, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xEB, 0xF7, 0x11, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF3, 0x5C, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x4B, 0xF3, 0x05, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF4, 0x40, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xCB, 0xF3, 0x1D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF4, 0x44, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x06, 0xF2, 0x11, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF3, 0x44, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x26, 0xF2, 0x1D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF3, 0x4C, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x06, 0xF2, 0x1D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF3, 0x48, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0x65, 0xF5, 0x0D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF3, 0x50, 0xDB, -0x10, 0xF0, 0x30, 0x6A, 0x2A, 0xF5, 0x05, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF3, 0x40, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0xA1, 0xF2, 0x09, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF6, 0x50, 0xDB, -0x10, 0xF0, 0x30, 0x6A, 0x20, 0xF4, 0x01, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF6, 0x54, 0xDB, -0x10, 0xF0, 0x30, 0x6A, 0xE0, 0xF2, 0x1D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF6, 0x58, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF6, 0x0C, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF6, 0x5C, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x26, 0xF3, 0x14, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF6, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF7, 0x78, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF6, 0x64, 0xDA, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF7, 0x18, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF6, 0x48, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x67, 0xF0, 0x0C, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF6, 0x4C, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x87, 0xF0, 0x18, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF6, 0x50, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xA7, 0xF1, 0x0C, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF6, 0x54, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF6, 0x58, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF1, 0x00, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF6, 0x5C, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF4, 0x03, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF6, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF4, 0x08, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF6, 0x44, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF4, 0x10, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF6, 0x48, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF6, 0x18, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF6, 0x44, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xCA, 0xF4, 0x08, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF6, 0x40, 0xDB, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0x21, 0xF0, 0x00, 0x4B, -0x80, 0xF2, 0x08, 0x4A, 0x13, 0x10, 0x80, 0x9A, -0x10, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF3, -0xA4, 0x9C, 0x30, 0xF0, 0x20, 0x6E, 0x42, 0xF3, -0xD4, 0x9E, 0x80, 0x9D, 0xCD, 0xEC, 0x80, 0xDD, -0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF7, 0x94, 0x9C, -0x40, 0xDC, 0x04, 0x4A, 0x43, 0xEB, 0xEB, 0x60, -0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0xF7, 0x1F, 0x69, -0x2C, 0xED, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0xD5, -0x82, 0xF7, 0xB8, 0x9B, 0xFF, 0x6A, 0x40, 0x6E, -0x60, 0xA5, 0xCB, 0xEE, 0x4C, 0xEC, 0x4C, 0xEB, -0xCC, 0xEB, 0x6D, 0xEC, 0x4C, 0xEC, 0x80, 0xC5, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, -0x0A, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x82, 0xF7, 0x5C, 0x9A, 0x00, 0xAA, 0x04, 0x92, -0x2C, 0xE8, 0x2A, 0xEA, 0x0B, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, 0x04, 0x94, -0x40, 0xEA, 0x04, 0x93, 0x2C, 0xEA, 0x6C, 0xE8, -0x07, 0xEA, 0x2C, 0xE8, 0x50, 0x67, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0xF7, 0x1F, 0x69, 0x2C, 0xED, 0xFF, 0x68, -0x0C, 0xEC, 0x2C, 0xEE, 0x2A, 0xED, 0x05, 0xD4, -0x04, 0xD5, 0x06, 0xD6, 0x1F, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x82, 0xF7, 0x78, 0x9A, 0x40, 0x6C, -0x8B, 0xEC, 0x40, 0xA3, 0x0C, 0xEA, 0x8C, 0xEA, -0x05, 0x94, 0x8D, 0xEA, 0x0C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, 0x7C, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF5, 0x80, 0x9C, -0x40, 0x9B, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, -0x62, 0xF3, 0x94, 0x9C, 0x8D, 0xEA, 0xCD, 0xEA, -0x40, 0xDB, 0x34, 0x10, 0x05, 0x94, 0xB1, 0x67, -0x80, 0x18, 0x49, 0x50, 0x07, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x04, 0x94, 0xA0, 0xF3, 0x44, 0x9A, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF7, -0x98, 0x9B, 0x40, 0x6D, 0xAB, 0xED, 0x60, 0xA4, -0x2C, 0xEA, 0x0C, 0xEB, 0xAC, 0xEB, 0x05, 0x95, -0xAD, 0xEB, 0x0C, 0xEB, 0x60, 0xC4, 0x30, 0xF0, -0x20, 0x6B, 0x82, 0xF7, 0x9C, 0x9B, 0x30, 0xF0, -0x20, 0x6D, 0x42, 0xF5, 0xA0, 0x9D, 0x60, 0x9C, -0x06, 0x96, 0xAC, 0xEB, 0x30, 0xF0, 0x20, 0x6D, -0x62, 0xF3, 0xB4, 0x9D, 0xC4, 0xEA, 0x46, 0x67, -0xAD, 0xEB, 0x04, 0x95, 0x07, 0x96, 0xAC, 0xEA, -0xAF, 0xED, 0xCC, 0xED, 0xAD, 0xEA, 0x2C, 0xEA, -0x4D, 0xEB, 0x60, 0xDC, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, -0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x6C, 0x10, 0xF0, 0x00, 0x6D, 0x80, 0x18, -0x49, 0x50, 0x05, 0x97, 0x01, 0x5A, 0x58, 0x67, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, -0x64, 0x9B, 0x10, 0xF0, 0x31, 0x6A, 0x88, 0xF2, -0x05, 0x4A, 0x40, 0xDB, 0x00, 0x68, 0x31, 0x10, -0x82, 0xF3, 0x08, 0x70, 0x1A, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x22, 0xF3, 0x64, 0x9A, 0x02, 0xF0, -0x00, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x08, 0x4A, -0x23, 0xF3, 0x70, 0x9A, 0x8D, 0xEB, 0x23, 0xF3, -0x70, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF7, -0x40, 0x9A, 0x03, 0x6B, 0x6B, 0xEB, 0x60, 0xC2, -0x18, 0x10, 0xFF, 0xF7, 0x1F, 0x6A, 0x01, 0x48, -0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x14, 0x6C, 0x40, 0xEA, 0x33, 0x58, -0x08, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, -0x48, 0x9A, 0x60, 0xA2, 0x08, 0x6A, 0x6C, 0xEA, -0x04, 0x2A, 0x80, 0x18, 0x9B, 0x50, 0x01, 0x72, -0xCB, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF7, -0x40, 0x9A, 0x02, 0x6B, 0x6B, 0xEB, 0x60, 0xC2, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, 0x64, 0x9B, -0x10, 0xF0, 0x31, 0x6A, 0x88, 0xF2, 0x06, 0x4A, -0x40, 0xDB, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF7, -0x64, 0x9A, 0x02, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, -0x40, 0x9B, 0xFF, 0x6E, 0x41, 0x4E, 0x8D, 0xEA, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF7, -0x68, 0x9A, 0xE0, 0xF3, 0x1E, 0x4C, 0x30, 0xF0, -0x20, 0x68, 0x40, 0xAB, 0xAC, 0xEA, 0x8D, 0xEA, -0xAC, 0xEA, 0x40, 0xCB, 0x02, 0x6C, 0x80, 0x18, -0x64, 0x50, 0x80, 0xF3, 0x4C, 0x98, 0x0A, 0x6C, -0x40, 0xEA, 0x00, 0x6C, 0xC0, 0x6D, 0x02, 0x6E, -0x80, 0x18, 0x64, 0x50, 0x00, 0x6C, 0xC4, 0x67, -0x02, 0xF0, 0x00, 0x6D, 0x80, 0x18, 0x64, 0x50, -0x00, 0x6C, 0xC4, 0x67, 0x0C, 0xF0, 0x00, 0x6D, -0x80, 0x18, 0x64, 0x50, 0x00, 0x6C, 0x01, 0xF0, -0x00, 0x6D, 0x01, 0x6E, 0x80, 0x18, 0x64, 0x50, -0x10, 0xF0, 0x00, 0x6D, 0x01, 0x6E, 0x00, 0x6C, -0x80, 0x18, 0x64, 0x50, 0x80, 0xF3, 0x4C, 0x98, -0x0A, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xA2, 0xF7, 0x6C, 0x9A, 0xFF, 0x6C, 0x04, 0x6D, -0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, -0x40, 0xC3, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x00, 0x00, 0x00, 0x00, -0xFD, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - -u32 array_length_mp_8822c_fw_spic = 117752; - -#endif /*!(DM_ODM_SUPPORT_TYPE & (ODM_CE))*/ - -#ifdef CONFIG_WOWLAN - -u8 array_mp_8822c_fw_wowlan[] = { -0x22, 0x88, 0x00, 0x00, 0x09, 0x00, 0x07, 0x00, -0x0C, 0x68, 0xEA, 0x3F, 0x00, 0x00, 0x00, 0x00, -0x02, 0x0D, 0x0F, 0x0E, 0xE4, 0x07, 0x00, 0x00, -0x18, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, -0x00, 0x00, 0x20, 0x80, 0x38, 0x33, 0x00, 0x00, -0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, -0x28, 0x99, 0x00, 0x00, 0x00, 0x6A, 0x01, 0x00, -0x00, 0x00, 0x10, 0x80, 0x00, 0x00, 0x03, 0x80, -0x00, 0x00, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, -0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, -0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, -0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, -0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, -0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, -0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, -0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, -0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, -0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, -0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, -0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, -0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, -0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, -0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, -0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, -0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, -0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, -0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, -0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, -0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, -0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, -0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, -0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, -0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, -0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, -0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, -0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, -0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, -0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, -0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, -0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -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, 0x01, 0xFE, 0x03, 0x01, 0x01, 0xFE, -0x03, 0x02, 0x01, 0xFE, 0x03, 0x03, 0x01, 0xFE, -0x03, 0x04, 0x01, 0xFE, 0x03, 0x05, 0x01, 0xFE, -0x03, 0x06, 0x01, 0xFE, 0x03, 0x07, 0x01, 0xFE, -0x48, 0x0A, 0x20, 0x80, 0x06, 0x00, 0x00, 0x00, -0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, -0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, -0x01, 0x00, 0x03, 0x80, 0x25, 0x02, 0x03, 0x80, -0x25, 0x02, 0x03, 0x80, 0x08, 0x00, 0x00, 0x00, -0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xE0, -0x4C, 0x81, 0x92, 0x01, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x8D, -0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x07, 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, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x45, 0x4D, 0x03, 0x80, 0xFD, 0xFF, 0xFF, 0xFF, -0x00, 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, 0x39, 0x4C, 0x03, 0x80, -0x00, 0x00, 0x00, 0x00, 0x00, 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, -0xF5, 0x4B, 0x03, 0x80, 0x01, 0x00, 0x00, 0x00, -0x00, 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, 0x3C, 0x33, 0x20, 0x80, -0x44, 0x33, 0x20, 0x80, 0xF5, 0x4F, 0x03, 0x80, -0x03, 0x00, 0x00, 0x00, 0x00, 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, -0x54, 0x33, 0x20, 0x80, 0x4C, 0x33, 0x20, 0x80, -0x01, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, -0x00, 0x08, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, -0x11, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, -0x89, 0x00, 0x89, 0x00, 0x01, 0x00, 0x00, 0x00, -0x11, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, -0xA1, 0x00, 0xA1, 0x00, 0x02, 0x00, 0x00, 0x00, -0x11, 0x01, 0x04, 0x03, 0xE0, 0x00, 0x00, 0xFB, -0xE9, 0x14, 0xE9, 0x14, 0x04, 0x00, 0x00, 0x00, -0x11, 0x01, 0x04, 0x01, 0xEF, 0xFF, 0xFF, 0xFA, -0x6C, 0x07, 0x6C, 0x07, 0x06, 0x00, 0x00, 0x00, -0x11, 0x01, 0x04, 0x01, 0xEF, 0xFF, 0xFF, 0xFA, -0x76, 0x0E, 0x76, 0x0E, 0x08, 0x00, 0x00, 0x00, -0x11, 0x01, 0x04, 0x01, 0xEF, 0xFF, 0xFF, 0xFD, -0xAB, 0x01, 0xAB, 0x01, 0x0A, 0x00, 0x00, 0x00, -0x11, 0x01, 0x04, 0x01, 0xE0, 0x00, 0x00, 0xFC, -0xEB, 0x14, 0xEB, 0x14, 0x10, 0x00, 0x00, 0x00, -0x3A, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, -0x0E, 0x00, 0x00, 0x00, 0x3A, 0x04, 0x00, 0x02, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x87, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, -0x11, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xA1, 0x00, 0xA1, 0x00, -0x03, 0x00, 0x00, 0x00, 0x11, 0x01, 0x10, 0x03, -0x02, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0x00, -0xE9, 0x14, 0xE9, 0x14, 0x05, 0x00, 0x00, 0x00, -0x11, 0x01, 0x10, 0x01, 0x02, 0xFF, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x0C, 0x00, 0x6C, 0x07, 0x6C, 0x07, -0x07, 0x00, 0x00, 0x00, 0x11, 0x01, 0x10, 0x01, -0x05, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, -0x6C, 0x07, 0x6C, 0x07, 0x07, 0x00, 0x00, 0x00, -0x11, 0x01, 0x10, 0x01, 0x02, 0xFF, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x0C, 0x00, 0x76, 0x0E, 0x76, 0x0E, -0x09, 0x00, 0x00, 0x00, 0x11, 0x01, 0x10, 0x01, -0x02, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x01, -0xAB, 0x01, 0xAB, 0x01, 0x0B, 0x00, 0x00, 0x00, -0x11, 0x01, 0x10, 0x01, 0x05, 0xFF, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x23, 0x01, 0xAB, 0x01, 0xAB, 0x01, -0x0B, 0x00, 0x00, 0x00, 0x11, 0x01, 0x10, 0x01, -0x02, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x01, -0xAB, 0x01, 0xAB, 0x01, 0x0B, 0x00, 0x00, 0x00, -0x11, 0x01, 0x10, 0x01, 0x05, 0xFF, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x16, 0x01, 0xAB, 0x01, 0xAB, 0x01, -0x0B, 0x00, 0x00, 0x00, 0x11, 0x01, 0x0E, 0x01, -0x02, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, -0xAB, 0x01, 0xAB, 0x01, 0x0B, 0x00, 0x00, 0x00, -0x11, 0x01, 0x0E, 0x01, 0x05, 0xFF, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x01, 0x00, 0x00, 0x00, 0xAB, 0x01, 0xAB, 0x01, -0x0B, 0x00, 0x00, 0x00, 0x11, 0x01, 0x10, 0x01, -0x02, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, -0xEB, 0x14, 0xEB, 0x14, 0x11, 0x00, 0x00, 0x00, -0x01, 0x00, 0x00, 0x00, 0x20, 0x05, 0x00, 0x00, -0x50, 0x05, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, -0x20, 0x08, 0x00, 0x00, 0x24, 0x08, 0x00, 0x00, -0x38, 0x1C, 0x00, 0x00, 0x68, 0x1C, 0x00, 0x00, -0x60, 0x1D, 0x00, 0x00, 0x0C, 0x18, 0x00, 0x00, -0x0C, 0x41, 0x00, 0x00, 0x3C, 0x1C, 0x00, 0x00, -0x14, 0x1A, 0x00, 0x00, 0x58, 0x1D, 0x00, 0x00, -0x70, 0x1D, 0x00, 0x00, 0x64, 0x18, 0x00, 0x00, -0x64, 0x41, 0x00, 0x00, 0x6C, 0x18, 0x00, 0x00, -0x6C, 0x41, 0x00, 0x00, 0x14, 0x1A, 0x00, 0x00, -0x70, 0x1E, 0x00, 0x00, 0x0C, 0x08, 0x00, 0x00, -0x7C, 0x1E, 0x00, 0x00, 0xA4, 0x18, 0x00, 0x00, -0xA4, 0x41, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, -0xDF, 0x00, 0x00, 0x00, 0x9E, 0x00, 0x00, 0x00, -0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x8D, -0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x07, 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, 0x08, 0x00, 0x00, 0x00, -0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, -0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x9D, 0x34, 0x03, 0x80, -0xA9, 0x34, 0x03, 0x80, 0xAF, 0x34, 0x03, 0x80, -0xB5, 0x34, 0x03, 0x80, 0xBD, 0x34, 0x03, 0x80, -0xEF, 0x34, 0x03, 0x80, 0xFB, 0x34, 0x03, 0x80, -0x01, 0x35, 0x03, 0x80, 0x07, 0x35, 0x03, 0x80, -0x0F, 0x35, 0x03, 0x80, 0x51, 0x35, 0x03, 0x80, -0x57, 0x35, 0x03, 0x80, 0x63, 0x35, 0x03, 0x80, -0x6F, 0x35, 0x03, 0x80, 0x7B, 0x35, 0x03, 0x80, -0x9F, 0x35, 0x03, 0x80, 0xA5, 0x35, 0x03, 0x80, -0xB1, 0x35, 0x03, 0x80, 0xBD, 0x35, 0x03, 0x80, -0xC9, 0x35, 0x03, 0x80, 0x59, 0x37, 0x03, 0x80, -0x43, 0x38, 0x03, 0x80, 0xBB, 0x37, 0x03, 0x80, -0x43, 0x38, 0x03, 0x80, 0xFF, 0x36, 0x03, 0x80, -0x43, 0x38, 0x03, 0x80, 0x43, 0x38, 0x03, 0x80, -0x43, 0x38, 0x03, 0x80, 0x25, 0x38, 0x03, 0x80, -0x43, 0x38, 0x03, 0x80, 0x43, 0x38, 0x03, 0x80, -0x43, 0x38, 0x03, 0x80, 0x97, 0x36, 0x03, 0x80, -0x0C, 0x1D, 0x00, 0x00, 0x3C, 0x1C, 0x00, 0x00, -0x90, 0x1C, 0x00, 0x00, 0xB0, 0x09, 0x00, 0x00, -0x20, 0x0A, 0x00, 0x00, 0x2C, 0x0A, 0x00, 0x00, -0x14, 0x0C, 0x00, 0x00, 0x38, 0x0C, 0x00, 0x00, -0x44, 0x0C, 0x00, 0x00, 0x54, 0x0C, 0x00, 0x00, -0x58, 0x1D, 0x00, 0x00, 0x90, 0x1D, 0x00, 0x00, -0x94, 0x1D, 0x00, 0x00, 0x24, 0x1E, 0x00, 0x00, -0x28, 0x1E, 0x00, 0x00, 0x2C, 0x1E, 0x00, 0x00, -0x8C, 0x1E, 0x00, 0x00, 0xB0, 0x1E, 0x00, 0x00, -0x00, 0x40, 0x00, 0x00, 0x24, 0x40, 0x00, 0x00, -0x28, 0x40, 0x00, 0x00, 0x2C, 0x40, 0x00, 0x00, -0x50, 0x40, 0x00, 0x00, 0x00, 0x1C, 0x66, 0xB8, -0x08, 0x00, 0x00, 0x00, 0x00, 0x01, 0x64, 0xB8, -0x20, 0x00, 0x00, 0x00, 0xA0, 0x01, 0x64, 0xB8, -0x28, 0x00, 0x00, 0x00, 0x00, 0x02, 0x64, 0xB8, -0xF0, 0x00, 0x00, 0x00, 0x20, 0x04, 0x64, 0xB8, -0x29, 0x01, 0x00, 0x00, 0x74, 0x05, 0x64, 0xB8, -0x8C, 0x02, 0x00, 0x00, 0x20, 0x14, 0x64, 0xB8, -0xC0, 0x00, 0x00, 0x00, 0x00, 0x15, 0x64, 0xB8, -0xD4, 0x00, 0x00, 0x00, 0x00, 0x16, 0x64, 0xB8, -0xC8, 0x00, 0x00, 0x00, 0x00, 0x08, 0x64, 0xB8, -0xFC, 0x00, 0x00, 0x00, 0xB0, 0x09, 0x64, 0xB8, -0x4C, 0x04, 0x00, 0x00, 0x00, 0x18, 0x64, 0xB8, -0xFC, 0x01, 0x00, 0x00, 0x00, 0x1C, 0x64, 0xB8, -0xFC, 0x02, 0x00, 0x00, 0x00, 0x3A, 0x64, 0xB8, -0xA8, 0x00, 0x00, 0x00, 0x00, 0x40, 0x64, 0xB8, -0x00, 0x02, 0x00, 0x00, 0x00, 0x1A, 0x64, 0xB8, -0x00, 0x01, 0x00, 0x00, 0xA8, 0x06, 0x10, 0x07, -0x00, 0x16, 0x04, 0x16, 0x08, 0x16, 0x00, 0x00, -0xA8, 0x06, 0x10, 0x07, 0x00, 0x16, 0x04, 0x16, -0x08, 0x16, 0x00, 0x00, 0xA8, 0x06, 0x10, 0x07, -0x00, 0x16, 0x04, 0x16, 0x08, 0x16, 0x00, 0x00, -0x50, 0x05, 0x51, 0x05, 0x78, 0x05, 0x79, 0x05, -0x7A, 0x05, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, -0x05, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x00, 0x00, -0x04, 0x5F, 0x73, 0x75, 0x62, 0x00, 0x00, 0x00, -0x33, 0x33, 0x00, 0x00, 0x00, 0xFB, 0x00, 0x00, -0x05, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x00, 0x00, -0x04, 0x5F, 0x73, 0x75, 0x62, 0x00, 0x00, 0x00, -0xE0, 0x00, 0x00, 0xFB, 0x01, 0x00, 0x5E, 0x00, -0x00, 0xFB, 0x00, 0x00, 0xA8, 0x06, 0x10, 0x07, -0x00, 0x16, 0x04, 0x16, 0x08, 0x16, 0x00, 0x00, -0x10, 0x06, 0x00, 0x07, 0x20, 0x16, 0x30, 0x16, -0x40, 0x16, 0x00, 0x00, 0x18, 0x06, 0x08, 0x07, -0x28, 0x16, 0x38, 0x16, 0x48, 0x16, 0x00, 0x00, -0x18, 0x06, 0x08, 0x07, 0x28, 0x16, 0x38, 0x16, -0x48, 0x16, 0x00, 0x00, 0x00, 0x04, 0x08, 0x00, -0x08, 0x04, 0x04, 0x00, 0xA8, 0x06, 0x10, 0x07, -0x00, 0x16, 0x04, 0x16, 0x08, 0x16, 0x00, 0x00, -0x13, 0x4A, 0x03, 0x80, 0x0D, 0x4A, 0x03, 0x80, -0x19, 0x4A, 0x03, 0x80, 0x1F, 0x4A, 0x03, 0x80, -0x25, 0x4A, 0x03, 0x80, 0x2B, 0x4A, 0x03, 0x80, -0x09, 0x12, 0x1B, 0x24, 0x94, 0x0C, 0x94, 0x0E, -0x94, 0x18, 0x94, 0x1A, 0xE5, 0x98, 0x10, 0x80, -0xB9, 0x99, 0x10, 0x80, 0xF5, 0x98, 0x10, 0x80, -0x2B, 0x99, 0x10, 0x80, 0x67, 0x99, 0x10, 0x80, -0xB9, 0x99, 0x10, 0x80, 0x03, 0x9A, 0x10, 0x80, -0x1B, 0x9A, 0x10, 0x80, 0x27, 0x9A, 0x10, 0x80, -0x59, 0x9A, 0x10, 0x80, 0x8B, 0x9A, 0x10, 0x80, -0x9B, 0x9A, 0x10, 0x80, 0x09, 0x12, 0x1B, 0x24, -0x37, 0xC4, 0x10, 0x80, 0x93, 0xC4, 0x10, 0x80, -0xB7, 0xC4, 0x10, 0x80, 0xE7, 0xC4, 0x10, 0x80, -0x0B, 0xC5, 0x10, 0x80, 0x33, 0xC5, 0x10, 0x80, -0x19, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, -0x55, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, -0x87, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, -0xDE, 0x00, 0x00, 0x00, 0x20, 0x05, 0x00, 0x00, -0x20, 0x08, 0x00, 0x00, 0x24, 0x08, 0x00, 0x00, -0x3C, 0x1C, 0x00, 0x00, 0x58, 0x1D, 0x00, 0x00, -0x64, 0x18, 0x00, 0x00, 0x64, 0x41, 0x00, 0x00, -0x0C, 0x18, 0x00, 0x00, 0x0C, 0x41, 0x00, 0x00, -0x6C, 0x18, 0x00, 0x00, 0x6C, 0x41, 0x00, 0x00, -0x14, 0x1A, 0x00, 0x00, 0x70, 0x1E, 0x00, 0x00, -0x0C, 0x08, 0x00, 0x00, 0x70, 0x1D, 0x00, 0x00, -0x7C, 0x1E, 0x00, 0x00, 0xA4, 0x18, 0x00, 0x00, -0xA4, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0xB0, 0x01, 0x00, 0x00, 0x4C, 0x01, 0x00, 0x00, -0x12, 0x01, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, -0xC8, 0x00, 0x00, 0x00, 0xAE, 0x00, 0x00, 0x00, -0x97, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, -0x73, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, -0x56, 0x00, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00, -0x3E, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, -0x2A, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, -0x17, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, -0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x43, 0x3E, 0x11, 0x80, 0xBB, 0x3F, 0x11, 0x80, -0x95, 0x40, 0x11, 0x80, 0x3F, 0x3E, 0x11, 0x80, -0x3F, 0x3E, 0x11, 0x80, 0x43, 0x3E, 0x11, 0x80, -0x43, 0x3E, 0x11, 0x80, 0x71, 0x5E, 0x11, 0x80, -0x93, 0x5E, 0x11, 0x80, 0xB5, 0x5E, 0x11, 0x80, -0xD7, 0x5E, 0x11, 0x80, 0xFB, 0x5E, 0x11, 0x80, -0x35, 0x5F, 0x11, 0x80, 0x59, 0x5F, 0x11, 0x80, -0x7D, 0x5F, 0x11, 0x80, 0xA1, 0x5F, 0x11, 0x80, -0xC7, 0x5F, 0x11, 0x80, 0x01, 0x01, 0x04, 0x10, -0x40, 0x00, 0x00, 0x00, 0xE0, 0x04, 0xE3, 0x04, -0xE3, 0x04, 0xE3, 0x04, 0xE3, 0x04, 0x00, 0x00, -0x59, 0x4D, 0x11, 0x80, 0x59, 0x4D, 0x11, 0x80, -0x59, 0x4D, 0x11, 0x80, 0x73, 0x4D, 0x11, 0x80, -0x59, 0x4D, 0x11, 0x80, 0x59, 0x4D, 0x11, 0x80, -0x59, 0x4D, 0x11, 0x80, 0x55, 0x4D, 0x11, 0x80, -0x55, 0x4D, 0x11, 0x80, 0x55, 0x4D, 0x11, 0x80, -0x55, 0x4D, 0x11, 0x80, 0x55, 0x4D, 0x11, 0x80, -0xE3, 0x4D, 0x11, 0x80, 0xED, 0x4D, 0x11, 0x80, -0xFB, 0x6E, 0x03, 0x80, 0x0B, 0x6F, 0x03, 0x80, -0x15, 0x6F, 0x03, 0x80, 0x1F, 0x6F, 0x03, 0x80, -0x31, 0x6F, 0x03, 0x80, 0xF5, 0x7E, 0x03, 0x80, -0xF1, 0x7E, 0x03, 0x80, 0xF5, 0x7E, 0x03, 0x80, -0xF1, 0x7E, 0x03, 0x80, 0x15, 0x7F, 0x03, 0x80, -0xF1, 0x7E, 0x03, 0x80, 0x15, 0x7F, 0x03, 0x80, -0xF1, 0x7E, 0x03, 0x80, 0x35, 0x7F, 0x03, 0x80, -0xF1, 0x7E, 0x03, 0x80, 0x35, 0x7F, 0x03, 0x80, -0xF1, 0x7E, 0x03, 0x80, 0x55, 0x7F, 0x03, 0x80, -0xF1, 0x7E, 0x03, 0x80, 0x55, 0x7F, 0x03, 0x80, -0x5D, 0x80, 0x03, 0x80, 0x5D, 0x80, 0x03, 0x80, -0x5D, 0x80, 0x03, 0x80, 0x5D, 0x80, 0x03, 0x80, -0x7D, 0x80, 0x03, 0x80, 0x7D, 0x80, 0x03, 0x80, -0x7D, 0x80, 0x03, 0x80, 0x7D, 0x80, 0x03, 0x80, -0x9D, 0x80, 0x03, 0x80, 0x9D, 0x80, 0x03, 0x80, -0x9D, 0x80, 0x03, 0x80, 0x9D, 0x80, 0x03, 0x80, -0xBD, 0x80, 0x03, 0x80, 0xBD, 0x80, 0x03, 0x80, -0xBD, 0x80, 0x03, 0x80, 0xBD, 0x80, 0x03, 0x80, -0x50, 0x05, 0x00, 0x00, 0x51, 0x05, 0x00, 0x00, -0x78, 0x05, 0x00, 0x00, 0x79, 0x05, 0x00, 0x00, -0x7A, 0x05, 0x00, 0x00, 0x50, 0x05, 0x00, 0x00, -0x51, 0x05, 0x00, 0x00, 0x78, 0x05, 0x00, 0x00, -0x79, 0x05, 0x00, 0x00, 0x7A, 0x05, 0x00, 0x00, -0xFB, 0x8E, 0x03, 0x80, 0x5B, 0x8F, 0x03, 0x80, -0xEF, 0x8F, 0x03, 0x80, 0x8D, 0x90, 0x03, 0x80, -0x31, 0x91, 0x03, 0x80, 0xFC, 0x10, 0x60, 0xB8, -0xFA, 0xFA, 0xFA, 0xFA, 0x8C, 0x04, 0x64, 0xB8, -0x90, 0x04, 0x64, 0xB8, 0x94, 0x04, 0x64, 0xB8, -0x98, 0x04, 0x64, 0xB8, 0x9C, 0x04, 0x64, 0xB8, -0xA0, 0x04, 0x64, 0xB8, 0x77, 0x05, 0x64, 0xB8, -0x6C, 0x05, 0x64, 0xB8, 0x68, 0x05, 0x64, 0xB8, -0x54, 0x05, 0x64, 0xB8, 0x00, 0x00, 0x00, 0x80, -0x70, 0x06, 0x64, 0xB8, 0x78, 0x06, 0x64, 0xB8, -0x00, 0x00, 0x01, 0x80, 0x74, 0x06, 0x64, 0xB8, -0x98, 0x06, 0x64, 0xB8, 0x9C, 0x06, 0x64, 0xB8, -0x54, 0x06, 0x64, 0xB8, 0x58, 0x06, 0x64, 0xB8, -0x5C, 0x06, 0x64, 0xB8, 0xFF, 0xFF, 0xFF, 0x8F, -0x00, 0x00, 0x60, 0xB8, 0x00, 0x00, 0x64, 0xB8, -0xBF, 0x01, 0x64, 0xB8, 0x89, 0x00, 0x60, 0xB8, -0x8A, 0x00, 0x60, 0xB8, 0x1A, 0x04, 0x64, 0xB8, -0x1B, 0x04, 0x64, 0xB8, 0x8C, 0x00, 0x60, 0xB8, -0x01, 0x00, 0xFF, 0x00, 0xF4, 0x11, 0x64, 0xB8, -0x58, 0x05, 0x64, 0xB8, 0xE2, 0x10, 0x60, 0xB8, -0x30, 0x01, 0x64, 0xB8, 0x20, 0x01, 0x64, 0xB8, -0x20, 0x11, 0x64, 0xB8, 0x01, 0x8F, 0x00, 0xF0, -0x28, 0x11, 0x64, 0xB8, 0x30, 0x11, 0x64, 0xB8, -0x38, 0x11, 0x64, 0xB8, 0xE0, 0x11, 0x64, 0xB8, -0x50, 0x00, 0x60, 0xB8, 0x38, 0x01, 0x64, 0xB8, -0x18, 0x34, 0x00, 0xB8, 0x88, 0x10, 0x60, 0xB8, -0xFB, 0x11, 0x64, 0xB8, 0xFA, 0x11, 0x64, 0xB8, -0xF8, 0x11, 0x64, 0xB8, 0xC6, 0x04, 0x64, 0xB8, -0x00, 0x00, 0x66, 0xB8, 0x02, 0x00, 0x60, 0xB8, -0xBF, 0xD8, 0xF1, 0x02, 0x00, 0x00, 0x00, 0x40, -0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x41, -0xB7, 0xD8, 0xF1, 0x02, 0x28, 0x06, 0x64, 0xB8, -0x00, 0x00, 0x80, 0xC0, 0x2C, 0x06, 0x64, 0xB8, -0x62, 0x06, 0x64, 0xB8, 0x00, 0x01, 0x64, 0xB8, -0x2C, 0x02, 0x64, 0xB8, 0x44, 0x02, 0x64, 0xB8, -0x4C, 0x02, 0x64, 0xB8, 0x54, 0x02, 0x64, 0xB8, -0xD8, 0x04, 0x64, 0xB8, 0xDC, 0x04, 0x64, 0xB8, -0x7D, 0x04, 0x64, 0xB8, 0xC7, 0x01, 0x64, 0xB8, -0x90, 0x06, 0x64, 0xB8, 0x80, 0x00, 0x60, 0xB8, -0x00, 0x00, 0x80, 0x00, 0xFF, 0xFF, 0x7F, 0xFF, -0x00, 0x00, 0x78, 0xB8, 0xA0, 0x00, 0x78, 0xB8, -0x30, 0x00, 0x78, 0xB8, 0xA4, 0x04, 0x64, 0xB8, -0xA8, 0x04, 0x64, 0xB8, 0xF8, 0x10, 0x60, 0xB8, -0x00, 0x00, 0x20, 0x00, 0x10, 0x02, 0x64, 0xB8, -0x88, 0x02, 0x64, 0xB8, 0xE2, 0x04, 0x64, 0xB8, -0x14, 0x11, 0x64, 0xB8, 0xFF, 0x00, 0xFF, 0x00, -0x96, 0x02, 0x64, 0xB8, 0x86, 0x02, 0x64, 0xB8, -0xA2, 0x02, 0x64, 0xB8, 0xCC, 0x01, 0x64, 0xB8, -0x0A, 0x06, 0x64, 0xB8, 0xB1, 0x05, 0x64, 0xB8, -0xCA, 0x01, 0x64, 0xB8, 0x5B, 0x01, 0x64, 0xB8, -0x3C, 0x01, 0x64, 0xB8, 0x00, 0x00, 0x1E, 0x00, -0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, -0x00, 0x00, 0x08, 0x00, 0x22, 0x05, 0x64, 0xB8, -0x3F, 0x42, 0x0F, 0x00, 0xFE, 0x11, 0x64, 0xB8, -0x7F, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, -0xFC, 0x11, 0x64, 0xB8, 0xE0, 0x10, 0x60, 0xB8, -0x57, 0x01, 0x64, 0xB8, 0x31, 0x00, 0x78, 0xB8, -0x1D, 0x04, 0x64, 0xB8, 0x7A, 0x04, 0x64, 0xB8, -0x80, 0x01, 0x64, 0xB8, 0x84, 0x01, 0x64, 0xB8, -0x72, 0x06, 0x64, 0xB8, 0xA9, 0x00, 0x78, 0xB8, -0x61, 0x00, 0x78, 0xB8, 0x01, 0x00, 0x78, 0xB8, -0xB9, 0x00, 0x78, 0xB8, 0xC1, 0x01, 0x64, 0xB8, -0xB9, 0x01, 0x64, 0xB8, 0xC3, 0x01, 0x64, 0xB8, -0x24, 0x04, 0x64, 0xB8, 0x40, 0x00, 0x78, 0xB8, -0x50, 0x00, 0x78, 0xB8, 0x38, 0x00, 0x78, 0xB8, -0x48, 0x00, 0x78, 0xB8, 0x1C, 0x04, 0x64, 0xB8, -0x34, 0x00, 0x78, 0xB8, 0x46, 0x00, 0x78, 0xB8, -0x07, 0x00, 0x78, 0xB8, 0x0B, 0x00, 0x78, 0xB8, -0x0C, 0x00, 0x78, 0xB8, 0xFF, 0xFF, 0x77, 0xB8, -0xFE, 0xFF, 0x77, 0xB8, 0x64, 0x00, 0x78, 0xB8, -0x65, 0x00, 0x78, 0xB8, 0x3C, 0x00, 0x78, 0xB8, -0x3D, 0x00, 0x78, 0xB8, 0x3E, 0x00, 0x78, 0xB8, -0x3F, 0x00, 0x78, 0xB8, 0x58, 0x00, 0x78, 0xB8, -0x59, 0x00, 0x78, 0xB8, 0x5A, 0x00, 0x78, 0xB8, -0x5B, 0x00, 0x78, 0xB8, 0x5C, 0x00, 0x78, 0xB8, -0x5D, 0x00, 0x78, 0xB8, 0x5E, 0x00, 0x78, 0xB8, -0x5F, 0x00, 0x78, 0xB8, 0x39, 0x00, 0x78, 0xB8, -0x3A, 0x00, 0x78, 0xB8, 0x3B, 0x00, 0x78, 0xB8, -0xC0, 0x01, 0x64, 0xB8, 0x4C, 0x00, 0x78, 0xB8, -0x51, 0x00, 0x78, 0xB8, 0x00, 0x00, 0x70, 0xB8, -0x4A, 0x00, 0x78, 0xB8, 0x00, 0x00, 0xFF, 0x00, -0x24, 0x01, 0x64, 0xB8, 0xB8, 0x01, 0x64, 0xB8, -0x60, 0x00, 0x60, 0xB8, 0x44, 0x00, 0x60, 0xB8, -0x4D, 0x01, 0x64, 0xB8, 0x18, 0x00, 0x78, 0xB8, -0x28, 0x00, 0x78, 0xB8, 0x10, 0x00, 0x78, 0xB8, -0x08, 0x00, 0x78, 0xB8, 0x09, 0x00, 0x78, 0xB8, -0x0A, 0x00, 0x78, 0xB8, 0x09, 0x06, 0x64, 0xB8, -0x08, 0x06, 0x64, 0xB8, 0xFF, 0xFF, 0xFF, 0x7F, -0x05, 0x00, 0x60, 0xB8, 0x04, 0x00, 0x78, 0xB8, -0x7A, 0x00, 0x78, 0xB8, 0x60, 0x00, 0x78, 0xB8, -0x54, 0x00, 0x78, 0xB8, 0x20, 0x00, 0x78, 0xB8, -0xC4, 0x01, 0x64, 0xB8, 0xA5, 0xA5, 0xA5, 0xA5, -0xC2, 0x01, 0x64, 0xB8, 0x05, 0x00, 0x78, 0xB8, -0x02, 0x00, 0x78, 0xB8, 0x06, 0x00, 0x78, 0xB8, -0x0D, 0x00, 0x78, 0xB8, 0x0E, 0x00, 0x78, 0xB8, -0x0F, 0x00, 0x78, 0xB8, 0x14, 0x00, 0x78, 0xB8, -0x02, 0x00, 0x64, 0xB8, 0x86, 0x00, 0x60, 0xB8, -0x87, 0x00, 0x60, 0xB8, 0x88, 0x00, 0x60, 0xB8, -0x84, 0x00, 0x60, 0xB8, 0x00, 0x00, 0x00, 0x02, -0xCB, 0x01, 0x64, 0xB8, 0x00, 0x00, 0x68, 0xB8, -0x04, 0x00, 0x68, 0xB8, 0x08, 0x00, 0x68, 0xB8, -0x0C, 0x00, 0x68, 0xB8, 0x00, 0x00, 0x00, 0x03, -0x00, 0x00, 0x00, 0x42, 0xE0, 0x00, 0x60, 0xB8, -0xFF, 0xFF, 0xFF, 0xFD, 0xE3, 0x00, 0x60, 0xB8, -0x00, 0x00, 0x00, 0x01, 0xE1, 0x00, 0x60, 0xB8, -0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x20, -0xCC, 0x00, 0x60, 0xB8, 0xFF, 0xFF, 0x03, 0x00, -0x00, 0x00, 0x00, 0x04, 0xFF, 0xFF, 0xFF, 0xFB, -0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0x1F, -0x04, 0x00, 0x60, 0xB8, 0x04, 0x00, 0x64, 0xB8, -0x08, 0x00, 0x60, 0xB8, 0x08, 0x00, 0x64, 0xB8, -0xE8, 0x12, 0x64, 0xB8, 0x24, 0x00, 0x60, 0xB8, -0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, -0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xEF, -0xB0, 0x02, 0x64, 0xB8, 0x1C, 0x01, 0x64, 0xB8, -0x00, 0x0C, 0x01, 0x00, 0x00, 0x80, 0xFF, 0x01, -0x08, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x0F, 0x00, -0x00, 0x00, 0x1F, 0x00, 0x01, 0x00, 0x00, 0xE0, -0x00, 0x00, 0xFF, 0x0F, 0x21, 0x00, 0x00, 0xE0, -0x00, 0xDB, 0x66, 0xDB, 0x00, 0x00, 0x00, 0x08, -0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x06, -0x80, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xF0, -0x00, 0x00, 0xFC, 0x07, 0x00, 0x00, 0x00, 0xC0, -0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x0F, -0xB4, 0x06, 0x64, 0xB8, 0x06, 0x00, 0x00, 0x89, -0x00, 0x0A, 0x08, 0x00, 0x01, 0x00, 0x66, 0xB8, -0x44, 0x00, 0x78, 0xB8, 0x01, 0x00, 0x00, 0xC0, -0x01, 0x00, 0x00, 0x60, 0x01, 0x00, 0x0F, 0x70, -0x01, 0x00, 0x1F, 0x70, 0x01, 0x00, 0x2F, 0x70, -0x01, 0x00, 0x3F, 0x70, 0x01, 0x00, 0x4F, 0x70, -0x01, 0x00, 0x5F, 0x70, 0x01, 0x00, 0x6F, 0x70, -0x01, 0x00, 0x7F, 0x70, 0x01, 0x00, 0x8F, 0x70, -0x01, 0x00, 0x9F, 0x70, 0x01, 0x00, 0xAF, 0x70, -0x01, 0x00, 0xBF, 0x70, 0x01, 0x00, 0xCF, 0x70, -0x01, 0x00, 0xDF, 0x70, 0x01, 0x00, 0xEF, 0x70, -0x01, 0x00, 0xFF, 0x70, 0x5E, 0x00, 0xD5, 0xF7, -0x41, 0x80, 0x0B, 0x70, 0x40, 0x00, 0x1F, 0x70, -0x40, 0x00, 0x2F, 0x70, 0x40, 0x00, 0x3F, 0x70, -0x40, 0x00, 0x4F, 0x70, 0x41, 0x80, 0x5B, 0x70, -0x40, 0x00, 0x6F, 0x70, 0x41, 0x40, 0x14, 0x70, -0x41, 0x40, 0x24, 0x70, 0x41, 0x40, 0x34, 0x70, -0x41, 0x40, 0x44, 0x70, 0x41, 0x40, 0x64, 0x70, -0x41, 0x80, 0x7B, 0x70, 0x41, 0x80, 0x8B, 0x70, -0x41, 0x80, 0x9B, 0x70, 0x41, 0x80, 0xAB, 0x70, -0x41, 0x80, 0xBB, 0x70, 0x41, 0x80, 0xCB, 0x70, -0x41, 0x80, 0xDB, 0x70, 0x41, 0x80, 0xEB, 0x70, -0x41, 0x80, 0xFB, 0x70, 0x00, 0x00, 0x10, 0x00, -0x50, 0x50, 0x50, 0x50, 0x00, 0x00, 0x00, 0x70, -0x00, 0x00, 0x03, 0x00, 0x1F, 0x00, 0x60, 0xB8, -0xEF, 0x00, 0x60, 0xB8, 0x03, 0x00, 0x00, 0xC0, -0x03, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xFF, -0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x0F, 0xC0, -0x08, 0x18, 0x07, 0x00, 0x08, 0x0C, 0x07, 0x00, -0x00, 0x00, 0x0F, 0x00, 0x08, 0x00, 0x04, 0x00, -0xFF, 0x60, 0x0F, 0x00, 0x3F, 0xD8, 0x0F, 0x00, -0xFF, 0x60, 0x07, 0x00, 0x3F, 0xD8, 0x0D, 0x00, -0xFF, 0xDE, 0x07, 0x00, 0xBF, 0xF7, 0x0D, 0x00, -0x00, 0xC0, 0x0F, 0x00, 0x00, 0x00, 0x7C, 0x00, -0x00, 0xF0, 0x01, 0x00, 0x5E, 0x00, 0xA1, 0xFF, -0x00, 0x00, 0xFF, 0x1F, 0xFF, 0x1F, 0x00, 0x04, -0x00, 0x00, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x30, -0xF0, 0x00, 0x04, 0x00, 0xF0, 0x00, 0x04, 0x04, -0xF0, 0x00, 0x04, 0x08, 0xF0, 0x00, 0x04, 0x01, -0xF0, 0x00, 0x04, 0x05, 0xF0, 0x00, 0x04, 0x09, -0xF0, 0x00, 0x04, 0x02, 0xF0, 0x00, 0x04, 0x06, -0xF0, 0x00, 0x04, 0x0A, 0xF0, 0x00, 0x04, 0x03, -0xF0, 0x00, 0x04, 0x07, 0xF0, 0x00, 0x04, 0x0B, -0xF0, 0x00, 0x04, 0x0C, 0xF0, 0x00, 0x04, 0x10, -0xF0, 0x00, 0x04, 0x0D, 0xF0, 0x00, 0x04, 0x11, -0xF0, 0x00, 0x04, 0x0E, 0xF0, 0x00, 0x04, 0x12, -0xF0, 0x00, 0x04, 0x0F, 0xF0, 0x00, 0x04, 0x13, -0x00, 0x00, 0x06, 0x00, 0x01, 0x00, 0x06, 0x00, -0xF0, 0x00, 0x09, 0x00, 0x17, 0x00, 0x05, 0x00, -0x00, 0xC0, 0x07, 0x00, 0x00, 0x00, 0x10, 0x1F, -0x00, 0x00, 0x0D, 0x1F, 0x0B, 0x17, 0x23, 0x3B, -0x47, 0x53, 0x5F, 0x77, 0x00, 0x48, 0x08, 0x00, -0x01, 0x48, 0x08, 0x00, 0xFF, 0xFF, 0xFF, 0x0F, -0x80, 0x66, 0x06, 0x01, 0x10, 0x13, 0x00, 0x80, -0xDB, 0x00, 0x00, 0x81, 0xDB, 0x00, 0x00, 0x01, -0x00, 0x00, 0x02, 0x05, 0x0C, 0x19, 0x00, 0x82, -0x0C, 0x19, 0x00, 0x02, 0x14, 0xEE, 0x01, 0x83, -0x14, 0xEE, 0x01, 0x03, 0x08, 0x00, 0x02, 0x05, -0x3F, 0x00, 0x00, 0xC0, 0x14, 0x3E, 0x03, 0x00, -0xFF, 0xFF, 0xFF, 0x03, 0x12, 0x33, 0x03, 0x00, -0x11, 0x33, 0x03, 0x00, 0x12, 0x11, 0x01, 0x00, -0x31, 0xC9, 0x62, 0x49, 0x55, 0x24, 0x01, 0xFF, -0xC8, 0xFE, 0x18, 0x3E, 0xDE, 0xF0, 0xFA, 0x00, -0x44, 0x23, 0x12, 0x00, 0x00, 0xF0, 0x1F, 0x00, -0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0xF0, 0x00, -0x3F, 0xFF, 0xFE, 0xDF, 0x00, 0x00, 0x60, 0x00, -0x00, 0xFF, 0x0F, 0x00, 0x01, 0x80, 0x03, 0x70, -0x01, 0x80, 0x53, 0x70, 0x01, 0x80, 0x73, 0x70, -0x01, 0x80, 0x83, 0x70, 0x01, 0x80, 0x93, 0x70, -0x01, 0x80, 0xA3, 0x70, 0x01, 0x80, 0xB3, 0x70, -0x01, 0x80, 0xC3, 0x70, 0x01, 0x80, 0xD3, 0x70, -0x01, 0x80, 0xE3, 0x70, 0x01, 0x80, 0xF3, 0x70, -0x01, 0x80, 0x0B, 0x70, 0x01, 0x80, 0x5B, 0x70, -0x01, 0x80, 0x7B, 0x70, 0x01, 0x80, 0x8B, 0x70, -0x01, 0x80, 0x9B, 0x70, 0x01, 0x80, 0xAB, 0x70, -0x01, 0x80, 0xBB, 0x70, 0x01, 0x80, 0xCB, 0x70, -0x01, 0x80, 0xDB, 0x70, 0x01, 0x80, 0xEB, 0x70, -0x01, 0x80, 0xFB, 0x70, 0x00, 0x00, 0x00, 0x7F, -0x00, 0x00, 0x7F, 0x00, 0x00, 0xFC, 0x01, 0x00, -0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, -0x00, 0xFC, 0xF8, 0xFF, 0x00, 0x01, 0x01, 0x00, -0x00, 0x00, 0x00, 0x3F, 0x18, 0x00, 0x70, 0xB8, -0x0B, 0x00, 0x70, 0xB8, 0x02, 0x00, 0x70, 0xB8, -0x94, 0x02, 0x64, 0xB8, 0x97, 0x02, 0x64, 0xB8, -0x84, 0x02, 0x64, 0xB8, 0x00, 0xFF, 0xFF, 0x00, -0x06, 0x00, 0x66, 0xB8, 0x50, 0x02, 0x64, 0xB8, -0x48, 0x02, 0x64, 0xB8, 0x00, 0x00, 0x07, 0x00, -0x74, 0x00, 0x18, 0x2E, 0x74, 0x00, 0x19, 0x2E, -0x01, 0x00, 0x60, 0xB8, 0x01, 0x00, 0x64, 0xB8, -0xCF, 0x01, 0x64, 0xB8, 0x34, 0x01, 0x64, 0xB8, -0x64, 0x05, 0x64, 0xB8, 0x60, 0x05, 0x64, 0xB8, -0xC8, 0x01, 0x64, 0xB8, 0xC9, 0x01, 0x64, 0xB8, -0x0C, 0xEA, 0xEF, 0xFD, 0xA0, 0x01, 0x64, 0xB8, -0x48, 0x00, 0x60, 0xB8, 0x47, 0x00, 0x60, 0xB8, -0x46, 0x00, 0x60, 0xB8, 0x63, 0x00, 0x60, 0xB8, -0x62, 0x00, 0x60, 0xB8, 0x45, 0x00, 0x60, 0xB8, -0x61, 0x00, 0x60, 0xB8, 0xC6, 0x01, 0x64, 0xB8, -0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x05, -0x64, 0x01, 0x64, 0xB8, 0x53, 0x05, 0x64, 0xB8, -0x94, 0x01, 0x64, 0xB8, 0x00, 0x1C, 0x66, 0xB8, -0x54, 0x00, 0x60, 0xB8, 0x24, 0x11, 0x64, 0xB8, -0x2C, 0x11, 0x64, 0xB8, 0x34, 0x11, 0x64, 0xB8, -0x3C, 0x11, 0x64, 0xB8, 0xE4, 0x11, 0x64, 0xB8, -0x00, 0x40, 0xE0, 0x03, 0x01, 0x60, 0x00, 0x03, -0xE0, 0x12, 0x64, 0xB8, 0x2F, 0x01, 0x64, 0xB8, -0xE8, 0x10, 0x60, 0xB8, 0x00, 0x3C, 0x64, 0xB8, -0x00, 0x4C, 0x64, 0xB8, 0x00, 0x58, 0x64, 0xB8, -0x00, 0x5C, 0x64, 0xB8, 0xF8, 0x05, 0x64, 0xB8, -0x83, 0x00, 0x60, 0xB8, 0x08, 0x01, 0x64, 0xB8, -0x90, 0x00, 0x60, 0xB8, 0x92, 0x06, 0x64, 0xB8, -0x00, 0x10, 0x60, 0xB8, 0x92, 0x00, 0x60, 0xB8, -0x1F, 0x07, 0x64, 0xB8, 0x1C, 0x07, 0x64, 0xB8, -0x2C, 0x04, 0x64, 0xB8, 0x2E, 0x04, 0x64, 0xB8, -0xB8, 0x05, 0x64, 0xB8, 0xBC, 0x05, 0x64, 0xB8, -0x5F, 0x11, 0x64, 0xB8, 0xFE, 0xFF, 0xFF, 0x7F, -0x30, 0x00, 0x78, 0x18, 0x7E, 0x04, 0x64, 0xB8, -0x20, 0x04, 0x64, 0xB8, 0xAC, 0x04, 0x64, 0xB8, -0x08, 0x10, 0x66, 0xB8, 0x00, 0x10, 0x66, 0xB8, -0x04, 0x10, 0x66, 0xB8, 0x0C, 0x10, 0x66, 0xB8, -0x7C, 0x04, 0x64, 0xB8, 0xF4, 0x00, 0x60, 0xB8, -0x71, 0x00, 0x60, 0xB8, 0xE4, 0x00, 0x60, 0xB8, -0xE6, 0x00, 0x60, 0xB8, 0xE8, 0x00, 0x60, 0xB8, -0xE9, 0x00, 0x60, 0xB8, 0xEA, 0x00, 0x60, 0xB8, -0xEB, 0x00, 0x60, 0xB8, 0xE5, 0x00, 0x60, 0xB8, -0x44, 0x00, 0x02, 0x00, 0xA0, 0x07, 0x64, 0xB8, -0x00, 0x00, 0x60, 0x06, 0x00, 0x00, 0x60, 0x02, -0xFF, 0xFF, 0xBF, 0xFD, 0x00, 0x00, 0x40, 0x02, -0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, -0xBC, 0x01, 0x64, 0xB8, 0x9A, 0x01, 0x64, 0xB8, -0x98, 0x01, 0x64, 0xB8, 0xD0, 0x05, 0x64, 0xB8, -0x08, 0x02, 0x64, 0xB8, 0x7B, 0x05, 0x64, 0xB8, -0x73, 0x05, 0x64, 0xB8, 0xD4, 0x04, 0x60, 0xB8, -0xD4, 0x04, 0x64, 0xB8, 0x84, 0x04, 0x60, 0xB8, -0x84, 0x04, 0x64, 0xB8, 0xC8, 0x04, 0x60, 0xB8, -0xC8, 0x04, 0x64, 0xB8, 0x78, 0x04, 0x60, 0xB8, -0x78, 0x04, 0x64, 0xB8, 0x00, 0x90, 0x01, 0x00, -0x01, 0x01, 0x64, 0xB8, 0x70, 0x00, 0x60, 0xB8, -0x0D, 0xEA, 0xEF, 0xFD, 0x04, 0xEA, 0xEF, 0xFD, -0xA0, 0x06, 0x64, 0xB8, 0x18, 0x11, 0x64, 0xB8, -0xFF, 0xFF, 0xFB, 0xFF, 0x9C, 0x02, 0x64, 0xB8, -0xA0, 0x02, 0x64, 0xB8, 0xA0, 0x34, 0x00, 0xB8, -0x00, 0x52, 0x00, 0xB8, 0x04, 0x52, 0x00, 0xB8, -0x08, 0x52, 0x00, 0xB8, 0x0C, 0x52, 0x00, 0xB8, -0x10, 0x52, 0x00, 0xB8, 0x30, 0x52, 0x00, 0xB8, -0x3C, 0x50, 0x00, 0xB8, 0x4C, 0x04, 0x64, 0xB8, -0x50, 0x04, 0x64, 0xB8, 0x04, 0x06, 0x64, 0xB8, -0xFF, 0xFF, 0xFF, 0xFE, 0x60, 0x16, 0x64, 0xB8, -0xFF, 0xFF, 0x00, 0xF0, 0x00, 0x00, 0x30, 0x80, -0x00, 0x12, 0x00, 0x04, 0x03, 0x00, 0x78, 0xB8, -0xFF, 0xFF, 0x01, 0xFF, 0x12, 0x05, 0x64, 0xB8, -0x10, 0x05, 0x64, 0xB8, 0x04, 0x18, 0x66, 0xB8, -0x00, 0x18, 0x66, 0xB8, 0xFF, 0xFF, 0xFF, 0x3F, -0x10, 0x00, 0x66, 0xB8, 0x11, 0x00, 0x66, 0xB8, -0x12, 0x00, 0x66, 0xB8, 0x13, 0x00, 0x66, 0xB8, -0x14, 0x00, 0x66, 0xB8, 0x15, 0x00, 0x66, 0xB8, -0xD4, 0x07, 0x64, 0xB8, 0xBC, 0x06, 0x64, 0xB8, -0x5F, 0x73, 0x75, 0x62, 0x00, 0x00, 0x00, 0x00, -0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xF2, 0x01, -0x01, 0x80, 0x0B, 0x70, 0x01, 0x80, 0x0B, 0x70, -0x01, 0x40, 0x14, 0x70, 0x01, 0x40, 0x24, 0x70, -0x01, 0x40, 0x34, 0x70, 0x01, 0x40, 0x44, 0x70, -0x01, 0x80, 0x5B, 0x70, 0x01, 0x40, 0x64, 0x70, -0x01, 0x80, 0x7B, 0x70, 0x01, 0x80, 0x8B, 0x70, -0x01, 0x80, 0x9B, 0x70, 0x01, 0x80, 0xAB, 0x70, -0x01, 0x80, 0xBB, 0x70, 0x01, 0x80, 0xCB, 0x70, -0x01, 0x80, 0xDB, 0x70, 0x01, 0x80, 0xEB, 0x70, -0x01, 0x80, 0xFB, 0x70, 0x01, 0x80, 0xFB, 0x70, -0x01, 0x80, 0x0B, 0x70, 0x01, 0x80, 0x0B, 0x70, -0x01, 0x40, 0x14, 0x70, 0x01, 0x40, 0x24, 0x70, -0x01, 0x40, 0x34, 0x70, 0x01, 0x40, 0x44, 0x70, -0x01, 0x80, 0x5B, 0x70, 0x01, 0x40, 0x64, 0x70, -0x01, 0x80, 0x7B, 0x70, 0x01, 0x80, 0x8B, 0x70, -0x01, 0x80, 0x9B, 0x70, 0x01, 0x80, 0xAB, 0x70, -0x01, 0x80, 0xBB, 0x70, 0x01, 0x80, 0xCB, 0x70, -0x01, 0x80, 0xDB, 0x70, 0x01, 0x80, 0xEB, 0x70, -0x01, 0x80, 0xFB, 0x70, 0x01, 0x80, 0xFB, 0x70, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, -0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x42, -0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x44, -0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x46, -0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x48, -0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x4A, -0x00, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00, 0x4C, -0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x4E, -0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x50, -0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x52, -0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x54, -0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x56, -0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x58, -0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x5A, -0x00, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x00, 0x5C, -0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x5E, -0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x60, -0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x62, -0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x64, -0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x66, -0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x68, -0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x6A, -0x00, 0x00, 0x00, 0x6B, 0x00, 0x00, 0x00, 0x6C, -0x00, 0x00, 0x00, 0x6D, 0x00, 0x00, 0x00, 0x6E, -0x00, 0x00, 0x00, 0x6F, 0x00, 0x00, 0x00, 0x70, -0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x72, -0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x74, -0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x76, -0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x78, -0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x7A, -0x00, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x7C, -0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x7E, -0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x80, -0x00, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, -0x08, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, -0x08, 0x00, 0xA7, 0x00, 0x00, 0x1B, 0x00, 0x00, -0x08, 0x00, 0x15, 0x00, 0x00, 0x1B, 0x00, 0x00, -0x08, 0x00, 0x00, 0x00, 0x04, 0x1B, 0x00, 0x00, -0x52, 0x29, 0x46, 0xE2, 0x08, 0x1B, 0x00, 0x00, -0x80, 0x00, 0x00, 0x00, 0x0C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x10, 0x1B, 0x00, 0x00, -0x00, 0x0C, 0x01, 0x00, 0x14, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x18, 0x1B, 0x00, 0x00, -0x03, 0x29, 0x29, 0x00, 0x1C, 0x1B, 0x00, 0x00, -0x32, 0xFC, 0x18, 0xA2, 0x20, 0x1B, 0x00, 0x00, -0x08, 0x00, 0x04, 0x01, 0x24, 0x1B, 0x00, 0x00, -0x08, 0x00, 0x06, 0x00, 0x28, 0x1B, 0x00, 0x00, -0x00, 0x03, 0x06, 0x00, 0x2C, 0x1B, 0x00, 0x00, -0x18, 0x00, 0x18, 0x00, 0x30, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x40, 0x34, 0x1B, 0x00, 0x00, -0x00, 0x08, 0x00, 0x00, 0x38, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x40, 0x3C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x40, 0x98, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x9C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xC0, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x01, 0xCC, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xE4, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xEC, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x40, 0x40, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x40, 0x44, 0x1B, 0x00, 0x00, -0x64, 0x40, 0x00, 0x20, 0x48, 0x1B, 0x00, 0x00, -0x2D, 0x00, 0x05, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x60, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x10, 0x1F, 0x64, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x12, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x00, 0x50, 0x1B, 0x00, 0x00, -0xBE, 0x03, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x01, 0x50, 0x1B, 0x00, 0x00, -0x7A, 0x05, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x02, 0x50, 0x1B, 0x00, 0x00, -0xC8, 0x06, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x03, 0x50, 0x1B, 0x00, 0x00, -0xE0, 0x07, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x04, 0x50, 0x1B, 0x00, 0x00, -0xD5, 0x08, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x05, 0x50, 0x1B, 0x00, 0x00, -0xB2, 0x09, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x06, 0x50, 0x1B, 0x00, 0x00, -0x7D, 0x0A, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x07, 0x50, 0x1B, 0x00, 0x00, -0x3A, 0x0B, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x08, 0x50, 0x1B, 0x00, 0x00, -0xEB, 0x0B, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x09, 0x50, 0x1B, 0x00, 0x00, -0x92, 0x0C, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x0A, 0x50, 0x1B, 0x00, 0x00, -0x31, 0x0D, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x0B, 0x50, 0x1B, 0x00, 0x00, -0xC9, 0x0D, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x0C, 0x50, 0x1B, 0x00, 0x00, -0x5A, 0x0E, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x0D, 0x50, 0x1B, 0x00, 0x00, -0xE6, 0x0E, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x0E, 0x50, 0x1B, 0x00, 0x00, -0x6D, 0x0F, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x0F, 0x50, 0x1B, 0x00, 0x00, -0xF0, 0x0F, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x10, 0x50, 0x1B, 0x00, 0x00, -0x6F, 0x10, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x11, 0x50, 0x1B, 0x00, 0x00, -0xE9, 0x10, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x12, 0x50, 0x1B, 0x00, 0x00, -0x61, 0x11, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x13, 0x50, 0x1B, 0x00, 0x00, -0xD5, 0x11, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x14, 0x50, 0x1B, 0x00, 0x00, -0x47, 0x12, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x15, 0x50, 0x1B, 0x00, 0x00, -0xB5, 0x12, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x16, 0x50, 0x1B, 0x00, 0x00, -0x22, 0x13, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x17, 0x50, 0x1B, 0x00, 0x00, -0x8B, 0x13, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x18, 0x50, 0x1B, 0x00, 0x00, -0xF3, 0x13, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x19, 0x50, 0x1B, 0x00, 0x00, -0x59, 0x14, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x1A, 0x50, 0x1B, 0x00, 0x00, -0xBD, 0x14, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x1B, 0x50, 0x1B, 0x00, 0x00, -0x1E, 0x15, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x1C, 0x50, 0x1B, 0x00, 0x00, -0x7F, 0x15, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x1D, 0x50, 0x1B, 0x00, 0x00, -0xDD, 0x15, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x1E, 0x50, 0x1B, 0x00, 0x00, -0x3A, 0x16, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x1F, 0x50, 0x1B, 0x00, 0x00, -0x95, 0x16, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x20, 0x50, 0x1B, 0x00, 0x00, -0xEF, 0x16, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x21, 0x50, 0x1B, 0x00, 0x00, -0x48, 0x17, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x22, 0x50, 0x1B, 0x00, 0x00, -0x9F, 0x17, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x23, 0x50, 0x1B, 0x00, 0x00, -0xF5, 0x17, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x24, 0x50, 0x1B, 0x00, 0x00, -0x4A, 0x18, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x25, 0x50, 0x1B, 0x00, 0x00, -0x9E, 0x18, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x26, 0x50, 0x1B, 0x00, 0x00, -0xF1, 0x18, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x27, 0x50, 0x1B, 0x00, 0x00, -0x42, 0x19, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x28, 0x50, 0x1B, 0x00, 0x00, -0x93, 0x19, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x29, 0x50, 0x1B, 0x00, 0x00, -0xE2, 0x19, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x2A, 0x50, 0x1B, 0x00, 0x00, -0x31, 0x1A, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x2B, 0x50, 0x1B, 0x00, 0x00, -0x7F, 0x1A, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x2C, 0x50, 0x1B, 0x00, 0x00, -0xCC, 0x1A, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x2D, 0x50, 0x1B, 0x00, 0x00, -0x18, 0x1B, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x2E, 0x50, 0x1B, 0x00, 0x00, -0x63, 0x1B, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x2F, 0x50, 0x1B, 0x00, 0x00, -0xAD, 0x1B, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x30, 0x50, 0x1B, 0x00, 0x00, -0xF7, 0x1B, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x31, 0x50, 0x1B, 0x00, 0x00, -0x40, 0x1C, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x32, 0x50, 0x1B, 0x00, 0x00, -0x88, 0x1C, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x33, 0x50, 0x1B, 0x00, 0x00, -0xCF, 0x1C, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x34, 0x50, 0x1B, 0x00, 0x00, -0x16, 0x1D, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x35, 0x50, 0x1B, 0x00, 0x00, -0x5C, 0x1D, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x36, 0x50, 0x1B, 0x00, 0x00, -0xA2, 0x1D, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x37, 0x50, 0x1B, 0x00, 0x00, -0xE6, 0x1D, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x38, 0x50, 0x1B, 0x00, 0x00, -0x2B, 0x1E, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x39, 0x50, 0x1B, 0x00, 0x00, -0x6E, 0x1E, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x3A, 0x50, 0x1B, 0x00, 0x00, -0xB1, 0x1E, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x3B, 0x50, 0x1B, 0x00, 0x00, -0xF4, 0x1E, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x3C, 0x50, 0x1B, 0x00, 0x00, -0x35, 0x1F, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x3D, 0x50, 0x1B, 0x00, 0x00, -0x77, 0x1F, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x3E, 0x50, 0x1B, 0x00, 0x00, -0xB8, 0x1F, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x8A, 0x3F, 0x50, 0x1B, 0x00, 0x00, -0xF8, 0x1F, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x50, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x00, 0x5C, 0x1B, 0x00, 0x00, -0xFF, 0x3F, 0x6B, 0x3C, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x02, 0x5C, 0x1B, 0x00, 0x00, -0x0A, 0x39, 0xD9, 0x35, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x04, 0x5C, 0x1B, 0x00, 0x00, -0xD6, 0x32, 0xFE, 0x2F, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x06, 0x5C, 0x1B, 0x00, 0x00, -0x4F, 0x2D, 0xC6, 0x2A, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x08, 0x5C, 0x1B, 0x00, 0x00, -0x62, 0x28, 0x1F, 0x26, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x0A, 0x5C, 0x1B, 0x00, 0x00, -0xFD, 0x23, 0xFA, 0x21, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x0C, 0x5C, 0x1B, 0x00, 0x00, -0x13, 0x20, 0x48, 0x1E, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x0E, 0x5C, 0x1B, 0x00, 0x00, -0x96, 0x1C, 0xFD, 0x1A, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x10, 0x5C, 0x1B, 0x00, 0x00, -0x7B, 0x19, 0x0E, 0x18, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x12, 0x5C, 0x1B, 0x00, 0x00, -0xB5, 0x16, 0x70, 0x15, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x14, 0x5C, 0x1B, 0x00, 0x00, -0x3D, 0x14, 0x1B, 0x13, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x16, 0x5C, 0x1B, 0x00, 0x00, -0x0A, 0x12, 0x07, 0x11, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x18, 0x5C, 0x1B, 0x00, 0x00, -0x13, 0x10, 0x2D, 0x0F, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x1A, 0x5C, 0x1B, 0x00, 0x00, -0x54, 0x0E, 0x87, 0x0D, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x1C, 0x5C, 0x1B, 0x00, 0x00, -0xC5, 0x0C, 0x0E, 0x0C, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x1E, 0x5C, 0x1B, 0x00, 0x00, -0x62, 0x0B, 0xBF, 0x0A, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x20, 0x5C, 0x1B, 0x00, 0x00, -0x25, 0x0A, 0x93, 0x09, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x22, 0x5C, 0x1B, 0x00, 0x00, -0x0A, 0x09, 0x89, 0x08, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x24, 0x5C, 0x1B, 0x00, 0x00, -0x0F, 0x08, 0x9B, 0x07, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x26, 0x5C, 0x1B, 0x00, 0x00, -0x2E, 0x07, 0xC7, 0x06, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x28, 0x5C, 0x1B, 0x00, 0x00, -0x66, 0x06, 0x0B, 0x06, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x2A, 0x5C, 0x1B, 0x00, 0x00, -0xB4, 0x05, 0x63, 0x05, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x2C, 0x5C, 0x1B, 0x00, 0x00, -0x15, 0x05, 0xCD, 0x04, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x2E, 0x5C, 0x1B, 0x00, 0x00, -0x88, 0x04, 0x47, 0x04, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x30, 0x5C, 0x1B, 0x00, 0x00, -0x0A, 0x04, 0xD0, 0x03, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x32, 0x5C, 0x1B, 0x00, 0x00, -0x99, 0x03, 0x66, 0x03, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x34, 0x5C, 0x1B, 0x00, 0x00, -0x35, 0x03, 0x07, 0x03, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x36, 0x5C, 0x1B, 0x00, 0x00, -0xDC, 0x02, 0xB3, 0x02, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x38, 0x5C, 0x1B, 0x00, 0x00, -0x8C, 0x02, 0x68, 0x02, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x3A, 0x5C, 0x1B, 0x00, 0x00, -0x45, 0x02, 0x25, 0x02, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x3C, 0x5C, 0x1B, 0x00, 0x00, -0x06, 0x02, 0xE9, 0x01, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x3E, 0x5C, 0x1B, 0x00, 0x00, -0xCE, 0x01, 0xB4, 0x01, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x40, 0x5C, 0x1B, 0x00, 0x00, -0x9C, 0x01, 0x85, 0x01, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x42, 0x5C, 0x1B, 0x00, 0x00, -0x6F, 0x01, 0x5A, 0x01, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x44, 0x5C, 0x1B, 0x00, 0x00, -0x47, 0x01, 0x35, 0x01, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x46, 0x5C, 0x1B, 0x00, 0x00, -0x23, 0x01, 0x13, 0x01, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x48, 0x5C, 0x1B, 0x00, 0x00, -0x04, 0x01, 0xF5, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x4A, 0x5C, 0x1B, 0x00, 0x00, -0xE7, 0x00, 0xDA, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x4C, 0x5C, 0x1B, 0x00, 0x00, -0xCE, 0x00, 0xC3, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x4E, 0x5C, 0x1B, 0x00, 0x00, -0xB8, 0x00, 0xAE, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x50, 0x5C, 0x1B, 0x00, 0x00, -0xA4, 0x00, 0x9B, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x52, 0x5C, 0x1B, 0x00, 0x00, -0x92, 0x00, 0x8A, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x54, 0x5C, 0x1B, 0x00, 0x00, -0x82, 0x00, 0x7B, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x56, 0x5C, 0x1B, 0x00, 0x00, -0x74, 0x00, 0x6E, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x58, 0x5C, 0x1B, 0x00, 0x00, -0x67, 0x00, 0x62, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x5A, 0x5C, 0x1B, 0x00, 0x00, -0x5C, 0x00, 0x57, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x5C, 0x5C, 0x1B, 0x00, 0x00, -0x52, 0x00, 0x4E, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x5E, 0x5C, 0x1B, 0x00, 0x00, -0x49, 0x00, 0x45, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x60, 0x5C, 0x1B, 0x00, 0x00, -0x41, 0x00, 0x3E, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x62, 0x5C, 0x1B, 0x00, 0x00, -0x3A, 0x00, 0x37, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x01, 0x62, 0x00, 0x1B, 0x00, 0x00, -0x0A, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, -0x0A, 0x00, 0xA7, 0x00, 0x00, 0x1B, 0x00, 0x00, -0x0A, 0x00, 0x15, 0x00, 0x00, 0x1B, 0x00, 0x00, -0x0A, 0x00, 0x00, 0x00, 0x04, 0x1B, 0x00, 0x00, -0x52, 0x29, 0x46, 0xE2, 0x08, 0x1B, 0x00, 0x00, -0x80, 0x00, 0x00, 0x00, 0x0C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x10, 0x1B, 0x00, 0x00, -0x00, 0x0C, 0x01, 0x00, 0x14, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x18, 0x1B, 0x00, 0x00, -0x03, 0x29, 0x29, 0x00, 0x1C, 0x1B, 0x00, 0x00, -0x32, 0xFC, 0x18, 0xA2, 0x20, 0x1B, 0x00, 0x00, -0x08, 0x00, 0x04, 0x01, 0x24, 0x1B, 0x00, 0x00, -0x08, 0x00, 0x06, 0x00, 0x28, 0x1B, 0x00, 0x00, -0x00, 0x03, 0x06, 0x00, 0x2C, 0x1B, 0x00, 0x00, -0x18, 0x00, 0x18, 0x00, 0x30, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x40, 0x34, 0x1B, 0x00, 0x00, -0x00, 0x08, 0x00, 0x00, 0x38, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x40, 0x3C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x40, 0x98, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x9C, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xC0, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x01, 0xCC, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xE4, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xEC, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x40, 0x60, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x10, 0x1F, 0x64, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x12, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x00, 0x5C, 0x1B, 0x00, 0x00, -0xFF, 0x3F, 0x6B, 0x3C, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x02, 0x5C, 0x1B, 0x00, 0x00, -0x0A, 0x39, 0xD9, 0x35, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x04, 0x5C, 0x1B, 0x00, 0x00, -0xD6, 0x32, 0xFE, 0x2F, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x06, 0x5C, 0x1B, 0x00, 0x00, -0x4F, 0x2D, 0xC6, 0x2A, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x08, 0x5C, 0x1B, 0x00, 0x00, -0x62, 0x28, 0x1F, 0x26, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x0A, 0x5C, 0x1B, 0x00, 0x00, -0xFD, 0x23, 0xFA, 0x21, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x0C, 0x5C, 0x1B, 0x00, 0x00, -0x13, 0x20, 0x48, 0x1E, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x0E, 0x5C, 0x1B, 0x00, 0x00, -0x96, 0x1C, 0xFD, 0x1A, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x10, 0x5C, 0x1B, 0x00, 0x00, -0x7B, 0x19, 0x0E, 0x18, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x12, 0x5C, 0x1B, 0x00, 0x00, -0xB5, 0x16, 0x70, 0x15, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x14, 0x5C, 0x1B, 0x00, 0x00, -0x3D, 0x14, 0x1B, 0x13, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x16, 0x5C, 0x1B, 0x00, 0x00, -0x0A, 0x12, 0x07, 0x11, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x18, 0x5C, 0x1B, 0x00, 0x00, -0x13, 0x10, 0x2D, 0x0F, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x1A, 0x5C, 0x1B, 0x00, 0x00, -0x54, 0x0E, 0x87, 0x0D, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x1C, 0x5C, 0x1B, 0x00, 0x00, -0xC5, 0x0C, 0x0E, 0x0C, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x1E, 0x5C, 0x1B, 0x00, 0x00, -0x62, 0x0B, 0xBF, 0x0A, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x20, 0x5C, 0x1B, 0x00, 0x00, -0x25, 0x0A, 0x93, 0x09, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x22, 0x5C, 0x1B, 0x00, 0x00, -0x0A, 0x09, 0x89, 0x08, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x24, 0x5C, 0x1B, 0x00, 0x00, -0x0F, 0x08, 0x9B, 0x07, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x26, 0x5C, 0x1B, 0x00, 0x00, -0x2E, 0x07, 0xC7, 0x06, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x28, 0x5C, 0x1B, 0x00, 0x00, -0x66, 0x06, 0x0B, 0x06, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x2A, 0x5C, 0x1B, 0x00, 0x00, -0xB4, 0x05, 0x63, 0x05, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x2C, 0x5C, 0x1B, 0x00, 0x00, -0x15, 0x05, 0xCD, 0x04, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x2E, 0x5C, 0x1B, 0x00, 0x00, -0x88, 0x04, 0x47, 0x04, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x30, 0x5C, 0x1B, 0x00, 0x00, -0x0A, 0x04, 0xD0, 0x03, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x32, 0x5C, 0x1B, 0x00, 0x00, -0x99, 0x03, 0x66, 0x03, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x34, 0x5C, 0x1B, 0x00, 0x00, -0x35, 0x03, 0x07, 0x03, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x36, 0x5C, 0x1B, 0x00, 0x00, -0xDC, 0x02, 0xB3, 0x02, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x38, 0x5C, 0x1B, 0x00, 0x00, -0x8C, 0x02, 0x68, 0x02, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x3A, 0x5C, 0x1B, 0x00, 0x00, -0x45, 0x02, 0x25, 0x02, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x3C, 0x5C, 0x1B, 0x00, 0x00, -0x06, 0x02, 0xE9, 0x01, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x3E, 0x5C, 0x1B, 0x00, 0x00, -0xCE, 0x01, 0xB4, 0x01, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x40, 0x5C, 0x1B, 0x00, 0x00, -0x9C, 0x01, 0x85, 0x01, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x42, 0x5C, 0x1B, 0x00, 0x00, -0x6F, 0x01, 0x5A, 0x01, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x44, 0x5C, 0x1B, 0x00, 0x00, -0x47, 0x01, 0x35, 0x01, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x46, 0x5C, 0x1B, 0x00, 0x00, -0x23, 0x01, 0x13, 0x01, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x48, 0x5C, 0x1B, 0x00, 0x00, -0x04, 0x01, 0xF5, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x4A, 0x5C, 0x1B, 0x00, 0x00, -0xE7, 0x00, 0xDA, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x4C, 0x5C, 0x1B, 0x00, 0x00, -0xCE, 0x00, 0xC3, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x4E, 0x5C, 0x1B, 0x00, 0x00, -0xB8, 0x00, 0xAE, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x50, 0x5C, 0x1B, 0x00, 0x00, -0xA4, 0x00, 0x9B, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x52, 0x5C, 0x1B, 0x00, 0x00, -0x92, 0x00, 0x8A, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x54, 0x5C, 0x1B, 0x00, 0x00, -0x82, 0x00, 0x7B, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x56, 0x5C, 0x1B, 0x00, 0x00, -0x74, 0x00, 0x6E, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x58, 0x5C, 0x1B, 0x00, 0x00, -0x67, 0x00, 0x62, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x5A, 0x5C, 0x1B, 0x00, 0x00, -0x5C, 0x00, 0x57, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x5C, 0x5C, 0x1B, 0x00, 0x00, -0x52, 0x00, 0x4E, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x5E, 0x5C, 0x1B, 0x00, 0x00, -0x49, 0x00, 0x45, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x60, 0x5C, 0x1B, 0x00, 0x00, -0x41, 0x00, 0x3E, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x89, 0x62, 0x5C, 0x1B, 0x00, 0x00, -0x3A, 0x00, 0x37, 0x00, 0x58, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x01, 0x62, 0x00, 0x1B, 0x00, 0x00, -0x0C, 0x00, 0x00, 0x00, 0xD4, 0x1B, 0x00, 0x00, -0xF0, 0x00, 0x00, 0x00, 0xB8, 0x1B, 0x00, 0x00, -0x20, 0x20, 0x20, 0x20, 0xBC, 0x1B, 0x00, 0x00, -0x20, 0x20, 0x20, 0x20, 0xC0, 0x1B, 0x00, 0x00, -0x20, 0x20, 0x20, 0x20, 0xC4, 0x1B, 0x00, 0x00, -0x20, 0x20, 0x20, 0x20, 0xC8, 0x1B, 0x00, 0x00, -0x04, 0x04, 0x04, 0x04, 0xCC, 0x1B, 0x00, 0x00, -0x04, 0x04, 0x04, 0x04, 0xD0, 0x1B, 0x00, 0x00, -0x04, 0x04, 0x04, 0x04, 0xD8, 0x1B, 0x00, 0x00, -0x04, 0x04, 0x04, 0x04, 0xDC, 0x1B, 0x00, 0x00, -0x20, 0x20, 0x20, 0x20, 0xE0, 0x1B, 0x00, 0x00, -0x04, 0x04, 0x04, 0x04, 0xE4, 0x1B, 0x00, 0x00, -0x17, 0x2F, 0x47, 0x77, 0xE8, 0x1B, 0x00, 0x00, -0x8F, 0xA7, 0xBF, 0xEF, 0xEC, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xF0, 0x1B, 0x00, 0x00, -0x39, 0x19, 0x1F, 0x1F, 0x04, 0x1B, 0x00, 0x00, -0x5B, 0x00, 0x00, 0x00, 0x08, 0x1B, 0x00, 0x00, -0x00, 0xC0, 0x00, 0xB0, 0x5C, 0x1B, 0x00, 0x00, -0x5B, 0x00, 0x00, 0x00, 0x60, 0x1B, 0x00, 0x00, -0x00, 0xC0, 0x00, 0xB0, 0xB4, 0x1B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x15, 0xF0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, -0x15, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, -0x05, 0xF0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, -0x05, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, -0x10, 0xF0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, -0x10, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, -0xF5, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0xF0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, -0x00, 0xF0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, -0x15, 0xF0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, -0x15, 0xF0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, -0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, -0x15, 0xF0, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, -0x01, 0x02, 0x03, 0x06, 0x05, 0x06, 0x07, 0x08, -0x09, 0x0A, 0x0B, 0xFF, 0xFF, 0x00, 0x01, 0x02, -0x02, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, -0x28, 0x28, 0x32, 0x28, 0x1E, 0x19, 0x19, 0x19, -0x18, 0x18, 0x12, 0x0F, 0x1E, 0x1E, 0x19, 0x1E, -0x18, 0x16, 0x0C, 0x0C, 0x1E, 0x1E, 0x19, 0x1E, -0x18, 0x16, 0x0C, 0x0C, 0x1E, 0x1E, 0x19, 0x1C, -0x18, 0x14, 0x0C, 0x0A, 0x1E, 0x1E, 0x19, 0x1E, -0x19, 0x18, 0x0F, 0x0E, 0x1E, 0x1E, 0x1E, 0x1E, -0x1C, 0x16, 0x14, 0x12, 0x0C, 0x0A, 0x1E, 0x1E, -0x1E, 0x1E, 0x1A, 0x16, 0x12, 0x10, 0x0C, 0x0A, -0x1E, 0x1E, 0x1E, 0x1E, 0x18, 0x16, 0x0D, 0x0E, -0x0C, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, -0x0A, 0x0A, 0x0A, 0x0A, 0x12, 0x12, 0x14, 0x12, -0x0F, 0x0F, 0x0C, 0x0C, 0x09, 0x08, 0x08, 0x07, -0x0A, 0x0A, 0x09, 0x07, 0x07, 0x06, 0x05, 0x04, -0x0C, 0x0C, 0x0A, 0x0A, 0x09, 0x07, 0x07, 0x06, -0x0C, 0x0C, 0x0A, 0x0A, 0x09, 0x07, 0x07, 0x06, -0x0C, 0x0C, 0x0A, 0x0A, 0x09, 0x07, 0x07, 0x06, -0x0A, 0x0A, 0x08, 0x08, 0x08, 0x07, 0x07, 0x06, -0x04, 0x04, 0x0C, 0x0C, 0x0A, 0x0A, 0x09, 0x07, -0x07, 0x06, 0x05, 0x04, 0x0C, 0x0C, 0x0A, 0x0A, -0x09, 0x07, 0x07, 0x06, 0x05, 0x04, 0x0A, 0x0A, -0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, -0x02, 0x02, 0x02, 0x04, 0x02, 0x04, 0x06, 0x06, -0x08, 0x08, 0x09, 0x09, 0x03, 0x06, 0x08, 0x08, -0x0A, 0x0E, 0x10, 0x18, 0x05, 0x08, 0x08, 0x08, -0x0A, 0x0E, 0x10, 0x18, 0x05, 0x08, 0x08, 0x09, -0x10, 0x14, 0x1C, 0x20, 0x04, 0x06, 0x08, 0x0A, -0x10, 0x18, 0x18, 0x20, 0x03, 0x06, 0x08, 0x09, -0x10, 0x14, 0x1C, 0x24, 0x34, 0x3A, 0x05, 0x07, -0x09, 0x0A, 0x10, 0x14, 0x1C, 0x28, 0x34, 0x3C, -0x06, 0x08, 0x0A, 0x0C, 0x12, 0x18, 0x1E, 0x2E, -0x36, 0x40, 0x0A, 0x0C, 0x0C, 0x12, 0x16, 0x1C, -0x20, 0x2E, 0x36, 0x40, 0x2C, 0x00, 0x04, 0x00, -0x2D, 0x00, 0x2C, 0x01, 0x2D, 0x01, 0x2C, 0x02, -0x2E, 0x01, 0xFF, 0x00, 0x2D, 0x02, 0xFF, 0x00, -0x36, 0x2D, 0xFF, 0x36, 0x2E, 0xFF, 0x37, 0x2F, -0xFF, 0x38, 0x30, 0xFF, 0x39, 0x31, 0xFF, 0x3A, -0x32, 0xFF, 0x3A, 0x33, 0xFF, 0x3A, 0x34, 0xFF, -0x3A, 0x35, 0xFF, 0x3B, 0xFF, 0xFF, 0x37, 0x2E, -0xFF, 0x38, 0x30, 0xFF, 0x39, 0x31, 0xFF, 0x3A, -0x32, 0xFF, 0x3B, 0x35, 0xFF, 0x3C, 0xFF, 0xFF, -0x3D, 0xFF, 0xFF, 0x3E, 0xFF, 0xFF, 0x3F, 0xFF, -0xFF, 0xFF, 0xFF, 0xFF, 0x37, 0xFF, 0x2F, 0x39, -0xFF, 0x31, 0xFF, 0x3A, 0x33, 0xFF, 0x3B, 0x35, -0xFF, 0x3D, 0xFF, 0xFF, 0xFF, 0x3E, 0xFF, 0xFF, -0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, -0xFF, 0xFF, 0x00, 0x00, 0x0D, 0x14, 0xFF, 0x15, -0x0E, 0xFF, 0x15, 0x0F, 0xFF, 0x16, 0x10, 0xFF, -0x17, 0x11, 0xFF, 0x18, 0x12, 0xFF, 0x18, 0x13, -0xFF, 0x18, 0xFF, 0xFF, 0x15, 0x0E, 0xFF, 0x16, -0x10, 0xFF, 0x17, 0x10, 0xFF, 0x18, 0x11, 0xFF, -0x19, 0xFF, 0xFF, 0x1A, 0xFF, 0xFF, 0x1B, 0xFF, -0xFF, 0xFF, 0xFF, 0xFF, 0x15, 0x13, 0x0F, 0x17, -0x1E, 0x11, 0x18, 0x1F, 0x13, 0x20, 0x19, 0xFF, -0x21, 0x1B, 0xFF, 0x22, 0xFF, 0xFF, 0x23, 0xFF, -0xFF, 0xFF, 0xFF, 0xFF, 0x04, 0x04, 0x04, 0x36, -0x2C, 0xFF, 0x2D, 0xFF, 0xFF, 0x2E, 0x37, 0xFF, -0x38, 0x2F, 0xFF, 0x39, 0x30, 0xFF, 0x39, 0x31, -0xFF, 0x39, 0x32, 0xFF, 0x3A, 0x33, 0xFF, 0x3A, -0x34, 0xFF, 0x2D, 0x2C, 0xFF, 0x36, 0x2E, 0xFF, -0x37, 0x2F, 0xFF, 0x38, 0x30, 0xFF, 0x33, 0x39, -0xFF, 0x35, 0x3A, 0xFF, 0x3B, 0x34, 0xFF, 0x3C, -0x3B, 0xFF, 0x3D, 0x3C, 0xFF, 0x3E, 0x3D, 0xFF, -0x37, 0x2E, 0xFF, 0x38, 0x2F, 0xFF, 0x39, 0x31, -0xFF, 0x3A, 0xFF, 0xFF, 0xFF, 0x3B, 0xFF, 0xFF, -0x3C, 0xFF, 0xFF, 0x3D, 0x3C, 0xFF, 0x3F, 0xFF, -0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, -0x04, 0xFF, 0xFF, 0x0C, 0xFF, 0xFF, 0x0D, 0x14, -0xFF, 0x0E, 0x15, 0xFF, 0x16, 0x0F, 0xFF, 0x17, -0x10, 0xFF, 0x17, 0x11, 0xFF, 0x17, 0x12, 0xFF, -0x0D, 0x0C, 0xFF, 0x14, 0x0E, 0xFF, 0x15, 0x0F, -0xFF, 0x16, 0x10, 0xFF, 0x17, 0x12, 0xFF, 0x18, -0x13, 0xFF, 0x19, 0x13, 0xFF, 0x1A, 0x13, 0xFF, -0x14, 0x0E, 0xFF, 0x15, 0x1C, 0xFF, 0x17, 0x1D, -0x11, 0x18, 0x1E, 0x13, 0x19, 0x1F, 0x1E, 0x20, -0x1A, 0x1F, 0x21, 0x1B, 0x20, 0x22, 0x21, 0x1B, -0x01, 0x00, 0x02, 0x00, 0x05, 0x00, 0x0B, 0x00, -0x06, 0x00, 0x09, 0x00, 0x0C, 0x00, 0x12, 0x00, -0x18, 0x00, 0x24, 0x00, 0x30, 0x00, 0x36, 0x00, -0x0E, 0x00, 0x1B, 0x00, 0x29, 0x00, 0x36, 0x00, -0x51, 0x00, 0x6C, 0x00, 0x7A, 0x00, 0x87, 0x00, -0x1B, 0x00, 0x36, 0x00, 0x51, 0x00, 0x6C, 0x00, -0xA2, 0x00, 0xD8, 0x00, 0xF3, 0x00, 0x0E, 0x01, -0x29, 0x00, 0x51, 0x00, 0x7A, 0x00, 0xA2, 0x00, -0xF3, 0x00, 0x44, 0x01, 0x6D, 0x01, 0x95, 0x01, -0x36, 0x00, 0x6C, 0x00, 0xA2, 0x00, 0xD8, 0x00, -0x44, 0x01, 0xB0, 0x01, 0xE6, 0x01, 0x1C, 0x02, -0x0E, 0x00, 0x1B, 0x00, 0x29, 0x00, 0x36, 0x00, -0x51, 0x00, 0x6C, 0x00, 0x7A, 0x00, 0x87, 0x00, -0xA2, 0x00, 0xB4, 0x00, 0x1B, 0x00, 0x36, 0x00, -0x51, 0x00, 0x6C, 0x00, 0xA2, 0x00, 0xD8, 0x00, -0xF3, 0x00, 0x0E, 0x01, 0x44, 0x01, 0x68, 0x01, -0x29, 0x00, 0x51, 0x00, 0x7A, 0x00, 0xA2, 0x00, -0xF3, 0x00, 0x44, 0x01, 0x6C, 0x01, 0x95, 0x01, -0xE6, 0x01, 0x1C, 0x02, 0x36, 0x00, 0x6C, 0x00, -0xA2, 0x00, 0xD8, 0x00, 0x44, 0x01, 0xB0, 0x01, -0xE6, 0x01, 0x1C, 0x02, 0x88, 0x02, 0xD0, 0x02, -0x14, 0x14, 0x15, 0x15, 0x16, 0x17, 0x17, 0x18, -0x1C, 0x1C, 0x1C, 0x1C, 0x1D, 0x1D, 0x1E, 0x1E, -0x1C, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x20, 0x20, -0x36, 0x36, 0x37, 0x37, 0x38, 0x39, 0x39, 0x3A, -0x3A, 0x3A, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, -0x41, 0x41, 0x42, 0x42, 0x43, 0x43, 0x00, 0x00, -0x40, 0x40, 0x41, 0x42, 0x43, 0x44, 0x44, 0x44, -0x45, 0x46, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, -0x00, 0x00, 0x30, 0xC0, 0xE0, 0x00, 0x00, 0x00, -0x00, 0x0C, 0x0E, 0x38, 0x18, 0x00, 0x00, 0x00, -0x00, 0x83, 0x01, 0x06, 0x80, 0x03, 0x00, 0x00, -0x00, 0x00, 0x70, 0xE0, 0x00, 0x00, 0x00, 0x00, -0xCE, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x30, 0xF0, 0x21, 0x6C, 0x00, 0xF0, 0x00, 0x4C, -0xBC, 0x65, 0x94, 0xB8, 0x00, 0x65, 0x00, 0x6D, -0xFE, 0xF7, 0x1F, 0x4D, 0xAC, 0xEC, 0x94, 0xB9, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0xF4, -0x00, 0x6D, 0xAD, 0xEC, 0x40, 0x6D, 0xAD, 0xEC, -0x94, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x1F, 0xF7, 0x00, 0x6C, 0x8C, 0xB9, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x77, 0xF0, 0x20, 0x6C, -0x80, 0xF0, 0x80, 0x9C, 0x80, 0xF0, 0x20, 0x6E, -0xCC, 0xEC, 0x18, 0x24, 0x30, 0xF0, 0x21, 0x6C, -0xFC, 0xF7, 0x1C, 0x4C, 0x80, 0x9C, 0xBC, 0x65, -0x30, 0xF0, 0x21, 0x6C, 0xFC, 0xF7, 0x18, 0x4C, -0x80, 0x9C, 0xFC, 0x65, 0x9F, 0x67, 0x77, 0xF0, -0x24, 0x6D, 0xE0, 0xF2, 0x90, 0xDD, 0x9D, 0x67, -0x77, 0xF0, 0x24, 0x6D, 0xE0, 0xF2, 0x94, 0xDD, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6C, -0xC0, 0xF1, 0x14, 0x4C, 0x00, 0x6E, 0x30, 0xF0, -0x20, 0x6F, 0x41, 0xF7, 0x08, 0x4F, 0xC0, 0xDC, -0x04, 0x4C, 0xE3, 0xEC, 0xB8, 0x67, 0xFB, 0x2D, -0x30, 0xF0, 0x20, 0x6C, 0x26, 0xF3, 0x1C, 0x4C, -0x00, 0x6E, 0x30, 0xF0, 0x20, 0x6F, 0x8F, 0xF5, -0x10, 0x4F, 0xC0, 0xDC, 0x04, 0x4C, 0xE3, 0xEC, -0xB8, 0x67, 0xFB, 0x2D, 0x10, 0xF0, 0x23, 0x6C, -0xC0, 0xF0, 0x01, 0x4C, 0x00, 0xEC, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, 0x7C, 0x9B, -0x10, 0xF0, 0x23, 0x6A, 0xC0, 0xF0, 0x01, 0x4A, -0x40, 0xDB, 0x00, 0x1C, 0x80, 0x00, 0x80, 0x18, -0xD2, 0x58, 0x80, 0x18, 0xE2, 0x55, 0x80, 0x18, -0x09, 0x56, 0x80, 0x18, 0xA3, 0x58, 0x80, 0x18, -0x23, 0x56, 0x80, 0x18, 0x9A, 0x58, 0x00, 0x18, -0xD7, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, -0x54, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, -0x20, 0x69, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, -0x30, 0xF0, 0x21, 0x6A, 0x41, 0xF7, 0x08, 0x4C, -0x1D, 0xF0, 0x00, 0x4A, 0x43, 0xDC, 0xE0, 0xF7, -0x40, 0x98, 0x00, 0x6D, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xA6, 0xF3, 0x48, 0xDB, 0x01, 0xF0, -0x50, 0x99, 0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF0, -0x10, 0x4C, 0x01, 0x6D, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xA6, 0xF3, 0x5C, 0xDB, 0x30, 0xF0, -0x20, 0x6C, 0x30, 0xF0, 0x21, 0x6A, 0xE1, 0xF7, -0x00, 0x4C, 0x1D, 0xF4, 0x00, 0x4A, 0x43, 0xDC, -0xE0, 0xF7, 0x40, 0x98, 0x00, 0x6D, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF3, 0x50, 0xDB, -0x01, 0xF0, 0x50, 0x99, 0x30, 0xF0, 0x20, 0x6C, -0x22, 0xF0, 0x0C, 0x4C, 0x01, 0x6D, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF3, 0x58, 0xDB, -0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x21, 0x6A, -0x81, 0xF7, 0x14, 0x4C, 0x1E, 0xF0, 0x00, 0x4A, -0x43, 0xDC, 0xE0, 0xF7, 0x40, 0x98, 0x00, 0x6D, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF3, -0x4C, 0xDB, 0x01, 0xF0, 0x50, 0x99, 0x30, 0xF0, -0x20, 0x6C, 0x00, 0x6D, 0x82, 0xF0, 0x04, 0x4C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF3, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x01, 0xF0, -0x44, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF0, -0x00, 0x4C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC6, 0xF3, 0x44, 0xDB, 0x30, 0xF0, 0x20, 0x6C, -0x30, 0xF0, 0x21, 0x6A, 0x22, 0xF0, 0x14, 0x4C, -0x1E, 0xF4, 0x00, 0x4A, 0x43, 0xDC, 0xE0, 0xF7, -0x40, 0x98, 0x00, 0x6D, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xA6, 0xF3, 0x54, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF0, 0x7C, 0x9A, 0xFF, 0xF7, -0x1F, 0x6C, 0x10, 0xF0, 0x00, 0x6D, 0x40, 0xAB, -0xAB, 0xED, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, -0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, -0x58, 0x9A, 0x40, 0xEA, 0x00, 0x1C, 0xAB, 0x39, -0xFF, 0x17, 0x00, 0x65, 0x6D, 0xB8, 0x00, 0x65, -0x00, 0xF0, 0x20, 0x6A, 0x7C, 0x4A, 0x6C, 0xEA, -0x1C, 0x22, 0x00, 0xF0, 0x20, 0x6B, 0x28, 0x4B, -0x6A, 0xEA, 0x0B, 0x61, 0x4E, 0xB8, 0x00, 0x65, -0x00, 0xF0, 0x20, 0x6B, 0x01, 0x4B, 0x6B, 0xE2, -0x60, 0xAA, 0xBF, 0xF6, 0x1A, 0x6A, 0x6A, 0xEA, -0x31, 0x60, 0x77, 0xF0, 0x24, 0x6A, 0xA0, 0xF1, -0x1C, 0x4A, 0x1D, 0xF4, 0x00, 0x6B, 0x60, 0xDA, -0x10, 0xF0, 0x23, 0x6A, 0xA1, 0xF4, 0x19, 0x4A, -0x00, 0xEA, 0x00, 0xF0, 0x20, 0x6A, 0x1F, 0xF7, -0x00, 0x6A, 0x4C, 0xEB, 0x4C, 0xB8, 0x00, 0x65, -0x6C, 0xEA, 0x42, 0x32, 0x30, 0xF0, 0x20, 0x6B, -0x00, 0xF0, 0x00, 0x4B, 0x49, 0xE3, 0x40, 0xA2, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF1, 0x08, 0x4B, -0x69, 0xE2, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, -0x04, 0x4B, 0x60, 0x9B, 0x05, 0x2B, 0x10, 0xF0, -0x23, 0x6B, 0x00, 0xF4, 0x09, 0x4B, 0x00, 0xEB, -0x10, 0xF0, 0x23, 0x6B, 0x80, 0xF4, 0x1D, 0x4B, -0x00, 0xEB, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF1, 0x14, 0x4A, 0x00, 0xF0, 0x20, 0x6B, -0x01, 0x6B, 0x60, 0xDA, 0x10, 0xF0, 0x23, 0x6B, -0xC0, 0xF2, 0x11, 0x4B, 0x00, 0xEB, 0x00, 0x65, -0x5A, 0xB8, 0x00, 0x65, 0x7B, 0xB8, 0x00, 0x65, -0x40, 0xE8, 0x5A, 0xB9, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x7B, 0xB9, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF1, -0x14, 0x4A, 0x00, 0xF0, 0x20, 0x6B, 0x60, 0xDA, -0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF1, 0x0C, 0x4A, -0x60, 0x9A, 0x41, 0x9A, 0x6A, 0xEA, 0x0D, 0x61, -0x6E, 0xB8, 0x00, 0x65, 0x62, 0x43, 0xCB, 0xB9, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x5A, 0xB8, -0x00, 0x65, 0x7B, 0xB8, 0x00, 0x65, 0x00, 0xBA, -0x00, 0x65, 0x36, 0x23, 0xDF, 0xF7, 0x00, 0x03, -0x86, 0xDB, 0xA7, 0xDB, 0xC8, 0xDB, 0xE9, 0xDB, -0x0A, 0xDB, 0x2B, 0xDB, 0x98, 0x67, 0x8C, 0xDB, -0x9F, 0x67, 0x8E, 0xDB, 0x12, 0xEC, 0x10, 0xED, -0x82, 0xDB, 0xA3, 0xDB, 0x9A, 0xB8, 0x00, 0x65, -0x84, 0xDB, 0x9B, 0xB8, 0x00, 0x65, 0x85, 0xDB, -0x8E, 0xB8, 0x00, 0x65, 0x82, 0x44, 0x81, 0xDB, -0x8C, 0xB8, 0x00, 0x65, 0x80, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0xE0, 0xF1, 0x0C, 0x4B, 0x60, 0x9B, -0x9D, 0x67, 0x89, 0xDB, 0x6A, 0x9B, 0xCF, 0xF7, -0x80, 0x44, 0x62, 0xEC, 0x0D, 0x60, 0x77, 0xF0, -0x24, 0x6C, 0xA0, 0xF1, 0x1C, 0x4C, 0x1D, 0xF4, -0x01, 0x6B, 0x60, 0xDC, 0x10, 0xF0, 0x23, 0x6C, -0xA1, 0xF4, 0x19, 0x4C, 0x00, 0xEC, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF1, 0x0C, 0x4B, -0x41, 0x9B, 0x40, 0xDB, 0x89, 0x9A, 0xBC, 0x65, -0x7D, 0x67, 0xDF, 0xF7, 0x00, 0x03, 0x4C, 0xB8, -0x00, 0x65, 0x00, 0xF0, 0x20, 0x6D, 0x05, 0x4D, -0xAF, 0xED, 0xAC, 0xEA, 0xA0, 0x9B, 0x04, 0x6C, -0x8C, 0xED, 0xAD, 0xEA, 0x82, 0x9B, 0xA3, 0x9B, -0x32, 0xEC, 0x30, 0xED, 0x8E, 0x9B, 0xFC, 0x65, -0x8C, 0x9B, 0x1C, 0x65, 0x84, 0x9B, 0x5C, 0xB9, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x85, 0x9B, -0x7C, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x2B, 0x9B, 0x0A, 0x9B, 0xE9, 0x9B, 0xC8, 0x9B, -0xA7, 0x9B, 0x86, 0x9B, 0x61, 0x9B, 0xCB, 0xB9, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x8A, 0xB9, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x7B, 0xB8, -0x00, 0x65, 0x5A, 0xB8, 0x00, 0x65, 0x00, 0xBA, -0xDF, 0xF7, 0x00, 0x03, 0x86, 0xDB, 0xA7, 0xDB, -0xC8, 0xDB, 0xE9, 0xDB, 0x0A, 0xDB, 0x2B, 0xDB, -0x98, 0x67, 0x8C, 0xDB, 0x9F, 0x67, 0x8E, 0xDB, -0x12, 0xEC, 0x10, 0xED, 0x82, 0xDB, 0xA3, 0xDB, -0x9A, 0xB8, 0x00, 0x65, 0x84, 0xDB, 0x9B, 0xB8, -0x00, 0x65, 0x85, 0xDB, 0x7D, 0x67, 0x5B, 0xB9, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x40, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0x41, 0xF3, 0x08, 0x4C, -0x00, 0xF4, 0x00, 0x4C, 0xBC, 0x65, 0x82, 0x67, -0x40, 0xEA, 0x00, 0x65, 0x7A, 0xB8, 0x00, 0x65, -0xBB, 0x65, 0xDF, 0xF7, 0x00, 0x03, 0x82, 0x9B, -0xA3, 0x9B, 0x32, 0xEC, 0x30, 0xED, 0x8E, 0x9B, -0xFC, 0x65, 0x8C, 0x9B, 0x1C, 0x65, 0x84, 0x9B, -0x5C, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x85, 0x9B, 0x7C, 0xB9, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x2B, 0x9B, 0x0A, 0x9B, 0xE9, 0x9B, -0xC8, 0x9B, 0xA7, 0x9B, 0x86, 0x9B, 0x5A, 0xB8, -0x00, 0x65, 0x7B, 0xB8, 0x00, 0x65, 0x00, 0xBA, -0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF1, 0x14, 0x4B, 0x40, 0xDB, 0xDF, 0xF7, -0x00, 0x03, 0x86, 0xDB, 0xA7, 0xDB, 0xC8, 0xDB, -0xE9, 0xDB, 0x0A, 0xDB, 0x2B, 0xDB, 0x98, 0x67, -0x8C, 0xDB, 0x9F, 0x67, 0x8E, 0xDB, 0x12, 0xEC, -0x10, 0xED, 0x82, 0xDB, 0xA3, 0xDB, 0x9A, 0xB8, -0x00, 0x65, 0x84, 0xDB, 0x9B, 0xB8, 0x00, 0x65, -0x85, 0xDB, 0x8E, 0xB8, 0x00, 0x65, 0x81, 0xDB, -0x8C, 0xB8, 0x00, 0x65, 0x80, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0xE0, 0xF1, 0x0C, 0x4B, 0x60, 0x9B, -0x9D, 0x67, 0x89, 0xDB, 0x6A, 0x9B, 0xCF, 0xF7, -0x80, 0x44, 0x62, 0xEC, 0x0D, 0x60, 0x77, 0xF0, -0x24, 0x6C, 0xA0, 0xF1, 0x1C, 0x4C, 0x1D, 0xF4, -0x01, 0x6B, 0x60, 0xDC, 0x10, 0xF0, 0x23, 0x6C, -0xA1, 0xF4, 0x19, 0x4C, 0x00, 0xEC, 0x00, 0x65, -0x40, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x41, 0xF3, -0x08, 0x4C, 0x00, 0xF4, 0x00, 0x4C, 0xBC, 0x65, -0x82, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, -0xC0, 0xF1, 0x14, 0x4C, 0x00, 0xF0, 0x20, 0x6D, -0xA0, 0xDC, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF1, -0x0C, 0x4A, 0x10, 0xF0, 0x23, 0x6B, 0x40, 0xF5, -0x05, 0x4B, 0x00, 0xEB, 0x61, 0x9A, 0x60, 0xDA, -0x49, 0x9B, 0xBA, 0x65, 0xDF, 0xF7, 0x00, 0x03, -0x4C, 0xB8, 0x00, 0x65, 0x00, 0xF0, 0x20, 0x6D, -0x05, 0x4D, 0xAF, 0xED, 0xAC, 0xEA, 0xA0, 0x9B, -0x00, 0xF0, 0x20, 0x6C, 0x04, 0x4C, 0x8C, 0xED, -0xAD, 0xEA, 0x82, 0x9B, 0xA3, 0x9B, 0x32, 0xEC, -0x30, 0xED, 0x8E, 0x9B, 0xFC, 0x65, 0x8C, 0x9B, -0x1C, 0x65, 0x84, 0x9B, 0x5C, 0xB9, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x85, 0x9B, 0x7C, 0xB9, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x2B, 0x9B, -0x0A, 0x9B, 0xE9, 0x9B, 0xC8, 0x9B, 0xA7, 0x9B, -0x86, 0x9B, 0x61, 0x9B, 0xCB, 0xB9, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x8A, 0xB9, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x7B, 0xB8, 0x00, 0x65, -0x5A, 0xB8, 0x00, 0x65, 0x00, 0xBA, 0x00, 0x65, -0x5F, 0x67, 0x5A, 0xB9, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x18, 0x05, 0xC3, 0x00, 0x1C, -0xBA, 0x35, 0x5A, 0xB8, 0x00, 0x65, 0x00, 0xEA, -0x6D, 0xB8, 0x00, 0xF0, 0x20, 0x6A, 0x00, 0xF2, -0x00, 0x4A, 0x4F, 0xEA, 0x4C, 0xEB, 0xAB, 0xB9, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x5F, 0x67, -0x5A, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x00, 0x1C, 0x7D, 0x35, 0x5A, 0xB8, 0x00, 0x65, -0x00, 0xEA, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF2, 0x6C, 0x9B, 0xFF, 0x6A, 0x8C, 0xEA, -0x80, 0xA3, 0x10, 0x6B, 0x8C, 0xEB, 0x05, 0x23, -0xE2, 0xF1, 0x10, 0x4A, 0xE2, 0xF1, 0x10, 0x6B, -0x31, 0x10, 0x7F, 0x4A, 0x09, 0x4A, 0x88, 0x6B, -0x15, 0x10, 0x1F, 0xF7, 0x00, 0x6C, 0x6C, 0xEC, -0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, -0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF0, 0x98, 0x9C, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF0, -0x9C, 0x9C, 0xC0, 0xA5, 0x91, 0xE3, 0x01, 0x4D, -0xC0, 0xC4, 0x01, 0x4B, 0x4A, 0xEB, 0xE9, 0x61, -0x20, 0xE8, 0x1F, 0xF7, 0x00, 0x6C, 0x6C, 0xEC, -0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, -0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF0, 0x98, 0x9C, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF0, -0x9C, 0x9C, 0xC0, 0xA5, 0x91, 0xE3, 0x01, 0x4D, -0xC0, 0xC4, 0x01, 0x4B, 0x4A, 0xEB, 0xE9, 0x61, -0x20, 0xE8, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x4C, 0xED, -0x4C, 0xEC, 0xCC, 0xEA, 0x4B, 0xEA, 0xC0, 0xF7, -0x42, 0x32, 0x44, 0x32, 0x30, 0xF0, 0x20, 0x68, -0x04, 0xD2, 0xC0, 0xF3, 0x44, 0x98, 0x07, 0xD5, -0xA4, 0x36, 0x08, 0x6B, 0x01, 0x6D, 0x06, 0xD4, -0xAB, 0xED, 0x03, 0xF3, 0x00, 0x6C, 0x6D, 0xEE, -0x40, 0xEA, 0x06, 0x92, 0x0F, 0x2A, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF3, -0xBC, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x03, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, -0x5C, 0x9A, 0x0E, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF3, 0xBC, 0x9B, -0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x40, 0x9A, -0x05, 0xD2, 0x06, 0x92, 0x22, 0x68, 0x07, 0x93, -0x18, 0xEA, 0x44, 0x6A, 0x00, 0x69, 0x12, 0xE8, -0x58, 0xEB, 0x04, 0x93, 0x12, 0xEA, 0x41, 0xE0, -0x88, 0x6A, 0x58, 0xEB, 0x12, 0xEA, 0x41, 0xE0, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x01, 0xE2, 0xA8, 0xF5, 0x14, 0x48, 0xC0, 0xA8, -0x05, 0x92, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0x36, -0x4D, 0xEE, 0x28, 0x32, 0x4D, 0xEE, 0xC0, 0xF3, -0x44, 0x9B, 0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, -0xAB, 0xED, 0x02, 0x4E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF0, 0xB4, 0x9B, 0xC3, 0xF3, -0x18, 0x6C, 0x00, 0x6E, 0x01, 0x49, 0x40, 0xEA, -0x11, 0x71, 0x02, 0x48, 0xE0, 0x61, 0x06, 0x92, -0x22, 0x69, 0x07, 0x93, 0x38, 0xEA, 0x44, 0x6A, -0x12, 0xE9, 0x58, 0xEB, 0x04, 0x93, 0x12, 0xEA, -0x45, 0xE1, 0x88, 0x6A, 0x58, 0xEB, 0x12, 0xEA, -0x45, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x25, 0xE2, 0x00, 0x6A, 0xC8, 0xF6, -0x04, 0x49, 0x04, 0xD2, 0xC0, 0xA9, 0x05, 0x93, -0x04, 0x92, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0x36, -0x6D, 0xEE, 0x48, 0x33, 0xC0, 0xF3, 0x44, 0x98, -0x01, 0x6D, 0x6D, 0xEE, 0xC3, 0xF3, 0x18, 0x6C, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF0, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0xC3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x04, 0x93, 0x02, 0x49, 0x01, 0x4B, 0x11, 0x73, -0x04, 0xD3, 0xE0, 0x61, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF3, 0xD4, 0x9B, -0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x83, 0xF3, 0xBC, 0x9B, 0x23, 0xF3, -0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0x6A, 0x4C, 0xED, 0x4C, 0xEC, 0xCC, 0xEA, -0x4B, 0xEA, 0xC0, 0xF7, 0x42, 0x32, 0x30, 0xF0, -0x20, 0x68, 0x44, 0x32, 0xC0, 0xF3, 0x64, 0x98, -0x06, 0xD5, 0x04, 0xD2, 0xA4, 0x36, 0x08, 0x6A, -0x01, 0x6D, 0x05, 0xD4, 0x4D, 0xEE, 0x03, 0xF3, -0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, 0x05, 0x92, -0x0A, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x83, 0xF3, -0xBC, 0x9B, 0x03, 0x6E, 0x09, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF3, -0xBC, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF1, -0xA0, 0x9B, 0xC3, 0xF3, 0x14, 0x69, 0x91, 0x67, -0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF3, 0xB0, 0x9B, -0x91, 0x67, 0x10, 0x6E, 0x40, 0xEA, 0x05, 0x92, -0x22, 0x69, 0x06, 0x93, 0x38, 0xEA, 0x44, 0x6A, -0x12, 0xE9, 0x58, 0xEB, 0x04, 0x93, 0x12, 0xEA, -0x45, 0xE1, 0x88, 0x6A, 0x58, 0xEB, 0x12, 0xEA, -0x45, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x21, 0xE2, 0x25, 0xE2, 0x00, 0x6A, -0xA8, 0xF5, 0x14, 0x48, 0xC8, 0xF6, 0x04, 0x49, -0x04, 0xD2, 0x04, 0x93, 0x30, 0xF0, 0x20, 0x6A, -0x01, 0x6D, 0x68, 0x36, 0xC0, 0xF3, 0x64, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x54, 0x9A, -0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x4D, 0xEE, -0x40, 0xEB, 0x01, 0x6D, 0xE3, 0xF3, 0x1C, 0x6C, -0xAB, 0xED, 0x80, 0x18, 0x24, 0x39, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF3, 0x78, 0x9B, 0x4C, 0xEB, -0x62, 0x33, 0x62, 0x33, 0x60, 0xC8, 0xE1, 0xF7, -0x1F, 0x6B, 0x4C, 0xEB, 0x60, 0xC9, 0x04, 0x93, -0x02, 0x48, 0x02, 0x49, 0x01, 0x4B, 0x11, 0x73, -0x04, 0xD3, 0xD7, 0x61, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF3, 0xBC, 0x9B, 0x23, 0xF3, 0x00, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, -0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0x68, 0x0C, 0xEC, 0x01, 0x74, 0xAC, 0xE8, -0x80, 0xF0, 0x0F, 0x60, 0x07, 0x24, 0x02, 0x74, -0xA0, 0xF0, 0x01, 0x60, 0x03, 0x74, 0xA0, 0xF0, -0x02, 0x60, 0xA6, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xC8, 0xF7, 0x7C, 0x9A, -0x30, 0xF0, 0x20, 0x6D, 0x30, 0xF0, 0x20, 0x6C, -0xE8, 0xF7, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6F, -0x30, 0xF0, 0x20, 0x6B, 0x4F, 0xF5, 0x0C, 0x4D, -0x4F, 0xF5, 0x04, 0x4C, 0x4F, 0xF5, 0x00, 0x4B, -0x2F, 0xF3, 0x0E, 0x4F, 0x00, 0x69, 0x40, 0x9D, -0xE4, 0xF3, 0x08, 0x41, 0x04, 0x30, 0x42, 0xDD, -0x40, 0xAC, 0x05, 0xD7, 0x42, 0xCC, 0x40, 0xA3, -0x42, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x01, 0xE2, 0x00, 0x6A, 0x04, 0x48, -0x04, 0xD2, 0x40, 0xA0, 0x22, 0x6E, 0x07, 0xD3, -0x44, 0xC0, 0x04, 0x92, 0xD8, 0xEA, 0x44, 0x6A, -0x12, 0xEE, 0x58, 0xE9, 0x12, 0xEA, 0x49, 0xE6, -0x30, 0xF0, 0x20, 0x6E, 0x46, 0xF5, 0x18, 0x4E, -0x1A, 0x65, 0x49, 0xE6, 0xA8, 0xF5, 0x14, 0x4A, -0x06, 0xD2, 0x58, 0x67, 0x59, 0xE6, 0x06, 0x92, -0xC8, 0xF6, 0x04, 0x4E, 0x60, 0xAA, 0x80, 0xF0, -0x68, 0xCA, 0x60, 0xAE, 0x02, 0x4A, 0x80, 0xF0, -0x68, 0xCE, 0x05, 0x93, 0x02, 0x4E, 0x6A, 0xEA, -0xF5, 0x61, 0x04, 0x92, 0x07, 0x93, 0x01, 0x48, -0x01, 0x4A, 0x04, 0xD2, 0x05, 0x92, 0x22, 0x4A, -0x05, 0xD2, 0x04, 0x92, 0x02, 0x72, 0xD1, 0x61, -0x01, 0x49, 0x02, 0x71, 0x04, 0x4D, 0x02, 0x4C, -0x01, 0x4B, 0x44, 0x4F, 0xB8, 0x61, 0x30, 0xF0, -0x20, 0x6B, 0x4F, 0xF5, 0x00, 0x4B, 0x44, 0x43, -0xA7, 0x43, 0x16, 0x4D, 0xE2, 0x67, 0x00, 0x6C, -0x80, 0xC3, 0x01, 0x4B, 0x00, 0x6C, 0x01, 0x6E, -0xEA, 0xEB, 0x80, 0xCA, 0xFF, 0xF7, 0xC8, 0xC2, -0x20, 0xF0, 0x85, 0xC2, 0xFF, 0xF7, 0xC9, 0xC2, -0x20, 0xF0, 0x86, 0xC2, 0x80, 0xC5, 0x81, 0xC5, -0x82, 0xC5, 0x02, 0x4A, 0x03, 0x4D, 0xEB, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xE8, 0xF7, 0x64, 0x9A, 0xC8, 0xF7, 0x7C, 0xDA, -0x1F, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, -0xEC, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xB0, 0x67, -0x6E, 0xF6, 0x08, 0x4C, 0x58, 0x6E, 0x80, 0x18, -0x8E, 0x4E, 0xE2, 0xF1, 0x1C, 0x48, 0x30, 0xF0, -0x20, 0x6B, 0x08, 0x30, 0x46, 0xF5, 0x18, 0x4B, -0x6D, 0xE0, 0x41, 0xDB, 0x09, 0x10, 0x00, 0x6C, -0xB0, 0x67, 0xC4, 0x67, 0x03, 0x10, 0x01, 0x6C, -0xB0, 0x67, 0x00, 0x6E, 0x00, 0x18, 0x02, 0xC2, -0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, 0x01, 0x72, -0x14, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF4, -0xBC, 0x9B, 0x83, 0xF2, 0x1C, 0x6C, 0x01, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, -0x14, 0x6C, 0x00, 0xF3, 0x00, 0x6D, 0x00, 0x6E, -0x15, 0x10, 0x02, 0x72, 0x14, 0x61, 0x30, 0xF0, -0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x43, 0xF4, 0xBC, 0x9B, 0x83, 0xF2, -0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF2, 0x14, 0x6C, 0x00, 0xF3, -0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, 0x05, 0x97, -0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, -0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, 0x20, 0x68, -0x30, 0xF0, 0x20, 0x6C, 0x46, 0xF5, 0x18, 0x48, -0x26, 0xF6, 0x1F, 0x4C, 0x07, 0x6E, 0x40, 0xEA, -0xE0, 0xF0, 0x87, 0xA0, 0x00, 0x18, 0xC9, 0xD7, -0x05, 0xF3, 0x54, 0xA0, 0x1F, 0x6B, 0x01, 0x6C, -0x4A, 0x32, 0x6C, 0xEA, 0xE0, 0xF0, 0x67, 0xA0, -0x47, 0xEB, 0x8C, 0xEA, 0x03, 0x22, 0x05, 0xF3, -0x75, 0xC0, 0x04, 0x10, 0x01, 0x6A, 0x4B, 0xEA, -0x05, 0xF3, 0x55, 0xC0, 0x30, 0xF0, 0x20, 0x68, -0x46, 0xF5, 0x18, 0x48, 0x05, 0xF3, 0x74, 0xA0, -0x02, 0x6A, 0x6C, 0xEA, 0x1A, 0x22, 0x03, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0x05, 0xF3, 0x54, 0xC0, -0x00, 0x18, 0xB7, 0xDB, 0x04, 0xD2, 0x04, 0x93, -0x05, 0xF3, 0x58, 0x98, 0x6E, 0xEA, 0x03, 0x22, -0x04, 0x94, 0x00, 0x18, 0xD8, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x05, 0xF3, -0x94, 0xA2, 0x02, 0x6B, 0x8D, 0xEB, 0x05, 0xF3, -0x74, 0xC2, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, 0x90, 0x67, -0x00, 0x18, 0xEF, 0xCE, 0x90, 0x67, 0x00, 0x18, -0x84, 0xDD, 0x01, 0x6C, 0x00, 0x18, 0x43, 0xC7, -0x90, 0x67, 0x01, 0x6D, 0x00, 0x18, 0x6E, 0xCE, -0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x00, 0xF3, 0x44, 0x9A, 0x42, 0xF1, 0x18, 0x6C, -0x01, 0x6D, 0x02, 0x6E, 0x40, 0xEA, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0x20, 0xE8, 0x00, 0x65, -0xFF, 0x17, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF7, 0x60, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF7, 0x5C, 0x9A, -0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF1, +0x20, 0x6A, 0xC2, 0xF2, 0x4C, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF1, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xEF, 0x9A, -0xE2, 0xF7, 0x64, 0x9B, 0xCE, 0x9A, 0xAD, 0x9A, +0xC2, 0xF2, 0x70, 0x9B, 0xCE, 0x9A, 0xAD, 0x9A, 0x8C, 0x9A, 0xE0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0xE2, 0xF7, 0x68, 0x9B, 0xC0, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF7, 0x6C, 0x9B, 0xA0, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, 0x70, 0x9B, +0xC2, 0xF2, 0x74, 0x9B, 0xC0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xC2, 0xF2, 0x78, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, 0x7C, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x89, 0x9A, -0xE2, 0xF7, 0x74, 0x9B, 0x80, 0xDB, 0x68, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF7, 0x58, 0x9A, +0xE2, 0xF2, 0x60, 0x9B, 0x80, 0xDB, 0x68, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0x44, 0x9A, 0x01, 0x6C, 0xA4, 0x67, 0x60, 0xDA, 0x80, 0x18, -0xD7, 0x15, 0x00, 0x1C, 0xAC, 0x39, 0xFF, 0x17, +0x68, 0x00, 0x00, 0x1C, 0xAC, 0x39, 0xFF, 0x17, 0x4C, 0xB8, 0x00, 0x65, 0x80, 0x34, 0x8D, 0xEA, 0x8A, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0x4C, 0xB8, 0x00, 0x65, @@ -58300,96 +42098,96 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x6B, 0xDA, 0x6D, 0xB8, 0x00, 0x65, 0x6C, 0xDA, 0x68, 0xB8, 0x00, 0x65, 0x6D, 0xDA, 0x6C, 0xB8, 0x00, 0x65, 0x6E, 0xDA, 0x6E, 0xB8, 0x00, 0x65, -0x6F, 0xDA, 0x10, 0xF0, 0x23, 0x6A, 0x01, 0xF4, -0x1D, 0x4A, 0x00, 0xEA, 0x00, 0x65, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, 0x7C, 0x9B, -0x10, 0xF0, 0x23, 0x6A, 0x01, 0xF5, 0x09, 0x4A, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF7, -0x5C, 0x9A, 0x08, 0x6B, 0x40, 0xA2, 0x4C, 0xEB, +0x6F, 0xDA, 0x10, 0xF0, 0x23, 0x6A, 0x40, 0xF7, +0x09, 0x4A, 0x00, 0xEA, 0x00, 0x65, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, 0x64, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0x41, 0xF0, 0x01, 0x4A, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, +0x48, 0x9A, 0x08, 0x6B, 0x40, 0xA2, 0x4C, 0xEB, 0x00, 0x6A, 0x11, 0x23, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF0, 0x40, 0x9A, 0x30, 0xF0, 0x20, 0x6B, -0x40, 0x9A, 0xC6, 0xF3, 0x48, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF0, 0x44, 0x9A, 0xC6, 0xF3, -0x08, 0x4B, 0x40, 0x9A, 0x41, 0xDB, 0x20, 0xE8, +0xE2, 0xF2, 0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0x9A, 0x23, 0xF5, 0x50, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF2, 0x50, 0x9A, 0x23, 0xF5, +0x10, 0x4B, 0x40, 0x9A, 0x41, 0xDB, 0x20, 0xE8, 0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, -0xC2, 0xF7, 0x9C, 0x9C, 0x10, 0xF0, 0x23, 0x6B, -0x41, 0xF5, 0x11, 0x4B, 0x60, 0xDC, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF7, 0x7C, 0x9B, 0x80, 0xA3, +0xC2, 0xF2, 0x84, 0x9C, 0x10, 0xF0, 0x23, 0x6B, +0x81, 0xF0, 0x09, 0x4B, 0x60, 0xDC, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF2, 0x68, 0x9B, 0x80, 0xA3, 0x08, 0x6B, 0x8C, 0xEB, 0x1C, 0x23, 0x05, 0x5A, 0x1A, 0x60, 0x0C, 0x6D, 0xB8, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF0, 0x60, 0x9B, 0x80, 0x9B, -0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF3, 0x10, 0x4B, +0x20, 0x6B, 0xE2, 0xF2, 0x6C, 0x9B, 0x80, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF5, 0x18, 0x4B, 0x12, 0xEA, 0x49, 0xE3, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF0, 0x64, 0x9B, 0x81, 0xDA, 0x80, 0xA2, +0xE2, 0xF2, 0x70, 0x9B, 0x81, 0xDA, 0x80, 0xA2, 0x60, 0x9B, 0x62, 0xDA, 0x01, 0x6B, 0x8D, 0xEB, 0x60, 0xC2, 0x01, 0x6A, 0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x8C, 0xEA, -0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF7, 0x9C, 0x9C, -0x10, 0xF0, 0x23, 0x6B, 0xA1, 0xF5, 0x15, 0x4B, -0x60, 0xDC, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, -0x7C, 0x9B, 0x80, 0xA3, 0x08, 0x6B, 0x8C, 0xEB, +0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF2, 0x84, 0x9C, +0x10, 0xF0, 0x23, 0x6B, 0xE1, 0xF0, 0x0D, 0x4B, +0x60, 0xDC, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF2, +0x68, 0x9B, 0x80, 0xA3, 0x08, 0x6B, 0x8C, 0xEB, 0x1B, 0x23, 0x05, 0x5A, 0x19, 0x60, 0x0C, 0x6C, -0x98, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF3, -0x10, 0x4B, 0x12, 0xEA, 0x69, 0xE2, 0x80, 0xA2, +0x98, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF5, +0x18, 0x4B, 0x12, 0xEA, 0x69, 0xE2, 0x80, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, 0x0D, 0x23, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF0, 0x60, 0x9B, 0x42, 0x9A, -0xA0, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, -0x64, 0x9B, 0x60, 0x9B, 0x4B, 0xE3, 0x20, 0xE8, +0x20, 0x6B, 0xE2, 0xF2, 0x6C, 0x9B, 0x42, 0x9A, +0xA0, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF2, +0x70, 0x9B, 0x60, 0x9B, 0x4B, 0xE3, 0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, 0xFF, 0x6B, 0x8C, 0xEB, -0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF7, 0x9C, 0x9C, -0x10, 0xF0, 0x23, 0x6A, 0x01, 0xF6, 0x15, 0x4A, +0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF2, 0x84, 0x9C, +0x10, 0xF0, 0x23, 0x6A, 0x41, 0xF1, 0x0D, 0x4A, 0x05, 0x5B, 0x40, 0xDC, 0x00, 0x6A, 0x11, 0x60, 0x0C, 0x6C, 0x98, 0xEB, 0x30, 0xF0, 0x20, 0x6A, -0xC6, 0xF3, 0x10, 0x4A, 0x12, 0xEB, 0x4D, 0xE3, +0x23, 0xF5, 0x18, 0x4A, 0x12, 0xEB, 0x4D, 0xE3, 0x80, 0xA3, 0x02, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x00, 0x6A, 0x41, 0xDB, 0x42, 0xDB, 0x01, 0x6A, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, -0x7C, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0x41, 0xF6, -0x15, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, +0x64, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0x81, 0xF1, +0x0D, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x50, 0x9A, 0x40, 0xEA, 0x03, 0x22, -0x00, 0x18, 0x42, 0xC3, 0x05, 0x10, 0x10, 0xF0, -0x23, 0x68, 0x01, 0xF5, 0x09, 0x48, 0xBA, 0xFE, +0x00, 0x18, 0x10, 0xC2, 0x05, 0x10, 0x10, 0xF0, +0x23, 0x68, 0x41, 0xF0, 0x01, 0x48, 0xBA, 0xFE, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6B, 0xC2, 0xF7, 0x7C, 0x9B, 0x10, 0xF0, -0x23, 0x6A, 0x81, 0xF6, 0x11, 0x4A, 0x40, 0xDB, +0x20, 0x6B, 0xC2, 0xF2, 0x64, 0x9B, 0x10, 0xF0, +0x23, 0x6A, 0xC1, 0xF1, 0x09, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x50, 0x9A, 0xFF, 0x68, 0x8C, 0xE8, 0x40, 0xEA, 0x04, 0x22, -0x90, 0x67, 0x00, 0x18, 0x54, 0xC3, 0x06, 0x10, -0x90, 0x67, 0x10, 0xF0, 0x23, 0x68, 0x41, 0xF5, -0x11, 0x48, 0xBA, 0xFE, 0x05, 0x97, 0x04, 0x90, +0x90, 0x67, 0x00, 0x18, 0x22, 0xC2, 0x06, 0x10, +0x90, 0x67, 0x10, 0xF0, 0x23, 0x68, 0x81, 0xF0, +0x09, 0x48, 0xBA, 0xFE, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, -0x7C, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0xC1, 0xF6, -0x15, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, +0x64, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0x01, 0xF2, +0x0D, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x50, 0x9A, 0xFF, 0x68, 0x8C, 0xE8, 0x40, 0xEA, 0x04, 0x22, 0x90, 0x67, 0x00, 0x18, -0x6D, 0xC3, 0x06, 0x10, 0x90, 0x67, 0x10, 0xF0, -0x23, 0x68, 0xA1, 0xF5, 0x15, 0x48, 0xBA, 0xFE, +0x3B, 0xC2, 0x06, 0x10, 0x90, 0x67, 0x10, 0xF0, +0x23, 0x68, 0xE1, 0xF0, 0x0D, 0x48, 0xBA, 0xFE, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6B, 0xC2, 0xF7, 0x7C, 0x9B, 0x10, 0xF0, -0x23, 0x6A, 0x01, 0xF7, 0x19, 0x4A, 0x40, 0xDB, +0x20, 0x6B, 0xC2, 0xF2, 0x64, 0x9B, 0x10, 0xF0, +0x23, 0x6A, 0x41, 0xF2, 0x11, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x50, 0x9A, 0xFF, 0x68, 0x8C, 0xE8, 0x40, 0xEA, 0x04, 0x22, -0x90, 0x67, 0x00, 0x18, 0x85, 0xC3, 0x06, 0x10, -0x90, 0x67, 0x10, 0xF0, 0x23, 0x68, 0x01, 0xF6, -0x15, 0x48, 0xBA, 0xFE, 0x05, 0x97, 0x04, 0x90, +0x90, 0x67, 0x00, 0x18, 0x53, 0xC2, 0x06, 0x10, +0x90, 0x67, 0x10, 0xF0, 0x23, 0x68, 0x41, 0xF1, +0x0D, 0x48, 0xBA, 0xFE, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x10, 0xF0, 0x23, 0x6A, -0xC0, 0xF2, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF3, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x48, 0xDB, 0x10, 0xF0, 0x23, 0x6A, -0x80, 0xF4, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF4, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x4C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, -0x40, 0xF5, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF5, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x50, 0xDB, 0x10, 0xF0, 0x23, 0x6A, -0xA0, 0xF5, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF5, 0x09, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, -0x01, 0xF4, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF7, 0x09, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x58, 0xDB, 0x10, 0xF0, 0x23, 0x6A, -0xA1, 0xF4, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF7, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, -0x01, 0xF4, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF7, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, 0x3C, 0xF6, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, @@ -58443,7 +42241,7 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x60, 0xF7, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, 0xFB, 0xF1, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x48, 0xDB, 0x10, 0xF0, 0x23, 0x6A, -0xE1, 0xF3, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF7, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, 0x5A, 0xF0, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, @@ -58524,7 +42322,7 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x7E, 0xF1, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x48, 0xDB, 0x10, 0xF0, 0x21, 0x6A, 0x9E, 0xF1, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0x26, 0xF3, 0x58, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xC3, 0xF4, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, 0xDE, 0xF1, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, 0xDE, 0xF3, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, @@ -58535,1717 +42333,148 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x01, 0xF0, 0x58, 0xDB, 0x10, 0xF0, 0x21, 0x6A, 0xBE, 0xF4, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x5C, 0xDB, 0x20, 0xE8, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFF, 0x6A, 0x24, 0x67, 0x4C, 0xE9, 0x4C, 0xED, -0x2E, 0x34, 0x07, 0x6B, 0x01, 0x75, 0x4C, 0xEC, -0x2C, 0xEB, 0x22, 0x61, 0x30, 0xF0, 0x20, 0x68, -0x46, 0xF5, 0x18, 0x48, 0x11, 0xE4, 0x01, 0x6A, -0x44, 0xEB, 0x83, 0xF3, 0x6C, 0xA4, 0x00, 0x6D, -0x6D, 0xEA, 0x83, 0xF3, 0x4C, 0xC4, 0x30, 0xF0, -0x20, 0x6A, 0xA0, 0xF3, 0x40, 0x9A, 0x91, 0x67, -0x40, 0xEA, 0xE0, 0xF0, 0x48, 0xA0, 0x4E, 0xE9, -0x1F, 0x29, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, -0x48, 0x9A, 0x40, 0x9A, 0x50, 0x32, 0x00, 0xF5, -0x42, 0x32, 0xC3, 0xF3, 0x50, 0xC8, 0x14, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x51, 0xE4, 0x01, 0x6A, 0x44, 0xEB, 0x83, 0xF3, -0x6C, 0xA4, 0x4F, 0xEA, 0x01, 0x6D, 0x6C, 0xEA, -0x83, 0xF3, 0x4C, 0xC4, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF3, 0x40, 0x9A, 0x91, 0x67, 0x40, 0xEA, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0xFF, 0x68, 0x03, 0xF0, 0x4C, 0x9A, 0x8C, 0xE8, -0x0C, 0x30, 0x0D, 0xD5, 0x4D, 0xE8, 0x00, 0x69, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, 0x50, 0x9A, -0x60, 0xF6, 0x13, 0x6C, 0x80, 0x6D, 0x00, 0xDA, -0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF3, 0x48, 0x9A, 0x00, 0x6E, 0x14, 0x6F, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, -0x54, 0x9A, 0x0D, 0x94, 0x01, 0x48, 0x60, 0x9A, -0x29, 0xE4, 0x04, 0x49, 0x18, 0x71, 0x60, 0xDA, -0xE3, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0xFF, 0x68, 0x03, 0xF0, 0x58, 0x9A, 0x8C, 0xE8, -0x0C, 0x30, 0x0D, 0xD5, 0x4D, 0xE8, 0x00, 0x69, -0x0D, 0x93, 0x60, 0xF6, 0x13, 0x6C, 0x80, 0x6D, -0x29, 0xE3, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF0, 0x5C, 0x9A, 0x00, 0x6E, 0x14, 0x6F, -0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, -0x50, 0x9A, 0x04, 0x49, 0x00, 0xDA, 0x06, 0x02, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, -0x48, 0x9A, 0x01, 0x48, 0x40, 0xEA, 0x18, 0x71, -0xE3, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x68, 0x30, 0xF0, -0x20, 0x6A, 0x8C, 0xE8, 0x03, 0xF0, 0x4C, 0x9A, -0x00, 0x30, 0x0C, 0x30, 0x0D, 0xD5, 0x4D, 0xE8, -0x00, 0x69, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0x40, 0x9A, 0x80, 0xF6, 0x1B, 0x6C, 0x80, 0x6D, -0x00, 0xDA, 0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, 0x00, 0x6E, -0x14, 0x6F, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF0, 0x44, 0x9A, 0x0D, 0x94, 0x00, 0xF1, -0x00, 0x48, 0x60, 0x9A, 0x29, 0xE4, 0x04, 0x49, -0x14, 0x71, 0x60, 0xDA, 0xE2, 0x61, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x8C, 0xE8, -0x03, 0xF0, 0x58, 0x9A, 0x00, 0x30, 0x0C, 0x30, -0x0D, 0xD5, 0x4D, 0xE8, 0x00, 0x69, 0x0D, 0x93, -0x80, 0xF6, 0x1B, 0x6C, 0x80, 0x6D, 0x29, 0xE3, -0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0x44, 0x9A, 0x00, 0x6E, 0x14, 0x6F, 0x60, 0xDA, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x40, 0x9A, -0x04, 0x49, 0x00, 0xDA, 0x06, 0x02, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, -0x00, 0xF1, 0x00, 0x48, 0x40, 0xEA, 0x14, 0x71, -0xE2, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, -0x6C, 0x9B, 0xFF, 0x6A, 0x8C, 0xEA, 0x6D, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0x68, 0x9B, -0x05, 0x67, 0x40, 0xF6, 0x17, 0x6C, 0x40, 0xDB, -0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF3, 0x48, 0x9A, 0x80, 0x6D, 0x00, 0x6E, -0x14, 0x6F, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF0, 0x4C, 0x9A, 0x09, 0x97, 0x40, 0x9A, -0x40, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0x50, 0x9A, 0x40, 0x9A, 0x41, 0xD8, 0x08, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, 0x78, 0x9B, -0xFF, 0x6A, 0x8C, 0xEA, 0x6D, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x80, 0x9D, 0x23, 0xF0, 0x6C, 0x9B, -0x00, 0x6E, 0x14, 0x6F, 0x80, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0x81, 0x9D, 0x23, 0xF0, 0x70, 0x9B, -0x80, 0x6D, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF0, 0x68, 0x9B, 0x40, 0xF6, 0x17, 0x6C, -0x40, 0xDB, 0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, 0x40, 0xEA, -0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0x4C, 0xED, 0x8E, 0x36, 0x07, 0x6B, 0x01, 0x75, +0x4C, 0xEE, 0x8C, 0xEB, 0x12, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, 0x59, 0xE6, +0x01, 0x6A, 0x44, 0xEB, 0x03, 0xF3, 0x64, 0xA6, +0x00, 0x6D, 0x6D, 0xEA, 0x03, 0xF3, 0x44, 0xC6, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x40, 0x9A, +0x12, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, +0x18, 0x4A, 0x59, 0xE6, 0x01, 0x6A, 0x44, 0xEB, +0x03, 0xF3, 0x64, 0xA6, 0x4F, 0xEA, 0x01, 0x6D, +0x6C, 0xEA, 0x03, 0xF3, 0x44, 0xC6, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF3, 0x40, 0x9A, 0x40, 0xEA, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, 0x01, 0x6B, 0xAC, 0xEA, 0x6E, 0xEA, 0x01, 0x5A, 0x58, 0x67, 0x05, 0x5C, 0x48, 0x32, 0x03, 0x61, 0x01, 0x6A, 0x4B, 0xEA, -0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, -0xA8, 0x9B, 0x30, 0xF0, 0x20, 0x6E, 0x23, 0xF0, -0xD4, 0x9E, 0x60, 0x9D, 0x00, 0xF7, 0x80, 0x34, +0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF2, +0xB4, 0x9B, 0x30, 0xF0, 0x20, 0x6E, 0xE2, 0xF2, +0xD8, 0x9E, 0x60, 0x9D, 0x00, 0xF7, 0x80, 0x34, 0xCC, 0xEB, 0x6D, 0xEC, 0x80, 0xDD, 0x1F, 0xF7, 0x00, 0x6B, 0x60, 0xF5, 0x80, 0x42, 0x8C, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x09, 0x2B, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0x78, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF2, 0x7C, 0x9B, 0x60, 0xF5, 0x00, 0x4A, 0x69, 0xE2, 0x40, 0x9A, -0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0x5C, 0x9A, 0x51, 0xE4, 0x40, 0x9C, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF4, 0xD0, 0x9B, -0xFE, 0x63, 0xC2, 0xF4, 0x10, 0x4B, 0x00, 0xD6, -0xC1, 0x9B, 0x64, 0xAB, 0xFF, 0x6A, 0x01, 0xD6, -0x4C, 0xED, 0xDD, 0x67, 0x4C, 0xEC, 0x64, 0xCE, -0x3C, 0x25, 0x84, 0x33, 0x6D, 0xE6, 0xA0, 0xAB, -0x1F, 0xF7, 0x00, 0x6B, 0xAC, 0xEB, 0x02, 0xF0, -0x00, 0x73, 0x01, 0x60, 0x26, 0x2B, 0x84, 0x32, -0x7D, 0x67, 0x49, 0xE3, 0xA0, 0xAA, 0x1F, 0xF7, -0x00, 0x6A, 0xAC, 0xEA, 0x02, 0xF0, 0x00, 0x72, -0x01, 0x60, 0x0B, 0x2A, 0x84, 0x34, 0xBD, 0x67, -0x91, 0xE5, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0x58, 0x9A, 0x60, 0xAC, 0x4D, 0xE3, 0x40, 0xA3, -0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0x5C, 0x9A, 0x6D, 0xE5, 0x55, 0xE5, 0x40, 0xA5, -0xFF, 0x6C, 0x8C, 0xEA, 0x08, 0x6D, 0xAD, 0xEA, -0x3E, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, -0x9C, 0x9B, 0x91, 0xE5, 0x60, 0xA4, 0x08, 0x6D, -0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, -0x34, 0x10, 0x84, 0x32, 0xDD, 0x67, 0x49, 0xE6, -0x60, 0xAA, 0x1F, 0xF7, 0x00, 0x6A, 0x6C, 0xEA, -0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x20, 0x2A, -0x84, 0x32, 0x7D, 0x67, 0x49, 0xE3, 0xA0, 0xAA, -0x1F, 0xF7, 0x00, 0x6A, 0xAC, 0xEA, 0x02, 0xF0, -0x00, 0x72, 0x01, 0x60, 0x09, 0x2A, 0x84, 0x34, -0xBD, 0x67, 0x91, 0xE5, 0x30, 0xF0, 0x20, 0x6A, -0x60, 0xAC, 0x23, 0xF0, 0x58, 0x9A, 0x10, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x78, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x5C, 0x9A, -0x6D, 0xE5, 0x55, 0xE5, 0x80, 0xA5, 0x06, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x5C, 0x9A, -0x4D, 0xE3, 0x80, 0xA3, 0xF7, 0x6A, 0x8C, 0xEA, -0x40, 0xC3, 0x02, 0x63, 0x20, 0xE8, 0x00, 0x65, -0xFF, 0x6A, 0x4C, 0xEC, 0x01, 0x74, 0xAC, 0xEA, -0x13, 0x60, 0x03, 0x24, 0x02, 0x74, 0x15, 0x60, -0x18, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, -0x18, 0x4B, 0xC3, 0xF3, 0xA8, 0xA3, 0x01, 0x6C, -0x4C, 0xEC, 0x02, 0x6A, 0x4B, 0xEA, 0xAC, 0xEA, -0x8D, 0xEA, 0xC3, 0xF3, 0x48, 0xC3, 0x09, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x2A, 0xF1, 0x43, 0xC3, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x8A, 0xF1, -0x5C, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, -0x40, 0x9A, 0x60, 0xA2, 0x10, 0x6A, 0x6C, 0xEA, -0x1C, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0xC3, 0xF3, 0x88, 0xA2, 0xC3, 0xF3, -0xAB, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, 0x7F, 0x6C, -0xAC, 0xEC, 0x7C, 0x33, 0x8D, 0xEB, 0xFF, 0x6C, -0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF0, -0x84, 0x9C, 0x60, 0xC4, 0x43, 0xF4, 0x64, 0xA2, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, 0x48, 0x9A, -0x60, 0xC2, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0x26, 0xF6, 0x1F, 0x4C, -0x00, 0x6D, 0x07, 0x6E, 0x40, 0xEA, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF0, 0x4C, 0x9A, 0x60, 0xA2, 0xFF, 0x6A, -0x6C, 0xEA, 0xFF, 0x72, 0x00, 0x6A, 0x0B, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, 0x50, 0x9A, -0x60, 0xA2, 0x07, 0x6A, 0x6C, 0xEA, 0x07, 0x6B, -0x6E, 0xEA, 0x01, 0x5A, 0x58, 0x67, 0x20, 0xE8, -0xFF, 0x6A, 0x4C, 0xEC, 0x01, 0x74, 0xAC, 0xEA, -0x03, 0x60, 0x02, 0x74, 0x09, 0x60, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x02, 0x6B, 0xC3, 0xF3, 0x72, 0xC2, 0x15, 0x10, -0x09, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0xC0, 0xF0, 0x6E, 0xA2, 0xC3, 0xF3, -0x72, 0xC2, 0x05, 0x10, 0xFF, 0x4A, 0x30, 0xF0, -0x20, 0x6B, 0x2A, 0xF1, 0x4A, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0xC3, 0xF3, -0x72, 0xA2, 0xC3, 0xF3, 0x88, 0xA2, 0xC3, 0xF3, -0x73, 0xC2, 0x40, 0x6B, 0x8D, 0xEB, 0xC3, 0xF3, -0x68, 0xC2, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0x4D, 0xC6, 0x01, 0x72, 0x11, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xC3, 0xF3, 0x88, 0xA2, 0x04, 0x6B, 0x8C, 0xEB, -0x08, 0x2B, 0x43, 0xF4, 0x84, 0xA2, 0x05, 0x5C, -0x04, 0x60, 0x04, 0xF3, 0x60, 0xDA, 0x01, 0x6A, -0x01, 0x10, 0x00, 0x6A, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x5C, 0x9A, -0xFF, 0x6B, 0x6C, 0xEC, 0x00, 0x6D, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, -0x00, 0x6D, 0xC5, 0x67, 0xFF, 0x6C, 0x40, 0xEA, -0x01, 0x6C, 0x0C, 0x6D, 0x00, 0x18, 0x22, 0xC6, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6D, -0x46, 0xF5, 0x18, 0x4D, 0xC3, 0xF3, 0xC9, 0xA5, -0x04, 0x6B, 0xFF, 0x6A, 0xCC, 0xEB, 0x4C, 0xEB, -0x4C, 0xEC, 0x0C, 0x2B, 0x43, 0xF4, 0x67, 0xA5, -0x09, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, -0xB4, 0x9B, 0x60, 0xA5, 0x4C, 0xEB, 0x01, 0x4B, -0x4C, 0xEB, 0x60, 0xC5, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xC3, 0xF3, 0xA9, 0xA2, -0x04, 0x6B, 0xAC, 0xEB, 0x0C, 0x2B, 0x43, 0xF4, -0x47, 0xA2, 0x09, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x40, 0xF4, 0x5C, 0x9A, 0x03, 0x6D, 0x40, 0xEA, -0x01, 0x6C, 0x04, 0x6D, 0x08, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x40, 0xF4, 0x5C, 0x9A, 0x00, 0x6D, -0x40, 0xEA, 0x01, 0x6C, 0x0C, 0x6D, 0x00, 0x18, -0x22, 0xC6, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, -0x50, 0x9A, 0x00, 0x6D, 0xFF, 0x6C, 0xC5, 0x67, -0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x68, 0xFF, 0x69, 0x46, 0xF5, -0x18, 0x48, 0x30, 0xF0, 0x20, 0x6A, 0x8C, 0xE9, -0x80, 0xF3, 0x5C, 0x9A, 0xE0, 0xF0, 0x88, 0xA0, -0x40, 0xEA, 0x01, 0x72, 0x25, 0x61, 0xC3, 0xF3, -0x69, 0xA0, 0x09, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, -0xC3, 0xF3, 0x49, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF2, 0x50, 0x9A, 0xFF, 0x6C, 0x6F, 0x6D, -0x2C, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x40, 0xF4, 0x50, 0x9A, 0xA0, 0xF0, 0x8A, 0xA0, -0x01, 0x6D, 0x08, 0x6E, 0xF1, 0x67, 0x40, 0xEA, -0x01, 0x72, 0x0A, 0x61, 0xC3, 0xF3, 0x69, 0xA0, -0x02, 0x6A, 0x01, 0x6C, 0x6D, 0xEA, 0x0E, 0x6D, -0xC3, 0xF3, 0x49, 0xC0, 0x00, 0x18, 0x22, 0xC6, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6B, 0x2A, 0xF1, 0xA1, 0xA3, -0x08, 0x6B, 0xFF, 0x6A, 0xAC, 0xEB, 0x4C, 0xEB, -0x4C, 0xEC, 0x03, 0x2B, 0x01, 0x6C, 0x0C, 0x6D, -0x08, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, -0x5C, 0x9A, 0x01, 0x6D, 0x40, 0xEA, 0x01, 0x6C, -0x04, 0x6D, 0x00, 0x18, 0x22, 0xC6, 0x30, 0xF0, -0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, -0xFF, 0x6C, 0xC5, 0x67, 0x40, 0xEA, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, -0x2E, 0x6E, 0xFF, 0x6C, 0x6F, 0x6D, 0x40, 0xEA, -0x01, 0x6C, 0x02, 0x6D, 0x00, 0x18, 0x22, 0xC6, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFF, 0x63, 0x01, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x6F, 0x46, 0xF5, 0x18, 0x4B, -0x43, 0xF0, 0x18, 0x9F, 0xE0, 0xF0, 0xE0, 0x9B, -0xFF, 0x6A, 0x4C, 0xEC, 0x0C, 0xEF, 0x0E, 0xEF, -0x4C, 0xED, 0x4C, 0xEE, 0xA0, 0xF0, 0x02, 0x27, -0xC3, 0xF3, 0x09, 0xA3, 0x20, 0x6F, 0x0C, 0xEF, -0x4C, 0xEF, 0x80, 0xF0, 0x17, 0x2F, 0xE0, 0xF0, -0x00, 0xA3, 0x01, 0x6F, 0xEC, 0xE8, 0x4C, 0xE8, -0x53, 0x28, 0xC3, 0xF3, 0x08, 0xA3, 0x0C, 0xEF, -0x4C, 0xEF, 0x08, 0x27, 0xE3, 0xF3, 0x46, 0xA3, -0x03, 0x4A, 0xE3, 0xF3, 0x41, 0xC3, 0xE3, 0xF3, -0x40, 0xC3, 0x08, 0x10, 0x06, 0x6F, 0xE3, 0xF3, -0xE1, 0xC3, 0x06, 0x4E, 0x05, 0x6F, 0xE3, 0xF3, -0xE0, 0xC3, 0x4C, 0xEE, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xC3, 0xF3, 0xFF, 0xA2, -0xE3, 0xF3, 0x60, 0xA2, 0xE3, 0xEB, 0x09, 0x61, -0xE3, 0xF3, 0x61, 0xA2, 0xC3, 0xF3, 0xD4, 0xC2, -0x71, 0xE4, 0xB7, 0xE4, 0xE3, 0xF3, 0xA2, 0xC2, -0x09, 0x10, 0xE3, 0xF3, 0x81, 0xA2, 0x77, 0xE5, -0xB9, 0xE6, 0x6F, 0xE4, 0xC3, 0xF3, 0xD4, 0xC2, -0xE3, 0xF3, 0x62, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xE3, 0xF3, 0x61, 0xA2, -0xE3, 0xF3, 0x82, 0xA2, 0x0A, 0x4B, 0x82, 0xEB, -0x02, 0x60, 0xE3, 0xF3, 0x62, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0xE3, 0xF3, -0x62, 0xA2, 0xC3, 0xF3, 0x94, 0xA2, 0x23, 0x4B, -0x82, 0xEB, 0x02, 0x60, 0xC3, 0xF3, 0x74, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xE3, 0xF3, 0x62, 0xA2, 0xC3, 0xF3, 0x7C, 0xCA, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, 0x5C, 0x9A, -0x60, 0xA2, 0x07, 0x23, 0x60, 0xA2, 0xFF, 0x6A, -0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x2A, 0xF1, -0x74, 0xCA, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0xC0, 0xF0, 0x87, 0xA2, 0x18, 0x6B, -0x8C, 0xEB, 0x10, 0x73, 0x0C, 0x61, 0xE3, 0xF3, -0x66, 0xA2, 0x03, 0x6C, 0x03, 0x4B, 0xE3, 0xF3, -0x62, 0xC2, 0xC0, 0xF0, 0x6A, 0xA2, 0x76, 0x33, -0x8C, 0xEB, 0xC3, 0xF3, 0x74, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF0, 0x40, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0x2A, 0xF1, 0x94, 0xAC, 0xA0, 0xA2, -0xFF, 0x6B, 0x6C, 0xED, 0x8E, 0xED, 0x02, 0x25, -0x8C, 0xEB, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xC3, 0xF3, 0x89, 0xA2, -0x41, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xC3, 0xF3, -0x69, 0xC2, 0x04, 0x10, 0x40, 0x6A, 0x0D, 0xEA, -0xC3, 0xF3, 0x49, 0xC3, 0x01, 0x90, 0x01, 0x63, -0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x30, 0xF0, 0x20, 0x6B, 0x06, 0xF6, 0xBF, 0xA3, -0x04, 0x6B, 0xFF, 0x6A, 0xAC, 0xEB, 0x4C, 0xEB, -0x4C, 0xEC, 0x0C, 0x23, 0x7D, 0x67, 0x1E, 0x6A, -0x50, 0xC3, 0x01, 0x6A, 0x4F, 0xCB, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x92, 0xC3, -0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0xA2, 0xF4, 0x6C, 0x9A, 0xA2, 0xF4, 0x0C, 0x4A, -0xFF, 0x69, 0x04, 0xD3, 0x61, 0x9A, 0x44, 0xAA, -0x30, 0xF0, 0x20, 0x68, 0x05, 0xD3, 0x7D, 0x67, -0x2C, 0xEC, 0x4C, 0xCB, 0x46, 0xF5, 0x18, 0x48, -0x30, 0xF0, 0x20, 0x6A, 0x08, 0xD4, 0x80, 0xF3, -0x5C, 0x9A, 0xE0, 0xF0, 0x88, 0xA0, 0x40, 0xEA, -0x01, 0x72, 0x3E, 0x61, 0xC0, 0xF0, 0x64, 0xA0, -0x7F, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x38, 0x22, -0x08, 0x93, 0x64, 0x32, 0x7D, 0x67, 0x49, 0xE3, -0x68, 0xAA, 0x1F, 0xF7, 0x00, 0x6A, 0x6C, 0xEA, -0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x0C, 0x2A, -0x08, 0x93, 0x64, 0x32, 0x7D, 0x67, 0x49, 0xE3, -0x68, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0x58, 0x9A, 0x49, 0xE3, 0x60, 0x9A, 0x06, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x5C, 0x9A, -0x4D, 0xE3, 0x60, 0x9B, 0x04, 0xF0, 0x00, 0x6A, -0x6C, 0xEA, 0x16, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF0, 0x64, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, -0x40, 0xAB, 0x8C, 0xEA, 0x01, 0x4A, 0x8C, 0xEA, -0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0xE4, 0xF2, 0x78, 0x9A, 0x01, 0x4B, -0xE4, 0xF2, 0x78, 0xDA, 0x00, 0x6A, 0x01, 0x10, -0x01, 0x6A, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, -0x07, 0x63, 0x00, 0xEF, 0xFF, 0x6A, 0x4C, 0xEC, -0x52, 0x2C, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x43, 0xF4, 0x74, 0xA2, 0x2F, 0x23, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, 0x68, 0x9B, -0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, -0x6C, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF0, 0x70, 0x9B, 0x80, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0x9A, 0x63, 0xF0, 0x74, 0x9B, -0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF0, -0x58, 0x9A, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF0, 0x5C, 0x9A, 0x01, 0x6B, 0x80, 0xDA, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, 0x40, 0x9A, -0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, -0x44, 0x9A, 0x80, 0xDA, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF0, 0x48, 0x9A, 0x80, 0xDA, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0xE0, 0xF0, -0x95, 0xA2, 0x10, 0x6B, 0x8C, 0xEB, 0x03, 0x23, -0xFF, 0x6A, 0x01, 0x4A, 0x0A, 0x10, 0xE0, 0xF0, -0x72, 0xA2, 0x02, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, -0x6C, 0xEA, 0x4B, 0xEA, 0xC0, 0xF7, 0x42, 0x32, -0x4C, 0x32, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, -0x6C, 0x9B, 0x40, 0xDB, 0x20, 0xE8, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF0, 0x90, 0x9B, 0x02, 0x6D, -0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, -0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0x67, -0x46, 0xF5, 0x18, 0x4A, 0x43, 0xF4, 0x94, 0xA2, -0x37, 0x24, 0x46, 0xF5, 0x98, 0x9B, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF0, 0x68, 0x9B, 0x80, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x81, 0x9A, 0x63, 0xF0, -0x6C, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x82, 0x9A, 0x63, 0xF0, 0x70, 0x9B, 0x80, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0x9A, 0x63, 0xF0, -0x78, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x84, 0x9A, 0x63, 0xF0, 0x7C, 0x9B, 0x80, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x94, 0x9A, 0x83, 0xF0, -0x6C, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x95, 0x9A, 0x83, 0xF0, 0x60, 0x9B, 0x80, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x96, 0x9A, 0x83, 0xF0, -0x64, 0x9B, 0x80, 0xDB, 0x72, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF0, 0x48, 0x9A, 0x05, 0x10, -0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, -0x4C, 0x9A, 0x60, 0xDA, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, 0x54, 0x9A, -0x80, 0xA2, 0xFF, 0x6A, 0x4C, 0xEC, 0x05, 0x2C, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0x98, 0x9B, -0x07, 0x10, 0x02, 0x6B, 0x8C, 0xEB, 0x0A, 0x23, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0x9C, 0x9B, -0x60, 0xA4, 0x4C, 0xEB, 0x01, 0x4B, 0x4C, 0xEB, -0x60, 0xC4, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF0, 0x60, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, -0x40, 0xAB, 0x8C, 0xEA, 0x01, 0x4A, 0x8C, 0xEA, -0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, -0x54, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x20, 0xE8, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0x0A, 0xF3, 0xA4, 0x9B, -0xE0, 0xF2, 0x40, 0x9A, 0x38, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x64, 0x9A, -0xFF, 0x6C, 0x10, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, -0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x00, 0x6A, 0x04, 0xD2, -0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0xE0, 0xF2, 0x58, 0x9A, 0xA3, 0xF0, -0xC8, 0x9B, 0x30, 0xF0, 0x21, 0x6D, 0x00, 0x6C, -0x73, 0xF3, 0x10, 0x4D, 0x20, 0x6F, 0x40, 0xEA, -0x0A, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x04, 0xF3, 0x64, 0x9A, 0x04, 0x6C, -0x8D, 0xEB, 0x04, 0xF3, 0x64, 0xDA, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x05, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xAA, 0xF1, -0x2F, 0xA2, 0x34, 0x10, 0x80, 0xF3, 0x4E, 0x41, -0x4C, 0x32, 0x09, 0xE2, 0xC1, 0x9A, 0x2C, 0x32, -0x09, 0xE2, 0x63, 0xF4, 0xF8, 0x9A, 0x06, 0xD2, -0x00, 0x6A, 0x63, 0xF4, 0xA8, 0x98, 0x04, 0xD2, -0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x21, 0x6B, 0xE0, 0xF2, 0x58, 0x9A, 0x90, 0xF5, -0x10, 0x4B, 0x00, 0x6C, 0xB5, 0xE3, 0x40, 0xEA, -0x01, 0x72, 0x09, 0x61, 0x06, 0x92, 0x63, 0xF4, -0x78, 0x9A, 0x63, 0xF4, 0x48, 0x98, 0x49, 0xE3, -0x63, 0xF4, 0x48, 0xD8, 0x06, 0x10, 0x04, 0xF3, -0x44, 0x98, 0x04, 0x6B, 0x6D, 0xEA, 0x04, 0xF3, -0x44, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x05, 0x6C, 0x01, 0x49, 0x40, 0xEA, -0xFF, 0x6A, 0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x68, -0x46, 0xF5, 0x18, 0x48, 0x43, 0xF4, 0x57, 0xA0, -0x01, 0x4A, 0x42, 0xE9, 0xC3, 0x61, 0x43, 0xF4, -0x37, 0xC0, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF0, 0x6C, 0x9A, 0xFF, 0x6C, 0x02, 0x6D, -0x40, 0xA3, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, -0x20, 0x69, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, -0x40, 0xC3, 0x4A, 0xF2, 0x0C, 0x48, 0x0A, 0xF3, -0x04, 0x49, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xA8, -0xC1, 0x98, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, -0xAB, 0xED, 0x08, 0x48, 0x40, 0xEA, 0x2A, 0xE8, -0xF4, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xAA, 0xF1, -0x2F, 0xA2, 0x35, 0x10, 0x80, 0xF3, 0x4E, 0x41, -0x4C, 0x32, 0x09, 0xE2, 0xC1, 0x9A, 0x2C, 0x32, -0x09, 0xE2, 0x63, 0xF4, 0xF8, 0x9A, 0x06, 0xD2, -0x00, 0x6A, 0x63, 0xF4, 0xA8, 0x98, 0x04, 0xD2, -0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x21, 0x6B, 0xE0, 0xF2, 0x58, 0x9A, 0x90, 0xF5, -0x10, 0x4B, 0x00, 0x6C, 0xB5, 0xE3, 0x40, 0xEA, -0x01, 0x72, 0x12, 0x61, 0x06, 0x92, 0x05, 0x6C, -0x01, 0x49, 0x63, 0xF4, 0x78, 0x9A, 0x63, 0xF4, -0x48, 0x98, 0x49, 0xE3, 0x63, 0xF4, 0x48, 0xD8, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, -0x40, 0xEA, 0xFF, 0x6A, 0x4C, 0xE9, 0x07, 0x10, -0x04, 0xF3, 0x44, 0x98, 0x10, 0x6B, 0x6D, 0xEA, -0x04, 0xF3, 0x44, 0xD8, 0x09, 0x10, 0x30, 0xF0, -0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, 0x43, 0xF4, -0x57, 0xA0, 0x07, 0x4A, 0x42, 0xE9, 0xC2, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x68, -0xAA, 0xF1, 0x2F, 0xC2, 0xC0, 0xF3, 0x44, 0x98, -0x01, 0x69, 0x2B, 0xE9, 0xB1, 0x67, 0xE3, 0xF6, -0x08, 0x6C, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, -0xD0, 0x9B, 0xB1, 0x67, 0x01, 0xF4, 0x0C, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, -0x34, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x6D, 0xD1, 0x67, 0x83, 0xF5, -0x14, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF0, 0x58, 0x9A, 0x45, 0xE1, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x5C, 0x9A, -0x2E, 0xEA, 0xEB, 0x2A, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF0, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x01, 0x6D, 0x01, 0xF4, 0x0C, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, -0xE3, 0xF6, 0x08, 0x6C, 0xAB, 0xED, 0x00, 0x6E, +0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF3, +0x40, 0x9A, 0x51, 0xE4, 0x40, 0x9C, 0x20, 0xE8, +0xFB, 0x63, 0x09, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0x32, 0x6B, 0xAC, 0xEA, 0xBD, 0x67, 0x70, 0xC5, +0x02, 0x5C, 0x02, 0x6B, 0x6F, 0xCD, 0x92, 0xC5, +0x02, 0x60, 0x53, 0xC5, 0x04, 0x10, 0x01, 0x6A, +0x4B, 0xEA, 0x7D, 0x67, 0x53, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, +0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, +0xFF, 0x6B, 0x6C, 0xEC, 0x01, 0x6A, 0x8E, 0xEA, +0x01, 0x5A, 0x58, 0x67, 0x6C, 0xEA, 0x20, 0xE8, +0xFF, 0x6A, 0x4C, 0xEC, 0x01, 0x74, 0x0C, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF3, 0x64, 0x9B, +0x10, 0x6C, 0x75, 0xE5, 0x60, 0xA5, 0x4C, 0xEB, +0x8D, 0xEB, 0x4C, 0xEB, 0x60, 0xC5, 0x20, 0xE8, +0x09, 0x2C, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF3, +0x44, 0x9A, 0x55, 0xE5, 0x60, 0xA5, 0xEF, 0x6A, +0x6C, 0xEA, 0x40, 0xC5, 0x20, 0xE8, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x6A, 0x02, 0xF3, +0x68, 0x9B, 0x4C, 0xEE, 0x4C, 0xEF, 0x05, 0xD6, +0x04, 0xD7, 0x60, 0xA3, 0xFF, 0xF7, 0x1F, 0x68, +0x25, 0x67, 0x4C, 0xEB, 0x72, 0x33, 0x4C, 0xEB, +0x8C, 0xE8, 0x4C, 0xE9, 0x3C, 0x23, 0x30, 0xF0, +0x20, 0x6B, 0x02, 0xF3, 0x6C, 0x9B, 0x00, 0x6C, +0xFF, 0x6D, 0x60, 0xA3, 0x26, 0x6E, 0x6C, 0xEA, +0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF4, 0x5C, 0x9A, 0x40, 0xEA, 0x01, 0x72, +0x1D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x05, 0x96, +0xA0, 0xF2, 0x54, 0x9A, 0x04, 0x6F, 0x90, 0x67, +0x01, 0x6D, 0x40, 0xEA, 0x02, 0x67, 0x30, 0xF0, +0x20, 0x6A, 0x04, 0x96, 0x40, 0xF4, 0x58, 0x9A, +0xB0, 0x67, 0x91, 0x67, 0x40, 0xEA, 0x91, 0x67, +0x00, 0x18, 0x24, 0xC4, 0xA2, 0x67, 0x90, 0x67, +0x00, 0x18, 0x42, 0xD8, 0x04, 0x95, 0x90, 0x67, +0x00, 0x18, 0x51, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x06, 0x95, 0x00, 0x6C, +0x27, 0x6E, 0x40, 0xEA, 0x1D, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x05, 0x96, 0xA0, 0xF2, 0x54, 0x9A, +0x04, 0x6F, 0x90, 0x67, 0x01, 0x6D, 0x40, 0xEA, +0x02, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x96, +0x40, 0xF4, 0x58, 0x9A, 0xB0, 0x67, 0x91, 0x67, +0x40, 0xEA, 0x91, 0x67, 0x00, 0x18, 0x24, 0xC4, +0xA2, 0x67, 0x90, 0x67, 0x00, 0x18, 0x42, 0xD8, +0x04, 0x95, 0x90, 0x67, 0x00, 0x18, 0x51, 0xD8, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x26, 0xF6, 0x71, 0xA2, 0x01, 0x6A, 0x00, 0x68, -0x6C, 0xEA, 0x11, 0x2A, 0x31, 0x10, 0x18, 0x6D, -0xB8, 0xE8, 0x49, 0xE0, 0xE4, 0xF2, 0x8C, 0xA2, -0x30, 0xF0, 0x20, 0x6B, 0x0A, 0xF3, 0x08, 0x4B, -0x01, 0x48, 0x12, 0xED, 0xB5, 0xE3, 0x00, 0x18, -0x51, 0xC5, 0xFF, 0x6A, 0x4C, 0xE8, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0xE4, 0xF2, -0x68, 0xA2, 0x63, 0xE8, 0xE8, 0x61, 0xE0, 0xF0, -0x8E, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, 0x14, 0x23, -0xE0, 0xF0, 0x75, 0xA2, 0x08, 0x6A, 0x6C, 0xEA, -0xFF, 0x6B, 0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, -0x20, 0x68, 0xCA, 0xF3, 0x08, 0x48, 0x00, 0x69, -0x91, 0x67, 0xB0, 0x67, 0x01, 0x49, 0x00, 0x18, -0x51, 0xC5, 0x04, 0x71, 0x18, 0x48, 0xF8, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xC0, 0xF0, 0x99, 0xA2, 0x02, 0x6B, 0x8C, 0xEB, -0x35, 0x23, 0xE4, 0xF2, 0x85, 0xA2, 0x30, 0xF0, -0x20, 0x6A, 0xEA, 0xF7, 0x0B, 0x4A, 0x00, 0x6B, -0x29, 0x10, 0xFF, 0xF7, 0xDF, 0xA2, 0xA0, 0xA2, -0xC0, 0x36, 0xC0, 0x36, 0x00, 0xF6, 0xA0, 0x35, -0xCD, 0xED, 0xFF, 0xF7, 0xDD, 0xA2, 0xCD, 0xED, -0xFF, 0xF7, 0xDE, 0xA2, 0xC0, 0x36, 0xCD, 0xED, -0x30, 0xF0, 0x20, 0x6E, 0xC3, 0xF0, 0xC4, 0x9E, -0xA0, 0xDE, 0xA2, 0xA2, 0xC1, 0xA2, 0x06, 0x4A, -0xA0, 0x35, 0xCD, 0xED, 0x1F, 0x6E, 0x6C, 0xEE, -0x00, 0xF6, 0xC0, 0x36, 0xCD, 0xED, 0x30, 0xF0, -0x20, 0x6E, 0xC3, 0xF0, 0xC8, 0x9E, 0x01, 0x4B, -0xCD, 0xED, 0x30, 0xF0, 0x20, 0x6E, 0xC3, 0xF0, -0xCC, 0x9E, 0xA0, 0xDE, 0xFF, 0x6D, 0x6C, 0xED, -0x83, 0xED, 0xD3, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xC0, 0xF0, 0x99, 0xA2, -0x04, 0x6B, 0x8C, 0xEB, 0x1C, 0x23, 0xE0, 0xF0, -0x6E, 0xA2, 0x03, 0x6A, 0x00, 0x68, 0x6C, 0xEA, -0x03, 0x72, 0x15, 0x61, 0x0E, 0x10, 0x14, 0x6D, -0xB8, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x2A, 0xF4, -0x08, 0x4A, 0x90, 0x67, 0x01, 0x48, 0x12, 0xED, -0xB5, 0xE2, 0x00, 0x18, 0x82, 0xC5, 0xFF, 0x6A, -0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF0, -0x5E, 0xA2, 0x43, 0xE8, 0xEC, 0x61, 0x30, 0xF0, -0x20, 0x68, 0xEA, 0xF5, 0x08, 0x48, 0x00, 0x69, -0x91, 0x67, 0xB0, 0x67, 0x01, 0x49, 0x00, 0x18, -0xB1, 0xC5, 0x40, 0x71, 0x08, 0x48, 0xF8, 0x61, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0x06, 0xF6, 0x7C, 0xA2, -0x7F, 0x6A, 0x6C, 0xEA, 0x01, 0x5A, 0x58, 0x67, -0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, -0x80, 0xF2, 0x48, 0x99, 0x30, 0xF0, 0x20, 0x6C, -0x26, 0xF6, 0x0A, 0x4C, 0x00, 0x6D, 0x07, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x68, 0x80, 0xF2, -0x48, 0x99, 0x90, 0x67, 0x66, 0xF3, 0x04, 0x4C, -0x00, 0x6D, 0x24, 0x6E, 0x40, 0xEA, 0x66, 0xF3, -0x44, 0xA0, 0x07, 0x97, 0x06, 0x91, 0x01, 0x4A, -0x66, 0xF3, 0x44, 0xC0, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x26, 0xF6, 0x4A, 0xA2, 0x01, 0x6B, 0x46, 0x32, -0x6C, 0xEA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x26, 0xF6, 0x6A, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x26, 0xF6, 0x4A, 0xA2, 0xFF, 0x6B, 0x56, 0x32, -0x8E, 0xEA, 0x6C, 0xEA, 0x01, 0x5A, 0x58, 0x67, -0x6C, 0xEA, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0xFF, 0xC8, 0x00, 0x6B, 0x06, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0xAA, 0xF1, 0x6B, 0xA2, -0x01, 0x6A, 0x4C, 0xEB, 0x05, 0x97, 0x43, 0x67, -0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x00, 0x18, 0x4D, 0xC6, -0x01, 0x72, 0x3C, 0x61, 0x30, 0xF0, 0x20, 0x68, -0x46, 0xF5, 0x18, 0x48, 0xC3, 0xF3, 0x6D, 0xA0, -0x03, 0x69, 0x43, 0x67, 0x2C, 0xEA, 0x32, 0x2A, -0x43, 0xF4, 0x44, 0xA0, 0x2F, 0x2A, 0x04, 0x6A, -0x6C, 0xEA, 0x2C, 0x2A, 0x10, 0x6A, 0x6C, 0xEA, -0x29, 0x2A, 0xC3, 0xF3, 0x68, 0xA0, 0x20, 0x6A, -0x6C, 0xEA, 0x24, 0x22, 0xA3, 0xF3, 0x54, 0xA0, -0x21, 0x2A, 0x00, 0x18, 0x09, 0xC9, 0x1E, 0x2A, -0x44, 0xF3, 0x4C, 0xA0, 0x4C, 0xE9, 0x03, 0x71, -0x19, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, -0x50, 0x9A, 0x60, 0xA2, 0x02, 0x6A, 0x6C, 0xEA, -0x11, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, -0x90, 0x9A, 0x01, 0x6B, 0x40, 0xA4, 0x4C, 0xEB, -0x01, 0x6A, 0x09, 0x23, 0x80, 0xA4, 0xFC, 0x6B, -0x00, 0x6A, 0x8C, 0xEB, 0x80, 0x73, 0x03, 0x60, -0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, -0xC0, 0xF0, 0x92, 0xA3, 0x04, 0x6A, 0x8C, 0xEA, -0x0C, 0x22, 0xC0, 0xF0, 0x53, 0xA3, 0x09, 0x22, -0xC0, 0xF0, 0x54, 0xA3, 0x06, 0x22, 0xC0, 0xF0, -0x75, 0xA3, 0x00, 0x6A, 0x03, 0x23, 0x01, 0x6A, -0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0xFF, 0x6A, 0x4C, 0xEC, 0x32, 0x6B, 0xAC, 0xEA, -0xBD, 0x67, 0x70, 0xC5, 0x02, 0x5C, 0x02, 0x6B, -0x6F, 0xCD, 0x92, 0xC5, 0x02, 0x60, 0x53, 0xC5, -0x04, 0x10, 0x01, 0x6A, 0x4B, 0xEA, 0x7D, 0x67, -0x53, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, -0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, -0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x6C, 0x00, 0x18, 0x9F, 0xD7, 0x05, 0x97, -0x30, 0xF0, 0x20, 0x6B, 0x66, 0xF3, 0x04, 0x4B, -0x00, 0x6C, 0x86, 0xDB, 0x87, 0xDB, 0x44, 0xDB, -0x45, 0xDB, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x66, 0xF3, 0x04, 0x4A, -0x00, 0x6B, 0xFF, 0x69, 0x68, 0xC2, 0x8C, 0xE9, -0x00, 0x18, 0x36, 0xC9, 0x28, 0x22, 0x30, 0xF0, -0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, 0xC0, 0xF0, -0x53, 0xA0, 0xC0, 0xF0, 0x74, 0xA0, 0x58, 0xEB, -0x12, 0xEA, 0x43, 0xF4, 0x51, 0xC0, 0x00, 0x18, -0xE4, 0xC8, 0x03, 0x22, 0x43, 0xF4, 0x11, 0xA0, -0x05, 0x10, 0xC0, 0xF0, 0x54, 0xA0, 0x01, 0x72, -0x12, 0x61, 0x01, 0x68, 0x30, 0xF0, 0x20, 0x6A, -0x02, 0x58, 0xAA, 0xF1, 0x0A, 0xC2, 0x08, 0x61, -0x91, 0x67, 0x00, 0x18, 0x7A, 0xDD, 0x91, 0x67, -0xB0, 0x67, 0x00, 0x18, 0x80, 0xDF, 0x03, 0x10, -0x91, 0x67, 0x00, 0x18, 0x8B, 0xDD, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, -0xAC, 0xEA, 0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x66, 0xF3, 0x04, 0x4A, 0x6A, 0xA2, 0x01, 0x4B, -0x6A, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0xAA, 0xF1, -0x6A, 0xA3, 0x01, 0x73, 0x0E, 0x61, 0x1B, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x66, 0xF3, 0x04, 0x4A, -0x69, 0xA2, 0x01, 0x4B, 0x69, 0xC2, 0x30, 0xF0, -0x20, 0x6B, 0xAA, 0xF1, 0x6A, 0xA3, 0x01, 0x73, -0x0E, 0x61, 0x68, 0xA2, 0x01, 0x4B, 0x68, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x66, 0xF3, 0x4C, 0xA2, -0x0A, 0x5A, 0x00, 0x6A, 0x05, 0x61, 0x00, 0x18, -0x5A, 0xC9, 0x00, 0x6A, 0x01, 0x10, 0x01, 0x6A, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0xFF, 0x6A, -0x4C, 0xEC, 0x12, 0x2C, 0x10, 0xF0, 0x23, 0x6C, -0x47, 0xF2, 0x0D, 0x4C, 0x00, 0x18, 0x62, 0xDC, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x43, 0xF4, 0x93, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, -0x8C, 0xEB, 0x43, 0xF4, 0x73, 0xC2, 0x29, 0x10, -0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, -0xC0, 0xF0, 0x92, 0xA0, 0x04, 0x6B, 0x8C, 0xEB, -0x4C, 0xEB, 0x1F, 0x23, 0x30, 0xF0, 0x20, 0x6A, -0x66, 0xF3, 0x04, 0x4A, 0x66, 0xA2, 0xC0, 0xF0, -0xD5, 0xA0, 0x10, 0xF0, 0x23, 0x6C, 0x01, 0x4B, -0x66, 0xC2, 0x0A, 0x6B, 0x78, 0xEE, 0x00, 0x6A, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, -0x4C, 0x9A, 0x47, 0xF2, 0x0D, 0x4C, 0x00, 0x6D, -0x01, 0x6F, 0x12, 0xEE, 0x40, 0xEA, 0x43, 0xF4, -0x73, 0xA0, 0x01, 0x6A, 0x6D, 0xEA, 0x43, 0xF4, -0x53, 0xC0, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x80, 0x18, 0x54, 0x48, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF0, 0x74, 0x9A, 0xFF, 0xF7, 0x1F, 0x6A, -0x80, 0xAB, 0x8C, 0xEA, 0x02, 0xF4, 0x03, 0x6C, -0x4C, 0xEC, 0x80, 0xCB, 0x40, 0xCB, 0x30, 0xF0, -0x20, 0x6A, 0xAA, 0xF1, 0x2F, 0xA2, 0x35, 0x10, -0x80, 0xF3, 0x4E, 0x41, 0x4C, 0x32, 0x09, 0xE2, -0xC1, 0x9A, 0x2C, 0x32, 0x09, 0xE2, 0x63, 0xF4, -0xF8, 0x9A, 0x06, 0xD2, 0x00, 0x6A, 0x63, 0xF4, -0xA8, 0x98, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x21, 0x6B, 0xE0, 0xF2, -0x58, 0x9A, 0x90, 0xF5, 0x10, 0x4B, 0x00, 0x6C, -0xB5, 0xE3, 0x40, 0xEA, 0x01, 0x72, 0x12, 0x61, -0x06, 0x92, 0x05, 0x6C, 0x01, 0x49, 0x63, 0xF4, -0x78, 0x9A, 0x63, 0xF4, 0x48, 0x98, 0x49, 0xE3, -0x63, 0xF4, 0x48, 0xD8, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x4C, 0x9A, 0x40, 0xEA, 0xFF, 0x6A, -0x4C, 0xE9, 0x07, 0x10, 0x04, 0xF3, 0x44, 0x98, -0x08, 0x6B, 0x6D, 0xEA, 0x04, 0xF3, 0x44, 0xD8, -0x09, 0x10, 0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, -0x18, 0x48, 0x43, 0xF4, 0x57, 0xA0, 0x08, 0x4A, -0x42, 0xE9, 0xC2, 0x61, 0x30, 0xF0, 0x20, 0x68, -0x46, 0xF5, 0x18, 0x48, 0x43, 0xF4, 0x37, 0xC0, -0x00, 0x18, 0xDF, 0xD2, 0x01, 0x2A, 0xFF, 0x17, -0x00, 0x18, 0xEC, 0xC7, 0xC4, 0xF2, 0x80, 0xA8, -0xFF, 0xF7, 0x1F, 0x6A, 0x00, 0x6D, 0xFF, 0x4C, -0x4C, 0xEC, 0x00, 0x18, 0xFD, 0xDE, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF0, 0x78, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0x03, 0xF0, 0x8C, 0x9C, 0x40, 0x9B, -0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF0, 0x5C, 0x9A, 0x04, 0x6C, 0x60, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, 0x40, 0x9A, -0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, -0x64, 0x9A, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF2, 0x64, 0x98, -0xE3, 0xF0, 0x48, 0x9A, 0x60, 0xDA, 0x30, 0xF0, -0x20, 0x6A, 0xC4, 0xF2, 0x68, 0x98, 0xE3, 0xF0, -0x4C, 0x9A, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF0, 0x50, 0x9A, 0x00, 0x6B, 0x60, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF2, 0x60, 0xA0, -0xE3, 0xF0, 0x54, 0x9A, 0x60, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0xE4, 0xF2, 0x61, 0xA0, 0xE3, 0xF0, -0x58, 0x9A, 0x60, 0xC2, 0x0B, 0x97, 0x0A, 0x91, -0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x6B, 0x8C, 0xEB, 0x01, 0x6A, 0x60, 0x2B, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, 0x5C, 0x9A, -0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, -0x40, 0x9A, 0x4C, 0xEB, 0x00, 0x6A, 0x54, 0x23, -0x30, 0xF0, 0x20, 0x6A, 0xAA, 0xF1, 0x4C, 0xA2, -0x01, 0x72, 0x02, 0x61, 0x00, 0x18, 0xD6, 0xC7, -0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, -0x01, 0x6C, 0x00, 0x18, 0xBC, 0xDE, 0x43, 0xF4, -0x56, 0xA0, 0x00, 0x69, 0x43, 0xF4, 0x57, 0xC0, -0x63, 0xF4, 0x44, 0x98, 0x63, 0xF4, 0x24, 0xD8, -0x63, 0xF4, 0x48, 0xD8, 0x00, 0x6A, 0x43, 0xF4, -0x56, 0xC0, 0x00, 0x18, 0xF9, 0xC7, 0x00, 0x18, -0xB9, 0xC9, 0x00, 0x18, 0x31, 0xC8, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF4, 0xA0, 0x98, 0x43, 0xF4, -0xD8, 0x98, 0x43, 0xF4, 0xFC, 0x98, 0xE0, 0xF2, -0x58, 0x9A, 0x04, 0xD1, 0x05, 0xD1, 0x91, 0x67, -0x40, 0xEA, 0x01, 0x72, 0x06, 0x60, 0x04, 0xF3, -0x44, 0x98, 0x20, 0x6B, 0x6D, 0xEA, 0x04, 0xF3, -0x44, 0xD8, 0x00, 0x18, 0x89, 0xC8, 0x01, 0x6C, -0x00, 0x18, 0x83, 0xC7, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF0, 0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0x03, 0xF1, 0x84, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x00, 0x6B, 0x43, 0xF4, 0x76, 0xC2, -0x00, 0x6B, 0x63, 0xF4, 0x64, 0xDA, 0x01, 0x6A, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, -0x00, 0x18, 0x7A, 0xD4, 0x01, 0xE2, 0x30, 0xF0, -0x20, 0x6B, 0x1C, 0x30, 0x03, 0xF1, 0x08, 0x4B, -0x60, 0x9B, 0x04, 0xD0, 0xB0, 0x67, 0x30, 0xF0, -0x20, 0x68, 0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, -0x20, 0x69, 0xEE, 0xF6, 0x06, 0x49, 0x30, 0x4D, -0x75, 0xE5, 0x91, 0x67, 0x02, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6E, 0x04, 0x95, 0x03, 0xF1, -0x08, 0x4E, 0xC0, 0x9E, 0x80, 0xF2, 0x4C, 0x98, -0x87, 0x41, 0x32, 0x4D, 0xD5, 0xE5, 0x10, 0x4C, -0x02, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x04, 0x95, 0x03, 0xF1, 0x08, 0x4B, 0x60, 0x9B, -0x80, 0xF2, 0x4C, 0x98, 0x34, 0x4D, 0x30, 0xF0, -0x20, 0x6C, 0x75, 0xE5, 0xAE, 0xF7, 0x00, 0x4C, -0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x04, 0x96, 0x03, 0xF1, 0x08, 0x4B, 0x60, 0x9B, -0x80, 0xF2, 0x4C, 0x98, 0x38, 0x4E, 0x87, 0x41, -0x75, 0xE6, 0x04, 0xD6, 0x13, 0x4C, 0xA0, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0x96, -0x03, 0xF1, 0xAC, 0x9B, 0x80, 0xF2, 0x4C, 0x98, -0x87, 0x41, 0xB5, 0xE6, 0x0B, 0x4C, 0x01, 0x6E, -0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, 0x00, 0x18, -0x7A, 0xD4, 0x01, 0xE2, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF1, 0xB0, 0x9A, 0x1C, 0x30, 0x30, 0xF0, -0x20, 0x6C, 0xB5, 0xE0, 0x2B, 0xF0, 0x1C, 0x4C, -0x10, 0x6E, 0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xE4, 0xF2, 0x69, 0xA2, -0x7C, 0x33, 0x43, 0xF4, 0x7C, 0xDA, 0x05, 0x97, -0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xDD, 0x63, 0x45, 0x62, 0x44, 0xD1, 0x43, 0xD0, -0x30, 0xF0, 0x20, 0x6D, 0x1D, 0x00, 0x90, 0x67, -0x22, 0xF4, 0x0C, 0x4D, 0x80, 0x6E, 0x00, 0x18, -0xB9, 0xD4, 0x30, 0xF0, 0x20, 0x6D, 0x06, 0x04, -0xC2, 0xF3, 0x10, 0x4D, 0x5C, 0x6E, 0x00, 0x18, -0xB9, 0xD4, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, -0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xB0, 0x67, -0xCA, 0xF1, 0x0C, 0x4C, 0x80, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x00, 0x6B, 0x43, 0xF4, 0x76, 0xC2, 0x00, 0x6B, -0x63, 0xF4, 0x64, 0xDA, 0x3E, 0x02, 0x1E, 0x00, -0x40, 0xD2, 0x23, 0x67, 0x00, 0x6A, 0xFF, 0xF7, -0xBC, 0x98, 0xE0, 0x98, 0x04, 0xD2, 0x05, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x21, 0x6E, -0xE0, 0xF2, 0x58, 0x9A, 0x90, 0xF5, 0x10, 0x4E, -0x00, 0x6C, 0x39, 0xE6, 0x40, 0xEA, 0x0A, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x04, 0xF3, 0x64, 0x9A, 0x01, 0x6C, 0x8D, 0xEB, -0x04, 0xF3, 0x64, 0xDA, 0x40, 0x98, 0x14, 0x6C, -0x08, 0x48, 0x3E, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x4C, 0x9A, 0x40, 0xEA, 0x40, 0x92, -0x4A, 0xE8, 0x03, 0x60, 0x3E, 0x92, 0x45, 0xE1, -0xD5, 0x17, 0x30, 0xF0, 0x20, 0x68, 0x1D, 0x02, -0x06, 0x01, 0x4A, 0xF2, 0x0C, 0x48, 0x41, 0xD2, -0x40, 0x99, 0xFF, 0xF7, 0x1F, 0x6C, 0x01, 0x6D, -0x40, 0xD8, 0x4C, 0xEC, 0xAB, 0xED, 0x80, 0x18, -0x24, 0x39, 0x41, 0xD8, 0x41, 0x92, 0x04, 0x49, -0x08, 0x48, 0x4A, 0xE9, 0x58, 0x67, 0x3E, 0xD2, -0xEF, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF2, -0x54, 0x9A, 0x38, 0x6C, 0x30, 0xF0, 0x20, 0x68, -0x40, 0xEA, 0x46, 0xF5, 0x18, 0x48, 0xA3, 0xF5, -0x4C, 0xD8, 0x00, 0x18, 0x7A, 0xD4, 0xC4, 0xF2, -0x40, 0xC8, 0xC4, 0xF2, 0xA0, 0xA8, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF1, 0x48, 0x9A, 0x43, 0xF4, -0xFC, 0x98, 0xBC, 0x35, 0x30, 0xF0, 0x21, 0x6E, -0x55, 0xE5, 0x93, 0xF3, 0x10, 0x4E, 0x84, 0xF5, -0x01, 0x5F, 0x43, 0xF4, 0xB8, 0xD8, 0x63, 0xF4, -0xC0, 0xD8, 0x1F, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF1, 0x54, 0x9A, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF1, 0x60, 0x9B, 0xC0, 0xDA, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF1, 0x58, 0x9A, 0x01, 0x6D, -0xE0, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, -0x9C, 0x9A, 0x40, 0x9C, 0x6D, 0xEA, 0x40, 0xDC, -0xA3, 0xF3, 0x58, 0x98, 0x04, 0x6C, 0x6D, 0xEA, -0xA3, 0xF3, 0x58, 0xD8, 0x80, 0x18, 0xD7, 0x15, -0xFF, 0x17, 0x3E, 0x91, 0x30, 0xF0, 0x20, 0x6A, -0xE0, 0xF2, 0x58, 0x9A, 0x04, 0xD1, 0x05, 0xD1, -0x00, 0x6C, 0x40, 0xEA, 0x06, 0x2A, 0x04, 0xF3, -0x44, 0x98, 0x02, 0x6B, 0x6D, 0xEA, 0x04, 0xF3, -0x44, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x26, 0xF6, -0x71, 0xA2, 0x01, 0x6A, 0x00, 0x68, 0x6C, 0xEA, -0x11, 0x2A, 0x18, 0x10, 0x18, 0x6D, 0xB8, 0xE8, -0x49, 0xE0, 0xE4, 0xF2, 0x8C, 0xA2, 0x30, 0xF0, -0x20, 0x6B, 0x0A, 0xF3, 0x08, 0x4B, 0x01, 0x48, -0x12, 0xED, 0xB5, 0xE3, 0x00, 0x18, 0x39, 0xC5, -0xFF, 0x6A, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xE4, 0xF2, 0x68, 0xA2, -0x63, 0xE8, 0xE8, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x43, 0xF4, 0x74, 0xA2, -0x12, 0x23, 0xC0, 0xF0, 0x79, 0xA2, 0x01, 0x6A, -0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x68, -0xCA, 0xF3, 0x08, 0x48, 0x00, 0x69, 0x91, 0x67, -0xB0, 0x67, 0x01, 0x49, 0x00, 0x18, 0x39, 0xC5, -0x04, 0x71, 0x18, 0x48, 0xF8, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0xC0, 0xF0, -0x99, 0xA2, 0x02, 0x6B, 0x8C, 0xEB, 0x49, 0x23, -0xE4, 0xF2, 0xC5, 0xA2, 0x00, 0x6C, 0x30, 0xF0, -0x20, 0x6A, 0xEA, 0xF7, 0x08, 0x4A, 0x01, 0x6B, -0xA4, 0x67, 0x3B, 0x10, 0x30, 0xF0, 0x20, 0x68, -0x03, 0xF0, 0x0C, 0x98, 0x1F, 0x6F, 0x8C, 0xEF, -0x00, 0xF6, 0xE0, 0x37, 0x0D, 0xEF, 0x30, 0xF0, -0x20, 0x68, 0xC3, 0xF0, 0x0C, 0x98, 0xE0, 0xD8, -0x30, 0xF0, 0x20, 0x6F, 0xC3, 0xF0, 0xEC, 0x9F, -0xE0, 0x9F, 0x00, 0x57, 0x0B, 0x60, 0xFF, 0x68, -0x01, 0x4B, 0x0A, 0x6F, 0x0C, 0xEB, 0xFB, 0xEB, -0x01, 0x2F, 0xE5, 0xE8, 0x10, 0xEF, 0x0C, 0xEF, -0xEF, 0x2F, 0x19, 0x25, 0x30, 0xF0, 0x20, 0x6D, -0xC3, 0xF0, 0xA4, 0x9D, 0xA0, 0x9D, 0xA2, 0x37, -0xA0, 0xC2, 0x00, 0xF6, 0xA2, 0x35, 0xA3, 0xC2, -0x30, 0xF0, 0x20, 0x6D, 0xC3, 0xF0, 0xAC, 0x9D, -0xE1, 0xC2, 0xE2, 0x37, 0xE2, 0xC2, 0xE0, 0xAD, -0xFF, 0xF7, 0x1F, 0x6D, 0xEC, 0xED, 0xA4, 0xC2, -0xA2, 0x35, 0xA5, 0xC2, 0x01, 0x6D, 0x01, 0x4C, -0x06, 0x4A, 0xFF, 0x6F, 0x8C, 0xEF, 0xC3, 0xEF, -0xC1, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0xC0, 0xF0, 0x99, 0xA2, 0x04, 0x6B, -0x8C, 0xEB, 0x1C, 0x23, 0xE0, 0xF0, 0x6E, 0xA2, -0x03, 0x6A, 0x00, 0x68, 0x6C, 0xEA, 0x03, 0x72, -0x15, 0x61, 0x0E, 0x10, 0x14, 0x6D, 0xB8, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x2A, 0xF4, 0x08, 0x4A, -0x90, 0x67, 0x01, 0x48, 0x12, 0xED, 0xB5, 0xE2, -0x00, 0x18, 0x69, 0xC5, 0xFF, 0x6A, 0x4C, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF0, 0x5E, 0xA2, -0x43, 0xE8, 0xEC, 0x61, 0x30, 0xF0, 0x20, 0x68, -0xC0, 0xF3, 0x44, 0x98, 0x08, 0x6E, 0x03, 0xF3, -0x00, 0x6C, 0x0F, 0x6D, 0x40, 0xEA, 0x01, 0x6D, -0x23, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x30, 0xF0, -0x20, 0x69, 0x80, 0x18, 0x24, 0x39, 0x46, 0xF5, -0x18, 0x49, 0xC4, 0xF2, 0x58, 0xD9, 0xC0, 0xF3, -0x44, 0x98, 0x0A, 0x6E, 0x03, 0xF3, 0x00, 0x6C, -0x0F, 0x6D, 0x40, 0xEA, 0x01, 0x6D, 0x23, 0xF3, -0x00, 0x6C, 0xAB, 0xED, 0x80, 0x18, 0x24, 0x39, -0xC4, 0xF2, 0x5C, 0xD9, 0xC0, 0xF3, 0x44, 0x98, -0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x08, 0x6E, -0x40, 0xEA, 0x00, 0x18, 0xDF, 0xD2, 0x45, 0x97, -0x44, 0x91, 0x43, 0x90, 0x23, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x00, 0x6A, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, -0x58, 0x9A, 0xA3, 0xF0, 0xA8, 0x9B, 0x30, 0xF0, -0x21, 0x6E, 0x00, 0x6C, 0x73, 0xF3, 0x10, 0x4E, -0x20, 0x6F, 0x40, 0xEA, 0x0A, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x04, 0xF3, -0x64, 0x9A, 0x01, 0x6C, 0x8D, 0xEB, 0x04, 0xF3, -0x64, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x14, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x43, 0xF4, -0x75, 0xA2, 0x05, 0x23, 0x00, 0x6B, 0x43, 0xF4, -0x75, 0xC2, 0x00, 0x18, 0x88, 0xCA, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF0, 0x6C, 0x9A, 0xFD, 0x6A, -0x30, 0xF0, 0x20, 0x68, 0x80, 0xA3, 0xEA, 0xF5, -0x08, 0x48, 0x00, 0x69, 0x8C, 0xEA, 0x40, 0xC3, -0x00, 0x6C, 0x00, 0x18, 0x83, 0xC7, 0x00, 0x6C, -0x00, 0x18, 0xBC, 0xDE, 0x91, 0x67, 0xB0, 0x67, -0x01, 0x49, 0x00, 0x18, 0x9B, 0xC5, 0x40, 0x71, -0x08, 0x48, 0xF8, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF0, 0x48, 0x9A, 0x60, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0xC4, 0xF2, -0x64, 0xDA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, -0x6C, 0x9B, 0x60, 0x9B, 0xC4, 0xF2, 0x68, 0xDA, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, 0x64, 0x9B, -0x60, 0x9B, 0xC4, 0xF2, 0x6C, 0xDA, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF1, 0x68, 0x9B, 0x60, 0x9B, -0xC4, 0xF2, 0x70, 0xDA, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF1, 0x6C, 0x9B, 0x60, 0xA3, 0xE4, 0xF2, -0x62, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, -0x70, 0x9B, 0x60, 0x9B, 0xC4, 0xF2, 0x74, 0xDA, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0x74, 0x9B, -0x60, 0xA3, 0xE4, 0xF2, 0x60, 0xC2, 0x30, 0xF0, -0x20, 0x6B, 0xE3, 0xF0, 0x78, 0x9B, 0x60, 0xA3, -0xE4, 0xF2, 0x61, 0xC2, 0x09, 0x97, 0x08, 0x91, +0x06, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, +0x0E, 0x90, 0x24, 0x67, 0x4C, 0xE9, 0x03, 0x6B, +0x4C, 0xEF, 0x2C, 0xEB, 0x00, 0x6A, 0x0B, 0xD5, +0x0C, 0xD6, 0x04, 0xD7, 0x40, 0xC8, 0x00, 0x6A, +0x0A, 0x23, 0x28, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, +0x40, 0xA8, 0x01, 0x4A, 0x40, 0xC8, 0x1F, 0xF7, +0x00, 0x6A, 0x2C, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF2, 0x5C, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x02, 0xF3, 0x40, 0x9A, 0x49, 0xE1, +0x0B, 0x93, 0x40, 0x9A, 0x6C, 0xEA, 0x0C, 0x93, +0x6E, 0xEA, 0x04, 0x22, 0x40, 0xA8, 0x04, 0x93, +0x63, 0xEA, 0xDC, 0x61, 0x40, 0xA8, 0x04, 0x93, +0x63, 0xEA, 0x58, 0x67, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x68, -0x8C, 0xE8, 0x00, 0x18, 0x7A, 0xD4, 0x01, 0xE2, -0x1C, 0x34, 0x30, 0x4C, 0x80, 0x18, 0x69, 0x1C, -0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0xFF, 0x68, -0x8C, 0xE8, 0xC3, 0xF3, 0x88, 0xA2, 0x03, 0x6B, -0x6B, 0xEB, 0x41, 0x6D, 0x8C, 0xEB, 0xAB, 0xED, -0xAC, 0xEB, 0xC3, 0xF3, 0xA9, 0xA2, 0xC3, 0xF3, -0x68, 0xC2, 0x11, 0x6B, 0x00, 0x6C, 0x6B, 0xEB, -0xC3, 0xF3, 0x95, 0xC2, 0xC3, 0xF3, 0x8D, 0xC2, -0xAC, 0xEB, 0xC3, 0xF3, 0x96, 0xC2, 0x90, 0x67, -0xC3, 0xF3, 0x69, 0xC2, 0x00, 0x18, 0x8B, 0xDD, -0x90, 0x67, 0x00, 0x18, 0x84, 0xDD, 0x90, 0x67, -0x00, 0x18, 0xA0, 0xDD, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x46, 0xF5, 0x18, 0x48, 0x80, 0x18, 0x59, 0x1A, -0xC3, 0xF3, 0x4B, 0xA0, 0x01, 0x6C, 0xF0, 0x6D, -0x04, 0xD2, 0x00, 0x18, 0x22, 0xC6, 0x00, 0x18, -0x4A, 0xDF, 0x43, 0xF4, 0x54, 0xA0, 0x64, 0x22, -0x00, 0x18, 0x5C, 0xCB, 0x5C, 0xB9, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x7D, 0xB9, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, 0x21, 0x6C, -0xFC, 0xF7, 0x1C, 0x4C, 0xBD, 0x67, 0xA0, 0xDC, -0x9A, 0xB8, 0x00, 0x65, 0xBB, 0xB8, 0x00, 0x65, -0x00, 0x18, 0x0F, 0xDB, 0x30, 0xF0, 0x21, 0x69, -0xDC, 0xF7, 0x0C, 0x49, 0x00, 0x99, 0x32, 0xE8, -0x01, 0x99, 0x30, 0xE8, 0x42, 0x99, 0x63, 0x99, -0x84, 0x99, 0xA5, 0x99, 0xC6, 0x99, 0xE7, 0x99, -0x08, 0x99, 0x18, 0x65, 0x09, 0x99, 0x58, 0xB9, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, -0x21, 0x68, 0xDC, 0xF7, 0x0C, 0x48, 0x2A, 0x98, -0x1A, 0xB8, 0x00, 0x65, 0x58, 0xB9, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x79, 0xB9, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, 0x21, 0x69, -0x9C, 0xF7, 0x0C, 0x49, 0x09, 0xD9, 0x12, 0xE8, -0x00, 0xD9, 0x10, 0xE8, 0x01, 0xD9, 0x42, 0xD9, -0x63, 0xD9, 0x84, 0xD9, 0xA5, 0xD9, 0xC6, 0xD9, -0xE7, 0xD9, 0x18, 0x67, 0x08, 0xD9, 0x1F, 0x67, -0x0B, 0xD9, 0x1D, 0x67, 0x0C, 0xD9, 0x1F, 0xF7, -0x32, 0x68, 0x46, 0xF4, 0x16, 0x48, 0xFF, 0xF7, -0x1C, 0xD9, 0x30, 0xF0, 0x21, 0x68, 0x9C, 0xF7, -0x0C, 0x48, 0x3B, 0xB8, 0x00, 0x65, 0x2A, 0xD8, -0x1A, 0xB8, 0x00, 0x65, 0x00, 0x18, 0xE8, 0xDA, -0x00, 0x6C, 0x00, 0x18, 0x10, 0xCA, 0x10, 0x10, -0x00, 0x6C, 0x00, 0x18, 0xBC, 0xDE, 0x00, 0x6C, -0x00, 0x18, 0x83, 0xC7, 0x00, 0x18, 0x0F, 0xDB, -0x00, 0x18, 0xE8, 0xDA, 0x01, 0x6C, 0x00, 0x18, -0x83, 0xC7, 0x01, 0x6C, 0x00, 0x18, 0xBC, 0xDE, -0x04, 0x95, 0x01, 0x6C, 0x00, 0x18, 0x22, 0xC6, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, 0x00, 0x18, -0xDC, 0xE0, 0x00, 0x18, 0x84, 0xD4, 0x01, 0x72, -0x03, 0x60, 0x08, 0x6C, 0x00, 0x18, 0x99, 0xE0, -0x08, 0x20, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, -0x50, 0x9A, 0x00, 0x6D, 0xFF, 0x6C, 0xC5, 0x67, -0x40, 0xEA, 0x01, 0x6C, 0x04, 0x6D, 0x00, 0x18, -0x22, 0xC6, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, -0x74, 0x9B, 0x43, 0xF4, 0x84, 0x9A, 0x8C, 0xEB, -0x04, 0x73, 0x0C, 0x61, 0xC3, 0xF3, 0x6B, 0xA2, -0x04, 0x6C, 0x8C, 0xEB, 0x07, 0x23, 0x01, 0x6B, -0x43, 0xF4, 0x66, 0xC2, 0x01, 0x6C, 0x00, 0x6D, -0x00, 0x18, 0x43, 0xC9, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0xFB, 0xC8, 0x20, 0x2A, 0x00, 0x18, -0x7F, 0xD4, 0x34, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF1, 0x58, 0x9A, 0x40, 0xA2, 0x2E, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x78, 0xA2, -0x01, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, -0x25, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, -0x5C, 0x9A, 0x60, 0xA2, 0x02, 0x6A, 0x6C, 0xEA, -0x1D, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, -0x40, 0x9A, 0x40, 0xA2, 0x17, 0x2A, 0x00, 0x18, -0x84, 0xD4, 0x14, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xA0, 0xF1, 0x75, 0xA2, -0xA0, 0xF1, 0x56, 0xA2, 0x6E, 0xEA, 0x0A, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x44, 0x9A, -0x60, 0xA2, 0x0F, 0x6A, 0x6C, 0xEA, 0x01, 0x5A, -0x58, 0x67, 0x01, 0x10, 0x00, 0x6A, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x2A, 0xF1, 0x43, 0xA2, -0x02, 0x22, 0x08, 0x72, 0x06, 0x61, 0x00, 0x18, -0x29, 0xCC, 0x01, 0x72, 0x02, 0x61, 0x00, 0x18, -0xC3, 0xCB, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF7, 0x7C, 0x9B, 0x10, 0xF0, 0x23, 0x6A, -0x46, 0xF1, 0x09, 0x4A, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x2A, 0xF1, 0x60, 0xA2, 0x01, 0x6A, -0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x49, 0xCC, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, 0x7C, 0x9B, -0x10, 0xF0, 0x23, 0x6A, 0x46, 0xF1, 0x0B, 0x4A, -0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0x24, 0x67, 0x2A, 0xF1, -0x82, 0xA3, 0x02, 0x6B, 0xFF, 0x6A, 0x8C, 0xEB, -0x4C, 0xED, 0x4C, 0xEB, 0x4C, 0xE9, 0x08, 0xD5, -0x02, 0x6A, 0x75, 0x23, 0x30, 0xF0, 0x20, 0x6A, -0x86, 0xF3, 0x4B, 0xA2, 0x2E, 0xEA, 0x5F, 0x22, -0x00, 0x6A, 0x7D, 0x67, 0x30, 0xF0, 0x20, 0x6C, -0x05, 0xD2, 0x58, 0xC3, 0x48, 0xCB, 0x86, 0xF3, -0x4A, 0xA4, 0x27, 0x2A, 0x30, 0xF0, 0x20, 0x6B, -0x86, 0xF3, 0x49, 0xA3, 0x22, 0x2A, 0x30, 0xF0, -0x20, 0x6C, 0x86, 0xF3, 0x48, 0xA4, 0x1D, 0x2A, -0x30, 0xF0, 0x20, 0x68, 0x6E, 0xF6, 0x08, 0x48, -0x90, 0x67, 0x05, 0x05, 0x80, 0x18, 0xAD, 0x4D, -0x90, 0x67, 0x04, 0x05, 0x80, 0x18, 0x9B, 0x4D, -0x7D, 0x67, 0x50, 0xA3, 0x30, 0xF0, 0x20, 0x6C, -0x86, 0xF3, 0x4A, 0xC4, 0x54, 0xA3, 0x75, 0xA3, -0x30, 0xF0, 0x20, 0x6C, 0x4D, 0xEB, 0x86, 0xF3, -0x69, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0x86, 0xF3, -0x48, 0xC3, 0x03, 0x21, 0x01, 0x71, 0x12, 0x60, -0x26, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF3, -0xA9, 0xA2, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6C, 0x86, 0xF3, 0xCA, 0xA2, 0x30, 0xF0, -0x20, 0x6A, 0x6E, 0xF6, 0x08, 0x4C, 0x86, 0xF3, -0xE8, 0xA2, 0x13, 0x10, 0x30, 0xF0, 0x20, 0x68, -0x6E, 0xF6, 0x08, 0x48, 0x90, 0x67, 0x80, 0x18, -0x41, 0x4C, 0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x4C, 0x9A, 0x32, 0x6C, 0x40, 0xEA, -0xF1, 0x17, 0x01, 0x6D, 0x90, 0x67, 0xC5, 0x67, -0xE5, 0x67, 0x80, 0x18, 0x9C, 0x51, 0x30, 0xF0, -0x20, 0x6A, 0x86, 0xF3, 0x2B, 0xC2, 0x08, 0x94, -0x00, 0x6A, 0x0D, 0x24, 0x30, 0xF0, 0x20, 0x6B, -0x86, 0xF3, 0x4A, 0xC3, 0x30, 0xF0, 0x20, 0x6B, -0x86, 0xF3, 0x49, 0xC3, 0x30, 0xF0, 0x20, 0x6B, -0x86, 0xF3, 0x48, 0xC3, 0x00, 0x6A, 0x0D, 0x97, -0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x68, 0x80, 0xF2, 0x48, 0x98, -0x30, 0xF0, 0x20, 0x6C, 0x2A, 0xF1, 0x00, 0x4C, -0x00, 0x6D, 0x80, 0x6E, 0x40, 0xEA, 0x80, 0xF2, -0x48, 0x98, 0x30, 0xF0, 0x20, 0x6C, 0x2C, 0x6E, -0x4B, 0xF0, 0x0C, 0x4C, 0x00, 0x6D, 0x30, 0xF0, -0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, 0x40, 0xEA, -0x00, 0x18, 0xE9, 0xC8, 0x02, 0x6A, 0xC0, 0xF0, -0x46, 0xC0, 0x01, 0x6A, 0xC3, 0xF3, 0x52, 0xC0, -0xC3, 0xF3, 0x53, 0xC0, 0x0C, 0x6A, 0xC3, 0xF3, -0x54, 0xC0, 0x00, 0x6C, 0x06, 0x6A, 0xC3, 0xF3, -0x5C, 0xC8, 0xA4, 0x67, 0x00, 0x18, 0x22, 0xC6, -0x02, 0x6C, 0x0C, 0x6D, 0x00, 0x18, 0x22, 0xC6, -0x01, 0x6C, 0x0C, 0x6D, 0x00, 0x18, 0x22, 0xC6, -0x30, 0xF0, 0x20, 0x6C, 0x2A, 0xF1, 0x12, 0x4C, -0x00, 0x6D, 0x00, 0x18, 0xDD, 0xDE, 0xC0, 0xF0, -0x6D, 0xA0, 0x03, 0x6A, 0xC0, 0xF0, 0x4B, 0xC0, -0x0F, 0x6A, 0xC0, 0xF0, 0x4C, 0xC0, 0x01, 0x6A, -0x6C, 0xEA, 0x28, 0x6B, 0x6D, 0xEA, 0xC0, 0xF0, -0x4D, 0xC0, 0x07, 0x6A, 0xC0, 0xF0, 0x4E, 0xC0, -0xE3, 0xF3, 0x46, 0xA0, 0x30, 0xF0, 0x20, 0x69, -0x00, 0x6C, 0x03, 0x4A, 0xE3, 0xF3, 0x42, 0xC0, -0x0C, 0x6A, 0xE3, 0xF3, 0x43, 0xC0, 0x40, 0xF4, -0x5C, 0x99, 0xA4, 0x67, 0x40, 0xEA, 0x40, 0xF4, -0x5C, 0x99, 0x01, 0x6C, 0x00, 0x6D, 0x40, 0xEA, -0x40, 0xF4, 0x5C, 0x99, 0x02, 0x6C, 0x00, 0x6D, -0x40, 0xEA, 0x40, 0xF4, 0x5C, 0x99, 0x03, 0x6C, -0x00, 0x6D, 0x40, 0xEA, 0x40, 0xF4, 0x5C, 0x99, -0x04, 0x6C, 0x00, 0x6D, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF1, 0x68, 0x9A, 0xFC, 0x6A, -0x00, 0x6D, 0x80, 0xA3, 0xC5, 0x67, 0x00, 0x69, -0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF2, 0x50, 0x9A, 0xFF, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x7C, 0xA0, -0x63, 0xF0, 0x40, 0x9A, 0xA3, 0xF3, 0x34, 0xC0, -0xFF, 0x6C, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF1, 0x6C, 0x9A, 0x08, 0x6D, 0xAB, 0xED, -0x40, 0xA3, 0x80, 0xF6, 0x10, 0x6E, 0x8C, 0xEA, -0xAC, 0xEA, 0x05, 0x6D, 0xAD, 0xEA, 0x8C, 0xEA, -0x30, 0xF0, 0x20, 0x6C, 0x40, 0xC3, 0xAA, 0xF1, -0x0C, 0x4C, 0x00, 0x6D, 0x00, 0x18, 0xB4, 0xD4, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x50, 0x9A, -0x4B, 0x6B, 0x60, 0xC2, 0x0C, 0x6A, 0x43, 0xF4, -0x44, 0xC0, 0xC3, 0xF3, 0x4B, 0xC0, 0x43, 0xF4, -0x25, 0xC0, 0x43, 0xF4, 0x27, 0xC0, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0x2A, 0xF1, 0xA0, 0xA3, -0x04, 0x6B, 0xFF, 0x6A, 0xAC, 0xEB, 0x4C, 0xEB, -0x4C, 0xEC, 0x06, 0x23, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF1, 0x54, 0x9A, 0x00, 0x6B, 0x60, 0xC2, -0x02, 0x6D, 0x00, 0x18, 0xC0, 0xDA, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF1, 0x58, 0x9A, 0x04, 0x69, -0x30, 0xF0, 0x20, 0x68, 0x20, 0xDA, 0x46, 0xF5, -0x18, 0x48, 0xC0, 0xF0, 0xCD, 0xA0, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, 0xFF, 0x6C, -0x59, 0x4C, 0x00, 0x6D, 0xC6, 0x36, 0x40, 0xEA, -0xC3, 0xF3, 0x48, 0xA0, 0x07, 0x97, 0x4D, 0xE9, -0xC3, 0xF3, 0x28, 0xC0, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x29, 0x22, -0x05, 0x5C, 0x1D, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x88, 0x34, 0x42, 0xF3, 0x0C, 0x4A, 0x89, 0xE2, -0x40, 0x9A, 0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x01, 0x6C, 0x43, 0xF1, 0xBC, 0x9A, 0x0D, 0x10, -0x04, 0x6C, 0x0F, 0x6D, 0x0A, 0x10, 0x04, 0x6C, -0xF0, 0x6D, 0x07, 0x10, 0x04, 0x6C, 0x01, 0xF7, -0x00, 0x6D, 0x03, 0x10, 0x04, 0x6C, 0x1E, 0xF0, -0x00, 0x6D, 0x80, 0x18, 0x97, 0x57, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF1, 0x68, 0x9A, 0xFF, 0x6C, -0x07, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, -0x25, 0x10, 0x05, 0x5C, 0x1D, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0x88, 0x34, 0x62, 0xF3, 0x00, 0x4A, -0x89, 0xE2, 0x40, 0x9A, 0x00, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x01, 0x6C, 0x43, 0xF1, 0xBC, 0x9A, -0x0D, 0x10, 0x04, 0x6C, 0x0F, 0x6D, 0x0A, 0x10, -0x04, 0x6C, 0xF0, 0x6D, 0x07, 0x10, 0x04, 0x6C, -0x01, 0xF7, 0x00, 0x6D, 0x03, 0x10, 0x04, 0x6C, -0x1E, 0xF0, 0x00, 0x6D, 0x80, 0x18, 0xC8, 0x57, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x68, 0x9A, -0xFC, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, -0xAC, 0xEA, 0x27, 0x22, 0x05, 0x5C, 0x4B, 0x60, -0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, 0x62, 0xF3, -0x14, 0x4A, 0x89, 0xE2, 0x40, 0x9A, 0x00, 0xEA, -0x00, 0x6C, 0x08, 0x6D, 0x17, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x04, 0x6C, 0xA3, 0xF0, 0xB8, 0x9A, -0x11, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x6C, -0x63, 0xF1, 0xA0, 0x9A, 0x0B, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x04, 0x6C, 0x63, 0xF1, 0xA4, 0x9A, -0x05, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, -0xA8, 0x9A, 0x04, 0x6C, 0x80, 0x18, 0x97, 0x57, -0x26, 0x10, 0x05, 0x5C, 0x24, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0x88, 0x34, 0x82, 0xF3, 0x08, 0x4A, -0x89, 0xE2, 0x40, 0x9A, 0x00, 0xEA, 0x00, 0x6C, -0x08, 0x6D, 0x17, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x04, 0x6C, 0xA3, 0xF0, 0xB8, 0x9A, 0x11, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x04, 0x6C, 0x63, 0xF1, -0xA0, 0x9A, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x04, 0x6C, 0x63, 0xF1, 0xA4, 0x9A, 0x05, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, 0xA8, 0x9A, -0x04, 0x6C, 0x80, 0x18, 0xC8, 0x57, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0xFF, 0x6A, 0x63, 0xF1, 0x6C, 0x9B, 0x4C, 0xEC, -0x04, 0xD4, 0x20, 0xA3, 0x30, 0xF0, 0x20, 0x68, -0xFF, 0x6C, 0x4C, 0xE9, 0xA0, 0xF2, 0x50, 0x98, -0xA4, 0x67, 0x2D, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, 0x40, 0xEA, -0x06, 0x2A, 0xA0, 0xF2, 0x50, 0x98, 0xFF, 0x6C, -0xB1, 0x67, 0x2D, 0x6E, 0x0C, 0x10, 0x04, 0x94, -0x01, 0x6D, 0x00, 0x18, 0x4C, 0xCD, 0x00, 0x18, -0xF2, 0xE0, 0x07, 0x2A, 0xA0, 0xF2, 0x50, 0x98, -0xFF, 0x6C, 0xB1, 0x67, 0x5B, 0x6E, 0x40, 0xEA, -0x04, 0x10, 0x01, 0x6C, 0x00, 0x6D, 0x00, 0x18, -0x22, 0xC6, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x25, 0x67, 0x30, 0xF0, -0x20, 0x6D, 0x46, 0xF5, 0x18, 0x4D, 0x06, 0x67, -0xC3, 0xF3, 0xC9, 0xA5, 0x03, 0x6B, 0xFF, 0x6A, -0xCC, 0xEB, 0x4C, 0xEB, 0x4C, 0xEC, 0x4C, 0xE9, -0x4C, 0xE8, 0xE0, 0xF0, 0x06, 0x2B, 0xC3, 0xF3, -0x4B, 0xA5, 0x8E, 0xEA, 0xE0, 0xF0, 0x01, 0x22, -0x0D, 0x5C, 0xC0, 0xF0, 0x1E, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0x88, 0x34, 0x82, 0xF3, 0x1C, 0x4A, -0x89, 0xE2, 0x40, 0x9A, 0x00, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x2A, 0xF1, 0x43, 0xA2, 0x0E, 0x72, -0x03, 0x61, 0x90, 0x67, 0x00, 0x18, 0xCB, 0xC6, -0x30, 0xF0, 0x20, 0x6A, 0x2A, 0xF1, 0x43, 0xA2, -0x04, 0x2A, 0x01, 0x6C, 0xB0, 0x67, 0x00, 0x18, -0x0D, 0xCC, 0x30, 0xF0, 0x20, 0x6A, 0x2A, 0xF1, -0x43, 0xA2, 0x06, 0x72, 0x03, 0x61, 0x90, 0x67, -0x00, 0x18, 0x8A, 0xC6, 0x30, 0xF0, 0x20, 0x6A, -0x2A, 0xF1, 0x43, 0xA2, 0x04, 0x72, 0x09, 0x61, -0x05, 0x21, 0x91, 0x67, 0xB0, 0x67, 0x00, 0x18, -0x92, 0xD0, 0x03, 0x10, 0x90, 0x67, 0x00, 0x18, -0x7D, 0xC6, 0x30, 0xF0, 0x20, 0x6A, 0x2A, 0xF1, -0x43, 0xA2, 0x08, 0x72, 0xA0, 0xF0, 0x05, 0x61, -0x80, 0x18, 0x00, 0x40, 0xA2, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x2A, 0xF1, 0x43, 0xA2, 0x04, 0x2A, -0x01, 0x6C, 0xB0, 0x67, 0x00, 0x18, 0x0D, 0xCC, -0x30, 0xF0, 0x20, 0x6A, 0x2A, 0xF1, 0x43, 0xA2, -0x06, 0x72, 0x03, 0x61, 0x90, 0x67, 0x00, 0x18, -0x8A, 0xC6, 0x30, 0xF0, 0x20, 0x6A, 0x2A, 0xF1, -0x43, 0xA2, 0x0E, 0x72, 0x07, 0x61, 0x00, 0x18, -0x6F, 0xC6, 0x01, 0x72, 0x03, 0x61, 0x90, 0x67, -0x00, 0x18, 0xCB, 0xC6, 0x30, 0xF0, 0x20, 0x6A, -0x2A, 0xF1, 0x43, 0xA2, 0x0C, 0x72, 0x7D, 0x61, -0x00, 0x18, 0x6F, 0xC6, 0x01, 0x72, 0x79, 0x61, -0x90, 0x67, 0x00, 0x18, 0xAC, 0xC6, 0x75, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x2A, 0xF1, 0x43, 0xA2, -0x0E, 0x72, 0x07, 0x61, 0x00, 0x18, 0x6F, 0xC6, -0x01, 0x72, 0x03, 0x61, 0x90, 0x67, 0x00, 0x18, -0xCB, 0xC6, 0x30, 0xF0, 0x20, 0x6A, 0x2A, 0xF1, -0x43, 0xA2, 0x06, 0x72, 0x03, 0x61, 0x90, 0x67, -0x00, 0x18, 0x8A, 0xC6, 0x30, 0xF0, 0x20, 0x6A, -0x2A, 0xF1, 0x43, 0xA2, 0x0C, 0x72, 0x07, 0x61, -0x00, 0x18, 0x6F, 0xC6, 0x01, 0x72, 0x03, 0x61, -0x90, 0x67, 0x00, 0x18, 0xAC, 0xC6, 0x30, 0xF0, -0x20, 0x6A, 0x2A, 0xF1, 0x43, 0xA2, 0x04, 0x72, -0x4C, 0x61, 0x00, 0x18, 0x11, 0xC9, 0x01, 0x72, -0x48, 0x61, 0x90, 0x67, 0x00, 0x18, 0x77, 0xCD, -0x44, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x2A, 0xF1, -0x43, 0xA2, 0x0E, 0x72, 0x07, 0x61, 0x00, 0x18, -0x6F, 0xC6, 0x01, 0x72, 0x03, 0x61, 0x90, 0x67, -0x00, 0x18, 0xCB, 0xC6, 0x30, 0xF0, 0x20, 0x6A, -0x2A, 0xF1, 0x43, 0xA2, 0x06, 0x72, 0x03, 0x61, -0x90, 0x67, 0x00, 0x18, 0x8A, 0xC6, 0x30, 0xF0, -0x20, 0x6A, 0x2A, 0xF1, 0x43, 0xA2, 0x0C, 0x72, -0x07, 0x61, 0x00, 0x18, 0x6F, 0xC6, 0x01, 0x72, -0x03, 0x61, 0x90, 0x67, 0x00, 0x18, 0xAC, 0xC6, -0x30, 0xF0, 0x20, 0x6A, 0x2A, 0xF1, 0x43, 0xA2, -0x04, 0x2A, 0x01, 0x6C, 0xB0, 0x67, 0x00, 0x18, -0x0D, 0xCC, 0x30, 0xF0, 0x20, 0x6A, 0x2A, 0xF1, -0x43, 0xA2, 0x04, 0x72, 0x12, 0x61, 0x00, 0x18, -0xDD, 0xC6, 0x0F, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xC3, 0xF3, 0x6B, 0xA2, -0x0C, 0x73, 0x07, 0x61, 0xC3, 0xF3, 0x68, 0xA2, -0x20, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x80, 0x18, -0x0A, 0x40, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x24, 0x67, -0x4C, 0xED, 0x00, 0x6C, 0x4C, 0xE9, 0x04, 0xD5, -0x00, 0x18, 0x9F, 0xD7, 0x02, 0x67, 0x00, 0x18, -0xE4, 0xC8, 0x2D, 0x22, 0x16, 0x29, 0x30, 0xF0, -0x20, 0x6A, 0x66, 0xF3, 0x04, 0x4A, 0x63, 0xA2, -0x84, 0x9A, 0xA6, 0x9A, 0x01, 0x4B, 0x63, 0xC2, -0x93, 0xE0, 0xE0, 0xF3, 0x08, 0x6B, 0x7B, 0xEC, -0x01, 0x2B, 0xE5, 0xE8, 0x05, 0xDA, 0x12, 0xEB, -0xAD, 0xE3, 0x66, 0xDA, 0x80, 0x18, 0x0A, 0x40, -0x44, 0x10, 0x80, 0x18, 0x00, 0x40, 0x30, 0xF0, -0x20, 0x6A, 0x66, 0xF3, 0x04, 0x4A, 0x85, 0x9A, -0xE0, 0xF3, 0x08, 0x6B, 0xA7, 0x9A, 0x93, 0xE0, -0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, 0x04, 0xDA, -0x12, 0xEB, 0xAD, 0xE3, 0x67, 0xDA, 0x62, 0xA2, -0x01, 0x4B, 0x62, 0xC2, 0x2E, 0x10, 0x01, 0x71, -0x19, 0x61, 0x04, 0x96, 0x04, 0x6C, 0x01, 0x6D, -0x00, 0x18, 0x93, 0xCD, 0x30, 0xF0, 0x20, 0x6A, -0x66, 0xF3, 0x04, 0x4A, 0x85, 0x9A, 0xE0, 0xF3, -0x08, 0x6B, 0xA7, 0x9A, 0x93, 0xE0, 0x7B, 0xEC, -0x01, 0x2B, 0xE5, 0xE8, 0x04, 0xDA, 0x12, 0xEB, -0xAD, 0xE3, 0x67, 0xDA, 0x64, 0xA2, 0x01, 0x4B, -0x64, 0xC2, 0x13, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x66, 0xF3, 0x04, 0x4A, 0x84, 0x9A, 0xE0, 0xF3, -0x08, 0x6B, 0xA6, 0x9A, 0x93, 0xE0, 0x7B, 0xEC, -0x01, 0x2B, 0xE5, 0xE8, 0x05, 0xDA, 0x12, 0xEB, -0xAD, 0xE3, 0x66, 0xDA, 0x65, 0xA2, 0x01, 0x4B, -0x65, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x66, 0xF3, -0x04, 0x4A, 0x66, 0x9A, 0x06, 0x23, 0x87, 0x9A, -0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, 0x12, 0xEB, -0x63, 0xDA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x66, 0xF3, 0x04, 0x4A, 0x61, 0xA2, 0x30, 0xF0, -0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, 0xC0, 0xF0, -0x32, 0xA0, 0x01, 0x4B, 0x61, 0xC2, 0x36, 0x31, -0x00, 0x18, 0xE4, 0xC8, 0x08, 0x22, 0x00, 0x18, -0xFF, 0xC8, 0x02, 0x22, 0x08, 0x6A, 0x01, 0x10, -0x0C, 0x6A, 0x43, 0xF4, 0x44, 0xC0, 0x00, 0x6C, -0x00, 0x18, 0x92, 0xC9, 0x00, 0x18, 0x51, 0xC9, -0x00, 0x18, 0xFF, 0xC8, 0x08, 0x22, 0x91, 0x67, -0x00, 0x18, 0x5A, 0xC9, 0x00, 0x6C, 0xB1, 0x67, -0x00, 0x18, 0x13, 0xCE, 0x07, 0x10, 0x01, 0x6C, -0xB1, 0x67, 0x00, 0x18, 0x13, 0xCE, 0x09, 0x6C, -0x00, 0x18, 0x99, 0xE0, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFF, 0x69, 0x04, 0x67, 0x00, 0x6C, 0x2C, 0xE8, -0xAC, 0xE9, 0x00, 0x18, 0x9F, 0xD7, 0x30, 0xF0, -0x20, 0x6B, 0x66, 0xF3, 0x04, 0x4B, 0xA8, 0x9B, -0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF1, 0x90, 0x9C, -0xB7, 0xE2, 0xA3, 0xEC, 0x01, 0x60, 0x48, 0xDB, -0x00, 0x18, 0xFF, 0xC8, 0x29, 0x22, 0x90, 0x67, -0x00, 0x18, 0x03, 0xC9, 0x25, 0x22, 0x00, 0x18, -0x36, 0xC9, 0x22, 0x22, 0x90, 0x67, 0xB1, 0x67, -0x00, 0x18, 0x78, 0xC9, 0x1D, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x43, 0xF4, -0x91, 0xA2, 0x43, 0xF4, 0x72, 0xA2, 0x63, 0xEC, -0x6F, 0xE4, 0x01, 0x60, 0x00, 0x6B, 0x43, 0xF4, -0x71, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xAA, 0xF1, -0x49, 0xA2, 0x0A, 0x2A, 0x90, 0x67, 0x00, 0x18, -0x5A, 0xC9, 0x01, 0x6C, 0xB0, 0x67, 0x00, 0x18, -0x13, 0xCE, 0x01, 0x6C, 0x00, 0x18, 0x92, 0xC9, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x66, 0xF3, 0x04, 0x4A, -0x67, 0xA2, 0x01, 0x4B, 0x67, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x43, 0xF4, -0x93, 0xA2, 0xC0, 0xF0, 0xB2, 0xA2, 0x02, 0x6B, -0x6B, 0xEB, 0x8C, 0xEB, 0x43, 0xF4, 0x73, 0xC2, -0x00, 0x6C, 0xB6, 0x35, 0x00, 0x18, 0x13, 0xCE, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, 0xC0, 0xF0, -0xA4, 0xA3, 0x04, 0x67, 0x7F, 0x6C, 0xAC, 0xEC, -0xFF, 0x6A, 0x01, 0x74, 0x4C, 0xE8, 0x20, 0x61, -0xC0, 0xF0, 0xA5, 0xA3, 0x10, 0x6C, 0x8B, 0xEC, -0xAC, 0xEC, 0x4C, 0xEC, 0x11, 0x24, 0xD0, 0x67, -0x0C, 0x6C, 0x00, 0x6D, 0x00, 0x18, 0x93, 0xCD, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, -0x00, 0x6D, 0xFF, 0x6C, 0xC5, 0x67, 0x40, 0xEA, -0x90, 0x67, 0x00, 0x18, 0x04, 0xCD, 0x08, 0x10, -0xC3, 0xF3, 0x4B, 0xA3, 0x05, 0x2A, 0x04, 0x6C, -0x01, 0x6D, 0xD0, 0x67, 0x00, 0x18, 0x93, 0xCD, -0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, -0x00, 0x18, 0xA2, 0xCE, 0x00, 0x6C, 0xA4, 0x67, -0x00, 0x18, 0x62, 0xCC, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x30, 0xF0, -0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, 0x4C, 0xEC, -0x04, 0xD4, 0xC3, 0xF3, 0x8D, 0xA0, 0x10, 0x6B, -0x8D, 0xEB, 0xE0, 0xF0, 0x80, 0xA0, 0xC3, 0xF3, -0x6D, 0xC0, 0x01, 0x6B, 0x8C, 0xEB, 0x4C, 0xEB, -0x26, 0x23, 0xE0, 0xF0, 0x42, 0xA0, 0xFF, 0x72, -0x2C, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, -0x54, 0x9A, 0x00, 0x6B, 0x30, 0xF0, 0x20, 0x69, -0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, -0x58, 0x9A, 0x04, 0x6B, 0xFF, 0x6C, 0x60, 0xC2, -0x00, 0xF3, 0x48, 0x99, 0x59, 0x4C, 0x00, 0x6D, -0x06, 0x6E, 0x40, 0xEA, 0xE0, 0xF0, 0xC2, 0xA0, -0x00, 0xF3, 0x48, 0x99, 0xFF, 0x6C, 0x55, 0x4C, -0x00, 0x6D, 0x06, 0x4E, 0x40, 0xEA, 0x04, 0x94, -0x00, 0x18, 0xAA, 0xDD, 0x0A, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, 0xC3, 0xF3, -0xD4, 0xA0, 0xFF, 0x6C, 0x55, 0x4C, 0x00, 0x6D, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x2A, 0xF1, -0x43, 0xA2, 0x04, 0x6B, 0x6C, 0xEA, 0x05, 0x2A, -0x04, 0x96, 0x83, 0x67, 0x01, 0x6D, 0x00, 0x18, -0x93, 0xCD, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, -0x30, 0xF0, 0x20, 0x69, 0x46, 0xF5, 0x18, 0x49, -0x04, 0xD4, 0xC0, 0xF0, 0x84, 0xA1, 0x00, 0x6B, -0xC3, 0xF3, 0x79, 0xC1, 0x7F, 0x6B, 0x8C, 0xEB, -0x4C, 0xEB, 0x14, 0x23, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x5C, 0x9A, 0xE0, 0xF0, 0x88, 0xA1, -0x01, 0x68, 0x40, 0xEA, 0x4E, 0xE8, 0x0A, 0x28, -0x04, 0x94, 0xC3, 0xF3, 0xB2, 0xA1, 0x00, 0x18, -0x80, 0xDF, 0x04, 0x94, 0xC3, 0xF3, 0x13, 0xC1, -0x00, 0x18, 0xC3, 0xCE, 0x09, 0x97, 0x08, 0x91, -0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, -0xC0, 0xF0, 0x64, 0xA0, 0x00, 0x6A, 0xC3, 0xF3, -0x59, 0xC0, 0x7F, 0x6A, 0xFF, 0x69, 0x6C, 0xEA, -0x2C, 0xEC, 0x2C, 0xEA, 0x04, 0xD4, 0x18, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, -0xE0, 0xF0, 0x88, 0xA0, 0x40, 0xEA, 0x01, 0x72, -0x0F, 0x61, 0xC0, 0xF0, 0x65, 0xA0, 0x0F, 0x6A, -0x6C, 0xEA, 0x2C, 0xEA, 0x06, 0x22, 0xC3, 0xF3, -0x69, 0xA0, 0x10, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, -0x03, 0x2A, 0x04, 0x94, 0x00, 0x18, 0xC3, 0xCE, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0x8C, 0xE9, -0x30, 0xF0, 0x20, 0x68, 0x91, 0x67, 0x46, 0xF5, -0x18, 0x48, 0x00, 0x18, 0x04, 0xCD, 0xC3, 0xF3, -0x4B, 0xA0, 0x0C, 0x72, 0x21, 0x60, 0xD1, 0x67, -0x0C, 0x6C, 0x00, 0x6D, 0x00, 0x18, 0x93, 0xCD, -0x00, 0x6C, 0xA4, 0x67, 0x00, 0x18, 0x62, 0xCC, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, -0x00, 0x6D, 0xC5, 0x67, 0xFF, 0x6C, 0x40, 0xEA, -0xC3, 0xF3, 0x69, 0xA0, 0x01, 0x6A, 0xA0, 0xF0, -0x8A, 0xA0, 0x6D, 0xEA, 0xC3, 0xF3, 0x49, 0xC0, -0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x50, 0x9A, -0x00, 0x6D, 0x08, 0x6E, 0xF1, 0x67, 0x40, 0xEA, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, -0xC0, 0xF0, 0xC4, 0xA3, 0x7F, 0x6D, 0xFF, 0x6A, -0xCC, 0xED, 0x01, 0x75, 0x4C, 0xEC, 0x16, 0x61, -0xC3, 0xF3, 0xCD, 0xA3, 0x01, 0x6D, 0xCD, 0xED, -0xC3, 0xF3, 0xAD, 0xC3, 0xC0, 0xF0, 0xA5, 0xA3, -0x10, 0x6B, 0x6B, 0xEB, 0xAC, 0xEB, 0x4C, 0xEB, -0x20, 0x73, 0x06, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x60, 0xF4, 0x40, 0x9A, 0x40, 0xEA, 0x02, 0x10, -0x00, 0x18, 0x1F, 0xCF, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x6E, 0x8C, 0xEE, -0x8A, 0xF1, 0x9C, 0xA2, 0x01, 0x6D, 0x00, 0x18, -0x93, 0xCD, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x24, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x46, 0xF5, -0x18, 0x4C, 0xC3, 0xF3, 0xA8, 0xA4, 0x40, 0x6B, -0xFF, 0x6A, 0xAC, 0xEB, 0x4C, 0xEB, 0x4C, 0xE9, -0x09, 0x23, 0xC3, 0xF3, 0x89, 0xA4, 0x10, 0x6B, -0x8C, 0xEB, 0x4C, 0xEB, 0x03, 0x23, 0x91, 0x67, -0x00, 0x18, 0xAA, 0xDD, 0x30, 0xF0, 0x20, 0x68, -0x46, 0xF5, 0x18, 0x48, 0xC3, 0xF3, 0x68, 0xA0, -0x02, 0x6A, 0x6C, 0xEA, 0x10, 0x22, 0x03, 0x6A, -0x4B, 0xEA, 0x4C, 0xEB, 0xC3, 0xF3, 0x68, 0xC0, -0xC3, 0xF3, 0x6D, 0xA0, 0x6C, 0xEA, 0xC3, 0xF3, -0x4D, 0xC0, 0xC3, 0xF3, 0x4D, 0xA0, 0x07, 0x6B, -0x6C, 0xEA, 0x65, 0x2A, 0x61, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF1, 0x94, 0x9A, 0xFF, 0xF7, -0x1F, 0x6A, 0x60, 0xAC, 0x4C, 0xEB, 0x01, 0x4B, -0x4C, 0xEB, 0x60, 0xCC, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF0, 0x84, 0x9B, 0x60, 0xAC, 0x4C, 0xEB, -0x01, 0x4B, 0x4C, 0xEB, 0x60, 0xCC, 0xE4, 0xF2, -0x58, 0x98, 0xC3, 0xF3, 0x6D, 0xA0, 0x01, 0x4A, -0xE4, 0xF2, 0x58, 0xD8, 0xC3, 0xF3, 0x55, 0xA0, -0x01, 0x4A, 0xC3, 0xF3, 0x55, 0xC0, 0x11, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0xC3, 0xF3, 0x4D, 0xC0, -0xC3, 0xF3, 0x75, 0xA0, 0xC0, 0xF0, 0x4B, 0xA0, -0x63, 0xEA, 0x36, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x5C, 0x9A, 0xE0, 0xF0, 0x88, 0xA0, -0x40, 0xEA, 0x01, 0x6B, 0x6E, 0xEA, 0x2F, 0x2A, -0xC0, 0xF0, 0x85, 0xA0, 0xEF, 0x4B, 0x8C, 0xEB, -0xFF, 0x6C, 0x8C, 0xEB, 0x07, 0x2B, 0xC3, 0xF3, -0x68, 0xA0, 0xDF, 0x4A, 0x6C, 0xEA, 0xC3, 0xF3, -0x48, 0xC0, 0x21, 0x10, 0xC3, 0xF3, 0x76, 0xA0, -0x01, 0x4B, 0xC3, 0xF3, 0x76, 0xC0, 0xC3, 0xF3, -0x76, 0xA0, 0x02, 0x5B, 0x0A, 0x61, 0xC3, 0xF3, -0x88, 0xA0, 0x21, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, -0xC3, 0xF3, 0x68, 0xC0, 0xC3, 0xF3, 0x56, 0xC0, -0x03, 0x10, 0x91, 0x67, 0x00, 0x18, 0x1F, 0xCF, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x00, 0x6B, 0xC3, 0xF3, 0x75, 0xC2, 0x03, 0x10, -0x91, 0x67, 0x00, 0x18, 0x4F, 0xCF, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF4, 0x64, 0x9A, -0xC2, 0xF4, 0x04, 0x4A, 0xFF, 0x69, 0x04, 0xD3, -0x61, 0x9A, 0x44, 0xAA, 0x8C, 0xE9, 0x05, 0xD3, -0x7D, 0x67, 0x4C, 0xCB, 0x24, 0x32, 0x49, 0xE3, -0x68, 0xAA, 0x1F, 0xF7, 0x00, 0x6A, 0x6C, 0xEA, -0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x0B, 0x2A, -0x7D, 0x67, 0x24, 0x32, 0x49, 0xE3, 0x68, 0xAA, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x58, 0x9A, -0x49, 0xE3, 0x40, 0xAA, 0x06, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF0, 0x5C, 0x9A, 0x4D, 0xE3, -0x40, 0xAB, 0xFF, 0xF7, 0x1F, 0x68, 0x4C, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0xAB, 0xF0, 0x64, 0xA2, -0x01, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0xE7, 0xF7, -0x1F, 0x6A, 0x4C, 0xE8, 0x18, 0xF0, 0x00, 0x6A, -0x0C, 0xEA, 0x13, 0x2A, 0x30, 0xF0, 0x20, 0x6B, -0x46, 0xF5, 0x18, 0x4B, 0xC3, 0xF3, 0x8D, 0xA3, -0xFE, 0x4A, 0x8C, 0xEA, 0x05, 0x6C, 0x8B, 0xEC, -0x8C, 0xEA, 0x02, 0x4C, 0x8C, 0xEA, 0xC3, 0xF3, -0x4D, 0xC3, 0x91, 0x67, 0x00, 0x18, 0x4F, 0xCF, -0x69, 0x10, 0x08, 0xF0, 0x00, 0x6A, 0x0C, 0xEA, -0x2F, 0x22, 0x02, 0x32, 0x5E, 0x32, 0x07, 0x2A, -0x04, 0x6C, 0x00, 0x18, 0x99, 0xE0, 0x91, 0x67, -0x00, 0x18, 0x3B, 0xCF, 0x33, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF0, 0x84, 0x9A, 0x63, 0xF1, -0x78, 0x9B, 0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, -0x63, 0xF1, 0x9C, 0x9C, 0x8E, 0xEB, 0x09, 0x2B, -0xC0, 0xF0, 0x65, 0xA2, 0x10, 0x6A, 0x4B, 0xEA, -0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x10, 0x72, -0x19, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0xC3, 0xF3, 0x8D, 0xA2, 0x01, 0x6B, -0x8D, 0xEB, 0xC3, 0xF3, 0x6D, 0xC2, 0x0E, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, -0xC3, 0xF3, 0x8D, 0xA3, 0x02, 0x6A, 0x4B, 0xEA, -0x8C, 0xEA, 0x05, 0x6C, 0x8B, 0xEC, 0x8C, 0xEA, -0xC3, 0xF3, 0x4D, 0xC3, 0x02, 0x30, 0x1E, 0x30, -0x1A, 0x20, 0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, -0x18, 0x48, 0xC3, 0xF3, 0x4D, 0xA0, 0x02, 0x69, -0xC0, 0xF0, 0xCC, 0xA0, 0x2D, 0xEA, 0xC3, 0xF3, -0x4D, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, -0x48, 0x9A, 0xFF, 0x6C, 0x55, 0x4C, 0x00, 0x6D, -0x40, 0xEA, 0xC3, 0xF3, 0x48, 0xA0, 0x4D, 0xE9, -0xC3, 0xF3, 0x28, 0xC0, 0x0B, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0xC3, 0xF3, -0x8D, 0xA2, 0x03, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, -0xC3, 0xF3, 0x6D, 0xC2, 0x0B, 0x97, 0x0A, 0x91, -0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF4, 0x78, 0x9A, -0xA2, 0xF4, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x68, -0x04, 0xD3, 0x61, 0x9A, 0x44, 0xAA, 0xFF, 0x69, -0x05, 0xD3, 0x7D, 0x67, 0x4C, 0xCB, 0x46, 0xF5, -0x18, 0x48, 0x30, 0xF0, 0x20, 0x6A, 0x8C, 0xE9, -0x80, 0xF3, 0x5C, 0x9A, 0xE0, 0xF0, 0x88, 0xA0, -0x40, 0xEA, 0x01, 0x72, 0xE0, 0xF0, 0x17, 0x61, -0xC0, 0xF0, 0x64, 0xA0, 0x7F, 0x6A, 0xFF, 0x6C, -0x6C, 0xEA, 0x8C, 0xEA, 0xE0, 0xF0, 0x0F, 0x22, -0x44, 0xF3, 0x6C, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, -0x8C, 0xEA, 0x04, 0x22, 0x02, 0x6A, 0x6D, 0xEA, -0x44, 0xF3, 0x4C, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0x06, 0xF6, 0x7D, 0xA2, 0x0F, 0x6A, 0x6C, 0xEA, -0x01, 0x72, 0x3C, 0x61, 0x24, 0x32, 0xBD, 0x67, -0x49, 0xE5, 0x68, 0xAA, 0x1F, 0xF7, 0x00, 0x6A, -0x6C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, -0x0B, 0x2A, 0x7D, 0x67, 0x24, 0x32, 0x49, 0xE3, -0x68, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0x58, 0x9A, 0x49, 0xE3, 0x60, 0x9A, 0x06, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x5C, 0x9A, -0x4D, 0xE3, 0x60, 0x9B, 0x04, 0xF0, 0x00, 0x6A, -0x6C, 0xEA, 0x0F, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0x00, 0xF6, 0x62, 0x34, 0x46, 0xF5, 0x18, 0x4A, -0x62, 0x33, 0xC3, 0xF3, 0x93, 0xC2, 0x62, 0x33, -0xFF, 0x6C, 0x8C, 0xEB, 0x02, 0x23, 0xC3, 0xF3, -0x72, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0xC3, 0xF3, 0x73, 0xA2, 0x02, 0x2B, -0xC3, 0xF3, 0x72, 0xA2, 0x30, 0xF0, 0x20, 0x6A, -0x2A, 0xF1, 0x6B, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF1, 0xA0, 0x9A, 0x30, 0xF0, 0x20, 0x68, -0x46, 0xF5, 0x18, 0x48, 0x00, 0x6B, 0xC3, 0xF3, -0x75, 0xC0, 0xC3, 0xF3, 0x76, 0xC0, 0x80, 0xAD, -0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEC, 0x01, 0x4C, -0x4C, 0xEC, 0x80, 0xCD, 0x30, 0xF0, 0x20, 0x6C, -0x83, 0xF1, 0xA4, 0x9C, 0x80, 0xAD, 0x4C, 0xEC, -0x01, 0x4C, 0x4C, 0xEC, 0x80, 0xCD, 0xE4, 0xF2, -0x54, 0x98, 0x11, 0x6C, 0x8B, 0xEC, 0x01, 0x4A, -0xE4, 0xF2, 0x54, 0xD8, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF1, 0x48, 0x9A, 0x60, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF1, 0x58, 0x9A, 0x02, 0x6B, -0x60, 0xC2, 0xC3, 0xF3, 0x6D, 0xA0, 0x03, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0x8C, 0xEA, 0x91, 0x67, -0xC3, 0xF3, 0x4D, 0xC0, 0x00, 0x18, 0xA4, 0xCF, -0xC3, 0xF3, 0x68, 0xA0, 0x40, 0x6A, 0x6C, 0xEA, -0x55, 0x22, 0xC3, 0xF3, 0x89, 0xA0, 0x10, 0x6B, -0xFF, 0x6D, 0x44, 0x67, 0x6C, 0xEA, 0xAC, 0xEA, -0x22, 0x2A, 0xC3, 0xF3, 0x53, 0xA0, 0xC3, 0xF3, -0xB2, 0xA0, 0xAE, 0xEA, 0x47, 0x2A, 0x8D, 0xEB, -0x91, 0x67, 0xC3, 0xF3, 0x69, 0xC0, 0x00, 0x18, -0x80, 0xDF, 0x91, 0x67, 0x00, 0x18, 0x7A, 0xDD, -0x00, 0x18, 0xFF, 0xC8, 0x06, 0x2A, 0x91, 0x67, -0x00, 0x18, 0xB1, 0xDD, 0x91, 0x67, 0x00, 0x18, -0xAA, 0xDD, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0xC3, 0xF3, 0x73, 0xA2, 0xFF, 0x4B, -0xC3, 0xF3, 0x73, 0xC2, 0x2B, 0x10, 0xC0, 0xF0, -0x65, 0xA0, 0x0F, 0x6A, 0x6C, 0xEA, 0x01, 0x72, -0x25, 0x61, 0xC3, 0xF3, 0x53, 0xA0, 0x08, 0xD2, -0x08, 0x93, 0xC3, 0xF3, 0x52, 0xA0, 0x6E, 0xEA, -0x1D, 0x22, 0x91, 0x67, 0x00, 0x18, 0x75, 0xDF, -0x08, 0x94, 0x8E, 0xEA, 0x17, 0x22, 0xC3, 0xF3, -0x68, 0xA0, 0x20, 0x6A, 0xFF, 0x6D, 0x6C, 0xEA, -0xAC, 0xEA, 0x10, 0x22, 0xC3, 0xF3, 0x69, 0xA0, -0x11, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x91, 0x67, -0xC3, 0xF3, 0x49, 0xC0, 0x00, 0x18, 0xA0, 0xDD, -0x91, 0x67, 0x00, 0x18, 0x8B, 0xDD, 0x91, 0x67, -0x00, 0x18, 0x84, 0xDD, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xC3, 0xF3, 0x88, 0xA2, -0x01, 0x6B, 0xC3, 0xF3, 0x79, 0xC2, 0x20, 0x6B, -0x8D, 0xEB, 0xC3, 0xF3, 0x68, 0xC2, 0x0D, 0x97, -0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFF, 0x69, 0x2C, 0xEC, 0xAC, 0xE9, 0x50, 0x24, -0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, -0xE0, 0xF0, 0x88, 0xA0, 0x40, 0xEA, 0x01, 0x72, -0x43, 0x61, 0xC3, 0xF3, 0x69, 0xA0, 0x05, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0xC3, 0xF3, 0x49, 0xC0, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, -0x2B, 0x6E, 0xFF, 0x6C, 0x0F, 0x6D, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x5C, 0x9A, -0x91, 0x67, 0x02, 0x6D, 0x40, 0xEA, 0x43, 0xF4, -0x47, 0xA0, 0x01, 0x6E, 0x01, 0x2A, 0x08, 0x6E, -0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, -0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x50, 0x9A, -0xA0, 0xF0, 0x8A, 0xA0, 0x00, 0x6D, 0xF1, 0x67, -0x40, 0xEA, 0x01, 0x72, 0x0B, 0x61, 0xC3, 0xF3, -0x69, 0xA0, 0x01, 0x6A, 0x01, 0x6C, 0x6D, 0xEA, -0x06, 0x6D, 0xC3, 0xF3, 0x49, 0xC0, 0x00, 0x18, -0x22, 0xC6, 0x0E, 0x10, 0x43, 0xF4, 0x47, 0xA0, -0x0B, 0x22, 0x06, 0x6D, 0x01, 0x6C, 0x00, 0x18, -0x22, 0xC6, 0x91, 0x67, 0x00, 0x18, 0x4F, 0xCF, -0x00, 0x6C, 0x02, 0x6D, 0x00, 0x18, 0x43, 0xC9, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0xFF, 0x69, 0x46, 0xF5, 0x18, 0x48, 0x30, 0xF0, -0x20, 0x6A, 0x8C, 0xE9, 0x80, 0xF3, 0x5C, 0x9A, -0xE0, 0xF0, 0x88, 0xA0, 0x40, 0xEA, 0x01, 0x72, -0x12, 0x61, 0xC3, 0xF3, 0x68, 0xA0, 0x21, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0xC3, 0xF3, 0x48, 0xC0, -0xC3, 0xF3, 0x4B, 0xA0, 0x04, 0x6B, 0x6C, 0xEA, -0x0C, 0x2A, 0x83, 0x67, 0x01, 0x6D, 0xD1, 0x67, -0x00, 0x18, 0x93, 0xCD, 0x06, 0x10, 0xC3, 0xF3, -0x68, 0xA0, 0x20, 0x6A, 0x6D, 0xEA, 0xC3, 0xF3, -0x48, 0xC0, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0x24, 0x67, -0x0C, 0xE9, 0x91, 0x67, 0x01, 0x6D, 0x00, 0x18, -0x1F, 0xCD, 0x91, 0x67, 0x01, 0x6D, 0x00, 0x18, -0x4C, 0xCD, 0x30, 0xF0, 0x20, 0x6A, 0x2A, 0xF1, -0x74, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF0, -0x40, 0x9A, 0x0C, 0xEB, 0x08, 0x6C, 0x60, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x6C, 0x9A, -0x8B, 0xEC, 0x40, 0xA3, 0x0C, 0xEA, 0x8C, 0xEA, -0x05, 0x6C, 0x8D, 0xEA, 0x0C, 0xEA, 0x91, 0x67, -0x40, 0xC3, 0x00, 0x18, 0xC1, 0xD0, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFF, 0x68, 0x24, 0x67, 0x0C, 0xE9, 0xAC, 0xE8, -0x69, 0x29, 0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, -0x1F, 0xCD, 0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, -0x4C, 0xCD, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, -0x48, 0x9A, 0x02, 0x6B, 0x20, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF1, 0x58, 0x9A, 0x60, 0xDA, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x43, 0xF4, 0x67, 0xA2, 0x08, 0x23, 0xC3, 0xF3, -0x4B, 0xA2, 0x0C, 0x72, 0x04, 0x61, 0x00, 0x6C, -0xA4, 0x67, 0x00, 0x18, 0x43, 0xC9, 0x30, 0xF0, -0x20, 0x69, 0x46, 0xF5, 0x18, 0x49, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, 0xE0, 0xF0, -0x88, 0xA1, 0x40, 0xEA, 0x19, 0x2A, 0xC3, 0xF3, -0x4B, 0xA1, 0x04, 0x6B, 0x6C, 0xEA, 0x02, 0x2A, -0x00, 0x18, 0xDC, 0xE0, 0x90, 0x67, 0x00, 0x18, -0x7D, 0xC6, 0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, -0x18, 0x4B, 0xC3, 0xF3, 0x89, 0xA3, 0x02, 0x6A, -0x4B, 0xEA, 0x8C, 0xEA, 0x03, 0x6C, 0x8B, 0xEC, -0x8C, 0xEA, 0xC3, 0xF3, 0x49, 0xC3, 0x05, 0x10, -0x0C, 0x6C, 0x01, 0x6D, 0xD0, 0x67, 0x00, 0x18, -0x93, 0xCD, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0xC3, 0xF3, 0x88, 0xA2, 0x05, 0x6B, -0x6B, 0xEB, 0x8C, 0xEB, 0xC3, 0xF3, 0x68, 0xC2, -0xE0, 0xF0, 0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, -0x12, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, -0x54, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF1, 0x58, 0x9A, 0x04, 0x6B, -0x60, 0xC2, 0x05, 0x10, 0x01, 0x71, 0x03, 0x61, -0x90, 0x67, 0x00, 0x18, 0xD9, 0xD0, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x69, 0x30, 0xF0, 0x20, 0x68, 0x2C, 0xEC, -0x46, 0xF5, 0x18, 0x48, 0x04, 0xD4, 0x00, 0x18, -0xAC, 0xCB, 0xC0, 0xF0, 0x84, 0xA0, 0x7F, 0x6A, -0x04, 0x95, 0x4C, 0xEC, 0x2C, 0xEC, 0x00, 0x18, -0xF0, 0xD0, 0xC0, 0xF0, 0x44, 0xA0, 0x7F, 0x6B, -0x6C, 0xEA, 0x2C, 0xEA, 0x05, 0x2A, 0x00, 0x6C, -0x01, 0x6D, 0x00, 0x18, 0x62, 0xCC, 0x0B, 0x10, -0xC0, 0xF0, 0x45, 0xA0, 0x0F, 0x6C, 0xC0, 0xF0, -0xA6, 0xA0, 0x4C, 0xEC, 0x2C, 0xEC, 0x00, 0x18, -0x58, 0xC6, 0x00, 0x18, 0xFF, 0xDF, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFF, 0x6B, 0x8C, 0xEB, 0x01, 0x73, 0x01, 0x6A, -0x0A, 0x60, 0x00, 0x6A, 0x08, 0x23, 0x30, 0xF0, -0x20, 0x6A, 0x2A, 0xF1, 0x43, 0xA2, 0x01, 0x6B, -0x4E, 0x32, 0x6E, 0xEA, 0x6C, 0xEA, 0x20, 0xE8, -0xFF, 0x6A, 0x4C, 0xEC, 0x01, 0x74, 0x12, 0x60, -0x07, 0x24, 0x30, 0xF0, 0x20, 0x6B, 0x2A, 0xF1, -0x63, 0xA3, 0x08, 0x6C, 0x8C, 0xEB, 0x0A, 0x23, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x4C, 0x9A, -0x55, 0xE5, 0x60, 0xA5, 0xEF, 0x6A, 0x6C, 0xEA, -0x40, 0xC5, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF1, 0x6C, 0x9B, 0x10, 0x6C, 0x75, 0xE5, -0x60, 0xA5, 0x4C, 0xEB, 0x8D, 0xEB, 0x4C, 0xEB, -0x60, 0xC5, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x50, 0x9A, -0xFF, 0x6B, 0x40, 0xA2, 0x6C, 0xEA, 0x52, 0x32, -0x6C, 0xEA, 0x11, 0x2A, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x54, 0x9A, -0x06, 0xF6, 0x81, 0xA3, 0x00, 0x6D, 0x18, 0x6E, -0xE5, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x2C, 0xEC, -0x2C, 0xED, 0x02, 0x5C, 0x04, 0xD4, 0x05, 0xD5, -0x4E, 0x60, 0x00, 0x18, 0x7A, 0xD4, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF1, 0x74, 0x9B, 0x30, 0xF0, -0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, 0x80, 0xAB, -0xFF, 0xF7, 0x1F, 0x6B, 0x8C, 0xEB, 0x4B, 0xE3, -0xA0, 0xF0, 0x6A, 0xA0, 0x2C, 0xEA, 0x6E, 0xEA, -0x3A, 0x2A, 0xC3, 0xF3, 0x4B, 0xA0, 0x0E, 0x72, -0x19, 0x61, 0x04, 0x92, 0x34, 0x2A, 0xC3, 0xF3, -0x69, 0xA0, 0xFD, 0x4A, 0x05, 0x94, 0x6C, 0xEA, -0xC3, 0xF3, 0x49, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0x40, 0xF4, 0x5C, 0x9A, 0x00, 0x6D, 0x40, 0xEA, -0x01, 0x6C, 0x0C, 0x6D, 0x00, 0x18, 0x22, 0xC6, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, -0x91, 0x67, 0x1A, 0x10, 0x06, 0x72, 0x1B, 0x61, -0x04, 0x92, 0x19, 0x22, 0xC3, 0xF3, 0x69, 0xA0, -0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xC3, 0xF3, -0x49, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, -0x5C, 0x9A, 0x05, 0x94, 0x01, 0x6D, 0x40, 0xEA, -0x04, 0x6A, 0xC3, 0xF3, 0x4B, 0xC0, 0x30, 0xF0, -0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0xFF, 0x6C, -0x00, 0x6D, 0xC5, 0x67, 0x40, 0xEA, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x04, 0xD2, 0x83, 0xF1, 0x70, 0x9B, -0xFF, 0x6A, 0x4C, 0xEE, 0x05, 0xD6, 0x60, 0xA3, -0x05, 0x67, 0x27, 0x67, 0x4C, 0xEB, 0x72, 0x33, -0x4C, 0xEB, 0x4C, 0xE8, 0x4C, 0xE9, 0x40, 0x23, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x6C, 0x9B, -0x00, 0x6C, 0xFF, 0x6D, 0x60, 0xA3, 0x26, 0x6E, -0x6C, 0xEA, 0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF2, 0x50, 0x9A, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, 0x40, 0xEA, -0x01, 0x72, 0x1D, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x04, 0x94, 0x05, 0x96, 0xA0, 0xF2, 0x54, 0x9A, -0x04, 0x6F, 0x01, 0x6D, 0x40, 0xEA, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x04, 0x95, 0x40, 0xF4, -0x58, 0x9A, 0xD1, 0x67, 0x90, 0x67, 0x40, 0xEA, -0x90, 0x67, 0x00, 0x18, 0x46, 0xD1, 0x04, 0x94, -0xA2, 0x67, 0x00, 0x18, 0x90, 0xE4, 0x04, 0x94, -0xB1, 0x67, 0x00, 0x18, 0x9F, 0xE4, 0x30, 0xF0, -0x20, 0x6A, 0x06, 0x95, 0xA0, 0xF2, 0x50, 0x9A, -0x00, 0x6C, 0x27, 0x6E, 0x40, 0xEA, 0x90, 0x67, -0xB1, 0x67, 0x00, 0x18, 0x6F, 0xD1, 0x21, 0x10, -0x90, 0x67, 0xB1, 0x67, 0x00, 0x18, 0x6F, 0xD1, -0x30, 0xF0, 0x20, 0x6A, 0x04, 0x94, 0x05, 0x96, -0xA0, 0xF2, 0x54, 0x9A, 0x04, 0x6F, 0x01, 0x6D, -0x40, 0xEA, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x04, 0x95, 0x40, 0xF4, 0x58, 0x9A, 0xD1, 0x67, -0x90, 0x67, 0x40, 0xEA, 0x90, 0x67, 0x00, 0x18, -0x46, 0xD1, 0x04, 0x94, 0xA2, 0x67, 0x00, 0x18, -0x90, 0xE4, 0x04, 0x94, 0xB1, 0x67, 0x00, 0x18, -0x9F, 0xE4, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, -0x54, 0x9A, 0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, -0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0xF7, 0x1F, 0x6A, 0x0E, 0x90, 0x24, 0x67, -0x4C, 0xE9, 0x03, 0x6B, 0x4C, 0xEF, 0x2C, 0xEB, -0x00, 0x6A, 0x0B, 0xD5, 0x0C, 0xD6, 0x04, 0xD7, -0x40, 0xC8, 0x00, 0x6A, 0x0A, 0x23, 0x28, 0x10, +0xFF, 0x6A, 0xA0, 0x35, 0x4C, 0xEC, 0xA0, 0x35, +0xCC, 0xEA, 0x4D, 0xED, 0x05, 0x2C, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF3, 0x44, 0x9A, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, 0x48, 0x9A, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, 0x8C, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, 0x70, 0x9B, +0xAD, 0xEA, 0x40, 0xDC, 0x4C, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF3, 0x54, 0x9A, 0x60, 0xDC, +0x00, 0x6B, 0x60, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0xFF, 0xF7, 0x1F, 0x6B, 0x8C, 0xEA, +0xAC, 0xEB, 0x05, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF3, 0x58, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF3, 0x5C, 0x9A, 0x60, 0x33, +0x60, 0x33, 0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF3, 0x4C, 0x9A, 0x00, 0x6C, 0x60, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF3, 0x40, 0x9A, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, 0x74, 0x9B, +0x40, 0xA2, 0x80, 0xC3, 0xFF, 0x6B, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, +0x64, 0x9B, 0xFF, 0x6A, 0xCC, 0xEA, 0x6D, 0xEA, +0xE0, 0xF1, 0x1F, 0x6B, 0xAC, 0xEB, 0x60, 0x33, +0x60, 0x33, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF3, 0x0C, 0x9B, 0x01, 0x6C, 0x40, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, -0x0A, 0x6C, 0x40, 0xEA, 0x40, 0xA8, 0x01, 0x4A, -0x40, 0xC8, 0x1F, 0xF7, 0x00, 0x6A, 0x2C, 0xEA, -0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x58, 0x9A, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0x5C, 0x9A, 0x49, 0xE1, 0x0B, 0x93, 0x40, 0x9A, -0x6C, 0xEA, 0x0C, 0x93, 0x6E, 0xEA, 0x04, 0x22, -0x40, 0xA8, 0x04, 0x93, 0x63, 0xEA, 0xDC, 0x61, -0x40, 0xA8, 0x04, 0x93, 0x63, 0xEA, 0x58, 0x67, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0xA0, 0x35, -0x4C, 0xEC, 0xA0, 0x35, 0xCC, 0xEA, 0x4D, 0xED, -0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, -0x54, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF2, 0x58, 0x9A, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF2, 0x9C, 0x9B, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF3, 0x60, 0x9B, 0xAD, 0xEA, 0x40, 0xDC, -0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, -0x44, 0x9A, 0x60, 0xDC, 0x00, 0x6B, 0x60, 0xC2, -0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0xFF, 0xF7, -0x1F, 0x6B, 0x8C, 0xEA, 0xAC, 0xEB, 0x05, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x54, 0x9A, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, -0x48, 0x9A, 0x60, 0x33, 0x60, 0x33, 0x4D, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x5C, 0x9A, -0x00, 0x6C, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF3, 0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF3, 0x64, 0x9B, 0x40, 0xA2, 0x80, 0xC3, -0xFF, 0x6B, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF3, 0x70, 0x9B, 0xFF, 0x6A, -0xCC, 0xEA, 0x6D, 0xEA, 0xE0, 0xF1, 0x1F, 0x6B, -0xAC, 0xEB, 0x60, 0x33, 0x60, 0x33, 0x6D, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, 0x1C, 0x9B, -0x01, 0x6C, 0x40, 0xD8, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x4C, 0x9A, 0x40, 0xEA, 0x00, 0x6A, -0x40, 0xD8, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xE0, 0xF1, 0x1F, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0xAC, 0xEA, 0x03, 0xF3, -0x74, 0x9B, 0x40, 0x32, 0x40, 0x32, 0x6D, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, 0x1C, 0x4B, -0x60, 0x9B, 0x30, 0xF0, 0x20, 0x68, 0x01, 0x6C, -0x40, 0xDB, 0x80, 0xF3, 0x4C, 0x98, 0xFF, 0x69, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, -0x4C, 0x9A, 0x01, 0x6C, 0x40, 0xA2, 0x4C, 0xE9, -0x80, 0xF3, 0x4C, 0x98, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6C, 0xE3, 0xF2, 0x1C, 0x4C, 0x80, 0x9C, -0x00, 0x6A, 0x40, 0xDC, 0x07, 0x97, 0x51, 0x67, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF3, 0xD8, 0x9B, 0xFF, 0x6A, 0x04, 0x6D, +0x40, 0xEA, 0x00, 0x6A, 0x40, 0xD8, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xE0, 0xF1, 0x1F, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xAC, 0xEA, 0x62, 0xF3, 0x68, 0x9B, 0x40, 0x32, +0x40, 0x32, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF3, 0x0C, 0x4B, 0x60, 0x9B, 0x30, 0xF0, +0x20, 0x68, 0x01, 0x6C, 0x40, 0xDB, 0x80, 0xF3, +0x4C, 0x98, 0xFF, 0x69, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF3, 0x40, 0x9A, 0x01, 0x6C, +0x40, 0xA2, 0x4C, 0xE9, 0x80, 0xF3, 0x4C, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF3, +0x0C, 0x4C, 0x80, 0x9C, 0x00, 0x6A, 0x40, 0xDC, +0x07, 0x97, 0x51, 0x67, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF3, 0xCC, 0x9B, 0xFF, 0x6A, 0x04, 0x6D, 0x60, 0xA6, 0x4C, 0xEC, 0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC6, 0x11, 0x24, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF0, 0x8C, 0x9B, 0x60, 0xA4, +0x20, 0x6B, 0x62, 0xF3, 0x90, 0x9B, 0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x30, 0xF0, -0x20, 0x6A, 0x60, 0xC4, 0x46, 0xF5, 0x18, 0x4A, -0x00, 0x6B, 0x42, 0xF6, 0x6D, 0xC2, 0x0D, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x6C, 0x9A, +0x20, 0x6A, 0x60, 0xC4, 0x63, 0xF5, 0x18, 0x4A, +0x00, 0x6B, 0xC2, 0xF5, 0x65, 0xC2, 0x0D, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF3, 0x70, 0x9A, 0xFB, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, -0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF3, -0x65, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xAA, 0xF1, -0xAC, 0xA2, 0x30, 0xF0, 0x20, 0x6C, 0x2A, 0xF1, -0x12, 0x4C, 0x00, 0x18, 0xDD, 0xDE, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF3, 0x78, 0x9A, 0xFB, 0x6A, -0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x26, 0xF3, +0x7D, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF3, +0x6C, 0x9A, 0xFB, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x20, 0xE8, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x0E, 0x92, 0x0F, 0x91, 0x04, 0x67, 0x04, 0xD2, 0x04, 0x93, 0xFF, 0x6A, 0x4C, 0xE8, 0x4C, 0xEB, 0x4C, 0xE9, 0x30, 0xF0, @@ -60253,1217 +42482,1357 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x0C, 0xD6, 0x0D, 0xD7, 0x04, 0xD3, 0x90, 0x67, 0x40, 0xEA, 0x80, 0xF0, 0x07, 0x22, 0x06, 0x58, 0x80, 0xF0, 0x04, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x08, 0x30, 0x42, 0xF5, 0x18, 0x4A, 0x09, 0xE2, +0x08, 0x30, 0x42, 0xF1, 0x00, 0x4A, 0x09, 0xE2, 0x40, 0x9A, 0x00, 0xEA, 0x02, 0xF2, 0x10, 0x6A, 0x0E, 0x10, 0x02, 0xF2, 0x00, 0x6A, 0x0B, 0x10, 0x22, 0xF2, 0x00, 0x6A, 0x08, 0x10, 0x22, 0xF2, 0x10, 0x6A, 0x05, 0x10, 0x42, 0xF2, 0x00, 0x6A, 0x02, 0x10, 0x42, 0xF2, 0x10, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x0D, 0x94, 0x03, 0xF3, 0x7C, 0x9B, -0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF0, -0x8C, 0x9C, 0x8D, 0xEB, 0x06, 0x21, 0x30, 0xF0, -0x20, 0x6C, 0x23, 0xF3, 0x80, 0x9C, 0x6D, 0xEC, -0x05, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF3, -0x84, 0x9C, 0x6C, 0xEC, 0x04, 0x96, 0x06, 0x26, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, 0x74, 0x9B, +0x20, 0x6B, 0x0D, 0x94, 0x62, 0xF3, 0x74, 0x9B, +0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0x62, 0xF3, +0x98, 0x9C, 0x8D, 0xEB, 0x06, 0x21, 0x30, 0xF0, +0x20, 0x6C, 0x62, 0xF3, 0x9C, 0x9C, 0x6D, 0xEC, +0x05, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF3, +0x80, 0x9C, 0x6C, 0xEC, 0x04, 0x96, 0x06, 0x26, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, 0x68, 0x9B, 0x8D, 0xEB, 0x05, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF3, 0x68, 0x9B, 0x8C, 0xEB, 0x1F, 0xF7, +0x82, 0xF3, 0x64, 0x9B, 0x8C, 0xEB, 0x1F, 0xF7, 0x00, 0x6C, 0x4C, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, -0x23, 0xF0, 0xB8, 0x9C, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6C, 0x23, 0xF0, 0xBC, 0x9C, 0x30, 0xF0, -0x20, 0x6C, 0x0B, 0x96, 0x23, 0xF3, 0x8C, 0x9C, +0xE2, 0xF2, 0xBC, 0x9C, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6C, 0x02, 0xF3, 0xA0, 0x9C, 0x30, 0xF0, +0x20, 0x6C, 0x0B, 0x96, 0x82, 0xF3, 0x88, 0x9C, 0xB5, 0xE2, 0xCC, 0xEC, 0x80, 0xDD, 0x84, 0x42, 0x1F, 0xF7, 0x00, 0x6D, 0xAC, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, -0x20, 0x6C, 0x23, 0xF3, 0xB0, 0x9C, 0x04, 0x10, -0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF3, 0xB4, 0x9C, -0x30, 0xF0, 0x20, 0x6C, 0x0C, 0x96, 0x23, 0xF3, -0x8C, 0x9C, 0xB5, 0xE2, 0xCC, 0xEC, 0x80, 0xDD, +0x20, 0x6C, 0x82, 0xF3, 0xAC, 0x9C, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF3, 0xB0, 0x9C, +0x30, 0xF0, 0x20, 0x6C, 0x0C, 0x96, 0x82, 0xF3, +0x88, 0x9C, 0xB5, 0xE2, 0xCC, 0xEC, 0x80, 0xDD, 0x87, 0x42, 0x01, 0x4C, 0x1F, 0xF7, 0x00, 0x6D, 0xAC, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, -0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF3, -0x98, 0x9C, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, -0x23, 0xF3, 0x9C, 0x9C, 0x89, 0xE2, 0x60, 0xDA, +0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF3, +0x94, 0x9C, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, +0x82, 0xF3, 0x98, 0x9C, 0x89, 0xE2, 0x60, 0xDA, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x01, 0x68, 0x04, 0xEC, 0x82, 0xF3, 0x08, 0x69, 0x1C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, 0xFF, 0x49, 0x40, 0xEA, -0x14, 0x29, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, -0x7C, 0x9A, 0x08, 0xF0, 0x00, 0x6C, 0x40, 0x9B, +0x14, 0x29, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, +0x68, 0x9A, 0x08, 0xF0, 0x00, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xA3, 0xF3, 0x78, 0x9A, -0x8D, 0xEB, 0xA3, 0xF3, 0x78, 0xDA, 0x00, 0x6A, -0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, -0x40, 0x9A, 0x60, 0xAA, 0xFF, 0xF7, 0x1F, 0x6A, +0x63, 0xF5, 0x18, 0x4A, 0x23, 0xF3, 0x70, 0x9A, +0x8D, 0xEB, 0x23, 0xF3, 0x70, 0xDA, 0x00, 0x6A, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF3, +0x5C, 0x9A, 0x60, 0xAA, 0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, 0x0C, 0xEA, 0xDA, 0x2A, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x04, 0xF7, 0x10, 0x68, 0x1C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x05, 0x6C, 0xFF, 0x48, 0x40, 0xEA, 0x14, 0x28, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0x7C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, 0x68, 0x9A, 0x08, 0xF0, 0x00, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0xA3, 0xF3, 0x78, 0x9A, 0x8D, 0xEB, -0xA3, 0xF3, 0x78, 0xDA, 0x00, 0x6A, 0x09, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, 0x40, 0x9A, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, +0x18, 0x4A, 0x23, 0xF3, 0x70, 0x9A, 0x8D, 0xEB, +0x23, 0xF3, 0x70, 0xDA, 0x00, 0x6A, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF3, 0x5C, 0x9A, 0x60, 0xAA, 0x3F, 0x6A, 0x6C, 0xEA, 0xDC, 0x2A, 0x01, 0x6A, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF3, 0x40, 0x9A, 0x40, 0xAA, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, 0x40, 0x9A, +0x82, 0xF3, 0x5C, 0x9A, 0x40, 0xAA, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF3, 0x5C, 0x9A, 0x40, 0xAA, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0xC2, 0xF7, 0x3C, 0x9A, 0x10, 0xF0, 0x23, 0x68, -0xE9, 0xF3, 0x15, 0x48, 0x00, 0xD9, 0x30, 0xF0, +0xC2, 0xF2, 0x24, 0x9A, 0x10, 0xF0, 0x23, 0x68, +0x22, 0xF6, 0x05, 0x48, 0x00, 0xD9, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x01, 0xF0, -0x54, 0x9A, 0xA6, 0xF3, 0x9C, 0x9B, 0x01, 0x6D, +0x54, 0x9A, 0x23, 0xF5, 0x84, 0x9B, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, 0x01, 0x4A, 0x03, 0x22, 0x01, 0x48, 0x00, 0xD9, 0xE7, 0x17, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF7, 0x3C, 0x9A, -0x10, 0xF0, 0x23, 0x68, 0x29, 0xF4, 0x19, 0x48, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF2, 0x24, 0x9A, +0x10, 0xF0, 0x23, 0x68, 0x62, 0xF6, 0x09, 0x48, 0x00, 0xD9, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0x01, 0xF0, 0x54, 0x9A, 0xA6, 0xF3, -0x98, 0x9B, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, +0x20, 0x6A, 0x01, 0xF0, 0x54, 0x9A, 0x23, 0xF5, +0x80, 0x9B, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, 0x01, 0x4A, 0x03, 0x22, 0x01, 0x48, 0x00, 0xD9, 0xE7, 0x17, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, -0x7C, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0x69, 0xF4, -0x1D, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF3, 0x84, 0x9B, -0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, 0xAB, 0xED, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, -0x60, 0x9B, 0xA0, 0xF0, 0x84, 0x9A, 0x8C, 0xEB, -0x09, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF3, -0x68, 0x9B, 0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, -0x80, 0x18, 0xA3, 0x07, 0x30, 0xF0, 0x20, 0x68, -0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF3, 0x84, 0x98, -0x26, 0xF3, 0x58, 0x9A, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xC6, 0xF3, 0x84, 0x98, 0x01, 0xF0, -0x48, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xA0, 0xF0, 0x84, 0x9A, 0x08, 0x6B, 0x8C, 0xEB, -0x07, 0x23, 0x09, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, -0xA0, 0xF0, 0x64, 0xDA, 0x80, 0x18, 0x72, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xC6, 0xF3, 0x84, 0x9B, 0x26, 0xF3, 0x58, 0x9A, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, -0x7C, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0x69, 0xF4, -0x1E, 0x4A, 0x40, 0xDB, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x00, 0x69, 0x00, 0x18, -0xD6, 0xC7, 0x00, 0x68, 0x00, 0x6C, 0x00, 0x18, -0x1F, 0xD3, 0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, -0x0A, 0x70, 0xF8, 0x61, 0x01, 0x6B, 0x6E, 0xE9, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, 0x7C, 0x9B, -0x4C, 0xE9, 0x10, 0xF0, 0x23, 0x6A, 0x49, 0xF5, -0x05, 0x4A, 0x29, 0xE2, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF3, -0x84, 0x9B, 0x01, 0xF0, 0x48, 0x98, 0x01, 0x6D, -0xAB, 0xED, 0x40, 0xEA, 0x80, 0x18, 0xBE, 0x15, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xC6, 0xF3, 0x84, 0x9B, 0x26, 0xF3, 0x58, 0x9A, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF3, -0x84, 0x9B, 0x01, 0xF0, 0x48, 0x98, 0x01, 0x6D, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xA0, 0xF0, 0x84, 0x9A, -0x02, 0x6B, 0x8C, 0xEB, 0x09, 0x23, 0x03, 0x6B, +0x04, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF2, 0x64, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0xA2, 0xF6, 0x0D, 0x4A, 0x40, 0xDB, 0x01, 0x4A, +0x40, 0xDB, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x00, 0x69, 0x00, 0x68, +0x00, 0x6C, 0x00, 0x18, 0xAB, 0xC5, 0x01, 0x48, +0xFF, 0x6A, 0x4C, 0xE8, 0x0A, 0x70, 0xF8, 0x61, +0x01, 0x6B, 0x6E, 0xE9, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF2, 0x64, 0x9B, 0x4C, 0xE9, 0x10, 0xF0, +0x23, 0x6A, 0xC2, 0xF6, 0x05, 0x4A, 0x29, 0xE2, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF5, 0x8C, 0x9B, 0x01, 0xF0, +0x48, 0x98, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, +0x80, 0x18, 0x4F, 0x00, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF5, 0x8C, 0x9B, +0xC3, 0xF4, 0x50, 0x9A, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF5, 0x8C, 0x9B, 0x01, 0xF0, +0x48, 0x98, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0xA0, 0xF0, 0x84, 0x9A, 0x10, 0xF0, 0x00, 0x6B, +0x8C, 0xEB, 0x08, 0x23, 0x10, 0xF0, 0x01, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, -0x80, 0x18, 0x34, 0x36, 0x80, 0x18, 0x89, 0x36, -0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6A, -0xC6, 0xF3, 0x84, 0x98, 0x26, 0xF3, 0x58, 0x9A, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF3, -0x84, 0x98, 0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xA0, 0xF0, 0x84, 0x9A, -0x04, 0x6B, 0x8C, 0xEB, 0x09, 0x23, 0x05, 0x6B, -0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, -0x00, 0x18, 0xA4, 0xD5, 0x00, 0x18, 0x2C, 0xD6, -0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6A, -0xC6, 0xF3, 0x84, 0x98, 0x26, 0xF3, 0x58, 0x9A, -0x40, 0xEA, 0x00, 0x1C, 0xAC, 0x39, 0x30, 0xF0, -0x20, 0x6A, 0xC6, 0xF3, 0x84, 0x98, 0x01, 0xF0, +0x00, 0x18, 0xB9, 0xD1, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF5, 0x8C, 0x98, +0xC3, 0xF4, 0x50, 0x9A, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF5, 0x8C, 0x98, 0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x43, 0xF4, 0x84, 0xA2, 0xC3, 0xF3, 0x6B, 0xA2, -0x8E, 0xEB, 0x05, 0x23, 0xC0, 0xF0, 0x87, 0xA2, -0x96, 0x34, 0x00, 0x18, 0x4F, 0xCF, 0x30, 0xF0, -0x20, 0x6A, 0xE6, 0xF5, 0x5C, 0x9A, 0x02, 0x2A, -0x00, 0x18, 0x52, 0xCC, 0x30, 0xF0, 0x20, 0x68, -0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF3, 0x84, 0x98, -0x26, 0xF3, 0x58, 0x9A, 0x40, 0xEA, 0x00, 0x1C, -0xAB, 0x39, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF3, -0x84, 0x98, 0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xA0, 0xF0, 0x84, 0x9A, -0x02, 0xF0, 0x00, 0x6B, 0x8C, 0xEB, 0x08, 0x23, -0x02, 0xF0, 0x01, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, -0xA0, 0xF0, 0x64, 0xDA, 0x00, 0x18, 0x22, 0xDD, -0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6A, -0xC6, 0xF3, 0x84, 0x98, 0x26, 0xF3, 0x58, 0x9A, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF3, -0x84, 0x98, 0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF0, 0x78, 0x9B, 0xA0, 0xF0, 0x84, 0x9A, -0x8C, 0xEB, 0x09, 0x23, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF3, 0x6C, 0x9B, 0x8C, 0xEB, 0xA0, 0xF0, -0x64, 0xDA, 0x80, 0x18, 0x91, 0x08, 0x30, 0xF0, -0x20, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF3, -0x84, 0x98, 0x26, 0xF3, 0x58, 0x9A, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF3, 0x84, 0x98, -0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, 0xAB, 0xED, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF3, -0x70, 0x9B, 0xA0, 0xF0, 0x84, 0x9A, 0x8C, 0xEB, -0x20, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF3, -0x74, 0x9B, 0x8C, 0xEB, 0xC0, 0xF0, 0x84, 0xA2, -0xA0, 0xF0, 0x64, 0xDA, 0x7F, 0x6B, 0x8C, 0xEB, -0x07, 0x2B, 0xC3, 0xF3, 0x4B, 0xA2, 0x0C, 0x72, -0x03, 0x61, 0x80, 0x18, 0xF4, 0x33, 0x0D, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x30, 0xF0, 0x20, 0x6C, 0xA0, 0xF0, 0x64, 0x9A, -0x43, 0xF3, 0x90, 0x9C, 0x8D, 0xEB, 0xA0, 0xF0, -0x64, 0xDA, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, -0x20, 0x6A, 0xC6, 0xF3, 0x84, 0x98, 0x26, 0xF3, -0x58, 0x9A, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xC6, 0xF3, 0x84, 0x98, 0x01, 0xF0, 0x48, 0x9A, -0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x43, 0xF2, -0x14, 0xA2, 0x01, 0x6B, 0x04, 0xD2, 0x6E, 0xE8, -0x06, 0x28, 0x0B, 0x6C, 0x80, 0x18, 0xA4, 0x52, -0x04, 0x92, 0x43, 0xF2, 0x14, 0xC2, 0x80, 0x18, -0x35, 0x55, 0x80, 0x18, 0x4F, 0x55, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF3, -0x84, 0x9B, 0x26, 0xF3, 0x58, 0x9A, 0x40, 0xEA, -0xB0, 0x16, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0xC2, 0xF7, 0x1C, 0x4A, 0x40, 0x9A, 0x10, 0xF0, -0x23, 0x68, 0xE9, 0xF7, 0x15, 0x48, 0x00, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0xA0, 0xF0, 0x84, 0x9A, 0x02, 0x6B, 0x8C, 0xEB, +0x09, 0x23, 0x03, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x80, 0x18, 0xD1, 0x14, +0x80, 0x18, 0x22, 0x15, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF5, 0x8C, 0x98, +0xC3, 0xF4, 0x50, 0x9A, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF5, 0x8C, 0x98, 0x01, 0xF0, +0x48, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0xA0, 0xF0, 0x84, 0x9A, 0x04, 0x6B, 0x8C, 0xEB, +0x09, 0x23, 0x05, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x00, 0x18, 0x07, 0xCC, +0x00, 0x18, 0x8F, 0xCC, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF5, 0x8C, 0x98, +0xC3, 0xF4, 0x50, 0x9A, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF5, 0x8C, 0x98, 0x01, 0xF0, +0x48, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0xA0, 0xF0, 0x84, 0x9A, 0x02, 0xF0, 0x00, 0x6B, +0x8C, 0xEB, 0x08, 0x23, 0x02, 0xF0, 0x01, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, +0x00, 0x18, 0xB5, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF5, 0x8C, 0x98, +0xC3, 0xF4, 0x50, 0x9A, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF5, 0x8C, 0x98, 0x01, 0xF0, +0x48, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF3, 0x70, 0x9B, +0xA0, 0xF0, 0x84, 0x9A, 0x8C, 0xEB, 0x09, 0x23, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF3, 0x74, 0x9B, +0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x80, 0x18, +0xA6, 0x13, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF5, 0x8C, 0x9B, 0xC3, 0xF4, +0x50, 0x9A, 0x40, 0xEA, 0x1C, 0x17, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF2, 0x04, 0x4A, +0x40, 0x9A, 0x10, 0xF0, 0x23, 0x68, 0x83, 0xF0, +0x19, 0x48, 0x00, 0xDA, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x01, 0x69, 0x01, 0xF0, +0x54, 0x9A, 0x23, 0xF5, 0x88, 0x9B, 0x2B, 0xE9, +0xB1, 0x67, 0x40, 0xEA, 0x01, 0x4A, 0x0A, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF6, 0x5C, 0x9A, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0x00, 0x1C, 0xAC, 0x39, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0x01, 0x69, 0x01, 0xF0, 0x54, 0x9A, 0xC6, 0xF3, -0x80, 0x9B, 0x2B, 0xE9, 0xB1, 0x67, 0x40, 0xEA, -0x01, 0x4A, 0x0A, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xE0, 0xF6, 0x5C, 0x9A, 0x40, 0xEA, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0x00, 0x1C, 0xAC, 0x39, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF3, 0x84, 0x9B, -0x01, 0xF0, 0x48, 0x9A, 0xB1, 0x67, 0x01, 0x48, -0x40, 0xEA, 0x00, 0x18, 0xA6, 0xD4, 0x00, 0x18, -0xA2, 0xD4, 0x00, 0x18, 0x9E, 0xD4, 0x00, 0x18, -0x9A, 0xD4, 0x00, 0x18, 0x96, 0xD4, 0x00, 0x18, -0x92, 0xD4, 0xFC, 0x6C, 0x00, 0x18, 0x24, 0xC3, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xC6, 0xF3, 0x84, 0x9B, 0x26, 0xF3, 0x58, 0x9A, -0x40, 0xEA, 0x00, 0x1C, 0xAB, 0x39, 0x30, 0xF0, -0x20, 0x6A, 0xC2, 0xF7, 0x1C, 0x4A, 0x40, 0x9A, -0x00, 0xDA, 0xB0, 0x17, 0xFD, 0x63, 0x05, 0x62, +0x23, 0xF5, 0x8C, 0x9B, 0x01, 0xF0, 0x48, 0x9A, +0xB1, 0x67, 0x01, 0x48, 0x40, 0xEA, 0x00, 0x18, +0xD1, 0xC6, 0x00, 0x18, 0xCD, 0xC6, 0x00, 0x18, +0xC9, 0xC6, 0x00, 0x18, 0xC5, 0xC6, 0x00, 0x18, +0xC1, 0xC6, 0x00, 0x18, 0xBD, 0xC6, 0xFC, 0x6C, +0x00, 0x18, 0xF2, 0xC1, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF5, 0x8C, 0x9B, +0xC3, 0xF4, 0x50, 0x9A, 0x40, 0xEA, 0x00, 0x1C, +0xAB, 0x39, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF2, +0x04, 0x4A, 0x40, 0x9A, 0x00, 0xDA, 0xB0, 0x17, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x44, 0x9A, 0x01, 0x72, 0x0C, 0x61, 0xFC, 0x6C, 0x00, 0x18, -0x29, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0xC6, 0xF3, -0x80, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, +0xF7, 0xC1, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0x23, 0xF5, +0x88, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x44, 0x9A, 0x01, 0x72, 0x0C, 0x61, 0xFC, 0x6C, 0x00, 0x18, -0x29, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0xC6, 0xF3, -0x80, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, +0xF7, 0xC1, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0x23, 0xF5, +0x88, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x44, 0x9A, 0x01, 0x72, 0x0C, 0x61, 0xFC, 0x6C, 0x00, 0x18, -0x29, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0xC6, 0xF3, -0x80, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, +0xF7, 0xC1, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0x23, 0xF5, +0x88, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x44, 0x9A, 0x01, 0x72, 0x0E, 0x61, 0xFC, 0x6C, 0x00, 0x18, -0x29, 0xC3, 0x00, 0x18, 0x12, 0xD8, 0x30, 0xF0, +0xF7, 0xC1, 0x00, 0x18, 0xCB, 0xCD, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, -0x58, 0x9A, 0xC6, 0xF3, 0x80, 0x9B, 0x40, 0xEA, +0x58, 0x9A, 0x23, 0xF5, 0x88, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x44, 0x9A, 0x01, 0x72, 0x0E, 0x61, -0xFC, 0x6C, 0x00, 0x18, 0x29, 0xC3, 0x00, 0x18, -0xE2, 0xD7, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0xC6, 0xF3, -0x80, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, -0x44, 0x9A, 0x01, 0x72, 0x1D, 0x61, 0x30, 0xF0, -0x20, 0x68, 0xFC, 0x6C, 0x46, 0xF5, 0x18, 0x48, -0x00, 0x18, 0x29, 0xC3, 0x00, 0x18, 0xE9, 0xD7, -0x48, 0x98, 0x20, 0x6B, 0x6C, 0xEA, 0x07, 0x22, -0x00, 0x18, 0x05, 0xDA, 0x48, 0x98, 0x21, 0x6B, -0x6B, 0xEB, 0x6C, 0xEA, 0x48, 0xD8, 0x30, 0xF0, +0x80, 0xF2, 0x44, 0x9A, 0x01, 0x72, 0x10, 0x61, +0xFC, 0x6C, 0x00, 0x18, 0xF7, 0xC1, 0x00, 0x18, +0x0D, 0xD1, 0x00, 0x18, 0x9B, 0xCD, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, -0x58, 0x9A, 0xC6, 0xF3, 0x80, 0x9B, 0x40, 0xEA, -0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x40, 0x9A, -0xE1, 0xF7, 0x1F, 0x6B, 0x40, 0xAA, 0x6C, 0xEA, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF3, 0x58, 0x9A, 0x60, 0x9A, 0xFF, 0xF7, -0x1F, 0x6A, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x54, 0x9A, -0x01, 0x6B, 0x40, 0x9A, 0x42, 0x32, 0x52, 0x32, -0x6E, 0xEA, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF3, 0x7C, 0x9B, -0x44, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x60, 0x9B, -0x03, 0xF3, 0x9C, 0x9C, 0x8C, 0xEB, 0x43, 0xEB, -0x02, 0x60, 0x6F, 0xEB, 0x69, 0xE2, 0x20, 0xE8, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x26, 0xE1, +0x58, 0x9A, 0x23, 0xF5, 0x88, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x20, 0xE1, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x72, 0xE1, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0xFF, 0xE1, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x73, 0xE2, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x1A, 0xE1, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x03, 0x6F, 0x8C, 0xEF, 0x64, 0x67, 0x46, 0x67, -0x04, 0x27, 0x0B, 0x10, 0xA0, 0xDB, 0xFC, 0x4A, -0x04, 0x4B, 0x04, 0x5A, 0xFB, 0x60, 0x03, 0x6A, -0x4C, 0xEE, 0x03, 0x10, 0xA0, 0xC4, 0xFF, 0x4E, -0x01, 0x4C, 0xFC, 0x2E, 0x00, 0x6A, 0x20, 0xE8, -0xFF, 0x6A, 0xAC, 0xEA, 0x03, 0x10, 0x40, 0xC4, -0xFF, 0x4E, 0x01, 0x4C, 0xFC, 0x2E, 0x00, 0x6A, -0x20, 0xE8, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, -0x03, 0x6B, 0x05, 0x67, 0x6C, 0xE8, 0x44, 0x67, -0xE4, 0x67, 0x85, 0x67, 0x12, 0x28, 0x4C, 0xEB, -0x10, 0x2B, 0x86, 0x67, 0x06, 0x10, 0x61, 0xE5, -0x00, 0x98, 0x7D, 0xE2, 0xFC, 0x4C, 0x00, 0xDF, -0x04, 0x4B, 0x04, 0x5C, 0xF8, 0x60, 0xCA, 0x34, -0x88, 0x34, 0x03, 0x6B, 0x9D, 0xE2, 0x6C, 0xEE, -0x91, 0xE5, 0x00, 0x6B, 0x06, 0x10, 0x61, 0xE4, -0x00, 0xA0, 0x75, 0xE7, 0xFF, 0x4E, 0x00, 0xC5, -0x01, 0x4B, 0xF9, 0x2E, 0x01, 0x90, 0x01, 0x63, -0x20, 0xE8, 0x00, 0x65, 0x09, 0x10, 0x60, 0xA4, -0x40, 0xA5, 0xFF, 0x4E, 0x4A, 0xEB, 0x02, 0x60, -0x4B, 0xE3, 0x20, 0xE8, 0x01, 0x4C, 0x01, 0x4D, -0xF6, 0x2E, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, -0x06, 0x2C, 0x64, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0x86, 0xF3, 0x74, 0xDA, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x86, 0xF3, 0x94, 0xDA, 0x30, 0xF0, -0x20, 0x6A, 0x86, 0xF3, 0x54, 0x9A, 0x32, 0x72, -0x3A, 0x60, 0x33, 0x5A, 0x0C, 0x60, 0x14, 0x72, -0x1E, 0x60, 0x15, 0x5A, 0x03, 0x60, 0x0A, 0x72, -0x12, 0x60, 0x20, 0xE8, 0x19, 0x72, 0x1F, 0x60, -0x28, 0x72, 0x25, 0x60, 0x20, 0xE8, 0x64, 0x72, -0x3A, 0x60, 0x65, 0x5A, 0x03, 0x60, 0x50, 0x72, -0x2E, 0x60, 0x20, 0xE8, 0x78, 0x72, 0x3B, 0x60, -0xC8, 0x72, 0x41, 0x60, 0x20, 0xE8, 0x02, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF3, 0x78, 0xDA, -0xE0, 0xF7, 0x1E, 0x4B, 0x41, 0x10, 0x03, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF3, 0x78, 0xDA, -0xE1, 0xF3, 0x1D, 0x4B, 0x39, 0x10, 0x09, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF3, 0x78, 0xDA, -0xE4, 0xF3, 0x17, 0x4B, 0x31, 0x10, 0x05, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF3, 0x78, 0xDA, -0xE2, 0xF3, 0x1B, 0x4B, 0x29, 0x10, 0x11, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF3, 0x78, 0xDA, -0xE8, 0xF3, 0x0F, 0x4B, 0x21, 0x10, 0x0D, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF3, 0x78, 0xDA, -0x06, 0xF4, 0x08, 0x4B, 0x19, 0x10, 0x22, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF3, 0x78, 0xDA, -0x11, 0xF0, 0x00, 0x6B, 0x11, 0x10, 0x28, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF3, 0x78, 0xDA, -0x14, 0xF0, 0x00, 0x6B, 0x09, 0x10, 0x43, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF3, 0x78, 0xDA, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x60, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF3, 0x7C, 0xDA, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x86, 0xF3, 0x54, 0x9A, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF3, 0x5C, 0x9A, -0xFF, 0x63, 0x58, 0xEC, 0x12, 0xEA, 0x00, 0xD2, -0x00, 0x92, 0xFF, 0x4A, 0x00, 0xD2, 0x00, 0x92, -0xFB, 0x2A, 0x01, 0x63, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF3, 0x58, 0x9A, -0xFF, 0x63, 0x58, 0xEC, 0x12, 0xEA, 0x00, 0xD2, -0x00, 0x92, 0xFF, 0x4A, 0x00, 0xD2, 0x00, 0x92, -0xFB, 0x2A, 0x01, 0x63, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0xCD, 0xD4, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xED, -0x00, 0x18, 0xB4, 0xD4, 0x05, 0x97, 0x00, 0x6A, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0xFF, 0x6A, 0x04, 0x67, 0x4C, 0xEE, -0x00, 0x18, 0xB9, 0xD4, 0x50, 0x67, 0x05, 0x97, -0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x00, 0x68, -0x20, 0x10, 0xE0, 0xF3, 0x08, 0x70, 0x13, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0x7C, 0x9A, -0x80, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xA3, 0xF3, 0x78, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, -0x78, 0xDA, 0x00, 0x6A, 0x13, 0x10, 0xFF, 0xF7, -0x1F, 0x6A, 0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, -0x58, 0x9A, 0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, -0xD8, 0x2A, 0x01, 0x6A, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xFF, 0xF7, 0x1F, 0x6A, -0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x6C, 0x43, 0xF2, 0x64, 0x9B, 0x23, 0xF6, -0x94, 0x9C, 0x6D, 0xE5, 0x91, 0xE5, 0x00, 0x6E, -0xC0, 0xDB, 0x04, 0x4B, 0x8A, 0xEB, 0xFB, 0x61, -0xE7, 0xF7, 0x1F, 0x6B, 0x4C, 0xEB, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF0, 0x4C, 0x9A, 0x10, 0x6C, -0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, -0x44, 0x9A, 0x49, 0xE5, 0x60, 0xDA, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF6, 0x58, 0x9A, 0xFF, 0x6B, -0x55, 0xE5, 0x40, 0xA5, 0x6C, 0xEA, 0x8D, 0xEA, -0x6C, 0xEA, 0x40, 0xC5, 0x20, 0xE8, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF3, 0x61, 0xA2, -0x08, 0xD4, 0x30, 0xF0, 0x20, 0x69, 0x61, 0xC5, -0x01, 0x4B, 0xA6, 0xF3, 0x61, 0xC2, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF2, 0x84, 0x9B, 0x08, 0x93, -0x80, 0xF2, 0x4C, 0x99, 0x02, 0x6E, 0x91, 0xE3, -0x05, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF6, 0x9C, 0x9B, 0x08, 0x93, 0xCE, 0xA0, -0x80, 0xF2, 0x4C, 0x99, 0xA2, 0x40, 0x91, 0xE3, -0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x24, 0x67, 0x00, 0x18, -0x34, 0xD5, 0x00, 0x6B, 0x46, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF3, 0x5C, 0x9A, 0xFF, 0xF7, -0x1F, 0x6E, 0xFF, 0x6F, 0x00, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF3, 0x5C, 0x9A, 0x10, 0x6C, -0x8B, 0xEC, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0xA1, 0x40, 0x43, 0xF6, 0x40, 0x9A, 0x65, 0x67, -0xCC, 0xEB, 0x60, 0xCA, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF6, 0x44, 0x9A, 0x60, 0xA2, 0xFA, 0x65, -0xA2, 0x32, 0xEC, 0xEB, 0x8C, 0xEB, 0x42, 0x32, -0x6D, 0xEA, 0xEC, 0xEA, 0x7F, 0x67, 0x40, 0xC3, -0x87, 0xA9, 0x02, 0x4C, 0xCC, 0xEC, 0x00, 0x18, -0x4D, 0xD5, 0x87, 0x40, 0x12, 0x4C, 0xB1, 0x67, -0x00, 0x18, 0x64, 0xD5, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF1, 0x58, 0x9A, 0x01, 0x6B, 0x80, 0xF2, -0x16, 0x6C, 0x60, 0xC2, 0x06, 0x02, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, -0x01, 0x6D, 0x00, 0x6E, 0x04, 0xF7, 0x10, 0x6F, -0x40, 0xEA, 0x4B, 0xEB, 0x4D, 0xEB, 0xC0, 0xF7, -0x62, 0x33, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x43, 0x67, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, 0xA0, 0xF6, -0x98, 0xA0, 0xA0, 0xF6, 0x59, 0xA0, 0x8E, 0xEA, -0x37, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF6, -0x48, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, -0x64, 0x9B, 0x40, 0x9A, 0x6C, 0xEA, 0x2C, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x90, 0x34, 0x06, 0xF7, -0x10, 0x4A, 0x91, 0xE2, 0x00, 0x18, 0x79, 0xD5, -0x1D, 0x22, 0xA0, 0xF6, 0x58, 0xA0, 0x01, 0x4A, -0xA0, 0xF6, 0x58, 0xC0, 0xA0, 0xF6, 0x78, 0xA0, -0xA0, 0xF6, 0x59, 0xA0, 0x6E, 0xEA, 0x06, 0x22, -0xA0, 0xF0, 0x44, 0x98, 0x04, 0x6B, 0x6D, 0xEA, -0xA0, 0xF0, 0x44, 0xD8, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xA0, 0xF6, 0x78, 0xA2, -0x50, 0x6C, 0x8E, 0xEB, 0x09, 0x2B, 0xA0, 0xF6, -0x78, 0xC2, 0x06, 0x10, 0xA0, 0xF0, 0x44, 0x98, -0x04, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, -0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, 0xA0, 0xF0, -0x44, 0x98, 0x04, 0x6B, 0xA4, 0x67, 0x6D, 0xEA, -0xA0, 0xF0, 0x44, 0xD8, 0xA0, 0xF6, 0x58, 0xA8, -0x09, 0xF7, 0x00, 0x72, 0x07, 0x60, 0xA0, 0xF6, -0x58, 0xA0, 0xA0, 0xF6, 0x99, 0xA0, 0xFF, 0x4A, -0x8E, 0xEA, 0x13, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF1, 0x7C, 0x9A, 0x00, 0xF2, 0x00, 0x6C, -0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0xA3, 0xF3, -0x78, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, 0x78, 0xDA, -0x18, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x80, 0xF2, 0x4C, 0x9A, 0x06, 0xF7, -0x10, 0x4B, 0x90, 0x34, 0x91, 0xE3, 0x10, 0x6E, -0x40, 0xEA, 0xA0, 0xF6, 0x59, 0xA0, 0x50, 0x6B, -0x01, 0x4A, 0xA0, 0xF6, 0x59, 0xC0, 0xA0, 0xF6, -0x59, 0xA0, 0x6E, 0xEA, 0x02, 0x2A, 0xA0, 0xF6, -0x59, 0xC0, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x20, 0x6A, 0x80, 0xF2, 0x44, 0x9A, 0x01, 0x72, +0x1D, 0x61, 0x30, 0xF0, 0x20, 0x68, 0xFC, 0x6C, +0x63, 0xF5, 0x18, 0x48, 0x00, 0x18, 0xF7, 0xC1, +0x00, 0x18, 0xA2, 0xCD, 0x48, 0x98, 0x20, 0x6B, +0x6C, 0xEA, 0x07, 0x22, 0x00, 0x18, 0x54, 0xCE, +0x48, 0x98, 0x21, 0x6B, 0x6B, 0xEB, 0x6C, 0xEA, +0x48, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0x23, 0xF5, +0x88, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0xA2, 0xF3, 0x58, 0x9A, 0xE1, 0xF7, 0x1F, 0x6B, +0x40, 0xAA, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF3, 0x5C, 0x9A, +0x60, 0x9A, 0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xC2, 0xF3, 0x40, 0x9A, 0x01, 0x6B, 0x40, 0x9A, +0x42, 0x32, 0x52, 0x32, 0x6E, 0xEA, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF3, 0x64, 0x9B, 0x44, 0x67, 0x30, 0xF0, +0x20, 0x6C, 0x60, 0x9B, 0x62, 0xF3, 0x94, 0x9C, +0x8C, 0xEB, 0x43, 0xEB, 0x02, 0x60, 0x6F, 0xEB, +0x69, 0xE2, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x18, 0xD3, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF3, -0x40, 0xA3, 0xFF, 0x6F, 0xE0, 0xF0, 0xC7, 0xA5, -0x41, 0xC5, 0x43, 0xA5, 0xA6, 0xF3, 0x60, 0xA3, -0x03, 0x4A, 0xEC, 0xEA, 0x09, 0x10, 0xED, 0x42, -0xFF, 0x68, 0x0C, 0xEF, 0xFD, 0xE5, 0x64, 0xC7, -0xE6, 0xA7, 0x03, 0x4F, 0xE9, 0xE2, 0x0C, 0xEA, -0xEF, 0x46, 0xE2, 0xEA, 0xF4, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xA6, 0xF3, 0x60, 0xA2, 0x01, 0x4B, -0xA6, 0xF3, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF2, 0x64, 0x9B, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x4C, 0x9A, 0x71, 0xE4, 0x40, 0xEA, -0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x24, 0x67, 0x00, 0x18, 0x34, 0xD5, 0x00, 0x6B, -0x3C, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, -0x5C, 0x9A, 0x0F, 0x6C, 0xFF, 0xF7, 0x1F, 0x6B, -0x00, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, -0x5C, 0x9A, 0x4C, 0xE8, 0xA1, 0x40, 0xA2, 0x32, -0x42, 0x32, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, -0x43, 0xF6, 0x80, 0x9C, 0xAC, 0xEB, 0x60, 0xCC, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF6, 0x64, 0x9B, -0x40, 0xC3, 0xE0, 0xF0, 0x87, 0xA1, 0x00, 0x18, -0x4D, 0xD5, 0x87, 0x40, 0x12, 0x4C, 0xB1, 0x67, -0x00, 0x18, 0xED, 0xD5, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF1, 0x58, 0x9A, 0x01, 0x6B, 0x80, 0xF2, -0x16, 0x6C, 0x60, 0xC2, 0x06, 0x02, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, -0x01, 0x6D, 0x00, 0x6E, 0x04, 0xF7, 0x10, 0x6F, -0x40, 0xEA, 0x4B, 0xEB, 0x4D, 0xEB, 0xC0, 0xF7, -0x62, 0x33, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x43, 0x67, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, 0x22, 0xF5, -0x7D, 0xA0, 0x22, 0xF5, 0x5E, 0xA0, 0x6E, 0xEA, -0x3E, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF6, -0x48, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF1, -0x84, 0x9C, 0x40, 0x9A, 0x8C, 0xEA, 0x33, 0x2A, -0xE8, 0x6A, 0x58, 0xEB, 0x30, 0xF0, 0x20, 0x6A, -0x07, 0xF4, 0x12, 0x4A, 0x12, 0xEB, 0x71, 0xE2, -0x00, 0x18, 0x06, 0xD6, 0x07, 0x2A, 0xA0, 0xF0, -0x44, 0x98, 0x04, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, -0x44, 0xD8, 0x21, 0x10, 0x22, 0xF5, 0x5D, 0xA0, -0x10, 0x6B, 0x01, 0x4A, 0x22, 0xF5, 0x5D, 0xC0, -0x22, 0xF5, 0x5D, 0xA0, 0x6E, 0xEA, 0x02, 0x2A, -0x22, 0xF5, 0x5D, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x22, 0xF5, 0x9D, 0xA2, -0x22, 0xF5, 0x7E, 0xA2, 0x8E, 0xEB, 0x07, 0x23, -0xA0, 0xF0, 0x64, 0x9A, 0x04, 0x6C, 0x8D, 0xEB, -0xA0, 0xF0, 0x64, 0xDA, 0x04, 0x10, 0x22, 0xF5, -0x9C, 0xC2, 0x22, 0xF5, 0x7A, 0xCA, 0x05, 0x97, -0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x00, 0x18, 0x12, 0xD3, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x64, 0xD3, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0xDD, 0xD3, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0xF1, 0xD3, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x0C, 0xD3, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x03, 0x6F, 0x8C, 0xEF, +0x64, 0x67, 0x46, 0x67, 0x04, 0x27, 0x0B, 0x10, +0xA0, 0xDB, 0xFC, 0x4A, 0x04, 0x4B, 0x04, 0x5A, +0xFB, 0x60, 0x03, 0x6A, 0x4C, 0xEE, 0x03, 0x10, +0xA0, 0xC4, 0xFF, 0x4E, 0x01, 0x4C, 0xFC, 0x2E, +0x00, 0x6A, 0x20, 0xE8, 0xFF, 0x6A, 0xAC, 0xEA, +0x03, 0x10, 0x40, 0xC4, 0xFF, 0x4E, 0x01, 0x4C, +0xFC, 0x2E, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x63, 0x01, 0xD0, 0x03, 0x6B, 0x05, 0x67, +0x6C, 0xE8, 0x44, 0x67, 0xE4, 0x67, 0x85, 0x67, +0x12, 0x28, 0x4C, 0xEB, 0x10, 0x2B, 0x86, 0x67, +0x06, 0x10, 0x61, 0xE5, 0x00, 0x98, 0x7D, 0xE2, +0xFC, 0x4C, 0x00, 0xDF, 0x04, 0x4B, 0x04, 0x5C, +0xF8, 0x60, 0xCA, 0x34, 0x88, 0x34, 0x03, 0x6B, +0x9D, 0xE2, 0x6C, 0xEE, 0x91, 0xE5, 0x00, 0x6B, +0x06, 0x10, 0x61, 0xE4, 0x00, 0xA0, 0x75, 0xE7, +0xFF, 0x4E, 0x00, 0xC5, 0x01, 0x4B, 0xF9, 0x2E, +0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, 0x00, 0x65, +0x09, 0x10, 0x60, 0xA4, 0x40, 0xA5, 0xFF, 0x4E, +0x4A, 0xEB, 0x02, 0x60, 0x4B, 0xE3, 0x20, 0xE8, +0x01, 0x4C, 0x01, 0x4D, 0xF6, 0x2E, 0x00, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0x80, 0x63, 0xFF, 0x62, +0xFE, 0xD1, 0xFD, 0xD0, 0xF9, 0x63, 0x20, 0xF4, +0x18, 0xD4, 0x00, 0x6D, 0x85, 0x04, 0x00, 0xF2, +0x00, 0x6E, 0x00, 0x18, 0xDF, 0xC6, 0x00, 0x6C, +0x0F, 0x10, 0x01, 0x6D, 0xAB, 0xED, 0xA0, 0xCB, +0x01, 0x4A, 0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEA, +0x04, 0x72, 0x02, 0x4B, 0xF6, 0x61, 0xFF, 0x6B, +0x04, 0x4C, 0x01, 0x4B, 0x8E, 0xEB, 0x05, 0x23, +0x84, 0x32, 0x85, 0x03, 0x4D, 0xE3, 0x00, 0x6A, +0xEC, 0x17, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x48, 0x9A, 0x9D, 0x67, 0x72, 0xC4, 0x71, 0xC4, +0x70, 0xC4, 0x04, 0x05, 0x00, 0x6C, 0x40, 0xEA, +0x7D, 0x67, 0x50, 0xA3, 0x01, 0x68, 0xFF, 0x72, +0x00, 0x6A, 0x80, 0xF0, 0x1D, 0x61, 0xCF, 0x10, +0x1F, 0x6A, 0x2C, 0xEA, 0x0F, 0x72, 0x2C, 0x61, +0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF3, 0x48, 0x9C, +0x00, 0xF0, 0x11, 0x05, 0x90, 0x67, 0x40, 0xEA, +0x5D, 0x67, 0x91, 0xA2, 0xFF, 0x74, 0x0F, 0x60, +0x0F, 0x6B, 0x8C, 0xEB, 0x01, 0x48, 0xFF, 0xF7, +0x1F, 0x6A, 0x0F, 0x73, 0x4C, 0xE8, 0x10, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x48, 0x9B, +0x90, 0x67, 0x04, 0x05, 0x40, 0xEA, 0x00, 0x6D, +0x05, 0x04, 0x00, 0xF2, 0x00, 0x6E, 0x00, 0x18, +0xDF, 0xC6, 0x01, 0x6D, 0x00, 0x6B, 0x92, 0x10, +0xF0, 0x6A, 0x8C, 0xEA, 0x47, 0x32, 0x36, 0x31, +0x2D, 0xEA, 0x00, 0xF4, 0x18, 0xD3, 0x05, 0x10, +0x0F, 0x6C, 0x2C, 0xEC, 0x32, 0x32, 0x00, 0xF4, +0x18, 0xD4, 0x40, 0x5A, 0x00, 0x6B, 0x49, 0x60, +0x4C, 0x32, 0x85, 0x01, 0x45, 0xE1, 0x20, 0xF4, +0x00, 0xD1, 0x00, 0xF4, 0x1C, 0xD3, 0x00, 0xF4, +0x1C, 0x93, 0x00, 0xF4, 0x18, 0x92, 0x47, 0xEB, +0x01, 0x6B, 0x6C, 0xEA, 0x2C, 0x2A, 0x90, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0xFF, 0xF7, 0x1F, 0x6A, +0x01, 0x48, 0x4C, 0xE8, 0xC0, 0xF3, 0x48, 0x9B, +0x00, 0xF0, 0x12, 0x05, 0x40, 0xEA, 0x9D, 0x67, +0x52, 0xA4, 0x20, 0xF4, 0x00, 0x93, 0x00, 0xF2, +0x00, 0x58, 0x40, 0xCB, 0x36, 0x60, 0x90, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0xFF, 0xF7, 0x1F, 0x6A, +0x01, 0x48, 0x4C, 0xE8, 0xC0, 0xF3, 0x48, 0x9B, +0x00, 0xF0, 0x12, 0x05, 0x40, 0xEA, 0x9D, 0x67, +0x52, 0xA4, 0x60, 0xA9, 0x00, 0xF2, 0x00, 0x70, +0x40, 0x32, 0x6D, 0xEA, 0x40, 0xC9, 0x03, 0x61, +0x00, 0xF2, 0x00, 0x68, 0x1E, 0x10, 0x00, 0xF4, +0x1C, 0x92, 0x20, 0xF4, 0x00, 0x93, 0x02, 0x49, +0x01, 0x4A, 0x02, 0x4B, 0x04, 0x72, 0x00, 0xF4, +0x1C, 0xD2, 0x20, 0xF4, 0x00, 0xD3, 0xBF, 0x61, +0x10, 0x10, 0x00, 0xF4, 0x18, 0x92, 0x01, 0x6C, +0x47, 0xEB, 0x8C, 0xEA, 0x07, 0x2A, 0x02, 0x48, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0x00, 0xF2, +0x00, 0x58, 0x03, 0x60, 0x01, 0x4B, 0x04, 0x73, +0xF0, 0x61, 0xFF, 0xF7, 0x1F, 0x6A, 0x90, 0x67, +0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x48, 0x9A, 0x04, 0x05, 0x40, 0xEA, +0x9D, 0x67, 0x30, 0xA4, 0xFF, 0x71, 0x7F, 0xF7, +0x1E, 0x60, 0x00, 0xF2, 0x00, 0x58, 0x5F, 0xF7, +0x1B, 0x61, 0x79, 0x17, 0x20, 0xAC, 0x01, 0x4A, +0x02, 0x4C, 0x20, 0xC0, 0x20, 0xAF, 0x02, 0x48, +0x02, 0x4F, 0x22, 0x31, 0x20, 0xC6, 0xFF, 0xF7, +0x1F, 0x69, 0x2C, 0xEA, 0x04, 0x72, 0x02, 0x4E, +0xF1, 0x61, 0x04, 0x4B, 0x00, 0xF1, 0x00, 0x73, +0x08, 0x4D, 0x09, 0x60, 0x64, 0x30, 0x85, 0x04, +0x11, 0xE4, 0x05, 0x06, 0x01, 0xE6, 0xE4, 0x67, +0xB9, 0xE6, 0x00, 0x6A, 0xE3, 0x17, 0x7D, 0x67, +0xA0, 0xF1, 0x45, 0xA3, 0x20, 0xF4, 0x18, 0x94, +0x01, 0x6B, 0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, +0xCA, 0xF4, 0x74, 0xC2, 0x01, 0x6A, 0x07, 0x63, +0xFF, 0x97, 0xFE, 0x91, 0xFD, 0x90, 0x00, 0xF4, +0x00, 0x63, 0x00, 0xEF, 0x1F, 0x75, 0x0D, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, 0x68, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x62, 0xF3, 0x98, 0x9C, +0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x00, 0x6A, +0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF3, +0x48, 0x9A, 0x60, 0x9C, 0x4E, 0xEB, 0x01, 0x6A, +0x0C, 0x23, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, +0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF3, +0x98, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x00, 0x6A, 0x20, 0xE8, 0x6D, 0xA4, 0x0F, 0x6A, +0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF3, 0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x62, 0xF3, 0x88, 0x9C, 0x40, 0x9B, 0x2F, 0x10, +0x4E, 0xA4, 0x1F, 0x6B, 0x6C, 0xEA, 0x1F, 0x4A, +0x6C, 0xEA, 0x10, 0x5A, 0x0A, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF3, 0x68, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xA2, 0xF3, 0x90, 0x9C, 0x40, 0x9B, +0x1E, 0x10, 0x4C, 0xA4, 0x0C, 0x22, 0x80, 0x72, +0x0A, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, +0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF3, +0x8C, 0x9C, 0x40, 0x9B, 0x10, 0x10, 0x6D, 0xA4, +0x10, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6D, +0xAC, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF3, 0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x62, 0xF3, 0x9C, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0x00, 0x6A, 0x20, 0xE8, 0x4E, 0xA4, +0x20, 0x6B, 0x6B, 0xEB, 0x4C, 0xEB, 0xAC, 0xEB, +0x01, 0x6A, 0x0C, 0x23, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF3, 0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x22, 0xF3, 0x8C, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x18, 0x4B, +0x26, 0xF7, 0x4F, 0xA3, 0x04, 0x2A, 0x01, 0x6C, +0x26, 0xF7, 0x8F, 0xC3, 0x20, 0xE8, 0x8F, 0x42, +0x26, 0xF7, 0x8F, 0xC3, 0x20, 0xE8, 0x00, 0x65, +0xA2, 0xDC, 0x20, 0xE8, 0xAC, 0xC4, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, -0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF5, 0x7C, 0x98, -0x43, 0xF6, 0x4C, 0x9A, 0xA4, 0x67, 0x6C, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, 0x70, 0x9B, -0x6E, 0xEA, 0x07, 0x22, 0x22, 0xF5, 0x5D, 0xA0, -0x22, 0xF5, 0x7E, 0xA0, 0xFF, 0x4A, 0x6E, 0xEA, -0x15, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, -0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF1, -0x88, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xA3, 0xF3, 0x78, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, -0x78, 0xDA, 0xAC, 0x10, 0x23, 0xA4, 0xFF, 0xF7, -0x1F, 0x6A, 0x04, 0x49, 0x4C, 0xE9, 0x22, 0xF5, -0x5A, 0xA8, 0x22, 0x2A, 0xE8, 0x6A, 0x58, 0xEB, +0xFF, 0x68, 0xAC, 0xE8, 0x00, 0x30, 0x30, 0xF0, +0x20, 0x6A, 0xAA, 0xF0, 0x00, 0x4A, 0x04, 0x30, +0x01, 0xE2, 0x24, 0x67, 0x00, 0x6D, 0x90, 0x67, +0x00, 0xF2, 0x00, 0x6E, 0x00, 0x18, 0xDF, 0xC6, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF3, 0x50, 0x9A, +0x40, 0xD8, 0x41, 0x99, 0x41, 0xD8, 0x07, 0x97, +0x50, 0x67, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xDB, 0x63, 0x49, 0x62, +0x48, 0xD1, 0x47, 0xD0, 0xFF, 0x6E, 0x04, 0x67, +0x25, 0x67, 0x04, 0x04, 0x00, 0x6D, 0x01, 0x4E, +0x00, 0x18, 0xDF, 0xC6, 0x6E, 0x10, 0x00, 0x6A, +0x08, 0x58, 0x44, 0xD2, 0x0A, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF3, 0x54, 0x9A, 0x91, 0x67, +0xF8, 0x48, 0x40, 0xEA, 0x02, 0xF0, 0x00, 0x49, +0x60, 0x10, 0xFF, 0x6E, 0x04, 0x04, 0x00, 0x6D, +0x01, 0x4E, 0x00, 0x18, 0xDF, 0xC6, 0x44, 0x93, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, 0x5C, 0x9A, +0xFF, 0x6D, 0x31, 0xE3, 0x01, 0x4D, 0x04, 0x06, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x44, 0x94, +0xC2, 0xF3, 0x74, 0x9B, 0x04, 0x02, 0x6D, 0xE4, +0x44, 0x04, 0xA0, 0xA2, 0x01, 0x4A, 0x8A, 0xEA, +0xA0, 0xC3, 0x01, 0x4B, 0xFA, 0x61, 0x44, 0x92, +0x00, 0xF1, 0x00, 0x4A, 0x02, 0xF0, 0x00, 0x72, +0x44, 0xD2, 0xDB, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF3, 0x54, 0x9A, 0x91, 0x67, 0x00, 0x30, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, +0x40, 0x9A, 0x04, 0x30, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x5C, 0x9A, 0x02, 0x6C, +0x40, 0xEA, 0x2D, 0xE0, 0x44, 0xD3, 0xFF, 0x6E, +0x04, 0x04, 0x00, 0x6D, 0x01, 0x4E, 0x00, 0x18, +0xDF, 0xC6, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF3, +0x74, 0x9A, 0x44, 0x04, 0x04, 0x02, 0x6D, 0xE0, +0xA0, 0xA3, 0x01, 0x4B, 0xA0, 0xC2, 0x01, 0x4A, +0x8A, 0xEA, 0xFA, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x44, 0x94, 0xE0, 0xF3, 0x58, 0x9A, 0xFF, 0x6D, +0x01, 0x4D, 0x04, 0x06, 0x40, 0xEA, 0x44, 0x94, +0x00, 0xF1, 0x00, 0x48, 0x02, 0xF0, 0x00, 0x58, +0x00, 0xF1, 0x00, 0x4C, 0x44, 0xD4, 0xDB, 0x61, +0x00, 0x68, 0x91, 0x28, 0x49, 0x97, 0x48, 0x91, +0x47, 0x90, 0x25, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF1, 0x74, 0x9A, +0x82, 0xF1, 0x14, 0x4A, 0x41, 0x9A, 0x30, 0xF0, +0x20, 0x6D, 0x07, 0x04, 0x82, 0xF1, 0x04, 0x4D, +0x10, 0x6E, 0x05, 0xD3, 0x06, 0xD2, 0x00, 0x18, +0xE4, 0xC6, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF1, +0x40, 0x9A, 0x04, 0xD2, 0x00, 0x18, 0xC2, 0xC7, +0x40, 0x30, 0x22, 0x67, 0x30, 0xF0, 0x20, 0x6A, +0xAA, 0xF0, 0x00, 0x4A, 0x04, 0x30, 0x01, 0xE2, +0x90, 0x67, 0x00, 0x6D, 0x00, 0xF2, 0x00, 0x6E, +0x00, 0x18, 0xDF, 0xC6, 0x30, 0xF0, 0x20, 0x6A, +0xCA, 0xF4, 0x54, 0xA2, 0x08, 0x2A, 0x30, 0xF0, +0x20, 0x6C, 0xCA, 0xF4, 0x15, 0x4C, 0x00, 0x18, +0xFF, 0xC6, 0x01, 0x72, 0x09, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xCA, 0xF4, 0x55, 0xA2, 0x02, 0x6B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x6A, 0x01, 0x10, +0x05, 0x6A, 0x40, 0xC0, 0x80, 0x6A, 0x4B, 0xEA, +0x41, 0xC0, 0x01, 0x6A, 0x43, 0xC0, 0x87, 0x40, +0x1F, 0x6A, 0x05, 0x05, 0x44, 0xC0, 0x01, 0x4C, +0x08, 0x6E, 0x00, 0x18, 0xE4, 0xC6, 0x87, 0x40, +0x07, 0x05, 0x09, 0x4C, 0x10, 0x6E, 0x00, 0x18, +0xE4, 0xC6, 0x87, 0x40, 0x04, 0x05, 0x19, 0x4C, +0x04, 0x6E, 0x00, 0x18, 0xE4, 0xC6, 0x91, 0x67, +0x24, 0x6D, 0x00, 0x6E, 0x00, 0x18, 0x62, 0xD1, +0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, 0x01, 0x6A, +0x08, 0x63, 0x00, 0xEF, 0xD4, 0x63, 0x57, 0x62, +0x56, 0xD1, 0x55, 0xD0, 0x59, 0xD5, 0x30, 0xF0, +0x20, 0x6D, 0x42, 0xF1, 0x18, 0x4D, 0x28, 0x6E, +0x24, 0x67, 0x04, 0x04, 0x00, 0x18, 0xE4, 0xC6, +0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6E, 0x0E, 0x04, +0x00, 0x6D, 0x01, 0x4E, 0x63, 0xF5, 0x18, 0x48, +0x00, 0x18, 0xDF, 0xC6, 0x26, 0xF7, 0x50, 0xA0, +0x20, 0xF5, 0x0E, 0x2A, 0x59, 0x95, 0x91, 0x67, +0x00, 0x18, 0x85, 0xC7, 0x00, 0xF5, 0x18, 0x22, +0x59, 0x95, 0x91, 0x67, 0x00, 0x18, 0x97, 0xC7, +0x00, 0xF5, 0x12, 0x22, 0x4F, 0xA1, 0x2A, 0x72, +0x20, 0xF4, 0x11, 0x60, 0x2B, 0x5A, 0x25, 0x60, +0x1B, 0x72, 0x00, 0xF3, 0x1A, 0x60, 0x1C, 0x5A, +0x0F, 0x60, 0x03, 0x72, 0x68, 0x60, 0x04, 0x5A, +0x04, 0x60, 0x20, 0xF2, 0x0A, 0x22, 0xE0, 0xF4, +0x14, 0x10, 0x12, 0x72, 0x3F, 0x60, 0x1A, 0x72, +0x80, 0xF0, 0x1B, 0x60, 0xE0, 0xF4, 0x0D, 0x10, +0x23, 0x72, 0x78, 0x67, 0x4F, 0xD3, 0x40, 0xF1, +0x1C, 0x23, 0x24, 0x5A, 0x05, 0x60, 0x1E, 0x72, +0x40, 0xF1, 0x0C, 0x60, 0xE0, 0xF4, 0x01, 0x10, +0x25, 0x72, 0xA0, 0xF1, 0x0F, 0x60, 0x28, 0x72, +0x25, 0x10, 0x51, 0x72, 0x20, 0xF2, 0x14, 0x60, +0x52, 0x5A, 0x12, 0x60, 0x43, 0x72, 0x40, 0xF2, +0x03, 0x60, 0x44, 0x5A, 0x05, 0x60, 0x35, 0x72, +0xC0, 0xF4, 0x1A, 0x60, 0xC0, 0xF4, 0x0D, 0x10, +0x46, 0x72, 0x20, 0xF2, 0x19, 0x60, 0x4A, 0x72, +0x00, 0xF2, 0x0D, 0x60, 0xC0, 0xF4, 0x05, 0x10, +0x5A, 0x72, 0xA0, 0xF0, 0x16, 0x60, 0x5B, 0x5A, +0x05, 0x60, 0x52, 0x72, 0x20, 0xF2, 0x0C, 0x60, +0xA0, 0xF4, 0x1B, 0x10, 0xA4, 0x72, 0x80, 0xF4, +0x16, 0x60, 0xA8, 0x72, 0xE0, 0xF2, 0x09, 0x60, +0xA0, 0xF4, 0x13, 0x10, 0x82, 0x99, 0x4E, 0xD4, +0x00, 0x18, 0x1E, 0xC8, 0x50, 0xD2, 0x00, 0x18, +0xC2, 0xC7, 0xA2, 0x67, 0x91, 0x67, 0x4F, 0xD2, +0x00, 0x18, 0xCC, 0xC7, 0x4E, 0x95, 0x02, 0x67, +0x25, 0x5D, 0x03, 0x61, 0x82, 0x67, 0xDC, 0x4D, +0x02, 0x10, 0x82, 0x67, 0x00, 0x6D, 0x00, 0x18, +0xCA, 0xC7, 0x50, 0x92, 0x01, 0x72, 0x40, 0xF2, +0x1B, 0x60, 0x90, 0x67, 0x01, 0x6D, 0x00, 0x18, +0xCB, 0xC7, 0x4F, 0x94, 0x38, 0x10, 0x00, 0x18, +0xC2, 0xC7, 0x4F, 0xD2, 0x40, 0x30, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0x99, 0xAA, 0xF0, 0x00, 0x4A, +0x04, 0x30, 0x01, 0xE2, 0x90, 0x67, 0x00, 0x6D, +0x00, 0xF2, 0x00, 0x6E, 0x4E, 0xD3, 0x00, 0x18, +0xDF, 0xC6, 0x4E, 0x94, 0x08, 0x5C, 0x80, 0xF2, +0x06, 0x61, 0x70, 0x6A, 0x40, 0xC0, 0x44, 0x67, +0xF8, 0x4A, 0x47, 0xC0, 0x05, 0x6A, 0x42, 0xC0, +0x20, 0x6A, 0x4C, 0xC0, 0x4E, 0x92, 0x4F, 0x94, +0xFF, 0xF7, 0x1F, 0x6D, 0x4C, 0xED, 0x00, 0x6E, +0x00, 0x18, 0x62, 0xD1, 0x00, 0x18, 0xC2, 0xC7, +0xA2, 0x67, 0x91, 0x67, 0x4E, 0xD2, 0x00, 0x18, +0xCC, 0xC7, 0x02, 0x67, 0x90, 0x67, 0x00, 0x6D, +0x00, 0x18, 0xCA, 0xC7, 0x90, 0x67, 0x00, 0x6D, +0x00, 0x18, 0xCB, 0xC7, 0x4E, 0x94, 0x0D, 0x6D, +0x00, 0x6E, 0x00, 0x18, 0x62, 0xD1, 0xE0, 0xF4, +0x1C, 0x10, 0x00, 0x18, 0xC2, 0xC7, 0x4F, 0xD2, +0x40, 0x30, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0x99, +0xAA, 0xF0, 0x00, 0x4A, 0x04, 0x30, 0x01, 0xE2, +0x90, 0x67, 0x00, 0x6D, 0x00, 0xF2, 0x00, 0x6E, +0x4E, 0xD3, 0x00, 0x18, 0xDF, 0xC6, 0x4E, 0x94, +0x04, 0x5C, 0x40, 0xF2, 0x08, 0x61, 0x03, 0x6A, +0x40, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0xCA, 0xF4, +0x54, 0xA2, 0x08, 0x2A, 0x30, 0xF0, 0x20, 0x6C, +0xCA, 0xF4, 0x15, 0x4C, 0x00, 0x18, 0xFF, 0xC6, +0x01, 0x72, 0x0C, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xCA, 0xF4, 0x75, 0xA2, 0x02, 0x6A, 0x6C, 0xEA, +0x05, 0x22, 0x04, 0x6A, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x6A, 0x02, 0x10, 0x80, 0x6A, 0x4B, 0xEA, +0x42, 0xC0, 0x4F, 0x94, 0x04, 0x6D, 0x00, 0x6E, +0x00, 0x18, 0x62, 0xD1, 0x00, 0x18, 0xC2, 0xC7, +0xA2, 0x67, 0x91, 0x67, 0x4F, 0xD2, 0x00, 0x18, +0xCC, 0xC7, 0x4E, 0x95, 0x02, 0x67, 0x04, 0x75, +0xC0, 0xF1, 0x0E, 0x60, 0x82, 0x67, 0xFC, 0x4D, +0xCD, 0x11, 0x00, 0x18, 0xC2, 0xC7, 0x50, 0xD2, +0x42, 0x99, 0x50, 0x94, 0x00, 0x6D, 0x4E, 0xD2, +0x80, 0x33, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0x33, +0xAA, 0xF0, 0x00, 0x4A, 0x69, 0xE2, 0x82, 0x67, +0x00, 0xF2, 0x00, 0x6E, 0x51, 0xD2, 0x00, 0x18, +0xDF, 0xC6, 0x76, 0xA1, 0x57, 0xA1, 0x60, 0x33, +0x49, 0xE3, 0x4F, 0xD2, 0x2D, 0x22, 0x46, 0xF7, +0x5C, 0xA0, 0x08, 0x2A, 0x30, 0xF0, 0x20, 0x6C, +0xCA, 0xF4, 0x15, 0x4C, 0x00, 0x18, 0xFF, 0xC6, +0x01, 0x72, 0x16, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xCA, 0xF4, 0x75, 0xA2, 0x02, 0x6A, 0x6C, 0xEA, +0x0A, 0x22, 0x04, 0x6A, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x6A, 0x0C, 0x10, 0x80, 0x6A, 0x4B, 0xEA, +0x7D, 0x67, 0x53, 0xC3, 0x09, 0x10, 0x80, 0x6A, +0x4B, 0xEA, 0x9D, 0x67, 0x53, 0xC4, 0x04, 0x10, +0x80, 0x6A, 0x4B, 0xEA, 0xBD, 0x67, 0x53, 0xC5, +0x51, 0x94, 0x04, 0x05, 0x28, 0x6E, 0x00, 0x18, +0xE4, 0xC6, 0x4F, 0x92, 0x29, 0x5A, 0x02, 0x61, +0x50, 0x94, 0xCE, 0x11, 0x4E, 0x93, 0x4F, 0x94, +0x63, 0xEC, 0x06, 0x60, 0x4F, 0x92, 0xFF, 0xF7, +0x1F, 0x6D, 0x50, 0x94, 0x4C, 0xED, 0x05, 0x10, +0x4E, 0x93, 0x50, 0x94, 0xFF, 0xF7, 0x1F, 0x6D, +0x6C, 0xED, 0x00, 0x6E, 0x00, 0x18, 0x62, 0xD1, +0x00, 0x18, 0xC2, 0xC7, 0xA2, 0x67, 0x91, 0x67, +0x50, 0xD2, 0x00, 0x18, 0xCC, 0xC7, 0x4E, 0x94, +0x4F, 0x95, 0x02, 0x67, 0x83, 0xED, 0x04, 0x60, +0x82, 0x67, 0x4E, 0x92, 0xB7, 0xE2, 0x02, 0x10, +0x82, 0x67, 0x00, 0x6D, 0x00, 0x18, 0xCA, 0xC7, +0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, 0xCB, 0xC7, +0x50, 0x94, 0x3D, 0x17, 0x00, 0x18, 0xC2, 0xC7, +0xA2, 0x67, 0x91, 0x67, 0x4E, 0xD2, 0x00, 0x18, +0xCC, 0xC7, 0x02, 0x67, 0x82, 0x67, 0xA2, 0x99, +0x2B, 0x17, 0x00, 0x18, 0xC2, 0xC7, 0x50, 0xD2, +0x40, 0x33, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0x33, +0xAA, 0xF0, 0x00, 0x4A, 0x69, 0xE2, 0x82, 0x67, +0x00, 0x6D, 0x00, 0xF2, 0x00, 0x6E, 0x4E, 0xD2, +0x00, 0x18, 0xDF, 0xC6, 0x4E, 0x93, 0x08, 0x6A, +0x9D, 0x67, 0x43, 0xC3, 0x30, 0xF1, 0xAC, 0x44, +0x80, 0xA5, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF3, +0x5C, 0x9A, 0x84, 0xC3, 0x26, 0xF1, 0x60, 0x98, +0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF3, 0x80, 0x9C, +0x6D, 0xE2, 0x62, 0x33, 0x66, 0x33, 0x4E, 0x95, +0x8C, 0xEB, 0x62, 0x33, 0x62, 0x33, 0x65, 0xC5, +0x26, 0xF1, 0x60, 0x98, 0x1F, 0xF7, 0x00, 0x6C, +0x00, 0x6E, 0x6D, 0xE2, 0x62, 0x33, 0x66, 0x33, +0x8C, 0xEB, 0x62, 0x33, 0x66, 0xC5, 0x26, 0xF1, +0x60, 0x98, 0x69, 0xE2, 0x42, 0x32, 0x46, 0x32, +0x47, 0xC5, 0x7D, 0x67, 0x02, 0x6A, 0x48, 0xC5, +0x30, 0xF1, 0x8C, 0x43, 0x60, 0xA4, 0x9D, 0x67, +0x4A, 0xC5, 0x69, 0xC5, 0x30, 0xF1, 0xAC, 0x44, +0x80, 0xA5, 0x4E, 0x95, 0x8B, 0xC5, 0x50, 0x94, +0x0C, 0x6D, 0x00, 0x18, 0x62, 0xD1, 0x00, 0x18, +0xC2, 0xC7, 0xA2, 0x67, 0x91, 0x67, 0x4E, 0xD2, +0x00, 0x18, 0xCC, 0xC7, 0xA2, 0x99, 0x02, 0x67, +0x0D, 0x5D, 0xDF, 0xF6, 0x0F, 0x61, 0x82, 0x67, +0xF4, 0x4D, 0xCE, 0x16, 0x00, 0x18, 0xC2, 0xC7, +0x4E, 0xD2, 0x40, 0x30, 0x30, 0xF0, 0x20, 0x6A, +0xAA, 0xF0, 0x00, 0x4A, 0x04, 0x30, 0x01, 0xE2, +0x90, 0x67, 0x00, 0x6D, 0x00, 0xF2, 0x00, 0x6E, +0x00, 0x18, 0xDF, 0xC6, 0x56, 0xA1, 0x01, 0x6B, +0x6C, 0xEA, 0x4C, 0x2A, 0x51, 0xA1, 0x4A, 0x2A, +0x62, 0x99, 0x08, 0x5B, 0x47, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF5, 0x18, 0x4B, 0x30, 0xF0, +0x20, 0x6C, 0x26, 0xF1, 0xA0, 0x9B, 0xC2, 0xF3, +0x9C, 0x9C, 0x30, 0xF0, 0x20, 0x6E, 0xE2, 0xF3, +0xC0, 0x9E, 0xB5, 0xE4, 0xA2, 0x35, 0xA6, 0x35, +0xFF, 0x4D, 0x00, 0xF6, 0xA2, 0x35, 0xA0, 0xC0, +0x26, 0xF1, 0xA0, 0x9B, 0xB5, 0xE4, 0xA2, 0x35, +0xA6, 0x35, 0xFF, 0x4D, 0xCC, 0xED, 0xA2, 0x35, +0xA2, 0x35, 0xA1, 0xC0, 0x26, 0xF1, 0xA0, 0x9B, +0x1F, 0xF7, 0x00, 0x6E, 0xB5, 0xE4, 0xA2, 0x35, +0xA6, 0x35, 0xFF, 0x4D, 0xCC, 0xED, 0xA2, 0x35, +0xA2, 0xC0, 0x26, 0xF1, 0x60, 0x9B, 0x44, 0xC0, +0x45, 0xC0, 0x71, 0xE4, 0x82, 0x34, 0x86, 0x34, +0x02, 0x6B, 0xFF, 0x4C, 0x66, 0xC0, 0x83, 0xC0, +0x47, 0xC0, 0x4E, 0x94, 0x08, 0x6D, 0x00, 0x6E, +0x00, 0x18, 0x62, 0xD1, 0x00, 0x18, 0xC2, 0xC7, +0xA2, 0x67, 0x91, 0x67, 0x4E, 0xD2, 0x00, 0x18, +0xCC, 0xC7, 0xA2, 0x99, 0x02, 0x67, 0x82, 0x67, +0xF8, 0x4D, 0x6E, 0x16, 0x00, 0x6C, 0xA4, 0x67, +0x23, 0x10, 0x02, 0x99, 0x13, 0x58, 0xC0, 0xF1, +0x0C, 0x60, 0x00, 0x18, 0xC2, 0xC7, 0xA2, 0x67, +0x91, 0x67, 0x4E, 0xD2, 0x00, 0x18, 0xCC, 0xC7, +0x22, 0x67, 0x82, 0x67, 0xB0, 0x67, 0x00, 0x18, +0xCA, 0xC7, 0x91, 0x67, 0x5C, 0x16, 0x00, 0x18, +0xC2, 0xC7, 0x02, 0x67, 0x40, 0x34, 0x30, 0xF0, +0x20, 0x6A, 0xAA, 0xF0, 0x00, 0x4A, 0x84, 0x34, +0x91, 0xE2, 0x00, 0x6D, 0x00, 0xF2, 0x00, 0x6E, +0x00, 0x18, 0xDF, 0xC6, 0x90, 0x67, 0x00, 0x6D, +0xC5, 0x67, 0x00, 0x18, 0x62, 0xD1, 0xA5, 0x12, +0xA2, 0x99, 0x4F, 0xD5, 0x00, 0x18, 0xC2, 0xC7, +0x00, 0x6D, 0xC5, 0x67, 0x82, 0x67, 0x00, 0x18, +0x62, 0xD1, 0x00, 0x18, 0xC2, 0xC7, 0xA2, 0x67, +0x91, 0x67, 0x4E, 0xD2, 0x00, 0x18, 0xCC, 0xC7, +0x02, 0x67, 0x82, 0x67, 0x4F, 0x95, 0xA6, 0x12, +0x00, 0x18, 0xC2, 0xC7, 0x4F, 0xD2, 0x42, 0x99, +0x4F, 0x93, 0x00, 0x6D, 0x4E, 0xD2, 0x60, 0x30, +0x30, 0xF0, 0x20, 0x6A, 0xAA, 0xF0, 0x00, 0x4A, +0x04, 0x30, 0x01, 0xE2, 0x90, 0x67, 0x00, 0xF2, +0x00, 0x6E, 0x00, 0x18, 0xDF, 0xC6, 0x6F, 0xA1, +0x43, 0x6A, 0x6E, 0xEA, 0x40, 0x2A, 0x12, 0x6B, +0x61, 0xC0, 0x01, 0x6B, 0x62, 0xC0, 0x63, 0xC0, +0x66, 0xC0, 0x56, 0x6B, 0x14, 0x6C, 0x6B, 0xEB, +0x85, 0xC0, 0x8D, 0xC0, 0x6E, 0xC0, 0x52, 0xC0, +0x53, 0xC0, 0x58, 0xA1, 0x40, 0x72, 0x03, 0x60, +0x51, 0xA1, 0x01, 0x72, 0x03, 0x61, 0x0A, 0x6A, +0x41, 0xC0, 0x05, 0x10, 0x50, 0xA1, 0x02, 0x72, +0x02, 0x61, 0x02, 0x6A, 0x4B, 0xC0, 0x4E, 0x94, +0x15, 0x5C, 0x03, 0x61, 0x4F, 0x94, 0x14, 0x6D, +0x05, 0x10, 0x4E, 0x92, 0x4F, 0x94, 0xFF, 0xF7, +0x1F, 0x6D, 0x4C, 0xED, 0x00, 0x6E, 0x00, 0x18, +0x62, 0xD1, 0x00, 0x18, 0xC2, 0xC7, 0xA2, 0x67, +0x91, 0x67, 0x4F, 0xD2, 0x00, 0x18, 0xCC, 0xC7, +0x4E, 0x93, 0x02, 0x67, 0x15, 0x5B, 0x04, 0x61, +0xA3, 0x67, 0x82, 0x67, 0xEC, 0x4D, 0x02, 0x10, +0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, 0xCA, 0xC7, +0x90, 0x67, 0x00, 0x6D, 0xA4, 0x15, 0x46, 0x73, +0x18, 0x61, 0x4E, 0x94, 0x08, 0x5C, 0x3F, 0x61, +0x04, 0x6A, 0x43, 0xC0, 0x08, 0x6A, 0x47, 0xC0, +0x4F, 0x94, 0x08, 0x6D, 0x00, 0x6E, 0x00, 0x18, +0x62, 0xD1, 0x00, 0x18, 0xC2, 0xC7, 0xA2, 0x67, +0x91, 0x67, 0x4F, 0xD2, 0x00, 0x18, 0xCC, 0xC7, +0x4E, 0x95, 0x02, 0x67, 0x82, 0x67, 0xF8, 0x4D, +0xE1, 0x17, 0x4E, 0x95, 0x20, 0x5D, 0x27, 0x61, +0x2E, 0x6A, 0x41, 0xC0, 0x01, 0x6A, 0x42, 0xC0, +0x43, 0xC0, 0x46, 0xC0, 0x02, 0x6A, 0x47, 0xC0, +0x10, 0x6A, 0x57, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF3, 0x44, 0x9A, 0x04, 0x6B, 0x65, 0xC0, +0x46, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF3, +0x54, 0x9A, 0x20, 0x6D, 0x00, 0x6E, 0x47, 0xD8, +0x4F, 0x94, 0x00, 0x18, 0x62, 0xD1, 0x00, 0x18, +0xC2, 0xC7, 0xA2, 0x67, 0x91, 0x67, 0x4F, 0xD2, +0x00, 0x18, 0xCC, 0xC7, 0x4E, 0x95, 0x02, 0x67, +0x82, 0x67, 0xE0, 0x4D, 0xB7, 0x17, 0x4F, 0x94, +0x00, 0x6D, 0xC5, 0x67, 0x00, 0x18, 0x62, 0xD1, +0x00, 0x18, 0xC2, 0xC7, 0xA2, 0x67, 0x91, 0x67, +0x4F, 0xD2, 0x00, 0x18, 0xCC, 0xC7, 0x4E, 0x95, +0x82, 0x67, 0x02, 0x67, 0x00, 0x18, 0xCA, 0xC7, +0x4C, 0x15, 0x00, 0x18, 0xC2, 0xC7, 0xA2, 0x67, +0x91, 0x67, 0x4E, 0xD2, 0x00, 0x18, 0xCC, 0xC7, +0x02, 0x67, 0x82, 0x67, 0x00, 0x6D, 0x00, 0x18, +0xCA, 0xC7, 0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, +0xCB, 0xC7, 0x4E, 0x94, 0x0D, 0x6D, 0x00, 0x6E, +0x00, 0x18, 0x62, 0xD1, 0x00, 0x18, 0x14, 0xD1, +0x74, 0x12, 0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF6, +0x58, 0x9A, 0x02, 0x99, 0x4F, 0xD2, 0x52, 0xA1, +0x71, 0xA1, 0x40, 0x32, 0x00, 0xF6, 0x60, 0x33, +0x40, 0x32, 0x49, 0xE3, 0x74, 0xA1, 0x69, 0xE2, +0x73, 0xA1, 0x60, 0x33, 0x69, 0xE2, 0x80, 0xF1, +0x00, 0x4A, 0x40, 0x32, 0x44, 0x32, 0x4E, 0xD2, +0x00, 0xF2, 0x01, 0x58, 0x58, 0x60, 0x4E, 0x92, +0x4F, 0x93, 0x09, 0xE2, 0x43, 0xEB, 0x51, 0xD2, +0x23, 0x61, 0x00, 0x18, 0xC2, 0xC7, 0x50, 0xD2, +0x40, 0x33, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0x33, +0xAA, 0xF0, 0x00, 0x4A, 0x69, 0xE2, 0x82, 0x67, +0x00, 0x6D, 0x00, 0xF2, 0x00, 0x6E, 0x4F, 0xD2, +0x00, 0x18, 0xDF, 0xC6, 0x30, 0xF0, 0x20, 0x6A, +0x4E, 0x94, 0x4F, 0x96, 0xE0, 0xF3, 0x5C, 0x9A, +0xB0, 0x67, 0x40, 0xEA, 0x50, 0x94, 0xFF, 0xF7, +0x1F, 0x6D, 0x0C, 0xED, 0x01, 0x6E, 0x00, 0x18, +0x62, 0xD1, 0x80, 0xF0, 0x1F, 0x2A, 0x9B, 0x10, +0x4E, 0x94, 0x4F, 0x95, 0xA3, 0xEC, 0x80, 0xF0, +0x08, 0x60, 0x00, 0x18, 0xC2, 0xC7, 0x52, 0xD2, +0x40, 0x33, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0x33, +0xAA, 0xF0, 0x00, 0x4A, 0x69, 0xE2, 0x82, 0x67, +0x00, 0x6D, 0x00, 0xF2, 0x00, 0x6E, 0x50, 0xD2, +0x00, 0x18, 0xDF, 0xC6, 0x4E, 0x93, 0x4F, 0x92, +0x50, 0x96, 0x83, 0x67, 0x6B, 0xE2, 0x53, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, 0x5C, 0x9A, +0x53, 0x95, 0x40, 0xEA, 0x53, 0x92, 0x52, 0x94, +0xFF, 0xF7, 0x1F, 0x6D, 0x4C, 0xED, 0x01, 0x6E, +0x00, 0x18, 0x62, 0xD1, 0x70, 0x22, 0x51, 0x93, +0x4F, 0x94, 0x83, 0xE3, 0x5B, 0x10, 0x4E, 0x92, +0x4F, 0x93, 0x00, 0xF2, 0x00, 0x4A, 0x43, 0xEB, +0x51, 0xD2, 0x27, 0x61, 0x00, 0x18, 0xC2, 0xC7, +0x52, 0xD2, 0x40, 0x33, 0x30, 0xF0, 0x20, 0x6A, +0x64, 0x33, 0xAA, 0xF0, 0x00, 0x4A, 0x69, 0xE2, +0x82, 0x67, 0x00, 0x6D, 0x00, 0xF2, 0x00, 0x6E, +0x50, 0xD2, 0x00, 0x18, 0xDF, 0xC6, 0x30, 0xF0, +0x20, 0x6A, 0x4E, 0x94, 0x50, 0x96, 0xE0, 0xF3, +0x5C, 0x9A, 0x00, 0xF2, 0x00, 0x6D, 0x40, 0xEA, +0x52, 0x94, 0x00, 0xF2, 0x00, 0x6D, 0x01, 0x6E, +0x00, 0x18, 0x62, 0xD1, 0x44, 0x22, 0x1F, 0xF6, +0x00, 0x48, 0x44, 0x20, 0x51, 0x94, 0x4E, 0xD4, +0x77, 0x17, 0x4E, 0x95, 0x4F, 0x92, 0x43, 0xED, +0x2C, 0x60, 0x00, 0x18, 0xC2, 0xC7, 0x51, 0xD2, +0x40, 0x33, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0x33, +0xAA, 0xF0, 0x00, 0x4A, 0x69, 0xE2, 0x82, 0x67, +0x00, 0x6D, 0x00, 0xF2, 0x00, 0x6E, 0x50, 0xD2, +0x00, 0x18, 0xDF, 0xC6, 0x4E, 0x94, 0x4F, 0x93, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, 0x5C, 0x9A, +0x50, 0x96, 0x8F, 0xE3, 0xA3, 0x67, 0x52, 0xD3, +0x40, 0xEA, 0x52, 0x92, 0x51, 0x94, 0xFF, 0xF7, +0x1F, 0x6D, 0x4C, 0xED, 0x01, 0x6E, 0x00, 0x18, +0x62, 0xD1, 0x15, 0x22, 0x4E, 0x93, 0x4F, 0x94, +0x01, 0xE3, 0x83, 0xE0, 0x01, 0x6D, 0x4E, 0xD5, +0x14, 0x10, 0x00, 0x18, 0xC2, 0xC7, 0xA2, 0x67, +0x91, 0x67, 0x4E, 0xD2, 0x00, 0x18, 0xCC, 0xC7, +0x22, 0x67, 0x82, 0x67, 0xB0, 0x67, 0x00, 0x18, +0xCA, 0xC7, 0x91, 0x67, 0x06, 0x11, 0x00, 0x6A, +0x4E, 0xD2, 0x03, 0x10, 0x01, 0x6B, 0x00, 0x68, +0x4E, 0xD3, 0x00, 0x18, 0xC2, 0xC7, 0xA2, 0x67, +0x91, 0x67, 0x4F, 0xD2, 0x00, 0x18, 0xCC, 0xC7, +0x4E, 0x94, 0x22, 0x67, 0x06, 0x24, 0x82, 0x67, +0xB0, 0x67, 0x00, 0x18, 0xCA, 0xC7, 0x91, 0x67, +0x9C, 0x16, 0x82, 0x67, 0x00, 0x6D, 0x00, 0x18, +0xCA, 0xC7, 0x91, 0x67, 0x3B, 0x14, 0x76, 0xA1, +0x57, 0xA1, 0x82, 0x99, 0x60, 0x33, 0x49, 0xE3, +0x4E, 0xD2, 0x4E, 0x95, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xED, 0xA0, 0x32, 0x44, 0x32, 0x8E, 0xEA, +0x4E, 0xD5, 0xC0, 0xF0, 0x02, 0x2A, 0x4C, 0xA1, +0xA0, 0xF0, 0x1F, 0x2A, 0x52, 0xA1, 0x71, 0xA1, +0x40, 0x32, 0x40, 0x32, 0x00, 0xF6, 0x60, 0x33, +0x4D, 0xE3, 0x54, 0xA1, 0x4D, 0xE3, 0x53, 0xA1, +0x40, 0x32, 0x4D, 0xE3, 0x80, 0xF1, 0x40, 0x43, +0x40, 0x35, 0xA4, 0x35, 0x91, 0xE5, 0x51, 0xD5, +0x26, 0xF1, 0xA0, 0x98, 0x83, 0xED, 0xA0, 0xF0, +0x08, 0x61, 0x07, 0x68, 0x6C, 0xE8, 0x05, 0x28, +0x4E, 0x94, 0x51, 0x95, 0x00, 0x18, 0xDD, 0xC7, +0x62, 0x10, 0x0B, 0xE2, 0x40, 0x32, 0x44, 0x32, +0x50, 0xD2, 0x00, 0x6A, 0x4F, 0xD2, 0xFF, 0x6E, +0x0E, 0x04, 0x00, 0x6D, 0x01, 0x4E, 0x00, 0x18, +0xDF, 0xC6, 0x4F, 0x93, 0x50, 0x95, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF3, 0x5C, 0x9A, 0xB1, 0xE3, +0xFF, 0x6D, 0x01, 0x4D, 0x0E, 0x06, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x4F, 0x94, 0xC2, 0xF3, +0x78, 0x9B, 0x0E, 0x02, 0x6D, 0xE4, 0x4E, 0x04, +0xA0, 0xA2, 0x01, 0x4A, 0x8A, 0xEA, 0xA0, 0xC3, +0x01, 0x4B, 0xFA, 0x61, 0x4F, 0x95, 0x00, 0xF1, +0x00, 0x4D, 0x02, 0xF0, 0x00, 0x75, 0x4F, 0xD5, +0xDA, 0x61, 0x4E, 0x92, 0x50, 0x95, 0x51, 0xE0, +0x00, 0x18, 0xDD, 0xC7, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF3, 0x40, 0x9A, 0x00, 0x30, 0x04, 0x30, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x5C, 0x9A, 0x02, 0x6C, 0x40, 0xEA, 0x4F, 0xD0, +0x00, 0x68, 0xFF, 0x6E, 0x0E, 0x04, 0x00, 0x6D, +0x01, 0x4E, 0x00, 0x18, 0xDF, 0xC6, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF3, 0x78, 0x9A, 0x4E, 0x04, +0x0E, 0x02, 0x6D, 0xE0, 0xA0, 0xA3, 0x01, 0x4B, +0xA0, 0xC2, 0x01, 0x4A, 0x8A, 0xEA, 0xFA, 0x61, +0x50, 0x93, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, +0x58, 0x9A, 0xFF, 0x6D, 0x71, 0xE0, 0x01, 0x4D, +0x0E, 0x06, 0x40, 0xEA, 0x4F, 0x94, 0x00, 0xF1, +0x00, 0x48, 0x83, 0xE8, 0xDE, 0x61, 0x51, 0x93, +0x4E, 0x95, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, +0x18, 0x4A, 0x30, 0xF0, 0x20, 0x68, 0xAA, 0xF4, +0x14, 0x48, 0x26, 0xF7, 0x74, 0xDA, 0x01, 0x6B, +0x90, 0x67, 0x26, 0xF7, 0xB8, 0xDA, 0x26, 0xF7, +0x70, 0xC2, 0x00, 0x6D, 0x20, 0x6E, 0x00, 0x18, +0xDF, 0xC6, 0x90, 0x67, 0xB1, 0x67, 0x20, 0x6E, +0x00, 0x18, 0xE4, 0xC6, 0xCA, 0x10, 0x00, 0x18, +0xC2, 0xC7, 0x4F, 0xD2, 0x82, 0x99, 0x40, 0x30, +0x30, 0xF0, 0x20, 0x6A, 0xAA, 0xF0, 0x00, 0x4A, +0x04, 0x30, 0x01, 0xE2, 0x4E, 0xD4, 0x00, 0x6D, +0x90, 0x67, 0x00, 0xF2, 0x00, 0x6E, 0x00, 0x18, +0xDF, 0xC6, 0x06, 0x6A, 0x41, 0xC0, 0x25, 0x6A, +0x44, 0xC0, 0x01, 0x6A, 0x4B, 0xEA, 0x45, 0xC0, +0x01, 0x6A, 0x46, 0xC0, 0x4E, 0x92, 0xFF, 0xF7, +0x1F, 0x6D, 0x4F, 0x94, 0x4C, 0xED, 0x00, 0x6E, +0x0D, 0x16, 0x00, 0x18, 0xC2, 0xC7, 0xA2, 0x67, +0x91, 0x67, 0x4E, 0xD2, 0x00, 0x18, 0xCC, 0xC7, +0x02, 0x67, 0x82, 0x67, 0xA2, 0x99, 0x0A, 0x10, +0x00, 0x18, 0xC2, 0xC7, 0xA2, 0x67, 0x91, 0x67, +0x4E, 0xD2, 0x00, 0x18, 0xCC, 0xC7, 0x02, 0x67, +0x82, 0x67, 0x00, 0x6D, 0x00, 0x18, 0xCA, 0xC7, +0x90, 0x67, 0x01, 0x6D, 0x9F, 0xF3, 0x08, 0x10, +0x26, 0xF7, 0x78, 0x98, 0x4E, 0xD3, 0x15, 0x2B, +0x00, 0x18, 0xC2, 0xC7, 0x30, 0xF0, 0x20, 0x6C, +0xAA, 0xF4, 0x14, 0x4C, 0xA2, 0x67, 0x4F, 0xD2, +0x00, 0x18, 0xCC, 0xC7, 0x26, 0xF7, 0xB8, 0x98, +0x22, 0x67, 0x82, 0x67, 0xA0, 0x35, 0xA4, 0x35, +0x00, 0x18, 0xCA, 0xC7, 0x91, 0x67, 0x01, 0x6D, +0x62, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, +0x40, 0x9A, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x5C, 0x9A, 0x02, 0x6C, 0x40, 0xEA, +0x59, 0x93, 0xFF, 0xF7, 0x1F, 0x6A, 0x00, 0x6C, +0x4C, 0xEB, 0x4E, 0xD3, 0x26, 0xF7, 0x14, 0x98, +0x4F, 0xD4, 0x2A, 0x10, 0x4E, 0x95, 0x00, 0xF1, +0x00, 0x5D, 0x19, 0x61, 0x4F, 0x93, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF3, 0x58, 0x9A, 0xFF, 0x6D, +0x90, 0x67, 0x01, 0x4D, 0x79, 0xE1, 0x40, 0xEA, +0x4E, 0x94, 0x4F, 0x95, 0xFF, 0xF7, 0x1F, 0x6A, +0x80, 0x4C, 0x80, 0x4C, 0x00, 0xF1, 0x00, 0x4D, +0x4C, 0xEC, 0x4C, 0xED, 0x4E, 0xD4, 0x4F, 0xD5, +0x00, 0xF1, 0x00, 0x48, 0x0D, 0x10, 0x4F, 0x93, +0x30, 0xF0, 0x20, 0x6A, 0x4E, 0x95, 0xE0, 0xF3, +0x58, 0x9A, 0x90, 0x67, 0x79, 0xE1, 0x40, 0xEA, +0x4E, 0x94, 0x00, 0x6D, 0x4E, 0xD5, 0x81, 0xE0, +0x4E, 0x92, 0xD4, 0x2A, 0x30, 0xF0, 0x20, 0x68, +0x63, 0xF5, 0x18, 0x48, 0x26, 0xF7, 0x54, 0x98, +0x59, 0x93, 0x49, 0xE3, 0x26, 0xF7, 0x54, 0xD8, +0x26, 0xF7, 0x58, 0x98, 0xFF, 0x4A, 0x26, 0xF7, +0x58, 0xD8, 0x23, 0x2A, 0x00, 0x18, 0xC2, 0xC7, +0x30, 0xF0, 0x20, 0x6C, 0xAA, 0xF4, 0x14, 0x4C, +0xA2, 0x67, 0x4F, 0xD2, 0x00, 0x18, 0xCC, 0xC7, +0x22, 0x67, 0x82, 0x67, 0x00, 0x6D, 0x00, 0x18, +0xCA, 0xC7, 0x91, 0x67, 0x00, 0x6D, 0x00, 0x18, +0xCB, 0xC7, 0x4F, 0x94, 0x0D, 0x6D, 0x00, 0x6E, +0x00, 0x18, 0x62, 0xD1, 0x9D, 0x67, 0x30, 0xF1, +0xA8, 0x44, 0x80, 0xA5, 0x4E, 0x95, 0x26, 0xF7, +0x90, 0xC0, 0x26, 0xF7, 0xB4, 0xD8, 0x26, 0xF7, +0xB8, 0xD8, 0x57, 0x97, 0x56, 0x91, 0x55, 0x90, +0x2C, 0x63, 0x00, 0xEF, 0x06, 0x2C, 0x64, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, 0x60, 0xDA, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, +0x80, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, +0x40, 0x9A, 0x32, 0x72, 0x2A, 0x60, 0x33, 0x5A, +0x0C, 0x60, 0x14, 0x72, 0x2E, 0x60, 0x15, 0x5A, +0x03, 0x60, 0x0A, 0x72, 0x12, 0x60, 0x20, 0xE8, +0x19, 0x72, 0x17, 0x60, 0x28, 0x72, 0x25, 0x60, +0x20, 0xE8, 0x64, 0x72, 0x2A, 0x60, 0x65, 0x5A, +0x03, 0x60, 0x50, 0x72, 0x1E, 0x60, 0x20, 0xE8, +0x78, 0x72, 0x2B, 0x60, 0xC8, 0x72, 0x31, 0x60, +0x20, 0xE8, 0x02, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF5, 0x64, 0xDA, 0xE0, 0xF7, 0x1E, 0x4B, +0x31, 0x10, 0x09, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF5, 0x64, 0xDA, 0xE4, 0xF3, 0x17, 0x4B, +0x29, 0x10, 0x11, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF5, 0x64, 0xDA, 0xE8, 0xF3, 0x0F, 0x4B, +0x21, 0x10, 0x0D, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF5, 0x64, 0xDA, 0x06, 0xF4, 0x08, 0x4B, +0x19, 0x10, 0x22, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF5, 0x64, 0xDA, 0x11, 0xF0, 0x00, 0x6B, +0x11, 0x10, 0x28, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF5, 0x64, 0xDA, 0x14, 0xF0, 0x00, 0x6B, +0x09, 0x10, 0x43, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF5, 0x64, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF3, 0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF5, 0x68, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, 0x40, 0x9A, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF5, 0x48, 0x9A, 0xFF, 0x63, 0x58, 0xEC, +0x12, 0xEA, 0x00, 0xD2, 0x00, 0x92, 0xFF, 0x4A, +0x00, 0xD2, 0x00, 0x92, 0xFB, 0x2A, 0x01, 0x63, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF5, 0x44, 0x9A, 0xFF, 0x63, 0x58, 0xEC, +0x12, 0xEA, 0x00, 0xD2, 0x00, 0x92, 0xFF, 0x4A, +0x00, 0xD2, 0x00, 0x92, 0xFB, 0x2A, 0x01, 0x63, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0xF8, 0xC6, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xED, 0x00, 0x18, 0xDF, 0xC6, +0x05, 0x97, 0x00, 0x6A, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, +0x04, 0x67, 0x4C, 0xEE, 0x00, 0x18, 0xE4, 0xC6, +0x50, 0x67, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x00, 0x68, 0x20, 0x10, 0xE0, 0xF3, +0x08, 0x70, 0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF3, 0x68, 0x9A, 0x80, 0x6C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF5, 0x18, 0x4A, 0x23, 0xF3, 0x70, 0x9A, +0x8D, 0xEB, 0x23, 0xF3, 0x70, 0xDA, 0x00, 0x6A, +0x13, 0x10, 0xFF, 0xF7, 0x1F, 0x6A, 0x01, 0x48, +0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x02, 0xF6, 0x4C, 0x9A, 0x60, 0xA2, +0x01, 0x6A, 0x6C, 0xEA, 0xD8, 0x2A, 0x01, 0x6A, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6C, 0x02, 0xF6, +0x70, 0x9B, 0x02, 0xF6, 0x94, 0x9C, 0x6D, 0xE5, +0x91, 0xE5, 0x00, 0x6E, 0xC0, 0xDB, 0x04, 0x4B, +0x8A, 0xEB, 0xFB, 0x61, 0xE7, 0xF7, 0x1F, 0x6B, +0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF3, +0x58, 0x9A, 0x10, 0x6C, 0x4D, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0x02, 0xF6, 0x50, 0x9A, 0x49, 0xE5, +0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, +0x58, 0x9A, 0xFF, 0x6B, 0x55, 0xE5, 0x40, 0xA5, +0x6C, 0xEA, 0x8D, 0xEA, 0x6C, 0xEA, 0x40, 0xC5, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF5, 0x6D, 0xA2, 0x08, 0xD4, 0x30, 0xF0, +0x20, 0x69, 0x61, 0xC5, 0x01, 0x4B, 0x03, 0xF5, +0x6D, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF6, +0x90, 0x9B, 0x08, 0x93, 0x80, 0xF2, 0x4C, 0x99, +0x02, 0x6E, 0x91, 0xE3, 0x05, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF6, 0x9C, 0x9B, +0x08, 0x93, 0xCE, 0xA0, 0x80, 0xF2, 0x4C, 0x99, +0xA2, 0x40, 0x91, 0xE3, 0x40, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x24, 0x67, 0x00, 0x18, 0x97, 0xCB, 0x00, 0x6B, +0x46, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF3, +0x44, 0x9A, 0xFF, 0xF7, 0x1F, 0x6E, 0xFF, 0x6F, +0x00, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF3, +0x54, 0x9A, 0x10, 0x6C, 0x8B, 0xEC, 0x4C, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0xA1, 0x40, 0x22, 0xF6, +0x40, 0x9A, 0x65, 0x67, 0xCC, 0xEB, 0x60, 0xCA, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, 0x44, 0x9A, +0x60, 0xA2, 0xFA, 0x65, 0xA2, 0x32, 0xEC, 0xEB, +0x8C, 0xEB, 0x42, 0x32, 0x6D, 0xEA, 0xEC, 0xEA, +0x7F, 0x67, 0x40, 0xC3, 0x87, 0xA9, 0x02, 0x4C, +0xCC, 0xEC, 0x00, 0x18, 0xB0, 0xCB, 0x87, 0x40, +0x12, 0x4C, 0xB1, 0x67, 0x00, 0x18, 0xC7, 0xCB, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, 0x4C, 0x9A, +0x01, 0x6B, 0x80, 0xF2, 0x16, 0x6C, 0x60, 0xC2, +0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x48, 0x9A, 0x01, 0x6D, 0x00, 0x6E, +0x04, 0xF7, 0x10, 0x6F, 0x40, 0xEA, 0x4B, 0xEB, +0x4D, 0xEB, 0xC0, 0xF7, 0x62, 0x33, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x43, 0x67, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x63, 0xF5, +0x18, 0x48, 0x20, 0xF6, 0x92, 0xA0, 0x20, 0xF6, +0x53, 0xA0, 0x8E, 0xEA, 0x37, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF6, 0x48, 0x9A, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF3, 0x64, 0x9B, 0x40, 0x9A, +0x6C, 0xEA, 0x2C, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x90, 0x34, 0xA3, 0xF6, 0x0A, 0x4A, 0x91, 0xE2, +0x00, 0x18, 0xDC, 0xCB, 0x1D, 0x22, 0x20, 0xF6, +0x52, 0xA0, 0x01, 0x4A, 0x20, 0xF6, 0x52, 0xC0, +0x20, 0xF6, 0x72, 0xA0, 0x20, 0xF6, 0x53, 0xA0, +0x6E, 0xEA, 0x06, 0x22, 0xA0, 0xF0, 0x44, 0x98, +0x04, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0x20, 0xF6, 0x72, 0xA2, 0x50, 0x6C, 0x8E, 0xEB, +0x09, 0x2B, 0x20, 0xF6, 0x72, 0xC2, 0x06, 0x10, +0xA0, 0xF0, 0x44, 0x98, 0x04, 0x6B, 0x6D, 0xEA, +0xA0, 0xF0, 0x44, 0xD8, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x63, 0xF5, +0x18, 0x48, 0xA0, 0xF0, 0x44, 0x98, 0x04, 0x6B, +0xA4, 0x67, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, +0x20, 0xF6, 0x52, 0xA8, 0x09, 0xF7, 0x00, 0x72, +0x07, 0x60, 0x20, 0xF6, 0x52, 0xA0, 0x20, 0xF6, +0x93, 0xA0, 0xFF, 0x4A, 0x8E, 0xEA, 0x13, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, 0x68, 0x9A, +0x00, 0xF2, 0x00, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, +0x18, 0x4A, 0x23, 0xF3, 0x70, 0x9A, 0x8D, 0xEB, +0x23, 0xF3, 0x70, 0xDA, 0x18, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, +0x4C, 0x9A, 0xA3, 0xF6, 0x0A, 0x4B, 0x90, 0x34, +0x91, 0xE3, 0x10, 0x6E, 0x40, 0xEA, 0x20, 0xF6, +0x53, 0xA0, 0x50, 0x6B, 0x01, 0x4A, 0x20, 0xF6, +0x53, 0xC0, 0x20, 0xF6, 0x53, 0xA0, 0x6E, 0xEA, +0x02, 0x2A, 0x20, 0xF6, 0x53, 0xC0, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF5, 0x4C, 0xA3, 0xFF, 0x6F, +0xE0, 0xF0, 0xC7, 0xA5, 0x41, 0xC5, 0x43, 0xA5, +0x03, 0xF5, 0x6C, 0xA3, 0x03, 0x4A, 0xEC, 0xEA, +0x09, 0x10, 0xED, 0x42, 0xFF, 0x68, 0x0C, 0xEF, +0xFD, 0xE5, 0x64, 0xC7, 0xE6, 0xA7, 0x03, 0x4F, +0xE9, 0xE2, 0x0C, 0xEA, 0xEF, 0x46, 0xE2, 0xEA, +0xF4, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, +0x6C, 0xA2, 0x01, 0x4B, 0x03, 0xF5, 0x6C, 0xC2, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF6, 0x70, 0x9B, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0x71, 0xE4, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x24, 0x67, 0x00, 0x18, +0x97, 0xCB, 0x00, 0x6B, 0x3C, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF3, 0x44, 0x9A, 0x0F, 0x6C, +0xFF, 0xF7, 0x1F, 0x6B, 0x00, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF3, 0x54, 0x9A, 0x4C, 0xE8, +0xA1, 0x40, 0xA2, 0x32, 0x42, 0x32, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF6, 0x80, 0x9C, +0xAC, 0xEB, 0x60, 0xCC, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF6, 0x64, 0x9B, 0x40, 0xC3, 0xE0, 0xF0, +0x87, 0xA1, 0x00, 0x18, 0xB0, 0xCB, 0x87, 0x40, +0x12, 0x4C, 0xB1, 0x67, 0x00, 0x18, 0x50, 0xCC, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, 0x4C, 0x9A, +0x01, 0x6B, 0x80, 0xF2, 0x16, 0x6C, 0x60, 0xC2, +0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x48, 0x9A, 0x01, 0x6D, 0x00, 0x6E, +0x04, 0xF7, 0x10, 0x6F, 0x40, 0xEA, 0x4B, 0xEB, +0x4D, 0xEB, 0xC0, 0xF7, 0x62, 0x33, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x43, 0x67, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x63, 0xF5, +0x18, 0x48, 0xA2, 0xF4, 0x77, 0xA0, 0xA2, 0xF4, +0x58, 0xA0, 0x6E, 0xEA, 0x3E, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF6, 0x48, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xE2, 0xF3, 0x84, 0x9C, 0x40, 0x9A, +0x8C, 0xEA, 0x33, 0x2A, 0xE8, 0x6A, 0x58, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF3, 0x0C, 0x4A, +0x12, 0xEB, 0x71, 0xE2, 0x00, 0x18, 0x69, 0xCC, +0x07, 0x2A, 0xA0, 0xF0, 0x44, 0x98, 0x04, 0x6B, +0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, 0x21, 0x10, +0xA2, 0xF4, 0x57, 0xA0, 0x10, 0x6B, 0x01, 0x4A, +0xA2, 0xF4, 0x57, 0xC0, 0xA2, 0xF4, 0x57, 0xA0, +0x6E, 0xEA, 0x02, 0x2A, 0xA2, 0xF4, 0x57, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0xA2, 0xF4, 0x97, 0xA2, 0xA2, 0xF4, 0x78, 0xA2, +0x8E, 0xEB, 0x07, 0x23, 0xA0, 0xF0, 0x64, 0x9A, +0x04, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, +0x04, 0x10, 0xA2, 0xF4, 0x96, 0xC2, 0xA2, 0xF4, +0x74, 0xCA, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF5, 0x18, 0x4A, 0xA2, 0xF4, 0x77, 0xA2, +0xA4, 0x67, 0x04, 0x2B, 0xA2, 0xF4, 0x58, 0xA2, +0x0F, 0x72, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x68, +0x63, 0xF5, 0x18, 0x48, 0xA2, 0xF4, 0x57, 0xA0, +0xA2, 0xF4, 0x78, 0xA0, 0xFF, 0x4A, 0x6E, 0xEA, +0x15, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, +0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF5, +0x84, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0x23, 0xF3, 0x70, 0x9A, 0x8D, 0xEB, 0x23, 0xF3, +0x70, 0xDA, 0xAC, 0x10, 0x23, 0xA5, 0xFF, 0xF7, +0x1F, 0x6A, 0x04, 0x49, 0x4C, 0xE9, 0xA2, 0xF4, +0x54, 0xA8, 0x22, 0x2A, 0xE8, 0x6A, 0x58, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6C, -0x80, 0xF2, 0x4C, 0x9A, 0x07, 0xF4, 0x12, 0x4C, +0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0xF3, 0x0C, 0x4C, 0xFF, 0x6E, 0x2C, 0xEE, 0x12, 0xEB, 0x71, 0xE4, -0x40, 0xEA, 0x22, 0xF5, 0x5E, 0xA0, 0x22, 0xF5, -0x7D, 0xA0, 0x22, 0xF5, 0x3A, 0xC8, 0x4E, 0xEB, -0x79, 0x2B, 0x01, 0x4A, 0x22, 0xF5, 0x5E, 0xC0, -0x22, 0xF5, 0x5E, 0xA0, 0x10, 0x6B, 0x6E, 0xEA, -0x71, 0x2A, 0x22, 0xF5, 0x5E, 0xC0, 0x6E, 0x10, -0x62, 0xA4, 0x39, 0x2B, 0x4D, 0xE1, 0xE3, 0x53, -0x36, 0x60, 0x22, 0xF5, 0x7C, 0xA0, 0xE8, 0x6C, -0x98, 0xEB, 0x12, 0xEB, 0x0D, 0xE3, 0xA0, 0xF6, -0x9C, 0xA3, 0x2D, 0x2C, 0xA0, 0xF6, 0x9D, 0xA3, -0xFF, 0x6E, 0xFC, 0x4A, 0xFF, 0x4C, 0xA0, 0xF6, -0x9D, 0xC3, 0x22, 0xF5, 0x7A, 0xA8, 0x22, 0xF5, -0x9C, 0xA0, 0xCC, 0xEA, 0xFF, 0x4B, 0x22, 0xF5, -0x7A, 0xC8, 0xE8, 0x6B, 0x78, 0xEC, 0x2C, 0xEE, +0x40, 0xEA, 0xA2, 0xF4, 0x58, 0xA0, 0xA2, 0xF4, +0x77, 0xA0, 0xA2, 0xF4, 0x34, 0xC8, 0x4E, 0xEB, +0x79, 0x2B, 0x01, 0x4A, 0xA2, 0xF4, 0x58, 0xC0, +0xA2, 0xF4, 0x58, 0xA0, 0x10, 0x6B, 0x6E, 0xEA, +0x71, 0x2A, 0xA2, 0xF4, 0x58, 0xC0, 0x6E, 0x10, +0x62, 0xA5, 0x39, 0x2B, 0x4D, 0xE1, 0xE3, 0x53, +0x36, 0x60, 0xA2, 0xF4, 0x76, 0xA0, 0xE8, 0x6C, +0x98, 0xEB, 0x12, 0xEB, 0x0D, 0xE3, 0x20, 0xF6, +0x96, 0xA3, 0x2D, 0x2C, 0x20, 0xF6, 0x97, 0xA3, +0xFF, 0x6E, 0xFC, 0x4A, 0xFF, 0x4C, 0x20, 0xF6, +0x97, 0xC3, 0xA2, 0xF4, 0x74, 0xA8, 0xA2, 0xF4, +0x96, 0xA0, 0xCC, 0xEA, 0xFF, 0x4B, 0xA2, 0xF4, +0x74, 0xC8, 0xE8, 0x6B, 0x78, 0xEC, 0x2C, 0xEE, 0x12, 0xEC, 0x91, 0xE0, 0x51, 0xE4, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0xA0, 0xF6, -0x1D, 0x4C, 0x40, 0xEA, 0x22, 0xF5, 0x5C, 0xA0, +0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0x20, 0xF6, +0x17, 0x4C, 0x40, 0xEA, 0xA2, 0xF4, 0x56, 0xA0, 0xE8, 0x6B, 0x78, 0xEA, 0x12, 0xEA, 0x09, 0xE2, -0xA0, 0xF6, 0x7D, 0xA2, 0x6D, 0xE1, 0xA0, 0xF6, -0x7D, 0xC2, 0x22, 0xF5, 0x5A, 0xA8, 0x45, 0xE1, -0x22, 0xF5, 0x3A, 0xC8, 0x33, 0x10, 0x30, 0xF0, -0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, 0x22, 0xF5, -0x9E, 0xA0, 0xE8, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x77, 0xA2, 0x6D, 0xE1, 0x20, 0xF6, +0x77, 0xC2, 0xA2, 0xF4, 0x54, 0xA8, 0x45, 0xE1, +0xA2, 0xF4, 0x34, 0xC8, 0x33, 0x10, 0x30, 0xF0, +0x20, 0x68, 0x63, 0xF5, 0x18, 0x48, 0xA2, 0xF4, +0x98, 0xA0, 0xE8, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x58, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, -0x4C, 0x9A, 0x07, 0xF4, 0x12, 0x4B, 0xFF, 0x6E, +0x4C, 0x9A, 0xA4, 0xF3, 0x0C, 0x4B, 0xFF, 0x6E, 0x2C, 0xEE, 0x12, 0xEC, 0x91, 0xE3, 0x40, 0xEA, -0x22, 0xF5, 0x5E, 0xA0, 0x10, 0x6B, 0x22, 0xF5, -0x3A, 0xC8, 0x01, 0x4A, 0x22, 0xF5, 0x5E, 0xC0, -0x22, 0xF5, 0x5E, 0xA0, 0x6E, 0xEA, 0x02, 0x2A, -0x22, 0xF5, 0x5E, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x22, 0xF5, 0x7C, 0xA2, -0x10, 0x6C, 0x01, 0x4B, 0x22, 0xF5, 0x7C, 0xC2, -0x22, 0xF5, 0x7C, 0xA2, 0x8E, 0xEB, 0x02, 0x2B, -0x22, 0xF5, 0x7C, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x22, 0xF5, 0x9C, 0xA2, -0xE8, 0x6B, 0x78, 0xEC, 0x22, 0xF5, 0x9A, 0xAA, -0x12, 0xEB, 0x4D, 0xE3, 0xA0, 0xF7, 0x81, 0xC3, +0xA2, 0xF4, 0x58, 0xA0, 0x10, 0x6B, 0xA2, 0xF4, +0x34, 0xC8, 0x01, 0x4A, 0xA2, 0xF4, 0x58, 0xC0, +0xA2, 0xF4, 0x58, 0xA0, 0x6E, 0xEA, 0x02, 0x2A, +0xA2, 0xF4, 0x58, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF5, 0x18, 0x4A, 0xA2, 0xF4, 0x76, 0xA2, +0x10, 0x6C, 0x01, 0x4B, 0xA2, 0xF4, 0x76, 0xC2, +0xA2, 0xF4, 0x76, 0xA2, 0x8E, 0xEB, 0x02, 0x2B, +0xA2, 0xF4, 0x76, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF5, 0x18, 0x4A, 0xA2, 0xF4, 0x96, 0xA2, +0xE8, 0x6B, 0x78, 0xEC, 0xA2, 0xF4, 0x94, 0xAA, +0x12, 0xEB, 0x4D, 0xE3, 0x00, 0xF7, 0x9B, 0xC3, 0xA0, 0xF0, 0x64, 0x9A, 0x04, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFF, 0x6A, 0x4C, 0xED, 0xFF, 0x75, 0x4C, 0xEC, -0xCC, 0xEA, 0x06, 0x61, 0x30, 0xF0, 0x20, 0x6B, -0x46, 0xF5, 0x18, 0x4B, 0x71, 0xE4, 0x0B, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, -0x71, 0xE4, 0x83, 0xF3, 0x74, 0xA4, 0xAC, 0xEA, -0xAF, 0xED, 0x6C, 0xED, 0xAD, 0xEA, 0x83, 0xF3, -0x54, 0xC4, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xEC, -0xFF, 0x74, 0xAC, 0xEA, 0x05, 0x61, 0x30, 0xF0, -0x20, 0x6B, 0xEA, 0xF0, 0x4A, 0xC3, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, -0x83, 0xF3, 0xB2, 0xA3, 0x8C, 0xEA, 0x8F, 0xEC, -0xAC, 0xEC, 0x8D, 0xEA, 0x83, 0xF3, 0x52, 0xC3, -0x20, 0xE8, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x01, 0xA4, 0x20, 0xA4, -0x0C, 0x20, 0x90, 0x67, 0xB1, 0x67, 0x00, 0x18, -0xD3, 0xD6, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, -0x50, 0x9A, 0x90, 0x67, 0xB1, 0x67, 0x53, 0x6E, -0x40, 0xEA, 0x7D, 0x67, 0x20, 0x6A, 0x50, 0xC3, -0x03, 0x6A, 0x4F, 0xCB, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF1, 0x4C, 0x9A, 0x9D, 0x67, 0x40, 0xA2, -0x52, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x83, 0xF3, 0x72, 0xA2, 0x83, 0xF3, -0x53, 0xA2, 0x73, 0xC4, 0x54, 0xC4, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, -0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0xF7, 0x63, 0x11, 0x62, -0x10, 0xD1, 0x0F, 0xD0, 0x40, 0xA4, 0x08, 0xD2, -0x08, 0x93, 0x1F, 0x6A, 0x4C, 0xEB, 0x08, 0xD3, -0x42, 0xA4, 0x61, 0xA4, 0x0B, 0xD2, 0x43, 0xA4, -0x84, 0xA4, 0x09, 0xD4, 0x08, 0x94, 0x08, 0x5C, -0x44, 0x60, 0x84, 0x31, 0x09, 0x94, 0x01, 0x2C, -0x28, 0x22, 0xFF, 0x68, 0x0C, 0xEA, 0x0C, 0xEB, -0xA2, 0x67, 0xC3, 0x67, 0x91, 0x67, 0x0C, 0xD2, -0x0D, 0xD3, 0x00, 0x18, 0xC6, 0xD6, 0x0B, 0x94, -0x09, 0x93, 0x41, 0x41, 0x0C, 0xEC, 0x0B, 0xD4, -0x0B, 0x96, 0x0C, 0xEA, 0x0C, 0xEB, 0x82, 0x67, -0xA3, 0x67, 0x30, 0xF0, 0x20, 0x68, 0x0A, 0xD2, -0x09, 0xD3, 0x00, 0x18, 0xC6, 0xD6, 0x40, 0xF4, -0x40, 0x98, 0x0C, 0x95, 0x0D, 0x96, 0x91, 0x67, -0x01, 0x6F, 0x40, 0xEA, 0x40, 0xF4, 0x40, 0x98, -0x0A, 0x94, 0x09, 0x95, 0x0B, 0x96, 0x02, 0x6F, -0x40, 0xEA, 0x91, 0x67, 0x00, 0x18, 0xB6, 0xDF, -0x7D, 0x67, 0x53, 0xC3, 0x42, 0x32, 0x54, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x45, 0xE1, 0x83, 0xF3, 0x54, 0xA1, 0x55, 0xC3, -0x83, 0xF3, 0x55, 0xA1, 0x56, 0xC3, 0xA3, 0xF3, -0x44, 0xA1, 0x57, 0xC3, 0xA3, 0xF3, 0x45, 0xA1, -0x58, 0xC3, 0x9D, 0x67, 0x21, 0x6A, 0x72, 0xA4, -0x50, 0xC4, 0x07, 0x6A, 0x4F, 0xCC, 0x20, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0x08, 0x93, 0x6D, 0xEA, -0x52, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, -0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x11, 0x97, -0x10, 0x91, 0x0F, 0x90, 0x09, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0x04, 0x67, -0x30, 0xF0, 0x20, 0x6C, 0x26, 0xF6, 0x11, 0x4C, -0xB0, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x81, 0xA0, -0x00, 0x18, 0x75, 0xCA, 0x82, 0xA0, 0x02, 0x24, -0x00, 0x18, 0x47, 0xCA, 0x83, 0xA0, 0x02, 0x24, -0x00, 0x18, 0xA4, 0xCB, 0x05, 0x97, 0x04, 0x90, -0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xAA, 0xF1, -0x6D, 0xC2, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x1A, 0x6A, 0x7D, 0x67, -0x50, 0xC3, 0x00, 0xF0, 0x12, 0x04, 0x07, 0x6A, -0x4F, 0xCB, 0x80, 0x18, 0x94, 0x56, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, -0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x19, 0x6A, 0x7D, 0x67, -0x50, 0xC3, 0x00, 0xF0, 0x12, 0x04, 0x08, 0x6A, -0x4F, 0xCB, 0x80, 0x18, 0x5D, 0x56, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, -0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0xFF, 0xF7, 0x1F, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0x8C, 0xEA, 0xA3, 0xF6, 0x70, 0x9B, 0x30, 0xF0, -0x20, 0x6C, 0xA3, 0xF6, 0x94, 0x9C, 0xCC, 0xEB, +0x8C, 0xEA, 0x82, 0xF6, 0x7C, 0x9B, 0x30, 0xF0, +0x20, 0x6C, 0xA2, 0xF6, 0x80, 0x9C, 0xCC, 0xEB, 0x40, 0xF6, 0xA0, 0x35, 0x8D, 0xEB, 0x1F, 0xF7, 0x00, 0x6C, 0x4C, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0xAD, 0xEB, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, -0x20, 0x6C, 0x23, 0xF0, 0x98, 0x9C, 0x04, 0x10, -0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF0, 0x9C, 0x9C, +0x20, 0x6C, 0xE2, 0xF2, 0x9C, 0x9C, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6C, 0x02, 0xF3, 0x80, 0x9C, 0x89, 0xE2, 0x60, 0xDA, 0x20, 0xE8, 0x00, 0x65, 0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0x1F, 0xF7, 0x00, 0x6C, 0x4C, 0xEC, 0xFF, 0x6B, 0x02, 0xF0, 0x00, 0x74, 0xAC, 0xEB, 0x01, 0x60, 0x05, 0x2C, -0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF0, 0x98, 0x9C, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF0, -0x9C, 0x9C, 0x91, 0xE2, 0x00, 0x6D, 0xA0, 0xDC, -0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF6, 0x90, 0x9C, +0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF2, 0x9C, 0x9C, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0x02, 0xF3, +0x80, 0x9C, 0x91, 0xE2, 0x00, 0x6D, 0xA0, 0xDC, +0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF6, 0x9C, 0x9C, 0xD4, 0x36, 0x40, 0xF6, 0x60, 0x33, 0x8C, 0xEE, -0x6D, 0xEE, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF6, -0x74, 0x9B, 0x6D, 0xEE, 0x1F, 0xF7, 0x00, 0x6B, +0x6D, 0xEE, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF6, +0x60, 0x9B, 0x6D, 0xEE, 0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, -0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, -0x78, 0x9B, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF0, 0x7C, 0x9B, 0x69, 0xE2, 0xC0, 0xDA, +0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF2, +0x7C, 0x9B, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF3, 0x60, 0x9B, 0x69, 0xE2, 0xC0, 0xDA, 0x20, 0xE8, 0x00, 0x65, 0x0F, 0xF5, 0x00, 0x6B, 0x78, 0xEE, 0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, -0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF6, 0x90, 0x9C, +0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF6, 0x9C, 0x9C, 0x40, 0xF6, 0xA0, 0x35, 0x12, 0xEB, 0x8C, 0xEB, -0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF6, 0x94, 0x9C, +0x30, 0xF0, 0x20, 0x6C, 0xA2, 0xF6, 0x80, 0x9C, 0xAD, 0xEB, 0x8D, 0xEB, 0x1F, 0xF7, 0x00, 0x6C, 0x4C, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, -0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF0, -0x98, 0x9C, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, -0x23, 0xF0, 0x9C, 0x9C, 0x89, 0xE2, 0x60, 0xDA, +0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF2, +0x9C, 0x9C, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, +0x02, 0xF3, 0x80, 0x9C, 0x89, 0xE2, 0x60, 0xDA, 0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF0, 0x40, 0x9A, 0x60, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF0, 0x44, 0x9A, 0x40, 0x9A, +0xE2, 0xF2, 0x4C, 0x9A, 0x60, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF2, 0x50, 0x9A, 0x40, 0x9A, 0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x8C, 0xEA, 0x01, 0x72, 0x06, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF0, 0x40, 0x9A, 0x40, 0x9A, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, 0x44, 0x9A, +0xE2, 0xF2, 0x4C, 0x9A, 0x40, 0x9A, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0x50, 0x9A, 0x40, 0x9A, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF6, 0xCC, 0x9B, 0xFD, 0x63, 0xC2, 0xF6, -0x0C, 0x4B, 0x02, 0xD6, 0xC1, 0x9B, 0x64, 0xAB, +0x42, 0xF2, 0xD8, 0x9B, 0xFD, 0x63, 0x42, 0xF2, +0x18, 0x4B, 0x02, 0xD6, 0xC1, 0x9B, 0x64, 0xAB, 0xFF, 0x6A, 0x03, 0xD6, 0xDD, 0x67, 0x68, 0xCE, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, 0xC4, 0x9B, -0xC2, 0xF6, 0x04, 0x4B, 0x64, 0xA3, 0x4C, 0xEC, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF2, 0xD0, 0x9B, +0x42, 0xF2, 0x10, 0x4B, 0x64, 0xA3, 0x4C, 0xEC, 0x00, 0xD6, 0xDD, 0x67, 0x64, 0xC6, 0x8D, 0xE6, 0xE0, 0xA3, 0x84, 0x33, 0x6D, 0xE6, 0xC4, 0xAB, 0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xED, 0xCC, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x0C, 0x2B, 0x5D, 0x67, 0x84, 0x34, 0x91, 0xE2, 0x30, 0xF0, -0x20, 0x6A, 0x64, 0xAC, 0x23, 0xF0, 0x58, 0x9A, +0x20, 0x6A, 0x64, 0xAC, 0xE2, 0xF2, 0x5C, 0x9A, 0x49, 0xE3, 0x60, 0xA2, 0xFF, 0x6A, 0x06, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0x7C, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF3, 0x60, 0x9B, 0x79, 0xE6, 0x60, 0xA6, 0xE4, 0xED, 0x6C, 0xEA, 0xA7, 0x67, 0x4C, 0xED, 0x00, 0x6B, 0x01, 0x25, 0x01, 0x6B, 0xFF, 0x6A, 0x6C, 0xEA, 0x03, 0x63, -0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0x8C, 0xE9, -0x00, 0x68, 0xFF, 0x6A, 0x0C, 0xEA, 0x2E, 0xEA, -0x10, 0x2A, 0x91, 0x67, 0x00, 0x18, 0x84, 0xDD, -0x91, 0x67, 0x00, 0x18, 0x73, 0xDD, 0x91, 0x67, -0x00, 0x18, 0x8B, 0xDD, 0x91, 0x67, 0x00, 0x18, -0x55, 0xDD, 0x91, 0x67, 0x00, 0x18, 0x4B, 0xDD, -0x0F, 0x10, 0x90, 0x67, 0x00, 0x18, 0xAA, 0xDD, -0x90, 0x67, 0x00, 0x18, 0x99, 0xDD, 0x90, 0x67, -0x00, 0x18, 0xB1, 0xDD, 0x90, 0x67, 0x00, 0x18, -0x69, 0xDD, 0x90, 0x67, 0x00, 0x18, 0x5F, 0xDD, -0x01, 0x48, 0x05, 0x70, 0xDA, 0x61, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, 0x88, 0x9A, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, -0xA0, 0x9C, 0x52, 0x9B, 0xAC, 0xEA, 0x53, 0xDB, -0x40, 0xDC, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0xD1, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF6, -0x34, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, -0x10, 0x4A, 0x40, 0x9A, 0x60, 0x99, 0x30, 0xF0, -0x20, 0x6C, 0xA0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF6, 0x4C, 0x9A, 0xC3, 0xF6, 0x10, 0x4C, -0x80, 0x9C, 0x00, 0x9A, 0x1A, 0x65, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0x9C, 0xC3, 0xF6, 0x14, 0x4A, -0x40, 0x9A, 0x01, 0xD4, 0x30, 0xF0, 0x20, 0x6C, -0x40, 0x9A, 0x46, 0xF5, 0xF8, 0x9C, 0x00, 0xD2, -0x44, 0x67, 0x46, 0xF5, 0x18, 0x4A, 0xC1, 0x9A, -0x83, 0x9A, 0x6C, 0xEF, 0xAC, 0xEE, 0x01, 0x93, -0xA2, 0x9A, 0xE8, 0xDA, 0x6C, 0xEC, 0x0C, 0xED, -0x64, 0x9A, 0x00, 0x90, 0x8B, 0xDA, 0xC9, 0xDA, -0x0C, 0xEB, 0xAA, 0xDA, 0x6C, 0xDA, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF2, 0x10, 0x4A, 0x40, 0x9A, -0xE0, 0xD9, 0x18, 0x67, 0xC0, 0xDA, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF6, 0x10, 0x4A, 0x40, 0x9A, -0xA0, 0xD8, 0x80, 0xDA, 0x30, 0xF0, 0x20, 0x6C, -0xC3, 0xF6, 0x14, 0x4C, 0x80, 0x9C, 0x60, 0xDC, -0x05, 0x91, 0x04, 0x90, 0x03, 0x63, 0x20, 0xE8, -0xFF, 0x63, 0x01, 0xD1, 0x00, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF1, 0x18, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF6, 0xF8, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF6, 0xDC, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x80, 0x98, -0xB4, 0x9A, 0x60, 0x9F, 0x20, 0x9E, 0x8C, 0xED, -0x95, 0x9A, 0xB7, 0xDA, 0x6C, 0xEC, 0x76, 0x9A, -0x98, 0xDA, 0x2C, 0xEB, 0x79, 0xDA, 0xA0, 0xD8, -0x80, 0xDF, 0x60, 0xDE, 0x01, 0x91, 0x00, 0x90, -0x01, 0x63, 0x20, 0xE8, 0x20, 0xE8, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xE0, 0xF0, 0x95, 0xA2, -0x01, 0x6B, 0x8C, 0xEB, 0x06, 0x23, 0xA0, 0xF0, -0x64, 0x9A, 0x08, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, -0x64, 0xDA, 0x20, 0xE8, 0x20, 0xE8, 0x00, 0x65, +0xA2, 0xF6, 0x98, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF5, 0x18, 0x4B, 0xA0, 0x9C, 0x52, 0x9B, +0xAC, 0xEA, 0x53, 0xDB, 0x40, 0xDC, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0xD1, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF6, 0x3C, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF6, 0x04, 0x4A, 0x40, 0x9A, +0x60, 0x99, 0x30, 0xF0, 0x20, 0x6C, 0xA0, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, 0x4C, 0x9A, +0xC2, 0xF6, 0x14, 0x4C, 0x80, 0x9C, 0x00, 0x9A, +0x1A, 0x65, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0x9C, +0xC2, 0xF6, 0x1C, 0x4A, 0x40, 0x9A, 0x01, 0xD4, +0x30, 0xF0, 0x20, 0x6C, 0x40, 0x9A, 0x63, 0xF5, +0xF8, 0x9C, 0x00, 0xD2, 0x44, 0x67, 0x63, 0xF5, +0x18, 0x4A, 0xC1, 0x9A, 0x83, 0x9A, 0x6C, 0xEF, +0xAC, 0xEE, 0x01, 0x93, 0xA2, 0x9A, 0xE8, 0xDA, +0x6C, 0xEC, 0x0C, 0xED, 0x64, 0x9A, 0x00, 0x90, +0x8B, 0xDA, 0xC9, 0xDA, 0x0C, 0xEB, 0xAA, 0xDA, +0x6C, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, +0x04, 0x4A, 0x40, 0x9A, 0xE0, 0xD9, 0x18, 0x67, +0xC0, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, +0x14, 0x4A, 0x40, 0x9A, 0xA0, 0xD8, 0x80, 0xDA, +0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF6, 0x1C, 0x4C, +0x80, 0x9C, 0x60, 0xDC, 0x05, 0x91, 0x04, 0x90, +0x03, 0x63, 0x20, 0xE8, 0xFF, 0x63, 0x01, 0xD1, +0x00, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, +0x04, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, +0xEC, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, +0xD4, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, +0x18, 0x4A, 0x80, 0x98, 0xB4, 0x9A, 0x60, 0x9F, +0x20, 0x9E, 0x8C, 0xED, 0x95, 0x9A, 0xB7, 0xDA, +0x6C, 0xEC, 0x76, 0x9A, 0x98, 0xDA, 0x2C, 0xEB, +0x79, 0xDA, 0xA0, 0xD8, 0x80, 0xDF, 0x60, 0xDE, +0x01, 0x91, 0x00, 0x90, 0x01, 0x63, 0x20, 0xE8, 0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF1, 0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0xA3, 0xF0, 0x98, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0xA3, 0xF3, 0x78, 0x9A, 0x8D, 0xEB, -0xA3, 0xF3, 0x78, 0xDA, 0x20, 0xE8, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, 0xE0, 0xF0, -0x88, 0xA0, 0x40, 0xEA, 0x01, 0x72, 0x1F, 0x61, -0xC0, 0xF0, 0x64, 0xA0, 0x7F, 0x6A, 0x6C, 0xEA, -0x1A, 0x22, 0xC3, 0xF3, 0x59, 0xA0, 0x01, 0x6B, -0x6E, 0xEA, 0x15, 0x2A, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF1, 0x68, 0x9B, 0xFF, 0x6C, 0x55, 0x4C, -0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, -0x58, 0x9A, 0x02, 0x6B, 0x00, 0x6D, 0x60, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, -0xC0, 0xF0, 0xCC, 0xA0, 0x40, 0xEA, 0x05, 0x97, -0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, -0x07, 0x6D, 0xB8, 0xEC, 0x30, 0xF0, 0x20, 0x6B, -0x46, 0xF5, 0x18, 0x4B, 0x01, 0x6E, 0x12, 0xEC, -0x71, 0xE4, 0x20, 0xF1, 0xBB, 0xA4, 0xCC, 0xED, -0x1D, 0x25, 0x20, 0xF1, 0xBC, 0xA4, 0x42, 0xF6, -0x68, 0x9B, 0x20, 0xF1, 0x9B, 0xA4, 0x75, 0xE5, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0x68, 0x9B, -0xBC, 0x35, 0x21, 0x4D, 0x75, 0xE5, 0xE0, 0xA5, -0x9E, 0x33, 0x9A, 0x34, 0xCC, 0xEC, 0x78, 0x33, -0x9C, 0x34, 0x4C, 0xEF, 0x8D, 0xEB, 0xED, 0xEB, -0x00, 0xF6, 0x60, 0x33, 0x00, 0xF6, 0x63, 0x33, -0x4C, 0xEB, 0x60, 0xC5, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, -0x06, 0xF6, 0xBC, 0xA3, 0x7F, 0x6B, 0xFF, 0x6A, -0xAC, 0xEB, 0x4C, 0xEB, 0x4C, 0xEC, 0x02, 0x23, -0x00, 0x18, 0xBC, 0xCE, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x30, 0xF0, -0x20, 0x68, 0x2C, 0xEC, 0x46, 0xF5, 0x18, 0x48, -0x30, 0xF0, 0x20, 0x6A, 0x04, 0xD4, 0x80, 0xF3, -0x5C, 0x9A, 0xE0, 0xF0, 0x88, 0xA0, 0x40, 0xEA, -0x01, 0x72, 0x15, 0x61, 0xC0, 0xF0, 0x64, 0xA0, -0x7F, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x0F, 0x22, -0xC3, 0xF3, 0x6D, 0xA0, 0x02, 0x6A, 0x4B, 0xEA, -0x6C, 0xEA, 0xC3, 0xF3, 0x4D, 0xC0, 0xC3, 0xF3, -0x4D, 0xA0, 0x07, 0x6B, 0x6C, 0xEA, 0x03, 0x2A, -0x04, 0x94, 0x00, 0x18, 0x4F, 0xCF, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x69, 0x30, 0xF0, 0x20, 0x68, 0x2C, 0xEC, -0x46, 0xF5, 0x18, 0x48, 0x30, 0xF0, 0x20, 0x6A, -0x04, 0xD4, 0x80, 0xF3, 0x5C, 0x9A, 0xE0, 0xF0, -0x88, 0xA0, 0x40, 0xEA, 0x01, 0x72, 0x21, 0x61, -0xC0, 0xF0, 0x64, 0xA0, 0x7F, 0x6A, 0x6C, 0xEA, -0x2C, 0xEA, 0x1B, 0x22, 0xC0, 0xF0, 0x85, 0xA0, -0x10, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x2C, 0xEB, -0x20, 0x73, 0x08, 0x60, 0x01, 0x72, 0x06, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, 0x40, 0x9A, -0x40, 0xEA, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x06, 0xF6, 0x7C, 0xA2, 0x7F, 0x6A, 0x6C, 0xEA, -0x02, 0x72, 0x03, 0x60, 0x04, 0x94, 0x00, 0x18, -0x1F, 0xCF, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x30, 0xF0, -0x20, 0x68, 0x2C, 0xEC, 0x46, 0xF5, 0x18, 0x48, -0x30, 0xF0, 0x20, 0x6A, 0x04, 0xD4, 0x80, 0xF3, -0x5C, 0x9A, 0xE0, 0xF0, 0x88, 0xA0, 0x40, 0xEA, -0x01, 0x72, 0x35, 0x61, 0xC0, 0xF0, 0x64, 0xA0, -0x7F, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x2F, 0x22, -0xC3, 0xF3, 0x59, 0xA0, 0x01, 0x6B, 0x6E, 0xEA, -0x0B, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, -0x68, 0x9B, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF1, 0x58, 0x9A, 0x02, 0x6B, 0x60, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xC3, 0xF3, 0x88, 0xA2, 0x03, 0x6B, 0x6B, 0xEB, -0x6C, 0xEC, 0xC3, 0xF3, 0x88, 0xC2, 0xC3, 0xF3, -0x8D, 0xA2, 0x8C, 0xEB, 0xC3, 0xF3, 0x6D, 0xC2, -0xC3, 0xF3, 0x4D, 0xA2, 0x07, 0x6B, 0x6C, 0xEA, -0x04, 0x2A, 0x04, 0x94, 0x00, 0x18, 0x4F, 0xCF, -0x06, 0x10, 0x00, 0x6C, 0x00, 0x18, 0x99, 0xE0, -0x04, 0x94, 0x00, 0x18, 0x3B, 0xCF, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x68, -0x8C, 0xE8, 0x90, 0x67, 0x00, 0x18, 0x51, 0xC7, -0x16, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x05, 0xF3, 0x6F, 0xA2, 0x0E, 0xEB, -0x05, 0x2B, 0x05, 0xF3, 0x6D, 0xA2, 0x01, 0x4B, -0x05, 0xF3, 0x6D, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x2A, 0xF1, 0x43, 0xA2, 0x02, 0x72, 0x03, 0x60, -0x90, 0x67, 0x00, 0x18, 0x04, 0xD0, 0x05, 0x97, -0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xA4, 0x32, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, -0xC3, 0xF3, 0x69, 0xA0, 0x02, 0x6A, 0xFF, 0x69, -0x6C, 0xEA, 0x2C, 0xEC, 0x2C, 0xEA, 0x04, 0xD4, -0x23, 0x22, 0x03, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, -0xC3, 0xF3, 0x49, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0x40, 0xF4, 0x44, 0x9A, 0x01, 0x6D, 0x40, 0xEA, -0xC3, 0xF3, 0x89, 0xA0, 0x01, 0x6B, 0x4C, 0xEB, -0x09, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, 0xC0, 0xF0, -0x84, 0xA0, 0x6C, 0x33, 0x6D, 0xEA, 0x7F, 0x6B, -0x8C, 0xEB, 0x2C, 0xEB, 0xC3, 0xF3, 0x49, 0xC0, -0x07, 0x23, 0x08, 0x6B, 0x4C, 0xEB, 0x2C, 0xEB, -0x03, 0x23, 0x04, 0x94, 0x00, 0x18, 0x4F, 0xCF, -0x04, 0x95, 0x01, 0x6C, 0x80, 0x18, 0x1C, 0x12, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x46, 0xF5, 0x18, 0x48, 0xC3, 0xF3, 0x69, 0xA0, -0xFF, 0x69, 0x01, 0x6A, 0x8C, 0xE9, 0x6C, 0xEA, -0xFF, 0x6C, 0x8C, 0xEA, 0x2E, 0x22, 0x02, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0xC3, 0xF3, 0x49, 0xC0, -0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x44, 0x9A, -0x91, 0x67, 0x00, 0x6D, 0x40, 0xEA, 0xC3, 0xF3, -0x89, 0xA0, 0x01, 0x6B, 0x6C, 0xEA, 0xFA, 0x4B, -0x48, 0x32, 0x8C, 0xEB, 0x4D, 0xEB, 0x04, 0x6A, -0x6C, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, 0xC3, 0xF3, -0x69, 0xC0, 0x09, 0x22, 0x91, 0x67, 0x00, 0x18, -0x4F, 0xCF, 0x43, 0xF4, 0x47, 0xA0, 0x0D, 0x22, -0x00, 0x6C, 0xA4, 0x67, 0x08, 0x10, 0x43, 0xF4, -0x47, 0xA0, 0x07, 0x22, 0x91, 0x67, 0x00, 0x18, -0x4F, 0xCF, 0x00, 0x6C, 0x01, 0x6D, 0x00, 0x18, -0x43, 0xC9, 0xB1, 0x67, 0x00, 0x6C, 0x80, 0x18, -0x1C, 0x12, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x00, 0x18, 0x78, 0xDA, 0x02, 0x67, -0x01, 0x6A, 0x0C, 0xEA, 0x0E, 0x22, 0x00, 0x6C, -0x01, 0x6D, 0x00, 0x18, 0x22, 0xC6, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0xC3, 0xF3, -0x8A, 0xA2, 0x05, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, -0x0C, 0x10, 0x00, 0x6C, 0xA4, 0x67, 0x00, 0x18, -0x22, 0xC6, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0xC3, 0xF3, 0x8A, 0xA2, 0x04, 0x6B, -0x8D, 0xEB, 0xC3, 0xF3, 0x6A, 0xC2, 0x40, 0x6A, -0x0C, 0xEA, 0x0F, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF6, 0x4C, 0x9A, 0x60, 0xA2, 0x00, 0xF6, -0x60, 0x33, 0x00, 0xF6, 0x63, 0x33, 0x00, 0x53, -0x00, 0x6B, 0x02, 0x61, 0x80, 0x6B, 0x6B, 0xEB, -0x60, 0xC2, 0x10, 0x6B, 0x0C, 0xEB, 0x0C, 0x23, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x01, 0x6B, 0x43, 0xF4, 0x74, 0xC2, 0x04, 0x6B, -0xC3, 0xF3, 0x7C, 0xCA, 0x01, 0x6E, 0x0A, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x43, 0xF4, 0x74, 0xC2, 0x03, 0x6B, 0xC3, 0xF3, -0x7C, 0xCA, 0x03, 0x6E, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF3, 0x9C, 0xA2, 0x63, 0xF0, 0x60, 0x9B, -0xFF, 0x6D, 0x08, 0x6F, 0x80, 0xC3, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF1, 0x8C, 0x9B, 0xEB, 0xEF, -0x60, 0xA4, 0xAC, 0xEB, 0xEC, 0xEB, 0xCD, 0xEB, -0xAC, 0xEB, 0x60, 0xC4, 0x43, 0xF4, 0xB4, 0xA2, -0x30, 0xF0, 0x20, 0x6C, 0x2A, 0xF1, 0x12, 0x4C, -0x00, 0x18, 0xDD, 0xDE, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x6C, 0xF0, 0x6C, 0xA2, -0x02, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, -0x00, 0x18, 0xC9, 0xDC, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0x6E, 0xC1, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x80, 0x18, 0xC0, 0x08, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x46, 0xF5, 0x18, 0x48, 0xC0, 0xF0, 0x64, 0xA0, -0x7F, 0x6A, 0xFF, 0x69, 0x6C, 0xEA, 0x1E, 0x22, -0xC0, 0xF0, 0x87, 0xA0, 0x96, 0x34, 0x2C, 0xEC, -0x00, 0x18, 0xC6, 0xDA, 0x02, 0x6B, 0x4C, 0xEB, -0x2C, 0xEB, 0x07, 0x23, 0xC0, 0xF0, 0x87, 0xA0, -0x96, 0x34, 0x2C, 0xEC, 0x00, 0x18, 0x04, 0xCD, -0x0D, 0x10, 0xC0, 0xF0, 0x87, 0xA0, 0xC3, 0xF3, -0x68, 0xA0, 0x05, 0x6A, 0x4B, 0xEA, 0x96, 0x34, -0x6C, 0xEA, 0x2C, 0xEC, 0xC3, 0xF3, 0x48, 0xC0, -0x00, 0x18, 0x4F, 0xCF, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xC0, 0xF0, 0x84, 0xA2, -0x7F, 0x6B, 0x8C, 0xEB, 0x07, 0x23, 0xC0, 0xF0, -0x87, 0xA2, 0xFF, 0x6A, 0x96, 0x34, 0x4C, 0xEC, -0x00, 0x18, 0x56, 0xCF, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0x2C, 0xEC, -0x06, 0x74, 0x5E, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF6, 0x70, 0x9A, 0x01, 0x6C, 0x30, 0xF0, -0x20, 0x68, 0x40, 0xA3, 0x46, 0xF5, 0x18, 0x48, -0x2C, 0xEA, 0x8D, 0xEA, 0x2C, 0xEA, 0x40, 0xC3, -0xE0, 0xF0, 0x72, 0xA0, 0x7F, 0x6A, 0x4B, 0xEA, -0x6C, 0xEA, 0x2C, 0xEA, 0x81, 0x72, 0x5F, 0x61, -0xE0, 0xF0, 0x8F, 0xA0, 0x7F, 0x6A, 0x4C, 0xEC, -0x2C, 0xEC, 0x80, 0x18, 0xAF, 0x37, 0x01, 0x72, -0x26, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x48, 0x9A, 0x32, 0x6C, 0x40, 0xEA, 0xE0, 0xF0, -0x8F, 0xA0, 0x7F, 0x6A, 0x4C, 0xEC, 0x2C, 0xEC, -0x80, 0x18, 0xAF, 0x37, 0x48, 0x22, 0x00, 0x6C, -0x00, 0x18, 0x50, 0xD2, 0xE0, 0xF0, 0x6E, 0xA0, -0x20, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x3F, 0x2A, -0xE0, 0xF0, 0x8F, 0xA0, 0x7F, 0x6A, 0x4C, 0xEC, -0x2C, 0xEC, 0x80, 0x18, 0xC6, 0x37, 0xE0, 0xF0, -0x8F, 0xA0, 0x7F, 0x6A, 0x4C, 0xEC, 0x2C, 0xEC, -0x80, 0x18, 0xD1, 0x37, 0x30, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, 0x32, 0x6C, -0x40, 0xEA, 0xE0, 0xF0, 0x8F, 0xA0, 0x7F, 0x6A, -0x4C, 0xEC, 0x2C, 0xEC, 0x80, 0x18, 0xAF, 0x37, -0x01, 0x72, 0x21, 0x60, 0x01, 0x6C, 0x00, 0x18, -0x50, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, -0x84, 0x9A, 0x80, 0x18, 0x8D, 0x57, 0x17, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x05, 0xF3, 0x70, 0xA2, 0x6E, 0xEC, 0x0F, 0x2C, -0xE0, 0xF0, 0x92, 0xA2, 0x10, 0x6B, 0x8C, 0xEB, -0x2C, 0xEB, 0x09, 0x2B, 0x30, 0xF0, 0x20, 0x6C, -0xA0, 0xF0, 0x64, 0x9A, 0xA3, 0xF0, 0x98, 0x9C, -0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x06, 0xF6, 0x5F, 0xA2, 0xFF, 0x68, -0x8C, 0xE8, 0x56, 0x32, 0x0E, 0xEA, 0x06, 0x2A, -0x90, 0x67, 0x00, 0x18, 0x06, 0xCF, 0x00, 0x6C, -0x00, 0x18, 0x43, 0xC7, 0x90, 0x67, 0x00, 0x6D, -0x00, 0x18, 0x6E, 0xCE, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x80, 0x18, 0x1F, 0x3A, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0xFA, 0xD2, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x18, 0xF7, 0xD2, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x80, 0x18, 0xD2, 0x33, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x80, 0x18, 0x18, 0x33, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0x46, 0xF5, 0x18, 0x4B, 0x24, 0x67, 0xC0, 0xF0, -0x87, 0xA3, 0xFF, 0x6A, 0x4C, 0xE9, 0x96, 0x34, -0x2E, 0xEC, 0x0F, 0x2C, 0xC0, 0xF0, 0xA4, 0xA3, -0x7F, 0x6C, 0xAC, 0xEC, 0x4C, 0xEC, 0x09, 0x24, -0xC3, 0xF3, 0x88, 0xA3, 0x40, 0x6B, 0x8C, 0xEB, -0x4C, 0xEB, 0x03, 0x23, 0x91, 0x67, 0x00, 0x18, -0xAA, 0xDD, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x05, 0xF3, 0x75, 0xA2, 0x2E, 0xEB, -0x11, 0x2B, 0x05, 0xF3, 0x74, 0xA2, 0x1F, 0x6C, -0x6A, 0x32, 0x8C, 0xEA, 0x47, 0xE9, 0x01, 0x6C, -0x8C, 0xEA, 0x08, 0x22, 0x02, 0x6A, 0x6C, 0xEA, -0xFF, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, -0x00, 0x18, 0xC9, 0xDC, 0x30, 0xF0, 0x20, 0x6A, -0x6C, 0xF0, 0x47, 0xA2, 0x2E, 0xEA, 0x03, 0x2A, -0x91, 0x67, 0x80, 0x18, 0x51, 0x12, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x05, 0xF3, -0x08, 0xA2, 0x04, 0xD2, 0x2E, 0xE8, 0x06, 0x28, -0x91, 0x67, 0x80, 0x18, 0xB5, 0x0F, 0x04, 0x92, -0x05, 0xF3, 0x0A, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x26, 0xF6, 0x5F, 0xA2, 0x2E, 0xEA, 0x03, 0x2A, -0x91, 0x67, 0x80, 0x18, 0x27, 0x15, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, -0x00, 0x18, 0x0D, 0xDA, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0x68, 0x9B, -0xFF, 0x6A, 0x4C, 0xEE, 0x6D, 0xE4, 0x08, 0x68, -0x80, 0xA3, 0xDB, 0xE0, 0x02, 0x67, 0x4C, 0xED, -0x07, 0xEE, 0xD0, 0x67, 0x4C, 0xEF, 0x04, 0xED, -0x4C, 0xEC, 0xCC, 0xEF, 0x0F, 0xE8, 0x8C, 0xE8, -0xE4, 0xED, 0xED, 0xE8, 0x4C, 0xE8, 0x00, 0xC3, -0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0x48, 0x9A, -0xFF, 0xF7, 0x1F, 0x6B, 0x8C, 0xEB, 0x4D, 0xE3, -0x40, 0xA3, 0xFF, 0x6C, 0x8C, 0xEE, 0x08, 0x6B, -0xDB, 0xE3, 0x8C, 0xED, 0x8C, 0xEA, 0x64, 0x67, -0x47, 0xED, 0x67, 0xEE, 0x6C, 0xEA, 0x8C, 0xEA, -0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, -0x7C, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0x6D, 0xF1, -0x0D, 0x4A, 0x40, 0xDB, 0x00, 0x68, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF7, 0x44, 0x9A, 0x40, 0x9A, -0x21, 0x22, 0xE0, 0xF3, 0x09, 0x70, 0x13, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0x7C, 0x9A, -0x20, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xA3, 0xF3, 0x78, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, -0x78, 0xDA, 0x00, 0x6A, 0x0C, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x32, 0x6C, -0x01, 0x48, 0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, -0x4C, 0xE8, 0xD9, 0x17, 0x01, 0x6A, 0x05, 0x97, -0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, 0x7C, 0x9B, -0x10, 0xF0, 0x23, 0x6A, 0xED, 0xF1, 0x01, 0x4A, -0x40, 0xDB, 0x00, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF7, 0xA8, 0x9A, 0xFF, 0x6C, 0x40, 0xA5, -0xA0, 0xA5, 0x8C, 0xEA, 0xAC, 0xEC, 0x4E, 0xEC, -0x19, 0x24, 0x64, 0x73, 0x12, 0x61, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF1, 0x9C, 0x9B, 0x40, 0x6D, -0x60, 0x9C, 0xAD, 0xEB, 0x60, 0xDC, 0x30, 0xF0, -0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, 0xA3, 0xF3, -0x98, 0x9B, 0xAD, 0xEC, 0xA3, 0xF3, 0x98, 0xDB, -0x20, 0xE8, 0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6A, -0x4C, 0xEB, 0xDC, 0x17, 0x20, 0xE8, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFF, 0x69, 0x8C, 0xE9, 0x00, 0x68, 0x2B, 0x10, -0x82, 0xF3, 0x08, 0x70, 0x12, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF1, 0x7C, 0x9A, 0x10, 0x6C, +0x06, 0x74, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF7, 0x80, 0x9B, 0x01, 0x6D, 0x60, 0xA4, +0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, 0x68, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF3, 0x90, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0xA3, 0xF3, -0x78, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, 0x78, 0xDA, -0x14, 0x10, 0xFF, 0xF7, 0x1F, 0x6A, 0x01, 0x48, -0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x14, 0x6C, 0x40, 0xEA, 0x33, 0x58, -0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, -0x4C, 0x9A, 0x01, 0x6B, 0x40, 0xA2, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x6A, 0x0C, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF7, 0x4C, 0x9A, 0x01, 0x6B, -0x40, 0x9A, 0x42, 0x32, 0x5E, 0x32, 0x6C, 0xEA, -0x2E, 0xEA, 0xCA, 0x2A, 0x43, 0x67, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, 0x7C, 0x9B, -0x10, 0xF0, 0x23, 0x6A, 0xCD, 0xF2, 0x09, 0x4A, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, -0x50, 0x9A, 0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, -0xF8, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, -0x7C, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0xCD, 0xF2, -0x0A, 0x4A, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, -0xFF, 0x6A, 0x4C, 0xEC, 0x94, 0x34, 0x4C, 0xED, -0x4C, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, -0x54, 0x9A, 0x80, 0xC2, 0xA0, 0xC2, 0x20, 0xE8, -0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF7, -0x74, 0x9B, 0x4C, 0xEC, 0x94, 0x34, 0x4C, 0xEC, -0x80, 0xC3, 0x60, 0xA3, 0x6C, 0xEA, 0x20, 0xE8, -0xFF, 0x6A, 0x4C, 0xED, 0xFF, 0x75, 0x4C, 0xEC, -0xCC, 0xEA, 0x06, 0x61, 0x30, 0xF0, 0x20, 0x6B, -0x46, 0xF5, 0x18, 0x4B, 0x71, 0xE4, 0x0B, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, -0x71, 0xE4, 0xA3, 0xF3, 0x64, 0xA4, 0xAC, 0xEA, -0xAF, 0xED, 0x6C, 0xED, 0xAD, 0xEA, 0xA3, 0xF3, -0x44, 0xC4, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0xFF, 0x6B, 0x6C, 0xEC, 0x07, 0x6A, -0x6C, 0xED, 0x8C, 0xEA, 0x01, 0x68, 0xE6, 0x67, -0x04, 0xEA, 0xAB, 0xEE, 0x30, 0xF0, 0x20, 0x6A, -0xAD, 0xEE, 0x40, 0xF4, 0x40, 0x9A, 0x6C, 0xE8, -0xC0, 0xF7, 0xC3, 0x36, 0x8E, 0x34, 0x6C, 0xEF, -0xB0, 0x67, 0x0C, 0xEE, 0x6C, 0xEC, 0x40, 0xEA, -0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x00, 0x18, 0xB2, 0xDA, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF3, 0x78, 0x9A, 0xEF, 0x6A, 0x80, 0xA3, -0x8C, 0xEA, 0x40, 0xC3, 0x00, 0x6C, 0x00, 0x18, -0x90, 0xDA, 0x00, 0x18, 0xFF, 0xC8, 0x2B, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0x26, 0xF6, 0x6A, 0xA2, -0x08, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, -0x22, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, -0x78, 0x9A, 0x7F, 0xF7, 0x1F, 0x6A, 0x30, 0xF0, -0x20, 0x68, 0x80, 0xAB, 0x07, 0x69, 0x8C, 0xEA, -0x40, 0xCB, 0x80, 0xF3, 0x4C, 0x98, 0x0A, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF4, -0x4C, 0x9A, 0x0A, 0x6C, 0x20, 0xC2, 0x80, 0xF3, -0x4C, 0x98, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF4, 0x50, 0x9A, 0x0A, 0x6C, 0x20, 0xC2, -0x80, 0xF3, 0x4C, 0x98, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0xC3, 0xF3, -0x88, 0xA2, 0x7F, 0x6B, 0x8C, 0xEB, 0xC3, 0xF3, -0x68, 0xC2, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x46, 0xF5, 0x18, 0x48, 0xC3, 0xF3, 0x68, 0xA0, -0x80, 0x6A, 0x4B, 0xEA, 0x6D, 0xEA, 0xC3, 0xF3, -0x48, 0xC0, 0x43, 0xF4, 0x54, 0xA0, 0x04, 0xD2, -0x80, 0xF0, 0x01, 0x22, 0x02, 0x6A, 0xC3, 0xF3, -0x4C, 0xC0, 0x5C, 0xB9, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x7D, 0xB9, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x30, 0xF0, 0x21, 0x6C, 0xFC, 0xF7, -0x18, 0x4C, 0xBF, 0x67, 0xA0, 0xDC, 0x9A, 0xB8, -0x00, 0x65, 0xBB, 0xB8, 0x00, 0x65, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF0, 0x7C, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0x03, 0xF1, 0x80, 0x9C, 0x40, 0x9B, -0x10, 0x6D, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF0, 0x54, 0x9A, 0x04, 0x6B, -0xFF, 0x6C, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x00, 0x6B, 0x42, 0xF6, -0x6E, 0xC2, 0xC3, 0xF3, 0x7A, 0xAA, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF7, 0x5C, 0x9A, 0x60, 0xCA, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x78, 0x9A, -0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, -0x40, 0xC3, 0x01, 0x6C, 0x00, 0x18, 0x90, 0xDA, -0xA0, 0xF0, 0x0E, 0x22, 0x58, 0xB9, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x79, 0xB9, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, 0x21, 0x69, -0xDC, 0xF7, 0x0C, 0x49, 0x12, 0xE8, 0x00, 0xD9, -0x10, 0xE8, 0x01, 0xD9, 0x42, 0xD9, 0x63, 0xD9, -0x84, 0xD9, 0xA5, 0xD9, 0xC6, 0xD9, 0xE7, 0xD9, -0x18, 0x67, 0x08, 0xD9, 0x1A, 0xB8, 0x00, 0x65, -0x09, 0xD9, 0x30, 0xF0, 0x21, 0x68, 0xDC, 0xF7, -0x0C, 0x48, 0x3B, 0xB8, 0x00, 0x65, 0x2A, 0xD8, -0x1A, 0xB8, 0x00, 0x65, 0x58, 0xB9, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x79, 0xB9, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x77, 0xF0, 0x20, 0x68, -0x80, 0xF0, 0x10, 0x48, 0x00, 0x98, 0x01, 0x69, -0x2D, 0xE8, 0x77, 0xF0, 0x20, 0x69, 0x80, 0xF0, -0x10, 0x49, 0x00, 0xD9, 0x1A, 0xB8, 0x00, 0x65, -0x3B, 0xB8, 0x00, 0x65, 0x48, 0x10, 0x01, 0x6A, -0xC3, 0xF3, 0x4C, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF3, 0x7A, 0xA8, 0x03, 0xF7, 0x5C, 0x9A, -0x60, 0xCA, 0x00, 0x18, 0xFF, 0xC8, 0x23, 0x22, -0xC0, 0xF0, 0x72, 0xA0, 0x08, 0x6A, 0x6C, 0xEA, -0x1E, 0x22, 0x7D, 0x67, 0x87, 0x43, 0x09, 0x4C, -0x30, 0xF0, 0x20, 0x6A, 0x60, 0xA4, 0x63, 0xF4, -0x4C, 0x9A, 0x9D, 0x67, 0x80, 0x6D, 0x60, 0xC2, -0x67, 0x44, 0x09, 0x4B, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xA3, 0x63, 0xF4, 0x50, 0x9A, 0x80, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, 0x78, 0x9A, -0xFF, 0xF7, 0x1F, 0x6C, 0x40, 0xAB, 0x8C, 0xEA, -0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xCB, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF3, 0x78, 0x9A, 0xFF, 0x68, -0x10, 0x6C, 0x40, 0xA3, 0x0C, 0xEA, 0x8D, 0xEA, -0x0C, 0xEA, 0x40, 0xC3, 0x01, 0x6C, 0x00, 0x18, -0x90, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, -0x70, 0x9A, 0x01, 0x6C, 0x40, 0xA3, 0x0C, 0xEA, -0x8D, 0xEA, 0x0C, 0xEA, 0x40, 0xC3, 0x20, 0xBA, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, 0x23, 0xF3, +0x70, 0x9A, 0x8D, 0xEB, 0x23, 0xF3, 0x70, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0x4C, 0xEC, 0x07, 0x6D, 0xB8, 0xEC, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x18, 0x4B, +0x01, 0x6E, 0x12, 0xEC, 0x71, 0xE4, 0xA0, 0xF0, +0xB6, 0xA4, 0xCC, 0xED, 0x1D, 0x25, 0xA0, 0xF0, +0xB7, 0xA4, 0xC2, 0xF5, 0x60, 0x9B, 0xA0, 0xF0, +0x96, 0xA4, 0x75, 0xE5, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF4, 0x6C, 0x9B, 0xBC, 0x35, 0x21, 0x4D, +0x75, 0xE5, 0xE0, 0xA5, 0x9E, 0x33, 0x9A, 0x34, +0xCC, 0xEC, 0x78, 0x33, 0x9C, 0x34, 0x4C, 0xEF, +0x8D, 0xEB, 0xED, 0xEB, 0x00, 0xF6, 0x60, 0x33, +0x00, 0xF6, 0x63, 0x33, 0x4C, 0xEB, 0x60, 0xC5, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0x62, 0x12, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xA7, 0xF0, 0x78, 0xA2, +0x02, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, +0x00, 0x18, 0x6B, 0xD0, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x18, 0x4B, +0x43, 0xF3, 0xA1, 0xA3, 0xFF, 0x6A, 0x4C, 0xEC, +0x8E, 0xED, 0x10, 0x2D, 0x43, 0xF3, 0xA0, 0xA3, +0x1F, 0x6E, 0xAA, 0x33, 0xCC, 0xEB, 0x67, 0xEC, +0x01, 0x6C, 0x8C, 0xEB, 0x07, 0x23, 0x02, 0x6B, +0xAC, 0xEB, 0x4C, 0xEB, 0x03, 0x23, 0x00, 0x6C, +0x00, 0x18, 0x6B, 0xD0, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0x00, 0x18, 0x2F, 0xCE, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x7A, 0xC1, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xEF, 0x17, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x86, 0xC5, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x83, 0xC5, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0x8C, 0x13, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xD6, 0x12, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0xFA, 0xD0, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0x63, 0x01, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF4, 0x6C, 0x9B, 0xFF, 0x6A, 0x4C, 0xEE, +0x6D, 0xE4, 0x08, 0x68, 0x80, 0xA3, 0xDB, 0xE0, +0x02, 0x67, 0x4C, 0xED, 0x07, 0xEE, 0xD0, 0x67, +0x4C, 0xEF, 0x04, 0xED, 0x4C, 0xEC, 0xCC, 0xEF, +0x0F, 0xE8, 0x8C, 0xE8, 0xE4, 0xED, 0xED, 0xE8, +0x4C, 0xE8, 0x00, 0xC3, 0x01, 0x90, 0x01, 0x63, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF4, 0x4C, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, +0x8C, 0xEB, 0x4D, 0xE3, 0x40, 0xA3, 0xFF, 0x6C, +0x8C, 0xEE, 0x08, 0x6B, 0xDB, 0xE3, 0x8C, 0xED, +0x8C, 0xEA, 0x64, 0x67, 0x47, 0xED, 0x67, 0xEE, +0x6C, 0xEA, 0x8C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0xC2, 0xF2, 0x64, 0x9B, 0x10, 0xF0, +0x23, 0x6A, 0xE7, 0xF1, 0x09, 0x4A, 0x40, 0xDB, +0x00, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF7, +0x54, 0x9A, 0x40, 0x9A, 0x21, 0x22, 0xE0, 0xF3, +0x09, 0x70, 0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF3, 0x68, 0x9A, 0x20, 0x6C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF5, 0x18, 0x4A, 0x23, 0xF3, 0x70, 0x9A, +0x8D, 0xEB, 0x23, 0xF3, 0x70, 0xDA, 0x00, 0x6A, +0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x32, 0x6C, 0x01, 0x48, 0x40, 0xEA, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0xD9, 0x17, +0x01, 0x6A, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, -0xFF, 0x74, 0xAC, 0xEA, 0x05, 0x61, 0x30, 0xF0, -0x20, 0x6B, 0xEA, 0xF0, 0x4B, 0xC3, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, -0x83, 0xF3, 0xB3, 0xA3, 0x8C, 0xEA, 0x8F, 0xEC, -0xAC, 0xEC, 0x8D, 0xEA, 0x83, 0xF3, 0x53, 0xC3, -0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0x26, 0x67, -0x0C, 0xE9, 0x53, 0x71, 0x0C, 0xEC, 0x0C, 0xED, -0x09, 0x60, 0x06, 0x2C, 0x30, 0xF0, 0x20, 0x6A, -0xEA, 0xF0, 0x4A, 0xA2, 0xAD, 0xEA, 0x0B, 0x10, -0x00, 0x18, 0x95, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x83, 0xF3, 0x73, 0xA2, -0x83, 0xF3, 0x52, 0xA2, 0x6D, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF1, 0x6C, 0x9B, 0x0C, 0xEA, -0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xEA, 0xF0, -0x28, 0xC2, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, -0x6C, 0xF0, 0x4D, 0xA2, 0xFF, 0x63, 0x05, 0x5A, +0x94, 0x34, 0x4C, 0xED, 0x4C, 0xEC, 0x30, 0xF0, +0x20, 0x6A, 0x02, 0xF7, 0x58, 0x9A, 0x80, 0xC2, +0xA0, 0xC2, 0x20, 0xE8, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x02, 0xF7, 0x78, 0x9B, 0x4C, 0xEC, +0x94, 0x34, 0x4C, 0xEC, 0x80, 0xC3, 0x60, 0xA3, +0x6C, 0xEA, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x50, 0x9A, +0x05, 0x6C, 0x40, 0xEA, 0x01, 0x6B, 0x4C, 0xEB, +0xF7, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x48, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0x63, 0xF5, 0x18, 0x48, 0x06, 0xF1, 0x50, 0xA0, +0x01, 0x69, 0x71, 0x67, 0x4C, 0xEB, 0x04, 0xD3, +0xA0, 0xF0, 0x11, 0x2B, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF3, 0x48, 0x9A, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF3, 0x40, 0x9A, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x5C, 0x9A, +0x02, 0x6C, 0x40, 0xEA, 0x06, 0xF1, 0x51, 0xA0, +0xFF, 0x6B, 0xFF, 0x4A, 0x6C, 0xEA, 0xFE, 0x5A, +0x80, 0xF0, 0x0F, 0x60, 0x06, 0xF1, 0x51, 0xA0, +0x20, 0x6B, 0x4E, 0xEB, 0x0D, 0x2B, 0x04, 0x6A, +0x06, 0xF1, 0x54, 0xC0, 0x06, 0xF1, 0x53, 0xA0, +0x06, 0xF1, 0x35, 0xC0, 0x06, 0xF1, 0x3C, 0xC0, +0x24, 0xEA, 0x06, 0xF1, 0x38, 0xD8, 0x10, 0x10, +0xC2, 0x6B, 0x4E, 0xEB, 0x12, 0x2B, 0x08, 0x6A, +0x06, 0xF1, 0x5C, 0xC0, 0x06, 0xF1, 0x53, 0xA0, +0x06, 0xF1, 0x34, 0xC0, 0x06, 0xF1, 0x35, 0xC0, +0x24, 0xEA, 0x06, 0xF1, 0x38, 0xD8, 0x2C, 0x31, +0x26, 0xF1, 0x20, 0xD8, 0x26, 0xF1, 0x64, 0xC0, +0x66, 0x10, 0xEF, 0x72, 0x33, 0x61, 0x03, 0x6A, +0x06, 0xF1, 0x54, 0xC0, 0x06, 0xF1, 0x52, 0xA0, +0x0F, 0x6B, 0x6C, 0xEA, 0x01, 0x72, 0x0C, 0x61, +0x02, 0x6A, 0x06, 0xF1, 0x55, 0xC0, 0x06, 0xF1, +0x53, 0xA0, 0x06, 0xF1, 0x3C, 0xC0, 0x24, 0xEA, +0x06, 0xF1, 0x38, 0xD8, 0x24, 0x31, 0x09, 0x10, +0x06, 0xF1, 0x53, 0xA0, 0x06, 0xF1, 0x35, 0xC0, +0x06, 0xF1, 0x3C, 0xC0, 0x24, 0xEA, 0x06, 0xF1, +0x38, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, +0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, +0x7C, 0x9B, 0x06, 0xF1, 0x98, 0x9A, 0x26, 0xF1, +0x20, 0xD8, 0x83, 0xEB, 0x01, 0x6B, 0x01, 0x61, +0x00, 0x6B, 0x26, 0xF1, 0x64, 0xC2, 0x26, 0xF1, +0x65, 0xC2, 0x33, 0x10, 0x1C, 0x6B, 0x6E, 0xEA, +0x13, 0x2A, 0x05, 0x6B, 0x06, 0xF1, 0x74, 0xC0, +0x06, 0xF1, 0x73, 0xA0, 0x06, 0xF1, 0x35, 0xC0, +0x06, 0xF1, 0x3C, 0xC0, 0x24, 0xEB, 0x06, 0xF1, +0x38, 0xD8, 0x26, 0xF1, 0x20, 0xD8, 0x26, 0xF1, +0x44, 0xC0, 0x26, 0xF1, 0x45, 0xC0, 0x1D, 0x10, +0x5D, 0x67, 0x67, 0x42, 0x09, 0x4B, 0x40, 0xA3, +0x06, 0xF1, 0x35, 0xC0, 0x06, 0xF1, 0x3C, 0xC0, +0x06, 0xF1, 0x54, 0xC0, 0x06, 0xF1, 0x53, 0xA0, +0x24, 0xEA, 0x5D, 0x67, 0x67, 0x42, 0x09, 0x4B, +0x40, 0xA3, 0x7D, 0x67, 0x06, 0xF1, 0x38, 0xD8, +0x26, 0xF1, 0x44, 0xC0, 0x47, 0x43, 0x09, 0x4A, +0x60, 0xA2, 0x26, 0xF1, 0x20, 0xD8, 0x26, 0xF1, +0x65, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, +0x18, 0x4A, 0x06, 0xF1, 0x90, 0xA2, 0x01, 0x6B, +0x8D, 0xEB, 0x06, 0xF1, 0x70, 0xC2, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x52, 0xA4, 0x73, 0xA4, 0x30, 0xF0, 0x20, 0x69, +0x40, 0x32, 0x40, 0x32, 0x00, 0xF6, 0x60, 0x33, +0x4D, 0xE3, 0x50, 0xA4, 0x63, 0xF5, 0x18, 0x49, +0x04, 0x67, 0x4D, 0xE3, 0x51, 0xA4, 0x40, 0x32, +0x49, 0xE3, 0x04, 0xD2, 0x6A, 0xA4, 0x49, 0xA4, +0x60, 0x33, 0x49, 0xE3, 0x05, 0xD2, 0x4E, 0xA4, +0x6F, 0xA4, 0x40, 0x32, 0x40, 0x32, 0x00, 0xF6, +0x60, 0x33, 0x4D, 0xE3, 0x4C, 0xA4, 0x4D, 0xE3, +0x4D, 0xA4, 0x40, 0x32, 0x49, 0xE3, 0x06, 0xD2, +0x06, 0xF1, 0x50, 0xA1, 0x01, 0x6B, 0x6C, 0xEA, +0x18, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, +0x48, 0x9A, 0x40, 0xEA, 0x00, 0x18, 0xAD, 0xCE, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, 0x40, 0x9A, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x5C, 0x9A, 0x02, 0x6C, 0x40, 0xEA, 0x06, 0xF1, +0x50, 0xA1, 0x01, 0x6B, 0x6D, 0xEA, 0x06, 0xF1, +0x50, 0xC1, 0x48, 0xA0, 0x20, 0x72, 0x1C, 0x60, +0x21, 0x5A, 0x05, 0x60, 0x02, 0x72, 0x1F, 0x60, +0x03, 0x72, 0x22, 0x60, 0x29, 0x10, 0x52, 0x72, +0x0E, 0x60, 0x60, 0x72, 0x25, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF3, 0x4C, 0x9A, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, +0xA1, 0xF7, 0x00, 0x6C, 0x0A, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF3, 0x50, 0x9A, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, 0x54, 0x9A, +0x04, 0x94, 0x40, 0xEA, 0x0D, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x40, 0x9A, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x44, 0x9A, +0x04, 0x94, 0x06, 0x95, 0x05, 0x96, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF7, 0x7C, 0x9A, +0x02, 0x6C, 0x8B, 0xEC, 0x40, 0x9B, 0x8C, 0xEA, +0x40, 0xDB, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x01, 0x6A, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF3, 0x6C, 0x9B, +0xFF, 0x6A, 0x4C, 0xED, 0xA0, 0xC3, 0xCC, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x87, 0xF0, 0x40, 0xC3, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xA7, 0xF0, 0x59, 0xA2, 0xFF, 0x63, 0x05, 0x5A, 0x36, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x48, 0x32, -0x02, 0xF7, 0x10, 0x4B, 0x4D, 0xE3, 0x40, 0x9B, -0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, -0x48, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, 0x40, 0x9A, -0x1A, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, -0x48, 0x9A, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF7, 0x50, 0x9A, 0x0D, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF7, 0x50, 0x9A, 0x40, 0x9A, +0x82, 0xF2, 0x1C, 0x4B, 0x4D, 0xE3, 0x40, 0x9B, +0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, +0x54, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, 0x40, 0x9A, +0x1A, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, +0x54, 0x9A, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF7, 0x50, 0x9A, 0x0D, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF7, 0x50, 0x9A, 0x40, 0x9A, 0x50, 0x32, 0x00, 0xF5, 0x42, 0x32, 0x08, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF7, 0x54, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, 0x54, 0x9A, 0x40, 0x9A, 0xE1, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, 0x00, 0xD2, 0x00, 0x93, 0xE0, 0xF3, 0x08, 0x6A, 0x60, 0x33, 0x68, 0x33, 0x5B, 0xEB, 0x01, 0x2A, 0xE5, 0xE8, 0x12, 0xEA, 0x01, 0x10, 0x66, 0x6A, 0x00, 0xD2, 0x00, 0x92, 0x01, 0x63, 0x20, 0xE8, 0xFF, 0x63, 0x01, 0xD0, 0x15, 0x2C, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF1, 0x7C, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0x03, 0xF0, 0x8C, 0x9C, 0x40, 0x9B, +0x20, 0x6A, 0x22, 0xF3, 0x68, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x62, 0xF3, 0x98, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xA3, 0xF3, 0x78, 0x9A, -0x8D, 0xEB, 0xA3, 0xF3, 0x78, 0xDA, 0x5D, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x05, 0xF3, 0xB4, 0xA2, 0x03, 0x6B, 0x6B, 0xEB, -0xAC, 0xEB, 0x05, 0xF3, 0x74, 0xC2, 0x05, 0xF3, -0xD8, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x8C, 0xF0, -0x0C, 0x4A, 0x00, 0x6D, 0x18, 0x6F, 0xF8, 0xED, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, -0x12, 0xEF, 0x6D, 0xE7, 0x25, 0xF3, 0x08, 0xA3, -0x01, 0x6F, 0xEC, 0xE8, 0x23, 0x20, 0x25, 0xF3, -0x68, 0xA3, 0x66, 0x33, 0xEC, 0xEB, 0xFF, 0x6F, +0x63, 0xF5, 0x18, 0x4A, 0x23, 0xF3, 0x70, 0x9A, +0x8D, 0xEB, 0x23, 0xF3, 0x70, 0xDA, 0x5D, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0x43, 0xF3, 0xA0, 0xA2, 0x03, 0x6B, 0x6B, 0xEB, +0xAC, 0xEB, 0x43, 0xF3, 0x60, 0xC2, 0x43, 0xF3, +0xC4, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC7, 0xF0, +0x18, 0x4A, 0x00, 0x6D, 0x18, 0x6F, 0xF8, 0xED, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x18, 0x4B, +0x12, 0xEF, 0x6D, 0xE7, 0x43, 0xF3, 0x14, 0xA3, +0x01, 0x6F, 0xEC, 0xE8, 0x23, 0x20, 0x43, 0xF3, +0x74, 0xA3, 0x66, 0x33, 0xEC, 0xEB, 0xFF, 0x6F, 0xEC, 0xEB, 0x1C, 0x23, 0xFF, 0xF7, 0x78, 0x9A, 0x9B, 0xEB, 0x01, 0x2C, 0xE5, 0xE8, 0x12, 0xEB, 0xFF, 0xF7, 0x7C, 0xDA, 0x10, 0xEF, 0x03, 0x27, @@ -61473,260 +43842,322 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x7C, 0x9A, 0x04, 0x2B, 0x01, 0x6F, 0xFF, 0xF7, 0xFC, 0xDA, 0x60, 0xDA, 0x01, 0x4D, 0x0A, 0x75, 0x18, 0x4A, 0xCC, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x05, 0xF3, 0x7C, 0x9A, -0x05, 0xF3, 0x98, 0xDA, 0x7B, 0xEC, 0x01, 0x2B, -0xE5, 0xE8, 0x05, 0xF3, 0x94, 0xA2, 0x12, 0xEB, -0x25, 0xF3, 0x60, 0xDA, 0x78, 0x67, 0x25, 0xF3, -0x64, 0xDA, 0x02, 0x6B, 0x8D, 0xEB, 0x05, 0xF3, -0x74, 0xC2, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, +0x63, 0xF5, 0x18, 0x4A, 0x43, 0xF3, 0x68, 0x9A, +0x43, 0xF3, 0x84, 0xDA, 0x7B, 0xEC, 0x01, 0x2B, +0xE5, 0xE8, 0x43, 0xF3, 0x80, 0xA2, 0x12, 0xEB, +0x43, 0xF3, 0x6C, 0xDA, 0x78, 0x67, 0x43, 0xF3, +0x70, 0xDA, 0x02, 0x6B, 0x8D, 0xEB, 0x43, 0xF3, +0x60, 0xC2, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, 0x05, 0xF3, -0x54, 0xA0, 0x03, 0x6B, 0x4C, 0xEB, 0x00, 0x6A, -0x2B, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF7, +0x20, 0x68, 0x63, 0xF5, 0x18, 0x48, 0x43, 0xF3, +0x40, 0xA0, 0x03, 0x6B, 0x4C, 0xEB, 0x00, 0x6A, +0x26, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, 0x58, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xFF, 0x6E, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, -0x48, 0x9A, 0x6C, 0xF0, 0x0C, 0x4C, 0x00, 0x6D, -0x05, 0x4E, 0x40, 0xEA, 0x05, 0x6A, 0x66, 0x6B, -0x5B, 0xEB, 0x01, 0x2A, 0xE5, 0xE8, 0x05, 0xF3, -0x5C, 0xD8, 0x05, 0xF3, 0x78, 0xD8, 0x05, 0xF3, -0x74, 0xA0, 0x12, 0xEA, 0x25, 0xF3, 0x40, 0xD8, -0x01, 0x6A, 0x4B, 0xEA, 0x05, 0xF3, 0x55, 0xC0, -0x7D, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x01, 0x6B, -0x6D, 0xEA, 0x05, 0xF3, 0x54, 0xC0, 0x43, 0x67, -0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0x48, 0x9A, 0xA7, 0xF0, 0x18, 0x4C, 0x00, 0x6D, +0x05, 0x4E, 0x40, 0xEA, 0x66, 0x6A, 0x43, 0xF3, +0x44, 0xD8, 0x43, 0xF3, 0x4C, 0xD8, 0x01, 0x6A, +0x4B, 0xEA, 0x43, 0xF3, 0x80, 0xA0, 0x43, 0xF3, +0x41, 0xC0, 0x7D, 0x6A, 0x4B, 0xEA, 0x01, 0x6B, +0x8C, 0xEA, 0x6D, 0xEA, 0x43, 0xF3, 0x40, 0xC0, +0x43, 0xF3, 0x68, 0xD8, 0x43, 0x67, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x30, 0xF0, -0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, 0x05, 0xF3, -0x94, 0xA0, 0x01, 0x6B, 0x00, 0x6A, 0x8C, 0xEB, -0x22, 0x23, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF7, +0x20, 0x68, 0x63, 0xF5, 0x18, 0x48, 0x43, 0xF3, +0x80, 0xA0, 0x01, 0x6B, 0x00, 0x6A, 0x8C, 0xEB, +0x22, 0x23, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, 0x58, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x03, 0x6A, -0x4B, 0xEA, 0x8C, 0xEA, 0x05, 0xF3, 0x54, 0xC0, -0x00, 0x18, 0xB7, 0xDB, 0x04, 0xD2, 0x04, 0x94, -0x00, 0x18, 0xD8, 0xDB, 0x05, 0xF3, 0x74, 0xA0, -0x02, 0x6A, 0x05, 0xF3, 0xDC, 0x98, 0x6D, 0xEA, -0x05, 0xF3, 0x54, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x4B, 0xEA, 0x8C, 0xEA, 0x43, 0xF3, 0x40, 0xC0, +0x00, 0x18, 0x5B, 0xCF, 0x04, 0xD2, 0x04, 0x94, +0x00, 0x18, 0x7C, 0xCF, 0x43, 0xF3, 0x60, 0xA0, +0x02, 0x6A, 0x43, 0xF3, 0xC8, 0x98, 0x6D, 0xEA, +0x43, 0xF3, 0x40, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, 0x42, 0xF1, 0x1C, 0x6C, 0x01, 0x6D, 0x40, 0xEA, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, -0x05, 0xF3, 0xB4, 0xA3, 0x02, 0x6C, 0x00, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x18, 0x4B, +0x43, 0xF3, 0xA0, 0xA3, 0x02, 0x6C, 0x00, 0x6A, 0xAC, 0xEC, 0x0C, 0x24, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF7, 0x58, 0x9A, 0x00, 0x6C, 0x80, 0xC2, -0x03, 0x6A, 0x4B, 0xEA, 0xAC, 0xEA, 0x05, 0xF3, -0x54, 0xC3, 0x01, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0x22, 0xF7, 0x58, 0x9A, 0x00, 0x6C, 0x80, 0xC2, +0x03, 0x6A, 0x4B, 0xEA, 0xAC, 0xEA, 0x43, 0xF3, +0x40, 0xC3, 0x01, 0x6A, 0x20, 0xE8, 0x00, 0x65, 0x00, 0x6A, 0x18, 0x6C, 0x98, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, 0x01, 0x4A, -0x0A, 0x72, 0x12, 0xEC, 0x71, 0xE4, 0x25, 0xF3, -0xA8, 0xA4, 0x02, 0x6B, 0x6B, 0xEB, 0xAC, 0xEB, -0x25, 0xF3, 0x68, 0xC4, 0xEE, 0x61, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x6C, 0xF0, 0x4C, 0xA2, +0x20, 0x6B, 0x63, 0xF5, 0x18, 0x4B, 0x01, 0x4A, +0x0A, 0x72, 0x12, 0xEC, 0x71, 0xE4, 0x43, 0xF3, +0xB4, 0xA4, 0x02, 0x6B, 0x6B, 0xEB, 0xAC, 0xEB, +0x43, 0xF3, 0x74, 0xC4, 0xEE, 0x61, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0xA7, 0xF0, 0x58, 0xA2, 0x01, 0x6B, 0x4C, 0xEB, 0x00, 0x6A, 0x1C, 0x23, -0x30, 0xF0, 0x20, 0x6A, 0x8C, 0xF0, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0xC7, 0xF0, 0x1C, 0x4A, 0x00, 0x6B, 0xA0, 0x9A, 0x8E, 0xED, 0x0F, 0x2D, 0x18, 0x6E, 0xD8, 0xEB, 0x30, 0xF0, 0x20, 0x6D, -0x46, 0xF5, 0x18, 0x4D, 0x12, 0xEE, 0xB9, 0xE6, -0x25, 0xF3, 0xE8, 0xA6, 0x02, 0x6D, 0xAB, 0xED, -0xEC, 0xED, 0x25, 0xF3, 0xA8, 0xC6, 0x01, 0x4B, +0x63, 0xF5, 0x18, 0x4D, 0x12, 0xEE, 0xB9, 0xE6, +0x43, 0xF3, 0xF4, 0xA6, 0x02, 0x6D, 0xAB, 0xED, +0xEC, 0xED, 0x43, 0xF3, 0xB4, 0xC6, 0x01, 0x4B, 0x0A, 0x73, 0x18, 0x4A, 0xEA, 0x61, 0x01, 0x6A, 0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x5D, 0x67, 0x0A, 0xD4, 0x20, 0xF0, 0x98, 0xA2, 0x30, 0xF0, 0x20, 0x6A, -0x0B, 0xD5, 0x0C, 0xD6, 0x46, 0xF5, 0x18, 0x4A, -0x05, 0xF3, 0xB4, 0xA2, 0x01, 0x6B, 0x00, 0xF6, +0x0B, 0xD5, 0x0C, 0xD6, 0x63, 0xF5, 0x18, 0x4A, +0x43, 0xF3, 0xA0, 0xA2, 0x01, 0x6B, 0x00, 0xF6, 0xE0, 0x31, 0xAC, 0xEB, 0x00, 0xF6, 0x23, 0x31, 0x80, 0xF0, 0x09, 0x23, 0x21, 0x24, 0x01, 0x74, 0x80, 0xF0, 0x05, 0x61, 0x0A, 0x93, 0x80, 0xF0, -0x02, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF7, +0x02, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, 0x7C, 0x9B, 0xC3, 0xEB, 0x7C, 0x61, 0x7F, 0x71, 0x7A, 0x60, 0xFF, 0xF7, 0x1F, 0x51, 0x77, 0x61, -0x05, 0xF3, 0x18, 0x9A, 0x1B, 0xEE, 0x01, 0x28, +0x43, 0xF3, 0x04, 0x9A, 0x1B, 0xEE, 0x01, 0x28, 0xE5, 0xE8, 0x10, 0xEA, 0x12, 0xE8, 0x02, 0x22, 0x01, 0x48, 0x04, 0x10, 0x03, 0x28, 0x01, 0x68, 0x50, 0x67, 0x1D, 0x10, 0x01, 0x6B, 0x1E, 0x10, 0x0A, 0x94, 0x65, 0x24, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF7, 0x7C, 0x9B, 0x0C, 0x95, 0xA3, 0xEB, +0x22, 0xF7, 0x7C, 0x9B, 0x0C, 0x95, 0xA3, 0xEB, 0x5E, 0x61, 0x7F, 0x71, 0x5C, 0x60, 0xFF, 0xF7, -0x1F, 0x51, 0x59, 0x61, 0x05, 0xF3, 0x1C, 0x9A, +0x1F, 0x51, 0x59, 0x61, 0x43, 0xF3, 0x08, 0x9A, 0x1B, 0xED, 0x01, 0x28, 0xE5, 0xE8, 0x10, 0xEA, 0x12, 0xE8, 0x02, 0x22, 0x01, 0x48, 0x05, 0x10, 0x04, 0x28, 0x01, 0x68, 0x00, 0x6A, 0x04, 0xD2, 0x02, 0x10, 0x00, 0x6B, 0x04, 0xD3, 0x0A, 0x94, -0x00, 0x18, 0x62, 0xDC, 0x00, 0x6C, 0xFF, 0x6E, +0x00, 0x18, 0x04, 0xD0, 0x00, 0x6C, 0xFF, 0x6E, 0xA4, 0x67, 0xCC, 0xED, 0x1D, 0x65, 0x18, 0x6D, -0xB8, 0xEC, 0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, +0xB8, 0xEC, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x18, 0x4B, 0x01, 0x6D, 0x12, 0xEA, 0x69, 0xE2, -0x25, 0xF3, 0x48, 0xA2, 0xAC, 0xEA, 0xCC, 0xEA, +0x43, 0xF3, 0x54, 0xA2, 0xAC, 0xEA, 0xCC, 0xEA, 0x2F, 0x2A, 0xD8, 0x67, 0x18, 0x6F, 0xF8, 0xEE, 0x04, 0x96, 0xC4, 0x36, 0x04, 0xD6, 0x03, 0x6E, -0xCB, 0xEE, 0x12, 0xEC, 0x71, 0xE4, 0x25, 0xF3, -0xE8, 0xA4, 0xEC, 0xEE, 0x04, 0x97, 0xED, 0xEE, -0x25, 0xF3, 0xC8, 0xC4, 0x0A, 0x96, 0x25, 0xF3, -0xD8, 0xDC, 0x0B, 0x97, 0x25, 0xF3, 0xFC, 0xDC, -0x0C, 0x96, 0x18, 0x6F, 0x25, 0xF3, 0xCC, 0xDC, +0xCB, 0xEE, 0x12, 0xEC, 0x71, 0xE4, 0x43, 0xF3, +0xF4, 0xA4, 0xEC, 0xEE, 0x04, 0x97, 0xED, 0xEE, +0x43, 0xF3, 0xD4, 0xC4, 0x0A, 0x96, 0x63, 0xF3, +0xC4, 0xDC, 0x0B, 0x97, 0x63, 0xF3, 0xE8, 0xDC, +0x0C, 0x96, 0x18, 0x6F, 0x43, 0xF3, 0xD8, 0xDC, 0xD8, 0x67, 0x01, 0x4E, 0xF8, 0xEE, 0x12, 0xEE, -0x6D, 0xE6, 0x05, 0xF3, 0x5C, 0xDB, 0x05, 0xF3, -0x18, 0xDB, 0x25, 0xF3, 0x49, 0xC4, 0x25, 0xF3, -0x48, 0xA4, 0x25, 0xF3, 0x2A, 0xC4, 0x4D, 0xED, -0x25, 0xF3, 0xA8, 0xC4, 0x01, 0x6A, 0x04, 0x10, +0x6D, 0xE6, 0x43, 0xF3, 0x48, 0xDB, 0x43, 0xF3, +0x04, 0xDB, 0x43, 0xF3, 0x55, 0xC4, 0x43, 0xF3, +0x54, 0xA4, 0x43, 0xF3, 0x36, 0xC4, 0x4D, 0xED, +0x43, 0xF3, 0xB4, 0xC4, 0x01, 0x6A, 0x04, 0x10, 0x01, 0x4C, 0x0A, 0x74, 0xBC, 0x61, 0x00, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, 0x06, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x8C, 0xF0, 0x0C, 0x4A, 0x00, 0x6C, -0x4A, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x8C, 0xF0, -0x0C, 0x4A, 0x00, 0x6B, 0x18, 0x6D, 0xB8, 0xEB, -0x30, 0xF0, 0x20, 0x6C, 0x46, 0xF5, 0x18, 0x4C, -0x12, 0xED, 0x91, 0xE5, 0x25, 0xF3, 0xC8, 0xA4, -0x01, 0x6D, 0xAC, 0xEE, 0x08, 0x26, 0x25, 0xF3, -0x88, 0xA4, 0x86, 0x34, 0xAC, 0xEC, 0x03, 0x24, +0x20, 0x6A, 0xC7, 0xF0, 0x18, 0x4A, 0x00, 0x6C, +0x2C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC7, 0xF0, +0x18, 0x4A, 0x00, 0x6B, 0x18, 0x6D, 0xB8, 0xEB, +0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF5, 0x18, 0x4C, +0x12, 0xED, 0x91, 0xE5, 0x43, 0xF3, 0xD4, 0xA4, +0x01, 0x6D, 0xAC, 0xEE, 0x08, 0x26, 0x43, 0xF3, +0x94, 0xA4, 0x86, 0x34, 0xAC, 0xEC, 0x03, 0x24, 0x80, 0x9A, 0x01, 0x4C, 0x80, 0xDA, 0x01, 0x4B, 0x0A, 0x73, 0x18, 0x4A, 0xE7, 0x61, 0x00, 0x18, -0xB7, 0xDB, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xC0, 0xF0, 0x67, 0xA2, -0x05, 0xF3, 0xB5, 0xA2, 0xFF, 0x6C, 0x76, 0x33, -0xAE, 0xEB, 0x12, 0x2B, 0xC0, 0xF0, 0xA4, 0xA2, -0x7F, 0x6B, 0xAC, 0xEB, 0x8C, 0xEB, 0x0C, 0x23, -0xC0, 0xF0, 0xA5, 0xA2, 0x0F, 0x6B, 0xAC, 0xEB, -0x8C, 0xEB, 0x06, 0x23, 0x04, 0x93, 0xC3, 0xF3, -0x52, 0xA2, 0x78, 0xEA, 0x12, 0xEA, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x04, 0x93, 0x6C, 0xF0, -0x50, 0x9A, 0x6E, 0xEA, 0x52, 0x22, 0x04, 0x94, -0x00, 0x18, 0xD8, 0xDB, 0x4E, 0x10, 0x18, 0x6D, -0xB8, 0xEC, 0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, -0x18, 0x4B, 0x12, 0xED, 0x6D, 0xE5, 0x25, 0xF3, -0xC8, 0xA3, 0x01, 0x6D, 0xAC, 0xEE, 0x0A, 0x26, -0x25, 0xF3, 0x68, 0xA3, 0x66, 0x33, 0xAC, 0xEB, -0xFF, 0x6D, 0xAC, 0xEB, 0x03, 0x2B, 0x60, 0x9A, -0x01, 0x4B, 0x60, 0xDA, 0x01, 0x4C, 0x0A, 0x74, -0x18, 0x4A, 0xE5, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x05, 0xF3, 0x75, 0xA2, -0xFF, 0x73, 0x2B, 0x61, 0x25, 0xF3, 0x64, 0x9A, -0x01, 0x4B, 0x25, 0xF3, 0x64, 0xDA, 0x25, 0xF3, -0x40, 0x9A, 0x4E, 0xEB, 0x22, 0x2B, 0x30, 0xF0, -0x20, 0x6A, 0x8C, 0xF0, 0x0C, 0x4A, 0x18, 0x6D, -0xB8, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0x46, 0xF5, -0x18, 0x4C, 0x12, 0xED, 0x91, 0xE5, 0x25, 0xF3, -0xC8, 0xA4, 0x01, 0x6D, 0xAC, 0xEE, 0x08, 0x26, -0x25, 0xF3, 0x88, 0xA4, 0x86, 0x34, 0xAC, 0xEC, -0x03, 0x24, 0x80, 0x9A, 0x01, 0x4C, 0x80, 0xDA, -0x01, 0x4B, 0x0A, 0x73, 0x18, 0x4A, 0xE7, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x78, 0x67, 0x6C, 0xF0, -0x7C, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0xA0, 0xF0, 0x64, 0x9A, 0x02, 0xF0, -0x00, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, -0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x5B, 0xCF, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0x93, 0xA7, 0xF0, 0x5C, 0x9A, 0x6E, 0xEA, +0x52, 0x22, 0x04, 0x94, 0x00, 0x18, 0x7C, 0xCF, +0x4E, 0x10, 0x18, 0x6D, 0xB8, 0xEC, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF5, 0x18, 0x4B, 0x12, 0xED, +0x6D, 0xE5, 0x43, 0xF3, 0xD4, 0xA3, 0x01, 0x6D, +0xAC, 0xEE, 0x0A, 0x26, 0x43, 0xF3, 0x74, 0xA3, +0x66, 0x33, 0xAC, 0xEB, 0xFF, 0x6D, 0xAC, 0xEB, +0x03, 0x2B, 0x60, 0x9A, 0x01, 0x4B, 0x60, 0xDA, +0x01, 0x4C, 0x0A, 0x74, 0x18, 0x4A, 0xE5, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0x43, 0xF3, 0x61, 0xA2, 0xFF, 0x73, 0x2B, 0x61, +0x43, 0xF3, 0x70, 0x9A, 0x01, 0x4B, 0x43, 0xF3, +0x70, 0xDA, 0x43, 0xF3, 0x4C, 0x9A, 0x4E, 0xEB, +0x22, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0xC7, 0xF0, +0x18, 0x4A, 0x18, 0x6D, 0xB8, 0xEB, 0x30, 0xF0, +0x20, 0x6C, 0x63, 0xF5, 0x18, 0x4C, 0x12, 0xED, +0x91, 0xE5, 0x43, 0xF3, 0xD4, 0xA4, 0x01, 0x6D, +0xAC, 0xEE, 0x08, 0x26, 0x43, 0xF3, 0x94, 0xA4, +0x86, 0x34, 0xAC, 0xEC, 0x03, 0x24, 0x80, 0x9A, +0x01, 0x4C, 0x80, 0xDA, 0x01, 0x4B, 0x0A, 0x73, +0x18, 0x4A, 0xE7, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x78, 0x67, 0xC7, 0xF0, 0x68, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, 0xA0, 0xF0, +0x64, 0x9A, 0x02, 0xF0, 0x00, 0x6C, 0x8D, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x07, 0x97, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xC7, 0xF0, 0x0D, 0x48, 0x00, 0x69, 0x18, 0x6A, +0x58, 0xE9, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, +0x18, 0x4B, 0x12, 0xEA, 0x69, 0xE2, 0x43, 0xF3, +0x94, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, 0x27, 0x23, +0x00, 0xF0, 0x8B, 0x98, 0x00, 0xF0, 0x67, 0x98, +0x63, 0xEC, 0x21, 0x61, 0x61, 0x80, 0x81, 0x43, +0x04, 0xD4, 0x07, 0x2C, 0x00, 0xF0, 0x4F, 0x98, +0x00, 0xF0, 0x93, 0x98, 0x40, 0xEA, 0x04, 0x92, +0x14, 0x10, 0x80, 0xA0, 0x01, 0x4C, 0x80, 0xC0, +0x80, 0xA0, 0x82, 0xEB, 0x08, 0x60, 0x43, 0xF3, +0x94, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x43, 0xF3, 0x74, 0xC2, 0x08, 0x10, 0x00, 0xF0, +0x4F, 0x98, 0x00, 0xF0, 0x93, 0x98, 0x40, 0xEA, +0x00, 0x6A, 0x00, 0xF0, 0x4B, 0xD8, 0x01, 0x49, +0x0A, 0x71, 0x18, 0x48, 0xC8, 0x61, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x68, 0x09, 0xD5, 0x8C, 0xE8, 0x7F, 0xF7, +0x1E, 0x6D, 0x01, 0x6C, 0x00, 0x18, 0xCA, 0xC4, +0x62, 0x67, 0x67, 0xE8, 0x01, 0x6A, 0x4C, 0xEB, +0x00, 0x6A, 0x2D, 0x23, 0x0A, 0x28, 0x01, 0x6C, +0x9F, 0xF7, 0x00, 0x6D, 0x00, 0x18, 0xCA, 0xC4, +0x22, 0x67, 0x01, 0x6C, 0x9F, 0xF7, 0x01, 0x6D, +0x09, 0x10, 0x01, 0x6C, 0x9F, 0xF7, 0x02, 0x6D, +0x00, 0x18, 0xCA, 0xC4, 0x22, 0x67, 0x01, 0x6C, +0x9F, 0xF7, 0x03, 0x6D, 0x00, 0x18, 0xCA, 0xC4, +0x0F, 0x6B, 0x4C, 0xEB, 0x60, 0x32, 0x2D, 0xEA, +0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0xF4, 0x6C, 0x9B, 0x00, 0x30, +0x08, 0x30, 0x61, 0xE0, 0x51, 0xE0, 0x09, 0x93, +0x04, 0x10, 0xA0, 0xA0, 0x01, 0x48, 0xA0, 0xC3, +0x01, 0x4B, 0x8A, 0xE8, 0xFA, 0x61, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0x01, 0x6C, 0x7F, 0xF7, 0x1E, 0x6D, +0x63, 0xF5, 0x18, 0x48, 0x00, 0x18, 0xCA, 0xC4, +0x26, 0xF7, 0x88, 0xA0, 0x01, 0x6B, 0x47, 0xEC, +0x6C, 0xEA, 0x0F, 0x22, 0x30, 0xF0, 0x20, 0x6D, +0xA9, 0xF6, 0x00, 0x4D, 0x00, 0x18, 0xD8, 0xD0, +0x26, 0xF7, 0x4A, 0xC8, 0xA0, 0xF0, 0x44, 0x98, +0x10, 0xF0, 0x00, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, +0x44, 0xD8, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x01, 0x6C, 0x7F, 0xF7, 0x1E, 0x6D, 0x00, 0x18, +0xCA, 0xC4, 0x05, 0x97, 0x30, 0xF0, 0x20, 0x6B, +0xAA, 0xF4, 0x44, 0xC3, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, 0x64, 0x9A, +0xFD, 0x6A, 0x1F, 0xF6, 0x10, 0x69, 0x80, 0xA3, +0xB1, 0x67, 0x7F, 0xF7, 0x1F, 0x68, 0x8C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, +0x68, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x01, 0x6C, 0x00, 0x18, 0xCA, 0xC4, +0xFE, 0x6E, 0xB1, 0x67, 0x4C, 0xEE, 0x01, 0x6C, +0x00, 0x18, 0xB9, 0xC4, 0xB0, 0x67, 0x01, 0x6C, +0x00, 0x18, 0xCA, 0xC4, 0x40, 0x6E, 0x4D, 0xEE, +0xFF, 0x6A, 0xB0, 0x67, 0x4C, 0xEE, 0x01, 0x6C, +0x00, 0x18, 0xB9, 0xC4, 0xB0, 0x67, 0x01, 0x6C, +0x00, 0x18, 0xCA, 0xC4, 0x80, 0x6E, 0xCB, 0xEE, +0x4D, 0xEE, 0xFF, 0x6A, 0x4C, 0xEE, 0xB0, 0x67, +0x01, 0x6C, 0x00, 0x18, 0xB9, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, +0x14, 0x6C, 0x40, 0xEA, 0xB1, 0x67, 0x01, 0x6C, +0x00, 0x18, 0xCA, 0xC4, 0x01, 0x6E, 0x4D, 0xEE, +0xFF, 0x6A, 0xB1, 0x67, 0x4C, 0xEE, 0x01, 0x6C, +0x00, 0x18, 0xB9, 0xC4, 0x30, 0xF0, 0x20, 0x6A, +0xA2, 0xF3, 0x6C, 0x9A, 0xFF, 0xF6, 0x1F, 0x6A, +0x80, 0xAB, 0x8C, 0xEA, 0x40, 0xCB, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0x63, 0xF5, 0x18, 0x48, 0x26, 0xF7, +0x68, 0xA0, 0x01, 0x6A, 0xFF, 0x6E, 0x44, 0xEB, +0x4C, 0xEE, 0x01, 0x6C, 0x7F, 0xF7, 0x1E, 0x6D, +0x00, 0x18, 0xB9, 0xC4, 0x26, 0xF7, 0x48, 0xA0, +0x01, 0x6B, 0x05, 0x97, 0x6E, 0xEA, 0x26, 0xF7, +0x48, 0xC0, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF5, 0x18, 0x4A, 0x26, 0xF7, 0x6E, 0xA2, +0x01, 0x6C, 0x8E, 0xEB, 0x05, 0x2B, 0x26, 0xF7, +0x6E, 0xC2, 0x00, 0x18, 0x42, 0xD1, 0x10, 0x10, +0x26, 0xF7, 0xCC, 0xA2, 0x26, 0xF7, 0x88, 0xA2, +0x01, 0x6B, 0xA6, 0x67, 0xA7, 0xEC, 0x6C, 0xED, +0x07, 0x25, 0x6E, 0xEC, 0xC7, 0xEC, 0x86, 0x67, +0x6C, 0xEC, 0x02, 0x24, 0x26, 0xF7, 0x6D, 0xC2, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x30, 0xF0, 0x20, 0x68, 0x8C, 0xF0, 0x01, 0x48, -0x00, 0x69, 0x18, 0x6A, 0x58, 0xE9, 0x30, 0xF0, -0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, 0x12, 0xEA, -0x69, 0xE2, 0x25, 0xF3, 0x88, 0xA2, 0x01, 0x6B, -0x8C, 0xEB, 0x27, 0x23, 0x00, 0xF0, 0x8B, 0x98, -0x00, 0xF0, 0x67, 0x98, 0x63, 0xEC, 0x21, 0x61, -0x61, 0x80, 0x81, 0x43, 0x04, 0xD4, 0x07, 0x2C, -0x00, 0xF0, 0x4F, 0x98, 0x00, 0xF0, 0x93, 0x98, -0x40, 0xEA, 0x04, 0x92, 0x14, 0x10, 0x80, 0xA0, -0x01, 0x4C, 0x80, 0xC0, 0x80, 0xA0, 0x82, 0xEB, -0x08, 0x60, 0x25, 0xF3, 0x88, 0xA2, 0x02, 0x6B, -0x6B, 0xEB, 0x8C, 0xEB, 0x25, 0xF3, 0x68, 0xC2, -0x08, 0x10, 0x00, 0xF0, 0x4F, 0x98, 0x00, 0xF0, -0x93, 0x98, 0x40, 0xEA, 0x00, 0x6A, 0x00, 0xF0, -0x4B, 0xD8, 0x01, 0x49, 0x0A, 0x71, 0x18, 0x48, -0xC8, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFF, 0x6B, 0x6C, 0xEC, -0x0F, 0x6A, 0x8C, 0xEA, 0x03, 0x2A, 0x92, 0x32, -0x6C, 0xEA, 0x20, 0xE8, 0x07, 0x4A, 0x6C, 0xEA, -0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0x8C, 0xEA, 0x04, 0x2A, 0x01, 0x6C, -0x08, 0xF0, 0x00, 0x6D, 0x05, 0x10, 0x44, 0x32, -0xFF, 0x4A, 0x01, 0x6D, 0x02, 0x6C, 0xA4, 0xEA, -0x80, 0x18, 0xFB, 0x57, 0x05, 0x97, 0x03, 0x63, +0xFF, 0x6A, 0xFF, 0xF7, 0x1F, 0x6B, 0x05, 0x67, +0x4C, 0xEC, 0x6C, 0xE8, 0x0A, 0x35, 0x80, 0x37, +0x6C, 0xED, 0xE4, 0x37, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF5, 0x18, 0x4B, 0x4C, 0xEE, 0x26, 0xF3, +0x08, 0x4F, 0xAC, 0xEA, 0xFD, 0xE3, 0x04, 0xD2, +0x00, 0x6B, 0x1E, 0x10, 0x30, 0xF0, 0x20, 0x69, +0xAA, 0xF4, 0x21, 0xA1, 0x20, 0x31, 0x28, 0x31, +0x19, 0x65, 0x30, 0xF0, 0x20, 0x69, 0x02, 0xF6, +0x30, 0x99, 0x58, 0x67, 0x01, 0x76, 0x29, 0xE2, +0x68, 0x31, 0x29, 0xE2, 0xF9, 0x65, 0x20, 0x9F, +0x20, 0xDA, 0x08, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF7, 0x2C, 0x9A, 0x5F, 0x67, 0x29, 0xE2, +0x20, 0x9F, 0x20, 0xDA, 0x01, 0x4B, 0x04, 0x4F, +0xFF, 0x6A, 0x22, 0x67, 0xFA, 0x65, 0x04, 0x92, +0x6C, 0xE9, 0x43, 0xE9, 0xDB, 0x61, 0x03, 0x6A, +0x3F, 0x67, 0x0C, 0xEA, 0x2C, 0xED, 0x20, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0x26, 0xF7, 0xE9, 0xA2, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF6, 0x70, 0x9B, 0xE0, 0x37, 0x9C, 0x34, +0xE8, 0x37, 0x7D, 0xE7, 0xA8, 0x33, 0xB5, 0xE4, +0xC1, 0xF4, 0x0A, 0x4D, 0xA8, 0x35, 0x49, 0xE5, +0x80, 0x9A, 0x7D, 0xE7, 0x01, 0x76, 0x80, 0xDF, +0x07, 0x61, 0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF7, +0x8C, 0x9C, 0x40, 0x9A, 0x8D, 0xE3, 0x40, 0xDB, +0xFF, 0x69, 0xD0, 0x67, 0x01, 0x6C, 0x7F, 0xF7, +0x1C, 0x6D, 0x2C, 0xEE, 0x00, 0x18, 0xB9, 0xC4, +0x02, 0x36, 0x01, 0x6C, 0x7F, 0xF7, 0x1D, 0x6D, +0x2C, 0xEE, 0x00, 0x18, 0xB9, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0xAA, 0xF4, 0x41, 0xA2, 0x01, 0x6E, +0x01, 0x6C, 0x02, 0x4A, 0xC4, 0xEA, 0x7F, 0xF7, +0x1E, 0x6D, 0x2C, 0xEE, 0x00, 0x18, 0xB9, 0xC4, +0x00, 0x68, 0x12, 0x10, 0x01, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x4E, 0xE8, 0xC2, 0xF2, 0x64, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0x88, 0xF5, 0x09, 0x4A, +0x09, 0xE2, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, 0x40, 0xEA, +0x01, 0x6C, 0x7F, 0xF7, 0x1E, 0x6D, 0x00, 0x18, +0xCA, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, +0x18, 0x4B, 0x26, 0xF7, 0x89, 0xA3, 0xA2, 0x44, +0x47, 0xED, 0x01, 0x6D, 0xAC, 0xEA, 0xDE, 0x2A, +0xAE, 0xEC, 0x26, 0xF7, 0x89, 0xC3, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x45, 0x67, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xBC, 0x63, 0x87, 0x62, +0x86, 0xD1, 0x85, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0x63, 0xF5, 0x18, 0x49, 0x26, 0xF7, 0xAA, 0xA9, +0x30, 0xF0, 0x20, 0x6C, 0xA9, 0xF6, 0x00, 0x4C, +0x00, 0x18, 0x51, 0xC8, 0x00, 0x18, 0x42, 0xD1, +0x26, 0xF7, 0x88, 0xA1, 0x04, 0x00, 0xB0, 0x67, +0x00, 0x18, 0xD8, 0xD0, 0x11, 0x22, 0x90, 0x67, +0xA2, 0x67, 0x00, 0x18, 0x51, 0xC8, 0x26, 0xF7, +0x0D, 0xA1, 0x01, 0x6A, 0x4E, 0xE8, 0x05, 0x28, +0x00, 0x18, 0x42, 0xD1, 0x26, 0xF7, 0x0D, 0xC1, +0x03, 0x10, 0x01, 0x6A, 0x26, 0xF7, 0x4E, 0xC1, +0x87, 0x97, 0x86, 0x91, 0x85, 0x90, 0x44, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0x8C, 0xEA, 0x04, 0x2A, 0x01, 0x6C, -0x04, 0xF0, 0x00, 0x6D, 0x05, 0x10, 0xFF, 0x4A, -0x44, 0x32, 0x01, 0x6D, 0x02, 0x6C, 0xA4, 0xEA, -0x80, 0x18, 0xFB, 0x57, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0x8C, 0xEA, 0x04, 0x2A, 0x01, 0x6C, -0x08, 0xF0, 0x00, 0x6D, 0x05, 0x10, 0x44, 0x32, -0xFF, 0x4A, 0x01, 0x6D, 0x02, 0x6C, 0xA4, 0xEA, -0x80, 0x18, 0x18, 0x58, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0x8C, 0xEA, 0x04, 0x2A, 0x01, 0x6C, -0x04, 0xF0, 0x00, 0x6D, 0x05, 0x10, 0xFF, 0x4A, -0x44, 0x32, 0x01, 0x6D, 0x02, 0x6C, 0xA4, 0xEA, -0x80, 0x18, 0x18, 0x58, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6D, 0x8C, 0xED, 0x01, 0x6C, 0x44, 0x67, -0x15, 0x4D, 0x44, 0xED, 0xA2, 0x67, 0x80, 0x18, -0x97, 0x57, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6D, 0x8C, 0xED, -0x04, 0x2D, 0x03, 0x6C, 0x10, 0xF0, 0x00, 0x6D, -0x05, 0x10, 0x1B, 0x4D, 0x01, 0x6A, 0x44, 0xED, -0x03, 0x6C, 0xA2, 0x67, 0x80, 0x18, 0x97, 0x57, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, -0x00, 0x18, 0x45, 0xDD, 0x01, 0x6D, 0x02, 0x6C, -0xA4, 0xEA, 0x80, 0x18, 0x97, 0x57, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0x4C, 0xEC, 0x00, 0x18, 0x45, 0xDD, -0x01, 0x6D, 0x03, 0x6C, 0xA4, 0xEA, 0x80, 0x18, -0x97, 0x57, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFF, 0x6D, 0x8C, 0xED, 0x18, 0x4D, 0x01, 0x6A, +0x44, 0xED, 0x00, 0x6C, 0xA2, 0x67, 0x80, 0x18, +0x73, 0x4C, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6D, 0x8C, 0xED, 0x18, 0x4D, 0x01, 0x6A, 0x44, 0xED, 0x00, 0x6C, -0xA2, 0x67, 0x80, 0x18, 0x97, 0x57, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6D, 0x8C, 0xED, 0x01, 0x6C, 0x44, 0x67, -0x15, 0x4D, 0x44, 0xED, 0xA2, 0x67, 0x80, 0x18, -0xC8, 0x57, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6D, 0x8C, 0xED, -0x04, 0x2D, 0x03, 0x6C, 0x10, 0xF0, 0x00, 0x6D, -0x05, 0x10, 0x1B, 0x4D, 0x01, 0x6A, 0x44, 0xED, -0x03, 0x6C, 0xA2, 0x67, 0x80, 0x18, 0xC8, 0x57, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, -0x00, 0x18, 0x45, 0xDD, 0x01, 0x6D, 0x02, 0x6C, -0xA4, 0xEA, 0x80, 0x18, 0xC8, 0x57, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0x4C, 0xEC, 0x00, 0x18, 0x45, 0xDD, -0x01, 0x6D, 0x03, 0x6C, 0xA4, 0xEA, 0x80, 0x18, -0xC8, 0x57, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6D, 0x8C, 0xED, -0x18, 0x4D, 0x01, 0x6A, 0x44, 0xED, 0x00, 0x6C, -0xA2, 0x67, 0x80, 0x18, 0xC8, 0x57, 0x05, 0x97, +0xA2, 0x67, 0x80, 0x18, 0xA4, 0x4C, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xDD, 0x63, 0x45, 0x62, 0x44, 0xD1, 0x43, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0xFF, 0x69, 0x43, 0xF7, 0x50, 0x9A, 0x8C, 0xE9, +0xFF, 0x69, 0x42, 0xF7, 0x5C, 0x9A, 0x8C, 0xE9, 0x30, 0x31, 0x49, 0xE1, 0x40, 0xD2, 0x40, 0xA2, 0x00, 0xF6, 0x40, 0x32, 0x00, 0xF6, 0x43, 0x32, 0x00, 0x52, 0x40, 0x60, 0x01, 0x6A, 0x7D, 0x67, 0x4B, 0xEA, 0x54, 0xC3, 0x0F, 0x6A, 0x56, 0xC3, 0x10, 0x6A, 0x57, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF7, 0x54, 0x9A, 0x30, 0xF0, 0x20, 0x68, +0x62, 0xF7, 0x40, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x06, 0x04, 0x49, 0xE1, 0x40, 0x9A, 0x04, 0x05, 0x04, 0x6E, 0x04, 0xD2, 0x80, 0xF2, 0x4C, 0x98, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, -0x58, 0x9A, 0x07, 0x04, 0x04, 0x05, 0x49, 0xE1, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, +0x44, 0x9A, 0x07, 0x04, 0x04, 0x05, 0x49, 0xE1, 0x40, 0x9A, 0x04, 0x6E, 0x04, 0xD2, 0x80, 0xF2, 0x4C, 0x98, 0x40, 0xEA, 0x40, 0x93, 0x08, 0x04, 0x04, 0x05, 0x40, 0x9B, 0x04, 0x6E, 0x04, 0xD2, 0x80, 0xF2, 0x4C, 0x98, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF7, 0x5C, 0x9A, 0x09, 0x04, +0x20, 0x6A, 0x62, 0xF7, 0x48, 0x9A, 0x09, 0x04, 0x04, 0x05, 0x45, 0xE1, 0x40, 0x99, 0x04, 0x6E, 0x04, 0xD2, 0x80, 0xF2, 0x4C, 0x98, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, 0x05, 0x04, 0x40, 0xEA, 0x45, 0x97, 0x44, 0x91, 0x43, 0x90, 0x23, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, -0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF7, 0x94, 0x9C, +0x30, 0xF0, 0x20, 0x6C, 0x62, 0xF7, 0x80, 0x9C, 0x50, 0x33, 0x91, 0xE3, 0x80, 0x9C, 0x30, 0xF0, -0x20, 0x6C, 0x43, 0xF7, 0x98, 0x9C, 0x8D, 0xE3, -0x82, 0x67, 0x60, 0x9B, 0x00, 0x18, 0xBF, 0xDD, +0x20, 0x6C, 0x62, 0xF7, 0x84, 0x9C, 0x8D, 0xE3, +0x82, 0x67, 0x60, 0x9B, 0x00, 0x18, 0xDF, 0xD1, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF0, 0x50, 0x9A, 0x63, 0xF7, 0x60, 0x9B, +0x62, 0xF7, 0x4C, 0x9A, 0x62, 0xF7, 0x70, 0x9B, 0x00, 0xA2, 0x20, 0xA3, 0xFF, 0x6A, 0x4C, 0xE8, 0x4C, 0xE9, 0x2A, 0xE8, 0x2B, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF7, 0x54, 0x9A, 0x10, 0x33, +0x20, 0x6A, 0x62, 0xF7, 0x40, 0x9A, 0x10, 0x33, 0x49, 0xE3, 0x40, 0xA2, 0xFF, 0x6B, 0x6C, 0xEA, 0x56, 0x32, 0x6C, 0xEA, 0x04, 0x72, 0x09, 0x60, 0x06, 0x72, 0x0C, 0x60, 0x02, 0x72, 0x10, 0x61, @@ -61735,48 +44166,48 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x58, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x5C, 0x9A, 0x90, 0x67, 0x40, 0xEA, 0x01, 0x48, 0x7F, 0x6A, 0x4C, 0xE8, 0x0A, 0xE9, -0xDA, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, -0x50, 0x9A, 0x20, 0xC2, 0x07, 0x97, 0x06, 0x91, +0xDA, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, +0x4C, 0x9A, 0x20, 0xC2, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0xFF, 0x6B, 0xE2, 0x67, 0x6C, 0xEE, 0x6C, 0xEF, 0x1E, 0x65, 0x87, 0x67, 0x03, 0x6E, 0xCC, 0xEC, 0x80, 0xF0, -0x10, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF7, -0x08, 0x9C, 0x08, 0x69, 0x42, 0x32, 0x80, 0xA0, +0x10, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0x62, 0xF7, +0x18, 0x9C, 0x08, 0x69, 0x42, 0x32, 0x80, 0xA0, 0x52, 0x32, 0x6C, 0xEA, 0x6C, 0xEC, 0x2D, 0xEC, 0x6C, 0xEC, 0x80, 0xC0, 0x30, 0xF0, 0x20, 0x6C, -0x63, 0xF7, 0x8C, 0x9C, 0xCC, 0xEA, 0xE0, 0xC4, -0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF7, 0x90, 0x9C, +0x62, 0xF7, 0x9C, 0x9C, 0xCC, 0xEA, 0xE0, 0xC4, +0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF7, 0x80, 0x9C, 0x40, 0xC4, 0x0F, 0x6A, 0x98, 0x67, 0x8C, 0xEA, 0x74, 0x22, 0x01, 0x6C, 0x4C, 0xEC, 0x06, 0x24, -0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF7, 0x94, 0x9C, +0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF7, 0x84, 0x9C, 0xAC, 0xEB, 0x60, 0xC4, 0x02, 0x6B, 0x4C, 0xEB, 0x08, 0x23, 0xFF, 0x6C, 0xA2, 0x33, 0x8C, 0xEB, -0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF7, 0x98, 0x9C, +0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF7, 0x88, 0x9C, 0x60, 0xC4, 0x04, 0x6B, 0x4C, 0xEB, 0x09, 0x23, 0xA2, 0x33, 0xFF, 0x6C, 0x62, 0x33, 0x8C, 0xEB, -0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF7, 0x9C, 0x9C, +0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF7, 0x8C, 0x9C, 0x60, 0xC4, 0x4E, 0x33, 0x07, 0x23, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF7, 0x60, 0x9B, 0x00, 0xF6, +0x20, 0x6B, 0x82, 0xF7, 0x70, 0x9B, 0x00, 0xF6, 0xA2, 0x35, 0xA0, 0xC3, 0x20, 0x6B, 0x4D, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF7, 0x44, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, 0x54, 0x9A, 0x64, 0x68, 0x60, 0xC2, 0x2C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0xFF, 0x48, 0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0x21, 0x28, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF1, 0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0x83, 0xF3, 0x84, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0xA3, 0xF3, 0x78, 0x9A, 0x8D, 0xEB, -0xA3, 0xF3, 0x78, 0xDA, 0x60, 0xA1, 0xD0, 0x6A, +0x22, 0xF3, 0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xC2, 0xF3, 0x8C, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, +0x18, 0x4A, 0x23, 0xF3, 0x70, 0x9A, 0x8D, 0xEB, +0x23, 0xF3, 0x70, 0xDA, 0x60, 0xA1, 0xD0, 0x6A, 0x6C, 0xEA, 0x40, 0xC1, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF7, 0x68, 0x9A, 0xF7, 0x6A, 0x80, 0xA3, +0x62, 0xF7, 0x78, 0x9A, 0xF7, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x16, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF7, 0x24, 0x9A, 0x20, 0x6A, +0x20, 0x6A, 0x82, 0xF7, 0x34, 0x9A, 0x20, 0x6A, 0x60, 0xA1, 0x6C, 0xEA, 0xCC, 0x2A, 0x60, 0xA1, 0xF0, 0x6A, 0x6C, 0xEA, 0x40, 0xC1, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF7, 0x68, 0x9A, 0xF7, 0x6A, +0x20, 0x6A, 0x62, 0xF7, 0x78, 0x9A, 0xF7, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, @@ -61784,788 +44215,733 @@ u8 array_mp_8822c_fw_wowlan[] = { 0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0xC2, 0x67, 0xFF, 0x6C, 0x8C, 0xEE, 0x03, 0x6D, 0x66, 0x67, 0xAC, 0xEB, 0x4B, 0x2B, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF7, 0xE8, 0x9B, 0x08, 0x68, 0x42, 0x32, +0x62, 0xF7, 0xF8, 0x9B, 0x08, 0x68, 0x42, 0x32, 0x60, 0xA7, 0x52, 0x32, 0x8C, 0xEA, 0x8C, 0xEB, 0x0D, 0xEB, 0x8C, 0xEB, 0x60, 0xC7, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF7, 0x6C, 0x9B, 0xAC, 0xEA, +0x20, 0x6B, 0x62, 0xF7, 0x7C, 0x9B, 0xAC, 0xEA, 0x64, 0x68, 0xC0, 0xC3, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF7, 0x70, 0x9B, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF7, 0x44, 0x9A, 0x30, 0x6B, +0x82, 0xF7, 0x60, 0x9B, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF7, 0x54, 0x9A, 0x30, 0x6B, 0x60, 0xC2, 0x2E, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0xFF, 0x48, 0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, -0x23, 0x28, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, -0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF3, -0x84, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xA3, 0xF3, 0x78, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, -0x78, 0xDA, 0x60, 0xA1, 0xCF, 0x6A, 0x6C, 0xEA, -0x40, 0xC1, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF7, -0x68, 0x9A, 0xF7, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x23, 0x28, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, +0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF3, +0x8C, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0x23, 0xF3, 0x70, 0x9A, 0x8D, 0xEB, 0x23, 0xF3, +0x70, 0xDA, 0x60, 0xA1, 0xCF, 0x6A, 0x6C, 0xEA, +0x40, 0xC1, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, +0x78, 0x9A, 0xF7, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x6A, 0x4B, 0xEA, 0x19, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF7, 0x24, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, 0x34, 0x9A, 0x20, 0x6A, 0x60, 0xA1, 0x6C, 0xEA, 0xCA, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF7, 0x54, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, 0x44, 0x9A, 0xEF, 0x6B, 0x40, 0x9A, 0x80, 0xA1, 0x8C, 0xEB, -0x60, 0xC1, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF7, -0x88, 0x9B, 0xF7, 0x6B, 0xA0, 0xA4, 0xAC, 0xEB, +0x60, 0xC1, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF7, +0x98, 0x9B, 0xF7, 0x6B, 0xA0, 0xA4, 0xAC, 0xEB, 0x60, 0xC4, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF7, 0xA8, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, 0xB8, 0x9A, 0xE0, 0xF3, 0x10, 0x6C, 0x0F, 0x6E, 0x00, 0x18, -0x1A, 0xDE, 0xE0, 0xF3, 0x0C, 0x6C, 0x00, 0x18, -0x6E, 0xDE, 0xFF, 0x6B, 0x4C, 0xEB, 0x0B, 0x73, -0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF7, -0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF2, -0x84, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, 0x40, 0xDB, +0x3A, 0xD2, 0xE0, 0xF3, 0x0C, 0x6C, 0x00, 0x18, +0x8E, 0xD2, 0xFF, 0x6B, 0x4C, 0xEB, 0x0B, 0x73, +0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, +0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xA2, 0xF7, +0x80, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF0, 0x78, 0x9A, 0xFF, 0x6C, 0x20, 0x6D, -0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, -0x40, 0xC3, 0x40, 0xA3, 0x01, 0x6D, 0x8C, 0xEA, -0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0xA9, 0xF3, 0x44, 0xA2, 0x01, 0x72, 0x0C, 0x61, -0x01, 0x6C, 0x10, 0x6D, 0x00, 0x18, 0x37, 0xD2, -0x04, 0x6B, 0x4D, 0xEB, 0xFF, 0x6E, 0x01, 0x6C, -0x10, 0x6D, 0x6C, 0xEE, 0x00, 0x18, 0x26, 0xD2, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0xA9, 0xF3, 0x44, 0xA2, 0x01, 0x72, 0x0A, 0x61, -0x01, 0x6C, 0x10, 0x6D, 0x00, 0x18, 0x37, 0xD2, -0xFB, 0x6E, 0x01, 0x6C, 0x10, 0x6D, 0x4C, 0xEE, -0x00, 0x18, 0x26, 0xD2, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0xA9, 0xF3, 0x64, 0xA3, 0xFF, 0x6A, 0x24, 0x67, -0x01, 0x73, 0xAC, 0xEA, 0x07, 0x60, 0x03, 0x73, -0x05, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF7, -0x70, 0x9B, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF7, 0x74, 0x9B, 0x06, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF7, 0x18, 0x9A, 0x6C, 0xE8, -0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF7, -0x1C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, -0x40, 0x9A, 0x6D, 0xE8, 0x4C, 0xE8, 0x00, 0x18, -0xFF, 0xC8, 0x0C, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0x26, 0xF6, 0x6A, 0xA2, 0x08, 0x6A, 0x6C, 0xEA, -0x05, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, -0x44, 0x9A, 0x4C, 0xE8, 0x02, 0x30, 0x02, 0x30, -0x00, 0xC9, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x69, -0x30, 0xF0, 0x20, 0x6B, 0x8C, 0xE9, 0xC3, 0xF0, -0x94, 0x9B, 0xFF, 0x6A, 0x4C, 0xED, 0xC0, 0xA4, -0x4C, 0xEE, 0x07, 0x25, 0x8E, 0x6B, 0xCC, 0xEB, -0x60, 0xC4, 0x71, 0x6B, 0xCD, 0xEB, 0x4C, 0xEB, -0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, -0x78, 0x9A, 0xFF, 0x6C, 0x01, 0x6D, 0x40, 0xA3, -0x00, 0x68, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, -0x40, 0xC3, 0x22, 0x10, 0x64, 0x70, 0x16, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0x7C, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF1, 0x84, 0x9C, -0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0xA3, 0xF3, -0x78, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, 0x78, 0xDA, -0x00, 0x6A, 0x1C, 0x10, 0xFF, 0xF7, 0x1F, 0x6A, -0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, 0x58, 0x9A, -0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, 0xD6, 0x2A, -0xFF, 0xF7, 0x1F, 0x6A, 0x01, 0x49, 0x4C, 0xE9, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x40, 0x9A, -0x20, 0xCA, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFA, 0x63, 0x0B, 0x62, 0x30, 0xF0, 0x20, 0x6D, -0x04, 0x04, 0xA2, 0xF7, 0x14, 0x4D, 0x14, 0x6E, -0x00, 0x18, 0xB9, 0xD4, 0x30, 0xF0, 0x20, 0x6A, -0xA6, 0xF3, 0x05, 0x4A, 0x05, 0x04, 0x01, 0x6B, -0x30, 0xF0, 0x20, 0x6D, 0x06, 0xF6, 0xBF, 0xA5, -0xB6, 0x35, 0x6E, 0xED, 0x1B, 0x25, 0xC0, 0xA2, -0x19, 0x26, 0xE0, 0x9C, 0x1F, 0xF7, 0x00, 0x6D, -0xEC, 0xED, 0x02, 0xF0, 0x00, 0x75, 0x01, 0x60, -0x09, 0x2D, 0x30, 0xF0, 0x20, 0x6E, 0xA0, 0x9C, -0x23, 0xF0, 0xD8, 0x9E, 0xB5, 0xE6, 0xC0, 0xA2, -0xC0, 0xC5, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6D, -0x23, 0xF0, 0xBC, 0x9D, 0xFD, 0xE5, 0xC0, 0xC7, -0x00, 0x6D, 0xA0, 0xC2, 0x01, 0x4B, 0xFF, 0x6D, -0xAC, 0xEB, 0x04, 0x73, 0x01, 0x4A, 0x04, 0x4C, -0xD7, 0x61, 0x0B, 0x97, 0x06, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x30, 0xF0, 0x20, 0x6D, -0x04, 0x04, 0xA2, 0xF7, 0x00, 0x4D, 0x14, 0x6E, -0x00, 0x18, 0xB9, 0xD4, 0x05, 0x03, 0x00, 0x6C, -0x01, 0x6A, 0x30, 0xF0, 0x20, 0x6D, 0x06, 0xF6, -0xBF, 0xA5, 0xB6, 0x35, 0x4E, 0xED, 0x38, 0x25, -0xC0, 0x9B, 0x1F, 0xF7, 0x00, 0x6D, 0xCC, 0xED, -0x02, 0xF0, 0x00, 0x75, 0x01, 0x60, 0x09, 0x2D, -0x30, 0xF0, 0x20, 0x6E, 0x23, 0xF0, 0xD8, 0x9E, -0xA0, 0x9B, 0xE1, 0x44, 0xB5, 0xE6, 0xC0, 0xA5, -0x07, 0x10, 0x30, 0xF0, 0x20, 0x6D, 0x23, 0xF0, -0xBC, 0x9D, 0xE1, 0x44, 0xD9, 0xE5, 0xC0, 0xA6, -0xFF, 0x6D, 0xCC, 0xED, 0x30, 0xF0, 0x20, 0x6E, -0xA6, 0xF3, 0x04, 0x4E, 0xD9, 0xE7, 0xA0, 0xC6, -0xC0, 0x9B, 0x1F, 0xF7, 0x00, 0x6D, 0xCC, 0xED, -0x02, 0xF0, 0x00, 0x75, 0x01, 0x60, 0x09, 0x2D, -0x30, 0xF0, 0x20, 0x6E, 0xA0, 0x9B, 0x23, 0xF0, -0xD8, 0x9E, 0xB5, 0xE6, 0x00, 0x6E, 0xC0, 0xC5, -0x07, 0x10, 0x30, 0xF0, 0x20, 0x6D, 0x23, 0xF0, -0xBC, 0x9D, 0xD9, 0xE5, 0x00, 0x6D, 0xA0, 0xC6, -0x01, 0x4A, 0xFF, 0x6D, 0xAC, 0xEA, 0x04, 0x72, -0x01, 0x4C, 0x04, 0x4B, 0xBA, 0x61, 0x0B, 0x97, -0x06, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF7, 0xBC, 0x9B, 0xFF, 0x6A, 0x08, 0x6E, -0x60, 0xA5, 0xCB, 0xEE, 0x4C, 0xEC, 0x4C, 0xEB, -0xCC, 0xEB, 0x6D, 0xEC, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF7, 0x60, 0x9B, 0x4C, 0xEC, 0x80, 0xC5, -0x60, 0xA3, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF7, 0xDC, 0x9B, -0xFF, 0x6A, 0x08, 0x6F, 0x60, 0xA6, 0xEB, 0xEF, -0x4C, 0xEC, 0x4C, 0xEB, 0xEC, 0xEB, 0x6D, 0xEC, -0x4C, 0xED, 0x4C, 0xEC, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF7, 0x40, 0x9A, 0x80, 0xC6, 0xA0, 0xC2, -0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, -0x0F, 0x6D, 0x08, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x6D, 0x83, 0xF3, 0x00, 0x6C, -0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF3, -0xB0, 0x9B, 0xC3, 0xF4, 0x10, 0x69, 0x91, 0x67, -0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0xB4, 0x9B, -0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, -0xB4, 0x9B, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x03, 0xF0, 0xAC, 0x9B, 0x91, 0x67, 0x00, 0x6E, -0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x69, -0x40, 0xEA, 0x24, 0xF2, 0x1C, 0x48, 0x05, 0xF7, -0x1C, 0x49, 0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xA8, 0xC1, 0x98, 0xC0, 0xF3, 0x44, 0x9A, -0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, 0x08, 0x48, -0x2A, 0xE8, 0xF4, 0x61, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFF, 0x6A, 0x8C, 0xEA, 0x0F, 0x5A, 0x08, 0x60, -0x30, 0xF0, 0x20, 0x6B, 0x48, 0x34, 0x22, 0xF7, -0x04, 0x4B, 0x8D, 0xE3, 0x60, 0x9B, 0x00, 0xEB, -0x00, 0x6A, 0x20, 0xE8, 0xD0, 0xF4, 0x64, 0x42, -0x1F, 0xF7, 0x00, 0x6C, 0x8C, 0xEB, 0x05, 0x2B, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF7, 0x64, 0x9B, -0x2F, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF7, -0x68, 0x9B, 0x2A, 0x10, 0x80, 0xF4, 0x64, 0x42, -0x1F, 0xF7, 0x00, 0x6C, 0x8C, 0xEB, 0x05, 0x2B, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF7, 0x6C, 0x9B, -0x1F, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF7, -0x70, 0x9B, 0x1A, 0x10, 0xC0, 0xF4, 0x68, 0x42, -0x1F, 0xF7, 0x00, 0x6C, 0x8C, 0xEB, 0x05, 0x2B, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF7, 0x74, 0x9B, -0x0F, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF7, -0x78, 0x9B, 0x0A, 0x10, 0x70, 0xF4, 0x68, 0x42, -0x1F, 0xF7, 0x00, 0x6C, 0x8C, 0xEB, 0x0A, 0x2B, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF7, 0x7C, 0x9B, -0x69, 0xE2, 0x60, 0xAA, 0xFF, 0xF7, 0x1F, 0x6A, -0x6C, 0xEA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF7, 0x60, 0x9B, 0x69, 0xE2, 0x60, 0xAA, -0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6B, 0xC2, 0xF7, 0x7C, 0x9B, 0x10, 0xF0, -0x23, 0x6A, 0x8F, 0xF7, 0x09, 0x4A, 0x40, 0xDB, -0x00, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, -0x44, 0x9A, 0x40, 0x9A, 0x21, 0x22, 0xE0, 0xF3, +0x20, 0x6B, 0xC2, 0xF2, 0x64, 0x9B, 0x10, 0xF0, +0x23, 0x6A, 0x69, 0xF3, 0x11, 0x4A, 0x40, 0xDB, +0x00, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF7, +0x54, 0x9A, 0x40, 0x9A, 0x21, 0x22, 0xE0, 0xF3, 0x09, 0x70, 0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF1, 0x7C, 0x9A, 0x20, 0x6C, 0x40, 0x9B, +0x22, 0xF3, 0x68, 0x9A, 0x20, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xA3, 0xF3, 0x78, 0x9A, -0x8D, 0xEB, 0xA3, 0xF3, 0x78, 0xDA, 0x00, 0x6A, +0x63, 0xF5, 0x18, 0x4A, 0x23, 0xF3, 0x70, 0x9A, +0x8D, 0xEB, 0x23, 0xF3, 0x70, 0xDA, 0x00, 0x6A, 0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x32, 0x6C, 0x01, 0x48, 0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0xD9, 0x17, 0x01, 0x6A, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0xA9, 0xF3, 0x44, 0xA2, 0x03, 0x72, 0x0D, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF7, 0x88, 0x9A, +0x26, 0xF3, 0x5C, 0xA2, 0x03, 0x72, 0x0D, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, 0x98, 0x9A, 0xFF, 0x6A, 0x60, 0xA4, 0x6C, 0xEA, 0x10, 0x6B, 0x4C, 0xEB, 0x03, 0x23, 0xEF, 0x6B, 0x4C, 0xEB, -0x60, 0xC4, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x27, 0x67, -0x4C, 0xE9, 0x6F, 0x41, 0x4C, 0xEB, 0x04, 0x67, -0x02, 0x5B, 0x4C, 0xE8, 0x4C, 0xED, 0x4C, 0xEE, -0x03, 0x61, 0x90, 0x67, 0x00, 0x18, 0xCC, 0xDA, -0x10, 0x58, 0x55, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x08, 0x33, 0x62, 0xF7, 0x00, 0x4A, 0x69, 0xE2, -0x40, 0x9A, 0x00, 0xEA, 0xD0, 0xF4, 0x44, 0x40, -0x1F, 0xF7, 0x00, 0x6B, 0x6C, 0xEA, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, 0x64, 0x9A, -0x34, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, -0x68, 0x9A, 0x2F, 0x10, 0x80, 0xF4, 0x44, 0x40, -0x1F, 0xF7, 0x00, 0x6B, 0x6C, 0xEA, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, 0x6C, 0x9A, -0x24, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, -0x70, 0x9A, 0x1F, 0x10, 0xC0, 0xF4, 0x48, 0x40, -0x1F, 0xF7, 0x00, 0x6B, 0x6C, 0xEA, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, 0x74, 0x9A, -0x14, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, -0x78, 0x9A, 0x0F, 0x10, 0x70, 0xF4, 0x48, 0x40, -0x1F, 0xF7, 0x00, 0x6B, 0x6C, 0xEA, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, 0x7C, 0x9A, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, -0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x6D, 0xE0, 0x41, 0xE0, 0x83, 0xF3, -0x94, 0xA0, 0xA3, 0xF3, 0x44, 0xA0, 0x8D, 0xEA, -0xFF, 0x6C, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0xEA, 0xF0, 0x29, 0xC2, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x23, 0xF4, 0x04, 0x6C, -0x01, 0x6D, 0x80, 0x18, 0x24, 0x39, 0x01, 0x6B, -0x6E, 0xEA, 0x05, 0x97, 0x01, 0x5A, 0x58, 0x67, -0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x24, 0x67, 0xC0, 0xF0, -0x84, 0xA2, 0xC3, 0xF3, 0x7C, 0xAA, 0x7F, 0x6A, -0x8C, 0xEA, 0x21, 0x22, 0x01, 0x4B, 0xE0, 0xF3, -0x08, 0x6A, 0x58, 0xEB, 0x12, 0xEC, 0x23, 0xEC, -0x04, 0xD4, 0x19, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x06, 0xF6, 0x9F, 0xA2, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF7, 0x04, 0x9A, 0x96, 0x34, 0xB0, 0x67, -0x80, 0x18, 0xAD, 0x15, 0x43, 0xE0, 0x23, 0xE8, -0x0A, 0x61, 0x04, 0x92, 0x03, 0xEA, 0x07, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, -0x0A, 0x6C, 0x40, 0xEA, 0xE7, 0x17, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x2A, 0xF1, 0x44, 0xA2, -0x02, 0x72, 0x58, 0x61, 0x30, 0xF0, 0x20, 0x68, -0x30, 0xF0, 0x20, 0x69, 0x24, 0xF1, 0x10, 0x48, -0x24, 0xF2, 0x1C, 0x49, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0x98, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, -0x83, 0xF6, 0x04, 0x6C, 0xAB, 0xED, 0x04, 0x48, -0x40, 0xEA, 0x2A, 0xE8, 0xF3, 0x61, 0x30, 0xF0, -0x20, 0x68, 0xA4, 0xF0, 0x00, 0x48, 0x30, 0xF0, -0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, 0xC0, 0x98, -0x01, 0x6D, 0x23, 0xF0, 0x10, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x48, -0xE4, 0xF0, 0x08, 0x4A, 0x4A, 0xE8, 0xEF, 0x61, -0x21, 0xF0, 0x04, 0x68, 0x01, 0x6D, 0x90, 0x67, -0xAB, 0xED, 0x80, 0x18, 0x24, 0x39, 0x30, 0xF0, -0x20, 0x6B, 0x04, 0xD2, 0x83, 0xF4, 0xB0, 0x9B, -0xC0, 0xF3, 0x44, 0x99, 0x90, 0x67, 0x03, 0x6E, -0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, 0xE4, 0xF0, -0x08, 0x48, 0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, -0x44, 0x99, 0xC0, 0x98, 0x01, 0x6D, 0x28, 0xF1, -0x10, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x04, 0x48, 0x24, 0xF1, 0x10, 0x4A, -0x4A, 0xE8, 0xEF, 0x61, 0xC0, 0xF3, 0x44, 0x99, -0x04, 0x96, 0x01, 0x6D, 0x21, 0xF0, 0x04, 0x6C, -0xAB, 0xED, 0x40, 0xEA, 0xC8, 0x6C, 0x00, 0x18, -0x49, 0xE0, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF7, 0x7C, 0x9B, 0x10, 0xF0, 0x24, 0x6A, -0x70, 0xF2, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x69, -0x40, 0xDB, 0x46, 0xF5, 0x18, 0x49, 0xC3, 0xF3, -0x4C, 0xA1, 0x6C, 0x22, 0x00, 0x18, 0x42, 0xE0, -0x01, 0x72, 0x68, 0x60, 0x80, 0x18, 0x5C, 0x18, -0xC3, 0xF3, 0x4C, 0xA1, 0x02, 0x72, 0x52, 0x61, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0x08, 0x6E, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, -0x40, 0xEA, 0x01, 0x6D, 0xAB, 0xED, 0x03, 0xF3, -0x08, 0x6C, 0x80, 0x18, 0x24, 0x39, 0x04, 0xD2, -0x00, 0x18, 0x8B, 0xDF, 0x02, 0x6C, 0x80, 0x18, -0x81, 0x25, 0x30, 0xF0, 0x20, 0x6C, 0x6E, 0xF6, -0x08, 0x4C, 0x80, 0x18, 0x84, 0x2F, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, -0x08, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xC4, 0xF2, 0xD8, 0x99, 0x01, 0x6D, 0x23, 0xF3, -0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x04, 0x96, 0x01, 0x6D, 0x03, 0xF3, -0x08, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, -0x0A, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xC4, 0xF2, 0xDC, 0x99, 0x01, 0x6D, 0x23, 0xF3, -0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x04, 0x96, 0x01, 0x6D, 0x03, 0xF3, -0x08, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, -0x08, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x00, 0x6B, 0xC3, 0xF3, -0x6C, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, -0x7C, 0x9B, 0x10, 0xF0, 0x24, 0x6A, 0x70, 0xF2, -0x06, 0x4A, 0x40, 0xDB, 0x09, 0x97, 0x08, 0x91, -0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x23, 0xF4, 0x04, 0x6C, -0x01, 0x6D, 0x80, 0x18, 0x24, 0x39, 0x21, 0x22, -0x00, 0x18, 0x2C, 0xDF, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF7, 0x68, 0x9A, 0xFF, 0x6C, 0x02, 0x6D, -0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, -0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, -0x54, 0x9A, 0x01, 0x6B, 0x6B, 0xEB, 0x30, 0xF0, -0x20, 0x6C, 0x6E, 0xF6, 0x08, 0x4C, 0x60, 0xC2, -0x00, 0x6D, 0x80, 0x18, 0xE4, 0x31, 0x30, 0xF0, -0x20, 0x6A, 0x20, 0xF5, 0x44, 0x9A, 0x01, 0x6C, -0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x20, 0xF5, 0x44, 0x9A, 0x00, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, -0x40, 0xEA, 0x01, 0x6C, 0x00, 0x6D, 0x00, 0x18, -0x62, 0xCC, 0x03, 0x72, 0x20, 0x60, 0x30, 0xF0, -0x20, 0x6C, 0x6E, 0xF6, 0x08, 0x4C, 0x01, 0x6D, -0x80, 0x18, 0xE4, 0x31, 0x14, 0x22, 0x00, 0x18, -0x4D, 0xC6, 0x01, 0x72, 0x06, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF0, 0x54, 0x9A, 0x3F, 0x6B, -0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, -0x68, 0x9A, 0xFD, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, -0x40, 0xC3, 0x01, 0x6A, 0x0B, 0x10, 0x00, 0x6C, -0xA4, 0x67, 0x00, 0x18, 0x62, 0xCC, 0x30, 0xF0, -0x20, 0x6A, 0x20, 0xF5, 0x44, 0x9A, 0x01, 0x6C, -0x40, 0xEA, 0x00, 0x6A, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF0, 0x44, 0x9A, -0x04, 0xF0, 0x68, 0x9B, 0x40, 0xAA, 0x60, 0xAB, +0x60, 0xC4, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, 0x4C, 0x9A, +0xC2, 0xF7, 0x70, 0x9B, 0x40, 0xAA, 0x60, 0xAB, 0x6E, 0xEA, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, 0x01, 0x5A, 0x58, 0x67, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, 0x7C, 0x9B, -0x10, 0xF0, 0x24, 0x6A, 0x70, 0xF4, 0x09, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, 0x64, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0x29, 0xF4, 0x11, 0x4A, 0x40, 0xDB, 0x01, 0x4A, 0x40, 0xDB, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, 0x7C, 0x9B, -0x10, 0xF0, 0x24, 0x6A, 0x90, 0xF4, 0x01, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, 0x64, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0x49, 0xF4, 0x09, 0x4A, 0x40, 0xDB, 0x01, 0x4A, 0x40, 0xDB, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, 0x7C, 0x9B, -0x10, 0xF0, 0x24, 0x6A, 0x90, 0xF4, 0x19, 0x4A, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF0, -0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, -0x54, 0x9A, 0x80, 0x9B, 0xA4, 0x67, 0x4C, 0xED, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, 0x64, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0x69, 0xF4, 0x01, 0x4A, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF7, +0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, +0x44, 0x9A, 0x80, 0x9B, 0xA4, 0x67, 0x4C, 0xED, 0x4E, 0xED, 0x02, 0x25, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x04, 0xF0, 0x4C, 0x9A, 0x01, 0x6B, 0x40, 0x9A, +0xC2, 0xF7, 0x58, 0x9A, 0x01, 0x6B, 0x40, 0x9A, 0x6C, 0xEA, 0x60, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0x04, 0xF0, 0x50, 0x9A, 0x00, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0x04, 0xF0, 0x54, 0x9A, 0xE0, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF0, 0x58, 0x9A, -0xC0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF0, -0x5C, 0x9A, 0xA0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0x24, 0xF0, 0x40, 0x9A, 0x80, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0x24, 0xF0, 0x44, 0x9A, 0x40, 0x9A, -0x41, 0x22, 0x30, 0xF0, 0x20, 0x69, 0x24, 0xF0, -0x28, 0x99, 0x60, 0xD9, 0x30, 0xF0, 0x20, 0x6B, -0x24, 0xF0, 0x6C, 0x9B, 0x00, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0x24, 0xF0, 0x70, 0x9B, 0xE0, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0x74, 0x9B, -0xC0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, -0x78, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF2, 0x78, 0x9B, 0x80, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF2, 0x74, 0x9B, 0x30, 0xF0, -0x20, 0x6C, 0x43, 0xF4, 0x9C, 0x9C, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0x7C, 0x9A, +0xC2, 0xF7, 0x5C, 0x9A, 0x00, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF7, 0x40, 0x9A, 0xE0, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF7, 0x44, 0x9A, +0xC0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF7, +0x48, 0x9A, 0xA0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF7, 0x4C, 0x9A, 0x80, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF7, 0x50, 0x9A, 0x40, 0x9A, +0x41, 0x22, 0x30, 0xF0, 0x20, 0x69, 0xE2, 0xF7, +0x34, 0x99, 0x60, 0xD9, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF7, 0x78, 0x9B, 0x00, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF7, 0x7C, 0x9B, 0xE0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, 0x60, 0x9B, +0xC0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, +0x64, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF7, 0x7C, 0x9B, 0x80, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF0, 0x68, 0x9B, 0x30, 0xF0, +0x20, 0x6C, 0xE2, 0xF4, 0x84, 0x9C, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, 0x68, 0x9A, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x5C, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x7D, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x77, 0xF0, 0x24, 0x6C, 0xC0, 0xF1, 0x04, 0x4C, 0xAE, 0xB8, 0x00, 0x65, 0xA0, 0xDC, 0x9A, 0xB8, 0x00, 0x65, 0xBB, 0xB8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF7, 0x7C, 0x9B, 0x10, 0xF0, 0x24, 0x6A, -0x90, 0xF4, 0x1A, 0x4A, 0x40, 0xDB, 0x07, 0x97, +0xC2, 0xF2, 0x64, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0x69, 0xF4, 0x02, 0x4A, 0x40, 0xDB, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, -0xC2, 0xF7, 0x7C, 0x9B, 0x10, 0xF0, 0x24, 0x6A, -0xD0, 0xF5, 0x09, 0x4A, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0xA6, 0xF5, 0x74, 0x9A, 0x63, 0x23, +0xC2, 0xF2, 0x64, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0x89, 0xF5, 0x11, 0x4A, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF5, 0x74, 0x9A, 0x63, 0x23, 0x01, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, -0x34, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF5, +0xED, 0xCD, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF5, 0x54, 0x9A, 0x02, 0x6B, 0x6C, 0xEA, 0x02, 0x22, -0x00, 0x18, 0xA0, 0xD9, 0x30, 0xF0, 0x20, 0x6A, -0xA6, 0xF5, 0x54, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x18, 0x87, 0xD9, 0x30, 0xF0, -0x20, 0x6A, 0xA6, 0xF5, 0x54, 0x9A, 0x08, 0x6B, -0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x83, 0xD9, -0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF5, 0x54, 0x9A, +0x00, 0x18, 0xEE, 0xCD, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF5, 0x54, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0xEF, 0xCD, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF5, 0x54, 0x9A, 0x08, 0x6B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0xF0, 0xCD, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF5, 0x54, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, -0x35, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF5, +0xF1, 0xCD, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF5, 0x54, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x02, 0x22, -0x00, 0x18, 0x36, 0xD8, 0x30, 0xF0, 0x20, 0x6A, -0xA6, 0xF5, 0x54, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x18, 0x37, 0xD8, 0x30, 0xF0, -0x20, 0x6B, 0xA6, 0xF5, 0x74, 0x9B, 0xFF, 0x6A, +0x00, 0x18, 0xF2, 0xCD, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF5, 0x54, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0xF3, 0xCD, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF5, 0x74, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, -0x77, 0xD9, 0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF5, +0x27, 0xCE, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF5, 0x74, 0x9B, 0x04, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x18, 0x38, 0xD8, 0x30, 0xF0, -0x20, 0x6B, 0xA6, 0xF5, 0x74, 0x9B, 0x08, 0xF0, +0x02, 0x22, 0x00, 0x18, 0xF4, 0xCD, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF5, 0x74, 0x9B, 0x08, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, -0x39, 0xD8, 0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF5, +0xF5, 0xCD, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF5, 0x74, 0x9B, 0x10, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x18, 0x3A, 0xD8, 0x30, 0xF0, -0x20, 0x6A, 0xA6, 0xF5, 0x78, 0x9A, 0x3C, 0x23, -0x01, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, -0x3D, 0xD9, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF5, -0x58, 0x9A, 0x02, 0x6B, 0x6C, 0xEA, 0x02, 0x22, -0x00, 0x18, 0x3B, 0xD8, 0x30, 0xF0, 0x20, 0x6B, -0xA6, 0xF5, 0x78, 0x9B, 0x04, 0xF0, 0x00, 0x6A, -0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, -0x19, 0xD9, 0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF5, -0x78, 0x9B, 0x08, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, -0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, 0xFA, 0xD8, +0x02, 0x22, 0x00, 0x18, 0xF6, 0xCD, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF5, 0x78, 0x9A, 0x14, 0x23, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, 0x5C, 0x9A, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0xFA, 0xCD, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF3, 0x48, 0x9A, 0xA6, 0xF5, 0x78, 0x9B, -0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x3D, 0xD8, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF2, 0x5C, 0x9A, 0xA6, 0xF5, 0x78, 0x9B, -0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0xF6, 0xD8, -0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF5, 0x7C, 0x9A, +0x22, 0xF3, 0x4C, 0x9A, 0xC3, 0xF5, 0x78, 0x9B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x23, 0xCE, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF5, 0x7C, 0x9A, 0x4C, 0x23, 0x01, 0x6A, 0x6C, 0xEA, 0x03, 0x22, -0x01, 0x6C, 0x00, 0x18, 0x19, 0xD9, 0x30, 0xF0, -0x20, 0x6A, 0xA6, 0xF5, 0x5C, 0x9A, 0x02, 0x6B, +0x01, 0x6C, 0x00, 0x18, 0xF7, 0xCD, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF5, 0x5C, 0x9A, 0x02, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, -0xFA, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF5, +0xF8, 0xCD, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF5, 0x5C, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, 0x03, 0x22, -0x02, 0x6C, 0x00, 0x18, 0x19, 0xD9, 0x30, 0xF0, -0x20, 0x6A, 0xA6, 0xF5, 0x5C, 0x9A, 0x08, 0x6B, +0x02, 0x6C, 0x00, 0x18, 0xF7, 0xCD, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF5, 0x5C, 0x9A, 0x08, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, -0xFA, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF5, +0xF8, 0xCD, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF5, 0x5C, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, 0x03, 0x22, -0x03, 0x6C, 0x00, 0x18, 0x19, 0xD9, 0x30, 0xF0, -0x20, 0x6A, 0xA6, 0xF5, 0x5C, 0x9A, 0x20, 0x6B, +0x03, 0x6C, 0x00, 0x18, 0xF7, 0xCD, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF5, 0x5C, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, -0xFA, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF5, +0xF8, 0xCD, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF5, 0x5C, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, 0x03, 0x22, -0x04, 0x6C, 0x00, 0x18, 0x19, 0xD9, 0x30, 0xF0, -0x20, 0x6A, 0xA6, 0xF5, 0x5C, 0x9A, 0x80, 0x6B, +0x04, 0x6C, 0x00, 0x18, 0xF7, 0xCD, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF5, 0x5C, 0x9A, 0x80, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, -0xFA, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, +0xF8, 0xCD, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, 0x00, 0x6B, 0x77, 0xDA, 0x78, 0xDA, -0x79, 0xDA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, -0x7C, 0x9B, 0x10, 0xF0, 0x24, 0x6A, 0xD0, 0xF5, -0x0A, 0x4A, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, +0x79, 0xDA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, +0x64, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0x89, 0xF5, +0x12, 0x4A, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, 0x7C, 0x9B, -0x10, 0xF0, 0x24, 0x6A, 0xF0, 0xF7, 0x1D, 0x4A, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF5, -0x64, 0x9A, 0xC0, 0xF0, 0x13, 0x23, 0x02, 0xF0, -0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, -0x00, 0x18, 0xAB, 0xD9, 0x30, 0xF0, 0x20, 0x6B, -0xA6, 0xF5, 0x64, 0x9B, 0x04, 0xF0, 0x00, 0x6A, -0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, -0xAB, 0xD9, 0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF5, -0x64, 0x9B, 0x08, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, -0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, 0xAB, 0xD9, -0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF5, 0x64, 0x9B, -0x10, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, -0x03, 0x6C, 0x00, 0x18, 0xAB, 0xD9, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, -0x58, 0x9A, 0xA6, 0xF5, 0x64, 0x9B, 0x6C, 0xEA, -0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, 0xAB, 0xD9, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF1, 0x40, 0x9A, 0xA6, 0xF5, 0x64, 0x9B, -0x6C, 0xEA, 0x03, 0x22, 0x05, 0x6C, 0x00, 0x18, -0xAB, 0xD9, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF1, 0x44, 0x9A, 0xA6, 0xF5, -0x64, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x06, 0x6C, -0x00, 0x18, 0xAB, 0xD9, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x48, 0x9A, -0xA6, 0xF5, 0x64, 0x9B, 0x6C, 0xEA, 0x03, 0x22, -0x07, 0x6C, 0x00, 0x18, 0xAB, 0xD9, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, -0x5C, 0x9A, 0xA6, 0xF5, 0x64, 0x9B, 0x6C, 0xEA, -0x03, 0x22, 0x08, 0x6C, 0x00, 0x18, 0xAB, 0xD9, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF1, 0x40, 0x9A, 0xA6, 0xF5, 0x64, 0x9B, -0x6C, 0xEA, 0x03, 0x22, 0x09, 0x6C, 0x00, 0x18, -0xAB, 0xD9, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF6, 0x40, 0x9A, 0xA6, 0xF5, -0x64, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x0A, 0x6C, -0x00, 0x18, 0xAB, 0xD9, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0x40, 0x9A, -0xA6, 0xF5, 0x64, 0x9B, 0x6C, 0xEA, 0x03, 0x22, -0x0B, 0x6C, 0x00, 0x18, 0xAB, 0xD9, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, -0x48, 0x9A, 0xA6, 0xF5, 0x64, 0x9B, 0x6C, 0xEA, -0x03, 0x22, 0x0C, 0x6C, 0x00, 0x18, 0xAB, 0xD9, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF2, 0x5C, 0x9A, 0xA6, 0xF5, 0x64, 0x9B, -0x6C, 0xEA, 0x03, 0x22, 0x0D, 0x6C, 0x00, 0x18, -0xAB, 0xD9, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF3, 0x40, 0x9A, 0xA6, 0xF5, -0x64, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x0E, 0x6C, -0x00, 0x18, 0xAB, 0xD9, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0x44, 0x9A, -0xA6, 0xF5, 0x64, 0x9B, 0x6C, 0xEA, 0x03, 0x22, -0x0F, 0x6C, 0x00, 0x18, 0xAB, 0xD9, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x00, 0x6B, -0x73, 0xDA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, -0x7C, 0x9B, 0x10, 0xF0, 0x24, 0x6A, 0xF0, 0xF7, -0x1E, 0x4A, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, 0x7C, 0x9B, -0x10, 0xF0, 0x24, 0x6A, 0xD1, 0xF1, 0x0D, 0x4A, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x66, 0xF5, -0x78, 0x9A, 0x35, 0x23, 0x08, 0x6A, 0x6C, 0xEA, -0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, 0x80, 0xD8, -0x30, 0xF0, 0x20, 0x6A, 0x66, 0xF5, 0x58, 0x9A, -0x10, 0x6B, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, -0x09, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x66, 0xF5, -0x58, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x02, 0x22, -0x00, 0x18, 0x05, 0xDA, 0x30, 0xF0, 0x20, 0x6A, -0x66, 0xF5, 0x58, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x18, 0x27, 0xD8, 0x30, 0xF0, -0x20, 0x6B, 0x66, 0xF5, 0x78, 0x9B, 0xFF, 0x6A, -0x01, 0x4A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, -0x01, 0xDA, 0x30, 0xF0, 0x20, 0x6B, 0x66, 0xF5, -0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, -0x02, 0x22, 0x00, 0x18, 0xFD, 0xD9, 0x30, 0xF0, -0x20, 0x6A, 0x66, 0xF5, 0x7C, 0x9A, 0x80, 0xF0, -0x07, 0x23, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, -0x40, 0x9A, 0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, -0x00, 0x18, 0xE4, 0xD8, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF6, 0x40, 0x9A, -0x66, 0xF5, 0x7C, 0x9B, 0x6C, 0xEA, 0x03, 0x22, -0x01, 0x6C, 0x00, 0x18, 0xE4, 0xD8, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, -0x40, 0x9A, 0x66, 0xF5, 0x7C, 0x9B, 0x6C, 0xEA, -0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, 0xE4, 0xD8, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF3, 0x48, 0x9A, 0x66, 0xF5, 0x7C, 0x9B, -0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, -0xE4, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF2, 0x5C, 0x9A, 0x66, 0xF5, -0x7C, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, -0x00, 0x18, 0xE4, 0xD8, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x40, 0x9A, -0x66, 0xF5, 0x7C, 0x9B, 0x6C, 0xEA, 0x03, 0x22, -0x00, 0x6C, 0x00, 0x18, 0x4A, 0xD8, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, -0x44, 0x9A, 0x66, 0xF5, 0x7C, 0x9B, 0x6C, 0xEA, -0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, 0xBD, 0xD8, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF1, 0x48, 0x9A, 0x66, 0xF5, 0x7C, 0x9B, -0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, -0xA0, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF4, 0x5C, 0x9A, 0x66, 0xF5, -0x7C, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, -0x00, 0x18, 0x89, 0xD8, 0x30, 0xF0, 0x20, 0x6B, -0x66, 0xF5, 0x7C, 0x9B, 0x08, 0xF0, 0x00, 0x6A, -0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0xF9, 0xD9, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF0, 0x58, 0x9A, 0x66, 0xF5, 0x7C, 0x9B, -0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x29, 0xD8, -0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF5, 0x60, 0x9A, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, 0x64, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0x69, 0xF7, 0x15, 0x4A, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF5, +0x64, 0x9A, 0x15, 0x23, 0xFF, 0x6A, 0x01, 0x4A, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x5C, 0xCE, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0x00, 0x6B, 0x73, 0xDA, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF2, 0x64, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0x69, 0xF7, 0x16, 0x4A, 0x40, 0xDB, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, 0x64, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0xC9, 0xF7, 0x05, 0x4A, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF5, +0x78, 0x9A, 0x2B, 0x23, 0x10, 0x6A, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0x58, 0xCE, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF5, 0x58, 0x9A, 0x20, 0x6B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x54, 0xCE, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF5, 0x58, 0x9A, +0x40, 0x6B, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0xDF, 0xCD, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, +0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0x50, 0xCE, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF5, 0x78, 0x9B, 0x00, 0xF2, +0x00, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0x4C, 0xCE, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF5, +0x7C, 0x9A, 0x06, 0x23, 0x08, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x48, 0xCE, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF5, 0x60, 0x9A, 0x32, 0x23, 0x01, 0x6A, 0x6C, 0xEA, 0x03, 0x22, -0x00, 0x6C, 0x00, 0x18, 0x3C, 0xDA, 0x30, 0xF0, -0x20, 0x6B, 0x86, 0xF5, 0x60, 0x9B, 0xFF, 0x6A, +0x00, 0x6C, 0x00, 0x18, 0x3F, 0xCE, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF5, 0x60, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, -0x00, 0x18, 0x3C, 0xDA, 0x30, 0xF0, 0x20, 0x6B, -0x86, 0xF5, 0x60, 0x9B, 0x00, 0xF2, 0x00, 0x6A, +0x00, 0x18, 0x3F, 0xCE, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF5, 0x60, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, -0x3C, 0xDA, 0x30, 0xF0, 0x20, 0x6B, 0x86, 0xF5, +0x3F, 0xCE, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, 0x60, 0x9B, 0x00, 0xF4, 0x00, 0x6A, 0x6C, 0xEA, -0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, 0x3C, 0xDA, -0x30, 0xF0, 0x20, 0x6B, 0x86, 0xF5, 0x60, 0x9B, +0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, 0x3F, 0xCE, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, 0x60, 0x9B, 0x01, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, -0x04, 0x6C, 0x00, 0x18, 0x3C, 0xDA, 0x30, 0xF0, -0x20, 0x6A, 0x86, 0xF5, 0x64, 0x9A, 0x6D, 0x23, +0x04, 0x6C, 0x00, 0x18, 0x3F, 0xCE, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF5, 0x64, 0x9A, 0x32, 0x23, 0x01, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, -0x00, 0x18, 0xEC, 0xD9, 0x30, 0xF0, 0x20, 0x6B, -0x86, 0xF5, 0x64, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, +0x00, 0x18, 0xE3, 0xCD, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF5, 0x64, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, -0xEC, 0xD9, 0x30, 0xF0, 0x20, 0x6B, 0x86, 0xF5, +0xE3, 0xCD, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, 0x64, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, -0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, 0xEC, 0xD9, -0x30, 0xF0, 0x20, 0x6B, 0x86, 0xF5, 0x64, 0x9B, +0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, 0xE3, 0xCD, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, 0x64, 0x9B, 0x00, 0xF4, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, -0x03, 0x6C, 0x00, 0x18, 0xEC, 0xD9, 0x30, 0xF0, -0x20, 0x6B, 0x86, 0xF5, 0x64, 0x9B, 0x01, 0xF0, +0x03, 0x6C, 0x00, 0x18, 0xE3, 0xCD, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF5, 0x64, 0x9B, 0x01, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, -0x00, 0x18, 0xEC, 0xD9, 0x30, 0xF0, 0x20, 0x6B, -0x86, 0xF5, 0x64, 0x9B, 0x10, 0xF0, 0x00, 0x6A, -0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, -0xF3, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF3, 0x50, 0x9A, 0x86, 0xF5, -0x64, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, -0x00, 0x18, 0xF3, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, 0x54, 0x9A, -0x86, 0xF5, 0x64, 0x9B, 0x6C, 0xEA, 0x03, 0x22, -0x02, 0x6C, 0x00, 0x18, 0xF3, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, -0x54, 0x9A, 0x86, 0xF5, 0x64, 0x9B, 0x6C, 0xEA, -0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, 0xF3, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF5, 0x44, 0x9A, -0x00, 0x52, 0x03, 0x60, 0x04, 0x6C, 0x00, 0x18, -0xF3, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF5, -0x68, 0x9A, 0xC0, 0xF0, 0x18, 0x23, 0x01, 0x6A, -0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, -0x4A, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF5, -0x48, 0x9A, 0x02, 0x6B, 0x6C, 0xEA, 0x03, 0x22, -0x01, 0x6C, 0x00, 0x18, 0xBD, 0xD8, 0x30, 0xF0, -0x20, 0x6A, 0x86, 0xF5, 0x48, 0x9A, 0x04, 0x6B, -0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, -0xA0, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF5, -0x48, 0x9A, 0x08, 0x6B, 0x6C, 0xEA, 0x03, 0x22, -0x01, 0x6C, 0x00, 0x18, 0x89, 0xD8, 0x30, 0xF0, -0x20, 0x6A, 0x86, 0xF5, 0x48, 0x9A, 0x10, 0x6B, -0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, -0x4A, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF5, -0x48, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x03, 0x22, -0x02, 0x6C, 0x00, 0x18, 0xBD, 0xD8, 0x30, 0xF0, -0x20, 0x6A, 0x86, 0xF5, 0x48, 0x9A, 0x40, 0x6B, -0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, -0xA0, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF5, -0x48, 0x9A, 0x80, 0x6B, 0x6C, 0xEA, 0x03, 0x22, -0x02, 0x6C, 0x00, 0x18, 0x89, 0xD8, 0x30, 0xF0, -0x20, 0x6B, 0x86, 0xF5, 0x68, 0x9B, 0xFF, 0x6A, -0x01, 0x4A, 0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, -0x00, 0x18, 0x4A, 0xD8, 0x30, 0xF0, 0x20, 0x6B, -0x86, 0xF5, 0x68, 0x9B, 0x00, 0xF2, 0x00, 0x6A, -0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, -0xBD, 0xD8, 0x30, 0xF0, 0x20, 0x6B, 0x86, 0xF5, -0x68, 0x9B, 0x00, 0xF4, 0x00, 0x6A, 0x6C, 0xEA, -0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, 0xA0, 0xD8, -0x30, 0xF0, 0x20, 0x6B, 0x86, 0xF5, 0x68, 0x9B, -0x01, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, -0x03, 0x6C, 0x00, 0x18, 0x89, 0xD8, 0x30, 0xF0, -0x20, 0x6B, 0x86, 0xF5, 0x68, 0x9B, 0x02, 0xF0, -0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, -0x00, 0x18, 0x4A, 0xD8, 0x30, 0xF0, 0x20, 0x6B, -0x86, 0xF5, 0x68, 0x9B, 0x04, 0xF0, 0x00, 0x6A, -0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, -0xBD, 0xD8, 0x30, 0xF0, 0x20, 0x6B, 0x86, 0xF5, -0x68, 0x9B, 0x08, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, -0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, 0xA0, 0xD8, -0x30, 0xF0, 0x20, 0x6B, 0x86, 0xF5, 0x68, 0x9B, -0x10, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, -0x04, 0x6C, 0x00, 0x18, 0x89, 0xD8, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, -0x58, 0x9A, 0x86, 0xF5, 0x68, 0x9B, 0x6C, 0xEA, -0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, 0x80, 0xD8, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF1, 0x40, 0x9A, 0x86, 0xF5, 0x68, 0x9B, -0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, -0x80, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF1, 0x44, 0x9A, 0x86, 0xF5, -0x68, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, -0x00, 0x18, 0x80, 0xD8, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x48, 0x9A, -0x86, 0xF5, 0x68, 0x9B, 0x6C, 0xEA, 0x03, 0x22, -0x04, 0x6C, 0x00, 0x18, 0x80, 0xD8, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x00, 0x6B, -0x68, 0xDA, 0x69, 0xDA, 0x6A, 0xDA, 0x6B, 0xDA, -0x6C, 0xDA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, -0x7C, 0x9B, 0x10, 0xF0, 0x24, 0x6A, 0xD1, 0xF1, -0x0E, 0x4A, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, -0xAC, 0xEA, 0x0B, 0x2A, 0x30, 0xF0, 0x20, 0x6B, -0x24, 0xF0, 0xB4, 0x9B, 0x30, 0xF0, 0x20, 0x6E, -0x24, 0xF0, 0xD8, 0x9E, 0x60, 0x9D, 0xCC, 0xEB, -0x0C, 0x10, 0x01, 0x72, 0x0B, 0x61, 0x30, 0xF0, -0x20, 0x6B, 0x24, 0xF0, 0xB4, 0x9B, 0x30, 0xF0, -0x20, 0x6E, 0x03, 0xF3, 0xC8, 0x9E, 0x60, 0x9D, -0xCD, 0xEB, 0x60, 0xDD, 0x05, 0x5C, 0x60, 0xF1, -0x1A, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x88, 0x34, -0xC2, 0xF7, 0x08, 0x4B, 0x8D, 0xE3, 0x60, 0x9B, -0x00, 0xEB, 0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x24, 0xF0, 0x74, 0x9A, 0x7F, 0x6A, 0x80, 0xA3, -0x12, 0x10, 0x01, 0x72, 0x13, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x24, 0xF0, 0x74, 0x9A, 0xFF, 0x6C, -0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, -0x8C, 0xEA, 0x40, 0xC3, 0x40, 0xA3, 0x80, 0x4D, -0xC0, 0x4D, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, -0x40, 0xC3, 0x20, 0xE8, 0x02, 0x72, 0x05, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, 0x74, 0x9A, -0x5B, 0x10, 0x03, 0x72, 0x40, 0xF1, 0x0B, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, 0x74, 0x9A, -0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, -0xE9, 0x17, 0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x24, 0xF0, 0x7C, 0x9A, 0xFB, 0x6A, 0x80, 0xA3, -0xE2, 0x17, 0x01, 0x72, 0x19, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x24, 0xF0, 0x94, 0x9A, 0xFF, 0x6A, -0x40, 0x6D, 0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, -0x4C, 0xEB, 0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6B, -0x24, 0xF0, 0x9C, 0x9B, 0x01, 0x6D, 0x60, 0xA4, -0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, -0x60, 0xA4, 0x04, 0x6D, 0x4C, 0xEB, 0x48, 0x10, -0x02, 0x72, 0x0F, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x24, 0xF0, 0x74, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, -0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0x24, 0xF0, 0x7C, 0x9A, 0xFE, 0x6A, 0x80, 0xA3, -0xB6, 0x17, 0x03, 0x72, 0x00, 0xF1, 0x0B, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, 0x94, 0x9A, -0xFF, 0x6B, 0x40, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, -0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x30, 0xF0, -0x20, 0x6A, 0x24, 0xF0, 0x9C, 0x9A, 0x01, 0x6D, -0x40, 0xA4, 0x6C, 0xEA, 0x4B, 0x10, 0x07, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, 0x7C, 0x9A, -0x80, 0xA3, 0xBF, 0x6A, 0x98, 0x17, 0x01, 0x72, -0x1B, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, -0x94, 0x9A, 0xFF, 0x6A, 0x40, 0x6D, 0x60, 0xA4, -0x10, 0x6E, 0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, -0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0x24, 0xF0, -0x9C, 0x9B, 0x60, 0xA4, 0x4C, 0xEB, 0xCD, 0xEB, -0x4C, 0xEB, 0x60, 0xC4, 0x60, 0xA4, 0x4C, 0xEB, -0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x20, 0xE8, -0x02, 0x72, 0x0F, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x24, 0xF0, 0x74, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, -0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0x24, 0xF0, 0x7C, 0x9A, 0xEF, 0x6A, 0x80, 0xA3, -0x6A, 0x17, 0x03, 0x72, 0xA0, 0xF0, 0x1F, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, 0x94, 0x9A, -0xFF, 0x6B, 0x40, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, -0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x30, 0xF0, -0x20, 0x6A, 0x24, 0xF0, 0x9C, 0x9A, 0x10, 0x6D, -0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, -0x40, 0xC4, 0x20, 0xE8, 0x08, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x24, 0xF0, 0x7C, 0x9A, 0xFF, 0xF3, -0x1F, 0x6A, 0x80, 0xAB, 0x83, 0x10, 0x01, 0x72, -0x1D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, -0x74, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, +0x00, 0x18, 0xE3, 0xCD, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF5, 0x18, 0x4A, 0x00, 0x6B, 0x68, 0xDA, +0x69, 0xDA, 0x6A, 0xDA, 0x6B, 0xDA, 0x6C, 0xDA, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, 0x64, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0xC9, 0xF7, 0x06, 0x4A, +0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, 0xAC, 0x9B, +0x00, 0x6B, 0xFF, 0x6A, 0x60, 0xC5, 0x30, 0xF0, +0x20, 0x6B, 0x8C, 0xEA, 0x03, 0xF0, 0x90, 0x9B, +0x00, 0xF3, 0x00, 0x6E, 0x30, 0xF0, 0x20, 0x6F, +0x60, 0x9C, 0x42, 0xF5, 0xF4, 0x9F, 0xCD, 0xEB, +0x60, 0xDC, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF0, +0x94, 0x9C, 0x01, 0x6B, 0x60, 0xC4, 0x30, 0xF0, +0x20, 0x6C, 0x03, 0xF0, 0x98, 0x9C, 0x60, 0xC4, +0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF0, 0x9C, 0x9C, +0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF0, +0xC0, 0x9C, 0x80, 0x9E, 0xEC, 0xEC, 0x80, 0xDE, +0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF0, 0x84, 0x9C, +0x40, 0xC4, 0x60, 0xC5, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF0, 0x48, 0x9A, 0x60, 0xA2, 0x01, 0x6A, +0x6C, 0xEA, 0xF8, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF0, 0x44, 0x9A, 0xFF, 0x6B, 0x40, 0xA2, +0x6C, 0xEA, 0x20, 0xE8, 0xFF, 0x63, 0x01, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, 0x6C, 0x9B, +0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x00, 0x6D, +0xA0, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, +0xF0, 0x9B, 0x00, 0xF3, 0x01, 0x68, 0x0B, 0xE8, +0x60, 0x9F, 0x0C, 0xEB, 0x60, 0xDF, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF0, 0x74, 0x9B, 0x01, 0x6F, +0xE0, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, +0x7C, 0x9B, 0xA0, 0xC3, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF0, 0x64, 0x9B, 0x80, 0xC3, 0x00, 0x6B, +0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0xA0, 0xA6, +0x23, 0xF0, 0x84, 0x9C, 0x01, 0x4B, 0x01, 0x4E, +0xA0, 0xC4, 0xFF, 0x6C, 0x8C, 0xEB, 0x43, 0xEB, +0xF4, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, +0x4C, 0x9A, 0x01, 0x6B, 0x60, 0xC2, 0x01, 0x90, +0x01, 0x63, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x54, 0x9A, +0x00, 0x6D, 0x05, 0x6C, 0xC5, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x48, 0x9A, +0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, 0xF8, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x44, 0x9A, +0x05, 0x97, 0xFF, 0x6B, 0x40, 0xA2, 0x6C, 0xEA, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x5D, 0x67, 0x90, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x54, 0x9A, 0x05, 0x6C, 0x01, 0x6D, +0x04, 0x06, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF0, 0x48, 0x9A, 0x60, 0xA2, 0x01, 0x6A, +0x6C, 0xEA, 0xF8, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF4, 0x48, 0x9A, 0x40, 0xEA, 0x07, 0x97, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x54, 0x9A, +0x00, 0x6D, 0x06, 0x6C, 0xC5, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x48, 0x9A, +0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, 0xF8, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x48, 0x9A, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x54, 0x9A, 0x00, 0x6D, 0x04, 0x6C, +0xC5, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF0, 0x48, 0x9A, 0x60, 0xA2, 0x01, 0x6A, +0x6C, 0xEA, 0xF8, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF4, 0x48, 0x9A, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF0, 0x8C, 0x9A, 0x00, 0x6A, 0x00, 0xF3, +0x00, 0x6D, 0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF0, 0x70, 0x9A, 0x30, 0xF0, 0x20, 0x6E, +0x42, 0xF5, 0xD4, 0x9E, 0x40, 0x9B, 0xAD, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, +0x74, 0x9B, 0x01, 0x6A, 0x03, 0x6D, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, 0x78, 0x9B, +0xA0, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, +0x7C, 0x9B, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF0, 0xA0, 0x9B, 0x60, 0x9D, 0xCC, 0xEB, +0x60, 0xDD, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, +0x64, 0x9B, 0x61, 0x6D, 0xAB, 0xED, 0xA0, 0xC3, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, +0x48, 0x9A, 0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0xF8, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, +0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF6, +0x84, 0x9A, 0xA0, 0xA3, 0xA1, 0xC4, 0xA0, 0xA3, +0x60, 0xF6, 0x84, 0x9A, 0xA2, 0xC4, 0x60, 0xA3, +0x60, 0xF6, 0x44, 0x9A, 0x63, 0xC2, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF3, 0x40, 0x9A, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x54, 0x9A, 0x00, 0x6D, +0x60, 0x6C, 0xC5, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF0, 0x48, 0x9A, 0x60, 0xA2, +0x01, 0x6A, 0x6C, 0xEA, 0xF8, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x48, 0x9A, 0x40, 0xEA, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF3, 0x40, 0x9A, 0x04, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, +0xAC, 0x9A, 0x00, 0x6A, 0x00, 0xF3, 0x01, 0x6C, +0x40, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, +0x70, 0x9A, 0x8B, 0xEC, 0x01, 0x6E, 0x40, 0x9B, +0x02, 0x37, 0x8C, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF0, 0x54, 0x9A, 0x03, 0x6B, +0xE2, 0x34, 0xC0, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF0, 0x5C, 0x9A, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF0, 0x44, 0x9A, 0x52, 0x6B, +0x60, 0xC2, 0xFF, 0x6B, 0x6C, 0xEC, 0x6C, 0xEF, +0x6C, 0xE8, 0x80, 0xC2, 0xE0, 0xC2, 0x00, 0xC2, +0xC0, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, +0x48, 0x9A, 0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0xF8, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x48, 0x9A, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, +0x01, 0x6A, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF3, 0x40, 0x9A, 0x04, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, +0xAC, 0x9A, 0x00, 0x6A, 0x00, 0xF3, 0x01, 0x6C, +0x40, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, +0x70, 0x9A, 0x8B, 0xEC, 0x01, 0x6E, 0x40, 0x9B, +0x02, 0x37, 0x8C, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF0, 0x54, 0x9A, 0x03, 0x6B, +0xE2, 0x34, 0xC0, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF0, 0x5C, 0x9A, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF0, 0x44, 0x9A, 0x20, 0x6B, +0x60, 0xC2, 0xFF, 0x6B, 0x6C, 0xEC, 0x6C, 0xEF, +0x6C, 0xE8, 0x80, 0xC2, 0xE0, 0xC2, 0x00, 0xC2, +0xC0, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, +0x48, 0x9A, 0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0xF8, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x48, 0x9A, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, +0x01, 0x6A, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, 0x40, 0x9A, +0x09, 0xD5, 0x04, 0x67, 0x26, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, 0x4C, 0x9A, +0x00, 0x6B, 0x00, 0xF3, 0x01, 0x6C, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, 0x70, 0x9A, +0x8B, 0xEC, 0x40, 0x9B, 0x8C, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, 0x54, 0x9A, +0x01, 0x6B, 0xFF, 0x6C, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF0, 0x5C, 0x9A, 0x03, 0x6B, +0x60, 0xC2, 0x02, 0x6B, 0x00, 0xF6, 0x00, 0x32, +0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, +0x60, 0x9B, 0x0C, 0xEB, 0x62, 0x33, 0x62, 0x33, +0x8C, 0xEB, 0x60, 0x33, 0x6D, 0xEA, 0x1F, 0xF7, +0x00, 0x6B, 0x0C, 0xEB, 0x60, 0x33, 0x6D, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0x64, 0x9B, +0x00, 0x6C, 0x40, 0xDB, 0x71, 0x67, 0xA2, 0xA3, +0x41, 0xA3, 0x04, 0x4C, 0xA0, 0x35, 0xA0, 0x35, +0x40, 0x32, 0xAD, 0xEA, 0xA0, 0xA3, 0x0C, 0x74, +0xAD, 0xEA, 0xA3, 0xA3, 0x04, 0x4B, 0x00, 0xF6, +0xA0, 0x35, 0xAD, 0xEA, 0x30, 0xF0, 0x20, 0x6D, +0x23, 0xF0, 0xA4, 0x9D, 0x40, 0xDD, 0xEB, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, 0x4C, 0x9A, +0x01, 0x6B, 0x60, 0xC2, 0x0C, 0x6A, 0x08, 0x10, +0x4D, 0xE1, 0x80, 0x9B, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF0, 0x64, 0x9B, 0x04, 0x4A, 0x80, 0xDB, +0x09, 0x93, 0x63, 0xEA, 0xF5, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF0, 0x48, 0x9A, 0x60, 0xA2, +0x01, 0x6A, 0x6C, 0xEA, 0xF8, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x48, 0x9A, 0x40, 0xEA, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x01, 0x6A, +0x04, 0x63, 0x00, 0xEF, 0xFF, 0x63, 0x01, 0xD1, +0x00, 0xD0, 0x00, 0x6B, 0x04, 0xD6, 0x63, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, 0x4C, 0x9A, +0x00, 0x6E, 0x30, 0xF0, 0x20, 0x6F, 0xC0, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, 0xD0, 0x9A, +0xE2, 0xF4, 0xE4, 0x9F, 0x11, 0x5D, 0x40, 0x9E, +0xEC, 0xEA, 0x00, 0xF3, 0x00, 0x6F, 0xED, 0xEA, +0x40, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, +0x54, 0x9A, 0x01, 0x6E, 0x30, 0xF0, 0x20, 0x6F, +0xC0, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, +0xC0, 0x9A, 0x42, 0xF5, 0xF4, 0x9F, 0x40, 0x9E, +0xEC, 0xEA, 0x40, 0xDE, 0x10, 0x6A, 0x02, 0x60, +0xFF, 0x6A, 0xAC, 0xEA, 0x30, 0xF0, 0x20, 0x6E, +0x03, 0xF0, 0xD8, 0x9E, 0x03, 0x6F, 0x82, 0x31, +0x40, 0xC6, 0x30, 0xF0, 0x20, 0x6E, 0x03, 0xF0, +0xDC, 0x9E, 0x22, 0x30, 0xE0, 0xC6, 0x30, 0xF0, +0x20, 0x6E, 0x23, 0xF0, 0xC4, 0x9E, 0xE0, 0xC6, +0xFF, 0x6F, 0xEC, 0xE8, 0xEC, 0xE9, 0x8C, 0xEF, +0x00, 0xC6, 0x20, 0xC6, 0xE0, 0xC6, 0x30, 0xF0, +0x20, 0x6E, 0x03, 0xF0, 0xCC, 0x9E, 0x01, 0x6F, +0xE0, 0xC6, 0x30, 0xF0, 0x20, 0x6E, 0x23, 0xF0, +0xC8, 0x9E, 0xE0, 0xA6, 0x01, 0x6E, 0xEC, 0xEE, +0xF8, 0x2E, 0x04, 0x96, 0x7D, 0xE6, 0xC3, 0x67, +0x08, 0x10, 0x30, 0xF0, 0x20, 0x68, 0x23, 0xF0, +0x04, 0x98, 0x01, 0x4E, 0x00, 0xA0, 0x00, 0xC7, +0x01, 0x4F, 0x61, 0xE2, 0x03, 0xEE, 0xF5, 0x61, +0x57, 0xE5, 0x51, 0xE4, 0x66, 0x67, 0x9C, 0x2D, +0x01, 0x91, 0x00, 0x90, 0x01, 0x6A, 0x01, 0x63, +0x20, 0xE8, 0x00, 0x65, 0xDB, 0x63, 0x49, 0x62, +0x48, 0xD1, 0x47, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xA2, 0xF3, 0x58, 0x9A, 0x4A, 0xD4, 0x25, 0x67, +0x60, 0xAA, 0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, +0x49, 0xE6, 0x5C, 0x32, 0x30, 0x4A, 0x44, 0xD2, +0x33, 0x10, 0x4A, 0x93, 0xFF, 0x6A, 0x6C, 0xEA, +0x0B, 0x22, 0x00, 0xF1, 0x00, 0x59, 0x04, 0x60, +0x2D, 0xE2, 0x00, 0xF1, 0x00, 0x5B, 0x0A, 0x61, +0xFF, 0x68, 0x01, 0x48, 0x43, 0xE0, 0x07, 0x10, +0x00, 0xF1, 0x00, 0x59, 0x03, 0x61, 0xFF, 0x68, +0x01, 0x48, 0x01, 0x10, 0x11, 0x67, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF4, 0x6C, 0x9A, 0x44, 0x92, +0x6D, 0xE2, 0x00, 0x6A, 0xA0, 0xA3, 0x04, 0x06, +0x51, 0xE6, 0x01, 0x4A, 0x03, 0xEA, 0xA0, 0xC4, +0x01, 0x4B, 0xF8, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF3, 0x58, 0x9A, 0x4A, 0x94, 0xB0, 0x67, +0x07, 0xE1, 0x40, 0xEA, 0x44, 0x93, 0x4A, 0x92, +0x0D, 0xE3, 0x09, 0xE2, 0x44, 0xD3, 0x4A, 0xD2, +0xCC, 0x29, 0x49, 0x97, 0x48, 0x91, 0x47, 0x90, +0x25, 0x63, 0x00, 0xEF, 0xDB, 0x63, 0x49, 0x62, +0x48, 0xD1, 0x47, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xA2, 0xF3, 0x58, 0x9A, 0x4A, 0xD4, 0x02, 0xF0, +0x01, 0x5D, 0x60, 0xAA, 0xFF, 0xF7, 0x1F, 0x6A, +0x05, 0x67, 0x6C, 0xEA, 0x49, 0xE6, 0x5C, 0x32, +0x44, 0xD2, 0x27, 0x61, 0x02, 0xF0, 0x00, 0x68, +0x24, 0x10, 0x00, 0xF1, 0x00, 0x58, 0x30, 0x67, +0x02, 0x61, 0xFF, 0x69, 0x01, 0x49, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF3, 0x5C, 0x9A, 0x4A, 0x94, +0xB1, 0x67, 0x04, 0x06, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF4, 0x6C, 0x9A, 0x44, 0x92, +0x6D, 0xE2, 0x00, 0x6A, 0xBD, 0x67, 0x51, 0xE5, +0x90, 0xA4, 0x01, 0x4A, 0x23, 0xEA, 0x80, 0xC3, +0x01, 0x4B, 0xF8, 0x61, 0x44, 0x92, 0x4A, 0x95, +0x23, 0xE0, 0x29, 0xE2, 0x35, 0xE5, 0x44, 0xD2, +0x4A, 0xD5, 0xDB, 0x28, 0x49, 0x97, 0x48, 0x91, +0x47, 0x90, 0x25, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xE0, 0xF3, 0x40, 0x98, +0xFF, 0x69, 0x8C, 0xE9, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x5C, 0x9A, 0x02, 0x6C, +0x40, 0xEA, 0xE0, 0xF3, 0x40, 0x98, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, 0x6C, 0x9A, +0x00, 0x6A, 0x00, 0xF3, 0x01, 0x6D, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, 0x90, 0x9A, +0xAB, 0xED, 0x40, 0x9C, 0xAC, 0xEA, 0x40, 0xDC, +0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF0, 0x94, 0x9C, +0x01, 0x6A, 0x3E, 0x6D, 0x40, 0xC4, 0x30, 0xF0, +0x20, 0x6C, 0x03, 0xF0, 0x9C, 0x9C, 0xAB, 0xED, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF0, +0x84, 0x9C, 0xA0, 0xC4, 0x20, 0xC4, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x48, 0x9A, +0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, 0xF8, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x48, 0x9A, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x58, 0x9A, 0x40, 0xEA, 0x01, 0x6B, 0x4C, 0xEB, +0xF8, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, +0x40, 0x9A, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x5C, 0x9A, 0x3E, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, 0x44, 0x9A, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x48, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x01, 0x6A, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xE0, 0xF3, 0x40, 0x98, 0xFF, 0x69, 0x8C, 0xE9, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x5C, 0x9A, 0x02, 0x6C, 0x40, 0xEA, 0xE0, 0xF3, +0x40, 0x98, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF0, 0x6C, 0x9A, 0x00, 0x6A, 0x00, 0xF3, +0x01, 0x6D, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF0, 0x90, 0x9A, 0xAB, 0xED, 0x40, 0x9C, +0xAC, 0xEA, 0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, +0x03, 0xF0, 0x94, 0x9C, 0x01, 0x6A, 0x3B, 0x6D, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF0, +0x9C, 0x9C, 0xAB, 0xED, 0x40, 0xC4, 0x30, 0xF0, +0x20, 0x6C, 0x23, 0xF0, 0x84, 0x9C, 0xA0, 0xC4, +0x20, 0xC4, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF0, 0x48, 0x9A, 0x60, 0xA2, 0x01, 0x6A, +0x6C, 0xEA, 0xF8, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF4, 0x48, 0x9A, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x58, 0x9A, 0x40, 0xEA, +0x01, 0x6B, 0x4C, 0xEB, 0xF8, 0x2B, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF3, 0x40, 0x9A, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x5C, 0x9A, +0x3E, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x01, 0x6A, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF5, 0x18, 0x4B, 0xEC, 0xEA, +0x05, 0xD2, 0x06, 0xF1, 0x58, 0x9B, 0x04, 0x67, +0x0B, 0xD5, 0x06, 0xF1, 0x95, 0xA3, 0x0C, 0xD6, +0x62, 0x67, 0x00, 0x69, 0x06, 0x10, 0x01, 0x49, +0xFF, 0x6D, 0xAC, 0xE9, 0x23, 0xEC, 0x5B, 0x61, +0x63, 0xE0, 0x43, 0xE8, 0xF8, 0x60, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF5, 0x18, 0x4B, 0x06, 0xF1, +0x56, 0xA3, 0x04, 0xD3, 0x2E, 0xEA, 0x06, 0x22, +0x91, 0x67, 0x00, 0x18, 0x08, 0xD6, 0x04, 0x92, +0x06, 0xF1, 0x36, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x89, 0xF6, 0x5D, 0xA2, 0x01, 0x72, 0x08, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, 0x5C, 0x9A, +0x00, 0xF6, 0x02, 0x31, 0x4C, 0xE8, 0x07, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, 0x5C, 0x9A, +0x03, 0xEA, 0x35, 0x61, 0x00, 0x69, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF5, 0x18, 0x4B, 0x06, 0xF1, +0x57, 0xA3, 0x04, 0xD3, 0x2E, 0xEA, 0x06, 0x22, +0x91, 0x67, 0x00, 0x18, 0x3D, 0xD6, 0x04, 0x92, +0x06, 0xF1, 0x37, 0xC2, 0x05, 0x93, 0x06, 0x2B, +0x0B, 0x95, 0x0C, 0x96, 0x90, 0x67, 0x00, 0x18, +0x89, 0xD5, 0x1E, 0x10, 0x05, 0x92, 0x01, 0x72, +0x06, 0x61, 0x0B, 0x95, 0x0C, 0x96, 0x90, 0x67, +0x00, 0x18, 0x4A, 0xD5, 0x15, 0x10, 0x05, 0x93, +0x02, 0x73, 0x04, 0x61, 0x90, 0x67, 0x00, 0x18, +0x26, 0xD5, 0x0E, 0x10, 0x05, 0x92, 0x03, 0x72, +0x04, 0x61, 0x90, 0x67, 0x00, 0x18, 0x02, 0xD5, +0x07, 0x10, 0x05, 0x93, 0x00, 0x6A, 0x04, 0x73, +0x03, 0x60, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xDB, 0xEC, 0x01, 0x2E, +0xE5, 0xE8, 0x10, 0xEA, 0xAD, 0xE2, 0x63, 0xEE, +0x78, 0x67, 0x4B, 0xE6, 0x6B, 0xEB, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xEC, 0xEA, 0x63, 0xF5, 0x18, 0x4B, +0x04, 0xD2, 0x26, 0xF1, 0x40, 0x9B, 0x0A, 0xD4, +0x91, 0xE5, 0x83, 0xEA, 0x0B, 0xD5, 0x0C, 0xD6, +0x00, 0x6A, 0x45, 0x61, 0x0A, 0x94, 0x06, 0xF1, +0xD8, 0x9B, 0x00, 0x18, 0xAD, 0xD6, 0x22, 0x67, +0x1A, 0x22, 0xA2, 0x67, 0x30, 0xF0, 0x20, 0x6A, +0x0A, 0x94, 0x42, 0xF3, 0xDC, 0x9A, 0x00, 0x18, +0xAD, 0xD6, 0x02, 0x67, 0x07, 0x22, 0x0A, 0x94, +0x0C, 0x96, 0x04, 0x97, 0xA2, 0x67, 0x00, 0x18, +0x6F, 0xD6, 0x2C, 0x22, 0x0A, 0x93, 0x0C, 0x92, +0x04, 0x97, 0x71, 0xE0, 0x17, 0xE1, 0x19, 0xE2, +0x00, 0x18, 0x6F, 0xD6, 0x23, 0x22, 0x0B, 0x92, +0x0A, 0x93, 0x37, 0xE2, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF3, 0xDC, 0x9A, 0x6D, 0xE1, 0x83, 0x67, +0x05, 0xD3, 0x00, 0x18, 0xAD, 0xD6, 0x02, 0x67, +0x08, 0x22, 0x0C, 0x93, 0x05, 0x94, 0x04, 0x97, +0xA2, 0x67, 0x39, 0xE3, 0x00, 0x18, 0x6F, 0xD6, +0x0D, 0x22, 0x0A, 0x92, 0x0B, 0x93, 0x04, 0x97, +0x51, 0xE1, 0x0C, 0x92, 0x37, 0xE3, 0x39, 0xE0, +0x11, 0xE4, 0x17, 0xE5, 0xD9, 0xE2, 0x00, 0x18, +0x6F, 0xD6, 0x01, 0x10, 0x00, 0x6A, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x6D, 0xC5, 0x67, +0x03, 0x6F, 0x00, 0x18, 0xB3, 0xD6, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x6D, 0xC5, 0x67, 0x02, 0x6F, 0x00, 0x18, +0xB3, 0xD6, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x6F, 0x00, 0x18, +0xB3, 0xD6, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x01, 0x6F, 0x00, 0x18, +0xB3, 0xD6, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF0, 0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x22, 0xF5, 0x84, 0x9C, 0x40, 0x9B, 0x30, 0xF0, +0x20, 0x6E, 0xE2, 0xF4, 0xD0, 0x9E, 0x8D, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, +0x6C, 0x9A, 0x00, 0x6A, 0x00, 0x6C, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x50, 0x9A, +0x80, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, +0xA0, 0x9A, 0x40, 0x9D, 0xCD, 0xEA, 0x40, 0xDD, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x54, 0x9A, +0x00, 0x6D, 0x18, 0x6E, 0x80, 0xC2, 0x01, 0x6A, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x60, 0xF6, 0x84, 0x9B, 0x80, 0xF2, +0x48, 0x9A, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF3, 0x48, 0x9A, 0x40, 0xEA, 0x00, 0x18, +0xAD, 0xCE, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, +0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x06, 0xF1, +0x98, 0x9A, 0x42, 0xF3, 0x7C, 0x9B, 0x83, 0xEB, +0x0D, 0x60, 0x26, 0xF1, 0x65, 0xA2, 0x0A, 0x2B, +0x06, 0xF1, 0x75, 0xA2, 0x06, 0xF1, 0x9C, 0xA2, +0x78, 0xEC, 0x12, 0xEB, 0x00, 0xF6, 0x60, 0x33, +0x26, 0xF1, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF5, 0x18, 0x4A, 0x06, 0xF1, 0x90, 0xA2, +0x01, 0x6B, 0x8D, 0xEB, 0x06, 0xF1, 0x70, 0xC2, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x0B, 0x2A, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0xB8, 0x9B, +0x30, 0xF0, 0x20, 0x6E, 0x23, 0xF0, 0xDC, 0x9E, +0x60, 0x9D, 0xCC, 0xEB, 0x0C, 0x10, 0x01, 0x72, +0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, +0xB8, 0x9B, 0x30, 0xF0, 0x20, 0x6E, 0x42, 0xF3, +0xDC, 0x9E, 0x60, 0x9D, 0xCD, 0xEB, 0x60, 0xDD, +0x05, 0x5C, 0x60, 0xF1, 0x1A, 0x60, 0x30, 0xF0, +0x20, 0x6B, 0x88, 0x34, 0xA2, 0xF2, 0x10, 0x4B, +0x8D, 0xE3, 0x60, 0x9B, 0x00, 0xEB, 0x07, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x78, 0x9A, +0x7F, 0x6A, 0x80, 0xA3, 0x12, 0x10, 0x01, 0x72, +0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, +0x78, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, 0x7C, 0x9A, -0xFF, 0xF7, 0x1F, 0x6C, 0x7F, 0x4D, 0x40, 0xAB, -0x41, 0x4D, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, -0x40, 0xCB, 0x40, 0xAB, 0x00, 0xF3, 0x00, 0x4D, -0x8C, 0xEA, 0x51, 0x10, 0x02, 0x72, 0x10, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, 0x74, 0x9A, +0x40, 0xA3, 0x80, 0x4D, 0xC0, 0x4D, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, +0x02, 0x72, 0x05, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF0, 0x78, 0x9A, 0x5B, 0x10, 0x03, 0x72, +0x40, 0xF1, 0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF0, 0x78, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, +0x40, 0xA3, 0x8C, 0xEA, 0xE9, 0x17, 0x07, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, 0x60, 0x9A, +0xFB, 0x6A, 0x80, 0xA3, 0xE2, 0x17, 0x01, 0x72, +0x19, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, +0x98, 0x9A, 0xFF, 0x6A, 0x40, 0x6D, 0x60, 0xA4, +0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x80, 0x9B, +0x01, 0x6D, 0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, +0x4C, 0xEB, 0x60, 0xC4, 0x60, 0xA4, 0x04, 0x6D, +0x4C, 0xEB, 0x48, 0x10, 0x02, 0x72, 0x0F, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x78, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, 0x7C, 0x9A, -0xFF, 0xF6, 0x1F, 0x6A, 0x80, 0xAB, 0x52, 0x10, -0x03, 0x72, 0x6D, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x24, 0xF0, 0x74, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, -0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, -0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, -0x7C, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, 0x7F, 0x4D, -0x40, 0xAB, 0x41, 0x4D, 0x8C, 0xEA, 0x27, 0x10, -0x08, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, -0x7C, 0x9A, 0xF7, 0xF7, 0x1F, 0x6A, 0x80, 0xAB, -0x31, 0x10, 0x01, 0x72, 0x1E, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x24, 0xF0, 0x74, 0x9A, 0xFF, 0x6C, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, 0x60, 0x9A, +0xFE, 0x6A, 0x80, 0xA3, 0xB6, 0x17, 0x03, 0x72, +0x00, 0xF1, 0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF0, 0x98, 0x9A, 0xFF, 0x6B, 0x40, 0x6D, +0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, +0x80, 0x9A, 0x01, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, +0x4B, 0x10, 0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF0, 0x60, 0x9A, 0x80, 0xA3, 0xBF, 0x6A, +0x98, 0x17, 0x01, 0x72, 0x1B, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF0, 0x98, 0x9A, 0xFF, 0x6A, +0x40, 0x6D, 0x60, 0xA4, 0x10, 0x6E, 0x4C, 0xEB, +0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF0, 0x80, 0x9B, 0x60, 0xA4, +0x4C, 0xEB, 0xCD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, +0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, +0x60, 0xC4, 0x20, 0xE8, 0x02, 0x72, 0x0F, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x78, 0x9A, +0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, 0x60, 0x9A, +0xEF, 0x6A, 0x80, 0xA3, 0x6A, 0x17, 0x03, 0x72, +0xA0, 0xF0, 0x1F, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF0, 0x98, 0x9A, 0xFF, 0x6B, 0x40, 0x6D, +0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, +0x80, 0x9A, 0x10, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, +0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x20, 0xE8, +0x08, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, +0x60, 0x9A, 0xFF, 0xF3, 0x1F, 0x6A, 0x80, 0xAB, +0x83, 0x10, 0x01, 0x72, 0x1D, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF0, 0x78, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0x24, 0xF0, 0x7C, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, -0xC1, 0xF7, 0x00, 0x4D, 0x40, 0xAB, 0x8C, 0xEA, +0x43, 0xF0, 0x60, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, +0x7F, 0x4D, 0x40, 0xAB, 0x41, 0x4D, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xCB, 0x40, 0xAB, -0x06, 0xF0, 0x00, 0x4D, 0x8C, 0xEA, 0xAD, 0xEA, -0x11, 0x10, 0x02, 0x72, 0x12, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x24, 0xF0, 0x74, 0x9A, 0xBF, 0x6A, -0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0x24, 0xF0, 0x7C, 0x9A, 0xFD, 0xF7, -0x1F, 0x6A, 0x80, 0xAB, 0x8C, 0xEA, 0x40, 0xCB, -0x20, 0xE8, 0x03, 0x72, 0x18, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x24, 0xF0, 0x74, 0x9A, 0xFF, 0x6C, -0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, +0x00, 0xF3, 0x00, 0x4D, 0x8C, 0xEA, 0x51, 0x10, +0x02, 0x72, 0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF0, 0x78, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0x24, 0xF0, 0x7C, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, -0xC1, 0xF7, 0x00, 0x4D, 0x40, 0xAB, 0x8C, 0xEA, -0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xCB, 0x20, 0xE8, -0xFB, 0x63, 0x09, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF1, 0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0x03, 0xF3, 0x94, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x8A, 0xF1, -0x5F, 0xA2, 0x0D, 0x22, 0x06, 0x02, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, -0x00, 0xF4, 0x1D, 0x6C, 0x10, 0x6D, 0x00, 0x6E, -0xE0, 0xF1, 0x14, 0x6F, 0x0C, 0x10, 0x06, 0x02, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, -0x48, 0x9A, 0x00, 0xF4, 0x1D, 0x6C, 0x10, 0x6D, -0x00, 0x6E, 0x82, 0xF3, 0x08, 0x6F, 0x40, 0xEA, +0x43, 0xF0, 0x60, 0x9A, 0xFF, 0xF6, 0x1F, 0x6A, +0x80, 0xAB, 0x52, 0x10, 0x03, 0x72, 0x6D, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x78, 0x9A, +0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF0, 0x60, 0x9A, 0xFF, 0xF7, +0x1F, 0x6C, 0x7F, 0x4D, 0x40, 0xAB, 0x41, 0x4D, +0x8C, 0xEA, 0x27, 0x10, 0x08, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF0, 0x60, 0x9A, 0xF7, 0xF7, +0x1F, 0x6A, 0x80, 0xAB, 0x31, 0x10, 0x01, 0x72, +0x1E, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, +0x78, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, +0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, 0x60, 0x9A, +0xFF, 0xF7, 0x1F, 0x6C, 0xC1, 0xF7, 0x00, 0x4D, +0x40, 0xAB, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xCB, 0x40, 0xAB, 0x06, 0xF0, 0x00, 0x4D, +0x8C, 0xEA, 0xAD, 0xEA, 0x11, 0x10, 0x02, 0x72, +0x12, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, +0x78, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, +0x60, 0x9A, 0xFD, 0xF7, 0x1F, 0x6A, 0x80, 0xAB, +0x8C, 0xEA, 0x40, 0xCB, 0x20, 0xE8, 0x03, 0x72, +0x18, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, +0x78, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, +0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, 0x60, 0x9A, +0xFF, 0xF7, 0x1F, 0x6C, 0xC1, 0xF7, 0x00, 0x4D, +0x40, 0xAB, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xCB, 0x20, 0xE8, 0xFF, 0x63, 0x01, 0xD0, +0xFF, 0x6A, 0x4C, 0xED, 0x4C, 0xEE, 0x4C, 0xEF, +0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF3, 0x58, 0x9A, +0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEC, 0x00, 0xAA, +0xE1, 0xF7, 0x1F, 0x6A, 0x0C, 0xEA, 0x30, 0xF0, +0x20, 0x68, 0x43, 0xF0, 0x04, 0x98, 0x51, 0xE4, +0x6C, 0xEC, 0x80, 0xC8, 0x9C, 0x32, 0x30, 0xF0, +0x20, 0x6C, 0x43, 0xF0, 0x88, 0x9C, 0x30, 0xF0, +0x20, 0x68, 0x43, 0xF0, 0x0C, 0x98, 0x91, 0xE2, +0x80, 0xAC, 0x01, 0xE2, 0x00, 0x98, 0x6C, 0xEC, +0x05, 0x25, 0x10, 0xF0, 0x00, 0x6D, 0xAB, 0xED, +0xAD, 0xEC, 0x6C, 0xEC, 0xD8, 0xF0, 0x00, 0x6B, +0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF0, +0x88, 0x9C, 0x91, 0xE2, 0x60, 0xCC, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF0, 0x70, 0x9B, 0x6D, 0xE2, +0x80, 0xA3, 0x01, 0x6B, 0x8C, 0xEB, 0x05, 0x23, +0x03, 0xF7, 0x01, 0x6B, 0x6B, 0xEB, 0x0C, 0xEB, +0x06, 0x10, 0x1F, 0xF7, 0x01, 0x6B, 0x6B, 0xEB, +0x0C, 0xEB, 0xE0, 0x37, 0xED, 0xEB, 0xFF, 0x76, +0x13, 0x60, 0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF0, +0x94, 0x9C, 0x80, 0xF4, 0xC0, 0x36, 0x6C, 0xEC, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF4, 0x68, 0x9B, +0x6D, 0xEE, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, +0x6C, 0x9B, 0x8D, 0xEE, 0x6D, 0xE2, 0xC0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x98, 0x9B, +0x7F, 0x6B, 0x91, 0xE2, 0xA0, 0xA4, 0xAC, 0xEB, +0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, +0x7C, 0x9B, 0x1C, 0x6C, 0x80, 0xC3, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF0, 0x60, 0x9B, 0x08, 0xF4, +0x13, 0x6C, 0x80, 0xCB, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF3, 0x84, 0x9B, 0xF7, 0x6B, 0x91, 0xE2, +0xA0, 0xA4, 0xAC, 0xEB, 0x60, 0xC4, 0x01, 0x90, +0x01, 0x63, 0x20, 0xE8, 0xFB, 0x63, 0x09, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF3, 0x60, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x62, 0xF3, 0x88, 0x9C, +0x40, 0x9B, 0x10, 0x6D, 0x00, 0x6E, 0x8D, 0xEA, +0x40, 0xDB, 0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, 0x00, 0xF4, +0x1D, 0x6C, 0x82, 0xF3, 0x08, 0x6F, 0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0x74, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, 0x64, 0x9B, 0xFF, 0x6A, 0x4C, 0xED, 0x6D, 0xE4, 0xC0, 0xA3, 0x3F, 0x6C, 0xCC, 0xEC, 0x80, 0xC3, 0x07, 0x2D, 0x80, 0xA3, 0x40, 0x6D, 0x4C, 0xEC, 0xAD, 0xEC, @@ -62573,3157 +44949,345 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x07, 0x61, 0x80, 0xA3, 0x80, 0x6D, 0xAB, 0xED, 0x4C, 0xEC, 0xAD, 0xEC, 0x4C, 0xEC, 0x80, 0xC3, 0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF2, 0x64, 0x9B, 0xFF, 0x6A, 0xAC, 0xEA, +0x63, 0xF0, 0x68, 0x9B, 0xFF, 0x6A, 0xAC, 0xEA, 0x6D, 0xE4, 0x80, 0x9B, 0x80, 0xF4, 0x40, 0x32, 0x8D, 0xEA, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF1, 0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6E, -0x44, 0xF0, 0xC0, 0x9E, 0x6D, 0xE4, 0x40, 0x9B, -0x30, 0xF0, 0x20, 0x68, 0x44, 0xF0, 0x08, 0x98, -0xCC, 0xEA, 0x30, 0xF0, 0x20, 0x6E, 0x44, 0xF0, -0xC4, 0x9E, 0xCD, 0xEA, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF2, 0xEC, 0x9A, 0x83, 0xF7, +0x22, 0xF4, 0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6E, +0x63, 0xF0, 0xCC, 0x9E, 0x6D, 0xE4, 0x40, 0x9B, +0x30, 0xF0, 0x20, 0x68, 0x63, 0xF0, 0x14, 0x98, +0xCC, 0xEA, 0x30, 0xF0, 0x20, 0x6E, 0x63, 0xF0, +0xD0, 0x9E, 0xCD, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF6, 0xFC, 0x9A, 0x83, 0xF7, 0x00, 0x6A, 0x4B, 0xEA, 0xFD, 0xE4, 0x60, 0x9F, 0x7F, 0x6E, 0x4C, 0xEB, 0x43, 0xA5, 0xCC, 0xEA, 0x0D, 0xEA, 0x6D, 0xEA, 0x40, 0xDF, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF2, 0x70, 0x9A, 0x30, 0xF0, -0x20, 0x6F, 0x63, 0xF1, 0xE8, 0x9F, 0x6D, 0xE4, +0x20, 0x6A, 0x63, 0xF0, 0x78, 0x9A, 0x30, 0xF0, +0x20, 0x6F, 0x22, 0xF5, 0xE4, 0x9F, 0x6D, 0xE4, 0x40, 0x9B, 0xED, 0xEA, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF1, 0x68, 0x9A, 0xFF, 0x6F, +0x20, 0x6A, 0x63, 0xF0, 0x7C, 0x9A, 0xFF, 0x6F, 0x01, 0x4F, 0x6D, 0xE4, 0x40, 0x9B, 0xED, 0xEA, 0x3F, 0xF6, 0x1F, 0x4F, 0xEC, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0x4C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, 0x4C, 0x9A, 0x49, 0xE4, 0x60, 0x9A, 0x40, 0xA5, 0xCC, 0xEA, -0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF0, -0x4C, 0x9A, 0x49, 0xE4, 0xC0, 0xA2, 0x01, 0x6A, +0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, +0x50, 0x9A, 0x49, 0xE4, 0xC0, 0xA2, 0x01, 0x6A, 0xCC, 0xEA, 0x05, 0x22, 0x03, 0xF7, 0x01, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x07, 0x10, 0x1F, 0xF7, 0x01, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x61, 0xA5, 0x60, 0x33, 0x6D, 0xEA, 0xC2, 0xA5, 0xFF, 0x76, -0x0D, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x44, 0xF0, -0x70, 0x9B, 0x4C, 0xEB, 0x80, 0xF4, 0xC0, 0x32, -0x30, 0xF0, 0x20, 0x6E, 0x63, 0xF1, 0xC0, 0x9E, +0x0D, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, +0x74, 0x9B, 0x4C, 0xEB, 0x80, 0xF4, 0xC0, 0x32, +0x30, 0xF0, 0x20, 0x6E, 0x22, 0xF4, 0xC8, 0x9E, 0xCD, 0xEA, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF2, 0x6C, 0x9B, 0x6D, 0xE4, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0xC4, 0x9A, +0x43, 0xF0, 0x6C, 0x9B, 0x6D, 0xE4, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, 0xC0, 0x9A, 0x02, 0xF0, 0x00, 0x6B, 0x6B, 0xEB, 0xD9, 0xE4, 0x40, 0x9E, 0x6C, 0xEA, 0x62, 0xAD, 0xE1, 0xF7, 0x1F, 0x6D, 0xAC, 0xEB, 0x6D, 0xEA, 0x40, 0xDE, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, 0x7C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, 0x68, 0x9A, 0x0E, 0xF0, 0x01, 0x4D, 0x6D, 0xE4, 0x40, 0x9B, 0xAD, 0xEA, 0xC8, 0xF0, 0x00, 0x4D, 0xAC, 0xEA, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, -0x4C, 0x9A, 0x51, 0xE4, 0x60, 0xA4, 0x7F, 0x6A, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, +0x58, 0x9A, 0x51, 0xE4, 0x60, 0xA4, 0x7F, 0x6A, 0x6C, 0xEA, 0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, -0x44, 0xF0, 0x54, 0x9A, 0x1C, 0x6B, 0x60, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF0, 0x58, 0x9A, +0x43, 0xF0, 0x5C, 0x9A, 0x1C, 0x6B, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF0, 0x40, 0x9A, 0x08, 0xF4, 0x13, 0x6B, 0x60, 0xCA, 0x01, 0x90, -0x01, 0x63, 0x20, 0xE8, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x26, 0x67, -0x4C, 0xEF, 0x4C, 0xED, 0x4C, 0xE9, 0x30, 0xF0, -0x20, 0x6A, 0xFF, 0xF7, 0x1F, 0x68, 0xC3, 0xF1, -0x40, 0x9A, 0x0C, 0xEC, 0x05, 0xD4, 0x06, 0xD5, -0x07, 0xD7, 0x40, 0xAA, 0x00, 0x6C, 0xA4, 0x67, -0x62, 0x67, 0x0C, 0xEB, 0x04, 0xD3, 0x00, 0x18, -0x62, 0xCC, 0x03, 0x6C, 0x00, 0x18, 0x99, 0xE0, -0x04, 0x95, 0x05, 0x92, 0xE1, 0xF7, 0x1F, 0x6B, -0x30, 0xF0, 0x20, 0x6C, 0xAC, 0xEB, 0x83, 0xF1, -0x94, 0x9C, 0x6D, 0xE2, 0x0C, 0xEB, 0x60, 0xCC, -0x7C, 0x32, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, -0x7C, 0x9B, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF2, -0x8C, 0x9C, 0x6D, 0xE2, 0x60, 0xAB, 0x06, 0x95, -0x91, 0xE2, 0x0C, 0xEB, 0x80, 0x9C, 0x05, 0x25, -0x10, 0xF0, 0x00, 0x6D, 0xAB, 0xED, 0xAD, 0xEB, -0x0C, 0xEB, 0xD8, 0xF0, 0x00, 0x6D, 0x6C, 0xED, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, 0x7C, 0x9B, -0x6D, 0xE2, 0xA0, 0xCB, 0x30, 0xF0, 0x20, 0x6B, -0x44, 0xF0, 0x6C, 0x9B, 0x6D, 0xE2, 0xA0, 0xA3, -0x01, 0x6B, 0xAC, 0xEB, 0x05, 0x23, 0x03, 0xF7, -0x01, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x07, 0x10, -0x07, 0x95, 0x1F, 0xF7, 0x01, 0x6B, 0x6B, 0xEB, -0x8C, 0xEB, 0xA0, 0x34, 0x8D, 0xEB, 0xFF, 0x71, -0x13, 0x60, 0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF0, -0x90, 0x9C, 0x80, 0xF4, 0x20, 0x31, 0x6C, 0xEC, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x60, 0x9B, -0x6D, 0xE9, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, -0x6C, 0x9B, 0x8D, 0xE9, 0x6D, 0xE2, 0x20, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF2, 0x8C, 0x9B, -0x7F, 0x6B, 0x91, 0xE2, 0xA0, 0xA4, 0xAC, 0xEB, -0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0x44, 0xF0, -0x74, 0x9B, 0x1C, 0x6C, 0x80, 0xC3, 0x30, 0xF0, -0x20, 0x6B, 0x44, 0xF0, 0x78, 0x9B, 0x08, 0xF4, -0x13, 0x6C, 0x80, 0xCB, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF1, 0x8C, 0x9B, 0xF7, 0x6B, 0x91, 0xE2, -0xA0, 0xA4, 0xAC, 0xEB, 0x60, 0xC4, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x0D, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF0, 0x5C, 0x9A, -0x8C, 0x34, 0x30, 0xF0, 0x20, 0x6B, 0x51, 0xE4, -0x40, 0x9C, 0x03, 0xF3, 0x74, 0x9B, 0x6D, 0xEA, -0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF0, -0x5C, 0x9A, 0x8C, 0x34, 0x30, 0xF0, 0x20, 0x6B, -0x51, 0xE4, 0x40, 0x9C, 0x23, 0xF3, 0x68, 0x9B, -0x6C, 0xEA, 0x40, 0xDC, 0x20, 0xE8, 0x00, 0x65, -0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x0D, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF0, 0x5C, 0x9A, -0x8C, 0x34, 0x30, 0xF0, 0x20, 0x6B, 0x51, 0xE4, -0x40, 0x9C, 0x43, 0xF3, 0x70, 0x9B, 0x6D, 0xEA, -0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF0, -0x5C, 0x9A, 0x8C, 0x34, 0x30, 0xF0, 0x20, 0x6B, -0x51, 0xE4, 0x40, 0x9C, 0x43, 0xF3, 0x74, 0x9B, -0x6C, 0xEA, 0x40, 0xDC, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x6B, 0x44, 0xF0, -0x5C, 0x9A, 0x6C, 0xEC, 0x8C, 0x34, 0x51, 0xE4, -0x40, 0x9C, 0x01, 0x6C, 0x40, 0xF7, 0x42, 0x32, -0x8C, 0xEA, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x6B, 0x44, 0xF0, -0x5C, 0x9A, 0x6C, 0xEC, 0x8C, 0x34, 0x51, 0xE4, -0x40, 0x9C, 0x01, 0x6C, 0x00, 0xF7, 0x42, 0x32, -0x8C, 0xEA, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x00, 0x68, -0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, 0x46, 0xE5, -0x90, 0x67, 0x01, 0x6D, 0x01, 0x48, 0x00, 0x18, -0x56, 0xE5, 0x0B, 0x70, 0xF5, 0x61, 0x05, 0x97, -0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x6A, 0x4C, 0xEC, 0x0C, 0x6B, 0x7B, 0xEC, -0x01, 0x2B, 0xE5, 0xE8, 0x0A, 0x69, 0x12, 0xED, -0x4C, 0xED, 0x04, 0xD5, 0xFF, 0x68, 0x2C, 0xE8, -0x90, 0x67, 0x00, 0x18, 0x66, 0xE5, 0x17, 0x2A, -0xFF, 0x49, 0x00, 0xF6, 0x20, 0x31, 0x90, 0x67, -0x01, 0x6D, 0x00, 0xF6, 0x23, 0x31, 0x00, 0x18, -0x56, 0xE5, 0x41, 0x41, 0xEF, 0x2A, 0x01, 0x69, -0x2B, 0xE9, 0x09, 0x10, 0x04, 0x94, 0xFF, 0x49, -0x00, 0x6D, 0x00, 0xF6, 0x20, 0x31, 0x00, 0x18, -0x56, 0xE5, 0x00, 0xF6, 0x23, 0x31, 0x00, 0x51, -0xF5, 0x60, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x0C, 0x68, -0x4C, 0xEC, 0x1B, 0xEC, 0x01, 0x28, 0xE5, 0xE8, -0x4C, 0xED, 0x10, 0xE9, 0x4C, 0xE9, 0x12, 0xE8, -0x4C, 0xE8, 0x0F, 0x25, 0x90, 0x67, 0x01, 0x6D, -0x00, 0x18, 0x46, 0xE5, 0x30, 0xF0, 0x20, 0x6A, -0x05, 0xF7, 0x1C, 0x4A, 0x41, 0xE0, 0x60, 0xA0, -0x01, 0x6A, 0x44, 0xE9, 0x6D, 0xEA, 0x40, 0xC0, -0x11, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF7, -0x1C, 0x4A, 0x49, 0xE0, 0x80, 0xA2, 0x01, 0x6B, -0x64, 0xE9, 0x6F, 0xEB, 0x8C, 0xEB, 0x60, 0xC2, -0x40, 0xA2, 0x04, 0x2A, 0x90, 0x67, 0x00, 0x6D, -0x00, 0x18, 0x46, 0xE5, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFF, 0x68, 0x24, 0x67, 0x0C, 0xE9, 0xAC, 0xE8, -0x91, 0x67, 0xB0, 0x67, 0x00, 0x18, 0x99, 0xE5, -0x91, 0x67, 0xB0, 0x67, 0x00, 0x18, 0x80, 0xE5, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x0C, 0x6B, 0x7B, 0xED, -0x01, 0x2B, 0xE5, 0xE8, 0x05, 0x6E, 0xFF, 0x6A, -0x4C, 0xEC, 0x10, 0xEB, 0x12, 0xED, 0x4C, 0xED, -0xD8, 0xEB, 0x12, 0xEB, 0x4C, 0xEB, 0x1E, 0x73, -0x1D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF0, -0x60, 0x9A, 0xAC, 0x35, 0x30, 0xF0, 0x20, 0x6E, -0x6D, 0xE5, 0x40, 0x9B, 0x64, 0xF0, 0xC4, 0x9E, -0xCC, 0xEA, 0x80, 0xF7, 0x80, 0x36, 0xCD, 0xEA, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF0, -0x5C, 0x9A, 0x08, 0x6B, 0x6B, 0xEB, 0x55, 0xE5, -0x40, 0x9D, 0x8A, 0x34, 0x6C, 0xEA, 0x07, 0x6B, -0x6C, 0xEC, 0x1E, 0x10, 0x20, 0x5B, 0x0C, 0x60, -0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF0, 0x40, 0x9A, -0x1F, 0x6E, 0xAC, 0x35, 0xE6, 0x67, 0x55, 0xE5, -0xE4, 0xEB, 0x40, 0x9D, 0xEF, 0xEF, 0x0D, 0x10, -0xE0, 0x4B, 0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, -0x44, 0xF0, 0x5C, 0x9A, 0xAC, 0x35, 0x1F, 0x6E, -0x55, 0xE5, 0xE0, 0x9D, 0x46, 0x67, 0x44, 0xEB, -0x4F, 0xEA, 0xCC, 0xEC, 0xEC, 0xEA, 0x84, 0xEB, -0x8D, 0xEA, 0x40, 0xDD, 0x20, 0xE8, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFF, 0x69, 0x2C, 0xEC, 0xCC, 0xE9, 0x05, 0x67, -0x01, 0x29, 0x00, 0x6C, 0xB0, 0x67, 0x00, 0x18, -0xBF, 0xE5, 0xFF, 0x6C, 0x0C, 0xEC, 0xB1, 0x67, -0x00, 0x18, 0xB4, 0xE5, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xAE, 0xEC, 0x01, 0x6A, 0x8C, 0xEA, 0x20, 0xE8, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0x6A, 0xAC, 0xEA, 0x06, 0xD2, 0x05, 0xD4, -0x00, 0x69, 0x1F, 0x68, 0x22, 0x10, 0x05, 0x92, -0x40, 0xA2, 0x07, 0xD2, 0x00, 0x6A, 0x04, 0xD2, -0x04, 0x92, 0x07, 0x94, 0x12, 0x35, 0x87, 0xEA, -0xFF, 0x6A, 0x4C, 0xEC, 0x00, 0x18, 0xF2, 0xE5, -0x06, 0x22, 0xFF, 0x6A, 0x04, 0x30, 0x4C, 0xE8, -0x05, 0x6A, 0x4E, 0xE8, 0x01, 0x10, 0x04, 0x30, -0xFF, 0x6A, 0x4C, 0xE8, 0x04, 0x92, 0x01, 0x4A, -0x08, 0x72, 0x04, 0xD2, 0xE9, 0x61, 0xFF, 0x6A, -0x01, 0x49, 0x4C, 0xE9, 0x05, 0x92, 0x01, 0x4A, -0x05, 0xD2, 0x06, 0x92, 0x43, 0xE9, 0xDB, 0x61, -0x1F, 0x6A, 0x4E, 0xE8, 0x0C, 0xEA, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x60, 0xA4, -0x01, 0x6A, 0x04, 0x67, 0x6C, 0xEA, 0x44, 0x22, -0x66, 0x32, 0x30, 0xF0, 0x20, 0x6B, 0x64, 0xF0, -0x68, 0x9B, 0x54, 0x32, 0x69, 0xE2, 0x61, 0xA4, -0x60, 0xC2, 0x40, 0xA4, 0x30, 0xF0, 0x20, 0x6B, -0x64, 0xF0, 0x6C, 0x9B, 0x46, 0x32, 0x54, 0x32, -0x69, 0xE2, 0x62, 0xA4, 0x60, 0xC2, 0x40, 0xA4, -0x30, 0xF0, 0x20, 0x6B, 0x64, 0xF0, 0x70, 0x9B, -0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x63, 0xA4, -0x60, 0xC2, 0x40, 0xA4, 0x30, 0xF0, 0x20, 0x6B, -0x64, 0xF0, 0x74, 0x9B, 0x46, 0x32, 0x54, 0x32, -0x69, 0xE2, 0x64, 0xA4, 0x60, 0xC2, 0x40, 0xA4, -0x30, 0xF0, 0x20, 0x6B, 0x64, 0xF0, 0x78, 0x9B, -0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x65, 0xA4, -0x60, 0xC2, 0x40, 0xA4, 0x30, 0xF0, 0x20, 0x6B, -0x64, 0xF0, 0x7C, 0x9B, 0x46, 0x32, 0x54, 0x32, -0x69, 0xE2, 0x66, 0xA4, 0x10, 0xF0, 0x00, 0x6C, -0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF0, -0x60, 0x9A, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, -0x81, 0x40, 0x06, 0x6D, 0x00, 0x18, 0xF4, 0xE5, -0x60, 0xA0, 0x01, 0x6E, 0x82, 0x67, 0x66, 0x35, -0x6C, 0xEE, 0x00, 0x18, 0xE6, 0xE5, 0x05, 0x97, -0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x76, 0xE5, -0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF0, 0x64, 0x9A, -0xFF, 0xF7, 0x1F, 0x6A, 0x80, 0xAB, 0x8C, 0xEA, -0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF2, 0x94, 0x9C, -0x8D, 0xEA, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x00, 0x00, 0x00, 0x00, -0xA4, 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0xFB, 0x63, 0x09, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF1, 0x58, 0x9A, 0x00, 0x6B, 0x00, 0x6E, -0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, -0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, -0x5C, 0x9A, 0x04, 0xF7, 0x10, 0x6F, 0x80, 0x6D, -0x60, 0xDA, 0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, 0x80, 0xF1, -0x07, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x4C, 0x9A, 0xC8, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x66, 0xF6, 0x80, 0xA2, -0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF3, 0x5C, 0x9A, -0x90, 0x34, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x20, 0xF3, 0x54, 0x9A, 0x03, 0x6C, 0x01, 0x6D, -0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0xFF, 0x68, -0x8C, 0xE8, 0x04, 0x6E, 0x04, 0x04, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x04, 0x93, 0x03, 0xF0, -0x5C, 0x9A, 0x01, 0x6C, 0x60, 0xDA, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF0, 0x58, 0x9A, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF0, 0x70, 0x9B, 0x0D, 0xEA, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x30, 0xF0, -0x20, 0x68, 0x8C, 0xEA, 0x06, 0xD2, 0xFF, 0x6B, -0x80, 0xF2, 0x4C, 0x98, 0x04, 0x01, 0xAC, 0xEB, -0x10, 0xD6, 0xA6, 0x67, 0x07, 0xD3, 0x04, 0x6E, -0x91, 0x67, 0x40, 0xEA, 0x06, 0x92, 0xFF, 0x6B, -0xB1, 0x67, 0x4C, 0x34, 0x02, 0x4C, 0x6C, 0xEC, -0x80, 0x18, 0x1C, 0x00, 0x10, 0x95, 0x80, 0xF2, -0x4C, 0x98, 0x04, 0x6E, 0x91, 0x67, 0x04, 0x4D, -0x40, 0xEA, 0x06, 0x92, 0xFF, 0x6B, 0xB1, 0x67, -0x4C, 0x32, 0x82, 0x67, 0x03, 0x4C, 0x6C, 0xEC, -0x08, 0xD2, 0x80, 0x18, 0x1C, 0x00, 0x10, 0x95, -0x80, 0xF2, 0x4C, 0x98, 0x04, 0x6E, 0x91, 0x67, -0x08, 0x4D, 0x40, 0xEA, 0x06, 0x92, 0xFF, 0x6B, -0xB1, 0x67, 0x4C, 0x34, 0x04, 0x4C, 0x6C, 0xEC, -0x80, 0x18, 0x1C, 0x00, 0x10, 0x95, 0x80, 0xF2, -0x4C, 0x98, 0x91, 0x67, 0x0C, 0x4D, 0x04, 0x6E, -0x40, 0xEA, 0x08, 0x94, 0xFF, 0x6A, 0xB1, 0x67, -0x05, 0x4C, 0x4C, 0xEC, 0x80, 0x18, 0x1C, 0x00, -0x07, 0x93, 0x48, 0x6A, 0x02, 0x73, 0x04, 0x60, -0x07, 0x92, 0x04, 0x72, 0x05, 0x61, 0x50, 0x6A, -0x06, 0x93, 0x6D, 0xEA, 0x7D, 0x67, 0x50, 0xC3, -0x80, 0x6A, 0x7D, 0x67, 0x4B, 0xEA, 0x51, 0xC3, -0x06, 0x92, 0x01, 0x68, 0x0B, 0xE8, 0x4C, 0x31, -0xFF, 0x6C, 0x12, 0xC3, 0x13, 0xC3, 0x2C, 0xEC, -0x04, 0x05, 0x80, 0x18, 0x1C, 0x00, 0x7D, 0x67, -0xFF, 0x6A, 0x81, 0x41, 0x10, 0xC3, 0x11, 0xC3, -0x12, 0xC3, 0x13, 0xC3, 0x4C, 0xEC, 0x04, 0x05, -0x80, 0x18, 0x1C, 0x00, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF1, 0x40, 0x9A, 0x00, 0x6B, 0x60, 0xC2, -0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0xEC, 0xEA, -0x04, 0x72, 0x0F, 0x61, 0x40, 0xA4, 0x40, 0xC5, -0x41, 0xA4, 0x41, 0xC5, 0x44, 0xA4, 0x42, 0xC5, -0x45, 0xA4, 0x43, 0xC5, 0x46, 0xA4, 0x44, 0xC5, -0x47, 0xA4, 0x45, 0xC5, 0x43, 0xA4, 0x40, 0xC6, -0x20, 0xE8, 0x02, 0x72, 0x0E, 0x61, 0x42, 0xA4, -0x40, 0xC5, 0x40, 0xA4, 0x41, 0xC5, 0x44, 0xA4, -0x42, 0xC5, 0x45, 0xA4, 0x43, 0xC5, 0x46, 0xA4, -0x44, 0xC5, 0x47, 0xA4, 0x45, 0xC5, 0x43, 0xA4, -0x40, 0xC6, 0x20, 0xE8, 0xFF, 0x6A, 0xEC, 0xEA, -0x04, 0x6B, 0x4E, 0xEB, 0x06, 0x2B, 0x40, 0xA5, -0x40, 0xC4, 0x41, 0xA5, 0x62, 0xC4, 0x41, 0xC4, -0x0C, 0x10, 0x02, 0x72, 0x0A, 0x61, 0x41, 0xA5, -0x40, 0xC4, 0x61, 0xA5, 0x5F, 0x6A, 0x6C, 0xEA, -0x20, 0x6B, 0x6D, 0xEA, 0x41, 0xC4, 0x40, 0xA5, -0x42, 0xC4, 0x63, 0x44, 0xC0, 0xA3, 0x20, 0x6A, -0xCD, 0xEA, 0x40, 0xC3, 0x42, 0xA5, 0x44, 0xC4, -0x43, 0xA5, 0x45, 0xC4, 0x44, 0xA5, 0x46, 0xC4, -0x45, 0xA5, 0x47, 0xC4, 0x20, 0xE8, 0x00, 0x65, -0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, -0xFF, 0x6A, 0x4C, 0xED, 0x4C, 0xEE, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, 0x05, 0x00, -0x24, 0x67, 0x09, 0xD5, 0x08, 0xD6, 0x90, 0x67, -0x00, 0x6D, 0x08, 0x6E, 0x40, 0xEA, 0x08, 0x97, -0x91, 0x67, 0xB0, 0x67, 0x04, 0x06, 0x80, 0x18, -0x6D, 0x00, 0x09, 0x92, 0x10, 0x2A, 0x60, 0xA0, -0xFF, 0x6C, 0x8E, 0xEB, 0x07, 0x2B, 0x01, 0x4A, -0x8C, 0xEA, 0x06, 0x72, 0x60, 0xC0, 0x01, 0x48, -0xF6, 0x61, 0x05, 0x10, 0x04, 0x03, 0x49, 0xE3, -0x64, 0xA2, 0x01, 0x4B, 0x64, 0xC2, 0x08, 0x97, -0x91, 0x67, 0x05, 0x05, 0x04, 0x06, 0x80, 0x18, -0x7F, 0x00, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, -0x07, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x4C, 0x9A, 0x24, 0x67, 0xFF, 0x68, -0xAC, 0xE8, 0x04, 0x04, 0xB1, 0x67, 0x03, 0x6E, -0x40, 0xEA, 0x24, 0x28, 0x5D, 0x67, 0x70, 0xA2, -0xFF, 0x6A, 0x4E, 0xEB, 0x00, 0x6A, 0x11, 0x2B, -0x5D, 0x67, 0x70, 0xC2, 0x71, 0xA2, 0xFF, 0x6A, -0x4E, 0xEB, 0x01, 0x6A, 0x0A, 0x2B, 0x5D, 0x67, -0x71, 0xC2, 0x52, 0xA2, 0xFF, 0x6B, 0x6E, 0xEA, -0x03, 0x2A, 0x7D, 0x67, 0x52, 0xC3, 0x06, 0x10, -0x02, 0x6A, 0x04, 0x03, 0x49, 0xE3, 0x60, 0xA2, -0x01, 0x4B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x4C, 0x9A, 0x91, 0x67, 0x04, 0x05, -0x03, 0x6E, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, -0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, -0x30, 0xF0, 0x20, 0x69, 0x80, 0xF2, 0x48, 0x99, -0xFF, 0x68, 0xAC, 0xE8, 0x0E, 0xD4, 0x00, 0x6D, -0x05, 0x04, 0x08, 0x6E, 0x40, 0xEA, 0x80, 0xF2, -0x48, 0x99, 0x07, 0x04, 0x00, 0x6D, 0x08, 0x6E, -0x40, 0xEA, 0x0E, 0x94, 0x05, 0x05, 0x00, 0xF0, -0x11, 0x06, 0xF0, 0x67, 0x80, 0x18, 0x6D, 0x00, -0x30, 0xF0, 0x20, 0x6C, 0x8B, 0xF0, 0x0F, 0x4C, -0x07, 0x05, 0x04, 0x06, 0xF0, 0x67, 0x80, 0x18, -0x6D, 0x00, 0x00, 0x6B, 0x07, 0x6A, 0x9D, 0x67, -0x75, 0xE4, 0x85, 0x67, 0x9B, 0xA4, 0x20, 0xF0, -0xA3, 0xA5, 0xAE, 0xEC, 0x0A, 0x2C, 0xFF, 0x4A, -0x00, 0xF6, 0x40, 0x32, 0x00, 0xF6, 0x43, 0x32, -0x81, 0x42, 0xFF, 0x4B, 0xF0, 0x2C, 0x00, 0x6A, -0x09, 0x10, 0x04, 0x03, 0x49, 0xE3, 0x6C, 0xA2, -0x44, 0xA2, 0x4B, 0xE3, 0x01, 0x52, 0x58, 0x67, -0x01, 0x6B, 0x6E, 0xEA, 0x0D, 0x97, 0x0C, 0x91, -0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x30, 0xF0, 0x20, 0x68, 0x80, 0xF2, 0x48, 0x98, -0x04, 0x01, 0x0C, 0xD4, 0x00, 0x6D, 0x91, 0x67, -0x08, 0x6E, 0x40, 0xEA, 0x80, 0xF2, 0x48, 0x98, -0x06, 0x04, 0x00, 0x6D, 0x08, 0x6E, 0x30, 0xF0, -0x20, 0x68, 0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x98, -0x30, 0xF0, 0x20, 0x6D, 0x91, 0x67, 0x8B, 0xF0, -0x0F, 0x4D, 0x03, 0x6E, 0x40, 0xEA, 0x80, 0xF2, -0x4C, 0x98, 0x0C, 0x95, 0x06, 0x04, 0x03, 0x6E, -0x40, 0xEA, 0x5D, 0x67, 0x72, 0xA2, 0x5A, 0xA2, -0x4E, 0xEB, 0x02, 0x6A, 0x0C, 0x2B, 0x9D, 0x67, -0x59, 0xA4, 0x71, 0xA4, 0x4E, 0xEB, 0x01, 0x6A, -0x06, 0x2B, 0x5D, 0x67, 0x70, 0xA2, 0x58, 0xA2, -0x4E, 0xEB, 0x00, 0x6A, 0x09, 0x23, 0x04, 0x03, -0x49, 0xE3, 0x60, 0xA2, 0x48, 0xA2, 0x4B, 0xE3, -0x01, 0x52, 0x58, 0x67, 0x01, 0x6B, 0x6E, 0xEA, -0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, -0x34, 0x22, 0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, -0x18, 0x48, 0x00, 0x18, 0x7A, 0xD4, 0x00, 0xF1, -0xA7, 0xA0, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, -0x68, 0x9B, 0x04, 0xD2, 0xB5, 0xE2, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0xBC, 0x35, -0x30, 0xF0, 0x20, 0x6C, 0x75, 0xE5, 0x7C, 0x6E, -0xAB, 0xF0, 0x08, 0x4C, 0x30, 0xF0, 0x20, 0x69, -0x40, 0xEA, 0x20, 0xF3, 0x54, 0x99, 0x00, 0x6D, -0x03, 0x6C, 0x40, 0xEA, 0x04, 0x92, 0x00, 0xF1, -0x88, 0xA0, 0xFF, 0xF7, 0x1F, 0x6B, 0x91, 0xE2, -0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF3, 0x5C, 0x9A, -0x9C, 0x34, 0x8F, 0x34, 0x6C, 0xEC, 0x40, 0xEA, -0x20, 0xF3, 0x54, 0x99, 0x03, 0x6C, 0x01, 0x6D, -0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xF4, 0x63, 0x17, 0x62, -0x16, 0xD1, 0x15, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, -0x8C, 0xEA, 0x10, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0xFF, 0x69, 0x80, 0xF2, 0x48, 0x9A, 0x2C, 0xED, -0x30, 0xF0, 0x20, 0x6C, 0x11, 0xD5, 0xC6, 0xF4, -0x14, 0x4C, 0x00, 0x6D, 0x80, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF6, 0x1E, 0xA2, -0x00, 0x18, 0x7A, 0xD4, 0x10, 0x93, 0x01, 0xE2, -0x1C, 0x30, 0x01, 0x73, 0x12, 0x61, 0x30, 0xF0, -0x20, 0x6B, 0x86, 0xF3, 0x4C, 0xA3, 0x0D, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0x88, 0x9A, -0x91, 0xE0, 0x40, 0xA4, 0x2C, 0xEA, 0x08, 0x4A, -0x2C, 0xEA, 0x40, 0xC4, 0x01, 0x6A, 0x86, 0xF3, -0x4C, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, -0x4C, 0x9A, 0x41, 0x6B, 0x87, 0x40, 0x49, 0xE0, -0x60, 0xC2, 0x11, 0x95, 0x29, 0x4C, 0x80, 0x18, -0x39, 0x0D, 0x30, 0xF0, 0x20, 0x6A, 0x01, 0x6B, -0xC6, 0xF4, 0x74, 0xC2, 0xC6, 0xF4, 0x14, 0x4A, -0x03, 0x6B, 0x61, 0xC2, 0x00, 0x6B, 0x62, 0xC2, -0x5F, 0x6B, 0x63, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x2B, 0xF1, 0x48, 0xA2, 0x67, 0x40, 0x55, 0x4B, -0xFE, 0x72, 0xFE, 0x6D, 0x01, 0x60, 0x02, 0x6D, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0x88, 0x9A, -0x89, 0xE3, 0xA0, 0xC2, 0xA0, 0xA2, 0x30, 0xF0, -0x20, 0x6A, 0xC6, 0xF4, 0x14, 0x4A, 0xA4, 0xC2, -0x10, 0x95, 0x01, 0x4B, 0x01, 0x75, 0x0A, 0x61, -0x91, 0xE3, 0x03, 0x6D, 0xA0, 0xC4, 0x30, 0xF0, -0x20, 0x6C, 0xA3, 0xF1, 0xCC, 0x9C, 0x01, 0x6C, -0xD9, 0xE3, 0x09, 0x10, 0x91, 0xE3, 0x03, 0x6D, -0xA0, 0xC4, 0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF1, -0xCC, 0x9C, 0x02, 0x6C, 0xD9, 0xE3, 0x80, 0xC6, -0x86, 0xC2, 0xA5, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xC4, 0xF3, 0x90, 0xA2, -0x02, 0x4B, 0xFE, 0x74, 0x1F, 0x61, 0x30, 0xF0, -0x20, 0x6C, 0x03, 0xF1, 0x88, 0x9C, 0xC4, 0xF3, -0xB3, 0xA2, 0x02, 0x6E, 0x91, 0xE3, 0xA0, 0xC4, -0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF1, 0x8C, 0x9C, -0xC4, 0xF3, 0x54, 0xA2, 0x30, 0xF0, 0x20, 0x6D, -0x8D, 0xE3, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0xC6, 0xF4, 0x1B, 0x4C, 0x2B, 0xF1, 0x0B, 0x4D, -0x40, 0xEA, 0x13, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF1, 0x48, 0x9A, 0x00, 0x6C, 0x49, 0xE3, -0x80, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, -0x4C, 0x9A, 0x4D, 0xE3, 0x30, 0xF0, 0x20, 0x6A, -0xC6, 0xF4, 0x14, 0x4A, 0x80, 0xC3, 0x87, 0xC2, -0x88, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, -0x88, 0x9B, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, -0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xA7, 0x42, -0x91, 0xE0, 0xC6, 0xF4, 0x1D, 0x4B, 0x01, 0x4D, -0xC0, 0xA2, 0xC0, 0xC4, 0xC0, 0xA2, 0x01, 0x4A, -0xAA, 0xEA, 0xC0, 0xC3, 0x01, 0x4C, 0x01, 0x4B, -0xF7, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, -0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6D, 0x06, 0x04, -0xAB, 0xF0, 0x08, 0x4D, 0x10, 0x6E, 0x40, 0xEA, -0x00, 0x69, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF1, 0x44, 0x9A, 0xA3, 0xF1, -0x70, 0x9B, 0x49, 0xE0, 0x6D, 0xE0, 0x00, 0x6C, -0x80, 0xC2, 0x01, 0x4A, 0x6A, 0xEA, 0xFB, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, -0x64, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF1, 0x74, 0x9A, 0xFB, 0x6A, 0x80, 0xA3, -0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0x60, 0xF3, 0x44, 0x9A, 0x13, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x00, 0xF1, -0x66, 0xA2, 0x00, 0xF1, 0x47, 0xA2, 0x12, 0xD2, -0x4B, 0xE3, 0x5C, 0x32, 0xFF, 0xF7, 0x1F, 0x6B, -0x58, 0x4A, 0x6C, 0xEA, 0x11, 0xD2, 0x00, 0x18, -0x7A, 0xD4, 0x12, 0x94, 0xFF, 0xF7, 0x1F, 0x6D, -0x63, 0x6E, 0x89, 0xE2, 0x5C, 0x32, 0x4F, 0x32, -0xAC, 0xEA, 0x04, 0xD2, 0x11, 0x94, 0x13, 0x92, -0x00, 0x6D, 0x10, 0x6F, 0x40, 0xEA, 0x10, 0x93, -0x01, 0x73, 0x05, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x40, 0xF3, 0x50, 0x9A, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x40, 0xF3, 0x4C, 0x9A, 0x30, 0xF0, -0x20, 0x6D, 0x06, 0x04, 0xC6, 0xF4, 0x14, 0x4D, -0x0A, 0x06, 0x10, 0x6F, 0x40, 0xEA, 0x01, 0x49, -0xFF, 0x6A, 0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF1, 0x54, 0x9A, 0x60, 0xA2, 0x04, 0x6A, -0x6C, 0xEA, 0x03, 0x22, 0x0A, 0x71, 0x9D, 0x61, -0x02, 0x10, 0x0A, 0x59, 0x0B, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF1, 0x78, 0x9A, 0xFF, 0x6C, -0x20, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, -0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF1, 0x64, 0x9B, 0x0A, 0x02, 0x61, 0xE0, -0x0E, 0x03, 0x80, 0xA2, 0x01, 0x4A, 0x6A, 0xEA, -0x80, 0xC0, 0x01, 0x48, 0xFA, 0x61, 0x10, 0x94, -0x01, 0x74, 0x07, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF6, 0x9E, 0xA2, 0x20, 0x6D, 0x80, 0x18, -0xE2, 0x09, 0x00, 0x18, 0x84, 0xD4, 0x29, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, 0x4C, 0x9A, -0xFF, 0x69, 0x30, 0xF0, 0x20, 0x68, 0x40, 0xA2, -0x00, 0x6C, 0xFF, 0x6D, 0x4C, 0xE9, 0xA0, 0xF2, -0x50, 0x98, 0x1D, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, 0x40, 0xEA, -0x01, 0x72, 0x1F, 0x61, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF6, 0x9E, 0xA3, -0xA0, 0xF2, 0x54, 0x9A, 0x01, 0x6D, 0x18, 0x6E, -0x00, 0x6F, 0x40, 0xEA, 0xA0, 0xF2, 0x50, 0x98, -0x00, 0x6C, 0xB1, 0x67, 0x1E, 0x6E, 0x40, 0xEA, -0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0xA0, 0xF2, 0x54, 0x9A, 0x46, 0xF6, -0x9E, 0xA3, 0x01, 0x6D, 0x18, 0x6E, 0x00, 0x6F, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0xC3, 0xF3, 0x6B, 0xA2, 0x06, 0x2B, -0xC0, 0xF0, 0xA7, 0xA2, 0x01, 0x6C, 0xB6, 0x35, -0x00, 0x18, 0x0D, 0xCC, 0x30, 0xF0, 0x20, 0x6A, -0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, 0x0B, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0x7C, 0x9A, -0xFF, 0x6C, 0x20, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, -0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x17, 0x97, -0x16, 0x91, 0x15, 0x90, 0x0C, 0x63, 0x00, 0xEF, -0xF5, 0x63, 0x15, 0x62, 0x14, 0xD1, 0x13, 0xD0, -0xFF, 0xF7, 0x1F, 0x6A, 0x24, 0x67, 0x4C, 0xE9, -0x6F, 0x41, 0x4C, 0xEB, 0x02, 0x5B, 0x40, 0xF1, -0x0F, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0xF4, -0x0C, 0x4A, 0x10, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x8B, 0xF1, 0x46, 0xA2, 0x30, 0xF0, 0x20, 0x68, -0x10, 0x94, 0x11, 0xD2, 0x11, 0x96, 0x80, 0xF2, -0x4C, 0x98, 0x30, 0xF0, 0x20, 0x6D, 0x8B, 0xF1, -0x07, 0x4D, 0x40, 0xEA, 0x01, 0x6B, 0x6E, 0xE9, -0x31, 0x29, 0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, -0x20, 0x6D, 0x07, 0x04, 0x4B, 0xF1, 0x15, 0x4D, -0x10, 0x6E, 0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x98, -0x30, 0xF0, 0x20, 0x6D, 0x0B, 0x04, 0xAB, 0xF0, -0x18, 0x4D, 0x10, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x60, 0xF3, 0x44, 0x9A, 0x11, 0x96, -0x00, 0x6C, 0xA4, 0x67, 0x04, 0xD1, 0x20, 0x6F, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF3, -0x54, 0x9A, 0x10, 0x95, 0x30, 0xF0, 0x20, 0x69, -0x11, 0x97, 0x46, 0xF4, 0x0C, 0x49, 0x07, 0x04, -0xD1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, -0x80, 0xF2, 0x4C, 0x98, 0x86, 0xF4, 0x0C, 0x4C, -0xB1, 0x67, 0x29, 0x10, 0x80, 0xF2, 0x4C, 0x98, -0x30, 0xF0, 0x20, 0x6D, 0x07, 0x04, 0xAB, 0xF0, -0x18, 0x4D, 0x10, 0x6E, 0x40, 0xEA, 0x00, 0x6A, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF3, -0x44, 0x9A, 0x11, 0x96, 0x00, 0x6C, 0xA4, 0x67, -0x10, 0x6F, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x40, 0xF3, 0x44, 0x9A, 0x10, 0x95, 0x30, 0xF0, -0x20, 0x69, 0x11, 0x97, 0x46, 0xF4, 0x0C, 0x49, -0x07, 0x04, 0xD1, 0x67, 0x40, 0xEA, 0x80, 0xF2, -0x4C, 0x98, 0x30, 0xF0, 0x20, 0x6C, 0xA7, 0x41, -0x86, 0xF4, 0x0C, 0x4C, 0x01, 0x4D, 0x28, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0xC4, 0xF3, 0x70, 0xA2, 0xFE, 0x73, -0x14, 0x61, 0xC4, 0xF3, 0x52, 0xA2, 0x30, 0x6B, -0x9D, 0x67, 0x6C, 0xEA, 0x53, 0x32, 0x58, 0xC4, -0x30, 0xF0, 0x20, 0x6D, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6C, 0x80, 0xF2, 0x4C, 0x9A, -0xA6, 0xF4, 0x14, 0x4C, 0x86, 0xF4, 0x0C, 0x4D, -0x17, 0x10, 0xFE, 0x4B, 0xFF, 0x6A, 0x4C, 0xEB, -0x02, 0x5B, 0x15, 0x60, 0x30, 0xF0, 0x20, 0x6D, -0x86, 0xF4, 0x0C, 0x4D, 0x66, 0xA5, 0x03, 0x6A, -0x30, 0xF0, 0x20, 0x6C, 0x6C, 0xEA, 0x7D, 0x67, -0x58, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, -0x4C, 0x9A, 0xA6, 0xF4, 0x14, 0x4C, 0x08, 0x4D, -0x20, 0x6E, 0x40, 0xEA, 0x0D, 0x10, 0x05, 0x6B, -0x9D, 0x67, 0x78, 0xC4, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF1, 0x9C, 0x9B, 0x10, 0x6D, 0x60, 0xA4, -0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, -0x30, 0xF0, 0x20, 0x6A, 0xCB, 0xF2, 0x04, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xA7, 0x42, 0xA6, 0xF4, -0x14, 0x4B, 0x19, 0x4D, 0x01, 0x6C, 0xE0, 0xA2, -0xC0, 0xA3, 0x01, 0x4A, 0x01, 0x4B, 0xEE, 0xEE, -0x01, 0x5E, 0xD8, 0x67, 0xCB, 0xEE, 0xAA, 0xEA, -0xCC, 0xEC, 0xF5, 0x61, 0x01, 0x74, 0x0C, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0x7C, 0x9A, -0xFF, 0x6C, 0x08, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, -0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x74, 0x10, -0x7D, 0x67, 0x58, 0xA3, 0x04, 0x5A, 0x62, 0x60, -0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, -0x84, 0xF5, 0x4C, 0xC0, 0x84, 0xF5, 0x50, 0xA0, -0x01, 0x6C, 0x30, 0xF0, 0x20, 0x69, 0x8D, 0xEA, -0x84, 0xF5, 0x50, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x4C, 0x9A, 0xA6, 0xF4, 0x14, 0x49, -0x30, 0xF0, 0x20, 0x6C, 0xCB, 0xF2, 0x04, 0x4C, -0xB1, 0x67, 0x20, 0x6E, 0x40, 0xEA, 0x5D, 0x67, -0x98, 0xA2, 0xE0, 0xF0, 0xBD, 0xA0, 0xD1, 0x67, -0x80, 0x18, 0x2F, 0x00, 0x43, 0xF4, 0x54, 0xA0, -0x12, 0x22, 0xC0, 0xF0, 0x59, 0xA0, 0x01, 0x6B, -0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x68, -0xCA, 0xF3, 0x08, 0x48, 0x00, 0x69, 0x91, 0x67, -0xB0, 0x67, 0x01, 0x49, 0x00, 0x18, 0x39, 0xC5, -0x04, 0x71, 0x18, 0x48, 0xF8, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x84, 0xF5, -0x6C, 0xA2, 0x01, 0x73, 0x0B, 0x60, 0x05, 0x23, -0x02, 0x73, 0x0D, 0x60, 0x03, 0x73, 0x10, 0x60, -0x2B, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0xEB, 0xF2, -0x14, 0x4C, 0x0E, 0x10, 0x30, 0xF0, 0x20, 0x6C, -0xEB, 0xF2, 0x1C, 0x4C, 0x09, 0x10, 0x30, 0xF0, -0x20, 0x6C, 0x0B, 0xF3, 0x04, 0x4C, 0x04, 0x10, -0x30, 0xF0, 0x20, 0x6C, 0x0B, 0xF3, 0x0C, 0x4C, -0x84, 0xF5, 0xED, 0xA2, 0x30, 0xF0, 0x20, 0x6D, -0x6B, 0xF1, 0x05, 0x4D, 0x06, 0x06, 0x80, 0x18, -0x7F, 0x00, 0x0E, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x05, 0x6B, 0x84, 0xF5, -0x90, 0xA2, 0x84, 0xF5, 0x6C, 0xC2, 0x02, 0x6B, -0x6B, 0xEB, 0x8C, 0xEB, 0x84, 0xF5, 0x70, 0xC2, -0x15, 0x97, 0x14, 0x91, 0x13, 0x90, 0x0B, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x69, -0x8C, 0xE9, 0xFF, 0x68, 0xAC, 0xE8, 0x80, 0x18, -0x00, 0x00, 0x91, 0x67, 0x80, 0x18, 0x10, 0x02, -0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, 0x31, 0x01, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF1, 0x74, 0x9A, 0x0A, 0xD4, 0x0B, 0xD5, -0x40, 0xA3, 0xFF, 0x6C, 0x19, 0x6D, 0x8C, 0xEA, -0xAB, 0xED, 0xAC, 0xEA, 0x08, 0x6D, 0xAD, 0xEA, -0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x69, -0x80, 0xF2, 0x48, 0x99, 0x30, 0xF0, 0x20, 0x68, -0x2B, 0xF1, 0x04, 0x48, 0x90, 0x67, 0x00, 0x6D, -0x04, 0x6E, 0x40, 0xEA, 0x80, 0xF2, 0x48, 0x99, -0x00, 0x6D, 0xDF, 0x6E, 0x84, 0x40, 0x40, 0xEA, -0x0A, 0x91, 0x0B, 0x92, 0x30, 0xF0, 0x20, 0x68, -0x08, 0x49, 0x45, 0xE1, 0xC0, 0xF3, 0x40, 0x98, -0x81, 0x41, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x46, 0xF5, 0x18, 0x4B, 0xC4, 0xF3, 0x4D, 0xC3, -0xC0, 0xF3, 0x40, 0x98, 0x04, 0xD3, 0x84, 0x41, -0x40, 0xEA, 0x04, 0x93, 0x85, 0x41, 0xC4, 0xF3, -0x50, 0xC3, 0xC0, 0xF3, 0x40, 0x98, 0x40, 0xEA, -0x04, 0x93, 0x86, 0x41, 0xC4, 0xF3, 0x51, 0xC3, -0xC0, 0xF3, 0x40, 0x98, 0x40, 0xEA, 0x04, 0x93, -0x87, 0x41, 0xC4, 0xF3, 0x52, 0xC3, 0xC0, 0xF3, -0x40, 0x98, 0x40, 0xEA, 0x04, 0x93, 0x87, 0x41, -0x01, 0x4C, 0xC4, 0xF3, 0x53, 0xC3, 0xC0, 0xF3, -0x40, 0x98, 0x30, 0xF0, 0x20, 0x68, 0x2B, 0xF1, -0x0D, 0x48, 0x40, 0xEA, 0x04, 0x93, 0xC4, 0xF3, -0x54, 0xC3, 0x47, 0x41, 0x30, 0xF0, 0x20, 0x6B, -0x02, 0x4A, 0x2B, 0xF1, 0x15, 0x4B, 0x05, 0xD2, -0x04, 0xD3, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x40, 0x9A, 0x05, 0x94, 0x40, 0xEA, 0x40, 0xC0, -0x04, 0x93, 0x05, 0x92, 0x01, 0x48, 0x6A, 0xE8, -0x01, 0x4A, 0x05, 0xD2, 0xF2, 0x61, 0x47, 0x41, -0x2A, 0x4A, 0x30, 0xF0, 0x20, 0x68, 0x04, 0xD2, -0x4B, 0xF1, 0x15, 0x48, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x40, 0x9B, 0x04, 0x94, 0x40, 0xEA, -0x40, 0xC0, 0x04, 0x92, 0x30, 0xF0, 0x20, 0x6B, -0x01, 0x48, 0x6B, 0xF1, 0x05, 0x4B, 0x01, 0x4A, -0x6A, 0xE8, 0x04, 0xD2, 0xEF, 0x61, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, 0x87, 0x41, -0x5A, 0x4C, 0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, -0x46, 0xF5, 0x18, 0x48, 0x30, 0xF0, 0x20, 0x6B, -0x24, 0xF4, 0x4D, 0xC0, 0xC0, 0xF3, 0x40, 0x9B, -0x87, 0x41, 0x5B, 0x4C, 0x40, 0xEA, 0x24, 0xF4, -0x4E, 0xC0, 0x24, 0xF4, 0x4D, 0xA0, 0x40, 0x32, -0x04, 0xD2, 0x04, 0x93, 0x24, 0xF4, 0x4E, 0xA0, -0x00, 0x68, 0x4D, 0xEB, 0x04, 0xD3, 0x12, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x87, 0x41, 0xC0, 0xF3, -0x40, 0x9A, 0x5C, 0x4C, 0x11, 0xE4, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, -0x6D, 0xE0, 0x24, 0xF4, 0x4F, 0xC3, 0x01, 0x48, -0xFF, 0x6A, 0x4C, 0xE8, 0x04, 0x92, 0x43, 0xE8, -0xEB, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, -0x18, 0x4B, 0xC4, 0xF3, 0x51, 0xA3, 0xC4, 0xF3, -0x72, 0xA3, 0x40, 0x32, 0x6D, 0xEA, 0x08, 0x6B, -0x4C, 0xEB, 0x0A, 0x23, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF0, 0x54, 0x9A, 0x03, 0x6B, 0x01, 0x6C, -0x60, 0xC2, 0x80, 0x18, 0x17, 0x09, 0x19, 0x10, -0x07, 0x6C, 0x4C, 0xEC, 0x4F, 0x44, 0xFF, 0xF7, -0x1F, 0x6B, 0x6C, 0xEA, 0x02, 0x5A, 0x11, 0x60, -0x00, 0x6D, 0x80, 0x18, 0xC1, 0x02, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF1, 0x74, 0x9A, 0xFF, 0x6C, -0x19, 0x6D, 0x40, 0xA3, 0xAB, 0xED, 0x8C, 0xEA, -0xAC, 0xEA, 0x10, 0x6D, 0xAD, 0xEA, 0x8C, 0xEA, -0x40, 0xC3, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x00, 0x6A, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF1, 0x60, 0x9B, 0xFF, 0x6A, 0x8C, 0xEA, -0x80, 0xAB, 0xE1, 0xF7, 0x1F, 0x6B, 0x30, 0xF0, -0x20, 0x6E, 0x8C, 0xEB, 0x69, 0xE2, 0x5C, 0x34, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x58, 0x9A, -0x10, 0x4C, 0x06, 0x6D, 0xEB, 0xF5, 0x08, 0x4E, -0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0x00, 0x4B, -0x60, 0x9B, 0x0F, 0xD7, 0x0D, 0xD5, 0x0E, 0xD6, -0x20, 0xAB, 0xFF, 0x6A, 0x8C, 0xEA, 0xE1, 0xF7, -0x1F, 0x6C, 0x8C, 0xE9, 0x25, 0xE2, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0x30, 0xF0, 0x20, 0x68, 0xCB, 0xF6, -0x00, 0x4C, 0x00, 0x6D, 0xA0, 0xF1, 0x00, 0x6E, -0x40, 0xEA, 0x3C, 0x31, 0xA0, 0xF3, 0x58, 0x98, -0x0D, 0x96, 0x87, 0x41, 0x12, 0x4C, 0x01, 0x6D, -0x40, 0xEA, 0xA0, 0xF3, 0x58, 0x98, 0x0E, 0x96, -0x87, 0x41, 0x13, 0x4C, 0x01, 0x6D, 0x40, 0xEA, -0xA0, 0xF3, 0x58, 0x98, 0x0F, 0x96, 0x87, 0x41, -0x14, 0x4C, 0x01, 0x6D, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF1, 0x00, 0x4A, 0x40, 0x9A, -0x0D, 0x93, 0xE1, 0xF7, 0x1F, 0x6C, 0x20, 0xAA, -0x40, 0xA3, 0x30, 0xF0, 0x20, 0x6E, 0x8C, 0xE9, -0x25, 0xE2, 0xA0, 0xF3, 0x58, 0x98, 0x3C, 0x31, -0x81, 0x41, 0x01, 0x6D, 0xCB, 0xF7, 0x1C, 0x4E, -0x40, 0xEA, 0x02, 0x49, 0x00, 0x6A, 0x05, 0xD1, -0x04, 0xD2, 0x40, 0x10, 0x04, 0x92, 0x1C, 0x68, -0x30, 0xF0, 0x20, 0x69, 0x18, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xCB, 0xF6, 0x04, 0x4A, 0x00, 0x6D, -0x1C, 0x6E, 0x12, 0xE8, 0x01, 0xE2, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, 0x90, 0x67, -0x40, 0xEA, 0xA0, 0xF3, 0x58, 0x99, 0x05, 0x94, -0x01, 0x6D, 0xC4, 0x40, 0x40, 0xEA, 0x05, 0x92, -0x62, 0xA8, 0xC7, 0x40, 0x01, 0x4A, 0x40, 0xD8, -0x6D, 0xE2, 0xA0, 0xF3, 0x58, 0x99, 0x83, 0x67, -0x05, 0xD3, 0x01, 0x6D, 0x05, 0x4E, 0x40, 0xEA, -0x05, 0x93, 0x46, 0xA8, 0xC7, 0x40, 0x01, 0x4B, -0x62, 0xD8, 0x4D, 0xE3, 0xEE, 0x4A, 0x06, 0xD3, -0x4A, 0xC8, 0x05, 0x92, 0x01, 0x6D, 0x11, 0x4E, -0x11, 0x4A, 0x44, 0xD8, 0xA0, 0xF3, 0x58, 0x99, -0x06, 0x94, 0x40, 0xEA, 0x04, 0x94, 0x06, 0x93, -0xFF, 0x6A, 0x01, 0x4C, 0x01, 0x4B, 0x4C, 0xEC, -0x05, 0xD3, 0x04, 0xD4, 0x30, 0xF0, 0x20, 0x6A, -0xCB, 0xF7, 0x5C, 0xA2, 0x04, 0x93, 0x43, 0xEB, -0xB9, 0x61, 0x05, 0x94, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF3, 0x58, 0x9A, 0x30, 0xF0, 0x20, 0x6E, -0x01, 0x4C, 0x01, 0x6D, 0xEB, 0xF7, 0x18, 0x4E, -0x40, 0xEA, 0x05, 0x94, 0x00, 0x69, 0x02, 0x4C, -0x04, 0xD4, 0x1F, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x2C, 0x30, 0xEB, 0xF7, 0x00, 0x4A, 0x01, 0xE2, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, -0x90, 0x67, 0x00, 0x6D, 0x08, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x58, 0x9A, -0x04, 0x94, 0x01, 0x6D, 0xC4, 0x40, 0x40, 0xEA, -0x04, 0x92, 0x62, 0xA8, 0x01, 0x49, 0x01, 0x4A, -0x40, 0xD8, 0x6D, 0xE2, 0xFF, 0x6A, 0x04, 0xD3, -0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, -0x18, 0x48, 0xA5, 0xF2, 0x40, 0xA0, 0x43, 0xE9, -0xD9, 0x61, 0x30, 0xF0, 0x20, 0x69, 0x04, 0x94, -0xA0, 0xF3, 0x58, 0x99, 0x30, 0xF0, 0x20, 0x6E, -0x01, 0x4C, 0x01, 0x6D, 0x4C, 0xF0, 0x04, 0x4E, -0x40, 0xEA, 0x04, 0x92, 0xE5, 0xF2, 0x6C, 0xA8, -0x30, 0xF0, 0x20, 0x6E, 0x02, 0x4A, 0x01, 0x4B, -0xE5, 0xF2, 0x48, 0xD8, 0x49, 0xE3, 0x04, 0xD2, -0x04, 0x94, 0xA0, 0xF3, 0x58, 0x99, 0x01, 0x6D, -0x4C, 0xF0, 0x0C, 0x4E, 0x40, 0xEA, 0x04, 0x92, -0xE5, 0xF2, 0x74, 0xA8, 0x30, 0xF0, 0x20, 0x6E, -0x01, 0x4A, 0x01, 0x4B, 0xE5, 0xF2, 0x50, 0xD8, -0x49, 0xE3, 0x04, 0xD2, 0x04, 0x94, 0xA0, 0xF3, -0x58, 0x99, 0x01, 0x6D, 0x4C, 0xF0, 0x14, 0x4E, -0x40, 0xEA, 0x04, 0x92, 0xE5, 0xF2, 0x7C, 0xA8, -0x30, 0xF0, 0x20, 0x6E, 0x01, 0x4A, 0x01, 0x4B, -0xE5, 0xF2, 0x58, 0xD8, 0x49, 0xE3, 0x04, 0xD2, -0x04, 0x94, 0xA0, 0xF3, 0x58, 0x99, 0x01, 0x6D, -0x4C, 0xF0, 0x1C, 0x4E, 0x40, 0xEA, 0x04, 0x92, -0x30, 0xF0, 0x20, 0x6E, 0x01, 0x6D, 0x01, 0x4A, -0x05, 0xF3, 0x40, 0xD8, 0x05, 0xF3, 0x04, 0xA8, -0x2C, 0xF0, 0x1C, 0x4E, 0x01, 0x48, 0x41, 0xE0, -0xA0, 0xF3, 0x58, 0x99, 0x90, 0x67, 0x01, 0x48, -0x40, 0xEA, 0x04, 0xD0, 0x00, 0x68, 0x1F, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x0C, 0x31, 0xEB, 0xF7, -0x1C, 0x4A, 0x25, 0xE2, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x48, 0x9A, 0x91, 0x67, 0x00, 0x6D, -0x08, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF3, 0x58, 0x9A, 0x04, 0x94, 0x02, 0x6D, -0xC4, 0x41, 0x40, 0xEA, 0x04, 0x92, 0x62, 0xA9, -0x01, 0x48, 0x02, 0x4A, 0x40, 0xD9, 0x6D, 0xE2, -0xFF, 0x6A, 0x04, 0xD3, 0x4C, 0xE8, 0x30, 0xF0, -0x20, 0x6A, 0x2C, 0xF0, 0x5C, 0xA2, 0x43, 0xE8, -0xDB, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xC0, 0xA4, 0x20, 0xF1, 0xE6, 0xA2, 0x02, 0x6B, -0x01, 0x6D, 0x6B, 0xEB, 0xAC, 0xEE, 0xEC, 0xEB, -0xCD, 0xEB, 0x20, 0xF1, 0x66, 0xC2, 0xAC, 0xEB, -0x2B, 0x23, 0x62, 0xA4, 0x20, 0xF1, 0xE8, 0xA2, -0x6A, 0x33, 0xAC, 0xEB, 0x68, 0x36, 0x05, 0x6B, -0x6B, 0xEB, 0xEC, 0xEB, 0xCD, 0xEB, 0x20, 0xF1, -0x68, 0xC2, 0xC2, 0xA4, 0xDA, 0x36, 0xAC, 0xEE, -0xD8, 0x37, 0x41, 0x6E, 0xCB, 0xEE, 0x6C, 0xEE, -0xED, 0xEE, 0x20, 0xF1, 0xC8, 0xC2, 0x62, 0xA4, -0x6E, 0x33, 0xAC, 0xEB, 0x6C, 0x35, 0x09, 0x6B, -0x6B, 0xEB, 0xCC, 0xEB, 0xAD, 0xEB, 0x20, 0xF1, -0x68, 0xC2, 0xA2, 0xA4, 0x7F, 0x6C, 0x6C, 0xEC, -0xBE, 0x35, 0xBC, 0x35, 0xAD, 0xEC, 0x20, 0xF1, -0x88, 0xC2, 0x01, 0x6C, 0x80, 0x18, 0x16, 0x40, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x60, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x20, 0xF1, 0x6D, 0xC2, 0x61, 0xA4, -0x20, 0xF1, 0x6E, 0xC2, 0x62, 0xA4, 0x20, 0xF1, -0x6F, 0xC2, 0x63, 0xA4, 0x20, 0xF1, 0x70, 0xC2, -0x64, 0xA4, 0x20, 0xF1, 0x71, 0xC2, 0x65, 0xA4, -0x20, 0xF1, 0x72, 0xC2, 0x20, 0xE8, 0x00, 0x65, -0xE2, 0x63, 0x3B, 0x62, 0x3A, 0xD1, 0x39, 0xD0, -0x00, 0x6A, 0x3C, 0xD4, 0x7D, 0x67, 0x9D, 0x67, -0x3F, 0xD7, 0x3E, 0xD6, 0x50, 0xCB, 0x48, 0xCC, -0x3C, 0x90, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF4, -0x7C, 0x9B, 0x30, 0xF0, 0x20, 0x69, 0x07, 0xD2, -0x06, 0xD2, 0x09, 0xD2, 0x0A, 0xD2, 0x0B, 0xD2, -0x0C, 0xD2, 0x08, 0x48, 0xC0, 0xF3, 0x40, 0x99, -0xA1, 0xE0, 0x05, 0xD3, 0x8E, 0x40, 0x40, 0xEA, -0xBD, 0x67, 0x50, 0xC5, 0xC0, 0xF3, 0x40, 0x99, -0x8F, 0x40, 0x40, 0xEA, 0x7D, 0x67, 0x51, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x3E, 0x94, 0x80, 0xF2, -0x4C, 0x9A, 0x04, 0x05, 0x02, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, -0x0D, 0x04, 0x00, 0x6D, 0x80, 0x6E, 0x40, 0xEA, -0x3C, 0x91, 0x07, 0x04, 0x20, 0xF0, 0x02, 0x05, -0x0A, 0x49, 0x2E, 0xD4, 0x34, 0xD5, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, 0x91, 0x67, -0x01, 0x49, 0x40, 0xEA, 0x2E, 0x94, 0x34, 0x95, -0x40, 0xC4, 0x01, 0x4C, 0xAA, 0xEC, 0x2E, 0xD4, -0xF2, 0x61, 0x07, 0x01, 0x30, 0xF0, 0x20, 0x6D, -0x91, 0x67, 0x6B, 0xF0, 0x1F, 0x4D, 0x06, 0x6E, -0x00, 0x18, 0xCD, 0xD4, 0xA0, 0xF1, 0x15, 0x2A, -0x7D, 0x67, 0x50, 0xA3, 0x08, 0x72, 0xA0, 0xF0, -0x11, 0x61, 0x51, 0xA3, 0xA0, 0xF0, 0x0E, 0x2A, -0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF3, 0x40, 0x9C, -0x87, 0x40, 0x02, 0x4C, 0x40, 0xEA, 0x3F, 0x95, -0x06, 0x03, 0x40, 0xC5, 0x47, 0x40, 0x09, 0x4A, -0x2F, 0xD2, 0x2E, 0xD3, 0x35, 0xD1, 0x30, 0xF0, -0x20, 0x69, 0x2F, 0x94, 0xC0, 0xF3, 0x40, 0x99, -0x40, 0xEA, 0x2E, 0x94, 0x2F, 0x95, 0x40, 0xC4, -0x35, 0x92, 0x01, 0x4C, 0x01, 0x4D, 0x4A, 0xEC, -0x2F, 0xD5, 0x2E, 0xD4, 0xF0, 0x61, 0xC0, 0xF3, -0x40, 0x99, 0x87, 0x40, 0x0D, 0x4C, 0x40, 0xEA, -0x2E, 0xD2, 0xC0, 0xF3, 0x40, 0x99, 0x87, 0x40, -0x0E, 0x4C, 0x40, 0xEA, 0x2E, 0x93, 0xFF, 0xF7, -0x1F, 0x6C, 0x60, 0x33, 0x4D, 0xEB, 0xC0, 0xF3, -0x40, 0x99, 0x8C, 0xEB, 0x87, 0x40, 0x2F, 0xD3, -0x0F, 0x4C, 0x40, 0xEA, 0x2E, 0xD2, 0xC0, 0xF3, -0x40, 0x99, 0x87, 0x40, 0x10, 0x4C, 0x40, 0xEA, -0x2E, 0x95, 0x30, 0xF0, 0x20, 0x68, 0x00, 0x6B, -0xA0, 0x31, 0x4D, 0xE9, 0xFF, 0xF7, 0x1F, 0x6A, -0x4C, 0xE9, 0x82, 0xF0, 0x08, 0x48, 0x2E, 0xD3, -0x2E, 0x95, 0x3F, 0x92, 0xFF, 0x6C, 0x8C, 0xED, -0x31, 0xD5, 0x60, 0xA2, 0x40, 0xA0, 0x6E, 0xEA, -0x56, 0x2A, 0x43, 0xA0, 0x02, 0x6B, 0x6C, 0xEA, -0x04, 0x22, 0x44, 0xA8, 0x2F, 0x93, 0x6E, 0xEA, -0x4E, 0x2A, 0x43, 0xA0, 0x01, 0x6B, 0x6C, 0xEA, -0x03, 0x22, 0x45, 0xA8, 0x2E, 0xEA, 0x47, 0x2A, -0x41, 0xA0, 0x02, 0x6B, 0x6C, 0xEA, 0x19, 0x22, -0x00, 0x6C, 0x30, 0xD4, 0x30, 0x95, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x80, 0xF2, -0x09, 0x4D, 0xB0, 0x35, 0xB5, 0xE2, 0x06, 0x04, -0x06, 0x4D, 0x04, 0x6E, 0x00, 0x18, 0xCD, 0xD4, -0x03, 0x2A, 0x01, 0x6D, 0x30, 0xD5, 0x07, 0x10, -0x30, 0x92, 0x01, 0x4A, 0x04, 0x72, 0x30, 0xD2, -0xE9, 0x61, 0x00, 0x6B, 0x30, 0xD3, 0x41, 0xA0, -0x01, 0x6B, 0x6C, 0xEA, 0x0D, 0x22, 0x2E, 0x94, -0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF0, 0x08, 0x4A, -0x90, 0x35, 0xC2, 0xA0, 0xB5, 0xE2, 0x06, 0x04, -0x04, 0x4D, 0x00, 0x18, 0xCD, 0xD4, 0x0E, 0x22, -0x41, 0xA0, 0x04, 0x6B, 0x6C, 0xEA, 0x06, 0x22, -0x06, 0x04, 0x05, 0x05, 0xC3, 0x67, 0x00, 0x18, -0xCD, 0xD4, 0x04, 0x22, 0x41, 0xA0, 0x02, 0x22, -0x30, 0x95, 0x09, 0x25, 0x31, 0x94, 0x30, 0xF0, -0x20, 0x6A, 0x82, 0xF0, 0x08, 0x4A, 0x90, 0x33, -0x69, 0xE2, 0x4C, 0xA2, 0x07, 0x11, 0x2E, 0x95, -0x10, 0x48, 0x01, 0x4D, 0x08, 0x75, 0x2E, 0xD5, -0x9B, 0x61, 0xFF, 0x10, 0x7D, 0x67, 0x50, 0xA3, -0x88, 0x72, 0x05, 0x61, 0x51, 0xA3, 0xD9, 0x72, -0x0C, 0x6A, 0xE0, 0xF0, 0x17, 0x60, 0x9D, 0x67, -0x50, 0xA4, 0x08, 0x72, 0x08, 0x61, 0x51, 0xA4, -0x06, 0x72, 0x05, 0x61, 0x3F, 0x95, 0x01, 0x6A, -0x4B, 0xEA, 0x40, 0xC5, 0xEA, 0x10, 0x7D, 0x67, -0x50, 0xA3, 0x86, 0x72, 0xE0, 0xF0, 0x05, 0x61, -0x51, 0xA3, 0xDD, 0x72, 0xE0, 0xF0, 0x01, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, -0x86, 0x40, 0x27, 0x40, 0x40, 0xEA, 0x3F, 0x94, -0x00, 0x6D, 0x11, 0x49, 0x40, 0xC4, 0x2E, 0xD5, -0x2F, 0xD5, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x40, 0x9B, 0x91, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6C, 0x30, 0xD2, 0xC0, 0xF3, 0x40, 0x9C, -0x81, 0x41, 0x40, 0xEA, 0x2E, 0x93, 0xBD, 0x67, -0x71, 0xE5, 0x30, 0x95, 0xA0, 0x33, 0x4D, 0xEB, -0x72, 0xCC, 0x2E, 0x92, 0x2F, 0x93, 0x30, 0xF0, -0x20, 0x6C, 0x46, 0xF5, 0x18, 0x4C, 0x55, 0xE4, -0x51, 0xE4, 0x64, 0x32, 0x0D, 0x03, 0x4D, 0xE3, -0xC5, 0xF0, 0x16, 0x4D, 0xC5, 0xF0, 0x17, 0x4C, -0x00, 0x6A, 0xC0, 0xA5, 0xE0, 0xA4, 0x01, 0x4A, -0xC0, 0x36, 0xED, 0xEE, 0xC0, 0xCB, 0xFF, 0x6E, -0xCC, 0xEA, 0x08, 0x72, 0x12, 0x4D, 0x12, 0x4C, -0x10, 0x4B, 0xF3, 0x61, 0x2F, 0x94, 0x2E, 0x95, -0x02, 0x49, 0x01, 0x4C, 0x02, 0x4D, 0x08, 0x74, -0x2F, 0xD4, 0x2E, 0xD5, 0xC6, 0x61, 0x30, 0xF0, -0x20, 0x69, 0xC0, 0xF3, 0x40, 0x99, 0x87, 0x40, -0x21, 0x4C, 0x40, 0xEA, 0x2E, 0xD2, 0xC0, 0xF3, -0x40, 0x99, 0x87, 0x40, 0x22, 0x4C, 0x40, 0xEA, -0x2E, 0x93, 0xFF, 0xF7, 0x1F, 0x6C, 0x60, 0x33, -0x4D, 0xEB, 0xC0, 0xF3, 0x40, 0x99, 0x8C, 0xEB, -0x87, 0x40, 0x2E, 0xD3, 0x23, 0x4C, 0x40, 0xEA, -0x2F, 0xD2, 0xC0, 0xF3, 0x40, 0x99, 0x87, 0x40, -0x24, 0x4C, 0x40, 0xEA, 0x2F, 0x95, 0x00, 0x6B, -0x30, 0xF0, 0x20, 0x68, 0xA0, 0x31, 0x4D, 0xE9, -0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE9, 0x02, 0xF1, -0x08, 0x48, 0x2F, 0xD3, 0x32, 0xD3, 0x2F, 0x92, -0xFF, 0x6D, 0x3F, 0x94, 0xAC, 0xEA, 0x30, 0xD2, -0x60, 0xA4, 0x40, 0xA0, 0x6E, 0xEA, 0x5F, 0x2A, -0x43, 0xA0, 0x02, 0x6B, 0x6C, 0xEA, 0x04, 0x22, -0x4A, 0xA8, 0x2E, 0x95, 0xAE, 0xEA, 0x57, 0x2A, -0x43, 0xA0, 0x01, 0x6B, 0x6C, 0xEA, 0x03, 0x22, -0x4B, 0xA8, 0x2E, 0xEA, 0x50, 0x2A, 0x41, 0xA0, -0x02, 0x6B, 0x6C, 0xEA, 0x13, 0x22, 0x0D, 0x02, -0x2D, 0x03, 0x31, 0xD2, 0x36, 0xD3, 0x31, 0x95, -0x09, 0x04, 0x10, 0x6E, 0x00, 0x18, 0xCD, 0xD4, -0x03, 0x2A, 0x01, 0x6C, 0x32, 0xD4, 0x06, 0x10, -0x31, 0x95, 0x36, 0x92, 0x10, 0x4D, 0x4A, 0xED, -0x31, 0xD5, 0xF1, 0x61, 0x41, 0xA0, 0x01, 0x6B, -0x6C, 0xEA, 0x0F, 0x22, 0x2F, 0x92, 0x1C, 0x6D, -0xC2, 0xA0, 0xB8, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x02, 0xF1, 0x08, 0x4A, 0x09, 0x04, 0x12, 0xED, -0xB5, 0xE2, 0x04, 0x4D, 0x00, 0x18, 0xCD, 0xD4, -0x0D, 0x22, 0x41, 0xA0, 0x04, 0x6B, 0x6C, 0xEA, -0x05, 0x22, 0x7D, 0x67, 0x52, 0xAB, 0x42, 0x32, -0xFF, 0x72, 0x04, 0x60, 0x41, 0xA0, 0x02, 0x22, -0x32, 0x94, 0x19, 0x24, 0x42, 0xA0, 0x10, 0x72, -0x0B, 0x60, 0x0A, 0x22, 0x0E, 0x72, 0x13, 0x61, -0xBD, 0x67, 0x59, 0xAD, 0x02, 0xF0, 0x00, 0x5A, -0x0E, 0x61, 0x02, 0xF4, 0x00, 0x5A, 0x0B, 0x60, -0x30, 0x94, 0x1C, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0x78, 0xEC, 0x02, 0xF1, 0x08, 0x4A, 0x12, 0xEB, -0x49, 0xE3, 0x58, 0xA2, 0x07, 0x10, 0x2F, 0x95, -0x1C, 0x48, 0x01, 0x4D, 0x0E, 0x75, 0x2F, 0xD5, -0x92, 0x61, 0x00, 0x6A, 0x3B, 0x97, 0x3A, 0x91, -0x39, 0x90, 0x1E, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x10, 0x92, 0x0C, 0xD4, 0x0D, 0xD5, 0x04, 0xD2, -0x04, 0x93, 0xFF, 0x6A, 0x4C, 0xEF, 0x4C, 0xEB, -0x04, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, -0x6C, 0x9B, 0x0E, 0xD6, 0x06, 0xD7, 0x60, 0xA3, -0x6C, 0xEA, 0x05, 0xD2, 0x00, 0x18, 0x84, 0xD4, -0x1C, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, -0x50, 0x9A, 0x00, 0x6C, 0xFF, 0x6D, 0x33, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, -0x5C, 0x9A, 0x00, 0x68, 0x40, 0xEA, 0x01, 0x72, -0x19, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0xA0, 0xF2, 0x54, 0x9A, 0x46, 0xF6, -0x9C, 0xA3, 0x01, 0x6D, 0x18, 0x6E, 0xF0, 0x67, -0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0xA0, 0xF2, 0x54, 0x9A, 0x46, 0xF6, -0x9C, 0xA3, 0x01, 0x6D, 0x18, 0x6E, 0x00, 0x6F, -0x40, 0xEA, 0x02, 0x67, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0x50, 0x9A, -0x83, 0xF1, 0x6C, 0x9B, 0x49, 0xE0, 0x6D, 0xE0, -0x80, 0xA2, 0xA0, 0xA3, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF1, 0x78, 0x9B, 0xFF, 0x6A, 0x4C, 0xEC, -0x6D, 0xE0, 0xC0, 0xA3, 0x4C, 0xED, 0x4C, 0xEE, -0x80, 0x18, 0xC4, 0x06, 0x06, 0x95, 0x87, 0x40, -0x29, 0x4C, 0x22, 0x67, 0x80, 0x18, 0x39, 0x0D, -0x04, 0x94, 0x30, 0x2C, 0x30, 0xF0, 0x20, 0x6C, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x88, 0x9C, -0x30, 0xF0, 0x20, 0x6D, 0xC3, 0xF1, 0x44, 0x9A, -0xC3, 0xF1, 0xBC, 0x9D, 0x0D, 0x93, 0x91, 0xE0, -0x49, 0xE0, 0x31, 0xE4, 0xB5, 0xE0, 0xC0, 0xA3, -0xC0, 0xC2, 0xC0, 0xA3, 0x01, 0x4A, 0xAA, 0xEA, -0xC0, 0xC4, 0x01, 0x4B, 0x01, 0x4C, 0xF7, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x48, 0x9A, -0x41, 0xE0, 0x21, 0xE0, 0x00, 0x6A, 0x0C, 0x95, -0x4D, 0xE5, 0x60, 0xA3, 0x60, 0xC0, 0x0E, 0x95, -0x68, 0x40, 0xFE, 0x4B, 0x51, 0xE5, 0x80, 0xA4, -0x01, 0x4A, 0x04, 0x72, 0x80, 0xC3, 0x01, 0x48, -0xF2, 0x61, 0x2D, 0x10, 0x04, 0x92, 0x01, 0x72, -0x2A, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, -0x84, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, -0x68, 0x9B, 0x30, 0xF0, 0x20, 0x6A, 0x0B, 0xF2, -0x08, 0x4A, 0x6D, 0xE0, 0x91, 0xE0, 0x2D, 0xE3, -0xA6, 0x42, 0xC0, 0xA2, 0xC0, 0xC4, 0xCA, 0xA2, -0x01, 0x4A, 0xAA, 0xEA, 0xC0, 0xC3, 0x01, 0x4C, -0x01, 0x4B, 0xF7, 0x61, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF1, 0x68, 0x9B, 0x30, 0xF0, 0x20, 0x6A, -0x0B, 0xF2, 0x18, 0x4A, 0x61, 0xE0, 0x21, 0xE0, -0x64, 0x42, 0x80, 0xA2, 0x01, 0x4A, 0x6A, 0xEA, -0x80, 0xC0, 0x01, 0x48, 0xFA, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0xE0, 0xF0, -0x7C, 0xA2, 0x02, 0x73, 0x05, 0x61, 0x00, 0xF1, -0x84, 0xA2, 0xB1, 0x67, 0x80, 0x18, 0xE2, 0x09, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x78, 0x9A, -0xFF, 0x68, 0x10, 0x6C, 0x40, 0xA3, 0x34, 0x6E, -0x0C, 0xEA, 0x8D, 0xEA, 0x0C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, -0x05, 0x95, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, -0x0A, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, -0x7C, 0x9A, 0x20, 0x6C, 0x40, 0xA3, 0x0C, 0xEA, -0x8D, 0xEA, 0x0C, 0xEA, 0x40, 0xC3, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xA0, 0xF0, 0x8F, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, -0x8C, 0xEB, 0x05, 0x6C, 0x8B, 0xEC, 0x8C, 0xEB, -0xA0, 0xF0, 0x6F, 0xC2, 0x0A, 0x6B, 0xA0, 0xF0, -0x70, 0xC2, 0x00, 0x6B, 0x05, 0xF3, 0x68, 0xC2, -0x05, 0xF3, 0x69, 0xC2, 0x05, 0xF3, 0x6A, 0xC2, +0x01, 0x63, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xEC, +0xAC, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF0, 0x44, 0x9A, 0x8C, 0x34, 0x30, 0xF0, +0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, 0x62, 0xF3, +0x68, 0x9B, 0x6D, 0xEA, 0x0C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF0, 0x44, 0x9A, 0x8C, 0x34, +0x30, 0xF0, 0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, +0x82, 0xF3, 0x64, 0x9B, 0x6C, 0xEA, 0x40, 0xDC, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, +0xAC, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF0, 0x44, 0x9A, 0x8C, 0x34, 0x30, 0xF0, +0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, 0xA2, 0xF3, +0x70, 0x9B, 0x6D, 0xEA, 0x0C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF0, 0x44, 0x9A, 0x8C, 0x34, +0x30, 0xF0, 0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, +0xA2, 0xF3, 0x74, 0x9B, 0x6C, 0xEA, 0x40, 0xDC, 0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xA0, 0xA4, 0xA0, 0xF0, -0xEF, 0xA2, 0x02, 0x6B, 0x01, 0x6E, 0x6B, 0xEB, -0xCC, 0xED, 0xEC, 0xEB, 0xAD, 0xEB, 0xA3, 0x67, -0xCC, 0xED, 0xA0, 0xF0, 0x6F, 0xC2, 0x19, 0x25, -0xA0, 0xA4, 0x07, 0x6F, 0xAE, 0x35, 0xEC, 0xED, -0x05, 0xF3, 0xA8, 0xC2, 0xA0, 0xA4, 0xAA, 0x35, -0xCC, 0xED, 0xA8, 0x36, 0x05, 0x6D, 0xAB, 0xED, -0x6C, 0xED, 0xCD, 0xED, 0xA0, 0xF0, 0xAF, 0xC2, -0xA0, 0xA4, 0x02, 0x6B, 0xAC, 0xEB, 0xFF, 0x6D, -0xAC, 0xEB, 0x03, 0x23, 0x61, 0xA4, 0xA0, 0xF0, -0x70, 0xC2, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0x6C, 0xF0, 0x03, 0x4C, -0x00, 0x6D, 0x05, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x08, 0x6B, -0xA0, 0xF0, 0x77, 0xC2, 0x03, 0x6B, 0xA0, 0xF0, -0x78, 0xC2, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x04, 0x67, -0x80, 0x18, 0xD5, 0x05, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x80, 0xA0, 0xA0, 0xF0, -0xD6, 0xA2, 0x02, 0x6B, 0x01, 0x6D, 0x6B, 0xEB, -0xAC, 0xEC, 0xCC, 0xEB, 0x8D, 0xEB, 0x83, 0x67, -0xAC, 0xEC, 0xA0, 0xF0, 0x76, 0xC2, 0x29, 0x24, -0x80, 0xA0, 0x07, 0x6E, 0x92, 0x34, 0xCC, 0xEC, -0x05, 0xF3, 0x8F, 0xC2, 0xC0, 0xA0, 0x02, 0x6C, -0xCC, 0xEC, 0xFF, 0x6E, 0xCC, 0xEC, 0x1D, 0x24, -0x81, 0xA0, 0xA0, 0xF0, 0x97, 0xC2, 0x82, 0xA0, -0xA0, 0xF0, 0x98, 0xC2, 0x80, 0xA0, 0x8A, 0x34, -0xAC, 0xEC, 0x88, 0x36, 0x05, 0x6C, 0x8B, 0xEC, -0x6C, 0xEC, 0xCD, 0xEC, 0xA0, 0xF0, 0x96, 0xC2, -0x63, 0xA0, 0xA0, 0xF0, 0x79, 0xC2, 0x60, 0xA0, -0x6E, 0x33, 0xAC, 0xEB, 0x6C, 0x35, 0x09, 0x6B, -0x6B, 0xEB, 0x8C, 0xEB, 0xAD, 0xEB, 0xA0, 0xF0, -0x76, 0xC2, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0xEC, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x68, 0x80, 0xF2, 0x4C, 0x9B, 0x8B, 0xF2, -0x0C, 0x48, 0x26, 0x67, 0x0A, 0xD4, 0x10, 0x6E, -0x90, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, -0x0A, 0x95, 0x80, 0xF2, 0x4C, 0x9C, 0x87, 0x40, -0x09, 0x4C, 0x10, 0x6E, 0x40, 0xEA, 0x00, 0xF6, -0x22, 0x34, 0x00, 0xF6, 0x20, 0x32, 0x8D, 0xEA, -0x1F, 0xF7, 0x00, 0x6D, 0x22, 0x34, 0xAC, 0xEC, -0x8D, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF2, -0x8C, 0x9C, 0x20, 0x31, 0x30, 0xF0, 0x20, 0x6B, -0x8C, 0xE9, 0x46, 0xF5, 0x18, 0x4B, 0x2D, 0xEA, -0x44, 0xF5, 0x54, 0xDB, 0x5D, 0x67, 0x87, 0x42, -0x09, 0x4C, 0x40, 0xA4, 0x44, 0xF5, 0x5B, 0xC3, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x00, 0xF0, 0x16, 0x02, -0x04, 0x44, 0x04, 0x01, 0x06, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, 0x90, 0x67, -0x01, 0x48, 0x40, 0xEA, 0x40, 0xC1, 0x06, 0x92, -0x01, 0x49, 0x4A, 0xE9, 0xF4, 0x61, 0x10, 0x10, -0xC0, 0xA2, 0xA0, 0xA3, 0xCE, 0xED, 0x02, 0x25, -0x00, 0x6A, 0x05, 0x10, 0x01, 0x4A, 0x8A, 0xEA, -0x01, 0x4B, 0xF6, 0x61, 0x01, 0x6A, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x19, 0x4A, -0x04, 0x03, 0x86, 0x42, 0xE9, 0x17, 0x00, 0x65, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x07, 0x44, 0x00, 0xF0, 0x16, 0x02, 0x09, 0x48, -0x04, 0x01, 0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x40, 0x9A, 0x90, 0x67, 0x01, 0x48, -0x40, 0xEA, 0x40, 0xC1, 0x06, 0x92, 0x01, 0x49, -0x4A, 0xE9, 0xF4, 0x61, 0x10, 0x10, 0xC0, 0xA2, -0xA0, 0xA3, 0xCE, 0xED, 0x02, 0x25, 0x00, 0x6A, -0x05, 0x10, 0x01, 0x4A, 0x8A, 0xEA, 0x01, 0x4B, -0xF6, 0x61, 0x01, 0x6A, 0x0B, 0x97, 0x0A, 0x91, -0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x30, 0xF0, -0x20, 0x6A, 0x6B, 0xF0, 0x1F, 0x4A, 0x04, 0x03, -0x86, 0x42, 0xE9, 0x17, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x08, 0x4C, 0xC0, 0xF3, 0x40, 0x98, 0xA5, 0xE4, -0x81, 0x41, 0x40, 0xEA, 0x10, 0x2A, 0xC0, 0xF3, -0x40, 0x98, 0x84, 0x41, 0x40, 0xEA, 0x01, 0x72, -0x0A, 0x61, 0xC0, 0xF3, 0x40, 0x98, 0x87, 0x41, -0x01, 0x4C, 0x40, 0xEA, 0x01, 0x6B, 0x6E, 0xEA, -0x01, 0x5A, 0x58, 0x67, 0x01, 0x10, 0x00, 0x6A, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0xC0, 0xF3, 0x40, 0x98, 0x85, 0xE5, 0x86, 0x41, -0x40, 0xEA, 0x08, 0x72, 0x34, 0x61, 0xC0, 0xF3, -0x40, 0x98, 0x87, 0x41, 0x40, 0xEA, 0x2F, 0x2A, -0x07, 0x41, 0x05, 0x02, 0x11, 0x48, 0x04, 0x01, -0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x40, 0x9A, 0x90, 0x67, 0x01, 0x48, 0x40, 0xEA, -0x40, 0xC1, 0x06, 0x92, 0x01, 0x49, 0x4A, 0xE9, -0xF4, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x5D, 0x67, -0x46, 0xF5, 0x18, 0x4B, 0x90, 0xA2, 0xA4, 0xF4, -0x56, 0xA3, 0x8E, 0xEA, 0x14, 0x2A, 0x5D, 0x67, -0x91, 0xA2, 0xA4, 0xF4, 0x57, 0xA3, 0x8E, 0xEA, -0x0E, 0x2A, 0x5D, 0x67, 0x92, 0xA2, 0xA4, 0xF4, -0x58, 0xA3, 0x8E, 0xEA, 0x08, 0x2A, 0x5D, 0x67, -0x93, 0xA2, 0xA4, 0xF4, 0x59, 0xA3, 0x8E, 0xEA, -0x01, 0x5A, 0x58, 0x67, 0x01, 0x10, 0x00, 0x6A, -0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x04, 0x67, 0x25, 0x67, -0x80, 0x18, 0x25, 0x06, 0x00, 0x6B, 0x08, 0x22, -0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, 0x65, 0x06, -0x4B, 0xEB, 0x4D, 0xEB, 0xC0, 0xF7, 0x62, 0x33, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x43, 0x67, -0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x24, 0x67, 0x05, 0x67, -0x80, 0x18, 0x25, 0x06, 0x2E, 0x22, 0x91, 0x67, -0xB0, 0x67, 0x80, 0x18, 0x65, 0x06, 0x29, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF6, 0x6E, 0xA2, -0x10, 0x6A, 0x6C, 0xEA, 0x22, 0x22, 0x08, 0x49, -0x05, 0xE1, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, -0x40, 0x98, 0x87, 0x41, 0x02, 0x4C, 0x40, 0xEA, -0x06, 0x72, 0x17, 0x61, 0xC0, 0xF3, 0x40, 0x98, -0x87, 0x41, 0x0D, 0x4C, 0x40, 0xEA, 0x11, 0x2A, -0xC0, 0xF3, 0x40, 0x98, 0x87, 0x41, 0x0E, 0x4C, -0x40, 0xEA, 0x50, 0x72, 0x0A, 0x61, 0xC0, 0xF3, -0x40, 0x98, 0x87, 0x41, 0x1A, 0x4C, 0x40, 0xEA, -0x05, 0x6B, 0x4C, 0xEB, 0x03, 0x23, 0x01, 0x6B, -0x01, 0x10, 0x00, 0x6B, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x43, 0x67, 0x04, 0x63, 0x00, 0xEF, -0x01, 0x6A, 0x8C, 0xEA, 0x07, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0xE0, 0xF0, -0x7C, 0xA2, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xE0, 0xF0, 0x7D, 0xA2, -0x84, 0xF5, 0x6D, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0xEB, 0xF2, 0x65, 0xA2, 0x00, 0x6A, 0x07, 0x5B, -0x06, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF5, -0x04, 0x4A, 0x4D, 0xE3, 0x40, 0xA3, 0x20, 0xE8, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, -0x64, 0x67, 0x4C, 0xEB, 0x86, 0x67, 0x4C, 0xED, -0x4C, 0xEC, 0x7E, 0x32, 0x04, 0x22, 0x0C, 0x6F, -0x6C, 0xEF, 0x02, 0x68, 0x01, 0x2F, 0x00, 0x68, -0x40, 0x6B, 0xAC, 0xEB, 0x00, 0x6A, 0x02, 0x23, -0x80, 0x18, 0xB4, 0x06, 0x18, 0x48, 0x09, 0xE2, -0x05, 0x97, 0x04, 0x90, 0xFF, 0x6B, 0x6C, 0xEA, -0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x4C, 0xEE, -0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF0, -0x0F, 0x4A, 0x67, 0x42, 0x05, 0xD6, 0x01, 0x4B, -0x00, 0x6E, 0xC0, 0xC2, 0x01, 0x4A, 0x6A, 0xEA, -0xFB, 0x61, 0x05, 0x92, 0x91, 0xE5, 0x30, 0xF0, -0x20, 0x68, 0x53, 0xE4, 0x04, 0xD4, 0x8B, 0xF0, -0x0F, 0x48, 0x00, 0x69, 0x0E, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, 0x04, 0x94, -0x01, 0x49, 0x40, 0xEA, 0x40, 0xC0, 0xFF, 0x6A, -0x4C, 0xE9, 0x04, 0x92, 0x01, 0x48, 0x01, 0x4A, -0x04, 0xD2, 0x05, 0x92, 0x43, 0xE9, 0xEF, 0x61, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0xD8, 0xA3, -0x01, 0x6B, 0xFF, 0x6A, 0xCC, 0xEB, 0x4C, 0xEB, -0x4C, 0xEC, 0x4C, 0xED, 0x01, 0x6A, 0x45, 0x2B, -0x02, 0x6A, 0xAC, 0xEA, 0x12, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF2, 0x70, 0x9A, 0x10, 0xF0, -0x00, 0x6E, 0x40, 0x9B, 0xCC, 0xEA, 0x09, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, 0x54, 0x9A, -0xC0, 0xDB, 0x23, 0x6B, 0x60, 0xC2, 0x01, 0x6A, -0x01, 0x10, 0x00, 0x6A, 0x01, 0x6B, 0xAC, 0xEB, -0x2C, 0x23, 0x40, 0x6B, 0x8C, 0xEB, 0x0C, 0x23, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, 0x54, 0x9A, -0x22, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF2, 0x54, 0x9A, 0x80, 0xC2, 0x01, 0x6A, -0x9E, 0x33, 0x0C, 0x23, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF0, 0x54, 0x9A, 0x21, 0x6B, 0x60, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x54, 0x9A, -0x80, 0xC2, 0x01, 0x6A, 0x20, 0x6B, 0x8C, 0xEB, -0x0C, 0x23, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, -0x54, 0x9A, 0x23, 0x6B, 0x60, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF2, 0x54, 0x9A, 0x80, 0xC2, -0x01, 0x6A, 0x20, 0xE8, 0xFF, 0x6A, 0x8C, 0xEA, -0xA0, 0x72, 0x04, 0x6B, 0x01, 0x60, 0x08, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, 0x54, 0x9A, -0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x24, 0xF3, 0x80, 0xA2, 0x01, 0x6B, -0x8D, 0xEB, 0x24, 0xF3, 0x60, 0xC2, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, -0x24, 0xF3, 0xA0, 0xA3, 0x01, 0x6C, 0x44, 0x67, -0x8C, 0xED, 0x04, 0x25, 0xE0, 0xF0, 0x4E, 0xA3, -0x52, 0x32, 0x8C, 0xEA, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, -0x20, 0x6C, 0x66, 0xF6, 0x17, 0x4C, 0x07, 0x6E, -0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, 0x78, 0x9A, -0xDF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x20, 0xF1, 0x94, 0xA2, 0x40, 0x6B, 0x6B, 0xEB, -0x8C, 0xEB, 0x20, 0xF1, 0x74, 0xC2, 0x20, 0xE8, -0xFA, 0x63, 0x0B, 0xD1, 0x0A, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x22, 0xF5, 0x6C, 0x9A, 0x22, 0xF5, -0x0C, 0x4A, 0x9D, 0x67, 0x00, 0xD3, 0x61, 0x9A, -0x44, 0xAA, 0x01, 0xD3, 0x7D, 0x67, 0x44, 0xCB, -0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF5, 0x60, 0x9A, -0x22, 0xF5, 0x00, 0x4A, 0x03, 0xD3, 0x61, 0x9A, -0x44, 0xAA, 0x04, 0xD3, 0x4A, 0xCC, 0x30, 0xF0, -0x20, 0x6A, 0x26, 0xF6, 0x7F, 0xA2, 0x64, 0x32, -0x49, 0xE4, 0x00, 0xAA, 0x46, 0xAA, 0xE3, 0x67, -0xC3, 0x67, 0x1A, 0x65, 0x08, 0xD3, 0x07, 0xD3, -0x06, 0xD3, 0x00, 0x6A, 0x11, 0xE2, 0x1F, 0xF7, -0x00, 0x6D, 0xAC, 0xEC, 0x02, 0xF0, 0x00, 0x69, -0x2E, 0xEC, 0x07, 0x24, 0x64, 0x34, 0x3D, 0x67, -0x91, 0xE1, 0x80, 0xAC, 0x91, 0xE2, 0xAC, 0xEC, -0x0B, 0x2C, 0xBD, 0x67, 0xC4, 0x34, 0x91, 0xE5, -0xA0, 0xAC, 0x30, 0xF0, 0x20, 0x6C, 0x22, 0x67, -0xB5, 0xE2, 0x23, 0xF0, 0x98, 0x9C, 0x0A, 0x10, -0xBD, 0x67, 0xE4, 0x34, 0x91, 0xE5, 0xA0, 0xAC, -0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF0, 0x9C, 0x9C, -0x22, 0x67, 0xB5, 0xE2, 0x91, 0xE5, 0xA0, 0xA4, -0xFF, 0x6C, 0xAC, 0xEC, 0x30, 0xF0, 0x20, 0x6D, -0x46, 0xF5, 0x18, 0x4D, 0xB5, 0xE1, 0x38, 0x67, -0x24, 0xF3, 0x87, 0xC5, 0x31, 0xE2, 0x1F, 0xF7, -0x00, 0x6D, 0xAC, 0xEC, 0x02, 0xF0, 0x00, 0x69, -0x2E, 0xEC, 0x08, 0x24, 0x08, 0x91, 0x24, 0x34, -0x3D, 0x67, 0x91, 0xE1, 0x86, 0xAC, 0x91, 0xE2, -0xAC, 0xEC, 0x0C, 0x2C, 0x06, 0x95, 0x22, 0x67, -0xA4, 0x34, 0xBD, 0x67, 0x91, 0xE5, 0xA6, 0xAC, -0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF0, 0x98, 0x9C, -0xB5, 0xE2, 0x0B, 0x10, 0x07, 0x95, 0x22, 0x67, -0xA4, 0x34, 0xBD, 0x67, 0x91, 0xE5, 0xA6, 0xAC, -0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF0, 0x9C, 0x9C, -0xB5, 0xE2, 0x91, 0xE5, 0xA0, 0xA4, 0xFF, 0x6C, -0x01, 0x4A, 0xAC, 0xEC, 0x30, 0xF0, 0x20, 0x6D, -0x46, 0xF5, 0x18, 0x4D, 0xB5, 0xE1, 0x24, 0xF3, -0x81, 0xC5, 0x06, 0x6C, 0x4E, 0xEC, 0x9A, 0x2C, -0x0B, 0x91, 0x0A, 0x90, 0x06, 0x63, 0x20, 0xE8, -0x60, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0xE0, 0xF0, 0x7C, 0xC2, 0x61, 0xA4, -0xE0, 0xF0, 0x7D, 0xC2, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, -0x20, 0x6C, 0x46, 0xF6, 0x1B, 0x4C, 0x07, 0x6E, -0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, -0x20, 0x6C, 0x66, 0xF6, 0x02, 0x4C, 0x07, 0x6E, -0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0x61, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x00, 0xF1, 0x72, 0xC2, 0x62, 0xA4, -0x00, 0xF1, 0x73, 0xC2, 0x64, 0xA4, 0x00, 0xF1, -0x75, 0xC2, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, -0xC3, 0xF3, 0x88, 0xA3, 0x01, 0x6A, 0x8C, 0xEA, -0x1B, 0x22, 0xE0, 0xF0, 0x92, 0xA3, 0x08, 0x6A, -0x8C, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, 0x0A, 0x22, -0xE0, 0xF0, 0xD3, 0xA3, 0x30, 0xF0, 0x20, 0x6A, -0x00, 0xF3, 0x48, 0x9A, 0x5D, 0x4C, 0x00, 0x6D, -0xC0, 0x36, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x00, 0xF3, 0x48, 0x9A, 0xE0, 0xF0, 0xD3, 0xA3, -0xFF, 0x6C, 0x5D, 0x4C, 0x00, 0x6D, 0x40, 0xEA, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFE, 0x63, 0x03, 0xD1, 0x02, 0xD0, 0xFF, 0x68, -0xFF, 0xF7, 0x1F, 0x6A, 0x0C, 0xED, 0xCC, 0xEA, -0xEC, 0xE8, 0x00, 0x6F, 0x04, 0xD4, 0x00, 0xD5, -0x01, 0x6C, 0x67, 0x67, 0xC2, 0x67, 0x41, 0x47, -0xB0, 0x67, 0xA7, 0xEA, 0x45, 0x67, 0x01, 0x6D, -0xAC, 0xEA, 0x0F, 0x22, 0x02, 0x6A, 0x06, 0x10, -0xFF, 0xF7, 0x1F, 0x69, 0x44, 0x32, 0x01, 0x4D, -0x2C, 0xEA, 0x2C, 0xED, 0x83, 0xED, 0xF8, 0x61, -0x4C, 0x32, 0x4D, 0xE3, 0xFF, 0xF7, 0x1F, 0x6A, -0x4C, 0xEB, 0x01, 0x4C, 0xFF, 0xF7, 0x1F, 0x6D, -0xAC, 0xEC, 0x08, 0x74, 0x01, 0x4F, 0xE3, 0x61, -0x63, 0xEE, 0x46, 0x67, 0x15, 0x61, 0x00, 0x96, -0xCC, 0x34, 0xFF, 0x4C, 0x91, 0xE3, 0xAC, 0xEC, -0x43, 0xEC, 0x0E, 0x61, 0x6B, 0xE2, 0x08, 0x6C, -0x9A, 0xEA, 0x01, 0x2C, 0xE5, 0xE8, 0x04, 0x93, -0x12, 0xEA, 0x49, 0xE3, 0x40, 0xA2, 0x10, 0xED, -0x01, 0x6B, 0x47, 0xED, 0x6C, 0xEA, 0x01, 0x10, -0x00, 0x6A, 0x03, 0x91, 0x02, 0x90, 0x02, 0x63, -0x20, 0xE8, 0x00, 0x65, 0xF1, 0x63, 0x1D, 0x62, -0x1C, 0xD1, 0x1B, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, -0x4C, 0xEC, 0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6A, -0x02, 0xF5, 0x74, 0x9A, 0x02, 0xF5, 0x14, 0x4A, -0x16, 0xD4, 0x04, 0xD3, 0x61, 0x9A, 0x44, 0xAA, -0x18, 0xD5, 0x05, 0xD3, 0x7D, 0x67, 0x4C, 0xCB, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x44, 0xF3, 0x8C, 0xA2, 0x03, 0x6B, 0x6B, 0xEB, -0x8C, 0xEB, 0x44, 0xF3, 0x6C, 0xC2, 0x24, 0x68, -0x00, 0x69, 0x16, 0x94, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x40, 0x9B, 0x01, 0x4C, 0x11, 0xE4, -0x40, 0xEA, 0x17, 0xD2, 0x02, 0x2A, 0x02, 0x6A, -0x33, 0x11, 0x30, 0xF0, 0x20, 0x6C, 0x16, 0x93, -0xC0, 0xF3, 0x40, 0x9C, 0x71, 0xE0, 0x40, 0xEA, -0x05, 0x72, 0x06, 0x61, 0x17, 0x94, 0x01, 0x6B, -0x03, 0x6A, 0x04, 0x5C, 0x13, 0x60, 0x24, 0x11, -0x17, 0x92, 0x01, 0x49, 0x02, 0x4A, 0x41, 0xE0, -0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0x4C, 0xE9, -0x18, 0x92, 0xFC, 0x4A, 0x42, 0xE8, 0x02, 0x61, -0x00, 0x6B, 0x04, 0x10, 0xE0, 0xF1, 0x14, 0x71, -0xD4, 0x61, 0x0F, 0x11, 0xE0, 0xF1, 0x14, 0x71, -0x00, 0xF1, 0x0B, 0x60, 0x00, 0xF1, 0x0B, 0x23, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, -0x44, 0xF3, 0x8C, 0xA3, 0x09, 0x6A, 0x4B, 0xEA, -0x8C, 0xEA, 0x05, 0x6C, 0x8B, 0xEC, 0x8C, 0xEA, -0x44, 0xF3, 0x4C, 0xC3, 0x16, 0x94, 0x30, 0xF0, -0x20, 0x69, 0xC0, 0xF3, 0x40, 0x99, 0x02, 0x4C, -0x11, 0xE4, 0x40, 0xEA, 0x16, 0x94, 0x7D, 0x67, -0x5C, 0xC3, 0xC0, 0xF3, 0x40, 0x99, 0x03, 0x4C, -0x11, 0xE4, 0x40, 0xEA, 0x9D, 0x67, 0x5D, 0xC4, -0x16, 0x94, 0xC0, 0xF3, 0x40, 0x99, 0x00, 0x69, -0x04, 0x4C, 0x11, 0xE4, 0x40, 0xEA, 0x7D, 0x67, -0x5E, 0xC3, 0x10, 0x10, 0x16, 0x94, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, 0x05, 0x4C, -0x11, 0xE4, 0x31, 0xE4, 0x40, 0xEA, 0x9D, 0x67, -0x2D, 0xE4, 0x5F, 0xC3, 0x01, 0x49, 0xFF, 0xF7, -0x1F, 0x6A, 0x4C, 0xE9, 0x17, 0x92, 0xFD, 0x4A, -0x42, 0xE9, 0xEC, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x26, 0xF6, 0x5F, 0xA2, 0x7D, 0x67, 0x44, 0x32, -0x49, 0xE3, 0x68, 0xAA, 0x1F, 0xF7, 0x00, 0x6A, -0x6C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, -0x0F, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x26, 0xF6, -0x5F, 0xA2, 0x9D, 0x67, 0x44, 0x32, 0x49, 0xE4, -0x68, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0x58, 0x9A, 0x49, 0xE3, 0x60, 0xAA, 0x06, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x5C, 0x9A, -0x4D, 0xE3, 0x60, 0xAB, 0xFF, 0xF7, 0x1F, 0x6A, -0x9D, 0x67, 0x6C, 0xEA, 0x7C, 0xA4, 0x0E, 0x2B, -0x7E, 0xA4, 0x01, 0x6C, 0x8C, 0xEB, 0x0A, 0x23, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, -0x44, 0xF3, 0xAC, 0xA3, 0x08, 0x6C, 0xAD, 0xEC, -0x44, 0xF3, 0x8C, 0xC3, 0x17, 0x95, 0xE0, 0xF7, -0x1F, 0x6E, 0x4C, 0xEE, 0x5D, 0x67, 0xFE, 0xA2, -0xFD, 0x4D, 0xFF, 0x6B, 0x00, 0xF0, 0x1F, 0x04, -0x6C, 0xED, 0x80, 0x18, 0xB8, 0x07, 0x0A, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x44, 0xF3, 0x8C, 0xA2, 0x04, 0x6B, 0x8D, 0xEB, -0x44, 0xF3, 0x6C, 0xC2, 0x30, 0xF0, 0x20, 0x68, -0x46, 0xF5, 0x18, 0x48, 0x44, 0xF3, 0x6C, 0xA0, -0x0C, 0x6A, 0x6C, 0xEA, 0x10, 0x2A, 0xC3, 0xF3, -0x6D, 0xA0, 0xFE, 0x4A, 0xE0, 0xF0, 0x87, 0xA0, -0x6C, 0xEA, 0x05, 0x6B, 0x6B, 0xEB, 0x6C, 0xEA, -0x02, 0x4B, 0x6C, 0xEA, 0xC3, 0xF3, 0x4D, 0xC0, -0x00, 0x18, 0x4F, 0xCF, 0x64, 0x10, 0x08, 0x6A, -0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x16, 0x22, -0xC3, 0xF3, 0x4D, 0xA0, 0x02, 0x69, 0xC0, 0xF0, -0xCC, 0xA0, 0x2D, 0xEA, 0xC3, 0xF3, 0x4D, 0xC0, -0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, -0xFF, 0x6C, 0x55, 0x4C, 0x00, 0x6D, 0x40, 0xEA, -0xC3, 0xF3, 0x48, 0xA0, 0x4D, 0xE9, 0xC3, 0xF3, -0x28, 0xC0, 0x07, 0x10, 0xC3, 0xF3, 0x6D, 0xA0, -0x03, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xC3, 0xF3, -0x4D, 0xC0, 0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, -0x18, 0x48, 0x44, 0xF3, 0x8C, 0xA0, 0x04, 0x6A, -0xFF, 0x6B, 0x8C, 0xEA, 0x2B, 0x22, 0x08, 0x6A, -0x8C, 0xEA, 0x6C, 0xEA, 0x08, 0x2A, 0x07, 0x6C, -0x00, 0x18, 0x99, 0xE0, 0xE0, 0xF0, 0x87, 0xA0, -0x00, 0x18, 0x3B, 0xCF, 0x2C, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF0, 0x84, 0x98, 0x63, 0xF1, -0x58, 0x9A, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, -0x63, 0xF1, 0x9C, 0x9C, 0x8E, 0xEA, 0x07, 0x2A, -0xC0, 0xF0, 0x85, 0xA0, 0xF0, 0x4A, 0x8C, 0xEA, -0x6C, 0xEA, 0x10, 0x72, 0x18, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0xC3, 0xF3, -0x8D, 0xA2, 0x01, 0x6B, 0x8D, 0xEB, 0xC3, 0xF3, -0x6D, 0xC2, 0x0D, 0x10, 0xC3, 0xF3, 0x6D, 0xA0, -0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x05, 0x6B, -0x6B, 0xEB, 0x6C, 0xEA, 0xC3, 0xF3, 0x4D, 0xC0, -0x02, 0x10, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, -0x1D, 0x97, 0x1C, 0x91, 0x1B, 0x90, 0x0F, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xE0, 0xF0, 0xB2, 0xA2, 0x02, 0x6C, 0xFF, 0x6B, -0xAC, 0xEC, 0x4F, 0x24, 0x05, 0xF3, 0x90, 0xA2, -0x08, 0x5C, 0x08, 0x61, 0x30, 0xF0, 0x20, 0x6D, -0x43, 0xF2, 0xB8, 0x9D, 0xF8, 0x4C, 0xA0, 0xA5, -0xAC, 0xEB, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6D, -0x43, 0xF2, 0xBC, 0x9D, 0xA0, 0xA5, 0xAC, 0xEB, -0x01, 0x6D, 0xA4, 0xEC, 0x6C, 0xED, 0x30, 0xF0, -0x20, 0x6B, 0x05, 0xF3, 0xB2, 0xC2, 0x46, 0xF5, -0x18, 0x4B, 0xE0, 0xF0, 0xB4, 0xA3, 0x04, 0x6A, -0xFF, 0x6C, 0xAC, 0xEA, 0x04, 0x2A, 0x05, 0xF3, -0x52, 0xA3, 0x10, 0x22, 0x03, 0x10, 0x05, 0xF3, -0x52, 0xA3, 0x0C, 0x2A, 0x01, 0x6C, 0x00, 0x18, -0x50, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x6C, -0x00, 0xF3, 0x48, 0x9A, 0x5D, 0x4C, 0x00, 0x6D, -0x01, 0x6E, 0x1A, 0x10, 0xE0, 0xF0, 0xB2, 0xA3, -0x08, 0x6A, 0xAC, 0xEA, 0x8C, 0xEA, 0x0B, 0x22, -0xE0, 0xF0, 0xD3, 0xA3, 0x30, 0xF0, 0x20, 0x6A, -0xFF, 0x6C, 0x00, 0xF3, 0x48, 0x9A, 0x5D, 0x4C, -0x00, 0x6D, 0xC0, 0x36, 0x09, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, 0xE0, 0xF0, -0xD3, 0xA3, 0xFF, 0x6C, 0x5D, 0x4C, 0x00, 0x6D, -0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0xE0, 0xF0, -0xB2, 0xA2, 0x02, 0x6C, 0xFF, 0x6B, 0xAC, 0xEC, -0x51, 0x24, 0x05, 0xF3, 0x90, 0xA2, 0x08, 0x5C, -0x08, 0x61, 0x30, 0xF0, 0x20, 0x6D, 0x43, 0xF2, -0xB8, 0x9D, 0xF8, 0x4C, 0xA0, 0xA5, 0xAC, 0xEB, -0x06, 0x10, 0x30, 0xF0, 0x20, 0x6D, 0x43, 0xF2, -0xBC, 0x9D, 0xA0, 0xA5, 0xAC, 0xEB, 0x01, 0x6D, -0xA4, 0xEC, 0x6C, 0xED, 0x30, 0xF0, 0x20, 0x68, -0x05, 0xF3, 0xB2, 0xC2, 0x46, 0xF5, 0x18, 0x48, -0xE0, 0xF0, 0x94, 0xA0, 0x04, 0x6A, 0xFF, 0x6B, -0x8C, 0xEA, 0x13, 0x2A, 0x05, 0xF3, 0x52, 0xA0, -0x23, 0x2A, 0xE0, 0xF0, 0x92, 0xA0, 0x01, 0x6A, -0x8C, 0xEA, 0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, -0x00, 0x18, 0x50, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x6C, 0xF0, 0x88, 0xA2, 0x80, 0x18, 0xD7, 0x37, -0x24, 0x10, 0x05, 0xF3, 0x52, 0xA0, 0x10, 0x22, -0xE0, 0xF0, 0x92, 0xA0, 0x01, 0x6A, 0x8C, 0xEA, -0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, -0x50, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x6C, 0xF0, -0x88, 0xA2, 0x80, 0x18, 0xD1, 0x37, 0x11, 0x10, -0x05, 0xF3, 0x91, 0xA0, 0x01, 0x6D, 0x80, 0x18, -0xBB, 0x37, 0x05, 0xF3, 0x90, 0xA0, 0x80, 0x18, -0xC6, 0x37, 0x07, 0x10, 0x01, 0x6A, 0xAC, 0xEA, -0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, -0x50, 0xD2, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0xE0, 0xF0, 0xB2, 0xA2, 0x02, 0x6B, -0xFF, 0x6C, 0xAC, 0xEB, 0x32, 0x23, 0xE0, 0xF0, -0xAF, 0xA2, 0x7F, 0x6B, 0xAC, 0xEB, 0x05, 0xF3, -0x71, 0xC2, 0xE0, 0xF0, 0xB4, 0xA2, 0x07, 0x6B, -0x05, 0xF3, 0x70, 0xC2, 0x80, 0x6B, 0x6B, 0xEB, -0xAC, 0xEB, 0x8C, 0xEB, 0x09, 0x23, 0x00, 0xF1, -0xBF, 0xA2, 0x01, 0x6B, 0xAC, 0xEB, 0x8C, 0xEB, -0x03, 0x23, 0xA6, 0x33, 0x05, 0xF3, 0x70, 0xC2, -0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, -0x05, 0xF3, 0x50, 0xA0, 0x01, 0x6C, 0x0C, 0x4A, -0x84, 0xEA, 0x80, 0x18, 0x84, 0x57, 0xE0, 0xF0, -0x74, 0xA0, 0x04, 0x6A, 0x6C, 0xEA, 0x05, 0x22, -0x05, 0xF3, 0x90, 0xA0, 0x80, 0x18, 0xD7, 0x37, -0x04, 0x10, 0x05, 0xF3, 0x90, 0xA0, 0x80, 0x18, -0xD1, 0x37, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x46, 0xF5, 0x18, 0x48, 0x42, 0xF6, 0x4C, 0xA0, -0xFF, 0x69, 0x2C, 0xEC, 0x02, 0x72, 0x04, 0xD4, -0x1D, 0x61, 0x01, 0x74, 0x75, 0x61, 0x24, 0xF3, -0x60, 0xA0, 0x01, 0x6A, 0x80, 0x6C, 0x6D, 0xEA, -0xE0, 0xF0, 0x6F, 0xA0, 0x8B, 0xEC, 0x24, 0xF3, -0x40, 0xC0, 0x8C, 0xEB, 0x2C, 0xEB, 0x0A, 0x23, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0x60, 0x9A, -0x40, 0xA3, 0x2C, 0xEA, 0x8E, 0xEA, 0x2C, 0xEA, -0x40, 0xC3, 0x5E, 0x10, 0x01, 0x6C, 0x80, 0x18, -0x82, 0x38, 0x5A, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF0, 0x54, 0x9A, 0x01, 0x6B, 0x6B, 0xEB, -0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x64, 0x6C, 0x40, 0xEA, 0xE0, 0xF0, -0x74, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, -0x02, 0x2A, 0x00, 0x18, 0xBD, 0xDE, 0x30, 0xF0, -0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, 0xE0, 0xF0, -0x92, 0xA3, 0x5F, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, -0xFF, 0x6C, 0x8C, 0xEA, 0xA1, 0x72, 0x07, 0x61, -0xE0, 0xF0, 0x6F, 0xA3, 0x7F, 0x6A, 0x6C, 0xEA, -0x4C, 0xEC, 0x80, 0x18, 0xC6, 0x37, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF2, 0x60, 0x9A, 0xFF, 0x6C, -0x80, 0x6D, 0x40, 0xA3, 0xAB, 0xED, 0x8C, 0xEA, -0xAE, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x04, 0x94, -0x80, 0x18, 0x82, 0x38, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xE0, 0xF0, 0x92, 0xA2, -0x03, 0x6B, 0x8C, 0xEB, 0x02, 0x73, 0x04, 0x61, -0x05, 0xF3, 0x90, 0xA2, 0x80, 0x18, 0xC6, 0x37, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF6, 0x6A, 0xA2, -0x5F, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, -0x6C, 0xEA, 0xA1, 0x72, 0x09, 0x61, 0x01, 0x6C, -0x00, 0x18, 0x50, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF1, 0x84, 0x9A, 0x80, 0x18, 0x8D, 0x57, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xA0, 0xF0, 0x96, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, -0x8C, 0xEB, 0xE0, 0xF0, 0x95, 0xA2, 0xA0, 0xF0, -0x76, 0xC2, 0x41, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, -0xE0, 0xF0, 0x75, 0xC2, 0x09, 0x97, 0x08, 0x91, -0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xB6, 0x13, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xB5, 0x13, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0x69, 0x04, 0x67, 0x2C, 0xE8, 0x00, 0x18, -0x7A, 0xD4, 0x01, 0xE2, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF3, 0x58, 0x9A, 0x1C, 0x30, 0x30, 0xF0, -0x20, 0x6E, 0x90, 0x67, 0x08, 0x6D, 0xAB, 0xF2, -0x14, 0x4E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x84, 0xF5, 0x90, 0xA2, -0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x84, 0xF5, -0x70, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, -0x50, 0x9A, 0x49, 0xE0, 0x40, 0xA2, 0x2C, 0xEA, -0xDD, 0x72, 0x80, 0xF0, 0x08, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF2, 0x54, 0x9A, 0x49, 0xE0, -0x40, 0xA2, 0x4C, 0xE9, 0x01, 0x6A, 0x2C, 0xEA, -0x13, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, -0x8C, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0x91, 0xE0, 0xEB, 0xF2, 0x0C, 0x4A, -0xEB, 0xF2, 0x14, 0x4B, 0xA0, 0xA4, 0x01, 0x4C, -0xA0, 0xC2, 0x01, 0x4A, 0x6A, 0xEA, 0xFA, 0x61, -0x02, 0x6A, 0x2C, 0xEA, 0x68, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF2, 0x58, 0x9A, 0x49, 0xE0, -0x60, 0xA2, 0x30, 0xF0, 0x20, 0x6A, 0xEB, 0xF2, -0x64, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, -0x44, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0xEB, 0xF2, -0x1C, 0x4B, 0x41, 0xE0, 0x30, 0xF0, 0x20, 0x6A, -0xEB, 0xF2, 0x14, 0x4A, 0x80, 0xA0, 0x80, 0xC2, -0x88, 0xA0, 0x88, 0xC2, 0x90, 0xA0, 0x90, 0xC2, -0x98, 0xA0, 0x01, 0x48, 0x98, 0xC2, 0x01, 0x4A, -0x6A, 0xEA, 0xF4, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xEB, 0xF2, 0x24, 0xA2, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF0, 0x4C, 0x9A, 0x2C, 0x31, 0x02, 0x49, -0x4D, 0xE9, 0x00, 0x68, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF0, 0x50, 0x9A, 0x2D, 0xE0, 0x60, 0xF6, -0x13, 0x6C, 0x60, 0xDA, 0x06, 0x02, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, -0x80, 0x6D, 0x00, 0x6E, 0x14, 0x6F, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x08, 0x34, 0x91, 0xE2, 0x64, 0xF5, 0x0C, 0x4C, -0x60, 0xF6, 0x18, 0x6A, 0x1F, 0xF7, 0x00, 0x6B, -0x4C, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, -0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, -0x78, 0x9B, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF0, 0x7C, 0x9B, 0x6D, 0xE2, 0xA0, 0xA3, -0x01, 0x4A, 0xFF, 0x6B, 0xAC, 0xEB, 0x60, 0xF6, -0x1C, 0x72, 0x60, 0xC4, 0x01, 0x4C, 0xE6, 0x61, -0x01, 0x48, 0x04, 0x70, 0xC7, 0x61, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0xAB, 0xF2, -0x1C, 0x4C, 0x2B, 0xF1, 0x0D, 0x4D, 0x08, 0x6E, -0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, 0x46, 0xF5, -0x18, 0x48, 0x02, 0x6A, 0x84, 0xF5, 0x4F, 0xC0, -0x00, 0xF1, 0x52, 0xA0, 0x10, 0x22, 0x00, 0x18, -0x7A, 0xD4, 0x00, 0xF1, 0x92, 0xA0, 0x30, 0xF0, -0x20, 0x6E, 0x90, 0x6D, 0x91, 0xE2, 0x30, 0xF0, -0x20, 0x6A, 0xA0, 0xF3, 0x7C, 0x9A, 0x9C, 0x34, -0xAB, 0xF2, 0x14, 0x4E, 0x40, 0xEB, 0x05, 0x97, -0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xF7, 0x63, 0x11, 0x62, 0x10, 0xD1, 0x0F, 0xD0, -0xFF, 0x68, 0x0C, 0xEC, 0x0C, 0xED, 0x0B, 0xD4, -0x0D, 0xD5, 0x00, 0x18, 0x7A, 0xD4, 0x0B, 0x93, -0x0C, 0xD2, 0x65, 0xE2, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF1, 0x48, 0x9A, 0x3C, 0x31, 0x0A, 0xD1, -0x49, 0xE1, 0x20, 0xA2, 0x30, 0xF0, 0x20, 0x6A, -0x0A, 0x94, 0xA3, 0xF1, 0x4C, 0x9A, 0x0C, 0xE9, -0x30, 0xF0, 0x20, 0x6B, 0x49, 0xE4, 0x40, 0xA2, -0x03, 0xF1, 0x70, 0x9B, 0x4C, 0xE8, 0x00, 0x30, -0xE7, 0xF7, 0x1F, 0x6A, 0x05, 0xE1, 0x4C, 0xE9, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0x48, 0x9A, -0x6D, 0xE4, 0x2D, 0xE3, 0x49, 0xE4, 0x29, 0xE2, -0x00, 0x6C, 0x80, 0xC2, 0x01, 0x4A, 0x6A, 0xEA, -0xFB, 0x61, 0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x60, 0xF3, 0x48, 0x9A, 0x0D, 0x97, -0xC8, 0x41, 0xFF, 0xF7, 0x1F, 0x68, 0x0A, 0x6D, -0x10, 0x6C, 0x0C, 0xEE, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF6, 0xBF, 0xA2, 0x0B, 0x92, -0x43, 0xED, 0x13, 0x60, 0xB3, 0xE2, 0x0C, 0x92, -0x0D, 0x93, 0x9C, 0x34, 0xB5, 0xE2, 0xBC, 0x35, -0xAF, 0x35, 0x0C, 0xED, 0x30, 0x4C, 0x7B, 0xE1, -0x30, 0xF0, 0x20, 0x6A, 0x04, 0xD5, 0xF8, 0x4E, -0x60, 0xF3, 0x44, 0x9A, 0x0C, 0xEC, 0x38, 0x6D, -0x17, 0x10, 0x0D, 0x94, 0x0B, 0x93, 0x9B, 0xE1, -0x0C, 0x94, 0x77, 0xE5, 0xBC, 0x35, 0x69, 0xE4, -0x5C, 0x32, 0x08, 0x6B, 0x7A, 0xEA, 0x01, 0x2B, -0xE5, 0xE8, 0x38, 0x4D, 0xF8, 0x4E, 0x30, 0x6C, -0x0C, 0xED, 0x12, 0xEA, 0x0C, 0xEA, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF3, 0x44, 0x9A, -0xFF, 0x6B, 0x6C, 0xEE, 0x08, 0x6F, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, -0x30, 0xF0, 0x20, 0x6D, 0x08, 0x04, 0xEB, 0xF0, -0x00, 0x4D, 0x08, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x40, 0xF3, 0x58, 0x9A, 0x06, 0x00, -0x08, 0x04, 0x00, 0x6D, 0xD0, 0x67, 0x08, 0x6F, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, -0x48, 0x9A, 0x0A, 0x93, 0x49, 0xE3, 0x25, 0xE2, -0x08, 0x02, 0x60, 0xA0, 0x01, 0x48, 0x4A, 0xE8, -0x60, 0xC1, 0x01, 0x49, 0xFA, 0x61, 0x11, 0x97, -0x10, 0x91, 0x0F, 0x90, 0x09, 0x63, 0x00, 0xEF, -0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x66, 0xF6, 0x0B, 0xA2, -0x0E, 0xD4, 0x0F, 0xD5, 0x00, 0x18, 0x7A, 0xD4, -0x01, 0xE2, 0x00, 0x6A, 0x1C, 0x30, 0x04, 0xD2, -0x93, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, -0x6C, 0x9B, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF1, -0x88, 0x9C, 0x6D, 0xE0, 0x60, 0xA3, 0x91, 0xE0, -0x80, 0xA4, 0x4C, 0xEB, 0x60, 0x33, 0x8C, 0xEA, -0x6D, 0xE2, 0x0E, 0x91, 0xFF, 0xF7, 0x1F, 0x6A, -0x02, 0x48, 0x4C, 0xEB, 0x05, 0xD3, 0x6D, 0xE0, -0x07, 0xD0, 0x04, 0x49, 0x08, 0xD3, 0x00, 0x68, -0x66, 0x10, 0x12, 0x70, 0x05, 0x61, 0x0E, 0x91, -0x0F, 0x94, 0x06, 0x49, 0x85, 0xE1, 0x06, 0x10, -0x14, 0x70, 0x04, 0x61, 0x0E, 0x91, 0x0F, 0x95, -0x08, 0x49, 0xA5, 0xE1, 0x04, 0x32, 0x30, 0xF0, -0x20, 0x6D, 0x4E, 0x33, 0x03, 0xF1, 0x08, 0x4D, -0x09, 0xD3, 0xA0, 0x9D, 0x08, 0x93, 0x07, 0x6C, -0x4C, 0xEC, 0xA9, 0xE3, 0x09, 0x93, 0x06, 0xD4, -0x06, 0x95, 0x69, 0xE2, 0x60, 0xA2, 0xFF, 0x6C, -0x01, 0x6A, 0x44, 0xED, 0x8C, 0xEB, 0x4C, 0xEB, -0x6E, 0xEA, 0x15, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x40, 0x9A, 0x91, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF1, 0x08, 0x4C, -0x07, 0x95, 0x80, 0x9C, 0x8D, 0xE5, 0x0D, 0xE3, -0x60, 0xA3, 0xFF, 0x6D, 0xAC, 0xEB, 0x4E, 0xEB, -0x0F, 0x6A, 0x4C, 0xEB, 0x31, 0x2B, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF1, 0x08, 0x4B, 0x08, 0x94, -0x60, 0x9B, 0xFF, 0x6D, 0x69, 0xE4, 0x09, 0x94, -0x89, 0xE2, 0x06, 0x94, 0x60, 0xA2, 0x01, 0x6A, -0x01, 0x4C, 0x44, 0xEC, 0xAC, 0xEB, 0x4C, 0xEB, -0x6E, 0xEA, 0x15, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x40, 0x9A, 0x91, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF1, 0x08, 0x4C, -0x07, 0x95, 0x80, 0x9C, 0x8D, 0xE5, 0x0D, 0xE3, -0x60, 0xA3, 0xFF, 0x6D, 0xAC, 0xEB, 0x4E, 0xEB, -0xF0, 0x6A, 0x4C, 0xEB, 0x09, 0x2B, 0x01, 0x48, -0xFF, 0x6A, 0x01, 0x49, 0x4C, 0xE8, 0x05, 0x92, -0x43, 0xE8, 0x97, 0x61, 0x01, 0x6A, 0x18, 0x10, -0x05, 0x93, 0x08, 0x92, 0x04, 0x94, 0x64, 0x30, -0xFF, 0x48, 0x01, 0x4A, 0x0F, 0x30, 0x01, 0xE2, -0x01, 0x4C, 0xFF, 0x6A, 0x4C, 0xEC, 0x04, 0xD4, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF6, 0x90, 0xA2, -0x04, 0x95, 0x0F, 0x6B, 0x8C, 0xEB, 0x62, 0xED, -0xFF, 0x6A, 0x7F, 0xF7, 0x02, 0x61, 0x00, 0x6A, -0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, 0x00, 0x18, -0x7A, 0xD4, 0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF3, -0x78, 0x9B, 0x09, 0xE2, 0x30, 0xF0, 0x20, 0x6E, -0x5C, 0x34, 0x70, 0x6D, 0x0B, 0xF2, 0x1C, 0x4E, -0x40, 0xEB, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0x8C, 0xEA, 0x06, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x66, 0xF6, 0x81, 0xA2, 0x80, 0x18, -0x8D, 0x0A, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFF, 0x69, 0x04, 0x67, 0x2C, 0xE8, 0x00, 0x18, -0x7A, 0xD4, 0x01, 0xE2, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF1, 0x50, 0x9A, 0x1C, 0x30, 0x49, 0xE0, -0x80, 0xA2, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, -0x4C, 0x9A, 0x2C, 0xEC, 0x49, 0xE0, 0xA0, 0xA2, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x58, 0x9A, -0x2C, 0xED, 0x49, 0xE0, 0xC0, 0xA2, 0x2C, 0xEE, -0x80, 0x18, 0xC4, 0x06, 0x30, 0xF0, 0x20, 0x6C, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, 0x88, 0x9C, -0xC3, 0xF1, 0xA4, 0x9B, 0x30, 0xF0, 0x20, 0x6B, -0x0B, 0xF2, 0x08, 0x4B, 0x91, 0xE2, 0xB5, 0xE0, -0x11, 0xE4, 0xC6, 0x43, 0xE0, 0xA5, 0x01, 0x4D, -0xE0, 0xC3, 0xE0, 0xA4, 0x01, 0x4C, 0xEA, 0xC3, -0x01, 0x4B, 0xCA, 0xEB, 0xF7, 0x61, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF1, 0x7C, 0x9B, 0x69, 0xE2, -0x30, 0xF0, 0x20, 0x6B, 0x0B, 0xF2, 0x0E, 0x4B, -0x01, 0xE2, 0x44, 0x43, 0x80, 0xA0, 0x80, 0xC3, -0x87, 0x40, 0x03, 0x4C, 0x80, 0xA4, 0x01, 0x48, -0x8A, 0xC3, 0x01, 0x4B, 0x4A, 0xEB, 0xF6, 0x61, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0x8C, 0xEA, 0x06, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF6, 0x9C, 0xA2, 0x80, 0x18, -0xA0, 0x0A, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x20, 0xF4, 0x48, 0x9A, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6C, 0xC2, 0xF7, 0x9C, 0x9C, 0x10, 0xF0, -0x30, 0x6B, 0x45, 0xF3, 0x09, 0x4B, 0x01, 0x72, -0x60, 0xDC, 0x19, 0x60, 0x30, 0xF0, 0x20, 0x6B, -0x46, 0xF5, 0x18, 0x4B, 0x24, 0xF3, 0xA0, 0xA3, -0x01, 0x6C, 0x02, 0x72, 0xAD, 0xEC, 0x24, 0xF3, -0x80, 0xC3, 0x40, 0x6B, 0x03, 0x60, 0x04, 0x72, -0x06, 0x61, 0x41, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF0, 0x54, 0x9A, 0x60, 0xC2, 0x01, 0x6C, -0x80, 0x18, 0x17, 0x09, 0x11, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x20, 0xF4, 0x44, 0x9A, 0x40, 0xEA, -0x00, 0x18, 0x7F, 0xD4, 0xF8, 0x2A, 0x30, 0xF0, -0x20, 0x6B, 0xC2, 0xF7, 0x7C, 0x9B, 0x10, 0xF0, -0x30, 0x6A, 0x45, 0xF3, 0x0A, 0x4A, 0x40, 0xDB, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, -0x8C, 0xEA, 0x3F, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF6, 0x9B, 0xA2, 0x02, 0x24, 0x80, 0x18, -0x6E, 0x09, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, -0x54, 0x9A, 0x00, 0x6B, 0x30, 0xF0, 0x20, 0x68, -0x60, 0xC2, 0x80, 0x18, 0xD7, 0x3A, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF2, 0x7C, 0x9A, 0xFE, 0x6A, -0x35, 0x6E, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, -0xA0, 0xF2, 0x50, 0x98, 0xFF, 0x6C, 0xA4, 0x67, -0x40, 0xEA, 0x00, 0x18, 0xF2, 0xE0, 0x01, 0x6C, -0x80, 0x18, 0x1C, 0x3B, 0x80, 0x18, 0xD2, 0x0A, -0x80, 0x18, 0x6A, 0x09, 0x00, 0x18, 0xDC, 0xE0, -0xA0, 0xF2, 0x50, 0x98, 0x00, 0x6D, 0xC5, 0x67, -0xFF, 0x6C, 0x40, 0xEA, 0x80, 0x18, 0x3C, 0x07, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0xB8, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x50, 0x9A, -0x01, 0x6C, 0xA0, 0xDA, 0x80, 0x18, 0x97, 0x57, -0x17, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, -0xB8, 0x9A, 0x01, 0x6C, 0x80, 0x18, 0xC8, 0x57, -0x00, 0x6C, 0x80, 0x18, 0x1C, 0x3B, 0x80, 0x18, -0x66, 0x09, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, -0x48, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x6B, 0xF0, -0x18, 0x4C, 0x00, 0x6D, 0x30, 0x6E, 0x40, 0xEA, -0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, -0x44, 0xF3, 0x62, 0xA8, 0x02, 0x6A, 0xE0, 0xF0, -0xB5, 0xA0, 0x6D, 0xEA, 0x44, 0xF3, 0x42, 0xC8, -0x40, 0xA4, 0x02, 0x6B, 0x01, 0x69, 0x6B, 0xEB, -0x2C, 0xEA, 0x6C, 0xED, 0x4D, 0xED, 0xE0, 0xF0, -0xB5, 0xC0, 0x40, 0xA4, 0x03, 0x6E, 0xCB, 0xEE, -0x46, 0x32, 0x2C, 0xEA, 0x44, 0x32, 0xCC, 0xED, -0x4D, 0xED, 0xE0, 0xF0, 0xB5, 0xC0, 0x40, 0xA4, -0x09, 0x6F, 0xEB, 0xEF, 0x4A, 0x32, 0x2C, 0xEA, -0x48, 0x36, 0x05, 0x6A, 0x4B, 0xEA, 0x4C, 0xED, -0xCD, 0xED, 0xE0, 0xF0, 0xB5, 0xC0, 0xC0, 0xA4, -0xEC, 0xED, 0xF8, 0x4F, 0xCE, 0x36, 0x2C, 0xEE, -0xCC, 0x36, 0xCD, 0xED, 0xE0, 0xF0, 0xB5, 0xC0, -0xC0, 0xA4, 0xEC, 0xED, 0x1F, 0x65, 0xD2, 0x36, -0x2C, 0xEE, 0xD0, 0x36, 0xCD, 0xED, 0xE0, 0xF0, -0xB5, 0xC0, 0xC0, 0xA4, 0xF0, 0x4F, 0xEC, 0xED, -0xD6, 0x36, 0x2C, 0xEE, 0xD4, 0x36, 0xCD, 0xED, -0xE0, 0xF0, 0xB5, 0xC0, 0xC0, 0xA4, 0xDA, 0x36, -0x2C, 0xEE, 0xD8, 0x37, 0x41, 0x6E, 0xCB, 0xEE, -0xCC, 0xED, 0xED, 0xED, 0xE0, 0xF0, 0xB5, 0xC0, -0xC0, 0xA4, 0xDE, 0x36, 0xDC, 0x37, 0x7F, 0x6E, -0xCC, 0xED, 0xED, 0xED, 0xE0, 0xF0, 0xB5, 0xC0, -0xA2, 0xA4, 0xE0, 0xF0, 0xD7, 0xA0, 0x2C, 0xED, -0x6C, 0xEE, 0xAD, 0xEE, 0xE0, 0xF0, 0xD7, 0xC0, -0xE1, 0xA4, 0xA7, 0x67, 0x2C, 0xED, 0xFD, 0x65, -0xE0, 0xF0, 0xB6, 0xA0, 0xFF, 0x67, 0x6C, 0xED, -0xED, 0xED, 0xE0, 0xF0, 0xB6, 0xC0, 0xE1, 0xA4, -0x4C, 0xED, 0xEA, 0x37, 0x2C, 0xEF, 0xE8, 0x37, -0xED, 0xED, 0xE0, 0xF0, 0xB6, 0xC0, 0xE1, 0xA4, -0xF2, 0x37, 0x2C, 0xEF, 0xF0, 0x37, 0xFF, 0x65, -0xF8, 0x67, 0xEC, 0xED, 0xFF, 0x67, 0xED, 0xED, -0xE0, 0xF0, 0xB6, 0xC0, 0xE1, 0xA4, 0xEE, 0x37, -0x2C, 0xEF, 0xEC, 0x37, 0xFF, 0x65, 0x09, 0x6F, -0xEB, 0xEF, 0xEC, 0xED, 0xFF, 0x67, 0xED, 0xED, -0xE0, 0xF0, 0xB6, 0xC0, 0xE1, 0xA4, 0xF6, 0x37, -0x2C, 0xEF, 0xF4, 0x37, 0xFF, 0x65, 0x21, 0x6F, -0xEB, 0xEF, 0xEC, 0xED, 0xFF, 0x67, 0xED, 0xED, -0xE0, 0xF0, 0xB6, 0xC0, 0xE2, 0xA4, 0xF2, 0x37, -0x2C, 0xEF, 0xF0, 0x37, 0xFF, 0x65, 0xF8, 0x67, -0xEC, 0xEE, 0xFF, 0x67, 0xED, 0xEE, 0xE0, 0xF0, -0xD7, 0xC0, 0xE2, 0xA4, 0xF6, 0x37, 0x2C, 0xEF, -0xF4, 0x37, 0xFF, 0x65, 0x21, 0x6F, 0xEB, 0xEF, -0xCC, 0xEF, 0xDF, 0x67, 0xCD, 0xEF, 0xE0, 0xF0, -0xF7, 0xC0, 0xC1, 0xA4, 0x4C, 0xEF, 0xC6, 0x36, -0x2C, 0xEE, 0xC4, 0x36, 0x1E, 0x65, 0x03, 0x6E, -0xCB, 0xEE, 0xCC, 0xED, 0xD8, 0x67, 0xCD, 0xED, -0xE0, 0xF0, 0xB6, 0xC0, 0xC2, 0xA4, 0xCA, 0x36, -0x2C, 0xEE, 0xC8, 0x36, 0xCD, 0xEF, 0xE0, 0xF0, -0xF7, 0xC0, 0xC1, 0xA4, 0xDA, 0x36, 0x2C, 0xEE, -0xD8, 0x36, 0x1E, 0x65, 0x41, 0x6E, 0xCB, 0xEE, -0xCC, 0xED, 0xD8, 0x67, 0xCD, 0xED, 0xE0, 0xF0, -0xB6, 0xC0, 0xA3, 0xA4, 0x0F, 0x6E, 0xAC, 0xEE, -0xE0, 0xF0, 0xB8, 0xA0, 0xFE, 0x65, 0x1D, 0x65, -0x10, 0x6D, 0xD8, 0x67, 0xAB, 0xED, 0xCC, 0xED, -0xDF, 0x67, 0xCD, 0xED, 0xE0, 0xF0, 0xB8, 0xC0, -0xA4, 0xA4, 0xE0, 0xF0, 0xD9, 0xA0, 0x2C, 0xED, -0xCC, 0xEB, 0xAD, 0xEB, 0xE0, 0xF0, 0x79, 0xC0, -0xA4, 0xA4, 0x03, 0x6E, 0xCB, 0xEE, 0xA6, 0x35, -0x2C, 0xED, 0xCC, 0xEB, 0xA4, 0x35, 0xAD, 0xEB, -0xE0, 0xF0, 0x79, 0xC0, 0xA4, 0xA4, 0x4C, 0xEB, -0xAA, 0x35, 0x2C, 0xED, 0xA8, 0x35, 0xAD, 0xEB, -0xE0, 0xF0, 0x79, 0xC0, 0x42, 0xA4, 0x41, 0x6B, -0x6B, 0xEB, 0x5A, 0x32, 0x2C, 0xEA, 0x6C, 0xEF, -0x58, 0x32, 0x4D, 0xEF, 0xE0, 0xF0, 0xF7, 0xC0, -0x42, 0xA4, 0x7F, 0x6D, 0xAC, 0xEF, 0x5E, 0x32, -0x5C, 0x32, 0x4D, 0xEF, 0xE0, 0xF0, 0xF7, 0xC0, -0x80, 0x18, 0xD7, 0x3A, 0xE0, 0xF0, 0x95, 0xA0, -0x86, 0x34, 0x2C, 0xEC, 0x80, 0x18, 0xCB, 0x0A, -0xE0, 0xF0, 0x95, 0xA0, 0x8A, 0x34, 0x2C, 0xEC, -0x80, 0x18, 0x99, 0x0A, 0xE0, 0xF0, 0x96, 0xA0, -0x08, 0x6A, 0xFF, 0x6B, 0x8C, 0xEA, 0x09, 0x22, -0xE0, 0xF0, 0xB5, 0xA0, 0x0E, 0x6A, 0x00, 0x6C, -0xAC, 0xEA, 0x6C, 0xEA, 0x07, 0x22, 0x91, 0x67, -0x05, 0x10, 0xE0, 0xF0, 0x95, 0xA0, 0x8E, 0x34, -0x2C, 0xEC, 0x6C, 0xEC, 0x30, 0xF0, 0x20, 0x68, -0x46, 0xF5, 0x18, 0x48, 0x80, 0x18, 0x11, 0x01, -0xE0, 0xF0, 0x95, 0xA0, 0x01, 0x69, 0x92, 0x34, -0x2C, 0xEC, 0x80, 0x18, 0x8D, 0x13, 0xE0, 0xF0, -0x95, 0xA0, 0x9A, 0x34, 0x2C, 0xEC, 0x80, 0x18, -0xB0, 0x14, 0x80, 0x18, 0x29, 0x5A, 0xE0, 0xF0, -0x77, 0xA0, 0x44, 0xF3, 0x8C, 0xA0, 0x02, 0x6A, -0x6A, 0x33, 0x4B, 0xEA, 0x2C, 0xEB, 0x8C, 0xEA, -0xE0, 0xF0, 0x95, 0xA0, 0x6D, 0xEA, 0x03, 0x6B, -0x6B, 0xEB, 0x6C, 0xEA, 0x2C, 0xEC, 0x44, 0xF3, -0x4C, 0xC0, 0x80, 0x18, 0xF2, 0x0A, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF0, 0x78, 0x9A, 0xF0, 0x6A, -0x30, 0xF0, 0x20, 0x68, 0x80, 0xA3, 0x46, 0xF5, -0x18, 0x48, 0x8C, 0xEA, 0x40, 0xC3, 0x00, 0xF1, -0x92, 0xA0, 0x80, 0x18, 0xCA, 0x09, 0x24, 0xF3, -0x60, 0xA0, 0x04, 0x6A, 0x6C, 0xEA, 0x13, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, 0x40, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF2, 0x84, 0x9C, -0x60, 0x9A, 0x8C, 0xEB, 0x60, 0xDA, 0x24, 0xF3, -0x60, 0xA0, 0x80, 0x9A, 0x66, 0x33, 0xC0, 0xF7, -0x60, 0x33, 0x8D, 0xEB, 0x60, 0xDA, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF2, 0x50, 0x9A, 0x10, 0xF0, -0x00, 0x6B, 0x60, 0xDA, 0x00, 0x18, 0xD2, 0xDE, -0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xC0, 0xA4, 0x01, 0x6A, 0x64, 0x67, 0x4C, 0xEE, -0xFF, 0x6C, 0x43, 0x2E, 0x30, 0xF0, 0x20, 0x6B, -0x46, 0xF5, 0x18, 0x4B, 0xE0, 0xF0, 0xEE, 0xA3, -0x02, 0x6D, 0xAB, 0xED, 0xEC, 0xED, 0xE0, 0xF0, -0xF2, 0xA3, 0xCD, 0xED, 0x20, 0x6E, 0xCC, 0xEF, -0x8C, 0xEF, 0xE0, 0xF0, 0xAE, 0xC3, 0x0B, 0x2F, -0xE0, 0xF0, 0xAF, 0xA3, 0x7F, 0x6E, 0xAC, 0xEE, -0xE0, 0xF0, 0xAE, 0xA3, 0xCC, 0xEC, 0xB6, 0x35, -0x4E, 0xED, 0x4C, 0xED, 0x0F, 0x10, 0xE0, 0xF0, -0xF4, 0xA3, 0x02, 0x6A, 0xEC, 0xEA, 0x8C, 0xEA, -0x0C, 0x22, 0xCC, 0xED, 0x8C, 0xED, 0x13, 0x2D, -0xE0, 0xF0, 0x6F, 0xA3, 0x7F, 0x6A, 0x01, 0x6D, -0x6C, 0xEA, 0x4C, 0xEC, 0x80, 0x18, 0xBB, 0x37, -0x11, 0x10, 0xCC, 0xED, 0x8C, 0xED, 0x07, 0x25, -0xE0, 0xF0, 0x6F, 0xA3, 0x7F, 0x6A, 0x00, 0x6D, -0x6C, 0xEA, 0x4C, 0xEC, 0xF3, 0x17, 0xE0, 0xF0, -0x6F, 0xA3, 0x7F, 0x6A, 0x6C, 0xEA, 0x4C, 0xEC, -0x80, 0x18, 0xC6, 0x37, 0x80, 0x18, 0xD0, 0x0B, -0x1E, 0x12, 0x30, 0xF0, 0x20, 0x6D, 0x46, 0xF5, -0x18, 0x4D, 0x05, 0x6E, 0x84, 0xF5, 0xCC, 0xC5, -0xE0, 0xA3, 0xE0, 0xF0, 0x0E, 0xA5, 0x02, 0x6E, -0xCB, 0xEE, 0x4C, 0xEF, 0x0C, 0xEE, 0xED, 0xEE, -0xE0, 0xF0, 0xCE, 0xC5, 0xE0, 0xA3, 0x11, 0x69, -0x2B, 0xE9, 0xE6, 0x37, 0x4C, 0xEF, 0xE4, 0x30, -0x03, 0x6F, 0xEB, 0xEF, 0x1F, 0x65, 0xCC, 0xEF, -0x0D, 0xEF, 0xE0, 0xF0, 0xEE, 0xC5, 0xC0, 0xA3, -0xCA, 0x36, 0x4C, 0xEE, 0xC8, 0x30, 0x05, 0x6E, -0xCB, 0xEE, 0xEC, 0xEE, 0x0D, 0xEE, 0xE0, 0xF0, -0xCE, 0xC5, 0xE0, 0xA3, 0x09, 0x68, 0x0B, 0xE8, -0xEE, 0x37, 0x4C, 0xEF, 0xEC, 0x37, 0x0C, 0xEE, -0xED, 0xEE, 0xE0, 0xF0, 0xCE, 0xC5, 0xE0, 0xA3, -0x2C, 0xEE, 0xF2, 0x37, 0x4C, 0xEF, 0xF0, 0x37, -0xED, 0xEE, 0xE0, 0xF0, 0xCE, 0xC5, 0xE0, 0xA3, -0xF6, 0x37, 0x4C, 0xEF, 0xF4, 0x37, 0xFF, 0x65, -0x21, 0x6F, 0xEB, 0xEF, 0xCC, 0xEF, 0xDF, 0x67, -0xCD, 0xEF, 0xE0, 0xF0, 0xEE, 0xC5, 0xC0, 0xA3, -0xDA, 0x36, 0x4C, 0xEE, 0xD8, 0x36, 0xFE, 0x65, -0x41, 0x6E, 0xCB, 0xEE, 0xEC, 0xEE, 0xFF, 0x67, -0xED, 0xEE, 0xE0, 0xF0, 0xCE, 0xC5, 0xE0, 0xA3, -0xFE, 0x37, 0xFC, 0x37, 0xFF, 0x65, 0x7F, 0x6F, -0x1F, 0x67, 0xEC, 0xEE, 0x0D, 0xEE, 0xE0, 0xF0, -0xCE, 0xC5, 0x21, 0xA3, 0x3E, 0x31, 0x3C, 0x31, -0x04, 0xD1, 0xE0, 0xF0, 0x0F, 0xA5, 0xF8, 0x65, -0x04, 0x90, 0x3F, 0x67, 0xEC, 0xE9, 0x0D, 0xE9, -0xE0, 0xF0, 0x2F, 0xC5, 0x24, 0xA3, 0xE0, 0xF0, -0x12, 0xA5, 0x26, 0x31, 0x4C, 0xE9, 0x24, 0x31, -0xF9, 0x65, 0x38, 0x67, 0x2C, 0xE8, 0x3F, 0x67, -0x2D, 0xE8, 0xE0, 0xF0, 0x12, 0xC5, 0x18, 0x65, -0x04, 0xA3, 0x09, 0x69, 0x2B, 0xE9, 0x0E, 0x30, -0x4C, 0xE8, 0x0C, 0x30, 0xF8, 0x65, 0x18, 0x67, -0x0C, 0xE9, 0x1F, 0x67, 0x0D, 0xE9, 0xE0, 0xF0, -0x32, 0xC5, 0x05, 0xA3, 0xE0, 0xF0, 0x13, 0xC5, -0x04, 0xA3, 0x12, 0x30, 0x4C, 0xE8, 0x10, 0x30, -0x18, 0x65, 0x11, 0x68, 0x0B, 0xE8, 0x0C, 0xE9, -0x18, 0x67, 0x0D, 0xE9, 0xE0, 0xF0, 0x32, 0xC5, -0xE0, 0xF0, 0x34, 0xA5, 0x06, 0xA3, 0x19, 0x65, -0x1E, 0x30, 0x38, 0x67, 0x1C, 0x30, 0x2C, 0xEF, -0x0D, 0xEF, 0xE0, 0xF0, 0xF4, 0xC5, 0x04, 0x6F, -0xEC, 0xEE, 0x8C, 0xEE, 0x20, 0x26, 0x30, 0xF0, -0x20, 0x6E, 0xE3, 0xF0, 0xD8, 0x9E, 0x00, 0xA6, -0x18, 0x65, 0x38, 0x67, 0x2F, 0x68, 0x2C, 0xE8, -0x00, 0xC6, 0xE0, 0xF0, 0xA7, 0xA5, 0x00, 0xA6, -0xAC, 0xEA, 0x8C, 0xE8, 0x50, 0x32, 0x0D, 0xEA, -0x8C, 0xEA, 0x40, 0xC6, 0x00, 0xA6, 0x06, 0x6A, -0xAC, 0xEA, 0x8C, 0xE8, 0x54, 0x32, 0x0D, 0xEA, -0x8C, 0xEA, 0x40, 0xC6, 0x40, 0xA6, 0x8C, 0xEA, -0xED, 0xEA, 0x8C, 0xEA, 0x40, 0xC6, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF6, 0x46, 0xA2, 0x08, 0x6E, -0xFF, 0x6D, 0xCC, 0xEA, 0x09, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF0, 0x98, 0x9A, 0x40, 0xA4, -0xAC, 0xEA, 0xCD, 0xEA, 0xAC, 0xEA, 0x40, 0xC4, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xE0, 0xF0, 0x8E, 0xA2, 0x02, 0x6F, 0xFF, 0x6E, -0xEC, 0xEC, 0x24, 0x24, 0x30, 0xF0, 0x20, 0x6C, -0xE3, 0xF0, 0xB8, 0x9C, 0x80, 0xA5, 0xCC, 0xEC, -0xED, 0xEC, 0xCC, 0xEC, 0x80, 0xC5, 0x30, 0xF0, -0x20, 0x6C, 0x83, 0xF2, 0xA0, 0x9C, 0x24, 0xF3, -0xE0, 0xA2, 0x03, 0x6C, 0xC0, 0x9D, 0x8B, 0xEC, -0xEC, 0xEC, 0xC0, 0xF7, 0xC2, 0x36, 0xC4, 0x36, -0xCD, 0xEC, 0x24, 0xF3, 0x80, 0xC2, 0x30, 0xF0, -0x20, 0x6F, 0xC0, 0x9D, 0x03, 0xF0, 0xEC, 0x9F, -0xED, 0xEE, 0xC0, 0xDD, 0x04, 0x6D, 0x8D, 0xED, -0x24, 0xF3, 0xA0, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xE0, 0xF0, 0x93, 0xA2, -0x03, 0x2C, 0x01, 0x6C, 0xE0, 0xF0, 0x93, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF6, 0x8A, 0xA2, -0x10, 0x6A, 0x8C, 0xEA, 0x08, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF2, 0x88, 0x9A, 0x7F, 0x6A, -0xA0, 0xA4, 0xAC, 0xEA, 0x40, 0xC4, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x42, 0xF6, -0x8C, 0xA2, 0x02, 0x74, 0x09, 0x61, 0xE0, 0xF0, -0x8F, 0xA2, 0x80, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, -0xFF, 0x6C, 0x8C, 0xEA, 0xE0, 0xF0, 0x01, 0x2A, -0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, -0xA1, 0xA3, 0xE0, 0xF0, 0x8F, 0xA0, 0x80, 0x6A, -0x7F, 0x69, 0x4B, 0xEA, 0x2C, 0xED, 0x4C, 0xEC, -0xAD, 0xEC, 0xE0, 0xF0, 0x8F, 0xC0, 0xA2, 0xA3, -0xE0, 0xF0, 0xD0, 0xA0, 0x2C, 0xED, 0x4C, 0xEE, -0xAD, 0xEE, 0xE0, 0xF0, 0xD0, 0xC0, 0xA3, 0xA3, -0x01, 0x6A, 0x2C, 0xEE, 0xE5, 0x67, 0x4C, 0xEF, -0x1F, 0x65, 0xE0, 0xF0, 0xF1, 0xA0, 0x02, 0x6D, -0xAB, 0xED, 0xAC, 0xEF, 0xB8, 0x67, 0xAD, 0xEF, -0xE0, 0xF0, 0xF1, 0xC0, 0xA3, 0xA3, 0x4C, 0xEF, -0xA6, 0x35, 0xA4, 0x35, 0xAD, 0xEF, 0xE0, 0xF0, -0xF1, 0xC0, 0xE4, 0xA3, 0x05, 0x6D, 0xAB, 0xED, -0xEA, 0x37, 0x4C, 0xEF, 0xE8, 0x37, 0xFF, 0x65, -0xE0, 0xF0, 0xF2, 0xA0, 0x1D, 0x65, 0xAC, 0xEF, -0xBF, 0x67, 0xAD, 0xEF, 0xE0, 0xF0, 0xF2, 0xC0, -0xA2, 0xA3, 0xBE, 0x35, 0xBC, 0x35, 0xAD, 0xEE, -0xE0, 0xF0, 0xD0, 0xC0, 0xC4, 0xA3, 0x02, 0x6D, -0xAB, 0xED, 0xD6, 0x36, 0x4C, 0xEE, 0xD4, 0x36, -0xFE, 0x65, 0x21, 0x6E, 0xCB, 0xEE, 0xEC, 0xEE, -0xFF, 0x67, 0xED, 0xEE, 0xE0, 0xF0, 0xD2, 0xC0, -0xE4, 0xA3, 0x2C, 0xEE, 0xFE, 0x37, 0xFC, 0x37, -0xED, 0xEE, 0xE0, 0xF0, 0xD2, 0xC0, 0xE4, 0xA3, -0xAC, 0xEE, 0x4C, 0xEF, 0xED, 0xEE, 0xE0, 0xF0, -0xD2, 0xC0, 0xE6, 0xA3, 0xA7, 0x67, 0x4C, 0xED, -0xE0, 0xF0, 0xF4, 0xA0, 0xFD, 0x65, 0x02, 0x6D, -0xAB, 0xED, 0xAC, 0xEF, 0xBF, 0x67, 0xAD, 0xEF, -0xE0, 0xF0, 0xF4, 0xC0, 0xA6, 0xA3, 0xA6, 0x35, -0x4C, 0xED, 0xA4, 0x35, 0xFD, 0x65, 0x03, 0x6D, -0xAB, 0xED, 0xEC, 0xED, 0xFF, 0x67, 0xED, 0xED, -0xE0, 0xF0, 0xB4, 0xC0, 0x66, 0xA3, 0xF8, 0x67, -0xEC, 0xED, 0x6A, 0x33, 0x4C, 0xEB, 0x68, 0x33, -0x6D, 0xED, 0x20, 0x6B, 0x6C, 0xEE, 0xE0, 0xF0, -0xB4, 0xC0, 0x09, 0x2E, 0xE0, 0xF0, 0xAE, 0xA0, -0x2C, 0xEC, 0xFF, 0x68, 0xB6, 0x35, 0x4E, 0xED, -0x0C, 0xEC, 0x4C, 0xED, 0x13, 0x10, 0x02, 0x6A, -0xAC, 0xEA, 0xFF, 0x6D, 0xAC, 0xEA, 0x11, 0x22, -0xE0, 0xF0, 0x4E, 0xA0, 0x4C, 0xEB, 0xAC, 0xEB, -0x05, 0x23, 0x2C, 0xEC, 0xAC, 0xEC, 0x80, 0x18, -0xC6, 0x37, 0x2C, 0x10, 0x2C, 0xEC, 0xFF, 0x6E, -0xCC, 0xEC, 0x01, 0x6D, 0x80, 0x18, 0xBB, 0x37, -0x25, 0x10, 0xE0, 0xF0, 0x4E, 0xA0, 0xFF, 0x6F, -0x6C, 0xEA, 0xEC, 0xEA, 0x04, 0x22, 0x2C, 0xEC, -0xEC, 0xEC, 0x00, 0x6D, 0xF3, 0x17, 0xFF, 0x6A, -0x2C, 0xEC, 0x4C, 0xEC, 0x80, 0x18, 0xC6, 0x37, -0xE0, 0xF0, 0x72, 0xA0, 0x7F, 0x6A, 0x4B, 0xEA, -0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x81, 0x72, -0x0D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, -0x84, 0x9A, 0x80, 0x18, 0x84, 0x57, 0xE0, 0xF0, -0x4F, 0xA0, 0xFF, 0x6C, 0x4C, 0xE9, 0x2C, 0xEC, -0x80, 0x18, 0xD7, 0x37, 0x80, 0x18, 0xF5, 0x08, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xE0, 0xF0, 0x92, 0xA2, 0x03, 0x6B, 0x8C, 0xEB, -0x01, 0x73, 0x0F, 0x61, 0x80, 0x6B, 0x6B, 0xEB, -0x8C, 0xEB, 0xFF, 0x6C, 0x8C, 0xEB, 0x09, 0x2B, -0x30, 0xF0, 0x20, 0x6C, 0xA0, 0xF0, 0x64, 0x9A, -0x63, 0xF1, 0x80, 0x9C, 0x8D, 0xEB, 0xA0, 0xF0, -0x64, 0xDA, 0x00, 0x18, 0xC6, 0xDE, 0x30, 0xF0, -0x20, 0x6A, 0x05, 0x6B, 0xEB, 0xF2, 0x64, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0x2B, 0xF1, 0x0D, 0x4C, -0x00, 0x6D, 0x08, 0x6E, 0x40, 0xEA, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x68, 0x80, 0xF2, 0x48, 0x98, 0x30, 0xF0, -0x20, 0x6C, 0x6B, 0xF0, 0x18, 0x4C, 0x00, 0x6D, -0x30, 0x6E, 0x40, 0xEA, 0x80, 0xF2, 0x48, 0x98, -0x30, 0xF0, 0x20, 0x6C, 0x46, 0xF6, 0x0D, 0x4C, -0x00, 0x6D, 0x07, 0x6E, 0x40, 0xEA, 0x80, 0xF2, -0x48, 0x98, 0x30, 0xF0, 0x20, 0x6C, 0x46, 0xF6, -0x06, 0x4C, 0x00, 0x6D, 0x07, 0x6E, 0x40, 0xEA, -0x80, 0x18, 0x32, 0x07, 0x80, 0x18, 0xA7, 0x13, -0x80, 0x18, 0x9B, 0x12, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF1, 0x48, 0x9A, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF1, 0x6C, 0x9B, 0xFF, 0x68, 0x49, 0xE4, -0x0C, 0xED, 0x05, 0xD5, 0x04, 0xD2, 0x6D, 0xE4, -0x40, 0xA2, 0xA0, 0xA3, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF2, 0x2C, 0x9B, 0x0C, 0xED, 0x25, 0xE4, -0xC0, 0xA1, 0x90, 0x67, 0x4C, 0xEC, 0x0C, 0xEE, -0x80, 0x18, 0xC4, 0x06, 0x06, 0xD2, 0x80, 0xA1, -0x0C, 0xEC, 0x80, 0x18, 0xB4, 0x06, 0x22, 0x67, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x84, 0xF5, 0xCD, 0xA2, 0x07, 0x5E, 0x33, 0x60, -0x84, 0xF5, 0x6D, 0x82, 0x01, 0x6A, 0x44, 0xEB, -0x14, 0x6B, 0x4C, 0xEB, 0x18, 0x2B, 0x62, 0x6B, -0x4C, 0xEB, 0x29, 0x23, 0x30, 0xF0, 0x20, 0x68, -0x05, 0x95, 0xAB, 0xF2, 0x14, 0x48, 0x90, 0x67, -0x80, 0x18, 0xAD, 0x00, 0x04, 0x93, 0x06, 0x94, -0x89, 0xE3, 0x2B, 0xE2, 0x25, 0xE0, 0x04, 0x10, -0x60, 0xA0, 0x01, 0x48, 0x60, 0xC2, 0x01, 0x4A, -0x2A, 0xE8, 0xFA, 0x61, 0x14, 0x10, 0x30, 0xF0, -0x20, 0x68, 0x05, 0x95, 0xAB, 0xF2, 0x14, 0x48, -0x90, 0x67, 0x80, 0x18, 0x92, 0x00, 0x04, 0x93, -0x06, 0x94, 0x89, 0xE3, 0x2B, 0xE2, 0x25, 0xE0, -0x04, 0x10, 0x60, 0xA0, 0x01, 0x48, 0x60, 0xC2, -0x01, 0x4A, 0x2A, 0xE8, 0xFA, 0x61, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x40, 0x98, -0x09, 0xD5, 0x24, 0x67, 0x40, 0xEA, 0x0C, 0x6B, -0x4C, 0xEB, 0x08, 0x73, 0x5E, 0x61, 0x09, 0x93, -0xC0, 0xF3, 0x40, 0x98, 0x86, 0x41, 0x71, 0xE4, -0x40, 0xEA, 0x88, 0x72, 0x56, 0x61, 0x09, 0x93, -0xC0, 0xF3, 0x40, 0x98, 0x87, 0x41, 0x71, 0xE4, -0x40, 0xEA, 0x8E, 0x72, 0x4E, 0x61, 0x09, 0x93, -0x87, 0x41, 0xC0, 0xF3, 0x40, 0x98, 0x02, 0x4C, -0x71, 0xE4, 0x40, 0xEA, 0x03, 0x72, 0x47, 0x61, -0x09, 0x93, 0x87, 0x41, 0xC0, 0xF3, 0x40, 0x98, -0x07, 0x4C, 0x71, 0xE4, 0x40, 0xEA, 0x08, 0x6B, -0x6C, 0xEA, 0x11, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xE0, 0xF0, 0x99, 0xA2, -0x01, 0x6B, 0x6C, 0xEC, 0x34, 0x2C, 0x30, 0xF0, -0x20, 0x6C, 0xE3, 0xF0, 0x94, 0x9C, 0x60, 0xC4, -0x24, 0xF3, 0x80, 0xA2, 0x26, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0xE0, 0xF0, -0xB5, 0xA2, 0xFF, 0x6C, 0x6C, 0xED, 0x0E, 0x25, -0xE0, 0xF0, 0xBC, 0xA2, 0x02, 0x75, 0x05, 0x61, -0xE0, 0xF0, 0xB6, 0xA2, 0xAC, 0xEB, 0x8C, 0xEB, -0x0B, 0x23, 0x09, 0x95, 0x91, 0x67, 0x80, 0x18, -0xCD, 0x02, 0x15, 0x10, 0xE0, 0xF0, 0xAE, 0xA2, -0x40, 0x6B, 0xAC, 0xEB, 0x8C, 0xEB, 0x0F, 0x23, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0x74, 0x9B, -0x02, 0x6C, 0x80, 0xC3, 0x24, 0xF3, 0x80, 0xA2, -0x01, 0x6B, 0x8D, 0xEB, 0x24, 0xF3, 0x60, 0xC2, -0x02, 0x10, 0x00, 0x6A, 0x01, 0x10, 0x01, 0x6A, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x48, 0x9A, 0xFF, 0x69, 0x04, 0x00, -0x8C, 0xE9, 0x00, 0x6D, 0x90, 0x67, 0x08, 0x6E, -0x40, 0xEA, 0x01, 0x6A, 0x2C, 0xEA, 0x12, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xE0, 0xF0, 0x7C, 0xA2, 0x30, 0xF0, 0x20, 0x6D, -0x90, 0x67, 0x84, 0xF5, 0x6D, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0xEB, 0xF2, -0x0C, 0x4D, 0x39, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xE0, 0xF0, 0x7D, 0xA2, -0x84, 0xF5, 0x6D, 0xC2, 0x84, 0xF5, 0x4C, 0xA2, -0x01, 0x72, 0x10, 0x60, 0x05, 0x22, 0x02, 0x72, -0x17, 0x60, 0x03, 0x72, 0x1F, 0x60, 0x29, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6D, -0x80, 0xF2, 0x4C, 0x9A, 0x90, 0x67, 0xEB, 0xF2, -0x14, 0x4D, 0x1D, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6D, 0x80, 0xF2, 0x4C, 0x9A, -0x90, 0x67, 0xEB, 0xF2, 0x1C, 0x4D, 0x13, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6D, -0x80, 0xF2, 0x4C, 0x9A, 0x90, 0x67, 0x0B, 0xF3, -0x04, 0x4D, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6D, -0x90, 0x67, 0x0B, 0xF3, 0x0C, 0x4D, 0x08, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x84, 0xF5, 0xAD, 0xA2, 0x07, 0x5D, -0x5A, 0x60, 0x84, 0xF5, 0x6D, 0x82, 0x01, 0x6A, -0x44, 0xEB, 0x14, 0x6B, 0x4C, 0xEB, 0x07, 0x2B, -0x62, 0x6B, 0x4C, 0xEB, 0x50, 0x23, 0x04, 0x04, -0x80, 0x18, 0xEE, 0x00, 0x03, 0x10, 0x04, 0x04, -0x80, 0x18, 0xCA, 0x00, 0x02, 0x67, 0x41, 0x22, -0x01, 0x6A, 0x2C, 0xEA, 0x09, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6C, 0x80, 0xF2, -0x4C, 0x9A, 0xEB, 0xF2, 0x0C, 0x4C, 0x2F, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xEB, 0xF2, 0x44, 0xA2, -0x01, 0x72, 0x0F, 0x60, 0x05, 0x22, 0x02, 0x72, -0x15, 0x60, 0x03, 0x72, 0x1C, 0x60, 0x29, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6C, -0x80, 0xF2, 0x4C, 0x9A, 0xEB, 0xF2, 0x14, 0x4C, -0x1A, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6C, 0x80, 0xF2, 0x4C, 0x9A, 0xEB, 0xF2, -0x1C, 0x4C, 0x11, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6C, 0x80, 0xF2, 0x4C, 0x9A, -0x0B, 0xF3, 0x04, 0x4C, 0x08, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0x0B, 0xF3, 0x0C, 0x4C, 0x30, 0xF0, -0x20, 0x6D, 0x8B, 0xF0, 0x0F, 0x4D, 0x08, 0x6E, -0x40, 0xEA, 0x50, 0x67, 0x09, 0x97, 0x08, 0x91, -0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x01, 0x68, -0xB7, 0x17, 0x00, 0x65, 0xF5, 0x63, 0x15, 0x62, -0x14, 0xD1, 0x13, 0xD0, 0xFF, 0x6A, 0x0F, 0xD2, -0x7D, 0x67, 0x60, 0xF0, 0x68, 0xA3, 0x18, 0xD6, -0xDD, 0x67, 0x10, 0xD3, 0x60, 0xF0, 0xCC, 0xA6, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, 0x4C, 0x9A, -0x16, 0xD4, 0x17, 0xD5, 0x19, 0xD7, 0x11, 0xD6, -0x40, 0xA2, 0xFF, 0x6B, 0x4C, 0xEB, 0x0F, 0xD3, -0x00, 0x18, 0x84, 0xD4, 0x1C, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6C, -0xFF, 0x6D, 0x39, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, 0x00, 0x68, -0x40, 0xEA, 0x01, 0x72, 0x19, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF2, -0x54, 0x9A, 0x46, 0xF6, 0x9D, 0xA3, 0x01, 0x6D, -0x18, 0x6E, 0xF0, 0x67, 0x0B, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF2, -0x54, 0x9A, 0x46, 0xF6, 0x9D, 0xA3, 0x01, 0x6D, -0x18, 0x6E, 0x00, 0x6F, 0x40, 0xEA, 0x02, 0x67, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF1, 0x50, 0x9A, 0x83, 0xF1, 0x6C, 0x9B, -0x49, 0xE0, 0x6D, 0xE0, 0x80, 0xA2, 0xA0, 0xA3, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0x78, 0x9B, -0xFF, 0x6A, 0x4C, 0xEC, 0x6D, 0xE0, 0xC0, 0xA3, -0x4C, 0xED, 0x4C, 0xEE, 0x80, 0x18, 0xC4, 0x06, -0x10, 0x95, 0x87, 0x40, 0x29, 0x4C, 0x22, 0x67, -0x80, 0x18, 0x39, 0x0D, 0x11, 0x96, 0x0F, 0x2E, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6D, -0xC3, 0xF1, 0x48, 0x9A, 0x83, 0xF2, 0xB4, 0x9D, -0x16, 0x94, 0x49, 0xE0, 0xB5, 0xE0, 0x29, 0xE2, -0x18, 0x93, 0x35, 0xE5, 0x09, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF1, 0x6C, 0x9A, 0x0E, 0x04, -0x04, 0x02, 0x6D, 0xE0, 0x2D, 0xE3, 0x27, 0x10, -0xC0, 0xA4, 0x01, 0x4C, 0xC0, 0xC2, 0xE0, 0xA3, -0xC8, 0x42, 0xF8, 0x4E, 0xE0, 0xC6, 0xC0, 0xA3, -0x01, 0x4B, 0xD8, 0xC2, 0x01, 0x4A, 0xAA, 0xEA, -0xF3, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, -0x84, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, -0x70, 0x9A, 0x91, 0xE0, 0x00, 0x6A, 0x6D, 0xE0, -0x2D, 0xE3, 0x17, 0x96, 0x55, 0xE6, 0xA0, 0xA5, -0xA0, 0xC4, 0x19, 0x96, 0x01, 0x4C, 0x55, 0xE6, -0xA0, 0xA5, 0x01, 0x4A, 0x06, 0x72, 0xA0, 0xC3, -0x01, 0x4B, 0xF3, 0x61, 0xD0, 0x17, 0xA0, 0xA3, -0x01, 0x4B, 0xA0, 0xC2, 0x01, 0x4A, 0x8A, 0xEA, -0xFA, 0x61, 0x16, 0x94, 0x18, 0x95, 0x3A, 0x6F, -0x20, 0x6E, 0x80, 0x18, 0x05, 0x06, 0x30, 0xF0, -0x20, 0x6B, 0xA0, 0xF3, 0x5C, 0x9B, 0x38, 0x48, -0x21, 0xE0, 0x30, 0xF0, 0x20, 0x6E, 0x90, 0x67, -0x0E, 0xD0, 0x28, 0x6D, 0x8B, 0xF2, 0x0C, 0x4E, -0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, 0x46, 0xF5, -0x18, 0x48, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, -0x54, 0x9A, 0x0E, 0x95, 0x00, 0xF1, 0xC5, 0xA0, -0x3A, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6E, -0xA0, 0xF3, 0x5C, 0x9E, 0x0E, 0x94, 0x28, 0x6D, -0x04, 0x06, 0x40, 0xEA, 0xE0, 0xF0, 0x5C, 0xA0, -0x02, 0x72, 0x05, 0x61, 0x00, 0xF1, 0x85, 0xA0, -0xB1, 0x67, 0x80, 0x18, 0xE2, 0x09, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF1, 0x3C, 0x9A, 0xFF, 0x68, -0x02, 0x6B, 0x40, 0xA1, 0x00, 0x6C, 0x3A, 0x6E, -0x0C, 0xEA, 0x6D, 0xEA, 0x0C, 0xEA, 0x40, 0xC1, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, -0x0F, 0x95, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, 0x06, 0x2A, -0x40, 0xA1, 0x20, 0x6B, 0x0C, 0xEA, 0x6D, 0xEA, -0x0C, 0xEA, 0x40, 0xC1, 0x15, 0x97, 0x14, 0x91, -0x13, 0x90, 0x0B, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xF1, 0x63, 0x1D, 0x62, 0x1C, 0xD1, 0x1B, 0xD0, -0x00, 0x6A, 0x7D, 0x67, 0x1E, 0xD4, 0x1F, 0xD5, -0x06, 0xD2, 0x4E, 0xCB, 0x08, 0xD2, 0x09, 0xD2, -0x0A, 0xD2, 0x0B, 0xD2, 0x0C, 0xD2, 0x0D, 0xD2, -0x0E, 0xD2, 0x0F, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x20, 0xF4, 0x58, 0x9A, 0x1E, 0x94, 0x1F, 0x95, -0x40, 0xEA, 0x01, 0x72, 0x00, 0xF1, 0x0A, 0x61, -0x1E, 0x94, 0x1F, 0x93, 0x30, 0xF0, 0x20, 0x68, -0xC0, 0xF3, 0x40, 0x98, 0x0E, 0x4C, 0x71, 0xE4, -0x40, 0xEA, 0x3A, 0x72, 0xE0, 0xF0, 0x1E, 0x61, -0x1E, 0x94, 0x1F, 0x93, 0xC0, 0xF3, 0x40, 0x98, -0x30, 0x4C, 0x71, 0xE4, 0x40, 0xEA, 0x87, 0x72, -0xE0, 0xF0, 0x14, 0x61, 0x1E, 0x90, 0x1F, 0x92, -0x10, 0x03, 0x38, 0x48, 0x41, 0xE0, 0x0C, 0x01, -0x16, 0xD3, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x40, 0x9A, 0x90, 0x67, 0x01, 0x48, 0x40, 0xEA, -0x40, 0xC1, 0x16, 0x92, 0x01, 0x49, 0x4A, 0xE9, -0xF4, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x0B, 0xF2, -0x1D, 0x4B, 0x12, 0xD3, 0x00, 0x68, 0x38, 0x6C, -0x98, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x12, 0xEC, 0x4D, 0xE4, 0xC4, 0xF4, -0xA4, 0xA3, 0x01, 0x6B, 0xAC, 0xEB, 0xC0, 0xF0, -0x0F, 0x23, 0x89, 0xE2, 0xC4, 0xF4, 0x06, 0x4A, -0x13, 0xD2, 0x14, 0xD2, 0x00, 0x69, 0xBC, 0x10, -0xE0, 0xA2, 0xC0, 0xA4, 0x01, 0x4A, 0x01, 0x4C, -0xEE, 0xEE, 0x01, 0x5E, 0xD8, 0x67, 0xCB, 0xEE, -0xAA, 0xEA, 0xCC, 0xEB, 0xF5, 0x61, 0x01, 0x73, -0xA0, 0xF0, 0x00, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF1, 0x7C, 0x9A, 0xFF, 0x6C, 0x06, 0x6D, -0x40, 0xA3, 0xAB, 0xED, 0x8C, 0xEA, 0xAC, 0xEA, -0x01, 0x6D, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, -0x1E, 0x92, 0x1F, 0x93, 0x4A, 0x4A, 0x69, 0xE2, -0x11, 0xD2, 0x00, 0xF0, 0x1E, 0x03, 0x06, 0x02, -0x10, 0xD2, 0x17, 0xD3, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x40, 0x9A, 0x11, 0x94, 0x40, 0xEA, -0x10, 0x93, 0x40, 0xC3, 0x11, 0x92, 0x01, 0x4B, -0x10, 0xD3, 0x01, 0x4A, 0x11, 0xD2, 0x17, 0x92, -0x4A, 0xEB, 0xF0, 0x61, 0x1E, 0x92, 0x1F, 0x93, -0x10, 0x4A, 0x69, 0xE2, 0x11, 0xD2, 0x0C, 0x03, -0x08, 0x02, 0x10, 0xD2, 0x18, 0xD3, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, 0x11, 0x94, -0x40, 0xEA, 0x10, 0x93, 0x40, 0xC3, 0x11, 0x92, -0x01, 0x4B, 0x10, 0xD3, 0x01, 0x4A, 0x11, 0xD2, -0x18, 0x92, 0x4A, 0xEB, 0xF0, 0x61, 0x38, 0x6C, -0x98, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, -0x18, 0x4B, 0x01, 0x6D, 0x12, 0xEC, 0x69, 0xE4, -0xC4, 0xF4, 0x44, 0xA2, 0x46, 0x32, 0xAC, 0xEA, -0x30, 0x22, 0x70, 0x10, 0xE0, 0xA2, 0xC0, 0xA3, -0x01, 0x4A, 0x01, 0x4B, 0xEE, 0xEE, 0x01, 0x5E, -0xD8, 0x67, 0xCB, 0xEE, 0xAA, 0xEA, 0xCC, 0xEC, -0xF5, 0x61, 0x01, 0x74, 0x4E, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0xE0, 0xF0, -0x7C, 0xA2, 0x02, 0x73, 0x12, 0x61, 0xE0, 0xF0, -0x96, 0xA2, 0x08, 0x6B, 0x8C, 0xEB, 0x0D, 0x2B, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0x74, 0x9B, -0x0A, 0x6C, 0x80, 0xC3, 0x24, 0xF3, 0x80, 0xA2, -0x01, 0x6B, 0x8D, 0xEB, 0x24, 0xF3, 0x60, 0xC2, -0x43, 0x10, 0x00, 0x6A, 0x04, 0xD2, 0x05, 0xD2, -0x08, 0x04, 0x06, 0x05, 0x0C, 0x06, 0x14, 0x97, -0x1E, 0x10, 0xE0, 0xF0, 0x5C, 0xA3, 0x02, 0x72, -0x13, 0x61, 0xE0, 0xF0, 0x96, 0xA3, 0x08, 0x6A, -0x8C, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, 0x0C, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, 0x54, 0x9A, -0x0A, 0x6C, 0x80, 0xC2, 0x24, 0xF3, 0x40, 0xA3, -0x4D, 0xED, 0x24, 0xF3, 0xA0, 0xC3, 0x24, 0x10, -0x13, 0x97, 0x00, 0x6A, 0x04, 0xD2, 0x05, 0xD2, -0x08, 0x04, 0x06, 0x05, 0x0C, 0x06, 0x80, 0x18, -0x09, 0x0E, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF1, 0x7C, 0x9A, 0xFF, 0x6C, 0x05, 0x6D, -0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, -0x40, 0xC3, 0x01, 0x49, 0xFF, 0x6A, 0x4C, 0xE9, -0x12, 0x93, 0x40, 0xA3, 0x43, 0xE9, 0x15, 0x61, -0x01, 0x48, 0x38, 0x4B, 0x02, 0x70, 0x12, 0xD3, -0x03, 0x60, 0x25, 0x17, 0x00, 0x6A, 0x01, 0x10, -0x01, 0x6A, 0x1D, 0x97, 0x1C, 0x91, 0x1B, 0x90, -0x0F, 0x63, 0x00, 0xEF, 0x8D, 0xE3, 0x08, 0x02, -0xC4, 0xF4, 0x0C, 0x4B, 0x0C, 0x05, 0x01, 0x6C, -0x89, 0x17, 0x38, 0x6C, 0x98, 0xE8, 0x30, 0x33, -0x0C, 0x02, 0x10, 0x05, 0x12, 0xEC, 0x91, 0xE3, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, -0x91, 0xE3, 0xC4, 0xF4, 0x1C, 0x4C, 0x01, 0x6B, -0x1B, 0x17, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0xFF, 0x6A, 0x63, 0xF1, 0x6C, 0x9B, 0x4C, 0xEE, -0x4C, 0xEF, 0x0C, 0xD4, 0x0D, 0xD5, 0x06, 0xD6, -0x04, 0xD7, 0x60, 0xA3, 0x6C, 0xEA, 0x05, 0xD2, -0x00, 0x18, 0x84, 0xD4, 0x1C, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6C, -0xFF, 0x6D, 0x33, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, 0x00, 0x68, -0x40, 0xEA, 0x01, 0x72, 0x19, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF2, -0x54, 0x9A, 0x46, 0xF6, 0x9C, 0xA3, 0x01, 0x6D, -0x18, 0x6E, 0xF0, 0x67, 0x0B, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF2, -0x54, 0x9A, 0x46, 0xF6, 0x9C, 0xA3, 0x01, 0x6D, -0x18, 0x6E, 0x00, 0x6F, 0x40, 0xEA, 0x02, 0x67, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF1, 0x50, 0x9A, 0x83, 0xF1, 0x6C, 0x9B, -0x49, 0xE0, 0x6D, 0xE0, 0x80, 0xA2, 0xA0, 0xA3, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0x78, 0x9B, -0xFF, 0x6A, 0x4C, 0xEC, 0x6D, 0xE0, 0xC0, 0xA3, -0x4C, 0xED, 0x4C, 0xEE, 0x80, 0x18, 0xC4, 0x06, -0x06, 0x95, 0x87, 0x40, 0x29, 0x4C, 0x22, 0x67, -0x80, 0x18, 0x39, 0x0D, 0x04, 0x92, 0x2E, 0x2A, -0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF2, 0x88, 0x9C, 0x30, 0xF0, 0x20, 0x6D, -0xC3, 0xF1, 0x44, 0x9A, 0xC3, 0xF1, 0xBC, 0x9D, -0x0D, 0x93, 0x91, 0xE0, 0x49, 0xE0, 0x31, 0xE4, -0xB5, 0xE0, 0xC0, 0xA3, 0xC0, 0xC2, 0xC0, 0xA3, -0x01, 0x4A, 0xAA, 0xEA, 0xC0, 0xC4, 0x01, 0x4B, -0x01, 0x4C, 0xF7, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF1, 0x48, 0x9A, -0x83, 0xF2, 0x98, 0x9C, 0x0C, 0x93, 0x49, 0xE0, -0x81, 0xE0, 0x29, 0xE2, 0x21, 0xE0, 0x80, 0xA3, -0x01, 0x4B, 0x80, 0xC2, 0x01, 0x4A, 0x0A, 0xEA, -0xFA, 0x61, 0x2D, 0x10, 0x04, 0x92, 0x01, 0x72, -0x2A, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, -0x84, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, -0x68, 0x9B, 0x30, 0xF0, 0x20, 0x6A, 0x0B, 0xF2, -0x08, 0x4A, 0x6D, 0xE0, 0x91, 0xE0, 0x2D, 0xE3, -0xA6, 0x42, 0xC0, 0xA2, 0xC0, 0xC4, 0xCA, 0xA2, -0x01, 0x4A, 0xAA, 0xEA, 0xC0, 0xC3, 0x01, 0x4C, -0x01, 0x4B, 0xF7, 0x61, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF1, 0x68, 0x9B, 0x30, 0xF0, 0x20, 0x6A, -0x0B, 0xF2, 0x18, 0x4A, 0x61, 0xE0, 0x21, 0xE0, -0x64, 0x42, 0x80, 0xA2, 0x01, 0x4A, 0x6A, 0xEA, -0x80, 0xC0, 0x01, 0x48, 0xFA, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0xE0, 0xF0, -0x7C, 0xA2, 0x02, 0x73, 0x05, 0x61, 0x00, 0xF1, -0x84, 0xA2, 0xB1, 0x67, 0x80, 0x18, 0xE2, 0x09, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x78, 0x9A, -0xFF, 0x68, 0x10, 0x6C, 0x40, 0xA3, 0x34, 0x6E, -0x0C, 0xEA, 0x8D, 0xEA, 0x0C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, -0x05, 0x95, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, -0x0A, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, -0x7C, 0x9A, 0x20, 0x6C, 0x40, 0xA3, 0x0C, 0xEA, -0x8D, 0xEA, 0x0C, 0xEA, 0x40, 0xC3, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0xE4, 0x67, 0x30, 0xF0, -0x20, 0x6C, 0x46, 0xF5, 0x18, 0x4C, 0xA0, 0xF0, -0xAF, 0xA4, 0x04, 0x6B, 0xFF, 0x6A, 0xAC, 0xEB, -0x4C, 0xEB, 0x4C, 0xEF, 0x07, 0x23, 0x00, 0x6C, -0xA4, 0x67, 0xC4, 0x67, 0x01, 0x6F, 0x80, 0x18, -0x2D, 0x0F, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x40, 0xF4, 0x50, 0x9A, 0xA0, 0xF0, 0x8A, 0xA4, -0x02, 0x6D, 0x08, 0x6E, 0x40, 0xEA, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x46, 0xF5, 0x18, 0x48, 0x24, 0x67, 0xA0, 0xF0, -0x8F, 0xA0, 0x01, 0x6B, 0xFF, 0x6A, 0x8C, 0xEB, -0x4C, 0xEB, 0x4C, 0xE9, 0x2E, 0x23, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, 0xE0, 0xF0, -0x88, 0xA0, 0x40, 0xEA, 0x01, 0x72, 0x25, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF3, 0x6D, 0xA2, -0x0A, 0x6C, 0x01, 0x4B, 0x86, 0xF3, 0x6D, 0xC2, -0x86, 0xF3, 0x6D, 0xA2, 0x8E, 0xEB, 0x07, 0x2B, -0x05, 0xF3, 0x89, 0xA0, 0x86, 0xF3, 0x6D, 0xC2, -0x01, 0x4C, 0x05, 0xF3, 0x89, 0xC0, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0xA0, 0xF0, -0x90, 0xA2, 0x05, 0xF3, 0x69, 0xA2, 0x83, 0xEB, -0x08, 0x61, 0x05, 0xF3, 0x6A, 0xA2, 0x05, 0x2B, -0x05, 0xF3, 0x69, 0xC2, 0x91, 0x67, 0x80, 0x18, -0xA4, 0x0F, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xF5, 0x63, 0x15, 0x62, -0x14, 0xD1, 0x13, 0xD0, 0x00, 0x6A, 0x7D, 0x67, -0x30, 0xF0, 0x20, 0x69, 0x17, 0xD5, 0x0A, 0xD2, -0x56, 0xCB, 0x06, 0xD2, 0x07, 0xD2, 0xC0, 0xF3, -0x40, 0x99, 0x04, 0x67, 0x06, 0x4C, 0xB1, 0xE4, -0x40, 0xEA, 0x08, 0x72, 0x00, 0xF1, 0x11, 0x61, -0x17, 0x95, 0xC0, 0xF3, 0x40, 0x99, 0x87, 0x40, -0xB1, 0xE4, 0x40, 0xEA, 0x06, 0x72, 0x00, 0xF1, -0x08, 0x61, 0x27, 0x40, 0x08, 0x02, 0x20, 0xF0, -0x06, 0x03, 0x03, 0x49, 0x0C, 0xD2, 0x0E, 0xD3, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, -0x91, 0x67, 0x01, 0x49, 0x40, 0xEA, 0x0C, 0x94, -0x0E, 0x95, 0x40, 0xC4, 0x01, 0x4C, 0xAA, 0xEC, -0x0C, 0xD4, 0xF2, 0x61, 0xF8, 0x10, 0xE0, 0xA3, -0xC0, 0xA2, 0x01, 0x4B, 0x01, 0x4A, 0xEE, 0xEE, -0x01, 0x5E, 0xD8, 0x67, 0xCB, 0xEE, 0xAA, 0xEB, -0xCC, 0xEC, 0xF5, 0x61, 0x01, 0x74, 0x01, 0x6A, -0xE0, 0xF0, 0x04, 0x61, 0x17, 0x92, 0x27, 0x40, -0x19, 0x49, 0x07, 0x03, 0x08, 0x04, 0x45, 0xE1, -0x0C, 0xD3, 0x0F, 0xD4, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x40, 0x9A, 0x91, 0x67, 0x01, 0x49, -0x40, 0xEA, 0x0C, 0x95, 0x40, 0xC5, 0x0F, 0x92, -0x01, 0x4D, 0x0C, 0xD5, 0x4A, 0xED, 0xF2, 0x61, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, -0x20, 0xF1, 0x86, 0xA3, 0x01, 0x6A, 0x00, 0x69, -0x8C, 0xEA, 0x25, 0x2A, 0x5D, 0x67, 0xDD, 0xA2, -0xA4, 0xF4, 0x57, 0xA3, 0x9D, 0x67, 0xBC, 0xA4, -0xA4, 0xF4, 0x96, 0xA3, 0x66, 0x67, 0x4E, 0xEB, -0x51, 0x67, 0x04, 0x2B, 0x45, 0x67, 0x8E, 0xEA, -0x01, 0x5A, 0x58, 0x67, 0x30, 0xF0, 0x20, 0x6B, -0x46, 0xF5, 0x18, 0x4B, 0x9D, 0x67, 0xBE, 0xA4, -0xA4, 0xF4, 0x98, 0xA3, 0xA4, 0xF4, 0x79, 0xA3, -0xAE, 0xEC, 0x01, 0x5C, 0x98, 0x67, 0x8B, 0xEC, -0xBD, 0x67, 0x8C, 0xEA, 0x9F, 0xA5, 0x8E, 0xEB, -0x80, 0xF0, 0x10, 0x2B, 0x15, 0x10, 0xFF, 0x6A, -0x2C, 0xEA, 0x0D, 0xD2, 0x80, 0xF2, 0xA9, 0x41, -0x30, 0xF0, 0x20, 0x6A, 0xB0, 0x35, 0x46, 0xF5, -0x18, 0x4A, 0xB5, 0xE2, 0x07, 0x04, 0x06, 0x4D, -0x04, 0x6E, 0x00, 0x18, 0xCD, 0xD4, 0x08, 0x22, -0x01, 0x49, 0x04, 0x71, 0xEC, 0x61, 0x7A, 0x10, -0x01, 0x72, 0x78, 0x61, 0x00, 0x6B, 0x0D, 0xD3, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x78, 0x9A, -0xFF, 0x6D, 0x22, 0x6C, 0x40, 0xA3, 0x8B, 0xEC, -0xAC, 0xEA, 0x8C, 0xEA, 0x01, 0x6C, 0x8D, 0xEA, -0xAC, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xE0, 0xF0, 0x77, 0xA2, -0x8C, 0xEB, 0xAC, 0xEB, 0x14, 0x2B, 0xE0, 0xF0, -0x7C, 0xA2, 0x02, 0x73, 0x0A, 0x60, 0x17, 0x94, -0x27, 0x40, 0x09, 0x49, 0x0A, 0x05, 0x20, 0xF0, -0x0E, 0x02, 0x85, 0xE1, 0x0C, 0xD5, 0x10, 0xD2, -0x12, 0x10, 0xE0, 0xF0, 0xD6, 0xA2, 0x08, 0x6B, -0xCC, 0xEB, 0xAC, 0xEB, 0xF0, 0x2B, 0x30, 0xF0, -0x20, 0x6B, 0xE3, 0xF0, 0x74, 0x9B, 0x09, 0x6D, -0xA0, 0xC3, 0x24, 0xF3, 0x60, 0xA2, 0x6D, 0xEC, -0x24, 0xF3, 0x80, 0xC2, 0x36, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, 0x91, 0x67, -0x01, 0x49, 0x40, 0xEA, 0x0C, 0x93, 0x10, 0x94, -0x40, 0xC3, 0x01, 0x4B, 0x8A, 0xEB, 0x0C, 0xD3, -0xF2, 0x61, 0x17, 0x95, 0x16, 0x48, 0x07, 0x02, -0xA1, 0xE0, 0x06, 0x01, 0x11, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, 0x90, 0x67, -0x01, 0x48, 0x40, 0xEA, 0x11, 0x93, 0x40, 0xC1, -0x01, 0x49, 0x6A, 0xE9, 0xF4, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x20, 0xF1, -0x86, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, 0x0F, 0x23, -0x0D, 0x96, 0x98, 0x67, 0x04, 0xD4, 0x80, 0xF2, -0x09, 0x4E, 0xD0, 0x36, 0xD9, 0xE2, 0x06, 0x04, -0x0A, 0x05, 0x06, 0x4E, 0x00, 0x6F, 0x80, 0x18, -0x38, 0x05, 0x01, 0x6A, 0x17, 0x10, 0x00, 0x6E, -0x06, 0x04, 0x0A, 0x05, 0xE6, 0x67, 0x80, 0x18, -0x2D, 0x0F, 0xF7, 0x17, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF2, 0x78, 0x9A, 0xFF, 0x6C, 0x32, 0x6D, -0x40, 0xA3, 0xAB, 0xED, 0x8C, 0xEA, 0xAC, 0xEA, -0x21, 0x6D, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, -0xE8, 0x17, 0x00, 0x6A, 0x15, 0x97, 0x14, 0x91, -0x13, 0x90, 0x0B, 0x63, 0x00, 0xEF, 0x30, 0xF0, -0x20, 0x6A, 0x08, 0x03, 0x6B, 0xF0, 0x1F, 0x4A, -0x20, 0xF0, 0x06, 0x05, 0x01, 0x6C, 0xFF, 0x16, -0xF4, 0x63, 0x17, 0x62, 0x16, 0xD1, 0x15, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF5, 0x78, 0x9A, -0x22, 0xF5, 0x18, 0x4A, 0x00, 0x6C, 0x05, 0xD3, -0x61, 0x9A, 0x44, 0xAA, 0x06, 0xD3, 0x7D, 0x67, -0x4E, 0xCB, 0x00, 0x6A, 0x49, 0xCB, 0x50, 0xC3, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, 0x7C, 0x9B, -0x10, 0xF0, 0x30, 0x6A, 0xC8, 0xF1, 0x09, 0x4A, -0x40, 0xDB, 0x80, 0x18, 0xE2, 0x3A, 0x01, 0x6C, -0x11, 0xD2, 0x80, 0x18, 0xE2, 0x3A, 0x0E, 0xD2, -0x00, 0x18, 0x7F, 0xD4, 0x13, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF6, 0x6D, 0xA2, 0x01, 0x6A, -0x6C, 0xEA, 0x00, 0xF3, 0x16, 0x22, 0x00, 0x6C, -0x0C, 0xD4, 0x0D, 0xD4, 0x10, 0xD4, 0x0C, 0x13, -0x0E, 0x95, 0x11, 0x94, 0x30, 0xF0, 0x20, 0x69, -0x80, 0x18, 0x07, 0x3B, 0x02, 0x67, 0xC0, 0xF3, -0x40, 0x99, 0x90, 0x67, 0x40, 0xEA, 0x08, 0xD2, -0xC0, 0xF3, 0x40, 0x99, 0x81, 0x40, 0x40, 0xEA, -0x09, 0xD2, 0xC0, 0xF3, 0x40, 0x99, 0x84, 0x40, -0x40, 0xEA, 0x09, 0x95, 0x08, 0x94, 0xC2, 0x67, -0x80, 0x18, 0xC4, 0x06, 0x09, 0xD2, 0xC0, 0xF3, -0x40, 0x99, 0x90, 0x67, 0x40, 0xEA, 0x0E, 0x94, -0xFC, 0x6B, 0x4C, 0xEB, 0xC0, 0xF3, 0x40, 0x99, -0x08, 0xD3, 0x01, 0x4C, 0x40, 0xEA, 0x0A, 0xD2, -0x0E, 0x94, 0xC0, 0xF3, 0x40, 0x99, 0x40, 0xEA, -0x0A, 0x94, 0x80, 0x34, 0x4D, 0xEC, 0xE7, 0xF7, -0x1F, 0x6A, 0x4C, 0xEC, 0x0A, 0xD4, 0x0E, 0x94, -0xC0, 0xF3, 0x40, 0x99, 0x0F, 0x4C, 0x40, 0xEA, -0x12, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x67, 0xF7, 0xB0, 0xA2, 0x01, 0x6B, -0xFF, 0x6C, 0x6C, 0xED, 0x67, 0x25, 0x08, 0x95, -0x50, 0x75, 0x59, 0x60, 0x80, 0x75, 0x00, 0xF2, -0x03, 0x61, 0x00, 0xF1, 0x58, 0xA2, 0x4C, 0xEB, -0x8C, 0xEB, 0x04, 0x23, 0x0A, 0x95, 0x90, 0x67, -0x80, 0x18, 0x89, 0x3B, 0x30, 0xF0, 0x20, 0x6A, -0xAB, 0xF0, 0x64, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, -0xE0, 0xF1, 0x12, 0x22, 0x47, 0x40, 0x00, 0x6B, -0x09, 0x4A, 0x0F, 0xD2, 0x0B, 0xD3, 0x23, 0x67, -0x30, 0xF0, 0x20, 0x6A, 0x0F, 0x94, 0xC0, 0xF3, -0x40, 0x9A, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x26, 0xF6, 0x7F, 0xA3, 0x9D, 0x67, 0x0B, 0x95, -0x64, 0x33, 0x6D, 0xE4, 0x8A, 0xAB, 0x1F, 0xF7, -0x00, 0x6B, 0x91, 0xE5, 0x8C, 0xEB, 0x02, 0xF0, -0x00, 0x73, 0x01, 0x60, 0x11, 0x2B, 0x30, 0xF0, -0x20, 0x6B, 0x26, 0xF6, 0x7F, 0xA3, 0x9D, 0x67, -0x0B, 0x95, 0x64, 0x33, 0x6D, 0xE4, 0x8A, 0xAB, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0x78, 0x9B, -0x91, 0xE5, 0x6D, 0xE4, 0x80, 0xA3, 0x06, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0x7C, 0x9B, -0x71, 0xE4, 0x80, 0xA4, 0xFF, 0x6B, 0x8C, 0xEB, -0x6E, 0xEA, 0xA0, 0xF1, 0x19, 0x2A, 0xFF, 0x6A, -0x01, 0x49, 0x4C, 0xE9, 0x0F, 0x93, 0x0B, 0x92, -0x06, 0x71, 0x01, 0x4B, 0x01, 0x4A, 0x0B, 0xD2, -0x0F, 0xD3, 0xC2, 0x61, 0x94, 0x10, 0x00, 0xF1, -0x58, 0xA2, 0x4C, 0xEB, 0x8C, 0xEB, 0xA0, 0xF1, -0x07, 0x23, 0x0A, 0x95, 0x90, 0x67, 0x80, 0x18, -0x89, 0x3B, 0xA2, 0x11, 0x08, 0x95, 0x88, 0x75, -0x80, 0xF0, 0x1B, 0x60, 0x89, 0x5D, 0x06, 0x60, -0x08, 0x75, 0x80, 0xF0, 0x16, 0x60, 0x80, 0x75, -0x34, 0x60, 0x96, 0x11, 0x08, 0x92, 0xA0, 0x72, -0x03, 0x60, 0xC0, 0x72, 0x80, 0xF1, 0x10, 0x61, -0x30, 0xF0, 0x20, 0x69, 0x46, 0xF5, 0x18, 0x49, -0xE0, 0xF0, 0x6E, 0xA1, 0x80, 0x6A, 0x4B, 0xEA, -0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x80, 0xF1, -0x03, 0x22, 0x24, 0xF3, 0x4D, 0xA1, 0x90, 0x67, -0x01, 0x4A, 0x24, 0xF3, 0x4D, 0xC1, 0x80, 0x18, -0x25, 0x06, 0x60, 0xF1, 0x19, 0x22, 0x90, 0x67, -0x80, 0x18, 0x3C, 0x06, 0x60, 0xF1, 0x14, 0x22, -0xE0, 0xF0, 0x79, 0xA1, 0x06, 0x6A, 0xFF, 0x6C, -0x6C, 0xEA, 0x8C, 0xEA, 0x60, 0xF1, 0x0C, 0x2A, -0x08, 0x94, 0x80, 0x18, 0x17, 0x07, 0x24, 0xF3, -0x4E, 0xA1, 0x01, 0x4A, 0x24, 0xF3, 0x4E, 0xC1, -0x63, 0x11, 0x44, 0xF3, 0x4C, 0xA2, 0x4C, 0xEB, -0x8C, 0xEB, 0x40, 0xF1, 0x1D, 0x23, 0xA7, 0x40, -0x00, 0x6A, 0x09, 0x4D, 0x0F, 0xD5, 0x0B, 0xD2, -0x22, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x0F, 0x94, -0xC0, 0xF3, 0x40, 0x9A, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x26, 0xF6, 0x7F, 0xA3, 0x9D, 0x67, -0x0B, 0x95, 0x64, 0x33, 0x6D, 0xE4, 0x8A, 0xAB, -0x1F, 0xF7, 0x00, 0x6B, 0x91, 0xE5, 0x8C, 0xEB, -0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x11, 0x2B, -0x30, 0xF0, 0x20, 0x6B, 0x26, 0xF6, 0x7F, 0xA3, -0x9D, 0x67, 0x0B, 0x95, 0x64, 0x33, 0x6D, 0xE4, -0x8A, 0xAB, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, -0x78, 0x9B, 0x91, 0xE5, 0x6D, 0xE4, 0x80, 0xA3, -0x06, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, -0x7C, 0x9B, 0x71, 0xE4, 0x80, 0xA4, 0xFF, 0x6B, -0x8C, 0xEB, 0x6E, 0xEA, 0x20, 0xF1, 0x04, 0x2A, -0xFF, 0x6A, 0x01, 0x49, 0x4C, 0xE9, 0x0F, 0x93, -0x0B, 0x92, 0x06, 0x71, 0x01, 0x4B, 0x01, 0x4A, -0x0B, 0xD2, 0x0F, 0xD3, 0xC2, 0x61, 0x0A, 0x92, -0xFF, 0xF7, 0x1F, 0x6D, 0x90, 0x67, 0xAC, 0xEC, -0x4C, 0xED, 0x80, 0x18, 0xDD, 0x07, 0x00, 0xF1, -0x0F, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x44, 0xF3, 0x8C, 0xA2, 0x02, 0x6B, -0x6B, 0xEB, 0x8C, 0xEB, 0x44, 0xF3, 0x6C, 0xC2, -0x03, 0x11, 0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF3, -0x40, 0x9C, 0x64, 0x40, 0x83, 0x67, 0x0A, 0xD3, -0x40, 0xEA, 0x82, 0x67, 0x80, 0x18, 0xB4, 0x06, -0x09, 0x95, 0xC2, 0x67, 0xFF, 0x69, 0x90, 0x67, -0x2C, 0xED, 0x2C, 0xEE, 0x80, 0x18, 0xD3, 0x06, -0x30, 0xF0, 0x20, 0x6D, 0x0A, 0x94, 0xC0, 0xF3, -0x40, 0x9D, 0x40, 0xEA, 0x82, 0x67, 0x80, 0x18, -0xA7, 0x0D, 0xC0, 0xF0, 0x1B, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF6, 0x6D, 0xA2, 0x40, 0x6A, -0x6C, 0xEA, 0x2C, 0xEA, 0x24, 0x22, 0x09, 0x92, -0x27, 0x40, 0x30, 0xF0, 0x20, 0x6B, 0x01, 0x49, -0x45, 0xE1, 0xC0, 0xF3, 0x40, 0x9B, 0x91, 0x67, -0x40, 0xEA, 0x45, 0x72, 0x18, 0x61, 0x91, 0x67, -0x80, 0x18, 0xBD, 0x13, 0x01, 0x72, 0x13, 0x61, -0x91, 0x67, 0x80, 0x18, 0xCF, 0x13, 0x01, 0x72, -0x0E, 0x61, 0x91, 0x67, 0x80, 0x18, 0xE0, 0x13, -0x04, 0x22, 0x01, 0x6C, 0x0C, 0xD4, 0x0D, 0xD4, -0x06, 0x10, 0x91, 0x67, 0x80, 0x18, 0x12, 0x14, -0x01, 0x6A, 0x0C, 0xD2, 0x0D, 0xD2, 0x90, 0x67, -0x80, 0x18, 0x25, 0x06, 0x08, 0x22, 0x09, 0x95, -0x90, 0x67, 0x80, 0x18, 0x6C, 0x0D, 0x03, 0x22, -0x01, 0x6C, 0x0C, 0xD4, 0x0D, 0xD4, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF6, 0x6D, 0xA2, 0x02, 0x6A, -0x6C, 0xEA, 0x08, 0x22, 0x09, 0x95, 0x90, 0x67, -0x80, 0x18, 0xD7, 0x0F, 0x03, 0x22, 0x01, 0x6A, -0x0C, 0xD2, 0x0D, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF6, 0x6D, 0xA2, 0x04, 0x6A, 0x6C, 0xEA, -0x08, 0x22, 0x09, 0x95, 0x90, 0x67, 0x80, 0x18, -0x8A, 0x0E, 0x03, 0x22, 0x01, 0x6C, 0x0C, 0xD4, -0x0D, 0xD4, 0x09, 0x95, 0x90, 0x67, 0x00, 0xF0, -0x12, 0x06, 0x04, 0x07, 0x80, 0x18, 0x2E, 0x04, -0x05, 0x72, 0x13, 0x60, 0x0C, 0x72, 0x24, 0x60, -0x04, 0x72, 0x3E, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x86, 0xF6, 0x60, 0xA2, 0x44, 0x6A, 0x6C, 0xEA, -0x37, 0x22, 0x5D, 0x67, 0x09, 0x95, 0xC9, 0xAA, -0xF0, 0xA2, 0x90, 0x67, 0x80, 0x18, 0x8F, 0x46, -0x11, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF6, -0x60, 0xA2, 0x78, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, -0xFF, 0x6B, 0x6C, 0xEA, 0x25, 0x22, 0x7D, 0x67, -0x09, 0x95, 0xC9, 0xAB, 0xF0, 0xA3, 0x90, 0x67, -0x80, 0x18, 0x4B, 0x45, 0x1A, 0x2A, 0x1C, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x20, 0xF1, 0x88, 0xA2, 0x20, 0x6B, 0x8C, 0xEB, -0x13, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, -0x74, 0x9B, 0x29, 0x6C, 0x80, 0xC3, 0x24, 0xF3, -0x80, 0xA2, 0x01, 0x6B, 0x8D, 0xEB, 0x01, 0x6C, -0x24, 0xF3, 0x60, 0xC2, 0x0C, 0xD4, 0x0D, 0xD4, -0x03, 0x10, 0x01, 0x6A, 0x0C, 0xD2, 0x0D, 0xD2, -0x30, 0xF0, 0x20, 0x69, 0x46, 0xF5, 0x18, 0x49, -0xE0, 0xF0, 0x76, 0xA1, 0x20, 0x6A, 0x6C, 0xEA, -0x11, 0x22, 0x09, 0x95, 0x90, 0x67, 0x80, 0x18, -0x53, 0x06, 0x0C, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF0, 0x54, 0x9A, 0x0B, 0x6B, 0x60, 0xC2, -0x24, 0xF3, 0x60, 0xA1, 0x01, 0x6A, 0x6D, 0xEA, -0x24, 0xF3, 0x40, 0xC1, 0x30, 0xF0, 0x20, 0x69, -0x46, 0xF5, 0x18, 0x49, 0xE0, 0xF0, 0x75, 0xA1, -0x80, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, -0x6C, 0xEA, 0x1E, 0x22, 0x0D, 0x94, 0x1C, 0x2C, -0x09, 0x95, 0x90, 0x67, 0x80, 0x18, 0x89, 0x06, -0x17, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, -0x54, 0x9A, 0x22, 0x6B, 0x60, 0xC2, 0x24, 0xF3, -0x60, 0xA1, 0x01, 0x6A, 0x6D, 0xEA, 0x24, 0xF3, -0x40, 0xC1, 0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF1, 0x7C, 0x9A, 0x08, 0x6C, 0x40, 0xA3, -0x2C, 0xEA, 0x8D, 0xEA, 0x2C, 0xEA, 0x40, 0xC3, -0x12, 0x94, 0x01, 0x6D, 0x80, 0x18, 0xEE, 0x06, -0x13, 0x22, 0x30, 0xF0, 0x20, 0x69, 0x46, 0xF5, -0x18, 0x49, 0x24, 0xF3, 0x60, 0xA1, 0x01, 0x6A, -0x6D, 0xEA, 0x24, 0xF3, 0x40, 0xC1, 0x0E, 0x94, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, -0x10, 0x4C, 0x40, 0xEA, 0x84, 0xF5, 0x4E, 0xC1, -0x08, 0x95, 0x08, 0x75, 0x02, 0x60, 0x88, 0x75, -0x48, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0xE0, 0xF0, 0x97, 0xA2, 0x40, 0x6B, -0x8C, 0xEB, 0x0E, 0x23, 0x0C, 0x93, 0x0C, 0x2B, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0x74, 0x9B, -0x25, 0x6C, 0x80, 0xC3, 0x24, 0xF3, 0x80, 0xA2, -0x01, 0x6B, 0x8D, 0xEB, 0x24, 0xF3, 0x60, 0xC2, -0x09, 0x95, 0x90, 0x67, 0x80, 0x18, 0x95, 0x06, -0x11, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, -0x54, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x24, 0xF3, -0x80, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, -0x24, 0xF3, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x69, -0x46, 0xF5, 0x18, 0x49, 0xE0, 0xF0, 0x76, 0xA1, -0x40, 0x6A, 0x6C, 0xEA, 0x12, 0x22, 0x09, 0x95, -0x90, 0x67, 0x80, 0x18, 0x32, 0x0A, 0x0D, 0x22, -0x24, 0xF3, 0x60, 0xA1, 0x02, 0x6A, 0x4B, 0xEA, -0x6C, 0xEA, 0x24, 0xF3, 0x40, 0xC1, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF0, 0x54, 0x9A, 0x00, 0x6B, -0x60, 0xC2, 0x11, 0x95, 0x0E, 0x96, 0x01, 0x6C, -0x80, 0x18, 0xE8, 0x3A, 0x11, 0x95, 0x0E, 0x96, -0x00, 0x6C, 0x22, 0x67, 0x80, 0x18, 0xE8, 0x3A, -0x11, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, -0x78, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, 0x03, 0x22, -0x01, 0x6C, 0x80, 0x18, 0x17, 0x09, 0x80, 0x18, -0x22, 0x07, 0x01, 0x72, 0x31, 0x61, 0x30, 0xF0, -0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, 0x24, 0xF3, -0x4F, 0xA0, 0x01, 0x4A, 0x24, 0xF3, 0x4F, 0xC0, -0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x48, 0x9A, -0x40, 0xEA, 0x01, 0x72, 0x15, 0x60, 0x24, 0xF3, -0x80, 0xA0, 0x01, 0x6B, 0x02, 0x72, 0x8D, 0xEB, -0x24, 0xF3, 0x60, 0xC0, 0x42, 0x6B, 0x03, 0x60, -0x04, 0x72, 0x06, 0x61, 0x43, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF0, 0x54, 0x9A, 0x60, 0xC2, -0x01, 0x6C, 0x80, 0x18, 0x17, 0x09, 0x21, 0x10, -0x11, 0x95, 0x91, 0x67, 0x80, 0x18, 0x16, 0x3B, -0x10, 0x94, 0xFF, 0xF7, 0x1F, 0x6A, 0x0E, 0xD1, -0x01, 0x4C, 0x4C, 0xEC, 0x10, 0xD4, 0x10, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xE0, 0xF0, 0x97, 0xA2, 0x20, 0x6B, 0x8C, 0xEB, -0x0C, 0x2B, 0xE0, 0xF0, 0x95, 0xA2, 0xFE, 0x4B, -0x8C, 0xEB, 0xE0, 0xF0, 0x75, 0xC2, 0x05, 0x10, -0x10, 0x95, 0x13, 0x92, 0x43, 0xED, 0xFF, 0xF4, -0x0F, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, -0x7C, 0x9B, 0x10, 0xF0, 0x30, 0x6A, 0xC8, 0xF1, -0x0A, 0x4A, 0x40, 0xDB, 0x17, 0x97, 0x16, 0x91, -0x15, 0x90, 0x0C, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, -0xA0, 0xF0, 0x56, 0xA0, 0x64, 0x67, 0x01, 0x6C, -0xFF, 0x69, 0x8C, 0xEA, 0x2C, 0xED, 0x2C, 0xEA, -0x2C, 0xEB, 0x04, 0xD5, 0x52, 0x22, 0x05, 0xF3, -0x4C, 0xA0, 0x4F, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0x40, 0xF4, 0x44, 0x9A, 0x85, 0x67, 0xA3, 0x67, -0x40, 0xEA, 0x07, 0x22, 0x00, 0x6A, 0x05, 0xF3, -0x4C, 0xC0, 0x01, 0x6A, 0x05, 0xF3, 0x4E, 0xC0, -0x40, 0x10, 0xA0, 0xF0, 0x78, 0xA0, 0x05, 0xF3, -0x4C, 0xA0, 0x63, 0xEA, 0x2B, 0x61, 0xA0, 0xF0, -0x76, 0xA0, 0x08, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, -0x14, 0x22, 0xE0, 0xF0, 0x88, 0xA0, 0x00, 0x6D, -0x00, 0x18, 0x14, 0xC5, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x58, 0x9A, 0xE0, 0xF0, 0x88, 0xA0, -0x40, 0xEA, 0xC0, 0xF0, 0x64, 0xA0, 0x80, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0xC0, 0xF0, 0x44, 0xC0, -0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, -0x54, 0x9A, 0x10, 0x6B, 0x01, 0x6C, 0x60, 0xC2, -0x80, 0x18, 0x17, 0x09, 0xA0, 0xF0, 0x76, 0xA0, -0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xA0, 0xF0, -0x56, 0xC0, 0x0F, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x40, 0xF4, 0x50, 0x9A, 0xA0, 0xF0, 0x8A, 0xA0, -0x04, 0x97, 0x02, 0x6D, 0x08, 0x6E, 0x40, 0xEA, -0x05, 0xF3, 0x4C, 0xA0, 0x01, 0x4A, 0x05, 0xF3, -0x4C, 0xC0, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x46, 0xF5, 0x18, 0x48, 0xA0, 0xF0, 0x76, 0xA0, -0x24, 0x67, 0x01, 0x6C, 0xFF, 0x6A, 0x6C, 0xEC, -0x4C, 0xEC, 0x4C, 0xE9, 0x6D, 0x24, 0x05, 0xF3, -0x8B, 0xA0, 0x01, 0x4C, 0x05, 0xF3, 0x8B, 0xC0, -0x05, 0xF3, 0x8E, 0xA0, 0x01, 0x74, 0x2F, 0x61, -0x04, 0x6C, 0x6C, 0xEC, 0x4C, 0xEC, 0x2B, 0x24, -0x05, 0xF3, 0x8D, 0xA0, 0x28, 0x2C, 0x05, 0xF3, -0xAB, 0xA0, 0xA0, 0xF0, 0x99, 0xA0, 0x83, 0xED, -0x22, 0x61, 0x08, 0x6C, 0x6C, 0xEC, 0x4C, 0xEC, -0x0D, 0x24, 0xE0, 0xF0, 0x88, 0xA0, 0x00, 0x6D, -0x00, 0x18, 0x14, 0xC5, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x58, 0x9A, 0xE0, 0xF0, 0x88, 0xA0, -0x40, 0xEA, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF0, 0x54, 0x9A, 0x10, 0x6B, 0x01, 0x6C, -0x60, 0xC2, 0x80, 0x18, 0x17, 0x09, 0xA0, 0xF0, -0x76, 0xA0, 0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, -0xA0, 0xF0, 0x56, 0xC0, 0x35, 0x10, 0x30, 0xF0, -0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, 0xA0, 0xF0, -0x77, 0xA0, 0x05, 0xF3, 0x4B, 0xA0, 0x63, 0xEA, -0x2B, 0x61, 0x91, 0x67, 0x00, 0x18, 0xC6, 0xDA, -0x01, 0x6B, 0x4C, 0xEB, 0x18, 0x2B, 0x05, 0xF3, -0x4D, 0xA0, 0x15, 0x2A, 0x05, 0xF3, 0x4C, 0xA0, -0xA0, 0xF0, 0x8A, 0xA0, 0x02, 0x6D, 0x01, 0x4A, -0x05, 0xF3, 0x4C, 0xC0, 0x05, 0xF3, 0x4A, 0xA0, -0x08, 0x6E, 0xF1, 0x67, 0x01, 0x4A, 0x05, 0xF3, -0x4A, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, -0x50, 0x9A, 0x40, 0xEA, 0x04, 0x10, 0x91, 0x67, -0x01, 0x6D, 0x00, 0x18, 0xC0, 0xDA, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x00, 0x6B, -0x05, 0xF3, 0x6B, 0xC2, 0x05, 0xF3, 0x6D, 0xC2, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, -0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x66, 0xF6, -0x10, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xE0, 0xF0, 0x95, 0xA2, -0x11, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xE0, 0xF0, -0x75, 0xC2, 0x00, 0x6B, 0x44, 0xF6, 0x68, 0xC2, -0x44, 0xF6, 0x69, 0xC2, 0x20, 0xE8, 0x00, 0x65, -0xF5, 0x63, 0x15, 0x62, 0x14, 0xD1, 0x13, 0xD0, -0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xED, 0xE5, 0x67, -0x0F, 0xD5, 0xDC, 0x4F, 0x00, 0x6D, 0x16, 0xD4, -0xC5, 0x67, 0x24, 0x4C, 0x4C, 0xEF, 0x80, 0x18, -0x68, 0x3B, 0x02, 0x67, 0x81, 0x42, 0x00, 0x6A, -0x0E, 0xD2, 0x19, 0x24, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x40, 0x9A, 0x02, 0x48, 0x00, 0x69, -0x40, 0xEA, 0x0E, 0xD2, 0x0B, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, 0x90, 0x67, -0x01, 0x48, 0x40, 0xEA, 0x9D, 0x67, 0x2D, 0xE4, -0x50, 0xC3, 0x01, 0x49, 0x0E, 0x93, 0xFF, 0x6A, -0x2C, 0xEA, 0x63, 0xEA, 0xF0, 0x61, 0x0F, 0x91, -0x16, 0x94, 0xFF, 0xF7, 0x1F, 0x6A, 0xDC, 0x49, -0x4C, 0xE9, 0x24, 0x4C, 0x00, 0x6D, 0x03, 0x6E, -0xF1, 0x67, 0x0D, 0xD4, 0x80, 0x18, 0x68, 0x3B, -0x30, 0xF0, 0x20, 0x6B, 0x16, 0x94, 0xC0, 0xF3, -0x40, 0x9B, 0x00, 0x68, 0x22, 0x4C, 0x40, 0xEA, -0x10, 0x6B, 0x4C, 0xEB, 0x60, 0x23, 0x0D, 0x94, -0xB0, 0x67, 0xF1, 0x67, 0x30, 0x6E, 0x80, 0x18, -0x68, 0x3B, 0x22, 0x67, 0x01, 0x4A, 0x01, 0x68, -0x24, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF3, -0x40, 0x9C, 0x87, 0x41, 0x01, 0x4C, 0x40, 0xEA, -0x0D, 0x49, 0x0D, 0xD1, 0x10, 0xD2, 0x00, 0x69, -0x15, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x40, 0x9A, 0x0D, 0x94, 0x40, 0xEA, 0x02, 0x72, -0x02, 0x61, 0x20, 0x48, 0x03, 0x10, 0x04, 0x72, -0x03, 0x61, 0x40, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, -0xFF, 0x6A, 0x01, 0x49, 0x4C, 0xE9, 0x0D, 0x92, -0x04, 0x4A, 0x0D, 0xD2, 0x10, 0x93, 0x63, 0xE9, -0xE8, 0x61, 0x0F, 0x92, 0x16, 0x94, 0xFF, 0xF7, -0x1F, 0x6F, 0xDC, 0x4A, 0x24, 0x4C, 0x01, 0x6D, -0xDD, 0x6E, 0x4C, 0xEF, 0x80, 0x18, 0x68, 0x3B, -0x22, 0x67, 0x01, 0x4A, 0x24, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, 0x87, 0x41, -0x05, 0x4C, 0x40, 0xEA, 0x11, 0x49, 0x0C, 0xD1, -0x0D, 0xD2, 0x00, 0x69, 0x15, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, 0x0C, 0x94, -0x40, 0xEA, 0x02, 0x72, 0x02, 0x61, 0x02, 0x48, -0x03, 0x10, 0x04, 0x72, 0x03, 0x61, 0x04, 0x48, -0xFF, 0x6A, 0x4C, 0xE8, 0x0C, 0x94, 0x01, 0x49, -0xFF, 0x6A, 0x04, 0x4C, 0x4C, 0xE9, 0x0C, 0xD4, -0x0D, 0x92, 0x43, 0xE9, 0xE8, 0x61, 0x00, 0x6B, -0x7E, 0x10, 0x0C, 0x94, 0x49, 0xE4, 0x44, 0xF6, -0x78, 0xA2, 0x0E, 0x94, 0x8E, 0xEB, 0x71, 0x2B, -0x64, 0xF6, 0x48, 0xA2, 0x0F, 0x2A, 0x0E, 0x28, -0x0C, 0x93, 0x04, 0x02, 0x74, 0x34, 0x30, 0xF0, -0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, 0x84, 0xF6, -0x10, 0x4C, 0x91, 0xE3, 0x0E, 0x93, 0x75, 0xE2, -0x01, 0x6B, 0x1B, 0x10, 0x0C, 0x94, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x4D, 0xE4, -0x64, 0xF6, 0x68, 0xA3, 0x0C, 0xEB, 0xE8, 0x2B, -0x00, 0xF1, 0x78, 0xA2, 0x04, 0x6A, 0x6C, 0xEA, -0xFF, 0x6B, 0x6C, 0xEA, 0xE1, 0x2A, 0x4D, 0x10, -0xE0, 0xA2, 0xC0, 0xA4, 0x01, 0x4A, 0x01, 0x4C, -0xEE, 0xEE, 0x01, 0x5E, 0xD8, 0x67, 0xCB, 0xEE, -0xCC, 0xEB, 0xAA, 0xEA, 0xF5, 0x61, 0x01, 0x73, -0x40, 0x61, 0x30, 0xF0, 0x20, 0x69, 0x46, 0xF5, -0x18, 0x49, 0xE0, 0xF0, 0xC7, 0xA1, 0x0C, 0x6A, -0x43, 0xF4, 0x44, 0xC1, 0x0C, 0x6C, 0x00, 0x6D, -0x00, 0x18, 0x93, 0xCD, 0xC3, 0xF3, 0x68, 0xA1, -0x21, 0x6A, 0xC3, 0xF3, 0x8A, 0xA1, 0x4B, 0xEA, -0x6C, 0xEA, 0x04, 0x6B, 0x8C, 0xEB, 0xC3, 0xF3, -0x48, 0xC1, 0x04, 0x2B, 0xFE, 0x4B, 0x4C, 0xEB, -0xC3, 0xF3, 0x68, 0xC1, 0x30, 0xF0, 0x20, 0x69, -0x46, 0xF5, 0x18, 0x49, 0x67, 0xF7, 0x70, 0xA1, -0x02, 0x6A, 0xE0, 0xF0, 0x87, 0xA1, 0x4B, 0xEA, -0x6C, 0xEA, 0x67, 0xF7, 0x50, 0xC1, 0x00, 0x18, -0x84, 0xDD, 0xE0, 0xF0, 0x87, 0xA1, 0x00, 0x18, -0x73, 0xDD, 0xE0, 0xF0, 0x87, 0xA1, 0x00, 0x18, -0x8B, 0xDD, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, -0x54, 0x9A, 0x55, 0x6B, 0x60, 0xC2, 0x24, 0xF3, -0x60, 0xA1, 0x01, 0x6A, 0x6D, 0xEA, 0x24, 0xF3, -0x40, 0xC1, 0x0C, 0x92, 0x01, 0x4A, 0x0C, 0xD2, -0x0C, 0x93, 0xFF, 0x6A, 0x4C, 0xEB, 0x30, 0xF0, -0x20, 0x6A, 0x0C, 0xD3, 0x46, 0xF5, 0x18, 0x4A, -0x44, 0xF6, 0x68, 0xA2, 0x0C, 0x94, 0x63, 0xEC, -0x7F, 0xF7, 0x17, 0x61, 0x15, 0x97, 0x14, 0x91, -0x13, 0x90, 0x0B, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x7A, 0xD4, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, -0x00, 0xF1, 0x99, 0xA3, 0xFF, 0x6D, 0x91, 0xE2, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0x48, 0x9A, -0x9C, 0x34, 0xC4, 0x44, 0x49, 0xE4, 0x40, 0xA2, -0x44, 0xF6, 0x48, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF1, 0x4C, 0x9A, 0x49, 0xE4, 0x40, 0xA2, -0x44, 0xF6, 0x49, 0xC3, 0x44, 0xF6, 0x48, 0xA3, -0x0A, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, -0x60, 0x9A, 0x01, 0x6F, 0x40, 0xA3, 0xAC, 0xEA, -0xED, 0xEA, 0xAC, 0xEA, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF1, 0x48, 0x9A, 0x30, 0xF0, -0x20, 0x6B, 0x49, 0xE6, 0x40, 0x9A, 0xAB, 0xF3, -0x44, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF2, -0x64, 0x9B, 0x6E, 0xEA, 0x0B, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF2, 0x60, 0x9A, 0xFF, 0x6D, -0x02, 0x6E, 0x40, 0xA3, 0xAC, 0xEA, 0xCD, 0xEA, -0xAC, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF2, 0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0xAB, 0xF3, 0x10, 0x4A, 0xA7, 0x42, 0x6D, 0xE4, -0x09, 0x4D, 0xC0, 0xA3, 0x01, 0x4B, 0xC0, 0xC2, -0x01, 0x4A, 0xAA, 0xEA, 0xFA, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF2, 0x7C, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0xCB, 0xF3, 0x00, 0x4A, 0xA7, 0x42, -0x6D, 0xE4, 0x09, 0x4D, 0xC0, 0xA3, 0x01, 0x4B, -0xC0, 0xC2, 0x01, 0x4A, 0xAA, 0xEA, 0xFA, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x64, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0xEB, 0xF3, 0x00, 0x4A, -0xA7, 0x42, 0x6D, 0xE4, 0x01, 0x4D, 0xC0, 0xA3, -0x01, 0x4B, 0xC0, 0xC2, 0x01, 0x4A, 0xAA, 0xEA, -0xFA, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, -0x50, 0x9A, 0x51, 0xE4, 0x00, 0x6A, 0x0A, 0x10, -0xE0, 0xA3, 0x01, 0x4B, 0xCA, 0xEB, 0xE0, 0xC5, -0x01, 0x4D, 0xFA, 0x61, 0x01, 0x4A, 0x10, 0x72, -0x20, 0x4C, 0x0C, 0x60, 0x54, 0x35, 0x30, 0xF0, -0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, 0x84, 0xF6, -0x10, 0x4D, 0xC7, 0x44, 0xB5, 0xE3, 0x19, 0x4E, -0x64, 0x67, 0xEA, 0x17, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, 0x0E, 0x24, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0x94, 0x9B, -0x80, 0x6D, 0xAB, 0xED, 0x60, 0xA4, 0x4C, 0xEB, -0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x80, 0x18, -0x40, 0x13, 0x1B, 0x10, 0x30, 0xF0, 0x20, 0x68, -0x46, 0xF5, 0x18, 0x48, 0xE0, 0xF0, 0xC7, 0xA0, -0x0C, 0x6A, 0x0C, 0x6C, 0x00, 0x6D, 0x43, 0xF4, -0x44, 0xC0, 0x00, 0x18, 0x93, 0xCD, 0xC3, 0xF3, -0x68, 0xA0, 0x21, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, -0x67, 0xF7, 0x70, 0xA0, 0xC3, 0xF3, 0x48, 0xC0, -0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x67, 0xF7, -0x50, 0xC0, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xE0, 0xF0, 0x95, 0xA2, 0x41, 0x6B, 0x6B, 0xEB, -0x8C, 0xEB, 0xE0, 0xF0, 0x75, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0x4B, 0xF3, 0x04, 0x4C, 0x00, 0x6D, -0x5C, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF6, 0x6D, 0xA2, 0x40, 0x6A, 0x6C, 0xEA, -0x02, 0x22, 0x80, 0x18, 0xA7, 0x13, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x27, 0x44, 0x09, 0x49, 0x4B, 0xF3, 0x16, 0x48, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, -0x91, 0x67, 0x40, 0xEA, 0x60, 0xA0, 0x6E, 0xEA, -0x02, 0x22, 0x00, 0x6A, 0x09, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x01, 0x48, 0x4B, 0xF3, 0x1A, 0x4A, -0x4A, 0xE8, 0x01, 0x49, 0xED, 0x61, 0x01, 0x6A, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0xC0, 0xF3, 0x40, 0x98, 0x24, 0x67, 0x07, 0x4C, -0x10, 0x4C, 0x40, 0xEA, 0x04, 0xD2, 0xC0, 0xF3, -0x40, 0x98, 0x87, 0x41, 0x0F, 0x4C, 0x40, 0xEA, -0x04, 0x94, 0x09, 0x97, 0x08, 0x91, 0x80, 0x33, -0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x4B, 0xF3, -0x5A, 0xAA, 0x07, 0x90, 0x4E, 0xEB, 0x01, 0x5B, -0x58, 0x67, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x4B, 0xF3, 0x4A, 0xAA, -0x08, 0xD4, 0x00, 0x68, 0x11, 0x2A, 0x28, 0x10, -0x08, 0x94, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x40, 0x9A, 0x1C, 0x4C, 0x11, 0xE4, 0x25, 0xE0, -0x40, 0xEA, 0x04, 0xF6, 0x66, 0xA1, 0x6E, 0xEA, -0x1B, 0x2A, 0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, -0x30, 0xF0, 0x20, 0x69, 0x46, 0xF5, 0x18, 0x49, -0xE4, 0xF5, 0x52, 0xA9, 0x43, 0xE8, 0xE8, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x68, 0x9A, -0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, -0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x00, 0x6A, -0x04, 0xF6, 0x44, 0xC9, 0x01, 0x6A, 0x01, 0x10, -0x00, 0x6A, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xE4, 0xF5, 0x7C, 0xAA, -0x01, 0x4B, 0xE4, 0xF5, 0x7C, 0xCA, 0x30, 0xF0, -0x20, 0x6B, 0xE4, 0xF5, 0xBC, 0xAA, 0x83, 0xF2, -0x6C, 0x9B, 0xA2, 0x35, 0x6D, 0xE4, 0xA0, 0xC3, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF2, 0x6C, 0x9B, -0xE4, 0xF5, 0x5C, 0xA2, 0x71, 0xE4, 0x40, 0xC4, +0xFF, 0x6B, 0x83, 0xF0, 0x44, 0x9A, 0x6C, 0xEC, +0x8C, 0x34, 0x51, 0xE4, 0x40, 0x9C, 0x01, 0x6C, +0x40, 0xF7, 0x42, 0x32, 0x8C, 0xEA, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xFF, 0x6B, 0x83, 0xF0, 0x44, 0x9A, 0x6C, 0xEC, +0x8C, 0x34, 0x51, 0xE4, 0x40, 0x9C, 0x01, 0x6C, +0x00, 0xF7, 0x42, 0x32, 0x8C, 0xEA, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, 0x54, 0x9A, -0x32, 0x6B, 0x01, 0x6C, 0x60, 0xC2, 0x80, 0x18, -0x17, 0x09, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x00, 0x68, 0x08, 0xD4, 0x12, 0x10, 0x08, 0x94, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, -0x1C, 0x4C, 0x11, 0xE4, 0x25, 0xE0, 0x40, 0xEA, -0x24, 0xF6, 0x66, 0xA1, 0x6E, 0xEA, 0x02, 0x22, -0x00, 0x6A, 0x21, 0x10, 0x01, 0x48, 0xFF, 0x6A, -0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x69, 0x46, 0xF5, -0x18, 0x49, 0xE4, 0xF5, 0x54, 0xA9, 0x43, 0xE8, -0xE6, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, -0x68, 0x9A, 0xFF, 0x6C, 0x80, 0x6D, 0x40, 0xA3, -0xAB, 0xED, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, -0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, -0x54, 0x9A, 0x30, 0x6B, 0x01, 0x6C, 0x60, 0xC2, -0x80, 0x18, 0x17, 0x09, 0x01, 0x6A, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x69, 0x46, 0xF5, 0x18, 0x49, -0x00, 0xF1, 0x0D, 0xA1, 0x00, 0x18, 0x7A, 0xD4, -0xE0, 0xF0, 0x77, 0xA1, 0x01, 0xE2, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF1, 0x48, 0x9A, 0x1C, 0x30, -0x49, 0xE0, 0x40, 0xAA, 0xE4, 0xF5, 0x4C, 0xC9, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x50, 0x9A, -0x49, 0xE0, 0x40, 0xAA, 0xE4, 0xF5, 0x4E, 0xC9, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, 0x4C, 0x9A, -0x49, 0xE0, 0x40, 0xAA, 0xE4, 0xF5, 0x50, 0xC9, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x54, 0x9A, -0x49, 0xE0, 0x40, 0xAA, 0xE4, 0xF5, 0x52, 0xC9, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0x50, 0x9A, -0x49, 0xE0, 0x40, 0xAA, 0xE4, 0xF5, 0x54, 0xC9, -0x80, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, -0x6C, 0xEA, 0x08, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF1, 0x48, 0x9A, 0x41, 0xE0, 0x40, 0x98, -0xE4, 0xF5, 0x58, 0xD9, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x30, 0xF0, 0x20, 0x69, 0x46, 0xF5, 0x18, 0x49, -0x00, 0xF1, 0x0E, 0xA1, 0x00, 0x18, 0x7A, 0xD4, -0x01, 0xE2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, -0x50, 0x9A, 0x1C, 0x30, 0x04, 0xD0, 0x49, 0xE0, -0x80, 0xA2, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x93, -0x83, 0xF1, 0x4C, 0x9A, 0xFF, 0x68, 0x0C, 0xEC, -0x49, 0xE3, 0xA0, 0xA2, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF1, 0x58, 0x9A, 0x0C, 0xED, 0x49, 0xE3, -0xC0, 0xA2, 0x0C, 0xEE, 0x80, 0x18, 0xC4, 0x06, -0x04, 0x93, 0x38, 0x4A, 0x30, 0xF0, 0x20, 0x6C, -0x69, 0xE2, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, -0x6C, 0x9B, 0xA3, 0xF2, 0x8C, 0x9C, 0x6D, 0xE2, -0x60, 0xA3, 0x91, 0xE2, 0x80, 0xA4, 0x0C, 0xEB, -0x60, 0x33, 0x8C, 0xE8, 0x61, 0xE0, 0x30, 0xF0, -0x20, 0x6B, 0xE3, 0xF1, 0x68, 0x9B, 0xE4, 0xF5, -0x1C, 0xC9, 0x00, 0xF1, 0x0F, 0xA1, 0x6D, 0xE2, -0x60, 0xA3, 0xE4, 0xF5, 0x7E, 0xC1, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF2, 0x78, 0x9B, 0x6D, 0xE2, -0x60, 0xA3, 0xE4, 0xF5, 0x7F, 0xC1, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF2, 0x7C, 0x9B, 0x6D, 0xE2, -0x60, 0xA3, 0x04, 0xF6, 0x60, 0xC1, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF2, 0x60, 0x9B, 0x6D, 0xE2, -0x60, 0xA3, 0x04, 0xF6, 0x61, 0xC1, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF2, 0x64, 0x9B, 0x69, 0xE2, -0x40, 0xAA, 0x04, 0xF6, 0x42, 0xC9, 0x00, 0x18, -0x7A, 0xD4, 0xE4, 0xF5, 0x92, 0xA9, 0x01, 0xE2, -0x1C, 0x30, 0x00, 0x6B, 0x12, 0x2C, 0x13, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0x48, 0x9A, -0x49, 0xE0, 0x69, 0xE2, 0xA0, 0xA2, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x49, 0xE3, -0x04, 0xF6, 0xA6, 0xC2, 0x01, 0x4B, 0xFF, 0x6A, -0x4C, 0xEB, 0x83, 0xEB, 0xED, 0x61, 0x30, 0xF0, -0x20, 0x69, 0x46, 0xF5, 0x18, 0x49, 0x00, 0xF1, -0x10, 0xA1, 0x00, 0x18, 0x7A, 0xD4, 0xE4, 0xF5, -0x94, 0xA9, 0x01, 0xE2, 0x1C, 0x30, 0x00, 0x6B, -0x11, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, -0x48, 0x9A, 0x49, 0xE0, 0x69, 0xE2, 0xA0, 0xA2, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x49, 0xE3, 0x24, 0xF6, 0xA6, 0xC2, 0x01, 0x4B, -0xFF, 0x6A, 0x4C, 0xEB, 0x83, 0xEB, 0xED, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x4B, 0xF3, 0x6C, 0xAA, -0x00, 0x6A, 0x03, 0x10, 0x01, 0x4A, 0xFF, 0x6C, -0x8C, 0xEA, 0x63, 0xEA, 0xFB, 0x61, 0x09, 0x97, +0x04, 0xD0, 0x00, 0x68, 0x90, 0x67, 0x00, 0x6D, +0x00, 0x18, 0xAD, 0xD8, 0x90, 0x67, 0x01, 0x6D, +0x01, 0x48, 0x00, 0x18, 0xBD, 0xD8, 0x0B, 0x70, +0xF5, 0x61, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, +0x0C, 0x6B, 0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, +0x0A, 0x69, 0x12, 0xED, 0x4C, 0xED, 0x04, 0xD5, +0xFF, 0x68, 0x2C, 0xE8, 0x90, 0x67, 0x00, 0x18, +0xCD, 0xD8, 0x17, 0x2A, 0xFF, 0x49, 0x00, 0xF6, +0x20, 0x31, 0x90, 0x67, 0x01, 0x6D, 0x00, 0xF6, +0x23, 0x31, 0x00, 0x18, 0xBD, 0xD8, 0x41, 0x41, +0xEF, 0x2A, 0x01, 0x69, 0x2B, 0xE9, 0x09, 0x10, +0x04, 0x94, 0xFF, 0x49, 0x00, 0x6D, 0x00, 0xF6, +0x20, 0x31, 0x00, 0x18, 0xBD, 0xD8, 0x00, 0xF6, +0x23, 0x31, 0x00, 0x51, 0xF5, 0x60, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0xFF, 0x68, -0x0C, 0xEC, 0x23, 0x24, 0x80, 0x18, 0x30, 0x14, -0x80, 0x18, 0x56, 0x14, 0x30, 0xF0, 0x20, 0x6B, -0x46, 0xF5, 0x18, 0x4B, 0xE0, 0xF0, 0x97, 0xA3, -0x80, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, 0x0C, 0xEA, -0x1A, 0x22, 0xE4, 0xF5, 0x78, 0x9B, 0xE0, 0xF3, -0x08, 0x6E, 0x01, 0x6A, 0x78, 0xEE, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, -0x10, 0xF0, 0x30, 0x6C, 0x2A, 0xF0, 0x0D, 0x4C, -0x00, 0x6D, 0x01, 0x6F, 0x12, 0xEE, 0x40, 0xEA, -0x06, 0x10, 0x10, 0xF0, 0x30, 0x6C, 0x2A, 0xF0, -0x0D, 0x4C, 0x00, 0x18, 0x62, 0xDC, 0x07, 0x97, -0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x68, 0x9A, -0xFF, 0x6C, 0x30, 0xF0, 0x20, 0x69, 0x40, 0xA3, -0x46, 0xF5, 0x18, 0x49, 0x8C, 0xEA, 0x20, 0x6C, -0x8D, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, 0x40, 0xC3, -0x00, 0xF1, 0x0E, 0xA1, 0x00, 0x18, 0x7A, 0xD4, -0x01, 0xE2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, -0x50, 0x9A, 0x1C, 0x30, 0x49, 0xE0, 0x80, 0xA2, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x4C, 0x9A, -0x49, 0xE0, 0xA0, 0xA2, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF1, 0x58, 0x9A, 0x49, 0xE0, 0xC0, 0xA2, -0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xEE, 0x4C, 0xED, -0x80, 0x18, 0xC4, 0x06, 0x87, 0x40, 0x00, 0x6D, -0x29, 0x4C, 0x05, 0xD2, 0x80, 0x18, 0x39, 0x0D, -0x05, 0x92, 0x38, 0x4A, 0x09, 0xE2, 0x82, 0x67, -0x30, 0xF0, 0x20, 0x68, 0x04, 0xD2, 0x80, 0x18, -0xFD, 0x13, 0x20, 0xF4, 0x54, 0x98, 0x04, 0x95, -0x00, 0xF1, 0xCE, 0xA1, 0x00, 0x6C, 0x40, 0xEA, -0x20, 0xF4, 0x54, 0x98, 0x04, 0x95, 0x00, 0xF1, -0xCE, 0xA1, 0x11, 0x6C, 0x40, 0xEA, 0x00, 0x18, -0x84, 0xD4, 0x28, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF1, 0x4C, 0x9A, 0xFF, 0x6B, 0x30, 0xF0, -0x20, 0x68, 0x40, 0xA2, 0x00, 0x6C, 0xFF, 0x6D, -0x4C, 0xEB, 0xA0, 0xF2, 0x50, 0x98, 0x04, 0xD3, -0x26, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x20, 0xF4, 0x5C, 0x9A, 0x40, 0xEA, 0x01, 0x72, -0x1B, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF1, -0x8E, 0xA1, 0xA0, 0xF2, 0x54, 0x9A, 0x01, 0x6D, -0x08, 0x6E, 0x00, 0x6F, 0x40, 0xEA, 0xA0, 0xF2, -0x50, 0x98, 0x04, 0x95, 0x00, 0x6C, 0x26, 0x6E, -0x40, 0xEA, 0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF2, 0x54, 0x9A, 0x00, 0xF1, 0x8E, 0xA1, -0x01, 0x6D, 0x08, 0x6E, 0x00, 0x6F, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xE0, 0xF0, 0x7C, 0xA2, 0x02, 0x73, 0x07, 0x61, -0x00, 0xF1, 0x8E, 0xA2, 0x05, 0x92, 0xFF, 0x6D, -0x4C, 0xED, 0x80, 0x18, 0xE2, 0x09, 0x30, 0xF0, -0x20, 0x6A, 0x06, 0xF6, 0x9F, 0xA2, 0xFF, 0x68, -0x96, 0x34, 0x00, 0x18, 0xA2, 0xCE, 0x30, 0xF0, -0x20, 0x6A, 0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, -0x0A, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, -0x7C, 0x9A, 0x20, 0x6C, 0x40, 0xA3, 0x0C, 0xEA, -0x8D, 0xEA, 0x0C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x04, 0xF6, -0x64, 0xAA, 0x01, 0x4B, 0x04, 0xF6, 0x64, 0xCA, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF5, 0xAC, 0x9B, -0x42, 0xF5, 0x0C, 0x4B, 0xFF, 0x6A, 0x05, 0xD5, -0xA1, 0x9B, 0x64, 0xAB, 0x4C, 0xEC, 0x06, 0xD5, -0xBD, 0x67, 0x6E, 0xCD, 0x30, 0xF0, 0x20, 0x6B, -0x46, 0xF5, 0x18, 0x4B, 0xE0, 0xF0, 0xD5, 0xA3, -0x40, 0x6D, 0xCC, 0xED, 0x4C, 0xED, 0x72, 0x25, -0xC0, 0xF0, 0xC4, 0xA3, 0x7F, 0x6D, 0xCC, 0xED, -0x4C, 0xED, 0x42, 0x25, 0xC0, 0xF0, 0xA5, 0xA3, -0x0F, 0x6B, 0xAC, 0xEB, 0x4C, 0xEB, 0x3C, 0x23, -0x30, 0xF0, 0x20, 0x6B, 0x86, 0xF3, 0x6F, 0xA3, -0x37, 0x2B, 0xBD, 0x67, 0x84, 0x33, 0x6D, 0xE5, -0xAA, 0xAB, 0x1F, 0xF7, 0x00, 0x6E, 0x62, 0x45, -0xCC, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, -0x0C, 0x2B, 0x5D, 0x67, 0x84, 0x34, 0x91, 0xE2, -0x30, 0xF0, 0x20, 0x6A, 0x6A, 0xAC, 0xA3, 0xF0, -0x4C, 0x9A, 0x49, 0xE3, 0x60, 0xA2, 0xFF, 0x6A, -0x06, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, -0x68, 0x9B, 0x75, 0xE5, 0x60, 0xA5, 0x6C, 0xEA, -0x7D, 0x67, 0x50, 0xC3, 0x50, 0xA3, 0x14, 0x22, -0x70, 0xA3, 0xFF, 0x6A, 0x4C, 0xEB, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0xE4, 0xF5, -0x8C, 0xAA, 0x7A, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, -0x12, 0xEB, 0xE4, 0xF5, 0x6C, 0xCA, 0x01, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF3, 0x6F, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xE4, 0xF5, 0x8C, 0xAA, 0x64, 0x6B, 0x7B, 0xEC, -0x01, 0x2B, 0xE5, 0xE8, 0x44, 0xF6, 0x66, 0xAA, -0x12, 0xEC, 0x63, 0xEC, 0x01, 0x4B, 0x18, 0x60, -0x04, 0xF6, 0x64, 0xAA, 0xE4, 0xF5, 0x50, 0xAA, -0x4E, 0xEB, 0x0B, 0x2B, 0x0A, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF0, 0x54, 0x9A, 0x31, 0x6B, -0x01, 0x6C, 0x60, 0xC2, 0x80, 0x18, 0x17, 0x09, -0x09, 0x10, 0x80, 0x18, 0xCA, 0x14, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x00, 0x6B, -0x44, 0xF6, 0x66, 0xCA, 0x09, 0x97, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x00, 0x6B, 0x22, 0xF5, -0x7D, 0xC2, 0x22, 0xF5, 0x7E, 0xC2, 0x22, 0xF5, -0x7C, 0xC2, 0x00, 0x6B, 0x22, 0xF5, 0x7A, 0xCA, -0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0xD1, -0x06, 0xD0, 0xFF, 0x6A, 0xCC, 0xEA, 0x08, 0xD4, -0x03, 0xD2, 0xE1, 0x9C, 0x00, 0x68, 0x00, 0x69, -0xA3, 0xEF, 0x40, 0x9C, 0x00, 0xD0, 0x01, 0xD1, -0x0A, 0x61, 0xBB, 0xEF, 0x01, 0x2D, 0xE5, 0xE8, -0x00, 0x69, 0x00, 0xD1, 0x12, 0xEB, 0x01, 0xD3, -0xB8, 0xEB, 0x12, 0xEB, 0x7F, 0xE7, 0xC5, 0x67, -0x00, 0x6B, 0x01, 0x6C, 0x00, 0x6D, 0x0C, 0x10, -0xC4, 0x30, 0xC3, 0xE8, 0x64, 0x33, 0xD0, 0x67, -0x18, 0x67, 0x6D, 0xE0, 0x84, 0x30, 0x83, 0xE8, -0x38, 0x67, 0xA4, 0x34, 0x95, 0xE1, 0x90, 0x67, -0x01, 0x53, 0x02, 0x60, 0x07, 0x2B, 0x06, 0x26, -0xE3, 0xEB, 0xEE, 0x61, 0x6A, 0xEF, 0x02, 0x61, -0x43, 0xEE, 0xEA, 0x61, 0x63, 0xEF, 0x18, 0x61, -0xEA, 0xEB, 0x02, 0x61, 0xC3, 0xEA, 0x14, 0x61, -0x00, 0x91, 0xC3, 0xE2, 0x03, 0xEA, 0x7F, 0xE7, -0x50, 0x67, 0x18, 0x67, 0x1F, 0xE7, 0x81, 0xE1, -0x23, 0xE8, 0x01, 0x91, 0x00, 0xD0, 0x18, 0x67, -0xA5, 0xE1, 0x21, 0xE0, 0x02, 0xD0, 0x04, 0xD1, -0x00, 0x90, 0x02, 0x91, 0x00, 0xD0, 0x01, 0xD1, -0x86, 0x30, 0xC0, 0xF7, 0xA0, 0x31, 0x0D, 0xE9, -0x19, 0x65, 0xA6, 0x31, 0x98, 0x67, 0x11, 0x67, -0x8D, 0xE8, 0x02, 0xD1, 0xB1, 0x67, 0x06, 0x20, -0xC0, 0xF7, 0x60, 0x30, 0xC6, 0x36, 0x0D, 0xEE, -0x66, 0x33, 0xD4, 0x17, 0x03, 0x93, 0x01, 0x73, -0x05, 0x61, 0x00, 0x94, 0x01, 0x95, 0x08, 0x90, -0x80, 0xD8, 0xA1, 0xD8, 0x07, 0x91, 0x06, 0x90, -0x04, 0x63, 0x20, 0xE8, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x69, -0x40, 0xF4, 0x4C, 0x99, 0xFF, 0x68, 0x8C, 0xE8, -0x0D, 0xD5, 0x90, 0x67, 0x01, 0x6D, 0x40, 0xEA, -0x06, 0xD2, 0x40, 0xF4, 0x4C, 0x99, 0x90, 0x67, -0x00, 0x6D, 0x40, 0xEA, 0x04, 0xD2, 0x0D, 0x95, -0x06, 0x92, 0x04, 0x04, 0x00, 0x6E, 0x05, 0xD2, -0x80, 0x18, 0x77, 0x15, 0x0B, 0x97, 0x0A, 0x91, -0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0x4C, 0x9A, -0xFF, 0x6B, 0x80, 0xA2, 0x00, 0xF6, 0x80, 0x34, -0x00, 0xF6, 0x83, 0x34, 0x00, 0x54, 0x25, 0x60, -0xA0, 0xA2, 0x7F, 0x6C, 0xAC, 0xEC, 0x40, 0x6D, -0xAD, 0xEC, 0x6C, 0xEC, 0x80, 0xC2, 0x30, 0xF0, -0x20, 0x6C, 0xC3, 0xF2, 0x90, 0x9C, 0x3F, 0x6D, -0x80, 0xA4, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF2, -0x94, 0x9C, 0x80, 0xA4, 0x30, 0xF0, 0x20, 0x6C, -0x43, 0xF0, 0x84, 0x9C, 0x80, 0xA4, 0x30, 0xF0, -0x20, 0x6C, 0x43, 0xF0, 0x88, 0x9C, 0x80, 0xA4, -0x80, 0xA2, 0x6C, 0xEC, 0xAD, 0xEC, 0x6C, 0xEC, -0x80, 0xC2, 0x80, 0xA2, 0xBF, 0x6B, 0x8C, 0xEB, -0x60, 0xC2, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF2, 0x78, 0x9B, 0xFF, 0x6A, 0x4C, 0xEC, -0xC0, 0xA3, 0x4C, 0xED, 0x15, 0x26, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF1, 0x7C, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0xC3, 0xF2, 0x9C, 0x9C, 0x40, 0x9B, -0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xA3, 0xF3, 0x78, 0x9A, -0x8D, 0xEB, 0xA3, 0xF3, 0x78, 0xDA, 0x20, 0xE8, -0x80, 0xC3, 0x0B, 0x25, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF2, 0x80, 0x9B, 0x80, 0x6D, 0xAB, 0xED, -0x60, 0xA4, 0x4C, 0xEB, 0xAE, 0xEB, 0x4C, 0xEB, -0x60, 0xC4, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF0, 0x64, 0x9B, 0x30, 0xF0, 0x20, 0x69, -0x86, 0xF3, 0x50, 0x99, 0xE0, 0x9B, 0x30, 0xF0, -0x20, 0x6B, 0xE3, 0xF2, 0x64, 0x9B, 0x50, 0x32, -0x6D, 0xE2, 0xE0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF2, 0x68, 0x9B, 0x6D, 0xE2, 0x80, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, 0x6C, 0x9B, -0x6D, 0xE2, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF2, 0x70, 0x9B, 0x69, 0xE2, 0xC0, 0xDA, -0x86, 0xF3, 0x10, 0x99, 0x01, 0x48, 0x00, 0xF1, -0x00, 0x70, 0x86, 0xF3, 0x10, 0xD9, 0x05, 0x60, -0x00, 0xF2, 0x00, 0x6A, 0x4E, 0xE8, 0x06, 0x20, -0x0B, 0x10, 0x10, 0x6C, 0x01, 0x6D, 0x80, 0x18, -0xD7, 0x15, 0x06, 0x10, 0x11, 0x6C, 0x01, 0x6D, -0x80, 0x18, 0xD7, 0x15, 0x86, 0xF3, 0x10, 0xD9, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x00, 0x6A, 0x7D, 0x67, 0x04, 0xD2, 0x05, 0xD2, -0x4C, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0xFF, 0xF7, 0x1F, 0x6F, 0x8C, 0xEF, -0x88, 0xF1, 0x8E, 0xA2, 0x0F, 0x6B, 0x04, 0x05, -0x8C, 0xEB, 0x9D, 0x67, 0x70, 0xC4, 0x88, 0xF1, -0x70, 0xA2, 0x0A, 0x6E, 0x72, 0xC4, 0x88, 0xF1, -0x71, 0xA2, 0x73, 0xC4, 0x48, 0xF2, 0x6C, 0xA2, -0x48, 0xF2, 0x4D, 0xA2, 0x76, 0xC4, 0x57, 0xC4, -0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, 0x50, 0x9A, -0x25, 0x6C, 0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, -0x46, 0xF5, 0x18, 0x49, 0x63, 0xF3, 0x04, 0x4B, -0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, 0x48, 0xF4, -0xD2, 0xA9, 0xA3, 0xF0, 0x10, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x04, 0x4B, -0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, 0x48, 0xF4, -0xD4, 0xA9, 0xC3, 0xF0, 0x0C, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x04, 0x4B, -0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, 0x48, 0xF4, -0xD6, 0xA9, 0xA8, 0xF1, 0x10, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x04, 0x4B, -0xC0, 0xF3, 0x44, 0x98, 0x48, 0xF4, 0xD8, 0xA9, -0xA0, 0x9B, 0xC8, 0xF1, 0x0C, 0x6C, 0x40, 0xEA, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x00, 0x6A, 0x0B, 0xD7, 0xE0, 0xAE, 0x1F, 0xF7, -0x00, 0x6B, 0xEC, 0xEB, 0x02, 0xF0, 0x00, 0x73, -0x01, 0x60, 0x09, 0x2B, 0x30, 0xF0, 0x20, 0x6B, -0xE0, 0xAE, 0x23, 0xF0, 0x78, 0x9B, 0x6D, 0xE7, -0xE0, 0xA4, 0xE0, 0xC3, 0x07, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF0, 0x7C, 0x9B, 0x7D, 0xE7, -0x60, 0xA4, 0x60, 0xC7, 0x01, 0x4A, 0xFF, 0x6B, -0x6C, 0xEA, 0x03, 0x72, 0x02, 0x4E, 0x01, 0x4C, -0xE1, 0x61, 0x25, 0x67, 0x00, 0x68, 0x0B, 0x92, -0xC0, 0x99, 0x01, 0x6D, 0x0D, 0xE2, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x80, 0xAB, -0xAB, 0xED, 0x02, 0x48, 0x40, 0xEA, 0x16, 0x70, -0x04, 0x49, 0xF1, 0x61, 0x07, 0x97, 0x06, 0x91, +0xFF, 0x6A, 0x0C, 0x68, 0x4C, 0xEC, 0x1B, 0xEC, +0x01, 0x28, 0xE5, 0xE8, 0x4C, 0xED, 0x10, 0xE9, +0x4C, 0xE9, 0x12, 0xE8, 0x4C, 0xE8, 0x0F, 0x25, +0x90, 0x67, 0x01, 0x6D, 0x00, 0x18, 0xAD, 0xD8, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x14, 0x4A, +0x41, 0xE0, 0x60, 0xA0, 0x01, 0x6A, 0x44, 0xE9, +0x6D, 0xEA, 0x40, 0xC0, 0x11, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x14, 0x4A, 0x49, 0xE0, +0x80, 0xA2, 0x01, 0x6B, 0x64, 0xE9, 0x6F, 0xEB, +0x8C, 0xEB, 0x60, 0xC2, 0x40, 0xA2, 0x04, 0x2A, +0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, 0xAD, 0xD8, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0x24, 0x67, +0x0C, 0xE9, 0xAC, 0xE8, 0x91, 0x67, 0xB0, 0x67, +0x00, 0x18, 0x00, 0xD9, 0x91, 0x67, 0xB0, 0x67, +0x00, 0x18, 0xE7, 0xD8, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x00, 0x6B, 0x29, 0xF0, 0x60, 0xC2, 0x00, 0x6A, -0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0xD1, -0x08, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x48, 0xF4, 0x7E, 0xA2, 0x7E, 0x2B, -0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6D, 0x30, 0xF0, -0x20, 0x6C, 0x68, 0xF4, 0x6D, 0xC2, 0x68, 0xF4, -0x6E, 0xC2, 0xEF, 0xF2, 0x04, 0x4D, 0xEF, 0xF1, -0x0C, 0x4C, 0x00, 0x6A, 0x00, 0x6B, 0x60, 0xDD, -0x30, 0xF0, 0x20, 0x6E, 0xB1, 0xF0, 0x64, 0x42, -0x46, 0xF5, 0x18, 0x4E, 0x6C, 0x33, 0x6D, 0xE6, -0x04, 0x4B, 0x04, 0xD3, 0x62, 0xF1, 0x66, 0x42, -0x68, 0x33, 0x6D, 0xE6, 0x04, 0x4B, 0x03, 0xD3, -0x06, 0x6B, 0x78, 0xEA, 0x01, 0xD4, 0x12, 0xEB, -0x6D, 0xE6, 0x09, 0xF0, 0x05, 0x4B, 0x00, 0x6E, -0x04, 0x90, 0x00, 0x6F, 0xE0, 0xD8, 0x03, 0x90, -0xE0, 0xC8, 0x44, 0x30, 0x01, 0xE6, 0xC4, 0xF2, -0x00, 0x48, 0x30, 0xF0, 0x20, 0x6F, 0x04, 0x30, -0x46, 0xF5, 0x18, 0x4F, 0x1D, 0xE7, 0x04, 0x4F, -0x05, 0xD7, 0x01, 0x97, 0x00, 0x68, 0x00, 0xD0, -0x02, 0xD7, 0x05, 0x90, 0x01, 0x6F, 0x44, 0x31, -0xE0, 0xC0, 0x00, 0x97, 0xC5, 0xE1, 0x24, 0x31, -0x25, 0xE7, 0x40, 0xF4, 0x08, 0x41, 0x30, 0xF0, -0x20, 0x6F, 0x40, 0xF4, 0x10, 0x49, 0x46, 0xF5, -0x18, 0x4F, 0x10, 0x30, 0x30, 0x31, 0x01, 0xE7, -0x25, 0xE7, 0x04, 0x48, 0x04, 0x49, 0x06, 0xD2, -0x02, 0x92, 0x00, 0x6F, 0xE0, 0xC8, 0x02, 0x48, -0x4A, 0xE8, 0xE0, 0xC9, 0x02, 0x49, 0xF8, 0x61, -0x00, 0x90, 0x06, 0x92, 0x01, 0x48, 0x00, 0xD0, -0x05, 0x90, 0x01, 0x48, 0x05, 0xD0, 0x02, 0x90, -0x10, 0x48, 0x02, 0xD0, 0x00, 0x90, 0x02, 0x70, -0xD4, 0x61, 0xE0, 0xC3, 0xE1, 0xC3, 0xE2, 0xC3, -0x04, 0x97, 0x03, 0x90, 0x01, 0x4E, 0x04, 0x4F, -0x04, 0xD7, 0x01, 0x97, 0x02, 0x48, 0x02, 0x76, -0x20, 0x4F, 0x03, 0xD0, 0x03, 0x4B, 0x01, 0xD7, -0xAF, 0x61, 0x01, 0x4A, 0x02, 0x72, 0x04, 0x4D, -0x40, 0x4C, 0x90, 0x61, 0x09, 0x91, 0x08, 0x90, -0x05, 0x63, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0xEC, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0x6E, 0xF6, 0x08, 0x4C, -0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, 0x8E, 0x4E, +0x0C, 0x6B, 0x7B, 0xED, 0x01, 0x2B, 0xE5, 0xE8, +0x05, 0x6E, 0xFF, 0x6A, 0x4C, 0xEC, 0x10, 0xEB, +0x12, 0xED, 0x4C, 0xED, 0xD8, 0xEB, 0x12, 0xEB, +0x4C, 0xEB, 0x1E, 0x73, 0x1D, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF0, 0x68, 0x9A, 0xAC, 0x35, +0x30, 0xF0, 0x20, 0x6E, 0x6D, 0xE5, 0x40, 0x9B, +0x83, 0xF0, 0xCC, 0x9E, 0xCC, 0xEA, 0x80, 0xF7, +0x80, 0x36, 0xCD, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF0, 0x44, 0x9A, 0x08, 0x6B, +0x6B, 0xEB, 0x55, 0xE5, 0x40, 0x9D, 0x8A, 0x34, +0x6C, 0xEA, 0x07, 0x6B, 0x6C, 0xEC, 0x1E, 0x10, +0x20, 0x5B, 0x0C, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF0, 0x48, 0x9A, 0x1F, 0x6E, 0xAC, 0x35, +0xE6, 0x67, 0x55, 0xE5, 0xE4, 0xEB, 0x40, 0x9D, +0xEF, 0xEF, 0x0D, 0x10, 0xE0, 0x4B, 0x4C, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, 0x44, 0x9A, +0xAC, 0x35, 0x1F, 0x6E, 0x55, 0xE5, 0xE0, 0x9D, +0x46, 0x67, 0x44, 0xEB, 0x4F, 0xEA, 0xCC, 0xEC, +0xEC, 0xEA, 0x84, 0xEB, 0x8D, 0xEA, 0x40, 0xDD, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0x2C, 0xEC, +0xCC, 0xE9, 0x05, 0x67, 0x01, 0x29, 0x00, 0x6C, +0xB0, 0x67, 0x00, 0x18, 0x26, 0xD9, 0xFF, 0x6C, +0x0C, 0xEC, 0xB1, 0x67, 0x00, 0x18, 0x1B, 0xD9, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xAE, 0xEC, 0x01, 0x6A, +0x8C, 0xEA, 0x20, 0xE8, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, +0x06, 0xD2, 0x05, 0xD4, 0x00, 0x69, 0x1F, 0x68, +0x22, 0x10, 0x05, 0x92, 0x40, 0xA2, 0x07, 0xD2, +0x00, 0x6A, 0x04, 0xD2, 0x04, 0x92, 0x07, 0x94, +0x12, 0x35, 0x87, 0xEA, 0xFF, 0x6A, 0x4C, 0xEC, +0x00, 0x18, 0x59, 0xD9, 0x06, 0x22, 0xFF, 0x6A, +0x04, 0x30, 0x4C, 0xE8, 0x05, 0x6A, 0x4E, 0xE8, +0x01, 0x10, 0x04, 0x30, 0xFF, 0x6A, 0x4C, 0xE8, +0x04, 0x92, 0x01, 0x4A, 0x08, 0x72, 0x04, 0xD2, +0xE9, 0x61, 0xFF, 0x6A, 0x01, 0x49, 0x4C, 0xE9, +0x05, 0x92, 0x01, 0x4A, 0x05, 0xD2, 0x06, 0x92, +0x43, 0xE9, 0xDB, 0x61, 0x1F, 0x6A, 0x4E, 0xE8, +0x0C, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x60, 0xA4, 0x01, 0x6A, 0x04, 0x67, +0x6C, 0xEA, 0x44, 0x22, 0x66, 0x32, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF0, 0x70, 0x9B, 0x54, 0x32, +0x69, 0xE2, 0x61, 0xA4, 0x60, 0xC2, 0x40, 0xA4, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0x74, 0x9B, +0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x62, 0xA4, +0x60, 0xC2, 0x40, 0xA4, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF0, 0x78, 0x9B, 0x46, 0x32, 0x54, 0x32, +0x69, 0xE2, 0x63, 0xA4, 0x60, 0xC2, 0x40, 0xA4, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0x7C, 0x9B, +0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x64, 0xA4, +0x60, 0xC2, 0x40, 0xA4, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF0, 0x60, 0x9B, 0x46, 0x32, 0x54, 0x32, +0x69, 0xE2, 0x65, 0xA4, 0x60, 0xC2, 0x40, 0xA4, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, 0x64, 0x9B, +0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x66, 0xA4, +0x10, 0xF0, 0x00, 0x6C, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x68, 0x9A, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x81, 0x40, 0x06, 0x6D, +0x00, 0x18, 0x5B, 0xD9, 0x60, 0xA0, 0x01, 0x6E, +0x82, 0x67, 0x66, 0x35, 0x6C, 0xEE, 0x00, 0x18, +0x4D, 0xD9, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0xDD, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x6C, 0x9A, 0xFF, 0xF7, 0x1F, 0x6A, +0x80, 0xAB, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x42, 0xF3, 0x84, 0x9C, 0x8D, 0xEA, 0x40, 0xDB, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x09, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0x00, 0x6B, 0xA2, 0xF4, 0x77, 0xC2, 0xA2, 0xF4, +0x78, 0xC2, 0xA2, 0xF4, 0x76, 0xC2, 0x00, 0x6B, +0xA2, 0xF4, 0x74, 0xCA, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0xD1, 0x06, 0xD0, 0xFF, 0x6A, +0xCC, 0xEA, 0x08, 0xD4, 0x03, 0xD2, 0xE1, 0x9C, +0x00, 0x68, 0x00, 0x69, 0xA3, 0xEF, 0x40, 0x9C, +0x00, 0xD0, 0x01, 0xD1, 0x0A, 0x61, 0xBB, 0xEF, +0x01, 0x2D, 0xE5, 0xE8, 0x00, 0x69, 0x00, 0xD1, +0x12, 0xEB, 0x01, 0xD3, 0xB8, 0xEB, 0x12, 0xEB, +0x7F, 0xE7, 0xC5, 0x67, 0x00, 0x6B, 0x01, 0x6C, +0x00, 0x6D, 0x0C, 0x10, 0xC4, 0x30, 0xC3, 0xE8, +0x64, 0x33, 0xD0, 0x67, 0x18, 0x67, 0x6D, 0xE0, +0x84, 0x30, 0x83, 0xE8, 0x38, 0x67, 0xA4, 0x34, +0x95, 0xE1, 0x90, 0x67, 0x01, 0x53, 0x02, 0x60, +0x07, 0x2B, 0x06, 0x26, 0xE3, 0xEB, 0xEE, 0x61, +0x6A, 0xEF, 0x02, 0x61, 0x43, 0xEE, 0xEA, 0x61, +0x63, 0xEF, 0x18, 0x61, 0xEA, 0xEB, 0x02, 0x61, +0xC3, 0xEA, 0x14, 0x61, 0x00, 0x91, 0xC3, 0xE2, +0x03, 0xEA, 0x7F, 0xE7, 0x50, 0x67, 0x18, 0x67, +0x1F, 0xE7, 0x81, 0xE1, 0x23, 0xE8, 0x01, 0x91, +0x00, 0xD0, 0x18, 0x67, 0xA5, 0xE1, 0x21, 0xE0, +0x02, 0xD0, 0x04, 0xD1, 0x00, 0x90, 0x02, 0x91, +0x00, 0xD0, 0x01, 0xD1, 0x86, 0x30, 0xC0, 0xF7, +0xA0, 0x31, 0x0D, 0xE9, 0x19, 0x65, 0xA6, 0x31, +0x98, 0x67, 0x11, 0x67, 0x8D, 0xE8, 0x02, 0xD1, +0xB1, 0x67, 0x06, 0x20, 0xC0, 0xF7, 0x60, 0x30, +0xC6, 0x36, 0x0D, 0xEE, 0x66, 0x33, 0xD4, 0x17, +0x03, 0x93, 0x01, 0x73, 0x05, 0x61, 0x00, 0x94, +0x01, 0x95, 0x08, 0x90, 0x80, 0xD8, 0xA1, 0xD8, +0x07, 0x91, 0x06, 0x90, 0x04, 0x63, 0x20, 0xE8, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x69, 0x40, 0xF4, 0x4C, 0x99, +0xFF, 0x68, 0x8C, 0xE8, 0x0D, 0xD5, 0x90, 0x67, +0x01, 0x6D, 0x40, 0xEA, 0x06, 0xD2, 0x40, 0xF4, +0x4C, 0x99, 0x90, 0x67, 0x00, 0x6D, 0x40, 0xEA, +0x04, 0xD2, 0x0D, 0x95, 0x06, 0x92, 0x04, 0x04, +0x00, 0x6E, 0x05, 0xD2, 0x80, 0x18, 0x08, 0x00, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF3, 0x50, 0x9A, 0xFF, 0x6B, 0x80, 0xA2, +0x00, 0xF6, 0x80, 0x34, 0x00, 0xF6, 0x83, 0x34, +0x00, 0x54, 0x25, 0x60, 0xA0, 0xA2, 0x7F, 0x6C, +0xAC, 0xEC, 0x40, 0x6D, 0xAD, 0xEC, 0x6C, 0xEC, +0x80, 0xC2, 0x30, 0xF0, 0x20, 0x6C, 0x02, 0xF3, +0x94, 0x9C, 0x3F, 0x6D, 0x80, 0xA4, 0x30, 0xF0, +0x20, 0x6C, 0x02, 0xF3, 0x98, 0x9C, 0x80, 0xA4, +0x30, 0xF0, 0x20, 0x6C, 0x02, 0xF3, 0x9C, 0x9C, +0x80, 0xA4, 0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF3, +0x80, 0x9C, 0x80, 0xA4, 0x80, 0xA2, 0x6C, 0xEC, +0xAD, 0xEC, 0x6C, 0xEC, 0x80, 0xC2, 0x80, 0xA2, +0xBF, 0x6B, 0x8C, 0xEB, 0x60, 0xC2, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF3, 0x64, 0x9B, +0xFF, 0x6A, 0x4C, 0xEC, 0xC0, 0xA3, 0x4C, 0xED, +0x15, 0x26, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, +0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF3, +0x8C, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0x23, 0xF3, 0x70, 0x9A, 0x8D, 0xEB, 0x23, 0xF3, +0x70, 0xDA, 0x20, 0xE8, 0x80, 0xC3, 0x0B, 0x25, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF3, 0x90, 0x9B, +0x80, 0x6D, 0xAB, 0xED, 0x60, 0xA4, 0x4C, 0xEB, +0xAE, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF2, 0x70, 0x9B, +0x30, 0xF0, 0x20, 0x69, 0xE3, 0xF4, 0x5C, 0x99, +0xE0, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF3, +0x74, 0x9B, 0x50, 0x32, 0x6D, 0xE2, 0xE0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF3, 0x78, 0x9B, +0x6D, 0xE2, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF3, 0x7C, 0x9B, 0x6D, 0xE2, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, 0x60, 0x9B, +0x69, 0xE2, 0xC0, 0xDA, 0xE3, 0xF4, 0x1C, 0x99, +0x01, 0x48, 0x00, 0xF1, 0x00, 0x70, 0xE3, 0xF4, +0x1C, 0xD9, 0x05, 0x60, 0x00, 0xF2, 0x00, 0x6A, +0x4E, 0xE8, 0x06, 0x20, 0x0B, 0x10, 0x10, 0x6C, +0x01, 0x6D, 0x80, 0x18, 0x68, 0x00, 0x06, 0x10, +0x11, 0x6C, 0x01, 0x6D, 0x80, 0x18, 0x68, 0x00, +0xE3, 0xF4, 0x1C, 0xD9, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x00, 0x6A, 0x0B, 0xD7, +0xE0, 0xAE, 0x1F, 0xF7, 0x00, 0x6B, 0xEC, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x09, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xAE, 0xE2, 0xF2, +0x7C, 0x9B, 0x6D, 0xE7, 0xE0, 0xA4, 0xE0, 0xC3, +0x07, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF3, +0x60, 0x9B, 0x7D, 0xE7, 0x60, 0xA4, 0x60, 0xC7, +0x01, 0x4A, 0xFF, 0x6B, 0x6C, 0xEA, 0x03, 0x72, +0x02, 0x4E, 0x01, 0x4C, 0xE1, 0x61, 0x25, 0x67, +0x00, 0x68, 0x0B, 0x92, 0xC0, 0x99, 0x01, 0x6D, +0x0D, 0xE2, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x80, 0xAB, 0xAB, 0xED, 0x02, 0x48, +0x40, 0xEA, 0x16, 0x70, 0x04, 0x49, 0xF1, 0x61, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0xD1, +0x08, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, +0x18, 0x4A, 0x27, 0xF2, 0x6A, 0xA2, 0x79, 0x2B, +0x01, 0x6B, 0x27, 0xF2, 0x79, 0xC2, 0x27, 0xF2, +0x7A, 0xC2, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6B, 0xCB, 0xF0, 0x10, 0x4C, 0xCA, 0xF7, +0x18, 0x4B, 0x00, 0x6A, 0x00, 0x6D, 0xA0, 0xDC, +0x60, 0xF7, 0xCE, 0x42, 0x30, 0xF0, 0x20, 0x6D, +0x63, 0xF5, 0x18, 0x4D, 0xCC, 0x36, 0xD9, 0xE5, +0x04, 0xD6, 0xD1, 0xF6, 0xCA, 0x42, 0xC8, 0x36, +0xD9, 0xE5, 0x03, 0xD6, 0x06, 0x6E, 0xD8, 0xEA, +0x01, 0xD3, 0x12, 0xEE, 0xD9, 0xE5, 0xC7, 0xF5, +0x11, 0x4E, 0x00, 0x6D, 0x04, 0x90, 0x00, 0x6F, +0xE0, 0xD8, 0x03, 0x90, 0xE0, 0xC8, 0x44, 0x30, +0x01, 0xE5, 0xA3, 0xF5, 0x08, 0x48, 0x30, 0xF0, +0x20, 0x6F, 0x04, 0x30, 0x63, 0xF5, 0x18, 0x4F, +0x1D, 0xE7, 0x05, 0xD7, 0x01, 0x97, 0x00, 0x68, +0x00, 0xD0, 0x02, 0xD7, 0x05, 0x90, 0x01, 0x6F, +0x44, 0x31, 0xE0, 0xC0, 0x00, 0x97, 0xA5, 0xE1, +0x24, 0x31, 0x25, 0xE7, 0xA0, 0xF3, 0x05, 0x41, +0x30, 0xF0, 0x20, 0x6F, 0xA0, 0xF3, 0x0D, 0x49, +0x63, 0xF5, 0x18, 0x4F, 0x10, 0x30, 0x30, 0x31, +0x01, 0xE7, 0x25, 0xE7, 0x06, 0xD2, 0x02, 0x92, +0x00, 0x6F, 0xE0, 0xC8, 0x02, 0x48, 0x4A, 0xE8, +0xE0, 0xC9, 0x02, 0x49, 0xF8, 0x61, 0x00, 0x90, +0x06, 0x92, 0x01, 0x48, 0x00, 0xD0, 0x05, 0x90, +0x01, 0x48, 0x05, 0xD0, 0x02, 0x90, 0x10, 0x48, +0x02, 0xD0, 0x00, 0x90, 0x02, 0x70, 0xD6, 0x61, +0xE0, 0xC6, 0xE1, 0xC6, 0xE2, 0xC6, 0x04, 0x97, +0x03, 0x90, 0x01, 0x4D, 0x04, 0x4F, 0x04, 0xD7, +0x01, 0x97, 0x02, 0x48, 0x02, 0x75, 0x20, 0x4F, +0x03, 0xD0, 0x03, 0x4E, 0x01, 0xD7, 0xB2, 0x61, +0x01, 0x4A, 0x02, 0x72, 0x04, 0x4C, 0x40, 0x4B, +0x95, 0x61, 0x09, 0x91, 0x08, 0x90, 0x05, 0x63, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, 0xF4, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xCA, 0xF4, 0x18, 0x4C, +0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, 0x3E, 0x45, 0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF4, 0x00, 0x6C, -0x46, 0xF5, 0x18, 0x4B, 0x4C, 0xEC, 0x88, 0xF5, -0x54, 0xDB, 0x82, 0x32, 0x4A, 0x32, 0x02, 0x72, +0x63, 0xF5, 0x18, 0x4B, 0x4C, 0xEC, 0x67, 0xF3, +0x40, 0xDB, 0x82, 0x32, 0x4A, 0x32, 0x02, 0x72, 0x0A, 0x60, 0x03, 0x6C, 0x4E, 0xEC, 0x04, 0x24, 0x01, 0x72, 0x02, 0x6A, 0x05, 0x60, 0x06, 0x10, -0x48, 0xF4, 0x9D, 0xC3, 0x03, 0x10, 0x01, 0x6A, -0x48, 0xF4, 0x5D, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF0, 0x78, 0x9B, 0x88, 0xF5, 0x94, 0x9A, -0x8C, 0xEB, 0x62, 0x33, 0x62, 0x33, 0x48, 0xF4, -0x7C, 0xC2, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x27, 0xF2, 0x89, 0xC3, 0x03, 0x10, 0x01, 0x6A, +0x27, 0xF2, 0x49, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF5, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF3, 0x70, 0x9B, 0x67, 0xF3, 0x80, 0x9A, +0x8C, 0xEB, 0x62, 0x33, 0x62, 0x33, 0x27, 0xF2, +0x68, 0xC2, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x00, 0x68, 0x05, 0xD5, 0x04, 0xD4, 0x05, 0x92, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x0C, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, 0x14, 0x4B, 0xE0, 0x9B, 0xC0, 0xA2, 0x30, 0xF0, 0x20, 0x69, -0x6E, 0xF6, 0x08, 0x49, 0x91, 0x67, 0x00, 0x6D, -0x80, 0x18, 0x8E, 0x4E, 0x04, 0x93, 0x91, 0x67, +0xCA, 0xF4, 0x18, 0x49, 0x91, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x3E, 0x45, 0x04, 0x93, 0x91, 0x67, 0x01, 0x6D, 0x40, 0xDB, 0x05, 0x92, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF3, 0x0C, 0x4B, 0xE0, 0x9B, -0xC0, 0xA2, 0x01, 0x48, 0x80, 0x18, 0x8E, 0x4E, +0x20, 0x6B, 0xE2, 0xF3, 0x14, 0x4B, 0xE0, 0x9B, +0xC0, 0xA2, 0x01, 0x48, 0x80, 0x18, 0x3E, 0x45, 0x04, 0x93, 0x41, 0xDB, 0xFF, 0x6A, 0x4C, 0xE8, 0x05, 0x92, 0x08, 0x4B, 0x03, 0x70, 0x01, 0x4A, 0x05, 0xD2, 0x04, 0xD3, 0xD8, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0xAC, 0xE9, 0x00, 0x68, 0x85, 0xF5, -0x1C, 0x6C, 0xFF, 0x6D, 0x80, 0x18, 0x24, 0x39, +0x1C, 0x6C, 0xFF, 0x6D, 0x80, 0x18, 0xF4, 0x16, 0x55, 0x72, 0x0C, 0x61, 0x00, 0x6A, 0x15, 0x21, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0xA0, 0x9A, -0x03, 0xF3, 0x08, 0x6C, 0x80, 0x18, 0x24, 0x39, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF3, 0xBC, 0x9A, +0x03, 0xF3, 0x08, 0x6C, 0x80, 0x18, 0xF4, 0x16, 0x00, 0x6A, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, 0x01, 0x48, 0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, @@ -65743,9 +45307,9 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, 0x40, 0xEA, 0x05, 0x94, 0x01, 0x6D, 0x80, 0x18, -0xE6, 0x16, 0xD2, 0x10, 0x02, 0x72, 0x01, 0x6A, +0x3A, 0x01, 0xD2, 0x10, 0x02, 0x72, 0x01, 0x6A, 0xC0, 0xF0, 0x0E, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0xAF, 0xF1, 0x5A, 0xA2, 0x00, 0x68, 0x09, 0x72, +0xAA, 0xF7, 0x46, 0xA2, 0x00, 0x68, 0x09, 0x72, 0x0C, 0x60, 0x12, 0x72, 0x01, 0x68, 0x09, 0x60, 0x1B, 0x72, 0x02, 0x68, 0x06, 0x60, 0x24, 0x68, 0x4E, 0xE8, 0x01, 0x58, 0x18, 0x67, 0x04, 0x6A, @@ -65754,9 +45318,9 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x08, 0x6A, 0x03, 0xF3, 0x00, 0x6C, 0x4D, 0xEB, 0xC0, 0xF3, 0x44, 0x99, 0xC3, 0x67, 0x07, 0xD3, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, -0x46, 0xF5, 0x18, 0x4C, 0x04, 0xD4, 0x04, 0x93, -0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0x68, 0xF4, -0xC2, 0xA3, 0xC3, 0xF3, 0x0C, 0x6C, 0xAB, 0xED, +0x63, 0xF5, 0x18, 0x4C, 0x04, 0xD4, 0x04, 0x93, +0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0x27, 0xF2, +0xCE, 0xA3, 0xC3, 0xF3, 0x0C, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x05, 0x92, 0x01, 0x6C, 0x01, 0x6D, 0x04, 0x4A, 0x84, 0xEA, 0x00, 0xF3, 0x08, 0x6A, 0x4D, 0xEC, 0x06, 0xD4, 0xC0, 0xF3, 0x44, 0x99, @@ -65765,31 +45329,31 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x01, 0x6D, 0xAB, 0xED, 0x01, 0x4E, 0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, 0x02, 0x6C, 0x40, 0xEA, -0x05, 0x94, 0x01, 0x6D, 0x80, 0x18, 0xE6, 0x16, +0x05, 0x94, 0x01, 0x6D, 0x80, 0x18, 0x3A, 0x01, 0x01, 0x72, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x62, 0xF5, 0x10, 0x4A, 0x41, 0xE0, 0x40, 0xA0, -0x04, 0x93, 0x68, 0xF4, 0x42, 0xC3, 0x6B, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x05, 0x95, 0x63, 0xF3, -0xEC, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x6E, 0xF6, -0x08, 0x4C, 0x00, 0x6E, 0x80, 0x18, 0x8E, 0x4E, +0x82, 0xF1, 0x1C, 0x4A, 0x41, 0xE0, 0x40, 0xA0, +0x04, 0x93, 0x27, 0xF2, 0x4E, 0xC3, 0x6B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x05, 0x95, 0xE2, 0xF3, +0xF4, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xCA, 0xF4, +0x18, 0x4C, 0x00, 0x6E, 0x80, 0x18, 0x3E, 0x45, 0x05, 0xD2, 0x07, 0x96, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x05, 0x94, 0xE3, 0xF7, 0x00, 0x6A, 0x04, 0x93, 0x8C, 0xEA, 0x56, 0x34, 0x96, 0x32, -0x68, 0xF4, 0x44, 0xDB, 0x1F, 0x6A, 0x8C, 0xEA, +0x27, 0xF2, 0x50, 0xDB, 0x1F, 0x6A, 0x8C, 0xEA, 0x02, 0x5A, 0xFF, 0x6B, 0x0B, 0x60, 0x03, 0x70, 0x03, 0x60, 0x01, 0x48, 0x6C, 0xE8, 0x49, 0x10, -0x04, 0x94, 0x01, 0x6B, 0x03, 0x68, 0x09, 0xF0, -0x79, 0xC4, 0x43, 0x10, 0x0A, 0x5A, 0x0B, 0x61, +0x04, 0x94, 0x01, 0x6B, 0x03, 0x68, 0xE7, 0xF5, +0x65, 0xC4, 0x43, 0x10, 0x0A, 0x5A, 0x0B, 0x61, 0x04, 0x20, 0xFF, 0x48, 0x6C, 0xE8, 0x01, 0x6B, -0x0B, 0x10, 0x04, 0x94, 0x01, 0x6B, 0x09, 0xF0, -0x79, 0xC4, 0x01, 0x6B, 0x09, 0x10, 0x04, 0x94, -0x00, 0x6B, 0x09, 0xF0, 0x79, 0xC4, 0x00, 0x6B, +0x0B, 0x10, 0x04, 0x94, 0x01, 0x6B, 0xE7, 0xF5, +0x65, 0xC4, 0x01, 0x6B, 0x09, 0x10, 0x04, 0x94, +0x00, 0x6B, 0xE7, 0xF5, 0x65, 0xC4, 0x00, 0x6B, 0x03, 0x20, 0x04, 0x58, 0x01, 0x61, 0x03, 0x68, -0x30, 0xF0, 0x20, 0x6D, 0x62, 0xF5, 0x10, 0x4D, +0x30, 0xF0, 0x20, 0x6D, 0x82, 0xF1, 0x1C, 0x4D, 0xA1, 0xE0, 0xA0, 0xA0, 0x30, 0xF0, 0x20, 0x6C, -0x46, 0xF5, 0x18, 0x4C, 0x68, 0xF4, 0xA2, 0xC4, -0x0F, 0x2B, 0x68, 0xF4, 0xC2, 0xA4, 0x30, 0xF0, +0x63, 0xF5, 0x18, 0x4C, 0x27, 0xF2, 0xAE, 0xC4, +0x0F, 0x2B, 0x27, 0xF2, 0xCE, 0xA4, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x64, 0x9B, 0xC0, 0x36, 0x01, 0x6D, 0x4D, 0xEE, 0xE3, 0xF3, 0x08, 0x6C, 0xAB, 0xED, 0x40, 0xEB, 0x00, 0x6A, 0x0C, 0x10, @@ -65802,19 +45366,19 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x00, 0x6B, 0x0B, 0xD7, 0xE0, 0xAE, 0x1F, 0xF7, 0x00, 0x6A, 0xEC, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x08, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xE0, 0xAE, 0x23, 0xF0, 0x58, 0x9A, 0x49, 0xE7, +0xE0, 0xAE, 0xE2, 0xF2, 0x5C, 0x9A, 0x49, 0xE7, 0xE0, 0xA2, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF0, 0x5C, 0x9A, 0x5D, 0xE7, 0xE0, 0xA7, +0x02, 0xF3, 0x40, 0x9A, 0x5D, 0xE7, 0xE0, 0xA7, 0xFF, 0x6A, 0xEC, 0xEA, 0x7D, 0xE4, 0x01, 0x4B, 0x03, 0x73, 0x40, 0xC7, 0x02, 0x4E, 0xE2, 0x61, 0x25, 0x67, 0x00, 0x68, 0x0B, 0x93, 0x01, 0x6D, 0xAB, 0xED, 0x09, 0xE3, 0x80, 0xAA, 0x02, 0x48, -0x80, 0x18, 0x24, 0x39, 0x16, 0x70, 0x40, 0xD9, +0x80, 0x18, 0xF4, 0x16, 0x16, 0x70, 0x40, 0xD9, 0x04, 0x49, 0xF4, 0x61, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x69, 0x63, 0xF3, -0x68, 0x9B, 0x30, 0xF0, 0x20, 0x68, 0x2C, 0xEC, +0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x69, 0xE2, 0xF3, +0x6C, 0x9B, 0x30, 0xF0, 0x20, 0x68, 0x2C, 0xEC, 0xC0, 0xF3, 0x44, 0x98, 0xAC, 0xE9, 0x24, 0x36, 0x01, 0x6D, 0x04, 0xD4, 0xAB, 0xED, 0x03, 0xF3, 0x00, 0x6C, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, @@ -65823,456 +45387,129 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x07, 0x10, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x63, 0xF3, -0xB0, 0x9B, 0xC3, 0xF3, 0x14, 0x6C, 0x10, 0x6E, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0xE2, 0xF3, +0xB8, 0x9B, 0xC3, 0xF3, 0x14, 0x6C, 0x10, 0x6E, 0x40, 0xEA, 0x04, 0x94, 0x24, 0x31, 0x30, 0xF0, -0x20, 0x6A, 0x25, 0xE4, 0x40, 0xF4, 0x68, 0x41, -0x40, 0xF4, 0x10, 0x49, 0x46, 0xF5, 0x18, 0x4A, -0x30, 0x31, 0x70, 0x33, 0x6D, 0xE2, 0x29, 0xE2, -0x04, 0x4A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0x34, 0x9A, 0x04, 0x4B, 0x05, 0xD3, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0x01, 0x6D, 0xD1, 0x67, 0xC3, 0xF3, 0x18, 0x6C, -0xAB, 0xED, 0x40, 0xEA, 0x01, 0x6D, 0xE3, 0xF3, -0x1C, 0x6C, 0xAB, 0xED, 0x80, 0x18, 0x24, 0x39, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x78, 0x9B, -0x05, 0x94, 0x04, 0x49, 0x4C, 0xEB, 0x62, 0x33, -0x62, 0x33, 0x60, 0xCC, 0xE1, 0xF7, 0x1F, 0x6B, -0x4C, 0xEB, 0x04, 0x92, 0x02, 0x4C, 0x05, 0xD4, -0x60, 0xCA, 0x02, 0x4A, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF3, 0x5C, 0x9A, 0x2E, 0xEA, -0xD7, 0x2A, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, -0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, -0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, -0x05, 0x67, 0x01, 0x74, 0x4C, 0xE8, 0x80, 0xF0, -0x1D, 0x60, 0x04, 0x24, 0x04, 0x5C, 0xA0, 0xF0, -0x14, 0x60, 0xAE, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x88, 0xF5, 0x6C, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, -0x88, 0xF5, 0x70, 0xDA, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0xEF, 0xF2, 0x1C, 0x4C, -0xEF, 0xF2, 0x14, 0x4B, 0xEF, 0xF2, 0x10, 0x4A, -0xEF, 0xF1, 0x0C, 0x4D, 0x00, 0x69, 0xC0, 0x9C, -0xC4, 0xF2, 0x00, 0x41, 0x04, 0x30, 0xC2, 0xDC, -0xC0, 0xAB, 0x05, 0xD5, 0xE5, 0x67, 0xC2, 0xCB, -0xC0, 0xA2, 0xC2, 0xC2, 0x30, 0xF0, 0x20, 0x6E, -0x46, 0xF5, 0x18, 0x4E, 0x01, 0xE6, 0x00, 0x6E, -0x04, 0x48, 0x04, 0xD6, 0xA0, 0xA0, 0x24, 0x36, -0xA4, 0xC0, 0x04, 0x95, 0xD9, 0xE5, 0xA6, 0x67, -0x40, 0xF4, 0x08, 0x4D, 0xB0, 0x35, 0x06, 0xD5, -0x09, 0xD6, 0x30, 0xF0, 0x20, 0x6E, 0xA6, 0x67, -0x06, 0x96, 0x46, 0xF5, 0x18, 0x4D, 0x1D, 0x65, -0xD5, 0xE5, 0x09, 0x96, 0x04, 0x4D, 0x08, 0xD5, -0x40, 0xF4, 0x10, 0x4E, 0xD0, 0x36, 0xB8, 0x67, -0xD5, 0xE5, 0xC5, 0x67, 0x08, 0x95, 0x04, 0x4E, -0x06, 0xD2, 0x40, 0xAD, 0x40, 0xF0, 0x40, 0xCD, -0x40, 0xAE, 0x02, 0x4D, 0x40, 0xF0, 0x40, 0xCE, -0x05, 0x92, 0x02, 0x4E, 0x4A, 0xED, 0xF5, 0x61, -0x04, 0x95, 0x05, 0x96, 0x06, 0x92, 0x01, 0x4D, -0x10, 0x4E, 0x02, 0x75, 0x04, 0xD5, 0x01, 0x48, -0x05, 0xD6, 0xCC, 0x61, 0x01, 0x49, 0x02, 0x6E, -0xA7, 0x67, 0x2E, 0xEE, 0x04, 0x4C, 0x02, 0x4B, -0x01, 0x4A, 0x20, 0x4D, 0xB0, 0x2E, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x00, 0x6B, -0x09, 0xF0, 0x71, 0xC2, 0x09, 0xF0, 0x72, 0xC2, -0x09, 0xF0, 0x65, 0xC2, 0x09, 0xF0, 0x66, 0xC2, -0x09, 0xF0, 0x67, 0xC2, 0x88, 0xF5, 0x79, 0xC2, -0x09, 0xF0, 0x73, 0xC2, 0x09, 0xF0, 0x74, 0xC2, -0x09, 0xF0, 0x68, 0xC2, 0x09, 0xF0, 0x69, 0xC2, -0x09, 0xF0, 0x6A, 0xC2, 0x88, 0xF5, 0x74, 0x9A, -0x01, 0x6C, 0x88, 0xF5, 0xD8, 0xC2, 0x88, 0xF5, -0xDC, 0xCA, 0x88, 0xF5, 0x84, 0xC2, 0x88, 0xF5, -0x85, 0xC2, 0x88, 0xF5, 0xDE, 0xCA, 0x88, 0xF5, -0x86, 0xC2, 0x88, 0xF5, 0x87, 0xC2, 0x88, 0xF5, -0x6C, 0xDA, 0x1B, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0xEC, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0xB0, 0x67, 0x6E, 0xF6, 0x08, 0x4C, 0x58, 0x6E, -0x80, 0x18, 0x8E, 0x4E, 0x62, 0xF1, 0x08, 0x48, -0x30, 0xF0, 0x20, 0x6B, 0x08, 0x30, 0x46, 0xF5, -0x18, 0x4B, 0x6D, 0xE0, 0x41, 0xDB, 0x05, 0x10, -0xFE, 0x4C, 0x4C, 0xEC, 0xB0, 0x67, 0x80, 0x18, -0xA2, 0x17, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, -0x07, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0xCF, 0xF1, 0x41, 0xA2, -0x18, 0x2A, 0x01, 0x6C, 0x00, 0x6D, 0x80, 0x18, -0xE7, 0x17, 0x02, 0x6C, 0x00, 0x6D, 0x80, 0x18, -0xE7, 0x17, 0x03, 0x6C, 0x00, 0x6D, 0x80, 0x18, -0xE7, 0x17, 0x01, 0x6C, 0xA4, 0x67, 0x80, 0x18, -0xE7, 0x17, 0x02, 0x6C, 0x01, 0x6D, 0x80, 0x18, -0xE7, 0x17, 0x03, 0x6C, 0x01, 0x6D, 0x80, 0x18, -0xE7, 0x17, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x20, 0x6A, 0x25, 0xE4, 0xA0, 0xF3, 0x65, 0x41, +0xA0, 0xF3, 0x0D, 0x49, 0x63, 0xF5, 0x18, 0x4A, +0x70, 0x33, 0x30, 0x31, 0x25, 0xE2, 0x6D, 0xE2, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0xD1, 0xE2, 0xF3, +0x3C, 0x9A, 0x05, 0xD3, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xD1, 0x67, +0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x01, 0x6D, 0xE3, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, +0x80, 0x18, 0xF4, 0x16, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF4, 0x60, 0x9B, 0x05, 0x94, 0x04, 0x49, +0x4C, 0xEB, 0x62, 0x33, 0x62, 0x33, 0x60, 0xCC, +0xE1, 0xF7, 0x1F, 0x6B, 0x4C, 0xEB, 0x04, 0x92, +0x02, 0x4C, 0x05, 0xD4, 0x60, 0xCA, 0x02, 0x4A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF4, +0x44, 0x9A, 0x2E, 0xEA, 0xD7, 0x2A, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, +0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, +0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x2F, 0xF1, 0x50, 0xA2, -0xA0, 0xF3, 0x17, 0x22, 0x01, 0x69, 0x2B, 0xE9, -0xB1, 0x67, 0x63, 0xF0, 0x00, 0x6C, 0x80, 0x18, -0x24, 0x39, 0xB1, 0x67, 0x68, 0xF1, 0x00, 0x6C, -0x07, 0xD2, 0x80, 0x18, 0x24, 0x39, 0xB1, 0x67, -0xA1, 0xF1, 0x14, 0x6C, 0x30, 0xF0, 0x20, 0x68, -0x06, 0xD2, 0x80, 0x18, 0x24, 0x39, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF3, 0xC0, 0x9B, 0x05, 0xD2, -0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0xA1, 0xF1, -0x14, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF3, 0x24, 0x9A, 0xC0, 0xF3, 0x44, 0x98, -0xA3, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, -0xC3, 0xF0, 0x0C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0xA8, 0xF1, -0x10, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xB1, 0x67, 0xC8, 0xF1, 0x0C, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF0, 0x34, 0x9A, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, -0x08, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x63, 0xF0, 0x00, 0x6C, 0x3C, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC5, 0x67, -0xA3, 0xF0, 0x14, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x6D, 0xC5, 0x67, 0xC3, 0xF0, -0x10, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xB1, 0x67, 0x28, 0xF1, 0x10, 0x6C, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, -0x08, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x68, 0xF1, 0x00, 0x6C, 0x3C, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC5, 0x67, -0xA8, 0xF1, 0x14, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x6D, 0xC5, 0x67, 0xC8, 0xF1, -0x10, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xA3, 0xF0, 0x10, 0x6C, 0x01, 0xF7, 0x00, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xC3, 0xF0, 0x00, 0x6C, 0x08, 0xF0, 0x00, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xC3, 0xF0, 0x0C, 0x6C, 0x01, 0xF7, 0x00, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xC3, 0xF0, 0x1C, 0x6C, 0x08, 0xF0, 0x00, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xA3, 0xF0, 0x10, 0x6C, 0x01, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, -0x0C, 0x6C, 0x01, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC5, 0x67, -0xA3, 0xF0, 0x10, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x6D, 0xC5, 0x67, 0xC3, 0xF0, -0x0C, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF3, 0x2C, 0x9A, 0xC0, 0xF3, 0x44, 0x98, -0xA3, 0xF0, 0x18, 0x6C, 0xB1, 0x67, 0x01, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, -0x14, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x10, 0x6C, -0x01, 0xF7, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x00, 0x6C, -0x08, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x0C, 0x6C, -0x01, 0xF7, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x1C, 0x6C, -0x08, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x10, 0x6C, -0x01, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xC8, 0xF1, 0x0C, 0x6C, 0x01, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x01, 0x6D, 0xC5, 0x67, 0xA8, 0xF1, 0x10, 0x6C, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, -0xC5, 0x67, 0xC8, 0xF1, 0x0C, 0x6C, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x18, 0x6C, -0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xC8, 0xF1, 0x14, 0x6C, 0xB1, 0x67, -0x01, 0x6E, 0x40, 0xEA, 0x00, 0x68, 0xFF, 0x6A, -0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF3, 0xB0, 0x9A, 0x05, 0xF0, 0x08, 0x6C, -0x80, 0x18, 0x24, 0x39, 0xFF, 0xF7, 0x1F, 0x72, -0x12, 0x60, 0xFF, 0x70, 0xF0, 0x61, 0x0F, 0x10, -0xFF, 0x6A, 0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF3, 0xB0, 0x9A, 0x25, 0xF0, -0x14, 0x6C, 0x80, 0x18, 0x24, 0x39, 0xFF, 0xF7, -0x1F, 0x72, 0x03, 0x61, 0x14, 0x10, 0x00, 0x68, -0xEF, 0x17, 0xFF, 0x70, 0xED, 0x61, 0x0F, 0x10, -0xFF, 0x6A, 0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF3, 0xB0, 0x9A, 0x08, 0xF5, -0x08, 0x6C, 0x80, 0x18, 0x24, 0x39, 0xFF, 0xF7, -0x1F, 0x72, 0x03, 0x61, 0x14, 0x10, 0x00, 0x68, -0xEF, 0x17, 0xFF, 0x70, 0xED, 0x61, 0x0F, 0x10, -0xFF, 0x6A, 0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF3, 0xB0, 0x9A, 0x28, 0xF5, -0x14, 0x6C, 0x80, 0x18, 0x24, 0x39, 0xFF, 0xF7, -0x1F, 0x72, 0x03, 0x61, 0x04, 0x10, 0x00, 0x68, -0xEF, 0x17, 0xFF, 0x70, 0xED, 0x61, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x83, 0xF3, -0x0C, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, -0xA3, 0xF0, 0x18, 0x69, 0x91, 0x67, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, -0x0C, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, -0x91, 0x67, 0x02, 0x6E, 0x40, 0xEA, 0x00, 0x68, -0x05, 0xF0, 0x08, 0x6C, 0xFF, 0x6D, 0x80, 0x18, -0x24, 0x39, 0x86, 0x72, 0x07, 0x61, 0x30, 0xF0, -0x20, 0x69, 0x00, 0x6A, 0x2F, 0xF1, 0x12, 0x49, -0x04, 0xD2, 0x1E, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF3, 0x0C, 0x4B, 0xFF, 0x6A, 0x30, 0xF0, -0x20, 0x69, 0x01, 0x48, 0xA0, 0x9B, 0x4C, 0xE8, -0xC0, 0xF3, 0x44, 0x99, 0xA3, 0xF0, 0x18, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF3, 0x0C, 0x4B, 0xC0, 0xF3, 0x44, 0x99, -0xA0, 0x9B, 0xA3, 0xF0, 0x18, 0x6C, 0x02, 0x6E, -0x40, 0xEA, 0x64, 0x70, 0xD5, 0x61, 0xDB, 0x17, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0xA3, 0xF0, 0x14, 0x6C, 0x04, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xA9, 0xC0, 0xF3, 0x44, 0x98, -0xA3, 0xF0, 0x14, 0x6C, 0xE1, 0xF7, 0x18, 0x6D, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, -0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, -0xA3, 0xF0, 0x10, 0x6C, 0x02, 0x49, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0x14, 0x6C, -0x04, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x04, 0x92, -0x01, 0x4A, 0x0F, 0x72, 0x04, 0xD2, 0xD8, 0x61, -0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0x14, 0x6C, -0x04, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF3, 0x0C, 0x4B, 0xC0, 0xF3, -0x44, 0x98, 0xA0, 0x9B, 0xC3, 0xF0, 0x14, 0x69, -0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF3, 0x0C, 0x4B, 0xC0, 0xF3, -0x44, 0x98, 0xA0, 0x9B, 0x91, 0x67, 0x02, 0x6E, -0x40, 0xEA, 0x00, 0x68, 0x25, 0xF0, 0x14, 0x6C, -0xFF, 0x6D, 0x80, 0x18, 0x24, 0x39, 0x86, 0x72, -0x07, 0x61, 0x30, 0xF0, 0x20, 0x69, 0x00, 0x6A, -0x4F, 0xF1, 0x10, 0x49, 0x04, 0xD2, 0x1E, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0x0C, 0x4B, -0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x69, 0x01, 0x48, -0xA0, 0x9B, 0x4C, 0xE8, 0xC0, 0xF3, 0x44, 0x99, -0xC3, 0xF0, 0x14, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0x0C, 0x4B, -0xC0, 0xF3, 0x44, 0x99, 0xA0, 0x9B, 0xC3, 0xF0, -0x14, 0x6C, 0x02, 0x6E, 0x40, 0xEA, 0x64, 0x70, -0xD5, 0x61, 0xDB, 0x17, 0x30, 0xF0, 0x20, 0x68, -0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, 0x10, 0x6C, -0x04, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xA9, -0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, 0x10, 0x6C, -0xE1, 0xF7, 0x18, 0x6D, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF3, 0xB4, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x04, 0x96, 0xC3, 0xF0, 0x0C, 0x6C, -0x02, 0x49, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xC3, 0xF0, 0x10, 0x6C, 0x04, 0x6D, 0x01, 0x6E, -0x40, 0xEA, 0x04, 0x92, 0x01, 0x4A, 0x0F, 0x72, -0x04, 0xD2, 0xD8, 0x61, 0xC0, 0xF3, 0x44, 0x98, -0xC3, 0xF0, 0x10, 0x6C, 0x04, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, -0x2C, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, -0x18, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, 0x14, 0x6C, -0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xA3, 0xF0, 0x14, 0x6C, 0x01, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xC3, 0xF0, 0x10, 0x6C, 0x01, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, -0x18, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x18, 0x6C, -0xB1, 0x67, 0x02, 0x6E, 0x40, 0xEA, 0x00, 0x68, -0x08, 0xF5, 0x08, 0x6C, 0xFF, 0x6D, 0x80, 0x18, -0x24, 0x39, 0x86, 0x72, 0x07, 0x61, 0x30, 0xF0, -0x20, 0x69, 0x00, 0x6B, 0x6F, 0xF1, 0x0E, 0x49, -0x04, 0xD3, 0x1E, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF3, 0x0C, 0x4B, 0xFF, 0x6A, 0x30, 0xF0, -0x20, 0x69, 0x01, 0x48, 0xA0, 0x9B, 0x4C, 0xE8, -0xC0, 0xF3, 0x44, 0x99, 0xA8, 0xF1, 0x18, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF3, 0x0C, 0x4B, 0xC0, 0xF3, 0x44, 0x99, -0xA0, 0x9B, 0xA8, 0xF1, 0x18, 0x6C, 0x02, 0x6E, -0x40, 0xEA, 0x64, 0x70, 0xD5, 0x61, 0xDB, 0x17, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0xA8, 0xF1, 0x14, 0x6C, 0x04, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xA9, 0xC0, 0xF3, 0x44, 0x98, -0xA8, 0xF1, 0x14, 0x6C, 0xE1, 0xF7, 0x18, 0x6D, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, -0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, -0xA8, 0xF1, 0x10, 0x6C, 0x02, 0x49, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x14, 0x6C, -0x04, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x04, 0x92, -0x01, 0x4A, 0x0F, 0x72, 0x04, 0xD2, 0xD8, 0x61, -0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x14, 0x6C, -0x04, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF3, 0x0C, 0x4B, 0xC0, 0xF3, -0x44, 0x98, 0xA0, 0x9B, 0xC8, 0xF1, 0x14, 0x69, -0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF3, 0x0C, 0x4B, 0xC0, 0xF3, -0x44, 0x98, 0xA0, 0x9B, 0x91, 0x67, 0x02, 0x6E, -0x40, 0xEA, 0x00, 0x68, 0x28, 0xF5, 0x14, 0x6C, -0xFF, 0x6D, 0x80, 0x18, 0x24, 0x39, 0x86, 0x72, -0x07, 0x61, 0x30, 0xF0, 0x20, 0x69, 0x00, 0x6A, -0x8F, 0xF1, 0x0C, 0x49, 0x04, 0xD2, 0x1E, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0x0C, 0x4B, -0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x69, 0x01, 0x48, -0xA0, 0x9B, 0x4C, 0xE8, 0xC0, 0xF3, 0x44, 0x99, -0xC8, 0xF1, 0x14, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0x0C, 0x4B, -0xC0, 0xF3, 0x44, 0x99, 0xA0, 0x9B, 0xC8, 0xF1, -0x14, 0x6C, 0x02, 0x6E, 0x40, 0xEA, 0x64, 0x70, -0xD5, 0x61, 0xDB, 0x17, 0x30, 0xF0, 0x20, 0x68, -0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x10, 0x6C, -0x04, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xA9, -0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x10, 0x6C, -0xE1, 0xF7, 0x18, 0x6D, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF3, 0xB4, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x04, 0x96, 0xC8, 0xF1, 0x0C, 0x6C, -0x02, 0x49, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xC8, 0xF1, 0x10, 0x6C, 0x04, 0x6D, 0x01, 0x6E, -0x40, 0xEA, 0x04, 0x92, 0x01, 0x4A, 0x0F, 0x72, -0x04, 0xD2, 0xD8, 0x61, 0xC0, 0xF3, 0x44, 0x98, -0xC8, 0xF1, 0x10, 0x6C, 0x04, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, -0x2C, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, -0x18, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0xC8, 0xF1, -0x14, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xA8, 0xF1, 0x14, 0x6C, 0x01, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xC8, 0xF1, 0x10, 0x6C, 0x01, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, -0x34, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x28, 0xF1, -0x10, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x07, 0x96, 0x01, 0x6D, 0x63, 0xF0, -0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x06, 0x96, 0x01, 0x6D, 0x68, 0xF1, -0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF3, 0x24, 0x9A, 0xC0, 0xF3, -0x44, 0x98, 0xA3, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xC3, 0xF0, 0x0C, 0x6C, 0xB1, 0x67, 0x01, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x0C, 0x6C, -0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x05, 0x96, 0x01, 0x6D, 0xA1, 0xF1, -0x14, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x80, 0x18, -0x25, 0x16, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xE3, 0xF7, 0x18, 0x69, -0xB1, 0x67, 0x05, 0xF0, 0x10, 0x6C, 0x80, 0x18, -0x24, 0x39, 0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6B, -0x46, 0xF5, 0x18, 0x48, 0x6C, 0xEA, 0xB1, 0x67, -0x25, 0xF0, 0x1C, 0x6C, 0x48, 0xF4, 0x52, 0xC8, -0x80, 0x18, 0x24, 0x39, 0xFF, 0x6B, 0x6C, 0xEA, -0xB1, 0x67, 0x08, 0xF5, 0x10, 0x6C, 0x48, 0xF4, -0x54, 0xC8, 0x80, 0x18, 0x24, 0x39, 0xFF, 0x6B, -0x6C, 0xEA, 0xB1, 0x67, 0x28, 0xF5, 0x1C, 0x6C, -0x48, 0xF4, 0x56, 0xC8, 0x80, 0x18, 0x24, 0x39, -0xFF, 0x6B, 0x6C, 0xEA, 0x48, 0xF4, 0x58, 0xC8, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x82, 0xF2, 0x70, 0xA2, 0x00, 0xF1, 0x0B, 0x23, -0x00, 0x68, 0x82, 0xF2, 0x10, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF3, 0xB0, 0x9A, 0x05, 0xF0, -0x08, 0x6C, 0x80, 0x18, 0x24, 0x39, 0xFF, 0xF7, -0x1F, 0x72, 0x07, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xC8, 0xF3, 0x18, 0xC2, -0xF6, 0x10, 0x01, 0x69, 0x2B, 0xE9, 0x01, 0x6B, -0xB1, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF0, -0x00, 0x6C, 0x2F, 0xF1, 0x70, 0xC2, 0x80, 0x18, -0x24, 0x39, 0xB1, 0x67, 0x68, 0xF1, 0x00, 0x6C, -0x07, 0xD2, 0x80, 0x18, 0x24, 0x39, 0xB1, 0x67, -0xA1, 0xF1, 0x14, 0x6C, 0x30, 0xF0, 0x20, 0x68, -0x06, 0xD2, 0x80, 0x18, 0x24, 0x39, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF3, 0xC0, 0x9B, 0x05, 0xD2, -0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0xA1, 0xF1, -0x14, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0xB4, 0x9B, -0x23, 0xF0, 0x10, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x83, 0xF3, 0xA8, 0x9B, 0x63, 0xF0, 0x00, 0x6C, -0x3C, 0x6E, 0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, -0x2F, 0xF1, 0x12, 0x48, 0x00, 0x69, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, -0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, 0xD1, 0x67, -0xA3, 0xF0, 0x10, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF3, 0xB8, 0x9A, 0x05, 0xF0, -0x10, 0x6C, 0x01, 0x49, 0x80, 0x18, 0x24, 0x39, -0x0F, 0x71, 0x40, 0xC8, 0x02, 0x48, 0xE7, 0x61, -0x30, 0xF0, 0x20, 0x68, 0x00, 0x6A, 0x4F, 0xF1, -0x10, 0x48, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x69, 0x83, 0xF3, 0xB4, 0x9B, -0xC0, 0xF3, 0x44, 0x99, 0x04, 0x96, 0xC3, 0xF0, -0x0C, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF3, 0xB8, 0x9A, 0x25, 0xF0, 0x1C, 0x6C, -0x80, 0x18, 0x24, 0x39, 0x40, 0xC8, 0x04, 0x92, -0x02, 0x48, 0x01, 0x4A, 0x0F, 0x72, 0x04, 0xD2, -0xE5, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x99, 0xA3, 0xF0, 0xB4, 0x9B, 0x28, 0xF1, -0x10, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, 0x83, 0xF3, -0xA8, 0x9B, 0x68, 0xF1, 0x00, 0x6C, 0x3C, 0x6E, -0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, 0x6F, 0xF1, -0x0E, 0x48, 0x00, 0x69, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, 0xB4, 0x9B, -0xC0, 0xF3, 0x44, 0x9A, 0xD1, 0x67, 0xA8, 0xF1, -0x10, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF3, 0xB8, 0x9A, 0x08, 0xF5, 0x10, 0x6C, -0x01, 0x49, 0x80, 0x18, 0x24, 0x39, 0x0F, 0x71, -0x40, 0xC8, 0x02, 0x48, 0xE7, 0x61, 0x30, 0xF0, -0x20, 0x69, 0x00, 0x6A, 0x8F, 0xF1, 0x0C, 0x49, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x68, 0x83, 0xF3, 0xB4, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x04, 0x96, 0xC8, 0xF1, 0x0C, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, -0xB8, 0x9A, 0x28, 0xF5, 0x1C, 0x6C, 0x80, 0x18, -0x24, 0x39, 0x40, 0xC9, 0x04, 0x92, 0x02, 0x49, -0x01, 0x4A, 0x0F, 0x72, 0x04, 0xD2, 0xE5, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x34, 0x9A, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xB1, 0x67, 0x28, 0xF1, 0x10, 0x6C, -0x01, 0x6E, 0x40, 0xEA, 0x01, 0x69, 0xC0, 0xF3, -0x44, 0x98, 0x07, 0x96, 0x2B, 0xE9, 0x63, 0xF0, -0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x06, 0x96, 0x68, 0xF1, 0x00, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x05, 0x96, 0xA1, 0xF1, 0x14, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x80, 0x18, 0x3F, 0x1A, 0x0B, 0x97, +0xFF, 0x6A, 0x4C, 0xEC, 0x05, 0x67, 0x01, 0x74, +0x4C, 0xE8, 0x80, 0xF0, 0x19, 0x60, 0x04, 0x24, +0x04, 0x5C, 0xA0, 0xF0, 0x10, 0x60, 0xAA, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0x47, 0xF3, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x30, 0xF0, 0x20, 0x6D, 0x47, 0xF3, 0x7C, 0xDA, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xEB, 0xF0, 0x08, 0x4C, 0xEB, 0xF0, 0x00, 0x4B, +0xCB, 0xF0, 0x1C, 0x4A, 0xCA, 0xF7, 0x18, 0x4D, +0x00, 0x69, 0xC0, 0x9C, 0xA3, 0xF5, 0x08, 0x41, +0x04, 0x30, 0xC2, 0xDC, 0xC0, 0xAB, 0x05, 0xD5, +0xE5, 0x67, 0xC2, 0xCB, 0xC0, 0xA2, 0xC2, 0xC2, +0x30, 0xF0, 0x20, 0x6E, 0x63, 0xF5, 0x18, 0x4E, +0x01, 0xE6, 0x00, 0x6E, 0x04, 0xD6, 0xA0, 0xA0, +0x24, 0x36, 0xA4, 0xC0, 0x04, 0x95, 0xD9, 0xE5, +0xA6, 0x67, 0xA0, 0xF3, 0x05, 0x4D, 0xB0, 0x35, +0x06, 0xD5, 0x07, 0xD6, 0x30, 0xF0, 0x20, 0x6E, +0xA6, 0x67, 0x06, 0x96, 0x63, 0xF5, 0x18, 0x4D, +0x1D, 0x65, 0xD5, 0xE5, 0x07, 0x96, 0x06, 0xD5, +0xB8, 0x67, 0xA0, 0xF3, 0x0D, 0x4E, 0xD0, 0x36, +0xD9, 0xE5, 0x06, 0x95, 0x07, 0xD2, 0x40, 0xAD, +0x40, 0xF0, 0x40, 0xCD, 0x40, 0xAE, 0x02, 0x4D, +0x40, 0xF0, 0x40, 0xCE, 0x05, 0x92, 0x02, 0x4E, +0x4A, 0xED, 0xF5, 0x61, 0x04, 0x95, 0x05, 0x96, +0x07, 0x92, 0x01, 0x4D, 0x10, 0x4E, 0x02, 0x75, +0x04, 0xD5, 0x01, 0x48, 0x05, 0xD6, 0xCF, 0x61, +0x01, 0x49, 0x02, 0x6E, 0xA7, 0x67, 0x2E, 0xEE, +0x04, 0x4C, 0x02, 0x4B, 0x01, 0x4A, 0x20, 0x4D, +0xB4, 0x2E, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, +0x18, 0x4A, 0x00, 0x6B, 0xC7, 0xF5, 0x7D, 0xC2, +0xC7, 0xF5, 0x7E, 0xC2, 0xC7, 0xF5, 0x71, 0xC2, +0xC7, 0xF5, 0x72, 0xC2, 0xC7, 0xF5, 0x73, 0xC2, +0x67, 0xF3, 0x65, 0xC2, 0xC7, 0xF5, 0x7F, 0xC2, +0xE7, 0xF5, 0x60, 0xC2, 0xC7, 0xF5, 0x74, 0xC2, +0xC7, 0xF5, 0x75, 0xC2, 0xC7, 0xF5, 0x76, 0xC2, +0x67, 0xF3, 0x60, 0x9A, 0x01, 0x6C, 0x67, 0xF3, +0xC4, 0xC2, 0x67, 0xF3, 0xC8, 0xCA, 0x47, 0xF3, +0x90, 0xC2, 0x47, 0xF3, 0x91, 0xC2, 0x67, 0xF3, +0xCA, 0xCA, 0x47, 0xF3, 0x92, 0xC2, 0x47, 0xF3, +0x93, 0xC2, 0x47, 0xF3, 0x78, 0xDA, 0x1B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, 0xF4, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xB0, 0x67, 0xCA, 0xF4, +0x18, 0x4C, 0x58, 0x6E, 0x80, 0x18, 0x3E, 0x45, +0xC1, 0xF6, 0x1C, 0x48, 0x30, 0xF0, 0x20, 0x6B, +0x08, 0x30, 0x63, 0xF5, 0x18, 0x4B, 0x6D, 0xE0, +0x40, 0xDB, 0x05, 0x10, 0xFE, 0x4C, 0x4C, 0xEC, +0xB0, 0x67, 0x80, 0x18, 0xF6, 0x01, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0x69, 0x00, 0x6A, 0x8C, 0xE9, 0x06, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x0C, 0x4A, -0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x6E, 0xF6, -0x08, 0x48, 0x00, 0x6B, 0x90, 0x67, 0xB1, 0x67, -0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xD3, 0x4E, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x0C, 0x4A, -0xE0, 0x9A, 0x00, 0x6B, 0x90, 0x67, 0xB1, 0x67, -0x08, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xD3, 0x4E, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x0C, 0x4B, -0xE0, 0x9B, 0x90, 0x67, 0xB1, 0x67, 0x08, 0x6E, -0x80, 0x18, 0x8E, 0x4E, 0x0B, 0x22, 0x06, 0x92, -0x01, 0x4A, 0x06, 0xD2, 0x06, 0x93, 0xFF, 0xF7, -0x1F, 0x6A, 0x4C, 0xEB, 0x2E, 0xF5, 0x10, 0x73, -0x06, 0xD3, 0xCE, 0x61, 0x0B, 0x97, 0x0A, 0x91, -0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xF5, 0x63, 0x15, 0x62, 0x14, 0xD1, 0x13, 0xD0, -0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xED, 0x30, 0xF0, -0x20, 0x6A, 0x62, 0xF5, 0x14, 0x4A, 0x64, 0x67, -0x06, 0xD2, 0x62, 0xF1, 0x00, 0x4B, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x68, 0x33, -0x6D, 0xE2, 0x04, 0x4B, 0x08, 0xD3, 0x64, 0x67, -0xA1, 0xF0, 0x14, 0x4B, 0x6C, 0x33, 0x69, 0xE2, -0x04, 0x4A, 0x00, 0x6B, 0x0F, 0xD4, 0x11, 0xD5, -0x0A, 0xD2, 0x07, 0xD3, 0x07, 0x95, 0x11, 0x92, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xAA, 0xF7, 0x4D, 0xA2, 0x18, 0x2A, 0x01, 0x6C, +0x00, 0x6D, 0x80, 0x18, 0x3A, 0x02, 0x02, 0x6C, +0x00, 0x6D, 0x80, 0x18, 0x3A, 0x02, 0x03, 0x6C, +0x00, 0x6D, 0x80, 0x18, 0x3A, 0x02, 0x01, 0x6C, +0xA4, 0x67, 0x80, 0x18, 0x3A, 0x02, 0x02, 0x6C, +0x01, 0x6D, 0x80, 0x18, 0x3A, 0x02, 0x03, 0x6C, +0x01, 0x6D, 0x80, 0x18, 0x3A, 0x02, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x69, 0x00, 0x6A, +0x8C, 0xE9, 0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF3, 0x14, 0x4A, 0xE0, 0x9A, 0x30, 0xF0, +0x20, 0x68, 0xCA, 0xF4, 0x18, 0x48, 0x00, 0x6B, +0x90, 0x67, 0xB1, 0x67, 0xEF, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF3, 0x14, 0x4A, 0xE0, 0x9A, 0x00, 0x6B, +0x90, 0x67, 0xB1, 0x67, 0x08, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF3, 0x14, 0x4B, 0xE0, 0x9B, 0x90, 0x67, +0xB1, 0x67, 0x08, 0x6E, 0x80, 0x18, 0x3E, 0x45, +0x0B, 0x22, 0x06, 0x92, 0x01, 0x4A, 0x06, 0xD2, +0x06, 0x93, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEB, +0x2E, 0xF5, 0x10, 0x73, 0x06, 0xD3, 0xCE, 0x61, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF5, 0x63, 0x15, 0x62, +0x14, 0xD1, 0x13, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, +0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF1, +0x00, 0x4A, 0x64, 0x67, 0x06, 0xD2, 0xC1, 0xF6, +0x14, 0x4B, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, +0x18, 0x4A, 0x68, 0x33, 0x6D, 0xE2, 0x08, 0xD3, +0x64, 0x67, 0x60, 0xF7, 0x0E, 0x4B, 0x6C, 0x33, +0x6D, 0xE2, 0x0A, 0xD3, 0x00, 0x6B, 0x0F, 0xD4, +0x11, 0xD5, 0x07, 0xD3, 0x07, 0x95, 0x11, 0x92, 0xFF, 0x69, 0xAC, 0xE9, 0x18, 0x2A, 0x30, 0xF0, -0x20, 0x68, 0x6E, 0xF6, 0x08, 0x48, 0x01, 0x6A, +0x20, 0x68, 0xCA, 0xF4, 0x18, 0x48, 0x01, 0x6A, 0x90, 0x67, 0xB1, 0x67, 0xDF, 0x6E, 0x10, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, 0x0A, 0x93, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x0A, 0x93, 0x90, 0x67, 0xB1, 0x67, 0x40, 0x9B, 0x58, 0x6E, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, -0xEC, 0x9A, 0x80, 0x18, 0xD3, 0x4E, 0x07, 0x95, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x48, 0x9A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, +0xF4, 0x9A, 0x80, 0x18, 0x83, 0x45, 0x07, 0x95, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, 0x4C, 0x9A, 0xA4, 0x35, 0x00, 0x69, 0x4D, 0xED, 0x0E, 0xD5, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x0E, 0x96, 0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, 0x0C, 0x6C, 0xAB, 0xED, 0x07, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF3, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x62, 0xF3, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF3, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x62, 0xF3, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC3, 0xF3, 0x0C, 0x6C, 0xAB, 0xED, @@ -66282,252 +45519,356 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x07, 0x10, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF3, 0xB0, 0x9B, 0xC0, 0xF3, +0x20, 0x6A, 0xE2, 0xF3, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, 0x10, 0x6E, 0x40, 0xEA, 0x0F, 0x95, 0x07, 0x93, 0x30, 0xF0, 0x20, 0x6A, 0xA4, 0x34, 0x71, 0xE4, 0x84, 0x34, -0x91, 0xE1, 0x40, 0xF4, 0xA8, 0x44, 0x83, 0xF3, -0x5C, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, -0x10, 0x4C, 0x46, 0xF5, 0x18, 0x4B, 0xB0, 0x35, -0x90, 0x34, 0xB5, 0xE3, 0x8D, 0xE3, 0x46, 0xE9, -0x04, 0x4D, 0x04, 0x4B, 0x0D, 0xD5, 0x0C, 0xD3, -0xA3, 0x42, 0x61, 0x42, 0x23, 0x4A, 0x09, 0xD5, -0x0B, 0xD3, 0x10, 0xD2, 0x0D, 0x95, 0x09, 0x93, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xAD, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x6D, 0xC0, 0x36, 0xC4, 0x36, -0xD9, 0xE3, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x0C, 0x95, 0x0B, 0x93, 0xC0, 0xF3, -0x44, 0x98, 0xC0, 0xAD, 0x01, 0x6D, 0xAB, 0xED, +0x91, 0xE1, 0x02, 0xF4, 0x48, 0x9A, 0xA0, 0xF3, +0xA5, 0x44, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, +0x18, 0x4B, 0xB0, 0x35, 0xA0, 0xF3, 0x0D, 0x4C, +0x46, 0xE9, 0xB5, 0xE3, 0x90, 0x34, 0x91, 0xE3, +0x0D, 0xD5, 0x61, 0x42, 0xA3, 0x42, 0x23, 0x4A, +0x09, 0xD5, 0x0C, 0xD4, 0x0B, 0xD3, 0x10, 0xD2, +0x0D, 0x95, 0x09, 0x93, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xAD, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC0, 0x36, 0xC4, 0x36, 0xD9, 0xE3, 0xC3, 0xF3, -0x18, 0x6C, 0x40, 0xEA, 0x0D, 0x95, 0x0C, 0x93, -0x09, 0x92, 0x02, 0x4D, 0x02, 0x4B, 0x0D, 0xD5, -0x0C, 0xD3, 0x0B, 0x95, 0x10, 0x93, 0x04, 0x4A, -0x04, 0x4D, 0x6A, 0xEA, 0x09, 0xD2, 0x0B, 0xD5, -0xD5, 0x61, 0xFF, 0x6A, 0x2C, 0xEA, 0x08, 0x2A, -0x08, 0x95, 0x06, 0x93, 0xC0, 0xF3, 0x44, 0x98, -0xC0, 0xA5, 0x80, 0xAB, 0x01, 0x6D, 0x08, 0x10, -0x06, 0x93, 0x08, 0x95, 0xC0, 0xF3, 0x44, 0x98, -0x80, 0xAB, 0xC1, 0xA5, 0x00, 0xF4, 0x00, 0x6D, -0xCF, 0xEE, 0x01, 0x49, 0x40, 0xEA, 0x02, 0x71, -0x5F, 0xF7, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x68, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC3, 0xF3, -0x18, 0x6C, 0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x06, 0xF0, 0x00, 0x6D, -0x03, 0xF3, 0x0C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x07, 0x95, 0x06, 0x92, 0x08, 0x93, 0x01, 0x4D, -0x07, 0xD5, 0x02, 0x4A, 0x0A, 0x95, 0x06, 0xD2, -0x07, 0x92, 0x02, 0x4B, 0x04, 0x4D, 0x02, 0x72, -0x08, 0xD3, 0x0A, 0xD5, 0x1F, 0xF7, 0x02, 0x61, -0x15, 0x97, 0x14, 0x91, 0x13, 0x90, 0x0B, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0xCF, 0xF1, 0x41, 0xA2, -0x05, 0x22, 0x00, 0x6C, 0x01, 0x6D, 0x80, 0x18, -0x64, 0x16, 0x04, 0x10, 0x00, 0x6C, 0x01, 0x6D, -0x80, 0x18, 0x06, 0x1B, 0x05, 0x97, 0x03, 0x63, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x0C, 0x95, +0x0B, 0x93, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0xAD, +0x01, 0x6D, 0xAB, 0xED, 0xC0, 0x36, 0xC4, 0x36, +0xD9, 0xE3, 0xC3, 0xF3, 0x18, 0x6C, 0x40, 0xEA, +0x0D, 0x95, 0x0C, 0x93, 0x09, 0x92, 0x02, 0x4D, +0x02, 0x4B, 0x0D, 0xD5, 0x0C, 0xD3, 0x0B, 0x95, +0x10, 0x93, 0x04, 0x4A, 0x04, 0x4D, 0x6A, 0xEA, +0x09, 0xD2, 0x0B, 0xD5, 0xD5, 0x61, 0xFF, 0x6A, +0x2C, 0xEA, 0x08, 0x2A, 0x08, 0x95, 0x06, 0x93, +0xC0, 0xF3, 0x44, 0x98, 0xC0, 0xA5, 0x80, 0xAB, +0x01, 0x6D, 0x08, 0x10, 0x06, 0x93, 0x08, 0x95, +0xC0, 0xF3, 0x44, 0x98, 0x80, 0xAB, 0xC1, 0xA5, +0x00, 0xF4, 0x00, 0x6D, 0xCF, 0xEE, 0x01, 0x49, +0x40, 0xEA, 0x02, 0x71, 0x5F, 0xF7, 0x0C, 0x61, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x06, 0xF0, 0x00, 0x6D, 0x03, 0xF3, 0x0C, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x07, 0x95, 0x06, 0x92, +0x08, 0x93, 0x01, 0x4D, 0x07, 0xD5, 0x02, 0x4A, +0x0A, 0x95, 0x06, 0xD2, 0x07, 0x92, 0x02, 0x4B, +0x04, 0x4D, 0x02, 0x72, 0x08, 0xD3, 0x0A, 0xD5, +0x1F, 0xF7, 0x04, 0x61, 0x15, 0x97, 0x14, 0x91, +0x13, 0x90, 0x0B, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, +0x4C, 0xEC, 0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF5, 0x18, 0x4A, 0x00, 0x6B, 0xE7, 0xF5, +0x6C, 0xC2, 0x1A, 0x2C, 0x27, 0xF2, 0x6A, 0xA2, +0x17, 0x23, 0x67, 0xF3, 0x60, 0x9A, 0x47, 0xF3, +0x98, 0x9A, 0x00, 0x68, 0x6E, 0xEC, 0x05, 0x24, +0x47, 0xF3, 0x5C, 0x9A, 0x4E, 0xEB, 0x0C, 0x2B, +0x01, 0x68, 0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x90, 0x67, 0x6B, 0xF3, 0x64, 0xC2, 0x80, 0x18, +0xCD, 0x02, 0x90, 0x67, 0x80, 0x18, 0x4E, 0x40, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF3, 0x44, 0xA2, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xAA, 0xF7, 0x4D, 0xA2, 0x05, 0x22, 0x00, 0x6C, +0x01, 0x6D, 0x80, 0x18, 0x5E, 0x03, 0x04, 0x10, +0x00, 0x6C, 0x01, 0x6D, 0x80, 0x18, 0xCD, 0x02, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x00, 0x6A, 0x7D, 0x67, 0x4C, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF3, 0x30, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF3, 0x14, 0x4A, 0xE0, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0xCA, 0xF4, 0x18, 0x48, +0x00, 0x6D, 0x90, 0x67, 0xC5, 0x67, 0x04, 0xD1, +0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF3, 0x14, 0x4B, 0xE0, 0x9B, 0x90, 0x67, +0x01, 0x6D, 0x00, 0x6E, 0x30, 0xF0, 0x20, 0x68, +0x04, 0xD1, 0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, +0x20, 0x6B, 0x02, 0xF4, 0xAC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xE1, 0xF0, 0x18, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xE1, 0xF0, 0x1C, 0x6C, 0xAB, 0xED, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x07, 0x6D, +0xC5, 0x67, 0x83, 0xF1, 0x0C, 0x6C, 0x40, 0xEA, +0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x48, 0x9A, 0xA1, 0xF3, 0x18, 0x6F, +0xA1, 0xF7, 0x00, 0x6C, 0x08, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, +0x08, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x02, 0xF4, 0xB0, 0x9B, 0x01, 0xF2, 0x04, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF3, 0x70, 0x9A, 0xFF, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0xFE, 0x6C, 0x4C, 0xEC, 0x80, 0xC3, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF4, +0x54, 0x9A, 0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0x09, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF4, +0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF4, +0x58, 0x9A, 0x60, 0xDA, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, 0x34, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0xCA, 0xF4, 0x18, 0x48, +0x90, 0x67, 0xF1, 0x67, 0x01, 0xF2, 0x00, 0x6A, +0x00, 0x6D, 0xB8, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x83, 0x45, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF4, +0x40, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, +0xB8, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, -0x0A, 0xD1, 0x09, 0xD0, 0x00, 0x6A, 0x7D, 0x67, -0x4C, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, -0x38, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, -0x0C, 0x4A, 0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x68, -0x6E, 0xF6, 0x08, 0x48, 0x00, 0x6D, 0x90, 0x67, -0xC5, 0x67, 0x04, 0xD1, 0x80, 0x18, 0xD3, 0x4E, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x0C, 0x4B, -0xE0, 0x9B, 0x90, 0x67, 0x01, 0x6D, 0x00, 0x6E, -0x30, 0xF0, 0x20, 0x68, 0x04, 0xD1, 0x80, 0x18, -0xD3, 0x4E, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, -0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xE1, 0xF0, -0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x6D, 0xE1, 0xF0, 0x1C, 0x6C, -0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x07, 0x6D, 0xC5, 0x67, 0x83, 0xF1, -0x0C, 0x6C, 0x40, 0xEA, 0x06, 0x02, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, -0xA1, 0xF3, 0x18, 0x6F, 0xA1, 0xF7, 0x00, 0x6C, -0x08, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0xF0, 0x08, 0x6C, 0xFF, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0xA4, 0x9B, -0x01, 0xF2, 0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x6C, 0x9A, -0xFF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0xFE, 0x6C, -0x4C, 0xEC, 0x80, 0xC3, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF0, 0x50, 0x9A, 0x60, 0xA2, -0x01, 0x6A, 0x6C, 0xEA, 0x09, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF3, 0x6C, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF3, 0x48, 0x9A, 0x60, 0xDA, -0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0x2C, 0x9A, 0x30, 0xF0, 0x20, 0x68, -0x6E, 0xF6, 0x08, 0x48, 0x90, 0x67, 0xF1, 0x67, -0x01, 0xF2, 0x00, 0x6A, 0x00, 0x6D, 0xB8, 0x6E, -0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF3, 0x50, 0x9A, 0x90, 0x67, -0xF1, 0x67, 0x00, 0x6D, 0xB8, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0xD3, 0x4E, 0x09, 0x97, 0x08, 0x91, -0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x0E, 0xD6, 0x0F, 0xD7, 0x04, 0xD7, 0xFF, 0x68, -0xFF, 0xF7, 0x1F, 0x69, 0x0E, 0x97, 0x8C, 0xE8, -0xAC, 0xE9, 0x30, 0xF0, 0x20, 0x6C, 0x6E, 0xF6, -0x08, 0x4C, 0xB0, 0x67, 0xD1, 0x67, 0x80, 0x18, -0xD3, 0x4E, 0x00, 0x6A, 0x07, 0xD2, 0x30, 0xF0, -0x20, 0x6B, 0x0E, 0x97, 0x6E, 0xF6, 0x08, 0x4B, -0x83, 0x67, 0xB0, 0x67, 0xD1, 0x67, 0x06, 0xD3, -0x80, 0x18, 0x8E, 0x4E, 0x0F, 0x93, 0x6E, 0xEA, -0x1E, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x0F, 0x92, -0x06, 0x94, 0x0E, 0x97, 0xB0, 0x67, 0xD1, 0x67, -0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, 0x07, 0x93, -0x01, 0x4B, 0xE0, 0xF3, 0x08, 0x73, 0x07, 0xD3, -0xDE, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x44, 0x9A, 0xA0, 0xF1, 0x00, 0x6C, 0x1F, 0xF7, -0x00, 0x6D, 0x0A, 0x6E, 0x40, 0xEA, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x68, 0xFF, 0xF7, -0x1F, 0x69, 0x63, 0xF3, 0xEC, 0x9A, 0x8C, 0xE8, -0xAC, 0xE9, 0x30, 0xF0, 0x20, 0x6C, 0x0E, 0xD6, -0x04, 0xD6, 0x6E, 0xF6, 0x08, 0x4C, 0xB0, 0x67, -0xD1, 0x67, 0x80, 0x18, 0xD3, 0x4E, 0x00, 0x6A, -0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, -0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xE0, 0x9A, -0x6E, 0xF6, 0x08, 0x4B, 0x83, 0x67, 0xB0, 0x67, -0xD1, 0x67, 0x06, 0xD3, 0x80, 0x18, 0x8E, 0x4E, -0x0E, 0x93, 0x6E, 0xEA, 0x18, 0x22, 0x30, 0xF0, +0x0A, 0xD1, 0x09, 0xD0, 0x0E, 0xD6, 0x0F, 0xD7, +0x04, 0xD7, 0xFF, 0x68, 0xFF, 0xF7, 0x1F, 0x69, +0x0E, 0x97, 0x8C, 0xE8, 0xAC, 0xE9, 0x30, 0xF0, +0x20, 0x6C, 0xCA, 0xF4, 0x18, 0x4C, 0xB0, 0x67, +0xD1, 0x67, 0x80, 0x18, 0x83, 0x45, 0x00, 0x6A, +0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6B, 0x0E, 0x97, +0xCA, 0xF4, 0x18, 0x4B, 0x83, 0x67, 0xB0, 0x67, +0xD1, 0x67, 0x06, 0xD3, 0x80, 0x18, 0x3E, 0x45, +0x0F, 0x93, 0x6E, 0xEA, 0x1E, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, -0x0C, 0x4B, 0x0E, 0x92, 0x06, 0x94, 0xE0, 0x9B, +0x40, 0xEA, 0x0F, 0x92, 0x06, 0x94, 0x0E, 0x97, 0xB0, 0x67, 0xD1, 0x67, 0x04, 0xD2, 0x80, 0x18, -0xD3, 0x4E, 0x07, 0x92, 0x01, 0x4A, 0xE0, 0xF3, -0x08, 0x72, 0x07, 0xD2, 0xD6, 0x61, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x00, 0x6A, 0x0C, 0xD4, 0x05, 0x67, 0x06, 0xD2, -0x06, 0x92, 0xFF, 0x6B, 0x30, 0xF0, 0x20, 0x69, -0x6C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, -0x0C, 0x4B, 0x07, 0xD2, 0xE0, 0x9B, 0x07, 0x95, -0x6E, 0xF6, 0x08, 0x49, 0x00, 0x6A, 0x91, 0x67, -0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, -0x40, 0x98, 0x06, 0x94, 0x11, 0x6E, 0xCB, 0xEE, -0x4C, 0xEE, 0xDF, 0x6D, 0x80, 0x18, 0x1A, 0x1C, -0x0C, 0x92, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, -0x0C, 0x4B, 0xC1, 0xA2, 0xE0, 0x9B, 0x42, 0x98, -0x07, 0x95, 0x91, 0x67, 0x04, 0xD2, 0x80, 0x18, -0xD3, 0x4E, 0x0C, 0x92, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF3, 0x0C, 0x4B, 0xC2, 0xA2, 0x07, 0x95, -0x44, 0x98, 0xE0, 0x9B, 0x91, 0x67, 0x04, 0xD2, -0x80, 0x18, 0xD3, 0x4E, 0x06, 0x92, 0x04, 0x48, -0x01, 0x4A, 0x02, 0x72, 0x06, 0xD2, 0xC4, 0x61, -0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6C, 0x6E, 0xF6, 0x08, 0x4C, -0x80, 0x18, 0xB5, 0x31, 0x05, 0x97, 0x01, 0x6A, -0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x01, 0x6B, 0x6B, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0x0A, 0xD4, 0xAF, 0xF1, -0x76, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, -0x28, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x0A, 0x93, +0x83, 0x45, 0x07, 0x93, 0x01, 0x4B, 0xE0, 0xF3, +0x08, 0x73, 0x07, 0xD3, 0xDE, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0xA0, 0xF1, +0x00, 0x6C, 0x1F, 0xF7, 0x00, 0x6D, 0x0A, 0x6E, +0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xFF, 0x68, 0xFF, 0xF7, 0x1F, 0x69, 0xE2, 0xF3, +0xF4, 0x9A, 0x8C, 0xE8, 0xAC, 0xE9, 0x30, 0xF0, +0x20, 0x6C, 0x0E, 0xD6, 0x04, 0xD6, 0xCA, 0xF4, +0x18, 0x4C, 0xB0, 0x67, 0xD1, 0x67, 0x80, 0x18, +0x83, 0x45, 0x00, 0x6A, 0x07, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF3, 0x14, 0x4A, 0x30, 0xF0, +0x20, 0x6B, 0xE0, 0x9A, 0xCA, 0xF4, 0x18, 0x4B, +0x83, 0x67, 0xB0, 0x67, 0xD1, 0x67, 0x06, 0xD3, +0x80, 0x18, 0x3E, 0x45, 0x0E, 0x93, 0x6E, 0xEA, +0x18, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF3, 0x14, 0x4B, 0x0E, 0x92, +0x06, 0x94, 0xE0, 0x9B, 0xB0, 0x67, 0xD1, 0x67, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x07, 0x92, +0x01, 0x4A, 0xE0, 0xF3, 0x08, 0x72, 0x07, 0xD2, +0xD6, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x00, 0x6A, 0x0C, 0xD4, +0x05, 0x67, 0x06, 0xD2, 0x06, 0x92, 0xFF, 0x6B, +0x30, 0xF0, 0x20, 0x69, 0x6C, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF3, 0x14, 0x4B, 0x07, 0xD2, +0xE0, 0x9B, 0x07, 0x95, 0xCA, 0xF4, 0x18, 0x49, +0x00, 0x6A, 0x91, 0x67, 0xEF, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x83, 0x45, 0x40, 0x98, 0x06, 0x94, +0x11, 0x6E, 0xCB, 0xEE, 0x4C, 0xEE, 0xDF, 0x6D, +0x80, 0x18, 0xF7, 0x03, 0x0C, 0x92, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF3, 0x14, 0x4B, 0xC1, 0xA2, +0xE0, 0x9B, 0x42, 0x98, 0x07, 0x95, 0x91, 0x67, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x0C, 0x92, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, 0x14, 0x4B, +0xC2, 0xA2, 0x07, 0x95, 0x44, 0x98, 0xE0, 0x9B, +0x91, 0x67, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x06, 0x92, 0x04, 0x48, 0x01, 0x4A, 0x02, 0x72, +0x06, 0xD2, 0xC4, 0x61, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x01, 0x6B, 0x6B, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0x0A, 0xD4, 0xAA, 0xF7, 0x62, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF4, 0x2C, 0x9A, 0x30, 0xF0, +0x20, 0x68, 0x0A, 0x93, 0x80, 0xF2, 0x4C, 0x98, +0x30, 0xF0, 0x20, 0x6C, 0x35, 0xE3, 0x2B, 0xF3, +0x00, 0x4C, 0x08, 0x6E, 0x40, 0xEA, 0x0A, 0x95, 0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, 0x20, 0x6C, -0x35, 0xE3, 0x2F, 0xF5, 0x14, 0x4C, 0x08, 0x6E, -0x40, 0xEA, 0x0A, 0x95, 0x80, 0xF2, 0x4C, 0x98, -0x30, 0xF0, 0x20, 0x6C, 0x08, 0x4D, 0x35, 0xE5, -0x0F, 0xF3, 0x0C, 0x4C, 0x44, 0x6E, 0x40, 0xEA, -0x0A, 0x92, 0x30, 0xF0, 0x20, 0x6C, 0x4F, 0xF3, -0x10, 0x4C, 0x4C, 0x4A, 0x04, 0xD2, 0x04, 0x93, -0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, -0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, 0x20, 0x6C, -0x8F, 0xF3, 0x14, 0x4C, 0x44, 0x4A, 0x04, 0xD2, -0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, -0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, -0x20, 0x6C, 0xCF, 0xF3, 0x18, 0x4C, 0x44, 0x4A, +0x08, 0x4D, 0x35, 0xE5, 0xEB, 0xF0, 0x18, 0x4C, +0x44, 0x6E, 0x40, 0xEA, 0x0A, 0x92, 0x30, 0xF0, +0x20, 0x6C, 0x2B, 0xF1, 0x1C, 0x4C, 0x4C, 0x4A, 0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, -0x30, 0xF0, 0x20, 0x6C, 0x0F, 0xF4, 0x1C, 0x4C, +0x30, 0xF0, 0x20, 0x6C, 0x8B, 0xF1, 0x00, 0x4C, 0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, -0x04, 0x92, 0x30, 0xF0, 0x20, 0x6C, 0x6F, 0xF4, -0x00, 0x4C, 0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, +0x04, 0x92, 0x30, 0xF0, 0x20, 0x6C, 0xCB, 0xF1, +0x04, 0x4C, 0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, 0x20, 0x6C, -0xAF, 0xF4, 0x04, 0x4C, 0x44, 0x4A, 0x04, 0xD2, +0x0B, 0xF2, 0x08, 0x4C, 0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, -0x20, 0x6C, 0xEF, 0xF4, 0x08, 0x4C, 0x44, 0x4A, +0x20, 0x6C, 0x4B, 0xF2, 0x0C, 0x4C, 0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, -0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF3, 0xB8, 0x9B, 0x04, 0x93, -0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, 0x20, 0x6C, -0x4F, 0xF5, 0x0C, 0x4C, 0xB5, 0xE3, 0x10, 0x6E, -0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0xD1, -0x08, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF3, -0x60, 0xA2, 0x80, 0xF0, 0x1F, 0x23, 0x30, 0xF0, -0x20, 0x6C, 0xA3, 0xF0, 0x94, 0x9C, 0x00, 0x6B, -0x02, 0xF3, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x01, 0x6B, 0x30, 0xF0, -0x20, 0x6E, 0x30, 0xF0, 0x20, 0x6D, 0x68, 0xF4, -0x6F, 0xC2, 0x68, 0xF4, 0x94, 0xDA, 0x68, 0xF4, -0x6D, 0xC2, 0x68, 0xF4, 0x71, 0xC2, 0x68, 0xF4, -0x9C, 0xDA, 0x68, 0xF4, 0x70, 0xC2, 0x68, 0xF4, -0x98, 0xDA, 0x68, 0xF4, 0x6E, 0xC2, 0x68, 0xF4, -0x72, 0xC2, 0x88, 0xF4, 0x80, 0xDA, 0x2F, 0xF5, -0x14, 0x4E, 0x2F, 0xF3, 0x0E, 0x4D, 0x00, 0x6A, -0x00, 0x6B, 0x60, 0xDE, 0x30, 0xF0, 0x20, 0x6C, -0xF1, 0xF0, 0x6E, 0x42, 0x46, 0xF5, 0x18, 0x4C, -0x6C, 0x33, 0x6D, 0xE4, 0x04, 0x4B, 0x04, 0xD3, -0xF2, 0xF1, 0x6A, 0x42, 0x68, 0x33, 0x6D, 0xE4, -0x04, 0x4B, 0x03, 0xD3, 0x06, 0x6B, 0x78, 0xEA, -0x01, 0xD5, 0x00, 0x69, 0x05, 0x67, 0x12, 0xEB, -0x6D, 0xE4, 0x09, 0xF0, 0x05, 0x4B, 0x04, 0x95, -0x00, 0x6C, 0x80, 0xDD, 0x03, 0x95, 0x80, 0xCD, -0x44, 0x35, 0xB5, 0xE1, 0xE4, 0xF3, 0x08, 0x4D, -0x30, 0xF0, 0x20, 0x6C, 0xA4, 0x35, 0x46, 0xF5, -0x18, 0x4C, 0xB1, 0xE4, 0x04, 0x4C, 0x05, 0xD4, -0x01, 0x94, 0x00, 0x6D, 0x00, 0xD5, 0x02, 0xD4, -0x05, 0x95, 0x01, 0x6C, 0x22, 0x6F, 0x80, 0xC5, -0x00, 0x94, 0x30, 0xF0, 0x20, 0x6D, 0x46, 0xF5, -0x18, 0x4D, 0xF8, 0xEC, 0x44, 0x6C, 0x06, 0xD2, -0x12, 0xEF, 0x98, 0xE9, 0x12, 0xEC, 0x9D, 0xE7, -0x88, 0x6C, 0x98, 0xEA, 0x12, 0xEC, 0x9D, 0xE7, -0xF1, 0xE5, 0xFD, 0xE5, 0xA8, 0xF5, 0x14, 0x4C, -0xC8, 0xF6, 0x04, 0x4F, 0x02, 0x92, 0x00, 0x6D, -0xA0, 0xCC, 0x02, 0x4C, 0x4A, 0xEC, 0xA0, 0xCF, -0x02, 0x4F, 0xF8, 0x61, 0x00, 0x94, 0x06, 0x92, -0x01, 0x4C, 0x00, 0xD4, 0x05, 0x94, 0x01, 0x4C, -0x05, 0xD4, 0x02, 0x94, 0x22, 0x4C, 0x02, 0xD4, -0x00, 0x94, 0x02, 0x74, 0xD1, 0x61, 0xA0, 0xC3, -0xA1, 0xC3, 0xA2, 0xC3, 0x04, 0x95, 0x03, 0x94, -0x01, 0x49, 0x04, 0x4D, 0x04, 0xD5, 0x01, 0x95, -0x02, 0x4C, 0x02, 0x71, 0x44, 0x4D, 0x03, 0xD4, -0x03, 0x4B, 0x01, 0xD5, 0xAC, 0x61, 0xB0, 0x67, -0x01, 0x4A, 0x7F, 0x4D, 0x02, 0x72, 0x04, 0x4E, -0x09, 0x4D, 0x8A, 0x61, 0x09, 0x91, 0x08, 0x90, -0x05, 0x63, 0x20, 0xE8, 0x20, 0xE8, 0x00, 0x65, +0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, +0x30, 0xF0, 0x20, 0x6C, 0x8B, 0xF2, 0x10, 0x4C, +0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, +0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, +0x04, 0x92, 0x30, 0xF0, 0x20, 0x6C, 0xCB, 0xF2, +0x14, 0x4C, 0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, +0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF4, +0xB0, 0x9B, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, +0x30, 0xF0, 0x20, 0x6C, 0x2B, 0xF3, 0x18, 0x4C, +0xB5, 0xE3, 0x10, 0x6E, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0xD1, 0x08, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF0, 0x74, 0xA2, 0x80, 0xF0, +0x19, 0x23, 0x30, 0xF0, 0x20, 0x6C, 0x00, 0x6B, +0x42, 0xF3, 0x98, 0x9C, 0xE2, 0xF0, 0x74, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0x27, 0xF2, 0x7B, 0xC2, 0x47, 0xF2, 0x80, 0xDA, +0x27, 0xF2, 0x79, 0xC2, 0x27, 0xF2, 0x7D, 0xC2, +0x47, 0xF2, 0x88, 0xDA, 0x27, 0xF2, 0x7C, 0xC2, +0x47, 0xF2, 0x84, 0xDA, 0x27, 0xF2, 0x7A, 0xC2, +0x27, 0xF2, 0x7E, 0xC2, 0x47, 0xF2, 0x8C, 0xDA, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6C, +0x2B, 0xF3, 0x00, 0x4C, 0x0B, 0xF1, 0x1A, 0x4B, +0x00, 0x6A, 0x00, 0x6D, 0xA0, 0xDC, 0xB0, 0xF7, +0xC8, 0x42, 0x30, 0xF0, 0x20, 0x6D, 0x63, 0xF5, +0x18, 0x4D, 0xCC, 0x36, 0xD9, 0xE5, 0x04, 0xD6, +0x61, 0xF7, 0xCE, 0x42, 0xC8, 0x36, 0xD9, 0xE5, +0x03, 0xD6, 0x06, 0x6E, 0xD8, 0xEA, 0x01, 0xD3, +0x12, 0xEE, 0xD9, 0xE5, 0xC7, 0xF5, 0x11, 0x4E, +0x00, 0x6D, 0x04, 0x90, 0x00, 0x6F, 0xE0, 0xD8, +0x03, 0x90, 0xE0, 0xC8, 0x44, 0x30, 0x01, 0xE5, +0xC3, 0xF6, 0x10, 0x48, 0x30, 0xF0, 0x20, 0x6F, +0x04, 0x30, 0x63, 0xF5, 0x18, 0x4F, 0x1D, 0xE7, +0x05, 0xD7, 0x01, 0x97, 0x00, 0x68, 0x00, 0xD0, +0x02, 0xD7, 0x05, 0x90, 0x00, 0x6F, 0x22, 0x69, +0xE0, 0xC0, 0x00, 0x97, 0x06, 0xD2, 0x38, 0xEF, +0x44, 0x6F, 0x12, 0xE9, 0xF8, 0xED, 0x12, 0xEF, +0xE5, 0xE1, 0x88, 0x6F, 0xF8, 0xEA, 0x12, 0xEF, +0xE5, 0xE1, 0x30, 0xF0, 0x20, 0x6F, 0x87, 0xF3, +0x00, 0x41, 0x63, 0xF5, 0x18, 0x4F, 0x87, 0xF4, +0x10, 0x49, 0x01, 0xE7, 0x25, 0xE7, 0x02, 0x92, +0x00, 0x6F, 0xE0, 0xC8, 0x02, 0x48, 0x4A, 0xE8, +0xE0, 0xC9, 0x02, 0x49, 0xF8, 0x61, 0x00, 0x90, +0x06, 0x92, 0x01, 0x48, 0x00, 0xD0, 0x05, 0x90, +0x01, 0x48, 0x05, 0xD0, 0x02, 0x90, 0x22, 0x48, +0x02, 0xD0, 0x00, 0x90, 0x02, 0x70, 0xD1, 0x61, +0xE0, 0xC6, 0xE1, 0xC6, 0xE2, 0xC6, 0x04, 0x97, +0x03, 0x90, 0x01, 0x4D, 0x04, 0x4F, 0x04, 0xD7, +0x01, 0x97, 0x02, 0x48, 0x02, 0x75, 0x44, 0x4F, +0x03, 0xD0, 0x03, 0x4E, 0x01, 0xD7, 0xAD, 0x61, +0x01, 0x4A, 0x7F, 0x4B, 0x02, 0x72, 0x04, 0x4C, +0x09, 0x4B, 0x8F, 0x61, 0x09, 0x91, 0x08, 0x90, +0x05, 0x63, 0x20, 0xE8, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x4C, 0xED, +0x4C, 0xEC, 0xCC, 0xEA, 0x4B, 0xEA, 0xC0, 0xF7, +0x42, 0x32, 0x30, 0xF0, 0x20, 0x68, 0x44, 0x32, +0xC0, 0xF3, 0x64, 0x98, 0x07, 0xD5, 0x04, 0xD2, +0xA4, 0x36, 0x08, 0x6A, 0x01, 0x6D, 0x06, 0xD4, +0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEB, 0x06, 0x92, 0x0F, 0x2A, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x02, 0xF4, +0xA8, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x03, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF4, +0x54, 0x9A, 0x0E, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x02, 0xF4, 0xA8, 0x9B, +0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF4, 0x58, 0x9A, +0x05, 0xD2, 0x06, 0x92, 0x22, 0x69, 0x07, 0x93, +0x38, 0xEA, 0x44, 0x6A, 0x00, 0x68, 0x12, 0xE9, +0x58, 0xEB, 0x04, 0x93, 0x12, 0xEA, 0x45, 0xE1, +0x88, 0x6A, 0x58, 0xEB, 0x12, 0xEA, 0x45, 0xE1, +0x30, 0xF0, 0x20, 0x6A, 0x87, 0xF3, 0x00, 0x49, +0x63, 0xF5, 0x18, 0x4A, 0x25, 0xE2, 0xC0, 0xA9, +0x05, 0x94, 0x08, 0x32, 0xC0, 0x36, 0x8D, 0xEE, +0x4D, 0xEE, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, +0xAB, 0xED, 0x02, 0x4E, 0x01, 0x48, 0x40, 0xEA, +0x11, 0x70, 0x02, 0x49, 0xEC, 0x61, 0x06, 0x92, +0x22, 0x6B, 0x07, 0x94, 0x78, 0xEA, 0x44, 0x6A, +0x00, 0x69, 0x12, 0xEB, 0x58, 0xEC, 0x04, 0x94, +0x12, 0xEA, 0x4D, 0xE3, 0x88, 0x6A, 0x58, 0xEC, +0x12, 0xEA, 0x4D, 0xE3, 0x30, 0xF0, 0x20, 0x6A, +0x87, 0xF4, 0x10, 0x4B, 0x63, 0xF5, 0x18, 0x4A, +0x69, 0xE2, 0x04, 0xD2, 0x04, 0x92, 0x05, 0x93, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xAA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xC0, 0x36, 0x6D, 0xEE, +0x28, 0x33, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x94, 0x01, 0x49, +0x11, 0x71, 0x02, 0x4C, 0x04, 0xD4, 0xEA, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0xE2, 0xF3, 0xDC, 0x9B, 0x01, 0x6D, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x02, 0xF4, +0xA8, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, +0x61, 0xF7, 0x88, 0x42, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF6, 0x18, 0x4A, 0x63, 0xF5, 0x18, 0x4B, +0x88, 0x34, 0x44, 0x32, 0x91, 0xE3, 0x4D, 0xE3, +0x00, 0x68, 0x04, 0x4B, 0x04, 0xD4, 0x05, 0xD3, +0x06, 0xD0, 0x07, 0xD0, 0x08, 0xD0, 0x04, 0x95, +0x01, 0x6C, 0x08, 0x93, 0x40, 0xA5, 0x30, 0xF0, +0x20, 0x69, 0x04, 0x36, 0x8C, 0xEA, 0x44, 0xE8, +0x4D, 0xE3, 0x41, 0xA5, 0x05, 0x95, 0x08, 0xD3, +0x8C, 0xEA, 0x07, 0x94, 0x64, 0x40, 0x44, 0xEB, +0x51, 0xE4, 0x40, 0xA5, 0x07, 0xD4, 0x03, 0x6C, +0x64, 0x33, 0x8C, 0xEA, 0x44, 0xEB, 0x04, 0x94, +0x06, 0x93, 0x01, 0x6D, 0x8C, 0xAC, 0x4D, 0xE3, +0x06, 0xD3, 0xC0, 0xF3, 0x64, 0x99, 0x08, 0x6A, +0x4D, 0xEE, 0x09, 0xD4, 0xAB, 0xED, 0x03, 0xF3, +0x00, 0x6C, 0x40, 0xEB, 0x08, 0x95, 0x07, 0x96, +0x06, 0x93, 0xC0, 0xF3, 0x44, 0x99, 0xAD, 0xEE, +0x6D, 0xEE, 0xE3, 0xF3, 0x10, 0x6C, 0xFF, 0xF7, +0x1F, 0x6D, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, +0x09, 0x96, 0x01, 0x6D, 0xE3, 0xF3, 0x08, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x04, 0x94, 0x05, 0x95, +0x01, 0x48, 0x02, 0x4C, 0x01, 0x4D, 0x02, 0x70, +0x04, 0xD4, 0x05, 0xD5, 0xBC, 0x61, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x05, 0xD2, 0x00, 0x6A, +0x04, 0xD2, 0x04, 0x92, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x64, 0x98, 0x01, 0x69, 0x2B, 0xE9, +0x44, 0x36, 0x08, 0x6A, 0x4D, 0xEE, 0x03, 0xF3, +0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEB, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x22, 0xF4, +0xDC, 0x9B, 0x03, 0xF3, 0x04, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x05, 0x92, 0x07, 0x2A, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, 0xB1, 0x67, +0x80, 0x6E, 0x06, 0x10, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x08, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, 0x01, 0x69, +0xC0, 0xF3, 0x44, 0x98, 0x2B, 0xE9, 0x03, 0xF3, +0x0C, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, 0xC8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x14, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF4, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF4, 0xC4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x1C, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x42, 0xF4, 0xC8, 0x9B, 0x23, 0xF3, +0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, +0x01, 0x4A, 0x02, 0x72, 0x04, 0xD2, 0x99, 0x61, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, 0x00, 0xF2, 0x1C, 0x22, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF1, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x22, 0xF4, 0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF6, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF3, 0xB0, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF3, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF4, 0x10, 0x69, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF3, 0xB4, 0x9B, 0xC0, 0xF3, +0x20, 0x6B, 0x62, 0xF3, 0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, 0xB4, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, -0x0C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, +0x18, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF5, 0x18, 0x6C, 0xE1, 0xF7, 0x18, 0x6D, 0xE0, 0xF1, 0x1F, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, 0x0C, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, 0x18, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF0, 0x0C, 0x4B, 0xA0, 0x9B, +0x20, 0x6B, 0x62, 0xF3, 0x18, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x68, 0xF1, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF3, 0x24, 0x9A, 0xC0, 0xF3, 0x44, 0x98, +0xC2, 0xF3, 0x2C, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0x0C, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x08, 0xF1, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, @@ -66542,272 +45883,272 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x03, 0x6D, 0x02, 0x6E, 0x40, 0xEA, 0x01, 0x69, 0xC0, 0xF3, 0x44, 0x98, 0x2B, 0xE9, 0x23, 0xF4, 0x18, 0x6C, 0xB1, 0x67, 0xD1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0x04, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF3, 0x04, 0x4B, 0xC0, 0x9B, +0x20, 0x6B, 0x42, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF3, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x42, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, -0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0x10, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF3, 0x14, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF3, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, -0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, 0x00, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE3, 0xF3, 0x04, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF3, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, -0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, 0x10, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE3, 0xF3, 0x14, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF3, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, -0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x00, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF3, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, -0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0x08, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF3, 0x0C, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF3, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0x18, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF4, 0x18, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF3, 0x1C, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0x20, 0x6B, 0x42, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF3, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, +0x62, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, 0x08, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF4, 0x08, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE3, 0xF3, 0x0C, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0x20, 0x6B, 0x62, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF3, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, +0x62, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF4, 0x18, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x82, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF4, +0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF4, 0x08, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x82, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF4, +0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, 0x18, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE3, 0xF3, 0x1C, 0x4B, 0xC0, 0x9B, +0x20, 0x6B, 0x42, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x42, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, -0x00, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF4, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF4, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF4, +0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF4, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF4, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF4, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x82, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x82, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF4, +0x08, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0xC0, 0x9B, 0xC9, 0x12, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x04, 0xD2, 0x09, 0xF0, 0x44, 0xA2, 0xE0, 0xF0, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0x04, 0xD2, 0xC7, 0xF5, 0x50, 0xA2, 0xE0, 0xF0, 0x1B, 0x22, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF4, 0xC4, 0x9B, 0xC0, 0xF3, +0x20, 0x6B, 0x82, 0xF4, 0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF4, 0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x04, 0x93, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, 0x00, 0x6C, -0x68, 0xF4, 0xCA, 0xA3, 0x04, 0x6B, 0x0E, 0xF0, +0x27, 0xF2, 0xD6, 0xA3, 0x04, 0x6B, 0x0E, 0xF0, 0x00, 0x6D, 0x67, 0xEE, 0xC3, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x08, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, -0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0x68, 0xF4, -0xCA, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0x27, 0xF2, +0xD6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF4, 0x0C, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x82, 0xF4, 0x14, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x23, 0xF0, -0x10, 0x6C, 0x68, 0xF4, 0xCA, 0xA2, 0xC0, 0xF3, +0x10, 0x6C, 0x27, 0xF2, 0xD6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x10, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF4, 0x18, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, -0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0x68, 0xF4, -0xCA, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0x27, 0xF2, +0xD6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF4, 0x14, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x82, 0xF4, 0x1C, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x23, 0xF0, -0x10, 0x6C, 0x68, 0xF4, 0xCA, 0xA2, 0xC0, 0xF3, +0x10, 0x6C, 0x27, 0xF2, 0xD6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x18, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF4, 0x00, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, +0x20, 0x6B, 0xA2, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, -0x23, 0xF0, 0x10, 0x6C, 0x68, 0xF4, 0xCA, 0xA2, +0x23, 0xF0, 0x10, 0x6C, 0x27, 0xF2, 0xD6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, -0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, -0x00, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x08, 0x4B, +0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF4, +0x08, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, -0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, 0x68, 0xF4, -0xCA, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, 0x27, 0xF2, +0xD6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF4, 0x0C, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x82, 0xF4, 0x14, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x28, 0xF1, -0x10, 0x6C, 0x68, 0xF4, 0xCA, 0xA2, 0xC0, 0xF3, +0x10, 0x6C, 0x27, 0xF2, 0xD6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x10, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF4, 0x18, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, -0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, 0x68, 0xF4, -0xCA, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, 0x27, 0xF2, +0xD6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF4, 0x14, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x82, 0xF4, 0x1C, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x28, 0xF1, -0x10, 0x6C, 0x68, 0xF4, 0xCA, 0xA2, 0xC0, 0xF3, +0x10, 0x6C, 0x27, 0xF2, 0xD6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x18, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF4, 0x00, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, +0x20, 0x6B, 0xA2, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, -0x28, 0xF1, 0x10, 0x6C, 0x68, 0xF4, 0xCA, 0xA2, +0x28, 0xF1, 0x10, 0x6C, 0x27, 0xF2, 0xD6, 0xA2, 0xB1, 0x67, 0xC0, 0xF3, 0x44, 0x98, 0x67, 0xEE, -0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, -0x00, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x63, 0x11, +0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF4, +0x08, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x63, 0x11, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, -0x03, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x82, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, +0x20, 0x6B, 0xA2, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0xA2, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, -0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF4, +0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x10, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, +0x20, 0x6B, 0xA2, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0xA2, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, -0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF4, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x1C, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, +0x20, 0x6B, 0xC2, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0xC2, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, -0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF4, +0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0x0C, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, +0x20, 0x6B, 0xC2, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0xC2, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, -0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF4, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x08, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, +0x20, 0x6B, 0xA2, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0xA2, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, -0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF4, +0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x10, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, +0x20, 0x6B, 0xA2, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0xA2, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, -0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF4, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x1C, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, +0x20, 0x6B, 0xC2, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0xC2, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, -0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF4, +0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0x0C, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, +0x20, 0x6B, 0xC2, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0xC2, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, -0x18, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF4, +0x00, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF4, 0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xE2, 0xF4, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF5, 0x18, 0x6C, 0xE1, 0xF7, 0x18, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF0, 0x2C, 0x9A, 0xC0, 0xF3, +0x20, 0x6A, 0x62, 0xF3, 0x38, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, 0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x68, 0xF1, 0x04, 0x6C, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, -0x24, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF3, +0x2C, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0x0C, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, 0x0C, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, @@ -66823,15 +46164,15 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x06, 0x67, 0x63, 0xF4, -0xC0, 0x9B, 0x09, 0xD5, 0x01, 0x6D, 0x24, 0x67, +0xC0, 0xF3, 0x44, 0x9A, 0x06, 0x67, 0xE2, 0xF4, +0xC8, 0x9B, 0x09, 0xD5, 0x01, 0x6D, 0x24, 0x67, 0x0B, 0xD7, 0x63, 0xF5, 0x10, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x00, 0x6A, 0x80, 0x98, 0x1F, 0xF7, 0x00, 0x6B, 0x8C, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x09, 0x2B, 0x30, 0xF0, 0x20, 0x6C, -0x60, 0x98, 0x23, 0xF0, 0x98, 0x9C, 0x6D, 0xE4, +0x60, 0x98, 0xE2, 0xF2, 0x9C, 0x9C, 0x6D, 0xE4, 0x80, 0x99, 0x80, 0xDB, 0x07, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF0, 0x7C, 0x9B, 0x91, 0xE3, +0x20, 0x6B, 0x02, 0xF3, 0x60, 0x9B, 0x91, 0xE3, 0x60, 0x99, 0x60, 0xDC, 0x01, 0x4A, 0xFF, 0x6B, 0x6C, 0xEA, 0x03, 0x72, 0x04, 0x48, 0x04, 0x49, 0xE1, 0x61, 0x00, 0x68, 0x0B, 0x92, 0x30, 0xF0, @@ -66839,60 +46180,60 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x80, 0xAC, 0xAB, 0xED, 0x0D, 0xE2, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x99, 0x04, 0x48, 0x40, 0xEA, 0x2C, 0x70, 0xF0, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x2F, 0xF5, 0x4D, 0xA2, 0x01, 0x72, 0x0A, 0x61, +0x0B, 0xF3, 0x59, 0xA2, 0x01, 0x72, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, -0x03, 0xF0, 0x0C, 0x6C, 0x03, 0xF0, 0xAC, 0x9B, +0x03, 0xF0, 0x0C, 0x6C, 0x62, 0xF3, 0xB8, 0x9B, 0x00, 0x6E, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x99, 0x03, 0xF0, 0xAC, 0x9B, +0xC0, 0xF3, 0x44, 0x99, 0x62, 0xF3, 0xB8, 0x9B, 0x03, 0xF0, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x2F, 0xF5, 0x4F, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x0B, 0xF3, 0x5B, 0xA2, 0x01, 0x72, 0x0C, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, -0x08, 0xF1, 0x0C, 0x6C, 0x03, 0xF0, 0xAC, 0x9B, +0x08, 0xF1, 0x0C, 0x6C, 0x62, 0xF3, 0xB8, 0x9B, 0x00, 0x6E, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, -0x03, 0xF0, 0xAC, 0x9B, 0x08, 0xF1, 0x0C, 0x6C, +0x62, 0xF3, 0xB8, 0x9B, 0x08, 0xF1, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x4F, 0xF5, 0x5C, 0xA2, 0x1E, 0x22, 0x30, 0xF0, -0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, -0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF6, +0x4B, 0xF3, 0x48, 0xA2, 0x1E, 0x22, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, +0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF6, 0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF3, 0x30, 0x9A, 0xC0, 0xF3, +0x20, 0x6A, 0xA2, 0xF3, 0x30, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF3, 0x4C, 0x9A, 0x01, 0x6B, 0x6B, 0xEB, 0x30, 0xF0, 0x20, 0x68, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF1, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x22, 0xF4, 0xA8, 0x9B, 0x23, 0xF6, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x63, 0xF4, 0xA4, 0x9B, 0xC3, 0xF4, 0x10, 0x6C, +0xE2, 0xF4, 0xAC, 0x9B, 0xC3, 0xF4, 0x10, 0x6C, 0x07, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF0, 0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x62, 0xF3, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF5, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6E, 0xCB, 0xEE, 0xA6, 0x67, 0x23, 0xF4, 0x18, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x14, 0x6C, 0x00, 0xF3, 0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x63, 0xF4, 0xA8, 0x9B, 0x21, 0xF0, 0x04, 0x6C, +0xE2, 0xF4, 0xB0, 0x9B, 0x21, 0xF0, 0x04, 0x6C, 0x03, 0x6E, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, 0xF8, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, 0xEC, 0x9B, 0xFF, 0x6A, 0x04, 0x6B, 0xC0, 0xA7, 0x4C, 0xED, 0x4C, 0xEC, 0x4C, 0xEE, 0xCD, 0xEB, 0x4C, 0xEB, 0x60, 0xC7, 0x06, 0x2D, 0x07, 0x6B, 0x07, 0x24, 0x01, 0x74, 0x07, 0x6B, 0x12, 0x61, 0x0C, 0x10, 0x07, 0x2C, 0x79, 0x6B, 0x6B, 0xEB, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF4, 0x4C, 0x9A, 0x08, 0x10, +0x20, 0x6A, 0xE2, 0xF4, 0x54, 0x9A, 0x08, 0x10, 0x01, 0x74, 0x07, 0x61, 0x79, 0x6B, 0x6B, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF4, 0x50, 0x9A, -0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, -0x58, 0x9A, 0xC0, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF4, 0x58, 0x9A, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF3, +0x4C, 0x9A, 0xC0, 0xC2, 0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6E, 0x30, 0xF0, 0x20, 0x68, 0xCC, 0xEC, 0xC0, 0xF3, 0x44, 0x98, 0xAC, 0xEE, 0x01, 0x69, @@ -66902,13 +46243,13 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, -0x18, 0x6C, 0xB1, 0x67, 0x63, 0xF4, 0xD4, 0x9B, +0x18, 0x6C, 0xB1, 0x67, 0xE2, 0xF4, 0xDC, 0x9B, 0x11, 0x10, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x63, 0xF4, 0xD8, 0x9B, 0xC3, 0xF3, +0x44, 0x98, 0x02, 0xF5, 0xC0, 0x9B, 0xC3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF3, 0xD4, 0x9B, 0xC0, 0xF3, +0x20, 0x6B, 0xE2, 0xF3, 0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x30, 0xF0, 0x20, 0x68, 0xC3, 0xF3, 0x18, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, @@ -66917,109 +46258,150 @@ u8 array_mp_8822c_fw_wowlan[] = { 0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x00, 0x68, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF4, 0xBC, 0x9A, -0x02, 0xF7, 0x00, 0x6C, 0x80, 0x18, 0x9C, 0x39, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF5, 0xA4, 0x9A, +0x02, 0xF7, 0x00, 0x6C, 0x80, 0x18, 0x6C, 0x17, 0x20, 0x6B, 0x4C, 0xEB, 0x0A, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, 0x01, 0x48, 0x40, 0xEA, 0x0A, 0x70, 0xEC, 0x61, 0x0A, 0x68, 0x50, 0x67, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x68, -0x8C, 0xE8, 0x80, 0x18, 0x42, 0x20, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF4, 0xC0, 0x9A, 0x01, 0x69, +0x8C, 0xE8, 0x80, 0x18, 0xD8, 0x08, 0x30, 0xF0, +0x20, 0x6A, 0x02, 0xF5, 0xC8, 0x9A, 0x01, 0x69, 0x2B, 0xE9, 0x0D, 0xEE, 0xB1, 0x67, 0x02, 0xF7, -0x00, 0x6C, 0x80, 0x18, 0xB1, 0x39, 0xB1, 0x67, -0x02, 0xF7, 0x08, 0x6C, 0x80, 0x18, 0x9C, 0x39, +0x00, 0x6C, 0x80, 0x18, 0x81, 0x17, 0xB1, 0x67, +0x02, 0xF7, 0x08, 0x6C, 0x80, 0x18, 0x6C, 0x17, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0xFF, 0xF7, 0x1F, 0x68, 0x25, 0x67, 0x0C, 0xD6, 0x8C, 0xE8, 0x37, 0x25, 0x61, 0x45, 0x00, 0x6A, 0x0E, 0x2B, 0x80, 0x18, -0x42, 0x20, 0x01, 0x69, 0x0C, 0x96, 0x2B, 0xE9, +0xD8, 0x08, 0x01, 0x69, 0x0C, 0x96, 0x2B, 0xE9, 0x02, 0xF7, 0x04, 0x6C, 0xB1, 0x67, 0x80, 0x18, -0xB1, 0x39, 0x02, 0xF7, 0x00, 0x6C, 0xB1, 0x67, +0x81, 0x17, 0x02, 0xF7, 0x00, 0x6C, 0xB1, 0x67, 0x1F, 0x10, 0x71, 0x67, 0x66, 0xEA, 0x01, 0x6C, 0x8C, 0xEB, 0x04, 0x2B, 0x01, 0x4A, 0x20, 0x72, 0xF8, 0x61, 0x00, 0x6A, 0x90, 0x67, 0x04, 0xD2, -0x2F, 0xE9, 0x80, 0x18, 0x51, 0x20, 0x4C, 0xE9, -0x80, 0x18, 0x42, 0x20, 0x0C, 0x96, 0x04, 0x92, +0x2F, 0xE9, 0x80, 0x18, 0xE7, 0x08, 0x4C, 0xE9, +0x80, 0x18, 0xD8, 0x08, 0x0C, 0x96, 0x04, 0x92, 0x01, 0x6D, 0x02, 0xF7, 0x04, 0x6C, 0xC4, 0xEA, -0xAB, 0xED, 0x2D, 0xEE, 0x80, 0x18, 0xB1, 0x39, +0xAB, 0xED, 0x2D, 0xEE, 0x80, 0x18, 0x81, 0x17, 0x01, 0x6D, 0x02, 0xF7, 0x00, 0x6C, 0xAB, 0xED, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF4, 0xC4, 0x9A, -0x0D, 0xEE, 0x80, 0x18, 0xB1, 0x39, 0x09, 0x97, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF5, 0xCC, 0x9A, +0x0D, 0xEE, 0x80, 0x18, 0x81, 0x17, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x38, 0x6C, 0x18, 0xF0, -0x00, 0x6D, 0x01, 0x6E, 0x80, 0x18, 0x61, 0x20, +0x00, 0x6D, 0x01, 0x6E, 0x80, 0x18, 0xF7, 0x08, 0x38, 0x6C, 0x01, 0xF4, 0x00, 0x6D, 0x01, 0x6E, -0x80, 0x18, 0x61, 0x20, 0x05, 0x97, 0x03, 0x63, +0x80, 0x18, 0xF7, 0x08, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x38, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x03, 0x6E, -0x80, 0x18, 0x61, 0x20, 0x38, 0x6C, 0x00, 0xF3, -0x00, 0x6D, 0x03, 0x6E, 0x80, 0x18, 0x61, 0x20, +0x80, 0x18, 0xF7, 0x08, 0x38, 0x6C, 0x00, 0xF3, +0x00, 0x6D, 0x03, 0x6E, 0x80, 0x18, 0xF7, 0x08, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, -0x05, 0x22, 0x80, 0x18, 0x8D, 0x20, 0x80, 0x18, -0x84, 0x20, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x6F, 0xF5, 0xD4, 0x9A, 0x01, 0x6D, 0x38, 0x6C, -0xAB, 0xED, 0x80, 0x18, 0x61, 0x20, 0x05, 0x97, +0x05, 0x22, 0x80, 0x18, 0x23, 0x09, 0x80, 0x18, +0x1A, 0x09, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF3, 0xC0, 0x9A, 0x01, 0x6D, 0x38, 0x6C, +0xAB, 0xED, 0x80, 0x18, 0xF7, 0x08, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x00, 0x6A, 0x09, 0xD5, 0x27, 0x67, 0xA0, 0x9E, 0x1F, 0xF7, 0x00, 0x6B, 0xAC, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x08, 0x2B, 0x30, 0xF0, 0x20, 0x6D, 0x60, 0x9E, -0x23, 0xF0, 0xB8, 0x9D, 0x6D, 0xE5, 0x60, 0x9B, -0x06, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, -0x7C, 0x9B, 0xB5, 0xE3, 0x60, 0x9D, 0x55, 0xE4, +0xE2, 0xF2, 0xBC, 0x9D, 0x6D, 0xE5, 0x60, 0x9B, +0x06, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF3, +0x60, 0x9B, 0xB5, 0xE3, 0x60, 0x9D, 0x55, 0xE4, 0x04, 0x4A, 0x0C, 0x72, 0x60, 0xDD, 0x04, 0x4E, 0xE4, 0x61, 0x00, 0x68, 0x09, 0xE1, 0x80, 0xAA, -0x01, 0x6D, 0xAB, 0xED, 0x80, 0x18, 0x24, 0x39, +0x01, 0x6D, 0xAB, 0xED, 0x80, 0x18, 0xF4, 0x16, 0x09, 0x94, 0x0D, 0xE4, 0x04, 0x48, 0x2C, 0x70, 0x40, 0xDB, 0xF4, 0x61, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0x4C, 0xED, 0x4C, 0xEC, 0xCC, 0xEA, +0x4B, 0xEA, 0xC0, 0xF7, 0x42, 0x32, 0x30, 0xF0, +0x20, 0x68, 0x44, 0x32, 0xC0, 0xF3, 0x64, 0x98, +0x06, 0xD5, 0x04, 0xD2, 0xA4, 0x36, 0x08, 0x6A, +0x01, 0x6D, 0x05, 0xD4, 0x4D, 0xEE, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, 0x05, 0x92, +0x0A, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x02, 0xF4, +0xA8, 0x9B, 0x03, 0x6E, 0x09, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x02, 0xF4, +0xA8, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0x02, 0xF5, 0xB0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF3, 0x14, 0x69, 0x91, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0xE2, 0xF3, 0xB8, 0x9B, +0x91, 0x67, 0x10, 0x6E, 0x40, 0xEA, 0x05, 0x92, +0x22, 0x6B, 0x06, 0x94, 0x78, 0xEA, 0x44, 0x6A, +0x00, 0x69, 0x12, 0xEB, 0x58, 0xEC, 0x04, 0x94, +0x12, 0xEA, 0x4D, 0xE3, 0x88, 0x6A, 0x58, 0xEC, +0x12, 0xEA, 0x4D, 0xE3, 0x30, 0xF0, 0x20, 0x6A, +0x87, 0xF3, 0x80, 0x43, 0x63, 0xF5, 0x18, 0x4A, +0x87, 0xF4, 0x10, 0x4B, 0x91, 0xE2, 0x6D, 0xE2, +0x05, 0xD4, 0x04, 0xD3, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF3, 0x7C, 0x9B, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0x36, 0x01, 0x6D, +0x6D, 0xEE, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x01, 0x6D, 0xE3, 0xF3, 0x1C, 0x6C, +0xAB, 0xED, 0x80, 0x18, 0xF4, 0x16, 0x30, 0xF0, +0x20, 0x6B, 0x02, 0xF4, 0x60, 0x9B, 0x05, 0x94, +0x01, 0x49, 0x4C, 0xEB, 0x62, 0x33, 0x62, 0x33, +0x60, 0xCC, 0xE1, 0xF7, 0x1F, 0x6B, 0x4C, 0xEB, +0x04, 0x92, 0x02, 0x4C, 0x11, 0x71, 0x60, 0xCA, +0x02, 0x4A, 0x05, 0xD4, 0x04, 0xD2, 0xD6, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF4, 0xA8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x00, 0x6E, 0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6A, 0x24, 0x67, -0x46, 0xF5, 0x18, 0x48, 0x4C, 0xED, 0x4C, 0xE9, -0x48, 0xF4, 0x5D, 0xA0, 0x06, 0xD5, 0x24, 0x36, +0x63, 0xF5, 0x18, 0x48, 0x4C, 0xED, 0x4C, 0xE9, +0x27, 0xF2, 0x49, 0xA0, 0x06, 0xD5, 0x24, 0x36, 0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x9A, 0x01, 0x6D, 0x08, 0x6A, 0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0xBC, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF4, 0xA8, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x48, 0xF4, 0x5C, 0xA0, 0x4B, 0x2A, 0x06, 0x92, -0x03, 0x22, 0x12, 0x6A, 0x68, 0xF4, 0x42, 0xC0, +0x27, 0xF2, 0x48, 0xA0, 0x4B, 0x2A, 0x06, 0x92, +0x03, 0x22, 0x12, 0x6A, 0x27, 0xF2, 0x4E, 0xC0, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, -0xAF, 0xF1, 0xDA, 0xA3, 0xC0, 0xF3, 0x44, 0x98, +0xAA, 0xF7, 0xC6, 0xA3, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x40, 0xEA, 0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF0, 0xF8, 0x9A, 0x30, 0xF0, 0x20, 0x6B, -0x6E, 0xF6, 0x08, 0x4B, 0x83, 0x67, 0xB1, 0x67, -0xDE, 0x6E, 0x06, 0xD3, 0x80, 0x18, 0xD3, 0x4E, +0xE2, 0xF3, 0xF0, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0xCA, 0xF4, 0x18, 0x4B, 0x83, 0x67, 0xB1, 0x67, +0xDE, 0x6E, 0x06, 0xD3, 0x80, 0x18, 0x83, 0x45, 0x06, 0x94, 0xE1, 0xF7, 0x1F, 0x6F, 0x20, 0x6A, 0xB1, 0x67, 0x56, 0x6E, 0x04, 0xD2, 0x80, 0x18, -0xD3, 0x4E, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x83, 0x45, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x18, 0x6C, 0x02, 0x6D, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, 0xC8, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF5, 0xD4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, 0x04, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x18, 0x6E, 0x49, 0x10, 0x06, 0x92, 0x03, 0x22, -0x12, 0x6A, 0x68, 0xF4, 0x42, 0xC0, 0x01, 0x6A, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, -0xF8, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x6E, 0xF6, -0x08, 0x48, 0x90, 0x67, 0xB1, 0x67, 0xDE, 0x6E, -0x80, 0x18, 0xD3, 0x4E, 0xE1, 0xF7, 0x1F, 0x6F, +0x12, 0x6A, 0x27, 0xF2, 0x4E, 0xC0, 0x01, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, +0xF0, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0xCA, 0xF4, +0x18, 0x48, 0x90, 0x67, 0xB1, 0x67, 0xDE, 0x6E, +0x80, 0x18, 0x83, 0x45, 0xE1, 0xF7, 0x1F, 0x6F, 0x90, 0x67, 0x00, 0x6A, 0xB1, 0x67, 0x56, 0x6E, 0x30, 0xF0, 0x20, 0x68, 0x04, 0xD2, 0x80, 0x18, -0xD3, 0x4E, 0x30, 0xF0, 0x20, 0x6B, 0xAF, 0xF1, -0xDA, 0xA3, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, +0x83, 0x45, 0x30, 0xF0, 0x20, 0x6B, 0xAA, 0xF7, +0xC6, 0xA3, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x18, 0x6C, 0x02, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF4, 0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x02, 0xF5, 0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, 0x04, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, @@ -67031,37 +46413,37 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x06, 0xD2, 0x46, 0xF5, -0x18, 0x4B, 0x48, 0xF4, 0x5D, 0xA3, 0x07, 0xD3, +0x30, 0xF0, 0x20, 0x6B, 0x06, 0xD2, 0x63, 0xF5, +0x18, 0x4B, 0x27, 0xF2, 0x49, 0xA3, 0x07, 0xD3, 0x06, 0x93, 0x30, 0xF0, 0x20, 0x68, 0x08, 0xD2, 0x64, 0x31, 0x08, 0x6A, 0x4D, 0xE9, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xD1, 0x67, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF4, 0x1C, 0x4B, 0xA0, 0x9B, +0x20, 0x6B, 0xE2, 0xF4, 0x04, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x3F, 0x6D, 0xC5, 0x67, 0xC3, 0xF3, 0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xD1, 0x67, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, -0x1C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF4, +0x04, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0xBC, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF4, 0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x00, 0x69, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0xE0, 0xF3, 0x00, 0x6D, -0x12, 0x6E, 0x40, 0xEA, 0x07, 0x93, 0x48, 0xF4, -0x5C, 0xA3, 0x11, 0x2A, 0x01, 0x6A, 0x04, 0xD2, +0x12, 0x6E, 0x40, 0xEA, 0x07, 0x93, 0x27, 0xF2, +0x48, 0xA3, 0x11, 0x2A, 0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x69, -0x06, 0x95, 0xA3, 0xF0, 0xF8, 0x9A, 0x6E, 0xF6, -0x08, 0x49, 0x91, 0x67, 0xDE, 0x6E, 0x80, 0x18, -0xD3, 0x4E, 0x20, 0x6A, 0x10, 0x10, 0x01, 0x6A, +0x06, 0x95, 0xE2, 0xF3, 0xF0, 0x9A, 0xCA, 0xF4, +0x18, 0x49, 0x91, 0x67, 0xDE, 0x6E, 0x80, 0x18, +0x83, 0x45, 0x20, 0x6A, 0x10, 0x10, 0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x69, 0x06, 0x95, 0xA3, 0xF0, 0xF8, 0x9A, -0x6E, 0xF6, 0x08, 0x49, 0x91, 0x67, 0xDE, 0x6E, -0x80, 0x18, 0xD3, 0x4E, 0x00, 0x6A, 0x06, 0x95, +0x20, 0x69, 0x06, 0x95, 0xE2, 0xF3, 0xF0, 0x9A, +0xCA, 0xF4, 0x18, 0x49, 0x91, 0x67, 0xDE, 0x6E, +0x80, 0x18, 0x83, 0x45, 0x00, 0x6A, 0x06, 0x95, 0x91, 0x67, 0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, 0xC0, 0xF3, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x12, 0x6E, 0x40, 0xEA, 0x08, 0x92, 0x06, 0x72, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, @@ -67072,87 +46454,87 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x40, 0xEA, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xFF, 0x68, 0x48, 0xF4, -0x7D, 0xA2, 0x8C, 0xE8, 0x06, 0xD2, 0x04, 0x32, +0x63, 0xF5, 0x18, 0x4A, 0xFF, 0x68, 0x27, 0xF2, +0x69, 0xA2, 0x8C, 0xE8, 0x06, 0xD2, 0x04, 0x32, 0x07, 0xD2, 0x08, 0xD3, 0x07, 0x93, 0x30, 0xF0, 0x20, 0x69, 0x08, 0x6A, 0x4D, 0xEB, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0xC3, 0x67, 0x07, 0xD3, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0xBC, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF4, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x99, 0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x3F, 0x6D, 0xC5, 0x67, 0xC3, 0xF3, 0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x07, 0x96, 0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, -0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF4, +0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, 0x00, 0x6C, 0xE0, 0xF3, 0x00, 0x6D, 0x12, 0x6E, 0x40, 0xEA, 0x06, 0x92, -0x48, 0xF4, 0x5C, 0xA2, 0x06, 0xD2, 0x5B, 0x2A, +0x27, 0xF2, 0x48, 0xA2, 0x06, 0xD2, 0x5B, 0x2A, 0x07, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF4, 0xF0, 0x9A, 0x30, 0xF0, 0x20, 0x69, -0x6E, 0xF6, 0x08, 0x49, 0x91, 0x67, 0xB0, 0x67, -0x00, 0x6E, 0x80, 0x18, 0xD3, 0x4E, 0x01, 0x6B, +0x02, 0xF5, 0xFC, 0x9A, 0x30, 0xF0, 0x20, 0x69, +0xCA, 0xF4, 0x18, 0x49, 0x91, 0x67, 0xB0, 0x67, +0x00, 0x6E, 0x80, 0x18, 0x83, 0x45, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, 0x20, 0x6F, -0x04, 0xD3, 0x80, 0x18, 0xD3, 0x4E, 0x01, 0x6A, +0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, 0x00, 0xF4, -0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x18, 0x4A, +0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, 0x10, 0x4A, 0xE0, 0x9A, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, -0xDE, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xD3, 0x4E, +0xDE, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, 0x10, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0xD3, 0x4E, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, +0x83, 0x45, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, 0x04, 0xD3, 0x80, 0x18, -0xD3, 0x4E, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, -0x18, 0x4B, 0xE0, 0x9B, 0x06, 0x92, 0x91, 0x67, +0x83, 0x45, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, +0x10, 0x4B, 0xE0, 0x9B, 0x06, 0x92, 0x91, 0x67, 0xB0, 0x67, 0x18, 0x6E, 0x04, 0xD2, 0x80, 0x18, -0xD3, 0x4E, 0x06, 0x92, 0x91, 0x67, 0xB0, 0x67, +0x83, 0x45, 0x06, 0x92, 0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, 0x01, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0xD3, 0x4E, 0x04, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x83, 0x45, 0x04, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, 0x70, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0xD3, 0x4E, 0x06, 0x93, 0x5A, 0x10, 0x07, 0x6A, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF4, -0xF0, 0x9A, 0x30, 0xF0, 0x20, 0x69, 0x6E, 0xF6, -0x08, 0x49, 0x91, 0x67, 0xB0, 0x67, 0x00, 0x6E, -0x80, 0x18, 0xD3, 0x4E, 0x01, 0x6A, 0x91, 0x67, +0x83, 0x45, 0x06, 0x93, 0x5A, 0x10, 0x07, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF5, +0xFC, 0x9A, 0x30, 0xF0, 0x20, 0x69, 0xCA, 0xF4, +0x18, 0x49, 0x91, 0x67, 0xB0, 0x67, 0x00, 0x6E, +0x80, 0x18, 0x83, 0x45, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, 0x20, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0xD3, 0x4E, 0x01, 0x6B, 0x91, 0x67, +0x80, 0x18, 0x83, 0x45, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, 0x00, 0xF4, 0x00, 0x6F, -0x04, 0xD3, 0x80, 0x18, 0xD3, 0x4E, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF0, 0x18, 0x4B, 0xE0, 0x9B, +0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF3, 0x10, 0x4B, 0xE0, 0x9B, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, -0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, 0x00, 0x6A, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, 0xE1, 0xF7, -0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, +0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, -0x04, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0xD3, 0x4E, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, 0x18, 0x4B, +0x04, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, 0x10, 0x4B, 0xE0, 0x9B, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, -0x18, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, +0x18, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, -0xE2, 0x67, 0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, +0xE2, 0x67, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x04, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, -0x70, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, +0x70, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x00, 0x6B, 0x91, 0x67, 0x30, 0xF0, 0x20, 0x69, -0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, 0x6E, 0xF6, -0x08, 0x49, 0x04, 0xD3, 0x80, 0x18, 0xD3, 0x4E, +0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, 0xCA, 0xF4, +0x18, 0x49, 0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, 0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x57, 0x6E, -0x01, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, +0x01, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, -0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, -0x30, 0xF0, 0x20, 0x6A, 0xAF, 0xF1, 0x54, 0xA2, +0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x30, 0xF0, 0x20, 0x6A, 0xAA, 0xF7, 0x40, 0xA2, 0x01, 0x22, 0x20, 0x6A, 0x7F, 0x6F, 0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, 0x30, 0xF0, 0x20, 0x69, -0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, 0xC0, 0xF3, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0xC0, 0xF3, 0x44, 0x99, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x09, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, -0xB0, 0x67, 0x10, 0x6F, 0x01, 0x6A, 0x6E, 0xF6, -0x08, 0x4C, 0xEF, 0x6E, 0x30, 0xF0, 0x20, 0x68, -0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, 0xC0, 0xF3, +0xB0, 0x67, 0x10, 0x6F, 0x01, 0x6A, 0xCA, 0xF4, +0x18, 0x4C, 0xEF, 0x6E, 0x30, 0xF0, 0x20, 0x68, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x12, 0x6E, @@ -67164,22 +46546,22 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x48, 0xF4, 0x7D, 0xA2, +0x63, 0xF5, 0x18, 0x4A, 0x27, 0xF2, 0x69, 0xA2, 0x30, 0xF0, 0x20, 0x68, 0xFF, 0x69, 0x8C, 0xE9, 0x07, 0xD3, 0xC0, 0xF3, 0x64, 0x98, 0x06, 0xD2, 0x24, 0x36, 0x08, 0x6A, 0x01, 0x6D, 0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0xBC, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF4, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF4, 0xD4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x22, 0xF5, 0xC0, 0x9B, 0x01, 0x6D, 0x23, 0xF3, 0x00, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x06, 0x93, 0x48, 0xF4, 0x5C, 0xA3, +0x40, 0xEA, 0x06, 0x93, 0x27, 0xF2, 0x48, 0xA3, 0x03, 0x2A, 0x81, 0xF0, 0x07, 0x4A, 0x02, 0x10, 0xC1, 0xF0, 0x0A, 0x6A, 0x30, 0xF0, 0x20, 0x6C, -0x6E, 0xF6, 0x08, 0x4C, 0xB1, 0x67, 0x56, 0x6E, +0xCA, 0xF4, 0x18, 0x4C, 0xB1, 0x67, 0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0xD3, 0x4E, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, +0x83, 0x45, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x09, 0x6E, 0x40, 0xEA, 0x07, 0x92, 0x06, 0x72, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, @@ -67192,70 +46574,70 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xFF, 0x68, 0x8C, 0xE8, -0x48, 0xF4, 0x7D, 0xA2, 0x06, 0xD2, 0x04, 0x32, +0x63, 0xF5, 0x18, 0x4A, 0xFF, 0x68, 0x8C, 0xE8, +0x27, 0xF2, 0x69, 0xA2, 0x06, 0xD2, 0x04, 0x32, 0x07, 0xD2, 0x08, 0xD3, 0x07, 0x93, 0x30, 0xF0, 0x20, 0x69, 0x08, 0x6A, 0x4D, 0xEB, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0xC3, 0x67, 0x07, 0xD3, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0xBC, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF4, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x99, 0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x3F, 0x6D, 0xC5, 0x67, 0xC3, 0xF3, 0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x07, 0x96, 0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, -0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF4, +0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x99, 0x30, 0xF0, 0x20, 0x69, 0x6E, 0xF6, -0x08, 0x49, 0x23, 0xF3, 0x00, 0x6C, 0xE0, 0xF3, +0x44, 0x99, 0x30, 0xF0, 0x20, 0x69, 0xCA, 0xF4, +0x18, 0x49, 0x23, 0xF3, 0x00, 0x6C, 0xE0, 0xF3, 0x00, 0x6D, 0x12, 0x6E, 0x40, 0xEA, 0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xDF, 0x6E, 0x10, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, 0x00, 0x6B, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x00, 0x6B, 0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, 0x20, 0x6F, -0x04, 0xD3, 0x80, 0x18, 0xD3, 0x4E, 0x00, 0x6A, +0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, 0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, 0x00, 0xF4, -0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, -0x06, 0x93, 0x48, 0xF4, 0x7C, 0xA3, 0x06, 0xD3, -0x35, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, -0x18, 0x4B, 0xE0, 0x9B, 0x01, 0x6A, 0x91, 0x67, +0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x06, 0x93, 0x27, 0xF2, 0x68, 0xA3, 0x06, 0xD3, +0x35, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, +0x10, 0x4B, 0xE0, 0x9B, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, 0x04, 0xD2, 0x80, 0x18, -0xD3, 0x4E, 0x81, 0xF0, 0x07, 0x6A, 0x91, 0x67, +0x83, 0x45, 0x81, 0xF0, 0x07, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, 0x01, 0x6A, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF0, 0x18, 0x4A, 0x06, 0x93, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF3, 0x10, 0x4A, 0x06, 0x93, 0xE0, 0x9A, 0x91, 0x67, 0xB0, 0x67, 0x18, 0x6E, -0x04, 0xD3, 0x80, 0x18, 0xD3, 0x4E, 0x04, 0x6A, +0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, 0x04, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, 0x70, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, 0x06, 0x93, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x06, 0x93, 0x04, 0xD3, 0x3C, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF0, 0x18, 0x4B, 0xE0, 0x9B, 0x01, 0x6A, +0xE2, 0xF3, 0x10, 0x4B, 0xE0, 0x9B, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0xD3, 0x4E, 0x61, 0xF0, 0x08, 0x6A, +0x80, 0x18, 0x83, 0x45, 0x61, 0xF0, 0x08, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, 0xE1, 0xF7, -0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, +0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, -0x04, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x18, 0x4A, +0x04, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, 0x10, 0x4A, 0xE0, 0x9A, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, -0x18, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xD3, 0x4E, +0x18, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, 0x00, 0x6B, 0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, -0x01, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0xD3, 0x4E, +0x01, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, 0x04, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, -0x70, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, +0x70, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x00, 0x6A, 0x04, 0xD2, 0x91, 0x67, 0x30, 0xF0, 0x20, 0x69, 0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, -0x6E, 0xF6, 0x08, 0x49, 0x80, 0x18, 0xD3, 0x4E, +0xCA, 0xF4, 0x18, 0x49, 0x80, 0x18, 0x83, 0x45, 0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x57, 0x6E, -0x01, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, +0x01, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, -0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, -0x30, 0xF0, 0x20, 0x6A, 0xAF, 0xF1, 0x54, 0xA2, +0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x30, 0xF0, 0x20, 0x6A, 0xAA, 0xF7, 0x40, 0xA2, 0x01, 0x22, 0x20, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, 0x7F, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0xD3, 0x4E, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x83, 0x45, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x09, 0x6E, 0x40, 0xEA, 0x08, 0x93, 0x06, 0x73, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, @@ -67268,135 +46650,135 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x00, 0x6E, 0x40, 0xEA, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, 0x14, 0x4A, 0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x00, 0x69, -0x6E, 0xF6, 0x08, 0x48, 0x0E, 0xD4, 0x0F, 0xD5, +0xCA, 0xF4, 0x18, 0x48, 0x0E, 0xD4, 0x0F, 0xD5, 0x90, 0x67, 0xB1, 0x67, 0xEF, 0x6E, 0x04, 0xD1, -0x80, 0x18, 0xD3, 0x4E, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF3, 0x0C, 0x4B, 0xE0, 0x9B, 0x90, 0x67, +0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF3, 0x14, 0x4B, 0xE0, 0x9B, 0x90, 0x67, 0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD1, 0x80, 0x18, -0xD3, 0x4E, 0x0E, 0x90, 0x0F, 0x91, 0x00, 0x6A, -0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6B, 0x6E, 0xF6, -0x08, 0x4B, 0x06, 0xD3, 0x40, 0x99, 0xC0, 0x98, +0x83, 0x45, 0x0E, 0x90, 0x0F, 0x91, 0x00, 0x6A, +0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6B, 0xCA, 0xF4, +0x18, 0x4B, 0x06, 0xD3, 0x40, 0x99, 0xC0, 0x98, 0x83, 0x67, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0x0C, 0x4A, 0xE0, 0x9A, 0x00, 0x6D, -0x80, 0x18, 0xD3, 0x4E, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF3, 0x0C, 0x4B, 0xC0, 0x98, 0x41, 0x99, +0xE2, 0xF3, 0x14, 0x4A, 0xE0, 0x9A, 0x00, 0x6D, +0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF3, 0x14, 0x4B, 0xC0, 0x98, 0x41, 0x99, 0xE0, 0x9B, 0x06, 0x94, 0x01, 0x6D, 0x04, 0xD2, -0x80, 0x18, 0xD3, 0x4E, 0x07, 0x92, 0x04, 0x48, +0x80, 0x18, 0x83, 0x45, 0x07, 0x92, 0x04, 0x48, 0x08, 0x49, 0x01, 0x4A, 0x07, 0xD2, 0x07, 0x93, 0xFF, 0x6A, 0x4C, 0xEB, 0x03, 0x73, 0x58, 0x67, 0x07, 0xD3, 0x08, 0xD2, 0xD6, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF0, 0x18, 0x9A, 0x06, 0x94, +0x20, 0x6A, 0xE2, 0xF3, 0x10, 0x9A, 0x06, 0x94, 0x78, 0x67, 0xF0, 0x67, 0x00, 0x6D, 0xDE, 0x6E, -0x04, 0xD3, 0x80, 0x18, 0xD3, 0x4E, 0x08, 0x92, +0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, 0x08, 0x92, 0x06, 0x94, 0xF0, 0x67, 0x01, 0x6D, 0xDE, 0x6E, -0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, 0x0D, 0x97, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF4, 0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, +0xE2, 0xF4, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, 0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x2C, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, 0x08, 0x4A, -0x40, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x6E, 0xF6, -0x08, 0x48, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, -0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, 0x34, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF5, 0x04, 0x4A, +0x40, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0xCA, 0xF4, +0x18, 0x48, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, +0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x04, 0x6B, 0x90, 0x67, 0x00, 0x6D, 0x33, 0x6E, -0x0F, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0xD3, 0x4E, +0x0F, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, 0x90, 0x67, 0xF1, 0x67, 0x03, 0x6A, 0x00, 0x6D, -0x3E, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF4, 0x58, 0x9A, +0x3E, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF5, 0x48, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, 0x3F, 0x6E, -0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, 0x00, 0x6B, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x00, 0x6B, 0xA3, 0x67, 0x90, 0x67, 0xF1, 0x67, 0xEF, 0x6E, -0x04, 0xD3, 0x80, 0x18, 0xD3, 0x4E, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF1, 0x08, 0x4A, 0x40, 0x9A, +0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF5, 0x04, 0x4A, 0x40, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, 0xEF, 0x6E, -0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, 0x04, 0x6B, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x04, 0x6B, 0x90, 0x67, 0x01, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, -0x04, 0xD3, 0x80, 0x18, 0xD3, 0x4E, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF4, 0x5C, 0x9A, 0x90, 0x67, +0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF5, 0x4C, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0xD3, 0x4E, 0x90, 0x67, 0xF1, 0x67, +0x80, 0x18, 0x83, 0x45, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6A, 0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0xD3, 0x4E, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF1, 0x08, 0x4B, 0x60, 0x9B, 0x90, 0x67, +0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF5, 0x04, 0x4B, 0x60, 0x9B, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, 0xEF, 0x6E, 0x04, 0xD3, -0x80, 0x18, 0xD3, 0x4E, 0x90, 0x67, 0x06, 0x6A, +0x80, 0x18, 0x83, 0x45, 0x90, 0x67, 0x06, 0x6A, 0x00, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0xD3, 0x4E, 0x03, 0x6B, 0x90, 0x67, +0x80, 0x18, 0x83, 0x45, 0x03, 0x6B, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, 0x3E, 0x6E, 0x04, 0xD3, -0x80, 0x18, 0xD3, 0x4E, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF4, 0x40, 0x9A, 0x90, 0x67, 0xF1, 0x67, +0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF5, 0x50, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, -0xD3, 0x4E, 0x00, 0x6A, 0x90, 0x67, 0xF1, 0x67, +0x83, 0x45, 0x00, 0x6A, 0x90, 0x67, 0xF1, 0x67, 0xA2, 0x67, 0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, -0xD3, 0x4E, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, -0x08, 0x4B, 0x60, 0x9B, 0x90, 0x67, 0xF1, 0x67, +0x83, 0x45, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF5, +0x04, 0x4B, 0x60, 0x9B, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, -0xD3, 0x4E, 0x90, 0x67, 0x06, 0x6A, 0x01, 0x6D, +0x83, 0x45, 0x90, 0x67, 0x06, 0x6A, 0x01, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0xD3, 0x4E, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, -0x44, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, -0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, +0x83, 0x45, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF5, +0x54, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, +0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x00, 0x6B, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, -0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xD3, 0x4E, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, 0x08, 0x4A, +0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF5, 0x04, 0x4A, 0x40, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, -0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, +0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x07, 0x6B, 0x90, 0x67, 0x00, 0x6D, 0x33, 0x6E, -0x0F, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0xD3, 0x4E, +0x0F, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, 0x90, 0x67, 0xF1, 0x67, 0x03, 0x6A, 0x00, 0x6D, -0x3E, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x48, 0x9A, +0x3E, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF5, 0x58, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, 0x3F, 0x6E, -0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, 0x00, 0x6B, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x00, 0x6B, 0xA3, 0x67, 0x90, 0x67, 0xF1, 0x67, 0xEF, 0x6E, -0x04, 0xD3, 0x80, 0x18, 0xD3, 0x4E, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF1, 0x08, 0x4A, 0x40, 0x9A, +0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF5, 0x04, 0x4A, 0x40, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, 0xEF, 0x6E, -0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, 0x07, 0x6B, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x07, 0x6B, 0x90, 0x67, 0x01, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, -0x04, 0xD3, 0x80, 0x18, 0xD3, 0x4E, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF4, 0x4C, 0x9A, 0x90, 0x67, +0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF5, 0x5C, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0xD3, 0x4E, 0x90, 0x67, 0xF1, 0x67, +0x80, 0x18, 0x83, 0x45, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6A, 0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0xD3, 0x4E, 0x00, 0x6B, 0xA3, 0x67, +0x80, 0x18, 0x83, 0x45, 0x00, 0x6B, 0xA3, 0x67, 0x90, 0x67, 0xF1, 0x67, 0x19, 0x6E, 0x04, 0xD3, -0x80, 0x18, 0xD3, 0x4E, 0x90, 0x67, 0xF1, 0x67, +0x80, 0x18, 0x83, 0x45, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6A, 0x01, 0x6D, 0x19, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0xD3, 0x4E, 0x09, 0x97, 0x08, 0x91, +0x80, 0x18, 0x83, 0x45, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xED, 0x06, 0xD4, 0x07, 0xD5, 0x01, 0x68, 0x00, 0x69, 0x85, 0xF5, -0x1C, 0x6C, 0xFF, 0x6D, 0x80, 0x18, 0x24, 0x39, +0x1C, 0x6C, 0xFF, 0x6D, 0x80, 0x18, 0xF4, 0x16, 0x55, 0x72, 0x11, 0x61, 0x07, 0x92, 0x03, 0x2A, 0x00, 0x68, 0x50, 0x67, 0x17, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF3, 0xA0, 0x9A, 0x03, 0xF3, -0x08, 0x6C, 0xFF, 0x68, 0x80, 0x18, 0x24, 0x39, +0x20, 0x6A, 0x62, 0xF3, 0xBC, 0x9A, 0x03, 0xF3, +0x08, 0x6C, 0xFF, 0x68, 0x80, 0x18, 0xF4, 0x16, 0x4C, 0xE8, 0x00, 0x6A, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x64, 0x6C, 0x01, 0x49, 0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE9, 0x01, 0x6A, 0xA1, 0xF3, 0x18, 0x59, 0x02, 0x61, 0x01, 0x68, 0x01, 0x10, 0xD7, 0x2A, -0x06, 0x95, 0x30, 0xF0, 0x20, 0x69, 0x6E, 0xF6, -0x08, 0x49, 0x91, 0x67, 0x00, 0x6A, 0x8F, 0x6E, +0x06, 0x95, 0x30, 0xF0, 0x20, 0x69, 0xCA, 0xF4, +0x18, 0x49, 0x91, 0x67, 0x00, 0x6A, 0x8F, 0x6E, 0x08, 0xF0, 0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0xD3, 0x4E, 0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x06, 0x95, 0x83, 0xF4, 0xF0, 0x9A, -0x91, 0x67, 0x00, 0x6E, 0x80, 0x18, 0xD3, 0x4E, +0x83, 0x45, 0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x06, 0x95, 0x02, 0xF5, 0xFC, 0x9A, +0x91, 0x67, 0x00, 0x6E, 0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x30, 0xF0, 0x20, 0x69, 0x40, 0xEA, 0x06, 0x92, 0x01, 0x6D, 0x08, 0x6B, 0x44, 0x36, 0xC0, 0xF3, 0x44, 0x99, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x6D, 0xEE, 0x40, 0xEA, 0x0A, 0x28, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, -0x23, 0xF3, 0x00, 0x6C, 0x83, 0xF3, 0xAC, 0x9B, +0x23, 0xF3, 0x00, 0x6C, 0x42, 0xF5, 0xA0, 0x9B, 0x02, 0x6E, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x99, 0x83, 0xF3, 0xAC, 0x9B, +0xC0, 0xF3, 0x44, 0x99, 0x42, 0xF5, 0xA0, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, @@ -67404,13 +46786,13 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x00, 0x6A, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x00, 0x68, 0x05, 0xD5, 0x04, 0xD4, 0x05, 0x92, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x0C, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, 0x14, 0x4B, 0xE0, 0x9B, 0xC0, 0x9A, 0x30, 0xF0, 0x20, 0x69, -0x6E, 0xF6, 0x08, 0x49, 0x91, 0x67, 0x00, 0x6D, -0x80, 0x18, 0x8E, 0x4E, 0x04, 0x93, 0x91, 0x67, +0xCA, 0xF4, 0x18, 0x49, 0x91, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x3E, 0x45, 0x04, 0x93, 0x91, 0x67, 0x01, 0x6D, 0x40, 0xDB, 0x05, 0x92, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF3, 0x0C, 0x4B, 0xE0, 0x9B, -0xC0, 0x9A, 0x01, 0x48, 0x80, 0x18, 0x8E, 0x4E, +0x20, 0x6B, 0xE2, 0xF3, 0x14, 0x4B, 0xE0, 0x9B, +0xC0, 0x9A, 0x01, 0x48, 0x80, 0x18, 0x3E, 0x45, 0x04, 0x93, 0x41, 0xDB, 0xFF, 0x6A, 0x4C, 0xE8, 0x05, 0x92, 0x08, 0x4B, 0x03, 0x70, 0x04, 0x4A, 0x05, 0xD2, 0x04, 0xD3, 0xD8, 0x61, 0x09, 0x97, @@ -67420,54 +46802,100 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x2C, 0xE8, 0xC0, 0xF3, 0x44, 0x9A, 0x08, 0x6B, 0x04, 0x36, 0x01, 0x6D, 0x6D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF3, 0xEC, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0x6E, 0xF6, 0x08, 0x4C, 0xB0, 0x67, -0x58, 0x6E, 0x80, 0x18, 0x8E, 0x4E, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF4, 0x70, 0x9B, 0x4C, 0xEB, +0x20, 0x6A, 0xE2, 0xF3, 0xF4, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xCA, 0xF4, 0x18, 0x4C, 0xB0, 0x67, +0x58, 0x6E, 0x80, 0x18, 0x3E, 0x45, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF5, 0x64, 0x9B, 0x4C, 0xEB, 0x62, 0x33, 0x7A, 0x33, 0x2C, 0xEB, 0x0B, 0x23, 0x3F, 0x73, 0x09, 0x60, 0x07, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, 0x62, 0x32, 0x2C, 0xEA, 0x03, 0x22, 0x3F, 0x72, 0x00, 0x6A, 0x56, 0x61, 0x30, 0xF0, -0x20, 0x69, 0x6E, 0xF6, 0x08, 0x49, 0x00, 0x6A, +0x20, 0x69, 0xCA, 0xF4, 0x18, 0x49, 0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x57, 0x6E, 0x01, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, 0x01, 0x6A, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, 0x10, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, 0x30, 0xF0, -0x20, 0x6A, 0xAF, 0xF1, 0x54, 0xA2, 0x01, 0x22, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, +0x20, 0x6A, 0xAA, 0xF7, 0x40, 0xA2, 0x01, 0x22, 0x20, 0x6A, 0x91, 0x67, 0x30, 0xF0, 0x20, 0x69, -0x6E, 0xF6, 0x08, 0x49, 0xB0, 0x67, 0x33, 0x6E, -0x7F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, +0xCA, 0xF4, 0x18, 0x49, 0xB0, 0x67, 0x33, 0x6E, +0x7F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x20, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, 0x07, 0xF7, 0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0xD3, 0x4E, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, -0xF0, 0x9A, 0x20, 0x6B, 0x91, 0x67, 0xB0, 0x67, -0x08, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xD3, 0x4E, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x0C, 0x4A, +0x83, 0x45, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF5, +0xE4, 0x9A, 0x20, 0x6B, 0x91, 0x67, 0xB0, 0x67, +0x08, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, 0x14, 0x4A, 0xE0, 0x9A, 0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, -0x80, 0x18, 0x8E, 0x4E, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF3, 0x0C, 0x4B, 0xE0, 0x9B, 0x91, 0x67, -0xB0, 0x67, 0x58, 0x6E, 0x80, 0x18, 0x8E, 0x4E, +0x80, 0x18, 0x3E, 0x45, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF3, 0x14, 0x4B, 0xE0, 0x9B, 0x91, 0x67, +0xB0, 0x67, 0x58, 0x6E, 0x80, 0x18, 0x3E, 0x45, 0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, -0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, +0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x01, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x68, 0x0C, 0xEC, +0x01, 0x74, 0xAC, 0xE8, 0x80, 0xF0, 0x0A, 0x60, +0x07, 0x24, 0x02, 0x74, 0x80, 0xF0, 0x1C, 0x60, +0x03, 0x74, 0x80, 0xF0, 0x1D, 0x60, 0xA1, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0xA7, 0xF5, 0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x30, 0xF0, 0x20, 0x6D, 0xA7, 0xF5, 0x6C, 0xDA, +0x00, 0x6E, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF3, 0x18, 0x4C, 0x2B, 0xF3, +0x10, 0x4B, 0x2B, 0xF3, 0x0C, 0x4A, 0x0B, 0xF1, +0x1A, 0x4D, 0x04, 0xD6, 0xC0, 0x9C, 0x04, 0x97, +0x00, 0x69, 0xC2, 0xDC, 0xC0, 0xAB, 0xC3, 0xF6, +0x10, 0x4F, 0xE4, 0x37, 0xC2, 0xCB, 0xC0, 0xA2, +0x06, 0xD5, 0x05, 0xD1, 0xC2, 0xC2, 0x30, 0xF0, +0x20, 0x6E, 0x63, 0xF5, 0x18, 0x4E, 0xFD, 0xE6, +0xC0, 0xA7, 0x22, 0x68, 0x04, 0x91, 0xC4, 0xC7, +0x05, 0x96, 0x18, 0xEE, 0x44, 0x6E, 0x12, 0xE8, +0xD8, 0xE9, 0x30, 0xF0, 0x20, 0x69, 0x63, 0xF5, +0x18, 0x49, 0x12, 0xEE, 0xC1, 0xE0, 0x87, 0xF3, +0xC0, 0x40, 0x87, 0xF4, 0x10, 0x48, 0xD9, 0xE1, +0x01, 0xE1, 0x20, 0xAE, 0x80, 0xF0, 0x28, 0xCE, +0x20, 0xA8, 0x02, 0x4E, 0x80, 0xF0, 0x28, 0xC8, +0x06, 0x91, 0x02, 0x48, 0x2A, 0xEE, 0xF5, 0x61, +0x05, 0x96, 0x22, 0x49, 0x01, 0x4F, 0x01, 0x4E, +0x02, 0x76, 0x05, 0xD6, 0x06, 0xD1, 0xD8, 0x61, +0x04, 0x91, 0x04, 0x4C, 0x02, 0x4B, 0x01, 0x49, +0x02, 0x71, 0x04, 0xD1, 0x01, 0x4A, 0x44, 0x4D, +0xBD, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF3, +0x0C, 0x4B, 0x44, 0x43, 0xA7, 0x43, 0x16, 0x4D, +0xC2, 0x67, 0x00, 0x6C, 0x80, 0xC3, 0x01, 0x4B, +0x00, 0x6C, 0xCA, 0xEB, 0x80, 0xCA, 0xFF, 0xF7, +0x88, 0xC2, 0x20, 0xF0, 0x85, 0xC2, 0xFF, 0xF7, +0x89, 0xC2, 0x20, 0xF0, 0x86, 0xC2, 0x80, 0xC5, +0x81, 0xC5, 0x82, 0xC5, 0x02, 0x4A, 0x03, 0x4D, +0xEC, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, +0x18, 0x4A, 0xA7, 0xF5, 0x70, 0x9A, 0xA7, 0xF5, +0x68, 0xDA, 0x1F, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF3, 0xF4, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xB0, 0x67, 0xCA, 0xF4, 0x18, 0x4C, 0x58, 0x6E, +0x80, 0x18, 0x3E, 0x45, 0x61, 0xF7, 0x10, 0x48, +0x30, 0xF0, 0x20, 0x6B, 0x08, 0x30, 0x63, 0xF5, +0x18, 0x4B, 0x6D, 0xE0, 0x40, 0xDB, 0x09, 0x10, +0x00, 0x6C, 0xB0, 0x67, 0xC4, 0x67, 0x03, 0x10, +0x01, 0x6C, 0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, +0x52, 0x09, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x04, 0x67, 0x4C, 0xE8, 0xAC, 0xEA, 0x0E, 0x22, 0x08, 0x6A, 0x04, 0x31, 0x4D, 0xE9, 0x01, 0x6B, 0x44, 0x40, -0x64, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x6E, 0xF6, -0x08, 0x4A, 0x06, 0xD2, 0x6D, 0xE9, 0x06, 0x6A, +0x64, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xCA, 0xF4, +0x18, 0x4A, 0x06, 0xD2, 0x6D, 0xE9, 0x06, 0x6A, 0x0D, 0x10, 0x08, 0x6A, 0x04, 0x31, 0x4D, 0xE9, 0x01, 0x6B, 0x44, 0x40, 0x64, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x6E, 0xF6, 0x08, 0x4A, 0x06, 0xD2, +0x20, 0x6A, 0xCA, 0xF4, 0x18, 0x4A, 0x06, 0xD2, 0x6D, 0xE9, 0x04, 0x6A, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x06, 0x94, 0x83, 0xF4, 0xF0, 0x9A, -0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, 0xD3, 0x4E, +0x20, 0x6A, 0x06, 0x94, 0x02, 0xF5, 0xFC, 0x9A, +0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, 0x83, 0x45, 0x06, 0x94, 0x08, 0xF0, 0x00, 0x6F, 0x01, 0x6B, 0x8F, 0x6E, 0xB0, 0x67, 0x04, 0xD3, 0x80, 0x18, -0xD3, 0x4E, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x83, 0x45, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x01, 0x6C, -0x80, 0x18, 0x96, 0x20, 0x90, 0x67, 0x00, 0x6D, -0x80, 0x18, 0xFE, 0x1F, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0x18, 0x2C, 0x09, 0x90, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x94, 0x08, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, 0xD1, 0x67, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, @@ -67475,1820 +46903,601 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0xEF, 0x6E, 0x10, 0x6F, -0x00, 0x6A, 0x6E, 0xF6, 0x08, 0x4C, 0xB0, 0x67, -0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, 0x01, 0x6D, -0x90, 0x67, 0x80, 0x18, 0xFE, 0x1F, 0x00, 0x6C, -0x80, 0x18, 0x96, 0x20, 0x90, 0x67, 0x00, 0x6D, -0x80, 0x18, 0xCC, 0x23, 0x22, 0x67, 0x04, 0x2A, -0x01, 0x6C, 0xB0, 0x67, 0x00, 0x18, 0x50, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x41, 0xE0, 0x68, 0xF4, 0x2D, 0xC0, 0x51, 0x67, +0x00, 0x6A, 0xCA, 0xF4, 0x18, 0x4C, 0xB0, 0x67, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x01, 0x6D, +0x90, 0x67, 0x80, 0x18, 0x94, 0x08, 0x00, 0x6C, +0x80, 0x18, 0x2C, 0x09, 0x90, 0x67, 0x00, 0x6D, +0x80, 0x18, 0xB4, 0x0C, 0x22, 0x67, 0x04, 0x2A, +0x01, 0x6C, 0xB0, 0x67, 0x80, 0x18, 0x57, 0x0D, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0x41, 0xE0, 0x27, 0xF2, 0x39, 0xC0, 0x51, 0x67, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x04, 0x67, 0x4C, 0xED, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0xAF, 0xF1, 0x55, 0xA2, 0x06, 0x6B, 0x08, 0xD5, +0xAA, 0xF7, 0x41, 0xA2, 0x06, 0x6B, 0x08, 0xD5, 0x4E, 0xEB, 0x01, 0x5B, 0x98, 0x67, 0x07, 0xD4, 0x16, 0x2D, 0x04, 0x24, 0xFF, 0x6A, 0x04, 0x33, 0x01, 0x4A, 0x03, 0x10, 0x04, 0x4A, 0x04, 0x33, 0x40, 0x32, 0x4D, 0xEB, 0x84, 0x40, 0x01, 0x6A, 0x44, 0xEC, 0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, -0x6E, 0xF6, 0x08, 0x4A, 0x08, 0x69, 0x06, 0xD2, +0xCA, 0xF4, 0x18, 0x4A, 0x08, 0x69, 0x06, 0xD2, 0x6D, 0xE9, 0x04, 0x6A, 0x19, 0x10, 0x08, 0x93, 0x01, 0x73, 0x22, 0x61, 0x07, 0x94, 0x04, 0x24, 0xFF, 0x6A, 0x04, 0x33, 0x01, 0x4A, 0x03, 0x10, 0x07, 0x4A, 0x04, 0x33, 0x40, 0x32, 0x4D, 0xEB, 0x84, 0x40, 0x01, 0x6A, 0x44, 0xEC, 0x4D, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0x6E, 0xF6, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0xCA, 0xF4, 0x18, 0x4A, 0x08, 0x69, 0x06, 0xD2, 0x6D, 0xE9, 0x06, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0x94, -0x83, 0xF4, 0xF0, 0x9A, 0xB0, 0x67, 0x00, 0x6E, -0x80, 0x18, 0xD3, 0x4E, 0x01, 0x6A, 0x25, 0x10, +0x02, 0xF5, 0xFC, 0x9A, 0xB0, 0x67, 0x00, 0x6E, +0x80, 0x18, 0x83, 0x45, 0x01, 0x6A, 0x25, 0x10, 0x08, 0x93, 0x00, 0x69, 0x02, 0x73, 0x2F, 0x61, 0x07, 0x94, 0x04, 0x24, 0xFF, 0x6A, 0x04, 0x33, 0x01, 0x4A, 0x03, 0x10, 0x0A, 0x4A, 0x04, 0x33, 0x40, 0x32, 0x4D, 0xEB, 0x84, 0x40, 0x01, 0x6A, 0x44, 0xEC, 0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, -0x6E, 0xF6, 0x08, 0x4A, 0x06, 0xD2, 0x07, 0x6A, +0xCA, 0xF4, 0x18, 0x4A, 0x06, 0xD2, 0x07, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0x94, -0x83, 0xF4, 0xF0, 0x9A, 0x08, 0x69, 0xB0, 0x67, -0x00, 0x6E, 0x6D, 0xE9, 0x80, 0x18, 0xD3, 0x4E, +0x02, 0xF5, 0xFC, 0x9A, 0x08, 0x69, 0xB0, 0x67, +0x00, 0x6E, 0x6D, 0xE9, 0x80, 0x18, 0x83, 0x45, 0x00, 0x6A, 0x06, 0x94, 0xB0, 0x67, 0x8F, 0x6E, 0x08, 0xF0, 0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0xD3, 0x4E, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x83, 0x45, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x01, 0x6C, -0x80, 0x18, 0x96, 0x20, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0x18, 0x2C, 0x09, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0xD1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF3, 0x44, 0x9C, 0x01, 0x6D, 0xC1, 0x41, 0xAB, 0xED, 0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, 0x40, 0xEA, -0x01, 0x6D, 0x90, 0x67, 0x80, 0x18, 0xCC, 0x23, -0x00, 0x6C, 0x06, 0xD2, 0x80, 0x18, 0x96, 0x20, +0x01, 0x6D, 0x90, 0x67, 0x80, 0x18, 0xB4, 0x0C, +0x00, 0x6C, 0x06, 0xD2, 0x80, 0x18, 0x2C, 0x09, 0x04, 0x32, 0x09, 0xD2, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x09, 0x93, 0x01, 0x6D, 0x08, 0x6E, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x6D, 0xEE, 0x40, 0xEA, 0x08, 0x94, 0x1C, 0x2C, 0x7D, 0x67, 0x87, 0x43, 0x11, 0x4C, 0x60, 0xA4, -0x30, 0xF0, 0x20, 0x69, 0xE4, 0xF3, 0x48, 0x40, -0x06, 0x94, 0x44, 0x32, 0x46, 0xF5, 0x18, 0x49, -0x29, 0xE2, 0x64, 0xC2, 0x48, 0x2C, 0x07, 0x92, +0x30, 0xF0, 0x20, 0x69, 0xD3, 0xF6, 0x40, 0x40, +0x06, 0x94, 0x44, 0x32, 0x63, 0xF5, 0x18, 0x49, +0x29, 0xE2, 0x60, 0xC2, 0x48, 0x2C, 0x07, 0x92, 0x09, 0x22, 0x01, 0x6D, 0x23, 0xF3, 0x18, 0x4C, -0xAB, 0xED, 0x80, 0x18, 0x24, 0x39, 0x02, 0xF2, -0x08, 0x48, 0x35, 0x10, 0x02, 0x6C, 0x38, 0x10, +0xAB, 0xED, 0x80, 0x18, 0xF4, 0x16, 0x61, 0xF7, +0x1C, 0x48, 0x35, 0x10, 0x02, 0x6C, 0x38, 0x10, 0x08, 0x93, 0x02, 0x73, 0x38, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF3, 0xEC, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0x30, 0xF0, 0x20, 0x69, 0x46, 0xF5, -0x18, 0x49, 0x6E, 0xF6, 0x08, 0x4C, 0xB0, 0x67, -0x00, 0x6E, 0x80, 0x18, 0x8E, 0x4E, 0x68, 0xF4, -0x82, 0xA1, 0xFF, 0x6B, 0x56, 0x32, 0x6C, 0xEA, -0x80, 0x34, 0xF4, 0xF3, 0x64, 0x40, 0x8D, 0xEA, -0x64, 0x33, 0x09, 0x94, 0x2D, 0xE3, 0x42, 0xCB, +0x20, 0x6A, 0xE2, 0xF3, 0xF4, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x69, 0x63, 0xF5, +0x18, 0x49, 0xCA, 0xF4, 0x18, 0x4C, 0xB0, 0x67, +0x00, 0x6E, 0x80, 0x18, 0x3E, 0x45, 0x27, 0xF2, +0x8E, 0xA1, 0xFF, 0x6B, 0x56, 0x32, 0x6C, 0xEA, +0x80, 0x34, 0xD3, 0xF6, 0x6C, 0x40, 0x8D, 0xEA, +0x64, 0x33, 0x09, 0x94, 0x2D, 0xE3, 0x40, 0xCB, 0x7D, 0x67, 0x29, 0xE4, 0x87, 0x43, 0x11, 0x4C, -0x60, 0xA4, 0x06, 0x94, 0xC8, 0xF7, 0x75, 0xC2, +0x60, 0xA4, 0x06, 0x94, 0xA7, 0xF5, 0x61, 0xC2, 0x12, 0x2C, 0x07, 0x92, 0x0C, 0x22, 0x01, 0x6D, 0x23, 0xF3, 0x1C, 0x4C, 0xAB, 0xED, 0x80, 0x18, -0x24, 0x39, 0x02, 0xF2, 0x0A, 0x48, 0x08, 0x30, -0x25, 0xE0, 0x41, 0xD9, 0x04, 0x10, 0x03, 0x6C, -0xB0, 0x67, 0x00, 0x18, 0x50, 0xC2, 0x06, 0x92, +0xF4, 0x16, 0x61, 0xF7, 0x1E, 0x48, 0x08, 0x30, +0x25, 0xE0, 0x40, 0xD9, 0x04, 0x10, 0x03, 0x6C, +0xB0, 0x67, 0x80, 0x18, 0x57, 0x0D, 0x06, 0x92, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF7, 0x63, 0x11, 0x62, +0x10, 0xD1, 0x0F, 0xD0, 0xFF, 0x6A, 0x04, 0x67, +0x4C, 0xE8, 0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF5, 0x18, 0x4A, 0x27, 0xF2, 0x69, 0xA2, +0x30, 0xF0, 0x20, 0x6C, 0x6B, 0xF3, 0x08, 0x4C, +0x0D, 0xD3, 0xB0, 0xF7, 0x68, 0x40, 0x6C, 0x33, +0x6D, 0xE2, 0x0C, 0xD5, 0x0A, 0xD3, 0x08, 0xD4, +0x00, 0x69, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF3, 0x14, 0x4B, 0xE0, 0x9B, 0xFF, 0x6A, +0x30, 0xF0, 0x20, 0x68, 0xCA, 0xF4, 0x18, 0x48, +0x2C, 0xEA, 0x90, 0x67, 0xA2, 0x67, 0xDF, 0x6E, +0x06, 0xD2, 0x80, 0x18, 0x3E, 0x45, 0x10, 0x6B, +0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, +0x14, 0x4A, 0x06, 0x95, 0xE0, 0x9A, 0x90, 0x67, +0xDF, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, +0x0A, 0x93, 0x06, 0x95, 0x90, 0x67, 0x40, 0x9B, +0x58, 0x6E, 0x30, 0xF0, 0x20, 0x68, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, 0x14, 0x4A, +0xE0, 0x9A, 0x80, 0x18, 0x83, 0x45, 0xC0, 0xF3, +0x44, 0x98, 0x08, 0x6B, 0x24, 0x36, 0x01, 0x6D, +0x6D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, +0x0C, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x0D, 0x93, 0x06, 0x73, 0x1C, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF3, 0xBC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x08, 0x93, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xC0, 0x9B, 0x23, 0xF3, 0x18, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x08, 0x93, 0x01, 0x6D, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x1C, 0x6C, +0xAB, 0xED, 0xC2, 0x9B, 0x21, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF3, 0xBC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, +0x18, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, +0x01, 0x6D, 0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x0C, 0x94, 0x06, 0x24, 0x00, 0x6A, +0x01, 0x74, 0x06, 0xD2, 0xC0, 0xF0, 0x05, 0x61, +0x62, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x02, 0xF4, +0xA8, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x03, 0x6E, +0x40, 0xEA, 0x44, 0x6B, 0x78, 0xE9, 0x09, 0x94, +0x88, 0x6A, 0x00, 0x68, 0x12, 0xEB, 0x58, 0xEC, +0x12, 0xEA, 0x4D, 0xE3, 0x30, 0xF0, 0x20, 0x6A, +0x87, 0xF3, 0x00, 0x4B, 0x63, 0xF5, 0x18, 0x4A, +0x69, 0xE2, 0x06, 0xD2, 0x06, 0x92, 0x01, 0x6D, +0xC3, 0xF3, 0x18, 0x6C, 0xC0, 0xAA, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF4, 0x54, 0x9A, 0xC0, 0x36, +0xAB, 0xED, 0x4D, 0xEE, 0x08, 0x32, 0x4D, 0xEE, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x02, 0x4E, 0x01, 0x48, 0x40, 0xEA, 0x06, 0x93, +0x11, 0x70, 0x02, 0x4B, 0x06, 0xD3, 0xE6, 0x61, +0x44, 0x6B, 0x78, 0xE9, 0x09, 0x94, 0x88, 0x6A, +0x00, 0x68, 0x12, 0xEB, 0x58, 0xEC, 0x12, 0xEA, +0x4D, 0xE3, 0x30, 0xF0, 0x20, 0x6A, 0x87, 0xF4, +0x10, 0x4B, 0x63, 0xF5, 0x18, 0x4A, 0x69, 0xE2, +0x06, 0xD2, 0x06, 0x92, 0x08, 0x33, 0x01, 0x6D, +0xC0, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF4, +0x54, 0x9A, 0xC0, 0x36, 0xC3, 0xF3, 0x18, 0x6C, +0x4D, 0xEE, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x6D, 0xEE, 0xAB, 0xED, 0x40, 0xEA, +0x06, 0x93, 0x01, 0x48, 0x11, 0x70, 0x02, 0x4B, +0x06, 0xD3, 0xE7, 0x61, 0xE7, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x02, 0xF4, 0xA8, 0x9B, 0x23, 0xF3, +0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x44, 0x6B, +0x78, 0xE9, 0x09, 0x94, 0x88, 0x6A, 0x00, 0x68, +0x12, 0xEB, 0x58, 0xEC, 0x12, 0xEA, 0x4D, 0xE3, +0x30, 0xF0, 0x20, 0x6A, 0xA7, 0xF3, 0x02, 0x4B, +0x63, 0xF5, 0x18, 0x4A, 0x69, 0xE2, 0x06, 0xD2, +0x06, 0x92, 0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, +0xC0, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF4, +0x58, 0x9A, 0xC0, 0x36, 0xAB, 0xED, 0x4D, 0xEE, +0x08, 0x32, 0x4D, 0xEE, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x02, 0x4E, 0x01, 0x48, +0x40, 0xEA, 0x06, 0x93, 0x11, 0x70, 0x02, 0x4B, +0x06, 0xD3, 0xE6, 0x61, 0x44, 0x6B, 0x78, 0xE9, +0x09, 0x94, 0x88, 0x6A, 0x00, 0x68, 0x12, 0xEB, +0x58, 0xEC, 0x12, 0xEA, 0x4D, 0xE3, 0x30, 0xF0, +0x20, 0x6A, 0xA7, 0xF4, 0x12, 0x4B, 0x63, 0xF5, +0x18, 0x4A, 0x69, 0xE2, 0x06, 0xD2, 0x06, 0x92, +0x08, 0x33, 0x01, 0x6D, 0xC0, 0xAA, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF4, 0x58, 0x9A, 0xC0, 0x36, +0xC3, 0xF3, 0x18, 0x6C, 0x4D, 0xEE, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x6D, 0xEE, +0xAB, 0xED, 0x40, 0xEA, 0x06, 0x93, 0x01, 0x48, +0x11, 0x70, 0x02, 0x4B, 0x06, 0xD3, 0xE7, 0x61, +0x85, 0x10, 0x06, 0x94, 0xFF, 0x6A, 0x8C, 0xEA, +0x11, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x02, 0xF4, +0xA8, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x03, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF4, +0x54, 0x9A, 0x10, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x02, 0xF4, 0xA8, 0x9B, 0x23, 0xF3, 0x00, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF4, 0x58, 0x9A, 0x0B, 0xD2, 0x06, 0x92, +0x22, 0x6B, 0x09, 0x94, 0x78, 0xEA, 0x44, 0x6A, +0x00, 0x68, 0x12, 0xEB, 0x58, 0xE9, 0x12, 0xEA, +0x4D, 0xE3, 0x88, 0x6A, 0x58, 0xEC, 0x12, 0xEA, +0x4D, 0xE3, 0x30, 0xF0, 0x20, 0x6A, 0x87, 0xF3, +0x00, 0x4B, 0x63, 0xF5, 0x18, 0x4A, 0x69, 0xE2, +0x07, 0xD2, 0x07, 0x92, 0x0B, 0x93, 0x01, 0x6D, +0xC0, 0xAA, 0x08, 0x32, 0xC3, 0xF3, 0x18, 0x6C, +0xC0, 0x36, 0x6D, 0xEE, 0x4D, 0xEE, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0xAB, 0xED, +0x02, 0x4E, 0x40, 0xEA, 0x07, 0x94, 0x01, 0x48, +0x11, 0x70, 0x02, 0x4C, 0x07, 0xD4, 0xE9, 0x61, +0x06, 0x92, 0x22, 0x6B, 0x09, 0x94, 0x78, 0xEA, +0x44, 0x6A, 0x00, 0x68, 0x12, 0xEB, 0x58, 0xE9, +0x12, 0xEA, 0x4D, 0xE3, 0x88, 0x6A, 0x58, 0xEC, +0x12, 0xEA, 0x4D, 0xE3, 0x30, 0xF0, 0x20, 0x6A, +0x87, 0xF4, 0x10, 0x4B, 0x63, 0xF5, 0x18, 0x4A, +0x69, 0xE2, 0x07, 0xD2, 0x07, 0x92, 0x0B, 0x93, +0x01, 0x6D, 0xC0, 0xAA, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0xC0, 0x36, 0x6D, 0xEE, +0x08, 0x33, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x6D, 0xEE, 0x40, 0xEA, 0x07, 0x94, 0x01, 0x48, +0x11, 0x70, 0x02, 0x4C, 0x07, 0xD4, 0xEA, 0x61, +0x06, 0x92, 0x01, 0x4A, 0x02, 0x72, 0x06, 0xD2, +0x7F, 0xF7, 0x1B, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0xE2, 0xF3, 0xDC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x02, 0xF4, 0xA8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x00, 0x6B, 0x06, 0xD3, 0x06, 0x93, +0x06, 0x92, 0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6C, +0x8C, 0xEA, 0x64, 0x36, 0xC0, 0xF3, 0x64, 0x98, +0x07, 0xD2, 0x01, 0x6D, 0x08, 0x6A, 0x4D, 0xEE, +0x03, 0xF2, 0x01, 0x4C, 0xAB, 0xED, 0x40, 0xEB, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, 0xBC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF4, +0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, +0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x03, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x07, 0x95, +0x02, 0xF5, 0xFC, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xCA, 0xF4, 0x18, 0x4C, 0x00, 0x6E, 0x80, 0x18, +0x83, 0x45, 0x06, 0x94, 0x01, 0x4C, 0x02, 0x74, +0x06, 0xD4, 0xA9, 0x61, 0x0A, 0x92, 0x08, 0x93, +0x01, 0x49, 0x04, 0x4A, 0x04, 0x4B, 0x02, 0x71, +0x0A, 0xD2, 0x08, 0xD3, 0xBF, 0xF5, 0x16, 0x61, +0x11, 0x97, 0x10, 0x91, 0x0F, 0x90, 0x09, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x30, 0xF0, -0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, 0x00, 0x6B, -0x8C, 0xEA, 0x29, 0xF0, 0x60, 0xC0, 0x27, 0x2A, -0x48, 0xF4, 0x5E, 0xA0, 0x24, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF3, 0xEC, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0x6E, 0xF6, 0x08, 0x4C, 0x00, 0x6D, -0x18, 0x6E, 0x80, 0x18, 0x8E, 0x4E, 0xC8, 0xF7, -0x7C, 0x98, 0xE8, 0xF7, 0x44, 0xD8, 0x00, 0x69, -0x4E, 0xEB, 0x05, 0x23, 0xE8, 0xF7, 0x60, 0x98, -0x6E, 0xEA, 0x0D, 0x2A, 0x01, 0x69, 0x91, 0x67, -0x02, 0x6D, 0x80, 0x18, 0xDA, 0x48, 0x91, 0x67, -0x80, 0x18, 0xA8, 0x48, 0x01, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0x6F, 0xF5, 0x78, 0xC2, 0x30, 0xF0, -0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x29, 0xF0, -0xC0, 0xA0, 0xC0, 0xF3, 0x44, 0x9A, 0xA3, 0xF0, -0xB8, 0x9B, 0xE3, 0xF3, 0x10, 0x6C, 0x40, 0xEA, -0x29, 0xF0, 0x40, 0xA0, 0x07, 0x97, 0x06, 0x91, +0x20, 0x68, 0x63, 0xF5, 0x18, 0x48, 0x00, 0x6B, +0x8C, 0xEA, 0xE7, 0xF5, 0x6C, 0xC0, 0x2A, 0x2A, +0x27, 0xF2, 0x4A, 0xA0, 0x27, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF3, 0xF4, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xCA, 0xF4, 0x18, 0x4C, 0x00, 0x6D, +0x18, 0x6E, 0x80, 0x18, 0x3E, 0x45, 0xA7, 0xF5, +0x68, 0x98, 0xA7, 0xF5, 0x50, 0xD8, 0x00, 0x69, +0x4E, 0xEB, 0x05, 0x23, 0xA7, 0xF5, 0x6C, 0x98, +0x6E, 0xEA, 0x10, 0x2A, 0x01, 0x69, 0x02, 0x6D, +0x91, 0x67, 0x80, 0x18, 0x81, 0x0E, 0x91, 0x67, +0x80, 0x18, 0x33, 0x05, 0x01, 0x6C, 0x80, 0x18, +0x64, 0x05, 0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF3, 0x64, 0xC2, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x08, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x69, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF5, 0x18, 0x49, 0xE2, 0xF3, 0x10, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xE7, 0xF5, +0xCC, 0xA1, 0xE3, 0xF3, 0x10, 0x6C, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x0A, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, 0x10, 0x4B, +0xC0, 0xF3, 0x44, 0x98, 0xE7, 0xF5, 0xCC, 0xA1, +0xA0, 0x9B, 0xE3, 0xF3, 0x10, 0x6C, 0x40, 0xEA, +0xE7, 0xF5, 0x4C, 0xA1, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF0, 0xB4, 0x9A, 0x63, 0xF6, 0x1C, 0x6C, -0x80, 0x18, 0x24, 0x39, 0x06, 0x22, 0x01, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0x4F, 0xF5, 0x7C, 0xC2, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x4F, 0xF5, -0x5C, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, -0xEC, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x6E, 0xF6, -0x08, 0x4C, 0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, -0x8E, 0x4E, 0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF0, -0x98, 0x9C, 0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, -0x18, 0x4B, 0x4C, 0xEC, 0x82, 0x34, 0x82, 0x34, -0x68, 0xF4, 0x8A, 0xC3, 0x06, 0xF0, 0x00, 0x6C, -0x4C, 0xEC, 0x82, 0x34, 0x92, 0x34, 0x68, 0xF4, -0x4B, 0xC3, 0x68, 0xF4, 0x8C, 0xC3, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, 0xB8, 0x9A, +0x63, 0xF6, 0x1C, 0x6C, 0x80, 0x18, 0xF4, 0x16, +0x06, 0x22, 0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x4B, 0xF3, 0x68, 0xC2, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x4B, 0xF3, 0x48, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF3, 0x14, 0x4A, 0xE0, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0xCA, 0xF4, 0x18, 0x48, +0x90, 0x67, 0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, +0x3E, 0x45, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, +0x14, 0x4B, 0xE0, 0x9B, 0x90, 0x67, 0x00, 0x6D, +0x18, 0x6E, 0x22, 0x67, 0x80, 0x18, 0x3E, 0x45, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x18, 0x4B, +0xA7, 0xF5, 0x50, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF3, 0x50, 0x9A, 0x27, 0xF2, 0x37, 0xC3, +0x2C, 0xEA, 0x42, 0x32, 0x42, 0x32, 0x27, 0xF2, +0x56, 0xC3, 0x06, 0xF0, 0x00, 0x6A, 0x2C, 0xEA, +0x42, 0x32, 0x52, 0x32, 0x27, 0xF2, 0x58, 0xC3, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, 0x80, 0x18, -0x64, 0x25, 0x03, 0x28, 0x00, 0x6C, 0xA4, 0x67, -0x07, 0x10, 0x01, 0x70, 0x03, 0x61, 0x00, 0x6C, -0x01, 0x6D, 0x02, 0x10, 0x00, 0x6C, 0x02, 0x6D, -0x80, 0x18, 0xDA, 0x48, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x24, 0x67, -0x4C, 0xE9, 0xAC, 0xEA, 0x01, 0x72, 0x43, 0x61, -0x44, 0x41, 0x01, 0x6B, 0x64, 0xEA, 0x00, 0xF2, -0x08, 0x6A, 0x4D, 0xEB, 0x04, 0x6A, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF4, 0xF0, 0x9A, -0x30, 0xF0, 0x20, 0x68, 0x6E, 0xF6, 0x08, 0x48, -0x90, 0x67, 0xB1, 0x67, 0x00, 0x6E, 0x06, 0xD3, -0x80, 0x18, 0xD3, 0x4E, 0x01, 0x6C, 0x08, 0xF0, -0x00, 0x6F, 0xB1, 0x67, 0x04, 0xD4, 0x8F, 0x6E, -0x90, 0x67, 0x80, 0x18, 0xD3, 0x4E, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x30, 0xF0, -0x20, 0x68, 0x0A, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x06, 0x96, 0x01, 0x6D, 0x03, 0xF3, -0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x06, 0x96, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xAB, 0xED, -0x01, 0x4E, 0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, -0x01, 0x6C, 0x40, 0xEA, 0x91, 0x67, 0x01, 0x6D, -0x80, 0x18, 0xCC, 0x23, 0xF0, 0x10, 0x02, 0x72, -0x01, 0x6A, 0xE0, 0xF0, 0x0C, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xAF, 0xF1, 0x5A, 0xA2, 0x00, 0x68, -0x09, 0x72, 0x0C, 0x60, 0x12, 0x72, 0x01, 0x68, -0x09, 0x60, 0x1B, 0x72, 0x02, 0x68, 0x06, 0x60, -0x24, 0x68, 0x4E, 0xE8, 0x01, 0x58, 0x18, 0x67, -0x04, 0x6A, 0x03, 0xE2, 0x24, 0x32, 0x08, 0xD2, -0x08, 0x93, 0x08, 0x6A, 0x30, 0xF0, 0x20, 0x6C, -0x4D, 0xEB, 0xC0, 0xF3, 0x44, 0x9C, 0x01, 0x6D, -0xC3, 0x67, 0x08, 0xD3, 0x03, 0xF3, 0x00, 0x6C, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x06, 0xD2, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x06, 0x93, -0x01, 0x6D, 0xAB, 0xED, 0x68, 0xF4, 0xC2, 0xA3, -0xC3, 0xF3, 0x0C, 0x6C, 0x40, 0xEA, 0x44, 0x41, -0x01, 0x6C, 0x30, 0xF0, 0x20, 0x6B, 0x84, 0xEA, -0x00, 0xF3, 0x08, 0x6A, 0x4D, 0xEC, 0x80, 0xF3, -0x4C, 0x9B, 0x07, 0xD4, 0x0A, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF3, 0x44, 0x9C, -0x07, 0x96, 0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x07, 0x96, 0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, -0xAB, 0xED, 0x01, 0x4E, 0x03, 0xF3, 0x00, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0x80, 0xF3, -0x4C, 0x9C, 0xC8, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF3, 0x0C, 0x4B, 0xE0, 0x9B, -0x30, 0xF0, 0x20, 0x6A, 0x6E, 0xF6, 0x08, 0x4A, -0x82, 0x67, 0xB1, 0x67, 0x00, 0x6E, 0x07, 0xD2, -0x80, 0x18, 0x8E, 0x4E, 0x91, 0x67, 0x01, 0x6D, -0x80, 0x18, 0xCC, 0x23, 0x01, 0x72, 0x0A, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF5, 0x0C, 0x4A, -0x41, 0xE0, 0x40, 0xA0, 0x06, 0x94, 0x68, 0xF4, -0x42, 0xC4, 0x70, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0x0C, 0x4A, 0x07, 0x94, 0xE0, 0x9A, -0xB1, 0x67, 0x00, 0x6E, 0x80, 0x18, 0x8E, 0x4E, -0x30, 0xF0, 0x20, 0x6B, 0x22, 0x67, 0x08, 0x96, -0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, 0x03, 0xF3, -0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xE3, 0xF7, -0x00, 0x6A, 0x2C, 0xEA, 0x06, 0x93, 0x56, 0x34, -0x96, 0x32, 0x68, 0xF4, 0x44, 0xDB, 0x1F, 0x6A, -0x8C, 0xEA, 0x02, 0x5A, 0xFF, 0x6B, 0x0B, 0x60, -0x03, 0x70, 0x03, 0x60, 0x01, 0x48, 0x6C, 0xE8, -0x4F, 0x10, 0x06, 0x94, 0x01, 0x6B, 0x03, 0x68, -0x09, 0xF0, 0x79, 0xC4, 0x49, 0x10, 0x0A, 0x5A, -0x0B, 0x61, 0x04, 0x20, 0xFF, 0x48, 0x6C, 0xE8, -0x01, 0x6B, 0x0B, 0x10, 0x06, 0x94, 0x01, 0x6B, -0x09, 0xF0, 0x79, 0xC4, 0x01, 0x6B, 0x09, 0x10, -0x06, 0x94, 0x00, 0x6B, 0x09, 0xF0, 0x79, 0xC4, -0x00, 0x6B, 0x03, 0x20, 0x04, 0x58, 0x01, 0x61, -0x03, 0x68, 0x30, 0xF0, 0x20, 0x6C, 0x46, 0xF5, -0x18, 0x4C, 0x09, 0xF0, 0xB9, 0xA4, 0x01, 0x5D, -0xB8, 0x67, 0xAB, 0xED, 0xAC, 0xEB, 0x30, 0xF0, -0x20, 0x6D, 0xA2, 0xF5, 0x0C, 0x4D, 0xA1, 0xE0, -0xA0, 0xA0, 0x68, 0xF4, 0xA2, 0xC4, 0x0F, 0x2B, -0x68, 0xF4, 0xC2, 0xA4, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x64, 0x9B, 0xC0, 0x36, 0x01, 0x6D, -0x4D, 0xEE, 0xE3, 0xF3, 0x08, 0x6C, 0xAB, 0xED, -0x40, 0xEB, 0x00, 0x6A, 0x0C, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, -0xE3, 0xF3, 0x08, 0x6C, 0xAB, 0xED, 0xFF, 0xF7, -0x1F, 0x6E, 0x40, 0xEA, 0x01, 0x6A, 0x0D, 0x97, -0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, -0x01, 0x6B, 0xC8, 0x17, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xAF, 0xF1, -0x77, 0xA2, 0xFF, 0x68, 0x8C, 0xE8, 0x06, 0x5B, -0x01, 0x6A, 0x7C, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x68, 0x33, 0x62, 0xF5, 0x1C, 0x4A, 0x69, 0xE2, -0x40, 0x9A, 0x00, 0xEA, 0x90, 0x67, 0x80, 0x18, -0x77, 0x21, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, -0x6F, 0x24, 0x62, 0x10, 0x90, 0x67, 0x80, 0x18, -0x25, 0x21, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, -0xB3, 0x24, 0x52, 0x22, 0x03, 0x6C, 0x98, 0xE8, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, -0x12, 0xEC, 0x71, 0xE4, 0x09, 0xF0, 0xA6, 0xA4, -0x02, 0x5D, 0x04, 0x60, 0x01, 0x4D, 0x09, 0xF0, -0xA6, 0xC4, 0xEB, 0x17, 0x61, 0xE0, 0x01, 0x6C, -0x39, 0x10, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, -0xBC, 0x20, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x00, 0x6B, 0x09, 0xF0, 0x79, 0xC2, -0x90, 0x67, 0x02, 0x6D, 0x80, 0x18, 0x8D, 0x25, -0x2F, 0x22, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0x34, -0x46, 0xF5, 0x18, 0x4B, 0x6D, 0xE4, 0x09, 0xF0, -0x92, 0xA3, 0x0A, 0x5C, 0x25, 0x60, 0x01, 0x4C, -0x09, 0xF0, 0x92, 0xC3, 0xED, 0x17, 0x90, 0x67, -0x00, 0x6D, 0x80, 0x18, 0xBC, 0x20, 0x90, 0x67, -0x02, 0x6D, 0x80, 0x18, 0xB3, 0x24, 0x18, 0x22, +0xEE, 0x0F, 0x00, 0x6C, 0x80, 0x18, 0x64, 0x05, +0x03, 0x28, 0x00, 0x6C, 0xA4, 0x67, 0x07, 0x10, +0x01, 0x70, 0x03, 0x61, 0x00, 0x6C, 0x01, 0x6D, +0x02, 0x10, 0x00, 0x6C, 0x02, 0x6D, 0x80, 0x18, +0x81, 0x0E, 0x01, 0x6C, 0x80, 0x18, 0x64, 0x05, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x24, 0x67, 0x4C, 0xE9, 0xAC, 0xEA, +0x01, 0x72, 0x43, 0x61, 0x44, 0x41, 0x01, 0x6B, +0x64, 0xEA, 0x00, 0xF2, 0x08, 0x6A, 0x4D, 0xEB, +0x04, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF5, 0xFC, 0x9A, 0x30, 0xF0, 0x20, 0x68, +0xCA, 0xF4, 0x18, 0x48, 0x90, 0x67, 0xB1, 0x67, +0x00, 0x6E, 0x06, 0xD3, 0x80, 0x18, 0x83, 0x45, +0x01, 0x6C, 0x08, 0xF0, 0x00, 0x6F, 0xB1, 0x67, +0x04, 0xD4, 0x8F, 0x6E, 0x90, 0x67, 0x80, 0x18, +0x83, 0x45, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x0A, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x06, 0x96, +0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x06, 0x96, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xAB, 0xED, 0x01, 0x4E, 0x03, 0xF3, +0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, 0x40, 0xEA, +0x91, 0x67, 0x01, 0x6D, 0x80, 0x18, 0xB4, 0x0C, +0xF0, 0x10, 0x02, 0x72, 0x01, 0x6A, 0xE0, 0xF0, +0x0C, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xAA, 0xF7, +0x46, 0xA2, 0x00, 0x68, 0x09, 0x72, 0x0C, 0x60, +0x12, 0x72, 0x01, 0x68, 0x09, 0x60, 0x1B, 0x72, +0x02, 0x68, 0x06, 0x60, 0x24, 0x68, 0x4E, 0xE8, +0x01, 0x58, 0x18, 0x67, 0x04, 0x6A, 0x03, 0xE2, +0x24, 0x32, 0x08, 0xD2, 0x08, 0x93, 0x08, 0x6A, +0x30, 0xF0, 0x20, 0x6C, 0x4D, 0xEB, 0xC0, 0xF3, +0x44, 0x9C, 0x01, 0x6D, 0xC3, 0x67, 0x08, 0xD3, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9B, 0x06, 0x93, 0x01, 0x6D, 0xAB, 0xED, +0x27, 0xF2, 0xCE, 0xA3, 0xC3, 0xF3, 0x0C, 0x6C, +0x40, 0xEA, 0x44, 0x41, 0x01, 0x6C, 0x30, 0xF0, +0x20, 0x6B, 0x84, 0xEA, 0x00, 0xF3, 0x08, 0x6A, +0x4D, 0xEC, 0x80, 0xF3, 0x4C, 0x9B, 0x07, 0xD4, +0x0A, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0xC0, 0xF3, 0x44, 0x9C, 0x07, 0x96, 0x01, 0x6D, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x07, 0x96, 0xC0, 0xF3, +0x44, 0x9B, 0x01, 0x6D, 0xAB, 0xED, 0x01, 0x4E, +0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6C, 0x80, 0xF3, 0x4C, 0x9C, 0xC8, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, +0x14, 0x4B, 0xE0, 0x9B, 0x30, 0xF0, 0x20, 0x6A, +0xCA, 0xF4, 0x18, 0x4A, 0x82, 0x67, 0xB1, 0x67, +0x00, 0x6E, 0x07, 0xD2, 0x80, 0x18, 0x3E, 0x45, +0x91, 0x67, 0x01, 0x6D, 0x80, 0x18, 0xB4, 0x0C, +0x01, 0x72, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xC2, 0xF1, 0x18, 0x4A, 0x41, 0xE0, 0x40, 0xA0, +0x06, 0x94, 0x27, 0xF2, 0x4E, 0xC4, 0x70, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, 0x14, 0x4A, +0x07, 0x94, 0xE0, 0x9A, 0xB1, 0x67, 0x00, 0x6E, +0x80, 0x18, 0x3E, 0x45, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0x67, 0x08, 0x96, 0xC0, 0xF3, 0x44, 0x9B, +0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0xE3, 0xF7, 0x00, 0x6A, 0x2C, 0xEA, +0x06, 0x93, 0x56, 0x34, 0x96, 0x32, 0x27, 0xF2, +0x50, 0xDB, 0x1F, 0x6A, 0x8C, 0xEA, 0x02, 0x5A, +0xFF, 0x6B, 0x0B, 0x60, 0x03, 0x70, 0x03, 0x60, +0x01, 0x48, 0x6C, 0xE8, 0x4F, 0x10, 0x06, 0x94, +0x01, 0x6B, 0x03, 0x68, 0xE7, 0xF5, 0x65, 0xC4, +0x49, 0x10, 0x0A, 0x5A, 0x0B, 0x61, 0x04, 0x20, +0xFF, 0x48, 0x6C, 0xE8, 0x01, 0x6B, 0x0B, 0x10, +0x06, 0x94, 0x01, 0x6B, 0xE7, 0xF5, 0x65, 0xC4, +0x01, 0x6B, 0x09, 0x10, 0x06, 0x94, 0x00, 0x6B, +0xE7, 0xF5, 0x65, 0xC4, 0x00, 0x6B, 0x03, 0x20, +0x04, 0x58, 0x01, 0x61, 0x03, 0x68, 0x30, 0xF0, +0x20, 0x6C, 0x63, 0xF5, 0x18, 0x4C, 0xE7, 0xF5, +0xA5, 0xA4, 0x01, 0x5D, 0xB8, 0x67, 0xAB, 0xED, +0xAC, 0xEB, 0x30, 0xF0, 0x20, 0x6D, 0xC2, 0xF1, +0x18, 0x4D, 0xA1, 0xE0, 0xA0, 0xA0, 0x27, 0xF2, +0xAE, 0xC4, 0x0F, 0x2B, 0x27, 0xF2, 0xCE, 0xA4, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x64, 0x9B, +0xC0, 0x36, 0x01, 0x6D, 0x4D, 0xEE, 0xE3, 0xF3, +0x08, 0x6C, 0xAB, 0xED, 0x40, 0xEB, 0x00, 0x6A, +0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x01, 0x6D, 0xE3, 0xF3, 0x08, 0x6C, +0xAB, 0xED, 0xFF, 0xF7, 0x1F, 0x6E, 0x40, 0xEA, +0x01, 0x6A, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0x01, 0x6B, 0xC8, 0x17, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xAA, 0xF7, 0x63, 0xA2, 0xFF, 0x68, +0x8C, 0xE8, 0x06, 0x5B, 0x01, 0x6A, 0x7C, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x68, 0x33, 0xA2, 0xF1, +0x08, 0x4A, 0x69, 0xE2, 0x40, 0x9A, 0x00, 0xEA, +0x90, 0x67, 0x80, 0x18, 0x5F, 0x0A, 0x90, 0x67, +0x01, 0x6D, 0x80, 0x18, 0xB3, 0x0D, 0x62, 0x10, +0x90, 0x67, 0x80, 0x18, 0x0D, 0x0A, 0x90, 0x67, +0x01, 0x6D, 0x80, 0x18, 0xF7, 0x0D, 0x52, 0x22, 0x03, 0x6C, 0x98, 0xE8, 0x30, 0xF0, 0x20, 0x6B, -0x46, 0xF5, 0x18, 0x4B, 0x12, 0xEC, 0x71, 0xE4, -0x09, 0xF0, 0xA7, 0xA4, 0x02, 0x5D, 0x04, 0x60, -0x01, 0x4D, 0x09, 0xF0, 0xA7, 0xC4, 0xEB, 0x17, -0x61, 0xE0, 0x02, 0x6C, 0x88, 0xF5, 0x98, 0xC0, -0x06, 0x6C, 0x48, 0xF4, 0x9F, 0xC3, 0x12, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, -0x48, 0xF4, 0x9F, 0xA3, 0x01, 0x4C, 0xF5, 0x17, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x48, 0xF4, 0x7F, 0xA2, 0x01, 0x4B, 0x48, 0xF4, -0x7F, 0xC2, 0x01, 0x6A, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x48, 0xF4, 0x7D, 0xA2, -0x68, 0xF4, 0x40, 0xA2, 0x08, 0xD3, 0x06, 0x5A, -0x76, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x48, 0x32, -0x82, 0xF5, 0x14, 0x4B, 0x4D, 0xE3, 0x40, 0x9B, -0x00, 0xEA, 0x00, 0x6C, 0x80, 0x18, 0x2F, 0x26, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x48, 0xF4, 0x7F, 0xA2, 0x06, 0x73, 0xF5, 0x61, -0x2A, 0x10, 0x00, 0x6C, 0x80, 0x18, 0x67, 0x22, -0x00, 0x6C, 0xA4, 0x67, 0x37, 0x10, 0x00, 0x6C, -0x80, 0x18, 0x2F, 0x22, 0x00, 0x6C, 0xA4, 0x67, -0x80, 0x18, 0xB3, 0x24, 0x30, 0xF0, 0x20, 0x6B, -0x46, 0xF5, 0x18, 0x4B, 0x68, 0xF4, 0x88, 0xA3, -0x01, 0x4C, 0x68, 0xF4, 0x88, 0xC3, 0x42, 0x22, -0x09, 0xF0, 0x45, 0xA3, 0x03, 0x5A, 0x3E, 0x60, -0x01, 0x4A, 0x09, 0xF0, 0x45, 0xC3, 0x43, 0x10, -0x01, 0x6C, 0x80, 0x18, 0x2F, 0x26, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x48, 0xF4, -0x7F, 0xA2, 0x06, 0x73, 0xF5, 0x61, 0x68, 0xF4, -0x60, 0xA2, 0x01, 0x4B, 0x68, 0xF4, 0x60, 0xC2, -0x78, 0x67, 0x48, 0xF4, 0x7F, 0xC2, 0x68, 0xF4, -0x68, 0xA2, 0x01, 0x4B, 0x68, 0xF4, 0x68, 0xC2, -0x2A, 0x10, 0x01, 0x6C, 0x80, 0x18, 0x67, 0x22, -0x01, 0x6C, 0x00, 0x6D, 0x80, 0x18, 0x6F, 0x24, -0x19, 0x10, 0x01, 0x6C, 0x80, 0x18, 0x2F, 0x22, -0x01, 0x6C, 0x00, 0x6D, 0x80, 0x18, 0xB3, 0x24, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, -0x68, 0xF4, 0x88, 0xA3, 0x01, 0x4C, 0x68, 0xF4, -0x88, 0xC3, 0x08, 0x22, 0x09, 0xF0, 0x48, 0xA3, -0x03, 0x5A, 0x04, 0x60, 0x01, 0x4A, 0x09, 0xF0, -0x48, 0xC3, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x68, 0xF4, 0x60, 0xA2, -0x01, 0x4B, 0x68, 0xF4, 0x60, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0xAF, 0xF1, 0x58, 0xA2, 0x06, 0x72, -0x80, 0xF0, 0x08, 0x61, 0x30, 0xF0, 0x20, 0x69, -0x00, 0x6A, 0x6F, 0xF5, 0x1C, 0x49, 0x06, 0xD2, -0x06, 0x92, 0xFF, 0x6B, 0x30, 0xF0, 0x20, 0x68, -0x6C, 0xEA, 0x06, 0x93, 0x07, 0xD2, 0x01, 0x6D, -0x64, 0x36, 0xC0, 0xF3, 0x64, 0x98, 0x08, 0x6A, -0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, -0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, -0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, -0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0x08, 0x92, 0x06, 0x72, -0x1A, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF3, -0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, -0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xC0, 0x99, 0x01, 0x6D, 0x23, 0xF3, -0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x01, 0x6D, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x1C, 0x6C, -0xAB, 0xED, 0xC2, 0x99, 0x21, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF3, 0xA0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, -0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF5, 0x18, 0x4B, 0x12, 0xEC, 0x71, 0xE4, +0xC7, 0xF5, 0xB2, 0xA4, 0x02, 0x5D, 0x04, 0x60, +0x01, 0x4D, 0xC7, 0xF5, 0xB2, 0xC4, 0xEB, 0x17, +0x61, 0xE0, 0x01, 0x6C, 0x39, 0x10, 0x90, 0x67, +0x01, 0x6D, 0x80, 0x18, 0xA4, 0x09, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, 0x00, 0x6B, +0xE7, 0xF5, 0x65, 0xC2, 0x90, 0x67, 0x02, 0x6D, +0x80, 0x18, 0x24, 0x10, 0x2F, 0x22, 0x30, 0xF0, +0x20, 0x6B, 0x04, 0x34, 0x63, 0xF5, 0x18, 0x4B, +0x6D, 0xE4, 0xC7, 0xF5, 0x9E, 0xA3, 0x0A, 0x5C, +0x25, 0x60, 0x01, 0x4C, 0xC7, 0xF5, 0x9E, 0xC3, +0xED, 0x17, 0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, +0xA4, 0x09, 0x90, 0x67, 0x02, 0x6D, 0x80, 0x18, +0xF7, 0x0D, 0x18, 0x22, 0x03, 0x6C, 0x98, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x18, 0x4B, +0x12, 0xEC, 0x71, 0xE4, 0xC7, 0xF5, 0xB3, 0xA4, +0x02, 0x5D, 0x04, 0x60, 0x01, 0x4D, 0xC7, 0xF5, +0xB3, 0xC4, 0xEB, 0x17, 0x61, 0xE0, 0x02, 0x6C, +0x67, 0xF3, 0x84, 0xC0, 0x06, 0x6C, 0x27, 0xF2, +0x8B, 0xC3, 0x12, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF5, 0x18, 0x4B, 0x27, 0xF2, 0x8B, 0xA3, +0x01, 0x4C, 0xF5, 0x17, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF5, 0x18, 0x4A, 0x27, 0xF2, 0x6B, 0xA2, +0x01, 0x4B, 0x27, 0xF2, 0x6B, 0xC2, 0x01, 0x6A, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0x27, 0xF2, 0x69, 0xA2, 0x27, 0xF2, 0x4C, 0xA2, +0x08, 0xD3, 0x06, 0x5A, 0x76, 0x60, 0x30, 0xF0, +0x20, 0x6B, 0x48, 0x32, 0xC2, 0xF1, 0x00, 0x4B, +0x4D, 0xE3, 0x40, 0x9B, 0x00, 0xEA, 0x00, 0x6C, +0x80, 0x18, 0xC6, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF5, 0x18, 0x4A, 0x27, 0xF2, 0x6B, 0xA2, +0x06, 0x73, 0xF5, 0x61, 0x2A, 0x10, 0x00, 0x6C, +0x80, 0x18, 0x4F, 0x0B, 0x00, 0x6C, 0xA4, 0x67, +0x37, 0x10, 0x00, 0x6C, 0x80, 0x18, 0x17, 0x0B, +0x00, 0x6C, 0xA4, 0x67, 0x80, 0x18, 0xF7, 0x0D, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x18, 0x4B, +0x27, 0xF2, 0x94, 0xA3, 0x01, 0x4C, 0x27, 0xF2, +0x94, 0xC3, 0x42, 0x22, 0xC7, 0xF5, 0x51, 0xA3, +0x03, 0x5A, 0x3E, 0x60, 0x01, 0x4A, 0xC7, 0xF5, +0x51, 0xC3, 0x43, 0x10, 0x01, 0x6C, 0x80, 0x18, +0xC6, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, +0x18, 0x4A, 0x27, 0xF2, 0x6B, 0xA2, 0x06, 0x73, +0xF5, 0x61, 0x27, 0xF2, 0x6C, 0xA2, 0x01, 0x4B, +0x27, 0xF2, 0x6C, 0xC2, 0x78, 0x67, 0x27, 0xF2, +0x6B, 0xC2, 0x27, 0xF2, 0x74, 0xA2, 0x01, 0x4B, +0x27, 0xF2, 0x74, 0xC2, 0x2A, 0x10, 0x01, 0x6C, +0x80, 0x18, 0x4F, 0x0B, 0x01, 0x6C, 0x00, 0x6D, +0x80, 0x18, 0xB3, 0x0D, 0x19, 0x10, 0x01, 0x6C, +0x80, 0x18, 0x17, 0x0B, 0x01, 0x6C, 0x00, 0x6D, +0x80, 0x18, 0xF7, 0x0D, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF5, 0x18, 0x4B, 0x27, 0xF2, 0x94, 0xA3, +0x01, 0x4C, 0x27, 0xF2, 0x94, 0xC3, 0x08, 0x22, +0xC7, 0xF5, 0x54, 0xA3, 0x03, 0x5A, 0x04, 0x60, +0x01, 0x4A, 0xC7, 0xF5, 0x54, 0xC3, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0x27, 0xF2, 0x6C, 0xA2, 0x01, 0x4B, 0x27, 0xF2, +0x6C, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xAA, 0xF7, +0x44, 0xA2, 0x06, 0x72, 0x80, 0xF0, 0x08, 0x61, +0x30, 0xF0, 0x20, 0x69, 0x00, 0x6A, 0x6B, 0xF3, +0x08, 0x49, 0x06, 0xD2, 0x06, 0x92, 0xFF, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0x6C, 0xEA, 0x06, 0x93, +0x07, 0xD2, 0x01, 0x6D, 0x64, 0x36, 0xC0, 0xF3, +0x64, 0x98, 0x08, 0x6A, 0x4D, 0xEE, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF4, 0xA4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, +0x0C, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x08, 0x92, 0x06, 0x72, 0x1A, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF3, 0xBC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x99, 0x01, 0x6D, 0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, -0x14, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, -0x01, 0x6D, 0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF4, 0xBC, 0x9B, 0xC0, 0xF3, -0x44, 0x9A, 0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, -0x40, 0xEA, 0x03, 0x6A, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x07, 0x95, 0x83, 0xF4, 0xF0, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0x6E, 0xF6, 0x08, 0x4C, -0x00, 0x6E, 0x80, 0x18, 0xD3, 0x4E, 0x06, 0x92, -0x04, 0x49, 0x01, 0x4A, 0x02, 0x72, 0x06, 0xD2, -0x7F, 0xF7, 0x1E, 0x61, 0x0D, 0x97, 0x0C, 0x91, -0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0xAF, 0xF1, 0x55, 0xA2, -0xFF, 0x69, 0x8C, 0xE9, 0x02, 0x72, 0x02, 0x6A, -0x05, 0xD2, 0x02, 0x60, 0x04, 0x6B, 0x05, 0xD3, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0x08, 0x6E, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, -0x40, 0xEA, 0x01, 0x6D, 0x03, 0xF3, 0x08, 0x6C, -0xAB, 0xED, 0x80, 0x18, 0x24, 0x39, 0x04, 0xD2, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, -0x06, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, 0x80, 0x6D, -0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x03, 0xF3, 0x00, 0x6C, 0x06, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x01, 0x6D, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, 0xC2, 0x99, +0x21, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, +0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, +0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF3, 0x18, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF3, 0x18, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xC0, 0x9B, 0x01, 0x6D, 0x23, 0xF3, +0x1C, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF4, +0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, 0xA3, 0xF3, +0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x03, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x07, 0x95, +0x02, 0xF5, 0xFC, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xCA, 0xF4, 0x18, 0x4C, 0x00, 0x6E, 0x80, 0x18, +0x83, 0x45, 0x06, 0x92, 0x04, 0x49, 0x01, 0x4A, +0x02, 0x72, 0x06, 0xD2, 0x7F, 0xF7, 0x1E, 0x61, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xAA, 0xF7, 0x41, 0xA2, 0xFF, 0x69, 0x8C, 0xE9, +0x02, 0x72, 0x02, 0x6A, 0x05, 0xD2, 0x02, 0x60, +0x04, 0x6B, 0x05, 0xD3, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x08, 0x6E, 0x03, 0xF3, +0x00, 0x6C, 0x0F, 0x6D, 0x40, 0xEA, 0x01, 0x6D, +0x03, 0xF3, 0x08, 0x6C, 0xAB, 0xED, 0x80, 0x18, +0xF4, 0x16, 0x04, 0xD2, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x00, 0x6C, 0x06, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, 0x80, 0x6D, 0x01, 0x6E, 0x40, 0xEA, -0x00, 0x68, 0x91, 0x67, 0x80, 0x18, 0x75, 0x26, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x68, 0xF4, 0x60, 0xA2, 0x06, 0x73, 0x0B, 0x60, -0x05, 0x21, 0x68, 0xF4, 0x48, 0xA2, 0x05, 0x93, -0x6E, 0xEA, 0x05, 0x22, 0x01, 0x48, 0xFF, 0x6A, -0x4C, 0xE8, 0x64, 0x70, 0xEA, 0x61, 0x30, 0xF0, -0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, -0x00, 0x6C, 0x06, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, 0x03, 0xF3, -0x08, 0x69, 0x01, 0x6D, 0x91, 0x67, 0xAB, 0xED, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, -0x00, 0x6C, 0x06, 0x6D, 0x01, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, 0x01, 0x6D, -0x91, 0x67, 0xAB, 0xED, 0x40, 0xEA, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0xEC, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0x6E, 0xF6, 0x08, 0x4C, 0x00, 0x6D, 0x18, 0x6E, -0x80, 0x18, 0x8E, 0x4E, 0x30, 0xF0, 0x20, 0x6B, -0x06, 0xF0, 0x00, 0x6C, 0x46, 0xF5, 0x18, 0x4B, -0x4C, 0xEC, 0xE8, 0xF7, 0x44, 0xDB, 0x82, 0x32, -0x52, 0x32, 0x02, 0x72, 0x0A, 0x60, 0x03, 0x6C, -0x4E, 0xEC, 0x04, 0x24, 0x01, 0x72, 0x02, 0x6A, -0x07, 0x60, 0x05, 0x10, 0x48, 0xF4, 0x9D, 0xC3, -0x05, 0x10, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, -0x48, 0xF4, 0x5D, 0xC3, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF0, 0x78, 0x9B, 0xE8, 0xF7, 0x84, 0x9A, -0x8C, 0xEB, 0x62, 0x33, 0x62, 0x33, 0x48, 0xF4, -0x7C, 0xC2, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xF1, 0x63, 0x1D, 0x62, 0x1C, 0xD1, 0x1B, 0xD0, -0x08, 0xA4, 0x02, 0x6A, 0x01, 0x69, 0x0C, 0xEA, -0x46, 0x32, 0x18, 0xD2, 0x80, 0x18, 0xB3, 0x1C, -0x80, 0x18, 0x3E, 0x27, 0x80, 0x18, 0x64, 0x25, -0x90, 0x67, 0x2C, 0xEC, 0x00, 0x6D, 0x80, 0x18, -0x3D, 0x25, 0x80, 0xF0, 0x03, 0x2A, 0x30, 0xF0, -0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, 0x48, 0xF4, -0x7E, 0xA0, 0x68, 0xF4, 0x40, 0xC0, 0x48, 0xF4, -0x5F, 0xC0, 0x01, 0x4B, 0x48, 0xF4, 0x7E, 0xC0, -0x68, 0xF4, 0x48, 0xC0, 0x68, 0xF4, 0x29, 0xC0, -0x38, 0x6C, 0x80, 0x18, 0x51, 0x20, 0x00, 0x6C, -0x09, 0xF0, 0x5C, 0xD8, 0xA4, 0x67, 0x00, 0x18, -0x50, 0xC2, 0x30, 0xF0, 0x20, 0x6E, 0x30, 0xF0, -0x20, 0x6F, 0x04, 0x04, 0x0D, 0x05, 0x82, 0xF2, -0x14, 0x4E, 0xA2, 0xF2, 0x00, 0x4F, 0x80, 0x18, -0xA1, 0x20, 0x30, 0xF0, 0x20, 0x6D, 0x07, 0x04, -0xE2, 0xF2, 0x14, 0x4D, 0x80, 0x18, 0x0E, 0x24, -0x00, 0x68, 0x80, 0x18, 0xC7, 0x1F, 0x01, 0x6C, -0x80, 0x18, 0x0A, 0x1D, 0x18, 0x94, 0x80, 0x18, -0x02, 0x27, 0x00, 0x6C, 0x80, 0x18, 0x0A, 0x1D, -0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF2, 0x14, 0x4C, -0x07, 0x05, 0x80, 0x18, 0x00, 0x23, 0x30, 0xF0, -0x20, 0x6E, 0x30, 0xF0, 0x20, 0x6F, 0x04, 0x04, -0x0D, 0x05, 0x82, 0xF2, 0x14, 0x4E, 0xA2, 0xF2, -0x00, 0x4F, 0x80, 0x18, 0x84, 0x1F, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x68, 0xF4, -0x60, 0xA2, 0x06, 0x73, 0x0E, 0x60, 0xFF, 0x6B, -0x01, 0x48, 0x6C, 0xE8, 0x00, 0x6B, 0x68, 0xF4, -0x68, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x48, 0x9A, 0x32, 0x6C, 0x40, 0xEA, 0x03, 0x70, -0xCC, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x00, 0x6C, -0x80, 0x18, 0xA8, 0x48, 0xC0, 0xF3, 0x44, 0x98, -0x03, 0xF3, 0x00, 0x6C, 0xFF, 0x6D, 0x08, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, -0x10, 0x69, 0x91, 0x67, 0xFF, 0x6D, 0xAA, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, -0x00, 0x6C, 0xFF, 0x6D, 0x0A, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0xFF, 0x6D, -0xAA, 0x6E, 0x40, 0xEA, 0x1D, 0x97, 0x1C, 0x91, -0x1B, 0x90, 0x00, 0x6A, 0x0F, 0x63, 0x00, 0xEF, -0xF2, 0x63, 0x1B, 0x62, 0x1A, 0xD0, 0x30, 0xF0, -0x20, 0x6D, 0x04, 0x67, 0x22, 0xF6, 0x0C, 0x4D, -0x04, 0x04, 0x54, 0x6E, 0x00, 0x18, 0xB9, 0xD4, -0x00, 0x6A, 0x26, 0x20, 0x70, 0x67, 0x01, 0x73, -0x03, 0x60, 0x66, 0x33, 0x01, 0x4A, 0xFB, 0x17, -0x01, 0x6C, 0x01, 0x4A, 0x64, 0x67, 0x04, 0x10, -0x01, 0x4B, 0xFF, 0x6D, 0x84, 0x34, 0xAC, 0xEB, -0x63, 0xEA, 0xFA, 0x60, 0x64, 0x6B, 0x78, 0xE8, -0x05, 0x6D, 0x12, 0xE8, 0x9B, 0xE8, 0x01, 0x2C, -0xE5, 0xE8, 0x12, 0xEC, 0xBB, 0xEC, 0x01, 0x2D, -0xE5, 0xE8, 0x12, 0xEC, 0x15, 0x5C, 0x78, 0xEA, -0x12, 0xEA, 0x01, 0x61, 0x14, 0x6C, 0x7D, 0x67, -0x88, 0x34, 0x91, 0xE3, 0x64, 0x9C, 0x6B, 0xE2, -0x1B, 0x97, 0x1A, 0x90, 0x0E, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x26, 0x67, 0x63, 0xF4, -0xC0, 0x9B, 0x05, 0x67, 0x01, 0x6D, 0x0D, 0xD7, -0x63, 0xF5, 0x10, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x00, 0x6A, 0x04, 0xD2, 0x0E, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xA8, 0xC0, 0x99, 0xC0, 0xF3, -0x44, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, -0x04, 0x93, 0x04, 0x48, 0x04, 0x49, 0x01, 0x4B, -0x04, 0xD3, 0x04, 0x92, 0x0D, 0x93, 0x63, 0xEA, -0xEE, 0x61, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, -0x0C, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xC3, 0xF3, 0x14, 0x6C, 0xF0, 0x6D, 0x04, 0x6E, -0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, -0xC0, 0xF3, 0x44, 0x99, 0xFF, 0x68, 0xAC, 0xE8, -0xD0, 0x67, 0xA3, 0xF0, 0x04, 0x6C, 0x80, 0x6D, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xD0, 0x67, -0xA8, 0xF1, 0x04, 0x6C, 0x80, 0x6D, 0x40, 0xEA, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x68, 0xA3, 0xF4, 0x34, 0x9A, -0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0x00, 0x6C, -0xB1, 0x67, 0x1F, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xB1, 0x67, 0xA8, 0xF1, 0x00, 0x6C, -0x1F, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF4, 0x38, 0x9A, 0xC0, 0xF3, 0x44, 0x98, -0xE3, 0xF0, 0x08, 0x6C, 0xB1, 0x67, 0x1F, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, -0xE8, 0xF1, 0x08, 0x6C, 0x1F, 0x6E, 0x40, 0xEA, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, -0x08, 0xD4, 0x80, 0xF1, 0x16, 0x22, 0x30, 0xF0, -0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, -0x2B, 0xE9, 0x23, 0xF4, 0x18, 0x6C, 0xB1, 0x67, -0xD1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF3, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, -0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0x08, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF3, 0x0C, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF3, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, -0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0x18, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF3, 0x1C, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF3, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, -0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, 0x08, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE3, 0xF3, 0x0C, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF3, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, -0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, 0x18, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE3, 0xF3, 0x1C, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, -0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0x04, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF3, 0x04, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF3, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, -0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0x10, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF3, 0x14, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF3, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, -0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, 0x00, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE3, 0xF3, 0x04, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF3, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, -0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, 0x10, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE3, 0xF3, 0x14, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF3, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, -0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x00, 0x4B, -0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x03, 0xF4, 0x00, 0x4B, -0x70, 0x12, 0x08, 0x93, 0x60, 0xF0, 0x5B, 0xA3, -0xE0, 0xF0, 0x1B, 0x22, 0x30, 0xF0, 0x20, 0x68, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0xC4, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, -0x23, 0xF4, 0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x08, 0x92, 0x04, 0x6B, 0x63, 0xF0, 0x00, 0x6C, -0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, -0x0E, 0xF0, 0x00, 0x6D, 0x67, 0xEE, 0xC3, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, -0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x08, 0x92, 0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, -0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, -0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF4, 0x0C, 0x4B, 0x60, 0x9B, -0x6D, 0xEE, 0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, -0x23, 0xF0, 0x10, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, -0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, -0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, -0x10, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, -0x08, 0x92, 0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, -0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, -0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF4, 0x14, 0x4B, 0x60, 0x9B, -0x6D, 0xEE, 0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, -0x23, 0xF0, 0x10, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, -0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, -0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, -0x18, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x1C, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x08, 0x92, -0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0x80, 0xF0, -0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, -0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF4, 0x00, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, -0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x08, 0x92, 0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, -0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, -0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF4, 0x0C, 0x4B, 0x60, 0x9B, -0x6D, 0xEE, 0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, -0x28, 0xF1, 0x10, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, -0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, -0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, -0x10, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, -0x08, 0x92, 0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, -0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, -0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF4, 0x14, 0x4B, 0x60, 0x9B, -0x6D, 0xEE, 0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, -0x28, 0xF1, 0x10, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, -0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, -0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, -0x18, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x1C, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x08, 0x92, -0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, 0x80, 0xF0, -0xD1, 0xA2, 0xB1, 0x67, 0xC0, 0xF3, 0x44, 0x98, -0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF4, 0x00, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, -0xA7, 0x10, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF4, 0xDC, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF4, -0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, -0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x0C, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, -0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x08, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, -0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x10, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF4, 0x14, 0x4B, 0xC0, 0xF3, 0x44, 0x98, -0xC0, 0x9B, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x68, 0x23, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x1C, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, -0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0x0C, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, -0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x18, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, -0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0x08, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, -0x14, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x30, 0xF0, 0x20, 0x6B, -0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x43, 0xF4, -0x18, 0x4B, 0xC0, 0x9B, 0x40, 0xEA, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xED, 0x1E, 0xF0, -0x01, 0x4D, 0x6C, 0xED, 0x02, 0x5D, 0x6C, 0xEE, -0x09, 0x61, 0x02, 0xF0, 0x00, 0x76, 0x06, 0x60, -0xE1, 0xF7, 0x1F, 0x6A, 0x4E, 0xEE, 0x01, 0x5E, -0x58, 0x67, 0x20, 0xE8, 0x01, 0x6A, 0x20, 0xE8, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x6A, 0xAC, 0xEA, 0x50, 0x6B, 0x78, 0xEA, -0xE0, 0xF0, 0x68, 0x44, 0x24, 0x67, 0x12, 0xEA, -0x90, 0xF0, 0x08, 0x42, 0x4D, 0xE3, 0x01, 0xE4, -0x04, 0xD3, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF4, -0xA0, 0x9A, 0x40, 0x98, 0xE3, 0xF7, 0x1F, 0x6E, -0x91, 0x67, 0x4C, 0xED, 0xA2, 0x35, 0xA2, 0x35, -0x4C, 0xEE, 0x80, 0x18, 0x18, 0x2A, 0x02, 0x22, -0x00, 0x6A, 0x05, 0x10, 0x04, 0x92, 0x04, 0x48, -0x4A, 0xE8, 0xEB, 0x61, 0x01, 0x6A, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0x4C, 0xED, -0x4C, 0xEE, 0x01, 0x69, 0xC0, 0xF3, 0x44, 0x98, -0x2B, 0xE9, 0x0C, 0xD4, 0x05, 0xD5, 0x06, 0xD6, -0xB1, 0x67, 0x03, 0xF3, 0x00, 0x6C, 0x0C, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, -0xC3, 0xF3, 0x14, 0x6C, 0xF0, 0x6E, 0x40, 0xEA, -0x05, 0x93, 0x50, 0x6A, 0x03, 0xF3, 0x0C, 0x68, -0x58, 0xEB, 0x0C, 0x93, 0x00, 0x69, 0x12, 0xEA, -0x7F, 0x4A, 0x19, 0x4A, 0x49, 0xE3, 0x04, 0xD2, -0x05, 0x92, 0x90, 0x67, 0x05, 0x22, 0x87, 0x40, -0x51, 0x4C, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEC, -0x06, 0x93, 0x0A, 0x2B, 0x03, 0x71, 0x03, 0x60, -0xE3, 0xF7, 0x1F, 0x6E, 0x07, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF4, 0xC4, 0x9A, 0x02, 0x10, -0x04, 0x92, 0xC0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, 0xAB, 0xED, -0x40, 0xEA, 0x04, 0x93, 0xFF, 0x6A, 0x01, 0x49, -0x4C, 0xE9, 0x04, 0x4B, 0x04, 0x48, 0xFF, 0xF7, -0x1F, 0x6A, 0x14, 0x71, 0x04, 0xD3, 0x4C, 0xE8, -0xD7, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0x20, 0xE8, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0xC0, 0xF3, 0x44, 0x98, 0x24, 0x67, 0x0F, 0x6D, -0x03, 0xF3, 0x00, 0x6C, 0x0C, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, 0x0C, 0x4B, -0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x60, 0xF0, -0xD9, 0xA1, 0x03, 0xF3, 0x08, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, 0x0C, 0x4B, -0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, 0x60, 0xF0, -0xD9, 0xA1, 0x63, 0xF3, 0x00, 0x6C, 0x40, 0xEA, -0x60, 0xF0, 0x58, 0xA1, 0x2C, 0x22, 0x60, 0xF0, -0x5E, 0xA9, 0x01, 0x6B, 0x6C, 0xEA, 0x10, 0x22, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, -0x18, 0xF0, 0x00, 0x6D, 0xC3, 0x67, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x20, 0xF1, 0xD8, 0xA9, -0x03, 0xF3, 0x04, 0x6C, 0xFF, 0x6D, 0x40, 0xEA, -0x60, 0xF0, 0x5E, 0xA9, 0x02, 0x6B, 0x6C, 0xEA, -0x3C, 0x22, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, -0x44, 0x98, 0x63, 0xF3, 0x00, 0x6C, 0x18, 0xF0, -0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x43, 0xF3, 0x1C, 0x6C, 0xFF, 0x6D, -0x20, 0xF1, 0xDA, 0xA9, 0x29, 0x10, 0x60, 0xF0, -0x5E, 0xA9, 0x01, 0x6B, 0x6C, 0xEA, 0x0F, 0x22, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, -0x18, 0xF0, 0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x04, 0x6C, -0xFF, 0x6D, 0x5B, 0x6E, 0x40, 0xEA, 0x60, 0xF0, -0x5E, 0xA9, 0x02, 0x6B, 0x6C, 0xEA, 0x11, 0x22, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0x63, 0xF3, 0x00, 0x6C, 0x18, 0xF0, 0x00, 0x6D, -0x03, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x43, 0xF3, 0x1C, 0x6C, 0xFF, 0x6D, 0x5B, 0x6E, -0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, -0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x68, 0x43, 0xF2, 0xAC, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x20, 0xF5, 0x00, 0x6C, -0xFF, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x63, 0xF6, 0x10, 0x6C, 0x0F, 0x6D, 0x02, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF4, -0x30, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x6E, 0xF6, -0x08, 0x48, 0x00, 0x6D, 0x90, 0x67, 0xC5, 0x67, -0xF1, 0x67, 0x80, 0x18, 0x8E, 0x4E, 0xFF, 0x6B, -0x4C, 0xEB, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, -0x00, 0x6E, 0x04, 0xD3, 0xFF, 0x69, 0x80, 0x18, -0x8E, 0x4E, 0x4C, 0xE9, 0x00, 0x68, 0x27, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF4, 0x10, 0x4A, -0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x69, 0x6E, 0xF6, -0x08, 0x49, 0x00, 0x6D, 0x91, 0x67, 0xC5, 0x67, -0x80, 0x18, 0x8E, 0x4E, 0xFF, 0x6B, 0x4C, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF4, 0x10, 0x4A, -0xE0, 0x9A, 0x91, 0x67, 0x01, 0x6D, 0x00, 0x6E, -0x04, 0xD3, 0xFF, 0x69, 0x80, 0x18, 0x8E, 0x4E, -0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x02, 0x6C, 0x01, 0x48, 0x40, 0xEA, -0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0x04, 0x93, -0x02, 0x73, 0x02, 0x60, 0x02, 0x71, 0x03, 0x61, -0xC1, 0xF1, 0x04, 0x70, 0xD1, 0x61, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x04, 0x67, 0x80, 0x18, 0xA7, 0x2A, 0x60, 0xF0, -0x5B, 0xA0, 0x1E, 0x22, 0x30, 0xF0, 0x20, 0x68, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, 0xB4, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF6, 0x1C, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF3, 0x30, 0x9A, 0xC0, 0xF3, 0x44, 0x98, -0xA3, 0xF0, 0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, -0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF1, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF6, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF5, 0x18, 0x6C, -0xE1, 0xF7, 0x18, 0x6D, 0xE0, 0xF1, 0x1F, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, -0x2C, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, -0x04, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x68, 0xF1, -0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF3, 0x24, 0x9A, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF0, 0x0C, 0x6C, 0xB1, 0x67, -0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0xB1, 0x67, 0x08, 0xF1, 0x0C, 0x6C, 0x01, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, -0x0C, 0x6C, 0x80, 0x6D, 0x01, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x68, 0xF1, 0x0C, 0x6C, -0x80, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0xF0, 0x0C, 0x6C, 0x03, 0x6D, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, +0x06, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, 0x80, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0x00, 0x68, 0x91, 0x67, +0x80, 0x18, 0x0C, 0x11, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF5, 0x18, 0x4A, 0x27, 0xF2, 0x6C, 0xA2, +0x06, 0x73, 0x0B, 0x60, 0x05, 0x21, 0x27, 0xF2, +0x54, 0xA2, 0x05, 0x93, 0x6E, 0xEA, 0x05, 0x22, +0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, 0x64, 0x70, +0xEA, 0x61, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x06, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x08, 0xF1, 0x0C, 0x6C, 0x03, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, -0x14, 0x6C, 0x00, 0xF3, 0x00, 0x6D, 0x03, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, -0x0C, 0x6C, 0x0F, 0x6D, 0x08, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x83, 0xF4, 0xB0, 0x9B, 0x21, 0xF0, 0x04, 0x69, -0x91, 0x67, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, -0xA4, 0x9B, 0x91, 0x67, 0x03, 0x6E, 0x40, 0xEA, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x00, 0x6A, 0x25, 0x67, -0x04, 0xD6, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF3, 0x0C, 0x4B, 0xC0, 0x99, 0xE0, 0x9B, -0x30, 0xF0, 0x20, 0x68, 0x6E, 0xF6, 0x08, 0x48, -0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x8E, 0x4E, -0x04, 0x93, 0x90, 0x67, 0x01, 0x6D, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x0C, 0x4A, -0xC0, 0x99, 0xE0, 0x9A, 0x04, 0x49, 0x80, 0x18, -0x8E, 0x4E, 0x04, 0x93, 0x41, 0xDB, 0x05, 0x92, -0x08, 0x4B, 0x04, 0xD3, 0x01, 0x4A, 0x07, 0x72, -0x05, 0xD2, 0xDC, 0x61, 0x09, 0x97, 0x08, 0x91, -0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x69, 0x30, 0xF0, 0x20, 0x68, 0x2C, 0xEE, -0xC0, 0xF3, 0x64, 0x98, 0x08, 0x6A, 0x04, 0xD6, -0x2C, 0xEF, 0xC4, 0x36, 0x0A, 0xD4, 0x0B, 0xD5, -0x4D, 0xEE, 0x05, 0xD7, 0x03, 0xF3, 0x00, 0x6C, -0x0F, 0x6D, 0x40, 0xEB, 0x05, 0x92, 0x0C, 0x22, -0x0B, 0x96, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0xFA, 0x4E, 0x63, 0xF3, 0x04, 0x6C, -0x63, 0xF4, 0xBC, 0x9B, 0x2C, 0xEE, 0x09, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x63, 0xF4, 0xBC, 0x9B, 0x63, 0xF3, 0x04, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x0A, 0x93, 0x04, 0x92, -0x63, 0xF3, 0x04, 0x6C, 0x41, 0xE3, 0x7D, 0x67, -0x47, 0x43, 0x0D, 0x4A, 0x60, 0xA2, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF4, 0xBC, 0x9A, 0x80, 0xF0, -0x73, 0xC0, 0x80, 0x18, 0x24, 0x39, 0x80, 0xF0, -0x55, 0xC0, 0x0A, 0x94, 0x04, 0x95, 0x05, 0x96, -0x80, 0x18, 0x38, 0x2A, 0x09, 0x97, 0x08, 0x91, -0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x6A, 0x4C, 0xEF, 0x4C, 0xED, 0x24, 0x67, -0x0C, 0xD6, 0x04, 0xD7, 0x05, 0x2D, 0xA7, 0x67, -0x80, 0x18, 0x22, 0x2A, 0x01, 0x68, 0x01, 0x2A, -0x00, 0x68, 0x0C, 0x95, 0x04, 0x96, 0x91, 0x67, -0xF0, 0x67, 0x80, 0x18, 0x46, 0x2B, 0x50, 0x67, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xE3, 0xF3, 0x1C, 0x68, -0x01, 0x6D, 0x90, 0x67, 0xAB, 0xED, 0x80, 0x18, -0x24, 0x39, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF4, -0xA8, 0x9A, 0x90, 0x67, 0xFF, 0xF7, 0x1F, 0x69, -0x80, 0x18, 0x24, 0x39, 0x90, 0x67, 0xB1, 0x67, -0x04, 0xD2, 0x80, 0x18, 0x24, 0x39, 0xE3, 0xF7, -0x1F, 0x6B, 0x6C, 0xEA, 0x04, 0xF0, 0x00, 0x6C, -0x53, 0xE4, 0x04, 0x92, 0x6C, 0xEC, 0xFF, 0x4C, -0x4C, 0xEB, 0x2C, 0xEC, 0x60, 0x32, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x40, 0x32, 0x8D, 0xEA, -0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, -0x30, 0xF0, 0x20, 0x68, 0x05, 0xD2, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x6D, 0x24, 0x67, 0xAB, 0xED, -0x03, 0xF3, 0x00, 0x6C, 0x0C, 0x6E, 0x40, 0xEA, -0x05, 0x93, 0x0F, 0x2B, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0xA8, 0x9B, -0xA3, 0xF3, 0x14, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x04, 0x6C, -0x11, 0x10, 0x05, 0x94, 0x01, 0x74, 0x15, 0x61, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x03, 0xF3, 0xA8, 0x9B, 0xA3, 0xF3, 0x14, 0x6C, +0x04, 0x96, 0x03, 0xF3, 0x08, 0x69, 0x01, 0x6D, +0x91, 0x67, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x06, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x43, 0xF3, 0x1C, 0x6C, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF4, 0xCC, 0x9B, 0x01, 0x6D, 0xAB, 0xED, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0xC3, 0xF4, -0xD0, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0xC3, 0xF3, -0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, -0x7B, 0x2B, 0x05, 0x94, 0x50, 0x6D, 0xB8, 0xEC, -0xAF, 0x4D, 0xC3, 0xF3, 0x14, 0x6C, 0x12, 0xEB, -0x6D, 0xE1, 0x04, 0xD3, 0x80, 0xF0, 0x58, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, -0xC3, 0xF4, 0xD4, 0x9A, 0x40, 0xEB, 0x91, 0x67, -0x80, 0x18, 0x7B, 0x2B, 0x04, 0x93, 0x01, 0x6D, -0xAB, 0xED, 0x80, 0xF0, 0x5C, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0xC3, 0xF4, -0xD8, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, -0x91, 0x67, 0x80, 0x18, 0x7B, 0x2B, 0x04, 0x94, -0x01, 0x6D, 0xAB, 0xED, 0xA0, 0xF0, 0x40, 0xDC, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, -0xC3, 0xF4, 0xDC, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, -0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, 0x7B, 0x2B, -0x04, 0x95, 0xC3, 0xF3, 0x14, 0x6C, 0xA0, 0xF0, -0x44, 0xDD, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x64, 0x98, 0xE3, 0xF4, 0xC0, 0x9A, 0x01, 0x6D, -0xAB, 0xED, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, -0x7B, 0x2B, 0x04, 0x93, 0x01, 0x6D, 0xAB, 0xED, -0xA0, 0xF0, 0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x64, 0x98, 0xE3, 0xF4, 0xC4, 0x9A, -0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, -0x80, 0x18, 0x7B, 0x2B, 0x04, 0x94, 0x01, 0x6D, -0xAB, 0xED, 0xA0, 0xF0, 0x4C, 0xDC, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0xE3, 0xF4, -0xC8, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, -0x91, 0x67, 0x80, 0x18, 0x7B, 0x2B, 0x04, 0x95, -0xC3, 0xF3, 0x14, 0x6C, 0xA0, 0xF0, 0x50, 0xDD, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, -0xE3, 0xF4, 0xCC, 0x9A, 0x01, 0x6D, 0xAB, 0xED, -0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, 0x7B, 0x2B, -0x04, 0x93, 0x01, 0x6D, 0xAB, 0xED, 0xA0, 0xF0, -0x54, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x64, 0x98, 0xE3, 0xF4, 0xD0, 0x9A, 0xC3, 0xF3, -0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, -0x7B, 0x2B, 0x04, 0x94, 0x01, 0x6D, 0xAB, 0xED, -0xA0, 0xF0, 0x58, 0xDC, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x64, 0x98, 0xE3, 0xF4, 0xD4, 0x9A, -0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, -0x80, 0x18, 0x7B, 0x2B, 0x04, 0x95, 0xC3, 0xF3, -0x14, 0x6C, 0xA0, 0xF0, 0x5C, 0xDD, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0xE3, 0xF4, -0xD8, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEB, -0x91, 0x67, 0x80, 0x18, 0x7B, 0x2B, 0x04, 0x93, -0x01, 0x6D, 0xAB, 0xED, 0xC0, 0xF0, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, -0xE3, 0xF4, 0xDC, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, -0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, 0x7B, 0x2B, -0x04, 0x94, 0x01, 0x6D, 0xAB, 0xED, 0xC0, 0xF0, -0x44, 0xDC, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x64, 0x98, 0x03, 0xF5, 0xC0, 0x9A, 0xC3, 0xF3, -0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, -0x7B, 0x2B, 0x05, 0x93, 0x50, 0x6C, 0x01, 0x6D, -0x01, 0x4B, 0x98, 0xEB, 0xAB, 0xED, 0x83, 0xF3, -0x04, 0x4C, 0x12, 0xEB, 0x6D, 0xE1, 0x5E, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, -0x03, 0xF5, 0xC4, 0x9A, 0x40, 0xEB, 0x91, 0x67, -0x80, 0x18, 0x7B, 0x2B, 0x04, 0x95, 0xC3, 0xF3, -0x14, 0x6C, 0xC0, 0xF0, 0x4C, 0xDD, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0x03, 0xF5, -0xC8, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEB, -0x91, 0x67, 0x80, 0x18, 0x7B, 0x2B, 0x04, 0x93, -0x01, 0x6D, 0xAB, 0xED, 0xC0, 0xF0, 0x50, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, -0x03, 0xF5, 0xCC, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, -0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, 0x7B, 0x2B, -0x04, 0x94, 0x01, 0x6D, 0xAB, 0xED, 0xC0, 0xF0, -0x54, 0xDC, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x64, 0x98, 0x03, 0xF5, 0xD0, 0x9A, 0xC3, 0xF3, -0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, -0x7B, 0x2B, 0x04, 0x95, 0xC3, 0xF3, 0x14, 0x6C, -0xC0, 0xF0, 0x58, 0xDD, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x64, 0x98, 0x03, 0xF5, 0xD4, 0x9A, -0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEB, 0x91, 0x67, -0x80, 0x18, 0x7B, 0x2B, 0x04, 0x93, 0x01, 0x6D, -0xAB, 0xED, 0xC0, 0xF0, 0x5C, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0x03, 0xF5, -0xD8, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, -0x91, 0x67, 0x80, 0x18, 0x7B, 0x2B, 0x04, 0x94, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, 0xDC, 0x9B, -0xE0, 0xF0, 0x40, 0xDC, 0xC0, 0xF3, 0x44, 0x98, -0x01, 0x6D, 0xAB, 0xED, 0xC3, 0xF3, 0x14, 0x6C, -0x40, 0xEA, 0x91, 0x67, 0x80, 0x18, 0x7B, 0x2B, -0x04, 0x95, 0xE0, 0xF0, 0x44, 0xDD, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6A, 0x4C, 0xED, -0xC0, 0xF3, 0x44, 0x98, 0x08, 0x6B, 0xA4, 0x36, -0x6D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF3, -0x08, 0x69, 0x91, 0x67, 0x08, 0xF0, 0x00, 0x6D, -0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF5, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x01, 0x6D, 0xC3, 0xF3, 0x14, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0xE3, 0xF3, 0x1C, 0x6C, 0xF0, 0x6D, -0x80, 0x18, 0x24, 0x39, 0x04, 0xD2, 0xC0, 0xF3, -0x44, 0x98, 0x91, 0x67, 0x08, 0xF0, 0x00, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0x04, 0x92, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0xFF, 0x6B, 0x6C, 0xEA, -0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0xFF, 0x6A, 0x4C, 0xED, 0x4C, 0xEE, 0x01, 0x69, -0xC0, 0xF3, 0x44, 0x98, 0x08, 0x6B, 0x2B, 0xE9, -0x04, 0xD6, 0xA4, 0x36, 0x6D, 0xEE, 0x03, 0xF3, -0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x43, 0xF3, 0x08, 0x6C, 0x08, 0xF0, -0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF5, 0xC4, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0xC3, 0xF3, 0x14, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF3, -0x0C, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, -0x04, 0x92, 0x04, 0x22, 0x02, 0x72, 0x00, 0x68, -0x2C, 0x60, 0x44, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF1, 0xC8, 0x9B, -0xB1, 0x67, 0x43, 0xF3, 0x0C, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF4, 0xA8, 0x9A, -0xE3, 0xF3, 0x1C, 0x69, 0x91, 0x67, 0x80, 0x18, -0x24, 0x39, 0x91, 0x67, 0xFF, 0xF7, 0x1F, 0x6D, -0x02, 0x67, 0x80, 0x18, 0x24, 0x39, 0x22, 0x67, -0x42, 0x32, 0x5E, 0x32, 0x05, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF0, 0x58, 0x9A, 0x27, 0xE2, -0x02, 0x32, 0x5E, 0x32, 0x21, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF0, 0x58, 0x9A, 0x03, 0xE2, -0x1B, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, -0x68, 0x9B, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x44, 0x9A, 0x01, 0x69, 0x2B, 0xE9, 0x00, 0xF6, -0x00, 0x36, 0x43, 0xF3, 0x0C, 0x6C, 0xB1, 0x67, -0x6D, 0xEE, 0x40, 0xEA, 0x01, 0x48, 0xE3, 0xF3, -0x1C, 0x6C, 0xB1, 0x67, 0x80, 0x18, 0x24, 0x39, -0x40, 0x70, 0xE7, 0x61, 0x00, 0x68, 0x30, 0x67, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, -0x01, 0x6D, 0x43, 0xF3, 0x0C, 0x6C, 0xAB, 0xED, -0x00, 0x6E, 0x40, 0xEA, 0x18, 0xE8, 0x09, 0x97, -0x12, 0xE8, 0x38, 0xE9, 0x12, 0xE9, 0x29, 0xE0, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, -0x00, 0x6C, 0x0F, 0x6D, 0x0C, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, 0xAC, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x00, 0x6E, 0xC3, 0xF3, -0x14, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0xB8, 0x9A, 0xE3, 0xF3, 0x1C, 0x6C, -0x80, 0x18, 0x24, 0x39, 0x05, 0x97, 0x04, 0x90, -0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF5, 0xC8, 0x9B, -0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, 0xC3, 0xF3, -0x14, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF3, 0xB8, 0x9A, 0xE3, 0xF3, -0x1C, 0x69, 0x91, 0x67, 0x80, 0x18, 0x24, 0x39, -0xFF, 0xF7, 0x1F, 0x68, 0x91, 0x67, 0xE1, 0xF7, -0x1F, 0x6D, 0x4C, 0xE8, 0xFF, 0xF7, 0x1F, 0x69, -0x80, 0x18, 0x24, 0x39, 0x4C, 0xE9, 0x02, 0x32, -0x4E, 0x32, 0x01, 0x72, 0x06, 0x61, 0x02, 0xF0, -0x00, 0x6A, 0x03, 0xE2, 0xFF, 0xF7, 0x1F, 0x6A, -0x4C, 0xE8, 0x22, 0x32, 0x4E, 0x32, 0x01, 0x72, -0x06, 0x61, 0x02, 0xF0, 0x00, 0x6A, 0x27, 0xE2, -0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE9, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, -0xF0, 0x6E, 0xC3, 0xF3, 0x14, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0xE3, 0xF3, 0x1C, 0x6C, 0xFF, 0x6D, -0x80, 0x18, 0x24, 0x39, 0xE3, 0xF3, 0x1C, 0x6C, -0x1F, 0xF7, 0x00, 0x6D, 0x04, 0xD2, 0x80, 0x18, -0x24, 0x39, 0xC9, 0x58, 0x0C, 0x60, 0xC9, 0x59, -0x0A, 0x60, 0x04, 0x93, 0xFF, 0x6A, 0x6C, 0xEA, -0x28, 0x5A, 0x05, 0x61, 0x42, 0x5A, 0x58, 0x67, -0x01, 0x6B, 0x6E, 0xEA, 0x01, 0x10, 0x01, 0x6A, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, -0xB4, 0x9A, 0x04, 0x67, 0x63, 0xF6, 0x1C, 0x6C, -0x80, 0x18, 0x24, 0x39, 0x01, 0x22, 0x01, 0x6A, -0x60, 0xF0, 0x5B, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0xEC, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0x6E, 0xF6, 0x08, 0x4C, 0x00, 0x6D, 0x18, 0x6E, -0x80, 0x18, 0x8E, 0x4E, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF0, 0x78, 0x9B, 0x80, 0xF0, 0x50, 0xC0, -0x05, 0x97, 0x4C, 0xEB, 0x62, 0x33, 0x62, 0x33, -0x80, 0xF0, 0x71, 0xC0, 0x06, 0xF0, 0x00, 0x6B, -0x4C, 0xEB, 0x62, 0x33, 0x72, 0x33, 0x80, 0xF0, -0x72, 0xC0, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x00, 0x6A, 0x0D, 0xD7, 0x05, 0x67, 0x26, 0x67, -0x04, 0xD2, 0x0B, 0x10, 0x80, 0xA8, 0x01, 0x6D, -0xAB, 0xED, 0x80, 0x18, 0x24, 0x39, 0x40, 0xD9, -0x04, 0x93, 0x04, 0x48, 0x04, 0x49, 0x01, 0x4B, -0x04, 0xD3, 0x04, 0x92, 0x0D, 0x93, 0x63, 0xEA, -0xF1, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF1, 0x08, 0x4B, 0xE0, 0x9B, 0xFF, 0x69, -0x30, 0xF0, 0x20, 0x68, 0xAC, 0xE9, 0x6E, 0xF6, -0x08, 0x48, 0x90, 0x67, 0xB1, 0x67, 0x01, 0x6A, -0x42, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, -0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF1, 0x08, 0x4A, 0xE0, 0x9A, 0x90, 0x67, -0xB1, 0x67, 0x42, 0x6E, 0x80, 0x18, 0xD3, 0x4E, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, 0x08, 0x4A, -0xE0, 0x9A, 0x01, 0x6B, 0xB1, 0x67, 0x90, 0x67, -0x42, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xD3, 0x4E, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, -0x0F, 0x6C, 0x40, 0xEA, 0x90, 0x67, 0xB1, 0x67, -0x42, 0x6E, 0x7E, 0x6F, 0x80, 0x18, 0x8E, 0x4E, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0xFF, 0x6B, -0x6C, 0xEA, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x00, 0x6A, 0x0A, 0xD4, 0x60, 0xF0, 0x5E, 0xCC, -0x0A, 0x90, 0x04, 0xD4, 0x00, 0x69, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x9A, 0x24, 0x36, -0x08, 0x6A, 0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, -0x0F, 0x6D, 0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x9B, 0x43, 0xF3, 0x18, 0x6C, -0x7F, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x00, 0x6A, -0x80, 0xF0, 0x55, 0xC0, 0x80, 0xF0, 0x53, 0xC0, -0x04, 0x94, 0x5B, 0x6B, 0xB1, 0x67, 0x20, 0xF1, -0x78, 0xCC, 0x80, 0xF0, 0x44, 0xC0, 0x0A, 0x94, -0x01, 0x49, 0x80, 0x18, 0x31, 0x2D, 0x80, 0xF0, -0x40, 0xC0, 0x04, 0x92, 0x02, 0x71, 0x01, 0x48, -0x02, 0x4A, 0x04, 0xD2, 0xD4, 0x61, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x0C, 0xD4, 0x80, 0xF0, 0x51, 0xA4, 0xFF, 0x68, -0xAC, 0xE8, 0x07, 0xD2, 0x5D, 0x2A, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF3, 0x0C, 0x4B, 0x30, 0xF0, -0x20, 0x6A, 0xE0, 0x9B, 0x23, 0xF5, 0x4C, 0x9A, -0x30, 0xF0, 0x20, 0x69, 0x6E, 0xF6, 0x08, 0x49, -0x91, 0x67, 0xB0, 0x67, 0x00, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0xD3, 0x4E, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0x0C, 0x4A, 0xE0, 0x9A, 0x91, 0x67, -0xB0, 0x67, 0x56, 0x6E, 0x80, 0x18, 0x8E, 0x4E, -0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, -0xF8, 0x9A, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, -0xDE, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xD3, 0x4E, -0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF1, 0xE8, 0x9A, 0x91, 0x67, 0xB0, 0x67, -0xDE, 0x6E, 0x80, 0x18, 0xD3, 0x4E, 0x30, 0xF0, -0x20, 0x6A, 0x07, 0x93, 0x23, 0xF5, 0xF0, 0x9A, -0x91, 0x67, 0xB0, 0x67, 0x55, 0x6E, 0x04, 0xD3, -0x80, 0x18, 0xD3, 0x4E, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF3, 0x0C, 0x4B, 0xE0, 0x9B, 0x06, 0x92, -0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, 0x04, 0xD2, -0x80, 0x18, 0xD3, 0x4E, 0x01, 0x6A, 0x91, 0x67, -0xB0, 0x67, 0x55, 0x6E, 0x1C, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0xD3, 0x4E, 0x07, 0x93, 0x30, 0xF0, -0x20, 0x6A, 0x91, 0x67, 0x04, 0xD3, 0xB0, 0x67, -0x87, 0x6E, 0x63, 0xF1, 0xE4, 0x9A, 0x6B, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF5, 0x4C, 0x9A, -0x30, 0xF0, 0x20, 0x69, 0x6E, 0xF6, 0x08, 0x49, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, -0x0C, 0x4A, 0xE0, 0x9A, 0x91, 0x67, 0xB0, 0x67, -0x00, 0x6E, 0x80, 0x18, 0xD3, 0x4E, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF3, 0x0C, 0x4B, 0xE0, 0x9B, -0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, 0x80, 0x18, -0x8E, 0x4E, 0x06, 0xD2, 0x01, 0x6A, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0xF8, 0x9A, -0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, 0x80, 0x18, -0xD3, 0x4E, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, -0xE8, 0x9A, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, -0xDE, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xD3, 0x4E, -0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF5, 0xF0, 0x9A, 0x91, 0x67, 0xB0, 0x67, -0x55, 0x6E, 0x80, 0x18, 0xD3, 0x4E, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF3, 0x0C, 0x4A, 0x06, 0x93, -0xE0, 0x9A, 0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, -0x04, 0xD3, 0x80, 0x18, 0xD3, 0x4E, 0x00, 0x6B, -0x91, 0x67, 0xB0, 0x67, 0x63, 0x6E, 0x18, 0xF0, -0x00, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0xD3, 0x4E, -0x06, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x63, 0x6E, -0x1C, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, -0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x63, 0x6E, -0x06, 0xF0, 0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, -0xD3, 0x4E, 0x00, 0x6B, 0x04, 0xD3, 0x91, 0x67, -0xB0, 0x67, 0x8A, 0x6E, 0x18, 0x6F, 0x80, 0x18, -0xD3, 0x4E, 0x91, 0x67, 0x30, 0xF0, 0x20, 0x69, -0x0F, 0x6A, 0xB0, 0x67, 0x00, 0x6E, 0xE0, 0xF3, -0x00, 0x6F, 0x6E, 0xF6, 0x08, 0x49, 0x04, 0xD2, -0x80, 0x18, 0xD3, 0x4E, 0x01, 0x6A, 0x91, 0x67, -0xB0, 0x67, 0xDE, 0x6E, 0x04, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0xD3, 0x4E, 0x00, 0x6A, 0x91, 0x67, -0xB0, 0x67, 0x1A, 0x6E, 0x01, 0xF4, 0x00, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, 0x0C, 0x93, -0x80, 0xF0, 0x52, 0xA3, 0x01, 0x72, 0x02, 0x6A, -0x01, 0x60, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, -0x1A, 0x6E, 0x0E, 0xF0, 0x00, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0xD3, 0x4E, 0x30, 0xF0, 0x20, 0x6C, -0xB0, 0x67, 0x8F, 0x6E, 0x02, 0x6F, 0x30, 0xF0, -0x20, 0x68, 0x01, 0x6A, 0x6E, 0xF6, 0x08, 0x4C, -0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, 0x80, 0xF3, -0x4C, 0x98, 0x14, 0x6C, 0x40, 0xEA, 0x80, 0xF3, -0x4C, 0x98, 0x14, 0x6C, 0x40, 0xEA, 0x80, 0xF3, -0x4C, 0x98, 0x14, 0x6C, 0x40, 0xEA, 0x80, 0xF3, -0x4C, 0x98, 0x14, 0x6C, 0x40, 0xEA, 0x80, 0xF3, -0x4C, 0x98, 0x14, 0x6C, 0x40, 0xEA, 0x06, 0x93, -0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x1F, 0x6A, -0x6C, 0xEA, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x00, 0x69, 0x0A, 0xD4, 0x00, 0x6A, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0xEC, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0xFF, 0x6D, 0x6E, 0xF6, -0x08, 0x4C, 0x2C, 0xED, 0x19, 0x6E, 0x30, 0xF0, -0x20, 0x68, 0x80, 0x18, 0xD3, 0x4E, 0xC0, 0xF3, -0x64, 0x98, 0x08, 0x6A, 0x24, 0x36, 0x01, 0x6D, -0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, -0x40, 0xEB, 0x0A, 0x93, 0x80, 0xF0, 0x51, 0xA3, -0x0B, 0x2A, 0x01, 0x6D, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF3, 0x00, 0x6C, -0xAB, 0xED, 0x23, 0xF5, 0xD4, 0x9B, 0x0A, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF5, 0xD8, 0x9B, 0x01, 0x6D, 0x63, 0xF3, -0x00, 0x6C, 0xAB, 0xED, 0x30, 0xF0, 0x20, 0x68, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF3, -0x04, 0x6C, 0x0E, 0xF0, 0x00, 0x6D, 0x04, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x83, 0xF3, 0xBC, 0x9B, 0x23, 0xF3, -0x00, 0x6C, 0x03, 0x6E, 0x01, 0x49, 0x40, 0xEA, -0x02, 0x71, 0xB4, 0x61, 0xC0, 0xF3, 0x44, 0x98, -0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x0C, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF5, 0xDC, 0x9B, 0x01, 0x69, -0x2B, 0xE9, 0xB1, 0x67, 0xE3, 0xF3, 0x04, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x43, 0xF5, 0xC0, 0x9B, 0xB1, 0x67, -0xE3, 0xF3, 0x08, 0x6C, 0x40, 0xEA, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF5, 0x44, 0x9A, -0xFF, 0x69, 0x30, 0xF0, 0x20, 0x68, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x0C, 0x4A, -0xE0, 0x9A, 0x6E, 0xF6, 0x08, 0x48, 0xAC, 0xE9, -0x90, 0x67, 0xB1, 0x67, 0x92, 0x6E, 0x80, 0x18, -0xD3, 0x4E, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x05, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF3, 0x0C, 0x4B, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF5, 0x48, 0x9A, 0xE0, 0x9B, -0x90, 0x67, 0xB1, 0x67, 0x92, 0x6E, 0x04, 0xD2, -0x00, 0x68, 0x80, 0x18, 0xD3, 0x4E, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, -0x01, 0x48, 0x40, 0xEA, 0xFF, 0x6A, 0x4C, 0xE8, -0x1E, 0x70, 0xF5, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF5, 0x44, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0xB1, 0x67, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0xEC, 0x9A, 0x6E, 0xF6, 0x08, 0x4C, -0x92, 0x6E, 0x80, 0x18, 0xD3, 0x4E, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x00, 0x6A, 0x06, 0xD5, 0x06, 0x67, 0x07, 0xD2, -0x40, 0x98, 0x06, 0x93, 0x30, 0xF0, 0x20, 0x69, -0x6E, 0xF6, 0x08, 0x49, 0xC0, 0x9B, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x0C, 0x4A, -0xE0, 0x9A, 0x91, 0x67, 0x00, 0x6D, 0x80, 0x18, -0xD3, 0x4E, 0x41, 0x98, 0x06, 0x93, 0x91, 0x67, -0x01, 0x6D, 0xC0, 0x9B, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF3, 0x0C, 0x4A, 0xE0, 0x9A, -0x08, 0x48, 0x80, 0x18, 0xD3, 0x4E, 0x07, 0x93, -0x06, 0x92, 0x01, 0x4B, 0x04, 0x4A, 0x07, 0x73, -0x07, 0xD3, 0x06, 0xD2, 0xD9, 0x61, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x00, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF5, -0x44, 0x9A, 0x30, 0xF0, 0x20, 0x69, 0x6E, 0xF6, -0x08, 0x49, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0x0C, 0x4A, 0xE0, 0x9A, 0x91, 0x67, -0xB0, 0x67, 0x92, 0x6E, 0x80, 0x18, 0xD3, 0x4E, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, -0x05, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF3, 0x0C, 0x4B, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF5, 0x48, 0x9A, 0xE0, 0x9B, 0x91, 0x67, -0xB0, 0x67, 0x92, 0x6E, 0x04, 0xD2, 0x00, 0x69, -0x80, 0x18, 0xD3, 0x4E, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, 0x01, 0x49, -0x40, 0xEA, 0xFF, 0x6A, 0x4C, 0xE9, 0x1E, 0x71, -0xF5, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF5, -0x44, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xB0, 0x67, -0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, -0xEC, 0x9A, 0x6E, 0xF6, 0x08, 0x4C, 0x92, 0x6E, -0x80, 0x18, 0xD3, 0x4E, 0x01, 0x48, 0xFF, 0x6B, -0x6C, 0xE8, 0x02, 0x70, 0xB6, 0x61, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x00, 0x69, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF4, -0xBC, 0x9A, 0x02, 0xF7, 0x00, 0x6C, 0x80, 0x18, -0x9C, 0x39, 0x20, 0x6B, 0x4C, 0xEB, 0x12, 0x2B, -0x00, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x14, 0x6C, 0x01, 0x48, 0x40, 0xEA, -0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0xE0, 0xF1, -0x14, 0x70, 0xF3, 0x61, 0x01, 0x49, 0x0A, 0x71, -0xE4, 0x61, 0x0A, 0x69, 0x51, 0x67, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFF, 0xF7, 0x1F, 0x68, 0xAC, 0xE8, 0x80, 0x18, -0xAC, 0x2E, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF4, -0xC0, 0x9A, 0x01, 0x69, 0x2B, 0xE9, 0x0D, 0xEE, -0xB1, 0x67, 0x02, 0xF7, 0x00, 0x6C, 0x80, 0x18, -0xB1, 0x39, 0xB1, 0x67, 0x02, 0xF7, 0x08, 0x6C, -0x80, 0x18, 0x9C, 0x39, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0xF7, 0x1F, 0x68, 0x24, 0x67, 0x0C, 0xD6, -0x0D, 0xD7, 0xAC, 0xE8, 0x38, 0x26, 0x66, 0x67, -0x01, 0x4B, 0x00, 0x6A, 0x09, 0x2B, 0x01, 0x69, -0x2B, 0xE9, 0x80, 0x18, 0xAC, 0x2E, 0x02, 0xF7, -0x04, 0x6C, 0xB1, 0x67, 0x0D, 0x96, 0x1F, 0x10, -0x0C, 0x93, 0x01, 0x6C, 0x66, 0xEA, 0x8C, 0xEB, -0x04, 0x2B, 0x01, 0x4A, 0x20, 0x72, 0xF8, 0x61, -0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x05, 0xD2, -0x80, 0x18, 0xC0, 0x2E, 0x0C, 0x93, 0x91, 0x67, -0x01, 0x69, 0x6F, 0xEB, 0x4C, 0xEB, 0x04, 0xD3, -0x80, 0x18, 0xAC, 0x2E, 0x0D, 0x96, 0x05, 0x92, -0x04, 0x93, 0x2B, 0xE9, 0xC4, 0xEA, 0x02, 0xF7, -0x04, 0x6C, 0xB1, 0x67, 0x6D, 0xEE, 0x80, 0x18, -0xB1, 0x39, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF4, -0xC4, 0x9A, 0x02, 0xF7, 0x00, 0x6C, 0xB1, 0x67, -0x0D, 0xEE, 0x80, 0x18, 0xB1, 0x39, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0xFF, 0x6A, 0xAC, 0xEA, 0x04, 0x67, 0x1D, 0x22, -0x01, 0x6D, 0x70, 0x6C, 0xAB, 0xED, 0x80, 0x18, -0x9C, 0x39, 0x80, 0xF0, 0x48, 0xD8, 0x90, 0x67, -0x38, 0x6D, 0x80, 0x18, 0xC0, 0x2E, 0x80, 0xF0, -0x4C, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, -0xA0, 0x9A, 0x70, 0x6C, 0x01, 0x6E, 0x80, 0x18, -0xB1, 0x39, 0x90, 0x67, 0x38, 0x6D, 0x1F, 0xF7, -0x00, 0x6E, 0x77, 0x6F, 0x80, 0x18, 0xD0, 0x2E, -0x0E, 0x10, 0x01, 0x69, 0x80, 0xF0, 0xEC, 0x98, -0x2B, 0xE9, 0x38, 0x6D, 0xD1, 0x67, 0x80, 0x18, -0xD0, 0x2E, 0x80, 0xF0, 0xC8, 0x98, 0x70, 0x6C, -0xB1, 0x67, 0x80, 0x18, 0xB1, 0x39, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x6A, 0x4C, 0xED, 0x0A, 0xD4, 0x04, 0xD5, -0x80, 0xF0, 0x72, 0xA4, 0x01, 0x6C, 0x26, 0x67, -0x8E, 0xEB, 0x01, 0x5B, 0x4C, 0xE9, 0x78, 0x67, -0x01, 0x71, 0x64, 0x33, 0x03, 0x61, 0x05, 0x67, -0x14, 0x48, 0x10, 0x10, 0x02, 0x71, 0x03, 0x61, -0x04, 0x90, 0x16, 0x48, 0x0A, 0x10, 0x03, 0x71, -0x03, 0x61, 0x04, 0x90, 0x1A, 0x48, 0x06, 0x10, -0x04, 0x71, 0x00, 0x68, 0x04, 0x61, 0x04, 0x90, -0x1C, 0x48, 0x01, 0xE3, 0x4C, 0xE8, 0x0A, 0x94, -0x01, 0x6D, 0x80, 0x18, 0xF4, 0x2E, 0x4A, 0x29, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0xA3, 0xF3, 0x14, 0x49, 0x91, 0x67, 0x02, 0xF0, -0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x91, 0x67, 0x02, 0xF0, 0x00, 0x6D, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF3, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x00, 0x6E, 0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, -0x14, 0x6C, 0x00, 0x68, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF0, 0xAC, 0x9A, 0xE3, 0xF3, -0x1C, 0x6C, 0x80, 0x18, 0x24, 0x39, 0xFF, 0x6B, -0x4C, 0xEB, 0x14, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, 0x01, 0x48, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, -0xAC, 0x9A, 0xE3, 0xF3, 0x1C, 0x6C, 0x80, 0x18, -0x24, 0x39, 0xFF, 0x6B, 0x4C, 0xEB, 0xFF, 0xF7, -0x1F, 0x6A, 0x4C, 0xE8, 0x01, 0x73, 0x60, 0x60, -0xE0, 0xF3, 0x08, 0x70, 0xE7, 0x61, 0xE0, 0xF3, -0x08, 0x68, 0x5A, 0x10, 0x04, 0x92, 0x30, 0xF0, -0x20, 0x69, 0xC0, 0xF3, 0x64, 0x99, 0x44, 0x36, -0x08, 0x6A, 0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, -0x0F, 0x6D, 0x40, 0xEB, 0xC0, 0xF3, 0x44, 0x99, -0xC3, 0xF3, 0x0C, 0x6C, 0x3F, 0x6D, 0x09, 0x6E, -0x40, 0xEA, 0x00, 0x30, 0x48, 0x6A, 0x4D, 0xE8, -0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0xD0, 0x67, -0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0xC1, 0x40, -0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x85, 0xF5, 0x1C, 0x6C, 0xFF, 0x6D, 0x80, 0x18, -0x24, 0x39, 0xFF, 0x6B, 0x4C, 0xEB, 0x00, 0x68, -0x11, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x14, 0x6C, 0x01, 0x48, 0x40, 0xEA, -0x85, 0xF5, 0x1C, 0x6C, 0xFF, 0x6D, 0x80, 0x18, -0x24, 0x39, 0xFF, 0x6B, 0x4C, 0xEB, 0xFF, 0xF7, -0x1F, 0x6A, 0x4C, 0xE8, 0x55, 0x73, 0x05, 0x60, -0xE0, 0xF3, 0x08, 0x70, 0xEA, 0x61, 0xE0, 0xF3, -0x08, 0x68, 0x04, 0x94, 0x30, 0xF0, 0x20, 0x69, -0xC0, 0xF3, 0x44, 0x99, 0x84, 0x36, 0x08, 0x6B, -0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x6D, 0xEE, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xC3, 0xF3, -0x0C, 0x6C, 0x3F, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0x0A, 0x94, 0x00, 0x6D, 0x80, 0x18, 0xF4, 0x2E, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, -0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0xE0, 0xF3, 0x08, 0x6A, 0x0E, 0xEA, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x01, 0x5A, -0x58, 0x67, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x60, 0xF0, 0x5E, 0xAC, 0x24, 0x67, 0x03, 0x2A, -0x80, 0xF0, 0x50, 0xA4, 0x71, 0x22, 0x80, 0x18, -0x09, 0x2D, 0x00, 0x68, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x9B, 0x04, 0x36, 0x08, 0x6B, -0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x6D, 0xEE, -0x40, 0xEA, 0x80, 0xF0, 0x51, 0xA1, 0x0D, 0x2A, -0x30, 0xF0, 0x20, 0x6C, 0x01, 0x6D, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9C, 0xAB, 0xED, -0x63, 0xF3, 0x00, 0x6C, 0x23, 0xF5, 0xD4, 0x9B, -0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF5, -0xD8, 0x9B, 0x01, 0x6D, 0x63, 0xF3, 0x00, 0x6C, -0xAB, 0xED, 0x40, 0xEA, 0x0D, 0xE1, 0x30, 0xF0, -0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0x80, 0xF0, -0xD5, 0xA3, 0xC0, 0xF3, 0x44, 0x9C, 0x63, 0xF4, -0xBC, 0x9D, 0x63, 0xF3, 0x04, 0x6C, 0x40, 0xEA, -0x60, 0xF0, 0xDE, 0xA1, 0x01, 0x6A, 0x44, 0xE8, -0x47, 0xE8, 0x4C, 0xEE, 0x91, 0x67, 0xB0, 0x67, -0x80, 0x18, 0x38, 0x2A, 0x91, 0x67, 0xB0, 0x67, -0x03, 0x6E, 0x80, 0x18, 0x10, 0x2F, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x03, 0xF3, -0x00, 0x6C, 0x0F, 0x6D, 0x0C, 0x6E, 0x40, 0xEA, -0xFF, 0x6A, 0x0C, 0xEA, 0x0D, 0x2A, 0x30, 0xF0, -0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x9C, 0x43, 0xF5, 0xAC, 0x9B, 0x03, 0xF3, -0x04, 0x6C, 0x20, 0xF1, 0xD8, 0xA9, 0x0C, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF5, 0xAC, 0x9B, -0x20, 0xF1, 0xDA, 0xA9, 0x43, 0xF3, 0x1C, 0x6C, -0x01, 0x48, 0x40, 0xEA, 0x02, 0x70, 0x92, 0x61, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x00, 0x6A, 0x60, 0xF0, 0x5C, 0xC4, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0xEC, 0x9A, -0x04, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x6E, 0xF6, -0x08, 0x4C, 0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, -0x8E, 0x4E, 0x80, 0xF0, 0x90, 0xA0, 0xFF, 0x6B, -0x4C, 0xEB, 0x8E, 0xEB, 0x06, 0x2B, 0x90, 0x67, -0x80, 0x18, 0x84, 0x2F, 0x01, 0x6A, 0x60, 0xF0, -0x5C, 0xC0, 0x60, 0xF0, 0x5C, 0xA0, 0x05, 0x97, -0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0xAC, 0xEA, -0x04, 0xD2, 0x44, 0x36, 0xC0, 0xF3, 0x44, 0x98, -0x08, 0x6B, 0x6D, 0xEE, 0x0A, 0xD4, 0x0F, 0x6D, -0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF2, 0xBC, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF3, 0x00, 0x69, 0x91, 0x67, -0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF3, 0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x7F, 0x49, -0xC0, 0xF3, 0x44, 0x98, 0x2D, 0x49, 0x91, 0x67, -0x3F, 0x6D, 0x09, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF1, 0xA0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, -0x0F, 0x6D, 0x0C, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xC3, 0xF3, 0x14, 0x6C, 0xF0, 0x6D, -0x0F, 0x6E, 0x40, 0xEA, 0x04, 0x93, 0x12, 0x2B, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF5, 0xAC, 0x9B, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x43, 0xF5, 0xD0, 0x9B, 0x03, 0xF3, 0x04, 0x6C, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, -0x08, 0x6C, 0x11, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF5, 0xAC, 0x9B, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF5, 0xD0, 0x9B, -0x43, 0xF3, 0x1C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0x63, 0xF3, 0x00, 0x6C, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF0, 0xAC, 0x9B, 0x01, 0x6E, -0x40, 0xEA, 0x0A, 0x93, 0x80, 0xF0, 0x52, 0xA3, -0x01, 0x72, 0x41, 0x61, 0x30, 0xF0, 0x20, 0x68, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF5, 0xD4, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, -0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF3, 0x18, 0x6C, -0xB1, 0x67, 0x02, 0xF3, 0x10, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF5, 0xD8, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF3, 0x18, 0x6C, -0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF5, 0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF3, 0x18, 0x6C, -0xB1, 0x67, 0x36, 0xF4, 0x08, 0x6E, 0x40, 0xEA, -0x04, 0x92, 0x01, 0x6E, 0x30, 0xF0, 0x20, 0x6B, -0xC4, 0xEA, 0x00, 0xF7, 0xC0, 0x36, 0xC0, 0xF3, -0x44, 0x98, 0xE3, 0xF3, 0x14, 0x6C, 0xB1, 0x67, -0x63, 0xF5, 0x60, 0x9B, 0x42, 0x10, 0x30, 0xF0, -0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, -0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, -0x2B, 0xE9, 0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, -0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF3, -0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF5, 0xCC, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, -0xD0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF3, -0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, -0x44, 0x98, 0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, -0x36, 0xF4, 0x08, 0x6E, 0x40, 0xEA, 0x04, 0x93, -0x01, 0x6E, 0xC0, 0xF3, 0x44, 0x98, 0xC4, 0xEB, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x74, 0x9B, -0x00, 0xF7, 0xC0, 0x36, 0xE3, 0xF3, 0x14, 0x6C, -0xB1, 0x67, 0x6D, 0xEE, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0x63, 0xF4, -0x3C, 0x9A, 0x04, 0x96, 0xC0, 0xF3, 0x44, 0x98, -0x08, 0x6B, 0x6D, 0xEE, 0xB1, 0x67, 0xA3, 0xF3, -0x14, 0x6C, 0x40, 0xEA, 0x0A, 0x94, 0x04, 0x95, -0x00, 0x6E, 0x80, 0x18, 0x10, 0x2F, 0xC0, 0xF3, -0x44, 0x98, 0xB1, 0x67, 0xE3, 0xF3, 0x14, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x04, 0x92, 0x08, 0x6B, -0x03, 0xF3, 0x00, 0x6C, 0x44, 0x36, 0xC0, 0xF3, -0x44, 0x98, 0x6D, 0xEE, 0x0F, 0x6D, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0xB8, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x69, -0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF1, 0xA0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, -0x0F, 0x6D, 0x0C, 0x6E, 0x40, 0xEA, 0x04, 0x92, -0x05, 0x2A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, -0x04, 0x6C, 0x04, 0x10, 0xC0, 0xF3, 0x44, 0x98, -0x43, 0xF3, 0x1C, 0x6C, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF5, 0xAC, 0x9B, 0x5B, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, -0xC3, 0xF3, 0x14, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0xB8, 0x9A, -0xE3, 0xF3, 0x1C, 0x6C, 0x80, 0x18, 0x24, 0x39, -0xFF, 0xF7, 0x1F, 0x6B, 0x80, 0xF3, 0x0E, 0x6C, -0x6C, 0xEA, 0x98, 0xEA, 0x0A, 0x6C, 0x12, 0xE8, -0x02, 0x30, 0x0A, 0x30, 0x9B, 0xE8, 0x01, 0x2C, -0xE5, 0xE8, 0x10, 0xEC, 0x05, 0x5C, 0x12, 0xE8, -0x6C, 0xE8, 0x02, 0x61, 0x01, 0x48, 0x6C, 0xE8, -0x04, 0x92, 0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF3, 0x04, 0x6C, -0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x44, 0x9A, 0x43, 0xF3, 0x1C, 0x6C, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF5, 0xAC, 0x9B, 0xD0, 0x67, -0x40, 0xEA, 0x04, 0x92, 0x0A, 0x93, 0x7F, 0x4A, -0x1D, 0x4A, 0x44, 0x32, 0x49, 0xE3, 0x00, 0xCA, -0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0xAC, 0xE8, -0xB0, 0x67, 0x03, 0x6E, 0x24, 0x67, 0x80, 0x18, -0x10, 0x2F, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x9B, 0x04, 0x36, 0x08, 0x6B, 0x6D, 0xEE, -0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0xBC, 0x9B, -0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x60, 0xF0, 0x7E, 0xA9, 0x01, 0x6A, 0x44, 0xE8, -0x6C, 0xEA, 0x47, 0xE8, 0x04, 0x22, 0x91, 0x67, -0xB0, 0x67, 0x80, 0x18, 0xD8, 0x2F, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0x68, 0xCC, 0xE8, 0xB0, 0x67, 0x02, 0x6E, -0x24, 0x67, 0x80, 0x18, 0x10, 0x2F, 0x07, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, -0x08, 0x6B, 0x04, 0x36, 0x6D, 0xEE, 0x03, 0xF3, -0x00, 0x6C, 0x0F, 0x6D, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF3, 0xA0, 0x9A, 0x03, 0xF3, -0x08, 0x6C, 0x80, 0x18, 0x24, 0x39, 0x06, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x5C, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0xB0, 0x67, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0xEC, 0x9A, -0x00, 0x6E, 0x6E, 0xF6, 0x08, 0x4C, 0x80, 0x18, -0xD3, 0x4E, 0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, -0x91, 0x2B, 0x06, 0x93, 0x07, 0x92, 0x0B, 0x97, -0x0A, 0x91, 0x09, 0x90, 0x6D, 0xEA, 0xFF, 0x6B, -0x6C, 0xEA, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x6A, 0x25, 0x67, 0x4C, 0xEE, 0x4C, 0xE9, -0xEC, 0xEA, 0x01, 0x72, 0x04, 0x67, 0x04, 0xD6, -0x17, 0x61, 0xB1, 0x67, 0x04, 0x6E, 0x80, 0x18, -0x10, 0x2F, 0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, -0xC4, 0x2C, 0x00, 0xF6, 0x00, 0x5A, 0x04, 0x61, -0x04, 0x93, 0x02, 0x6A, 0x23, 0x2B, 0x25, 0x10, -0x04, 0x94, 0x00, 0xF3, 0x00, 0x5A, 0x78, 0x67, -0x01, 0x5C, 0x58, 0x67, 0x1E, 0x2B, 0x1A, 0x10, -0x19, 0x2A, 0xB1, 0x67, 0x00, 0x6E, 0x80, 0x18, -0x7D, 0x2C, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, -0x60, 0x9B, 0x43, 0xEB, 0x11, 0x60, 0x42, 0x34, -0x96, 0x34, 0x80, 0x18, 0xAC, 0x27, 0x03, 0x6B, -0x78, 0xEA, 0x03, 0x6A, 0x12, 0xEB, 0xFE, 0xF0, -0x02, 0x4B, 0xE0, 0xF3, 0x09, 0x5B, 0x05, 0x60, -0xFA, 0x5B, 0x02, 0x61, 0x00, 0x6A, 0x01, 0x10, -0x04, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xF7, 0x63, 0x11, 0x62, -0x10, 0xD1, 0x0F, 0xD0, 0xFF, 0x6A, 0x25, 0x67, -0x4C, 0xEE, 0x4C, 0xEF, 0x4C, 0xE9, 0x00, 0x6A, -0x12, 0xD4, 0x0C, 0xD6, 0x0A, 0xD7, 0x07, 0xD2, -0x08, 0xD2, 0x09, 0xD2, 0x06, 0xD2, 0x02, 0x67, -0x06, 0x5A, 0x80, 0xF0, 0x1C, 0x60, 0x30, 0xF0, -0x20, 0x6B, 0x48, 0x32, 0xA2, 0xF5, 0x10, 0x4B, -0x49, 0xE3, 0x40, 0x9A, 0x00, 0xEA, 0x30, 0xF0, -0x20, 0x68, 0x6E, 0xF6, 0x08, 0x48, 0x90, 0x67, -0xB1, 0x67, 0x56, 0x6E, 0x1F, 0x6F, 0x80, 0x18, -0x8E, 0x4E, 0x90, 0x67, 0xB1, 0x67, 0x00, 0x6E, -0xE0, 0xF3, 0x00, 0x6F, 0x0B, 0xD2, 0x80, 0x18, -0x8E, 0x4E, 0x0A, 0x94, 0x06, 0xD2, 0x0D, 0x2C, -0x12, 0x94, 0x08, 0x96, 0xB1, 0x67, 0x01, 0x6F, -0x80, 0x18, 0xDC, 0x30, 0x07, 0x2A, 0x0C, 0x92, -0x04, 0x22, 0x01, 0x6B, 0x09, 0xD3, 0x0A, 0x92, -0x01, 0x10, 0x05, 0x6A, 0x06, 0x94, 0xFF, 0x6B, -0x0B, 0x90, 0x6C, 0xEC, 0x06, 0xD4, 0x07, 0x94, -0x6C, 0xE8, 0x01, 0x4C, 0x6C, 0xEC, 0x07, 0xD4, -0x60, 0x10, 0x06, 0x92, 0x0F, 0x5A, 0x12, 0x60, -0x06, 0x92, 0xFF, 0x6B, 0xF4, 0x4A, 0x6C, 0xEA, -0x03, 0x5A, 0x54, 0x60, 0x00, 0x6A, 0x30, 0xF0, -0x20, 0x6C, 0x04, 0xD2, 0x6E, 0xF6, 0x08, 0x4C, -0xB1, 0x67, 0xC2, 0x67, 0x13, 0x10, 0x06, 0x93, -0x0C, 0x5B, 0x02, 0x60, 0x0C, 0x6A, 0x07, 0x10, -0x06, 0x92, 0xFF, 0x6B, 0xF4, 0x4A, 0x6C, 0xEA, -0x03, 0x5A, 0x40, 0x60, 0x0F, 0x6A, 0x30, 0xF0, -0x20, 0x6C, 0x04, 0xD2, 0x6E, 0xF6, 0x08, 0x4C, -0xB1, 0x67, 0x00, 0x6E, 0xE0, 0xF3, 0x00, 0x6F, -0x80, 0x18, 0xD3, 0x4E, 0x35, 0x10, 0x3B, 0x20, -0xFF, 0x6A, 0xFE, 0x48, 0x30, 0xF0, 0x20, 0x6C, -0x4C, 0xE8, 0x6E, 0xF6, 0x08, 0x4C, 0xB1, 0x67, -0x56, 0x6E, 0x1F, 0x6F, 0x04, 0xD0, 0x80, 0x18, -0xD3, 0x4E, 0x00, 0x6C, 0x08, 0xD4, 0x44, 0x67, -0x24, 0x10, 0x1F, 0x70, 0x02, 0x61, 0x1F, 0x68, -0x26, 0x10, 0xFF, 0x6A, 0x03, 0x48, 0x30, 0xF0, -0x20, 0x6C, 0x4C, 0xE8, 0x6E, 0xF6, 0x08, 0x4C, -0xB1, 0x67, 0x56, 0x6E, 0x1F, 0x6F, 0x04, 0xD0, -0x80, 0x18, 0xD3, 0x4E, 0x00, 0x6A, 0x08, 0xD2, -0x10, 0x10, 0x12, 0x94, 0xB1, 0x67, 0x01, 0x6E, -0x80, 0x18, 0x10, 0x2F, 0x12, 0x94, 0x08, 0x96, -0xB1, 0x67, 0x00, 0x6F, 0x80, 0x18, 0xDC, 0x30, -0x0A, 0x22, 0x03, 0x10, 0x01, 0x6B, 0x08, 0xD3, -0x00, 0x6A, 0x09, 0x94, 0x04, 0x2C, 0x07, 0x93, -0x06, 0x5B, 0x7F, 0xF7, 0x01, 0x61, 0x50, 0x67, -0x11, 0x97, 0x10, 0x91, 0x0F, 0x90, 0x09, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, -0x0E, 0xD1, 0x0D, 0xD0, 0xFF, 0x68, 0xAC, 0xE8, -0xB0, 0x67, 0x24, 0x67, 0x80, 0x18, 0x70, 0x2D, -0x30, 0xF0, 0x20, 0x6C, 0x1F, 0x6F, 0x00, 0x6E, -0x6E, 0xF6, 0x08, 0x4C, 0xB0, 0x67, 0x0A, 0xD2, -0x80, 0x18, 0x8E, 0x4E, 0x91, 0x67, 0xB0, 0x67, -0x09, 0xD2, 0x80, 0x18, 0x40, 0x2E, 0x91, 0x67, -0xB0, 0x67, 0x04, 0x6E, 0x80, 0x18, 0x10, 0x2F, -0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, 0xC4, 0x2C, -0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, 0xD7, 0x2C, -0x0D, 0x22, 0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, -0x40, 0x2E, 0x91, 0x67, 0xB0, 0x67, 0x04, 0x6E, -0x80, 0x18, 0x10, 0x2F, 0x91, 0x67, 0xB0, 0x67, -0x80, 0x18, 0xD7, 0x2C, 0x91, 0x67, 0xB0, 0x67, -0x80, 0x18, 0x31, 0x2D, 0x91, 0x67, 0xB0, 0x67, -0x00, 0x6E, 0x01, 0x6F, 0x07, 0xD2, 0x80, 0x18, -0xFF, 0x30, 0x91, 0x67, 0xB0, 0x67, 0x08, 0xD2, -0x80, 0x18, 0x60, 0x2C, 0x08, 0x93, 0x00, 0x6C, -0x06, 0xD4, 0x43, 0xEB, 0x06, 0x61, 0x4B, 0xE3, -0x06, 0xD2, 0x06, 0x94, 0xFF, 0x6A, 0x4C, 0xEC, -0x06, 0xD4, 0x06, 0x92, 0x30, 0xF0, 0x20, 0x6C, -0x6E, 0xF6, 0x08, 0x4C, 0xB0, 0x67, 0x56, 0x6E, -0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, -0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, 0x31, 0x2D, -0x07, 0x93, 0x43, 0xEB, 0x02, 0x60, 0x6B, 0xE2, -0x02, 0x10, 0x07, 0x94, 0x4B, 0xE4, 0xFF, 0x6B, -0x6C, 0xEA, 0x01, 0xE1, 0x20, 0xF1, 0x5C, 0xC0, -0x09, 0x93, 0x0A, 0x94, 0x0F, 0x97, 0x0E, 0x91, -0x8B, 0xE3, 0x06, 0x93, 0x0D, 0x90, 0x49, 0xE3, -0xFF, 0x6B, 0x6C, 0xEA, 0x08, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0xFF, 0x68, 0xAC, 0xE8, 0xB0, 0x67, 0x24, 0x67, -0x80, 0x18, 0x5B, 0x31, 0xA2, 0x67, 0x91, 0x67, -0xD0, 0x67, 0x04, 0xD2, 0x80, 0x18, 0xBC, 0x30, -0x04, 0x96, 0x91, 0x67, 0xA2, 0x67, 0xF0, 0x67, -0x80, 0x18, 0x6C, 0x2B, 0x09, 0xE1, 0x80, 0xF0, -0x53, 0xA2, 0x07, 0x22, 0x60, 0xF0, 0x7E, 0xA9, -0x01, 0x6A, 0x44, 0xE8, 0x6D, 0xEA, 0x60, 0xF0, -0x5E, 0xC9, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x04, 0x96, 0x01, 0x6D, 0x91, 0x67, 0xAB, 0xED, +0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x00, 0x6D, 0x04, 0x67, 0x80, 0x18, -0x96, 0x31, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, -0x96, 0x31, 0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, -0xA3, 0x30, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, -0xA3, 0x30, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xDF, 0x63, 0x41, 0x62, -0x40, 0xD1, 0x3F, 0xD0, 0x30, 0xF0, 0x20, 0x6D, -0x24, 0x67, 0xE2, 0xF5, 0x04, 0x4D, 0x2B, 0x04, -0x48, 0x6E, 0x00, 0x18, 0xB9, 0xD4, 0x30, 0xF0, -0x20, 0x6D, 0x04, 0x04, 0xC2, 0xF5, 0x08, 0x4D, -0x1C, 0x6E, 0x00, 0x18, 0xB9, 0xD4, 0x52, 0x99, -0x40, 0xA2, 0x04, 0x2A, 0x91, 0x67, 0x80, 0x18, -0xC5, 0x2F, 0x3C, 0x2A, 0x91, 0x67, 0x80, 0x18, -0x09, 0x2D, 0x04, 0x00, 0x12, 0x6F, 0x91, 0x67, -0x2B, 0x05, 0x19, 0x06, 0x80, 0x18, 0x22, 0x2D, -0x0B, 0x06, 0xB0, 0x67, 0x91, 0x67, 0x80, 0x18, -0x2D, 0x2B, 0x91, 0x67, 0x80, 0x18, 0xDA, 0x2A, -0x91, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x0D, 0x28, -0x01, 0x6D, 0x91, 0x67, 0x80, 0x18, 0xE7, 0x27, -0x91, 0x67, 0x80, 0x18, 0x06, 0x2E, 0x91, 0x67, -0x80, 0x18, 0x52, 0x2D, 0x91, 0x67, 0x80, 0x18, -0xA9, 0x31, 0x91, 0x67, 0x80, 0x18, 0x64, 0x2A, -0x91, 0x67, 0x00, 0x6D, 0x80, 0x18, 0xE7, 0x27, -0x91, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x0D, 0x28, -0xB0, 0x67, 0x0B, 0x06, 0x91, 0x67, 0x80, 0x18, -0x68, 0x2E, 0x91, 0x67, 0x80, 0x18, 0x82, 0x2E, -0x91, 0x67, 0x2B, 0x05, 0x19, 0x06, 0x12, 0x6F, -0x80, 0x18, 0xC8, 0x27, 0x41, 0x97, 0x40, 0x91, -0x3F, 0x90, 0x21, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0x69, 0x2C, 0xED, 0x01, 0x75, 0x58, 0x67, -0x0C, 0xD4, 0x06, 0xD2, 0x80, 0xF0, 0x0C, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x2C, 0x9A, -0x00, 0x6D, 0xC5, 0x67, 0xF1, 0x67, 0x80, 0x18, -0x8E, 0x4E, 0x30, 0xF0, 0x20, 0x68, 0x0C, 0x94, -0x46, 0xF5, 0x18, 0x48, 0xF1, 0x67, 0x23, 0xF4, -0x40, 0xD8, 0x01, 0x6D, 0x00, 0x6E, 0x80, 0x18, -0x8E, 0x4E, 0x23, 0xF4, 0x44, 0xD8, 0x30, 0xF0, -0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, -0x0C, 0x6C, 0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0x00, 0x6E, 0x08, 0xF1, -0x0C, 0x6C, 0x03, 0x6D, 0x40, 0xEA, 0x01, 0x6D, -0x21, 0xF0, 0x04, 0x6C, 0xAB, 0xED, 0x80, 0x18, -0x24, 0x39, 0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x64, 0x98, 0x83, 0xF4, 0xB0, 0x9A, -0x21, 0xF0, 0x04, 0x6C, 0x03, 0x6E, 0x40, 0xEB, -0x06, 0x93, 0x0C, 0x94, 0x00, 0x6D, 0xC5, 0x67, -0xF1, 0x67, 0x04, 0xD3, 0x80, 0x18, 0xD3, 0x4E, -0x06, 0x92, 0x0C, 0x94, 0xF1, 0x67, 0x01, 0x6D, -0x00, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, -0xC0, 0xF3, 0x44, 0x98, 0x07, 0x96, 0x01, 0x6D, -0x21, 0xF0, 0x04, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x0C, 0x94, 0x00, 0x68, 0x80, 0x18, 0x21, 0x4F, -0x0C, 0x94, 0x80, 0x18, 0x41, 0x4C, 0x1B, 0x2A, -0xE0, 0xF3, 0x09, 0x70, 0x0D, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF1, 0x7C, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0x23, 0xF6, 0x80, 0x9C, 0x40, 0x9B, -0x8D, 0xEA, 0x40, 0xDB, 0x00, 0x6A, 0x91, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, -0x32, 0x6C, 0x01, 0x48, 0x40, 0xEA, 0xFF, 0xF7, -0x1F, 0x6A, 0x4C, 0xE8, 0xE1, 0x17, 0x30, 0xF0, -0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, -0x04, 0x6C, 0x08, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x6C, 0x9A, -0xFE, 0x6A, 0x01, 0x6D, 0x80, 0xA3, 0xC5, 0x67, -0x8C, 0xEA, 0x40, 0xC3, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF4, 0x04, 0x6C, 0x40, 0xEA, 0x6C, 0x10, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, -0x01, 0x6D, 0x00, 0x6E, 0x23, 0xF4, 0x04, 0x6C, -0x40, 0xEA, 0x00, 0x18, 0x64, 0xE0, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF0, 0x6C, 0x9A, 0x01, 0x6C, -0x40, 0xA3, 0x2C, 0xEA, 0x8D, 0xEA, 0x2C, 0xEA, -0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x69, 0x46, 0xF5, -0x18, 0x49, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x01, 0x6E, 0x63, 0xF4, 0x04, 0x6C, 0x08, 0x6D, -0x40, 0xEA, 0x01, 0x6D, 0x21, 0xF0, 0x04, 0x6C, -0xAB, 0xED, 0x80, 0x18, 0x24, 0x39, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF4, 0xB0, 0x9B, 0x06, 0xD2, -0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, 0x04, 0x6C, -0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF3, 0x0C, 0x4B, 0xE0, 0x9B, 0x23, 0xF4, -0x40, 0x99, 0x0C, 0x94, 0x00, 0x6D, 0xC5, 0x67, -0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, 0x23, 0xF4, -0x44, 0x99, 0x0C, 0x94, 0x01, 0x6D, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x0C, 0x4A, -0xE0, 0x9A, 0x00, 0x6E, 0x80, 0x18, 0xD3, 0x4E, -0xC0, 0xF3, 0x44, 0x98, 0x06, 0x96, 0x01, 0x6D, -0xAB, 0xED, 0x21, 0xF0, 0x04, 0x6C, 0x40, 0xEA, -0x0C, 0x94, 0x80, 0x18, 0x38, 0x4F, 0xC0, 0xF3, -0x44, 0x98, 0x03, 0x6D, 0xC5, 0x67, 0x03, 0xF0, -0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, -0x03, 0x6D, 0x08, 0xF1, 0x0C, 0x6C, 0xC5, 0x67, -0x40, 0xEA, 0x0C, 0x94, 0x80, 0x18, 0xF6, 0x4E, -0x01, 0x6A, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, 0xF4, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xCA, 0xF4, 0x18, 0x4C, +0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, 0x3E, 0x45, +0x30, 0xF0, 0x20, 0x6B, 0x06, 0xF0, 0x00, 0x6C, +0x63, 0xF5, 0x18, 0x4B, 0x4C, 0xEC, 0xA7, 0xF5, +0x50, 0xDB, 0x82, 0x32, 0x52, 0x32, 0x02, 0x72, +0x0A, 0x60, 0x03, 0x6C, 0x4E, 0xEC, 0x04, 0x24, +0x01, 0x72, 0x02, 0x6A, 0x07, 0x60, 0x05, 0x10, +0x27, 0xF2, 0x89, 0xC3, 0x05, 0x10, 0x01, 0x6A, +0x01, 0x10, 0x00, 0x6A, 0x27, 0xF2, 0x49, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, 0x70, 0x9B, +0xA7, 0xF5, 0x90, 0x9A, 0x8C, 0xEB, 0x62, 0x33, +0x62, 0x33, 0x27, 0xF2, 0x68, 0xC2, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xF1, 0x63, 0x1D, 0x62, +0x1C, 0xD1, 0x1B, 0xD0, 0x08, 0xA4, 0x02, 0x6A, +0x01, 0x69, 0x0C, 0xEA, 0x46, 0x32, 0x18, 0xD2, +0x80, 0x18, 0x8A, 0x04, 0x80, 0x18, 0xD5, 0x11, +0x80, 0x18, 0xEE, 0x0F, 0x00, 0x6C, 0x80, 0x18, +0x64, 0x05, 0x90, 0x67, 0x2C, 0xEC, 0x00, 0x6D, +0x80, 0x18, 0xB7, 0x0F, 0x80, 0xF0, 0x00, 0x2A, +0x30, 0xF0, 0x20, 0x68, 0x63, 0xF5, 0x18, 0x48, +0x27, 0xF2, 0x6A, 0xA0, 0x27, 0xF2, 0x4C, 0xC0, +0x27, 0xF2, 0x4B, 0xC0, 0x01, 0x4B, 0x27, 0xF2, +0x6A, 0xC0, 0x27, 0xF2, 0x54, 0xC0, 0x27, 0xF2, +0x35, 0xC0, 0x38, 0x6C, 0x80, 0x18, 0xE7, 0x08, +0x00, 0x6C, 0xE7, 0xF5, 0x48, 0xD8, 0xA4, 0x67, +0x80, 0x18, 0x57, 0x0D, 0x30, 0xF0, 0x20, 0x6E, +0x30, 0xF0, 0x20, 0x6F, 0x04, 0x04, 0x0D, 0x05, +0x82, 0xF0, 0x08, 0x4E, 0x82, 0xF0, 0x14, 0x4F, +0x80, 0x18, 0x37, 0x09, 0x30, 0xF0, 0x20, 0x6D, +0x07, 0x04, 0xE2, 0xF0, 0x08, 0x4D, 0x80, 0x18, +0xF6, 0x0C, 0x00, 0x68, 0x80, 0x18, 0x5D, 0x08, +0x01, 0x6C, 0x80, 0x18, 0xA0, 0x05, 0x18, 0x94, +0x80, 0x18, 0x99, 0x11, 0x00, 0x6C, 0x80, 0x18, +0xA0, 0x05, 0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF0, +0x08, 0x4C, 0x07, 0x05, 0x80, 0x18, 0xE8, 0x0B, +0x30, 0xF0, 0x20, 0x6E, 0x30, 0xF0, 0x20, 0x6F, +0x04, 0x04, 0x0D, 0x05, 0x82, 0xF0, 0x08, 0x4E, +0x82, 0xF0, 0x14, 0x4F, 0x80, 0x18, 0x1A, 0x08, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0x27, 0xF2, 0x6C, 0xA2, 0x06, 0x73, 0x08, 0x60, +0xFF, 0x6B, 0x01, 0x48, 0x6C, 0xE8, 0x03, 0x70, +0x00, 0x6B, 0x27, 0xF2, 0x74, 0xC2, 0xD2, 0x61, +0x30, 0xF0, 0x20, 0x68, 0x00, 0x6C, 0x80, 0x18, +0x33, 0x05, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x00, 0x6C, 0xFF, 0x6D, 0x08, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x10, 0x69, +0x91, 0x67, 0xFF, 0x6D, 0xAA, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, +0xFF, 0x6D, 0x0A, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0xFF, 0x6D, 0xAA, 0x6E, +0x40, 0xEA, 0x01, 0x6C, 0x80, 0x18, 0x64, 0x05, +0x1D, 0x97, 0x1C, 0x91, 0x1B, 0x90, 0x00, 0x6A, +0x0F, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, -0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x06, 0xF6, +0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF6, 0x00, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0x80, 0xA4, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x01, 0x6B, -0x8C, 0xEB, 0xC3, 0xF3, 0xAA, 0xA2, 0x64, 0x34, -0x03, 0x6B, 0x6B, 0xEB, 0xAC, 0xEB, 0x8D, 0xEB, -0xC3, 0xF3, 0x6A, 0xC2, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, -0x20, 0x6C, 0x26, 0xF6, 0x18, 0x4C, 0x07, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0xE0, 0xF0, 0x80, 0xA2, 0x01, 0x6B, -0x8C, 0xEB, 0x0C, 0x23, 0xE0, 0xF0, 0x62, 0xA2, -0xFF, 0x73, 0x08, 0x60, 0xE0, 0xF0, 0x81, 0xA2, -0xE3, 0xF3, 0x66, 0xA2, 0x6D, 0xE4, 0x03, 0x4B, -0xC3, 0xF3, 0x7C, 0xCA, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, -0x46, 0xF5, 0x18, 0x4B, 0xA0, 0xA4, 0x60, 0xF1, -0xF3, 0xA3, 0x02, 0x6A, 0x01, 0x6E, 0x4B, 0xEA, -0xCC, 0xED, 0xEC, 0xEA, 0xAD, 0xEA, 0x60, 0xF1, -0x53, 0xC3, 0xA1, 0xA4, 0xCC, 0xEA, 0x60, 0xF1, -0xB4, 0xC3, 0xFF, 0x6D, 0x0D, 0x22, 0x61, 0xA4, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF6, 0x50, 0x9A, +0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF5, 0x18, 0x4B, 0xA0, 0xA4, 0xE0, 0xF0, +0xEE, 0xA3, 0x02, 0x6A, 0x01, 0x6E, 0x4B, 0xEA, +0xCC, 0xED, 0xEC, 0xEA, 0xAD, 0xEA, 0xE0, 0xF0, +0x4E, 0xC3, 0xA1, 0xA4, 0xCC, 0xEA, 0xE0, 0xF0, +0xAF, 0xC3, 0xFF, 0x6D, 0x0D, 0x22, 0x61, 0xA4, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, 0x4C, 0x9A, 0x74, 0x33, 0x40, 0x6C, 0x4D, 0xE3, 0x40, 0xA3, 0xAC, 0xEA, 0x8D, 0xEA, 0xAC, 0xEA, 0x0A, 0x10, -0x61, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF6, -0x50, 0x9A, 0x74, 0x33, 0x4D, 0xE3, 0x80, 0xA3, +0x61, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, +0x4C, 0x9A, 0x74, 0x33, 0x4D, 0xE3, 0x80, 0xA3, 0xBF, 0x6A, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, 0x44, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, 0x50, 0x9A, 0x60, 0xA2, 0x03, 0x6A, 0x6C, 0xEA, 0x10, 0x6B, 0x64, 0xEA, 0xFF, 0x6A, 0x4C, 0xEB, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF6, 0x54, 0x9A, 0x04, 0xD3, +0x20, 0x6A, 0x22, 0xF6, 0x54, 0x9A, 0x04, 0xD3, 0x40, 0x9A, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF0, 0x40, 0x9A, 0x00, 0x9A, 0x05, 0x92, +0x22, 0xF6, 0x58, 0x9A, 0x00, 0x9A, 0x05, 0x92, 0x0A, 0xEA, 0xC0, 0xF0, 0x04, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0xA0, 0xF0, +0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, 0xA0, 0xF0, 0x64, 0x9A, 0x02, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, -0x64, 0xDA, 0x30, 0xF0, 0x20, 0x69, 0x46, 0xF5, -0x18, 0x49, 0x42, 0xF6, 0x40, 0xA9, 0x00, 0xF7, -0x00, 0x72, 0x07, 0x60, 0x42, 0xF6, 0x60, 0xA1, -0x42, 0xF6, 0x81, 0xA1, 0xAF, 0x43, 0x8E, 0xED, -0x13, 0x2D, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, -0x7C, 0x9A, 0xFF, 0x6C, 0x01, 0x4C, 0x40, 0x9B, +0x64, 0xDA, 0x30, 0xF0, 0x20, 0x69, 0x63, 0xF5, +0x18, 0x49, 0xA2, 0xF5, 0x5A, 0xA9, 0x00, 0xF7, +0x00, 0x72, 0x07, 0x60, 0xA2, 0xF5, 0x7A, 0xA1, +0xA2, 0xF5, 0x9B, 0xA1, 0xAF, 0x43, 0x8E, 0xED, +0x13, 0x2D, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, +0x68, 0x9A, 0xFF, 0x6C, 0x01, 0x4C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xA3, 0xF3, 0x78, 0x9A, -0x8D, 0xEB, 0xA3, 0xF3, 0x78, 0xDA, 0x97, 0x10, -0x30, 0xF0, 0x20, 0x6D, 0x03, 0xF1, 0xA8, 0x9D, +0x63, 0xF5, 0x18, 0x4A, 0x23, 0xF3, 0x70, 0x9A, +0x8D, 0xEB, 0x23, 0xF3, 0x70, 0xDA, 0x97, 0x10, +0x30, 0xF0, 0x20, 0x6D, 0x22, 0xF4, 0xAC, 0x9D, 0x7F, 0x6E, 0xB5, 0xE0, 0xE0, 0xA5, 0xCC, 0xEF, 0x45, 0x2F, 0x00, 0xF4, 0x00, 0x72, 0x80, 0xF0, 0x0A, 0x60, 0xAC, 0x43, 0x8E, 0xED, 0x80, 0xF0, @@ -69296,153 +47505,147 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x02, 0x60, 0x00, 0xF6, 0x02, 0x72, 0x7F, 0x60, 0x00, 0xF7, 0x03, 0x72, 0x7C, 0x60, 0x00, 0xF5, 0x00, 0x72, 0x79, 0x60, 0xFD, 0x4B, 0x6E, 0xEC, -0x76, 0x24, 0x30, 0xF0, 0x20, 0x69, 0x46, 0xF5, -0x18, 0x49, 0x42, 0xF6, 0x40, 0xA9, 0x00, 0xF6, +0x76, 0x24, 0x30, 0xF0, 0x20, 0x69, 0x63, 0xF5, +0x18, 0x49, 0xA2, 0xF5, 0x5A, 0xA9, 0x00, 0xF6, 0x01, 0x72, 0x6D, 0x60, 0x00, 0xF7, 0x02, 0x72, 0x6A, 0x60, 0x00, 0xF6, 0x00, 0x72, 0x67, 0x60, -0x42, 0xF6, 0x60, 0xA1, 0x42, 0xF6, 0x81, 0xA1, +0xA2, 0xF5, 0x7A, 0xA1, 0xA2, 0xF5, 0x9B, 0xA1, 0xFE, 0x4B, 0x8E, 0xEB, 0x60, 0x23, 0x00, 0xF7, 0x01, 0x72, 0x5D, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF2, 0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6D, -0x7F, 0x4C, 0x03, 0xF1, 0xA8, 0x9D, 0x49, 0xE0, -0x2B, 0x4C, 0x60, 0xAA, 0x94, 0x34, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0x91, 0xE1, +0x22, 0xF6, 0x5C, 0x9A, 0x30, 0xF0, 0x20, 0x6D, +0x22, 0xF4, 0xAC, 0x9D, 0x49, 0xE0, 0x94, 0x34, +0x60, 0xAA, 0x91, 0xE1, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0xA2, 0xF4, 0x1A, 0x4C, 0xB5, 0xE0, 0x12, 0x10, 0x40, 0xA5, 0x4C, 0xEE, 0x01, 0x76, 0x1E, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF2, 0x4C, 0x9A, 0x7F, 0x4C, 0x2B, 0x4C, +0x22, 0xF6, 0x5C, 0x9A, 0x94, 0x34, 0x91, 0xE1, 0x49, 0xE0, 0x60, 0xAA, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x4C, 0x9A, 0x94, 0x34, 0x91, 0xE1, -0xFF, 0x6E, 0x6C, 0xEE, 0x40, 0xEA, 0x42, 0xF6, -0x41, 0xA1, 0x08, 0x6B, 0x01, 0x4A, 0x42, 0xF6, -0x41, 0xC1, 0x42, 0xF6, 0x41, 0xA1, 0x6E, 0xEA, -0x13, 0x2A, 0x42, 0xF6, 0x41, 0xC1, 0x10, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0x9C, 0x9A, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF3, 0x60, 0x9B, -0x40, 0x9C, 0x6D, 0xEA, 0x40, 0xDC, 0xA3, 0xF3, -0x58, 0x99, 0x6D, 0xEA, 0xA3, 0xF3, 0x58, 0xD9, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF6, 0x58, 0x9A, +0x80, 0xF2, 0x4C, 0x9A, 0xA2, 0xF4, 0x1A, 0x4C, +0xFF, 0x6E, 0x6C, 0xEE, 0x40, 0xEA, 0xA2, 0xF5, +0x5B, 0xA1, 0x08, 0x6B, 0x01, 0x4A, 0xA2, 0xF5, +0x5B, 0xC1, 0xA2, 0xF5, 0x5B, 0xA1, 0x6E, 0xEA, +0x13, 0x2A, 0xA2, 0xF5, 0x5B, 0xC1, 0x10, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, 0x88, 0x9A, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, 0x7C, 0x9B, +0x40, 0x9C, 0x6D, 0xEA, 0x40, 0xDC, 0x23, 0xF3, +0x50, 0x99, 0x6D, 0xEA, 0x23, 0xF3, 0x50, 0xD9, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF6, 0x40, 0x9A, 0x04, 0x93, 0x40, 0x9A, 0x0E, 0xEA, 0x61, 0xE0, -0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, -0x5C, 0x9A, 0x00, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF0, 0x40, 0x9A, 0x00, 0xDA, 0x05, 0x92, +0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF6, +0x44, 0x9A, 0x00, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF6, 0x58, 0x9A, 0x00, 0xDA, 0x05, 0x92, 0x4A, 0xE8, 0x5F, 0xF7, 0x06, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFE, 0x63, 0x03, 0xD1, 0x02, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0xA3, 0xF3, -0x78, 0x9A, 0x02, 0x6D, 0xAC, 0xEB, 0x60, 0xF1, -0x02, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, -0x64, 0x9B, 0x80, 0xA3, 0x0F, 0x6B, 0x8C, 0xEB, +0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, 0x23, 0xF3, +0x70, 0x9A, 0x02, 0x6D, 0xAC, 0xEB, 0x40, 0xF1, +0x1A, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF6, +0x68, 0x9B, 0x80, 0xA3, 0x0F, 0x6B, 0x8C, 0xEB, 0x05, 0x23, 0xA0, 0xF0, 0x84, 0x9A, 0xAD, 0xEC, 0xA0, 0xF0, 0x84, 0xDA, 0x30, 0xF0, 0x20, 0x6A, -0x06, 0xF7, 0x4D, 0xA2, 0xFF, 0x4A, 0x00, 0xD2, -0x4C, 0x11, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6C, 0xA0, 0xF1, -0xB4, 0x9A, 0x43, 0xF6, 0x8C, 0x9C, 0xAC, 0xEC, -0x30, 0xF0, 0x20, 0x6D, 0x43, 0xF6, 0xBC, 0x9D, -0xAE, 0xEC, 0x05, 0x24, 0xA0, 0xF1, 0x16, 0xA2, +0xA3, 0xF6, 0x48, 0xA2, 0xFF, 0x4A, 0x00, 0xD2, +0x44, 0x11, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, +0x18, 0x4A, 0x20, 0xF1, 0x90, 0xAA, 0x00, 0xF7, +0x00, 0x74, 0x05, 0x60, 0x20, 0xF1, 0x11, 0xA2, 0x00, 0x94, 0x8A, 0xE8, 0x13, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF1, 0x7C, 0x9A, 0xFF, 0x6C, +0x20, 0x6A, 0x22, 0xF3, 0x68, 0x9A, 0xFF, 0x6C, 0x01, 0x4C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xA3, 0xF3, 0x78, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, -0x78, 0xDA, 0x25, 0x11, 0x30, 0xF0, 0x20, 0x6C, -0xA6, 0xF3, 0xC2, 0xA4, 0xE3, 0x67, 0xFF, 0x6D, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0x23, 0xF3, 0x70, 0x9A, 0x8D, 0xEB, 0x23, 0xF3, +0x70, 0xDA, 0x25, 0x11, 0x30, 0xF0, 0x20, 0x6C, +0x03, 0xF5, 0xCE, 0xA4, 0xE3, 0x67, 0xFF, 0x6D, 0xE7, 0xEE, 0xC7, 0x67, 0x01, 0x6F, 0xEC, 0xEE, -0xA0, 0xF0, 0x0A, 0x26, 0x0C, 0x35, 0xB5, 0xE2, -0x60, 0xF1, 0x19, 0x4D, 0x00, 0x6A, 0x30, 0xF0, -0x20, 0x6E, 0xA6, 0xF3, 0xE2, 0xA6, 0xFF, 0x6C, +0xA0, 0xF0, 0x0A, 0x26, 0x0C, 0x35, 0x7F, 0x4D, +0x75, 0x4D, 0xB5, 0xE2, 0x00, 0x6A, 0x30, 0xF0, +0x20, 0x6E, 0x03, 0xF5, 0xEE, 0xA6, 0xFF, 0x6C, 0x1F, 0xF7, 0x00, 0x69, 0x8C, 0xEF, 0x74, 0x4F, 0xE8, 0x37, 0xFD, 0xE2, 0x2C, 0xEF, 0x02, 0xF0, -0x00, 0x77, 0x08, 0x60, 0xA6, 0xF3, 0xE2, 0xA6, +0x00, 0x77, 0x08, 0x60, 0x03, 0xF5, 0xEE, 0xA6, 0x8C, 0xEF, 0x74, 0x4F, 0xE8, 0x37, 0xFD, 0xE2, 0x2C, 0xEF, 0x0F, 0x2F, 0x30, 0xF0, 0x20, 0x6C, -0xA6, 0xF3, 0x22, 0xA4, 0xFF, 0x6C, 0x30, 0xF0, +0x03, 0xF5, 0x2E, 0xA4, 0xFF, 0x6C, 0x30, 0xF0, 0x20, 0x6E, 0x8C, 0xE9, 0x74, 0x49, 0x28, 0x31, -0xE2, 0x67, 0x25, 0xE2, 0x23, 0xF0, 0xD8, 0x9E, -0x0B, 0x10, 0xA6, 0xF3, 0x22, 0xA6, 0x30, 0xF0, -0x20, 0x6E, 0x23, 0xF0, 0xDC, 0x9E, 0x8C, 0xE9, +0xE2, 0x67, 0x25, 0xE2, 0xE2, 0xF2, 0xDC, 0x9E, +0x0B, 0x10, 0x03, 0xF5, 0x2E, 0xA6, 0x30, 0xF0, +0x20, 0x6E, 0x02, 0xF3, 0xC0, 0x9E, 0x8C, 0xE9, 0x74, 0x49, 0x28, 0x31, 0xE2, 0x67, 0x25, 0xE2, 0xD9, 0xE1, 0xC0, 0xA6, 0x0C, 0x31, 0xCC, 0xEC, -0x30, 0xF0, 0x20, 0x6E, 0x46, 0xF5, 0x18, 0x4E, -0xD9, 0xE1, 0xFD, 0xE6, 0x60, 0xF1, 0x95, 0xC7, -0x30, 0xF0, 0x20, 0x6E, 0xA6, 0xF3, 0xE2, 0xA6, +0x30, 0xF0, 0x20, 0x6E, 0x63, 0xF5, 0x18, 0x4E, +0xD9, 0xE1, 0xFD, 0xE6, 0xE0, 0xF0, 0x90, 0xC7, +0x30, 0xF0, 0x20, 0x6E, 0x03, 0xF5, 0xEE, 0xA6, 0xFF, 0x6C, 0x1F, 0xF7, 0x00, 0x69, 0x8C, 0xEF, 0x7C, 0x4F, 0xE8, 0x37, 0xFD, 0xE2, 0x2C, 0xEF, -0x02, 0xF0, 0x00, 0x77, 0x08, 0x60, 0xA6, 0xF3, -0xE2, 0xA6, 0x8C, 0xEF, 0x7C, 0x4F, 0xE8, 0x37, +0x02, 0xF0, 0x00, 0x77, 0x08, 0x60, 0x03, 0xF5, +0xEE, 0xA6, 0x8C, 0xEF, 0x7C, 0x4F, 0xE8, 0x37, 0xFD, 0xE2, 0x2C, 0xEF, 0x0E, 0x2F, 0x30, 0xF0, -0x20, 0x6C, 0xA6, 0xF3, 0xC2, 0xA4, 0xFF, 0x6C, +0x20, 0x6C, 0x03, 0xF5, 0xCE, 0xA4, 0xFF, 0x6C, 0x30, 0xF0, 0x20, 0x6F, 0x8C, 0xEE, 0x7C, 0x4E, -0xC8, 0x36, 0xD9, 0xE2, 0x23, 0xF0, 0xF8, 0x9F, -0x0A, 0x10, 0xA6, 0xF3, 0xC2, 0xA6, 0x30, 0xF0, -0x20, 0x6F, 0x23, 0xF0, 0xFC, 0x9F, 0x8C, 0xEE, +0xC8, 0x36, 0xD9, 0xE2, 0xE2, 0xF2, 0xFC, 0x9F, +0x0A, 0x10, 0x03, 0xF5, 0xCE, 0xA6, 0x30, 0xF0, +0x20, 0x6F, 0x02, 0xF3, 0xE0, 0x9F, 0x8C, 0xEE, 0x7C, 0x4E, 0xC8, 0x36, 0xD9, 0xE2, 0xF9, 0xE6, 0xC0, 0xA6, 0x01, 0x4A, 0x04, 0x72, 0xCC, 0xEC, 0x80, 0xC5, 0x01, 0x4D, 0x8C, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xA6, 0xF3, 0xA2, 0xA2, 0x01, 0x6C, -0xC4, 0x67, 0xC4, 0xED, 0xCF, 0xED, 0xA6, 0xF3, -0xC2, 0xA2, 0xAC, 0xEB, 0xFF, 0x6D, 0x84, 0xEE, -0x30, 0xF0, 0x20, 0x6E, 0x43, 0xF1, 0xC4, 0x9E, -0xAC, 0xEC, 0x08, 0x6F, 0x80, 0xC6, 0xA6, 0xF3, -0x82, 0xA2, 0xAC, 0xEC, 0x01, 0x4C, 0xAC, 0xEC, -0xA6, 0xF3, 0x82, 0xC2, 0xA6, 0xF3, 0xA2, 0xA2, -0x03, 0x6C, 0xAC, 0xEC, 0xA6, 0xF3, 0x82, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xA0, 0xF1, 0x96, 0xA2, 0x01, 0x4C, 0xA0, 0xF1, -0x96, 0xC2, 0xA0, 0xF1, 0x96, 0xA2, 0xEE, 0xEC, -0x70, 0x2C, 0xA0, 0xF1, 0x96, 0xC2, 0x6D, 0x10, -0x30, 0xF0, 0x20, 0x6E, 0x03, 0xF1, 0x1C, 0x9E, +0x20, 0x6A, 0x03, 0xF5, 0xAE, 0xA2, 0x01, 0x6C, +0xC4, 0x67, 0xC4, 0xED, 0xCF, 0xED, 0x03, 0xF5, +0xCE, 0xA2, 0xAC, 0xEB, 0xFF, 0x6D, 0x84, 0xEE, +0x30, 0xF0, 0x20, 0x6E, 0x42, 0xF6, 0xC8, 0x9E, +0xAC, 0xEC, 0x08, 0x6F, 0x80, 0xC6, 0x03, 0xF5, +0x8E, 0xA2, 0xAC, 0xEC, 0x01, 0x4C, 0xAC, 0xEC, +0x03, 0xF5, 0x8E, 0xC2, 0x03, 0xF5, 0xAE, 0xA2, +0x03, 0x6C, 0xAC, 0xEC, 0x03, 0xF5, 0x8E, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0x20, 0xF1, 0x91, 0xA2, 0x01, 0x4C, 0x20, 0xF1, +0x91, 0xC2, 0x20, 0xF1, 0x91, 0xA2, 0xEE, 0xEC, +0x70, 0x2C, 0x20, 0xF1, 0x91, 0xC2, 0x6D, 0x10, +0x30, 0xF0, 0x20, 0x6E, 0x22, 0xF3, 0x08, 0x9E, 0x02, 0x6F, 0xC0, 0x98, 0xED, 0xEE, 0xC0, 0xD8, -0xA3, 0xF3, 0xD8, 0x9A, 0xC3, 0xF3, 0x64, 0xC2, -0xA6, 0xF3, 0x62, 0xA4, 0xED, 0xEE, 0xA3, 0xF3, -0xD8, 0xDA, 0xC3, 0xF3, 0x65, 0xC2, 0xA6, 0xF3, -0x42, 0xA4, 0x1F, 0xF7, 0x00, 0x6B, 0xAC, 0xEA, +0x23, 0xF3, 0xD0, 0x9A, 0x23, 0xF3, 0x7C, 0xC2, +0x03, 0xF5, 0x6E, 0xA4, 0xED, 0xEE, 0x23, 0xF3, +0xD0, 0xDA, 0x23, 0xF3, 0x7D, 0xC2, 0x03, 0xF5, +0x4E, 0xA4, 0x1F, 0xF7, 0x00, 0x6B, 0xAC, 0xEA, 0x74, 0x4A, 0x48, 0x32, 0x6C, 0xEA, 0x02, 0xF0, -0x00, 0x72, 0x07, 0x60, 0xA6, 0xF3, 0x42, 0xA4, +0x00, 0x72, 0x07, 0x60, 0x03, 0xF5, 0x4E, 0xA4, 0xAC, 0xEA, 0x74, 0x4A, 0x48, 0x32, 0x6C, 0xEA, -0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF3, -0x62, 0xA2, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF6, -0x80, 0x9C, 0xFF, 0x6A, 0x4C, 0xEB, 0x8D, 0xE3, -0x68, 0x33, 0xA0, 0xA3, 0x0A, 0x10, 0xA6, 0xF3, -0x42, 0xA4, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF6, -0x64, 0x9B, 0xAC, 0xEA, 0x69, 0xE2, 0x48, 0x32, +0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, +0x6E, 0xA2, 0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF6, +0x8C, 0x9C, 0xFF, 0x6A, 0x4C, 0xEB, 0x8D, 0xE3, +0x68, 0x33, 0xA0, 0xA3, 0x0A, 0x10, 0x03, 0xF5, +0x4E, 0xA4, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF6, +0x70, 0x9B, 0xAC, 0xEA, 0x69, 0xE2, 0x48, 0x32, 0x40, 0xA2, 0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0x0A, 0xF1, 0xBE, 0xC2, -0xA6, 0xF3, 0x42, 0xA3, 0xA6, 0xF3, 0x82, 0xA3, +0x30, 0xF0, 0x20, 0x6A, 0xA7, 0xF0, 0xB6, 0xC2, +0x03, 0xF5, 0x4E, 0xA3, 0x03, 0xF5, 0x8E, 0xA3, 0xFF, 0x6A, 0x1F, 0xF7, 0x00, 0x6D, 0x4C, 0xEC, 0x88, 0x34, 0xC0, 0xF1, 0x11, 0x4C, 0xAC, 0xEC, -0x0B, 0x2C, 0xA6, 0xF3, 0x62, 0xA3, 0xFF, 0x6A, +0x0B, 0x2C, 0x03, 0xF5, 0x6E, 0xA3, 0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x6C, 0x4C, 0xEB, 0x74, 0x4B, -0x68, 0x33, 0x63, 0xF6, 0x88, 0x9C, 0x09, 0x10, -0xA6, 0xF3, 0x62, 0xA3, 0x30, 0xF0, 0x20, 0x6C, -0x63, 0xF6, 0x8C, 0x9C, 0x4C, 0xEB, 0x74, 0x4B, +0x68, 0x33, 0x42, 0xF6, 0x94, 0x9C, 0x09, 0x10, +0x03, 0xF5, 0x6E, 0xA3, 0x30, 0xF0, 0x20, 0x6C, +0x42, 0xF6, 0x98, 0x9C, 0x4C, 0xEB, 0x74, 0x4B, 0x68, 0x33, 0x8D, 0xE3, 0x60, 0xA3, 0x6C, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x0A, 0xF1, 0x5F, 0xC3, -0x02, 0x10, 0xBF, 0xF6, 0x12, 0x2B, 0x03, 0x91, +0x30, 0xF0, 0x20, 0x6B, 0xA7, 0xF0, 0x57, 0xC3, +0x02, 0x10, 0xBF, 0xF6, 0x1A, 0x2B, 0x03, 0x91, 0x02, 0x90, 0x02, 0x63, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF2, 0x4C, 0x9A, 0xFF, 0x68, +0x60, 0xA2, 0x6C, 0xE8, 0x25, 0x20, 0x00, 0x6B, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x01, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF6, 0x5C, 0x9A, 0x20, 0x6B, +0x01, 0x70, 0x60, 0xC2, 0x06, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF6, 0x5C, 0x9A, 0x40, 0xEA, +0x0F, 0x10, 0x20, 0x70, 0x0D, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, 0x30, 0xF0, +0x20, 0x6C, 0xA0, 0xF0, 0x64, 0x9A, 0xA2, 0xF3, +0x90, 0x9C, 0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF6, 0x50, 0x9A, -0xFF, 0x68, 0x60, 0xA2, 0x6C, 0xE8, 0x24, 0x20, -0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF6, 0x54, 0x9A, -0x20, 0x6B, 0x01, 0x70, 0x60, 0xC2, 0x06, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF6, 0x5C, 0x9A, -0x40, 0xEA, 0x0E, 0x10, 0x80, 0x69, 0x0E, 0xE9, -0x0B, 0x29, 0x00, 0x18, 0xB5, 0xC9, 0x80, 0x6C, -0x00, 0x6D, 0x80, 0x18, 0xD7, 0x15, 0x30, 0xF0, -0x20, 0x6A, 0xA9, 0xF3, 0x26, 0xC2, 0x0F, 0x10, -0x20, 0x70, 0x0D, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6C, -0xA0, 0xF0, 0x64, 0x9A, 0x43, 0xF3, 0x90, 0x9C, -0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, 0x7C, 0x9B, -0x10, 0xF0, 0x31, 0x6A, 0xD9, 0xF7, 0x11, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, 0x64, 0x9B, +0x10, 0xF0, 0x30, 0x6A, 0x89, 0xF6, 0x19, 0x4A, 0x40, 0xDB, 0x00, 0x1C, 0xAC, 0x39, 0x80, 0x18, -0x37, 0x58, 0x05, 0x6C, 0x01, 0x6D, 0x80, 0x18, -0xD7, 0x15, 0x20, 0xBA, 0x00, 0x65, 0x00, 0x65, +0x13, 0x4D, 0x05, 0x6C, 0x01, 0x6D, 0x80, 0x18, +0x68, 0x00, 0x20, 0xBA, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, @@ -69457,652 +47660,411 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x01, 0x6A, 0x7D, 0x67, 0x4B, 0xEA, 0x58, 0xC3, 0x01, 0x6A, 0x5A, 0xC3, 0x08, 0x6A, 0x5B, 0xC3, 0x60, 0xA4, 0x7F, 0x6A, 0x6C, 0xEA, 0x01, 0x72, -0x7E, 0x30, 0x00, 0xF1, 0x10, 0x61, 0x48, 0xA4, +0x7E, 0x30, 0xA0, 0xF0, 0x05, 0x61, 0x48, 0xA4, 0xBD, 0x67, 0x5C, 0xC5, 0x41, 0xA4, 0x5D, 0xC5, 0x42, 0xA4, 0x5E, 0xC5, 0x46, 0xA4, 0x20, 0xF0, 0x40, 0xC5, 0x43, 0xA4, 0x5F, 0xC5, 0x47, 0xA4, -0x20, 0xF0, 0x41, 0xC5, 0x5C, 0xA5, 0xE0, 0xF0, -0x18, 0x2A, 0x7D, 0x67, 0x5F, 0xA3, 0x7E, 0xA3, -0x40, 0x32, 0x6D, 0xEA, 0x03, 0x72, 0x0A, 0x60, -0x04, 0x52, 0x03, 0x60, 0x02, 0x72, 0x52, 0x60, -0xEC, 0x10, 0x08, 0x72, 0x21, 0x60, 0xB7, 0x72, -0x37, 0x60, 0xE7, 0x10, 0x06, 0x20, 0x30, 0xF0, -0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, 0x06, 0x04, -0x40, 0xEA, 0x9D, 0x67, 0x20, 0xF0, 0xE1, 0xA4, -0x20, 0xF0, 0x40, 0xA4, 0xFF, 0xF7, 0x1F, 0x6B, -0xE0, 0x37, 0x5D, 0xE7, 0x30, 0xF0, 0x20, 0x6A, -0x60, 0xF4, 0x50, 0x9A, 0x30, 0xF0, 0x20, 0x6D, -0x05, 0x6C, 0xA9, 0xF3, 0x0C, 0x4D, 0x00, 0xF2, -0x00, 0x6E, 0x6C, 0xEF, 0x40, 0xEA, 0xE4, 0x10, -0xBD, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0x10, 0x6A, -0x5B, 0xC5, 0x30, 0xF0, 0x20, 0x69, 0x80, 0xF2, -0x4C, 0x9B, 0xAE, 0xF4, 0x0C, 0x49, 0x09, 0x04, -0xB1, 0x67, 0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6C, 0x80, 0xF2, 0x4C, 0x9C, 0xA4, 0x41, -0x0A, 0x04, 0x04, 0x6E, 0x40, 0xEA, 0xB1, 0x10, -0x08, 0x20, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, -0x40, 0x9A, 0x06, 0x04, 0x40, 0xEA, 0x00, 0x18, -0x2C, 0xD6, 0xBD, 0x67, 0x20, 0xF0, 0x81, 0xA5, -0x20, 0xF0, 0x40, 0xA5, 0x80, 0x34, 0x51, 0xE4, -0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEC, 0x80, 0x18, -0x0F, 0x16, 0xB6, 0x10, 0x06, 0x20, 0x30, 0xF0, -0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, 0x06, 0x04, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, -0x18, 0x48, 0x67, 0xF7, 0x50, 0xA0, 0x01, 0x6B, -0xFF, 0x69, 0x6C, 0xEA, 0x4C, 0x22, 0x30, 0xF0, +0x20, 0xF0, 0x41, 0xC5, 0x5C, 0xA5, 0x80, 0xF0, +0x0D, 0x2A, 0x7D, 0x67, 0x5F, 0xA3, 0x7E, 0xA3, +0x40, 0x32, 0x6D, 0xEA, 0x03, 0x72, 0x05, 0x60, +0x08, 0x72, 0x21, 0x60, 0x02, 0x72, 0x37, 0x60, +0x81, 0x10, 0x06, 0x20, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF4, 0x40, 0x9A, 0x06, 0x04, 0x40, 0xEA, +0x9D, 0x67, 0x20, 0xF0, 0xE1, 0xA4, 0x20, 0xF0, +0x40, 0xA4, 0xFF, 0xF7, 0x1F, 0x6B, 0xE0, 0x37, +0x5D, 0xE7, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, +0x50, 0x9A, 0x30, 0xF0, 0x20, 0x6D, 0x05, 0x6C, +0x46, 0xF3, 0x04, 0x4D, 0x00, 0xF2, 0x00, 0x6E, +0x6C, 0xEF, 0x40, 0xEA, 0x7E, 0x10, 0xBD, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0x10, 0x6A, 0x5B, 0xC5, +0x30, 0xF0, 0x20, 0x69, 0x80, 0xF2, 0x4C, 0x9B, +0xC9, 0xF4, 0x18, 0x49, 0x09, 0x04, 0xB1, 0x67, +0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x80, 0xF2, 0x4C, 0x9C, 0xA4, 0x41, 0x0A, 0x04, +0x04, 0x6E, 0x40, 0xEA, 0x4B, 0x10, 0x06, 0x20, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, +0x06, 0x04, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x68, +0x63, 0xF5, 0x18, 0x48, 0x65, 0xF7, 0x7C, 0xA0, +0x01, 0x6A, 0x6C, 0xEA, 0x30, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF4, 0x50, 0x9A, 0x40, 0xEA, -0xE0, 0xF0, 0xC7, 0xA0, 0x0C, 0x6A, 0x43, 0xF4, -0x44, 0xC0, 0x0C, 0x6C, 0x00, 0x6D, 0x00, 0x18, -0x93, 0xCD, 0xC3, 0xF3, 0x48, 0xA0, 0x21, 0x6B, -0xC3, 0xF3, 0x8A, 0xA0, 0x6B, 0xEB, 0x4C, 0xEB, -0x04, 0x6A, 0x8C, 0xEA, 0x2C, 0xEA, 0xC3, 0xF3, -0x68, 0xC0, 0x04, 0x2A, 0xFE, 0x4A, 0x6C, 0xEA, -0xC3, 0xF3, 0x48, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x47, 0xF7, 0x9C, 0xA2, -0x04, 0x6B, 0x8C, 0xEB, 0x21, 0x23, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF6, 0x78, 0x9B, 0x67, 0xF7, -0xC8, 0x9A, 0xE0, 0xF3, 0x08, 0x6A, 0x60, 0x9B, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF6, 0x7C, 0x9B, -0x10, 0xF0, 0x31, 0x6C, 0x69, 0xF7, 0x19, 0x4C, -0x60, 0x9B, 0x00, 0x6D, 0x01, 0x6F, 0x7B, 0xE6, +0x65, 0xF7, 0x68, 0xA0, 0x04, 0x6A, 0x6C, 0xEA, +0xFF, 0x6B, 0x6C, 0xEA, 0x21, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF6, 0x40, 0x9A, 0x65, 0xF7, +0xD4, 0x98, 0x10, 0xF0, 0x31, 0x6C, 0x40, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x44, 0x9A, +0xC5, 0xF1, 0x19, 0x4C, 0x00, 0x6D, 0x40, 0x9A, +0x01, 0x6F, 0x5B, 0xE6, 0xE0, 0xF3, 0x08, 0x6A, 0x5B, 0xEE, 0x01, 0x2A, 0xE5, 0xE8, 0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, -0x4C, 0x9A, 0x12, 0xEE, 0x40, 0xEA, 0x5C, 0x10, -0x80, 0x18, 0xDE, 0x53, 0x59, 0x10, 0x30, 0xF0, +0x4C, 0x9A, 0x12, 0xEE, 0x40, 0xEA, 0x29, 0x10, +0x80, 0x18, 0x76, 0x4A, 0x26, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF4, 0x54, 0x9A, 0x40, 0xEA, -0x67, 0xF7, 0xAE, 0xA8, 0x00, 0x6C, 0x80, 0x18, -0x8D, 0x53, 0xE0, 0xF0, 0x87, 0xA0, 0x00, 0x18, -0xAA, 0xDD, 0xE0, 0xF0, 0x87, 0xA0, 0x00, 0x18, -0x99, 0xDD, 0xE0, 0xF0, 0x87, 0xA0, 0x00, 0x18, -0xB1, 0xDD, 0xC3, 0xF3, 0x68, 0xA0, 0x20, 0x6A, -0xE0, 0xF0, 0xC7, 0xA0, 0x6D, 0xEA, 0xC3, 0xF3, -0x48, 0xC0, 0x08, 0x6A, 0x43, 0xF4, 0x44, 0xC0, -0x08, 0x6C, 0x00, 0x6D, 0x00, 0x18, 0x93, 0xCD, -0xC3, 0xF3, 0x6A, 0xA0, 0x04, 0x6A, 0x6C, 0xEA, -0x2C, 0xEA, 0x2E, 0x2A, 0x00, 0xF1, 0x78, 0xA0, -0x02, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x05, 0x22, -0xC3, 0xF3, 0x48, 0xA0, 0x01, 0x6B, 0x6D, 0xEA, -0x05, 0x10, 0xC3, 0xF3, 0x68, 0xA0, 0x02, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0xC3, 0xF3, 0x48, 0xC0, -0x1B, 0x10, 0x1A, 0x20, 0x30, 0xF0, 0x20, 0x6A, -0x20, 0xF4, 0x40, 0x9A, 0x13, 0x10, 0x14, 0x2A, -0x69, 0xA4, 0xBD, 0x67, 0x7C, 0xC5, 0x68, 0xA4, -0x5E, 0xC5, 0x5F, 0xC5, 0x7D, 0xC5, 0x46, 0xA4, -0x20, 0xF0, 0x40, 0xC5, 0x67, 0xA4, 0x08, 0x20, -0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, -0x20, 0xF0, 0x61, 0xC5, 0x06, 0x04, 0x40, 0xEA, -0x43, 0x97, 0x42, 0x91, 0x41, 0x90, 0x22, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x65, 0xF7, 0xBA, 0xA8, 0x00, 0x6C, 0x80, 0x18, +0x25, 0x4A, 0x1B, 0x10, 0x1A, 0x20, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, 0x13, 0x10, +0x14, 0x2A, 0x69, 0xA4, 0xBD, 0x67, 0x7C, 0xC5, +0x68, 0xA4, 0x5E, 0xC5, 0x5F, 0xC5, 0x7D, 0xC5, +0x46, 0xA4, 0x20, 0xF0, 0x40, 0xC5, 0x67, 0xA4, +0x08, 0x20, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, +0x40, 0x9A, 0x20, 0xF0, 0x61, 0xC5, 0x06, 0x04, +0x40, 0xEA, 0x43, 0x97, 0x42, 0x91, 0x41, 0x90, +0x22, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, 0x68, 0x44, 0xFA, 0x4B, 0x4C, 0xEB, 0x04, 0x5B, 0x03, 0x60, 0x80, 0x18, -0x8D, 0x48, 0x1D, 0x10, 0x09, 0x74, 0x31, 0x60, -0x0A, 0x5C, 0x07, 0x60, 0x03, 0x74, 0x22, 0x60, -0x08, 0x74, 0x26, 0x60, 0x02, 0x74, 0x15, 0x60, -0x38, 0x10, 0x0C, 0x74, 0x16, 0x60, 0x0D, 0x5C, -0x03, 0x60, 0x0A, 0x74, 0x27, 0x60, 0x31, 0x10, -0x0D, 0x74, 0x03, 0x60, 0xB7, 0x74, 0x27, 0x60, -0x2C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, -0x48, 0x9A, 0x85, 0x67, 0x40, 0xEA, 0x62, 0x67, -0x39, 0x10, 0x85, 0x67, 0x80, 0x18, 0xA3, 0x53, -0xFA, 0x17, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF4, -0x44, 0x9A, 0xF3, 0x17, 0x30, 0xF0, 0x20, 0x6A, -0x60, 0xF4, 0x54, 0x9A, 0x40, 0xEA, 0xEF, 0x17, +0xC7, 0x40, 0x4A, 0x10, 0xFE, 0x4C, 0x4C, 0xEC, +0x0C, 0x5C, 0x31, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x88, 0x34, 0xE2, 0xF1, 0x18, 0x4A, 0x89, 0xE2, +0x40, 0x9A, 0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xF4, 0x48, 0x9A, 0x08, 0x10, 0x85, 0x67, +0x80, 0x18, 0x3B, 0x4A, 0x35, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF4, 0x44, 0x9A, 0x85, 0x67, +0x40, 0xEA, 0x2E, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xF4, 0x54, 0x9A, 0x40, 0xEA, 0x28, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, 0x58, 0x9A, -0xE8, 0x17, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, -0x5C, 0x9A, 0xE3, 0x17, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF4, 0x40, 0x9A, 0xDE, 0x17, 0x80, 0x18, -0x63, 0x1C, 0x00, 0x6B, 0x17, 0x2A, 0x13, 0x6B, -0x15, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, -0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF1, -0x80, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xA3, 0xF3, 0x78, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, -0x78, 0xDA, 0xFF, 0x6B, 0x05, 0x97, 0x43, 0x67, -0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, -0x46, 0xF5, 0x18, 0x4B, 0x40, 0xA4, 0xA0, 0xF0, -0xDD, 0xA3, 0x7F, 0x68, 0x5E, 0x32, 0x5C, 0x32, -0x0C, 0xEE, 0x4D, 0xEE, 0xA0, 0xF0, 0xDD, 0xC3, -0xA0, 0xA4, 0x01, 0x6A, 0x41, 0x6F, 0xBA, 0x35, -0x4C, 0xED, 0xEB, 0xEF, 0xB8, 0x35, 0xCC, 0xEF, -0xAD, 0xEF, 0xA0, 0xF0, 0xFD, 0xC3, 0xA0, 0xA4, -0x21, 0x6E, 0xCB, 0xEE, 0xB6, 0x35, 0x4C, 0xED, -0xB4, 0x35, 0xEC, 0xEE, 0xAD, 0xEE, 0xA0, 0xF0, -0xDD, 0xC3, 0xA0, 0xA4, 0x11, 0x6F, 0xEB, 0xEF, -0xB2, 0x35, 0x4C, 0xED, 0xB0, 0x35, 0xCC, 0xEF, -0xAD, 0xEF, 0xA0, 0xF0, 0xFD, 0xC3, 0xA0, 0xA4, -0x10, 0x6E, 0x0F, 0x69, 0xCB, 0xEE, 0x2C, 0xED, -0xEC, 0xEE, 0xAD, 0xEE, 0xA0, 0xF0, 0xDD, 0xC3, -0xE1, 0xA4, 0xA7, 0x67, 0xA0, 0xF0, 0xFE, 0xA3, -0x0C, 0xED, 0xFD, 0x65, 0x1F, 0x65, 0x80, 0x6D, -0xF8, 0x67, 0xAB, 0xED, 0xEC, 0xED, 0xFF, 0x67, -0xED, 0xED, 0xA0, 0xF0, 0xBE, 0xC3, 0xE2, 0xA4, -0x0C, 0xED, 0xA0, 0xF0, 0xFF, 0xC3, 0xE1, 0xA4, -0xFE, 0x37, 0xFC, 0x37, 0xED, 0xED, 0xA0, 0xF0, -0xBE, 0xC3, 0xC0, 0xF0, 0xE0, 0xA3, 0x83, 0xA4, -0x02, 0x6D, 0xAB, 0xED, 0x4C, 0xEC, 0xEC, 0xED, -0x8D, 0xED, 0xC0, 0xF0, 0xA0, 0xC3, 0xA0, 0xF0, -0xBD, 0xA3, 0x86, 0x67, 0x2C, 0xEC, 0xBA, 0x35, -0x4E, 0xED, 0x4C, 0xED, 0x80, 0x18, 0xBB, 0x37, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x46, 0xF5, 0x18, 0x48, 0x44, 0xF3, 0x42, 0xA8, -0x01, 0x69, 0xA4, 0x67, 0x2D, 0xEA, 0x44, 0xF3, -0x42, 0xC8, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, -0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x06, 0xF6, -0x1C, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0xC0, 0xF0, -0x48, 0xA0, 0xC0, 0xF0, 0x84, 0xA0, 0x00, 0x6B, -0x43, 0xF4, 0x44, 0xC0, 0x7F, 0x6A, 0x8C, 0xEA, -0x43, 0xF4, 0x66, 0xC0, 0x03, 0x2A, 0x43, 0xF4, -0x27, 0xC0, 0x02, 0x10, 0x43, 0xF4, 0x67, 0xC0, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xC0, 0xF0, 0xC4, 0xA2, 0x43, 0xF4, 0x85, 0xA2, -0x7F, 0x6B, 0xCC, 0xEB, 0x6E, 0xEC, 0xFF, 0x6D, -0x07, 0x24, 0xC0, 0xF0, 0x87, 0xA2, 0x96, 0x34, -0xAC, 0xEC, 0x00, 0x18, 0x2E, 0xD1, 0x07, 0x10, -0x06, 0x23, 0xC0, 0xF0, 0x87, 0xA2, 0x96, 0x34, -0xAC, 0xEC, 0x00, 0x18, 0xC1, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF1, 0x74, 0x9B, 0x43, 0xF4, -0x84, 0x9A, 0x8C, 0xEB, 0x04, 0x73, 0x0C, 0x61, -0xC3, 0xF3, 0x6B, 0xA2, 0x04, 0x6C, 0x8C, 0xEB, -0x07, 0x23, 0x01, 0x6B, 0x43, 0xF4, 0x66, 0xC2, -0x01, 0x6C, 0x00, 0x6D, 0x00, 0x18, 0x43, 0xC9, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xC0, 0xF0, 0x84, 0xA2, 0x7F, 0x6B, 0x8C, 0xEB, -0x43, 0xF4, 0x65, 0xC2, 0x07, 0x97, 0x06, 0x91, -0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, -0x08, 0xD4, 0x41, 0xA4, 0x24, 0x67, 0x06, 0xD2, -0x60, 0xA4, 0x02, 0x6A, 0x6C, 0xEA, 0x06, 0x93, -0x07, 0xD3, 0x02, 0x22, 0x82, 0xA4, 0x07, 0xD4, -0x06, 0x90, 0x34, 0x10, 0x08, 0x93, 0x01, 0x6D, -0x90, 0x67, 0x40, 0xA3, 0x4C, 0xED, 0x00, 0x18, -0x14, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x5C, 0x9A, 0x90, 0x67, 0x40, 0xEA, 0x0F, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x58, 0x9A, -0x90, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF6, 0x50, 0x9A, 0x14, 0x33, 0x4D, 0xE3, -0x80, 0xA3, 0xBF, 0x6A, 0x12, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF3, 0x54, 0x9A, 0x90, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF6, -0x50, 0x9A, 0x14, 0x33, 0xFF, 0x6C, 0x4D, 0xE3, -0x40, 0xA3, 0x8C, 0xEA, 0x40, 0x6C, 0x8D, 0xEA, -0xFF, 0x6C, 0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x48, -0xFF, 0x6A, 0x4C, 0xE8, 0x07, 0x92, 0x03, 0xEA, -0xC9, 0x60, 0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, -0x18, 0x48, 0xE0, 0xF0, 0x88, 0xA0, 0x06, 0x92, -0x8E, 0xEA, 0x1E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x5C, 0x9A, 0x40, 0xEA, 0x18, 0x2A, -0x00, 0x18, 0xDC, 0xE0, 0xC0, 0xF0, 0x87, 0xA0, -0x96, 0x34, 0x00, 0x18, 0x7D, 0xC6, 0xC3, 0xF3, -0x68, 0xA0, 0x05, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, -0xC3, 0xF3, 0x69, 0xA0, 0xC3, 0xF3, 0x48, 0xC0, -0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x03, 0x6B, -0x6B, 0xEB, 0x6C, 0xEA, 0xC3, 0xF3, 0x49, 0xC0, -0x43, 0xA1, 0x07, 0x6B, 0x01, 0x6C, 0x4C, 0xEB, -0x40, 0xA1, 0x8C, 0xEA, 0x1C, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x05, 0xF3, -0xD4, 0xA2, 0x84, 0xEB, 0x1F, 0x6F, 0xCA, 0x35, -0x8F, 0xEC, 0xEC, 0xED, 0x8C, 0xED, 0x7D, 0x6C, -0x8B, 0xEC, 0xA8, 0x35, 0xCC, 0xEC, 0xAD, 0xEC, -0x05, 0xF3, 0x94, 0xC2, 0xE0, 0xF0, 0x87, 0xA2, -0x8E, 0xEB, 0x1E, 0x2B, 0x01, 0x6B, 0x6B, 0xEB, -0x05, 0xF3, 0x75, 0xC2, 0x19, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x05, 0xF3, -0xD4, 0xA2, 0x1F, 0x6F, 0x84, 0xEB, 0xCA, 0x35, -0xEC, 0xED, 0xAD, 0xEC, 0xEC, 0xEC, 0x88, 0x35, -0x7D, 0x6C, 0x8B, 0xEC, 0xCC, 0xEC, 0xAD, 0xEC, -0x05, 0xF3, 0x94, 0xC2, 0xE0, 0xF0, 0x87, 0xA2, -0x8E, 0xEB, 0x02, 0x2B, 0x05, 0xF3, 0x95, 0xC2, -0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, -0x05, 0xF3, 0x74, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, -0x1A, 0x22, 0x03, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, -0x05, 0xF3, 0x54, 0xC0, 0x00, 0x18, 0xB7, 0xDB, -0x04, 0xD2, 0x04, 0x93, 0x05, 0xF3, 0x58, 0x98, -0x6E, 0xEA, 0x03, 0x22, 0x04, 0x94, 0x00, 0x18, -0xD8, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x05, 0xF3, 0x94, 0xA2, 0x02, 0x6B, -0x8D, 0xEB, 0x05, 0xF3, 0x74, 0xC2, 0x0D, 0x97, -0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, -0x4C, 0xEC, 0x68, 0x44, 0xC8, 0x4B, 0x4C, 0xEB, -0x20, 0x5B, 0x05, 0x67, 0x03, 0x60, 0x80, 0x18, -0x87, 0x48, 0xD7, 0x10, 0x2D, 0x74, 0x80, 0xF0, -0x09, 0x60, 0x2E, 0x5C, 0x2B, 0x60, 0x1F, 0x74, -0x69, 0x60, 0x20, 0x5C, 0x12, 0x60, 0x04, 0x74, -0x5D, 0x60, 0x05, 0x5C, 0x06, 0x60, 0x01, 0x74, -0x4D, 0x60, 0x48, 0x24, 0x03, 0x74, 0x52, 0x60, -0xB1, 0x10, 0x14, 0x74, 0xC0, 0xF0, 0x01, 0x60, -0x1E, 0x74, 0x5C, 0x60, 0x13, 0x74, 0x52, 0x60, -0xA9, 0x10, 0x25, 0x74, 0xA0, 0xF0, 0x19, 0x60, -0x26, 0x5C, 0x09, 0x60, 0x21, 0x74, 0xA0, 0xF0, -0x14, 0x60, 0x21, 0x5C, 0x53, 0x61, 0x23, 0x74, -0xA0, 0xF0, 0x0F, 0x60, 0x9B, 0x10, 0x2B, 0x74, -0x59, 0x60, 0x2C, 0x5C, 0x5B, 0x60, 0x27, 0x74, -0x51, 0x60, 0x94, 0x10, 0x89, 0x74, 0x7A, 0x60, -0x8A, 0x5C, 0x12, 0x60, 0x82, 0x74, 0x62, 0x60, -0x83, 0x5C, 0x07, 0x60, 0x80, 0x74, 0x56, 0x60, -0x81, 0x5C, 0x58, 0x60, 0x31, 0x74, 0x3E, 0x60, -0x85, 0x10, 0x84, 0x74, 0x5F, 0x60, 0x84, 0x5C, -0x59, 0x61, 0x88, 0x74, 0x5F, 0x60, 0x7E, 0x10, -0x8F, 0x74, 0x70, 0x60, 0x90, 0x5C, 0x07, 0x60, -0x8D, 0x74, 0x64, 0x60, 0x8E, 0x5C, 0x66, 0x60, -0x8C, 0x74, 0x58, 0x60, 0x73, 0x10, 0xC3, 0x74, -0x6D, 0x60, 0xCD, 0x74, 0x67, 0x60, 0xBB, 0x74, -0x09, 0x60, 0x6C, 0x10, 0x85, 0x67, 0x80, 0x18, -0x69, 0x32, 0x7B, 0x10, 0x85, 0x67, 0x80, 0x18, -0x54, 0x35, 0x77, 0x10, 0x85, 0x67, 0x00, 0x18, -0x10, 0xE6, 0x73, 0x10, 0x85, 0x67, 0x80, 0x18, -0xBF, 0x05, 0x6F, 0x10, 0x85, 0x67, 0x80, 0x18, -0xE2, 0x05, 0x6B, 0x10, 0x85, 0x67, 0x80, 0x18, -0xE7, 0x34, 0x67, 0x10, 0x85, 0x67, 0x00, 0x18, -0xF9, 0xD6, 0x63, 0x10, 0x85, 0x67, 0x00, 0x18, -0xDF, 0xD6, 0x5F, 0x10, 0x85, 0x67, 0x80, 0x18, -0x1D, 0x35, 0x5B, 0x10, 0x85, 0x67, 0x80, 0x18, -0x71, 0x32, 0x57, 0x10, 0x85, 0x67, 0x80, 0x18, -0x95, 0x52, 0x53, 0x10, 0x85, 0x67, 0x00, 0x18, -0x30, 0xD7, 0x4F, 0x10, 0x85, 0x67, 0x00, 0x18, -0xCB, 0xC2, 0x4B, 0x10, 0x85, 0x67, 0x80, 0x18, -0x7A, 0x32, 0x47, 0x10, 0x85, 0x67, 0x80, 0x18, -0xEC, 0x0B, 0x43, 0x10, 0x85, 0x67, 0x80, 0x18, -0x22, 0x0B, 0x3F, 0x10, 0x85, 0x67, 0x80, 0x18, -0x86, 0x07, 0x3B, 0x10, 0x85, 0x67, 0x80, 0x18, -0x8C, 0x07, 0x37, 0x10, 0x85, 0x67, 0x80, 0x18, -0x94, 0x07, 0x33, 0x10, 0x85, 0x67, 0x80, 0x18, -0x9C, 0x07, 0x2F, 0x10, 0x85, 0x67, 0x80, 0x18, -0x93, 0x12, 0x2B, 0x10, 0x85, 0x67, 0x80, 0x18, -0x5B, 0x38, 0x27, 0x10, 0x85, 0x67, 0x80, 0x18, -0x01, 0x04, 0x23, 0x10, 0x85, 0x67, 0x80, 0x18, -0x22, 0x04, 0x1F, 0x10, 0x85, 0x67, 0x80, 0x18, -0x2A, 0x07, 0x1B, 0x10, 0x85, 0x67, 0x80, 0x18, -0x8D, 0x32, 0x17, 0x10, 0x85, 0x67, 0x80, 0x18, -0x9E, 0x52, 0x13, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF1, 0x7C, 0x9A, 0x01, 0x6C, 0x40, 0x9B, +0xF2, 0x17, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, +0x5C, 0x9A, 0xED, 0x17, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF4, 0x40, 0x9A, 0xE8, 0x17, 0x85, 0x67, +0x00, 0x18, 0x10, 0xCF, 0x15, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF3, 0x68, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x22, 0xF4, 0x88, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xA3, 0xF3, 0x78, 0x9A, -0x8D, 0xEB, 0xA3, 0xF3, 0x78, 0xDA, 0x0E, 0x6A, -0x01, 0x10, 0x00, 0x6A, 0x40, 0xC0, 0x05, 0x97, -0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, 0xA0, 0xF1, -0x55, 0xA0, 0xA0, 0xF1, 0x76, 0xA0, 0x4E, 0xEB, -0x29, 0x23, 0x67, 0x42, 0x27, 0x4B, 0x6C, 0x33, -0x0D, 0xE3, 0x4C, 0x32, 0x85, 0xA3, 0x55, 0xE0, -0x60, 0xF1, 0x16, 0x4D, 0x80, 0x18, 0xBE, 0x35, -0xA0, 0xF1, 0x55, 0xA0, 0x01, 0x4A, 0xA0, 0xF1, -0x55, 0xC0, 0xA0, 0xF1, 0x75, 0xA0, 0xA0, 0xF1, -0x56, 0xA0, 0x6E, 0xEA, 0x06, 0x22, 0xA0, 0xF0, -0x44, 0x98, 0x02, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, -0x44, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0xA0, 0xF1, 0x75, 0xA2, 0x08, 0x6C, -0x8E, 0xEB, 0x02, 0x2B, 0xA0, 0xF1, 0x75, 0xC2, -0x80, 0x18, 0x18, 0x33, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, -0x18, 0x48, 0x42, 0xF6, 0x40, 0xA0, 0x7F, 0x6C, -0xA0, 0xF0, 0xAA, 0x42, 0xB4, 0x35, 0x15, 0xE5, -0x60, 0xA5, 0x8C, 0xEB, 0x23, 0x2B, 0xA0, 0xF0, -0x65, 0x42, 0x74, 0x33, 0x0D, 0xE3, 0x54, 0x32, -0xA0, 0xF0, 0x88, 0xA3, 0x42, 0xF5, 0xA9, 0x42, -0xB5, 0xE0, 0x80, 0x18, 0xBE, 0x35, 0x42, 0xF6, -0x40, 0xA0, 0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF6, -0x80, 0x9C, 0x54, 0x33, 0x0D, 0xE3, 0x42, 0xF5, -0xA6, 0xA3, 0x7F, 0x4A, 0x2B, 0x4A, 0xA0, 0xC4, -0x42, 0xF5, 0x87, 0xA3, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF6, 0x64, 0x9B, 0x80, 0xC3, 0x54, 0x34, -0x91, 0xE0, 0x35, 0x10, 0x01, 0x73, 0x35, 0x61, -0x54, 0x33, 0x0D, 0xE3, 0x42, 0xF5, 0x81, 0xA3, -0xFF, 0x74, 0x0B, 0x61, 0x42, 0xF5, 0x82, 0xA3, -0x80, 0x18, 0xB3, 0x34, 0x42, 0xF6, 0x60, 0xA0, -0x7F, 0x4B, 0x26, 0x4B, 0x74, 0x33, 0x01, 0xE3, -0x06, 0x10, 0x7F, 0x4A, 0x26, 0x4A, 0x54, 0x32, -0x01, 0xE2, 0x01, 0x6A, 0x4B, 0xEA, 0xA0, 0xF0, -0x48, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x42, 0xF6, 0x60, 0xA2, 0x30, 0xF0, -0x20, 0x6D, 0x83, 0xF6, 0xA0, 0x9D, 0x74, 0x34, -0x51, 0xE4, 0x42, 0xF5, 0xC6, 0xA4, 0x7F, 0x4B, -0x2B, 0x4B, 0xC0, 0xC5, 0x42, 0xF5, 0xA7, 0xA4, -0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF6, 0x84, 0x9C, -0xA0, 0xC4, 0x74, 0x34, 0x91, 0xE2, 0x80, 0x18, -0x14, 0x34, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x63, 0xF5, 0x18, 0x4A, 0x23, 0xF3, 0x70, 0x9A, +0x8D, 0xEB, 0x23, 0xF3, 0x70, 0xDA, 0xFF, 0x6A, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x07, 0xD4, 0x60, 0xA4, 0x01, 0xA4, 0x02, 0x6A, +0x6C, 0xEA, 0x24, 0x67, 0x06, 0xD0, 0x37, 0x22, +0x42, 0xA4, 0x06, 0xD2, 0x34, 0x10, 0x07, 0x93, +0x01, 0x6D, 0x90, 0x67, 0x40, 0xA3, 0x4C, 0xED, +0x00, 0x18, 0xE2, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x5C, 0x9A, 0x90, 0x67, 0x40, 0xEA, +0x0F, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x58, 0x9A, 0x90, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF6, 0x4C, 0x9A, 0x14, 0x33, +0x4D, 0xE3, 0x80, 0xA3, 0xBF, 0x6A, 0x12, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x54, 0x9A, +0x90, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF6, 0x4C, 0x9A, 0x14, 0x33, 0xFF, 0x6C, +0x4D, 0xE3, 0x40, 0xA3, 0x8C, 0xEA, 0x40, 0x6C, +0x8D, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, 0x40, 0xC3, +0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, 0x06, 0x92, +0x03, 0xEA, 0xC9, 0x60, 0x43, 0xA1, 0x07, 0x6B, +0x01, 0x6C, 0x4C, 0xEB, 0x40, 0xA1, 0x8C, 0xEA, +0x1C, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, +0x18, 0x4A, 0x43, 0xF3, 0xC0, 0xA2, 0x84, 0xEB, +0x1F, 0x6F, 0xCA, 0x35, 0x8F, 0xEC, 0xEC, 0xED, +0x8C, 0xED, 0x7D, 0x6C, 0x8B, 0xEC, 0xA8, 0x35, +0xCC, 0xEC, 0xAD, 0xEC, 0x43, 0xF3, 0x80, 0xC2, +0xA0, 0xF0, 0x8F, 0xA2, 0x8E, 0xEB, 0x1E, 0x2B, +0x01, 0x6B, 0x6B, 0xEB, 0x43, 0xF3, 0x61, 0xC2, +0x19, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, +0x18, 0x4A, 0x43, 0xF3, 0xC0, 0xA2, 0x1F, 0x6F, +0x84, 0xEB, 0xCA, 0x35, 0xEC, 0xED, 0xAD, 0xEC, +0xEC, 0xEC, 0x88, 0x35, 0x7D, 0x6C, 0x8B, 0xEC, +0xCC, 0xEC, 0xAD, 0xEC, 0x43, 0xF3, 0x80, 0xC2, +0xA0, 0xF0, 0x8F, 0xA2, 0x8E, 0xEB, 0x02, 0x2B, +0x43, 0xF3, 0x81, 0xC2, 0x30, 0xF0, 0x20, 0x68, +0x63, 0xF5, 0x18, 0x48, 0x43, 0xF3, 0x60, 0xA0, +0x02, 0x6A, 0x6C, 0xEA, 0x1A, 0x22, 0x03, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x43, 0xF3, 0x40, 0xC0, +0x00, 0x18, 0x5B, 0xCF, 0x04, 0xD2, 0x04, 0x93, +0x43, 0xF3, 0x44, 0x98, 0x6E, 0xEA, 0x03, 0x22, +0x04, 0x94, 0x00, 0x18, 0x7C, 0xCF, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, 0x43, 0xF3, +0x80, 0xA2, 0x02, 0x6B, 0x8D, 0xEB, 0x43, 0xF3, +0x60, 0xC2, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, 0x68, 0x44, +0xC8, 0x4B, 0x4C, 0xEB, 0x20, 0x5B, 0x05, 0x67, +0x03, 0x60, 0x80, 0x18, 0xC6, 0x40, 0x2B, 0x10, +0x01, 0x74, 0x0A, 0x60, 0x05, 0x24, 0xBB, 0x74, +0x0B, 0x60, 0xCD, 0x74, 0x0D, 0x60, 0x10, 0x10, +0x85, 0x67, 0x80, 0x18, 0x43, 0x12, 0x1F, 0x10, +0x85, 0x67, 0x80, 0x18, 0x5C, 0x14, 0x1B, 0x10, +0x85, 0x67, 0x00, 0x18, 0x77, 0xD9, 0x17, 0x10, +0x85, 0x67, 0x80, 0x18, 0x4B, 0x12, 0x13, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, 0x68, 0x9A, +0x01, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0x23, 0xF3, 0x70, 0x9A, 0x8D, 0xEB, 0x23, 0xF3, +0x70, 0xDA, 0x0E, 0x6A, 0x01, 0x10, 0x00, 0x6A, +0x40, 0xC0, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, -0x18, 0x48, 0x42, 0xF6, 0x60, 0xA0, 0x42, 0xF6, -0x41, 0xA0, 0x6E, 0xEA, 0x42, 0x22, 0xA0, 0xF6, -0x58, 0xA8, 0x09, 0xF6, 0x00, 0x72, 0x10, 0x60, -0xA0, 0xF6, 0x98, 0xA0, 0xA0, 0xF6, 0x79, 0xA0, -0xAE, 0x44, 0x6E, 0xED, 0x09, 0x25, 0x09, 0xF7, -0x01, 0x72, 0x06, 0x60, 0x09, 0xF7, 0x00, 0x72, -0x03, 0x60, 0xFF, 0x4C, 0x8E, 0xEB, 0x0D, 0x2B, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, -0xA0, 0xF0, 0x44, 0x9B, 0x04, 0x6C, 0x8D, 0xEA, -0x02, 0x6C, 0x8D, 0xEA, 0xA0, 0xF0, 0x44, 0xDB, -0x20, 0x10, 0x80, 0x18, 0x51, 0x36, 0x42, 0xF6, -0x40, 0xA0, 0x01, 0x4A, 0x42, 0xF6, 0x40, 0xC0, -0x42, 0xF6, 0x60, 0xA0, 0x42, 0xF6, 0x41, 0xA0, -0x6E, 0xEA, 0x06, 0x22, 0xA0, 0xF0, 0x44, 0x98, -0x02, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x42, 0xF6, 0x60, 0xA2, 0x08, 0x6C, 0x8E, 0xEB, -0x02, 0x2B, 0x42, 0xF6, 0x60, 0xC2, 0x80, 0x18, -0xA4, 0x32, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF6, 0x70, 0x9B, -0x30, 0xF0, 0x20, 0x68, 0x43, 0xF3, 0x0C, 0x98, -0xE0, 0x9B, 0xFF, 0x6A, 0x4C, 0xEC, 0x0C, 0xEF, -0x08, 0x5C, 0x4C, 0xED, 0x4C, 0xEE, 0xE0, 0xDB, -0x46, 0x60, 0xB0, 0x75, 0x2E, 0x61, 0xB2, 0x76, -0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, -0xBC, 0x9A, 0x01, 0x6A, 0x44, 0xEC, 0xC0, 0x9D, -0x00, 0xF6, 0x40, 0x34, 0xCD, 0xEC, 0x80, 0xDD, -0xC0, 0x9D, 0x40, 0x34, 0x80, 0x34, 0x8F, 0xEC, -0xCC, 0xEC, 0x80, 0xDD, 0x80, 0x9B, 0x4E, 0x10, -0xB1, 0x76, 0x80, 0xF0, 0x13, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF2, 0xBC, 0x9A, 0x01, 0x6A, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x63, 0xF5, +0x18, 0x48, 0x20, 0xF1, 0x50, 0xA0, 0x20, 0xF1, +0x71, 0xA0, 0x4E, 0xEB, 0x29, 0x23, 0x67, 0x42, +0x17, 0x4B, 0x6C, 0x33, 0x0D, 0xE3, 0x4C, 0x32, +0x80, 0xA3, 0xF0, 0xF0, 0xA1, 0x42, 0xB5, 0xE0, +0x80, 0x18, 0xB1, 0x14, 0x20, 0xF1, 0x50, 0xA0, +0x01, 0x4A, 0x20, 0xF1, 0x50, 0xC0, 0x20, 0xF1, +0x70, 0xA0, 0x20, 0xF1, 0x51, 0xA0, 0x6E, 0xEA, +0x06, 0x22, 0xA0, 0xF0, 0x44, 0x98, 0x02, 0x6B, +0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, 0x20, 0xF1, +0x70, 0xA2, 0x08, 0x6C, 0x8E, 0xEB, 0x02, 0x2B, +0x20, 0xF1, 0x70, 0xC2, 0x80, 0x18, 0xD6, 0x12, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0x63, 0xF5, 0x18, 0x48, 0xA2, 0xF5, +0x7A, 0xA0, 0x7F, 0x6E, 0x74, 0x35, 0x11, 0xE5, +0xA2, 0xF4, 0x5A, 0xA4, 0xCC, 0xEA, 0x1E, 0x2A, +0x7F, 0x4B, 0x27, 0x4B, 0x74, 0x33, 0x0D, 0xE3, +0xA4, 0x67, 0x82, 0xA3, 0xC2, 0xF4, 0x03, 0x4D, +0x80, 0x18, 0xB1, 0x14, 0xA2, 0xF5, 0x9A, 0xA0, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF6, 0x68, 0x9B, +0x94, 0x34, 0x09, 0xE4, 0xC2, 0xF4, 0xA0, 0xA2, +0x91, 0xE0, 0xA0, 0xC3, 0xC2, 0xF4, 0x61, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x4C, 0x9A, +0x60, 0xC2, 0x32, 0x10, 0x01, 0x72, 0x34, 0x61, +0xA2, 0xF4, 0x5B, 0xA4, 0xFF, 0x72, 0x0E, 0x61, +0xA2, 0xF4, 0x9C, 0xA4, 0xB5, 0xE0, 0xA2, 0xF4, +0x1A, 0x4D, 0x80, 0x18, 0x2F, 0x14, 0xA2, 0xF5, +0x7A, 0xA0, 0x7F, 0x4B, 0x27, 0x4B, 0x74, 0x33, +0x01, 0xE3, 0x06, 0x10, 0x7F, 0x4B, 0x27, 0x4B, +0x74, 0x33, 0x01, 0x6A, 0x01, 0xE3, 0x4B, 0xEA, +0x42, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, +0x18, 0x4A, 0xA2, 0xF5, 0x9A, 0xA2, 0x30, 0xF0, +0x20, 0x6D, 0x62, 0xF6, 0xA8, 0x9D, 0x94, 0x34, +0x4D, 0xE4, 0xC2, 0xF4, 0xC0, 0xA3, 0x91, 0xE2, +0xC0, 0xC5, 0xC2, 0xF4, 0xA1, 0xA3, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF6, 0x6C, 0x9B, 0xA0, 0xC3, +0xA2, 0xF4, 0x1A, 0x4C, 0x80, 0x18, 0xC6, 0x13, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0x63, 0xF5, 0x18, 0x48, 0xA2, 0xF5, +0x7A, 0xA0, 0xA2, 0xF5, 0x5B, 0xA0, 0x6E, 0xEA, +0x42, 0x22, 0x20, 0xF6, 0x52, 0xA8, 0x09, 0xF6, +0x00, 0x72, 0x10, 0x60, 0x20, 0xF6, 0x92, 0xA0, +0x20, 0xF6, 0x73, 0xA0, 0xAE, 0x44, 0x6E, 0xED, +0x09, 0x25, 0x09, 0xF7, 0x01, 0x72, 0x06, 0x60, +0x09, 0xF7, 0x00, 0x72, 0x03, 0x60, 0xFF, 0x4C, +0x8E, 0xEB, 0x0D, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF5, 0x18, 0x4B, 0xA0, 0xF0, 0x44, 0x9B, +0x04, 0x6C, 0x8D, 0xEA, 0x02, 0x6C, 0x8D, 0xEA, +0xA0, 0xF0, 0x44, 0xDB, 0x20, 0x10, 0x80, 0x18, +0xEE, 0x14, 0xA2, 0xF5, 0x5A, 0xA0, 0x01, 0x4A, +0xA2, 0xF5, 0x5A, 0xC0, 0xA2, 0xF5, 0x7A, 0xA0, +0xA2, 0xF5, 0x5B, 0xA0, 0x6E, 0xEA, 0x06, 0x22, +0xA0, 0xF0, 0x44, 0x98, 0x02, 0x6B, 0x6D, 0xEA, +0xA0, 0xF0, 0x44, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF5, 0x18, 0x4A, 0xA2, 0xF5, 0x7A, 0xA2, +0x08, 0x6C, 0x8E, 0xEB, 0x02, 0x2B, 0xA2, 0xF5, +0x7A, 0xC2, 0x80, 0x18, 0x62, 0x12, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0x63, 0x01, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF6, 0x70, 0x9B, 0x30, 0xF0, 0x20, 0x68, +0x62, 0xF6, 0x14, 0x98, 0xE0, 0x9B, 0xFF, 0x6A, +0x4C, 0xEC, 0x0C, 0xEF, 0x08, 0x5C, 0x4C, 0xED, +0x4C, 0xEE, 0xE0, 0xDB, 0x46, 0x60, 0xB0, 0x75, +0x2E, 0x61, 0xB2, 0x76, 0x13, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF6, 0xB8, 0x9A, 0x01, 0x6A, 0x44, 0xEC, 0xC0, 0x9D, 0x00, 0xF6, 0x40, 0x34, 0xCD, 0xEC, 0x80, 0xDD, 0xC0, 0x9D, 0x40, 0x34, 0x80, 0x34, 0x8F, 0xEC, 0xCC, 0xEC, 0x80, 0xDD, -0x80, 0x9B, 0x4F, 0xEA, 0x8C, 0xEA, 0x40, 0xDB, -0x7B, 0x10, 0xA0, 0x75, 0x7D, 0x61, 0xA1, 0x76, -0x08, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, -0x5C, 0x9A, 0x01, 0x6B, 0x64, 0xEC, 0xA0, 0x9A, -0x51, 0x10, 0xA2, 0x76, 0x6F, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF2, 0x5C, 0x9A, 0x01, 0x6B, -0x64, 0xEC, 0xA0, 0x9A, 0x5A, 0x10, 0xE8, 0x44, -0x4C, 0xEF, 0x08, 0x5F, 0xE0, 0x6A, 0x65, 0x60, -0xB0, 0x75, 0x35, 0x61, 0xB2, 0x76, 0x18, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x58, 0x9A, +0x80, 0x9B, 0x4E, 0x10, 0xB1, 0x76, 0x80, 0xF0, +0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, +0xB8, 0x9A, 0x01, 0x6A, 0x44, 0xEC, 0xC0, 0x9D, +0x00, 0xF6, 0x40, 0x34, 0xCD, 0xEC, 0x80, 0xDD, +0xC0, 0x9D, 0x40, 0x34, 0x80, 0x34, 0x8F, 0xEC, +0xCC, 0xEC, 0x80, 0xDD, 0x80, 0x9B, 0x4F, 0xEA, +0x8C, 0xEA, 0x40, 0xDB, 0x7B, 0x10, 0xA0, 0x75, +0x7D, 0x61, 0xA1, 0x76, 0x08, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF6, 0x58, 0x9A, 0x01, 0x6B, +0x64, 0xEC, 0xA0, 0x9A, 0x51, 0x10, 0xA2, 0x76, +0x6F, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, +0x58, 0x9A, 0x01, 0x6B, 0x64, 0xEC, 0xA0, 0x9A, +0x5A, 0x10, 0xE8, 0x44, 0x4C, 0xEF, 0x08, 0x5F, +0xE0, 0x6A, 0x65, 0x60, 0xB0, 0x75, 0x35, 0x61, +0xB2, 0x76, 0x18, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF6, 0x5C, 0x9A, 0x01, 0x6E, 0xA6, 0x67, +0x00, 0x9A, 0xA4, 0xEF, 0xE5, 0x67, 0x00, 0xF6, +0xA0, 0x35, 0x0D, 0xED, 0xA0, 0xDA, 0xA0, 0x9A, +0xE0, 0x37, 0xE0, 0x37, 0xEF, 0xEF, 0xAC, 0xEF, +0xE0, 0xDA, 0x40, 0x9B, 0xC4, 0xEC, 0x86, 0x67, +0x4D, 0xEC, 0x19, 0x10, 0xB1, 0x76, 0x44, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x5C, 0x9A, 0x01, 0x6E, 0xA6, 0x67, 0x00, 0x9A, 0xA4, 0xEF, 0xE5, 0x67, 0x00, 0xF6, 0xA0, 0x35, 0x0D, 0xED, 0xA0, 0xDA, 0xA0, 0x9A, 0xE0, 0x37, 0xE0, 0x37, 0xEF, 0xEF, 0xAC, 0xEF, 0xE0, 0xDA, 0x40, 0x9B, -0xC4, 0xEC, 0x86, 0x67, 0x4D, 0xEC, 0x19, 0x10, -0xB1, 0x76, 0x44, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF2, 0x58, 0x9A, 0x01, 0x6E, 0xA6, 0x67, -0x00, 0x9A, 0xA4, 0xEF, 0xE5, 0x67, 0x00, 0xF6, -0xA0, 0x35, 0x0D, 0xED, 0xA0, 0xDA, 0xA0, 0x9A, -0xE0, 0x37, 0xE0, 0x37, 0xEF, 0xEF, 0xAC, 0xEF, -0xE0, 0xDA, 0x40, 0x9B, 0xC4, 0xEC, 0xCF, 0xEC, -0x4C, 0xEC, 0x80, 0xDB, 0x29, 0x10, 0xA0, 0x75, -0x2B, 0x61, 0xA1, 0x76, 0x11, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF2, 0x58, 0x9A, 0x01, 0x6B, -0x64, 0xEF, 0xA0, 0x9A, 0x00, 0xF6, 0x60, 0x34, -0x8F, 0xEC, 0xAC, 0xEC, 0x80, 0xDA, 0x80, 0x9A, -0x60, 0x33, 0x60, 0x33, 0x8D, 0xEB, 0x13, 0x10, -0xA2, 0x76, 0x14, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF2, 0x58, 0x9A, 0x01, 0x6B, 0x64, 0xEF, -0xA0, 0x9A, 0x00, 0xF6, 0x60, 0x34, 0x8F, 0xEC, -0xAC, 0xEC, 0x80, 0xDA, 0x80, 0x9A, 0x60, 0x33, -0x60, 0x33, 0x6F, 0xEB, 0x8C, 0xEB, 0x60, 0xDA, -0xF0, 0x6A, 0x03, 0x10, 0xE2, 0x6A, 0x01, 0x10, -0xE1, 0x6A, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, -0xFF, 0x6B, 0x6C, 0xEC, 0x08, 0x5C, 0xFF, 0x63, -0x18, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF6, -0x54, 0x9A, 0x01, 0x6D, 0x40, 0xA2, 0x6C, 0xEA, -0x47, 0xEC, 0xAC, 0xEA, 0x37, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF6, 0x58, 0x9A, 0x40, 0xA2, -0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x30, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x5C, 0x9A, -0x1C, 0x10, 0xF8, 0x4C, 0x6C, 0xEC, 0x08, 0x5C, -0xE0, 0x6A, 0x27, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF6, 0x5C, 0x9A, 0x01, 0x6D, 0x40, 0xA2, -0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x1A, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, 0x40, 0x9A, +0xC4, 0xEC, 0xCF, 0xEC, 0x4C, 0xEC, 0x80, 0xDB, +0x29, 0x10, 0xA0, 0x75, 0x2B, 0x61, 0xA1, 0x76, +0x11, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, +0x5C, 0x9A, 0x01, 0x6B, 0x64, 0xEF, 0xA0, 0x9A, +0x00, 0xF6, 0x60, 0x34, 0x8F, 0xEC, 0xAC, 0xEC, +0x80, 0xDA, 0x80, 0x9A, 0x60, 0x33, 0x60, 0x33, +0x8D, 0xEB, 0x13, 0x10, 0xA2, 0x76, 0x14, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x5C, 0x9A, +0x01, 0x6B, 0x64, 0xEF, 0xA0, 0x9A, 0x00, 0xF6, +0x60, 0x34, 0x8F, 0xEC, 0xAC, 0xEC, 0x80, 0xDA, +0x80, 0x9A, 0x60, 0x33, 0x60, 0x33, 0x6F, 0xEB, +0x8C, 0xEB, 0x60, 0xDA, 0xF0, 0x6A, 0x03, 0x10, +0xE2, 0x6A, 0x01, 0x10, 0xE1, 0x6A, 0x01, 0x90, +0x01, 0x63, 0x20, 0xE8, 0xFF, 0x6B, 0x6C, 0xEC, +0x08, 0x5C, 0xFF, 0x63, 0x18, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF6, 0x40, 0x9A, 0x01, 0x6D, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, -0x13, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, -0x58, 0x9A, 0x40, 0xA2, 0xA4, 0xEC, 0x85, 0x67, -0x6C, 0xEC, 0x4C, 0xEC, 0x5D, 0x67, 0x80, 0xC2, -0x40, 0xA2, 0x4C, 0xEB, 0x6B, 0xEA, 0xC0, 0xF7, -0x42, 0x32, 0x03, 0x10, 0xE4, 0x6A, 0x01, 0x10, -0xE6, 0x6A, 0x01, 0x63, 0x20, 0xE8, 0x00, 0x65, -0xFF, 0x6B, 0x6C, 0xEC, 0x08, 0x5C, 0x6C, 0xED, -0x20, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF6, -0x54, 0x9A, 0x01, 0x6E, 0x40, 0xA2, 0x6C, 0xEA, -0x47, 0xEC, 0xCC, 0xEA, 0x48, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF6, 0x58, 0x9A, 0xC4, 0xEC, -0x86, 0x67, 0x40, 0xA2, 0x6C, 0xEA, 0xCC, 0xEA, -0xCE, 0xEA, 0x3B, 0x2A, 0x05, 0x25, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF6, 0xA4, 0x9A, 0x24, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, 0x44, 0x9A, -0x29, 0x10, 0xF8, 0x4C, 0x6C, 0xEC, 0x08, 0x5C, -0xE0, 0x6A, 0x2E, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF6, 0x5C, 0x9A, 0x01, 0x6E, 0x40, 0xA2, -0x6C, 0xEA, 0x47, 0xEC, 0xCC, 0xEA, 0x23, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, 0x40, 0x9A, -0xC4, 0xEC, 0x86, 0x67, 0x40, 0xA2, 0x6C, 0xEA, -0xCC, 0xEA, 0xCE, 0xEA, 0x16, 0x2A, 0x0A, 0x25, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, 0xA8, 0x9A, -0x40, 0xA5, 0x6C, 0xEA, 0x8D, 0xEA, 0x6C, 0xEA, -0x40, 0xC5, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF6, 0x48, 0x9A, 0xA0, 0xA2, 0x8F, 0xEC, -0x6C, 0xEC, 0xAC, 0xEC, 0x80, 0xC2, 0xF0, 0x6A, -0x20, 0xE8, 0xE5, 0x6A, 0x20, 0xE8, 0xE4, 0x6A, +0x37, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, +0x44, 0x9A, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, +0xAC, 0xEA, 0x30, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF6, 0x58, 0x9A, 0x1C, 0x10, 0xF8, 0x4C, +0x6C, 0xEC, 0x08, 0x5C, 0xE0, 0x6A, 0x27, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, 0x48, 0x9A, +0x01, 0x6D, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, +0xAC, 0xEA, 0x1A, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF6, 0x4C, 0x9A, 0x40, 0xA2, 0x6C, 0xEA, +0x47, 0xEC, 0xAC, 0xEA, 0x13, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF6, 0x5C, 0x9A, 0x40, 0xA2, +0xA4, 0xEC, 0x85, 0x67, 0x6C, 0xEC, 0x4C, 0xEC, +0x5D, 0x67, 0x80, 0xC2, 0x40, 0xA2, 0x4C, 0xEB, +0x6B, 0xEA, 0xC0, 0xF7, 0x42, 0x32, 0x03, 0x10, +0xE4, 0x6A, 0x01, 0x10, 0xE6, 0x6A, 0x01, 0x63, 0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, -0x08, 0x5C, 0x0F, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF6, 0x54, 0x9A, 0x01, 0x6D, 0x40, 0xA2, -0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x1F, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF6, 0x58, 0x9A, -0x13, 0x10, 0xF8, 0x4C, 0x6C, 0xEC, 0x08, 0x5C, -0xE0, 0x6A, 0x16, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF6, 0x5C, 0x9A, 0x01, 0x6D, 0x40, 0xA2, -0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x0B, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, 0x40, 0x9A, -0x40, 0xA2, 0x4C, 0xEB, 0x67, 0xEC, 0x45, 0x67, -0x6E, 0xEA, 0xAC, 0xEA, 0x20, 0xE8, 0x00, 0x6A, -0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, -0x08, 0x5C, 0x1A, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF6, 0x54, 0x9A, 0x01, 0x6E, 0x40, 0xA2, -0x6C, 0xEA, 0x47, 0xEC, 0xCC, 0xEA, 0x35, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF6, 0x58, 0x9A, -0xC4, 0xEC, 0x86, 0x67, 0xA0, 0xA2, 0x6C, 0xED, -0xCC, 0xED, 0xCE, 0xED, 0x2A, 0x2D, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF6, 0x44, 0x9A, 0x1E, 0x10, -0xF8, 0x4C, 0x6C, 0xEC, 0x08, 0x5C, 0xE0, 0x6A, -0x21, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF6, -0x5C, 0x9A, 0x01, 0x6E, 0x40, 0xA2, 0x6C, 0xEA, -0x47, 0xEC, 0xCC, 0xEA, 0x16, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF6, 0x40, 0x9A, 0xC4, 0xEC, -0x86, 0x67, 0xA0, 0xA2, 0x6C, 0xED, 0xCC, 0xED, -0xCE, 0xED, 0x0B, 0x2D, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF6, 0x48, 0x9A, 0x40, 0xA2, 0x4C, 0xEB, -0x8C, 0xEB, 0x6E, 0xEC, 0x01, 0x5C, 0x58, 0x67, +0x08, 0x5C, 0x6C, 0xED, 0x20, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF6, 0x40, 0x9A, 0x01, 0x6E, +0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xCC, 0xEA, +0x48, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, +0x44, 0x9A, 0xC4, 0xEC, 0x86, 0x67, 0x40, 0xA2, +0x6C, 0xEA, 0xCC, 0xEA, 0xCE, 0xEA, 0x3B, 0x2A, +0x05, 0x25, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, +0xB0, 0x9A, 0x24, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF6, 0x50, 0x9A, 0x29, 0x10, 0xF8, 0x4C, +0x6C, 0xEC, 0x08, 0x5C, 0xE0, 0x6A, 0x2E, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, 0x48, 0x9A, +0x01, 0x6E, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, +0xCC, 0xEA, 0x23, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF6, 0x4C, 0x9A, 0xC4, 0xEC, 0x86, 0x67, +0x40, 0xA2, 0x6C, 0xEA, 0xCC, 0xEA, 0xCE, 0xEA, +0x16, 0x2A, 0x0A, 0x25, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF6, 0xB4, 0x9A, 0x40, 0xA5, 0x6C, 0xEA, +0x8D, 0xEA, 0x6C, 0xEA, 0x40, 0xC5, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, 0x54, 0x9A, +0xA0, 0xA2, 0x8F, 0xEC, 0x6C, 0xEC, 0xAC, 0xEC, +0x80, 0xC2, 0xF0, 0x6A, 0x20, 0xE8, 0xE5, 0x6A, +0x20, 0xE8, 0xE4, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6B, 0x6C, 0xEC, 0x08, 0x5C, 0x0F, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, 0x40, 0x9A, +0x01, 0x6D, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, +0xAC, 0xEA, 0x1F, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF6, 0x44, 0x9A, 0x13, 0x10, 0xF8, 0x4C, +0x6C, 0xEC, 0x08, 0x5C, 0xE0, 0x6A, 0x16, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, 0x48, 0x9A, +0x01, 0x6D, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, +0xAC, 0xEA, 0x0B, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF6, 0x4C, 0x9A, 0x40, 0xA2, 0x4C, 0xEB, +0x67, 0xEC, 0x45, 0x67, 0x6E, 0xEA, 0xAC, 0xEA, 0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, -0x01, 0x72, 0xFF, 0xF7, 0x1F, 0x6C, 0xAC, 0xEC, -0x05, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x48, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x4C, 0x9A, 0x40, 0xEA, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x04, 0x67, -0x2C, 0xE8, 0x90, 0x67, 0xA0, 0x6D, 0xA2, 0x6E, -0x80, 0x18, 0xB3, 0x36, 0x90, 0x67, 0x80, 0x18, -0x16, 0x37, 0x7D, 0x67, 0x50, 0xC3, 0x50, 0xA3, -0x09, 0x97, 0x07, 0x90, 0x2C, 0xEA, 0x08, 0x91, -0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0x24, 0x67, -0x0C, 0xE9, 0x91, 0x67, 0xAC, 0xE8, 0xA1, 0x6E, -0xA0, 0x6D, 0x80, 0x18, 0xB3, 0x36, 0x91, 0x67, -0xB0, 0x67, 0x80, 0x18, 0x3C, 0x37, 0x07, 0x97, -0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF6, 0x70, 0x9A, 0x30, 0xF0, 0x20, 0x6D, -0x43, 0xF3, 0xAC, 0x9D, 0x40, 0x9B, 0xA2, 0x6E, -0xAC, 0xEA, 0x40, 0xDB, 0xFF, 0x6A, 0x4C, 0xEC, -0xA0, 0x6D, 0x80, 0x18, 0xB3, 0x36, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0x4C, 0xEC, 0xB0, 0x6D, 0xB2, 0x6E, -0x80, 0x18, 0xB3, 0x36, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0x4C, 0xEC, 0xB0, 0x6D, 0xB1, 0x6E, -0x80, 0x18, 0xB3, 0x36, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0xFF, 0x6A, 0x04, 0x67, 0x4C, 0xE8, -0xAC, 0xEA, 0xA4, 0x72, 0x0C, 0x61, 0x90, 0x67, -0x80, 0x18, 0x69, 0x37, 0x01, 0x72, 0x04, 0x61, -0x90, 0x67, 0x80, 0x18, 0xC6, 0x37, 0x1F, 0x10, -0x90, 0x67, 0x00, 0x6D, 0x0D, 0x10, 0xA5, 0x72, -0x11, 0x61, 0x90, 0x67, 0x80, 0x18, 0x69, 0x37, -0x01, 0x72, 0x04, 0x61, 0x90, 0x67, 0x80, 0x18, -0xC6, 0x37, 0x18, 0x10, 0x90, 0x67, 0x01, 0x6D, -0x80, 0x18, 0xBB, 0x37, 0x90, 0x67, 0x80, 0x18, -0xC6, 0x37, 0x14, 0x10, 0x90, 0x67, 0x80, 0x18, -0x81, 0x37, 0x01, 0x72, 0x07, 0x61, 0x90, 0x67, -0x01, 0x6D, 0x80, 0x18, 0xBB, 0x37, 0x90, 0x67, -0x00, 0x6D, 0x06, 0x10, 0x90, 0x67, 0x00, 0x6D, -0x80, 0x18, 0xBB, 0x37, 0x90, 0x67, 0x01, 0x6D, -0x80, 0x18, 0xBB, 0x37, 0x05, 0x97, 0x04, 0x90, -0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, -0x4C, 0xEE, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x08, 0xF1, 0x65, 0xA2, 0xFF, 0xF7, -0x1F, 0x69, 0x04, 0xD4, 0xAC, 0xE9, 0x05, 0xD6, -0x0B, 0x23, 0x08, 0xF1, 0x66, 0xA2, 0x04, 0x23, -0x08, 0xF1, 0x83, 0xA2, 0xA5, 0x6D, 0x07, 0x10, -0x08, 0xF1, 0x83, 0xA2, 0xA4, 0x6D, 0x03, 0x10, -0x08, 0xF1, 0x83, 0xA2, 0xA3, 0x6D, 0x30, 0xF0, -0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, 0x80, 0x18, -0xDD, 0x37, 0x08, 0xF1, 0x47, 0xA0, 0x7D, 0x22, -0x04, 0x94, 0xB1, 0x67, 0x80, 0x18, 0xA4, 0x37, -0x08, 0xF1, 0x45, 0xA0, 0x0B, 0x22, 0x08, 0xF1, -0x46, 0xA0, 0x04, 0x22, 0x08, 0xF1, 0x83, 0xA0, -0xA5, 0x6D, 0x07, 0x10, 0x08, 0xF1, 0x83, 0xA0, -0xA4, 0x6D, 0x03, 0x10, 0x08, 0xF1, 0x83, 0xA0, -0xA3, 0x6D, 0x80, 0x18, 0xDD, 0x37, 0x30, 0xF0, -0x20, 0x6A, 0x6E, 0xF6, 0x40, 0xA2, 0x01, 0x68, -0x5D, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, -0x4C, 0x9A, 0x60, 0xA2, 0x10, 0x6A, 0x6C, 0xEA, -0x58, 0x2A, 0x04, 0x94, 0xB1, 0x67, 0x80, 0x18, -0xA4, 0x37, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x08, 0xF1, 0x65, 0xA2, 0x0B, 0x23, -0x08, 0xF1, 0x66, 0xA2, 0x04, 0x23, 0x08, 0xF1, -0x83, 0xA2, 0xA5, 0x6D, 0x07, 0x10, 0x08, 0xF1, -0x83, 0xA2, 0xA4, 0x6D, 0x03, 0x10, 0x08, 0xF1, -0x83, 0xA2, 0xA3, 0x6D, 0x80, 0x18, 0xDD, 0x37, -0xDC, 0x17, 0x04, 0x94, 0xB1, 0x67, 0x80, 0x18, -0xA4, 0x37, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x08, 0xF1, 0x65, 0xA2, 0x0B, 0x23, -0x08, 0xF1, 0x66, 0xA2, 0x04, 0x23, 0x08, 0xF1, -0x83, 0xA2, 0xA5, 0x6D, 0x07, 0x10, 0x08, 0xF1, -0x83, 0xA2, 0xA4, 0x6D, 0x03, 0x10, 0x08, 0xF1, -0x83, 0xA2, 0xA3, 0x6D, 0x80, 0x18, 0xDD, 0x37, -0x04, 0x94, 0xB1, 0x67, 0x80, 0x18, 0xA4, 0x37, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x08, 0xF1, 0x65, 0xA2, 0x0B, 0x23, 0x08, 0xF1, -0x66, 0xA2, 0x04, 0x23, 0x08, 0xF1, 0x83, 0xA2, -0xA5, 0x6D, 0x07, 0x10, 0x08, 0xF1, 0x83, 0xA2, -0xA4, 0x6D, 0x03, 0x10, 0x08, 0xF1, 0x83, 0xA2, -0xA3, 0x6D, 0x80, 0x18, 0xDD, 0x37, 0x01, 0x48, -0xFF, 0x6A, 0x4C, 0xE8, 0x05, 0x92, 0x43, 0xE8, -0xC4, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, -0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0x4E, 0xF6, 0x1B, 0x4C, -0x00, 0x6D, 0x06, 0x6E, 0x40, 0xEA, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, -0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x86, 0xF6, -0x0C, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xE0, 0xF0, 0x90, 0xA2, 0x7F, 0x6B, 0xE0, 0xF0, -0xD1, 0xA2, 0x8C, 0xEB, 0xE0, 0xF0, 0x92, 0xA2, -0x01, 0x6A, 0xC6, 0x36, 0x8A, 0x34, 0x4C, 0xEC, -0x68, 0x35, 0x05, 0x2C, 0x74, 0x35, 0xD0, 0x4D, -0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xED, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0xE0, 0xF0, -0xF1, 0xA2, 0x01, 0x6B, 0xEC, 0xEB, 0x08, 0xF1, -0x67, 0xC2, 0xE0, 0xF0, 0x70, 0xA2, 0x7E, 0x33, -0x08, 0xF1, 0x68, 0xC2, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF0, 0x74, 0x9B, 0x20, 0xF1, 0x55, 0xA2, -0xE0, 0xA3, 0xFF, 0x6B, 0xEC, 0xEB, 0x4E, 0xEB, -0x06, 0x2B, 0x03, 0x6A, 0x58, 0xED, 0xFF, 0xF7, -0x1F, 0x6A, 0x12, 0xED, 0x4C, 0xED, 0x80, 0x18, -0xFD, 0x37, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0xE0, 0xF0, -0x6F, 0xA2, 0x7F, 0x6D, 0x01, 0x6F, 0xAC, 0xEB, -0x08, 0xF1, 0x63, 0xC2, 0xE0, 0xF0, 0x6E, 0xA2, -0x20, 0xF1, 0xD4, 0xA2, 0x3F, 0x6C, 0x76, 0x33, -0xEC, 0xEB, 0x08, 0xF1, 0x64, 0xC2, 0xE0, 0xF0, -0x72, 0xA2, 0xCC, 0xEC, 0x01, 0x74, 0x76, 0x33, -0xEC, 0xEB, 0x08, 0xF1, 0x65, 0xC2, 0xE0, 0xF0, -0x74, 0xA2, 0x66, 0x33, 0xEC, 0xEB, 0x08, 0xF1, -0x66, 0xC2, 0xFF, 0x6B, 0x80, 0xF0, 0x0D, 0x60, -0x02, 0x74, 0x03, 0x61, 0x80, 0x18, 0x63, 0x38, -0x88, 0x10, 0x3F, 0x74, 0x0B, 0x61, 0x30, 0xF0, -0x20, 0x6C, 0xE3, 0xF0, 0x94, 0x9C, 0x20, 0xF1, -0xD5, 0xA2, 0x80, 0xA4, 0x6C, 0xEC, 0xCE, 0xEC, -0x54, 0x2C, 0x0C, 0x10, 0x3E, 0x74, 0x51, 0x61, -0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF0, 0x94, 0x9C, -0x20, 0xF1, 0x15, 0xA2, 0xC0, 0xA4, 0x6C, 0xEE, -0x0E, 0xEE, 0x21, 0x2E, 0x20, 0xF1, 0x94, 0xA2, -0x20, 0xF1, 0x16, 0xA2, 0x20, 0xF1, 0xD7, 0xA2, -0x9A, 0x34, 0xAC, 0xE8, 0xEC, 0xEC, 0x6C, 0xE8, -0xC6, 0x36, 0x6C, 0xEC, 0x6C, 0xEE, 0x08, 0x35, -0x05, 0x2C, 0x14, 0x35, 0xD0, 0x4D, 0xFF, 0xF7, -0x1F, 0x6A, 0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x20, 0xF1, 0xF7, 0xA2, -0x01, 0x6B, 0xEC, 0xEB, 0x08, 0xF1, 0x67, 0xC2, -0x20, 0xF1, 0x76, 0xA2, 0x49, 0x10, 0x80, 0xA4, -0x20, 0xF1, 0xD8, 0xA2, 0x6C, 0xEC, 0xCE, 0xEC, -0x20, 0x2C, 0x20, 0xF1, 0xF9, 0xA2, 0x20, 0xF1, -0x94, 0xA2, 0x20, 0xF1, 0xDA, 0xA2, 0xAC, 0xEF, -0x9E, 0x34, 0x6C, 0xEF, 0xC6, 0x36, 0x6C, 0xEC, -0x6C, 0xEE, 0xE8, 0x35, 0x05, 0x2C, 0xF4, 0x35, -0xD0, 0x4D, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xED, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x20, 0xF1, 0xFA, 0xA2, 0x01, 0x6B, 0xEC, 0xEB, -0x08, 0xF1, 0x67, 0xC2, 0x20, 0xF1, 0x79, 0xA2, -0x23, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0xE0, 0xF0, 0x90, 0xA2, 0x7F, 0x6B, -0xE0, 0xF0, 0xD1, 0xA2, 0x8C, 0xEB, 0xE0, 0xF0, -0x92, 0xA2, 0x01, 0x6A, 0xC6, 0x36, 0x8A, 0x34, -0x4C, 0xEC, 0x68, 0x35, 0x05, 0x2C, 0x74, 0x35, -0xD0, 0x4D, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xED, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xE0, 0xF0, 0xF1, 0xA2, 0x01, 0x6B, 0xEC, 0xEB, -0x08, 0xF1, 0x67, 0xC2, 0xE0, 0xF0, 0x70, 0xA2, -0x7E, 0x33, 0x08, 0xF1, 0x68, 0xC2, 0x80, 0x18, -0xFD, 0x37, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xE0, 0xF0, 0xB2, 0xA2, -0x02, 0x6C, 0xFF, 0x6B, 0xAC, 0xEC, 0x33, 0x24, -0x30, 0xF0, 0x20, 0x6C, 0xA6, 0xF3, 0x83, 0xA4, -0x2E, 0x2C, 0x05, 0xF3, 0x50, 0xA2, 0x08, 0x5A, -0x07, 0x61, 0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF2, -0x98, 0x9C, 0xF8, 0x4A, 0xA0, 0xA4, 0x05, 0x10, -0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF2, 0x9C, 0x9C, -0xA0, 0xA4, 0x01, 0x6C, 0x84, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x6C, 0xEC, 0x46, 0xF5, 0x18, 0x4A, -0xAC, 0xEC, 0xE0, 0xF0, 0xB4, 0xA2, 0x04, 0x6B, -0xAC, 0xEB, 0x02, 0x2B, 0x10, 0x2C, 0x01, 0x10, -0x0E, 0x24, 0x30, 0xF0, 0x20, 0x6C, 0xA0, 0xF0, -0x64, 0x9A, 0xA3, 0xF0, 0x98, 0x9C, 0x8D, 0xEB, -0xA0, 0xF0, 0x64, 0xDA, 0x01, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0xA6, 0xF3, 0x63, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0xE0, 0xF0, -0xB2, 0xA2, 0x02, 0x6C, 0xFF, 0x6B, 0xAC, 0xEC, -0x42, 0x24, 0x30, 0xF0, 0x20, 0x6C, 0xA6, 0xF3, -0x83, 0xA4, 0x01, 0x74, 0x3C, 0x61, 0x05, 0xF3, -0x50, 0xA2, 0x08, 0x5A, 0x07, 0x61, 0x30, 0xF0, -0x20, 0x6C, 0x43, 0xF2, 0x98, 0x9C, 0xF8, 0x4A, -0xA0, 0xA4, 0x05, 0x10, 0x30, 0xF0, 0x20, 0x6C, -0x43, 0xF2, 0x9C, 0x9C, 0xA0, 0xA4, 0x01, 0x6C, -0x84, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x6C, 0xEC, -0x46, 0xF5, 0x18, 0x4A, 0xAC, 0xEC, 0xE0, 0xF0, -0xB4, 0xA2, 0x04, 0x6B, 0xAC, 0xEB, 0x10, 0x2B, -0x1E, 0x24, 0x30, 0xF0, 0x20, 0x6C, 0xA0, 0xF0, -0x64, 0x9A, 0xA3, 0xF0, 0x98, 0x9C, 0x8D, 0xEB, -0xA0, 0xF0, 0x64, 0xDA, 0x02, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0xA6, 0xF3, 0x63, 0xC2, 0x20, 0xE8, -0x0E, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0xA0, 0xF0, -0x64, 0x9A, 0xA3, 0xF0, 0x98, 0x9C, 0x8D, 0xEB, -0xA0, 0xF0, 0x64, 0xDA, 0x02, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0xA6, 0xF3, 0x63, 0xC2, 0x20, 0xE8, +0xFF, 0x6B, 0x6C, 0xEC, 0x08, 0x5C, 0x1A, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, 0x40, 0x9A, +0x01, 0x6E, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, +0xCC, 0xEA, 0x35, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF6, 0x44, 0x9A, 0xC4, 0xEC, 0x86, 0x67, +0xA0, 0xA2, 0x6C, 0xED, 0xCC, 0xED, 0xCE, 0xED, +0x2A, 0x2D, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, +0x50, 0x9A, 0x1E, 0x10, 0xF8, 0x4C, 0x6C, 0xEC, +0x08, 0x5C, 0xE0, 0x6A, 0x21, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF6, 0x48, 0x9A, 0x01, 0x6E, +0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xCC, 0xEA, +0x16, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, +0x4C, 0x9A, 0xC4, 0xEC, 0x86, 0x67, 0xA0, 0xA2, +0x6C, 0xED, 0xCC, 0xED, 0xCE, 0xED, 0x0B, 0x2D, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, 0x54, 0x9A, +0x40, 0xA2, 0x4C, 0xEB, 0x8C, 0xEB, 0x6E, 0xEC, +0x01, 0x5C, 0x58, 0x67, 0x20, 0xE8, 0x00, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x01, 0x72, 0xFF, 0xF7, +0x1F, 0x6C, 0xAC, 0xEC, 0x05, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x69, 0x04, 0x67, 0x2C, 0xE8, 0x90, 0x67, +0xA0, 0x6D, 0xA2, 0x6E, 0x80, 0x18, 0x4C, 0x15, +0x90, 0x67, 0x80, 0x18, 0xAF, 0x15, 0x7D, 0x67, +0x50, 0xC3, 0x50, 0xA3, 0x09, 0x97, 0x07, 0x90, +0x2C, 0xEA, 0x08, 0x91, 0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0x7C, 0x9B, +0xFF, 0x68, 0x24, 0x67, 0x0C, 0xE9, 0x91, 0x67, +0xAC, 0xE8, 0xA1, 0x6E, 0xA0, 0x6D, 0x80, 0x18, +0x4C, 0x15, 0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, +0xD5, 0x15, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x70, 0x9A, +0x30, 0xF0, 0x20, 0x6D, 0x62, 0xF6, 0xB4, 0x9D, +0x40, 0x9B, 0xA2, 0x6E, 0xAC, 0xEA, 0x40, 0xDB, +0xFF, 0x6A, 0x4C, 0xEC, 0xA0, 0x6D, 0x80, 0x18, +0x4C, 0x15, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0xB0, 0x6D, 0xB2, 0x6E, 0x80, 0x18, 0x4C, 0x15, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0xB0, 0x6D, 0xB1, 0x6E, 0x80, 0x18, 0x4C, 0x15, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, +0x04, 0x67, 0x4C, 0xE8, 0xAC, 0xEA, 0xA4, 0x72, +0x0C, 0x61, 0x90, 0x67, 0x80, 0x18, 0x02, 0x16, +0x01, 0x72, 0x04, 0x61, 0x90, 0x67, 0x80, 0x18, +0x5F, 0x16, 0x1F, 0x10, 0x90, 0x67, 0x00, 0x6D, +0x0D, 0x10, 0xA5, 0x72, 0x11, 0x61, 0x90, 0x67, +0x80, 0x18, 0x02, 0x16, 0x01, 0x72, 0x04, 0x61, +0x90, 0x67, 0x80, 0x18, 0x5F, 0x16, 0x18, 0x10, +0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x54, 0x16, +0x90, 0x67, 0x80, 0x18, 0x5F, 0x16, 0x14, 0x10, +0x90, 0x67, 0x80, 0x18, 0x1A, 0x16, 0x01, 0x72, +0x07, 0x61, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, +0x54, 0x16, 0x90, 0x67, 0x00, 0x6D, 0x06, 0x10, +0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x54, 0x16, +0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x54, 0x16, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xEE, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, 0x06, 0xF1, +0x6A, 0xA2, 0xFF, 0xF7, 0x1F, 0x69, 0x04, 0xD4, +0xAC, 0xE9, 0x05, 0xD6, 0x0B, 0x23, 0x06, 0xF1, +0x6B, 0xA2, 0x04, 0x23, 0x06, 0xF1, 0x88, 0xA2, +0xA5, 0x6D, 0x07, 0x10, 0x06, 0xF1, 0x88, 0xA2, +0xA4, 0x6D, 0x03, 0x10, 0x06, 0xF1, 0x88, 0xA2, +0xA3, 0x6D, 0x30, 0xF0, 0x20, 0x68, 0x63, 0xF5, +0x18, 0x48, 0x80, 0x18, 0x76, 0x16, 0x06, 0xF1, +0x4C, 0xA0, 0x7D, 0x22, 0x04, 0x94, 0xB1, 0x67, +0x80, 0x18, 0x3D, 0x16, 0x06, 0xF1, 0x4A, 0xA0, +0x0B, 0x22, 0x06, 0xF1, 0x4B, 0xA0, 0x04, 0x22, +0x06, 0xF1, 0x88, 0xA0, 0xA5, 0x6D, 0x07, 0x10, +0x06, 0xF1, 0x88, 0xA0, 0xA4, 0x6D, 0x03, 0x10, +0x06, 0xF1, 0x88, 0xA0, 0xA3, 0x6D, 0x80, 0x18, +0x76, 0x16, 0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF6, +0x45, 0xA2, 0x01, 0x68, 0x5D, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF6, 0x58, 0x9A, 0x60, 0xA2, +0x10, 0x6A, 0x6C, 0xEA, 0x58, 0x2A, 0x04, 0x94, +0xB1, 0x67, 0x80, 0x18, 0x3D, 0x16, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, 0x06, 0xF1, +0x6A, 0xA2, 0x0B, 0x23, 0x06, 0xF1, 0x6B, 0xA2, +0x04, 0x23, 0x06, 0xF1, 0x88, 0xA2, 0xA5, 0x6D, +0x07, 0x10, 0x06, 0xF1, 0x88, 0xA2, 0xA4, 0x6D, +0x03, 0x10, 0x06, 0xF1, 0x88, 0xA2, 0xA3, 0x6D, +0x80, 0x18, 0x76, 0x16, 0xDC, 0x17, 0x04, 0x94, +0xB1, 0x67, 0x80, 0x18, 0x3D, 0x16, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, 0x06, 0xF1, +0x6A, 0xA2, 0x0B, 0x23, 0x06, 0xF1, 0x6B, 0xA2, +0x04, 0x23, 0x06, 0xF1, 0x88, 0xA2, 0xA5, 0x6D, +0x07, 0x10, 0x06, 0xF1, 0x88, 0xA2, 0xA4, 0x6D, +0x03, 0x10, 0x06, 0xF1, 0x88, 0xA2, 0xA3, 0x6D, +0x80, 0x18, 0x76, 0x16, 0x04, 0x94, 0xB1, 0x67, +0x80, 0x18, 0x3D, 0x16, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF5, 0x18, 0x4A, 0x06, 0xF1, 0x6A, 0xA2, +0x0B, 0x23, 0x06, 0xF1, 0x6B, 0xA2, 0x04, 0x23, +0x06, 0xF1, 0x88, 0xA2, 0xA5, 0x6D, 0x07, 0x10, +0x06, 0xF1, 0x88, 0xA2, 0xA4, 0x6D, 0x03, 0x10, +0x06, 0xF1, 0x88, 0xA2, 0xA3, 0x6D, 0x80, 0x18, +0x76, 0x16, 0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, +0x05, 0x92, 0x43, 0xE8, 0xC4, 0x61, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x48, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x89, 0xF6, 0x00, 0x4C, 0x00, 0x6D, 0x06, 0x6E, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF3, 0x60, 0x9B, 0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0x69, 0xE2, 0x00, 0x9A, 0x41, 0x45, 0x25, 0x67, 0x08, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, @@ -70111,39 +48073,39 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0xFF, 0xF7, 0x1F, 0x68, 0x41, 0x45, 0x25, 0x67, 0x0C, 0xD6, 0x8C, 0xE8, -0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0x5C, 0x9A, 0x41, 0xE0, 0xC0, 0xD8, 0x1A, 0x10, +0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF3, +0x40, 0x9A, 0x41, 0xE0, 0xC0, 0xD8, 0x1A, 0x10, 0x01, 0x6D, 0x90, 0x67, 0xAB, 0xED, 0x80, 0x18, -0x24, 0x39, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xF4, 0x16, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, 0x91, 0x67, 0x40, 0xEA, 0x0C, 0x93, 0x64, 0xEA, 0x43, 0x67, 0x04, 0x93, 0x2C, 0xEA, 0x2F, 0xE9, 0x6C, 0xE9, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF0, 0x7C, 0x9B, 0x2D, 0xEA, +0x20, 0x6B, 0x02, 0xF3, 0x60, 0x9B, 0x2D, 0xEA, 0x61, 0xE0, 0x40, 0xD8, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x01, 0x74, 0x0D, 0x60, 0x06, 0x24, 0x02, 0x74, 0x10, 0x60, 0x03, 0x74, 0x00, 0x6A, 0x1C, 0x61, 0x14, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA8, 0x35, -0xE3, 0xF6, 0x54, 0x9A, 0x0B, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xA8, 0x35, 0xE3, 0xF6, 0x58, 0x9A, -0x05, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF6, -0x5C, 0x9A, 0xA8, 0x35, 0x55, 0xE5, 0x40, 0x9D, -0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, -0x40, 0x9A, 0xA8, 0x35, 0x55, 0xE5, 0x40, 0x9D, +0x02, 0xF7, 0x44, 0x9A, 0x0B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA8, 0x35, 0x02, 0xF7, 0x48, 0x9A, +0x05, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF7, +0x4C, 0x9A, 0xA8, 0x35, 0x55, 0xE5, 0x40, 0x9D, +0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF7, +0x50, 0x9A, 0xA8, 0x35, 0x55, 0xE5, 0x40, 0x9D, 0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF7, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF7, 0x08, 0x4A, 0x88, 0x34, 0x91, 0xE2, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF3, 0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF5, 0xA0, 0x35, 0xCC, 0xEB, 0x30, 0xF0, -0x20, 0x6E, 0x43, 0xF5, 0xCC, 0x9E, 0xC0, 0xF3, +0x20, 0x6E, 0x62, 0xF5, 0xCC, 0x9E, 0xC0, 0xF3, 0x44, 0x9A, 0x80, 0xAC, 0xAD, 0xEB, 0x01, 0x6D, 0xAB, 0xED, 0x6C, 0xEE, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6B, 0x8C, 0xEB, 0xFF, 0xF7, 0x1F, 0x6A, 0x81, 0x46, 0x06, 0x67, 0xAC, 0xEA, 0x06, 0x2C, 0x83, 0x67, 0xA2, 0x67, -0x80, 0x18, 0x4C, 0x39, 0x02, 0x67, 0x0D, 0x10, -0x83, 0x67, 0xA2, 0x67, 0x80, 0x18, 0x4C, 0x39, +0x80, 0x18, 0x1C, 0x17, 0x02, 0x67, 0x0D, 0x10, +0x83, 0x67, 0xA2, 0x67, 0x80, 0x18, 0x1C, 0x17, 0x22, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, 0x90, 0x67, 0x2C, 0xE8, 0x40, 0xEA, 0x06, 0xEA, 0x50, 0x67, 0x07, 0x97, 0x06, 0x91, @@ -70153,20 +48115,20 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x01, 0x4A, 0x0C, 0xD6, 0x0D, 0xD7, 0x8C, 0xE8, 0xAC, 0xE9, 0x04, 0x2A, 0x90, 0x67, 0xB1, 0x67, 0xC7, 0x67, 0x15, 0x10, 0xB1, 0x67, 0x90, 0x67, -0x80, 0x18, 0x4C, 0x39, 0x04, 0xD2, 0x30, 0xF0, +0x80, 0x18, 0x1C, 0x17, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x0C, 0x94, 0xA0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x0D, 0x96, 0x90, 0x67, 0xB1, 0x67, 0xC4, 0xEA, 0x0C, 0x92, 0x4C, 0xEE, 0x4F, 0xEB, 0x04, 0x92, 0x4C, 0xEB, 0x6D, 0xEE, 0x80, 0x18, -0x5F, 0x39, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x2F, 0x17, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x25, 0x67, 0x01, 0x60, 0x05, 0x2B, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF0, 0x78, 0x9B, 0x04, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0x7C, 0x9B, +0x20, 0x6B, 0xE2, 0xF2, 0x7C, 0x9B, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF3, 0x60, 0x9B, 0x69, 0xE2, 0x00, 0x9A, 0x41, 0x41, 0x08, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, 0x91, 0x67, 0x2C, 0xE8, 0x40, 0xEA, 0x06, 0xEA, @@ -70176,29 +48138,29 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x41, 0x45, 0x25, 0x67, 0x0C, 0xD6, 0x8C, 0xE8, 0x16, 0x2A, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x07, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x58, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0x5C, 0x9A, 0x41, 0xE0, 0x0C, 0x92, 0x3A, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF0, 0x5C, 0x9A, 0x0C, 0x93, +0x20, 0x6A, 0x02, 0xF3, 0x40, 0x9A, 0x0C, 0x93, 0x41, 0xE0, 0x60, 0xD8, 0x33, 0x10, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF0, 0x58, 0x9A, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF0, 0x5C, 0x9A, 0x49, 0xE0, +0xE2, 0xF2, 0x5C, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x02, 0xF3, 0x40, 0x9A, 0x49, 0xE0, 0x40, 0x9A, 0x91, 0x67, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x0C, 0x93, 0x64, 0xEA, 0x43, 0x67, 0x04, 0x93, 0x2C, 0xEA, 0x2F, 0xE9, 0x6C, 0xE9, 0x1F, 0xF7, 0x00, 0x6B, 0x0C, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x2D, 0xEA, 0x01, 0x60, 0x05, 0x2B, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF0, 0x78, 0x9B, 0x04, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0x7C, 0x9B, +0x20, 0x6B, 0xE2, 0xF2, 0x7C, 0x9B, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF3, 0x60, 0x9B, 0x61, 0xE0, 0x40, 0xD8, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x03, 0xF0, 0x08, 0x6B, 0x43, 0xF2, 0x78, 0xDA, -0x05, 0xF1, 0x00, 0x4B, 0x43, 0xF2, 0x7C, 0xDA, -0x02, 0xF1, 0x00, 0x4B, 0x63, 0xF2, 0x60, 0xDA, -0x00, 0xF1, 0x00, 0x4B, 0x63, 0xF2, 0x64, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0x03, 0xF0, 0x08, 0x6B, 0xC3, 0xF1, 0x70, 0xDA, +0x05, 0xF1, 0x00, 0x4B, 0xC3, 0xF1, 0x74, 0xDA, +0x02, 0xF1, 0x00, 0x4B, 0xC3, 0xF1, 0x78, 0xDA, +0x00, 0xF1, 0x00, 0x4B, 0xC3, 0xF1, 0x7C, 0xDA, 0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, 0x1F, 0x6D, 0x8C, 0xED, 0x96, 0x34, 0x6C, 0xEC, 0x01, 0x74, 0x03, 0x6A, 0x0A, 0x60, 0x10, 0x24, @@ -70220,208 +48182,79 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x40, 0xA8, 0x01, 0x4A, 0x40, 0xC8, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x95, -0x05, 0x96, 0x63, 0xF3, 0xEC, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0x6E, 0xF6, 0x08, 0x4C, 0x80, 0x18, -0x8E, 0x4E, 0x0C, 0x93, 0x6C, 0xEA, 0x0D, 0x93, +0x05, 0x96, 0xE2, 0xF3, 0xF4, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xCA, 0xF4, 0x18, 0x4C, 0x80, 0x18, +0x3E, 0x45, 0x0C, 0x93, 0x6C, 0xEA, 0x0D, 0x93, 0x6E, 0xEA, 0x03, 0x22, 0x40, 0xA8, 0x23, 0xEA, 0xE3, 0x61, 0x40, 0xA8, 0x09, 0x97, 0x07, 0x90, 0x23, 0xEA, 0x08, 0x91, 0x58, 0x67, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF7, 0x60, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, 0x60, 0x9A, 0x7F, 0x6A, 0xFD, 0x67, 0x80, 0xA3, 0x8C, 0xEA, -0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF7, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, 0x44, 0x9A, 0xD2, 0xA7, 0x02, 0x6B, 0xA0, 0xA2, 0x01, 0x6C, 0x6B, 0xEB, 0x8C, 0xED, 0xCC, 0xEB, 0xAD, 0xEB, 0x72, 0xC7, 0x02, 0x6B, 0x70, 0xC7, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF7, 0x68, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, 0x68, 0x9B, 0x8F, 0xCF, 0xFF, 0x6A, 0x80, 0xAB, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF6, 0xD0, 0x9B, 0x4C, 0xEC, +0x20, 0x6B, 0x22, 0xF6, 0xCC, 0x9B, 0x4C, 0xEC, 0x94, 0x34, 0xD1, 0xE4, 0x60, 0xA4, 0x40, 0x6D, 0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF7, 0x6C, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, 0x6C, 0x9B, 0x80, 0xAB, 0x4C, 0xEC, 0x94, 0x34, 0xD1, 0xE4, 0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, -0x05, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, -0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x4C, 0xED, -0x07, 0x6B, 0xAC, 0xEB, 0x2C, 0x2B, 0xAE, 0x35, -0xFF, 0x4D, 0x4C, 0xED, 0xA6, 0x33, 0xAC, 0x35, -0x4C, 0xEB, 0xB5, 0xE4, 0x08, 0xD3, 0x07, 0xD5, -0x06, 0xD4, 0x00, 0x69, 0x1A, 0x10, 0x30, 0xF0, -0x20, 0x68, 0x07, 0x95, 0x80, 0xF2, 0x4C, 0x98, -0x04, 0x04, 0x08, 0x6E, 0x40, 0xEA, 0x07, 0x94, -0x06, 0x95, 0x80, 0xF2, 0x4C, 0x98, 0x08, 0x6E, -0x01, 0x49, 0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x98, -0x06, 0x94, 0x04, 0x05, 0x08, 0x6E, 0x40, 0xEA, -0xFF, 0x6A, 0x4C, 0xE9, 0x07, 0x92, 0xF8, 0x4A, -0x07, 0xD2, 0x06, 0x93, 0x08, 0x92, 0x08, 0x4B, -0x43, 0xE9, 0x06, 0xD3, 0xE0, 0x61, 0x0D, 0x97, -0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, -0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, -0x30, 0xF0, 0x20, 0x6A, 0x04, 0x67, 0x80, 0xF2, -0x4C, 0x9A, 0x11, 0xD5, 0xA7, 0x40, 0x04, 0x04, -0x02, 0x4D, 0x26, 0x67, 0x01, 0x6E, 0x40, 0xEA, -0x7D, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF3, -0x54, 0x9A, 0x90, 0xA3, 0x00, 0x6D, 0x40, 0xEA, -0x68, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, 0x31, 0x22, -0x69, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, -0x6C, 0xEA, 0x07, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0x20, 0xF3, 0x4C, 0x9A, 0xAF, 0xA0, 0x91, 0x67, -0x40, 0xEA, 0x63, 0xA0, 0x80, 0x6A, 0x4B, 0xEA, -0x6D, 0xEA, 0x41, 0x6B, 0x6B, 0xEB, 0x6C, 0xEA, -0x43, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF3, -0x40, 0x9A, 0x00, 0x6D, 0xC5, 0x67, 0x90, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF3, -0x48, 0x9A, 0x90, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x40, 0xF3, 0x40, 0x9A, 0x8D, 0xA8, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x7D, 0x67, -0x20, 0xF3, 0x54, 0x9A, 0x90, 0xA3, 0x01, 0x6D, -0x40, 0xEA, 0x88, 0xA0, 0x02, 0x6A, 0xFF, 0x6B, -0x8C, 0xEA, 0x7A, 0x22, 0x83, 0xA0, 0x7F, 0x6A, -0x2E, 0xA0, 0x8C, 0xEA, 0x43, 0xC0, 0x3F, 0x6A, -0x2C, 0xEA, 0x02, 0x2A, 0x3A, 0x31, 0x02, 0x10, -0x3A, 0x31, 0x01, 0x49, 0x11, 0x94, 0x00, 0x6A, -0x6C, 0xE9, 0x07, 0xD4, 0x06, 0xD2, 0x08, 0xD2, -0x0A, 0xD2, 0x61, 0x10, 0x0A, 0x94, 0x6F, 0x41, -0x8E, 0xEB, 0x17, 0x2B, 0x88, 0xA0, 0x10, 0x6B, -0x8C, 0xEB, 0x4C, 0xEB, 0x04, 0x23, 0x63, 0xA0, -0x40, 0x6A, 0x6D, 0xEA, 0x04, 0x10, 0x63, 0xA0, -0x41, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x43, 0xC0, -0x06, 0x93, 0x4E, 0xA0, 0x49, 0xE3, 0x09, 0xD2, -0x09, 0x94, 0xFF, 0x6A, 0x4C, 0xEC, 0x09, 0xD4, -0x07, 0x10, 0x63, 0xA0, 0x41, 0x6A, 0x4B, 0xEA, -0x6C, 0xEA, 0x43, 0xC0, 0x40, 0x6A, 0x09, 0xD2, -0x68, 0xA0, 0x04, 0x6A, 0x6C, 0xEA, 0x0D, 0x2A, -0x69, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, -0x6C, 0xEA, 0x07, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0x20, 0xF3, 0x4C, 0x9A, 0x07, 0x94, 0x09, 0x95, -0x40, 0xEA, 0x08, 0x93, 0xA5, 0xA8, 0x30, 0xF0, -0x20, 0x6A, 0x09, 0x96, 0x20, 0xF3, 0x40, 0x9A, -0xB5, 0xE3, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xED, -0x90, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x20, 0xF3, 0x48, 0x9A, 0x90, 0x67, 0x40, 0xEA, -0x7D, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x90, 0xA3, -0x20, 0xF3, 0x54, 0x9A, 0x01, 0x6D, 0x40, 0xEA, -0x08, 0x92, 0xFF, 0xF7, 0x1F, 0x6B, 0x0A, 0x94, -0x40, 0x4A, 0x6C, 0xEA, 0x08, 0xD2, 0x06, 0x92, -0x01, 0x4C, 0x0A, 0xD4, 0xC0, 0x4A, 0x06, 0xD2, -0x07, 0x94, 0x06, 0x93, 0xFF, 0x6A, 0x40, 0x4C, -0x4C, 0xEB, 0x07, 0xD4, 0x06, 0xD3, 0x0A, 0x93, -0xFF, 0x6A, 0x4C, 0xEB, 0x23, 0xEB, 0x9A, 0x61, -0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x01, 0x74, 0x11, 0x60, -0x05, 0x24, 0x02, 0x74, 0x03, 0x60, 0x03, 0x74, -0x0C, 0x60, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF7, 0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0x23, 0xF3, 0x84, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, -0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, -0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF3, -0x80, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF3, 0xBC, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0x03, 0xF3, 0x9C, 0x9C, 0x60, 0x9D, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x8C, 0xEB, -0x42, 0xF6, 0x64, 0xDA, 0x60, 0x9D, 0x8C, 0xEB, -0x42, 0xF6, 0x70, 0xDA, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, 0x5C, 0x9A, -0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, -0x5C, 0x9A, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x40, 0x98, -0x82, 0x46, 0x26, 0x67, 0x40, 0xEA, 0x04, 0xD2, -0xC0, 0xF3, 0x40, 0x98, 0x83, 0x41, 0x40, 0xEA, -0x05, 0xD2, 0xC0, 0xF3, 0x40, 0x98, 0x81, 0x41, -0x40, 0xEA, 0x06, 0xD2, 0xC0, 0xF3, 0x40, 0x98, -0x91, 0x67, 0x40, 0xEA, 0x05, 0x94, 0x03, 0x6B, -0x8C, 0xEB, 0x04, 0x94, 0xA7, 0x43, 0x0F, 0x6B, -0x8C, 0xEB, 0x6C, 0x33, 0x11, 0x4D, 0x75, 0xE5, -0x06, 0x93, 0x60, 0x34, 0x4D, 0xEC, 0xE7, 0xF7, -0x1F, 0x6A, 0x4C, 0xEC, 0x30, 0xF0, 0x20, 0x6A, -0x20, 0xF4, 0x70, 0x9A, 0x91, 0xE5, 0x40, 0xEB, -0x30, 0xF0, 0x20, 0x6B, 0x89, 0xF3, 0x7C, 0x9B, -0x29, 0xE2, 0x43, 0xEB, 0x02, 0x60, 0x6F, 0xEB, -0x69, 0xE2, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, -0x06, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0xC0, 0xF3, 0x40, 0x98, 0x82, 0x45, 0x25, 0x67, -0x40, 0xEA, 0x04, 0xD2, 0xC0, 0xF3, 0x40, 0x98, -0x83, 0x41, 0x18, 0x49, 0x40, 0xEA, 0x03, 0x6B, -0x4C, 0xEB, 0x04, 0x92, 0x0F, 0x6C, 0x65, 0xE1, -0x4C, 0xEC, 0x8C, 0x34, 0x89, 0xE1, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x20, 0xF4, 0x4C, 0x9A, 0x85, 0x67, 0x40, 0xEA, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFF, 0x6A, 0x8C, 0xEA, 0x0B, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF6, 0x68, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0x63, 0xF1, 0x84, 0x9C, 0x40, 0x9B, -0x8D, 0xEA, 0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF6, 0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6C, -0x04, 0xF0, 0x80, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, -0x40, 0xDB, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xEC, -0x07, 0x6B, 0x8C, 0xEB, 0x4C, 0xED, 0x8E, 0x34, -0x42, 0xF4, 0x10, 0x4C, 0x36, 0x25, 0x1F, 0xF7, -0x00, 0x6D, 0x8C, 0xED, 0x02, 0xF0, 0x00, 0x75, -0x01, 0x60, 0x21, 0x2D, 0x1F, 0xF7, 0x00, 0x6A, -0x8C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, -0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0xB8, 0x9A, 0xB5, 0xE4, 0x80, 0xA5, 0x0B, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0xB8, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x5C, 0x9A, -0xB5, 0xE4, 0x51, 0xE4, 0x80, 0xA4, 0x00, 0xF6, -0x80, 0x34, 0x01, 0x6A, 0x00, 0xF6, 0x83, 0x34, -0x44, 0xEB, 0x8D, 0xEA, 0x36, 0x10, 0x30, 0xF0, -0x20, 0x6D, 0x23, 0xF0, 0xBC, 0x9D, 0x01, 0x6E, -0xC4, 0xEB, 0xB1, 0xE4, 0xA0, 0xA4, 0x00, 0xF6, -0xA0, 0x35, 0x00, 0xF6, 0xA3, 0x35, 0xCD, 0xED, -0x3A, 0x10, 0x1F, 0xF7, 0x00, 0x6D, 0x8C, 0xED, -0x02, 0xF0, 0x00, 0x75, 0x01, 0x60, 0x25, 0x2D, +0x05, 0x63, 0x00, 0xEF, 0xFF, 0x6A, 0x8C, 0xEA, +0x0B, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, +0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF3, +0x84, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x0A, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, 0x68, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF7, 0x88, 0x9C, +0x40, 0x9B, 0x8C, 0xEA, 0x40, 0xDB, 0x20, 0xE8, +0xFF, 0x6A, 0x4C, 0xEC, 0x07, 0x6B, 0x8C, 0xEB, +0x4C, 0xED, 0x8E, 0x34, 0x42, 0xF4, 0x10, 0x4C, +0x36, 0x25, 0x1F, 0xF7, 0x00, 0x6D, 0x8C, 0xED, +0x02, 0xF0, 0x00, 0x75, 0x01, 0x60, 0x21, 0x2D, 0x1F, 0xF7, 0x00, 0x6A, 0x8C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x07, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF0, 0xB8, 0x9A, 0xB5, 0xE4, +0x20, 0x6A, 0xE2, 0xF2, 0xBC, 0x9A, 0xB5, 0xE4, 0x80, 0xA5, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF0, 0xB8, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF0, 0x5C, 0x9A, 0xB5, 0xE4, 0x51, 0xE4, -0x80, 0xA4, 0x01, 0x6A, 0x00, 0xF6, 0x80, 0x34, -0x44, 0xEB, 0x00, 0xF6, 0x83, 0x34, 0x4F, 0xEA, -0x8C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x40, 0xC5, -0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6D, 0x23, 0xF0, -0xBC, 0x9D, 0x01, 0x6E, 0xC4, 0xEB, 0xB1, 0xE4, -0xA0, 0xA4, 0xCF, 0xEE, 0x00, 0xF6, 0xA0, 0x35, -0x00, 0xF6, 0xA3, 0x35, 0xCC, 0xED, 0x4C, 0xED, -0xA0, 0xC4, 0x20, 0xE8, 0x01, 0x6A, 0x20, 0xE8, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEE, 0x4C, 0xEF, -0x24, 0x67, 0x0D, 0xD5, 0x06, 0xD6, 0x04, 0xD7, -0x2C, 0x27, 0x00, 0x68, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x40, 0x9B, 0x91, 0x67, 0x40, 0xEA, -0x06, 0x93, 0x6E, 0xEA, 0x11, 0x2A, 0x0D, 0x95, -0x42, 0x41, 0x82, 0x67, 0x05, 0xD2, 0x80, 0x18, -0x67, 0x3B, 0x01, 0x72, 0x1C, 0x60, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, 0x81, 0x41, -0x40, 0xEA, 0x05, 0x93, 0x45, 0xE3, 0x08, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, -0x81, 0x41, 0x02, 0x49, 0x40, 0xEA, 0x45, 0xE1, -0xFF, 0xF7, 0x1F, 0x6B, 0x02, 0x48, 0x6C, 0xE8, -0x41, 0xE0, 0x04, 0x92, 0x6C, 0xE8, 0x43, 0xE8, -0xD5, 0x61, 0x01, 0x69, 0x2B, 0xE9, 0x51, 0x67, -0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xED, 0x80, 0x18, -0xA4, 0x12, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xE2, 0xF2, 0xBC, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF3, 0x40, 0x9A, 0xB5, 0xE4, 0x51, 0xE4, +0x80, 0xA4, 0x00, 0xF6, 0x80, 0x34, 0x01, 0x6A, +0x00, 0xF6, 0x83, 0x34, 0x44, 0xEB, 0x8D, 0xEA, +0x36, 0x10, 0x30, 0xF0, 0x20, 0x6D, 0x02, 0xF3, +0xA0, 0x9D, 0x01, 0x6E, 0xC4, 0xEB, 0xB1, 0xE4, +0xA0, 0xA4, 0x00, 0xF6, 0xA0, 0x35, 0x00, 0xF6, +0xA3, 0x35, 0xCD, 0xED, 0x3A, 0x10, 0x1F, 0xF7, +0x00, 0x6D, 0x8C, 0xED, 0x02, 0xF0, 0x00, 0x75, +0x01, 0x60, 0x25, 0x2D, 0x1F, 0xF7, 0x00, 0x6A, +0x8C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, +0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, +0xBC, 0x9A, 0xB5, 0xE4, 0x80, 0xA5, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0xBC, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF3, 0x40, 0x9A, +0xB5, 0xE4, 0x51, 0xE4, 0x80, 0xA4, 0x01, 0x6A, +0x00, 0xF6, 0x80, 0x34, 0x44, 0xEB, 0x00, 0xF6, +0x83, 0x34, 0x4F, 0xEA, 0x8C, 0xEA, 0xFF, 0x6B, +0x6C, 0xEA, 0x40, 0xC5, 0x20, 0xE8, 0x30, 0xF0, +0x20, 0x6D, 0x02, 0xF3, 0xA0, 0x9D, 0x01, 0x6E, +0xC4, 0xEB, 0xB1, 0xE4, 0xA0, 0xA4, 0xCF, 0xEE, +0x00, 0xF6, 0xA0, 0x35, 0x00, 0xF6, 0xA3, 0x35, +0xCC, 0xED, 0x4C, 0xED, 0xA0, 0xC4, 0x20, 0xE8, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x6C, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF3, 0x6C, 0x9B, 0xFF, 0x6A, 0x25, 0x67, 0x60, 0xA3, 0xFF, 0xF7, 0x1F, 0x68, 0x4C, 0xE9, 0x6C, 0xEA, 0x8C, 0xE8, -0x04, 0xD2, 0x00, 0x18, 0x84, 0xD4, 0x0F, 0x2A, +0x04, 0xD2, 0x00, 0x18, 0xAF, 0xC6, 0x0F, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6C, 0xFF, 0x6D, 0x49, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, 0x40, 0xEA, 0x01, 0x72, 0x09, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x54, 0x9A, 0x90, 0x67, 0x01, 0x6D, 0xD1, 0x67, 0x03, 0x6F, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x68, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF7, 0x74, 0x9A, 0xFF, 0x6C, 0x08, 0x6D, 0x40, 0xA3, 0x4A, 0x6E, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x95, 0xA0, 0xF2, @@ -70979,1006 +48812,4511 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0xDC, 0xE0, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, -0x00, 0x6D, 0xC5, 0x67, 0xFF, 0x6C, 0x40, 0xEA, -0x01, 0x6C, 0x0C, 0x6D, 0x00, 0x18, 0x22, 0xC6, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0xA0, 0xF2, 0x50, 0x9A, 0xFF, 0x6C, 0xA4, 0x67, -0x2F, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0x20, 0xF4, 0x5C, 0x9A, 0x40, 0xEA, 0x00, 0x18, -0xF2, 0xE0, 0x01, 0x6C, 0x08, 0x6D, 0x00, 0x18, -0x22, 0xC6, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, -0x12, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF6, -0x85, 0xA2, 0x30, 0xF0, 0x20, 0x6D, 0x30, 0xF0, -0x20, 0x6E, 0x30, 0xF0, 0x20, 0x6F, 0xCB, 0xF6, -0x00, 0x4D, 0xCB, 0xF6, 0x01, 0x4E, 0xCB, 0xF6, -0x02, 0x4F, 0x80, 0x18, 0x58, 0x03, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xF5, 0x63, 0x15, 0x62, -0x14, 0xD1, 0x13, 0xD0, 0x1A, 0x92, 0x16, 0xD4, -0x17, 0xD5, 0x10, 0xD2, 0x10, 0x93, 0xFF, 0x6A, -0x18, 0xD6, 0x4C, 0xEB, 0x10, 0xD3, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF4, 0x90, 0x9B, 0xE2, 0xF4, -0x10, 0x4B, 0x62, 0xAB, 0x06, 0xD4, 0x9D, 0x67, -0x6E, 0xCC, 0x00, 0x6B, 0x0A, 0xD3, 0x0D, 0xD3, -0x0B, 0xD3, 0x0C, 0xD3, 0x01, 0x6B, 0x6B, 0xEB, -0x20, 0xF0, 0x68, 0xC4, 0x02, 0x6B, 0x20, 0xF0, -0x69, 0xC4, 0x05, 0x6B, 0x6B, 0xEB, 0x20, 0xF0, -0x77, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF4, -0x88, 0x9B, 0xE2, 0xF4, 0x08, 0x4B, 0x64, 0xA3, -0xBD, 0x67, 0x04, 0xD4, 0x74, 0xC5, 0x30, 0xF0, -0x20, 0x6B, 0xE2, 0xF4, 0x80, 0x9B, 0xE2, 0xF4, -0x00, 0x4B, 0x4C, 0xEF, 0x08, 0xD4, 0x82, 0xAB, -0x66, 0xA3, 0x0F, 0xD7, 0x92, 0xCD, 0x20, 0xF0, -0x66, 0xC5, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, -0x6C, 0x9B, 0x60, 0xA3, 0x6C, 0xEA, 0x11, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x54, 0x9A, -0x02, 0xF0, 0x00, 0x6B, 0x40, 0x9A, 0x6C, 0xEA, -0x1C, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, -0x50, 0x9A, 0x00, 0x6C, 0xFF, 0x6D, 0x59, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, -0x5C, 0x9A, 0x00, 0x68, 0x40, 0xEA, 0x01, 0x72, -0x19, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0xA0, 0xF2, 0x54, 0x9A, 0xCB, 0xF6, -0x82, 0xA3, 0x01, 0x6D, 0x18, 0x6E, 0xF0, 0x67, -0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0xA0, 0xF2, 0x54, 0x9A, 0xCB, 0xF6, -0x82, 0xA3, 0x01, 0x6D, 0x18, 0x6E, 0x00, 0x6F, -0x40, 0xEA, 0x02, 0x67, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF1, 0x50, 0x9A, 0xFF, 0x6F, 0x49, 0xE0, -0x80, 0xA2, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, -0x4C, 0x9A, 0xEC, 0xEC, 0x49, 0xE0, 0xA0, 0xA2, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x58, 0x9A, -0xEC, 0xED, 0x49, 0xE0, 0xC0, 0xA2, 0xEC, 0xEE, -0x80, 0x18, 0xC4, 0x06, 0x10, 0x95, 0x22, 0x67, -0x87, 0x40, 0x0E, 0xD2, 0x68, 0x49, 0xFF, 0x6A, -0x29, 0x4C, 0x4C, 0xE9, 0x80, 0x18, 0x39, 0x0D, -0x0F, 0x92, 0x18, 0x93, 0x03, 0x4A, 0x4C, 0x32, -0x49, 0xE3, 0x42, 0xA2, 0x0C, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF1, -0x44, 0x9A, 0xC3, 0xF1, 0x9C, 0x9C, 0x17, 0x93, -0x49, 0xE0, 0x91, 0xE0, 0x0F, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF1, 0x64, 0x9B, 0x06, 0x02, -0x00, 0xF0, 0x1E, 0x04, 0x6D, 0xE0, 0xA0, 0xA2, -0x01, 0x4A, 0x8A, 0xEA, 0xA0, 0xC3, 0x01, 0x4B, -0xFA, 0x61, 0x06, 0x10, 0xA0, 0xA3, 0x01, 0x4B, -0xA0, 0xC2, 0x01, 0x4A, 0x8A, 0xEA, 0xFA, 0x61, -0x18, 0x94, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, -0x48, 0x9A, 0x75, 0xA4, 0x49, 0xE0, 0x29, 0xE2, -0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, -0x4C, 0x9A, 0x76, 0xA4, 0x49, 0xE0, 0x29, 0xE2, -0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, -0x40, 0x9A, 0x01, 0x6B, 0x49, 0xE0, 0x29, 0xE2, -0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, -0x44, 0x9A, 0x79, 0xA4, 0x49, 0xE0, 0x29, 0xE2, -0x60, 0xC2, 0x0F, 0x92, 0x03, 0x4A, 0x4C, 0x32, -0x49, 0xE4, 0xA7, 0xA2, 0x66, 0xA2, 0xE8, 0xA2, -0x44, 0xA2, 0xFD, 0x65, 0x56, 0x2A, 0x0F, 0x96, -0xCC, 0x32, 0x49, 0xE4, 0x5D, 0xA2, 0x01, 0x72, -0x02, 0x61, 0x00, 0x6C, 0x1A, 0x10, 0x1C, 0x72, -0x4C, 0x61, 0xFB, 0x17, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF1, 0xC8, 0x9A, 0x65, 0xF1, 0x5C, 0x9D, -0x30, 0xF0, 0x20, 0x6D, 0x03, 0xF1, 0xA8, 0x9D, -0xD9, 0xE0, 0x39, 0xE6, 0x49, 0xE5, 0x89, 0xE2, -0xA0, 0xA2, 0xFF, 0x6A, 0x99, 0xE6, 0xAC, 0xEA, -0x40, 0xC6, 0x01, 0x4C, 0xFF, 0xF7, 0x1F, 0x6A, -0x4C, 0xEC, 0x1C, 0x6D, 0xB8, 0xEF, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x12, 0xED, -0x55, 0xE5, 0x85, 0xF1, 0x40, 0xAD, 0x43, 0xEC, -0xDD, 0x61, 0xFF, 0xF7, 0x1F, 0x6C, 0x0C, 0x4A, -0x8C, 0xEA, 0x9D, 0x67, 0x20, 0xF0, 0xA0, 0xA4, -0x00, 0x6C, 0x02, 0x4D, 0x13, 0x10, 0x30, 0xF0, -0x20, 0x6E, 0x03, 0xF1, 0xC8, 0x9E, 0xD9, 0xE2, -0x19, 0xE6, 0x39, 0xE6, 0x99, 0xE6, 0x10, 0xD6, -0xDD, 0x67, 0x99, 0xE6, 0x20, 0xF0, 0xE0, 0xA6, -0x10, 0x96, 0x01, 0x4C, 0xE0, 0xC6, 0xFF, 0xF7, -0x1F, 0x6E, 0xCC, 0xEC, 0xA2, 0xEC, 0xEB, 0x61, -0xFD, 0x67, 0x20, 0xF0, 0x80, 0xA7, 0x89, 0xE2, -0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEA, 0x02, 0x4A, -0x76, 0x10, 0xFF, 0x73, 0x00, 0x6C, 0x0C, 0x6A, -0x17, 0x61, 0x4B, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF1, 0xC8, 0x9A, 0x40, 0x9D, 0x30, 0xF0, -0x20, 0x6D, 0x03, 0xF1, 0xA8, 0x9D, 0xD9, 0xE0, -0x39, 0xE6, 0x49, 0xE5, 0x89, 0xE2, 0xA0, 0xA2, -0xFF, 0x6A, 0x99, 0xE6, 0xAC, 0xEA, 0x40, 0xC6, -0x01, 0x4C, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEC, -0x30, 0xF0, 0x20, 0x6A, 0x50, 0xF5, 0xA1, 0x43, -0x46, 0xF5, 0x18, 0x4A, 0xAC, 0x35, 0x55, 0xE5, -0x42, 0xAD, 0x43, 0xEC, 0xDF, 0x61, 0xFF, 0xF7, -0x1F, 0x6C, 0x0C, 0x4A, 0x8C, 0xEA, 0x0F, 0x94, -0x18, 0x95, 0x03, 0x4C, 0x8C, 0x34, 0x91, 0xE5, -0x83, 0xA4, 0x1F, 0x24, 0xDD, 0x67, 0xB0, 0xA6, -0x00, 0x6C, 0x01, 0x4D, 0x10, 0x10, 0x30, 0xF0, -0x20, 0x6E, 0x03, 0xF1, 0xC8, 0x9E, 0xFD, 0x67, -0x9D, 0xE7, 0xD9, 0xE2, 0x19, 0xE6, 0xF0, 0xA7, -0x39, 0xE6, 0x99, 0xE6, 0xE0, 0xC6, 0x01, 0x4C, -0xFF, 0xF7, 0x1F, 0x6E, 0xCC, 0xEC, 0xA2, 0xEC, -0xEE, 0x61, 0xBD, 0x67, 0x90, 0xA5, 0x89, 0xE2, -0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEA, 0x01, 0x4A, -0x8C, 0xEA, 0x00, 0x6C, 0x14, 0x10, 0x30, 0xF0, -0x20, 0x6E, 0x03, 0xF1, 0xE8, 0x9E, 0x65, 0xF1, -0xAC, 0x9D, 0xF9, 0xE0, 0xB5, 0xE7, 0x95, 0xE5, -0xE0, 0xA5, 0x39, 0xE6, 0x59, 0xE6, 0xFF, 0x6D, -0x99, 0xE6, 0xEC, 0xED, 0xA0, 0xC6, 0x01, 0x4C, -0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEC, 0x1C, 0x6D, -0xFF, 0x67, 0xB8, 0xEF, 0x30, 0xF0, 0x20, 0x6E, -0x46, 0xF5, 0x18, 0x4E, 0x12, 0xED, 0xD5, 0xE5, -0x65, 0xF1, 0xD0, 0xAD, 0xC3, 0xEC, 0xDF, 0x61, -0xC9, 0xE2, 0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEA, -0x0F, 0x94, 0x18, 0x95, 0x03, 0x4C, 0x8C, 0x34, -0x91, 0xE5, 0x84, 0xA4, 0x25, 0x2C, 0x0F, 0x96, -0xCC, 0x34, 0x91, 0xE5, 0x9D, 0xA4, 0x01, 0x74, -0x00, 0x6C, 0x1E, 0x61, 0x14, 0x10, 0x30, 0xF0, -0x20, 0x6D, 0x03, 0xF1, 0xC8, 0x9D, 0xE5, 0xF2, -0x68, 0x9B, 0xD5, 0xE0, 0x6D, 0xE6, 0x8D, 0xE3, -0xC0, 0xA3, 0x35, 0xE5, 0x55, 0xE5, 0xFF, 0x6B, -0x95, 0xE5, 0xCC, 0xEB, 0x60, 0xC5, 0x01, 0x4C, -0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEC, 0x30, 0xF0, -0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, 0xE5, 0xF2, -0xAC, 0xAB, 0xA3, 0xEC, 0xE4, 0x61, 0x2B, 0x10, -0x0F, 0x94, 0x18, 0x97, 0x03, 0x4C, 0x8C, 0x34, -0x91, 0xE7, 0x84, 0xA4, 0x26, 0x2C, 0x0F, 0x95, -0xAC, 0x34, 0x91, 0xE7, 0x9D, 0xA4, 0x1C, 0x74, -0x00, 0x6C, 0x1F, 0x61, 0x14, 0x10, 0x30, 0xF0, -0x20, 0x6D, 0x03, 0xF1, 0xC8, 0x9D, 0xE5, 0xF2, -0x70, 0x9B, 0xD5, 0xE0, 0x6D, 0xE6, 0x8D, 0xE3, -0xC0, 0xA3, 0x35, 0xE5, 0x55, 0xE5, 0xFF, 0x6B, -0x95, 0xE5, 0xCC, 0xEB, 0x60, 0xC5, 0x01, 0x4C, -0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEC, 0x30, 0xF0, -0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, 0xE5, 0xF2, -0xB4, 0xAB, 0xA3, 0xEC, 0xE4, 0x61, 0xA9, 0xE2, -0x9C, 0x10, 0x0F, 0x94, 0x18, 0x96, 0x03, 0x4C, -0x8C, 0x34, 0x91, 0xE6, 0x84, 0xA4, 0x5C, 0x2C, -0x0F, 0x97, 0xEC, 0x34, 0x91, 0xE6, 0x9D, 0xA4, -0x21, 0x74, 0x00, 0x6C, 0x55, 0x61, 0x14, 0x10, -0x30, 0xF0, 0x20, 0x6D, 0x65, 0xF1, 0xD4, 0x9E, -0x03, 0xF1, 0xA8, 0x9D, 0xBD, 0xE0, 0xD5, 0xE5, -0x95, 0xE5, 0xC0, 0xA5, 0x3D, 0xE7, 0x5D, 0xE7, -0xFF, 0x6D, 0x9D, 0xE7, 0xCC, 0xED, 0xA0, 0xC7, -0x01, 0x4C, 0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEC, -0x1C, 0x6E, 0xFF, 0x67, 0xD8, 0xEF, 0x30, 0xF0, -0x20, 0x6D, 0x46, 0xF5, 0x18, 0x4D, 0x12, 0xEE, -0xB9, 0xE6, 0x65, 0xF1, 0xF8, 0xAE, 0xE3, 0xEC, -0xDF, 0x61, 0xE9, 0xE2, 0xFF, 0xF7, 0x1F, 0x6C, -0xFF, 0x73, 0x8C, 0xEA, 0xC0, 0xF0, 0x06, 0x60, -0x0F, 0x94, 0x18, 0x97, 0x03, 0x4C, 0x8C, 0x34, -0x91, 0xE7, 0x83, 0xA4, 0x11, 0x24, 0x40, 0xF5, -0x11, 0x4B, 0x30, 0xF0, 0x20, 0x6C, 0x6C, 0x33, -0xAD, 0xE3, 0xE3, 0xF1, 0x8C, 0x9C, 0x64, 0xA3, -0x65, 0xF1, 0xB0, 0xA6, 0x91, 0xE0, 0x31, 0xE4, -0xAD, 0xE3, 0x51, 0xE4, 0x0A, 0x4B, 0x10, 0x10, -0x40, 0xF5, 0x11, 0x4B, 0x30, 0xF0, 0x20, 0x6C, -0x6C, 0x33, 0xAD, 0xE3, 0xE3, 0xF1, 0x8C, 0x9C, -0x64, 0xA3, 0x65, 0xF1, 0xB0, 0xA6, 0x91, 0xE0, -0x31, 0xE4, 0xAD, 0xE3, 0x51, 0xE4, 0x05, 0x4B, -0xFF, 0x6D, 0xAC, 0xEB, 0x60, 0xC4, 0x9A, 0x10, -0x0F, 0x94, 0x18, 0x95, 0x03, 0x4C, 0x8C, 0x34, -0x91, 0xE5, 0x84, 0xA4, 0x36, 0x2C, 0x0F, 0x96, -0xCC, 0x34, 0x91, 0xE5, 0x9D, 0xA4, 0x10, 0x74, -0x30, 0x61, 0x1C, 0x6C, 0xBF, 0x67, 0x98, 0xED, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, -0x12, 0xEC, 0x6D, 0xE4, 0x85, 0xF1, 0xE4, 0xA3, -0x00, 0x6B, 0x13, 0x10, 0x30, 0xF0, 0x20, 0x6C, -0xA1, 0x9D, 0x03, 0xF1, 0x88, 0x9C, 0x99, 0xE0, -0xB1, 0xE4, 0x71, 0xE4, 0xA0, 0xA4, 0x39, 0xE6, -0x59, 0xE6, 0xFF, 0x6C, 0x79, 0xE6, 0xAC, 0xEC, -0x80, 0xC6, 0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6C, -0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0x50, 0xF5, -0xA4, 0x47, 0x46, 0xF5, 0x18, 0x4C, 0xAC, 0x35, -0x95, 0xE5, 0x84, 0xAD, 0x83, 0xEB, 0xE2, 0x61, -0x89, 0xE2, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, -0x5D, 0x10, 0x0F, 0x94, 0x18, 0x96, 0x03, 0x4C, -0x8C, 0x34, 0x91, 0xE6, 0x84, 0xA4, 0x56, 0x2C, -0x0F, 0x97, 0xEC, 0x34, 0x91, 0xE6, 0x9D, 0xA4, -0x0C, 0x74, 0x00, 0x6C, 0x4F, 0x61, 0x14, 0x10, -0x30, 0xF0, 0x20, 0x6E, 0x03, 0xF1, 0xE8, 0x9E, -0xE5, 0xF2, 0xB8, 0x9D, 0xF9, 0xE0, 0xB5, 0xE7, -0x95, 0xE5, 0xE0, 0xA5, 0x39, 0xE6, 0x59, 0xE6, -0xFF, 0x6D, 0x99, 0xE6, 0xEC, 0xED, 0xA0, 0xC6, -0x01, 0x4C, 0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEC, -0x30, 0xF0, 0x20, 0x6D, 0x46, 0xF5, 0x18, 0x4D, -0xE5, 0xF2, 0xDC, 0xAD, 0xC3, 0xEC, 0xE4, 0x61, -0xC9, 0xE2, 0xFF, 0xF7, 0x1F, 0x6C, 0xFF, 0x73, -0x8C, 0xEA, 0x23, 0x60, 0x0F, 0x94, 0x18, 0x96, -0x03, 0x4C, 0x8C, 0x34, 0x91, 0xE6, 0x83, 0xA4, -0x0E, 0x24, 0x30, 0xF0, 0x20, 0x6C, 0x40, 0xF5, -0x11, 0x4B, 0xE3, 0xF1, 0x8C, 0x9C, 0x6C, 0x33, -0xAD, 0xE3, 0x64, 0xA3, 0x91, 0xE0, 0x31, 0xE4, -0x51, 0xE4, 0x11, 0x4B, 0x79, 0x17, 0x30, 0xF0, -0x20, 0x6C, 0x40, 0xF5, 0x11, 0x4B, 0xE3, 0xF1, -0x8C, 0x9C, 0x6C, 0x33, 0xAD, 0xE3, 0x64, 0xA3, -0x91, 0xE0, 0x31, 0xE4, 0x51, 0xE4, 0x0C, 0x4B, -0x6B, 0x17, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF1, -0x6C, 0x9B, 0x0C, 0x6C, 0x6D, 0xE0, 0x2D, 0xE3, -0x4D, 0xE3, 0x80, 0xC3, 0x18, 0x97, 0x79, 0xA7, -0x03, 0x73, 0x00, 0xF1, 0x0F, 0x61, 0x7F, 0xA7, -0x1C, 0x6D, 0x9E, 0xA7, 0xFB, 0x65, 0xDF, 0x67, -0xB8, 0xEE, 0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF5, -0x11, 0x4C, 0x0F, 0x96, 0x46, 0xF5, 0x18, 0x4B, -0x8C, 0x34, 0x71, 0xE4, 0x03, 0x4E, 0xCC, 0x36, -0xD9, 0xE7, 0xC3, 0xA6, 0x12, 0xED, 0x75, 0xE5, -0x64, 0xA4, 0x65, 0xF1, 0x90, 0xA5, 0xFF, 0x6D, -0x8D, 0xE3, 0x87, 0x43, 0x0F, 0x4C, 0x05, 0x4B, -0xAC, 0xEC, 0xAC, 0xEB, 0x04, 0x26, 0x05, 0x4C, -0x05, 0x4B, 0xAC, 0xEC, 0xAC, 0xEB, 0x30, 0xF0, -0x20, 0x6D, 0x03, 0xF1, 0xA8, 0x9D, 0x40, 0x6E, -0xCB, 0xEE, 0xB5, 0xE0, 0x35, 0xE5, 0x55, 0xE5, -0xC0, 0xC5, 0x30, 0xF0, 0x20, 0x6D, 0xA3, 0xF1, -0xAC, 0x9D, 0xB5, 0xE0, 0x35, 0xE5, 0x55, 0xE5, -0x80, 0xC5, 0x02, 0x4A, 0xFF, 0xF7, 0x1F, 0x6D, -0xAC, 0xEA, 0x10, 0xD3, 0x00, 0x6D, 0x14, 0x10, -0x30, 0xF0, 0x20, 0x6E, 0x65, 0xF1, 0xF4, 0x9F, -0x03, 0xF1, 0xC8, 0x9E, 0xCD, 0xE0, 0xF9, 0xE6, -0xB9, 0xE6, 0xE0, 0xA6, 0x2D, 0xE3, 0x4D, 0xE3, -0xFF, 0x6E, 0xAD, 0xE3, 0xEC, 0xEE, 0xC0, 0xC3, -0x01, 0x4D, 0xFF, 0xF7, 0x1F, 0x6E, 0xCC, 0xED, -0x1C, 0x6F, 0x7F, 0x67, 0xF8, 0xEB, 0x30, 0xF0, -0x20, 0x6E, 0x46, 0xF5, 0x18, 0x4E, 0x12, 0xEF, -0xDD, 0xE7, 0x65, 0xF1, 0xD8, 0xAF, 0xC3, 0xED, -0xDF, 0x61, 0xC9, 0xE2, 0x30, 0xF0, 0x20, 0x6E, -0xE3, 0xF1, 0xF0, 0x9E, 0xFF, 0xF7, 0x1F, 0x6D, -0xAC, 0xEA, 0xFD, 0xE0, 0x3D, 0xE7, 0x40, 0x6E, -0x5D, 0xE7, 0xCB, 0xEE, 0x10, 0x93, 0xC0, 0xC7, -0x30, 0xF0, 0x20, 0x6F, 0xE3, 0xF1, 0xEC, 0x9F, -0xFD, 0xE0, 0x3D, 0xE7, 0x5D, 0xE7, 0x60, 0xC7, -0x30, 0xF0, 0x20, 0x6F, 0x03, 0xF1, 0xE8, 0x9F, -0xFD, 0xE0, 0x3D, 0xE7, 0x5D, 0xE7, 0xC0, 0xC7, -0x30, 0xF0, 0x20, 0x6E, 0xA3, 0xF1, 0xCC, 0x9E, -0xD9, 0xE0, 0x39, 0xE6, 0x59, 0xE6, 0x02, 0x4A, -0x80, 0xC6, 0xAC, 0xEA, 0x00, 0x6C, 0x13, 0x10, -0x30, 0xF0, 0x20, 0x6E, 0x03, 0xF1, 0xE8, 0x9E, -0xA1, 0x9D, 0xF9, 0xE0, 0xB5, 0xE7, 0x95, 0xE5, -0xE0, 0xA5, 0x39, 0xE6, 0x59, 0xE6, 0xFF, 0x6D, -0x99, 0xE6, 0xEC, 0xED, 0xA0, 0xC6, 0x01, 0x4C, -0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEC, 0x1C, 0x6D, -0xFF, 0x67, 0xB8, 0xEF, 0x30, 0xF0, 0x20, 0x6E, -0x46, 0xF5, 0x18, 0x4E, 0x12, 0xED, 0xD5, 0xE5, -0x85, 0xF1, 0xA4, 0xA5, 0x40, 0xF5, 0x14, 0x4D, -0xAC, 0x35, 0xD5, 0xE5, 0xC4, 0xAD, 0xC3, 0xEC, -0xDB, 0x61, 0xFF, 0xF7, 0x1F, 0x6C, 0xC9, 0xE2, -0x8C, 0xEA, 0x00, 0x6C, 0x14, 0x10, 0x30, 0xF0, -0x20, 0x6E, 0x03, 0xF1, 0xE8, 0x9E, 0x65, 0xF1, -0xBC, 0x9D, 0xF9, 0xE0, 0xB5, 0xE7, 0x95, 0xE5, -0xE0, 0xA5, 0x39, 0xE6, 0x59, 0xE6, 0xFF, 0x6D, -0x99, 0xE6, 0xEC, 0xED, 0xA0, 0xC6, 0x01, 0x4C, -0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEC, 0x1C, 0x6D, -0xFF, 0x67, 0xB8, 0xEF, 0x30, 0xF0, 0x20, 0x6E, -0x46, 0xF5, 0x18, 0x4E, 0x12, 0xED, 0xD5, 0xE5, -0x85, 0xF1, 0xC0, 0xAD, 0xC3, 0xEC, 0xDF, 0x61, -0x30, 0xF0, 0x20, 0x6D, 0x03, 0xF1, 0xA8, 0x9D, -0xC9, 0xE2, 0xFF, 0xF7, 0x1F, 0x6C, 0xB5, 0xE0, -0x8C, 0xEA, 0x35, 0xE5, 0x40, 0x6E, 0x55, 0xE5, -0xCB, 0xEE, 0xC0, 0xC5, 0x30, 0xF0, 0x20, 0x6D, -0xA3, 0xF1, 0xAC, 0x9D, 0xB5, 0xE0, 0x35, 0xE5, -0x55, 0xE5, 0x02, 0x4A, 0x60, 0xC5, 0x8C, 0xEA, -0x00, 0x6B, 0x14, 0x10, 0x30, 0xF0, 0x20, 0x6D, -0x03, 0xF1, 0xC8, 0x9D, 0xE5, 0xF2, 0x90, 0x9C, -0xD5, 0xE0, 0x91, 0xE6, 0x71, 0xE4, 0xC0, 0xA4, -0x35, 0xE5, 0x55, 0xE5, 0xFF, 0x6C, 0x75, 0xE5, -0xCC, 0xEC, 0x80, 0xC5, 0x01, 0x4B, 0xFF, 0xF7, -0x1F, 0x6C, 0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, -0x46, 0xF5, 0x18, 0x4C, 0xE5, 0xF2, 0xB4, 0xAC, -0xA3, 0xEB, 0xE4, 0x61, 0xA9, 0xE2, 0xFF, 0xF7, -0x1F, 0x6B, 0x6C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF1, 0xD4, 0x9B, 0x0E, 0x93, 0xFF, 0xF7, -0x1F, 0x6C, 0x08, 0x4A, 0x8C, 0xEA, 0xD9, 0xE0, -0x42, 0x35, 0x79, 0xE6, 0xA0, 0xC6, 0x30, 0xF0, -0x20, 0x6E, 0xE3, 0xF1, 0xD8, 0x9E, 0x0E, 0x97, -0xFF, 0x6B, 0xD9, 0xE0, 0x4C, 0xEB, 0xF9, 0xE6, -0x60, 0xC6, 0x30, 0xF0, 0x20, 0x6E, 0xE3, 0xF1, -0xDC, 0x9E, 0x28, 0x4A, 0x8C, 0xEA, 0xD9, 0xE0, -0xF9, 0xE6, 0xA0, 0xC6, 0x30, 0xF0, 0x20, 0x6D, -0x03, 0xF2, 0xA0, 0x9D, 0xB5, 0xE0, 0xF5, 0xE5, -0x60, 0xC5, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF2, -0x64, 0x9B, 0x11, 0x6D, 0x6D, 0xE0, 0xED, 0xE3, -0xA0, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF2, -0x68, 0x9B, 0x01, 0x6D, 0xAB, 0xED, 0x6D, 0xE0, -0xED, 0xE3, 0xA0, 0xC3, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF1, 0xA8, 0x9B, 0x67, 0x67, 0x08, 0x4B, -0x6D, 0xE2, 0x8C, 0xEB, 0xB5, 0xE0, 0x60, 0xCD, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0x90, 0x9B, -0x00, 0x6B, 0x91, 0xE0, 0xF1, 0xE4, 0x30, 0xF0, -0x20, 0x6D, 0x46, 0xF5, 0x18, 0x4D, 0x75, 0xE5, -0xC5, 0xF0, 0xB6, 0xA5, 0xC8, 0x44, 0xF8, 0x4E, -0xA0, 0xC6, 0x0F, 0x95, 0x18, 0x96, 0x03, 0x4D, -0xAC, 0x35, 0xB5, 0xE6, 0xA2, 0xA5, 0x05, 0x25, -0xFD, 0x67, 0x75, 0xE7, 0x20, 0xF0, 0xA8, 0xA5, -0x03, 0x10, 0x16, 0x96, 0x75, 0xE6, 0xA0, 0xA5, -0x01, 0x4B, 0x10, 0x69, 0x6E, 0xE9, 0xA0, 0xC4, -0x01, 0x4C, 0xE1, 0x29, 0xD8, 0x4A, 0x10, 0xD2, -0x10, 0x97, 0xFF, 0xF7, 0x1F, 0x6A, 0x0E, 0x93, -0x4C, 0xEF, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, -0x4C, 0x9A, 0x10, 0xD7, 0xE2, 0x34, 0x49, 0xE0, -0x69, 0xE2, 0x20, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF2, 0x50, 0x9A, 0x49, 0xE0, 0x69, 0xE2, -0x20, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, -0x74, 0x9A, 0x0E, 0x95, 0xFF, 0x6A, 0x6D, 0xE0, -0xAD, 0xE3, 0x80, 0xC3, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF2, 0x78, 0x9B, 0xEC, 0xEA, 0x12, 0x6C, -0x6D, 0xE0, 0xAD, 0xE3, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF2, 0x5C, 0x9A, 0x11, 0x6B, -0x49, 0xE0, 0xA9, 0xE2, 0x20, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF2, 0x40, 0x9A, 0x49, 0xE0, -0xA9, 0xE2, 0x20, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF2, 0x44, 0x9A, 0x49, 0xE0, 0xA9, 0xE2, -0x20, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, -0x48, 0x9A, 0x49, 0xE0, 0xA9, 0xE2, 0x60, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x74, 0x9A, -0x0E, 0x97, 0x30, 0xF0, 0x20, 0x6A, 0xCB, 0xF6, -0xC2, 0xA2, 0xA7, 0x40, 0x31, 0x4D, 0xF5, 0xE5, -0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, -0x4C, 0x9A, 0x0E, 0x93, 0x49, 0xE0, 0x69, 0xE2, -0x60, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF2, 0x4C, 0x9A, 0x0E, 0x94, 0x49, 0xE0, -0x89, 0xE2, 0x20, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF2, 0x50, 0x9A, 0x49, 0xE0, 0x89, 0xE2, -0x20, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, -0x54, 0x9A, 0x49, 0xE0, 0x89, 0xE2, 0x20, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x68, 0x9A, -0x00, 0x6A, 0x6D, 0xE0, 0x8D, 0xE3, 0x30, 0xF0, -0x20, 0x6C, 0x46, 0xF5, 0x18, 0x4C, 0x51, 0xE4, -0xC5, 0xF0, 0x96, 0xA4, 0xA8, 0x43, 0xF8, 0x4D, -0x80, 0xC5, 0x0F, 0x94, 0x18, 0x96, 0x03, 0x4C, -0x8C, 0x34, 0x91, 0xE6, 0x82, 0xA4, 0x05, 0x24, -0xFD, 0x67, 0x51, 0xE7, 0x20, 0xF0, 0x88, 0xA4, -0x03, 0x10, 0x16, 0x95, 0x51, 0xE5, 0x80, 0xA4, -0x01, 0x4A, 0x10, 0x72, 0x80, 0xC3, 0x01, 0x4B, -0xE2, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, -0x7C, 0x9A, 0x0E, 0x96, 0x10, 0x97, 0x6D, 0xE0, -0xCD, 0xE3, 0xE2, 0x34, 0x80, 0xC3, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF2, 0x60, 0x9B, 0xFF, 0x6A, -0xEC, 0xEA, 0x6D, 0xE0, 0xCD, 0xE3, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x44, 0x9A, -0x11, 0x6B, 0x49, 0xE0, 0xC9, 0xE2, 0x60, 0xC2, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x48, 0x9A, -0x41, 0xE0, 0x01, 0x6A, 0x4B, 0xEA, 0xC1, 0xE0, -0x40, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0xE0, 0xF0, 0x7C, 0xA2, 0x02, 0x73, -0x05, 0x61, 0x00, 0xF1, 0x84, 0xA2, 0x0E, 0x95, -0x80, 0x18, 0xE2, 0x09, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF2, 0x78, 0x9A, 0xFF, 0x6C, 0x80, 0x6D, -0x40, 0xA3, 0xAB, 0xED, 0x59, 0x6E, 0x8C, 0xEA, -0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0x11, 0x95, 0xA0, 0xF2, 0x50, 0x9A, -0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, 0x15, 0x97, -0x14, 0x91, 0x13, 0x90, 0x0B, 0x63, 0x00, 0xEF, -0xF5, 0x63, 0x15, 0x62, 0x14, 0xD1, 0x13, 0xD0, -0x1A, 0x92, 0x16, 0xD4, 0x17, 0xD5, 0x0F, 0xD2, -0x0F, 0x93, 0xFF, 0x6A, 0x18, 0xD6, 0x4C, 0xEB, -0x0F, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF5, -0x8C, 0x9B, 0x02, 0xF5, 0x0C, 0x4B, 0x62, 0xAB, -0x07, 0xD4, 0x9D, 0x67, 0x70, 0xCC, 0x30, 0xF0, -0x20, 0x6B, 0x02, 0xF5, 0x68, 0x9B, 0xBD, 0x67, -0x4C, 0xEF, 0x04, 0xD3, 0x30, 0xF0, 0x20, 0x6B, -0x02, 0xF5, 0x80, 0x9B, 0x02, 0xF5, 0x00, 0x4B, -0x64, 0xA3, 0x05, 0xD4, 0x0D, 0xD7, 0x78, 0xC5, -0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF4, 0x98, 0x9B, -0xE2, 0xF4, 0x18, 0x4B, 0x09, 0xD4, 0x82, 0xAB, -0x66, 0xA3, 0x94, 0xCD, 0x20, 0xF0, 0x6A, 0xC5, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x6C, 0x9B, -0x60, 0xA3, 0x6C, 0xEA, 0x10, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF1, 0x54, 0x9A, 0x02, 0xF0, -0x00, 0x6B, 0x40, 0x9A, 0x6C, 0xEA, 0x1C, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, -0x00, 0x6C, 0xFF, 0x6D, 0x57, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, -0x00, 0x68, 0x40, 0xEA, 0x01, 0x72, 0x19, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0xA0, 0xF2, 0x54, 0x9A, 0xCB, 0xF6, 0x81, 0xA3, -0x01, 0x6D, 0x18, 0x6E, 0xF0, 0x67, 0x0B, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0xA0, 0xF2, 0x54, 0x9A, 0xCB, 0xF6, 0x81, 0xA3, -0x01, 0x6D, 0x18, 0x6E, 0x00, 0x6F, 0x40, 0xEA, -0x02, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, -0x50, 0x9A, 0xFF, 0x6F, 0x49, 0xE0, 0x80, 0xA2, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x4C, 0x9A, -0xEC, 0xEC, 0x49, 0xE0, 0xA0, 0xA2, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF1, 0x58, 0x9A, 0xEC, 0xED, -0x49, 0xE0, 0xC0, 0xA2, 0xEC, 0xEE, 0x80, 0x18, -0xC4, 0x06, 0x0F, 0x95, 0x22, 0x67, 0x87, 0x40, -0x0E, 0xD2, 0x54, 0x49, 0xFF, 0x6A, 0x29, 0x4C, -0x4C, 0xE9, 0x80, 0x18, 0x39, 0x0D, 0x0D, 0x92, -0x18, 0x93, 0x03, 0x4A, 0x4C, 0x32, 0x49, 0xE3, -0x42, 0xA2, 0x0C, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF1, 0x44, 0x9A, -0xC3, 0xF1, 0x9C, 0x9C, 0x17, 0x93, 0x49, 0xE0, -0x91, 0xE0, 0x1E, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF1, 0x64, 0x9B, 0x07, 0x02, 0x20, 0xF0, -0x02, 0x04, 0x6D, 0xE0, 0xA0, 0xA2, 0x01, 0x4A, -0x8A, 0xEA, 0xA0, 0xC3, 0x01, 0x4B, 0xFA, 0x61, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0x70, 0x9B, -0x0E, 0x94, 0x04, 0x02, 0x6D, 0xE0, 0x8D, 0xE3, -0x05, 0x04, 0xA0, 0xA2, 0x01, 0x4A, 0x8A, 0xEA, -0xA0, 0xC3, 0x01, 0x4B, 0xFA, 0x61, 0x1A, 0x10, -0xA0, 0xA3, 0x01, 0x4B, 0xA0, 0xC2, 0x01, 0x4A, -0x8A, 0xEA, 0xFA, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF1, 0x50, 0x9A, -0x23, 0xF2, 0x9C, 0x9C, 0x0E, 0x95, 0x16, 0x93, -0x49, 0xE0, 0x91, 0xE0, 0xA9, 0xE2, 0xB1, 0xE4, -0xA0, 0xA3, 0x01, 0x4B, 0xA0, 0xC2, 0x01, 0x4A, -0x8A, 0xEA, 0xFA, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xA5, 0xF0, 0x62, 0xAA, -0x01, 0x4B, 0xA5, 0xF0, 0x62, 0xCA, 0x30, 0xF0, -0x20, 0x6B, 0xE3, 0xF1, 0x7C, 0x9B, 0x0E, 0x96, -0xA5, 0xF0, 0x82, 0xAA, 0x6D, 0xE0, 0xCD, 0xE3, -0x82, 0x34, 0x80, 0xC3, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF2, 0x60, 0x9B, 0xA5, 0xF0, 0x82, 0xA2, -0x6D, 0xE0, 0xCD, 0xE3, 0x80, 0xC3, 0xE0, 0xF0, -0x7C, 0xA2, 0x02, 0x73, 0x05, 0x61, 0x00, 0xF1, -0x84, 0xA2, 0x0E, 0x95, 0x80, 0x18, 0xE2, 0x09, -0x18, 0x97, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, -0x48, 0x9A, 0x75, 0xA7, 0x49, 0xE0, 0x29, 0xE2, -0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, -0x4C, 0x9A, 0x76, 0xA7, 0x49, 0xE0, 0x29, 0xE2, -0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, -0x40, 0x9A, 0x01, 0x6B, 0x49, 0xE0, 0x29, 0xE2, -0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, -0x44, 0x9A, 0x79, 0xA7, 0x49, 0xE0, 0x29, 0xE2, -0x60, 0xC2, 0x0D, 0x92, 0x03, 0x4A, 0x4C, 0x32, -0x49, 0xE7, 0x67, 0xA2, 0xE6, 0xA2, 0xC8, 0xA2, -0x44, 0xA2, 0xFB, 0x65, 0x57, 0x2A, 0x0D, 0x94, -0x18, 0x95, 0x8C, 0x32, 0x49, 0xE5, 0x5D, 0xA2, -0x01, 0x72, 0x02, 0x61, 0x00, 0x6B, 0x1A, 0x10, -0x1C, 0x72, 0x4C, 0x61, 0xFB, 0x17, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF1, 0xA8, 0x9A, 0x65, 0xF1, -0x5C, 0x9C, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF1, -0x88, 0x9C, 0xB5, 0xE0, 0x35, 0xE5, 0x49, 0xE4, -0x69, 0xE2, 0x80, 0xA2, 0xFF, 0x6A, 0x75, 0xE5, -0x8C, 0xEA, 0x40, 0xC5, 0x01, 0x4B, 0xFF, 0xF7, -0x1F, 0x6A, 0x4C, 0xEB, 0x1C, 0x6C, 0x98, 0xEE, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x12, 0xEC, 0x51, 0xE4, 0x85, 0xF1, 0x40, 0xAC, -0x43, 0xEB, 0xDD, 0x61, 0xFF, 0xF7, 0x1F, 0x6B, -0x0C, 0x4A, 0x6C, 0xEA, 0x7D, 0x67, 0x20, 0xF0, -0x84, 0xA3, 0x00, 0x6B, 0x02, 0x4C, 0x13, 0x10, -0x30, 0xF0, 0x20, 0x6D, 0x03, 0xF1, 0xA8, 0x9D, -0xB5, 0xE2, 0x15, 0xE5, 0x35, 0xE5, 0x75, 0xE5, -0x0C, 0xD5, 0xBD, 0x67, 0x75, 0xE5, 0x20, 0xF0, -0xC4, 0xA5, 0x0C, 0x95, 0x01, 0x4B, 0xC0, 0xC5, -0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEB, 0x82, 0xEB, -0xEB, 0x61, 0xDD, 0x67, 0x20, 0xF0, 0x64, 0xA6, -0x69, 0xE2, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, -0x02, 0x4A, 0x76, 0x10, 0xFF, 0x77, 0x00, 0x6B, -0x0C, 0x6A, 0x17, 0x61, 0x4B, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF1, 0xA8, 0x9A, 0x40, 0x9C, -0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF1, 0x88, 0x9C, -0xB5, 0xE0, 0x35, 0xE5, 0x49, 0xE4, 0x69, 0xE2, -0x80, 0xA2, 0xFF, 0x6A, 0x75, 0xE5, 0x8C, 0xEA, -0x40, 0xC5, 0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6A, -0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x50, 0xF5, -0x81, 0x47, 0x46, 0xF5, 0x18, 0x4A, 0x8C, 0x34, -0x51, 0xE4, 0x42, 0xAC, 0x43, 0xEB, 0xDF, 0x61, -0xFF, 0xF7, 0x1F, 0x6B, 0x0C, 0x4A, 0x6C, 0xEA, -0x0D, 0x93, 0x18, 0x94, 0x03, 0x4B, 0x6C, 0x33, -0x6D, 0xE4, 0x63, 0xA3, 0x1F, 0x23, 0xBD, 0x67, -0x94, 0xA5, 0x00, 0x6B, 0x01, 0x4C, 0x10, 0x10, -0x30, 0xF0, 0x20, 0x6D, 0x03, 0xF1, 0xA8, 0x9D, -0xDD, 0x67, 0x79, 0xE6, 0xB5, 0xE2, 0x15, 0xE5, -0xD4, 0xA6, 0x35, 0xE5, 0x75, 0xE5, 0xC0, 0xC5, -0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEB, -0x82, 0xEB, 0xEE, 0x61, 0x9D, 0x67, 0x74, 0xA4, -0x69, 0xE2, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, -0x01, 0x4A, 0x6C, 0xEA, 0x00, 0x6B, 0x14, 0x10, -0x30, 0xF0, 0x20, 0x6D, 0x03, 0xF1, 0xC8, 0x9D, -0x65, 0xF1, 0x8C, 0x9C, 0xD5, 0xE0, 0x91, 0xE6, -0x71, 0xE4, 0xC0, 0xA4, 0x35, 0xE5, 0x55, 0xE5, -0xFF, 0x6C, 0x75, 0xE5, 0xCC, 0xEC, 0x80, 0xC5, -0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEB, -0x1C, 0x6C, 0xDF, 0x67, 0x98, 0xEE, 0x30, 0xF0, -0x20, 0x6D, 0x46, 0xF5, 0x18, 0x4D, 0x12, 0xEC, -0xB1, 0xE4, 0x65, 0xF1, 0xB0, 0xAC, 0xA3, 0xEB, -0xDF, 0x61, 0xA9, 0xE2, 0xFF, 0xF7, 0x1F, 0x6B, -0x6C, 0xEA, 0x0D, 0x93, 0x18, 0x94, 0x03, 0x4B, -0x6C, 0x33, 0x6D, 0xE4, 0x64, 0xA3, 0x25, 0x2B, -0x0D, 0x95, 0xAC, 0x33, 0x6D, 0xE4, 0x7D, 0xA3, -0x01, 0x73, 0x00, 0x6B, 0x1E, 0x61, 0x14, 0x10, -0x30, 0xF0, 0x20, 0x6D, 0x03, 0xF1, 0xC8, 0x9D, -0xE5, 0xF2, 0x88, 0x9C, 0xD5, 0xE0, 0x91, 0xE6, -0x71, 0xE4, 0xC0, 0xA4, 0x35, 0xE5, 0x55, 0xE5, -0xFF, 0x6C, 0x75, 0xE5, 0xCC, 0xEC, 0x80, 0xC5, -0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEB, -0x30, 0xF0, 0x20, 0x6C, 0x46, 0xF5, 0x18, 0x4C, -0xE5, 0xF2, 0xAC, 0xAC, 0xA3, 0xEB, 0xE4, 0x61, -0xC6, 0x10, 0x0D, 0x93, 0x18, 0x96, 0x03, 0x4B, -0x6C, 0x33, 0x6D, 0xE6, 0x64, 0xA3, 0x25, 0x2B, -0x0D, 0x94, 0x8C, 0x33, 0x6D, 0xE6, 0x7D, 0xA3, -0x1C, 0x73, 0x00, 0x6B, 0x1E, 0x61, 0x14, 0x10, -0x30, 0xF0, 0x20, 0x6D, 0x03, 0xF1, 0xC8, 0x9D, -0xE5, 0xF2, 0x90, 0x9C, 0xD5, 0xE0, 0x91, 0xE6, -0x71, 0xE4, 0xC0, 0xA4, 0x35, 0xE5, 0x55, 0xE5, -0xFF, 0x6C, 0x75, 0xE5, 0xCC, 0xEC, 0x80, 0xC5, -0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEB, -0x30, 0xF0, 0x20, 0x6C, 0x46, 0xF5, 0x18, 0x4C, -0xE5, 0xF2, 0xB4, 0xAC, 0xA3, 0xEB, 0xE4, 0x61, -0x9A, 0x10, 0x0D, 0x93, 0x18, 0x95, 0x03, 0x4B, -0x6C, 0x33, 0x6D, 0xE5, 0x64, 0xA3, 0x5B, 0x2B, -0x0D, 0x96, 0xCC, 0x33, 0x6D, 0xE5, 0x7D, 0xA3, -0x21, 0x73, 0x00, 0x6B, 0x54, 0x61, 0x14, 0x10, -0x30, 0xF0, 0x20, 0x6C, 0x65, 0xF1, 0xB4, 0x9D, -0x03, 0xF1, 0x88, 0x9C, 0x99, 0xE0, 0xB1, 0xE4, -0x71, 0xE4, 0xA0, 0xA4, 0x39, 0xE6, 0x59, 0xE6, -0xFF, 0x6C, 0x79, 0xE6, 0xAC, 0xEC, 0x80, 0xC6, -0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEB, -0x1C, 0x6D, 0xDF, 0x67, 0xB8, 0xEE, 0x30, 0xF0, -0x20, 0x6C, 0x46, 0xF5, 0x18, 0x4C, 0x12, 0xED, -0x95, 0xE5, 0x65, 0xF1, 0xD8, 0xAD, 0xC3, 0xEB, -0xDF, 0x61, 0xC9, 0xE2, 0xFF, 0xF7, 0x1F, 0x6B, -0xFF, 0x77, 0x6C, 0xEA, 0xC0, 0xF0, 0x05, 0x60, -0x0D, 0x93, 0x18, 0x96, 0x03, 0x4B, 0x6C, 0x33, -0x6D, 0xE6, 0x63, 0xA3, 0x11, 0x23, 0x40, 0xF5, -0x11, 0x4F, 0x30, 0xF0, 0x20, 0x6B, 0xEC, 0x37, -0xE3, 0xF1, 0x6C, 0x9B, 0x91, 0xE7, 0x84, 0xA4, -0x65, 0xF1, 0xB0, 0xA5, 0x6D, 0xE0, 0x2D, 0xE3, -0xB1, 0xE4, 0x4D, 0xE3, 0x0A, 0x4C, 0x10, 0x10, -0x40, 0xF5, 0x11, 0x4F, 0x30, 0xF0, 0x20, 0x6B, -0xEC, 0x37, 0xE3, 0xF1, 0x6C, 0x9B, 0x91, 0xE7, -0x84, 0xA4, 0x65, 0xF1, 0xB0, 0xA5, 0x6D, 0xE0, -0x2D, 0xE3, 0xB1, 0xE4, 0x4D, 0xE3, 0x05, 0x4C, -0xFF, 0x6D, 0xAC, 0xEC, 0x99, 0x10, 0x0D, 0x93, -0x18, 0x94, 0x03, 0x4B, 0x6C, 0x33, 0x6D, 0xE4, -0x64, 0xA3, 0x36, 0x2B, 0x0D, 0x95, 0xAC, 0x33, -0x6D, 0xE4, 0x7D, 0xA3, 0x10, 0x73, 0x30, 0x61, -0x1C, 0x6C, 0xBF, 0x67, 0x98, 0xED, 0x30, 0xF0, -0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, 0x12, 0xEC, -0x6D, 0xE4, 0x85, 0xF1, 0xE4, 0xA3, 0x00, 0x6B, -0x13, 0x10, 0x30, 0xF0, 0x20, 0x6D, 0x03, 0xF1, -0xC8, 0x9D, 0x81, 0x9C, 0xD5, 0xE0, 0x91, 0xE6, -0x71, 0xE4, 0xC0, 0xA4, 0x35, 0xE5, 0x55, 0xE5, -0xFF, 0x6C, 0x75, 0xE5, 0xCC, 0xEC, 0x80, 0xC5, -0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEB, -0x30, 0xF0, 0x20, 0x6D, 0x50, 0xF5, 0x84, 0x47, -0x46, 0xF5, 0x18, 0x4D, 0x8C, 0x34, 0xB1, 0xE4, -0xA4, 0xAC, 0xA3, 0xEB, 0xE2, 0x61, 0xA9, 0xE2, -0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, 0x5D, 0x10, -0x0D, 0x93, 0x18, 0x96, 0x03, 0x4B, 0x6C, 0x33, -0x6D, 0xE6, 0x64, 0xA3, 0x56, 0x2B, 0x0D, 0x94, -0x8C, 0x33, 0x6D, 0xE6, 0x7D, 0xA3, 0x0C, 0x73, -0x00, 0x6B, 0x4F, 0x61, 0x14, 0x10, 0x30, 0xF0, -0x20, 0x6D, 0x03, 0xF1, 0xC8, 0x9D, 0xE5, 0xF2, -0x98, 0x9C, 0xD5, 0xE0, 0x91, 0xE6, 0x71, 0xE4, -0xC0, 0xA4, 0x35, 0xE5, 0x55, 0xE5, 0xFF, 0x6C, -0x75, 0xE5, 0xCC, 0xEC, 0x80, 0xC5, 0x01, 0x4B, -0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEB, 0x30, 0xF0, -0x20, 0x6C, 0x46, 0xF5, 0x18, 0x4C, 0xE5, 0xF2, -0xBC, 0xAC, 0xA3, 0xEB, 0xE4, 0x61, 0xA9, 0xE2, -0xFF, 0xF7, 0x1F, 0x6B, 0xFF, 0x77, 0x6C, 0xEA, -0x23, 0x60, 0x0D, 0x93, 0x18, 0x95, 0x03, 0x4B, -0x6C, 0x33, 0x6D, 0xE5, 0x63, 0xA3, 0x0E, 0x23, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF5, 0x11, 0x4F, -0xE3, 0xF1, 0x6C, 0x9B, 0xEC, 0x37, 0x91, 0xE7, -0x84, 0xA4, 0x6D, 0xE0, 0x2D, 0xE3, 0x4D, 0xE3, -0x11, 0x4C, 0x7A, 0x17, 0x30, 0xF0, 0x20, 0x6B, -0x40, 0xF5, 0x11, 0x4F, 0xE3, 0xF1, 0x6C, 0x9B, -0xEC, 0x37, 0x91, 0xE7, 0x84, 0xA4, 0x6D, 0xE0, -0x2D, 0xE3, 0x4D, 0xE3, 0x0C, 0x4C, 0x6C, 0x17, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF1, 0x6C, 0x9B, -0x0C, 0x6C, 0x6D, 0xE0, 0x2D, 0xE3, 0x4D, 0xE3, -0x80, 0xC3, 0x18, 0x96, 0x79, 0xA6, 0x03, 0x73, -0x00, 0xF1, 0x13, 0x61, 0xFF, 0xA6, 0x1C, 0x6D, -0x9E, 0xA6, 0xB8, 0xEF, 0x30, 0xF0, 0x20, 0x6B, -0x0D, 0x96, 0x40, 0xF5, 0x11, 0x4C, 0x46, 0xF5, -0x18, 0x4B, 0x8C, 0x34, 0x71, 0xE4, 0xFF, 0x65, -0x18, 0x97, 0x03, 0x4E, 0xCC, 0x36, 0xD9, 0xE7, -0xC3, 0xA6, 0x12, 0xED, 0x75, 0xE5, 0x64, 0xA4, -0x65, 0xF1, 0x90, 0xA5, 0xFF, 0x6D, 0x8D, 0xE3, -0x87, 0x43, 0x0F, 0x4C, 0x05, 0x4B, 0xAC, 0xEC, -0xAC, 0xEB, 0x04, 0x26, 0x05, 0x4C, 0x05, 0x4B, -0xAC, 0xEC, 0xAC, 0xEB, 0x30, 0xF0, 0x20, 0x6D, -0x03, 0xF1, 0xA8, 0x9D, 0x40, 0x6E, 0xCB, 0xEE, -0xB5, 0xE0, 0x35, 0xE5, 0x55, 0xE5, 0xC0, 0xC5, -0x30, 0xF0, 0x20, 0x6D, 0xA3, 0xF1, 0xAC, 0x9D, -0xB5, 0xE0, 0x35, 0xE5, 0x55, 0xE5, 0x80, 0xC5, -0x02, 0x4A, 0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEA, -0x0D, 0xD3, 0x00, 0x6D, 0x18, 0x10, 0x30, 0xF0, -0x20, 0x6F, 0x03, 0xF1, 0xE8, 0x9F, 0x65, 0xF1, -0xD4, 0x9E, 0xED, 0xE0, 0x2D, 0xE3, 0x1F, 0x65, -0x5D, 0xE3, 0xAD, 0xE7, 0xF8, 0x67, 0xD9, 0xE7, -0xB9, 0xE6, 0xC0, 0xA6, 0x01, 0x4D, 0x1E, 0x65, -0xF8, 0x67, 0xFF, 0x6E, 0xEC, 0xEE, 0xC0, 0xC3, -0xFF, 0xF7, 0x1F, 0x6E, 0xCC, 0xED, 0x1C, 0x6B, -0xDF, 0x67, 0x78, 0xEE, 0x30, 0xF0, 0x20, 0x6F, -0x46, 0xF5, 0x18, 0x4F, 0x12, 0xEB, 0xF9, 0xE3, -0x65, 0xF1, 0xF8, 0xAE, 0xE3, 0xED, 0xDB, 0x61, -0x30, 0xF0, 0x20, 0x6E, 0xE9, 0xE2, 0xE3, 0xF1, -0xF0, 0x9E, 0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEA, -0xFD, 0xE0, 0x3D, 0xE7, 0x40, 0x6E, 0x5D, 0xE7, -0xCB, 0xEE, 0x0D, 0x93, 0xC0, 0xC7, 0x30, 0xF0, -0x20, 0x6F, 0xE3, 0xF1, 0xEC, 0x9F, 0xFD, 0xE0, -0x3D, 0xE7, 0x5D, 0xE7, 0x60, 0xC7, 0x30, 0xF0, -0x20, 0x6F, 0x03, 0xF1, 0xE8, 0x9F, 0xFD, 0xE0, -0x3D, 0xE7, 0x5D, 0xE7, 0xC0, 0xC7, 0x30, 0xF0, -0x20, 0x6E, 0xA3, 0xF1, 0xCC, 0x9E, 0xD9, 0xE0, -0x39, 0xE6, 0x59, 0xE6, 0x02, 0x4A, 0x80, 0xC6, -0xAC, 0xEA, 0x00, 0x6C, 0x13, 0x10, 0x30, 0xF0, -0x20, 0x6E, 0x03, 0xF1, 0xE8, 0x9E, 0xA1, 0x9D, -0xF9, 0xE0, 0xB5, 0xE7, 0x95, 0xE5, 0xE0, 0xA5, -0x39, 0xE6, 0x59, 0xE6, 0xFF, 0x6D, 0x99, 0xE6, -0xEC, 0xED, 0xA0, 0xC6, 0x01, 0x4C, 0xFF, 0xF7, -0x1F, 0x6D, 0xAC, 0xEC, 0x1C, 0x6D, 0xFF, 0x67, -0xB8, 0xEF, 0x30, 0xF0, 0x20, 0x6E, 0x46, 0xF5, -0x18, 0x4E, 0x12, 0xED, 0xD5, 0xE5, 0x85, 0xF1, -0xA4, 0xA5, 0x40, 0xF5, 0x14, 0x4D, 0xAC, 0x35, -0xD5, 0xE5, 0xE4, 0xAD, 0xE3, 0xEC, 0xDB, 0x61, -0xFF, 0xF7, 0x1F, 0x6C, 0xE9, 0xE2, 0x8C, 0xEA, -0x00, 0x6C, 0x14, 0x10, 0x30, 0xF0, 0x20, 0x6D, -0x65, 0xF1, 0xDC, 0x9E, 0x03, 0xF1, 0xA8, 0x9D, -0xBD, 0xE0, 0xD5, 0xE5, 0x95, 0xE5, 0xC0, 0xA5, -0x3D, 0xE7, 0x5D, 0xE7, 0xFF, 0x6D, 0x9D, 0xE7, -0xCC, 0xED, 0xA0, 0xC7, 0x01, 0x4C, 0xFF, 0xF7, -0x1F, 0x6D, 0xAC, 0xEC, 0x1C, 0x6E, 0xFF, 0x67, -0xD8, 0xEF, 0x30, 0xF0, 0x20, 0x6D, 0x46, 0xF5, -0x18, 0x4D, 0x12, 0xEE, 0xB9, 0xE6, 0x85, 0xF1, -0xA0, 0xAE, 0xA3, 0xEC, 0xDF, 0x61, 0xA9, 0xE2, -0x30, 0xF0, 0x20, 0x6D, 0x03, 0xF1, 0xA8, 0x9D, -0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEA, 0xB5, 0xE0, -0x35, 0xE5, 0x40, 0x6E, 0x55, 0xE5, 0xCB, 0xEE, -0xC0, 0xC5, 0x30, 0xF0, 0x20, 0x6D, 0xA3, 0xF1, -0xAC, 0x9D, 0xB5, 0xE0, 0x35, 0xE5, 0x55, 0xE5, -0x02, 0x4A, 0x60, 0xC5, 0x8C, 0xEA, 0x00, 0x6B, -0x14, 0x10, 0x30, 0xF0, 0x20, 0x6D, 0xE5, 0xF2, -0x88, 0x9C, 0x03, 0xF1, 0xA8, 0x9D, 0xB9, 0xE0, -0x95, 0xE5, 0x75, 0xE5, 0xA0, 0xA5, 0x39, 0xE6, -0x59, 0xE6, 0xFF, 0x6C, 0x79, 0xE6, 0xAC, 0xEC, -0x80, 0xC6, 0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6C, -0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0x46, 0xF5, -0x18, 0x4C, 0xE5, 0xF2, 0xAC, 0xAC, 0xA3, 0xEB, -0xE4, 0x61, 0xA9, 0xE2, 0xFF, 0xF7, 0x1F, 0x6B, -0x6C, 0xEA, 0x27, 0x42, 0x01, 0x49, 0xFF, 0xF7, -0x1F, 0x6A, 0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF1, 0x48, 0x9A, 0x0E, 0x93, 0x30, 0xF0, -0x20, 0x6D, 0x49, 0xE0, 0x69, 0xE2, 0x22, 0x33, -0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, -0x40, 0x9A, 0x0E, 0x94, 0xFF, 0x6B, 0x49, 0xE0, -0x2C, 0xEB, 0x89, 0xE2, 0x46, 0xF5, 0x18, 0x4D, -0x60, 0xC2, 0x0C, 0xD5, 0x47, 0x40, 0x0C, 0x97, -0x31, 0x4A, 0x89, 0xE2, 0x0D, 0xD2, 0x30, 0xF0, -0x20, 0x6E, 0x20, 0xF4, 0x54, 0x9E, 0x0D, 0x95, -0x65, 0xF1, 0xC9, 0xA7, 0x11, 0x6C, 0x14, 0x49, -0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE9, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x70, 0x9A, -0x0E, 0x94, 0xFF, 0x6D, 0x6D, 0xE0, 0x22, 0x32, -0x8D, 0xE3, 0xAC, 0xEA, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF2, 0x54, 0x9A, 0x65, 0x67, -0x2C, 0xEB, 0x49, 0xE0, 0x89, 0xE2, 0x60, 0xC2, -0x0C, 0x97, 0x30, 0xF0, 0x20, 0x6E, 0x20, 0xF4, -0x54, 0x9E, 0x0D, 0x95, 0x65, 0xF1, 0xC9, 0xA7, -0x00, 0x6C, 0x40, 0xEA, 0x0E, 0x92, 0xFF, 0x6C, -0xFF, 0x6D, 0x08, 0x4A, 0x45, 0xE1, 0xFF, 0xF7, -0x1F, 0x6A, 0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF1, 0x48, 0x9A, 0x58, 0x6E, 0x41, 0xE0, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x78, 0x9A, -0x20, 0xC8, 0x40, 0xA3, 0x8C, 0xEA, 0x9F, 0xF6, -0x01, 0x4C, 0x8D, 0xEA, 0xAC, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x10, 0x95, 0xA0, 0xF2, -0x50, 0x9A, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, -0x15, 0x97, 0x14, 0x91, 0x13, 0x90, 0x0B, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xD2, 0x63, 0x5B, 0x62, -0x5A, 0xD1, 0x59, 0xD0, 0x00, 0x6A, 0x7D, 0x67, -0x5C, 0xD4, 0x5D, 0xD5, 0x06, 0xD2, 0x4E, 0xCB, -0x08, 0xD2, 0x09, 0xD2, 0x0A, 0xD2, 0x0B, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, -0xFF, 0x6E, 0x0C, 0x04, 0x00, 0x6D, 0x0B, 0x4E, -0x40, 0xEA, 0x5C, 0x90, 0x00, 0xF0, 0x1E, 0x04, -0x06, 0x01, 0x10, 0x48, 0x56, 0xD4, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, 0x90, 0x67, -0x01, 0x48, 0x40, 0xEA, 0x40, 0xC1, 0x56, 0x92, -0x01, 0x49, 0x4A, 0xE9, 0xF4, 0x61, 0x5C, 0x91, -0x5D, 0x93, 0x08, 0x04, 0x10, 0x49, 0x0C, 0x02, -0x65, 0xE1, 0x50, 0xD4, 0x57, 0xD2, 0x30, 0xF0, -0x20, 0x68, 0xC0, 0xF3, 0x40, 0x98, 0x91, 0x67, -0x01, 0x49, 0x40, 0xEA, 0x50, 0x93, 0x57, 0x94, -0x40, 0xC3, 0x01, 0x4B, 0x8A, 0xEB, 0x50, 0xD3, -0xF2, 0x61, 0x5C, 0x91, 0x5D, 0x92, 0xFF, 0xF7, -0x1F, 0x6B, 0x38, 0x49, 0x45, 0xE1, 0xC0, 0xF3, -0x40, 0x98, 0x6C, 0xE9, 0x91, 0x67, 0x40, 0xEA, -0x9D, 0x67, 0x40, 0xF0, 0x45, 0xC4, 0xC0, 0xF3, -0x40, 0x98, 0x81, 0x41, 0x40, 0xEA, 0x7D, 0x67, -0x40, 0xF0, 0x45, 0xC3, 0xC0, 0xF3, 0x40, 0x98, -0x85, 0x41, 0x40, 0xEA, 0x9D, 0x67, 0x40, 0xF0, -0x48, 0xC4, 0xC0, 0xF3, 0x40, 0x98, 0x87, 0x41, -0x04, 0x4C, 0x40, 0xEA, 0x7D, 0x67, 0x40, 0xF0, -0x49, 0xC3, 0x0C, 0x49, 0x00, 0x6A, 0xFF, 0xF7, -0x1F, 0x6C, 0x8C, 0xE9, 0x54, 0xD2, 0x52, 0xD2, -0xBB, 0x11, 0x9D, 0x67, 0x40, 0xF0, 0x07, 0xA4, -0x40, 0xF0, 0x0A, 0x02, 0x00, 0x6D, 0x0C, 0x30, -0x01, 0xE2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, -0x48, 0x9A, 0x90, 0x67, 0x08, 0x6E, 0x40, 0xEA, -0x01, 0x6A, 0x4B, 0xEA, 0x47, 0xC0, 0x44, 0xC0, -0x45, 0xC0, 0x46, 0xC0, 0x00, 0x6A, 0x50, 0xD2, -0x55, 0xD2, 0x9D, 0x67, 0x20, 0xF0, 0x50, 0xA4, -0x26, 0x22, 0x50, 0x92, 0x24, 0x2A, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, 0x91, 0x67, -0x40, 0xEA, 0xC0, 0x72, 0x1C, 0x61, 0x30, 0xF0, -0x20, 0x6C, 0xC0, 0xF3, 0x40, 0x9C, 0x81, 0x41, -0x40, 0xEA, 0x0C, 0x72, 0x14, 0x61, 0x7D, 0x67, -0x40, 0xF0, 0x51, 0xA3, 0x02, 0x49, 0x01, 0x6C, -0x47, 0xC0, 0x40, 0xF0, 0x4E, 0xA3, 0x44, 0xC0, -0x40, 0xF0, 0x4F, 0xA3, 0x45, 0xC0, 0x40, 0xF0, -0x50, 0xA3, 0x46, 0xC0, 0xFF, 0xF7, 0x1F, 0x6A, -0x4C, 0xE9, 0x53, 0xD4, 0xB1, 0x10, 0x45, 0x80, -0x01, 0x4A, 0x80, 0xF0, 0x13, 0x2A, 0x55, 0x93, -0x51, 0xD2, 0x31, 0x23, 0x3C, 0x10, 0x91, 0x67, -0x00, 0x18, 0x8A, 0xD4, 0x51, 0x93, 0x53, 0x94, -0x40, 0xF5, 0x11, 0x4B, 0x6C, 0x33, 0x8D, 0xE3, -0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF2, 0x84, 0x9C, -0xA0, 0x9B, 0xC2, 0xAB, 0x91, 0xE2, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF1, 0x48, 0x9A, 0xB5, 0xE2, -0x00, 0x18, 0x24, 0xD5, 0x11, 0x2A, 0x5D, 0x67, -0x40, 0xF1, 0x64, 0x42, 0x40, 0xA3, 0x7D, 0x67, -0x40, 0xF1, 0x80, 0x43, 0x44, 0xC0, 0x60, 0xA4, -0x67, 0xC0, 0x52, 0x94, 0x16, 0x2C, 0x01, 0x6A, -0x7D, 0x67, 0x20, 0xF0, 0x50, 0xC3, 0x11, 0x10, -0x51, 0x92, 0x01, 0x4A, 0x51, 0xD2, 0x51, 0x93, -0xFF, 0x6A, 0x4C, 0xEB, 0x51, 0xD3, 0x30, 0xF0, -0x20, 0x6C, 0x46, 0xF5, 0x18, 0x4C, 0xA5, 0xF2, -0x40, 0xA4, 0x51, 0x93, 0x53, 0xD4, 0x43, 0xEB, -0xC6, 0x61, 0x01, 0x6C, 0x55, 0xD4, 0x50, 0x92, -0x01, 0x72, 0x03, 0x60, 0x00, 0x6B, 0x51, 0xD3, -0x43, 0x10, 0x81, 0x41, 0x00, 0x18, 0x8A, 0xD4, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, 0x84, 0x9B, -0x30, 0xF0, 0x20, 0x6D, 0x84, 0xF0, 0x08, 0x4D, -0x91, 0xE2, 0x04, 0x6E, 0x00, 0x18, 0x24, 0xD5, -0xED, 0x2A, 0x01, 0x6A, 0x41, 0xC0, 0x3A, 0x10, -0x91, 0x67, 0x00, 0x18, 0x8A, 0xD4, 0x51, 0x94, -0x1C, 0x6B, 0x78, 0xEC, 0x53, 0x94, 0x12, 0xEB, -0x8D, 0xE3, 0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF2, -0x84, 0x9C, 0x65, 0xF1, 0xAC, 0x9B, 0x65, 0xF1, -0xD0, 0xAB, 0x91, 0xE2, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF1, 0x48, 0x9A, 0xB5, 0xE2, 0x00, 0x18, -0x24, 0xD5, 0x11, 0x2A, 0x5D, 0x67, 0x40, 0xF1, -0x64, 0x42, 0x40, 0xA3, 0x7D, 0x67, 0x40, 0xF1, -0x80, 0x43, 0x45, 0xC0, 0x60, 0xA4, 0x67, 0xC0, -0x52, 0x94, 0x14, 0x2C, 0x01, 0x6A, 0x7D, 0x67, -0x20, 0xF0, 0x50, 0xC3, 0x0F, 0x10, 0x51, 0x94, -0xFF, 0x6A, 0x01, 0x4C, 0x4C, 0xEC, 0x51, 0xD4, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x53, 0xD2, 0x51, 0x93, 0x85, 0xF2, 0x44, 0xA2, -0x43, 0xEB, 0xC6, 0x61, 0x30, 0xF0, 0x20, 0x6C, -0xC0, 0xF3, 0x40, 0x9C, 0x91, 0x67, 0x40, 0xEA, -0x01, 0x4A, 0x45, 0xE1, 0x30, 0xF0, 0x20, 0x6B, -0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE9, 0xC0, 0xF3, -0x40, 0x9B, 0x91, 0x67, 0x40, 0xEA, 0x06, 0x22, -0x50, 0x94, 0xFF, 0x6A, 0x01, 0x4C, 0x4C, 0xEC, -0x50, 0xD4, 0x27, 0x17, 0x00, 0x6A, 0x53, 0xD2, -0x45, 0x80, 0x01, 0x4A, 0x4C, 0x2A, 0x8B, 0x41, -0x00, 0x18, 0x8A, 0xD4, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF2, 0x84, 0x9B, 0x30, 0xF0, 0x20, 0x6D, -0x84, 0xF0, 0x10, 0x4D, 0x91, 0xE2, 0x05, 0x6E, -0x00, 0x18, 0x24, 0xD5, 0x00, 0x6B, 0x50, 0xD3, -0x31, 0x22, 0x39, 0x10, 0x50, 0x94, 0x1C, 0x6B, -0x78, 0xEC, 0x12, 0xEB, 0x49, 0xE3, 0x51, 0xD2, -0x85, 0xF1, 0x80, 0xAA, 0x93, 0xE1, 0xFA, 0x4C, -0x00, 0x18, 0x8A, 0xD4, 0x51, 0x94, 0x65, 0xF1, -0x7C, 0x9C, 0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF2, -0x84, 0x9C, 0x91, 0xE2, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF1, 0xA8, 0x9A, 0x51, 0x92, 0x75, 0xE5, -0x85, 0xF1, 0xC0, 0xAA, 0x00, 0x18, 0x24, 0xD5, -0x0C, 0x2A, 0x7D, 0x67, 0x40, 0xF1, 0x80, 0x43, -0x60, 0xA4, 0x66, 0xC0, 0x52, 0x94, 0x13, 0x2C, -0x01, 0x6A, 0x7D, 0x67, 0x20, 0xF0, 0x50, 0xC3, -0x0E, 0x10, 0x50, 0x94, 0xFF, 0x6A, 0x01, 0x4C, -0x4C, 0xEC, 0x50, 0xD4, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x85, 0xF2, 0x64, 0xA2, -0x50, 0x94, 0x63, 0xEC, 0xC7, 0x61, 0x53, 0x92, -0x04, 0x2A, 0x01, 0x49, 0xFF, 0xF7, 0x1F, 0x6A, -0x4C, 0xE9, 0x45, 0x80, 0x01, 0x4A, 0x03, 0x2A, -0x46, 0x80, 0x01, 0x4A, 0x5C, 0x22, 0x61, 0x41, -0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEB, 0x50, 0xD3, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, -0x91, 0x67, 0x40, 0xEA, 0x42, 0xC0, 0x50, 0x91, -0xFF, 0xF7, 0x1F, 0x6C, 0x30, 0xF0, 0x20, 0x6B, -0x01, 0x49, 0x8C, 0xE9, 0xC0, 0xF3, 0x40, 0x9B, -0x50, 0x94, 0x40, 0xEA, 0x43, 0xC0, 0x42, 0xA0, -0x06, 0x2A, 0x43, 0xA0, 0x01, 0x72, 0x03, 0x61, -0x46, 0x80, 0x01, 0x4A, 0x2B, 0x2A, 0x42, 0xA0, -0x06, 0x2A, 0x43, 0xA0, 0x1C, 0x72, 0x03, 0x61, -0x46, 0x80, 0x01, 0x4A, 0x23, 0x2A, 0x42, 0xA0, -0x11, 0x2A, 0x43, 0xA0, 0x0C, 0x72, 0x0E, 0x61, -0x45, 0x80, 0x01, 0x4A, 0x02, 0x22, 0x47, 0x80, -0x03, 0x22, 0x44, 0x80, 0x01, 0x4A, 0x06, 0x22, -0x54, 0x94, 0xFF, 0x6A, 0x01, 0x4C, 0x4C, 0xEC, -0x54, 0xD4, 0x10, 0x10, 0x42, 0xA0, 0x06, 0x2A, -0x43, 0xA0, 0x21, 0x72, 0x03, 0x61, 0x44, 0x80, -0x01, 0x4A, 0x08, 0x2A, 0x42, 0xA0, 0x15, 0x2A, -0x43, 0xA0, 0x10, 0x72, 0x12, 0x61, 0x44, 0x80, -0x01, 0x4A, 0x0F, 0x22, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x40, 0x9A, 0x91, 0x67, 0x40, 0xEA, -0x01, 0x5A, 0x58, 0x67, 0x40, 0xC0, 0x7D, 0x67, -0x40, 0xF0, 0x47, 0xA3, 0x01, 0x4A, 0x40, 0xF0, -0x47, 0xC3, 0x02, 0x49, 0x09, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, 0x90, 0x67, -0x00, 0x6D, 0x08, 0x6E, 0x40, 0xEA, 0x04, 0x49, -0x52, 0x94, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE9, -0x01, 0x4C, 0xFF, 0x6A, 0x4C, 0xEC, 0x52, 0xD4, -0x7D, 0x67, 0x40, 0xF0, 0x48, 0xA3, 0x52, 0x94, -0x43, 0xEC, 0x3F, 0xF6, 0x1E, 0x61, 0x40, 0xF0, -0x49, 0xA3, 0x01, 0x72, 0x15, 0x61, 0x54, 0x92, -0x01, 0x72, 0x12, 0x61, 0x30, 0xF0, 0x20, 0x68, -0xC0, 0xF3, 0x40, 0x98, 0x81, 0x41, 0x40, 0xEA, -0x0F, 0x2A, 0xC0, 0xF3, 0x40, 0x98, 0x82, 0x41, -0x40, 0xEA, 0x29, 0x72, 0x09, 0x61, 0x03, 0x6A, -0x7D, 0x67, 0x40, 0xF0, 0x49, 0xC3, 0x04, 0x10, -0x00, 0x6A, 0x9D, 0x67, 0x40, 0xF0, 0x49, 0xC4, -0x7D, 0x67, 0x40, 0xF0, 0x47, 0xA3, 0x31, 0x22, -0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF6, 0x60, 0xA2, -0x08, 0x6A, 0x00, 0x68, 0x6C, 0xEA, 0x0C, 0x2A, -0x10, 0x10, 0x00, 0x6A, 0xF0, 0x67, 0x08, 0x04, -0x06, 0x05, 0x0C, 0x06, 0x04, 0xD2, 0x01, 0x48, -0x80, 0x18, 0x23, 0x40, 0xFF, 0x6A, 0x4C, 0xE8, -0x9D, 0x67, 0x40, 0xF0, 0x47, 0xA4, 0x43, 0xE8, -0xF0, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x20, 0xF1, 0x88, 0xA2, 0x80, 0x6B, -0x6B, 0xEB, 0x8C, 0xEB, 0xFF, 0x6C, 0x8C, 0xEB, -0x0C, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, -0x74, 0x9B, 0x2A, 0x6C, 0x80, 0xC3, 0x24, 0xF3, -0x80, 0xA2, 0x01, 0x6B, 0x8D, 0xEB, 0x24, 0xF3, -0x60, 0xC2, 0x7D, 0x67, 0x40, 0xF0, 0x47, 0xA3, -0x5B, 0x97, 0x5A, 0x91, 0x59, 0x90, 0x2E, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xD4, 0x63, 0x57, 0x62, -0x56, 0xD1, 0x55, 0xD0, 0x00, 0x6A, 0x7D, 0x67, -0x58, 0xD4, 0x59, 0xD5, 0x07, 0xD2, 0x50, 0xCB, -0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, -0x48, 0x9A, 0xFF, 0x6E, 0x09, 0x04, 0x00, 0x6D, -0x0B, 0x4E, 0x40, 0xEA, 0x58, 0x90, 0x20, 0xF0, -0x02, 0x04, 0x07, 0x01, 0x10, 0x48, 0x52, 0xD4, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, -0x90, 0x67, 0x01, 0x48, 0x40, 0xEA, 0x40, 0xC1, -0x52, 0x92, 0x01, 0x49, 0x4A, 0xE9, 0xF4, 0x61, -0x58, 0x91, 0x59, 0x93, 0x06, 0x04, 0x14, 0x49, -0x07, 0x02, 0x65, 0xE1, 0x4C, 0xD4, 0x53, 0xD2, -0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x40, 0x98, -0x91, 0x67, 0x01, 0x49, 0x40, 0xEA, 0x4C, 0x93, -0x53, 0x94, 0x40, 0xC3, 0x01, 0x4B, 0x8A, 0xEB, -0x4C, 0xD3, 0xF2, 0x61, 0x58, 0x91, 0x59, 0x92, -0xFF, 0xF7, 0x1F, 0x6B, 0x24, 0x49, 0x45, 0xE1, -0xC0, 0xF3, 0x40, 0x98, 0x6C, 0xE9, 0x91, 0x67, -0x40, 0xEA, 0x9D, 0x67, 0x20, 0xF0, 0x59, 0xC4, -0xC0, 0xF3, 0x40, 0x98, 0x81, 0x41, 0x40, 0xEA, -0x7D, 0x67, 0x20, 0xF0, 0x59, 0xC3, 0xC0, 0xF3, -0x40, 0x98, 0x85, 0x41, 0x40, 0xEA, 0x9D, 0x67, -0x20, 0xF0, 0x5C, 0xC4, 0xC0, 0xF3, 0x40, 0x98, -0x87, 0x41, 0x04, 0x4C, 0x40, 0xEA, 0x7D, 0x67, -0x20, 0xF0, 0x5D, 0xC3, 0x0C, 0x49, 0x00, 0x6A, -0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xE9, 0x50, 0xD2, -0x4E, 0xD2, 0xBB, 0x11, 0x9D, 0x67, 0x20, 0xF0, -0x1B, 0xA4, 0x20, 0xF0, 0x1E, 0x02, 0x00, 0x6D, -0x0C, 0x30, 0x01, 0xE2, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x48, 0x9A, 0x90, 0x67, 0x08, 0x6E, -0x40, 0xEA, 0x01, 0x6A, 0x4B, 0xEA, 0x47, 0xC0, -0x44, 0xC0, 0x45, 0xC0, 0x46, 0xC0, 0x00, 0x6A, -0x4C, 0xD2, 0x51, 0xD2, 0x9D, 0x67, 0x20, 0xF0, -0x44, 0xA4, 0x26, 0x22, 0x4C, 0x92, 0x24, 0x2A, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, -0x91, 0x67, 0x40, 0xEA, 0xC0, 0x72, 0x1C, 0x61, -0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF3, 0x40, 0x9C, -0x81, 0x41, 0x40, 0xEA, 0x0C, 0x72, 0x14, 0x61, -0x7D, 0x67, 0x40, 0xF0, 0x45, 0xA3, 0x02, 0x49, -0x01, 0x6C, 0x47, 0xC0, 0x40, 0xF0, 0x42, 0xA3, -0x44, 0xC0, 0x40, 0xF0, 0x43, 0xA3, 0x45, 0xC0, -0x40, 0xF0, 0x44, 0xA3, 0x46, 0xC0, 0xFF, 0xF7, -0x1F, 0x6A, 0x4C, 0xE9, 0x4F, 0xD4, 0xB1, 0x10, -0x45, 0x80, 0x01, 0x4A, 0x80, 0xF0, 0x13, 0x2A, -0x51, 0x93, 0x4D, 0xD2, 0x31, 0x23, 0x3C, 0x10, -0x91, 0x67, 0x00, 0x18, 0x8A, 0xD4, 0x4D, 0x93, -0x4F, 0x94, 0x40, 0xF5, 0x11, 0x4B, 0x6C, 0x33, -0x8D, 0xE3, 0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF2, -0x84, 0x9C, 0xA0, 0x9B, 0xC2, 0xAB, 0x91, 0xE2, -0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0x48, 0x9A, -0xB5, 0xE2, 0x00, 0x18, 0x24, 0xD5, 0x11, 0x2A, -0x5D, 0x67, 0x30, 0xF1, 0x64, 0x42, 0x40, 0xA3, -0x7D, 0x67, 0x30, 0xF1, 0x80, 0x43, 0x44, 0xC0, -0x60, 0xA4, 0x67, 0xC0, 0x4E, 0x94, 0x16, 0x2C, -0x01, 0x6A, 0x7D, 0x67, 0x20, 0xF0, 0x44, 0xC3, -0x11, 0x10, 0x4D, 0x92, 0x01, 0x4A, 0x4D, 0xD2, -0x4D, 0x93, 0xFF, 0x6A, 0x4C, 0xEB, 0x4D, 0xD3, -0x30, 0xF0, 0x20, 0x6C, 0x46, 0xF5, 0x18, 0x4C, -0xA5, 0xF2, 0x40, 0xA4, 0x4D, 0x93, 0x4F, 0xD4, -0x43, 0xEB, 0xC6, 0x61, 0x01, 0x6C, 0x51, 0xD4, -0x4C, 0x92, 0x01, 0x72, 0x03, 0x60, 0x00, 0x6B, -0x4D, 0xD3, 0x43, 0x10, 0x81, 0x41, 0x00, 0x18, -0x8A, 0xD4, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, -0x84, 0x9B, 0x30, 0xF0, 0x20, 0x6D, 0x84, 0xF0, -0x08, 0x4D, 0x91, 0xE2, 0x04, 0x6E, 0x00, 0x18, -0x24, 0xD5, 0xED, 0x2A, 0x01, 0x6A, 0x41, 0xC0, -0x3A, 0x10, 0x91, 0x67, 0x00, 0x18, 0x8A, 0xD4, -0x4D, 0x94, 0x1C, 0x6B, 0x78, 0xEC, 0x4F, 0x94, -0x12, 0xEB, 0x8D, 0xE3, 0x30, 0xF0, 0x20, 0x6C, -0x43, 0xF2, 0x84, 0x9C, 0x65, 0xF1, 0xAC, 0x9B, -0x65, 0xF1, 0xD0, 0xAB, 0x91, 0xE2, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF1, 0x48, 0x9A, 0xB5, 0xE2, -0x00, 0x18, 0x24, 0xD5, 0x11, 0x2A, 0x5D, 0x67, -0x30, 0xF1, 0x64, 0x42, 0x40, 0xA3, 0x7D, 0x67, -0x30, 0xF1, 0x80, 0x43, 0x45, 0xC0, 0x60, 0xA4, -0x67, 0xC0, 0x4E, 0x94, 0x14, 0x2C, 0x01, 0x6A, -0x7D, 0x67, 0x20, 0xF0, 0x44, 0xC3, 0x0F, 0x10, -0x4D, 0x94, 0xFF, 0x6A, 0x01, 0x4C, 0x4C, 0xEC, -0x4D, 0xD4, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x4F, 0xD2, 0x4D, 0x93, 0x85, 0xF2, -0x44, 0xA2, 0x43, 0xEB, 0xC6, 0x61, 0x30, 0xF0, -0x20, 0x6C, 0xC0, 0xF3, 0x40, 0x9C, 0x91, 0x67, -0x40, 0xEA, 0x01, 0x4A, 0x45, 0xE1, 0x30, 0xF0, -0x20, 0x6B, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE9, -0xC0, 0xF3, 0x40, 0x9B, 0x91, 0x67, 0x40, 0xEA, -0x06, 0x22, 0x4C, 0x94, 0xFF, 0x6A, 0x01, 0x4C, -0x4C, 0xEC, 0x4C, 0xD4, 0x27, 0x17, 0x00, 0x6A, -0x4F, 0xD2, 0x45, 0x80, 0x01, 0x4A, 0x4C, 0x2A, -0x8B, 0x41, 0x00, 0x18, 0x8A, 0xD4, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF2, 0x84, 0x9B, 0x30, 0xF0, -0x20, 0x6D, 0x84, 0xF0, 0x10, 0x4D, 0x91, 0xE2, -0x05, 0x6E, 0x00, 0x18, 0x24, 0xD5, 0x00, 0x6B, -0x4C, 0xD3, 0x31, 0x22, 0x39, 0x10, 0x4C, 0x94, -0x1C, 0x6B, 0x78, 0xEC, 0x12, 0xEB, 0x49, 0xE3, -0x4D, 0xD2, 0x85, 0xF1, 0x80, 0xAA, 0x93, 0xE1, -0xFA, 0x4C, 0x00, 0x18, 0x8A, 0xD4, 0x4D, 0x94, -0x65, 0xF1, 0x7C, 0x9C, 0x30, 0xF0, 0x20, 0x6C, -0x43, 0xF2, 0x84, 0x9C, 0x91, 0xE2, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF1, 0xA8, 0x9A, 0x4D, 0x92, -0x75, 0xE5, 0x85, 0xF1, 0xC0, 0xAA, 0x00, 0x18, -0x24, 0xD5, 0x0C, 0x2A, 0x7D, 0x67, 0x30, 0xF1, -0x80, 0x43, 0x60, 0xA4, 0x66, 0xC0, 0x4E, 0x94, -0x13, 0x2C, 0x01, 0x6A, 0x7D, 0x67, 0x20, 0xF0, -0x44, 0xC3, 0x0E, 0x10, 0x4C, 0x94, 0xFF, 0x6A, -0x01, 0x4C, 0x4C, 0xEC, 0x4C, 0xD4, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x85, 0xF2, -0x64, 0xA2, 0x4C, 0x94, 0x63, 0xEC, 0xC7, 0x61, -0x4F, 0x92, 0x04, 0x2A, 0x01, 0x49, 0xFF, 0xF7, -0x1F, 0x6A, 0x4C, 0xE9, 0x45, 0x80, 0x01, 0x4A, -0x03, 0x2A, 0x46, 0x80, 0x01, 0x4A, 0x5C, 0x22, -0x61, 0x41, 0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEB, -0x4C, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x40, 0x9B, 0x91, 0x67, 0x40, 0xEA, 0x42, 0xC0, -0x4C, 0x91, 0xFF, 0xF7, 0x1F, 0x6C, 0x30, 0xF0, -0x20, 0x6B, 0x01, 0x49, 0x8C, 0xE9, 0xC0, 0xF3, -0x40, 0x9B, 0x4C, 0x94, 0x40, 0xEA, 0x43, 0xC0, -0x42, 0xA0, 0x06, 0x2A, 0x43, 0xA0, 0x01, 0x72, -0x03, 0x61, 0x46, 0x80, 0x01, 0x4A, 0x2B, 0x2A, -0x42, 0xA0, 0x06, 0x2A, 0x43, 0xA0, 0x1C, 0x72, -0x03, 0x61, 0x46, 0x80, 0x01, 0x4A, 0x23, 0x2A, -0x42, 0xA0, 0x11, 0x2A, 0x43, 0xA0, 0x0C, 0x72, -0x0E, 0x61, 0x45, 0x80, 0x01, 0x4A, 0x02, 0x22, -0x47, 0x80, 0x03, 0x22, 0x44, 0x80, 0x01, 0x4A, -0x06, 0x22, 0x50, 0x94, 0xFF, 0x6A, 0x01, 0x4C, -0x4C, 0xEC, 0x50, 0xD4, 0x10, 0x10, 0x42, 0xA0, -0x06, 0x2A, 0x43, 0xA0, 0x21, 0x72, 0x03, 0x61, -0x44, 0x80, 0x01, 0x4A, 0x08, 0x2A, 0x42, 0xA0, -0x15, 0x2A, 0x43, 0xA0, 0x10, 0x72, 0x12, 0x61, -0x44, 0x80, 0x01, 0x4A, 0x0F, 0x22, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, 0x91, 0x67, -0x40, 0xEA, 0x01, 0x5A, 0x58, 0x67, 0x40, 0xC0, -0x7D, 0x67, 0x20, 0xF0, 0x5B, 0xA3, 0x01, 0x4A, -0x20, 0xF0, 0x5B, 0xC3, 0x02, 0x49, 0x09, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, -0x90, 0x67, 0x00, 0x6D, 0x08, 0x6E, 0x40, 0xEA, -0x04, 0x49, 0x4E, 0x94, 0xFF, 0xF7, 0x1F, 0x6A, -0x4C, 0xE9, 0x01, 0x4C, 0xFF, 0x6A, 0x4C, 0xEC, -0x4E, 0xD4, 0x7D, 0x67, 0x20, 0xF0, 0x5C, 0xA3, -0x4E, 0x94, 0x43, 0xEC, 0x3F, 0xF6, 0x1E, 0x61, -0x20, 0xF0, 0x5D, 0xA3, 0x01, 0x72, 0x15, 0x61, -0x50, 0x92, 0x01, 0x72, 0x12, 0x61, 0x30, 0xF0, -0x20, 0x68, 0xC0, 0xF3, 0x40, 0x98, 0x81, 0x41, -0x40, 0xEA, 0x0F, 0x2A, 0xC0, 0xF3, 0x40, 0x98, -0x82, 0x41, 0x40, 0xEA, 0x29, 0x72, 0x09, 0x61, -0x03, 0x6A, 0x7D, 0x67, 0x20, 0xF0, 0x5D, 0xC3, -0x04, 0x10, 0x00, 0x6A, 0x9D, 0x67, 0x20, 0xF0, -0x5D, 0xC4, 0x7D, 0x67, 0x20, 0xF0, 0x5B, 0xA3, -0x2E, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF6, -0x60, 0xA2, 0x04, 0x6A, 0x00, 0x68, 0x6C, 0xEA, -0x0C, 0x2A, 0x10, 0x10, 0x00, 0x6A, 0xF0, 0x67, -0x06, 0x04, 0x07, 0x05, 0x09, 0x06, 0x04, 0xD2, -0x01, 0x48, 0x80, 0x18, 0xDC, 0x42, 0xFF, 0x6A, -0x4C, 0xE8, 0x9D, 0x67, 0x20, 0xF0, 0x5B, 0xA4, -0x43, 0xE8, 0xF0, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x20, 0xF1, 0x88, 0xA2, -0x40, 0x6B, 0x8C, 0xEB, 0x0C, 0x23, 0x30, 0xF0, -0x20, 0x6B, 0xE3, 0xF0, 0x74, 0x9B, 0x2A, 0x6C, -0x80, 0xC3, 0x24, 0xF3, 0x80, 0xA2, 0x01, 0x6B, -0x8D, 0xEB, 0x24, 0xF3, 0x60, 0xC2, 0x7D, 0x67, -0x20, 0xF0, 0x5B, 0xA3, 0x57, 0x97, 0x56, 0x91, -0x55, 0x90, 0x2C, 0x63, 0x00, 0xEF, 0x00, 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, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x06, 0xD4, 0x09, 0xD7, 0x07, 0xD5, 0x08, 0xD6, 0x06, 0x04, 0x40, 0xEA, @@ -71987,24 +53325,24 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x46, 0x67, 0x01, 0x4A, 0x05, 0x67, 0x0C, 0xD6, 0x27, 0x67, 0x1F, 0x22, 0x1F, 0xF7, 0x00, 0x6A, 0xAC, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, -0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0x58, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF0, 0x5C, 0x9A, 0x49, 0xE0, 0x40, 0x9A, +0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, +0x5C, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF3, 0x40, 0x9A, 0x49, 0xE0, 0x40, 0x9A, 0x0C, 0x94, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x0C, 0x93, 0x24, 0xEA, 0x6F, 0xEA, 0x04, 0x93, 0x6C, 0xEA, 0x4D, 0xE9, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x58, 0x9A, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0x5C, 0x9A, 0x41, 0xE0, 0x20, 0xD8, 0x09, 0x97, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0x5C, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF3, +0x40, 0x9A, 0x41, 0xE0, 0x20, 0xD8, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x1F, 0xF7, 0x00, 0x6A, 0xAC, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x26, 0x67, 0x01, 0x60, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x58, 0x9A, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0x5C, 0x9A, 0x55, 0xE5, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0x5C, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF3, +0x40, 0x9A, 0x55, 0xE5, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0x9D, 0xA0, 0xF3, 0x44, 0x9A, 0x91, 0x67, 0x2C, 0xE8, 0x40, 0xEA, 0x06, 0xEA, 0x50, 0x67, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, @@ -72017,279 +53355,87 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x85, 0x67, 0xA6, 0x67, 0xC7, 0x67, 0x00, 0x18, -0xB9, 0xD4, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0x6A, 0x8C, 0xEA, 0xC4, 0xF2, 0xA8, 0x42, -0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, -0xA4, 0x35, 0x15, 0xE5, 0xC8, 0xA5, 0x62, 0xF1, -0x60, 0x42, 0x03, 0x6D, 0x48, 0x34, 0x44, 0x32, -0xAC, 0xEE, 0x09, 0xE2, 0x11, 0xE4, 0xC0, 0x36, -0x88, 0xF5, 0x59, 0xA2, 0x68, 0x33, 0xFE, 0x65, -0x0D, 0xE3, 0x88, 0xF5, 0x25, 0xA4, 0x88, 0xF5, -0xC6, 0xA4, 0x88, 0xF5, 0x87, 0xA4, 0xE4, 0xA3, -0xAC, 0xEA, 0x01, 0x6B, 0x6C, 0xE9, 0x6C, 0xEE, -0x6C, 0xEC, 0x40, 0x32, 0x6C, 0xEF, 0x30, 0x31, -0x7F, 0x67, 0x48, 0x32, 0xC4, 0x36, 0x94, 0x34, -0xD9, 0xE7, 0x91, 0xE1, 0x4D, 0xE3, 0x30, 0xF0, -0x20, 0x69, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0xD6, -0x04, 0xD3, 0x63, 0xF3, 0xC8, 0x9A, 0xC0, 0xF3, -0x64, 0x99, 0x05, 0xD4, 0xFC, 0x4D, 0x03, 0xF3, -0x00, 0x6C, 0x40, 0xEB, 0x06, 0x92, 0x05, 0x96, -0x04, 0x93, 0xE3, 0xF3, 0x10, 0x6C, 0x4D, 0xEE, -0xC0, 0xF3, 0x44, 0x99, 0x6D, 0xEE, 0xFF, 0xF7, -0x1F, 0x6D, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6E, -0xA3, 0xF0, 0x18, 0x4E, 0xC0, 0xF3, 0x44, 0x99, -0xA0, 0x9E, 0x29, 0xF0, 0xC0, 0xA0, 0xE3, 0xF3, -0x10, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF0, 0x18, 0x4B, 0xC0, 0xF3, 0x44, 0x99, -0x29, 0xF0, 0xC0, 0xA0, 0xA0, 0x9B, 0xE3, 0xF3, -0x10, 0x6C, 0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, -0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x00, 0x6B, -0x28, 0xF1, 0x6B, 0xC2, 0x30, 0xF0, 0x20, 0x6B, -0x8E, 0xF6, 0x03, 0x4B, 0x48, 0xF1, 0x78, 0xDA, -0x00, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, -0x74, 0x9B, 0x54, 0x34, 0x20, 0x68, 0x71, 0xE4, -0xA0, 0xA4, 0xF8, 0x6B, 0x01, 0x4A, 0xAC, 0xEB, -0x4E, 0xE8, 0x60, 0xC4, 0xF2, 0x28, 0x80, 0x18, -0xA2, 0x48, 0x30, 0xF0, 0x20, 0x6A, 0x8E, 0xF6, -0x1A, 0xC2, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x68, 0xA4, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x28, 0xF1, -0x74, 0xC2, 0x69, 0xA4, 0x28, 0xF1, 0x69, 0xC2, -0x6A, 0xA4, 0x28, 0xF1, 0x73, 0xC2, 0xAB, 0xA4, -0x0F, 0x6B, 0xAC, 0xEB, 0x28, 0xF1, 0x7D, 0xC2, -0x6B, 0xA4, 0x72, 0x33, 0x28, 0xF1, 0x7A, 0xC2, -0x8E, 0xA4, 0x01, 0x6B, 0x8C, 0xEB, 0x28, 0xF1, -0x6B, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0x8E, 0xF6, -0x03, 0x4B, 0x48, 0xF1, 0x78, 0xDA, 0x00, 0x6A, -0x20, 0xE8, 0x00, 0x65, 0x60, 0xA4, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x28, 0xF1, -0x74, 0xC2, 0x61, 0xA4, 0x28, 0xF1, 0x69, 0xC2, -0x62, 0xA4, 0x28, 0xF1, 0x73, 0xC2, 0xA3, 0xA4, -0x0F, 0x6B, 0xAC, 0xEB, 0x28, 0xF1, 0x7D, 0xC2, -0x63, 0xA4, 0x72, 0x33, 0x28, 0xF1, 0x7A, 0xC2, +0xE4, 0xC6, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x04, 0xD2, 0x04, 0x95, +0x30, 0xF0, 0x20, 0x69, 0x63, 0xF5, 0x18, 0x49, +0xA8, 0x34, 0x31, 0xE4, 0x05, 0xD4, 0x05, 0x90, +0xC1, 0xF6, 0x14, 0x4A, 0x48, 0x32, 0x29, 0xE2, +0x47, 0xF3, 0xD2, 0xA0, 0x60, 0xA2, 0x01, 0x6A, +0x4C, 0xEE, 0x4C, 0xEB, 0xC4, 0x36, 0x47, 0xF3, +0xF1, 0xA4, 0xD9, 0xE3, 0x47, 0xF3, 0x73, 0xA0, +0x4C, 0xEF, 0xF0, 0x37, 0x4C, 0xEB, 0x74, 0x33, +0x6D, 0xE7, 0x07, 0xD3, 0x04, 0x93, 0x85, 0x67, +0xA3, 0xF5, 0x10, 0x4C, 0x64, 0x32, 0x29, 0xE2, +0x84, 0x34, 0x31, 0xE4, 0x67, 0xF3, 0x45, 0xA2, +0xA4, 0xA4, 0x03, 0x6C, 0x8C, 0xEA, 0x8C, 0xED, +0x40, 0x32, 0xA0, 0x35, 0x48, 0x32, 0x49, 0xE5, +0x30, 0xF0, 0x20, 0x68, 0x06, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x08, 0xD6, 0xC0, 0xF3, 0x64, 0x98, +0xE2, 0xF3, 0xCC, 0x9A, 0x01, 0x6D, 0xE3, 0xF2, +0x1D, 0x4C, 0xAB, 0xED, 0x40, 0xEB, 0x08, 0x94, +0x07, 0x96, 0x06, 0x93, 0xC0, 0xF3, 0x44, 0x98, +0x8D, 0xEE, 0x6D, 0xEE, 0xE3, 0xF3, 0x10, 0x6C, +0xFF, 0xF7, 0x1F, 0x6D, 0x40, 0xEA, 0x04, 0x92, +0x05, 0x94, 0x01, 0x6D, 0xC1, 0xF6, 0x1A, 0x4A, +0x67, 0xF3, 0xCA, 0xAC, 0x48, 0x32, 0x29, 0xE2, +0x60, 0xAA, 0xC0, 0x36, 0xC0, 0xF3, 0x44, 0x98, +0xC0, 0x36, 0x6D, 0xEE, 0xE3, 0xF3, 0x08, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x04, 0x92, 0x05, 0x95, +0xE3, 0xF3, 0x0C, 0x6C, 0xC1, 0xF6, 0x1B, 0x4A, +0x67, 0xF3, 0xCE, 0xAD, 0x48, 0x32, 0x29, 0xE2, +0x60, 0xAA, 0xC0, 0x36, 0xC0, 0xF3, 0x44, 0x98, +0xC0, 0x36, 0x01, 0x6D, 0x6D, 0xEE, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xE7, 0xF5, 0xCC, 0xA1, 0xE2, 0xF3, +0xB0, 0x9B, 0xE3, 0xF3, 0x10, 0x6C, 0x40, 0xEA, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, +0x18, 0x4A, 0x00, 0x6B, 0x66, 0xF7, 0x7B, 0xC2, +0x30, 0xF0, 0x20, 0x6B, 0xEA, 0xF4, 0x13, 0x4B, +0xA6, 0xF7, 0x68, 0xDA, 0x00, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0xF4, 0x64, 0x9B, 0x54, 0x34, +0x20, 0x68, 0x71, 0xE4, 0xA0, 0xA4, 0xF8, 0x6B, +0x01, 0x4A, 0xAC, 0xEB, 0x4E, 0xE8, 0x60, 0xC4, +0xF2, 0x28, 0x80, 0x18, 0xDC, 0x40, 0x30, 0xF0, +0x20, 0x6A, 0x0A, 0xF5, 0x0A, 0xC2, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x68, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, +0x18, 0x4A, 0x86, 0xF7, 0x64, 0xC2, 0x69, 0xA4, +0x66, 0xF7, 0x79, 0xC2, 0x6A, 0xA4, 0x86, 0xF7, +0x63, 0xC2, 0xAB, 0xA4, 0x0F, 0x6B, 0xAC, 0xEB, +0x86, 0xF7, 0x6D, 0xC2, 0x6B, 0xA4, 0x72, 0x33, +0x86, 0xF7, 0x6A, 0xC2, 0x8E, 0xA4, 0x01, 0x6B, +0x8C, 0xEB, 0x66, 0xF7, 0x7B, 0xC2, 0x30, 0xF0, +0x20, 0x6B, 0xEA, 0xF4, 0x13, 0x4B, 0xA6, 0xF7, +0x68, 0xDA, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0x60, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, +0x18, 0x4A, 0x86, 0xF7, 0x64, 0xC2, 0x61, 0xA4, +0x66, 0xF7, 0x79, 0xC2, 0x62, 0xA4, 0x86, 0xF7, +0x63, 0xC2, 0xA3, 0xA4, 0x0F, 0x6B, 0xAC, 0xEB, +0x86, 0xF7, 0x6D, 0xC2, 0x63, 0xA4, 0x72, 0x33, +0x86, 0xF7, 0x6A, 0xC2, 0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0xFF, 0x6A, 0x8C, 0xEA, 0x4C, 0x72, 0x03, 0x61, -0x85, 0x67, 0x80, 0x18, 0x7B, 0x48, 0x05, 0x97, -0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, 0x0E, 0x72, 0x03, 0x60, 0x11, 0x72, 0x05, 0x60, 0x08, 0x10, 0x85, 0x67, -0x80, 0x18, 0x5C, 0x27, 0x19, 0x10, 0x85, 0x67, -0x80, 0x18, 0x69, 0x48, 0x15, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF1, 0x7C, 0x9A, 0x30, 0xF0, -0x20, 0x6C, 0x63, 0xF1, 0x80, 0x9C, 0x40, 0x9B, +0x80, 0x18, 0xF3, 0x11, 0x19, 0x10, 0x85, 0x67, +0x80, 0x18, 0xA8, 0x40, 0x15, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF3, 0x68, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x22, 0xF4, 0x88, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0xA3, 0xF3, 0x78, 0x9A, -0x8D, 0xEB, 0xA3, 0xF3, 0x78, 0xDA, 0xFF, 0x6A, +0x63, 0xF5, 0x18, 0x4A, 0x23, 0xF3, 0x70, 0x9A, +0x8D, 0xEB, 0x23, 0xF3, 0x70, 0xDA, 0xFF, 0x6A, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x05, 0x6B, 0x28, 0xF1, 0x64, 0xDA, 0x09, 0x6B, -0x28, 0xF1, 0x60, 0xDA, 0x20, 0xE8, 0x00, 0x65, -0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, -0xFF, 0x6A, 0x8C, 0xEA, 0xF2, 0xF1, 0x84, 0x42, -0x30, 0xF0, 0x20, 0x6B, 0xE4, 0xF3, 0x10, 0x4A, -0x46, 0xF5, 0x18, 0x4B, 0x88, 0x34, 0x44, 0x32, -0x91, 0xE3, 0x4D, 0xE3, 0x00, 0x68, 0x04, 0x4C, -0x08, 0x4B, 0x04, 0xD4, 0x05, 0xD3, 0x06, 0xD0, -0x07, 0xD0, 0x08, 0xD0, 0x04, 0x95, 0x01, 0x6C, -0x08, 0x93, 0x40, 0xA5, 0x30, 0xF0, 0x20, 0x69, -0x04, 0x36, 0x8C, 0xEA, 0x44, 0xE8, 0x4D, 0xE3, -0x41, 0xA5, 0x05, 0x95, 0x08, 0xD3, 0x8C, 0xEA, -0x07, 0x94, 0x64, 0x40, 0x44, 0xEB, 0x51, 0xE4, -0x40, 0xA5, 0x07, 0xD4, 0x03, 0x6C, 0x64, 0x33, -0x8C, 0xEA, 0x44, 0xEB, 0x04, 0x94, 0x06, 0x93, -0x01, 0x6D, 0x8C, 0xAC, 0x4D, 0xE3, 0x06, 0xD3, -0xC0, 0xF3, 0x64, 0x99, 0x08, 0x6A, 0x4D, 0xEE, -0x09, 0xD4, 0xAB, 0xED, 0x03, 0xF3, 0x00, 0x6C, -0x40, 0xEB, 0x08, 0x95, 0x07, 0x96, 0x06, 0x93, -0xC0, 0xF3, 0x44, 0x99, 0xAD, 0xEE, 0x6D, 0xEE, -0xE3, 0xF3, 0x10, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x09, 0x96, -0x01, 0x6D, 0xE3, 0xF3, 0x08, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x04, 0x94, 0x05, 0x95, 0x01, 0x48, -0x02, 0x4C, 0x01, 0x4D, 0x02, 0x70, 0x04, 0xD4, -0x05, 0xD5, 0xBC, 0x61, 0x0D, 0x97, 0x0C, 0x91, -0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xF7, 0x63, 0x11, 0x62, 0x10, 0xD1, 0x0F, 0xD0, -0xFF, 0x6A, 0x04, 0x67, 0x4C, 0xE8, 0x4C, 0xED, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x48, 0xF4, 0x7D, 0xA2, 0x30, 0xF0, 0x20, 0x6C, -0x6F, 0xF5, 0x1C, 0x4C, 0x0D, 0xD3, 0xF1, 0xF0, -0x6E, 0x40, 0x6C, 0x33, 0x69, 0xE2, 0x04, 0x4A, -0x0C, 0xD5, 0x0A, 0xD2, 0x08, 0xD4, 0x00, 0x69, -0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, -0x0C, 0x4B, 0xE0, 0x9B, 0xFF, 0x6A, 0x30, 0xF0, -0x20, 0x68, 0x6E, 0xF6, 0x08, 0x48, 0x2C, 0xEA, -0x90, 0x67, 0xA2, 0x67, 0xDF, 0x6E, 0x06, 0xD2, -0x80, 0x18, 0x8E, 0x4E, 0x10, 0x6B, 0x4D, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x0C, 0x4A, -0x06, 0x95, 0xE0, 0x9A, 0x90, 0x67, 0xDF, 0x6E, -0x04, 0xD3, 0x80, 0x18, 0xD3, 0x4E, 0x0A, 0x93, -0x06, 0x95, 0x90, 0x67, 0x40, 0x9B, 0x58, 0x6E, -0x30, 0xF0, 0x20, 0x68, 0x04, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF3, 0x0C, 0x4A, 0xE0, 0x9A, -0x80, 0x18, 0xD3, 0x4E, 0xC0, 0xF3, 0x44, 0x98, -0x08, 0x6B, 0x24, 0x36, 0x01, 0x6D, 0x6D, 0xEE, -0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, -0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x0D, 0x93, -0x06, 0x73, 0x1C, 0x61, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF3, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x08, 0x93, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, -0xC0, 0x9B, 0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, -0x40, 0xEA, 0x08, 0x93, 0x01, 0x6D, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, -0xC2, 0x9B, 0x21, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF3, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, 0x14, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, -0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, 0x14, 0x4B, -0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, 0x01, 0x6D, -0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x0C, 0x94, 0x06, 0x24, 0x00, 0x6A, 0x01, 0x74, -0x06, 0xD2, 0xE0, 0xF0, 0x15, 0x61, 0x7A, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x44, 0x9A, 0x83, 0xF3, 0xBC, 0x9B, -0x23, 0xF3, 0x00, 0x6C, 0x44, 0x68, 0x03, 0x6E, -0x40, 0xEA, 0x18, 0xE9, 0x09, 0x93, 0x88, 0x6A, -0x00, 0x6C, 0x06, 0xD4, 0x12, 0xE8, 0x58, 0xEB, -0x12, 0xEA, 0x41, 0xE0, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x01, 0xE2, 0xA8, 0xF5, -0x14, 0x48, 0xC0, 0xA8, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF3, 0x5C, 0x9A, 0x06, 0x93, 0xC0, 0x36, -0x4D, 0xEE, 0x30, 0xF0, 0x20, 0x6C, 0x68, 0x32, -0x4D, 0xEE, 0xC0, 0xF3, 0x44, 0x9C, 0x01, 0x6D, -0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x02, 0x4E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, -0xB4, 0x9B, 0xC3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, -0x40, 0xEA, 0x06, 0x94, 0x02, 0x48, 0x01, 0x4C, -0x11, 0x74, 0x06, 0xD4, 0xDA, 0x61, 0x44, 0x68, -0x18, 0xE9, 0x09, 0x93, 0x88, 0x6A, 0x00, 0x6C, -0x06, 0xD4, 0x12, 0xE8, 0x58, 0xEB, 0x12, 0xEA, -0x41, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x01, 0xE2, 0xC8, 0xF6, 0x04, 0x48, -0xC0, 0xA8, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, -0x5C, 0x9A, 0xC0, 0x36, 0x30, 0xF0, 0x20, 0x6C, -0x4D, 0xEE, 0x06, 0x92, 0x01, 0x6D, 0xAB, 0xED, -0x48, 0x33, 0xC0, 0xF3, 0x44, 0x9C, 0x6D, 0xEE, -0xC3, 0xF3, 0x18, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF0, 0xB4, 0x9B, 0xC3, 0xF3, -0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x06, 0x94, -0x02, 0x48, 0x01, 0x4C, 0x11, 0x74, 0x06, 0xD4, -0xDB, 0x61, 0x13, 0x11, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, -0x83, 0xF3, 0xBC, 0x9B, 0x23, 0xF3, 0x00, 0x6C, -0x44, 0x68, 0x01, 0x6E, 0x40, 0xEA, 0x18, 0xE9, -0x09, 0x93, 0x88, 0x6A, 0x00, 0x6C, 0x06, 0xD4, -0x12, 0xE8, 0x58, 0xEB, 0x12, 0xEA, 0x41, 0xE0, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x01, 0xE2, 0xC8, 0xF5, 0x16, 0x48, 0xC0, 0xA8, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x40, 0x9A, -0x06, 0x93, 0xC0, 0x36, 0x4D, 0xEE, 0x30, 0xF0, -0x20, 0x6C, 0x68, 0x32, 0x4D, 0xEE, 0xC0, 0xF3, -0x44, 0x9C, 0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, -0xAB, 0xED, 0x02, 0x4E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF0, 0xB4, 0x9B, 0xC3, 0xF3, -0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x06, 0x94, -0x02, 0x48, 0x01, 0x4C, 0x11, 0x74, 0x06, 0xD4, -0xDA, 0x61, 0x44, 0x68, 0x18, 0xE9, 0x09, 0x93, -0x88, 0x6A, 0x00, 0x6C, 0x06, 0xD4, 0x12, 0xE8, -0x58, 0xEB, 0x12, 0xEA, 0x41, 0xE0, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x01, 0xE2, -0xE8, 0xF6, 0x06, 0x48, 0xC0, 0xA8, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF3, 0x40, 0x9A, 0xC0, 0x36, -0x30, 0xF0, 0x20, 0x6C, 0x4D, 0xEE, 0x06, 0x92, -0x01, 0x6D, 0xAB, 0xED, 0x48, 0x33, 0xC0, 0xF3, -0x44, 0x9C, 0x6D, 0xEE, 0xC3, 0xF3, 0x18, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, -0xB4, 0x9B, 0xC3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, -0x40, 0xEA, 0x06, 0x94, 0x02, 0x48, 0x01, 0x4C, -0x11, 0x74, 0x06, 0xD4, 0xDB, 0x61, 0x99, 0x10, -0x0B, 0xD1, 0x06, 0x93, 0xFF, 0x6A, 0x6C, 0xEA, -0x11, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x83, 0xF3, -0xBC, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x03, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, -0x5C, 0x9A, 0x10, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, -0x83, 0xF3, 0xBC, 0x9B, 0x23, 0xF3, 0x00, 0x6C, -0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF3, 0x40, 0x9A, 0x07, 0xD2, 0x06, 0x92, -0x22, 0x68, 0x0B, 0x93, 0x18, 0xEA, 0x44, 0x6A, -0x00, 0x69, 0x12, 0xE8, 0x58, 0xEB, 0x09, 0x93, -0x12, 0xEA, 0x41, 0xE0, 0x88, 0x6A, 0x58, 0xEB, -0x12, 0xEA, 0x41, 0xE0, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x01, 0xE2, 0xA8, 0xF5, -0x14, 0x48, 0xC0, 0xA8, 0x07, 0x94, 0x28, 0x32, -0xC0, 0x36, 0x30, 0xF0, 0x20, 0x6B, 0x8D, 0xEE, -0x4D, 0xEE, 0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, -0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x02, 0x4E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9C, 0xA3, 0xF0, -0xB4, 0x9B, 0xC3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, -0x01, 0x49, 0x40, 0xEA, 0x11, 0x71, 0x02, 0x48, -0xE0, 0x61, 0x06, 0x92, 0x22, 0x68, 0x0B, 0x93, -0x18, 0xEA, 0x44, 0x6A, 0x00, 0x69, 0x12, 0xE8, -0x58, 0xEB, 0x09, 0x93, 0x12, 0xEA, 0x41, 0xE0, -0x88, 0x6A, 0x58, 0xEB, 0x12, 0xEA, 0x41, 0xE0, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x01, 0xE2, 0xC8, 0xF6, 0x04, 0x48, 0xC0, 0xA8, -0x07, 0x94, 0x28, 0x33, 0xC0, 0x36, 0x8D, 0xEE, -0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF3, 0x44, 0x9C, -0x01, 0x6D, 0x6D, 0xEE, 0xC3, 0xF3, 0x18, 0x6C, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF0, 0xB4, 0x9B, 0xC3, 0xF3, 0x18, 0x6C, -0x00, 0x6E, 0x01, 0x49, 0x40, 0xEA, 0x11, 0x71, -0x02, 0x48, 0xE1, 0x61, 0x06, 0x94, 0x01, 0x4C, -0x02, 0x74, 0x06, 0xD4, 0x7F, 0xF7, 0x09, 0x61, -0x0B, 0x91, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x68, 0x63, 0xF3, 0xD4, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, -0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF3, 0xBC, 0x9B, -0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x00, 0x6A, 0x06, 0xD2, 0x06, 0x94, 0x06, 0x92, -0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6B, 0x6C, 0xEC, -0xC0, 0xF3, 0x64, 0x98, 0x44, 0x36, 0x01, 0x6D, -0x08, 0x6A, 0x4D, 0xEE, 0x07, 0xD4, 0xAB, 0xED, -0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEB, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF3, 0xA0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, -0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, -0x0C, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, 0x14, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, -0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, 0x14, 0x4B, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, -0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0xBC, 0x9B, -0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, -0x00, 0x6E, 0x40, 0xEA, 0x03, 0x6A, 0x04, 0xD2, -0x30, 0xF0, 0x20, 0x6A, 0x07, 0x95, 0x83, 0xF4, -0xF0, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x6E, 0xF6, -0x08, 0x4C, 0x00, 0x6E, 0x80, 0x18, 0xD3, 0x4E, -0x06, 0x94, 0x01, 0x4C, 0x02, 0x74, 0x06, 0xD4, -0xA9, 0x61, 0x0A, 0x92, 0x08, 0x93, 0x01, 0x49, -0x04, 0x4A, 0x04, 0x4B, 0x02, 0x71, 0x0A, 0xD2, -0x08, 0xD3, 0x7F, 0xF5, 0x12, 0x61, 0x11, 0x97, -0x10, 0x91, 0x0F, 0x90, 0x09, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0x05, 0x6B, 0x66, 0xF7, 0x74, 0xDA, 0x09, 0x6B, +0x66, 0xF7, 0x70, 0xDA, 0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, 0x1C, 0x22, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0xFF, 0x6D, 0x83, 0xF4, 0x10, 0x6C, 0x01, 0x4D, 0x01, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, -0x34, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF3, +0x28, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x09, 0x10, 0x30, 0xF0, @@ -72304,7 +53450,7 @@ u8 array_mp_8822c_fw_wowlan[] = { 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF4, 0x1C, 0x6C, 0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x00, 0x6A, 0xF2, 0x17, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x6C, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, 0x74, 0x9B, 0x46, 0x67, 0x8E, 0xEB, 0x12, 0x23, 0x00, 0x6E, 0x66, 0x67, 0xE4, 0x67, 0xE6, 0xEE, 0x01, 0x68, 0x0C, 0xEF, 0x07, 0x2F, 0x01, 0x4B, 0xFF, 0x6F, @@ -72316,7 +53462,7 @@ u8 array_mp_8822c_fw_wowlan[] = { 0xA8, 0x35, 0x5D, 0x67, 0xB5, 0xE2, 0x44, 0x9D, 0xFF, 0x6C, 0xCC, 0xEC, 0x88, 0x34, 0x51, 0xE4, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEC, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF3, 0xAC, 0x9B, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF3, 0xB4, 0x9B, 0x30, 0xF0, 0x20, 0x6A, 0x0C, 0x96, 0xC0, 0xF3, 0x44, 0x9A, 0xEC, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, 0x40, 0xEA, @@ -72326,88 +53472,88 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x00, 0x6A, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x01, 0x75, 0x33, 0x61, 0x01, 0x76, 0x17, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0x2C, 0x9A, 0x30, 0xF0, 0x20, 0x68, +0xE2, 0xF3, 0x34, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x83, 0xF5, 0xC4, 0x9B, 0x03, 0xF0, 0x00, 0x6C, +0x42, 0xF5, 0xC8, 0x9B, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, 0xB1, 0x67, 0x00, 0x6E, -0x81, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, -0x2C, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x68, 0x83, 0xF5, 0xC4, 0x9B, 0xC0, 0xF3, +0x81, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, +0x34, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0x42, 0xF5, 0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, 0xB1, 0x67, -0x83, 0xF5, 0xC8, 0x9B, 0x67, 0x10, 0x02, 0x75, +0x42, 0xF5, 0xCC, 0x9B, 0x67, 0x10, 0x02, 0x75, 0x2C, 0x61, 0x01, 0x76, 0x10, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF3, 0x2C, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF3, 0x34, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, -0x83, 0xF5, 0xC8, 0x9B, 0x2D, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF3, 0x2C, 0x9A, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x83, 0xF5, -0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x42, 0xF5, 0xCC, 0x9B, 0x2D, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF3, 0x34, 0x9A, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x42, 0xF5, +0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, -0x00, 0x6C, 0xB1, 0x67, 0x83, 0xF5, 0xC4, 0x9B, +0x00, 0x6C, 0xB1, 0x67, 0x42, 0xF5, 0xC8, 0x9B, 0x39, 0x10, 0x03, 0x75, 0x38, 0x61, 0x01, 0x76, -0x1A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, -0x2C, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF5, -0xC4, 0x9B, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, +0x1A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, +0x34, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x42, 0xF5, +0xC8, 0x9B, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, 0xB1, 0x67, -0x83, 0xF5, 0xCC, 0x9B, 0x1B, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, -0x2C, 0x9A, 0x83, 0xF5, 0x04, 0x4B, 0x30, 0xF0, +0x42, 0xF5, 0xD0, 0x9B, 0x1B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, +0x34, 0x9A, 0x42, 0xF5, 0x08, 0x4B, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, 0x04, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF5, 0x08, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, 0x08, 0xF1, 0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x01, 0x6A, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, 0x0E, 0x72, 0x51, 0x61, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x68, 0xC3, 0xF4, 0x08, 0x4B, +0x30, 0xF0, 0x20, 0x68, 0x42, 0xF5, 0x14, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x00, 0x6C, 0xA7, 0xF5, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, 0xD0, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF5, 0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF2, 0x04, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x08, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0xAD, 0xF2, 0x03, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, -0x08, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF5, +0x14, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF2, 0x18, 0x6C, 0x75, 0xF2, 0x1B, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF2, 0x1C, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0xDE, 0xF3, 0x17, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF2, 0x00, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x83, 0xF5, 0xD4, 0x9B, 0xA3, 0xF2, +0x44, 0x98, 0x42, 0xF5, 0xDC, 0x9B, 0xA3, 0xF2, 0x0C, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF2, 0x10, 0x6C, 0xB1, 0x67, 0xFF, 0xF7, 0x1F, 0x6E, 0x55, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0xC3, 0xF4, -0x08, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x42, 0xF5, +0x14, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x00, 0x6C, 0x8A, 0xF2, 0x04, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, -0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF5, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF2, 0x04, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x08, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0x81, 0xF2, 0x08, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF4, 0x08, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x42, 0xF5, 0x14, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF2, 0x18, 0x6C, 0xD5, 0xF4, 0x04, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF2, 0x1C, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0xB9, 0xF0, 0x12, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF5, 0xDC, 0x9B, 0xC0, 0xF3, +0x20, 0x6B, 0x62, 0xF5, 0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF2, 0x00, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, -0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF2, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF5, +0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF2, 0x0C, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF5, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x62, 0xF5, 0xCC, 0x9B, 0xA3, 0xF2, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, @@ -72478,33 +53624,33 @@ u8 array_mp_8822c_fw_wowlan[] = { 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, 0x26, 0x67, 0x3B, 0x22, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, -0xA3, 0xF5, 0x04, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x62, 0xF5, 0x10, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF1, 0x04, 0x6C, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, 0x04, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF5, 0x10, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xD1, 0x67, 0x48, 0xF0, 0x04, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF0, 0x2C, 0x9A, 0xC0, 0xF3, +0x20, 0x6A, 0x62, 0xF3, 0x38, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF1, 0x00, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x48, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, 0x18, 0x6C, 0x01, 0xF0, 0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF5, 0x1C, 0x6C, 0xA3, 0xF5, -0xA8, 0x9B, 0x0F, 0x6E, 0x37, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0xA3, 0xF5, -0x24, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF1, +0x44, 0x98, 0x23, 0xF5, 0x1C, 0x6C, 0x62, 0xF5, +0xB4, 0x9B, 0x0F, 0x6E, 0x37, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0x62, 0xF5, +0x30, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF1, 0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x48, 0xF0, 0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF0, 0x2C, 0x9A, 0xC0, 0xF3, +0x20, 0x6A, 0x62, 0xF3, 0x38, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF1, 0x00, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x48, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, 0x18, 0x6C, 0x01, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0xA3, 0xF5, 0xA8, 0x9B, 0x23, 0xF5, +0x44, 0x98, 0x62, 0xF5, 0xB4, 0x9B, 0x23, 0xF5, 0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, @@ -72512,27 +53658,27 @@ u8 array_mp_8822c_fw_wowlan[] = { 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, 0x18, 0x6C, 0x08, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF5, -0x1C, 0x6C, 0xA3, 0xF5, 0xA8, 0x9B, 0x0F, 0x6E, +0x1C, 0x6C, 0x62, 0xF5, 0xB4, 0x9B, 0x0F, 0x6E, 0x12, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, 0x18, 0x6C, 0x08, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF5, 0xA8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x62, 0xF5, 0xB4, 0x9B, 0x23, 0xF5, 0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0xAC, 0xE8, 0x00, 0x6D, 0x24, 0x67, -0x80, 0x18, 0xF0, 0x4B, 0x99, 0x70, 0x07, 0x61, +0x80, 0x18, 0xA0, 0x42, 0x99, 0x70, 0x07, 0x61, 0x50, 0x99, 0x40, 0xA2, 0x04, 0x2A, 0x91, 0x67, 0x01, 0x6D, 0x70, 0x6E, 0x03, 0x10, 0x00, 0x6D, -0x91, 0x67, 0xC5, 0x67, 0x80, 0x18, 0xB0, 0x4B, +0x91, 0x67, 0xC5, 0x67, 0x80, 0x18, 0x60, 0x42, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0xAC, 0xEA, 0x0C, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x9A, 0x63, 0xF4, 0x04, 0x6C, 0xA3, 0xF0, -0xB4, 0x9B, 0x01, 0x6E, 0x0B, 0x10, 0x30, 0xF0, +0x44, 0x9A, 0x63, 0xF4, 0x04, 0x6C, 0x42, 0xF3, +0xB8, 0x9B, 0x01, 0x6E, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x9A, 0xA3, 0xF0, 0xB4, 0x9B, 0x63, 0xF4, +0x44, 0x9A, 0x42, 0xF3, 0xB8, 0x9B, 0x63, 0xF4, 0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0xAC, 0xEA, 0x09, 0x22, 0x30, 0xF0, @@ -72549,230 +53695,230 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x1B, 0xC9, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF5, 0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, +0x62, 0xF5, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, 0x00, 0x6E, 0x23, 0xF4, 0x1C, 0x6C, 0x40, 0xEA, 0x01, 0x6D, 0xA5, 0xF5, 0x14, 0x6C, 0xAB, 0xED, -0x80, 0x18, 0x24, 0x39, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF5, 0x70, 0x9B, 0x05, 0x97, 0x4C, 0xEB, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, 0x5C, 0x9A, +0x80, 0x18, 0xF4, 0x16, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF5, 0x7C, 0x9B, 0x05, 0x97, 0x4C, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF4, 0x48, 0x9A, 0x4E, 0xEB, 0x01, 0x5B, 0x58, 0x67, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x83, 0xF2, 0x18, 0x68, 0x24, 0x67, 0x18, 0xF0, 0x00, 0x6D, 0x90, 0x67, -0x80, 0x18, 0x24, 0x39, 0x05, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF4, 0xB0, 0x9A, 0xA3, 0xF2, -0x08, 0x6C, 0x80, 0x18, 0x24, 0x39, 0x90, 0x67, -0xC0, 0x6D, 0x04, 0xD2, 0x80, 0x18, 0x24, 0x39, -0x02, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, -0xA4, 0x9A, 0x63, 0xF2, 0x10, 0x6C, 0x80, 0x18, -0x24, 0x39, 0x05, 0x93, 0x04, 0x95, 0xFF, 0x6C, +0x80, 0x18, 0xF4, 0x16, 0x05, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x02, 0xF5, 0xBC, 0x9A, 0xA3, 0xF2, +0x08, 0x6C, 0x80, 0x18, 0xF4, 0x16, 0x90, 0x67, +0xC0, 0x6D, 0x04, 0xD2, 0x80, 0x18, 0xF4, 0x16, +0x02, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF4, +0xB0, 0x9A, 0x63, 0xF2, 0x10, 0x6C, 0x80, 0x18, +0xF4, 0x16, 0x05, 0x93, 0x04, 0x95, 0xFF, 0x6C, 0x8C, 0xEB, 0x8C, 0xE8, 0x70, 0x33, 0x10, 0x30, 0x4D, 0xE8, 0xAD, 0xEB, 0x60, 0xF0, 0x71, 0xC1, 0x60, 0xF0, 0x12, 0xC1, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x0C, 0xED, -0x83, 0xF4, 0x10, 0x4A, 0x04, 0xD5, 0xA0, 0x9A, +0x02, 0xF5, 0x1C, 0x4A, 0x04, 0xD5, 0xA0, 0x9A, 0x21, 0xF0, 0x04, 0x69, 0x91, 0x67, 0x80, 0x18, -0x24, 0x39, 0x04, 0x93, 0x41, 0x23, 0x4C, 0xE8, +0xF4, 0x16, 0x04, 0x93, 0x41, 0x23, 0x4C, 0xE8, 0x03, 0x70, 0x00, 0x6A, 0x7B, 0x61, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, 0x1C, 0x6C, 0x04, 0x6D, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, 0x04, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF4, 0x10, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF4, 0x10, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x02, 0xF5, 0x1C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, 0x01, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, -0x04, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF4, +0x10, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF5, 0xA0, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x02, 0xF2, 0x08, 0x49, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, -0xA3, 0xF5, 0xB4, 0x9B, 0x00, 0x6E, 0x3C, 0x10, +0x82, 0xF5, 0xA4, 0x9B, 0x00, 0x6E, 0x3C, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, 0x1C, 0x6C, 0x04, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, -0x04, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF4, +0x10, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x83, 0xF4, 0x10, 0x4B, 0xA0, 0x9B, +0x20, 0x6B, 0x02, 0xF5, 0x1C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF3, 0x04, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x02, 0xF4, 0x10, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x04, 0x6C, 0x01, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF5, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x0C, 0x69, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0xA3, 0xF5, 0xB4, 0x9B, 0x91, 0x67, 0x01, 0x6E, +0x82, 0xF5, 0xA4, 0x9B, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x01, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x4C, 0xED, 0x08, 0xD4, 0xCC, 0xEA, 0xC0, 0xF0, 0x1C, 0x25, 0x20, 0x22, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0xA3, 0xF5, -0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x82, 0xF5, +0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0x21, 0xF0, 0x13, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, 0x08, 0x6C, 0x18, 0xF0, 0x00, 0x6D, 0x02, 0x6E, 0x40, 0xEA, 0x01, 0x6D, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xAB, 0xED, -0xA3, 0xF5, 0xDC, 0x9B, 0x90, 0x11, 0x08, 0x93, +0x82, 0xF5, 0xCC, 0x9B, 0x90, 0x11, 0x08, 0x93, 0x50, 0x9B, 0x40, 0xA2, 0x01, 0x72, 0x80, 0xF1, 0x0B, 0x61, 0x01, 0x69, 0x2B, 0xE9, 0xA1, 0xF1, -0x10, 0x6C, 0xB1, 0x67, 0x80, 0x18, 0x24, 0x39, +0x10, 0x6C, 0xB1, 0x67, 0x80, 0x18, 0xF4, 0x16, 0x08, 0x93, 0x30, 0xF0, 0x20, 0x68, 0x03, 0xF0, 0x00, 0x6C, 0x5D, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF5, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x82, 0xF5, 0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x81, 0xF0, 0x08, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF0, 0xB4, 0x9B, 0xC0, 0xF3, +0x20, 0x6B, 0x42, 0xF3, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x81, 0xF0, 0x18, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, 0x08, 0x6C, 0x18, 0xF0, 0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA1, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x04, 0xF2, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, -0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, +0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, 0x1C, 0x4B, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF5, 0xC0, 0x9B, 0xC0, 0xF3, +0x20, 0x6B, 0x82, 0xF5, 0xD0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF5, -0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF5, 0xC8, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF5, -0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, -0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF5, 0xD0, 0x9B, 0xC0, 0xF3, -0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF5, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, 0xD4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF5, 0xD8, 0x9B, 0xC0, 0xF3, +0x20, 0x6B, 0x82, 0xF5, 0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF5, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, 0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xE3, 0xF5, 0xC0, 0x9B, 0xC0, 0xF3, +0x20, 0x6B, 0xA2, 0xF5, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF5, -0x04, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF5, +0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA2, 0xF5, 0xC8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF5, +0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA2, 0xF5, 0xD0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF5, +0x14, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0xE3, 0xF5, -0x04, 0x4B, 0xD4, 0x10, 0x20, 0x22, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0xA3, 0xF5, -0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0xA2, 0xF5, +0x14, 0x4B, 0xD4, 0x10, 0x20, 0x22, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x82, 0xF5, +0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0x20, 0xF3, 0x13, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, 0x08, 0x6C, 0x18, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x01, 0x6D, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xAB, 0xED, -0xE3, 0xF5, 0xC8, 0x9B, 0xB4, 0x10, 0x08, 0x93, +0xA2, 0xF5, 0xD8, 0x9B, 0xB4, 0x10, 0x08, 0x93, 0x50, 0x9B, 0x40, 0xA2, 0x01, 0x72, 0xA0, 0xF0, 0x0F, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF5, 0xB8, 0x9B, 0xC0, 0xF3, +0x20, 0x6B, 0x82, 0xF5, 0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0x20, 0xF3, 0x13, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF0, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x42, 0xF3, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x81, 0xF0, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, 0x08, 0x6C, 0x18, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x08, 0x93, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0xDD, 0x9B, 0x2B, 0xE9, 0xA1, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF5, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0xA2, 0xF5, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF5, -0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF5, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF5, 0xCC, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF5, 0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF5, 0xD0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xC2, 0xF5, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF5, 0xD4, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, 0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF5, 0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xC2, 0xF5, 0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF5, 0xDC, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, 0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF6, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xC2, 0xF5, 0xD0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF6, 0xC4, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, 0xD4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF6, 0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xC2, 0xF5, 0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF6, 0xCC, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, 0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x03, 0xF6, 0x10, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xE2, 0xF5, 0x00, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, -0x03, 0xF6, 0x10, 0x4B, 0xC0, 0x9B, 0x40, 0xEA, +0xE2, 0xF5, 0x00, 0x4B, 0xC0, 0x9B, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x05, 0x67, -0x83, 0xF4, 0xB0, 0x9A, 0x21, 0xF0, 0x04, 0x6C, -0x80, 0x18, 0x24, 0x39, 0x40, 0xC0, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF3, 0xA4, 0x9A, 0x03, 0xF2, -0x04, 0x6C, 0x80, 0x18, 0x24, 0x39, 0x01, 0x72, +0x02, 0xF5, 0xBC, 0x9A, 0x21, 0xF0, 0x04, 0x6C, +0x80, 0x18, 0xF4, 0x16, 0x40, 0xC0, 0x30, 0xF0, +0x20, 0x6A, 0x02, 0xF4, 0xB0, 0x9A, 0x03, 0xF2, +0x04, 0x6C, 0x80, 0x18, 0xF4, 0x16, 0x01, 0x72, 0x02, 0x61, 0x03, 0x6A, 0x06, 0x10, 0x02, 0x2A, 0x01, 0x6A, 0x03, 0x10, 0x05, 0x72, 0x02, 0x61, 0x02, 0x6A, 0x41, 0xC0, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x05, 0x67, 0x01, 0x6D, 0x21, 0xF0, -0x00, 0x6C, 0xAB, 0xED, 0x80, 0x18, 0x24, 0x39, +0x00, 0x6C, 0xAB, 0xED, 0x80, 0x18, 0xF4, 0x16, 0xF0, 0x6B, 0x4C, 0xEB, 0x72, 0x33, 0x61, 0xC0, 0x0F, 0x6B, 0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF3, 0xB4, 0x9A, 0x60, 0xC0, 0x03, 0xF2, -0x04, 0x6C, 0x80, 0x18, 0x24, 0x39, 0x0C, 0x72, +0xE2, 0xF5, 0xA4, 0x9A, 0x60, 0xC0, 0x03, 0xF2, +0x04, 0x6C, 0x80, 0x18, 0xF4, 0x16, 0x0C, 0x72, 0x02, 0x61, 0x03, 0x6A, 0x09, 0x10, 0x08, 0x72, 0x02, 0x61, 0x01, 0x6A, 0x05, 0x10, 0x04, 0x72, 0x02, 0x61, 0x02, 0x6A, 0x01, 0x10, 0x01, 0x2A, -0x42, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, -0xB8, 0x9A, 0x23, 0xF6, 0x04, 0x6C, 0x80, 0x18, -0x24, 0x39, 0x4F, 0xEA, 0x43, 0xC0, 0x01, 0x6A, +0x42, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, +0xB0, 0x9A, 0x23, 0xF6, 0x04, 0x6C, 0x80, 0x18, +0xF4, 0x16, 0x4F, 0xEA, 0x43, 0xC0, 0x01, 0x6A, 0x44, 0xC0, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x69, 0x02, 0x5D, 0x0D, 0xD5, 0x0F, 0xD7, 0xCC, 0xE9, 0x70, 0x60, 0x54, 0x59, 0x6E, 0x60, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x68, 0x03, 0xF1, 0x00, 0x4B, +0x30, 0xF0, 0x20, 0x68, 0xE2, 0xF5, 0x08, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, 0x63, 0xF4, 0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF6, -0xB4, 0x9B, 0x63, 0xF4, 0x1C, 0x6C, 0xD1, 0x67, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, -0x00, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xE2, 0xF5, +0xAC, 0x9B, 0x63, 0xF4, 0x1C, 0x6C, 0xD1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, +0x08, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, 0x63, 0xF4, 0x1C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0xE5, 0xF5, 0x08, 0x6C, 0xFF, 0x6D, 0x80, 0x18, -0x24, 0x39, 0x00, 0xF6, 0x40, 0x30, 0x00, 0xF6, +0xF4, 0x16, 0x00, 0xF6, 0x40, 0x30, 0x00, 0xF6, 0x03, 0x30, 0x40, 0x6A, 0x0C, 0xEA, 0x03, 0x22, 0x80, 0x6A, 0x4B, 0xEA, 0x4D, 0xE8, 0x0F, 0x92, 0x0B, 0x72, 0x10, 0x61, 0x0D, 0x93, 0xA3, 0xF0, 0x00, 0x6A, 0x06, 0xD2, 0x05, 0xF1, 0x00, 0x4A, 0x07, 0xD2, 0x68, 0x32, 0x7D, 0x67, 0x49, 0xE3, -0x8C, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF6, -0xB8, 0x9A, 0x13, 0x10, 0x0F, 0x92, 0x00, 0x6B, +0x8C, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, +0xB0, 0x9A, 0x13, 0x10, 0x0F, 0x92, 0x00, 0x6B, 0x0C, 0x72, 0x13, 0x61, 0x0D, 0x93, 0xE3, 0xF0, 0x08, 0x6A, 0x04, 0xD2, 0x05, 0xF1, 0x00, 0x4A, 0x05, 0xD2, 0x68, 0x32, 0x7D, 0x67, 0x49, 0xE3, -0x88, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF6, -0xBC, 0x9A, 0x80, 0x18, 0x24, 0x39, 0xFF, 0x6B, +0x88, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, +0xB4, 0x9A, 0x80, 0x18, 0xF4, 0x16, 0xFF, 0x6B, 0x4C, 0xEB, 0x0D, 0xE3, 0x00, 0x53, 0x00, 0x68, 0x02, 0x61, 0xFF, 0x68, 0x6C, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x44, 0x9A, 0x03, 0xF1, 0xA0, 0x9B, 0x63, 0xF4, +0x44, 0x9A, 0xE2, 0xF5, 0xA8, 0x9B, 0x63, 0xF4, 0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x01, 0x10, 0xFF, 0x68, 0x50, 0x67, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, @@ -72786,7 +53932,7 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x6F, 0xA4, 0x01, 0x6A, 0x37, 0x2B, 0x04, 0x92, 0x40, 0x5A, 0x00, 0x6A, 0x33, 0x60, 0x83, 0xF4, 0x10, 0x68, 0x10, 0xF0, 0x00, 0x69, 0x90, 0x67, -0xB1, 0x67, 0x80, 0x18, 0x24, 0x39, 0x08, 0x22, +0xB1, 0x67, 0x80, 0x18, 0xF4, 0x16, 0x08, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x90, 0x67, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x04, 0x92, 0x04, 0x6C, 0x06, 0x93, 0x8B, 0xEC, @@ -72804,34 +53950,34 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x26, 0x67, 0xAC, 0xE8, 0x01, 0x6A, 0x3F, 0x2B, 0x02, 0x5E, 0x00, 0x6A, 0x3C, 0x60, 0x83, 0xF4, 0x10, 0x6C, 0x10, 0xF0, 0x00, 0x6D, 0x80, 0x18, -0x24, 0x39, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xF4, 0x16, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x83, 0xF4, 0x10, 0x6C, 0x10, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x0F, 0x92, 0x0B, 0x72, 0x13, 0x61, 0xA3, 0xF0, 0x00, 0x6B, 0x06, 0xD3, 0x05, 0xF1, 0x00, 0x4B, 0x07, 0xD3, 0x28, 0x31, 0x7D, 0x67, 0x25, 0xE3, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x9A, 0x8C, 0xA9, 0x03, 0xF6, -0xB8, 0x9B, 0x12, 0x10, 0xE3, 0xF0, 0x08, 0x6B, +0xC0, 0xF3, 0x44, 0x9A, 0x8C, 0xA9, 0xE2, 0xF5, +0xB0, 0x9B, 0x12, 0x10, 0xE3, 0xF0, 0x08, 0x6B, 0x04, 0xD3, 0x05, 0xF1, 0x00, 0x4B, 0x05, 0xD3, 0x28, 0x31, 0x7D, 0x67, 0x25, 0xE3, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x9A, 0x88, 0xA9, 0x03, 0xF6, 0xBC, 0x9B, +0x44, 0x9A, 0x88, 0xA9, 0xE2, 0xF5, 0xB4, 0x9B, 0xD0, 0x67, 0x40, 0xEA, 0x01, 0x6A, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, 0x0C, 0xD4, 0x25, 0x67, 0xA0, 0xA5, 0x00, 0x6E, -0x0B, 0x6F, 0x80, 0x18, 0x38, 0x4E, 0x0C, 0x94, +0x0B, 0x6F, 0x80, 0x18, 0xE8, 0x44, 0x0C, 0x94, 0xA1, 0xA1, 0x01, 0x6E, 0x0B, 0x6F, 0x80, 0x18, -0x38, 0x4E, 0x0C, 0x94, 0xA2, 0xA1, 0x00, 0x6E, -0x0C, 0x6F, 0x80, 0x18, 0x38, 0x4E, 0x0C, 0x94, +0xE8, 0x44, 0x0C, 0x94, 0xA2, 0xA1, 0x00, 0x6E, +0x0C, 0x6F, 0x80, 0x18, 0xE8, 0x44, 0x0C, 0x94, 0xA3, 0xA1, 0x01, 0x6E, 0x0C, 0x6F, 0x80, 0x18, -0x38, 0x4E, 0xFD, 0x6A, 0x00, 0x6B, 0x11, 0x67, +0xE8, 0x44, 0xFD, 0x6A, 0x00, 0x6B, 0x11, 0x67, 0x06, 0xD2, 0x07, 0xD3, 0x07, 0x93, 0x03, 0x6A, 0x6C, 0xEA, 0x03, 0x72, 0x0A, 0x61, 0x44, 0x80, 0xA1, 0x80, 0xC2, 0x80, 0xE3, 0x80, 0x0C, 0x94, 0x04, 0xD2, 0x06, 0x92, 0x05, 0xD2, 0x80, 0x18, -0x0A, 0x4E, 0x06, 0x92, 0x07, 0x93, 0x01, 0x48, +0xBA, 0x44, 0x06, 0x92, 0x07, 0x93, 0x01, 0x48, 0x01, 0x4A, 0x06, 0xD2, 0x01, 0x4B, 0x07, 0xD3, 0x06, 0x93, 0xFF, 0x6A, 0x4C, 0xEB, 0x07, 0x92, 0x06, 0xD3, 0x1C, 0x72, 0xE3, 0x61, 0x11, 0x67, @@ -72839,7 +53985,7 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x03, 0x72, 0x0D, 0x61, 0x20, 0xF0, 0xAD, 0x80, 0x20, 0xF0, 0xCE, 0x80, 0x20, 0xF0, 0xEF, 0x80, 0x20, 0xF0, 0x50, 0x80, 0x0C, 0x94, 0x05, 0xD1, -0x04, 0xD2, 0x80, 0x18, 0x0A, 0x4E, 0x01, 0x49, +0x04, 0xD2, 0x80, 0x18, 0xBA, 0x44, 0x01, 0x49, 0x3D, 0x71, 0x01, 0x48, 0xEA, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x02, 0x5D, 0x03, 0x61, @@ -72848,13 +53994,13 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x05, 0xD2, 0xA8, 0x35, 0x5D, 0x67, 0xB5, 0xE2, 0x44, 0x9D, 0xFF, 0x6C, 0xCC, 0xEC, 0x88, 0x34, 0x51, 0xE4, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEC, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0xAC, 0x9A, -0xEC, 0xED, 0x80, 0x18, 0x24, 0x39, 0x07, 0x97, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, 0xB4, 0x9A, +0xEC, 0xED, 0x80, 0x18, 0xF4, 0x16, 0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, -0x20, 0xF0, 0x24, 0xA4, 0x63, 0xF3, 0xEC, 0x9A, +0x20, 0xF0, 0x24, 0xA4, 0xE2, 0xF3, 0xF4, 0x9A, 0x05, 0x67, 0x18, 0x6E, 0x00, 0x6D, 0x80, 0x18, -0x8E, 0x4E, 0xEB, 0x49, 0xFF, 0x6B, 0x6C, 0xE9, +0x3E, 0x45, 0xEB, 0x49, 0xFF, 0x6B, 0x6C, 0xE9, 0x02, 0x59, 0x4F, 0x60, 0x4C, 0xEB, 0x0F, 0x5B, 0x78, 0x67, 0x01, 0x5B, 0x78, 0x67, 0x6B, 0xEB, 0x6C, 0xE8, 0x01, 0x70, 0x12, 0x60, 0x05, 0x20, @@ -72879,15 +54025,15 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x04, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, 0x02, 0x5D, 0x05, 0x67, 0x12, 0x91, 0x37, 0x60, 0x04, 0x26, 0x04, 0xD1, -0x80, 0x18, 0x68, 0x4A, 0x33, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF3, 0x4C, 0x9A, 0x4C, 0xEF, +0x80, 0x18, 0x18, 0x41, 0x33, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF3, 0x54, 0x9A, 0x4C, 0xEF, 0x4A, 0xEF, 0x08, 0xD7, 0x0C, 0x60, 0x00, 0x6E, -0xE2, 0x67, 0x80, 0x18, 0x8E, 0x4E, 0x61, 0x42, +0xE2, 0x67, 0x80, 0x18, 0x3E, 0x45, 0x61, 0x42, 0x24, 0x23, 0x08, 0x94, 0xD1, 0x67, 0xA2, 0x67, -0x80, 0x18, 0x59, 0x4A, 0x22, 0x67, 0x03, 0xF0, +0x80, 0x18, 0x09, 0x41, 0x22, 0x67, 0x03, 0xF0, 0x08, 0x6B, 0x06, 0xD3, 0x05, 0xF1, 0x00, 0x4B, 0x07, 0xD3, 0x08, 0x30, 0x7D, 0x67, 0x01, 0xE3, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0xCC, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, 0xD4, 0x9B, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x8C, 0xA8, 0x01, 0x6D, 0xAB, 0xED, 0x2C, 0xEE, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, @@ -72895,21 +54041,21 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x01, 0x10, 0x00, 0x6A, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x00, 0x6D, 0x0A, 0xD4, 0x80, 0x18, 0x32, 0x4A, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, 0x28, 0x9A, -0x30, 0xF0, 0x20, 0x68, 0x6E, 0xF6, 0x08, 0x48, +0x00, 0x6D, 0x0A, 0xD4, 0x80, 0x18, 0xE2, 0x40, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF5, 0x24, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0xCA, 0xF4, 0x18, 0x48, 0x00, 0x6A, 0x90, 0x67, 0xF1, 0x67, 0xA2, 0x67, -0xBC, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, +0xBC, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6A, 0x00, 0x6D, -0xBC, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, +0xBC, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x00, 0x6A, 0xF1, 0x67, 0x90, 0x67, 0xBC, 0x6E, -0xA2, 0x67, 0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, -0x0A, 0x94, 0x01, 0x6D, 0x80, 0x18, 0x32, 0x4A, +0xA2, 0x67, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x0A, 0x94, 0x01, 0x6D, 0x80, 0x18, 0xE2, 0x40, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x63, 0xF5, 0x10, 0x69, 0x01, 0x6D, 0x91, 0x67, 0xAB, 0xED, 0x80, 0x18, -0x24, 0x39, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x68, +0xF4, 0x16, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x68, 0x04, 0x96, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x91, 0x67, 0xAB, 0xED, 0xFF, 0xF5, 0x1E, 0x4E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, @@ -72919,36 +54065,36 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, 0xFF, 0x6D, 0x83, 0xF4, 0x10, 0x6C, 0x01, 0x4D, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x18, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, 0x10, 0x9A, 0x00, 0x6C, 0x01, 0x6E, 0xB0, 0x67, 0x80, 0x18, -0xB1, 0x39, 0x00, 0x6C, 0xB0, 0x67, 0xC4, 0x67, -0x80, 0x18, 0xB1, 0x39, 0xB0, 0x67, 0x00, 0x6C, -0x01, 0x6E, 0x80, 0x18, 0xB1, 0x39, 0xC0, 0xF3, +0x81, 0x17, 0x00, 0x6C, 0xB0, 0x67, 0xC4, 0x67, +0x80, 0x18, 0x81, 0x17, 0xB0, 0x67, 0x00, 0x6C, +0x01, 0x6E, 0x80, 0x18, 0x81, 0x17, 0xC0, 0xF3, 0x44, 0x99, 0xFF, 0x6D, 0x83, 0xF4, 0x10, 0x6C, 0x01, 0x4D, 0x01, 0x6E, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x52, 0x9C, 0x40, 0xA2, 0x13, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF0, 0x18, 0x9A, 0x00, 0x6C, 0x01, 0x6E, -0xB0, 0x67, 0x80, 0x18, 0xB1, 0x39, 0x00, 0x6C, -0xC4, 0x67, 0xB0, 0x67, 0x80, 0x18, 0xB1, 0x39, +0xE2, 0xF3, 0x10, 0x9A, 0x00, 0x6C, 0x01, 0x6E, +0xB0, 0x67, 0x80, 0x18, 0x81, 0x17, 0x00, 0x6C, +0xC4, 0x67, 0xB0, 0x67, 0x80, 0x18, 0x81, 0x17, 0x00, 0x6C, 0xB0, 0x67, 0x01, 0x6E, 0x80, 0x18, -0xB1, 0x39, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x81, 0x17, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x24, 0x67, 0x09, 0xD5, -0x80, 0x18, 0x53, 0x4C, 0x52, 0x99, 0x40, 0xA2, +0x80, 0x18, 0x03, 0x43, 0x52, 0x99, 0x40, 0xA2, 0x04, 0x22, 0x91, 0x67, 0x01, 0x6D, 0x80, 0x18, -0x27, 0x4C, 0x20, 0xF0, 0x58, 0xA1, 0x04, 0x22, +0xD7, 0x42, 0x20, 0xF0, 0x58, 0xA1, 0x04, 0x22, 0x91, 0x67, 0xE0, 0xF3, 0x1F, 0x6D, 0x02, 0x10, 0x91, 0x67, 0x00, 0x6D, 0x30, 0xF0, 0x20, 0x68, -0x80, 0x18, 0x35, 0x4C, 0xC0, 0xF3, 0x44, 0x98, +0x80, 0x18, 0xE5, 0x42, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0x6D, 0xC5, 0x67, 0x03, 0xF0, 0x0C, 0x6C, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF3, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF3, 0x10, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0x6D, 0xC5, 0x67, 0x08, 0xF1, 0x0C, 0x6C, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF3, 0x10, 0x4B, 0xC0, 0xF3, +0x20, 0x6B, 0xA2, 0xF3, 0x10, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, 0x08, 0xF1, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x09, 0x92, 0x07, 0x2A, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF4, 0x1C, 0x6C, @@ -72956,7 +54102,7 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x00, 0x6A, 0x01, 0x73, 0x0B, 0x61, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0x6D, 0x23, 0xF4, 0x1C, 0x6C, 0xC5, 0x67, 0x40, 0xEA, 0x91, 0x67, 0x80, 0x18, -0x38, 0x4F, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, +0xE8, 0x45, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, 0x0C, 0xD4, 0x20, 0xF0, 0x6F, 0xA4, 0xFF, 0x69, @@ -72965,11 +54111,11 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x01, 0x76, 0x02, 0x61, 0x03, 0x59, 0x03, 0x10, 0x02, 0x76, 0x03, 0x61, 0x05, 0x59, 0xE0, 0xF1, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x0C, 0x94, -0x63, 0xF3, 0xEC, 0x9A, 0x00, 0x6D, 0x18, 0x6E, -0x80, 0x18, 0x8E, 0x4E, 0x07, 0xD2, 0x07, 0x93, +0xE2, 0xF3, 0xF4, 0x9A, 0x00, 0x6D, 0x18, 0x6E, +0x80, 0x18, 0x3E, 0x45, 0x07, 0xD2, 0x07, 0x93, 0x06, 0xF0, 0x01, 0x6A, 0x4B, 0xEA, 0x4C, 0xEB, 0x07, 0x58, 0x06, 0xD3, 0x08, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0x08, 0x33, 0x82, 0xF6, 0x00, 0x4A, +0x20, 0x6A, 0x08, 0x33, 0xC2, 0xF1, 0x1C, 0x4A, 0x69, 0xE2, 0x40, 0x9A, 0x00, 0xEA, 0x00, 0x69, 0x5A, 0x11, 0x05, 0x70, 0x25, 0x61, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, @@ -72980,7 +54126,7 @@ u8 array_mp_8822c_fw_wowlan[] = { 0xA1, 0xF1, 0x14, 0x69, 0x91, 0x67, 0x00, 0xF7, 0x00, 0x6D, 0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, -0x23, 0xF6, 0xA4, 0x9B, 0x04, 0x6E, 0x4C, 0x10, +0xE2, 0xF5, 0xB8, 0x9B, 0x04, 0x6E, 0x4C, 0x10, 0x06, 0x70, 0x25, 0x61, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, 0x10, 0x6C, 0xE7, 0xF7, 0x10, 0x6D, 0xA0, 0xF2, 0x0B, 0x6E, @@ -72989,8 +54135,8 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA1, 0xF1, 0x14, 0x69, 0x91, 0x67, 0x00, 0xF7, 0x00, 0x6D, 0x06, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x23, 0xF6, -0xA4, 0x9B, 0x05, 0x6E, 0x25, 0x10, 0x25, 0x28, +0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0xE2, 0xF5, +0xB8, 0x9B, 0x05, 0x6E, 0x25, 0x10, 0x25, 0x28, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, 0x10, 0x6C, 0xE7, 0xF7, 0x10, 0x6D, 0x80, 0xF1, 0x1B, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, @@ -72999,17 +54145,17 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x44, 0x98, 0xA1, 0xF1, 0x14, 0x69, 0x91, 0x67, 0x00, 0xF7, 0x00, 0x6D, 0x07, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x23, 0xF6, 0xA4, 0x9B, 0x91, 0x67, 0x06, 0x6E, +0xE2, 0xF5, 0xB8, 0x9B, 0x91, 0x67, 0x06, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0xA1, 0xF1, 0x10, 0x6C, 0x0F, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x06, 0x93, 0x06, 0xF0, 0x00, 0x6A, 0xA1, 0xF4, 0x1C, 0x6C, 0x4D, 0xEB, -0x06, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, -0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x00, 0x6E, +0x06, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF5, +0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x00, 0x6E, 0x18, 0x69, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF0, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x42, 0xF3, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF2, 0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, 0xAC, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF2, 0x08, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF2, 0x0C, 0x6C, 0x0F, 0x6D, 0x06, 0x6E, @@ -73017,7 +54163,7 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x0C, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x0C, 0x93, 0x53, 0x9B, 0x40, 0xA2, 0xA0, 0xF0, 0x05, 0x2A, 0x83, 0x67, 0x05, 0x6D, -0x80, 0x18, 0x2F, 0x4B, 0x0C, 0x94, 0x06, 0x6D, +0x80, 0x18, 0xDF, 0x41, 0x0C, 0x94, 0x06, 0x6D, 0x6A, 0x10, 0x01, 0x71, 0x09, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF2, 0x00, 0x6C, 0x10, 0x6D, 0x01, 0x6E, 0x08, 0x10, @@ -73031,12 +54177,12 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x2D, 0xEE, 0xA1, 0xF1, 0x10, 0x6C, 0x1F, 0xF7, 0x00, 0x6D, 0x40, 0xEA, 0x06, 0x93, 0x04, 0xF0, 0x00, 0x6A, 0xA1, 0xF4, 0x1C, 0x6C, 0x4D, 0xEB, -0x06, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, -0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6E, +0x06, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF5, +0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6E, 0x10, 0x69, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xA3, 0xF0, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x42, 0xF3, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF2, 0x1C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF0, 0xAC, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF2, 0x08, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF2, 0x0C, 0x6C, 0x0F, 0x6D, 0x08, 0x6E, @@ -73044,8 +54190,8 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x0C, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x0C, 0x93, 0x53, 0x9B, 0x40, 0xA2, 0x3A, 0x2A, 0x83, 0x67, 0x04, 0x6D, 0x80, 0x18, -0x2F, 0x4B, 0x0C, 0x94, 0x00, 0x6D, 0x80, 0x18, -0x3E, 0x4B, 0x31, 0x10, 0x30, 0xF0, 0x20, 0x68, +0xDF, 0x41, 0x0C, 0x94, 0x00, 0x6D, 0x80, 0x18, +0xEE, 0x41, 0x31, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0xA1, 0xF1, 0x10, 0x6C, 0x0F, 0x6D, 0x0A, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA1, 0xF1, 0x10, 0x6C, 0xC0, 0x6D, @@ -73054,39 +54200,39 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x1F, 0xF7, 0x00, 0x6D, 0x40, 0xEA, 0x06, 0x93, 0x02, 0xF0, 0x00, 0x6A, 0xA1, 0xF4, 0x1C, 0x6C, 0x4D, 0xEB, 0x06, 0xD3, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF1, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x02, 0xF5, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6E, 0x08, 0x69, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x81, 0xF0, 0x0C, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, 0x06, 0x6E, 0x40, 0xEA, 0x0C, 0x94, -0x30, 0xF0, 0x20, 0x68, 0x6E, 0xF6, 0x08, 0x48, -0x00, 0x6D, 0x80, 0x18, 0x32, 0x4A, 0x01, 0x6A, +0x30, 0xF0, 0x20, 0x68, 0xCA, 0xF4, 0x18, 0x48, +0x00, 0x6D, 0x80, 0x18, 0xE2, 0x40, 0x01, 0x6A, 0x90, 0x67, 0x00, 0x6D, 0xEE, 0x6E, 0x04, 0x6F, -0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, 0x12, 0x6B, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x12, 0x6B, 0x90, 0x67, 0x00, 0x6D, 0x33, 0x6E, 0x1F, 0x6F, -0x04, 0xD3, 0x80, 0x18, 0xD3, 0x4E, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF3, 0x0C, 0x4A, 0xE0, 0x9A, +0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF3, 0x14, 0x4A, 0xE0, 0x9A, 0x90, 0x67, 0x00, 0x6D, 0x3F, 0x6E, 0x04, 0xD1, -0x80, 0x18, 0xD3, 0x4E, 0x00, 0x6B, 0xA3, 0x67, +0x80, 0x18, 0x83, 0x45, 0x00, 0x6B, 0xA3, 0x67, 0x90, 0x67, 0xEE, 0x6E, 0x04, 0x6F, 0x04, 0xD3, -0x80, 0x18, 0xD3, 0x4E, 0x01, 0x6A, 0x90, 0x67, +0x80, 0x18, 0x83, 0x45, 0x01, 0x6A, 0x90, 0x67, 0xA2, 0x67, 0xEE, 0x6E, 0x04, 0x6F, 0x04, 0xD2, -0x80, 0x18, 0xD3, 0x4E, 0x12, 0x6B, 0x90, 0x67, +0x80, 0x18, 0x83, 0x45, 0x12, 0x6B, 0x90, 0x67, 0x01, 0x6D, 0x33, 0x6E, 0x1F, 0x6F, 0x04, 0xD3, -0x80, 0x18, 0xD3, 0x4E, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF3, 0x0C, 0x4A, 0xE0, 0x9A, 0x90, 0x67, +0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF3, 0x14, 0x4A, 0xE0, 0x9A, 0x90, 0x67, 0x01, 0x6D, 0x3F, 0x6E, 0x04, 0xD1, 0x80, 0x18, -0xD3, 0x4E, 0x00, 0x6B, 0x90, 0x67, 0x01, 0x6D, +0x83, 0x45, 0x00, 0x6B, 0x90, 0x67, 0x01, 0x6D, 0xEE, 0x6E, 0x04, 0x6F, 0x04, 0xD3, 0x80, 0x18, -0xD3, 0x4E, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, -0x0C, 0x4B, 0xE0, 0x9B, 0x06, 0x92, 0x90, 0x67, +0x83, 0x45, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, +0x14, 0x4B, 0xE0, 0x9B, 0x06, 0x92, 0x90, 0x67, 0x00, 0x6D, 0x18, 0x6E, 0x04, 0xD2, 0x80, 0x18, -0xD3, 0x4E, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, -0x0C, 0x4B, 0x06, 0x92, 0xE0, 0x9B, 0x90, 0x67, +0x83, 0x45, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, +0x14, 0x4B, 0x06, 0x92, 0xE0, 0x9B, 0x90, 0x67, 0x01, 0x6D, 0x18, 0x6E, 0x04, 0xD2, 0x80, 0x18, -0xD3, 0x4E, 0x0C, 0x94, 0x01, 0x6D, 0x80, 0x18, -0x32, 0x4A, 0x07, 0x92, 0x01, 0x4A, 0x08, 0x22, -0x0C, 0x94, 0x80, 0x18, 0x0F, 0x4F, 0x0C, 0x94, -0x80, 0x18, 0x38, 0x4F, 0x01, 0x6A, 0x01, 0x10, +0x83, 0x45, 0x0C, 0x94, 0x01, 0x6D, 0x80, 0x18, +0xE2, 0x40, 0x07, 0x92, 0x01, 0x4A, 0x08, 0x22, +0x0C, 0x94, 0x80, 0x18, 0xBF, 0x45, 0x0C, 0x94, +0x80, 0x18, 0xE8, 0x45, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x08, 0xD4, 0x09, 0xD5, @@ -73094,62 +54240,62 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x02, 0x75, 0x29, 0x61, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0xC1, 0xF4, 0x00, 0x69, 0x91, 0x67, 0xE0, 0xF7, 0x1F, 0x6D, 0x00, 0x6E, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF6, -0x00, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, +0x1C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0x49, 0x91, 0x67, 0xE0, 0xF7, 0x1F, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF6, 0x00, 0x4B, 0xC0, 0xF3, +0x20, 0x6B, 0xE2, 0xF5, 0x1C, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x03, 0x6A, 0x2A, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0xC1, 0xF4, 0x00, 0x69, 0x91, 0x67, 0xE0, 0xF7, 0x1F, 0x6D, 0x00, 0xF4, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF6, 0x00, 0x4B, 0xA0, 0x9B, +0x20, 0x6B, 0xE2, 0xF5, 0x1C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0x49, 0x91, 0x67, 0xE0, 0xF7, 0x1F, 0x6D, 0x00, 0xF4, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF6, 0x00, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xE2, 0xF5, 0x1C, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x09, 0x92, 0x6F, 0x42, 0x02, 0x5B, 0x46, 0x60, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF5, 0x10, 0x69, 0x91, 0x67, 0x00, 0xF3, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF5, 0xB4, 0x9B, 0xC0, 0xF3, +0x20, 0x6B, 0x82, 0xF5, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0xA0, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF4, 0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x41, 0xF4, 0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF4, 0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xE2, 0xF4, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x41, 0xF4, 0x14, 0x6C, 0x00, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, 0xA8, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, 0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF4, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF4, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x02, 0xF5, 0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x09, 0x96, 0xFD, 0xF2, 0x14, 0x49, 0x91, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0x91, 0x67, 0xA3, 0xF3, 0xA4, 0x9B, +0x44, 0x98, 0x91, 0x67, 0x02, 0xF4, 0xB0, 0x9B, 0x09, 0x96, 0x47, 0x10, 0x03, 0x72, 0x46, 0x61, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF5, 0x10, 0x69, 0x91, 0x67, 0x00, 0xF3, 0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF5, 0xB4, 0x9B, 0xC0, 0xF3, +0x20, 0x6B, 0x82, 0xF5, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0xA0, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF4, 0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x41, 0xF4, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x43, 0xF4, 0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xE2, 0xF4, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x41, 0xF4, 0x14, 0x6C, 0x01, 0x6E, 0x40, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, 0xA8, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, 0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF4, 0x18, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF4, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x02, 0xF5, 0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xFD, 0xF2, 0x14, 0x49, 0x91, 0x67, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, -0x44, 0x98, 0xA3, 0xF3, 0xA4, 0x9B, 0x91, 0x67, +0x44, 0x98, 0x02, 0xF4, 0xB0, 0x9B, 0x91, 0x67, 0x03, 0x6E, 0x40, 0xEA, 0x08, 0x94, 0x80, 0x18, -0x38, 0x4F, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0xE8, 0x45, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x03, 0x75, 0x24, 0x67, 0x53, 0x60, 0x01, 0x76, 0x09, 0x61, 0x30, 0xF0, @@ -73171,67 +54317,67 @@ u8 array_mp_8822c_fw_wowlan[] = { 0xFF, 0x6D, 0x33, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF6, 0x0C, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0x00, 0xF4, 0x04, 0x6E, 0x40, 0xEA, -0x91, 0x67, 0x80, 0x18, 0x38, 0x4F, 0x07, 0x97, +0x91, 0x67, 0x80, 0x18, 0xE8, 0x45, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x01, 0x76, 0xD0, 0x61, 0xC6, 0x17, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x01, 0x75, 0x08, 0xD4, 0x26, 0x61, 0x30, 0xF0, -0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, -0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF4, +0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x0C, 0x69, 0x91, 0x67, 0x20, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF5, 0xA0, 0x9B, 0xC0, 0xF3, +0x20, 0x6B, 0x82, 0xF5, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, -0x91, 0x67, 0xA3, 0xF5, 0xB4, 0x9B, 0x00, 0x6E, +0x91, 0x67, 0x82, 0xF5, 0xA4, 0x9B, 0x00, 0x6E, 0x46, 0x10, 0x02, 0x75, 0x1D, 0x61, 0x30, 0xF0, -0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0xA3, 0xF3, -0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x02, 0xF4, +0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x04, 0x6C, 0x05, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x0C, 0x69, 0x91, 0x67, 0x20, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, -0x23, 0xF5, 0xA0, 0x9B, 0x00, 0x6E, 0x1E, 0x10, +0x82, 0xF5, 0xA0, 0x9B, 0x00, 0x6E, 0x1E, 0x10, 0x03, 0x75, 0x26, 0x61, 0x30, 0xF0, 0x20, 0x6B, -0x30, 0xF0, 0x20, 0x68, 0xA3, 0xF3, 0xA4, 0x9B, +0x30, 0xF0, 0x20, 0x68, 0x02, 0xF4, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x0C, 0x69, 0x91, 0x67, 0x20, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF5, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x82, 0xF5, 0xA0, 0x9B, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF5, -0xB4, 0x9B, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, -0x08, 0x94, 0x80, 0x18, 0x38, 0x4F, 0x07, 0x97, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x82, 0xF5, +0xA4, 0x9B, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0x08, 0x94, 0x80, 0x18, 0xE8, 0x45, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x01, 0x6A, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x04, 0x67, 0x25, 0x67, -0x80, 0x18, 0x26, 0x51, 0xB1, 0x67, 0x90, 0x67, -0x80, 0x18, 0x7B, 0x50, 0x20, 0xF0, 0x2D, 0xC0, -0x90, 0x67, 0x80, 0x18, 0x38, 0x4F, 0x07, 0x97, +0x80, 0x18, 0xD6, 0x47, 0xB1, 0x67, 0x90, 0x67, +0x80, 0x18, 0x2B, 0x47, 0x20, 0xF0, 0x2D, 0xC0, +0x90, 0x67, 0x80, 0x18, 0xE8, 0x45, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x01, 0x75, 0x04, 0x67, 0x0C, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, -0x03, 0xF2, 0x04, 0x6C, 0x83, 0xF3, 0xB4, 0x9B, +0x03, 0xF2, 0x04, 0x6C, 0xE2, 0xF5, 0xA4, 0x9B, 0x08, 0x6E, 0x19, 0x10, 0x02, 0x75, 0x0C, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF2, 0x04, 0x6C, -0x83, 0xF3, 0xB4, 0x9B, 0x04, 0x6E, 0x0B, 0x10, +0xE2, 0xF5, 0xA4, 0x9B, 0x04, 0x6E, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, -0xC0, 0xF3, 0x44, 0x9A, 0x83, 0xF3, 0xB4, 0x9B, +0xC0, 0xF3, 0x44, 0x9A, 0xE2, 0xF5, 0xA4, 0x9B, 0x03, 0xF2, 0x04, 0x6C, 0x0C, 0x6E, 0x40, 0xEA, -0x90, 0x67, 0x80, 0x18, 0x38, 0x4F, 0x05, 0x97, +0x90, 0x67, 0x80, 0x18, 0xE8, 0x45, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0x7D, 0x67, 0x04, 0x67, 0x47, 0x43, 0x0A, 0xD6, 0x20, 0xF0, 0xAC, 0xC0, 0x21, 0x4A, 0x60, 0xA2, 0x46, 0x67, 0xAD, 0xEA, 0x20, 0xF0, 0x6B, 0xC4, 0x20, 0xF0, 0x4A, 0xC4, 0x25, 0x67, 0xA7, 0x67, -0x80, 0x18, 0x70, 0x51, 0x0A, 0x96, 0xB1, 0x67, -0x90, 0x67, 0x80, 0x18, 0xF7, 0x50, 0x90, 0x67, -0x80, 0x18, 0x38, 0x4F, 0x07, 0x97, 0x06, 0x91, +0x80, 0x18, 0x20, 0x48, 0x0A, 0x96, 0xB1, 0x67, +0x90, 0x67, 0x80, 0x18, 0xA7, 0x47, 0x90, 0x67, +0x80, 0x18, 0xE8, 0x45, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x0B, 0xD5, 0x0C, 0xD6, 0x20, 0xF0, 0x44, 0xA4, @@ -73242,8 +54388,8 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x04, 0xD3, 0x07, 0x10, 0x0B, 0x93, 0x04, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x50, 0x2A, 0xA3, 0x67, 0x04, 0xD2, 0x0C, 0x96, 0x90, 0x67, 0x80, 0x18, -0x81, 0x4A, 0x0C, 0x95, 0x90, 0x67, 0x80, 0x18, -0x65, 0x51, 0x20, 0xF0, 0x4B, 0xA0, 0x03, 0x2A, +0x31, 0x41, 0x0C, 0x95, 0x90, 0x67, 0x80, 0x18, +0x15, 0x48, 0x20, 0xF0, 0x4B, 0xA0, 0x03, 0x2A, 0x01, 0x6A, 0x20, 0xF0, 0x4B, 0xC0, 0x0B, 0x92, 0xFF, 0x4A, 0x02, 0x5A, 0x02, 0x60, 0x0B, 0x91, 0x0C, 0x10, 0x0B, 0x93, 0x03, 0x73, 0x05, 0x61, @@ -73251,16 +54397,16 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x06, 0x10, 0x04, 0x92, 0x04, 0x22, 0x20, 0xF0, 0x2B, 0xA0, 0x00, 0x6D, 0x01, 0x10, 0x03, 0x6D, 0x90, 0x67, 0xD1, 0x67, 0xF1, 0x67, 0x80, 0x18, -0x8A, 0x51, 0x05, 0x92, 0xFF, 0x6B, 0xEB, 0x4A, +0x3A, 0x48, 0x05, 0x92, 0xFF, 0x6B, 0xEB, 0x4A, 0x6C, 0xEA, 0x02, 0x5A, 0x18, 0x60, 0x20, 0xF0, 0x4A, 0xA0, 0x01, 0x72, 0x06, 0x61, 0x0C, 0x93, 0x01, 0x73, 0x03, 0x61, 0x90, 0x67, 0x01, 0x6D, 0x0C, 0x10, 0x20, 0xF0, 0x4A, 0xA0, 0x02, 0x72, 0x06, 0x61, 0x0C, 0x92, 0x02, 0x72, 0x03, 0x61, 0x90, 0x67, 0x02, 0x6D, 0x02, 0x10, 0x90, 0x67, -0x03, 0x6D, 0x80, 0x18, 0x9F, 0x4E, 0x90, 0x67, -0x80, 0x18, 0x0F, 0x4F, 0x90, 0x67, 0x80, 0x18, -0x38, 0x4F, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, +0x03, 0x6D, 0x80, 0x18, 0x4F, 0x45, 0x90, 0x67, +0x80, 0x18, 0xBF, 0x45, 0x90, 0x67, 0x80, 0x18, +0xE8, 0x45, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, 0x20, 0xF0, 0x44, 0xA4, @@ -73272,71 +54418,71 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x20, 0xF1, 0x1C, 0x61, 0x47, 0x41, 0x68, 0x4A, 0x6C, 0xEA, 0x04, 0x5A, 0x20, 0xF1, 0x16, 0x61, 0xB2, 0x59, 0x20, 0xF1, 0x13, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF3, 0xEC, 0x9A, 0x00, 0x6D, -0x18, 0x6E, 0x80, 0x18, 0x8E, 0x4E, 0x09, 0xD2, +0x20, 0x6A, 0xE2, 0xF3, 0xF4, 0x9A, 0x00, 0x6D, +0x18, 0x6E, 0x80, 0x18, 0x3E, 0x45, 0x09, 0xD2, 0x01, 0x4A, 0x20, 0xF1, 0x07, 0x22, 0x20, 0xF0, 0x6B, 0xA0, 0x0F, 0x59, 0x58, 0x67, 0x0B, 0xD2, 0x06, 0xD3, 0x0A, 0x2B, 0x21, 0xF0, 0x00, 0x6C, -0x0F, 0x6D, 0x80, 0x18, 0x24, 0x39, 0xFF, 0x6C, +0x0F, 0x6D, 0x80, 0x18, 0xF4, 0x16, 0xFF, 0x6C, 0x4C, 0xEC, 0x06, 0xD4, 0x20, 0xF0, 0x8B, 0xC0, 0x20, 0xF0, 0x8A, 0xA0, 0x08, 0xD4, 0x0F, 0x2C, 0x21, 0xF0, 0x00, 0x4C, 0xF0, 0x6D, 0x80, 0x18, -0x24, 0x39, 0x06, 0x94, 0xFF, 0x6B, 0x6C, 0xEA, +0xF4, 0x16, 0x06, 0x94, 0xFF, 0x6B, 0x6C, 0xEA, 0x4D, 0xEC, 0x6C, 0xEC, 0x08, 0xD4, 0x20, 0xF0, 0x4C, 0xC0, 0x20, 0xF0, 0x8A, 0xC0, 0x20, 0xF0, 0x8D, 0xA0, 0x07, 0xD4, 0x0D, 0x2C, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF4, 0xB0, 0x9A, 0x21, 0xF0, -0x04, 0x4C, 0x80, 0x18, 0x24, 0x39, 0xFF, 0x6B, +0x20, 0x6A, 0x02, 0xF5, 0xBC, 0x9A, 0x21, 0xF0, +0x04, 0x4C, 0x80, 0x18, 0xF4, 0x16, 0xFF, 0x6B, 0x4C, 0xEB, 0x07, 0xD3, 0x20, 0xF0, 0x6D, 0xC0, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF6, 0x48, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, 0x40, 0x9A, 0x09, 0x93, 0x0B, 0x94, 0x4C, 0xEB, 0x2D, 0xEB, 0x06, 0xD3, 0x16, 0x2C, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF6, 0x4C, 0x9A, 0x91, 0x59, 0x4D, 0xEB, +0x02, 0xF6, 0x44, 0x9A, 0x91, 0x59, 0x4D, 0xEB, 0x06, 0xD3, 0x05, 0x61, 0x30, 0xF0, 0x20, 0x6A, -0x63, 0xF1, 0x44, 0x9A, 0x07, 0x10, 0x50, 0x59, -0x07, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, -0x40, 0x9A, 0x06, 0x93, 0x4D, 0xEB, 0x06, 0xD3, -0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x32, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x0C, 0x4B, +0xE2, 0xF3, 0x44, 0x9A, 0x07, 0x10, 0x50, 0x59, +0x07, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF4, +0x48, 0x9A, 0x06, 0x93, 0x4D, 0xEB, 0x06, 0xD3, +0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0xE2, 0x40, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, 0x14, 0x4B, 0xE0, 0x9B, 0x06, 0x92, 0x30, 0xF0, 0x20, 0x6C, -0x6E, 0xF6, 0x08, 0x4C, 0x00, 0x6D, 0x18, 0x6E, -0x09, 0xD4, 0x04, 0xD2, 0x80, 0x18, 0xD3, 0x4E, -0x06, 0x94, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, -0x0C, 0x4A, 0x04, 0xD4, 0xE0, 0x9A, 0x09, 0x94, -0x01, 0x6D, 0x18, 0x6E, 0x80, 0x18, 0xD3, 0x4E, -0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x32, 0x4A, +0xCA, 0xF4, 0x18, 0x4C, 0x00, 0x6D, 0x18, 0x6E, +0x09, 0xD4, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x06, 0x94, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF3, +0x14, 0x4A, 0x04, 0xD4, 0xE0, 0x9A, 0x09, 0x94, +0x01, 0x6D, 0x18, 0x6E, 0x80, 0x18, 0x83, 0x45, +0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, 0xE2, 0x40, 0x0F, 0x59, 0x11, 0x60, 0x50, 0x98, 0x40, 0xA2, 0x07, 0x2A, 0x90, 0x67, 0x05, 0x6D, 0x80, 0x18, -0x2F, 0x4B, 0x90, 0x67, 0x06, 0x6D, 0x1A, 0x10, -0x90, 0x67, 0x04, 0x6D, 0x80, 0x18, 0x2F, 0x4B, +0xDF, 0x41, 0x90, 0x67, 0x06, 0x6D, 0x1A, 0x10, +0x90, 0x67, 0x04, 0x6D, 0x80, 0x18, 0xDF, 0x41, 0x90, 0x67, 0x00, 0x6D, 0x13, 0x10, 0x68, 0x41, 0xE4, 0x4B, 0xFF, 0x6A, 0x4C, 0xEB, 0x1D, 0x5B, 0x03, 0x60, 0x90, 0x67, 0x01, 0x6D, 0x0A, 0x10, 0x68, 0x41, 0xA4, 0x4B, 0x4C, 0xEB, 0x2D, 0x5B, 0x03, 0x60, 0x90, 0x67, 0x02, 0x6D, 0x02, 0x10, -0x90, 0x67, 0x03, 0x6D, 0x80, 0x18, 0x3E, 0x4B, -0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, 0x59, 0x4B, -0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, 0xA1, 0x4B, +0x90, 0x67, 0x03, 0x6D, 0x80, 0x18, 0xEE, 0x41, +0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, 0x09, 0x42, +0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, 0x51, 0x42, 0x0B, 0x93, 0x2F, 0x23, 0x90, 0x67, 0xB1, 0x67, -0x80, 0x18, 0xD5, 0x4A, 0x90, 0x67, 0x01, 0x6D, -0x00, 0x18, 0xAF, 0xC2, 0x40, 0xF4, 0x14, 0x6C, -0x80, 0x6D, 0x00, 0x6E, 0x80, 0x18, 0xB1, 0x39, +0x80, 0x18, 0x85, 0x41, 0x90, 0x67, 0x01, 0x6D, +0x00, 0x18, 0xAD, 0xC1, 0x40, 0xF4, 0x14, 0x6C, +0x80, 0x6D, 0x00, 0x6E, 0x80, 0x18, 0x81, 0x17, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6C, -0xC0, 0xF3, 0x44, 0x9C, 0x63, 0xF1, 0xA4, 0x9B, +0xC0, 0xF3, 0x44, 0x9C, 0xE2, 0xF3, 0xA4, 0x9B, 0x83, 0xF2, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF6, 0xB0, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF6, 0xA8, 0x9B, 0x83, 0xF4, 0x00, 0x6C, 0x0F, 0x6E, 0x40, 0xEA, 0x0A, 0x92, 0xFF, 0x6B, 0xEB, 0x4A, 0x6C, 0xEA, 0x02, 0x5A, 0x41, 0x60, 0x90, 0x67, 0x00, 0x6D, 0x3C, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, -0x20, 0x6C, 0xC0, 0xF3, 0x44, 0x9C, 0x63, 0xF1, +0x20, 0x6C, 0xC0, 0xF3, 0x44, 0x9C, 0xE2, 0xF3, 0xA4, 0x9B, 0x83, 0xF2, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x01, 0x6E, 0x40, 0xF4, 0x14, 0x6C, -0x80, 0x6D, 0x80, 0x18, 0xB1, 0x39, 0x90, 0x67, -0x02, 0x6D, 0x00, 0x18, 0xAF, 0xC2, 0x30, 0xF0, +0x80, 0x6D, 0x80, 0x18, 0x81, 0x17, 0x90, 0x67, +0x02, 0x6D, 0x00, 0x18, 0xAD, 0xC1, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF6, 0xB0, 0x9B, 0x83, 0xF4, +0x20, 0x6B, 0x02, 0xF6, 0xA8, 0x9B, 0x83, 0xF4, 0x00, 0x6C, 0x22, 0x6E, 0x40, 0xEA, 0x0A, 0x92, 0xFF, 0x6B, 0xEB, 0x4A, 0x6C, 0xEA, 0x02, 0x5A, 0x16, 0x60, 0x08, 0x94, 0x01, 0x74, 0x06, 0x61, @@ -73344,27 +54490,17882 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x01, 0x6D, 0x0B, 0x10, 0x08, 0x93, 0x02, 0x73, 0x06, 0x61, 0x07, 0x94, 0x02, 0x74, 0x03, 0x61, 0x90, 0x67, 0x02, 0x6D, 0x02, 0x10, 0x90, 0x67, -0x03, 0x6D, 0x80, 0x18, 0x9F, 0x4E, 0x90, 0x67, -0x80, 0x18, 0x0F, 0x4F, 0x52, 0x98, 0x40, 0xA2, +0x03, 0x6D, 0x80, 0x18, 0x4F, 0x45, 0x90, 0x67, +0x80, 0x18, 0xBF, 0x45, 0x52, 0x98, 0x40, 0xA2, 0x04, 0x22, 0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, -0x08, 0x4C, 0x90, 0x67, 0x80, 0x18, 0x38, 0x4F, +0xB8, 0x42, 0x90, 0x67, 0x80, 0x18, 0xE8, 0x45, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x26, 0x67, 0x4C, 0xED, 0x04, 0x67, -0x0B, 0xD7, 0x4C, 0xE9, 0x80, 0x18, 0xD7, 0x51, +0x0B, 0xD7, 0x4C, 0xE9, 0x80, 0x18, 0x87, 0x48, 0x00, 0x6B, 0x09, 0x22, 0x0B, 0x96, 0x90, 0x67, -0xB1, 0x67, 0x80, 0x18, 0x76, 0x4F, 0x4B, 0xEB, +0xB1, 0x67, 0x80, 0x18, 0x26, 0x46, 0x4B, 0xEB, +0x4D, 0xEB, 0xC0, 0xF7, 0x62, 0x33, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x43, 0x67, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0xFF, 0x69, 0x80, 0xF2, 0x48, 0x9B, 0x2C, 0xED, +0xFF, 0xF7, 0x1F, 0x68, 0x11, 0xD7, 0x8C, 0xE8, +0x08, 0xD5, 0x04, 0x04, 0x00, 0x6D, 0xCC, 0xE9, +0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x48, 0x9B, 0x05, 0x04, 0x00, 0x6D, +0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x4C, 0x9B, 0x11, 0x95, 0x04, 0x04, +0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x4C, 0x9B, 0x12, 0x95, 0x06, 0x04, +0x04, 0x6E, 0x40, 0xEA, 0x00, 0xF1, 0x00, 0x58, +0x08, 0x61, 0x0E, 0xF0, 0x40, 0x40, 0xFF, 0xF7, +0x1F, 0x6B, 0x6C, 0xEA, 0x00, 0xF1, 0x00, 0x5A, +0x39, 0x60, 0x08, 0x92, 0x04, 0x72, 0x11, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0x5C, 0x9A, +0xFF, 0x6B, 0x49, 0xE0, 0x40, 0xA2, 0x4C, 0xEB, +0x5F, 0x21, 0x06, 0x94, 0x8F, 0xEA, 0x6C, 0xEA, +0x04, 0x93, 0x8C, 0xEB, 0x6D, 0xEA, 0x04, 0xD2, +0x57, 0x10, 0x08, 0x92, 0x05, 0x72, 0x12, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0x5C, 0x9A, +0xFF, 0xF7, 0x1F, 0x6B, 0x49, 0xE0, 0x40, 0xAA, +0x4C, 0xEB, 0x7F, 0x21, 0x06, 0x94, 0x8F, 0xEA, +0x6C, 0xEA, 0x04, 0x93, 0x8C, 0xEB, 0x6D, 0xEA, +0x04, 0xD2, 0x77, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF2, 0x5C, 0x9A, 0x49, 0xE0, 0x60, 0x9A, +0x80, 0xF0, 0x1E, 0x21, 0x06, 0x94, 0x8F, 0xEA, +0x6C, 0xEA, 0x04, 0x93, 0x8C, 0xEB, 0x6D, 0xEA, +0x04, 0xD2, 0x96, 0x10, 0x01, 0xF0, 0x00, 0x58, +0x09, 0x61, 0x0D, 0xF7, 0x40, 0x40, 0xFF, 0xF7, +0x1F, 0x6B, 0x6C, 0xEA, 0x00, 0xF7, 0x00, 0x5A, +0x80, 0xF0, 0x17, 0x60, 0x08, 0x92, 0x04, 0x72, +0x31, 0x61, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, +0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0x5C, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF3, +0x40, 0x9A, 0x49, 0xE0, 0x60, 0xA2, 0xFF, 0x6A, +0x6C, 0xEA, 0x07, 0x21, 0x06, 0x94, 0x8F, 0xEB, +0x4C, 0xEB, 0x04, 0x92, 0x8C, 0xEA, 0x4D, 0xEB, +0x04, 0xD3, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, +0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0x5C, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF3, +0x40, 0x9A, 0x7D, 0x67, 0x41, 0xE0, 0x50, 0xA3, +0x40, 0xC0, 0x7E, 0x10, 0x08, 0x92, 0x05, 0x72, +0x32, 0x61, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, +0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0x5C, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF3, +0x40, 0x9A, 0x49, 0xE0, 0x60, 0xAA, 0xFF, 0xF7, +0x1F, 0x6A, 0x6C, 0xEA, 0x07, 0x21, 0x06, 0x94, +0x8F, 0xEB, 0x4C, 0xEB, 0x04, 0x92, 0x8C, 0xEA, +0x4D, 0xEB, 0x04, 0xD3, 0x1F, 0xF7, 0x00, 0x6A, +0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, +0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, +0x5C, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF3, 0x40, 0x9A, 0x7D, 0x67, 0x41, 0xE0, +0x48, 0xAB, 0x40, 0xC8, 0x49, 0x10, 0x1F, 0xF7, +0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF2, 0x5C, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x02, 0xF3, 0x40, 0x9A, 0x49, 0xE0, +0x60, 0x9A, 0x07, 0x21, 0x06, 0x94, 0x8F, 0xEA, +0x6C, 0xEA, 0x04, 0x93, 0x8C, 0xEB, 0x6D, 0xEA, +0x04, 0xD2, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, +0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0x5C, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF3, +0x40, 0x9A, 0x41, 0xE0, 0x04, 0x92, 0x40, 0xD8, +0x1B, 0x10, 0xFF, 0xF7, 0x1C, 0x6A, 0x0C, 0xEA, +0x01, 0x6D, 0x82, 0x67, 0xAB, 0xED, 0x08, 0xD2, +0x80, 0x18, 0xF4, 0x16, 0x05, 0xD2, 0x07, 0x21, +0x06, 0x94, 0x8F, 0xEB, 0x4C, 0xEB, 0x04, 0x92, +0x8C, 0xEA, 0x4D, 0xEB, 0x04, 0xD3, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x08, 0x94, +0x04, 0x96, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x41, 0x9C, 0x61, 0xA4, +0x01, 0xAC, 0x06, 0xD2, 0x42, 0x9C, 0xFF, 0x73, +0x07, 0xD2, 0x00, 0x6A, 0x62, 0x60, 0x7F, 0x6D, +0x6C, 0xED, 0x4C, 0x45, 0xFF, 0x6B, 0x6C, 0xEA, +0x0E, 0x5A, 0x08, 0x60, 0x30, 0xF0, 0x20, 0x6B, +0x48, 0x32, 0x62, 0xF2, 0x04, 0x4B, 0x4D, 0xE3, +0x40, 0x9B, 0x00, 0xEA, 0x03, 0x6A, 0x51, 0x10, +0x61, 0xA4, 0x80, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xFF, 0x6E, 0x07, 0x03, 0x90, 0x67, 0x4C, 0xEE, +0x06, 0x07, 0x04, 0xD3, 0x80, 0x18, 0x45, 0x49, +0x28, 0x10, 0x81, 0xA4, 0x80, 0x6A, 0xFF, 0x69, +0x64, 0x67, 0x4C, 0xEB, 0x0C, 0xE9, 0x02, 0x32, +0x30, 0xF0, 0x20, 0x6C, 0x01, 0x6F, 0xCA, 0xF4, +0x18, 0x4C, 0xA2, 0x67, 0xD1, 0x67, 0xEB, 0xEF, +0x08, 0xD3, 0x09, 0xD2, 0x80, 0x18, 0x3E, 0x45, +0x08, 0x93, 0x07, 0x23, 0x07, 0x94, 0x8F, 0xEB, +0x4C, 0xEB, 0x06, 0x92, 0x8C, 0xEA, 0x4D, 0xEB, +0x06, 0xD3, 0x06, 0x92, 0x09, 0x95, 0x30, 0xF0, +0x20, 0x6C, 0x01, 0x6F, 0xCA, 0xF4, 0x18, 0x4C, +0xD1, 0x67, 0xEB, 0xEF, 0x04, 0xD2, 0x80, 0x18, +0x83, 0x45, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, +0x18, 0x4A, 0x65, 0xF7, 0x60, 0x9A, 0x06, 0x94, +0x61, 0xE0, 0x65, 0xF7, 0x64, 0x9A, 0x65, 0xF7, +0x00, 0xDA, 0x6D, 0xE4, 0x65, 0xF7, 0x64, 0xDA, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x48, 0x9A, 0x90, 0x67, 0x40, 0xEA, +0x01, 0x6A, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x18, 0x4A, +0x46, 0xF7, 0x1C, 0x4B, 0xA6, 0xF7, 0x6C, 0xDA, +0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF7, 0x18, 0x4B, +0xA6, 0xF7, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6B, +0x66, 0xF7, 0x00, 0x4B, 0x86, 0xF7, 0x7C, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0xE0, 0x63, 0x3F, 0x62, +0xFF, 0xF7, 0x1F, 0x6A, 0xAC, 0xEA, 0xBD, 0x67, +0x56, 0xC5, 0x01, 0x6B, 0x42, 0x32, 0x57, 0xC5, +0x6B, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x70, 0xC5, +0x20, 0xF4, 0x40, 0x9A, 0x03, 0x6B, 0x72, 0xC5, +0x04, 0x6B, 0x94, 0xC5, 0x73, 0xC5, 0x04, 0x04, +0x40, 0xEA, 0x3F, 0x97, 0x20, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0xA7, 0x44, 0x30, 0xF0, +0x20, 0x6C, 0x01, 0x4D, 0xE9, 0xF4, 0x00, 0x4C, +0x14, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x04, 0x67, 0x80, 0x18, +0x32, 0x4A, 0x47, 0xA0, 0x66, 0xA0, 0x30, 0xF0, +0x20, 0x69, 0x63, 0xF5, 0x18, 0x49, 0x40, 0x32, +0x65, 0xF7, 0x88, 0xA1, 0x69, 0xE2, 0x65, 0xF7, +0x5A, 0xC9, 0x01, 0x6A, 0x8C, 0xEA, 0xFF, 0x6B, +0x1C, 0x2A, 0x65, 0xF7, 0xBC, 0xA1, 0xFE, 0x4A, +0xAC, 0xEA, 0x65, 0xF7, 0x5C, 0xC1, 0x02, 0x6A, +0x8C, 0xEA, 0x6C, 0xEA, 0x4E, 0x22, 0x65, 0xF7, +0x4B, 0xA1, 0x0F, 0x6D, 0x65, 0xF7, 0x8C, 0xA1, +0x4C, 0xED, 0x52, 0x36, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF4, 0x58, 0x9A, 0x6C, 0xED, 0x6C, 0xEE, +0x40, 0xEA, 0x01, 0x72, 0x0D, 0x6A, 0x3E, 0x61, +0x3C, 0x10, 0x65, 0xF7, 0x7C, 0xA1, 0x02, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x65, 0xF7, 0x5C, 0xC1, +0x65, 0xF7, 0x58, 0xA9, 0x00, 0xF1, 0x01, 0x5A, +0x0C, 0x6A, 0x30, 0x60, 0x00, 0x6A, 0x65, 0xF7, +0x5D, 0xC1, 0x65, 0xF7, 0x5E, 0xC1, 0x65, 0xF7, +0x09, 0xA1, 0x00, 0x6A, 0x85, 0xF7, 0x40, 0xC9, +0x85, 0xF7, 0x42, 0xC9, 0x00, 0x18, 0xA5, 0xC6, +0x01, 0xE2, 0x00, 0x6A, 0x65, 0xF7, 0xF8, 0xA9, +0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF2, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF7, 0xA0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF3, 0x58, 0x9A, 0x30, 0xF0, 0x20, 0x6E, +0x1C, 0x30, 0x09, 0xF5, 0x02, 0x4E, 0x00, 0x6C, +0xB5, 0xE0, 0x59, 0xE6, 0x40, 0xEB, 0x65, 0xF7, +0x5C, 0xA1, 0x01, 0x6B, 0x6D, 0xEA, 0x65, 0xF7, +0x5C, 0xC1, 0x00, 0x6A, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0x63, 0xF5, 0x18, 0x48, 0x85, 0xF7, +0xA0, 0xA8, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x80, 0xF2, 0x4C, 0x9A, 0x09, 0xF5, +0x02, 0x4B, 0x30, 0xF0, 0x20, 0x6C, 0xB5, 0xE3, +0x09, 0xF6, 0x04, 0x4C, 0x04, 0x6E, 0x40, 0xEA, +0x86, 0xF0, 0x6F, 0xA0, 0x80, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x05, 0x2A, +0x85, 0xF7, 0x40, 0xA8, 0x04, 0x4A, 0x85, 0xF7, +0x40, 0xC8, 0x30, 0xF0, 0x20, 0x68, 0x63, 0xF5, +0x18, 0x48, 0x86, 0xF0, 0x6D, 0xA0, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x58, 0x9A, 0x86, 0xF0, +0x8C, 0xA0, 0x0F, 0x6D, 0x6C, 0xED, 0x72, 0x36, +0x40, 0xEA, 0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF4, 0x54, 0x9A, 0x40, 0xEA, 0x65, 0xF7, +0x7C, 0xA0, 0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x65, 0xF7, 0x5C, 0xC0, 0x01, 0x6C, 0x59, 0x10, +0x86, 0xF0, 0x6F, 0xA0, 0x7F, 0x6A, 0x6C, 0xEA, +0xFF, 0x6B, 0x6C, 0xEA, 0x15, 0x22, 0x01, 0x72, +0x48, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, +0x4C, 0x9A, 0x00, 0x6C, 0x40, 0xEA, 0x4C, 0x22, +0x45, 0xF7, 0x9D, 0xA0, 0x00, 0x6D, 0x80, 0x18, +0x5C, 0x18, 0x06, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF4, 0x54, 0x9A, 0x40, 0xEA, 0x40, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0x65, 0xF7, 0x7D, 0xA2, 0x86, 0xF0, 0x8E, 0xA2, +0x01, 0x4B, 0x65, 0xF7, 0x7D, 0xC2, 0x85, 0xF7, +0x62, 0xAA, 0x6D, 0xE4, 0x85, 0xF7, 0x62, 0xCA, +0x65, 0xF7, 0x9D, 0xA2, 0x65, 0xF7, 0x6A, 0xA2, +0x8E, 0xEB, 0x0C, 0x2B, 0x86, 0xF0, 0xCE, 0xA2, +0x10, 0xF0, 0x31, 0x6C, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0xD3, 0x00, 0xF3, 0x4C, 0x9A, 0x65, 0xF3, +0x0D, 0x4C, 0x0C, 0x10, 0x86, 0xF0, 0xCE, 0xA2, +0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, 0x31, 0x6C, +0x45, 0xF3, 0x01, 0x4C, 0x64, 0x6B, 0x78, 0xEE, +0x00, 0x6D, 0x01, 0x6F, 0x12, 0xEE, 0x40, 0xEA, +0x1B, 0x10, 0x65, 0xF7, 0x7C, 0xA0, 0x02, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x65, 0xF7, 0x5C, 0xC0, +0x02, 0x6C, 0x65, 0xF7, 0xBA, 0xA8, 0x0E, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0x65, 0xF7, 0x9C, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, +0x65, 0xF7, 0xBA, 0xAA, 0x8C, 0xEB, 0x65, 0xF7, +0x7C, 0xC2, 0x03, 0x6C, 0x80, 0x18, 0x25, 0x4A, +0x07, 0x97, 0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF5, 0x18, 0x4A, 0x65, 0xF7, 0x9C, 0xA2, +0x01, 0x6B, 0x8C, 0xEB, 0x08, 0x23, 0x86, 0xF0, +0x6A, 0xA2, 0x03, 0x23, 0x00, 0x6B, 0x86, 0xF0, +0x6A, 0xC2, 0x80, 0x18, 0x76, 0x4A, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0x63, 0xF5, 0x18, 0x48, 0x65, 0xF7, 0x5C, 0xA0, +0x01, 0x69, 0x91, 0x67, 0x4C, 0xEC, 0xFF, 0x6B, +0x00, 0xF1, 0x0E, 0x24, 0x65, 0xF7, 0xA8, 0xA0, +0x03, 0x6E, 0xAE, 0x34, 0xCC, 0xEC, 0x6C, 0xEC, +0x02, 0x74, 0x7C, 0x60, 0x03, 0x74, 0xC0, 0xF0, +0x1D, 0x60, 0x01, 0x74, 0x25, 0x60, 0x02, 0x6C, +0x8B, 0xEC, 0x4C, 0xEC, 0x02, 0x6A, 0xAC, 0xEA, +0x6C, 0xEA, 0x65, 0xF7, 0x9C, 0xC0, 0x11, 0x22, +0x65, 0xF7, 0x4B, 0xA0, 0x0F, 0x6D, 0x65, 0xF7, +0x8C, 0xA0, 0x4C, 0xED, 0x52, 0x36, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x58, 0x9A, 0x6C, 0xED, +0x6C, 0xEE, 0x40, 0xEA, 0x01, 0x72, 0x01, 0x6C, +0x01, 0x61, 0x00, 0x6C, 0x65, 0xF7, 0xBA, 0xA8, +0x80, 0x18, 0x25, 0x4A, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF4, 0x54, 0x9A, 0x40, 0xEA, 0xBF, 0x10, +0x02, 0x6A, 0xAC, 0xEA, 0x6C, 0xEA, 0x11, 0x22, +0x65, 0xF7, 0x4B, 0xA0, 0x0F, 0x6D, 0x65, 0xF7, +0x8C, 0xA0, 0x4C, 0xED, 0x52, 0x36, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x58, 0x9A, 0x6C, 0xED, +0x6C, 0xEE, 0x40, 0xEA, 0x01, 0x72, 0xA0, 0xF0, +0x17, 0x61, 0x65, 0xF7, 0xBA, 0xA8, 0x00, 0x6C, +0x80, 0x18, 0x25, 0x4A, 0x30, 0xF0, 0x20, 0x6A, +0xE9, 0xF4, 0x45, 0xA2, 0x5A, 0x33, 0x02, 0x73, +0x0D, 0x60, 0x03, 0x73, 0x0F, 0x60, 0x01, 0x73, +0x05, 0x60, 0x3F, 0x6E, 0x4C, 0xEE, 0xFF, 0x6A, +0x4C, 0xEE, 0x0E, 0x10, 0x3F, 0x6B, 0x4C, 0xEB, +0x0A, 0x6E, 0x08, 0x10, 0x3F, 0x6B, 0x4C, 0xEB, +0x64, 0x6E, 0x04, 0x10, 0x3F, 0x6B, 0x4C, 0xEB, +0xE0, 0xF3, 0x08, 0x6E, 0xD8, 0xEB, 0x12, 0xEE, +0x0A, 0x6A, 0x58, 0xEE, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF5, 0x18, 0x4A, 0x85, 0xF7, 0x62, 0xAA, +0x10, 0xF0, 0x31, 0x6C, 0x45, 0xF3, 0x01, 0x4C, +0x00, 0x6D, 0x12, 0xEE, 0x7B, 0xE6, 0x01, 0x6B, +0x86, 0xF0, 0x6A, 0xC2, 0x00, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, +0x64, 0x6B, 0x5F, 0x10, 0x02, 0x6A, 0xAC, 0xEA, +0x6C, 0xEA, 0x10, 0x22, 0x65, 0xF7, 0x4B, 0xA0, +0x0F, 0x6D, 0x65, 0xF7, 0x8C, 0xA0, 0x4C, 0xED, +0x52, 0x36, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x58, 0x9A, 0x6C, 0xED, 0x6C, 0xEE, 0x40, 0xEA, +0x01, 0x72, 0x66, 0x61, 0x65, 0xF7, 0xBA, 0xA8, +0x00, 0x6C, 0x80, 0x18, 0x25, 0x4A, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, 0x65, 0xF7, +0x8F, 0xA2, 0x65, 0xF7, 0x7E, 0xA2, 0xFF, 0x4C, +0x6E, 0xEC, 0x03, 0x2C, 0x65, 0xF7, 0x4E, 0xA2, +0x05, 0x10, 0x01, 0x4B, 0x65, 0xF7, 0x7E, 0xC2, +0x65, 0xF7, 0x4D, 0xA2, 0x5A, 0x33, 0x02, 0x73, +0x0D, 0x60, 0x03, 0x73, 0x0F, 0x60, 0x01, 0x73, +0x05, 0x60, 0x3F, 0x6B, 0x4C, 0xEB, 0xFF, 0x6A, +0x4C, 0xEB, 0x0E, 0x10, 0x3F, 0x6B, 0x4C, 0xEB, +0x0A, 0x6A, 0x08, 0x10, 0x3F, 0x6B, 0x4C, 0xEB, +0x64, 0x6A, 0x04, 0x10, 0x3F, 0x6B, 0x4C, 0xEB, +0xE0, 0xF3, 0x08, 0x6A, 0x58, 0xEB, 0x12, 0xEB, +0x0A, 0x6A, 0x58, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0xE9, 0xF4, 0x5A, 0xAA, 0x01, 0x6C, 0x00, 0x6D, +0x64, 0x6E, 0x12, 0xEB, 0x4F, 0xE3, 0x30, 0xF0, +0x20, 0x6A, 0x09, 0xF6, 0x82, 0xC2, 0x00, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x4C, 0x9A, 0x10, 0xF0, 0x31, 0x6C, 0x45, 0xF3, +0x01, 0x4C, 0xD8, 0xEB, 0x01, 0x6F, 0x12, 0xEE, +0x40, 0xEA, 0x09, 0x10, 0x65, 0xF7, 0xBA, 0xA8, +0x00, 0x6C, 0x80, 0x18, 0x25, 0x4A, 0x86, 0xF0, +0x2A, 0xC0, 0x80, 0x18, 0xD0, 0x4A, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, 0x00, 0x6B, +0x65, 0xF7, 0x7D, 0xC2, 0x00, 0x6B, 0x85, 0xF7, +0x62, 0xCA, 0x85, 0xF7, 0x60, 0xCA, 0x10, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0x65, 0xF7, 0x9C, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, +0x65, 0xF7, 0xBA, 0xAA, 0x8C, 0xEB, 0x65, 0xF7, +0x7C, 0xC2, 0x01, 0x6C, 0x80, 0x18, 0x25, 0x4A, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xFF, 0x69, 0x04, 0x67, 0x80, 0xF4, 0x4C, 0x9A, +0x2C, 0xE8, 0x2C, 0xED, 0xCC, 0xE9, 0x04, 0xD5, +0x90, 0x67, 0xD1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, 0x0F, 0x58, +0xE3, 0xF1, 0x08, 0xC2, 0xE3, 0xF1, 0x20, 0xDA, +0x01, 0x6B, 0x01, 0x60, 0x00, 0x6B, 0x04, 0x96, +0x30, 0xF0, 0x20, 0x6C, 0xB0, 0x67, 0xF1, 0x67, +0xE3, 0xF1, 0x64, 0xDA, 0xCA, 0xF4, 0x18, 0x4C, +0x80, 0x18, 0x36, 0x49, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF7, 0x40, 0x9A, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x18, 0x4B, +0x80, 0xA2, 0x65, 0xF7, 0xDC, 0xA3, 0x85, 0xF7, +0x84, 0xC3, 0xA0, 0xAA, 0x01, 0xF0, 0x00, 0x6C, +0xAC, 0xEC, 0x83, 0x35, 0x03, 0x6C, 0xAE, 0x35, +0x8B, 0xEC, 0xA4, 0x35, 0xCC, 0xEC, 0xAD, 0xEC, +0x65, 0xF7, 0x9C, 0xC3, 0x30, 0xF0, 0x20, 0x6C, +0xC2, 0xF7, 0x84, 0x9C, 0xA0, 0xAC, 0x85, 0xF7, +0xA6, 0xCB, 0xA0, 0xAA, 0xBF, 0xF7, 0x1F, 0x6B, +0xAC, 0xEB, 0x60, 0xCA, 0xA0, 0xAA, 0x7F, 0xF7, +0x1F, 0x6B, 0xAC, 0xEB, 0x60, 0xCA, 0xC0, 0xAA, +0xFE, 0xF7, 0x1F, 0x6B, 0xFF, 0xF7, 0x1F, 0x6D, +0xCC, 0xEB, 0x60, 0xCA, 0x40, 0xAC, 0xFF, 0x6B, +0x21, 0x4B, 0xAC, 0xEA, 0x6D, 0xEA, 0xAC, 0xEA, +0x40, 0xCC, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF5, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x85, 0xF7, 0x84, 0xA2, 0xC2, 0xF7, 0x60, 0x9B, +0x01, 0x6E, 0x80, 0xC3, 0x30, 0xF0, 0x20, 0x6C, +0x85, 0xF7, 0xA6, 0xAA, 0xC2, 0xF7, 0x84, 0x9C, +0xA0, 0xCC, 0x65, 0xF7, 0x5C, 0xA2, 0x80, 0xAB, +0xFF, 0xF7, 0x1F, 0x6D, 0x46, 0x32, 0xCC, 0xEA, +0xAC, 0xEC, 0x40, 0x32, 0xFE, 0xF7, 0x1E, 0x4E, +0x4C, 0x32, 0xCC, 0xEC, 0x8D, 0xEA, 0xAC, 0xEA, +0x40, 0xCB, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD0, 0x00, 0x68, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x48, 0x9A, 0x90, 0x67, 0x04, 0x05, +0x40, 0xEA, 0x01, 0x72, 0x02, 0x60, 0x03, 0x6A, +0x0D, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF6, +0x40, 0x9A, 0x9D, 0x67, 0x70, 0xA4, 0x09, 0xE2, +0x01, 0x48, 0x00, 0xF2, 0x00, 0x70, 0x60, 0xC2, +0xE9, 0x61, 0x00, 0x6A, 0x07, 0x97, 0x06, 0x90, +0x04, 0x63, 0x00, 0xEF, 0x10, 0xF0, 0x23, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x01, 0x4B, +0x40, 0xF1, 0x68, 0xDA, 0x10, 0xF0, 0x23, 0x6B, +0x40, 0xF1, 0x08, 0x4A, 0x00, 0xF6, 0x01, 0x4B, +0x61, 0xDA, 0x10, 0xF0, 0x23, 0x6B, 0xA3, 0xF1, +0x05, 0x4B, 0x62, 0xDA, 0x10, 0xF0, 0x23, 0x6B, +0x43, 0xF2, 0x01, 0x4B, 0x63, 0xDA, 0x10, 0xF0, +0x23, 0x6B, 0x03, 0xF2, 0x09, 0x4B, 0x64, 0xDA, +0x10, 0xF0, 0x23, 0x6B, 0xC3, 0xF1, 0x15, 0x4B, +0x65, 0xDA, 0x10, 0xF0, 0x23, 0x6B, 0x63, 0xF1, +0x15, 0x4B, 0x66, 0xDA, 0x10, 0xF0, 0x23, 0x6B, +0x43, 0xF1, 0x05, 0x4B, 0x67, 0xDA, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x63, 0xF5, 0x18, 0x48, +0x00, 0x69, 0xA0, 0xF0, 0x24, 0xD8, 0x20, 0xF1, +0x30, 0xC0, 0x80, 0x18, 0xC3, 0x4B, 0xC3, 0xF1, +0x2C, 0xC0, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF5, 0x18, 0x4A, 0x00, 0x6B, 0x03, 0xF3, +0x64, 0xC2, 0x03, 0xF3, 0x65, 0xC2, 0x03, 0xF3, +0x66, 0xC2, 0x03, 0xF3, 0x67, 0xC2, 0x42, 0xF4, +0x10, 0x6A, 0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x05, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF2, 0x7C, 0x9B, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF3, +0x60, 0x9B, 0x6D, 0xE2, 0x04, 0x4A, 0x00, 0x6C, +0x62, 0xF4, 0x00, 0x72, 0x80, 0xDB, 0xE9, 0x61, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF3, 0x40, 0x9A, +0x03, 0x6C, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0xA2, 0xF3, 0x44, 0x9A, 0x00, 0xF5, 0x62, 0x33, +0x8C, 0xEB, 0x40, 0x9A, 0x01, 0x73, 0x42, 0x32, +0x52, 0x32, 0x8C, 0xEA, 0x05, 0x60, 0x0B, 0x2B, +0x02, 0x5A, 0x50, 0x6C, 0x0D, 0x60, 0x03, 0x10, +0x02, 0x5A, 0x0A, 0x60, 0x28, 0x6C, 0x87, 0xEA, +0xFF, 0x6A, 0x4C, 0xEC, 0x06, 0x10, 0x02, 0x5A, +0x28, 0x6C, 0x03, 0x60, 0x14, 0x6C, 0x01, 0x10, +0x50, 0x6C, 0x80, 0x18, 0x94, 0x4D, 0x80, 0x18, +0x00, 0x00, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF3, +0x68, 0x9B, 0x00, 0x6A, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xC2, 0xF2, 0x64, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF3, 0x64, 0x9B, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF3, +0x70, 0x9B, 0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF3, 0x78, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xA2, 0xF3, 0x68, 0x9B, 0x40, 0xDB, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xE5, 0x4B, +0x80, 0x18, 0x2D, 0x4C, 0x80, 0x18, 0x93, 0x40, +0x00, 0x18, 0xA5, 0xD9, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xF4, 0x44, 0x9A, 0x40, 0xEA, 0x80, 0x18, +0x19, 0x4A, 0x80, 0x18, 0xEC, 0x16, 0x00, 0x18, +0xB8, 0xCF, 0x00, 0x18, 0xD4, 0xCF, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF5, 0x18, 0x4A, 0x00, 0x6B, 0x20, 0xF6, +0x72, 0xC2, 0x20, 0xF6, 0x73, 0xC2, 0x20, 0xF1, +0x70, 0xC2, 0x20, 0xF1, 0x71, 0xC2, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF6, 0x44, 0x9A, +0x01, 0x6B, 0x60, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF6, 0x88, 0x9A, +0xFF, 0x6B, 0x20, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, +0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF2, 0x88, 0x9A, 0x08, 0x6D, +0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, +0x40, 0xC4, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xA2, 0xF6, 0x6C, 0x9A, 0xFD, 0x6A, 0xFF, 0x6C, +0xA0, 0xA3, 0xAC, 0xEA, 0x40, 0xC3, 0x40, 0xA3, +0x01, 0x6D, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xC3, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x48, 0x9A, 0xA2, 0xF6, 0x90, 0x9B, +0x00, 0x6D, 0x02, 0xF0, 0x00, 0x6E, 0x40, 0xEA, +0x00, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF6, +0x70, 0x9B, 0x54, 0x34, 0x01, 0x4A, 0x6D, 0xE4, +0x80, 0x72, 0x04, 0x6C, 0x80, 0xC3, 0xF5, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xA2, 0xF6, 0x94, 0x9B, 0x80, 0xF2, 0x48, 0x9A, +0x00, 0x6D, 0x00, 0xF4, 0x00, 0x6E, 0x40, 0xEA, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x18, 0x4B, +0x52, 0x9B, 0x8D, 0xEA, 0x52, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xA2, 0xF6, 0x78, 0x9B, 0x80, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF6, 0x7C, 0x9B, +0x40, 0xDB, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF5, 0x18, 0x4B, 0xB2, 0x9B, 0x8F, 0xEA, +0xAC, 0xEA, 0x52, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xA2, 0xF6, 0x7C, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xA2, 0xF6, 0x58, 0x9A, 0x80, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0x05, 0x5C, 0x5E, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, 0x22, 0xF2, +0x08, 0x4A, 0x89, 0xE2, 0x40, 0x9A, 0x00, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x58, 0x9B, +0xAD, 0xEA, 0x63, 0xF5, 0x58, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF6, 0x7C, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, 0x60, 0x9B, +0x32, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, +0x18, 0x4B, 0x41, 0x9B, 0xAD, 0xEA, 0x41, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, 0x64, 0x9B, +0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, +0x68, 0x9B, 0x21, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF5, 0x18, 0x4B, 0x42, 0x9B, 0xAD, 0xEA, +0x42, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, +0x6C, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF6, 0x70, 0x9B, 0x10, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF5, 0x18, 0x4B, 0x43, 0x9B, +0xAD, 0xEA, 0x43, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF6, 0x74, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xC2, 0xF6, 0x78, 0x9B, 0x40, 0xDB, +0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, +0x18, 0x4B, 0x44, 0x9B, 0xAD, 0xEA, 0x44, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, 0x7C, 0x9B, +0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF6, +0x60, 0x9B, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, +0x05, 0x5C, 0x63, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x88, 0x34, 0x22, 0xF2, 0x1C, 0x4A, 0x89, 0xE2, +0x40, 0x9A, 0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF5, 0x98, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, +0x63, 0xF5, 0x58, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF6, 0x60, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF6, 0x5C, 0x9A, 0x35, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x18, 0x4B, +0x81, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x41, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, 0x68, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, +0x44, 0x9A, 0x23, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF5, 0x18, 0x4B, 0x82, 0x9B, 0xAF, 0xEA, +0x8C, 0xEA, 0x42, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF6, 0x70, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF6, 0x4C, 0x9A, 0x11, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x18, 0x4B, +0x83, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x43, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, 0x78, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, +0x54, 0x9A, 0xA0, 0xDA, 0x20, 0xE8, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF5, 0x18, 0x4B, 0x84, 0x9B, +0xAF, 0xEA, 0x8C, 0xEA, 0x44, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF6, 0x60, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, 0x5C, 0x9A, +0xA0, 0xDA, 0x20, 0xE8, 0x01, 0x74, 0x15, 0x60, +0x03, 0x24, 0x02, 0x74, 0x23, 0x60, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x18, 0x4B, +0x54, 0x9B, 0xAD, 0xEA, 0x54, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF6, 0x64, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF6, 0x68, 0x9B, +0x21, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, +0x18, 0x4B, 0x55, 0x9B, 0xAD, 0xEA, 0x55, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF6, 0x6C, 0x9B, +0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF6, +0x70, 0x9B, 0x10, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF5, 0x18, 0x4B, 0x56, 0x9B, 0xAD, 0xEA, +0x56, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF6, +0x74, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF6, 0x78, 0x9B, 0x40, 0xDB, 0x20, 0xE8, +0x01, 0x74, 0x16, 0x60, 0x03, 0x24, 0x02, 0x74, +0x25, 0x60, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF5, 0x18, 0x4B, 0x94, 0x9B, 0xAF, 0xEA, +0x8C, 0xEA, 0x54, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF6, 0x68, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF6, 0x44, 0x9A, 0x23, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x18, 0x4B, +0x95, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x55, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF6, 0x70, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, +0x4C, 0x9A, 0x11, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF5, 0x18, 0x4B, 0x96, 0x9B, 0xAF, 0xEA, +0x8C, 0xEA, 0x56, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF6, 0x78, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF6, 0x54, 0x9A, 0xA0, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6C, +0xC2, 0xF6, 0x80, 0x9C, 0x00, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF5, 0x58, 0xDB, 0x63, 0xF5, +0x18, 0x4B, 0x41, 0xDB, 0x42, 0xDB, 0x43, 0xDB, +0x44, 0xDB, 0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, +0xC2, 0xF6, 0x88, 0x9C, 0x40, 0xDC, 0x30, 0xF0, +0x20, 0x6C, 0xC2, 0xF6, 0x90, 0x9C, 0x40, 0xDC, +0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF6, 0x98, 0x9C, +0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF6, +0x80, 0x9C, 0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, +0xE2, 0xF6, 0x88, 0x9C, 0x54, 0xDB, 0x55, 0xDB, +0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF6, +0x90, 0x9C, 0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, +0xE2, 0xF6, 0x98, 0x9C, 0x56, 0xDB, 0x40, 0xDC, +0x52, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF6, +0x7C, 0x9B, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF6, 0x7C, 0x9B, +0x01, 0x6A, 0x4B, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xC2, 0xF6, 0x64, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, 0x6C, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, +0x74, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF6, 0x7C, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF6, 0x64, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF6, 0x6C, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF6, +0x74, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xA2, 0xF6, 0x78, 0x9B, 0x40, 0xDB, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF3, 0x10, 0x6E, +0x63, 0xF5, 0xD8, 0xDB, 0x01, 0xF7, 0x01, 0x6A, +0x63, 0xF5, 0x18, 0x4B, 0x08, 0xF0, 0x00, 0x6D, +0x00, 0x6C, 0x42, 0xDB, 0x43, 0xDB, 0xA1, 0xDB, +0x84, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, +0x60, 0x9B, 0xC0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF6, 0x68, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xC2, 0xF6, 0x70, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, 0x78, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, +0x40, 0x9A, 0x80, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF5, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xA2, 0xF6, 0x7C, 0x9B, 0x40, 0xDB, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, 0x84, 0x9B, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0x18, 0x4A, +0x80, 0xF1, 0x06, 0x6D, 0xFF, 0x6B, 0xB4, 0xDA, +0x95, 0xDA, 0x76, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF6, 0x48, 0x9A, 0xA0, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF6, 0x50, 0x9A, 0x80, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, 0x58, 0x9A, +0x60, 0xDA, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0x13, 0x4D, 0x80, 0x18, 0x32, 0x4D, +0x80, 0x18, 0x4A, 0x4D, 0x80, 0x18, 0x66, 0x4D, +0x80, 0x18, 0x60, 0x4D, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x4C, 0x9A, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xBB, 0x4D, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x18, 0x4B, +0xC2, 0xF5, 0x44, 0xC3, 0x00, 0x6A, 0xC2, 0xF5, +0x45, 0xC3, 0x80, 0x18, 0x43, 0x4C, 0x80, 0x18, +0x54, 0x4F, 0x80, 0x18, 0x7D, 0x4D, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF6, 0x5C, 0x9A, 0x3F, 0x6B, +0x60, 0xC2, 0x80, 0x18, 0x34, 0x4C, 0x80, 0x18, +0x38, 0x4C, 0x80, 0x18, 0x4B, 0x4C, 0x80, 0x18, +0x9A, 0x4D, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x3F, 0xCB, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x44, 0x9A, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF5, 0x18, 0x4A, 0x00, 0x6B, 0x01, 0x6C, +0x9F, 0xF7, 0x00, 0x6D, 0x00, 0x6E, 0x26, 0xF7, +0x68, 0xC2, 0x26, 0xF7, 0x69, 0xC2, 0x00, 0x18, +0xB9, 0xC4, 0x01, 0x6C, 0x9F, 0xF7, 0x01, 0x6D, +0x00, 0x6E, 0x00, 0x18, 0xB9, 0xC4, 0x01, 0x6C, +0x9F, 0xF7, 0x02, 0x6D, 0x00, 0x6E, 0x00, 0x18, +0xB9, 0xC4, 0x01, 0x6C, 0x9F, 0xF7, 0x03, 0x6D, +0x00, 0x6E, 0x00, 0x18, 0xB9, 0xC4, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF7, 0x50, 0x9A, 0xE0, 0xF1, 0x1B, 0x6B, +0x6B, 0xEB, 0x60, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF7, 0x74, 0x9A, 0xFB, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF7, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x62, 0xF6, 0x94, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, +0x40, 0xDB, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF7, 0x54, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, +0x40, 0xAA, 0x4C, 0xEB, 0x62, 0x33, 0x03, 0x6A, +0x72, 0x33, 0x4C, 0xEB, 0x02, 0x6A, 0x04, 0x23, +0x01, 0x73, 0x01, 0x6A, 0x01, 0x60, 0x03, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0x10, 0xF0, 0x23, 0x6A, +0x25, 0xF6, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x48, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x45, 0xF6, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x4C, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0xA6, 0xF6, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x50, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x29, 0xF0, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x47, 0xF5, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF2, 0x50, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xCB, 0xF7, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF2, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xCC, 0xF0, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF2, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xE2, 0xF3, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF2, 0x58, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x42, 0xF5, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF2, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x87, 0xF1, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF3, 0x40, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xA6, 0xF4, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF3, 0x44, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xE6, 0xF4, 0x09, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF3, 0x48, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x48, 0xF0, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF3, 0x4C, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0xA5, 0xF5, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF4, 0x58, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0x05, 0xF6, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF4, 0x50, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0x85, 0xF6, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF4, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xA6, 0xF0, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF4, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xC6, 0xF2, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF4, 0x40, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x69, 0xF3, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF4, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xE6, 0xF5, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x44, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0xC5, 0xF6, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF4, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xA2, 0xF0, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x58, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x8B, 0xF4, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xC2, 0xF0, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x50, 0xDB, 0x10, 0xF0, 0x30, 0x6A, +0x0B, 0xF4, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x87, 0xF2, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF4, 0x48, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xCB, 0xF3, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x4C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x4A, 0xF1, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x50, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xCA, 0xF1, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x4A, 0xF2, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x58, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x8A, 0xF2, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xCA, 0xF2, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF3, 0x40, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xEA, 0xF2, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF3, 0x44, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x2A, 0xF3, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF3, 0x48, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xCA, 0xF3, 0x09, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF3, 0x4C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x8B, 0xF3, 0x09, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF3, 0x50, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x8B, 0xF3, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF3, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xCB, 0xF3, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF3, 0x58, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xAB, 0xF3, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF3, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x0A, 0xF7, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF4, 0x40, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x8A, 0xF7, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF4, 0x44, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xC5, 0xF5, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF3, 0x44, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xE5, 0xF5, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF3, 0x4C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xC5, 0xF5, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF3, 0x48, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0x64, 0xF7, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF3, 0x50, 0xDB, 0x10, 0xF0, 0x30, 0x6A, +0x6C, 0xF0, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF3, 0x40, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0xA0, 0xF4, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF6, 0x50, 0xDB, 0x10, 0xF0, 0x30, 0x6A, +0x00, 0xF4, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF6, 0x54, 0xDB, 0x10, 0xF0, 0x30, 0x6A, +0x61, 0xF5, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF6, 0x58, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF6, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF6, 0x5C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x46, 0xF3, 0x04, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x66, 0xF7, 0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF6, 0x64, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0x66, 0xF7, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x67, 0xF0, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x4C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA7, 0xF0, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x50, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA7, 0xF1, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x54, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x58, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC9, 0xF1, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x5C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC9, 0xF4, 0x13, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF6, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC9, 0xF4, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF6, 0x44, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xE9, 0xF4, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF6, 0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x89, 0xF6, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF6, 0x44, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xCA, 0xF4, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF6, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x21, 0xF0, 0x00, 0x4B, 0x80, 0xF2, 0x08, 0x4A, +0x13, 0x10, 0x80, 0x9A, 0x10, 0x2C, 0x30, 0xF0, +0x20, 0x6C, 0x22, 0xF3, 0xA8, 0x9C, 0x30, 0xF0, +0x20, 0x6E, 0x42, 0xF3, 0xD8, 0x9E, 0x80, 0x9D, +0xCD, 0xEC, 0x80, 0xDD, 0x30, 0xF0, 0x20, 0x6C, +0xA2, 0xF7, 0x84, 0x9C, 0x40, 0xDC, 0x04, 0x4A, +0x43, 0xEB, 0xEB, 0x60, 0x20, 0xE8, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0xF7, 0x1F, 0x69, 0x2C, 0xED, 0x30, 0xF0, +0x20, 0x6B, 0x04, 0xD5, 0xA2, 0xF7, 0xA8, 0x9B, +0xFF, 0x6A, 0x40, 0x6E, 0x60, 0xA5, 0xCB, 0xEE, +0x4C, 0xEC, 0x4C, 0xEB, 0xCC, 0xEB, 0x6D, 0xEC, +0x4C, 0xEC, 0x80, 0xC5, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF7, 0x4C, 0x9A, +0x00, 0xAA, 0x04, 0x92, 0x2C, 0xE8, 0x2A, 0xEA, +0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, +0x44, 0x9A, 0x04, 0x94, 0x40, 0xEA, 0x04, 0x93, +0x2C, 0xEA, 0x6C, 0xE8, 0x07, 0xEA, 0x2C, 0xE8, +0x50, 0x67, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0xF7, 0x1F, 0x69, +0x2C, 0xED, 0xFF, 0x68, 0x0C, 0xEC, 0x2C, 0xEE, +0x2A, 0xED, 0x05, 0xD4, 0x04, 0xD5, 0x06, 0xD6, +0x1F, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF7, +0x68, 0x9A, 0x40, 0x6C, 0x8B, 0xEC, 0x40, 0xA3, +0x0C, 0xEA, 0x8C, 0xEA, 0x05, 0x94, 0x8D, 0xEA, +0x0C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0xA2, 0xF7, 0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x42, 0xF5, 0x94, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x62, 0xF3, 0x98, 0x9C, +0x8D, 0xEA, 0xCD, 0xEA, 0x40, 0xDB, 0x34, 0x10, +0x05, 0x94, 0xB1, 0x67, 0x80, 0x18, 0xD0, 0x4E, +0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x94, +0xA0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA2, 0xF7, 0x88, 0x9B, 0x40, 0x6D, +0xAB, 0xED, 0x60, 0xA4, 0x2C, 0xEA, 0x0C, 0xEB, +0xAC, 0xEB, 0x05, 0x95, 0xAD, 0xEB, 0x0C, 0xEB, +0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF7, +0x8C, 0x9B, 0x30, 0xF0, 0x20, 0x6D, 0x42, 0xF5, +0xB4, 0x9D, 0x60, 0x9C, 0x06, 0x96, 0xAC, 0xEB, +0x30, 0xF0, 0x20, 0x6D, 0x62, 0xF3, 0xB8, 0x9D, +0xC4, 0xEA, 0x46, 0x67, 0xAD, 0xEB, 0x04, 0x95, +0x07, 0x96, 0xAC, 0xEA, 0xAF, 0xED, 0xCC, 0xED, +0xAD, 0xEA, 0x2C, 0xEA, 0x4D, 0xEB, 0x60, 0xDC, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x0A, 0x6C, 0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x6C, 0x10, 0xF0, +0x00, 0x6D, 0x80, 0x18, 0xD0, 0x4E, 0x05, 0x97, +0x01, 0x5A, 0x58, 0x67, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0xC2, 0xF2, 0x64, 0x9B, 0x10, 0xF0, +0x31, 0x6A, 0xA7, 0xF4, 0x01, 0x4A, 0x40, 0xDB, +0x00, 0x68, 0x31, 0x10, 0x82, 0xF3, 0x08, 0x70, +0x1A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, +0x68, 0x9A, 0x02, 0xF0, 0x00, 0x6C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF5, 0x18, 0x4A, 0x23, 0xF3, 0x70, 0x9A, +0x8D, 0xEB, 0x23, 0xF3, 0x70, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0xA2, 0xF7, 0x50, 0x9A, 0x03, 0x6B, +0x6B, 0xEB, 0x60, 0xC2, 0x18, 0x10, 0xFF, 0xF7, +0x1F, 0x6A, 0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, +0x40, 0xEA, 0x33, 0x58, 0x08, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF6, 0x58, 0x9A, 0x60, 0xA2, +0x08, 0x6A, 0x6C, 0xEA, 0x04, 0x2A, 0x80, 0x18, +0x22, 0x4F, 0x01, 0x72, 0xCB, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xA2, 0xF7, 0x50, 0x9A, 0x02, 0x6B, +0x6B, 0xEB, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF2, 0x64, 0x9B, 0x10, 0xF0, 0x31, 0x6A, +0xA7, 0xF4, 0x02, 0x4A, 0x40, 0xDB, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xA2, 0xF7, 0x74, 0x9A, 0x02, 0x6C, +0xFF, 0xF7, 0x1F, 0x6D, 0x40, 0x9B, 0xFF, 0x6E, +0x41, 0x4E, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xA2, 0xF7, 0x78, 0x9A, 0xE0, 0xF3, +0x1E, 0x4C, 0x30, 0xF0, 0x20, 0x68, 0x40, 0xAB, +0xAC, 0xEA, 0x8D, 0xEA, 0xAC, 0xEA, 0x40, 0xCB, +0x02, 0x6C, 0x80, 0x18, 0xEB, 0x4E, 0x80, 0xF3, +0x4C, 0x98, 0x0A, 0x6C, 0x40, 0xEA, 0x00, 0x6C, +0xC0, 0x6D, 0x02, 0x6E, 0x80, 0x18, 0xEB, 0x4E, +0x00, 0x6C, 0xC4, 0x67, 0x02, 0xF0, 0x00, 0x6D, +0x80, 0x18, 0xEB, 0x4E, 0x00, 0x6C, 0xC4, 0x67, +0x0C, 0xF0, 0x00, 0x6D, 0x80, 0x18, 0xEB, 0x4E, +0x00, 0x6C, 0x01, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x80, 0x18, 0xEB, 0x4E, 0x10, 0xF0, 0x00, 0x6D, +0x01, 0x6E, 0x00, 0x6C, 0x80, 0x18, 0xEB, 0x4E, +0x80, 0xF3, 0x4C, 0x98, 0x0A, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF7, 0x7C, 0x9A, +0xFF, 0x6C, 0x04, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x16, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +u32 array_length_mp_8822c_fw_spic = 115168; + +#endif /*!(DM_ODM_SUPPORT_TYPE & (ODM_CE))*/ + +#ifdef CONFIG_WOWLAN + +u8 array_mp_8822c_fw_wowlan[] = { +0x22, 0x88, 0x00, 0x00, 0x09, 0x00, 0x0D, 0x00, +0x0D, 0x9C, 0xA8, 0x60, 0x00, 0x00, 0x00, 0x00, +0x09, 0x18, 0x0E, 0x2B, 0xE5, 0x07, 0x00, 0x00, +0x18, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, +0x00, 0x00, 0x20, 0x80, 0x78, 0x34, 0x00, 0x00, +0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x70, 0x95, 0x00, 0x00, 0x40, 0x6A, 0x01, 0x00, +0x00, 0x00, 0x10, 0x80, 0x00, 0x00, 0x03, 0x80, +0x00, 0x00, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, +0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, +0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, +0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, +0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, +0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, +0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, +0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +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, 0x01, 0xFE, 0x03, 0x01, 0x01, 0xFE, +0x03, 0x02, 0x01, 0xFE, 0x03, 0x03, 0x01, 0xFE, +0x03, 0x04, 0x01, 0xFE, 0x03, 0x05, 0x01, 0xFE, +0x03, 0x06, 0x01, 0xFE, 0x03, 0x07, 0x01, 0xFE, +0x48, 0x0A, 0x20, 0x80, 0x06, 0x00, 0x00, 0x00, +0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, +0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, +0x01, 0x00, 0x03, 0x80, 0x25, 0x02, 0x03, 0x80, +0x25, 0x02, 0x03, 0x80, 0x08, 0x00, 0x00, 0x00, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xE0, +0x4C, 0x81, 0x92, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x8D, +0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x07, 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, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +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, 0x49, 0x03, 0x80, 0xFD, 0xFF, 0xFF, 0xFF, +0x00, 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, 0xA5, 0x48, 0x03, 0x80, +0x00, 0x00, 0x00, 0x00, 0x00, 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, +0x61, 0x48, 0x03, 0x80, 0x01, 0x00, 0x00, 0x00, +0x00, 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, 0x7C, 0x34, 0x20, 0x80, +0x84, 0x34, 0x20, 0x80, 0x61, 0x4C, 0x03, 0x80, +0x03, 0x00, 0x00, 0x00, 0x00, 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, +0x94, 0x34, 0x20, 0x80, 0x8C, 0x34, 0x20, 0x80, +0x01, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x08, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, +0x11, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x89, 0x00, 0x89, 0x00, 0x01, 0x00, 0x00, 0x00, +0x11, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0xA1, 0x00, 0xA1, 0x00, 0x02, 0x00, 0x00, 0x00, +0x11, 0x01, 0x04, 0x03, 0xE0, 0x00, 0x00, 0xFB, +0xE9, 0x14, 0xE9, 0x14, 0x04, 0x00, 0x00, 0x00, +0x11, 0x01, 0x04, 0x01, 0xEF, 0xFF, 0xFF, 0xFA, +0x6C, 0x07, 0x6C, 0x07, 0x06, 0x00, 0x00, 0x00, +0x11, 0x01, 0x04, 0x01, 0xEF, 0xFF, 0xFF, 0xFA, +0x76, 0x0E, 0x76, 0x0E, 0x08, 0x00, 0x00, 0x00, +0x11, 0x01, 0x04, 0x01, 0xEF, 0xFF, 0xFF, 0xFD, +0xAB, 0x01, 0xAB, 0x01, 0x0A, 0x00, 0x00, 0x00, +0x11, 0x01, 0x04, 0x01, 0xE0, 0x00, 0x00, 0xFC, +0xEB, 0x14, 0xEB, 0x14, 0x10, 0x00, 0x00, 0x00, +0x3A, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, +0x0E, 0x00, 0x00, 0x00, 0x3A, 0x04, 0x00, 0x02, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x87, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, +0x11, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xA1, 0x00, 0xA1, 0x00, +0x03, 0x00, 0x00, 0x00, 0x11, 0x01, 0x10, 0x03, +0x02, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0x00, +0xE9, 0x14, 0xE9, 0x14, 0x05, 0x00, 0x00, 0x00, +0x11, 0x01, 0x10, 0x01, 0x02, 0xFF, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x0C, 0x00, 0x6C, 0x07, 0x6C, 0x07, +0x07, 0x00, 0x00, 0x00, 0x11, 0x01, 0x10, 0x01, +0x05, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, +0x6C, 0x07, 0x6C, 0x07, 0x07, 0x00, 0x00, 0x00, +0x11, 0x01, 0x10, 0x01, 0x02, 0xFF, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x0C, 0x00, 0x76, 0x0E, 0x76, 0x0E, +0x09, 0x00, 0x00, 0x00, 0x11, 0x01, 0x10, 0x01, +0x02, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x01, +0xAB, 0x01, 0xAB, 0x01, 0x0B, 0x00, 0x00, 0x00, +0x11, 0x01, 0x10, 0x01, 0x05, 0xFF, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x23, 0x01, 0xAB, 0x01, 0xAB, 0x01, +0x0B, 0x00, 0x00, 0x00, 0x11, 0x01, 0x10, 0x01, +0x02, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x01, +0xAB, 0x01, 0xAB, 0x01, 0x0B, 0x00, 0x00, 0x00, +0x11, 0x01, 0x10, 0x01, 0x05, 0xFF, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x16, 0x01, 0xAB, 0x01, 0xAB, 0x01, +0x0B, 0x00, 0x00, 0x00, 0x11, 0x01, 0x0E, 0x01, +0x02, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, +0xAB, 0x01, 0xAB, 0x01, 0x0B, 0x00, 0x00, 0x00, +0x11, 0x01, 0x0E, 0x01, 0x05, 0xFF, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x01, 0x00, 0x00, 0x00, 0xAB, 0x01, 0xAB, 0x01, +0x0B, 0x00, 0x00, 0x00, 0x11, 0x01, 0x10, 0x01, +0x02, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, +0xEB, 0x14, 0xEB, 0x14, 0x11, 0x00, 0x00, 0x00, +0x01, 0x00, 0x00, 0x00, 0x20, 0x05, 0x00, 0x00, +0x50, 0x05, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, +0x20, 0x08, 0x00, 0x00, 0x24, 0x08, 0x00, 0x00, +0x38, 0x1C, 0x00, 0x00, 0x68, 0x1C, 0x00, 0x00, +0x60, 0x1D, 0x00, 0x00, 0x0C, 0x18, 0x00, 0x00, +0x0C, 0x41, 0x00, 0x00, 0x3C, 0x1C, 0x00, 0x00, +0x14, 0x1A, 0x00, 0x00, 0x58, 0x1D, 0x00, 0x00, +0x70, 0x1D, 0x00, 0x00, 0x64, 0x18, 0x00, 0x00, +0x64, 0x41, 0x00, 0x00, 0x6C, 0x18, 0x00, 0x00, +0x6C, 0x41, 0x00, 0x00, 0x14, 0x1A, 0x00, 0x00, +0x70, 0x1E, 0x00, 0x00, 0x0C, 0x08, 0x00, 0x00, +0x7C, 0x1E, 0x00, 0x00, 0xA4, 0x18, 0x00, 0x00, +0xA4, 0x41, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, +0xDF, 0x00, 0x00, 0x00, 0x9E, 0x00, 0x00, 0x00, +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x8D, +0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x07, 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, 0x08, 0x00, 0x00, 0x00, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xA1, 0x30, 0x03, 0x80, +0xAD, 0x30, 0x03, 0x80, 0xB3, 0x30, 0x03, 0x80, +0xB9, 0x30, 0x03, 0x80, 0xC1, 0x30, 0x03, 0x80, +0xF3, 0x30, 0x03, 0x80, 0xFF, 0x30, 0x03, 0x80, +0x05, 0x31, 0x03, 0x80, 0x0B, 0x31, 0x03, 0x80, +0x13, 0x31, 0x03, 0x80, 0x55, 0x31, 0x03, 0x80, +0x5B, 0x31, 0x03, 0x80, 0x67, 0x31, 0x03, 0x80, +0x73, 0x31, 0x03, 0x80, 0x7F, 0x31, 0x03, 0x80, +0xA3, 0x31, 0x03, 0x80, 0xA9, 0x31, 0x03, 0x80, +0xB5, 0x31, 0x03, 0x80, 0xC1, 0x31, 0x03, 0x80, +0xCD, 0x31, 0x03, 0x80, 0x5D, 0x33, 0x03, 0x80, +0x47, 0x34, 0x03, 0x80, 0xBF, 0x33, 0x03, 0x80, +0x47, 0x34, 0x03, 0x80, 0x03, 0x33, 0x03, 0x80, +0x47, 0x34, 0x03, 0x80, 0x47, 0x34, 0x03, 0x80, +0x47, 0x34, 0x03, 0x80, 0x29, 0x34, 0x03, 0x80, +0x47, 0x34, 0x03, 0x80, 0x47, 0x34, 0x03, 0x80, +0x47, 0x34, 0x03, 0x80, 0x9B, 0x32, 0x03, 0x80, +0x0C, 0x1D, 0x00, 0x00, 0x3C, 0x1C, 0x00, 0x00, +0x90, 0x1C, 0x00, 0x00, 0xB0, 0x09, 0x00, 0x00, +0x20, 0x0A, 0x00, 0x00, 0x2C, 0x0A, 0x00, 0x00, +0x14, 0x0C, 0x00, 0x00, 0x38, 0x0C, 0x00, 0x00, +0x44, 0x0C, 0x00, 0x00, 0x54, 0x0C, 0x00, 0x00, +0x58, 0x1D, 0x00, 0x00, 0x90, 0x1D, 0x00, 0x00, +0x94, 0x1D, 0x00, 0x00, 0x24, 0x1E, 0x00, 0x00, +0x28, 0x1E, 0x00, 0x00, 0x2C, 0x1E, 0x00, 0x00, +0x8C, 0x1E, 0x00, 0x00, 0xB0, 0x1E, 0x00, 0x00, +0x00, 0x40, 0x00, 0x00, 0x24, 0x40, 0x00, 0x00, +0x28, 0x40, 0x00, 0x00, 0x2C, 0x40, 0x00, 0x00, +0x50, 0x40, 0x00, 0x00, 0x00, 0x1C, 0x66, 0xB8, +0x08, 0x00, 0x00, 0x00, 0x00, 0x01, 0x64, 0xB8, +0x20, 0x00, 0x00, 0x00, 0xA0, 0x01, 0x64, 0xB8, +0x28, 0x00, 0x00, 0x00, 0x00, 0x02, 0x64, 0xB8, +0xF0, 0x00, 0x00, 0x00, 0x20, 0x04, 0x64, 0xB8, +0x29, 0x01, 0x00, 0x00, 0x74, 0x05, 0x64, 0xB8, +0x8C, 0x02, 0x00, 0x00, 0x20, 0x14, 0x64, 0xB8, +0xC0, 0x00, 0x00, 0x00, 0x00, 0x15, 0x64, 0xB8, +0xD4, 0x00, 0x00, 0x00, 0x00, 0x16, 0x64, 0xB8, +0xC8, 0x00, 0x00, 0x00, 0x00, 0x08, 0x64, 0xB8, +0xFC, 0x00, 0x00, 0x00, 0xB0, 0x09, 0x64, 0xB8, +0x4C, 0x04, 0x00, 0x00, 0x00, 0x18, 0x64, 0xB8, +0xFC, 0x01, 0x00, 0x00, 0x00, 0x1C, 0x64, 0xB8, +0xFC, 0x02, 0x00, 0x00, 0x00, 0x3A, 0x64, 0xB8, +0xA8, 0x00, 0x00, 0x00, 0x00, 0x40, 0x64, 0xB8, +0x00, 0x02, 0x00, 0x00, 0x00, 0x1A, 0x64, 0xB8, +0x00, 0x01, 0x00, 0x00, 0xA8, 0x06, 0x10, 0x07, +0x00, 0x16, 0x04, 0x16, 0x08, 0x16, 0x00, 0x00, +0xA8, 0x06, 0x10, 0x07, 0x00, 0x16, 0x04, 0x16, +0x08, 0x16, 0x00, 0x00, 0xA8, 0x06, 0x10, 0x07, +0x00, 0x16, 0x04, 0x16, 0x08, 0x16, 0x00, 0x00, +0x50, 0x05, 0x51, 0x05, 0x78, 0x05, 0x79, 0x05, +0x7A, 0x05, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, +0x05, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x00, 0x00, +0x04, 0x5F, 0x73, 0x75, 0x62, 0x00, 0x00, 0x00, +0x33, 0x33, 0x00, 0x00, 0x00, 0xFB, 0x00, 0x00, +0x05, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x00, 0x00, +0x04, 0x5F, 0x73, 0x75, 0x62, 0x00, 0x00, 0x00, +0xE0, 0x00, 0x00, 0xFB, 0x01, 0x00, 0x5E, 0x00, +0x00, 0xFB, 0x00, 0x00, 0xA8, 0x06, 0x10, 0x07, +0x00, 0x16, 0x04, 0x16, 0x08, 0x16, 0x00, 0x00, +0x10, 0x06, 0x00, 0x07, 0x20, 0x16, 0x30, 0x16, +0x40, 0x16, 0x00, 0x00, 0x18, 0x06, 0x08, 0x07, +0x28, 0x16, 0x38, 0x16, 0x48, 0x16, 0x00, 0x00, +0x18, 0x06, 0x08, 0x07, 0x28, 0x16, 0x38, 0x16, +0x48, 0x16, 0x00, 0x00, 0x00, 0x04, 0x08, 0x00, +0x08, 0x04, 0x04, 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, 0x01, 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, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 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, 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, 0x01, 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, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, +0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, +0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, +0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 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, 0x01, 0x00, 0x00, 0x00, +0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, +0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, +0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, +0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, +0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, +0x02, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, +0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, +0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, +0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, +0x00, 0x02, 0x00, 0x00, 0xA8, 0x06, 0x10, 0x07, +0x00, 0x16, 0x04, 0x16, 0x08, 0x16, 0x00, 0x00, +0x7F, 0x46, 0x03, 0x80, 0x79, 0x46, 0x03, 0x80, +0x85, 0x46, 0x03, 0x80, 0x8B, 0x46, 0x03, 0x80, +0x91, 0x46, 0x03, 0x80, 0x97, 0x46, 0x03, 0x80, +0x09, 0x12, 0x1B, 0x24, 0x94, 0x0C, 0x94, 0x0E, +0x94, 0x18, 0x94, 0x1A, 0x0D, 0xA6, 0x10, 0x80, +0xE1, 0xA6, 0x10, 0x80, 0x1D, 0xA6, 0x10, 0x80, +0x53, 0xA6, 0x10, 0x80, 0x8F, 0xA6, 0x10, 0x80, +0xE1, 0xA6, 0x10, 0x80, 0x2B, 0xA7, 0x10, 0x80, +0x43, 0xA7, 0x10, 0x80, 0x4F, 0xA7, 0x10, 0x80, +0x81, 0xA7, 0x10, 0x80, 0xB3, 0xA7, 0x10, 0x80, +0xC3, 0xA7, 0x10, 0x80, 0x09, 0x12, 0x1B, 0x24, +0x5F, 0xD1, 0x10, 0x80, 0xBB, 0xD1, 0x10, 0x80, +0xDF, 0xD1, 0x10, 0x80, 0x0F, 0xD2, 0x10, 0x80, +0x33, 0xD2, 0x10, 0x80, 0x5B, 0xD2, 0x10, 0x80, +0x19, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, +0x55, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, +0x87, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, +0xDE, 0x00, 0x00, 0x00, 0x20, 0x05, 0x00, 0x00, +0x20, 0x08, 0x00, 0x00, 0x24, 0x08, 0x00, 0x00, +0x3C, 0x1C, 0x00, 0x00, 0x58, 0x1D, 0x00, 0x00, +0x64, 0x18, 0x00, 0x00, 0x64, 0x41, 0x00, 0x00, +0x0C, 0x18, 0x00, 0x00, 0x0C, 0x41, 0x00, 0x00, +0x6C, 0x18, 0x00, 0x00, 0x6C, 0x41, 0x00, 0x00, +0x14, 0x1A, 0x00, 0x00, 0x70, 0x1E, 0x00, 0x00, +0x0C, 0x08, 0x00, 0x00, 0x70, 0x1D, 0x00, 0x00, +0x7C, 0x1E, 0x00, 0x00, 0xA4, 0x18, 0x00, 0x00, +0xA4, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xB0, 0x01, 0x00, 0x00, 0x4C, 0x01, 0x00, 0x00, +0x12, 0x01, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, +0xC8, 0x00, 0x00, 0x00, 0xAE, 0x00, 0x00, 0x00, +0x97, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, +0x73, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, +0x56, 0x00, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00, +0x3E, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, +0x2A, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, +0x17, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, +0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x7B, 0x3E, 0x11, 0x80, 0xF3, 0x3F, 0x11, 0x80, +0xCD, 0x40, 0x11, 0x80, 0x77, 0x3E, 0x11, 0x80, +0x77, 0x3E, 0x11, 0x80, 0x7B, 0x3E, 0x11, 0x80, +0x7B, 0x3E, 0x11, 0x80, 0xB5, 0x5E, 0x11, 0x80, +0xD7, 0x5E, 0x11, 0x80, 0xF9, 0x5E, 0x11, 0x80, +0x1B, 0x5F, 0x11, 0x80, 0x3F, 0x5F, 0x11, 0x80, +0x79, 0x5F, 0x11, 0x80, 0x9D, 0x5F, 0x11, 0x80, +0xC1, 0x5F, 0x11, 0x80, 0xE5, 0x5F, 0x11, 0x80, +0x0B, 0x60, 0x11, 0x80, 0x01, 0x01, 0x04, 0x10, +0x40, 0x00, 0x00, 0x00, 0xE0, 0x04, 0xE3, 0x04, +0xE3, 0x04, 0xE3, 0x04, 0xE3, 0x04, 0x00, 0x00, +0x91, 0x4D, 0x11, 0x80, 0x91, 0x4D, 0x11, 0x80, +0x91, 0x4D, 0x11, 0x80, 0xAB, 0x4D, 0x11, 0x80, +0x91, 0x4D, 0x11, 0x80, 0x91, 0x4D, 0x11, 0x80, +0x91, 0x4D, 0x11, 0x80, 0x8D, 0x4D, 0x11, 0x80, +0x8D, 0x4D, 0x11, 0x80, 0x8D, 0x4D, 0x11, 0x80, +0x8D, 0x4D, 0x11, 0x80, 0x8D, 0x4D, 0x11, 0x80, +0x1B, 0x4E, 0x11, 0x80, 0x25, 0x4E, 0x11, 0x80, +0x47, 0x6B, 0x03, 0x80, 0x57, 0x6B, 0x03, 0x80, +0x61, 0x6B, 0x03, 0x80, 0x6B, 0x6B, 0x03, 0x80, +0x7D, 0x6B, 0x03, 0x80, 0x41, 0x7B, 0x03, 0x80, +0x3D, 0x7B, 0x03, 0x80, 0x41, 0x7B, 0x03, 0x80, +0x3D, 0x7B, 0x03, 0x80, 0x61, 0x7B, 0x03, 0x80, +0x3D, 0x7B, 0x03, 0x80, 0x61, 0x7B, 0x03, 0x80, +0x3D, 0x7B, 0x03, 0x80, 0x81, 0x7B, 0x03, 0x80, +0x3D, 0x7B, 0x03, 0x80, 0x81, 0x7B, 0x03, 0x80, +0x3D, 0x7B, 0x03, 0x80, 0xA1, 0x7B, 0x03, 0x80, +0x3D, 0x7B, 0x03, 0x80, 0xA1, 0x7B, 0x03, 0x80, +0xA9, 0x7C, 0x03, 0x80, 0xA9, 0x7C, 0x03, 0x80, +0xA9, 0x7C, 0x03, 0x80, 0xA9, 0x7C, 0x03, 0x80, +0xC9, 0x7C, 0x03, 0x80, 0xC9, 0x7C, 0x03, 0x80, +0xC9, 0x7C, 0x03, 0x80, 0xC9, 0x7C, 0x03, 0x80, +0xE9, 0x7C, 0x03, 0x80, 0xE9, 0x7C, 0x03, 0x80, +0xE9, 0x7C, 0x03, 0x80, 0xE9, 0x7C, 0x03, 0x80, +0x09, 0x7D, 0x03, 0x80, 0x09, 0x7D, 0x03, 0x80, +0x09, 0x7D, 0x03, 0x80, 0x09, 0x7D, 0x03, 0x80, +0x50, 0x05, 0x00, 0x00, 0x51, 0x05, 0x00, 0x00, +0x78, 0x05, 0x00, 0x00, 0x79, 0x05, 0x00, 0x00, +0x7A, 0x05, 0x00, 0x00, 0x50, 0x05, 0x00, 0x00, +0x51, 0x05, 0x00, 0x00, 0x78, 0x05, 0x00, 0x00, +0x79, 0x05, 0x00, 0x00, 0x7A, 0x05, 0x00, 0x00, +0x47, 0x8B, 0x03, 0x80, 0xA7, 0x8B, 0x03, 0x80, +0x3B, 0x8C, 0x03, 0x80, 0xD9, 0x8C, 0x03, 0x80, +0x7D, 0x8D, 0x03, 0x80, 0xFC, 0x10, 0x60, 0xB8, +0xFA, 0xFA, 0xFA, 0xFA, 0xCF, 0x01, 0x64, 0xB8, +0x8C, 0x04, 0x64, 0xB8, 0x90, 0x04, 0x64, 0xB8, +0x94, 0x04, 0x64, 0xB8, 0x98, 0x04, 0x64, 0xB8, +0x9C, 0x04, 0x64, 0xB8, 0xA0, 0x04, 0x64, 0xB8, +0x77, 0x05, 0x64, 0xB8, 0x6C, 0x05, 0x64, 0xB8, +0x68, 0x05, 0x64, 0xB8, 0x54, 0x05, 0x64, 0xB8, +0x00, 0x00, 0x00, 0x80, 0x70, 0x06, 0x64, 0xB8, +0x78, 0x06, 0x64, 0xB8, 0x00, 0x00, 0x01, 0x80, +0x74, 0x06, 0x64, 0xB8, 0x98, 0x06, 0x64, 0xB8, +0x9C, 0x06, 0x64, 0xB8, 0x54, 0x06, 0x64, 0xB8, +0x58, 0x06, 0x64, 0xB8, 0x5C, 0x06, 0x64, 0xB8, +0xFF, 0xFF, 0xFF, 0x8F, 0x00, 0x00, 0x60, 0xB8, +0x00, 0x00, 0x64, 0xB8, 0xBF, 0x01, 0x64, 0xB8, +0x89, 0x00, 0x60, 0xB8, 0x8A, 0x00, 0x60, 0xB8, +0x1A, 0x04, 0x64, 0xB8, 0x1B, 0x04, 0x64, 0xB8, +0x8C, 0x00, 0x60, 0xB8, 0x01, 0x00, 0xFF, 0x00, +0xF4, 0x11, 0x64, 0xB8, 0x58, 0x05, 0x64, 0xB8, +0xE2, 0x10, 0x60, 0xB8, 0x30, 0x01, 0x64, 0xB8, +0x20, 0x01, 0x64, 0xB8, 0x20, 0x11, 0x64, 0xB8, +0x01, 0x8F, 0x00, 0xF0, 0x28, 0x11, 0x64, 0xB8, +0x30, 0x11, 0x64, 0xB8, 0x38, 0x11, 0x64, 0xB8, +0xE0, 0x11, 0x64, 0xB8, 0x50, 0x00, 0x60, 0xB8, +0x38, 0x01, 0x64, 0xB8, 0x18, 0x34, 0x00, 0xB8, +0x88, 0x10, 0x60, 0xB8, 0xFB, 0x11, 0x64, 0xB8, +0xFA, 0x11, 0x64, 0xB8, 0xF8, 0x11, 0x64, 0xB8, +0xC6, 0x04, 0x64, 0xB8, 0x00, 0x00, 0x66, 0xB8, +0x02, 0x00, 0x60, 0xB8, 0xBF, 0xD8, 0xF1, 0x02, +0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x00, +0x00, 0x00, 0x00, 0x41, 0xB7, 0xD8, 0xF1, 0x02, +0x28, 0x06, 0x64, 0xB8, 0x00, 0x00, 0x80, 0xC0, +0x2C, 0x06, 0x64, 0xB8, 0x62, 0x06, 0x64, 0xB8, +0x00, 0x01, 0x64, 0xB8, 0x2C, 0x02, 0x64, 0xB8, +0x44, 0x02, 0x64, 0xB8, 0x4C, 0x02, 0x64, 0xB8, +0x54, 0x02, 0x64, 0xB8, 0xD8, 0x04, 0x64, 0xB8, +0xDC, 0x04, 0x64, 0xB8, 0x7D, 0x04, 0x64, 0xB8, +0xC7, 0x01, 0x64, 0xB8, 0x90, 0x06, 0x64, 0xB8, +0x80, 0x00, 0x60, 0xB8, 0x00, 0x00, 0x80, 0x00, +0xFF, 0xFF, 0x7F, 0xFF, 0x00, 0x00, 0x78, 0xB8, +0xA0, 0x00, 0x78, 0xB8, 0x30, 0x00, 0x78, 0xB8, +0xA4, 0x04, 0x64, 0xB8, 0xA8, 0x04, 0x64, 0xB8, +0xF8, 0x10, 0x60, 0xB8, 0x00, 0x00, 0x20, 0x00, +0x10, 0x02, 0x64, 0xB8, 0x88, 0x02, 0x64, 0xB8, +0xE2, 0x04, 0x64, 0xB8, 0x14, 0x11, 0x64, 0xB8, +0xFF, 0x00, 0xFF, 0x00, 0x96, 0x02, 0x64, 0xB8, +0x86, 0x02, 0x64, 0xB8, 0xA2, 0x02, 0x64, 0xB8, +0xCC, 0x01, 0x64, 0xB8, 0x0A, 0x06, 0x64, 0xB8, +0xB1, 0x05, 0x64, 0xB8, 0xCA, 0x01, 0x64, 0xB8, +0x5B, 0x01, 0x64, 0xB8, 0x3C, 0x01, 0x64, 0xB8, +0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x02, 0x00, +0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, +0x22, 0x05, 0x64, 0xB8, 0x3F, 0x42, 0x0F, 0x00, +0xFE, 0x11, 0x64, 0xB8, 0x7F, 0x00, 0x00, 0x01, +0x02, 0x00, 0x00, 0x01, 0xFC, 0x11, 0x64, 0xB8, +0xE0, 0x10, 0x60, 0xB8, 0x57, 0x01, 0x64, 0xB8, +0x31, 0x00, 0x78, 0xB8, 0x1D, 0x04, 0x64, 0xB8, +0x7A, 0x04, 0x64, 0xB8, 0x80, 0x01, 0x64, 0xB8, +0x84, 0x01, 0x64, 0xB8, 0x72, 0x06, 0x64, 0xB8, +0xA9, 0x00, 0x78, 0xB8, 0x61, 0x00, 0x78, 0xB8, +0x01, 0x00, 0x78, 0xB8, 0xB9, 0x00, 0x78, 0xB8, +0xC1, 0x01, 0x64, 0xB8, 0xB9, 0x01, 0x64, 0xB8, +0xC3, 0x01, 0x64, 0xB8, 0x24, 0x04, 0x64, 0xB8, +0x40, 0x00, 0x78, 0xB8, 0x50, 0x00, 0x78, 0xB8, +0x38, 0x00, 0x78, 0xB8, 0x48, 0x00, 0x78, 0xB8, +0x1C, 0x04, 0x64, 0xB8, 0x34, 0x00, 0x78, 0xB8, +0x46, 0x00, 0x78, 0xB8, 0x07, 0x00, 0x78, 0xB8, +0x0B, 0x00, 0x78, 0xB8, 0x0C, 0x00, 0x78, 0xB8, +0xFF, 0xFF, 0x77, 0xB8, 0xFE, 0xFF, 0x77, 0xB8, +0x64, 0x00, 0x78, 0xB8, 0x65, 0x00, 0x78, 0xB8, +0x3C, 0x00, 0x78, 0xB8, 0x3D, 0x00, 0x78, 0xB8, +0x3E, 0x00, 0x78, 0xB8, 0x3F, 0x00, 0x78, 0xB8, +0x58, 0x00, 0x78, 0xB8, 0x59, 0x00, 0x78, 0xB8, +0x5A, 0x00, 0x78, 0xB8, 0x5B, 0x00, 0x78, 0xB8, +0x5C, 0x00, 0x78, 0xB8, 0x5D, 0x00, 0x78, 0xB8, +0x5E, 0x00, 0x78, 0xB8, 0x5F, 0x00, 0x78, 0xB8, +0x39, 0x00, 0x78, 0xB8, 0x3A, 0x00, 0x78, 0xB8, +0x3B, 0x00, 0x78, 0xB8, 0xC0, 0x01, 0x64, 0xB8, +0x4C, 0x00, 0x78, 0xB8, 0x51, 0x00, 0x78, 0xB8, +0x00, 0x00, 0x70, 0xB8, 0x4A, 0x00, 0x78, 0xB8, +0x00, 0x00, 0xFF, 0x00, 0x24, 0x01, 0x64, 0xB8, +0xB8, 0x01, 0x64, 0xB8, 0x38, 0x00, 0x60, 0xB8, +0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x09, 0x00, +0xF4, 0x00, 0x60, 0xB8, 0xFF, 0xFF, 0xFC, 0xFF, +0xC0, 0x00, 0x60, 0xB8, 0x60, 0x00, 0x60, 0xB8, +0x44, 0x00, 0x60, 0xB8, 0xBC, 0x01, 0x64, 0xB8, +0x01, 0x00, 0x00, 0x80, 0x4D, 0x01, 0x64, 0xB8, +0x18, 0x00, 0x78, 0xB8, 0x28, 0x00, 0x78, 0xB8, +0x10, 0x00, 0x78, 0xB8, 0x08, 0x00, 0x78, 0xB8, +0x09, 0x00, 0x78, 0xB8, 0x0A, 0x00, 0x78, 0xB8, +0x09, 0x06, 0x64, 0xB8, 0x08, 0x06, 0x64, 0xB8, +0xFF, 0xFF, 0xFF, 0x7F, 0x05, 0x00, 0x60, 0xB8, +0x04, 0x00, 0x78, 0xB8, 0x7A, 0x00, 0x78, 0xB8, +0x60, 0x00, 0x78, 0xB8, 0x54, 0x00, 0x78, 0xB8, +0x70, 0x11, 0x01, 0x00, 0x20, 0x00, 0x78, 0xB8, +0xC4, 0x01, 0x64, 0xB8, 0xA5, 0xA5, 0xA5, 0xA5, +0xC2, 0x01, 0x64, 0xB8, 0x05, 0x00, 0x78, 0xB8, +0x02, 0x00, 0x78, 0xB8, 0x06, 0x00, 0x78, 0xB8, +0x0D, 0x00, 0x78, 0xB8, 0x0E, 0x00, 0x78, 0xB8, +0x0F, 0x00, 0x78, 0xB8, 0x14, 0x00, 0x78, 0xB8, +0x02, 0x00, 0x64, 0xB8, 0x86, 0x00, 0x60, 0xB8, +0x87, 0x00, 0x60, 0xB8, 0x88, 0x00, 0x60, 0xB8, +0x84, 0x00, 0x60, 0xB8, 0x00, 0x00, 0x00, 0x02, +0xCB, 0x01, 0x64, 0xB8, 0x00, 0x00, 0x68, 0xB8, +0x04, 0x00, 0x68, 0xB8, 0x08, 0x00, 0x68, 0xB8, +0x0C, 0x00, 0x68, 0xB8, 0x00, 0x00, 0x00, 0x03, +0x00, 0x00, 0x00, 0x42, 0xE0, 0x00, 0x60, 0xB8, +0xFF, 0xFF, 0xFF, 0xFD, 0xE3, 0x00, 0x60, 0xB8, +0x00, 0x00, 0x00, 0x01, 0xE1, 0x00, 0x60, 0xB8, +0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x20, +0xCC, 0x00, 0x60, 0xB8, 0xFF, 0xFF, 0x03, 0x00, +0x00, 0x00, 0x00, 0x04, 0xFF, 0xFF, 0xFF, 0xFB, +0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0x1F, +0x04, 0x00, 0x60, 0xB8, 0x04, 0x00, 0x64, 0xB8, +0x08, 0x00, 0x60, 0xB8, 0x08, 0x00, 0x64, 0xB8, +0xE8, 0x12, 0x64, 0xB8, 0x24, 0x00, 0x60, 0xB8, +0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, +0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xEF, +0xB0, 0x02, 0x64, 0xB8, 0x1C, 0x01, 0x64, 0xB8, +0x00, 0x0C, 0x01, 0x00, 0x00, 0x80, 0xFF, 0x01, +0x08, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x0F, 0x00, +0x00, 0x00, 0x1F, 0x00, 0x01, 0x00, 0x00, 0xE0, +0x00, 0x00, 0xFF, 0x0F, 0x21, 0x00, 0x00, 0xE0, +0x00, 0xDB, 0x66, 0xDB, 0x00, 0x00, 0x00, 0x08, +0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x06, +0x80, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xF0, +0x00, 0x00, 0xFC, 0x07, 0x00, 0x00, 0x00, 0xC0, +0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x0F, +0xB4, 0x06, 0x64, 0xB8, 0x06, 0x00, 0x00, 0x89, +0x00, 0x0A, 0x08, 0x00, 0x01, 0x00, 0x66, 0xB8, +0x44, 0x00, 0x78, 0xB8, 0x01, 0x00, 0x00, 0xC0, +0x01, 0x00, 0x00, 0x60, 0x52, 0x29, 0x46, 0xE2, +0x03, 0x29, 0x29, 0x00, 0x32, 0xFC, 0x18, 0xA2, +0x08, 0x00, 0x04, 0x05, 0x01, 0x00, 0x0F, 0x70, +0x01, 0x00, 0x1F, 0x70, 0x01, 0x00, 0x2F, 0x70, +0x01, 0x00, 0x3F, 0x70, 0x01, 0x00, 0x4F, 0x70, +0x01, 0x00, 0x5F, 0x70, 0x01, 0x00, 0x6F, 0x70, +0x01, 0x00, 0x7F, 0x70, 0x01, 0x00, 0x8F, 0x70, +0x01, 0x00, 0x9F, 0x70, 0x01, 0x00, 0xAF, 0x70, +0x01, 0x00, 0xBF, 0x70, 0x01, 0x00, 0xCF, 0x70, +0x01, 0x00, 0xDF, 0x70, 0x01, 0x00, 0xEF, 0x70, +0x01, 0x00, 0xFF, 0x70, 0x5E, 0x00, 0xD5, 0xF7, +0x41, 0x80, 0x0B, 0x70, 0x40, 0x00, 0x1F, 0x70, +0x40, 0x00, 0x2F, 0x70, 0x40, 0x00, 0x3F, 0x70, +0x40, 0x00, 0x4F, 0x70, 0x41, 0x80, 0x5B, 0x70, +0x40, 0x00, 0x6F, 0x70, 0x41, 0x40, 0x14, 0x70, +0x41, 0x40, 0x24, 0x70, 0x41, 0x40, 0x34, 0x70, +0x41, 0x40, 0x44, 0x70, 0x41, 0x40, 0x64, 0x70, +0x41, 0x80, 0x7B, 0x70, 0x41, 0x80, 0x8B, 0x70, +0x41, 0x80, 0x9B, 0x70, 0x41, 0x80, 0xAB, 0x70, +0x41, 0x80, 0xBB, 0x70, 0x41, 0x80, 0xCB, 0x70, +0x41, 0x80, 0xDB, 0x70, 0x41, 0x80, 0xEB, 0x70, +0x41, 0x80, 0xFB, 0x70, 0x00, 0x00, 0x10, 0x00, +0x50, 0x50, 0x50, 0x50, 0x00, 0x00, 0x00, 0x70, +0x00, 0x00, 0x03, 0x00, 0x1F, 0x00, 0x60, 0xB8, +0xEF, 0x00, 0x60, 0xB8, 0x03, 0x00, 0x00, 0xC0, +0x03, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xFF, +0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x0F, 0xC0, +0x08, 0x18, 0x07, 0x00, 0x08, 0x0C, 0x07, 0x00, +0x00, 0x00, 0x0F, 0x00, 0x08, 0x00, 0x04, 0x00, +0xFF, 0x60, 0x0F, 0x00, 0x3F, 0xD8, 0x0F, 0x00, +0xFF, 0x60, 0x07, 0x00, 0x3F, 0xD8, 0x0D, 0x00, +0xFF, 0xDE, 0x07, 0x00, 0xBF, 0xF7, 0x0D, 0x00, +0x00, 0xC0, 0x0F, 0x00, 0x00, 0x00, 0x7C, 0x00, +0x00, 0xF0, 0x01, 0x00, 0x5E, 0x00, 0xA1, 0xFF, +0x00, 0x00, 0xFF, 0x1F, 0xFF, 0x1F, 0x00, 0x04, +0x00, 0x00, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x30, +0xF0, 0x00, 0x04, 0x00, 0xF0, 0x00, 0x04, 0x04, +0xF0, 0x00, 0x04, 0x08, 0xF0, 0x00, 0x04, 0x01, +0xF0, 0x00, 0x04, 0x05, 0xF0, 0x00, 0x04, 0x09, +0xF0, 0x00, 0x04, 0x02, 0xF0, 0x00, 0x04, 0x06, +0xF0, 0x00, 0x04, 0x0A, 0xF0, 0x00, 0x04, 0x03, +0xF0, 0x00, 0x04, 0x07, 0xF0, 0x00, 0x04, 0x0B, +0xF0, 0x00, 0x04, 0x0C, 0xF0, 0x00, 0x04, 0x10, +0xF0, 0x00, 0x04, 0x0D, 0xF0, 0x00, 0x04, 0x11, +0xF0, 0x00, 0x04, 0x0E, 0xF0, 0x00, 0x04, 0x12, +0xF0, 0x00, 0x04, 0x0F, 0xF0, 0x00, 0x04, 0x13, +0x00, 0x00, 0x06, 0x00, 0x01, 0x00, 0x06, 0x00, +0xF0, 0x00, 0x09, 0x00, 0x17, 0x00, 0x05, 0x00, +0x00, 0xC0, 0x07, 0x00, 0x00, 0x00, 0x10, 0x1F, +0x00, 0x00, 0x0D, 0x1F, 0x0B, 0x17, 0x23, 0x3B, +0x47, 0x53, 0x5F, 0x77, 0x00, 0x48, 0x08, 0x00, +0x01, 0x48, 0x08, 0x00, 0xFF, 0xFF, 0xFF, 0x0F, +0x80, 0x66, 0x06, 0x01, 0x10, 0x13, 0x00, 0x80, +0xDB, 0x00, 0x00, 0x81, 0xDB, 0x00, 0x00, 0x01, +0x00, 0x00, 0x02, 0x05, 0x0C, 0x19, 0x00, 0x82, +0x0C, 0x19, 0x00, 0x02, 0x14, 0xEE, 0x01, 0x83, +0x14, 0xEE, 0x01, 0x03, 0x08, 0x00, 0x02, 0x05, +0x3F, 0x00, 0x00, 0xC0, 0x14, 0x3E, 0x03, 0x00, +0xFF, 0xFF, 0xFF, 0x03, 0x12, 0x33, 0x03, 0x00, +0x11, 0x33, 0x03, 0x00, 0x12, 0x11, 0x01, 0x00, +0x31, 0xC9, 0x62, 0x49, 0x55, 0x24, 0x01, 0xFF, +0xC8, 0xFE, 0x18, 0x3E, 0xDE, 0xF0, 0xFA, 0x00, +0x44, 0x23, 0x12, 0x00, 0x00, 0xF0, 0x1F, 0x00, +0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0xF0, 0x00, +0x3F, 0xFF, 0xFE, 0xDF, 0x00, 0x00, 0x60, 0x00, +0x00, 0xFF, 0x0F, 0x00, 0x01, 0x80, 0x03, 0x70, +0x01, 0x80, 0x53, 0x70, 0x01, 0x80, 0x73, 0x70, +0x01, 0x80, 0x83, 0x70, 0x01, 0x80, 0x93, 0x70, +0x01, 0x80, 0xA3, 0x70, 0x01, 0x80, 0xB3, 0x70, +0x01, 0x80, 0xC3, 0x70, 0x01, 0x80, 0xD3, 0x70, +0x01, 0x80, 0xE3, 0x70, 0x01, 0x80, 0xF3, 0x70, +0x01, 0x80, 0x0B, 0x70, 0x01, 0x80, 0x5B, 0x70, +0x01, 0x80, 0x7B, 0x70, 0x01, 0x80, 0x8B, 0x70, +0x01, 0x80, 0x9B, 0x70, 0x01, 0x80, 0xAB, 0x70, +0x01, 0x80, 0xBB, 0x70, 0x01, 0x80, 0xCB, 0x70, +0x01, 0x80, 0xDB, 0x70, 0x01, 0x80, 0xEB, 0x70, +0x01, 0x80, 0xFB, 0x70, 0x00, 0x00, 0x00, 0x7F, +0x00, 0x00, 0x7F, 0x00, 0x00, 0xFC, 0x01, 0x00, +0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, +0x00, 0xFC, 0xF8, 0xFF, 0x00, 0x01, 0x01, 0x00, +0x00, 0x00, 0x00, 0x3F, 0x18, 0x00, 0x70, 0xB8, +0x0B, 0x00, 0x70, 0xB8, 0x02, 0x00, 0x70, 0xB8, +0x94, 0x02, 0x64, 0xB8, 0x97, 0x02, 0x64, 0xB8, +0x84, 0x02, 0x64, 0xB8, 0x06, 0x00, 0x66, 0xB8, +0x50, 0x02, 0x64, 0xB8, 0x48, 0x02, 0x64, 0xB8, +0x74, 0x00, 0x18, 0x2E, 0x74, 0x00, 0x19, 0x2E, +0x01, 0x00, 0x60, 0xB8, 0x01, 0x00, 0x64, 0xB8, +0x34, 0x01, 0x64, 0xB8, 0x64, 0x05, 0x64, 0xB8, +0x60, 0x05, 0x64, 0xB8, 0xC8, 0x01, 0x64, 0xB8, +0xC9, 0x01, 0x64, 0xB8, 0x0C, 0xEA, 0xEF, 0xFD, +0xA0, 0x01, 0x64, 0xB8, 0x48, 0x00, 0x60, 0xB8, +0x47, 0x00, 0x60, 0xB8, 0x46, 0x00, 0x60, 0xB8, +0x63, 0x00, 0x60, 0xB8, 0x62, 0x00, 0x60, 0xB8, +0x45, 0x00, 0x60, 0xB8, 0x61, 0x00, 0x60, 0xB8, +0xC6, 0x01, 0x64, 0xB8, 0xFF, 0xFF, 0xFF, 0x00, +0x00, 0x00, 0x00, 0x05, 0x64, 0x01, 0x64, 0xB8, +0x53, 0x05, 0x64, 0xB8, 0x94, 0x01, 0x64, 0xB8, +0x00, 0x1C, 0x66, 0xB8, 0x54, 0x00, 0x60, 0xB8, +0x24, 0x11, 0x64, 0xB8, 0x2C, 0x11, 0x64, 0xB8, +0x34, 0x11, 0x64, 0xB8, 0x3C, 0x11, 0x64, 0xB8, +0xE4, 0x11, 0x64, 0xB8, 0x00, 0x40, 0xE0, 0x03, +0x01, 0x60, 0x00, 0x03, 0xE0, 0x12, 0x64, 0xB8, +0x2F, 0x01, 0x64, 0xB8, 0xE8, 0x10, 0x60, 0xB8, +0x00, 0x3C, 0x64, 0xB8, 0x00, 0x4C, 0x64, 0xB8, +0x00, 0x58, 0x64, 0xB8, 0x00, 0x5C, 0x64, 0xB8, +0xF8, 0x05, 0x64, 0xB8, 0x83, 0x00, 0x60, 0xB8, +0x08, 0x01, 0x64, 0xB8, 0x90, 0x00, 0x60, 0xB8, +0x92, 0x06, 0x64, 0xB8, 0x00, 0x10, 0x60, 0xB8, +0x92, 0x00, 0x60, 0xB8, 0x1F, 0x07, 0x64, 0xB8, +0x1C, 0x07, 0x64, 0xB8, 0x2C, 0x04, 0x64, 0xB8, +0x2E, 0x04, 0x64, 0xB8, 0xB8, 0x05, 0x64, 0xB8, +0xBC, 0x05, 0x64, 0xB8, 0x5F, 0x11, 0x64, 0xB8, +0xFE, 0xFF, 0xFF, 0x7F, 0x30, 0x00, 0x78, 0x18, +0x7E, 0x04, 0x64, 0xB8, 0x20, 0x04, 0x64, 0xB8, +0xAC, 0x04, 0x64, 0xB8, 0x08, 0x10, 0x66, 0xB8, +0x00, 0x10, 0x66, 0xB8, 0x04, 0x10, 0x66, 0xB8, +0x0C, 0x10, 0x66, 0xB8, 0x7C, 0x04, 0x64, 0xB8, +0x71, 0x00, 0x60, 0xB8, 0xE4, 0x00, 0x60, 0xB8, +0xE6, 0x00, 0x60, 0xB8, 0xE8, 0x00, 0x60, 0xB8, +0xE9, 0x00, 0x60, 0xB8, 0xEA, 0x00, 0x60, 0xB8, +0xEB, 0x00, 0x60, 0xB8, 0xE5, 0x00, 0x60, 0xB8, +0x44, 0x00, 0x02, 0x00, 0xA0, 0x07, 0x64, 0xB8, +0x00, 0x00, 0x60, 0x06, 0x00, 0x00, 0x60, 0x02, +0xFF, 0xFF, 0xBF, 0xFD, 0x00, 0x00, 0x40, 0x02, +0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, +0x9A, 0x01, 0x64, 0xB8, 0x98, 0x01, 0x64, 0xB8, +0xD0, 0x05, 0x64, 0xB8, 0x08, 0x02, 0x64, 0xB8, +0x7B, 0x05, 0x64, 0xB8, 0x73, 0x05, 0x64, 0xB8, +0xD4, 0x04, 0x60, 0xB8, 0xD4, 0x04, 0x64, 0xB8, +0x84, 0x04, 0x60, 0xB8, 0x84, 0x04, 0x64, 0xB8, +0xC8, 0x04, 0x60, 0xB8, 0xC8, 0x04, 0x64, 0xB8, +0x78, 0x04, 0x60, 0xB8, 0x78, 0x04, 0x64, 0xB8, +0x00, 0x90, 0x01, 0x00, 0x01, 0x01, 0x64, 0xB8, +0x70, 0x00, 0x60, 0xB8, 0x0D, 0xEA, 0xEF, 0xFD, +0x04, 0xEA, 0xEF, 0xFD, 0xA0, 0x06, 0x64, 0xB8, +0x18, 0x11, 0x64, 0xB8, 0xFF, 0xFF, 0xFB, 0xFF, +0x9C, 0x02, 0x64, 0xB8, 0xA0, 0x02, 0x64, 0xB8, +0xA0, 0x34, 0x00, 0xB8, 0x00, 0x52, 0x00, 0xB8, +0x04, 0x52, 0x00, 0xB8, 0x08, 0x52, 0x00, 0xB8, +0x0C, 0x52, 0x00, 0xB8, 0x10, 0x52, 0x00, 0xB8, +0x30, 0x52, 0x00, 0xB8, 0x3C, 0x50, 0x00, 0xB8, +0x4C, 0x04, 0x64, 0xB8, 0x50, 0x04, 0x64, 0xB8, +0x04, 0x06, 0x64, 0xB8, 0xFF, 0xFF, 0xFF, 0xFE, +0x60, 0x16, 0x64, 0xB8, 0xFF, 0xFF, 0x00, 0xF0, +0x00, 0x00, 0x30, 0x80, 0x00, 0x12, 0x00, 0x04, +0x03, 0x00, 0x78, 0xB8, 0xFF, 0xFF, 0x01, 0xFF, +0x12, 0x05, 0x64, 0xB8, 0x10, 0x05, 0x64, 0xB8, +0x04, 0x18, 0x66, 0xB8, 0x00, 0x18, 0x66, 0xB8, +0xFF, 0xFF, 0xFF, 0x3F, 0x10, 0x00, 0x66, 0xB8, +0x11, 0x00, 0x66, 0xB8, 0x12, 0x00, 0x66, 0xB8, +0x13, 0x00, 0x66, 0xB8, 0x14, 0x00, 0x66, 0xB8, +0x15, 0x00, 0x66, 0xB8, 0xD4, 0x07, 0x64, 0xB8, +0xBC, 0x06, 0x64, 0xB8, 0x5F, 0x73, 0x75, 0x62, +0x00, 0x00, 0x00, 0x00, 0x6C, 0x6F, 0x63, 0x61, +0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x50, 0xF2, 0x01, 0x01, 0x80, 0x0B, 0x70, +0x01, 0x80, 0x0B, 0x70, 0x01, 0x40, 0x14, 0x70, +0x01, 0x40, 0x24, 0x70, 0x01, 0x40, 0x34, 0x70, +0x01, 0x40, 0x44, 0x70, 0x01, 0x80, 0x5B, 0x70, +0x01, 0x40, 0x64, 0x70, 0x01, 0x80, 0x7B, 0x70, +0x01, 0x80, 0x8B, 0x70, 0x01, 0x80, 0x9B, 0x70, +0x01, 0x80, 0xAB, 0x70, 0x01, 0x80, 0xBB, 0x70, +0x01, 0x80, 0xCB, 0x70, 0x01, 0x80, 0xDB, 0x70, +0x01, 0x80, 0xEB, 0x70, 0x01, 0x80, 0xFB, 0x70, +0x01, 0x80, 0xFB, 0x70, 0x01, 0x80, 0x0B, 0x70, +0x01, 0x80, 0x0B, 0x70, 0x01, 0x40, 0x14, 0x70, +0x01, 0x40, 0x24, 0x70, 0x01, 0x40, 0x34, 0x70, +0x01, 0x40, 0x44, 0x70, 0x01, 0x80, 0x5B, 0x70, +0x01, 0x40, 0x64, 0x70, 0x01, 0x80, 0x7B, 0x70, +0x01, 0x80, 0x8B, 0x70, 0x01, 0x80, 0x9B, 0x70, +0x01, 0x80, 0xAB, 0x70, 0x01, 0x80, 0xBB, 0x70, +0x01, 0x80, 0xCB, 0x70, 0x01, 0x80, 0xDB, 0x70, +0x01, 0x80, 0xEB, 0x70, 0x01, 0x80, 0xFB, 0x70, +0x01, 0x80, 0xFB, 0x70, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x41, +0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x43, +0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x45, +0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x47, +0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x49, +0x00, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x4B, +0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x4D, +0x00, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x00, 0x4F, +0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x51, +0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x53, +0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x55, +0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x57, +0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x59, +0x00, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x5B, +0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00, 0x5D, +0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00, 0x5F, +0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x61, +0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x63, +0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x65, +0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x67, +0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x69, +0x00, 0x00, 0x00, 0x6A, 0x00, 0x00, 0x00, 0x6B, +0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x6D, +0x00, 0x00, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x6F, +0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x71, +0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x73, +0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x75, +0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x77, +0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x79, +0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00, 0x7B, +0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x7D, +0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x7F, +0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, +0x00, 0x1B, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, +0x00, 0x1B, 0x00, 0x00, 0x08, 0x00, 0xA7, 0x00, +0x00, 0x1B, 0x00, 0x00, 0x08, 0x00, 0x15, 0x00, +0x00, 0x1B, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, +0x04, 0x1B, 0x00, 0x00, 0x52, 0x29, 0x46, 0xE2, +0x08, 0x1B, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, +0x0C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x10, 0x1B, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x00, +0x14, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x18, 0x1B, 0x00, 0x00, 0x03, 0x29, 0x29, 0x00, +0x1C, 0x1B, 0x00, 0x00, 0x32, 0xFC, 0x18, 0xA2, +0x20, 0x1B, 0x00, 0x00, 0x08, 0x00, 0x04, 0x01, +0x24, 0x1B, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, +0x28, 0x1B, 0x00, 0x00, 0x00, 0x03, 0x06, 0x00, +0x2C, 0x1B, 0x00, 0x00, 0x18, 0x00, 0x18, 0x00, +0x30, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, +0x34, 0x1B, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, +0x38, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, +0x3C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, +0x98, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x9C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xC0, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, +0xCC, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xE4, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xEC, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, +0x40, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, +0x44, 0x1B, 0x00, 0x00, 0x64, 0x40, 0x00, 0x20, +0x48, 0x1B, 0x00, 0x00, 0x2D, 0x00, 0x05, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x60, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x10, 0x1F, +0x64, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x00, +0x50, 0x1B, 0x00, 0x00, 0xBE, 0x03, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x01, +0x50, 0x1B, 0x00, 0x00, 0x7A, 0x05, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x02, +0x50, 0x1B, 0x00, 0x00, 0xC8, 0x06, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x03, +0x50, 0x1B, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x04, +0x50, 0x1B, 0x00, 0x00, 0xD5, 0x08, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x05, +0x50, 0x1B, 0x00, 0x00, 0xB2, 0x09, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x06, +0x50, 0x1B, 0x00, 0x00, 0x7D, 0x0A, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x07, +0x50, 0x1B, 0x00, 0x00, 0x3A, 0x0B, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x08, +0x50, 0x1B, 0x00, 0x00, 0xEB, 0x0B, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x09, +0x50, 0x1B, 0x00, 0x00, 0x92, 0x0C, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x0A, +0x50, 0x1B, 0x00, 0x00, 0x31, 0x0D, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x0B, +0x50, 0x1B, 0x00, 0x00, 0xC9, 0x0D, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x0C, +0x50, 0x1B, 0x00, 0x00, 0x5A, 0x0E, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x0D, +0x50, 0x1B, 0x00, 0x00, 0xE6, 0x0E, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x0E, +0x50, 0x1B, 0x00, 0x00, 0x6D, 0x0F, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x0F, +0x50, 0x1B, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x10, +0x50, 0x1B, 0x00, 0x00, 0x6F, 0x10, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x11, +0x50, 0x1B, 0x00, 0x00, 0xE9, 0x10, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x12, +0x50, 0x1B, 0x00, 0x00, 0x61, 0x11, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x13, +0x50, 0x1B, 0x00, 0x00, 0xD5, 0x11, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x14, +0x50, 0x1B, 0x00, 0x00, 0x47, 0x12, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x15, +0x50, 0x1B, 0x00, 0x00, 0xB5, 0x12, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x16, +0x50, 0x1B, 0x00, 0x00, 0x22, 0x13, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x17, +0x50, 0x1B, 0x00, 0x00, 0x8B, 0x13, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x18, +0x50, 0x1B, 0x00, 0x00, 0xF3, 0x13, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x19, +0x50, 0x1B, 0x00, 0x00, 0x59, 0x14, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x1A, +0x50, 0x1B, 0x00, 0x00, 0xBD, 0x14, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x1B, +0x50, 0x1B, 0x00, 0x00, 0x1E, 0x15, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x1C, +0x50, 0x1B, 0x00, 0x00, 0x7F, 0x15, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x1D, +0x50, 0x1B, 0x00, 0x00, 0xDD, 0x15, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x1E, +0x50, 0x1B, 0x00, 0x00, 0x3A, 0x16, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x1F, +0x50, 0x1B, 0x00, 0x00, 0x95, 0x16, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x20, +0x50, 0x1B, 0x00, 0x00, 0xEF, 0x16, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x21, +0x50, 0x1B, 0x00, 0x00, 0x48, 0x17, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x22, +0x50, 0x1B, 0x00, 0x00, 0x9F, 0x17, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x23, +0x50, 0x1B, 0x00, 0x00, 0xF5, 0x17, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x24, +0x50, 0x1B, 0x00, 0x00, 0x4A, 0x18, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x25, +0x50, 0x1B, 0x00, 0x00, 0x9E, 0x18, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x26, +0x50, 0x1B, 0x00, 0x00, 0xF1, 0x18, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x27, +0x50, 0x1B, 0x00, 0x00, 0x42, 0x19, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x28, +0x50, 0x1B, 0x00, 0x00, 0x93, 0x19, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x29, +0x50, 0x1B, 0x00, 0x00, 0xE2, 0x19, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x2A, +0x50, 0x1B, 0x00, 0x00, 0x31, 0x1A, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x2B, +0x50, 0x1B, 0x00, 0x00, 0x7F, 0x1A, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x2C, +0x50, 0x1B, 0x00, 0x00, 0xCC, 0x1A, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x2D, +0x50, 0x1B, 0x00, 0x00, 0x18, 0x1B, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x2E, +0x50, 0x1B, 0x00, 0x00, 0x63, 0x1B, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x2F, +0x50, 0x1B, 0x00, 0x00, 0xAD, 0x1B, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x30, +0x50, 0x1B, 0x00, 0x00, 0xF7, 0x1B, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x31, +0x50, 0x1B, 0x00, 0x00, 0x40, 0x1C, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x32, +0x50, 0x1B, 0x00, 0x00, 0x88, 0x1C, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x33, +0x50, 0x1B, 0x00, 0x00, 0xCF, 0x1C, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x34, +0x50, 0x1B, 0x00, 0x00, 0x16, 0x1D, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x35, +0x50, 0x1B, 0x00, 0x00, 0x5C, 0x1D, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x36, +0x50, 0x1B, 0x00, 0x00, 0xA2, 0x1D, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x37, +0x50, 0x1B, 0x00, 0x00, 0xE6, 0x1D, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x38, +0x50, 0x1B, 0x00, 0x00, 0x2B, 0x1E, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x39, +0x50, 0x1B, 0x00, 0x00, 0x6E, 0x1E, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x3A, +0x50, 0x1B, 0x00, 0x00, 0xB1, 0x1E, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x3B, +0x50, 0x1B, 0x00, 0x00, 0xF4, 0x1E, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x3C, +0x50, 0x1B, 0x00, 0x00, 0x35, 0x1F, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x3D, +0x50, 0x1B, 0x00, 0x00, 0x77, 0x1F, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x3E, +0x50, 0x1B, 0x00, 0x00, 0xB8, 0x1F, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x3F, +0x50, 0x1B, 0x00, 0x00, 0xF8, 0x1F, 0x00, 0x00, +0x4C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x50, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x00, +0x5C, 0x1B, 0x00, 0x00, 0xFF, 0x3F, 0x6B, 0x3C, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x02, +0x5C, 0x1B, 0x00, 0x00, 0x0A, 0x39, 0xD9, 0x35, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x04, +0x5C, 0x1B, 0x00, 0x00, 0xD6, 0x32, 0xFE, 0x2F, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x06, +0x5C, 0x1B, 0x00, 0x00, 0x4F, 0x2D, 0xC6, 0x2A, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x08, +0x5C, 0x1B, 0x00, 0x00, 0x62, 0x28, 0x1F, 0x26, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x0A, +0x5C, 0x1B, 0x00, 0x00, 0xFD, 0x23, 0xFA, 0x21, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x0C, +0x5C, 0x1B, 0x00, 0x00, 0x13, 0x20, 0x48, 0x1E, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x0E, +0x5C, 0x1B, 0x00, 0x00, 0x96, 0x1C, 0xFD, 0x1A, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x10, +0x5C, 0x1B, 0x00, 0x00, 0x7B, 0x19, 0x0E, 0x18, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x12, +0x5C, 0x1B, 0x00, 0x00, 0xB5, 0x16, 0x70, 0x15, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x14, +0x5C, 0x1B, 0x00, 0x00, 0x3D, 0x14, 0x1B, 0x13, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x16, +0x5C, 0x1B, 0x00, 0x00, 0x0A, 0x12, 0x07, 0x11, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x18, +0x5C, 0x1B, 0x00, 0x00, 0x13, 0x10, 0x2D, 0x0F, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x1A, +0x5C, 0x1B, 0x00, 0x00, 0x54, 0x0E, 0x87, 0x0D, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x1C, +0x5C, 0x1B, 0x00, 0x00, 0xC5, 0x0C, 0x0E, 0x0C, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x1E, +0x5C, 0x1B, 0x00, 0x00, 0x62, 0x0B, 0xBF, 0x0A, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x20, +0x5C, 0x1B, 0x00, 0x00, 0x25, 0x0A, 0x93, 0x09, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x22, +0x5C, 0x1B, 0x00, 0x00, 0x0A, 0x09, 0x89, 0x08, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x24, +0x5C, 0x1B, 0x00, 0x00, 0x0F, 0x08, 0x9B, 0x07, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x26, +0x5C, 0x1B, 0x00, 0x00, 0x2E, 0x07, 0xC7, 0x06, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x28, +0x5C, 0x1B, 0x00, 0x00, 0x66, 0x06, 0x0B, 0x06, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x2A, +0x5C, 0x1B, 0x00, 0x00, 0xB4, 0x05, 0x63, 0x05, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x2C, +0x5C, 0x1B, 0x00, 0x00, 0x15, 0x05, 0xCD, 0x04, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x2E, +0x5C, 0x1B, 0x00, 0x00, 0x88, 0x04, 0x47, 0x04, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x30, +0x5C, 0x1B, 0x00, 0x00, 0x0A, 0x04, 0xD0, 0x03, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x32, +0x5C, 0x1B, 0x00, 0x00, 0x99, 0x03, 0x66, 0x03, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x34, +0x5C, 0x1B, 0x00, 0x00, 0x35, 0x03, 0x07, 0x03, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x36, +0x5C, 0x1B, 0x00, 0x00, 0xDC, 0x02, 0xB3, 0x02, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x38, +0x5C, 0x1B, 0x00, 0x00, 0x8C, 0x02, 0x68, 0x02, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x3A, +0x5C, 0x1B, 0x00, 0x00, 0x45, 0x02, 0x25, 0x02, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x3C, +0x5C, 0x1B, 0x00, 0x00, 0x06, 0x02, 0xE9, 0x01, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x3E, +0x5C, 0x1B, 0x00, 0x00, 0xCE, 0x01, 0xB4, 0x01, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x40, +0x5C, 0x1B, 0x00, 0x00, 0x9C, 0x01, 0x85, 0x01, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x42, +0x5C, 0x1B, 0x00, 0x00, 0x6F, 0x01, 0x5A, 0x01, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x44, +0x5C, 0x1B, 0x00, 0x00, 0x47, 0x01, 0x35, 0x01, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x46, +0x5C, 0x1B, 0x00, 0x00, 0x23, 0x01, 0x13, 0x01, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x48, +0x5C, 0x1B, 0x00, 0x00, 0x04, 0x01, 0xF5, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x4A, +0x5C, 0x1B, 0x00, 0x00, 0xE7, 0x00, 0xDA, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x4C, +0x5C, 0x1B, 0x00, 0x00, 0xCE, 0x00, 0xC3, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x4E, +0x5C, 0x1B, 0x00, 0x00, 0xB8, 0x00, 0xAE, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x50, +0x5C, 0x1B, 0x00, 0x00, 0xA4, 0x00, 0x9B, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x52, +0x5C, 0x1B, 0x00, 0x00, 0x92, 0x00, 0x8A, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, +0x5C, 0x1B, 0x00, 0x00, 0x82, 0x00, 0x7B, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x56, +0x5C, 0x1B, 0x00, 0x00, 0x74, 0x00, 0x6E, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x58, +0x5C, 0x1B, 0x00, 0x00, 0x67, 0x00, 0x62, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x5A, +0x5C, 0x1B, 0x00, 0x00, 0x5C, 0x00, 0x57, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x5C, +0x5C, 0x1B, 0x00, 0x00, 0x52, 0x00, 0x4E, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x5E, +0x5C, 0x1B, 0x00, 0x00, 0x49, 0x00, 0x45, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x60, +0x5C, 0x1B, 0x00, 0x00, 0x41, 0x00, 0x3E, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x62, +0x5C, 0x1B, 0x00, 0x00, 0x3A, 0x00, 0x37, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x01, 0x62, +0x00, 0x1B, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, +0x00, 0x1B, 0x00, 0x00, 0x0A, 0x00, 0xA7, 0x00, +0x00, 0x1B, 0x00, 0x00, 0x0A, 0x00, 0x15, 0x00, +0x00, 0x1B, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, +0x04, 0x1B, 0x00, 0x00, 0x52, 0x29, 0x46, 0xE2, +0x08, 0x1B, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, +0x0C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x10, 0x1B, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x00, +0x14, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x18, 0x1B, 0x00, 0x00, 0x03, 0x29, 0x29, 0x00, +0x1C, 0x1B, 0x00, 0x00, 0x32, 0xFC, 0x18, 0xA2, +0x20, 0x1B, 0x00, 0x00, 0x08, 0x00, 0x04, 0x01, +0x24, 0x1B, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, +0x28, 0x1B, 0x00, 0x00, 0x00, 0x03, 0x06, 0x00, +0x2C, 0x1B, 0x00, 0x00, 0x18, 0x00, 0x18, 0x00, +0x30, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, +0x34, 0x1B, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, +0x38, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, +0x3C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, +0x98, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x9C, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xC0, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, +0xCC, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xE4, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xEC, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, +0x60, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x10, 0x1F, +0x64, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x00, +0x5C, 0x1B, 0x00, 0x00, 0xFF, 0x3F, 0x6B, 0x3C, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x02, +0x5C, 0x1B, 0x00, 0x00, 0x0A, 0x39, 0xD9, 0x35, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x04, +0x5C, 0x1B, 0x00, 0x00, 0xD6, 0x32, 0xFE, 0x2F, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x06, +0x5C, 0x1B, 0x00, 0x00, 0x4F, 0x2D, 0xC6, 0x2A, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x08, +0x5C, 0x1B, 0x00, 0x00, 0x62, 0x28, 0x1F, 0x26, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x0A, +0x5C, 0x1B, 0x00, 0x00, 0xFD, 0x23, 0xFA, 0x21, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x0C, +0x5C, 0x1B, 0x00, 0x00, 0x13, 0x20, 0x48, 0x1E, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x0E, +0x5C, 0x1B, 0x00, 0x00, 0x96, 0x1C, 0xFD, 0x1A, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x10, +0x5C, 0x1B, 0x00, 0x00, 0x7B, 0x19, 0x0E, 0x18, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x12, +0x5C, 0x1B, 0x00, 0x00, 0xB5, 0x16, 0x70, 0x15, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x14, +0x5C, 0x1B, 0x00, 0x00, 0x3D, 0x14, 0x1B, 0x13, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x16, +0x5C, 0x1B, 0x00, 0x00, 0x0A, 0x12, 0x07, 0x11, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x18, +0x5C, 0x1B, 0x00, 0x00, 0x13, 0x10, 0x2D, 0x0F, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x1A, +0x5C, 0x1B, 0x00, 0x00, 0x54, 0x0E, 0x87, 0x0D, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x1C, +0x5C, 0x1B, 0x00, 0x00, 0xC5, 0x0C, 0x0E, 0x0C, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x1E, +0x5C, 0x1B, 0x00, 0x00, 0x62, 0x0B, 0xBF, 0x0A, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x20, +0x5C, 0x1B, 0x00, 0x00, 0x25, 0x0A, 0x93, 0x09, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x22, +0x5C, 0x1B, 0x00, 0x00, 0x0A, 0x09, 0x89, 0x08, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x24, +0x5C, 0x1B, 0x00, 0x00, 0x0F, 0x08, 0x9B, 0x07, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x26, +0x5C, 0x1B, 0x00, 0x00, 0x2E, 0x07, 0xC7, 0x06, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x28, +0x5C, 0x1B, 0x00, 0x00, 0x66, 0x06, 0x0B, 0x06, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x2A, +0x5C, 0x1B, 0x00, 0x00, 0xB4, 0x05, 0x63, 0x05, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x2C, +0x5C, 0x1B, 0x00, 0x00, 0x15, 0x05, 0xCD, 0x04, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x2E, +0x5C, 0x1B, 0x00, 0x00, 0x88, 0x04, 0x47, 0x04, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x30, +0x5C, 0x1B, 0x00, 0x00, 0x0A, 0x04, 0xD0, 0x03, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x32, +0x5C, 0x1B, 0x00, 0x00, 0x99, 0x03, 0x66, 0x03, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x34, +0x5C, 0x1B, 0x00, 0x00, 0x35, 0x03, 0x07, 0x03, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x36, +0x5C, 0x1B, 0x00, 0x00, 0xDC, 0x02, 0xB3, 0x02, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x38, +0x5C, 0x1B, 0x00, 0x00, 0x8C, 0x02, 0x68, 0x02, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x3A, +0x5C, 0x1B, 0x00, 0x00, 0x45, 0x02, 0x25, 0x02, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x3C, +0x5C, 0x1B, 0x00, 0x00, 0x06, 0x02, 0xE9, 0x01, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x3E, +0x5C, 0x1B, 0x00, 0x00, 0xCE, 0x01, 0xB4, 0x01, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x40, +0x5C, 0x1B, 0x00, 0x00, 0x9C, 0x01, 0x85, 0x01, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x42, +0x5C, 0x1B, 0x00, 0x00, 0x6F, 0x01, 0x5A, 0x01, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x44, +0x5C, 0x1B, 0x00, 0x00, 0x47, 0x01, 0x35, 0x01, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x46, +0x5C, 0x1B, 0x00, 0x00, 0x23, 0x01, 0x13, 0x01, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x48, +0x5C, 0x1B, 0x00, 0x00, 0x04, 0x01, 0xF5, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x4A, +0x5C, 0x1B, 0x00, 0x00, 0xE7, 0x00, 0xDA, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x4C, +0x5C, 0x1B, 0x00, 0x00, 0xCE, 0x00, 0xC3, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x4E, +0x5C, 0x1B, 0x00, 0x00, 0xB8, 0x00, 0xAE, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x50, +0x5C, 0x1B, 0x00, 0x00, 0xA4, 0x00, 0x9B, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x52, +0x5C, 0x1B, 0x00, 0x00, 0x92, 0x00, 0x8A, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, +0x5C, 0x1B, 0x00, 0x00, 0x82, 0x00, 0x7B, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x56, +0x5C, 0x1B, 0x00, 0x00, 0x74, 0x00, 0x6E, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x58, +0x5C, 0x1B, 0x00, 0x00, 0x67, 0x00, 0x62, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x5A, +0x5C, 0x1B, 0x00, 0x00, 0x5C, 0x00, 0x57, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x5C, +0x5C, 0x1B, 0x00, 0x00, 0x52, 0x00, 0x4E, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x5E, +0x5C, 0x1B, 0x00, 0x00, 0x49, 0x00, 0x45, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x60, +0x5C, 0x1B, 0x00, 0x00, 0x41, 0x00, 0x3E, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x89, 0x62, +0x5C, 0x1B, 0x00, 0x00, 0x3A, 0x00, 0x37, 0x00, +0x58, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x01, 0x62, +0x00, 0x1B, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, +0xD4, 0x1B, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, +0xB8, 0x1B, 0x00, 0x00, 0x20, 0x20, 0x20, 0x20, +0xBC, 0x1B, 0x00, 0x00, 0x20, 0x20, 0x20, 0x20, +0xC0, 0x1B, 0x00, 0x00, 0x20, 0x20, 0x20, 0x20, +0xC4, 0x1B, 0x00, 0x00, 0x20, 0x20, 0x20, 0x20, +0xC8, 0x1B, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, +0xCC, 0x1B, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, +0xD0, 0x1B, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, +0xD8, 0x1B, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, +0xDC, 0x1B, 0x00, 0x00, 0x20, 0x20, 0x20, 0x20, +0xE0, 0x1B, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, +0xE4, 0x1B, 0x00, 0x00, 0x17, 0x2F, 0x47, 0x77, +0xE8, 0x1B, 0x00, 0x00, 0x8F, 0xA7, 0xBF, 0xEF, +0xEC, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xF0, 0x1B, 0x00, 0x00, 0x39, 0x19, 0x1F, 0x1F, +0x04, 0x1B, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x00, +0x08, 0x1B, 0x00, 0x00, 0x00, 0xC0, 0x00, 0xB0, +0x5C, 0x1B, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x00, +0x60, 0x1B, 0x00, 0x00, 0x00, 0xC0, 0x00, 0xB0, +0xB4, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x15, 0xF0, 0xFF, 0x0F, +0x00, 0x00, 0x00, 0x00, 0x15, 0xF0, 0x0F, 0x00, +0x00, 0x00, 0x00, 0x00, 0x05, 0xF0, 0xFF, 0x0F, +0x00, 0x00, 0x00, 0x00, 0x05, 0xF0, 0x0F, 0x00, +0x00, 0x00, 0x00, 0x00, 0x10, 0xF0, 0xFF, 0x0F, +0x00, 0x00, 0x00, 0x00, 0x10, 0xF0, 0x0F, 0x00, +0x00, 0x00, 0x00, 0x00, 0xF5, 0x0F, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x3F, 0x00, +0x00, 0x00, 0x00, 0x00, 0x15, 0xF0, 0x3F, 0x00, +0x00, 0x00, 0x00, 0x00, 0x15, 0xF0, 0xFF, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, +0xFF, 0x03, 0x00, 0x00, 0x15, 0xF0, 0xFF, 0xFF, +0x0F, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x06, +0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0xFF, +0xFF, 0x00, 0x01, 0x02, 0x02, 0x04, 0x05, 0x06, +0x07, 0x08, 0x09, 0x0A, 0x28, 0x28, 0x32, 0x28, +0x1E, 0x19, 0x19, 0x19, 0x18, 0x18, 0x12, 0x0F, +0x1E, 0x1E, 0x19, 0x1E, 0x18, 0x16, 0x0C, 0x0C, +0x1E, 0x1E, 0x19, 0x1E, 0x18, 0x16, 0x0C, 0x0C, +0x1E, 0x1E, 0x19, 0x1C, 0x18, 0x14, 0x0C, 0x0A, +0x1E, 0x1E, 0x19, 0x1E, 0x19, 0x18, 0x0F, 0x0E, +0x1E, 0x1E, 0x1E, 0x1E, 0x1C, 0x16, 0x14, 0x12, +0x0C, 0x0A, 0x1E, 0x1E, 0x1E, 0x1E, 0x1A, 0x16, +0x12, 0x10, 0x0C, 0x0A, 0x1E, 0x1E, 0x1E, 0x1E, +0x18, 0x16, 0x0D, 0x0E, 0x0C, 0x0A, 0x0A, 0x0A, +0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, +0x12, 0x12, 0x14, 0x12, 0x0F, 0x0F, 0x0C, 0x0C, +0x09, 0x08, 0x08, 0x07, 0x0A, 0x0A, 0x09, 0x07, +0x07, 0x06, 0x05, 0x04, 0x0C, 0x0C, 0x0A, 0x0A, +0x09, 0x07, 0x07, 0x06, 0x0C, 0x0C, 0x0A, 0x0A, +0x09, 0x07, 0x07, 0x06, 0x0C, 0x0C, 0x0A, 0x0A, +0x09, 0x07, 0x07, 0x06, 0x0A, 0x0A, 0x08, 0x08, +0x08, 0x07, 0x07, 0x06, 0x04, 0x04, 0x0C, 0x0C, +0x0A, 0x0A, 0x09, 0x07, 0x07, 0x06, 0x05, 0x04, +0x0C, 0x0C, 0x0A, 0x0A, 0x09, 0x07, 0x07, 0x06, +0x05, 0x04, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, +0x0A, 0x0A, 0x0A, 0x0A, 0x02, 0x02, 0x02, 0x04, +0x02, 0x04, 0x06, 0x06, 0x08, 0x08, 0x09, 0x09, +0x03, 0x06, 0x08, 0x08, 0x0A, 0x0E, 0x10, 0x18, +0x05, 0x08, 0x08, 0x08, 0x0A, 0x0E, 0x10, 0x18, +0x05, 0x08, 0x08, 0x09, 0x10, 0x14, 0x1C, 0x20, +0x04, 0x06, 0x08, 0x0A, 0x10, 0x18, 0x18, 0x20, +0x03, 0x06, 0x08, 0x09, 0x10, 0x14, 0x1C, 0x24, +0x34, 0x3A, 0x05, 0x07, 0x09, 0x0A, 0x10, 0x14, +0x1C, 0x28, 0x34, 0x3C, 0x06, 0x08, 0x0A, 0x0C, +0x12, 0x18, 0x1E, 0x2E, 0x36, 0x40, 0x0A, 0x0C, +0x0C, 0x12, 0x16, 0x1C, 0x20, 0x2E, 0x36, 0x40, +0x2C, 0x00, 0x04, 0x00, 0x2D, 0x00, 0x2C, 0x01, +0x2D, 0x01, 0x2C, 0x02, 0x2E, 0x01, 0xFF, 0x00, +0x2D, 0x02, 0xFF, 0x00, 0x36, 0x2D, 0xFF, 0x36, +0x2E, 0xFF, 0x37, 0x2F, 0xFF, 0x38, 0x30, 0xFF, +0x39, 0x31, 0xFF, 0x3A, 0x32, 0xFF, 0x3A, 0x33, +0xFF, 0x3A, 0x34, 0xFF, 0x3A, 0x35, 0xFF, 0x3B, +0xFF, 0xFF, 0x37, 0x2E, 0xFF, 0x38, 0x30, 0xFF, +0x39, 0x31, 0xFF, 0x3A, 0x32, 0xFF, 0x3B, 0x35, +0xFF, 0x3C, 0xFF, 0xFF, 0x3D, 0xFF, 0xFF, 0x3E, +0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x37, 0xFF, 0x2F, 0x39, 0xFF, 0x31, 0xFF, 0x3A, +0x33, 0xFF, 0x3B, 0x35, 0xFF, 0x3D, 0xFF, 0xFF, +0xFF, 0x3E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, +0x0D, 0x14, 0xFF, 0x15, 0x0E, 0xFF, 0x15, 0x0F, +0xFF, 0x16, 0x10, 0xFF, 0x17, 0x11, 0xFF, 0x18, +0x12, 0xFF, 0x18, 0x13, 0xFF, 0x18, 0xFF, 0xFF, +0x15, 0x0E, 0xFF, 0x16, 0x10, 0xFF, 0x17, 0x10, +0xFF, 0x18, 0x11, 0xFF, 0x19, 0xFF, 0xFF, 0x1A, +0xFF, 0xFF, 0x1B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x15, 0x13, 0x0F, 0x17, 0x1E, 0x11, 0x18, 0x1F, +0x13, 0x20, 0x19, 0xFF, 0x21, 0x1B, 0xFF, 0x22, +0xFF, 0xFF, 0x23, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x04, 0x04, 0x04, 0x36, 0x2C, 0xFF, 0x2D, 0xFF, +0xFF, 0x2E, 0x37, 0xFF, 0x38, 0x2F, 0xFF, 0x39, +0x30, 0xFF, 0x39, 0x31, 0xFF, 0x39, 0x32, 0xFF, +0x3A, 0x33, 0xFF, 0x3A, 0x34, 0xFF, 0x2D, 0x2C, +0xFF, 0x36, 0x2E, 0xFF, 0x37, 0x2F, 0xFF, 0x38, +0x30, 0xFF, 0x33, 0x39, 0xFF, 0x35, 0x3A, 0xFF, +0x3B, 0x34, 0xFF, 0x3C, 0x3B, 0xFF, 0x3D, 0x3C, +0xFF, 0x3E, 0x3D, 0xFF, 0x37, 0x2E, 0xFF, 0x38, +0x2F, 0xFF, 0x39, 0x31, 0xFF, 0x3A, 0xFF, 0xFF, +0xFF, 0x3B, 0xFF, 0xFF, 0x3C, 0xFF, 0xFF, 0x3D, +0x3C, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0x00, 0x00, 0x04, 0xFF, 0xFF, 0x0C, +0xFF, 0xFF, 0x0D, 0x14, 0xFF, 0x0E, 0x15, 0xFF, +0x16, 0x0F, 0xFF, 0x17, 0x10, 0xFF, 0x17, 0x11, +0xFF, 0x17, 0x12, 0xFF, 0x0D, 0x0C, 0xFF, 0x14, +0x0E, 0xFF, 0x15, 0x0F, 0xFF, 0x16, 0x10, 0xFF, +0x17, 0x12, 0xFF, 0x18, 0x13, 0xFF, 0x19, 0x13, +0xFF, 0x1A, 0x13, 0xFF, 0x14, 0x0E, 0xFF, 0x15, +0x1C, 0xFF, 0x17, 0x1D, 0x11, 0x18, 0x1E, 0x13, +0x19, 0x1F, 0x1E, 0x20, 0x1A, 0x1F, 0x21, 0x1B, +0x20, 0x22, 0x21, 0x1B, 0x01, 0x00, 0x02, 0x00, +0x05, 0x00, 0x0B, 0x00, 0x06, 0x00, 0x09, 0x00, +0x0C, 0x00, 0x12, 0x00, 0x18, 0x00, 0x24, 0x00, +0x30, 0x00, 0x36, 0x00, 0x0E, 0x00, 0x1B, 0x00, +0x29, 0x00, 0x36, 0x00, 0x51, 0x00, 0x6C, 0x00, +0x7A, 0x00, 0x87, 0x00, 0x1B, 0x00, 0x36, 0x00, +0x51, 0x00, 0x6C, 0x00, 0xA2, 0x00, 0xD8, 0x00, +0xF3, 0x00, 0x0E, 0x01, 0x29, 0x00, 0x51, 0x00, +0x7A, 0x00, 0xA2, 0x00, 0xF3, 0x00, 0x44, 0x01, +0x6D, 0x01, 0x95, 0x01, 0x36, 0x00, 0x6C, 0x00, +0xA2, 0x00, 0xD8, 0x00, 0x44, 0x01, 0xB0, 0x01, +0xE6, 0x01, 0x1C, 0x02, 0x0E, 0x00, 0x1B, 0x00, +0x29, 0x00, 0x36, 0x00, 0x51, 0x00, 0x6C, 0x00, +0x7A, 0x00, 0x87, 0x00, 0xA2, 0x00, 0xB4, 0x00, +0x1B, 0x00, 0x36, 0x00, 0x51, 0x00, 0x6C, 0x00, +0xA2, 0x00, 0xD8, 0x00, 0xF3, 0x00, 0x0E, 0x01, +0x44, 0x01, 0x68, 0x01, 0x29, 0x00, 0x51, 0x00, +0x7A, 0x00, 0xA2, 0x00, 0xF3, 0x00, 0x44, 0x01, +0x6C, 0x01, 0x95, 0x01, 0xE6, 0x01, 0x1C, 0x02, +0x36, 0x00, 0x6C, 0x00, 0xA2, 0x00, 0xD8, 0x00, +0x44, 0x01, 0xB0, 0x01, 0xE6, 0x01, 0x1C, 0x02, +0x88, 0x02, 0xD0, 0x02, 0x14, 0x14, 0x15, 0x15, +0x16, 0x17, 0x17, 0x18, 0x1C, 0x1C, 0x1C, 0x1C, +0x1D, 0x1D, 0x1E, 0x1E, 0x1C, 0x1C, 0x1D, 0x1E, +0x1F, 0x20, 0x20, 0x20, 0x36, 0x36, 0x37, 0x37, +0x38, 0x39, 0x39, 0x3A, 0x3A, 0x3A, 0x00, 0x00, +0x40, 0x40, 0x40, 0x40, 0x41, 0x41, 0x42, 0x42, +0x43, 0x43, 0x00, 0x00, 0x40, 0x40, 0x41, 0x42, +0x43, 0x44, 0x44, 0x44, 0x45, 0x46, 0x00, 0x00, +0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xF0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xF0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x30, 0xC0, +0xE0, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0E, 0x38, +0x18, 0x00, 0x00, 0x00, 0x00, 0x83, 0x01, 0x06, +0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x70, 0xE0, +0x73, 0xE6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x30, 0xF0, 0x21, 0x6C, 0x00, 0xF0, 0x00, 0x4C, +0xBC, 0x65, 0x94, 0xB8, 0x00, 0x65, 0x00, 0x6D, +0xFE, 0xF7, 0x1F, 0x4D, 0xAC, 0xEC, 0x94, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0xF4, +0x00, 0x6D, 0xAD, 0xEC, 0x40, 0x6D, 0xAD, 0xEC, +0x94, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x1F, 0xF6, 0x00, 0x6C, 0x8C, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x77, 0xF0, 0x20, 0x6C, +0x80, 0xF0, 0x80, 0x9C, 0x80, 0xF0, 0x20, 0x6E, +0xCC, 0xEC, 0x18, 0x24, 0x30, 0xF0, 0x21, 0x6C, +0xFC, 0xF7, 0x1C, 0x4C, 0x80, 0x9C, 0xBC, 0x65, +0x30, 0xF0, 0x21, 0x6C, 0xFC, 0xF7, 0x18, 0x4C, +0x80, 0x9C, 0xFC, 0x65, 0x9F, 0x67, 0x77, 0xF0, +0x24, 0x6D, 0xE0, 0xF2, 0x90, 0xDD, 0x9D, 0x67, +0x77, 0xF0, 0x24, 0x6D, 0xE0, 0xF2, 0x94, 0xDD, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6C, +0xC0, 0xF1, 0x14, 0x4C, 0x00, 0x6E, 0x30, 0xF0, +0x20, 0x6F, 0x41, 0xF7, 0x08, 0x4F, 0xC0, 0xDC, +0x04, 0x4C, 0xE3, 0xEC, 0xB8, 0x67, 0xFB, 0x2D, +0x30, 0xF0, 0x20, 0x6C, 0x66, 0xF4, 0x1C, 0x4C, +0x00, 0x6E, 0x30, 0xF0, 0x20, 0x6F, 0xEF, 0xF6, +0x00, 0x4F, 0xC0, 0xDC, 0x04, 0x4C, 0xE3, 0xEC, +0xB8, 0x67, 0xFB, 0x2D, 0x10, 0xF0, 0x23, 0x6C, +0xC0, 0xF0, 0x01, 0x4C, 0x00, 0xEC, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0x7C, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0xC0, 0xF0, 0x01, 0x4A, +0x40, 0xDB, 0x00, 0x1C, 0x80, 0x00, 0x80, 0x18, +0xE3, 0x58, 0x80, 0x18, 0xF3, 0x55, 0x80, 0x18, +0x1A, 0x56, 0x80, 0x18, 0xB4, 0x58, 0x80, 0x18, +0x34, 0x56, 0x80, 0x18, 0xAB, 0x58, 0x00, 0x18, +0xCC, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, +0x54, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x69, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x30, 0xF0, 0x21, 0x6A, 0x41, 0xF7, 0x08, 0x4C, +0x1D, 0xF0, 0x00, 0x4A, 0x43, 0xDC, 0xE0, 0xF7, +0x40, 0x98, 0x00, 0x6D, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE6, 0xF4, 0x50, 0xDB, 0x01, 0xF0, +0x50, 0x99, 0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF0, +0x10, 0x4C, 0x01, 0x6D, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x06, 0xF5, 0x44, 0xDB, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x21, 0x6A, 0xE1, 0xF7, +0x00, 0x4C, 0x1D, 0xF4, 0x00, 0x4A, 0x43, 0xDC, +0xE0, 0xF7, 0x40, 0x98, 0x00, 0x6D, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE6, 0xF4, 0x58, 0xDB, +0x01, 0xF0, 0x50, 0x99, 0x30, 0xF0, 0x20, 0x6C, +0x22, 0xF0, 0x0C, 0x4C, 0x01, 0x6D, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x06, 0xF5, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x21, 0x6A, +0x81, 0xF7, 0x14, 0x4C, 0x1E, 0xF0, 0x00, 0x4A, +0x43, 0xDC, 0xE0, 0xF7, 0x40, 0x98, 0x00, 0x6D, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE6, 0xF4, +0x54, 0xDB, 0x01, 0xF0, 0x50, 0x99, 0x30, 0xF0, +0x20, 0x6C, 0x00, 0x6D, 0x82, 0xF0, 0x04, 0x4C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x06, 0xF5, +0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x01, 0xF0, +0x44, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF0, +0x00, 0x4C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x06, 0xF5, 0x4C, 0xDB, 0x30, 0xF0, 0x20, 0x6C, +0x30, 0xF0, 0x21, 0x6A, 0x22, 0xF0, 0x14, 0x4C, +0x1E, 0xF4, 0x00, 0x4A, 0x43, 0xDC, 0xE0, 0xF7, +0x40, 0x98, 0x00, 0x6D, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE6, 0xF4, 0x5C, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF2, 0x60, 0x9A, 0xFF, 0xF7, +0x1F, 0x6C, 0x10, 0xF0, 0x00, 0x6D, 0x40, 0xAB, +0xAB, 0xED, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, +0x58, 0x9A, 0x40, 0xEA, 0x00, 0x1C, 0xAB, 0x39, +0xFF, 0x17, 0x00, 0x65, 0x6D, 0xB8, 0x00, 0x65, +0x00, 0xF0, 0x20, 0x6A, 0x7C, 0x4A, 0x6C, 0xEA, +0x1C, 0x22, 0x00, 0xF0, 0x20, 0x6B, 0x28, 0x4B, +0x6A, 0xEA, 0x0B, 0x61, 0x4E, 0xB8, 0x00, 0x65, +0x00, 0xF0, 0x20, 0x6B, 0x01, 0x4B, 0x6B, 0xE2, +0x60, 0xAA, 0xBF, 0xF6, 0x1A, 0x6A, 0x6A, 0xEA, +0x31, 0x60, 0x77, 0xF0, 0x24, 0x6A, 0xA0, 0xF1, +0x1C, 0x4A, 0x1D, 0xF4, 0x00, 0x6B, 0x60, 0xDA, +0x10, 0xF0, 0x23, 0x6A, 0x81, 0xF0, 0x0D, 0x4A, +0x00, 0xEA, 0x00, 0xF0, 0x20, 0x6A, 0x1F, 0xF7, +0x00, 0x6A, 0x4C, 0xEB, 0x4C, 0xB8, 0x00, 0x65, +0x6C, 0xEA, 0x42, 0x32, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF0, 0x00, 0x4B, 0x49, 0xE3, 0x40, 0xA2, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF1, 0x08, 0x4B, +0x69, 0xE2, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, +0x04, 0x4B, 0x60, 0x9B, 0x05, 0x2B, 0x10, 0xF0, +0x23, 0x6B, 0x00, 0xF4, 0x09, 0x4B, 0x00, 0xEB, +0x10, 0xF0, 0x23, 0x6B, 0x80, 0xF4, 0x1D, 0x4B, +0x00, 0xEB, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF1, 0x14, 0x4A, 0x00, 0xF0, 0x20, 0x6B, +0x01, 0x6B, 0x60, 0xDA, 0x10, 0xF0, 0x23, 0x6B, +0xC0, 0xF2, 0x11, 0x4B, 0x00, 0xEB, 0x00, 0x65, +0x5A, 0xB8, 0x00, 0x65, 0x7B, 0xB8, 0x00, 0x65, +0x40, 0xE8, 0x5A, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x7B, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF1, +0x14, 0x4A, 0x00, 0xF0, 0x20, 0x6B, 0x60, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF1, 0x0C, 0x4A, +0x60, 0x9A, 0x41, 0x9A, 0x6A, 0xEA, 0x0D, 0x61, +0x6E, 0xB8, 0x00, 0x65, 0x62, 0x43, 0xCB, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x5A, 0xB8, +0x00, 0x65, 0x7B, 0xB8, 0x00, 0x65, 0x00, 0xBA, +0x00, 0x65, 0x36, 0x23, 0xDF, 0xF7, 0x00, 0x03, +0x86, 0xDB, 0xA7, 0xDB, 0xC8, 0xDB, 0xE9, 0xDB, +0x0A, 0xDB, 0x2B, 0xDB, 0x98, 0x67, 0x8C, 0xDB, +0x9F, 0x67, 0x8E, 0xDB, 0x12, 0xEC, 0x10, 0xED, +0x82, 0xDB, 0xA3, 0xDB, 0x9A, 0xB8, 0x00, 0x65, +0x84, 0xDB, 0x9B, 0xB8, 0x00, 0x65, 0x85, 0xDB, +0x8E, 0xB8, 0x00, 0x65, 0x82, 0x44, 0x81, 0xDB, +0x8C, 0xB8, 0x00, 0x65, 0x80, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xE0, 0xF1, 0x0C, 0x4B, 0x60, 0x9B, +0x9D, 0x67, 0x89, 0xDB, 0x6A, 0x9B, 0xCF, 0xF7, +0x80, 0x44, 0x62, 0xEC, 0x0D, 0x60, 0x77, 0xF0, +0x24, 0x6C, 0xA0, 0xF1, 0x1C, 0x4C, 0x1D, 0xF4, +0x01, 0x6B, 0x60, 0xDC, 0x10, 0xF0, 0x23, 0x6C, +0x81, 0xF0, 0x0D, 0x4C, 0x00, 0xEC, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF1, 0x0C, 0x4B, +0x41, 0x9B, 0x40, 0xDB, 0x89, 0x9A, 0xBC, 0x65, +0x7D, 0x67, 0xDF, 0xF7, 0x00, 0x03, 0x4C, 0xB8, +0x00, 0x65, 0x00, 0xF0, 0x20, 0x6D, 0x05, 0x4D, +0xAF, 0xED, 0xAC, 0xEA, 0xA0, 0x9B, 0x04, 0x6C, +0x8C, 0xED, 0xAD, 0xEA, 0x82, 0x9B, 0xA3, 0x9B, +0x32, 0xEC, 0x30, 0xED, 0x8E, 0x9B, 0xFC, 0x65, +0x8C, 0x9B, 0x1C, 0x65, 0x84, 0x9B, 0x5C, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x85, 0x9B, +0x7C, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x2B, 0x9B, 0x0A, 0x9B, 0xE9, 0x9B, 0xC8, 0x9B, +0xA7, 0x9B, 0x86, 0x9B, 0x61, 0x9B, 0xCB, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x8A, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x7B, 0xB8, +0x00, 0x65, 0x5A, 0xB8, 0x00, 0x65, 0x00, 0xBA, +0xDF, 0xF7, 0x00, 0x03, 0x86, 0xDB, 0xA7, 0xDB, +0xC8, 0xDB, 0xE9, 0xDB, 0x0A, 0xDB, 0x2B, 0xDB, +0x98, 0x67, 0x8C, 0xDB, 0x9F, 0x67, 0x8E, 0xDB, +0x12, 0xEC, 0x10, 0xED, 0x82, 0xDB, 0xA3, 0xDB, +0x9A, 0xB8, 0x00, 0x65, 0x84, 0xDB, 0x9B, 0xB8, +0x00, 0x65, 0x85, 0xDB, 0x7D, 0x67, 0x5B, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x40, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x41, 0xF3, 0x08, 0x4C, +0x00, 0xF4, 0x00, 0x4C, 0xBC, 0x65, 0x82, 0x67, +0x40, 0xEA, 0x00, 0x65, 0x7A, 0xB8, 0x00, 0x65, +0xBB, 0x65, 0xDF, 0xF7, 0x00, 0x03, 0x82, 0x9B, +0xA3, 0x9B, 0x32, 0xEC, 0x30, 0xED, 0x8E, 0x9B, +0xFC, 0x65, 0x8C, 0x9B, 0x1C, 0x65, 0x84, 0x9B, +0x5C, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x85, 0x9B, 0x7C, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x2B, 0x9B, 0x0A, 0x9B, 0xE9, 0x9B, +0xC8, 0x9B, 0xA7, 0x9B, 0x86, 0x9B, 0x5A, 0xB8, +0x00, 0x65, 0x7B, 0xB8, 0x00, 0x65, 0x00, 0xBA, +0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF1, 0x14, 0x4B, 0x40, 0xDB, 0xDF, 0xF7, +0x00, 0x03, 0x86, 0xDB, 0xA7, 0xDB, 0xC8, 0xDB, +0xE9, 0xDB, 0x0A, 0xDB, 0x2B, 0xDB, 0x98, 0x67, +0x8C, 0xDB, 0x9F, 0x67, 0x8E, 0xDB, 0x12, 0xEC, +0x10, 0xED, 0x82, 0xDB, 0xA3, 0xDB, 0x9A, 0xB8, +0x00, 0x65, 0x84, 0xDB, 0x9B, 0xB8, 0x00, 0x65, +0x85, 0xDB, 0x8E, 0xB8, 0x00, 0x65, 0x81, 0xDB, +0x8C, 0xB8, 0x00, 0x65, 0x80, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xE0, 0xF1, 0x0C, 0x4B, 0x60, 0x9B, +0x9D, 0x67, 0x89, 0xDB, 0x6A, 0x9B, 0xCF, 0xF7, +0x80, 0x44, 0x62, 0xEC, 0x0D, 0x60, 0x77, 0xF0, +0x24, 0x6C, 0xA0, 0xF1, 0x1C, 0x4C, 0x1D, 0xF4, +0x01, 0x6B, 0x60, 0xDC, 0x10, 0xF0, 0x23, 0x6C, +0x81, 0xF0, 0x0D, 0x4C, 0x00, 0xEC, 0x00, 0x65, +0x40, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x41, 0xF3, +0x08, 0x4C, 0x00, 0xF4, 0x00, 0x4C, 0xBC, 0x65, +0x82, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0xC0, 0xF1, 0x14, 0x4C, 0x00, 0xF0, 0x20, 0x6D, +0xA0, 0xDC, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF1, +0x0C, 0x4A, 0x10, 0xF0, 0x23, 0x6B, 0x40, 0xF5, +0x05, 0x4B, 0x00, 0xEB, 0x61, 0x9A, 0x60, 0xDA, +0x49, 0x9B, 0xBA, 0x65, 0xDF, 0xF7, 0x00, 0x03, +0x4C, 0xB8, 0x00, 0x65, 0x00, 0xF0, 0x20, 0x6D, +0x05, 0x4D, 0xAF, 0xED, 0xAC, 0xEA, 0xA0, 0x9B, +0x00, 0xF0, 0x20, 0x6C, 0x04, 0x4C, 0x8C, 0xED, +0xAD, 0xEA, 0x82, 0x9B, 0xA3, 0x9B, 0x32, 0xEC, +0x30, 0xED, 0x8E, 0x9B, 0xFC, 0x65, 0x8C, 0x9B, +0x1C, 0x65, 0x84, 0x9B, 0x5C, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x85, 0x9B, 0x7C, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x2B, 0x9B, +0x0A, 0x9B, 0xE9, 0x9B, 0xC8, 0x9B, 0xA7, 0x9B, +0x86, 0x9B, 0x61, 0x9B, 0xCB, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x8A, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x7B, 0xB8, 0x00, 0x65, +0x5A, 0xB8, 0x00, 0x65, 0x00, 0xBA, 0x00, 0x65, +0x5F, 0x67, 0x5A, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x18, 0xF7, 0xC1, 0x00, 0x1C, +0xBA, 0x35, 0x5A, 0xB8, 0x00, 0x65, 0x00, 0xEA, +0x6D, 0xB8, 0x00, 0xF0, 0x20, 0x6A, 0x00, 0xF2, +0x00, 0x4A, 0x4F, 0xEA, 0x4C, 0xEB, 0xAB, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x5F, 0x67, +0x5A, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x1C, 0x7D, 0x35, 0x5A, 0xB8, 0x00, 0x65, +0x00, 0xEA, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF4, 0x74, 0x9B, 0xFF, 0x6A, 0x8C, 0xEA, +0x80, 0xA3, 0x10, 0x6B, 0x8C, 0xEB, 0x05, 0x23, +0xE2, 0xF1, 0x10, 0x4A, 0xE2, 0xF1, 0x10, 0x6B, +0x31, 0x10, 0x7F, 0x4A, 0x09, 0x4A, 0x88, 0x6B, +0x15, 0x10, 0x1F, 0xF7, 0x00, 0x6C, 0x6C, 0xEC, +0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, +0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF1, 0x9C, 0x9C, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF1, +0x80, 0x9C, 0xC0, 0xA5, 0x91, 0xE3, 0x01, 0x4D, +0xC0, 0xC4, 0x01, 0x4B, 0x4A, 0xEB, 0xE9, 0x61, +0x20, 0xE8, 0x1F, 0xF7, 0x00, 0x6C, 0x6C, 0xEC, +0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, +0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF1, 0x9C, 0x9C, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF1, +0x80, 0x9C, 0xC0, 0xA5, 0x91, 0xE3, 0x01, 0x4D, +0xC0, 0xC4, 0x01, 0x4B, 0x4A, 0xEB, 0xE9, 0x61, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, 0x01, 0x72, +0x14, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF5, +0xB4, 0x9B, 0x83, 0xF2, 0x1C, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, +0x14, 0x6C, 0x00, 0xF3, 0x00, 0x6D, 0x00, 0x6E, +0x15, 0x10, 0x02, 0x72, 0x14, 0x61, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xA3, 0xF5, 0xB4, 0x9B, 0x83, 0xF2, +0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF2, 0x14, 0x6C, 0x00, 0xF3, +0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x6C, 0xA6, 0xF6, 0x00, 0x48, +0x86, 0xF7, 0x07, 0x4C, 0x07, 0x6E, 0x40, 0xEA, +0xE0, 0xF0, 0x87, 0xA0, 0x00, 0x18, 0xDC, 0xD6, +0x05, 0xF3, 0x5C, 0xA0, 0x1F, 0x6B, 0x01, 0x6C, +0x4A, 0x32, 0x6C, 0xEA, 0xE0, 0xF0, 0x67, 0xA0, +0x47, 0xEB, 0x8C, 0xEA, 0x03, 0x22, 0x05, 0xF3, +0x7D, 0xC0, 0x04, 0x10, 0x01, 0x6A, 0x4B, 0xEA, +0x05, 0xF3, 0x5D, 0xC0, 0x30, 0xF0, 0x20, 0x68, +0xA6, 0xF6, 0x00, 0x48, 0x05, 0xF3, 0x7C, 0xA0, +0x02, 0x6A, 0x6C, 0xEA, 0x1A, 0x22, 0x03, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x05, 0xF3, 0x5C, 0xC0, +0x00, 0x18, 0xCA, 0xDA, 0x04, 0xD2, 0x04, 0x93, +0x25, 0xF3, 0x40, 0x98, 0x6E, 0xEA, 0x03, 0x22, +0x04, 0x94, 0x00, 0x18, 0xEB, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x05, 0xF3, +0x9C, 0xA2, 0x02, 0x6B, 0x8D, 0xEB, 0x05, 0xF3, +0x7C, 0xC2, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, 0x90, 0x67, +0x00, 0x18, 0xF0, 0xCD, 0x90, 0x67, 0x00, 0x18, +0x97, 0xDC, 0x01, 0x6C, 0x00, 0x18, 0x26, 0xC6, +0x90, 0x67, 0x01, 0x6D, 0x00, 0x18, 0x6F, 0xCD, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF3, 0x44, 0x9A, 0x42, 0xF1, 0x18, 0x6C, +0x01, 0x6D, 0x02, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x17, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0x60, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, 0x5C, 0x9A, +0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, +0x44, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF1, 0x00, 0x4A, 0x30, 0xF0, +0x20, 0x6B, 0xEF, 0x9A, 0x03, 0xF1, 0x68, 0x9B, +0xCE, 0x9A, 0xAD, 0x9A, 0x8C, 0x9A, 0xE0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0x6C, 0x9B, +0xC0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, +0x70, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF1, 0x74, 0x9B, 0x80, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x89, 0x9A, 0x03, 0xF1, 0x78, 0x9B, +0x80, 0xDB, 0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF1, 0x5C, 0x9A, 0x01, 0x6C, 0xA4, 0x67, +0x60, 0xDA, 0x80, 0x18, 0x4E, 0x16, 0x00, 0x1C, +0xAC, 0x39, 0xFF, 0x17, 0x4C, 0xB8, 0x00, 0x65, +0x80, 0x34, 0x8D, 0xEA, 0x8A, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x4C, 0xB8, 0x00, 0x65, 0x80, 0x34, 0x8F, 0xEC, +0x8C, 0xEA, 0x8A, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF1, 0x00, 0x4A, 0x60, 0xDA, 0x81, 0xDA, +0xA2, 0xDA, 0xC3, 0xDA, 0xE4, 0xDA, 0x05, 0xDA, +0x26, 0xDA, 0x78, 0x67, 0x67, 0xDA, 0x7D, 0x67, +0x68, 0xDA, 0x7F, 0x67, 0x69, 0xDA, 0x12, 0xEB, +0x6A, 0xDA, 0x10, 0xEB, 0x6B, 0xDA, 0x6D, 0xB8, +0x00, 0x65, 0x6C, 0xDA, 0x68, 0xB8, 0x00, 0x65, +0x6D, 0xDA, 0x6C, 0xB8, 0x00, 0x65, 0x6E, 0xDA, +0x6E, 0xB8, 0x00, 0x65, 0x6F, 0xDA, 0x10, 0xF0, +0x23, 0x6A, 0xE0, 0xF7, 0x05, 0x4A, 0x00, 0xEA, +0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF0, 0x7C, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0xC1, 0xF0, 0x1D, 0x4A, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF1, 0x40, 0x9A, 0x08, 0x6B, +0x40, 0xA2, 0x4C, 0xEB, 0x00, 0x6A, 0x11, 0x23, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, 0x44, 0x9A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0x9A, 0x06, 0xF5, +0x50, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, +0x48, 0x9A, 0x06, 0xF5, 0x10, 0x4B, 0x40, 0x9A, +0x41, 0xDB, 0x20, 0xE8, 0xFF, 0x6A, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF0, 0x9C, 0x9C, +0x10, 0xF0, 0x23, 0x6B, 0x21, 0xF1, 0x05, 0x4B, +0x60, 0xDC, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, +0x60, 0x9B, 0x80, 0xA3, 0x08, 0x6B, 0x8C, 0xEB, +0x1C, 0x23, 0x05, 0x5A, 0x1A, 0x60, 0x0C, 0x6D, +0xB8, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, +0x64, 0x9B, 0x80, 0x9B, 0x30, 0xF0, 0x20, 0x6B, +0x06, 0xF5, 0x18, 0x4B, 0x12, 0xEA, 0x49, 0xE3, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, 0x68, 0x9B, +0x81, 0xDA, 0x80, 0xA2, 0x60, 0x9B, 0x62, 0xDA, +0x01, 0x6B, 0x8D, 0xEB, 0x60, 0xC2, 0x01, 0x6A, +0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0xE3, 0xF0, 0x9C, 0x9C, 0x10, 0xF0, 0x23, 0x6B, +0x81, 0xF1, 0x09, 0x4B, 0x60, 0xDC, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF1, 0x60, 0x9B, 0x80, 0xA3, +0x08, 0x6B, 0x8C, 0xEB, 0x1B, 0x23, 0x05, 0x5A, +0x19, 0x60, 0x0C, 0x6C, 0x98, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x06, 0xF5, 0x18, 0x4B, 0x12, 0xEA, +0x69, 0xE2, 0x80, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, +0x0D, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, +0x64, 0x9B, 0x42, 0x9A, 0xA0, 0x9B, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF1, 0x68, 0x9B, 0x60, 0x9B, +0x4B, 0xE3, 0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, +0xFF, 0x6B, 0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, +0xE3, 0xF0, 0x9C, 0x9C, 0x10, 0xF0, 0x23, 0x6A, +0xE1, 0xF1, 0x09, 0x4A, 0x05, 0x5B, 0x40, 0xDC, +0x00, 0x6A, 0x11, 0x60, 0x0C, 0x6C, 0x98, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x06, 0xF5, 0x18, 0x4A, +0x12, 0xEB, 0x4D, 0xE3, 0x80, 0xA3, 0x02, 0x6A, +0x4B, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x00, 0x6A, +0x41, 0xDB, 0x42, 0xDB, 0x01, 0x6A, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF0, 0x7C, 0x9B, 0x10, 0xF0, +0x23, 0x6A, 0x21, 0xF2, 0x09, 0x4A, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x50, 0x9A, +0x40, 0xEA, 0x03, 0x22, 0x00, 0x18, 0x37, 0xC2, +0x05, 0x10, 0x10, 0xF0, 0x23, 0x68, 0xC1, 0xF0, +0x1D, 0x48, 0xBA, 0xFE, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, +0x7C, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0x61, 0xF2, +0x05, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF7, 0x50, 0x9A, 0xFF, 0x68, 0x8C, 0xE8, +0x40, 0xEA, 0x04, 0x22, 0x90, 0x67, 0x00, 0x18, +0x49, 0xC2, 0x06, 0x10, 0x90, 0x67, 0x10, 0xF0, +0x23, 0x68, 0x21, 0xF1, 0x05, 0x48, 0xBA, 0xFE, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF0, 0x7C, 0x9B, 0x10, 0xF0, +0x23, 0x6A, 0xA1, 0xF2, 0x09, 0x4A, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x50, 0x9A, +0xFF, 0x68, 0x8C, 0xE8, 0x40, 0xEA, 0x04, 0x22, +0x90, 0x67, 0x00, 0x18, 0x62, 0xC2, 0x06, 0x10, +0x90, 0x67, 0x10, 0xF0, 0x23, 0x68, 0x81, 0xF1, +0x09, 0x48, 0xBA, 0xFE, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, +0x7C, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0xE1, 0xF2, +0x0D, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF7, 0x50, 0x9A, 0xFF, 0x68, 0x8C, 0xE8, +0x40, 0xEA, 0x04, 0x22, 0x90, 0x67, 0x00, 0x18, +0x7A, 0xC2, 0x06, 0x10, 0x90, 0x67, 0x10, 0xF0, +0x23, 0x68, 0xE1, 0xF1, 0x09, 0x48, 0xBA, 0xFE, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0x10, 0xF0, 0x23, 0x6A, 0xC0, 0xF2, 0x11, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x48, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0x80, 0xF4, 0x1D, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x4C, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0x40, 0xF5, 0x05, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x50, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0xA0, 0xF5, 0x19, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x54, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0xE0, 0xF7, 0x05, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x58, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0x81, 0xF0, 0x0D, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x5C, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0xE0, 0xF7, 0x01, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x3C, 0xF6, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xBA, 0xF4, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5A, 0xF2, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xDA, 0xF5, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFA, 0xF6, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFA, 0xF5, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x7A, 0xF1, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xBB, 0xF6, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x7B, 0xF5, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFB, 0xF5, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5C, 0xF1, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5C, 0xF7, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xBC, 0xF1, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFC, 0xF0, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5B, 0xF6, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFA, 0xF5, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xDA, 0xF0, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xD9, 0xF6, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1C, 0xF6, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xB9, 0xF6, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFB, 0xF1, 0x04, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFB, 0xF7, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xBC, 0xF6, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1B, 0xF7, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x7B, 0xF6, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFB, 0xF1, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0xC0, 0xF7, 0x01, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5A, 0xF0, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1A, 0xF0, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFA, 0xF0, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5A, 0xF2, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x9A, 0xF3, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFA, 0xF1, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5C, 0xF3, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5C, 0xF4, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x3C, 0xF2, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xBC, 0xF4, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1C, 0xF5, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFB, 0xF1, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x9B, 0xF4, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1B, 0xF3, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1B, 0xF2, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5A, 0xF7, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xBB, 0xF0, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5B, 0xF0, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x9A, 0xF7, 0x04, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5B, 0xF1, 0x04, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x7B, 0xF1, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x9C, 0xF7, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFC, 0xF7, 0x04, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1D, 0xF0, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x79, 0xF6, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xDD, 0xF0, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1D, 0xF1, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x3D, 0xF1, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x9D, 0xF3, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFD, 0xF3, 0x04, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x3D, 0xF4, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5D, 0xF4, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x9D, 0xF4, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xDD, 0xF4, 0x04, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFD, 0xF6, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x3D, 0xF7, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x7D, 0xF7, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1E, 0xF1, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x7E, 0xF1, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x9E, 0xF1, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x66, 0xF4, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xDE, 0xF1, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xDE, 0xF3, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x3E, 0xF4, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x7E, 0xF4, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xBE, 0xF4, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x5C, 0xDB, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x24, 0x67, +0x4C, 0xE9, 0x4C, 0xED, 0x2E, 0x34, 0x07, 0x6B, +0x01, 0x75, 0x4C, 0xEC, 0x2C, 0xEB, 0x22, 0x61, +0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, +0x11, 0xE4, 0x01, 0x6A, 0x44, 0xEB, 0x83, 0xF3, +0x70, 0xA4, 0x00, 0x6D, 0x6D, 0xEA, 0x83, 0xF3, +0x50, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, +0x40, 0x9A, 0x91, 0x67, 0x40, 0xEA, 0xE0, 0xF0, +0x48, 0xA0, 0x4E, 0xE9, 0x1F, 0x29, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF1, 0x4C, 0x9A, 0x40, 0x9A, +0x50, 0x32, 0x00, 0xF5, 0x42, 0x32, 0xC3, 0xF3, +0x54, 0xC8, 0x14, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x51, 0xE4, 0x01, 0x6A, +0x44, 0xEB, 0x83, 0xF3, 0x70, 0xA4, 0x4F, 0xEA, +0x01, 0x6D, 0x6C, 0xEA, 0x83, 0xF3, 0x50, 0xC4, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x40, 0x9A, +0x91, 0x67, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x68, 0x23, 0xF1, +0x50, 0x9A, 0x8C, 0xE8, 0x0C, 0x30, 0x0D, 0xD5, +0x4D, 0xE8, 0x00, 0x69, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF1, 0x54, 0x9A, 0x60, 0xF6, 0x13, 0x6C, +0x80, 0x6D, 0x00, 0xDA, 0x06, 0x02, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, +0x00, 0x6E, 0x14, 0x6F, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF1, 0x58, 0x9A, 0x0D, 0x94, +0x01, 0x48, 0x60, 0x9A, 0x29, 0xE4, 0x04, 0x49, +0x18, 0x71, 0x60, 0xDA, 0xE3, 0x61, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x68, 0x23, 0xF1, +0x5C, 0x9A, 0x8C, 0xE8, 0x0C, 0x30, 0x0D, 0xD5, +0x4D, 0xE8, 0x00, 0x69, 0x0D, 0x93, 0x60, 0xF6, +0x13, 0x6C, 0x80, 0x6D, 0x29, 0xE3, 0x60, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x40, 0x9A, +0x00, 0x6E, 0x14, 0x6F, 0x60, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF1, 0x54, 0x9A, 0x04, 0x49, +0x00, 0xDA, 0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, 0x01, 0x48, +0x40, 0xEA, 0x18, 0x71, 0xE3, 0x61, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x8C, 0xE8, +0x23, 0xF1, 0x50, 0x9A, 0x00, 0x30, 0x0C, 0x30, +0x0D, 0xD5, 0x4D, 0xE8, 0x00, 0x69, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF1, 0x44, 0x9A, 0x80, 0xF6, +0x1B, 0x6C, 0x80, 0x6D, 0x00, 0xDA, 0x06, 0x02, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, +0x48, 0x9A, 0x00, 0x6E, 0x14, 0x6F, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x48, 0x9A, +0x0D, 0x94, 0x00, 0xF1, 0x00, 0x48, 0x60, 0x9A, +0x29, 0xE4, 0x04, 0x49, 0x14, 0x71, 0x60, 0xDA, +0xE2, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x68, 0x30, 0xF0, +0x20, 0x6A, 0x8C, 0xE8, 0x23, 0xF1, 0x5C, 0x9A, +0x00, 0x30, 0x0C, 0x30, 0x0D, 0xD5, 0x4D, 0xE8, +0x00, 0x69, 0x0D, 0x93, 0x80, 0xF6, 0x1B, 0x6C, +0x80, 0x6D, 0x29, 0xE3, 0x60, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF1, 0x48, 0x9A, 0x00, 0x6E, +0x14, 0x6F, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF1, 0x44, 0x9A, 0x04, 0x49, 0x00, 0xDA, +0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x48, 0x9A, 0x00, 0xF1, 0x00, 0x48, +0x40, 0xEA, 0x14, 0x71, 0xE2, 0x61, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF1, 0x70, 0x9B, 0xFF, 0x6A, +0x8C, 0xEA, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF1, 0x6C, 0x9B, 0x05, 0x67, 0x40, 0xF6, +0x17, 0x6C, 0x40, 0xDB, 0x06, 0x02, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, +0x80, 0x6D, 0x00, 0x6E, 0x14, 0x6F, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x50, 0x9A, +0x09, 0x97, 0x40, 0x9A, 0x40, 0xD8, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF1, 0x54, 0x9A, 0x40, 0x9A, +0x41, 0xD8, 0x08, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF1, 0x7C, 0x9B, 0xFF, 0x6A, 0x8C, 0xEA, +0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0x9D, +0x43, 0xF1, 0x70, 0x9B, 0x00, 0x6E, 0x14, 0x6F, +0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x81, 0x9D, +0x43, 0xF1, 0x74, 0x9B, 0x80, 0x6D, 0x80, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, 0x6C, 0x9B, +0x40, 0xF6, 0x17, 0x6C, 0x40, 0xDB, 0x06, 0x02, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, +0x48, 0x9A, 0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, +0x01, 0x6B, 0xAC, 0xEA, 0x6E, 0xEA, 0x01, 0x5A, +0x58, 0x67, 0x05, 0x5C, 0x48, 0x32, 0x03, 0x61, +0x01, 0x6A, 0x4B, 0xEA, 0x20, 0xE8, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF1, 0xAC, 0x9B, 0x30, 0xF0, +0x20, 0x6E, 0x43, 0xF1, 0xD8, 0x9E, 0x60, 0x9D, +0x00, 0xF7, 0x80, 0x34, 0xCC, 0xEB, 0x6D, 0xEC, +0x80, 0xDD, 0x1F, 0xF7, 0x00, 0x6B, 0x60, 0xF5, +0x80, 0x42, 0x8C, 0xEB, 0x02, 0xF0, 0x00, 0x73, +0x01, 0x60, 0x09, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF1, 0x7C, 0x9B, 0x60, 0xF5, 0x00, 0x4A, +0x69, 0xE2, 0x40, 0x9A, 0x20, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF1, 0x40, 0x9A, 0x51, 0xE4, +0x40, 0x9C, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF4, 0xD0, 0x9B, 0xFE, 0x63, 0xC2, 0xF4, +0x10, 0x4B, 0x00, 0xD6, 0xC1, 0x9B, 0x64, 0xAB, +0xFF, 0x6A, 0x01, 0xD6, 0x4C, 0xED, 0xDD, 0x67, +0x4C, 0xEC, 0x64, 0xCE, 0x3C, 0x25, 0x84, 0x33, +0x6D, 0xE6, 0xA0, 0xAB, 0x1F, 0xF7, 0x00, 0x6B, +0xAC, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, +0x26, 0x2B, 0x84, 0x32, 0x7D, 0x67, 0x49, 0xE3, +0xA0, 0xAA, 0x1F, 0xF7, 0x00, 0x6A, 0xAC, 0xEA, +0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x0B, 0x2A, +0x84, 0x34, 0xBD, 0x67, 0x91, 0xE5, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF1, 0x5C, 0x9A, 0x60, 0xAC, +0x4D, 0xE3, 0x40, 0xA3, 0x0B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF1, 0x7C, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF1, 0x40, 0x9A, 0x6D, 0xE5, +0x55, 0xE5, 0x40, 0xA5, 0xFF, 0x6C, 0x8C, 0xEA, +0x08, 0x6D, 0xAD, 0xEA, 0x3E, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF1, 0x80, 0x9B, 0x91, 0xE5, +0x60, 0xA4, 0x08, 0x6D, 0x4C, 0xEB, 0xAD, 0xEB, +0x4C, 0xEB, 0x60, 0xC4, 0x34, 0x10, 0x84, 0x32, +0xDD, 0x67, 0x49, 0xE6, 0x60, 0xAA, 0x1F, 0xF7, +0x00, 0x6A, 0x6C, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x20, 0x2A, 0x84, 0x32, 0x7D, 0x67, +0x49, 0xE3, 0xA0, 0xAA, 0x1F, 0xF7, 0x00, 0x6A, +0xAC, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, +0x09, 0x2A, 0x84, 0x34, 0xBD, 0x67, 0x91, 0xE5, +0x30, 0xF0, 0x20, 0x6A, 0x60, 0xAC, 0x43, 0xF1, +0x5C, 0x9A, 0x10, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF1, 0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x40, 0x9A, 0x6D, 0xE5, 0x55, 0xE5, +0x80, 0xA5, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x40, 0x9A, 0x4D, 0xE3, 0x80, 0xA3, +0xF7, 0x6A, 0x8C, 0xEA, 0x40, 0xC3, 0x02, 0x63, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, +0x01, 0x74, 0xAC, 0xEA, 0x13, 0x60, 0x03, 0x24, +0x02, 0x74, 0x15, 0x60, 0x18, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, 0xC3, 0xF3, +0xAC, 0xA3, 0x01, 0x6C, 0x4C, 0xEC, 0x02, 0x6A, +0x4B, 0xEA, 0xAC, 0xEA, 0x8D, 0xEA, 0xC3, 0xF3, +0x4C, 0xC3, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x6A, 0xF2, 0x4F, 0xC3, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xEA, 0xF2, 0x48, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF1, 0x44, 0x9A, 0x60, 0xA2, +0x10, 0x6A, 0x6C, 0xEA, 0x1C, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xC3, 0xF3, +0x8C, 0xA2, 0xC3, 0xF3, 0xAF, 0xA2, 0x01, 0x6B, +0x8C, 0xEB, 0x7F, 0x6C, 0xAC, 0xEC, 0x7C, 0x33, +0x8D, 0xEB, 0xFF, 0x6C, 0x8C, 0xEB, 0x30, 0xF0, +0x20, 0x6C, 0x63, 0xF1, 0x88, 0x9C, 0x60, 0xC4, +0x43, 0xF4, 0x68, 0xA2, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x4C, 0x9A, 0x60, 0xC2, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x48, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x86, 0xF7, 0x07, 0x4C, 0x00, 0x6D, 0x07, 0x6E, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, 0x50, 0x9A, +0x60, 0xA2, 0xFF, 0x6A, 0x6C, 0xEA, 0xFF, 0x72, +0x00, 0x6A, 0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x54, 0x9A, 0x60, 0xA2, 0x07, 0x6A, +0x6C, 0xEA, 0x07, 0x6B, 0x6E, 0xEA, 0x01, 0x5A, +0x58, 0x67, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xEC, +0x01, 0x74, 0xAC, 0xEA, 0x03, 0x60, 0x02, 0x74, +0x09, 0x60, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x02, 0x6B, 0xC3, 0xF3, +0x76, 0xC2, 0x15, 0x10, 0x09, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xC0, 0xF0, +0x6E, 0xA2, 0xC3, 0xF3, 0x76, 0xC2, 0x05, 0x10, +0xFF, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x6A, 0xF2, +0x56, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0xC3, 0xF3, 0x76, 0xA2, 0xC3, 0xF3, +0x8C, 0xA2, 0xC3, 0xF3, 0x77, 0xC2, 0x40, 0x6B, +0x8D, 0xEB, 0xC3, 0xF3, 0x6C, 0xC2, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x42, 0xC5, +0x01, 0x72, 0x11, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xC3, 0xF3, 0x8C, 0xA2, +0x04, 0x6B, 0x8C, 0xEB, 0x08, 0x2B, 0x43, 0xF4, +0x88, 0xA2, 0x05, 0x5C, 0x04, 0x60, 0x04, 0xF3, +0x64, 0xDA, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF4, 0x5C, 0x9A, 0xFF, 0x6B, 0x6C, 0xEC, +0x00, 0x6D, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, 0xC5, 0x67, +0xFF, 0x6C, 0x40, 0xEA, 0x01, 0x6C, 0x0C, 0x6D, +0x00, 0x18, 0x17, 0xC5, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6D, 0xA6, 0xF6, 0x00, 0x4D, +0xC3, 0xF3, 0xCD, 0xA5, 0x04, 0x6B, 0xFF, 0x6A, +0xCC, 0xEB, 0x4C, 0xEB, 0x4C, 0xEC, 0x0C, 0x2B, +0x43, 0xF4, 0x6B, 0xA5, 0x09, 0x23, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF1, 0xB8, 0x9B, 0x60, 0xA5, +0x4C, 0xEB, 0x01, 0x4B, 0x4C, 0xEB, 0x60, 0xC5, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xC3, 0xF3, 0xAD, 0xA2, 0x04, 0x6B, 0xAC, 0xEB, +0x0C, 0x2B, 0x43, 0xF4, 0x4B, 0xA2, 0x09, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x5C, 0x9A, +0x03, 0x6D, 0x40, 0xEA, 0x01, 0x6C, 0x04, 0x6D, +0x08, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, +0x5C, 0x9A, 0x00, 0x6D, 0x40, 0xEA, 0x01, 0x6C, +0x0C, 0x6D, 0x00, 0x18, 0x17, 0xC5, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, +0xFF, 0x6C, 0xC5, 0x67, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xFF, 0x69, 0xA6, 0xF6, 0x00, 0x48, 0x30, 0xF0, +0x20, 0x6A, 0x8C, 0xE9, 0x80, 0xF3, 0x5C, 0x9A, +0xE0, 0xF0, 0x88, 0xA0, 0x40, 0xEA, 0x01, 0x72, +0x25, 0x61, 0xC3, 0xF3, 0x6D, 0xA0, 0x09, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xC3, 0xF3, 0x4D, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, +0xFF, 0x6C, 0x6F, 0x6D, 0x2C, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x50, 0x9A, +0xA0, 0xF0, 0x8A, 0xA0, 0x01, 0x6D, 0x08, 0x6E, +0xF1, 0x67, 0x40, 0xEA, 0x01, 0x72, 0x0A, 0x61, +0xC3, 0xF3, 0x6D, 0xA0, 0x02, 0x6A, 0x01, 0x6C, +0x6D, 0xEA, 0x0E, 0x6D, 0xC3, 0xF3, 0x4D, 0xC0, +0x00, 0x18, 0x17, 0xC5, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x2E, 0x6E, 0xFF, 0x6C, +0x6F, 0x6D, 0x40, 0xEA, 0x01, 0x6C, 0x02, 0x6D, +0x00, 0x18, 0x17, 0xC5, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6F, +0xA6, 0xF6, 0x00, 0x4B, 0x63, 0xF1, 0x1C, 0x9F, +0xE0, 0xF0, 0xE0, 0x9B, 0xFF, 0x6A, 0x4C, 0xEC, +0x0C, 0xEF, 0x0E, 0xEF, 0x4C, 0xED, 0x4C, 0xEE, +0xA0, 0xF0, 0x02, 0x27, 0xC3, 0xF3, 0x0D, 0xA3, +0x20, 0x6F, 0x0C, 0xEF, 0x4C, 0xEF, 0x80, 0xF0, +0x17, 0x2F, 0xE0, 0xF0, 0x00, 0xA3, 0x01, 0x6F, +0xEC, 0xE8, 0x4C, 0xE8, 0x53, 0x28, 0xC3, 0xF3, +0x0C, 0xA3, 0x0C, 0xEF, 0x4C, 0xEF, 0x08, 0x27, +0xE3, 0xF3, 0x4A, 0xA3, 0x03, 0x4A, 0xE3, 0xF3, +0x45, 0xC3, 0xE3, 0xF3, 0x44, 0xC3, 0x08, 0x10, +0x06, 0x6F, 0xE3, 0xF3, 0xE5, 0xC3, 0x06, 0x4E, +0x05, 0x6F, 0xE3, 0xF3, 0xE4, 0xC3, 0x4C, 0xEE, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xE3, 0xF3, 0xE3, 0xA2, 0xE3, 0xF3, 0x64, 0xA2, +0xE3, 0xEB, 0x09, 0x61, 0xE3, 0xF3, 0x65, 0xA2, +0xC3, 0xF3, 0xD8, 0xC2, 0x71, 0xE4, 0xB7, 0xE4, +0xE3, 0xF3, 0xA6, 0xC2, 0x09, 0x10, 0xE3, 0xF3, +0x85, 0xA2, 0x77, 0xE5, 0xB9, 0xE6, 0x6F, 0xE4, +0xC3, 0xF3, 0xD8, 0xC2, 0xE3, 0xF3, 0x66, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xE3, 0xF3, 0x65, 0xA2, 0xE3, 0xF3, 0x86, 0xA2, +0x0A, 0x4B, 0x82, 0xEB, 0x02, 0x60, 0xE3, 0xF3, +0x66, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0xE3, 0xF3, 0x66, 0xA2, 0xC3, 0xF3, +0x98, 0xA2, 0x23, 0x4B, 0x82, 0xEB, 0x02, 0x60, +0xC3, 0xF3, 0x78, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xE3, 0xF3, 0x66, 0xA2, +0xE3, 0xF3, 0x60, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x40, 0x9A, 0x60, 0xA2, 0x07, 0x23, +0x60, 0xA2, 0xFF, 0x6A, 0x4C, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0x8A, 0xF2, 0x60, 0xCA, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xC0, 0xF0, +0x87, 0xA2, 0x18, 0x6B, 0x8C, 0xEB, 0x10, 0x73, +0x0C, 0x61, 0xE3, 0xF3, 0x6A, 0xA2, 0x03, 0x6C, +0x03, 0x4B, 0xE3, 0xF3, 0x66, 0xC2, 0xC0, 0xF0, +0x6A, 0xA2, 0x76, 0x33, 0x8C, 0xEB, 0xC3, 0xF3, +0x78, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, +0x44, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x8A, 0xF2, +0x80, 0xAC, 0xA0, 0xA2, 0xFF, 0x6B, 0x6C, 0xED, +0x8E, 0xED, 0x02, 0x25, 0x8C, 0xEB, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xC3, 0xF3, 0x8D, 0xA2, 0x41, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xC3, 0xF3, 0x6D, 0xC2, 0x04, 0x10, +0x40, 0x6A, 0x0D, 0xEA, 0xC3, 0xF3, 0x4D, 0xC3, +0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0x66, 0xF7, 0xA7, 0xA3, 0x04, 0x6B, 0xFF, 0x6A, +0xAC, 0xEB, 0x4C, 0xEB, 0x4C, 0xEC, 0x0C, 0x23, +0x7D, 0x67, 0x1E, 0x6A, 0x50, 0xC3, 0x01, 0x6A, +0x4F, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x5C, 0x9A, 0x92, 0xC3, 0x04, 0x04, 0x40, 0xEA, +0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF4, 0x6C, 0x9A, +0xA2, 0xF4, 0x0C, 0x4A, 0xFF, 0x69, 0x04, 0xD3, +0x61, 0x9A, 0x44, 0xAA, 0x30, 0xF0, 0x20, 0x68, +0x05, 0xD3, 0x7D, 0x67, 0x2C, 0xEC, 0x4C, 0xCB, +0xA6, 0xF6, 0x00, 0x48, 0x30, 0xF0, 0x20, 0x6A, +0x08, 0xD4, 0x80, 0xF3, 0x5C, 0x9A, 0xE0, 0xF0, +0x88, 0xA0, 0x40, 0xEA, 0x01, 0x72, 0x3E, 0x61, +0xC0, 0xF0, 0x64, 0xA0, 0x7F, 0x6A, 0x6C, 0xEA, +0x2C, 0xEA, 0x38, 0x22, 0x08, 0x93, 0x64, 0x32, +0x7D, 0x67, 0x49, 0xE3, 0x68, 0xAA, 0x1F, 0xF7, +0x00, 0x6A, 0x6C, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x0C, 0x2A, 0x08, 0x93, 0x64, 0x32, +0x7D, 0x67, 0x49, 0xE3, 0x68, 0xAA, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF1, 0x5C, 0x9A, 0x49, 0xE3, +0x60, 0x9A, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x40, 0x9A, 0x4D, 0xE3, 0x60, 0x9B, +0x04, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x16, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x68, 0x9A, +0xFF, 0xF7, 0x1F, 0x6C, 0x40, 0xAB, 0x8C, 0xEA, +0x01, 0x4A, 0x8C, 0xEA, 0x40, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xE4, 0xF2, +0x7C, 0x9A, 0x01, 0x4B, 0xE4, 0xF2, 0x7C, 0xDA, +0x00, 0x6A, 0x01, 0x10, 0x01, 0x6A, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xFF, 0x6A, 0x4C, 0xEC, 0x52, 0x2C, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x43, 0xF4, +0x78, 0xA2, 0x2F, 0x23, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF1, 0x6C, 0x9B, 0x80, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF1, 0x70, 0x9B, 0x80, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, 0x74, 0x9B, +0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0x9A, +0x83, 0xF1, 0x78, 0x9B, 0x4C, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x5C, 0x9A, 0x60, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0x40, 0x9A, +0x01, 0x6B, 0x80, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF1, 0x44, 0x9A, 0x60, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF1, 0x48, 0x9A, 0x80, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0x4C, 0x9A, +0x80, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0xE0, 0xF0, 0x95, 0xA2, 0x10, 0x6B, +0x8C, 0xEB, 0x03, 0x23, 0xFF, 0x6A, 0x01, 0x4A, +0x0A, 0x10, 0xE0, 0xF0, 0x72, 0xA2, 0x02, 0x6A, +0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x4B, 0xEA, +0xC0, 0xF7, 0x42, 0x32, 0x4C, 0x32, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF1, 0x70, 0x9B, 0x40, 0xDB, +0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, +0x94, 0x9B, 0x02, 0x6D, 0x60, 0xA4, 0x4C, 0xEB, +0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0x67, 0xA6, 0xF6, 0x00, 0x4A, +0x43, 0xF4, 0x98, 0xA2, 0x37, 0x24, 0xA6, 0xF6, +0x80, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, +0x6C, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x81, 0x9A, 0x83, 0xF1, 0x70, 0x9B, 0x80, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0x9A, 0x83, 0xF1, +0x74, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0x9A, 0x83, 0xF1, 0x7C, 0x9B, 0x80, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x84, 0x9A, 0xA3, 0xF1, +0x60, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x94, 0x9A, 0xA3, 0xF1, 0x70, 0x9B, 0x80, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x95, 0x9A, 0xA3, 0xF1, +0x64, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x96, 0x9A, 0xA3, 0xF1, 0x68, 0x9B, 0x80, 0xDB, +0x72, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, +0x4C, 0x9A, 0x05, 0x10, 0x74, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF1, 0x50, 0x9A, 0x60, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF1, 0x58, 0x9A, 0x80, 0xA2, 0xFF, 0x6A, +0x4C, 0xEC, 0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF1, 0x9C, 0x9B, 0x07, 0x10, 0x02, 0x6B, +0x8C, 0xEB, 0x0A, 0x23, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF1, 0x80, 0x9B, 0x60, 0xA4, 0x4C, 0xEB, +0x01, 0x4B, 0x4C, 0xEB, 0x60, 0xC4, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x64, 0x9A, +0xFF, 0xF7, 0x1F, 0x6C, 0x40, 0xAB, 0x8C, 0xEA, +0x01, 0x4A, 0x8C, 0xEA, 0x40, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF1, 0x58, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x4A, 0xF4, 0xB0, 0x9B, 0xE0, 0xF2, 0x40, 0x9A, +0x38, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF1, 0x68, 0x9A, 0xFF, 0x6C, 0x10, 0x6D, +0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xC3, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x00, 0x6A, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, +0x58, 0x9A, 0xC3, 0xF1, 0xCC, 0x9B, 0x30, 0xF0, +0x21, 0x6D, 0x00, 0x6C, 0xD3, 0xF4, 0x00, 0x4D, +0x20, 0x6F, 0x40, 0xEA, 0x0A, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x04, 0xF3, +0x68, 0x9A, 0x04, 0x6C, 0x8D, 0xEB, 0x04, 0xF3, +0x68, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x05, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xEA, 0xF2, 0x3B, 0xA2, 0x34, 0x10, +0x80, 0xF3, 0x4E, 0x41, 0x4C, 0x32, 0x09, 0xE2, +0xC2, 0x9A, 0x2C, 0x32, 0x09, 0xE2, 0x63, 0xF4, +0xFC, 0x9A, 0x06, 0xD2, 0x00, 0x6A, 0x63, 0xF4, +0xAC, 0x98, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x21, 0x6B, 0xE0, 0xF2, +0x58, 0x9A, 0xF0, 0xF6, 0x00, 0x4B, 0x00, 0x6C, +0xB5, 0xE3, 0x40, 0xEA, 0x01, 0x72, 0x09, 0x61, +0x06, 0x92, 0x63, 0xF4, 0x7C, 0x9A, 0x63, 0xF4, +0x4C, 0x98, 0x49, 0xE3, 0x63, 0xF4, 0x4C, 0xD8, +0x06, 0x10, 0x04, 0xF3, 0x48, 0x98, 0x04, 0x6B, +0x6D, 0xEA, 0x04, 0xF3, 0x48, 0xD8, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x05, 0x6C, +0x01, 0x49, 0x40, 0xEA, 0xFF, 0x6A, 0x4C, 0xE9, +0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, +0x43, 0xF4, 0x5B, 0xA0, 0x01, 0x4A, 0x42, 0xE9, +0xC3, 0x61, 0x43, 0xF4, 0x3B, 0xC0, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x70, 0x9A, +0xFF, 0x6C, 0x02, 0x6D, 0x40, 0xA3, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x69, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x8A, 0xF3, +0x18, 0x48, 0x4A, 0xF4, 0x10, 0x49, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xA8, 0xC1, 0x98, 0xC0, 0xF3, +0x44, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x08, 0x48, +0x40, 0xEA, 0x2A, 0xE8, 0xF4, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xEA, 0xF2, 0x3B, 0xA2, 0x35, 0x10, +0x80, 0xF3, 0x4E, 0x41, 0x4C, 0x32, 0x09, 0xE2, +0xC2, 0x9A, 0x2C, 0x32, 0x09, 0xE2, 0x63, 0xF4, +0xFC, 0x9A, 0x06, 0xD2, 0x00, 0x6A, 0x63, 0xF4, +0xAC, 0x98, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x21, 0x6B, 0xE0, 0xF2, +0x58, 0x9A, 0xF0, 0xF6, 0x00, 0x4B, 0x00, 0x6C, +0xB5, 0xE3, 0x40, 0xEA, 0x01, 0x72, 0x12, 0x61, +0x06, 0x92, 0x05, 0x6C, 0x01, 0x49, 0x63, 0xF4, +0x7C, 0x9A, 0x63, 0xF4, 0x4C, 0x98, 0x49, 0xE3, +0x63, 0xF4, 0x4C, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x40, 0xEA, 0xFF, 0x6A, +0x4C, 0xE9, 0x07, 0x10, 0x04, 0xF3, 0x48, 0x98, +0x10, 0x6B, 0x6D, 0xEA, 0x04, 0xF3, 0x48, 0xD8, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, +0x00, 0x48, 0x43, 0xF4, 0x5B, 0xA0, 0x07, 0x4A, +0x42, 0xE9, 0xC2, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x68, 0xEA, 0xF2, 0x3B, 0xC2, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, +0xB1, 0x67, 0xE3, 0xF6, 0x08, 0x6C, 0x03, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF1, 0xD4, 0x9B, 0xB1, 0x67, +0x01, 0xF4, 0x0C, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF1, 0x38, 0x9A, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xD1, 0x67, 0x83, 0xF5, 0x14, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, +0x5C, 0x9A, 0x45, 0xE1, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF1, 0x40, 0x9A, 0x2E, 0xEA, 0xEB, 0x2A, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF1, 0xC4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x01, 0xF4, +0x0C, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xE3, 0xF6, 0x08, 0x6C, +0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x66, 0xF7, 0x79, 0xA2, +0x01, 0x6A, 0x00, 0x68, 0x6C, 0xEA, 0x11, 0x2A, +0x31, 0x10, 0x18, 0x6D, 0xB8, 0xE8, 0x49, 0xE0, +0xE4, 0xF2, 0x90, 0xA2, 0x30, 0xF0, 0x20, 0x6B, +0x4A, 0xF4, 0x14, 0x4B, 0x01, 0x48, 0x12, 0xED, +0xB5, 0xE3, 0x00, 0x18, 0x46, 0xC4, 0xFF, 0x6A, +0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0xE4, 0xF2, 0x6C, 0xA2, 0x63, 0xE8, +0xE8, 0x61, 0xE0, 0xF0, 0x8E, 0xA2, 0x01, 0x6B, +0x8C, 0xEB, 0x14, 0x23, 0xE0, 0xF0, 0x75, 0xA2, +0x08, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, +0x0D, 0x22, 0x30, 0xF0, 0x20, 0x68, 0x0A, 0xF5, +0x14, 0x48, 0x00, 0x69, 0x91, 0x67, 0xB0, 0x67, +0x01, 0x49, 0x00, 0x18, 0x46, 0xC4, 0x04, 0x71, +0x18, 0x48, 0xF8, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xC0, 0xF0, 0x99, 0xA2, +0x02, 0x6B, 0x8C, 0xEB, 0x35, 0x23, 0xE4, 0xF2, +0x89, 0xA2, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x17, 0x4A, 0x00, 0x6B, 0x29, 0x10, 0xFF, 0xF7, +0xDF, 0xA2, 0xA0, 0xA2, 0xC0, 0x36, 0xC0, 0x36, +0x00, 0xF6, 0xA0, 0x35, 0xCD, 0xED, 0xFF, 0xF7, +0xDD, 0xA2, 0xCD, 0xED, 0xFF, 0xF7, 0xDE, 0xA2, +0xC0, 0x36, 0xCD, 0xED, 0x30, 0xF0, 0x20, 0x6E, +0xE3, 0xF1, 0xC8, 0x9E, 0xA0, 0xDE, 0xA2, 0xA2, +0xC1, 0xA2, 0x06, 0x4A, 0xA0, 0x35, 0xCD, 0xED, +0x1F, 0x6E, 0x6C, 0xEE, 0x00, 0xF6, 0xC0, 0x36, +0xCD, 0xED, 0x30, 0xF0, 0x20, 0x6E, 0xE3, 0xF1, +0xCC, 0x9E, 0x01, 0x4B, 0xCD, 0xED, 0x30, 0xF0, +0x20, 0x6E, 0xE3, 0xF1, 0xD0, 0x9E, 0xA0, 0xDE, +0xFF, 0x6D, 0x6C, 0xED, 0x83, 0xED, 0xD3, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xC0, 0xF0, 0x99, 0xA2, 0x04, 0x6B, 0x8C, 0xEB, +0x1C, 0x23, 0xE0, 0xF0, 0x6E, 0xA2, 0x03, 0x6A, +0x00, 0x68, 0x6C, 0xEA, 0x03, 0x72, 0x15, 0x61, +0x0E, 0x10, 0x14, 0x6D, 0xB8, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x6A, 0xF5, 0x14, 0x4A, 0x90, 0x67, +0x01, 0x48, 0x12, 0xED, 0xB5, 0xE2, 0x00, 0x18, +0x77, 0xC4, 0xFF, 0x6A, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x8B, 0xF1, 0x4A, 0xA2, 0x43, 0xE8, +0xEC, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x2A, 0xF7, +0x14, 0x48, 0x00, 0x69, 0x91, 0x67, 0xB0, 0x67, +0x01, 0x49, 0x00, 0x18, 0xA6, 0xC4, 0x40, 0x71, +0x08, 0x48, 0xF8, 0x61, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x66, 0xF7, 0x64, 0xA2, 0x7F, 0x6A, 0x6C, 0xEA, +0x01, 0x5A, 0x58, 0x67, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x69, 0x80, 0xF2, 0x48, 0x99, +0x30, 0xF0, 0x20, 0x6C, 0x66, 0xF7, 0x12, 0x4C, +0x00, 0x6D, 0x07, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x68, 0x80, 0xF2, 0x48, 0x99, 0x90, 0x67, +0xA6, 0xF4, 0x04, 0x4C, 0x00, 0x6D, 0x24, 0x6E, +0x40, 0xEA, 0xA6, 0xF4, 0x44, 0xA0, 0x07, 0x97, +0x06, 0x91, 0x01, 0x4A, 0xA6, 0xF4, 0x44, 0xC0, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x66, 0xF7, 0x52, 0xA2, +0x01, 0x6B, 0x46, 0x32, 0x6C, 0xEA, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x66, 0xF7, 0x72, 0xA2, +0x01, 0x6A, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x66, 0xF7, 0x52, 0xA2, +0xFF, 0x6B, 0x56, 0x32, 0x8E, 0xEA, 0x6C, 0xEA, +0x01, 0x5A, 0x58, 0x67, 0x6C, 0xEA, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0xE2, 0xC7, +0x00, 0x6B, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xEA, 0xF2, 0x77, 0xA2, 0x01, 0x6A, 0x4C, 0xEB, +0x05, 0x97, 0x43, 0x67, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x00, 0x18, 0x42, 0xC5, 0x01, 0x72, 0x3F, 0x61, +0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, +0xC3, 0xF3, 0x71, 0xA0, 0x03, 0x69, 0x43, 0x67, +0x2C, 0xEA, 0x35, 0x2A, 0x43, 0xF4, 0x48, 0xA0, +0x32, 0x2A, 0x04, 0x6A, 0x6C, 0xEA, 0x2F, 0x2A, +0x10, 0x6A, 0x6C, 0xEA, 0x2C, 0x2A, 0xC3, 0xF3, +0x6C, 0xA0, 0x20, 0x6A, 0x6C, 0xEA, 0x27, 0x22, +0xA3, 0xF3, 0x58, 0xA0, 0x24, 0x2A, 0x00, 0x18, +0xEC, 0xC7, 0x21, 0x2A, 0x44, 0xF3, 0x50, 0xA0, +0x4C, 0xE9, 0x03, 0x71, 0x1C, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF1, 0x54, 0x9A, 0x60, 0xA2, +0x02, 0x6A, 0x6C, 0xEA, 0x14, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF1, 0x74, 0x9A, 0x01, 0x6A, +0x80, 0xA3, 0x8C, 0xEA, 0x05, 0x22, 0x60, 0xA3, +0xFC, 0x6A, 0x6C, 0xEA, 0x80, 0x72, 0x07, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0xEB, 0xF1, 0x54, 0xA2, +0x01, 0x5A, 0x58, 0x67, 0x01, 0x10, 0x00, 0x6A, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0xC0, 0xF0, 0x92, 0xA3, +0x04, 0x6A, 0x8C, 0xEA, 0x0C, 0x22, 0xC0, 0xF0, +0x53, 0xA3, 0x09, 0x22, 0xC0, 0xF0, 0x54, 0xA3, +0x06, 0x22, 0xC0, 0xF0, 0x75, 0xA3, 0x00, 0x6A, +0x03, 0x23, 0x01, 0x6A, 0x20, 0xE8, 0x00, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0x32, 0x6B, 0xAC, 0xEA, 0xBD, 0x67, 0x70, 0xC5, +0x02, 0x5C, 0x02, 0x6B, 0x6F, 0xCD, 0x92, 0xC5, +0x02, 0x60, 0x53, 0xC5, 0x04, 0x10, 0x01, 0x6A, +0x4B, 0xEA, 0x7D, 0x67, 0x53, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, +0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, 0xC3, 0xF3, +0xAD, 0xA0, 0x08, 0x6B, 0xFF, 0x6A, 0xAC, 0xEB, +0x4C, 0xEB, 0x4C, 0xEC, 0x0C, 0x2B, 0x01, 0x6C, +0x0C, 0x6D, 0x00, 0x18, 0x17, 0xC5, 0x43, 0xF4, +0x4B, 0xA0, 0x0F, 0x22, 0x00, 0x6C, 0xA4, 0x67, +0x00, 0x18, 0x28, 0xC8, 0x0A, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x40, 0xF4, 0x5C, 0x9A, 0x01, 0x6D, +0x40, 0xEA, 0x01, 0x6C, 0x04, 0x6D, 0x00, 0x18, +0x17, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0x00, 0x6D, 0xFF, 0x6C, 0xC5, 0x67, +0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x6C, 0x00, 0x18, 0xB2, 0xD6, 0x05, 0x97, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF4, 0x04, 0x4B, +0x00, 0x6C, 0x86, 0xDB, 0x87, 0xDB, 0x44, 0xDB, +0x45, 0xDB, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF4, 0x04, 0x4A, +0x00, 0x6B, 0xFF, 0x69, 0x68, 0xC2, 0x8C, 0xE9, +0x00, 0x18, 0x1B, 0xC8, 0x28, 0x22, 0x30, 0xF0, +0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, 0xC0, 0xF0, +0x53, 0xA0, 0xC0, 0xF0, 0x74, 0xA0, 0x58, 0xEB, +0x12, 0xEA, 0x43, 0xF4, 0x55, 0xC0, 0x00, 0x18, +0xC7, 0xC7, 0x03, 0x22, 0x43, 0xF4, 0x15, 0xA0, +0x05, 0x10, 0xC0, 0xF0, 0x54, 0xA0, 0x01, 0x72, +0x12, 0x61, 0x01, 0x68, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0x58, 0xEA, 0xF2, 0x16, 0xC2, 0x08, 0x61, +0x91, 0x67, 0x00, 0x18, 0x8D, 0xDC, 0x91, 0x67, +0xB0, 0x67, 0x00, 0x18, 0x93, 0xDE, 0x03, 0x10, +0x91, 0x67, 0x00, 0x18, 0x9E, 0xDC, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0xAC, 0xEA, 0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF4, 0x04, 0x4A, 0x6A, 0xA2, 0x01, 0x4B, +0x6A, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0xEA, 0xF2, +0x76, 0xA3, 0x01, 0x73, 0x0E, 0x61, 0x1B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF4, 0x04, 0x4A, +0x69, 0xA2, 0x01, 0x4B, 0x69, 0xC2, 0x30, 0xF0, +0x20, 0x6B, 0xEA, 0xF2, 0x76, 0xA3, 0x01, 0x73, +0x0E, 0x61, 0x68, 0xA2, 0x01, 0x4B, 0x68, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF4, 0x4C, 0xA2, +0x0A, 0x5A, 0x00, 0x6A, 0x05, 0x61, 0x00, 0x18, +0x58, 0xC8, 0x00, 0x6A, 0x01, 0x10, 0x01, 0x6A, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0xFF, 0x6A, +0x4C, 0xEC, 0x12, 0x2C, 0x10, 0xF0, 0x23, 0x6C, +0x46, 0xF6, 0x11, 0x4C, 0x00, 0x18, 0x75, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x43, 0xF4, 0x97, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0x43, 0xF4, 0x77, 0xC2, 0x29, 0x10, +0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, +0xC0, 0xF0, 0x92, 0xA0, 0x04, 0x6B, 0x8C, 0xEB, +0x4C, 0xEB, 0x1F, 0x23, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF4, 0x04, 0x4A, 0x66, 0xA2, 0xC0, 0xF0, +0xD5, 0xA0, 0x10, 0xF0, 0x23, 0x6C, 0x01, 0x4B, +0x66, 0xC2, 0x0A, 0x6B, 0x78, 0xEE, 0x00, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x4C, 0x9A, 0x46, 0xF6, 0x11, 0x4C, 0x00, 0x6D, +0x01, 0x6F, 0x12, 0xEE, 0x40, 0xEA, 0x43, 0xF4, +0x77, 0xA0, 0x01, 0x6A, 0x6D, 0xEA, 0x43, 0xF4, +0x57, 0xC0, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0xEC, 0x49, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF1, 0x78, 0x9A, 0xFF, 0xF7, 0x1F, 0x6A, +0x80, 0xAB, 0x8C, 0xEA, 0x02, 0xF4, 0x03, 0x6C, +0x4C, 0xEC, 0x80, 0xCB, 0x40, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0xEA, 0xF2, 0x3B, 0xA2, 0x35, 0x10, +0x80, 0xF3, 0x4E, 0x41, 0x4C, 0x32, 0x09, 0xE2, +0xC2, 0x9A, 0x2C, 0x32, 0x09, 0xE2, 0x63, 0xF4, +0xFC, 0x9A, 0x06, 0xD2, 0x00, 0x6A, 0x63, 0xF4, +0xAC, 0x98, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x21, 0x6B, 0xE0, 0xF2, +0x58, 0x9A, 0xF0, 0xF6, 0x00, 0x4B, 0x00, 0x6C, +0xB5, 0xE3, 0x40, 0xEA, 0x01, 0x72, 0x12, 0x61, +0x06, 0x92, 0x05, 0x6C, 0x01, 0x49, 0x63, 0xF4, +0x7C, 0x9A, 0x63, 0xF4, 0x4C, 0x98, 0x49, 0xE3, +0x63, 0xF4, 0x4C, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x40, 0xEA, 0xFF, 0x6A, +0x4C, 0xE9, 0x07, 0x10, 0x04, 0xF3, 0x48, 0x98, +0x08, 0x6B, 0x6D, 0xEA, 0x04, 0xF3, 0x48, 0xD8, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, +0x00, 0x48, 0x43, 0xF4, 0x5B, 0xA0, 0x08, 0x4A, +0x42, 0xE9, 0xC2, 0x61, 0x30, 0xF0, 0x20, 0x68, +0xA6, 0xF6, 0x00, 0x48, 0x43, 0xF4, 0x3B, 0xC0, +0x00, 0x18, 0xFA, 0xD1, 0x01, 0x2A, 0xFF, 0x17, +0x00, 0x18, 0xCF, 0xC6, 0xC4, 0xF2, 0x84, 0xA8, +0xFF, 0xF7, 0x1F, 0x6A, 0x00, 0x6D, 0xFF, 0x4C, +0x4C, 0xEC, 0x00, 0x18, 0x10, 0xDE, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF1, 0x7C, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x23, 0xF1, 0x90, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x40, 0x9A, 0x04, 0x6C, 0x60, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x44, 0x9A, +0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, +0x68, 0x9A, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF2, 0x68, 0x98, +0x03, 0xF2, 0x4C, 0x9A, 0x60, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0xC4, 0xF2, 0x6C, 0x98, 0x03, 0xF2, +0x50, 0x9A, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x54, 0x9A, 0x00, 0x6B, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF2, 0x64, 0xA0, +0x03, 0xF2, 0x58, 0x9A, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xE4, 0xF2, 0x65, 0xA0, 0x03, 0xF2, +0x5C, 0x9A, 0x60, 0xC2, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6B, 0x8C, 0xEB, 0x01, 0x6A, 0x60, 0x2B, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x40, 0x9A, +0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, +0x44, 0x9A, 0x4C, 0xEB, 0x00, 0x6A, 0x54, 0x23, +0x30, 0xF0, 0x20, 0x6A, 0xEA, 0xF2, 0x58, 0xA2, +0x01, 0x72, 0x02, 0x61, 0x00, 0x18, 0xB9, 0xC6, +0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, +0x01, 0x6C, 0x00, 0x18, 0xCF, 0xDD, 0x43, 0xF4, +0x5A, 0xA0, 0x00, 0x69, 0x43, 0xF4, 0x5B, 0xC0, +0x63, 0xF4, 0x48, 0x98, 0x63, 0xF4, 0x28, 0xD8, +0x63, 0xF4, 0x4C, 0xD8, 0x00, 0x6A, 0x43, 0xF4, +0x5A, 0xC0, 0x00, 0x18, 0xDC, 0xC6, 0x00, 0x18, +0xB7, 0xC8, 0x00, 0x18, 0x14, 0xC7, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF4, 0xA4, 0x98, 0x43, 0xF4, +0xDC, 0x98, 0x63, 0xF4, 0xE0, 0x98, 0xE0, 0xF2, +0x58, 0x9A, 0x04, 0xD1, 0x05, 0xD1, 0x91, 0x67, +0x40, 0xEA, 0x01, 0x72, 0x06, 0x60, 0x04, 0xF3, +0x48, 0x98, 0x20, 0x6B, 0x6D, 0xEA, 0x04, 0xF3, +0x48, 0xD8, 0x00, 0x18, 0x6C, 0xC7, 0x01, 0x6C, +0x00, 0x18, 0x66, 0xC6, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF2, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x23, 0xF2, 0x88, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x00, 0x6B, 0x43, 0xF4, 0x7A, 0xC2, +0x00, 0x6B, 0x63, 0xF4, 0x68, 0xDA, 0x01, 0x6A, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, +0x00, 0x18, 0x96, 0xD3, 0x01, 0xE2, 0x30, 0xF0, +0x20, 0x6B, 0x1C, 0x30, 0x23, 0xF2, 0x0C, 0x4B, +0x60, 0x9B, 0x04, 0xD0, 0xB0, 0x67, 0x30, 0xF0, +0x20, 0x68, 0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, +0x20, 0x69, 0x2F, 0xF0, 0x16, 0x49, 0x30, 0x4D, +0x75, 0xE5, 0x91, 0x67, 0x02, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6E, 0x04, 0x95, 0x23, 0xF2, +0x0C, 0x4E, 0xC0, 0x9E, 0x80, 0xF2, 0x4C, 0x98, +0x87, 0x41, 0x32, 0x4D, 0xD5, 0xE5, 0x10, 0x4C, +0x02, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x04, 0x95, 0x23, 0xF2, 0x0C, 0x4B, 0x60, 0x9B, +0x80, 0xF2, 0x4C, 0x98, 0x34, 0x4D, 0x30, 0xF0, +0x20, 0x6C, 0x75, 0xE5, 0xEF, 0xF0, 0x10, 0x4C, +0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x04, 0x96, 0x23, 0xF2, 0x0C, 0x4B, 0x60, 0x9B, +0x80, 0xF2, 0x4C, 0x98, 0x38, 0x4E, 0x87, 0x41, +0x75, 0xE6, 0x04, 0xD6, 0x13, 0x4C, 0xA0, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0x96, +0x23, 0xF2, 0xB0, 0x9B, 0x80, 0xF2, 0x4C, 0x98, +0x87, 0x41, 0xB5, 0xE6, 0x0B, 0x4C, 0x01, 0x6E, +0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, 0x00, 0x18, +0x96, 0xD3, 0x01, 0xE2, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF2, 0xB4, 0x9A, 0x1C, 0x30, 0x30, 0xF0, +0x20, 0x6C, 0xB5, 0xE0, 0x8B, 0xF1, 0x08, 0x4C, +0x10, 0x6E, 0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xE4, 0xF2, 0x6D, 0xA2, +0x7C, 0x33, 0x63, 0xF4, 0x60, 0xDA, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xDD, 0x63, 0x45, 0x62, 0x44, 0xD1, 0x43, 0xD0, +0x30, 0xF0, 0x20, 0x6D, 0x1D, 0x00, 0x90, 0x67, +0x22, 0xF4, 0x0C, 0x4D, 0x80, 0x6E, 0x00, 0x18, +0xD5, 0xD3, 0x30, 0xF0, 0x20, 0x6D, 0x06, 0x04, +0xC2, 0xF3, 0x10, 0x4D, 0x5C, 0x6E, 0x00, 0x18, +0xD5, 0xD3, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xB0, 0x67, +0x0A, 0xF3, 0x18, 0x4C, 0x80, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x00, 0x6B, 0x43, 0xF4, 0x7A, 0xC2, 0x00, 0x6B, +0x63, 0xF4, 0x68, 0xDA, 0x3E, 0x02, 0x1E, 0x00, +0x40, 0xD2, 0x23, 0x67, 0x00, 0x6A, 0xFF, 0xF7, +0xBC, 0x98, 0xE0, 0x98, 0x04, 0xD2, 0x05, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x21, 0x6E, +0xE0, 0xF2, 0x58, 0x9A, 0xF0, 0xF6, 0x00, 0x4E, +0x00, 0x6C, 0x39, 0xE6, 0x40, 0xEA, 0x0A, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x04, 0xF3, 0x68, 0x9A, 0x01, 0x6C, 0x8D, 0xEB, +0x04, 0xF3, 0x68, 0xDA, 0x40, 0x98, 0x14, 0x6C, +0x08, 0x48, 0x3E, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x40, 0xEA, 0x40, 0x92, +0x4A, 0xE8, 0x03, 0x60, 0x3E, 0x92, 0x45, 0xE1, +0xD5, 0x17, 0x30, 0xF0, 0x20, 0x68, 0x1D, 0x02, +0x06, 0x01, 0x8A, 0xF3, 0x18, 0x48, 0x41, 0xD2, +0x40, 0x99, 0xFF, 0xF7, 0x1F, 0x6C, 0x01, 0x6D, +0x40, 0xD8, 0x4C, 0xEC, 0xAB, 0xED, 0x80, 0x18, +0x72, 0x3C, 0x41, 0xD8, 0x41, 0x92, 0x04, 0x49, +0x08, 0x48, 0x4A, 0xE9, 0x58, 0x67, 0x3E, 0xD2, +0xEF, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF2, +0x54, 0x9A, 0x38, 0x6C, 0x30, 0xF0, 0x20, 0x68, +0x40, 0xEA, 0xA6, 0xF6, 0x00, 0x48, 0xA3, 0xF5, +0x50, 0xD8, 0x00, 0x18, 0x96, 0xD3, 0xC4, 0xF2, +0x44, 0xC8, 0xC4, 0xF2, 0xA4, 0xA8, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF2, 0x4C, 0x9A, 0x63, 0xF4, +0xE0, 0x98, 0xBC, 0x35, 0x30, 0xF0, 0x21, 0x6E, +0x55, 0xE5, 0xF3, 0xF4, 0x00, 0x4E, 0x84, 0xF5, +0x01, 0x5F, 0x43, 0xF4, 0xBC, 0xD8, 0x63, 0xF4, +0xC4, 0xD8, 0x1F, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF2, 0x58, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF2, 0x64, 0x9B, 0xC0, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF2, 0x5C, 0x9A, 0x01, 0x6D, +0xE0, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, +0x80, 0x9A, 0x40, 0x9C, 0x6D, 0xEA, 0x40, 0xDC, +0xA3, 0xF3, 0x5C, 0x98, 0x04, 0x6C, 0x6D, 0xEA, +0xA3, 0xF3, 0x5C, 0xD8, 0x80, 0x18, 0x4E, 0x16, +0xFF, 0x17, 0x3E, 0x91, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF2, 0x58, 0x9A, 0x04, 0xD1, 0x05, 0xD1, +0x00, 0x6C, 0x40, 0xEA, 0x06, 0x2A, 0x04, 0xF3, +0x48, 0x98, 0x02, 0x6B, 0x6D, 0xEA, 0x04, 0xF3, +0x48, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x66, 0xF7, +0x79, 0xA2, 0x01, 0x6A, 0x00, 0x68, 0x6C, 0xEA, +0x11, 0x2A, 0x18, 0x10, 0x18, 0x6D, 0xB8, 0xE8, +0x49, 0xE0, 0xE4, 0xF2, 0x90, 0xA2, 0x30, 0xF0, +0x20, 0x6B, 0x4A, 0xF4, 0x14, 0x4B, 0x01, 0x48, +0x12, 0xED, 0xB5, 0xE3, 0x00, 0x18, 0x2E, 0xC4, +0xFF, 0x6A, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xE4, 0xF2, 0x6C, 0xA2, +0x63, 0xE8, 0xE8, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x43, 0xF4, 0x78, 0xA2, +0x12, 0x23, 0xC0, 0xF0, 0x79, 0xA2, 0x01, 0x6A, +0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x68, +0x0A, 0xF5, 0x14, 0x48, 0x00, 0x69, 0x91, 0x67, +0xB0, 0x67, 0x01, 0x49, 0x00, 0x18, 0x2E, 0xC4, +0x04, 0x71, 0x18, 0x48, 0xF8, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xC0, 0xF0, +0x99, 0xA2, 0x02, 0x6B, 0x8C, 0xEB, 0x49, 0x23, +0xE4, 0xF2, 0xC9, 0xA2, 0x00, 0x6C, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x14, 0x4A, 0x01, 0x6B, +0xA4, 0x67, 0x3B, 0x10, 0x30, 0xF0, 0x20, 0x68, +0x23, 0xF1, 0x10, 0x98, 0x1F, 0x6F, 0x8C, 0xEF, +0x00, 0xF6, 0xE0, 0x37, 0x0D, 0xEF, 0x30, 0xF0, +0x20, 0x68, 0xE3, 0xF1, 0x10, 0x98, 0xE0, 0xD8, +0x30, 0xF0, 0x20, 0x6F, 0xE3, 0xF1, 0xF0, 0x9F, +0xE0, 0x9F, 0x00, 0x57, 0x0B, 0x60, 0xFF, 0x68, +0x01, 0x4B, 0x0A, 0x6F, 0x0C, 0xEB, 0xFB, 0xEB, +0x01, 0x2F, 0xE5, 0xE8, 0x10, 0xEF, 0x0C, 0xEF, +0xEF, 0x2F, 0x19, 0x25, 0x30, 0xF0, 0x20, 0x6D, +0xE3, 0xF1, 0xA8, 0x9D, 0xA0, 0x9D, 0xA2, 0x37, +0xA0, 0xC2, 0x00, 0xF6, 0xA2, 0x35, 0xA3, 0xC2, +0x30, 0xF0, 0x20, 0x6D, 0xE3, 0xF1, 0xB0, 0x9D, +0xE1, 0xC2, 0xE2, 0x37, 0xE2, 0xC2, 0xE0, 0xAD, +0xFF, 0xF7, 0x1F, 0x6D, 0xEC, 0xED, 0xA4, 0xC2, +0xA2, 0x35, 0xA5, 0xC2, 0x01, 0x6D, 0x01, 0x4C, +0x06, 0x4A, 0xFF, 0x6F, 0x8C, 0xEF, 0xC3, 0xEF, +0xC1, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0xC0, 0xF0, 0x99, 0xA2, 0x04, 0x6B, +0x8C, 0xEB, 0x1C, 0x23, 0xE0, 0xF0, 0x6E, 0xA2, +0x03, 0x6A, 0x00, 0x68, 0x6C, 0xEA, 0x03, 0x72, +0x15, 0x61, 0x0E, 0x10, 0x14, 0x6D, 0xB8, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x6A, 0xF5, 0x14, 0x4A, +0x90, 0x67, 0x01, 0x48, 0x12, 0xED, 0xB5, 0xE2, +0x00, 0x18, 0x5E, 0xC4, 0xFF, 0x6A, 0x4C, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF1, 0x4A, 0xA2, +0x43, 0xE8, 0xEC, 0x61, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x08, 0x6E, 0x03, 0xF3, +0x00, 0x6C, 0x0F, 0x6D, 0x40, 0xEA, 0x01, 0x6D, +0x23, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x30, 0xF0, +0x20, 0x69, 0x80, 0x18, 0x72, 0x3C, 0xA6, 0xF6, +0x00, 0x49, 0xC4, 0xF2, 0x5C, 0xD9, 0xC0, 0xF3, +0x44, 0x98, 0x0A, 0x6E, 0x03, 0xF3, 0x00, 0x6C, +0x0F, 0x6D, 0x40, 0xEA, 0x01, 0x6D, 0x23, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x80, 0x18, 0x72, 0x3C, +0xE4, 0xF2, 0x40, 0xD9, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x08, 0x6E, +0x40, 0xEA, 0x00, 0x18, 0xFA, 0xD1, 0x45, 0x97, +0x44, 0x91, 0x43, 0x90, 0x23, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x00, 0x6A, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, +0x58, 0x9A, 0xC3, 0xF1, 0xAC, 0x9B, 0x30, 0xF0, +0x21, 0x6E, 0x00, 0x6C, 0xD3, 0xF4, 0x00, 0x4E, +0x20, 0x6F, 0x40, 0xEA, 0x0A, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x04, 0xF3, +0x68, 0x9A, 0x01, 0x6C, 0x8D, 0xEB, 0x04, 0xF3, +0x68, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x14, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x43, 0xF4, +0x79, 0xA2, 0x05, 0x23, 0x00, 0x6B, 0x43, 0xF4, +0x79, 0xC2, 0x00, 0x18, 0x86, 0xC9, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF1, 0x70, 0x9A, 0xFD, 0x6A, +0x30, 0xF0, 0x20, 0x68, 0x80, 0xA3, 0x2A, 0xF7, +0x14, 0x48, 0x00, 0x69, 0x8C, 0xEA, 0x40, 0xC3, +0x00, 0x6C, 0x00, 0x18, 0x66, 0xC6, 0x00, 0x6C, +0x00, 0x18, 0xCF, 0xDD, 0x91, 0x67, 0xB0, 0x67, +0x01, 0x49, 0x00, 0x18, 0x90, 0xC4, 0x40, 0x71, +0x08, 0x48, 0xF8, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x4C, 0x9A, 0x60, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xC4, 0xF2, +0x68, 0xDA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF2, +0x70, 0x9B, 0x60, 0x9B, 0xC4, 0xF2, 0x6C, 0xDA, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, 0x68, 0x9B, +0x60, 0x9B, 0xC4, 0xF2, 0x70, 0xDA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF2, 0x6C, 0x9B, 0x60, 0x9B, +0xC4, 0xF2, 0x74, 0xDA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF2, 0x70, 0x9B, 0x60, 0xA3, 0xE4, 0xF2, +0x66, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, +0x74, 0x9B, 0x60, 0x9B, 0xC4, 0xF2, 0x78, 0xDA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF2, 0x78, 0x9B, +0x60, 0xA3, 0xE4, 0xF2, 0x64, 0xC2, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF2, 0x7C, 0x9B, 0x60, 0xA3, +0xE4, 0xF2, 0x65, 0xC2, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x68, +0x8C, 0xE8, 0x00, 0x18, 0x96, 0xD3, 0x01, 0xE2, +0x1C, 0x34, 0x30, 0x4C, 0x80, 0x18, 0xEE, 0x1C, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xFF, 0x68, +0x8C, 0xE8, 0xC3, 0xF3, 0x8C, 0xA2, 0x03, 0x6B, +0x6B, 0xEB, 0x41, 0x6D, 0x8C, 0xEB, 0xAB, 0xED, +0xAC, 0xEB, 0xC3, 0xF3, 0xAD, 0xA2, 0xC3, 0xF3, +0x6C, 0xC2, 0x11, 0x6B, 0x00, 0x6C, 0x6B, 0xEB, +0xC3, 0xF3, 0x99, 0xC2, 0xC3, 0xF3, 0x91, 0xC2, +0xAC, 0xEB, 0xC3, 0xF3, 0x9A, 0xC2, 0x90, 0x67, +0xC3, 0xF3, 0x6D, 0xC2, 0x00, 0x18, 0x9E, 0xDC, +0x90, 0x67, 0x00, 0x18, 0x97, 0xDC, 0x90, 0x67, +0x00, 0x18, 0xB3, 0xDC, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xA6, 0xF6, 0x00, 0x48, 0x80, 0x18, 0xC7, 0x1A, +0xC3, 0xF3, 0x4F, 0xA0, 0x01, 0x6C, 0xF0, 0x6D, +0x04, 0xD2, 0x00, 0x18, 0x17, 0xC5, 0x00, 0x18, +0x5D, 0xDE, 0x43, 0xF4, 0x58, 0xA0, 0x64, 0x22, +0x00, 0x18, 0x5A, 0xCA, 0x5C, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x7D, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, 0x21, 0x6C, +0xFC, 0xF7, 0x1C, 0x4C, 0xBD, 0x67, 0xA0, 0xDC, +0x9A, 0xB8, 0x00, 0x65, 0xBB, 0xB8, 0x00, 0x65, +0x00, 0x18, 0x22, 0xDA, 0x30, 0xF0, 0x21, 0x69, +0xDC, 0xF7, 0x0C, 0x49, 0x00, 0x99, 0x32, 0xE8, +0x01, 0x99, 0x30, 0xE8, 0x42, 0x99, 0x63, 0x99, +0x84, 0x99, 0xA5, 0x99, 0xC6, 0x99, 0xE7, 0x99, +0x08, 0x99, 0x18, 0x65, 0x09, 0x99, 0x58, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, +0x21, 0x68, 0xDC, 0xF7, 0x0C, 0x48, 0x2A, 0x98, +0x1A, 0xB8, 0x00, 0x65, 0x58, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x79, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, 0x21, 0x69, +0x9C, 0xF7, 0x0C, 0x49, 0x09, 0xD9, 0x12, 0xE8, +0x00, 0xD9, 0x10, 0xE8, 0x01, 0xD9, 0x42, 0xD9, +0x63, 0xD9, 0x84, 0xD9, 0xA5, 0xD9, 0xC6, 0xD9, +0xE7, 0xD9, 0x18, 0x67, 0x08, 0xD9, 0x1F, 0x67, +0x0B, 0xD9, 0x1D, 0x67, 0x0C, 0xD9, 0x1F, 0xF7, +0x32, 0x68, 0x46, 0xF4, 0x16, 0x48, 0xFF, 0xF7, +0x1C, 0xD9, 0x30, 0xF0, 0x21, 0x68, 0x9C, 0xF7, +0x0C, 0x48, 0x3B, 0xB8, 0x00, 0x65, 0x2A, 0xD8, +0x1A, 0xB8, 0x00, 0x65, 0x00, 0x18, 0xFB, 0xD9, +0x00, 0x6C, 0x00, 0x18, 0x0E, 0xC9, 0x10, 0x10, +0x00, 0x6C, 0x00, 0x18, 0xCF, 0xDD, 0x00, 0x6C, +0x00, 0x18, 0x66, 0xC6, 0x00, 0x18, 0x22, 0xDA, +0x00, 0x18, 0xFB, 0xD9, 0x01, 0x6C, 0x00, 0x18, +0x66, 0xC6, 0x01, 0x6C, 0x00, 0x18, 0xCF, 0xDD, +0x04, 0x95, 0x01, 0x6C, 0x00, 0x18, 0x17, 0xC5, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, 0x00, 0x18, +0xEF, 0xDF, 0x00, 0x18, 0xA0, 0xD3, 0x01, 0x72, +0x03, 0x60, 0x08, 0x6C, 0x00, 0x18, 0xAC, 0xDF, +0x08, 0x20, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0x00, 0x6D, 0xFF, 0x6C, 0xC5, 0x67, +0x40, 0xEA, 0x01, 0x6C, 0x04, 0x6D, 0x00, 0x18, +0x17, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, +0x78, 0x9B, 0x43, 0xF4, 0x88, 0x9A, 0x8C, 0xEB, +0x04, 0x73, 0x0C, 0x61, 0xC3, 0xF3, 0x6F, 0xA2, +0x04, 0x6C, 0x8C, 0xEB, 0x07, 0x23, 0x01, 0x6B, +0x43, 0xF4, 0x6A, 0xC2, 0x01, 0x6C, 0x00, 0x6D, +0x00, 0x18, 0x28, 0xC8, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0xDE, 0xC7, 0x20, 0x2A, 0x00, 0x18, +0x9B, 0xD3, 0x39, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF2, 0x5C, 0x9A, 0x40, 0xA2, 0x33, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xCB, 0xF1, 0x64, 0xA2, +0x01, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, +0x2A, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, +0x40, 0x9A, 0x60, 0xA2, 0x02, 0x6A, 0x6C, 0xEA, +0x22, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, +0x44, 0x9A, 0x40, 0xA2, 0x1C, 0x2A, 0x00, 0x18, +0xA0, 0xD3, 0x19, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xA0, 0xF1, 0x9C, 0xA2, +0xA0, 0xF1, 0x7D, 0xA2, 0x8E, 0xEB, 0x0F, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0x68, 0x9B, +0x80, 0xA3, 0x0F, 0x6B, 0x8C, 0xEB, 0x07, 0x2B, +0x24, 0xF3, 0x44, 0xA2, 0x01, 0x6B, 0x4E, 0x32, +0x6E, 0xEA, 0x6C, 0xEA, 0x01, 0x10, 0x00, 0x6A, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x6A, 0xF2, 0x4F, 0xA2, 0x02, 0x22, 0x08, 0x72, +0x06, 0x61, 0x00, 0x18, 0x27, 0xCB, 0x01, 0x72, +0x02, 0x61, 0x00, 0x18, 0xC1, 0xCA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0x7C, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0x45, 0xF5, 0x0D, 0x4A, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x6A, 0xF2, +0x6C, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0x4A, 0xCB, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF0, 0x7C, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0x45, 0xF5, 0x0F, 0x4A, 0x40, 0xDB, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x24, 0x67, 0x6A, 0xF2, 0x8E, 0xA3, 0x02, 0x6B, +0xFF, 0x6A, 0x8C, 0xEB, 0x4C, 0xED, 0x4C, 0xEB, +0x4C, 0xE9, 0x08, 0xD5, 0x02, 0x6A, 0x75, 0x23, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF4, 0x4B, 0xA2, +0x2E, 0xEA, 0x5F, 0x22, 0x00, 0x6A, 0x7D, 0x67, +0x30, 0xF0, 0x20, 0x6C, 0x05, 0xD2, 0x58, 0xC3, +0x48, 0xCB, 0xC6, 0xF4, 0x4A, 0xA4, 0x27, 0x2A, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF4, 0x49, 0xA3, +0x22, 0x2A, 0x30, 0xF0, 0x20, 0x6C, 0xC6, 0xF4, +0x48, 0xA4, 0x1D, 0x2A, 0x30, 0xF0, 0x20, 0x68, +0xAE, 0xF7, 0x18, 0x48, 0x90, 0x67, 0x05, 0x05, +0x80, 0x18, 0xBB, 0x4D, 0x90, 0x67, 0x04, 0x05, +0x80, 0x18, 0xA9, 0x4D, 0x7D, 0x67, 0x50, 0xA3, +0x30, 0xF0, 0x20, 0x6C, 0xC6, 0xF4, 0x4A, 0xC4, +0x54, 0xA3, 0x75, 0xA3, 0x30, 0xF0, 0x20, 0x6C, +0x4D, 0xEB, 0xC6, 0xF4, 0x69, 0xC4, 0x30, 0xF0, +0x20, 0x6B, 0xC6, 0xF4, 0x48, 0xC3, 0x03, 0x21, +0x01, 0x71, 0x12, 0x60, 0x26, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF4, 0xA9, 0xA2, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6C, 0xC6, 0xF4, +0xCA, 0xA2, 0x30, 0xF0, 0x20, 0x6A, 0xAE, 0xF7, +0x18, 0x4C, 0xC6, 0xF4, 0xE8, 0xA2, 0x13, 0x10, +0x30, 0xF0, 0x20, 0x68, 0xAE, 0xF7, 0x18, 0x48, +0x90, 0x67, 0x80, 0x18, 0x4F, 0x4C, 0x07, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x32, 0x6C, 0x40, 0xEA, 0xF1, 0x17, 0x01, 0x6D, +0x90, 0x67, 0xC5, 0x67, 0xE5, 0x67, 0x80, 0x18, +0xAA, 0x51, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF4, +0x2B, 0xC2, 0x08, 0x94, 0x00, 0x6A, 0x0D, 0x24, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF4, 0x4A, 0xC3, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF4, 0x49, 0xC3, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF4, 0x48, 0xC3, +0x00, 0x6A, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0x80, 0xF2, 0x48, 0x98, 0x30, 0xF0, 0x20, 0x6C, +0x6A, 0xF2, 0x0C, 0x4C, 0x00, 0x6D, 0x80, 0x6E, +0x40, 0xEA, 0x80, 0xF2, 0x48, 0x98, 0x30, 0xF0, +0x20, 0x6C, 0x2C, 0x6E, 0x8B, 0xF1, 0x18, 0x4C, +0x00, 0x6D, 0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, +0x00, 0x48, 0x40, 0xEA, 0x00, 0x18, 0xCC, 0xC7, +0x02, 0x6A, 0xC0, 0xF0, 0x46, 0xC0, 0x01, 0x6A, +0xC3, 0xF3, 0x56, 0xC0, 0xC3, 0xF3, 0x57, 0xC0, +0x0C, 0x6A, 0xC3, 0xF3, 0x58, 0xC0, 0x00, 0x6C, +0x06, 0x6A, 0xE3, 0xF3, 0x40, 0xC8, 0xA4, 0x67, +0x00, 0x18, 0x17, 0xC5, 0x02, 0x6C, 0x0C, 0x6D, +0x00, 0x18, 0x17, 0xC5, 0x01, 0x6C, 0x0C, 0x6D, +0x00, 0x18, 0x17, 0xC5, 0x30, 0xF0, 0x20, 0x6C, +0x6A, 0xF2, 0x1E, 0x4C, 0x00, 0x6D, 0x00, 0x18, +0xF0, 0xDD, 0xC0, 0xF0, 0x6D, 0xA0, 0x03, 0x6A, +0xC0, 0xF0, 0x4B, 0xC0, 0x0F, 0x6A, 0xC0, 0xF0, +0x4C, 0xC0, 0x01, 0x6A, 0x6C, 0xEA, 0x28, 0x6B, +0x6D, 0xEA, 0xC0, 0xF0, 0x4D, 0xC0, 0x07, 0x6A, +0xC0, 0xF0, 0x4E, 0xC0, 0xE3, 0xF3, 0x4A, 0xA0, +0x30, 0xF0, 0x20, 0x69, 0x00, 0x6C, 0x03, 0x4A, +0xE3, 0xF3, 0x46, 0xC0, 0x0C, 0x6A, 0xE3, 0xF3, +0x47, 0xC0, 0x40, 0xF4, 0x5C, 0x99, 0xA4, 0x67, +0x40, 0xEA, 0x40, 0xF4, 0x5C, 0x99, 0x01, 0x6C, +0x00, 0x6D, 0x40, 0xEA, 0x40, 0xF4, 0x5C, 0x99, +0x02, 0x6C, 0x00, 0x6D, 0x40, 0xEA, 0x40, 0xF4, +0x5C, 0x99, 0x03, 0x6C, 0x00, 0x6D, 0x40, 0xEA, +0x40, 0xF4, 0x5C, 0x99, 0x04, 0x6C, 0x00, 0x6D, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, +0x6C, 0x9A, 0xFC, 0x6A, 0x00, 0x6D, 0x80, 0xA3, +0xC5, 0x67, 0x00, 0x69, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, +0xFF, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF3, 0x60, 0xA0, 0x83, 0xF1, 0x44, 0x9A, +0xA3, 0xF3, 0x38, 0xC0, 0xFF, 0x6C, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0x70, 0x9A, +0x08, 0x6D, 0xAB, 0xED, 0x40, 0xA3, 0x80, 0xF6, +0x10, 0x6E, 0x8C, 0xEA, 0xAC, 0xEA, 0x05, 0x6D, +0xAD, 0xEA, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x40, 0xC3, 0xEA, 0xF2, 0x18, 0x4C, 0x00, 0x6D, +0x00, 0x18, 0xD0, 0xD3, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF2, 0x54, 0x9A, 0x4B, 0x6B, 0x60, 0xC2, +0x0C, 0x6A, 0x43, 0xF4, 0x48, 0xC0, 0xC3, 0xF3, +0x4F, 0xC0, 0x43, 0xF4, 0x29, 0xC0, 0x43, 0xF4, +0x2B, 0xC0, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x6A, 0xF2, 0xAC, 0xA3, 0x04, 0x6B, 0xFF, 0x6A, +0xAC, 0xEB, 0x4C, 0xEB, 0x4C, 0xEC, 0x06, 0x23, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0x58, 0x9A, +0x00, 0x6B, 0x60, 0xC2, 0x02, 0x6D, 0x00, 0x18, +0xD3, 0xD9, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, +0x5C, 0x9A, 0x04, 0x69, 0x30, 0xF0, 0x20, 0x68, +0x20, 0xDA, 0xA6, 0xF6, 0x00, 0x48, 0xC0, 0xF0, +0xCD, 0xA0, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x48, 0x9A, 0xFF, 0x6C, 0x59, 0x4C, 0x00, 0x6D, +0xC6, 0x36, 0x40, 0xEA, 0xC3, 0xF3, 0x4C, 0xA0, +0x07, 0x97, 0x4D, 0xE9, 0xC3, 0xF3, 0x2C, 0xC0, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0xAC, 0xEA, 0x29, 0x22, 0x05, 0x5C, 0x1D, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, 0x42, 0xF3, +0x0C, 0x4A, 0x89, 0xE2, 0x40, 0x9A, 0x00, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x01, 0x6C, 0x83, 0xF2, +0xA0, 0x9A, 0x0D, 0x10, 0x04, 0x6C, 0x0F, 0x6D, +0x0A, 0x10, 0x04, 0x6C, 0xF0, 0x6D, 0x07, 0x10, +0x04, 0x6C, 0x01, 0xF7, 0x00, 0x6D, 0x03, 0x10, +0x04, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, 0x80, 0x18, +0xA8, 0x57, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, +0x6C, 0x9A, 0xFF, 0x6C, 0x07, 0x6D, 0x40, 0xA3, +0x8C, 0xEA, 0xAD, 0xEA, 0x25, 0x10, 0x05, 0x5C, +0x1D, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, +0x62, 0xF3, 0x00, 0x4A, 0x89, 0xE2, 0x40, 0x9A, +0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x01, 0x6C, +0x83, 0xF2, 0xA0, 0x9A, 0x0D, 0x10, 0x04, 0x6C, +0x0F, 0x6D, 0x0A, 0x10, 0x04, 0x6C, 0xF0, 0x6D, +0x07, 0x10, 0x04, 0x6C, 0x01, 0xF7, 0x00, 0x6D, +0x03, 0x10, 0x04, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, +0x80, 0x18, 0xD9, 0x57, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF2, 0x6C, 0x9A, 0xFC, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x27, 0x22, +0x05, 0x5C, 0x4B, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x88, 0x34, 0x62, 0xF3, 0x14, 0x4A, 0x89, 0xE2, +0x40, 0x9A, 0x00, 0xEA, 0x00, 0x6C, 0x08, 0x6D, +0x17, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x6C, +0xC3, 0xF1, 0xBC, 0x9A, 0x11, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x04, 0x6C, 0x83, 0xF2, 0xA4, 0x9A, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x6C, +0x83, 0xF2, 0xA8, 0x9A, 0x05, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF2, 0xAC, 0x9A, 0x04, 0x6C, +0x80, 0x18, 0xA8, 0x57, 0x26, 0x10, 0x05, 0x5C, +0x24, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, +0x82, 0xF3, 0x08, 0x4A, 0x89, 0xE2, 0x40, 0x9A, +0x00, 0xEA, 0x00, 0x6C, 0x08, 0x6D, 0x17, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0x6C, 0xC3, 0xF1, +0xBC, 0x9A, 0x11, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0x6C, 0x83, 0xF2, 0xA4, 0x9A, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0x6C, 0x83, 0xF2, +0xA8, 0x9A, 0x05, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF2, 0xAC, 0x9A, 0x04, 0x6C, 0x80, 0x18, +0xD9, 0x57, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x6A, 0x83, 0xF2, +0x70, 0x9B, 0x4C, 0xEC, 0x04, 0xD4, 0x20, 0xA3, +0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6C, 0x4C, 0xE9, +0xA0, 0xF2, 0x50, 0x98, 0xA4, 0x67, 0x2D, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, +0x5C, 0x9A, 0x40, 0xEA, 0x06, 0x2A, 0xA0, 0xF2, +0x50, 0x98, 0xFF, 0x6C, 0xB1, 0x67, 0x2D, 0x6E, +0x0C, 0x10, 0x04, 0x94, 0x01, 0x6D, 0x00, 0x18, +0x4D, 0xCC, 0x00, 0x18, 0x05, 0xE0, 0x07, 0x2A, +0xA0, 0xF2, 0x50, 0x98, 0xFF, 0x6C, 0xB1, 0x67, +0x5B, 0x6E, 0x40, 0xEA, 0x04, 0x10, 0x01, 0x6C, +0x00, 0x6D, 0x00, 0x18, 0x17, 0xC5, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x25, 0x67, 0x30, 0xF0, 0x20, 0x6D, 0xA6, 0xF6, +0x00, 0x4D, 0x06, 0x67, 0xC3, 0xF3, 0xCD, 0xA5, +0x03, 0x6B, 0xFF, 0x6A, 0xCC, 0xEB, 0x4C, 0xEB, +0x4C, 0xEC, 0x4C, 0xE9, 0x4C, 0xE8, 0xE0, 0xF0, +0x06, 0x2B, 0xC3, 0xF3, 0x4F, 0xA5, 0x8E, 0xEA, +0xE0, 0xF0, 0x01, 0x22, 0x0D, 0x5C, 0xC0, 0xF0, +0x1E, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, +0x82, 0xF3, 0x1C, 0x4A, 0x89, 0xE2, 0x40, 0x9A, +0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x6A, 0xF2, +0x4F, 0xA2, 0x0E, 0x72, 0x03, 0x61, 0x90, 0x67, +0x00, 0x18, 0x36, 0xC8, 0x30, 0xF0, 0x20, 0x6A, +0x6A, 0xF2, 0x4F, 0xA2, 0x04, 0x2A, 0x01, 0x6C, +0xB0, 0x67, 0x00, 0x18, 0x0B, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0x6A, 0xF2, 0x4F, 0xA2, 0x06, 0x72, +0x03, 0x61, 0x90, 0x67, 0x00, 0x18, 0x7F, 0xC5, +0x30, 0xF0, 0x20, 0x6A, 0x6A, 0xF2, 0x4F, 0xA2, +0x04, 0x72, 0x09, 0x61, 0x05, 0x21, 0x91, 0x67, +0xB0, 0x67, 0x00, 0x18, 0x93, 0xCF, 0x03, 0x10, +0x90, 0x67, 0x00, 0x18, 0x72, 0xC5, 0x30, 0xF0, +0x20, 0x6A, 0x6A, 0xF2, 0x4F, 0xA2, 0x08, 0x72, +0xA0, 0xF0, 0x05, 0x61, 0x80, 0x18, 0x00, 0x40, +0xA2, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x6A, 0xF2, +0x4F, 0xA2, 0x04, 0x2A, 0x01, 0x6C, 0xB0, 0x67, +0x00, 0x18, 0x0B, 0xCB, 0x30, 0xF0, 0x20, 0x6A, +0x6A, 0xF2, 0x4F, 0xA2, 0x06, 0x72, 0x03, 0x61, +0x90, 0x67, 0x00, 0x18, 0x7F, 0xC5, 0x30, 0xF0, +0x20, 0x6A, 0x6A, 0xF2, 0x4F, 0xA2, 0x0E, 0x72, +0x07, 0x61, 0x00, 0x18, 0x64, 0xC5, 0x01, 0x72, +0x03, 0x61, 0x90, 0x67, 0x00, 0x18, 0x36, 0xC8, +0x30, 0xF0, 0x20, 0x6A, 0x6A, 0xF2, 0x4F, 0xA2, +0x0C, 0x72, 0x7D, 0x61, 0x00, 0x18, 0x64, 0xC5, +0x01, 0x72, 0x79, 0x61, 0x90, 0x67, 0x00, 0x18, +0xA1, 0xC5, 0x75, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x6A, 0xF2, 0x4F, 0xA2, 0x0E, 0x72, 0x07, 0x61, +0x00, 0x18, 0x64, 0xC5, 0x01, 0x72, 0x03, 0x61, +0x90, 0x67, 0x00, 0x18, 0x36, 0xC8, 0x30, 0xF0, +0x20, 0x6A, 0x6A, 0xF2, 0x4F, 0xA2, 0x06, 0x72, +0x03, 0x61, 0x90, 0x67, 0x00, 0x18, 0x7F, 0xC5, +0x30, 0xF0, 0x20, 0x6A, 0x6A, 0xF2, 0x4F, 0xA2, +0x0C, 0x72, 0x07, 0x61, 0x00, 0x18, 0x64, 0xC5, +0x01, 0x72, 0x03, 0x61, 0x90, 0x67, 0x00, 0x18, +0xA1, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0x6A, 0xF2, +0x4F, 0xA2, 0x04, 0x72, 0x4C, 0x61, 0x00, 0x18, +0xF4, 0xC7, 0x01, 0x72, 0x48, 0x61, 0x90, 0x67, +0x00, 0x18, 0x78, 0xCC, 0x44, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x6A, 0xF2, 0x4F, 0xA2, 0x0E, 0x72, +0x07, 0x61, 0x00, 0x18, 0x64, 0xC5, 0x01, 0x72, +0x03, 0x61, 0x90, 0x67, 0x00, 0x18, 0x36, 0xC8, +0x30, 0xF0, 0x20, 0x6A, 0x6A, 0xF2, 0x4F, 0xA2, +0x06, 0x72, 0x03, 0x61, 0x90, 0x67, 0x00, 0x18, +0x7F, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0x6A, 0xF2, +0x4F, 0xA2, 0x0C, 0x72, 0x07, 0x61, 0x00, 0x18, +0x64, 0xC5, 0x01, 0x72, 0x03, 0x61, 0x90, 0x67, +0x00, 0x18, 0xA1, 0xC5, 0x30, 0xF0, 0x20, 0x6A, +0x6A, 0xF2, 0x4F, 0xA2, 0x04, 0x2A, 0x01, 0x6C, +0xB0, 0x67, 0x00, 0x18, 0x0B, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0x6A, 0xF2, 0x4F, 0xA2, 0x04, 0x72, +0x12, 0x61, 0x00, 0x18, 0xC0, 0xC5, 0x0F, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xC3, 0xF3, 0x6F, 0xA2, 0x0C, 0x73, 0x07, 0x61, +0xC3, 0xF3, 0x6C, 0xA2, 0x20, 0x6A, 0x6C, 0xEA, +0x02, 0x22, 0x80, 0x18, 0x0A, 0x40, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x24, 0x67, 0x4C, 0xED, 0x00, 0x6C, +0x4C, 0xE9, 0x04, 0xD5, 0x00, 0x18, 0xB2, 0xD6, +0x02, 0x67, 0x00, 0x18, 0xC7, 0xC7, 0x2D, 0x22, +0x16, 0x29, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF4, +0x04, 0x4A, 0x63, 0xA2, 0x84, 0x9A, 0xA6, 0x9A, +0x01, 0x4B, 0x63, 0xC2, 0x93, 0xE0, 0xE0, 0xF3, +0x08, 0x6B, 0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, +0x05, 0xDA, 0x12, 0xEB, 0xAD, 0xE3, 0x66, 0xDA, +0x80, 0x18, 0x0A, 0x40, 0x44, 0x10, 0x80, 0x18, +0x00, 0x40, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF4, +0x04, 0x4A, 0x85, 0x9A, 0xE0, 0xF3, 0x08, 0x6B, +0xA7, 0x9A, 0x93, 0xE0, 0x7B, 0xEC, 0x01, 0x2B, +0xE5, 0xE8, 0x04, 0xDA, 0x12, 0xEB, 0xAD, 0xE3, +0x67, 0xDA, 0x62, 0xA2, 0x01, 0x4B, 0x62, 0xC2, +0x2E, 0x10, 0x01, 0x71, 0x19, 0x61, 0x04, 0x96, +0x04, 0x6C, 0x01, 0x6D, 0x00, 0x18, 0x94, 0xCC, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF4, 0x04, 0x4A, +0x85, 0x9A, 0xE0, 0xF3, 0x08, 0x6B, 0xA7, 0x9A, +0x93, 0xE0, 0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, +0x04, 0xDA, 0x12, 0xEB, 0xAD, 0xE3, 0x67, 0xDA, +0x64, 0xA2, 0x01, 0x4B, 0x64, 0xC2, 0x13, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF4, 0x04, 0x4A, +0x84, 0x9A, 0xE0, 0xF3, 0x08, 0x6B, 0xA6, 0x9A, +0x93, 0xE0, 0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, +0x05, 0xDA, 0x12, 0xEB, 0xAD, 0xE3, 0x66, 0xDA, +0x65, 0xA2, 0x01, 0x4B, 0x65, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF4, 0x04, 0x4A, 0x66, 0x9A, +0x06, 0x23, 0x87, 0x9A, 0x7B, 0xEC, 0x01, 0x2B, +0xE5, 0xE8, 0x12, 0xEB, 0x63, 0xDA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF4, 0x04, 0x4A, +0x61, 0xA2, 0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, +0x00, 0x48, 0xC0, 0xF0, 0x32, 0xA0, 0x01, 0x4B, +0x61, 0xC2, 0x36, 0x31, 0x00, 0x18, 0xC7, 0xC7, +0x08, 0x22, 0x00, 0x18, 0xE2, 0xC7, 0x02, 0x22, +0x08, 0x6A, 0x01, 0x10, 0x0C, 0x6A, 0x43, 0xF4, +0x48, 0xC0, 0x00, 0x6C, 0x00, 0x18, 0x90, 0xC8, +0x00, 0x18, 0x4F, 0xC8, 0x00, 0x18, 0xE2, 0xC7, +0x08, 0x22, 0x91, 0x67, 0x00, 0x18, 0x58, 0xC8, +0x00, 0x6C, 0xB1, 0x67, 0x00, 0x18, 0x14, 0xCD, +0x07, 0x10, 0x01, 0x6C, 0xB1, 0x67, 0x00, 0x18, +0x14, 0xCD, 0x09, 0x6C, 0x00, 0x18, 0xAC, 0xDF, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0x04, 0x67, +0x00, 0x6C, 0x2C, 0xE8, 0xAC, 0xE9, 0x00, 0x18, +0xB2, 0xD6, 0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF4, +0x04, 0x4B, 0xA8, 0x9B, 0x30, 0xF0, 0x20, 0x6C, +0x83, 0xF2, 0x94, 0x9C, 0xB7, 0xE2, 0xA3, 0xEC, +0x01, 0x60, 0x48, 0xDB, 0x00, 0x18, 0xE2, 0xC7, +0x29, 0x22, 0x90, 0x67, 0x00, 0x18, 0xE6, 0xC7, +0x25, 0x22, 0x00, 0x18, 0x1B, 0xC8, 0x22, 0x22, +0x90, 0x67, 0xB1, 0x67, 0x00, 0x18, 0x76, 0xC8, +0x1D, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x43, 0xF4, 0x95, 0xA2, 0x43, 0xF4, +0x76, 0xA2, 0x63, 0xEC, 0x6F, 0xE4, 0x01, 0x60, +0x00, 0x6B, 0x43, 0xF4, 0x75, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xEA, 0xF2, 0x55, 0xA2, 0x0A, 0x2A, +0x90, 0x67, 0x00, 0x18, 0x58, 0xC8, 0x01, 0x6C, +0xB0, 0x67, 0x00, 0x18, 0x14, 0xCD, 0x01, 0x6C, +0x00, 0x18, 0x90, 0xC8, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF4, 0x04, 0x4A, 0x67, 0xA2, 0x01, 0x4B, +0x67, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x43, 0xF4, 0x97, 0xA2, 0xC0, 0xF0, +0xB2, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x43, 0xF4, 0x77, 0xC2, 0x00, 0x6C, 0xB6, 0x35, +0x00, 0x18, 0x14, 0xCD, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, +0x00, 0x4B, 0xC0, 0xF0, 0xA4, 0xA3, 0x04, 0x67, +0x7F, 0x6C, 0xAC, 0xEC, 0xFF, 0x6A, 0x01, 0x74, +0x4C, 0xE8, 0x20, 0x61, 0xC0, 0xF0, 0xA5, 0xA3, +0x10, 0x6C, 0x8B, 0xEC, 0xAC, 0xEC, 0x4C, 0xEC, +0x11, 0x24, 0xD0, 0x67, 0x0C, 0x6C, 0x00, 0x6D, +0x00, 0x18, 0x94, 0xCC, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, 0xFF, 0x6C, +0xC5, 0x67, 0x40, 0xEA, 0x90, 0x67, 0x00, 0x18, +0x05, 0xCC, 0x08, 0x10, 0xC3, 0xF3, 0x4F, 0xA3, +0x05, 0x2A, 0x04, 0x6C, 0x01, 0x6D, 0xD0, 0x67, +0x00, 0x18, 0x94, 0xCC, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0x00, 0x18, 0xA3, 0xCD, +0x00, 0x6C, 0xA4, 0x67, 0x00, 0x18, 0x63, 0xCB, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, +0x00, 0x48, 0x4C, 0xEC, 0x04, 0xD4, 0xC3, 0xF3, +0x91, 0xA0, 0x10, 0x6B, 0x8D, 0xEB, 0xE0, 0xF0, +0x80, 0xA0, 0xC3, 0xF3, 0x71, 0xC0, 0x01, 0x6B, +0x8C, 0xEB, 0x4C, 0xEB, 0x26, 0x23, 0xE0, 0xF0, +0x42, 0xA0, 0xFF, 0x72, 0x2C, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF2, 0x58, 0x9A, 0x00, 0x6B, +0x30, 0xF0, 0x20, 0x69, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF2, 0x5C, 0x9A, 0x04, 0x6B, +0xFF, 0x6C, 0x60, 0xC2, 0x00, 0xF3, 0x48, 0x99, +0x59, 0x4C, 0x00, 0x6D, 0x06, 0x6E, 0x40, 0xEA, +0xE0, 0xF0, 0xC2, 0xA0, 0x00, 0xF3, 0x48, 0x99, +0xFF, 0x6C, 0x55, 0x4C, 0x00, 0x6D, 0x06, 0x4E, +0x40, 0xEA, 0x04, 0x94, 0x00, 0x18, 0xBD, 0xDC, +0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x48, 0x9A, 0xC3, 0xF3, 0xD8, 0xA0, 0xFF, 0x6C, +0x55, 0x4C, 0x00, 0x6D, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x6A, 0xF2, 0x4F, 0xA2, 0x04, 0x6B, +0x6C, 0xEA, 0x05, 0x2A, 0x04, 0x96, 0x83, 0x67, +0x01, 0x6D, 0x00, 0x18, 0x94, 0xCC, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0x30, 0xF0, 0x20, 0x69, +0xA6, 0xF6, 0x00, 0x49, 0x04, 0xD4, 0xC0, 0xF0, +0x84, 0xA1, 0x00, 0x6B, 0xC3, 0xF3, 0x7D, 0xC1, +0x7F, 0x6B, 0x8C, 0xEB, 0x4C, 0xEB, 0x14, 0x23, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, +0xE0, 0xF0, 0x88, 0xA1, 0x01, 0x68, 0x40, 0xEA, +0x4E, 0xE8, 0x0A, 0x28, 0x04, 0x94, 0xC3, 0xF3, +0xB6, 0xA1, 0x00, 0x18, 0x93, 0xDE, 0x04, 0x94, +0xC3, 0xF3, 0x17, 0xC1, 0x00, 0x18, 0xC4, 0xCD, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xA6, 0xF6, 0x00, 0x48, 0xC0, 0xF0, 0x64, 0xA0, +0x00, 0x6A, 0xC3, 0xF3, 0x5D, 0xC0, 0x7F, 0x6A, +0xFF, 0x69, 0x6C, 0xEA, 0x2C, 0xEC, 0x2C, 0xEA, +0x04, 0xD4, 0x18, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x5C, 0x9A, 0xE0, 0xF0, 0x88, 0xA0, +0x40, 0xEA, 0x01, 0x72, 0x0F, 0x61, 0xC0, 0xF0, +0x65, 0xA0, 0x0F, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, +0x06, 0x22, 0xC3, 0xF3, 0x6D, 0xA0, 0x10, 0x6A, +0x6C, 0xEA, 0x2C, 0xEA, 0x03, 0x2A, 0x04, 0x94, +0x00, 0x18, 0xC4, 0xCD, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x69, 0x8C, 0xE9, 0x30, 0xF0, 0x20, 0x68, +0x91, 0x67, 0xA6, 0xF6, 0x00, 0x48, 0x00, 0x18, +0x05, 0xCC, 0xC3, 0xF3, 0x4F, 0xA0, 0x0C, 0x72, +0x21, 0x60, 0xD1, 0x67, 0x0C, 0x6C, 0x00, 0x6D, +0x00, 0x18, 0x94, 0xCC, 0x00, 0x6C, 0xA4, 0x67, +0x00, 0x18, 0x63, 0xCB, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, 0xC5, 0x67, +0xFF, 0x6C, 0x40, 0xEA, 0xC3, 0xF3, 0x6D, 0xA0, +0x01, 0x6A, 0xA0, 0xF0, 0x8A, 0xA0, 0x6D, 0xEA, +0xC3, 0xF3, 0x4D, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF4, 0x50, 0x9A, 0x00, 0x6D, 0x08, 0x6E, +0xF1, 0x67, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0xC0, 0xF0, 0xC4, 0xA3, +0x7F, 0x6D, 0xFF, 0x6A, 0xCC, 0xED, 0x01, 0x75, +0x4C, 0xEC, 0x16, 0x61, 0xC3, 0xF3, 0xD1, 0xA3, +0x01, 0x6D, 0xCD, 0xED, 0xC3, 0xF3, 0xB1, 0xC3, +0xC0, 0xF0, 0xA5, 0xA3, 0x10, 0x6B, 0x6B, 0xEB, +0xAC, 0xEB, 0x4C, 0xEB, 0x20, 0x73, 0x06, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, 0x40, 0x9A, +0x40, 0xEA, 0x02, 0x10, 0x00, 0x18, 0x20, 0xCE, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xFF, 0x6E, 0x8C, 0xEE, 0xEA, 0xF2, 0x88, 0xA2, +0x01, 0x6D, 0x00, 0x18, 0x94, 0xCC, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x24, 0x67, 0x30, 0xF0, +0x20, 0x6C, 0xA6, 0xF6, 0x00, 0x4C, 0xC3, 0xF3, +0xAC, 0xA4, 0x40, 0x6B, 0xFF, 0x6A, 0xAC, 0xEB, +0x4C, 0xEB, 0x4C, 0xE9, 0x09, 0x23, 0xC3, 0xF3, +0x8D, 0xA4, 0x10, 0x6B, 0x8C, 0xEB, 0x4C, 0xEB, +0x03, 0x23, 0x91, 0x67, 0x00, 0x18, 0xBD, 0xDC, +0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, +0xC3, 0xF3, 0x6C, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, +0x10, 0x22, 0x03, 0x6A, 0x4B, 0xEA, 0x4C, 0xEB, +0xC3, 0xF3, 0x6C, 0xC0, 0xC3, 0xF3, 0x71, 0xA0, +0x6C, 0xEA, 0xC3, 0xF3, 0x51, 0xC0, 0xC3, 0xF3, +0x51, 0xA0, 0x07, 0x6B, 0x6C, 0xEA, 0x65, 0x2A, +0x61, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, +0x98, 0x9A, 0xFF, 0xF7, 0x1F, 0x6A, 0x60, 0xAC, +0x4C, 0xEB, 0x01, 0x4B, 0x4C, 0xEB, 0x60, 0xCC, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, 0x88, 0x9B, +0x60, 0xAC, 0x4C, 0xEB, 0x01, 0x4B, 0x4C, 0xEB, +0x60, 0xCC, 0xE4, 0xF2, 0x5C, 0x98, 0xC3, 0xF3, +0x71, 0xA0, 0x01, 0x4A, 0xE4, 0xF2, 0x5C, 0xD8, +0xC3, 0xF3, 0x59, 0xA0, 0x01, 0x4A, 0xC3, 0xF3, +0x59, 0xC0, 0x11, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xC3, 0xF3, 0x51, 0xC0, 0xC3, 0xF3, 0x79, 0xA0, +0xC0, 0xF0, 0x4B, 0xA0, 0x63, 0xEA, 0x36, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, +0xE0, 0xF0, 0x88, 0xA0, 0x40, 0xEA, 0x01, 0x6B, +0x6E, 0xEA, 0x2F, 0x2A, 0xC0, 0xF0, 0x85, 0xA0, +0xEF, 0x4B, 0x8C, 0xEB, 0xFF, 0x6C, 0x8C, 0xEB, +0x07, 0x2B, 0xC3, 0xF3, 0x6C, 0xA0, 0xDF, 0x4A, +0x6C, 0xEA, 0xC3, 0xF3, 0x4C, 0xC0, 0x21, 0x10, +0xC3, 0xF3, 0x7A, 0xA0, 0x01, 0x4B, 0xC3, 0xF3, +0x7A, 0xC0, 0xC3, 0xF3, 0x7A, 0xA0, 0x02, 0x5B, +0x0A, 0x61, 0xC3, 0xF3, 0x8C, 0xA0, 0x21, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0xC3, 0xF3, 0x6C, 0xC0, +0xC3, 0xF3, 0x5A, 0xC0, 0x03, 0x10, 0x91, 0x67, +0x00, 0x18, 0x20, 0xCE, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x00, 0x6B, 0xC3, 0xF3, +0x79, 0xC2, 0x03, 0x10, 0x91, 0x67, 0x00, 0x18, +0x50, 0xCE, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xC2, 0xF4, 0x64, 0x9A, 0xC2, 0xF4, 0x04, 0x4A, +0xFF, 0x69, 0x04, 0xD3, 0x61, 0x9A, 0x44, 0xAA, +0x8C, 0xE9, 0x05, 0xD3, 0x7D, 0x67, 0x4C, 0xCB, +0x24, 0x32, 0x49, 0xE3, 0x68, 0xAA, 0x1F, 0xF7, +0x00, 0x6A, 0x6C, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x0B, 0x2A, 0x7D, 0x67, 0x24, 0x32, +0x49, 0xE3, 0x68, 0xAA, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF1, 0x5C, 0x9A, 0x49, 0xE3, 0x40, 0xAA, +0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, +0x40, 0x9A, 0x4D, 0xE3, 0x40, 0xAB, 0xFF, 0xF7, +0x1F, 0x68, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xEB, 0xF1, 0x70, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0x03, 0x22, 0xE7, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, +0x18, 0xF0, 0x00, 0x6A, 0x0C, 0xEA, 0x13, 0x2A, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, +0xC3, 0xF3, 0x91, 0xA3, 0xFE, 0x4A, 0x8C, 0xEA, +0x05, 0x6C, 0x8B, 0xEC, 0x8C, 0xEA, 0x02, 0x4C, +0x8C, 0xEA, 0xC3, 0xF3, 0x51, 0xC3, 0x91, 0x67, +0x00, 0x18, 0x50, 0xCE, 0x69, 0x10, 0x08, 0xF0, +0x00, 0x6A, 0x0C, 0xEA, 0x2F, 0x22, 0x02, 0x32, +0x5E, 0x32, 0x07, 0x2A, 0x04, 0x6C, 0x00, 0x18, +0xAC, 0xDF, 0x91, 0x67, 0x00, 0x18, 0x3C, 0xCE, +0x33, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF0, +0x84, 0x9A, 0x83, 0xF2, 0x7C, 0x9B, 0x8C, 0xEB, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF2, 0x80, 0x9C, +0x8E, 0xEB, 0x09, 0x2B, 0xC0, 0xF0, 0x65, 0xA2, +0x10, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, +0x6C, 0xEA, 0x10, 0x72, 0x19, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xC3, 0xF3, +0x91, 0xA2, 0x01, 0x6B, 0x8D, 0xEB, 0xC3, 0xF3, +0x71, 0xC2, 0x0E, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0xC3, 0xF3, 0x91, 0xA3, +0x02, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, 0x05, 0x6C, +0x8B, 0xEC, 0x8C, 0xEA, 0xC3, 0xF3, 0x51, 0xC3, +0x02, 0x30, 0x1E, 0x30, 0x1A, 0x20, 0x30, 0xF0, +0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, 0xC3, 0xF3, +0x51, 0xA0, 0x02, 0x69, 0xC0, 0xF0, 0xCC, 0xA0, +0x2D, 0xEA, 0xC3, 0xF3, 0x51, 0xC0, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, 0xFF, 0x6C, +0x55, 0x4C, 0x00, 0x6D, 0x40, 0xEA, 0xC3, 0xF3, +0x4C, 0xA0, 0x4D, 0xE9, 0xC3, 0xF3, 0x2C, 0xC0, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0xC3, 0xF3, 0x91, 0xA2, 0x03, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0xC3, 0xF3, 0x71, 0xC2, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xA2, 0xF4, 0x78, 0x9A, 0xA2, 0xF4, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x68, 0x04, 0xD3, 0x61, 0x9A, +0x44, 0xAA, 0xFF, 0x69, 0x05, 0xD3, 0x7D, 0x67, +0x4C, 0xCB, 0xA6, 0xF6, 0x00, 0x48, 0x30, 0xF0, +0x20, 0x6A, 0x8C, 0xE9, 0x80, 0xF3, 0x5C, 0x9A, +0xE0, 0xF0, 0x88, 0xA0, 0x40, 0xEA, 0x01, 0x72, +0xE0, 0xF0, 0x17, 0x61, 0xC0, 0xF0, 0x64, 0xA0, +0x7F, 0x6A, 0xFF, 0x6C, 0x6C, 0xEA, 0x8C, 0xEA, +0xE0, 0xF0, 0x0F, 0x22, 0x44, 0xF3, 0x70, 0xA0, +0x01, 0x6A, 0x6C, 0xEA, 0x8C, 0xEA, 0x04, 0x22, +0x02, 0x6A, 0x6D, 0xEA, 0x44, 0xF3, 0x50, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x66, 0xF7, 0x65, 0xA2, +0x0F, 0x6A, 0x6C, 0xEA, 0x01, 0x72, 0x3C, 0x61, +0x24, 0x32, 0xBD, 0x67, 0x49, 0xE5, 0x68, 0xAA, +0x1F, 0xF7, 0x00, 0x6A, 0x6C, 0xEA, 0x02, 0xF0, +0x00, 0x72, 0x01, 0x60, 0x0B, 0x2A, 0x7D, 0x67, +0x24, 0x32, 0x49, 0xE3, 0x68, 0xAA, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF1, 0x5C, 0x9A, 0x49, 0xE3, +0x60, 0x9A, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x40, 0x9A, 0x4D, 0xE3, 0x60, 0x9B, +0x04, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x0F, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF6, 0x62, 0x34, +0xA6, 0xF6, 0x00, 0x4A, 0x62, 0x33, 0xC3, 0xF3, +0x97, 0xC2, 0x62, 0x33, 0xFF, 0x6C, 0x8C, 0xEB, +0x02, 0x23, 0xC3, 0xF3, 0x76, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xC3, 0xF3, +0x77, 0xA2, 0x02, 0x2B, 0xC3, 0xF3, 0x76, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x6A, 0xF2, 0x77, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0xA4, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, +0x00, 0x6B, 0xC3, 0xF3, 0x79, 0xC0, 0xC3, 0xF3, +0x7A, 0xC0, 0x80, 0xAD, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xEC, 0x01, 0x4C, 0x4C, 0xEC, 0x80, 0xCD, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF2, 0xA8, 0x9C, +0x80, 0xAD, 0x4C, 0xEC, 0x01, 0x4C, 0x4C, 0xEC, +0x80, 0xCD, 0xE4, 0xF2, 0x58, 0x98, 0x11, 0x6C, +0x8B, 0xEC, 0x01, 0x4A, 0xE4, 0xF2, 0x58, 0xD8, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x4C, 0x9A, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, +0x5C, 0x9A, 0x02, 0x6B, 0x60, 0xC2, 0xC3, 0xF3, +0x71, 0xA0, 0x03, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x8C, 0xEA, 0x91, 0x67, 0xC3, 0xF3, 0x51, 0xC0, +0x00, 0x18, 0xA5, 0xCE, 0xC3, 0xF3, 0x6C, 0xA0, +0x40, 0x6A, 0x6C, 0xEA, 0x55, 0x22, 0xC3, 0xF3, +0x8D, 0xA0, 0x10, 0x6B, 0xFF, 0x6D, 0x44, 0x67, +0x6C, 0xEA, 0xAC, 0xEA, 0x22, 0x2A, 0xC3, 0xF3, +0x57, 0xA0, 0xC3, 0xF3, 0xB6, 0xA0, 0xAE, 0xEA, +0x47, 0x2A, 0x8D, 0xEB, 0x91, 0x67, 0xC3, 0xF3, +0x6D, 0xC0, 0x00, 0x18, 0x93, 0xDE, 0x91, 0x67, +0x00, 0x18, 0x8D, 0xDC, 0x00, 0x18, 0xE2, 0xC7, +0x06, 0x2A, 0x91, 0x67, 0x00, 0x18, 0xC4, 0xDC, +0x91, 0x67, 0x00, 0x18, 0xBD, 0xDC, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xC3, 0xF3, +0x77, 0xA2, 0xFF, 0x4B, 0xC3, 0xF3, 0x77, 0xC2, +0x2B, 0x10, 0xC0, 0xF0, 0x65, 0xA0, 0x0F, 0x6A, +0x6C, 0xEA, 0x01, 0x72, 0x25, 0x61, 0xC3, 0xF3, +0x57, 0xA0, 0x08, 0xD2, 0x08, 0x93, 0xC3, 0xF3, +0x56, 0xA0, 0x6E, 0xEA, 0x1D, 0x22, 0x91, 0x67, +0x00, 0x18, 0x88, 0xDE, 0x08, 0x94, 0x8E, 0xEA, +0x17, 0x22, 0xC3, 0xF3, 0x6C, 0xA0, 0x20, 0x6A, +0xFF, 0x6D, 0x6C, 0xEA, 0xAC, 0xEA, 0x10, 0x22, +0xC3, 0xF3, 0x6D, 0xA0, 0x11, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x91, 0x67, 0xC3, 0xF3, 0x4D, 0xC0, +0x00, 0x18, 0xB3, 0xDC, 0x91, 0x67, 0x00, 0x18, +0x9E, 0xDC, 0x91, 0x67, 0x00, 0x18, 0x97, 0xDC, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xC3, 0xF3, 0x8C, 0xA2, 0x01, 0x6B, 0xC3, 0xF3, +0x7D, 0xC2, 0x20, 0x6B, 0x8D, 0xEB, 0xC3, 0xF3, +0x6C, 0xC2, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0x2C, 0xEC, +0xAC, 0xE9, 0x50, 0x24, 0x30, 0xF0, 0x20, 0x68, +0xA6, 0xF6, 0x00, 0x48, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x5C, 0x9A, 0xE0, 0xF0, 0x88, 0xA0, +0x40, 0xEA, 0x01, 0x72, 0x43, 0x61, 0xC3, 0xF3, +0x6D, 0xA0, 0x05, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xC3, 0xF3, 0x4D, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x2B, 0x6E, 0xFF, 0x6C, +0x0F, 0x6D, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF4, 0x5C, 0x9A, 0x91, 0x67, 0x02, 0x6D, +0x40, 0xEA, 0x43, 0xF4, 0x4B, 0xA0, 0x01, 0x6E, +0x01, 0x2A, 0x08, 0x6E, 0x30, 0xF0, 0x20, 0x68, +0xA6, 0xF6, 0x00, 0x48, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF4, 0x50, 0x9A, 0xA0, 0xF0, 0x8A, 0xA0, +0x00, 0x6D, 0xF1, 0x67, 0x40, 0xEA, 0x01, 0x72, +0x0B, 0x61, 0xC3, 0xF3, 0x6D, 0xA0, 0x01, 0x6A, +0x01, 0x6C, 0x6D, 0xEA, 0x06, 0x6D, 0xC3, 0xF3, +0x4D, 0xC0, 0x00, 0x18, 0x17, 0xC5, 0x0E, 0x10, +0x43, 0xF4, 0x4B, 0xA0, 0x0B, 0x22, 0x06, 0x6D, +0x01, 0x6C, 0x00, 0x18, 0x17, 0xC5, 0x91, 0x67, +0x00, 0x18, 0x50, 0xCE, 0x00, 0x6C, 0x02, 0x6D, +0x00, 0x18, 0x28, 0xC8, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xFF, 0x69, 0xA6, 0xF6, +0x00, 0x48, 0x30, 0xF0, 0x20, 0x6A, 0x8C, 0xE9, +0x80, 0xF3, 0x5C, 0x9A, 0xE0, 0xF0, 0x88, 0xA0, +0x40, 0xEA, 0x01, 0x72, 0x12, 0x61, 0xC3, 0xF3, +0x6C, 0xA0, 0x21, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xC3, 0xF3, 0x4C, 0xC0, 0xC3, 0xF3, 0x4F, 0xA0, +0x04, 0x6B, 0x6C, 0xEA, 0x0C, 0x2A, 0x83, 0x67, +0x01, 0x6D, 0xD1, 0x67, 0x00, 0x18, 0x94, 0xCC, +0x06, 0x10, 0xC3, 0xF3, 0x6C, 0xA0, 0x20, 0x6A, +0x6D, 0xEA, 0xC3, 0xF3, 0x4C, 0xC0, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x68, 0x24, 0x67, 0x0C, 0xE9, 0x91, 0x67, +0x01, 0x6D, 0x00, 0x18, 0x20, 0xCC, 0x91, 0x67, +0x01, 0x6D, 0x00, 0x18, 0x4D, 0xCC, 0x30, 0xF0, +0x20, 0x6A, 0x8A, 0xF2, 0x60, 0xAA, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x44, 0x9A, 0x0C, 0xEB, +0x08, 0x6C, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF2, 0x70, 0x9A, 0x8B, 0xEC, 0x40, 0xA3, +0x0C, 0xEA, 0x8C, 0xEA, 0x05, 0x6C, 0x8D, 0xEA, +0x0C, 0xEA, 0x91, 0x67, 0x40, 0xC3, 0x00, 0x18, +0xC2, 0xCF, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0x24, 0x67, +0x0C, 0xE9, 0xAC, 0xE8, 0x69, 0x29, 0x90, 0x67, +0x00, 0x6D, 0x00, 0x18, 0x20, 0xCC, 0x90, 0x67, +0x00, 0x6D, 0x00, 0x18, 0x4D, 0xCC, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF2, 0x4C, 0x9A, 0x02, 0x6B, +0x20, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, +0x5C, 0x9A, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x43, 0xF4, 0x6B, 0xA2, +0x08, 0x23, 0xC3, 0xF3, 0x4F, 0xA2, 0x0C, 0x72, +0x04, 0x61, 0x00, 0x6C, 0xA4, 0x67, 0x00, 0x18, +0x28, 0xC8, 0x30, 0xF0, 0x20, 0x69, 0xA6, 0xF6, +0x00, 0x49, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x5C, 0x9A, 0xE0, 0xF0, 0x88, 0xA1, 0x40, 0xEA, +0x19, 0x2A, 0xC3, 0xF3, 0x4F, 0xA1, 0x04, 0x6B, +0x6C, 0xEA, 0x02, 0x2A, 0x00, 0x18, 0xEF, 0xDF, +0x90, 0x67, 0x00, 0x18, 0x72, 0xC5, 0x30, 0xF0, +0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, 0xC3, 0xF3, +0x8D, 0xA3, 0x02, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, +0x03, 0x6C, 0x8B, 0xEC, 0x8C, 0xEA, 0xC3, 0xF3, +0x4D, 0xC3, 0x05, 0x10, 0x0C, 0x6C, 0x01, 0x6D, +0xD0, 0x67, 0x00, 0x18, 0x94, 0xCC, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xC3, 0xF3, +0x8C, 0xA2, 0x05, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0xC3, 0xF3, 0x6C, 0xC2, 0xE0, 0xF0, 0x60, 0xA2, +0x01, 0x6A, 0x6C, 0xEA, 0x12, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF2, 0x58, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, +0x5C, 0x9A, 0x04, 0x6B, 0x60, 0xC2, 0x05, 0x10, +0x01, 0x71, 0x03, 0x61, 0x90, 0x67, 0x00, 0x18, +0xDA, 0xCF, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x30, 0xF0, +0x20, 0x68, 0x2C, 0xEC, 0xA6, 0xF6, 0x00, 0x48, +0x04, 0xD4, 0x00, 0x18, 0xAA, 0xCA, 0xC0, 0xF0, +0x84, 0xA0, 0x7F, 0x6A, 0x04, 0x95, 0x4C, 0xEC, +0x2C, 0xEC, 0x00, 0x18, 0xF1, 0xCF, 0xC0, 0xF0, +0x44, 0xA0, 0x7F, 0x6B, 0x6C, 0xEA, 0x2C, 0xEA, +0x05, 0x2A, 0x00, 0x6C, 0x01, 0x6D, 0x00, 0x18, +0x63, 0xCB, 0x0B, 0x10, 0xC0, 0xF0, 0x45, 0xA0, +0x0F, 0x6C, 0xC0, 0xF0, 0xA6, 0xA0, 0x4C, 0xEC, +0x2C, 0xEC, 0x00, 0x18, 0x4D, 0xC5, 0x00, 0x18, +0x12, 0xDF, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFF, 0x6B, 0x8C, 0xEB, +0x01, 0x73, 0x01, 0x6A, 0x0A, 0x60, 0x00, 0x6A, +0x08, 0x23, 0x30, 0xF0, 0x20, 0x6A, 0x6A, 0xF2, +0x4F, 0xA2, 0x01, 0x6B, 0x4E, 0x32, 0x6E, 0xEA, +0x6C, 0xEA, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xEC, +0x01, 0x74, 0x12, 0x60, 0x07, 0x24, 0x30, 0xF0, +0x20, 0x6B, 0x6A, 0xF2, 0x6F, 0xA3, 0x08, 0x6C, +0x8C, 0xEB, 0x0A, 0x23, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF2, 0x50, 0x9A, 0x55, 0xE5, 0x60, 0xA5, +0xEF, 0x6A, 0x6C, 0xEA, 0x40, 0xC5, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF2, 0x70, 0x9B, +0x10, 0x6C, 0x75, 0xE5, 0x60, 0xA5, 0x4C, 0xEB, +0x8D, 0xEB, 0x4C, 0xEB, 0x60, 0xC5, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF2, 0x54, 0x9A, 0xFF, 0x6B, 0x40, 0xA2, +0x6C, 0xEA, 0x52, 0x32, 0x6C, 0xEA, 0x11, 0x2A, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x54, 0x9A, 0x46, 0xF7, 0x89, 0xA3, +0x00, 0x6D, 0x18, 0x6E, 0xE5, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, 0x54, 0x9A, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x69, 0x2C, 0xEC, 0x2C, 0xED, 0x02, 0x5C, +0x04, 0xD4, 0x05, 0xD5, 0x4E, 0x60, 0x00, 0x18, +0x96, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF2, +0x78, 0x9B, 0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, +0x00, 0x48, 0x80, 0xAB, 0xFF, 0xF7, 0x1F, 0x6B, +0x8C, 0xEB, 0x4B, 0xE3, 0xA0, 0xF0, 0x6A, 0xA0, +0x2C, 0xEA, 0x6E, 0xEA, 0x3A, 0x2A, 0xC3, 0xF3, +0x4F, 0xA0, 0x0E, 0x72, 0x19, 0x61, 0x04, 0x92, +0x34, 0x2A, 0xC3, 0xF3, 0x6D, 0xA0, 0xFD, 0x4A, +0x05, 0x94, 0x6C, 0xEA, 0xC3, 0xF3, 0x4D, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x5C, 0x9A, +0x00, 0x6D, 0x40, 0xEA, 0x01, 0x6C, 0x0C, 0x6D, +0x00, 0x18, 0x17, 0xC5, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x91, 0x67, 0x1A, 0x10, +0x06, 0x72, 0x1B, 0x61, 0x04, 0x92, 0x19, 0x22, +0xC3, 0xF3, 0x6D, 0xA0, 0x02, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0xC3, 0xF3, 0x4D, 0xC0, 0x30, 0xF0, +0x20, 0x6A, 0x40, 0xF4, 0x5C, 0x9A, 0x05, 0x94, +0x01, 0x6D, 0x40, 0xEA, 0x04, 0x6A, 0xC3, 0xF3, +0x4F, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0xFF, 0x6C, 0x00, 0x6D, 0xC5, 0x67, +0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, +0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0xD2, +0xA3, 0xF2, 0x74, 0x9B, 0xFF, 0x6A, 0x4C, 0xEE, +0x05, 0xD6, 0x60, 0xA3, 0x05, 0x67, 0x27, 0x67, +0x4C, 0xEB, 0x72, 0x33, 0x4C, 0xEB, 0x4C, 0xE8, +0x4C, 0xE9, 0x40, 0x23, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF2, 0x70, 0x9B, 0x00, 0x6C, 0xFF, 0x6D, +0x60, 0xA3, 0x26, 0x6E, 0x6C, 0xEA, 0x06, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, +0x5C, 0x9A, 0x40, 0xEA, 0x01, 0x72, 0x1D, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0x94, 0x05, 0x96, +0xA0, 0xF2, 0x54, 0x9A, 0x04, 0x6F, 0x01, 0x6D, +0x40, 0xEA, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0x95, 0x40, 0xF4, 0x58, 0x9A, 0xD1, 0x67, +0x90, 0x67, 0x40, 0xEA, 0x90, 0x67, 0x00, 0x18, +0x47, 0xD0, 0x04, 0x94, 0xA2, 0x67, 0x00, 0x18, +0xA3, 0xE3, 0x04, 0x94, 0xB1, 0x67, 0x00, 0x18, +0xB2, 0xE3, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0x95, +0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6C, 0x27, 0x6E, +0x40, 0xEA, 0x90, 0x67, 0xB1, 0x67, 0x00, 0x18, +0x70, 0xD0, 0x21, 0x10, 0x90, 0x67, 0xB1, 0x67, +0x00, 0x18, 0x70, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0x94, 0x05, 0x96, 0xA0, 0xF2, 0x54, 0x9A, +0x04, 0x6F, 0x01, 0x6D, 0x40, 0xEA, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0x95, 0x40, 0xF4, +0x58, 0x9A, 0xD1, 0x67, 0x90, 0x67, 0x40, 0xEA, +0x90, 0x67, 0x00, 0x18, 0x47, 0xD0, 0x04, 0x94, +0xA2, 0x67, 0x00, 0x18, 0xA3, 0xE3, 0x04, 0x94, +0xB1, 0x67, 0x00, 0x18, 0xB2, 0xE3, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF3, 0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x83, 0xF3, 0x80, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF3, 0x84, 0x9C, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF3, 0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x83, 0xF3, 0x8C, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF1, 0x9C, 0x9C, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF3, 0x50, 0x9A, 0x01, 0x6B, 0x40, 0x9A, +0x80, 0xF5, 0x42, 0x32, 0x6E, 0xEA, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x80, 0xA4, 0x80, 0x18, 0x28, 0x09, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, +0x0E, 0x90, 0x24, 0x67, 0x4C, 0xE9, 0x03, 0x6B, +0x4C, 0xEF, 0x2C, 0xEB, 0x00, 0x6A, 0x0B, 0xD5, +0x0C, 0xD6, 0x04, 0xD7, 0x40, 0xC8, 0x00, 0x6A, +0x0A, 0x23, 0x28, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, +0x40, 0xA8, 0x01, 0x4A, 0x40, 0xC8, 0x1F, 0xF7, +0x00, 0x6A, 0x2C, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF1, 0x5C, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF1, 0x40, 0x9A, 0x49, 0xE1, +0x0B, 0x93, 0x40, 0x9A, 0x6C, 0xEA, 0x0C, 0x93, +0x6E, 0xEA, 0x04, 0x22, 0x40, 0xA8, 0x04, 0x93, +0x63, 0xEA, 0xDC, 0x61, 0x40, 0xA8, 0x04, 0x93, +0x63, 0xEA, 0x58, 0x67, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0x6A, 0xA0, 0x35, 0x4C, 0xEC, 0xA0, 0x35, +0xCC, 0xEA, 0x4D, 0xED, 0x05, 0x2C, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF4, 0x5C, 0x9A, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF4, 0x40, 0x9A, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0x84, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0x68, 0x9B, +0xAD, 0xEA, 0x40, 0xDC, 0x4C, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF4, 0x4C, 0x9A, 0x60, 0xDC, +0x00, 0x6B, 0x60, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0xFF, 0xF7, 0x1F, 0x6B, 0x8C, 0xEA, +0xAC, 0xEB, 0x05, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF1, 0x58, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF4, 0x50, 0x9A, 0x60, 0x33, +0x60, 0x33, 0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF4, 0x44, 0x9A, 0x00, 0x6C, 0x60, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF4, 0x54, 0x9A, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0x6C, 0x9B, +0x40, 0xA2, 0x80, 0xC3, 0xFF, 0x6B, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, +0x78, 0x9B, 0xFF, 0x6A, 0xCC, 0xEA, 0x6D, 0xEA, +0xE0, 0xF1, 0x1F, 0x6B, 0xAC, 0xEB, 0x60, 0x33, +0x60, 0x33, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF4, 0x04, 0x9B, 0x01, 0x6C, 0x40, 0xD8, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x40, 0xEA, 0x00, 0x6A, 0x40, 0xD8, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xE0, 0xF1, 0x1F, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xAC, 0xEA, 0x43, 0xF4, 0x7C, 0x9B, 0x40, 0x32, +0x40, 0x32, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF4, 0x04, 0x4B, 0x60, 0x9B, 0x30, 0xF0, +0x20, 0x68, 0x01, 0x6C, 0x40, 0xDB, 0x80, 0xF3, +0x4C, 0x98, 0xFF, 0x69, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF4, 0x54, 0x9A, 0x01, 0x6C, +0x40, 0xA2, 0x4C, 0xE9, 0x80, 0xF3, 0x4C, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF4, +0x04, 0x4C, 0x80, 0x9C, 0x00, 0x6A, 0x40, 0xDC, +0x07, 0x97, 0x51, 0x67, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, 0xC0, 0x9B, +0xFF, 0x6A, 0x04, 0x6D, 0x60, 0xA6, 0x4C, 0xEC, +0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC6, +0x11, 0x24, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, +0x90, 0x9B, 0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, +0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xC4, +0xA6, 0xF6, 0x00, 0x4A, 0x00, 0x6B, 0x42, 0xF6, +0x71, 0xC2, 0x0D, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF1, 0x70, 0x9A, 0xFB, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0xE9, 0xF4, 0x71, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xEA, 0xF2, 0xB8, 0xA2, 0x30, 0xF0, +0x20, 0x6C, 0x6A, 0xF2, 0x1E, 0x4C, 0x00, 0x18, +0xF0, 0xDD, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF4, +0x60, 0x9A, 0xFB, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x0E, 0x92, 0x0F, 0x91, 0x04, 0x67, 0x04, 0xD2, +0x04, 0x93, 0xFF, 0x6A, 0x4C, 0xE8, 0x4C, 0xEB, +0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, +0x5C, 0x9A, 0x0B, 0xD5, 0x0C, 0xD6, 0x0D, 0xD7, +0x04, 0xD3, 0x90, 0x67, 0x40, 0xEA, 0x80, 0xF0, +0x07, 0x22, 0x06, 0x58, 0x80, 0xF0, 0x04, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x08, 0x30, 0x62, 0xF6, +0x18, 0x4A, 0x09, 0xE2, 0x40, 0x9A, 0x00, 0xEA, +0x02, 0xF2, 0x10, 0x6A, 0x0E, 0x10, 0x02, 0xF2, +0x00, 0x6A, 0x0B, 0x10, 0x22, 0xF2, 0x00, 0x6A, +0x08, 0x10, 0x22, 0xF2, 0x10, 0x6A, 0x05, 0x10, +0x42, 0xF2, 0x00, 0x6A, 0x02, 0x10, 0x42, 0xF2, +0x10, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x0D, 0x94, +0x63, 0xF4, 0x64, 0x9B, 0x8C, 0xEB, 0x30, 0xF0, +0x20, 0x6C, 0x23, 0xF1, 0x90, 0x9C, 0x8D, 0xEB, +0x06, 0x21, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF4, +0x88, 0x9C, 0x6D, 0xEC, 0x05, 0x10, 0x30, 0xF0, +0x20, 0x6C, 0x63, 0xF4, 0x8C, 0x9C, 0x6C, 0xEC, +0x04, 0x96, 0x06, 0x26, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF4, 0x7C, 0x9B, 0x8D, 0xEB, 0x05, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, 0x70, 0x9B, +0x8C, 0xEB, 0x1F, 0xF7, 0x00, 0x6C, 0x4C, 0xEC, +0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, +0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF1, 0xBC, 0x9C, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF1, +0xA0, 0x9C, 0x30, 0xF0, 0x20, 0x6C, 0x0B, 0x96, +0x63, 0xF4, 0x94, 0x9C, 0xB5, 0xE2, 0xCC, 0xEC, +0x80, 0xDD, 0x84, 0x42, 0x1F, 0xF7, 0x00, 0x6D, +0xAC, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, +0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF4, +0xB8, 0x9C, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, +0x63, 0xF4, 0xBC, 0x9C, 0x30, 0xF0, 0x20, 0x6C, +0x0C, 0x96, 0x63, 0xF4, 0x94, 0x9C, 0xB5, 0xE2, +0xCC, 0xEC, 0x80, 0xDD, 0x87, 0x42, 0x01, 0x4C, +0x1F, 0xF7, 0x00, 0x6D, 0xAC, 0xEC, 0x02, 0xF0, +0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, +0x20, 0x6C, 0x83, 0xF4, 0x80, 0x9C, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF4, 0x84, 0x9C, +0x89, 0xE2, 0x60, 0xDA, 0x01, 0x6A, 0x01, 0x10, +0x00, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x01, 0x68, 0x04, 0xEC, +0x82, 0xF3, 0x08, 0x69, 0x1C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, +0xFF, 0x49, 0x40, 0xEA, 0x14, 0x29, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF2, 0x60, 0x9A, 0x08, 0xF0, +0x00, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xA3, 0xF3, 0x7C, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x7C, 0xDA, 0x00, 0x6A, 0x0B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF4, 0x48, 0x9A, 0x60, 0xAA, +0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, 0x0C, 0xEA, +0xDA, 0x2A, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x04, 0xF7, +0x10, 0x68, 0x1C, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x05, 0x6C, 0xFF, 0x48, +0x40, 0xEA, 0x14, 0x28, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF2, 0x60, 0x9A, 0x08, 0xF0, 0x00, 0x6C, +0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xA3, 0xF3, +0x7C, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, 0x7C, 0xDA, +0x00, 0x6A, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF4, 0x48, 0x9A, 0x60, 0xAA, 0x3F, 0x6A, +0x6C, 0xEA, 0xDC, 0x2A, 0x01, 0x6A, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF4, 0x48, 0x9A, +0x40, 0xAA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF4, 0x48, 0x9A, 0x40, 0xAA, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, 0x3C, 0x9A, +0x10, 0xF0, 0x23, 0x68, 0x69, 0xF0, 0x01, 0x48, +0x00, 0xD9, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x01, 0xF0, 0x54, 0x9A, 0x06, 0xF5, +0x84, 0x9B, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, +0x01, 0x4A, 0x03, 0x22, 0x01, 0x48, 0x00, 0xD9, +0xE7, 0x17, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF0, 0x3C, 0x9A, 0x10, 0xF0, 0x23, 0x68, +0xA9, 0xF0, 0x05, 0x48, 0x00, 0xD9, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x01, 0xF0, +0x54, 0x9A, 0x06, 0xF5, 0x80, 0x9B, 0x01, 0x6D, +0xAB, 0xED, 0x40, 0xEA, 0x01, 0x4A, 0x03, 0x22, +0x01, 0x48, 0x00, 0xD9, 0xE7, 0x17, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF0, 0x7C, 0x9B, 0x10, 0xF0, +0x23, 0x6A, 0xE9, 0xF0, 0x09, 0x4A, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x06, 0xF5, 0x8C, 0x9B, 0x01, 0xF0, 0x48, 0x9A, +0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF2, 0x64, 0x9B, 0xA0, 0xF0, +0x84, 0x9A, 0x8C, 0xEB, 0x09, 0x23, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF4, 0x70, 0x9B, 0x8C, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x80, 0x18, 0xB4, 0x07, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6A, +0x06, 0xF5, 0x8C, 0x98, 0x66, 0xF4, 0x58, 0x9A, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0xF5, +0x8C, 0x98, 0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xA0, 0xF0, 0x84, 0x9A, +0x08, 0x6B, 0x8C, 0xEB, 0x07, 0x23, 0x09, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, +0x80, 0x18, 0xB8, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x06, 0xF5, 0x8C, 0x9B, +0x66, 0xF4, 0x58, 0x9A, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF0, 0x7C, 0x9B, 0x10, 0xF0, +0x23, 0x6A, 0xE9, 0xF0, 0x0A, 0x4A, 0x40, 0xDB, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x00, 0x69, 0x00, 0x18, 0xB9, 0xC6, 0x00, 0x68, +0x00, 0x6C, 0x00, 0x18, 0x3A, 0xD2, 0x01, 0x48, +0xFF, 0x6A, 0x4C, 0xE8, 0x0A, 0x70, 0xF8, 0x61, +0x01, 0x6B, 0x6E, 0xE9, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF0, 0x7C, 0x9B, 0x4C, 0xE9, 0x10, 0xF0, +0x23, 0x6A, 0xA9, 0xF1, 0x11, 0x4A, 0x29, 0xE2, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0x06, 0xF5, 0x8C, 0x9B, 0x01, 0xF0, +0x48, 0x98, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, +0x80, 0x18, 0x35, 0x16, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x06, 0xF5, 0x8C, 0x9B, +0x66, 0xF4, 0x58, 0x9A, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x06, 0xF5, 0x8C, 0x9B, 0x01, 0xF0, +0x48, 0x98, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xA0, 0xF0, 0x84, 0x9A, 0x02, 0x6B, 0x8C, 0xEB, +0x09, 0x23, 0x03, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x80, 0x18, 0x81, 0x39, +0x80, 0x18, 0xD7, 0x39, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x6A, 0x06, 0xF5, 0x8C, 0x98, +0x66, 0xF4, 0x58, 0x9A, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x06, 0xF5, 0x8C, 0x98, 0x01, 0xF0, +0x48, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xA0, 0xF0, 0x84, 0x9A, 0x04, 0x6B, 0x8C, 0xEB, +0x09, 0x23, 0x05, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x00, 0x18, 0xB8, 0xD4, +0x00, 0x18, 0x40, 0xD5, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x6A, 0x06, 0xF5, 0x8C, 0x98, +0x66, 0xF4, 0x58, 0x9A, 0x40, 0xEA, 0x00, 0x1C, +0xAC, 0x39, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0xF5, +0x8C, 0x98, 0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x43, 0xF4, 0x88, 0xA2, +0xC3, 0xF3, 0x6F, 0xA2, 0x8E, 0xEB, 0x05, 0x23, +0xC0, 0xF0, 0x87, 0xA2, 0x96, 0x34, 0x00, 0x18, +0x50, 0xCE, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF7, +0x44, 0x9A, 0x02, 0x2A, 0x00, 0x18, 0x53, 0xCB, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6A, +0x06, 0xF5, 0x8C, 0x98, 0x66, 0xF4, 0x58, 0x9A, +0x40, 0xEA, 0x00, 0x1C, 0xAB, 0x39, 0x30, 0xF0, +0x20, 0x6A, 0x06, 0xF5, 0x8C, 0x98, 0x01, 0xF0, +0x48, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xA0, 0xF0, 0x84, 0x9A, 0x02, 0xF0, 0x00, 0x6B, +0x8C, 0xEB, 0x08, 0x23, 0x02, 0xF0, 0x01, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, +0x00, 0x18, 0x35, 0xDC, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x6A, 0x06, 0xF5, 0x8C, 0x98, +0x66, 0xF4, 0x58, 0x9A, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x06, 0xF5, 0x8C, 0x98, 0x01, 0xF0, +0x48, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0x7C, 0x9B, +0xA0, 0xF0, 0x84, 0x9A, 0x8C, 0xEB, 0x09, 0x23, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, 0x74, 0x9B, +0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x80, 0x18, +0xA2, 0x08, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6A, 0x06, 0xF5, 0x8C, 0x98, 0x66, 0xF4, +0x58, 0x9A, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x06, 0xF5, 0x8C, 0x98, 0x01, 0xF0, 0x48, 0x9A, +0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF4, 0x78, 0x9B, 0xA0, 0xF0, +0x84, 0x9A, 0x8C, 0xEB, 0x20, 0x23, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF4, 0x7C, 0x9B, 0x8C, 0xEB, +0xC0, 0xF0, 0x84, 0xA2, 0xA0, 0xF0, 0x64, 0xDA, +0x7F, 0x6B, 0x8C, 0xEB, 0x07, 0x2B, 0xC3, 0xF3, +0x4F, 0xA2, 0x0C, 0x72, 0x03, 0x61, 0x80, 0x18, +0x3C, 0x37, 0x0D, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6C, +0xA0, 0xF0, 0x64, 0x9A, 0x83, 0xF4, 0x98, 0x9C, +0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0xF5, +0x8C, 0x98, 0x66, 0xF4, 0x58, 0x9A, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x06, 0xF5, 0x8C, 0x98, +0x01, 0xF0, 0x48, 0x9A, 0x01, 0x6D, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x43, 0xF2, 0x18, 0xA2, 0x01, 0x6B, +0x04, 0xD2, 0x6E, 0xE8, 0x06, 0x28, 0x0B, 0x6C, +0x80, 0x18, 0xB2, 0x52, 0x04, 0x92, 0x43, 0xF2, +0x18, 0xC2, 0x80, 0x18, 0x43, 0x55, 0x80, 0x18, +0x5D, 0x55, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x06, 0xF5, 0x8C, 0x9B, 0x66, 0xF4, +0x58, 0x9A, 0x40, 0xEA, 0xB0, 0x16, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, 0x1C, 0x4A, +0x40, 0x9A, 0x10, 0xF0, 0x23, 0x68, 0x69, 0xF4, +0x01, 0x48, 0x00, 0xDA, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x01, 0x69, 0x01, 0xF0, +0x54, 0x9A, 0x06, 0xF5, 0x88, 0x9B, 0x2B, 0xE9, +0xB1, 0x67, 0x40, 0xEA, 0x01, 0x4A, 0x0A, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF6, 0x5C, 0x9A, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0x00, 0x1C, 0xAC, 0x39, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x06, 0xF5, 0x8C, 0x9B, 0x01, 0xF0, 0x48, 0x9A, +0xB1, 0x67, 0x01, 0x48, 0x40, 0xEA, 0x00, 0x18, +0xC2, 0xD3, 0x00, 0x18, 0xBE, 0xD3, 0x00, 0x18, +0xBA, 0xD3, 0x00, 0x18, 0xB6, 0xD3, 0x00, 0x18, +0xB2, 0xD3, 0x00, 0x18, 0xAE, 0xD3, 0xFC, 0x6C, +0x00, 0x18, 0x19, 0xC2, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x06, 0xF5, 0x8C, 0x9B, +0x66, 0xF4, 0x58, 0x9A, 0x40, 0xEA, 0x00, 0x1C, +0xAB, 0x39, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, +0x1C, 0x4A, 0x40, 0x9A, 0x00, 0xDA, 0xB0, 0x17, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x44, 0x9A, +0x01, 0x72, 0x0C, 0x61, 0xFC, 0x6C, 0x00, 0x18, +0x1E, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0x06, 0xF5, +0x88, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x44, 0x9A, +0x01, 0x72, 0x0C, 0x61, 0xFC, 0x6C, 0x00, 0x18, +0x1E, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0x06, 0xF5, +0x88, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x44, 0x9A, +0x01, 0x72, 0x0C, 0x61, 0xFC, 0x6C, 0x00, 0x18, +0x1E, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0x06, 0xF5, +0x88, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x44, 0x9A, +0x01, 0x72, 0x0E, 0x61, 0xFC, 0x6C, 0x00, 0x18, +0x1E, 0xC2, 0x00, 0x18, 0x25, 0xD7, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, +0x58, 0x9A, 0x06, 0xF5, 0x88, 0x9B, 0x40, 0xEA, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x44, 0x9A, 0x01, 0x72, 0x0E, 0x61, +0xFC, 0x6C, 0x00, 0x18, 0x1E, 0xC2, 0x00, 0x18, +0xF5, 0xD6, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x01, 0xF0, 0x58, 0x9A, 0x06, 0xF5, +0x88, 0x9B, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x44, 0x9A, 0x01, 0x72, 0x1D, 0x61, 0x30, 0xF0, +0x20, 0x68, 0xFC, 0x6C, 0xA6, 0xF6, 0x00, 0x48, +0x00, 0x18, 0x1E, 0xC2, 0x00, 0x18, 0xFC, 0xD6, +0x48, 0x98, 0x20, 0x6B, 0x6C, 0xEA, 0x07, 0x22, +0x00, 0x18, 0x18, 0xD9, 0x48, 0x98, 0x21, 0x6B, +0x6B, 0xEB, 0x6C, 0xEA, 0x48, 0xD8, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, +0x58, 0x9A, 0x06, 0xF5, 0x88, 0x9B, 0x40, 0xEA, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x44, 0x9A, +0xE1, 0xF7, 0x1F, 0x6B, 0x40, 0xAA, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x40, 0x9A, 0x60, 0x9A, 0xFF, 0xF7, +0x1F, 0x6A, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x58, 0x9A, +0x01, 0x6B, 0x40, 0x9A, 0x42, 0x32, 0x52, 0x32, +0x6E, 0xEA, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x64, 0x9B, +0x44, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x60, 0x9B, +0x63, 0xF4, 0x84, 0x9C, 0x8C, 0xEB, 0x43, 0xEB, +0x02, 0x60, 0x6F, 0xEB, 0x69, 0xE2, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x39, 0xE0, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x33, 0xE0, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x85, 0xE0, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x12, 0xE1, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x86, 0xE1, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x2D, 0xE0, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x03, 0x6F, 0x8C, 0xEF, 0x64, 0x67, 0x46, 0x67, +0x04, 0x27, 0x0B, 0x10, 0xA0, 0xDB, 0xFC, 0x4A, +0x04, 0x4B, 0x04, 0x5A, 0xFB, 0x60, 0x03, 0x6A, +0x4C, 0xEE, 0x03, 0x10, 0xA0, 0xC4, 0xFF, 0x4E, +0x01, 0x4C, 0xFC, 0x2E, 0x00, 0x6A, 0x20, 0xE8, +0xFF, 0x6A, 0xAC, 0xEA, 0x03, 0x10, 0x40, 0xC4, +0xFF, 0x4E, 0x01, 0x4C, 0xFC, 0x2E, 0x00, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, +0x03, 0x6B, 0x05, 0x67, 0x6C, 0xE8, 0x44, 0x67, +0xE4, 0x67, 0x85, 0x67, 0x12, 0x28, 0x4C, 0xEB, +0x10, 0x2B, 0x86, 0x67, 0x06, 0x10, 0x61, 0xE5, +0x00, 0x98, 0x7D, 0xE2, 0xFC, 0x4C, 0x00, 0xDF, +0x04, 0x4B, 0x04, 0x5C, 0xF8, 0x60, 0xCA, 0x34, +0x88, 0x34, 0x03, 0x6B, 0x9D, 0xE2, 0x6C, 0xEE, +0x91, 0xE5, 0x00, 0x6B, 0x06, 0x10, 0x61, 0xE4, +0x00, 0xA0, 0x75, 0xE7, 0xFF, 0x4E, 0x00, 0xC5, +0x01, 0x4B, 0xF9, 0x2E, 0x01, 0x90, 0x01, 0x63, +0x20, 0xE8, 0x00, 0x65, 0x09, 0x10, 0x60, 0xA4, +0x40, 0xA5, 0xFF, 0x4E, 0x4A, 0xEB, 0x02, 0x60, +0x4B, 0xE3, 0x20, 0xE8, 0x01, 0x4C, 0x01, 0x4D, +0xF6, 0x2E, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0x06, 0x2C, 0x64, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF4, 0x7C, 0xDA, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF4, 0x9C, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF4, 0x5C, 0x9A, 0x32, 0x72, +0x2A, 0x60, 0x33, 0x5A, 0x0C, 0x60, 0x14, 0x72, +0x2E, 0x60, 0x15, 0x5A, 0x03, 0x60, 0x0A, 0x72, +0x12, 0x60, 0x20, 0xE8, 0x19, 0x72, 0x17, 0x60, +0x28, 0x72, 0x25, 0x60, 0x20, 0xE8, 0x64, 0x72, +0x2A, 0x60, 0x65, 0x5A, 0x03, 0x60, 0x50, 0x72, +0x1E, 0x60, 0x20, 0xE8, 0x78, 0x72, 0x2B, 0x60, +0xC8, 0x72, 0x31, 0x60, 0x20, 0xE8, 0x02, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF4, 0x60, 0xDA, +0xE0, 0xF7, 0x1E, 0x4B, 0x31, 0x10, 0x09, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF4, 0x60, 0xDA, +0xE4, 0xF3, 0x17, 0x4B, 0x29, 0x10, 0x11, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF4, 0x60, 0xDA, +0xE8, 0xF3, 0x0F, 0x4B, 0x21, 0x10, 0x0D, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF4, 0x60, 0xDA, +0x06, 0xF4, 0x08, 0x4B, 0x19, 0x10, 0x22, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF4, 0x60, 0xDA, +0x11, 0xF0, 0x00, 0x6B, 0x11, 0x10, 0x28, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF4, 0x60, 0xDA, +0x14, 0xF0, 0x00, 0x6B, 0x09, 0x10, 0x43, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF4, 0x60, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x68, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF4, 0x64, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF4, 0x5C, 0x9A, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF4, 0x44, 0x9A, +0xFF, 0x63, 0x58, 0xEC, 0x12, 0xEA, 0x00, 0xD2, +0x00, 0x92, 0xFF, 0x4A, 0x00, 0xD2, 0x00, 0x92, +0xFB, 0x2A, 0x01, 0x63, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF4, 0x40, 0x9A, +0xFF, 0x63, 0x58, 0xEC, 0x12, 0xEA, 0x00, 0xD2, +0x00, 0x92, 0xFF, 0x4A, 0x00, 0xD2, 0x00, 0x92, +0xFB, 0x2A, 0x01, 0x63, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0xE9, 0xD3, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xED, +0x00, 0x18, 0xD0, 0xD3, 0x05, 0x97, 0x00, 0x6A, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x6A, 0x04, 0x67, 0x4C, 0xEE, +0x00, 0x18, 0xD5, 0xD3, 0x50, 0x67, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x00, 0x68, +0x20, 0x10, 0xE0, 0xF3, 0x08, 0x70, 0x13, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x60, 0x9A, +0x80, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xA3, 0xF3, 0x7C, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x7C, 0xDA, 0x00, 0x6A, 0x13, 0x10, 0xFF, 0xF7, +0x1F, 0x6A, 0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, +0x5C, 0x9A, 0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0xD8, 0x2A, 0x01, 0x6A, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFF, 0xF7, 0x1F, 0x6A, +0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6C, 0x63, 0xF3, 0x68, 0x9B, 0x83, 0xF7, +0x8C, 0x9C, 0x6D, 0xE5, 0x91, 0xE5, 0x00, 0x6E, +0xC0, 0xDB, 0x04, 0x4B, 0x8A, 0xEB, 0xFB, 0x61, +0xE7, 0xF7, 0x1F, 0x6B, 0x4C, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF1, 0x50, 0x9A, 0x10, 0x6C, +0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, +0x48, 0x9A, 0x49, 0xE5, 0x60, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF7, 0x50, 0x9A, 0xFF, 0x6B, +0x55, 0xE5, 0x40, 0xA5, 0x6C, 0xEA, 0x8D, 0xEA, +0x6C, 0xEA, 0x40, 0xC5, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF4, 0x69, 0xA2, +0x08, 0xD4, 0x30, 0xF0, 0x20, 0x69, 0x61, 0xC5, +0x01, 0x4B, 0xE6, 0xF4, 0x69, 0xC2, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF3, 0x88, 0x9B, 0x08, 0x93, +0x80, 0xF2, 0x4C, 0x99, 0x02, 0x6E, 0x91, 0xE3, +0x05, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF7, 0x94, 0x9B, 0x08, 0x93, 0xCE, 0xA0, +0x80, 0xF2, 0x4C, 0x99, 0xA2, 0x40, 0x91, 0xE3, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x24, 0x67, 0x00, 0x18, +0x48, 0xD4, 0x00, 0x6B, 0x46, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0x44, 0x9A, 0xFF, 0xF7, +0x1F, 0x6E, 0xFF, 0x6F, 0x00, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF4, 0x44, 0x9A, 0x10, 0x6C, +0x8B, 0xEC, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xA1, 0x40, 0x83, 0xF7, 0x58, 0x9A, 0x65, 0x67, +0xCC, 0xEB, 0x60, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF7, 0x5C, 0x9A, 0x60, 0xA2, 0xFA, 0x65, +0xA2, 0x32, 0xEC, 0xEB, 0x8C, 0xEB, 0x42, 0x32, +0x6D, 0xEA, 0xEC, 0xEA, 0x7F, 0x67, 0x40, 0xC3, +0x87, 0xA9, 0x02, 0x4C, 0xCC, 0xEC, 0x00, 0x18, +0x61, 0xD4, 0x87, 0x40, 0x12, 0x4C, 0xB1, 0x67, +0x00, 0x18, 0x78, 0xD4, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF2, 0x5C, 0x9A, 0x01, 0x6B, 0x80, 0xF2, +0x16, 0x6C, 0x60, 0xC2, 0x06, 0x02, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, +0x01, 0x6D, 0x00, 0x6E, 0x04, 0xF7, 0x10, 0x6F, +0x40, 0xEA, 0x4B, 0xEB, 0x4D, 0xEB, 0xC0, 0xF7, +0x62, 0x33, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x43, 0x67, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, 0xA0, 0xF6, +0x9E, 0xA0, 0xA0, 0xF6, 0x5F, 0xA0, 0x8E, 0xEA, +0x37, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, +0x40, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, +0x68, 0x9B, 0x40, 0x9A, 0x6C, 0xEA, 0x2C, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x90, 0x34, 0x47, 0xF0, +0x1E, 0x4A, 0x91, 0xE2, 0x00, 0x18, 0x8D, 0xD4, +0x1D, 0x22, 0xA0, 0xF6, 0x5E, 0xA0, 0x01, 0x4A, +0xA0, 0xF6, 0x5E, 0xC0, 0xA0, 0xF6, 0x7E, 0xA0, +0xA0, 0xF6, 0x5F, 0xA0, 0x6E, 0xEA, 0x06, 0x22, +0xA0, 0xF0, 0x44, 0x98, 0x04, 0x6B, 0x6D, 0xEA, +0xA0, 0xF0, 0x44, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xA0, 0xF6, 0x7E, 0xA2, +0x50, 0x6C, 0x8E, 0xEB, 0x09, 0x2B, 0xA0, 0xF6, +0x7E, 0xC2, 0x06, 0x10, 0xA0, 0xF0, 0x44, 0x98, +0x04, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, 0xA0, 0xF0, +0x44, 0x98, 0x04, 0x6B, 0xA4, 0x67, 0x6D, 0xEA, +0xA0, 0xF0, 0x44, 0xD8, 0xA0, 0xF6, 0x5E, 0xA8, +0x09, 0xF7, 0x00, 0x72, 0x07, 0x60, 0xA0, 0xF6, +0x5E, 0xA0, 0xA0, 0xF6, 0x9F, 0xA0, 0xFF, 0x4A, +0x8E, 0xEA, 0x13, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF2, 0x60, 0x9A, 0x00, 0xF2, 0x00, 0x6C, +0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xA3, 0xF3, +0x7C, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, 0x7C, 0xDA, +0x18, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x80, 0xF2, 0x4C, 0x9A, 0x47, 0xF0, +0x1E, 0x4B, 0x90, 0x34, 0x91, 0xE3, 0x10, 0x6E, +0x40, 0xEA, 0xA0, 0xF6, 0x5F, 0xA0, 0x50, 0x6B, +0x01, 0x4A, 0xA0, 0xF6, 0x5F, 0xC0, 0xA0, 0xF6, +0x5F, 0xA0, 0x6E, 0xEA, 0x02, 0x2A, 0xA0, 0xF6, +0x5F, 0xC0, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xE6, 0xF4, +0x48, 0xA3, 0xFF, 0x6F, 0xE0, 0xF0, 0xC7, 0xA5, +0x41, 0xC5, 0x43, 0xA5, 0xE6, 0xF4, 0x68, 0xA3, +0x03, 0x4A, 0xEC, 0xEA, 0x09, 0x10, 0xED, 0x42, +0xFF, 0x68, 0x0C, 0xEF, 0xFD, 0xE5, 0x64, 0xC7, +0xE6, 0xA7, 0x03, 0x4F, 0xE9, 0xE2, 0x0C, 0xEA, +0xEF, 0x46, 0xE2, 0xEA, 0xF4, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xE6, 0xF4, 0x68, 0xA2, 0x01, 0x4B, +0xE6, 0xF4, 0x68, 0xC2, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF3, 0x68, 0x9B, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0x71, 0xE4, 0x40, 0xEA, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x24, 0x67, 0x00, 0x18, 0x48, 0xD4, 0x00, 0x6B, +0x3C, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0x44, 0x9A, 0x0F, 0x6C, 0xFF, 0xF7, 0x1F, 0x6B, +0x00, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF4, +0x44, 0x9A, 0x4C, 0xE8, 0xA1, 0x40, 0xA2, 0x32, +0x42, 0x32, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x83, 0xF7, 0x98, 0x9C, 0xAC, 0xEB, 0x60, 0xCC, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF7, 0x7C, 0x9B, +0x40, 0xC3, 0xE0, 0xF0, 0x87, 0xA1, 0x00, 0x18, +0x61, 0xD4, 0x87, 0x40, 0x12, 0x4C, 0xB1, 0x67, +0x00, 0x18, 0x01, 0xD5, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF2, 0x5C, 0x9A, 0x01, 0x6B, 0x80, 0xF2, +0x16, 0x6C, 0x60, 0xC2, 0x06, 0x02, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, +0x01, 0x6D, 0x00, 0x6E, 0x04, 0xF7, 0x10, 0x6F, +0x40, 0xEA, 0x4B, 0xEB, 0x4D, 0xEB, 0xC0, 0xF7, +0x62, 0x33, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x43, 0x67, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, 0x42, 0xF5, +0x63, 0xA0, 0x42, 0xF5, 0x44, 0xA0, 0x6E, 0xEA, +0x3E, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, +0x40, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF2, +0x88, 0x9C, 0x40, 0x9A, 0x8C, 0xEA, 0x33, 0x2A, +0xE8, 0x6A, 0x58, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0x67, 0xF5, 0x00, 0x4A, 0x12, 0xEB, 0x71, 0xE2, +0x00, 0x18, 0x1A, 0xD5, 0x07, 0x2A, 0xA0, 0xF0, +0x44, 0x98, 0x04, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, +0x44, 0xD8, 0x21, 0x10, 0x42, 0xF5, 0x43, 0xA0, +0x10, 0x6B, 0x01, 0x4A, 0x42, 0xF5, 0x43, 0xC0, +0x42, 0xF5, 0x43, 0xA0, 0x6E, 0xEA, 0x02, 0x2A, +0x42, 0xF5, 0x43, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x42, 0xF5, 0x83, 0xA2, +0x42, 0xF5, 0x64, 0xA2, 0x8E, 0xEB, 0x07, 0x23, +0xA0, 0xF0, 0x64, 0x9A, 0x04, 0x6C, 0x8D, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x04, 0x10, 0x42, 0xF5, +0x82, 0xC2, 0x42, 0xF5, 0x60, 0xCA, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x42, 0xF5, 0x63, 0xA2, 0xA4, 0x67, 0x04, 0x2B, +0x42, 0xF5, 0x44, 0xA2, 0x0F, 0x72, 0x0B, 0x60, +0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, +0x42, 0xF5, 0x43, 0xA0, 0x42, 0xF5, 0x64, 0xA0, +0xFF, 0x4A, 0x6E, 0xEA, 0x15, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF2, 0x60, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x83, 0xF2, 0x8C, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xA3, 0xF3, 0x7C, 0x9A, +0x8D, 0xEB, 0xA3, 0xF3, 0x7C, 0xDA, 0xAC, 0x10, +0x23, 0xA5, 0xFF, 0xF7, 0x1F, 0x6A, 0x04, 0x49, +0x4C, 0xE9, 0x42, 0xF5, 0x40, 0xA8, 0x22, 0x2A, +0xE8, 0x6A, 0x58, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6C, 0x80, 0xF2, 0x4C, 0x9A, +0x67, 0xF5, 0x00, 0x4C, 0xFF, 0x6E, 0x2C, 0xEE, +0x12, 0xEB, 0x71, 0xE4, 0x40, 0xEA, 0x42, 0xF5, +0x44, 0xA0, 0x42, 0xF5, 0x63, 0xA0, 0x42, 0xF5, +0x20, 0xC8, 0x4E, 0xEB, 0x79, 0x2B, 0x01, 0x4A, +0x42, 0xF5, 0x44, 0xC0, 0x42, 0xF5, 0x44, 0xA0, +0x10, 0x6B, 0x6E, 0xEA, 0x71, 0x2A, 0x42, 0xF5, +0x44, 0xC0, 0x6E, 0x10, 0x62, 0xA5, 0x39, 0x2B, +0x4D, 0xE1, 0xE3, 0x53, 0x36, 0x60, 0x42, 0xF5, +0x62, 0xA0, 0xE8, 0x6C, 0x98, 0xEB, 0x12, 0xEB, +0x0D, 0xE3, 0xC0, 0xF6, 0x82, 0xA3, 0x2D, 0x2C, +0xC0, 0xF6, 0x83, 0xA3, 0xFF, 0x6E, 0xFC, 0x4A, +0xFF, 0x4C, 0xC0, 0xF6, 0x83, 0xC3, 0x42, 0xF5, +0x60, 0xA8, 0x42, 0xF5, 0x82, 0xA0, 0xCC, 0xEA, +0xFF, 0x4B, 0x42, 0xF5, 0x60, 0xC8, 0xE8, 0x6B, +0x78, 0xEC, 0x2C, 0xEE, 0x12, 0xEC, 0x91, 0xE0, +0x51, 0xE4, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0xC0, 0xF6, 0x03, 0x4C, 0x40, 0xEA, +0x42, 0xF5, 0x42, 0xA0, 0xE8, 0x6B, 0x78, 0xEA, +0x12, 0xEA, 0x09, 0xE2, 0xC0, 0xF6, 0x63, 0xA2, +0x6D, 0xE1, 0xC0, 0xF6, 0x63, 0xC2, 0x42, 0xF5, +0x40, 0xA8, 0x45, 0xE1, 0x42, 0xF5, 0x20, 0xC8, +0x33, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, +0x00, 0x48, 0x42, 0xF5, 0x84, 0xA0, 0xE8, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x58, 0xEC, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0x67, 0xF5, +0x00, 0x4B, 0xFF, 0x6E, 0x2C, 0xEE, 0x12, 0xEC, +0x91, 0xE3, 0x40, 0xEA, 0x42, 0xF5, 0x44, 0xA0, +0x10, 0x6B, 0x42, 0xF5, 0x20, 0xC8, 0x01, 0x4A, +0x42, 0xF5, 0x44, 0xC0, 0x42, 0xF5, 0x44, 0xA0, +0x6E, 0xEA, 0x02, 0x2A, 0x42, 0xF5, 0x44, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x42, 0xF5, 0x62, 0xA2, 0x10, 0x6C, 0x01, 0x4B, +0x42, 0xF5, 0x62, 0xC2, 0x42, 0xF5, 0x62, 0xA2, +0x8E, 0xEB, 0x02, 0x2B, 0x42, 0xF5, 0x62, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x42, 0xF5, 0x82, 0xA2, 0xE8, 0x6B, 0x78, 0xEC, +0x42, 0xF5, 0x80, 0xAA, 0x12, 0xEB, 0x4D, 0xE3, +0xA0, 0xF7, 0x87, 0xC3, 0xA0, 0xF0, 0x64, 0x9A, +0x04, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xED, +0xFF, 0x75, 0x4C, 0xEC, 0xCC, 0xEA, 0x06, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, +0x71, 0xE4, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0x71, 0xE4, 0x83, 0xF3, +0x78, 0xA4, 0xAC, 0xEA, 0xAF, 0xED, 0x6C, 0xED, +0xAD, 0xEA, 0x83, 0xF3, 0x58, 0xC4, 0x20, 0xE8, +0xFF, 0x6A, 0x4C, 0xEC, 0xFF, 0x74, 0xAC, 0xEA, +0x05, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x2A, 0xF2, +0x56, 0xC3, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0x83, 0xF3, 0xB6, 0xA3, +0x8C, 0xEA, 0x8F, 0xEC, 0xAC, 0xEC, 0x8D, 0xEA, +0x83, 0xF3, 0x56, 0xC3, 0x20, 0xE8, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x01, 0xA4, 0x20, 0xA4, 0x0C, 0x20, 0x90, 0x67, +0xB1, 0x67, 0x00, 0x18, 0xE6, 0xD5, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0x90, 0x67, +0xB1, 0x67, 0x53, 0x6E, 0x40, 0xEA, 0x7D, 0x67, +0x20, 0x6A, 0x50, 0xC3, 0x03, 0x6A, 0x4F, 0xCB, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, 0x50, 0x9A, +0x9D, 0x67, 0x40, 0xA2, 0x52, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x83, 0xF3, +0x76, 0xA2, 0x83, 0xF3, 0x57, 0xA2, 0x73, 0xC4, +0x54, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xF7, 0x63, 0x11, 0x62, 0x10, 0xD1, 0x0F, 0xD0, +0x40, 0xA4, 0x08, 0xD2, 0x08, 0x93, 0x1F, 0x6A, +0x4C, 0xEB, 0x08, 0xD3, 0x42, 0xA4, 0x61, 0xA4, +0x0B, 0xD2, 0x43, 0xA4, 0x84, 0xA4, 0x09, 0xD4, +0x08, 0x94, 0x08, 0x5C, 0x44, 0x60, 0x84, 0x31, +0x09, 0x94, 0x01, 0x2C, 0x28, 0x22, 0xFF, 0x68, +0x0C, 0xEA, 0x0C, 0xEB, 0xA2, 0x67, 0xC3, 0x67, +0x91, 0x67, 0x0C, 0xD2, 0x0D, 0xD3, 0x00, 0x18, +0xD9, 0xD5, 0x0B, 0x94, 0x09, 0x93, 0x41, 0x41, +0x0C, 0xEC, 0x0B, 0xD4, 0x0B, 0x96, 0x0C, 0xEA, +0x0C, 0xEB, 0x82, 0x67, 0xA3, 0x67, 0x30, 0xF0, +0x20, 0x68, 0x0A, 0xD2, 0x09, 0xD3, 0x00, 0x18, +0xD9, 0xD5, 0x40, 0xF4, 0x40, 0x98, 0x0C, 0x95, +0x0D, 0x96, 0x91, 0x67, 0x01, 0x6F, 0x40, 0xEA, +0x40, 0xF4, 0x40, 0x98, 0x0A, 0x94, 0x09, 0x95, +0x0B, 0x96, 0x02, 0x6F, 0x40, 0xEA, 0x91, 0x67, +0x00, 0x18, 0xC9, 0xDE, 0x7D, 0x67, 0x53, 0xC3, +0x42, 0x32, 0x54, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x45, 0xE1, 0x83, 0xF3, +0x58, 0xA1, 0x55, 0xC3, 0x83, 0xF3, 0x59, 0xA1, +0x56, 0xC3, 0xA3, 0xF3, 0x48, 0xA1, 0x57, 0xC3, +0xA3, 0xF3, 0x49, 0xA1, 0x58, 0xC3, 0x9D, 0x67, +0x21, 0x6A, 0x72, 0xA4, 0x50, 0xC4, 0x07, 0x6A, +0x4F, 0xCC, 0x20, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x08, 0x93, 0x6D, 0xEA, 0x52, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, +0x40, 0xEA, 0x11, 0x97, 0x10, 0x91, 0x0F, 0x90, +0x09, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0x04, 0x67, 0x30, 0xF0, 0x20, 0x6C, +0x66, 0xF7, 0x19, 0x4C, 0xB0, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0x81, 0xA0, 0x00, 0x18, 0x73, 0xC9, +0x82, 0xA0, 0x02, 0x24, 0x00, 0x18, 0x45, 0xC9, +0x83, 0xA0, 0x02, 0x24, 0x00, 0x18, 0xA2, 0xCA, +0x05, 0x97, 0x04, 0x90, 0x01, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0xEA, 0xF2, 0x79, 0xC2, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x1A, 0x6A, 0x7D, 0x67, 0x50, 0xC3, 0x00, 0xF0, +0x12, 0x04, 0x07, 0x6A, 0x4F, 0xCB, 0x80, 0x18, +0xA5, 0x56, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x19, 0x6A, 0x7D, 0x67, 0x50, 0xC3, 0x00, 0xF0, +0x12, 0x04, 0x08, 0x6A, 0x4F, 0xCB, 0x80, 0x18, +0x6E, 0x56, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, +0x05, 0x63, 0x00, 0xEF, 0xFF, 0xF7, 0x1F, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x8C, 0xEA, 0xE3, 0xF7, +0x7C, 0x9B, 0x30, 0xF0, 0x20, 0x6C, 0x04, 0xF0, +0x80, 0x9C, 0xCC, 0xEB, 0x40, 0xF6, 0xA0, 0x35, +0x8D, 0xEB, 0x1F, 0xF7, 0x00, 0x6C, 0x4C, 0xEC, +0x02, 0xF0, 0x00, 0x74, 0xAD, 0xEB, 0x01, 0x60, +0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF1, +0x9C, 0x9C, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, +0x63, 0xF1, 0x80, 0x9C, 0x89, 0xE2, 0x60, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0xF7, 0x1F, 0x6A, +0x8C, 0xEA, 0x1F, 0xF7, 0x00, 0x6C, 0x4C, 0xEC, +0xFF, 0x6B, 0x02, 0xF0, 0x00, 0x74, 0xAC, 0xEB, +0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, +0x43, 0xF1, 0x9C, 0x9C, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6C, 0x63, 0xF1, 0x80, 0x9C, 0x91, 0xE2, +0x00, 0x6D, 0xA0, 0xDC, 0x30, 0xF0, 0x20, 0x6C, +0xE3, 0xF7, 0x9C, 0x9C, 0xD4, 0x36, 0x40, 0xF6, +0x60, 0x33, 0x8C, 0xEE, 0x6D, 0xEE, 0x30, 0xF0, +0x20, 0x6B, 0x04, 0xF0, 0x60, 0x9B, 0x6D, 0xEE, +0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, 0x02, 0xF0, +0x00, 0x73, 0x01, 0x60, 0x05, 0x2B, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF1, 0x7C, 0x9B, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x60, 0x9B, +0x69, 0xE2, 0xC0, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0x0F, 0xF5, 0x00, 0x6B, 0x78, 0xEE, 0xFF, 0xF7, +0x1F, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0xE3, 0xF7, 0x9C, 0x9C, 0x40, 0xF6, 0xA0, 0x35, +0x12, 0xEB, 0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, +0x04, 0xF0, 0x80, 0x9C, 0xAD, 0xEB, 0x8D, 0xEB, +0x1F, 0xF7, 0x00, 0x6C, 0x4C, 0xEC, 0x02, 0xF0, +0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, +0x20, 0x6C, 0x43, 0xF1, 0x9C, 0x9C, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF1, 0x80, 0x9C, +0x89, 0xE2, 0x60, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, 0x44, 0x9A, +0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, +0x48, 0x9A, 0x40, 0x9A, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0x8C, 0xEA, 0x01, 0x72, 0x06, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, 0x44, 0x9A, +0x40, 0x9A, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF1, 0x48, 0x9A, 0x40, 0x9A, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, 0xCC, 0x9B, +0xFD, 0x63, 0xE2, 0xF7, 0x0C, 0x4B, 0x02, 0xD6, +0xC1, 0x9B, 0x64, 0xAB, 0xFF, 0x6A, 0x03, 0xD6, +0xDD, 0x67, 0x68, 0xCE, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF7, 0xC4, 0x9B, 0xE2, 0xF7, 0x04, 0x4B, +0x64, 0xA3, 0x4C, 0xEC, 0x00, 0xD6, 0xDD, 0x67, +0x64, 0xC6, 0x8D, 0xE6, 0xE0, 0xA3, 0x84, 0x33, +0x6D, 0xE6, 0xC4, 0xAB, 0x1F, 0xF7, 0x00, 0x6B, +0x4C, 0xED, 0xCC, 0xEB, 0x02, 0xF0, 0x00, 0x73, +0x01, 0x60, 0x0C, 0x2B, 0x5D, 0x67, 0x84, 0x34, +0x91, 0xE2, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0xAC, +0x43, 0xF1, 0x5C, 0x9A, 0x49, 0xE3, 0x60, 0xA2, +0xFF, 0x6A, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF1, 0x60, 0x9B, 0x79, 0xE6, 0x60, 0xA6, +0xE4, 0xED, 0x6C, 0xEA, 0xA7, 0x67, 0x4C, 0xED, +0x00, 0x6B, 0x01, 0x25, 0x01, 0x6B, 0xFF, 0x6A, +0x6C, 0xEA, 0x03, 0x63, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x69, 0x8C, 0xE9, 0x00, 0x68, 0xFF, 0x6A, +0x0C, 0xEA, 0x2E, 0xEA, 0x10, 0x2A, 0x91, 0x67, +0x00, 0x18, 0x97, 0xDC, 0x91, 0x67, 0x00, 0x18, +0x86, 0xDC, 0x91, 0x67, 0x00, 0x18, 0x9E, 0xDC, +0x91, 0x67, 0x00, 0x18, 0x68, 0xDC, 0x91, 0x67, +0x00, 0x18, 0x5E, 0xDC, 0x0F, 0x10, 0x90, 0x67, +0x00, 0x18, 0xBD, 0xDC, 0x90, 0x67, 0x00, 0x18, +0xAC, 0xDC, 0x90, 0x67, 0x00, 0x18, 0xC4, 0xDC, +0x90, 0x67, 0x00, 0x18, 0x7C, 0xDC, 0x90, 0x67, +0x00, 0x18, 0x72, 0xDC, 0x01, 0x48, 0x05, 0x70, +0xDA, 0x61, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0xF0, 0x94, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0xA0, 0x9C, 0x52, 0x9B, +0xAC, 0xEA, 0x53, 0xDB, 0x40, 0xDC, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0xD1, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF7, 0x20, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF3, 0x14, 0x4A, 0x40, 0x9A, +0x60, 0x99, 0x30, 0xF0, 0x20, 0x6C, 0xA0, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF0, 0x58, 0x9A, +0x04, 0xF0, 0x1C, 0x4C, 0x80, 0x9C, 0x00, 0x9A, +0x1A, 0x65, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0x9C, +0x24, 0xF0, 0x00, 0x4A, 0x40, 0x9A, 0x01, 0xD4, +0x30, 0xF0, 0x20, 0x6C, 0x40, 0x9A, 0xA6, 0xF6, +0xE0, 0x9C, 0x00, 0xD2, 0x44, 0x67, 0xA6, 0xF6, +0x00, 0x4A, 0xC1, 0x9A, 0x83, 0x9A, 0x6C, 0xEF, +0xAC, 0xEE, 0x01, 0x93, 0xA2, 0x9A, 0xE8, 0xDA, +0x6C, 0xEC, 0x0C, 0xED, 0x64, 0x9A, 0x00, 0x90, +0x8B, 0xDA, 0xC9, 0xDA, 0x0C, 0xEB, 0xAA, 0xDA, +0x6C, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, +0x14, 0x4A, 0x40, 0x9A, 0xE0, 0xD9, 0x18, 0x67, +0xC0, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF0, +0x1C, 0x4A, 0x40, 0x9A, 0xA0, 0xD8, 0x80, 0xDA, +0x30, 0xF0, 0x20, 0x6C, 0x24, 0xF0, 0x00, 0x4C, +0x80, 0x9C, 0x60, 0xDC, 0x05, 0x91, 0x04, 0x90, +0x03, 0x63, 0x20, 0xE8, 0xFF, 0x63, 0x01, 0xD1, +0x00, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, +0x1C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, +0xE4, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, +0xC8, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x80, 0x98, 0xB4, 0x9A, 0x60, 0x9F, +0x20, 0x9E, 0x8C, 0xED, 0x95, 0x9A, 0xB7, 0xDA, +0x6C, 0xEC, 0x76, 0x9A, 0x98, 0xDA, 0x2C, 0xEB, +0x79, 0xDA, 0xA0, 0xD8, 0x80, 0xDF, 0x60, 0xDE, +0x01, 0x91, 0x00, 0x90, 0x01, 0x63, 0x20, 0xE8, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xE0, 0xF0, 0x95, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, +0x06, 0x23, 0xA0, 0xF0, 0x64, 0x9A, 0x08, 0x6C, +0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x20, 0xE8, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x60, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF1, 0x9C, 0x9C, +0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xA3, 0xF3, +0x7C, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, 0x7C, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, +0x00, 0x48, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x5C, 0x9A, 0xE0, 0xF0, 0x88, 0xA0, 0x40, 0xEA, +0x01, 0x72, 0x1F, 0x61, 0xC0, 0xF0, 0x64, 0xA0, +0x7F, 0x6A, 0x6C, 0xEA, 0x1A, 0x22, 0xC3, 0xF3, +0x5D, 0xA0, 0x01, 0x6B, 0x6E, 0xEA, 0x15, 0x2A, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF2, 0x6C, 0x9B, +0xFF, 0x6C, 0x55, 0x4C, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF2, 0x5C, 0x9A, 0x02, 0x6B, +0x00, 0x6D, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF3, 0x48, 0x9A, 0xC0, 0xF0, 0xCC, 0xA0, +0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0x4C, 0xEC, 0x07, 0x6D, 0xB8, 0xEC, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, +0x01, 0x6E, 0x12, 0xEC, 0x71, 0xE4, 0x40, 0xF1, +0xA2, 0xA4, 0xCC, 0xED, 0x1D, 0x25, 0x40, 0xF1, +0xA3, 0xA4, 0x42, 0xF6, 0x6C, 0x9B, 0x40, 0xF1, +0x82, 0xA4, 0x75, 0xE5, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF2, 0x6C, 0x9B, 0xBC, 0x35, 0x21, 0x4D, +0x75, 0xE5, 0xE0, 0xA5, 0x9E, 0x33, 0x9A, 0x34, +0xCC, 0xEC, 0x78, 0x33, 0x9C, 0x34, 0x4C, 0xEF, +0x8D, 0xEB, 0xED, 0xEB, 0x00, 0xF6, 0x60, 0x33, +0x00, 0xF6, 0x63, 0x33, 0x4C, 0xEB, 0x60, 0xC5, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x66, 0xF7, 0xA4, 0xA3, +0x7F, 0x6B, 0xFF, 0x6A, 0xAC, 0xEB, 0x4C, 0xEB, +0x4C, 0xEC, 0x02, 0x23, 0x00, 0x18, 0xBD, 0xCD, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x69, 0x30, 0xF0, 0x20, 0x68, 0x2C, 0xEC, +0xA6, 0xF6, 0x00, 0x48, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0xD4, 0x80, 0xF3, 0x5C, 0x9A, 0xE0, 0xF0, +0x88, 0xA0, 0x40, 0xEA, 0x01, 0x72, 0x15, 0x61, +0xC0, 0xF0, 0x64, 0xA0, 0x7F, 0x6A, 0x6C, 0xEA, +0x2C, 0xEA, 0x0F, 0x22, 0xC3, 0xF3, 0x71, 0xA0, +0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xC3, 0xF3, +0x51, 0xC0, 0xC3, 0xF3, 0x51, 0xA0, 0x07, 0x6B, +0x6C, 0xEA, 0x03, 0x2A, 0x04, 0x94, 0x00, 0x18, +0x50, 0xCE, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x30, 0xF0, +0x20, 0x68, 0x2C, 0xEC, 0xA6, 0xF6, 0x00, 0x48, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0xD4, 0x80, 0xF3, +0x5C, 0x9A, 0xE0, 0xF0, 0x88, 0xA0, 0x40, 0xEA, +0x01, 0x72, 0x21, 0x61, 0xC0, 0xF0, 0x64, 0xA0, +0x7F, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x1B, 0x22, +0xC0, 0xF0, 0x85, 0xA0, 0x10, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0x2C, 0xEB, 0x20, 0x73, 0x08, 0x60, +0x01, 0x72, 0x06, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xF4, 0x40, 0x9A, 0x40, 0xEA, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x66, 0xF7, 0x64, 0xA2, +0x7F, 0x6A, 0x6C, 0xEA, 0x02, 0x72, 0x03, 0x60, +0x04, 0x94, 0x00, 0x18, 0x20, 0xCE, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x69, 0x30, 0xF0, 0x20, 0x68, 0x2C, 0xEC, +0xA6, 0xF6, 0x00, 0x48, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0xD4, 0x80, 0xF3, 0x5C, 0x9A, 0xE0, 0xF0, +0x88, 0xA0, 0x40, 0xEA, 0x01, 0x72, 0x35, 0x61, +0xC0, 0xF0, 0x64, 0xA0, 0x7F, 0x6A, 0x6C, 0xEA, +0x2C, 0xEA, 0x2F, 0x22, 0xC3, 0xF3, 0x5D, 0xA0, +0x01, 0x6B, 0x6E, 0xEA, 0x0B, 0x2A, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF2, 0x6C, 0x9B, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0x5C, 0x9A, +0x02, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xC3, 0xF3, 0x8C, 0xA2, +0x03, 0x6B, 0x6B, 0xEB, 0x6C, 0xEC, 0xC3, 0xF3, +0x8C, 0xC2, 0xC3, 0xF3, 0x91, 0xA2, 0x8C, 0xEB, +0xC3, 0xF3, 0x71, 0xC2, 0xC3, 0xF3, 0x51, 0xA2, +0x07, 0x6B, 0x6C, 0xEA, 0x04, 0x2A, 0x04, 0x94, +0x00, 0x18, 0x50, 0xCE, 0x06, 0x10, 0x00, 0x6C, +0x00, 0x18, 0xAC, 0xDF, 0x04, 0x94, 0x00, 0x18, +0x3C, 0xCE, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, 0x90, 0x67, +0x00, 0x18, 0x34, 0xC6, 0x16, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x05, 0xF3, +0x77, 0xA2, 0x0E, 0xEB, 0x05, 0x2B, 0x05, 0xF3, +0x75, 0xA2, 0x01, 0x4B, 0x05, 0xF3, 0x75, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x6A, 0xF2, 0x4F, 0xA2, +0x02, 0x72, 0x03, 0x60, 0x90, 0x67, 0x00, 0x18, +0x05, 0xCF, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0xEE, 0x35, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xA6, 0xF6, 0x00, 0x48, 0xC3, 0xF3, 0x6D, 0xA0, +0x02, 0x6A, 0xFF, 0x69, 0x6C, 0xEA, 0x2C, 0xEC, +0x2C, 0xEA, 0x04, 0xD4, 0x23, 0x22, 0x03, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xC3, 0xF3, 0x4D, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x44, 0x9A, +0x01, 0x6D, 0x40, 0xEA, 0xC3, 0xF3, 0x8D, 0xA0, +0x01, 0x6B, 0x4C, 0xEB, 0x09, 0x6A, 0x4B, 0xEA, +0x8C, 0xEA, 0xC0, 0xF0, 0x84, 0xA0, 0x6C, 0x33, +0x6D, 0xEA, 0x7F, 0x6B, 0x8C, 0xEB, 0x2C, 0xEB, +0xC3, 0xF3, 0x4D, 0xC0, 0x07, 0x23, 0x08, 0x6B, +0x4C, 0xEB, 0x2C, 0xEB, 0x03, 0x23, 0x04, 0x94, +0x00, 0x18, 0x50, 0xCE, 0x04, 0x95, 0x01, 0x6C, +0x80, 0x18, 0x87, 0x12, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, +0xC3, 0xF3, 0x6D, 0xA0, 0xFF, 0x69, 0x01, 0x6A, +0x8C, 0xE9, 0x6C, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, +0x2E, 0x22, 0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xC3, 0xF3, 0x4D, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF4, 0x44, 0x9A, 0x91, 0x67, 0x00, 0x6D, +0x40, 0xEA, 0xC3, 0xF3, 0x8D, 0xA0, 0x01, 0x6B, +0x6C, 0xEA, 0xFA, 0x4B, 0x48, 0x32, 0x8C, 0xEB, +0x4D, 0xEB, 0x04, 0x6A, 0x6C, 0xEA, 0xFF, 0x6C, +0x8C, 0xEA, 0xC3, 0xF3, 0x6D, 0xC0, 0x09, 0x22, +0x91, 0x67, 0x00, 0x18, 0x50, 0xCE, 0x43, 0xF4, +0x4B, 0xA0, 0x0D, 0x22, 0x00, 0x6C, 0xA4, 0x67, +0x08, 0x10, 0x43, 0xF4, 0x4B, 0xA0, 0x07, 0x22, +0x91, 0x67, 0x00, 0x18, 0x50, 0xCE, 0x00, 0x6C, +0x01, 0x6D, 0x00, 0x18, 0x28, 0xC8, 0xB1, 0x67, +0x00, 0x6C, 0x80, 0x18, 0x87, 0x12, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x00, 0x18, +0x8B, 0xD9, 0x02, 0x67, 0x01, 0x6A, 0x0C, 0xEA, +0x0E, 0x22, 0x00, 0x6C, 0x01, 0x6D, 0x00, 0x18, +0x17, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0xC3, 0xF3, 0x8E, 0xA2, 0x05, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0x0C, 0x10, 0x00, 0x6C, +0xA4, 0x67, 0x00, 0x18, 0x17, 0xC5, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xC3, 0xF3, +0x8E, 0xA2, 0x04, 0x6B, 0x8D, 0xEB, 0xC3, 0xF3, +0x6E, 0xC2, 0x40, 0x6A, 0x0C, 0xEA, 0x0F, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, 0x58, 0x9A, +0x60, 0xA2, 0x00, 0xF6, 0x60, 0x33, 0x00, 0xF6, +0x63, 0x33, 0x00, 0x53, 0x00, 0x6B, 0x02, 0x61, +0x80, 0x6B, 0x6B, 0xEB, 0x60, 0xC2, 0x10, 0x6B, +0x0C, 0xEB, 0x0C, 0x23, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x01, 0x6B, 0x43, 0xF4, +0x78, 0xC2, 0x04, 0x6B, 0xE3, 0xF3, 0x60, 0xCA, +0x01, 0x6E, 0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x43, 0xF4, 0x78, 0xC2, +0x03, 0x6B, 0xE3, 0xF3, 0x60, 0xCA, 0x03, 0x6E, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, 0x80, 0xA2, +0x83, 0xF1, 0x64, 0x9B, 0xFF, 0x6D, 0x08, 0x6F, +0x80, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, +0x90, 0x9B, 0xEB, 0xEF, 0x60, 0xA4, 0xAC, 0xEB, +0xEC, 0xEB, 0xCD, 0xEB, 0xAC, 0xEB, 0x60, 0xC4, +0x43, 0xF4, 0xB8, 0xA2, 0x30, 0xF0, 0x20, 0x6C, +0x6A, 0xF2, 0x1E, 0x4C, 0x00, 0x18, 0xF0, 0xDD, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xAC, 0xF1, 0x7C, 0xA2, 0x02, 0x6A, 0x6C, 0xEA, +0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, 0xDC, 0xDB, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x6E, 0xC1, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xD1, 0x08, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, +0xC0, 0xF0, 0x64, 0xA0, 0x7F, 0x6A, 0xFF, 0x69, +0x6C, 0xEA, 0x1E, 0x22, 0xC0, 0xF0, 0x87, 0xA0, +0x96, 0x34, 0x2C, 0xEC, 0x00, 0x18, 0xD9, 0xD9, +0x02, 0x6B, 0x4C, 0xEB, 0x2C, 0xEB, 0x07, 0x23, +0xC0, 0xF0, 0x87, 0xA0, 0x96, 0x34, 0x2C, 0xEC, +0x00, 0x18, 0x05, 0xCC, 0x0D, 0x10, 0xC0, 0xF0, +0x87, 0xA0, 0xC3, 0xF3, 0x6C, 0xA0, 0x05, 0x6A, +0x4B, 0xEA, 0x96, 0x34, 0x6C, 0xEA, 0x2C, 0xEC, +0xC3, 0xF3, 0x4C, 0xC0, 0x00, 0x18, 0x50, 0xCE, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xC0, 0xF0, 0x84, 0xA2, 0x7F, 0x6B, 0x8C, 0xEB, +0x07, 0x23, 0xC0, 0xF0, 0x87, 0xA2, 0xFF, 0x6A, +0x96, 0x34, 0x4C, 0xEC, 0x00, 0x18, 0x57, 0xCE, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x69, 0x2C, 0xEC, 0x06, 0x74, 0x5E, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, 0x7C, 0x9A, +0x01, 0x6C, 0x30, 0xF0, 0x20, 0x68, 0x40, 0xA3, +0xA6, 0xF6, 0x00, 0x48, 0x2C, 0xEA, 0x8D, 0xEA, +0x2C, 0xEA, 0x40, 0xC3, 0xE0, 0xF0, 0x72, 0xA0, +0x7F, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x2C, 0xEA, +0x81, 0x72, 0x5F, 0x61, 0xE0, 0xF0, 0x8F, 0xA0, +0x7F, 0x6A, 0x4C, 0xEC, 0x2C, 0xEC, 0x80, 0x18, +0xFD, 0x3A, 0x01, 0x72, 0x26, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, 0x32, 0x6C, +0x40, 0xEA, 0xE0, 0xF0, 0x8F, 0xA0, 0x7F, 0x6A, +0x4C, 0xEC, 0x2C, 0xEC, 0x80, 0x18, 0xFD, 0x3A, +0x48, 0x22, 0x00, 0x6C, 0x00, 0x18, 0x6B, 0xD1, +0xE0, 0xF0, 0x6E, 0xA0, 0x20, 0x6A, 0x6C, 0xEA, +0x2C, 0xEA, 0x3F, 0x2A, 0xE0, 0xF0, 0x8F, 0xA0, +0x7F, 0x6A, 0x4C, 0xEC, 0x2C, 0xEC, 0x80, 0x18, +0x14, 0x3B, 0xE0, 0xF0, 0x8F, 0xA0, 0x7F, 0x6A, +0x4C, 0xEC, 0x2C, 0xEC, 0x80, 0x18, 0x1F, 0x3B, +0x30, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x48, 0x9A, 0x32, 0x6C, 0x40, 0xEA, 0xE0, 0xF0, +0x8F, 0xA0, 0x7F, 0x6A, 0x4C, 0xEC, 0x2C, 0xEC, +0x80, 0x18, 0xFD, 0x3A, 0x01, 0x72, 0x21, 0x60, +0x01, 0x6C, 0x00, 0x18, 0x6B, 0xD1, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF2, 0x88, 0x9A, 0x80, 0x18, +0x9E, 0x57, 0x17, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x05, 0xF3, 0x78, 0xA2, +0x6E, 0xEC, 0x0F, 0x2C, 0xE0, 0xF0, 0x92, 0xA2, +0x10, 0x6B, 0x8C, 0xEB, 0x2C, 0xEB, 0x09, 0x2B, +0x30, 0xF0, 0x20, 0x6C, 0xA0, 0xF0, 0x64, 0x9A, +0xC3, 0xF1, 0x9C, 0x9C, 0x8D, 0xEB, 0xA0, 0xF0, +0x64, 0xDA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x66, 0xF7, +0x47, 0xA2, 0xFF, 0x68, 0x8C, 0xE8, 0x56, 0x32, +0x0E, 0xEA, 0x06, 0x2A, 0x90, 0x67, 0x00, 0x18, +0x07, 0xCE, 0x00, 0x6C, 0x00, 0x18, 0x26, 0xC6, +0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, 0x6F, 0xCD, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0x6D, 0x3D, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x15, 0xD2, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x12, 0xD2, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0x1A, 0x37, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0x64, 0x36, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, +0x24, 0x67, 0xC0, 0xF0, 0x87, 0xA3, 0xFF, 0x6A, +0x4C, 0xE9, 0x96, 0x34, 0x2E, 0xEC, 0x0F, 0x2C, +0xC0, 0xF0, 0xA4, 0xA3, 0x7F, 0x6C, 0xAC, 0xEC, +0x4C, 0xEC, 0x09, 0x24, 0xC3, 0xF3, 0x8C, 0xA3, +0x40, 0x6B, 0x8C, 0xEB, 0x4C, 0xEB, 0x03, 0x23, +0x91, 0x67, 0x00, 0x18, 0xBD, 0xDC, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x05, 0xF3, +0x7D, 0xA2, 0x2E, 0xEB, 0x11, 0x2B, 0x05, 0xF3, +0x7C, 0xA2, 0x1F, 0x6C, 0x6A, 0x32, 0x8C, 0xEA, +0x47, 0xE9, 0x01, 0x6C, 0x8C, 0xEA, 0x08, 0x22, +0x02, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, +0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, 0xDC, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xAC, 0xF1, 0x57, 0xA2, +0x2E, 0xEA, 0x03, 0x2A, 0x91, 0x67, 0x80, 0x18, +0xC3, 0x12, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x05, 0xF3, 0x10, 0xA2, 0x04, 0xD2, +0x2E, 0xE8, 0x06, 0x28, 0x91, 0x67, 0x80, 0x18, +0xFA, 0x0F, 0x04, 0x92, 0x05, 0xF3, 0x12, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF7, 0x47, 0xA2, +0x2E, 0xEA, 0x03, 0x2A, 0x91, 0x67, 0x80, 0x18, +0x9E, 0x15, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0x00, 0x18, 0x20, 0xD9, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0x63, 0x01, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF2, 0x6C, 0x9B, 0xFF, 0x6A, 0x4C, 0xEE, +0x6D, 0xE4, 0x08, 0x68, 0x80, 0xA3, 0xDB, 0xE0, +0x02, 0x67, 0x4C, 0xED, 0x07, 0xEE, 0xD0, 0x67, +0x4C, 0xEF, 0x04, 0xED, 0x4C, 0xEC, 0xCC, 0xEF, +0x0F, 0xE8, 0x8C, 0xE8, 0xE4, 0xED, 0xED, 0xE8, +0x4C, 0xE8, 0x00, 0xC3, 0x01, 0x90, 0x01, 0x63, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF2, 0x4C, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, +0x8C, 0xEB, 0x4D, 0xE3, 0x40, 0xA3, 0xFF, 0x6C, +0x8C, 0xEE, 0x08, 0x6B, 0xDB, 0xE3, 0x8C, 0xED, +0x8C, 0xEA, 0x64, 0x67, 0x47, 0xED, 0x67, 0xEE, +0x6C, 0xEA, 0x8C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF0, 0x7C, 0x9B, 0x10, 0xF0, +0x23, 0x6A, 0xAC, 0xF5, 0x19, 0x4A, 0x40, 0xDB, +0x00, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF0, +0x50, 0x9A, 0x40, 0x9A, 0x21, 0x22, 0xE0, 0xF3, +0x09, 0x70, 0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF2, 0x60, 0x9A, 0x20, 0x6C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xA3, 0xF3, 0x7C, 0x9A, +0x8D, 0xEB, 0xA3, 0xF3, 0x7C, 0xDA, 0x00, 0x6A, +0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x32, 0x6C, 0x01, 0x48, 0x40, 0xEA, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0xD9, 0x17, +0x01, 0x6A, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF0, 0x7C, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0x2C, 0xF6, 0x0D, 0x4A, 0x40, 0xDB, 0x00, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF0, 0xB4, 0x9A, +0xFF, 0x6C, 0x40, 0xA5, 0xA0, 0xA5, 0x8C, 0xEA, +0xAC, 0xEC, 0x4E, 0xEC, 0x19, 0x24, 0x64, 0x73, +0x12, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, +0x80, 0x9B, 0x40, 0x6D, 0x60, 0x9C, 0xAD, 0xEB, +0x60, 0xDC, 0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, +0x00, 0x4B, 0xA3, 0xF3, 0x9C, 0x9B, 0xAD, 0xEC, +0xA3, 0xF3, 0x9C, 0xDB, 0x20, 0xE8, 0x01, 0x4B, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEB, 0xDC, 0x17, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0x8C, 0xE9, +0x00, 0x68, 0x2B, 0x10, 0x82, 0xF3, 0x08, 0x70, +0x12, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, +0x60, 0x9A, 0x10, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0xA3, 0xF3, 0x7C, 0x9A, 0x8D, 0xEB, +0xA3, 0xF3, 0x7C, 0xDA, 0x14, 0x10, 0xFF, 0xF7, +0x1F, 0x6A, 0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, +0x40, 0xEA, 0x33, 0x58, 0x0A, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF7, 0x58, 0x9A, 0x01, 0x6B, +0x40, 0xA2, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x6A, +0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF0, +0x58, 0x9A, 0x01, 0x6B, 0x40, 0x9A, 0x42, 0x32, +0x5E, 0x32, 0x6C, 0xEA, 0x2E, 0xEA, 0xCA, 0x2A, +0x43, 0x67, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF0, 0x7C, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0x0C, 0xF7, 0x15, 0x4A, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x44, 0xF0, 0x5C, 0x9A, 0x60, 0xA2, +0x01, 0x6A, 0x6C, 0xEA, 0xF8, 0x2A, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF0, 0x7C, 0x9B, 0x10, 0xF0, +0x23, 0x6A, 0x0C, 0xF7, 0x16, 0x4A, 0x40, 0xDB, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, +0x94, 0x34, 0x4C, 0xED, 0x4C, 0xEC, 0x30, 0xF0, +0x20, 0x6A, 0x64, 0xF0, 0x40, 0x9A, 0x80, 0xC2, +0xA0, 0xC2, 0x20, 0xE8, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x64, 0xF0, 0x60, 0x9B, 0x4C, 0xEC, +0x94, 0x34, 0x4C, 0xEC, 0x80, 0xC3, 0x60, 0xA3, +0x6C, 0xEA, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xED, +0xFF, 0x75, 0x4C, 0xEC, 0xCC, 0xEA, 0x06, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, +0x71, 0xE4, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0x71, 0xE4, 0xA3, 0xF3, +0x68, 0xA4, 0xAC, 0xEA, 0xAF, 0xED, 0x6C, 0xED, +0xAD, 0xEA, 0xA3, 0xF3, 0x48, 0xC4, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6B, +0x6C, 0xEC, 0x07, 0x6A, 0x6C, 0xED, 0x8C, 0xEA, +0x01, 0x68, 0xE6, 0x67, 0x04, 0xEA, 0xAB, 0xEE, +0x30, 0xF0, 0x20, 0x6A, 0xAD, 0xEE, 0x40, 0xF4, +0x40, 0x9A, 0x6C, 0xE8, 0xC0, 0xF7, 0xC3, 0x36, +0x8E, 0x34, 0x6C, 0xEF, 0xB0, 0x67, 0x0C, 0xEE, +0x6C, 0xEC, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x00, 0x18, 0xC5, 0xD9, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF4, 0x60, 0x9A, +0xEF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, +0x00, 0x6C, 0x00, 0x18, 0xA3, 0xD9, 0x00, 0x18, +0xE2, 0xC7, 0x2B, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x66, 0xF7, 0x72, 0xA2, 0x08, 0x6A, 0x6C, 0xEA, +0xFF, 0x6B, 0x6C, 0xEA, 0x22, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x64, 0xF0, 0x64, 0x9A, 0x7F, 0xF7, +0x1F, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0x80, 0xAB, +0x07, 0x69, 0x8C, 0xEA, 0x40, 0xCB, 0x80, 0xF3, +0x4C, 0x98, 0x0A, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF5, 0x44, 0x9A, 0x0A, 0x6C, +0x20, 0xC2, 0x80, 0xF3, 0x4C, 0x98, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF5, 0x48, 0x9A, +0x0A, 0x6C, 0x20, 0xC2, 0x80, 0xF3, 0x4C, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0xC3, 0xF3, 0x8C, 0xA2, 0x7F, 0x6B, +0x8C, 0xEB, 0xC3, 0xF3, 0x6C, 0xC2, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, +0xC3, 0xF3, 0x6C, 0xA0, 0x80, 0x6A, 0x4B, 0xEA, +0x6D, 0xEA, 0xC3, 0xF3, 0x4C, 0xC0, 0x43, 0xF4, +0x58, 0xA0, 0x04, 0xD2, 0x80, 0xF0, 0x01, 0x22, +0x02, 0x6A, 0xC3, 0xF3, 0x50, 0xC0, 0x5C, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x7D, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, +0x21, 0x6C, 0xFC, 0xF7, 0x18, 0x4C, 0xBF, 0x67, +0xA0, 0xDC, 0x9A, 0xB8, 0x00, 0x65, 0xBB, 0xB8, +0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, +0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF2, +0x84, 0x9C, 0x40, 0x9B, 0x10, 0x6D, 0x8D, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, +0x58, 0x9A, 0x04, 0x6B, 0xFF, 0x6C, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x00, 0x6B, 0x42, 0xF6, 0x72, 0xC2, 0xC3, 0xF3, +0x7E, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF0, +0x48, 0x9A, 0x60, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF4, 0x60, 0x9A, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x6C, +0x00, 0x18, 0xA3, 0xD9, 0xA0, 0xF0, 0x0E, 0x22, +0x58, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x79, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x30, 0xF0, 0x21, 0x69, 0xDC, 0xF7, 0x0C, 0x49, +0x12, 0xE8, 0x00, 0xD9, 0x10, 0xE8, 0x01, 0xD9, +0x42, 0xD9, 0x63, 0xD9, 0x84, 0xD9, 0xA5, 0xD9, +0xC6, 0xD9, 0xE7, 0xD9, 0x18, 0x67, 0x08, 0xD9, +0x1A, 0xB8, 0x00, 0x65, 0x09, 0xD9, 0x30, 0xF0, +0x21, 0x68, 0xDC, 0xF7, 0x0C, 0x48, 0x3B, 0xB8, +0x00, 0x65, 0x2A, 0xD8, 0x1A, 0xB8, 0x00, 0x65, +0x58, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x79, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x77, 0xF0, 0x20, 0x68, 0x80, 0xF0, 0x10, 0x48, +0x00, 0x98, 0x01, 0x69, 0x2D, 0xE8, 0x77, 0xF0, +0x20, 0x69, 0x80, 0xF0, 0x10, 0x49, 0x00, 0xD9, +0x1A, 0xB8, 0x00, 0x65, 0x3B, 0xB8, 0x00, 0x65, +0x48, 0x10, 0x01, 0x6A, 0xC3, 0xF3, 0x50, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x7E, 0xA8, +0x64, 0xF0, 0x48, 0x9A, 0x60, 0xCA, 0x00, 0x18, +0xE2, 0xC7, 0x23, 0x22, 0xC0, 0xF0, 0x72, 0xA0, +0x08, 0x6A, 0x6C, 0xEA, 0x1E, 0x22, 0x7D, 0x67, +0x87, 0x43, 0x09, 0x4C, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xA4, 0xC3, 0xF5, 0x44, 0x9A, 0x9D, 0x67, +0x80, 0x6D, 0x60, 0xC2, 0x67, 0x44, 0x09, 0x4B, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xA3, 0xC3, 0xF5, +0x48, 0x9A, 0x80, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x64, 0xF0, 0x64, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, +0x40, 0xAB, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF4, +0x60, 0x9A, 0xFF, 0x68, 0x10, 0x6C, 0x40, 0xA3, +0x0C, 0xEA, 0x8D, 0xEA, 0x0C, 0xEA, 0x40, 0xC3, +0x01, 0x6C, 0x00, 0x18, 0xA3, 0xD9, 0x30, 0xF0, +0x20, 0x6A, 0x44, 0xF0, 0x7C, 0x9A, 0x01, 0x6C, +0x40, 0xA3, 0x0C, 0xEA, 0x8D, 0xEA, 0x0C, 0xEA, +0x40, 0xC3, 0x20, 0xBA, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0x6A, 0x4C, 0xEC, 0xFF, 0x74, 0xAC, 0xEA, +0x05, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x2A, 0xF2, +0x57, 0xC3, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0x83, 0xF3, 0xB7, 0xA3, +0x8C, 0xEA, 0x8F, 0xEC, 0xAC, 0xEC, 0x8D, 0xEA, +0x83, 0xF3, 0x57, 0xC3, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x68, 0x26, 0x67, 0x0C, 0xE9, 0x53, 0x71, +0x0C, 0xEC, 0x0C, 0xED, 0x09, 0x60, 0x06, 0x2C, +0x30, 0xF0, 0x20, 0x6A, 0x2A, 0xF2, 0x56, 0xA2, +0xAD, 0xEA, 0x0B, 0x10, 0x00, 0x18, 0xA8, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x83, 0xF3, 0x77, 0xA2, 0x83, 0xF3, 0x56, 0xA2, +0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, +0x70, 0x9B, 0x0C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x2A, 0xF2, 0x34, 0xC2, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6A, 0xAC, 0xF1, 0x5D, 0xA2, +0xFF, 0x63, 0x05, 0x5A, 0x36, 0x60, 0x30, 0xF0, +0x20, 0x6B, 0x48, 0x32, 0x23, 0xF0, 0x10, 0x4B, +0x4D, 0xE3, 0x40, 0x9B, 0x00, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF1, 0x4C, 0x9A, 0xFF, 0xF7, +0x1F, 0x6B, 0x40, 0x9A, 0x1A, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF1, 0x4C, 0x9A, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF0, 0x5C, 0x9A, +0x0D, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF0, +0x5C, 0x9A, 0x40, 0x9A, 0x50, 0x32, 0x00, 0xF5, +0x42, 0x32, 0x08, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x84, 0xF0, 0x40, 0x9A, 0x40, 0x9A, 0xE1, 0xF7, +0x1F, 0x6B, 0x6C, 0xEA, 0x00, 0xD2, 0x00, 0x93, +0xE0, 0xF3, 0x08, 0x6A, 0x60, 0x33, 0x68, 0x33, +0x5B, 0xEB, 0x01, 0x2A, 0xE5, 0xE8, 0x12, 0xEA, +0x01, 0x10, 0x66, 0x6A, 0x00, 0xD2, 0x00, 0x92, +0x01, 0x63, 0x20, 0xE8, 0xFF, 0x63, 0x01, 0xD0, +0x15, 0x2C, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, +0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF1, +0x90, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xA3, 0xF3, 0x7C, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x7C, 0xDA, 0x5D, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x05, 0xF3, 0xBC, 0xA2, +0x03, 0x6B, 0x6B, 0xEB, 0xAC, 0xEB, 0x05, 0xF3, +0x7C, 0xC2, 0x25, 0xF3, 0xC0, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xCC, 0xF1, 0x1C, 0x4A, 0x00, 0x6D, +0x18, 0x6F, 0xF8, 0xED, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0x12, 0xEF, 0x6D, 0xE7, +0x25, 0xF3, 0x10, 0xA3, 0x01, 0x6F, 0xEC, 0xE8, +0x23, 0x20, 0x25, 0xF3, 0x70, 0xA3, 0x66, 0x33, +0xEC, 0xEB, 0xFF, 0x6F, 0xEC, 0xEB, 0x1C, 0x23, +0xFF, 0xF7, 0x78, 0x9A, 0x9B, 0xEB, 0x01, 0x2C, +0xE5, 0xE8, 0x12, 0xEB, 0xFF, 0xF7, 0x7C, 0xDA, +0x10, 0xEF, 0x03, 0x27, 0x01, 0x4B, 0xFF, 0xF7, +0x7C, 0xDA, 0x60, 0x9A, 0x78, 0xEE, 0x12, 0xEB, +0x9B, 0xEB, 0x01, 0x2C, 0xE5, 0xE8, 0x12, 0xEB, +0x60, 0xDA, 0xFF, 0xF7, 0x7C, 0x9A, 0x04, 0x2B, +0x01, 0x6F, 0xFF, 0xF7, 0xFC, 0xDA, 0x60, 0xDA, +0x01, 0x4D, 0x0A, 0x75, 0x18, 0x4A, 0xCC, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x25, 0xF3, 0x64, 0x9A, 0x25, 0xF3, 0x80, 0xDA, +0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, 0x05, 0xF3, +0x9C, 0xA2, 0x12, 0xEB, 0x25, 0xF3, 0x68, 0xDA, +0x78, 0x67, 0x25, 0xF3, 0x6C, 0xDA, 0x02, 0x6B, +0x8D, 0xEB, 0x05, 0xF3, 0x7C, 0xC2, 0x01, 0x90, +0x01, 0x63, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, +0x00, 0x48, 0x05, 0xF3, 0x5C, 0xA0, 0x03, 0x6B, +0x4C, 0xEB, 0x00, 0x6A, 0x2B, 0x2B, 0x30, 0xF0, +0x20, 0x6A, 0x84, 0xF0, 0x44, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xFF, 0x6E, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, 0xAC, 0xF1, +0x1C, 0x4C, 0x00, 0x6D, 0x05, 0x4E, 0x40, 0xEA, +0x05, 0x6A, 0x66, 0x6B, 0x5B, 0xEB, 0x01, 0x2A, +0xE5, 0xE8, 0x25, 0xF3, 0x44, 0xD8, 0x25, 0xF3, +0x60, 0xD8, 0x05, 0xF3, 0x7C, 0xA0, 0x12, 0xEA, +0x25, 0xF3, 0x48, 0xD8, 0x01, 0x6A, 0x4B, 0xEA, +0x05, 0xF3, 0x5D, 0xC0, 0x7D, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x01, 0x6B, 0x6D, 0xEA, 0x05, 0xF3, +0x5C, 0xC0, 0x43, 0x67, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, +0x00, 0x48, 0x05, 0xF3, 0x9C, 0xA0, 0x01, 0x6B, +0x00, 0x6A, 0x8C, 0xEB, 0x22, 0x23, 0x30, 0xF0, +0x20, 0x6A, 0x84, 0xF0, 0x44, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x03, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, +0x05, 0xF3, 0x5C, 0xC0, 0x00, 0x18, 0xCA, 0xDA, +0x04, 0xD2, 0x04, 0x94, 0x00, 0x18, 0xEB, 0xDA, +0x05, 0xF3, 0x7C, 0xA0, 0x02, 0x6A, 0x25, 0xF3, +0xC4, 0x98, 0x6D, 0xEA, 0x05, 0xF3, 0x5C, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, +0x42, 0xF1, 0x1C, 0x6C, 0x01, 0x6D, 0x40, 0xEA, +0x01, 0x6A, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0x05, 0xF3, 0xBC, 0xA3, +0x02, 0x6C, 0x00, 0x6A, 0xAC, 0xEC, 0x0C, 0x24, +0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF0, 0x44, 0x9A, +0x00, 0x6C, 0x80, 0xC2, 0x03, 0x6A, 0x4B, 0xEA, +0xAC, 0xEA, 0x05, 0xF3, 0x5C, 0xC3, 0x01, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0x00, 0x6A, 0x18, 0x6C, +0x98, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, +0x00, 0x4B, 0x01, 0x4A, 0x0A, 0x72, 0x12, 0xEC, +0x71, 0xE4, 0x25, 0xF3, 0xB0, 0xA4, 0x02, 0x6B, +0x6B, 0xEB, 0xAC, 0xEB, 0x25, 0xF3, 0x70, 0xC4, +0xEE, 0x61, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xAC, 0xF1, 0x5C, 0xA2, 0x01, 0x6B, 0x4C, 0xEB, +0x00, 0x6A, 0x1C, 0x23, 0x30, 0xF0, 0x20, 0x6A, +0xEC, 0xF1, 0x00, 0x4A, 0x00, 0x6B, 0xA0, 0x9A, +0x8E, 0xED, 0x0F, 0x2D, 0x18, 0x6E, 0xD8, 0xEB, +0x30, 0xF0, 0x20, 0x6D, 0xA6, 0xF6, 0x00, 0x4D, +0x12, 0xEE, 0xB9, 0xE6, 0x25, 0xF3, 0xF0, 0xA6, +0x02, 0x6D, 0xAB, 0xED, 0xEC, 0xED, 0x25, 0xF3, +0xB0, 0xC6, 0x01, 0x4B, 0x0A, 0x73, 0x18, 0x4A, +0xEA, 0x61, 0x01, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x5D, 0x67, 0x0A, 0xD4, 0x20, 0xF0, 0x98, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x0B, 0xD5, 0x0C, 0xD6, +0xA6, 0xF6, 0x00, 0x4A, 0x05, 0xF3, 0xBC, 0xA2, +0x01, 0x6B, 0x00, 0xF6, 0xE0, 0x31, 0xAC, 0xEB, +0x00, 0xF6, 0x23, 0x31, 0x80, 0xF0, 0x09, 0x23, +0x21, 0x24, 0x01, 0x74, 0x80, 0xF0, 0x05, 0x61, +0x0A, 0x93, 0x80, 0xF0, 0x02, 0x23, 0x30, 0xF0, +0x20, 0x6B, 0x84, 0xF0, 0x68, 0x9B, 0xC3, 0xEB, +0x7C, 0x61, 0x7F, 0x71, 0x7A, 0x60, 0xFF, 0xF7, +0x1F, 0x51, 0x77, 0x61, 0x25, 0xF3, 0x00, 0x9A, +0x1B, 0xEE, 0x01, 0x28, 0xE5, 0xE8, 0x10, 0xEA, +0x12, 0xE8, 0x02, 0x22, 0x01, 0x48, 0x04, 0x10, +0x03, 0x28, 0x01, 0x68, 0x50, 0x67, 0x1D, 0x10, +0x01, 0x6B, 0x1E, 0x10, 0x0A, 0x94, 0x65, 0x24, +0x30, 0xF0, 0x20, 0x6B, 0x84, 0xF0, 0x68, 0x9B, +0x0C, 0x95, 0xA3, 0xEB, 0x5E, 0x61, 0x7F, 0x71, +0x5C, 0x60, 0xFF, 0xF7, 0x1F, 0x51, 0x59, 0x61, +0x25, 0xF3, 0x04, 0x9A, 0x1B, 0xED, 0x01, 0x28, +0xE5, 0xE8, 0x10, 0xEA, 0x12, 0xE8, 0x02, 0x22, +0x01, 0x48, 0x05, 0x10, 0x04, 0x28, 0x01, 0x68, +0x00, 0x6A, 0x04, 0xD2, 0x02, 0x10, 0x00, 0x6B, +0x04, 0xD3, 0x0A, 0x94, 0x00, 0x18, 0x75, 0xDB, +0x00, 0x6C, 0xFF, 0x6E, 0xA4, 0x67, 0xCC, 0xED, +0x1D, 0x65, 0x18, 0x6D, 0xB8, 0xEC, 0x30, 0xF0, +0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, 0x01, 0x6D, +0x12, 0xEA, 0x69, 0xE2, 0x25, 0xF3, 0x50, 0xA2, +0xAC, 0xEA, 0xCC, 0xEA, 0x2F, 0x2A, 0xD8, 0x67, +0x18, 0x6F, 0xF8, 0xEE, 0x04, 0x96, 0xC4, 0x36, +0x04, 0xD6, 0x03, 0x6E, 0xCB, 0xEE, 0x12, 0xEC, +0x71, 0xE4, 0x25, 0xF3, 0xF0, 0xA4, 0xEC, 0xEE, +0x04, 0x97, 0xED, 0xEE, 0x25, 0xF3, 0xD0, 0xC4, +0x0A, 0x96, 0x45, 0xF3, 0xC0, 0xDC, 0x0B, 0x97, +0x45, 0xF3, 0xE4, 0xDC, 0x0C, 0x96, 0x18, 0x6F, +0x25, 0xF3, 0xD4, 0xDC, 0xD8, 0x67, 0x01, 0x4E, +0xF8, 0xEE, 0x12, 0xEE, 0x6D, 0xE6, 0x25, 0xF3, +0x44, 0xDB, 0x25, 0xF3, 0x00, 0xDB, 0x25, 0xF3, +0x51, 0xC4, 0x25, 0xF3, 0x50, 0xA4, 0x25, 0xF3, +0x32, 0xC4, 0x4D, 0xED, 0x25, 0xF3, 0xB0, 0xC4, +0x01, 0x6A, 0x04, 0x10, 0x01, 0x4C, 0x0A, 0x74, +0xBC, 0x61, 0x00, 0x6A, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, +0x06, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xCC, 0xF1, +0x1C, 0x4A, 0x00, 0x6C, 0x4A, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xCC, 0xF1, 0x1C, 0x4A, 0x00, 0x6B, +0x18, 0x6D, 0xB8, 0xEB, 0x30, 0xF0, 0x20, 0x6C, +0xA6, 0xF6, 0x00, 0x4C, 0x12, 0xED, 0x91, 0xE5, +0x25, 0xF3, 0xD0, 0xA4, 0x01, 0x6D, 0xAC, 0xEE, +0x08, 0x26, 0x25, 0xF3, 0x90, 0xA4, 0x86, 0x34, +0xAC, 0xEC, 0x03, 0x24, 0x80, 0x9A, 0x01, 0x4C, +0x80, 0xDA, 0x01, 0x4B, 0x0A, 0x73, 0x18, 0x4A, +0xE7, 0x61, 0x00, 0x18, 0xCA, 0xDA, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xC0, 0xF0, 0x67, 0xA2, 0x05, 0xF3, 0xBD, 0xA2, +0xFF, 0x6C, 0x76, 0x33, 0xAE, 0xEB, 0x12, 0x2B, +0xC0, 0xF0, 0xA4, 0xA2, 0x7F, 0x6B, 0xAC, 0xEB, +0x8C, 0xEB, 0x0C, 0x23, 0xC0, 0xF0, 0xA5, 0xA2, +0x0F, 0x6B, 0xAC, 0xEB, 0x8C, 0xEB, 0x06, 0x23, +0x04, 0x93, 0xC3, 0xF3, 0x56, 0xA2, 0x78, 0xEA, +0x12, 0xEA, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0x93, 0xCC, 0xF1, 0x40, 0x9A, 0x6E, 0xEA, +0x52, 0x22, 0x04, 0x94, 0x00, 0x18, 0xEB, 0xDA, +0x4E, 0x10, 0x18, 0x6D, 0xB8, 0xEC, 0x30, 0xF0, +0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, 0x12, 0xED, +0x6D, 0xE5, 0x25, 0xF3, 0xD0, 0xA3, 0x01, 0x6D, +0xAC, 0xEE, 0x0A, 0x26, 0x25, 0xF3, 0x70, 0xA3, +0x66, 0x33, 0xAC, 0xEB, 0xFF, 0x6D, 0xAC, 0xEB, +0x03, 0x2B, 0x60, 0x9A, 0x01, 0x4B, 0x60, 0xDA, +0x01, 0x4C, 0x0A, 0x74, 0x18, 0x4A, 0xE5, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x05, 0xF3, 0x7D, 0xA2, 0xFF, 0x73, 0x2B, 0x61, +0x25, 0xF3, 0x6C, 0x9A, 0x01, 0x4B, 0x25, 0xF3, +0x6C, 0xDA, 0x25, 0xF3, 0x48, 0x9A, 0x4E, 0xEB, +0x22, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0xCC, 0xF1, +0x1C, 0x4A, 0x18, 0x6D, 0xB8, 0xEB, 0x30, 0xF0, +0x20, 0x6C, 0xA6, 0xF6, 0x00, 0x4C, 0x12, 0xED, +0x91, 0xE5, 0x25, 0xF3, 0xD0, 0xA4, 0x01, 0x6D, +0xAC, 0xEE, 0x08, 0x26, 0x25, 0xF3, 0x90, 0xA4, +0x86, 0x34, 0xAC, 0xEC, 0x03, 0x24, 0x80, 0x9A, +0x01, 0x4C, 0x80, 0xDA, 0x01, 0x4B, 0x0A, 0x73, +0x18, 0x4A, 0xE7, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x78, 0x67, 0xCC, 0xF1, 0x6C, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xA0, 0xF0, +0x64, 0x9A, 0x02, 0xF0, 0x00, 0x6C, 0x8D, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x07, 0x97, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xCC, 0xF1, 0x11, 0x48, 0x00, 0x69, 0x18, 0x6A, +0x58, 0xE9, 0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, +0x00, 0x4B, 0x12, 0xEA, 0x69, 0xE2, 0x25, 0xF3, +0x90, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, 0x27, 0x23, +0x00, 0xF0, 0x8B, 0x98, 0x00, 0xF0, 0x67, 0x98, +0x63, 0xEC, 0x21, 0x61, 0x61, 0x80, 0x81, 0x43, +0x04, 0xD4, 0x07, 0x2C, 0x00, 0xF0, 0x4F, 0x98, +0x00, 0xF0, 0x93, 0x98, 0x40, 0xEA, 0x04, 0x92, +0x14, 0x10, 0x80, 0xA0, 0x01, 0x4C, 0x80, 0xC0, +0x80, 0xA0, 0x82, 0xEB, 0x08, 0x60, 0x25, 0xF3, +0x90, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x25, 0xF3, 0x70, 0xC2, 0x08, 0x10, 0x00, 0xF0, +0x4F, 0x98, 0x00, 0xF0, 0x93, 0x98, 0x40, 0xEA, +0x00, 0x6A, 0x00, 0xF0, 0x4B, 0xD8, 0x01, 0x49, +0x0A, 0x71, 0x18, 0x48, 0xC8, 0x61, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFF, 0x6B, 0x6C, 0xEC, 0x0F, 0x6A, 0x8C, 0xEA, +0x03, 0x2A, 0x92, 0x32, 0x6C, 0xEA, 0x20, 0xE8, +0x07, 0x4A, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, +0x04, 0x2A, 0x01, 0x6C, 0x08, 0xF0, 0x00, 0x6D, +0x05, 0x10, 0x44, 0x32, 0xFF, 0x4A, 0x01, 0x6D, +0x02, 0x6C, 0xA4, 0xEA, 0x80, 0x18, 0x0C, 0x58, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, +0x04, 0x2A, 0x01, 0x6C, 0x04, 0xF0, 0x00, 0x6D, +0x05, 0x10, 0xFF, 0x4A, 0x44, 0x32, 0x01, 0x6D, +0x02, 0x6C, 0xA4, 0xEA, 0x80, 0x18, 0x0C, 0x58, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, +0x04, 0x2A, 0x01, 0x6C, 0x08, 0xF0, 0x00, 0x6D, +0x05, 0x10, 0x44, 0x32, 0xFF, 0x4A, 0x01, 0x6D, +0x02, 0x6C, 0xA4, 0xEA, 0x80, 0x18, 0x29, 0x58, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, +0x04, 0x2A, 0x01, 0x6C, 0x04, 0xF0, 0x00, 0x6D, +0x05, 0x10, 0xFF, 0x4A, 0x44, 0x32, 0x01, 0x6D, +0x02, 0x6C, 0xA4, 0xEA, 0x80, 0x18, 0x29, 0x58, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6D, 0x8C, 0xED, +0x01, 0x6C, 0x44, 0x67, 0x15, 0x4D, 0x44, 0xED, +0xA2, 0x67, 0x80, 0x18, 0xA8, 0x57, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6D, 0x8C, 0xED, 0x04, 0x2D, 0x03, 0x6C, +0x10, 0xF0, 0x00, 0x6D, 0x05, 0x10, 0x1B, 0x4D, +0x01, 0x6A, 0x44, 0xED, 0x03, 0x6C, 0xA2, 0x67, +0x80, 0x18, 0xA8, 0x57, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0x00, 0x18, 0x58, 0xDC, +0x01, 0x6D, 0x02, 0x6C, 0xA4, 0xEA, 0x80, 0x18, +0xA8, 0x57, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0x00, 0x18, 0x58, 0xDC, 0x01, 0x6D, 0x03, 0x6C, +0xA4, 0xEA, 0x80, 0x18, 0xA8, 0x57, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6D, 0x8C, 0xED, 0x18, 0x4D, 0x01, 0x6A, +0x44, 0xED, 0x00, 0x6C, 0xA2, 0x67, 0x80, 0x18, +0xA8, 0x57, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6D, 0x8C, 0xED, +0x01, 0x6C, 0x44, 0x67, 0x15, 0x4D, 0x44, 0xED, +0xA2, 0x67, 0x80, 0x18, 0xD9, 0x57, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6D, 0x8C, 0xED, 0x04, 0x2D, 0x03, 0x6C, +0x10, 0xF0, 0x00, 0x6D, 0x05, 0x10, 0x1B, 0x4D, +0x01, 0x6A, 0x44, 0xED, 0x03, 0x6C, 0xA2, 0x67, +0x80, 0x18, 0xD9, 0x57, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0x00, 0x18, 0x58, 0xDC, +0x01, 0x6D, 0x02, 0x6C, 0xA4, 0xEA, 0x80, 0x18, +0xD9, 0x57, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0x00, 0x18, 0x58, 0xDC, 0x01, 0x6D, 0x03, 0x6C, +0xA4, 0xEA, 0x80, 0x18, 0xD9, 0x57, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6D, 0x8C, 0xED, 0x18, 0x4D, 0x01, 0x6A, +0x44, 0xED, 0x00, 0x6C, 0xA2, 0x67, 0x80, 0x18, +0xD9, 0x57, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xDD, 0x63, 0x45, 0x62, 0x44, 0xD1, 0x43, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x69, 0x84, 0xF0, +0x5C, 0x9A, 0x8C, 0xE9, 0x30, 0x31, 0x49, 0xE1, +0x40, 0xD2, 0x40, 0xA2, 0x00, 0xF6, 0x40, 0x32, +0x00, 0xF6, 0x43, 0x32, 0x00, 0x52, 0x40, 0x60, +0x01, 0x6A, 0x7D, 0x67, 0x4B, 0xEA, 0x54, 0xC3, +0x0F, 0x6A, 0x56, 0xC3, 0x10, 0x6A, 0x57, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF0, 0x40, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0x06, 0x04, 0x49, 0xE1, +0x40, 0x9A, 0x04, 0x05, 0x04, 0x6E, 0x04, 0xD2, +0x80, 0xF2, 0x4C, 0x98, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xA4, 0xF0, 0x44, 0x9A, 0x07, 0x04, +0x04, 0x05, 0x49, 0xE1, 0x40, 0x9A, 0x04, 0x6E, +0x04, 0xD2, 0x80, 0xF2, 0x4C, 0x98, 0x40, 0xEA, +0x40, 0x93, 0x08, 0x04, 0x04, 0x05, 0x40, 0x9B, +0x04, 0x6E, 0x04, 0xD2, 0x80, 0xF2, 0x4C, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF0, +0x48, 0x9A, 0x09, 0x04, 0x04, 0x05, 0x45, 0xE1, +0x40, 0x99, 0x04, 0x6E, 0x04, 0xD2, 0x80, 0xF2, +0x4C, 0x98, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF4, 0x40, 0x9A, 0x05, 0x04, 0x40, 0xEA, +0x45, 0x97, 0x44, 0x91, 0x43, 0x90, 0x23, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0xA4, 0xF0, 0x80, 0x9C, 0x50, 0x33, 0x91, 0xE3, +0x80, 0x9C, 0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF0, +0x84, 0x9C, 0x8D, 0xE3, 0x82, 0x67, 0x60, 0x9B, +0x00, 0x18, 0xD2, 0xDC, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF2, 0x54, 0x9A, +0xA4, 0xF0, 0x6C, 0x9B, 0x00, 0xA2, 0x20, 0xA3, +0xFF, 0x6A, 0x4C, 0xE8, 0x4C, 0xE9, 0x2A, 0xE8, +0x2B, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF0, +0x40, 0x9A, 0x10, 0x33, 0x49, 0xE3, 0x40, 0xA2, +0xFF, 0x6B, 0x6C, 0xEA, 0x56, 0x32, 0x6C, 0xEA, +0x04, 0x72, 0x09, 0x60, 0x06, 0x72, 0x0C, 0x60, +0x02, 0x72, 0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x54, 0x9A, 0x09, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x58, 0x9A, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x5C, 0x9A, +0x90, 0x67, 0x40, 0xEA, 0x01, 0x48, 0x7F, 0x6A, +0x4C, 0xE8, 0x0A, 0xE9, 0xDA, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x54, 0x9A, 0x20, 0xC2, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, +0x8C, 0xEA, 0xFF, 0x6B, 0xE2, 0x67, 0x6C, 0xEE, +0x6C, 0xEF, 0x1E, 0x65, 0x87, 0x67, 0x03, 0x6E, +0xCC, 0xEC, 0x80, 0xF0, 0x10, 0x2C, 0x30, 0xF0, +0x20, 0x6C, 0xA4, 0xF0, 0x10, 0x9C, 0x08, 0x69, +0x42, 0x32, 0x80, 0xA0, 0x52, 0x32, 0x6C, 0xEA, +0x6C, 0xEC, 0x2D, 0xEC, 0x6C, 0xEC, 0x80, 0xC0, +0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF0, 0x94, 0x9C, +0xCC, 0xEA, 0xE0, 0xC4, 0x30, 0xF0, 0x20, 0x6C, +0xA4, 0xF0, 0x98, 0x9C, 0x40, 0xC4, 0x0F, 0x6A, +0x98, 0x67, 0x8C, 0xEA, 0x74, 0x22, 0x01, 0x6C, +0x4C, 0xEC, 0x06, 0x24, 0x30, 0xF0, 0x20, 0x6C, +0xA4, 0xF0, 0x9C, 0x9C, 0xAC, 0xEB, 0x60, 0xC4, +0x02, 0x6B, 0x4C, 0xEB, 0x08, 0x23, 0xFF, 0x6C, +0xA2, 0x33, 0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, +0xC4, 0xF0, 0x80, 0x9C, 0x60, 0xC4, 0x04, 0x6B, +0x4C, 0xEB, 0x09, 0x23, 0xA2, 0x33, 0xFF, 0x6C, +0x62, 0x33, 0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, +0xC4, 0xF0, 0x84, 0x9C, 0x60, 0xC4, 0x4E, 0x33, +0x07, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0xC4, 0xF0, +0x68, 0x9B, 0x00, 0xF6, 0xA2, 0x35, 0xA0, 0xC3, +0x20, 0x6B, 0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0xC4, 0xF0, 0x4C, 0x9A, 0x64, 0x68, 0x60, 0xC2, +0x2C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0A, 0x6C, 0xFF, 0x48, 0x40, 0xEA, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0x21, 0x28, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x60, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF4, 0x8C, 0x9C, +0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xA3, 0xF3, +0x7C, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, 0x7C, 0xDA, +0x60, 0xA1, 0xD0, 0x6A, 0x6C, 0xEA, 0x40, 0xC1, +0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF0, 0x70, 0x9A, +0xF7, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, +0x16, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, +0x2C, 0x9A, 0x20, 0x6A, 0x60, 0xA1, 0x6C, 0xEA, +0xCC, 0x2A, 0x60, 0xA1, 0xF0, 0x6A, 0x6C, 0xEA, +0x40, 0xC1, 0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF0, +0x70, 0x9A, 0xF7, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, +0x8C, 0xEA, 0xC2, 0x67, 0xFF, 0x6C, 0x8C, 0xEE, +0x03, 0x6D, 0x66, 0x67, 0xAC, 0xEB, 0x4B, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0xA4, 0xF0, 0xF0, 0x9B, +0x08, 0x68, 0x42, 0x32, 0x60, 0xA7, 0x52, 0x32, +0x8C, 0xEA, 0x8C, 0xEB, 0x0D, 0xEB, 0x8C, 0xEB, +0x60, 0xC7, 0x30, 0xF0, 0x20, 0x6B, 0xA4, 0xF0, +0x74, 0x9B, 0xAC, 0xEA, 0x64, 0x68, 0xC0, 0xC3, +0x30, 0xF0, 0x20, 0x6B, 0xA4, 0xF0, 0x78, 0x9B, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, +0x4C, 0x9A, 0x30, 0x6B, 0x60, 0xC2, 0x2E, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x0A, 0x6C, 0xFF, 0x48, 0x40, 0xEA, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xE8, 0x23, 0x28, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF2, 0x60, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xC3, 0xF4, 0x8C, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xA3, 0xF3, 0x7C, 0x9A, +0x8D, 0xEB, 0xA3, 0xF3, 0x7C, 0xDA, 0x60, 0xA1, +0xCF, 0x6A, 0x6C, 0xEA, 0x40, 0xC1, 0x30, 0xF0, +0x20, 0x6A, 0xA4, 0xF0, 0x70, 0x9A, 0xF7, 0x6A, +0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x6A, +0x4B, 0xEA, 0x19, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xC4, 0xF0, 0x2C, 0x9A, 0x20, 0x6A, 0x60, 0xA1, +0x6C, 0xEA, 0xCA, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xA4, 0xF0, 0x5C, 0x9A, 0xEF, 0x6B, 0x40, 0x9A, +0x80, 0xA1, 0x8C, 0xEB, 0x60, 0xC1, 0x30, 0xF0, +0x20, 0x6B, 0xA4, 0xF0, 0x90, 0x9B, 0xF7, 0x6B, +0xA0, 0xA4, 0xAC, 0xEB, 0x60, 0xC4, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xC4, 0xF0, 0xB0, 0x9A, 0xE0, 0xF3, 0x10, 0x6C, +0x0F, 0x6E, 0x00, 0x18, 0x2D, 0xDD, 0xE0, 0xF3, +0x0C, 0x6C, 0x00, 0x18, 0x81, 0xDD, 0xFF, 0x6B, +0x4C, 0xEB, 0x0B, 0x73, 0x0B, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC4, 0xF0, 0x74, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xC3, 0xF3, 0x88, 0x9C, 0x40, 0x9B, +0x8C, 0xEA, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x7C, 0x9A, +0xFF, 0x6C, 0x20, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x40, 0xA3, +0x01, 0x6D, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xC3, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xE9, 0xF4, 0x50, 0xA2, +0x01, 0x72, 0x0C, 0x61, 0x01, 0x6C, 0x10, 0x6D, +0x00, 0x18, 0x52, 0xD1, 0x04, 0x6B, 0x4D, 0xEB, +0xFF, 0x6E, 0x01, 0x6C, 0x10, 0x6D, 0x6C, 0xEE, +0x00, 0x18, 0x41, 0xD1, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xE9, 0xF4, 0x50, 0xA2, +0x01, 0x72, 0x0A, 0x61, 0x01, 0x6C, 0x10, 0x6D, +0x00, 0x18, 0x52, 0xD1, 0xFB, 0x6E, 0x01, 0x6C, +0x10, 0x6D, 0x4C, 0xEE, 0x00, 0x18, 0x41, 0xD1, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xE9, 0xF4, 0x70, 0xA3, +0xFF, 0x6A, 0x24, 0x67, 0x01, 0x73, 0xAC, 0xEA, +0x07, 0x60, 0x03, 0x73, 0x05, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0xC4, 0xF0, 0x78, 0x9B, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC4, 0xF0, 0x7C, 0x9B, +0x06, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF0, +0x00, 0x9A, 0x6C, 0xE8, 0x0A, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xE4, 0xF0, 0x04, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xE4, 0xF0, 0x48, 0x9A, 0x6D, 0xE8, +0x4C, 0xE8, 0x00, 0x18, 0xE2, 0xC7, 0x0C, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x66, 0xF7, 0x72, 0xA2, +0x08, 0x6A, 0x6C, 0xEA, 0x05, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xE4, 0xF0, 0x4C, 0x9A, 0x4C, 0xE8, +0x02, 0x30, 0x02, 0x30, 0x00, 0xC9, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0xF7, 0x1F, 0x69, 0x30, 0xF0, 0x20, 0x6B, +0x8C, 0xE9, 0xE3, 0xF1, 0x98, 0x9B, 0xFF, 0x6A, +0x4C, 0xED, 0xC0, 0xA4, 0x4C, 0xEE, 0x07, 0x25, +0x8E, 0x6B, 0xCC, 0xEB, 0x60, 0xC4, 0x71, 0x6B, +0xCD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0xE4, 0xF0, 0x7C, 0x9A, 0xFF, 0x6C, +0x01, 0x6D, 0x40, 0xA3, 0x00, 0x68, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x22, 0x10, +0x64, 0x70, 0x16, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF2, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x83, 0xF2, 0x88, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0xA3, 0xF3, 0x7C, 0x9A, 0x8D, 0xEB, +0xA3, 0xF3, 0x7C, 0xDA, 0x00, 0x6A, 0x1C, 0x10, +0xFF, 0xF7, 0x1F, 0x6A, 0x01, 0x48, 0x4C, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x0A, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xE4, 0xF0, 0x5C, 0x9A, 0x60, 0xA2, 0x01, 0x6A, +0x6C, 0xEA, 0xD6, 0x2A, 0xFF, 0xF7, 0x1F, 0x6A, +0x01, 0x49, 0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF2, 0x44, 0x9A, 0x20, 0xCA, 0x01, 0x6A, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x30, 0xF0, 0x20, 0x6D, 0x04, 0x04, 0xC3, 0xF0, +0x14, 0x4D, 0x14, 0x6E, 0x00, 0x18, 0xD5, 0xD3, +0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF4, 0x0D, 0x4A, +0x05, 0x04, 0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6D, +0x66, 0xF7, 0xA7, 0xA5, 0xB6, 0x35, 0x6E, 0xED, +0x1B, 0x25, 0xC0, 0xA2, 0x19, 0x26, 0xE0, 0x9C, +0x1F, 0xF7, 0x00, 0x6D, 0xEC, 0xED, 0x02, 0xF0, +0x00, 0x75, 0x01, 0x60, 0x09, 0x2D, 0x30, 0xF0, +0x20, 0x6E, 0xA0, 0x9C, 0x43, 0xF1, 0xDC, 0x9E, +0xB5, 0xE6, 0xC0, 0xA2, 0xC0, 0xC5, 0x06, 0x10, +0x30, 0xF0, 0x20, 0x6D, 0x63, 0xF1, 0xA0, 0x9D, +0xFD, 0xE5, 0xC0, 0xC7, 0x00, 0x6D, 0xA0, 0xC2, +0x01, 0x4B, 0xFF, 0x6D, 0xAC, 0xEB, 0x04, 0x73, +0x01, 0x4A, 0x04, 0x4C, 0xD7, 0x61, 0x0B, 0x97, +0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x30, 0xF0, 0x20, 0x6D, 0x04, 0x04, 0xC3, 0xF0, +0x00, 0x4D, 0x14, 0x6E, 0x00, 0x18, 0xD5, 0xD3, +0x05, 0x03, 0x00, 0x6C, 0x01, 0x6A, 0x30, 0xF0, +0x20, 0x6D, 0x66, 0xF7, 0xA7, 0xA5, 0xB6, 0x35, +0x4E, 0xED, 0x38, 0x25, 0xC0, 0x9B, 0x1F, 0xF7, +0x00, 0x6D, 0xCC, 0xED, 0x02, 0xF0, 0x00, 0x75, +0x01, 0x60, 0x09, 0x2D, 0x30, 0xF0, 0x20, 0x6E, +0x43, 0xF1, 0xDC, 0x9E, 0xA0, 0x9B, 0xE1, 0x44, +0xB5, 0xE6, 0xC0, 0xA5, 0x07, 0x10, 0x30, 0xF0, +0x20, 0x6D, 0x63, 0xF1, 0xA0, 0x9D, 0xE1, 0x44, +0xD9, 0xE5, 0xC0, 0xA6, 0xFF, 0x6D, 0xCC, 0xED, +0x30, 0xF0, 0x20, 0x6E, 0xE6, 0xF4, 0x0C, 0x4E, +0xD9, 0xE7, 0xA0, 0xC6, 0xC0, 0x9B, 0x1F, 0xF7, +0x00, 0x6D, 0xCC, 0xED, 0x02, 0xF0, 0x00, 0x75, +0x01, 0x60, 0x09, 0x2D, 0x30, 0xF0, 0x20, 0x6E, +0xA0, 0x9B, 0x43, 0xF1, 0xDC, 0x9E, 0xB5, 0xE6, +0x00, 0x6E, 0xC0, 0xC5, 0x07, 0x10, 0x30, 0xF0, +0x20, 0x6D, 0x63, 0xF1, 0xA0, 0x9D, 0xD9, 0xE5, +0x00, 0x6D, 0xA0, 0xC6, 0x01, 0x4A, 0xFF, 0x6D, +0xAC, 0xEA, 0x04, 0x72, 0x01, 0x4C, 0x04, 0x4B, +0xBA, 0x61, 0x0B, 0x97, 0x06, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF1, 0xA0, 0x9B, +0xFF, 0x6A, 0x08, 0x6E, 0x60, 0xA5, 0xCB, 0xEE, +0x4C, 0xEC, 0x4C, 0xEB, 0xCC, 0xEB, 0x6D, 0xEC, +0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF1, 0x64, 0x9B, +0x4C, 0xEC, 0x80, 0xC5, 0x60, 0xA3, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0x04, 0xF1, 0xC0, 0x9B, 0xFF, 0x6A, 0x08, 0x6F, +0x60, 0xA6, 0xEB, 0xEF, 0x4C, 0xEC, 0x4C, 0xEB, +0xEC, 0xEB, 0x6D, 0xEC, 0x4C, 0xED, 0x4C, 0xEC, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF1, 0x44, 0x9A, +0x80, 0xC6, 0xA0, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x08, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0x83, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x83, 0xF4, 0xB8, 0x9B, 0xC3, 0xF4, +0x10, 0x69, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x43, 0xF4, 0xBC, 0x9B, 0x91, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF1, 0xB8, 0x9B, 0x91, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF1, 0xB0, 0x9B, +0x91, 0x67, 0x00, 0x6E, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x69, 0x40, 0xEA, 0x84, 0xF3, +0x00, 0x48, 0x66, 0xF0, 0x00, 0x49, 0x0A, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xA8, 0xC1, 0x98, +0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, 0xAB, 0xED, +0x40, 0xEA, 0x08, 0x48, 0x2A, 0xE8, 0xF4, 0x61, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0x8C, 0xEA, +0x0F, 0x5A, 0x08, 0x60, 0x30, 0xF0, 0x20, 0x6B, +0x48, 0x34, 0x43, 0xF0, 0x04, 0x4B, 0x8D, 0xE3, +0x60, 0x9B, 0x00, 0xEB, 0x00, 0x6A, 0x20, 0xE8, +0xD0, 0xF4, 0x64, 0x42, 0x1F, 0xF7, 0x00, 0x6C, +0x8C, 0xEB, 0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0x04, 0xF1, 0x68, 0x9B, 0x2F, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x04, 0xF1, 0x6C, 0x9B, 0x2A, 0x10, +0x80, 0xF4, 0x64, 0x42, 0x1F, 0xF7, 0x00, 0x6C, +0x8C, 0xEB, 0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0x04, 0xF1, 0x70, 0x9B, 0x1F, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x04, 0xF1, 0x74, 0x9B, 0x1A, 0x10, +0xC0, 0xF4, 0x68, 0x42, 0x1F, 0xF7, 0x00, 0x6C, +0x8C, 0xEB, 0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0x04, 0xF1, 0x78, 0x9B, 0x0F, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x04, 0xF1, 0x7C, 0x9B, 0x0A, 0x10, +0x70, 0xF4, 0x68, 0x42, 0x1F, 0xF7, 0x00, 0x6C, +0x8C, 0xEB, 0x0A, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0x24, 0xF1, 0x60, 0x9B, 0x69, 0xE2, 0x60, 0xAA, +0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0x24, 0xF1, 0x64, 0x9B, +0x69, 0xE2, 0x60, 0xAA, 0xFF, 0xF7, 0x1F, 0x6A, +0x6C, 0xEA, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, +0x7C, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0xCF, 0xF3, +0x15, 0x4A, 0x40, 0xDB, 0x00, 0x68, 0x30, 0xF0, +0x20, 0x6A, 0x44, 0xF0, 0x50, 0x9A, 0x40, 0x9A, +0x21, 0x22, 0xE0, 0xF3, 0x09, 0x70, 0x13, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x60, 0x9A, +0x20, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xA3, 0xF3, 0x7C, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x7C, 0xDA, 0x00, 0x6A, 0x0C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x32, 0x6C, +0x01, 0x48, 0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE8, 0xD9, 0x17, 0x01, 0x6A, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xE9, 0xF4, 0x50, 0xA2, +0x03, 0x72, 0x0D, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xA4, 0xF0, 0x90, 0x9A, 0xFF, 0x6A, 0x60, 0xA4, +0x6C, 0xEA, 0x10, 0x6B, 0x4C, 0xEB, 0x03, 0x23, +0xEF, 0x6B, 0x4C, 0xEB, 0x60, 0xC4, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0x27, 0x67, 0x4C, 0xE9, 0x6F, 0x41, +0x4C, 0xEB, 0x04, 0x67, 0x02, 0x5B, 0x4C, 0xE8, +0x4C, 0xED, 0x4C, 0xEE, 0x03, 0x61, 0x90, 0x67, +0x00, 0x18, 0xDF, 0xD9, 0x10, 0x58, 0x55, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x08, 0x33, 0x83, 0xF0, +0x00, 0x4A, 0x69, 0xE2, 0x40, 0x9A, 0x00, 0xEA, +0xD0, 0xF4, 0x44, 0x40, 0x1F, 0xF7, 0x00, 0x6B, +0x6C, 0xEA, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0xF1, 0x68, 0x9A, 0x34, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x04, 0xF1, 0x6C, 0x9A, 0x2F, 0x10, +0x80, 0xF4, 0x44, 0x40, 0x1F, 0xF7, 0x00, 0x6B, +0x6C, 0xEA, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0xF1, 0x70, 0x9A, 0x24, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x04, 0xF1, 0x74, 0x9A, 0x1F, 0x10, +0xC0, 0xF4, 0x48, 0x40, 0x1F, 0xF7, 0x00, 0x6B, +0x6C, 0xEA, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0xF1, 0x78, 0x9A, 0x14, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x04, 0xF1, 0x7C, 0x9A, 0x0F, 0x10, +0x70, 0xF4, 0x48, 0x40, 0x1F, 0xF7, 0x00, 0x6B, +0x6C, 0xEA, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x24, 0xF1, 0x60, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x24, 0xF1, 0x64, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x6D, 0xE0, +0x41, 0xE0, 0x83, 0xF3, 0x98, 0xA0, 0xA3, 0xF3, +0x48, 0xA0, 0x8D, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x2A, 0xF2, +0x35, 0xC2, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x23, 0xF4, 0x04, 0x6C, 0x01, 0x6D, 0x80, 0x18, +0x72, 0x3C, 0x01, 0x6B, 0x6E, 0xEA, 0x05, 0x97, +0x01, 0x5A, 0x58, 0x67, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x24, 0x67, 0xC0, 0xF0, 0x84, 0xA2, 0xE3, 0xF3, +0x60, 0xAA, 0x7F, 0x6A, 0x8C, 0xEA, 0x21, 0x22, +0x01, 0x4B, 0xE0, 0xF3, 0x08, 0x6A, 0x58, 0xEB, +0x12, 0xEC, 0x23, 0xEC, 0x04, 0xD4, 0x19, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x66, 0xF7, 0x87, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF1, 0x08, 0x9A, +0x96, 0x34, 0xB0, 0x67, 0x80, 0x18, 0x24, 0x16, +0x43, 0xE0, 0x23, 0xE8, 0x0A, 0x61, 0x04, 0x92, +0x03, 0xEA, 0x07, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, +0xE7, 0x17, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x6A, 0xF2, 0x50, 0xA2, 0x02, 0x72, 0x58, 0x61, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x69, +0x64, 0xF2, 0x14, 0x48, 0x84, 0xF3, 0x00, 0x49, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0x98, 0xC0, 0xF3, +0x44, 0x9A, 0x01, 0x6D, 0x83, 0xF6, 0x04, 0x6C, +0xAB, 0xED, 0x04, 0x48, 0x40, 0xEA, 0x2A, 0xE8, +0xF3, 0x61, 0x30, 0xF0, 0x20, 0x68, 0xE4, 0xF1, +0x04, 0x48, 0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, +0x44, 0x99, 0xC0, 0x98, 0x01, 0x6D, 0x23, 0xF0, +0x10, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x04, 0x48, 0x24, 0xF2, 0x0C, 0x4A, +0x4A, 0xE8, 0xEF, 0x61, 0x21, 0xF0, 0x04, 0x68, +0x01, 0x6D, 0x90, 0x67, 0xAB, 0xED, 0x80, 0x18, +0x72, 0x3C, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0xD2, +0xE3, 0xF5, 0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0x90, 0x67, 0x03, 0x6E, 0x30, 0xF0, 0x20, 0x68, +0x40, 0xEA, 0x24, 0xF2, 0x0C, 0x48, 0x30, 0xF0, +0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, 0xC0, 0x98, +0x01, 0x6D, 0x28, 0xF1, 0x10, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x48, +0x64, 0xF2, 0x14, 0x4A, 0x4A, 0xE8, 0xEF, 0x61, +0xC0, 0xF3, 0x44, 0x99, 0x04, 0x96, 0x01, 0x6D, +0x21, 0xF0, 0x04, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0xC8, 0x6C, 0x00, 0x18, 0x5C, 0xDF, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0x7C, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0xAF, 0xF6, 0x11, 0x4A, +0x30, 0xF0, 0x20, 0x69, 0x40, 0xDB, 0xA6, 0xF6, +0x00, 0x49, 0xC3, 0xF3, 0x50, 0xA1, 0x6C, 0x22, +0x00, 0x18, 0x55, 0xDF, 0x01, 0x72, 0x68, 0x60, +0x80, 0x18, 0xCA, 0x18, 0xC3, 0xF3, 0x50, 0xA1, +0x02, 0x72, 0x52, 0x61, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x08, 0x6E, 0x03, 0xF3, +0x00, 0x6C, 0x0F, 0x6D, 0x40, 0xEA, 0x01, 0x6D, +0xAB, 0xED, 0x03, 0xF3, 0x08, 0x6C, 0x80, 0x18, +0x72, 0x3C, 0x04, 0xD2, 0x00, 0x18, 0x9E, 0xDE, +0x02, 0x6C, 0x80, 0x18, 0xC8, 0x28, 0x30, 0xF0, +0x20, 0x6C, 0xAE, 0xF7, 0x18, 0x4C, 0x80, 0x18, +0xCE, 0x32, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x00, 0x6C, 0x0F, 0x6D, 0x08, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC4, 0xF2, 0xDC, 0x99, +0x01, 0x6D, 0x23, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, +0x01, 0x6D, 0x03, 0xF3, 0x08, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x00, 0x6C, 0x0F, 0x6D, 0x0A, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xE4, 0xF2, 0xC0, 0x99, +0x01, 0x6D, 0x23, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, +0x01, 0x6D, 0x03, 0xF3, 0x08, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x00, 0x6C, 0x0F, 0x6D, 0x08, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x00, 0x6B, 0xC3, 0xF3, 0x70, 0xC2, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF0, 0x7C, 0x9B, 0x10, 0xF0, +0x23, 0x6A, 0xAF, 0xF6, 0x12, 0x4A, 0x40, 0xDB, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x23, 0xF4, 0x04, 0x6C, 0x01, 0x6D, 0x80, 0x18, +0x72, 0x3C, 0x21, 0x22, 0x00, 0x18, 0x3F, 0xDE, +0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF1, 0x6C, 0x9A, +0xFF, 0x6C, 0x02, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF1, 0x58, 0x9A, 0x01, 0x6B, +0x6B, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0xAE, 0xF7, +0x18, 0x4C, 0x60, 0xC2, 0x00, 0x6D, 0x80, 0x18, +0x2E, 0x35, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF5, +0x44, 0x9A, 0x01, 0x6C, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF5, 0x44, 0x9A, +0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF4, 0x5C, 0x9A, 0x40, 0xEA, 0x01, 0x6C, +0x00, 0x6D, 0x00, 0x18, 0x63, 0xCB, 0x03, 0x72, +0x20, 0x60, 0x30, 0xF0, 0x20, 0x6C, 0xAE, 0xF7, +0x18, 0x4C, 0x01, 0x6D, 0x80, 0x18, 0x2E, 0x35, +0x14, 0x22, 0x00, 0x18, 0x42, 0xC5, 0x01, 0x72, +0x06, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, +0x58, 0x9A, 0x3F, 0x6B, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x24, 0xF1, 0x6C, 0x9A, 0xFD, 0x6A, +0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x6A, +0x0B, 0x10, 0x00, 0x6C, 0xA4, 0x67, 0x00, 0x18, +0x63, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF5, +0x44, 0x9A, 0x01, 0x6C, 0x40, 0xEA, 0x00, 0x6A, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x44, 0xF1, 0x48, 0x9A, 0x44, 0xF1, 0x6C, 0x9B, +0x40, 0xAA, 0x60, 0xAB, 0x6E, 0xEA, 0xFF, 0xF7, +0x1F, 0x6B, 0x6C, 0xEA, 0x01, 0x5A, 0x58, 0x67, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF0, 0x7C, 0x9B, 0x10, 0xF0, 0x24, 0x6A, +0xB0, 0xF0, 0x15, 0x4A, 0x40, 0xDB, 0x01, 0x4A, +0x40, 0xDB, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF0, 0x7C, 0x9B, 0x10, 0xF0, 0x24, 0x6A, +0xD0, 0xF0, 0x0D, 0x4A, 0x40, 0xDB, 0x01, 0x4A, +0x40, 0xDB, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF0, 0x7C, 0x9B, 0x10, 0xF0, 0x24, 0x6A, +0xF0, 0xF0, 0x05, 0x4A, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x44, 0xF1, 0x70, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF4, 0x5C, 0x9A, 0x80, 0x9B, +0xA4, 0x67, 0x4C, 0xED, 0x4E, 0xED, 0x02, 0x25, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF1, 0x50, 0x9A, +0x01, 0x6B, 0x40, 0x9A, 0x6C, 0xEA, 0x60, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF1, 0x54, 0x9A, +0x00, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF1, +0x58, 0x9A, 0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x44, 0xF1, 0x5C, 0x9A, 0xC0, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x64, 0xF1, 0x40, 0x9A, 0xA0, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF1, 0x44, 0x9A, +0x80, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF1, +0x48, 0x9A, 0x40, 0x9A, 0x41, 0x22, 0x30, 0xF0, +0x20, 0x69, 0x64, 0xF1, 0x2C, 0x99, 0x60, 0xD9, +0x30, 0xF0, 0x20, 0x6B, 0x64, 0xF1, 0x70, 0x9B, +0x00, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x64, 0xF1, +0x74, 0x9B, 0xE0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF2, 0x78, 0x9B, 0xC0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF2, 0x7C, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF3, 0x7C, 0x9B, +0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, +0x78, 0x9B, 0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF5, +0x94, 0x9C, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF2, 0x60, 0x9A, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0x5C, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x7D, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x77, 0xF0, 0x24, 0x6C, 0xC0, 0xF1, +0x04, 0x4C, 0xAE, 0xB8, 0x00, 0x65, 0xA0, 0xDC, +0x9A, 0xB8, 0x00, 0x65, 0xBB, 0xB8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0x7C, 0x9B, +0x10, 0xF0, 0x24, 0x6A, 0xF0, 0xF0, 0x06, 0x4A, +0x40, 0xDB, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0x7C, 0x9B, +0x10, 0xF0, 0x24, 0x6A, 0x10, 0xF2, 0x15, 0x4A, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF6, +0x7C, 0x9A, 0x63, 0x23, 0x01, 0x6A, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0x47, 0xD7, 0x30, 0xF0, +0x20, 0x6A, 0xE6, 0xF6, 0x5C, 0x9A, 0x02, 0x6B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0xB3, 0xD8, +0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF6, 0x5C, 0x9A, +0x04, 0x6B, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0x9A, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF6, +0x5C, 0x9A, 0x08, 0x6B, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0x96, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0xE6, 0xF6, 0x5C, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0x48, 0xD7, 0x30, 0xF0, +0x20, 0x6A, 0xE6, 0xF6, 0x5C, 0x9A, 0x20, 0x6B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x49, 0xD7, +0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF6, 0x5C, 0x9A, +0x40, 0x6B, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0x4A, 0xD7, 0x30, 0xF0, 0x20, 0x6B, 0xE6, 0xF6, +0x7C, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0x8A, 0xD8, 0x30, 0xF0, +0x20, 0x6B, 0xE6, 0xF6, 0x7C, 0x9B, 0x04, 0xF0, +0x00, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0x4B, 0xD7, 0x30, 0xF0, 0x20, 0x6B, 0xE6, 0xF6, +0x7C, 0x9B, 0x08, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0x4C, 0xD7, 0x30, 0xF0, +0x20, 0x6B, 0xE6, 0xF6, 0x7C, 0x9B, 0x10, 0xF0, +0x00, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0x4D, 0xD7, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0xF7, +0x60, 0x9A, 0x3C, 0x23, 0x01, 0x6A, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0x50, 0xD8, 0x30, 0xF0, +0x20, 0x6A, 0x06, 0xF7, 0x40, 0x9A, 0x02, 0x6B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x4E, 0xD7, +0x30, 0xF0, 0x20, 0x6B, 0x06, 0xF7, 0x60, 0x9B, +0x04, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, +0x00, 0x6C, 0x00, 0x18, 0x2C, 0xD8, 0x30, 0xF0, +0x20, 0x6B, 0x06, 0xF7, 0x60, 0x9B, 0x08, 0xF0, +0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, +0x00, 0x18, 0x0D, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0x50, 0x9A, +0x06, 0xF7, 0x60, 0x9B, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0x50, 0xD7, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x44, 0x9A, +0x06, 0xF7, 0x60, 0x9B, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0x09, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0x06, 0xF7, 0x64, 0x9A, 0x4C, 0x23, 0x01, 0x6A, +0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, +0x2C, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0xF7, +0x44, 0x9A, 0x02, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x01, 0x6C, 0x00, 0x18, 0x0D, 0xD8, 0x30, 0xF0, +0x20, 0x6A, 0x06, 0xF7, 0x44, 0x9A, 0x04, 0x6B, +0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, +0x2C, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0xF7, +0x44, 0x9A, 0x08, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x02, 0x6C, 0x00, 0x18, 0x0D, 0xD8, 0x30, 0xF0, +0x20, 0x6A, 0x06, 0xF7, 0x44, 0x9A, 0x10, 0x6B, +0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, +0x2C, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0xF7, +0x44, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x03, 0x6C, 0x00, 0x18, 0x0D, 0xD8, 0x30, 0xF0, +0x20, 0x6A, 0x06, 0xF7, 0x44, 0x9A, 0x40, 0x6B, +0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, +0x2C, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0xF7, +0x44, 0x9A, 0x80, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x04, 0x6C, 0x00, 0x18, 0x0D, 0xD8, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x00, 0x6B, +0x77, 0xDA, 0x78, 0xDA, 0x79, 0xDA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF0, 0x7C, 0x9B, 0x10, 0xF0, +0x24, 0x6A, 0x10, 0xF2, 0x16, 0x4A, 0x40, 0xDB, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF0, 0x7C, 0x9B, 0x10, 0xF0, 0x24, 0x6A, +0x50, 0xF4, 0x09, 0x4A, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xE6, 0xF6, 0x6C, 0x9A, 0xC0, 0xF0, +0x13, 0x23, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, +0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, 0xBE, 0xD8, +0x30, 0xF0, 0x20, 0x6B, 0xE6, 0xF6, 0x6C, 0x9B, +0x04, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, +0x01, 0x6C, 0x00, 0x18, 0xBE, 0xD8, 0x30, 0xF0, +0x20, 0x6B, 0xE6, 0xF6, 0x6C, 0x9B, 0x08, 0xF0, +0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, +0x00, 0x18, 0xBE, 0xD8, 0x30, 0xF0, 0x20, 0x6B, +0xE6, 0xF6, 0x6C, 0x9B, 0x10, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, +0xBE, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF1, 0x5C, 0x9A, 0xE6, 0xF6, +0x6C, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, +0x00, 0x18, 0xBE, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, 0x44, 0x9A, +0xE6, 0xF6, 0x6C, 0x9B, 0x6C, 0xEA, 0x03, 0x22, +0x05, 0x6C, 0x00, 0x18, 0xBE, 0xD8, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, +0x48, 0x9A, 0xE6, 0xF6, 0x6C, 0x9B, 0x6C, 0xEA, +0x03, 0x22, 0x06, 0x6C, 0x00, 0x18, 0xBE, 0xD8, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF2, 0x4C, 0x9A, 0xE6, 0xF6, 0x6C, 0x9B, +0x6C, 0xEA, 0x03, 0x22, 0x07, 0x6C, 0x00, 0x18, +0xBE, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF5, 0x54, 0x9A, 0xE6, 0xF6, +0x6C, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x08, 0x6C, +0x00, 0x18, 0xBE, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, 0x44, 0x9A, +0xE6, 0xF6, 0x6C, 0x9B, 0x6C, 0xEA, 0x03, 0x22, +0x09, 0x6C, 0x00, 0x18, 0xBE, 0xD8, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF7, +0x58, 0x9A, 0xE6, 0xF6, 0x6C, 0x9B, 0x6C, 0xEA, +0x03, 0x22, 0x0A, 0x6C, 0x00, 0x18, 0xBE, 0xD8, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF2, 0x44, 0x9A, 0xE6, 0xF6, 0x6C, 0x9B, +0x6C, 0xEA, 0x03, 0x22, 0x0B, 0x6C, 0x00, 0x18, +0xBE, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF4, 0x50, 0x9A, 0xE6, 0xF6, +0x6C, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x0C, 0x6C, +0x00, 0x18, 0xBE, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x44, 0x9A, +0xE6, 0xF6, 0x6C, 0x9B, 0x6C, 0xEA, 0x03, 0x22, +0x0D, 0x6C, 0x00, 0x18, 0xBE, 0xD8, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, +0x48, 0x9A, 0xE6, 0xF6, 0x6C, 0x9B, 0x6C, 0xEA, +0x03, 0x22, 0x0E, 0x6C, 0x00, 0x18, 0xBE, 0xD8, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF4, 0x4C, 0x9A, 0xE6, 0xF6, 0x6C, 0x9B, +0x6C, 0xEA, 0x03, 0x22, 0x0F, 0x6C, 0x00, 0x18, +0xBE, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x00, 0x6B, 0x73, 0xDA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF0, 0x7C, 0x9B, 0x10, 0xF0, +0x24, 0x6A, 0x50, 0xF4, 0x0A, 0x4A, 0x40, 0xDB, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF0, 0x7C, 0x9B, 0x10, 0xF0, 0x24, 0x6A, +0x10, 0xF6, 0x19, 0x4A, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF6, 0x60, 0x9A, 0x35, 0x23, +0x08, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, +0x00, 0x18, 0x93, 0xD7, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF6, 0x40, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0x1C, 0xD9, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF6, 0x40, 0x9A, 0x20, 0x6B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x18, 0xD9, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF6, 0x40, 0x9A, +0x40, 0x6B, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0x3A, 0xD7, 0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF6, +0x60, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0x14, 0xD9, 0x30, 0xF0, +0x20, 0x6B, 0xC6, 0xF6, 0x60, 0x9B, 0x00, 0xF2, +0x00, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0x10, 0xD9, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF6, +0x64, 0x9A, 0x80, 0xF0, 0x07, 0x23, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF2, 0x44, 0x9A, 0x6C, 0xEA, +0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, 0xF7, 0xD7, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF7, 0x58, 0x9A, 0xC6, 0xF6, 0x64, 0x9B, +0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, +0xF7, 0xD7, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF2, 0x44, 0x9A, 0xC6, 0xF6, +0x64, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, +0x00, 0x18, 0xF7, 0xD7, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0x50, 0x9A, +0xC6, 0xF6, 0x64, 0x9B, 0x6C, 0xEA, 0x03, 0x22, +0x03, 0x6C, 0x00, 0x18, 0xF7, 0xD7, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, +0x44, 0x9A, 0xC6, 0xF6, 0x64, 0x9B, 0x6C, 0xEA, +0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, 0xF7, 0xD7, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF2, 0x44, 0x9A, 0xC6, 0xF6, 0x64, 0x9B, +0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, +0x5D, 0xD7, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF2, 0x48, 0x9A, 0xC6, 0xF6, +0x64, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, +0x00, 0x18, 0xD0, 0xD7, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, 0x4C, 0x9A, +0xC6, 0xF6, 0x64, 0x9B, 0x6C, 0xEA, 0x03, 0x22, +0x00, 0x6C, 0x00, 0x18, 0xB3, 0xD7, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, +0x54, 0x9A, 0xC6, 0xF6, 0x64, 0x9B, 0x6C, 0xEA, +0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, 0x9C, 0xD7, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF6, 0x64, 0x9B, +0x08, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0x0C, 0xD9, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0x5C, 0x9A, +0xC6, 0xF6, 0x64, 0x9B, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0x3C, 0xD7, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF6, 0x68, 0x9A, 0x32, 0x23, 0x01, 0x6A, +0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, +0x4F, 0xD9, 0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF6, +0x68, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, 0x4F, 0xD9, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF6, 0x68, 0x9B, +0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, +0x02, 0x6C, 0x00, 0x18, 0x4F, 0xD9, 0x30, 0xF0, +0x20, 0x6B, 0xC6, 0xF6, 0x68, 0x9B, 0x00, 0xF4, +0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, +0x00, 0x18, 0x4F, 0xD9, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF6, 0x68, 0x9B, 0x01, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, +0x4F, 0xD9, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF6, +0x6C, 0x9A, 0x6D, 0x23, 0x01, 0x6A, 0x6C, 0xEA, +0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, 0xFF, 0xD8, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF6, 0x6C, 0x9B, +0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x03, 0x22, +0x01, 0x6C, 0x00, 0x18, 0xFF, 0xD8, 0x30, 0xF0, +0x20, 0x6B, 0xC6, 0xF6, 0x6C, 0x9B, 0x00, 0xF2, +0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, +0x00, 0x18, 0xFF, 0xD8, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF6, 0x6C, 0x9B, 0x00, 0xF4, 0x00, 0x6A, +0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, +0xFF, 0xD8, 0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF6, +0x6C, 0x9B, 0x01, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, +0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, 0xFF, 0xD8, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF6, 0x6C, 0x9B, +0x10, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, +0x00, 0x6C, 0x00, 0x18, 0xE5, 0xC1, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, +0x58, 0x9A, 0xC6, 0xF6, 0x6C, 0x9B, 0x6C, 0xEA, +0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, 0xE5, 0xC1, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF4, 0x5C, 0x9A, 0xC6, 0xF6, 0x6C, 0x9B, +0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, +0xE5, 0xC1, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF1, 0x58, 0x9A, 0xC6, 0xF6, +0x6C, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, +0x00, 0x18, 0xE5, 0xC1, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF6, 0x4C, 0x9A, 0x00, 0x52, 0x03, 0x60, +0x04, 0x6C, 0x00, 0x18, 0xE5, 0xC1, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF6, 0x70, 0x9A, 0xC0, 0xF0, +0x18, 0x23, 0x01, 0x6A, 0x6C, 0xEA, 0x03, 0x22, +0x01, 0x6C, 0x00, 0x18, 0x5D, 0xD7, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF6, 0x50, 0x9A, 0x02, 0x6B, +0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, +0xD0, 0xD7, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF6, +0x50, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x01, 0x6C, 0x00, 0x18, 0xB3, 0xD7, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF6, 0x50, 0x9A, 0x08, 0x6B, +0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, +0x9C, 0xD7, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF6, +0x50, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x02, 0x6C, 0x00, 0x18, 0x5D, 0xD7, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF6, 0x50, 0x9A, 0x20, 0x6B, +0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, +0xD0, 0xD7, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF6, +0x50, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x02, 0x6C, 0x00, 0x18, 0xB3, 0xD7, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF6, 0x50, 0x9A, 0x80, 0x6B, +0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, +0x9C, 0xD7, 0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF6, +0x70, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, 0x5D, 0xD7, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF6, 0x70, 0x9B, +0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, +0x03, 0x6C, 0x00, 0x18, 0xD0, 0xD7, 0x30, 0xF0, +0x20, 0x6B, 0xC6, 0xF6, 0x70, 0x9B, 0x00, 0xF4, +0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, +0x00, 0x18, 0xB3, 0xD7, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF6, 0x70, 0x9B, 0x01, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, +0x9C, 0xD7, 0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF6, +0x70, 0x9B, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, +0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, 0x5D, 0xD7, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF6, 0x70, 0x9B, +0x04, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, +0x04, 0x6C, 0x00, 0x18, 0xD0, 0xD7, 0x30, 0xF0, +0x20, 0x6B, 0xC6, 0xF6, 0x70, 0x9B, 0x08, 0xF0, +0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, +0x00, 0x18, 0xB3, 0xD7, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF6, 0x70, 0x9B, 0x10, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, +0x9C, 0xD7, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF1, 0x5C, 0x9A, 0xC6, 0xF6, +0x70, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, +0x00, 0x18, 0x93, 0xD7, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, 0x44, 0x9A, +0xC6, 0xF6, 0x70, 0x9B, 0x6C, 0xEA, 0x03, 0x22, +0x02, 0x6C, 0x00, 0x18, 0x93, 0xD7, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, +0x48, 0x9A, 0xC6, 0xF6, 0x70, 0x9B, 0x6C, 0xEA, +0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, 0x93, 0xD7, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF2, 0x4C, 0x9A, 0xC6, 0xF6, 0x70, 0x9B, +0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, +0x93, 0xD7, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x00, 0x6B, 0x68, 0xDA, 0x69, 0xDA, +0x6A, 0xDA, 0x6B, 0xDA, 0x6C, 0xDA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF0, 0x7C, 0x9B, 0x10, 0xF0, +0x24, 0x6A, 0x10, 0xF6, 0x1A, 0x4A, 0x40, 0xDB, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x0B, 0x2A, +0x30, 0xF0, 0x20, 0x6B, 0x64, 0xF1, 0xB8, 0x9B, +0x30, 0xF0, 0x20, 0x6E, 0x64, 0xF1, 0xDC, 0x9E, +0x60, 0x9D, 0xCC, 0xEB, 0x0C, 0x10, 0x01, 0x72, +0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x64, 0xF1, +0xB8, 0x9B, 0x30, 0xF0, 0x20, 0x6E, 0x43, 0xF4, +0xD0, 0x9E, 0x60, 0x9D, 0xCD, 0xEB, 0x60, 0xDD, +0x05, 0x5C, 0x60, 0xF1, 0x1A, 0x60, 0x30, 0xF0, +0x20, 0x6B, 0x88, 0x34, 0xE3, 0xF0, 0x08, 0x4B, +0x8D, 0xE3, 0x60, 0x9B, 0x00, 0xEB, 0x07, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF1, 0x78, 0x9A, +0x7F, 0x6A, 0x80, 0xA3, 0x12, 0x10, 0x01, 0x72, +0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF1, +0x78, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, +0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, +0x40, 0xA3, 0x80, 0x4D, 0xC0, 0x4D, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, +0x02, 0x72, 0x05, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x64, 0xF1, 0x78, 0x9A, 0x5B, 0x10, 0x03, 0x72, +0x40, 0xF1, 0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x64, 0xF1, 0x78, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, +0x40, 0xA3, 0x8C, 0xEA, 0xE9, 0x17, 0x07, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF1, 0x60, 0x9A, +0xFB, 0x6A, 0x80, 0xA3, 0xE2, 0x17, 0x01, 0x72, +0x19, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF1, +0x98, 0x9A, 0xFF, 0x6A, 0x40, 0x6D, 0x60, 0xA4, +0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, +0x30, 0xF0, 0x20, 0x6B, 0x84, 0xF1, 0x80, 0x9B, +0x01, 0x6D, 0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, +0x4C, 0xEB, 0x60, 0xC4, 0x60, 0xA4, 0x04, 0x6D, +0x4C, 0xEB, 0x48, 0x10, 0x02, 0x72, 0x0F, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF1, 0x78, 0x9A, +0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF1, 0x60, 0x9A, +0xFE, 0x6A, 0x80, 0xA3, 0xB6, 0x17, 0x03, 0x72, +0x00, 0xF1, 0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x64, 0xF1, 0x98, 0x9A, 0xFF, 0x6B, 0x40, 0x6D, +0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF1, +0x80, 0x9A, 0x01, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, +0x4B, 0x10, 0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x84, 0xF1, 0x60, 0x9A, 0x80, 0xA3, 0xBF, 0x6A, +0x98, 0x17, 0x01, 0x72, 0x1B, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x64, 0xF1, 0x98, 0x9A, 0xFF, 0x6A, +0x40, 0x6D, 0x60, 0xA4, 0x10, 0x6E, 0x4C, 0xEB, +0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x30, 0xF0, +0x20, 0x6B, 0x84, 0xF1, 0x80, 0x9B, 0x60, 0xA4, +0x4C, 0xEB, 0xCD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, +0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, +0x60, 0xC4, 0x20, 0xE8, 0x02, 0x72, 0x0F, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF1, 0x78, 0x9A, +0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF1, 0x60, 0x9A, +0xEF, 0x6A, 0x80, 0xA3, 0x6A, 0x17, 0x03, 0x72, +0xA0, 0xF0, 0x1F, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x64, 0xF1, 0x98, 0x9A, 0xFF, 0x6B, 0x40, 0x6D, +0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF1, +0x80, 0x9A, 0x10, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, +0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x20, 0xE8, +0x08, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF1, +0x60, 0x9A, 0xFF, 0xF3, 0x1F, 0x6A, 0x80, 0xAB, +0x83, 0x10, 0x01, 0x72, 0x1D, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x64, 0xF1, 0x78, 0x9A, 0xFF, 0x6C, +0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x84, 0xF1, 0x60, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, +0x7F, 0x4D, 0x40, 0xAB, 0x41, 0x4D, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xCB, 0x40, 0xAB, +0x00, 0xF3, 0x00, 0x4D, 0x8C, 0xEA, 0x51, 0x10, +0x02, 0x72, 0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x64, 0xF1, 0x78, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x84, 0xF1, 0x60, 0x9A, 0xFF, 0xF6, 0x1F, 0x6A, +0x80, 0xAB, 0x52, 0x10, 0x03, 0x72, 0x6D, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF1, 0x78, 0x9A, +0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x84, 0xF1, 0x60, 0x9A, 0xFF, 0xF7, +0x1F, 0x6C, 0x7F, 0x4D, 0x40, 0xAB, 0x41, 0x4D, +0x8C, 0xEA, 0x27, 0x10, 0x08, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x84, 0xF1, 0x60, 0x9A, 0xF7, 0xF7, +0x1F, 0x6A, 0x80, 0xAB, 0x31, 0x10, 0x01, 0x72, +0x1E, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF1, +0x78, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, +0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF1, 0x60, 0x9A, +0xFF, 0xF7, 0x1F, 0x6C, 0xC1, 0xF7, 0x00, 0x4D, +0x40, 0xAB, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xCB, 0x40, 0xAB, 0x06, 0xF0, 0x00, 0x4D, +0x8C, 0xEA, 0xAD, 0xEA, 0x11, 0x10, 0x02, 0x72, +0x12, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF1, +0x78, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF1, +0x60, 0x9A, 0xFD, 0xF7, 0x1F, 0x6A, 0x80, 0xAB, +0x8C, 0xEA, 0x40, 0xCB, 0x20, 0xE8, 0x03, 0x72, +0x18, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF1, +0x78, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, +0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF1, 0x60, 0x9A, +0xFF, 0xF7, 0x1F, 0x6C, 0xC1, 0xF7, 0x00, 0x4D, +0x40, 0xAB, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xCB, 0x20, 0xE8, 0xFB, 0x63, 0x09, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x78, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF4, 0x9C, 0x9C, +0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xEA, 0xF2, 0x4B, 0xA2, 0x0D, 0x22, +0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x48, 0x9A, 0x00, 0xF4, 0x1D, 0x6C, +0x10, 0x6D, 0x00, 0x6E, 0xE0, 0xF1, 0x14, 0x6F, +0x0C, 0x10, 0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, 0x00, 0xF4, +0x1D, 0x6C, 0x10, 0x6D, 0x00, 0x6E, 0x82, 0xF3, +0x08, 0x6F, 0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF3, 0x78, 0x9B, 0xFF, 0x6A, 0x4C, 0xED, +0x6D, 0xE4, 0xC0, 0xA3, 0x3F, 0x6C, 0xCC, 0xEC, +0x80, 0xC3, 0x07, 0x2D, 0x80, 0xA3, 0x40, 0x6D, +0x4C, 0xEC, 0xAD, 0xEC, 0x4C, 0xEC, 0x80, 0xC3, +0x20, 0xE8, 0x01, 0x75, 0x07, 0x61, 0x80, 0xA3, +0x80, 0x6D, 0xAB, 0xED, 0x4C, 0xEC, 0xAD, 0xEC, +0x4C, 0xEC, 0x80, 0xC3, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x6C, 0x9B, +0xFF, 0x6A, 0xAC, 0xEA, 0x6D, 0xE4, 0x80, 0x9B, +0x80, 0xF4, 0x40, 0x32, 0x8D, 0xEA, 0x40, 0xDB, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x6C, 0x9A, +0x30, 0xF0, 0x20, 0x6E, 0x84, 0xF1, 0xC4, 0x9E, +0x6D, 0xE4, 0x40, 0x9B, 0x30, 0xF0, 0x20, 0x68, +0x84, 0xF1, 0x0C, 0x98, 0xCC, 0xEA, 0x30, 0xF0, +0x20, 0x6E, 0x84, 0xF1, 0xC8, 0x9E, 0xCD, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, +0xF0, 0x9A, 0x83, 0xF7, 0x00, 0x6A, 0x4B, 0xEA, +0xFD, 0xE4, 0x60, 0x9F, 0x7F, 0x6E, 0x4C, 0xEB, +0x43, 0xA5, 0xCC, 0xEA, 0x0D, 0xEA, 0x6D, 0xEA, +0x40, 0xDF, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, +0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6F, 0x83, 0xF2, +0xEC, 0x9F, 0x6D, 0xE4, 0x40, 0x9B, 0xED, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, +0x6C, 0x9A, 0xFF, 0x6F, 0x01, 0x4F, 0x6D, 0xE4, +0x40, 0x9B, 0xED, 0xEA, 0x3F, 0xF6, 0x1F, 0x4F, +0xEC, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF3, 0x50, 0x9A, 0x49, 0xE4, 0x60, 0x9A, +0x40, 0xA5, 0xCC, 0xEA, 0x4D, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0x84, 0xF1, 0x50, 0x9A, 0x49, 0xE4, +0xC0, 0xA2, 0x01, 0x6A, 0xCC, 0xEA, 0x05, 0x22, +0x03, 0xF7, 0x01, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x07, 0x10, 0x1F, 0xF7, 0x01, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x61, 0xA5, 0x60, 0x33, 0x6D, 0xEA, +0xC2, 0xA5, 0xFF, 0x76, 0x0D, 0x60, 0x30, 0xF0, +0x20, 0x6B, 0x84, 0xF1, 0x74, 0x9B, 0x4C, 0xEB, +0x80, 0xF4, 0xC0, 0x32, 0x30, 0xF0, 0x20, 0x6E, +0x83, 0xF2, 0xC4, 0x9E, 0xCD, 0xEA, 0x6D, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, 0x70, 0x9B, +0x6D, 0xE4, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF3, 0xC8, 0x9A, 0x02, 0xF0, 0x00, 0x6B, +0x6B, 0xEB, 0xD9, 0xE4, 0x40, 0x9E, 0x6C, 0xEA, +0x62, 0xAD, 0xE1, 0xF7, 0x1F, 0x6D, 0xAC, 0xEB, +0x6D, 0xEA, 0x40, 0xDE, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF3, 0x64, 0x9A, 0x0E, 0xF0, 0x01, 0x4D, +0x6D, 0xE4, 0x40, 0x9B, 0xAD, 0xEA, 0xC8, 0xF0, +0x00, 0x4D, 0xAC, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF3, 0x54, 0x9A, 0x51, 0xE4, +0x60, 0xA4, 0x7F, 0x6A, 0x6C, 0xEA, 0x40, 0xC4, +0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF1, 0x58, 0x9A, +0x1C, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x84, 0xF1, 0x5C, 0x9A, 0x08, 0xF4, 0x13, 0x6B, +0x60, 0xCA, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0x26, 0x67, 0x4C, 0xEF, 0x4C, 0xED, +0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, 0xFF, 0xF7, +0x1F, 0x68, 0xE3, 0xF2, 0x44, 0x9A, 0x0C, 0xEC, +0x05, 0xD4, 0x06, 0xD5, 0x07, 0xD7, 0x40, 0xAA, +0x00, 0x6C, 0xA4, 0x67, 0x62, 0x67, 0x0C, 0xEB, +0x04, 0xD3, 0x00, 0x18, 0x63, 0xCB, 0x03, 0x6C, +0x00, 0x18, 0xAC, 0xDF, 0x04, 0x95, 0x05, 0x92, +0xE1, 0xF7, 0x1F, 0x6B, 0x30, 0xF0, 0x20, 0x6C, +0xAC, 0xEB, 0xA3, 0xF2, 0x98, 0x9C, 0x6D, 0xE2, +0x0C, 0xEB, 0x60, 0xCC, 0x7C, 0x32, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF3, 0x64, 0x9B, 0x30, 0xF0, +0x20, 0x6C, 0xA3, 0xF3, 0x90, 0x9C, 0x6D, 0xE2, +0x60, 0xAB, 0x06, 0x95, 0x91, 0xE2, 0x0C, 0xEB, +0x80, 0x9C, 0x05, 0x25, 0x10, 0xF0, 0x00, 0x6D, +0xAB, 0xED, 0xAD, 0xEB, 0x0C, 0xEB, 0xD8, 0xF0, +0x00, 0x6D, 0x6C, 0xED, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF3, 0x64, 0x9B, 0x6D, 0xE2, 0xA0, 0xCB, +0x30, 0xF0, 0x20, 0x6B, 0x84, 0xF1, 0x70, 0x9B, +0x6D, 0xE2, 0xA0, 0xA3, 0x01, 0x6B, 0xAC, 0xEB, +0x05, 0x23, 0x03, 0xF7, 0x01, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0x07, 0x10, 0x07, 0x95, 0x1F, 0xF7, +0x01, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0x34, +0x8D, 0xEB, 0xFF, 0x71, 0x13, 0x60, 0x30, 0xF0, +0x20, 0x6C, 0x84, 0xF1, 0x94, 0x9C, 0x80, 0xF4, +0x20, 0x31, 0x6C, 0xEC, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF2, 0x64, 0x9B, 0x6D, 0xE9, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF3, 0x70, 0x9B, 0x8D, 0xE9, +0x6D, 0xE2, 0x20, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF3, 0x94, 0x9B, 0x7F, 0x6B, 0x91, 0xE2, +0xA0, 0xA4, 0xAC, 0xEB, 0x60, 0xC4, 0x30, 0xF0, +0x20, 0x6B, 0x84, 0xF1, 0x78, 0x9B, 0x1C, 0x6C, +0x80, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0x84, 0xF1, +0x7C, 0x9B, 0x08, 0xF4, 0x13, 0x6C, 0x80, 0xCB, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF2, 0x90, 0x9B, +0xF7, 0x6B, 0x91, 0xE2, 0xA0, 0xA4, 0xAC, 0xEB, +0x60, 0xC4, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFF, 0x6A, 0x4C, 0xEC, +0xAC, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xA4, 0xF1, 0x40, 0x9A, 0x8C, 0x34, 0x30, 0xF0, +0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, 0x43, 0xF4, +0x7C, 0x9B, 0x6D, 0xEA, 0x0C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA4, 0xF1, 0x40, 0x9A, 0x8C, 0x34, +0x30, 0xF0, 0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, +0x63, 0xF4, 0x70, 0x9B, 0x6C, 0xEA, 0x40, 0xDC, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, +0xAC, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xA4, 0xF1, 0x40, 0x9A, 0x8C, 0x34, 0x30, 0xF0, +0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, 0x83, 0xF4, +0x78, 0x9B, 0x6D, 0xEA, 0x0C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA4, 0xF1, 0x40, 0x9A, 0x8C, 0x34, +0x30, 0xF0, 0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, +0x83, 0xF4, 0x7C, 0x9B, 0x6C, 0xEA, 0x40, 0xDC, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xFF, 0x6B, 0xA4, 0xF1, 0x40, 0x9A, 0x6C, 0xEC, +0x8C, 0x34, 0x51, 0xE4, 0x40, 0x9C, 0x01, 0x6C, +0x40, 0xF7, 0x42, 0x32, 0x8C, 0xEA, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xFF, 0x6B, 0xA4, 0xF1, 0x40, 0x9A, 0x6C, 0xEC, +0x8C, 0x34, 0x51, 0xE4, 0x40, 0x9C, 0x01, 0x6C, +0x00, 0xF7, 0x42, 0x32, 0x8C, 0xEA, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x00, 0x68, 0x90, 0x67, 0x00, 0x6D, +0x00, 0x18, 0x59, 0xE4, 0x90, 0x67, 0x01, 0x6D, +0x01, 0x48, 0x00, 0x18, 0x69, 0xE4, 0x0B, 0x70, +0xF5, 0x61, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, +0x0C, 0x6B, 0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, +0x0A, 0x69, 0x12, 0xED, 0x4C, 0xED, 0x04, 0xD5, +0xFF, 0x68, 0x2C, 0xE8, 0x90, 0x67, 0x00, 0x18, +0x79, 0xE4, 0x17, 0x2A, 0xFF, 0x49, 0x00, 0xF6, +0x20, 0x31, 0x90, 0x67, 0x01, 0x6D, 0x00, 0xF6, +0x23, 0x31, 0x00, 0x18, 0x69, 0xE4, 0x41, 0x41, +0xEF, 0x2A, 0x01, 0x69, 0x2B, 0xE9, 0x09, 0x10, +0x04, 0x94, 0xFF, 0x49, 0x00, 0x6D, 0x00, 0xF6, +0x20, 0x31, 0x00, 0x18, 0x69, 0xE4, 0x00, 0xF6, +0x23, 0x31, 0x00, 0x51, 0xF5, 0x60, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0x0C, 0x68, 0x4C, 0xEC, 0x1B, 0xEC, +0x01, 0x28, 0xE5, 0xE8, 0x4C, 0xED, 0x10, 0xE9, +0x4C, 0xE9, 0x12, 0xE8, 0x4C, 0xE8, 0x0F, 0x25, +0x90, 0x67, 0x01, 0x6D, 0x00, 0x18, 0x59, 0xE4, +0x30, 0xF0, 0x20, 0x6A, 0x66, 0xF0, 0x00, 0x4A, +0x41, 0xE0, 0x60, 0xA0, 0x01, 0x6A, 0x44, 0xE9, +0x6D, 0xEA, 0x40, 0xC0, 0x11, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x66, 0xF0, 0x00, 0x4A, 0x49, 0xE0, +0x80, 0xA2, 0x01, 0x6B, 0x64, 0xE9, 0x6F, 0xEB, +0x8C, 0xEB, 0x60, 0xC2, 0x40, 0xA2, 0x04, 0x2A, +0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, 0x59, 0xE4, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0x24, 0x67, +0x0C, 0xE9, 0xAC, 0xE8, 0x91, 0x67, 0xB0, 0x67, +0x00, 0x18, 0xAC, 0xE4, 0x91, 0x67, 0xB0, 0x67, +0x00, 0x18, 0x93, 0xE4, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x0C, 0x6B, 0x7B, 0xED, 0x01, 0x2B, 0xE5, 0xE8, +0x05, 0x6E, 0xFF, 0x6A, 0x4C, 0xEC, 0x10, 0xEB, +0x12, 0xED, 0x4C, 0xED, 0xD8, 0xEB, 0x12, 0xEB, +0x4C, 0xEB, 0x1E, 0x73, 0x1D, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xA4, 0xF1, 0x64, 0x9A, 0xAC, 0x35, +0x30, 0xF0, 0x20, 0x6E, 0x6D, 0xE5, 0x40, 0x9B, +0xA4, 0xF1, 0xC8, 0x9E, 0xCC, 0xEA, 0x80, 0xF7, +0x80, 0x36, 0xCD, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xA4, 0xF1, 0x40, 0x9A, 0x08, 0x6B, +0x6B, 0xEB, 0x55, 0xE5, 0x40, 0x9D, 0x8A, 0x34, +0x6C, 0xEA, 0x07, 0x6B, 0x6C, 0xEC, 0x1E, 0x10, +0x20, 0x5B, 0x0C, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0xA4, 0xF1, 0x44, 0x9A, 0x1F, 0x6E, 0xAC, 0x35, +0xE6, 0x67, 0x55, 0xE5, 0xE4, 0xEB, 0x40, 0x9D, +0xEF, 0xEF, 0x0D, 0x10, 0xE0, 0x4B, 0x4C, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF1, 0x40, 0x9A, +0xAC, 0x35, 0x1F, 0x6E, 0x55, 0xE5, 0xE0, 0x9D, +0x46, 0x67, 0x44, 0xEB, 0x4F, 0xEA, 0xCC, 0xEC, +0xEC, 0xEA, 0x84, 0xEB, 0x8D, 0xEA, 0x40, 0xDD, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0x2C, 0xEC, +0xCC, 0xE9, 0x05, 0x67, 0x01, 0x29, 0x00, 0x6C, +0xB0, 0x67, 0x00, 0x18, 0xD2, 0xE4, 0xFF, 0x6C, +0x0C, 0xEC, 0xB1, 0x67, 0x00, 0x18, 0xC7, 0xE4, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xAE, 0xEC, 0x01, 0x6A, +0x8C, 0xEA, 0x20, 0xE8, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, +0x06, 0xD2, 0x05, 0xD4, 0x00, 0x69, 0x1F, 0x68, +0x22, 0x10, 0x05, 0x92, 0x40, 0xA2, 0x07, 0xD2, +0x00, 0x6A, 0x04, 0xD2, 0x04, 0x92, 0x07, 0x94, +0x12, 0x35, 0x87, 0xEA, 0xFF, 0x6A, 0x4C, 0xEC, +0x00, 0x18, 0x05, 0xE5, 0x06, 0x22, 0xFF, 0x6A, +0x04, 0x30, 0x4C, 0xE8, 0x05, 0x6A, 0x4E, 0xE8, +0x01, 0x10, 0x04, 0x30, 0xFF, 0x6A, 0x4C, 0xE8, +0x04, 0x92, 0x01, 0x4A, 0x08, 0x72, 0x04, 0xD2, +0xE9, 0x61, 0xFF, 0x6A, 0x01, 0x49, 0x4C, 0xE9, +0x05, 0x92, 0x01, 0x4A, 0x05, 0xD2, 0x06, 0x92, +0x43, 0xE9, 0xDB, 0x61, 0x1F, 0x6A, 0x4E, 0xE8, +0x0C, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x60, 0xA4, 0x01, 0x6A, 0x04, 0x67, +0x6C, 0xEA, 0x44, 0x22, 0x66, 0x32, 0x30, 0xF0, +0x20, 0x6B, 0xA4, 0xF1, 0x6C, 0x9B, 0x54, 0x32, +0x69, 0xE2, 0x61, 0xA4, 0x60, 0xC2, 0x40, 0xA4, +0x30, 0xF0, 0x20, 0x6B, 0xA4, 0xF1, 0x70, 0x9B, +0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x62, 0xA4, +0x60, 0xC2, 0x40, 0xA4, 0x30, 0xF0, 0x20, 0x6B, +0xA4, 0xF1, 0x74, 0x9B, 0x46, 0x32, 0x54, 0x32, +0x69, 0xE2, 0x63, 0xA4, 0x60, 0xC2, 0x40, 0xA4, +0x30, 0xF0, 0x20, 0x6B, 0xA4, 0xF1, 0x78, 0x9B, +0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x64, 0xA4, +0x60, 0xC2, 0x40, 0xA4, 0x30, 0xF0, 0x20, 0x6B, +0xA4, 0xF1, 0x7C, 0x9B, 0x46, 0x32, 0x54, 0x32, +0x69, 0xE2, 0x65, 0xA4, 0x60, 0xC2, 0x40, 0xA4, +0x30, 0xF0, 0x20, 0x6B, 0xC4, 0xF1, 0x60, 0x9B, +0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x66, 0xA4, +0x10, 0xF0, 0x00, 0x6C, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xC4, 0xF1, 0x64, 0x9A, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x81, 0x40, 0x06, 0x6D, +0x00, 0x18, 0x07, 0xE5, 0x60, 0xA0, 0x01, 0x6E, +0x82, 0x67, 0x66, 0x35, 0x6C, 0xEE, 0x00, 0x18, +0xF9, 0xE4, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x89, 0xE4, 0x30, 0xF0, 0x20, 0x6A, +0xC4, 0xF1, 0x68, 0x9A, 0xFF, 0xF7, 0x1F, 0x6A, +0x80, 0xAB, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x23, 0xF4, 0x9C, 0x9C, 0x8D, 0xEA, 0x40, 0xDB, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x15, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xFB, 0x63, 0x09, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF2, 0x5C, 0x9A, 0x00, 0x6B, 0x00, 0x6E, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, +0x70, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, +0x40, 0x9A, 0x04, 0xF7, 0x10, 0x6F, 0x80, 0x6D, +0x60, 0xDA, 0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, 0x80, 0xF1, +0x07, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0xC8, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF7, 0x88, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF3, 0x5C, 0x9A, +0x90, 0x34, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF3, 0x54, 0x9A, 0x03, 0x6C, 0x01, 0x6D, +0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0xFF, 0x68, +0x8C, 0xE8, 0x04, 0x6E, 0x04, 0x04, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0x93, 0x43, 0xF1, +0x40, 0x9A, 0x01, 0x6C, 0x60, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF1, 0x5C, 0x9A, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF1, 0x74, 0x9B, 0x0D, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x68, 0x8C, 0xEA, 0x06, 0xD2, 0xFF, 0x6B, +0x80, 0xF2, 0x4C, 0x98, 0x04, 0x01, 0xAC, 0xEB, +0x10, 0xD6, 0xA6, 0x67, 0x07, 0xD3, 0x04, 0x6E, +0x91, 0x67, 0x40, 0xEA, 0x06, 0x92, 0xFF, 0x6B, +0xB1, 0x67, 0x4C, 0x34, 0x02, 0x4C, 0x6C, 0xEC, +0x80, 0x18, 0x1C, 0x00, 0x10, 0x95, 0x80, 0xF2, +0x4C, 0x98, 0x04, 0x6E, 0x91, 0x67, 0x04, 0x4D, +0x40, 0xEA, 0x06, 0x92, 0xFF, 0x6B, 0xB1, 0x67, +0x4C, 0x32, 0x82, 0x67, 0x03, 0x4C, 0x6C, 0xEC, +0x08, 0xD2, 0x80, 0x18, 0x1C, 0x00, 0x10, 0x95, +0x80, 0xF2, 0x4C, 0x98, 0x04, 0x6E, 0x91, 0x67, +0x08, 0x4D, 0x40, 0xEA, 0x06, 0x92, 0xFF, 0x6B, +0xB1, 0x67, 0x4C, 0x34, 0x04, 0x4C, 0x6C, 0xEC, +0x80, 0x18, 0x1C, 0x00, 0x10, 0x95, 0x80, 0xF2, +0x4C, 0x98, 0x91, 0x67, 0x0C, 0x4D, 0x04, 0x6E, +0x40, 0xEA, 0x08, 0x94, 0xFF, 0x6A, 0xB1, 0x67, +0x05, 0x4C, 0x4C, 0xEC, 0x80, 0x18, 0x1C, 0x00, +0x07, 0x93, 0x48, 0x6A, 0x02, 0x73, 0x04, 0x60, +0x07, 0x92, 0x04, 0x72, 0x05, 0x61, 0x50, 0x6A, +0x06, 0x93, 0x6D, 0xEA, 0x7D, 0x67, 0x50, 0xC3, +0x80, 0x6A, 0x7D, 0x67, 0x4B, 0xEA, 0x51, 0xC3, +0x06, 0x92, 0x01, 0x68, 0x0B, 0xE8, 0x4C, 0x31, +0xFF, 0x6C, 0x12, 0xC3, 0x13, 0xC3, 0x2C, 0xEC, +0x04, 0x05, 0x80, 0x18, 0x1C, 0x00, 0x7D, 0x67, +0xFF, 0x6A, 0x81, 0x41, 0x10, 0xC3, 0x11, 0xC3, +0x12, 0xC3, 0x13, 0xC3, 0x4C, 0xEC, 0x04, 0x05, +0x80, 0x18, 0x1C, 0x00, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF2, 0x44, 0x9A, 0x00, 0x6B, 0x60, 0xC2, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0xEC, 0xEA, +0x04, 0x72, 0x0F, 0x61, 0x40, 0xA4, 0x40, 0xC5, +0x41, 0xA4, 0x41, 0xC5, 0x44, 0xA4, 0x42, 0xC5, +0x45, 0xA4, 0x43, 0xC5, 0x46, 0xA4, 0x44, 0xC5, +0x47, 0xA4, 0x45, 0xC5, 0x43, 0xA4, 0x40, 0xC6, +0x20, 0xE8, 0x02, 0x72, 0x0E, 0x61, 0x42, 0xA4, +0x40, 0xC5, 0x40, 0xA4, 0x41, 0xC5, 0x44, 0xA4, +0x42, 0xC5, 0x45, 0xA4, 0x43, 0xC5, 0x46, 0xA4, +0x44, 0xC5, 0x47, 0xA4, 0x45, 0xC5, 0x43, 0xA4, +0x40, 0xC6, 0x20, 0xE8, 0xFF, 0x6A, 0xEC, 0xEA, +0x04, 0x6B, 0x4E, 0xEB, 0x06, 0x2B, 0x40, 0xA5, +0x40, 0xC4, 0x41, 0xA5, 0x62, 0xC4, 0x41, 0xC4, +0x0C, 0x10, 0x02, 0x72, 0x0A, 0x61, 0x41, 0xA5, +0x40, 0xC4, 0x61, 0xA5, 0x5F, 0x6A, 0x6C, 0xEA, +0x20, 0x6B, 0x6D, 0xEA, 0x41, 0xC4, 0x40, 0xA5, +0x42, 0xC4, 0x63, 0x44, 0xC0, 0xA3, 0x20, 0x6A, +0xCD, 0xEA, 0x40, 0xC3, 0x42, 0xA5, 0x44, 0xC4, +0x43, 0xA5, 0x45, 0xC4, 0x44, 0xA5, 0x46, 0xC4, +0x45, 0xA5, 0x47, 0xC4, 0x20, 0xE8, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x4C, 0xED, 0x4C, 0xEE, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, 0x05, 0x00, +0x24, 0x67, 0x09, 0xD5, 0x08, 0xD6, 0x90, 0x67, +0x00, 0x6D, 0x08, 0x6E, 0x40, 0xEA, 0x08, 0x97, +0x91, 0x67, 0xB0, 0x67, 0x04, 0x06, 0x80, 0x18, +0x6D, 0x00, 0x09, 0x92, 0x10, 0x2A, 0x60, 0xA0, +0xFF, 0x6C, 0x8E, 0xEB, 0x07, 0x2B, 0x01, 0x4A, +0x8C, 0xEA, 0x06, 0x72, 0x60, 0xC0, 0x01, 0x48, +0xF6, 0x61, 0x05, 0x10, 0x04, 0x03, 0x49, 0xE3, +0x64, 0xA2, 0x01, 0x4B, 0x64, 0xC2, 0x08, 0x97, +0x91, 0x67, 0x05, 0x05, 0x04, 0x06, 0x80, 0x18, +0x7F, 0x00, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0x24, 0x67, 0xFF, 0x68, +0xAC, 0xE8, 0x04, 0x04, 0xB1, 0x67, 0x03, 0x6E, +0x40, 0xEA, 0x24, 0x28, 0x5D, 0x67, 0x70, 0xA2, +0xFF, 0x6A, 0x4E, 0xEB, 0x00, 0x6A, 0x11, 0x2B, +0x5D, 0x67, 0x70, 0xC2, 0x71, 0xA2, 0xFF, 0x6A, +0x4E, 0xEB, 0x01, 0x6A, 0x0A, 0x2B, 0x5D, 0x67, +0x71, 0xC2, 0x52, 0xA2, 0xFF, 0x6B, 0x6E, 0xEA, +0x03, 0x2A, 0x7D, 0x67, 0x52, 0xC3, 0x06, 0x10, +0x02, 0x6A, 0x04, 0x03, 0x49, 0xE3, 0x60, 0xA2, +0x01, 0x4B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0x91, 0x67, 0x04, 0x05, +0x03, 0x6E, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x30, 0xF0, 0x20, 0x69, 0x80, 0xF2, 0x48, 0x99, +0xFF, 0x68, 0xAC, 0xE8, 0x0E, 0xD4, 0x00, 0x6D, +0x05, 0x04, 0x08, 0x6E, 0x40, 0xEA, 0x80, 0xF2, +0x48, 0x99, 0x07, 0x04, 0x00, 0x6D, 0x08, 0x6E, +0x40, 0xEA, 0x0E, 0x94, 0x05, 0x05, 0x00, 0xF0, +0x11, 0x06, 0xF0, 0x67, 0x80, 0x18, 0x6D, 0x00, +0x30, 0xF0, 0x20, 0x6C, 0xCB, 0xF1, 0x1B, 0x4C, +0x07, 0x05, 0x04, 0x06, 0xF0, 0x67, 0x80, 0x18, +0x6D, 0x00, 0x00, 0x6B, 0x07, 0x6A, 0x9D, 0x67, +0x75, 0xE4, 0x85, 0x67, 0x9B, 0xA4, 0x20, 0xF0, +0xA3, 0xA5, 0xAE, 0xEC, 0x0A, 0x2C, 0xFF, 0x4A, +0x00, 0xF6, 0x40, 0x32, 0x00, 0xF6, 0x43, 0x32, +0x81, 0x42, 0xFF, 0x4B, 0xF0, 0x2C, 0x00, 0x6A, +0x09, 0x10, 0x04, 0x03, 0x49, 0xE3, 0x6C, 0xA2, +0x44, 0xA2, 0x4B, 0xE3, 0x01, 0x52, 0x58, 0x67, +0x01, 0x6B, 0x6E, 0xEA, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x80, 0xF2, 0x48, 0x98, +0x04, 0x01, 0x0C, 0xD4, 0x00, 0x6D, 0x91, 0x67, +0x08, 0x6E, 0x40, 0xEA, 0x80, 0xF2, 0x48, 0x98, +0x06, 0x04, 0x00, 0x6D, 0x08, 0x6E, 0x30, 0xF0, +0x20, 0x68, 0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x98, +0x30, 0xF0, 0x20, 0x6D, 0x91, 0x67, 0xCB, 0xF1, +0x1B, 0x4D, 0x03, 0x6E, 0x40, 0xEA, 0x80, 0xF2, +0x4C, 0x98, 0x0C, 0x95, 0x06, 0x04, 0x03, 0x6E, +0x40, 0xEA, 0x5D, 0x67, 0x72, 0xA2, 0x5A, 0xA2, +0x4E, 0xEB, 0x02, 0x6A, 0x0C, 0x2B, 0x9D, 0x67, +0x59, 0xA4, 0x71, 0xA4, 0x4E, 0xEB, 0x01, 0x6A, +0x06, 0x2B, 0x5D, 0x67, 0x70, 0xA2, 0x58, 0xA2, +0x4E, 0xEB, 0x00, 0x6A, 0x09, 0x23, 0x04, 0x03, +0x49, 0xE3, 0x60, 0xA2, 0x48, 0xA2, 0x4B, 0xE3, +0x01, 0x52, 0x58, 0x67, 0x01, 0x6B, 0x6E, 0xEA, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, +0x34, 0x22, 0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, +0x00, 0x48, 0x00, 0x18, 0x96, 0xD3, 0x00, 0xF1, +0xA7, 0xA0, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, +0x6C, 0x9B, 0x04, 0xD2, 0xB5, 0xE2, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0xBC, 0x35, +0x30, 0xF0, 0x20, 0x6C, 0x75, 0xE5, 0x7C, 0x6E, +0xEB, 0xF1, 0x18, 0x4C, 0x30, 0xF0, 0x20, 0x69, +0x40, 0xEA, 0x20, 0xF3, 0x54, 0x99, 0x00, 0x6D, +0x03, 0x6C, 0x40, 0xEA, 0x04, 0x92, 0x00, 0xF1, +0x88, 0xA0, 0xFF, 0xF7, 0x1F, 0x6B, 0x91, 0xE2, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF3, 0x5C, 0x9A, +0x9C, 0x34, 0x8F, 0x34, 0x6C, 0xEC, 0x40, 0xEA, +0x20, 0xF3, 0x54, 0x99, 0x03, 0x6C, 0x01, 0x6D, +0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xF4, 0x63, 0x17, 0x62, +0x16, 0xD1, 0x15, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, +0x8C, 0xEA, 0x10, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xFF, 0x69, 0x80, 0xF2, 0x48, 0x9A, 0x2C, 0xED, +0x30, 0xF0, 0x20, 0x6C, 0x11, 0xD5, 0x06, 0xF6, +0x1C, 0x4C, 0x00, 0x6D, 0x80, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF7, 0x06, 0xA2, +0x00, 0x18, 0x96, 0xD3, 0x10, 0x93, 0x01, 0xE2, +0x1C, 0x30, 0x01, 0x73, 0x12, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0xC6, 0xF4, 0x4C, 0xA3, 0x0D, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x8C, 0x9A, +0x91, 0xE0, 0x40, 0xA4, 0x2C, 0xEA, 0x08, 0x4A, +0x2C, 0xEA, 0x40, 0xC4, 0x01, 0x6A, 0xC6, 0xF4, +0x4C, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, +0x50, 0x9A, 0x41, 0x6B, 0x87, 0x40, 0x49, 0xE0, +0x60, 0xC2, 0x11, 0x95, 0x29, 0x4C, 0x80, 0x18, +0x79, 0x0D, 0x30, 0xF0, 0x20, 0x6A, 0x01, 0x6B, +0x06, 0xF6, 0x7C, 0xC2, 0x06, 0xF6, 0x1C, 0x4A, +0x03, 0x6B, 0x61, 0xC2, 0x00, 0x6B, 0x62, 0xC2, +0x5F, 0x6B, 0x63, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF2, 0x58, 0xA2, 0x67, 0x40, 0x55, 0x4B, +0xFE, 0x72, 0xFE, 0x6D, 0x01, 0x60, 0x02, 0x6D, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x8C, 0x9A, +0x89, 0xE3, 0xA0, 0xC2, 0xA0, 0xA2, 0x30, 0xF0, +0x20, 0x6A, 0x06, 0xF6, 0x1C, 0x4A, 0xA4, 0xC2, +0x10, 0x95, 0x01, 0x4B, 0x01, 0x75, 0x0A, 0x61, +0x91, 0xE3, 0x03, 0x6D, 0xA0, 0xC4, 0x30, 0xF0, +0x20, 0x6C, 0xC3, 0xF2, 0xD0, 0x9C, 0x01, 0x6C, +0xD9, 0xE3, 0x09, 0x10, 0x91, 0xE3, 0x03, 0x6D, +0xA0, 0xC4, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF2, +0xD0, 0x9C, 0x02, 0x6C, 0xD9, 0xE3, 0x80, 0xC6, +0x86, 0xC2, 0xA5, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xC4, 0xF3, 0x98, 0xA2, +0x02, 0x4B, 0xFE, 0x74, 0x1F, 0x61, 0x30, 0xF0, +0x20, 0x6C, 0x23, 0xF2, 0x8C, 0x9C, 0xC4, 0xF3, +0xBB, 0xA2, 0x02, 0x6E, 0x91, 0xE3, 0xA0, 0xC4, +0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF2, 0x90, 0x9C, +0xC4, 0xF3, 0x5C, 0xA2, 0x30, 0xF0, 0x20, 0x6D, +0x8D, 0xE3, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x26, 0xF6, 0x03, 0x4C, 0x6B, 0xF2, 0x1B, 0x4D, +0x40, 0xEA, 0x13, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF2, 0x4C, 0x9A, 0x00, 0x6C, 0x49, 0xE3, +0x80, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, +0x50, 0x9A, 0x4D, 0xE3, 0x30, 0xF0, 0x20, 0x6A, +0x06, 0xF6, 0x1C, 0x4A, 0x80, 0xC3, 0x87, 0xC2, +0x88, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, +0x8C, 0x9B, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF2, +0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xA7, 0x42, +0x91, 0xE0, 0x26, 0xF6, 0x05, 0x4B, 0x01, 0x4D, +0xC0, 0xA2, 0xC0, 0xC4, 0xC0, 0xA2, 0x01, 0x4A, +0xAA, 0xEA, 0xC0, 0xC3, 0x01, 0x4C, 0x01, 0x4B, +0xF7, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6D, 0x06, 0x04, +0xEB, 0xF1, 0x18, 0x4D, 0x10, 0x6E, 0x40, 0xEA, +0x00, 0x69, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF2, 0x48, 0x9A, 0xC3, 0xF2, +0x74, 0x9B, 0x49, 0xE0, 0x6D, 0xE0, 0x00, 0x6C, +0x80, 0xC2, 0x01, 0x4A, 0x6A, 0xEA, 0xFB, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x64, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF2, 0x78, 0x9A, 0xFB, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xF3, 0x44, 0x9A, 0x13, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x00, 0xF1, +0x66, 0xA2, 0x00, 0xF1, 0x47, 0xA2, 0x12, 0xD2, +0x4B, 0xE3, 0x5C, 0x32, 0xFF, 0xF7, 0x1F, 0x6B, +0x58, 0x4A, 0x6C, 0xEA, 0x11, 0xD2, 0x00, 0x18, +0x96, 0xD3, 0x12, 0x94, 0xFF, 0xF7, 0x1F, 0x6D, +0x63, 0x6E, 0x89, 0xE2, 0x5C, 0x32, 0x4F, 0x32, +0xAC, 0xEA, 0x04, 0xD2, 0x11, 0x94, 0x13, 0x92, +0x00, 0x6D, 0x10, 0x6F, 0x40, 0xEA, 0x10, 0x93, +0x01, 0x73, 0x05, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF3, 0x50, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x40, 0xF3, 0x4C, 0x9A, 0x30, 0xF0, +0x20, 0x6D, 0x06, 0x04, 0x06, 0xF6, 0x1C, 0x4D, +0x0A, 0x06, 0x10, 0x6F, 0x40, 0xEA, 0x01, 0x49, +0xFF, 0x6A, 0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF2, 0x58, 0x9A, 0x60, 0xA2, 0x04, 0x6A, +0x6C, 0xEA, 0x03, 0x22, 0x0A, 0x71, 0x9D, 0x61, +0x02, 0x10, 0x0A, 0x59, 0x0B, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF2, 0x7C, 0x9A, 0xFF, 0x6C, +0x20, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF2, 0x68, 0x9B, 0x0A, 0x02, 0x61, 0xE0, +0x0E, 0x03, 0x80, 0xA2, 0x01, 0x4A, 0x6A, 0xEA, +0x80, 0xC0, 0x01, 0x48, 0xFA, 0x61, 0x10, 0x94, +0x01, 0x74, 0x07, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF7, 0x86, 0xA2, 0x20, 0x6D, 0x80, 0x18, +0x1D, 0x0A, 0x00, 0x18, 0xA0, 0xD3, 0x29, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, 0x50, 0x9A, +0xFF, 0x69, 0x30, 0xF0, 0x20, 0x68, 0x40, 0xA2, +0x00, 0x6C, 0xFF, 0x6D, 0x4C, 0xE9, 0xA0, 0xF2, +0x50, 0x98, 0x1D, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, 0x40, 0xEA, +0x01, 0x72, 0x1F, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF7, 0x86, 0xA3, +0xA0, 0xF2, 0x54, 0x9A, 0x01, 0x6D, 0x18, 0x6E, +0x00, 0x6F, 0x40, 0xEA, 0xA0, 0xF2, 0x50, 0x98, +0x00, 0x6C, 0xB1, 0x67, 0x1E, 0x6E, 0x40, 0xEA, +0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xA0, 0xF2, 0x54, 0x9A, 0xA6, 0xF7, +0x86, 0xA3, 0x01, 0x6D, 0x18, 0x6E, 0x00, 0x6F, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0xC3, 0xF3, 0x6F, 0xA2, 0x06, 0x2B, +0xC0, 0xF0, 0xA7, 0xA2, 0x01, 0x6C, 0xB6, 0x35, +0x00, 0x18, 0x0B, 0xCB, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, 0x0B, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x60, 0x9A, +0xFF, 0x6C, 0x20, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x17, 0x97, +0x16, 0x91, 0x15, 0x90, 0x0C, 0x63, 0x00, 0xEF, +0xF5, 0x63, 0x15, 0x62, 0x14, 0xD1, 0x13, 0xD0, +0xFF, 0xF7, 0x1F, 0x6A, 0x24, 0x67, 0x4C, 0xE9, +0x6F, 0x41, 0x4C, 0xEB, 0x02, 0x5B, 0x40, 0xF1, +0x0F, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, +0x14, 0x4A, 0x10, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xCB, 0xF2, 0x56, 0xA2, 0x30, 0xF0, 0x20, 0x68, +0x10, 0x94, 0x11, 0xD2, 0x11, 0x96, 0x80, 0xF2, +0x4C, 0x98, 0x30, 0xF0, 0x20, 0x6D, 0xCB, 0xF2, +0x17, 0x4D, 0x40, 0xEA, 0x01, 0x6B, 0x6E, 0xE9, +0x31, 0x29, 0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, +0x20, 0x6D, 0x07, 0x04, 0xAB, 0xF2, 0x05, 0x4D, +0x10, 0x6E, 0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x98, +0x30, 0xF0, 0x20, 0x6D, 0x0B, 0x04, 0x0B, 0xF2, +0x08, 0x4D, 0x10, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x60, 0xF3, 0x44, 0x9A, 0x11, 0x96, +0x00, 0x6C, 0xA4, 0x67, 0x04, 0xD1, 0x20, 0x6F, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF3, +0x54, 0x9A, 0x10, 0x95, 0x30, 0xF0, 0x20, 0x69, +0x11, 0x97, 0x86, 0xF5, 0x14, 0x49, 0x07, 0x04, +0xD1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x80, 0xF2, 0x4C, 0x98, 0xC6, 0xF5, 0x14, 0x4C, +0xB1, 0x67, 0x29, 0x10, 0x80, 0xF2, 0x4C, 0x98, +0x30, 0xF0, 0x20, 0x6D, 0x07, 0x04, 0x0B, 0xF2, +0x08, 0x4D, 0x10, 0x6E, 0x40, 0xEA, 0x00, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF3, +0x44, 0x9A, 0x11, 0x96, 0x00, 0x6C, 0xA4, 0x67, +0x10, 0x6F, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF3, 0x44, 0x9A, 0x10, 0x95, 0x30, 0xF0, +0x20, 0x69, 0x11, 0x97, 0x86, 0xF5, 0x14, 0x49, +0x07, 0x04, 0xD1, 0x67, 0x40, 0xEA, 0x80, 0xF2, +0x4C, 0x98, 0x30, 0xF0, 0x20, 0x6C, 0xA7, 0x41, +0xC6, 0xF5, 0x14, 0x4C, 0x01, 0x4D, 0x28, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0xC4, 0xF3, 0x78, 0xA2, 0xFE, 0x73, +0x14, 0x61, 0xC4, 0xF3, 0x5A, 0xA2, 0x30, 0x6B, +0x9D, 0x67, 0x6C, 0xEA, 0x53, 0x32, 0x58, 0xC4, +0x30, 0xF0, 0x20, 0x6D, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6C, 0x80, 0xF2, 0x4C, 0x9A, +0xE6, 0xF5, 0x1C, 0x4C, 0xC6, 0xF5, 0x14, 0x4D, +0x17, 0x10, 0xFE, 0x4B, 0xFF, 0x6A, 0x4C, 0xEB, +0x02, 0x5B, 0x15, 0x60, 0x30, 0xF0, 0x20, 0x6D, +0xC6, 0xF5, 0x14, 0x4D, 0x66, 0xA5, 0x03, 0x6A, +0x30, 0xF0, 0x20, 0x6C, 0x6C, 0xEA, 0x7D, 0x67, +0x58, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0xE6, 0xF5, 0x1C, 0x4C, 0x08, 0x4D, +0x20, 0x6E, 0x40, 0xEA, 0x0D, 0x10, 0x05, 0x6B, +0x9D, 0x67, 0x78, 0xC4, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF2, 0x80, 0x9B, 0x10, 0x6D, 0x60, 0xA4, +0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, +0x30, 0xF0, 0x20, 0x6A, 0x0B, 0xF4, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA7, 0x42, 0xE6, 0xF5, +0x1C, 0x4B, 0x19, 0x4D, 0x01, 0x6C, 0xE0, 0xA2, +0xC0, 0xA3, 0x01, 0x4A, 0x01, 0x4B, 0xEE, 0xEE, +0x01, 0x5E, 0xD8, 0x67, 0xCB, 0xEE, 0xAA, 0xEA, +0xCC, 0xEC, 0xF5, 0x61, 0x01, 0x74, 0x0C, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x60, 0x9A, +0xFF, 0x6C, 0x08, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x74, 0x10, +0x7D, 0x67, 0x58, 0xA3, 0x04, 0x5A, 0x62, 0x60, +0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, +0x84, 0xF5, 0x54, 0xC0, 0x84, 0xF5, 0x58, 0xA0, +0x01, 0x6C, 0x30, 0xF0, 0x20, 0x69, 0x8D, 0xEA, +0x84, 0xF5, 0x58, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0xE6, 0xF5, 0x1C, 0x49, +0x30, 0xF0, 0x20, 0x6C, 0x0B, 0xF4, 0x14, 0x4C, +0xB1, 0x67, 0x20, 0x6E, 0x40, 0xEA, 0x5D, 0x67, +0x98, 0xA2, 0xE0, 0xF0, 0xBD, 0xA0, 0xD1, 0x67, +0x80, 0x18, 0x2F, 0x00, 0x43, 0xF4, 0x58, 0xA0, +0x12, 0x22, 0xC0, 0xF0, 0x59, 0xA0, 0x01, 0x6B, +0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x68, +0x0A, 0xF5, 0x14, 0x48, 0x00, 0x69, 0x91, 0x67, +0xB0, 0x67, 0x01, 0x49, 0x00, 0x18, 0x2E, 0xC4, +0x04, 0x71, 0x18, 0x48, 0xF8, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x84, 0xF5, +0x74, 0xA2, 0x01, 0x73, 0x0B, 0x60, 0x05, 0x23, +0x02, 0x73, 0x0D, 0x60, 0x03, 0x73, 0x10, 0x60, +0x2B, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0x4B, 0xF4, +0x04, 0x4C, 0x0E, 0x10, 0x30, 0xF0, 0x20, 0x6C, +0x4B, 0xF4, 0x0C, 0x4C, 0x09, 0x10, 0x30, 0xF0, +0x20, 0x6C, 0x4B, 0xF4, 0x14, 0x4C, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6C, 0x4B, 0xF4, 0x1C, 0x4C, +0x84, 0xF5, 0xF5, 0xA2, 0x30, 0xF0, 0x20, 0x6D, +0xAB, 0xF2, 0x15, 0x4D, 0x06, 0x06, 0x80, 0x18, +0x7F, 0x00, 0x0E, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x05, 0x6B, 0x84, 0xF5, +0x98, 0xA2, 0x84, 0xF5, 0x74, 0xC2, 0x02, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0x84, 0xF5, 0x78, 0xC2, +0x15, 0x97, 0x14, 0x91, 0x13, 0x90, 0x0B, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x69, +0x8C, 0xE9, 0xFF, 0x68, 0xAC, 0xE8, 0x80, 0x18, +0x00, 0x00, 0x91, 0x67, 0x80, 0x18, 0x10, 0x02, +0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, 0x31, 0x01, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF2, 0x78, 0x9A, 0x0A, 0xD4, 0x0B, 0xD5, +0x40, 0xA3, 0xFF, 0x6C, 0x19, 0x6D, 0x8C, 0xEA, +0xAB, 0xED, 0xAC, 0xEA, 0x08, 0x6D, 0xAD, 0xEA, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x69, +0x80, 0xF2, 0x48, 0x99, 0x30, 0xF0, 0x20, 0x68, +0x6B, 0xF2, 0x14, 0x48, 0x90, 0x67, 0x00, 0x6D, +0x04, 0x6E, 0x40, 0xEA, 0x80, 0xF2, 0x48, 0x99, +0x00, 0x6D, 0xDF, 0x6E, 0x84, 0x40, 0x40, 0xEA, +0x0A, 0x91, 0x0B, 0x92, 0x30, 0xF0, 0x20, 0x68, +0x08, 0x49, 0x45, 0xE1, 0xC0, 0xF3, 0x40, 0x98, +0x81, 0x41, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0xC4, 0xF3, 0x55, 0xC3, +0xC0, 0xF3, 0x40, 0x98, 0x04, 0xD3, 0x84, 0x41, +0x40, 0xEA, 0x04, 0x93, 0x85, 0x41, 0xC4, 0xF3, +0x58, 0xC3, 0xC0, 0xF3, 0x40, 0x98, 0x40, 0xEA, +0x04, 0x93, 0x86, 0x41, 0xC4, 0xF3, 0x59, 0xC3, +0xC0, 0xF3, 0x40, 0x98, 0x40, 0xEA, 0x04, 0x93, +0x87, 0x41, 0xC4, 0xF3, 0x5A, 0xC3, 0xC0, 0xF3, +0x40, 0x98, 0x40, 0xEA, 0x04, 0x93, 0x87, 0x41, +0x01, 0x4C, 0xC4, 0xF3, 0x5B, 0xC3, 0xC0, 0xF3, +0x40, 0x98, 0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF2, +0x1D, 0x48, 0x40, 0xEA, 0x04, 0x93, 0xC4, 0xF3, +0x5C, 0xC3, 0x47, 0x41, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0x4A, 0x8B, 0xF2, 0x05, 0x4B, 0x05, 0xD2, +0x04, 0xD3, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x40, 0x9A, 0x05, 0x94, 0x40, 0xEA, 0x40, 0xC0, +0x04, 0x93, 0x05, 0x92, 0x01, 0x48, 0x6A, 0xE8, +0x01, 0x4A, 0x05, 0xD2, 0xF2, 0x61, 0x47, 0x41, +0x2A, 0x4A, 0x30, 0xF0, 0x20, 0x68, 0x04, 0xD2, +0xAB, 0xF2, 0x05, 0x48, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x40, 0x9B, 0x04, 0x94, 0x40, 0xEA, +0x40, 0xC0, 0x04, 0x92, 0x30, 0xF0, 0x20, 0x6B, +0x01, 0x48, 0xAB, 0xF2, 0x15, 0x4B, 0x01, 0x4A, +0x6A, 0xE8, 0x04, 0xD2, 0xEF, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, 0x87, 0x41, +0x5A, 0x4C, 0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, +0xA6, 0xF6, 0x00, 0x48, 0x30, 0xF0, 0x20, 0x6B, +0x24, 0xF4, 0x55, 0xC0, 0xC0, 0xF3, 0x40, 0x9B, +0x87, 0x41, 0x5B, 0x4C, 0x40, 0xEA, 0x24, 0xF4, +0x56, 0xC0, 0x24, 0xF4, 0x55, 0xA0, 0x40, 0x32, +0x04, 0xD2, 0x04, 0x93, 0x24, 0xF4, 0x56, 0xA0, +0x00, 0x68, 0x4D, 0xEB, 0x04, 0xD3, 0x12, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x87, 0x41, 0xC0, 0xF3, +0x40, 0x9A, 0x5C, 0x4C, 0x11, 0xE4, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, +0x6D, 0xE0, 0x24, 0xF4, 0x57, 0xC3, 0x01, 0x48, +0xFF, 0x6A, 0x4C, 0xE8, 0x04, 0x92, 0x43, 0xE8, +0xEB, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, +0x00, 0x4B, 0xC4, 0xF3, 0x59, 0xA3, 0xC4, 0xF3, +0x7A, 0xA3, 0x40, 0x32, 0x6D, 0xEA, 0x08, 0x6B, +0x4C, 0xEB, 0x0A, 0x23, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x58, 0x9A, 0x03, 0x6B, 0x01, 0x6C, +0x60, 0xC2, 0x80, 0x18, 0x28, 0x09, 0x19, 0x10, +0x07, 0x6C, 0x4C, 0xEC, 0x4F, 0x44, 0xFF, 0xF7, +0x1F, 0x6B, 0x6C, 0xEA, 0x02, 0x5A, 0x11, 0x60, +0x00, 0x6D, 0x80, 0x18, 0xC1, 0x02, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF2, 0x78, 0x9A, 0xFF, 0x6C, +0x19, 0x6D, 0x40, 0xA3, 0xAB, 0xED, 0x8C, 0xEA, +0xAC, 0xEA, 0x10, 0x6D, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xC3, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x00, 0x6A, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF2, 0x64, 0x9B, 0xFF, 0x6A, 0x8C, 0xEA, +0x80, 0xAB, 0xE1, 0xF7, 0x1F, 0x6B, 0x30, 0xF0, +0x20, 0x6E, 0x8C, 0xEB, 0x69, 0xE2, 0x5C, 0x34, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x58, 0x9A, +0x10, 0x4C, 0x06, 0x6D, 0x2B, 0xF7, 0x18, 0x4E, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, 0x04, 0x4B, +0x60, 0x9B, 0x0F, 0xD7, 0x0D, 0xD5, 0x0E, 0xD6, +0x20, 0xAB, 0xFF, 0x6A, 0x8C, 0xEA, 0xE1, 0xF7, +0x1F, 0x6C, 0x8C, 0xE9, 0x25, 0xE2, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x68, 0x0C, 0xF0, +0x10, 0x4C, 0x00, 0x6D, 0xA0, 0xF1, 0x00, 0x6E, +0x40, 0xEA, 0x3C, 0x31, 0xA0, 0xF3, 0x58, 0x98, +0x0D, 0x96, 0x87, 0x41, 0x12, 0x4C, 0x01, 0x6D, +0x40, 0xEA, 0xA0, 0xF3, 0x58, 0x98, 0x0E, 0x96, +0x87, 0x41, 0x13, 0x4C, 0x01, 0x6D, 0x40, 0xEA, +0xA0, 0xF3, 0x58, 0x98, 0x0F, 0x96, 0x87, 0x41, +0x14, 0x4C, 0x01, 0x6D, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF2, 0x04, 0x4A, 0x40, 0x9A, +0x0D, 0x93, 0xE1, 0xF7, 0x1F, 0x6C, 0x20, 0xAA, +0x40, 0xA3, 0x30, 0xF0, 0x20, 0x6E, 0x8C, 0xE9, +0x25, 0xE2, 0xA0, 0xF3, 0x58, 0x98, 0x3C, 0x31, +0x81, 0x41, 0x01, 0x6D, 0x2C, 0xF1, 0x0C, 0x4E, +0x40, 0xEA, 0x02, 0x49, 0x00, 0x6A, 0x05, 0xD1, +0x04, 0xD2, 0x40, 0x10, 0x04, 0x92, 0x1C, 0x68, +0x30, 0xF0, 0x20, 0x69, 0x18, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x0C, 0xF0, 0x14, 0x4A, 0x00, 0x6D, +0x1C, 0x6E, 0x12, 0xE8, 0x01, 0xE2, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, 0x90, 0x67, +0x40, 0xEA, 0xA0, 0xF3, 0x58, 0x99, 0x05, 0x94, +0x01, 0x6D, 0xC4, 0x40, 0x40, 0xEA, 0x05, 0x92, +0x62, 0xA8, 0xC7, 0x40, 0x01, 0x4A, 0x40, 0xD8, +0x6D, 0xE2, 0xA0, 0xF3, 0x58, 0x99, 0x83, 0x67, +0x05, 0xD3, 0x01, 0x6D, 0x05, 0x4E, 0x40, 0xEA, +0x05, 0x93, 0x46, 0xA8, 0xC7, 0x40, 0x01, 0x4B, +0x62, 0xD8, 0x4D, 0xE3, 0xEE, 0x4A, 0x06, 0xD3, +0x4A, 0xC8, 0x05, 0x92, 0x01, 0x6D, 0x11, 0x4E, +0x11, 0x4A, 0x44, 0xD8, 0xA0, 0xF3, 0x58, 0x99, +0x06, 0x94, 0x40, 0xEA, 0x04, 0x94, 0x06, 0x93, +0xFF, 0x6A, 0x01, 0x4C, 0x01, 0x4B, 0x4C, 0xEC, +0x05, 0xD3, 0x04, 0xD4, 0x30, 0xF0, 0x20, 0x6A, +0x2C, 0xF1, 0x4C, 0xA2, 0x04, 0x93, 0x43, 0xEB, +0xB9, 0x61, 0x05, 0x94, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x58, 0x9A, 0x30, 0xF0, 0x20, 0x6E, +0x01, 0x4C, 0x01, 0x6D, 0x4C, 0xF1, 0x08, 0x4E, +0x40, 0xEA, 0x05, 0x94, 0x00, 0x69, 0x02, 0x4C, +0x04, 0xD4, 0x1F, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x2C, 0x30, 0x2C, 0xF1, 0x10, 0x4A, 0x01, 0xE2, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, +0x90, 0x67, 0x00, 0x6D, 0x08, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x58, 0x9A, +0x04, 0x94, 0x01, 0x6D, 0xC4, 0x40, 0x40, 0xEA, +0x04, 0x92, 0x62, 0xA8, 0x01, 0x49, 0x01, 0x4A, +0x40, 0xD8, 0x6D, 0xE2, 0xFF, 0x6A, 0x04, 0xD3, +0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, +0x00, 0x48, 0xA5, 0xF2, 0x48, 0xA0, 0x43, 0xE9, +0xD9, 0x61, 0x30, 0xF0, 0x20, 0x69, 0x04, 0x94, +0xA0, 0xF3, 0x58, 0x99, 0x30, 0xF0, 0x20, 0x6E, +0x01, 0x4C, 0x01, 0x6D, 0x8C, 0xF1, 0x14, 0x4E, +0x40, 0xEA, 0x04, 0x92, 0xE5, 0xF2, 0x74, 0xA8, +0x30, 0xF0, 0x20, 0x6E, 0x02, 0x4A, 0x01, 0x4B, +0xE5, 0xF2, 0x50, 0xD8, 0x49, 0xE3, 0x04, 0xD2, +0x04, 0x94, 0xA0, 0xF3, 0x58, 0x99, 0x01, 0x6D, +0x8C, 0xF1, 0x1C, 0x4E, 0x40, 0xEA, 0x04, 0x92, +0xE5, 0xF2, 0x7C, 0xA8, 0x30, 0xF0, 0x20, 0x6E, +0x01, 0x4A, 0x01, 0x4B, 0xE5, 0xF2, 0x58, 0xD8, +0x49, 0xE3, 0x04, 0xD2, 0x04, 0x94, 0xA0, 0xF3, +0x58, 0x99, 0x01, 0x6D, 0xAC, 0xF1, 0x04, 0x4E, +0x40, 0xEA, 0x04, 0x92, 0x05, 0xF3, 0x64, 0xA8, +0x30, 0xF0, 0x20, 0x6E, 0x01, 0x4A, 0x01, 0x4B, +0x05, 0xF3, 0x40, 0xD8, 0x49, 0xE3, 0x04, 0xD2, +0x04, 0x94, 0xA0, 0xF3, 0x58, 0x99, 0x01, 0x6D, +0xAC, 0xF1, 0x0C, 0x4E, 0x40, 0xEA, 0x04, 0x92, +0x30, 0xF0, 0x20, 0x6E, 0x01, 0x6D, 0x01, 0x4A, +0x05, 0xF3, 0x48, 0xD8, 0x05, 0xF3, 0x0C, 0xA8, +0x8C, 0xF1, 0x0C, 0x4E, 0x01, 0x48, 0x41, 0xE0, +0xA0, 0xF3, 0x58, 0x99, 0x90, 0x67, 0x01, 0x48, +0x40, 0xEA, 0x04, 0xD0, 0x00, 0x68, 0x1F, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x0C, 0x31, 0x4C, 0xF1, +0x0C, 0x4A, 0x25, 0xE2, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x48, 0x9A, 0x91, 0x67, 0x00, 0x6D, +0x08, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x58, 0x9A, 0x04, 0x94, 0x02, 0x6D, +0xC4, 0x41, 0x40, 0xEA, 0x04, 0x92, 0x62, 0xA9, +0x01, 0x48, 0x02, 0x4A, 0x40, 0xD9, 0x6D, 0xE2, +0xFF, 0x6A, 0x04, 0xD3, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x8C, 0xF1, 0x4C, 0xA2, 0x43, 0xE8, +0xDB, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xC0, 0xA4, 0x20, 0xF1, 0xED, 0xA2, 0x02, 0x6B, +0x01, 0x6D, 0x6B, 0xEB, 0xAC, 0xEE, 0xEC, 0xEB, +0xCD, 0xEB, 0x20, 0xF1, 0x6D, 0xC2, 0xAC, 0xEB, +0x2B, 0x23, 0x62, 0xA4, 0x20, 0xF1, 0xEF, 0xA2, +0x6A, 0x33, 0xAC, 0xEB, 0x68, 0x36, 0x05, 0x6B, +0x6B, 0xEB, 0xEC, 0xEB, 0xCD, 0xEB, 0x20, 0xF1, +0x6F, 0xC2, 0xC2, 0xA4, 0xDA, 0x36, 0xAC, 0xEE, +0xD8, 0x37, 0x41, 0x6E, 0xCB, 0xEE, 0x6C, 0xEE, +0xED, 0xEE, 0x20, 0xF1, 0xCF, 0xC2, 0x62, 0xA4, +0x6E, 0x33, 0xAC, 0xEB, 0x6C, 0x35, 0x09, 0x6B, +0x6B, 0xEB, 0xCC, 0xEB, 0xAD, 0xEB, 0x20, 0xF1, +0x6F, 0xC2, 0xA2, 0xA4, 0x7F, 0x6C, 0x6C, 0xEC, +0xBE, 0x35, 0xBC, 0x35, 0xAD, 0xEC, 0x20, 0xF1, +0x8F, 0xC2, 0x01, 0x6C, 0x80, 0x18, 0x16, 0x40, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x60, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x20, 0xF1, 0x74, 0xC2, 0x61, 0xA4, +0x20, 0xF1, 0x75, 0xC2, 0x62, 0xA4, 0x20, 0xF1, +0x76, 0xC2, 0x63, 0xA4, 0x20, 0xF1, 0x77, 0xC2, +0x64, 0xA4, 0x20, 0xF1, 0x78, 0xC2, 0x65, 0xA4, +0x20, 0xF1, 0x79, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0xE2, 0x63, 0x3B, 0x62, 0x3A, 0xD1, 0x39, 0xD0, +0x00, 0x6A, 0x3C, 0xD4, 0x7D, 0x67, 0x9D, 0x67, +0x3F, 0xD7, 0x3E, 0xD6, 0x50, 0xCB, 0x48, 0xCC, +0x3C, 0x90, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF4, +0x7C, 0x9B, 0x30, 0xF0, 0x20, 0x69, 0x07, 0xD2, +0x06, 0xD2, 0x09, 0xD2, 0x0A, 0xD2, 0x0B, 0xD2, +0x0C, 0xD2, 0x08, 0x48, 0xC0, 0xF3, 0x40, 0x99, +0xA1, 0xE0, 0x05, 0xD3, 0x8E, 0x40, 0x40, 0xEA, +0xBD, 0x67, 0x50, 0xC5, 0xC0, 0xF3, 0x40, 0x99, +0x8F, 0x40, 0x40, 0xEA, 0x7D, 0x67, 0x51, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x3E, 0x94, 0x80, 0xF2, +0x4C, 0x9A, 0x04, 0x05, 0x02, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, +0x0D, 0x04, 0x00, 0x6D, 0x80, 0x6E, 0x40, 0xEA, +0x3C, 0x91, 0x07, 0x04, 0x20, 0xF0, 0x02, 0x05, +0x0A, 0x49, 0x2E, 0xD4, 0x34, 0xD5, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, 0x91, 0x67, +0x01, 0x49, 0x40, 0xEA, 0x2E, 0x94, 0x34, 0x95, +0x40, 0xC4, 0x01, 0x4C, 0xAA, 0xEC, 0x2E, 0xD4, +0xF2, 0x61, 0x07, 0x01, 0x30, 0xF0, 0x20, 0x6D, +0x91, 0x67, 0xCB, 0xF1, 0x0B, 0x4D, 0x06, 0x6E, +0x00, 0x18, 0xE9, 0xD3, 0xA0, 0xF1, 0x14, 0x2A, +0x7D, 0x67, 0x50, 0xA3, 0x08, 0x72, 0xA0, 0xF0, +0x10, 0x61, 0x51, 0xA3, 0xA0, 0xF0, 0x0D, 0x2A, +0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF3, 0x40, 0x9C, +0x87, 0x40, 0x02, 0x4C, 0x40, 0xEA, 0x3F, 0x95, +0x06, 0x03, 0x40, 0xC5, 0x47, 0x40, 0x09, 0x4A, +0x2F, 0xD2, 0x2E, 0xD3, 0x35, 0xD1, 0x30, 0xF0, +0x20, 0x69, 0x2F, 0x94, 0xC0, 0xF3, 0x40, 0x99, +0x40, 0xEA, 0x2E, 0x94, 0x2F, 0x95, 0x40, 0xC4, +0x35, 0x92, 0x01, 0x4C, 0x01, 0x4D, 0x4A, 0xEC, +0x2F, 0xD5, 0x2E, 0xD4, 0xF0, 0x61, 0xC0, 0xF3, +0x40, 0x99, 0x87, 0x40, 0x0D, 0x4C, 0x40, 0xEA, +0x2E, 0xD2, 0xC0, 0xF3, 0x40, 0x99, 0x87, 0x40, +0x0E, 0x4C, 0x40, 0xEA, 0x2E, 0x93, 0xFF, 0xF7, +0x1F, 0x6C, 0x60, 0x33, 0x4D, 0xEB, 0xC0, 0xF3, +0x40, 0x99, 0x8C, 0xEB, 0x87, 0x40, 0x2F, 0xD3, +0x0F, 0x4C, 0x40, 0xEA, 0x2E, 0xD2, 0xC0, 0xF3, +0x40, 0x99, 0x87, 0x40, 0x10, 0x4C, 0x40, 0xEA, +0x2E, 0x95, 0x30, 0xF0, 0x20, 0x68, 0x00, 0x6B, +0xA0, 0x31, 0x4D, 0xE9, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE9, 0x82, 0xF0, 0x08, 0x48, 0x2E, 0xD3, +0x2E, 0x95, 0x3F, 0x92, 0xFF, 0x6C, 0x8C, 0xED, +0x31, 0xD5, 0x60, 0xA2, 0x40, 0xA0, 0x6E, 0xEA, +0x55, 0x2A, 0x43, 0xA0, 0x02, 0x6B, 0x6C, 0xEA, +0x04, 0x22, 0x44, 0xA8, 0x2F, 0x93, 0x6E, 0xEA, +0x4D, 0x2A, 0x43, 0xA0, 0x01, 0x6B, 0x6C, 0xEA, +0x03, 0x22, 0x45, 0xA8, 0x2E, 0xEA, 0x46, 0x2A, +0x41, 0xA0, 0x02, 0x6B, 0x6C, 0xEA, 0x18, 0x22, +0x00, 0x6C, 0x30, 0xD4, 0x30, 0x92, 0x06, 0x04, +0x04, 0x6E, 0x50, 0x35, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xB5, 0xE2, 0x85, 0xF0, +0x1E, 0x4D, 0x00, 0x18, 0xE9, 0xD3, 0x03, 0x2A, +0x01, 0x6B, 0x30, 0xD3, 0x07, 0x10, 0x30, 0x94, +0x01, 0x4C, 0x04, 0x74, 0x30, 0xD4, 0xEA, 0x61, +0x00, 0x6D, 0x30, 0xD5, 0x41, 0xA0, 0x01, 0x6B, +0x6C, 0xEA, 0x0D, 0x22, 0x2E, 0x92, 0xC2, 0xA0, +0x06, 0x04, 0x50, 0x35, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF0, 0x08, 0x4A, 0xB5, 0xE2, 0x04, 0x4D, +0x00, 0x18, 0xE9, 0xD3, 0x0E, 0x22, 0x41, 0xA0, +0x04, 0x6B, 0x6C, 0xEA, 0x06, 0x22, 0x06, 0x04, +0x05, 0x05, 0xC3, 0x67, 0x00, 0x18, 0xE9, 0xD3, +0x04, 0x22, 0x41, 0xA0, 0x02, 0x22, 0x30, 0x93, +0x09, 0x23, 0x31, 0x94, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF0, 0x08, 0x4A, 0x90, 0x33, 0x69, 0xE2, +0x4C, 0xA2, 0x07, 0x11, 0x2E, 0x95, 0x10, 0x48, +0x01, 0x4D, 0x08, 0x75, 0x2E, 0xD5, 0x9C, 0x61, +0xFF, 0x10, 0x7D, 0x67, 0x50, 0xA3, 0x88, 0x72, +0x05, 0x61, 0x51, 0xA3, 0xD9, 0x72, 0x0C, 0x6A, +0xE0, 0xF0, 0x17, 0x60, 0x9D, 0x67, 0x50, 0xA4, +0x08, 0x72, 0x08, 0x61, 0x51, 0xA4, 0x06, 0x72, +0x05, 0x61, 0x3F, 0x95, 0x01, 0x6A, 0x4B, 0xEA, +0x40, 0xC5, 0xEA, 0x10, 0x7D, 0x67, 0x50, 0xA3, +0x86, 0x72, 0xE0, 0xF0, 0x05, 0x61, 0x51, 0xA3, +0xDD, 0x72, 0xE0, 0xF0, 0x01, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, 0x86, 0x40, +0x27, 0x40, 0x40, 0xEA, 0x3F, 0x94, 0x00, 0x6D, +0x11, 0x49, 0x40, 0xC4, 0x2E, 0xD5, 0x2F, 0xD5, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, +0x91, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x30, 0xD2, 0xC0, 0xF3, 0x40, 0x9C, 0x81, 0x41, +0x40, 0xEA, 0x2E, 0x93, 0xBD, 0x67, 0x71, 0xE5, +0x30, 0x95, 0xA0, 0x33, 0x4D, 0xEB, 0x72, 0xCC, +0x2E, 0x92, 0x2F, 0x93, 0x30, 0xF0, 0x20, 0x6C, +0xA6, 0xF6, 0x00, 0x4C, 0x55, 0xE4, 0x51, 0xE4, +0x64, 0x32, 0x0D, 0x03, 0x4D, 0xE3, 0xC5, 0xF0, +0x1E, 0x4D, 0xC5, 0xF0, 0x1F, 0x4C, 0x00, 0x6A, +0xC0, 0xA5, 0xE0, 0xA4, 0x01, 0x4A, 0xC0, 0x36, +0xED, 0xEE, 0xC0, 0xCB, 0xFF, 0x6E, 0xCC, 0xEA, +0x08, 0x72, 0x12, 0x4D, 0x12, 0x4C, 0x10, 0x4B, +0xF3, 0x61, 0x2F, 0x94, 0x2E, 0x95, 0x02, 0x49, +0x01, 0x4C, 0x02, 0x4D, 0x08, 0x74, 0x2F, 0xD4, +0x2E, 0xD5, 0xC6, 0x61, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x40, 0x99, 0x87, 0x40, 0x21, 0x4C, +0x40, 0xEA, 0x2E, 0xD2, 0xC0, 0xF3, 0x40, 0x99, +0x87, 0x40, 0x22, 0x4C, 0x40, 0xEA, 0x2E, 0x93, +0xFF, 0xF7, 0x1F, 0x6C, 0x60, 0x33, 0x4D, 0xEB, +0xC0, 0xF3, 0x40, 0x99, 0x8C, 0xEB, 0x87, 0x40, +0x2E, 0xD3, 0x23, 0x4C, 0x40, 0xEA, 0x2F, 0xD2, +0xC0, 0xF3, 0x40, 0x99, 0x87, 0x40, 0x24, 0x4C, +0x40, 0xEA, 0x2F, 0x95, 0x00, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0xA0, 0x31, 0x4D, 0xE9, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xE9, 0x02, 0xF1, 0x08, 0x48, +0x2F, 0xD3, 0x32, 0xD3, 0x2F, 0x92, 0xFF, 0x6D, +0x3F, 0x94, 0xAC, 0xEA, 0x30, 0xD2, 0x60, 0xA4, +0x40, 0xA0, 0x6E, 0xEA, 0x5F, 0x2A, 0x43, 0xA0, +0x02, 0x6B, 0x6C, 0xEA, 0x04, 0x22, 0x4A, 0xA8, +0x2E, 0x95, 0xAE, 0xEA, 0x57, 0x2A, 0x43, 0xA0, +0x01, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x4B, 0xA8, +0x2E, 0xEA, 0x50, 0x2A, 0x41, 0xA0, 0x02, 0x6B, +0x6C, 0xEA, 0x13, 0x22, 0x0D, 0x02, 0x2D, 0x03, +0x31, 0xD2, 0x36, 0xD3, 0x31, 0x95, 0x09, 0x04, +0x10, 0x6E, 0x00, 0x18, 0xE9, 0xD3, 0x03, 0x2A, +0x01, 0x6C, 0x32, 0xD4, 0x06, 0x10, 0x31, 0x95, +0x36, 0x92, 0x10, 0x4D, 0x4A, 0xED, 0x31, 0xD5, +0xF1, 0x61, 0x41, 0xA0, 0x01, 0x6B, 0x6C, 0xEA, +0x0F, 0x22, 0x2F, 0x92, 0x1C, 0x6D, 0xC2, 0xA0, +0xB8, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF1, +0x08, 0x4A, 0x09, 0x04, 0x12, 0xED, 0xB5, 0xE2, +0x04, 0x4D, 0x00, 0x18, 0xE9, 0xD3, 0x0D, 0x22, +0x41, 0xA0, 0x04, 0x6B, 0x6C, 0xEA, 0x05, 0x22, +0x7D, 0x67, 0x52, 0xAB, 0x42, 0x32, 0xFF, 0x72, +0x04, 0x60, 0x41, 0xA0, 0x02, 0x22, 0x32, 0x94, +0x19, 0x24, 0x42, 0xA0, 0x10, 0x72, 0x0B, 0x60, +0x0A, 0x22, 0x0E, 0x72, 0x13, 0x61, 0xBD, 0x67, +0x59, 0xAD, 0x02, 0xF0, 0x00, 0x5A, 0x0E, 0x61, +0x02, 0xF4, 0x00, 0x5A, 0x0B, 0x60, 0x30, 0x94, +0x1C, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x78, 0xEC, +0x02, 0xF1, 0x08, 0x4A, 0x12, 0xEB, 0x49, 0xE3, +0x58, 0xA2, 0x07, 0x10, 0x2F, 0x95, 0x1C, 0x48, +0x01, 0x4D, 0x0E, 0x75, 0x2F, 0xD5, 0x92, 0x61, +0x00, 0x6A, 0x3B, 0x97, 0x3A, 0x91, 0x39, 0x90, +0x1E, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x10, 0x92, 0x0C, 0xD4, +0x0D, 0xD5, 0x04, 0xD2, 0x04, 0x93, 0xFF, 0x6A, +0x4C, 0xEF, 0x4C, 0xEB, 0x04, 0xD3, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF2, 0x70, 0x9B, 0x0E, 0xD6, +0x06, 0xD7, 0x60, 0xA3, 0x6C, 0xEA, 0x05, 0xD2, +0x00, 0x18, 0xA0, 0xD3, 0x1C, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6C, +0xFF, 0x6D, 0x33, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, 0x00, 0x68, +0x40, 0xEA, 0x01, 0x72, 0x19, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF2, +0x54, 0x9A, 0xA6, 0xF7, 0x84, 0xA3, 0x01, 0x6D, +0x18, 0x6E, 0xF0, 0x67, 0x0B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF2, +0x54, 0x9A, 0xA6, 0xF7, 0x84, 0xA3, 0x01, 0x6D, +0x18, 0x6E, 0x00, 0x6F, 0x40, 0xEA, 0x02, 0x67, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF2, 0x54, 0x9A, 0xA3, 0xF2, 0x70, 0x9B, +0x49, 0xE0, 0x6D, 0xE0, 0x80, 0xA2, 0xA0, 0xA3, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, 0x7C, 0x9B, +0xFF, 0x6A, 0x4C, 0xEC, 0x6D, 0xE0, 0xC0, 0xA3, +0x4C, 0xED, 0x4C, 0xEE, 0x80, 0x18, 0xC3, 0x06, +0x06, 0x95, 0x87, 0x40, 0x29, 0x4C, 0x22, 0x67, +0x80, 0x18, 0x79, 0x0D, 0x04, 0x94, 0x30, 0x2C, +0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF3, 0x8C, 0x9C, 0x30, 0xF0, 0x20, 0x6D, +0xE3, 0xF2, 0x48, 0x9A, 0x03, 0xF3, 0xA0, 0x9D, +0x0D, 0x93, 0x91, 0xE0, 0x49, 0xE0, 0x31, 0xE4, +0xB5, 0xE0, 0xC0, 0xA3, 0xC0, 0xC2, 0xC0, 0xA3, +0x01, 0x4A, 0xAA, 0xEA, 0xC0, 0xC4, 0x01, 0x4B, +0x01, 0x4C, 0xF7, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF2, 0x4C, 0x9A, 0x41, 0xE0, 0x21, 0xE0, +0x00, 0x6A, 0x0C, 0x95, 0x4D, 0xE5, 0x60, 0xA3, +0x60, 0xC0, 0x0E, 0x95, 0x68, 0x40, 0xFE, 0x4B, +0x51, 0xE5, 0x80, 0xA4, 0x01, 0x4A, 0x04, 0x72, +0x80, 0xC3, 0x01, 0x48, 0xF2, 0x61, 0x2D, 0x10, +0x04, 0x92, 0x01, 0x72, 0x2A, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF2, 0x88, 0x9B, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF3, 0x6C, 0x9B, 0x30, 0xF0, +0x20, 0x6A, 0x4B, 0xF3, 0x18, 0x4A, 0x6D, 0xE0, +0x91, 0xE0, 0x2D, 0xE3, 0xA6, 0x42, 0xC0, 0xA2, +0xC0, 0xC4, 0xCA, 0xA2, 0x01, 0x4A, 0xAA, 0xEA, +0xC0, 0xC3, 0x01, 0x4C, 0x01, 0x4B, 0xF7, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, 0x6C, 0x9B, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF3, 0x08, 0x4A, +0x61, 0xE0, 0x21, 0xE0, 0x64, 0x42, 0x80, 0xA2, +0x01, 0x4A, 0x6A, 0xEA, 0x80, 0xC0, 0x01, 0x48, +0xFA, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0xE0, 0xF0, 0x7C, 0xA2, 0x02, 0x73, +0x05, 0x61, 0x00, 0xF1, 0x84, 0xA2, 0xB1, 0x67, +0x80, 0x18, 0x1D, 0x0A, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF3, 0x7C, 0x9A, 0xFF, 0x68, 0x10, 0x6C, +0x40, 0xA3, 0x34, 0x6E, 0x0C, 0xEA, 0x8D, 0xEA, +0x0C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x05, 0x95, 0x00, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, +0x54, 0x9A, 0x40, 0xEA, 0x0A, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF2, 0x60, 0x9A, 0x20, 0x6C, +0x40, 0xA3, 0x0C, 0xEA, 0x8D, 0xEA, 0x0C, 0xEA, +0x40, 0xC3, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xA0, 0xF0, 0x8F, 0xA2, +0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x05, 0x6C, +0x8B, 0xEC, 0x8C, 0xEB, 0xA0, 0xF0, 0x6F, 0xC2, +0x0A, 0x6B, 0xA0, 0xF0, 0x70, 0xC2, 0x00, 0x6B, +0x05, 0xF3, 0x70, 0xC2, 0x05, 0xF3, 0x71, 0xC2, +0x05, 0xF3, 0x72, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xA0, 0xA4, 0xA0, 0xF0, 0xEF, 0xA2, 0x02, 0x6B, +0x01, 0x6E, 0x6B, 0xEB, 0xCC, 0xED, 0xEC, 0xEB, +0xAD, 0xEB, 0xA3, 0x67, 0xCC, 0xED, 0xA0, 0xF0, +0x6F, 0xC2, 0x19, 0x25, 0xA0, 0xA4, 0x07, 0x6F, +0xAE, 0x35, 0xEC, 0xED, 0x05, 0xF3, 0xB0, 0xC2, +0xA0, 0xA4, 0xAA, 0x35, 0xCC, 0xED, 0xA8, 0x36, +0x05, 0x6D, 0xAB, 0xED, 0x6C, 0xED, 0xCD, 0xED, +0xA0, 0xF0, 0xAF, 0xC2, 0xA0, 0xA4, 0x02, 0x6B, +0xAC, 0xEB, 0xFF, 0x6D, 0xAC, 0xEB, 0x03, 0x23, +0x61, 0xA4, 0xA0, 0xF0, 0x70, 0xC2, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x48, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xAC, 0xF1, 0x13, 0x4C, 0x00, 0x6D, 0x05, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x08, 0x6B, 0xA0, 0xF0, 0x77, 0xC2, +0x03, 0x6B, 0xA0, 0xF0, 0x78, 0xC2, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x04, 0x67, 0x80, 0x18, 0xD4, 0x05, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x80, 0xA0, 0xA0, 0xF0, 0xD6, 0xA2, 0x02, 0x6B, +0x01, 0x6D, 0x6B, 0xEB, 0xAC, 0xEC, 0xCC, 0xEB, +0x8D, 0xEB, 0x83, 0x67, 0xAC, 0xEC, 0xA0, 0xF0, +0x76, 0xC2, 0x29, 0x24, 0x80, 0xA0, 0x07, 0x6E, +0x92, 0x34, 0xCC, 0xEC, 0x05, 0xF3, 0x97, 0xC2, +0xC0, 0xA0, 0x02, 0x6C, 0xCC, 0xEC, 0xFF, 0x6E, +0xCC, 0xEC, 0x1D, 0x24, 0x81, 0xA0, 0xA0, 0xF0, +0x97, 0xC2, 0x82, 0xA0, 0xA0, 0xF0, 0x98, 0xC2, +0x80, 0xA0, 0x8A, 0x34, 0xAC, 0xEC, 0x88, 0x36, +0x05, 0x6C, 0x8B, 0xEC, 0x6C, 0xEC, 0xCD, 0xEC, +0xA0, 0xF0, 0x96, 0xC2, 0x63, 0xA0, 0xA0, 0xF0, +0x79, 0xC2, 0x60, 0xA0, 0x6E, 0x33, 0xAC, 0xEB, +0x6C, 0x35, 0x09, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0xAD, 0xEB, 0xA0, 0xF0, 0x76, 0xC2, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0xEC, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x68, 0x80, 0xF2, +0x4C, 0x9B, 0xCB, 0xF3, 0x1C, 0x48, 0x26, 0x67, +0x0A, 0xD4, 0x10, 0x6E, 0x90, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x0A, 0x95, 0x80, 0xF2, +0x4C, 0x9C, 0x87, 0x40, 0x09, 0x4C, 0x10, 0x6E, +0x40, 0xEA, 0x00, 0xF6, 0x22, 0x34, 0x00, 0xF6, +0x20, 0x32, 0x8D, 0xEA, 0x1F, 0xF7, 0x00, 0x6D, +0x22, 0x34, 0xAC, 0xEC, 0x8D, 0xEA, 0x30, 0xF0, +0x20, 0x6C, 0x63, 0xF3, 0x90, 0x9C, 0x20, 0x31, +0x30, 0xF0, 0x20, 0x6B, 0x8C, 0xE9, 0xA6, 0xF6, +0x00, 0x4B, 0x2D, 0xEA, 0x44, 0xF5, 0x5C, 0xDB, +0x5D, 0x67, 0x87, 0x42, 0x09, 0x4C, 0x40, 0xA4, +0x64, 0xF5, 0x43, 0xC3, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x00, 0xF0, 0x16, 0x02, 0x04, 0x44, 0x04, 0x01, +0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x40, 0x9A, 0x90, 0x67, 0x01, 0x48, 0x40, 0xEA, +0x40, 0xC1, 0x06, 0x92, 0x01, 0x49, 0x4A, 0xE9, +0xF4, 0x61, 0x10, 0x10, 0xC0, 0xA2, 0xA0, 0xA3, +0xCE, 0xED, 0x02, 0x25, 0x00, 0x6A, 0x05, 0x10, +0x01, 0x4A, 0x8A, 0xEA, 0x01, 0x4B, 0xF6, 0x61, +0x01, 0x6A, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0xCB, 0xF1, 0x05, 0x4A, 0x04, 0x03, 0x86, 0x42, +0xE9, 0x17, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x07, 0x44, 0x00, 0xF0, +0x16, 0x02, 0x09, 0x48, 0x04, 0x01, 0x06, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, +0x90, 0x67, 0x01, 0x48, 0x40, 0xEA, 0x40, 0xC1, +0x06, 0x92, 0x01, 0x49, 0x4A, 0xE9, 0xF4, 0x61, +0x10, 0x10, 0xC0, 0xA2, 0xA0, 0xA3, 0xCE, 0xED, +0x02, 0x25, 0x00, 0x6A, 0x05, 0x10, 0x01, 0x4A, +0x8A, 0xEA, 0x01, 0x4B, 0xF6, 0x61, 0x01, 0x6A, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, 0xCB, 0xF1, +0x0B, 0x4A, 0x04, 0x03, 0x86, 0x42, 0xE9, 0x17, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x08, 0x4C, 0xC0, 0xF3, +0x40, 0x98, 0xA5, 0xE4, 0x81, 0x41, 0x40, 0xEA, +0x10, 0x2A, 0xC0, 0xF3, 0x40, 0x98, 0x84, 0x41, +0x40, 0xEA, 0x01, 0x72, 0x0A, 0x61, 0xC0, 0xF3, +0x40, 0x98, 0x87, 0x41, 0x01, 0x4C, 0x40, 0xEA, +0x01, 0x6B, 0x6E, 0xEA, 0x01, 0x5A, 0x58, 0x67, +0x01, 0x10, 0x00, 0x6A, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x40, 0x98, +0x85, 0xE5, 0x86, 0x41, 0x40, 0xEA, 0x08, 0x72, +0x34, 0x61, 0xC0, 0xF3, 0x40, 0x98, 0x87, 0x41, +0x40, 0xEA, 0x2F, 0x2A, 0x07, 0x41, 0x05, 0x02, +0x11, 0x48, 0x04, 0x01, 0x06, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, 0x90, 0x67, +0x01, 0x48, 0x40, 0xEA, 0x40, 0xC1, 0x06, 0x92, +0x01, 0x49, 0x4A, 0xE9, 0xF4, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x5D, 0x67, 0xA6, 0xF6, 0x00, 0x4B, +0x90, 0xA2, 0xA4, 0xF4, 0x5E, 0xA3, 0x8E, 0xEA, +0x14, 0x2A, 0x5D, 0x67, 0x91, 0xA2, 0xA4, 0xF4, +0x5F, 0xA3, 0x8E, 0xEA, 0x0E, 0x2A, 0x5D, 0x67, +0x92, 0xA2, 0xC4, 0xF4, 0x40, 0xA3, 0x8E, 0xEA, +0x08, 0x2A, 0x5D, 0x67, 0x93, 0xA2, 0xC4, 0xF4, +0x41, 0xA3, 0x8E, 0xEA, 0x01, 0x5A, 0x58, 0x67, +0x01, 0x10, 0x00, 0x6A, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x04, 0x67, 0x25, 0x67, 0x80, 0x18, 0x24, 0x06, +0x00, 0x6B, 0x08, 0x22, 0x90, 0x67, 0xB1, 0x67, +0x80, 0x18, 0x64, 0x06, 0x4B, 0xEB, 0x4D, 0xEB, +0xC0, 0xF7, 0x62, 0x33, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x43, 0x67, 0x04, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x24, 0x67, 0x05, 0x67, 0x80, 0x18, 0x24, 0x06, +0x2E, 0x22, 0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, +0x64, 0x06, 0x29, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x86, 0xF7, 0x76, 0xA2, 0x10, 0x6A, 0x6C, 0xEA, +0x22, 0x22, 0x08, 0x49, 0x05, 0xE1, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x40, 0x98, 0x87, 0x41, +0x02, 0x4C, 0x40, 0xEA, 0x06, 0x72, 0x17, 0x61, +0xC0, 0xF3, 0x40, 0x98, 0x87, 0x41, 0x0D, 0x4C, +0x40, 0xEA, 0x11, 0x2A, 0xC0, 0xF3, 0x40, 0x98, +0x87, 0x41, 0x0E, 0x4C, 0x40, 0xEA, 0x50, 0x72, +0x0A, 0x61, 0xC0, 0xF3, 0x40, 0x98, 0x87, 0x41, +0x1A, 0x4C, 0x40, 0xEA, 0x05, 0x6B, 0x4C, 0xEB, +0x03, 0x23, 0x01, 0x6B, 0x01, 0x10, 0x00, 0x6B, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x43, 0x67, +0x04, 0x63, 0x00, 0xEF, 0x01, 0x6A, 0x8C, 0xEA, +0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0xE0, 0xF0, 0x7C, 0xA2, 0x06, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xE0, 0xF0, 0x7D, 0xA2, 0x84, 0xF5, 0x75, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF4, 0x75, 0xA2, +0x00, 0x6A, 0x07, 0x5B, 0x06, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF5, 0x04, 0x4A, 0x4D, 0xE3, +0x40, 0xA3, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x6A, 0x64, 0x67, 0x4C, 0xEB, +0x86, 0x67, 0x4C, 0xED, 0x4C, 0xEC, 0x7E, 0x32, +0x04, 0x22, 0x0C, 0x6F, 0x6C, 0xEF, 0x02, 0x68, +0x01, 0x2F, 0x00, 0x68, 0x40, 0x6B, 0xAC, 0xEB, +0x00, 0x6A, 0x02, 0x23, 0x80, 0x18, 0xB3, 0x06, +0x18, 0x48, 0x09, 0xE2, 0x05, 0x97, 0x04, 0x90, +0xFF, 0x6B, 0x6C, 0xEA, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x4C, 0xEE, 0x4C, 0xED, 0x30, 0xF0, +0x20, 0x6A, 0xCB, 0xF1, 0x1B, 0x4A, 0x67, 0x42, +0x05, 0xD6, 0x01, 0x4B, 0x00, 0x6E, 0xC0, 0xC2, +0x01, 0x4A, 0x6A, 0xEA, 0xFB, 0x61, 0x05, 0x92, +0x91, 0xE5, 0x30, 0xF0, 0x20, 0x68, 0x53, 0xE4, +0x04, 0xD4, 0xCB, 0xF1, 0x1B, 0x48, 0x00, 0x69, +0x0E, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x40, 0x9A, 0x04, 0x94, 0x01, 0x49, 0x40, 0xEA, +0x40, 0xC0, 0xFF, 0x6A, 0x4C, 0xE9, 0x04, 0x92, +0x01, 0x48, 0x01, 0x4A, 0x04, 0xD2, 0x05, 0x92, +0x43, 0xE9, 0xEF, 0x61, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0xCB, 0xF1, 0xC4, 0xA3, 0x01, 0x6B, 0xFF, 0x6A, +0xCC, 0xEB, 0x4C, 0xEB, 0x4C, 0xEC, 0x4C, 0xED, +0x01, 0x6A, 0x45, 0x2B, 0x02, 0x6A, 0xAC, 0xEA, +0x12, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, +0x74, 0x9A, 0x10, 0xF0, 0x00, 0x6E, 0x40, 0x9B, +0xCC, 0xEA, 0x09, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x58, 0x9A, 0xC0, 0xDB, 0x23, 0x6B, +0x60, 0xC2, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, +0x01, 0x6B, 0xAC, 0xEB, 0x2C, 0x23, 0x40, 0x6B, +0x8C, 0xEB, 0x0C, 0x23, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x58, 0x9A, 0x22, 0x6B, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x58, 0x9A, +0x80, 0xC2, 0x01, 0x6A, 0x9E, 0x33, 0x0C, 0x23, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x58, 0x9A, +0x21, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF3, 0x58, 0x9A, 0x80, 0xC2, 0x01, 0x6A, +0x20, 0x6B, 0x8C, 0xEB, 0x0C, 0x23, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x58, 0x9A, 0x23, 0x6B, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, +0x58, 0x9A, 0x80, 0xC2, 0x01, 0x6A, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0x86, 0xF7, 0xAE, 0xA3, +0x80, 0x6B, 0x6B, 0xEB, 0xFF, 0x6A, 0xAC, 0xEB, +0x4C, 0xEB, 0x4C, 0xEC, 0x14, 0x23, 0xA0, 0x74, +0x04, 0x6B, 0x01, 0x60, 0x08, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x58, 0x9A, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x24, 0xF3, 0x84, 0xA2, 0x01, 0x6B, 0x8D, 0xEB, +0x24, 0xF3, 0x64, 0xC2, 0x20, 0xE8, 0xA0, 0x74, +0x4E, 0x6B, 0x01, 0x60, 0x4D, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x58, 0x9A, 0x6B, 0xEB, +0x60, 0xC2, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0x24, 0xF3, 0xA4, 0xA3, +0x01, 0x6C, 0x44, 0x67, 0x8C, 0xED, 0x04, 0x25, +0xE0, 0xF0, 0x4E, 0xA3, 0x52, 0x32, 0x8C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0xA6, 0xF7, +0x1F, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x7C, 0x9A, 0xDF, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x20, 0xF1, 0x9B, 0xA2, +0x40, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x20, 0xF1, +0x7B, 0xC2, 0x20, 0xE8, 0xFA, 0x63, 0x0B, 0xD1, +0x0A, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF5, +0x6C, 0x9A, 0x22, 0xF5, 0x0C, 0x4A, 0x9D, 0x67, +0x00, 0xD3, 0x61, 0x9A, 0x44, 0xAA, 0x01, 0xD3, +0x7D, 0x67, 0x44, 0xCB, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF5, 0x60, 0x9A, 0x22, 0xF5, 0x00, 0x4A, +0x03, 0xD3, 0x61, 0x9A, 0x44, 0xAA, 0x04, 0xD3, +0x4A, 0xCC, 0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF7, +0x67, 0xA2, 0x64, 0x32, 0x49, 0xE4, 0x00, 0xAA, +0x46, 0xAA, 0xE3, 0x67, 0xC3, 0x67, 0x1A, 0x65, +0x08, 0xD3, 0x07, 0xD3, 0x06, 0xD3, 0x00, 0x6A, +0x11, 0xE2, 0x1F, 0xF7, 0x00, 0x6D, 0xAC, 0xEC, +0x02, 0xF0, 0x00, 0x69, 0x2E, 0xEC, 0x07, 0x24, +0x64, 0x34, 0x3D, 0x67, 0x91, 0xE1, 0x80, 0xAC, +0x91, 0xE2, 0xAC, 0xEC, 0x0B, 0x2C, 0xBD, 0x67, +0xC4, 0x34, 0x91, 0xE5, 0xA0, 0xAC, 0x30, 0xF0, +0x20, 0x6C, 0x22, 0x67, 0xB5, 0xE2, 0x43, 0xF1, +0x9C, 0x9C, 0x0A, 0x10, 0xBD, 0x67, 0xE4, 0x34, +0x91, 0xE5, 0xA0, 0xAC, 0x30, 0xF0, 0x20, 0x6C, +0x63, 0xF1, 0x80, 0x9C, 0x22, 0x67, 0xB5, 0xE2, +0x91, 0xE5, 0xA0, 0xA4, 0xFF, 0x6C, 0xAC, 0xEC, +0x30, 0xF0, 0x20, 0x6D, 0xA6, 0xF6, 0x00, 0x4D, +0xB5, 0xE1, 0x38, 0x67, 0x24, 0xF3, 0x8B, 0xC5, +0x31, 0xE2, 0x1F, 0xF7, 0x00, 0x6D, 0xAC, 0xEC, +0x02, 0xF0, 0x00, 0x69, 0x2E, 0xEC, 0x08, 0x24, +0x08, 0x91, 0x24, 0x34, 0x3D, 0x67, 0x91, 0xE1, +0x86, 0xAC, 0x91, 0xE2, 0xAC, 0xEC, 0x0C, 0x2C, +0x06, 0x95, 0x22, 0x67, 0xA4, 0x34, 0xBD, 0x67, +0x91, 0xE5, 0xA6, 0xAC, 0x30, 0xF0, 0x20, 0x6C, +0x43, 0xF1, 0x9C, 0x9C, 0xB5, 0xE2, 0x0B, 0x10, +0x07, 0x95, 0x22, 0x67, 0xA4, 0x34, 0xBD, 0x67, +0x91, 0xE5, 0xA6, 0xAC, 0x30, 0xF0, 0x20, 0x6C, +0x63, 0xF1, 0x80, 0x9C, 0xB5, 0xE2, 0x91, 0xE5, +0xA0, 0xA4, 0xFF, 0x6C, 0x01, 0x4A, 0xAC, 0xEC, +0x30, 0xF0, 0x20, 0x6D, 0xA6, 0xF6, 0x00, 0x4D, +0xB5, 0xE1, 0x24, 0xF3, 0x85, 0xC5, 0x06, 0x6C, +0x4E, 0xEC, 0x9A, 0x2C, 0x0B, 0x91, 0x0A, 0x90, +0x06, 0x63, 0x20, 0xE8, 0x60, 0xA4, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xE0, 0xF0, +0x7C, 0xC2, 0x61, 0xA4, 0xE0, 0xF0, 0x7D, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0xA6, 0xF7, +0x03, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0xA6, 0xF7, +0x0A, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x61, 0xA4, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x00, 0xF1, +0x72, 0xC2, 0x62, 0xA4, 0x00, 0xF1, 0x73, 0xC2, +0x64, 0xA4, 0x00, 0xF1, 0x75, 0xC2, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, +0x20, 0x6C, 0xC6, 0xF7, 0x06, 0x4C, 0x04, 0x6E, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0xC3, 0xF3, 0x8C, 0xA3, +0x01, 0x6A, 0x8C, 0xEA, 0x1B, 0x22, 0xE0, 0xF0, +0x92, 0xA3, 0x08, 0x6A, 0x8C, 0xEA, 0xFF, 0x6C, +0x8C, 0xEA, 0x0A, 0x22, 0xE0, 0xF0, 0xD3, 0xA3, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, +0x5D, 0x4C, 0x00, 0x6D, 0xC0, 0x36, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, +0xE0, 0xF0, 0xD3, 0xA3, 0xFF, 0x6C, 0x5D, 0x4C, +0x00, 0x6D, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFE, 0x63, 0x03, 0xD1, +0x02, 0xD0, 0xFF, 0x68, 0xFF, 0xF7, 0x1F, 0x6A, +0x0C, 0xED, 0xCC, 0xEA, 0xEC, 0xE8, 0x00, 0x6F, +0x04, 0xD4, 0x00, 0xD5, 0x01, 0x6C, 0x67, 0x67, +0xC2, 0x67, 0x41, 0x47, 0xB0, 0x67, 0xA7, 0xEA, +0x45, 0x67, 0x01, 0x6D, 0xAC, 0xEA, 0x0F, 0x22, +0x02, 0x6A, 0x06, 0x10, 0xFF, 0xF7, 0x1F, 0x69, +0x44, 0x32, 0x01, 0x4D, 0x2C, 0xEA, 0x2C, 0xED, +0x83, 0xED, 0xF8, 0x61, 0x4C, 0x32, 0x4D, 0xE3, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEB, 0x01, 0x4C, +0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEC, 0x08, 0x74, +0x01, 0x4F, 0xE3, 0x61, 0x63, 0xEE, 0x46, 0x67, +0x15, 0x61, 0x00, 0x96, 0xCC, 0x34, 0xFF, 0x4C, +0x91, 0xE3, 0xAC, 0xEC, 0x43, 0xEC, 0x0E, 0x61, +0x6B, 0xE2, 0x08, 0x6C, 0x9A, 0xEA, 0x01, 0x2C, +0xE5, 0xE8, 0x04, 0x93, 0x12, 0xEA, 0x49, 0xE3, +0x40, 0xA2, 0x10, 0xED, 0x01, 0x6B, 0x47, 0xED, +0x6C, 0xEA, 0x01, 0x10, 0x00, 0x6A, 0x03, 0x91, +0x02, 0x90, 0x02, 0x63, 0x20, 0xE8, 0x00, 0x65, +0xD8, 0x63, 0x4F, 0x62, 0x4E, 0xD1, 0x4D, 0xD0, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEC, 0x4C, 0xED, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF5, 0x74, 0x9A, +0x02, 0xF5, 0x14, 0x4A, 0x48, 0xD4, 0x04, 0xD3, +0x61, 0x9A, 0x44, 0xAA, 0x4A, 0xD5, 0x05, 0xD3, +0x7D, 0x67, 0x4C, 0xCB, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x44, 0xF3, 0x90, 0xA2, +0x03, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x44, 0xF3, +0x70, 0xC2, 0x24, 0x68, 0x00, 0x69, 0x48, 0x94, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, +0x01, 0x4C, 0x11, 0xE4, 0x40, 0xEA, 0x49, 0xD2, +0x02, 0x2A, 0x02, 0x6A, 0x33, 0x11, 0x30, 0xF0, +0x20, 0x6C, 0x48, 0x93, 0xC0, 0xF3, 0x40, 0x9C, +0x71, 0xE0, 0x40, 0xEA, 0x05, 0x72, 0x06, 0x61, +0x49, 0x94, 0x01, 0x6B, 0x03, 0x6A, 0x04, 0x5C, +0x13, 0x60, 0x24, 0x11, 0x49, 0x92, 0x01, 0x49, +0x02, 0x4A, 0x41, 0xE0, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE8, 0x4C, 0xE9, 0x4A, 0x92, 0xFC, 0x4A, +0x42, 0xE8, 0x02, 0x61, 0x00, 0x6B, 0x04, 0x10, +0xE0, 0xF1, 0x14, 0x71, 0xD4, 0x61, 0x0F, 0x11, +0xE0, 0xF1, 0x14, 0x71, 0x00, 0xF1, 0x0B, 0x60, +0x00, 0xF1, 0x0B, 0x23, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0x44, 0xF3, 0x90, 0xA3, +0x09, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, 0x05, 0x6C, +0x8B, 0xEC, 0x8C, 0xEA, 0x44, 0xF3, 0x50, 0xC3, +0x48, 0x94, 0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, +0x40, 0x99, 0x02, 0x4C, 0x11, 0xE4, 0x40, 0xEA, +0x48, 0x94, 0x7D, 0x67, 0x5C, 0xC3, 0xC0, 0xF3, +0x40, 0x99, 0x03, 0x4C, 0x11, 0xE4, 0x40, 0xEA, +0x9D, 0x67, 0x5D, 0xC4, 0x48, 0x94, 0xC0, 0xF3, +0x40, 0x99, 0x00, 0x69, 0x04, 0x4C, 0x11, 0xE4, +0x40, 0xEA, 0x7D, 0x67, 0x5E, 0xC3, 0x10, 0x10, +0x48, 0x94, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x40, 0x9A, 0x05, 0x4C, 0x11, 0xE4, 0x31, 0xE4, +0x40, 0xEA, 0x9D, 0x67, 0x2D, 0xE4, 0x5F, 0xC3, +0x01, 0x49, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE9, +0x49, 0x92, 0xFD, 0x4A, 0x42, 0xE9, 0xEC, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF7, 0x47, 0xA2, +0x7D, 0x67, 0x44, 0x32, 0x49, 0xE3, 0x68, 0xAA, +0x1F, 0xF7, 0x00, 0x6A, 0x6C, 0xEA, 0x02, 0xF0, +0x00, 0x72, 0x01, 0x60, 0x0F, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x86, 0xF7, 0x47, 0xA2, 0x9D, 0x67, +0x44, 0x32, 0x49, 0xE4, 0x68, 0xAA, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF1, 0x5C, 0x9A, 0x49, 0xE3, +0x60, 0xAA, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x40, 0x9A, 0x4D, 0xE3, 0x60, 0xAB, +0xFF, 0xF7, 0x1F, 0x6A, 0x9D, 0x67, 0x6C, 0xEA, +0x7C, 0xA4, 0x0E, 0x2B, 0x7E, 0xA4, 0x01, 0x6C, +0x8C, 0xEB, 0x0A, 0x23, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0x44, 0xF3, 0xB0, 0xA3, +0x08, 0x6C, 0xAD, 0xEC, 0x44, 0xF3, 0x90, 0xC3, +0x49, 0x95, 0xE0, 0xF7, 0x1F, 0x6E, 0x4C, 0xEE, +0x5D, 0x67, 0xFE, 0xA2, 0xFD, 0x4D, 0xFF, 0x6B, +0x00, 0xF0, 0x1F, 0x04, 0x6C, 0xED, 0x80, 0x18, +0xC9, 0x07, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x44, 0xF3, 0x90, 0xA2, +0x04, 0x6B, 0x8D, 0xEB, 0x44, 0xF3, 0x70, 0xC2, +0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, +0x44, 0xF3, 0x70, 0xA0, 0x0C, 0x6A, 0x6C, 0xEA, +0x10, 0x2A, 0xC3, 0xF3, 0x71, 0xA0, 0xFE, 0x4A, +0xE0, 0xF0, 0x87, 0xA0, 0x6C, 0xEA, 0x05, 0x6B, +0x6B, 0xEB, 0x6C, 0xEA, 0x02, 0x4B, 0x6C, 0xEA, +0xC3, 0xF3, 0x51, 0xC0, 0x00, 0x18, 0x50, 0xCE, +0x64, 0x10, 0x08, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, +0x6C, 0xEA, 0x16, 0x22, 0xC3, 0xF3, 0x51, 0xA0, +0x02, 0x69, 0xC0, 0xF0, 0xCC, 0xA0, 0x2D, 0xEA, +0xC3, 0xF3, 0x51, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF3, 0x48, 0x9A, 0xFF, 0x6C, 0x55, 0x4C, +0x00, 0x6D, 0x40, 0xEA, 0xC3, 0xF3, 0x4C, 0xA0, +0x4D, 0xE9, 0xC3, 0xF3, 0x2C, 0xC0, 0x07, 0x10, +0xC3, 0xF3, 0x71, 0xA0, 0x03, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0xC3, 0xF3, 0x51, 0xC0, 0x30, 0xF0, +0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, 0x44, 0xF3, +0x90, 0xA0, 0x04, 0x6A, 0xFF, 0x6B, 0x8C, 0xEA, +0x2B, 0x22, 0x08, 0x6A, 0x8C, 0xEA, 0x6C, 0xEA, +0x08, 0x2A, 0x07, 0x6C, 0x00, 0x18, 0xAC, 0xDF, +0xE0, 0xF0, 0x87, 0xA0, 0x00, 0x18, 0x3C, 0xCE, +0x2C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF0, +0x84, 0x98, 0x83, 0xF2, 0x5C, 0x9A, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF2, 0x80, 0x9C, +0x8E, 0xEA, 0x07, 0x2A, 0xC0, 0xF0, 0x85, 0xA0, +0xF0, 0x4A, 0x8C, 0xEA, 0x6C, 0xEA, 0x10, 0x72, +0x18, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0xC3, 0xF3, 0x91, 0xA2, 0x01, 0x6B, +0x8D, 0xEB, 0xC3, 0xF3, 0x71, 0xC2, 0x0D, 0x10, +0xC3, 0xF3, 0x71, 0xA0, 0x02, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x05, 0x6B, 0x6B, 0xEB, 0x6C, 0xEA, +0xC3, 0xF3, 0x51, 0xC0, 0x02, 0x10, 0x01, 0x6A, +0x01, 0x10, 0x00, 0x6A, 0x4F, 0x97, 0x4E, 0x91, +0x4D, 0x90, 0x28, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xE0, 0xF0, 0xB2, 0xA2, +0x02, 0x6C, 0xFF, 0x6B, 0xAC, 0xEC, 0x4F, 0x24, +0x05, 0xF3, 0x98, 0xA2, 0x08, 0x5C, 0x08, 0x61, +0x30, 0xF0, 0x20, 0x6D, 0x83, 0xF3, 0xB4, 0x9D, +0xF8, 0x4C, 0xA0, 0xA5, 0xAC, 0xEB, 0x06, 0x10, +0x30, 0xF0, 0x20, 0x6D, 0x83, 0xF3, 0xB8, 0x9D, +0xA0, 0xA5, 0xAC, 0xEB, 0x01, 0x6D, 0xA4, 0xEC, +0x6C, 0xED, 0x30, 0xF0, 0x20, 0x6B, 0x05, 0xF3, +0xBA, 0xC2, 0xA6, 0xF6, 0x00, 0x4B, 0xE0, 0xF0, +0xB4, 0xA3, 0x04, 0x6A, 0xFF, 0x6C, 0xAC, 0xEA, +0x04, 0x2A, 0x05, 0xF3, 0x5A, 0xA3, 0x10, 0x22, +0x03, 0x10, 0x05, 0xF3, 0x5A, 0xA3, 0x0C, 0x2A, +0x01, 0x6C, 0x00, 0x18, 0x6B, 0xD1, 0x30, 0xF0, +0x20, 0x6A, 0xFF, 0x6C, 0x00, 0xF3, 0x48, 0x9A, +0x5D, 0x4C, 0x00, 0x6D, 0x01, 0x6E, 0x1A, 0x10, +0xE0, 0xF0, 0xB2, 0xA3, 0x08, 0x6A, 0xAC, 0xEA, +0x8C, 0xEA, 0x0B, 0x22, 0xE0, 0xF0, 0xD3, 0xA3, +0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x6C, 0x00, 0xF3, +0x48, 0x9A, 0x5D, 0x4C, 0x00, 0x6D, 0xC0, 0x36, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x48, 0x9A, 0xE0, 0xF0, 0xD3, 0xA3, 0xFF, 0x6C, +0x5D, 0x4C, 0x00, 0x6D, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0xE0, 0xF0, 0xB2, 0xA2, 0x02, 0x6C, +0xFF, 0x6B, 0xAC, 0xEC, 0x51, 0x24, 0x05, 0xF3, +0x98, 0xA2, 0x08, 0x5C, 0x08, 0x61, 0x30, 0xF0, +0x20, 0x6D, 0x83, 0xF3, 0xB4, 0x9D, 0xF8, 0x4C, +0xA0, 0xA5, 0xAC, 0xEB, 0x06, 0x10, 0x30, 0xF0, +0x20, 0x6D, 0x83, 0xF3, 0xB8, 0x9D, 0xA0, 0xA5, +0xAC, 0xEB, 0x01, 0x6D, 0xA4, 0xEC, 0x6C, 0xED, +0x30, 0xF0, 0x20, 0x68, 0x05, 0xF3, 0xBA, 0xC2, +0xA6, 0xF6, 0x00, 0x48, 0xE0, 0xF0, 0x94, 0xA0, +0x04, 0x6A, 0xFF, 0x6B, 0x8C, 0xEA, 0x13, 0x2A, +0x05, 0xF3, 0x5A, 0xA0, 0x23, 0x2A, 0xE0, 0xF0, +0x92, 0xA0, 0x01, 0x6A, 0x8C, 0xEA, 0x6C, 0xEA, +0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, 0x6B, 0xD1, +0x30, 0xF0, 0x20, 0x6A, 0xAC, 0xF1, 0x98, 0xA2, +0x80, 0x18, 0x25, 0x3B, 0x24, 0x10, 0x05, 0xF3, +0x5A, 0xA0, 0x10, 0x22, 0xE0, 0xF0, 0x92, 0xA0, +0x01, 0x6A, 0x8C, 0xEA, 0x6C, 0xEA, 0x03, 0x22, +0x00, 0x6C, 0x00, 0x18, 0x6B, 0xD1, 0x30, 0xF0, +0x20, 0x6A, 0xAC, 0xF1, 0x98, 0xA2, 0x80, 0x18, +0x1F, 0x3B, 0x11, 0x10, 0x05, 0xF3, 0x99, 0xA0, +0x01, 0x6D, 0x80, 0x18, 0x09, 0x3B, 0x05, 0xF3, +0x98, 0xA0, 0x80, 0x18, 0x14, 0x3B, 0x07, 0x10, +0x01, 0x6A, 0xAC, 0xEA, 0x6C, 0xEA, 0x03, 0x22, +0x00, 0x6C, 0x00, 0x18, 0x6B, 0xD1, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xE0, 0xF0, +0xB2, 0xA2, 0x02, 0x6B, 0xFF, 0x6C, 0xAC, 0xEB, +0x32, 0x23, 0xE0, 0xF0, 0xAF, 0xA2, 0x7F, 0x6B, +0xAC, 0xEB, 0x05, 0xF3, 0x79, 0xC2, 0xE0, 0xF0, +0xB4, 0xA2, 0x07, 0x6B, 0x05, 0xF3, 0x78, 0xC2, +0x80, 0x6B, 0x6B, 0xEB, 0xAC, 0xEB, 0x8C, 0xEB, +0x09, 0x23, 0x00, 0xF1, 0xBF, 0xA2, 0x01, 0x6B, +0xAC, 0xEB, 0x8C, 0xEB, 0x03, 0x23, 0xA6, 0x33, +0x05, 0xF3, 0x78, 0xC2, 0x30, 0xF0, 0x20, 0x68, +0xA6, 0xF6, 0x00, 0x48, 0x05, 0xF3, 0x58, 0xA0, +0x01, 0x6C, 0x0C, 0x4A, 0x84, 0xEA, 0x80, 0x18, +0x95, 0x57, 0xE0, 0xF0, 0x74, 0xA0, 0x04, 0x6A, +0x6C, 0xEA, 0x05, 0x22, 0x05, 0xF3, 0x98, 0xA0, +0x80, 0x18, 0x25, 0x3B, 0x04, 0x10, 0x05, 0xF3, +0x98, 0xA0, 0x80, 0x18, 0x1F, 0x3B, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, +0x24, 0xF3, 0xA4, 0xA3, 0x24, 0x67, 0x08, 0x6C, +0xAD, 0xEC, 0x24, 0xF3, 0x84, 0xC3, 0x42, 0xF6, +0x70, 0xA3, 0xFF, 0x6A, 0x4C, 0xE9, 0x03, 0x73, +0x40, 0x61, 0x10, 0x6B, 0x8C, 0xEB, 0x4C, 0xEB, +0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, +0x5C, 0x9A, 0x60, 0xDA, 0x00, 0x18, 0xE1, 0xD0, +0x34, 0x2A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF3, 0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6D, +0x01, 0x6E, 0x10, 0xF0, 0x23, 0x6C, 0xC6, 0xF4, +0x30, 0xC5, 0xC8, 0xF3, 0x1D, 0x4C, 0xC6, 0xF4, +0x10, 0x4D, 0xE6, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x24, 0xF3, +0x84, 0xA2, 0x10, 0x6B, 0xA3, 0x67, 0x8C, 0xED, +0x0B, 0x2D, 0x30, 0xF0, 0x20, 0x6D, 0xA3, 0xF3, +0xC0, 0x9D, 0x30, 0xF0, 0x20, 0x6D, 0x83, 0xF3, +0xBC, 0x9D, 0x8D, 0xEB, 0xC0, 0xDD, 0xA3, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, 0x7C, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF1, 0x90, 0x9C, +0x40, 0x9B, 0x8D, 0xEA, 0x01, 0x4A, 0x40, 0xDB, +0x98, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, +0x00, 0x48, 0x42, 0xF6, 0x50, 0xA0, 0x02, 0x72, +0x1E, 0x61, 0x01, 0x71, 0x75, 0x61, 0x24, 0xF3, +0x64, 0xA0, 0xE0, 0xF0, 0x8F, 0xA0, 0x80, 0x6D, +0x01, 0x6A, 0xAB, 0xED, 0x6D, 0xEA, 0xAC, 0xEC, +0xFF, 0x6B, 0x6C, 0xEC, 0x24, 0xF3, 0x44, 0xC0, +0x0A, 0x24, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, +0x84, 0x9A, 0x40, 0xA4, 0x6C, 0xEA, 0xAE, 0xEA, +0x6C, 0xEA, 0x40, 0xC4, 0x5D, 0x10, 0x01, 0x6C, +0x80, 0x18, 0xD0, 0x3B, 0x59, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF1, 0x58, 0x9A, 0x01, 0x6B, +0x6B, 0xEB, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x64, 0x6C, 0x40, 0xEA, +0xE0, 0xF0, 0x74, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, +0x02, 0x2A, 0x00, 0x18, 0xD0, 0xDD, 0x30, 0xF0, +0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, 0xE0, 0xF0, +0x92, 0xA3, 0x5F, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, +0xFF, 0x6C, 0x8C, 0xEA, 0xA1, 0x72, 0x07, 0x61, +0xE0, 0xF0, 0x6F, 0xA3, 0x7F, 0x6A, 0x6C, 0xEA, +0x4C, 0xEC, 0x80, 0x18, 0x14, 0x3B, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF3, 0x64, 0x9A, 0xFF, 0x6C, +0x80, 0x6D, 0x40, 0xA3, 0xAB, 0xED, 0x8C, 0xEA, +0xAE, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x91, 0x67, +0x80, 0x18, 0xD0, 0x3B, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xE0, 0xF0, 0x92, 0xA2, +0x03, 0x6B, 0x8C, 0xEB, 0x02, 0x73, 0x04, 0x61, +0x05, 0xF3, 0x98, 0xA2, 0x80, 0x18, 0x14, 0x3B, +0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF7, 0x72, 0xA2, +0x5F, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, +0x6C, 0xEA, 0xA1, 0x72, 0x09, 0x61, 0x01, 0x6C, +0x00, 0x18, 0x6B, 0xD1, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF2, 0x88, 0x9A, 0x80, 0x18, 0x9E, 0x57, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xA0, 0xF0, 0x96, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xE0, 0xF0, 0x95, 0xA2, 0xA0, 0xF0, +0x76, 0xC2, 0x41, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x24, 0xF3, 0x84, 0xA2, 0xE0, 0xF0, 0x75, 0xC2, +0x09, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x24, 0xF3, +0x64, 0xC2, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0x2D, 0x14, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0x2C, 0x14, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x69, 0x04, 0x67, +0x2C, 0xE8, 0x00, 0x18, 0x96, 0xD3, 0x01, 0xE2, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x58, 0x9A, +0x1C, 0x30, 0x30, 0xF0, 0x20, 0x6E, 0x90, 0x67, +0x08, 0x6D, 0x0B, 0xF4, 0x04, 0x4E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x84, 0xF5, 0x98, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0x84, 0xF5, 0x78, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF3, 0x54, 0x9A, 0x49, 0xE0, +0x40, 0xA2, 0x2C, 0xEA, 0xDD, 0x72, 0x80, 0xF0, +0x08, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, +0x58, 0x9A, 0x49, 0xE0, 0x40, 0xA2, 0x4C, 0xE9, +0x01, 0x6A, 0x2C, 0xEA, 0x13, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF3, 0x90, 0x9A, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x91, 0xE0, +0x2B, 0xF4, 0x1C, 0x4A, 0x4B, 0xF4, 0x04, 0x4B, +0xA0, 0xA4, 0x01, 0x4C, 0xA0, 0xC2, 0x01, 0x4A, +0x6A, 0xEA, 0xFA, 0x61, 0x02, 0x6A, 0x2C, 0xEA, +0x68, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, +0x5C, 0x9A, 0x49, 0xE0, 0x60, 0xA2, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF4, 0x74, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF3, 0x48, 0x9A, 0x30, 0xF0, +0x20, 0x6B, 0x4B, 0xF4, 0x0C, 0x4B, 0x41, 0xE0, +0x30, 0xF0, 0x20, 0x6A, 0x4B, 0xF4, 0x04, 0x4A, +0x80, 0xA0, 0x80, 0xC2, 0x88, 0xA0, 0x88, 0xC2, +0x90, 0xA0, 0x90, 0xC2, 0x98, 0xA0, 0x01, 0x48, +0x98, 0xC2, 0x01, 0x4A, 0x6A, 0xEA, 0xF4, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF4, 0x34, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, 0x50, 0x9A, +0x2C, 0x31, 0x02, 0x49, 0x4D, 0xE9, 0x00, 0x68, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, 0x54, 0x9A, +0x2D, 0xE0, 0x60, 0xF6, 0x13, 0x6C, 0x60, 0xDA, +0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x48, 0x9A, 0x80, 0x6D, 0x00, 0x6E, +0x14, 0x6F, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x08, 0x34, 0x91, 0xE2, +0x64, 0xF5, 0x14, 0x4C, 0x60, 0xF6, 0x18, 0x6A, +0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, 0x02, 0xF0, +0x00, 0x73, 0x01, 0x60, 0x05, 0x2B, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF1, 0x7C, 0x9B, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x60, 0x9B, +0x6D, 0xE2, 0xA0, 0xA3, 0x01, 0x4A, 0xFF, 0x6B, +0xAC, 0xEB, 0x60, 0xF6, 0x1C, 0x72, 0x60, 0xC4, +0x01, 0x4C, 0xE6, 0x61, 0x01, 0x48, 0x04, 0x70, +0xC7, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6D, 0x0B, 0xF4, 0x0C, 0x4C, 0x6B, 0xF2, +0x1D, 0x4D, 0x08, 0x6E, 0x30, 0xF0, 0x20, 0x68, +0x40, 0xEA, 0xA6, 0xF6, 0x00, 0x48, 0x02, 0x6A, +0x84, 0xF5, 0x57, 0xC0, 0x00, 0xF1, 0x52, 0xA0, +0x10, 0x22, 0x00, 0x18, 0x96, 0xD3, 0x00, 0xF1, +0x92, 0xA0, 0x30, 0xF0, 0x20, 0x6E, 0x90, 0x6D, +0x91, 0xE2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, +0x7C, 0x9A, 0x9C, 0x34, 0x0B, 0xF4, 0x04, 0x4E, +0x40, 0xEB, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF7, 0x63, 0x11, 0x62, +0x10, 0xD1, 0x0F, 0xD0, 0xFF, 0x68, 0x0C, 0xEC, +0x0C, 0xED, 0x0B, 0xD4, 0x0D, 0xD5, 0x00, 0x18, +0x96, 0xD3, 0x0B, 0x93, 0x0C, 0xD2, 0x65, 0xE2, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x4C, 0x9A, +0x3C, 0x31, 0x0A, 0xD1, 0x49, 0xE1, 0x20, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x0A, 0x94, 0xC3, 0xF2, +0x50, 0x9A, 0x0C, 0xE9, 0x30, 0xF0, 0x20, 0x6B, +0x49, 0xE4, 0x40, 0xA2, 0x23, 0xF2, 0x74, 0x9B, +0x4C, 0xE8, 0x00, 0x30, 0xE7, 0xF7, 0x1F, 0x6A, +0x05, 0xE1, 0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF3, 0x4C, 0x9A, 0x6D, 0xE4, 0x2D, 0xE3, +0x49, 0xE4, 0x29, 0xE2, 0x00, 0x6C, 0x80, 0xC2, +0x01, 0x4A, 0x6A, 0xEA, 0xFB, 0x61, 0x01, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF3, +0x48, 0x9A, 0x0D, 0x97, 0xC8, 0x41, 0xFF, 0xF7, +0x1F, 0x68, 0x0A, 0x6D, 0x10, 0x6C, 0x0C, 0xEE, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF7, +0xA7, 0xA2, 0x0B, 0x92, 0x43, 0xED, 0x13, 0x60, +0xB3, 0xE2, 0x0C, 0x92, 0x0D, 0x93, 0x9C, 0x34, +0xB5, 0xE2, 0xBC, 0x35, 0xAF, 0x35, 0x0C, 0xED, +0x30, 0x4C, 0x7B, 0xE1, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0xD5, 0xF8, 0x4E, 0x60, 0xF3, 0x44, 0x9A, +0x0C, 0xEC, 0x38, 0x6D, 0x17, 0x10, 0x0D, 0x94, +0x0B, 0x93, 0x9B, 0xE1, 0x0C, 0x94, 0x77, 0xE5, +0xBC, 0x35, 0x69, 0xE4, 0x5C, 0x32, 0x08, 0x6B, +0x7A, 0xEA, 0x01, 0x2B, 0xE5, 0xE8, 0x38, 0x4D, +0xF8, 0x4E, 0x30, 0x6C, 0x0C, 0xED, 0x12, 0xEA, +0x0C, 0xEA, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xF3, 0x44, 0x9A, 0xFF, 0x6B, 0x6C, 0xEE, +0x08, 0x6F, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6D, +0x08, 0x04, 0x2B, 0xF2, 0x10, 0x4D, 0x08, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF3, +0x58, 0x9A, 0x06, 0x00, 0x08, 0x04, 0x00, 0x6D, +0xD0, 0x67, 0x08, 0x6F, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF3, 0x4C, 0x9A, 0x0A, 0x93, +0x49, 0xE3, 0x25, 0xE2, 0x08, 0x02, 0x60, 0xA0, +0x01, 0x48, 0x4A, 0xE8, 0x60, 0xC1, 0x01, 0x49, +0xFA, 0x61, 0x11, 0x97, 0x10, 0x91, 0x0F, 0x90, +0x09, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF7, 0x13, 0xA2, 0x0E, 0xD4, 0x0F, 0xD5, +0x00, 0x18, 0x96, 0xD3, 0x01, 0xE2, 0x00, 0x6A, +0x1C, 0x30, 0x04, 0xD2, 0x93, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF2, 0x70, 0x9B, 0x30, 0xF0, +0x20, 0x6C, 0x23, 0xF2, 0x8C, 0x9C, 0x6D, 0xE0, +0x60, 0xA3, 0x91, 0xE0, 0x80, 0xA4, 0x4C, 0xEB, +0x60, 0x33, 0x8C, 0xEA, 0x6D, 0xE2, 0x0E, 0x91, +0xFF, 0xF7, 0x1F, 0x6A, 0x02, 0x48, 0x4C, 0xEB, +0x05, 0xD3, 0x6D, 0xE0, 0x07, 0xD0, 0x04, 0x49, +0x08, 0xD3, 0x00, 0x68, 0x66, 0x10, 0x12, 0x70, +0x05, 0x61, 0x0E, 0x91, 0x0F, 0x94, 0x06, 0x49, +0x85, 0xE1, 0x06, 0x10, 0x14, 0x70, 0x04, 0x61, +0x0E, 0x91, 0x0F, 0x95, 0x08, 0x49, 0xA5, 0xE1, +0x04, 0x32, 0x30, 0xF0, 0x20, 0x6D, 0x4E, 0x33, +0x23, 0xF2, 0x0C, 0x4D, 0x09, 0xD3, 0xA0, 0x9D, +0x08, 0x93, 0x07, 0x6C, 0x4C, 0xEC, 0xA9, 0xE3, +0x09, 0x93, 0x06, 0xD4, 0x06, 0x95, 0x69, 0xE2, +0x60, 0xA2, 0xFF, 0x6C, 0x01, 0x6A, 0x44, 0xED, +0x8C, 0xEB, 0x4C, 0xEB, 0x6E, 0xEA, 0x15, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, +0x91, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x23, 0xF2, 0x0C, 0x4C, 0x07, 0x95, 0x80, 0x9C, +0x8D, 0xE5, 0x0D, 0xE3, 0x60, 0xA3, 0xFF, 0x6D, +0xAC, 0xEB, 0x4E, 0xEB, 0x0F, 0x6A, 0x4C, 0xEB, +0x31, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, +0x0C, 0x4B, 0x08, 0x94, 0x60, 0x9B, 0xFF, 0x6D, +0x69, 0xE4, 0x09, 0x94, 0x89, 0xE2, 0x06, 0x94, +0x60, 0xA2, 0x01, 0x6A, 0x01, 0x4C, 0x44, 0xEC, +0xAC, 0xEB, 0x4C, 0xEB, 0x6E, 0xEA, 0x15, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, +0x91, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x23, 0xF2, 0x0C, 0x4C, 0x07, 0x95, 0x80, 0x9C, +0x8D, 0xE5, 0x0D, 0xE3, 0x60, 0xA3, 0xFF, 0x6D, +0xAC, 0xEB, 0x4E, 0xEB, 0xF0, 0x6A, 0x4C, 0xEB, +0x09, 0x2B, 0x01, 0x48, 0xFF, 0x6A, 0x01, 0x49, +0x4C, 0xE8, 0x05, 0x92, 0x43, 0xE8, 0x97, 0x61, +0x01, 0x6A, 0x18, 0x10, 0x05, 0x93, 0x08, 0x92, +0x04, 0x94, 0x64, 0x30, 0xFF, 0x48, 0x01, 0x4A, +0x0F, 0x30, 0x01, 0xE2, 0x01, 0x4C, 0xFF, 0x6A, +0x4C, 0xEC, 0x04, 0xD4, 0x30, 0xF0, 0x20, 0x6A, +0x86, 0xF7, 0x98, 0xA2, 0x04, 0x95, 0x0F, 0x6B, +0x8C, 0xEB, 0x62, 0xED, 0xFF, 0x6A, 0x7F, 0xF7, +0x02, 0x61, 0x00, 0x6A, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x68, +0x8C, 0xE8, 0x00, 0x18, 0x96, 0xD3, 0x30, 0xF0, +0x20, 0x6B, 0xA0, 0xF3, 0x78, 0x9B, 0x09, 0xE2, +0x30, 0xF0, 0x20, 0x6E, 0x5C, 0x34, 0x70, 0x6D, +0x6B, 0xF3, 0x0C, 0x4E, 0x40, 0xEB, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, +0x06, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF7, +0x89, 0xA2, 0x80, 0x18, 0xC8, 0x0A, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0x04, 0x67, +0x2C, 0xE8, 0x00, 0x18, 0x96, 0xD3, 0x01, 0xE2, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x54, 0x9A, +0x1C, 0x30, 0x49, 0xE0, 0x80, 0xA2, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF2, 0x50, 0x9A, 0x2C, 0xEC, +0x49, 0xE0, 0xA0, 0xA2, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF2, 0x5C, 0x9A, 0x2C, 0xED, 0x49, 0xE0, +0xC0, 0xA2, 0x2C, 0xEE, 0x80, 0x18, 0xC3, 0x06, +0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF3, 0x8C, 0x9C, 0xE3, 0xF2, 0xA8, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x4B, 0xF3, 0x18, 0x4B, +0x91, 0xE2, 0xB5, 0xE0, 0x11, 0xE4, 0xC6, 0x43, +0xE0, 0xA5, 0x01, 0x4D, 0xE0, 0xC3, 0xE0, 0xA4, +0x01, 0x4C, 0xEA, 0xC3, 0x01, 0x4B, 0xCA, 0xEB, +0xF7, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, +0x60, 0x9B, 0x69, 0xE2, 0x30, 0xF0, 0x20, 0x6B, +0x4B, 0xF3, 0x1E, 0x4B, 0x01, 0xE2, 0x44, 0x43, +0x80, 0xA0, 0x80, 0xC3, 0x87, 0x40, 0x03, 0x4C, +0x80, 0xA4, 0x01, 0x48, 0x8A, 0xC3, 0x01, 0x4B, +0x4A, 0xEB, 0xF6, 0x61, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, +0x06, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF7, +0x84, 0xA2, 0x80, 0x18, 0xDB, 0x0A, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x48, 0x9A, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF0, +0x9C, 0x9C, 0x10, 0xF0, 0x30, 0x6B, 0x25, 0xF4, +0x15, 0x4B, 0x01, 0x72, 0x60, 0xDC, 0x19, 0x60, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, +0x24, 0xF3, 0xA4, 0xA3, 0x01, 0x6C, 0x02, 0x72, +0xAD, 0xEC, 0x24, 0xF3, 0x84, 0xC3, 0x40, 0x6B, +0x03, 0x60, 0x04, 0x72, 0x06, 0x61, 0x41, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x58, 0x9A, +0x60, 0xC2, 0x01, 0x6C, 0x80, 0x18, 0x28, 0x09, +0x11, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, +0x44, 0x9A, 0x40, 0xEA, 0x00, 0x18, 0x9B, 0xD3, +0xF8, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, +0x7C, 0x9B, 0x10, 0xF0, 0x30, 0x6A, 0x25, 0xF4, +0x16, 0x4A, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, 0x3F, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF7, 0x83, 0xA2, +0x02, 0x24, 0x80, 0x18, 0xA9, 0x09, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x58, 0x9A, 0x00, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0x60, 0xC2, 0x80, 0x18, +0x25, 0x3E, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, +0x60, 0x9A, 0xFE, 0x6A, 0x35, 0x6E, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0xA0, 0xF2, 0x50, 0x98, +0xFF, 0x6C, 0xA4, 0x67, 0x40, 0xEA, 0x00, 0x18, +0x05, 0xE0, 0x01, 0x6C, 0x80, 0x18, 0x6A, 0x3E, +0x80, 0x18, 0x0D, 0x0B, 0x80, 0x18, 0xA5, 0x09, +0x00, 0x18, 0xEF, 0xDF, 0xA0, 0xF2, 0x50, 0x98, +0x00, 0x6D, 0xC5, 0x67, 0xFF, 0x6C, 0x40, 0xEA, +0x80, 0x18, 0x45, 0x07, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF1, 0xBC, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF3, 0x54, 0x9A, 0x01, 0x6C, 0xA0, 0xDA, +0x80, 0x18, 0xA8, 0x57, 0x17, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF1, 0xBC, 0x9A, 0x01, 0x6C, +0x80, 0x18, 0xD9, 0x57, 0x00, 0x6C, 0x80, 0x18, +0x6A, 0x3E, 0x80, 0x18, 0xA1, 0x09, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xCB, 0xF1, 0x04, 0x4C, 0x00, 0x6D, +0x34, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xA6, 0xF6, 0x00, 0x48, 0x44, 0xF3, 0x66, 0xA8, +0x02, 0x6A, 0xE0, 0xF0, 0xB5, 0xA0, 0x6D, 0xEA, +0x44, 0xF3, 0x46, 0xC8, 0x40, 0xA4, 0x02, 0x6B, +0x01, 0x69, 0x6B, 0xEB, 0x2C, 0xEA, 0x6C, 0xED, +0x4D, 0xED, 0xE0, 0xF0, 0xB5, 0xC0, 0x40, 0xA4, +0x03, 0x6E, 0xCB, 0xEE, 0x46, 0x32, 0x2C, 0xEA, +0x44, 0x32, 0xCC, 0xED, 0x4D, 0xED, 0xE0, 0xF0, +0xB5, 0xC0, 0x40, 0xA4, 0x09, 0x6F, 0xEB, 0xEF, +0x4A, 0x32, 0x2C, 0xEA, 0x48, 0x36, 0x05, 0x6A, +0x4B, 0xEA, 0x4C, 0xED, 0xCD, 0xED, 0xE0, 0xF0, +0xB5, 0xC0, 0xC0, 0xA4, 0xEC, 0xED, 0xF8, 0x4F, +0xCE, 0x36, 0x2C, 0xEE, 0xCC, 0x36, 0xCD, 0xED, +0xE0, 0xF0, 0xB5, 0xC0, 0xC0, 0xA4, 0xEC, 0xED, +0x1F, 0x65, 0xD2, 0x36, 0x2C, 0xEE, 0xD0, 0x36, +0xCD, 0xED, 0xE0, 0xF0, 0xB5, 0xC0, 0xC0, 0xA4, +0xF0, 0x4F, 0xEC, 0xED, 0xD6, 0x36, 0x2C, 0xEE, +0xD4, 0x36, 0xCD, 0xED, 0xE0, 0xF0, 0xB5, 0xC0, +0xC0, 0xA4, 0xDA, 0x36, 0x2C, 0xEE, 0xD8, 0x37, +0x41, 0x6E, 0xCB, 0xEE, 0xCC, 0xED, 0xED, 0xED, +0xE0, 0xF0, 0xB5, 0xC0, 0xC0, 0xA4, 0xDE, 0x36, +0xDC, 0x37, 0x7F, 0x6E, 0xCC, 0xED, 0xED, 0xED, +0xE0, 0xF0, 0xB5, 0xC0, 0xA2, 0xA4, 0xE0, 0xF0, +0xD7, 0xA0, 0x2C, 0xED, 0x6C, 0xEE, 0xAD, 0xEE, +0xE0, 0xF0, 0xD7, 0xC0, 0xE1, 0xA4, 0xA7, 0x67, +0x2C, 0xED, 0xFD, 0x65, 0xE0, 0xF0, 0xB6, 0xA0, +0xFF, 0x67, 0x6C, 0xED, 0xED, 0xED, 0xE0, 0xF0, +0xB6, 0xC0, 0xE1, 0xA4, 0x4C, 0xED, 0xEA, 0x37, +0x2C, 0xEF, 0xE8, 0x37, 0xED, 0xED, 0xE0, 0xF0, +0xB6, 0xC0, 0xE1, 0xA4, 0xF2, 0x37, 0x2C, 0xEF, +0xF0, 0x37, 0xFF, 0x65, 0xF8, 0x67, 0xEC, 0xED, +0xFF, 0x67, 0xED, 0xED, 0xE0, 0xF0, 0xB6, 0xC0, +0xE1, 0xA4, 0xEE, 0x37, 0x2C, 0xEF, 0xEC, 0x37, +0xFF, 0x65, 0x09, 0x6F, 0xEB, 0xEF, 0xEC, 0xED, +0xFF, 0x67, 0xED, 0xED, 0xE0, 0xF0, 0xB6, 0xC0, +0xE1, 0xA4, 0xF6, 0x37, 0x2C, 0xEF, 0xF4, 0x37, +0xFF, 0x65, 0x21, 0x6F, 0xEB, 0xEF, 0xEC, 0xED, +0xFF, 0x67, 0xED, 0xED, 0xE0, 0xF0, 0xB6, 0xC0, +0xE2, 0xA4, 0xF2, 0x37, 0x2C, 0xEF, 0xF0, 0x37, +0xFF, 0x65, 0xF8, 0x67, 0xEC, 0xEE, 0xFF, 0x67, +0xED, 0xEE, 0xE0, 0xF0, 0xD7, 0xC0, 0xE2, 0xA4, +0xF6, 0x37, 0x2C, 0xEF, 0xF4, 0x37, 0xFF, 0x65, +0x21, 0x6F, 0xEB, 0xEF, 0xCC, 0xEF, 0xDF, 0x67, +0xCD, 0xEF, 0xE0, 0xF0, 0xF7, 0xC0, 0xC1, 0xA4, +0x4C, 0xEF, 0xC6, 0x36, 0x2C, 0xEE, 0xC4, 0x36, +0x1E, 0x65, 0x03, 0x6E, 0xCB, 0xEE, 0xCC, 0xED, +0xD8, 0x67, 0xCD, 0xED, 0xE0, 0xF0, 0xB6, 0xC0, +0xC2, 0xA4, 0xCA, 0x36, 0x2C, 0xEE, 0xC8, 0x36, +0xCD, 0xEF, 0xE0, 0xF0, 0xF7, 0xC0, 0xC1, 0xA4, +0xDA, 0x36, 0x2C, 0xEE, 0xD8, 0x36, 0x1E, 0x65, +0x41, 0x6E, 0xCB, 0xEE, 0xCC, 0xED, 0xD8, 0x67, +0xCD, 0xED, 0xE0, 0xF0, 0xB6, 0xC0, 0xA3, 0xA4, +0x0F, 0x6E, 0xAC, 0xEE, 0xE0, 0xF0, 0xB8, 0xA0, +0xFE, 0x65, 0x1D, 0x65, 0x10, 0x6D, 0xD8, 0x67, +0xAB, 0xED, 0xCC, 0xED, 0xDF, 0x67, 0xCD, 0xED, +0xE0, 0xF0, 0xB8, 0xC0, 0xA4, 0xA4, 0xE0, 0xF0, +0xD9, 0xA0, 0x2C, 0xED, 0xCC, 0xEB, 0xAD, 0xEB, +0xE0, 0xF0, 0x79, 0xC0, 0xA4, 0xA4, 0x03, 0x6E, +0xCB, 0xEE, 0xA6, 0x35, 0x2C, 0xED, 0xA4, 0x35, +0xCC, 0xEB, 0xAD, 0xEB, 0xE0, 0xF0, 0x79, 0xC0, +0xA4, 0xA4, 0x4C, 0xEB, 0x7F, 0x6E, 0xAA, 0x35, +0x2C, 0xED, 0xA8, 0x35, 0xAD, 0xEB, 0xE0, 0xF0, +0x79, 0xC0, 0x42, 0xA4, 0x41, 0x6D, 0xAB, 0xED, +0x5A, 0x32, 0x2C, 0xEA, 0xAC, 0xEF, 0x58, 0x32, +0x4D, 0xEF, 0xE0, 0xF0, 0xF7, 0xC0, 0x42, 0xA4, +0xCC, 0xEF, 0x5E, 0x32, 0x5C, 0x32, 0x4D, 0xEF, +0xE0, 0xF0, 0xF7, 0xC0, 0x44, 0xA4, 0x09, 0x6F, +0xEB, 0xEF, 0x4E, 0x32, 0x2C, 0xEA, 0x4C, 0x32, +0xEC, 0xEB, 0x4D, 0xEB, 0xE0, 0xF0, 0x79, 0xC0, +0x80, 0x18, 0x25, 0x3E, 0xE0, 0xF0, 0x95, 0xA0, +0x86, 0x34, 0x2C, 0xEC, 0x80, 0x18, 0x06, 0x0B, +0xE0, 0xF0, 0x95, 0xA0, 0x8A, 0x34, 0x2C, 0xEC, +0x80, 0x18, 0xD4, 0x0A, 0xE0, 0xF0, 0x96, 0xA0, +0x08, 0x6A, 0xFF, 0x6B, 0x8C, 0xEA, 0x09, 0x22, +0xE0, 0xF0, 0xB5, 0xA0, 0x0E, 0x6A, 0x00, 0x6C, +0xAC, 0xEA, 0x6C, 0xEA, 0x07, 0x22, 0x91, 0x67, +0x05, 0x10, 0xE0, 0xF0, 0x95, 0xA0, 0x8E, 0x34, +0x2C, 0xEC, 0x6C, 0xEC, 0x30, 0xF0, 0x20, 0x68, +0xA6, 0xF6, 0x00, 0x48, 0x80, 0x18, 0x11, 0x01, +0xE0, 0xF0, 0x95, 0xA0, 0x01, 0x69, 0x92, 0x34, +0x2C, 0xEC, 0x80, 0x18, 0x04, 0x14, 0xE0, 0xF0, +0x95, 0xA0, 0x9A, 0x34, 0x2C, 0xEC, 0x80, 0x18, +0x27, 0x15, 0x80, 0x18, 0x3A, 0x5A, 0xE0, 0xF0, +0x77, 0xA0, 0x44, 0xF3, 0x90, 0xA0, 0x02, 0x6A, +0x6A, 0x33, 0x4B, 0xEA, 0x2C, 0xEB, 0x8C, 0xEA, +0xE0, 0xF0, 0x95, 0xA0, 0x6D, 0xEA, 0x03, 0x6B, +0x6B, 0xEB, 0x6C, 0xEA, 0x2C, 0xEC, 0x44, 0xF3, +0x50, 0xC0, 0x80, 0x18, 0x2D, 0x0B, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x7C, 0x9A, 0xF0, 0x6A, +0x30, 0xF0, 0x20, 0x68, 0x80, 0xA3, 0xA6, 0xF6, +0x00, 0x48, 0x8C, 0xEA, 0x40, 0xC3, 0x00, 0xF1, +0x92, 0xA0, 0x80, 0x18, 0x05, 0x0A, 0x24, 0xF3, +0x64, 0xA0, 0x04, 0x6A, 0x6C, 0xEA, 0x13, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x44, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF3, 0x88, 0x9C, +0x60, 0x9A, 0x8C, 0xEB, 0x60, 0xDA, 0x24, 0xF3, +0x64, 0xA0, 0x80, 0x9A, 0x66, 0x33, 0xC0, 0xF7, +0x60, 0x33, 0x8D, 0xEB, 0x60, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF3, 0x54, 0x9A, 0x10, 0xF0, +0x00, 0x6B, 0x60, 0xDA, 0x00, 0x18, 0xE5, 0xDD, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xC0, 0xA4, 0x01, 0x6A, 0x64, 0x67, 0x4C, 0xEE, +0xFF, 0x6C, 0x43, 0x2E, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0xE0, 0xF0, 0xEE, 0xA3, +0x02, 0x6D, 0xAB, 0xED, 0xEC, 0xED, 0xE0, 0xF0, +0xF2, 0xA3, 0xCD, 0xED, 0x20, 0x6E, 0xCC, 0xEF, +0x8C, 0xEF, 0xE0, 0xF0, 0xAE, 0xC3, 0x0B, 0x2F, +0xE0, 0xF0, 0xAF, 0xA3, 0x7F, 0x6E, 0xAC, 0xEE, +0xE0, 0xF0, 0xAE, 0xA3, 0xCC, 0xEC, 0xB6, 0x35, +0x4E, 0xED, 0x4C, 0xED, 0x0F, 0x10, 0xE0, 0xF0, +0xF4, 0xA3, 0x02, 0x6A, 0xEC, 0xEA, 0x8C, 0xEA, +0x0C, 0x22, 0xCC, 0xED, 0x8C, 0xED, 0x13, 0x2D, +0xE0, 0xF0, 0x6F, 0xA3, 0x7F, 0x6A, 0x01, 0x6D, +0x6C, 0xEA, 0x4C, 0xEC, 0x80, 0x18, 0x09, 0x3B, +0x11, 0x10, 0xCC, 0xED, 0x8C, 0xED, 0x07, 0x25, +0xE0, 0xF0, 0x6F, 0xA3, 0x7F, 0x6A, 0x00, 0x6D, +0x6C, 0xEA, 0x4C, 0xEC, 0xF3, 0x17, 0xE0, 0xF0, +0x6F, 0xA3, 0x7F, 0x6A, 0x6C, 0xEA, 0x4C, 0xEC, +0x80, 0x18, 0x14, 0x3B, 0x80, 0x18, 0x10, 0x0C, +0x1E, 0x12, 0x30, 0xF0, 0x20, 0x6D, 0xA6, 0xF6, +0x00, 0x4D, 0x05, 0x6E, 0x84, 0xF5, 0xD4, 0xC5, +0xE0, 0xA3, 0xE0, 0xF0, 0x0E, 0xA5, 0x02, 0x6E, +0xCB, 0xEE, 0x4C, 0xEF, 0x0C, 0xEE, 0xED, 0xEE, +0xE0, 0xF0, 0xCE, 0xC5, 0xE0, 0xA3, 0x11, 0x69, +0x2B, 0xE9, 0xE6, 0x37, 0x4C, 0xEF, 0xE4, 0x30, +0x03, 0x6F, 0xEB, 0xEF, 0x1F, 0x65, 0xCC, 0xEF, +0x0D, 0xEF, 0xE0, 0xF0, 0xEE, 0xC5, 0xC0, 0xA3, +0xCA, 0x36, 0x4C, 0xEE, 0xC8, 0x30, 0x05, 0x6E, +0xCB, 0xEE, 0xEC, 0xEE, 0x0D, 0xEE, 0xE0, 0xF0, +0xCE, 0xC5, 0xE0, 0xA3, 0x09, 0x68, 0x0B, 0xE8, +0xEE, 0x37, 0x4C, 0xEF, 0xEC, 0x37, 0x0C, 0xEE, +0xED, 0xEE, 0xE0, 0xF0, 0xCE, 0xC5, 0xE0, 0xA3, +0x2C, 0xEE, 0xF2, 0x37, 0x4C, 0xEF, 0xF0, 0x37, +0xED, 0xEE, 0xE0, 0xF0, 0xCE, 0xC5, 0xE0, 0xA3, +0xF6, 0x37, 0x4C, 0xEF, 0xF4, 0x37, 0xFF, 0x65, +0x21, 0x6F, 0xEB, 0xEF, 0xCC, 0xEF, 0xDF, 0x67, +0xCD, 0xEF, 0xE0, 0xF0, 0xEE, 0xC5, 0xC0, 0xA3, +0xDA, 0x36, 0x4C, 0xEE, 0xD8, 0x36, 0xFE, 0x65, +0x41, 0x6E, 0xCB, 0xEE, 0xEC, 0xEE, 0xFF, 0x67, +0xED, 0xEE, 0xE0, 0xF0, 0xCE, 0xC5, 0xE0, 0xA3, +0xFE, 0x37, 0xFC, 0x37, 0xFF, 0x65, 0x7F, 0x6F, +0x1F, 0x67, 0xEC, 0xEE, 0x0D, 0xEE, 0xE0, 0xF0, +0xCE, 0xC5, 0x21, 0xA3, 0x3E, 0x31, 0x3C, 0x31, +0x04, 0xD1, 0xE0, 0xF0, 0x0F, 0xA5, 0xF8, 0x65, +0x04, 0x90, 0x3F, 0x67, 0xEC, 0xE9, 0x0D, 0xE9, +0xE0, 0xF0, 0x2F, 0xC5, 0x24, 0xA3, 0xE0, 0xF0, +0x12, 0xA5, 0x26, 0x31, 0x4C, 0xE9, 0x24, 0x31, +0xF9, 0x65, 0x38, 0x67, 0x2C, 0xE8, 0x3F, 0x67, +0x2D, 0xE8, 0xE0, 0xF0, 0x12, 0xC5, 0x18, 0x65, +0x04, 0xA3, 0x09, 0x69, 0x2B, 0xE9, 0x0E, 0x30, +0x4C, 0xE8, 0x0C, 0x30, 0xF8, 0x65, 0x18, 0x67, +0x0C, 0xE9, 0x1F, 0x67, 0x0D, 0xE9, 0xE0, 0xF0, +0x32, 0xC5, 0x05, 0xA3, 0xE0, 0xF0, 0x13, 0xC5, +0x04, 0xA3, 0x12, 0x30, 0x4C, 0xE8, 0x10, 0x30, +0x18, 0x65, 0x11, 0x68, 0x0B, 0xE8, 0x0C, 0xE9, +0x18, 0x67, 0x0D, 0xE9, 0xE0, 0xF0, 0x32, 0xC5, +0xE0, 0xF0, 0x34, 0xA5, 0x06, 0xA3, 0x19, 0x65, +0x1E, 0x30, 0x38, 0x67, 0x1C, 0x30, 0x2C, 0xEF, +0x0D, 0xEF, 0xE0, 0xF0, 0xF4, 0xC5, 0x04, 0x6F, +0xEC, 0xEE, 0x8C, 0xEE, 0x20, 0x26, 0x30, 0xF0, +0x20, 0x6E, 0x03, 0xF2, 0xDC, 0x9E, 0x00, 0xA6, +0x18, 0x65, 0x38, 0x67, 0x2F, 0x68, 0x2C, 0xE8, +0x00, 0xC6, 0xE0, 0xF0, 0xA7, 0xA5, 0x00, 0xA6, +0xAC, 0xEA, 0x8C, 0xE8, 0x50, 0x32, 0x0D, 0xEA, +0x8C, 0xEA, 0x40, 0xC6, 0x00, 0xA6, 0x06, 0x6A, +0xAC, 0xEA, 0x8C, 0xE8, 0x54, 0x32, 0x0D, 0xEA, +0x8C, 0xEA, 0x40, 0xC6, 0x40, 0xA6, 0x8C, 0xEA, +0xED, 0xEA, 0x8C, 0xEA, 0x40, 0xC6, 0x30, 0xF0, +0x20, 0x6A, 0x86, 0xF7, 0x4E, 0xA2, 0x08, 0x6E, +0xFF, 0x6D, 0xCC, 0xEA, 0x09, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x9C, 0x9A, 0x40, 0xA4, +0xAC, 0xEA, 0xCD, 0xEA, 0xAC, 0xEA, 0x40, 0xC4, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xE0, 0xF0, 0x8E, 0xA2, 0x02, 0x6F, 0xFF, 0x6E, +0xEC, 0xEC, 0x24, 0x24, 0x30, 0xF0, 0x20, 0x6C, +0x03, 0xF2, 0xBC, 0x9C, 0x80, 0xA5, 0xCC, 0xEC, +0xED, 0xEC, 0xCC, 0xEC, 0x80, 0xC5, 0x30, 0xF0, +0x20, 0x6C, 0xC3, 0xF3, 0xA4, 0x9C, 0x24, 0xF3, +0xE4, 0xA2, 0x03, 0x6C, 0xC0, 0x9D, 0x8B, 0xEC, +0xEC, 0xEC, 0xC0, 0xF7, 0xC2, 0x36, 0xC4, 0x36, +0xCD, 0xEC, 0x24, 0xF3, 0x84, 0xC2, 0x30, 0xF0, +0x20, 0x6F, 0xC0, 0x9D, 0x23, 0xF1, 0xF0, 0x9F, +0xED, 0xEE, 0xC0, 0xDD, 0x04, 0x6D, 0x8D, 0xED, +0x24, 0xF3, 0xA4, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xE0, 0xF0, 0x93, 0xA2, +0x03, 0x2C, 0x01, 0x6C, 0xE0, 0xF0, 0x93, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF7, 0x92, 0xA2, +0x10, 0x6A, 0x8C, 0xEA, 0x08, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF3, 0x8C, 0x9A, 0x7F, 0x6A, +0xA0, 0xA4, 0xAC, 0xEA, 0x40, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x42, 0xF6, +0x90, 0xA2, 0x02, 0x74, 0x09, 0x61, 0xE0, 0xF0, +0x8F, 0xA2, 0x80, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, +0xFF, 0x6C, 0x8C, 0xEA, 0xE0, 0xF0, 0x01, 0x2A, +0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, +0xA1, 0xA3, 0xE0, 0xF0, 0x8F, 0xA0, 0x80, 0x6A, +0x7F, 0x69, 0x4B, 0xEA, 0x2C, 0xED, 0x4C, 0xEC, +0xAD, 0xEC, 0xE0, 0xF0, 0x8F, 0xC0, 0xA2, 0xA3, +0xE0, 0xF0, 0xD0, 0xA0, 0x2C, 0xED, 0x4C, 0xEE, +0xAD, 0xEE, 0xE0, 0xF0, 0xD0, 0xC0, 0xA3, 0xA3, +0x01, 0x6A, 0x2C, 0xEE, 0xE5, 0x67, 0x4C, 0xEF, +0x1F, 0x65, 0xE0, 0xF0, 0xF1, 0xA0, 0x02, 0x6D, +0xAB, 0xED, 0xAC, 0xEF, 0xB8, 0x67, 0xAD, 0xEF, +0xE0, 0xF0, 0xF1, 0xC0, 0xA3, 0xA3, 0x4C, 0xEF, +0xA6, 0x35, 0xA4, 0x35, 0xAD, 0xEF, 0xE0, 0xF0, +0xF1, 0xC0, 0xE4, 0xA3, 0x05, 0x6D, 0xAB, 0xED, +0xEA, 0x37, 0x4C, 0xEF, 0xE8, 0x37, 0xFF, 0x65, +0xE0, 0xF0, 0xF2, 0xA0, 0x1D, 0x65, 0xAC, 0xEF, +0xBF, 0x67, 0xAD, 0xEF, 0xE0, 0xF0, 0xF2, 0xC0, +0xA2, 0xA3, 0xBE, 0x35, 0xBC, 0x35, 0xAD, 0xEE, +0xE0, 0xF0, 0xD0, 0xC0, 0xC4, 0xA3, 0x02, 0x6D, +0xAB, 0xED, 0xD6, 0x36, 0x4C, 0xEE, 0xD4, 0x36, +0xFE, 0x65, 0x21, 0x6E, 0xCB, 0xEE, 0xEC, 0xEE, +0xFF, 0x67, 0xED, 0xEE, 0xE0, 0xF0, 0xD2, 0xC0, +0xE4, 0xA3, 0x2C, 0xEE, 0xFE, 0x37, 0xFC, 0x37, +0xED, 0xEE, 0xE0, 0xF0, 0xD2, 0xC0, 0xE4, 0xA3, +0xAC, 0xEE, 0x4C, 0xEF, 0xED, 0xEE, 0xE0, 0xF0, +0xD2, 0xC0, 0xE6, 0xA3, 0xA7, 0x67, 0x4C, 0xED, +0xE0, 0xF0, 0xF4, 0xA0, 0xFD, 0x65, 0x02, 0x6D, +0xAB, 0xED, 0xAC, 0xEF, 0xBF, 0x67, 0xAD, 0xEF, +0xE0, 0xF0, 0xF4, 0xC0, 0xA6, 0xA3, 0xA6, 0x35, +0x4C, 0xED, 0xA4, 0x35, 0xFD, 0x65, 0x03, 0x6D, +0xAB, 0xED, 0xEC, 0xED, 0xFF, 0x67, 0xED, 0xED, +0xE0, 0xF0, 0xB4, 0xC0, 0x66, 0xA3, 0xF8, 0x67, +0xEC, 0xED, 0x6A, 0x33, 0x4C, 0xEB, 0x68, 0x33, +0x6D, 0xED, 0x20, 0x6B, 0x6C, 0xEE, 0xE0, 0xF0, +0xB4, 0xC0, 0x09, 0x2E, 0xE0, 0xF0, 0xAE, 0xA0, +0x2C, 0xEC, 0xFF, 0x68, 0xB6, 0x35, 0x4E, 0xED, +0x0C, 0xEC, 0x4C, 0xED, 0x13, 0x10, 0x02, 0x6A, +0xAC, 0xEA, 0xFF, 0x6D, 0xAC, 0xEA, 0x11, 0x22, +0xE0, 0xF0, 0x4E, 0xA0, 0x4C, 0xEB, 0xAC, 0xEB, +0x05, 0x23, 0x2C, 0xEC, 0xAC, 0xEC, 0x80, 0x18, +0x14, 0x3B, 0x2C, 0x10, 0x2C, 0xEC, 0xFF, 0x6E, +0xCC, 0xEC, 0x01, 0x6D, 0x80, 0x18, 0x09, 0x3B, +0x25, 0x10, 0xE0, 0xF0, 0x4E, 0xA0, 0xFF, 0x6F, +0x6C, 0xEA, 0xEC, 0xEA, 0x04, 0x22, 0x2C, 0xEC, +0xEC, 0xEC, 0x00, 0x6D, 0xF3, 0x17, 0xFF, 0x6A, +0x2C, 0xEC, 0x4C, 0xEC, 0x80, 0x18, 0x14, 0x3B, +0xE0, 0xF0, 0x72, 0xA0, 0x7F, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x81, 0x72, +0x0D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, +0x88, 0x9A, 0x80, 0x18, 0x95, 0x57, 0xE0, 0xF0, +0x4F, 0xA0, 0xFF, 0x6C, 0x4C, 0xE9, 0x2C, 0xEC, +0x80, 0x18, 0x25, 0x3B, 0x80, 0x18, 0x06, 0x09, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xE0, 0xF0, 0x92, 0xA2, 0x03, 0x6B, 0x8C, 0xEB, +0x01, 0x73, 0x0F, 0x61, 0x80, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xFF, 0x6C, 0x8C, 0xEB, 0x09, 0x2B, +0x30, 0xF0, 0x20, 0x6C, 0xA0, 0xF0, 0x64, 0x9A, +0x83, 0xF2, 0x84, 0x9C, 0x8D, 0xEB, 0xA0, 0xF0, +0x64, 0xDA, 0x00, 0x18, 0xD9, 0xDD, 0x30, 0xF0, +0x20, 0x6A, 0x05, 0x6B, 0x2B, 0xF4, 0x74, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x6B, 0xF2, 0x1D, 0x4C, +0x00, 0x6D, 0x08, 0x6E, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0x80, 0xF2, 0x48, 0x98, 0x30, 0xF0, +0x20, 0x6C, 0xCB, 0xF1, 0x04, 0x4C, 0x00, 0x6D, +0x34, 0x6E, 0x40, 0xEA, 0x80, 0xF2, 0x48, 0x98, +0x30, 0xF0, 0x20, 0x6C, 0x86, 0xF7, 0x15, 0x4C, +0x00, 0x6D, 0x07, 0x6E, 0x40, 0xEA, 0x80, 0xF2, +0x48, 0x98, 0x30, 0xF0, 0x20, 0x6C, 0x86, 0xF7, +0x0E, 0x4C, 0x00, 0x6D, 0x07, 0x6E, 0x40, 0xEA, +0x80, 0x18, 0x3B, 0x07, 0x80, 0x18, 0x1E, 0x14, +0x80, 0x18, 0x12, 0x13, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF2, 0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF2, 0x70, 0x9B, 0xFF, 0x68, 0x49, 0xE4, +0x0C, 0xED, 0x05, 0xD5, 0x04, 0xD2, 0x6D, 0xE4, +0x40, 0xA2, 0xA0, 0xA3, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF3, 0x30, 0x9B, 0x0C, 0xED, 0x25, 0xE4, +0xC0, 0xA1, 0x90, 0x67, 0x4C, 0xEC, 0x0C, 0xEE, +0x80, 0x18, 0xC3, 0x06, 0x06, 0xD2, 0x80, 0xA1, +0x0C, 0xEC, 0x80, 0x18, 0xB3, 0x06, 0x22, 0x67, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x84, 0xF5, 0xD5, 0xA2, 0x07, 0x5E, 0x33, 0x60, +0x84, 0xF5, 0x75, 0x82, 0x01, 0x6A, 0x44, 0xEB, +0x14, 0x6B, 0x4C, 0xEB, 0x18, 0x2B, 0x62, 0x6B, +0x4C, 0xEB, 0x29, 0x23, 0x30, 0xF0, 0x20, 0x68, +0x05, 0x95, 0x0B, 0xF4, 0x04, 0x48, 0x90, 0x67, +0x80, 0x18, 0xAD, 0x00, 0x04, 0x93, 0x06, 0x94, +0x89, 0xE3, 0x2B, 0xE2, 0x25, 0xE0, 0x04, 0x10, +0x60, 0xA0, 0x01, 0x48, 0x60, 0xC2, 0x01, 0x4A, +0x2A, 0xE8, 0xFA, 0x61, 0x14, 0x10, 0x30, 0xF0, +0x20, 0x68, 0x05, 0x95, 0x0B, 0xF4, 0x04, 0x48, +0x90, 0x67, 0x80, 0x18, 0x92, 0x00, 0x04, 0x93, +0x06, 0x94, 0x89, 0xE3, 0x2B, 0xE2, 0x25, 0xE0, +0x04, 0x10, 0x60, 0xA0, 0x01, 0x48, 0x60, 0xC2, +0x01, 0x4A, 0x2A, 0xE8, 0xFA, 0x61, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x40, 0x98, +0x09, 0xD5, 0x24, 0x67, 0x40, 0xEA, 0x0C, 0x6B, +0x4C, 0xEB, 0x08, 0x73, 0x6A, 0x61, 0x09, 0x93, +0xC0, 0xF3, 0x40, 0x98, 0x86, 0x41, 0x71, 0xE4, +0x40, 0xEA, 0x88, 0x72, 0x62, 0x61, 0x09, 0x93, +0xC0, 0xF3, 0x40, 0x98, 0x87, 0x41, 0x71, 0xE4, +0x40, 0xEA, 0x8E, 0x72, 0x5A, 0x61, 0x09, 0x93, +0x87, 0x41, 0xC0, 0xF3, 0x40, 0x98, 0x02, 0x4C, +0x71, 0xE4, 0x40, 0xEA, 0x03, 0x72, 0x01, 0x6A, +0x51, 0x61, 0x09, 0x93, 0x87, 0x41, 0xC0, 0xF3, +0x40, 0x98, 0x07, 0x4C, 0x71, 0xE4, 0x40, 0xEA, +0x08, 0x6B, 0x6C, 0xEA, 0x17, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xE0, 0xF0, +0x99, 0xA2, 0x01, 0x6B, 0x6C, 0xEC, 0x02, 0x24, +0x50, 0x6B, 0x34, 0x10, 0x30, 0xF0, 0x20, 0x6C, +0x03, 0xF2, 0x98, 0x9C, 0x60, 0xC4, 0x24, 0xF3, +0x84, 0xA2, 0x8D, 0xEB, 0x24, 0xF3, 0x64, 0xC2, +0x01, 0x6A, 0x30, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xE0, 0xF0, 0xB5, 0xA2, +0xFF, 0x6C, 0x6C, 0xED, 0x0E, 0x25, 0xE0, 0xF0, +0xBC, 0xA2, 0x02, 0x75, 0x05, 0x61, 0xE0, 0xF0, +0xB6, 0xA2, 0xAC, 0xEB, 0x8C, 0xEB, 0x0B, 0x23, +0x09, 0x95, 0x91, 0x67, 0x80, 0x18, 0xCD, 0x02, +0xE7, 0x17, 0xE0, 0xF0, 0xAE, 0xA2, 0x40, 0x6B, +0xAC, 0xEB, 0x8C, 0xEB, 0x0A, 0x23, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF2, 0x78, 0x9B, 0x02, 0x6C, +0x80, 0xC3, 0x24, 0xF3, 0x84, 0xA2, 0x01, 0x6B, +0xD4, 0x17, 0x4F, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x58, 0x9A, 0x6B, 0xEB, 0x60, 0xC2, +0xCF, 0x17, 0x00, 0x6A, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, +0xFF, 0x69, 0x04, 0x00, 0x8C, 0xE9, 0x00, 0x6D, +0x90, 0x67, 0x08, 0x6E, 0x40, 0xEA, 0x01, 0x6A, +0x2C, 0xEA, 0x12, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xE0, 0xF0, 0x7C, 0xA2, +0x30, 0xF0, 0x20, 0x6D, 0x90, 0x67, 0x84, 0xF5, +0x75, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0x2B, 0xF4, 0x1C, 0x4D, 0x39, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xE0, 0xF0, 0x7D, 0xA2, 0x84, 0xF5, 0x75, 0xC2, +0x84, 0xF5, 0x54, 0xA2, 0x01, 0x72, 0x10, 0x60, +0x05, 0x22, 0x02, 0x72, 0x17, 0x60, 0x03, 0x72, +0x1F, 0x60, 0x29, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6D, 0x80, 0xF2, 0x4C, 0x9A, +0x90, 0x67, 0x4B, 0xF4, 0x04, 0x4D, 0x1D, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6D, +0x80, 0xF2, 0x4C, 0x9A, 0x90, 0x67, 0x4B, 0xF4, +0x0C, 0x4D, 0x13, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6D, 0x80, 0xF2, 0x4C, 0x9A, +0x90, 0x67, 0x4B, 0xF4, 0x14, 0x4D, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0x30, 0xF0, 0x20, 0x6D, 0x90, 0x67, 0x4B, 0xF4, +0x1C, 0x4D, 0x08, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x84, 0xF5, +0xB5, 0xA2, 0x07, 0x5D, 0x5A, 0x60, 0x84, 0xF5, +0x75, 0x82, 0x01, 0x6A, 0x44, 0xEB, 0x14, 0x6B, +0x4C, 0xEB, 0x07, 0x2B, 0x62, 0x6B, 0x4C, 0xEB, +0x50, 0x23, 0x04, 0x04, 0x80, 0x18, 0xEE, 0x00, +0x03, 0x10, 0x04, 0x04, 0x80, 0x18, 0xCA, 0x00, +0x02, 0x67, 0x41, 0x22, 0x01, 0x6A, 0x2C, 0xEA, +0x09, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6C, 0x80, 0xF2, 0x4C, 0x9A, 0x2B, 0xF4, +0x1C, 0x4C, 0x2F, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF4, 0x54, 0xA2, 0x01, 0x72, 0x0F, 0x60, +0x05, 0x22, 0x02, 0x72, 0x15, 0x60, 0x03, 0x72, +0x1C, 0x60, 0x29, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6C, 0x80, 0xF2, 0x4C, 0x9A, +0x4B, 0xF4, 0x04, 0x4C, 0x1A, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6C, 0x80, 0xF2, +0x4C, 0x9A, 0x4B, 0xF4, 0x0C, 0x4C, 0x11, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6C, +0x80, 0xF2, 0x4C, 0x9A, 0x4B, 0xF4, 0x14, 0x4C, +0x08, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x4B, 0xF4, +0x1C, 0x4C, 0x30, 0xF0, 0x20, 0x6D, 0xCB, 0xF1, +0x1B, 0x4D, 0x08, 0x6E, 0x40, 0xEA, 0x50, 0x67, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x01, 0x68, 0xB7, 0x17, 0x00, 0x65, +0xF5, 0x63, 0x15, 0x62, 0x14, 0xD1, 0x13, 0xD0, +0xFF, 0x6A, 0x0F, 0xD2, 0x7D, 0x67, 0x60, 0xF0, +0x68, 0xA3, 0x18, 0xD6, 0xDD, 0x67, 0x10, 0xD3, +0x60, 0xF0, 0xCC, 0xA6, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF2, 0x50, 0x9A, 0x16, 0xD4, 0x17, 0xD5, +0x19, 0xD7, 0x11, 0xD6, 0x40, 0xA2, 0xFF, 0x6B, +0x4C, 0xEB, 0x0F, 0xD3, 0x00, 0x18, 0xA0, 0xD3, +0x1C, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0x00, 0x6C, 0xFF, 0x6D, 0x39, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, +0x5C, 0x9A, 0x00, 0x68, 0x40, 0xEA, 0x01, 0x72, +0x19, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xA0, 0xF2, 0x54, 0x9A, 0xA6, 0xF7, +0x85, 0xA3, 0x01, 0x6D, 0x18, 0x6E, 0xF0, 0x67, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xA0, 0xF2, 0x54, 0x9A, 0xA6, 0xF7, +0x85, 0xA3, 0x01, 0x6D, 0x18, 0x6E, 0x00, 0x6F, +0x40, 0xEA, 0x02, 0x67, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, 0x54, 0x9A, +0xA3, 0xF2, 0x70, 0x9B, 0x49, 0xE0, 0x6D, 0xE0, +0x80, 0xA2, 0xA0, 0xA3, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF2, 0x7C, 0x9B, 0xFF, 0x6A, 0x4C, 0xEC, +0x6D, 0xE0, 0xC0, 0xA3, 0x4C, 0xED, 0x4C, 0xEE, +0x80, 0x18, 0xC3, 0x06, 0x10, 0x95, 0x87, 0x40, +0x29, 0x4C, 0x22, 0x67, 0x80, 0x18, 0x79, 0x0D, +0x11, 0x96, 0x0F, 0x2E, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6D, 0xE3, 0xF2, 0x4C, 0x9A, +0xC3, 0xF3, 0xB8, 0x9D, 0x16, 0x94, 0x49, 0xE0, +0xB5, 0xE0, 0x29, 0xE2, 0x18, 0x93, 0x35, 0xE5, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, +0x70, 0x9A, 0x0E, 0x04, 0x04, 0x02, 0x6D, 0xE0, +0x2D, 0xE3, 0x27, 0x10, 0xC0, 0xA4, 0x01, 0x4C, +0xC0, 0xC2, 0xE0, 0xA3, 0xC8, 0x42, 0xF8, 0x4E, +0xE0, 0xC6, 0xC0, 0xA3, 0x01, 0x4B, 0xD8, 0xC2, +0x01, 0x4A, 0xAA, 0xEA, 0xF3, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF2, 0x88, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF3, 0x74, 0x9A, 0x91, 0xE0, +0x00, 0x6A, 0x6D, 0xE0, 0x2D, 0xE3, 0x17, 0x96, +0x55, 0xE6, 0xA0, 0xA5, 0xA0, 0xC4, 0x19, 0x96, +0x01, 0x4C, 0x55, 0xE6, 0xA0, 0xA5, 0x01, 0x4A, +0x06, 0x72, 0xA0, 0xC3, 0x01, 0x4B, 0xF3, 0x61, +0xD0, 0x17, 0xA0, 0xA3, 0x01, 0x4B, 0xA0, 0xC2, +0x01, 0x4A, 0x8A, 0xEA, 0xFA, 0x61, 0x16, 0x94, +0x18, 0x95, 0x3A, 0x6F, 0x20, 0x6E, 0x80, 0x18, +0x04, 0x06, 0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF3, +0x5C, 0x9B, 0x38, 0x48, 0x21, 0xE0, 0x30, 0xF0, +0x20, 0x6E, 0x90, 0x67, 0x0E, 0xD0, 0x28, 0x6D, +0xCB, 0xF3, 0x1C, 0x4E, 0x30, 0xF0, 0x20, 0x68, +0x40, 0xEA, 0xA6, 0xF6, 0x00, 0x48, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF4, 0x54, 0x9A, 0x0E, 0x95, +0x00, 0xF1, 0xC5, 0xA0, 0x3A, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6E, 0xA0, 0xF3, 0x5C, 0x9E, +0x0E, 0x94, 0x28, 0x6D, 0x04, 0x06, 0x40, 0xEA, +0xE0, 0xF0, 0x5C, 0xA0, 0x02, 0x72, 0x05, 0x61, +0x00, 0xF1, 0x85, 0xA0, 0xB1, 0x67, 0x80, 0x18, +0x1D, 0x0A, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, +0x20, 0x9A, 0xFF, 0x68, 0x02, 0x6B, 0x40, 0xA1, +0x00, 0x6C, 0x3A, 0x6E, 0x0C, 0xEA, 0x6D, 0xEA, +0x0C, 0xEA, 0x40, 0xC1, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x0F, 0x95, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, 0x54, 0x9A, +0x40, 0xEA, 0x06, 0x2A, 0x40, 0xA1, 0x20, 0x6B, +0x0C, 0xEA, 0x6D, 0xEA, 0x0C, 0xEA, 0x40, 0xC1, +0x15, 0x97, 0x14, 0x91, 0x13, 0x90, 0x0B, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF1, 0x63, 0x1D, 0x62, +0x1C, 0xD1, 0x1B, 0xD0, 0x00, 0x6A, 0x7D, 0x67, +0x1E, 0xD4, 0x1F, 0xD5, 0x06, 0xD2, 0x4E, 0xCB, +0x08, 0xD2, 0x09, 0xD2, 0x0A, 0xD2, 0x0B, 0xD2, +0x0C, 0xD2, 0x0D, 0xD2, 0x0E, 0xD2, 0x0F, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x58, 0x9A, +0x1E, 0x94, 0x1F, 0x95, 0x40, 0xEA, 0x01, 0x72, +0x00, 0xF1, 0x0A, 0x61, 0x1E, 0x94, 0x1F, 0x93, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x40, 0x98, +0x0E, 0x4C, 0x71, 0xE4, 0x40, 0xEA, 0x3A, 0x72, +0xE0, 0xF0, 0x1E, 0x61, 0x1E, 0x94, 0x1F, 0x93, +0xC0, 0xF3, 0x40, 0x98, 0x30, 0x4C, 0x71, 0xE4, +0x40, 0xEA, 0x87, 0x72, 0xE0, 0xF0, 0x14, 0x61, +0x1E, 0x90, 0x1F, 0x92, 0x10, 0x03, 0x38, 0x48, +0x41, 0xE0, 0x0C, 0x01, 0x16, 0xD3, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, 0x90, 0x67, +0x01, 0x48, 0x40, 0xEA, 0x40, 0xC1, 0x16, 0x92, +0x01, 0x49, 0x4A, 0xE9, 0xF4, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x6B, 0xF3, 0x0D, 0x4B, 0x12, 0xD3, +0x00, 0x68, 0x38, 0x6C, 0x98, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x12, 0xEC, +0x4D, 0xE4, 0xC4, 0xF4, 0xAC, 0xA3, 0x01, 0x6B, +0xAC, 0xEB, 0xC0, 0xF0, 0x0F, 0x23, 0x89, 0xE2, +0xC4, 0xF4, 0x0E, 0x4A, 0x13, 0xD2, 0x14, 0xD2, +0x00, 0x69, 0xBC, 0x10, 0xE0, 0xA2, 0xC0, 0xA4, +0x01, 0x4A, 0x01, 0x4C, 0xEE, 0xEE, 0x01, 0x5E, +0xD8, 0x67, 0xCB, 0xEE, 0xAA, 0xEA, 0xCC, 0xEB, +0xF5, 0x61, 0x01, 0x73, 0xA0, 0xF0, 0x00, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x60, 0x9A, +0xFF, 0x6C, 0x06, 0x6D, 0x40, 0xA3, 0xAB, 0xED, +0x8C, 0xEA, 0xAC, 0xEA, 0x01, 0x6D, 0xAD, 0xEA, +0x8C, 0xEA, 0x40, 0xC3, 0x1E, 0x92, 0x1F, 0x93, +0x4A, 0x4A, 0x69, 0xE2, 0x11, 0xD2, 0x00, 0xF0, +0x1E, 0x03, 0x06, 0x02, 0x10, 0xD2, 0x17, 0xD3, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, +0x11, 0x94, 0x40, 0xEA, 0x10, 0x93, 0x40, 0xC3, +0x11, 0x92, 0x01, 0x4B, 0x10, 0xD3, 0x01, 0x4A, +0x11, 0xD2, 0x17, 0x92, 0x4A, 0xEB, 0xF0, 0x61, +0x1E, 0x92, 0x1F, 0x93, 0x10, 0x4A, 0x69, 0xE2, +0x11, 0xD2, 0x0C, 0x03, 0x08, 0x02, 0x10, 0xD2, +0x18, 0xD3, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x40, 0x9A, 0x11, 0x94, 0x40, 0xEA, 0x10, 0x93, +0x40, 0xC3, 0x11, 0x92, 0x01, 0x4B, 0x10, 0xD3, +0x01, 0x4A, 0x11, 0xD2, 0x18, 0x92, 0x4A, 0xEB, +0xF0, 0x61, 0x38, 0x6C, 0x98, 0xE8, 0x30, 0xF0, +0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, 0x01, 0x6D, +0x12, 0xEC, 0x69, 0xE4, 0xC4, 0xF4, 0x4C, 0xA2, +0x46, 0x32, 0xAC, 0xEA, 0x30, 0x22, 0x70, 0x10, +0xE0, 0xA2, 0xC0, 0xA3, 0x01, 0x4A, 0x01, 0x4B, +0xEE, 0xEE, 0x01, 0x5E, 0xD8, 0x67, 0xCB, 0xEE, +0xAA, 0xEA, 0xCC, 0xEC, 0xF5, 0x61, 0x01, 0x74, +0x4E, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0xE0, 0xF0, 0x7C, 0xA2, 0x02, 0x73, +0x12, 0x61, 0xE0, 0xF0, 0x96, 0xA2, 0x08, 0x6B, +0x8C, 0xEB, 0x0D, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF2, 0x78, 0x9B, 0x0A, 0x6C, 0x80, 0xC3, +0x24, 0xF3, 0x84, 0xA2, 0x01, 0x6B, 0x8D, 0xEB, +0x24, 0xF3, 0x64, 0xC2, 0x43, 0x10, 0x00, 0x6A, +0x04, 0xD2, 0x05, 0xD2, 0x08, 0x04, 0x06, 0x05, +0x0C, 0x06, 0x14, 0x97, 0x1E, 0x10, 0xE0, 0xF0, +0x5C, 0xA3, 0x02, 0x72, 0x13, 0x61, 0xE0, 0xF0, +0x96, 0xA3, 0x08, 0x6A, 0x8C, 0xEA, 0xFF, 0x6C, +0x8C, 0xEA, 0x0C, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x58, 0x9A, 0x0A, 0x6C, 0x80, 0xC2, +0x24, 0xF3, 0x44, 0xA3, 0x4D, 0xED, 0x24, 0xF3, +0xA4, 0xC3, 0x24, 0x10, 0x13, 0x97, 0x00, 0x6A, +0x04, 0xD2, 0x05, 0xD2, 0x08, 0x04, 0x06, 0x05, +0x0C, 0x06, 0x80, 0x18, 0x4E, 0x0E, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x60, 0x9A, +0xFF, 0x6C, 0x05, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x49, +0xFF, 0x6A, 0x4C, 0xE9, 0x12, 0x93, 0x40, 0xA3, +0x43, 0xE9, 0x15, 0x61, 0x01, 0x48, 0x38, 0x4B, +0x02, 0x70, 0x12, 0xD3, 0x03, 0x60, 0x25, 0x17, +0x00, 0x6A, 0x01, 0x10, 0x01, 0x6A, 0x1D, 0x97, +0x1C, 0x91, 0x1B, 0x90, 0x0F, 0x63, 0x00, 0xEF, +0x8D, 0xE3, 0x08, 0x02, 0xC4, 0xF4, 0x14, 0x4B, +0x0C, 0x05, 0x01, 0x6C, 0x89, 0x17, 0x38, 0x6C, +0x98, 0xE8, 0x30, 0x33, 0x0C, 0x02, 0x10, 0x05, +0x12, 0xEC, 0x91, 0xE3, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0x91, 0xE3, 0xE4, 0xF4, +0x04, 0x4C, 0x01, 0x6B, 0x1B, 0x17, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x6A, 0x83, 0xF2, +0x70, 0x9B, 0x4C, 0xEE, 0x4C, 0xEF, 0x0C, 0xD4, +0x0D, 0xD5, 0x06, 0xD6, 0x04, 0xD7, 0x60, 0xA3, +0x6C, 0xEA, 0x05, 0xD2, 0x00, 0x18, 0xA0, 0xD3, +0x1C, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0x00, 0x6C, 0xFF, 0x6D, 0x33, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, +0x5C, 0x9A, 0x00, 0x68, 0x40, 0xEA, 0x01, 0x72, +0x19, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xA0, 0xF2, 0x54, 0x9A, 0xA6, 0xF7, +0x84, 0xA3, 0x01, 0x6D, 0x18, 0x6E, 0xF0, 0x67, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xA0, 0xF2, 0x54, 0x9A, 0xA6, 0xF7, +0x84, 0xA3, 0x01, 0x6D, 0x18, 0x6E, 0x00, 0x6F, +0x40, 0xEA, 0x02, 0x67, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, 0x54, 0x9A, +0xA3, 0xF2, 0x70, 0x9B, 0x49, 0xE0, 0x6D, 0xE0, +0x80, 0xA2, 0xA0, 0xA3, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF2, 0x7C, 0x9B, 0xFF, 0x6A, 0x4C, 0xEC, +0x6D, 0xE0, 0xC0, 0xA3, 0x4C, 0xED, 0x4C, 0xEE, +0x80, 0x18, 0xC3, 0x06, 0x06, 0x95, 0x87, 0x40, +0x29, 0x4C, 0x22, 0x67, 0x80, 0x18, 0x79, 0x0D, +0x04, 0x92, 0x2E, 0x2A, 0x30, 0xF0, 0x20, 0x6C, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x8C, 0x9C, +0x30, 0xF0, 0x20, 0x6D, 0xE3, 0xF2, 0x48, 0x9A, +0x03, 0xF3, 0xA0, 0x9D, 0x0D, 0x93, 0x91, 0xE0, +0x49, 0xE0, 0x31, 0xE4, 0xB5, 0xE0, 0xC0, 0xA3, +0xC0, 0xC2, 0xC0, 0xA3, 0x01, 0x4A, 0xAA, 0xEA, +0xC0, 0xC4, 0x01, 0x4B, 0x01, 0x4C, 0xF7, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6C, +0xE3, 0xF2, 0x4C, 0x9A, 0xC3, 0xF3, 0x9C, 0x9C, +0x0C, 0x93, 0x49, 0xE0, 0x81, 0xE0, 0x29, 0xE2, +0x21, 0xE0, 0x80, 0xA3, 0x01, 0x4B, 0x80, 0xC2, +0x01, 0x4A, 0x0A, 0xEA, 0xFA, 0x61, 0x2D, 0x10, +0x04, 0x92, 0x01, 0x72, 0x2A, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF2, 0x88, 0x9B, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF3, 0x6C, 0x9B, 0x30, 0xF0, +0x20, 0x6A, 0x4B, 0xF3, 0x18, 0x4A, 0x6D, 0xE0, +0x91, 0xE0, 0x2D, 0xE3, 0xA6, 0x42, 0xC0, 0xA2, +0xC0, 0xC4, 0xCA, 0xA2, 0x01, 0x4A, 0xAA, 0xEA, +0xC0, 0xC3, 0x01, 0x4C, 0x01, 0x4B, 0xF7, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, 0x6C, 0x9B, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF3, 0x08, 0x4A, +0x61, 0xE0, 0x21, 0xE0, 0x64, 0x42, 0x80, 0xA2, +0x01, 0x4A, 0x6A, 0xEA, 0x80, 0xC0, 0x01, 0x48, +0xFA, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0xE0, 0xF0, 0x7C, 0xA2, 0x02, 0x73, +0x05, 0x61, 0x00, 0xF1, 0x84, 0xA2, 0xB1, 0x67, +0x80, 0x18, 0x1D, 0x0A, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF3, 0x7C, 0x9A, 0xFF, 0x68, 0x10, 0x6C, +0x40, 0xA3, 0x34, 0x6E, 0x0C, 0xEA, 0x8D, 0xEA, +0x0C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x05, 0x95, 0x00, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, +0x54, 0x9A, 0x40, 0xEA, 0x0A, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF2, 0x60, 0x9A, 0x20, 0x6C, +0x40, 0xA3, 0x0C, 0xEA, 0x8D, 0xEA, 0x0C, 0xEA, +0x40, 0xC3, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xE4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0xA6, 0xF6, +0x00, 0x4C, 0xA0, 0xF0, 0xAF, 0xA4, 0x04, 0x6B, +0xFF, 0x6A, 0xAC, 0xEB, 0x4C, 0xEB, 0x4C, 0xEF, +0x07, 0x23, 0x00, 0x6C, 0xA4, 0x67, 0xC4, 0x67, +0x01, 0x6F, 0x80, 0x18, 0x72, 0x0F, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x50, 0x9A, +0xA0, 0xF0, 0x8A, 0xA4, 0x02, 0x6D, 0x08, 0x6E, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, +0x44, 0xF3, 0x76, 0xA0, 0xFF, 0x6A, 0x24, 0x67, +0x4C, 0xE9, 0x34, 0x2B, 0xA0, 0xF0, 0x8F, 0xA0, +0x01, 0x6B, 0x8C, 0xEB, 0x4C, 0xEB, 0x2E, 0x23, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, +0xE0, 0xF0, 0x88, 0xA0, 0x40, 0xEA, 0x01, 0x72, +0x25, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF4, +0x71, 0xA2, 0x0A, 0x6C, 0x01, 0x4B, 0xC6, 0xF4, +0x71, 0xC2, 0xC6, 0xF4, 0x71, 0xA2, 0x8E, 0xEB, +0x07, 0x2B, 0x05, 0xF3, 0x91, 0xA0, 0xC6, 0xF4, +0x71, 0xC2, 0x01, 0x4C, 0x05, 0xF3, 0x91, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xA0, 0xF0, 0x90, 0xA2, 0x05, 0xF3, 0x71, 0xA2, +0x83, 0xEB, 0x08, 0x61, 0x05, 0xF3, 0x72, 0xA2, +0x05, 0x2B, 0x05, 0xF3, 0x71, 0xC2, 0x91, 0x67, +0x80, 0x18, 0xE9, 0x0F, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF5, 0x63, 0x15, 0x62, 0x14, 0xD1, 0x13, 0xD0, +0x00, 0x6A, 0x7D, 0x67, 0x30, 0xF0, 0x20, 0x69, +0x17, 0xD5, 0x0A, 0xD2, 0x56, 0xCB, 0x06, 0xD2, +0x07, 0xD2, 0xC0, 0xF3, 0x40, 0x99, 0x04, 0x67, +0x06, 0x4C, 0xB1, 0xE4, 0x40, 0xEA, 0x08, 0x72, +0x00, 0xF1, 0x0F, 0x61, 0x17, 0x95, 0xC0, 0xF3, +0x40, 0x99, 0x87, 0x40, 0xB1, 0xE4, 0x40, 0xEA, +0x06, 0x72, 0x00, 0xF1, 0x06, 0x61, 0x27, 0x40, +0x08, 0x02, 0x20, 0xF0, 0x06, 0x03, 0x03, 0x49, +0x0C, 0xD2, 0x0E, 0xD3, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x40, 0x9A, 0x91, 0x67, 0x01, 0x49, +0x40, 0xEA, 0x0C, 0x94, 0x0E, 0x95, 0x40, 0xC4, +0x01, 0x4C, 0xAA, 0xEC, 0x0C, 0xD4, 0xF2, 0x61, +0xF6, 0x10, 0xE0, 0xA3, 0xC0, 0xA2, 0x01, 0x4B, +0x01, 0x4A, 0xEE, 0xEE, 0x01, 0x5E, 0xD8, 0x67, +0xCB, 0xEE, 0xAA, 0xEB, 0xCC, 0xEC, 0xF5, 0x61, +0x01, 0x74, 0x01, 0x6A, 0xE0, 0xF0, 0x02, 0x61, +0x17, 0x92, 0x27, 0x40, 0x19, 0x49, 0x07, 0x03, +0x08, 0x04, 0x45, 0xE1, 0x0C, 0xD3, 0x0F, 0xD4, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, +0x91, 0x67, 0x01, 0x49, 0x40, 0xEA, 0x0C, 0x95, +0x40, 0xC5, 0x0F, 0x92, 0x01, 0x4D, 0x0C, 0xD5, +0x4A, 0xED, 0xF2, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0x20, 0xF1, 0x8D, 0xA3, +0x01, 0x6A, 0x00, 0x69, 0x8C, 0xEA, 0x25, 0x2A, +0x5D, 0x67, 0xDD, 0xA2, 0xA4, 0xF4, 0x5F, 0xA3, +0x9D, 0x67, 0xBC, 0xA4, 0xA4, 0xF4, 0x9E, 0xA3, +0x66, 0x67, 0x4E, 0xEB, 0x51, 0x67, 0x04, 0x2B, +0x45, 0x67, 0x8E, 0xEA, 0x01, 0x5A, 0x58, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, +0x9D, 0x67, 0xBE, 0xA4, 0xC4, 0xF4, 0x80, 0xA3, +0xC4, 0xF4, 0x61, 0xA3, 0xAE, 0xEC, 0x01, 0x5C, +0x98, 0x67, 0x8B, 0xEC, 0xBD, 0x67, 0x8C, 0xEA, +0x9F, 0xA5, 0x8E, 0xEB, 0x80, 0xF0, 0x0E, 0x2B, +0x14, 0x10, 0xFF, 0x6A, 0x2C, 0xEA, 0x0D, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0x35, 0xA6, 0xF6, +0x00, 0x4A, 0xB5, 0xE2, 0x07, 0x04, 0x85, 0xF0, +0x1E, 0x4D, 0x04, 0x6E, 0x00, 0x18, 0xE9, 0xD3, +0x08, 0x22, 0x01, 0x49, 0x04, 0x71, 0xED, 0x61, +0x79, 0x10, 0x01, 0x72, 0x77, 0x61, 0x00, 0x6B, +0x0D, 0xD3, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, +0x7C, 0x9A, 0xFF, 0x6D, 0x22, 0x6C, 0x40, 0xA3, +0x8B, 0xEC, 0xAC, 0xEA, 0x8C, 0xEA, 0x01, 0x6C, +0x8D, 0xEA, 0xAC, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xE0, 0xF0, +0x77, 0xA2, 0x8C, 0xEB, 0xAC, 0xEB, 0x14, 0x2B, +0xE0, 0xF0, 0x7C, 0xA2, 0x02, 0x73, 0x0A, 0x60, +0x17, 0x94, 0x27, 0x40, 0x09, 0x49, 0x0A, 0x05, +0x20, 0xF0, 0x0E, 0x02, 0x85, 0xE1, 0x0C, 0xD5, +0x10, 0xD2, 0x12, 0x10, 0xE0, 0xF0, 0xD6, 0xA2, +0x08, 0x6B, 0xCC, 0xEB, 0xAC, 0xEB, 0xF0, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF2, 0x78, 0x9B, +0x09, 0x6D, 0xA0, 0xC3, 0x24, 0xF3, 0x64, 0xA2, +0x6D, 0xEC, 0x24, 0xF3, 0x84, 0xC2, 0x35, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, +0x91, 0x67, 0x01, 0x49, 0x40, 0xEA, 0x0C, 0x93, +0x10, 0x94, 0x40, 0xC3, 0x01, 0x4B, 0x8A, 0xEB, +0x0C, 0xD3, 0xF2, 0x61, 0x17, 0x95, 0x16, 0x48, +0x07, 0x02, 0xA1, 0xE0, 0x06, 0x01, 0x11, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, +0x90, 0x67, 0x01, 0x48, 0x40, 0xEA, 0x11, 0x93, +0x40, 0xC1, 0x01, 0x49, 0x6A, 0xE9, 0xF4, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x20, 0xF1, 0x8D, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, +0x0E, 0x23, 0x0D, 0x94, 0xB8, 0x67, 0x04, 0xD5, +0x90, 0x36, 0xD9, 0xE2, 0x06, 0x04, 0x0A, 0x05, +0x85, 0xF0, 0x1E, 0x4E, 0x00, 0x6F, 0x80, 0x18, +0x37, 0x05, 0x01, 0x6A, 0x17, 0x10, 0x00, 0x6E, +0x06, 0x04, 0x0A, 0x05, 0xE6, 0x67, 0x80, 0x18, +0x72, 0x0F, 0xF7, 0x17, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF3, 0x7C, 0x9A, 0xFF, 0x6C, 0x32, 0x6D, +0x40, 0xA3, 0xAB, 0xED, 0x8C, 0xEA, 0xAC, 0xEA, +0x21, 0x6D, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, +0xE8, 0x17, 0x00, 0x6A, 0x15, 0x97, 0x14, 0x91, +0x13, 0x90, 0x0B, 0x63, 0x00, 0xEF, 0x30, 0xF0, +0x20, 0x6A, 0x08, 0x03, 0xCB, 0xF1, 0x0B, 0x4A, +0x20, 0xF0, 0x06, 0x05, 0x01, 0x6C, 0x01, 0x17, +0xF3, 0x63, 0x19, 0x62, 0x18, 0xD1, 0x17, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF5, 0x78, 0x9A, +0x22, 0xF5, 0x18, 0x4A, 0x00, 0x6C, 0x05, 0xD3, +0x61, 0x9A, 0x44, 0xAA, 0x06, 0xD3, 0x7D, 0x67, +0x4E, 0xCB, 0x00, 0x6A, 0x49, 0xCB, 0x50, 0xC3, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0x7C, 0x9B, +0x10, 0xF0, 0x30, 0x6A, 0xE8, 0xF2, 0x01, 0x4A, +0x40, 0xDB, 0x80, 0x18, 0x30, 0x3E, 0x01, 0x6C, +0x11, 0xD2, 0x80, 0x18, 0x30, 0x3E, 0x0C, 0xD2, +0x00, 0x18, 0x9B, 0xD3, 0x14, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x86, 0xF7, 0x75, 0xA2, 0x01, 0x6A, +0x6C, 0xEA, 0x60, 0xF3, 0x01, 0x22, 0x00, 0x6C, +0x0E, 0xD4, 0x0B, 0xD4, 0x10, 0xD4, 0x57, 0x13, +0x0C, 0x95, 0x11, 0x94, 0x80, 0x18, 0x55, 0x3E, +0x30, 0xF0, 0x20, 0x6C, 0x02, 0x67, 0xC0, 0xF3, +0x40, 0x9C, 0x90, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0x67, 0xC0, 0xF3, 0x40, 0x9B, +0x81, 0x40, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x09, 0xD2, 0xC0, 0xF3, 0x40, 0x9C, 0x84, 0x40, +0x40, 0xEA, 0x09, 0x95, 0xC2, 0x67, 0x91, 0x67, +0x80, 0x18, 0xC3, 0x06, 0x30, 0xF0, 0x20, 0x6B, +0x09, 0xD2, 0xC0, 0xF3, 0x40, 0x9B, 0x90, 0x67, +0xFC, 0x69, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x4C, 0xE9, 0xC0, 0xF3, 0x40, 0x9C, 0x0C, 0x94, +0x01, 0x4C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x08, 0xD2, 0x0C, 0x94, 0xC0, 0xF3, 0x40, 0x9B, +0x40, 0xEA, 0x08, 0x94, 0x80, 0x34, 0x4D, 0xEC, +0xE7, 0xF7, 0x1F, 0x6A, 0x4C, 0xEC, 0x30, 0xF0, +0x20, 0x6A, 0xCB, 0xF1, 0x64, 0xA2, 0x04, 0x6A, +0x08, 0xD4, 0x6C, 0xEA, 0xFC, 0x4C, 0x12, 0xD4, +0x02, 0x2A, 0x08, 0x92, 0x12, 0xD2, 0x0C, 0x94, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, +0x0F, 0x4C, 0x40, 0xEA, 0x13, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x67, 0xF7, +0xB8, 0xA2, 0x01, 0x6B, 0xFF, 0x6C, 0x6C, 0xED, +0x7D, 0x25, 0x50, 0x71, 0x70, 0x60, 0x80, 0x71, +0x20, 0xF2, 0x17, 0x61, 0x00, 0xF1, 0x58, 0xA2, +0x4C, 0xEB, 0x8C, 0xEB, 0x04, 0x23, 0x08, 0x95, +0x90, 0x67, 0x80, 0x18, 0xD7, 0x3E, 0x30, 0xF0, +0x20, 0x6A, 0xEB, 0xF1, 0x70, 0xA2, 0x01, 0x6A, +0x6C, 0xEA, 0x20, 0xF2, 0x06, 0x22, 0x67, 0x40, +0x00, 0x6C, 0x09, 0x4B, 0x0F, 0xD3, 0x0D, 0xD4, +0x0A, 0xD4, 0x30, 0xF0, 0x20, 0x6A, 0x0F, 0x94, +0xC0, 0xF3, 0x40, 0x9A, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x86, 0xF7, 0x67, 0xA3, 0x9D, 0x67, +0x64, 0x33, 0x6D, 0xE4, 0x8A, 0xAB, 0x0D, 0x93, +0x91, 0xE3, 0x1F, 0xF7, 0x00, 0x6B, 0x8C, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x11, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0x86, 0xF7, 0x67, 0xA3, +0x9D, 0x67, 0x64, 0x33, 0x6D, 0xE4, 0x8A, 0xAB, +0x0D, 0x93, 0x91, 0xE3, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF1, 0x7C, 0x9B, 0x6D, 0xE4, 0x80, 0xA3, +0x06, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, +0x60, 0x9B, 0x71, 0xE4, 0x80, 0xA4, 0xFF, 0x6B, +0x8C, 0xEB, 0x6E, 0xEA, 0xE0, 0xF1, 0x0D, 0x2A, +0x0A, 0x94, 0xFF, 0x6A, 0x0F, 0x93, 0x01, 0x4C, +0x4C, 0xEC, 0x0D, 0x92, 0x01, 0x4B, 0x06, 0x74, +0x01, 0x4A, 0x0A, 0xD4, 0x0D, 0xD2, 0x0F, 0xD3, +0xC0, 0x61, 0x08, 0x92, 0xFF, 0xF7, 0x1F, 0x6D, +0x90, 0x67, 0xAC, 0xEC, 0x4C, 0xED, 0x80, 0x18, +0xEE, 0x07, 0xC0, 0xF1, 0x16, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x44, 0xF3, +0x90, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x44, 0xF3, 0x70, 0xC2, 0xCA, 0x11, 0x00, 0xF1, +0x58, 0xA2, 0x4C, 0xEB, 0x8C, 0xEB, 0xC0, 0xF1, +0x04, 0x23, 0x08, 0x95, 0x90, 0x67, 0x80, 0x18, +0xD7, 0x3E, 0xBF, 0x11, 0x88, 0x71, 0xA0, 0xF0, +0x07, 0x60, 0x89, 0x59, 0x06, 0x60, 0x08, 0x71, +0xA0, 0xF0, 0x02, 0x60, 0x80, 0x71, 0x2B, 0x60, +0xB4, 0x11, 0xA0, 0x71, 0x03, 0x60, 0xC0, 0x71, +0xA0, 0xF1, 0x0F, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0x24, 0xF3, 0x51, 0xA3, +0x90, 0x67, 0x08, 0xD3, 0x01, 0x4A, 0x24, 0xF3, +0x51, 0xC3, 0x80, 0x18, 0x24, 0x06, 0xA0, 0xF1, +0x00, 0x22, 0x90, 0x67, 0x80, 0x18, 0x3B, 0x06, +0x80, 0xF1, 0x1B, 0x22, 0x08, 0x94, 0x06, 0x6A, +0xE0, 0xF0, 0x79, 0xA4, 0x6C, 0xEA, 0x80, 0xF1, +0x14, 0x2A, 0x91, 0x67, 0x80, 0x18, 0x16, 0x07, +0x08, 0x93, 0x24, 0xF3, 0x52, 0xA3, 0x01, 0x4A, +0x24, 0xF3, 0x52, 0xC3, 0x8A, 0x11, 0x44, 0xF3, +0x50, 0xA2, 0x4C, 0xEB, 0x8C, 0xEB, 0x59, 0x23, +0x87, 0x40, 0x00, 0x6A, 0x09, 0x4C, 0x0F, 0xD4, +0x0D, 0xD2, 0x0A, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x0F, 0x94, 0xC0, 0xF3, 0x40, 0x9A, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x86, 0xF7, 0x67, 0xA3, +0x9D, 0x67, 0x64, 0x33, 0x6D, 0xE4, 0x8A, 0xAB, +0x0D, 0x93, 0x91, 0xE3, 0x1F, 0xF7, 0x00, 0x6B, +0x8C, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, +0x11, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0x86, 0xF7, +0x67, 0xA3, 0x9D, 0x67, 0x64, 0x33, 0x6D, 0xE4, +0x8A, 0xAB, 0x0D, 0x93, 0x91, 0xE3, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF1, 0x7C, 0x9B, 0x6D, 0xE4, +0x80, 0xA3, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF1, 0x60, 0x9B, 0x71, 0xE4, 0x80, 0xA4, +0xFF, 0x6B, 0x8C, 0xEB, 0x6E, 0xEA, 0x21, 0x2A, +0x0A, 0x94, 0xFF, 0x6A, 0x0F, 0x93, 0x01, 0x4C, +0x4C, 0xEC, 0x0D, 0x92, 0x01, 0x4B, 0x06, 0x74, +0x01, 0x4A, 0x0A, 0xD4, 0x0D, 0xD2, 0x0F, 0xD3, +0xC1, 0x61, 0x08, 0x92, 0xFF, 0xF7, 0x1F, 0x6D, +0x90, 0x67, 0xAC, 0xEC, 0x4C, 0xED, 0x80, 0x18, +0xEE, 0x07, 0x0B, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x44, 0xF3, 0x90, 0xA2, +0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x44, 0xF3, +0x70, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0xE0, 0xF0, 0x99, 0xA2, 0x08, 0x6B, +0x8C, 0xEB, 0x20, 0xF1, 0x02, 0x23, 0x44, 0xF3, +0x74, 0xA2, 0x04, 0x23, 0x44, 0xF3, 0x55, 0xA2, +0x00, 0xF1, 0x1B, 0x22, 0x0C, 0x94, 0x12, 0x95, +0xD0, 0x67, 0x80, 0x18, 0x6E, 0x48, 0x15, 0x11, +0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF3, 0x40, 0x9C, +0x64, 0x40, 0x83, 0x67, 0x08, 0xD3, 0x40, 0xEA, +0x82, 0x67, 0x80, 0x18, 0xB3, 0x06, 0x09, 0x95, +0xFF, 0x6B, 0xC3, 0x67, 0x4C, 0xEE, 0x90, 0x67, +0x6C, 0xED, 0x80, 0x18, 0xD2, 0x06, 0x30, 0xF0, +0x20, 0x6C, 0xC0, 0xF3, 0x40, 0x9C, 0x08, 0x94, +0x40, 0xEA, 0x82, 0x67, 0x80, 0x18, 0xEC, 0x0D, +0xE0, 0xF0, 0x0B, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x86, 0xF7, 0x75, 0xA2, 0x40, 0x6A, 0x6C, 0xEA, +0xFF, 0x6B, 0x6C, 0xEA, 0x25, 0x22, 0x09, 0x94, +0x47, 0x40, 0x01, 0x4A, 0x89, 0xE2, 0x08, 0xD2, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, +0x08, 0x94, 0x40, 0xEA, 0x45, 0x72, 0x18, 0x61, +0x08, 0x94, 0x80, 0x18, 0x34, 0x14, 0x01, 0x72, +0x13, 0x61, 0x08, 0x94, 0x80, 0x18, 0x46, 0x14, +0x01, 0x72, 0x0E, 0x61, 0x08, 0x94, 0x80, 0x18, +0x57, 0x14, 0x04, 0x22, 0x01, 0x6C, 0x0E, 0xD4, +0x0B, 0xD4, 0x06, 0x10, 0x08, 0x94, 0x80, 0x18, +0x89, 0x14, 0x01, 0x6B, 0x0E, 0xD3, 0x0B, 0xD3, +0x90, 0x67, 0x80, 0x18, 0x24, 0x06, 0x08, 0x22, +0x09, 0x95, 0x90, 0x67, 0x80, 0x18, 0xAC, 0x0D, +0x03, 0x22, 0x01, 0x6A, 0x0E, 0xD2, 0x0B, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF7, 0x75, 0xA2, +0x02, 0x6A, 0x6C, 0xEA, 0x08, 0x22, 0x09, 0x95, +0x90, 0x67, 0x80, 0x18, 0x1E, 0x10, 0x03, 0x22, +0x01, 0x6C, 0x0E, 0xD4, 0x0B, 0xD4, 0x30, 0xF0, +0x20, 0x6A, 0x86, 0xF7, 0x75, 0xA2, 0x04, 0x6A, +0x6C, 0xEA, 0x08, 0x22, 0x09, 0x95, 0x90, 0x67, +0x80, 0x18, 0xCF, 0x0E, 0x03, 0x22, 0x01, 0x6B, +0x0E, 0xD3, 0x0B, 0xD3, 0x09, 0x95, 0x90, 0x67, +0x00, 0xF0, 0x12, 0x06, 0x04, 0x07, 0x80, 0x18, +0x2E, 0x04, 0x05, 0x72, 0x13, 0x60, 0x0C, 0x72, +0x24, 0x60, 0x04, 0x72, 0x3E, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF7, 0x6F, 0xA2, 0x44, 0x6A, +0x6C, 0xEA, 0x37, 0x22, 0x5D, 0x67, 0x09, 0x95, +0xC9, 0xAA, 0xF0, 0xA2, 0x90, 0x67, 0x80, 0x18, +0x8F, 0x46, 0x11, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF7, 0x6F, 0xA2, 0x78, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x25, 0x22, +0x7D, 0x67, 0x09, 0x95, 0xC9, 0xAB, 0xF0, 0xA3, +0x90, 0x67, 0x80, 0x18, 0x4B, 0x45, 0x1A, 0x2A, +0x1C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x20, 0xF1, 0x8F, 0xA2, 0x20, 0x6B, +0x8C, 0xEB, 0x13, 0x23, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF2, 0x78, 0x9B, 0x29, 0x6C, 0x80, 0xC3, +0x24, 0xF3, 0x84, 0xA2, 0x01, 0x6B, 0x8D, 0xEB, +0x01, 0x6C, 0x24, 0xF3, 0x64, 0xC2, 0x0E, 0xD4, +0x0B, 0xD4, 0x03, 0x10, 0x01, 0x6B, 0x0E, 0xD3, +0x0B, 0xD3, 0x09, 0x95, 0x90, 0x67, 0x80, 0x18, +0x52, 0x06, 0x1D, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xE0, 0xF0, 0x96, 0xA2, +0x20, 0x6B, 0x8C, 0xEB, 0x0D, 0x23, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF2, 0x78, 0x9B, 0x0B, 0x6C, +0x80, 0xC3, 0x24, 0xF3, 0x84, 0xA2, 0x01, 0x6B, +0x8D, 0xEB, 0x24, 0xF3, 0x64, 0xC2, 0x07, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x58, 0x9A, +0x4C, 0x6B, 0x6B, 0xEB, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x08, 0xD2, +0xE0, 0xF0, 0x75, 0xA2, 0x80, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x25, 0x22, +0x0B, 0x93, 0x03, 0x23, 0x01, 0x6C, 0x0B, 0xD4, +0x20, 0x10, 0x09, 0x95, 0x90, 0x67, 0x80, 0x18, +0x88, 0x06, 0x1B, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x58, 0x9A, 0x22, 0x6B, 0x60, 0xC2, +0x08, 0x92, 0x24, 0xF3, 0x64, 0xA2, 0x01, 0x6A, +0x6D, 0xEA, 0x08, 0x93, 0x24, 0xF3, 0x44, 0xC3, +0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, +0x60, 0x9A, 0xFF, 0x6C, 0x40, 0xA3, 0x8C, 0xEA, +0x08, 0x6C, 0x8D, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, +0x40, 0xC3, 0x13, 0x94, 0x01, 0x6D, 0x80, 0x18, +0xED, 0x06, 0x16, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x08, 0xD2, 0x24, 0xF3, +0x64, 0xA2, 0x01, 0x6A, 0x6D, 0xEA, 0x08, 0x93, +0x24, 0xF3, 0x44, 0xC3, 0x0C, 0x94, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, 0x10, 0x4C, +0x40, 0xEA, 0x08, 0x94, 0x84, 0xF5, 0x56, 0xC4, +0x08, 0x71, 0x02, 0x60, 0x88, 0x71, 0x48, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xE0, 0xF0, 0x97, 0xA2, 0x40, 0x6B, 0x8C, 0xEB, +0x0E, 0x23, 0x0E, 0x93, 0x0C, 0x2B, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF2, 0x78, 0x9B, 0x25, 0x6C, +0x80, 0xC3, 0x24, 0xF3, 0x84, 0xA2, 0x01, 0x6B, +0x8D, 0xEB, 0x24, 0xF3, 0x64, 0xC2, 0x09, 0x95, +0x90, 0x67, 0x80, 0x18, 0x94, 0x06, 0x11, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x58, 0x9A, +0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x24, 0xF3, 0x84, 0xA2, +0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x24, 0xF3, +0x64, 0xC2, 0x30, 0xF0, 0x20, 0x69, 0xA6, 0xF6, +0x00, 0x49, 0xE0, 0xF0, 0x76, 0xA1, 0x40, 0x6A, +0x6C, 0xEA, 0x12, 0x22, 0x09, 0x95, 0x90, 0x67, +0x80, 0x18, 0x6D, 0x0A, 0x0D, 0x22, 0x24, 0xF3, +0x64, 0xA1, 0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x24, 0xF3, 0x44, 0xC1, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x58, 0x9A, 0x00, 0x6B, 0x60, 0xC2, +0x11, 0x95, 0x0C, 0x96, 0x01, 0x6C, 0x80, 0x18, +0x36, 0x3E, 0x11, 0x95, 0x0C, 0x96, 0x00, 0x6C, +0x22, 0x67, 0x80, 0x18, 0x36, 0x3E, 0x11, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xCB, 0xF1, 0x64, 0xA2, +0x01, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, +0x80, 0x18, 0x28, 0x09, 0x80, 0x18, 0x2B, 0x07, +0x01, 0x72, 0x31, 0x61, 0x30, 0xF0, 0x20, 0x68, +0xA6, 0xF6, 0x00, 0x48, 0x24, 0xF3, 0x53, 0xA0, +0x01, 0x4A, 0x24, 0xF3, 0x53, 0xC0, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF4, 0x48, 0x9A, 0x40, 0xEA, +0x01, 0x72, 0x15, 0x60, 0x24, 0xF3, 0x84, 0xA0, +0x01, 0x6B, 0x02, 0x72, 0x8D, 0xEB, 0x24, 0xF3, +0x64, 0xC0, 0x42, 0x6B, 0x03, 0x60, 0x04, 0x72, +0x06, 0x61, 0x43, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x58, 0x9A, 0x60, 0xC2, 0x01, 0x6C, +0x80, 0x18, 0x28, 0x09, 0x21, 0x10, 0x11, 0x95, +0x91, 0x67, 0x80, 0x18, 0x64, 0x3E, 0x10, 0x94, +0xFF, 0xF7, 0x1F, 0x6A, 0x0C, 0xD1, 0x01, 0x4C, +0x4C, 0xEC, 0x10, 0xD4, 0x10, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xE0, 0xF0, +0x97, 0xA2, 0x20, 0x6B, 0x8C, 0xEB, 0x0C, 0x2B, +0xE0, 0xF0, 0x95, 0xA2, 0xFE, 0x4B, 0x8C, 0xEB, +0xE0, 0xF0, 0x75, 0xC2, 0x05, 0x10, 0x10, 0x92, +0x14, 0x93, 0x63, 0xEA, 0xBF, 0xF4, 0x04, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0x7C, 0x9B, +0x10, 0xF0, 0x30, 0x6A, 0xE8, 0xF2, 0x02, 0x4A, +0x40, 0xDB, 0x19, 0x97, 0x18, 0x91, 0x17, 0x90, +0x0D, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xA6, 0xF6, 0x00, 0x48, 0x44, 0xF3, 0x56, 0xA0, +0xFF, 0x69, 0x64, 0x67, 0x2C, 0xED, 0x2C, 0xEB, +0x04, 0xD5, 0x05, 0xD2, 0x62, 0x2A, 0xA0, 0xF0, +0x56, 0xA0, 0x01, 0x6C, 0x8C, 0xEA, 0x2C, 0xEA, +0x5C, 0x22, 0x05, 0xF3, 0x54, 0xA0, 0x59, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x44, 0x9A, +0x85, 0x67, 0xA3, 0x67, 0x40, 0xEA, 0x0A, 0x22, +0x5D, 0x67, 0x67, 0x42, 0x0D, 0x4B, 0x40, 0xA3, +0x01, 0x6B, 0x05, 0xF3, 0x76, 0xC0, 0x05, 0xF3, +0x54, 0xC0, 0x47, 0x10, 0xA0, 0xF0, 0x78, 0xA0, +0x05, 0xF3, 0x54, 0xA0, 0x63, 0xEA, 0x32, 0x61, +0xA0, 0xF0, 0x76, 0xA0, 0x08, 0x6A, 0x6C, 0xEA, +0x2C, 0xEA, 0x1B, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x58, 0x9A, 0x4B, 0x6B, 0x6B, 0xEB, +0x60, 0xC2, 0xE0, 0xF0, 0x88, 0xA0, 0x00, 0x6D, +0x00, 0x18, 0x09, 0xC4, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x58, 0x9A, 0xE0, 0xF0, 0x88, 0xA0, +0x40, 0xEA, 0xC0, 0xF0, 0x64, 0xA0, 0x80, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xC0, 0xF0, 0x44, 0xC0, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, +0x58, 0x9A, 0x10, 0x6B, 0x01, 0x6C, 0x60, 0xC2, +0x80, 0x18, 0x28, 0x09, 0xA0, 0xF0, 0x76, 0xA0, +0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xA0, 0xF0, +0x56, 0xC0, 0x0F, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF4, 0x50, 0x9A, 0xA0, 0xF0, 0x8A, 0xA0, +0x04, 0x97, 0x02, 0x6D, 0x08, 0x6E, 0x40, 0xEA, +0x05, 0xF3, 0x54, 0xA0, 0x01, 0x4A, 0x05, 0xF3, +0x54, 0xC0, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xA6, 0xF6, 0x00, 0x48, 0x44, 0xF3, 0x76, 0xA0, +0xFF, 0x6A, 0x24, 0x67, 0x4C, 0xE9, 0x7A, 0x2B, +0xA0, 0xF0, 0x76, 0xA0, 0x01, 0x6C, 0x6C, 0xEC, +0x4C, 0xEC, 0x74, 0x24, 0x05, 0xF3, 0x93, 0xA0, +0x01, 0x4C, 0x05, 0xF3, 0x93, 0xC0, 0x05, 0xF3, +0x96, 0xA0, 0x01, 0x74, 0x36, 0x61, 0x04, 0x6C, +0x6C, 0xEC, 0x4C, 0xEC, 0x32, 0x24, 0x05, 0xF3, +0x95, 0xA0, 0x2F, 0x2C, 0x05, 0xF3, 0xB3, 0xA0, +0xA0, 0xF0, 0x99, 0xA0, 0x83, 0xED, 0x29, 0x61, +0x08, 0x6C, 0x6C, 0xEC, 0x4C, 0xEC, 0x14, 0x24, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x58, 0x9A, +0x4B, 0x6B, 0x6B, 0xEB, 0x60, 0xC2, 0xE0, 0xF0, +0x88, 0xA0, 0x00, 0x6D, 0x00, 0x18, 0x09, 0xC4, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x58, 0x9A, +0xE0, 0xF0, 0x88, 0xA0, 0x40, 0xEA, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x58, 0x9A, +0x10, 0x6B, 0x01, 0x6C, 0x60, 0xC2, 0x80, 0x18, +0x28, 0x09, 0xA0, 0xF0, 0x76, 0xA0, 0x02, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xA0, 0xF0, 0x56, 0xC0, +0x35, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, +0x00, 0x48, 0xA0, 0xF0, 0x77, 0xA0, 0x05, 0xF3, +0x53, 0xA0, 0x63, 0xEA, 0x2B, 0x61, 0x91, 0x67, +0x00, 0x18, 0xD9, 0xD9, 0x01, 0x6B, 0x4C, 0xEB, +0x18, 0x2B, 0x05, 0xF3, 0x55, 0xA0, 0x15, 0x2A, +0x05, 0xF3, 0x54, 0xA0, 0xA0, 0xF0, 0x8A, 0xA0, +0x02, 0x6D, 0x01, 0x4A, 0x05, 0xF3, 0x54, 0xC0, +0x05, 0xF3, 0x52, 0xA0, 0x08, 0x6E, 0xF1, 0x67, +0x01, 0x4A, 0x05, 0xF3, 0x52, 0xC0, 0x30, 0xF0, +0x20, 0x6A, 0x40, 0xF4, 0x50, 0x9A, 0x40, 0xEA, +0x04, 0x10, 0x91, 0x67, 0x01, 0x6D, 0x00, 0x18, +0xD3, 0xD9, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x00, 0x6B, 0x05, 0xF3, 0x73, 0xC2, +0x05, 0xF3, 0x75, 0xC2, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, +0x20, 0x6C, 0xA6, 0xF7, 0x18, 0x4C, 0x07, 0x6E, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xE0, 0xF0, 0x95, 0xA2, 0x11, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xE0, 0xF0, 0x75, 0xC2, 0x00, 0x6B, +0x44, 0xF6, 0x70, 0xC2, 0x44, 0xF6, 0x71, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0xF5, 0x63, 0x15, 0x62, +0x14, 0xD1, 0x13, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xED, 0xE5, 0x67, 0x0F, 0xD5, 0xDC, 0x4F, +0x00, 0x6D, 0x16, 0xD4, 0xC5, 0x67, 0x24, 0x4C, +0x4C, 0xEF, 0x80, 0x18, 0xB6, 0x3E, 0x02, 0x67, +0x81, 0x42, 0x00, 0x6A, 0x0E, 0xD2, 0x19, 0x24, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, +0x02, 0x48, 0x00, 0x69, 0x40, 0xEA, 0x0E, 0xD2, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x40, 0x9A, 0x90, 0x67, 0x01, 0x48, 0x40, 0xEA, +0x9D, 0x67, 0x2D, 0xE4, 0x50, 0xC3, 0x01, 0x49, +0x0E, 0x93, 0xFF, 0x6A, 0x2C, 0xEA, 0x63, 0xEA, +0xF0, 0x61, 0x0F, 0x91, 0x16, 0x94, 0xFF, 0xF7, +0x1F, 0x6A, 0xDC, 0x49, 0x4C, 0xE9, 0x24, 0x4C, +0x00, 0x6D, 0x03, 0x6E, 0xF1, 0x67, 0x0D, 0xD4, +0x80, 0x18, 0xB6, 0x3E, 0x30, 0xF0, 0x20, 0x6B, +0x16, 0x94, 0xC0, 0xF3, 0x40, 0x9B, 0x00, 0x68, +0x22, 0x4C, 0x40, 0xEA, 0x10, 0x6B, 0x4C, 0xEB, +0x60, 0x23, 0x0D, 0x94, 0xB0, 0x67, 0xF1, 0x67, +0x30, 0x6E, 0x80, 0x18, 0xB6, 0x3E, 0x22, 0x67, +0x01, 0x4A, 0x01, 0x68, 0x24, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0xC0, 0xF3, 0x40, 0x9C, 0x87, 0x41, +0x01, 0x4C, 0x40, 0xEA, 0x0D, 0x49, 0x0D, 0xD1, +0x10, 0xD2, 0x00, 0x69, 0x15, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, 0x0D, 0x94, +0x40, 0xEA, 0x02, 0x72, 0x02, 0x61, 0x20, 0x48, +0x03, 0x10, 0x04, 0x72, 0x03, 0x61, 0x40, 0x48, +0xFF, 0x6A, 0x4C, 0xE8, 0xFF, 0x6A, 0x01, 0x49, +0x4C, 0xE9, 0x0D, 0x92, 0x04, 0x4A, 0x0D, 0xD2, +0x10, 0x93, 0x63, 0xE9, 0xE8, 0x61, 0x0F, 0x92, +0x16, 0x94, 0xFF, 0xF7, 0x1F, 0x6F, 0xDC, 0x4A, +0x24, 0x4C, 0x01, 0x6D, 0xDD, 0x6E, 0x4C, 0xEF, +0x80, 0x18, 0xB6, 0x3E, 0x22, 0x67, 0x01, 0x4A, +0x24, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x40, 0x9A, 0x87, 0x41, 0x05, 0x4C, 0x40, 0xEA, +0x11, 0x49, 0x0C, 0xD1, 0x0D, 0xD2, 0x00, 0x69, +0x15, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x40, 0x9A, 0x0C, 0x94, 0x40, 0xEA, 0x02, 0x72, +0x02, 0x61, 0x02, 0x48, 0x03, 0x10, 0x04, 0x72, +0x03, 0x61, 0x04, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, +0x0C, 0x94, 0x01, 0x49, 0xFF, 0x6A, 0x04, 0x4C, +0x4C, 0xE9, 0x0C, 0xD4, 0x0D, 0x92, 0x43, 0xE9, +0xE8, 0x61, 0x00, 0x6B, 0x7E, 0x10, 0x0C, 0x94, +0x49, 0xE4, 0x64, 0xF6, 0x60, 0xA2, 0x0E, 0x94, +0x8E, 0xEB, 0x71, 0x2B, 0x64, 0xF6, 0x50, 0xA2, +0x0F, 0x2A, 0x0E, 0x28, 0x0C, 0x93, 0x04, 0x02, +0x74, 0x34, 0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, +0x00, 0x4B, 0x84, 0xF6, 0x18, 0x4C, 0x91, 0xE3, +0x0E, 0x93, 0x75, 0xE2, 0x01, 0x6B, 0x1B, 0x10, +0x0C, 0x94, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x4D, 0xE4, 0x64, 0xF6, 0x70, 0xA3, +0x0C, 0xEB, 0xE8, 0x2B, 0x00, 0xF1, 0x78, 0xA2, +0x04, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, +0xE1, 0x2A, 0x4D, 0x10, 0xE0, 0xA2, 0xC0, 0xA4, +0x01, 0x4A, 0x01, 0x4C, 0xEE, 0xEE, 0x01, 0x5E, +0xD8, 0x67, 0xCB, 0xEE, 0xCC, 0xEB, 0xAA, 0xEA, +0xF5, 0x61, 0x01, 0x73, 0x40, 0x61, 0x30, 0xF0, +0x20, 0x69, 0xA6, 0xF6, 0x00, 0x49, 0xE0, 0xF0, +0xC7, 0xA1, 0x0C, 0x6A, 0x43, 0xF4, 0x48, 0xC1, +0x0C, 0x6C, 0x00, 0x6D, 0x00, 0x18, 0x94, 0xCC, +0xC3, 0xF3, 0x6C, 0xA1, 0x21, 0x6A, 0xC3, 0xF3, +0x8E, 0xA1, 0x4B, 0xEA, 0x6C, 0xEA, 0x04, 0x6B, +0x8C, 0xEB, 0xC3, 0xF3, 0x4C, 0xC1, 0x04, 0x2B, +0xFE, 0x4B, 0x4C, 0xEB, 0xC3, 0xF3, 0x6C, 0xC1, +0x30, 0xF0, 0x20, 0x69, 0xA6, 0xF6, 0x00, 0x49, +0x67, 0xF7, 0x78, 0xA1, 0x02, 0x6A, 0xE0, 0xF0, +0x87, 0xA1, 0x4B, 0xEA, 0x6C, 0xEA, 0x67, 0xF7, +0x58, 0xC1, 0x00, 0x18, 0x97, 0xDC, 0xE0, 0xF0, +0x87, 0xA1, 0x00, 0x18, 0x86, 0xDC, 0xE0, 0xF0, +0x87, 0xA1, 0x00, 0x18, 0x9E, 0xDC, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x58, 0x9A, 0x55, 0x6B, +0x60, 0xC2, 0x24, 0xF3, 0x64, 0xA1, 0x01, 0x6A, +0x6D, 0xEA, 0x24, 0xF3, 0x44, 0xC1, 0x0C, 0x92, +0x01, 0x4A, 0x0C, 0xD2, 0x0C, 0x93, 0xFF, 0x6A, +0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x0C, 0xD3, +0xA6, 0xF6, 0x00, 0x4A, 0x44, 0xF6, 0x70, 0xA2, +0x0C, 0x94, 0x63, 0xEC, 0x7F, 0xF7, 0x17, 0x61, +0x15, 0x97, 0x14, 0x91, 0x13, 0x90, 0x0B, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x96, 0xD3, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0x00, 0xF1, 0x99, 0xA3, +0xFF, 0x6D, 0x91, 0xE2, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF2, 0x4C, 0x9A, 0x9C, 0x34, 0xC4, 0x44, +0x49, 0xE4, 0x40, 0xA2, 0x44, 0xF6, 0x50, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0x50, 0x9A, +0x49, 0xE4, 0x40, 0xA2, 0x44, 0xF6, 0x51, 0xC3, +0x44, 0xF6, 0x50, 0xA3, 0x0A, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF3, 0x68, 0x9A, 0x01, 0x6F, +0x40, 0xA3, 0xAC, 0xEA, 0xED, 0xEA, 0xAC, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, +0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0x49, 0xE6, +0x40, 0x9A, 0xEB, 0xF4, 0x54, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF3, 0x6C, 0x9B, 0x6E, 0xEA, +0x0B, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF3, +0x68, 0x9A, 0xFF, 0x6D, 0x02, 0x6E, 0x40, 0xA3, +0xAC, 0xEA, 0xCD, 0xEA, 0xAC, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, 0x70, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x0B, 0xF5, 0x00, 0x4A, +0xA7, 0x42, 0x6D, 0xE4, 0x09, 0x4D, 0xC0, 0xA3, +0x01, 0x4B, 0xC0, 0xC2, 0x01, 0x4A, 0xAA, 0xEA, +0xFA, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF3, +0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x0B, 0xF5, +0x10, 0x4A, 0xA7, 0x42, 0x6D, 0xE4, 0x09, 0x4D, +0xC0, 0xA3, 0x01, 0x4B, 0xC0, 0xC2, 0x01, 0x4A, +0xAA, 0xEA, 0xFA, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF2, 0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF5, 0x10, 0x4A, 0xA7, 0x42, 0x6D, 0xE4, +0x01, 0x4D, 0xC0, 0xA3, 0x01, 0x4B, 0xC0, 0xC2, +0x01, 0x4A, 0xAA, 0xEA, 0xFA, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF2, 0x54, 0x9A, 0x51, 0xE4, +0x00, 0x6A, 0x0A, 0x10, 0xE0, 0xA3, 0x01, 0x4B, +0xCA, 0xEB, 0xE0, 0xC5, 0x01, 0x4D, 0xFA, 0x61, +0x01, 0x4A, 0x10, 0x72, 0x20, 0x4C, 0x0C, 0x60, +0x54, 0x35, 0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, +0x00, 0x4B, 0x84, 0xF6, 0x18, 0x4D, 0xC7, 0x44, +0xB5, 0xE3, 0x19, 0x4E, 0x64, 0x67, 0xEA, 0x17, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, +0x4C, 0xEC, 0x0E, 0x24, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF2, 0x98, 0x9B, 0x80, 0x6D, 0xAB, 0xED, +0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, +0x60, 0xC4, 0x80, 0x18, 0xB7, 0x13, 0x1B, 0x10, +0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, +0xE0, 0xF0, 0xC7, 0xA0, 0x0C, 0x6A, 0x0C, 0x6C, +0x00, 0x6D, 0x43, 0xF4, 0x48, 0xC0, 0x00, 0x18, +0x94, 0xCC, 0xC3, 0xF3, 0x6C, 0xA0, 0x21, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x67, 0xF7, 0x78, 0xA0, +0xC3, 0xF3, 0x4C, 0xC0, 0x02, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x67, 0xF7, 0x58, 0xC0, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xE0, 0xF0, 0x95, 0xA2, +0x41, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xE0, 0xF0, +0x75, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x48, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x8B, 0xF4, +0x14, 0x4C, 0x00, 0x6D, 0x5C, 0x6E, 0x40, 0xEA, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF7, 0x75, 0xA2, +0x40, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x80, 0x18, +0x1E, 0x14, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x27, 0x44, 0x09, 0x49, +0xAB, 0xF4, 0x06, 0x48, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x40, 0x9A, 0x91, 0x67, 0x40, 0xEA, +0x60, 0xA0, 0x6E, 0xEA, 0x02, 0x22, 0x00, 0x6A, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x01, 0x48, +0xAB, 0xF4, 0x0A, 0x4A, 0x4A, 0xE8, 0x01, 0x49, +0xED, 0x61, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x40, 0x98, +0x24, 0x67, 0x07, 0x4C, 0x10, 0x4C, 0x40, 0xEA, +0x04, 0xD2, 0xC0, 0xF3, 0x40, 0x98, 0x87, 0x41, +0x0F, 0x4C, 0x40, 0xEA, 0x04, 0x94, 0x09, 0x97, +0x08, 0x91, 0x80, 0x33, 0x4D, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0xAB, 0xF4, 0x4A, 0xAA, 0x07, 0x90, +0x4E, 0xEB, 0x01, 0x5B, 0x58, 0x67, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x8B, 0xF4, 0x5A, 0xAA, 0x08, 0xD4, 0x00, 0x68, +0x11, 0x2A, 0x28, 0x10, 0x08, 0x94, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, 0x1C, 0x4C, +0x11, 0xE4, 0x25, 0xE0, 0x40, 0xEA, 0x04, 0xF6, +0x6E, 0xA1, 0x6E, 0xEA, 0x1B, 0x2A, 0x01, 0x48, +0xFF, 0x6A, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x69, +0xA6, 0xF6, 0x00, 0x49, 0xE4, 0xF5, 0x5A, 0xA9, +0x43, 0xE8, 0xE8, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF3, 0x70, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, +0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xC3, 0x00, 0x6A, 0x04, 0xF6, 0x4C, 0xC9, +0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x04, 0xF6, 0x64, 0xAA, 0x01, 0x4B, 0x04, 0xF6, +0x64, 0xCA, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF6, +0xA4, 0xAA, 0xC3, 0xF3, 0x70, 0x9B, 0xA2, 0x35, +0x6D, 0xE4, 0xA0, 0xC3, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF3, 0x74, 0x9B, 0x04, 0xF6, 0x44, 0xA2, +0x71, 0xE4, 0x40, 0xC4, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x58, 0x9A, 0x32, 0x6B, 0x01, 0x6C, +0x60, 0xC2, 0x80, 0x18, 0x28, 0x09, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x00, 0x68, 0x08, 0xD4, +0x12, 0x10, 0x08, 0x94, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x40, 0x9A, 0x1C, 0x4C, 0x11, 0xE4, +0x25, 0xE0, 0x40, 0xEA, 0x24, 0xF6, 0x6E, 0xA1, +0x6E, 0xEA, 0x02, 0x22, 0x00, 0x6A, 0x21, 0x10, +0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x69, 0xA6, 0xF6, 0x00, 0x49, 0xE4, 0xF5, +0x5C, 0xA9, 0x43, 0xE8, 0xE6, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF3, 0x70, 0x9A, 0xFF, 0x6C, +0x80, 0x6D, 0x40, 0xA3, 0xAB, 0xED, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x58, 0x9A, 0x30, 0x6B, +0x01, 0x6C, 0x60, 0xC2, 0x80, 0x18, 0x28, 0x09, +0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0xA6, 0xF6, 0x00, 0x49, 0x00, 0xF1, 0x0D, 0xA1, +0x00, 0x18, 0x96, 0xD3, 0xE0, 0xF0, 0x77, 0xA1, +0x01, 0xE2, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, +0x4C, 0x9A, 0x1C, 0x30, 0x49, 0xE0, 0x40, 0xAA, +0xE4, 0xF5, 0x54, 0xC9, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF3, 0x58, 0x9A, 0x49, 0xE0, 0x40, 0xAA, +0xE4, 0xF5, 0x56, 0xC9, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF3, 0x50, 0x9A, 0x49, 0xE0, 0x40, 0xAA, +0xE4, 0xF5, 0x58, 0xC9, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF3, 0x5C, 0x9A, 0x49, 0xE0, 0x40, 0xAA, +0xE4, 0xF5, 0x5A, 0xC9, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF3, 0x54, 0x9A, 0x49, 0xE0, 0x40, 0xAA, +0xE4, 0xF5, 0x5C, 0xC9, 0x80, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x08, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, 0x4C, 0x9A, +0x41, 0xE0, 0x40, 0x98, 0x04, 0xF6, 0x40, 0xD9, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0xA6, 0xF6, 0x00, 0x49, 0x00, 0xF1, 0x0E, 0xA1, +0x00, 0x18, 0x96, 0xD3, 0x01, 0xE2, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF2, 0x54, 0x9A, 0x1C, 0x30, +0x04, 0xD0, 0x49, 0xE0, 0x80, 0xA2, 0x30, 0xF0, +0x20, 0x6A, 0x04, 0x93, 0xA3, 0xF2, 0x50, 0x9A, +0xFF, 0x68, 0x0C, 0xEC, 0x49, 0xE3, 0xA0, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x5C, 0x9A, +0x0C, 0xED, 0x49, 0xE3, 0xC0, 0xA2, 0x0C, 0xEE, +0x80, 0x18, 0xC3, 0x06, 0x04, 0x93, 0x38, 0x4A, +0x30, 0xF0, 0x20, 0x6C, 0x69, 0xE2, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF3, 0x70, 0x9B, 0xE3, 0xF3, +0x94, 0x9C, 0x6D, 0xE2, 0x60, 0xA3, 0x91, 0xE2, +0x80, 0xA4, 0x0C, 0xEB, 0x60, 0x33, 0x8C, 0xE8, +0x61, 0xE0, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, +0x6C, 0x9B, 0x04, 0xF6, 0x04, 0xC9, 0x00, 0xF1, +0x0F, 0xA1, 0x6D, 0xE2, 0x60, 0xA3, 0x04, 0xF6, +0x66, 0xC1, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, +0x60, 0x9B, 0x6D, 0xE2, 0x60, 0xA3, 0x04, 0xF6, +0x67, 0xC1, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, +0x64, 0x9B, 0x6D, 0xE2, 0x60, 0xA3, 0x04, 0xF6, +0x68, 0xC1, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, +0x68, 0x9B, 0x6D, 0xE2, 0x60, 0xA3, 0x04, 0xF6, +0x69, 0xC1, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, +0x6C, 0x9B, 0x69, 0xE2, 0x40, 0xAA, 0x04, 0xF6, +0x4A, 0xC9, 0x00, 0x18, 0x96, 0xD3, 0xE4, 0xF5, +0x9A, 0xA9, 0x01, 0xE2, 0x1C, 0x30, 0x00, 0x6B, +0x12, 0x2C, 0x13, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF2, 0x4C, 0x9A, 0x49, 0xE0, 0x69, 0xE2, +0xA0, 0xA2, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x49, 0xE3, 0x04, 0xF6, 0xAE, 0xC2, +0x01, 0x4B, 0xFF, 0x6A, 0x4C, 0xEB, 0x83, 0xEB, +0xED, 0x61, 0x30, 0xF0, 0x20, 0x69, 0xA6, 0xF6, +0x00, 0x49, 0x00, 0xF1, 0x10, 0xA1, 0x00, 0x18, +0x96, 0xD3, 0xE4, 0xF5, 0x9C, 0xA9, 0x01, 0xE2, +0x1C, 0x30, 0x00, 0x6B, 0x11, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF2, 0x4C, 0x9A, 0x49, 0xE0, +0x69, 0xE2, 0xA0, 0xA2, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x49, 0xE3, 0x24, 0xF6, +0xAE, 0xC2, 0x01, 0x4B, 0xFF, 0x6A, 0x4C, 0xEB, +0x83, 0xEB, 0xED, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x8B, 0xF4, 0x7C, 0xAA, 0x00, 0x6A, 0x03, 0x10, +0x01, 0x4A, 0xFF, 0x6C, 0x8C, 0xEA, 0x63, 0xEA, +0xFB, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD0, 0xFF, 0x68, 0x0C, 0xEC, 0x23, 0x24, +0x80, 0x18, 0xA7, 0x14, 0x80, 0x18, 0xCD, 0x14, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, +0xE0, 0xF0, 0x97, 0xA3, 0x80, 0x6A, 0x4B, 0xEA, +0x8C, 0xEA, 0x0C, 0xEA, 0x1A, 0x22, 0x04, 0xF6, +0x60, 0x9B, 0xE0, 0xF3, 0x08, 0x6E, 0x01, 0x6A, +0x78, 0xEE, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, 0x30, 0x6C, +0x0A, 0xF2, 0x09, 0x4C, 0x00, 0x6D, 0x01, 0x6F, +0x12, 0xEE, 0x40, 0xEA, 0x06, 0x10, 0x10, 0xF0, +0x30, 0x6C, 0x0A, 0xF2, 0x09, 0x4C, 0x00, 0x18, +0x75, 0xDB, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF3, 0x70, 0x9A, 0xFF, 0x6C, 0x30, 0xF0, +0x20, 0x69, 0x40, 0xA3, 0xA6, 0xF6, 0x00, 0x49, +0x8C, 0xEA, 0x20, 0x6C, 0x8D, 0xEA, 0xFF, 0x6C, +0x8C, 0xEA, 0x40, 0xC3, 0x00, 0xF1, 0x0E, 0xA1, +0x00, 0x18, 0x96, 0xD3, 0x01, 0xE2, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF2, 0x54, 0x9A, 0x1C, 0x30, +0x49, 0xE0, 0x80, 0xA2, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF2, 0x50, 0x9A, 0x49, 0xE0, 0xA0, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x5C, 0x9A, +0x49, 0xE0, 0xC0, 0xA2, 0xFF, 0x6A, 0x4C, 0xEC, +0x4C, 0xEE, 0x4C, 0xED, 0x80, 0x18, 0xC3, 0x06, +0x87, 0x40, 0x00, 0x6D, 0x29, 0x4C, 0x05, 0xD2, +0x80, 0x18, 0x79, 0x0D, 0x05, 0x92, 0x38, 0x4A, +0x09, 0xE2, 0x82, 0x67, 0x30, 0xF0, 0x20, 0x68, +0x04, 0xD2, 0x80, 0x18, 0x74, 0x14, 0x20, 0xF4, +0x54, 0x98, 0x04, 0x95, 0x00, 0xF1, 0xCE, 0xA1, +0x00, 0x6C, 0x40, 0xEA, 0x20, 0xF4, 0x54, 0x98, +0x04, 0x95, 0x00, 0xF1, 0xCE, 0xA1, 0x11, 0x6C, +0x40, 0xEA, 0x00, 0x18, 0xA0, 0xD3, 0x28, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, 0x50, 0x9A, +0xFF, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x40, 0xA2, +0x00, 0x6C, 0xFF, 0x6D, 0x4C, 0xEB, 0xA0, 0xF2, +0x50, 0x98, 0x04, 0xD3, 0x26, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, +0x40, 0xEA, 0x01, 0x72, 0x1B, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF1, 0x8E, 0xA1, 0xA0, 0xF2, +0x54, 0x9A, 0x01, 0x6D, 0x08, 0x6E, 0x00, 0x6F, +0x40, 0xEA, 0xA0, 0xF2, 0x50, 0x98, 0x04, 0x95, +0x00, 0x6C, 0x26, 0x6E, 0x40, 0xEA, 0x0A, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x54, 0x9A, +0x00, 0xF1, 0x8E, 0xA1, 0x01, 0x6D, 0x08, 0x6E, +0x00, 0x6F, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xE0, 0xF0, 0x7C, 0xA2, +0x02, 0x73, 0x07, 0x61, 0x00, 0xF1, 0x8E, 0xA2, +0x05, 0x92, 0xFF, 0x6D, 0x4C, 0xED, 0x80, 0x18, +0x1D, 0x0A, 0x30, 0xF0, 0x20, 0x6A, 0x66, 0xF7, +0x87, 0xA2, 0xFF, 0x68, 0x96, 0x34, 0x00, 0x18, +0xA3, 0xCD, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, +0x54, 0x9A, 0x40, 0xEA, 0x0A, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF2, 0x60, 0x9A, 0x20, 0x6C, +0x40, 0xA3, 0x0C, 0xEA, 0x8D, 0xEA, 0x0C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x04, 0xF6, 0x6C, 0xAA, 0x01, 0x4B, +0x04, 0xF6, 0x6C, 0xCA, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF6, 0xAC, 0x9B, 0x62, 0xF6, 0x0C, 0x4B, +0xFF, 0x6A, 0x05, 0xD5, 0xA1, 0x9B, 0x64, 0xAB, +0x4C, 0xEC, 0x06, 0xD5, 0xBD, 0x67, 0x6E, 0xCD, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, +0xE0, 0xF0, 0xD5, 0xA3, 0x40, 0x6D, 0xCC, 0xED, +0x4C, 0xED, 0x72, 0x25, 0xC0, 0xF0, 0xC4, 0xA3, +0x7F, 0x6D, 0xCC, 0xED, 0x4C, 0xED, 0x42, 0x25, +0xC0, 0xF0, 0xA5, 0xA3, 0x0F, 0x6B, 0xAC, 0xEB, +0x4C, 0xEB, 0x3C, 0x23, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF4, 0x75, 0xA3, 0x37, 0x2B, 0xBD, 0x67, +0x84, 0x33, 0x6D, 0xE5, 0xAA, 0xAB, 0x1F, 0xF7, +0x00, 0x6E, 0x62, 0x45, 0xCC, 0xEB, 0x02, 0xF0, +0x00, 0x73, 0x01, 0x60, 0x0C, 0x2B, 0x5D, 0x67, +0x84, 0x34, 0x91, 0xE2, 0x30, 0xF0, 0x20, 0x6A, +0x6A, 0xAC, 0xC3, 0xF1, 0x50, 0x9A, 0x49, 0xE3, +0x60, 0xA2, 0xFF, 0x6A, 0x06, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF4, 0x70, 0x9B, 0x75, 0xE5, +0x60, 0xA5, 0x6C, 0xEA, 0x7D, 0x67, 0x50, 0xC3, +0x50, 0xA3, 0x14, 0x22, 0x70, 0xA3, 0xFF, 0x6A, +0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0xE4, 0xF5, 0x94, 0xAA, 0x7A, 0xEC, +0x01, 0x2B, 0xE5, 0xE8, 0x12, 0xEB, 0xE4, 0xF5, +0x74, 0xCA, 0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF4, 0x75, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xE4, 0xF5, 0x94, 0xAA, +0x64, 0x6B, 0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, +0x44, 0xF6, 0x6E, 0xAA, 0x12, 0xEC, 0x63, 0xEC, +0x01, 0x4B, 0x18, 0x60, 0x04, 0xF6, 0x6C, 0xAA, +0xE4, 0xF5, 0x58, 0xAA, 0x4E, 0xEB, 0x0B, 0x2B, +0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, +0x58, 0x9A, 0x31, 0x6B, 0x01, 0x6C, 0x60, 0xC2, +0x80, 0x18, 0x28, 0x09, 0x09, 0x10, 0x80, 0x18, +0x41, 0x15, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x00, 0x6B, 0x44, 0xF6, 0x6E, 0xCA, +0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x00, 0x6B, 0x42, 0xF5, 0x63, 0xC2, 0x42, 0xF5, +0x64, 0xC2, 0x42, 0xF5, 0x62, 0xC2, 0x00, 0x6B, +0x42, 0xF5, 0x60, 0xCA, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0xD1, 0x06, 0xD0, 0xFF, 0x6A, +0xCC, 0xEA, 0x08, 0xD4, 0x03, 0xD2, 0xE1, 0x9C, +0x00, 0x68, 0x00, 0x69, 0xA3, 0xEF, 0x40, 0x9C, +0x00, 0xD0, 0x01, 0xD1, 0x0A, 0x61, 0xBB, 0xEF, +0x01, 0x2D, 0xE5, 0xE8, 0x00, 0x69, 0x00, 0xD1, +0x12, 0xEB, 0x01, 0xD3, 0xB8, 0xEB, 0x12, 0xEB, +0x7F, 0xE7, 0xC5, 0x67, 0x00, 0x6B, 0x01, 0x6C, +0x00, 0x6D, 0x0C, 0x10, 0xC4, 0x30, 0xC3, 0xE8, +0x64, 0x33, 0xD0, 0x67, 0x18, 0x67, 0x6D, 0xE0, +0x84, 0x30, 0x83, 0xE8, 0x38, 0x67, 0xA4, 0x34, +0x95, 0xE1, 0x90, 0x67, 0x01, 0x53, 0x02, 0x60, +0x07, 0x2B, 0x06, 0x26, 0xE3, 0xEB, 0xEE, 0x61, +0x6A, 0xEF, 0x02, 0x61, 0x43, 0xEE, 0xEA, 0x61, +0x63, 0xEF, 0x18, 0x61, 0xEA, 0xEB, 0x02, 0x61, +0xC3, 0xEA, 0x14, 0x61, 0x00, 0x91, 0xC3, 0xE2, +0x03, 0xEA, 0x7F, 0xE7, 0x50, 0x67, 0x18, 0x67, +0x1F, 0xE7, 0x81, 0xE1, 0x23, 0xE8, 0x01, 0x91, +0x00, 0xD0, 0x18, 0x67, 0xA5, 0xE1, 0x21, 0xE0, +0x02, 0xD0, 0x04, 0xD1, 0x00, 0x90, 0x02, 0x91, +0x00, 0xD0, 0x01, 0xD1, 0x86, 0x30, 0xC0, 0xF7, +0xA0, 0x31, 0x0D, 0xE9, 0x19, 0x65, 0xA6, 0x31, +0x98, 0x67, 0x11, 0x67, 0x8D, 0xE8, 0x02, 0xD1, +0xB1, 0x67, 0x06, 0x20, 0xC0, 0xF7, 0x60, 0x30, +0xC6, 0x36, 0x0D, 0xEE, 0x66, 0x33, 0xD4, 0x17, +0x03, 0x93, 0x01, 0x73, 0x05, 0x61, 0x00, 0x94, +0x01, 0x95, 0x08, 0x90, 0x80, 0xD8, 0xA1, 0xD8, +0x07, 0x91, 0x06, 0x90, 0x04, 0x63, 0x20, 0xE8, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x69, 0x40, 0xF4, 0x4C, 0x99, +0xFF, 0x68, 0x8C, 0xE8, 0x0D, 0xD5, 0x90, 0x67, +0x01, 0x6D, 0x40, 0xEA, 0x06, 0xD2, 0x40, 0xF4, +0x4C, 0x99, 0x90, 0x67, 0x00, 0x6D, 0x40, 0xEA, +0x04, 0xD2, 0x0D, 0x95, 0x06, 0x92, 0x04, 0x04, +0x00, 0x6E, 0x05, 0xD2, 0x80, 0x18, 0xEE, 0x15, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF4, 0x54, 0x9A, 0xFF, 0x6B, 0x80, 0xA2, +0x00, 0xF6, 0x80, 0x34, 0x00, 0xF6, 0x83, 0x34, +0x00, 0x54, 0x25, 0x60, 0xA0, 0xA2, 0x7F, 0x6C, +0xAC, 0xEC, 0x40, 0x6D, 0xAD, 0xEC, 0x6C, 0xEC, +0x80, 0xC2, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF4, +0x98, 0x9C, 0x3F, 0x6D, 0x80, 0xA4, 0x30, 0xF0, +0x20, 0x6C, 0x03, 0xF4, 0x9C, 0x9C, 0x80, 0xA4, +0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF1, 0x88, 0x9C, +0x80, 0xA4, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF1, +0x8C, 0x9C, 0x80, 0xA4, 0x80, 0xA2, 0x6C, 0xEC, +0xAD, 0xEC, 0x6C, 0xEC, 0x80, 0xC2, 0x80, 0xA2, +0xBF, 0x6B, 0x8C, 0xEB, 0x60, 0xC2, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x60, 0x9B, +0xFF, 0x6A, 0x4C, 0xEC, 0xC0, 0xA3, 0x4C, 0xED, +0x15, 0x26, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, +0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF4, +0x84, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xA3, 0xF3, 0x7C, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x7C, 0xDA, 0x20, 0xE8, 0x80, 0xC3, 0x0B, 0x25, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x88, 0x9B, +0x80, 0x6D, 0xAB, 0xED, 0x60, 0xA4, 0x4C, 0xEB, +0xAE, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, 0x68, 0x9B, +0x30, 0xF0, 0x20, 0x69, 0xC6, 0xF4, 0x58, 0x99, +0xE0, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, +0x6C, 0x9B, 0x50, 0x32, 0x6D, 0xE2, 0xE0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x70, 0x9B, +0x6D, 0xE2, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF4, 0x74, 0x9B, 0x6D, 0xE2, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x78, 0x9B, +0x69, 0xE2, 0xC0, 0xDA, 0xC6, 0xF4, 0x18, 0x99, +0x01, 0x48, 0x00, 0xF1, 0x00, 0x70, 0xC6, 0xF4, +0x18, 0xD9, 0x05, 0x60, 0x00, 0xF2, 0x00, 0x6A, +0x4E, 0xE8, 0x06, 0x20, 0x0B, 0x10, 0x10, 0x6C, +0x01, 0x6D, 0x80, 0x18, 0x4E, 0x16, 0x06, 0x10, +0x11, 0x6C, 0x01, 0x6D, 0x80, 0x18, 0x4E, 0x16, +0xC6, 0xF4, 0x18, 0xD9, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x00, 0x6A, 0x7D, 0x67, +0x04, 0xD2, 0x05, 0xD2, 0x4C, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xFF, 0xF7, +0x1F, 0x6F, 0x8C, 0xEF, 0x88, 0xF1, 0x96, 0xA2, +0x0F, 0x6B, 0x04, 0x05, 0x8C, 0xEB, 0x9D, 0x67, +0x70, 0xC4, 0x88, 0xF1, 0x78, 0xA2, 0x0A, 0x6E, +0x72, 0xC4, 0x88, 0xF1, 0x79, 0xA2, 0x73, 0xC4, +0x48, 0xF2, 0x74, 0xA2, 0x48, 0xF2, 0x55, 0xA2, +0x76, 0xC4, 0x57, 0xC4, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xF4, 0x50, 0x9A, 0x25, 0x6C, 0x40, 0xEA, +0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x69, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, 0x00, 0x49, +0xA3, 0xF4, 0x0C, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xA0, 0x9B, 0x48, 0xF4, 0xDA, 0xA9, 0xA3, 0xF0, +0x10, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x0C, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xA0, 0x9B, 0x48, 0xF4, 0xDC, 0xA9, 0xC3, 0xF0, +0x0C, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x0C, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xA0, 0x9B, 0x48, 0xF4, 0xDE, 0xA9, 0xA8, 0xF1, +0x10, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x0C, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0x68, 0xF4, 0xC0, 0xA9, 0xA0, 0x9B, 0xC8, 0xF1, +0x0C, 0x6C, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x00, 0x6A, 0x0B, 0xD7, +0xE0, 0xAE, 0x1F, 0xF7, 0x00, 0x6B, 0xEC, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x09, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xAE, 0x43, 0xF1, +0x7C, 0x9B, 0x6D, 0xE7, 0xE0, 0xA4, 0xE0, 0xC3, +0x07, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, +0x60, 0x9B, 0x7D, 0xE7, 0x60, 0xA4, 0x60, 0xC7, +0x01, 0x4A, 0xFF, 0x6B, 0x6C, 0xEA, 0x03, 0x72, +0x02, 0x4E, 0x01, 0x4C, 0xE1, 0x61, 0x25, 0x67, +0x00, 0x68, 0x0B, 0x92, 0xC0, 0x99, 0x01, 0x6D, +0x0D, 0xE2, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x80, 0xAB, 0xAB, 0xED, 0x02, 0x48, +0x40, 0xEA, 0x16, 0x70, 0x04, 0x49, 0xF1, 0x61, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0xD1, +0x08, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x68, 0xF4, 0x66, 0xA2, 0x7C, 0x2B, +0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6D, 0x30, 0xF0, +0x20, 0x69, 0x68, 0xF4, 0x75, 0xC2, 0x68, 0xF4, +0x76, 0xC2, 0x2F, 0xF4, 0x14, 0x4D, 0x2F, 0xF3, +0x1C, 0x49, 0x00, 0x6A, 0x00, 0x6B, 0x60, 0xDD, +0x30, 0xF0, 0x20, 0x6C, 0xB1, 0xF0, 0x65, 0x42, +0xA6, 0xF6, 0x00, 0x4C, 0x6C, 0x33, 0x6D, 0xE4, +0x04, 0x4B, 0x04, 0xD3, 0x62, 0xF1, 0x68, 0x42, +0x68, 0x33, 0x6D, 0xE4, 0x04, 0x4B, 0x03, 0xD3, +0x06, 0x6B, 0x78, 0xEA, 0x01, 0xD1, 0x00, 0x68, +0x12, 0xEB, 0x6D, 0xE4, 0x09, 0xF0, 0x0D, 0x4B, +0x04, 0x96, 0x00, 0x6C, 0x80, 0xDE, 0x03, 0x96, +0x80, 0xCE, 0x44, 0x36, 0xD9, 0xE0, 0xC4, 0xF2, +0x04, 0x4E, 0x30, 0xF0, 0x20, 0x6C, 0xC4, 0x36, +0xA6, 0xF6, 0x00, 0x4C, 0xD1, 0xE4, 0x04, 0x4C, +0x05, 0xD4, 0x01, 0x94, 0x00, 0x6E, 0x00, 0xD6, +0x02, 0xD4, 0x05, 0x96, 0x01, 0x6C, 0x44, 0x37, +0x80, 0xC6, 0x00, 0x94, 0x1D, 0xE7, 0xE4, 0x37, +0xFD, 0xE4, 0x30, 0xF0, 0x20, 0x6E, 0xF0, 0x34, +0xA6, 0xF6, 0x00, 0x4E, 0xF0, 0x37, 0x91, 0xE6, +0xFD, 0xE6, 0x88, 0xF4, 0x0C, 0x4C, 0x08, 0xF5, +0x0C, 0x4F, 0x06, 0xD2, 0x02, 0x92, 0x00, 0x6E, +0xC0, 0xCC, 0x02, 0x4C, 0x4A, 0xEC, 0xC0, 0xCF, +0x02, 0x4F, 0xF8, 0x61, 0x00, 0x94, 0x06, 0x92, +0x01, 0x4C, 0x00, 0xD4, 0x05, 0x94, 0x01, 0x4C, +0x05, 0xD4, 0x02, 0x94, 0x10, 0x4C, 0x02, 0xD4, +0x00, 0x94, 0x02, 0x74, 0xD6, 0x61, 0xC0, 0xC3, +0xC1, 0xC3, 0xC2, 0xC3, 0x04, 0x96, 0x03, 0x94, +0x01, 0x48, 0x04, 0x4E, 0x04, 0xD6, 0x01, 0x96, +0x02, 0x4C, 0x02, 0x70, 0x20, 0x4E, 0x03, 0xD4, +0x03, 0x4B, 0x01, 0xD6, 0xB1, 0x61, 0x01, 0x4A, +0x02, 0x72, 0x04, 0x4D, 0x40, 0x49, 0x92, 0x61, +0x09, 0x91, 0x08, 0x90, 0x05, 0x63, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0xF4, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xAE, 0xF7, 0x18, 0x4C, 0x00, 0x6D, 0x18, 0x6E, +0x80, 0x18, 0x9C, 0x4E, 0x30, 0xF0, 0x20, 0x6B, +0x01, 0xF4, 0x00, 0x6C, 0xA6, 0xF6, 0x00, 0x4B, +0x4C, 0xEC, 0x88, 0xF5, 0x5C, 0xDB, 0x82, 0x32, +0x4A, 0x32, 0x02, 0x72, 0x0A, 0x60, 0x03, 0x6C, +0x4E, 0xEC, 0x04, 0x24, 0x01, 0x72, 0x02, 0x6A, +0x05, 0x60, 0x06, 0x10, 0x68, 0xF4, 0x85, 0xC3, +0x03, 0x10, 0x01, 0x6A, 0x68, 0xF4, 0x45, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0x7C, 0x9B, +0x88, 0xF5, 0x9C, 0x9A, 0x8C, 0xEB, 0x62, 0x33, +0x62, 0x33, 0x68, 0xF4, 0x64, 0xC2, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x00, 0x68, 0x05, 0xD5, +0x04, 0xD4, 0x05, 0x92, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x14, 0x4B, 0xE0, 0x9B, 0xC0, 0xA2, +0x30, 0xF0, 0x20, 0x69, 0xAE, 0xF7, 0x18, 0x49, +0x91, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x9C, 0x4E, +0x04, 0x93, 0x91, 0x67, 0x01, 0x6D, 0x40, 0xDB, +0x05, 0x92, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x14, 0x4B, 0xE0, 0x9B, 0xC0, 0xA2, 0x01, 0x48, +0x80, 0x18, 0x9C, 0x4E, 0x04, 0x93, 0x41, 0xDB, +0xFF, 0x6A, 0x4C, 0xE8, 0x05, 0x92, 0x08, 0x4B, +0x03, 0x70, 0x01, 0x4A, 0x05, 0xD2, 0x04, 0xD3, +0xD8, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0xAC, 0xE9, +0x00, 0x68, 0x85, 0xF5, 0x1C, 0x6C, 0xFF, 0x6D, +0x80, 0x18, 0x72, 0x3C, 0x55, 0x72, 0x0C, 0x61, +0x00, 0x6A, 0x15, 0x21, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF4, 0xA8, 0x9A, 0x03, 0xF3, 0x08, 0x6C, +0x80, 0x18, 0x72, 0x3C, 0x00, 0x6A, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, +0x01, 0x6C, 0x01, 0x48, 0x40, 0xEA, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xE8, 0x01, 0x6A, 0x32, 0x58, +0x01, 0x60, 0xDF, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF3, 0x10, 0x6C, +0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x00, 0x6A, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, +0xAC, 0xEA, 0x01, 0x72, 0x05, 0xD4, 0x24, 0x61, +0x44, 0x67, 0x04, 0x4A, 0x01, 0x68, 0x30, 0xF0, +0x20, 0x69, 0x04, 0xEA, 0x00, 0xF2, 0x08, 0x6A, +0x4D, 0xE8, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, +0xD0, 0x67, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, +0xAB, 0xED, 0xC1, 0x40, 0x03, 0xF3, 0x00, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x48, 0x9A, 0x01, 0x6C, 0x40, 0xEA, 0x05, 0x94, +0x01, 0x6D, 0x80, 0x18, 0x57, 0x17, 0xD2, 0x10, +0x02, 0x72, 0x01, 0x6A, 0xC0, 0xF0, 0x0E, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x0F, 0xF3, 0x4A, 0xA2, +0x00, 0x68, 0x09, 0x72, 0x0C, 0x60, 0x12, 0x72, +0x01, 0x68, 0x09, 0x60, 0x1B, 0x72, 0x02, 0x68, +0x06, 0x60, 0x24, 0x68, 0x4E, 0xE8, 0x01, 0x58, +0x18, 0x67, 0x04, 0x6A, 0x03, 0xE2, 0x05, 0x92, +0x30, 0xF0, 0x20, 0x69, 0x01, 0x6D, 0x44, 0x32, +0x07, 0xD2, 0x07, 0x93, 0x08, 0x6A, 0x03, 0xF3, +0x00, 0x6C, 0x4D, 0xEB, 0xC0, 0xF3, 0x44, 0x99, +0xC3, 0x67, 0x07, 0xD3, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xA6, 0xF6, 0x00, 0x4C, +0x04, 0xD4, 0x04, 0x93, 0xC0, 0xF3, 0x44, 0x99, +0x01, 0x6D, 0x68, 0xF4, 0xCA, 0xA3, 0xC3, 0xF3, +0x0C, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x05, 0x92, +0x01, 0x6C, 0x01, 0x6D, 0x04, 0x4A, 0x84, 0xEA, +0x00, 0xF3, 0x08, 0x6A, 0x4D, 0xEC, 0x06, 0xD4, +0xC0, 0xF3, 0x44, 0x99, 0x06, 0x96, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x06, 0x96, +0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0xAB, 0xED, +0x01, 0x4E, 0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, +0x02, 0x6C, 0x40, 0xEA, 0x05, 0x94, 0x01, 0x6D, +0x80, 0x18, 0x57, 0x17, 0x01, 0x72, 0x0A, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, 0x10, 0x4A, +0x41, 0xE0, 0x40, 0xA0, 0x04, 0x93, 0x68, 0xF4, +0x4A, 0xC3, 0x6B, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x05, 0x95, 0xA3, 0xF4, 0xF4, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xAE, 0xF7, 0x18, 0x4C, 0x00, 0x6E, +0x80, 0x18, 0x9C, 0x4E, 0x05, 0xD2, 0x07, 0x96, +0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x05, 0x94, +0xE3, 0xF7, 0x00, 0x6A, 0x04, 0x93, 0x8C, 0xEA, +0x56, 0x34, 0x96, 0x32, 0x68, 0xF4, 0x4C, 0xDB, +0x1F, 0x6A, 0x8C, 0xEA, 0x02, 0x5A, 0xFF, 0x6B, +0x0B, 0x60, 0x03, 0x70, 0x03, 0x60, 0x01, 0x48, +0x6C, 0xE8, 0x49, 0x10, 0x04, 0x94, 0x01, 0x6B, +0x03, 0x68, 0x29, 0xF0, 0x61, 0xC4, 0x43, 0x10, +0x0A, 0x5A, 0x0B, 0x61, 0x04, 0x20, 0xFF, 0x48, +0x6C, 0xE8, 0x01, 0x6B, 0x0B, 0x10, 0x04, 0x94, +0x01, 0x6B, 0x29, 0xF0, 0x61, 0xC4, 0x01, 0x6B, +0x09, 0x10, 0x04, 0x94, 0x00, 0x6B, 0x29, 0xF0, +0x61, 0xC4, 0x00, 0x6B, 0x03, 0x20, 0x04, 0x58, +0x01, 0x61, 0x03, 0x68, 0x30, 0xF0, 0x20, 0x6D, +0x82, 0xF6, 0x10, 0x4D, 0xA1, 0xE0, 0xA0, 0xA0, +0x30, 0xF0, 0x20, 0x6C, 0xA6, 0xF6, 0x00, 0x4C, +0x68, 0xF4, 0xAA, 0xC4, 0x0F, 0x2B, 0x68, 0xF4, +0xCA, 0xA4, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x64, 0x9B, 0xC0, 0x36, 0x01, 0x6D, 0x4D, 0xEE, +0xE3, 0xF3, 0x08, 0x6C, 0xAB, 0xED, 0x40, 0xEB, +0x00, 0x6A, 0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, 0xE3, 0xF3, +0x08, 0x6C, 0xAB, 0xED, 0xFF, 0xF7, 0x1F, 0x6E, +0x40, 0xEA, 0x01, 0x6A, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x01, 0x6B, +0xCE, 0x17, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x00, 0x6B, 0x0B, 0xD7, +0xE0, 0xAE, 0x1F, 0xF7, 0x00, 0x6A, 0xEC, 0xEA, +0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x08, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xAE, 0x43, 0xF1, +0x5C, 0x9A, 0x49, 0xE7, 0xE0, 0xA2, 0x06, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, 0x40, 0x9A, +0x5D, 0xE7, 0xE0, 0xA7, 0xFF, 0x6A, 0xEC, 0xEA, +0x7D, 0xE4, 0x01, 0x4B, 0x03, 0x73, 0x40, 0xC7, +0x02, 0x4E, 0xE2, 0x61, 0x25, 0x67, 0x00, 0x68, +0x0B, 0x93, 0x01, 0x6D, 0xAB, 0xED, 0x09, 0xE3, +0x80, 0xAA, 0x02, 0x48, 0x80, 0x18, 0x72, 0x3C, +0x16, 0x70, 0x40, 0xD9, 0x04, 0x49, 0xF4, 0x61, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0xFF, 0x69, 0xA3, 0xF4, 0x70, 0x9B, 0x30, 0xF0, +0x20, 0x68, 0x2C, 0xEC, 0xC0, 0xF3, 0x44, 0x98, +0xAC, 0xE9, 0x24, 0x36, 0x01, 0x6D, 0x04, 0xD4, +0xAB, 0xED, 0x03, 0xF3, 0x00, 0x6C, 0x6D, 0xEE, +0x40, 0xEA, 0x04, 0x92, 0x08, 0x2A, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, +0x00, 0x6D, 0x03, 0x6E, 0x07, 0x10, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, +0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0xA3, 0xF4, 0xB8, 0x9B, 0xC3, 0xF3, +0x14, 0x6C, 0x10, 0x6E, 0x40, 0xEA, 0x04, 0x93, +0x24, 0x31, 0x30, 0xF0, 0x20, 0x6A, 0x25, 0xE3, +0xA6, 0xF6, 0x00, 0x4A, 0x30, 0x30, 0x30, 0x31, +0x01, 0xE2, 0x25, 0xE2, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x5C, 0x9A, 0x88, 0xF4, 0x0C, 0x48, +0x08, 0xF5, 0x0C, 0x49, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x04, 0x96, +0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x01, 0x6D, 0xE3, 0xF3, 0x1C, 0x6C, +0xAB, 0xED, 0x80, 0x18, 0x72, 0x3C, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0x60, 0x9B, 0x4C, 0xEB, +0x62, 0x33, 0x62, 0x33, 0x60, 0xC8, 0xE1, 0xF7, +0x1F, 0x6B, 0x4C, 0xEB, 0x04, 0x92, 0x60, 0xC9, +0x02, 0x48, 0x04, 0x4A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF4, 0x44, 0x9A, 0x04, 0x93, +0x02, 0x49, 0x6E, 0xEA, 0xD8, 0x2A, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, +0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9B, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, +0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0x05, 0x67, 0x01, 0x74, +0x4C, 0xE8, 0x80, 0xF0, 0x17, 0x60, 0x04, 0x24, +0x04, 0x5C, 0xA0, 0xF0, 0x0E, 0x60, 0xA8, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x88, 0xF5, 0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6D, +0x30, 0xF0, 0x20, 0x6C, 0x88, 0xF5, 0x78, 0xDA, +0x30, 0xF0, 0x20, 0x6F, 0x30, 0xF0, 0x20, 0x6B, +0x4F, 0xF4, 0x0C, 0x4D, 0x4F, 0xF4, 0x04, 0x4C, +0x4F, 0xF4, 0x00, 0x4B, 0x2F, 0xF3, 0x1C, 0x4F, +0x00, 0x69, 0x40, 0x9D, 0xC4, 0xF2, 0x04, 0x41, +0x04, 0x30, 0x42, 0xDD, 0x40, 0xAC, 0x05, 0xD7, +0x42, 0xCC, 0x40, 0xA3, 0x42, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x01, 0xE2, +0x00, 0x6A, 0x04, 0x48, 0x04, 0xD2, 0x40, 0xA0, +0x24, 0x36, 0x44, 0xC0, 0x04, 0x92, 0xD9, 0xE2, +0x06, 0xD6, 0xD0, 0x36, 0x07, 0xD6, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0x67, 0x07, 0x92, 0xA6, 0xF6, +0x00, 0x4E, 0x1E, 0x65, 0x59, 0xE6, 0x88, 0xF4, +0x0C, 0x4E, 0x07, 0xD6, 0xC2, 0x67, 0x58, 0x67, +0xC9, 0xE2, 0x08, 0xF5, 0x0C, 0x4A, 0xC2, 0x67, +0x07, 0x92, 0x06, 0xD3, 0x60, 0xAA, 0x40, 0xF0, +0x60, 0xCA, 0x60, 0xAE, 0x02, 0x4A, 0x40, 0xF0, +0x60, 0xCE, 0x05, 0x93, 0x02, 0x4E, 0x6A, 0xEA, +0xF5, 0x61, 0x04, 0x96, 0x05, 0x92, 0x06, 0x93, +0x01, 0x4E, 0x10, 0x4A, 0x02, 0x76, 0x04, 0xD6, +0x01, 0x48, 0x05, 0xD2, 0xD0, 0x61, 0x01, 0x49, +0x02, 0x6E, 0x2E, 0xEE, 0x04, 0x4D, 0x02, 0x4C, +0x01, 0x4B, 0x20, 0x4F, 0xB6, 0x2E, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x00, 0x6B, +0x09, 0xF0, 0x79, 0xC2, 0x09, 0xF0, 0x7A, 0xC2, +0x09, 0xF0, 0x6D, 0xC2, 0x09, 0xF0, 0x6E, 0xC2, +0x09, 0xF0, 0x6F, 0xC2, 0xA8, 0xF5, 0x61, 0xC2, +0x09, 0xF0, 0x7B, 0xC2, 0x09, 0xF0, 0x7C, 0xC2, +0x09, 0xF0, 0x70, 0xC2, 0x09, 0xF0, 0x71, 0xC2, +0x09, 0xF0, 0x72, 0xC2, 0x88, 0xF5, 0x7C, 0x9A, +0x01, 0x6C, 0xA8, 0xF5, 0xC0, 0xC2, 0xA8, 0xF5, +0xC4, 0xCA, 0x88, 0xF5, 0x8C, 0xC2, 0x88, 0xF5, +0x8D, 0xC2, 0xA8, 0xF5, 0xC6, 0xCA, 0x88, 0xF5, +0x8E, 0xC2, 0x88, 0xF5, 0x8F, 0xC2, 0x88, 0xF5, +0x74, 0xDA, 0x1B, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0xF4, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xB0, 0x67, 0xAE, 0xF7, 0x18, 0x4C, 0x58, 0x6E, +0x80, 0x18, 0x9C, 0x4E, 0x62, 0xF1, 0x0A, 0x48, +0x30, 0xF0, 0x20, 0x6B, 0x08, 0x30, 0xA6, 0xF6, +0x00, 0x4B, 0x6D, 0xE0, 0x41, 0xDB, 0x05, 0x10, +0xFE, 0x4C, 0x4C, 0xEC, 0xB0, 0x67, 0x80, 0x18, +0x13, 0x18, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x0F, 0xF3, 0x51, 0xA2, +0x18, 0x2A, 0x01, 0x6C, 0x00, 0x6D, 0x80, 0x18, +0x58, 0x18, 0x02, 0x6C, 0x00, 0x6D, 0x80, 0x18, +0x58, 0x18, 0x03, 0x6C, 0x00, 0x6D, 0x80, 0x18, +0x58, 0x18, 0x01, 0x6C, 0xA4, 0x67, 0x80, 0x18, +0x58, 0x18, 0x02, 0x6C, 0x01, 0x6D, 0x80, 0x18, +0x58, 0x18, 0x03, 0x6C, 0x01, 0x6D, 0x80, 0x18, +0x58, 0x18, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x8F, 0xF2, 0x40, 0xA2, +0xA0, 0xF3, 0x17, 0x22, 0x01, 0x69, 0x2B, 0xE9, +0xB1, 0x67, 0x63, 0xF0, 0x00, 0x6C, 0x80, 0x18, +0x72, 0x3C, 0xB1, 0x67, 0x68, 0xF1, 0x00, 0x6C, +0x07, 0xD2, 0x80, 0x18, 0x72, 0x3C, 0xB1, 0x67, +0xA1, 0xF1, 0x14, 0x6C, 0x30, 0xF0, 0x20, 0x68, +0x06, 0xD2, 0x80, 0x18, 0x72, 0x3C, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0xC8, 0x9B, 0x05, 0xD2, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0xA1, 0xF1, +0x14, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF4, 0x2C, 0x9A, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0xC3, 0xF0, 0x0C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0xA8, 0xF1, +0x10, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0xC8, 0xF1, 0x0C, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF1, 0x38, 0x9A, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, +0x10, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF0, 0x00, 0x6C, 0x3C, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC5, 0x67, +0xA3, 0xF0, 0x14, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xC5, 0x67, 0xC3, 0xF0, +0x10, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x28, 0xF1, 0x10, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, +0x10, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x68, 0xF1, 0x00, 0x6C, 0x3C, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC5, 0x67, +0xA8, 0xF1, 0x14, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xC5, 0x67, 0xC8, 0xF1, +0x10, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF0, 0x10, 0x6C, 0x01, 0xF7, 0x00, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF0, 0x00, 0x6C, 0x08, 0xF0, 0x00, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF0, 0x0C, 0x6C, 0x01, 0xF7, 0x00, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF0, 0x1C, 0x6C, 0x08, 0xF0, 0x00, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF0, 0x10, 0x6C, 0x01, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, +0x0C, 0x6C, 0x01, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC5, 0x67, +0xA3, 0xF0, 0x10, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xC5, 0x67, 0xC3, 0xF0, +0x0C, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF4, 0x34, 0x9A, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF0, 0x18, 0x6C, 0xB1, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, +0x14, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x10, 0x6C, +0x01, 0xF7, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x00, 0x6C, +0x08, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x0C, 0x6C, +0x01, 0xF7, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x1C, 0x6C, +0x08, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x10, 0x6C, +0x01, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xC8, 0xF1, 0x0C, 0x6C, 0x01, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xC5, 0x67, 0xA8, 0xF1, 0x10, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xC5, 0x67, 0xC8, 0xF1, 0x0C, 0x6C, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x18, 0x6C, +0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xC8, 0xF1, 0x14, 0x6C, 0xB1, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0x00, 0x68, 0xFF, 0x6A, +0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF4, 0xB8, 0x9A, 0x05, 0xF0, 0x08, 0x6C, +0x80, 0x18, 0x72, 0x3C, 0xFF, 0xF7, 0x1F, 0x72, +0x12, 0x60, 0xFF, 0x70, 0xF0, 0x61, 0x0F, 0x10, +0xFF, 0x6A, 0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF4, 0xB8, 0x9A, 0x25, 0xF0, +0x14, 0x6C, 0x80, 0x18, 0x72, 0x3C, 0xFF, 0xF7, +0x1F, 0x72, 0x03, 0x61, 0x14, 0x10, 0x00, 0x68, +0xEF, 0x17, 0xFF, 0x70, 0xED, 0x61, 0x0F, 0x10, +0xFF, 0x6A, 0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF4, 0xB8, 0x9A, 0x08, 0xF5, +0x08, 0x6C, 0x80, 0x18, 0x72, 0x3C, 0xFF, 0xF7, +0x1F, 0x72, 0x03, 0x61, 0x14, 0x10, 0x00, 0x68, +0xEF, 0x17, 0xFF, 0x70, 0xED, 0x61, 0x0F, 0x10, +0xFF, 0x6A, 0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF4, 0xB8, 0x9A, 0x28, 0xF5, +0x14, 0x6C, 0x80, 0x18, 0x72, 0x3C, 0xFF, 0xF7, +0x1F, 0x72, 0x03, 0x61, 0x04, 0x10, 0x00, 0x68, +0xEF, 0x17, 0xFF, 0x70, 0xED, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0xC3, 0xF4, +0x14, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, +0xA3, 0xF0, 0x18, 0x69, 0x91, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, +0x14, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, +0x91, 0x67, 0x02, 0x6E, 0x40, 0xEA, 0x00, 0x68, +0x05, 0xF0, 0x08, 0x6C, 0xFF, 0x6D, 0x80, 0x18, +0x72, 0x3C, 0x86, 0x72, 0x07, 0x61, 0x30, 0xF0, +0x20, 0x69, 0x00, 0x6A, 0x8F, 0xF2, 0x02, 0x49, +0x04, 0xD2, 0x1E, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF4, 0x14, 0x4B, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x69, 0x01, 0x48, 0xA0, 0x9B, 0x4C, 0xE8, +0xC0, 0xF3, 0x44, 0x99, 0xA3, 0xF0, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF4, 0x14, 0x4B, 0xC0, 0xF3, 0x44, 0x99, +0xA0, 0x9B, 0xA3, 0xF0, 0x18, 0x6C, 0x02, 0x6E, +0x40, 0xEA, 0x64, 0x70, 0xD5, 0x61, 0xDB, 0x17, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF0, 0x14, 0x6C, 0x04, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xA9, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF0, 0x14, 0x6C, 0xE1, 0xF7, 0x18, 0x6D, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, +0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, +0xA3, 0xF0, 0x10, 0x6C, 0x02, 0x49, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0x14, 0x6C, +0x04, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x04, 0x92, +0x01, 0x4A, 0x0F, 0x72, 0x04, 0xD2, 0xD8, 0x61, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0x14, 0x6C, +0x04, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0x14, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xA0, 0x9B, 0xC3, 0xF0, 0x14, 0x69, +0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0x14, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xA0, 0x9B, 0x91, 0x67, 0x02, 0x6E, +0x40, 0xEA, 0x00, 0x68, 0x25, 0xF0, 0x14, 0x6C, +0xFF, 0x6D, 0x80, 0x18, 0x72, 0x3C, 0x86, 0x72, +0x07, 0x61, 0x30, 0xF0, 0x20, 0x69, 0x00, 0x6A, +0xAF, 0xF2, 0x00, 0x49, 0x04, 0xD2, 0x1E, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, 0x14, 0x4B, +0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x69, 0x01, 0x48, +0xA0, 0x9B, 0x4C, 0xE8, 0xC0, 0xF3, 0x44, 0x99, +0xC3, 0xF0, 0x14, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, 0x14, 0x4B, +0xC0, 0xF3, 0x44, 0x99, 0xA0, 0x9B, 0xC3, 0xF0, +0x14, 0x6C, 0x02, 0x6E, 0x40, 0xEA, 0x64, 0x70, +0xD5, 0x61, 0xDB, 0x17, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, 0x10, 0x6C, +0x04, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xA9, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, 0x10, 0x6C, +0xE1, 0xF7, 0x18, 0x6D, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0xBC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x04, 0x96, 0xC3, 0xF0, 0x0C, 0x6C, +0x02, 0x49, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF0, 0x10, 0x6C, 0x04, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x04, 0x92, 0x01, 0x4A, 0x0F, 0x72, +0x04, 0xD2, 0xD8, 0x61, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF0, 0x10, 0x6C, 0x04, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF4, +0x34, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, +0x18, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, 0x14, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xA3, 0xF0, 0x14, 0x6C, 0x01, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF0, 0x10, 0x6C, 0x01, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, +0x18, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x18, 0x6C, +0xB1, 0x67, 0x02, 0x6E, 0x40, 0xEA, 0x00, 0x68, +0x08, 0xF5, 0x08, 0x6C, 0xFF, 0x6D, 0x80, 0x18, +0x72, 0x3C, 0x86, 0x72, 0x07, 0x61, 0x30, 0xF0, +0x20, 0x69, 0x00, 0x6B, 0xAF, 0xF2, 0x1E, 0x49, +0x04, 0xD3, 0x1E, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF4, 0x14, 0x4B, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x69, 0x01, 0x48, 0xA0, 0x9B, 0x4C, 0xE8, +0xC0, 0xF3, 0x44, 0x99, 0xA8, 0xF1, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF4, 0x14, 0x4B, 0xC0, 0xF3, 0x44, 0x99, +0xA0, 0x9B, 0xA8, 0xF1, 0x18, 0x6C, 0x02, 0x6E, +0x40, 0xEA, 0x64, 0x70, 0xD5, 0x61, 0xDB, 0x17, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0xA8, 0xF1, 0x14, 0x6C, 0x04, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xA9, 0xC0, 0xF3, 0x44, 0x98, +0xA8, 0xF1, 0x14, 0x6C, 0xE1, 0xF7, 0x18, 0x6D, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, +0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, +0xA8, 0xF1, 0x10, 0x6C, 0x02, 0x49, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x14, 0x6C, +0x04, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x04, 0x92, +0x01, 0x4A, 0x0F, 0x72, 0x04, 0xD2, 0xD8, 0x61, +0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x14, 0x6C, +0x04, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0x14, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xA0, 0x9B, 0xC8, 0xF1, 0x14, 0x69, +0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0x14, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xA0, 0x9B, 0x91, 0x67, 0x02, 0x6E, +0x40, 0xEA, 0x00, 0x68, 0x28, 0xF5, 0x14, 0x6C, +0xFF, 0x6D, 0x80, 0x18, 0x72, 0x3C, 0x86, 0x72, +0x07, 0x61, 0x30, 0xF0, 0x20, 0x69, 0x00, 0x6A, +0xCF, 0xF2, 0x1C, 0x49, 0x04, 0xD2, 0x1E, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, 0x14, 0x4B, +0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x69, 0x01, 0x48, +0xA0, 0x9B, 0x4C, 0xE8, 0xC0, 0xF3, 0x44, 0x99, +0xC8, 0xF1, 0x14, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, 0x14, 0x4B, +0xC0, 0xF3, 0x44, 0x99, 0xA0, 0x9B, 0xC8, 0xF1, +0x14, 0x6C, 0x02, 0x6E, 0x40, 0xEA, 0x64, 0x70, +0xD5, 0x61, 0xDB, 0x17, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x10, 0x6C, +0x04, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xA9, +0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x10, 0x6C, +0xE1, 0xF7, 0x18, 0x6D, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0xBC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x04, 0x96, 0xC8, 0xF1, 0x0C, 0x6C, +0x02, 0x49, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC8, 0xF1, 0x10, 0x6C, 0x04, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x04, 0x92, 0x01, 0x4A, 0x0F, 0x72, +0x04, 0xD2, 0xD8, 0x61, 0xC0, 0xF3, 0x44, 0x98, +0xC8, 0xF1, 0x10, 0x6C, 0x04, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF4, +0x34, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, +0x18, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0xC8, 0xF1, +0x14, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xA8, 0xF1, 0x14, 0x6C, 0x01, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC8, 0xF1, 0x10, 0x6C, 0x01, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, +0x38, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x28, 0xF1, +0x10, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x07, 0x96, 0x01, 0x6D, 0x63, 0xF0, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x06, 0x96, 0x01, 0x6D, 0x68, 0xF1, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF4, 0x2C, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0xA3, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF0, 0x0C, 0x6C, 0xB1, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x0C, 0x6C, +0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x05, 0x96, 0x01, 0x6D, 0xA1, 0xF1, +0x14, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x80, 0x18, +0x9C, 0x16, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xE3, 0xF7, 0x18, 0x69, +0xB1, 0x67, 0x05, 0xF0, 0x10, 0x6C, 0x80, 0x18, +0x72, 0x3C, 0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6B, +0xA6, 0xF6, 0x00, 0x48, 0x6C, 0xEA, 0xB1, 0x67, +0x25, 0xF0, 0x1C, 0x6C, 0x48, 0xF4, 0x5A, 0xC8, +0x80, 0x18, 0x72, 0x3C, 0xFF, 0x6B, 0x6C, 0xEA, +0xB1, 0x67, 0x08, 0xF5, 0x10, 0x6C, 0x48, 0xF4, +0x5C, 0xC8, 0x80, 0x18, 0x72, 0x3C, 0xFF, 0x6B, +0x6C, 0xEA, 0xB1, 0x67, 0x28, 0xF5, 0x1C, 0x6C, +0x48, 0xF4, 0x5E, 0xC8, 0x80, 0x18, 0x72, 0x3C, +0xFF, 0x6B, 0x6C, 0xEA, 0x68, 0xF4, 0x40, 0xC8, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF2, 0x70, 0xA2, 0x00, 0xF1, 0x0B, 0x23, +0x00, 0x68, 0x82, 0xF2, 0x10, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF4, 0xB8, 0x9A, 0x05, 0xF0, +0x08, 0x6C, 0x80, 0x18, 0x72, 0x3C, 0xFF, 0xF7, +0x1F, 0x72, 0x07, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xE8, 0xF3, 0x00, 0xC2, +0xF6, 0x10, 0x01, 0x69, 0x2B, 0xE9, 0x01, 0x6B, +0xB1, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF0, +0x00, 0x6C, 0x8F, 0xF2, 0x60, 0xC2, 0x80, 0x18, +0x72, 0x3C, 0xB1, 0x67, 0x68, 0xF1, 0x00, 0x6C, +0x07, 0xD2, 0x80, 0x18, 0x72, 0x3C, 0xB1, 0x67, +0xA1, 0xF1, 0x14, 0x6C, 0x30, 0xF0, 0x20, 0x68, +0x06, 0xD2, 0x80, 0x18, 0x72, 0x3C, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0xC8, 0x9B, 0x05, 0xD2, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0xA1, 0xF1, +0x14, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF1, 0xB8, 0x9B, +0x23, 0xF0, 0x10, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF4, 0xB0, 0x9B, 0x63, 0xF0, 0x00, 0x6C, +0x3C, 0x6E, 0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, +0x8F, 0xF2, 0x02, 0x48, 0x00, 0x69, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF4, +0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, 0xD1, 0x67, +0xA3, 0xF0, 0x10, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF4, 0xA0, 0x9A, 0x05, 0xF0, +0x10, 0x6C, 0x01, 0x49, 0x80, 0x18, 0x72, 0x3C, +0x0F, 0x71, 0x40, 0xC8, 0x02, 0x48, 0xE7, 0x61, +0x30, 0xF0, 0x20, 0x68, 0x00, 0x6A, 0xAF, 0xF2, +0x00, 0x48, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x69, 0xC3, 0xF4, 0xBC, 0x9B, +0xC0, 0xF3, 0x44, 0x99, 0x04, 0x96, 0xC3, 0xF0, +0x0C, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF4, 0xA0, 0x9A, 0x25, 0xF0, 0x1C, 0x6C, +0x80, 0x18, 0x72, 0x3C, 0x40, 0xC8, 0x04, 0x92, +0x02, 0x48, 0x01, 0x4A, 0x0F, 0x72, 0x04, 0xD2, +0xE5, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x99, 0xC3, 0xF1, 0xB8, 0x9B, 0x28, 0xF1, +0x10, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, 0xC3, 0xF4, +0xB0, 0x9B, 0x68, 0xF1, 0x00, 0x6C, 0x3C, 0x6E, +0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, 0xAF, 0xF2, +0x1E, 0x48, 0x00, 0x69, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF4, 0xBC, 0x9B, +0xC0, 0xF3, 0x44, 0x9A, 0xD1, 0x67, 0xA8, 0xF1, +0x10, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF4, 0xA0, 0x9A, 0x08, 0xF5, 0x10, 0x6C, +0x01, 0x49, 0x80, 0x18, 0x72, 0x3C, 0x0F, 0x71, +0x40, 0xC8, 0x02, 0x48, 0xE7, 0x61, 0x30, 0xF0, +0x20, 0x69, 0x00, 0x6A, 0xCF, 0xF2, 0x1C, 0x49, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0xC3, 0xF4, 0xBC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x04, 0x96, 0xC8, 0xF1, 0x0C, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF4, +0xA0, 0x9A, 0x28, 0xF5, 0x1C, 0x6C, 0x80, 0x18, +0x72, 0x3C, 0x40, 0xC9, 0x04, 0x92, 0x02, 0x49, +0x01, 0x4A, 0x0F, 0x72, 0x04, 0xD2, 0xE5, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x38, 0x9A, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x28, 0xF1, 0x10, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x01, 0x69, 0xC0, 0xF3, +0x44, 0x98, 0x07, 0x96, 0x2B, 0xE9, 0x63, 0xF0, +0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x06, 0x96, 0x68, 0xF1, 0x00, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x05, 0x96, 0xA1, 0xF1, 0x14, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x80, 0x18, 0xAD, 0x1A, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x69, 0x00, 0x6A, 0x8C, 0xE9, 0x06, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x14, 0x4A, +0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0xAE, 0xF7, +0x18, 0x48, 0x00, 0x6B, 0x90, 0x67, 0xB1, 0x67, +0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x14, 0x4A, +0xE0, 0x9A, 0x00, 0x6B, 0x90, 0x67, 0xB1, 0x67, +0x08, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x14, 0x4B, +0xE0, 0x9B, 0x90, 0x67, 0xB1, 0x67, 0x08, 0x6E, +0x80, 0x18, 0x9C, 0x4E, 0x0B, 0x22, 0x06, 0x92, +0x01, 0x4A, 0x06, 0xD2, 0x06, 0x93, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xEB, 0x2E, 0xF5, 0x10, 0x73, +0x06, 0xD3, 0xCE, 0x61, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF5, 0x63, 0x15, 0x62, 0x14, 0xD1, 0x13, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xED, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF6, 0x14, 0x4A, 0x64, 0x67, +0x07, 0xD2, 0x62, 0xF1, 0x02, 0x4B, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x68, 0x33, +0x6D, 0xE2, 0x04, 0x4B, 0x0A, 0xD3, 0x64, 0x67, +0xA1, 0xF0, 0x15, 0x4B, 0x6C, 0x33, 0x69, 0xE2, +0x04, 0x4A, 0x00, 0x6B, 0x0F, 0xD4, 0x11, 0xD5, +0x0C, 0xD2, 0x08, 0xD3, 0x08, 0x95, 0x11, 0x92, +0xFF, 0x69, 0xAC, 0xE9, 0x18, 0x2A, 0x30, 0xF0, +0x20, 0x68, 0xAE, 0xF7, 0x18, 0x48, 0x01, 0x6A, +0x90, 0x67, 0xB1, 0x67, 0xDF, 0x6E, 0x10, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x0C, 0x93, +0x90, 0x67, 0xB1, 0x67, 0x40, 0x9B, 0x58, 0x6E, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0xF4, 0x9A, 0x80, 0x18, 0xE1, 0x4E, 0x08, 0x95, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x50, 0x9A, +0xA4, 0x35, 0x4D, 0xED, 0x00, 0x6A, 0x0E, 0xD5, +0x06, 0xD2, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x0E, 0x96, 0x01, 0x69, 0x2B, 0xE9, +0x03, 0xF3, 0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x0C, 0x6C, +0xB1, 0x67, 0x07, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x18, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x1C, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0xC3, 0xF3, 0x0C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x06, 0x95, 0xFF, 0x6A, 0xAC, 0xEA, 0x08, 0x2A, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, +0x06, 0xF0, 0x00, 0x6D, 0x03, 0x6E, 0x07, 0x10, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, +0x06, 0xF0, 0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, +0xC3, 0xF3, 0x14, 0x6C, 0x10, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x06, 0x93, 0xE3, 0xF4, +0x44, 0x9A, 0x0F, 0x95, 0x46, 0xEB, 0x08, 0x93, +0xA4, 0x34, 0x06, 0x95, 0x71, 0xE4, 0x84, 0x34, +0x91, 0xE5, 0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, +0x00, 0x4B, 0x90, 0x31, 0x90, 0x34, 0x91, 0xE3, +0xA3, 0x42, 0x25, 0xE3, 0x64, 0x67, 0x0B, 0xD5, +0x08, 0xF5, 0x0C, 0x4B, 0xA1, 0x42, 0x23, 0x4A, +0x88, 0xF4, 0x0C, 0x49, 0x09, 0xD3, 0x0D, 0xD5, +0x10, 0xD2, 0xC0, 0xA9, 0x0B, 0x93, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x36, +0xC4, 0x36, 0x01, 0x6D, 0xD9, 0xE3, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x09, 0x95, +0x0D, 0x93, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0xAD, +0x01, 0x6D, 0xAB, 0xED, 0xC0, 0x36, 0xC4, 0x36, +0xD9, 0xE3, 0xC3, 0xF3, 0x18, 0x6C, 0x40, 0xEA, +0x09, 0x92, 0x0B, 0x95, 0x0D, 0x93, 0x02, 0x4A, +0x09, 0xD2, 0x10, 0x92, 0x04, 0x4D, 0x04, 0x4B, +0x4A, 0xED, 0x02, 0x49, 0x0B, 0xD5, 0x0D, 0xD3, +0xD8, 0x61, 0x06, 0x93, 0xFF, 0x6A, 0x6C, 0xEA, +0x08, 0x2A, 0x0A, 0x95, 0x07, 0x93, 0xC0, 0xF3, +0x44, 0x98, 0xC0, 0xA5, 0x80, 0xAB, 0x01, 0x6D, +0x08, 0x10, 0x07, 0x93, 0x0A, 0x95, 0xC0, 0xF3, +0x44, 0x98, 0x80, 0xAB, 0xC1, 0xA5, 0x00, 0xF4, +0x00, 0x6D, 0xCF, 0xEE, 0x40, 0xEA, 0x06, 0x95, +0x01, 0x4D, 0x02, 0x75, 0x06, 0xD5, 0x5F, 0xF7, +0x0C, 0x61, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, +0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x06, 0xF0, 0x00, 0x6D, 0x03, 0xF3, +0x0C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x08, 0x92, +0x07, 0x93, 0x0A, 0x95, 0x01, 0x4A, 0x08, 0xD2, +0x02, 0x4B, 0x0C, 0x92, 0x07, 0xD3, 0x08, 0x93, +0x02, 0x4D, 0x04, 0x4A, 0x02, 0x73, 0x0A, 0xD5, +0x0C, 0xD2, 0x1F, 0xF7, 0x03, 0x61, 0x15, 0x97, +0x14, 0x91, 0x13, 0x90, 0x0B, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, +0x4C, 0xEC, 0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x00, 0x6B, 0x29, 0xF0, +0x68, 0xC2, 0x1A, 0x2C, 0x68, 0xF4, 0x66, 0xA2, +0x17, 0x23, 0x88, 0xF5, 0x7C, 0x9A, 0x88, 0xF5, +0x94, 0x9A, 0x00, 0x68, 0x6E, 0xEC, 0x05, 0x24, +0x88, 0xF5, 0x58, 0x9A, 0x4E, 0xEB, 0x0C, 0x2B, +0x01, 0x68, 0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x90, 0x67, 0xCF, 0xF6, 0x68, 0xC2, 0x80, 0x18, +0x74, 0x1B, 0x90, 0x67, 0x80, 0x18, 0xA7, 0x49, +0x30, 0xF0, 0x20, 0x6A, 0xCF, 0xF6, 0x48, 0xA2, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x0F, 0xF3, 0x51, 0xA2, 0x05, 0x22, 0x00, 0x6C, +0x01, 0x6D, 0x80, 0x18, 0x06, 0x1C, 0x04, 0x10, +0x00, 0x6C, 0x01, 0x6D, 0x80, 0x18, 0x74, 0x1B, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x00, 0x6A, 0x7D, 0x67, 0x4C, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF1, 0x3C, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0x14, 0x4A, 0xE0, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0xAE, 0xF7, 0x18, 0x48, +0x00, 0x6D, 0x90, 0x67, 0xC5, 0x67, 0x04, 0xD1, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x14, 0x4B, 0xE0, 0x9B, 0x90, 0x67, +0x01, 0x6D, 0x00, 0x6E, 0x30, 0xF0, 0x20, 0x68, +0x04, 0xD1, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF4, 0xA8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xE1, 0xF0, 0x18, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xE1, 0xF0, 0x1C, 0x6C, 0xAB, 0xED, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x07, 0x6D, +0xC5, 0x67, 0x83, 0xF1, 0x0C, 0x6C, 0x40, 0xEA, +0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x48, 0x9A, 0xA1, 0xF3, 0x18, 0x6F, +0xA1, 0xF7, 0x00, 0x6C, 0x08, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, +0x08, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0xE3, 0xF4, 0xAC, 0x9B, 0x01, 0xF2, 0x04, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF1, 0x70, 0x9A, 0xFF, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0xFE, 0x6C, 0x4C, 0xEC, 0x80, 0xC3, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, +0x54, 0x9A, 0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0x09, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF4, +0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF4, +0x50, 0x9A, 0x60, 0xDA, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x34, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0xAE, 0xF7, 0x18, 0x48, +0x90, 0x67, 0xF1, 0x67, 0x01, 0xF2, 0x00, 0x6A, +0x00, 0x6D, 0xB8, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF4, +0x58, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, +0xB8, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x0E, 0xD6, 0x0F, 0xD7, +0x04, 0xD7, 0xFF, 0x68, 0xFF, 0xF7, 0x1F, 0x69, +0x0E, 0x97, 0x8C, 0xE8, 0xAC, 0xE9, 0x30, 0xF0, +0x20, 0x6C, 0xAE, 0xF7, 0x18, 0x4C, 0xB0, 0x67, +0xD1, 0x67, 0x80, 0x18, 0xE1, 0x4E, 0x00, 0x6A, +0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6B, 0x0E, 0x97, +0xAE, 0xF7, 0x18, 0x4B, 0x83, 0x67, 0xB0, 0x67, +0xD1, 0x67, 0x06, 0xD3, 0x80, 0x18, 0x9C, 0x4E, +0x0F, 0x93, 0x6E, 0xEA, 0x1E, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, +0x40, 0xEA, 0x0F, 0x92, 0x06, 0x94, 0x0E, 0x97, +0xB0, 0x67, 0xD1, 0x67, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x07, 0x93, 0x01, 0x4B, 0xE0, 0xF3, +0x08, 0x73, 0x07, 0xD3, 0xDE, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0xA0, 0xF1, +0x00, 0x6C, 0x1F, 0xF7, 0x00, 0x6D, 0x0A, 0x6E, +0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xFF, 0x68, 0xFF, 0xF7, 0x1F, 0x69, 0xA3, 0xF4, +0xF4, 0x9A, 0x8C, 0xE8, 0xAC, 0xE9, 0x30, 0xF0, +0x20, 0x6C, 0x0E, 0xD6, 0x04, 0xD6, 0xAE, 0xF7, +0x18, 0x4C, 0xB0, 0x67, 0xD1, 0x67, 0x80, 0x18, +0xE1, 0x4E, 0x00, 0x6A, 0x07, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0x14, 0x4A, 0x30, 0xF0, +0x20, 0x6B, 0xE0, 0x9A, 0xAE, 0xF7, 0x18, 0x4B, +0x83, 0x67, 0xB0, 0x67, 0xD1, 0x67, 0x06, 0xD3, +0x80, 0x18, 0x9C, 0x4E, 0x0E, 0x93, 0x6E, 0xEA, +0x18, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x14, 0x4B, 0x0E, 0x92, +0x06, 0x94, 0xE0, 0x9B, 0xB0, 0x67, 0xD1, 0x67, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x07, 0x92, +0x01, 0x4A, 0xE0, 0xF3, 0x08, 0x72, 0x07, 0xD2, +0xD6, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x00, 0x6A, 0x0C, 0xD4, +0x05, 0x67, 0x06, 0xD2, 0x06, 0x92, 0xFF, 0x6B, +0x30, 0xF0, 0x20, 0x69, 0x6C, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x14, 0x4B, 0x07, 0xD2, +0xE0, 0x9B, 0x07, 0x95, 0xAE, 0xF7, 0x18, 0x49, +0x00, 0x6A, 0x91, 0x67, 0xEF, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x40, 0x98, 0x06, 0x94, +0x11, 0x6E, 0xCB, 0xEE, 0x4C, 0xEE, 0xDF, 0x6D, +0x80, 0x18, 0x9F, 0x1C, 0x0C, 0x92, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x14, 0x4B, 0xC1, 0xA2, +0xE0, 0x9B, 0x42, 0x98, 0x07, 0x95, 0x91, 0x67, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x0C, 0x92, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x14, 0x4B, +0xC2, 0xA2, 0x07, 0x95, 0x44, 0x98, 0xE0, 0x9B, +0x91, 0x67, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x06, 0x92, 0x04, 0x48, 0x01, 0x4A, 0x02, 0x72, +0x06, 0xD2, 0xC4, 0x61, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6C, +0xAE, 0xF7, 0x18, 0x4C, 0x80, 0x18, 0xFF, 0x34, +0x05, 0x97, 0x01, 0x6A, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x01, 0x6B, 0x6B, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0x0A, 0xD4, 0x0F, 0xF3, 0x66, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF2, 0x2C, 0x9A, 0x30, 0xF0, +0x20, 0x68, 0x0A, 0x93, 0x80, 0xF2, 0x4C, 0x98, +0x30, 0xF0, 0x20, 0x6C, 0x35, 0xE3, 0x8F, 0xF6, +0x04, 0x4C, 0x08, 0x6E, 0x40, 0xEA, 0x0A, 0x95, +0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, 0x20, 0x6C, +0x08, 0x4D, 0x35, 0xE5, 0x4F, 0xF4, 0x1C, 0x4C, +0x44, 0x6E, 0x40, 0xEA, 0x0A, 0x92, 0x30, 0xF0, +0x20, 0x6C, 0xAF, 0xF4, 0x00, 0x4C, 0x4C, 0x4A, +0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, +0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, +0x30, 0xF0, 0x20, 0x6C, 0xEF, 0xF4, 0x04, 0x4C, +0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, +0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, +0x04, 0x92, 0x30, 0xF0, 0x20, 0x6C, 0x2F, 0xF5, +0x08, 0x4C, 0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, +0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, +0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, 0x20, 0x6C, +0x6F, 0xF5, 0x0C, 0x4C, 0x44, 0x4A, 0x04, 0xD2, +0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, +0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, +0x20, 0x6C, 0xAF, 0xF5, 0x10, 0x4C, 0x44, 0x4A, +0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, +0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, +0x30, 0xF0, 0x20, 0x6C, 0xEF, 0xF5, 0x14, 0x4C, +0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, +0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, +0x04, 0x92, 0x30, 0xF0, 0x20, 0x6C, 0x2F, 0xF6, +0x18, 0x4C, 0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, +0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, +0xA0, 0x9B, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, +0x30, 0xF0, 0x20, 0x6C, 0x8F, 0xF6, 0x1C, 0x4C, +0xB5, 0xE3, 0x10, 0x6E, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0xD1, 0x08, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x02, 0xF3, 0x60, 0xA2, 0x80, 0xF0, +0x1E, 0x23, 0x30, 0xF0, 0x20, 0x6C, 0x00, 0x6B, +0xC3, 0xF1, 0x98, 0x9C, 0x02, 0xF3, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6E, 0x30, 0xF0, 0x20, 0x6D, +0x68, 0xF4, 0x77, 0xC2, 0x68, 0xF4, 0x9C, 0xDA, +0x68, 0xF4, 0x75, 0xC2, 0x68, 0xF4, 0x79, 0xC2, +0x88, 0xF4, 0x84, 0xDA, 0x68, 0xF4, 0x78, 0xC2, +0x88, 0xF4, 0x80, 0xDA, 0x68, 0xF4, 0x76, 0xC2, +0x68, 0xF4, 0x7A, 0xC2, 0x88, 0xF4, 0x88, 0xDA, +0x8F, 0xF6, 0x04, 0x4E, 0x6F, 0xF4, 0x1E, 0x4D, +0x00, 0x6A, 0x00, 0x6B, 0x60, 0xDE, 0x30, 0xF0, +0x20, 0x6C, 0xF1, 0xF0, 0x6F, 0x42, 0xA6, 0xF6, +0x00, 0x4C, 0x6C, 0x33, 0x6D, 0xE4, 0x04, 0x4B, +0x04, 0xD3, 0xF2, 0xF1, 0x6C, 0x42, 0x68, 0x33, +0x6D, 0xE4, 0x04, 0x4B, 0x03, 0xD3, 0x06, 0x6B, +0x78, 0xEA, 0x01, 0xD5, 0x00, 0x69, 0x05, 0x67, +0x12, 0xEB, 0x6D, 0xE4, 0x09, 0xF0, 0x0D, 0x4B, +0x04, 0x95, 0x00, 0x6C, 0x80, 0xDD, 0x03, 0x95, +0x80, 0xCD, 0x44, 0x35, 0xB5, 0xE1, 0xE4, 0xF3, +0x0C, 0x4D, 0x30, 0xF0, 0x20, 0x6C, 0xA4, 0x35, +0xA6, 0xF6, 0x00, 0x4C, 0xB1, 0xE4, 0x04, 0x4C, +0x05, 0xD4, 0x01, 0x94, 0x00, 0x6D, 0x00, 0xD5, +0x02, 0xD4, 0x05, 0x95, 0x00, 0x6C, 0x22, 0x6F, +0x80, 0xC5, 0x00, 0x94, 0x30, 0xF0, 0x20, 0x6D, +0xA6, 0xF6, 0x00, 0x4D, 0xF8, 0xEC, 0x44, 0x6C, +0x06, 0xD2, 0x12, 0xEF, 0x98, 0xE9, 0x12, 0xEC, +0x9D, 0xE7, 0x88, 0x6C, 0x98, 0xEA, 0x12, 0xEC, +0x9D, 0xE7, 0xF1, 0xE5, 0xFD, 0xE5, 0xA8, 0xF5, +0x1C, 0x4C, 0xC8, 0xF6, 0x0C, 0x4F, 0x02, 0x92, +0x00, 0x6D, 0xA0, 0xCC, 0x02, 0x4C, 0x4A, 0xEC, +0xA0, 0xCF, 0x02, 0x4F, 0xF8, 0x61, 0x00, 0x94, +0x06, 0x92, 0x01, 0x4C, 0x00, 0xD4, 0x05, 0x94, +0x01, 0x4C, 0x05, 0xD4, 0x02, 0x94, 0x22, 0x4C, +0x02, 0xD4, 0x00, 0x94, 0x02, 0x74, 0xD1, 0x61, +0xA0, 0xC3, 0xA1, 0xC3, 0xA2, 0xC3, 0x04, 0x95, +0x03, 0x94, 0x01, 0x49, 0x04, 0x4D, 0x04, 0xD5, +0x01, 0x95, 0x02, 0x4C, 0x02, 0x71, 0x44, 0x4D, +0x03, 0xD4, 0x03, 0x4B, 0x01, 0xD5, 0xAC, 0x61, +0xB0, 0x67, 0x01, 0x4A, 0x7F, 0x4D, 0x02, 0x72, +0x04, 0x4E, 0x09, 0x4D, 0x8A, 0x61, 0x09, 0x91, +0x08, 0x90, 0x05, 0x63, 0x20, 0xE8, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0x4C, 0xED, 0x4C, 0xEC, 0xCC, 0xEA, +0x4B, 0xEA, 0xC0, 0xF7, 0x42, 0x32, 0x30, 0xF0, +0x20, 0x68, 0x44, 0x32, 0xC0, 0xF3, 0x64, 0x98, +0x07, 0xD5, 0x04, 0xD2, 0xA4, 0x36, 0x08, 0x6A, +0x01, 0x6D, 0x06, 0xD4, 0x4D, 0xEE, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, 0x06, 0x92, +0x0F, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xE3, 0xF4, 0xA4, 0x9B, 0x23, 0xF3, +0x00, 0x6C, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF5, 0x44, 0x9A, 0x0E, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0xE3, 0xF4, 0xA4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF5, 0x48, 0x9A, 0x05, 0xD2, 0x06, 0x92, +0x22, 0x68, 0x07, 0x93, 0x18, 0xEA, 0x44, 0x6A, +0x00, 0x69, 0x12, 0xE8, 0x58, 0xEB, 0x04, 0x93, +0x12, 0xEA, 0x41, 0xE0, 0x88, 0x6A, 0x58, 0xEB, +0x12, 0xEA, 0x41, 0xE0, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x01, 0xE2, 0xA8, 0xF5, +0x1C, 0x48, 0xC0, 0xA8, 0x05, 0x92, 0x01, 0x6D, +0xC0, 0x36, 0x4D, 0xEE, 0x28, 0x32, 0x4D, 0xEE, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x02, 0x4E, +0x01, 0x49, 0x40, 0xEA, 0x11, 0x71, 0x02, 0x48, +0xEC, 0x61, 0x06, 0x92, 0x22, 0x68, 0x07, 0x93, +0x18, 0xEA, 0x44, 0x6A, 0x12, 0xE8, 0x58, 0xEB, +0x04, 0x93, 0x12, 0xEA, 0x41, 0xE0, 0x88, 0x6A, +0x58, 0xEB, 0x12, 0xEA, 0x41, 0xE0, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x01, 0xE2, +0x00, 0x6A, 0xC8, 0xF6, 0x0C, 0x48, 0x04, 0xD2, +0xC0, 0xA8, 0x05, 0x93, 0x04, 0x92, 0xC0, 0x36, +0x30, 0xF0, 0x20, 0x69, 0x6D, 0xEE, 0x48, 0x33, +0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0x6D, 0xEE, +0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x04, 0x93, 0x02, 0x48, 0x01, 0x4B, 0x11, 0x73, +0x04, 0xD3, 0xEA, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x99, 0xA3, 0xF4, 0xDC, 0x9B, +0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x99, 0xE3, 0xF4, 0xA4, 0x9B, 0x23, 0xF3, +0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0xF2, 0xF1, 0x86, 0x42, +0x30, 0xF0, 0x20, 0x6B, 0xE4, 0xF3, 0x14, 0x4A, +0xA6, 0xF6, 0x00, 0x4B, 0x88, 0x34, 0x44, 0x32, +0x91, 0xE3, 0x4D, 0xE3, 0x00, 0x68, 0x04, 0x4C, +0x08, 0x4B, 0x04, 0xD4, 0x05, 0xD3, 0x06, 0xD0, +0x07, 0xD0, 0x08, 0xD0, 0x04, 0x95, 0x01, 0x6C, +0x08, 0x93, 0x40, 0xA5, 0x30, 0xF0, 0x20, 0x69, +0x04, 0x36, 0x8C, 0xEA, 0x44, 0xE8, 0x4D, 0xE3, +0x41, 0xA5, 0x05, 0x95, 0x08, 0xD3, 0x8C, 0xEA, +0x07, 0x94, 0x64, 0x40, 0x44, 0xEB, 0x51, 0xE4, +0x40, 0xA5, 0x07, 0xD4, 0x03, 0x6C, 0x64, 0x33, +0x8C, 0xEA, 0x44, 0xEB, 0x04, 0x94, 0x06, 0x93, +0x01, 0x6D, 0x8C, 0xAC, 0x4D, 0xE3, 0x06, 0xD3, +0xC0, 0xF3, 0x64, 0x99, 0x08, 0x6A, 0x4D, 0xEE, +0x09, 0xD4, 0xAB, 0xED, 0x03, 0xF3, 0x00, 0x6C, +0x40, 0xEB, 0x08, 0x95, 0x07, 0x96, 0x06, 0x93, +0xC0, 0xF3, 0x44, 0x99, 0xAD, 0xEE, 0x6D, 0xEE, +0xE3, 0xF3, 0x10, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x09, 0x96, +0x01, 0x6D, 0xE3, 0xF3, 0x08, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x04, 0x94, 0x05, 0x95, 0x01, 0x48, +0x02, 0x4C, 0x01, 0x4D, 0x02, 0x70, 0x04, 0xD4, +0x05, 0xD5, 0xBC, 0x61, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x05, 0xD2, 0x00, 0x6A, +0x04, 0xD2, 0x04, 0x92, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x64, 0x98, 0x01, 0x69, 0x2B, 0xE9, +0x44, 0x36, 0x08, 0x6A, 0x4D, 0xEE, 0x03, 0xF3, +0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEB, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF5, +0xCC, 0x9B, 0x03, 0xF3, 0x04, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x05, 0x92, 0x07, 0x2A, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, 0xB1, 0x67, +0x80, 0x6E, 0x06, 0x10, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x08, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, 0x01, 0x69, +0xC0, 0xF3, 0x44, 0x98, 0x2B, 0xE9, 0x03, 0xF3, +0x0C, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0xC8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x14, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, +0xD0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF5, 0xD4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x1C, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF5, 0xD8, 0x9B, 0x23, 0xF3, +0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, +0x01, 0x4A, 0x02, 0x72, 0x04, 0xD2, 0x99, 0x61, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x00, 0xF2, 0x1C, 0x22, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF2, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF6, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, 0xB8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF4, 0x10, 0x69, +0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF4, 0xBC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0xB8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, +0x10, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF5, 0x18, 0x6C, 0xE1, 0xF7, +0x18, 0x6D, 0xE0, 0xF1, 0x1F, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, 0x10, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, +0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF1, 0x10, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x68, 0xF1, 0x04, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF4, 0x2C, 0x9A, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF0, 0x0C, 0x6C, 0xB1, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x08, 0xF1, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, 0x0C, 0x6C, +0x80, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x68, 0xF1, 0x0C, 0x6C, 0x80, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF0, 0x0C, 0x6C, 0x03, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, +0x0C, 0x6C, 0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x00, 0x6C, +0x03, 0x6D, 0x02, 0x6E, 0x40, 0xEA, 0x01, 0x69, +0xC0, 0xF3, 0x44, 0x98, 0x2B, 0xE9, 0x23, 0xF4, +0x18, 0x6C, 0xB1, 0x67, 0xD1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, 0x1C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF5, 0x1C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF5, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF5, +0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF5, 0x08, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF5, 0x0C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF5, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF5, +0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF5, 0x18, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF5, 0x1C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF5, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF5, +0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF5, 0x08, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF5, 0x0C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF5, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF5, +0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF5, 0x18, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF5, 0x18, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF5, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF5, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF5, 0x04, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF5, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF5, +0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF5, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF5, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF5, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF5, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF5, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF5, 0x04, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF5, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF5, +0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF5, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF5, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF5, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF5, +0x18, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0xC0, 0x9B, 0xC9, 0x12, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x04, 0xD2, 0x09, 0xF0, 0x4C, 0xA2, 0xE0, 0xF0, +0x1B, 0x22, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF5, 0xDC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF4, +0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x04, 0x93, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, 0x00, 0x6C, +0x68, 0xF4, 0xD2, 0xA3, 0x04, 0x6B, 0x0E, 0xF0, +0x00, 0x6D, 0x67, 0xEE, 0xC3, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, +0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0x68, 0xF4, +0xD2, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF5, 0x04, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x23, 0xF0, +0x10, 0x6C, 0x68, 0xF4, 0xD2, 0xA2, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4B, +0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, +0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0x68, 0xF4, +0xD2, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF5, 0x0C, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x23, 0xF0, +0x10, 0x6C, 0x68, 0xF4, 0xD2, 0xA2, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x10, 0x4B, +0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF5, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, +0x23, 0xF0, 0x10, 0x6C, 0x68, 0xF4, 0xD2, 0xA2, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, +0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, +0x18, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, +0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, 0x68, 0xF4, +0xD2, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF5, 0x04, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x28, 0xF1, +0x10, 0x6C, 0x68, 0xF4, 0xD2, 0xA2, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x08, 0x4B, +0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, +0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, 0x68, 0xF4, +0xD2, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF5, 0x0C, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x28, 0xF1, +0x10, 0x6C, 0x68, 0xF4, 0xD2, 0xA2, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x10, 0x4B, +0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF5, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, +0x28, 0xF1, 0x10, 0x6C, 0x68, 0xF4, 0xD2, 0xA2, +0xB1, 0x67, 0xC0, 0xF3, 0x44, 0x98, 0x67, 0xEE, +0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, +0x18, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x63, 0x11, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, +0x63, 0xF5, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF5, 0x1C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF5, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, +0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, 0x08, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF5, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF5, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, +0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, 0x14, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF5, 0x18, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF5, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, 0x04, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF5, 0x08, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF5, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, +0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF5, 0x1C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF5, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, +0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, 0x08, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF5, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF5, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, +0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, 0x14, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF5, 0x18, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF5, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, 0x04, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF5, 0x08, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF5, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, +0x10, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x30, 0xF0, +0x20, 0x68, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF5, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, +0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF5, 0x18, 0x6C, 0xE1, 0xF7, +0x18, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF1, 0x30, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0x63, 0xF0, 0x04, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x68, 0xF1, 0x04, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF4, +0x2C, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x0C, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, 0x0C, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x63, 0xF0, 0x0C, 0x6C, 0x80, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x68, 0xF1, 0x0C, 0x6C, 0x80, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0x6D, +0xC5, 0x67, 0x03, 0xF0, 0x0C, 0x6C, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0x6D, 0xC5, 0x67, +0x08, 0xF1, 0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF2, 0x00, 0x6C, 0x03, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x06, 0x67, 0xA3, 0xF5, +0xD8, 0x9B, 0x09, 0xD5, 0x01, 0x6D, 0x24, 0x67, +0x0B, 0xD7, 0x63, 0xF5, 0x10, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x00, 0x6A, 0x80, 0x98, 0x1F, 0xF7, +0x00, 0x6B, 0x8C, 0xEB, 0x02, 0xF0, 0x00, 0x73, +0x01, 0x60, 0x09, 0x2B, 0x30, 0xF0, 0x20, 0x6C, +0x60, 0x98, 0x43, 0xF1, 0x9C, 0x9C, 0x6D, 0xE4, +0x80, 0x99, 0x80, 0xDB, 0x07, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF1, 0x60, 0x9B, 0x91, 0xE3, +0x60, 0x99, 0x60, 0xDC, 0x01, 0x4A, 0xFF, 0x6B, +0x6C, 0xEA, 0x03, 0x72, 0x04, 0x48, 0x04, 0x49, +0xE1, 0x61, 0x00, 0x68, 0x0B, 0x92, 0x30, 0xF0, +0x20, 0x69, 0x01, 0x6D, 0x11, 0xE2, 0x09, 0x92, +0x80, 0xAC, 0xAB, 0xED, 0x0D, 0xE2, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x99, 0x04, 0x48, 0x40, 0xEA, +0x2C, 0x70, 0xF0, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x6F, 0xF6, 0x5D, 0xA2, 0x01, 0x72, 0x0A, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, +0x03, 0xF0, 0x0C, 0x6C, 0x23, 0xF1, 0xB0, 0x9B, +0x00, 0x6E, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF1, 0xB0, 0x9B, +0x03, 0xF0, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x6F, 0xF6, 0x5F, 0xA2, +0x01, 0x72, 0x0C, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, +0x08, 0xF1, 0x0C, 0x6C, 0x23, 0xF1, 0xB0, 0x9B, +0x00, 0x6E, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, +0x23, 0xF1, 0xB0, 0x9B, 0x08, 0xF1, 0x0C, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xAF, 0xF6, 0x4C, 0xA2, 0x1E, 0x22, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, +0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF6, +0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF4, 0x38, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0xA3, 0xF0, 0x04, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA8, 0xF1, 0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, +0x50, 0x9A, 0x01, 0x6B, 0x6B, 0xEB, 0x30, 0xF0, +0x20, 0x68, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF2, 0xA4, 0x9B, +0x23, 0xF6, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF5, 0xBC, 0x9B, 0xC3, 0xF4, 0x10, 0x6C, +0x07, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF1, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF5, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6E, 0xCB, 0xEE, +0xA6, 0x67, 0x23, 0xF4, 0x18, 0x6C, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x14, 0x6C, +0x00, 0xF3, 0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF5, 0xA0, 0x9B, 0x21, 0xF0, 0x04, 0x6C, +0x03, 0x6E, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, 0xE0, 0x9B, +0xFF, 0x6A, 0x04, 0x6B, 0xC0, 0xA7, 0x4C, 0xED, +0x4C, 0xEC, 0x4C, 0xEE, 0xCD, 0xEB, 0x4C, 0xEB, +0x60, 0xC7, 0x06, 0x2D, 0x07, 0x6B, 0x07, 0x24, +0x01, 0x74, 0x07, 0x6B, 0x12, 0x61, 0x0C, 0x10, +0x07, 0x2C, 0x79, 0x6B, 0x6B, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF5, 0x44, 0x9A, 0x08, 0x10, +0x01, 0x74, 0x07, 0x61, 0x79, 0x6B, 0x6B, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF5, 0x48, 0x9A, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF4, +0x40, 0x9A, 0xC0, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6E, 0x30, 0xF0, 0x20, 0x68, 0xCC, 0xEC, +0xC0, 0xF3, 0x44, 0x98, 0xAC, 0xEE, 0x01, 0x69, +0x08, 0x6B, 0x2B, 0xE9, 0xC4, 0x36, 0x04, 0xD4, +0xB1, 0x67, 0x03, 0xF3, 0x00, 0x6C, 0x6D, 0xEE, +0x40, 0xEA, 0x04, 0x92, 0x12, 0x2A, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, +0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, +0x18, 0x6C, 0xB1, 0x67, 0xC3, 0xF5, 0xCC, 0x9B, +0x11, 0x10, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF5, 0xD0, 0x9B, 0xC3, 0xF3, +0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0xDC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x30, 0xF0, 0x20, 0x68, +0xC3, 0xF3, 0x18, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, +0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, +0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x00, 0x68, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF5, 0xB4, 0x9A, +0x02, 0xF7, 0x00, 0x6C, 0x80, 0x18, 0xEA, 0x3C, +0x20, 0x6B, 0x4C, 0xEB, 0x0A, 0x2B, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, +0x01, 0x48, 0x40, 0xEA, 0x0A, 0x70, 0xEC, 0x61, +0x0A, 0x68, 0x50, 0x67, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x68, +0x8C, 0xE8, 0x80, 0x18, 0x8A, 0x21, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF5, 0xD8, 0x9A, 0x01, 0x69, +0x2B, 0xE9, 0x0D, 0xEE, 0xB1, 0x67, 0x02, 0xF7, +0x00, 0x6C, 0x80, 0x18, 0xFF, 0x3C, 0xB1, 0x67, +0x02, 0xF7, 0x08, 0x6C, 0x80, 0x18, 0xEA, 0x3C, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0xF7, 0x1F, 0x68, +0x25, 0x67, 0x0C, 0xD6, 0x8C, 0xE8, 0x37, 0x25, +0x61, 0x45, 0x00, 0x6A, 0x0E, 0x2B, 0x80, 0x18, +0x8A, 0x21, 0x01, 0x69, 0x0C, 0x96, 0x2B, 0xE9, +0x02, 0xF7, 0x04, 0x6C, 0xB1, 0x67, 0x80, 0x18, +0xFF, 0x3C, 0x02, 0xF7, 0x00, 0x6C, 0xB1, 0x67, +0x1F, 0x10, 0x71, 0x67, 0x66, 0xEA, 0x01, 0x6C, +0x8C, 0xEB, 0x04, 0x2B, 0x01, 0x4A, 0x20, 0x72, +0xF8, 0x61, 0x00, 0x6A, 0x90, 0x67, 0x04, 0xD2, +0x2F, 0xE9, 0x80, 0x18, 0x99, 0x21, 0x4C, 0xE9, +0x80, 0x18, 0x8A, 0x21, 0x0C, 0x96, 0x04, 0x92, +0x01, 0x6D, 0x02, 0xF7, 0x04, 0x6C, 0xC4, 0xEA, +0xAB, 0xED, 0x2D, 0xEE, 0x80, 0x18, 0xFF, 0x3C, +0x01, 0x6D, 0x02, 0xF7, 0x00, 0x6C, 0xAB, 0xED, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF5, 0xDC, 0x9A, +0x0D, 0xEE, 0x80, 0x18, 0xFF, 0x3C, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x38, 0x6C, 0x18, 0xF0, +0x00, 0x6D, 0x01, 0x6E, 0x80, 0x18, 0xA9, 0x21, +0x38, 0x6C, 0x01, 0xF4, 0x00, 0x6D, 0x01, 0x6E, +0x80, 0x18, 0xA9, 0x21, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x38, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x03, 0x6E, +0x80, 0x18, 0xA9, 0x21, 0x38, 0x6C, 0x00, 0xF3, +0x00, 0x6D, 0x03, 0x6E, 0x80, 0x18, 0xA9, 0x21, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, +0x05, 0x22, 0x80, 0x18, 0xD5, 0x21, 0x80, 0x18, +0xCC, 0x21, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xCF, 0xF6, 0xC4, 0x9A, 0x01, 0x6D, 0x38, 0x6C, +0xAB, 0xED, 0x80, 0x18, 0xA9, 0x21, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x00, 0x6A, 0x09, 0xD5, +0x27, 0x67, 0xA0, 0x9E, 0x1F, 0xF7, 0x00, 0x6B, +0xAC, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, +0x08, 0x2B, 0x30, 0xF0, 0x20, 0x6D, 0x60, 0x9E, +0x43, 0xF1, 0xBC, 0x9D, 0x6D, 0xE5, 0x60, 0x9B, +0x06, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, +0x60, 0x9B, 0xB5, 0xE3, 0x60, 0x9D, 0x55, 0xE4, +0x04, 0x4A, 0x0C, 0x72, 0x60, 0xDD, 0x04, 0x4E, +0xE4, 0x61, 0x00, 0x68, 0x09, 0xE1, 0x80, 0xAA, +0x01, 0x6D, 0xAB, 0xED, 0x80, 0x18, 0x72, 0x3C, +0x09, 0x94, 0x0D, 0xE4, 0x04, 0x48, 0x2C, 0x70, +0x40, 0xDB, 0xF4, 0x61, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0x4C, 0xED, 0x4C, 0xEC, 0xCC, 0xEA, +0x4B, 0xEA, 0xC0, 0xF7, 0x42, 0x32, 0x30, 0xF0, +0x20, 0x68, 0x44, 0x32, 0xC0, 0xF3, 0x64, 0x98, +0x06, 0xD5, 0x04, 0xD2, 0xA4, 0x36, 0x08, 0x6A, +0x01, 0x6D, 0x05, 0xD4, 0x4D, 0xEE, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, 0x05, 0x92, +0x0A, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0xE3, 0xF4, +0xA4, 0x9B, 0x03, 0x6E, 0x09, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF4, +0xA4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF2, +0xA4, 0x9B, 0xC3, 0xF3, 0x14, 0x69, 0x91, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF4, 0xB8, 0x9B, +0x91, 0x67, 0x10, 0x6E, 0x40, 0xEA, 0x05, 0x92, +0x22, 0x69, 0x06, 0x93, 0x38, 0xEA, 0x44, 0x6A, +0x12, 0xE9, 0x58, 0xEB, 0x04, 0x93, 0x12, 0xEA, +0x45, 0xE1, 0x88, 0x6A, 0x58, 0xEB, 0x12, 0xEA, +0x45, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x21, 0xE2, 0x25, 0xE2, 0x00, 0x6A, +0xA8, 0xF5, 0x1C, 0x48, 0xC8, 0xF6, 0x0C, 0x49, +0x04, 0xD2, 0x04, 0x93, 0x01, 0x6D, 0xC3, 0xF3, +0x18, 0x6C, 0x68, 0x36, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x7C, 0x9B, 0xAB, 0xED, 0x6D, 0xEE, +0x40, 0xEA, 0x01, 0x6D, 0xE3, 0xF3, 0x1C, 0x6C, +0xAB, 0xED, 0x80, 0x18, 0x72, 0x3C, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0x60, 0x9B, 0x4C, 0xEB, +0x62, 0x33, 0x62, 0x33, 0x60, 0xC8, 0xE1, 0xF7, +0x1F, 0x6B, 0x4C, 0xEB, 0x04, 0x92, 0x60, 0xC9, +0x02, 0x48, 0x01, 0x4A, 0x11, 0x72, 0x04, 0xD2, +0x02, 0x49, 0xD7, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF4, 0xA4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xFF, 0x6A, 0x24, 0x67, 0xA6, 0xF6, 0x00, 0x48, +0x4C, 0xED, 0x4C, 0xE9, 0x68, 0xF4, 0x45, 0xA0, +0x06, 0xD5, 0x24, 0x36, 0x07, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x9A, 0x01, 0x6D, +0x08, 0x6A, 0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF4, 0xA4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x68, 0xF4, 0x44, 0xA0, +0x4B, 0x2A, 0x06, 0x92, 0x03, 0x22, 0x12, 0x6A, +0x68, 0xF4, 0x4A, 0xC0, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x6B, 0x0F, 0xF3, 0xCA, 0xA3, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, +0xFF, 0x6D, 0x40, 0xEA, 0x01, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0xFC, 0x9A, +0x30, 0xF0, 0x20, 0x6B, 0xAE, 0xF7, 0x18, 0x4B, +0x83, 0x67, 0xB1, 0x67, 0xDE, 0x6E, 0x06, 0xD3, +0x80, 0x18, 0xE1, 0x4E, 0x06, 0x94, 0xE1, 0xF7, +0x1F, 0x6F, 0x20, 0x6A, 0xB1, 0x67, 0x56, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x18, 0x6C, 0x02, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF5, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x23, 0xF3, 0x04, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x0C, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x18, 0x6E, 0x49, 0x10, +0x06, 0x92, 0x03, 0x22, 0x12, 0x6A, 0x68, 0xF4, +0x4A, 0xC0, 0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF1, 0xFC, 0x9A, 0x30, 0xF0, +0x20, 0x68, 0xAE, 0xF7, 0x18, 0x48, 0x90, 0x67, +0xB1, 0x67, 0xDE, 0x6E, 0x80, 0x18, 0xE1, 0x4E, +0xE1, 0xF7, 0x1F, 0x6F, 0x90, 0x67, 0x00, 0x6A, +0xB1, 0x67, 0x56, 0x6E, 0x30, 0xF0, 0x20, 0x68, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6B, 0x0F, 0xF3, 0xCA, 0xA3, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x18, 0x6C, 0x02, 0x6D, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF5, 0xC4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, +0x04, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x38, 0x6E, 0x40, 0xEA, 0x07, 0x93, 0x06, 0x73, +0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, +0x1F, 0x6D, 0x08, 0x6E, 0x40, 0xEA, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x06, 0xD2, 0xA6, 0xF6, 0x00, 0x4B, 0x68, 0xF4, +0x45, 0xA3, 0x07, 0xD3, 0x06, 0x93, 0x30, 0xF0, +0x20, 0x68, 0x08, 0xD2, 0x64, 0x31, 0x08, 0x6A, +0x4D, 0xE9, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xD1, 0x67, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, +0x14, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x3F, 0x6D, 0xC5, 0x67, +0xC3, 0xF3, 0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xD1, 0x67, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF5, 0x14, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF4, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x00, 0x69, 0x91, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0xE0, 0xF3, 0x00, 0x6D, 0x12, 0x6E, 0x40, 0xEA, +0x07, 0x93, 0x68, 0xF4, 0x44, 0xA3, 0x11, 0x2A, +0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x69, 0x06, 0x95, 0xC3, 0xF1, +0xFC, 0x9A, 0xAE, 0xF7, 0x18, 0x49, 0x91, 0x67, +0xDE, 0x6E, 0x80, 0x18, 0xE1, 0x4E, 0x20, 0x6A, +0x10, 0x10, 0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x69, 0x06, 0x95, +0xC3, 0xF1, 0xFC, 0x9A, 0xAE, 0xF7, 0x18, 0x49, +0x91, 0x67, 0xDE, 0x6E, 0x80, 0x18, 0xE1, 0x4E, +0x00, 0x6A, 0x06, 0x95, 0x91, 0x67, 0x56, 0x6E, +0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, +0x0C, 0x6C, 0xFF, 0x6D, 0x12, 0x6E, 0x40, 0xEA, +0x08, 0x92, 0x06, 0x72, 0x0A, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, +0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x08, 0x6E, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, +0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xFF, 0x68, 0x68, 0xF4, 0x65, 0xA2, 0x8C, 0xE8, +0x06, 0xD2, 0x04, 0x32, 0x07, 0xD2, 0x08, 0xD3, +0x07, 0x93, 0x30, 0xF0, 0x20, 0x69, 0x08, 0x6A, +0x4D, 0xEB, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, +0xC3, 0x67, 0x07, 0xD3, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF5, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0x3F, 0x6D, 0xC5, 0x67, +0xC3, 0xF3, 0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0x07, 0x96, 0x01, 0x6D, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF4, 0xA4, 0x9B, 0xC0, 0xF3, +0x44, 0x99, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, +0x00, 0x6C, 0xE0, 0xF3, 0x00, 0x6D, 0x12, 0x6E, +0x40, 0xEA, 0x06, 0x92, 0x68, 0xF4, 0x44, 0xA2, +0x06, 0xD2, 0x5B, 0x2A, 0x07, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF5, 0xE8, 0x9A, +0x30, 0xF0, 0x20, 0x69, 0xAE, 0xF7, 0x18, 0x49, +0x91, 0x67, 0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, +0xE1, 0x4E, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, +0x9E, 0x6E, 0x20, 0x6F, 0x04, 0xD3, 0x80, 0x18, +0xE1, 0x4E, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x9E, 0x6E, 0x00, 0xF4, 0x00, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF1, 0x1C, 0x4A, 0xE0, 0x9A, 0x01, 0x6B, +0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0xE1, 0x4E, 0x10, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x01, 0x6B, +0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, +0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF1, 0x1C, 0x4B, 0xE0, 0x9B, +0x06, 0x92, 0x91, 0x67, 0xB0, 0x67, 0x18, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x06, 0x92, +0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, 0x01, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x04, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, 0x70, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x06, 0x93, +0x5A, 0x10, 0x07, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF5, 0xE8, 0x9A, 0x30, 0xF0, +0x20, 0x69, 0xAE, 0xF7, 0x18, 0x49, 0x91, 0x67, +0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, 0xE1, 0x4E, +0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, +0x20, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, +0x00, 0xF4, 0x00, 0x6F, 0x04, 0xD3, 0x80, 0x18, +0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, +0x1C, 0x4B, 0xE0, 0x9B, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0xDE, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x01, 0x6B, 0x91, 0x67, +0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, 0x04, 0xD3, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF1, 0x1C, 0x4B, 0xE0, 0x9B, 0x01, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x18, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x33, 0x6E, 0xE2, 0x67, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x04, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x08, 0x6E, 0x70, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x00, 0x6B, 0x91, 0x67, +0x30, 0xF0, 0x20, 0x69, 0xB0, 0x67, 0xEF, 0x6E, +0x04, 0x6F, 0xAE, 0xF7, 0x18, 0x49, 0x04, 0xD3, +0x80, 0x18, 0xE1, 0x4E, 0x00, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x57, 0x6E, 0x01, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0xEF, 0x6E, 0x10, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, +0x0F, 0xF3, 0x44, 0xA2, 0x01, 0x22, 0x20, 0x6A, +0x7F, 0x6F, 0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, +0x30, 0xF0, 0x20, 0x69, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0xC0, 0xF3, 0x44, 0x99, 0xC3, 0xF3, +0x0C, 0x6C, 0xFF, 0x6D, 0x09, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, 0x0C, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xB0, 0x67, 0x10, 0x6F, +0x01, 0x6A, 0xAE, 0xF7, 0x18, 0x4C, 0xEF, 0x6E, +0x30, 0xF0, 0x20, 0x68, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, +0xFF, 0x6D, 0x12, 0x6E, 0x40, 0xEA, 0x08, 0x92, +0x06, 0x72, 0x08, 0x61, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x08, 0x6E, 0x07, 0x10, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x38, 0x6E, 0x40, 0xEA, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x68, 0xF4, 0x65, 0xA2, 0x30, 0xF0, 0x20, 0x68, +0xFF, 0x69, 0x8C, 0xE9, 0x07, 0xD3, 0xC0, 0xF3, +0x64, 0x98, 0x06, 0xD2, 0x24, 0x36, 0x08, 0x6A, +0x01, 0x6D, 0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF5, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0xE3, 0xF5, 0xCC, 0x9B, 0x01, 0x6D, 0x23, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x06, 0x93, +0x68, 0xF4, 0x44, 0xA3, 0x03, 0x2A, 0x81, 0xF0, +0x07, 0x4A, 0x02, 0x10, 0xC1, 0xF0, 0x0A, 0x6A, +0x30, 0xF0, 0x20, 0x6C, 0xAE, 0xF7, 0x18, 0x4C, +0xB1, 0x67, 0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, +0x09, 0x6E, 0x40, 0xEA, 0x07, 0x92, 0x06, 0x72, +0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, +0x1F, 0x6D, 0x08, 0x6E, 0x09, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, +0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x38, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xFF, 0x68, 0x8C, 0xE8, 0x68, 0xF4, 0x65, 0xA2, +0x06, 0xD2, 0x04, 0x32, 0x07, 0xD2, 0x08, 0xD3, +0x07, 0x93, 0x30, 0xF0, 0x20, 0x69, 0x08, 0x6A, +0x4D, 0xEB, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, +0xC3, 0x67, 0x07, 0xD3, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF5, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0x3F, 0x6D, 0xC5, 0x67, +0xC3, 0xF3, 0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0x07, 0x96, 0x01, 0x6D, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF4, 0xA4, 0x9B, 0xC0, 0xF3, +0x44, 0x99, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x30, 0xF0, +0x20, 0x69, 0xAE, 0xF7, 0x18, 0x49, 0x23, 0xF3, +0x00, 0x6C, 0xE0, 0xF3, 0x00, 0x6D, 0x12, 0x6E, +0x40, 0xEA, 0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0xDF, 0x6E, 0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x00, 0x6B, 0x91, 0x67, 0xB0, 0x67, +0x9E, 0x6E, 0x20, 0x6F, 0x04, 0xD3, 0x80, 0x18, +0xE1, 0x4E, 0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x9E, 0x6E, 0x00, 0xF4, 0x00, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x06, 0x93, 0x68, 0xF4, +0x64, 0xA3, 0x06, 0xD3, 0x35, 0x2B, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF1, 0x1C, 0x4B, 0xE0, 0x9B, +0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x81, 0xF0, +0x07, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, +0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0xEF, 0x6E, 0x04, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, +0x1C, 0x4A, 0x06, 0x93, 0xE0, 0x9A, 0x91, 0x67, +0xB0, 0x67, 0x18, 0x6E, 0x04, 0xD3, 0x80, 0x18, +0xE1, 0x4E, 0x04, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x08, 0x6E, 0x70, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x06, 0x93, 0x04, 0xD3, 0x3C, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0x1C, 0x4B, +0xE0, 0x9B, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0xDE, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x61, 0xF0, 0x08, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF1, 0x1C, 0x4A, 0xE0, 0x9A, 0x01, 0x6B, +0x91, 0x67, 0xB0, 0x67, 0x18, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0xE1, 0x4E, 0x00, 0x6B, 0x91, 0x67, +0xB0, 0x67, 0x33, 0x6E, 0x01, 0x6F, 0x04, 0xD3, +0x80, 0x18, 0xE1, 0x4E, 0x04, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x08, 0x6E, 0x70, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x00, 0x6A, 0x04, 0xD2, +0x91, 0x67, 0x30, 0xF0, 0x20, 0x69, 0xB0, 0x67, +0xEF, 0x6E, 0x04, 0x6F, 0xAE, 0xF7, 0x18, 0x49, +0x80, 0x18, 0xE1, 0x4E, 0x00, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x57, 0x6E, 0x01, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0xEF, 0x6E, 0x10, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, +0x0F, 0xF3, 0x44, 0xA2, 0x01, 0x22, 0x20, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, 0x7F, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0xC3, 0xF3, +0x0C, 0x6C, 0xFF, 0x6D, 0x09, 0x6E, 0x40, 0xEA, +0x08, 0x93, 0x06, 0x73, 0x0A, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, +0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x08, 0x6E, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, +0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF3, +0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x14, 0x4A, 0xE0, 0x9A, 0x30, 0xF0, +0x20, 0x68, 0x00, 0x69, 0xAE, 0xF7, 0x18, 0x48, +0x0E, 0xD4, 0x0F, 0xD5, 0x90, 0x67, 0xB1, 0x67, +0xEF, 0x6E, 0x04, 0xD1, 0x80, 0x18, 0xE1, 0x4E, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x14, 0x4B, +0xE0, 0x9B, 0x90, 0x67, 0x01, 0x6D, 0xEF, 0x6E, +0x04, 0xD1, 0x80, 0x18, 0xE1, 0x4E, 0x0E, 0x90, +0x0F, 0x91, 0x00, 0x6A, 0x07, 0xD2, 0x30, 0xF0, +0x20, 0x6B, 0xAE, 0xF7, 0x18, 0x4B, 0x06, 0xD3, +0x40, 0x99, 0xC0, 0x98, 0x83, 0x67, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x14, 0x4A, +0xE0, 0x9A, 0x00, 0x6D, 0x80, 0x18, 0xE1, 0x4E, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x14, 0x4B, +0xC0, 0x98, 0x41, 0x99, 0xE0, 0x9B, 0x06, 0x94, +0x01, 0x6D, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x07, 0x92, 0x04, 0x48, 0x08, 0x49, 0x01, 0x4A, +0x07, 0xD2, 0x07, 0x93, 0xFF, 0x6A, 0x4C, 0xEB, +0x03, 0x73, 0x58, 0x67, 0x07, 0xD3, 0x08, 0xD2, +0xD6, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, +0x1C, 0x9A, 0x06, 0x94, 0x78, 0x67, 0xF0, 0x67, +0x00, 0x6D, 0xDE, 0x6E, 0x04, 0xD3, 0x80, 0x18, +0xE1, 0x4E, 0x08, 0x92, 0x06, 0x94, 0xF0, 0x67, +0x01, 0x6D, 0xDE, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF5, 0xB4, 0x9B, +0xC0, 0xF3, 0x44, 0x9A, 0xA3, 0xF3, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x34, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF2, 0x0C, 0x4A, 0x40, 0x9A, 0x30, 0xF0, +0x20, 0x68, 0xAE, 0xF7, 0x18, 0x48, 0x90, 0x67, +0xF1, 0x67, 0x00, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x04, 0x6B, 0x90, 0x67, +0x00, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD3, +0x80, 0x18, 0xE1, 0x4E, 0x90, 0x67, 0xF1, 0x67, +0x03, 0x6A, 0x00, 0x6D, 0x3E, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF5, 0x50, 0x9A, 0x90, 0x67, 0xF1, 0x67, +0x00, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x00, 0x6B, 0xA3, 0x67, 0x90, 0x67, +0xF1, 0x67, 0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, +0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, +0x0C, 0x4A, 0x40, 0x9A, 0x90, 0x67, 0xF1, 0x67, +0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x04, 0x6B, 0x90, 0x67, 0x01, 0x6D, +0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD3, 0x80, 0x18, +0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF5, +0x54, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, +0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x90, 0x67, 0xF1, 0x67, 0x00, 0x6A, 0x01, 0x6D, +0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, 0x0C, 0x4B, +0x60, 0x9B, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, +0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, +0x90, 0x67, 0x06, 0x6A, 0x00, 0x6D, 0x33, 0x6E, +0x0F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x03, 0x6B, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, +0x3E, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF5, 0x58, 0x9A, +0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, 0x3F, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x00, 0x6A, +0x90, 0x67, 0xF1, 0x67, 0xA2, 0x67, 0xEF, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF2, 0x0C, 0x4B, 0x60, 0x9B, +0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, 0xEF, 0x6E, +0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, 0x90, 0x67, +0x06, 0x6A, 0x01, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF5, 0x5C, 0x9A, 0x90, 0x67, +0xF1, 0x67, 0x01, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x00, 0x6B, 0x90, 0x67, +0xF1, 0x67, 0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF2, 0x0C, 0x4A, 0x40, 0x9A, 0x90, 0x67, +0xF1, 0x67, 0x00, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x07, 0x6B, 0x90, 0x67, +0x00, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD3, +0x80, 0x18, 0xE1, 0x4E, 0x90, 0x67, 0xF1, 0x67, +0x03, 0x6A, 0x00, 0x6D, 0x3E, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF6, 0x40, 0x9A, 0x90, 0x67, 0xF1, 0x67, +0x00, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x00, 0x6B, 0xA3, 0x67, 0x90, 0x67, +0xF1, 0x67, 0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, +0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, +0x0C, 0x4A, 0x40, 0x9A, 0x90, 0x67, 0xF1, 0x67, +0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x07, 0x6B, 0x90, 0x67, 0x01, 0x6D, +0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD3, 0x80, 0x18, +0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF6, +0x44, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, +0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x90, 0x67, 0xF1, 0x67, 0x00, 0x6A, 0x01, 0x6D, +0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x00, 0x6B, 0xA3, 0x67, 0x90, 0x67, 0xF1, 0x67, +0x19, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, +0x90, 0x67, 0xF1, 0x67, 0x00, 0x6A, 0x01, 0x6D, +0x19, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, +0x4C, 0xED, 0x06, 0xD4, 0x07, 0xD5, 0x01, 0x68, +0x00, 0x69, 0x85, 0xF5, 0x1C, 0x6C, 0xFF, 0x6D, +0x80, 0x18, 0x72, 0x3C, 0x55, 0x72, 0x11, 0x61, +0x07, 0x92, 0x03, 0x2A, 0x00, 0x68, 0x50, 0x67, +0x17, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF4, +0xA8, 0x9A, 0x03, 0xF3, 0x08, 0x6C, 0xFF, 0x68, +0x80, 0x18, 0x72, 0x3C, 0x4C, 0xE8, 0x00, 0x6A, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x64, 0x6C, 0x01, 0x49, 0x40, 0xEA, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE9, 0x01, 0x6A, +0xA1, 0xF3, 0x18, 0x59, 0x02, 0x61, 0x01, 0x68, +0x01, 0x10, 0xD7, 0x2A, 0x06, 0x95, 0x30, 0xF0, +0x20, 0x69, 0xAE, 0xF7, 0x18, 0x49, 0x91, 0x67, +0x00, 0x6A, 0x8F, 0x6E, 0x08, 0xF0, 0x00, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x01, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0x95, +0xE3, 0xF5, 0xE8, 0x9A, 0x91, 0x67, 0x00, 0x6E, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x30, 0xF0, +0x20, 0x69, 0x40, 0xEA, 0x06, 0x92, 0x01, 0x6D, +0x08, 0x6B, 0x44, 0x36, 0xC0, 0xF3, 0x44, 0x99, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x6D, 0xEE, +0x40, 0xEA, 0x0A, 0x28, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, 0x00, 0x6C, +0xC3, 0xF4, 0xB4, 0x9B, 0x02, 0x6E, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, +0xC3, 0xF4, 0xB4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF3, 0x10, 0x6C, +0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x00, 0x6A, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x00, 0x68, 0x05, 0xD5, +0x04, 0xD4, 0x05, 0x92, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x14, 0x4B, 0xE0, 0x9B, 0xC0, 0x9A, +0x30, 0xF0, 0x20, 0x69, 0xAE, 0xF7, 0x18, 0x49, +0x91, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x9C, 0x4E, +0x04, 0x93, 0x91, 0x67, 0x01, 0x6D, 0x40, 0xDB, +0x05, 0x92, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x14, 0x4B, 0xE0, 0x9B, 0xC0, 0x9A, 0x01, 0x48, +0x80, 0x18, 0x9C, 0x4E, 0x04, 0x93, 0x41, 0xDB, +0xFF, 0x6A, 0x4C, 0xE8, 0x05, 0x92, 0x08, 0x4B, +0x03, 0x70, 0x04, 0x4A, 0x05, 0xD2, 0x04, 0xD3, +0xD8, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x04, 0x67, +0x30, 0xF0, 0x20, 0x6A, 0x2C, 0xE8, 0xC0, 0xF3, +0x44, 0x9A, 0x08, 0x6B, 0x04, 0x36, 0x01, 0x6D, +0x6D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0xF4, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xAE, 0xF7, +0x18, 0x4C, 0xB0, 0x67, 0x58, 0x6E, 0x80, 0x18, +0x9C, 0x4E, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF6, +0x68, 0x9B, 0x4C, 0xEB, 0x62, 0x33, 0x7A, 0x33, +0x2C, 0xEB, 0x0B, 0x23, 0x3F, 0x73, 0x09, 0x60, +0x07, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, 0x62, 0x32, +0x2C, 0xEA, 0x03, 0x22, 0x3F, 0x72, 0x00, 0x6A, +0x56, 0x61, 0x30, 0xF0, 0x20, 0x69, 0xAE, 0xF7, +0x18, 0x49, 0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x57, 0x6E, 0x01, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0xEF, 0x6E, 0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, 0x0F, 0xF3, +0x44, 0xA2, 0x01, 0x22, 0x20, 0x6A, 0x91, 0x67, +0x30, 0xF0, 0x20, 0x69, 0xAE, 0xF7, 0x18, 0x49, +0xB0, 0x67, 0x33, 0x6E, 0x7F, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x20, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x08, 0x6E, 0x07, 0xF7, 0x00, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF6, 0xE8, 0x9A, 0x20, 0x6B, +0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x14, 0x4A, 0xE0, 0x9A, 0x91, 0x67, +0xB0, 0x67, 0x08, 0x6E, 0x80, 0x18, 0x9C, 0x4E, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x14, 0x4B, +0xE0, 0x9B, 0x91, 0x67, 0xB0, 0x67, 0x58, 0x6E, +0x80, 0x18, 0x9C, 0x4E, 0x00, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0xEF, 0x6E, 0x10, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x01, 0x6A, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x68, 0x0C, 0xEC, 0x01, 0x74, 0xAC, 0xE8, +0x80, 0xF0, 0x0E, 0x60, 0x07, 0x24, 0x02, 0x74, +0xA0, 0xF0, 0x00, 0x60, 0x03, 0x74, 0xA0, 0xF0, +0x01, 0x60, 0xA5, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xE8, 0xF7, 0x64, 0x9A, +0x30, 0xF0, 0x20, 0x6D, 0x30, 0xF0, 0x20, 0x6C, +0xE8, 0xF7, 0x68, 0xDA, 0x30, 0xF0, 0x20, 0x6F, +0x30, 0xF0, 0x20, 0x6B, 0x8F, 0xF6, 0x1C, 0x4D, +0x8F, 0xF6, 0x14, 0x4C, 0x8F, 0xF6, 0x10, 0x4B, +0x6F, 0xF4, 0x1E, 0x4F, 0x00, 0x69, 0x40, 0x9D, +0xE4, 0xF3, 0x0C, 0x41, 0x04, 0x30, 0x42, 0xDD, +0x40, 0xAC, 0x05, 0xD7, 0x42, 0xCC, 0x40, 0xA3, +0x42, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x01, 0xE2, 0x00, 0x6A, 0x04, 0x48, +0x04, 0xD2, 0x40, 0xA0, 0x22, 0x6E, 0x07, 0xD3, +0x44, 0xC0, 0x04, 0x92, 0xD8, 0xEA, 0x44, 0x6A, +0x12, 0xEE, 0x58, 0xE9, 0x12, 0xEA, 0x49, 0xE6, +0x30, 0xF0, 0x20, 0x6E, 0xA6, 0xF6, 0x00, 0x4E, +0x1A, 0x65, 0x49, 0xE6, 0xA8, 0xF5, 0x1C, 0x4A, +0x06, 0xD2, 0x58, 0x67, 0x59, 0xE6, 0x06, 0x92, +0xC8, 0xF6, 0x0C, 0x4E, 0x60, 0xAA, 0x80, 0xF0, +0x68, 0xCA, 0x60, 0xAE, 0x02, 0x4A, 0x80, 0xF0, +0x68, 0xCE, 0x05, 0x93, 0x02, 0x4E, 0x6A, 0xEA, +0xF5, 0x61, 0x04, 0x92, 0x07, 0x93, 0x01, 0x48, +0x01, 0x4A, 0x04, 0xD2, 0x05, 0x92, 0x22, 0x4A, +0x05, 0xD2, 0x04, 0x92, 0x02, 0x72, 0xD1, 0x61, +0x01, 0x49, 0x02, 0x71, 0x04, 0x4D, 0x02, 0x4C, +0x01, 0x4B, 0x44, 0x4F, 0xB8, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x8F, 0xF6, 0x10, 0x4B, 0x44, 0x43, +0xA7, 0x43, 0x16, 0x4D, 0xC2, 0x67, 0x00, 0x6C, +0x80, 0xC3, 0x01, 0x4B, 0x00, 0x6C, 0xCA, 0xEB, +0x80, 0xCA, 0xFF, 0xF7, 0x88, 0xC2, 0x20, 0xF0, +0x85, 0xC2, 0xFF, 0xF7, 0x89, 0xC2, 0x20, 0xF0, +0x86, 0xC2, 0x80, 0xC5, 0x81, 0xC5, 0x82, 0xC5, +0x02, 0x4A, 0x03, 0x4D, 0xEC, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xE8, 0xF7, +0x6C, 0x9A, 0xE8, 0xF7, 0x64, 0xDA, 0x1F, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0xF4, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xB0, 0x67, 0xAE, 0xF7, +0x18, 0x4C, 0x58, 0x6E, 0x80, 0x18, 0x9C, 0x4E, +0xE2, 0xF1, 0x1E, 0x48, 0x30, 0xF0, 0x20, 0x6B, +0x08, 0x30, 0xA6, 0xF6, 0x00, 0x4B, 0x6D, 0xE0, +0x41, 0xDB, 0x09, 0x10, 0x00, 0x6C, 0xB0, 0x67, +0xC4, 0x67, 0x03, 0x10, 0x01, 0x6C, 0xB0, 0x67, +0x00, 0x6E, 0x80, 0x18, 0x04, 0x22, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0x04, 0x67, 0x4C, 0xE8, 0xAC, 0xEA, +0x0E, 0x22, 0x08, 0x6A, 0x04, 0x31, 0x4D, 0xE9, +0x01, 0x6B, 0x44, 0x40, 0x64, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xAE, 0xF7, 0x18, 0x4A, 0x06, 0xD2, +0x6D, 0xE9, 0x06, 0x6A, 0x0D, 0x10, 0x08, 0x6A, +0x04, 0x31, 0x4D, 0xE9, 0x01, 0x6B, 0x44, 0x40, +0x64, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xAE, 0xF7, +0x18, 0x4A, 0x06, 0xD2, 0x6D, 0xE9, 0x04, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0x94, +0xE3, 0xF5, 0xE8, 0x9A, 0xB0, 0x67, 0x00, 0x6E, +0x80, 0x18, 0xE1, 0x4E, 0x06, 0x94, 0x08, 0xF0, +0x00, 0x6F, 0x01, 0x6B, 0x8F, 0x6E, 0xB0, 0x67, +0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, +0x40, 0xEA, 0x01, 0x6C, 0x80, 0x18, 0xDE, 0x21, +0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x46, 0x21, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x01, 0x6D, 0xD1, 0x67, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, 0xC1, 0x41, +0xAB, 0xED, 0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, +0x01, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0xEF, 0x6E, 0x10, 0x6F, 0x00, 0x6A, 0xAE, 0xF7, +0x18, 0x4C, 0xB0, 0x67, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x01, 0x6D, 0x90, 0x67, 0x80, 0x18, +0x46, 0x21, 0x00, 0x6C, 0x80, 0x18, 0xDE, 0x21, +0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x67, 0x25, +0x22, 0x67, 0x04, 0x2A, 0x01, 0x6C, 0xB0, 0x67, +0x80, 0x18, 0x0A, 0x26, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x41, 0xE0, 0x68, 0xF4, +0x35, 0xC0, 0x51, 0x67, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x04, 0x67, 0x4C, 0xED, 0x4C, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x0F, 0xF3, 0x45, 0xA2, +0x06, 0x6B, 0x08, 0xD5, 0x4E, 0xEB, 0x01, 0x5B, +0x98, 0x67, 0x07, 0xD4, 0x16, 0x2D, 0x04, 0x24, +0xFF, 0x6A, 0x04, 0x33, 0x01, 0x4A, 0x03, 0x10, +0x04, 0x4A, 0x04, 0x33, 0x40, 0x32, 0x4D, 0xEB, +0x84, 0x40, 0x01, 0x6A, 0x44, 0xEC, 0x4D, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0xAE, 0xF7, 0x18, 0x4A, +0x08, 0x69, 0x06, 0xD2, 0x6D, 0xE9, 0x04, 0x6A, +0x19, 0x10, 0x08, 0x93, 0x01, 0x73, 0x22, 0x61, +0x07, 0x94, 0x04, 0x24, 0xFF, 0x6A, 0x04, 0x33, +0x01, 0x4A, 0x03, 0x10, 0x07, 0x4A, 0x04, 0x33, +0x40, 0x32, 0x4D, 0xEB, 0x84, 0x40, 0x01, 0x6A, +0x44, 0xEC, 0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0xAE, 0xF7, 0x18, 0x4A, 0x08, 0x69, 0x06, 0xD2, +0x6D, 0xE9, 0x06, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x06, 0x94, 0xE3, 0xF5, 0xE8, 0x9A, +0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, 0xE1, 0x4E, +0x01, 0x6A, 0x25, 0x10, 0x08, 0x93, 0x00, 0x69, +0x02, 0x73, 0x2F, 0x61, 0x07, 0x94, 0x04, 0x24, +0xFF, 0x6A, 0x04, 0x33, 0x01, 0x4A, 0x03, 0x10, +0x0A, 0x4A, 0x04, 0x33, 0x40, 0x32, 0x4D, 0xEB, +0x84, 0x40, 0x01, 0x6A, 0x44, 0xEC, 0x4D, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0xAE, 0xF7, 0x18, 0x4A, +0x06, 0xD2, 0x07, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x06, 0x94, 0xE3, 0xF5, 0xE8, 0x9A, +0x08, 0x69, 0xB0, 0x67, 0x00, 0x6E, 0x6D, 0xE9, +0x80, 0x18, 0xE1, 0x4E, 0x00, 0x6A, 0x06, 0x94, +0xB0, 0x67, 0x8F, 0x6E, 0x08, 0xF0, 0x00, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, +0x40, 0xEA, 0x01, 0x6C, 0x80, 0x18, 0xDE, 0x21, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0xD1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0xC0, 0xF3, 0x44, 0x9C, 0x01, 0x6D, 0xC1, 0x41, +0xAB, 0xED, 0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, +0x01, 0x6C, 0x40, 0xEA, 0x01, 0x6D, 0x90, 0x67, +0x80, 0x18, 0x67, 0x25, 0x00, 0x6C, 0x06, 0xD2, +0x80, 0x18, 0xDE, 0x21, 0x04, 0x32, 0x09, 0xD2, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x09, 0x93, 0x01, 0x6D, 0x08, 0x6E, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x6D, 0xEE, 0x40, 0xEA, +0x08, 0x94, 0x1C, 0x2C, 0x7D, 0x67, 0x87, 0x43, +0x11, 0x4C, 0x60, 0xA4, 0x30, 0xF0, 0x20, 0x69, +0xE4, 0xF3, 0x4C, 0x40, 0x06, 0x94, 0x44, 0x32, +0xA6, 0xF6, 0x00, 0x49, 0x29, 0xE2, 0x64, 0xC2, +0x48, 0x2C, 0x07, 0x92, 0x09, 0x22, 0x01, 0x6D, +0x23, 0xF3, 0x18, 0x4C, 0xAB, 0xED, 0x80, 0x18, +0x72, 0x3C, 0x02, 0xF2, 0x0A, 0x48, 0x35, 0x10, +0x02, 0x6C, 0x38, 0x10, 0x08, 0x93, 0x02, 0x73, +0x38, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0xF4, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x69, 0xA6, 0xF6, 0x00, 0x49, 0xAE, 0xF7, +0x18, 0x4C, 0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, +0x9C, 0x4E, 0x68, 0xF4, 0x8A, 0xA1, 0xFF, 0x6B, +0x56, 0x32, 0x6C, 0xEA, 0x80, 0x34, 0xF4, 0xF3, +0x68, 0x40, 0x8D, 0xEA, 0x64, 0x33, 0x09, 0x94, +0x2D, 0xE3, 0x42, 0xCB, 0x7D, 0x67, 0x29, 0xE4, +0x87, 0x43, 0x11, 0x4C, 0x60, 0xA4, 0x06, 0x94, +0xC8, 0xF7, 0x7D, 0xC2, 0x12, 0x2C, 0x07, 0x92, +0x0C, 0x22, 0x01, 0x6D, 0x23, 0xF3, 0x1C, 0x4C, +0xAB, 0xED, 0x80, 0x18, 0x72, 0x3C, 0x02, 0xF2, +0x0C, 0x48, 0x08, 0x30, 0x25, 0xE0, 0x41, 0xD9, +0x04, 0x10, 0x03, 0x6C, 0xB0, 0x67, 0x80, 0x18, +0x0A, 0x26, 0x06, 0x92, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF7, 0x63, 0x11, 0x62, 0x10, 0xD1, 0x0F, 0xD0, +0xFF, 0x6A, 0x04, 0x67, 0x4C, 0xE8, 0x4C, 0xED, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x68, 0xF4, 0x65, 0xA2, 0x0C, 0xD5, 0x00, 0x69, +0x0D, 0xD3, 0xF1, 0xF0, 0x6F, 0x40, 0x6C, 0x33, +0x69, 0xE2, 0x04, 0x4A, 0x0A, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xCF, 0xF6, 0x0C, 0x4A, 0x08, 0xD2, +0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0x14, 0x4A, 0xE0, 0x9A, 0xFF, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0x2C, 0xEB, 0xAE, 0xF7, 0x18, 0x48, +0x90, 0x67, 0xA3, 0x67, 0xDF, 0x6E, 0x06, 0xD3, +0x80, 0x18, 0x9C, 0x4E, 0x10, 0x6B, 0x4D, 0xEB, +0x04, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x14, 0x4B, 0xE0, 0x9B, 0x06, 0x95, 0x90, 0x67, +0xDF, 0x6E, 0x80, 0x18, 0xE1, 0x4E, 0x0A, 0x93, +0x06, 0x95, 0x90, 0x67, 0x40, 0x9B, 0x58, 0x6E, +0x30, 0xF0, 0x20, 0x68, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0x14, 0x4A, 0xE0, 0x9A, +0x80, 0x18, 0xE1, 0x4E, 0xC0, 0xF3, 0x44, 0x98, +0x08, 0x6B, 0x24, 0x36, 0x01, 0x6D, 0x6D, 0xEE, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, +0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x0D, 0x93, +0x06, 0x73, 0x1C, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF4, 0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x08, 0x93, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xC0, 0x9B, 0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x08, 0x93, 0x01, 0x6D, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, +0xC2, 0x9B, 0x21, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF4, 0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0x18, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0x18, 0x4B, +0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, 0x01, 0x6D, +0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x0C, 0x92, 0x06, 0x22, 0x00, 0x6B, 0x01, 0x72, +0x06, 0xD3, 0xC0, 0xF0, 0x05, 0x61, 0x62, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0xE3, 0xF4, 0xA4, 0x9B, +0x44, 0x68, 0x23, 0xF3, 0x00, 0x6C, 0x03, 0x6E, +0x40, 0xEA, 0x18, 0xE9, 0x09, 0x93, 0x88, 0x6A, +0x12, 0xE8, 0x58, 0xEB, 0x12, 0xEA, 0x41, 0xE0, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x01, 0xE2, 0x00, 0x6A, 0xA8, 0xF5, 0x1C, 0x48, +0x06, 0xD2, 0xC0, 0xA8, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF5, 0x44, 0x9A, 0x06, 0x93, 0xC0, 0x36, +0x4D, 0xEE, 0x68, 0x32, 0x4D, 0xEE, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, +0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x02, 0x4E, +0x40, 0xEA, 0x06, 0x92, 0x02, 0x48, 0x01, 0x4A, +0x11, 0x72, 0x06, 0xD2, 0xE6, 0x61, 0x44, 0x68, +0x18, 0xE9, 0x09, 0x93, 0x88, 0x6A, 0x12, 0xE8, +0x58, 0xEB, 0x12, 0xEA, 0x41, 0xE0, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x01, 0xE2, +0x00, 0x6A, 0xC8, 0xF6, 0x0C, 0x48, 0x06, 0xD2, +0xC0, 0xA8, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, +0x44, 0x9A, 0xC0, 0x36, 0x01, 0x6D, 0x4D, 0xEE, +0x06, 0x92, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x48, 0x33, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x6D, 0xEE, 0x02, 0x48, 0x40, 0xEA, +0x06, 0x93, 0x01, 0x4B, 0x11, 0x73, 0x06, 0xD3, +0xE7, 0x61, 0xE2, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0xE3, 0xF4, 0xA4, 0x9B, 0x44, 0x68, 0x23, 0xF3, +0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x18, 0xE9, +0x09, 0x93, 0x88, 0x6A, 0x12, 0xE8, 0x58, 0xEB, +0x12, 0xEA, 0x41, 0xE0, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x01, 0xE2, 0x00, 0x6A, +0xC8, 0xF5, 0x1E, 0x48, 0x06, 0xD2, 0xC0, 0xA8, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, 0x48, 0x9A, +0x06, 0x93, 0xC0, 0x36, 0x4D, 0xEE, 0x68, 0x32, +0x4D, 0xEE, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, +0xAB, 0xED, 0x02, 0x4E, 0x40, 0xEA, 0x06, 0x92, +0x02, 0x48, 0x01, 0x4A, 0x11, 0x72, 0x06, 0xD2, +0xE6, 0x61, 0x44, 0x68, 0x18, 0xE9, 0x09, 0x93, +0x88, 0x6A, 0x12, 0xE8, 0x58, 0xEB, 0x12, 0xEA, +0x41, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x01, 0xE2, 0x00, 0x6A, 0xE8, 0xF6, +0x0E, 0x48, 0x06, 0xD2, 0xC0, 0xA8, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF5, 0x48, 0x9A, 0xC0, 0x36, +0x01, 0x6D, 0x4D, 0xEE, 0x06, 0x92, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x48, 0x33, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x6D, 0xEE, +0x02, 0x48, 0x40, 0xEA, 0x06, 0x93, 0x01, 0x4B, +0x11, 0x73, 0x06, 0xD3, 0xE7, 0x61, 0x80, 0x10, +0x0B, 0xD1, 0x06, 0x93, 0xFF, 0x6A, 0x6C, 0xEA, +0x11, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0xE3, 0xF4, +0xA4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x03, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, +0x44, 0x9A, 0x10, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0xE3, 0xF4, 0xA4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF5, 0x48, 0x9A, 0x07, 0xD2, 0x06, 0x92, +0x22, 0x68, 0x0B, 0x93, 0x18, 0xEA, 0x44, 0x6A, +0x00, 0x69, 0x12, 0xE8, 0x58, 0xEB, 0x09, 0x93, +0x12, 0xEA, 0x41, 0xE0, 0x88, 0x6A, 0x58, 0xEB, +0x12, 0xEA, 0x41, 0xE0, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x01, 0xE2, 0xA8, 0xF5, +0x1C, 0x48, 0xC0, 0xA8, 0x07, 0x92, 0x01, 0x6D, +0xC0, 0x36, 0x4D, 0xEE, 0x28, 0x32, 0x4D, 0xEE, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x02, 0x4E, +0x01, 0x49, 0x40, 0xEA, 0x11, 0x71, 0x02, 0x48, +0xEC, 0x61, 0x06, 0x92, 0x22, 0x68, 0x0B, 0x93, +0x18, 0xEA, 0x44, 0x6A, 0x00, 0x69, 0x12, 0xE8, +0x58, 0xEB, 0x09, 0x93, 0x12, 0xEA, 0x41, 0xE0, +0x88, 0x6A, 0x58, 0xEB, 0x12, 0xEA, 0x41, 0xE0, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x01, 0xE2, 0xC8, 0xF6, 0x0C, 0x48, 0xC0, 0xA8, +0x07, 0x92, 0x28, 0x33, 0xC0, 0x36, 0x4D, 0xEE, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x6D, 0xEE, 0x01, 0x49, 0x40, 0xEA, 0x11, 0x71, +0x02, 0x48, 0xED, 0x61, 0x06, 0x93, 0x01, 0x4B, +0x02, 0x73, 0x06, 0xD3, 0x82, 0x61, 0x0B, 0x91, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, +0xA3, 0xF4, 0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xE3, 0xF4, 0xA4, 0x9B, 0x23, 0xF3, +0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x00, 0x6A, +0x06, 0xD2, 0x06, 0x92, 0xFF, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0x6C, 0xEA, 0x06, 0x93, 0x07, 0xD2, +0x01, 0x6D, 0x64, 0x36, 0xC0, 0xF3, 0x64, 0x98, +0x08, 0x6A, 0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF4, 0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, +0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF1, 0x18, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF1, 0x18, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, +0x1C, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF5, 0xB4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x03, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x07, 0x95, 0xE3, 0xF5, 0xE8, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xAE, 0xF7, 0x18, 0x4C, +0x00, 0x6E, 0x80, 0x18, 0xE1, 0x4E, 0x06, 0x92, +0x01, 0x4A, 0x02, 0x72, 0x06, 0xD2, 0xA9, 0x61, +0x0A, 0x93, 0x08, 0x92, 0x01, 0x49, 0x04, 0x4B, +0x04, 0x4A, 0x02, 0x71, 0x0A, 0xD3, 0x08, 0xD2, +0xBF, 0xF5, 0x1B, 0x61, 0x11, 0x97, 0x10, 0x91, +0x0F, 0x90, 0x09, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, +0x00, 0x48, 0x00, 0x6B, 0x8C, 0xEA, 0x29, 0xF0, +0x68, 0xC0, 0x2A, 0x2A, 0x68, 0xF4, 0x46, 0xA0, +0x27, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0xF4, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xAE, 0xF7, +0x18, 0x4C, 0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, +0x9C, 0x4E, 0xE8, 0xF7, 0x64, 0x98, 0xE8, 0xF7, +0x4C, 0xD8, 0x00, 0x69, 0x4E, 0xEB, 0x05, 0x23, +0xE8, 0xF7, 0x68, 0x98, 0x6E, 0xEA, 0x10, 0x2A, +0x01, 0x69, 0x02, 0x6D, 0x91, 0x67, 0x80, 0x18, +0x36, 0x27, 0x91, 0x67, 0x80, 0x18, 0xE4, 0x1D, +0x01, 0x6C, 0x80, 0x18, 0x16, 0x1E, 0x01, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xCF, 0xF6, 0x68, 0xC2, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x08, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x69, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x49, +0xC3, 0xF1, 0x1C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x29, 0xF0, 0xC8, 0xA1, 0xE3, 0xF3, +0x10, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x0A, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF1, 0x1C, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0x29, 0xF0, 0xC8, 0xA1, 0xA0, 0x9B, 0xE3, 0xF3, +0x10, 0x6C, 0x40, 0xEA, 0x29, 0xF0, 0x48, 0xA1, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF1, 0xB8, 0x9A, 0x63, 0xF6, 0x1C, 0x6C, +0x80, 0x18, 0x72, 0x3C, 0x06, 0x22, 0x01, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xAF, 0xF6, 0x6C, 0xC2, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xAF, 0xF6, +0x4C, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0x14, 0x4A, 0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x68, +0xAE, 0xF7, 0x18, 0x48, 0x90, 0x67, 0x00, 0x6D, +0x18, 0x6E, 0x80, 0x18, 0x9C, 0x4E, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x14, 0x4B, 0xE0, 0x9B, +0x90, 0x67, 0x00, 0x6D, 0x18, 0x6E, 0x22, 0x67, +0x80, 0x18, 0x9C, 0x4E, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0xE8, 0xF7, 0x4C, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x5C, 0x9A, +0x68, 0xF4, 0x33, 0xC3, 0x2C, 0xEA, 0x42, 0x32, +0x42, 0x32, 0x68, 0xF4, 0x52, 0xC3, 0x06, 0xF0, +0x00, 0x6A, 0x2C, 0xEA, 0x42, 0x32, 0x52, 0x32, +0x68, 0xF4, 0x54, 0xC3, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x68, +0x8C, 0xE8, 0x80, 0x18, 0xA1, 0x28, 0x00, 0x6C, +0x80, 0x18, 0x16, 0x1E, 0x03, 0x28, 0x00, 0x6C, +0xA4, 0x67, 0x07, 0x10, 0x01, 0x70, 0x03, 0x61, +0x00, 0x6C, 0x01, 0x6D, 0x02, 0x10, 0x00, 0x6C, +0x02, 0x6D, 0x80, 0x18, 0x36, 0x27, 0x01, 0x6C, +0x80, 0x18, 0x16, 0x1E, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x24, 0x67, +0x4C, 0xE9, 0xAC, 0xEA, 0x01, 0x72, 0x43, 0x61, +0x44, 0x41, 0x01, 0x6B, 0x64, 0xEA, 0x00, 0xF2, +0x08, 0x6A, 0x4D, 0xEB, 0x04, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF5, 0xE8, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0xAE, 0xF7, 0x18, 0x48, +0x90, 0x67, 0xB1, 0x67, 0x00, 0x6E, 0x06, 0xD3, +0x80, 0x18, 0xE1, 0x4E, 0x01, 0x6C, 0x08, 0xF0, +0x00, 0x6F, 0xB1, 0x67, 0x04, 0xD4, 0x8F, 0x6E, +0x90, 0x67, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x30, 0xF0, +0x20, 0x68, 0x0A, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x06, 0x96, 0x01, 0x6D, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x06, 0x96, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xAB, 0xED, +0x01, 0x4E, 0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, +0x01, 0x6C, 0x40, 0xEA, 0x91, 0x67, 0x01, 0x6D, +0x80, 0x18, 0x67, 0x25, 0xF0, 0x10, 0x02, 0x72, +0x01, 0x6A, 0xE0, 0xF0, 0x0C, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x0F, 0xF3, 0x4A, 0xA2, 0x00, 0x68, +0x09, 0x72, 0x0C, 0x60, 0x12, 0x72, 0x01, 0x68, +0x09, 0x60, 0x1B, 0x72, 0x02, 0x68, 0x06, 0x60, +0x24, 0x68, 0x4E, 0xE8, 0x01, 0x58, 0x18, 0x67, +0x04, 0x6A, 0x03, 0xE2, 0x24, 0x32, 0x08, 0xD2, +0x08, 0x93, 0x08, 0x6A, 0x30, 0xF0, 0x20, 0x6C, +0x4D, 0xEB, 0xC0, 0xF3, 0x44, 0x9C, 0x01, 0x6D, +0xC3, 0x67, 0x08, 0xD3, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x06, 0xD2, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x06, 0x93, +0x01, 0x6D, 0xAB, 0xED, 0x68, 0xF4, 0xCA, 0xA3, +0xC3, 0xF3, 0x0C, 0x6C, 0x40, 0xEA, 0x44, 0x41, +0x01, 0x6C, 0x30, 0xF0, 0x20, 0x6B, 0x84, 0xEA, +0x00, 0xF3, 0x08, 0x6A, 0x4D, 0xEC, 0x80, 0xF3, +0x4C, 0x9B, 0x07, 0xD4, 0x0A, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF3, 0x44, 0x9C, +0x07, 0x96, 0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x07, 0x96, 0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, +0xAB, 0xED, 0x01, 0x4E, 0x03, 0xF3, 0x00, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0x80, 0xF3, +0x4C, 0x9C, 0xC8, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x14, 0x4B, 0xE0, 0x9B, +0x30, 0xF0, 0x20, 0x6A, 0xAE, 0xF7, 0x18, 0x4A, +0x82, 0x67, 0xB1, 0x67, 0x00, 0x6E, 0x07, 0xD2, +0x80, 0x18, 0x9C, 0x4E, 0x91, 0x67, 0x01, 0x6D, +0x80, 0x18, 0x67, 0x25, 0x01, 0x72, 0x0A, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, 0x0C, 0x4A, +0x41, 0xE0, 0x40, 0xA0, 0x06, 0x94, 0x68, 0xF4, +0x4A, 0xC4, 0x70, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x14, 0x4A, 0x07, 0x94, 0xE0, 0x9A, +0xB1, 0x67, 0x00, 0x6E, 0x80, 0x18, 0x9C, 0x4E, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0x67, 0x08, 0x96, +0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xE3, 0xF7, +0x00, 0x6A, 0x2C, 0xEA, 0x06, 0x93, 0x56, 0x34, +0x96, 0x32, 0x68, 0xF4, 0x4C, 0xDB, 0x1F, 0x6A, +0x8C, 0xEA, 0x02, 0x5A, 0xFF, 0x6B, 0x0B, 0x60, +0x03, 0x70, 0x03, 0x60, 0x01, 0x48, 0x6C, 0xE8, +0x4F, 0x10, 0x06, 0x94, 0x01, 0x6B, 0x03, 0x68, +0x29, 0xF0, 0x61, 0xC4, 0x49, 0x10, 0x0A, 0x5A, +0x0B, 0x61, 0x04, 0x20, 0xFF, 0x48, 0x6C, 0xE8, +0x01, 0x6B, 0x0B, 0x10, 0x06, 0x94, 0x01, 0x6B, +0x29, 0xF0, 0x61, 0xC4, 0x01, 0x6B, 0x09, 0x10, +0x06, 0x94, 0x00, 0x6B, 0x29, 0xF0, 0x61, 0xC4, +0x00, 0x6B, 0x03, 0x20, 0x04, 0x58, 0x01, 0x61, +0x03, 0x68, 0x30, 0xF0, 0x20, 0x6C, 0xA6, 0xF6, +0x00, 0x4C, 0x29, 0xF0, 0xA1, 0xA4, 0x01, 0x5D, +0xB8, 0x67, 0xAB, 0xED, 0xAC, 0xEB, 0x30, 0xF0, +0x20, 0x6D, 0xC2, 0xF6, 0x0C, 0x4D, 0xA1, 0xE0, +0xA0, 0xA0, 0x68, 0xF4, 0xAA, 0xC4, 0x0F, 0x2B, +0x68, 0xF4, 0xCA, 0xA4, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x64, 0x9B, 0xC0, 0x36, 0x01, 0x6D, +0x4D, 0xEE, 0xE3, 0xF3, 0x08, 0x6C, 0xAB, 0xED, +0x40, 0xEB, 0x00, 0x6A, 0x0C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, +0xE3, 0xF3, 0x08, 0x6C, 0xAB, 0xED, 0xFF, 0xF7, +0x1F, 0x6E, 0x40, 0xEA, 0x01, 0x6A, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0x01, 0x6B, 0xC8, 0x17, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x0F, 0xF3, +0x67, 0xA2, 0xFF, 0x68, 0x8C, 0xE8, 0x06, 0x5B, +0x01, 0x6A, 0x7C, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x68, 0x33, 0x82, 0xF6, 0x1C, 0x4A, 0x69, 0xE2, +0x40, 0x9A, 0x00, 0xEA, 0x90, 0x67, 0x80, 0x18, +0x12, 0x23, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, +0x68, 0x26, 0x62, 0x10, 0x90, 0x67, 0x80, 0x18, +0xC0, 0x22, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, +0xAC, 0x26, 0x52, 0x22, 0x03, 0x6C, 0x98, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, +0x12, 0xEC, 0x71, 0xE4, 0x09, 0xF0, 0xAE, 0xA4, +0x02, 0x5D, 0x04, 0x60, 0x01, 0x4D, 0x09, 0xF0, +0xAE, 0xC4, 0xEB, 0x17, 0x61, 0xE0, 0x01, 0x6C, +0x39, 0x10, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, +0x57, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x00, 0x6B, 0x29, 0xF0, 0x61, 0xC2, +0x90, 0x67, 0x02, 0x6D, 0x80, 0x18, 0xD7, 0x28, +0x2F, 0x22, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0x34, +0xA6, 0xF6, 0x00, 0x4B, 0x6D, 0xE4, 0x09, 0xF0, +0x9A, 0xA3, 0x0A, 0x5C, 0x25, 0x60, 0x01, 0x4C, +0x09, 0xF0, 0x9A, 0xC3, 0xED, 0x17, 0x90, 0x67, +0x00, 0x6D, 0x80, 0x18, 0x57, 0x22, 0x90, 0x67, +0x02, 0x6D, 0x80, 0x18, 0xAC, 0x26, 0x18, 0x22, +0x03, 0x6C, 0x98, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0x12, 0xEC, 0x71, 0xE4, +0x09, 0xF0, 0xAF, 0xA4, 0x02, 0x5D, 0x04, 0x60, +0x01, 0x4D, 0x09, 0xF0, 0xAF, 0xC4, 0xEB, 0x17, +0x61, 0xE0, 0x02, 0x6C, 0xA8, 0xF5, 0x80, 0xC0, +0x06, 0x6C, 0x68, 0xF4, 0x87, 0xC3, 0x12, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, +0x68, 0xF4, 0x87, 0xA3, 0x01, 0x4C, 0xF5, 0x17, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x68, 0xF4, 0x67, 0xA2, 0x01, 0x4B, 0x68, 0xF4, +0x67, 0xC2, 0x01, 0x6A, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x68, 0xF4, 0x65, 0xA2, +0x68, 0xF4, 0x48, 0xA2, 0x08, 0xD3, 0x06, 0x5A, +0x76, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x48, 0x32, +0xA2, 0xF6, 0x14, 0x4B, 0x4D, 0xE3, 0x40, 0x9B, +0x00, 0xEA, 0x00, 0x6C, 0x80, 0x18, 0x79, 0x29, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x68, 0xF4, 0x67, 0xA2, 0x06, 0x73, 0xF5, 0x61, +0x2A, 0x10, 0x00, 0x6C, 0x80, 0x18, 0x02, 0x24, +0x00, 0x6C, 0xA4, 0x67, 0x37, 0x10, 0x00, 0x6C, +0x80, 0x18, 0xCA, 0x23, 0x00, 0x6C, 0xA4, 0x67, +0x80, 0x18, 0xAC, 0x26, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0x68, 0xF4, 0x90, 0xA3, +0x01, 0x4C, 0x68, 0xF4, 0x90, 0xC3, 0x42, 0x22, +0x09, 0xF0, 0x4D, 0xA3, 0x03, 0x5A, 0x3E, 0x60, +0x01, 0x4A, 0x09, 0xF0, 0x4D, 0xC3, 0x43, 0x10, +0x01, 0x6C, 0x80, 0x18, 0x79, 0x29, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x68, 0xF4, +0x67, 0xA2, 0x06, 0x73, 0xF5, 0x61, 0x68, 0xF4, +0x68, 0xA2, 0x01, 0x4B, 0x68, 0xF4, 0x68, 0xC2, +0x78, 0x67, 0x68, 0xF4, 0x67, 0xC2, 0x68, 0xF4, +0x70, 0xA2, 0x01, 0x4B, 0x68, 0xF4, 0x70, 0xC2, +0x2A, 0x10, 0x01, 0x6C, 0x80, 0x18, 0x02, 0x24, +0x01, 0x6C, 0x00, 0x6D, 0x80, 0x18, 0x68, 0x26, +0x19, 0x10, 0x01, 0x6C, 0x80, 0x18, 0xCA, 0x23, +0x01, 0x6C, 0x00, 0x6D, 0x80, 0x18, 0xAC, 0x26, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, +0x68, 0xF4, 0x90, 0xA3, 0x01, 0x4C, 0x68, 0xF4, +0x90, 0xC3, 0x08, 0x22, 0x09, 0xF0, 0x50, 0xA3, +0x03, 0x5A, 0x04, 0x60, 0x01, 0x4A, 0x09, 0xF0, +0x50, 0xC3, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x68, 0xF4, 0x68, 0xA2, +0x01, 0x4B, 0x68, 0xF4, 0x68, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x0F, 0xF3, 0x48, 0xA2, 0x06, 0x72, +0x80, 0xF0, 0x08, 0x61, 0x30, 0xF0, 0x20, 0x69, +0x00, 0x6A, 0xCF, 0xF6, 0x0C, 0x49, 0x06, 0xD2, +0x06, 0x92, 0xFF, 0x6B, 0x30, 0xF0, 0x20, 0x68, +0x6C, 0xEA, 0x06, 0x93, 0x07, 0xD2, 0x01, 0x6D, +0x64, 0x36, 0xC0, 0xF3, 0x64, 0x98, 0x08, 0x6A, +0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, +0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, +0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x08, 0x92, 0x06, 0x72, +0x1A, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, +0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, +0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xC0, 0x99, 0x01, 0x6D, 0x23, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x01, 0x6D, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x1C, 0x6C, +0xAB, 0xED, 0xC2, 0x99, 0x21, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF4, 0xA8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, +0x18, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, +0x01, 0x6D, 0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF5, 0xB4, 0x9B, 0xC0, 0xF3, +0x44, 0x9A, 0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x03, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x07, 0x95, 0xE3, 0xF5, 0xE8, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xAE, 0xF7, 0x18, 0x4C, +0x00, 0x6E, 0x80, 0x18, 0xE1, 0x4E, 0x06, 0x92, +0x04, 0x49, 0x01, 0x4A, 0x02, 0x72, 0x06, 0xD2, +0x7F, 0xF7, 0x1E, 0x61, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x0F, 0xF3, 0x45, 0xA2, +0xFF, 0x69, 0x8C, 0xE9, 0x02, 0x72, 0x02, 0x6A, +0x05, 0xD2, 0x02, 0x60, 0x04, 0x6B, 0x05, 0xD3, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x08, 0x6E, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, +0x40, 0xEA, 0x01, 0x6D, 0x03, 0xF3, 0x08, 0x6C, +0xAB, 0xED, 0x80, 0x18, 0x72, 0x3C, 0x04, 0xD2, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, +0x06, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, 0x80, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x00, 0x6C, 0x06, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x08, 0x6C, 0x80, 0x6D, 0x01, 0x6E, 0x40, 0xEA, +0x00, 0x68, 0x91, 0x67, 0x80, 0x18, 0xBF, 0x29, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x68, 0xF4, 0x68, 0xA2, 0x06, 0x73, 0x0B, 0x60, +0x05, 0x21, 0x68, 0xF4, 0x50, 0xA2, 0x05, 0x93, +0x6E, 0xEA, 0x05, 0x22, 0x01, 0x48, 0xFF, 0x6A, +0x4C, 0xE8, 0x64, 0x70, 0xEA, 0x61, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x00, 0x6C, 0x06, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, 0x03, 0xF3, +0x08, 0x69, 0x01, 0x6D, 0x91, 0x67, 0xAB, 0xED, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x00, 0x6C, 0x06, 0x6D, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, 0x01, 0x6D, +0x91, 0x67, 0xAB, 0xED, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0xF4, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xAE, 0xF7, 0x18, 0x4C, 0x00, 0x6D, 0x18, 0x6E, +0x80, 0x18, 0x9C, 0x4E, 0x30, 0xF0, 0x20, 0x6B, +0x06, 0xF0, 0x00, 0x6C, 0xA6, 0xF6, 0x00, 0x4B, +0x4C, 0xEC, 0xE8, 0xF7, 0x4C, 0xDB, 0x82, 0x32, +0x52, 0x32, 0x02, 0x72, 0x0A, 0x60, 0x03, 0x6C, +0x4E, 0xEC, 0x04, 0x24, 0x01, 0x72, 0x02, 0x6A, +0x07, 0x60, 0x05, 0x10, 0x68, 0xF4, 0x85, 0xC3, +0x05, 0x10, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, +0x68, 0xF4, 0x45, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF1, 0x7C, 0x9B, 0xE8, 0xF7, 0x8C, 0x9A, +0x8C, 0xEB, 0x62, 0x33, 0x62, 0x33, 0x68, 0xF4, +0x64, 0xC2, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xF1, 0x63, 0x1D, 0x62, 0x1C, 0xD1, 0x1B, 0xD0, +0x08, 0xA4, 0x02, 0x6A, 0x01, 0x69, 0x0C, 0xEA, +0x46, 0x32, 0x18, 0xD2, 0x80, 0x18, 0x38, 0x1D, +0x80, 0x18, 0x88, 0x2A, 0x80, 0x18, 0xA1, 0x28, +0x00, 0x6C, 0x80, 0x18, 0x16, 0x1E, 0x90, 0x67, +0x2C, 0xEC, 0x00, 0x6D, 0x80, 0x18, 0x6A, 0x28, +0x80, 0xF0, 0x00, 0x2A, 0x30, 0xF0, 0x20, 0x68, +0xA6, 0xF6, 0x00, 0x48, 0x68, 0xF4, 0x66, 0xA0, +0x68, 0xF4, 0x48, 0xC0, 0x68, 0xF4, 0x47, 0xC0, +0x01, 0x4B, 0x68, 0xF4, 0x66, 0xC0, 0x68, 0xF4, +0x50, 0xC0, 0x68, 0xF4, 0x31, 0xC0, 0x38, 0x6C, +0x80, 0x18, 0x99, 0x21, 0x00, 0x6C, 0x29, 0xF0, +0x44, 0xD8, 0xA4, 0x67, 0x80, 0x18, 0x0A, 0x26, +0x30, 0xF0, 0x20, 0x6E, 0x30, 0xF0, 0x20, 0x6F, +0x04, 0x04, 0x0D, 0x05, 0x82, 0xF2, 0x14, 0x4E, +0xA2, 0xF2, 0x00, 0x4F, 0x80, 0x18, 0xE9, 0x21, +0x30, 0xF0, 0x20, 0x6D, 0x07, 0x04, 0xE2, 0xF2, +0x14, 0x4D, 0x80, 0x18, 0xA9, 0x25, 0x00, 0x68, +0x80, 0x18, 0x0F, 0x21, 0x01, 0x6C, 0x80, 0x18, +0x52, 0x1E, 0x18, 0x94, 0x80, 0x18, 0x4C, 0x2A, +0x00, 0x6C, 0x80, 0x18, 0x52, 0x1E, 0x30, 0xF0, +0x20, 0x6C, 0xE2, 0xF2, 0x14, 0x4C, 0x07, 0x05, +0x80, 0x18, 0x9B, 0x24, 0x30, 0xF0, 0x20, 0x6E, +0x30, 0xF0, 0x20, 0x6F, 0x04, 0x04, 0x0D, 0x05, +0x82, 0xF2, 0x14, 0x4E, 0xA2, 0xF2, 0x00, 0x4F, +0x80, 0x18, 0xCC, 0x20, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x68, 0xF4, 0x68, 0xA2, +0x06, 0x73, 0x08, 0x60, 0xFF, 0x6B, 0x01, 0x48, +0x6C, 0xE8, 0x03, 0x70, 0x00, 0x6B, 0x68, 0xF4, +0x70, 0xC2, 0xD2, 0x61, 0x30, 0xF0, 0x20, 0x68, +0x00, 0x6C, 0x80, 0x18, 0xE4, 0x1D, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0xFF, 0x6D, +0x08, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x10, 0x69, 0x91, 0x67, 0xFF, 0x6D, +0xAA, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x00, 0x6C, 0xFF, 0x6D, 0x0A, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0xFF, 0x6D, 0xAA, 0x6E, 0x40, 0xEA, 0x01, 0x6C, +0x80, 0x18, 0x16, 0x1E, 0x1D, 0x97, 0x1C, 0x91, +0x1B, 0x90, 0x00, 0x6A, 0x0F, 0x63, 0x00, 0xEF, +0xF2, 0x63, 0x1B, 0x62, 0x1A, 0xD0, 0x30, 0xF0, +0x20, 0x6D, 0x04, 0x67, 0x42, 0xF7, 0x0C, 0x4D, +0x04, 0x04, 0x54, 0x6E, 0x00, 0x18, 0xD5, 0xD3, +0x00, 0x6A, 0x26, 0x20, 0x70, 0x67, 0x01, 0x73, +0x03, 0x60, 0x66, 0x33, 0x01, 0x4A, 0xFB, 0x17, +0x01, 0x6C, 0x01, 0x4A, 0x64, 0x67, 0x04, 0x10, +0x01, 0x4B, 0xFF, 0x6D, 0x84, 0x34, 0xAC, 0xEB, +0x63, 0xEA, 0xFA, 0x60, 0x64, 0x6B, 0x78, 0xE8, +0x05, 0x6D, 0x12, 0xE8, 0x9B, 0xE8, 0x01, 0x2C, +0xE5, 0xE8, 0x12, 0xEC, 0xBB, 0xEC, 0x01, 0x2D, +0xE5, 0xE8, 0x12, 0xEC, 0x15, 0x5C, 0x78, 0xEA, +0x12, 0xEA, 0x01, 0x61, 0x14, 0x6C, 0x7D, 0x67, +0x88, 0x34, 0x91, 0xE3, 0x64, 0x9C, 0x6B, 0xE2, +0x1B, 0x97, 0x1A, 0x90, 0x0E, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x26, 0x67, 0xA3, 0xF5, +0xD8, 0x9B, 0x05, 0x67, 0x01, 0x6D, 0x0D, 0xD7, +0x63, 0xF5, 0x10, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x00, 0x6A, 0x04, 0xD2, 0x0E, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xA8, 0xC0, 0x99, 0xC0, 0xF3, +0x44, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, +0x04, 0x93, 0x04, 0x48, 0x04, 0x49, 0x01, 0x4B, +0x04, 0xD3, 0x04, 0x92, 0x0D, 0x93, 0x63, 0xEA, +0xEE, 0x61, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, +0x0C, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF3, 0x14, 0x6C, 0xF0, 0x6D, 0x04, 0x6E, +0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x44, 0x99, 0xFF, 0x68, 0xAC, 0xE8, +0xD0, 0x67, 0xA3, 0xF0, 0x04, 0x6C, 0x80, 0x6D, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xD0, 0x67, +0xA8, 0xF1, 0x04, 0x6C, 0x80, 0x6D, 0x40, 0xEA, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x68, 0x03, 0xF6, 0x2C, 0x9A, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0x00, 0x6C, +0xB1, 0x67, 0x1F, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0xA8, 0xF1, 0x00, 0x6C, +0x1F, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF6, 0x30, 0x9A, 0xC0, 0xF3, 0x44, 0x98, +0xE3, 0xF0, 0x08, 0x6C, 0xB1, 0x67, 0x1F, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0xE8, 0xF1, 0x08, 0x6C, 0x1F, 0x6E, 0x40, 0xEA, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, +0x08, 0xD4, 0x80, 0xF1, 0x16, 0x22, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, +0x2B, 0xE9, 0x23, 0xF4, 0x18, 0x6C, 0xB1, 0x67, +0xD1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF5, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF5, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF5, 0x04, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF5, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF5, +0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF5, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF5, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF5, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF5, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF5, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF5, 0x04, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF5, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF5, +0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF5, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF5, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF5, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF5, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, 0x1C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF5, 0x1C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF5, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF5, +0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF5, 0x08, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF5, 0x0C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF5, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF5, +0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF5, 0x18, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF5, 0x1C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF5, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF5, +0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF5, 0x08, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF5, 0x0C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF5, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF5, +0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF5, 0x18, 0x4B, +0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x43, 0xF5, 0x18, 0x4B, +0x70, 0x12, 0x08, 0x93, 0x60, 0xF0, 0x5B, 0xA3, +0xE0, 0xF0, 0x1B, 0x22, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF5, 0xDC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, +0x23, 0xF4, 0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x08, 0x92, 0x04, 0x6B, 0x63, 0xF0, 0x00, 0x6C, +0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, +0x0E, 0xF0, 0x00, 0x6D, 0x67, 0xEE, 0xC3, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x08, 0x92, 0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, +0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF5, 0x04, 0x4B, 0x60, 0x9B, +0x6D, 0xEE, 0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, +0x23, 0xF0, 0x10, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, +0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, +0x08, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, +0x08, 0x92, 0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, +0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF5, 0x0C, 0x4B, 0x60, 0x9B, +0x6D, 0xEE, 0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, +0x23, 0xF0, 0x10, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, +0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, +0x10, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x14, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x08, 0x92, +0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0x80, 0xF0, +0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF5, 0x18, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x08, 0x92, 0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, +0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF5, 0x04, 0x4B, 0x60, 0x9B, +0x6D, 0xEE, 0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, +0x28, 0xF1, 0x10, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, +0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, +0x08, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, +0x08, 0x92, 0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, +0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF5, 0x0C, 0x4B, 0x60, 0x9B, +0x6D, 0xEE, 0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, +0x28, 0xF1, 0x10, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, +0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, +0x10, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x14, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x08, 0x92, +0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, 0x80, 0xF0, +0xD1, 0xA2, 0xB1, 0x67, 0xC0, 0xF3, 0x44, 0x98, +0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF5, 0x18, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0xA7, 0x10, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF6, 0xD4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF4, +0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF5, 0x00, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF5, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, 0x04, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF5, 0x08, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF5, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, +0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF5, 0x1C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF5, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, +0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, 0x08, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF5, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF5, 0x0C, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xC0, 0x9B, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0x83, 0xF5, 0x10, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, 0x14, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF5, 0x18, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF5, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, 0x04, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF5, 0x08, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF5, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, +0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF5, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF5, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF5, 0x04, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF5, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, +0x0C, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x30, 0xF0, 0x20, 0x6B, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0xA3, 0xF5, +0x10, 0x4B, 0xC0, 0x9B, 0x40, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xED, 0x1E, 0xF0, +0x01, 0x4D, 0x6C, 0xED, 0x02, 0x5D, 0x6C, 0xEE, +0x09, 0x61, 0x02, 0xF0, 0x00, 0x76, 0x06, 0x60, +0xE1, 0xF7, 0x1F, 0x6A, 0x4E, 0xEE, 0x01, 0x5E, +0x58, 0x67, 0x20, 0xE8, 0x01, 0x6A, 0x20, 0xE8, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0xAC, 0xEA, 0x50, 0x6B, 0x78, 0xEA, +0xE0, 0xF0, 0x68, 0x44, 0x24, 0x67, 0x12, 0xEA, +0x90, 0xF0, 0x08, 0x42, 0x4D, 0xE3, 0x01, 0xE4, +0x04, 0xD3, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF6, +0xB8, 0x9A, 0x40, 0x98, 0xE3, 0xF7, 0x1F, 0x6E, +0x91, 0x67, 0x4C, 0xED, 0xA2, 0x35, 0xA2, 0x35, +0x4C, 0xEE, 0x80, 0x18, 0x62, 0x2D, 0x02, 0x22, +0x00, 0x6A, 0x05, 0x10, 0x04, 0x92, 0x04, 0x48, +0x4A, 0xE8, 0xEB, 0x61, 0x01, 0x6A, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0x4C, 0xED, +0x4C, 0xEE, 0x01, 0x69, 0xC0, 0xF3, 0x44, 0x98, +0x2B, 0xE9, 0x0C, 0xD4, 0x05, 0xD5, 0x06, 0xD6, +0xB1, 0x67, 0x03, 0xF3, 0x00, 0x6C, 0x0C, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0xC3, 0xF3, 0x14, 0x6C, 0xF0, 0x6E, 0x40, 0xEA, +0x05, 0x93, 0x50, 0x6A, 0x03, 0xF3, 0x0C, 0x68, +0x58, 0xEB, 0x0C, 0x93, 0x00, 0x69, 0x12, 0xEA, +0x7F, 0x4A, 0x19, 0x4A, 0x49, 0xE3, 0x04, 0xD2, +0x05, 0x92, 0x90, 0x67, 0x05, 0x22, 0x87, 0x40, +0x51, 0x4C, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEC, +0x06, 0x93, 0x0A, 0x2B, 0x03, 0x71, 0x03, 0x60, +0xE3, 0xF7, 0x1F, 0x6E, 0x07, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF6, 0xDC, 0x9A, 0x02, 0x10, +0x04, 0x92, 0xC0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, 0xAB, 0xED, +0x40, 0xEA, 0x04, 0x93, 0xFF, 0x6A, 0x01, 0x49, +0x4C, 0xE9, 0x04, 0x4B, 0x04, 0x48, 0xFF, 0xF7, +0x1F, 0x6A, 0x14, 0x71, 0x04, 0xD3, 0x4C, 0xE8, +0xD7, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x24, 0x67, 0x0F, 0x6D, +0x03, 0xF3, 0x00, 0x6C, 0x0C, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, 0x10, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x60, 0xF0, +0xD9, 0xA1, 0x03, 0xF3, 0x08, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, 0x10, 0x4B, +0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, 0x60, 0xF0, +0xD9, 0xA1, 0x63, 0xF3, 0x00, 0x6C, 0x40, 0xEA, +0x60, 0xF0, 0x58, 0xA1, 0x2C, 0x22, 0x60, 0xF0, +0x5E, 0xA9, 0x01, 0x6B, 0x6C, 0xEA, 0x10, 0x22, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, +0x18, 0xF0, 0x00, 0x6D, 0xC3, 0x67, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x20, 0xF1, 0xD8, 0xA9, +0x03, 0xF3, 0x04, 0x6C, 0xFF, 0x6D, 0x40, 0xEA, +0x60, 0xF0, 0x5E, 0xA9, 0x02, 0x6B, 0x6C, 0xEA, +0x3C, 0x22, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x63, 0xF3, 0x00, 0x6C, 0x18, 0xF0, +0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF3, 0x1C, 0x6C, 0xFF, 0x6D, +0x20, 0xF1, 0xDA, 0xA9, 0x29, 0x10, 0x60, 0xF0, +0x5E, 0xA9, 0x01, 0x6B, 0x6C, 0xEA, 0x0F, 0x22, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, +0x18, 0xF0, 0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x04, 0x6C, +0xFF, 0x6D, 0x5B, 0x6E, 0x40, 0xEA, 0x60, 0xF0, +0x5E, 0xA9, 0x02, 0x6B, 0x6C, 0xEA, 0x11, 0x22, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF3, 0x00, 0x6C, 0x18, 0xF0, 0x00, 0x6D, +0x03, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x43, 0xF3, 0x1C, 0x6C, 0xFF, 0x6D, 0x5B, 0x6E, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0x63, 0xF3, 0xB0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x20, 0xF5, 0x00, 0x6C, +0xFF, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF6, 0x10, 0x6C, 0x0F, 0x6D, 0x02, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF5, +0x28, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0xAE, 0xF7, +0x18, 0x48, 0x00, 0x6D, 0x90, 0x67, 0xC5, 0x67, +0xF1, 0x67, 0x80, 0x18, 0x9C, 0x4E, 0xFF, 0x6B, +0x4C, 0xEB, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, +0x00, 0x6E, 0x04, 0xD3, 0xFF, 0x69, 0x80, 0x18, +0x9C, 0x4E, 0x4C, 0xE9, 0x00, 0x68, 0x27, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF5, 0x08, 0x4A, +0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x69, 0xAE, 0xF7, +0x18, 0x49, 0x00, 0x6D, 0x91, 0x67, 0xC5, 0x67, +0x80, 0x18, 0x9C, 0x4E, 0xFF, 0x6B, 0x4C, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF5, 0x08, 0x4A, +0xE0, 0x9A, 0x91, 0x67, 0x01, 0x6D, 0x00, 0x6E, +0x04, 0xD3, 0xFF, 0x69, 0x80, 0x18, 0x9C, 0x4E, +0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x02, 0x6C, 0x01, 0x48, 0x40, 0xEA, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0x04, 0x93, +0x02, 0x73, 0x02, 0x60, 0x02, 0x71, 0x03, 0x61, +0xC1, 0xF1, 0x04, 0x70, 0xD1, 0x61, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x04, 0x67, 0x80, 0x18, 0xF1, 0x2D, 0x60, 0xF0, +0x5B, 0xA0, 0x1E, 0x22, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0xB8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF6, 0x1C, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF4, 0x38, 0x9A, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF0, 0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, +0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF2, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF6, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF5, 0x18, 0x6C, +0xE1, 0xF7, 0x18, 0x6D, 0xE0, 0xF1, 0x1F, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, +0x30, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, +0x04, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x68, 0xF1, +0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF4, 0x2C, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF0, 0x0C, 0x6C, 0xB1, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x08, 0xF1, 0x0C, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, +0x0C, 0x6C, 0x80, 0x6D, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x68, 0xF1, 0x0C, 0x6C, +0x80, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF0, 0x0C, 0x6C, 0x03, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x08, 0xF1, 0x0C, 0x6C, 0x03, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, +0x14, 0x6C, 0x00, 0xF3, 0x00, 0x6D, 0x03, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, +0x0C, 0x6C, 0x0F, 0x6D, 0x08, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0xE3, 0xF5, 0xA8, 0x9B, 0x21, 0xF0, 0x04, 0x69, +0x91, 0x67, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF4, +0xAC, 0x9B, 0x91, 0x67, 0x03, 0x6E, 0x40, 0xEA, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x00, 0x6A, 0x25, 0x67, +0x04, 0xD6, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x14, 0x4B, 0xC0, 0x99, 0xE0, 0x9B, +0x30, 0xF0, 0x20, 0x68, 0xAE, 0xF7, 0x18, 0x48, +0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x9C, 0x4E, +0x04, 0x93, 0x90, 0x67, 0x01, 0x6D, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x14, 0x4A, +0xC0, 0x99, 0xE0, 0x9A, 0x04, 0x49, 0x80, 0x18, +0x9C, 0x4E, 0x04, 0x93, 0x41, 0xDB, 0x05, 0x92, +0x08, 0x4B, 0x04, 0xD3, 0x01, 0x4A, 0x07, 0x72, +0x05, 0xD2, 0xDC, 0x61, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x69, 0x30, 0xF0, 0x20, 0x68, 0x2C, 0xEE, +0xC0, 0xF3, 0x64, 0x98, 0x08, 0x6A, 0x04, 0xD6, +0x2C, 0xEF, 0xC4, 0x36, 0x0A, 0xD4, 0x0B, 0xD5, +0x4D, 0xEE, 0x05, 0xD7, 0x03, 0xF3, 0x00, 0x6C, +0x0F, 0x6D, 0x40, 0xEB, 0x05, 0x92, 0x0C, 0x22, +0x0B, 0x96, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xFA, 0x4E, 0x63, 0xF3, 0x04, 0x6C, +0xC3, 0xF5, 0xB4, 0x9B, 0x2C, 0xEE, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF5, 0xB4, 0x9B, 0x63, 0xF3, 0x04, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x0A, 0x93, 0x04, 0x92, +0x63, 0xF3, 0x04, 0x6C, 0x41, 0xE3, 0x7D, 0x67, +0x47, 0x43, 0x0D, 0x4A, 0x60, 0xA2, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF5, 0xB4, 0x9A, 0x80, 0xF0, +0x73, 0xC0, 0x80, 0x18, 0x72, 0x3C, 0x80, 0xF0, +0x55, 0xC0, 0x0A, 0x94, 0x04, 0x95, 0x05, 0x96, +0x80, 0x18, 0x82, 0x2D, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x4C, 0xEF, 0x4C, 0xED, 0x24, 0x67, +0x0C, 0xD6, 0x04, 0xD7, 0x05, 0x2D, 0xA7, 0x67, +0x80, 0x18, 0x6C, 0x2D, 0x01, 0x68, 0x01, 0x2A, +0x00, 0x68, 0x0C, 0x95, 0x04, 0x96, 0x91, 0x67, +0xF0, 0x67, 0x80, 0x18, 0x90, 0x2E, 0x50, 0x67, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xE3, 0xF3, 0x1C, 0x68, +0x01, 0x6D, 0x90, 0x67, 0xAB, 0xED, 0x80, 0x18, +0x72, 0x3C, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF6, +0xA0, 0x9A, 0x90, 0x67, 0xFF, 0xF7, 0x1F, 0x69, +0x80, 0x18, 0x72, 0x3C, 0x90, 0x67, 0xB1, 0x67, +0x04, 0xD2, 0x80, 0x18, 0x72, 0x3C, 0xE3, 0xF7, +0x1F, 0x6B, 0x6C, 0xEA, 0x04, 0xF0, 0x00, 0x6C, +0x53, 0xE4, 0x04, 0x92, 0x6C, 0xEC, 0xFF, 0x4C, +0x4C, 0xEB, 0x2C, 0xEC, 0x60, 0x32, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x40, 0x32, 0x8D, 0xEA, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, +0x30, 0xF0, 0x20, 0x68, 0x05, 0xD2, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0x24, 0x67, 0xAB, 0xED, +0x03, 0xF3, 0x00, 0x6C, 0x0C, 0x6E, 0x40, 0xEA, +0x05, 0x93, 0x0F, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF4, 0xB0, 0x9B, +0xA3, 0xF3, 0x14, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x04, 0x6C, +0x11, 0x10, 0x05, 0x94, 0x01, 0x74, 0x15, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x43, 0xF4, 0xB0, 0x9B, 0xA3, 0xF3, 0x14, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x43, 0xF3, 0x1C, 0x6C, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF6, 0xC4, 0x9B, 0x01, 0x6D, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0x23, 0xF6, +0xC8, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0xC3, 0xF3, +0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, +0xC5, 0x2E, 0x05, 0x94, 0x50, 0x6D, 0xB8, 0xEC, +0xAF, 0x4D, 0xC3, 0xF3, 0x14, 0x6C, 0x12, 0xEB, +0x6D, 0xE1, 0x04, 0xD3, 0x80, 0xF0, 0x58, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, +0x23, 0xF6, 0xCC, 0x9A, 0x40, 0xEB, 0x91, 0x67, +0x80, 0x18, 0xC5, 0x2E, 0x04, 0x93, 0x01, 0x6D, +0xAB, 0xED, 0x80, 0xF0, 0x5C, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0x23, 0xF6, +0xD0, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, +0x91, 0x67, 0x80, 0x18, 0xC5, 0x2E, 0x04, 0x94, +0x01, 0x6D, 0xAB, 0xED, 0xA0, 0xF0, 0x40, 0xDC, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, +0x23, 0xF6, 0xD4, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, +0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, 0xC5, 0x2E, +0x04, 0x95, 0xC3, 0xF3, 0x14, 0x6C, 0xA0, 0xF0, +0x44, 0xDD, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x64, 0x98, 0x23, 0xF6, 0xD8, 0x9A, 0x01, 0x6D, +0xAB, 0xED, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, +0xC5, 0x2E, 0x04, 0x93, 0x01, 0x6D, 0xAB, 0xED, +0xA0, 0xF0, 0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x64, 0x98, 0x23, 0xF6, 0xDC, 0x9A, +0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, +0x80, 0x18, 0xC5, 0x2E, 0x04, 0x94, 0x01, 0x6D, +0xAB, 0xED, 0xA0, 0xF0, 0x4C, 0xDC, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0x43, 0xF6, +0xC0, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, +0x91, 0x67, 0x80, 0x18, 0xC5, 0x2E, 0x04, 0x95, +0xC3, 0xF3, 0x14, 0x6C, 0xA0, 0xF0, 0x50, 0xDD, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, +0x43, 0xF6, 0xC4, 0x9A, 0x01, 0x6D, 0xAB, 0xED, +0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, 0xC5, 0x2E, +0x04, 0x93, 0x01, 0x6D, 0xAB, 0xED, 0xA0, 0xF0, +0x54, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x64, 0x98, 0x43, 0xF6, 0xC8, 0x9A, 0xC3, 0xF3, +0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, +0xC5, 0x2E, 0x04, 0x94, 0x01, 0x6D, 0xAB, 0xED, +0xA0, 0xF0, 0x58, 0xDC, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x64, 0x98, 0x43, 0xF6, 0xCC, 0x9A, +0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, +0x80, 0x18, 0xC5, 0x2E, 0x04, 0x95, 0xC3, 0xF3, +0x14, 0x6C, 0xA0, 0xF0, 0x5C, 0xDD, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0x43, 0xF6, +0xD0, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEB, +0x91, 0x67, 0x80, 0x18, 0xC5, 0x2E, 0x04, 0x93, +0x01, 0x6D, 0xAB, 0xED, 0xC0, 0xF0, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, +0x43, 0xF6, 0xD4, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, +0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, 0xC5, 0x2E, +0x04, 0x94, 0x01, 0x6D, 0xAB, 0xED, 0xC0, 0xF0, +0x44, 0xDC, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x64, 0x98, 0x43, 0xF6, 0xD8, 0x9A, 0xC3, 0xF3, +0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, +0xC5, 0x2E, 0x05, 0x93, 0x50, 0x6C, 0x01, 0x6D, +0x01, 0x4B, 0x98, 0xEB, 0xAB, 0xED, 0x83, 0xF3, +0x04, 0x4C, 0x12, 0xEB, 0x6D, 0xE1, 0x5E, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, +0x43, 0xF6, 0xDC, 0x9A, 0x40, 0xEB, 0x91, 0x67, +0x80, 0x18, 0xC5, 0x2E, 0x04, 0x95, 0xC3, 0xF3, +0x14, 0x6C, 0xC0, 0xF0, 0x4C, 0xDD, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0x63, 0xF6, +0xC0, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEB, +0x91, 0x67, 0x80, 0x18, 0xC5, 0x2E, 0x04, 0x93, +0x01, 0x6D, 0xAB, 0xED, 0xC0, 0xF0, 0x50, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, +0x63, 0xF6, 0xC4, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, +0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, 0xC5, 0x2E, +0x04, 0x94, 0x01, 0x6D, 0xAB, 0xED, 0xC0, 0xF0, +0x54, 0xDC, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x64, 0x98, 0x63, 0xF6, 0xC8, 0x9A, 0xC3, 0xF3, +0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, +0xC5, 0x2E, 0x04, 0x95, 0xC3, 0xF3, 0x14, 0x6C, +0xC0, 0xF0, 0x58, 0xDD, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x64, 0x98, 0x63, 0xF6, 0xCC, 0x9A, +0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEB, 0x91, 0x67, +0x80, 0x18, 0xC5, 0x2E, 0x04, 0x93, 0x01, 0x6D, +0xAB, 0xED, 0xC0, 0xF0, 0x5C, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0x63, 0xF6, +0xD0, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, +0x91, 0x67, 0x80, 0x18, 0xC5, 0x2E, 0x04, 0x94, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF6, 0xD4, 0x9B, +0xE0, 0xF0, 0x40, 0xDC, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xAB, 0xED, 0xC3, 0xF3, 0x14, 0x6C, +0x40, 0xEA, 0x91, 0x67, 0x80, 0x18, 0xC5, 0x2E, +0x04, 0x95, 0xE0, 0xF0, 0x44, 0xDD, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6A, 0x4C, 0xED, +0xC0, 0xF3, 0x44, 0x98, 0x08, 0x6B, 0xA4, 0x36, +0x6D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF3, +0x08, 0x69, 0x91, 0x67, 0x08, 0xF0, 0x00, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF6, 0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xC3, 0xF3, 0x14, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0xE3, 0xF3, 0x1C, 0x6C, 0xF0, 0x6D, +0x80, 0x18, 0x72, 0x3C, 0x04, 0xD2, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0x08, 0xF0, 0x00, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x04, 0x92, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0xFF, 0x6B, 0x6C, 0xEA, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xFF, 0x6A, 0x4C, 0xED, 0x4C, 0xEE, 0x01, 0x69, +0xC0, 0xF3, 0x44, 0x98, 0x08, 0x6B, 0x2B, 0xE9, +0x04, 0xD6, 0xA4, 0x36, 0x6D, 0xEE, 0x03, 0xF3, +0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF3, 0x08, 0x6C, 0x08, 0xF0, +0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF6, 0xDC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF3, 0x14, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF3, +0x0C, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0x04, 0x92, 0x04, 0x22, 0x02, 0x72, 0x00, 0x68, +0x2C, 0x60, 0x44, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF2, 0xCC, 0x9B, +0xB1, 0x67, 0x43, 0xF3, 0x0C, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF6, 0xA0, 0x9A, +0xE3, 0xF3, 0x1C, 0x69, 0x91, 0x67, 0x80, 0x18, +0x72, 0x3C, 0x91, 0x67, 0xFF, 0xF7, 0x1F, 0x6D, +0x02, 0x67, 0x80, 0x18, 0x72, 0x3C, 0x22, 0x67, +0x42, 0x32, 0x5E, 0x32, 0x05, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF1, 0x5C, 0x9A, 0x27, 0xE2, +0x02, 0x32, 0x5E, 0x32, 0x21, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF1, 0x5C, 0x9A, 0x03, 0xE2, +0x1B, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, +0x6C, 0x9B, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x01, 0x69, 0x2B, 0xE9, 0x00, 0xF6, +0x00, 0x36, 0x43, 0xF3, 0x0C, 0x6C, 0xB1, 0x67, +0x6D, 0xEE, 0x40, 0xEA, 0x01, 0x48, 0xE3, 0xF3, +0x1C, 0x6C, 0xB1, 0x67, 0x80, 0x18, 0x72, 0x3C, +0x40, 0x70, 0xE7, 0x61, 0x00, 0x68, 0x30, 0x67, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x01, 0x6D, 0x43, 0xF3, 0x0C, 0x6C, 0xAB, 0xED, +0x00, 0x6E, 0x40, 0xEA, 0x18, 0xE8, 0x09, 0x97, +0x12, 0xE8, 0x38, 0xE9, 0x12, 0xE9, 0x29, 0xE0, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x00, 0x6C, 0x0F, 0x6D, 0x0C, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0xB0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x00, 0x6E, 0xC3, 0xF3, +0x14, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF4, 0xA0, 0x9A, 0xE3, 0xF3, 0x1C, 0x6C, +0x80, 0x18, 0x72, 0x3C, 0x05, 0x97, 0x04, 0x90, +0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF6, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, 0xC3, 0xF3, +0x14, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF4, 0xA0, 0x9A, 0xE3, 0xF3, +0x1C, 0x69, 0x91, 0x67, 0x80, 0x18, 0x72, 0x3C, +0xFF, 0xF7, 0x1F, 0x68, 0x91, 0x67, 0xE1, 0xF7, +0x1F, 0x6D, 0x4C, 0xE8, 0xFF, 0xF7, 0x1F, 0x69, +0x80, 0x18, 0x72, 0x3C, 0x4C, 0xE9, 0x02, 0x32, +0x4E, 0x32, 0x01, 0x72, 0x06, 0x61, 0x02, 0xF0, +0x00, 0x6A, 0x03, 0xE2, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE8, 0x22, 0x32, 0x4E, 0x32, 0x01, 0x72, +0x06, 0x61, 0x02, 0xF0, 0x00, 0x6A, 0x27, 0xE2, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE9, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, +0xF0, 0x6E, 0xC3, 0xF3, 0x14, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0xE3, 0xF3, 0x1C, 0x6C, 0xFF, 0x6D, +0x80, 0x18, 0x72, 0x3C, 0xE3, 0xF3, 0x1C, 0x6C, +0x1F, 0xF7, 0x00, 0x6D, 0x04, 0xD2, 0x80, 0x18, +0x72, 0x3C, 0xC9, 0x58, 0x0C, 0x60, 0xC9, 0x59, +0x0A, 0x60, 0x04, 0x93, 0xFF, 0x6A, 0x6C, 0xEA, +0x28, 0x5A, 0x05, 0x61, 0x42, 0x5A, 0x58, 0x67, +0x01, 0x6B, 0x6E, 0xEA, 0x01, 0x10, 0x01, 0x6A, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, +0xB8, 0x9A, 0x04, 0x67, 0x63, 0xF6, 0x1C, 0x6C, +0x80, 0x18, 0x72, 0x3C, 0x01, 0x22, 0x01, 0x6A, +0x60, 0xF0, 0x5B, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0xF4, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xAE, 0xF7, 0x18, 0x4C, 0x00, 0x6D, 0x18, 0x6E, +0x80, 0x18, 0x9C, 0x4E, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF1, 0x7C, 0x9B, 0x80, 0xF0, 0x50, 0xC0, +0x05, 0x97, 0x4C, 0xEB, 0x62, 0x33, 0x62, 0x33, +0x80, 0xF0, 0x71, 0xC0, 0x06, 0xF0, 0x00, 0x6B, +0x4C, 0xEB, 0x62, 0x33, 0x72, 0x33, 0x80, 0xF0, +0x72, 0xC0, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x00, 0x6A, 0x0D, 0xD7, 0x05, 0x67, 0x26, 0x67, +0x04, 0xD2, 0x0B, 0x10, 0x80, 0xA8, 0x01, 0x6D, +0xAB, 0xED, 0x80, 0x18, 0x72, 0x3C, 0x40, 0xD9, +0x04, 0x93, 0x04, 0x48, 0x04, 0x49, 0x01, 0x4B, +0x04, 0xD3, 0x04, 0x92, 0x0D, 0x93, 0x63, 0xEA, +0xF1, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF2, 0x0C, 0x4B, 0xE0, 0x9B, 0xFF, 0x69, +0x30, 0xF0, 0x20, 0x68, 0xAC, 0xE9, 0xAE, 0xF7, +0x18, 0x48, 0x90, 0x67, 0xB1, 0x67, 0x01, 0x6A, +0x42, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF2, 0x0C, 0x4A, 0xE0, 0x9A, 0x90, 0x67, +0xB1, 0x67, 0x42, 0x6E, 0x80, 0x18, 0xE1, 0x4E, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, 0x0C, 0x4A, +0xE0, 0x9A, 0x01, 0x6B, 0xB1, 0x67, 0x90, 0x67, +0x42, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x0F, 0x6C, 0x40, 0xEA, 0x90, 0x67, 0xB1, 0x67, +0x42, 0x6E, 0x7E, 0x6F, 0x80, 0x18, 0x9C, 0x4E, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0xFF, 0x6B, +0x6C, 0xEA, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x00, 0x6A, 0x0A, 0xD4, 0x60, 0xF0, 0x5E, 0xCC, +0x0A, 0x90, 0x04, 0xD4, 0x00, 0x69, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x9A, 0x24, 0x36, +0x08, 0x6A, 0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, +0x0F, 0x6D, 0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x43, 0xF3, 0x18, 0x6C, +0x7F, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x00, 0x6A, +0x80, 0xF0, 0x55, 0xC0, 0x80, 0xF0, 0x53, 0xC0, +0x04, 0x94, 0x5B, 0x6B, 0xB1, 0x67, 0x20, 0xF1, +0x78, 0xCC, 0x80, 0xF0, 0x44, 0xC0, 0x0A, 0x94, +0x01, 0x49, 0x80, 0x18, 0x7B, 0x30, 0x80, 0xF0, +0x40, 0xC0, 0x04, 0x92, 0x02, 0x71, 0x01, 0x48, +0x02, 0x4A, 0x04, 0xD2, 0xD4, 0x61, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x0C, 0xD4, 0x80, 0xF0, 0x51, 0xA4, 0xFF, 0x68, +0xAC, 0xE8, 0x07, 0xD2, 0x5D, 0x2A, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x14, 0x4B, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0x9B, 0x83, 0xF6, 0x44, 0x9A, +0x30, 0xF0, 0x20, 0x69, 0xAE, 0xF7, 0x18, 0x49, +0x91, 0x67, 0xB0, 0x67, 0x00, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x14, 0x4A, 0xE0, 0x9A, 0x91, 0x67, +0xB0, 0x67, 0x56, 0x6E, 0x80, 0x18, 0x9C, 0x4E, +0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, +0xFC, 0x9A, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, +0xDE, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, +0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF2, 0xEC, 0x9A, 0x91, 0x67, 0xB0, 0x67, +0xDE, 0x6E, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6A, 0x07, 0x93, 0x83, 0xF6, 0xE8, 0x9A, +0x91, 0x67, 0xB0, 0x67, 0x55, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x14, 0x4B, 0xE0, 0x9B, 0x06, 0x92, +0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x55, 0x6E, 0x1C, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x07, 0x93, 0x30, 0xF0, +0x20, 0x6A, 0x91, 0x67, 0x04, 0xD3, 0xB0, 0x67, +0x87, 0x6E, 0x83, 0xF2, 0xE8, 0x9A, 0x6B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF6, 0x44, 0x9A, +0x30, 0xF0, 0x20, 0x69, 0xAE, 0xF7, 0x18, 0x49, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0x14, 0x4A, 0xE0, 0x9A, 0x91, 0x67, 0xB0, 0x67, +0x00, 0x6E, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x14, 0x4B, 0xE0, 0x9B, +0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, 0x80, 0x18, +0x9C, 0x4E, 0x06, 0xD2, 0x01, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0xFC, 0x9A, +0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, 0x80, 0x18, +0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, +0xEC, 0x9A, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, +0xDE, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, +0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF6, 0xE8, 0x9A, 0x91, 0x67, 0xB0, 0x67, +0x55, 0x6E, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0x14, 0x4A, 0x06, 0x93, +0xE0, 0x9A, 0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, +0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, 0x00, 0x6B, +0x91, 0x67, 0xB0, 0x67, 0x63, 0x6E, 0x18, 0xF0, +0x00, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, +0x06, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x63, 0x6E, +0x1C, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x63, 0x6E, +0x06, 0xF0, 0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x00, 0x6B, 0x04, 0xD3, 0x91, 0x67, +0xB0, 0x67, 0x8A, 0x6E, 0x18, 0x6F, 0x80, 0x18, +0xE1, 0x4E, 0x91, 0x67, 0x30, 0xF0, 0x20, 0x69, +0x0F, 0x6A, 0xB0, 0x67, 0x00, 0x6E, 0xE0, 0xF3, +0x00, 0x6F, 0xAE, 0xF7, 0x18, 0x49, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0xDE, 0x6E, 0x04, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x00, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x1A, 0x6E, 0x01, 0xF4, 0x00, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x0C, 0x93, +0x80, 0xF0, 0x52, 0xA3, 0x01, 0x72, 0x02, 0x6A, +0x01, 0x60, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x1A, 0x6E, 0x0E, 0xF0, 0x00, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6C, +0xB0, 0x67, 0x8F, 0x6E, 0x02, 0x6F, 0x30, 0xF0, +0x20, 0x68, 0x01, 0x6A, 0xAE, 0xF7, 0x18, 0x4C, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x80, 0xF3, +0x4C, 0x98, 0x14, 0x6C, 0x40, 0xEA, 0x80, 0xF3, +0x4C, 0x98, 0x14, 0x6C, 0x40, 0xEA, 0x80, 0xF3, +0x4C, 0x98, 0x14, 0x6C, 0x40, 0xEA, 0x80, 0xF3, +0x4C, 0x98, 0x14, 0x6C, 0x40, 0xEA, 0x80, 0xF3, +0x4C, 0x98, 0x14, 0x6C, 0x40, 0xEA, 0x06, 0x93, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x1F, 0x6A, +0x6C, 0xEA, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x00, 0x69, 0x0A, 0xD4, 0x00, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0xF4, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xFF, 0x6D, 0xAE, 0xF7, +0x18, 0x4C, 0x2C, 0xED, 0x19, 0x6E, 0x30, 0xF0, +0x20, 0x68, 0x80, 0x18, 0xE1, 0x4E, 0xC0, 0xF3, +0x64, 0x98, 0x08, 0x6A, 0x24, 0x36, 0x01, 0x6D, +0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEB, 0x0A, 0x93, 0x80, 0xF0, 0x51, 0xA3, +0x0B, 0x2A, 0x01, 0x6D, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x83, 0xF6, 0xCC, 0x9B, 0x0A, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x83, 0xF6, 0xD0, 0x9B, 0x01, 0x6D, 0x63, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x30, 0xF0, 0x20, 0x68, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF3, +0x04, 0x6C, 0x0E, 0xF0, 0x00, 0x6D, 0x04, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xE3, 0xF4, 0xA4, 0x9B, 0x23, 0xF3, +0x00, 0x6C, 0x03, 0x6E, 0x01, 0x49, 0x40, 0xEA, +0x02, 0x71, 0xB4, 0x61, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x0C, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x83, 0xF6, 0xD4, 0x9B, 0x01, 0x69, +0x2B, 0xE9, 0xB1, 0x67, 0xE3, 0xF3, 0x04, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x83, 0xF6, 0xD8, 0x9B, 0xB1, 0x67, +0xE3, 0xF3, 0x08, 0x6C, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF6, 0x5C, 0x9A, +0xFF, 0x69, 0x30, 0xF0, 0x20, 0x68, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x14, 0x4A, +0xE0, 0x9A, 0xAE, 0xF7, 0x18, 0x48, 0xAC, 0xE9, +0x90, 0x67, 0xB1, 0x67, 0x92, 0x6E, 0x80, 0x18, +0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x05, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x14, 0x4B, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF6, 0x40, 0x9A, 0xE0, 0x9B, +0x90, 0x67, 0xB1, 0x67, 0x92, 0x6E, 0x04, 0xD2, +0x00, 0x68, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, +0x01, 0x48, 0x40, 0xEA, 0xFF, 0x6A, 0x4C, 0xE8, +0x1E, 0x70, 0xF5, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF6, 0x5C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xB1, 0x67, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0xF4, 0x9A, 0xAE, 0xF7, 0x18, 0x4C, +0x92, 0x6E, 0x80, 0x18, 0xE1, 0x4E, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x00, 0x6A, 0x06, 0xD5, 0x06, 0x67, 0x07, 0xD2, +0x40, 0x98, 0x06, 0x93, 0x30, 0xF0, 0x20, 0x69, +0xAE, 0xF7, 0x18, 0x49, 0xC0, 0x9B, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x14, 0x4A, +0xE0, 0x9A, 0x91, 0x67, 0x00, 0x6D, 0x80, 0x18, +0xE1, 0x4E, 0x41, 0x98, 0x06, 0x93, 0x91, 0x67, +0x01, 0x6D, 0xC0, 0x9B, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0x14, 0x4A, 0xE0, 0x9A, +0x08, 0x48, 0x80, 0x18, 0xE1, 0x4E, 0x07, 0x93, +0x06, 0x92, 0x01, 0x4B, 0x04, 0x4A, 0x07, 0x73, +0x07, 0xD3, 0x06, 0xD2, 0xD9, 0x61, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x00, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF6, +0x5C, 0x9A, 0x30, 0xF0, 0x20, 0x69, 0xAE, 0xF7, +0x18, 0x49, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x14, 0x4A, 0xE0, 0x9A, 0x91, 0x67, +0xB0, 0x67, 0x92, 0x6E, 0x80, 0x18, 0xE1, 0x4E, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x05, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x14, 0x4B, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF6, 0x40, 0x9A, 0xE0, 0x9B, 0x91, 0x67, +0xB0, 0x67, 0x92, 0x6E, 0x04, 0xD2, 0x00, 0x69, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, 0x01, 0x49, +0x40, 0xEA, 0xFF, 0x6A, 0x4C, 0xE9, 0x1E, 0x71, +0xF5, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF6, +0x5C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xB0, 0x67, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0xF4, 0x9A, 0xAE, 0xF7, 0x18, 0x4C, 0x92, 0x6E, +0x80, 0x18, 0xE1, 0x4E, 0x01, 0x48, 0xFF, 0x6B, +0x6C, 0xE8, 0x02, 0x70, 0xB6, 0x61, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x00, 0x69, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF5, +0xB4, 0x9A, 0x02, 0xF7, 0x00, 0x6C, 0x80, 0x18, +0xEA, 0x3C, 0x20, 0x6B, 0x4C, 0xEB, 0x12, 0x2B, +0x00, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x14, 0x6C, 0x01, 0x48, 0x40, 0xEA, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0xE0, 0xF1, +0x14, 0x70, 0xF3, 0x61, 0x01, 0x49, 0x0A, 0x71, +0xE4, 0x61, 0x0A, 0x69, 0x51, 0x67, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0xF7, 0x1F, 0x68, 0xAC, 0xE8, 0x80, 0x18, +0xF6, 0x31, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF5, +0xD8, 0x9A, 0x01, 0x69, 0x2B, 0xE9, 0x0D, 0xEE, +0xB1, 0x67, 0x02, 0xF7, 0x00, 0x6C, 0x80, 0x18, +0xFF, 0x3C, 0xB1, 0x67, 0x02, 0xF7, 0x08, 0x6C, +0x80, 0x18, 0xEA, 0x3C, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0xF7, 0x1F, 0x68, 0x24, 0x67, 0x0C, 0xD6, +0x0D, 0xD7, 0xAC, 0xE8, 0x38, 0x26, 0x66, 0x67, +0x01, 0x4B, 0x00, 0x6A, 0x09, 0x2B, 0x01, 0x69, +0x2B, 0xE9, 0x80, 0x18, 0xF6, 0x31, 0x02, 0xF7, +0x04, 0x6C, 0xB1, 0x67, 0x0D, 0x96, 0x1F, 0x10, +0x0C, 0x93, 0x01, 0x6C, 0x66, 0xEA, 0x8C, 0xEB, +0x04, 0x2B, 0x01, 0x4A, 0x20, 0x72, 0xF8, 0x61, +0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x05, 0xD2, +0x80, 0x18, 0x0A, 0x32, 0x0C, 0x93, 0x91, 0x67, +0x01, 0x69, 0x6F, 0xEB, 0x4C, 0xEB, 0x04, 0xD3, +0x80, 0x18, 0xF6, 0x31, 0x0D, 0x96, 0x05, 0x92, +0x04, 0x93, 0x2B, 0xE9, 0xC4, 0xEA, 0x02, 0xF7, +0x04, 0x6C, 0xB1, 0x67, 0x6D, 0xEE, 0x80, 0x18, +0xFF, 0x3C, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF5, +0xDC, 0x9A, 0x02, 0xF7, 0x00, 0x6C, 0xB1, 0x67, +0x0D, 0xEE, 0x80, 0x18, 0xFF, 0x3C, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0xAC, 0xEA, 0x04, 0x67, 0x1D, 0x22, +0x01, 0x6D, 0x70, 0x6C, 0xAB, 0xED, 0x80, 0x18, +0xEA, 0x3C, 0x80, 0xF0, 0x48, 0xD8, 0x90, 0x67, +0x38, 0x6D, 0x80, 0x18, 0x0A, 0x32, 0x80, 0xF0, +0x4C, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF4, +0xA8, 0x9A, 0x70, 0x6C, 0x01, 0x6E, 0x80, 0x18, +0xFF, 0x3C, 0x90, 0x67, 0x38, 0x6D, 0x1F, 0xF7, +0x00, 0x6E, 0x77, 0x6F, 0x80, 0x18, 0x1A, 0x32, +0x0E, 0x10, 0x01, 0x69, 0x80, 0xF0, 0xEC, 0x98, +0x2B, 0xE9, 0x38, 0x6D, 0xD1, 0x67, 0x80, 0x18, +0x1A, 0x32, 0x80, 0xF0, 0xC8, 0x98, 0x70, 0x6C, +0xB1, 0x67, 0x80, 0x18, 0xFF, 0x3C, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x4C, 0xED, 0x0A, 0xD4, 0x04, 0xD5, +0x80, 0xF0, 0x72, 0xA4, 0x01, 0x6C, 0x26, 0x67, +0x8E, 0xEB, 0x01, 0x5B, 0x4C, 0xE9, 0x78, 0x67, +0x01, 0x71, 0x64, 0x33, 0x03, 0x61, 0x05, 0x67, +0x14, 0x48, 0x10, 0x10, 0x02, 0x71, 0x03, 0x61, +0x04, 0x90, 0x16, 0x48, 0x0A, 0x10, 0x03, 0x71, +0x03, 0x61, 0x04, 0x90, 0x1A, 0x48, 0x06, 0x10, +0x04, 0x71, 0x00, 0x68, 0x04, 0x61, 0x04, 0x90, +0x1C, 0x48, 0x01, 0xE3, 0x4C, 0xE8, 0x0A, 0x94, +0x01, 0x6D, 0x80, 0x18, 0x3E, 0x32, 0x4A, 0x29, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF3, 0x14, 0x49, 0x91, 0x67, 0x02, 0xF0, +0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0x02, 0xF0, 0x00, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x00, 0x6E, 0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x14, 0x6C, 0x00, 0x68, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF1, 0xB0, 0x9A, 0xE3, 0xF3, +0x1C, 0x6C, 0x80, 0x18, 0x72, 0x3C, 0xFF, 0x6B, +0x4C, 0xEB, 0x14, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, 0x01, 0x48, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, +0xB0, 0x9A, 0xE3, 0xF3, 0x1C, 0x6C, 0x80, 0x18, +0x72, 0x3C, 0xFF, 0x6B, 0x4C, 0xEB, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xE8, 0x01, 0x73, 0x60, 0x60, +0xE0, 0xF3, 0x08, 0x70, 0xE7, 0x61, 0xE0, 0xF3, +0x08, 0x68, 0x5A, 0x10, 0x04, 0x92, 0x30, 0xF0, +0x20, 0x69, 0xC0, 0xF3, 0x64, 0x99, 0x44, 0x36, +0x08, 0x6A, 0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, +0x0F, 0x6D, 0x40, 0xEB, 0xC0, 0xF3, 0x44, 0x99, +0xC3, 0xF3, 0x0C, 0x6C, 0x3F, 0x6D, 0x09, 0x6E, +0x40, 0xEA, 0x00, 0x30, 0x48, 0x6A, 0x4D, 0xE8, +0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0xD0, 0x67, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0xC1, 0x40, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x85, 0xF5, 0x1C, 0x6C, 0xFF, 0x6D, 0x80, 0x18, +0x72, 0x3C, 0xFF, 0x6B, 0x4C, 0xEB, 0x00, 0x68, +0x11, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x14, 0x6C, 0x01, 0x48, 0x40, 0xEA, +0x85, 0xF5, 0x1C, 0x6C, 0xFF, 0x6D, 0x80, 0x18, +0x72, 0x3C, 0xFF, 0x6B, 0x4C, 0xEB, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xE8, 0x55, 0x73, 0x05, 0x60, +0xE0, 0xF3, 0x08, 0x70, 0xEA, 0x61, 0xE0, 0xF3, +0x08, 0x68, 0x04, 0x94, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x44, 0x99, 0x84, 0x36, 0x08, 0x6B, +0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x6D, 0xEE, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xC3, 0xF3, +0x0C, 0x6C, 0x3F, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x0A, 0x94, 0x00, 0x6D, 0x80, 0x18, 0x3E, 0x32, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xE0, 0xF3, 0x08, 0x6A, 0x0E, 0xEA, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x01, 0x5A, +0x58, 0x67, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x60, 0xF0, 0x5E, 0xAC, 0x24, 0x67, 0x03, 0x2A, +0x80, 0xF0, 0x50, 0xA4, 0x71, 0x22, 0x80, 0x18, +0x53, 0x30, 0x00, 0x68, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x04, 0x36, 0x08, 0x6B, +0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x6D, 0xEE, +0x40, 0xEA, 0x80, 0xF0, 0x51, 0xA1, 0x0D, 0x2A, +0x30, 0xF0, 0x20, 0x6C, 0x01, 0x6D, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9C, 0xAB, 0xED, +0x63, 0xF3, 0x00, 0x6C, 0x83, 0xF6, 0xCC, 0x9B, +0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF6, +0xD0, 0x9B, 0x01, 0x6D, 0x63, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x0D, 0xE1, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0x80, 0xF0, +0xD5, 0xA3, 0xC0, 0xF3, 0x44, 0x9C, 0xC3, 0xF5, +0xB4, 0x9D, 0x63, 0xF3, 0x04, 0x6C, 0x40, 0xEA, +0x60, 0xF0, 0xDE, 0xA1, 0x01, 0x6A, 0x44, 0xE8, +0x47, 0xE8, 0x4C, 0xEE, 0x91, 0x67, 0xB0, 0x67, +0x80, 0x18, 0x82, 0x2D, 0x91, 0x67, 0xB0, 0x67, +0x03, 0x6E, 0x80, 0x18, 0x5A, 0x32, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x03, 0xF3, +0x00, 0x6C, 0x0F, 0x6D, 0x0C, 0x6E, 0x40, 0xEA, +0xFF, 0x6A, 0x0C, 0xEA, 0x0D, 0x2A, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9C, 0xA3, 0xF6, 0xA4, 0x9B, 0x03, 0xF3, +0x04, 0x6C, 0x20, 0xF1, 0xD8, 0xA9, 0x0C, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF6, 0xA4, 0x9B, +0x20, 0xF1, 0xDA, 0xA9, 0x43, 0xF3, 0x1C, 0x6C, +0x01, 0x48, 0x40, 0xEA, 0x02, 0x70, 0x92, 0x61, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x00, 0x6A, 0x60, 0xF0, 0x5C, 0xC4, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0xF4, 0x9A, +0x04, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0xAE, 0xF7, +0x18, 0x4C, 0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, +0x9C, 0x4E, 0x80, 0xF0, 0x90, 0xA0, 0xFF, 0x6B, +0x4C, 0xEB, 0x8E, 0xEB, 0x06, 0x2B, 0x90, 0x67, +0x80, 0x18, 0xCE, 0x32, 0x01, 0x6A, 0x60, 0xF0, +0x5C, 0xC0, 0x60, 0xF0, 0x5C, 0xA0, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0xAC, 0xEA, +0x04, 0xD2, 0x44, 0x36, 0xC0, 0xF3, 0x44, 0x98, +0x08, 0x6B, 0x6D, 0xEE, 0x0A, 0xD4, 0x0F, 0x6D, +0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF4, 0xA4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x00, 0x69, 0x91, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF4, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x7F, 0x49, +0xC0, 0xF3, 0x44, 0x98, 0x2D, 0x49, 0x91, 0x67, +0x3F, 0x6D, 0x09, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF2, 0xA4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, +0x0F, 0x6D, 0x0C, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF3, 0x14, 0x6C, 0xF0, 0x6D, +0x0F, 0x6E, 0x40, 0xEA, 0x04, 0x93, 0x12, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF6, 0xA4, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF6, 0xC8, 0x9B, 0x03, 0xF3, 0x04, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x08, 0x6C, 0x11, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF6, 0xA4, 0x9B, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF6, 0xC8, 0x9B, +0x43, 0xF3, 0x1C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x63, 0xF3, 0x00, 0x6C, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF1, 0xB0, 0x9B, 0x01, 0x6E, +0x40, 0xEA, 0x0A, 0x93, 0x80, 0xF0, 0x52, 0xA3, +0x01, 0x72, 0x41, 0x61, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF6, 0xCC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, +0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF3, 0x18, 0x6C, +0xB1, 0x67, 0x02, 0xF3, 0x10, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF6, 0xD0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF3, 0x18, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF6, 0xD4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF3, 0x18, 0x6C, +0xB1, 0x67, 0x36, 0xF4, 0x08, 0x6E, 0x40, 0xEA, +0x04, 0x92, 0x01, 0x6E, 0x30, 0xF0, 0x20, 0x6B, +0xC4, 0xEA, 0x00, 0xF7, 0xC0, 0x36, 0xC0, 0xF3, +0x44, 0x98, 0xE3, 0xF3, 0x14, 0x6C, 0xB1, 0x67, +0xA3, 0xF6, 0x78, 0x9B, 0x42, 0x10, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF6, +0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, +0x2B, 0xE9, 0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF6, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF3, +0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF6, 0xC4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF6, +0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF3, +0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, +0x36, 0xF4, 0x08, 0x6E, 0x40, 0xEA, 0x04, 0x93, +0x01, 0x6E, 0xC0, 0xF3, 0x44, 0x98, 0xC4, 0xEB, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF6, 0x6C, 0x9B, +0x00, 0xF7, 0xC0, 0x36, 0xE3, 0xF3, 0x14, 0x6C, +0xB1, 0x67, 0x6D, 0xEE, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0xC3, 0xF5, +0x34, 0x9A, 0x04, 0x96, 0xC0, 0xF3, 0x44, 0x98, +0x08, 0x6B, 0x6D, 0xEE, 0xB1, 0x67, 0xA3, 0xF3, +0x14, 0x6C, 0x40, 0xEA, 0x0A, 0x94, 0x04, 0x95, +0x00, 0x6E, 0x80, 0x18, 0x5A, 0x32, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0xE3, 0xF3, 0x14, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x04, 0x92, 0x08, 0x6B, +0x03, 0xF3, 0x00, 0x6C, 0x44, 0x36, 0xC0, 0xF3, +0x44, 0x98, 0x6D, 0xEE, 0x0F, 0x6D, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF6, 0xB0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x69, +0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF2, 0xA4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, +0x0F, 0x6D, 0x0C, 0x6E, 0x40, 0xEA, 0x04, 0x92, +0x05, 0x2A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x04, 0x6C, 0x04, 0x10, 0xC0, 0xF3, 0x44, 0x98, +0x43, 0xF3, 0x1C, 0x6C, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF6, 0xA4, 0x9B, 0x5B, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, +0xC3, 0xF3, 0x14, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF4, 0xA0, 0x9A, +0xE3, 0xF3, 0x1C, 0x6C, 0x80, 0x18, 0x72, 0x3C, +0xFF, 0xF7, 0x1F, 0x6B, 0x80, 0xF3, 0x0E, 0x6C, +0x6C, 0xEA, 0x98, 0xEA, 0x0A, 0x6C, 0x12, 0xE8, +0x02, 0x30, 0x0A, 0x30, 0x9B, 0xE8, 0x01, 0x2C, +0xE5, 0xE8, 0x10, 0xEC, 0x05, 0x5C, 0x12, 0xE8, +0x6C, 0xE8, 0x02, 0x61, 0x01, 0x48, 0x6C, 0xE8, +0x04, 0x92, 0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF3, 0x04, 0x6C, +0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x43, 0xF3, 0x1C, 0x6C, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF6, 0xA4, 0x9B, 0xD0, 0x67, +0x40, 0xEA, 0x04, 0x92, 0x0A, 0x93, 0x7F, 0x4A, +0x1D, 0x4A, 0x44, 0x32, 0x49, 0xE3, 0x00, 0xCA, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0xAC, 0xE8, +0xB0, 0x67, 0x03, 0x6E, 0x24, 0x67, 0x80, 0x18, +0x5A, 0x32, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9B, 0x04, 0x36, 0x08, 0x6B, 0x6D, 0xEE, +0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, 0xA4, 0x9B, +0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x60, 0xF0, 0x7E, 0xA9, 0x01, 0x6A, 0x44, 0xE8, +0x6C, 0xEA, 0x47, 0xE8, 0x04, 0x22, 0x91, 0x67, +0xB0, 0x67, 0x80, 0x18, 0x22, 0x33, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x68, 0xCC, 0xE8, 0xB0, 0x67, 0x02, 0x6E, +0x24, 0x67, 0x80, 0x18, 0x5A, 0x32, 0x07, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x08, 0x6B, 0x04, 0x36, 0x6D, 0xEE, 0x03, 0xF3, +0x00, 0x6C, 0x0F, 0x6D, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF4, 0xA8, 0x9A, 0x03, 0xF3, +0x08, 0x6C, 0x80, 0x18, 0x72, 0x3C, 0x06, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, 0x54, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xB0, 0x67, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0xF4, 0x9A, +0x00, 0x6E, 0xAE, 0xF7, 0x18, 0x4C, 0x80, 0x18, +0xE1, 0x4E, 0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, +0xDB, 0x2E, 0x06, 0x93, 0x07, 0x92, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x6D, 0xEA, 0xFF, 0x6B, +0x6C, 0xEA, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x25, 0x67, 0x4C, 0xEE, 0x4C, 0xE9, +0xEC, 0xEA, 0x01, 0x72, 0x04, 0x67, 0x04, 0xD6, +0x17, 0x61, 0xB1, 0x67, 0x04, 0x6E, 0x80, 0x18, +0x5A, 0x32, 0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, +0x0E, 0x30, 0x00, 0xF6, 0x00, 0x5A, 0x04, 0x61, +0x04, 0x93, 0x02, 0x6A, 0x23, 0x2B, 0x25, 0x10, +0x04, 0x94, 0x00, 0xF3, 0x00, 0x5A, 0x78, 0x67, +0x01, 0x5C, 0x58, 0x67, 0x1E, 0x2B, 0x1A, 0x10, +0x19, 0x2A, 0xB1, 0x67, 0x00, 0x6E, 0x80, 0x18, +0xC7, 0x2F, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF6, +0x78, 0x9B, 0x43, 0xEB, 0x11, 0x60, 0x42, 0x34, +0x96, 0x34, 0x80, 0x18, 0xF6, 0x2A, 0x03, 0x6B, +0x78, 0xEA, 0x03, 0x6A, 0x12, 0xEB, 0xFE, 0xF0, +0x02, 0x4B, 0xE0, 0xF3, 0x09, 0x5B, 0x05, 0x60, +0xFA, 0x5B, 0x02, 0x61, 0x00, 0x6A, 0x01, 0x10, +0x04, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xF7, 0x63, 0x11, 0x62, +0x10, 0xD1, 0x0F, 0xD0, 0xFF, 0x6A, 0x25, 0x67, +0x4C, 0xEE, 0x4C, 0xEF, 0x4C, 0xE9, 0x00, 0x6A, +0x12, 0xD4, 0x0C, 0xD6, 0x0A, 0xD7, 0x07, 0xD2, +0x08, 0xD2, 0x09, 0xD2, 0x06, 0xD2, 0x02, 0x67, +0x06, 0x5A, 0x80, 0xF0, 0x1C, 0x60, 0x30, 0xF0, +0x20, 0x6B, 0x48, 0x32, 0xC2, 0xF6, 0x10, 0x4B, +0x49, 0xE3, 0x40, 0x9A, 0x00, 0xEA, 0x30, 0xF0, +0x20, 0x68, 0xAE, 0xF7, 0x18, 0x48, 0x90, 0x67, +0xB1, 0x67, 0x56, 0x6E, 0x1F, 0x6F, 0x80, 0x18, +0x9C, 0x4E, 0x90, 0x67, 0xB1, 0x67, 0x00, 0x6E, +0xE0, 0xF3, 0x00, 0x6F, 0x0B, 0xD2, 0x80, 0x18, +0x9C, 0x4E, 0x0A, 0x94, 0x06, 0xD2, 0x0D, 0x2C, +0x12, 0x94, 0x08, 0x96, 0xB1, 0x67, 0x01, 0x6F, +0x80, 0x18, 0x26, 0x34, 0x07, 0x2A, 0x0C, 0x92, +0x04, 0x22, 0x01, 0x6B, 0x09, 0xD3, 0x0A, 0x92, +0x01, 0x10, 0x05, 0x6A, 0x06, 0x94, 0xFF, 0x6B, +0x0B, 0x90, 0x6C, 0xEC, 0x06, 0xD4, 0x07, 0x94, +0x6C, 0xE8, 0x01, 0x4C, 0x6C, 0xEC, 0x07, 0xD4, +0x60, 0x10, 0x06, 0x92, 0x0F, 0x5A, 0x12, 0x60, +0x06, 0x92, 0xFF, 0x6B, 0xF4, 0x4A, 0x6C, 0xEA, +0x03, 0x5A, 0x54, 0x60, 0x00, 0x6A, 0x30, 0xF0, +0x20, 0x6C, 0x04, 0xD2, 0xAE, 0xF7, 0x18, 0x4C, +0xB1, 0x67, 0xC2, 0x67, 0x13, 0x10, 0x06, 0x93, +0x0C, 0x5B, 0x02, 0x60, 0x0C, 0x6A, 0x07, 0x10, +0x06, 0x92, 0xFF, 0x6B, 0xF4, 0x4A, 0x6C, 0xEA, +0x03, 0x5A, 0x40, 0x60, 0x0F, 0x6A, 0x30, 0xF0, +0x20, 0x6C, 0x04, 0xD2, 0xAE, 0xF7, 0x18, 0x4C, +0xB1, 0x67, 0x00, 0x6E, 0xE0, 0xF3, 0x00, 0x6F, +0x80, 0x18, 0xE1, 0x4E, 0x35, 0x10, 0x3B, 0x20, +0xFF, 0x6A, 0xFE, 0x48, 0x30, 0xF0, 0x20, 0x6C, +0x4C, 0xE8, 0xAE, 0xF7, 0x18, 0x4C, 0xB1, 0x67, +0x56, 0x6E, 0x1F, 0x6F, 0x04, 0xD0, 0x80, 0x18, +0xE1, 0x4E, 0x00, 0x6C, 0x08, 0xD4, 0x44, 0x67, +0x24, 0x10, 0x1F, 0x70, 0x02, 0x61, 0x1F, 0x68, +0x26, 0x10, 0xFF, 0x6A, 0x03, 0x48, 0x30, 0xF0, +0x20, 0x6C, 0x4C, 0xE8, 0xAE, 0xF7, 0x18, 0x4C, +0xB1, 0x67, 0x56, 0x6E, 0x1F, 0x6F, 0x04, 0xD0, +0x80, 0x18, 0xE1, 0x4E, 0x00, 0x6A, 0x08, 0xD2, +0x10, 0x10, 0x12, 0x94, 0xB1, 0x67, 0x01, 0x6E, +0x80, 0x18, 0x5A, 0x32, 0x12, 0x94, 0x08, 0x96, +0xB1, 0x67, 0x00, 0x6F, 0x80, 0x18, 0x26, 0x34, +0x0A, 0x22, 0x03, 0x10, 0x01, 0x6B, 0x08, 0xD3, +0x00, 0x6A, 0x09, 0x94, 0x04, 0x2C, 0x07, 0x93, +0x06, 0x5B, 0x7F, 0xF7, 0x01, 0x61, 0x50, 0x67, +0x11, 0x97, 0x10, 0x91, 0x0F, 0x90, 0x09, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, +0x0E, 0xD1, 0x0D, 0xD0, 0xFF, 0x68, 0xAC, 0xE8, +0xB0, 0x67, 0x24, 0x67, 0x80, 0x18, 0xBA, 0x30, +0x30, 0xF0, 0x20, 0x6C, 0x1F, 0x6F, 0x00, 0x6E, +0xAE, 0xF7, 0x18, 0x4C, 0xB0, 0x67, 0x0A, 0xD2, +0x80, 0x18, 0x9C, 0x4E, 0x91, 0x67, 0xB0, 0x67, +0x09, 0xD2, 0x80, 0x18, 0x8A, 0x31, 0x91, 0x67, +0xB0, 0x67, 0x04, 0x6E, 0x80, 0x18, 0x5A, 0x32, +0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, 0x0E, 0x30, +0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, 0x21, 0x30, +0x0D, 0x22, 0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, +0x8A, 0x31, 0x91, 0x67, 0xB0, 0x67, 0x04, 0x6E, +0x80, 0x18, 0x5A, 0x32, 0x91, 0x67, 0xB0, 0x67, +0x80, 0x18, 0x21, 0x30, 0x91, 0x67, 0xB0, 0x67, +0x80, 0x18, 0x7B, 0x30, 0x91, 0x67, 0xB0, 0x67, +0x00, 0x6E, 0x01, 0x6F, 0x07, 0xD2, 0x80, 0x18, +0x49, 0x34, 0x91, 0x67, 0xB0, 0x67, 0x08, 0xD2, +0x80, 0x18, 0xAA, 0x2F, 0x08, 0x93, 0x00, 0x6C, +0x06, 0xD4, 0x43, 0xEB, 0x06, 0x61, 0x4B, 0xE3, +0x06, 0xD2, 0x06, 0x94, 0xFF, 0x6A, 0x4C, 0xEC, +0x06, 0xD4, 0x06, 0x92, 0x30, 0xF0, 0x20, 0x6C, +0xAE, 0xF7, 0x18, 0x4C, 0xB0, 0x67, 0x56, 0x6E, +0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, 0x7B, 0x30, +0x07, 0x93, 0x43, 0xEB, 0x02, 0x60, 0x6B, 0xE2, +0x02, 0x10, 0x07, 0x94, 0x4B, 0xE4, 0xFF, 0x6B, +0x6C, 0xEA, 0x01, 0xE1, 0x20, 0xF1, 0x5C, 0xC0, +0x09, 0x93, 0x0A, 0x94, 0x0F, 0x97, 0x0E, 0x91, +0x8B, 0xE3, 0x06, 0x93, 0x0D, 0x90, 0x49, 0xE3, +0xFF, 0x6B, 0x6C, 0xEA, 0x08, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x68, 0xAC, 0xE8, 0xB0, 0x67, 0x24, 0x67, +0x80, 0x18, 0xA5, 0x34, 0xA2, 0x67, 0x91, 0x67, +0xD0, 0x67, 0x04, 0xD2, 0x80, 0x18, 0x06, 0x34, +0x04, 0x96, 0x91, 0x67, 0xA2, 0x67, 0xF0, 0x67, +0x80, 0x18, 0xB6, 0x2E, 0x09, 0xE1, 0x80, 0xF0, +0x53, 0xA2, 0x07, 0x22, 0x60, 0xF0, 0x7E, 0xA9, +0x01, 0x6A, 0x44, 0xE8, 0x6D, 0xEA, 0x60, 0xF0, +0x5E, 0xC9, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x00, 0x6D, 0x04, 0x67, 0x80, 0x18, +0xE0, 0x34, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, +0xE0, 0x34, 0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, +0xED, 0x33, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, +0xED, 0x33, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xDF, 0x63, 0x41, 0x62, +0x40, 0xD1, 0x3F, 0xD0, 0x30, 0xF0, 0x20, 0x6D, +0x24, 0x67, 0x02, 0xF7, 0x04, 0x4D, 0x2B, 0x04, +0x48, 0x6E, 0x00, 0x18, 0xD5, 0xD3, 0x30, 0xF0, +0x20, 0x6D, 0x04, 0x04, 0xE2, 0xF6, 0x08, 0x4D, +0x1C, 0x6E, 0x00, 0x18, 0xD5, 0xD3, 0x52, 0x99, +0x40, 0xA2, 0x04, 0x2A, 0x91, 0x67, 0x80, 0x18, +0x0F, 0x33, 0x3C, 0x2A, 0x91, 0x67, 0x80, 0x18, +0x53, 0x30, 0x04, 0x00, 0x12, 0x6F, 0x91, 0x67, +0x2B, 0x05, 0x19, 0x06, 0x80, 0x18, 0x6C, 0x30, +0x0B, 0x06, 0xB0, 0x67, 0x91, 0x67, 0x80, 0x18, +0x77, 0x2E, 0x91, 0x67, 0x80, 0x18, 0x24, 0x2E, +0x91, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x57, 0x2B, +0x01, 0x6D, 0x91, 0x67, 0x80, 0x18, 0x31, 0x2B, +0x91, 0x67, 0x80, 0x18, 0x50, 0x31, 0x91, 0x67, +0x80, 0x18, 0x9C, 0x30, 0x91, 0x67, 0x80, 0x18, +0xF3, 0x34, 0x91, 0x67, 0x80, 0x18, 0xAE, 0x2D, +0x91, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x31, 0x2B, +0x91, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x57, 0x2B, +0xB0, 0x67, 0x0B, 0x06, 0x91, 0x67, 0x80, 0x18, +0xB2, 0x31, 0x91, 0x67, 0x80, 0x18, 0xCC, 0x31, +0x91, 0x67, 0x2B, 0x05, 0x19, 0x06, 0x12, 0x6F, +0x80, 0x18, 0x12, 0x2B, 0x41, 0x97, 0x40, 0x91, +0x3F, 0x90, 0x21, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x69, 0x2C, 0xED, 0x01, 0x75, 0x58, 0x67, +0x0C, 0xD4, 0x06, 0xD2, 0x80, 0xF0, 0x0C, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x34, 0x9A, +0x00, 0x6D, 0xC5, 0x67, 0xF1, 0x67, 0x80, 0x18, +0x9C, 0x4E, 0x30, 0xF0, 0x20, 0x68, 0x0C, 0x94, +0xA6, 0xF6, 0x00, 0x48, 0xF1, 0x67, 0x23, 0xF4, +0x44, 0xD8, 0x01, 0x6D, 0x00, 0x6E, 0x80, 0x18, +0x9C, 0x4E, 0x23, 0xF4, 0x48, 0xD8, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x0C, 0x6C, 0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x00, 0x6E, 0x08, 0xF1, +0x0C, 0x6C, 0x03, 0x6D, 0x40, 0xEA, 0x01, 0x6D, +0x21, 0xF0, 0x04, 0x6C, 0xAB, 0xED, 0x80, 0x18, +0x72, 0x3C, 0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x64, 0x98, 0xE3, 0xF5, 0xA8, 0x9A, +0x21, 0xF0, 0x04, 0x6C, 0x03, 0x6E, 0x40, 0xEB, +0x06, 0x93, 0x0C, 0x94, 0x00, 0x6D, 0xC5, 0x67, +0xF1, 0x67, 0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, +0x06, 0x92, 0x0C, 0x94, 0xF1, 0x67, 0x01, 0x6D, +0x00, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0xC0, 0xF3, 0x44, 0x98, 0x07, 0x96, 0x01, 0x6D, +0x21, 0xF0, 0x04, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x0C, 0x94, 0x00, 0x68, 0x80, 0x18, 0x2F, 0x4F, +0x0C, 0x94, 0x80, 0x18, 0x4F, 0x4C, 0x1B, 0x2A, +0xE0, 0xF3, 0x09, 0x70, 0x0D, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF2, 0x60, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x63, 0xF7, 0x98, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x00, 0x6A, 0x91, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x32, 0x6C, 0x01, 0x48, 0x40, 0xEA, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xE8, 0xE1, 0x17, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, +0x04, 0x6C, 0x08, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x70, 0x9A, +0xFE, 0x6A, 0x01, 0x6D, 0x80, 0xA3, 0xC5, 0x67, +0x8C, 0xEA, 0x40, 0xC3, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF4, 0x04, 0x6C, 0x40, 0xEA, 0x6C, 0x10, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x00, 0x6E, 0x23, 0xF4, 0x04, 0x6C, +0x40, 0xEA, 0x00, 0x18, 0x77, 0xDF, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF1, 0x70, 0x9A, 0x01, 0x6C, +0x40, 0xA3, 0x2C, 0xEA, 0x8D, 0xEA, 0x2C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x69, 0xA6, 0xF6, +0x00, 0x49, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6E, 0x63, 0xF4, 0x04, 0x6C, 0x08, 0x6D, +0x40, 0xEA, 0x01, 0x6D, 0x21, 0xF0, 0x04, 0x6C, +0xAB, 0xED, 0x80, 0x18, 0x72, 0x3C, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF5, 0xA8, 0x9B, 0x06, 0xD2, +0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, 0x04, 0x6C, +0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x14, 0x4B, 0xE0, 0x9B, 0x23, 0xF4, +0x44, 0x99, 0x0C, 0x94, 0x00, 0x6D, 0xC5, 0x67, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x23, 0xF4, +0x48, 0x99, 0x0C, 0x94, 0x01, 0x6D, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x14, 0x4A, +0xE0, 0x9A, 0x00, 0x6E, 0x80, 0x18, 0xE1, 0x4E, +0xC0, 0xF3, 0x44, 0x98, 0x06, 0x96, 0x01, 0x6D, +0xAB, 0xED, 0x21, 0xF0, 0x04, 0x6C, 0x40, 0xEA, +0x0C, 0x94, 0x80, 0x18, 0x46, 0x4F, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0x6D, 0xC5, 0x67, 0x03, 0xF0, +0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0x6D, 0x08, 0xF1, 0x0C, 0x6C, 0xC5, 0x67, +0x40, 0xEA, 0x0C, 0x94, 0x80, 0x18, 0x04, 0x4F, +0x01, 0x6A, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x46, 0xF7, +0x08, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x80, 0xA4, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x01, 0x6B, +0x8C, 0xEB, 0xC3, 0xF3, 0xAE, 0xA2, 0x64, 0x34, +0x03, 0x6B, 0x6B, 0xEB, 0xAC, 0xEB, 0x8D, 0xEB, +0xC3, 0xF3, 0x6E, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, +0x20, 0x6C, 0x86, 0xF7, 0x00, 0x4C, 0x07, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0xE0, 0xF0, 0x80, 0xA2, 0x01, 0x6B, +0x8C, 0xEB, 0x0C, 0x23, 0xE0, 0xF0, 0x62, 0xA2, +0xFF, 0x73, 0x08, 0x60, 0xE0, 0xF0, 0x81, 0xA2, +0xE3, 0xF3, 0x6A, 0xA2, 0x6D, 0xE4, 0x03, 0x4B, +0xE3, 0xF3, 0x60, 0xCA, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0xA0, 0xA4, 0x60, 0xF1, +0xFA, 0xA3, 0x02, 0x6A, 0x01, 0x6E, 0x4B, 0xEA, +0xCC, 0xED, 0xEC, 0xEA, 0xAD, 0xEA, 0x60, 0xF1, +0x5A, 0xC3, 0xA1, 0xA4, 0xCC, 0xEA, 0x60, 0xF1, +0xBB, 0xC3, 0xFF, 0x6D, 0x0D, 0x22, 0x61, 0xA4, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, 0x44, 0x9A, +0x74, 0x33, 0x40, 0x6C, 0x4D, 0xE3, 0x40, 0xA3, +0xAC, 0xEA, 0x8D, 0xEA, 0xAC, 0xEA, 0x0A, 0x10, +0x61, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, +0x44, 0x9A, 0x74, 0x33, 0x4D, 0xE3, 0x80, 0xA3, +0xBF, 0x6A, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x48, 0x9A, +0x60, 0xA2, 0x03, 0x6A, 0x6C, 0xEA, 0x10, 0x6B, +0x64, 0xEA, 0xFF, 0x6A, 0x4C, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF7, 0x48, 0x9A, 0x04, 0xD3, +0x40, 0x9A, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x44, 0x9A, 0x00, 0x9A, 0x05, 0x92, +0x0A, 0xEA, 0xC0, 0xF0, 0x07, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xA0, 0xF0, +0x64, 0x9A, 0x02, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, +0x64, 0xDA, 0x30, 0xF0, 0x20, 0x69, 0xA6, 0xF6, +0x00, 0x49, 0x42, 0xF6, 0x46, 0xA9, 0x00, 0xF7, +0x00, 0x72, 0x07, 0x60, 0x42, 0xF6, 0x66, 0xA1, +0x42, 0xF6, 0x87, 0xA1, 0xAF, 0x43, 0x8E, 0xED, +0x13, 0x2D, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, +0x60, 0x9A, 0xFF, 0x6C, 0x01, 0x4C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xA3, 0xF3, 0x7C, 0x9A, +0x8D, 0xEB, 0xA3, 0xF3, 0x7C, 0xDA, 0x9A, 0x10, +0x30, 0xF0, 0x20, 0x6D, 0x23, 0xF2, 0xAC, 0x9D, +0x7F, 0x6E, 0xB5, 0xE0, 0xE0, 0xA5, 0xCC, 0xEF, +0x47, 0x2F, 0x00, 0xF4, 0x00, 0x72, 0x80, 0xF0, +0x0D, 0x60, 0xAC, 0x43, 0x8E, 0xED, 0x80, 0xF0, +0x09, 0x25, 0x00, 0xF5, 0x01, 0x72, 0x80, 0xF0, +0x05, 0x60, 0x00, 0xF6, 0x02, 0x72, 0x80, 0xF0, +0x01, 0x60, 0x00, 0xF7, 0x03, 0x72, 0x7E, 0x60, +0x00, 0xF5, 0x00, 0x72, 0x7B, 0x60, 0xFD, 0x4B, +0x6E, 0xEC, 0x78, 0x24, 0x30, 0xF0, 0x20, 0x69, +0xA6, 0xF6, 0x00, 0x49, 0x42, 0xF6, 0x46, 0xA9, +0x00, 0xF6, 0x01, 0x72, 0x6F, 0x60, 0x00, 0xF7, +0x02, 0x72, 0x6C, 0x60, 0x00, 0xF6, 0x00, 0x72, +0x69, 0x60, 0x42, 0xF6, 0x66, 0xA1, 0x42, 0xF6, +0x87, 0xA1, 0xFE, 0x4B, 0x8E, 0xEB, 0x62, 0x23, +0x00, 0xF7, 0x01, 0x72, 0x5F, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF3, 0x50, 0x9A, 0x7F, 0x4C, +0x30, 0xF0, 0x20, 0x6D, 0x2B, 0x4C, 0x23, 0xF2, +0xAC, 0x9D, 0x49, 0xE0, 0x94, 0x34, 0x60, 0xAA, +0x91, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0x06, 0x4C, 0xB5, 0xE0, 0x13, 0x10, +0x40, 0xA5, 0x4C, 0xEE, 0x01, 0x76, 0x1F, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x50, 0x9A, +0x7F, 0x4C, 0x2B, 0x4C, 0x49, 0xE0, 0x60, 0xAA, +0x30, 0xF0, 0x20, 0x6A, 0x94, 0x34, 0x80, 0xF2, +0x4C, 0x9A, 0x91, 0xE1, 0x06, 0x4C, 0xFF, 0x6E, +0x6C, 0xEE, 0x40, 0xEA, 0x42, 0xF6, 0x47, 0xA1, +0x08, 0x6B, 0x01, 0x4A, 0x42, 0xF6, 0x47, 0xC1, +0x42, 0xF6, 0x47, 0xA1, 0x6E, 0xEA, 0x13, 0x2A, +0x42, 0xF6, 0x47, 0xC1, 0x10, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF2, 0x80, 0x9A, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF4, 0x68, 0x9B, 0x40, 0x9C, +0x6D, 0xEA, 0x40, 0xDC, 0xA3, 0xF3, 0x5C, 0x99, +0x6D, 0xEA, 0xA3, 0xF3, 0x5C, 0xD9, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF7, 0x4C, 0x9A, 0x04, 0x93, +0x40, 0x9A, 0x0E, 0xEA, 0x61, 0xE0, 0x05, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x40, 0x9A, +0x00, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, +0x44, 0x9A, 0x00, 0xDA, 0x05, 0x92, 0x4A, 0xE8, +0x5F, 0xF7, 0x03, 0x61, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFE, 0x63, 0x03, 0xD1, 0x02, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xA3, 0xF3, +0x7C, 0x9A, 0x02, 0x6D, 0xAC, 0xEB, 0x40, 0xF1, +0x1A, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, +0x68, 0x9B, 0x80, 0xA3, 0x0F, 0x6B, 0x8C, 0xEB, +0x05, 0x23, 0xA0, 0xF0, 0x84, 0x9A, 0xAD, 0xEC, +0xA0, 0xF0, 0x84, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0x47, 0xF0, 0x5C, 0xA2, 0xFF, 0x4A, 0x00, 0xD2, +0x44, 0x11, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0xA0, 0xF1, 0x9C, 0xAA, 0x00, 0xF7, +0x00, 0x74, 0x05, 0x60, 0xA0, 0xF1, 0x1D, 0xA2, +0x00, 0x94, 0x8A, 0xE8, 0x13, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF2, 0x60, 0x9A, 0xFF, 0x6C, +0x01, 0x4C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xA3, 0xF3, 0x7C, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x7C, 0xDA, 0x25, 0x11, 0x30, 0xF0, 0x20, 0x6C, +0xE6, 0xF4, 0xCA, 0xA4, 0xE3, 0x67, 0xFF, 0x6D, +0xE7, 0xEE, 0xC7, 0x67, 0x01, 0x6F, 0xEC, 0xEE, +0xA0, 0xF0, 0x0A, 0x26, 0x0C, 0x35, 0xB5, 0xE2, +0x80, 0xF1, 0x00, 0x4D, 0x00, 0x6A, 0x30, 0xF0, +0x20, 0x6E, 0xE6, 0xF4, 0xEA, 0xA6, 0xFF, 0x6C, +0x1F, 0xF7, 0x00, 0x69, 0x8C, 0xEF, 0x74, 0x4F, +0xE8, 0x37, 0xFD, 0xE2, 0x2C, 0xEF, 0x02, 0xF0, +0x00, 0x77, 0x08, 0x60, 0xE6, 0xF4, 0xEA, 0xA6, +0x8C, 0xEF, 0x74, 0x4F, 0xE8, 0x37, 0xFD, 0xE2, +0x2C, 0xEF, 0x0F, 0x2F, 0x30, 0xF0, 0x20, 0x6C, +0xE6, 0xF4, 0x2A, 0xA4, 0xFF, 0x6C, 0x30, 0xF0, +0x20, 0x6E, 0x8C, 0xE9, 0x74, 0x49, 0x28, 0x31, +0xE2, 0x67, 0x25, 0xE2, 0x43, 0xF1, 0xDC, 0x9E, +0x0B, 0x10, 0xE6, 0xF4, 0x2A, 0xA6, 0x30, 0xF0, +0x20, 0x6E, 0x63, 0xF1, 0xC0, 0x9E, 0x8C, 0xE9, +0x74, 0x49, 0x28, 0x31, 0xE2, 0x67, 0x25, 0xE2, +0xD9, 0xE1, 0xC0, 0xA6, 0x0C, 0x31, 0xCC, 0xEC, +0x30, 0xF0, 0x20, 0x6E, 0xA6, 0xF6, 0x00, 0x4E, +0xD9, 0xE1, 0xFD, 0xE6, 0x60, 0xF1, 0x9C, 0xC7, +0x30, 0xF0, 0x20, 0x6E, 0xE6, 0xF4, 0xEA, 0xA6, +0xFF, 0x6C, 0x1F, 0xF7, 0x00, 0x69, 0x8C, 0xEF, +0x7C, 0x4F, 0xE8, 0x37, 0xFD, 0xE2, 0x2C, 0xEF, +0x02, 0xF0, 0x00, 0x77, 0x08, 0x60, 0xE6, 0xF4, +0xEA, 0xA6, 0x8C, 0xEF, 0x7C, 0x4F, 0xE8, 0x37, +0xFD, 0xE2, 0x2C, 0xEF, 0x0E, 0x2F, 0x30, 0xF0, +0x20, 0x6C, 0xE6, 0xF4, 0xCA, 0xA4, 0xFF, 0x6C, +0x30, 0xF0, 0x20, 0x6F, 0x8C, 0xEE, 0x7C, 0x4E, +0xC8, 0x36, 0xD9, 0xE2, 0x43, 0xF1, 0xFC, 0x9F, +0x0A, 0x10, 0xE6, 0xF4, 0xCA, 0xA6, 0x30, 0xF0, +0x20, 0x6F, 0x63, 0xF1, 0xE0, 0x9F, 0x8C, 0xEE, +0x7C, 0x4E, 0xC8, 0x36, 0xD9, 0xE2, 0xF9, 0xE6, +0xC0, 0xA6, 0x01, 0x4A, 0x04, 0x72, 0xCC, 0xEC, +0x80, 0xC5, 0x01, 0x4D, 0x8C, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xE6, 0xF4, 0xAA, 0xA2, 0x01, 0x6C, +0xC4, 0x67, 0xC4, 0xED, 0xCF, 0xED, 0xE6, 0xF4, +0xCA, 0xA2, 0xAC, 0xEB, 0xFF, 0x6D, 0x84, 0xEE, +0x30, 0xF0, 0x20, 0x6E, 0x63, 0xF2, 0xC8, 0x9E, +0xAC, 0xEC, 0x08, 0x6F, 0x80, 0xC6, 0xE6, 0xF4, +0x8A, 0xA2, 0xAC, 0xEC, 0x01, 0x4C, 0xAC, 0xEC, +0xE6, 0xF4, 0x8A, 0xC2, 0xE6, 0xF4, 0xAA, 0xA2, +0x03, 0x6C, 0xAC, 0xEC, 0xE6, 0xF4, 0x8A, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xA0, 0xF1, 0x9D, 0xA2, 0x01, 0x4C, 0xA0, 0xF1, +0x9D, 0xC2, 0xA0, 0xF1, 0x9D, 0xA2, 0xEE, 0xEC, +0x70, 0x2C, 0xA0, 0xF1, 0x9D, 0xC2, 0x6D, 0x10, +0x30, 0xF0, 0x20, 0x6E, 0x43, 0xF2, 0x00, 0x9E, +0x02, 0x6F, 0xC0, 0x98, 0xED, 0xEE, 0xC0, 0xD8, +0xA3, 0xF3, 0xDC, 0x9A, 0xC3, 0xF3, 0x68, 0xC2, +0xE6, 0xF4, 0x6A, 0xA4, 0xED, 0xEE, 0xA3, 0xF3, +0xDC, 0xDA, 0xC3, 0xF3, 0x69, 0xC2, 0xE6, 0xF4, +0x4A, 0xA4, 0x1F, 0xF7, 0x00, 0x6B, 0xAC, 0xEA, +0x74, 0x4A, 0x48, 0x32, 0x6C, 0xEA, 0x02, 0xF0, +0x00, 0x72, 0x07, 0x60, 0xE6, 0xF4, 0x4A, 0xA4, +0xAC, 0xEA, 0x74, 0x4A, 0x48, 0x32, 0x6C, 0xEA, +0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF4, +0x6A, 0xA2, 0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF7, +0x90, 0x9C, 0xFF, 0x6A, 0x4C, 0xEB, 0x8D, 0xE3, +0x68, 0x33, 0xA0, 0xA3, 0x0A, 0x10, 0xE6, 0xF4, +0x4A, 0xA4, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF7, +0x74, 0x9B, 0xAC, 0xEA, 0x69, 0xE2, 0x48, 0x32, +0x40, 0xA2, 0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x6A, 0xF2, 0xAA, 0xC2, +0xE6, 0xF4, 0x4A, 0xA3, 0xE6, 0xF4, 0x8A, 0xA3, +0xFF, 0x6A, 0x1F, 0xF7, 0x00, 0x6D, 0x4C, 0xEC, +0x88, 0x34, 0xC0, 0xF1, 0x11, 0x4C, 0xAC, 0xEC, +0x0B, 0x2C, 0xE6, 0xF4, 0x6A, 0xA3, 0xFF, 0x6A, +0x30, 0xF0, 0x20, 0x6C, 0x4C, 0xEB, 0x74, 0x4B, +0x68, 0x33, 0xA3, 0xF7, 0x98, 0x9C, 0x09, 0x10, +0xE6, 0xF4, 0x6A, 0xA3, 0x30, 0xF0, 0x20, 0x6C, +0xA3, 0xF7, 0x9C, 0x9C, 0x4C, 0xEB, 0x74, 0x4B, +0x68, 0x33, 0x8D, 0xE3, 0x60, 0xA3, 0x6C, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x6A, 0xF2, 0x4B, 0xC3, +0x02, 0x10, 0xBF, 0xF6, 0x1A, 0x2B, 0x03, 0x91, +0x02, 0x90, 0x02, 0x63, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0x44, 0x9A, +0xFF, 0x68, 0x60, 0xA2, 0x6C, 0xE8, 0x24, 0x20, +0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, 0x40, 0x9A, +0x20, 0x6B, 0x01, 0x70, 0x60, 0xC2, 0x06, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF6, 0x5C, 0x9A, +0x40, 0xEA, 0x0E, 0x10, 0x80, 0x69, 0x0E, 0xE9, +0x0B, 0x29, 0x00, 0x18, 0xB3, 0xC8, 0x80, 0x6C, +0x00, 0x6D, 0x80, 0x18, 0x4E, 0x16, 0x30, 0xF0, +0x20, 0x6A, 0xE9, 0xF4, 0x32, 0xC2, 0x0F, 0x10, +0x20, 0x70, 0x0D, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6C, +0xA0, 0xF0, 0x64, 0x9A, 0x83, 0xF4, 0x98, 0x9C, +0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0x7C, 0x9B, +0x10, 0xF0, 0x31, 0x6A, 0xFB, 0xF4, 0x11, 0x4A, +0x40, 0xDB, 0x00, 0x1C, 0xAC, 0x39, 0x80, 0x18, +0x48, 0x58, 0x05, 0x6C, 0x01, 0x6D, 0x80, 0x18, +0x4E, 0x16, 0x20, 0xBA, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0xFF, 0x17, 0x00, 0x65, +0xDE, 0x63, 0x43, 0x62, 0x42, 0xD1, 0x41, 0xD0, +0x01, 0x6A, 0x7D, 0x67, 0x4B, 0xEA, 0x58, 0xC3, +0x01, 0x6A, 0x5A, 0xC3, 0x08, 0x6A, 0x5B, 0xC3, +0x60, 0xA4, 0x7F, 0x6A, 0x6C, 0xEA, 0x01, 0x72, +0x7E, 0x30, 0x00, 0xF1, 0x10, 0x61, 0x48, 0xA4, +0xBD, 0x67, 0x5C, 0xC5, 0x41, 0xA4, 0x5D, 0xC5, +0x42, 0xA4, 0x5E, 0xC5, 0x46, 0xA4, 0x20, 0xF0, +0x40, 0xC5, 0x43, 0xA4, 0x5F, 0xC5, 0x47, 0xA4, +0x20, 0xF0, 0x41, 0xC5, 0x5C, 0xA5, 0xE0, 0xF0, +0x18, 0x2A, 0x7D, 0x67, 0x5F, 0xA3, 0x7E, 0xA3, +0x40, 0x32, 0x6D, 0xEA, 0x03, 0x72, 0x0A, 0x60, +0x04, 0x52, 0x03, 0x60, 0x02, 0x72, 0x52, 0x60, +0xEC, 0x10, 0x08, 0x72, 0x21, 0x60, 0xB7, 0x72, +0x37, 0x60, 0xE7, 0x10, 0x06, 0x20, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, 0x06, 0x04, +0x40, 0xEA, 0x9D, 0x67, 0x20, 0xF0, 0xE1, 0xA4, +0x20, 0xF0, 0x40, 0xA4, 0xFF, 0xF7, 0x1F, 0x6B, +0xE0, 0x37, 0x5D, 0xE7, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xF4, 0x50, 0x9A, 0x30, 0xF0, 0x20, 0x6D, +0x05, 0x6C, 0xE9, 0xF4, 0x18, 0x4D, 0x00, 0xF2, +0x00, 0x6E, 0x6C, 0xEF, 0x40, 0xEA, 0xE4, 0x10, +0xBD, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0x10, 0x6A, +0x5B, 0xC5, 0x30, 0xF0, 0x20, 0x69, 0x80, 0xF2, +0x4C, 0x9B, 0xEE, 0xF5, 0x1C, 0x49, 0x09, 0x04, +0xB1, 0x67, 0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6C, 0x80, 0xF2, 0x4C, 0x9C, 0xA4, 0x41, +0x0A, 0x04, 0x04, 0x6E, 0x40, 0xEA, 0xB1, 0x10, +0x08, 0x20, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, +0x40, 0x9A, 0x06, 0x04, 0x40, 0xEA, 0x00, 0x18, +0x40, 0xD5, 0xBD, 0x67, 0x20, 0xF0, 0x81, 0xA5, +0x20, 0xF0, 0x40, 0xA5, 0x80, 0x34, 0x51, 0xE4, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEC, 0x80, 0x18, +0x86, 0x16, 0xB6, 0x10, 0x06, 0x20, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, 0x06, 0x04, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, +0x00, 0x48, 0x67, 0xF7, 0x58, 0xA0, 0x01, 0x6B, +0xFF, 0x69, 0x6C, 0xEA, 0x4C, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF4, 0x50, 0x9A, 0x40, 0xEA, +0xE0, 0xF0, 0xC7, 0xA0, 0x0C, 0x6A, 0x43, 0xF4, +0x48, 0xC0, 0x0C, 0x6C, 0x00, 0x6D, 0x00, 0x18, +0x94, 0xCC, 0xC3, 0xF3, 0x4C, 0xA0, 0x21, 0x6B, +0xC3, 0xF3, 0x8E, 0xA0, 0x6B, 0xEB, 0x4C, 0xEB, +0x04, 0x6A, 0x8C, 0xEA, 0x2C, 0xEA, 0xC3, 0xF3, +0x6C, 0xC0, 0x04, 0x2A, 0xFE, 0x4A, 0x6C, 0xEA, +0xC3, 0xF3, 0x4C, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x67, 0xF7, 0x84, 0xA2, +0x04, 0x6B, 0x8C, 0xEB, 0x21, 0x23, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF7, 0x64, 0x9B, 0x67, 0xF7, +0xD0, 0x9A, 0xE0, 0xF3, 0x08, 0x6A, 0x60, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF7, 0x68, 0x9B, +0x10, 0xF0, 0x31, 0x6C, 0xA9, 0xF7, 0x11, 0x4C, +0x60, 0x9B, 0x00, 0x6D, 0x01, 0x6F, 0x7B, 0xE6, +0x5B, 0xEE, 0x01, 0x2A, 0xE5, 0xE8, 0x00, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x4C, 0x9A, 0x12, 0xEE, 0x40, 0xEA, 0x5C, 0x10, +0x80, 0x18, 0xEC, 0x53, 0x59, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF4, 0x54, 0x9A, 0x40, 0xEA, +0x67, 0xF7, 0xB6, 0xA8, 0x00, 0x6C, 0x80, 0x18, +0x9B, 0x53, 0xE0, 0xF0, 0x87, 0xA0, 0x00, 0x18, +0xBD, 0xDC, 0xE0, 0xF0, 0x87, 0xA0, 0x00, 0x18, +0xAC, 0xDC, 0xE0, 0xF0, 0x87, 0xA0, 0x00, 0x18, +0xC4, 0xDC, 0xC3, 0xF3, 0x6C, 0xA0, 0x20, 0x6A, +0xE0, 0xF0, 0xC7, 0xA0, 0x6D, 0xEA, 0xC3, 0xF3, +0x4C, 0xC0, 0x08, 0x6A, 0x43, 0xF4, 0x48, 0xC0, +0x08, 0x6C, 0x00, 0x6D, 0x00, 0x18, 0x94, 0xCC, +0xC3, 0xF3, 0x6E, 0xA0, 0x04, 0x6A, 0x6C, 0xEA, +0x2C, 0xEA, 0x2E, 0x2A, 0x00, 0xF1, 0x78, 0xA0, +0x02, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x05, 0x22, +0xC3, 0xF3, 0x4C, 0xA0, 0x01, 0x6B, 0x6D, 0xEA, +0x05, 0x10, 0xC3, 0xF3, 0x6C, 0xA0, 0x02, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xC3, 0xF3, 0x4C, 0xC0, +0x1B, 0x10, 0x1A, 0x20, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF4, 0x40, 0x9A, 0x13, 0x10, 0x14, 0x2A, +0x69, 0xA4, 0xBD, 0x67, 0x7C, 0xC5, 0x68, 0xA4, +0x5E, 0xC5, 0x5F, 0xC5, 0x7D, 0xC5, 0x46, 0xA4, +0x20, 0xF0, 0x40, 0xC5, 0x67, 0xA4, 0x08, 0x20, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, +0x20, 0xF0, 0x61, 0xC5, 0x06, 0x04, 0x40, 0xEA, +0x43, 0x97, 0x42, 0x91, 0x41, 0x90, 0x22, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0x68, 0x44, 0xFA, 0x4B, +0x4C, 0xEB, 0x04, 0x5B, 0x03, 0x60, 0x80, 0x18, +0x25, 0x4A, 0x1D, 0x10, 0x09, 0x74, 0x31, 0x60, +0x0A, 0x5C, 0x07, 0x60, 0x03, 0x74, 0x22, 0x60, +0x08, 0x74, 0x26, 0x60, 0x02, 0x74, 0x15, 0x60, +0x38, 0x10, 0x0C, 0x74, 0x16, 0x60, 0x0D, 0x5C, +0x03, 0x60, 0x0A, 0x74, 0x27, 0x60, 0x31, 0x10, +0x0D, 0x74, 0x03, 0x60, 0xB7, 0x74, 0x27, 0x60, +0x2C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, +0x48, 0x9A, 0x85, 0x67, 0x40, 0xEA, 0x62, 0x67, +0x39, 0x10, 0x85, 0x67, 0x80, 0x18, 0xB1, 0x53, +0xFA, 0x17, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF4, +0x44, 0x9A, 0xF3, 0x17, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xF4, 0x54, 0x9A, 0x40, 0xEA, 0xEF, 0x17, +0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, 0x58, 0x9A, +0xE8, 0x17, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, +0x5C, 0x9A, 0xE3, 0x17, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF4, 0x40, 0x9A, 0xDE, 0x17, 0x80, 0x18, +0xE8, 0x1C, 0x00, 0x6B, 0x17, 0x2A, 0x13, 0x6B, +0x15, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, +0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF2, +0x84, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xA3, 0xF3, 0x7C, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x7C, 0xDA, 0xFF, 0x6B, 0x05, 0x97, 0x43, 0x67, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0x40, 0xA4, 0xA0, 0xF0, +0xDD, 0xA3, 0x7F, 0x68, 0x5E, 0x32, 0x5C, 0x32, +0x0C, 0xEE, 0x4D, 0xEE, 0xA0, 0xF0, 0xDD, 0xC3, +0xA0, 0xA4, 0x01, 0x6A, 0x41, 0x6F, 0xBA, 0x35, +0x4C, 0xED, 0xEB, 0xEF, 0xB8, 0x35, 0xCC, 0xEF, +0xAD, 0xEF, 0xA0, 0xF0, 0xFD, 0xC3, 0xA0, 0xA4, +0x21, 0x6E, 0xCB, 0xEE, 0xB6, 0x35, 0x4C, 0xED, +0xB4, 0x35, 0xEC, 0xEE, 0xAD, 0xEE, 0xA0, 0xF0, +0xDD, 0xC3, 0xA0, 0xA4, 0x11, 0x6F, 0xEB, 0xEF, +0xB2, 0x35, 0x4C, 0xED, 0xB0, 0x35, 0xCC, 0xEF, +0xAD, 0xEF, 0xA0, 0xF0, 0xFD, 0xC3, 0xA0, 0xA4, +0x10, 0x6E, 0x0F, 0x69, 0xCB, 0xEE, 0x2C, 0xED, +0xEC, 0xEE, 0xAD, 0xEE, 0xA0, 0xF0, 0xDD, 0xC3, +0xE1, 0xA4, 0xA7, 0x67, 0xA0, 0xF0, 0xFE, 0xA3, +0x0C, 0xED, 0xFD, 0x65, 0x1F, 0x65, 0x80, 0x6D, +0xF8, 0x67, 0xAB, 0xED, 0xEC, 0xED, 0xFF, 0x67, +0xED, 0xED, 0xA0, 0xF0, 0xBE, 0xC3, 0xE2, 0xA4, +0x0C, 0xED, 0xA0, 0xF0, 0xFF, 0xC3, 0xE1, 0xA4, +0xFE, 0x37, 0xFC, 0x37, 0xED, 0xED, 0xA0, 0xF0, +0xBE, 0xC3, 0xC0, 0xF0, 0xE0, 0xA3, 0x83, 0xA4, +0x02, 0x6D, 0xAB, 0xED, 0x4C, 0xEC, 0xEC, 0xED, +0x8D, 0xED, 0xC0, 0xF0, 0xA0, 0xC3, 0xA0, 0xF0, +0xBD, 0xA3, 0x86, 0x67, 0x2C, 0xEC, 0xBA, 0x35, +0x4E, 0xED, 0x4C, 0xED, 0x80, 0x18, 0x09, 0x3B, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xA6, 0xF6, 0x00, 0x48, 0x44, 0xF3, 0x46, 0xA8, +0x01, 0x69, 0xA4, 0x67, 0x2D, 0xEA, 0x44, 0xF3, +0x46, 0xC8, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x66, 0xF7, +0x04, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0xC0, 0xF0, +0x48, 0xA0, 0xC0, 0xF0, 0x84, 0xA0, 0x00, 0x6B, +0x43, 0xF4, 0x48, 0xC0, 0x7F, 0x6A, 0x8C, 0xEA, +0x43, 0xF4, 0x6A, 0xC0, 0x03, 0x2A, 0x43, 0xF4, +0x2B, 0xC0, 0x02, 0x10, 0x43, 0xF4, 0x6B, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xC0, 0xF0, 0xC4, 0xA2, 0x43, 0xF4, 0x89, 0xA2, +0x7F, 0x6B, 0xCC, 0xEB, 0x6E, 0xEC, 0xFF, 0x6D, +0x07, 0x24, 0xC0, 0xF0, 0x87, 0xA2, 0x96, 0x34, +0xAC, 0xEC, 0x00, 0x18, 0x2F, 0xD0, 0x07, 0x10, +0x06, 0x23, 0xC0, 0xF0, 0x87, 0xA2, 0x96, 0x34, +0xAC, 0xEC, 0x00, 0x18, 0xC2, 0xCF, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF2, 0x78, 0x9B, 0x43, 0xF4, +0x88, 0x9A, 0x8C, 0xEB, 0x04, 0x73, 0x0C, 0x61, +0xC3, 0xF3, 0x6F, 0xA2, 0x04, 0x6C, 0x8C, 0xEB, +0x07, 0x23, 0x01, 0x6B, 0x43, 0xF4, 0x6A, 0xC2, +0x01, 0x6C, 0x00, 0x6D, 0x00, 0x18, 0x28, 0xC8, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xC0, 0xF0, 0x84, 0xA2, 0x7F, 0x6B, 0x8C, 0xEB, +0x43, 0xF4, 0x69, 0xC2, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x08, 0xD4, 0x41, 0xA4, 0x24, 0x67, 0x06, 0xD2, +0x60, 0xA4, 0x02, 0x6A, 0x6C, 0xEA, 0x06, 0x93, +0x07, 0xD3, 0x02, 0x22, 0x82, 0xA4, 0x07, 0xD4, +0x06, 0x90, 0x34, 0x10, 0x08, 0x93, 0x01, 0x6D, +0x90, 0x67, 0x40, 0xA3, 0x4C, 0xED, 0x00, 0x18, +0x09, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x5C, 0x9A, 0x90, 0x67, 0x40, 0xEA, 0x0F, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x58, 0x9A, +0x90, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF7, 0x44, 0x9A, 0x14, 0x33, 0x4D, 0xE3, +0x80, 0xA3, 0xBF, 0x6A, 0x12, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x54, 0x9A, 0x90, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, +0x44, 0x9A, 0x14, 0x33, 0xFF, 0x6C, 0x4D, 0xE3, +0x40, 0xA3, 0x8C, 0xEA, 0x40, 0x6C, 0x8D, 0xEA, +0xFF, 0x6C, 0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x48, +0xFF, 0x6A, 0x4C, 0xE8, 0x07, 0x92, 0x03, 0xEA, +0xC9, 0x60, 0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, +0x00, 0x48, 0xE0, 0xF0, 0x88, 0xA0, 0x06, 0x92, +0x8E, 0xEA, 0x1E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x5C, 0x9A, 0x40, 0xEA, 0x18, 0x2A, +0x00, 0x18, 0xEF, 0xDF, 0xC0, 0xF0, 0x87, 0xA0, +0x96, 0x34, 0x00, 0x18, 0x72, 0xC5, 0xC3, 0xF3, +0x6C, 0xA0, 0x05, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xC3, 0xF3, 0x6D, 0xA0, 0xC3, 0xF3, 0x4C, 0xC0, +0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x03, 0x6B, +0x6B, 0xEB, 0x6C, 0xEA, 0xC3, 0xF3, 0x4D, 0xC0, +0x43, 0xA1, 0x07, 0x6B, 0x01, 0x6C, 0x4C, 0xEB, +0x40, 0xA1, 0x8C, 0xEA, 0x1C, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x05, 0xF3, +0xDC, 0xA2, 0x84, 0xEB, 0x1F, 0x6F, 0xCA, 0x35, +0x8F, 0xEC, 0xEC, 0xED, 0x8C, 0xED, 0x7D, 0x6C, +0x8B, 0xEC, 0xA8, 0x35, 0xCC, 0xEC, 0xAD, 0xEC, +0x05, 0xF3, 0x9C, 0xC2, 0xE0, 0xF0, 0x87, 0xA2, +0x8E, 0xEB, 0x1E, 0x2B, 0x01, 0x6B, 0x6B, 0xEB, +0x05, 0xF3, 0x7D, 0xC2, 0x19, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x05, 0xF3, +0xDC, 0xA2, 0x1F, 0x6F, 0x84, 0xEB, 0xCA, 0x35, +0xEC, 0xED, 0xAD, 0xEC, 0xEC, 0xEC, 0x88, 0x35, +0x7D, 0x6C, 0x8B, 0xEC, 0xCC, 0xEC, 0xAD, 0xEC, +0x05, 0xF3, 0x9C, 0xC2, 0xE0, 0xF0, 0x87, 0xA2, +0x8E, 0xEB, 0x02, 0x2B, 0x05, 0xF3, 0x9D, 0xC2, +0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, +0x05, 0xF3, 0x7C, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, +0x1A, 0x22, 0x03, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x05, 0xF3, 0x5C, 0xC0, 0x00, 0x18, 0xCA, 0xDA, +0x04, 0xD2, 0x04, 0x93, 0x25, 0xF3, 0x40, 0x98, +0x6E, 0xEA, 0x03, 0x22, 0x04, 0x94, 0x00, 0x18, +0xEB, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x05, 0xF3, 0x9C, 0xA2, 0x02, 0x6B, +0x8D, 0xEB, 0x05, 0xF3, 0x7C, 0xC2, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, +0x4C, 0xEC, 0x68, 0x44, 0xC8, 0x4B, 0x4C, 0xEB, +0x20, 0x5B, 0x05, 0x67, 0x03, 0x60, 0x80, 0x18, +0x1F, 0x4A, 0xE1, 0x10, 0x2D, 0x74, 0x80, 0xF0, +0x0F, 0x60, 0x2E, 0x5C, 0x2B, 0x60, 0x1F, 0x74, +0x6F, 0x60, 0x20, 0x5C, 0x12, 0x60, 0x04, 0x74, +0x63, 0x60, 0x05, 0x5C, 0x06, 0x60, 0x01, 0x74, +0x53, 0x60, 0x4E, 0x24, 0x03, 0x74, 0x58, 0x60, +0xBB, 0x10, 0x14, 0x74, 0xC0, 0xF0, 0x0B, 0x60, +0x1E, 0x74, 0x62, 0x60, 0x13, 0x74, 0x58, 0x60, +0xB3, 0x10, 0x25, 0x74, 0xC0, 0xF0, 0x03, 0x60, +0x26, 0x5C, 0x09, 0x60, 0x21, 0x74, 0xA0, 0xF0, +0x1E, 0x60, 0x21, 0x5C, 0x59, 0x61, 0x23, 0x74, +0xA0, 0xF0, 0x19, 0x60, 0xA5, 0x10, 0x2B, 0x74, +0x5F, 0x60, 0x2C, 0x5C, 0x61, 0x60, 0x27, 0x74, +0x57, 0x60, 0x9E, 0x10, 0x89, 0x74, 0x80, 0xF0, +0x03, 0x60, 0x8A, 0x5C, 0x12, 0x60, 0x82, 0x74, +0x67, 0x60, 0x83, 0x5C, 0x07, 0x60, 0x80, 0x74, +0x5B, 0x60, 0x81, 0x5C, 0x5D, 0x60, 0x31, 0x74, +0x43, 0x60, 0x8E, 0x10, 0x84, 0x74, 0x64, 0x60, +0x84, 0x5C, 0x5E, 0x61, 0x88, 0x74, 0x64, 0x60, +0x87, 0x10, 0x8F, 0x74, 0x79, 0x60, 0x90, 0x5C, +0x07, 0x60, 0x8D, 0x74, 0x6D, 0x60, 0x8E, 0x5C, +0x6F, 0x60, 0x8C, 0x74, 0x61, 0x60, 0x7C, 0x10, +0xBB, 0x74, 0x12, 0x60, 0xBC, 0x5C, 0x03, 0x60, +0x91, 0x74, 0x56, 0x60, 0x75, 0x10, 0xC3, 0x74, +0x6F, 0x60, 0xCD, 0x74, 0x69, 0x60, 0x70, 0x10, +0x85, 0x67, 0x80, 0x18, 0xB3, 0x35, 0x7F, 0x10, +0x85, 0x67, 0x80, 0x18, 0x9C, 0x38, 0x7B, 0x10, +0x85, 0x67, 0x00, 0x18, 0x23, 0xE5, 0x77, 0x10, +0x85, 0x67, 0x80, 0x18, 0xBE, 0x05, 0x73, 0x10, +0x85, 0x67, 0x80, 0x18, 0xE1, 0x05, 0x6F, 0x10, +0x85, 0x67, 0x80, 0x18, 0x2F, 0x38, 0x6B, 0x10, +0x85, 0x67, 0x00, 0x18, 0x0C, 0xD6, 0x67, 0x10, +0x85, 0x67, 0x00, 0x18, 0xF2, 0xD5, 0x63, 0x10, +0x85, 0x67, 0x80, 0x18, 0x65, 0x38, 0x5F, 0x10, +0x85, 0x67, 0x80, 0x18, 0xBB, 0x35, 0x5B, 0x10, +0x85, 0x67, 0x80, 0x18, 0xA3, 0x52, 0x57, 0x10, +0x85, 0x67, 0x00, 0x18, 0x43, 0xD6, 0x53, 0x10, +0x85, 0x67, 0x00, 0x18, 0xBD, 0xC1, 0x4F, 0x10, +0x85, 0x67, 0x80, 0x18, 0xC4, 0x35, 0x4B, 0x10, +0x85, 0x67, 0x80, 0x18, 0x2C, 0x0C, 0x47, 0x10, +0x85, 0x67, 0x80, 0x18, 0x5D, 0x0B, 0x43, 0x10, +0x85, 0x67, 0x80, 0x18, 0x8F, 0x07, 0x3F, 0x10, +0x85, 0x67, 0x80, 0x18, 0x95, 0x07, 0x3B, 0x10, +0x85, 0x67, 0x80, 0x18, 0x9D, 0x07, 0x37, 0x10, +0x85, 0x67, 0x80, 0x18, 0xA5, 0x07, 0x33, 0x10, +0x85, 0x67, 0x80, 0x18, 0xAC, 0x07, 0x2F, 0x10, +0x85, 0x67, 0x80, 0x18, 0x0A, 0x13, 0x2B, 0x10, +0x85, 0x67, 0x80, 0x18, 0xA9, 0x3B, 0x27, 0x10, +0x85, 0x67, 0x80, 0x18, 0x01, 0x04, 0x23, 0x10, +0x85, 0x67, 0x80, 0x18, 0x22, 0x04, 0x1F, 0x10, +0x85, 0x67, 0x80, 0x18, 0x33, 0x07, 0x1B, 0x10, +0x85, 0x67, 0x80, 0x18, 0xD7, 0x35, 0x17, 0x10, +0x85, 0x67, 0x80, 0x18, 0xAC, 0x52, 0x13, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x60, 0x9A, +0x01, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xA3, 0xF3, 0x7C, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x7C, 0xDA, 0x0E, 0x6A, 0x01, 0x10, 0x00, 0x6A, +0x40, 0xC0, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, +0x00, 0x48, 0xA0, 0xF1, 0x5C, 0xA0, 0xA0, 0xF1, +0x7D, 0xA0, 0x4E, 0xEB, 0x29, 0x23, 0x67, 0x42, +0x28, 0x4B, 0x6C, 0x33, 0x0D, 0xE3, 0x4C, 0x32, +0x84, 0xA3, 0x55, 0xE0, 0x60, 0xF1, 0x1D, 0x4D, +0x80, 0x18, 0x06, 0x39, 0xA0, 0xF1, 0x5C, 0xA0, +0x01, 0x4A, 0xA0, 0xF1, 0x5C, 0xC0, 0xA0, 0xF1, +0x7C, 0xA0, 0xA0, 0xF1, 0x5D, 0xA0, 0x6E, 0xEA, +0x06, 0x22, 0xA0, 0xF0, 0x44, 0x98, 0x02, 0x6B, +0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xA0, 0xF1, +0x7C, 0xA2, 0x08, 0x6C, 0x8E, 0xEB, 0x02, 0x2B, +0xA0, 0xF1, 0x7C, 0xC2, 0x80, 0x18, 0x64, 0x36, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, 0x42, 0xF6, +0x46, 0xA0, 0x7F, 0x6C, 0xA0, 0xF0, 0xAA, 0x42, +0xB4, 0x35, 0x15, 0xE5, 0x66, 0xA5, 0x8C, 0xEB, +0x24, 0x2B, 0xA0, 0xF0, 0x65, 0x42, 0x74, 0x33, +0x0D, 0xE3, 0x54, 0x32, 0xA0, 0xF0, 0x8E, 0xA3, +0x55, 0xE0, 0x42, 0xF5, 0x0F, 0x4D, 0x80, 0x18, +0x06, 0x39, 0x42, 0xF6, 0x46, 0xA0, 0x30, 0xF0, +0x20, 0x6C, 0xC3, 0xF7, 0x8C, 0x9C, 0x54, 0x33, +0x0D, 0xE3, 0x42, 0xF5, 0xAC, 0xA3, 0x7F, 0x4A, +0x2B, 0x4A, 0xA0, 0xC4, 0x42, 0xF5, 0x8D, 0xA3, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF7, 0x70, 0x9B, +0x54, 0x32, 0x41, 0xE0, 0x80, 0xC3, 0x86, 0x40, +0x37, 0x10, 0x01, 0x73, 0x37, 0x61, 0x54, 0x33, +0x0D, 0xE3, 0x42, 0xF5, 0x87, 0xA3, 0xFF, 0x74, +0x0C, 0x61, 0x42, 0xF5, 0x88, 0xA3, 0x06, 0x4D, +0x80, 0x18, 0xFB, 0x37, 0x42, 0xF6, 0x66, 0xA0, +0x7F, 0x4B, 0x26, 0x4B, 0x74, 0x33, 0x01, 0xE3, +0x06, 0x10, 0x7F, 0x4A, 0x26, 0x4A, 0x54, 0x32, +0x01, 0xE2, 0x01, 0x6A, 0x4B, 0xEA, 0xA0, 0xF0, +0x4E, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x42, 0xF6, 0x66, 0xA2, 0x30, 0xF0, +0x20, 0x6D, 0xC3, 0xF7, 0xAC, 0x9D, 0x74, 0x34, +0x51, 0xE4, 0x42, 0xF5, 0xCC, 0xA4, 0x7F, 0x4B, +0x2B, 0x4B, 0xC0, 0xC5, 0x42, 0xF5, 0xAD, 0xA4, +0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF7, 0x90, 0x9C, +0x74, 0x33, 0x69, 0xE2, 0xA0, 0xC4, 0x86, 0x42, +0x80, 0x18, 0x5C, 0x37, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, +0x00, 0x48, 0x42, 0xF6, 0x66, 0xA0, 0x42, 0xF6, +0x47, 0xA0, 0x6E, 0xEA, 0x42, 0x22, 0xA0, 0xF6, +0x5E, 0xA8, 0x09, 0xF6, 0x00, 0x72, 0x10, 0x60, +0xA0, 0xF6, 0x9E, 0xA0, 0xA0, 0xF6, 0x7F, 0xA0, +0xAE, 0x44, 0x6E, 0xED, 0x09, 0x25, 0x09, 0xF7, +0x01, 0x72, 0x06, 0x60, 0x09, 0xF7, 0x00, 0x72, +0x03, 0x60, 0xFF, 0x4C, 0x8E, 0xEB, 0x0D, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, +0xA0, 0xF0, 0x44, 0x9B, 0x04, 0x6C, 0x8D, 0xEA, +0x02, 0x6C, 0x8D, 0xEA, 0xA0, 0xF0, 0x44, 0xDB, +0x20, 0x10, 0x80, 0x18, 0x9E, 0x39, 0x42, 0xF6, +0x46, 0xA0, 0x01, 0x4A, 0x42, 0xF6, 0x46, 0xC0, +0x42, 0xF6, 0x66, 0xA0, 0x42, 0xF6, 0x47, 0xA0, +0x6E, 0xEA, 0x06, 0x22, 0xA0, 0xF0, 0x44, 0x98, +0x02, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x42, 0xF6, 0x66, 0xA2, 0x08, 0x6C, 0x8E, 0xEB, +0x02, 0x2B, 0x42, 0xF6, 0x66, 0xC2, 0x80, 0x18, +0xEE, 0x35, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF7, 0x7C, 0x9B, +0x30, 0xF0, 0x20, 0x68, 0x83, 0xF4, 0x14, 0x98, +0xE0, 0x9B, 0xFF, 0x6A, 0x4C, 0xEC, 0x0C, 0xEF, +0x08, 0x5C, 0x4C, 0xED, 0x4C, 0xEE, 0xE0, 0xDB, +0x46, 0x60, 0xB0, 0x75, 0x2E, 0x61, 0xB2, 0x76, +0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, +0xB8, 0x9A, 0x01, 0x6A, 0x44, 0xEC, 0xC0, 0x9D, +0x00, 0xF6, 0x40, 0x34, 0xCD, 0xEC, 0x80, 0xDD, +0xC0, 0x9D, 0x40, 0x34, 0x80, 0x34, 0x8F, 0xEC, +0xCC, 0xEC, 0x80, 0xDD, 0x80, 0x9B, 0x4E, 0x10, +0xB1, 0x76, 0x80, 0xF0, 0x13, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF3, 0xB8, 0x9A, 0x01, 0x6A, +0x44, 0xEC, 0xC0, 0x9D, 0x00, 0xF6, 0x40, 0x34, +0xCD, 0xEC, 0x80, 0xDD, 0xC0, 0x9D, 0x40, 0x34, +0x80, 0x34, 0x8F, 0xEC, 0xCC, 0xEC, 0x80, 0xDD, +0x80, 0x9B, 0x4F, 0xEA, 0x8C, 0xEA, 0x40, 0xDB, +0x7B, 0x10, 0xA0, 0x75, 0x7D, 0x61, 0xA1, 0x76, +0x08, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, +0x58, 0x9A, 0x01, 0x6B, 0x64, 0xEC, 0xA0, 0x9A, +0x51, 0x10, 0xA2, 0x76, 0x6F, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF3, 0x58, 0x9A, 0x01, 0x6B, +0x64, 0xEC, 0xA0, 0x9A, 0x5A, 0x10, 0xE8, 0x44, +0x4C, 0xEF, 0x08, 0x5F, 0xE0, 0x6A, 0x65, 0x60, +0xB0, 0x75, 0x35, 0x61, 0xB2, 0x76, 0x18, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, 0x54, 0x9A, +0x01, 0x6E, 0xA6, 0x67, 0x00, 0x9A, 0xA4, 0xEF, +0xE5, 0x67, 0x00, 0xF6, 0xA0, 0x35, 0x0D, 0xED, +0xA0, 0xDA, 0xA0, 0x9A, 0xE0, 0x37, 0xE0, 0x37, +0xEF, 0xEF, 0xAC, 0xEF, 0xE0, 0xDA, 0x40, 0x9B, +0xC4, 0xEC, 0x86, 0x67, 0x4D, 0xEC, 0x19, 0x10, +0xB1, 0x76, 0x44, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF3, 0x54, 0x9A, 0x01, 0x6E, 0xA6, 0x67, +0x00, 0x9A, 0xA4, 0xEF, 0xE5, 0x67, 0x00, 0xF6, +0xA0, 0x35, 0x0D, 0xED, 0xA0, 0xDA, 0xA0, 0x9A, +0xE0, 0x37, 0xE0, 0x37, 0xEF, 0xEF, 0xAC, 0xEF, +0xE0, 0xDA, 0x40, 0x9B, 0xC4, 0xEC, 0xCF, 0xEC, +0x4C, 0xEC, 0x80, 0xDB, 0x29, 0x10, 0xA0, 0x75, +0x2B, 0x61, 0xA1, 0x76, 0x11, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF3, 0x54, 0x9A, 0x01, 0x6B, +0x64, 0xEF, 0xA0, 0x9A, 0x00, 0xF6, 0x60, 0x34, +0x8F, 0xEC, 0xAC, 0xEC, 0x80, 0xDA, 0x80, 0x9A, +0x60, 0x33, 0x60, 0x33, 0x8D, 0xEB, 0x13, 0x10, +0xA2, 0x76, 0x14, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF3, 0x54, 0x9A, 0x01, 0x6B, 0x64, 0xEF, +0xA0, 0x9A, 0x00, 0xF6, 0x60, 0x34, 0x8F, 0xEC, +0xAC, 0xEC, 0x80, 0xDA, 0x80, 0x9A, 0x60, 0x33, +0x60, 0x33, 0x6F, 0xEB, 0x8C, 0xEB, 0x60, 0xDA, +0xF0, 0x6A, 0x03, 0x10, 0xE2, 0x6A, 0x01, 0x10, +0xE1, 0x6A, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, +0xFF, 0x6B, 0x6C, 0xEC, 0x08, 0x5C, 0xFF, 0x63, +0x18, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, +0x40, 0x9A, 0x01, 0x6D, 0x40, 0xA2, 0x6C, 0xEA, +0x47, 0xEC, 0xAC, 0xEA, 0x37, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF7, 0x44, 0x9A, 0x40, 0xA2, +0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x30, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, 0x58, 0x9A, +0x1C, 0x10, 0xF8, 0x4C, 0x6C, 0xEC, 0x08, 0x5C, +0xE0, 0x6A, 0x27, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF7, 0x48, 0x9A, 0x01, 0x6D, 0x40, 0xA2, +0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x1A, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, 0x4C, 0x9A, +0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, +0x13, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, +0x54, 0x9A, 0x40, 0xA2, 0xA4, 0xEC, 0x85, 0x67, +0x6C, 0xEC, 0x4C, 0xEC, 0x5D, 0x67, 0x80, 0xC2, +0x40, 0xA2, 0x4C, 0xEB, 0x6B, 0xEA, 0xC0, 0xF7, +0x42, 0x32, 0x03, 0x10, 0xE4, 0x6A, 0x01, 0x10, +0xE6, 0x6A, 0x01, 0x63, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6B, 0x6C, 0xEC, 0x08, 0x5C, 0x6C, 0xED, +0x20, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, +0x40, 0x9A, 0x01, 0x6E, 0x40, 0xA2, 0x6C, 0xEA, +0x47, 0xEC, 0xCC, 0xEA, 0x48, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF7, 0x44, 0x9A, 0xC4, 0xEC, +0x86, 0x67, 0x40, 0xA2, 0x6C, 0xEA, 0xCC, 0xEA, +0xCE, 0xEA, 0x3B, 0x2A, 0x05, 0x25, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF7, 0xB0, 0x9A, 0x24, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, 0x50, 0x9A, +0x29, 0x10, 0xF8, 0x4C, 0x6C, 0xEC, 0x08, 0x5C, +0xE0, 0x6A, 0x2E, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF7, 0x48, 0x9A, 0x01, 0x6E, 0x40, 0xA2, +0x6C, 0xEA, 0x47, 0xEC, 0xCC, 0xEA, 0x23, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, 0x4C, 0x9A, +0xC4, 0xEC, 0x86, 0x67, 0x40, 0xA2, 0x6C, 0xEA, +0xCC, 0xEA, 0xCE, 0xEA, 0x16, 0x2A, 0x0A, 0x25, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, 0xB4, 0x9A, +0x40, 0xA5, 0x6C, 0xEA, 0x8D, 0xEA, 0x6C, 0xEA, +0x40, 0xC5, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF7, 0x54, 0x9A, 0xA0, 0xA2, 0x8F, 0xEC, +0x6C, 0xEC, 0xAC, 0xEC, 0x80, 0xC2, 0xF0, 0x6A, +0x20, 0xE8, 0xE5, 0x6A, 0x20, 0xE8, 0xE4, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, +0x08, 0x5C, 0x0F, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF7, 0x40, 0x9A, 0x01, 0x6D, 0x40, 0xA2, +0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x1F, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, 0x44, 0x9A, +0x13, 0x10, 0xF8, 0x4C, 0x6C, 0xEC, 0x08, 0x5C, +0xE0, 0x6A, 0x16, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF7, 0x48, 0x9A, 0x01, 0x6D, 0x40, 0xA2, +0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x0B, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, 0x4C, 0x9A, +0x40, 0xA2, 0x4C, 0xEB, 0x67, 0xEC, 0x45, 0x67, +0x6E, 0xEA, 0xAC, 0xEA, 0x20, 0xE8, 0x00, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, +0x08, 0x5C, 0x1A, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF7, 0x40, 0x9A, 0x01, 0x6E, 0x40, 0xA2, +0x6C, 0xEA, 0x47, 0xEC, 0xCC, 0xEA, 0x35, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, 0x44, 0x9A, +0xC4, 0xEC, 0x86, 0x67, 0xA0, 0xA2, 0x6C, 0xED, +0xCC, 0xED, 0xCE, 0xED, 0x2A, 0x2D, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF7, 0x50, 0x9A, 0x1E, 0x10, +0xF8, 0x4C, 0x6C, 0xEC, 0x08, 0x5C, 0xE0, 0x6A, +0x21, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, +0x48, 0x9A, 0x01, 0x6E, 0x40, 0xA2, 0x6C, 0xEA, +0x47, 0xEC, 0xCC, 0xEA, 0x16, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF7, 0x4C, 0x9A, 0xC4, 0xEC, +0x86, 0x67, 0xA0, 0xA2, 0x6C, 0xED, 0xCC, 0xED, +0xCE, 0xED, 0x0B, 0x2D, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF7, 0x54, 0x9A, 0x40, 0xA2, 0x4C, 0xEB, +0x8C, 0xEB, 0x6E, 0xEC, 0x01, 0x5C, 0x58, 0x67, +0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, +0x01, 0x72, 0xFF, 0xF7, 0x1F, 0x6C, 0xAC, 0xEC, +0x05, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x48, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x04, 0x67, +0x2C, 0xE8, 0x90, 0x67, 0xA0, 0x6D, 0xA2, 0x6E, +0x80, 0x18, 0x01, 0x3A, 0x90, 0x67, 0x80, 0x18, +0x64, 0x3A, 0x7D, 0x67, 0x50, 0xC3, 0x50, 0xA3, +0x09, 0x97, 0x07, 0x90, 0x2C, 0xEA, 0x08, 0x91, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0x24, 0x67, +0x0C, 0xE9, 0x91, 0x67, 0xAC, 0xE8, 0xA1, 0x6E, +0xA0, 0x6D, 0x80, 0x18, 0x01, 0x3A, 0x91, 0x67, +0xB0, 0x67, 0x80, 0x18, 0x8A, 0x3A, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF7, 0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6D, +0x83, 0xF4, 0xB4, 0x9D, 0x40, 0x9B, 0xA2, 0x6E, +0xAC, 0xEA, 0x40, 0xDB, 0xFF, 0x6A, 0x4C, 0xEC, +0xA0, 0x6D, 0x80, 0x18, 0x01, 0x3A, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0xB0, 0x6D, 0xB2, 0x6E, +0x80, 0x18, 0x01, 0x3A, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0xB0, 0x6D, 0xB1, 0x6E, +0x80, 0x18, 0x01, 0x3A, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x6A, 0x04, 0x67, 0x4C, 0xE8, +0xAC, 0xEA, 0xA4, 0x72, 0x0C, 0x61, 0x90, 0x67, +0x80, 0x18, 0xB7, 0x3A, 0x01, 0x72, 0x04, 0x61, +0x90, 0x67, 0x80, 0x18, 0x14, 0x3B, 0x1F, 0x10, +0x90, 0x67, 0x00, 0x6D, 0x0D, 0x10, 0xA5, 0x72, +0x11, 0x61, 0x90, 0x67, 0x80, 0x18, 0xB7, 0x3A, +0x01, 0x72, 0x04, 0x61, 0x90, 0x67, 0x80, 0x18, +0x14, 0x3B, 0x18, 0x10, 0x90, 0x67, 0x01, 0x6D, +0x80, 0x18, 0x09, 0x3B, 0x90, 0x67, 0x80, 0x18, +0x14, 0x3B, 0x14, 0x10, 0x90, 0x67, 0x80, 0x18, +0xCF, 0x3A, 0x01, 0x72, 0x07, 0x61, 0x90, 0x67, +0x01, 0x6D, 0x80, 0x18, 0x09, 0x3B, 0x90, 0x67, +0x00, 0x6D, 0x06, 0x10, 0x90, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x09, 0x3B, 0x90, 0x67, 0x01, 0x6D, +0x80, 0x18, 0x09, 0x3B, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, +0x4C, 0xEE, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x08, 0xF1, 0x6D, 0xA2, 0xFF, 0xF7, +0x1F, 0x69, 0x04, 0xD4, 0xAC, 0xE9, 0x05, 0xD6, +0x0B, 0x23, 0x08, 0xF1, 0x6E, 0xA2, 0x04, 0x23, +0x08, 0xF1, 0x8B, 0xA2, 0xA5, 0x6D, 0x07, 0x10, +0x08, 0xF1, 0x8B, 0xA2, 0xA4, 0x6D, 0x03, 0x10, +0x08, 0xF1, 0x8B, 0xA2, 0xA3, 0x6D, 0x30, 0xF0, +0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, 0x80, 0x18, +0x2B, 0x3B, 0x08, 0xF1, 0x4F, 0xA0, 0x7D, 0x22, +0x04, 0x94, 0xB1, 0x67, 0x80, 0x18, 0xF2, 0x3A, +0x08, 0xF1, 0x4D, 0xA0, 0x0B, 0x22, 0x08, 0xF1, +0x4E, 0xA0, 0x04, 0x22, 0x08, 0xF1, 0x8B, 0xA0, +0xA5, 0x6D, 0x07, 0x10, 0x08, 0xF1, 0x8B, 0xA0, +0xA4, 0x6D, 0x03, 0x10, 0x08, 0xF1, 0x8B, 0xA0, +0xA3, 0x6D, 0x80, 0x18, 0x2B, 0x3B, 0x30, 0xF0, +0x20, 0x6A, 0xAE, 0xF7, 0x50, 0xA2, 0x01, 0x68, +0x5D, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, +0x58, 0x9A, 0x60, 0xA2, 0x10, 0x6A, 0x6C, 0xEA, +0x58, 0x2A, 0x04, 0x94, 0xB1, 0x67, 0x80, 0x18, +0xF2, 0x3A, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x08, 0xF1, 0x6D, 0xA2, 0x0B, 0x23, +0x08, 0xF1, 0x6E, 0xA2, 0x04, 0x23, 0x08, 0xF1, +0x8B, 0xA2, 0xA5, 0x6D, 0x07, 0x10, 0x08, 0xF1, +0x8B, 0xA2, 0xA4, 0x6D, 0x03, 0x10, 0x08, 0xF1, +0x8B, 0xA2, 0xA3, 0x6D, 0x80, 0x18, 0x2B, 0x3B, +0xDC, 0x17, 0x04, 0x94, 0xB1, 0x67, 0x80, 0x18, +0xF2, 0x3A, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x08, 0xF1, 0x6D, 0xA2, 0x0B, 0x23, +0x08, 0xF1, 0x6E, 0xA2, 0x04, 0x23, 0x08, 0xF1, +0x8B, 0xA2, 0xA5, 0x6D, 0x07, 0x10, 0x08, 0xF1, +0x8B, 0xA2, 0xA4, 0x6D, 0x03, 0x10, 0x08, 0xF1, +0x8B, 0xA2, 0xA3, 0x6D, 0x80, 0x18, 0x2B, 0x3B, +0x04, 0x94, 0xB1, 0x67, 0x80, 0x18, 0xF2, 0x3A, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x08, 0xF1, 0x6D, 0xA2, 0x0B, 0x23, 0x08, 0xF1, +0x6E, 0xA2, 0x04, 0x23, 0x08, 0xF1, 0x8B, 0xA2, +0xA5, 0x6D, 0x07, 0x10, 0x08, 0xF1, 0x8B, 0xA2, +0xA4, 0x6D, 0x03, 0x10, 0x08, 0xF1, 0x8B, 0xA2, +0xA3, 0x6D, 0x80, 0x18, 0x2B, 0x3B, 0x01, 0x48, +0xFF, 0x6A, 0x4C, 0xE8, 0x05, 0x92, 0x43, 0xE8, +0xC4, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xAE, 0xF7, 0x0B, 0x4C, +0x00, 0x6D, 0x06, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0xC6, 0xF7, +0x1B, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xE0, 0xF0, 0x90, 0xA2, 0x7F, 0x6B, 0xE0, 0xF0, +0xD1, 0xA2, 0x8C, 0xEB, 0xE0, 0xF0, 0x92, 0xA2, +0x01, 0x6A, 0xC6, 0x36, 0x8A, 0x34, 0x4C, 0xEC, +0x68, 0x35, 0x05, 0x2C, 0x74, 0x35, 0xD0, 0x4D, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xED, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xE0, 0xF0, +0xF1, 0xA2, 0x01, 0x6B, 0xEC, 0xEB, 0x08, 0xF1, +0x6F, 0xC2, 0xE0, 0xF0, 0x70, 0xA2, 0x7E, 0x33, +0x08, 0xF1, 0x70, 0xC2, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF2, 0x78, 0x9B, 0x20, 0xF1, 0x5C, 0xA2, +0xE0, 0xA3, 0xFF, 0x6B, 0xEC, 0xEB, 0x4E, 0xEB, +0x06, 0x2B, 0x03, 0x6A, 0x58, 0xED, 0xFF, 0xF7, +0x1F, 0x6A, 0x12, 0xED, 0x4C, 0xED, 0x80, 0x18, +0x4B, 0x3B, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xE0, 0xF0, +0x6F, 0xA2, 0x7F, 0x6D, 0x01, 0x6F, 0xAC, 0xEB, +0x08, 0xF1, 0x6B, 0xC2, 0xE0, 0xF0, 0x6E, 0xA2, +0x20, 0xF1, 0xDB, 0xA2, 0x3F, 0x6C, 0x76, 0x33, +0xEC, 0xEB, 0x08, 0xF1, 0x6C, 0xC2, 0xE0, 0xF0, +0x72, 0xA2, 0xCC, 0xEC, 0x01, 0x74, 0x76, 0x33, +0xEC, 0xEB, 0x08, 0xF1, 0x6D, 0xC2, 0xE0, 0xF0, +0x74, 0xA2, 0x66, 0x33, 0xEC, 0xEB, 0x08, 0xF1, +0x6E, 0xC2, 0xFF, 0x6B, 0x80, 0xF0, 0x0D, 0x60, +0x02, 0x74, 0x03, 0x61, 0x80, 0x18, 0xB1, 0x3B, +0x88, 0x10, 0x3F, 0x74, 0x0B, 0x61, 0x30, 0xF0, +0x20, 0x6C, 0x03, 0xF2, 0x98, 0x9C, 0x20, 0xF1, +0xDC, 0xA2, 0x80, 0xA4, 0x6C, 0xEC, 0xCE, 0xEC, +0x54, 0x2C, 0x0C, 0x10, 0x3E, 0x74, 0x51, 0x61, +0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF2, 0x98, 0x9C, +0x20, 0xF1, 0x1C, 0xA2, 0xC0, 0xA4, 0x6C, 0xEE, +0x0E, 0xEE, 0x21, 0x2E, 0x20, 0xF1, 0x9B, 0xA2, +0x20, 0xF1, 0x1D, 0xA2, 0x20, 0xF1, 0xDE, 0xA2, +0x9A, 0x34, 0xAC, 0xE8, 0xEC, 0xEC, 0x6C, 0xE8, +0xC6, 0x36, 0x6C, 0xEC, 0x6C, 0xEE, 0x08, 0x35, +0x05, 0x2C, 0x14, 0x35, 0xD0, 0x4D, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x20, 0xF1, 0xFE, 0xA2, +0x01, 0x6B, 0xEC, 0xEB, 0x08, 0xF1, 0x6F, 0xC2, +0x20, 0xF1, 0x7D, 0xA2, 0x49, 0x10, 0x80, 0xA4, +0x20, 0xF1, 0xDF, 0xA2, 0x6C, 0xEC, 0xCE, 0xEC, +0x20, 0x2C, 0x40, 0xF1, 0xE0, 0xA2, 0x20, 0xF1, +0x9B, 0xA2, 0x40, 0xF1, 0xC1, 0xA2, 0xAC, 0xEF, +0x9E, 0x34, 0x6C, 0xEF, 0xC6, 0x36, 0x6C, 0xEC, +0x6C, 0xEE, 0xE8, 0x35, 0x05, 0x2C, 0xF4, 0x35, +0xD0, 0x4D, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xED, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x40, 0xF1, 0xE1, 0xA2, 0x01, 0x6B, 0xEC, 0xEB, +0x08, 0xF1, 0x6F, 0xC2, 0x40, 0xF1, 0x60, 0xA2, +0x23, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0xE0, 0xF0, 0x90, 0xA2, 0x7F, 0x6B, +0xE0, 0xF0, 0xD1, 0xA2, 0x8C, 0xEB, 0xE0, 0xF0, +0x92, 0xA2, 0x01, 0x6A, 0xC6, 0x36, 0x8A, 0x34, +0x4C, 0xEC, 0x68, 0x35, 0x05, 0x2C, 0x74, 0x35, +0xD0, 0x4D, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xED, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0xE0, 0xF0, 0xF1, 0xA2, 0x01, 0x6B, 0xEC, 0xEB, +0x08, 0xF1, 0x6F, 0xC2, 0xE0, 0xF0, 0x70, 0xA2, +0x7E, 0x33, 0x08, 0xF1, 0x70, 0xC2, 0x80, 0x18, +0x4B, 0x3B, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xE0, 0xF0, 0xB2, 0xA2, +0x02, 0x6C, 0xFF, 0x6B, 0xAC, 0xEC, 0x33, 0x24, +0x30, 0xF0, 0x20, 0x6C, 0xE6, 0xF4, 0x8B, 0xA4, +0x2E, 0x2C, 0x05, 0xF3, 0x58, 0xA2, 0x08, 0x5A, +0x07, 0x61, 0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF3, +0x94, 0x9C, 0xF8, 0x4A, 0xA0, 0xA4, 0x05, 0x10, +0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF3, 0x98, 0x9C, +0xA0, 0xA4, 0x01, 0x6C, 0x84, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x6C, 0xEC, 0xA6, 0xF6, 0x00, 0x4A, +0xAC, 0xEC, 0xE0, 0xF0, 0xB4, 0xA2, 0x04, 0x6B, +0xAC, 0xEB, 0x02, 0x2B, 0x10, 0x2C, 0x01, 0x10, +0x0E, 0x24, 0x30, 0xF0, 0x20, 0x6C, 0xA0, 0xF0, +0x64, 0x9A, 0xC3, 0xF1, 0x9C, 0x9C, 0x8D, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x01, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0xE6, 0xF4, 0x6B, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0xE0, 0xF0, +0xB2, 0xA2, 0x02, 0x6C, 0xFF, 0x6B, 0xAC, 0xEC, +0x42, 0x24, 0x30, 0xF0, 0x20, 0x6C, 0xE6, 0xF4, +0x8B, 0xA4, 0x01, 0x74, 0x3C, 0x61, 0x05, 0xF3, +0x58, 0xA2, 0x08, 0x5A, 0x07, 0x61, 0x30, 0xF0, +0x20, 0x6C, 0x83, 0xF3, 0x94, 0x9C, 0xF8, 0x4A, +0xA0, 0xA4, 0x05, 0x10, 0x30, 0xF0, 0x20, 0x6C, +0x83, 0xF3, 0x98, 0x9C, 0xA0, 0xA4, 0x01, 0x6C, +0x84, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x6C, 0xEC, +0xA6, 0xF6, 0x00, 0x4A, 0xAC, 0xEC, 0xE0, 0xF0, +0xB4, 0xA2, 0x04, 0x6B, 0xAC, 0xEB, 0x10, 0x2B, +0x1E, 0x24, 0x30, 0xF0, 0x20, 0x6C, 0xA0, 0xF0, +0x64, 0x9A, 0xC3, 0xF1, 0x9C, 0x9C, 0x8D, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x02, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0xE6, 0xF4, 0x6B, 0xC2, 0x20, 0xE8, +0x0E, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0xA0, 0xF0, +0x64, 0x9A, 0xC3, 0xF1, 0x9C, 0x9C, 0x8D, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x02, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0xE6, 0xF4, 0x6B, 0xC2, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x60, 0x9B, +0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0x69, 0xE2, +0x00, 0x9A, 0x41, 0x45, 0x25, 0x67, 0x08, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, +0x85, 0x67, 0x2C, 0xE8, 0x40, 0xEA, 0x06, 0xEA, +0x50, 0x67, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0xF7, 0x1F, 0x68, +0x41, 0x45, 0x25, 0x67, 0x0C, 0xD6, 0x8C, 0xE8, +0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, +0x40, 0x9A, 0x41, 0xE0, 0xC0, 0xD8, 0x1A, 0x10, +0x01, 0x6D, 0x90, 0x67, 0xAB, 0xED, 0x80, 0x18, +0x72, 0x3C, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x44, 0x9A, 0x91, 0x67, 0x40, 0xEA, +0x0C, 0x93, 0x64, 0xEA, 0x43, 0x67, 0x04, 0x93, +0x2C, 0xEA, 0x2F, 0xE9, 0x6C, 0xE9, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF1, 0x60, 0x9B, 0x2D, 0xEA, +0x61, 0xE0, 0x40, 0xD8, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x01, 0x74, 0x0D, 0x60, 0x06, 0x24, 0x02, 0x74, +0x10, 0x60, 0x03, 0x74, 0x00, 0x6A, 0x1C, 0x61, +0x14, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA8, 0x35, +0x44, 0xF0, 0x40, 0x9A, 0x0B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA8, 0x35, 0x44, 0xF0, 0x44, 0x9A, +0x05, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF0, +0x48, 0x9A, 0xA8, 0x35, 0x55, 0xE5, 0x40, 0x9D, +0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF0, +0x4C, 0x9A, 0xA8, 0x35, 0x55, 0xE5, 0x40, 0x9D, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xEA, 0xF0, 0x1C, 0x4A, +0x88, 0x34, 0x91, 0xE2, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF5, 0xA0, 0x35, 0xCC, 0xEB, 0x30, 0xF0, +0x20, 0x6E, 0xA3, 0xF6, 0xC4, 0x9E, 0xC0, 0xF3, +0x44, 0x9A, 0x80, 0xAC, 0xAD, 0xEB, 0x01, 0x6D, +0xAB, 0xED, 0x6C, 0xEE, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6B, 0x8C, 0xEB, +0xFF, 0xF7, 0x1F, 0x6A, 0x81, 0x46, 0x06, 0x67, +0xAC, 0xEA, 0x06, 0x2C, 0x83, 0x67, 0xA2, 0x67, +0x80, 0x18, 0x9A, 0x3C, 0x02, 0x67, 0x0D, 0x10, +0x83, 0x67, 0xA2, 0x67, 0x80, 0x18, 0x9A, 0x3C, +0x22, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, +0x44, 0x9A, 0x90, 0x67, 0x2C, 0xE8, 0x40, 0xEA, +0x06, 0xEA, 0x50, 0x67, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x46, 0x67, 0xFF, 0x68, 0xFF, 0xF7, 0x1F, 0x69, +0x01, 0x4A, 0x0C, 0xD6, 0x0D, 0xD7, 0x8C, 0xE8, +0xAC, 0xE9, 0x04, 0x2A, 0x90, 0x67, 0xB1, 0x67, +0xC7, 0x67, 0x15, 0x10, 0xB1, 0x67, 0x90, 0x67, +0x80, 0x18, 0x9A, 0x3C, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x0C, 0x94, 0xA0, 0xF3, 0x44, 0x9A, +0x40, 0xEA, 0x0D, 0x96, 0x90, 0x67, 0xB1, 0x67, +0xC4, 0xEA, 0x0C, 0x92, 0x4C, 0xEE, 0x4F, 0xEB, +0x04, 0x92, 0x4C, 0xEB, 0x6D, 0xEE, 0x80, 0x18, +0xAD, 0x3C, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0x1F, 0xF7, +0x00, 0x6B, 0x4C, 0xEB, 0x02, 0xF0, 0x00, 0x73, +0x25, 0x67, 0x01, 0x60, 0x05, 0x2B, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF1, 0x7C, 0x9B, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x60, 0x9B, +0x69, 0xE2, 0x00, 0x9A, 0x41, 0x41, 0x08, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, +0x91, 0x67, 0x2C, 0xE8, 0x40, 0xEA, 0x06, 0xEA, +0x50, 0x67, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0xF7, 0x1F, 0x68, +0x41, 0x45, 0x25, 0x67, 0x0C, 0xD6, 0x8C, 0xE8, +0x16, 0x2A, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, +0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x07, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x5C, 0x9A, +0x41, 0xE0, 0x0C, 0x92, 0x3A, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF1, 0x40, 0x9A, 0x0C, 0x93, +0x41, 0xE0, 0x60, 0xD8, 0x33, 0x10, 0x1F, 0xF7, +0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF1, 0x5C, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF1, 0x40, 0x9A, 0x49, 0xE0, +0x40, 0x9A, 0x91, 0x67, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, +0x0C, 0x93, 0x64, 0xEA, 0x43, 0x67, 0x04, 0x93, +0x2C, 0xEA, 0x2F, 0xE9, 0x6C, 0xE9, 0x1F, 0xF7, +0x00, 0x6B, 0x0C, 0xEB, 0x02, 0xF0, 0x00, 0x73, +0x2D, 0xEA, 0x01, 0x60, 0x05, 0x2B, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF1, 0x7C, 0x9B, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x60, 0x9B, +0x61, 0xE0, 0x40, 0xD8, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x03, 0xF0, 0x08, 0x6B, 0x43, 0xF2, 0x7C, 0xDA, +0x05, 0xF1, 0x00, 0x4B, 0x63, 0xF2, 0x60, 0xDA, +0x02, 0xF1, 0x00, 0x4B, 0x63, 0xF2, 0x64, 0xDA, +0x00, 0xF1, 0x00, 0x4B, 0x63, 0xF2, 0x68, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, +0x1F, 0x6D, 0x8C, 0xED, 0x96, 0x34, 0x6C, 0xEC, +0x01, 0x74, 0x03, 0x6A, 0x0A, 0x60, 0x10, 0x24, +0x04, 0x74, 0x05, 0x60, 0x06, 0x74, 0x00, 0x6A, +0x12, 0x61, 0xEF, 0x4A, 0x02, 0x10, 0x07, 0x6A, +0x4B, 0xEA, 0xAB, 0xE2, 0x44, 0x32, 0x00, 0xF6, +0x40, 0x32, 0x00, 0xF6, 0x43, 0x32, 0x20, 0xE8, +0x08, 0x6A, 0xAB, 0xE2, 0x44, 0x32, 0x00, 0xF6, +0x40, 0x32, 0x00, 0xF6, 0x43, 0x32, 0x20, 0xE8, +0x00, 0xF6, 0x80, 0x34, 0x00, 0xF6, 0x83, 0x34, +0x47, 0x44, 0x5C, 0x4A, 0xFF, 0x6B, 0x6C, 0xEA, +0x77, 0x5A, 0x00, 0x6A, 0x06, 0x60, 0x00, 0x54, +0x64, 0x6A, 0x03, 0x60, 0x47, 0x44, 0x5D, 0x4A, +0x6C, 0xEA, 0x20, 0xE8, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, +0x0E, 0x91, 0x04, 0xD2, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xED, 0x4C, 0xE9, 0x0C, 0xD6, 0x0D, 0xD7, +0x0F, 0x90, 0x05, 0xD5, 0x00, 0x6A, 0x08, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x0A, 0x6C, 0x40, 0xEA, 0x40, 0xA8, 0x01, 0x4A, +0x40, 0xC8, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x95, +0x05, 0x96, 0xA3, 0xF4, 0xF4, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xAE, 0xF7, 0x18, 0x4C, 0x80, 0x18, +0x9C, 0x4E, 0x0C, 0x93, 0x6C, 0xEA, 0x0D, 0x93, +0x6E, 0xEA, 0x03, 0x22, 0x40, 0xA8, 0x23, 0xEA, +0xE3, 0x61, 0x40, 0xA8, 0x09, 0x97, 0x07, 0x90, +0x23, 0xEA, 0x08, 0x91, 0x58, 0x67, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF0, 0x6C, 0x9A, +0x7F, 0x6A, 0xFD, 0x67, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF0, +0x50, 0x9A, 0xD2, 0xA7, 0x02, 0x6B, 0xA0, 0xA2, +0x01, 0x6C, 0x6B, 0xEB, 0x8C, 0xED, 0xCC, 0xEB, +0xAD, 0xEB, 0x72, 0xC7, 0x02, 0x6B, 0x70, 0xC7, +0x30, 0xF0, 0x20, 0x6B, 0x64, 0xF0, 0x74, 0x9B, +0x8F, 0xCF, 0xFF, 0x6A, 0x80, 0xAB, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF7, 0xC4, 0x9B, 0x4C, 0xEC, +0x94, 0x34, 0xD1, 0xE4, 0x60, 0xA4, 0x40, 0x6D, +0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, +0x30, 0xF0, 0x20, 0x6B, 0x64, 0xF0, 0x78, 0x9B, +0x80, 0xAB, 0x4C, 0xEC, 0x94, 0x34, 0xD1, 0xE4, +0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, +0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, +0x05, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x4C, 0xED, +0x07, 0x6B, 0xAC, 0xEB, 0x2C, 0x2B, 0xAE, 0x35, +0xFF, 0x4D, 0x4C, 0xED, 0xA6, 0x33, 0xAC, 0x35, +0x4C, 0xEB, 0xB5, 0xE4, 0x08, 0xD3, 0x07, 0xD5, +0x06, 0xD4, 0x00, 0x69, 0x1A, 0x10, 0x30, 0xF0, +0x20, 0x68, 0x07, 0x95, 0x80, 0xF2, 0x4C, 0x98, +0x04, 0x04, 0x08, 0x6E, 0x40, 0xEA, 0x07, 0x94, +0x06, 0x95, 0x80, 0xF2, 0x4C, 0x98, 0x08, 0x6E, +0x01, 0x49, 0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x98, +0x06, 0x94, 0x04, 0x05, 0x08, 0x6E, 0x40, 0xEA, +0xFF, 0x6A, 0x4C, 0xE9, 0x07, 0x92, 0xF8, 0x4A, +0x07, 0xD2, 0x06, 0x93, 0x08, 0x92, 0x08, 0x4B, +0x43, 0xE9, 0x06, 0xD3, 0xE0, 0x61, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0x67, 0x80, 0xF2, +0x4C, 0x9A, 0x11, 0xD5, 0xA7, 0x40, 0x04, 0x04, +0x02, 0x4D, 0x26, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0x7D, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF3, +0x54, 0x9A, 0x90, 0xA3, 0x00, 0x6D, 0x40, 0xEA, +0x68, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, 0x31, 0x22, +0x69, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, +0x6C, 0xEA, 0x07, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF3, 0x4C, 0x9A, 0xAF, 0xA0, 0x91, 0x67, +0x40, 0xEA, 0x63, 0xA0, 0x80, 0x6A, 0x4B, 0xEA, +0x6D, 0xEA, 0x41, 0x6B, 0x6B, 0xEB, 0x6C, 0xEA, +0x43, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF3, +0x40, 0x9A, 0x00, 0x6D, 0xC5, 0x67, 0x90, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF3, +0x48, 0x9A, 0x90, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x40, 0xF3, 0x40, 0x9A, 0x8D, 0xA8, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x7D, 0x67, +0x20, 0xF3, 0x54, 0x9A, 0x90, 0xA3, 0x01, 0x6D, +0x40, 0xEA, 0x88, 0xA0, 0x02, 0x6A, 0xFF, 0x6B, +0x8C, 0xEA, 0x7A, 0x22, 0x83, 0xA0, 0x7F, 0x6A, +0x2E, 0xA0, 0x8C, 0xEA, 0x43, 0xC0, 0x3F, 0x6A, +0x2C, 0xEA, 0x02, 0x2A, 0x3A, 0x31, 0x02, 0x10, +0x3A, 0x31, 0x01, 0x49, 0x11, 0x94, 0x00, 0x6A, +0x6C, 0xE9, 0x07, 0xD4, 0x06, 0xD2, 0x08, 0xD2, +0x0A, 0xD2, 0x61, 0x10, 0x0A, 0x94, 0x6F, 0x41, +0x8E, 0xEB, 0x17, 0x2B, 0x88, 0xA0, 0x10, 0x6B, +0x8C, 0xEB, 0x4C, 0xEB, 0x04, 0x23, 0x63, 0xA0, +0x40, 0x6A, 0x6D, 0xEA, 0x04, 0x10, 0x63, 0xA0, +0x41, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x43, 0xC0, +0x06, 0x93, 0x4E, 0xA0, 0x49, 0xE3, 0x09, 0xD2, +0x09, 0x94, 0xFF, 0x6A, 0x4C, 0xEC, 0x09, 0xD4, +0x07, 0x10, 0x63, 0xA0, 0x41, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x43, 0xC0, 0x40, 0x6A, 0x09, 0xD2, +0x68, 0xA0, 0x04, 0x6A, 0x6C, 0xEA, 0x0D, 0x2A, +0x69, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, +0x6C, 0xEA, 0x07, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF3, 0x4C, 0x9A, 0x07, 0x94, 0x09, 0x95, +0x40, 0xEA, 0x08, 0x93, 0xA5, 0xA8, 0x30, 0xF0, +0x20, 0x6A, 0x09, 0x96, 0x20, 0xF3, 0x40, 0x9A, +0xB5, 0xE3, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xED, +0x90, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF3, 0x48, 0x9A, 0x90, 0x67, 0x40, 0xEA, +0x7D, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x90, 0xA3, +0x20, 0xF3, 0x54, 0x9A, 0x01, 0x6D, 0x40, 0xEA, +0x08, 0x92, 0xFF, 0xF7, 0x1F, 0x6B, 0x0A, 0x94, +0x40, 0x4A, 0x6C, 0xEA, 0x08, 0xD2, 0x06, 0x92, +0x01, 0x4C, 0x0A, 0xD4, 0xC0, 0x4A, 0x06, 0xD2, +0x07, 0x94, 0x06, 0x93, 0xFF, 0x6A, 0x40, 0x4C, +0x4C, 0xEB, 0x07, 0xD4, 0x06, 0xD3, 0x0A, 0x93, +0xFF, 0x6A, 0x4C, 0xEB, 0x23, 0xEB, 0x9A, 0x61, +0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x01, 0x74, 0x11, 0x60, +0x05, 0x24, 0x02, 0x74, 0x03, 0x60, 0x03, 0x74, +0x0C, 0x60, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x24, 0xF1, 0x70, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x63, 0xF4, 0x8C, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, +0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF1, +0x70, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF4, +0x88, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0xA4, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x63, 0xF4, 0x84, 0x9C, 0x60, 0x9D, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x8C, 0xEB, +0x42, 0xF6, 0x68, 0xDA, 0x60, 0x9D, 0x8C, 0xEB, +0x42, 0xF6, 0x74, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF1, 0x40, 0x9A, +0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF4, +0x44, 0x9A, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x40, 0x98, +0x82, 0x46, 0x26, 0x67, 0x40, 0xEA, 0x04, 0xD2, +0xC0, 0xF3, 0x40, 0x98, 0x83, 0x41, 0x40, 0xEA, +0x05, 0xD2, 0xC0, 0xF3, 0x40, 0x98, 0x81, 0x41, +0x40, 0xEA, 0x06, 0xD2, 0xC0, 0xF3, 0x40, 0x98, +0x91, 0x67, 0x40, 0xEA, 0x05, 0x94, 0x03, 0x6B, +0x8C, 0xEB, 0x04, 0x94, 0xA7, 0x43, 0x0F, 0x6B, +0x8C, 0xEB, 0x6C, 0x33, 0x11, 0x4D, 0x75, 0xE5, +0x06, 0x93, 0x60, 0x34, 0x4D, 0xEC, 0xE7, 0xF7, +0x1F, 0x6A, 0x4C, 0xEC, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF4, 0x70, 0x9A, 0x91, 0xE5, 0x40, 0xEB, +0x30, 0xF0, 0x20, 0x6B, 0xE9, 0xF4, 0x68, 0x9B, +0x29, 0xE2, 0x43, 0xEB, 0x02, 0x60, 0x6F, 0xEB, +0x69, 0xE2, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x40, 0x98, 0x82, 0x45, 0x25, 0x67, +0x40, 0xEA, 0x04, 0xD2, 0xC0, 0xF3, 0x40, 0x98, +0x83, 0x41, 0x18, 0x49, 0x40, 0xEA, 0x03, 0x6B, +0x4C, 0xEB, 0x04, 0x92, 0x0F, 0x6C, 0x65, 0xE1, +0x4C, 0xEC, 0x8C, 0x34, 0x89, 0xE1, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF4, 0x4C, 0x9A, 0x85, 0x67, 0x40, 0xEA, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0x6A, 0x8C, 0xEA, 0x0B, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF7, 0x60, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x83, 0xF2, 0x88, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF7, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x44, 0xF1, 0x84, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, +0x40, 0xDB, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xEC, +0x07, 0x6B, 0x8C, 0xEB, 0x4C, 0xED, 0x8E, 0x34, +0x42, 0xF4, 0x10, 0x4C, 0x36, 0x25, 0x1F, 0xF7, +0x00, 0x6D, 0x8C, 0xED, 0x02, 0xF0, 0x00, 0x75, +0x01, 0x60, 0x21, 0x2D, 0x1F, 0xF7, 0x00, 0x6A, +0x8C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, +0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, +0xBC, 0x9A, 0xB5, 0xE4, 0x80, 0xA5, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0xBC, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, 0x40, 0x9A, +0xB5, 0xE4, 0x51, 0xE4, 0x80, 0xA4, 0x00, 0xF6, +0x80, 0x34, 0x01, 0x6A, 0x00, 0xF6, 0x83, 0x34, +0x44, 0xEB, 0x8D, 0xEA, 0x36, 0x10, 0x30, 0xF0, +0x20, 0x6D, 0x63, 0xF1, 0xA0, 0x9D, 0x01, 0x6E, +0xC4, 0xEB, 0xB1, 0xE4, 0xA0, 0xA4, 0x00, 0xF6, +0xA0, 0x35, 0x00, 0xF6, 0xA3, 0x35, 0xCD, 0xED, +0x3A, 0x10, 0x1F, 0xF7, 0x00, 0x6D, 0x8C, 0xED, +0x02, 0xF0, 0x00, 0x75, 0x01, 0x60, 0x25, 0x2D, +0x1F, 0xF7, 0x00, 0x6A, 0x8C, 0xEA, 0x02, 0xF0, +0x00, 0x72, 0x01, 0x60, 0x07, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF1, 0xBC, 0x9A, 0xB5, 0xE4, +0x80, 0xA5, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF1, 0xBC, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x40, 0x9A, 0xB5, 0xE4, 0x51, 0xE4, +0x80, 0xA4, 0x01, 0x6A, 0x00, 0xF6, 0x80, 0x34, +0x44, 0xEB, 0x00, 0xF6, 0x83, 0x34, 0x4F, 0xEA, +0x8C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x40, 0xC5, +0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6D, 0x63, 0xF1, +0xA0, 0x9D, 0x01, 0x6E, 0xC4, 0xEB, 0xB1, 0xE4, +0xA0, 0xA4, 0xCF, 0xEE, 0x00, 0xF6, 0xA0, 0x35, +0x00, 0xF6, 0xA3, 0x35, 0xCC, 0xED, 0x4C, 0xED, +0xA0, 0xC4, 0x20, 0xE8, 0x01, 0x6A, 0x20, 0xE8, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEE, 0x4C, 0xEF, +0x24, 0x67, 0x0D, 0xD5, 0x06, 0xD6, 0x04, 0xD7, +0x2C, 0x27, 0x00, 0x68, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x40, 0x9B, 0x91, 0x67, 0x40, 0xEA, +0x06, 0x93, 0x6E, 0xEA, 0x11, 0x2A, 0x0D, 0x95, +0x42, 0x41, 0x82, 0x67, 0x05, 0xD2, 0x80, 0x18, +0xB5, 0x3E, 0x01, 0x72, 0x1C, 0x60, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, 0x81, 0x41, +0x40, 0xEA, 0x05, 0x93, 0x45, 0xE3, 0x08, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, +0x81, 0x41, 0x02, 0x49, 0x40, 0xEA, 0x45, 0xE1, +0xFF, 0xF7, 0x1F, 0x6B, 0x02, 0x48, 0x6C, 0xE8, +0x41, 0xE0, 0x04, 0x92, 0x6C, 0xE8, 0x43, 0xE8, +0xD5, 0x61, 0x01, 0x69, 0x2B, 0xE9, 0x51, 0x67, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xED, 0x80, 0x18, +0x1B, 0x13, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, 0x70, 0x9B, +0xFF, 0x6A, 0x25, 0x67, 0x60, 0xA3, 0xFF, 0xF7, +0x1F, 0x68, 0x4C, 0xE9, 0x6C, 0xEA, 0x8C, 0xE8, +0x04, 0xD2, 0x00, 0x18, 0xA0, 0xD3, 0x0F, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, +0x00, 0x6C, 0xFF, 0x6D, 0x49, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, +0x40, 0xEA, 0x01, 0x72, 0x09, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF2, 0x54, 0x9A, 0x90, 0x67, +0x01, 0x6D, 0xD1, 0x67, 0x03, 0x6F, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF3, 0x70, 0x9A, +0xFF, 0x6C, 0x08, 0x6D, 0x40, 0xA3, 0x4A, 0x6E, +0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0x95, 0xA0, 0xF2, +0x50, 0x9A, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0xEF, 0xDF, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, +0x00, 0x6D, 0xC5, 0x67, 0xFF, 0x6C, 0x40, 0xEA, +0x01, 0x6C, 0x0C, 0x6D, 0x00, 0x18, 0x17, 0xC5, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0xFF, 0x6C, 0xA4, 0x67, +0x2F, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF4, 0x5C, 0x9A, 0x40, 0xEA, 0x00, 0x18, +0x05, 0xE0, 0x01, 0x6C, 0x08, 0x6D, 0x00, 0x18, +0x17, 0xC5, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, +0x12, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF7, +0x94, 0xA2, 0x30, 0xF0, 0x20, 0x6D, 0x30, 0xF0, +0x20, 0x6E, 0x30, 0xF0, 0x20, 0x6F, 0x0C, 0xF0, +0x10, 0x4D, 0x0C, 0xF0, 0x11, 0x4E, 0x0C, 0xF0, +0x12, 0x4F, 0x80, 0x18, 0x58, 0x03, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xF5, 0x63, 0x15, 0x62, +0x14, 0xD1, 0x13, 0xD0, 0x1A, 0x92, 0x16, 0xD4, +0x17, 0xD5, 0x10, 0xD2, 0x10, 0x93, 0xFF, 0x6A, +0x18, 0xD6, 0x4C, 0xEB, 0x10, 0xD3, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF4, 0x90, 0x9B, 0xE2, 0xF4, +0x10, 0x4B, 0x62, 0xAB, 0x06, 0xD4, 0x9D, 0x67, +0x6E, 0xCC, 0x00, 0x6B, 0x0A, 0xD3, 0x0D, 0xD3, +0x0B, 0xD3, 0x0C, 0xD3, 0x01, 0x6B, 0x6B, 0xEB, +0x20, 0xF0, 0x68, 0xC4, 0x02, 0x6B, 0x20, 0xF0, +0x69, 0xC4, 0x05, 0x6B, 0x6B, 0xEB, 0x20, 0xF0, +0x77, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF4, +0x88, 0x9B, 0xE2, 0xF4, 0x08, 0x4B, 0x64, 0xA3, +0xBD, 0x67, 0x04, 0xD4, 0x74, 0xC5, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF4, 0x80, 0x9B, 0xE2, 0xF4, +0x00, 0x4B, 0x4C, 0xEF, 0x08, 0xD4, 0x82, 0xAB, +0x66, 0xA3, 0x0F, 0xD7, 0x92, 0xCD, 0x20, 0xF0, +0x66, 0xC5, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, +0x70, 0x9B, 0x60, 0xA3, 0x6C, 0xEA, 0x11, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x58, 0x9A, +0x02, 0xF0, 0x00, 0x6B, 0x40, 0x9A, 0x6C, 0xEA, +0x1C, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0x00, 0x6C, 0xFF, 0x6D, 0x59, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, +0x5C, 0x9A, 0x00, 0x68, 0x40, 0xEA, 0x01, 0x72, +0x19, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xA0, 0xF2, 0x54, 0x9A, 0x0C, 0xF0, +0x92, 0xA3, 0x01, 0x6D, 0x18, 0x6E, 0xF0, 0x67, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xA0, 0xF2, 0x54, 0x9A, 0x0C, 0xF0, +0x92, 0xA3, 0x01, 0x6D, 0x18, 0x6E, 0x00, 0x6F, +0x40, 0xEA, 0x02, 0x67, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF2, 0x54, 0x9A, 0xFF, 0x6F, 0x49, 0xE0, +0x80, 0xA2, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, +0x50, 0x9A, 0xEC, 0xEC, 0x49, 0xE0, 0xA0, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x5C, 0x9A, +0xEC, 0xED, 0x49, 0xE0, 0xC0, 0xA2, 0xEC, 0xEE, +0x80, 0x18, 0xC3, 0x06, 0x10, 0x95, 0x22, 0x67, +0x87, 0x40, 0x0E, 0xD2, 0x68, 0x49, 0xFF, 0x6A, +0x29, 0x4C, 0x4C, 0xE9, 0x80, 0x18, 0x79, 0x0D, +0x0F, 0x92, 0x18, 0x93, 0x03, 0x4A, 0x4C, 0x32, +0x49, 0xE3, 0x42, 0xA2, 0x0C, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF2, +0x48, 0x9A, 0x03, 0xF3, 0x80, 0x9C, 0x17, 0x93, +0x49, 0xE0, 0x91, 0xE0, 0x0F, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF2, 0x68, 0x9B, 0x06, 0x02, +0x00, 0xF0, 0x1E, 0x04, 0x6D, 0xE0, 0xA0, 0xA2, +0x01, 0x4A, 0x8A, 0xEA, 0xA0, 0xC3, 0x01, 0x4B, +0xFA, 0x61, 0x06, 0x10, 0xA0, 0xA3, 0x01, 0x4B, +0xA0, 0xC2, 0x01, 0x4A, 0x8A, 0xEA, 0xFA, 0x61, +0x18, 0x94, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, +0x4C, 0x9A, 0x75, 0xA4, 0x49, 0xE0, 0x29, 0xE2, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, +0x50, 0x9A, 0x76, 0xA4, 0x49, 0xE0, 0x29, 0xE2, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, +0x44, 0x9A, 0x01, 0x6B, 0x49, 0xE0, 0x29, 0xE2, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, +0x48, 0x9A, 0x79, 0xA4, 0x49, 0xE0, 0x29, 0xE2, +0x60, 0xC2, 0x0F, 0x92, 0x03, 0x4A, 0x4C, 0x32, +0x49, 0xE4, 0xA7, 0xA2, 0x66, 0xA2, 0xE8, 0xA2, +0x44, 0xA2, 0xFD, 0x65, 0x56, 0x2A, 0x0F, 0x96, +0xCC, 0x32, 0x49, 0xE4, 0x5D, 0xA2, 0x01, 0x72, +0x02, 0x61, 0x00, 0x6C, 0x1A, 0x10, 0x1C, 0x72, +0x4C, 0x61, 0xFB, 0x17, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF3, 0xCC, 0x9A, 0x85, 0xF1, 0x44, 0x9D, +0x30, 0xF0, 0x20, 0x6D, 0x23, 0xF2, 0xAC, 0x9D, +0xD9, 0xE0, 0x39, 0xE6, 0x49, 0xE5, 0x89, 0xE2, +0xA0, 0xA2, 0xFF, 0x6A, 0x99, 0xE6, 0xAC, 0xEA, +0x40, 0xC6, 0x01, 0x4C, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xEC, 0x1C, 0x6D, 0xB8, 0xEF, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x12, 0xED, +0x55, 0xE5, 0x85, 0xF1, 0x48, 0xAD, 0x43, 0xEC, +0xDD, 0x61, 0xFF, 0xF7, 0x1F, 0x6C, 0x0C, 0x4A, +0x8C, 0xEA, 0x9D, 0x67, 0x20, 0xF0, 0xA0, 0xA4, +0x00, 0x6C, 0x02, 0x4D, 0x13, 0x10, 0x30, 0xF0, +0x20, 0x6E, 0x23, 0xF2, 0xCC, 0x9E, 0xD9, 0xE2, +0x19, 0xE6, 0x39, 0xE6, 0x99, 0xE6, 0x10, 0xD6, +0xDD, 0x67, 0x99, 0xE6, 0x20, 0xF0, 0xE0, 0xA6, +0x10, 0x96, 0x01, 0x4C, 0xE0, 0xC6, 0xFF, 0xF7, +0x1F, 0x6E, 0xCC, 0xEC, 0xA2, 0xEC, 0xEB, 0x61, +0xFD, 0x67, 0x20, 0xF0, 0x80, 0xA7, 0x89, 0xE2, +0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEA, 0x02, 0x4A, +0x76, 0x10, 0xFF, 0x73, 0x00, 0x6C, 0x0C, 0x6A, +0x17, 0x61, 0x4B, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF3, 0xCC, 0x9A, 0x40, 0x9D, 0x30, 0xF0, +0x20, 0x6D, 0x23, 0xF2, 0xAC, 0x9D, 0xD9, 0xE0, +0x39, 0xE6, 0x49, 0xE5, 0x89, 0xE2, 0xA0, 0xA2, +0xFF, 0x6A, 0x99, 0xE6, 0xAC, 0xEA, 0x40, 0xC6, +0x01, 0x4C, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEC, +0x30, 0xF0, 0x20, 0x6A, 0x50, 0xF5, 0xA2, 0x43, +0xA6, 0xF6, 0x00, 0x4A, 0xAC, 0x35, 0x55, 0xE5, +0x42, 0xAD, 0x43, 0xEC, 0xDF, 0x61, 0xFF, 0xF7, +0x1F, 0x6C, 0x0C, 0x4A, 0x8C, 0xEA, 0x0F, 0x94, +0x18, 0x95, 0x03, 0x4C, 0x8C, 0x34, 0x91, 0xE5, +0x83, 0xA4, 0x1F, 0x24, 0xDD, 0x67, 0xB0, 0xA6, +0x00, 0x6C, 0x01, 0x4D, 0x10, 0x10, 0x30, 0xF0, +0x20, 0x6E, 0x23, 0xF2, 0xCC, 0x9E, 0xFD, 0x67, +0x9D, 0xE7, 0xD9, 0xE2, 0x19, 0xE6, 0xF0, 0xA7, +0x39, 0xE6, 0x99, 0xE6, 0xE0, 0xC6, 0x01, 0x4C, +0xFF, 0xF7, 0x1F, 0x6E, 0xCC, 0xEC, 0xA2, 0xEC, +0xEE, 0x61, 0xBD, 0x67, 0x90, 0xA5, 0x89, 0xE2, +0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEA, 0x01, 0x4A, +0x8C, 0xEA, 0x00, 0x6C, 0x14, 0x10, 0x30, 0xF0, +0x20, 0x6E, 0x23, 0xF2, 0xEC, 0x9E, 0x65, 0xF1, +0xB4, 0x9D, 0xF9, 0xE0, 0xB5, 0xE7, 0x95, 0xE5, +0xE0, 0xA5, 0x39, 0xE6, 0x59, 0xE6, 0xFF, 0x6D, +0x99, 0xE6, 0xEC, 0xED, 0xA0, 0xC6, 0x01, 0x4C, +0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEC, 0x1C, 0x6D, +0xFF, 0x67, 0xB8, 0xEF, 0x30, 0xF0, 0x20, 0x6E, +0xA6, 0xF6, 0x00, 0x4E, 0x12, 0xED, 0xD5, 0xE5, +0x65, 0xF1, 0xD8, 0xAD, 0xC3, 0xEC, 0xDF, 0x61, +0xC9, 0xE2, 0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEA, +0x0F, 0x94, 0x18, 0x95, 0x03, 0x4C, 0x8C, 0x34, +0x91, 0xE5, 0x84, 0xA4, 0x25, 0x2C, 0x0F, 0x96, +0xCC, 0x34, 0x91, 0xE5, 0x9D, 0xA4, 0x01, 0x74, +0x00, 0x6C, 0x1E, 0x61, 0x14, 0x10, 0x30, 0xF0, +0x20, 0x6D, 0x23, 0xF2, 0xCC, 0x9D, 0xE5, 0xF2, +0x70, 0x9B, 0xD5, 0xE0, 0x6D, 0xE6, 0x8D, 0xE3, +0xC0, 0xA3, 0x35, 0xE5, 0x55, 0xE5, 0xFF, 0x6B, +0x95, 0xE5, 0xCC, 0xEB, 0x60, 0xC5, 0x01, 0x4C, +0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEC, 0x30, 0xF0, +0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, 0xE5, 0xF2, +0xB4, 0xAB, 0xA3, 0xEC, 0xE4, 0x61, 0x2B, 0x10, +0x0F, 0x94, 0x18, 0x97, 0x03, 0x4C, 0x8C, 0x34, +0x91, 0xE7, 0x84, 0xA4, 0x26, 0x2C, 0x0F, 0x95, +0xAC, 0x34, 0x91, 0xE7, 0x9D, 0xA4, 0x1C, 0x74, +0x00, 0x6C, 0x1F, 0x61, 0x14, 0x10, 0x30, 0xF0, +0x20, 0x6D, 0x23, 0xF2, 0xCC, 0x9D, 0xE5, 0xF2, +0x78, 0x9B, 0xD5, 0xE0, 0x6D, 0xE6, 0x8D, 0xE3, +0xC0, 0xA3, 0x35, 0xE5, 0x55, 0xE5, 0xFF, 0x6B, +0x95, 0xE5, 0xCC, 0xEB, 0x60, 0xC5, 0x01, 0x4C, +0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEC, 0x30, 0xF0, +0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, 0xE5, 0xF2, +0xBC, 0xAB, 0xA3, 0xEC, 0xE4, 0x61, 0xA9, 0xE2, +0x9C, 0x10, 0x0F, 0x94, 0x18, 0x96, 0x03, 0x4C, +0x8C, 0x34, 0x91, 0xE6, 0x84, 0xA4, 0x5C, 0x2C, +0x0F, 0x97, 0xEC, 0x34, 0x91, 0xE6, 0x9D, 0xA4, +0x21, 0x74, 0x00, 0x6C, 0x55, 0x61, 0x14, 0x10, +0x30, 0xF0, 0x20, 0x6D, 0x65, 0xF1, 0xDC, 0x9E, +0x23, 0xF2, 0xAC, 0x9D, 0xBD, 0xE0, 0xD5, 0xE5, +0x95, 0xE5, 0xC0, 0xA5, 0x3D, 0xE7, 0x5D, 0xE7, +0xFF, 0x6D, 0x9D, 0xE7, 0xCC, 0xED, 0xA0, 0xC7, +0x01, 0x4C, 0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEC, +0x1C, 0x6E, 0xFF, 0x67, 0xD8, 0xEF, 0x30, 0xF0, +0x20, 0x6D, 0xA6, 0xF6, 0x00, 0x4D, 0x12, 0xEE, +0xB9, 0xE6, 0x85, 0xF1, 0xE0, 0xAE, 0xE3, 0xEC, +0xDF, 0x61, 0xE9, 0xE2, 0xFF, 0xF7, 0x1F, 0x6C, +0xFF, 0x73, 0x8C, 0xEA, 0xC0, 0xF0, 0x06, 0x60, +0x0F, 0x94, 0x18, 0x97, 0x03, 0x4C, 0x8C, 0x34, +0x91, 0xE7, 0x83, 0xA4, 0x11, 0x24, 0x40, 0xF5, +0x12, 0x4B, 0x30, 0xF0, 0x20, 0x6C, 0x6C, 0x33, +0xAD, 0xE3, 0x03, 0xF3, 0x90, 0x9C, 0x64, 0xA3, +0x65, 0xF1, 0xB8, 0xA6, 0x91, 0xE0, 0x31, 0xE4, +0xAD, 0xE3, 0x51, 0xE4, 0x0A, 0x4B, 0x10, 0x10, +0x40, 0xF5, 0x12, 0x4B, 0x30, 0xF0, 0x20, 0x6C, +0x6C, 0x33, 0xAD, 0xE3, 0x03, 0xF3, 0x90, 0x9C, +0x64, 0xA3, 0x65, 0xF1, 0xB8, 0xA6, 0x91, 0xE0, +0x31, 0xE4, 0xAD, 0xE3, 0x51, 0xE4, 0x05, 0x4B, +0xFF, 0x6D, 0xAC, 0xEB, 0x60, 0xC4, 0x9A, 0x10, +0x0F, 0x94, 0x18, 0x95, 0x03, 0x4C, 0x8C, 0x34, +0x91, 0xE5, 0x84, 0xA4, 0x36, 0x2C, 0x0F, 0x96, +0xCC, 0x34, 0x91, 0xE5, 0x9D, 0xA4, 0x10, 0x74, +0x30, 0x61, 0x1C, 0x6C, 0xBF, 0x67, 0x98, 0xED, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, +0x12, 0xEC, 0x6D, 0xE4, 0x85, 0xF1, 0xEC, 0xA3, +0x00, 0x6B, 0x13, 0x10, 0x30, 0xF0, 0x20, 0x6C, +0xA1, 0x9D, 0x23, 0xF2, 0x8C, 0x9C, 0x99, 0xE0, +0xB1, 0xE4, 0x71, 0xE4, 0xA0, 0xA4, 0x39, 0xE6, +0x59, 0xE6, 0xFF, 0x6C, 0x79, 0xE6, 0xAC, 0xEC, +0x80, 0xC6, 0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6C, +0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0x50, 0xF5, +0xA5, 0x47, 0xA6, 0xF6, 0x00, 0x4C, 0xAC, 0x35, +0x95, 0xE5, 0x84, 0xAD, 0x83, 0xEB, 0xE2, 0x61, +0x89, 0xE2, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, +0x5D, 0x10, 0x0F, 0x94, 0x18, 0x96, 0x03, 0x4C, +0x8C, 0x34, 0x91, 0xE6, 0x84, 0xA4, 0x56, 0x2C, +0x0F, 0x97, 0xEC, 0x34, 0x91, 0xE6, 0x9D, 0xA4, +0x0C, 0x74, 0x00, 0x6C, 0x4F, 0x61, 0x14, 0x10, +0x30, 0xF0, 0x20, 0x6E, 0x23, 0xF2, 0xEC, 0x9E, +0x05, 0xF3, 0xA0, 0x9D, 0xF9, 0xE0, 0xB5, 0xE7, +0x95, 0xE5, 0xE0, 0xA5, 0x39, 0xE6, 0x59, 0xE6, +0xFF, 0x6D, 0x99, 0xE6, 0xEC, 0xED, 0xA0, 0xC6, +0x01, 0x4C, 0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEC, +0x30, 0xF0, 0x20, 0x6D, 0xA6, 0xF6, 0x00, 0x4D, +0x05, 0xF3, 0xC4, 0xAD, 0xC3, 0xEC, 0xE4, 0x61, +0xC9, 0xE2, 0xFF, 0xF7, 0x1F, 0x6C, 0xFF, 0x73, +0x8C, 0xEA, 0x23, 0x60, 0x0F, 0x94, 0x18, 0x96, +0x03, 0x4C, 0x8C, 0x34, 0x91, 0xE6, 0x83, 0xA4, +0x0E, 0x24, 0x30, 0xF0, 0x20, 0x6C, 0x40, 0xF5, +0x12, 0x4B, 0x03, 0xF3, 0x90, 0x9C, 0x6C, 0x33, +0xAD, 0xE3, 0x64, 0xA3, 0x91, 0xE0, 0x31, 0xE4, +0x51, 0xE4, 0x11, 0x4B, 0x79, 0x17, 0x30, 0xF0, +0x20, 0x6C, 0x40, 0xF5, 0x12, 0x4B, 0x03, 0xF3, +0x90, 0x9C, 0x6C, 0x33, 0xAD, 0xE3, 0x64, 0xA3, +0x91, 0xE0, 0x31, 0xE4, 0x51, 0xE4, 0x0C, 0x4B, +0x6B, 0x17, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, +0x70, 0x9B, 0x0C, 0x6C, 0x6D, 0xE0, 0x2D, 0xE3, +0x4D, 0xE3, 0x80, 0xC3, 0x18, 0x97, 0x79, 0xA7, +0x03, 0x73, 0x00, 0xF1, 0x0F, 0x61, 0x7F, 0xA7, +0x1C, 0x6D, 0x9E, 0xA7, 0xFB, 0x65, 0xDF, 0x67, +0xB8, 0xEE, 0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF5, +0x12, 0x4C, 0x0F, 0x96, 0xA6, 0xF6, 0x00, 0x4B, +0x8C, 0x34, 0x71, 0xE4, 0x03, 0x4E, 0xCC, 0x36, +0xD9, 0xE7, 0xC3, 0xA6, 0x12, 0xED, 0x75, 0xE5, +0x64, 0xA4, 0x65, 0xF1, 0x98, 0xA5, 0xFF, 0x6D, +0x8D, 0xE3, 0x87, 0x43, 0x0F, 0x4C, 0x05, 0x4B, +0xAC, 0xEC, 0xAC, 0xEB, 0x04, 0x26, 0x05, 0x4C, +0x05, 0x4B, 0xAC, 0xEC, 0xAC, 0xEB, 0x30, 0xF0, +0x20, 0x6D, 0x23, 0xF2, 0xAC, 0x9D, 0x40, 0x6E, +0xCB, 0xEE, 0xB5, 0xE0, 0x35, 0xE5, 0x55, 0xE5, +0xC0, 0xC5, 0x30, 0xF0, 0x20, 0x6D, 0xC3, 0xF2, +0xB0, 0x9D, 0xB5, 0xE0, 0x35, 0xE5, 0x55, 0xE5, +0x80, 0xC5, 0x02, 0x4A, 0xFF, 0xF7, 0x1F, 0x6D, +0xAC, 0xEA, 0x10, 0xD3, 0x00, 0x6D, 0x14, 0x10, +0x30, 0xF0, 0x20, 0x6E, 0x65, 0xF1, 0xFC, 0x9F, +0x23, 0xF2, 0xCC, 0x9E, 0xCD, 0xE0, 0xF9, 0xE6, +0xB9, 0xE6, 0xE0, 0xA6, 0x2D, 0xE3, 0x4D, 0xE3, +0xFF, 0x6E, 0xAD, 0xE3, 0xEC, 0xEE, 0xC0, 0xC3, +0x01, 0x4D, 0xFF, 0xF7, 0x1F, 0x6E, 0xCC, 0xED, +0x1C, 0x6F, 0x7F, 0x67, 0xF8, 0xEB, 0x30, 0xF0, +0x20, 0x6E, 0xA6, 0xF6, 0x00, 0x4E, 0x12, 0xEF, +0xDD, 0xE7, 0x85, 0xF1, 0xC0, 0xAF, 0xC3, 0xED, +0xDF, 0x61, 0xC9, 0xE2, 0x30, 0xF0, 0x20, 0x6E, +0x03, 0xF3, 0xF4, 0x9E, 0xFF, 0xF7, 0x1F, 0x6D, +0xAC, 0xEA, 0xFD, 0xE0, 0x3D, 0xE7, 0x40, 0x6E, +0x5D, 0xE7, 0xCB, 0xEE, 0x10, 0x93, 0xC0, 0xC7, +0x30, 0xF0, 0x20, 0x6F, 0x03, 0xF3, 0xF0, 0x9F, +0xFD, 0xE0, 0x3D, 0xE7, 0x5D, 0xE7, 0x60, 0xC7, +0x30, 0xF0, 0x20, 0x6F, 0x23, 0xF2, 0xEC, 0x9F, +0xFD, 0xE0, 0x3D, 0xE7, 0x5D, 0xE7, 0xC0, 0xC7, +0x30, 0xF0, 0x20, 0x6E, 0xC3, 0xF2, 0xD0, 0x9E, +0xD9, 0xE0, 0x39, 0xE6, 0x59, 0xE6, 0x02, 0x4A, +0x80, 0xC6, 0xAC, 0xEA, 0x00, 0x6C, 0x13, 0x10, +0x30, 0xF0, 0x20, 0x6E, 0x23, 0xF2, 0xEC, 0x9E, +0xA1, 0x9D, 0xF9, 0xE0, 0xB5, 0xE7, 0x95, 0xE5, +0xE0, 0xA5, 0x39, 0xE6, 0x59, 0xE6, 0xFF, 0x6D, +0x99, 0xE6, 0xEC, 0xED, 0xA0, 0xC6, 0x01, 0x4C, +0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEC, 0x1C, 0x6D, +0xFF, 0x67, 0xB8, 0xEF, 0x30, 0xF0, 0x20, 0x6E, +0xA6, 0xF6, 0x00, 0x4E, 0x12, 0xED, 0xD5, 0xE5, +0x85, 0xF1, 0xAC, 0xA5, 0x40, 0xF5, 0x15, 0x4D, +0xAC, 0x35, 0xD5, 0xE5, 0xC4, 0xAD, 0xC3, 0xEC, +0xDB, 0x61, 0xFF, 0xF7, 0x1F, 0x6C, 0xC9, 0xE2, +0x8C, 0xEA, 0x00, 0x6C, 0x14, 0x10, 0x30, 0xF0, +0x20, 0x6E, 0x23, 0xF2, 0xEC, 0x9E, 0x85, 0xF1, +0xA4, 0x9D, 0xF9, 0xE0, 0xB5, 0xE7, 0x95, 0xE5, +0xE0, 0xA5, 0x39, 0xE6, 0x59, 0xE6, 0xFF, 0x6D, +0x99, 0xE6, 0xEC, 0xED, 0xA0, 0xC6, 0x01, 0x4C, +0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEC, 0x1C, 0x6D, +0xFF, 0x67, 0xB8, 0xEF, 0x30, 0xF0, 0x20, 0x6E, +0xA6, 0xF6, 0x00, 0x4E, 0x12, 0xED, 0xD5, 0xE5, +0x85, 0xF1, 0xC8, 0xAD, 0xC3, 0xEC, 0xDF, 0x61, +0x30, 0xF0, 0x20, 0x6D, 0x23, 0xF2, 0xAC, 0x9D, +0xC9, 0xE2, 0xFF, 0xF7, 0x1F, 0x6C, 0xB5, 0xE0, +0x8C, 0xEA, 0x35, 0xE5, 0x40, 0x6E, 0x55, 0xE5, +0xCB, 0xEE, 0xC0, 0xC5, 0x30, 0xF0, 0x20, 0x6D, +0xC3, 0xF2, 0xB0, 0x9D, 0xB5, 0xE0, 0x35, 0xE5, +0x55, 0xE5, 0x02, 0x4A, 0x60, 0xC5, 0x8C, 0xEA, +0x00, 0x6B, 0x14, 0x10, 0x30, 0xF0, 0x20, 0x6D, +0x23, 0xF2, 0xCC, 0x9D, 0xE5, 0xF2, 0x98, 0x9C, +0xD5, 0xE0, 0x91, 0xE6, 0x71, 0xE4, 0xC0, 0xA4, +0x35, 0xE5, 0x55, 0xE5, 0xFF, 0x6C, 0x75, 0xE5, +0xCC, 0xEC, 0x80, 0xC5, 0x01, 0x4B, 0xFF, 0xF7, +0x1F, 0x6C, 0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, +0xA6, 0xF6, 0x00, 0x4C, 0xE5, 0xF2, 0xBC, 0xAC, +0xA3, 0xEB, 0xE4, 0x61, 0xA9, 0xE2, 0xFF, 0xF7, +0x1F, 0x6B, 0x6C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF3, 0xD8, 0x9B, 0x0E, 0x93, 0xFF, 0xF7, +0x1F, 0x6C, 0x08, 0x4A, 0x8C, 0xEA, 0xD9, 0xE0, +0x42, 0x35, 0x79, 0xE6, 0xA0, 0xC6, 0x30, 0xF0, +0x20, 0x6E, 0x03, 0xF3, 0xDC, 0x9E, 0x0E, 0x97, +0xFF, 0x6B, 0xD9, 0xE0, 0x4C, 0xEB, 0xF9, 0xE6, +0x60, 0xC6, 0x30, 0xF0, 0x20, 0x6E, 0x23, 0xF3, +0xC0, 0x9E, 0x28, 0x4A, 0x8C, 0xEA, 0xD9, 0xE0, +0xF9, 0xE6, 0xA0, 0xC6, 0x30, 0xF0, 0x20, 0x6D, +0x23, 0xF3, 0xA4, 0x9D, 0xB5, 0xE0, 0xF5, 0xE5, +0x60, 0xC5, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF3, +0x68, 0x9B, 0x11, 0x6D, 0x6D, 0xE0, 0xED, 0xE3, +0xA0, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF3, +0x6C, 0x9B, 0x01, 0x6D, 0xAB, 0xED, 0x6D, 0xE0, +0xED, 0xE3, 0xA0, 0xC3, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF2, 0xAC, 0x9B, 0x67, 0x67, 0x08, 0x4B, +0x6D, 0xE2, 0x8C, 0xEB, 0xB5, 0xE0, 0x60, 0xCD, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, 0x94, 0x9B, +0x00, 0x6B, 0x91, 0xE0, 0xF1, 0xE4, 0x30, 0xF0, +0x20, 0x6D, 0xA6, 0xF6, 0x00, 0x4D, 0x75, 0xE5, +0xC5, 0xF0, 0xBE, 0xA5, 0xC8, 0x44, 0xF8, 0x4E, +0xA0, 0xC6, 0x0F, 0x95, 0x18, 0x96, 0x03, 0x4D, +0xAC, 0x35, 0xB5, 0xE6, 0xA2, 0xA5, 0x05, 0x25, +0xFD, 0x67, 0x75, 0xE7, 0x20, 0xF0, 0xA8, 0xA5, +0x03, 0x10, 0x16, 0x96, 0x75, 0xE6, 0xA0, 0xA5, +0x01, 0x4B, 0x10, 0x69, 0x6E, 0xE9, 0xA0, 0xC4, +0x01, 0x4C, 0xE1, 0x29, 0xD8, 0x4A, 0x10, 0xD2, +0x10, 0x97, 0xFF, 0xF7, 0x1F, 0x6A, 0x0E, 0x93, +0x4C, 0xEF, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, +0x50, 0x9A, 0x10, 0xD7, 0xE2, 0x34, 0x49, 0xE0, +0x69, 0xE2, 0x20, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF3, 0x54, 0x9A, 0x49, 0xE0, 0x69, 0xE2, +0x20, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, +0x78, 0x9A, 0x0E, 0x95, 0xFF, 0x6A, 0x6D, 0xE0, +0xAD, 0xE3, 0x80, 0xC3, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF3, 0x7C, 0x9B, 0xEC, 0xEA, 0x12, 0x6C, +0x6D, 0xE0, 0xAD, 0xE3, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF3, 0x40, 0x9A, 0x11, 0x6B, +0x49, 0xE0, 0xA9, 0xE2, 0x20, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF3, 0x44, 0x9A, 0x49, 0xE0, +0xA9, 0xE2, 0x20, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF3, 0x48, 0x9A, 0x49, 0xE0, 0xA9, 0xE2, +0x20, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, +0x4C, 0x9A, 0x49, 0xE0, 0xA9, 0xE2, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x74, 0x9A, +0x0E, 0x97, 0x30, 0xF0, 0x20, 0x6A, 0x0C, 0xF0, +0xD2, 0xA2, 0xA7, 0x40, 0x31, 0x4D, 0xF5, 0xE5, +0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, +0x50, 0x9A, 0x0E, 0x93, 0x49, 0xE0, 0x69, 0xE2, +0x60, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF3, 0x50, 0x9A, 0x0E, 0x94, 0x49, 0xE0, +0x89, 0xE2, 0x20, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF3, 0x54, 0x9A, 0x49, 0xE0, 0x89, 0xE2, +0x20, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, +0x58, 0x9A, 0x49, 0xE0, 0x89, 0xE2, 0x20, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x6C, 0x9A, +0x00, 0x6A, 0x6D, 0xE0, 0x8D, 0xE3, 0x30, 0xF0, +0x20, 0x6C, 0xA6, 0xF6, 0x00, 0x4C, 0x51, 0xE4, +0xC5, 0xF0, 0x9E, 0xA4, 0xA8, 0x43, 0xF8, 0x4D, +0x80, 0xC5, 0x0F, 0x94, 0x18, 0x96, 0x03, 0x4C, +0x8C, 0x34, 0x91, 0xE6, 0x82, 0xA4, 0x05, 0x24, +0xFD, 0x67, 0x51, 0xE7, 0x20, 0xF0, 0x88, 0xA4, +0x03, 0x10, 0x16, 0x95, 0x51, 0xE5, 0x80, 0xA4, +0x01, 0x4A, 0x10, 0x72, 0x80, 0xC3, 0x01, 0x4B, +0xE2, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, +0x60, 0x9A, 0x0E, 0x96, 0x10, 0x97, 0x6D, 0xE0, +0xCD, 0xE3, 0xE2, 0x34, 0x80, 0xC3, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF3, 0x64, 0x9B, 0xFF, 0x6A, +0xEC, 0xEA, 0x6D, 0xE0, 0xCD, 0xE3, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x48, 0x9A, +0x11, 0x6B, 0x49, 0xE0, 0xC9, 0xE2, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x4C, 0x9A, +0x41, 0xE0, 0x01, 0x6A, 0x4B, 0xEA, 0xC1, 0xE0, +0x40, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0xE0, 0xF0, 0x7C, 0xA2, 0x02, 0x73, +0x05, 0x61, 0x00, 0xF1, 0x84, 0xA2, 0x0E, 0x95, +0x80, 0x18, 0x1D, 0x0A, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF3, 0x7C, 0x9A, 0xFF, 0x6C, 0x80, 0x6D, +0x40, 0xA3, 0xAB, 0xED, 0x59, 0x6E, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x11, 0x95, 0xA0, 0xF2, 0x50, 0x9A, +0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, 0x15, 0x97, +0x14, 0x91, 0x13, 0x90, 0x0B, 0x63, 0x00, 0xEF, +0xF5, 0x63, 0x15, 0x62, 0x14, 0xD1, 0x13, 0xD0, +0x1A, 0x92, 0x16, 0xD4, 0x17, 0xD5, 0x0F, 0xD2, +0x0F, 0x93, 0xFF, 0x6A, 0x18, 0xD6, 0x4C, 0xEB, +0x0F, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF5, +0x8C, 0x9B, 0x02, 0xF5, 0x0C, 0x4B, 0x62, 0xAB, +0x07, 0xD4, 0x9D, 0x67, 0x70, 0xCC, 0x30, 0xF0, +0x20, 0x6B, 0x02, 0xF5, 0x68, 0x9B, 0xBD, 0x67, +0x4C, 0xEF, 0x04, 0xD3, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF5, 0x80, 0x9B, 0x02, 0xF5, 0x00, 0x4B, +0x64, 0xA3, 0x05, 0xD4, 0x0D, 0xD7, 0x78, 0xC5, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF4, 0x98, 0x9B, +0xE2, 0xF4, 0x18, 0x4B, 0x09, 0xD4, 0x82, 0xAB, +0x66, 0xA3, 0x94, 0xCD, 0x20, 0xF0, 0x6A, 0xC5, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, 0x70, 0x9B, +0x60, 0xA3, 0x6C, 0xEA, 0x10, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF2, 0x58, 0x9A, 0x02, 0xF0, +0x00, 0x6B, 0x40, 0x9A, 0x6C, 0xEA, 0x1C, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, +0x00, 0x6C, 0xFF, 0x6D, 0x57, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, +0x00, 0x68, 0x40, 0xEA, 0x01, 0x72, 0x19, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF2, 0x54, 0x9A, 0x0C, 0xF0, 0x91, 0xA3, +0x01, 0x6D, 0x18, 0x6E, 0xF0, 0x67, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF2, 0x54, 0x9A, 0x0C, 0xF0, 0x91, 0xA3, +0x01, 0x6D, 0x18, 0x6E, 0x00, 0x6F, 0x40, 0xEA, +0x02, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, +0x54, 0x9A, 0xFF, 0x6F, 0x49, 0xE0, 0x80, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x50, 0x9A, +0xEC, 0xEC, 0x49, 0xE0, 0xA0, 0xA2, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF2, 0x5C, 0x9A, 0xEC, 0xED, +0x49, 0xE0, 0xC0, 0xA2, 0xEC, 0xEE, 0x80, 0x18, +0xC3, 0x06, 0x0F, 0x95, 0x22, 0x67, 0x87, 0x40, +0x0E, 0xD2, 0x54, 0x49, 0xFF, 0x6A, 0x29, 0x4C, +0x4C, 0xE9, 0x80, 0x18, 0x79, 0x0D, 0x0D, 0x92, +0x18, 0x93, 0x03, 0x4A, 0x4C, 0x32, 0x49, 0xE3, +0x42, 0xA2, 0x0C, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF2, 0x48, 0x9A, +0x03, 0xF3, 0x80, 0x9C, 0x17, 0x93, 0x49, 0xE0, +0x91, 0xE0, 0x1E, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF2, 0x68, 0x9B, 0x07, 0x02, 0x20, 0xF0, +0x02, 0x04, 0x6D, 0xE0, 0xA0, 0xA2, 0x01, 0x4A, +0x8A, 0xEA, 0xA0, 0xC3, 0x01, 0x4B, 0xFA, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, 0x74, 0x9B, +0x0E, 0x94, 0x04, 0x02, 0x6D, 0xE0, 0x8D, 0xE3, +0x05, 0x04, 0xA0, 0xA2, 0x01, 0x4A, 0x8A, 0xEA, +0xA0, 0xC3, 0x01, 0x4B, 0xFA, 0x61, 0x1A, 0x10, +0xA0, 0xA3, 0x01, 0x4B, 0xA0, 0xC2, 0x01, 0x4A, +0x8A, 0xEA, 0xFA, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF2, 0x54, 0x9A, +0x63, 0xF3, 0x80, 0x9C, 0x0E, 0x95, 0x16, 0x93, +0x49, 0xE0, 0x91, 0xE0, 0xA9, 0xE2, 0xB1, 0xE4, +0xA0, 0xA3, 0x01, 0x4B, 0xA0, 0xC2, 0x01, 0x4A, +0x8A, 0xEA, 0xFA, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xA5, 0xF0, 0x6A, 0xAA, +0x01, 0x4B, 0xA5, 0xF0, 0x6A, 0xCA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF3, 0x60, 0x9B, 0x0E, 0x96, +0xA5, 0xF0, 0x8A, 0xAA, 0x6D, 0xE0, 0xCD, 0xE3, +0x82, 0x34, 0x80, 0xC3, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF3, 0x64, 0x9B, 0xA5, 0xF0, 0x8A, 0xA2, +0x6D, 0xE0, 0xCD, 0xE3, 0x80, 0xC3, 0xE0, 0xF0, +0x7C, 0xA2, 0x02, 0x73, 0x05, 0x61, 0x00, 0xF1, +0x84, 0xA2, 0x0E, 0x95, 0x80, 0x18, 0x1D, 0x0A, +0x18, 0x97, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, +0x4C, 0x9A, 0x75, 0xA7, 0x49, 0xE0, 0x29, 0xE2, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, +0x50, 0x9A, 0x76, 0xA7, 0x49, 0xE0, 0x29, 0xE2, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, +0x44, 0x9A, 0x01, 0x6B, 0x49, 0xE0, 0x29, 0xE2, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, +0x48, 0x9A, 0x79, 0xA7, 0x49, 0xE0, 0x29, 0xE2, +0x60, 0xC2, 0x0D, 0x92, 0x03, 0x4A, 0x4C, 0x32, +0x49, 0xE7, 0x67, 0xA2, 0xE6, 0xA2, 0xC8, 0xA2, +0x44, 0xA2, 0xFB, 0x65, 0x57, 0x2A, 0x0D, 0x94, +0x18, 0x95, 0x8C, 0x32, 0x49, 0xE5, 0x5D, 0xA2, +0x01, 0x72, 0x02, 0x61, 0x00, 0x6B, 0x1A, 0x10, +0x1C, 0x72, 0x4C, 0x61, 0xFB, 0x17, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF3, 0xAC, 0x9A, 0x85, 0xF1, +0x44, 0x9C, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF2, +0x8C, 0x9C, 0xB5, 0xE0, 0x35, 0xE5, 0x49, 0xE4, +0x69, 0xE2, 0x80, 0xA2, 0xFF, 0x6A, 0x75, 0xE5, +0x8C, 0xEA, 0x40, 0xC5, 0x01, 0x4B, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xEB, 0x1C, 0x6C, 0x98, 0xEE, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x12, 0xEC, 0x51, 0xE4, 0x85, 0xF1, 0x48, 0xAC, +0x43, 0xEB, 0xDD, 0x61, 0xFF, 0xF7, 0x1F, 0x6B, +0x0C, 0x4A, 0x6C, 0xEA, 0x7D, 0x67, 0x20, 0xF0, +0x84, 0xA3, 0x00, 0x6B, 0x02, 0x4C, 0x13, 0x10, +0x30, 0xF0, 0x20, 0x6D, 0x23, 0xF2, 0xAC, 0x9D, +0xB5, 0xE2, 0x15, 0xE5, 0x35, 0xE5, 0x75, 0xE5, +0x0C, 0xD5, 0xBD, 0x67, 0x75, 0xE5, 0x20, 0xF0, +0xC4, 0xA5, 0x0C, 0x95, 0x01, 0x4B, 0xC0, 0xC5, +0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEB, 0x82, 0xEB, +0xEB, 0x61, 0xDD, 0x67, 0x20, 0xF0, 0x64, 0xA6, +0x69, 0xE2, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, +0x02, 0x4A, 0x76, 0x10, 0xFF, 0x77, 0x00, 0x6B, +0x0C, 0x6A, 0x17, 0x61, 0x4B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF3, 0xAC, 0x9A, 0x40, 0x9C, +0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF2, 0x8C, 0x9C, +0xB5, 0xE0, 0x35, 0xE5, 0x49, 0xE4, 0x69, 0xE2, +0x80, 0xA2, 0xFF, 0x6A, 0x75, 0xE5, 0x8C, 0xEA, +0x40, 0xC5, 0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x50, 0xF5, +0x82, 0x47, 0xA6, 0xF6, 0x00, 0x4A, 0x8C, 0x34, +0x51, 0xE4, 0x42, 0xAC, 0x43, 0xEB, 0xDF, 0x61, +0xFF, 0xF7, 0x1F, 0x6B, 0x0C, 0x4A, 0x6C, 0xEA, +0x0D, 0x93, 0x18, 0x94, 0x03, 0x4B, 0x6C, 0x33, +0x6D, 0xE4, 0x63, 0xA3, 0x1F, 0x23, 0xBD, 0x67, +0x94, 0xA5, 0x00, 0x6B, 0x01, 0x4C, 0x10, 0x10, +0x30, 0xF0, 0x20, 0x6D, 0x23, 0xF2, 0xAC, 0x9D, +0xDD, 0x67, 0x79, 0xE6, 0xB5, 0xE2, 0x15, 0xE5, +0xD4, 0xA6, 0x35, 0xE5, 0x75, 0xE5, 0xC0, 0xC5, +0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEB, +0x82, 0xEB, 0xEE, 0x61, 0x9D, 0x67, 0x74, 0xA4, +0x69, 0xE2, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, +0x01, 0x4A, 0x6C, 0xEA, 0x00, 0x6B, 0x14, 0x10, +0x30, 0xF0, 0x20, 0x6D, 0x23, 0xF2, 0xCC, 0x9D, +0x65, 0xF1, 0x94, 0x9C, 0xD5, 0xE0, 0x91, 0xE6, +0x71, 0xE4, 0xC0, 0xA4, 0x35, 0xE5, 0x55, 0xE5, +0xFF, 0x6C, 0x75, 0xE5, 0xCC, 0xEC, 0x80, 0xC5, +0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEB, +0x1C, 0x6C, 0xDF, 0x67, 0x98, 0xEE, 0x30, 0xF0, +0x20, 0x6D, 0xA6, 0xF6, 0x00, 0x4D, 0x12, 0xEC, +0xB1, 0xE4, 0x65, 0xF1, 0xB8, 0xAC, 0xA3, 0xEB, +0xDF, 0x61, 0xA9, 0xE2, 0xFF, 0xF7, 0x1F, 0x6B, +0x6C, 0xEA, 0x0D, 0x93, 0x18, 0x94, 0x03, 0x4B, +0x6C, 0x33, 0x6D, 0xE4, 0x64, 0xA3, 0x25, 0x2B, +0x0D, 0x95, 0xAC, 0x33, 0x6D, 0xE4, 0x7D, 0xA3, +0x01, 0x73, 0x00, 0x6B, 0x1E, 0x61, 0x14, 0x10, +0x30, 0xF0, 0x20, 0x6D, 0x23, 0xF2, 0xCC, 0x9D, +0xE5, 0xF2, 0x90, 0x9C, 0xD5, 0xE0, 0x91, 0xE6, +0x71, 0xE4, 0xC0, 0xA4, 0x35, 0xE5, 0x55, 0xE5, +0xFF, 0x6C, 0x75, 0xE5, 0xCC, 0xEC, 0x80, 0xC5, +0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEB, +0x30, 0xF0, 0x20, 0x6C, 0xA6, 0xF6, 0x00, 0x4C, +0xE5, 0xF2, 0xB4, 0xAC, 0xA3, 0xEB, 0xE4, 0x61, +0xC6, 0x10, 0x0D, 0x93, 0x18, 0x96, 0x03, 0x4B, +0x6C, 0x33, 0x6D, 0xE6, 0x64, 0xA3, 0x25, 0x2B, +0x0D, 0x94, 0x8C, 0x33, 0x6D, 0xE6, 0x7D, 0xA3, +0x1C, 0x73, 0x00, 0x6B, 0x1E, 0x61, 0x14, 0x10, +0x30, 0xF0, 0x20, 0x6D, 0x23, 0xF2, 0xCC, 0x9D, +0xE5, 0xF2, 0x98, 0x9C, 0xD5, 0xE0, 0x91, 0xE6, +0x71, 0xE4, 0xC0, 0xA4, 0x35, 0xE5, 0x55, 0xE5, +0xFF, 0x6C, 0x75, 0xE5, 0xCC, 0xEC, 0x80, 0xC5, +0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEB, +0x30, 0xF0, 0x20, 0x6C, 0xA6, 0xF6, 0x00, 0x4C, +0xE5, 0xF2, 0xBC, 0xAC, 0xA3, 0xEB, 0xE4, 0x61, +0x9A, 0x10, 0x0D, 0x93, 0x18, 0x95, 0x03, 0x4B, +0x6C, 0x33, 0x6D, 0xE5, 0x64, 0xA3, 0x5B, 0x2B, +0x0D, 0x96, 0xCC, 0x33, 0x6D, 0xE5, 0x7D, 0xA3, +0x21, 0x73, 0x00, 0x6B, 0x54, 0x61, 0x14, 0x10, +0x30, 0xF0, 0x20, 0x6C, 0x65, 0xF1, 0xBC, 0x9D, +0x23, 0xF2, 0x8C, 0x9C, 0x99, 0xE0, 0xB1, 0xE4, +0x71, 0xE4, 0xA0, 0xA4, 0x39, 0xE6, 0x59, 0xE6, +0xFF, 0x6C, 0x79, 0xE6, 0xAC, 0xEC, 0x80, 0xC6, +0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEB, +0x1C, 0x6D, 0xDF, 0x67, 0xB8, 0xEE, 0x30, 0xF0, +0x20, 0x6C, 0xA6, 0xF6, 0x00, 0x4C, 0x12, 0xED, +0x95, 0xE5, 0x85, 0xF1, 0xC0, 0xAD, 0xC3, 0xEB, +0xDF, 0x61, 0xC9, 0xE2, 0xFF, 0xF7, 0x1F, 0x6B, +0xFF, 0x77, 0x6C, 0xEA, 0xC0, 0xF0, 0x05, 0x60, +0x0D, 0x93, 0x18, 0x96, 0x03, 0x4B, 0x6C, 0x33, +0x6D, 0xE6, 0x63, 0xA3, 0x11, 0x23, 0x40, 0xF5, +0x12, 0x4F, 0x30, 0xF0, 0x20, 0x6B, 0xEC, 0x37, +0x03, 0xF3, 0x70, 0x9B, 0x91, 0xE7, 0x84, 0xA4, +0x65, 0xF1, 0xB8, 0xA5, 0x6D, 0xE0, 0x2D, 0xE3, +0xB1, 0xE4, 0x4D, 0xE3, 0x0A, 0x4C, 0x10, 0x10, +0x40, 0xF5, 0x12, 0x4F, 0x30, 0xF0, 0x20, 0x6B, +0xEC, 0x37, 0x03, 0xF3, 0x70, 0x9B, 0x91, 0xE7, +0x84, 0xA4, 0x65, 0xF1, 0xB8, 0xA5, 0x6D, 0xE0, +0x2D, 0xE3, 0xB1, 0xE4, 0x4D, 0xE3, 0x05, 0x4C, +0xFF, 0x6D, 0xAC, 0xEC, 0x99, 0x10, 0x0D, 0x93, +0x18, 0x94, 0x03, 0x4B, 0x6C, 0x33, 0x6D, 0xE4, +0x64, 0xA3, 0x36, 0x2B, 0x0D, 0x95, 0xAC, 0x33, +0x6D, 0xE4, 0x7D, 0xA3, 0x10, 0x73, 0x30, 0x61, +0x1C, 0x6C, 0xBF, 0x67, 0x98, 0xED, 0x30, 0xF0, +0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, 0x12, 0xEC, +0x6D, 0xE4, 0x85, 0xF1, 0xEC, 0xA3, 0x00, 0x6B, +0x13, 0x10, 0x30, 0xF0, 0x20, 0x6D, 0x23, 0xF2, +0xCC, 0x9D, 0x81, 0x9C, 0xD5, 0xE0, 0x91, 0xE6, +0x71, 0xE4, 0xC0, 0xA4, 0x35, 0xE5, 0x55, 0xE5, +0xFF, 0x6C, 0x75, 0xE5, 0xCC, 0xEC, 0x80, 0xC5, +0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEB, +0x30, 0xF0, 0x20, 0x6D, 0x50, 0xF5, 0x85, 0x47, +0xA6, 0xF6, 0x00, 0x4D, 0x8C, 0x34, 0xB1, 0xE4, +0xA4, 0xAC, 0xA3, 0xEB, 0xE2, 0x61, 0xA9, 0xE2, +0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, 0x5D, 0x10, +0x0D, 0x93, 0x18, 0x96, 0x03, 0x4B, 0x6C, 0x33, +0x6D, 0xE6, 0x64, 0xA3, 0x56, 0x2B, 0x0D, 0x94, +0x8C, 0x33, 0x6D, 0xE6, 0x7D, 0xA3, 0x0C, 0x73, +0x00, 0x6B, 0x4F, 0x61, 0x14, 0x10, 0x30, 0xF0, +0x20, 0x6D, 0x23, 0xF2, 0xCC, 0x9D, 0x05, 0xF3, +0x80, 0x9C, 0xD5, 0xE0, 0x91, 0xE6, 0x71, 0xE4, +0xC0, 0xA4, 0x35, 0xE5, 0x55, 0xE5, 0xFF, 0x6C, +0x75, 0xE5, 0xCC, 0xEC, 0x80, 0xC5, 0x01, 0x4B, +0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEB, 0x30, 0xF0, +0x20, 0x6C, 0xA6, 0xF6, 0x00, 0x4C, 0x05, 0xF3, +0xA4, 0xAC, 0xA3, 0xEB, 0xE4, 0x61, 0xA9, 0xE2, +0xFF, 0xF7, 0x1F, 0x6B, 0xFF, 0x77, 0x6C, 0xEA, +0x23, 0x60, 0x0D, 0x93, 0x18, 0x95, 0x03, 0x4B, +0x6C, 0x33, 0x6D, 0xE5, 0x63, 0xA3, 0x0E, 0x23, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF5, 0x12, 0x4F, +0x03, 0xF3, 0x70, 0x9B, 0xEC, 0x37, 0x91, 0xE7, +0x84, 0xA4, 0x6D, 0xE0, 0x2D, 0xE3, 0x4D, 0xE3, +0x11, 0x4C, 0x7A, 0x17, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF5, 0x12, 0x4F, 0x03, 0xF3, 0x70, 0x9B, +0xEC, 0x37, 0x91, 0xE7, 0x84, 0xA4, 0x6D, 0xE0, +0x2D, 0xE3, 0x4D, 0xE3, 0x0C, 0x4C, 0x6C, 0x17, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, 0x70, 0x9B, +0x0C, 0x6C, 0x6D, 0xE0, 0x2D, 0xE3, 0x4D, 0xE3, +0x80, 0xC3, 0x18, 0x96, 0x79, 0xA6, 0x03, 0x73, +0x00, 0xF1, 0x13, 0x61, 0xFF, 0xA6, 0x1C, 0x6D, +0x9E, 0xA6, 0xB8, 0xEF, 0x30, 0xF0, 0x20, 0x6B, +0x0D, 0x96, 0x40, 0xF5, 0x12, 0x4C, 0xA6, 0xF6, +0x00, 0x4B, 0x8C, 0x34, 0x71, 0xE4, 0xFF, 0x65, +0x18, 0x97, 0x03, 0x4E, 0xCC, 0x36, 0xD9, 0xE7, +0xC3, 0xA6, 0x12, 0xED, 0x75, 0xE5, 0x64, 0xA4, +0x65, 0xF1, 0x98, 0xA5, 0xFF, 0x6D, 0x8D, 0xE3, +0x87, 0x43, 0x0F, 0x4C, 0x05, 0x4B, 0xAC, 0xEC, +0xAC, 0xEB, 0x04, 0x26, 0x05, 0x4C, 0x05, 0x4B, +0xAC, 0xEC, 0xAC, 0xEB, 0x30, 0xF0, 0x20, 0x6D, +0x23, 0xF2, 0xAC, 0x9D, 0x40, 0x6E, 0xCB, 0xEE, +0xB5, 0xE0, 0x35, 0xE5, 0x55, 0xE5, 0xC0, 0xC5, +0x30, 0xF0, 0x20, 0x6D, 0xC3, 0xF2, 0xB0, 0x9D, +0xB5, 0xE0, 0x35, 0xE5, 0x55, 0xE5, 0x80, 0xC5, +0x02, 0x4A, 0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEA, +0x0D, 0xD3, 0x00, 0x6D, 0x18, 0x10, 0x30, 0xF0, +0x20, 0x6F, 0x23, 0xF2, 0xEC, 0x9F, 0x65, 0xF1, +0xDC, 0x9E, 0xED, 0xE0, 0x2D, 0xE3, 0x1F, 0x65, +0x5D, 0xE3, 0xAD, 0xE7, 0xF8, 0x67, 0xD9, 0xE7, +0xB9, 0xE6, 0xC0, 0xA6, 0x01, 0x4D, 0x1E, 0x65, +0xF8, 0x67, 0xFF, 0x6E, 0xEC, 0xEE, 0xC0, 0xC3, +0xFF, 0xF7, 0x1F, 0x6E, 0xCC, 0xED, 0x1C, 0x6B, +0xDF, 0x67, 0x78, 0xEE, 0x30, 0xF0, 0x20, 0x6F, +0xA6, 0xF6, 0x00, 0x4F, 0x12, 0xEB, 0xF9, 0xE3, +0x85, 0xF1, 0xE0, 0xAE, 0xE3, 0xED, 0xDB, 0x61, +0x30, 0xF0, 0x20, 0x6E, 0xE9, 0xE2, 0x03, 0xF3, +0xF4, 0x9E, 0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEA, +0xFD, 0xE0, 0x3D, 0xE7, 0x40, 0x6E, 0x5D, 0xE7, +0xCB, 0xEE, 0x0D, 0x93, 0xC0, 0xC7, 0x30, 0xF0, +0x20, 0x6F, 0x03, 0xF3, 0xF0, 0x9F, 0xFD, 0xE0, +0x3D, 0xE7, 0x5D, 0xE7, 0x60, 0xC7, 0x30, 0xF0, +0x20, 0x6F, 0x23, 0xF2, 0xEC, 0x9F, 0xFD, 0xE0, +0x3D, 0xE7, 0x5D, 0xE7, 0xC0, 0xC7, 0x30, 0xF0, +0x20, 0x6E, 0xC3, 0xF2, 0xD0, 0x9E, 0xD9, 0xE0, +0x39, 0xE6, 0x59, 0xE6, 0x02, 0x4A, 0x80, 0xC6, +0xAC, 0xEA, 0x00, 0x6C, 0x13, 0x10, 0x30, 0xF0, +0x20, 0x6E, 0x23, 0xF2, 0xEC, 0x9E, 0xA1, 0x9D, +0xF9, 0xE0, 0xB5, 0xE7, 0x95, 0xE5, 0xE0, 0xA5, +0x39, 0xE6, 0x59, 0xE6, 0xFF, 0x6D, 0x99, 0xE6, +0xEC, 0xED, 0xA0, 0xC6, 0x01, 0x4C, 0xFF, 0xF7, +0x1F, 0x6D, 0xAC, 0xEC, 0x1C, 0x6D, 0xFF, 0x67, +0xB8, 0xEF, 0x30, 0xF0, 0x20, 0x6E, 0xA6, 0xF6, +0x00, 0x4E, 0x12, 0xED, 0xD5, 0xE5, 0x85, 0xF1, +0xAC, 0xA5, 0x40, 0xF5, 0x15, 0x4D, 0xAC, 0x35, +0xD5, 0xE5, 0xE4, 0xAD, 0xE3, 0xEC, 0xDB, 0x61, +0xFF, 0xF7, 0x1F, 0x6C, 0xE9, 0xE2, 0x8C, 0xEA, +0x00, 0x6C, 0x14, 0x10, 0x30, 0xF0, 0x20, 0x6D, +0x85, 0xF1, 0xC4, 0x9E, 0x23, 0xF2, 0xAC, 0x9D, +0xBD, 0xE0, 0xD5, 0xE5, 0x95, 0xE5, 0xC0, 0xA5, +0x3D, 0xE7, 0x5D, 0xE7, 0xFF, 0x6D, 0x9D, 0xE7, +0xCC, 0xED, 0xA0, 0xC7, 0x01, 0x4C, 0xFF, 0xF7, +0x1F, 0x6D, 0xAC, 0xEC, 0x1C, 0x6E, 0xFF, 0x67, +0xD8, 0xEF, 0x30, 0xF0, 0x20, 0x6D, 0xA6, 0xF6, +0x00, 0x4D, 0x12, 0xEE, 0xB9, 0xE6, 0x85, 0xF1, +0xA8, 0xAE, 0xA3, 0xEC, 0xDF, 0x61, 0xA9, 0xE2, +0x30, 0xF0, 0x20, 0x6D, 0x23, 0xF2, 0xAC, 0x9D, +0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEA, 0xB5, 0xE0, +0x35, 0xE5, 0x40, 0x6E, 0x55, 0xE5, 0xCB, 0xEE, +0xC0, 0xC5, 0x30, 0xF0, 0x20, 0x6D, 0xC3, 0xF2, +0xB0, 0x9D, 0xB5, 0xE0, 0x35, 0xE5, 0x55, 0xE5, +0x02, 0x4A, 0x60, 0xC5, 0x8C, 0xEA, 0x00, 0x6B, +0x14, 0x10, 0x30, 0xF0, 0x20, 0x6D, 0xE5, 0xF2, +0x90, 0x9C, 0x23, 0xF2, 0xAC, 0x9D, 0xB9, 0xE0, +0x95, 0xE5, 0x75, 0xE5, 0xA0, 0xA5, 0x39, 0xE6, +0x59, 0xE6, 0xFF, 0x6C, 0x79, 0xE6, 0xAC, 0xEC, +0x80, 0xC6, 0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6C, +0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0xA6, 0xF6, +0x00, 0x4C, 0xE5, 0xF2, 0xB4, 0xAC, 0xA3, 0xEB, +0xE4, 0x61, 0xA9, 0xE2, 0xFF, 0xF7, 0x1F, 0x6B, +0x6C, 0xEA, 0x27, 0x42, 0x01, 0x49, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF2, 0x4C, 0x9A, 0x0E, 0x93, 0x30, 0xF0, +0x20, 0x6D, 0x49, 0xE0, 0x69, 0xE2, 0x22, 0x33, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, +0x44, 0x9A, 0x0E, 0x94, 0xFF, 0x6B, 0x49, 0xE0, +0x2C, 0xEB, 0x89, 0xE2, 0xA6, 0xF6, 0x00, 0x4D, +0x60, 0xC2, 0x0C, 0xD5, 0x47, 0x40, 0x0C, 0x97, +0x31, 0x4A, 0x89, 0xE2, 0x0D, 0xD2, 0x30, 0xF0, +0x20, 0x6E, 0x20, 0xF4, 0x54, 0x9E, 0x0D, 0x95, +0x65, 0xF1, 0xD1, 0xA7, 0x11, 0x6C, 0x14, 0x49, +0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE9, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, 0x74, 0x9A, +0x0E, 0x94, 0xFF, 0x6D, 0x6D, 0xE0, 0x22, 0x32, +0x8D, 0xE3, 0xAC, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF3, 0x58, 0x9A, 0x65, 0x67, +0x2C, 0xEB, 0x49, 0xE0, 0x89, 0xE2, 0x60, 0xC2, +0x0C, 0x97, 0x30, 0xF0, 0x20, 0x6E, 0x20, 0xF4, +0x54, 0x9E, 0x0D, 0x95, 0x65, 0xF1, 0xD1, 0xA7, +0x00, 0x6C, 0x40, 0xEA, 0x0E, 0x92, 0xFF, 0x6C, +0xFF, 0x6D, 0x08, 0x4A, 0x45, 0xE1, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF2, 0x4C, 0x9A, 0x58, 0x6E, 0x41, 0xE0, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, 0x7C, 0x9A, +0x20, 0xC8, 0x40, 0xA3, 0x8C, 0xEA, 0x9F, 0xF6, +0x01, 0x4C, 0x8D, 0xEA, 0xAC, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x10, 0x95, 0xA0, 0xF2, +0x50, 0x9A, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, +0x15, 0x97, 0x14, 0x91, 0x13, 0x90, 0x0B, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xD2, 0x63, 0x5B, 0x62, +0x5A, 0xD1, 0x59, 0xD0, 0x00, 0x6A, 0x7D, 0x67, +0x5C, 0xD4, 0x5D, 0xD5, 0x06, 0xD2, 0x4E, 0xCB, +0x08, 0xD2, 0x09, 0xD2, 0x0A, 0xD2, 0x0B, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, +0xFF, 0x6E, 0x0C, 0x04, 0x00, 0x6D, 0x0B, 0x4E, +0x40, 0xEA, 0x5C, 0x90, 0x00, 0xF0, 0x1E, 0x04, +0x06, 0x01, 0x10, 0x48, 0x56, 0xD4, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, 0x90, 0x67, +0x01, 0x48, 0x40, 0xEA, 0x40, 0xC1, 0x56, 0x92, +0x01, 0x49, 0x4A, 0xE9, 0xF4, 0x61, 0x5C, 0x91, +0x5D, 0x93, 0x08, 0x04, 0x10, 0x49, 0x0C, 0x02, +0x65, 0xE1, 0x50, 0xD4, 0x57, 0xD2, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x40, 0x98, 0x91, 0x67, +0x01, 0x49, 0x40, 0xEA, 0x50, 0x93, 0x57, 0x94, +0x40, 0xC3, 0x01, 0x4B, 0x8A, 0xEB, 0x50, 0xD3, +0xF2, 0x61, 0x5C, 0x91, 0x5D, 0x92, 0xFF, 0xF7, +0x1F, 0x6B, 0x38, 0x49, 0x45, 0xE1, 0xC0, 0xF3, +0x40, 0x98, 0x6C, 0xE9, 0x91, 0x67, 0x40, 0xEA, +0x9D, 0x67, 0x40, 0xF0, 0x45, 0xC4, 0xC0, 0xF3, +0x40, 0x98, 0x81, 0x41, 0x40, 0xEA, 0x7D, 0x67, +0x40, 0xF0, 0x45, 0xC3, 0xC0, 0xF3, 0x40, 0x98, +0x85, 0x41, 0x40, 0xEA, 0x9D, 0x67, 0x40, 0xF0, +0x48, 0xC4, 0xC0, 0xF3, 0x40, 0x98, 0x87, 0x41, +0x04, 0x4C, 0x40, 0xEA, 0x7D, 0x67, 0x40, 0xF0, +0x49, 0xC3, 0x0C, 0x49, 0x00, 0x6A, 0xFF, 0xF7, +0x1F, 0x6C, 0x8C, 0xE9, 0x54, 0xD2, 0x52, 0xD2, +0xBB, 0x11, 0x9D, 0x67, 0x40, 0xF0, 0x07, 0xA4, +0x40, 0xF0, 0x0A, 0x02, 0x00, 0x6D, 0x0C, 0x30, +0x01, 0xE2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x48, 0x9A, 0x90, 0x67, 0x08, 0x6E, 0x40, 0xEA, +0x01, 0x6A, 0x4B, 0xEA, 0x47, 0xC0, 0x44, 0xC0, +0x45, 0xC0, 0x46, 0xC0, 0x00, 0x6A, 0x50, 0xD2, +0x55, 0xD2, 0x9D, 0x67, 0x20, 0xF0, 0x50, 0xA4, +0x26, 0x22, 0x50, 0x92, 0x24, 0x2A, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, 0x91, 0x67, +0x40, 0xEA, 0xC0, 0x72, 0x1C, 0x61, 0x30, 0xF0, +0x20, 0x6C, 0xC0, 0xF3, 0x40, 0x9C, 0x81, 0x41, +0x40, 0xEA, 0x0C, 0x72, 0x14, 0x61, 0x7D, 0x67, +0x40, 0xF0, 0x51, 0xA3, 0x02, 0x49, 0x01, 0x6C, +0x47, 0xC0, 0x40, 0xF0, 0x4E, 0xA3, 0x44, 0xC0, +0x40, 0xF0, 0x4F, 0xA3, 0x45, 0xC0, 0x40, 0xF0, +0x50, 0xA3, 0x46, 0xC0, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE9, 0x53, 0xD4, 0xB1, 0x10, 0x45, 0x80, +0x01, 0x4A, 0x80, 0xF0, 0x13, 0x2A, 0x55, 0x93, +0x51, 0xD2, 0x31, 0x23, 0x3C, 0x10, 0x91, 0x67, +0x00, 0x18, 0xA6, 0xD3, 0x51, 0x93, 0x53, 0x94, +0x40, 0xF5, 0x12, 0x4B, 0x6C, 0x33, 0x8D, 0xE3, +0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF3, 0x88, 0x9C, +0xA0, 0x9B, 0xC2, 0xAB, 0x91, 0xE2, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF2, 0x4C, 0x9A, 0xB5, 0xE2, +0x00, 0x18, 0x38, 0xD4, 0x11, 0x2A, 0x5D, 0x67, +0x40, 0xF1, 0x64, 0x42, 0x40, 0xA3, 0x7D, 0x67, +0x40, 0xF1, 0x80, 0x43, 0x44, 0xC0, 0x60, 0xA4, +0x67, 0xC0, 0x52, 0x94, 0x16, 0x2C, 0x01, 0x6A, +0x7D, 0x67, 0x20, 0xF0, 0x50, 0xC3, 0x11, 0x10, +0x51, 0x92, 0x01, 0x4A, 0x51, 0xD2, 0x51, 0x93, +0xFF, 0x6A, 0x4C, 0xEB, 0x51, 0xD3, 0x30, 0xF0, +0x20, 0x6C, 0xA6, 0xF6, 0x00, 0x4C, 0xA5, 0xF2, +0x48, 0xA4, 0x51, 0x93, 0x53, 0xD4, 0x43, 0xEB, +0xC6, 0x61, 0x01, 0x6C, 0x55, 0xD4, 0x50, 0x92, +0x01, 0x72, 0x03, 0x60, 0x00, 0x6B, 0x51, 0xD3, +0x43, 0x10, 0x81, 0x41, 0x00, 0x18, 0xA6, 0xD3, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x88, 0x9B, +0x30, 0xF0, 0x20, 0x6D, 0xC4, 0xF1, 0x0C, 0x4D, +0x91, 0xE2, 0x04, 0x6E, 0x00, 0x18, 0x38, 0xD4, +0xED, 0x2A, 0x01, 0x6A, 0x41, 0xC0, 0x3A, 0x10, +0x91, 0x67, 0x00, 0x18, 0xA6, 0xD3, 0x51, 0x94, +0x1C, 0x6B, 0x78, 0xEC, 0x53, 0x94, 0x12, 0xEB, +0x8D, 0xE3, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF3, +0x88, 0x9C, 0x65, 0xF1, 0xB4, 0x9B, 0x65, 0xF1, +0xD8, 0xAB, 0x91, 0xE2, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF2, 0x4C, 0x9A, 0xB5, 0xE2, 0x00, 0x18, +0x38, 0xD4, 0x11, 0x2A, 0x5D, 0x67, 0x40, 0xF1, +0x64, 0x42, 0x40, 0xA3, 0x7D, 0x67, 0x40, 0xF1, +0x80, 0x43, 0x45, 0xC0, 0x60, 0xA4, 0x67, 0xC0, +0x52, 0x94, 0x14, 0x2C, 0x01, 0x6A, 0x7D, 0x67, +0x20, 0xF0, 0x50, 0xC3, 0x0F, 0x10, 0x51, 0x94, +0xFF, 0x6A, 0x01, 0x4C, 0x4C, 0xEC, 0x51, 0xD4, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x53, 0xD2, 0x51, 0x93, 0x85, 0xF2, 0x4C, 0xA2, +0x43, 0xEB, 0xC6, 0x61, 0x30, 0xF0, 0x20, 0x6C, +0xC0, 0xF3, 0x40, 0x9C, 0x91, 0x67, 0x40, 0xEA, +0x01, 0x4A, 0x45, 0xE1, 0x30, 0xF0, 0x20, 0x6B, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE9, 0xC0, 0xF3, +0x40, 0x9B, 0x91, 0x67, 0x40, 0xEA, 0x06, 0x22, +0x50, 0x94, 0xFF, 0x6A, 0x01, 0x4C, 0x4C, 0xEC, +0x50, 0xD4, 0x27, 0x17, 0x00, 0x6A, 0x53, 0xD2, +0x45, 0x80, 0x01, 0x4A, 0x4C, 0x2A, 0x8B, 0x41, +0x00, 0x18, 0xA6, 0xD3, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF3, 0x88, 0x9B, 0x30, 0xF0, 0x20, 0x6D, +0xC4, 0xF1, 0x14, 0x4D, 0x91, 0xE2, 0x05, 0x6E, +0x00, 0x18, 0x38, 0xD4, 0x00, 0x6B, 0x50, 0xD3, +0x31, 0x22, 0x39, 0x10, 0x50, 0x94, 0x1C, 0x6B, +0x78, 0xEC, 0x12, 0xEB, 0x49, 0xE3, 0x51, 0xD2, +0x85, 0xF1, 0x88, 0xAA, 0x93, 0xE1, 0xFA, 0x4C, +0x00, 0x18, 0xA6, 0xD3, 0x51, 0x94, 0x85, 0xF1, +0x64, 0x9C, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF3, +0x88, 0x9C, 0x91, 0xE2, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF2, 0xAC, 0x9A, 0x51, 0x92, 0x75, 0xE5, +0x85, 0xF1, 0xC8, 0xAA, 0x00, 0x18, 0x38, 0xD4, +0x0C, 0x2A, 0x7D, 0x67, 0x40, 0xF1, 0x80, 0x43, +0x60, 0xA4, 0x66, 0xC0, 0x52, 0x94, 0x13, 0x2C, +0x01, 0x6A, 0x7D, 0x67, 0x20, 0xF0, 0x50, 0xC3, +0x0E, 0x10, 0x50, 0x94, 0xFF, 0x6A, 0x01, 0x4C, +0x4C, 0xEC, 0x50, 0xD4, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x85, 0xF2, 0x6C, 0xA2, +0x50, 0x94, 0x63, 0xEC, 0xC7, 0x61, 0x53, 0x92, +0x04, 0x2A, 0x01, 0x49, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE9, 0x45, 0x80, 0x01, 0x4A, 0x03, 0x2A, +0x46, 0x80, 0x01, 0x4A, 0x5C, 0x22, 0x61, 0x41, +0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEB, 0x50, 0xD3, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, +0x91, 0x67, 0x40, 0xEA, 0x42, 0xC0, 0x50, 0x91, +0xFF, 0xF7, 0x1F, 0x6C, 0x30, 0xF0, 0x20, 0x6B, +0x01, 0x49, 0x8C, 0xE9, 0xC0, 0xF3, 0x40, 0x9B, +0x50, 0x94, 0x40, 0xEA, 0x43, 0xC0, 0x42, 0xA0, +0x06, 0x2A, 0x43, 0xA0, 0x01, 0x72, 0x03, 0x61, +0x46, 0x80, 0x01, 0x4A, 0x2B, 0x2A, 0x42, 0xA0, +0x06, 0x2A, 0x43, 0xA0, 0x1C, 0x72, 0x03, 0x61, +0x46, 0x80, 0x01, 0x4A, 0x23, 0x2A, 0x42, 0xA0, +0x11, 0x2A, 0x43, 0xA0, 0x0C, 0x72, 0x0E, 0x61, +0x45, 0x80, 0x01, 0x4A, 0x02, 0x22, 0x47, 0x80, +0x03, 0x22, 0x44, 0x80, 0x01, 0x4A, 0x06, 0x22, +0x54, 0x94, 0xFF, 0x6A, 0x01, 0x4C, 0x4C, 0xEC, +0x54, 0xD4, 0x10, 0x10, 0x42, 0xA0, 0x06, 0x2A, +0x43, 0xA0, 0x21, 0x72, 0x03, 0x61, 0x44, 0x80, +0x01, 0x4A, 0x08, 0x2A, 0x42, 0xA0, 0x15, 0x2A, +0x43, 0xA0, 0x10, 0x72, 0x12, 0x61, 0x44, 0x80, +0x01, 0x4A, 0x0F, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x40, 0x9A, 0x91, 0x67, 0x40, 0xEA, +0x01, 0x5A, 0x58, 0x67, 0x40, 0xC0, 0x7D, 0x67, +0x40, 0xF0, 0x47, 0xA3, 0x01, 0x4A, 0x40, 0xF0, +0x47, 0xC3, 0x02, 0x49, 0x09, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, 0x90, 0x67, +0x00, 0x6D, 0x08, 0x6E, 0x40, 0xEA, 0x04, 0x49, +0x52, 0x94, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE9, +0x01, 0x4C, 0xFF, 0x6A, 0x4C, 0xEC, 0x52, 0xD4, +0x7D, 0x67, 0x40, 0xF0, 0x48, 0xA3, 0x52, 0x94, +0x43, 0xEC, 0x3F, 0xF6, 0x1E, 0x61, 0x40, 0xF0, +0x49, 0xA3, 0x01, 0x72, 0x15, 0x61, 0x54, 0x92, +0x01, 0x72, 0x12, 0x61, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x40, 0x98, 0x81, 0x41, 0x40, 0xEA, +0x0F, 0x2A, 0xC0, 0xF3, 0x40, 0x98, 0x82, 0x41, +0x40, 0xEA, 0x29, 0x72, 0x09, 0x61, 0x03, 0x6A, +0x7D, 0x67, 0x40, 0xF0, 0x49, 0xC3, 0x04, 0x10, +0x00, 0x6A, 0x9D, 0x67, 0x40, 0xF0, 0x49, 0xC4, +0x7D, 0x67, 0x40, 0xF0, 0x47, 0xA3, 0x31, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF7, 0x6F, 0xA2, +0x08, 0x6A, 0x00, 0x68, 0x6C, 0xEA, 0x0C, 0x2A, +0x10, 0x10, 0x00, 0x6A, 0xF0, 0x67, 0x08, 0x04, +0x06, 0x05, 0x0C, 0x06, 0x04, 0xD2, 0x01, 0x48, +0x80, 0x18, 0x23, 0x40, 0xFF, 0x6A, 0x4C, 0xE8, +0x9D, 0x67, 0x40, 0xF0, 0x47, 0xA4, 0x43, 0xE8, +0xF0, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x20, 0xF1, 0x8F, 0xA2, 0x80, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0xFF, 0x6C, 0x8C, 0xEB, +0x0C, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF2, +0x78, 0x9B, 0x2A, 0x6C, 0x80, 0xC3, 0x24, 0xF3, +0x84, 0xA2, 0x01, 0x6B, 0x8D, 0xEB, 0x24, 0xF3, +0x64, 0xC2, 0x7D, 0x67, 0x40, 0xF0, 0x47, 0xA3, +0x5B, 0x97, 0x5A, 0x91, 0x59, 0x90, 0x2E, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xD4, 0x63, 0x57, 0x62, +0x56, 0xD1, 0x55, 0xD0, 0x00, 0x6A, 0x7D, 0x67, +0x58, 0xD4, 0x59, 0xD5, 0x07, 0xD2, 0x50, 0xCB, +0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x48, 0x9A, 0xFF, 0x6E, 0x09, 0x04, 0x00, 0x6D, +0x0B, 0x4E, 0x40, 0xEA, 0x58, 0x90, 0x20, 0xF0, +0x02, 0x04, 0x07, 0x01, 0x10, 0x48, 0x52, 0xD4, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, +0x90, 0x67, 0x01, 0x48, 0x40, 0xEA, 0x40, 0xC1, +0x52, 0x92, 0x01, 0x49, 0x4A, 0xE9, 0xF4, 0x61, +0x58, 0x91, 0x59, 0x93, 0x06, 0x04, 0x14, 0x49, +0x07, 0x02, 0x65, 0xE1, 0x4C, 0xD4, 0x53, 0xD2, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x40, 0x98, +0x91, 0x67, 0x01, 0x49, 0x40, 0xEA, 0x4C, 0x93, +0x53, 0x94, 0x40, 0xC3, 0x01, 0x4B, 0x8A, 0xEB, +0x4C, 0xD3, 0xF2, 0x61, 0x58, 0x91, 0x59, 0x92, +0xFF, 0xF7, 0x1F, 0x6B, 0x24, 0x49, 0x45, 0xE1, +0xC0, 0xF3, 0x40, 0x98, 0x6C, 0xE9, 0x91, 0x67, +0x40, 0xEA, 0x9D, 0x67, 0x20, 0xF0, 0x59, 0xC4, +0xC0, 0xF3, 0x40, 0x98, 0x81, 0x41, 0x40, 0xEA, +0x7D, 0x67, 0x20, 0xF0, 0x59, 0xC3, 0xC0, 0xF3, +0x40, 0x98, 0x85, 0x41, 0x40, 0xEA, 0x9D, 0x67, +0x20, 0xF0, 0x5C, 0xC4, 0xC0, 0xF3, 0x40, 0x98, +0x87, 0x41, 0x04, 0x4C, 0x40, 0xEA, 0x7D, 0x67, +0x20, 0xF0, 0x5D, 0xC3, 0x0C, 0x49, 0x00, 0x6A, +0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xE9, 0x50, 0xD2, +0x4E, 0xD2, 0xBB, 0x11, 0x9D, 0x67, 0x20, 0xF0, +0x1B, 0xA4, 0x20, 0xF0, 0x1E, 0x02, 0x00, 0x6D, +0x0C, 0x30, 0x01, 0xE2, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x48, 0x9A, 0x90, 0x67, 0x08, 0x6E, +0x40, 0xEA, 0x01, 0x6A, 0x4B, 0xEA, 0x47, 0xC0, +0x44, 0xC0, 0x45, 0xC0, 0x46, 0xC0, 0x00, 0x6A, +0x4C, 0xD2, 0x51, 0xD2, 0x9D, 0x67, 0x20, 0xF0, +0x44, 0xA4, 0x26, 0x22, 0x4C, 0x92, 0x24, 0x2A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, +0x91, 0x67, 0x40, 0xEA, 0xC0, 0x72, 0x1C, 0x61, +0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF3, 0x40, 0x9C, +0x81, 0x41, 0x40, 0xEA, 0x0C, 0x72, 0x14, 0x61, +0x7D, 0x67, 0x40, 0xF0, 0x45, 0xA3, 0x02, 0x49, +0x01, 0x6C, 0x47, 0xC0, 0x40, 0xF0, 0x42, 0xA3, +0x44, 0xC0, 0x40, 0xF0, 0x43, 0xA3, 0x45, 0xC0, +0x40, 0xF0, 0x44, 0xA3, 0x46, 0xC0, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xE9, 0x4F, 0xD4, 0xB1, 0x10, +0x45, 0x80, 0x01, 0x4A, 0x80, 0xF0, 0x13, 0x2A, +0x51, 0x93, 0x4D, 0xD2, 0x31, 0x23, 0x3C, 0x10, +0x91, 0x67, 0x00, 0x18, 0xA6, 0xD3, 0x4D, 0x93, +0x4F, 0x94, 0x40, 0xF5, 0x12, 0x4B, 0x6C, 0x33, +0x8D, 0xE3, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF3, +0x88, 0x9C, 0xA0, 0x9B, 0xC2, 0xAB, 0x91, 0xE2, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x4C, 0x9A, +0xB5, 0xE2, 0x00, 0x18, 0x38, 0xD4, 0x11, 0x2A, +0x5D, 0x67, 0x30, 0xF1, 0x64, 0x42, 0x40, 0xA3, +0x7D, 0x67, 0x30, 0xF1, 0x80, 0x43, 0x44, 0xC0, +0x60, 0xA4, 0x67, 0xC0, 0x4E, 0x94, 0x16, 0x2C, +0x01, 0x6A, 0x7D, 0x67, 0x20, 0xF0, 0x44, 0xC3, +0x11, 0x10, 0x4D, 0x92, 0x01, 0x4A, 0x4D, 0xD2, +0x4D, 0x93, 0xFF, 0x6A, 0x4C, 0xEB, 0x4D, 0xD3, +0x30, 0xF0, 0x20, 0x6C, 0xA6, 0xF6, 0x00, 0x4C, +0xA5, 0xF2, 0x48, 0xA4, 0x4D, 0x93, 0x4F, 0xD4, +0x43, 0xEB, 0xC6, 0x61, 0x01, 0x6C, 0x51, 0xD4, +0x4C, 0x92, 0x01, 0x72, 0x03, 0x60, 0x00, 0x6B, +0x4D, 0xD3, 0x43, 0x10, 0x81, 0x41, 0x00, 0x18, +0xA6, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, +0x88, 0x9B, 0x30, 0xF0, 0x20, 0x6D, 0xC4, 0xF1, +0x0C, 0x4D, 0x91, 0xE2, 0x04, 0x6E, 0x00, 0x18, +0x38, 0xD4, 0xED, 0x2A, 0x01, 0x6A, 0x41, 0xC0, +0x3A, 0x10, 0x91, 0x67, 0x00, 0x18, 0xA6, 0xD3, +0x4D, 0x94, 0x1C, 0x6B, 0x78, 0xEC, 0x4F, 0x94, +0x12, 0xEB, 0x8D, 0xE3, 0x30, 0xF0, 0x20, 0x6C, +0x63, 0xF3, 0x88, 0x9C, 0x65, 0xF1, 0xB4, 0x9B, +0x65, 0xF1, 0xD8, 0xAB, 0x91, 0xE2, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF2, 0x4C, 0x9A, 0xB5, 0xE2, +0x00, 0x18, 0x38, 0xD4, 0x11, 0x2A, 0x5D, 0x67, +0x30, 0xF1, 0x64, 0x42, 0x40, 0xA3, 0x7D, 0x67, +0x30, 0xF1, 0x80, 0x43, 0x45, 0xC0, 0x60, 0xA4, +0x67, 0xC0, 0x4E, 0x94, 0x14, 0x2C, 0x01, 0x6A, +0x7D, 0x67, 0x20, 0xF0, 0x44, 0xC3, 0x0F, 0x10, +0x4D, 0x94, 0xFF, 0x6A, 0x01, 0x4C, 0x4C, 0xEC, +0x4D, 0xD4, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x4F, 0xD2, 0x4D, 0x93, 0x85, 0xF2, +0x4C, 0xA2, 0x43, 0xEB, 0xC6, 0x61, 0x30, 0xF0, +0x20, 0x6C, 0xC0, 0xF3, 0x40, 0x9C, 0x91, 0x67, +0x40, 0xEA, 0x01, 0x4A, 0x45, 0xE1, 0x30, 0xF0, +0x20, 0x6B, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE9, +0xC0, 0xF3, 0x40, 0x9B, 0x91, 0x67, 0x40, 0xEA, +0x06, 0x22, 0x4C, 0x94, 0xFF, 0x6A, 0x01, 0x4C, +0x4C, 0xEC, 0x4C, 0xD4, 0x27, 0x17, 0x00, 0x6A, +0x4F, 0xD2, 0x45, 0x80, 0x01, 0x4A, 0x4C, 0x2A, +0x8B, 0x41, 0x00, 0x18, 0xA6, 0xD3, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF3, 0x88, 0x9B, 0x30, 0xF0, +0x20, 0x6D, 0xC4, 0xF1, 0x14, 0x4D, 0x91, 0xE2, +0x05, 0x6E, 0x00, 0x18, 0x38, 0xD4, 0x00, 0x6B, +0x4C, 0xD3, 0x31, 0x22, 0x39, 0x10, 0x4C, 0x94, +0x1C, 0x6B, 0x78, 0xEC, 0x12, 0xEB, 0x49, 0xE3, +0x4D, 0xD2, 0x85, 0xF1, 0x88, 0xAA, 0x93, 0xE1, +0xFA, 0x4C, 0x00, 0x18, 0xA6, 0xD3, 0x4D, 0x94, +0x85, 0xF1, 0x64, 0x9C, 0x30, 0xF0, 0x20, 0x6C, +0x63, 0xF3, 0x88, 0x9C, 0x91, 0xE2, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF2, 0xAC, 0x9A, 0x4D, 0x92, +0x75, 0xE5, 0x85, 0xF1, 0xC8, 0xAA, 0x00, 0x18, +0x38, 0xD4, 0x0C, 0x2A, 0x7D, 0x67, 0x30, 0xF1, +0x80, 0x43, 0x60, 0xA4, 0x66, 0xC0, 0x4E, 0x94, +0x13, 0x2C, 0x01, 0x6A, 0x7D, 0x67, 0x20, 0xF0, +0x44, 0xC3, 0x0E, 0x10, 0x4C, 0x94, 0xFF, 0x6A, +0x01, 0x4C, 0x4C, 0xEC, 0x4C, 0xD4, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x85, 0xF2, +0x6C, 0xA2, 0x4C, 0x94, 0x63, 0xEC, 0xC7, 0x61, +0x4F, 0x92, 0x04, 0x2A, 0x01, 0x49, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xE9, 0x45, 0x80, 0x01, 0x4A, +0x03, 0x2A, 0x46, 0x80, 0x01, 0x4A, 0x5C, 0x22, +0x61, 0x41, 0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEB, +0x4C, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x40, 0x9B, 0x91, 0x67, 0x40, 0xEA, 0x42, 0xC0, +0x4C, 0x91, 0xFF, 0xF7, 0x1F, 0x6C, 0x30, 0xF0, +0x20, 0x6B, 0x01, 0x49, 0x8C, 0xE9, 0xC0, 0xF3, +0x40, 0x9B, 0x4C, 0x94, 0x40, 0xEA, 0x43, 0xC0, +0x42, 0xA0, 0x06, 0x2A, 0x43, 0xA0, 0x01, 0x72, +0x03, 0x61, 0x46, 0x80, 0x01, 0x4A, 0x2B, 0x2A, +0x42, 0xA0, 0x06, 0x2A, 0x43, 0xA0, 0x1C, 0x72, +0x03, 0x61, 0x46, 0x80, 0x01, 0x4A, 0x23, 0x2A, +0x42, 0xA0, 0x11, 0x2A, 0x43, 0xA0, 0x0C, 0x72, +0x0E, 0x61, 0x45, 0x80, 0x01, 0x4A, 0x02, 0x22, +0x47, 0x80, 0x03, 0x22, 0x44, 0x80, 0x01, 0x4A, +0x06, 0x22, 0x50, 0x94, 0xFF, 0x6A, 0x01, 0x4C, +0x4C, 0xEC, 0x50, 0xD4, 0x10, 0x10, 0x42, 0xA0, +0x06, 0x2A, 0x43, 0xA0, 0x21, 0x72, 0x03, 0x61, +0x44, 0x80, 0x01, 0x4A, 0x08, 0x2A, 0x42, 0xA0, +0x15, 0x2A, 0x43, 0xA0, 0x10, 0x72, 0x12, 0x61, +0x44, 0x80, 0x01, 0x4A, 0x0F, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, 0x91, 0x67, +0x40, 0xEA, 0x01, 0x5A, 0x58, 0x67, 0x40, 0xC0, +0x7D, 0x67, 0x20, 0xF0, 0x5B, 0xA3, 0x01, 0x4A, +0x20, 0xF0, 0x5B, 0xC3, 0x02, 0x49, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, +0x90, 0x67, 0x00, 0x6D, 0x08, 0x6E, 0x40, 0xEA, +0x04, 0x49, 0x4E, 0x94, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE9, 0x01, 0x4C, 0xFF, 0x6A, 0x4C, 0xEC, +0x4E, 0xD4, 0x7D, 0x67, 0x20, 0xF0, 0x5C, 0xA3, +0x4E, 0x94, 0x43, 0xEC, 0x3F, 0xF6, 0x1E, 0x61, +0x20, 0xF0, 0x5D, 0xA3, 0x01, 0x72, 0x15, 0x61, +0x50, 0x92, 0x01, 0x72, 0x12, 0x61, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x40, 0x98, 0x81, 0x41, +0x40, 0xEA, 0x0F, 0x2A, 0xC0, 0xF3, 0x40, 0x98, +0x82, 0x41, 0x40, 0xEA, 0x29, 0x72, 0x09, 0x61, +0x03, 0x6A, 0x7D, 0x67, 0x20, 0xF0, 0x5D, 0xC3, +0x04, 0x10, 0x00, 0x6A, 0x9D, 0x67, 0x20, 0xF0, +0x5D, 0xC4, 0x7D, 0x67, 0x20, 0xF0, 0x5B, 0xA3, +0x2E, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF7, +0x6F, 0xA2, 0x04, 0x6A, 0x00, 0x68, 0x6C, 0xEA, +0x0C, 0x2A, 0x10, 0x10, 0x00, 0x6A, 0xF0, 0x67, +0x06, 0x04, 0x07, 0x05, 0x09, 0x06, 0x04, 0xD2, +0x01, 0x48, 0x80, 0x18, 0xDC, 0x42, 0xFF, 0x6A, +0x4C, 0xE8, 0x9D, 0x67, 0x20, 0xF0, 0x5B, 0xA4, +0x43, 0xE8, 0xF0, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x20, 0xF1, 0x8F, 0xA2, +0x40, 0x6B, 0x8C, 0xEB, 0x0C, 0x23, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF2, 0x78, 0x9B, 0x2A, 0x6C, +0x80, 0xC3, 0x24, 0xF3, 0x84, 0xA2, 0x01, 0x6B, +0x8D, 0xEB, 0x24, 0xF3, 0x64, 0xC2, 0x7D, 0x67, +0x20, 0xF0, 0x5B, 0xA3, 0x57, 0x97, 0x56, 0x91, +0x55, 0x90, 0x2C, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0x6A, 0x4C, 0xEE, 0x02, 0x76, 0x4C, 0xEC, +0x4C, 0xED, 0xEC, 0xEA, 0x07, 0x61, 0x83, 0xED, +0x01, 0x6B, 0x29, 0x61, 0xA3, 0xEC, 0x78, 0x67, +0x64, 0x33, 0x25, 0x10, 0x01, 0x76, 0x1F, 0x61, +0x18, 0x10, 0x01, 0x73, 0x04, 0x6A, 0x06, 0x61, +0x1D, 0x10, 0x02, 0x72, 0x06, 0x61, 0x01, 0x73, +0x04, 0x61, 0x13, 0x10, 0x02, 0x73, 0x06, 0x61, +0x14, 0x10, 0x02, 0x72, 0x03, 0x61, 0x02, 0x73, +0x03, 0x6A, 0x10, 0x60, 0x01, 0x73, 0x0A, 0x6A, +0x0D, 0x60, 0x02, 0x73, 0x09, 0x6A, 0x07, 0x61, +0x09, 0x10, 0x02, 0x72, 0x06, 0x60, 0x01, 0x72, +0x02, 0x61, 0x02, 0x6A, 0x20, 0xE8, 0x00, 0x6A, +0x20, 0xE8, 0x01, 0x6A, 0x20, 0xE8, 0x01, 0x72, +0xE0, 0x61, 0xDB, 0x17, 0xFF, 0x6B, 0x6C, 0xED, +0x03, 0x75, 0x6C, 0xEC, 0x6C, 0xEE, 0x17, 0x61, +0x03, 0x6A, 0x8C, 0xEA, 0x0C, 0x2A, 0x48, 0x44, +0xE4, 0x4A, 0x6C, 0xEA, 0x1D, 0x5A, 0x32, 0x6A, +0x4E, 0x61, 0x48, 0x44, 0xA4, 0x4A, 0x6C, 0xEA, +0x1D, 0x5A, 0x72, 0x6A, 0x3B, 0x10, 0x01, 0x72, +0x45, 0x61, 0x47, 0x44, 0x64, 0x4A, 0x6C, 0xEA, +0x1D, 0x5A, 0xA3, 0x6A, 0x33, 0x10, 0x02, 0x75, +0x33, 0x61, 0x0F, 0x5C, 0x07, 0x6A, 0x3B, 0x61, +0x03, 0x6A, 0x8C, 0xEA, 0x1E, 0x2A, 0x48, 0x44, +0xE4, 0x4A, 0x6C, 0xEA, 0x0D, 0x5A, 0x2A, 0x6A, +0x32, 0x61, 0x48, 0x44, 0xD4, 0x4A, 0x6C, 0xEA, +0x0D, 0x5A, 0x3A, 0x6A, 0x2C, 0x61, 0x48, 0x44, +0xA4, 0x4A, 0x6C, 0xEA, 0x0D, 0x5A, 0x6A, 0x6A, +0x26, 0x61, 0x48, 0x44, 0x94, 0x4A, 0x6C, 0xEA, +0x0D, 0x5A, 0x7A, 0x6A, 0x20, 0x61, 0x47, 0x44, +0x75, 0x4A, 0x6C, 0xEA, 0x0D, 0x5A, 0x8A, 0x6A, +0x0D, 0x10, 0x01, 0x72, 0x17, 0x61, 0x47, 0x44, +0x64, 0x4A, 0x6C, 0xEA, 0x0D, 0x5A, 0x9B, 0x6A, +0x12, 0x61, 0x47, 0x44, 0x54, 0x4A, 0x6C, 0xEA, +0x0D, 0x5A, 0xAB, 0x6A, 0x0C, 0x61, 0x0A, 0x10, +0x01, 0x75, 0x08, 0x61, 0x01, 0x76, 0x42, 0x44, +0x03, 0x60, 0x02, 0x76, 0x03, 0x61, 0x4E, 0x44, +0x6C, 0xEA, 0x20, 0xE8, 0x44, 0x67, 0x20, 0xE8, +0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x00, 0x6B, +0x33, 0x22, 0x02, 0x5A, 0x02, 0x61, 0x0F, 0x5C, +0x2C, 0x61, 0x6F, 0x44, 0xFF, 0x6A, 0x4C, 0xEB, +0x04, 0x5B, 0x01, 0x6B, 0x29, 0x61, 0x6B, 0x44, +0x4C, 0xEB, 0x05, 0x5B, 0x07, 0x60, 0x60, 0xA6, +0xFF, 0x4B, 0x4C, 0xEB, 0x02, 0x5B, 0x1F, 0x60, +0x60, 0xA6, 0x1E, 0x10, 0x68, 0x44, 0xFE, 0x4B, +0x4C, 0xEB, 0x04, 0x5B, 0x18, 0x61, 0x0E, 0x74, +0x14, 0x60, 0xDC, 0x4C, 0x4C, 0xEC, 0x8E, 0x5C, +0x10, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF5, +0x0C, 0x4A, 0x49, 0xE4, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xA2, 0xC2, 0xF5, 0x1C, 0x4B, 0x71, 0xE4, +0x60, 0xA4, 0x04, 0x22, 0x03, 0x26, 0x60, 0xC6, +0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, 0x02, 0x6B, +0x01, 0x6A, 0xF8, 0x17, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x00, 0x6B, 0x44, 0xF3, +0x74, 0xC2, 0x44, 0xF3, 0x75, 0xC2, 0x44, 0xF3, +0x76, 0xC2, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x24, 0x67, 0x00, 0x18, +0x96, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF7, +0x66, 0xA3, 0xFF, 0x68, 0x0C, 0xE9, 0x6D, 0xE2, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x4C, 0x9A, +0x7C, 0x33, 0x49, 0xE3, 0x40, 0xA2, 0x0C, 0xEA, +0x01, 0x72, 0x19, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF3, 0x54, 0x9A, 0x49, 0xE3, 0x40, 0xA2, +0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, +0x58, 0x9A, 0x4D, 0xE3, 0x09, 0x10, 0x80, 0xA3, +0xFF, 0x6A, 0xFF, 0x48, 0x4C, 0xEC, 0x4C, 0xE8, +0x51, 0x67, 0x8E, 0xEA, 0x01, 0x4B, 0x03, 0x22, +0xF6, 0x28, 0x00, 0x6A, 0x01, 0x10, 0x01, 0x6A, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xA6, 0xF6, 0x00, 0x48, 0x84, 0xF5, 0x59, 0xA0, +0x84, 0xF5, 0x3A, 0xA0, 0x04, 0xD2, 0x84, 0xF5, +0x5B, 0xA0, 0x04, 0x94, 0xB1, 0x67, 0xC2, 0x67, +0x05, 0xD2, 0x80, 0x18, 0xEB, 0x47, 0x04, 0x95, +0x05, 0x97, 0xD1, 0x67, 0x82, 0x67, 0x06, 0xD2, +0x80, 0x18, 0xD0, 0x47, 0x06, 0x94, 0xD1, 0x67, +0xA2, 0x67, 0x80, 0x18, 0x1F, 0x55, 0x01, 0x6A, +0x43, 0xF4, 0x59, 0xC0, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF6, 0x63, 0x13, 0x62, 0x12, 0xD1, 0x11, 0xD0, +0x00, 0x6C, 0x00, 0x6A, 0x7D, 0x67, 0x15, 0xD5, +0x26, 0x67, 0x58, 0xC3, 0x0C, 0xD4, 0x0D, 0xD4, +0x0E, 0xD4, 0x0B, 0xD4, 0x24, 0x68, 0x08, 0xD4, +0xEA, 0x10, 0x30, 0xF0, 0x20, 0x6F, 0xC0, 0xF3, +0x40, 0x9F, 0x81, 0x41, 0x11, 0xE4, 0x40, 0xEA, +0x0A, 0xD2, 0xE0, 0xF0, 0x04, 0x22, 0x0A, 0x93, +0x15, 0x94, 0x42, 0x40, 0x69, 0xE2, 0x43, 0xEC, +0xC0, 0xF0, 0x1D, 0x61, 0x30, 0xF0, 0x20, 0x6F, +0xC0, 0xF3, 0x40, 0x9F, 0x31, 0xE0, 0x40, 0xEA, +0x3E, 0x72, 0x25, 0x60, 0x3F, 0x5A, 0x08, 0x60, +0x2D, 0x72, 0x7C, 0x60, 0x3D, 0x72, 0x80, 0xF0, +0x0B, 0x60, 0x25, 0x72, 0x0B, 0x60, 0xC1, 0x10, +0xC2, 0x72, 0x22, 0x60, 0x00, 0x6B, 0xC4, 0x72, +0x09, 0xD3, 0x6B, 0x60, 0xC0, 0x72, 0xA0, 0xF0, +0x0B, 0x60, 0xB7, 0x10, 0x30, 0xF0, 0x20, 0x6F, +0xC0, 0xF3, 0x40, 0x9F, 0x83, 0x41, 0x11, 0xE4, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x0B, 0xD2, +0xC0, 0xF3, 0x40, 0x9B, 0x84, 0x41, 0x11, 0xE4, +0x40, 0xEA, 0x0E, 0xD2, 0xA6, 0x10, 0x30, 0xF0, +0x20, 0x6F, 0xC0, 0xF3, 0x40, 0x9F, 0x82, 0x41, +0x11, 0xE4, 0x40, 0xEA, 0x0D, 0xD2, 0x9D, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, +0x82, 0x41, 0x11, 0xE4, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6F, 0x0C, 0xD2, 0xC0, 0xF3, 0x40, 0x9F, +0x83, 0x41, 0x11, 0xE4, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, 0x84, 0x41, +0x11, 0xE4, 0x40, 0xEA, 0x86, 0x10, 0x30, 0xF0, +0x20, 0x6F, 0x09, 0x93, 0x82, 0x41, 0xC0, 0xF3, +0x40, 0x9F, 0x11, 0xE4, 0x71, 0xE4, 0x40, 0xEA, +0xC2, 0x72, 0x1C, 0x61, 0x30, 0xF0, 0x20, 0x6F, +0x09, 0x93, 0xC0, 0xF3, 0x40, 0x9F, 0x84, 0x41, +0x11, 0xE4, 0x71, 0xE4, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6F, 0x09, 0x93, 0x0C, 0xD2, 0x85, 0x41, +0xC0, 0xF3, 0x40, 0x9F, 0x11, 0xE4, 0x71, 0xE4, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6F, 0x09, 0x93, +0x86, 0x41, 0xC0, 0xF3, 0x40, 0x9F, 0x11, 0xE4, +0x71, 0xE4, 0x40, 0xEA, 0x09, 0x97, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0x41, 0xC0, 0xF3, 0x40, 0x9A, +0x11, 0xE4, 0xF1, 0xE4, 0x40, 0xEA, 0x09, 0x93, +0x02, 0x4A, 0x4D, 0xE3, 0xFF, 0x6A, 0x4C, 0xEB, +0x09, 0xD3, 0x09, 0x94, 0x0A, 0x97, 0xE3, 0xEC, +0xC6, 0x61, 0x4B, 0x10, 0x0A, 0x92, 0x1A, 0x72, +0x48, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x40, 0x9B, 0x82, 0x41, 0x11, 0xE4, 0x40, 0xEA, +0x02, 0x6B, 0x4C, 0xEB, 0x3E, 0x23, 0x08, 0x94, +0x3C, 0x2C, 0x01, 0x6F, 0x08, 0xD7, 0x39, 0x10, +0x0A, 0x92, 0x16, 0x72, 0x36, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, 0x83, 0x41, +0x11, 0xE4, 0x40, 0xEA, 0x04, 0x6B, 0x4C, 0xEB, +0x2C, 0x23, 0x08, 0x94, 0x02, 0x24, 0x01, 0x74, +0x28, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x40, 0x9A, 0x83, 0x41, 0x11, 0xE4, 0x40, 0xEA, +0x03, 0x6B, 0x4C, 0xEB, 0x01, 0x73, 0x05, 0x60, +0x01, 0x6F, 0x03, 0x73, 0x08, 0xD7, 0x19, 0x61, +0x06, 0x10, 0x01, 0x6A, 0x7D, 0x67, 0x01, 0x6C, +0x58, 0xC3, 0x08, 0xD4, 0x12, 0x10, 0x02, 0x6A, +0xFD, 0x67, 0x58, 0xC7, 0x01, 0x6A, 0x0C, 0x10, +0x0A, 0x93, 0x05, 0x73, 0x0A, 0x61, 0x30, 0xF0, +0x20, 0x6F, 0xC0, 0xF3, 0x40, 0x9F, 0x82, 0x41, +0x11, 0xE4, 0x40, 0xEA, 0x02, 0x22, 0x02, 0x6A, +0x08, 0xD2, 0x0A, 0x92, 0x02, 0x4A, 0x41, 0xE0, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0x15, 0x93, +0x63, 0xE8, 0x1F, 0xF7, 0x12, 0x61, 0x0B, 0x94, +0x0B, 0x24, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF7, +0x46, 0xA2, 0x80, 0xF0, 0x1F, 0x22, 0x80, 0x18, +0x3D, 0x48, 0x80, 0xF0, 0x1B, 0x2A, 0xA2, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x44, 0xF3, 0x75, 0xA2, 0x57, 0x2B, 0x9A, 0x10, +0x0C, 0x93, 0xFF, 0x6C, 0xFF, 0x4B, 0x8C, 0xEB, +0x03, 0x5B, 0x0D, 0x60, 0x0B, 0x94, 0x30, 0xF0, +0x20, 0x6E, 0x02, 0x6D, 0x2B, 0xF4, 0x1B, 0x4E, +0x80, 0x18, 0x1A, 0x48, 0x11, 0x22, 0x02, 0x6A, +0x84, 0xF5, 0x5A, 0xC0, 0x11, 0x10, 0x0D, 0x97, +0x01, 0x77, 0x02, 0x61, 0x01, 0x6A, 0x08, 0x10, +0x0D, 0x93, 0x03, 0x73, 0x05, 0x61, 0x01, 0x6A, +0x84, 0xF5, 0x5A, 0xC0, 0x02, 0x6A, 0x02, 0x10, +0x84, 0xF5, 0x5A, 0xC0, 0x84, 0xF5, 0x5B, 0xC0, +0x9D, 0x67, 0xE7, 0x44, 0x25, 0x4F, 0x80, 0xA7, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6F, +0xA6, 0xF6, 0x00, 0x48, 0xC0, 0xF3, 0x40, 0x9F, +0x84, 0xF5, 0x99, 0xC0, 0x87, 0x41, 0x19, 0x4C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x08, 0xD2, +0xC0, 0xF3, 0x40, 0x9B, 0x87, 0x41, 0x1A, 0x4C, +0x40, 0xEA, 0x08, 0x94, 0x0E, 0x97, 0x01, 0x6B, +0x40, 0x32, 0x44, 0xF3, 0x74, 0xC0, 0x8D, 0xEA, +0xFF, 0x6B, 0x6C, 0xEA, 0xF8, 0xEA, 0x01, 0x6B, +0x04, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF3, +0x6C, 0x9B, 0x10, 0xF0, 0x31, 0x6C, 0x24, 0xF5, +0x01, 0x4C, 0x00, 0x6D, 0x01, 0x6F, 0x12, 0xEE, +0x40, 0xEB, 0x44, 0x10, 0x08, 0x93, 0x02, 0x73, +0x06, 0x61, 0x84, 0xF5, 0x99, 0xA2, 0x02, 0x6D, +0x06, 0x06, 0x80, 0x18, 0x1A, 0x48, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x84, 0xF5, +0x7A, 0xA2, 0x08, 0x94, 0x83, 0xEB, 0x08, 0x61, +0xFD, 0x67, 0x78, 0xA7, 0x15, 0x23, 0x84, 0xF5, +0x5B, 0xA2, 0x12, 0x22, 0x6E, 0xEA, 0x10, 0x22, +0x7D, 0x67, 0x87, 0x43, 0x19, 0x4C, 0x60, 0xA4, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x9D, 0x67, 0x84, 0xF5, 0x7A, 0xC2, 0x78, 0xA4, +0x84, 0xF5, 0x7B, 0xC2, 0x80, 0x18, 0x59, 0x48, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0x6B, 0xA6, 0xF6, +0x00, 0x4A, 0x10, 0xF0, 0x31, 0x6C, 0x44, 0xF3, +0x74, 0xC2, 0x44, 0xF3, 0x75, 0xC2, 0x44, 0xF3, +0x76, 0xC2, 0xC4, 0xF0, 0x1D, 0x4C, 0x00, 0x18, +0x75, 0xDB, 0x08, 0x10, 0x30, 0xF0, 0x20, 0x68, +0xA6, 0xF6, 0x00, 0x48, 0x44, 0xF3, 0x54, 0xA0, +0x7F, 0xF7, 0x06, 0x22, 0x13, 0x97, 0x12, 0x91, +0x11, 0x90, 0x0A, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x80, 0x18, 0x59, 0x48, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x01, 0x6B, 0x44, 0xF3, 0x75, 0xC2, 0x44, 0xF3, +0x76, 0xC2, 0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF3, +0xC0, 0x9B, 0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, +0x31, 0x6C, 0xC4, 0xF0, 0x1D, 0x4C, 0x00, 0x6D, +0x01, 0x6F, 0x40, 0xEA, 0x07, 0x97, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, +0x06, 0xD4, 0x09, 0xD7, 0x07, 0xD5, 0x08, 0xD6, +0x06, 0x04, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x46, 0x67, 0x01, 0x4A, +0x05, 0x67, 0x0C, 0xD6, 0x27, 0x67, 0x1F, 0x22, +0x1F, 0xF7, 0x00, 0x6A, 0xAC, 0xEA, 0x02, 0xF0, +0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF1, 0x5C, 0x9A, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, 0x40, 0x9A, +0x49, 0xE0, 0x40, 0x9A, 0x0C, 0x94, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, +0x40, 0xEA, 0x0C, 0x93, 0x24, 0xEA, 0x6F, 0xEA, +0x04, 0x93, 0x6C, 0xEA, 0x4D, 0xE9, 0x1F, 0xF7, +0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF1, 0x5C, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF1, 0x40, 0x9A, 0x41, 0xE0, +0x20, 0xD8, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x1F, 0xF7, 0x00, 0x6A, +0xAC, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x26, 0x67, +0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF1, 0x5C, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF1, 0x40, 0x9A, 0x55, 0xE5, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0x9D, 0xA0, 0xF3, +0x44, 0x9A, 0x91, 0x67, 0x2C, 0xE8, 0x40, 0xEA, +0x06, 0xEA, 0x50, 0x67, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, +0xFF, 0x68, 0xAC, 0xE8, 0xD0, 0x67, 0x41, 0xF4, +0x10, 0x6C, 0x7F, 0x6D, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0xD0, 0x67, 0x41, 0xF6, 0x10, 0x6C, +0x7F, 0x6D, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x85, 0x67, 0xA6, 0x67, +0xC7, 0x67, 0x00, 0x18, 0xD5, 0xD3, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, +0x04, 0xD2, 0x04, 0x95, 0x30, 0xF0, 0x20, 0x69, +0xA6, 0xF6, 0x00, 0x49, 0xA8, 0x34, 0x31, 0xE4, +0x05, 0xD4, 0x05, 0x90, 0x62, 0xF1, 0x02, 0x4A, +0x48, 0x32, 0x29, 0xE2, 0x88, 0xF5, 0xCE, 0xA0, +0x64, 0xA2, 0x01, 0x6A, 0x4C, 0xEE, 0x4C, 0xEB, +0xC4, 0x36, 0x88, 0xF5, 0xED, 0xA4, 0xD9, 0xE3, +0x88, 0xF5, 0x6F, 0xA0, 0x4C, 0xEF, 0xF0, 0x37, +0x4C, 0xEB, 0x74, 0x33, 0x6D, 0xE7, 0x07, 0xD3, +0x04, 0x93, 0x85, 0x67, 0xC4, 0xF2, 0x0C, 0x4C, +0x64, 0x32, 0x29, 0xE2, 0x84, 0x34, 0x31, 0xE4, +0xA8, 0xF5, 0x41, 0xA2, 0xA8, 0xA4, 0x03, 0x6C, +0x8C, 0xEA, 0x8C, 0xED, 0x40, 0x32, 0xA0, 0x35, +0x48, 0x32, 0x49, 0xE5, 0x30, 0xF0, 0x20, 0x68, +0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x08, 0xD6, +0xC0, 0xF3, 0x64, 0x98, 0xA3, 0xF4, 0xD0, 0x9A, +0x01, 0x6D, 0xE3, 0xF2, 0x1D, 0x4C, 0xAB, 0xED, +0x40, 0xEB, 0x08, 0x94, 0x07, 0x96, 0x06, 0x93, +0xC0, 0xF3, 0x44, 0x98, 0x8D, 0xEE, 0x6D, 0xEE, +0xE3, 0xF3, 0x10, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, +0x40, 0xEA, 0x04, 0x92, 0x05, 0x94, 0x01, 0x6D, +0x62, 0xF1, 0x08, 0x4A, 0xA8, 0xF5, 0xC6, 0xAC, +0x48, 0x32, 0x29, 0xE2, 0x62, 0xAA, 0xC0, 0x36, +0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x36, 0x6D, 0xEE, +0xE3, 0xF3, 0x08, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x04, 0x92, 0x05, 0x95, 0xE3, 0xF3, 0x0C, 0x6C, +0x62, 0xF1, 0x09, 0x4A, 0xA8, 0xF5, 0xCA, 0xAD, +0x48, 0x32, 0x29, 0xE2, 0x62, 0xAA, 0xC0, 0x36, +0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x36, 0x01, 0x6D, +0x6D, 0xEE, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x29, 0xF0, +0xC8, 0xA1, 0xC3, 0xF1, 0xBC, 0x9B, 0xE3, 0xF3, +0x10, 0x6C, 0x40, 0xEA, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x00, 0x6B, +0x28, 0xF1, 0x73, 0xC2, 0x30, 0xF0, 0x20, 0x6B, +0xCE, 0xF7, 0x13, 0x4B, 0x68, 0xF1, 0x60, 0xDA, +0x00, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, +0x7C, 0x9B, 0x54, 0x34, 0x20, 0x68, 0x71, 0xE4, +0xA0, 0xA4, 0xF8, 0x6B, 0x01, 0x4A, 0xAC, 0xEB, +0x4E, 0xE8, 0x60, 0xC4, 0xF2, 0x28, 0x80, 0x18, +0x3A, 0x4A, 0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF7, +0x0A, 0xC2, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x68, 0xA4, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x28, 0xF1, +0x7C, 0xC2, 0x69, 0xA4, 0x28, 0xF1, 0x71, 0xC2, +0x6A, 0xA4, 0x28, 0xF1, 0x7B, 0xC2, 0xAB, 0xA4, +0x0F, 0x6B, 0xAC, 0xEB, 0x48, 0xF1, 0x65, 0xC2, +0x6B, 0xA4, 0x72, 0x33, 0x48, 0xF1, 0x62, 0xC2, +0x8E, 0xA4, 0x01, 0x6B, 0x8C, 0xEB, 0x28, 0xF1, +0x73, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0xCE, 0xF7, +0x13, 0x4B, 0x68, 0xF1, 0x60, 0xDA, 0x00, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0x60, 0xA4, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x28, 0xF1, +0x7C, 0xC2, 0x61, 0xA4, 0x28, 0xF1, 0x71, 0xC2, +0x62, 0xA4, 0x28, 0xF1, 0x7B, 0xC2, 0xA3, 0xA4, +0x0F, 0x6B, 0xAC, 0xEB, 0x48, 0xF1, 0x65, 0xC2, +0x63, 0xA4, 0x72, 0x33, 0x48, 0xF1, 0x62, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x4C, 0x72, 0x03, 0x61, +0x85, 0x67, 0x80, 0x18, 0x13, 0x4A, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x0E, 0x72, 0x03, 0x60, +0x11, 0x72, 0x05, 0x60, 0x08, 0x10, 0x85, 0x67, +0x80, 0x18, 0xA6, 0x2A, 0x19, 0x10, 0x85, 0x67, +0x80, 0x18, 0x01, 0x4A, 0x15, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF2, 0x60, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x83, 0xF2, 0x84, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xA3, 0xF3, 0x7C, 0x9A, +0x8D, 0xEB, 0xA3, 0xF3, 0x7C, 0xDA, 0xFF, 0x6A, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x05, 0x6B, 0x28, 0xF1, 0x6C, 0xDA, 0x09, 0x6B, +0x28, 0xF1, 0x68, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0xAC, 0xEA, 0x1C, 0x22, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0xFF, 0x6D, +0x83, 0xF4, 0x10, 0x6C, 0x01, 0x4D, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF4, +0x3C, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x01, 0x6E, 0x09, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0xFF, 0x6D, +0x83, 0xF4, 0x10, 0x6C, 0x01, 0x4D, 0x00, 0x6E, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xED, 0x29, 0x5D, 0xCC, 0xEA, +0x03, 0x61, 0x17, 0x5A, 0x03, 0x60, 0x06, 0x10, +0x17, 0x5A, 0x04, 0x60, 0x01, 0x6A, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF4, 0x1C, 0x6C, +0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x00, 0x6A, +0xF2, 0x17, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x74, 0x9B, +0x46, 0x67, 0x8E, 0xEB, 0x12, 0x23, 0x00, 0x6E, +0x66, 0x67, 0xE4, 0x67, 0xE6, 0xEE, 0x01, 0x68, +0x0C, 0xEF, 0x07, 0x2F, 0x01, 0x4B, 0xFF, 0x6F, +0xEC, 0xEB, 0x14, 0x73, 0x01, 0x4E, 0xF5, 0x61, +0x14, 0x6B, 0x8F, 0xEC, 0x44, 0xEB, 0xAC, 0xEC, +0x8D, 0xEA, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x07, 0xF4, 0x00, 0x6A, +0x04, 0xD2, 0x02, 0xF0, 0x00, 0x4A, 0x05, 0xD2, +0xA8, 0x35, 0x5D, 0x67, 0xB5, 0xE2, 0x44, 0x9D, +0xFF, 0x6C, 0xCC, 0xEC, 0x88, 0x34, 0x51, 0xE4, +0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEC, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0xB4, 0x9B, 0x30, 0xF0, +0x20, 0x6A, 0x0C, 0x96, 0xC0, 0xF3, 0x44, 0x9A, +0xEC, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, 0x40, 0xEA, +0x07, 0x97, 0x01, 0x6A, 0x04, 0x63, 0x00, 0xEF, +0x00, 0x6A, 0x20, 0xE8, 0x20, 0xE8, 0x00, 0x65, +0x01, 0x6A, 0x20, 0xE8, 0x20, 0xE8, 0x00, 0x65, +0x00, 0x6A, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x01, 0x75, 0x33, 0x61, +0x01, 0x76, 0x17, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x34, 0x9A, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF6, 0xDC, 0x9B, 0x03, 0xF0, 0x00, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x08, 0xF1, 0x00, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x81, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0x34, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0xC3, 0xF6, 0xDC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, 0xB1, 0x67, +0xE3, 0xF6, 0xC0, 0x9B, 0x67, 0x10, 0x02, 0x75, +0x2C, 0x61, 0x01, 0x76, 0x10, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0x34, 0x9A, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, +0xE3, 0xF6, 0xC0, 0x9B, 0x2D, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0x34, 0x9A, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0xE3, 0xF6, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, +0x00, 0x6C, 0xB1, 0x67, 0xC3, 0xF6, 0xDC, 0x9B, +0x39, 0x10, 0x03, 0x75, 0x38, 0x61, 0x01, 0x76, +0x1A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0x34, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF6, +0xDC, 0x9B, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, 0xB1, 0x67, +0xE3, 0xF6, 0xC4, 0x9B, 0x1B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x34, 0x9A, 0xC3, 0xF6, 0x1C, 0x4B, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF6, 0x1C, 0x4B, +0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, 0x08, 0xF1, +0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0x01, 0x6A, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, +0x0E, 0x72, 0x51, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0x23, 0xF6, 0x00, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, +0x00, 0x6C, 0xA7, 0xF5, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF6, 0xC8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, +0x23, 0xF2, 0x04, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x08, 0x6C, +0xFF, 0xF7, 0x1F, 0x6D, 0xAD, 0xF2, 0x03, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF6, +0x00, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x83, 0xF2, 0x18, 0x6C, 0x75, 0xF2, 0x1B, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF2, +0x1C, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0xDE, 0xF3, +0x17, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF2, 0x00, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xE3, 0xF6, 0xCC, 0x9B, 0xA3, 0xF2, +0x0C, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xA3, 0xF2, 0x10, 0x6C, 0xB1, 0x67, +0xFF, 0xF7, 0x1F, 0x6E, 0x55, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x23, 0xF6, +0x00, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF2, 0x00, 0x6C, 0x8A, 0xF2, 0x04, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF6, +0xD0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, +0x2B, 0xE9, 0x23, 0xF2, 0x04, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, +0x08, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0x81, 0xF2, +0x08, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF6, 0x00, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x83, 0xF2, 0x18, 0x6C, 0xD5, 0xF4, +0x04, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x83, 0xF2, 0x1C, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, +0xB9, 0xF0, 0x12, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF6, 0xD4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xA3, 0xF2, 0x00, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF6, +0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF2, +0x0C, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF6, +0xC4, 0x9B, 0xA3, 0xF2, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x44, 0x99, 0xFF, 0x68, 0xAC, 0xE8, +0xD0, 0x67, 0xA3, 0xF0, 0x0C, 0x6C, 0x1E, 0xF0, +0x00, 0x6D, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, +0xD0, 0x67, 0xA8, 0xF1, 0x0C, 0x6C, 0x1E, 0xF0, +0x00, 0x6D, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x68, 0xAC, 0xE8, 0x09, 0xE4, 0x0A, 0xD4, +0x05, 0xD2, 0x40, 0xF0, 0x71, 0xA2, 0x30, 0xF0, +0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, 0x04, 0xD3, +0xA3, 0xF0, 0x0C, 0x6C, 0xE0, 0xF1, 0x10, 0x6D, +0xD0, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, +0xA8, 0xF1, 0x0C, 0x6C, 0xE0, 0xF1, 0x10, 0x6D, +0xD0, 0x67, 0x40, 0xEA, 0x0A, 0x92, 0x40, 0xF0, +0x10, 0xC2, 0x05, 0x93, 0x60, 0xF0, 0x41, 0xA3, +0x02, 0x2A, 0x0D, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x04, 0x96, +0x21, 0xF0, 0x08, 0x6C, 0xF8, 0x6D, 0x40, 0xEA, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xED, 0x68, 0x45, 0xFB, 0x4B, +0x4C, 0xEB, 0x02, 0x5B, 0x0B, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, +0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x61, 0xF1, +0x09, 0x6E, 0x78, 0x10, 0x68, 0x45, 0xFD, 0x4B, +0x4C, 0xEB, 0x02, 0x5B, 0x0B, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, +0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x61, 0xF1, +0x0A, 0x6E, 0x68, 0x10, 0x6F, 0x45, 0x4C, 0xEB, +0x0A, 0x5B, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0xA1, 0xF1, 0x0A, 0x6E, +0x59, 0x10, 0x68, 0x45, 0xE4, 0x4B, 0x4C, 0xEB, +0x10, 0x5B, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x80, 0xF4, 0x14, 0x6E, +0x49, 0x10, 0x68, 0x45, 0xD4, 0x4B, 0x4C, 0xEB, +0x04, 0x5B, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x80, 0xF4, 0x13, 0x6E, +0x39, 0x10, 0x68, 0x45, 0xD0, 0x4B, 0x4C, 0xEB, +0x38, 0x5B, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x40, 0xF4, 0x13, 0x6E, +0x29, 0x10, 0x68, 0x45, 0x98, 0x4B, 0x4C, 0xEB, +0x08, 0x5B, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x40, 0xF4, 0x12, 0x6E, +0x19, 0x10, 0x88, 0x4D, 0x4C, 0xED, 0x35, 0x5D, +0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, 0xE1, 0xF7, +0x1F, 0x6D, 0x00, 0xF4, 0x12, 0x6E, 0x0A, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x21, 0xF4, 0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x00, 0xF4, 0x11, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0xAC, 0xEA, 0x0F, 0x5A, 0x0B, 0x60, +0x0D, 0x72, 0x09, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x01, 0xF0, 0x08, 0x6C, +0x70, 0x6D, 0x01, 0x6E, 0x08, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0xF0, +0x08, 0x6C, 0x70, 0x6D, 0x03, 0x6E, 0x40, 0xEA, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0xAC, 0xEA, 0x26, 0x67, 0x3B, 0x22, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, +0xE3, 0xF6, 0x1C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF1, 0x04, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF6, 0x1C, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xD1, 0x67, +0x48, 0xF0, 0x04, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF1, 0x30, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF1, 0x00, 0x6C, 0xB1, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x48, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, +0x18, 0x6C, 0x01, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF5, 0x1C, 0x6C, 0x03, 0xF7, +0xA0, 0x9B, 0x0F, 0x6E, 0x37, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0xE3, 0xF6, +0x3C, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF1, +0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x48, 0xF0, +0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF1, 0x30, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF1, 0x00, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x48, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, +0x18, 0x6C, 0x01, 0xF0, 0x00, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF7, 0xA0, 0x9B, 0x23, 0xF5, +0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, +0xAC, 0xEA, 0x13, 0x22, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, 0x18, 0x6C, +0x08, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF5, +0x1C, 0x6C, 0x03, 0xF7, 0xA0, 0x9B, 0x0F, 0x6E, +0x12, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0xF0, 0x18, 0x6C, 0x08, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF7, 0xA0, 0x9B, +0x23, 0xF5, 0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x68, 0xAC, 0xE8, 0x00, 0x6D, 0x24, 0x67, +0x80, 0x18, 0xFE, 0x4B, 0x99, 0x70, 0x07, 0x61, +0x50, 0x99, 0x40, 0xA2, 0x04, 0x2A, 0x91, 0x67, +0x01, 0x6D, 0x70, 0x6E, 0x03, 0x10, 0x00, 0x6D, +0x91, 0x67, 0xC5, 0x67, 0x80, 0x18, 0xBE, 0x4B, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0xAC, 0xEA, 0x0C, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9A, 0x63, 0xF4, 0x04, 0x6C, 0xC3, 0xF1, +0xB8, 0x9B, 0x01, 0x6E, 0x0B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9A, 0xC3, 0xF1, 0xB8, 0x9B, 0x63, 0xF4, +0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0xAC, 0xEA, 0x09, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x41, 0xF4, +0x14, 0x6C, 0x80, 0x6D, 0x01, 0x6E, 0x08, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x41, 0xF4, 0x14, 0x6C, 0x80, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x5B, 0xAC, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0xFF, 0xF7, 0x1F, 0x68, +0xAC, 0xE8, 0x24, 0x67, 0xD0, 0x67, 0x61, 0xF2, +0x10, 0x6C, 0xE0, 0xF3, 0x1F, 0x6D, 0x40, 0xEA, +0x1B, 0xC9, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF7, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, +0x00, 0x6E, 0x23, 0xF4, 0x1C, 0x6C, 0x40, 0xEA, +0x01, 0x6D, 0xA5, 0xF5, 0x14, 0x6C, 0xAB, 0xED, +0x80, 0x18, 0x72, 0x3C, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF7, 0x68, 0x9B, 0x05, 0x97, 0x4C, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF4, 0x44, 0x9A, +0x4E, 0xEB, 0x01, 0x5B, 0x58, 0x67, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x83, 0xF2, 0x18, 0x68, +0x24, 0x67, 0x18, 0xF0, 0x00, 0x6D, 0x90, 0x67, +0x80, 0x18, 0x72, 0x3C, 0x05, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF5, 0xA8, 0x9A, 0xA3, 0xF2, +0x08, 0x6C, 0x80, 0x18, 0x72, 0x3C, 0x90, 0x67, +0xC0, 0x6D, 0x04, 0xD2, 0x80, 0x18, 0x72, 0x3C, +0x02, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF4, +0xAC, 0x9A, 0x63, 0xF2, 0x10, 0x6C, 0x80, 0x18, +0x72, 0x3C, 0x05, 0x93, 0x04, 0x95, 0xFF, 0x6C, +0x8C, 0xEB, 0x8C, 0xE8, 0x70, 0x33, 0x10, 0x30, +0x4D, 0xE8, 0xAD, 0xEB, 0x60, 0xF0, 0x71, 0xC1, +0x60, 0xF0, 0x12, 0xC1, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x0C, 0xED, +0xE3, 0xF5, 0x08, 0x4A, 0x04, 0xD5, 0xA0, 0x9A, +0x21, 0xF0, 0x04, 0x69, 0x91, 0x67, 0x80, 0x18, +0x72, 0x3C, 0x04, 0x93, 0x41, 0x23, 0x4C, 0xE8, +0x03, 0x70, 0x00, 0x6A, 0x7B, 0x61, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, +0x1C, 0x6C, 0x04, 0x6D, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, 0x0C, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF5, 0x08, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, +0x0C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF2, 0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF6, 0xB8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x02, 0xF2, 0x08, 0x49, +0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x03, 0xF7, 0xAC, 0x9B, 0x00, 0x6E, 0x3C, 0x10, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x21, 0xF0, 0x1C, 0x6C, 0x04, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, +0x0C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x91, 0x67, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF5, 0x08, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, +0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF4, 0x0C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF2, 0x04, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF6, +0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, +0x0C, 0x69, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF7, 0xAC, 0x9B, 0x91, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0x01, 0x6A, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0x4C, 0xED, 0x08, 0xD4, 0xCC, 0xEA, +0xC0, 0xF0, 0x1C, 0x25, 0x20, 0x22, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x03, 0xF7, +0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x00, 0x6C, 0x21, 0xF0, 0x13, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, 0x08, 0x6C, +0x18, 0xF0, 0x00, 0x6D, 0x02, 0x6E, 0x40, 0xEA, +0x01, 0x6D, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xAB, 0xED, +0x03, 0xF7, 0xD4, 0x9B, 0x90, 0x11, 0x08, 0x93, +0x50, 0x9B, 0x40, 0xA2, 0x01, 0x72, 0x80, 0xF1, +0x0B, 0x61, 0x01, 0x69, 0x2B, 0xE9, 0xA1, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x80, 0x18, 0x72, 0x3C, +0x08, 0x93, 0x30, 0xF0, 0x20, 0x68, 0x03, 0xF0, +0x00, 0x6C, 0x5D, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF7, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x81, 0xF0, 0x08, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF1, 0xB8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x81, 0xF0, 0x18, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, +0x08, 0x6C, 0x18, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA1, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x04, 0xF2, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF7, +0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF7, 0x14, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF7, 0xD8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF7, +0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF7, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF7, +0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF7, 0xC8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF7, +0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF7, 0xD0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF7, +0xD4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF7, 0xD8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF7, +0x1C, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x23, 0xF7, +0x1C, 0x4B, 0xD4, 0x10, 0x20, 0x22, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x03, 0xF7, +0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x00, 0x6C, 0x20, 0xF3, 0x13, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, 0x08, 0x6C, +0x18, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x01, 0x6D, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xAB, 0xED, +0x43, 0xF7, 0xC0, 0x9B, 0xB4, 0x10, 0x08, 0x93, +0x50, 0x9B, 0x40, 0xA2, 0x01, 0x72, 0xA0, 0xF0, +0x0F, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF7, 0xB0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0x20, 0xF3, +0x13, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF1, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x81, 0xF0, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, 0x08, 0x6C, +0x18, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x08, 0x93, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, +0xDD, 0x9B, 0x2B, 0xE9, 0xA1, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF7, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF7, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF7, 0xC4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF7, 0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF7, 0xCC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF7, 0xD0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF7, 0xD4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF7, 0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF7, 0xDC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF7, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF7, 0xC4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF7, 0x08, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xC0, 0x9B, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x63, 0xF7, 0x08, 0x4B, 0xC0, 0x9B, 0x40, 0xEA, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x05, 0x67, +0xE3, 0xF5, 0xA8, 0x9A, 0x21, 0xF0, 0x04, 0x6C, +0x80, 0x18, 0x72, 0x3C, 0x40, 0xC0, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF4, 0xAC, 0x9A, 0x03, 0xF2, +0x04, 0x6C, 0x80, 0x18, 0x72, 0x3C, 0x01, 0x72, +0x02, 0x61, 0x03, 0x6A, 0x06, 0x10, 0x02, 0x2A, +0x01, 0x6A, 0x03, 0x10, 0x05, 0x72, 0x02, 0x61, +0x02, 0x6A, 0x41, 0xC0, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x05, 0x67, 0x01, 0x6D, 0x21, 0xF0, +0x00, 0x6C, 0xAB, 0xED, 0x80, 0x18, 0x72, 0x3C, +0xF0, 0x6B, 0x4C, 0xEB, 0x72, 0x33, 0x61, 0xC0, +0x0F, 0x6B, 0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF4, 0xBC, 0x9A, 0x60, 0xC0, 0x03, 0xF2, +0x04, 0x6C, 0x80, 0x18, 0x72, 0x3C, 0x0C, 0x72, +0x02, 0x61, 0x03, 0x6A, 0x09, 0x10, 0x08, 0x72, +0x02, 0x61, 0x01, 0x6A, 0x05, 0x10, 0x04, 0x72, +0x02, 0x61, 0x02, 0x6A, 0x01, 0x10, 0x01, 0x2A, +0x42, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, +0xBC, 0x9A, 0x23, 0xF6, 0x04, 0x6C, 0x80, 0x18, +0x72, 0x3C, 0x4F, 0xEA, 0x43, 0xC0, 0x01, 0x6A, +0x44, 0xC0, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x69, 0x02, 0x5D, +0x0D, 0xD5, 0x0F, 0xD7, 0xCC, 0xE9, 0x70, 0x60, +0x54, 0x59, 0x6E, 0x60, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0x23, 0xF2, 0x04, 0x4B, +0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, 0x63, 0xF4, +0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF7, +0xAC, 0x9B, 0x63, 0xF4, 0x1C, 0x6C, 0xD1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, +0x04, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, +0x63, 0xF4, 0x1C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0xE5, 0xF5, 0x08, 0x6C, 0xFF, 0x6D, 0x80, 0x18, +0x72, 0x3C, 0x00, 0xF6, 0x40, 0x30, 0x00, 0xF6, +0x03, 0x30, 0x40, 0x6A, 0x0C, 0xEA, 0x03, 0x22, +0x80, 0x6A, 0x4B, 0xEA, 0x4D, 0xE8, 0x0F, 0x92, +0x0B, 0x72, 0x10, 0x61, 0x0D, 0x93, 0xA3, 0xF0, +0x00, 0x6A, 0x06, 0xD2, 0x05, 0xF1, 0x00, 0x4A, +0x07, 0xD2, 0x68, 0x32, 0x7D, 0x67, 0x49, 0xE3, +0x8C, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF7, +0xB0, 0x9A, 0x13, 0x10, 0x0F, 0x92, 0x00, 0x6B, +0x0C, 0x72, 0x13, 0x61, 0x0D, 0x93, 0xE3, 0xF0, +0x08, 0x6A, 0x04, 0xD2, 0x05, 0xF1, 0x00, 0x4A, +0x05, 0xD2, 0x68, 0x32, 0x7D, 0x67, 0x49, 0xE3, +0x88, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF7, +0xB4, 0x9A, 0x80, 0x18, 0x72, 0x3C, 0xFF, 0x6B, +0x4C, 0xEB, 0x0D, 0xE3, 0x00, 0x53, 0x00, 0x68, +0x02, 0x61, 0xFF, 0x68, 0x6C, 0xE8, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x23, 0xF2, 0xA4, 0x9B, 0x63, 0xF4, +0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x01, 0x10, +0xFF, 0x68, 0x50, 0x67, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x00, 0xF6, 0xA0, 0x35, 0x00, 0xF6, 0xC0, 0x36, +0x00, 0xF6, 0xE0, 0x37, 0x00, 0xF6, 0xA3, 0x35, +0x00, 0xF6, 0xC3, 0x36, 0x00, 0xF6, 0xE3, 0x37, +0x05, 0xD5, 0x06, 0xD6, 0x07, 0xD7, 0x5D, 0x67, +0x40, 0xF0, 0x48, 0x82, 0x08, 0xD2, 0x5D, 0x67, +0x40, 0xF0, 0x4C, 0xA2, 0x04, 0xD2, 0x20, 0xF0, +0x6F, 0xA4, 0x01, 0x6A, 0x37, 0x2B, 0x04, 0x92, +0x40, 0x5A, 0x00, 0x6A, 0x33, 0x60, 0x83, 0xF4, +0x10, 0x68, 0x10, 0xF0, 0x00, 0x69, 0x90, 0x67, +0xB1, 0x67, 0x80, 0x18, 0x72, 0x3C, 0x08, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x90, 0x67, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0x04, 0x92, 0x04, 0x6C, 0x06, 0x93, 0x8B, 0xEC, +0x4C, 0xEC, 0x05, 0x92, 0x7F, 0x6E, 0xCC, 0xEB, +0xCC, 0xEA, 0x60, 0x33, 0x4D, 0xEB, 0x07, 0x92, +0xFF, 0xF7, 0x1F, 0x6D, 0x07, 0xF2, 0x00, 0x4C, +0xCC, 0xEA, 0x40, 0x32, 0x40, 0x32, 0x4D, 0xEB, +0x08, 0x92, 0xAC, 0xEC, 0x01, 0x6D, 0x4C, 0xEE, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x00, 0xF6, 0xC0, 0x36, 0xAB, 0xED, 0x6D, 0xEE, +0x40, 0xEA, 0x01, 0x6A, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x0F, 0xD7, 0x20, 0xF0, 0x6F, 0xA4, 0xFF, 0x68, +0x26, 0x67, 0xAC, 0xE8, 0x01, 0x6A, 0x3F, 0x2B, +0x02, 0x5E, 0x00, 0x6A, 0x3C, 0x60, 0x83, 0xF4, +0x10, 0x6C, 0x10, 0xF0, 0x00, 0x6D, 0x80, 0x18, +0x72, 0x3C, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x83, 0xF4, 0x10, 0x6C, +0x10, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x0F, 0x92, 0x0B, 0x72, 0x13, 0x61, 0xA3, 0xF0, +0x00, 0x6B, 0x06, 0xD3, 0x05, 0xF1, 0x00, 0x4B, +0x07, 0xD3, 0x28, 0x31, 0x7D, 0x67, 0x25, 0xE3, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9A, 0x8C, 0xA9, 0x63, 0xF7, +0xB0, 0x9B, 0x12, 0x10, 0xE3, 0xF0, 0x08, 0x6B, +0x04, 0xD3, 0x05, 0xF1, 0x00, 0x4B, 0x05, 0xD3, +0x28, 0x31, 0x7D, 0x67, 0x25, 0xE3, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9A, 0x88, 0xA9, 0x63, 0xF7, 0xB4, 0x9B, +0xD0, 0x67, 0x40, 0xEA, 0x01, 0x6A, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x0C, 0xD4, 0x25, 0x67, 0xA0, 0xA5, 0x00, 0x6E, +0x0B, 0x6F, 0x80, 0x18, 0x46, 0x4E, 0x0C, 0x94, +0xA1, 0xA1, 0x01, 0x6E, 0x0B, 0x6F, 0x80, 0x18, +0x46, 0x4E, 0x0C, 0x94, 0xA2, 0xA1, 0x00, 0x6E, +0x0C, 0x6F, 0x80, 0x18, 0x46, 0x4E, 0x0C, 0x94, +0xA3, 0xA1, 0x01, 0x6E, 0x0C, 0x6F, 0x80, 0x18, +0x46, 0x4E, 0xFD, 0x6A, 0x00, 0x6B, 0x11, 0x67, +0x06, 0xD2, 0x07, 0xD3, 0x07, 0x93, 0x03, 0x6A, +0x6C, 0xEA, 0x03, 0x72, 0x0A, 0x61, 0x44, 0x80, +0xA1, 0x80, 0xC2, 0x80, 0xE3, 0x80, 0x0C, 0x94, +0x04, 0xD2, 0x06, 0x92, 0x05, 0xD2, 0x80, 0x18, +0x18, 0x4E, 0x06, 0x92, 0x07, 0x93, 0x01, 0x48, +0x01, 0x4A, 0x06, 0xD2, 0x01, 0x4B, 0x07, 0xD3, +0x06, 0x93, 0xFF, 0x6A, 0x4C, 0xEB, 0x07, 0x92, +0x06, 0xD3, 0x1C, 0x72, 0xE3, 0x61, 0x11, 0x67, +0x29, 0x69, 0x43, 0x41, 0x03, 0x6B, 0x6C, 0xEA, +0x03, 0x72, 0x0D, 0x61, 0x20, 0xF0, 0xAD, 0x80, +0x20, 0xF0, 0xCE, 0x80, 0x20, 0xF0, 0xEF, 0x80, +0x20, 0xF0, 0x50, 0x80, 0x0C, 0x94, 0x05, 0xD1, +0x04, 0xD2, 0x80, 0x18, 0x18, 0x4E, 0x01, 0x49, +0x3D, 0x71, 0x01, 0x48, 0xEA, 0x61, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x02, 0x5D, 0x03, 0x61, +0x01, 0x6A, 0x4B, 0xEA, 0x18, 0x10, 0x07, 0xF4, +0x00, 0x6A, 0x04, 0xD2, 0x02, 0xF0, 0x00, 0x4A, +0x05, 0xD2, 0xA8, 0x35, 0x5D, 0x67, 0xB5, 0xE2, +0x44, 0x9D, 0xFF, 0x6C, 0xCC, 0xEC, 0x88, 0x34, +0x51, 0xE4, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEC, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0xB4, 0x9A, +0xEC, 0xED, 0x80, 0x18, 0x72, 0x3C, 0x07, 0x97, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF0, 0x24, 0xA4, 0xA3, 0xF4, 0xF4, 0x9A, +0x05, 0x67, 0x18, 0x6E, 0x00, 0x6D, 0x80, 0x18, +0x9C, 0x4E, 0xEB, 0x49, 0xFF, 0x6B, 0x6C, 0xE9, +0x02, 0x59, 0x4F, 0x60, 0x4C, 0xEB, 0x0F, 0x5B, +0x78, 0x67, 0x01, 0x5B, 0x78, 0x67, 0x6B, 0xEB, +0x6C, 0xE8, 0x01, 0x70, 0x12, 0x60, 0x05, 0x20, +0x02, 0x70, 0x23, 0x60, 0x03, 0x70, 0x2D, 0x60, +0x40, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xFF, 0xF7, +0x1F, 0x69, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF0, +0x00, 0x6C, 0xB1, 0x67, 0x6E, 0xF7, 0x10, 0x6E, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0xFF, 0xF7, 0x1F, 0x69, 0x43, 0xF0, +0x00, 0x6C, 0xB1, 0x67, 0x04, 0xF3, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x48, 0xF1, +0x04, 0x6C, 0xB1, 0x67, 0x6E, 0xF0, 0x17, 0x6E, +0x1F, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xFF, 0xF7, +0x1F, 0x69, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF0, +0x00, 0x6C, 0xB1, 0x67, 0x6E, 0xF7, 0x10, 0x6E, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0xFF, 0xF7, 0x1F, 0x69, 0x43, 0xF0, +0x00, 0x6C, 0xB1, 0x67, 0x04, 0xF3, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x48, 0xF1, +0x04, 0x6C, 0xB1, 0x67, 0x24, 0xF0, 0x10, 0x6E, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x02, 0x5D, 0x05, 0x67, +0x12, 0x91, 0x37, 0x60, 0x04, 0x26, 0x04, 0xD1, +0x80, 0x18, 0x76, 0x4A, 0x33, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0x54, 0x9A, 0x4C, 0xEF, +0x4A, 0xEF, 0x08, 0xD7, 0x0C, 0x60, 0x00, 0x6E, +0xE2, 0x67, 0x80, 0x18, 0x9C, 0x4E, 0x61, 0x42, +0x24, 0x23, 0x08, 0x94, 0xD1, 0x67, 0xA2, 0x67, +0x80, 0x18, 0x67, 0x4A, 0x22, 0x67, 0x03, 0xF0, +0x08, 0x6B, 0x06, 0xD3, 0x05, 0xF1, 0x00, 0x4B, +0x07, 0xD3, 0x08, 0x30, 0x7D, 0x67, 0x01, 0xE3, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0xD4, 0x9B, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x8C, 0xA8, 0x01, 0x6D, 0xAB, 0xED, 0x2C, 0xEE, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0D, 0x6C, 0x40, 0xEA, 0x01, 0x6A, +0x01, 0x10, 0x00, 0x6A, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x00, 0x6D, 0x0A, 0xD4, 0x80, 0x18, 0x40, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, 0x2C, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0xAE, 0xF7, 0x18, 0x48, +0x00, 0x6A, 0x90, 0x67, 0xF1, 0x67, 0xA2, 0x67, +0xBC, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x90, 0x67, 0xF1, 0x67, 0x01, 0x6A, 0x00, 0x6D, +0xBC, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x00, 0x6A, 0xF1, 0x67, 0x90, 0x67, 0xBC, 0x6E, +0xA2, 0x67, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x0A, 0x94, 0x01, 0x6D, 0x80, 0x18, 0x40, 0x4A, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x63, 0xF5, 0x10, 0x69, +0x01, 0x6D, 0x91, 0x67, 0xAB, 0xED, 0x80, 0x18, +0x72, 0x3C, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x68, +0x04, 0x96, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0x91, 0x67, 0xAB, 0xED, 0xFF, 0xF5, 0x1E, 0x4E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, +0x01, 0x6D, 0x91, 0x67, 0xAB, 0xED, 0x40, 0xEA, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x44, 0x99, 0xFF, 0x6D, 0x83, 0xF4, +0x10, 0x6C, 0x01, 0x4D, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x1C, 0x9A, +0x00, 0x6C, 0x01, 0x6E, 0xB0, 0x67, 0x80, 0x18, +0xFF, 0x3C, 0x00, 0x6C, 0xB0, 0x67, 0xC4, 0x67, +0x80, 0x18, 0xFF, 0x3C, 0xB0, 0x67, 0x00, 0x6C, +0x01, 0x6E, 0x80, 0x18, 0xFF, 0x3C, 0xC0, 0xF3, +0x44, 0x99, 0xFF, 0x6D, 0x83, 0xF4, 0x10, 0x6C, +0x01, 0x4D, 0x01, 0x6E, 0x40, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x52, 0x9C, +0x40, 0xA2, 0x13, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF1, 0x1C, 0x9A, 0x00, 0x6C, 0x01, 0x6E, +0xB0, 0x67, 0x80, 0x18, 0xFF, 0x3C, 0x00, 0x6C, +0xC4, 0x67, 0xB0, 0x67, 0x80, 0x18, 0xFF, 0x3C, +0x00, 0x6C, 0xB0, 0x67, 0x01, 0x6E, 0x80, 0x18, +0xFF, 0x3C, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x24, 0x67, 0x09, 0xD5, +0x80, 0x18, 0x61, 0x4C, 0x52, 0x99, 0x40, 0xA2, +0x04, 0x22, 0x91, 0x67, 0x01, 0x6D, 0x80, 0x18, +0x35, 0x4C, 0x20, 0xF0, 0x58, 0xA1, 0x04, 0x22, +0x91, 0x67, 0xE0, 0xF3, 0x1F, 0x6D, 0x02, 0x10, +0x91, 0x67, 0x00, 0x6D, 0x30, 0xF0, 0x20, 0x68, +0x80, 0x18, 0x43, 0x4C, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0x6D, 0xC5, 0x67, 0x03, 0xF0, 0x0C, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, +0x18, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF0, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0x6D, 0xC5, 0x67, +0x08, 0xF1, 0x0C, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF4, 0x18, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xA0, 0x9B, 0x08, 0xF1, 0x0C, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x09, 0x92, 0x07, 0x2A, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF4, 0x1C, 0x6C, +0x03, 0x6D, 0x00, 0x6E, 0x0A, 0x10, 0x09, 0x93, +0x00, 0x6A, 0x01, 0x73, 0x0B, 0x61, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0x6D, 0x23, 0xF4, 0x1C, 0x6C, +0xC5, 0x67, 0x40, 0xEA, 0x91, 0x67, 0x80, 0x18, +0x46, 0x4F, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x0C, 0xD4, 0x20, 0xF0, 0x6F, 0xA4, 0xFF, 0x69, +0x06, 0x67, 0xAC, 0xE9, 0x01, 0x6A, 0xE0, 0xF1, +0x18, 0x2B, 0x07, 0x5E, 0xE0, 0xF1, 0x14, 0x60, +0x01, 0x76, 0x02, 0x61, 0x03, 0x59, 0x03, 0x10, +0x02, 0x76, 0x03, 0x61, 0x05, 0x59, 0xE0, 0xF1, +0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x0C, 0x94, +0xA3, 0xF4, 0xF4, 0x9A, 0x00, 0x6D, 0x18, 0x6E, +0x80, 0x18, 0x9C, 0x4E, 0x07, 0xD2, 0x07, 0x93, +0x06, 0xF0, 0x01, 0x6A, 0x4B, 0xEA, 0x4C, 0xEB, +0x07, 0x58, 0x06, 0xD3, 0x08, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0x08, 0x33, 0xA2, 0xF7, 0x00, 0x4A, +0x69, 0xE2, 0x40, 0x9A, 0x00, 0xEA, 0x00, 0x69, +0x5A, 0x11, 0x05, 0x70, 0x25, 0x61, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, +0x10, 0x6C, 0xE7, 0xF7, 0x10, 0x6D, 0xA0, 0xF2, +0x0B, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA1, 0xF1, 0x10, 0x6C, 0xDF, 0xF7, 0x00, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA1, 0xF1, 0x14, 0x69, 0x91, 0x67, 0x00, 0xF7, +0x00, 0x6D, 0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x63, 0xF7, 0xBC, 0x9B, 0x04, 0x6E, 0x4C, 0x10, +0x06, 0x70, 0x25, 0x61, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, 0x10, 0x6C, +0xE7, 0xF7, 0x10, 0x6D, 0xA0, 0xF2, 0x0B, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA1, 0xF1, +0x10, 0x6C, 0xDF, 0xF7, 0x00, 0x6D, 0x02, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA1, 0xF1, +0x14, 0x69, 0x91, 0x67, 0x00, 0xF7, 0x00, 0x6D, +0x06, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x63, 0xF7, +0xBC, 0x9B, 0x05, 0x6E, 0x25, 0x10, 0x25, 0x28, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0xF0, 0x10, 0x6C, 0xE7, 0xF7, 0x10, 0x6D, +0x80, 0xF1, 0x1B, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xA1, 0xF1, 0x10, 0x6C, 0xDF, 0xF7, +0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xA1, 0xF1, 0x14, 0x69, 0x91, 0x67, +0x00, 0xF7, 0x00, 0x6D, 0x07, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF7, 0xBC, 0x9B, 0x91, 0x67, 0x06, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0xA1, 0xF1, 0x10, 0x6C, 0x0F, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x06, 0x93, 0x06, 0xF0, +0x00, 0x6A, 0xA1, 0xF4, 0x1C, 0x6C, 0x4D, 0xEB, +0x06, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, +0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x00, 0x6E, +0x18, 0x69, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF1, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF2, 0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, 0xB0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF2, 0x08, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xE3, 0xF2, 0x0C, 0x6C, 0x0F, 0x6D, 0x06, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x81, 0xF0, +0x0C, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x0C, 0x93, 0x53, 0x9B, 0x40, 0xA2, +0xA0, 0xF0, 0x05, 0x2A, 0x83, 0x67, 0x05, 0x6D, +0x80, 0x18, 0x3D, 0x4B, 0x0C, 0x94, 0x06, 0x6D, +0x6A, 0x10, 0x01, 0x71, 0x09, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF2, +0x00, 0x6C, 0x10, 0x6D, 0x01, 0x6E, 0x08, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x03, 0xF2, 0x00, 0x6C, 0x10, 0x6D, 0x00, 0x6E, +0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xA1, 0xF1, 0x10, 0x6C, 0x0F, 0x6D, +0x05, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA1, 0xF1, 0x10, 0x6C, 0xC0, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x30, 0x36, +0x2D, 0xEE, 0xA1, 0xF1, 0x10, 0x6C, 0x1F, 0xF7, +0x00, 0x6D, 0x40, 0xEA, 0x06, 0x93, 0x04, 0xF0, +0x00, 0x6A, 0xA1, 0xF4, 0x1C, 0x6C, 0x4D, 0xEB, +0x06, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, +0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6E, +0x10, 0x69, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF1, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF2, 0x1C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, 0xB0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF2, 0x08, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xE3, 0xF2, 0x0C, 0x6C, 0x0F, 0x6D, 0x08, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x81, 0xF0, +0x0C, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x0C, 0x93, 0x53, 0x9B, 0x40, 0xA2, +0x3A, 0x2A, 0x83, 0x67, 0x04, 0x6D, 0x80, 0x18, +0x3D, 0x4B, 0x0C, 0x94, 0x00, 0x6D, 0x80, 0x18, +0x4C, 0x4B, 0x31, 0x10, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0xA1, 0xF1, 0x10, 0x6C, +0x0F, 0x6D, 0x0A, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xA1, 0xF1, 0x10, 0x6C, 0xC0, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x30, 0x36, 0x2D, 0xEE, 0xA1, 0xF1, 0x10, 0x6C, +0x1F, 0xF7, 0x00, 0x6D, 0x40, 0xEA, 0x06, 0x93, +0x02, 0xF0, 0x00, 0x6A, 0xA1, 0xF4, 0x1C, 0x6C, +0x4D, 0xEB, 0x06, 0xD3, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF2, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6E, 0x08, 0x69, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x81, 0xF0, 0x0C, 0x6C, 0x1E, 0xF0, +0x00, 0x6D, 0x06, 0x6E, 0x40, 0xEA, 0x0C, 0x94, +0x30, 0xF0, 0x20, 0x68, 0xAE, 0xF7, 0x18, 0x48, +0x00, 0x6D, 0x80, 0x18, 0x40, 0x4A, 0x01, 0x6A, +0x90, 0x67, 0x00, 0x6D, 0xEE, 0x6E, 0x04, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x12, 0x6B, +0x90, 0x67, 0x00, 0x6D, 0x33, 0x6E, 0x1F, 0x6F, +0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0x14, 0x4A, 0xE0, 0x9A, +0x90, 0x67, 0x00, 0x6D, 0x3F, 0x6E, 0x04, 0xD1, +0x80, 0x18, 0xE1, 0x4E, 0x00, 0x6B, 0xA3, 0x67, +0x90, 0x67, 0xEE, 0x6E, 0x04, 0x6F, 0x04, 0xD3, +0x80, 0x18, 0xE1, 0x4E, 0x01, 0x6A, 0x90, 0x67, +0xA2, 0x67, 0xEE, 0x6E, 0x04, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x12, 0x6B, 0x90, 0x67, +0x01, 0x6D, 0x33, 0x6E, 0x1F, 0x6F, 0x04, 0xD3, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x14, 0x4A, 0xE0, 0x9A, 0x90, 0x67, +0x01, 0x6D, 0x3F, 0x6E, 0x04, 0xD1, 0x80, 0x18, +0xE1, 0x4E, 0x00, 0x6B, 0x90, 0x67, 0x01, 0x6D, +0xEE, 0x6E, 0x04, 0x6F, 0x04, 0xD3, 0x80, 0x18, +0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x14, 0x4B, 0xE0, 0x9B, 0x06, 0x92, 0x90, 0x67, +0x00, 0x6D, 0x18, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x14, 0x4B, 0x06, 0x92, 0xE0, 0x9B, 0x90, 0x67, +0x01, 0x6D, 0x18, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x0C, 0x94, 0x01, 0x6D, 0x80, 0x18, +0x40, 0x4A, 0x07, 0x92, 0x01, 0x4A, 0x08, 0x22, +0x0C, 0x94, 0x80, 0x18, 0x1D, 0x4F, 0x0C, 0x94, +0x80, 0x18, 0x46, 0x4F, 0x01, 0x6A, 0x01, 0x10, +0x00, 0x6A, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x08, 0xD4, 0x09, 0xD5, +0x52, 0x9C, 0x60, 0xA2, 0x45, 0x67, 0x55, 0x2B, +0x02, 0x75, 0x29, 0x61, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0xC1, 0xF4, 0x00, 0x69, +0x91, 0x67, 0xE0, 0xF7, 0x1F, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF7, +0x18, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x08, 0x49, 0x91, 0x67, 0xE0, 0xF7, +0x1F, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF7, 0x18, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xA0, 0x9B, 0x91, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0x03, 0x6A, 0x2A, 0x10, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0xC1, 0xF4, +0x00, 0x69, 0x91, 0x67, 0xE0, 0xF7, 0x1F, 0x6D, +0x00, 0xF4, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF7, 0x18, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0x49, +0x91, 0x67, 0xE0, 0xF7, 0x1F, 0x6D, 0x00, 0xF4, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF7, 0x18, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xA0, 0x9B, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0x09, 0x92, 0x6F, 0x42, 0x02, 0x5B, 0x46, 0x60, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF5, 0x10, 0x69, 0x91, 0x67, 0x00, 0xF3, +0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF7, 0xAC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, 0xA4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x41, 0xF4, 0x04, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF5, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x41, 0xF4, 0x14, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0xB0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF4, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF5, 0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x09, 0x96, 0xFD, 0xF2, 0x14, 0x49, 0x91, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0xE3, 0xF4, 0xAC, 0x9B, +0x09, 0x96, 0x47, 0x10, 0x03, 0x72, 0x46, 0x61, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF5, 0x10, 0x69, 0x91, 0x67, 0x00, 0xF3, +0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF7, 0xAC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, 0xA4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x41, 0xF4, 0x04, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF5, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x41, 0xF4, 0x14, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0xB0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF4, 0x18, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF5, 0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xFD, 0xF2, 0x14, 0x49, 0x91, 0x67, 0x03, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xE3, 0xF4, 0xAC, 0x9B, 0x91, 0x67, +0x03, 0x6E, 0x40, 0xEA, 0x08, 0x94, 0x80, 0x18, +0x46, 0x4F, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x03, 0x75, 0x24, 0x67, +0x53, 0x60, 0x01, 0x76, 0x09, 0x61, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, +0x00, 0x6C, 0xFF, 0x6D, 0x01, 0x6E, 0x08, 0x10, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x21, 0xF0, 0x00, 0x6C, 0xFF, 0x6D, 0x02, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF6, +0x0C, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0x00, 0x6E, +0x2E, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x21, 0xF0, 0x00, 0x6C, 0xFF, 0x6D, +0x31, 0x6E, 0x0A, 0x10, 0x02, 0x76, 0x12, 0x61, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x21, 0xF0, 0x00, 0x6C, 0xFF, 0x6D, 0x32, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF6, +0x0C, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0x00, 0xF4, +0x00, 0x6E, 0x11, 0x10, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, 0x00, 0x6C, +0xFF, 0x6D, 0x33, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF6, 0x0C, 0x6C, 0xFF, 0xF7, +0x1F, 0x6D, 0x00, 0xF4, 0x04, 0x6E, 0x40, 0xEA, +0x91, 0x67, 0x80, 0x18, 0x46, 0x4F, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0x01, 0x76, 0xD0, 0x61, 0xC6, 0x17, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x01, 0x75, 0x08, 0xD4, 0x26, 0x61, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, +0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, +0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF2, 0x0C, 0x69, 0x91, 0x67, +0x20, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF6, 0xB8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x91, 0x67, 0x03, 0xF7, 0xAC, 0x9B, 0x00, 0x6E, +0x46, 0x10, 0x02, 0x75, 0x1D, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0xE3, 0xF4, +0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, +0x04, 0x6C, 0x05, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF2, 0x0C, 0x69, 0x91, 0x67, +0x20, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x63, 0xF6, 0xB8, 0x9B, 0x00, 0x6E, 0x1E, 0x10, +0x03, 0x75, 0x26, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0xE3, 0xF4, 0xAC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x04, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF2, 0x0C, 0x69, 0x91, 0x67, 0x20, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF6, 0xB8, 0x9B, +0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF7, +0xAC, 0x9B, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0x08, 0x94, 0x80, 0x18, 0x46, 0x4F, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x01, 0x6A, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x04, 0x67, 0x25, 0x67, +0x80, 0x18, 0x34, 0x51, 0xB1, 0x67, 0x90, 0x67, +0x80, 0x18, 0x89, 0x50, 0x20, 0xF0, 0x2D, 0xC0, +0x90, 0x67, 0x80, 0x18, 0x46, 0x4F, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x01, 0x75, +0x04, 0x67, 0x0C, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, +0x03, 0xF2, 0x04, 0x6C, 0xC3, 0xF4, 0xBC, 0x9B, +0x08, 0x6E, 0x19, 0x10, 0x02, 0x75, 0x0C, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF2, 0x04, 0x6C, +0xC3, 0xF4, 0xBC, 0x9B, 0x04, 0x6E, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9A, 0xC3, 0xF4, 0xBC, 0x9B, +0x03, 0xF2, 0x04, 0x6C, 0x0C, 0x6E, 0x40, 0xEA, +0x90, 0x67, 0x80, 0x18, 0x46, 0x4F, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x7D, 0x67, 0x04, 0x67, 0x47, 0x43, 0x0A, 0xD6, +0x20, 0xF0, 0xAC, 0xC0, 0x21, 0x4A, 0x60, 0xA2, +0x46, 0x67, 0xAD, 0xEA, 0x20, 0xF0, 0x6B, 0xC4, +0x20, 0xF0, 0x4A, 0xC4, 0x25, 0x67, 0xA7, 0x67, +0x80, 0x18, 0x7E, 0x51, 0x0A, 0x96, 0xB1, 0x67, +0x90, 0x67, 0x80, 0x18, 0x05, 0x51, 0x90, 0x67, +0x80, 0x18, 0x46, 0x4F, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x0B, 0xD5, 0x0C, 0xD6, 0x20, 0xF0, 0x44, 0xA4, +0x04, 0x67, 0x27, 0x67, 0x05, 0xD2, 0x20, 0xF0, +0x6F, 0xA4, 0x01, 0x6A, 0x61, 0x2B, 0xFB, 0x4A, +0xCC, 0xEA, 0x5D, 0x2A, 0xFF, 0x75, 0x06, 0x61, +0xFF, 0x77, 0x04, 0x61, 0x01, 0x6B, 0x03, 0x6D, +0x04, 0xD3, 0x07, 0x10, 0x0B, 0x93, 0x04, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x50, 0x2A, 0xA3, 0x67, +0x04, 0xD2, 0x0C, 0x96, 0x90, 0x67, 0x80, 0x18, +0x8F, 0x4A, 0x0C, 0x95, 0x90, 0x67, 0x80, 0x18, +0x73, 0x51, 0x20, 0xF0, 0x4B, 0xA0, 0x03, 0x2A, +0x01, 0x6A, 0x20, 0xF0, 0x4B, 0xC0, 0x0B, 0x92, +0xFF, 0x4A, 0x02, 0x5A, 0x02, 0x60, 0x0B, 0x91, +0x0C, 0x10, 0x0B, 0x93, 0x03, 0x73, 0x05, 0x61, +0xFF, 0x71, 0x09, 0x61, 0x20, 0xF0, 0x2B, 0xA0, +0x06, 0x10, 0x04, 0x92, 0x04, 0x22, 0x20, 0xF0, +0x2B, 0xA0, 0x00, 0x6D, 0x01, 0x10, 0x03, 0x6D, +0x90, 0x67, 0xD1, 0x67, 0xF1, 0x67, 0x80, 0x18, +0x98, 0x51, 0x05, 0x92, 0xFF, 0x6B, 0xEB, 0x4A, +0x6C, 0xEA, 0x02, 0x5A, 0x18, 0x60, 0x20, 0xF0, +0x4A, 0xA0, 0x01, 0x72, 0x06, 0x61, 0x0C, 0x93, +0x01, 0x73, 0x03, 0x61, 0x90, 0x67, 0x01, 0x6D, +0x0C, 0x10, 0x20, 0xF0, 0x4A, 0xA0, 0x02, 0x72, +0x06, 0x61, 0x0C, 0x92, 0x02, 0x72, 0x03, 0x61, +0x90, 0x67, 0x02, 0x6D, 0x02, 0x10, 0x90, 0x67, +0x03, 0x6D, 0x80, 0x18, 0xAD, 0x4E, 0x90, 0x67, +0x80, 0x18, 0x1D, 0x4F, 0x90, 0x67, 0x80, 0x18, +0x46, 0x4F, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, +0x0E, 0xD1, 0x0D, 0xD0, 0x20, 0xF0, 0x44, 0xA4, +0xFF, 0x69, 0x04, 0x67, 0x0A, 0xD2, 0x20, 0xF0, +0x6F, 0xA4, 0xAC, 0xE9, 0x01, 0x6A, 0x40, 0xF1, +0x0A, 0x2B, 0x48, 0x41, 0xF9, 0x4A, 0xFF, 0x6B, +0x6C, 0xEA, 0x15, 0x5A, 0x40, 0xF1, 0x02, 0x61, +0x48, 0x41, 0xC7, 0x4A, 0x6C, 0xEA, 0x23, 0x5A, +0x20, 0xF1, 0x1C, 0x61, 0x47, 0x41, 0x68, 0x4A, +0x6C, 0xEA, 0x04, 0x5A, 0x20, 0xF1, 0x16, 0x61, +0xB2, 0x59, 0x20, 0xF1, 0x13, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0xF4, 0x9A, 0x00, 0x6D, +0x18, 0x6E, 0x80, 0x18, 0x9C, 0x4E, 0x09, 0xD2, +0x01, 0x4A, 0x20, 0xF1, 0x07, 0x22, 0x20, 0xF0, +0x6B, 0xA0, 0x0F, 0x59, 0x58, 0x67, 0x0B, 0xD2, +0x06, 0xD3, 0x0A, 0x2B, 0x21, 0xF0, 0x00, 0x6C, +0x0F, 0x6D, 0x80, 0x18, 0x72, 0x3C, 0xFF, 0x6C, +0x4C, 0xEC, 0x06, 0xD4, 0x20, 0xF0, 0x8B, 0xC0, +0x20, 0xF0, 0x8A, 0xA0, 0x08, 0xD4, 0x0F, 0x2C, +0x21, 0xF0, 0x00, 0x4C, 0xF0, 0x6D, 0x80, 0x18, +0x72, 0x3C, 0x06, 0x94, 0xFF, 0x6B, 0x6C, 0xEA, +0x4D, 0xEC, 0x6C, 0xEC, 0x08, 0xD4, 0x20, 0xF0, +0x4C, 0xC0, 0x20, 0xF0, 0x8A, 0xC0, 0x20, 0xF0, +0x8D, 0xA0, 0x07, 0xD4, 0x0D, 0x2C, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF5, 0xA8, 0x9A, 0x21, 0xF0, +0x04, 0x4C, 0x80, 0x18, 0x72, 0x3C, 0xFF, 0x6B, +0x4C, 0xEB, 0x07, 0xD3, 0x20, 0xF0, 0x6D, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF7, 0x40, 0x9A, +0x09, 0x93, 0x0B, 0x94, 0x4C, 0xEB, 0x2D, 0xEB, +0x06, 0xD3, 0x16, 0x2C, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF7, 0x44, 0x9A, 0x91, 0x59, 0x4D, 0xEB, +0x06, 0xD3, 0x05, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF2, 0x48, 0x9A, 0x07, 0x10, 0x50, 0x59, +0x07, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, +0x44, 0x9A, 0x06, 0x93, 0x4D, 0xEB, 0x06, 0xD3, +0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x40, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x14, 0x4B, +0xE0, 0x9B, 0x06, 0x92, 0x30, 0xF0, 0x20, 0x6C, +0xAE, 0xF7, 0x18, 0x4C, 0x00, 0x6D, 0x18, 0x6E, +0x09, 0xD4, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x06, 0x94, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0x14, 0x4A, 0x04, 0xD4, 0xE0, 0x9A, 0x09, 0x94, +0x01, 0x6D, 0x18, 0x6E, 0x80, 0x18, 0xE1, 0x4E, +0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x40, 0x4A, +0x0F, 0x59, 0x11, 0x60, 0x50, 0x98, 0x40, 0xA2, +0x07, 0x2A, 0x90, 0x67, 0x05, 0x6D, 0x80, 0x18, +0x3D, 0x4B, 0x90, 0x67, 0x06, 0x6D, 0x1A, 0x10, +0x90, 0x67, 0x04, 0x6D, 0x80, 0x18, 0x3D, 0x4B, +0x90, 0x67, 0x00, 0x6D, 0x13, 0x10, 0x68, 0x41, +0xE4, 0x4B, 0xFF, 0x6A, 0x4C, 0xEB, 0x1D, 0x5B, +0x03, 0x60, 0x90, 0x67, 0x01, 0x6D, 0x0A, 0x10, +0x68, 0x41, 0xA4, 0x4B, 0x4C, 0xEB, 0x2D, 0x5B, +0x03, 0x60, 0x90, 0x67, 0x02, 0x6D, 0x02, 0x10, +0x90, 0x67, 0x03, 0x6D, 0x80, 0x18, 0x4C, 0x4B, +0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, 0x67, 0x4B, +0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, 0xAF, 0x4B, +0x0B, 0x93, 0x2F, 0x23, 0x90, 0x67, 0xB1, 0x67, +0x80, 0x18, 0xE3, 0x4A, 0x90, 0x67, 0x01, 0x6D, +0x00, 0x18, 0xA1, 0xC1, 0x40, 0xF4, 0x14, 0x6C, +0x80, 0x6D, 0x00, 0x6E, 0x80, 0x18, 0xFF, 0x3C, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6C, +0xC0, 0xF3, 0x44, 0x9C, 0x83, 0xF2, 0xA8, 0x9B, +0x83, 0xF2, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF7, 0xA8, 0x9B, +0x83, 0xF4, 0x00, 0x6C, 0x0F, 0x6E, 0x40, 0xEA, +0x0A, 0x92, 0xFF, 0x6B, 0xEB, 0x4A, 0x6C, 0xEA, +0x02, 0x5A, 0x41, 0x60, 0x90, 0x67, 0x00, 0x6D, +0x3C, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6C, 0xC0, 0xF3, 0x44, 0x9C, 0x83, 0xF2, +0xA8, 0x9B, 0x83, 0xF2, 0x00, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0x01, 0x6E, 0x40, 0xF4, 0x14, 0x6C, +0x80, 0x6D, 0x80, 0x18, 0xFF, 0x3C, 0x90, 0x67, +0x02, 0x6D, 0x00, 0x18, 0xA1, 0xC1, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF7, 0xA8, 0x9B, 0x83, 0xF4, +0x00, 0x6C, 0x22, 0x6E, 0x40, 0xEA, 0x0A, 0x92, +0xFF, 0x6B, 0xEB, 0x4A, 0x6C, 0xEA, 0x02, 0x5A, +0x16, 0x60, 0x08, 0x94, 0x01, 0x74, 0x06, 0x61, +0x07, 0x92, 0x01, 0x72, 0x0C, 0x61, 0x90, 0x67, +0x01, 0x6D, 0x0B, 0x10, 0x08, 0x93, 0x02, 0x73, +0x06, 0x61, 0x07, 0x94, 0x02, 0x74, 0x03, 0x61, +0x90, 0x67, 0x02, 0x6D, 0x02, 0x10, 0x90, 0x67, +0x03, 0x6D, 0x80, 0x18, 0xAD, 0x4E, 0x90, 0x67, +0x80, 0x18, 0x1D, 0x4F, 0x52, 0x98, 0x40, 0xA2, +0x04, 0x22, 0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, +0x16, 0x4C, 0x90, 0x67, 0x80, 0x18, 0x46, 0x4F, +0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x0F, 0x97, +0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0x26, 0x67, 0x4C, 0xED, 0x04, 0x67, +0x0B, 0xD7, 0x4C, 0xE9, 0x80, 0x18, 0xE5, 0x51, +0x00, 0x6B, 0x09, 0x22, 0x0B, 0x96, 0x90, 0x67, +0xB1, 0x67, 0x80, 0x18, 0x84, 0x4F, 0x4B, 0xEB, 0x4D, 0xEB, 0xC0, 0xF7, 0x62, 0x33, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x43, 0x67, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, -0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x26, 0xF6, -0x0A, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0x00, 0x18, -0x51, 0xCE, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x66, 0xF7, +0x12, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0x00, 0x18, +0x52, 0xCD, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x40, 0xA4, 0x01, 0x72, -0x04, 0x61, 0x00, 0x18, 0x4C, 0xD7, 0x00, 0x18, -0x42, 0xD7, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x04, 0x61, 0x00, 0x18, 0x5F, 0xD6, 0x00, 0x18, +0x55, 0xD6, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, 0x22, 0x6A, 0x7D, 0x67, 0x50, 0xC3, 0x01, 0x6A, 0x4F, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x92, 0xC3, @@ -73384,17 +72385,17 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x08, 0x61, 0x0E, 0xF0, 0x40, 0x40, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, 0x00, 0xF1, 0x00, 0x5A, 0x39, 0x60, 0x08, 0x92, 0x04, 0x72, 0x11, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x58, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x5C, 0x9A, 0xFF, 0x6B, 0x49, 0xE0, 0x40, 0xA2, 0x4C, 0xEB, 0x5F, 0x21, 0x06, 0x94, 0x8F, 0xEA, 0x6C, 0xEA, 0x04, 0x93, 0x8C, 0xEB, 0x6D, 0xEA, 0x04, 0xD2, 0x57, 0x10, 0x08, 0x92, 0x05, 0x72, 0x12, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x58, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x5C, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, 0x49, 0xE0, 0x40, 0xAA, 0x4C, 0xEB, 0x7F, 0x21, 0x06, 0x94, 0x8F, 0xEA, 0x6C, 0xEA, 0x04, 0x93, 0x8C, 0xEB, 0x6D, 0xEA, 0x04, 0xD2, 0x77, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF0, 0x58, 0x9A, 0x49, 0xE0, 0x60, 0x9A, +0x43, 0xF1, 0x5C, 0x9A, 0x49, 0xE0, 0x60, 0x9A, 0x80, 0xF0, 0x1E, 0x21, 0x06, 0x94, 0x8F, 0xEA, 0x6C, 0xEA, 0x04, 0x93, 0x8C, 0xEB, 0x6D, 0xEA, 0x04, 0xD2, 0x96, 0x10, 0x01, 0xF0, 0x00, 0x58, @@ -73403,44 +72404,44 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x80, 0xF0, 0x17, 0x60, 0x08, 0x92, 0x04, 0x72, 0x31, 0x61, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x58, 0x9A, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0x5C, 0x9A, 0x49, 0xE0, 0x60, 0xA2, 0xFF, 0x6A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x5C, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, +0x40, 0x9A, 0x49, 0xE0, 0x60, 0xA2, 0xFF, 0x6A, 0x6C, 0xEA, 0x07, 0x21, 0x06, 0x94, 0x8F, 0xEB, 0x4C, 0xEB, 0x04, 0x92, 0x8C, 0xEA, 0x4D, 0xEB, 0x04, 0xD3, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x58, 0x9A, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0x5C, 0x9A, 0x7D, 0x67, 0x41, 0xE0, 0x50, 0xA3, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x5C, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, +0x40, 0x9A, 0x7D, 0x67, 0x41, 0xE0, 0x50, 0xA3, 0x40, 0xC0, 0x7E, 0x10, 0x08, 0x92, 0x05, 0x72, 0x32, 0x61, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x58, 0x9A, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0x5C, 0x9A, 0x49, 0xE0, 0x60, 0xAA, 0xFF, 0xF7, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x5C, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, +0x40, 0x9A, 0x49, 0xE0, 0x60, 0xAA, 0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, 0x07, 0x21, 0x06, 0x94, 0x8F, 0xEB, 0x4C, 0xEB, 0x04, 0x92, 0x8C, 0xEA, 0x4D, 0xEB, 0x04, 0xD3, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, -0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0x58, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF0, 0x5C, 0x9A, 0x7D, 0x67, 0x41, 0xE0, +0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, +0x5C, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x40, 0x9A, 0x7D, 0x67, 0x41, 0xE0, 0x48, 0xAB, 0x40, 0xC8, 0x49, 0x10, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0x23, 0xF0, 0x58, 0x9A, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6A, 0x23, 0xF0, 0x5C, 0x9A, 0x49, 0xE0, +0x43, 0xF1, 0x5C, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF1, 0x40, 0x9A, 0x49, 0xE0, 0x60, 0x9A, 0x07, 0x21, 0x06, 0x94, 0x8F, 0xEA, 0x6C, 0xEA, 0x04, 0x93, 0x8C, 0xEB, 0x6D, 0xEA, 0x04, 0xD2, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x58, 0x9A, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, -0x5C, 0x9A, 0x41, 0xE0, 0x04, 0x92, 0x40, 0xD8, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x5C, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, +0x40, 0x9A, 0x41, 0xE0, 0x04, 0x92, 0x40, 0xD8, 0x1B, 0x10, 0xFF, 0xF7, 0x1C, 0x6A, 0x0C, 0xEA, 0x01, 0x6D, 0x82, 0x67, 0xAB, 0xED, 0x08, 0xD2, -0x80, 0x18, 0x24, 0x39, 0x05, 0xD2, 0x07, 0x21, +0x80, 0x18, 0x72, 0x3C, 0x05, 0xD2, 0x07, 0x21, 0x06, 0x94, 0x8F, 0xEB, 0x4C, 0xEB, 0x04, 0x92, 0x8C, 0xEA, 0x4D, 0xEB, 0x04, 0xD3, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x08, 0x94, @@ -73452,35 +72453,35 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x07, 0xD2, 0x00, 0x6A, 0x62, 0x60, 0x7F, 0x6D, 0x6C, 0xED, 0x4C, 0x45, 0xFF, 0x6B, 0x6C, 0xEA, 0x0E, 0x5A, 0x08, 0x60, 0x30, 0xF0, 0x20, 0x6B, -0x48, 0x32, 0xC2, 0xF6, 0x18, 0x4B, 0x4D, 0xE3, +0x48, 0x32, 0xE2, 0xF7, 0x18, 0x4B, 0x4D, 0xE3, 0x40, 0x9B, 0x00, 0xEA, 0x03, 0x6A, 0x51, 0x10, 0x61, 0xA4, 0x80, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6E, 0x07, 0x03, 0x90, 0x67, 0x4C, 0xEE, -0x06, 0x07, 0x04, 0xD3, 0x80, 0x18, 0xAD, 0x52, +0x06, 0x07, 0x04, 0xD3, 0x80, 0x18, 0xBB, 0x52, 0x28, 0x10, 0x81, 0xA4, 0x80, 0x6A, 0xFF, 0x69, 0x64, 0x67, 0x4C, 0xEB, 0x0C, 0xE9, 0x02, 0x32, -0x30, 0xF0, 0x20, 0x6C, 0x01, 0x6F, 0x6E, 0xF6, -0x08, 0x4C, 0xA2, 0x67, 0xD1, 0x67, 0xEB, 0xEF, -0x08, 0xD3, 0x09, 0xD2, 0x80, 0x18, 0x8E, 0x4E, +0x30, 0xF0, 0x20, 0x6C, 0x01, 0x6F, 0xAE, 0xF7, +0x18, 0x4C, 0xA2, 0x67, 0xD1, 0x67, 0xEB, 0xEF, +0x08, 0xD3, 0x09, 0xD2, 0x80, 0x18, 0x9C, 0x4E, 0x08, 0x93, 0x07, 0x23, 0x07, 0x94, 0x8F, 0xEB, 0x4C, 0xEB, 0x06, 0x92, 0x8C, 0xEA, 0x4D, 0xEB, 0x06, 0xD3, 0x06, 0x92, 0x09, 0x95, 0x30, 0xF0, -0x20, 0x6C, 0x01, 0x6F, 0x6E, 0xF6, 0x08, 0x4C, +0x20, 0x6C, 0x01, 0x6F, 0xAE, 0xF7, 0x18, 0x4C, 0xD1, 0x67, 0xEB, 0xEF, 0x04, 0xD2, 0x80, 0x18, -0xD3, 0x4E, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x47, 0xF7, 0x74, 0x9A, 0x06, 0x94, -0x61, 0xE0, 0x47, 0xF7, 0x78, 0x9A, 0x47, 0xF7, -0x14, 0xDA, 0x6D, 0xE4, 0x47, 0xF7, 0x78, 0xDA, +0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x47, 0xF7, 0x7C, 0x9A, 0x06, 0x94, +0x61, 0xE0, 0x67, 0xF7, 0x60, 0x9A, 0x47, 0xF7, +0x1C, 0xDA, 0x6D, 0xE4, 0x67, 0xF7, 0x60, 0xDA, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, 0x90, 0x67, 0x40, 0xEA, 0x01, 0x6A, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4A, -0xC9, 0xF7, 0x04, 0x4B, 0x48, 0xF1, 0x7C, 0xDA, -0x30, 0xF0, 0x20, 0x6B, 0xC9, 0xF7, 0x00, 0x4B, -0x48, 0xF1, 0x70, 0xDA, 0x30, 0xF0, 0x20, 0x6B, -0xC9, 0xF7, 0x08, 0x4B, 0x48, 0xF1, 0x6C, 0xDA, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4A, +0x0A, 0xF1, 0x10, 0x4B, 0x68, 0xF1, 0x64, 0xDA, +0x30, 0xF0, 0x20, 0x6B, 0x0A, 0xF1, 0x0C, 0x4B, +0x48, 0xF1, 0x78, 0xDA, 0x30, 0xF0, 0x20, 0x6B, +0x0A, 0xF1, 0x14, 0x4B, 0x48, 0xF1, 0x74, 0xDA, 0x20, 0xE8, 0x00, 0x65, 0xE0, 0x63, 0x3F, 0x62, 0xFF, 0xF7, 0x1F, 0x6A, 0xAC, 0xEA, 0xBD, 0x67, 0x56, 0xC5, 0x01, 0x6B, 0x42, 0x32, 0x57, 0xC5, @@ -73490,130 +72491,130 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x40, 0xEA, 0x3F, 0x97, 0x20, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0xA7, 0x44, 0x30, 0xF0, -0x20, 0x6C, 0x01, 0x4D, 0xAE, 0xF4, 0x14, 0x4C, +0x20, 0x6C, 0x01, 0x4D, 0x0E, 0xF6, 0x04, 0x4C, 0x14, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x04, 0x67, 0x80, 0x18, -0x9A, 0x53, 0x47, 0xA0, 0x66, 0xA0, 0x30, 0xF0, -0x20, 0x69, 0x46, 0xF5, 0x18, 0x49, 0x40, 0x32, -0x47, 0xF7, 0x9C, 0xA1, 0x69, 0xE2, 0x67, 0xF7, -0x4E, 0xC9, 0x01, 0x6A, 0x8C, 0xEA, 0xFF, 0x6B, -0x1C, 0x2A, 0x67, 0xF7, 0xB0, 0xA1, 0xFE, 0x4A, -0xAC, 0xEA, 0x67, 0xF7, 0x50, 0xC1, 0x02, 0x6A, -0x8C, 0xEA, 0x6C, 0xEA, 0x4E, 0x22, 0x47, 0xF7, -0x5F, 0xA1, 0x0F, 0x6D, 0x67, 0xF7, 0x80, 0xA1, +0xA8, 0x53, 0x47, 0xA0, 0x66, 0xA0, 0x30, 0xF0, +0x20, 0x69, 0xA6, 0xF6, 0x00, 0x49, 0x40, 0x32, +0x67, 0xF7, 0x84, 0xA1, 0x69, 0xE2, 0x67, 0xF7, +0x56, 0xC9, 0x01, 0x6A, 0x8C, 0xEA, 0xFF, 0x6B, +0x1C, 0x2A, 0x67, 0xF7, 0xB8, 0xA1, 0xFE, 0x4A, +0xAC, 0xEA, 0x67, 0xF7, 0x58, 0xC1, 0x02, 0x6A, +0x8C, 0xEA, 0x6C, 0xEA, 0x4E, 0x22, 0x67, 0xF7, +0x47, 0xA1, 0x0F, 0x6D, 0x67, 0xF7, 0x88, 0xA1, 0x4C, 0xED, 0x52, 0x36, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x58, 0x9A, 0x6C, 0xED, 0x6C, 0xEE, 0x40, 0xEA, 0x01, 0x72, 0x0D, 0x6A, 0x3E, 0x61, -0x3C, 0x10, 0x67, 0xF7, 0x70, 0xA1, 0x02, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0x67, 0xF7, 0x50, 0xC1, -0x67, 0xF7, 0x4C, 0xA9, 0x00, 0xF1, 0x01, 0x5A, +0x3C, 0x10, 0x67, 0xF7, 0x78, 0xA1, 0x02, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x67, 0xF7, 0x58, 0xC1, +0x67, 0xF7, 0x54, 0xA9, 0x00, 0xF1, 0x01, 0x5A, 0x0C, 0x6A, 0x30, 0x60, 0x00, 0x6A, 0x67, 0xF7, -0x51, 0xC1, 0x67, 0xF7, 0x52, 0xC1, 0x47, 0xF7, -0x1D, 0xA1, 0x00, 0x6A, 0x67, 0xF7, 0x54, 0xC9, -0x67, 0xF7, 0x56, 0xC9, 0x00, 0x18, 0x7A, 0xD4, -0x01, 0xE2, 0x00, 0x6A, 0x67, 0xF7, 0xEC, 0xA9, +0x59, 0xC1, 0x67, 0xF7, 0x5A, 0xC1, 0x67, 0xF7, +0x05, 0xA1, 0x00, 0x6A, 0x67, 0xF7, 0x5C, 0xC9, +0x67, 0xF7, 0x5E, 0xC9, 0x00, 0x18, 0x96, 0xD3, +0x01, 0xE2, 0x00, 0x6A, 0x67, 0xF7, 0xF4, 0xA9, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF7, 0xA0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0x03, 0xF0, 0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6E, -0x1C, 0x30, 0xCE, 0xF4, 0x16, 0x4E, 0x00, 0x6C, +0x84, 0xF0, 0xAC, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF1, 0x50, 0x9A, 0x30, 0xF0, 0x20, 0x6E, +0x1C, 0x30, 0x2E, 0xF6, 0x06, 0x4E, 0x00, 0x6C, 0xB5, 0xE0, 0x59, 0xE6, 0x40, 0xEB, 0x67, 0xF7, -0x50, 0xA1, 0x01, 0x6B, 0x6D, 0xEA, 0x67, 0xF7, -0x50, 0xC1, 0x00, 0x6A, 0x09, 0x97, 0x08, 0x91, +0x58, 0xA1, 0x01, 0x6B, 0x6D, 0xEA, 0x67, 0xF7, +0x58, 0xC1, 0x00, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, -0x67, 0xF7, 0xB4, 0xA8, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, +0x67, 0xF7, 0xBC, 0xA8, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, 0x4C, 0x9A, -0xCE, 0xF4, 0x16, 0x4B, 0x30, 0xF0, 0x20, 0x6C, -0xB5, 0xE3, 0xCE, 0xF5, 0x18, 0x4C, 0x04, 0x6E, -0x40, 0xEA, 0x88, 0xF0, 0x63, 0xA0, 0x80, 0x6A, +0x2E, 0xF6, 0x06, 0x4B, 0x30, 0xF0, 0x20, 0x6C, +0xB5, 0xE3, 0x2E, 0xF7, 0x08, 0x4C, 0x04, 0x6E, +0x40, 0xEA, 0x88, 0xF0, 0x6B, 0xA0, 0x80, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, -0x05, 0x2A, 0x67, 0xF7, 0x54, 0xA8, 0x04, 0x4A, -0x67, 0xF7, 0x54, 0xC8, 0x30, 0xF0, 0x20, 0x68, -0x46, 0xF5, 0x18, 0x48, 0x88, 0xF0, 0x61, 0xA0, +0x05, 0x2A, 0x67, 0xF7, 0x5C, 0xA8, 0x04, 0x4A, +0x67, 0xF7, 0x5C, 0xC8, 0x30, 0xF0, 0x20, 0x68, +0xA6, 0xF6, 0x00, 0x48, 0x88, 0xF0, 0x69, 0xA0, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x58, 0x9A, -0x88, 0xF0, 0x80, 0xA0, 0x0F, 0x6D, 0x6C, 0xED, +0x88, 0xF0, 0x88, 0xA0, 0x0F, 0x6D, 0x6C, 0xED, 0x72, 0x36, 0xFF, 0x69, 0x40, 0xEA, 0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF4, 0x54, 0x9A, -0x40, 0xEA, 0x67, 0xF7, 0x70, 0xA0, 0x02, 0x6A, -0x4B, 0xEA, 0x6C, 0xEA, 0x67, 0xF7, 0x50, 0xC0, -0x01, 0x6C, 0x7C, 0x10, 0x88, 0xF0, 0x63, 0xA0, +0x40, 0xEA, 0x67, 0xF7, 0x78, 0xA0, 0x02, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x67, 0xF7, 0x58, 0xC0, +0x01, 0x6C, 0x7C, 0x10, 0x88, 0xF0, 0x6B, 0xA0, 0x7F, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x39, 0x22, 0x01, 0x72, 0x6C, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, 0x4C, 0x9A, 0x00, 0x6C, 0x40, 0xEA, -0x70, 0x22, 0x47, 0xF7, 0x91, 0xA0, 0x00, 0x6D, -0x80, 0x18, 0x8E, 0x3B, 0x06, 0xD2, 0xE0, 0xF0, +0x70, 0x22, 0x47, 0xF7, 0x99, 0xA0, 0x00, 0x6D, +0x80, 0x18, 0xDC, 0x3E, 0x06, 0xD2, 0xE0, 0xF0, 0x75, 0xA0, 0x10, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, -0x1C, 0x22, 0x44, 0xF6, 0x49, 0xA0, 0x00, 0x68, +0x1C, 0x22, 0x44, 0xF6, 0x51, 0xA0, 0x00, 0x68, 0x10, 0x2A, 0x17, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, 0x03, 0x6C, 0x25, 0xE0, -0x40, 0xEA, 0x84, 0xF6, 0x88, 0xA1, 0x00, 0x6D, -0x01, 0x48, 0x80, 0x18, 0x8E, 0x3B, 0xFF, 0x6A, -0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x69, 0x46, 0xF5, -0x18, 0x49, 0x44, 0xF6, 0x49, 0xA1, 0x43, 0xE8, +0x40, 0xEA, 0x84, 0xF6, 0x90, 0xA1, 0x00, 0x6D, +0x01, 0x48, 0x80, 0x18, 0xDC, 0x3E, 0xFF, 0x6A, +0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x69, 0xA6, 0xF6, +0x00, 0x49, 0x44, 0xF6, 0x51, 0xA1, 0x43, 0xE8, 0xE9, 0x61, 0x06, 0x92, 0x06, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF4, 0x54, 0x9A, 0x40, 0xEA, -0x40, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x67, 0xF7, 0x71, 0xA2, 0x88, 0xF0, -0x82, 0xA2, 0x01, 0x4B, 0x67, 0xF7, 0x71, 0xC2, -0x67, 0xF7, 0x76, 0xAA, 0x6D, 0xE4, 0x67, 0xF7, -0x76, 0xCA, 0x67, 0xF7, 0x91, 0xA2, 0x47, 0xF7, -0x7E, 0xA2, 0x8E, 0xEB, 0x0C, 0x2B, 0x88, 0xF0, -0xC2, 0xA2, 0x10, 0xF0, 0x31, 0x6C, 0x30, 0xF0, +0x40, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x67, 0xF7, 0x79, 0xA2, 0x88, 0xF0, +0x8A, 0xA2, 0x01, 0x4B, 0x67, 0xF7, 0x79, 0xC2, +0x67, 0xF7, 0x7E, 0xAA, 0x6D, 0xE4, 0x67, 0xF7, +0x7E, 0xCA, 0x67, 0xF7, 0x99, 0xA2, 0x67, 0xF7, +0x66, 0xA2, 0x8E, 0xEB, 0x0C, 0x2B, 0x88, 0xF0, +0xCA, 0xA2, 0x10, 0xF0, 0x31, 0x6C, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0xD3, 0x00, 0xF3, 0x4C, 0x9A, -0x8A, 0xF1, 0x15, 0x4C, 0x0C, 0x10, 0x88, 0xF0, -0xC2, 0xA2, 0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0xCA, 0xF1, 0x0D, 0x4C, 0x0C, 0x10, 0x88, 0xF0, +0xCA, 0xA2, 0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, -0x31, 0x6C, 0x2A, 0xF1, 0x0D, 0x4C, 0x64, 0x6B, +0x31, 0x6C, 0x6A, 0xF1, 0x05, 0x4C, 0x64, 0x6B, 0x78, 0xEE, 0x00, 0x6D, 0x01, 0x6F, 0x12, 0xEE, -0x40, 0xEA, 0x1B, 0x10, 0x67, 0xF7, 0x70, 0xA0, +0x40, 0xEA, 0x1B, 0x10, 0x67, 0xF7, 0x78, 0xA0, 0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x67, 0xF7, -0x50, 0xC0, 0x02, 0x6C, 0x67, 0xF7, 0xAE, 0xA8, -0x0E, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, -0x18, 0x4A, 0x67, 0xF7, 0x90, 0xA2, 0x02, 0x6B, -0x6B, 0xEB, 0x67, 0xF7, 0xAE, 0xAA, 0x8C, 0xEB, -0x67, 0xF7, 0x70, 0xC2, 0x03, 0x6C, 0x80, 0x18, -0x8D, 0x53, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x58, 0xC0, 0x02, 0x6C, 0x67, 0xF7, 0xB6, 0xA8, +0x0E, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x67, 0xF7, 0x98, 0xA2, 0x02, 0x6B, +0x6B, 0xEB, 0x67, 0xF7, 0xB6, 0xAA, 0x8C, 0xEB, +0x67, 0xF7, 0x78, 0xC2, 0x03, 0x6C, 0x80, 0x18, +0x9B, 0x53, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, -0x18, 0x48, 0x67, 0xF7, 0x70, 0xA0, 0x01, 0x6A, -0x6C, 0xEA, 0x23, 0x22, 0x68, 0xF0, 0x5E, 0xA0, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, +0x00, 0x48, 0x67, 0xF7, 0x78, 0xA0, 0x01, 0x6A, +0x6C, 0xEA, 0x23, 0x22, 0x88, 0xF0, 0x46, 0xA0, 0x1E, 0x22, 0xE0, 0xF0, 0xC7, 0xA0, 0x00, 0x6A, -0x68, 0xF0, 0x5E, 0xC0, 0x0C, 0x6C, 0x0C, 0x6A, -0x00, 0x6D, 0x43, 0xF4, 0x44, 0xC0, 0x00, 0x18, -0x93, 0xCD, 0xC3, 0xF3, 0x48, 0xA0, 0xC3, 0xF3, -0x8A, 0xA0, 0x21, 0x6B, 0x6B, 0xEB, 0x4C, 0xEB, +0x88, 0xF0, 0x46, 0xC0, 0x0C, 0x6C, 0x0C, 0x6A, +0x00, 0x6D, 0x43, 0xF4, 0x48, 0xC0, 0x00, 0x18, +0x94, 0xCC, 0xC3, 0xF3, 0x4C, 0xA0, 0xC3, 0xF3, +0x8E, 0xA0, 0x21, 0x6B, 0x6B, 0xEB, 0x4C, 0xEB, 0x04, 0x6A, 0x8C, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, -0xC3, 0xF3, 0x68, 0xC0, 0x04, 0x2A, 0xFE, 0x4A, -0x6C, 0xEA, 0xC3, 0xF3, 0x48, 0xC0, 0x80, 0x18, -0xDE, 0x53, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0xC3, 0xF3, 0x6C, 0xC0, 0x04, 0x2A, 0xFE, 0x4A, +0x6C, 0xEA, 0xC3, 0xF3, 0x4C, 0xC0, 0x80, 0x18, +0xEC, 0x53, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x46, 0xF5, 0x18, 0x48, 0x67, 0xF7, 0x50, 0xA0, +0xA6, 0xF6, 0x00, 0x48, 0x67, 0xF7, 0x58, 0xA0, 0x01, 0x69, 0x91, 0x67, 0x4C, 0xEC, 0xFF, 0x6B, -0x40, 0xF1, 0x02, 0x24, 0x47, 0xF7, 0xBC, 0xA0, +0x40, 0xF1, 0x02, 0x24, 0x67, 0xF7, 0xA4, 0xA0, 0x03, 0x6E, 0xAE, 0x34, 0xCC, 0xEC, 0x6C, 0xEC, 0x02, 0x74, 0x7C, 0x60, 0x03, 0x74, 0xC0, 0xF0, 0x1E, 0x60, 0x01, 0x74, 0x25, 0x60, 0x02, 0x6C, 0x8B, 0xEC, 0x4C, 0xEC, 0x02, 0x6A, 0xAC, 0xEA, -0x6C, 0xEA, 0x67, 0xF7, 0x90, 0xC0, 0x11, 0x22, -0x47, 0xF7, 0x5F, 0xA0, 0x0F, 0x6D, 0x67, 0xF7, -0x80, 0xA0, 0x4C, 0xED, 0x52, 0x36, 0x30, 0xF0, +0x6C, 0xEA, 0x67, 0xF7, 0x98, 0xC0, 0x11, 0x22, +0x67, 0xF7, 0x47, 0xA0, 0x0F, 0x6D, 0x67, 0xF7, +0x88, 0xA0, 0x4C, 0xED, 0x52, 0x36, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x58, 0x9A, 0x6C, 0xED, 0x6C, 0xEE, 0x40, 0xEA, 0x01, 0x72, 0x01, 0x6C, -0x01, 0x61, 0x00, 0x6C, 0x67, 0xF7, 0xAE, 0xA8, -0x80, 0x18, 0x8D, 0x53, 0x30, 0xF0, 0x20, 0x6A, +0x01, 0x61, 0x00, 0x6C, 0x67, 0xF7, 0xB6, 0xA8, +0x80, 0x18, 0x9B, 0x53, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF4, 0x54, 0x9A, 0x40, 0xEA, 0xC0, 0x10, 0x02, 0x6A, 0xAC, 0xEA, 0x6C, 0xEA, 0x11, 0x22, -0x47, 0xF7, 0x5F, 0xA0, 0x0F, 0x6D, 0x67, 0xF7, -0x80, 0xA0, 0x4C, 0xED, 0x52, 0x36, 0x30, 0xF0, +0x67, 0xF7, 0x47, 0xA0, 0x0F, 0x6D, 0x67, 0xF7, +0x88, 0xA0, 0x4C, 0xED, 0x52, 0x36, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x58, 0x9A, 0x6C, 0xED, 0x6C, 0xEE, 0x40, 0xEA, 0x01, 0x72, 0xE0, 0xF0, -0x0B, 0x61, 0x67, 0xF7, 0xAE, 0xA8, 0x00, 0x6C, -0x80, 0x18, 0x8D, 0x53, 0x30, 0xF0, 0x20, 0x6A, -0xAE, 0xF4, 0x59, 0xA2, 0x5A, 0x33, 0x02, 0x73, +0x0B, 0x61, 0x67, 0xF7, 0xB6, 0xA8, 0x00, 0x6C, +0x80, 0x18, 0x9B, 0x53, 0x30, 0xF0, 0x20, 0x6A, +0x0E, 0xF6, 0x49, 0xA2, 0x5A, 0x33, 0x02, 0x73, 0x0D, 0x60, 0x03, 0x73, 0x0F, 0x60, 0x01, 0x73, 0x05, 0x60, 0x3F, 0x6E, 0x4C, 0xEE, 0xFF, 0x6A, 0x4C, 0xEE, 0x0E, 0x10, 0x3F, 0x6B, 0x4C, 0xEB, @@ -73621,23 +72622,23 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x64, 0x6E, 0x04, 0x10, 0x3F, 0x6B, 0x4C, 0xEB, 0xE0, 0xF3, 0x08, 0x6E, 0xD8, 0xEB, 0x12, 0xEE, 0x0A, 0x6A, 0x58, 0xEE, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x67, 0xF7, 0x76, 0xAA, -0x10, 0xF0, 0x31, 0x6C, 0x2A, 0xF1, 0x0D, 0x4C, +0xA6, 0xF6, 0x00, 0x4A, 0x67, 0xF7, 0x7E, 0xAA, +0x10, 0xF0, 0x31, 0x6C, 0x6A, 0xF1, 0x05, 0x4C, 0x00, 0x6D, 0x12, 0xEE, 0x7B, 0xE6, 0x01, 0x6B, -0x68, 0xF0, 0x7E, 0xC2, 0x00, 0x6A, 0x04, 0xD2, +0x88, 0xF0, 0x66, 0xC2, 0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0x64, 0x6B, 0x60, 0x10, 0x02, 0x6A, 0xAC, 0xEA, -0x6C, 0xEA, 0x11, 0x22, 0x47, 0xF7, 0x5F, 0xA0, -0x0F, 0x6D, 0x67, 0xF7, 0x80, 0xA0, 0x4C, 0xED, +0x6C, 0xEA, 0x11, 0x22, 0x67, 0xF7, 0x47, 0xA0, +0x0F, 0x6D, 0x67, 0xF7, 0x88, 0xA0, 0x4C, 0xED, 0x52, 0x36, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x58, 0x9A, 0x6C, 0xED, 0x6C, 0xEE, 0x40, 0xEA, 0x01, 0x72, 0x80, 0xF0, 0x19, 0x61, 0x67, 0xF7, -0xAE, 0xA8, 0x00, 0x6C, 0x80, 0x18, 0x8D, 0x53, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x67, 0xF7, 0x83, 0xA2, 0x67, 0xF7, 0x72, 0xA2, +0xB6, 0xA8, 0x00, 0x6C, 0x80, 0x18, 0x9B, 0x53, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x67, 0xF7, 0x8B, 0xA2, 0x67, 0xF7, 0x7A, 0xA2, 0xFF, 0x4C, 0x6E, 0xEC, 0x03, 0x2C, 0x67, 0xF7, -0x42, 0xA2, 0x05, 0x10, 0x01, 0x4B, 0x67, 0xF7, -0x72, 0xC2, 0x67, 0xF7, 0x41, 0xA2, 0x5A, 0x33, +0x4A, 0xA2, 0x05, 0x10, 0x01, 0x4B, 0x67, 0xF7, +0x7A, 0xC2, 0x67, 0xF7, 0x49, 0xA2, 0x5A, 0x33, 0x02, 0x73, 0x0D, 0x60, 0x03, 0x73, 0x0F, 0x60, 0x01, 0x73, 0x05, 0x60, 0x3F, 0x6B, 0x4C, 0xEB, 0xFF, 0x6A, 0x4C, 0xEB, 0x0E, 0x10, 0x3F, 0x6B, @@ -73645,110 +72646,110 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x4C, 0xEB, 0x64, 0x6A, 0x04, 0x10, 0x3F, 0x6B, 0x4C, 0xEB, 0xE0, 0xF3, 0x08, 0x6A, 0x58, 0xEB, 0x12, 0xEB, 0x0A, 0x6A, 0x58, 0xEB, 0x30, 0xF0, -0x20, 0x6A, 0xCE, 0xF4, 0x4E, 0xAA, 0x01, 0x6C, +0x20, 0x6A, 0x0E, 0xF6, 0x5E, 0xAA, 0x01, 0x6C, 0x00, 0x6D, 0x64, 0x6E, 0x12, 0xEB, 0x4F, 0xE3, -0x30, 0xF0, 0x20, 0x6A, 0xCE, 0xF5, 0x96, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF7, 0x86, 0xC2, 0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, 0x31, 0x6C, -0x2A, 0xF1, 0x0D, 0x4C, 0xD8, 0xEB, 0x01, 0x6F, +0x6A, 0xF1, 0x05, 0x4C, 0xD8, 0xEB, 0x01, 0x6F, 0x12, 0xEE, 0x40, 0xEA, 0x09, 0x10, 0x67, 0xF7, -0xAE, 0xA8, 0x00, 0x6C, 0x80, 0x18, 0x8D, 0x53, -0x68, 0xF0, 0x3E, 0xC0, 0x80, 0x18, 0x4B, 0x54, -0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, +0xB6, 0xA8, 0x00, 0x6C, 0x80, 0x18, 0x9B, 0x53, +0x88, 0xF0, 0x26, 0xC0, 0x80, 0x18, 0x59, 0x54, +0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, 0xE0, 0xF0, 0x87, 0xA0, 0x00, 0x6A, 0x67, 0xF7, -0x51, 0xC0, 0x00, 0x6A, 0x67, 0xF7, 0x56, 0xC8, -0x67, 0xF7, 0x54, 0xC8, 0x00, 0x18, 0xAA, 0xDD, -0xE0, 0xF0, 0x87, 0xA0, 0x00, 0x18, 0x99, 0xDD, -0xE0, 0xF0, 0x87, 0xA0, 0x00, 0x18, 0xB1, 0xDD, -0xC3, 0xF3, 0x68, 0xA0, 0x20, 0x6A, 0xE0, 0xF0, -0xC7, 0xA0, 0x6D, 0xEA, 0xC3, 0xF3, 0x48, 0xC0, +0x59, 0xC0, 0x00, 0x6A, 0x67, 0xF7, 0x5E, 0xC8, +0x67, 0xF7, 0x5C, 0xC8, 0x00, 0x18, 0xBD, 0xDC, +0xE0, 0xF0, 0x87, 0xA0, 0x00, 0x18, 0xAC, 0xDC, +0xE0, 0xF0, 0x87, 0xA0, 0x00, 0x18, 0xC4, 0xDC, +0xC3, 0xF3, 0x6C, 0xA0, 0x20, 0x6A, 0xE0, 0xF0, +0xC7, 0xA0, 0x6D, 0xEA, 0xC3, 0xF3, 0x4C, 0xC0, 0x08, 0x6C, 0x08, 0x6A, 0x00, 0x6D, 0x43, 0xF4, -0x44, 0xC0, 0x00, 0x18, 0x93, 0xCD, 0xC3, 0xF3, -0x6A, 0xA0, 0x04, 0x6A, 0x6C, 0xEA, 0x24, 0x2A, +0x48, 0xC0, 0x00, 0x18, 0x94, 0xCC, 0xC3, 0xF3, +0x6E, 0xA0, 0x04, 0x6A, 0x6C, 0xEA, 0x24, 0x2A, 0x00, 0xF1, 0x78, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x05, 0x22, 0xC3, 0xF3, -0x68, 0xA0, 0x01, 0x6A, 0x6D, 0xEA, 0x05, 0x10, -0xC3, 0xF3, 0x68, 0xA0, 0x02, 0x6A, 0x4B, 0xEA, -0x6C, 0xEA, 0xC3, 0xF3, 0x48, 0xC0, 0x10, 0x10, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x67, 0xF7, 0x90, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, -0x67, 0xF7, 0xAE, 0xAA, 0x8C, 0xEB, 0x67, 0xF7, -0x70, 0xC2, 0x01, 0x6C, 0x80, 0x18, 0x8D, 0x53, +0x6C, 0xA0, 0x01, 0x6A, 0x6D, 0xEA, 0x05, 0x10, +0xC3, 0xF3, 0x6C, 0xA0, 0x02, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0xC3, 0xF3, 0x4C, 0xC0, 0x10, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x67, 0xF7, 0x98, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, +0x67, 0xF7, 0xB6, 0xAA, 0x8C, 0xEB, 0x67, 0xF7, +0x78, 0xC2, 0x01, 0x6C, 0x80, 0x18, 0x9B, 0x53, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x69, 0x04, 0x67, 0x80, 0xF4, 0x4C, 0x9A, 0x2C, 0xE8, 0x2C, 0xED, 0xCC, 0xE9, 0x04, 0xD5, 0x90, 0x67, 0xD1, 0x67, 0x40, 0xEA, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x0F, 0x58, -0x63, 0xF2, 0x10, 0xC2, 0x63, 0xF2, 0x28, 0xDA, +0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, 0x0F, 0x58, +0x63, 0xF2, 0x14, 0xC2, 0x63, 0xF2, 0x2C, 0xDA, 0x01, 0x6B, 0x01, 0x60, 0x00, 0x6B, 0x04, 0x96, 0x30, 0xF0, 0x20, 0x6C, 0xB0, 0x67, 0xF1, 0x67, -0x63, 0xF2, 0x6C, 0xDA, 0x6E, 0xF6, 0x08, 0x4C, -0x80, 0x18, 0x86, 0x52, 0x09, 0x97, 0x08, 0x91, +0x63, 0xF2, 0x70, 0xDA, 0xAE, 0xF7, 0x18, 0x4C, +0x80, 0x18, 0x94, 0x52, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, 0x03, 0x5C, 0x58, 0x67, 0x6C, 0xEA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, -0x46, 0xF5, 0x18, 0x4B, 0x83, 0xF3, 0x4C, 0xA3, -0x0B, 0x2A, 0x83, 0xF3, 0x4D, 0xA3, 0x08, 0x2A, -0x83, 0xF3, 0x4E, 0xA3, 0x05, 0x2A, 0x83, 0xF3, -0x6F, 0xA3, 0x03, 0x23, 0x01, 0x6A, 0x20, 0xE8, +0xA6, 0xF6, 0x00, 0x4B, 0x83, 0xF3, 0x50, 0xA3, +0x0B, 0x2A, 0x83, 0xF3, 0x51, 0xA3, 0x08, 0x2A, +0x83, 0xF3, 0x52, 0xA3, 0x05, 0x2A, 0x83, 0xF3, +0x73, 0xA3, 0x03, 0x23, 0x01, 0x6A, 0x20, 0xE8, 0x01, 0x6A, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, -0x30, 0xF0, 0x20, 0x6A, 0x4E, 0xF6, 0x58, 0xA2, -0x0E, 0x72, 0x29, 0x61, 0x80, 0x18, 0x2B, 0x55, -0x26, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x6E, 0xF6, -0x08, 0x4C, 0x04, 0x05, 0x80, 0x18, 0xAD, 0x4D, -0x5D, 0x67, 0x92, 0xA2, 0x80, 0x18, 0x28, 0x55, +0x30, 0xF0, 0x20, 0x6A, 0xAE, 0xF7, 0x48, 0xA2, +0x0E, 0x72, 0x29, 0x61, 0x80, 0x18, 0x39, 0x55, +0x26, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xAE, 0xF7, +0x18, 0x4C, 0x04, 0x05, 0x80, 0x18, 0xBB, 0x4D, +0x5D, 0x67, 0x92, 0xA2, 0x80, 0x18, 0x36, 0x55, 0x0A, 0x22, 0x5D, 0x67, 0x90, 0xA2, 0x80, 0x18, -0x28, 0x55, 0x05, 0x22, 0x5D, 0x67, 0x91, 0xA2, -0x80, 0x18, 0x28, 0x55, 0x10, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF4, 0x4C, 0x9A, 0x00, 0x6B, -0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, -0x70, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF7, +0x36, 0x55, 0x05, 0x22, 0x5D, 0x67, 0x91, 0xA2, +0x80, 0x18, 0x36, 0x55, 0x10, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF5, 0x44, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF1, +0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, 0x5C, 0x9A, 0x60, 0xDA, 0xF0, 0x17, 0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x4E, 0xF6, -0x55, 0xA2, 0x01, 0x72, 0x4A, 0x61, 0x80, 0x18, -0x2B, 0x55, 0x47, 0x22, 0x30, 0xF0, 0x20, 0x68, -0x6E, 0xF6, 0x08, 0x48, 0x90, 0x67, 0x05, 0x05, -0x80, 0x18, 0xAD, 0x4D, 0x7D, 0x67, 0x56, 0xA3, +0x08, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xAE, 0xF7, +0x45, 0xA2, 0x01, 0x72, 0x4A, 0x61, 0x80, 0x18, +0x39, 0x55, 0x47, 0x22, 0x30, 0xF0, 0x20, 0x68, +0xAE, 0xF7, 0x18, 0x48, 0x90, 0x67, 0x05, 0x05, +0x80, 0x18, 0xBB, 0x4D, 0x7D, 0x67, 0x56, 0xA3, 0x01, 0x72, 0x0E, 0x60, 0x03, 0x72, 0x0C, 0x60, 0x54, 0xA3, 0x01, 0x72, 0x09, 0x60, 0x03, 0x72, 0x07, 0x60, 0x55, 0xA3, 0x01, 0x72, 0x04, 0x60, 0x02, 0x72, 0x02, 0x60, 0x03, 0x72, 0x10, 0x61, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF4, 0x4C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF5, 0x44, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF7, 0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0xC2, 0xF7, 0x5C, 0x9A, 0x60, 0xDA, 0xF0, 0x17, -0x90, 0x67, 0x04, 0x05, 0x80, 0x18, 0x9B, 0x4D, +0x24, 0xF1, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF0, 0x5C, 0x9A, 0x60, 0xDA, 0xF0, 0x17, +0x90, 0x67, 0x04, 0x05, 0x80, 0x18, 0xA9, 0x4D, 0x7D, 0x67, 0x51, 0xA3, 0x01, 0x72, 0x05, 0x60, 0x03, 0x72, 0x03, 0x60, 0x50, 0xA3, 0x01, 0x72, -0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF4, -0x4C, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF7, 0x74, 0x9A, 0x30, 0xF0, -0x20, 0x6A, 0xC2, 0xF7, 0x5C, 0x9A, 0x60, 0xDA, +0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF5, +0x44, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x24, 0xF1, 0x78, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF0, 0x5C, 0x9A, 0x60, 0xDA, 0xF0, 0x17, 0x09, 0x97, 0x08, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF2, 0x40, 0x9A, 0x30, 0xF0, 0x20, 0x6B, -0x46, 0xF5, 0x18, 0x4B, 0x80, 0xA2, 0x67, 0xF7, -0xD0, 0xA3, 0x67, 0xF7, 0x98, 0xC3, 0xA0, 0xAA, +0xC3, 0xF3, 0x44, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0x80, 0xA2, 0x67, 0xF7, +0xD8, 0xA3, 0x87, 0xF7, 0x80, 0xC3, 0xA0, 0xAA, 0x01, 0xF0, 0x00, 0x6C, 0xAC, 0xEC, 0x83, 0x35, 0x03, 0x6C, 0xAE, 0x35, 0x8B, 0xEC, 0xA4, 0x35, -0xCC, 0xEC, 0xAD, 0xEC, 0x67, 0xF7, 0x90, 0xC3, -0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF7, 0x98, 0x9C, -0xA0, 0xAC, 0x67, 0xF7, 0xBA, 0xCB, 0xA0, 0xAA, +0xCC, 0xEC, 0xAD, 0xEC, 0x67, 0xF7, 0x98, 0xC3, +0x30, 0xF0, 0x20, 0x6C, 0x24, 0xF1, 0x9C, 0x9C, +0xA0, 0xAC, 0x87, 0xF7, 0xA2, 0xCB, 0xA0, 0xAA, 0xBF, 0xF7, 0x1F, 0x6B, 0xAC, 0xEB, 0x60, 0xCA, 0xA0, 0xAA, 0x7F, 0xF7, 0x1F, 0x6B, 0xAC, 0xEB, 0x60, 0xCA, 0xC0, 0xAA, 0xFE, 0xF7, 0x1F, 0x6B, 0xFF, 0xF7, 0x1F, 0x6D, 0xCC, 0xEB, 0x60, 0xCA, 0x40, 0xAC, 0xFF, 0x6B, 0x21, 0x4B, 0xAC, 0xEA, 0x6D, 0xEA, 0xAC, 0xEA, 0x40, 0xCC, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x67, 0xF7, 0x98, 0xA2, -0x83, 0xF2, 0x60, 0x9B, 0x01, 0x6E, 0x80, 0xC3, -0x30, 0xF0, 0x20, 0x6C, 0x67, 0xF7, 0xBA, 0xAA, -0xE3, 0xF7, 0x98, 0x9C, 0xA0, 0xCC, 0x67, 0xF7, -0x50, 0xA2, 0x80, 0xAB, 0xFF, 0xF7, 0x1F, 0x6D, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x87, 0xF7, 0x80, 0xA2, +0xC3, 0xF3, 0x64, 0x9B, 0x01, 0x6E, 0x80, 0xC3, +0x30, 0xF0, 0x20, 0x6C, 0x87, 0xF7, 0xA2, 0xAA, +0x24, 0xF1, 0x9C, 0x9C, 0xA0, 0xCC, 0x67, 0xF7, +0x58, 0xA2, 0x80, 0xAB, 0xFF, 0xF7, 0x1F, 0x6D, 0x46, 0x32, 0xCC, 0xEA, 0xAC, 0xEC, 0x40, 0x32, 0xFE, 0xF7, 0x1E, 0x4E, 0x4C, 0x32, 0xCC, 0xEC, 0x8D, 0xEA, 0xAC, 0xEA, 0x40, 0xCB, 0x20, 0xE8, @@ -73760,621 +72761,622 @@ u8 array_mp_8822c_fw_wowlan[] = { 0x70, 0xA4, 0x09, 0xE2, 0x01, 0x48, 0x00, 0xF2, 0x00, 0x70, 0x60, 0xC2, 0xE9, 0x61, 0x00, 0x6A, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x20, 0x6A, 0x10, 0xF0, 0x23, 0x6B, -0x40, 0xF1, 0x08, 0x4A, 0xC0, 0xF5, 0x11, 0x4B, -0x61, 0xDA, 0x10, 0xF0, 0x23, 0x6B, 0xEA, 0xF0, -0x1D, 0x4B, 0x62, 0xDA, 0x10, 0xF0, 0x23, 0x6B, -0x8A, 0xF1, 0x15, 0x4B, 0x63, 0xDA, 0x10, 0xF0, -0x23, 0x6B, 0x6A, 0xF1, 0x01, 0x4B, 0x64, 0xDA, -0x10, 0xF0, 0x23, 0x6B, 0x2A, 0xF1, 0x0D, 0x4B, -0x65, 0xDA, 0x10, 0xF0, 0x23, 0x6B, 0xCA, 0xF0, -0x0D, 0x4B, 0x66, 0xDA, 0x10, 0xF0, 0x23, 0x6B, -0x8A, 0xF0, 0x1D, 0x4B, 0x67, 0xDA, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0x00, 0x6B, 0x83, 0xF3, 0x6C, 0xC2, 0x83, 0xF3, -0x6D, 0xC2, 0x83, 0xF3, 0x6E, 0xC2, 0x83, 0xF3, -0x6F, 0xC2, 0x42, 0xF4, 0x10, 0x6A, 0x1F, 0xF7, -0x00, 0x6B, 0x4C, 0xEB, 0x02, 0xF0, 0x00, 0x73, -0x01, 0x60, 0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF0, 0x78, 0x9B, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF0, 0x7C, 0x9B, 0x6D, 0xE2, -0x04, 0x4A, 0x00, 0x6C, 0x62, 0xF4, 0x00, 0x72, -0x80, 0xDB, 0xE9, 0x61, 0x20, 0xE8, 0x00, 0x65, -0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, -0x43, 0xF3, 0x44, 0x9A, 0x03, 0x6C, 0x60, 0x9A, +0x10, 0xF0, 0x23, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x09, 0xF5, 0x09, 0x4B, 0x40, 0xF1, 0x68, 0xDA, +0x10, 0xF0, 0x23, 0x6B, 0x40, 0xF1, 0x08, 0x4A, +0xC0, 0xF5, 0x11, 0x4B, 0x61, 0xDA, 0x10, 0xF0, +0x23, 0x6B, 0x69, 0xF5, 0x0D, 0x4B, 0x62, 0xDA, +0x10, 0xF0, 0x23, 0x6B, 0x09, 0xF6, 0x05, 0x4B, +0x63, 0xDA, 0x10, 0xF0, 0x23, 0x6B, 0xC9, 0xF5, +0x11, 0x4B, 0x64, 0xDA, 0x10, 0xF0, 0x23, 0x6B, +0x89, 0xF5, 0x1D, 0x4B, 0x65, 0xDA, 0x10, 0xF0, +0x23, 0x6B, 0x29, 0xF5, 0x1D, 0x4B, 0x66, 0xDA, +0x10, 0xF0, 0x23, 0x6B, 0x09, 0xF5, 0x0D, 0x4B, +0x67, 0xDA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x00, 0x6B, 0x83, 0xF3, +0x70, 0xC2, 0x83, 0xF3, 0x71, 0xC2, 0x83, 0xF3, +0x72, 0xC2, 0x83, 0xF3, 0x73, 0xC2, 0x42, 0xF4, +0x10, 0x6A, 0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x05, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, 0x7C, 0x9B, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, +0x60, 0x9B, 0x6D, 0xE2, 0x04, 0x4A, 0x00, 0x6C, +0x62, 0xF4, 0x00, 0x72, 0x80, 0xDB, 0xE9, 0x61, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF4, 0x4C, 0x9A, +0x03, 0x6C, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF2, 0x40, 0x9A, 0x00, 0xF5, 0x62, 0x33, +0x8C, 0xEB, 0x40, 0x9A, 0x01, 0x73, 0x42, 0x32, +0x52, 0x32, 0x8C, 0xEA, 0x05, 0x60, 0x0B, 0x2B, +0x02, 0x5A, 0x50, 0x6C, 0x0D, 0x60, 0x03, 0x10, +0x02, 0x5A, 0x0A, 0x60, 0x28, 0x6C, 0x87, 0xEA, +0xFF, 0x6A, 0x4C, 0xEC, 0x06, 0x10, 0x02, 0x5A, +0x28, 0x6C, 0x03, 0x60, 0x14, 0x6C, 0x01, 0x10, +0x50, 0x6C, 0x80, 0x18, 0xC5, 0x58, 0x80, 0x18, +0xE6, 0x15, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, +0x60, 0x9B, 0x00, 0x6A, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF0, 0x7C, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x60, 0x9B, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, +0x74, 0x9B, 0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF4, 0x7C, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF1, 0x78, 0x9B, 0x40, 0xDB, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, +0x00, 0x69, 0xA0, 0xF0, 0x24, 0xD8, 0xA0, 0xF1, +0x3C, 0xC0, 0x80, 0x18, 0xC8, 0x55, 0x80, 0x18, +0x37, 0x57, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6C, 0x43, 0xF2, 0x38, 0xC0, 0x2A, 0xF2, +0x18, 0x4A, 0x4A, 0xF2, 0x08, 0x4C, 0x00, 0x6B, +0x60, 0xC2, 0x70, 0xC2, 0x01, 0x4A, 0x62, 0x67, +0x8E, 0xEB, 0xF9, 0x2B, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x00, 0x4A, 0x83, 0xF3, 0x75, 0xC2, 0x83, 0xF3, +0x76, 0xC2, 0x83, 0xF3, 0x77, 0xC2, 0x83, 0xF3, +0x74, 0xC2, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xDF, 0x55, +0x80, 0x18, 0x4C, 0x56, 0x80, 0x18, 0xEC, 0x49, +0x00, 0x18, 0x51, 0xE5, 0x00, 0x18, 0xA9, 0xCB, +0x00, 0x18, 0x3A, 0xC5, 0x80, 0x18, 0x64, 0x0D, +0x80, 0x18, 0xB1, 0x05, 0x80, 0x18, 0xD4, 0x05, +0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, 0x44, 0x9A, +0x40, 0xEA, 0x80, 0x18, 0x8F, 0x53, 0x80, 0x18, +0xA1, 0x3B, 0x00, 0x18, 0x27, 0xDB, 0x00, 0x18, +0x45, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, +0x6C, 0x9A, 0xFF, 0x6C, 0x04, 0x6D, 0x40, 0xA3, +0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x00, 0x6B, 0xA0, 0xF6, 0x7E, 0xC2, 0xA0, 0xF6, +0x7F, 0xC2, 0xA0, 0xF1, 0x7C, 0xC2, 0xA0, 0xF1, +0x7D, 0xC2, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0x08, 0xF1, 0x65, 0xA2, +0x0F, 0x23, 0x08, 0xF1, 0x64, 0xA2, 0x0C, 0x23, +0x08, 0xF1, 0x6A, 0xA2, 0x09, 0x23, 0x08, 0xF1, +0x66, 0xA2, 0x06, 0x23, 0x08, 0xF1, 0x68, 0xA2, +0x03, 0x23, 0x08, 0xF1, 0x47, 0xA2, 0x1E, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x60, 0x9A, +0xFF, 0xF7, 0x1F, 0x6C, 0x10, 0xF0, 0x00, 0x6D, +0x40, 0xAB, 0xAB, 0xED, 0x8C, 0xEA, 0xAD, 0xEA, +0x8C, 0xEA, 0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF5, 0x44, 0x9A, 0x00, 0x6B, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, 0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, 0x5C, 0x9A, -0x00, 0xF5, 0x62, 0x33, 0x8C, 0xEB, 0x40, 0x9A, -0x01, 0x73, 0x42, 0x32, 0x52, 0x32, 0x8C, 0xEA, -0x05, 0x60, 0x0B, 0x2B, 0x02, 0x5A, 0x50, 0x6C, -0x0D, 0x60, 0x03, 0x10, 0x02, 0x5A, 0x0A, 0x60, -0x28, 0x6C, 0x87, 0xEA, 0xFF, 0x6A, 0x4C, 0xEC, -0x06, 0x10, 0x02, 0x5A, 0x28, 0x6C, 0x03, 0x60, -0x14, 0x6C, 0x01, 0x10, 0x50, 0x6C, 0x80, 0x18, -0xB4, 0x58, 0x80, 0x18, 0x6F, 0x15, 0x30, 0xF0, -0x20, 0x6B, 0x03, 0xF1, 0x7C, 0x9B, 0x00, 0x6A, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, -0x7C, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF2, 0x78, 0x9B, 0x40, 0xC3, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF2, 0x6C, 0x9B, 0x40, 0xCB, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0x74, 0x9B, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, -0x74, 0x9B, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0x46, 0xF5, 0x18, 0x48, 0x00, 0x69, 0xA0, 0xF0, -0x24, 0xD8, 0xA0, 0xF1, 0x35, 0xC0, 0x80, 0x18, -0xBA, 0x55, 0x80, 0x18, 0x26, 0x57, 0x30, 0xF0, -0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF2, -0x34, 0xC0, 0xEA, 0xF0, 0x0C, 0x4A, 0xEA, 0xF0, -0x1C, 0x4C, 0x00, 0x6B, 0x60, 0xC2, 0x70, 0xC2, -0x01, 0x4A, 0x62, 0x67, 0x8E, 0xEB, 0xF9, 0x2B, -0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x30, 0xF0, -0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, 0x83, 0xF3, -0x71, 0xC2, 0x83, 0xF3, 0x72, 0xC2, 0x83, 0xF3, -0x73, 0xC2, 0x83, 0xF3, 0x70, 0xC2, 0x04, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x80, 0x18, 0xCE, 0x55, 0x80, 0x18, 0x3B, 0x56, -0x80, 0x18, 0x54, 0x48, 0x00, 0x18, 0x3E, 0xE6, -0x00, 0x18, 0xA8, 0xCC, 0x00, 0x18, 0x45, 0xC6, -0x80, 0x18, 0x24, 0x0D, 0x80, 0x18, 0xB2, 0x05, -0x80, 0x18, 0xD5, 0x05, 0x30, 0xF0, 0x20, 0x6A, -0x60, 0xF4, 0x44, 0x9A, 0x40, 0xEA, 0x80, 0x18, -0x81, 0x53, 0x80, 0x18, 0x53, 0x38, 0x00, 0x18, -0x14, 0xDC, 0x00, 0x18, 0x32, 0xDC, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF1, 0x68, 0x9A, 0xFF, 0x6C, -0x04, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, -0x8C, 0xEA, 0x40, 0xC3, 0x05, 0x97, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x00, 0x6B, 0xA0, 0xF6, -0x78, 0xC2, 0xA0, 0xF6, 0x79, 0xC2, 0xA0, 0xF1, -0x75, 0xC2, 0xA0, 0xF1, 0x76, 0xC2, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xE8, 0xF0, 0x7D, 0xA2, 0x0F, 0x23, 0xE8, 0xF0, -0x7C, 0xA2, 0x0C, 0x23, 0x08, 0xF1, 0x62, 0xA2, -0x09, 0x23, 0xE8, 0xF0, 0x7E, 0xA2, 0x06, 0x23, -0x08, 0xF1, 0x60, 0xA2, 0x03, 0x23, 0xE8, 0xF0, -0x5F, 0xA2, 0x1E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, -0xE3, 0xF0, 0x7C, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, -0x10, 0xF0, 0x00, 0x6D, 0x40, 0xAB, 0xAB, 0xED, -0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xCB, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF4, 0x4C, 0x9A, -0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF6, 0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6A, -0xC2, 0xF7, 0x5C, 0x9A, 0x60, 0xDA, 0xF0, 0x17, -0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, -0xC0, 0xF3, 0x48, 0x98, 0x0A, 0xD4, 0x04, 0x05, -0xE0, 0xF1, 0x14, 0x6C, 0x40, 0xEA, 0x7D, 0x67, -0x50, 0xA3, 0x0A, 0x95, 0xE0, 0xF1, 0x15, 0x6C, -0x30, 0xF0, 0x20, 0x69, 0x40, 0xC5, 0xC0, 0xF3, -0x48, 0x98, 0x04, 0x05, 0x46, 0xF5, 0x18, 0x49, -0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x0A, 0x95, -0xE0, 0xF1, 0x16, 0x6C, 0x41, 0xC5, 0xC0, 0xF3, -0x48, 0x98, 0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, -0x50, 0xA3, 0x0A, 0x95, 0xE0, 0xF1, 0x17, 0x6C, -0x42, 0xC5, 0xC0, 0xF3, 0x48, 0x98, 0x04, 0x05, -0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x0A, 0x95, -0xE0, 0xF1, 0x18, 0x6C, 0x43, 0xC5, 0xC0, 0xF3, -0x48, 0x98, 0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, -0x50, 0xA3, 0x0A, 0x95, 0xE0, 0xF1, 0x19, 0x6C, -0x44, 0xC5, 0xC0, 0xF3, 0x48, 0x98, 0x04, 0x05, -0x40, 0xEA, 0xBD, 0x67, 0x90, 0xA5, 0x08, 0xF1, -0x40, 0xA1, 0x0F, 0x6B, 0x8C, 0xEB, 0x50, 0x32, -0x6D, 0xEA, 0x0A, 0x93, 0x04, 0x05, 0xE0, 0xF1, -0x1B, 0x6C, 0x45, 0xC3, 0xC0, 0xF3, 0x48, 0x98, -0x40, 0xEA, 0x08, 0xF1, 0x42, 0xA1, 0xE8, 0xF0, -0x7D, 0xA1, 0x0A, 0x95, 0x4C, 0x32, 0x74, 0x33, -0x6D, 0xEA, 0xE8, 0xF0, 0x7C, 0xA1, 0x6D, 0xEA, -0x46, 0xC5, 0xE8, 0xF0, 0x5E, 0xA1, 0xE8, 0xF0, -0x7F, 0xA1, 0x48, 0x32, 0x78, 0x33, 0x6D, 0xEA, -0x33, 0x6B, 0x6D, 0xEA, 0x47, 0xC5, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0x60, 0xDA, 0xF0, 0x17, 0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x48, 0x98, -0x24, 0x67, 0x04, 0x05, 0xE0, 0xF1, 0x10, 0x6C, -0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x04, 0x05, -0xE0, 0xF1, 0x11, 0x6C, 0x40, 0xC1, 0xC0, 0xF3, -0x48, 0x98, 0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, -0x04, 0x05, 0xE0, 0xF1, 0x12, 0x6C, 0x41, 0xC1, -0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, 0x7D, 0x67, -0x50, 0xA3, 0x04, 0x05, 0xE0, 0xF1, 0x13, 0x6C, -0x42, 0xC1, 0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, +0x0A, 0xD4, 0x04, 0x05, 0xE0, 0xF1, 0x14, 0x6C, +0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x0A, 0x95, +0xE0, 0xF1, 0x15, 0x6C, 0x30, 0xF0, 0x20, 0x69, +0x40, 0xC5, 0xC0, 0xF3, 0x48, 0x98, 0x04, 0x05, +0xA6, 0xF6, 0x00, 0x49, 0x40, 0xEA, 0x7D, 0x67, +0x50, 0xA3, 0x0A, 0x95, 0xE0, 0xF1, 0x16, 0x6C, +0x41, 0xC5, 0xC0, 0xF3, 0x48, 0x98, 0x04, 0x05, +0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x0A, 0x95, +0xE0, 0xF1, 0x17, 0x6C, 0x42, 0xC5, 0xC0, 0xF3, +0x48, 0x98, 0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, +0x50, 0xA3, 0x0A, 0x95, 0xE0, 0xF1, 0x18, 0x6C, +0x43, 0xC5, 0xC0, 0xF3, 0x48, 0x98, 0x04, 0x05, +0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x0A, 0x95, +0xE0, 0xF1, 0x19, 0x6C, 0x44, 0xC5, 0xC0, 0xF3, +0x48, 0x98, 0x04, 0x05, 0x40, 0xEA, 0xBD, 0x67, +0x90, 0xA5, 0x08, 0xF1, 0x48, 0xA1, 0x0F, 0x6B, +0x8C, 0xEB, 0x50, 0x32, 0x6D, 0xEA, 0x0A, 0x93, +0x04, 0x05, 0xE0, 0xF1, 0x1B, 0x6C, 0x45, 0xC3, +0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, 0x08, 0xF1, +0x4A, 0xA1, 0x08, 0xF1, 0x65, 0xA1, 0x0A, 0x95, +0x4C, 0x32, 0x74, 0x33, 0x6D, 0xEA, 0x08, 0xF1, +0x64, 0xA1, 0x6D, 0xEA, 0x46, 0xC5, 0x08, 0xF1, +0x46, 0xA1, 0x08, 0xF1, 0x67, 0xA1, 0x48, 0x32, +0x78, 0x33, 0x6D, 0xEA, 0x33, 0x6B, 0x6D, 0xEA, +0x47, 0xC5, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x48, 0x98, 0x24, 0x67, 0x04, 0x05, +0xE0, 0xF1, 0x10, 0x6C, 0x40, 0xEA, 0x7D, 0x67, +0x50, 0xA3, 0x04, 0x05, 0xE0, 0xF1, 0x11, 0x6C, +0x40, 0xC1, 0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x04, 0x05, 0xE0, 0xF1, -0x1C, 0x6C, 0x43, 0xC1, 0xC0, 0xF3, 0x48, 0x98, +0x12, 0x6C, 0x41, 0xC1, 0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x04, 0x05, -0xE0, 0xF1, 0x1D, 0x6C, 0x44, 0xC1, 0xC0, 0xF3, +0xE0, 0xF1, 0x13, 0x6C, 0x42, 0xC1, 0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, -0x04, 0x05, 0xE0, 0xF1, 0x1E, 0x6C, 0x45, 0xC1, +0x04, 0x05, 0xE0, 0xF1, 0x1C, 0x6C, 0x43, 0xC1, 0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, 0x7D, 0x67, -0x50, 0xA3, 0xE0, 0xF1, 0x1F, 0x6C, 0x04, 0x05, -0x46, 0xC1, 0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, -0x7D, 0x67, 0x50, 0xA3, 0x47, 0xC1, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD0, 0x04, 0x00, -0x90, 0x67, 0x80, 0x18, 0x5D, 0x56, 0xA0, 0xF1, -0x02, 0x6A, 0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, -0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x05, 0x2B, -0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0x78, 0x9B, -0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, -0x7C, 0x9B, 0x80, 0xA0, 0x6D, 0xE2, 0x01, 0x4A, -0xA0, 0xF1, 0x0A, 0x72, 0x80, 0xC3, 0x01, 0x48, -0xE8, 0x61, 0x04, 0x00, 0x90, 0x67, 0x80, 0x18, -0x94, 0x56, 0xA0, 0xF1, 0x0A, 0x6A, 0x1F, 0xF7, +0x50, 0xA3, 0x04, 0x05, 0xE0, 0xF1, 0x1D, 0x6C, +0x44, 0xC1, 0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, +0x7D, 0x67, 0x50, 0xA3, 0x04, 0x05, 0xE0, 0xF1, +0x1E, 0x6C, 0x45, 0xC1, 0xC0, 0xF3, 0x48, 0x98, +0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0xE0, 0xF1, +0x1F, 0x6C, 0x04, 0x05, 0x46, 0xC1, 0xC0, 0xF3, +0x48, 0x98, 0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, +0x47, 0xC1, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD0, 0x04, 0x00, 0x90, 0x67, 0x80, 0x18, +0x6E, 0x56, 0xA0, 0xF1, 0x02, 0x6A, 0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, -0x23, 0xF0, 0x78, 0x9B, 0x04, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x23, 0xF0, 0x7C, 0x9B, 0x80, 0xA0, -0x6D, 0xE2, 0x01, 0x4A, 0xA0, 0xF1, 0x0F, 0x72, -0x80, 0xC3, 0x01, 0x48, 0xE8, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x83, 0xF6, 0x4C, 0x9A, 0x19, 0x6B, -0x60, 0xC2, 0x09, 0x97, 0x08, 0x90, 0x05, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, -0x06, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, -0x18, 0x48, 0xE8, 0xF0, 0x5C, 0xA0, 0x0E, 0x2A, -0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, -0xE0, 0xF1, 0x1A, 0x6C, 0x04, 0x05, 0x40, 0xEA, -0x9D, 0x67, 0x70, 0xA4, 0x07, 0x6A, 0x6C, 0xEA, -0xE8, 0xF0, 0x5C, 0xC0, 0x30, 0xF0, 0x20, 0x68, -0x46, 0xF5, 0x18, 0x48, 0xE8, 0xF0, 0x5D, 0xA0, +0x43, 0xF1, 0x7C, 0x9B, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF1, 0x60, 0x9B, 0x80, 0xA0, +0x6D, 0xE2, 0x01, 0x4A, 0xA0, 0xF1, 0x0A, 0x72, +0x80, 0xC3, 0x01, 0x48, 0xE8, 0x61, 0x04, 0x00, +0x90, 0x67, 0x80, 0x18, 0xA5, 0x56, 0xA0, 0xF1, +0x0A, 0x6A, 0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x05, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, 0x7C, 0x9B, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, +0x60, 0x9B, 0x80, 0xA0, 0x6D, 0xE2, 0x01, 0x4A, +0xA0, 0xF1, 0x0F, 0x72, 0x80, 0xC3, 0x01, 0x48, +0xE8, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, +0x58, 0x9A, 0x19, 0x6B, 0x60, 0xC2, 0x09, 0x97, +0x08, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, 0x08, 0xF1, +0x44, 0xA0, 0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, 0x1A, 0x6C, +0x04, 0x05, 0x40, 0xEA, 0x9D, 0x67, 0x70, 0xA4, +0x07, 0x6A, 0x6C, 0xEA, 0x08, 0xF1, 0x44, 0xC0, +0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, +0x08, 0xF1, 0x45, 0xA0, 0x0D, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, +0x1A, 0x6C, 0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, +0x50, 0xA3, 0x56, 0x32, 0x08, 0xF1, 0x45, 0xC0, +0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, +0x08, 0xF1, 0x4A, 0xA0, 0x0F, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, +0x1A, 0x6C, 0x04, 0x05, 0x40, 0xEA, 0x9D, 0x67, +0x50, 0xA4, 0x18, 0x6B, 0x6C, 0xEA, 0x4F, 0x32, +0x08, 0xF1, 0x4A, 0xC0, 0x30, 0xF0, 0x20, 0x68, +0xA6, 0xF6, 0x00, 0x48, 0x08, 0xF1, 0x48, 0xA0, 0x0D, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x48, 0x9A, 0xE0, 0xF1, 0x1A, 0x6C, 0x04, 0x05, -0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x56, 0x32, -0xE8, 0xF0, 0x5D, 0xC0, 0x30, 0xF0, 0x20, 0x68, -0x46, 0xF5, 0x18, 0x48, 0x08, 0xF1, 0x42, 0xA0, -0x0F, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, -0x48, 0x9A, 0xE0, 0xF1, 0x1A, 0x6C, 0x04, 0x05, -0x40, 0xEA, 0x9D, 0x67, 0x50, 0xA4, 0x18, 0x6B, -0x6C, 0xEA, 0x4F, 0x32, 0x08, 0xF1, 0x42, 0xC0, -0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, -0x08, 0xF1, 0x40, 0xA0, 0x0D, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, -0x1C, 0x6C, 0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, -0x50, 0xA3, 0x52, 0x32, 0x08, 0xF1, 0x40, 0xC0, -0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, 0x18, 0x48, -0xE8, 0xF0, 0x5E, 0xA0, 0x0E, 0x2A, 0x30, 0xF0, -0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, -0x1D, 0x6C, 0x04, 0x05, 0x40, 0xEA, 0x9D, 0x67, -0x70, 0xA4, 0x03, 0x6A, 0x6C, 0xEA, 0xE8, 0xF0, -0x5E, 0xC0, 0x30, 0xF0, 0x20, 0x68, 0x46, 0xF5, -0x18, 0x48, 0xE8, 0xF0, 0x5F, 0xA0, 0x0F, 0x2A, +0x48, 0x9A, 0xE0, 0xF1, 0x1C, 0x6C, 0x04, 0x05, +0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x52, 0x32, +0x08, 0xF1, 0x48, 0xC0, 0x30, 0xF0, 0x20, 0x68, +0xA6, 0xF6, 0x00, 0x48, 0x08, 0xF1, 0x46, 0xA0, +0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x48, 0x9A, 0xE0, 0xF1, 0x1D, 0x6C, 0x04, 0x05, +0x40, 0xEA, 0x9D, 0x67, 0x70, 0xA4, 0x03, 0x6A, +0x6C, 0xEA, 0x08, 0xF1, 0x46, 0xC0, 0x30, 0xF0, +0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, 0x08, 0xF1, +0x47, 0xA0, 0x0F, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, 0x1D, 0x6C, +0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, +0x30, 0x6B, 0x6C, 0xEA, 0x53, 0x32, 0x08, 0xF1, +0x47, 0xC0, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x48, 0x99, 0xE0, 0xF1, 0x19, 0x6C, +0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, +0x30, 0xF0, 0x20, 0x68, 0xA6, 0xF6, 0x00, 0x48, +0x52, 0x32, 0x08, 0xF1, 0x48, 0xC0, 0xC0, 0xF3, +0x48, 0x99, 0xE0, 0xF1, 0x1B, 0x6C, 0x04, 0x05, +0x40, 0xEA, 0x9D, 0x67, 0x70, 0xA4, 0x07, 0x6A, +0x6C, 0xEA, 0x08, 0xF1, 0x44, 0xC0, 0x43, 0x67, +0x18, 0x6B, 0x4C, 0xEB, 0x6F, 0x33, 0x08, 0xF1, +0x6A, 0xC0, 0x4F, 0x72, 0x56, 0x33, 0x08, 0xF1, +0x65, 0xC0, 0x0E, 0x61, 0xC0, 0xF3, 0x48, 0x99, +0xE0, 0xF1, 0x1A, 0x6C, 0x00, 0xF0, 0x11, 0x05, +0x40, 0xEA, 0x7D, 0x67, 0x51, 0xA3, 0x57, 0x72, +0x03, 0x61, 0x02, 0x6A, 0x08, 0xF1, 0x4A, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, 0x1D, 0x6C, 0x04, 0x05, 0x40, 0xEA, -0x7D, 0x67, 0x50, 0xA3, 0x30, 0x6B, 0x6C, 0xEA, -0x53, 0x32, 0xE8, 0xF0, 0x5F, 0xC0, 0x07, 0x97, -0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, -0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, -0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x48, 0x99, -0xE0, 0xF1, 0x19, 0x6C, 0x04, 0x05, 0x40, 0xEA, -0x7D, 0x67, 0x50, 0xA3, 0x30, 0xF0, 0x20, 0x68, -0x46, 0xF5, 0x18, 0x48, 0x52, 0x32, 0x08, 0xF1, -0x40, 0xC0, 0xC0, 0xF3, 0x48, 0x99, 0xE0, 0xF1, -0x1B, 0x6C, 0x04, 0x05, 0x40, 0xEA, 0x9D, 0x67, -0x70, 0xA4, 0x07, 0x6A, 0x6C, 0xEA, 0xE8, 0xF0, -0x5C, 0xC0, 0x43, 0x67, 0x18, 0x6B, 0x4C, 0xEB, -0x6F, 0x33, 0x08, 0xF1, 0x62, 0xC0, 0x4F, 0x72, -0x56, 0x33, 0xE8, 0xF0, 0x7D, 0xC0, 0x0E, 0x61, -0xC0, 0xF3, 0x48, 0x99, 0xE0, 0xF1, 0x1A, 0x6C, -0x00, 0xF0, 0x11, 0x05, 0x40, 0xEA, 0x7D, 0x67, -0x51, 0xA3, 0x57, 0x72, 0x03, 0x61, 0x02, 0x6A, -0x08, 0xF1, 0x42, 0xC0, 0x30, 0xF0, 0x20, 0x6A, -0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, 0x1D, 0x6C, -0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, 0x90, 0xA3, -0x0C, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x8C, 0xEB, -0x46, 0xF5, 0x18, 0x4A, 0x6B, 0x33, 0x9A, 0x34, -0xE8, 0xF0, 0x7E, 0xC2, 0xE8, 0xF0, 0x9F, 0xC2, -0x80, 0x18, 0xE3, 0x56, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF6, 0x4C, 0x9A, 0x60, 0xA2, 0xFF, 0x6A, -0x6C, 0xEA, 0xFD, 0x72, 0x02, 0x61, 0x80, 0x18, -0xBE, 0x56, 0x80, 0x18, 0x42, 0x56, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, 0x58, 0x9A, -0x01, 0x6B, 0x60, 0xC2, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, 0x9C, 0x9A, -0xFF, 0x6B, 0x20, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, -0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x30, 0xF0, -0x20, 0x6A, 0xE2, 0xF7, 0x9C, 0x9A, 0x08, 0x6D, +0x7D, 0x67, 0x90, 0xA3, 0x0C, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x8C, 0xEB, 0xA6, 0xF6, 0x00, 0x4A, +0x6B, 0x33, 0x9A, 0x34, 0x08, 0xF1, 0x66, 0xC2, +0x08, 0xF1, 0x87, 0xC2, 0x80, 0x18, 0xF4, 0x56, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, 0x58, 0x9A, +0x60, 0xA2, 0xFF, 0x6A, 0x6C, 0xEA, 0xFD, 0x72, +0x02, 0x61, 0x80, 0x18, 0xCF, 0x56, 0x80, 0x18, +0x53, 0x56, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0xF0, 0x44, 0x9A, 0x01, 0x6B, 0x60, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0xF0, 0x88, 0x9A, 0xFF, 0x6B, 0x20, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, -0x40, 0xC4, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF6, 0x60, 0x9A, 0xFD, 0x6A, 0xFF, 0x6C, -0xA0, 0xA3, 0xAC, 0xEA, 0x40, 0xC3, 0x40, 0xA3, -0x01, 0x6D, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, -0x40, 0xC3, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF2, 0x48, 0x9A, 0xA3, 0xF0, 0x88, 0x9B, -0x00, 0x6D, 0x02, 0xF0, 0x00, 0x6E, 0x40, 0xEA, -0x00, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, -0x68, 0x9B, 0x54, 0x34, 0x01, 0x4A, 0x6D, 0xE4, -0x80, 0x72, 0x04, 0x6C, 0x80, 0xC3, 0xF5, 0x61, -0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, -0xC3, 0xF6, 0x84, 0x9B, 0x80, 0xF2, 0x48, 0x9A, -0x00, 0x6D, 0x00, 0xF4, 0x00, 0x6E, 0x40, 0xEA, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, -0x52, 0x9B, 0x8D, 0xEA, 0x52, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0xC3, 0xF6, 0x68, 0x9B, 0x80, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0x68, 0x9B, -0x40, 0xDB, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, -0x46, 0xF5, 0x18, 0x4B, 0xB2, 0x9B, 0x8F, 0xEA, -0xAC, 0xEA, 0x52, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF0, 0x68, 0x9B, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF6, 0x48, 0x9A, 0x80, 0xDA, -0x20, 0xE8, 0x00, 0x65, 0x05, 0x5C, 0x5E, 0x60, -0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, 0x82, 0xF6, -0x1C, 0x4A, 0x89, 0xE2, 0x40, 0x9A, 0x00, 0xEA, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x58, 0x9B, -0xAD, 0xEA, 0x46, 0xF5, 0x58, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF6, 0x74, 0x9B, 0xA0, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, 0x68, 0x9B, -0x32, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, -0x18, 0x4B, 0x41, 0x9B, 0xAD, 0xEA, 0x41, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, 0x70, 0x9B, -0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, -0x6C, 0x9B, 0x21, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x46, 0xF5, 0x18, 0x4B, 0x42, 0x9B, 0xAD, 0xEA, -0x42, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF6, -0x6C, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF0, 0x70, 0x9B, 0x10, 0x10, 0x30, 0xF0, -0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, 0x43, 0x9B, -0xAD, 0xEA, 0x43, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF6, 0x70, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF0, 0x78, 0x9B, 0x40, 0xDB, -0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, -0x18, 0x4B, 0x44, 0x9B, 0xAD, 0xEA, 0x44, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF6, 0x74, 0x9B, -0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, -0x7C, 0x9B, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, -0x05, 0x5C, 0x63, 0x60, 0x30, 0xF0, 0x20, 0x6A, -0x88, 0x34, 0xA2, 0xF6, 0x10, 0x4A, 0x89, 0xE2, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, +0x80, 0x9A, 0x08, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, +0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF0, 0x6C, 0x9A, +0xFD, 0x6A, 0xFF, 0x6C, 0xA0, 0xA3, 0xAC, 0xEA, +0x40, 0xC3, 0x40, 0xA3, 0x01, 0x6D, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, +0xC3, 0xF1, 0x8C, 0x9B, 0x00, 0x6D, 0x02, 0xF0, +0x00, 0x6E, 0x40, 0xEA, 0x00, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF1, 0x6C, 0x9B, 0x54, 0x34, +0x01, 0x4A, 0x6D, 0xE4, 0x80, 0x72, 0x04, 0x6C, +0x80, 0xC3, 0xF5, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF0, 0x90, 0x9B, +0x80, 0xF2, 0x48, 0x9A, 0x00, 0x6D, 0x00, 0xF4, +0x00, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0x52, 0x9B, 0x8D, 0xEA, +0x52, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF0, +0x74, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF1, 0x6C, 0x9B, 0x40, 0xDB, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, +0xB2, 0x9B, 0x8F, 0xEA, 0xAC, 0xEA, 0x52, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0x6C, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF0, +0x54, 0x9A, 0x80, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0x05, 0x5C, 0x5E, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x88, 0x34, 0xA2, 0xF7, 0x1C, 0x4A, 0x89, 0xE2, 0x40, 0x9A, 0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6B, -0x46, 0xF5, 0x98, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, -0x46, 0xF5, 0x58, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF0, 0x68, 0x9B, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF6, 0x54, 0x9A, 0x35, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, -0x81, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x41, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, 0x6C, 0x9B, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, -0x50, 0x9A, 0x23, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x46, 0xF5, 0x18, 0x4B, 0x82, 0x9B, 0xAF, 0xEA, -0x8C, 0xEA, 0x42, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF0, 0x70, 0x9B, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF6, 0x4C, 0x9A, 0x11, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, -0x83, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x43, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, 0x78, 0x9B, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, -0x50, 0x9A, 0xA0, 0xDA, 0x20, 0xE8, 0x30, 0xF0, -0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, 0x84, 0x9B, -0xAF, 0xEA, 0x8C, 0xEA, 0x44, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF0, 0x7C, 0x9B, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, 0x54, 0x9A, -0xA0, 0xDA, 0x20, 0xE8, 0x01, 0x74, 0x15, 0x60, -0x03, 0x24, 0x02, 0x74, 0x23, 0x60, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, -0x54, 0x9B, 0xAD, 0xEA, 0x54, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF1, 0x78, 0x9B, 0xA0, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0x6C, 0x9B, -0x21, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, -0x18, 0x4B, 0x55, 0x9B, 0xAD, 0xEA, 0x55, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF6, 0x78, 0x9B, -0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, -0x60, 0x9B, 0x10, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x46, 0xF5, 0x18, 0x4B, 0x56, 0x9B, 0xAD, 0xEA, -0x56, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF6, -0x7C, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF0, 0x64, 0x9B, 0x40, 0xDB, 0x20, 0xE8, -0x01, 0x74, 0x16, 0x60, 0x03, 0x24, 0x02, 0x74, -0x25, 0x60, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, -0x46, 0xF5, 0x18, 0x4B, 0x94, 0x9B, 0xAF, 0xEA, -0x8C, 0xEA, 0x54, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF0, 0x6C, 0x9B, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x43, 0xF1, 0x58, 0x9A, 0x23, 0x10, -0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF5, 0x18, 0x4B, -0x95, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x55, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0x60, 0x9B, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, +0xA6, 0xF6, 0x40, 0x9B, 0xAD, 0xEA, 0xA6, 0xF6, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF7, +0x60, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF1, 0x6C, 0x9B, 0x32, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, 0x41, 0x9B, +0xAD, 0xEA, 0x41, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF3, 0x74, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF1, 0x70, 0x9B, 0x21, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, +0x42, 0x9B, 0xAD, 0xEA, 0x42, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x04, 0xF0, 0x78, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, 0x74, 0x9B, +0x10, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, +0x00, 0x4B, 0x43, 0x9B, 0xAD, 0xEA, 0x43, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF0, 0x7C, 0x9B, +0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, +0x7C, 0x9B, 0x40, 0xDB, 0x20, 0xE8, 0x30, 0xF0, +0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, 0x44, 0x9B, +0xAD, 0xEA, 0x44, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x24, 0xF0, 0x60, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF1, 0x60, 0x9B, 0x40, 0xDB, +0x20, 0xE8, 0x00, 0x65, 0x05, 0x5C, 0x63, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, 0xC2, 0xF7, +0x10, 0x4A, 0x89, 0xE2, 0x40, 0x9A, 0x00, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, 0x80, 0x9B, +0xAF, 0xEA, 0x8C, 0xEA, 0xA6, 0xF6, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, 0x6C, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, +0x40, 0x9A, 0x35, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0x81, 0x9B, 0xAF, 0xEA, +0x8C, 0xEA, 0x41, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF1, 0x70, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF3, 0x54, 0x9A, 0x23, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, +0x82, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x42, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, 0x74, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF0, 0x58, 0x9A, 0x11, 0x10, 0x30, 0xF0, 0x20, 0x6B, -0x46, 0xF5, 0x18, 0x4B, 0x96, 0x9B, 0xAF, 0xEA, -0x8C, 0xEA, 0x56, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x83, 0xF0, 0x64, 0x9B, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0xC3, 0xF6, 0x5C, 0x9A, 0xA0, 0xDA, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6C, -0x63, 0xF0, 0x88, 0x9C, 0x00, 0x6A, 0x30, 0xF0, -0x20, 0x6B, 0x46, 0xF5, 0x58, 0xDB, 0x46, 0xF5, -0x18, 0x4B, 0x41, 0xDB, 0x42, 0xDB, 0x43, 0xDB, -0x44, 0xDB, 0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, -0x63, 0xF0, 0x8C, 0x9C, 0x40, 0xDC, 0x30, 0xF0, -0x20, 0x6C, 0x63, 0xF0, 0x90, 0x9C, 0x40, 0xDC, -0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF0, 0x98, 0x9C, -0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF0, -0x9C, 0x9C, 0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, -0x83, 0xF0, 0x8C, 0x9C, 0x54, 0xDB, 0x55, 0xDB, -0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF0, -0x80, 0x9C, 0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, -0x83, 0xF0, 0x84, 0x9C, 0x56, 0xDB, 0x40, 0xDC, -0x52, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, -0x68, 0x9B, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF6, 0x74, 0x9B, -0x01, 0x6A, 0x4B, 0xEA, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF2, 0x70, 0x9B, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF6, 0x6C, 0x9B, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF6, -0x70, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF6, 0x74, 0x9B, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0x43, 0xF1, 0x78, 0x9B, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF6, 0x78, 0x9B, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF6, +0xA6, 0xF6, 0x00, 0x4B, 0x83, 0x9B, 0xAF, 0xEA, +0x8C, 0xEA, 0x43, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF1, 0x7C, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x04, 0xF0, 0x5C, 0x9A, 0xA0, 0xDA, +0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, +0x00, 0x4B, 0x84, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, +0x44, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, +0x60, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x24, 0xF0, 0x40, 0x9A, 0xA0, 0xDA, 0x20, 0xE8, +0x01, 0x74, 0x15, 0x60, 0x03, 0x24, 0x02, 0x74, +0x23, 0x60, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0x54, 0x9B, 0xAD, 0xEA, +0x54, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, +0x7C, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF1, 0x70, 0x9B, 0x21, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, 0x55, 0x9B, +0xAD, 0xEA, 0x55, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x24, 0xF0, 0x64, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF1, 0x64, 0x9B, 0x10, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, +0x56, 0x9B, 0xAD, 0xEA, 0x56, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x24, 0xF0, 0x68, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0x68, 0x9B, +0x40, 0xDB, 0x20, 0xE8, 0x01, 0x74, 0x16, 0x60, +0x03, 0x24, 0x02, 0x74, 0x25, 0x60, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, +0x94, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x54, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0x70, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, +0x5C, 0x9A, 0x23, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xA6, 0xF6, 0x00, 0x4B, 0x95, 0x9B, 0xAF, 0xEA, +0x8C, 0xEA, 0x55, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF1, 0x64, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x24, 0xF0, 0x44, 0x9A, 0x11, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, +0x96, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x56, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0x68, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, +0x48, 0x9A, 0xA0, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF1, 0x8C, 0x9C, +0x00, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, +0x40, 0xDB, 0xA6, 0xF6, 0x00, 0x4B, 0x41, 0xDB, +0x42, 0xDB, 0x43, 0xDB, 0x44, 0xDB, 0x40, 0xDC, +0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF1, 0x90, 0x9C, +0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF1, +0x94, 0x9C, 0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, +0x83, 0xF1, 0x9C, 0x9C, 0x40, 0xDC, 0x30, 0xF0, +0x20, 0x6C, 0xA3, 0xF1, 0x80, 0x9C, 0x40, 0xDC, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF1, 0x90, 0x9C, +0x54, 0xDB, 0x55, 0xDB, 0x40, 0xDC, 0x30, 0xF0, +0x20, 0x6C, 0xA3, 0xF1, 0x84, 0x9C, 0x40, 0xDC, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF1, 0x88, 0x9C, +0x56, 0xDB, 0x40, 0xDC, 0x52, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF1, 0x6C, 0x9B, 0x40, 0xDB, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF7, 0x60, 0x9B, 0x01, 0x6A, 0x4B, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, +0x74, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x04, 0xF0, 0x78, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x04, 0xF0, 0x7C, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x24, 0xF0, 0x60, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0x7C, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0xC3, 0xF6, 0x68, 0x9B, 0x40, 0xDB, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF6, 0xA0, 0x9A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF3, 0x10, 0x6E, -0x46, 0xF5, 0xD8, 0xDB, 0x01, 0xF7, 0x01, 0x6A, -0x46, 0xF5, 0x18, 0x4B, 0x00, 0x6C, 0x42, 0xDB, -0x43, 0xDB, 0xA1, 0xDB, 0x84, 0xDB, 0x30, 0xF0, -0x20, 0x6B, 0x63, 0xF0, 0x68, 0x9B, 0xC0, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, 0x6C, 0x9B, -0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, -0x70, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, -0x63, 0xF0, 0x78, 0x9B, 0x40, 0xDB, 0x30, 0xF0, -0x20, 0x6A, 0x63, 0xF0, 0x5C, 0x9A, 0x80, 0xDA, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x00, 0x6B, 0x72, 0xDA, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, 0x48, 0x9A, -0x60, 0xDA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, -0xE3, 0xF6, 0x84, 0x9B, 0x30, 0xF0, 0x20, 0x6A, -0x46, 0xF5, 0x18, 0x4A, 0x80, 0xF1, 0x0E, 0x6D, -0xFF, 0x6B, 0xB4, 0xDA, 0x95, 0xDA, 0x76, 0xDA, -0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, 0x4C, 0x9A, -0xA0, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, -0x40, 0x9A, 0x80, 0xDA, 0x30, 0xF0, 0x20, 0x6A, -0x83, 0xF0, 0x44, 0x9A, 0x60, 0xDA, 0x20, 0xE8, -0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0x37, 0x58, -0x80, 0x18, 0x56, 0x58, 0x80, 0x18, 0x6E, 0x58, -0x80, 0x18, 0x8B, 0x58, 0x80, 0x18, 0x85, 0x58, -0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, -0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x80, 0x18, 0xC8, 0x58, 0x30, 0xF0, 0x20, 0x6B, -0x46, 0xF5, 0x18, 0x4B, 0x42, 0xF6, 0x4C, 0xC3, -0x00, 0x6A, 0x42, 0xF6, 0x4D, 0xC3, 0x80, 0x18, -0x67, 0x57, 0x80, 0x18, 0x55, 0x5A, 0x30, 0xF0, -0x20, 0x6A, 0xE3, 0xF6, 0x48, 0x9A, 0x3F, 0x6B, -0x60, 0xC2, 0x80, 0x18, 0x58, 0x57, 0x80, 0x18, -0x5C, 0x57, 0x80, 0x18, 0xDE, 0x39, 0x80, 0x18, -0x6F, 0x57, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0xD4, 0xD4, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x44, 0x9A, -0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, 0x44, 0x9A, -0xE0, 0xF1, 0x1B, 0x6B, 0x6B, 0xEB, 0x60, 0xCA, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, 0x68, 0x9A, -0xFB, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, 0x6C, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF3, 0x8C, 0x9C, -0x40, 0x9B, 0x8C, 0xEA, 0x40, 0xDB, 0x20, 0xE8, -0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF7, 0x44, 0x9A, -0xFF, 0xF7, 0x1F, 0x6B, 0x40, 0xAA, 0x4C, 0xEB, -0x62, 0x33, 0x03, 0x6A, 0x72, 0x33, 0x4C, 0xEB, -0x02, 0x6A, 0x04, 0x23, 0x01, 0x73, 0x01, 0x6A, -0x01, 0x60, 0x03, 0x6A, 0x20, 0xE8, 0x00, 0x65, -0x10, 0xF0, 0x23, 0x6A, 0xAA, 0xF4, 0x01, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, 0x48, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xAA, 0xF4, 0x15, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, 0x4C, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0xEC, 0xF2, 0x09, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, 0x50, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xAE, 0xF7, 0x11, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, 0x54, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x8D, 0xF6, 0x05, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF2, 0x50, 0xDB, -0x10, 0xF0, 0x24, 0x6A, 0xF2, 0xF3, 0x0D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF2, 0x54, 0xDB, -0x10, 0xF0, 0x24, 0x6A, 0xF2, 0xF1, 0x01, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF2, 0x54, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xC9, 0xF1, 0x05, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF2, 0x58, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x09, 0xF3, 0x11, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF2, 0x5C, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x0D, 0xF1, 0x05, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF3, 0x40, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x4B, 0xF5, 0x19, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF3, 0x44, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xAB, 0xF5, 0x01, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF3, 0x48, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0xCE, 0xF1, 0x15, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF3, 0x4C, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0x4A, 0xF4, 0x05, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF4, 0x58, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0xEA, 0xF5, 0x0D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF4, 0x50, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0x6A, 0xF6, 0x01, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF4, 0x54, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x2A, 0xF7, 0x01, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF4, 0x5C, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x4B, 0xF1, 0x11, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF4, 0x40, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x8F, 0xF7, 0x09, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF4, 0x5C, 0xDB, -0x10, 0xF0, 0x24, 0x6A, 0x30, 0xF0, 0x05, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x40, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x82, 0xF7, 0x01, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x48, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x02, 0xF7, 0x19, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x4C, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x8B, 0xF6, 0x1D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x44, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0xAA, 0xF6, 0x09, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF4, 0x54, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x28, 0xF5, 0x19, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x58, 0xDB, -0x10, 0xF0, 0x24, 0x6A, 0xB1, 0xF6, 0x0D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x5C, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x68, 0xF5, 0x1D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF4, 0x40, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x68, 0xF6, 0x19, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x50, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0x1D, 0xF3, 0x1D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF5, 0x44, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0xDC, 0xF4, 0x0D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x4A, 0xF4, 0x05, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF3, 0x44, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x6A, 0xF4, 0x11, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF3, 0x4C, 0xDB, -0x10, 0xF0, 0x23, 0x6A, 0x4A, 0xF4, 0x11, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF3, 0x48, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0x09, 0xF5, 0x1D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF3, 0x50, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0xBD, 0xF4, 0x05, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF3, 0x40, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0xE5, 0xF1, 0x19, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF6, 0x50, 0xDB, -0x10, 0xF0, 0x30, 0x6A, 0xAB, 0xF2, 0x1D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF6, 0x54, 0xDB, -0x10, 0xF0, 0x30, 0x6A, 0x8B, 0xF1, 0x11, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF6, 0x58, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0x7D, 0xF1, 0x19, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF3, 0x58, 0xDB, -0x10, 0xF0, 0x31, 0x6A, 0x1D, 0xF1, 0x05, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF3, 0x48, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF5, 0x1C, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF6, 0x5C, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF3, 0x0C, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF6, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF7, 0x70, 0x9A, -0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF6, 0x64, 0xDA, -0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF7, 0x10, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF6, 0x48, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xEA, 0xF0, 0x04, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF6, 0x4C, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x0A, 0xF1, 0x10, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF6, 0x50, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x8C, 0xF1, 0x10, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF6, 0x54, 0xDB, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF6, 0x58, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xAE, 0xF1, 0x04, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF6, 0x5C, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xAE, 0xF4, 0x07, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF6, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xAE, 0xF4, 0x0C, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF6, 0x44, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0xAE, 0xF4, 0x14, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF6, 0x48, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x6C, 0xF1, 0x10, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF6, 0x4C, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x6C, 0xF1, 0x18, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF6, 0x50, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x6C, 0xF1, 0x19, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF6, 0x54, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x6C, 0xF1, 0x1A, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF6, 0x58, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x8C, 0xF1, 0x00, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF6, 0x5C, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x8C, 0xF1, 0x0A, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF6, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF6, 0x0D, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF6, 0x58, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x6E, 0xF6, 0x08, 0x4A, -0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF6, 0x40, 0xDB, -0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, -0x30, 0xF0, 0x20, 0x6B, 0x21, 0xF0, 0x00, 0x4B, -0x80, 0xF2, 0x08, 0x4A, 0x13, 0x10, 0x80, 0x9A, -0x10, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF1, -0xBC, 0x9C, 0x30, 0xF0, 0x20, 0x6E, 0xA3, 0xF0, -0xD4, 0x9E, 0x80, 0x9D, 0xCD, 0xEC, 0x80, 0xDD, -0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF7, 0x88, 0x9C, -0x40, 0xDC, 0x04, 0x4A, 0x43, 0xEB, 0xEB, 0x60, -0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, -0x08, 0xD1, 0x07, 0xD0, 0xFF, 0xF7, 0x1F, 0x69, -0x2C, 0xED, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0xD5, -0xA3, 0xF7, 0xAC, 0x9B, 0xFF, 0x6A, 0x40, 0x6E, -0x60, 0xA5, 0xCB, 0xEE, 0x4C, 0xEC, 0x4C, 0xEB, -0xCC, 0xEB, 0x6D, 0xEC, 0x4C, 0xEC, 0x80, 0xC5, -0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, -0x0A, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF7, 0x50, 0x9A, 0x00, 0xAA, 0x04, 0x92, -0x2C, 0xE8, 0x2A, 0xEA, 0x0B, 0x60, 0x30, 0xF0, -0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, 0x04, 0x94, -0x40, 0xEA, 0x04, 0x93, 0x2C, 0xEA, 0x6C, 0xE8, -0x07, 0xEA, 0x2C, 0xE8, 0x50, 0x67, 0x09, 0x97, -0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, -0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, -0xFF, 0xF7, 0x1F, 0x69, 0x2C, 0xED, 0xFF, 0x68, -0x0C, 0xEC, 0x2C, 0xEE, 0x2A, 0xED, 0x05, 0xD4, -0x04, 0xD5, 0x06, 0xD6, 0x1F, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0xA3, 0xF7, 0x6C, 0x9A, 0x40, 0x6C, -0x8B, 0xEC, 0x40, 0xA3, 0x0C, 0xEA, 0x8C, 0xEA, -0x05, 0x94, 0x8D, 0xEA, 0x0C, 0xEA, 0x40, 0xC3, -0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, 0x70, 0x9A, -0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF4, 0x88, 0x9C, -0x40, 0x9B, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, -0x03, 0xF0, 0x8C, 0x9C, 0x8D, 0xEA, 0xCD, 0xEA, -0x40, 0xDB, 0x34, 0x10, 0x05, 0x94, 0xB1, 0x67, -0x80, 0x18, 0xD1, 0x59, 0x07, 0xD2, 0x30, 0xF0, -0x20, 0x6A, 0x04, 0x94, 0xA0, 0xF3, 0x44, 0x9A, -0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF7, -0x8C, 0x9B, 0x40, 0x6D, 0xAB, 0xED, 0x60, 0xA4, -0x2C, 0xEA, 0x0C, 0xEB, 0xAC, 0xEB, 0x05, 0x95, -0xAD, 0xEB, 0x0C, 0xEB, 0x60, 0xC4, 0x30, 0xF0, -0x20, 0x6B, 0xA3, 0xF7, 0x90, 0x9B, 0x30, 0xF0, -0x20, 0x6D, 0xC3, 0xF4, 0xA8, 0x9D, 0x60, 0x9C, -0x06, 0x96, 0xAC, 0xEB, 0x30, 0xF0, 0x20, 0x6D, -0x03, 0xF0, 0xAC, 0x9D, 0xC4, 0xEA, 0x46, 0x67, -0xAD, 0xEB, 0x04, 0x95, 0x07, 0x96, 0xAC, 0xEA, -0xAF, 0xED, 0xCC, 0xED, 0xAD, 0xEA, 0x2C, 0xEA, -0x4D, 0xEB, 0x60, 0xDC, 0x30, 0xF0, 0x20, 0x6A, -0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, -0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x00, 0x6C, 0x10, 0xF0, 0x00, 0x6D, 0x80, 0x18, -0xD1, 0x59, 0x05, 0x97, 0x01, 0x5A, 0x58, 0x67, +0x24, 0xF0, 0x64, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x24, 0xF0, 0x68, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF0, 0x74, 0x9B, +0x40, 0xDB, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x24, 0xF0, 0xAC, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF3, 0x10, 0x6E, 0xA6, 0xF6, 0xC0, 0xDB, +0x01, 0xF7, 0x01, 0x6A, 0xA6, 0xF6, 0x00, 0x4B, +0x00, 0x6C, 0x42, 0xDB, 0x43, 0xDB, 0xA1, 0xDB, +0x84, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, +0x6C, 0x9B, 0xC0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF1, 0x70, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF1, 0x74, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, 0x7C, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, +0x40, 0x9A, 0x80, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x00, 0x6B, 0x72, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF1, 0x4C, 0x9A, 0x60, 0xDA, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0x24, 0xF0, 0x90, 0x9B, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x00, 0x4A, +0x80, 0xF1, 0x0E, 0x6D, 0xFF, 0x6B, 0xB4, 0xDA, +0x95, 0xDA, 0x76, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF1, 0x50, 0x9A, 0xA0, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF1, 0x44, 0x9A, 0x80, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0x48, 0x9A, +0x60, 0xDA, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0x48, 0x58, 0x80, 0x18, 0x67, 0x58, +0x80, 0x18, 0x7F, 0x58, 0x80, 0x18, 0x9C, 0x58, +0x80, 0x18, 0x96, 0x58, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xD9, 0x58, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, 0x00, 0x4B, +0x42, 0xF6, 0x50, 0xC3, 0x00, 0x6A, 0x42, 0xF6, +0x51, 0xC3, 0x80, 0x18, 0x78, 0x57, 0x80, 0x18, +0x66, 0x5A, 0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, +0x54, 0x9A, 0x3F, 0x6B, 0x60, 0xC2, 0x80, 0x18, +0x69, 0x57, 0x80, 0x18, 0x6D, 0x57, 0x80, 0x18, +0x2C, 0x3D, 0x80, 0x18, 0x80, 0x57, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, -0x7C, 0x9B, 0x10, 0xF0, 0x31, 0x6A, 0xAD, 0xF0, -0x05, 0x4A, 0x40, 0xDB, 0x00, 0x68, 0x31, 0x10, -0x82, 0xF3, 0x08, 0x70, 0x1A, 0x61, 0x30, 0xF0, -0x20, 0x6A, 0x03, 0xF1, 0x7C, 0x9A, 0x02, 0xF0, -0x00, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, -0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF5, 0x18, 0x4A, -0xA3, 0xF3, 0x78, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, -0x78, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, -0x54, 0x9A, 0x03, 0x6B, 0x6B, 0xEB, 0x60, 0xC2, -0x18, 0x10, 0xFF, 0xF7, 0x1F, 0x6A, 0x01, 0x48, -0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, -0x4C, 0x9A, 0x14, 0x6C, 0x40, 0xEA, 0x33, 0x58, -0x08, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, -0x4C, 0x9A, 0x60, 0xA2, 0x08, 0x6A, 0x6C, 0xEA, -0x04, 0x2A, 0x80, 0x18, 0x23, 0x5A, 0x01, 0x72, -0xCB, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, -0x54, 0x9A, 0x02, 0x6B, 0x6B, 0xEB, 0x60, 0xC2, -0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, 0x7C, 0x9B, -0x10, 0xF0, 0x31, 0x6A, 0xAD, 0xF0, 0x06, 0x4A, -0x40, 0xDB, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, -0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, -0x70, 0x9A, 0x02, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, -0x40, 0x9B, 0xFF, 0x6E, 0x41, 0x4E, 0x8D, 0xEA, -0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, -0x74, 0x9A, 0xE0, 0xF3, 0x1E, 0x4C, 0x30, 0xF0, -0x20, 0x68, 0x40, 0xAB, 0xAC, 0xEA, 0x8D, 0xEA, -0xAC, 0xEA, 0x40, 0xCB, 0x02, 0x6C, 0x80, 0x18, -0xEC, 0x59, 0x80, 0xF3, 0x4C, 0x98, 0x0A, 0x6C, -0x40, 0xEA, 0x00, 0x6C, 0xC0, 0x6D, 0x02, 0x6E, -0x80, 0x18, 0xEC, 0x59, 0x00, 0x6C, 0xC4, 0x67, -0x02, 0xF0, 0x00, 0x6D, 0x80, 0x18, 0xEC, 0x59, -0x00, 0x6C, 0xC4, 0x67, 0x0C, 0xF0, 0x00, 0x6D, -0x80, 0x18, 0xEC, 0x59, 0x00, 0x6C, 0x01, 0xF0, -0x00, 0x6D, 0x01, 0x6E, 0x80, 0x18, 0xEC, 0x59, -0x10, 0xF0, 0x00, 0x6D, 0x01, 0x6E, 0x00, 0x6C, -0x80, 0x18, 0xEC, 0x59, 0x80, 0xF3, 0x4C, 0x98, -0x0A, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, -0xA3, 0xF7, 0x74, 0x9A, 0xFF, 0x6C, 0x04, 0x6D, -0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, -0x40, 0xC3, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, -0x00, 0xEF, 0x00, 0x65, 0x00, 0x00, 0x00, 0x00, -0x16, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +0x00, 0x18, 0xF0, 0xD3, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0x84, 0xF0, 0x50, 0x9A, 0xE0, 0xF1, 0x1B, 0x6B, +0x6B, 0xEB, 0x60, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0x84, 0xF0, 0x74, 0x9A, 0xFB, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x84, 0xF0, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x83, 0xF4, 0x94, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, +0x40, 0xDB, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF3, 0x48, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, +0x40, 0xAA, 0x4C, 0xEB, 0x62, 0x33, 0x03, 0x6A, +0x72, 0x33, 0x4C, 0xEB, 0x02, 0x6A, 0x04, 0x23, +0x01, 0x73, 0x01, 0x6A, 0x01, 0x60, 0x03, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0x10, 0xF0, 0x23, 0x6A, +0xEA, 0xF0, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x48, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x0A, 0xF1, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x4C, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0x2C, 0xF3, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x50, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xEE, 0xF3, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xCD, 0xF2, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF2, 0x50, 0xDB, 0x10, 0xF0, 0x24, 0x6A, +0x32, 0xF0, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF2, 0x54, 0xDB, 0x10, 0xF0, 0x24, 0x6A, +0x31, 0xF6, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF2, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x28, 0xF6, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF2, 0x58, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x68, 0xF7, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF2, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x4C, 0xF5, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF3, 0x40, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xAB, 0xF1, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF3, 0x44, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xEB, 0xF1, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF3, 0x48, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x2D, 0xF6, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF3, 0x4C, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0x6A, 0xF4, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF4, 0x58, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0x2A, 0xF6, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF4, 0x50, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0x8A, 0xF6, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF4, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x6A, 0xF3, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF4, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xAA, 0xF5, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF4, 0x40, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xCF, 0xF3, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF4, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x6F, 0xF4, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x40, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x42, 0xF3, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x48, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xE2, 0xF2, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x4C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xEB, 0xF2, 0x09, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x44, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0xEA, 0xF6, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF4, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x28, 0xF1, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x58, 0xDB, 0x10, 0xF0, 0x24, 0x6A, +0xF1, 0xF2, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x88, 0xF1, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF4, 0x40, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x68, 0xF2, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x50, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0x5F, 0xF0, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF5, 0x44, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0x1E, 0xF2, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x8A, 0xF0, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF3, 0x44, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xCA, 0xF0, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF3, 0x4C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xAA, 0xF0, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF3, 0x48, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0x49, 0xF5, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF3, 0x50, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0xDF, 0xF1, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF3, 0x40, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0x25, 0xF2, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF6, 0x50, 0xDB, 0x10, 0xF0, 0x30, 0x6A, +0x8B, 0xF4, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF6, 0x54, 0xDB, 0x10, 0xF0, 0x30, 0x6A, +0x0E, 0xF0, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF6, 0x58, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0xBE, 0xF6, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF3, 0x58, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0x3E, 0xF6, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF3, 0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x46, 0xF7, 0x04, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF6, 0x5C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xE9, 0xF4, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x0A, 0xF1, 0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF6, 0x64, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0x0A, 0xF1, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x2A, 0xF2, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x4C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x4A, 0xF2, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x50, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xEC, 0xF2, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x54, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x58, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xEE, 0xF2, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x5C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xEE, 0xF5, 0x17, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF6, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xEE, 0xF5, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF6, 0x44, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x0E, 0xF6, 0x04, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF6, 0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xCC, 0xF2, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF6, 0x4C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xCC, 0xF2, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF6, 0x50, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xCC, 0xF2, 0x09, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF6, 0x54, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xCC, 0xF2, 0x0A, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF6, 0x58, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xCC, 0xF2, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF6, 0x5C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xCC, 0xF2, 0x1A, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF6, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x86, 0xF7, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF6, 0x58, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xAE, 0xF7, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF6, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x21, 0xF0, 0x00, 0x4B, 0x80, 0xF2, 0x08, 0x4A, +0x13, 0x10, 0x80, 0x9A, 0x10, 0x2C, 0x30, 0xF0, +0x20, 0x6C, 0x43, 0xF2, 0xA0, 0x9C, 0x30, 0xF0, +0x20, 0x6E, 0xC3, 0xF1, 0xD8, 0x9E, 0x80, 0x9D, +0xCD, 0xEC, 0x80, 0xDD, 0x30, 0xF0, 0x20, 0x6C, +0x83, 0xF3, 0x9C, 0x9C, 0x40, 0xDC, 0x04, 0x4A, +0x43, 0xEB, 0xEB, 0x60, 0x20, 0xE8, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0xF7, 0x1F, 0x69, 0x2C, 0xED, 0x30, 0xF0, +0x20, 0x6B, 0x04, 0xD5, 0xE4, 0xF0, 0xB0, 0x9B, +0xFF, 0x6A, 0x40, 0x6E, 0x60, 0xA5, 0xCB, 0xEE, +0x4C, 0xEC, 0x4C, 0xEB, 0xCC, 0xEB, 0x6D, 0xEC, +0x4C, 0xEC, 0x80, 0xC5, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF0, 0x54, 0x9A, +0x00, 0xAA, 0x04, 0x92, 0x2C, 0xE8, 0x2A, 0xEA, +0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, +0x44, 0x9A, 0x04, 0x94, 0x40, 0xEA, 0x04, 0x93, +0x2C, 0xEA, 0x6C, 0xE8, 0x07, 0xEA, 0x2C, 0xE8, +0x50, 0x67, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0xF7, 0x1F, 0x69, +0x2C, 0xED, 0xFF, 0x68, 0x0C, 0xEC, 0x2C, 0xEE, +0x2A, 0xED, 0x05, 0xD4, 0x04, 0xD5, 0x06, 0xD6, +0x1F, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF0, +0x70, 0x9A, 0x40, 0x6C, 0x8B, 0xEC, 0x40, 0xA3, +0x0C, 0xEA, 0x8C, 0xEA, 0x05, 0x94, 0x8D, 0xEA, +0x0C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0xE4, 0xF0, 0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x23, 0xF6, 0x80, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF1, 0x90, 0x9C, +0x8D, 0xEA, 0xCD, 0xEA, 0x40, 0xDB, 0x34, 0x10, +0x05, 0x94, 0xB1, 0x67, 0x80, 0x18, 0xE2, 0x59, +0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x94, +0xA0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE4, 0xF0, 0x90, 0x9B, 0x40, 0x6D, +0xAB, 0xED, 0x60, 0xA4, 0x2C, 0xEA, 0x0C, 0xEB, +0xAC, 0xEB, 0x05, 0x95, 0xAD, 0xEB, 0x0C, 0xEB, +0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0xE4, 0xF0, +0x94, 0x9B, 0x30, 0xF0, 0x20, 0x6D, 0x23, 0xF6, +0xA0, 0x9D, 0x60, 0x9C, 0x06, 0x96, 0xAC, 0xEB, +0x30, 0xF0, 0x20, 0x6D, 0x23, 0xF1, 0xB0, 0x9D, +0xC4, 0xEA, 0x46, 0x67, 0xAD, 0xEB, 0x04, 0x95, +0x07, 0x96, 0xAC, 0xEA, 0xAF, 0xED, 0xCC, 0xED, +0xAD, 0xEA, 0x2C, 0xEA, 0x4D, 0xEB, 0x60, 0xDC, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x0A, 0x6C, 0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x6C, 0x10, 0xF0, +0x00, 0x6D, 0x80, 0x18, 0xE2, 0x59, 0x05, 0x97, +0x01, 0x5A, 0x58, 0x67, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF0, 0x7C, 0x9B, 0x10, 0xF0, +0x31, 0x6A, 0xED, 0xF0, 0x09, 0x4A, 0x40, 0xDB, +0x00, 0x68, 0x31, 0x10, 0x82, 0xF3, 0x08, 0x70, +0x1A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, +0x60, 0x9A, 0x02, 0xF0, 0x00, 0x6C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x00, 0x4A, 0xA3, 0xF3, 0x7C, 0x9A, +0x8D, 0xEB, 0xA3, 0xF3, 0x7C, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x58, 0x9A, 0x03, 0x6B, +0x6B, 0xEB, 0x60, 0xC2, 0x18, 0x10, 0xFF, 0xF7, +0x1F, 0x6A, 0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, +0x40, 0xEA, 0x33, 0x58, 0x08, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF7, 0x58, 0x9A, 0x60, 0xA2, +0x08, 0x6A, 0x6C, 0xEA, 0x04, 0x2A, 0x80, 0x18, +0x34, 0x5A, 0x01, 0x72, 0xCB, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x58, 0x9A, 0x02, 0x6B, +0x6B, 0xEB, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF0, 0x7C, 0x9B, 0x10, 0xF0, 0x31, 0x6A, +0xED, 0xF0, 0x0A, 0x4A, 0x40, 0xDB, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x44, 0xF0, 0x7C, 0x9A, 0x02, 0x6C, +0xFF, 0xF7, 0x1F, 0x6D, 0x40, 0x9B, 0xFF, 0x6E, +0x41, 0x4E, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF1, 0x78, 0x9A, 0xE0, 0xF3, +0x1E, 0x4C, 0x30, 0xF0, 0x20, 0x68, 0x40, 0xAB, +0xAC, 0xEA, 0x8D, 0xEA, 0xAC, 0xEA, 0x40, 0xCB, +0x02, 0x6C, 0x80, 0x18, 0xFD, 0x59, 0x80, 0xF3, +0x4C, 0x98, 0x0A, 0x6C, 0x40, 0xEA, 0x00, 0x6C, +0xC0, 0x6D, 0x02, 0x6E, 0x80, 0x18, 0xFD, 0x59, +0x00, 0x6C, 0xC4, 0x67, 0x02, 0xF0, 0x00, 0x6D, +0x80, 0x18, 0xFD, 0x59, 0x00, 0x6C, 0xC4, 0x67, +0x0C, 0xF0, 0x00, 0x6D, 0x80, 0x18, 0xFD, 0x59, +0x00, 0x6C, 0x01, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x80, 0x18, 0xFD, 0x59, 0x10, 0xF0, 0x00, 0x6D, +0x01, 0x6E, 0x00, 0x6C, 0x80, 0x18, 0xFD, 0x59, +0x80, 0xF3, 0x4C, 0x98, 0x0A, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF0, 0x78, 0x9A, +0xFF, 0x6C, 0x04, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x41, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; -u32 array_length_mp_8822c_fw_wowlan = 145080; +u32 array_length_mp_8822c_fw_wowlan = 144512; #endif /*CONFIG_WOWLAN*/ diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/hal8822c_fw.h b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/hal8822c_fw.h index d850a22b..b9484b99 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/hal8822c_fw.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/hal8822c_fw.h @@ -20,21 +20,21 @@ #ifdef LOAD_FW_HEADER_FROM_DRIVER #if (defined(CONFIG_AP_WOWLAN) || (DM_ODM_SUPPORT_TYPE & (ODM_AP))) -extern u8 array_mp_8822c_fw_ap[132504]; +extern u8 array_mp_8822c_fw_ap[130048]; extern u32 array_length_mp_8822c_fw_ap; #endif #if (DM_ODM_SUPPORT_TYPE & (ODM_WIN)) || (DM_ODM_SUPPORT_TYPE & (ODM_CE)) -extern u8 array_mp_8822c_fw_nic[199264]; +extern u8 array_mp_8822c_fw_nic[196888]; extern u32 array_length_mp_8822c_fw_nic; #if !(DM_ODM_SUPPORT_TYPE & (ODM_CE)) -extern u8 array_mp_8822c_fw_spic[117752]; +extern u8 array_mp_8822c_fw_spic[115168]; extern u32 array_length_mp_8822c_fw_spic; #endif /*!(DM_ODM_SUPPORT_TYPE & (ODM_CE))*/ #ifdef CONFIG_WOWLAN -extern u8 array_mp_8822c_fw_wowlan[145080]; +extern u8 array_mp_8822c_fw_wowlan[144512]; extern u32 array_length_mp_8822c_fw_wowlan; #endif /*CONFIG_WOWLAN*/ #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/hal8822c_fw_10M.c b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/hal8822c_fw_10M.c new file mode 100755 index 00000000..06c317cb --- /dev/null +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/hal8822c_fw_10M.c @@ -0,0 +1,72805 @@ +/****************************************************************************** +* +* Copyright(c) 2012 - 2017 Realtek Corporation. +* +* This program is free software; you can redistribute it and/or modify it +* under the terms of version 2 of the GNU General Public License 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. +* +******************************************************************************/ + +#ifdef CONFIG_RTL8822C + +#include "drv_types.h" + +#ifdef LOAD_FW_HEADER_FROM_DRIVER + +#if (defined(CONFIG_AP_WOWLAN) || (DM_ODM_SUPPORT_TYPE & (ODM_AP))) + +u8 array_mp_8822c_fw_ap[] = { +0x22, 0x88, 0x00, 0x00, 0x09, 0x00, 0x0D, 0x00, +0x0F, 0x12, 0x23, 0xA2, 0x00, 0x00, 0x00, 0x00, +0x09, 0x18, 0x0F, 0x16, 0xE5, 0x07, 0x00, 0x00, +0x18, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, +0x00, 0x00, 0x20, 0x80, 0x30, 0x2D, 0x00, 0x00, +0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x58, 0x4A, 0x00, 0x00, 0xB0, 0x7F, 0x01, 0x00, +0x00, 0x00, 0x10, 0x80, 0x00, 0x00, 0x03, 0x80, +0x00, 0x00, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, +0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, +0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, +0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, +0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, +0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, +0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, +0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +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, 0x01, 0xFE, 0x03, 0x01, 0x01, 0xFE, +0x03, 0x02, 0x01, 0xFE, 0x03, 0x03, 0x01, 0xFE, +0x03, 0x04, 0x01, 0xFE, 0x03, 0x05, 0x01, 0xFE, +0x03, 0x06, 0x01, 0xFE, 0x03, 0x07, 0x01, 0xFE, +0x48, 0x0A, 0x20, 0x80, 0x06, 0x00, 0x00, 0x00, +0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, +0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, +0x01, 0x00, 0x03, 0x80, 0x99, 0x01, 0x03, 0x80, +0x99, 0x01, 0x03, 0x80, 0x08, 0x00, 0x00, 0x00, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xE0, +0x4C, 0x81, 0x92, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x8D, +0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x07, 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, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xF1, 0x15, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, +0x00, 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, 0x45, 0x17, 0x03, 0x80, +0x01, 0x00, 0x00, 0x00, 0x00, 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, +0x34, 0x2D, 0x20, 0x80, 0x41, 0x4E, 0x59, 0x00, +0x61, 0x6E, 0x79, 0x00, 0x02, 0x00, 0x00, 0x00, +0x20, 0x05, 0x00, 0x00, 0x50, 0x05, 0x00, 0x00, +0x1C, 0x00, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, +0x24, 0x08, 0x00, 0x00, 0x38, 0x1C, 0x00, 0x00, +0x68, 0x1C, 0x00, 0x00, 0x60, 0x1D, 0x00, 0x00, +0x0C, 0x18, 0x00, 0x00, 0x0C, 0x41, 0x00, 0x00, +0x3C, 0x1C, 0x00, 0x00, 0x14, 0x1A, 0x00, 0x00, +0x58, 0x1D, 0x00, 0x00, 0x70, 0x1D, 0x00, 0x00, +0x64, 0x18, 0x00, 0x00, 0x64, 0x41, 0x00, 0x00, +0x6C, 0x18, 0x00, 0x00, 0x6C, 0x41, 0x00, 0x00, +0x14, 0x1A, 0x00, 0x00, 0x70, 0x1E, 0x00, 0x00, +0x0C, 0x08, 0x00, 0x00, 0x7C, 0x1E, 0x00, 0x00, +0xA4, 0x18, 0x00, 0x00, 0xA4, 0x41, 0x00, 0x00, +0x19, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x00, +0x9E, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, +0x00, 0x00, 0x30, 0x8D, 0x00, 0x12, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 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, +0x08, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x0F, 0x14, 0x03, 0x80, 0x09, 0x14, 0x03, 0x80, +0x15, 0x14, 0x03, 0x80, 0x1B, 0x14, 0x03, 0x80, +0x21, 0x14, 0x03, 0x80, 0x27, 0x14, 0x03, 0x80, +0x09, 0x12, 0x1B, 0x24, 0x94, 0x0C, 0x94, 0x0E, +0x94, 0x18, 0x94, 0x1A, 0x31, 0x15, 0x11, 0x80, +0x7F, 0x15, 0x11, 0x80, 0x39, 0x15, 0x11, 0x80, +0x71, 0x15, 0x11, 0x80, 0x7F, 0x15, 0x11, 0x80, +0x7F, 0x15, 0x11, 0x80, 0x41, 0x15, 0x11, 0x80, +0x49, 0x15, 0x11, 0x80, 0x51, 0x15, 0x11, 0x80, +0x59, 0x15, 0x11, 0x80, 0x7F, 0x15, 0x11, 0x80, +0x69, 0x15, 0x11, 0x80, 0x7F, 0x15, 0x11, 0x80, +0x7F, 0x15, 0x11, 0x80, 0x61, 0x15, 0x11, 0x80, +0x7F, 0x15, 0x11, 0x80, 0x7F, 0x15, 0x11, 0x80, +0x7F, 0x15, 0x11, 0x80, 0x79, 0x15, 0x11, 0x80, +0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0A, 0x0A, +0x0A, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0C, 0x14, +0x1C, 0x24, 0x2C, 0x36, 0x40, 0x00, 0x00, 0x00, +0x97, 0x31, 0x11, 0x80, 0xAF, 0x31, 0x11, 0x80, +0x97, 0x31, 0x11, 0x80, 0xAF, 0x31, 0x11, 0x80, +0x97, 0x31, 0x11, 0x80, 0xAF, 0x31, 0x11, 0x80, +0xBB, 0x31, 0x11, 0x80, 0xBB, 0x31, 0x11, 0x80, +0xBB, 0x31, 0x11, 0x80, 0x97, 0x31, 0x11, 0x80, +0xAF, 0x31, 0x11, 0x80, 0xAF, 0x31, 0x11, 0x80, +0x97, 0x31, 0x11, 0x80, 0xC1, 0x31, 0x11, 0x80, +0xC1, 0x31, 0x11, 0x80, 0x07, 0x08, 0x09, 0x0A, +0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x00, 0x00, +0x12, 0x12, 0x14, 0x12, 0x0F, 0x0F, 0x0C, 0x0C, +0x09, 0x08, 0x08, 0x07, 0x0A, 0x0A, 0x09, 0x07, +0x07, 0x06, 0x05, 0x04, 0x0C, 0x0C, 0x0A, 0x0A, +0x09, 0x07, 0x07, 0x06, 0x0C, 0x0C, 0x0A, 0x0A, +0x09, 0x07, 0x07, 0x06, 0x0C, 0x0C, 0x0A, 0x0A, +0x09, 0x07, 0x07, 0x06, 0x0A, 0x0A, 0x08, 0x08, +0x08, 0x07, 0x07, 0x06, 0x04, 0x04, 0x0C, 0x0C, +0x0A, 0x0A, 0x09, 0x07, 0x07, 0x06, 0x05, 0x04, +0x0C, 0x0C, 0x0A, 0x0A, 0x09, 0x07, 0x07, 0x05, +0x04, 0x04, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, +0x0A, 0x0A, 0x0A, 0x0A, 0x28, 0x28, 0x32, 0x28, +0x1E, 0x19, 0x19, 0x19, 0x18, 0x18, 0x12, 0x0F, +0x14, 0x1E, 0x19, 0x1E, 0x18, 0x16, 0x0C, 0x0C, +0x1E, 0x1E, 0x19, 0x1E, 0x18, 0x16, 0x0C, 0x0C, +0x1E, 0x1E, 0x19, 0x1C, 0x18, 0x14, 0x0C, 0x0A, +0x1E, 0x1E, 0x19, 0x1E, 0x19, 0x18, 0x0F, 0x0E, +0x14, 0x28, 0x21, 0x1E, 0x1A, 0x16, 0x0B, 0x10, +0x0A, 0x0A, 0x2D, 0x28, 0x21, 0x1E, 0x1A, 0x16, +0x0B, 0x10, 0x0A, 0x0A, 0x1E, 0x1E, 0x1E, 0x1E, +0x18, 0x16, 0x0D, 0x0D, 0x0A, 0x08, 0x0A, 0x0A, +0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, +0x4A, 0x40, 0x36, 0x2C, 0x24, 0x1C, 0x14, 0x0C, +0x04, 0x00, 0x00, 0x00, 0x49, 0x4D, 0x10, 0x80, +0x1D, 0x4E, 0x10, 0x80, 0x59, 0x4D, 0x10, 0x80, +0x8F, 0x4D, 0x10, 0x80, 0xCB, 0x4D, 0x10, 0x80, +0x1D, 0x4E, 0x10, 0x80, 0x67, 0x4E, 0x10, 0x80, +0x7F, 0x4E, 0x10, 0x80, 0x8B, 0x4E, 0x10, 0x80, +0xBD, 0x4E, 0x10, 0x80, 0xEF, 0x4E, 0x10, 0x80, +0xFF, 0x4E, 0x10, 0x80, 0x09, 0x12, 0x1B, 0x24, +0x5F, 0x5E, 0x11, 0x80, 0xE3, 0x5F, 0x11, 0x80, +0xC5, 0x60, 0x11, 0x80, 0x2B, 0x61, 0x11, 0x80, +0x2B, 0x61, 0x11, 0x80, 0x5F, 0x5E, 0x11, 0x80, +0x5F, 0x5E, 0x11, 0x80, 0x63, 0x6F, 0x6E, 0x66, +0x69, 0x67, 0x5F, 0x70, 0x68, 0x79, 0x64, 0x6D, +0x5F, 0x70, 0x61, 0x72, 0x61, 0x6D, 0x65, 0x74, +0x65, 0x72, 0x5F, 0x69, 0x6E, 0x69, 0x74, 0x5F, +0x38, 0x38, 0x32, 0x32, 0x63, 0x00, 0x00, 0x00, +0x63, 0x6F, 0x6E, 0x66, 0x69, 0x67, 0x5F, 0x70, +0x68, 0x79, 0x64, 0x6D, 0x5F, 0x73, 0x77, 0x69, +0x74, 0x63, 0x68, 0x5F, 0x62, 0x61, 0x6E, 0x64, +0x77, 0x69, 0x64, 0x74, 0x68, 0x5F, 0x38, 0x38, +0x32, 0x32, 0x63, 0x00, 0x63, 0x6F, 0x6E, 0x66, +0x69, 0x67, 0x5F, 0x70, 0x68, 0x79, 0x64, 0x6D, +0x5F, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5F, +0x63, 0x68, 0x61, 0x6E, 0x6E, 0x65, 0x6C, 0x5F, +0x38, 0x38, 0x32, 0x32, 0x63, 0x00, 0x00, 0x00, +0x70, 0x68, 0x79, 0x64, 0x6D, 0x5F, 0x63, 0x63, +0x6B, 0x5F, 0x72, 0x78, 0x69, 0x71, 0x5F, 0x38, +0x38, 0x32, 0x32, 0x63, 0x00, 0x00, 0x00, 0x00, +0x63, 0x6F, 0x6E, 0x66, 0x69, 0x67, 0x5F, 0x70, +0x68, 0x79, 0x64, 0x6D, 0x5F, 0x74, 0x72, 0x78, +0x5F, 0x6D, 0x6F, 0x64, 0x65, 0x5F, 0x38, 0x38, +0x32, 0x32, 0x63, 0x00, 0x63, 0x6F, 0x6E, 0x66, +0x69, 0x67, 0x5F, 0x70, 0x68, 0x79, 0x64, 0x6D, +0x5F, 0x72, 0x65, 0x61, 0x64, 0x5F, 0x74, 0x78, +0x61, 0x67, 0x63, 0x5F, 0x38, 0x38, 0x32, 0x32, +0x63, 0x00, 0x00, 0x00, 0x63, 0x6F, 0x6E, 0x66, +0x69, 0x67, 0x5F, 0x70, 0x68, 0x79, 0x64, 0x6D, +0x5F, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5F, 0x74, +0x78, 0x61, 0x67, 0x63, 0x5F, 0x64, 0x69, 0x66, +0x66, 0x5F, 0x38, 0x38, 0x32, 0x32, 0x63, 0x00, +0x63, 0x6F, 0x6E, 0x66, 0x69, 0x67, 0x5F, 0x70, +0x68, 0x79, 0x64, 0x6D, 0x5F, 0x77, 0x72, 0x69, +0x74, 0x65, 0x5F, 0x74, 0x78, 0x61, 0x67, 0x63, +0x5F, 0x72, 0x65, 0x66, 0x5F, 0x38, 0x38, 0x32, +0x32, 0x63, 0x00, 0x00, 0x63, 0x6F, 0x6E, 0x66, +0x69, 0x67, 0x5F, 0x70, 0x68, 0x79, 0x64, 0x6D, +0x5F, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5F, 0x72, +0x66, 0x5F, 0x72, 0x65, 0x67, 0x5F, 0x38, 0x38, +0x32, 0x32, 0x63, 0x00, 0x63, 0x6F, 0x6E, 0x66, +0x69, 0x67, 0x5F, 0x70, 0x68, 0x79, 0x64, 0x6D, +0x5F, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5F, +0x77, 0x72, 0x69, 0x74, 0x65, 0x5F, 0x72, 0x66, +0x5F, 0x72, 0x65, 0x67, 0x5F, 0x38, 0x38, 0x32, +0x32, 0x63, 0x00, 0x00, 0x63, 0x6F, 0x6E, 0x66, +0x69, 0x67, 0x5F, 0x70, 0x68, 0x79, 0x64, 0x6D, +0x5F, 0x72, 0x65, 0x61, 0x64, 0x5F, 0x72, 0x66, +0x5F, 0x72, 0x65, 0x67, 0x5F, 0x38, 0x38, 0x32, +0x32, 0x63, 0x00, 0x00, 0x70, 0x68, 0x79, 0x64, +0x6D, 0x5F, 0x63, 0x68, 0x6B, 0x5F, 0x70, 0x6B, +0x67, 0x5F, 0x73, 0x65, 0x74, 0x5F, 0x76, 0x61, +0x6C, 0x69, 0x64, 0x5F, 0x38, 0x38, 0x32, 0x32, +0x63, 0x00, 0x00, 0x00, 0x85, 0x75, 0x11, 0x80, +0xA7, 0x75, 0x11, 0x80, 0xC9, 0x75, 0x11, 0x80, +0xEB, 0x75, 0x11, 0x80, 0x0F, 0x76, 0x11, 0x80, +0x49, 0x76, 0x11, 0x80, 0x6D, 0x76, 0x11, 0x80, +0x91, 0x76, 0x11, 0x80, 0xB5, 0x76, 0x11, 0x80, +0xDB, 0x76, 0x11, 0x80, 0x01, 0x01, 0x04, 0x10, +0x40, 0x00, 0x00, 0x00, 0xE0, 0x04, 0xE3, 0x04, +0xE3, 0x04, 0xE3, 0x04, 0xE3, 0x04, 0x00, 0x00, +0x73, 0x2B, 0x03, 0x80, 0x83, 0x2B, 0x03, 0x80, +0x8D, 0x2B, 0x03, 0x80, 0x97, 0x2B, 0x03, 0x80, +0xA9, 0x2B, 0x03, 0x80, 0xF9, 0x3D, 0x03, 0x80, +0xF5, 0x3D, 0x03, 0x80, 0xF9, 0x3D, 0x03, 0x80, +0xF5, 0x3D, 0x03, 0x80, 0x19, 0x3E, 0x03, 0x80, +0xF5, 0x3D, 0x03, 0x80, 0x19, 0x3E, 0x03, 0x80, +0xF5, 0x3D, 0x03, 0x80, 0x39, 0x3E, 0x03, 0x80, +0xF5, 0x3D, 0x03, 0x80, 0x39, 0x3E, 0x03, 0x80, +0xF5, 0x3D, 0x03, 0x80, 0x59, 0x3E, 0x03, 0x80, +0xF5, 0x3D, 0x03, 0x80, 0x59, 0x3E, 0x03, 0x80, +0x61, 0x3F, 0x03, 0x80, 0x61, 0x3F, 0x03, 0x80, +0x61, 0x3F, 0x03, 0x80, 0x61, 0x3F, 0x03, 0x80, +0x81, 0x3F, 0x03, 0x80, 0x81, 0x3F, 0x03, 0x80, +0x81, 0x3F, 0x03, 0x80, 0x81, 0x3F, 0x03, 0x80, +0xA1, 0x3F, 0x03, 0x80, 0xA1, 0x3F, 0x03, 0x80, +0xA1, 0x3F, 0x03, 0x80, 0xA1, 0x3F, 0x03, 0x80, +0xC1, 0x3F, 0x03, 0x80, 0xC1, 0x3F, 0x03, 0x80, +0xC1, 0x3F, 0x03, 0x80, 0xC1, 0x3F, 0x03, 0x80, +0x7F, 0x40, 0x03, 0x80, 0xDF, 0x40, 0x03, 0x80, +0x73, 0x41, 0x03, 0x80, 0x11, 0x42, 0x03, 0x80, +0xB5, 0x42, 0x03, 0x80, 0xFC, 0x10, 0x60, 0xB8, +0xFA, 0xFA, 0xFA, 0xFA, 0xCF, 0x01, 0x64, 0xB8, +0x8C, 0x04, 0x64, 0xB8, 0x90, 0x04, 0x64, 0xB8, +0x94, 0x04, 0x64, 0xB8, 0x98, 0x04, 0x64, 0xB8, +0x9C, 0x04, 0x64, 0xB8, 0xA0, 0x04, 0x64, 0xB8, +0x77, 0x05, 0x64, 0xB8, 0x6C, 0x05, 0x64, 0xB8, +0x68, 0x05, 0x64, 0xB8, 0x54, 0x05, 0x64, 0xB8, +0xFF, 0xFF, 0xFF, 0x8F, 0x00, 0x00, 0x60, 0xB8, +0x00, 0x00, 0x64, 0xB8, 0x31, 0x00, 0x78, 0xB8, +0x1D, 0x04, 0x64, 0xB8, 0x22, 0x05, 0x64, 0xB8, +0x38, 0x00, 0x60, 0xB8, 0xFF, 0xFF, 0x00, 0xFF, +0x00, 0x00, 0x09, 0x00, 0xF4, 0x00, 0x60, 0xB8, +0xFF, 0xFF, 0xFC, 0xFF, 0x00, 0x00, 0x01, 0x00, +0xC0, 0x00, 0x60, 0xB8, 0xBC, 0x01, 0x64, 0xB8, +0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +0x4D, 0x01, 0x64, 0xB8, 0x00, 0x01, 0x64, 0xB8, +0x04, 0x02, 0x64, 0xB8, 0x24, 0x04, 0x64, 0xB8, +0x56, 0x04, 0x64, 0xB8, 0x1C, 0x04, 0x64, 0xB8, +0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x40, +0x7A, 0x04, 0x64, 0xB8, 0x04, 0x00, 0x70, 0xB8, +0x0A, 0x00, 0x70, 0xB8, 0x34, 0x00, 0x78, 0xB8, +0x18, 0x11, 0x64, 0xB8, 0x55, 0x00, 0x78, 0xB8, +0x56, 0x00, 0x78, 0xB8, 0x40, 0x00, 0x78, 0xB8, +0x3A, 0x00, 0x78, 0xB8, 0x4C, 0x04, 0x64, 0xB8, +0x4D, 0x04, 0x64, 0xB8, 0x16, 0x00, 0x70, 0xB8, +0x4E, 0x04, 0x64, 0xB8, 0x17, 0x00, 0x70, 0xB8, +0x4F, 0x04, 0x64, 0xB8, 0xC7, 0x01, 0x64, 0xB8, +0x3C, 0x01, 0x64, 0xB8, 0x1C, 0x01, 0x64, 0xB8, +0xFF, 0xFF, 0x03, 0x00, 0x52, 0x05, 0x64, 0xB8, +0x20, 0x04, 0x64, 0xB8, 0xFF, 0xFF, 0xEF, 0xFF, +0x5F, 0x11, 0x64, 0xB8, 0x86, 0x00, 0x60, 0xB8, +0x87, 0x00, 0x60, 0xB8, 0x88, 0x00, 0x60, 0xB8, +0x89, 0x00, 0x60, 0xB8, 0x8A, 0x00, 0x60, 0xB8, +0x84, 0x00, 0x60, 0xB8, 0xF8, 0x10, 0x60, 0xB8, +0x00, 0x00, 0x00, 0x02, 0xCB, 0x01, 0x64, 0xB8, +0x00, 0x00, 0x68, 0xB8, 0x04, 0x00, 0x68, 0xB8, +0x08, 0x00, 0x68, 0xB8, 0x0C, 0x00, 0x68, 0xB8, +0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x42, +0xE0, 0x00, 0x60, 0xB8, 0xFF, 0xFF, 0xFF, 0xFD, +0xE3, 0x00, 0x60, 0xB8, 0x00, 0x00, 0x00, 0x01, +0xE1, 0x00, 0x60, 0xB8, 0x00, 0x00, 0x00, 0x60, +0x00, 0x00, 0x00, 0x20, 0xCC, 0x00, 0x60, 0xB8, +0x02, 0x00, 0x60, 0xB8, 0x00, 0x00, 0x00, 0x04, +0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xDF, +0xFF, 0xFF, 0xFF, 0x1F, 0x04, 0x00, 0x60, 0xB8, +0x04, 0x00, 0x64, 0xB8, 0x08, 0x00, 0x60, 0xB8, +0x08, 0x00, 0x64, 0xB8, 0xE8, 0x12, 0x64, 0xB8, +0x24, 0x00, 0x60, 0xB8, 0x80, 0x00, 0x60, 0xB8, +0x8C, 0x00, 0x60, 0xB8, 0xFF, 0xFF, 0xFF, 0xEF, +0xB0, 0x02, 0x64, 0xB8, 0x00, 0x0C, 0x01, 0x00, +0x08, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x0F, 0x00, +0x00, 0x00, 0x1F, 0x00, 0x01, 0x00, 0x00, 0xE0, +0x00, 0x00, 0xFF, 0x0F, 0x21, 0x00, 0x00, 0xE0, +0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xF0, 0x0F, +0x00, 0x00, 0x00, 0x0F, 0x62, 0x06, 0x64, 0xB8, +0xB4, 0x06, 0x64, 0xB8, 0x06, 0x00, 0x00, 0x89, +0x00, 0x0A, 0x08, 0x00, 0x01, 0x00, 0x66, 0xB8, +0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x66, 0xB8, +0x00, 0xFF, 0xFF, 0x00, 0xCD, 0x9B, 0x78, 0x56, +0x04, 0x1C, 0x66, 0xB8, 0x08, 0x1C, 0x66, 0xB8, +0xFF, 0xFF, 0xFF, 0x3F, 0x1F, 0x00, 0x60, 0xB8, +0x05, 0xEA, 0xEF, 0xFD, 0x06, 0xEA, 0xEF, 0xFD, +0x00, 0x1C, 0x66, 0xB8, 0xFF, 0xFF, 0x3F, 0x00, +0x04, 0xEA, 0xEF, 0xFD, 0x07, 0xEA, 0xEF, 0xFD, +0x08, 0xEA, 0xEF, 0xFD, 0x09, 0xEA, 0xEF, 0xFD, +0x0A, 0xEA, 0xEF, 0xFD, 0x00, 0x10, 0x66, 0xB8, +0x23, 0x04, 0x64, 0xB8, 0x30, 0x04, 0x64, 0xB8, +0x34, 0x04, 0x64, 0xB8, 0x04, 0x05, 0x07, 0x08, +0x00, 0x01, 0x01, 0x02, 0x2D, 0x04, 0x64, 0xB8, +0x06, 0x00, 0x66, 0xB8, 0x52, 0x04, 0x64, 0xB8, +0x53, 0x04, 0x64, 0xB8, 0x50, 0x04, 0x64, 0xB8, +0x51, 0x04, 0x64, 0xB8, 0x01, 0x1C, 0x66, 0xB8, +0x02, 0x1C, 0x66, 0xB8, 0x03, 0x1C, 0x66, 0xB8, +0x05, 0x1C, 0x66, 0xB8, 0x06, 0x1C, 0x66, 0xB8, +0x07, 0x1C, 0x66, 0xB8, 0x00, 0x00, 0x78, 0xB8, +0x44, 0x00, 0x78, 0xB8, 0x01, 0x00, 0x00, 0xC0, +0x01, 0x00, 0x00, 0x60, 0x52, 0x29, 0x46, 0xE2, +0x03, 0x29, 0x29, 0x00, 0x32, 0xFC, 0x18, 0xA2, +0x08, 0x00, 0x04, 0x05, 0x00, 0x00, 0x00, 0x08, +0x01, 0x00, 0x0F, 0x70, 0x01, 0x00, 0x1F, 0x70, +0x01, 0x00, 0x2F, 0x70, 0x01, 0x00, 0x3F, 0x70, +0x01, 0x00, 0x4F, 0x70, 0x01, 0x00, 0x5F, 0x70, +0x01, 0x00, 0x6F, 0x70, 0x01, 0x00, 0x7F, 0x70, +0x01, 0x00, 0x8F, 0x70, 0x01, 0x00, 0x9F, 0x70, +0x01, 0x00, 0xAF, 0x70, 0x01, 0x00, 0xBF, 0x70, +0x01, 0x00, 0xCF, 0x70, 0x01, 0x00, 0xDF, 0x70, +0x01, 0x00, 0xEF, 0x70, 0x01, 0x00, 0xFF, 0x70, +0x5E, 0x00, 0xD5, 0xF7, 0x41, 0x80, 0x0B, 0x70, +0x40, 0x00, 0x1F, 0x70, 0x40, 0x00, 0x2F, 0x70, +0x40, 0x00, 0x3F, 0x70, 0x40, 0x00, 0x4F, 0x70, +0x41, 0x80, 0x5B, 0x70, 0x40, 0x00, 0x6F, 0x70, +0x41, 0x40, 0x14, 0x70, 0x41, 0x40, 0x24, 0x70, +0x41, 0x40, 0x34, 0x70, 0x41, 0x40, 0x44, 0x70, +0x41, 0x40, 0x64, 0x70, 0x41, 0x80, 0x7B, 0x70, +0x41, 0x80, 0x8B, 0x70, 0x41, 0x80, 0x9B, 0x70, +0x41, 0x80, 0xAB, 0x70, 0x41, 0x80, 0xBB, 0x70, +0x41, 0x80, 0xCB, 0x70, 0x41, 0x80, 0xDB, 0x70, +0x41, 0x80, 0xEB, 0x70, 0x41, 0x80, 0xFB, 0x70, +0x00, 0x00, 0x10, 0x00, 0x50, 0x50, 0x50, 0x50, +0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x03, 0x00, +0xEF, 0x00, 0x60, 0xB8, 0x03, 0x00, 0x00, 0xC0, +0x03, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xFF, +0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x0F, 0xC0, +0x00, 0x00, 0x20, 0x00, 0x08, 0x18, 0x07, 0x00, +0x08, 0x0C, 0x07, 0x00, 0x00, 0x00, 0x0F, 0x00, +0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, +0xFF, 0x60, 0x0F, 0x00, 0x3F, 0xD8, 0x0F, 0x00, +0xFF, 0x60, 0x07, 0x00, 0x3F, 0xD8, 0x0D, 0x00, +0xFF, 0xDE, 0x07, 0x00, 0xBF, 0xF7, 0x0D, 0x00, +0x00, 0x00, 0x00, 0x06, 0x00, 0xC0, 0x0F, 0x00, +0x12, 0x33, 0x03, 0x00, 0x11, 0x33, 0x03, 0x00, +0x12, 0x11, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, +0x31, 0xC9, 0x62, 0x49, 0x55, 0x24, 0x01, 0xFF, +0xC8, 0xFE, 0x18, 0x3E, 0xDE, 0xF0, 0xFA, 0x00, +0x44, 0x23, 0x12, 0x00, 0xFF, 0xFF, 0xFF, 0x0F, +0x00, 0xF0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x78, +0x00, 0x00, 0xF0, 0x00, 0x3F, 0xFF, 0xFE, 0xDF, +0x00, 0xFF, 0x0F, 0x00, 0x01, 0x80, 0x03, 0x70, +0x01, 0x80, 0x53, 0x70, 0x01, 0x80, 0x73, 0x70, +0x01, 0x80, 0x83, 0x70, 0x01, 0x80, 0x93, 0x70, +0x01, 0x80, 0xA3, 0x70, 0x01, 0x80, 0xB3, 0x70, +0x01, 0x80, 0xC3, 0x70, 0x01, 0x80, 0xD3, 0x70, +0x01, 0x80, 0xE3, 0x70, 0x01, 0x80, 0xF3, 0x70, +0x01, 0x80, 0x0B, 0x70, 0x01, 0x80, 0x5B, 0x70, +0x01, 0x80, 0x7B, 0x70, 0x01, 0x80, 0x8B, 0x70, +0x01, 0x80, 0x9B, 0x70, 0x01, 0x80, 0xAB, 0x70, +0x01, 0x80, 0xBB, 0x70, 0x01, 0x80, 0xCB, 0x70, +0x01, 0x80, 0xDB, 0x70, 0x01, 0x80, 0xEB, 0x70, +0x01, 0x80, 0xFB, 0x70, 0x00, 0x00, 0x00, 0xF0, +0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x60, 0x00, +0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7F, +0x00, 0x00, 0x7F, 0x00, 0x00, 0xFC, 0x01, 0x00, +0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x40, 0x00, +0x00, 0xFC, 0xF8, 0xFF, 0x00, 0x01, 0x01, 0x00, +0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x3F, +0x96, 0x02, 0x64, 0xB8, 0x00, 0x00, 0x70, 0xB8, +0x18, 0x00, 0x70, 0xB8, 0x0B, 0x00, 0x70, 0xB8, +0x02, 0x00, 0x70, 0xB8, 0x94, 0x02, 0x64, 0xB8, +0x97, 0x02, 0x64, 0xB8, 0x84, 0x02, 0x64, 0xB8, +0x54, 0x02, 0x64, 0xB8, 0x50, 0x02, 0x64, 0xB8, +0x4C, 0x02, 0x64, 0xB8, 0x04, 0x00, 0x78, 0xB8, +0x48, 0x02, 0x64, 0xB8, 0x44, 0x02, 0x64, 0xB8, +0xCC, 0x01, 0x64, 0xB8, 0x74, 0x00, 0x18, 0x2E, +0x74, 0x00, 0x19, 0x2E, 0x01, 0x00, 0x60, 0xB8, +0x01, 0x00, 0x64, 0xB8, 0x34, 0x01, 0x64, 0xB8, +0xC8, 0x01, 0x64, 0xB8, 0xC9, 0x01, 0x64, 0xB8, +0x0C, 0xEA, 0xEF, 0xFD, 0xA0, 0x01, 0x64, 0xB8, +0x48, 0x00, 0x60, 0xB8, 0xFF, 0xFF, 0xFE, 0xFF, +0x44, 0x00, 0x60, 0xB8, 0x60, 0x00, 0x60, 0xB8, +0x47, 0x00, 0x60, 0xB8, 0x46, 0x00, 0x60, 0xB8, +0x63, 0x00, 0x60, 0xB8, 0x62, 0x00, 0x60, 0xB8, +0x45, 0x00, 0x60, 0xB8, 0x61, 0x00, 0x60, 0xB8, +0xC6, 0x01, 0x64, 0xB8, 0xFF, 0xFF, 0xFF, 0x00, +0x00, 0x00, 0x00, 0x05, 0x64, 0x01, 0x64, 0xB8, +0x53, 0x05, 0x64, 0xB8, 0x80, 0x34, 0x00, 0xB8, +0x94, 0x01, 0x64, 0xB8, 0x54, 0x00, 0x60, 0xB8, +0x50, 0x00, 0x60, 0xB8, 0x30, 0x01, 0x64, 0xB8, +0x24, 0x01, 0x64, 0xB8, 0x20, 0x01, 0x64, 0xB8, +0x24, 0x11, 0x64, 0xB8, 0x20, 0x11, 0x64, 0xB8, +0x2C, 0x11, 0x64, 0xB8, 0x28, 0x11, 0x64, 0xB8, +0x34, 0x11, 0x64, 0xB8, 0x30, 0x11, 0x64, 0xB8, +0x38, 0x01, 0x64, 0xB8, 0x3C, 0x11, 0x64, 0xB8, +0x38, 0x11, 0x64, 0xB8, 0xE4, 0x11, 0x64, 0xB8, +0xE0, 0x11, 0x64, 0xB8, 0xE0, 0x12, 0x64, 0xB8, +0x02, 0x01, 0x64, 0xB8, 0x21, 0x05, 0x64, 0xB8, +0xE8, 0x10, 0x60, 0xB8, 0x00, 0x3C, 0x64, 0xB8, +0x00, 0x4C, 0x64, 0xB8, 0x00, 0x58, 0x64, 0xB8, +0x00, 0x5C, 0x64, 0xB8, 0xF8, 0x05, 0x64, 0xB8, +0x92, 0x06, 0x64, 0xB8, 0x1F, 0x07, 0x64, 0xB8, +0x1C, 0x07, 0x64, 0xB8, 0x2C, 0x04, 0x64, 0xB8, +0x2E, 0x04, 0x64, 0xB8, 0xB8, 0x05, 0x64, 0xB8, +0xBC, 0x05, 0x64, 0xB8, 0x6F, 0x01, 0x64, 0xB8, +0xFE, 0xFF, 0xFF, 0x7F, 0xA0, 0x34, 0x00, 0xB8, +0x00, 0x52, 0x00, 0xB8, 0x04, 0x52, 0x00, 0xB8, +0x08, 0x52, 0x00, 0xB8, 0x0C, 0x52, 0x00, 0xB8, +0x10, 0x52, 0x00, 0xB8, 0x30, 0x52, 0x00, 0xB8, +0x3C, 0x50, 0x00, 0xB8, 0xA4, 0x04, 0x64, 0xB8, +0xA8, 0x04, 0x64, 0xB8, 0xC0, 0x01, 0x64, 0xB8, +0xB8, 0x01, 0x64, 0xB8, 0x00, 0x00, 0x01, 0x01, +0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x04, 0x04, +0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x10, 0x10, +0x00, 0x00, 0x20, 0x20, 0x00, 0x00, 0x40, 0x40, +0x00, 0x00, 0x80, 0x80, 0x7E, 0x04, 0x64, 0xB8, +0xAC, 0x04, 0x64, 0xB8, 0x08, 0x10, 0x66, 0xB8, +0x04, 0x10, 0x66, 0xB8, 0x0C, 0x10, 0x66, 0xB8, +0x7D, 0x04, 0x64, 0xB8, 0x7C, 0x04, 0x64, 0xB8, +0x71, 0x00, 0x60, 0xB8, 0xE4, 0x00, 0x60, 0xB8, +0xE6, 0x00, 0x60, 0xB8, 0xE8, 0x00, 0x60, 0xB8, +0xE9, 0x00, 0x60, 0xB8, 0xEA, 0x00, 0x60, 0xB8, +0xEB, 0x00, 0x60, 0xB8, 0xE5, 0x00, 0x60, 0xB8, +0x44, 0x00, 0x02, 0x00, 0xA0, 0x07, 0x64, 0xB8, +0xFF, 0xFF, 0xFF, 0x7F, 0x90, 0x06, 0x64, 0xB8, +0x9A, 0x01, 0x64, 0xB8, 0x98, 0x01, 0x64, 0xB8, +0x90, 0x00, 0x60, 0xB8, 0xD0, 0x05, 0x64, 0xB8, +0xD4, 0x04, 0x60, 0xB8, 0xD4, 0x04, 0x64, 0xB8, +0x84, 0x04, 0x60, 0xB8, 0x84, 0x04, 0x64, 0xB8, +0xC8, 0x04, 0x60, 0xB8, 0xC8, 0x04, 0x64, 0xB8, +0x78, 0x04, 0x60, 0xB8, 0x78, 0x04, 0x64, 0xB8, +0x0D, 0xEA, 0xEF, 0xFD, 0xFF, 0xFF, 0xFB, 0xFF, +0x9C, 0x02, 0x64, 0xB8, 0xA0, 0x02, 0x64, 0xB8, +0x04, 0x06, 0x64, 0xB8, 0xFF, 0xFF, 0xFF, 0xFE, +0x60, 0x16, 0x64, 0xB8, 0x20, 0x00, 0x78, 0xB8, +0x10, 0x00, 0x78, 0xB8, 0x03, 0x00, 0x78, 0xB8, +0xFF, 0xFF, 0x01, 0xFF, 0x05, 0x00, 0x78, 0xB8, +0x12, 0x05, 0x64, 0xB8, 0x10, 0x05, 0x64, 0xB8, +0x09, 0x00, 0x78, 0xB8, 0x14, 0x00, 0x78, 0xB8, +0xFF, 0xFF, 0x00, 0xF0, 0x00, 0x00, 0x30, 0x80, +0x00, 0x12, 0x00, 0x04, 0x08, 0x00, 0x78, 0xB8, +0x0C, 0x00, 0x78, 0xB8, 0x18, 0x00, 0x78, 0xB8, +0x04, 0x18, 0x66, 0xB8, 0x00, 0x18, 0x66, 0xB8, +0x10, 0x00, 0x66, 0xB8, 0x11, 0x00, 0x66, 0xB8, +0x12, 0x00, 0x66, 0xB8, 0x13, 0x00, 0x66, 0xB8, +0x14, 0x00, 0x66, 0xB8, 0x15, 0x00, 0x66, 0xB8, +0xD4, 0x07, 0x64, 0xB8, 0xBC, 0x06, 0x64, 0xB8, +0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, +0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, +0x00, 0x00, 0x00, 0x00, 0x73, 0x65, 0x74, 0x5F, +0x74, 0x78, 0x2C, 0x69, 0x64, 0x3D, 0x25, 0x62, +0x78, 0x2C, 0x31, 0x73, 0x73, 0x3D, 0x25, 0x62, +0x78, 0x21, 0x0A, 0x00, 0x50, 0x45, 0x52, 0x20, +0x52, 0x50, 0x54, 0x3A, 0x20, 0x6D, 0x69, 0x64, +0x25, 0x62, 0x58, 0x2C, 0x52, 0x3A, 0x25, 0x62, +0x78, 0x2C, 0x72, 0x74, 0x3A, 0x25, 0x62, 0x78, +0x2C, 0x62, 0x77, 0x3A, 0x25, 0x62, 0x78, 0x00, +0x50, 0x45, 0x52, 0x20, 0x52, 0x50, 0x54, 0x3A, +0x20, 0x6D, 0x69, 0x64, 0x25, 0x62, 0x58, 0x2C, +0x54, 0x54, 0x3A, 0x25, 0x77, 0x78, 0x00, 0x00, +0x50, 0x45, 0x52, 0x20, 0x52, 0x50, 0x54, 0x3A, +0x20, 0x25, 0x62, 0x58, 0x2C, 0x25, 0x62, 0x78, +0x2C, 0x25, 0x62, 0x78, 0x2C, 0x25, 0x62, 0x78, +0x2C, 0x25, 0x62, 0x58, 0x2C, 0x25, 0x62, 0x78, +0x2C, 0x25, 0x62, 0x78, 0x2C, 0x25, 0x62, 0x78, +0x2C, 0x25, 0x62, 0x58, 0x2C, 0x25, 0x62, 0x78, +0x2C, 0x25, 0x62, 0x78, 0x2C, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x52, 0x65, 0x71, 0x20, +0x50, 0x45, 0x52, 0x20, 0x43, 0x4D, 0x44, 0x3A, +0x20, 0x47, 0x72, 0x3A, 0x25, 0x62, 0x58, 0x2C, +0x20, 0x54, 0x59, 0x50, 0x3A, 0x25, 0x62, 0x78, +0x2C, 0x20, 0x62, 0x74, 0x6D, 0x70, 0x3A, 0x25, +0x78, 0x00, 0x00, 0x00, 0x52, 0x65, 0x71, 0x20, +0x50, 0x45, 0x52, 0x20, 0x43, 0x4D, 0x44, 0x3A, +0x20, 0x49, 0x64, 0x78, 0x3A, 0x25, 0x62, 0x78, +0x2C, 0x20, 0x6D, 0x69, 0x64, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x52, 0x65, 0x71, 0x20, +0x50, 0x45, 0x52, 0x20, 0x43, 0x4D, 0x44, 0x3A, +0x20, 0x49, 0x64, 0x78, 0x3A, 0x25, 0x62, 0x78, +0x2C, 0x20, 0x4D, 0x69, 0x64, 0x3A, 0x25, 0x62, +0x78, 0x2C, 0x20, 0x25, 0x62, 0x78, 0x2C, 0x20, +0x25, 0x62, 0x78, 0x00, 0x53, 0x65, 0x74, 0x5F, +0x50, 0x6E, 0x74, 0x79, 0x00, 0x00, 0x00, 0x00, +0x53, 0x65, 0x74, 0x5F, 0x52, 0x41, 0x5F, 0x55, +0x70, 0x5F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x5F, +0x66, 0x6F, 0x72, 0x5F, 0x52, 0x41, 0x5F, 0x64, +0x65, 0x62, 0x75, 0x67, 0x00, 0x00, 0x00, 0x00, +0x53, 0x65, 0x74, 0x5F, 0x44, 0x6F, 0x77, 0x6E, +0x5F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x00, 0x00, +0x76, 0x61, 0x6C, 0x75, 0x65, 0x38, 0x3D, 0x30, +0x78, 0x25, 0x62, 0x58, 0x2C, 0x20, 0x76, 0x61, +0x6C, 0x75, 0x65, 0x31, 0x36, 0x3D, 0x30, 0x78, +0x25, 0x77, 0x78, 0x2C, 0x20, 0x76, 0x61, 0x6C, +0x75, 0x65, 0x33, 0x32, 0x3D, 0x30, 0x78, 0x25, +0x78, 0x00, 0x00, 0x00, 0x48, 0x32, 0x43, 0x42, +0x46, 0x45, 0x6E, 0x74, 0x00, 0x00, 0x00, 0x00, +0x45, 0x6E, 0x3A, 0x25, 0x62, 0x78, 0x20, 0x4E, +0x63, 0x3A, 0x25, 0x62, 0x78, 0x20, 0x4D, 0x3A, +0x25, 0x62, 0x78, 0x00, 0x44, 0x69, 0x73, 0x3A, +0x25, 0x62, 0x78, 0x20, 0x4E, 0x63, 0x3A, 0x25, +0x62, 0x78, 0x20, 0x4D, 0x3A, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x49, 0x6E, 0x69, 0x74, +0x42, 0x79, 0x52, 0x53, 0x53, 0x49, 0x3A, 0x25, +0x62, 0x78, 0x20, 0x25, 0x62, 0x78, 0x20, 0x25, +0x62, 0x78, 0x00, 0x00, 0x52, 0x53, 0x53, 0x49, +0x5F, 0x43, 0x4D, 0x44, 0x3A, 0x25, 0x62, 0x78, +0x20, 0x25, 0x62, 0x78, 0x20, 0x25, 0x62, 0x78, +0x20, 0x25, 0x62, 0x78, 0x20, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x52, 0x53, 0x53, 0x49, +0x43, 0x4D, 0x44, 0x20, 0x44, 0x72, 0x76, 0x46, +0x69, 0x78, 0x3A, 0x25, 0x62, 0x78, 0x20, 0x25, +0x62, 0x78, 0x20, 0x25, 0x62, 0x78, 0x00, 0x00, +0x4D, 0x61, 0x73, 0x6B, 0x31, 0x20, 0x25, 0x78, +0x00, 0x00, 0x00, 0x00, 0x49, 0x44, 0x3A, 0x25, +0x62, 0x78, 0x2C, 0x49, 0x6E, 0x42, 0x77, 0x3A, +0x25, 0x62, 0x78, 0x2C, 0x42, 0x77, 0x3A, 0x25, +0x62, 0x78, 0x2C, 0x53, 0x47, 0x49, 0x3A, 0x25, +0x62, 0x78, 0x2C, 0x56, 0x48, 0x54, 0x3A, 0x25, +0x62, 0x78, 0x00, 0x00, 0x44, 0x52, 0x61, 0x3A, +0x25, 0x62, 0x78, 0x2C, 0x44, 0x50, 0x74, 0x3A, +0x25, 0x62, 0x78, 0x2C, 0x52, 0x61, 0x49, 0x64, +0x3A, 0x25, 0x62, 0x78, 0x2C, 0x6C, 0x76, 0x3A, +0x25, 0x62, 0x78, 0x2C, 0x6E, 0x55, 0x70, 0x42, +0x77, 0x3A, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x4D, 0x61, 0x73, 0x6B, 0x30, 0x20, 0x25, 0x78, +0x00, 0x00, 0x00, 0x00, 0x52, 0x65, 0x73, 0x65, +0x74, 0x20, 0x54, 0x78, 0x52, 0x70, 0x74, 0x00, +0x49, 0x44, 0x3D, 0x25, 0x62, 0x78, 0x2C, 0x52, +0x5B, 0x25, 0x62, 0x78, 0x5D, 0x2C, 0x52, 0x61, +0x74, 0x65, 0x3D, 0x25, 0x62, 0x78, 0x2D, 0x3E, +0x25, 0x62, 0x78, 0x2C, 0x54, 0x3A, 0x25, 0x62, +0x78, 0x2C, 0x4F, 0x6B, 0x3A, 0x25, 0x62, 0x78, +0x2C, 0x44, 0x70, 0x3A, 0x25, 0x62, 0x78, 0x2C, +0x54, 0x72, 0x79, 0x3A, 0x25, 0x62, 0x78, 0x00, +0x44, 0x72, 0x76, 0x46, 0x69, 0x78, 0x52, 0x61, +0x74, 0x65, 0x00, 0x00, 0x52, 0x54, 0x53, 0x20, +0x44, 0x72, 0x6F, 0x70, 0x00, 0x00, 0x00, 0x00, +0x53, 0x55, 0x20, 0x52, 0x61, 0x74, 0x65, 0x20, +0x52, 0x70, 0x74, 0x3A, 0x25, 0x62, 0x78, 0x21, +0x3D, 0x43, 0x54, 0x52, 0x4C, 0x3A, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x44, 0x69, 0x73, 0x52, +0x41, 0x20, 0x49, 0x44, 0x25, 0x62, 0x78, 0x00, +0x31, 0x52, 0x70, 0x74, 0x25, 0x62, 0x78, 0x20, +0x50, 0x72, 0x74, 0x79, 0x25, 0x62, 0x78, 0x20, +0x43, 0x54, 0x72, 0x79, 0x25, 0x62, 0x78, 0x00, +0x54, 0x3D, 0x4F, 0x4B, 0x2B, 0x44, 0x52, 0x4F, +0x50, 0x00, 0x00, 0x00, 0x54, 0x21, 0x3D, 0x4F, +0x4B, 0x2B, 0x44, 0x52, 0x4F, 0x50, 0x00, 0x00, +0x5B, 0x44, 0x65, 0x63, 0x5D, 0x54, 0x5F, 0x61, +0x63, 0x63, 0x25, 0x62, 0x78, 0x2C, 0x74, 0x72, +0x79, 0x5F, 0x6E, 0x65, 0x73, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x44, 0x6F, 0x20, 0x52, +0x41, 0x20, 0x25, 0x62, 0x78, 0x2C, 0x20, 0x74, +0x68, 0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x54, 0x62, 0x74, 0x74, 0x52, 0x41, 0x20, 0x25, +0x62, 0x78, 0x00, 0x00, 0x50, 0x45, 0x52, 0x3A, +0x4E, 0x65, 0x77, 0x4D, 0x61, 0x3A, 0x25, 0x62, +0x78, 0x2C, 0x20, 0x4F, 0x6C, 0x64, 0x4D, 0x61, +0x3A, 0x25, 0x62, 0x78, 0x2C, 0x20, 0x43, 0x75, +0x72, 0x3A, 0x25, 0x62, 0x78, 0x20, 0x00, 0x00, +0x4D, 0x61, 0x70, 0x3A, 0x25, 0x62, 0x78, 0x20, +0x44, 0x69, 0x66, 0x3A, 0x25, 0x62, 0x78, 0x20, +0x6F, 0x66, 0x74, 0x3A, 0x25, 0x62, 0x78, 0x00, +0x56, 0x41, 0x52, 0x3A, 0x20, 0x25, 0x62, 0x78, +0x2D, 0x3E, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x44, 0x65, 0x63, 0x5F, 0x6F, 0x66, 0x73, 0x74, +0x7B, 0x50, 0x2C, 0x4E, 0x7D, 0x3A, 0x20, 0x25, +0x62, 0x78, 0x2C, 0x25, 0x62, 0x78, 0x00, 0x00, +0x30, 0x55, 0x70, 0x25, 0x62, 0x78, 0x2C, 0x44, +0x77, 0x6E, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x31, 0x55, 0x70, 0x25, 0x62, 0x78, 0x2C, 0x44, +0x77, 0x6E, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x53, 0x74, 0x61, 0x72, 0x74, 0x25, 0x62, 0x78, +0x3A, 0x25, 0x62, 0x78, 0x2D, 0x3E, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x4D, 0x74, 0x42, 0x77, +0x20, 0x55, 0x70, 0x44, 0x77, 0x25, 0x62, 0x78, +0x20, 0x42, 0x57, 0x25, 0x62, 0x78, 0x20, 0x52, +0x74, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x48, 0x69, 0x74, 0x25, 0x62, 0x78, 0x20, 0x52, +0x74, 0x30, 0x3D, 0x25, 0x77, 0x78, 0x20, 0x52, +0x74, 0x31, 0x3D, 0x25, 0x77, 0x78, 0x00, 0x00, +0x6C, 0x6D, 0x74, 0x20, 0x52, 0x25, 0x62, 0x78, +0x20, 0x4C, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x52, 0x53, 0x53, 0x49, 0x20, 0x52, 0x6C, 0x73, +0x4C, 0x6D, 0x74, 0x00, 0x52, 0x53, 0x53, 0x49, +0x20, 0x49, 0x6E, 0x4C, 0x6D, 0x74, 0x00, 0x00, +0x4C, 0x6D, 0x74, 0x20, 0x31, 0x53, 0x53, 0x25, +0x62, 0x78, 0x20, 0x25, 0x62, 0x78, 0x2C, 0x32, +0x53, 0x53, 0x25, 0x62, 0x78, 0x20, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x57, 0x72, 0x69, 0x74, +0x65, 0x45, 0x6E, 0x3A, 0x25, 0x62, 0x78, 0x20, +0x42, 0x46, 0x63, 0x74, 0x72, 0x6C, 0x3A, 0x25, +0x62, 0x78, 0x00, 0x00, 0x52, 0x65, 0x63, 0x45, +0x6E, 0x3A, 0x25, 0x62, 0x78, 0x20, 0x42, 0x46, +0x63, 0x74, 0x72, 0x6C, 0x3A, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x53, 0x6E, 0x64, 0x44, +0x20, 0x4D, 0x3A, 0x25, 0x62, 0x78, 0x20, 0x52, +0x3A, 0x25, 0x62, 0x78, 0x20, 0x52, 0x25, 0x62, +0x78, 0x20, 0x43, 0x74, 0x3A, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x41, 0x70, 0x70, 0x6C, +0x56, 0x3A, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x4E, 0x61, 0x70, 0x70, 0x6C, 0x56, 0x3A, 0x25, +0x62, 0x78, 0x00, 0x00, 0x53, 0x74, 0x6F, 0x72, +0x45, 0x6E, 0x3A, 0x25, 0x62, 0x78, 0x20, 0x42, +0x46, 0x63, 0x74, 0x72, 0x6C, 0x3A, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x52, 0x74, 0x25, 0x62, +0x78, 0x2C, 0x52, 0x74, 0x5F, 0x63, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x48, 0x52, 0x3A, 0x25, +0x62, 0x78, 0x2C, 0x4C, 0x52, 0x3A, 0x25, 0x62, +0x78, 0x2C, 0x54, 0x79, 0x70, 0x65, 0x3A, 0x25, +0x62, 0x78, 0x00, 0x00, 0x46, 0x69, 0x78, 0x20, +0x69, 0x64, 0x3D, 0x25, 0x62, 0x78, 0x20, 0x42, +0x77, 0x3D, 0x25, 0x62, 0x78, 0x20, 0x52, 0x74, +0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x49, 0x44, 0x3D, 0x25, 0x62, 0x78, 0x2C, 0x42, +0x43, 0x6E, 0x74, 0x3D, 0x25, 0x62, 0x78, 0x2C, +0x42, 0x54, 0x3A, 0x25, 0x78, 0x2C, 0x42, 0x4F, +0x6B, 0x3A, 0x25, 0x78, 0x00, 0x00, 0x00, 0x00, +0x49, 0x44, 0x3D, 0x25, 0x62, 0x78, 0x2C, 0x42, +0x52, 0x61, 0x74, 0x65, 0x3D, 0x25, 0x62, 0x78, +0x2C, 0x42, 0x50, 0x45, 0x52, 0x3A, 0x25, 0x78, +0x00, 0x00, 0x00, 0x00, 0x52, 0x61, 0x4F, 0x63, +0x63, 0x4E, 0x75, 0x6D, 0x25, 0x62, 0x78, 0x00, +0x55, 0x70, 0x52, 0x61, 0x74, 0x65, 0x25, 0x62, +0x78, 0x20, 0x42, 0x57, 0x25, 0x62, 0x78, 0x20, +0x4D, 0x61, 0x78, 0x42, 0x57, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x31, 0x2E, 0x48, 0x2D, +0x65, 0x73, 0x74, 0x20, 0x25, 0x62, 0x78, 0x00, +0x32, 0x2E, 0x48, 0x2D, 0x65, 0x73, 0x74, 0x53, +0x20, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x33, 0x2E, 0x3E, 0x48, 0x2D, 0x65, 0x73, 0x74, +0x20, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x34, 0x2E, 0x4D, 0x2D, 0x42, 0x77, 0x55, 0x70, +0x20, 0x52, 0x61, 0x74, 0x65, 0x3A, 0x25, 0x62, +0x78, 0x2C, 0x20, 0x42, 0x77, 0x3A, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x35, 0x2E, 0x42, 0x77, +0x55, 0x70, 0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, +0x36, 0x2E, 0x53, 0x47, 0x49, 0x5F, 0x55, 0x70, +0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x25, 0x62, 0x78, 0x3A, 0x25, 0x62, 0x78, 0x2D, +0x3E, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x37, 0x2E, 0x52, 0x61, 0x74, 0x65, 0x55, 0x70, +0x25, 0x62, 0x78, 0x00, 0x30, 0x52, 0x74, 0x25, +0x62, 0x78, 0x20, 0x25, 0x62, 0x78, 0x20, 0x25, +0x62, 0x78, 0x00, 0x00, 0x31, 0x52, 0x74, 0x25, +0x62, 0x78, 0x20, 0x25, 0x62, 0x78, 0x20, 0x25, +0x62, 0x78, 0x00, 0x00, 0x4E, 0x6F, 0x20, 0x55, +0x70, 0x20, 0x52, 0x61, 0x74, 0x65, 0x00, 0x00, +0x32, 0x52, 0x74, 0x3A, 0x25, 0x62, 0x78, 0x20, +0x25, 0x62, 0x78, 0x20, 0x25, 0x62, 0x78, 0x2C, +0x54, 0x72, 0x79, 0x3D, 0x25, 0x62, 0x78, 0x2C, +0x4D, 0x2D, 0x54, 0x72, 0x79, 0x3D, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x44, 0x6E, 0x52, 0x61, +0x74, 0x65, 0x25, 0x62, 0x78, 0x20, 0x42, 0x57, +0x25, 0x62, 0x78, 0x20, 0x4D, 0x61, 0x78, 0x42, +0x57, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x35, 0x2E, 0x42, 0x77, 0x44, 0x77, 0x6E, 0x3D, +0x25, 0x62, 0x78, 0x00, 0x36, 0x2E, 0x53, 0x47, +0x49, 0x5F, 0x44, 0x77, 0x3D, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x37, 0x2E, 0x52, 0x61, +0x74, 0x65, 0x44, 0x77, 0x6E, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x52, 0x74, 0x3A, 0x25, +0x62, 0x78, 0x20, 0x25, 0x62, 0x78, 0x20, 0x25, +0x62, 0x78, 0x2C, 0x54, 0x72, 0x79, 0x3D, 0x25, +0x62, 0x78, 0x2C, 0x4D, 0x2D, 0x54, 0x72, 0x79, +0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x54, 0x72, 0x79, 0x69, 0x6E, 0x67, 0x00, 0x00, +0x3E, 0x48, 0x2D, 0x65, 0x73, 0x74, 0x20, 0x52, +0x74, 0x00, 0x00, 0x00, 0x49, 0x44, 0x3A, 0x25, +0x62, 0x78, 0x2C, 0x4F, 0x6B, 0x25, 0x62, 0x78, +0x2C, 0x54, 0x6F, 0x74, 0x25, 0x62, 0x78, 0x2C, +0x44, 0x70, 0x25, 0x62, 0x78, 0x2C, 0x61, 0x2D, +0x4F, 0x4B, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x50, 0x45, 0x52, 0x25, 0x62, 0x78, 0x2C, 0x52, +0x44, 0x52, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x42, 0x77, 0x3D, 0x25, 0x62, 0x78, 0x2C, 0x42, +0x77, 0x32, 0x3D, 0x25, 0x62, 0x78, 0x2C, 0x52, +0x74, 0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x32, 0x55, 0x70, 0x25, 0x62, 0x78, 0x2C, 0x44, +0x77, 0x6E, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x46, 0x77, 0x20, 0x46, 0x69, 0x78, 0x20, 0x52, +0x61, 0x74, 0x65, 0x00, 0x46, 0x6F, 0x72, 0x63, +0x65, 0x52, 0x61, 0x74, 0x65, 0x44, 0x77, 0x00, +0x52, 0x74, 0x44, 0x77, 0x6E, 0x43, 0x6E, 0x74, +0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x52, 0x61, 0x74, 0x65, 0x20, 0x44, 0x6F, 0x77, +0x6E, 0x00, 0x00, 0x00, 0x52, 0x74, 0x55, 0x70, +0x43, 0x6E, 0x74, 0x3D, 0x25, 0x62, 0x78, 0x00, +0x52, 0x61, 0x74, 0x65, 0x20, 0x55, 0x50, 0x00, +0x52, 0x61, 0x74, 0x65, 0x20, 0x53, 0x74, 0x61, +0x79, 0x00, 0x00, 0x00, 0x49, 0x6E, 0x69, 0x74, +0x52, 0x61, 0x74, 0x65, 0x20, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x52, 0x61, 0x44, 0x77, +0x6E, 0x54, 0x72, 0x79, 0x20, 0x52, 0x61, 0x74, +0x65, 0x3D, 0x25, 0x62, 0x78, 0x2C, 0x42, 0x77, +0x25, 0x62, 0x78, 0x00, 0x54, 0x72, 0x79, 0x53, +0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x00, 0x00, +0x54, 0x72, 0x79, 0x66, 0x61, 0x69, 0x6C, 0x00, +0x4D, 0x74, 0x54, 0x72, 0x79, 0x49, 0x64, 0x78, +0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x4D, 0x74, 0x54, 0x72, 0x79, 0x42, 0x57, 0x3D, +0x25, 0x62, 0x78, 0x00, 0x54, 0x72, 0x79, 0x20, +0x52, 0x74, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x5B, 0x54, 0x72, 0x79, 0x20, 0x44, 0x65, 0x63, +0x5D, 0x00, 0x00, 0x00, 0x4F, 0x6B, 0x25, 0x62, +0x78, 0x2C, 0x54, 0x6F, 0x74, 0x25, 0x62, 0x78, +0x2C, 0x44, 0x70, 0x25, 0x62, 0x78, 0x2C, 0x61, +0x2D, 0x4F, 0x4B, 0x25, 0x62, 0x78, 0x00, 0x00, +0x42, 0x77, 0x25, 0x62, 0x78, 0x2C, 0x52, 0x74, +0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x62, 0x77, 0x20, 0x25, 0x77, 0x78, 0x2D, 0x3E, +0x25, 0x77, 0x78, 0x00, 0x50, 0x72, 0x6F, 0x62, +0x20, 0x25, 0x62, 0x78, 0x2D, 0x3E, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x52, 0x61, 0x74, 0x65, +0x20, 0x25, 0x62, 0x78, 0x2D, 0x3E, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x54, 0x72, 0x70, 0x74, +0x20, 0x25, 0x77, 0x78, 0x2D, 0x3E, 0x25, 0x77, +0x78, 0x00, 0x00, 0x00, 0x53, 0x65, 0x74, 0x20, +0x4C, 0x6D, 0x74, 0x20, 0x25, 0x62, 0x78, 0x00, +0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x3D, 0x25, +0x62, 0x78, 0x00, 0x00, 0x44, 0x6F, 0x20, 0x6E, +0x6F, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x31, +0x52, 0x43, 0x43, 0x41, 0x20, 0x77, 0x68, 0x65, +0x6E, 0x20, 0x72, 0x78, 0x20, 0x63, 0x6F, 0x6E, +0x66, 0x69, 0x67, 0x20, 0x69, 0x73, 0x20, 0x6E, +0x6F, 0x74, 0x20, 0x32, 0x52, 0x21, 0x00, 0x00, +0x25, 0x73, 0x20, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, +0x3D, 0x3E, 0x0A, 0x00, 0x55, 0x6E, 0x73, 0x75, +0x70, 0x70, 0x6F, 0x72, 0x74, 0x65, 0x64, 0x20, +0x70, 0x61, 0x74, 0x68, 0x20, 0x28, 0x25, 0x64, +0x29, 0x0A, 0x00, 0x00, 0x64, 0x69, 0x66, 0x66, +0x3D, 0x25, 0x64, 0x20, 0x72, 0x65, 0x66, 0x3D, +0x25, 0x64, 0x0A, 0x00, 0x70, 0x61, 0x74, 0x68, +0x2D, 0x25, 0x64, 0x20, 0x72, 0x61, 0x74, 0x65, +0x20, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x20, 0x30, +0x78, 0x25, 0x78, 0x20, 0x3D, 0x20, 0x30, 0x78, +0x25, 0x78, 0x0A, 0x00, 0x44, 0x69, 0x73, 0x61, +0x62, 0x6C, 0x65, 0x20, 0x50, 0x48, 0x59, 0x20, +0x41, 0x50, 0x49, 0x20, 0x66, 0x6F, 0x72, 0x20, +0x64, 0x65, 0x62, 0x75, 0x67, 0x0A, 0x00, 0x00, +0x55, 0x6E, 0x73, 0x75, 0x70, 0x70, 0x6F, 0x72, +0x74, 0x65, 0x64, 0x20, 0x72, 0x61, 0x74, 0x65, +0x0A, 0x00, 0x00, 0x00, 0x72, 0x61, 0x74, 0x65, +0x20, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x20, 0x30, +0x78, 0x25, 0x78, 0x20, 0x28, 0x30, 0x78, 0x25, +0x78, 0x29, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, +0x78, 0x0A, 0x00, 0x00, 0x70, 0x61, 0x74, 0x68, +0x2D, 0x25, 0x64, 0x20, 0x72, 0x61, 0x74, 0x65, +0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x25, 0x64, +0x20, 0x28, 0x30, 0x78, 0x25, 0x78, 0x29, 0x20, +0x3D, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0A, 0x00, +0x52, 0x46, 0x2D, 0x25, 0x64, 0x20, 0x30, 0x78, +0x25, 0x78, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, +0x78, 0x20, 0x2C, 0x20, 0x62, 0x69, 0x74, 0x20, +0x6D, 0x61, 0x73, 0x6B, 0x20, 0x3D, 0x20, 0x30, +0x78, 0x25, 0x78, 0x0A, 0x00, 0x00, 0x00, 0x00, +0x52, 0x46, 0x2D, 0x25, 0x64, 0x20, 0x30, 0x78, +0x25, 0x78, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, +0x78, 0x2C, 0x20, 0x62, 0x69, 0x74, 0x20, 0x6D, +0x61, 0x73, 0x6B, 0x20, 0x3D, 0x20, 0x30, 0x78, +0x25, 0x78, 0x0A, 0x00, 0x5B, 0x38, 0x38, 0x32, +0x32, 0x43, 0x5D, 0x20, 0x55, 0x70, 0x64, 0x61, +0x74, 0x65, 0x20, 0x52, 0x46, 0x45, 0x20, 0x50, +0x49, 0x4E, 0x73, 0x3A, 0x20, 0x54, 0x2F, 0x52, +0x58, 0x5F, 0x70, 0x61, 0x74, 0x68, 0x3A, 0x7B, +0x30, 0x78, 0x25, 0x78, 0x2C, 0x20, 0x30, 0x78, +0x25, 0x78, 0x7D, 0x2C, 0x20, 0x72, 0x66, 0x65, +0x5F, 0x74, 0x79, 0x70, 0x65, 0x3A, 0x25, 0x64, +0x0A, 0x00, 0x00, 0x00, 0x49, 0x6E, 0x76, 0x61, +0x6C, 0x69, 0x64, 0x20, 0x70, 0x61, 0x74, 0x68, +0x3D, 0x25, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x00, +0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x66, 0x61, +0x69, 0x6C, 0x2C, 0x20, 0x52, 0x46, 0x20, 0x69, +0x73, 0x20, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6C, +0x65, 0x0A, 0x00, 0x00, 0x52, 0x46, 0x2D, 0x25, +0x64, 0x20, 0x30, 0x78, 0x25, 0x78, 0x20, 0x3D, +0x20, 0x30, 0x78, 0x25, 0x78, 0x20, 0x28, 0x6F, +0x72, 0x69, 0x67, 0x69, 0x6E, 0x61, 0x6C, 0x3A, +0x20, 0x30, 0x78, 0x25, 0x78, 0x29, 0x2C, 0x20, +0x62, 0x69, 0x74, 0x20, 0x6D, 0x61, 0x73, 0x6B, +0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0A, +0x00, 0x00, 0x00, 0x00, 0x5B, 0x57, 0x61, 0x72, +0x6E, 0x69, 0x6E, 0x67, 0x5D, 0x5B, 0x25, 0x73, +0x5D, 0x20, 0x50, 0x6B, 0x67, 0x5F, 0x76, 0x65, +0x72, 0x7B, 0x62, 0x62, 0x2C, 0x20, 0x72, 0x66, +0x7D, 0x3D, 0x7B, 0x25, 0x64, 0x2C, 0x20, 0x25, +0x64, 0x7D, 0x20, 0x64, 0x69, 0x73, 0x61, 0x62, +0x6C, 0x65, 0x20, 0x61, 0x6C, 0x6C, 0x20, 0x42, +0x42, 0x20, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x0A, +0x00, 0x00, 0x00, 0x00, 0x50, 0x72, 0x65, 0x20, +0x73, 0x65, 0x74, 0x74, 0x69, 0x6E, 0x67, 0x3A, +0x20, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6C, 0x65, +0x20, 0x4F, 0x46, 0x44, 0x4D, 0x20, 0x61, 0x6E, +0x64, 0x20, 0x43, 0x43, 0x4B, 0x20, 0x62, 0x6C, +0x6F, 0x63, 0x6B, 0x0A, 0x00, 0x00, 0x00, 0x00, +0x50, 0x6F, 0x73, 0x74, 0x20, 0x73, 0x65, 0x74, +0x74, 0x69, 0x6E, 0x67, 0x3A, 0x20, 0x65, 0x6E, +0x61, 0x62, 0x6C, 0x65, 0x20, 0x4F, 0x46, 0x44, +0x4D, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x43, 0x43, +0x4B, 0x20, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x0A, +0x00, 0x00, 0x00, 0x00, 0x57, 0x72, 0x6F, 0x6E, +0x67, 0x20, 0x74, 0x79, 0x70, 0x65, 0x21, 0x21, +0x0A, 0x00, 0x00, 0x00, 0x44, 0x69, 0x73, 0x61, +0x62, 0x6C, 0x65, 0x20, 0x50, 0x48, 0x59, 0x20, +0x41, 0x50, 0x49, 0x20, 0x66, 0x6F, 0x72, 0x20, +0x64, 0x65, 0x62, 0x75, 0x67, 0x21, 0x21, 0x0A, +0x00, 0x00, 0x00, 0x00, 0x46, 0x61, 0x69, 0x6C, +0x20, 0x74, 0x6F, 0x20, 0x73, 0x77, 0x69, 0x74, +0x63, 0x68, 0x20, 0x62, 0x77, 0x28, 0x62, 0x77, +0x3A, 0x25, 0x64, 0x2C, 0x20, 0x70, 0x72, 0x69, +0x20, 0x63, 0x68, 0x3A, 0x25, 0x64, 0x29, 0x0A, +0x00, 0x00, 0x00, 0x00, 0x46, 0x61, 0x69, 0x6C, +0x20, 0x74, 0x6F, 0x20, 0x73, 0x77, 0x69, 0x74, +0x63, 0x68, 0x20, 0x62, 0x77, 0x20, 0x28, 0x62, +0x77, 0x3A, 0x25, 0x64, 0x2C, 0x20, 0x70, 0x72, +0x69, 0x20, 0x63, 0x68, 0x3A, 0x25, 0x64, 0x29, +0x0A, 0x00, 0x00, 0x00, 0x46, 0x61, 0x69, 0x6C, +0x20, 0x74, 0x6F, 0x20, 0x73, 0x77, 0x69, 0x74, +0x63, 0x68, 0x20, 0x62, 0x77, 0x20, 0x28, 0x62, +0x77, 0x3A, 0x25, 0x64, 0x2C, 0x20, 0x70, 0x72, +0x69, 0x6D, 0x61, 0x72, 0x79, 0x20, 0x63, 0x68, +0x3A, 0x25, 0x64, 0x29, 0x2C, 0x20, 0x62, 0x65, +0x63, 0x61, 0x75, 0x73, 0x65, 0x20, 0x77, 0x72, +0x69, 0x74, 0x69, 0x6E, 0x67, 0x20, 0x52, 0x46, +0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, +0x72, 0x20, 0x69, 0x73, 0x20, 0x66, 0x61, 0x69, +0x6C, 0x0A, 0x00, 0x00, 0x53, 0x75, 0x63, 0x63, +0x65, 0x73, 0x73, 0x20, 0x74, 0x6F, 0x20, 0x73, +0x77, 0x69, 0x74, 0x63, 0x68, 0x20, 0x62, 0x77, +0x20, 0x28, 0x62, 0x77, 0x3A, 0x25, 0x64, 0x2C, +0x20, 0x70, 0x72, 0x69, 0x20, 0x63, 0x68, 0x3A, +0x25, 0x64, 0x29, 0x0A, 0x00, 0x00, 0x00, 0x00, +0x70, 0x61, 0x74, 0x68, 0x5F, 0x73, 0x65, 0x6C, +0x5F, 0x32, 0x73, 0x73, 0x2F, 0x31, 0x73, 0x73, +0x2F, 0x63, 0x63, 0x6B, 0x3D, 0x7B, 0x25, 0x64, +0x2C, 0x20, 0x25, 0x64, 0x2C, 0x20, 0x25, 0x64, +0x7D, 0x0A, 0x00, 0x00, 0x5B, 0x25, 0x73, 0x5D, +0x20, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6C, 0x65, +0x20, 0x50, 0x48, 0x59, 0x20, 0x41, 0x50, 0x49, +0x0A, 0x00, 0x00, 0x00, 0x5B, 0x57, 0x61, 0x72, +0x6E, 0x69, 0x6E, 0x67, 0x5D, 0x5B, 0x25, 0x73, +0x5D, 0x20, 0x52, 0x58, 0x3A, 0x30, 0x78, 0x25, +0x78, 0x0A, 0x00, 0x00, 0x5B, 0x57, 0x61, 0x72, +0x6E, 0x69, 0x6E, 0x67, 0x5D, 0x5B, 0x25, 0x73, +0x5D, 0x20, 0x54, 0x58, 0x3A, 0x30, 0x78, 0x25, +0x78, 0x0A, 0x00, 0x00, 0x52, 0x58, 0x5F, 0x65, +0x6E, 0x3D, 0x25, 0x78, 0x2C, 0x20, 0x74, 0x78, +0x5F, 0x65, 0x6E, 0x2F, 0x32, 0x73, 0x73, 0x2F, +0x31, 0x73, 0x73, 0x3D, 0x7B, 0x25, 0x78, 0x2C, +0x25, 0x78, 0x2C, 0x25, 0x78, 0x7D, 0x0A, 0x00, +0x44, 0x69, 0x73, 0x61, 0x62, 0x6C, 0x65, 0x20, +0x50, 0x48, 0x59, 0x20, 0x41, 0x50, 0x49, 0x0A, +0x00, 0x00, 0x00, 0x00, 0x45, 0x72, 0x72, 0x6F, +0x72, 0x20, 0x43, 0x48, 0x3A, 0x25, 0x64, 0x0A, +0x00, 0x00, 0x00, 0x00, 0x49, 0x6E, 0x76, 0x61, +0x6C, 0x69, 0x64, 0x20, 0x52, 0x46, 0x5F, 0x30, +0x78, 0x31, 0x38, 0x0A, 0x00, 0x00, 0x00, 0x00, +0x5B, 0x25, 0x73, 0x5D, 0x74, 0x78, 0x5F, 0x31, +0x73, 0x73, 0x20, 0x69, 0x73, 0x20, 0x6E, 0x6F, +0x6E, 0x21, 0x2C, 0x20, 0x75, 0x70, 0x64, 0x61, +0x74, 0x65, 0x20, 0x74, 0x78, 0x5F, 0x31, 0x73, +0x74, 0x73, 0x3A, 0x25, 0x64, 0x0A, 0x00, 0x00, +0x5B, 0x25, 0x73, 0x5D, 0x74, 0x78, 0x5F, 0x61, +0x6E, 0x74, 0x5F, 0x73, 0x74, 0x61, 0x74, 0x75, +0x73, 0x20, 0x69, 0x73, 0x20, 0x6E, 0x6F, 0x6E, +0x21, 0x2C, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, +0x65, 0x20, 0x74, 0x78, 0x5F, 0x32, 0x73, 0x74, +0x73, 0x2F, 0x74, 0x78, 0x5F, 0x70, 0x61, 0x74, +0x68, 0x3A, 0x25, 0x64, 0x2F, 0x25, 0x64, 0x0A, +0x00, 0x00, 0x00, 0x00, 0x5B, 0x25, 0x73, 0x5D, +0x72, 0x78, 0x5F, 0x61, 0x6E, 0x74, 0x5F, 0x73, +0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x69, 0x73, +0x20, 0x6E, 0x6F, 0x6E, 0x21, 0x2C, 0x20, 0x75, +0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x72, 0x78, +0x5F, 0x70, 0x61, 0x74, 0x68, 0x3A, 0x25, 0x64, +0x0A, 0x00, 0x00, 0x00, 0x53, 0x77, 0x69, 0x74, +0x63, 0x68, 0x20, 0x43, 0x48, 0x3A, 0x25, 0x64, +0x20, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, +0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x15, 0xF0, 0xFF, 0x0F, +0x00, 0x00, 0x00, 0x00, 0x15, 0xF0, 0x0F, 0x00, +0x00, 0x00, 0x00, 0x00, 0x05, 0xF0, 0xFF, 0x0F, +0x00, 0x00, 0x00, 0x00, 0x05, 0xF0, 0x0F, 0x00, +0x00, 0x00, 0x00, 0x00, 0x10, 0xF0, 0xFF, 0x0F, +0x00, 0x00, 0x00, 0x00, 0x10, 0xF0, 0x0F, 0x00, +0x00, 0x00, 0x00, 0x00, 0xF5, 0x0F, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x3F, 0x00, +0x00, 0x00, 0x00, 0x00, 0x15, 0xF0, 0x3F, 0x00, +0x00, 0x00, 0x00, 0x00, 0x15, 0xF0, 0xFF, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, +0xFF, 0x03, 0x00, 0x00, 0x15, 0xF0, 0xFF, 0xFF, +0x0F, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x06, +0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0xFF, +0xFF, 0x00, 0x01, 0x02, 0x02, 0x04, 0x05, 0x06, +0x07, 0x08, 0x09, 0x0A, 0x28, 0x28, 0x32, 0x28, +0x1E, 0x19, 0x19, 0x19, 0x18, 0x18, 0x12, 0x0F, +0x1E, 0x1E, 0x19, 0x1E, 0x18, 0x16, 0x0C, 0x0C, +0x1E, 0x1E, 0x19, 0x1E, 0x18, 0x16, 0x0C, 0x0C, +0x1E, 0x1E, 0x19, 0x1C, 0x18, 0x14, 0x0C, 0x0A, +0x1E, 0x1E, 0x19, 0x1E, 0x19, 0x18, 0x0F, 0x0E, +0x1E, 0x1E, 0x1E, 0x1E, 0x1C, 0x16, 0x14, 0x12, +0x0C, 0x0A, 0x1E, 0x1E, 0x1E, 0x1E, 0x1A, 0x16, +0x12, 0x10, 0x0C, 0x0A, 0x1E, 0x1E, 0x1E, 0x1E, +0x18, 0x16, 0x0D, 0x0E, 0x0C, 0x0A, 0x0A, 0x0A, +0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, +0x12, 0x12, 0x14, 0x12, 0x0F, 0x0F, 0x0C, 0x0C, +0x09, 0x08, 0x08, 0x07, 0x0A, 0x0A, 0x09, 0x07, +0x07, 0x06, 0x05, 0x04, 0x0C, 0x0C, 0x0A, 0x0A, +0x09, 0x07, 0x07, 0x06, 0x0C, 0x0C, 0x0A, 0x0A, +0x09, 0x07, 0x07, 0x06, 0x0C, 0x0C, 0x0A, 0x0A, +0x09, 0x07, 0x07, 0x06, 0x0A, 0x0A, 0x08, 0x08, +0x08, 0x07, 0x07, 0x06, 0x04, 0x04, 0x0C, 0x0C, +0x0A, 0x0A, 0x09, 0x07, 0x07, 0x06, 0x05, 0x04, +0x0C, 0x0C, 0x0A, 0x0A, 0x09, 0x07, 0x07, 0x06, +0x05, 0x04, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, +0x0A, 0x0A, 0x0A, 0x0A, 0x02, 0x02, 0x02, 0x04, +0x02, 0x04, 0x06, 0x06, 0x08, 0x08, 0x09, 0x09, +0x03, 0x06, 0x08, 0x08, 0x0A, 0x0E, 0x10, 0x18, +0x05, 0x08, 0x08, 0x08, 0x0A, 0x0E, 0x10, 0x18, +0x05, 0x08, 0x08, 0x09, 0x10, 0x14, 0x1C, 0x20, +0x04, 0x06, 0x08, 0x0A, 0x10, 0x18, 0x18, 0x20, +0x03, 0x06, 0x08, 0x09, 0x10, 0x14, 0x1C, 0x24, +0x34, 0x3A, 0x05, 0x07, 0x09, 0x0A, 0x10, 0x14, +0x1C, 0x28, 0x34, 0x3C, 0x06, 0x08, 0x0A, 0x0C, +0x12, 0x18, 0x1E, 0x2E, 0x36, 0x40, 0x0A, 0x0C, +0x0C, 0x12, 0x16, 0x1C, 0x20, 0x2E, 0x36, 0x40, +0x2C, 0x00, 0x04, 0x00, 0x2D, 0x00, 0x2C, 0x01, +0x2D, 0x01, 0x2C, 0x02, 0x2E, 0x01, 0xFF, 0x00, +0x2D, 0x02, 0xFF, 0x00, 0x36, 0x2D, 0xFF, 0x36, +0x2E, 0xFF, 0x37, 0x2F, 0xFF, 0x38, 0x30, 0xFF, +0x39, 0x31, 0xFF, 0x3A, 0x32, 0xFF, 0x3A, 0x33, +0xFF, 0x3A, 0x34, 0xFF, 0x3A, 0x35, 0xFF, 0x3B, +0xFF, 0xFF, 0x37, 0x2E, 0xFF, 0x38, 0x30, 0xFF, +0x39, 0x31, 0xFF, 0x3A, 0x32, 0xFF, 0x3B, 0x35, +0xFF, 0x3C, 0xFF, 0xFF, 0x3D, 0xFF, 0xFF, 0x3E, +0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x37, 0xFF, 0x2F, 0x39, 0xFF, 0x31, 0xFF, 0x3A, +0x33, 0xFF, 0x3B, 0x35, 0xFF, 0x3D, 0xFF, 0xFF, +0xFF, 0x3E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, +0x0D, 0x14, 0xFF, 0x15, 0x0E, 0xFF, 0x15, 0x0F, +0xFF, 0x16, 0x10, 0xFF, 0x17, 0x11, 0xFF, 0x18, +0x12, 0xFF, 0x18, 0x13, 0xFF, 0x18, 0xFF, 0xFF, +0x15, 0x0E, 0xFF, 0x16, 0x10, 0xFF, 0x17, 0x10, +0xFF, 0x18, 0x11, 0xFF, 0x19, 0xFF, 0xFF, 0x1A, +0xFF, 0xFF, 0x1B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x15, 0x13, 0x0F, 0x17, 0x1E, 0x11, 0x18, 0x1F, +0x13, 0x20, 0x19, 0xFF, 0x21, 0x1B, 0xFF, 0x22, +0xFF, 0xFF, 0x23, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x04, 0x04, 0x04, 0x36, 0x2C, 0xFF, 0x2D, 0xFF, +0xFF, 0x2E, 0x37, 0xFF, 0x38, 0x2F, 0xFF, 0x39, +0x30, 0xFF, 0x39, 0x31, 0xFF, 0x39, 0x32, 0xFF, +0x3A, 0x33, 0xFF, 0x3A, 0x34, 0xFF, 0x2D, 0x2C, +0xFF, 0x36, 0x2E, 0xFF, 0x37, 0x2F, 0xFF, 0x38, +0x30, 0xFF, 0x33, 0x39, 0xFF, 0x35, 0x3A, 0xFF, +0x3B, 0x34, 0xFF, 0x3C, 0x3B, 0xFF, 0x3D, 0x3C, +0xFF, 0x3E, 0x3D, 0xFF, 0x37, 0x2E, 0xFF, 0x38, +0x2F, 0xFF, 0x39, 0x31, 0xFF, 0x3A, 0xFF, 0xFF, +0xFF, 0x3B, 0xFF, 0xFF, 0x3C, 0xFF, 0xFF, 0x3D, +0x3C, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0x00, 0x00, 0x04, 0xFF, 0xFF, 0x0C, +0xFF, 0xFF, 0x0D, 0x14, 0xFF, 0x0E, 0x15, 0xFF, +0x16, 0x0F, 0xFF, 0x17, 0x10, 0xFF, 0x17, 0x11, +0xFF, 0x17, 0x12, 0xFF, 0x0D, 0x0C, 0xFF, 0x14, +0x0E, 0xFF, 0x15, 0x0F, 0xFF, 0x16, 0x10, 0xFF, +0x17, 0x12, 0xFF, 0x18, 0x13, 0xFF, 0x19, 0x13, +0xFF, 0x1A, 0x13, 0xFF, 0x14, 0x0E, 0xFF, 0x15, +0x1C, 0xFF, 0x17, 0x1D, 0x11, 0x18, 0x1E, 0x13, +0x19, 0x1F, 0x1E, 0x20, 0x1A, 0x1F, 0x21, 0x1B, +0x20, 0x22, 0x21, 0x1B, 0x01, 0x00, 0x02, 0x00, +0x05, 0x00, 0x0B, 0x00, 0x06, 0x00, 0x09, 0x00, +0x0C, 0x00, 0x12, 0x00, 0x18, 0x00, 0x24, 0x00, +0x30, 0x00, 0x36, 0x00, 0x0E, 0x00, 0x1B, 0x00, +0x29, 0x00, 0x36, 0x00, 0x51, 0x00, 0x6C, 0x00, +0x7A, 0x00, 0x87, 0x00, 0x1B, 0x00, 0x36, 0x00, +0x51, 0x00, 0x6C, 0x00, 0xA2, 0x00, 0xD8, 0x00, +0xF3, 0x00, 0x0E, 0x01, 0x29, 0x00, 0x51, 0x00, +0x7A, 0x00, 0xA2, 0x00, 0xF3, 0x00, 0x44, 0x01, +0x6D, 0x01, 0x95, 0x01, 0x36, 0x00, 0x6C, 0x00, +0xA2, 0x00, 0xD8, 0x00, 0x44, 0x01, 0xB0, 0x01, +0xE6, 0x01, 0x1C, 0x02, 0x0E, 0x00, 0x1B, 0x00, +0x29, 0x00, 0x36, 0x00, 0x51, 0x00, 0x6C, 0x00, +0x7A, 0x00, 0x87, 0x00, 0xA2, 0x00, 0xB4, 0x00, +0x1B, 0x00, 0x36, 0x00, 0x51, 0x00, 0x6C, 0x00, +0xA2, 0x00, 0xD8, 0x00, 0xF3, 0x00, 0x0E, 0x01, +0x44, 0x01, 0x68, 0x01, 0x29, 0x00, 0x51, 0x00, +0x7A, 0x00, 0xA2, 0x00, 0xF3, 0x00, 0x44, 0x01, +0x6C, 0x01, 0x95, 0x01, 0xE6, 0x01, 0x1C, 0x02, +0x36, 0x00, 0x6C, 0x00, 0xA2, 0x00, 0xD8, 0x00, +0x44, 0x01, 0xB0, 0x01, 0xE6, 0x01, 0x1C, 0x02, +0x88, 0x02, 0xD0, 0x02, 0x14, 0x14, 0x15, 0x15, +0x16, 0x17, 0x17, 0x18, 0x1C, 0x1C, 0x1C, 0x1C, +0x1D, 0x1D, 0x1E, 0x1E, 0x1C, 0x1C, 0x1D, 0x1E, +0x1F, 0x20, 0x20, 0x20, 0x36, 0x36, 0x37, 0x37, +0x38, 0x39, 0x39, 0x3A, 0x3A, 0x3A, 0x00, 0x00, +0x40, 0x40, 0x40, 0x40, 0x41, 0x41, 0x42, 0x42, +0x43, 0x43, 0x00, 0x00, 0x40, 0x40, 0x41, 0x42, +0x43, 0x44, 0x44, 0x44, 0x45, 0x46, 0x00, 0x00, +0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xF0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xF0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x30, 0xC0, +0xE0, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0E, 0x38, +0x18, 0x00, 0x00, 0x00, 0x00, 0x83, 0x01, 0x06, +0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x70, 0xE0, +0x8B, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x30, 0xF0, 0x21, 0x6C, 0x00, 0xF0, 0x00, 0x4C, +0xBC, 0x65, 0x94, 0xB8, 0x00, 0x65, 0x00, 0x6D, +0xFE, 0xF7, 0x1F, 0x4D, 0xAC, 0xEC, 0x94, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0xF4, +0x00, 0x6D, 0xAD, 0xEC, 0x40, 0x6D, 0xAD, 0xEC, +0x94, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x1F, 0xF6, 0x00, 0x6C, 0x8C, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x77, 0xF0, 0x20, 0x6C, +0x80, 0xF0, 0x80, 0x9C, 0x80, 0xF0, 0x20, 0x6E, +0xCC, 0xEC, 0x18, 0x24, 0x30, 0xF0, 0x21, 0x6C, +0xFC, 0xF7, 0x1C, 0x4C, 0x80, 0x9C, 0xBC, 0x65, +0x30, 0xF0, 0x21, 0x6C, 0xFC, 0xF7, 0x18, 0x4C, +0x80, 0x9C, 0xFC, 0x65, 0x9F, 0x67, 0x77, 0xF0, +0x24, 0x6D, 0xE0, 0xF2, 0x90, 0xDD, 0x9D, 0x67, +0x77, 0xF0, 0x24, 0x6D, 0xE0, 0xF2, 0x94, 0xDD, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6C, +0xC0, 0xF1, 0x14, 0x4C, 0x00, 0x6E, 0x30, 0xF0, +0x20, 0x6F, 0x41, 0xF7, 0x08, 0x4F, 0xC0, 0xDC, +0x04, 0x4C, 0xE3, 0xEC, 0xB8, 0x67, 0xFB, 0x2D, +0x30, 0xF0, 0x20, 0x6C, 0x25, 0xF5, 0x14, 0x4C, +0x00, 0x6E, 0x30, 0xF0, 0x21, 0x6F, 0x30, 0xF6, +0x18, 0x4F, 0xC0, 0xDC, 0x04, 0x4C, 0xE3, 0xEC, +0xB8, 0x67, 0xFB, 0x2D, 0x10, 0xF0, 0x23, 0x6C, +0xC0, 0xF0, 0x01, 0x4C, 0x00, 0xEC, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF4, 0x6C, 0x9B, 0x10, 0xF0, +0x23, 0x6A, 0xC0, 0xF0, 0x01, 0x4A, 0x40, 0xDB, +0x00, 0x1C, 0x80, 0x00, 0x80, 0x18, 0x95, 0x5E, +0x80, 0x18, 0xA7, 0x5B, 0x80, 0x18, 0xCE, 0x5B, +0x80, 0x18, 0x67, 0x5E, 0x80, 0x18, 0xEB, 0x5B, +0x80, 0x18, 0x5E, 0x5E, 0x00, 0x18, 0x7E, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x54, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x21, 0x6A, 0x41, 0xF7, +0x08, 0x4C, 0x1D, 0xF0, 0x00, 0x4A, 0x43, 0xDC, +0xE0, 0xF7, 0x40, 0x98, 0x00, 0x6D, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x45, 0xF5, 0x58, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x01, 0xF0, 0x50, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xE1, 0xF7, 0x00, 0x4C, +0x01, 0x6D, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x65, 0xF5, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6C, +0x30, 0xF0, 0x21, 0x6A, 0x81, 0xF7, 0x14, 0x4C, +0x1D, 0xF4, 0x00, 0x4A, 0x43, 0xDC, 0xE0, 0xF7, +0x40, 0x98, 0x00, 0x6D, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x45, 0xF5, 0x5C, 0xDB, 0x80, 0x18, +0x96, 0x5F, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, +0x64, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, 0x10, 0xF0, +0x00, 0x6D, 0x40, 0xAB, 0xAB, 0xED, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF7, 0x58, 0x9A, 0x40, 0xEA, +0x00, 0x1C, 0xAB, 0x39, 0xFF, 0x17, 0x00, 0x65, +0x6D, 0xB8, 0x00, 0x65, 0x00, 0xF0, 0x20, 0x6A, +0x7C, 0x4A, 0x6C, 0xEA, 0x1C, 0x22, 0x00, 0xF0, +0x20, 0x6B, 0x28, 0x4B, 0x6A, 0xEA, 0x0B, 0x61, +0x4E, 0xB8, 0x00, 0x65, 0x00, 0xF0, 0x20, 0x6B, +0x01, 0x4B, 0x6B, 0xE2, 0x60, 0xAA, 0xBF, 0xF6, +0x1A, 0x6A, 0x6A, 0xEA, 0x31, 0x60, 0x77, 0xF0, +0x24, 0x6A, 0xA0, 0xF1, 0x1C, 0x4A, 0x1D, 0xF4, +0x00, 0x6B, 0x60, 0xDA, 0x10, 0xF0, 0x23, 0x6A, +0x40, 0xF7, 0x15, 0x4A, 0x00, 0xEA, 0x00, 0xF0, +0x20, 0x6A, 0x1F, 0xF7, 0x00, 0x6A, 0x4C, 0xEB, +0x4C, 0xB8, 0x00, 0x65, 0x6C, 0xEA, 0x42, 0x32, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF0, 0x00, 0x4B, +0x49, 0xE3, 0x40, 0xA2, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF1, 0x08, 0x4B, 0x69, 0xE2, 0x30, 0xF0, +0x20, 0x6B, 0x80, 0xF2, 0x04, 0x4B, 0x60, 0x9B, +0x05, 0x2B, 0x10, 0xF0, 0x23, 0x6B, 0x60, 0xF3, +0x1D, 0x4B, 0x00, 0xEB, 0x10, 0xF0, 0x23, 0x6B, +0x00, 0xF4, 0x11, 0x4B, 0x00, 0xEB, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF1, 0x14, 0x4A, +0x00, 0xF0, 0x20, 0x6B, 0x01, 0x6B, 0x60, 0xDA, +0x10, 0xF0, 0x23, 0x6B, 0x40, 0xF2, 0x05, 0x4B, +0x00, 0xEB, 0x00, 0x65, 0x5A, 0xB8, 0x00, 0x65, +0x7B, 0xB8, 0x00, 0x65, 0x40, 0xE8, 0x5A, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x7B, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF1, 0x14, 0x4A, 0x00, 0xF0, +0x20, 0x6B, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF1, 0x0C, 0x4A, 0x60, 0x9A, 0x41, 0x9A, +0x6A, 0xEA, 0x0D, 0x61, 0x6E, 0xB8, 0x00, 0x65, +0x62, 0x43, 0xCB, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x5A, 0xB8, 0x00, 0x65, 0x7B, 0xB8, +0x00, 0x65, 0x00, 0xBA, 0x00, 0x65, 0x36, 0x23, +0xDF, 0xF7, 0x00, 0x03, 0x86, 0xDB, 0xA7, 0xDB, +0xC8, 0xDB, 0xE9, 0xDB, 0x0A, 0xDB, 0x2B, 0xDB, +0x98, 0x67, 0x8C, 0xDB, 0x9F, 0x67, 0x8E, 0xDB, +0x12, 0xEC, 0x10, 0xED, 0x82, 0xDB, 0xA3, 0xDB, +0x9A, 0xB8, 0x00, 0x65, 0x84, 0xDB, 0x9B, 0xB8, +0x00, 0x65, 0x85, 0xDB, 0x8E, 0xB8, 0x00, 0x65, +0x82, 0x44, 0x81, 0xDB, 0x8C, 0xB8, 0x00, 0x65, +0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF1, +0x0C, 0x4B, 0x60, 0x9B, 0x9D, 0x67, 0x89, 0xDB, +0x6A, 0x9B, 0xCF, 0xF7, 0x80, 0x44, 0x62, 0xEC, +0x0D, 0x60, 0x77, 0xF0, 0x24, 0x6C, 0xA0, 0xF1, +0x1C, 0x4C, 0x1D, 0xF4, 0x01, 0x6B, 0x60, 0xDC, +0x10, 0xF0, 0x23, 0x6C, 0x40, 0xF7, 0x15, 0x4C, +0x00, 0xEC, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF1, 0x0C, 0x4B, 0x41, 0x9B, 0x40, 0xDB, +0x89, 0x9A, 0xBC, 0x65, 0x7D, 0x67, 0xDF, 0xF7, +0x00, 0x03, 0x4C, 0xB8, 0x00, 0x65, 0x00, 0xF0, +0x20, 0x6D, 0x05, 0x4D, 0xAF, 0xED, 0xAC, 0xEA, +0xA0, 0x9B, 0x04, 0x6C, 0x8C, 0xED, 0xAD, 0xEA, +0x82, 0x9B, 0xA3, 0x9B, 0x32, 0xEC, 0x30, 0xED, +0x8E, 0x9B, 0xFC, 0x65, 0x8C, 0x9B, 0x1C, 0x65, +0x84, 0x9B, 0x5C, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x85, 0x9B, 0x7C, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x2B, 0x9B, 0x0A, 0x9B, +0xE9, 0x9B, 0xC8, 0x9B, 0xA7, 0x9B, 0x86, 0x9B, +0x61, 0x9B, 0xCB, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x8A, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x7B, 0xB8, 0x00, 0x65, 0x5A, 0xB8, +0x00, 0x65, 0x00, 0xBA, 0xDF, 0xF7, 0x00, 0x03, +0x86, 0xDB, 0xA7, 0xDB, 0xC8, 0xDB, 0xE9, 0xDB, +0x0A, 0xDB, 0x2B, 0xDB, 0x98, 0x67, 0x8C, 0xDB, +0x9F, 0x67, 0x8E, 0xDB, 0x12, 0xEC, 0x10, 0xED, +0x82, 0xDB, 0xA3, 0xDB, 0x9A, 0xB8, 0x00, 0x65, +0x84, 0xDB, 0x9B, 0xB8, 0x00, 0x65, 0x85, 0xDB, +0x7D, 0x67, 0x5B, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x40, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x41, 0xF3, 0x08, 0x4C, 0x00, 0xF4, 0x00, 0x4C, +0xBC, 0x65, 0x82, 0x67, 0x40, 0xEA, 0x00, 0x65, +0x7A, 0xB8, 0x00, 0x65, 0xBB, 0x65, 0xDF, 0xF7, +0x00, 0x03, 0x82, 0x9B, 0xA3, 0x9B, 0x32, 0xEC, +0x30, 0xED, 0x8E, 0x9B, 0xFC, 0x65, 0x8C, 0x9B, +0x1C, 0x65, 0x84, 0x9B, 0x5C, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x85, 0x9B, 0x7C, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x2B, 0x9B, +0x0A, 0x9B, 0xE9, 0x9B, 0xC8, 0x9B, 0xA7, 0x9B, +0x86, 0x9B, 0x5A, 0xB8, 0x00, 0x65, 0x7B, 0xB8, +0x00, 0x65, 0x00, 0xBA, 0x00, 0x65, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF1, 0x14, 0x4B, +0x40, 0xDB, 0xDF, 0xF7, 0x00, 0x03, 0x86, 0xDB, +0xA7, 0xDB, 0xC8, 0xDB, 0xE9, 0xDB, 0x0A, 0xDB, +0x2B, 0xDB, 0x98, 0x67, 0x8C, 0xDB, 0x9F, 0x67, +0x8E, 0xDB, 0x12, 0xEC, 0x10, 0xED, 0x82, 0xDB, +0xA3, 0xDB, 0x9A, 0xB8, 0x00, 0x65, 0x84, 0xDB, +0x9B, 0xB8, 0x00, 0x65, 0x85, 0xDB, 0x8E, 0xB8, +0x00, 0x65, 0x81, 0xDB, 0x8C, 0xB8, 0x00, 0x65, +0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF1, +0x0C, 0x4B, 0x60, 0x9B, 0x9D, 0x67, 0x89, 0xDB, +0x6A, 0x9B, 0xCF, 0xF7, 0x80, 0x44, 0x62, 0xEC, +0x0D, 0x60, 0x77, 0xF0, 0x24, 0x6C, 0xA0, 0xF1, +0x1C, 0x4C, 0x1D, 0xF4, 0x01, 0x6B, 0x60, 0xDC, +0x10, 0xF0, 0x23, 0x6C, 0x40, 0xF7, 0x15, 0x4C, +0x00, 0xEC, 0x00, 0x65, 0x40, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x41, 0xF3, 0x08, 0x4C, 0x00, 0xF4, +0x00, 0x4C, 0xBC, 0x65, 0x82, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF1, 0x14, 0x4C, +0x00, 0xF0, 0x20, 0x6D, 0xA0, 0xDC, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF1, 0x0C, 0x4A, 0x10, 0xF0, +0x23, 0x6B, 0xA0, 0xF4, 0x19, 0x4B, 0x00, 0xEB, +0x61, 0x9A, 0x60, 0xDA, 0x49, 0x9B, 0xBA, 0x65, +0xDF, 0xF7, 0x00, 0x03, 0x4C, 0xB8, 0x00, 0x65, +0x00, 0xF0, 0x20, 0x6D, 0x05, 0x4D, 0xAF, 0xED, +0xAC, 0xEA, 0xA0, 0x9B, 0x00, 0xF0, 0x20, 0x6C, +0x04, 0x4C, 0x8C, 0xED, 0xAD, 0xEA, 0x82, 0x9B, +0xA3, 0x9B, 0x32, 0xEC, 0x30, 0xED, 0x8E, 0x9B, +0xFC, 0x65, 0x8C, 0x9B, 0x1C, 0x65, 0x84, 0x9B, +0x5C, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x85, 0x9B, 0x7C, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x2B, 0x9B, 0x0A, 0x9B, 0xE9, 0x9B, +0xC8, 0x9B, 0xA7, 0x9B, 0x86, 0x9B, 0x61, 0x9B, +0xCB, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x8A, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x7B, 0xB8, 0x00, 0x65, 0x5A, 0xB8, 0x00, 0x65, +0x00, 0xBA, 0x00, 0x65, 0x5F, 0x67, 0x5A, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x18, +0xA9, 0xC1, 0x00, 0x1C, 0xBA, 0x35, 0x5A, 0xB8, +0x00, 0x65, 0x00, 0xEA, 0x6D, 0xB8, 0x00, 0xF0, +0x20, 0x6A, 0x00, 0xF2, 0x00, 0x4A, 0x4F, 0xEA, +0x4C, 0xEB, 0xAB, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x5F, 0x67, 0x5A, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x1C, 0x7D, 0x35, +0x5A, 0xB8, 0x00, 0x65, 0x00, 0xEA, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, 0x7C, 0x9B, +0xFF, 0x6A, 0x8C, 0xEA, 0x80, 0xA3, 0x10, 0x6B, +0x8C, 0xEB, 0x05, 0x23, 0xE2, 0xF1, 0x10, 0x4A, +0xE2, 0xF1, 0x10, 0x6B, 0x31, 0x10, 0x7F, 0x4A, +0x09, 0x4A, 0x88, 0x6B, 0x15, 0x10, 0x1F, 0xF7, +0x00, 0x6C, 0x6C, 0xEC, 0x02, 0xF0, 0x00, 0x74, +0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, +0x22, 0xF5, 0x84, 0x9C, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6C, 0x22, 0xF5, 0x88, 0x9C, 0xC0, 0xA5, +0x91, 0xE3, 0x01, 0x4D, 0xC0, 0xC4, 0x01, 0x4B, +0x4A, 0xEB, 0xE9, 0x61, 0x20, 0xE8, 0x1F, 0xF7, +0x00, 0x6C, 0x6C, 0xEC, 0x02, 0xF0, 0x00, 0x74, +0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, +0x22, 0xF5, 0x84, 0x9C, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6C, 0x22, 0xF5, 0x88, 0x9C, 0xC0, 0xA5, +0x91, 0xE3, 0x01, 0x4D, 0xC0, 0xC4, 0x01, 0x4B, +0x4A, 0xEB, 0xE9, 0x61, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, +0x58, 0x9A, 0x64, 0x9C, 0xFF, 0x68, 0xAC, 0xE8, +0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0x30, 0xF0, 0x20, 0x6D, 0x44, 0xF4, 0x10, 0x4C, +0xE2, 0xF2, 0x08, 0x4D, 0x80, 0x18, 0x25, 0x42, +0x01, 0x70, 0x14, 0x61, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0xE2, 0xF7, 0xB8, 0x9B, 0x83, 0xF2, 0x1C, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF2, 0x14, 0x6C, 0x00, 0xF3, 0x00, 0x6D, +0x00, 0x6E, 0x15, 0x10, 0x02, 0x70, 0x14, 0x61, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0xE2, 0xF7, 0xB8, 0x9B, +0x83, 0xF2, 0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x14, 0x6C, +0x00, 0xF3, 0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF3, 0x44, 0x9A, 0x42, 0xF1, 0x18, 0x6C, +0x01, 0x6D, 0x02, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x17, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF4, 0x70, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF4, 0x4C, 0x9A, +0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF4, +0x54, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF1, 0x00, 0x4A, 0x30, 0xF0, +0x20, 0x6B, 0xEF, 0x9A, 0xE2, 0xF4, 0x78, 0x9B, +0xCE, 0x9A, 0xAD, 0x9A, 0x8C, 0x9A, 0xE0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF4, 0x7C, 0x9B, +0xC0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF5, +0x60, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF5, 0x64, 0x9B, 0x80, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x89, 0x9A, 0x02, 0xF5, 0x68, 0x9B, +0x80, 0xDB, 0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF5, 0x4C, 0x9A, 0x01, 0x6C, 0xA4, 0x67, +0x60, 0xDA, 0x80, 0x18, 0xF3, 0x02, 0x00, 0x1C, +0xAC, 0x39, 0xFF, 0x17, 0x4C, 0xB8, 0x00, 0x65, +0x80, 0x34, 0x8D, 0xEA, 0x8A, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x4C, 0xB8, 0x00, 0x65, 0x80, 0x34, 0x8F, 0xEC, +0x8C, 0xEA, 0x8A, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF1, 0x00, 0x4A, 0x60, 0xDA, 0x81, 0xDA, +0xA2, 0xDA, 0xC3, 0xDA, 0xE4, 0xDA, 0x05, 0xDA, +0x26, 0xDA, 0x78, 0x67, 0x67, 0xDA, 0x7D, 0x67, +0x68, 0xDA, 0x7F, 0x67, 0x69, 0xDA, 0x12, 0xEB, +0x6A, 0xDA, 0x10, 0xEB, 0x6B, 0xDA, 0x6D, 0xB8, +0x00, 0x65, 0x6C, 0xDA, 0x68, 0xB8, 0x00, 0x65, +0x6D, 0xDA, 0x6C, 0xB8, 0x00, 0x65, 0x6E, 0xDA, +0x6E, 0xB8, 0x00, 0x65, 0x6F, 0xDA, 0x10, 0xF0, +0x23, 0x6A, 0xA0, 0xF6, 0x0D, 0x4A, 0x00, 0xEA, +0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF4, 0x6C, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0xA0, 0xF7, 0x05, 0x4A, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x02, 0xF5, 0x50, 0x9A, 0x08, 0x6B, +0x40, 0xA2, 0x4C, 0xEB, 0x00, 0x6A, 0x11, 0x23, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF5, 0x54, 0x9A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0x9A, 0x65, 0xF5, +0x44, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF5, +0x58, 0x9A, 0x65, 0xF5, 0x04, 0x4B, 0x40, 0x9A, +0x41, 0xDB, 0x20, 0xE8, 0xFF, 0x6A, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF4, 0x8C, 0x9C, +0x10, 0xF0, 0x23, 0x6B, 0xE0, 0xF7, 0x0D, 0x4B, +0x60, 0xDC, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF5, +0x70, 0x9B, 0x80, 0xA3, 0x08, 0x6B, 0x8C, 0xEB, +0x1C, 0x23, 0x05, 0x5A, 0x1A, 0x60, 0x0C, 0x6D, +0xB8, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF5, +0x74, 0x9B, 0x80, 0x9B, 0x30, 0xF0, 0x20, 0x6B, +0x65, 0xF5, 0x0C, 0x4B, 0x12, 0xEA, 0x49, 0xE3, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF5, 0x78, 0x9B, +0x81, 0xDA, 0x80, 0xA2, 0x60, 0x9B, 0x62, 0xDA, +0x01, 0x6B, 0x8D, 0xEB, 0x60, 0xC2, 0x01, 0x6A, +0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0xE2, 0xF4, 0x8C, 0x9C, 0x10, 0xF0, 0x23, 0x6B, +0x41, 0xF0, 0x11, 0x4B, 0x60, 0xDC, 0x30, 0xF0, +0x20, 0x6B, 0x02, 0xF5, 0x70, 0x9B, 0x80, 0xA3, +0x08, 0x6B, 0x8C, 0xEB, 0x1B, 0x23, 0x05, 0x5A, +0x19, 0x60, 0x0C, 0x6C, 0x98, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x65, 0xF5, 0x0C, 0x4B, 0x12, 0xEA, +0x69, 0xE2, 0x80, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, +0x0D, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF5, +0x74, 0x9B, 0x42, 0x9A, 0xA0, 0x9B, 0x30, 0xF0, +0x20, 0x6B, 0x02, 0xF5, 0x78, 0x9B, 0x60, 0x9B, +0x4B, 0xE3, 0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, +0xFF, 0x6B, 0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, +0xE2, 0xF4, 0x8C, 0x9C, 0x10, 0xF0, 0x23, 0x6A, +0xA1, 0xF0, 0x11, 0x4A, 0x05, 0x5B, 0x40, 0xDC, +0x00, 0x6A, 0x11, 0x60, 0x0C, 0x6C, 0x98, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x65, 0xF5, 0x0C, 0x4A, +0x12, 0xEB, 0x4D, 0xE3, 0x80, 0xA3, 0x02, 0x6A, +0x4B, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x00, 0x6A, +0x41, 0xDB, 0x42, 0xDB, 0x01, 0x6A, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF4, 0x6C, 0x9B, 0x10, 0xF0, +0x23, 0x6A, 0xE1, 0xF0, 0x11, 0x4A, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x50, 0x9A, +0x40, 0xEA, 0x03, 0x22, 0x00, 0x18, 0xE9, 0xC1, +0x05, 0x10, 0x10, 0xF0, 0x23, 0x68, 0xA0, 0xF7, +0x05, 0x48, 0xBA, 0xFE, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF4, +0x6C, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0x21, 0xF1, +0x0D, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF7, 0x50, 0x9A, 0xFF, 0x68, 0x8C, 0xE8, +0x40, 0xEA, 0x04, 0x22, 0x90, 0x67, 0x00, 0x18, +0xFB, 0xC1, 0x06, 0x10, 0x90, 0x67, 0x10, 0xF0, +0x23, 0x68, 0xE0, 0xF7, 0x0D, 0x48, 0xBA, 0xFE, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF4, 0x6C, 0x9B, 0x10, 0xF0, +0x23, 0x6A, 0x61, 0xF1, 0x11, 0x4A, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x50, 0x9A, +0xFF, 0x68, 0x8C, 0xE8, 0x40, 0xEA, 0x04, 0x22, +0x90, 0x67, 0x00, 0x18, 0x14, 0xC2, 0x06, 0x10, +0x90, 0x67, 0x10, 0xF0, 0x23, 0x68, 0x41, 0xF0, +0x11, 0x48, 0xBA, 0xFE, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF4, +0x6C, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0xA1, 0xF1, +0x15, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF7, 0x50, 0x9A, 0xFF, 0x68, 0x8C, 0xE8, +0x40, 0xEA, 0x04, 0x22, 0x90, 0x67, 0x00, 0x18, +0x2C, 0xC2, 0x06, 0x10, 0x90, 0x67, 0x10, 0xF0, +0x23, 0x68, 0xA1, 0xF0, 0x11, 0x48, 0xBA, 0xFE, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0x10, 0xF0, 0x23, 0x6A, 0x40, 0xF2, 0x05, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x48, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0x00, 0xF4, 0x11, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x4C, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0xA0, 0xF4, 0x19, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x50, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0x20, 0xF5, 0x0D, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x54, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0xA0, 0xF6, 0x0D, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x58, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0x40, 0xF7, 0x15, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x5C, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0xA0, 0xF6, 0x09, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x3C, 0xF6, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xBA, 0xF4, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5A, 0xF2, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xDA, 0xF5, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFA, 0xF6, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFA, 0xF5, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x7A, 0xF1, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xBB, 0xF6, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x7B, 0xF5, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFB, 0xF5, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5C, 0xF1, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5C, 0xF7, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xBC, 0xF1, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFC, 0xF0, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5B, 0xF6, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFA, 0xF5, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xDA, 0xF0, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xD9, 0xF6, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1C, 0xF6, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xB9, 0xF6, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFB, 0xF1, 0x04, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFB, 0xF7, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xBC, 0xF6, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1B, 0xF7, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x7B, 0xF6, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFB, 0xF1, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0x80, 0xF6, 0x09, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5A, 0xF0, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1A, 0xF0, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFA, 0xF0, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5A, 0xF2, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x9A, 0xF3, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFA, 0xF1, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5C, 0xF3, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5C, 0xF4, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x3C, 0xF2, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xBC, 0xF4, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1C, 0xF5, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFB, 0xF1, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x9B, 0xF4, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1B, 0xF3, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1B, 0xF2, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5A, 0xF7, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xBB, 0xF0, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5B, 0xF0, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x9A, 0xF7, 0x04, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5B, 0xF1, 0x04, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x7B, 0xF1, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x9C, 0xF7, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFC, 0xF7, 0x04, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1D, 0xF0, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x79, 0xF6, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xDD, 0xF0, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1D, 0xF1, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x3D, 0xF1, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x9D, 0xF3, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFD, 0xF3, 0x04, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x3D, 0xF4, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5D, 0xF4, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x9D, 0xF4, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xDD, 0xF4, 0x04, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFD, 0xF6, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x3D, 0xF7, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x7D, 0xF7, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1E, 0xF1, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x7E, 0xF1, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x9E, 0xF1, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x25, 0xF5, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xDE, 0xF1, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xDE, 0xF3, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x3E, 0xF4, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x7E, 0xF4, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xBE, 0xF4, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x5C, 0xDB, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xED, 0x8E, 0x36, +0x07, 0x6B, 0x01, 0x75, 0x4C, 0xEE, 0x8C, 0xEB, +0x12, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0x59, 0xE6, 0x01, 0x6A, 0x44, 0xEB, +0x23, 0xF3, 0x6C, 0xA6, 0x00, 0x6D, 0x6D, 0xEA, +0x23, 0xF3, 0x4C, 0xC6, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x40, 0x9A, 0x12, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, 0x59, 0xE6, +0x01, 0x6A, 0x44, 0xEB, 0x23, 0xF3, 0x6C, 0xA6, +0x4F, 0xEA, 0x01, 0x6D, 0x6C, 0xEA, 0x23, 0xF3, +0x4C, 0xC6, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, +0x40, 0x9A, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, +0x01, 0x6B, 0xAC, 0xEA, 0x6E, 0xEA, 0x01, 0x5A, +0x58, 0x67, 0x05, 0x5C, 0x48, 0x32, 0x03, 0x61, +0x01, 0x6A, 0x4B, 0xEA, 0x20, 0xE8, 0x30, 0xF0, +0x20, 0x6B, 0x02, 0xF5, 0xBC, 0x9B, 0x30, 0xF0, +0x20, 0x6E, 0x22, 0xF5, 0xC0, 0x9E, 0x60, 0x9D, +0x00, 0xF7, 0x80, 0x34, 0xCC, 0xEB, 0x6D, 0xEC, +0x80, 0xDD, 0x1F, 0xF7, 0x00, 0x6B, 0x60, 0xF5, +0x80, 0x42, 0x8C, 0xEB, 0x02, 0xF0, 0x00, 0x73, +0x01, 0x60, 0x09, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF5, 0x64, 0x9B, 0x60, 0xF5, 0x00, 0x4A, +0x69, 0xE2, 0x40, 0x9A, 0x20, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF5, 0x48, 0x9A, 0x51, 0xE4, +0x40, 0x9C, 0x20, 0xE8, 0xFB, 0x63, 0x09, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0x32, 0x6B, 0xAC, 0xEA, +0xBD, 0x67, 0x70, 0xC5, 0x02, 0x5C, 0x02, 0x6B, +0x6F, 0xCD, 0x92, 0xC5, 0x02, 0x60, 0x53, 0xC5, +0x04, 0x10, 0x01, 0x6A, 0x4B, 0xEA, 0x7D, 0x67, +0x53, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, +0x05, 0x63, 0x00, 0xEF, 0xFF, 0x6B, 0x6C, 0xEC, +0x01, 0x6A, 0x8E, 0xEA, 0x01, 0x5A, 0x58, 0x67, +0x6C, 0xEA, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xEC, +0x01, 0x74, 0x0C, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF5, 0x6C, 0x9B, 0x10, 0x6C, 0x75, 0xE5, +0x60, 0xA5, 0x4C, 0xEB, 0x8D, 0xEB, 0x4C, 0xEB, +0x60, 0xC5, 0x20, 0xE8, 0x09, 0x2C, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF5, 0x4C, 0x9A, 0x55, 0xE5, +0x60, 0xA5, 0xEF, 0x6A, 0x6C, 0xEA, 0x40, 0xC5, +0x20, 0xE8, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0xFF, 0x6A, 0x22, 0xF5, 0x70, 0x9B, 0x4C, 0xEE, +0x4C, 0xEF, 0x05, 0xD6, 0x04, 0xD7, 0x60, 0xA3, +0xFF, 0xF7, 0x1F, 0x68, 0x25, 0x67, 0x4C, 0xEB, +0x72, 0x33, 0x4C, 0xEB, 0x8C, 0xE8, 0x4C, 0xE9, +0x3C, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF5, +0x74, 0x9B, 0x00, 0x6C, 0xFF, 0x6D, 0x60, 0xA3, +0x26, 0x6E, 0x6C, 0xEA, 0x06, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, +0x40, 0xEA, 0x01, 0x72, 0x1D, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x05, 0x96, 0xA0, 0xF2, 0x54, 0x9A, +0x04, 0x6F, 0x90, 0x67, 0x01, 0x6D, 0x40, 0xEA, +0x02, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x96, +0x40, 0xF4, 0x58, 0x9A, 0xB0, 0x67, 0x91, 0x67, +0x40, 0xEA, 0x91, 0x67, 0x00, 0x18, 0xFD, 0xC3, +0xA2, 0x67, 0x90, 0x67, 0x00, 0x18, 0x28, 0xD1, +0x04, 0x95, 0x90, 0x67, 0x00, 0x18, 0x37, 0xD1, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, +0x06, 0x95, 0x00, 0x6C, 0x27, 0x6E, 0x40, 0xEA, +0x1D, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x05, 0x96, +0xA0, 0xF2, 0x54, 0x9A, 0x04, 0x6F, 0x90, 0x67, +0x01, 0x6D, 0x40, 0xEA, 0x02, 0x67, 0x30, 0xF0, +0x20, 0x6A, 0x04, 0x96, 0x40, 0xF4, 0x58, 0x9A, +0xB0, 0x67, 0x91, 0x67, 0x40, 0xEA, 0x91, 0x67, +0x00, 0x18, 0xFD, 0xC3, 0xA2, 0x67, 0x90, 0x67, +0x00, 0x18, 0x28, 0xD1, 0x04, 0x95, 0x90, 0x67, +0x00, 0x18, 0x37, 0xD1, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF5, 0x78, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF5, 0x9C, 0x9C, +0x40, 0x9B, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x42, 0xF5, 0x80, 0x9C, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF5, 0x64, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF5, 0x88, 0x9C, +0x40, 0x9B, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x42, 0xF5, 0x8C, 0x9C, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF5, 0x50, 0x9A, +0x01, 0x6B, 0x40, 0x9A, 0x80, 0xF5, 0x42, 0x32, +0x6E, 0xEA, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x80, 0xA4, 0x80, 0x18, +0x00, 0x00, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0xF7, 0x1F, 0x6A, 0x0E, 0x90, 0x24, 0x67, +0x4C, 0xE9, 0x03, 0x6B, 0x4C, 0xEF, 0x2C, 0xEB, +0x00, 0x6A, 0x0B, 0xD5, 0x0C, 0xD6, 0x04, 0xD7, +0x40, 0xC8, 0x00, 0x6A, 0x0A, 0x23, 0x28, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x0A, 0x6C, 0x40, 0xEA, 0x40, 0xA8, 0x01, 0x4A, +0x40, 0xC8, 0x1F, 0xF7, 0x00, 0x6A, 0x2C, 0xEA, +0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF5, 0x44, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF5, +0x48, 0x9A, 0x49, 0xE1, 0x0B, 0x93, 0x40, 0x9A, +0x6C, 0xEA, 0x0C, 0x93, 0x6E, 0xEA, 0x04, 0x22, +0x40, 0xA8, 0x04, 0x93, 0x63, 0xEA, 0xDC, 0x61, +0x40, 0xA8, 0x04, 0x93, 0x63, 0xEA, 0x58, 0x67, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0xA0, 0x35, +0x4C, 0xEC, 0xA0, 0x35, 0xCC, 0xEA, 0x4D, 0xED, +0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, +0x50, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF6, 0x54, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF6, 0x98, 0x9B, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF6, 0x7C, 0x9B, 0xAD, 0xEA, 0x40, 0xDC, +0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, +0x40, 0x9A, 0x60, 0xDC, 0x00, 0x6B, 0x60, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0xFF, 0xF7, +0x1F, 0x6B, 0x8C, 0xEA, 0xAC, 0xEB, 0x05, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, 0x5C, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, +0x44, 0x9A, 0x60, 0x33, 0x60, 0x33, 0x4D, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, 0x58, 0x9A, +0x00, 0x6C, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF6, 0x48, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF6, 0x60, 0x9B, 0x40, 0xA2, 0x80, 0xC3, +0xFF, 0x6B, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0xF6, 0x6C, 0x9B, 0xFF, 0x6A, +0xCC, 0xEA, 0x6D, 0xEA, 0xE0, 0xF1, 0x1F, 0x6B, +0xAC, 0xEB, 0x60, 0x33, 0x60, 0x33, 0x6D, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF6, 0x18, 0x9B, +0x01, 0x6C, 0x40, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x40, 0xEA, 0x00, 0x6A, +0x40, 0xD8, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xE0, 0xF1, 0x1F, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xAC, 0xEA, 0x22, 0xF6, +0x70, 0x9B, 0x40, 0x32, 0x40, 0x32, 0x6D, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF6, 0x18, 0x4B, +0x60, 0x9B, 0x30, 0xF0, 0x20, 0x68, 0x01, 0x6C, +0x40, 0xDB, 0x80, 0xF3, 0x4C, 0x98, 0xFF, 0x69, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, +0x48, 0x9A, 0x01, 0x6C, 0x40, 0xA2, 0x4C, 0xE9, +0x80, 0xF3, 0x4C, 0x98, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6C, 0x02, 0xF6, 0x18, 0x4C, 0x80, 0x9C, +0x00, 0x6A, 0x40, 0xDC, 0x07, 0x97, 0x51, 0x67, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF6, 0xD4, 0x9B, +0xFF, 0x6A, 0x04, 0x6D, 0x60, 0xA6, 0x4C, 0xEC, +0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC6, +0x11, 0x24, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF6, +0x98, 0x9B, 0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, +0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xC4, +0xA5, 0xF6, 0x08, 0x4A, 0x00, 0x6B, 0xE2, 0xF5, +0x6D, 0xC2, 0x0D, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF6, 0x78, 0x9A, 0xFB, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x88, 0xF4, 0x75, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF6, 0x74, 0x9A, 0xFB, 0x6A, +0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x0E, 0x92, 0x0F, 0x91, 0x04, 0x67, 0x04, 0xD2, +0x04, 0x93, 0xFF, 0x6A, 0x4C, 0xE8, 0x4C, 0xEB, +0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, +0x5C, 0x9A, 0x0B, 0xD5, 0x0C, 0xD6, 0x0D, 0xD7, +0x04, 0xD3, 0x90, 0x67, 0x40, 0xEA, 0x80, 0xF0, +0x07, 0x22, 0x06, 0x58, 0x80, 0xF0, 0x04, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x08, 0x30, 0xA2, 0xF0, +0x08, 0x4A, 0x09, 0xE2, 0x40, 0x9A, 0x00, 0xEA, +0x02, 0xF2, 0x10, 0x6A, 0x0E, 0x10, 0x02, 0xF2, +0x00, 0x6A, 0x0B, 0x10, 0x22, 0xF2, 0x00, 0x6A, +0x08, 0x10, 0x22, 0xF2, 0x10, 0x6A, 0x05, 0x10, +0x42, 0xF2, 0x00, 0x6A, 0x02, 0x10, 0x42, 0xF2, +0x10, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x0D, 0x94, +0xC2, 0xF5, 0x68, 0x9B, 0x8C, 0xEB, 0x30, 0xF0, +0x20, 0x6C, 0x42, 0xF5, 0x9C, 0x9C, 0x8D, 0xEB, +0x06, 0x21, 0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF6, +0x9C, 0x9C, 0x6D, 0xEC, 0x05, 0x10, 0x30, 0xF0, +0x20, 0x6C, 0x42, 0xF6, 0x80, 0x9C, 0x6C, 0xEC, +0x04, 0x96, 0x06, 0x26, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF6, 0x70, 0x9B, 0x8D, 0xEB, 0x05, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF6, 0x64, 0x9B, +0x8C, 0xEB, 0x1F, 0xF7, 0x00, 0x6C, 0x4C, 0xEC, +0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, +0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF5, 0xA4, 0x9C, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF5, +0xA8, 0x9C, 0x30, 0xF0, 0x20, 0x6C, 0x0B, 0x96, +0x42, 0xF6, 0x88, 0x9C, 0xB5, 0xE2, 0xCC, 0xEC, +0x80, 0xDD, 0x84, 0x42, 0x1F, 0xF7, 0x00, 0x6D, +0xAC, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, +0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF6, +0xAC, 0x9C, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, +0x42, 0xF6, 0xB0, 0x9C, 0x30, 0xF0, 0x20, 0x6C, +0x0C, 0x96, 0x42, 0xF6, 0x88, 0x9C, 0xB5, 0xE2, +0xCC, 0xEC, 0x80, 0xDD, 0x87, 0x42, 0x01, 0x4C, +0x1F, 0xF7, 0x00, 0x6D, 0xAC, 0xEC, 0x02, 0xF0, +0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, +0x20, 0x6C, 0x42, 0xF6, 0x94, 0x9C, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF6, 0x98, 0x9C, +0x89, 0xE2, 0x60, 0xDA, 0x01, 0x6A, 0x01, 0x10, +0x00, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x01, 0x68, 0x04, 0xEC, +0x82, 0xF3, 0x08, 0x69, 0x1C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, +0xFF, 0x49, 0x40, 0xEA, 0x14, 0x29, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF5, 0x74, 0x9A, 0x08, 0xF0, +0x00, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0x63, 0xF3, 0x64, 0x9A, 0x8D, 0xEB, 0x63, 0xF3, +0x64, 0xDA, 0x00, 0x6A, 0x0B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF6, 0x5C, 0x9A, 0x60, 0xAA, +0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, 0x0C, 0xEA, +0xDA, 0x2A, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x04, 0xF7, +0x10, 0x68, 0x1C, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x05, 0x6C, 0xFF, 0x48, +0x40, 0xEA, 0x14, 0x28, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF5, 0x74, 0x9A, 0x08, 0xF0, 0x00, 0x6C, +0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, 0x63, 0xF3, +0x64, 0x9A, 0x8D, 0xEB, 0x63, 0xF3, 0x64, 0xDA, +0x00, 0x6A, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF6, 0x5C, 0x9A, 0x60, 0xAA, 0x3F, 0x6A, +0x6C, 0xEA, 0xDC, 0x2A, 0x01, 0x6A, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF6, 0x5C, 0x9A, +0x40, 0xAA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF6, 0x5C, 0x9A, 0x40, 0xAA, 0x20, 0xE8, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x00, 0x6A, 0x04, 0xD2, 0x04, 0x92, 0x01, 0x72, +0x58, 0x67, 0x04, 0xD2, 0x10, 0xF0, 0x23, 0x6A, +0x78, 0x67, 0xE2, 0xF5, 0x11, 0x4A, 0x69, 0xE2, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF4, 0x6C, 0x9B, +0x40, 0xDB, 0x00, 0x1C, 0xAC, 0x39, 0x80, 0x18, +0xDA, 0x02, 0x00, 0x1C, 0xAB, 0x39, 0x00, 0x1C, +0xAC, 0x39, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0xA0, 0xF0, 0x84, 0x9A, 0x02, 0x6B, +0x8C, 0xEB, 0x09, 0x23, 0x03, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x80, 0x18, +0x1F, 0x17, 0x80, 0x18, 0x75, 0x17, 0x00, 0x1C, +0xAB, 0x39, 0x00, 0x1C, 0xAC, 0x39, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, 0xA0, 0xF0, +0x84, 0x9A, 0x04, 0x6B, 0x8C, 0xEB, 0x09, 0x23, +0x05, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0xF0, +0x64, 0xDA, 0x00, 0x18, 0x13, 0xC7, 0x00, 0x18, +0x9B, 0xC7, 0x00, 0x1C, 0xAB, 0x39, 0x00, 0x1C, +0xAC, 0x39, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0xA0, 0xF0, 0x84, 0x9A, 0x10, 0x6B, +0x8C, 0xEB, 0x07, 0x23, 0x11, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x80, 0x18, +0x85, 0x4C, 0x00, 0x1C, 0xAB, 0x39, 0x00, 0x1C, +0xAC, 0x39, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0xA0, 0xF0, 0x84, 0x9A, 0x02, 0xF0, +0x00, 0x6B, 0x8C, 0xEB, 0x08, 0x23, 0x02, 0xF0, +0x01, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0xF0, +0x64, 0xDA, 0x00, 0x18, 0x30, 0xCC, 0x00, 0x1C, +0xAB, 0x39, 0x00, 0x1C, 0xAC, 0x39, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF5, 0x78, 0x9B, 0xA0, 0xF0, +0x84, 0x9A, 0x8C, 0xEB, 0x09, 0x23, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF6, 0x6C, 0x9B, 0x8C, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x80, 0x18, 0x45, 0x16, +0x30, 0xF0, 0x20, 0x69, 0xA5, 0xF6, 0x08, 0x49, +0x00, 0x1C, 0xAB, 0x39, 0x00, 0x1C, 0xAC, 0x39, +0xE3, 0xF1, 0x14, 0xA1, 0x01, 0x6A, 0x4E, 0xE8, +0x05, 0x28, 0x0B, 0x6C, 0x80, 0x18, 0x23, 0x5B, +0xE3, 0xF1, 0x14, 0xC1, 0x80, 0x18, 0x37, 0x5B, +0x80, 0x18, 0x51, 0x5B, 0x00, 0x1C, 0xAB, 0x39, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x65, 0xF5, 0x80, 0x9B, 0x01, 0xF0, 0x58, 0x9A, +0x40, 0xEA, 0x5C, 0x17, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x00, 0x68, 0x0A, 0x70, 0x0C, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x01, 0xF0, 0x54, 0x9A, 0x65, 0xF5, 0x80, 0x9B, +0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, 0x00, 0x68, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF4, 0x6C, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0x42, 0xF7, 0x05, 0x4A, +0x40, 0xDB, 0x00, 0x1C, 0xAC, 0x39, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, 0xA0, 0xF0, +0x84, 0x9A, 0x04, 0xF0, 0x00, 0x6B, 0x8C, 0xEB, +0x08, 0x23, 0x04, 0xF0, 0x01, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x80, 0x18, +0xC8, 0x00, 0x00, 0x1C, 0xAB, 0x39, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF4, 0x6C, 0x9B, 0x10, 0xF0, +0x23, 0x6A, 0x42, 0xF7, 0x06, 0x4A, 0x40, 0xDB, +0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, 0xC6, 0x17, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x5F, 0xCC, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x59, 0xCC, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0xB9, 0xCC, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x33, 0xCD, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x41, 0xCD, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x53, 0xCC, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF5, 0x4C, 0x9A, 0xE1, 0xF7, 0x1F, 0x6B, +0x40, 0xAA, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x50, 0x9A, +0x60, 0x9A, 0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF5, 0x54, 0x9A, 0x01, 0x6B, 0x40, 0x9A, +0x42, 0x32, 0x52, 0x32, 0x6E, 0xEA, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF5, 0x64, 0x9B, 0x44, 0x67, 0x30, 0xF0, +0x20, 0x6C, 0x60, 0x9B, 0xC2, 0xF5, 0x88, 0x9C, +0x8C, 0xEB, 0x43, 0xEB, 0x02, 0x60, 0x6F, 0xEB, +0x69, 0xE2, 0x20, 0xE8, 0x03, 0x6F, 0x8C, 0xEF, +0x64, 0x67, 0x46, 0x67, 0x04, 0x27, 0x0B, 0x10, +0xA0, 0xDB, 0xFC, 0x4A, 0x04, 0x4B, 0x04, 0x5A, +0xFB, 0x60, 0x03, 0x6A, 0x4C, 0xEE, 0x03, 0x10, +0xA0, 0xC4, 0xFF, 0x4E, 0x01, 0x4C, 0xFC, 0x2E, +0x00, 0x6A, 0x20, 0xE8, 0xFF, 0x6A, 0xAC, 0xEA, +0x03, 0x10, 0x40, 0xC4, 0xFF, 0x4E, 0x01, 0x4C, +0xFC, 0x2E, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x63, 0x01, 0xD0, 0x03, 0x6B, 0x05, 0x67, +0x6C, 0xE8, 0x44, 0x67, 0xE4, 0x67, 0x85, 0x67, +0x12, 0x28, 0x4C, 0xEB, 0x10, 0x2B, 0x86, 0x67, +0x06, 0x10, 0x61, 0xE5, 0x00, 0x98, 0x7D, 0xE2, +0xFC, 0x4C, 0x00, 0xDF, 0x04, 0x4B, 0x04, 0x5C, +0xF8, 0x60, 0xCA, 0x34, 0x88, 0x34, 0x03, 0x6B, +0x9D, 0xE2, 0x6C, 0xEE, 0x91, 0xE5, 0x00, 0x6B, +0x06, 0x10, 0x61, 0xE4, 0x00, 0xA0, 0x75, 0xE7, +0xFF, 0x4E, 0x00, 0xC5, 0x01, 0x4B, 0xF9, 0x2E, +0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, 0x00, 0x65, +0x09, 0x10, 0x60, 0xA4, 0x40, 0xA5, 0xFF, 0x4E, +0x4A, 0xEB, 0x02, 0x60, 0x4B, 0xE3, 0x20, 0xE8, +0x01, 0x4C, 0x01, 0x4D, 0xF6, 0x2E, 0x00, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0x06, 0x2C, 0x64, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF5, 0x68, 0xDA, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF5, +0x88, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF5, +0x48, 0x9A, 0x32, 0x72, 0x2A, 0x60, 0x33, 0x5A, +0x0C, 0x60, 0x14, 0x72, 0x2E, 0x60, 0x15, 0x5A, +0x03, 0x60, 0x0A, 0x72, 0x12, 0x60, 0x20, 0xE8, +0x19, 0x72, 0x17, 0x60, 0x28, 0x72, 0x25, 0x60, +0x20, 0xE8, 0x64, 0x72, 0x2A, 0x60, 0x65, 0x5A, +0x03, 0x60, 0x50, 0x72, 0x1E, 0x60, 0x20, 0xE8, +0x78, 0x72, 0x2B, 0x60, 0xC8, 0x72, 0x31, 0x60, +0x20, 0xE8, 0x02, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x45, 0xF5, 0x6C, 0xDA, 0xE0, 0xF7, 0x1E, 0x4B, +0x31, 0x10, 0x09, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x45, 0xF5, 0x6C, 0xDA, 0xE4, 0xF3, 0x17, 0x4B, +0x29, 0x10, 0x11, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x45, 0xF5, 0x6C, 0xDA, 0xE8, 0xF3, 0x0F, 0x4B, +0x21, 0x10, 0x0D, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x45, 0xF5, 0x6C, 0xDA, 0x06, 0xF4, 0x08, 0x4B, +0x19, 0x10, 0x22, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x45, 0xF5, 0x6C, 0xDA, 0x11, 0xF0, 0x00, 0x6B, +0x11, 0x10, 0x28, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x45, 0xF5, 0x6C, 0xDA, 0x14, 0xF0, 0x00, 0x6B, +0x09, 0x10, 0x43, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x45, 0xF5, 0x6C, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF6, 0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x45, 0xF5, 0x70, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF5, 0x48, 0x9A, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x45, 0xF5, 0x50, 0x9A, 0xFF, 0x63, 0x58, 0xEC, +0x12, 0xEA, 0x00, 0xD2, 0x00, 0x92, 0xFF, 0x4A, +0x00, 0xD2, 0x00, 0x92, 0xFB, 0x2A, 0x01, 0x63, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x45, 0xF5, 0x4C, 0x9A, 0xFF, 0x63, 0x58, 0xEC, +0x12, 0xEA, 0x00, 0xD2, 0x00, 0x92, 0xFF, 0x4A, +0x00, 0xD2, 0x00, 0x92, 0xFB, 0x2A, 0x01, 0x63, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x44, 0xC6, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xED, 0x00, 0x18, 0x2B, 0xC6, +0x05, 0x97, 0x00, 0x6A, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, +0x04, 0x67, 0x4C, 0xEE, 0x00, 0x18, 0x30, 0xC6, +0x50, 0x67, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x00, 0x68, 0x20, 0x10, 0xE0, 0xF3, +0x08, 0x70, 0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF5, 0x74, 0x9A, 0x80, 0x6C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0x63, 0xF3, 0x64, 0x9A, +0x8D, 0xEB, 0x63, 0xF3, 0x64, 0xDA, 0x00, 0x6A, +0x13, 0x10, 0xFF, 0xF7, 0x1F, 0x6A, 0x01, 0x48, +0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF1, 0x40, 0x9A, 0x60, 0xA2, +0x01, 0x6A, 0x6C, 0xEA, 0xD8, 0x2A, 0x01, 0x6A, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF1, +0x64, 0x9B, 0x23, 0xF1, 0x88, 0x9C, 0x6D, 0xE5, +0x91, 0xE5, 0x00, 0x6E, 0xC0, 0xDB, 0x04, 0x4B, +0x8A, 0xEB, 0xFB, 0x61, 0xE7, 0xF7, 0x1F, 0x6B, +0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF5, +0x5C, 0x9A, 0x10, 0x6C, 0x4D, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF1, 0x44, 0x9A, 0x49, 0xE5, +0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, +0x4C, 0x9A, 0xFF, 0x6B, 0x55, 0xE5, 0x40, 0xA5, +0x6C, 0xEA, 0x8D, 0xEA, 0x6C, 0xEA, 0x40, 0xC5, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x45, 0xF5, 0x75, 0xA2, 0x08, 0xD4, 0x30, 0xF0, +0x20, 0x69, 0x61, 0xC5, 0x01, 0x4B, 0x45, 0xF5, +0x75, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, +0x84, 0x9B, 0x08, 0x93, 0x80, 0xF2, 0x4C, 0x99, +0x02, 0x6E, 0x91, 0xE3, 0x05, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, 0x90, 0x9B, +0x08, 0x93, 0xCE, 0xA0, 0x80, 0xF2, 0x4C, 0x99, +0xA2, 0x40, 0x91, 0xE3, 0x40, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x24, 0x67, 0x00, 0x18, 0xA3, 0xC6, 0x00, 0x6B, +0x46, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, +0x44, 0x9A, 0xFF, 0xF7, 0x1F, 0x6E, 0xFF, 0x6F, +0x00, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, +0x48, 0x9A, 0x10, 0x6C, 0x8B, 0xEC, 0x4C, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0xA1, 0x40, 0x23, 0xF1, +0x54, 0x9A, 0x65, 0x67, 0xCC, 0xEB, 0x60, 0xCA, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, 0x58, 0x9A, +0x60, 0xA2, 0xFA, 0x65, 0xA2, 0x32, 0xEC, 0xEB, +0x8C, 0xEB, 0x42, 0x32, 0x6D, 0xEA, 0xEC, 0xEA, +0x7F, 0x67, 0x40, 0xC3, 0x87, 0xA9, 0x02, 0x4C, +0xCC, 0xEC, 0x00, 0x18, 0xBC, 0xC6, 0x87, 0x40, +0x12, 0x4C, 0xB1, 0x67, 0x00, 0x18, 0xD3, 0xC6, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, 0x40, 0x9A, +0x01, 0x6B, 0x80, 0xF2, 0x16, 0x6C, 0x60, 0xC2, +0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x48, 0x9A, 0x01, 0x6D, 0x00, 0x6E, +0x04, 0xF7, 0x10, 0x6F, 0x40, 0xEA, 0x4B, 0xEB, +0x4D, 0xEB, 0xC0, 0xF7, 0x62, 0x33, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x43, 0x67, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xA5, 0xF6, +0x08, 0x48, 0x40, 0xF6, 0x9A, 0xA0, 0x40, 0xF6, +0x5B, 0xA0, 0x8E, 0xEA, 0x37, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF1, 0x5C, 0x9A, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF1, 0x78, 0x9B, 0x40, 0x9A, +0x6C, 0xEA, 0x2C, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x90, 0x34, 0x06, 0xF0, 0x02, 0x4A, 0x91, 0xE2, +0x00, 0x18, 0xE8, 0xC6, 0x1D, 0x22, 0x40, 0xF6, +0x5A, 0xA0, 0x01, 0x4A, 0x40, 0xF6, 0x5A, 0xC0, +0x40, 0xF6, 0x7A, 0xA0, 0x40, 0xF6, 0x5B, 0xA0, +0x6E, 0xEA, 0x06, 0x22, 0xA0, 0xF0, 0x44, 0x98, +0x04, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0x40, 0xF6, 0x7A, 0xA2, 0x50, 0x6C, 0x8E, 0xEB, +0x09, 0x2B, 0x40, 0xF6, 0x7A, 0xC2, 0x06, 0x10, +0xA0, 0xF0, 0x44, 0x98, 0x04, 0x6B, 0x6D, 0xEA, +0xA0, 0xF0, 0x44, 0xD8, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xA5, 0xF6, +0x08, 0x48, 0xA0, 0xF0, 0x44, 0x98, 0x04, 0x6B, +0xA4, 0x67, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, +0x40, 0xF6, 0x5A, 0xA8, 0x09, 0xF7, 0x00, 0x72, +0x07, 0x60, 0x40, 0xF6, 0x5A, 0xA0, 0x40, 0xF6, +0x9B, 0xA0, 0xFF, 0x4A, 0x8E, 0xEA, 0x13, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x74, 0x9A, +0x00, 0xF2, 0x00, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0x63, 0xF3, 0x64, 0x9A, 0x8D, 0xEB, +0x63, 0xF3, 0x64, 0xDA, 0x18, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, +0x4C, 0x9A, 0x06, 0xF0, 0x02, 0x4B, 0x90, 0x34, +0x91, 0xE3, 0x10, 0x6E, 0x40, 0xEA, 0x40, 0xF6, +0x5B, 0xA0, 0x50, 0x6B, 0x01, 0x4A, 0x40, 0xF6, +0x5B, 0xC0, 0x40, 0xF6, 0x5B, 0xA0, 0x6E, 0xEA, +0x02, 0x2A, 0x40, 0xF6, 0x5B, 0xC0, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0x45, 0xF5, 0x54, 0xA3, 0xFF, 0x6F, +0xE0, 0xF0, 0xC7, 0xA5, 0x41, 0xC5, 0x43, 0xA5, +0x45, 0xF5, 0x74, 0xA3, 0x03, 0x4A, 0xEC, 0xEA, +0x09, 0x10, 0xED, 0x42, 0xFF, 0x68, 0x0C, 0xEF, +0xFD, 0xE5, 0x64, 0xC7, 0xE6, 0xA7, 0x03, 0x4F, +0xE9, 0xE2, 0x0C, 0xEA, 0xEF, 0x46, 0xE2, 0xEA, +0xF4, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF5, +0x74, 0xA2, 0x01, 0x4B, 0x45, 0xF5, 0x74, 0xC2, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, 0x64, 0x9B, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0x71, 0xE4, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x24, 0x67, 0x00, 0x18, +0xA3, 0xC6, 0x00, 0x6B, 0x3C, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF5, 0x44, 0x9A, 0x0F, 0x6C, +0xFF, 0xF7, 0x1F, 0x6B, 0x00, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF5, 0x48, 0x9A, 0x4C, 0xE8, +0xA1, 0x40, 0xA2, 0x32, 0x42, 0x32, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF1, 0x94, 0x9C, +0xAC, 0xEB, 0x60, 0xCC, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF1, 0x78, 0x9B, 0x40, 0xC3, 0xE0, 0xF0, +0x87, 0xA1, 0x00, 0x18, 0xBC, 0xC6, 0x87, 0x40, +0x12, 0x4C, 0xB1, 0x67, 0x00, 0x18, 0x5C, 0xC7, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, 0x40, 0x9A, +0x01, 0x6B, 0x80, 0xF2, 0x16, 0x6C, 0x60, 0xC2, +0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x48, 0x9A, 0x01, 0x6D, 0x00, 0x6E, +0x04, 0xF7, 0x10, 0x6F, 0x40, 0xEA, 0x4B, 0xEB, +0x4D, 0xEB, 0xC0, 0xF7, 0x62, 0x33, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x43, 0x67, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xA5, 0xF6, +0x08, 0x48, 0xC2, 0xF4, 0x7F, 0xA0, 0xE2, 0xF4, +0x40, 0xA0, 0x6E, 0xEA, 0x3E, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF1, 0x5C, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x03, 0xF1, 0x98, 0x9C, 0x40, 0x9A, +0x8C, 0xEA, 0x33, 0x2A, 0xE8, 0x6A, 0x58, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x06, 0xF5, 0x04, 0x4A, +0x12, 0xEB, 0x71, 0xE2, 0x00, 0x18, 0x75, 0xC7, +0x07, 0x2A, 0xA0, 0xF0, 0x44, 0x98, 0x04, 0x6B, +0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, 0x21, 0x10, +0xC2, 0xF4, 0x5F, 0xA0, 0x10, 0x6B, 0x01, 0x4A, +0xC2, 0xF4, 0x5F, 0xC0, 0xC2, 0xF4, 0x5F, 0xA0, +0x6E, 0xEA, 0x02, 0x2A, 0xC2, 0xF4, 0x5F, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0xC2, 0xF4, 0x9F, 0xA2, 0xE2, 0xF4, 0x60, 0xA2, +0x8E, 0xEB, 0x07, 0x23, 0xA0, 0xF0, 0x64, 0x9A, +0x04, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, +0x04, 0x10, 0xC2, 0xF4, 0x9E, 0xC2, 0xC2, 0xF4, +0x7C, 0xCA, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0xC2, 0xF4, 0x7F, 0xA2, +0xA4, 0x67, 0x04, 0x2B, 0xE2, 0xF4, 0x40, 0xA2, +0x0F, 0x72, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x68, +0xA5, 0xF6, 0x08, 0x48, 0xC2, 0xF4, 0x5F, 0xA0, +0xE2, 0xF4, 0x60, 0xA0, 0xFF, 0x4A, 0x6E, 0xEA, +0x15, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, +0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF0, +0x94, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0x63, 0xF3, 0x64, 0x9A, 0x8D, 0xEB, 0x63, 0xF3, +0x64, 0xDA, 0xAC, 0x10, 0x23, 0xA5, 0xFF, 0xF7, +0x1F, 0x6A, 0x04, 0x49, 0x4C, 0xE9, 0xC2, 0xF4, +0x5C, 0xA8, 0x22, 0x2A, 0xE8, 0x6A, 0x58, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6C, +0x80, 0xF2, 0x4C, 0x9A, 0x06, 0xF5, 0x04, 0x4C, +0xFF, 0x6E, 0x2C, 0xEE, 0x12, 0xEB, 0x71, 0xE4, +0x40, 0xEA, 0xE2, 0xF4, 0x40, 0xA0, 0xC2, 0xF4, +0x7F, 0xA0, 0xC2, 0xF4, 0x3C, 0xC8, 0x4E, 0xEB, +0x79, 0x2B, 0x01, 0x4A, 0xE2, 0xF4, 0x40, 0xC0, +0xE2, 0xF4, 0x40, 0xA0, 0x10, 0x6B, 0x6E, 0xEA, +0x71, 0x2A, 0xE2, 0xF4, 0x40, 0xC0, 0x6E, 0x10, +0x62, 0xA5, 0x39, 0x2B, 0x4D, 0xE1, 0xE3, 0x53, +0x36, 0x60, 0xC2, 0xF4, 0x7E, 0xA0, 0xE8, 0x6C, +0x98, 0xEB, 0x12, 0xEB, 0x0D, 0xE3, 0x40, 0xF6, +0x9E, 0xA3, 0x2D, 0x2C, 0x40, 0xF6, 0x9F, 0xA3, +0xFF, 0x6E, 0xFC, 0x4A, 0xFF, 0x4C, 0x40, 0xF6, +0x9F, 0xC3, 0xC2, 0xF4, 0x7C, 0xA8, 0xC2, 0xF4, +0x9E, 0xA0, 0xCC, 0xEA, 0xFF, 0x4B, 0xC2, 0xF4, +0x7C, 0xC8, 0xE8, 0x6B, 0x78, 0xEC, 0x2C, 0xEE, +0x12, 0xEC, 0x91, 0xE0, 0x51, 0xE4, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0x40, 0xF6, +0x1F, 0x4C, 0x40, 0xEA, 0xC2, 0xF4, 0x5E, 0xA0, +0xE8, 0x6B, 0x78, 0xEA, 0x12, 0xEA, 0x09, 0xE2, +0x40, 0xF6, 0x7F, 0xA2, 0x6D, 0xE1, 0x40, 0xF6, +0x7F, 0xC2, 0xC2, 0xF4, 0x5C, 0xA8, 0x45, 0xE1, +0xC2, 0xF4, 0x3C, 0xC8, 0x33, 0x10, 0x30, 0xF0, +0x20, 0x68, 0xA5, 0xF6, 0x08, 0x48, 0xE2, 0xF4, +0x80, 0xA0, 0xE8, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x58, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0x06, 0xF5, 0x04, 0x4B, 0xFF, 0x6E, +0x2C, 0xEE, 0x12, 0xEC, 0x91, 0xE3, 0x40, 0xEA, +0xE2, 0xF4, 0x40, 0xA0, 0x10, 0x6B, 0xC2, 0xF4, +0x3C, 0xC8, 0x01, 0x4A, 0xE2, 0xF4, 0x40, 0xC0, +0xE2, 0xF4, 0x40, 0xA0, 0x6E, 0xEA, 0x02, 0x2A, +0xE2, 0xF4, 0x40, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0xC2, 0xF4, 0x7E, 0xA2, +0x10, 0x6C, 0x01, 0x4B, 0xC2, 0xF4, 0x7E, 0xC2, +0xC2, 0xF4, 0x7E, 0xA2, 0x8E, 0xEB, 0x02, 0x2B, +0xC2, 0xF4, 0x7E, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0xC2, 0xF4, 0x9E, 0xA2, +0xE8, 0x6B, 0x78, 0xEC, 0xC2, 0xF4, 0x9C, 0xAA, +0x12, 0xEB, 0x4D, 0xE3, 0x40, 0xF7, 0x83, 0xC3, +0xA0, 0xF0, 0x64, 0x9A, 0x04, 0x6C, 0x8D, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x60, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0xC0, 0xF0, 0xBC, 0xA2, 0x01, 0x6C, +0x6C, 0xEC, 0x02, 0x6B, 0x6B, 0xEB, 0xAC, 0xEB, +0x8D, 0xEB, 0xC0, 0xF0, 0x7C, 0xC2, 0x20, 0xE8, +0xFF, 0x6A, 0x4C, 0xED, 0xFF, 0x75, 0x4C, 0xEC, +0xCC, 0xEA, 0x06, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0xA5, 0xF6, 0x08, 0x4B, 0x71, 0xE4, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, +0x71, 0xE4, 0x43, 0xF3, 0x60, 0xA4, 0xAC, 0xEA, +0xAF, 0xED, 0x6C, 0xED, 0xAD, 0xEA, 0x43, 0xF3, +0x40, 0xC4, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xEC, +0xFF, 0x74, 0xAC, 0xEA, 0x05, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0xE9, 0xF1, 0x46, 0xC3, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, +0x23, 0xF3, 0xBE, 0xA3, 0x8C, 0xEA, 0x8F, 0xEC, +0xAC, 0xEC, 0x8D, 0xEA, 0x23, 0xF3, 0x5E, 0xC3, +0x20, 0xE8, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x01, 0xA4, 0x20, 0xA4, +0x0C, 0x20, 0x90, 0x67, 0xB1, 0x67, 0x00, 0x18, +0x49, 0xC8, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0x90, 0x67, 0xB1, 0x67, 0x53, 0x6E, +0x40, 0xEA, 0x7D, 0x67, 0x20, 0x6A, 0x50, 0xC3, +0x03, 0x6A, 0x4F, 0xCB, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF5, 0x54, 0x9A, 0x9D, 0x67, 0x40, 0xA2, +0x52, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0x23, 0xF3, 0x7E, 0xA2, 0x23, 0xF3, +0x5F, 0xA2, 0x73, 0xC4, 0x54, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, +0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xF7, 0x63, 0x11, 0x62, +0x10, 0xD1, 0x0F, 0xD0, 0x40, 0xA4, 0x08, 0xD2, +0x08, 0x93, 0x1F, 0x6A, 0x4C, 0xEB, 0x08, 0xD3, +0x42, 0xA4, 0x61, 0xA4, 0x0B, 0xD2, 0x43, 0xA4, +0x84, 0xA4, 0x09, 0xD4, 0x08, 0x94, 0x08, 0x5C, +0x44, 0x60, 0x84, 0x31, 0x09, 0x94, 0x01, 0x2C, +0x28, 0x22, 0xFF, 0x68, 0x0C, 0xEA, 0x0C, 0xEB, +0xA2, 0x67, 0xC3, 0x67, 0x91, 0x67, 0x0C, 0xD2, +0x0D, 0xD3, 0x00, 0x18, 0x3C, 0xC8, 0x0B, 0x94, +0x09, 0x93, 0x41, 0x41, 0x0C, 0xEC, 0x0B, 0xD4, +0x0B, 0x96, 0x0C, 0xEA, 0x0C, 0xEB, 0x82, 0x67, +0xA3, 0x67, 0x30, 0xF0, 0x20, 0x68, 0x0A, 0xD2, +0x09, 0xD3, 0x00, 0x18, 0x3C, 0xC8, 0x40, 0xF4, +0x40, 0x98, 0x0C, 0x95, 0x0D, 0x96, 0x91, 0x67, +0x01, 0x6F, 0x40, 0xEA, 0x40, 0xF4, 0x40, 0x98, +0x0A, 0x94, 0x09, 0x95, 0x0B, 0x96, 0x02, 0x6F, +0x40, 0xEA, 0x91, 0x67, 0x00, 0x18, 0x77, 0xCF, +0x7D, 0x67, 0x53, 0xC3, 0x42, 0x32, 0x54, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0x45, 0xE1, 0x43, 0xF3, 0x40, 0xA1, 0x55, 0xC3, +0x43, 0xF3, 0x41, 0xA1, 0x56, 0xC3, 0x43, 0xF3, +0x50, 0xA1, 0x57, 0xC3, 0x43, 0xF3, 0x51, 0xA1, +0x58, 0xC3, 0x9D, 0x67, 0x21, 0x6A, 0x72, 0xA4, +0x50, 0xC4, 0x07, 0x6A, 0x4F, 0xCC, 0x20, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x08, 0x93, 0x6D, 0xEA, +0x52, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x11, 0x97, +0x10, 0x91, 0x0F, 0x90, 0x09, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x1A, 0x6A, 0x7D, 0x67, +0x50, 0xC3, 0x00, 0xF0, 0x12, 0x04, 0x07, 0x6A, +0x4F, 0xCB, 0x80, 0x18, 0x59, 0x5C, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, +0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x19, 0x6A, 0x7D, 0x67, +0x50, 0xC3, 0x00, 0xF0, 0x12, 0x04, 0x08, 0x6A, +0x4F, 0xCB, 0x80, 0x18, 0x22, 0x5C, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, +0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, +0xFF, 0xF7, 0x1F, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x8C, 0xEA, 0xA3, 0xF1, 0x6C, 0x9B, 0x30, 0xF0, +0x20, 0x6C, 0xA3, 0xF1, 0x90, 0x9C, 0xCC, 0xEB, +0x40, 0xF6, 0xA0, 0x35, 0x8D, 0xEB, 0x1F, 0xF7, +0x00, 0x6C, 0x4C, 0xEC, 0x02, 0xF0, 0x00, 0x74, +0xAD, 0xEB, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, +0x20, 0x6C, 0x22, 0xF5, 0x84, 0x9C, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF5, 0x88, 0x9C, +0x89, 0xE2, 0x60, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0x1F, 0xF7, +0x00, 0x6C, 0x4C, 0xEC, 0xFF, 0x6B, 0x02, 0xF0, +0x00, 0x74, 0xAC, 0xEB, 0x01, 0x60, 0x05, 0x2C, +0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF5, 0x84, 0x9C, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF5, +0x88, 0x9C, 0x91, 0xE2, 0x00, 0x6D, 0xA0, 0xDC, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF1, 0x8C, 0x9C, +0xD4, 0x36, 0x40, 0xF6, 0x60, 0x33, 0x8C, 0xEE, +0x6D, 0xEE, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, +0x70, 0x9B, 0x6D, 0xEE, 0x1F, 0xF7, 0x00, 0x6B, +0x4C, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, +0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF5, +0x64, 0x9B, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF5, 0x68, 0x9B, 0x69, 0xE2, 0xC0, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0x0F, 0xF5, 0x00, 0x6B, +0x78, 0xEE, 0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF1, 0x8C, 0x9C, +0x40, 0xF6, 0xA0, 0x35, 0x12, 0xEB, 0x8C, 0xEB, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF1, 0x90, 0x9C, +0xAD, 0xEB, 0x8D, 0xEB, 0x1F, 0xF7, 0x00, 0x6C, +0x4C, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, +0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF5, +0x84, 0x9C, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, +0x22, 0xF5, 0x88, 0x9C, 0x89, 0xE2, 0x60, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF5, 0x54, 0x9A, 0x60, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x02, 0xF5, 0x58, 0x9A, 0x40, 0x9A, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x8C, 0xEA, +0x01, 0x72, 0x06, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF5, 0x54, 0x9A, 0x40, 0x9A, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF5, 0x58, 0x9A, +0x40, 0x9A, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x88, 0xF4, 0x54, 0xA2, 0x01, 0x72, 0x0B, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0x7C, 0x9A, +0xFF, 0x6C, 0x04, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF4, 0xDC, 0x9B, +0xFD, 0x63, 0x22, 0xF4, 0x1C, 0x4B, 0x02, 0xD6, +0xC1, 0x9B, 0x64, 0xAB, 0xFF, 0x6A, 0x03, 0xD6, +0xDD, 0x67, 0x68, 0xCE, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF4, 0xD4, 0x9B, 0x22, 0xF4, 0x14, 0x4B, +0x64, 0xA3, 0x4C, 0xEC, 0x00, 0xD6, 0xDD, 0x67, +0x64, 0xC6, 0x8D, 0xE6, 0xE0, 0xA3, 0x84, 0x33, +0x6D, 0xE6, 0xC4, 0xAB, 0x1F, 0xF7, 0x00, 0x6B, +0x4C, 0xED, 0xCC, 0xEB, 0x02, 0xF0, 0x00, 0x73, +0x01, 0x60, 0x0C, 0x2B, 0x5D, 0x67, 0x84, 0x34, +0x91, 0xE2, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0xAC, +0x22, 0xF5, 0x44, 0x9A, 0x49, 0xE3, 0x60, 0xA2, +0xFF, 0x6A, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF5, 0x68, 0x9B, 0x79, 0xE6, 0x60, 0xA6, +0xE4, 0xED, 0x6C, 0xEA, 0xA7, 0x67, 0x4C, 0xED, +0x00, 0x6B, 0x01, 0x25, 0x01, 0x6B, 0xFF, 0x6A, +0x6C, 0xEA, 0x03, 0x63, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x84, 0x9A, +0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, +0xA0, 0x9C, 0x52, 0x9B, 0xAC, 0xEA, 0x53, 0xDB, +0x40, 0xDC, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0xD1, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, +0x2C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, +0x10, 0x4A, 0x40, 0x9A, 0x60, 0x99, 0x30, 0xF0, +0x20, 0x6C, 0xA0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF1, 0x58, 0x9A, 0xE3, 0xF1, 0x00, 0x4C, +0x80, 0x9C, 0x00, 0x9A, 0x1A, 0x65, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0x9C, 0xE3, 0xF1, 0x08, 0x4A, +0x40, 0x9A, 0x01, 0xD4, 0x30, 0xF0, 0x20, 0x6C, +0x40, 0x9A, 0xA5, 0xF6, 0xE8, 0x9C, 0x00, 0xD2, +0x44, 0x67, 0xA5, 0xF6, 0x08, 0x4A, 0xC1, 0x9A, +0x83, 0x9A, 0x6C, 0xEF, 0xAC, 0xEE, 0x01, 0x93, +0xA2, 0x9A, 0xE8, 0xDA, 0x6C, 0xEC, 0x0C, 0xED, +0x64, 0x9A, 0x00, 0x90, 0x8B, 0xDA, 0xC9, 0xDA, +0x0C, 0xEB, 0xAA, 0xDA, 0x6C, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF1, 0x10, 0x4A, 0x40, 0x9A, +0xE0, 0xD9, 0x18, 0x67, 0xC0, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF1, 0x00, 0x4A, 0x40, 0x9A, +0xA0, 0xD8, 0x80, 0xDA, 0x30, 0xF0, 0x20, 0x6C, +0xE3, 0xF1, 0x08, 0x4C, 0x80, 0x9C, 0x60, 0xDC, +0x05, 0x91, 0x04, 0x90, 0x03, 0x63, 0x20, 0xE8, +0xFF, 0x63, 0x01, 0xD1, 0x00, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF5, 0x00, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF1, 0xF4, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF1, 0xDC, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, 0x80, 0x98, +0xB4, 0x9A, 0x60, 0x9F, 0x20, 0x9E, 0x8C, 0xED, +0x95, 0x9A, 0xB7, 0xDA, 0x6C, 0xEC, 0x76, 0x9A, +0x98, 0xDA, 0x2C, 0xEB, 0x79, 0xDA, 0xA0, 0xD8, +0x80, 0xDF, 0x60, 0xDE, 0x01, 0x91, 0x00, 0x90, +0x01, 0x63, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x48, 0x9A, 0xFF, 0x6B, 0x80, 0xA2, +0x03, 0x6A, 0x8C, 0xEA, 0x03, 0x72, 0x13, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF7, 0x84, 0xA2, +0x01, 0x6A, 0x8C, 0xEA, 0x6C, 0xEA, 0x0B, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x8C, 0x9A, +0x80, 0x6D, 0xAB, 0xED, 0x40, 0xA4, 0x6C, 0xEA, +0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x20, 0xE8, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x48, 0x9A, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0xA0, 0xF0, 0x8F, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, +0x07, 0x23, 0xA0, 0xF0, 0x64, 0x9A, 0x04, 0xF0, +0x00, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0x00, 0x18, 0x79, 0xC9, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, +0x06, 0x74, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF2, 0x90, 0x9B, 0x01, 0x6D, 0x60, 0xA4, +0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x74, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF5, 0x8C, 0x9C, +0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, 0x63, 0xF3, +0x64, 0x9A, 0x8D, 0xEB, 0x63, 0xF3, 0x64, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x48, 0x9A, 0x60, 0xA2, 0x03, 0x6A, +0x6C, 0xEA, 0x03, 0x72, 0x08, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x6C, 0x9A, 0x7F, 0x6A, +0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x48, 0x9A, +0x60, 0xA2, 0x03, 0x6A, 0x6C, 0xEA, 0x03, 0x72, +0x08, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, +0x6C, 0x9A, 0x7F, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x20, 0xE8, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0x4C, 0xEC, 0x07, 0x6D, 0xB8, 0xEC, +0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, +0x01, 0x6E, 0x12, 0xEC, 0x71, 0xE4, 0xC0, 0xF0, +0xBD, 0xA4, 0xCC, 0xED, 0x1D, 0x25, 0xC0, 0xF0, +0xBE, 0xA4, 0xE2, 0xF5, 0x68, 0x9B, 0xC0, 0xF0, +0x9D, 0xA4, 0x75, 0xE5, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF7, 0x7C, 0x9B, 0xBC, 0x35, 0x21, 0x4D, +0x75, 0xE5, 0xE0, 0xA5, 0x9E, 0x33, 0x9A, 0x34, +0xCC, 0xEC, 0x78, 0x33, 0x9C, 0x34, 0x4C, 0xEF, +0x8D, 0xEB, 0xED, 0xEB, 0x00, 0xF6, 0x60, 0x33, +0x00, 0xF6, 0x63, 0x33, 0x4C, 0xEB, 0x60, 0xC5, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0x01, 0x15, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x49, 0xF2, 0x4E, 0xA2, +0x09, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF5, +0x5C, 0x9A, 0x66, 0x6B, 0x00, 0x6C, 0x60, 0xC2, +0x80, 0x18, 0x00, 0x00, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x4B, 0xC1, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x49, 0xF2, 0x74, 0xA2, +0x02, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, +0x00, 0x18, 0xE6, 0xCB, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF2, 0x68, 0x9B, +0xFF, 0x6A, 0x4C, 0xEC, 0xA0, 0xA3, 0x03, 0x6B, +0xAC, 0xEB, 0x03, 0x73, 0x13, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x85, 0xF7, 0xA4, 0xA3, 0x01, 0x6B, +0xAC, 0xEB, 0x4C, 0xEB, 0x0B, 0x23, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF2, 0xAC, 0x9B, 0x80, 0x6E, +0xCB, 0xEE, 0x60, 0xA5, 0x4C, 0xEB, 0xCD, 0xEB, +0x4C, 0xEB, 0x60, 0xC5, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0xA3, 0xF3, 0x6D, 0xA2, +0x8E, 0xEB, 0x11, 0x2B, 0xA3, 0xF3, 0x6C, 0xA2, +0x1F, 0x6D, 0x6A, 0x32, 0xAC, 0xEA, 0x47, 0xEC, +0x01, 0x6C, 0x8C, 0xEA, 0x08, 0x22, 0x02, 0x6A, +0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x00, 0x6C, 0x00, 0x18, 0xE6, 0xCB, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0x00, 0x18, 0x05, 0xCA, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0x8B, 0x19, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x45, 0xF7, 0x77, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0x02, 0x22, 0x80, 0x18, 0x6F, 0x00, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF7, 0x77, 0xA2, +0x01, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x80, 0x18, +0x6F, 0x00, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0x9C, 0x1A, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x79, 0xC5, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x76, 0xC5, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0x2F, 0x16, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0x77, 0x15, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0x63, 0x01, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF7, 0x7C, 0x9B, 0xFF, 0x6A, 0x4C, 0xEE, +0x6D, 0xE4, 0x08, 0x68, 0x80, 0xA3, 0xDB, 0xE0, +0x02, 0x67, 0x4C, 0xED, 0x07, 0xEE, 0xD0, 0x67, +0x4C, 0xEF, 0x04, 0xED, 0x4C, 0xEC, 0xCC, 0xEF, +0x0F, 0xE8, 0x8C, 0xE8, 0xE4, 0xED, 0xED, 0xE8, +0x4C, 0xE8, 0x00, 0xC3, 0x01, 0x90, 0x01, 0x63, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF7, 0x5C, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, +0x8C, 0xEB, 0x4D, 0xE3, 0x40, 0xA3, 0xFF, 0x6C, +0x8C, 0xEE, 0x08, 0x6B, 0xDB, 0xE3, 0x8C, 0xED, +0x8C, 0xEA, 0x64, 0x67, 0x47, 0xED, 0x67, 0xEE, +0x6C, 0xEA, 0x8C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF4, 0x6C, 0x9B, 0x10, 0xF0, +0x23, 0x6A, 0xA5, 0xF1, 0x01, 0x4A, 0x40, 0xDB, +0x00, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, +0x44, 0x9A, 0x40, 0x9A, 0x21, 0x22, 0xE0, 0xF3, +0x09, 0x70, 0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF5, 0x74, 0x9A, 0x20, 0x6C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0x63, 0xF3, 0x64, 0x9A, +0x8D, 0xEB, 0x63, 0xF3, 0x64, 0xDA, 0x00, 0x6A, +0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x32, 0x6C, 0x01, 0x48, 0x40, 0xEA, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0xD9, 0x17, +0x01, 0x6A, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, +0x94, 0x34, 0x4C, 0xED, 0x4C, 0xEC, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF2, 0x48, 0x9A, 0x80, 0xC2, +0xA0, 0xC2, 0x20, 0xE8, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF2, 0x68, 0x9B, 0x4C, 0xEC, +0x94, 0x34, 0x4C, 0xEC, 0x80, 0xC3, 0x60, 0xA3, +0x6C, 0xEA, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xED, +0xFF, 0x75, 0x4C, 0xEC, 0xCC, 0xEA, 0x06, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, +0x71, 0xE4, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xA5, 0xF6, 0x08, 0x4B, 0x71, 0xE4, 0x43, 0xF3, +0x70, 0xA4, 0xAC, 0xEA, 0xAF, 0xED, 0x6C, 0xED, +0xAD, 0xEA, 0x43, 0xF3, 0x50, 0xC4, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6B, +0x6C, 0xEC, 0x07, 0x6A, 0x6C, 0xED, 0x8C, 0xEA, +0x01, 0x68, 0xE6, 0x67, 0x04, 0xEA, 0xAB, 0xEE, +0x30, 0xF0, 0x20, 0x6A, 0xAD, 0xEE, 0x40, 0xF4, +0x40, 0x9A, 0x6C, 0xE8, 0xC0, 0xF7, 0xC3, 0x36, +0x8E, 0x34, 0x6C, 0xEF, 0xB0, 0x67, 0x0C, 0xEE, +0x6C, 0xEC, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFF, 0x6A, 0x4C, 0xEC, +0xFF, 0x74, 0xAC, 0xEA, 0x05, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0xE9, 0xF1, 0x47, 0xC3, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, +0x23, 0xF3, 0xBF, 0xA3, 0x8C, 0xEA, 0x8F, 0xEC, +0xAC, 0xEC, 0x8D, 0xEA, 0x23, 0xF3, 0x5F, 0xC3, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0x26, 0x67, +0x0C, 0xE9, 0x53, 0x71, 0x0C, 0xEC, 0x0C, 0xED, +0x09, 0x60, 0x06, 0x2C, 0x30, 0xF0, 0x20, 0x6A, +0xE9, 0xF1, 0x46, 0xA2, 0xAD, 0xEA, 0x0B, 0x10, +0x00, 0x18, 0xAD, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0x23, 0xF3, 0x7F, 0xA2, +0x23, 0xF3, 0x5E, 0xA2, 0x6D, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0xF5, 0x74, 0x9B, 0x0C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xE9, 0xF1, +0x24, 0xC2, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0xA0, 0xF0, 0x64, 0x9A, +0x10, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x49, 0xF2, 0x55, 0xA2, 0xFF, 0x63, 0x05, 0x5A, +0x36, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x48, 0x32, +0x42, 0xF4, 0x08, 0x4B, 0x4D, 0xE3, 0x40, 0x9B, +0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF5, +0x5C, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, 0x40, 0x9A, +0x1A, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF5, +0x5C, 0x9A, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF2, 0x5C, 0x9A, 0x0D, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF2, 0x5C, 0x9A, 0x40, 0x9A, +0x50, 0x32, 0x00, 0xF5, 0x42, 0x32, 0x08, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x40, 0x9A, +0x40, 0x9A, 0xE1, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, +0x00, 0xD2, 0x00, 0x93, 0xE0, 0xF3, 0x08, 0x6A, +0x60, 0x33, 0x68, 0x33, 0x5B, 0xEB, 0x01, 0x2A, +0xE5, 0xE8, 0x12, 0xEA, 0x01, 0x10, 0x66, 0x6A, +0x00, 0xD2, 0x00, 0x92, 0x01, 0x63, 0x20, 0xE8, +0xFF, 0x63, 0x01, 0xD0, 0x15, 0x2C, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF5, 0x74, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x42, 0xF5, 0x9C, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0x63, 0xF3, 0x64, 0x9A, +0x8D, 0xEB, 0x63, 0xF3, 0x64, 0xDA, 0x5D, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0xA3, 0xF3, 0xAC, 0xA2, 0x03, 0x6B, 0x6B, 0xEB, +0xAC, 0xEB, 0xA3, 0xF3, 0x6C, 0xC2, 0xA3, 0xF3, +0xD0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF2, +0x14, 0x4A, 0x00, 0x6D, 0x18, 0x6F, 0xF8, 0xED, +0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, +0x12, 0xEF, 0x6D, 0xE7, 0xC3, 0xF3, 0x00, 0xA3, +0x01, 0x6F, 0xEC, 0xE8, 0x23, 0x20, 0xC3, 0xF3, +0x60, 0xA3, 0x66, 0x33, 0xEC, 0xEB, 0xFF, 0x6F, +0xEC, 0xEB, 0x1C, 0x23, 0xFF, 0xF7, 0x78, 0x9A, +0x9B, 0xEB, 0x01, 0x2C, 0xE5, 0xE8, 0x12, 0xEB, +0xFF, 0xF7, 0x7C, 0xDA, 0x10, 0xEF, 0x03, 0x27, +0x01, 0x4B, 0xFF, 0xF7, 0x7C, 0xDA, 0x60, 0x9A, +0x78, 0xEE, 0x12, 0xEB, 0x9B, 0xEB, 0x01, 0x2C, +0xE5, 0xE8, 0x12, 0xEB, 0x60, 0xDA, 0xFF, 0xF7, +0x7C, 0x9A, 0x04, 0x2B, 0x01, 0x6F, 0xFF, 0xF7, +0xFC, 0xDA, 0x60, 0xDA, 0x01, 0x4D, 0x0A, 0x75, +0x18, 0x4A, 0xCC, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0xA3, 0xF3, 0x74, 0x9A, +0xA3, 0xF3, 0x90, 0xDA, 0x7B, 0xEC, 0x01, 0x2B, +0xE5, 0xE8, 0xA3, 0xF3, 0x8C, 0xA2, 0x12, 0xEB, +0xA3, 0xF3, 0x78, 0xDA, 0x78, 0x67, 0xA3, 0xF3, +0x7C, 0xDA, 0x02, 0x6B, 0x8D, 0xEB, 0xA3, 0xF3, +0x6C, 0xC2, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xA5, 0xF6, 0x08, 0x48, +0xA3, 0xF3, 0x4C, 0xA0, 0x03, 0x69, 0x4C, 0xE9, +0x00, 0x6A, 0x26, 0x29, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF2, 0x44, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xFF, 0x6E, 0x20, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x48, 0x9A, 0x49, 0xF2, 0x14, 0x4C, +0x00, 0x6D, 0x05, 0x4E, 0x40, 0xEA, 0x66, 0x6A, +0xA3, 0xF3, 0x8C, 0xA0, 0xA3, 0xF3, 0x50, 0xD8, +0xA3, 0xF3, 0x58, 0xD8, 0x80, 0x4A, 0x9D, 0x4A, +0x8C, 0xEA, 0x04, 0x6C, 0x01, 0x6B, 0x8D, 0xEA, +0x6D, 0xEA, 0xA3, 0xF3, 0x4C, 0xC0, 0xA3, 0xF3, +0x74, 0xD8, 0xA3, 0xF3, 0x2D, 0xC0, 0x43, 0x67, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xA5, 0xF6, +0x08, 0x48, 0xA3, 0xF3, 0x8C, 0xA0, 0x01, 0x6B, +0x00, 0x6A, 0x8C, 0xEB, 0x22, 0x23, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF2, 0x44, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x03, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, +0xA3, 0xF3, 0x4C, 0xC0, 0x00, 0x18, 0xD5, 0xCA, +0x04, 0xD2, 0x04, 0x94, 0x00, 0x18, 0xF6, 0xCA, +0xA3, 0xF3, 0x6C, 0xA0, 0x02, 0x6A, 0xA3, 0xF3, +0xD4, 0x98, 0x6D, 0xEA, 0xA3, 0xF3, 0x4C, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, +0xFF, 0x6C, 0x6D, 0x4C, 0x01, 0x6D, 0x40, 0xEA, +0x01, 0x6A, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0xA5, 0xF6, 0x08, 0x4B, 0xA3, 0xF3, 0xAC, 0xA3, +0x02, 0x6C, 0x00, 0x6A, 0xAC, 0xEC, 0x0C, 0x24, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x44, 0x9A, +0x00, 0x6C, 0x80, 0xC2, 0x03, 0x6A, 0x4B, 0xEA, +0xAC, 0xEA, 0xA3, 0xF3, 0x4C, 0xC3, 0x01, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0x00, 0x6A, 0x18, 0x6C, +0x98, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF6, +0x08, 0x4B, 0x01, 0x4A, 0x0A, 0x72, 0x12, 0xEC, +0x71, 0xE4, 0xC3, 0xF3, 0xA0, 0xA4, 0x02, 0x6B, +0x6B, 0xEB, 0xAC, 0xEB, 0xC3, 0xF3, 0x60, 0xC4, +0xEE, 0x61, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x49, 0xF2, 0x54, 0xA2, 0x01, 0x6B, 0x4C, 0xEB, +0x00, 0x6A, 0x1C, 0x23, 0x30, 0xF0, 0x20, 0x6A, +0x69, 0xF2, 0x18, 0x4A, 0x00, 0x6B, 0xA0, 0x9A, +0x8E, 0xED, 0x0F, 0x2D, 0x18, 0x6E, 0xD8, 0xEB, +0x30, 0xF0, 0x20, 0x6D, 0xA5, 0xF6, 0x08, 0x4D, +0x12, 0xEE, 0xB9, 0xE6, 0xC3, 0xF3, 0xE0, 0xA6, +0x02, 0x6D, 0xAB, 0xED, 0xEC, 0xED, 0xC3, 0xF3, +0xA0, 0xC6, 0x01, 0x4B, 0x0A, 0x73, 0x18, 0x4A, +0xEA, 0x61, 0x01, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x5D, 0x67, 0x0A, 0xD4, 0x20, 0xF0, 0x98, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x0B, 0xD5, 0x0C, 0xD6, +0xA5, 0xF6, 0x08, 0x4A, 0xA3, 0xF3, 0xAC, 0xA2, +0x01, 0x6B, 0x00, 0xF6, 0xE0, 0x31, 0xAC, 0xEB, +0x00, 0xF6, 0x23, 0x31, 0x80, 0xF0, 0x09, 0x23, +0x21, 0x24, 0x01, 0x74, 0x80, 0xF0, 0x05, 0x61, +0x0A, 0x93, 0x80, 0xF0, 0x02, 0x23, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF2, 0x68, 0x9B, 0xC3, 0xEB, +0x7C, 0x61, 0x7F, 0x71, 0x7A, 0x60, 0xFF, 0xF7, +0x1F, 0x51, 0x77, 0x61, 0xA3, 0xF3, 0x10, 0x9A, +0x1B, 0xEE, 0x01, 0x28, 0xE5, 0xE8, 0x10, 0xEA, +0x12, 0xE8, 0x02, 0x22, 0x01, 0x48, 0x04, 0x10, +0x03, 0x28, 0x01, 0x68, 0x50, 0x67, 0x1D, 0x10, +0x01, 0x6B, 0x1E, 0x10, 0x0A, 0x94, 0x65, 0x24, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, 0x68, 0x9B, +0x0C, 0x95, 0xA3, 0xEB, 0x5E, 0x61, 0x7F, 0x71, +0x5C, 0x60, 0xFF, 0xF7, 0x1F, 0x51, 0x59, 0x61, +0xA3, 0xF3, 0x14, 0x9A, 0x1B, 0xED, 0x01, 0x28, +0xE5, 0xE8, 0x10, 0xEA, 0x12, 0xE8, 0x02, 0x22, +0x01, 0x48, 0x05, 0x10, 0x04, 0x28, 0x01, 0x68, +0x00, 0x6A, 0x04, 0xD2, 0x02, 0x10, 0x00, 0x6B, +0x04, 0xD3, 0x0A, 0x94, 0x00, 0x18, 0x7F, 0xCB, +0x00, 0x6C, 0xFF, 0x6E, 0xA4, 0x67, 0xCC, 0xED, +0x1D, 0x65, 0x18, 0x6D, 0xB8, 0xEC, 0x30, 0xF0, +0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, 0x01, 0x6D, +0x12, 0xEA, 0x69, 0xE2, 0xC3, 0xF3, 0x40, 0xA2, +0xAC, 0xEA, 0xCC, 0xEA, 0x2F, 0x2A, 0xD8, 0x67, +0x18, 0x6F, 0xF8, 0xEE, 0x04, 0x96, 0xC4, 0x36, +0x04, 0xD6, 0x03, 0x6E, 0xCB, 0xEE, 0x12, 0xEC, +0x71, 0xE4, 0xC3, 0xF3, 0xE0, 0xA4, 0xEC, 0xEE, +0x04, 0x97, 0xED, 0xEE, 0xC3, 0xF3, 0xC0, 0xC4, +0x0A, 0x96, 0xC3, 0xF3, 0xD0, 0xDC, 0x0B, 0x97, +0xC3, 0xF3, 0xF4, 0xDC, 0x0C, 0x96, 0x18, 0x6F, +0xC3, 0xF3, 0xC4, 0xDC, 0xD8, 0x67, 0x01, 0x4E, +0xF8, 0xEE, 0x12, 0xEE, 0x6D, 0xE6, 0xA3, 0xF3, +0x54, 0xDB, 0xA3, 0xF3, 0x10, 0xDB, 0xC3, 0xF3, +0x41, 0xC4, 0xC3, 0xF3, 0x40, 0xA4, 0xC3, 0xF3, +0x22, 0xC4, 0x4D, 0xED, 0xC3, 0xF3, 0xA0, 0xC4, +0x01, 0x6A, 0x04, 0x10, 0x01, 0x4C, 0x0A, 0x74, +0xBC, 0x61, 0x00, 0x6A, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, +0x06, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF2, +0x14, 0x4A, 0x00, 0x6C, 0x2C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x69, 0xF2, 0x14, 0x4A, 0x00, 0x6B, +0x18, 0x6D, 0xB8, 0xEB, 0x30, 0xF0, 0x20, 0x6C, +0xA5, 0xF6, 0x08, 0x4C, 0x12, 0xED, 0x91, 0xE5, +0xC3, 0xF3, 0xC0, 0xA4, 0x01, 0x6D, 0xAC, 0xEE, +0x08, 0x26, 0xC3, 0xF3, 0x80, 0xA4, 0x86, 0x34, +0xAC, 0xEC, 0x03, 0x24, 0x80, 0x9A, 0x01, 0x4C, +0x80, 0xDA, 0x01, 0x4B, 0x0A, 0x73, 0x18, 0x4A, +0xE7, 0x61, 0x00, 0x18, 0xD5, 0xCA, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0x93, 0x49, 0xF2, +0x58, 0x9A, 0x6E, 0xEA, 0x52, 0x22, 0x04, 0x94, +0x00, 0x18, 0xF6, 0xCA, 0x4E, 0x10, 0x18, 0x6D, +0xB8, 0xEC, 0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF6, +0x08, 0x4B, 0x12, 0xED, 0x6D, 0xE5, 0xC3, 0xF3, +0xC0, 0xA3, 0x01, 0x6D, 0xAC, 0xEE, 0x0A, 0x26, +0xC3, 0xF3, 0x60, 0xA3, 0x66, 0x33, 0xAC, 0xEB, +0xFF, 0x6D, 0xAC, 0xEB, 0x03, 0x2B, 0x60, 0x9A, +0x01, 0x4B, 0x60, 0xDA, 0x01, 0x4C, 0x0A, 0x74, +0x18, 0x4A, 0xE5, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0xA3, 0xF3, 0x6D, 0xA2, +0xFF, 0x73, 0x2B, 0x61, 0xA3, 0xF3, 0x7C, 0x9A, +0x01, 0x4B, 0xA3, 0xF3, 0x7C, 0xDA, 0xA3, 0xF3, +0x58, 0x9A, 0x4E, 0xEB, 0x22, 0x2B, 0x30, 0xF0, +0x20, 0x6A, 0x69, 0xF2, 0x14, 0x4A, 0x18, 0x6D, +0xB8, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0xA5, 0xF6, +0x08, 0x4C, 0x12, 0xED, 0x91, 0xE5, 0xC3, 0xF3, +0xC0, 0xA4, 0x01, 0x6D, 0xAC, 0xEE, 0x08, 0x26, +0xC3, 0xF3, 0x80, 0xA4, 0x86, 0x34, 0xAC, 0xEC, +0x03, 0x24, 0x80, 0x9A, 0x01, 0x4C, 0x80, 0xDA, +0x01, 0x4B, 0x0A, 0x73, 0x18, 0x4A, 0xE7, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x78, 0x67, 0x69, 0xF2, +0x64, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0xA0, 0xF0, 0x64, 0x9A, 0x02, 0xF0, +0x00, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, +0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x69, 0xF2, 0x09, 0x48, +0x00, 0x69, 0x18, 0x6A, 0x58, 0xE9, 0x30, 0xF0, +0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, 0x12, 0xEA, +0x69, 0xE2, 0xC3, 0xF3, 0x80, 0xA2, 0x01, 0x6B, +0x8C, 0xEB, 0x27, 0x23, 0x00, 0xF0, 0x8B, 0x98, +0x00, 0xF0, 0x67, 0x98, 0x63, 0xEC, 0x21, 0x61, +0x61, 0x80, 0x81, 0x43, 0x04, 0xD4, 0x07, 0x2C, +0x00, 0xF0, 0x4F, 0x98, 0x00, 0xF0, 0x93, 0x98, +0x40, 0xEA, 0x04, 0x92, 0x14, 0x10, 0x80, 0xA0, +0x01, 0x4C, 0x80, 0xC0, 0x80, 0xA0, 0x82, 0xEB, +0x08, 0x60, 0xC3, 0xF3, 0x80, 0xA2, 0x02, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0xC3, 0xF3, 0x60, 0xC2, +0x08, 0x10, 0x00, 0xF0, 0x4F, 0x98, 0x00, 0xF0, +0x93, 0x98, 0x40, 0xEA, 0x00, 0x6A, 0x00, 0xF0, +0x4B, 0xD8, 0x01, 0x49, 0x0A, 0x71, 0x18, 0x48, +0xC8, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF4, 0x6C, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0x46, 0xF1, 0x0D, 0x4A, 0x40, 0xDB, 0x01, 0x4A, +0x40, 0xDB, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF4, 0x6C, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0x66, 0xF1, 0x05, 0x4A, 0x40, 0xDB, 0x01, 0x4A, +0x40, 0xDB, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF4, 0x6C, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0x66, 0xF1, 0x1D, 0x4A, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF2, 0x6C, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF0, 0x4C, 0x9A, 0x80, 0x9B, +0xA4, 0x67, 0x4C, 0xED, 0x4E, 0xED, 0x02, 0x25, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x4C, 0x9A, +0x01, 0x6B, 0x40, 0x9A, 0x6C, 0xEA, 0x60, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x50, 0x9A, +0x00, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, +0x54, 0x9A, 0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF2, 0x58, 0x9A, 0xC0, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF2, 0x5C, 0x9A, 0xA0, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0x40, 0x9A, +0x80, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, +0x44, 0x9A, 0x40, 0x9A, 0x41, 0x22, 0x30, 0xF0, +0x20, 0x69, 0x63, 0xF2, 0x28, 0x99, 0x60, 0xD9, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF5, 0x64, 0x9B, +0x00, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF7, +0x7C, 0x9B, 0xE0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF2, 0x6C, 0x9B, 0xC0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF2, 0x70, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0x74, 0x9B, +0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, +0x78, 0x9B, 0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF7, +0x98, 0x9C, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF5, 0x74, 0x9A, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0x5C, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x7D, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x77, 0xF0, 0x24, 0x6C, 0xC0, 0xF1, +0x04, 0x4C, 0xAE, 0xB8, 0x00, 0x65, 0xA0, 0xDC, +0x9A, 0xB8, 0x00, 0x65, 0xBB, 0xB8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF4, 0x6C, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0x66, 0xF1, 0x1E, 0x4A, +0x40, 0xDB, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6D, 0x8C, 0xED, 0x18, 0x4D, 0x01, 0x6A, +0x44, 0xED, 0x00, 0x6C, 0xA2, 0x67, 0x80, 0x18, +0x5C, 0x5D, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6D, 0x8C, 0xED, +0x18, 0x4D, 0x01, 0x6A, 0x44, 0xED, 0x00, 0x6C, +0xA2, 0x67, 0x80, 0x18, 0x8D, 0x5D, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF4, 0x6C, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0xE6, 0xF2, 0x05, 0x4A, +0x40, 0xDB, 0x00, 0x18, 0x66, 0xC9, 0x30, 0xF0, +0x20, 0x6A, 0x05, 0xF7, 0x64, 0x9A, 0x6C, 0x23, +0x01, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0xA7, 0xC9, 0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF7, +0x44, 0x9A, 0x02, 0x6B, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0xA8, 0xC9, 0x30, 0xF0, 0x20, 0x6A, +0x05, 0xF7, 0x44, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0x28, 0xCA, 0x30, 0xF0, +0x20, 0x6A, 0x05, 0xF7, 0x44, 0x9A, 0x08, 0x6B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0xA9, 0xC9, +0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF7, 0x44, 0x9A, +0x10, 0x6B, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0xAA, 0xC9, 0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF7, +0x44, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0xAB, 0xC9, 0x30, 0xF0, 0x20, 0x6A, +0x05, 0xF7, 0x44, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0xFD, 0xC9, 0x30, 0xF0, +0x20, 0x6A, 0x05, 0xF7, 0x44, 0x9A, 0x80, 0x6B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0xF9, 0xC9, +0x30, 0xF0, 0x20, 0x6B, 0x05, 0xF7, 0x64, 0x9B, +0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0xEF, 0xC9, 0x30, 0xF0, 0x20, 0x6B, +0x05, 0xF7, 0x64, 0x9B, 0x04, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0xAC, 0xC9, +0x30, 0xF0, 0x20, 0x6B, 0x05, 0xF7, 0x64, 0x9B, +0x08, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0xAD, 0xC9, 0x30, 0xF0, 0x20, 0x6B, +0x05, 0xF7, 0x64, 0x9B, 0x10, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0xAE, 0xC9, +0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF7, 0x68, 0x9A, +0x14, 0x23, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, +0x44, 0x9A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0xB2, 0xC9, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF5, 0x58, 0x9A, 0x05, 0xF7, +0x68, 0x9B, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0xEB, 0xC9, 0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF7, +0x6C, 0x9A, 0x55, 0x23, 0x01, 0x6A, 0x6C, 0xEA, +0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, 0xAF, 0xC9, +0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF7, 0x4C, 0x9A, +0x02, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, +0x00, 0x18, 0xB0, 0xC9, 0x30, 0xF0, 0x20, 0x6A, +0x05, 0xF7, 0x4C, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, +0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, 0xAF, 0xC9, +0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF7, 0x4C, 0x9A, +0x08, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, +0x00, 0x18, 0xB0, 0xC9, 0x30, 0xF0, 0x20, 0x6A, +0x05, 0xF7, 0x4C, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, +0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, 0xAF, 0xC9, +0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF7, 0x4C, 0x9A, +0x20, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, +0x00, 0x18, 0xB0, 0xC9, 0x30, 0xF0, 0x20, 0x6A, +0x05, 0xF7, 0x4C, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, +0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, 0xAF, 0xC9, +0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF7, 0x4C, 0x9A, +0x80, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, +0x00, 0x18, 0xB0, 0xC9, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF4, 0x6C, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0xE6, 0xF2, 0x06, 0x4A, 0x40, 0xDB, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF4, 0x2C, 0x9A, 0x10, 0xF0, 0x23, 0x68, +0xC6, 0xF4, 0x0D, 0x48, 0x00, 0xD9, 0x00, 0x18, +0x36, 0xC9, 0x30, 0xF0, 0x20, 0x6A, 0xE5, 0xF6, +0x54, 0x9A, 0x02, 0x22, 0x01, 0x48, 0x00, 0xD9, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF4, 0x6C, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0x06, 0xF5, 0x05, 0x4A, +0x40, 0xDB, 0x00, 0x18, 0x3D, 0xC9, 0x30, 0xF0, +0x20, 0x6A, 0xC5, 0xF6, 0x68, 0x9A, 0xE0, 0xF0, +0x14, 0x23, 0x02, 0x6A, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0x89, 0xC9, 0x30, 0xF0, 0x20, 0x6A, +0xC5, 0xF6, 0x48, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0x4A, 0xCA, 0x30, 0xF0, +0x20, 0x6A, 0xC5, 0xF6, 0x48, 0x9A, 0x20, 0x6B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x46, 0xCA, +0x30, 0xF0, 0x20, 0x6A, 0xC5, 0xF6, 0x48, 0x9A, +0x40, 0x6B, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0x8E, 0xC9, 0x30, 0xF0, 0x20, 0x6A, 0xC5, 0xF6, +0x48, 0x9A, 0x80, 0x6B, 0x6C, 0xEA, 0x05, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x48, 0x9A, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC5, 0xF6, +0x68, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0x42, 0xCA, 0x30, 0xF0, +0x20, 0x6B, 0xC5, 0xF6, 0x68, 0x9B, 0x00, 0xF2, +0x00, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0x3E, 0xCA, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF2, 0x5C, 0x9A, 0xC5, 0xF6, +0x68, 0x9B, 0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF6, 0x44, 0x9A, 0x6C, 0xEA, +0x04, 0x22, 0x00, 0x6C, 0x00, 0x18, 0xC6, 0xC9, +0x03, 0x10, 0x00, 0x6C, 0x00, 0x18, 0xBD, 0xC9, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF2, 0x40, 0x9A, 0xC5, 0xF6, 0x68, 0x9B, +0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF5, 0x58, 0x9A, 0x6C, 0xEA, 0x04, 0x22, +0x01, 0x6C, 0x00, 0x18, 0xC6, 0xC9, 0x03, 0x10, +0x01, 0x6C, 0x00, 0x18, 0xBD, 0xC9, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, +0x44, 0x9A, 0xC5, 0xF6, 0x68, 0x9B, 0x6C, 0xEA, +0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, +0x5C, 0x9A, 0x6C, 0xEA, 0x04, 0x22, 0x02, 0x6C, +0x00, 0x18, 0xC6, 0xC9, 0x03, 0x10, 0x02, 0x6C, +0x00, 0x18, 0xBD, 0xC9, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, 0x48, 0x9A, +0xC5, 0xF6, 0x68, 0x9B, 0x6C, 0xEA, 0x0D, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, 0x5C, 0x9A, +0x6C, 0xEA, 0x04, 0x22, 0x03, 0x6C, 0x00, 0x18, +0xC6, 0xC9, 0x03, 0x10, 0x03, 0x6C, 0x00, 0x18, +0xBD, 0xC9, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF2, 0x4C, 0x9A, 0xC5, 0xF6, +0x68, 0x9B, 0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF5, 0x58, 0x9A, 0x6C, 0xEA, +0x04, 0x22, 0x04, 0x6C, 0x00, 0x18, 0xC6, 0xC9, +0x03, 0x10, 0x04, 0x6C, 0x00, 0x18, 0xBD, 0xC9, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF2, 0x50, 0x9A, 0xC5, 0xF6, 0x68, 0x9B, +0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF6, 0x50, 0x9A, 0x6C, 0xEA, 0x04, 0x22, +0x05, 0x6C, 0x00, 0x18, 0xC6, 0xC9, 0x03, 0x10, +0x05, 0x6C, 0x00, 0x18, 0xBD, 0xC9, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, +0x54, 0x9A, 0xC5, 0xF6, 0x68, 0x9B, 0x6C, 0xEA, +0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, +0x5C, 0x9A, 0x6C, 0xEA, 0x04, 0x22, 0x06, 0x6C, +0x00, 0x18, 0xC6, 0xC9, 0x03, 0x10, 0x06, 0x6C, +0x00, 0x18, 0xBD, 0xC9, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, 0x58, 0x9A, +0xC5, 0xF6, 0x68, 0x9B, 0x6C, 0xEA, 0x09, 0x22, +0x00, 0x53, 0x04, 0x60, 0x07, 0x6C, 0x00, 0x18, +0xC6, 0xC9, 0x03, 0x10, 0x07, 0x6C, 0x00, 0x18, +0xBD, 0xC9, 0x30, 0xF0, 0x20, 0x6A, 0xC5, 0xF6, +0x6C, 0x9A, 0x12, 0x23, 0x08, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x3A, 0xCA, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF5, 0x4C, 0x9A, 0xC5, 0xF6, 0x6C, 0x9B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x90, 0xC9, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0x8A, 0x9A, 0x7B, 0x24, 0x01, 0x6B, 0x6C, 0xEC, +0x06, 0x24, 0x9F, 0x9A, 0x6D, 0xEC, 0x9F, 0xDA, +0x00, 0x6C, 0x00, 0x18, 0x23, 0xCA, 0x30, 0xF0, +0x20, 0x6A, 0xC5, 0xF6, 0x50, 0x9A, 0x02, 0x6B, +0x6C, 0xEA, 0x03, 0x22, 0x10, 0x6C, 0x00, 0x18, +0x9A, 0xC9, 0x30, 0xF0, 0x20, 0x6A, 0xC5, 0xF6, +0x50, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x20, 0x6C, 0x00, 0x18, 0x9A, 0xC9, 0x30, 0xF0, +0x20, 0x6A, 0xC5, 0xF6, 0x50, 0x9A, 0x08, 0x6B, +0x6C, 0xEA, 0x03, 0x22, 0x30, 0x6C, 0x00, 0x18, +0x9A, 0xC9, 0x30, 0xF0, 0x20, 0x6A, 0xC5, 0xF6, +0x50, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x40, 0x6C, 0x00, 0x18, 0x9A, 0xC9, 0x30, 0xF0, +0x20, 0x6A, 0xC5, 0xF6, 0x50, 0x9A, 0x20, 0x6B, +0x6C, 0xEA, 0x03, 0x22, 0x50, 0x6C, 0x00, 0x18, +0x9A, 0xC9, 0x30, 0xF0, 0x20, 0x6A, 0xC5, 0xF6, +0x50, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x60, 0x6C, 0x00, 0x18, 0x9A, 0xC9, 0x30, 0xF0, +0x20, 0x6A, 0xC5, 0xF6, 0x50, 0x9A, 0x80, 0x6B, +0x6C, 0xEA, 0x03, 0x22, 0x70, 0x6C, 0x00, 0x18, +0x9A, 0xC9, 0x30, 0xF0, 0x20, 0x6B, 0xC5, 0xF6, +0x70, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, 0x23, 0xCA, +0x30, 0xF0, 0x20, 0x6B, 0xC5, 0xF6, 0x70, 0x9B, +0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, +0x02, 0x6C, 0x00, 0x18, 0x23, 0xCA, 0x30, 0xF0, +0x20, 0x6B, 0xC5, 0xF6, 0x70, 0x9B, 0x00, 0xF4, +0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, +0x00, 0x18, 0x23, 0xCA, 0x30, 0xF0, 0x20, 0x6B, +0xC5, 0xF6, 0x70, 0x9B, 0x01, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, +0x23, 0xCA, 0x30, 0xF0, 0x20, 0x6A, 0xC5, 0xF6, +0x74, 0x9A, 0x78, 0x23, 0x01, 0x6A, 0x6C, 0xEA, +0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, 0x33, 0xCA, +0x30, 0xF0, 0x20, 0x6A, 0xC5, 0xF6, 0x54, 0x9A, +0x02, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x10, 0x6C, +0x00, 0x18, 0x2C, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0xC5, 0xF6, 0x54, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, +0x03, 0x22, 0x20, 0x6C, 0x00, 0x18, 0x2C, 0xCA, +0x30, 0xF0, 0x20, 0x6A, 0xC5, 0xF6, 0x54, 0x9A, +0x08, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x30, 0x6C, +0x00, 0x18, 0x2C, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0xC5, 0xF6, 0x54, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, +0x03, 0x22, 0x40, 0x6C, 0x00, 0x18, 0x2C, 0xCA, +0x30, 0xF0, 0x20, 0x6A, 0xC5, 0xF6, 0x54, 0x9A, +0x20, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x50, 0x6C, +0x00, 0x18, 0x2C, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0xC5, 0xF6, 0x54, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, +0x03, 0x22, 0x60, 0x6C, 0x00, 0x18, 0x2C, 0xCA, +0x30, 0xF0, 0x20, 0x6A, 0xC5, 0xF6, 0x54, 0x9A, +0x80, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x70, 0x6C, +0x00, 0x18, 0x2C, 0xCA, 0x30, 0xF0, 0x20, 0x6B, +0xC5, 0xF6, 0x74, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, +0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, +0x33, 0xCA, 0x30, 0xF0, 0x20, 0x6B, 0xC5, 0xF6, +0x74, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, +0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, 0x33, 0xCA, +0x30, 0xF0, 0x20, 0x6B, 0xC5, 0xF6, 0x74, 0x9B, +0x00, 0xF4, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, +0x03, 0x6C, 0x00, 0x18, 0x33, 0xCA, 0x30, 0xF0, +0x20, 0x6B, 0xC5, 0xF6, 0x74, 0x9B, 0x01, 0xF0, +0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, +0x00, 0x18, 0x33, 0xCA, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF4, 0x6C, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0x06, 0xF5, 0x06, 0x4A, 0x40, 0xDB, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xDD, 0x63, 0x45, 0x62, +0x44, 0xD1, 0x43, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xFF, 0x69, 0xA3, 0xF2, 0x44, 0x9A, 0x8C, 0xE9, +0x30, 0x31, 0x49, 0xE1, 0x40, 0xD2, 0x40, 0xA2, +0x00, 0xF6, 0x40, 0x32, 0x00, 0xF6, 0x43, 0x32, +0x00, 0x52, 0x40, 0x60, 0x01, 0x6A, 0x7D, 0x67, +0x4B, 0xEA, 0x54, 0xC3, 0x0F, 0x6A, 0x56, 0xC3, +0x10, 0x6A, 0x57, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF6, 0x54, 0x9A, 0x30, 0xF0, 0x20, 0x68, +0x06, 0x04, 0x49, 0xE1, 0x40, 0x9A, 0x04, 0x05, +0x04, 0x6E, 0x04, 0xD2, 0x80, 0xF2, 0x4C, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, +0x48, 0x9A, 0x07, 0x04, 0x04, 0x05, 0x49, 0xE1, +0x40, 0x9A, 0x04, 0x6E, 0x04, 0xD2, 0x80, 0xF2, +0x4C, 0x98, 0x40, 0xEA, 0x40, 0x93, 0x08, 0x04, +0x04, 0x05, 0x40, 0x9B, 0x04, 0x6E, 0x04, 0xD2, +0x80, 0xF2, 0x4C, 0x98, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF2, 0x4C, 0x9A, 0x09, 0x04, +0x04, 0x05, 0x45, 0xE1, 0x40, 0x99, 0x04, 0x6E, +0x04, 0xD2, 0x80, 0xF2, 0x4C, 0x98, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, +0x05, 0x04, 0x40, 0xEA, 0x45, 0x97, 0x44, 0x91, +0x43, 0x90, 0x23, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF6, 0x94, 0x9C, +0x50, 0x33, 0x91, 0xE3, 0x80, 0x9C, 0x30, 0xF0, +0x20, 0x6C, 0xA3, 0xF2, 0x88, 0x9C, 0x8D, 0xE3, +0x82, 0x67, 0x60, 0x9B, 0x00, 0x18, 0x55, 0xCE, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF2, 0x50, 0x9A, 0xA3, 0xF2, 0x74, 0x9B, +0x00, 0xA2, 0x20, 0xA3, 0xFF, 0x6A, 0x4C, 0xE8, +0x4C, 0xE9, 0x2A, 0xE8, 0x35, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF6, 0x54, 0x9A, 0x10, 0x33, +0x49, 0xE3, 0x40, 0xA2, 0xFF, 0x6B, 0x6C, 0xEA, +0x56, 0x32, 0x6C, 0xEA, 0x02, 0x72, 0x0E, 0x60, +0x03, 0x5A, 0x02, 0x60, 0x06, 0x22, 0x1A, 0x10, +0x04, 0x72, 0x0D, 0x60, 0x06, 0x72, 0x10, 0x60, +0x15, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x4C, 0x9A, 0x0E, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x54, 0x9A, 0x09, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x58, 0x9A, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x5C, 0x9A, +0x90, 0x67, 0x40, 0xEA, 0x01, 0x48, 0x7F, 0x6A, +0x4C, 0xE8, 0x0A, 0xE9, 0xD0, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF2, 0x50, 0x9A, 0x20, 0xC2, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, +0x8C, 0xEA, 0xFF, 0x6B, 0xE2, 0x67, 0x6C, 0xEE, +0x6C, 0xEF, 0x1E, 0x65, 0x87, 0x67, 0x03, 0x6E, +0xCC, 0xEC, 0x80, 0xF0, 0x10, 0x2C, 0x30, 0xF0, +0x20, 0x6C, 0xA3, 0xF2, 0x18, 0x9C, 0x08, 0x69, +0x42, 0x32, 0x80, 0xA0, 0x52, 0x32, 0x6C, 0xEA, +0x6C, 0xEC, 0x2D, 0xEC, 0x6C, 0xEC, 0x80, 0xC0, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF2, 0x9C, 0x9C, +0xCC, 0xEA, 0xE0, 0xC4, 0x30, 0xF0, 0x20, 0x6C, +0xC3, 0xF2, 0x80, 0x9C, 0x40, 0xC4, 0x0F, 0x6A, +0x98, 0x67, 0x8C, 0xEA, 0x74, 0x22, 0x01, 0x6C, +0x4C, 0xEC, 0x06, 0x24, 0x30, 0xF0, 0x20, 0x6C, +0xC3, 0xF2, 0x84, 0x9C, 0xAC, 0xEB, 0x60, 0xC4, +0x02, 0x6B, 0x4C, 0xEB, 0x08, 0x23, 0xFF, 0x6C, +0xA2, 0x33, 0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, +0xC3, 0xF2, 0x88, 0x9C, 0x60, 0xC4, 0x04, 0x6B, +0x4C, 0xEB, 0x09, 0x23, 0xA2, 0x33, 0xFF, 0x6C, +0x62, 0x33, 0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, +0xC3, 0xF2, 0x8C, 0x9C, 0x60, 0xC4, 0x4E, 0x33, +0x07, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, +0x70, 0x9B, 0x00, 0xF6, 0xA2, 0x35, 0xA0, 0xC3, +0x20, 0x6B, 0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF2, 0x54, 0x9A, 0x64, 0x68, 0x60, 0xC2, +0x2C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0A, 0x6C, 0xFF, 0x48, 0x40, 0xEA, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0x21, 0x28, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x74, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF7, 0x9C, 0x9C, +0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, 0x63, 0xF3, +0x64, 0x9A, 0x8D, 0xEB, 0x63, 0xF3, 0x64, 0xDA, +0x60, 0xA1, 0xD0, 0x6A, 0x6C, 0xEA, 0x40, 0xC1, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x78, 0x9A, +0xF7, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, +0x16, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, +0x34, 0x9A, 0x20, 0x6A, 0x60, 0xA1, 0x6C, 0xEA, +0xCC, 0x2A, 0x60, 0xA1, 0xF0, 0x6A, 0x6C, 0xEA, +0x40, 0xC1, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, +0x78, 0x9A, 0xF7, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, +0x8C, 0xEA, 0xC2, 0x67, 0xFF, 0x6C, 0x8C, 0xEE, +0x03, 0x6D, 0x66, 0x67, 0xAC, 0xEB, 0x4B, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF2, 0xF8, 0x9B, +0x08, 0x68, 0x42, 0x32, 0x60, 0xA7, 0x52, 0x32, +0x8C, 0xEA, 0x8C, 0xEB, 0x0D, 0xEB, 0x8C, 0xEB, +0x60, 0xC7, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF2, +0x7C, 0x9B, 0xAC, 0xEA, 0x64, 0x68, 0xC0, 0xC3, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0x60, 0x9B, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, +0x54, 0x9A, 0x30, 0x6B, 0x60, 0xC2, 0x2E, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x0A, 0x6C, 0xFF, 0x48, 0x40, 0xEA, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xE8, 0x23, 0x28, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF5, 0x74, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x42, 0xF7, 0x9C, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0x63, 0xF3, 0x64, 0x9A, +0x8D, 0xEB, 0x63, 0xF3, 0x64, 0xDA, 0x60, 0xA1, +0xCF, 0x6A, 0x6C, 0xEA, 0x40, 0xC1, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF2, 0x78, 0x9A, 0xF7, 0x6A, +0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x6A, +0x4B, 0xEA, 0x19, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF2, 0x34, 0x9A, 0x20, 0x6A, 0x60, 0xA1, +0x6C, 0xEA, 0xCA, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF2, 0x44, 0x9A, 0xEF, 0x6B, 0x40, 0x9A, +0x80, 0xA1, 0x8C, 0xEB, 0x60, 0xC1, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF2, 0x98, 0x9B, 0xF7, 0x6B, +0xA0, 0xA4, 0xAC, 0xEB, 0x60, 0xC4, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF2, 0xB8, 0x9A, 0xE0, 0xF3, 0x10, 0x6C, +0x0F, 0x6E, 0x00, 0x18, 0xB5, 0xCE, 0xE0, 0xF3, +0x0C, 0x6C, 0x00, 0x18, 0x09, 0xCF, 0xFF, 0x6B, +0x4C, 0xEB, 0x0B, 0x73, 0x0B, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF2, 0x7C, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xE3, 0xF2, 0x80, 0x9C, 0x40, 0x9B, +0x8C, 0xEA, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF2, 0x64, 0x9A, 0xFF, 0x6C, 0x20, 0x6D, +0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xC3, 0x40, 0xA3, 0x01, 0x6D, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x88, 0xF4, 0x54, 0xA2, 0x01, 0x72, 0x0C, 0x61, +0x01, 0x6C, 0x10, 0x6D, 0x00, 0x18, 0xBD, 0xC4, +0x04, 0x6B, 0x4D, 0xEB, 0xFF, 0x6E, 0x01, 0x6C, +0x10, 0x6D, 0x6C, 0xEE, 0x00, 0x18, 0xAC, 0xC4, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x88, 0xF4, 0x54, 0xA2, 0x01, 0x72, 0x0A, 0x61, +0x01, 0x6C, 0x10, 0x6D, 0x00, 0x18, 0xBD, 0xC4, +0xFB, 0x6E, 0x01, 0x6C, 0x10, 0x6D, 0x4C, 0xEE, +0x00, 0x18, 0xAC, 0xC4, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0x8C, 0xEA, +0x0F, 0x5A, 0x08, 0x60, 0x30, 0xF0, 0x20, 0x6B, +0x48, 0x34, 0x42, 0xF4, 0x1C, 0x4B, 0x8D, 0xE3, +0x60, 0x9B, 0x00, 0xEB, 0x00, 0x6A, 0x20, 0xE8, +0xD0, 0xF4, 0x64, 0x42, 0x1F, 0xF7, 0x00, 0x6C, +0x8C, 0xEB, 0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF2, 0x78, 0x9B, 0x2F, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF2, 0x7C, 0x9B, 0x2A, 0x10, +0x80, 0xF4, 0x64, 0x42, 0x1F, 0xF7, 0x00, 0x6C, +0x8C, 0xEB, 0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF3, 0x60, 0x9B, 0x1F, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF3, 0x64, 0x9B, 0x1A, 0x10, +0xC0, 0xF4, 0x68, 0x42, 0x1F, 0xF7, 0x00, 0x6C, +0x8C, 0xEB, 0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF3, 0x68, 0x9B, 0x0F, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF3, 0x6C, 0x9B, 0x0A, 0x10, +0x70, 0xF4, 0x68, 0x42, 0x1F, 0xF7, 0x00, 0x6C, +0x8C, 0xEB, 0x0A, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF3, 0x70, 0x9B, 0x69, 0xE2, 0x60, 0xAA, +0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, 0x74, 0x9B, +0x69, 0xE2, 0x60, 0xAA, 0xFF, 0xF7, 0x1F, 0x6A, +0x6C, 0xEA, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF4, +0x6C, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0x87, 0xF6, +0x0D, 0x4A, 0x40, 0xDB, 0x00, 0x68, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF2, 0x44, 0x9A, 0x40, 0x9A, +0x21, 0x22, 0xE0, 0xF3, 0x09, 0x70, 0x13, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x74, 0x9A, +0x20, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0x63, 0xF3, 0x64, 0x9A, 0x8D, 0xEB, 0x63, 0xF3, +0x64, 0xDA, 0x00, 0x6A, 0x0C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x32, 0x6C, +0x01, 0x48, 0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE8, 0xD9, 0x17, 0x01, 0x6A, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x88, 0xF4, 0x54, 0xA2, +0x03, 0x72, 0x0D, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF2, 0x98, 0x9A, 0xFF, 0x6A, 0x60, 0xA4, +0x6C, 0xEA, 0x10, 0x6B, 0x4C, 0xEB, 0x03, 0x23, +0xEF, 0x6B, 0x4C, 0xEB, 0x60, 0xC4, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0x27, 0x67, 0x4C, 0xE9, 0x6F, 0x41, +0x4C, 0xEB, 0x04, 0x67, 0x02, 0x5B, 0x4C, 0xE8, +0x4C, 0xED, 0x4C, 0xEE, 0x03, 0x61, 0x90, 0x67, +0x00, 0x18, 0x91, 0xCA, 0x10, 0x58, 0x55, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x08, 0x33, 0x82, 0xF4, +0x18, 0x4A, 0x69, 0xE2, 0x40, 0x9A, 0x00, 0xEA, +0xD0, 0xF4, 0x44, 0x40, 0x1F, 0xF7, 0x00, 0x6B, +0x6C, 0xEA, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF2, 0x78, 0x9A, 0x34, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF2, 0x7C, 0x9A, 0x2F, 0x10, +0x80, 0xF4, 0x44, 0x40, 0x1F, 0xF7, 0x00, 0x6B, +0x6C, 0xEA, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF3, 0x60, 0x9A, 0x24, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF3, 0x64, 0x9A, 0x1F, 0x10, +0xC0, 0xF4, 0x48, 0x40, 0x1F, 0xF7, 0x00, 0x6B, +0x6C, 0xEA, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF3, 0x68, 0x9A, 0x14, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF3, 0x6C, 0x9A, 0x0F, 0x10, +0x70, 0xF4, 0x48, 0x40, 0x1F, 0xF7, 0x00, 0x6B, +0x6C, 0xEA, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF3, 0x70, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF3, 0x74, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, 0x6D, 0xE0, +0x41, 0xE0, 0x43, 0xF3, 0x80, 0xA0, 0x43, 0xF3, +0x50, 0xA0, 0x8D, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xE9, 0xF1, +0x25, 0xC2, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF3, 0x40, 0x9A, +0x23, 0xF3, 0x64, 0x9B, 0x40, 0xAA, 0x60, 0xAB, +0x6E, 0xEA, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, +0x01, 0x5A, 0x58, 0x67, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x0B, 0x2A, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF3, 0xA8, 0x9B, +0x30, 0xF0, 0x20, 0x6E, 0x23, 0xF3, 0xCC, 0x9E, +0x60, 0x9D, 0xCC, 0xEB, 0x0C, 0x10, 0x01, 0x72, +0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF3, +0xA8, 0x9B, 0x30, 0xF0, 0x20, 0x6E, 0x22, 0xF6, +0xC4, 0x9E, 0x60, 0x9D, 0xCD, 0xEB, 0x60, 0xDD, +0x05, 0x5C, 0x60, 0xF1, 0x1A, 0x60, 0x30, 0xF0, +0x20, 0x6B, 0x88, 0x34, 0xC2, 0xF4, 0x18, 0x4B, +0x8D, 0xE3, 0x60, 0x9B, 0x00, 0xEB, 0x07, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x68, 0x9A, +0x7F, 0x6A, 0x80, 0xA3, 0x12, 0x10, 0x01, 0x72, +0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, +0x68, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, +0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, +0x40, 0xA3, 0x80, 0x4D, 0xC0, 0x4D, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, +0x02, 0x72, 0x05, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF3, 0x68, 0x9A, 0x5B, 0x10, 0x03, 0x72, +0x40, 0xF1, 0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF3, 0x68, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, +0x40, 0xA3, 0x8C, 0xEA, 0xE9, 0x17, 0x07, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x70, 0x9A, +0xFB, 0x6A, 0x80, 0xA3, 0xE2, 0x17, 0x01, 0x72, +0x19, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, +0x88, 0x9A, 0xFF, 0x6A, 0x40, 0x6D, 0x60, 0xA4, +0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF3, 0x90, 0x9B, +0x01, 0x6D, 0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, +0x4C, 0xEB, 0x60, 0xC4, 0x60, 0xA4, 0x04, 0x6D, +0x4C, 0xEB, 0x48, 0x10, 0x02, 0x72, 0x0F, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x68, 0x9A, +0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x70, 0x9A, +0xFE, 0x6A, 0x80, 0xA3, 0xB6, 0x17, 0x03, 0x72, +0x00, 0xF1, 0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF3, 0x88, 0x9A, 0xFF, 0x6B, 0x40, 0x6D, +0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, +0x90, 0x9A, 0x01, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, +0x4B, 0x10, 0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF3, 0x70, 0x9A, 0x80, 0xA3, 0xBF, 0x6A, +0x98, 0x17, 0x01, 0x72, 0x1B, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF3, 0x88, 0x9A, 0xFF, 0x6A, +0x40, 0x6D, 0x60, 0xA4, 0x10, 0x6E, 0x4C, 0xEB, +0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF3, 0x90, 0x9B, 0x60, 0xA4, +0x4C, 0xEB, 0xCD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, +0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, +0x60, 0xC4, 0x20, 0xE8, 0x02, 0x72, 0x0F, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x68, 0x9A, +0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x70, 0x9A, +0xEF, 0x6A, 0x80, 0xA3, 0x6A, 0x17, 0x03, 0x72, +0xA0, 0xF0, 0x1F, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF3, 0x88, 0x9A, 0xFF, 0x6B, 0x40, 0x6D, +0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, +0x90, 0x9A, 0x10, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, +0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x20, 0xE8, +0x08, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, +0x70, 0x9A, 0xFF, 0xF3, 0x1F, 0x6A, 0x80, 0xAB, +0x83, 0x10, 0x01, 0x72, 0x1D, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF3, 0x68, 0x9A, 0xFF, 0x6C, +0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF3, 0x70, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, +0x7F, 0x4D, 0x40, 0xAB, 0x41, 0x4D, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xCB, 0x40, 0xAB, +0x00, 0xF3, 0x00, 0x4D, 0x8C, 0xEA, 0x51, 0x10, +0x02, 0x72, 0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF3, 0x68, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF3, 0x70, 0x9A, 0xFF, 0xF6, 0x1F, 0x6A, +0x80, 0xAB, 0x52, 0x10, 0x03, 0x72, 0x6D, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x68, 0x9A, +0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF3, 0x70, 0x9A, 0xFF, 0xF7, +0x1F, 0x6C, 0x7F, 0x4D, 0x40, 0xAB, 0x41, 0x4D, +0x8C, 0xEA, 0x27, 0x10, 0x08, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF3, 0x70, 0x9A, 0xF7, 0xF7, +0x1F, 0x6A, 0x80, 0xAB, 0x31, 0x10, 0x01, 0x72, +0x1E, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, +0x68, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, +0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x70, 0x9A, +0xFF, 0xF7, 0x1F, 0x6C, 0xC1, 0xF7, 0x00, 0x4D, +0x40, 0xAB, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xCB, 0x40, 0xAB, 0x06, 0xF0, 0x00, 0x4D, +0x8C, 0xEA, 0xAD, 0xEA, 0x11, 0x10, 0x02, 0x72, +0x12, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, +0x68, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, +0x70, 0x9A, 0xFD, 0xF7, 0x1F, 0x6A, 0x80, 0xAB, +0x8C, 0xEA, 0x40, 0xCB, 0x20, 0xE8, 0x03, 0x72, +0x18, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, +0x68, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, +0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x70, 0x9A, +0xFF, 0xF7, 0x1F, 0x6C, 0xC1, 0xF7, 0x00, 0x4D, +0x40, 0xAB, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xCB, 0x20, 0xE8, 0xFF, 0x63, 0x01, 0xD0, +0xFF, 0x6A, 0x4C, 0xED, 0x4C, 0xEE, 0x4C, 0xEF, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, 0x4C, 0x9A, +0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEC, 0x00, 0xAA, +0xE1, 0xF7, 0x1F, 0x6A, 0x0C, 0xEA, 0x30, 0xF0, +0x20, 0x68, 0x82, 0xF5, 0x00, 0x98, 0x51, 0xE4, +0x6C, 0xEC, 0x80, 0xC8, 0x9C, 0x32, 0x30, 0xF0, +0x20, 0x6C, 0x23, 0xF3, 0x94, 0x9C, 0x30, 0xF0, +0x20, 0x68, 0x23, 0xF3, 0x18, 0x98, 0x91, 0xE2, +0x80, 0xAC, 0x01, 0xE2, 0x00, 0x98, 0x6C, 0xEC, +0x05, 0x25, 0x10, 0xF0, 0x00, 0x6D, 0xAB, 0xED, +0xAD, 0xEC, 0x6C, 0xEC, 0xD8, 0xF0, 0x00, 0x6B, +0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF3, +0x94, 0x9C, 0x91, 0xE2, 0x60, 0xCC, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF3, 0x7C, 0x9B, 0x6D, 0xE2, +0x80, 0xA3, 0x01, 0x6B, 0x8C, 0xEB, 0x05, 0x23, +0x03, 0xF7, 0x01, 0x6B, 0x6B, 0xEB, 0x0C, 0xEB, +0x06, 0x10, 0x1F, 0xF7, 0x01, 0x6B, 0x6B, 0xEB, +0x0C, 0xEB, 0xE0, 0x37, 0xED, 0xEB, 0xFF, 0x76, +0x13, 0x60, 0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF3, +0x80, 0x9C, 0x80, 0xF4, 0xC0, 0x36, 0x6C, 0xEC, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF6, 0x70, 0x9B, +0x6D, 0xEE, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF3, +0x78, 0x9B, 0x8D, 0xEE, 0x6D, 0xE2, 0xC0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF3, 0x84, 0x9B, +0x7F, 0x6B, 0x91, 0xE2, 0xA0, 0xA4, 0xAC, 0xEB, +0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF3, +0x68, 0x9B, 0x1C, 0x6C, 0x80, 0xC3, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF3, 0x6C, 0x9B, 0x08, 0xF4, +0x13, 0x6C, 0x80, 0xCB, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF5, 0x8C, 0x9B, 0xF7, 0x6B, 0x91, 0xE2, +0xA0, 0xA4, 0xAC, 0xEB, 0x60, 0xC4, 0x01, 0x90, +0x01, 0x63, 0x20, 0xE8, 0xFB, 0x63, 0x09, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, 0x74, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF6, 0x90, 0x9C, +0x40, 0x9B, 0x10, 0x6D, 0x00, 0x6E, 0x8D, 0xEA, +0x40, 0xDB, 0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, 0x00, 0xF4, +0x1D, 0x6C, 0x82, 0xF3, 0x08, 0x6F, 0x40, 0xEA, +0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF3, 0x70, 0x9B, +0xFF, 0x6A, 0x4C, 0xED, 0x6D, 0xE4, 0xC0, 0xA3, +0x3F, 0x6C, 0xCC, 0xEC, 0x80, 0xC3, 0x07, 0x2D, +0x80, 0xA3, 0x40, 0x6D, 0x4C, 0xEC, 0xAD, 0xEC, +0x4C, 0xEC, 0x80, 0xC3, 0x20, 0xE8, 0x01, 0x75, +0x07, 0x61, 0x80, 0xA3, 0x80, 0x6D, 0xAB, 0xED, +0x4C, 0xEC, 0xAD, 0xEC, 0x4C, 0xEC, 0x80, 0xC3, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF3, 0x74, 0x9B, 0xFF, 0x6A, 0xAC, 0xEA, +0x6D, 0xE4, 0x80, 0x9B, 0x80, 0xF4, 0x40, 0x32, +0x8D, 0xEA, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x63, 0x01, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF7, 0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6E, +0x43, 0xF3, 0xD8, 0x9E, 0x6D, 0xE4, 0x40, 0x9B, +0x30, 0xF0, 0x20, 0x68, 0x63, 0xF3, 0x00, 0x98, +0xCC, 0xEA, 0x30, 0xF0, 0x20, 0x6E, 0x43, 0xF3, +0xDC, 0x9E, 0xCD, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF1, 0xEC, 0x9A, 0x83, 0xF7, +0x00, 0x6A, 0x4B, 0xEA, 0xFD, 0xE4, 0x60, 0x9F, +0x7F, 0x6E, 0x4C, 0xEB, 0x43, 0xA5, 0xCC, 0xEA, +0x0D, 0xEA, 0x6D, 0xEA, 0x40, 0xDF, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF3, 0x64, 0x9A, 0x30, 0xF0, +0x20, 0x6F, 0x23, 0xF0, 0xF4, 0x9F, 0x6D, 0xE4, +0x40, 0x9B, 0xED, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF3, 0x68, 0x9A, 0xFF, 0x6F, +0x01, 0x4F, 0x6D, 0xE4, 0x40, 0x9B, 0xED, 0xEA, +0x3F, 0xF6, 0x1F, 0x4F, 0xEC, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x58, 0x9A, +0x49, 0xE4, 0x60, 0x9A, 0x40, 0xA5, 0xCC, 0xEA, +0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, +0x5C, 0x9A, 0x49, 0xE4, 0xC0, 0xA2, 0x01, 0x6A, +0xCC, 0xEA, 0x05, 0x22, 0x03, 0xF7, 0x01, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x07, 0x10, 0x1F, 0xF7, +0x01, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x61, 0xA5, +0x60, 0x33, 0x6D, 0xEA, 0xC2, 0xA5, 0xFF, 0x76, +0x0D, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF3, +0x60, 0x9B, 0x4C, 0xEB, 0x80, 0xF4, 0xC0, 0x32, +0x30, 0xF0, 0x20, 0x6E, 0xA2, 0xF6, 0xD0, 0x9E, +0xCD, 0xEA, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF3, 0x78, 0x9B, 0x6D, 0xE4, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0xCC, 0x9A, +0x02, 0xF0, 0x00, 0x6B, 0x6B, 0xEB, 0xD9, 0xE4, +0x40, 0x9E, 0x6C, 0xEA, 0x62, 0xAD, 0xE1, 0xF7, +0x1F, 0x6D, 0xAC, 0xEB, 0x6D, 0xEA, 0x40, 0xDE, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x74, 0x9A, +0x0E, 0xF0, 0x01, 0x4D, 0x6D, 0xE4, 0x40, 0x9B, +0xAD, 0xEA, 0xC8, 0xF0, 0x00, 0x4D, 0xAC, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, +0x44, 0x9A, 0x51, 0xE4, 0x60, 0xA4, 0x7F, 0x6A, +0x6C, 0xEA, 0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF3, 0x48, 0x9A, 0x1C, 0x6B, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, 0x4C, 0x9A, +0x08, 0xF4, 0x13, 0x6B, 0x60, 0xCA, 0x01, 0x90, +0x01, 0x63, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xEC, +0xAC, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF3, 0x50, 0x9A, 0x8C, 0x34, 0x30, 0xF0, +0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, 0x22, 0xF6, +0x70, 0x9B, 0x6D, 0xEA, 0x0C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF3, 0x50, 0x9A, 0x8C, 0x34, +0x30, 0xF0, 0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, +0x42, 0xF6, 0x64, 0x9B, 0x6C, 0xEA, 0x40, 0xDC, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, +0xAC, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF3, 0x50, 0x9A, 0x8C, 0x34, 0x30, 0xF0, +0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, 0x62, 0xF5, +0x78, 0x9B, 0x6D, 0xEA, 0x0C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF3, 0x50, 0x9A, 0x8C, 0x34, +0x30, 0xF0, 0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, +0x62, 0xF6, 0x6C, 0x9B, 0x6C, 0xEA, 0x40, 0xDC, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xFF, 0x6B, 0x63, 0xF3, 0x50, 0x9A, 0x6C, 0xEC, +0x8C, 0x34, 0x51, 0xE4, 0x40, 0x9C, 0x01, 0x6C, +0x40, 0xF7, 0x42, 0x32, 0x8C, 0xEA, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xFF, 0x6B, 0x63, 0xF3, 0x50, 0x9A, 0x6C, 0xEC, +0x8C, 0x34, 0x51, 0xE4, 0x40, 0x9C, 0x01, 0x6C, +0x00, 0xF7, 0x42, 0x32, 0x8C, 0xEA, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x00, 0x68, 0x90, 0x67, 0x00, 0x6D, +0x00, 0x18, 0x93, 0xD1, 0x90, 0x67, 0x01, 0x6D, +0x01, 0x48, 0x00, 0x18, 0xA3, 0xD1, 0x0B, 0x70, +0xF5, 0x61, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, +0x0C, 0x6B, 0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, +0x0A, 0x69, 0x12, 0xED, 0x4C, 0xED, 0x04, 0xD5, +0xFF, 0x68, 0x2C, 0xE8, 0x90, 0x67, 0x00, 0x18, +0xB3, 0xD1, 0x17, 0x2A, 0xFF, 0x49, 0x00, 0xF6, +0x20, 0x31, 0x90, 0x67, 0x01, 0x6D, 0x00, 0xF6, +0x23, 0x31, 0x00, 0x18, 0xA3, 0xD1, 0x41, 0x41, +0xEF, 0x2A, 0x01, 0x69, 0x2B, 0xE9, 0x09, 0x10, +0x04, 0x94, 0xFF, 0x49, 0x00, 0x6D, 0x00, 0xF6, +0x20, 0x31, 0x00, 0x18, 0xA3, 0xD1, 0x00, 0xF6, +0x23, 0x31, 0x00, 0x51, 0xF5, 0x60, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0x0C, 0x68, 0x4C, 0xEC, 0x1B, 0xEC, +0x01, 0x28, 0xE5, 0xE8, 0x4C, 0xED, 0x10, 0xE9, +0x4C, 0xE9, 0x12, 0xE8, 0x4C, 0xE8, 0x0F, 0x25, +0x90, 0x67, 0x01, 0x6D, 0x00, 0x18, 0x93, 0xD1, +0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF1, 0x18, 0x4A, +0x41, 0xE0, 0x60, 0xA0, 0x01, 0x6A, 0x44, 0xE9, +0x6D, 0xEA, 0x40, 0xC0, 0x11, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x05, 0xF1, 0x18, 0x4A, 0x49, 0xE0, +0x80, 0xA2, 0x01, 0x6B, 0x64, 0xE9, 0x6F, 0xEB, +0x8C, 0xEB, 0x60, 0xC2, 0x40, 0xA2, 0x04, 0x2A, +0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, 0x93, 0xD1, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0x24, 0x67, +0x0C, 0xE9, 0xAC, 0xE8, 0x91, 0x67, 0xB0, 0x67, +0x00, 0x18, 0xE6, 0xD1, 0x91, 0x67, 0xB0, 0x67, +0x00, 0x18, 0xCD, 0xD1, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x0C, 0x6B, 0x7B, 0xED, 0x01, 0x2B, 0xE5, 0xE8, +0x05, 0x6E, 0xFF, 0x6A, 0x4C, 0xEC, 0x10, 0xEB, +0x12, 0xED, 0x4C, 0xED, 0xD8, 0xEB, 0x12, 0xEB, +0x4C, 0xEB, 0x1E, 0x73, 0x1D, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF3, 0x74, 0x9A, 0xAC, 0x35, +0x30, 0xF0, 0x20, 0x6E, 0x6D, 0xE5, 0x40, 0x9B, +0xC2, 0xF6, 0xC8, 0x9E, 0xCC, 0xEA, 0x80, 0xF7, +0x80, 0x36, 0xCD, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF3, 0x50, 0x9A, 0x08, 0x6B, +0x6B, 0xEB, 0x55, 0xE5, 0x40, 0x9D, 0x8A, 0x34, +0x6C, 0xEA, 0x07, 0x6B, 0x6C, 0xEC, 0x1E, 0x10, +0x20, 0x5B, 0x0C, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF3, 0x54, 0x9A, 0x1F, 0x6E, 0xAC, 0x35, +0xE6, 0x67, 0x55, 0xE5, 0xE4, 0xEB, 0x40, 0x9D, +0xEF, 0xEF, 0x0D, 0x10, 0xE0, 0x4B, 0x4C, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, 0x50, 0x9A, +0xAC, 0x35, 0x1F, 0x6E, 0x55, 0xE5, 0xE0, 0x9D, +0x46, 0x67, 0x44, 0xEB, 0x4F, 0xEA, 0xCC, 0xEC, +0xEC, 0xEA, 0x84, 0xEB, 0x8D, 0xEA, 0x40, 0xDD, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0x2C, 0xEC, +0xCC, 0xE9, 0x05, 0x67, 0x01, 0x29, 0x00, 0x6C, +0xB0, 0x67, 0x00, 0x18, 0x0C, 0xD2, 0xFF, 0x6C, +0x0C, 0xEC, 0xB1, 0x67, 0x00, 0x18, 0x01, 0xD2, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xAE, 0xEC, 0x01, 0x6A, +0x8C, 0xEA, 0x20, 0xE8, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, +0x06, 0xD2, 0x05, 0xD4, 0x00, 0x69, 0x1F, 0x68, +0x22, 0x10, 0x05, 0x92, 0x40, 0xA2, 0x07, 0xD2, +0x00, 0x6A, 0x04, 0xD2, 0x04, 0x92, 0x07, 0x94, +0x12, 0x35, 0x87, 0xEA, 0xFF, 0x6A, 0x4C, 0xEC, +0x00, 0x18, 0x3F, 0xD2, 0x06, 0x22, 0xFF, 0x6A, +0x04, 0x30, 0x4C, 0xE8, 0x05, 0x6A, 0x4E, 0xE8, +0x01, 0x10, 0x04, 0x30, 0xFF, 0x6A, 0x4C, 0xE8, +0x04, 0x92, 0x01, 0x4A, 0x08, 0x72, 0x04, 0xD2, +0xE9, 0x61, 0xFF, 0x6A, 0x01, 0x49, 0x4C, 0xE9, +0x05, 0x92, 0x01, 0x4A, 0x05, 0xD2, 0x06, 0x92, +0x43, 0xE9, 0xDB, 0x61, 0x1F, 0x6A, 0x4E, 0xE8, +0x0C, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x60, 0xA4, 0x01, 0x6A, 0x04, 0x67, +0x6C, 0xEA, 0x44, 0x22, 0x66, 0x32, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF3, 0x78, 0x9B, 0x54, 0x32, +0x69, 0xE2, 0x61, 0xA4, 0x60, 0xC2, 0x40, 0xA4, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x7C, 0x9B, +0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x62, 0xA4, +0x60, 0xC2, 0x40, 0xA4, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF3, 0x60, 0x9B, 0x46, 0x32, 0x54, 0x32, +0x69, 0xE2, 0x63, 0xA4, 0x60, 0xC2, 0x40, 0xA4, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0x64, 0x9B, +0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x64, 0xA4, +0x60, 0xC2, 0x40, 0xA4, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF3, 0x68, 0x9B, 0x46, 0x32, 0x54, 0x32, +0x69, 0xE2, 0x65, 0xA4, 0x60, 0xC2, 0x40, 0xA4, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0x6C, 0x9B, +0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x66, 0xA4, +0x10, 0xF0, 0x00, 0x6C, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF3, 0x70, 0x9A, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x81, 0x40, 0x06, 0x6D, +0x00, 0x18, 0x41, 0xD2, 0x60, 0xA0, 0x01, 0x6E, +0x82, 0x67, 0x66, 0x35, 0x6C, 0xEE, 0x00, 0x18, +0x33, 0xD2, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0xC3, 0xD1, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF3, 0x74, 0x9A, 0xFF, 0xF7, 0x1F, 0x6A, +0x80, 0xAB, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x02, 0xF6, 0x90, 0x9C, 0x8D, 0xEA, 0x40, 0xDB, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x36, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, 0x63, 0xF3, +0xB4, 0xA3, 0x04, 0x67, 0x08, 0x6C, 0xAD, 0xEC, +0x63, 0xF3, 0x94, 0xC3, 0xE2, 0xF5, 0x6C, 0xA3, +0xFF, 0x6A, 0x4C, 0xE8, 0x03, 0x73, 0x40, 0x61, +0x10, 0x6B, 0x8C, 0xEB, 0x4C, 0xEB, 0x05, 0x2B, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF5, 0x54, 0x9A, +0x60, 0xDA, 0x00, 0x18, 0x4C, 0xC4, 0x34, 0x2A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6D, 0x01, 0x6E, +0x10, 0xF0, 0x23, 0x6C, 0x25, 0xF5, 0x1C, 0xC5, +0x82, 0xF1, 0x09, 0x4C, 0x25, 0xF5, 0x1C, 0x4D, +0xE6, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0x63, 0xF3, 0x94, 0xA2, +0x10, 0x6B, 0xA3, 0x67, 0x8C, 0xED, 0x0B, 0x2D, +0x30, 0xF0, 0x20, 0x6D, 0x42, 0xF5, 0xD8, 0x9D, +0x30, 0xF0, 0x20, 0x6D, 0x42, 0xF5, 0xB4, 0x9D, +0x8D, 0xEB, 0xC0, 0xDD, 0x3D, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF5, 0x74, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x42, 0xF5, 0x9C, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x01, 0x4A, 0x40, 0xDB, 0x32, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x88, 0xF4, 0x54, 0xA2, +0x02, 0x72, 0x03, 0x61, 0x01, 0x70, 0x10, 0x61, +0x1E, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, +0x44, 0x9A, 0x01, 0x6B, 0x6B, 0xEB, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x64, 0x6C, 0x40, 0xEA, 0x00, 0x18, 0x57, 0xCF, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, 0x60, 0x9A, +0xFF, 0x6C, 0x80, 0x6D, 0x40, 0xA3, 0xAB, 0xED, +0x8C, 0xEA, 0xAE, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, +0x90, 0x67, 0x80, 0x18, 0x47, 0x19, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, 0x63, 0xF3, +0x94, 0xA2, 0x09, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x63, 0xF3, 0x74, 0xC2, 0x07, 0x97, 0x06, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x45, 0xF7, +0x1E, 0x4C, 0x05, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0xCC, 0xEA, 0x00, 0x6B, 0x09, 0x10, +0x79, 0xE5, 0xE0, 0xA4, 0xC0, 0xA6, 0x01, 0x4B, +0x01, 0x4C, 0xEE, 0xEE, 0x02, 0x26, 0x00, 0x6A, +0x20, 0xE8, 0xFF, 0x6E, 0x6C, 0xEE, 0x43, 0xEE, +0xF3, 0x61, 0x01, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0xA0, 0xF0, 0x8F, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xA0, 0xF0, 0x6F, 0xC2, 0x00, 0x6B, +0xA0, 0xF0, 0x70, 0xC2, 0xA0, 0xF0, 0x71, 0xC2, +0xA3, 0xF3, 0x66, 0xC2, 0xA3, 0xF3, 0x67, 0xC2, +0xA3, 0xF3, 0x68, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF5, 0x68, 0x9B, +0xFF, 0x6A, 0x8C, 0xEA, 0x80, 0xAB, 0xE1, 0xF7, +0x1F, 0x6B, 0x8C, 0xEB, 0x69, 0xE2, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF5, 0x6C, 0x9B, 0x40, 0xCB, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF5, 0x70, 0x9B, +0x40, 0xCB, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xA5, 0xF6, +0x08, 0x48, 0x83, 0xF3, 0x5A, 0xA0, 0x83, 0xF3, +0x78, 0xA8, 0x5A, 0xEB, 0x01, 0x2A, 0xE5, 0xE8, +0x10, 0xEA, 0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF5, 0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x62, 0xF5, 0x98, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0xA0, 0xF0, 0x9B, 0xA0, 0x3F, 0x10, +0x01, 0x72, 0x0E, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF5, 0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x62, 0xF5, 0x9C, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0xA0, 0xF0, 0x9C, 0xA0, 0x2F, 0x10, +0x02, 0x72, 0x0E, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF5, 0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x62, 0xF5, 0x98, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0xA0, 0xF0, 0x9D, 0xA0, 0x1F, 0x10, +0x03, 0x72, 0x0E, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF5, 0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x62, 0xF5, 0x9C, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0xA0, 0xF0, 0x9E, 0xA0, 0x0F, 0x10, +0x04, 0x72, 0x14, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF5, 0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x62, 0xF5, 0x98, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0xA0, 0xF0, 0x9F, 0xA0, 0x80, 0x18, +0x64, 0x00, 0x83, 0xF3, 0x58, 0xA8, 0x01, 0x4A, +0x83, 0xF3, 0x58, 0xC8, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x65, 0xF7, +0x03, 0x4C, 0x05, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xA5, 0xF6, +0x08, 0x48, 0xA0, 0xF0, 0x6F, 0xA0, 0x02, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xA0, 0xF0, 0x4F, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF5, 0xAC, 0x9A, +0x01, 0x6C, 0x80, 0x18, 0x8D, 0x5D, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF5, 0x48, 0x9A, 0x30, 0xF0, +0x20, 0x6D, 0x62, 0xF5, 0xAC, 0x9D, 0x80, 0x9A, +0xE1, 0xF7, 0x1F, 0x6B, 0x6C, 0xEC, 0x80, 0xCD, +0x80, 0x9A, 0x30, 0xF0, 0x20, 0x6D, 0x82, 0xF5, +0xA0, 0x9D, 0x6C, 0xEC, 0x80, 0xCD, 0x40, 0x9A, +0x42, 0x32, 0x42, 0x32, 0x6C, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF5, 0x70, 0x9B, 0x40, 0xCB, +0x00, 0x6A, 0x83, 0xF3, 0x58, 0xC8, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xE4, 0x63, 0x37, 0x62, 0x36, 0xD1, 0x35, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0xA0, 0xF0, 0x76, 0xA2, 0x9D, 0x67, 0x78, 0xC4, +0xA0, 0xF0, 0x77, 0xA2, 0x79, 0xC4, 0xA0, 0xF0, +0x78, 0xA2, 0x7A, 0xC4, 0xA0, 0xF0, 0x79, 0xA2, +0x7B, 0xC4, 0xA0, 0xF0, 0x7A, 0xA2, 0x7C, 0xC4, +0x83, 0xF3, 0x7C, 0xA2, 0x20, 0xF0, 0x60, 0xC4, +0x83, 0xF3, 0x7D, 0xA2, 0x20, 0xF0, 0x61, 0xC4, +0x83, 0xF3, 0x7E, 0xA2, 0x20, 0xF0, 0x62, 0xC4, +0x83, 0xF3, 0x7F, 0xA2, 0x20, 0xF0, 0x63, 0xC4, +0xA3, 0xF3, 0x60, 0xA2, 0x20, 0xF0, 0x64, 0xC4, +0xA3, 0xF3, 0x61, 0xA2, 0x20, 0xF0, 0x68, 0xC4, +0xA3, 0xF3, 0x62, 0xA2, 0x20, 0xF0, 0x69, 0xC4, +0xA3, 0xF3, 0x63, 0xA2, 0x20, 0xF0, 0x6A, 0xC4, +0xA3, 0xF3, 0x64, 0xA2, 0x20, 0xF0, 0x6B, 0xC4, +0xA3, 0xF3, 0x65, 0xA2, 0x20, 0xF0, 0x6C, 0xC4, +0x00, 0x6B, 0x20, 0xF0, 0x70, 0xC4, 0x20, 0xF0, +0x71, 0xC4, 0x20, 0xF0, 0x72, 0xC4, 0x20, 0xF0, +0x73, 0xC4, 0x83, 0xF3, 0x5A, 0xA2, 0x20, 0xF0, +0x74, 0xC4, 0x0C, 0x03, 0x69, 0xE2, 0x03, 0x10, +0x01, 0x6C, 0x80, 0xC3, 0x01, 0x4B, 0x4A, 0xEB, +0xFB, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, +0x48, 0x9A, 0xE1, 0xF7, 0x1F, 0x6E, 0xFF, 0xF7, +0x1F, 0x68, 0x40, 0xAA, 0x1A, 0x05, 0x10, 0x04, +0x4C, 0xEE, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, +0x50, 0x9A, 0x15, 0x03, 0x40, 0xAA, 0x2D, 0xD6, +0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x49, 0xF2, +0xE2, 0xA2, 0x00, 0x6A, 0x2C, 0xD7, 0x20, 0x10, +0xFD, 0x67, 0x59, 0xE7, 0x38, 0xA6, 0x2D, 0x96, +0x30, 0xF0, 0x20, 0x6F, 0x25, 0xE6, 0x82, 0xF5, +0xD4, 0x9F, 0x3C, 0x31, 0x20, 0xDD, 0x3D, 0xE6, +0xC0, 0xA7, 0xFD, 0x67, 0x5D, 0xE7, 0xD0, 0xC7, +0x30, 0xF0, 0x20, 0x6E, 0x82, 0xF5, 0xF8, 0x9E, +0x01, 0x4A, 0x04, 0x4D, 0xF9, 0xE1, 0x30, 0xF0, +0x20, 0x6F, 0xC0, 0xDC, 0x82, 0xF5, 0xDC, 0x9F, +0x04, 0x4C, 0xC5, 0xE1, 0x20, 0xDB, 0x04, 0x4B, +0x2C, 0x97, 0xFF, 0x69, 0x4C, 0xE9, 0xE3, 0xE9, +0xDB, 0x61, 0x00, 0x69, 0x2F, 0xD1, 0x34, 0x12, +0x7D, 0x67, 0x00, 0x6A, 0x30, 0xF0, 0x20, 0x69, +0x20, 0xF0, 0x58, 0xC3, 0x20, 0xF0, 0x59, 0xC3, +0x20, 0xF0, 0x5A, 0xC3, 0x20, 0xF0, 0x5B, 0xC3, +0x20, 0xF0, 0x5C, 0xC3, 0xC0, 0xF3, 0x40, 0x99, +0x81, 0x40, 0x40, 0xEA, 0x2C, 0xD2, 0xC0, 0xF3, +0x40, 0x99, 0x90, 0x67, 0x40, 0xEA, 0x2C, 0x94, +0x80, 0x34, 0x4D, 0xEC, 0xE7, 0xF7, 0x1F, 0x6A, +0x4C, 0xEC, 0xC0, 0xF3, 0x40, 0x99, 0x2C, 0xD4, +0x82, 0x40, 0x40, 0xEA, 0x0F, 0x6B, 0x4C, 0xEB, +0xFF, 0x6D, 0xC0, 0xF3, 0x40, 0x99, 0x6C, 0x33, +0xAC, 0xEB, 0x30, 0xD3, 0x87, 0x40, 0x40, 0xEA, +0x30, 0x96, 0xFF, 0x6F, 0x32, 0xD2, 0x18, 0x4E, +0xC0, 0xF3, 0x40, 0x99, 0x31, 0xD6, 0xEC, 0xEE, +0x11, 0xE6, 0x2E, 0xD6, 0x40, 0xEA, 0x22, 0x67, +0x2C, 0x93, 0x31, 0x95, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF4, 0x50, 0x9A, 0xB1, 0xE3, 0x40, 0xEA, +0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, 0x2D, 0x96, +0x09, 0xE2, 0x2C, 0xD2, 0x2C, 0x97, 0xE2, 0xF5, +0x44, 0x9E, 0xE3, 0xEA, 0x03, 0x60, 0x4F, 0xEA, +0x5D, 0xE7, 0x2C, 0xD7, 0x04, 0x6A, 0x4B, 0xEA, +0x2C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x40, 0x72, +0x00, 0xF1, 0x13, 0x61, 0x30, 0xF0, 0x20, 0x69, +0x2E, 0x93, 0x87, 0x40, 0xC0, 0xF3, 0x40, 0x99, +0x11, 0x4C, 0x71, 0xE4, 0x40, 0xEA, 0xE0, 0xF0, +0x1A, 0x2A, 0x2E, 0x95, 0xC0, 0xF3, 0x40, 0x99, +0x87, 0x40, 0x12, 0x4C, 0xB1, 0xE4, 0x40, 0xEA, +0x30, 0x96, 0x00, 0x6F, 0x2E, 0xD2, 0xC5, 0xE0, +0x32, 0x49, 0x2D, 0xD7, 0x0E, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, 0x91, 0x67, +0x01, 0x49, 0x40, 0xEA, 0x2D, 0x95, 0x9D, 0x67, +0xAD, 0xE4, 0x01, 0x4D, 0x60, 0xF0, 0x5C, 0xC3, +0x2D, 0xD5, 0x2D, 0x96, 0x2E, 0x97, 0xFF, 0x6A, +0xCC, 0xEA, 0xE3, 0xEA, 0xEC, 0x61, 0x00, 0x69, +0x46, 0x2F, 0x30, 0xF0, 0x20, 0x6C, 0x49, 0xF2, +0x82, 0xA4, 0x0E, 0x02, 0x08, 0x03, 0x51, 0xE4, +0x5C, 0x10, 0x04, 0x02, 0x2D, 0xE2, 0x2D, 0xD3, +0x2E, 0x94, 0x60, 0xA3, 0x8E, 0xEB, 0x0D, 0x2B, +0x28, 0x33, 0x69, 0xE2, 0x8C, 0x9A, 0x2E, 0x96, +0x1F, 0x05, 0x80, 0x18, 0x4E, 0x00, 0x05, 0x22, +0x2D, 0x95, 0x01, 0x6A, 0x20, 0xF0, 0x48, 0xC5, +0x27, 0x10, 0x2E, 0x96, 0x03, 0x76, 0x1F, 0x61, +0x30, 0xF0, 0x20, 0x6C, 0xE1, 0xF7, 0x04, 0x4C, +0x1F, 0x05, 0x03, 0x6E, 0x80, 0x18, 0x4E, 0x00, +0x09, 0x2A, 0x30, 0xF0, 0x20, 0x6C, 0xE1, 0xF7, +0x08, 0x4C, 0x1F, 0x05, 0x03, 0x6E, 0x80, 0x18, +0x4E, 0x00, 0x08, 0x22, 0x04, 0x02, 0x29, 0xE2, +0x78, 0xA2, 0x0B, 0x2B, 0x90, 0xA2, 0x0A, 0x2C, +0x01, 0x6B, 0x08, 0x10, 0xFD, 0x67, 0x2D, 0xE7, +0x20, 0xF0, 0x58, 0xC3, 0x05, 0x10, 0x04, 0x02, +0x29, 0xE2, 0x00, 0x6B, 0x20, 0xF0, 0x68, 0xC2, +0x01, 0x49, 0xFF, 0x6A, 0x4C, 0xE9, 0x30, 0xF0, +0x20, 0x6A, 0x49, 0xF2, 0x42, 0xA2, 0x43, 0xE9, +0xBC, 0x61, 0x3D, 0x67, 0x20, 0xF0, 0x58, 0xA1, +0x1A, 0x2A, 0x20, 0xF0, 0x59, 0xA1, 0x17, 0x2A, +0x20, 0xF0, 0x5A, 0xA1, 0x14, 0x2A, 0x20, 0xF0, +0x5B, 0xA1, 0x11, 0x2A, 0x20, 0xF0, 0x5C, 0xA1, +0x1C, 0x10, 0xA0, 0xA3, 0x02, 0x25, 0x00, 0x6D, +0x01, 0x10, 0x01, 0x6D, 0xA0, 0xC2, 0x01, 0x4B, +0x01, 0x4A, 0x8A, 0xEA, 0xF6, 0x61, 0x7D, 0x67, +0x20, 0xF0, 0x58, 0xA3, 0x02, 0x22, 0x00, 0x69, +0x64, 0x10, 0x9D, 0x67, 0x20, 0xF0, 0x59, 0xA4, +0xFA, 0x2A, 0x20, 0xF0, 0x5A, 0xA4, 0xF7, 0x2A, +0x20, 0xF0, 0x5B, 0xA4, 0xF4, 0x2A, 0x20, 0xF0, +0x5C, 0xA4, 0x5D, 0x22, 0xF0, 0x17, 0xBD, 0x67, +0x29, 0xE5, 0x20, 0xF0, 0x78, 0xA2, 0x00, 0x6A, +0x08, 0x2B, 0x4C, 0x10, 0xE0, 0xF3, 0x09, 0x72, +0x0D, 0x60, 0x01, 0x4A, 0xFF, 0xF7, 0x1F, 0x6B, +0x6C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF5, +0x74, 0x9B, 0x02, 0xF0, 0x00, 0x6C, 0x60, 0x9B, +0x8C, 0xEB, 0xF0, 0x2B, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF5, 0x54, 0x9A, 0x02, 0xF0, 0x00, 0x6B, +0x40, 0x9A, 0x6C, 0xEA, 0x33, 0x2A, 0xDD, 0x67, +0x2D, 0xE6, 0x30, 0xF0, 0x20, 0x6A, 0x98, 0xA3, +0xA0, 0xF2, 0x54, 0x9A, 0x01, 0x6D, 0x08, 0x6E, +0x04, 0x6F, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x82, 0xF5, 0x88, 0x9B, 0x30, 0x93, 0x30, 0xF0, +0x20, 0x6D, 0x91, 0xE0, 0x18, 0x4B, 0x71, 0xE4, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF5, 0x6C, 0x9B, +0xA2, 0xF5, 0xA0, 0x9D, 0x6D, 0xE2, 0xA9, 0xE2, +0xA0, 0xA4, 0xFF, 0x6F, 0x01, 0x4C, 0xEC, 0xED, +0xA0, 0xC3, 0x01, 0x4B, 0x4A, 0xEB, 0xF8, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, 0x54, 0x9A, +0x40, 0xEA, 0x20, 0x6B, 0x4D, 0xEB, 0xFF, 0x6A, +0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF5, +0x44, 0x9A, 0x60, 0xC2, 0x01, 0x49, 0xFF, 0x6A, +0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, 0x49, 0xF2, +0x42, 0xA2, 0x43, 0xE9, 0xA4, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF4, 0x4C, 0x9A, 0x2C, 0x94, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF5, +0x48, 0x9A, 0x23, 0x6B, 0x6B, 0xEB, 0x60, 0xC2, +0xCA, 0x10, 0x32, 0x94, 0x40, 0x6A, 0x4B, 0xEA, +0x8C, 0xEA, 0x6C, 0xEA, 0x07, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF4, 0x4C, 0x9A, 0x2C, 0x94, +0x40, 0xEA, 0xBD, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA2, 0xF5, 0x4C, 0x9A, 0x2E, 0x95, 0x49, 0xE0, +0xA9, 0xE2, 0x80, 0xA2, 0x30, 0xF0, 0x20, 0x6A, +0xA2, 0xF5, 0x50, 0x9A, 0x6C, 0xEC, 0x80, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF5, 0x54, 0x9A, +0x15, 0x04, 0x49, 0xE0, 0xA9, 0xE2, 0x40, 0xA2, +0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF5, +0x58, 0x9A, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6B, +0x49, 0xF2, 0x62, 0xA3, 0x0C, 0x02, 0x4D, 0xE3, +0x1B, 0x65, 0x12, 0x10, 0xC0, 0xA3, 0xFE, 0x65, +0x3F, 0x67, 0xFF, 0x6E, 0x2C, 0xEE, 0x20, 0xA5, +0x2E, 0xEE, 0x03, 0x26, 0x00, 0x6B, 0x60, 0xC2, +0x05, 0x10, 0x01, 0x4B, 0xC3, 0x67, 0xEE, 0xEE, +0x01, 0x4D, 0xF0, 0x2E, 0x01, 0x4A, 0x04, 0x4C, +0x78, 0x67, 0x4E, 0xEB, 0x80, 0xF0, 0x13, 0x2B, +0x9D, 0x67, 0x20, 0xF0, 0x50, 0xA4, 0x01, 0x72, +0x12, 0x60, 0x20, 0xF0, 0x51, 0xA4, 0x01, 0x72, +0x0E, 0x60, 0x20, 0xF0, 0x52, 0xA4, 0x01, 0x72, +0x0A, 0x60, 0x20, 0xF0, 0x53, 0xA4, 0x01, 0x72, +0x06, 0x60, 0x20, 0xF0, 0x54, 0xA4, 0x01, 0x72, +0x02, 0x60, 0x2F, 0x95, 0x4D, 0x25, 0x80, 0x18, +0xAB, 0x00, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF5, +0x5C, 0x9A, 0x66, 0x6B, 0x00, 0x6C, 0x60, 0xC2, +0x80, 0x18, 0x00, 0x00, 0x30, 0xF0, 0x20, 0x6A, +0x49, 0xF2, 0x4E, 0xA2, 0x01, 0x6E, 0x2F, 0xD6, +0x5A, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, +0x60, 0x9A, 0xFF, 0x6C, 0x01, 0x4C, 0x40, 0x9B, +0x8C, 0xEA, 0x01, 0x22, 0x80, 0xDB, 0xFF, 0x68, +0x01, 0x48, 0x00, 0x6C, 0xB0, 0x67, 0x80, 0x18, +0xC0, 0x5D, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0xA3, 0xF3, 0xC7, 0xA2, 0x0C, 0x26, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, +0x42, 0xF1, 0x1C, 0x6C, 0x01, 0x6D, 0xCC, 0x36, +0x40, 0xEA, 0x01, 0x6F, 0x2F, 0xD7, 0x37, 0x10, +0xA3, 0xF3, 0xC8, 0xA2, 0x09, 0x26, 0x42, 0xF1, +0x1C, 0x6C, 0x01, 0x6D, 0xC4, 0x36, 0x01, 0x69, +0x00, 0x18, 0xE9, 0xC8, 0x2F, 0xD1, 0x2B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, +0x42, 0xF1, 0x1C, 0x6C, 0x01, 0x6D, 0xD0, 0x67, +0x40, 0xEA, 0x01, 0x6A, 0x2F, 0xD2, 0x1F, 0x10, +0x9D, 0x67, 0x20, 0xF0, 0x70, 0xC4, 0x20, 0xF0, +0x71, 0xC4, 0x20, 0xF0, 0x72, 0xC4, 0x20, 0xF0, +0x73, 0xC4, 0x20, 0xF0, 0x74, 0xC4, 0x30, 0xF0, +0x20, 0x6B, 0x49, 0xF2, 0x62, 0xA3, 0x0C, 0x02, +0x4D, 0xE3, 0x03, 0x10, 0x01, 0x6C, 0x80, 0xC2, +0x01, 0x4A, 0x6A, 0xEA, 0xFB, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF4, 0x4C, 0x9A, 0x2C, 0x94, +0x40, 0xEA, 0x00, 0x6D, 0x2F, 0xD5, 0x2C, 0x90, +0x00, 0x18, 0x0E, 0xC6, 0x1C, 0x22, 0x30, 0xF0, +0x20, 0x6E, 0xA5, 0xF6, 0x08, 0x4E, 0x2D, 0xD6, +0xA0, 0xF0, 0x6F, 0xA6, 0x01, 0x6A, 0x6C, 0xEA, +0xBF, 0xF5, 0x1E, 0x2A, 0x10, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6F, 0x82, 0xF5, +0x64, 0x9B, 0x30, 0x96, 0x82, 0xF5, 0xE8, 0x9F, +0x6D, 0xE0, 0x18, 0x4E, 0xFD, 0xE0, 0xCD, 0xE3, +0xA0, 0x9C, 0xDD, 0xE7, 0x47, 0x17, 0x37, 0x97, +0x36, 0x91, 0x35, 0x90, 0x1C, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF5, 0x44, 0x9A, 0x30, 0xF0, +0x20, 0x6B, 0xC2, 0xF5, 0x68, 0x9B, 0x40, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0xA5, 0xF6, 0x08, 0x48, +0x6C, 0xEA, 0x01, 0x6C, 0xE2, 0xF5, 0x44, 0xD8, +0x80, 0x18, 0x04, 0x1B, 0xA0, 0xF0, 0x6F, 0xA0, +0x01, 0x6A, 0x01, 0x6C, 0x6D, 0xEA, 0xA0, 0xF0, +0x4F, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF5, +0xAC, 0x9A, 0x80, 0x18, 0x5C, 0x5D, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF5, 0x4C, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xC2, 0xF5, 0x94, 0x9C, 0x60, 0xA2, +0x07, 0x6A, 0x6C, 0xEA, 0x01, 0x4A, 0x83, 0xF3, +0x5A, 0xC0, 0x00, 0x6A, 0x83, 0xF3, 0x58, 0xC8, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, 0x70, 0x9A, +0x40, 0x9B, 0x8C, 0xEA, 0x40, 0xDB, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x60, 0xA4, 0x01, 0x6A, 0x04, 0x67, 0x6C, 0xEA, +0x0D, 0x22, 0x80, 0x18, 0x40, 0x02, 0x30, 0xF0, +0x20, 0x6A, 0xA2, 0xF5, 0x5C, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x00, 0x18, 0x0B, 0xC9, 0x00, 0x18, +0x60, 0xCF, 0x1D, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x49, 0xF2, 0x4E, 0xA2, 0x14, 0x22, 0xFF, 0x69, +0x01, 0x49, 0x00, 0x6C, 0xB1, 0x67, 0x80, 0x18, +0xDD, 0x5D, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, +0x60, 0x9A, 0x40, 0x9B, 0x2C, 0xEA, 0x01, 0x22, +0x20, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, +0x58, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x80, 0x18, +0xAB, 0x00, 0x00, 0x18, 0x6C, 0xCF, 0x61, 0xA0, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0xA0, 0xF0, 0x70, 0xC2, 0x62, 0xA0, 0x02, 0x6F, +0x01, 0x68, 0x04, 0x6E, 0x08, 0x6D, 0x10, 0x6C, +0x6C, 0xE8, 0x6C, 0xEF, 0x6C, 0xEE, 0x6C, 0xED, +0x6C, 0xEC, 0xA0, 0xF0, 0x71, 0xC2, 0x83, 0xF3, +0x1C, 0xC2, 0x83, 0xF3, 0xFD, 0xC2, 0x83, 0xF3, +0xDE, 0xC2, 0x83, 0xF3, 0xBF, 0xC2, 0xA3, 0xF3, +0x80, 0xC2, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0x00, 0x6B, 0xC2, 0xF4, +0x7F, 0xC2, 0xE2, 0xF4, 0x60, 0xC2, 0xC2, 0xF4, +0x7E, 0xC2, 0x00, 0x6B, 0xC2, 0xF4, 0x7C, 0xCA, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0xD1, +0x06, 0xD0, 0xFF, 0x6A, 0xCC, 0xEA, 0x08, 0xD4, +0x03, 0xD2, 0xE1, 0x9C, 0x00, 0x68, 0x00, 0x69, +0xA3, 0xEF, 0x40, 0x9C, 0x00, 0xD0, 0x01, 0xD1, +0x0A, 0x61, 0xBB, 0xEF, 0x01, 0x2D, 0xE5, 0xE8, +0x00, 0x69, 0x00, 0xD1, 0x12, 0xEB, 0x01, 0xD3, +0xB8, 0xEB, 0x12, 0xEB, 0x7F, 0xE7, 0xC5, 0x67, +0x00, 0x6B, 0x01, 0x6C, 0x00, 0x6D, 0x0C, 0x10, +0xC4, 0x30, 0xC3, 0xE8, 0x64, 0x33, 0xD0, 0x67, +0x18, 0x67, 0x6D, 0xE0, 0x84, 0x30, 0x83, 0xE8, +0x38, 0x67, 0xA4, 0x34, 0x95, 0xE1, 0x90, 0x67, +0x01, 0x53, 0x02, 0x60, 0x07, 0x2B, 0x06, 0x26, +0xE3, 0xEB, 0xEE, 0x61, 0x6A, 0xEF, 0x02, 0x61, +0x43, 0xEE, 0xEA, 0x61, 0x63, 0xEF, 0x18, 0x61, +0xEA, 0xEB, 0x02, 0x61, 0xC3, 0xEA, 0x14, 0x61, +0x00, 0x91, 0xC3, 0xE2, 0x03, 0xEA, 0x7F, 0xE7, +0x50, 0x67, 0x18, 0x67, 0x1F, 0xE7, 0x81, 0xE1, +0x23, 0xE8, 0x01, 0x91, 0x00, 0xD0, 0x18, 0x67, +0xA5, 0xE1, 0x21, 0xE0, 0x02, 0xD0, 0x04, 0xD1, +0x00, 0x90, 0x02, 0x91, 0x00, 0xD0, 0x01, 0xD1, +0x86, 0x30, 0xC0, 0xF7, 0xA0, 0x31, 0x0D, 0xE9, +0x19, 0x65, 0xA6, 0x31, 0x98, 0x67, 0x11, 0x67, +0x8D, 0xE8, 0x02, 0xD1, 0xB1, 0x67, 0x06, 0x20, +0xC0, 0xF7, 0x60, 0x30, 0xC6, 0x36, 0x0D, 0xEE, +0x66, 0x33, 0xD4, 0x17, 0x03, 0x93, 0x01, 0x73, +0x05, 0x61, 0x00, 0x94, 0x01, 0x95, 0x08, 0x90, +0x80, 0xD8, 0xA1, 0xD8, 0x07, 0x91, 0x06, 0x90, +0x04, 0x63, 0x20, 0xE8, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0x40, 0xF4, 0x4C, 0x99, 0xFF, 0x68, 0x8C, 0xE8, +0x0D, 0xD5, 0x90, 0x67, 0x01, 0x6D, 0x40, 0xEA, +0x06, 0xD2, 0x40, 0xF4, 0x4C, 0x99, 0x90, 0x67, +0x00, 0x6D, 0x40, 0xEA, 0x04, 0xD2, 0x0D, 0x95, +0x06, 0x92, 0x04, 0x04, 0x00, 0x6E, 0x05, 0xD2, +0x80, 0x18, 0x93, 0x02, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, 0x5C, 0x9A, +0xFF, 0x6B, 0x80, 0xA2, 0x00, 0xF6, 0x80, 0x34, +0x00, 0xF6, 0x83, 0x34, 0x00, 0x54, 0x25, 0x60, +0xA0, 0xA2, 0x7F, 0x6C, 0xAC, 0xEC, 0x40, 0x6D, +0xAD, 0xEC, 0x6C, 0xEC, 0x80, 0xC2, 0x30, 0xF0, +0x20, 0x6C, 0xE2, 0xF5, 0x80, 0x9C, 0x3F, 0x6D, +0x80, 0xA4, 0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF5, +0x84, 0x9C, 0x80, 0xA4, 0x30, 0xF0, 0x20, 0x6C, +0xE2, 0xF5, 0x88, 0x9C, 0x80, 0xA4, 0x30, 0xF0, +0x20, 0x6C, 0xE2, 0xF5, 0x8C, 0x9C, 0x80, 0xA4, +0x80, 0xA2, 0x6C, 0xEC, 0xAD, 0xEC, 0x6C, 0xEC, +0x80, 0xC2, 0x80, 0xA2, 0xBF, 0x6B, 0x8C, 0xEB, +0x60, 0xC2, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF5, 0x70, 0x9B, 0xFF, 0x6A, 0x4C, 0xEC, +0xC0, 0xA3, 0x4C, 0xED, 0x15, 0x26, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF5, 0x74, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xE2, 0xF5, 0x98, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0x63, 0xF3, 0x64, 0x9A, +0x8D, 0xEB, 0x63, 0xF3, 0x64, 0xDA, 0x20, 0xE8, +0x80, 0xC3, 0x0B, 0x25, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF5, 0x9C, 0x9B, 0x80, 0x6D, 0xAB, 0xED, +0x60, 0xA4, 0x4C, 0xEB, 0xAE, 0xEB, 0x4C, 0xEB, +0x60, 0xC4, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF5, 0x78, 0x9B, 0x30, 0xF0, 0x20, 0x69, +0x45, 0xF5, 0x44, 0x99, 0xE0, 0x9B, 0x30, 0xF0, +0x20, 0x6B, 0x02, 0xF6, 0x60, 0x9B, 0x50, 0x32, +0x6D, 0xE2, 0xE0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF6, 0x64, 0x9B, 0x6D, 0xE2, 0x80, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF6, 0x68, 0x9B, +0x6D, 0xE2, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF6, 0x6C, 0x9B, 0x69, 0xE2, 0xC0, 0xDA, +0x45, 0xF5, 0x04, 0x99, 0x01, 0x48, 0x00, 0xF1, +0x00, 0x70, 0x45, 0xF5, 0x04, 0xD9, 0x05, 0x60, +0x00, 0xF2, 0x00, 0x6A, 0x4E, 0xE8, 0x06, 0x20, +0x0B, 0x10, 0x10, 0x6C, 0x01, 0x6D, 0x80, 0x18, +0xF3, 0x02, 0x06, 0x10, 0x11, 0x6C, 0x01, 0x6D, +0x80, 0x18, 0xF3, 0x02, 0x45, 0xF5, 0x04, 0xD9, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x00, 0x6A, 0x0B, 0xD7, 0xE0, 0xAE, 0x1F, 0xF7, +0x00, 0x6B, 0xEC, 0xEB, 0x02, 0xF0, 0x00, 0x73, +0x01, 0x60, 0x09, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xAE, 0x22, 0xF5, 0x64, 0x9B, 0x6D, 0xE7, +0xE0, 0xA4, 0xE0, 0xC3, 0x07, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0xF5, 0x68, 0x9B, 0x7D, 0xE7, +0x60, 0xA4, 0x60, 0xC7, 0x01, 0x4A, 0xFF, 0x6B, +0x6C, 0xEA, 0x03, 0x72, 0x02, 0x4E, 0x01, 0x4C, +0xE1, 0x61, 0x25, 0x67, 0x00, 0x68, 0x0B, 0x92, +0xC0, 0x99, 0x01, 0x6D, 0x0D, 0xE2, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x80, 0xAB, +0xAB, 0xED, 0x02, 0x48, 0x40, 0xEA, 0x16, 0x70, +0x04, 0x49, 0xF1, 0x61, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0xD1, 0x08, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, 0xAA, 0xF3, +0x76, 0xA2, 0x73, 0x2B, 0x01, 0x6B, 0x30, 0xF0, +0x21, 0x6E, 0x30, 0xF0, 0x21, 0x6D, 0xCA, 0xF3, +0x65, 0xC2, 0xCA, 0xF3, 0x66, 0xC2, 0x90, 0xF3, +0x0C, 0x4E, 0x90, 0xF2, 0x14, 0x4D, 0x00, 0x6A, +0x00, 0x6B, 0x60, 0xDE, 0x30, 0xF0, 0x20, 0x6C, +0x91, 0xF2, 0x6F, 0x42, 0xA5, 0xF6, 0x08, 0x4C, +0x6C, 0x33, 0x6D, 0xE4, 0x04, 0x4B, 0x03, 0xD3, +0x32, 0xF5, 0x6C, 0x42, 0x68, 0x33, 0x6D, 0xE4, +0x04, 0x4B, 0x02, 0xD3, 0x06, 0x6B, 0x78, 0xEA, +0x00, 0xD5, 0x00, 0x6F, 0x12, 0xEB, 0x6D, 0xE4, +0x4A, 0xF7, 0x1D, 0x4B, 0x03, 0x90, 0x00, 0x6C, +0x00, 0x69, 0x80, 0xD8, 0x02, 0x90, 0x80, 0xC8, +0x44, 0x30, 0x01, 0xE7, 0x65, 0xF2, 0x0C, 0x48, +0x30, 0xF0, 0x20, 0x6C, 0x04, 0x30, 0xA5, 0xF6, +0x08, 0x4C, 0x11, 0xE4, 0x04, 0x4C, 0x04, 0xD4, +0x00, 0x94, 0x01, 0xD4, 0x04, 0x90, 0x01, 0x6C, +0x06, 0xD2, 0x80, 0xC0, 0x44, 0x34, 0xF1, 0xE4, +0x84, 0x34, 0x91, 0xE1, 0x30, 0xF0, 0x20, 0x68, +0x90, 0x34, 0xA5, 0xF6, 0x08, 0x48, 0x91, 0xE0, +0xCA, 0xF3, 0x1C, 0x4C, 0x01, 0x92, 0x00, 0x68, +0x00, 0xCC, 0x80, 0xF0, 0x00, 0xCC, 0x02, 0x4C, +0x4A, 0xEC, 0xF8, 0x61, 0x04, 0x94, 0x01, 0x49, +0x02, 0x71, 0x01, 0x4C, 0x04, 0xD4, 0x01, 0x94, +0x06, 0x92, 0x10, 0x4C, 0x01, 0xD4, 0xDE, 0x61, +0x00, 0xC3, 0x01, 0xC3, 0x02, 0xC3, 0x03, 0x90, +0x02, 0x94, 0x01, 0x4F, 0x04, 0x48, 0x03, 0xD0, +0x00, 0x90, 0x02, 0x4C, 0x02, 0x77, 0x20, 0x48, +0x02, 0xD4, 0x03, 0x4B, 0x00, 0xD0, 0xBA, 0x61, +0x01, 0x4A, 0x02, 0x72, 0x04, 0x4E, 0x40, 0x4D, +0x9B, 0x61, 0x09, 0x91, 0x08, 0x90, 0x05, 0x63, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0xFC, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x69, 0xF3, 0x08, 0x4C, +0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, 0x05, 0x56, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF4, 0x00, 0x6C, +0xA5, 0xF6, 0x08, 0x4B, 0x4C, 0xEC, 0xEA, 0xF4, +0x4C, 0xDB, 0x82, 0x32, 0x4A, 0x32, 0x02, 0x72, +0x0A, 0x60, 0x03, 0x6C, 0x4E, 0xEC, 0x04, 0x24, +0x01, 0x72, 0x02, 0x6A, 0x05, 0x60, 0x06, 0x10, +0xAA, 0xF3, 0x95, 0xC3, 0x03, 0x10, 0x01, 0x6A, +0xAA, 0xF3, 0x55, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF5, 0x6C, 0x9B, 0xEA, 0xF4, 0x8C, 0x9A, +0x8C, 0xEB, 0x62, 0x33, 0x62, 0x33, 0xAA, 0xF3, +0x74, 0xC2, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x00, 0x68, 0x05, 0xD5, 0x04, 0xD4, 0x05, 0x92, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF6, 0x1C, 0x4B, +0xE0, 0x9B, 0xC0, 0xA2, 0x30, 0xF0, 0x20, 0x69, +0x69, 0xF3, 0x08, 0x49, 0x91, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x05, 0x56, 0x04, 0x93, 0x91, 0x67, +0x01, 0x6D, 0x40, 0xDB, 0x05, 0x92, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF6, 0x1C, 0x4B, 0xE0, 0x9B, +0xC0, 0xA2, 0x01, 0x48, 0x80, 0x18, 0x05, 0x56, +0x04, 0x93, 0x41, 0xDB, 0xFF, 0x6A, 0x4C, 0xE8, +0x05, 0x92, 0x08, 0x4B, 0x03, 0x70, 0x01, 0x4A, +0x05, 0xD2, 0x04, 0xD3, 0xD8, 0x61, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x69, 0xAC, 0xE9, 0x00, 0x68, 0x85, 0xF5, +0x1C, 0x6C, 0xFF, 0x6D, 0x80, 0x18, 0xA1, 0x19, +0x55, 0x72, 0x0C, 0x61, 0x00, 0x6A, 0x15, 0x21, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, 0xBC, 0x9A, +0x03, 0xF3, 0x08, 0x6C, 0x80, 0x18, 0xA1, 0x19, +0x00, 0x6A, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, 0x01, 0x48, +0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, +0x01, 0x6A, 0x32, 0x58, 0x01, 0x60, 0xDF, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x00, 0x6A, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x01, 0x72, +0x05, 0xD4, 0x24, 0x61, 0x44, 0x67, 0x04, 0x4A, +0x01, 0x68, 0x30, 0xF0, 0x20, 0x69, 0x04, 0xEA, +0x00, 0xF2, 0x08, 0x6A, 0x4D, 0xE8, 0xC0, 0xF3, +0x44, 0x99, 0x01, 0x6D, 0xD0, 0x67, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0x01, 0x6D, 0xAB, 0xED, 0xC1, 0x40, +0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, +0x40, 0xEA, 0x05, 0x94, 0x01, 0x6D, 0x80, 0x18, +0xC2, 0x03, 0xD2, 0x10, 0x02, 0x72, 0x01, 0x6A, +0xC0, 0xF0, 0x0E, 0x61, 0x30, 0xF0, 0x21, 0x6A, +0x70, 0xF2, 0x42, 0xA2, 0x00, 0x68, 0x09, 0x72, +0x0C, 0x60, 0x12, 0x72, 0x01, 0x68, 0x09, 0x60, +0x1B, 0x72, 0x02, 0x68, 0x06, 0x60, 0x24, 0x68, +0x4E, 0xE8, 0x01, 0x58, 0x18, 0x67, 0x04, 0x6A, +0x03, 0xE2, 0x05, 0x92, 0x30, 0xF0, 0x20, 0x69, +0x01, 0x6D, 0x44, 0x32, 0x07, 0xD2, 0x07, 0x93, +0x08, 0x6A, 0x03, 0xF3, 0x00, 0x6C, 0x4D, 0xEB, +0xC0, 0xF3, 0x44, 0x99, 0xC3, 0x67, 0x07, 0xD3, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0xA5, 0xF6, 0x08, 0x4C, 0x04, 0xD4, 0x04, 0x93, +0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0xAA, 0xF3, +0xDA, 0xA3, 0xC3, 0xF3, 0x0C, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x05, 0x92, 0x01, 0x6C, 0x01, 0x6D, +0x04, 0x4A, 0x84, 0xEA, 0x00, 0xF3, 0x08, 0x6A, +0x4D, 0xEC, 0x06, 0xD4, 0xC0, 0xF3, 0x44, 0x99, +0x06, 0x96, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x06, 0x96, 0xC0, 0xF3, 0x44, 0x99, +0x01, 0x6D, 0xAB, 0xED, 0x01, 0x4E, 0x03, 0xF3, +0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x48, 0x9A, 0x02, 0x6C, 0x40, 0xEA, +0x05, 0x94, 0x01, 0x6D, 0x80, 0x18, 0xC2, 0x03, +0x01, 0x72, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xC2, 0xF0, 0x00, 0x4A, 0x41, 0xE0, 0x40, 0xA0, +0x04, 0x93, 0xAA, 0xF3, 0x5A, 0xC3, 0x6B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x05, 0x95, 0x62, 0xF6, +0xFC, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x69, 0xF3, +0x08, 0x4C, 0x00, 0x6E, 0x80, 0x18, 0x05, 0x56, +0x05, 0xD2, 0x07, 0x96, 0xC0, 0xF3, 0x44, 0x99, +0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x05, 0x94, 0xE3, 0xF7, 0x00, 0x6A, +0x04, 0x93, 0x8C, 0xEA, 0x56, 0x34, 0x96, 0x32, +0xAA, 0xF3, 0x5C, 0xDB, 0x1F, 0x6A, 0x8C, 0xEA, +0x02, 0x5A, 0xFF, 0x6B, 0x0B, 0x60, 0x03, 0x70, +0x03, 0x60, 0x01, 0x48, 0x6C, 0xE8, 0x49, 0x10, +0x04, 0x94, 0x01, 0x6B, 0x03, 0x68, 0x6A, 0xF7, +0x71, 0xC4, 0x43, 0x10, 0x0A, 0x5A, 0x0B, 0x61, +0x04, 0x20, 0xFF, 0x48, 0x6C, 0xE8, 0x01, 0x6B, +0x0B, 0x10, 0x04, 0x94, 0x01, 0x6B, 0x6A, 0xF7, +0x71, 0xC4, 0x01, 0x6B, 0x09, 0x10, 0x04, 0x94, +0x00, 0x6B, 0x6A, 0xF7, 0x71, 0xC4, 0x00, 0x6B, +0x03, 0x20, 0x04, 0x58, 0x01, 0x61, 0x03, 0x68, +0x30, 0xF0, 0x20, 0x6D, 0xC2, 0xF0, 0x00, 0x4D, +0xA1, 0xE0, 0xA0, 0xA0, 0x30, 0xF0, 0x20, 0x6C, +0xA5, 0xF6, 0x08, 0x4C, 0xAA, 0xF3, 0xBA, 0xC4, +0x0F, 0x2B, 0xAA, 0xF3, 0xDA, 0xA4, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x64, 0x9B, 0xC0, 0x36, +0x01, 0x6D, 0x4D, 0xEE, 0xE3, 0xF3, 0x08, 0x6C, +0xAB, 0xED, 0x40, 0xEB, 0x00, 0x6A, 0x0C, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x01, 0x6D, 0xE3, 0xF3, 0x08, 0x6C, 0xAB, 0xED, +0xFF, 0xF7, 0x1F, 0x6E, 0x40, 0xEA, 0x01, 0x6A, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x01, 0x6B, 0xCE, 0x17, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x00, 0x6B, 0x0B, 0xD7, 0xE0, 0xAE, 0x1F, 0xF7, +0x00, 0x6A, 0xEC, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x08, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xAE, 0x22, 0xF5, 0x44, 0x9A, 0x49, 0xE7, +0xE0, 0xA2, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF5, 0x48, 0x9A, 0x5D, 0xE7, 0xE0, 0xA7, +0xFF, 0x6A, 0xEC, 0xEA, 0x7D, 0xE4, 0x01, 0x4B, +0x03, 0x73, 0x40, 0xC7, 0x02, 0x4E, 0xE2, 0x61, +0x25, 0x67, 0x00, 0x68, 0x0B, 0x93, 0x01, 0x6D, +0xAB, 0xED, 0x09, 0xE3, 0x80, 0xAA, 0x02, 0x48, +0x80, 0x18, 0xA1, 0x19, 0x16, 0x70, 0x40, 0xD9, +0x04, 0x49, 0xF4, 0x61, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x69, 0x62, 0xF6, +0x78, 0x9B, 0x30, 0xF0, 0x20, 0x68, 0x2C, 0xEC, +0xC0, 0xF3, 0x44, 0x98, 0xAC, 0xE9, 0x24, 0x36, +0x01, 0x6D, 0x04, 0xD4, 0xAB, 0xED, 0x03, 0xF3, +0x00, 0x6C, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, +0x08, 0x2A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x03, 0x6E, +0x07, 0x10, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x82, 0xF6, +0xA0, 0x9B, 0xC3, 0xF3, 0x14, 0x6C, 0x10, 0x6E, +0x40, 0xEA, 0x04, 0x93, 0x24, 0x30, 0x30, 0xF0, +0x20, 0x6A, 0x01, 0xE3, 0xA5, 0xF6, 0x08, 0x4A, +0x10, 0x30, 0x01, 0xE2, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF6, 0x44, 0x9A, 0xCA, 0xF3, 0x1C, 0x48, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, +0x44, 0x99, 0x04, 0x96, 0x01, 0x6D, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x01, 0x6D, +0xE3, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, 0x80, 0x18, +0xA1, 0x19, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF6, +0x68, 0x9B, 0x4C, 0xEB, 0x62, 0x33, 0x62, 0x33, +0x60, 0xC8, 0xE1, 0xF7, 0x1F, 0x6B, 0x4C, 0xEB, +0x04, 0x92, 0x80, 0xF0, 0x60, 0xC8, 0x02, 0x48, +0x04, 0x4A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF6, 0x4C, 0x9A, 0x04, 0x93, 0x6E, 0xEA, +0xD8, 0x2A, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, +0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x03, 0xF3, +0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, +0x05, 0x67, 0x01, 0x74, 0x4C, 0xE8, 0x80, 0xF0, +0x0D, 0x60, 0x04, 0x24, 0x04, 0x5C, 0xA0, 0xF0, +0x04, 0x60, 0x9E, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0xEA, 0xF4, 0x64, 0x9A, +0x30, 0xF0, 0x21, 0x6D, 0x30, 0xF0, 0x21, 0x6C, +0xEA, 0xF4, 0x68, 0xDA, 0x30, 0xF0, 0x21, 0x6F, +0x30, 0xF0, 0x21, 0x6B, 0xB0, 0xF3, 0x04, 0x4D, +0x90, 0xF3, 0x1C, 0x4C, 0x90, 0xF3, 0x18, 0x4B, +0x90, 0xF2, 0x14, 0x4F, 0x00, 0x6E, 0x40, 0x9D, +0x65, 0xF2, 0x0C, 0x46, 0x04, 0x30, 0x42, 0xDD, +0x40, 0xAC, 0x04, 0xD7, 0x00, 0x69, 0x42, 0xCC, +0x40, 0xA3, 0x08, 0xD3, 0x42, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, 0x01, 0xE2, +0x04, 0x48, 0x40, 0xA0, 0x44, 0xC0, 0xC4, 0x32, +0x49, 0xE1, 0x50, 0x32, 0x1A, 0x65, 0x30, 0xF0, +0x20, 0x6A, 0x78, 0x67, 0xA5, 0xF6, 0x08, 0x4A, +0x69, 0xE2, 0xCA, 0xF3, 0x1C, 0x4A, 0x1A, 0x65, +0x08, 0x92, 0x06, 0xD2, 0x58, 0x67, 0x60, 0xAA, +0x40, 0xF0, 0x60, 0xCA, 0x80, 0xF0, 0x60, 0xAA, +0xC0, 0xF0, 0x60, 0xCA, 0x04, 0x93, 0x02, 0x4A, +0x6A, 0xEA, 0xF5, 0x61, 0x06, 0x92, 0x01, 0x49, +0x10, 0x4B, 0x02, 0x71, 0x08, 0xD2, 0x01, 0x48, +0x04, 0xD3, 0xDB, 0x61, 0x01, 0x4E, 0x02, 0x68, +0x62, 0x67, 0xCE, 0xE8, 0x04, 0x4D, 0x02, 0x4C, +0x01, 0x4B, 0x20, 0x4F, 0xC0, 0x28, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, 0x00, 0x6B, +0x6A, 0xF7, 0x69, 0xC2, 0x6A, 0xF7, 0x6A, 0xC2, +0x4A, 0xF7, 0x7D, 0xC2, 0x4A, 0xF7, 0x7E, 0xC2, +0x4A, 0xF7, 0x7F, 0xC2, 0xEA, 0xF4, 0x71, 0xC2, +0x6A, 0xF7, 0x6B, 0xC2, 0x6A, 0xF7, 0x6C, 0xC2, +0x6A, 0xF7, 0x60, 0xC2, 0x6A, 0xF7, 0x61, 0xC2, +0x6A, 0xF7, 0x62, 0xC2, 0xEA, 0xF4, 0x6C, 0x9A, +0x01, 0x6C, 0xEA, 0xF4, 0x10, 0xC2, 0xEA, 0xF4, +0x14, 0xCA, 0xCA, 0xF4, 0x9C, 0xC2, 0xCA, 0xF4, +0x9D, 0xC2, 0xEA, 0xF4, 0x16, 0xCA, 0xCA, 0xF4, +0x9E, 0xC2, 0xCA, 0xF4, 0x9F, 0xC2, 0xEA, 0xF4, +0x64, 0xDA, 0x1B, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF6, 0xFC, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xB0, 0x67, 0x69, 0xF3, 0x08, 0x4C, 0x58, 0x6E, +0x80, 0x18, 0x05, 0x56, 0x22, 0xF5, 0x1E, 0x48, +0x30, 0xF0, 0x20, 0x6B, 0x08, 0x30, 0xA5, 0xF6, +0x08, 0x4B, 0x6D, 0xE0, 0x41, 0xDB, 0x05, 0x10, +0xFE, 0x4C, 0x4C, 0xEC, 0xB0, 0x67, 0x80, 0x18, +0x7E, 0x04, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x21, 0x6A, 0x70, 0xF2, 0x49, 0xA2, +0x18, 0x2A, 0x01, 0x6C, 0x00, 0x6D, 0x80, 0x18, +0xBF, 0x04, 0x02, 0x6C, 0x00, 0x6D, 0x80, 0x18, +0xBF, 0x04, 0x03, 0x6C, 0x00, 0x6D, 0x80, 0x18, +0xBF, 0x04, 0x01, 0x6C, 0xA4, 0x67, 0x80, 0x18, +0xBF, 0x04, 0x02, 0x6C, 0x01, 0x6D, 0x80, 0x18, +0xBF, 0x04, 0x03, 0x6C, 0x01, 0x6D, 0x80, 0x18, +0xBF, 0x04, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x69, 0x00, 0x6A, 0x8C, 0xE9, 0x06, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x1C, 0x4A, +0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x69, 0xF3, +0x08, 0x48, 0x00, 0x6B, 0x90, 0x67, 0xB1, 0x67, +0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x1C, 0x4A, +0xE0, 0x9A, 0x00, 0x6B, 0x90, 0x67, 0xB1, 0x67, +0x08, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF6, 0x1C, 0x4B, +0xE0, 0x9B, 0x90, 0x67, 0xB1, 0x67, 0x08, 0x6E, +0x80, 0x18, 0x05, 0x56, 0x0B, 0x22, 0x06, 0x92, +0x01, 0x4A, 0x06, 0xD2, 0x06, 0x93, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xEB, 0x2E, 0xF5, 0x10, 0x73, +0x06, 0xD3, 0xCE, 0x61, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF5, 0x63, 0x15, 0x62, 0x14, 0xD1, 0x13, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xED, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF0, 0x04, 0x4A, 0x64, 0x67, +0x07, 0xD2, 0x22, 0xF5, 0x16, 0x4B, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, 0x68, 0x33, +0x6D, 0xE2, 0x04, 0x4B, 0x09, 0xD3, 0x64, 0x67, +0x81, 0xF2, 0x1F, 0x4B, 0x6C, 0x33, 0x69, 0xE2, +0x04, 0x4A, 0x00, 0x6B, 0x0E, 0xD4, 0x10, 0xD5, +0x0B, 0xD2, 0x08, 0xD3, 0x08, 0x92, 0x10, 0x93, +0xFF, 0x69, 0x4C, 0xE9, 0x18, 0x2B, 0x30, 0xF0, +0x20, 0x68, 0x69, 0xF3, 0x08, 0x48, 0x01, 0x6A, +0x90, 0x67, 0xB1, 0x67, 0xDF, 0x6E, 0x10, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x0B, 0x93, +0x90, 0x67, 0xB1, 0x67, 0x40, 0x9B, 0x58, 0x6E, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, +0xFC, 0x9A, 0x80, 0x18, 0x78, 0x56, 0x08, 0x92, +0x44, 0x32, 0x0D, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF6, 0x58, 0x9A, 0x0D, 0x93, 0x4D, 0xEB, +0x00, 0x6A, 0x0D, 0xD3, 0x06, 0xD2, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x0D, 0x96, +0x01, 0x69, 0x2B, 0xE9, 0x03, 0xF3, 0x00, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x0C, 0x6C, 0xB1, 0x67, 0x07, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF6, +0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF6, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, +0x1C, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0x06, 0x93, 0xFF, 0x6A, +0x6C, 0xEA, 0x08, 0x2A, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, +0x03, 0x6E, 0x07, 0x10, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x82, 0xF6, 0xA0, 0x9B, 0xC3, 0xF3, 0x14, 0x6C, +0x10, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x06, 0x93, 0x82, 0xF6, 0x50, 0x9A, 0x46, 0xEB, +0x0E, 0x93, 0x64, 0x30, 0x08, 0x93, 0x61, 0xE0, +0x06, 0x93, 0x04, 0x30, 0x01, 0xE3, 0x30, 0xF0, +0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, 0x10, 0x30, +0x01, 0xE3, 0x63, 0x42, 0x0A, 0xD3, 0x61, 0x42, +0x23, 0x4A, 0xCA, 0xF3, 0x1C, 0x48, 0x0C, 0xD3, +0x0F, 0xD2, 0xC0, 0xA8, 0x0A, 0x93, 0x30, 0xF0, +0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, 0xC0, 0x36, +0xC4, 0x36, 0x01, 0x6D, 0xD9, 0xE3, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x80, 0xF0, +0xC0, 0xA8, 0x0C, 0x93, 0xC0, 0xF3, 0x44, 0x99, +0xC0, 0x36, 0xC4, 0x36, 0x01, 0x6D, 0xD9, 0xE3, +0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x0C, 0x93, 0x0A, 0x92, 0x02, 0x48, 0x04, 0x4B, +0x0C, 0xD3, 0x0F, 0x93, 0x04, 0x4A, 0x0A, 0xD2, +0x6A, 0xEA, 0xDB, 0x61, 0x06, 0x93, 0xFF, 0x6A, +0x6C, 0xEA, 0x08, 0x2A, 0x09, 0x92, 0x07, 0x93, +0x01, 0x6D, 0xC0, 0xA2, 0x80, 0xAB, 0xC0, 0xF3, +0x44, 0x99, 0x08, 0x10, 0x09, 0x92, 0x07, 0x93, +0x00, 0xF4, 0x00, 0x6D, 0xC1, 0xA2, 0x80, 0xAB, +0xC0, 0xF3, 0x44, 0x99, 0xCF, 0xEE, 0x40, 0xEA, +0x06, 0x92, 0x01, 0x4A, 0x02, 0x72, 0x06, 0xD2, +0x5F, 0xF7, 0x15, 0x61, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, +0x06, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x08, 0x93, 0x07, 0x92, 0x01, 0x4B, 0x08, 0xD3, +0x09, 0x93, 0x02, 0x4A, 0x07, 0xD2, 0x02, 0x4B, +0x0B, 0x92, 0x09, 0xD3, 0x08, 0x93, 0x04, 0x4A, +0x0B, 0xD2, 0x02, 0x73, 0x1F, 0xF7, 0x0A, 0x61, +0x15, 0x97, 0x14, 0x91, 0x13, 0x90, 0x0B, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xED, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0x00, 0x6B, 0x6A, 0xF7, 0x78, 0xC2, 0x1A, 0x2C, +0xAA, 0xF3, 0x76, 0xA2, 0x17, 0x23, 0xEA, 0xF4, +0x6C, 0x9A, 0xEA, 0xF4, 0x84, 0x9A, 0x00, 0x68, +0x6E, 0xEC, 0x05, 0x24, 0xEA, 0xF4, 0x48, 0x9A, +0x4E, 0xEB, 0x0C, 0x2B, 0x01, 0x68, 0x01, 0x6B, +0x30, 0xF0, 0x21, 0x6A, 0x90, 0x67, 0x30, 0xF6, +0x60, 0xC2, 0x80, 0x18, 0x4C, 0x05, 0x90, 0x67, +0x80, 0x18, 0x4E, 0x40, 0x30, 0xF0, 0x21, 0x6A, +0x30, 0xF6, 0x40, 0xA2, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x21, 0x6A, 0x70, 0xF2, 0x49, 0xA2, +0x05, 0x22, 0x00, 0x6C, 0x01, 0x6D, 0x80, 0x18, +0xDB, 0x05, 0x04, 0x10, 0x00, 0x6C, 0x01, 0x6D, +0x80, 0x18, 0x4C, 0x05, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x00, 0x6A, 0x7D, 0x67, +0x4C, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF5, +0x2C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, +0x1C, 0x4A, 0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x68, +0x69, 0xF3, 0x08, 0x48, 0x00, 0x6D, 0x90, 0x67, +0xC5, 0x67, 0x04, 0xD1, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF6, 0x1C, 0x4B, +0xE0, 0x9B, 0x90, 0x67, 0x01, 0x6D, 0x00, 0x6E, +0x30, 0xF0, 0x20, 0x68, 0x04, 0xD1, 0x80, 0x18, +0x78, 0x56, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF6, +0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xE1, 0xF0, +0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xE1, 0xF0, 0x1C, 0x6C, +0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x07, 0x6D, 0xC5, 0x67, 0x83, 0xF1, +0x0C, 0x6C, 0x40, 0xEA, 0x06, 0x02, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, +0xA1, 0xF3, 0x18, 0x6F, 0xA1, 0xF7, 0x00, 0x6C, +0x08, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0xF0, 0x08, 0x6C, 0xFF, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x82, 0xF6, 0xB8, 0x9B, +0x01, 0xF2, 0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, 0x78, 0x9A, +0xFF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0xFE, 0x6C, +0x4C, 0xEC, 0x80, 0xC3, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF6, 0x5C, 0x9A, 0x60, 0xA2, +0x01, 0x6A, 0x6C, 0xEA, 0x09, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xA2, 0xF6, 0x64, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xA2, 0xF6, 0x40, 0x9A, 0x60, 0xDA, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF6, 0x3C, 0x9A, 0x30, 0xF0, 0x20, 0x68, +0x69, 0xF3, 0x08, 0x48, 0x90, 0x67, 0xF1, 0x67, +0x01, 0xF2, 0x00, 0x6A, 0x00, 0x6D, 0xB8, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x30, 0xF0, +0x20, 0x6A, 0xA2, 0xF6, 0x48, 0x9A, 0x90, 0x67, +0xF1, 0x67, 0x00, 0x6D, 0xB8, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x78, 0x56, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x0E, 0xD6, 0x0F, 0xD7, 0x04, 0xD7, 0xFF, 0x68, +0xFF, 0xF7, 0x1F, 0x69, 0x0E, 0x97, 0x8C, 0xE8, +0xAC, 0xE9, 0x30, 0xF0, 0x20, 0x6C, 0x69, 0xF3, +0x08, 0x4C, 0xB0, 0x67, 0xD1, 0x67, 0x80, 0x18, +0x78, 0x56, 0x00, 0x6A, 0x07, 0xD2, 0x30, 0xF0, +0x20, 0x6B, 0x0E, 0x97, 0x69, 0xF3, 0x08, 0x4B, +0x83, 0x67, 0xB0, 0x67, 0xD1, 0x67, 0x06, 0xD3, +0x80, 0x18, 0x05, 0x56, 0x0F, 0x93, 0x6E, 0xEA, +0x1E, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x0F, 0x92, +0x06, 0x94, 0x0E, 0x97, 0xB0, 0x67, 0xD1, 0x67, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x07, 0x93, +0x01, 0x4B, 0xE0, 0xF3, 0x08, 0x73, 0x07, 0xD3, +0xDE, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0xA0, 0xF1, 0x00, 0x6C, 0x1F, 0xF7, +0x00, 0x6D, 0x0A, 0x6E, 0x40, 0xEA, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x68, 0xFF, 0xF7, +0x1F, 0x69, 0x62, 0xF6, 0xFC, 0x9A, 0x8C, 0xE8, +0xAC, 0xE9, 0x30, 0xF0, 0x20, 0x6C, 0x0E, 0xD6, +0x04, 0xD6, 0x69, 0xF3, 0x08, 0x4C, 0xB0, 0x67, +0xD1, 0x67, 0x80, 0x18, 0x78, 0x56, 0x00, 0x6A, +0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, +0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xE0, 0x9A, +0x69, 0xF3, 0x08, 0x4B, 0x83, 0x67, 0xB0, 0x67, +0xD1, 0x67, 0x06, 0xD3, 0x80, 0x18, 0x05, 0x56, +0x0E, 0x93, 0x6E, 0xEA, 0x18, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF6, +0x1C, 0x4B, 0x0E, 0x92, 0x06, 0x94, 0xE0, 0x9B, +0xB0, 0x67, 0xD1, 0x67, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0x07, 0x92, 0x01, 0x4A, 0xE0, 0xF3, +0x08, 0x72, 0x07, 0xD2, 0xD6, 0x61, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x00, 0x6A, 0x0C, 0xD4, 0x05, 0x67, 0x06, 0xD2, +0x06, 0x92, 0xFF, 0x6B, 0x30, 0xF0, 0x20, 0x69, +0x6C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF6, +0x1C, 0x4B, 0x07, 0xD2, 0xE0, 0x9B, 0x07, 0x95, +0x69, 0xF3, 0x08, 0x49, 0x00, 0x6A, 0x91, 0x67, +0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x40, 0x98, 0x06, 0x94, 0x11, 0x6E, 0xCB, 0xEE, +0x4C, 0xEE, 0xDF, 0x6D, 0x80, 0x18, 0x74, 0x06, +0x0C, 0x92, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF6, +0x1C, 0x4B, 0xC1, 0xA2, 0xE0, 0x9B, 0x42, 0x98, +0x07, 0x95, 0x91, 0x67, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0x0C, 0x92, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF6, 0x1C, 0x4B, 0xC2, 0xA2, 0x07, 0x95, +0x44, 0x98, 0xE0, 0x9B, 0x91, 0x67, 0x04, 0xD2, +0x80, 0x18, 0x78, 0x56, 0x06, 0x92, 0x04, 0x48, +0x01, 0x4A, 0x02, 0x72, 0x06, 0xD2, 0xC4, 0x61, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x01, 0x6B, 0x6B, 0xEB, +0x30, 0xF0, 0x21, 0x6A, 0x0A, 0xD4, 0x50, 0xF2, +0x7E, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, +0x3C, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x0A, 0x93, +0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, 0x21, 0x6C, +0x35, 0xE3, 0xD0, 0xF5, 0x1C, 0x4C, 0x08, 0x6E, +0x40, 0xEA, 0x0A, 0x95, 0x80, 0xF2, 0x4C, 0x98, +0x30, 0xF0, 0x21, 0x6C, 0x08, 0x4D, 0x35, 0xE5, +0xB0, 0xF3, 0x14, 0x4C, 0x44, 0x6E, 0x40, 0xEA, +0x0A, 0x92, 0x30, 0xF0, 0x21, 0x6C, 0xF0, 0xF3, +0x18, 0x4C, 0x4C, 0x4A, 0x04, 0xD2, 0x04, 0x93, +0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, +0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, 0x21, 0x6C, +0x30, 0xF4, 0x1C, 0x4C, 0x44, 0x4A, 0x04, 0xD2, +0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, +0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, +0x21, 0x6C, 0x90, 0xF4, 0x00, 0x4C, 0x44, 0x4A, +0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, +0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, +0x30, 0xF0, 0x21, 0x6C, 0xD0, 0xF4, 0x04, 0x4C, +0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, +0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, +0x04, 0x92, 0x30, 0xF0, 0x21, 0x6C, 0x10, 0xF5, +0x08, 0x4C, 0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, +0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, +0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, 0x21, 0x6C, +0x50, 0xF5, 0x0C, 0x4C, 0x44, 0x4A, 0x04, 0xD2, +0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, +0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, +0x21, 0x6C, 0x90, 0xF5, 0x10, 0x4C, 0x44, 0x4A, +0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, +0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF7, 0xA0, 0x9B, 0x04, 0x93, +0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, 0x21, 0x6C, +0xF0, 0xF5, 0x14, 0x4C, 0xB5, 0xE3, 0x10, 0x6E, +0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0xD1, +0x08, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF0, +0x7C, 0xA2, 0x80, 0xF0, 0x1E, 0x23, 0x30, 0xF0, +0x20, 0x6C, 0x00, 0x6B, 0x62, 0xF5, 0x9C, 0x9C, +0x42, 0xF0, 0x7C, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0x30, 0xF0, 0x21, 0x6E, +0x30, 0xF0, 0x21, 0x6D, 0xCA, 0xF3, 0x67, 0xC2, +0xCA, 0xF3, 0x8C, 0xDA, 0xCA, 0xF3, 0x65, 0xC2, +0xCA, 0xF3, 0x69, 0xC2, 0xCA, 0xF3, 0x94, 0xDA, +0xCA, 0xF3, 0x68, 0xC2, 0xCA, 0xF3, 0x90, 0xDA, +0xCA, 0xF3, 0x66, 0xC2, 0xCA, 0xF3, 0x6A, 0xC2, +0xCA, 0xF3, 0x98, 0xDA, 0xD0, 0xF5, 0x1C, 0x4E, +0xD0, 0xF3, 0x16, 0x4D, 0x00, 0x6A, 0x00, 0x6B, +0x60, 0xDE, 0x30, 0xF0, 0x20, 0x6C, 0xE1, 0xF2, +0x69, 0x42, 0xA5, 0xF6, 0x08, 0x4C, 0x6C, 0x33, +0x6D, 0xE4, 0x04, 0x4B, 0x04, 0xD3, 0xD2, 0xF5, +0x60, 0x42, 0x68, 0x33, 0x6D, 0xE4, 0x04, 0x4B, +0x03, 0xD3, 0x06, 0x6B, 0x78, 0xEA, 0x01, 0xD5, +0x00, 0x69, 0x05, 0x67, 0x12, 0xEB, 0x6D, 0xE4, +0x4A, 0xF7, 0x1D, 0x4B, 0x04, 0x95, 0x00, 0x6C, +0x80, 0xDD, 0x03, 0x95, 0x80, 0xCD, 0x44, 0x35, +0xB5, 0xE1, 0x85, 0xF3, 0x14, 0x4D, 0x30, 0xF0, +0x20, 0x6C, 0xA4, 0x35, 0xA5, 0xF6, 0x08, 0x4C, +0xB1, 0xE4, 0x04, 0x4C, 0x05, 0xD4, 0x01, 0x94, +0x00, 0x6D, 0x00, 0xD5, 0x02, 0xD4, 0x05, 0x95, +0x00, 0x6C, 0x22, 0x6F, 0x80, 0xC5, 0x00, 0x94, +0x30, 0xF0, 0x20, 0x6D, 0xA5, 0xF6, 0x08, 0x4D, +0xF8, 0xEC, 0x44, 0x6C, 0x06, 0xD2, 0x12, 0xEF, +0x98, 0xE9, 0x12, 0xEC, 0x9D, 0xE7, 0x88, 0x6C, +0x98, 0xEA, 0x12, 0xEC, 0x9D, 0xE7, 0xF1, 0xE5, +0xFD, 0xE5, 0x0A, 0xF5, 0x0C, 0x4C, 0x0A, 0xF6, +0x1C, 0x4F, 0x02, 0x92, 0x00, 0x6D, 0xA0, 0xCC, +0x02, 0x4C, 0x4A, 0xEC, 0xA0, 0xCF, 0x02, 0x4F, +0xF8, 0x61, 0x00, 0x94, 0x06, 0x92, 0x01, 0x4C, +0x00, 0xD4, 0x05, 0x94, 0x01, 0x4C, 0x05, 0xD4, +0x02, 0x94, 0x22, 0x4C, 0x02, 0xD4, 0x00, 0x94, +0x02, 0x74, 0xD1, 0x61, 0xA0, 0xC3, 0xA1, 0xC3, +0xA2, 0xC3, 0x04, 0x95, 0x03, 0x94, 0x01, 0x49, +0x04, 0x4D, 0x04, 0xD5, 0x01, 0x95, 0x02, 0x4C, +0x02, 0x71, 0x44, 0x4D, 0x03, 0xD4, 0x03, 0x4B, +0x01, 0xD5, 0xAC, 0x61, 0xB0, 0x67, 0x01, 0x4A, +0x7F, 0x4D, 0x02, 0x72, 0x04, 0x4E, 0x09, 0x4D, +0x8A, 0x61, 0x09, 0x91, 0x08, 0x90, 0x05, 0x63, +0x20, 0xE8, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x4C, 0xED, +0x4C, 0xEC, 0xCC, 0xEA, 0x4B, 0xEA, 0xC0, 0xF7, +0x42, 0x32, 0x30, 0xF0, 0x20, 0x68, 0x44, 0x32, +0xC0, 0xF3, 0x64, 0x98, 0x07, 0xD5, 0x04, 0xD2, +0xA4, 0x36, 0x08, 0x6A, 0x01, 0x6D, 0x06, 0xD4, +0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEB, 0x06, 0x92, 0x0F, 0x2A, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x82, 0xF6, +0xB0, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x03, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, +0x44, 0x9A, 0x0E, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x82, 0xF6, 0xB0, 0x9B, +0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, 0x48, 0x9A, +0x05, 0xD2, 0x06, 0x92, 0x22, 0x68, 0x07, 0x93, +0x18, 0xEA, 0x44, 0x6A, 0x00, 0x69, 0x12, 0xE8, +0x58, 0xEB, 0x04, 0x93, 0x12, 0xEA, 0x41, 0xE0, +0x88, 0x6A, 0x58, 0xEB, 0x12, 0xEA, 0x41, 0xE0, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0x01, 0xE2, 0x0A, 0xF5, 0x0C, 0x48, 0xC0, 0xA8, +0x05, 0x92, 0x01, 0x6D, 0xC0, 0x36, 0x4D, 0xEE, +0x28, 0x32, 0x4D, 0xEE, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0xC3, 0xF3, 0x18, 0x6C, +0xAB, 0xED, 0x02, 0x4E, 0x01, 0x49, 0x40, 0xEA, +0x11, 0x71, 0x02, 0x48, 0xEC, 0x61, 0x06, 0x92, +0x22, 0x68, 0x07, 0x93, 0x18, 0xEA, 0x44, 0x6A, +0x12, 0xE8, 0x58, 0xEB, 0x04, 0x93, 0x12, 0xEA, +0x41, 0xE0, 0x88, 0x6A, 0x58, 0xEB, 0x12, 0xEA, +0x41, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0x01, 0xE2, 0x00, 0x6A, 0x0A, 0xF6, +0x1C, 0x48, 0x04, 0xD2, 0xC0, 0xA8, 0x05, 0x93, +0x04, 0x92, 0xC0, 0x36, 0x30, 0xF0, 0x20, 0x69, +0x6D, 0xEE, 0x48, 0x33, 0xC0, 0xF3, 0x44, 0x99, +0x01, 0x6D, 0x6D, 0xEE, 0xC3, 0xF3, 0x18, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x04, 0x93, 0x02, 0x48, +0x01, 0x4B, 0x11, 0x73, 0x04, 0xD3, 0xEA, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, +0x82, 0xF6, 0xC4, 0x9B, 0x01, 0x6D, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, 0x82, 0xF6, +0xB0, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, +0xC2, 0xF5, 0x8A, 0x42, 0x30, 0xF0, 0x20, 0x6B, +0x85, 0xF3, 0x1C, 0x4A, 0xA5, 0xF6, 0x08, 0x4B, +0x88, 0x34, 0x44, 0x32, 0x91, 0xE3, 0x4D, 0xE3, +0x00, 0x68, 0x04, 0x4C, 0x08, 0x4B, 0x04, 0xD4, +0x05, 0xD3, 0x06, 0xD0, 0x07, 0xD0, 0x08, 0xD0, +0x04, 0x95, 0x01, 0x6C, 0x08, 0x93, 0x40, 0xA5, +0x30, 0xF0, 0x20, 0x69, 0x04, 0x36, 0x8C, 0xEA, +0x44, 0xE8, 0x4D, 0xE3, 0x41, 0xA5, 0x05, 0x95, +0x08, 0xD3, 0x8C, 0xEA, 0x07, 0x94, 0x64, 0x40, +0x44, 0xEB, 0x51, 0xE4, 0x40, 0xA5, 0x07, 0xD4, +0x03, 0x6C, 0x64, 0x33, 0x8C, 0xEA, 0x44, 0xEB, +0x04, 0x94, 0x06, 0x93, 0x01, 0x6D, 0x8C, 0xAC, +0x4D, 0xE3, 0x06, 0xD3, 0xC0, 0xF3, 0x64, 0x99, +0x08, 0x6A, 0x4D, 0xEE, 0x09, 0xD4, 0xAB, 0xED, +0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEB, 0x08, 0x95, +0x07, 0x96, 0x06, 0x93, 0xC0, 0xF3, 0x44, 0x99, +0xAD, 0xEE, 0x6D, 0xEE, 0xE3, 0xF3, 0x10, 0x6C, +0xFF, 0xF7, 0x1F, 0x6D, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0x09, 0x96, 0x01, 0x6D, 0xE3, 0xF3, +0x08, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x04, 0x94, +0x05, 0x95, 0x01, 0x48, 0x02, 0x4C, 0x01, 0x4D, +0x02, 0x70, 0x04, 0xD4, 0x05, 0xD5, 0xBC, 0x61, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, +0x05, 0xD2, 0x00, 0x6A, 0x04, 0xD2, 0x04, 0x92, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x64, 0x98, +0x01, 0x69, 0x2B, 0xE9, 0x44, 0x36, 0x08, 0x6A, +0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xB1, 0x67, +0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x42, 0xF7, 0xCC, 0x9B, 0x03, 0xF3, +0x04, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x05, 0x92, +0x07, 0x2A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x08, 0x6C, 0xB1, 0x67, 0x80, 0x6E, 0x06, 0x10, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x30, 0xF0, 0x20, 0x68, +0x40, 0xEA, 0x01, 0x69, 0xC0, 0xF3, 0x44, 0x98, +0x2B, 0xE9, 0x03, 0xF3, 0x0C, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF6, 0xD4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x14, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF7, 0xD0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x18, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF7, +0xD4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x1C, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x42, 0xF7, +0xD8, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x04, 0x92, 0x01, 0x4A, 0x02, 0x72, +0x04, 0xD2, 0x99, 0x61, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, +0x00, 0xF2, 0x1C, 0x22, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF6, 0xB0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF6, 0x04, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF5, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF4, 0x10, 0x69, 0x91, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF6, +0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF5, 0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF5, 0x1C, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF5, +0x18, 0x6C, 0xE1, 0xF7, 0x18, 0x6D, 0xE0, 0xF1, +0x1F, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF5, 0x1C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x63, 0xF0, 0x04, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF5, +0x1C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x68, 0xF1, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, 0x3C, 0x9A, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0x0C, 0x6C, +0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x08, 0xF1, 0x0C, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF0, 0x0C, 0x6C, 0x80, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x68, 0xF1, +0x0C, 0x6C, 0x80, 0x6D, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0x0C, 0x6C, +0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x08, 0xF1, 0x0C, 0x6C, 0x03, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF2, 0x00, 0x6C, 0x03, 0x6D, 0x02, 0x6E, +0x40, 0xEA, 0x01, 0x69, 0xC0, 0xF3, 0x44, 0x98, +0x2B, 0xE9, 0x23, 0xF4, 0x18, 0x6C, 0xB1, 0x67, +0xD1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF7, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF7, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF7, 0x04, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF7, 0x08, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF7, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF7, +0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF7, 0x14, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF7, 0x18, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF7, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF7, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF7, 0x04, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x82, 0xF7, 0x08, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x82, 0xF7, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF7, +0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF7, 0x14, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x82, 0xF7, 0x18, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x82, 0xF7, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF7, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF7, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF7, 0x00, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF7, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF7, +0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF7, 0x0C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF7, 0x10, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF7, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF7, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF7, 0x1C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x82, 0xF7, 0x00, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x82, 0xF7, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF7, +0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF7, 0x0C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x82, 0xF7, 0x10, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x82, 0xF7, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF7, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF7, 0x1C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x82, 0xF7, 0x1C, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0xC0, 0x9B, 0xC9, 0x12, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0x04, 0xD2, 0x4A, 0xF7, +0x5C, 0xA2, 0xE0, 0xF0, 0x1B, 0x22, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF7, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, +0x2B, 0xE9, 0x23, 0xF4, 0x18, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x04, 0x93, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF0, 0x00, 0x6C, 0xCA, 0xF3, 0xC2, 0xA3, +0x04, 0x6B, 0x0E, 0xF0, 0x00, 0x6D, 0x67, 0xEE, +0xC3, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA2, 0xF7, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x23, 0xF0, +0x10, 0x6C, 0xCA, 0xF3, 0xC2, 0xA2, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF7, 0x08, 0x4B, +0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, +0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0xCA, 0xF3, +0xC2, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0xA2, 0xF7, 0x0C, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x23, 0xF0, +0x10, 0x6C, 0xCA, 0xF3, 0xC2, 0xA2, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF7, 0x10, 0x4B, +0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, +0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0xCA, 0xF3, +0xC2, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0xA2, 0xF7, 0x14, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF7, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x04, 0x92, 0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, +0xCA, 0xF3, 0xC2, 0xA2, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, +0x20, 0x6B, 0xA2, 0xF7, 0x1C, 0x4B, 0x60, 0x9B, +0x6D, 0xEE, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA2, 0xF7, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x28, 0xF1, +0x10, 0x6C, 0xCA, 0xF3, 0xC2, 0xA2, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF7, 0x08, 0x4B, +0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, +0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, 0xCA, 0xF3, +0xC2, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0xA2, 0xF7, 0x0C, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x28, 0xF1, +0x10, 0x6C, 0xCA, 0xF3, 0xC2, 0xA2, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF7, 0x10, 0x4B, +0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, +0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, 0xCA, 0xF3, +0xC2, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0xA2, 0xF7, 0x14, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF7, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x04, 0x92, 0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, +0xCA, 0xF3, 0xC2, 0xA2, 0xB1, 0x67, 0xC0, 0xF3, +0x44, 0x98, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, +0x20, 0x6B, 0xA2, 0xF7, 0x1C, 0x4B, 0x60, 0x9B, +0x6D, 0xEE, 0x63, 0x11, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0xA2, 0xF7, 0x04, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, +0x2B, 0xE9, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, 0x04, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC2, 0xF7, 0x08, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF7, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF7, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC2, 0xF7, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF7, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF7, 0x04, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF7, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, +0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF7, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA2, 0xF7, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, 0x04, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC2, 0xF7, 0x08, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF7, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF7, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC2, 0xF7, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF7, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF7, 0x04, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF7, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, +0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF7, 0x14, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xC0, 0x9B, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, 0xB8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF5, +0x18, 0x6C, 0xE1, 0xF7, 0x18, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF5, +0x3C, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, +0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x68, 0xF1, +0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF7, 0x3C, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF0, 0x0C, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x08, 0xF1, 0x0C, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, +0x0C, 0x6C, 0x80, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x68, 0xF1, 0x0C, 0x6C, +0x80, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0x6D, 0xC5, 0x67, 0x03, 0xF0, +0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0x6D, 0xC5, 0x67, 0x08, 0xF1, 0x0C, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, +0x00, 0x6C, 0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x06, 0x67, 0xE2, 0xF7, 0xDC, 0x9B, 0x09, 0xD5, +0x01, 0x6D, 0x24, 0x67, 0x0B, 0xD7, 0x63, 0xF5, +0x10, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x00, 0x6A, +0x80, 0x98, 0x1F, 0xF7, 0x00, 0x6B, 0x8C, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x09, 0x2B, +0x30, 0xF0, 0x20, 0x6C, 0x60, 0x98, 0x22, 0xF5, +0x84, 0x9C, 0x6D, 0xE4, 0x80, 0x99, 0x80, 0xDB, +0x07, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF5, +0x68, 0x9B, 0x91, 0xE3, 0x60, 0x99, 0x60, 0xDC, +0x01, 0x4A, 0xFF, 0x6B, 0x6C, 0xEA, 0x03, 0x72, +0x04, 0x48, 0x04, 0x49, 0xE1, 0x61, 0x00, 0x68, +0x0B, 0x92, 0x30, 0xF0, 0x20, 0x69, 0x01, 0x6D, +0x11, 0xE2, 0x09, 0x92, 0x80, 0xAC, 0xAB, 0xED, +0x0D, 0xE2, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0x04, 0x48, 0x40, 0xEA, 0x2C, 0x70, 0xF0, 0x61, +0x30, 0xF0, 0x21, 0x6A, 0xD0, 0xF5, 0x55, 0xA2, +0x01, 0x72, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x99, 0x03, 0xF0, 0x0C, 0x6C, +0x42, 0xF5, 0xBC, 0x9B, 0x00, 0x6E, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, +0x42, 0xF5, 0xBC, 0x9B, 0x03, 0xF0, 0x0C, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x21, 0x6A, +0xD0, 0xF5, 0x57, 0xA2, 0x01, 0x72, 0x0C, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9A, 0x08, 0xF1, 0x0C, 0x6C, +0x42, 0xF5, 0xBC, 0x9B, 0x00, 0x6E, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9A, 0x42, 0xF5, 0xBC, 0x9B, +0x08, 0xF1, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x21, 0x6A, 0x10, 0xF6, 0x44, 0xA2, +0x1E, 0x22, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF5, 0xBC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x63, 0xF6, 0x1C, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, +0x38, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, +0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x04, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF5, 0x54, 0x9A, 0x01, 0x6B, +0x6B, 0xEB, 0x30, 0xF0, 0x20, 0x68, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0xA2, 0xF6, 0xB0, 0x9B, 0x23, 0xF6, 0x04, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0xA0, 0x9B, +0xC3, 0xF4, 0x10, 0x6C, 0x07, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF5, 0xBC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF5, 0x00, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6E, 0xCB, 0xEE, 0xA6, 0x67, 0x23, 0xF4, +0x18, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF2, 0x14, 0x6C, 0x00, 0xF3, 0x00, 0x6D, +0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0xA4, 0x9B, +0x21, 0xF0, 0x04, 0x6C, 0x03, 0x6E, 0x40, 0xEA, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF6, 0xF4, 0x9B, 0xFF, 0x6A, 0x04, 0x6B, +0xC0, 0xA7, 0x4C, 0xED, 0x4C, 0xEC, 0x4C, 0xEE, +0xCD, 0xEB, 0x4C, 0xEB, 0x60, 0xC7, 0x06, 0x2D, +0x07, 0x6B, 0x07, 0x24, 0x01, 0x74, 0x07, 0x6B, +0x12, 0x61, 0x0C, 0x10, 0x07, 0x2C, 0x79, 0x6B, +0x6B, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, +0x4C, 0x9A, 0x08, 0x10, 0x01, 0x74, 0x07, 0x61, +0x79, 0x6B, 0x6B, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF0, 0x48, 0x9A, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF6, 0x54, 0x9A, 0xC0, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6E, 0x30, 0xF0, +0x20, 0x68, 0xCC, 0xEC, 0xC0, 0xF3, 0x44, 0x98, +0xAC, 0xEE, 0x01, 0x69, 0x08, 0x6B, 0x2B, 0xE9, +0xC4, 0x36, 0x04, 0xD4, 0xB1, 0x67, 0x03, 0xF3, +0x00, 0x6C, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, +0x12, 0x2A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x03, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, +0x03, 0xF0, 0xCC, 0x9B, 0x11, 0x10, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, +0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0xD0, 0x9B, 0xC3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF6, +0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x30, 0xF0, 0x20, 0x68, 0xC3, 0xF3, 0x18, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x00, 0x6E, +0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x00, 0x68, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF0, 0xB4, 0x9A, 0x02, 0xF7, 0x00, 0x6C, +0x80, 0x18, 0x19, 0x1A, 0x20, 0x6B, 0x4C, 0xEB, +0x0A, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x14, 0x6C, 0x01, 0x48, 0x40, 0xEA, +0x0A, 0x70, 0xEC, 0x61, 0x0A, 0x68, 0x50, 0x67, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0xF7, 0x1F, 0x68, 0x8C, 0xE8, 0x80, 0x18, +0x59, 0x0B, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, +0xD8, 0x9A, 0x01, 0x69, 0x2B, 0xE9, 0x0D, 0xEE, +0xB1, 0x67, 0x02, 0xF7, 0x00, 0x6C, 0x80, 0x18, +0x2E, 0x1A, 0xB1, 0x67, 0x02, 0xF7, 0x08, 0x6C, +0x80, 0x18, 0x19, 0x1A, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0xF7, 0x1F, 0x68, 0x25, 0x67, 0x0C, 0xD6, +0x8C, 0xE8, 0x37, 0x25, 0x61, 0x45, 0x00, 0x6A, +0x0E, 0x2B, 0x80, 0x18, 0x59, 0x0B, 0x01, 0x69, +0x0C, 0x96, 0x2B, 0xE9, 0x02, 0xF7, 0x04, 0x6C, +0xB1, 0x67, 0x80, 0x18, 0x2E, 0x1A, 0x02, 0xF7, +0x00, 0x6C, 0xB1, 0x67, 0x1F, 0x10, 0x71, 0x67, +0x66, 0xEA, 0x01, 0x6C, 0x8C, 0xEB, 0x04, 0x2B, +0x01, 0x4A, 0x20, 0x72, 0xF8, 0x61, 0x00, 0x6A, +0x90, 0x67, 0x04, 0xD2, 0x2F, 0xE9, 0x80, 0x18, +0x68, 0x0B, 0x4C, 0xE9, 0x80, 0x18, 0x59, 0x0B, +0x0C, 0x96, 0x04, 0x92, 0x01, 0x6D, 0x02, 0xF7, +0x04, 0x6C, 0xC4, 0xEA, 0xAB, 0xED, 0x2D, 0xEE, +0x80, 0x18, 0x2E, 0x1A, 0x01, 0x6D, 0x02, 0xF7, +0x00, 0x6C, 0xAB, 0xED, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF0, 0xDC, 0x9A, 0x0D, 0xEE, 0x80, 0x18, +0x2E, 0x1A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x38, 0x6C, 0x18, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x80, 0x18, 0x78, 0x0B, 0x38, 0x6C, 0x01, 0xF4, +0x00, 0x6D, 0x01, 0x6E, 0x80, 0x18, 0x78, 0x0B, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x38, 0x6C, 0x06, 0xF0, +0x00, 0x6D, 0x03, 0x6E, 0x80, 0x18, 0x78, 0x0B, +0x38, 0x6C, 0x00, 0xF3, 0x00, 0x6D, 0x03, 0x6E, +0x80, 0x18, 0x78, 0x0B, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x05, 0x22, 0x80, 0x18, +0xA4, 0x0B, 0x80, 0x18, 0x9B, 0x0B, 0x09, 0x10, +0x30, 0xF0, 0x21, 0x6A, 0x10, 0xF6, 0xDC, 0x9A, +0x01, 0x6D, 0x38, 0x6C, 0xAB, 0xED, 0x80, 0x18, +0x78, 0x0B, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x00, 0x6A, 0x09, 0xD5, 0x27, 0x67, 0xA0, 0x9E, +0x1F, 0xF7, 0x00, 0x6B, 0xAC, 0xEB, 0x02, 0xF0, +0x00, 0x73, 0x01, 0x60, 0x08, 0x2B, 0x30, 0xF0, +0x20, 0x6D, 0x60, 0x9E, 0x22, 0xF5, 0xA4, 0x9D, +0x6D, 0xE5, 0x60, 0x9B, 0x06, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0xF5, 0x68, 0x9B, 0xB5, 0xE3, +0x60, 0x9D, 0x55, 0xE4, 0x04, 0x4A, 0x0C, 0x72, +0x60, 0xDD, 0x04, 0x4E, 0xE4, 0x61, 0x00, 0x68, +0x09, 0xE1, 0x80, 0xAA, 0x01, 0x6D, 0xAB, 0xED, +0x80, 0x18, 0xA1, 0x19, 0x09, 0x94, 0x0D, 0xE4, +0x04, 0x48, 0x2C, 0x70, 0x40, 0xDB, 0xF4, 0x61, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x4C, 0xED, +0x4C, 0xEC, 0xCC, 0xEA, 0x4B, 0xEA, 0xC0, 0xF7, +0x42, 0x32, 0x30, 0xF0, 0x20, 0x68, 0x44, 0x32, +0xC0, 0xF3, 0x64, 0x98, 0x06, 0xD5, 0x04, 0xD2, +0xA4, 0x36, 0x08, 0x6A, 0x01, 0x6D, 0x05, 0xD4, +0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEB, 0x05, 0x92, 0x0A, 0x2A, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, +0x00, 0x6C, 0x82, 0xF6, 0xB0, 0x9B, 0x03, 0x6E, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x82, 0xF6, 0xB0, 0x9B, 0x23, 0xF3, +0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0xA0, 0x9B, 0xC3, 0xF3, +0x14, 0x69, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x82, 0xF6, 0xA0, 0x9B, 0x91, 0x67, 0x10, 0x6E, +0x40, 0xEA, 0x05, 0x92, 0x22, 0x69, 0x06, 0x93, +0x38, 0xEA, 0x44, 0x6A, 0x12, 0xE9, 0x58, 0xEB, +0x04, 0x93, 0x12, 0xEA, 0x45, 0xE1, 0x88, 0x6A, +0x58, 0xEB, 0x12, 0xEA, 0x45, 0xE1, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, 0x21, 0xE2, +0x25, 0xE2, 0x00, 0x6A, 0x0A, 0xF5, 0x0C, 0x48, +0x0A, 0xF6, 0x1C, 0x49, 0x04, 0xD2, 0x04, 0x93, +0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, 0x68, 0x36, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF6, 0x64, 0x9B, +0xAB, 0xED, 0x6D, 0xEE, 0x40, 0xEA, 0x01, 0x6D, +0xE3, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, 0x80, 0x18, +0xA1, 0x19, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF6, +0x68, 0x9B, 0x4C, 0xEB, 0x62, 0x33, 0x62, 0x33, +0x60, 0xC8, 0xE1, 0xF7, 0x1F, 0x6B, 0x4C, 0xEB, +0x04, 0x92, 0x60, 0xC9, 0x02, 0x48, 0x01, 0x4A, +0x11, 0x72, 0x04, 0xD2, 0x02, 0x49, 0xD7, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF6, 0xB0, 0x9B, +0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x00, 0x6E, 0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6A, 0x24, 0x67, +0xA5, 0xF6, 0x08, 0x48, 0x4C, 0xED, 0x4C, 0xE9, +0xAA, 0xF3, 0x55, 0xA0, 0x06, 0xD5, 0x24, 0x36, +0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x64, 0x9A, 0x01, 0x6D, 0x08, 0x6A, 0x4D, 0xEE, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF6, 0xB0, 0x9B, +0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0xAA, 0xF3, 0x54, 0xA0, 0x4B, 0x2A, 0x06, 0x92, +0x03, 0x22, 0x12, 0x6A, 0xAA, 0xF3, 0x5A, 0xC0, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x21, 0x6B, +0x70, 0xF2, 0xC2, 0xA3, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x40, 0xEA, +0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF5, 0xEC, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0x69, 0xF3, 0x08, 0x4B, 0x83, 0x67, 0xB1, 0x67, +0xDE, 0x6E, 0x06, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x06, 0x94, 0xE1, 0xF7, 0x1F, 0x6F, 0x20, 0x6A, +0xB1, 0x67, 0x56, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x18, 0x6C, 0x02, 0x6D, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0xC4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, +0x04, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x18, 0x6E, 0x49, 0x10, 0x06, 0x92, 0x03, 0x22, +0x12, 0x6A, 0xAA, 0xF3, 0x5A, 0xC0, 0x01, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF5, +0xEC, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x69, 0xF3, +0x08, 0x48, 0x90, 0x67, 0xB1, 0x67, 0xDE, 0x6E, +0x80, 0x18, 0x78, 0x56, 0xE1, 0xF7, 0x1F, 0x6F, +0x90, 0x67, 0x00, 0x6A, 0xB1, 0x67, 0x56, 0x6E, +0x30, 0xF0, 0x20, 0x68, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0x30, 0xF0, 0x21, 0x6B, 0x70, 0xF2, +0xC2, 0xA3, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, +0x0C, 0x6C, 0xFF, 0x6D, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x18, 0x6C, 0x02, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF0, 0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x23, 0xF3, 0x04, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x0C, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, +0x07, 0x93, 0x06, 0x73, 0x0A, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, +0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x08, 0x6E, +0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x06, 0xD2, 0xA5, 0xF6, +0x08, 0x4B, 0xAA, 0xF3, 0x55, 0xA3, 0x07, 0xD3, +0x06, 0x93, 0x30, 0xF0, 0x20, 0x68, 0x08, 0xD2, +0x64, 0x31, 0x08, 0x6A, 0x4D, 0xE9, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xD1, 0x67, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF7, 0x18, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x3F, 0x6D, 0xC5, 0x67, 0xC3, 0xF3, 0x0C, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xD1, 0x67, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, +0x18, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF6, 0xB0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x00, 0x69, +0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0xE0, 0xF3, 0x00, 0x6D, +0x12, 0x6E, 0x40, 0xEA, 0x07, 0x93, 0xAA, 0xF3, +0x54, 0xA3, 0x11, 0x2A, 0x01, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x69, +0x06, 0x95, 0x42, 0xF5, 0xEC, 0x9A, 0x69, 0xF3, +0x08, 0x49, 0x91, 0x67, 0xDE, 0x6E, 0x80, 0x18, +0x78, 0x56, 0x20, 0x6A, 0x10, 0x10, 0x01, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x69, 0x06, 0x95, 0x42, 0xF5, 0xEC, 0x9A, +0x69, 0xF3, 0x08, 0x49, 0x91, 0x67, 0xDE, 0x6E, +0x80, 0x18, 0x78, 0x56, 0x00, 0x6A, 0x06, 0x95, +0x91, 0x67, 0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, +0x12, 0x6E, 0x40, 0xEA, 0x08, 0x92, 0x06, 0x72, +0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, +0x1F, 0x6D, 0x08, 0x6E, 0x09, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, +0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x38, 0x6E, +0x40, 0xEA, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0xFF, 0x68, 0xAA, 0xF3, +0x75, 0xA2, 0x8C, 0xE8, 0x06, 0xD2, 0x04, 0x32, +0x07, 0xD2, 0x08, 0xD3, 0x07, 0x93, 0x30, 0xF0, +0x20, 0x69, 0x08, 0x6A, 0x4D, 0xEB, 0xC0, 0xF3, +0x44, 0x99, 0x01, 0x6D, 0xC3, 0x67, 0x07, 0xD3, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, 0xB8, 0x9B, +0xC0, 0xF3, 0x44, 0x99, 0xA3, 0xF3, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, +0x3F, 0x6D, 0xC5, 0x67, 0xC3, 0xF3, 0x0C, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x07, 0x96, +0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF6, +0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, +0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0x23, 0xF3, 0x00, 0x6C, 0xE0, 0xF3, +0x00, 0x6D, 0x12, 0x6E, 0x40, 0xEA, 0x06, 0x92, +0xAA, 0xF3, 0x54, 0xA2, 0x06, 0xD2, 0x5B, 0x2A, +0x07, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF0, 0xEC, 0x9A, 0x30, 0xF0, 0x20, 0x69, +0x69, 0xF3, 0x08, 0x49, 0x91, 0x67, 0xB0, 0x67, +0x00, 0x6E, 0x80, 0x18, 0x78, 0x56, 0x01, 0x6B, +0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, 0x20, 0x6F, +0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, 0x01, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, 0x00, 0xF4, +0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF5, 0x0C, 0x4A, +0xE0, 0x9A, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, +0xDE, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x10, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, +0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, +0xEF, 0x6E, 0x04, 0x6F, 0x04, 0xD3, 0x80, 0x18, +0x78, 0x56, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF5, +0x0C, 0x4B, 0xE0, 0x9B, 0x06, 0x92, 0x91, 0x67, +0xB0, 0x67, 0x18, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0x06, 0x92, 0x91, 0x67, 0xB0, 0x67, +0x33, 0x6E, 0x01, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0x04, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x08, 0x6E, 0x70, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0x06, 0x93, 0x5A, 0x10, 0x07, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, +0xEC, 0x9A, 0x30, 0xF0, 0x20, 0x69, 0x69, 0xF3, +0x08, 0x49, 0x91, 0x67, 0xB0, 0x67, 0x00, 0x6E, +0x80, 0x18, 0x78, 0x56, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x9E, 0x6E, 0x20, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x78, 0x56, 0x01, 0x6B, 0x91, 0x67, +0xB0, 0x67, 0x9E, 0x6E, 0x00, 0xF4, 0x00, 0x6F, +0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF5, 0x0C, 0x4B, 0xE0, 0x9B, +0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x00, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, 0xE1, 0xF7, +0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, +0x04, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF5, 0x0C, 0x4B, +0xE0, 0x9B, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x18, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, +0xE2, 0x67, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x04, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, +0x70, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x00, 0x6B, 0x91, 0x67, 0x30, 0xF0, 0x20, 0x69, +0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, 0x69, 0xF3, +0x08, 0x49, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x57, 0x6E, +0x01, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, +0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x21, 0x6A, 0x50, 0xF2, 0x5C, 0xA2, +0x01, 0x22, 0x20, 0x6A, 0x7F, 0x6F, 0x91, 0x67, +0xB0, 0x67, 0x33, 0x6E, 0x30, 0xF0, 0x20, 0x69, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0xC0, 0xF3, +0x44, 0x99, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, +0x09, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, +0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x38, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0xB0, 0x67, 0x10, 0x6F, 0x01, 0x6A, 0x69, 0xF3, +0x08, 0x4C, 0xEF, 0x6E, 0x30, 0xF0, 0x20, 0x68, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x12, 0x6E, +0x40, 0xEA, 0x08, 0x92, 0x06, 0x72, 0x08, 0x61, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x0C, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x08, 0x6E, 0x07, 0x10, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x0C, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0xAA, 0xF3, 0x75, 0xA2, +0x30, 0xF0, 0x20, 0x68, 0xFF, 0x69, 0x8C, 0xE9, +0x07, 0xD3, 0xC0, 0xF3, 0x64, 0x98, 0x06, 0xD2, +0x24, 0x36, 0x08, 0x6A, 0x01, 0x6D, 0x4D, 0xEE, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, 0xB8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0xD0, 0x9B, +0x01, 0x6D, 0x23, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x06, 0x93, 0xAA, 0xF3, 0x54, 0xA3, +0x03, 0x2A, 0x81, 0xF0, 0x07, 0x4A, 0x02, 0x10, +0xC1, 0xF0, 0x0A, 0x6A, 0x30, 0xF0, 0x20, 0x6C, +0x69, 0xF3, 0x08, 0x4C, 0xB1, 0x67, 0x56, 0x6E, +0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, +0x0C, 0x6C, 0xFF, 0x6D, 0x09, 0x6E, 0x40, 0xEA, +0x07, 0x92, 0x06, 0x72, 0x0A, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, +0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x08, 0x6E, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, +0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF3, +0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0xFF, 0x68, 0x8C, 0xE8, +0xAA, 0xF3, 0x75, 0xA2, 0x06, 0xD2, 0x04, 0x32, +0x07, 0xD2, 0x08, 0xD3, 0x07, 0x93, 0x30, 0xF0, +0x20, 0x69, 0x08, 0x6A, 0x4D, 0xEB, 0xC0, 0xF3, +0x44, 0x99, 0x01, 0x6D, 0xC3, 0x67, 0x07, 0xD3, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, 0xB8, 0x9B, +0xC0, 0xF3, 0x44, 0x99, 0xA3, 0xF3, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, +0x3F, 0x6D, 0xC5, 0x67, 0xC3, 0xF3, 0x0C, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x07, 0x96, +0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF6, +0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, +0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0x30, 0xF0, 0x20, 0x69, 0x69, 0xF3, +0x08, 0x49, 0x23, 0xF3, 0x00, 0x6C, 0xE0, 0xF3, +0x00, 0x6D, 0x12, 0x6E, 0x40, 0xEA, 0x00, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0xDF, 0x6E, 0x10, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x00, 0x6B, +0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, 0x20, 0x6F, +0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, 0x00, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, 0x00, 0xF4, +0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x06, 0x93, 0xAA, 0xF3, 0x74, 0xA3, 0x06, 0xD3, +0x35, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF5, +0x0C, 0x4B, 0xE0, 0x9B, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0xDE, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0x81, 0xF0, 0x07, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x01, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF5, 0x0C, 0x4A, 0x06, 0x93, +0xE0, 0x9A, 0x91, 0x67, 0xB0, 0x67, 0x18, 0x6E, +0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, 0x04, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, 0x70, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x06, 0x93, +0x04, 0xD3, 0x3C, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF5, 0x0C, 0x4B, 0xE0, 0x9B, 0x01, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x78, 0x56, 0x61, 0xF0, 0x08, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, 0xE1, 0xF7, +0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, +0x04, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF5, 0x0C, 0x4A, +0xE0, 0x9A, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, +0x18, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x00, 0x6B, 0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, +0x01, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x04, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, +0x70, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x00, 0x6A, 0x04, 0xD2, 0x91, 0x67, 0x30, 0xF0, +0x20, 0x69, 0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, +0x69, 0xF3, 0x08, 0x49, 0x80, 0x18, 0x78, 0x56, +0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x57, 0x6E, +0x01, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, +0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x21, 0x6A, 0x50, 0xF2, 0x5C, 0xA2, +0x01, 0x22, 0x20, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x33, 0x6E, 0x7F, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, +0x09, 0x6E, 0x40, 0xEA, 0x08, 0x93, 0x06, 0x73, +0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, +0x1F, 0x6D, 0x08, 0x6E, 0x09, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, +0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x38, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x1C, 0x4A, +0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x00, 0x69, +0x69, 0xF3, 0x08, 0x48, 0x0E, 0xD4, 0x0F, 0xD5, +0x90, 0x67, 0xB1, 0x67, 0xEF, 0x6E, 0x04, 0xD1, +0x80, 0x18, 0x78, 0x56, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF6, 0x1C, 0x4B, 0xE0, 0x9B, 0x90, 0x67, +0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD1, 0x80, 0x18, +0x78, 0x56, 0x0E, 0x90, 0x0F, 0x91, 0x00, 0x6A, +0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF3, +0x08, 0x4B, 0x06, 0xD3, 0x40, 0x99, 0xC0, 0x98, +0x83, 0x67, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF6, 0x1C, 0x4A, 0xE0, 0x9A, 0x00, 0x6D, +0x80, 0x18, 0x78, 0x56, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF6, 0x1C, 0x4B, 0xC0, 0x98, 0x41, 0x99, +0xE0, 0x9B, 0x06, 0x94, 0x01, 0x6D, 0x04, 0xD2, +0x80, 0x18, 0x78, 0x56, 0x07, 0x92, 0x04, 0x48, +0x08, 0x49, 0x01, 0x4A, 0x07, 0xD2, 0x07, 0x93, +0xFF, 0x6A, 0x4C, 0xEB, 0x03, 0x73, 0x58, 0x67, +0x07, 0xD3, 0x08, 0xD2, 0xD6, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF5, 0x0C, 0x9A, 0x06, 0x94, +0x78, 0x67, 0xF0, 0x67, 0x00, 0x6D, 0xDE, 0x6E, +0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, 0x08, 0x92, +0x06, 0x94, 0xF0, 0x67, 0x01, 0x6D, 0xDE, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF7, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, +0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x3C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x14, 0x4A, +0x40, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x69, 0xF3, +0x08, 0x48, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, +0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x04, 0x6B, 0x90, 0x67, 0x00, 0x6D, 0x33, 0x6E, +0x0F, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x90, 0x67, 0xF1, 0x67, 0x03, 0x6A, 0x00, 0x6D, +0x3E, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x58, 0x9A, +0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, 0x3F, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x00, 0x6B, +0xA3, 0x67, 0x90, 0x67, 0xF1, 0x67, 0xEF, 0x6E, +0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF0, 0x14, 0x4A, 0x40, 0x9A, +0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, 0xEF, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x04, 0x6B, +0x90, 0x67, 0x01, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, +0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF0, 0x5C, 0x9A, 0x90, 0x67, +0xF1, 0x67, 0x01, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x78, 0x56, 0x90, 0x67, 0xF1, 0x67, +0x00, 0x6A, 0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x78, 0x56, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF0, 0x14, 0x4B, 0x60, 0x9B, 0x90, 0x67, +0xF1, 0x67, 0x00, 0x6D, 0xEF, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x78, 0x56, 0x90, 0x67, 0x06, 0x6A, +0x00, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x78, 0x56, 0x03, 0x6B, 0x90, 0x67, +0xF1, 0x67, 0x00, 0x6D, 0x3E, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x78, 0x56, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF0, 0x40, 0x9A, 0x90, 0x67, 0xF1, 0x67, +0x00, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0x00, 0x6A, 0x90, 0x67, 0xF1, 0x67, +0xA2, 0x67, 0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, +0x14, 0x4B, 0x60, 0x9B, 0x90, 0x67, 0xF1, 0x67, +0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, +0x78, 0x56, 0x90, 0x67, 0x06, 0x6A, 0x01, 0x6D, +0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, +0x44, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, +0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x00, 0x6B, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, +0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x14, 0x4A, +0x40, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, +0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x07, 0x6B, 0x90, 0x67, 0x00, 0x6D, 0x33, 0x6E, +0x0F, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x90, 0x67, 0xF1, 0x67, 0x03, 0x6A, 0x00, 0x6D, +0x3E, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, 0x48, 0x9A, +0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, 0x3F, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x00, 0x6B, +0xA3, 0x67, 0x90, 0x67, 0xF1, 0x67, 0xEF, 0x6E, +0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF0, 0x14, 0x4A, 0x40, 0x9A, +0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, 0xEF, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x07, 0x6B, +0x90, 0x67, 0x01, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, +0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF0, 0x4C, 0x9A, 0x90, 0x67, +0xF1, 0x67, 0x01, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x78, 0x56, 0x90, 0x67, 0xF1, 0x67, +0x00, 0x6A, 0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x78, 0x56, 0x00, 0x6B, 0xA3, 0x67, +0x90, 0x67, 0xF1, 0x67, 0x19, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x78, 0x56, 0x90, 0x67, 0xF1, 0x67, +0x00, 0x6A, 0x01, 0x6D, 0x19, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x78, 0x56, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xED, 0x06, 0xD4, +0x07, 0xD5, 0x01, 0x68, 0x00, 0x69, 0x85, 0xF5, +0x1C, 0x6C, 0xFF, 0x6D, 0x80, 0x18, 0xA1, 0x19, +0x55, 0x72, 0x11, 0x61, 0x07, 0x92, 0x03, 0x2A, +0x00, 0x68, 0x50, 0x67, 0x17, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF6, 0xBC, 0x9A, 0x03, 0xF3, +0x08, 0x6C, 0xFF, 0x68, 0x80, 0x18, 0xA1, 0x19, +0x4C, 0xE8, 0x00, 0x6A, 0x0B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x64, 0x6C, +0x01, 0x49, 0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE9, 0x01, 0x6A, 0xA1, 0xF3, 0x18, 0x59, +0x02, 0x61, 0x01, 0x68, 0x01, 0x10, 0xD7, 0x2A, +0x06, 0x95, 0x30, 0xF0, 0x20, 0x69, 0x69, 0xF3, +0x08, 0x49, 0x91, 0x67, 0x00, 0x6A, 0x8F, 0x6E, +0x08, 0xF0, 0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x06, 0x95, 0x23, 0xF0, 0xEC, 0x9A, +0x91, 0x67, 0x00, 0x6E, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x0A, 0x6C, 0x30, 0xF0, 0x20, 0x69, 0x40, 0xEA, +0x06, 0x92, 0x01, 0x6D, 0x08, 0x6B, 0x44, 0x36, +0xC0, 0xF3, 0x44, 0x99, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x6D, 0xEE, 0x40, 0xEA, 0x0A, 0x28, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, +0x23, 0xF3, 0x00, 0x6C, 0x43, 0xF0, 0xB0, 0x9B, +0x02, 0x6E, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x99, 0x43, 0xF0, 0xB0, 0x9B, +0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x00, 0x6A, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x00, 0x68, 0x05, 0xD5, 0x04, 0xD4, 0x05, 0x92, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF6, 0x1C, 0x4B, +0xE0, 0x9B, 0xC0, 0x9A, 0x30, 0xF0, 0x20, 0x69, +0x69, 0xF3, 0x08, 0x49, 0x91, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x05, 0x56, 0x04, 0x93, 0x91, 0x67, +0x01, 0x6D, 0x40, 0xDB, 0x05, 0x92, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF6, 0x1C, 0x4B, 0xE0, 0x9B, +0xC0, 0x9A, 0x01, 0x48, 0x80, 0x18, 0x05, 0x56, +0x04, 0x93, 0x41, 0xDB, 0xFF, 0x6A, 0x4C, 0xE8, +0x05, 0x92, 0x08, 0x4B, 0x03, 0x70, 0x04, 0x4A, +0x05, 0xD2, 0x04, 0xD3, 0xD8, 0x61, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x69, 0x04, 0x67, 0x30, 0xF0, 0x20, 0x6A, +0x2C, 0xE8, 0xC0, 0xF3, 0x44, 0x9A, 0x08, 0x6B, +0x04, 0x36, 0x01, 0x6D, 0x6D, 0xEE, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF6, 0xFC, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x69, 0xF3, 0x08, 0x4C, 0xB0, 0x67, +0x58, 0x6E, 0x80, 0x18, 0x05, 0x56, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF0, 0x74, 0x9B, 0x4C, 0xEB, +0x62, 0x33, 0x7A, 0x33, 0x2C, 0xEB, 0x0B, 0x23, +0x3F, 0x73, 0x09, 0x60, 0x07, 0xF7, 0x00, 0x6B, +0x4C, 0xEB, 0x62, 0x32, 0x2C, 0xEA, 0x03, 0x22, +0x3F, 0x72, 0x00, 0x6A, 0x56, 0x61, 0x30, 0xF0, +0x20, 0x69, 0x69, 0xF3, 0x08, 0x49, 0x00, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x57, 0x6E, 0x01, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x01, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, 0x10, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x30, 0xF0, +0x21, 0x6A, 0x50, 0xF2, 0x5C, 0xA2, 0x01, 0x22, +0x20, 0x6A, 0x91, 0x67, 0x30, 0xF0, 0x20, 0x69, +0x69, 0xF3, 0x08, 0x49, 0xB0, 0x67, 0x33, 0x6E, +0x7F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x20, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, +0x07, 0xF7, 0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, +0xF4, 0x9A, 0x20, 0x6B, 0x91, 0x67, 0xB0, 0x67, +0x08, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x1C, 0x4A, +0xE0, 0x9A, 0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, +0x80, 0x18, 0x05, 0x56, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF6, 0x1C, 0x4B, 0xE0, 0x9B, 0x91, 0x67, +0xB0, 0x67, 0x58, 0x6E, 0x80, 0x18, 0x05, 0x56, +0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, +0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x01, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x68, 0x0C, 0xEC, +0x01, 0x74, 0xAC, 0xE8, 0x80, 0xF0, 0x0E, 0x60, +0x07, 0x24, 0x02, 0x74, 0xA0, 0xF0, 0x00, 0x60, +0x03, 0x74, 0xA0, 0xF0, 0x01, 0x60, 0xA5, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0x2A, 0xF7, 0x74, 0x9A, 0x30, 0xF0, 0x21, 0x6D, +0x30, 0xF0, 0x21, 0x6C, 0x2A, 0xF7, 0x78, 0xDA, +0x30, 0xF0, 0x21, 0x6F, 0x30, 0xF0, 0x21, 0x6B, +0xF0, 0xF5, 0x14, 0x4D, 0xF0, 0xF5, 0x0C, 0x4C, +0xF0, 0xF5, 0x08, 0x4B, 0xD0, 0xF3, 0x16, 0x4F, +0x00, 0x69, 0x40, 0x9D, 0x95, 0xF3, 0x04, 0x41, +0x04, 0x30, 0x42, 0xDD, 0x40, 0xAC, 0x05, 0xD7, +0x42, 0xCC, 0x40, 0xA3, 0x42, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, 0x01, 0xE2, +0x00, 0x6A, 0x04, 0x48, 0x04, 0xD2, 0x40, 0xA0, +0x22, 0x6E, 0x07, 0xD3, 0x44, 0xC0, 0x04, 0x92, +0xD8, 0xEA, 0x44, 0x6A, 0x12, 0xEE, 0x58, 0xE9, +0x12, 0xEA, 0x49, 0xE6, 0x30, 0xF0, 0x20, 0x6E, +0xA5, 0xF6, 0x08, 0x4E, 0x1A, 0x65, 0x49, 0xE6, +0x0A, 0xF5, 0x0C, 0x4A, 0x06, 0xD2, 0x58, 0x67, +0x59, 0xE6, 0x06, 0x92, 0x0A, 0xF6, 0x1C, 0x4E, +0x60, 0xAA, 0x80, 0xF0, 0x68, 0xCA, 0x60, 0xAE, +0x02, 0x4A, 0x80, 0xF0, 0x68, 0xCE, 0x05, 0x93, +0x02, 0x4E, 0x6A, 0xEA, 0xF5, 0x61, 0x04, 0x92, +0x07, 0x93, 0x01, 0x48, 0x01, 0x4A, 0x04, 0xD2, +0x05, 0x92, 0x22, 0x4A, 0x05, 0xD2, 0x04, 0x92, +0x02, 0x72, 0xD1, 0x61, 0x01, 0x49, 0x02, 0x71, +0x04, 0x4D, 0x02, 0x4C, 0x01, 0x4B, 0x44, 0x4F, +0xB8, 0x61, 0x30, 0xF0, 0x21, 0x6B, 0xF0, 0xF5, +0x08, 0x4B, 0x44, 0x43, 0xA7, 0x43, 0x16, 0x4D, +0xC2, 0x67, 0x00, 0x6C, 0x80, 0xC3, 0x01, 0x4B, +0x00, 0x6C, 0xCA, 0xEB, 0x80, 0xCA, 0xFF, 0xF7, +0x88, 0xC2, 0x20, 0xF0, 0x85, 0xC2, 0xFF, 0xF7, +0x89, 0xC2, 0x20, 0xF0, 0x86, 0xC2, 0x80, 0xC5, +0x81, 0xC5, 0x82, 0xC5, 0x02, 0x4A, 0x03, 0x4D, +0xEC, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0x2A, 0xF7, 0x7C, 0x9A, 0x2A, 0xF7, +0x74, 0xDA, 0x1F, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF6, 0xFC, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xB0, 0x67, 0x69, 0xF3, 0x08, 0x4C, 0x58, 0x6E, +0x80, 0x18, 0x05, 0x56, 0xC2, 0xF5, 0x12, 0x48, +0x30, 0xF0, 0x20, 0x6B, 0x08, 0x30, 0xA5, 0xF6, +0x08, 0x4B, 0x6D, 0xE0, 0x41, 0xDB, 0x09, 0x10, +0x00, 0x6C, 0xB0, 0x67, 0xC4, 0x67, 0x03, 0x10, +0x01, 0x6C, 0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, +0xD3, 0x0B, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x04, 0x67, +0x4C, 0xE8, 0xAC, 0xEA, 0x0E, 0x22, 0x08, 0x6A, +0x04, 0x31, 0x4D, 0xE9, 0x01, 0x6B, 0x44, 0x40, +0x64, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF3, +0x08, 0x4A, 0x06, 0xD2, 0x6D, 0xE9, 0x06, 0x6A, +0x0D, 0x10, 0x08, 0x6A, 0x04, 0x31, 0x4D, 0xE9, +0x01, 0x6B, 0x44, 0x40, 0x64, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x69, 0xF3, 0x08, 0x4A, 0x06, 0xD2, +0x6D, 0xE9, 0x04, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x06, 0x94, 0x23, 0xF0, 0xEC, 0x9A, +0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, 0x78, 0x56, +0x06, 0x94, 0x08, 0xF0, 0x00, 0x6F, 0x01, 0x6B, +0x8F, 0x6E, 0xB0, 0x67, 0x04, 0xD3, 0x80, 0x18, +0x78, 0x56, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x01, 0x6C, +0x80, 0x18, 0xAD, 0x0B, 0x90, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x15, 0x0B, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, 0xD1, 0x67, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x01, 0x6D, 0xC1, 0x41, 0xAB, 0xED, 0x03, 0xF3, +0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xEF, 0x6E, 0x10, 0x6F, +0x00, 0x6A, 0x69, 0xF3, 0x08, 0x4C, 0xB0, 0x67, +0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, 0x01, 0x6D, +0x90, 0x67, 0x80, 0x18, 0x15, 0x0B, 0x00, 0x6C, +0x80, 0x18, 0xAD, 0x0B, 0x90, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x36, 0x0F, 0x22, 0x67, 0x04, 0x2A, +0x01, 0x6C, 0xB0, 0x67, 0x80, 0x18, 0xD9, 0x0F, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0x41, 0xE0, 0xCA, 0xF3, 0x25, 0xC0, 0x51, 0x67, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x04, 0x67, +0x4C, 0xED, 0x4C, 0xE8, 0x30, 0xF0, 0x21, 0x6A, +0x50, 0xF2, 0x5D, 0xA2, 0x06, 0x6B, 0x08, 0xD5, +0x4E, 0xEB, 0x01, 0x5B, 0x98, 0x67, 0x07, 0xD4, +0x16, 0x2D, 0x04, 0x24, 0xFF, 0x6A, 0x04, 0x33, +0x01, 0x4A, 0x03, 0x10, 0x04, 0x4A, 0x04, 0x33, +0x40, 0x32, 0x4D, 0xEB, 0x84, 0x40, 0x01, 0x6A, +0x44, 0xEC, 0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0x69, 0xF3, 0x08, 0x4A, 0x08, 0x69, 0x06, 0xD2, +0x6D, 0xE9, 0x04, 0x6A, 0x19, 0x10, 0x08, 0x93, +0x01, 0x73, 0x22, 0x61, 0x07, 0x94, 0x04, 0x24, +0xFF, 0x6A, 0x04, 0x33, 0x01, 0x4A, 0x03, 0x10, +0x07, 0x4A, 0x04, 0x33, 0x40, 0x32, 0x4D, 0xEB, +0x84, 0x40, 0x01, 0x6A, 0x44, 0xEC, 0x4D, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF3, 0x08, 0x4A, +0x08, 0x69, 0x06, 0xD2, 0x6D, 0xE9, 0x06, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0x94, +0x23, 0xF0, 0xEC, 0x9A, 0xB0, 0x67, 0x00, 0x6E, +0x80, 0x18, 0x78, 0x56, 0x01, 0x6A, 0x25, 0x10, +0x08, 0x93, 0x00, 0x69, 0x02, 0x73, 0x2F, 0x61, +0x07, 0x94, 0x04, 0x24, 0xFF, 0x6A, 0x04, 0x33, +0x01, 0x4A, 0x03, 0x10, 0x0A, 0x4A, 0x04, 0x33, +0x40, 0x32, 0x4D, 0xEB, 0x84, 0x40, 0x01, 0x6A, +0x44, 0xEC, 0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0x69, 0xF3, 0x08, 0x4A, 0x06, 0xD2, 0x07, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0x94, +0x23, 0xF0, 0xEC, 0x9A, 0x08, 0x69, 0xB0, 0x67, +0x00, 0x6E, 0x6D, 0xE9, 0x80, 0x18, 0x78, 0x56, +0x00, 0x6A, 0x06, 0x94, 0xB0, 0x67, 0x8F, 0x6E, +0x08, 0xF0, 0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x78, 0x56, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x01, 0x6C, +0x80, 0x18, 0xAD, 0x0B, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0xD1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF3, 0x44, 0x9C, +0x01, 0x6D, 0xC1, 0x41, 0xAB, 0xED, 0x03, 0xF3, +0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, 0x40, 0xEA, +0x01, 0x6D, 0x90, 0x67, 0x80, 0x18, 0x36, 0x0F, +0x00, 0x6C, 0x06, 0xD2, 0x80, 0x18, 0xAD, 0x0B, +0x04, 0x32, 0x09, 0xD2, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x09, 0x93, 0x01, 0x6D, +0x08, 0x6E, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x6D, 0xEE, 0x40, 0xEA, 0x08, 0x94, 0x1C, 0x2C, +0x7D, 0x67, 0x87, 0x43, 0x11, 0x4C, 0x60, 0xA4, +0x30, 0xF0, 0x20, 0x69, 0x95, 0xF3, 0x44, 0x40, +0x06, 0x94, 0x44, 0x32, 0xA5, 0xF6, 0x08, 0x49, +0x29, 0xE2, 0x64, 0xC2, 0x48, 0x2C, 0x07, 0x92, +0x09, 0x22, 0x01, 0x6D, 0x23, 0xF3, 0x18, 0x4C, +0xAB, 0xED, 0x80, 0x18, 0xA1, 0x19, 0xC2, 0xF5, +0x1E, 0x48, 0x35, 0x10, 0x02, 0x6C, 0x38, 0x10, +0x08, 0x93, 0x02, 0x73, 0x38, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF6, 0xFC, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x69, 0xA5, 0xF6, +0x08, 0x49, 0x69, 0xF3, 0x08, 0x4C, 0xB0, 0x67, +0x00, 0x6E, 0x80, 0x18, 0x05, 0x56, 0xAA, 0xF3, +0x9A, 0xA1, 0xFF, 0x6B, 0x56, 0x32, 0x6C, 0xEA, +0x80, 0x34, 0xA5, 0xF3, 0x60, 0x40, 0x8D, 0xEA, +0x64, 0x33, 0x09, 0x94, 0x2D, 0xE3, 0x42, 0xCB, +0x7D, 0x67, 0x29, 0xE4, 0x87, 0x43, 0x11, 0x4C, +0x60, 0xA4, 0x06, 0x94, 0x2A, 0xF7, 0x6D, 0xC2, +0x12, 0x2C, 0x07, 0x92, 0x0C, 0x22, 0x01, 0x6D, +0x23, 0xF3, 0x1C, 0x4C, 0xAB, 0xED, 0x80, 0x18, +0xA1, 0x19, 0xE2, 0xF5, 0x00, 0x48, 0x08, 0x30, +0x25, 0xE0, 0x41, 0xD9, 0x04, 0x10, 0x03, 0x6C, +0xB0, 0x67, 0x80, 0x18, 0xD9, 0x0F, 0x06, 0x92, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF7, 0x63, 0x11, 0x62, +0x10, 0xD1, 0x0F, 0xD0, 0xFF, 0x6A, 0x04, 0x67, +0x4C, 0xE8, 0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0xAA, 0xF3, 0x75, 0xA2, +0x0C, 0xD5, 0x00, 0x69, 0x0D, 0xD3, 0xE1, 0xF2, +0x69, 0x40, 0x6C, 0x33, 0x69, 0xE2, 0x04, 0x4A, +0x0A, 0xD2, 0x30, 0xF0, 0x21, 0x6A, 0x30, 0xF6, +0x04, 0x4A, 0x08, 0xD2, 0x09, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF6, 0x1C, 0x4A, 0xE0, 0x9A, +0xFF, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x2C, 0xEB, +0x69, 0xF3, 0x08, 0x48, 0x90, 0x67, 0xA3, 0x67, +0xDF, 0x6E, 0x06, 0xD3, 0x80, 0x18, 0x05, 0x56, +0x10, 0x6B, 0x4D, 0xEB, 0x04, 0xD3, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF6, 0x1C, 0x4B, 0xE0, 0x9B, +0x06, 0x95, 0x90, 0x67, 0xDF, 0x6E, 0x80, 0x18, +0x78, 0x56, 0x0A, 0x93, 0x06, 0x95, 0x90, 0x67, +0x40, 0x9B, 0x58, 0x6E, 0x30, 0xF0, 0x20, 0x68, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, +0x1C, 0x4A, 0xE0, 0x9A, 0x80, 0x18, 0x78, 0x56, +0xC0, 0xF3, 0x44, 0x98, 0x08, 0x6B, 0x24, 0x36, +0x01, 0x6D, 0x6D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x0D, 0x93, 0x06, 0x73, 0x1C, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF6, 0xBC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x08, 0x93, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xC0, 0x9B, 0x23, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x08, 0x93, +0x01, 0x6D, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, +0x1C, 0x6C, 0xAB, 0xED, 0xC2, 0x9B, 0x21, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF6, 0xBC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF5, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, 0x18, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF5, 0x1C, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xC0, 0x9B, 0x01, 0x6D, 0x23, 0xF3, 0x1C, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x0C, 0x92, 0x06, 0x22, +0x00, 0x6B, 0x01, 0x72, 0x06, 0xD3, 0xC0, 0xF0, +0x05, 0x61, 0x62, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x82, 0xF6, 0xB0, 0x9B, 0x44, 0x68, 0x23, 0xF3, +0x00, 0x6C, 0x03, 0x6E, 0x40, 0xEA, 0x18, 0xE9, +0x09, 0x93, 0x88, 0x6A, 0x12, 0xE8, 0x58, 0xEB, +0x12, 0xEA, 0x41, 0xE0, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0x01, 0xE2, 0x00, 0x6A, +0x0A, 0xF5, 0x0C, 0x48, 0x06, 0xD2, 0xC0, 0xA8, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, 0x44, 0x9A, +0x06, 0x93, 0xC0, 0x36, 0x4D, 0xEE, 0x68, 0x32, +0x4D, 0xEE, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, +0xAB, 0xED, 0x02, 0x4E, 0x40, 0xEA, 0x06, 0x92, +0x02, 0x48, 0x01, 0x4A, 0x11, 0x72, 0x06, 0xD2, +0xE6, 0x61, 0x44, 0x68, 0x18, 0xE9, 0x09, 0x93, +0x88, 0x6A, 0x12, 0xE8, 0x58, 0xEB, 0x12, 0xEA, +0x41, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0x01, 0xE2, 0x00, 0x6A, 0x0A, 0xF6, +0x1C, 0x48, 0x06, 0xD2, 0xC0, 0xA8, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF7, 0x44, 0x9A, 0xC0, 0x36, +0x01, 0x6D, 0x4D, 0xEE, 0x06, 0x92, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x48, 0x33, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x6D, 0xEE, +0x02, 0x48, 0x40, 0xEA, 0x06, 0x93, 0x01, 0x4B, +0x11, 0x73, 0x06, 0xD3, 0xE7, 0x61, 0xE2, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x82, 0xF6, 0xB0, 0x9B, +0x44, 0x68, 0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0x18, 0xE9, 0x09, 0x93, 0x88, 0x6A, +0x12, 0xE8, 0x58, 0xEB, 0x12, 0xEA, 0x41, 0xE0, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0x01, 0xE2, 0x00, 0x6A, 0x2A, 0xF5, 0x0E, 0x48, +0x06, 0xD2, 0xC0, 0xA8, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF7, 0x48, 0x9A, 0x06, 0x93, 0xC0, 0x36, +0x4D, 0xEE, 0x68, 0x32, 0x4D, 0xEE, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, +0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x02, 0x4E, +0x40, 0xEA, 0x06, 0x92, 0x02, 0x48, 0x01, 0x4A, +0x11, 0x72, 0x06, 0xD2, 0xE6, 0x61, 0x44, 0x68, +0x18, 0xE9, 0x09, 0x93, 0x88, 0x6A, 0x12, 0xE8, +0x58, 0xEB, 0x12, 0xEA, 0x41, 0xE0, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, 0x01, 0xE2, +0x00, 0x6A, 0x2A, 0xF6, 0x1E, 0x48, 0x06, 0xD2, +0xC0, 0xA8, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, +0x48, 0x9A, 0xC0, 0x36, 0x01, 0x6D, 0x4D, 0xEE, +0x06, 0x92, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x48, 0x33, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x6D, 0xEE, 0x02, 0x48, 0x40, 0xEA, +0x06, 0x93, 0x01, 0x4B, 0x11, 0x73, 0x06, 0xD3, +0xE7, 0x61, 0x80, 0x10, 0x0B, 0xD1, 0x06, 0x93, +0xFF, 0x6A, 0x6C, 0xEA, 0x11, 0x2A, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x82, 0xF6, 0xB0, 0x9B, 0x23, 0xF3, +0x00, 0x6C, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF7, 0x44, 0x9A, 0x10, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x82, 0xF6, 0xB0, 0x9B, +0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, 0x48, 0x9A, +0x07, 0xD2, 0x06, 0x92, 0x22, 0x68, 0x0B, 0x93, +0x18, 0xEA, 0x44, 0x6A, 0x00, 0x69, 0x12, 0xE8, +0x58, 0xEB, 0x09, 0x93, 0x12, 0xEA, 0x41, 0xE0, +0x88, 0x6A, 0x58, 0xEB, 0x12, 0xEA, 0x41, 0xE0, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0x01, 0xE2, 0x0A, 0xF5, 0x0C, 0x48, 0xC0, 0xA8, +0x07, 0x92, 0x01, 0x6D, 0xC0, 0x36, 0x4D, 0xEE, +0x28, 0x32, 0x4D, 0xEE, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0xC3, 0xF3, 0x18, 0x6C, +0xAB, 0xED, 0x02, 0x4E, 0x01, 0x49, 0x40, 0xEA, +0x11, 0x71, 0x02, 0x48, 0xEC, 0x61, 0x06, 0x92, +0x22, 0x68, 0x0B, 0x93, 0x18, 0xEA, 0x44, 0x6A, +0x00, 0x69, 0x12, 0xE8, 0x58, 0xEB, 0x09, 0x93, +0x12, 0xEA, 0x41, 0xE0, 0x88, 0x6A, 0x58, 0xEB, +0x12, 0xEA, 0x41, 0xE0, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0x01, 0xE2, 0x0A, 0xF6, +0x1C, 0x48, 0xC0, 0xA8, 0x07, 0x92, 0x28, 0x33, +0xC0, 0x36, 0x4D, 0xEE, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x6D, 0xEE, 0x01, 0x49, +0x40, 0xEA, 0x11, 0x71, 0x02, 0x48, 0xED, 0x61, +0x06, 0x93, 0x01, 0x4B, 0x02, 0x73, 0x06, 0xD3, +0x82, 0x61, 0x0B, 0x91, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0x82, 0xF6, 0xC4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x82, 0xF6, +0xB0, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x00, 0x6A, 0x06, 0xD2, 0x06, 0x92, +0xFF, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x6C, 0xEA, +0x06, 0x93, 0x07, 0xD2, 0x01, 0x6D, 0x64, 0x36, +0xC0, 0xF3, 0x64, 0x98, 0x08, 0x6A, 0x4D, 0xEE, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF6, 0xBC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF5, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF5, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, +0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, +0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x03, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x07, 0x95, +0x23, 0xF0, 0xEC, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x69, 0xF3, 0x08, 0x4C, 0x00, 0x6E, 0x80, 0x18, +0x78, 0x56, 0x06, 0x92, 0x01, 0x4A, 0x02, 0x72, +0x06, 0xD2, 0xA9, 0x61, 0x0A, 0x93, 0x08, 0x92, +0x01, 0x49, 0x04, 0x4B, 0x04, 0x4A, 0x02, 0x71, +0x0A, 0xD3, 0x08, 0xD2, 0xBF, 0xF5, 0x1B, 0x61, +0x11, 0x97, 0x10, 0x91, 0x0F, 0x90, 0x09, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x68, 0xA5, 0xF6, 0x08, 0x48, 0x00, 0x6B, +0x8C, 0xEA, 0x6A, 0xF7, 0x78, 0xC0, 0x2A, 0x2A, +0xAA, 0xF3, 0x56, 0xA0, 0x27, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF6, 0xFC, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x69, 0xF3, 0x08, 0x4C, 0x00, 0x6D, +0x18, 0x6E, 0x80, 0x18, 0x05, 0x56, 0x2A, 0xF7, +0x74, 0x98, 0x2A, 0xF7, 0x5C, 0xD8, 0x00, 0x69, +0x4E, 0xEB, 0x05, 0x23, 0x2A, 0xF7, 0x78, 0x98, +0x6E, 0xEA, 0x10, 0x2A, 0x01, 0x69, 0x02, 0x6D, +0x91, 0x67, 0x80, 0x18, 0x05, 0x11, 0x91, 0x67, +0x80, 0x18, 0xB3, 0x07, 0x01, 0x6C, 0x80, 0x18, +0xE5, 0x07, 0x01, 0x6B, 0x30, 0xF0, 0x21, 0x6A, +0x30, 0xF6, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x08, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x69, 0x30, 0xF0, 0x20, 0x6B, +0xA5, 0xF6, 0x08, 0x49, 0x42, 0xF5, 0x0C, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x6A, 0xF7, +0xD8, 0xA1, 0xE3, 0xF3, 0x10, 0x6C, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x0A, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF5, 0x0C, 0x4B, +0xC0, 0xF3, 0x44, 0x98, 0x6A, 0xF7, 0xD8, 0xA1, +0xA0, 0x9B, 0xE3, 0xF3, 0x10, 0x6C, 0x40, 0xEA, +0x6A, 0xF7, 0x58, 0xA1, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, 0xBC, 0x9A, +0x63, 0xF6, 0x1C, 0x6C, 0x80, 0x18, 0xA1, 0x19, +0x06, 0x22, 0x01, 0x6B, 0x30, 0xF0, 0x21, 0x6A, +0x10, 0xF6, 0x64, 0xC2, 0x04, 0x10, 0x30, 0xF0, +0x21, 0x6B, 0x10, 0xF6, 0x44, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF6, 0x1C, 0x4A, 0xE0, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0x69, 0xF3, 0x08, 0x48, +0x90, 0x67, 0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, +0x05, 0x56, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF6, +0x1C, 0x4B, 0xE0, 0x9B, 0x90, 0x67, 0x00, 0x6D, +0x18, 0x6E, 0x22, 0x67, 0x80, 0x18, 0x05, 0x56, +0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, +0x2A, 0xF7, 0x5C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF5, 0x4C, 0x9A, 0xCA, 0xF3, 0x23, 0xC3, +0x2C, 0xEA, 0x42, 0x32, 0x42, 0x32, 0xCA, 0xF3, +0x42, 0xC3, 0x06, 0xF0, 0x00, 0x6A, 0x2C, 0xEA, +0x42, 0x32, 0x52, 0x32, 0xCA, 0xF3, 0x44, 0xC3, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, 0x80, 0x18, +0x70, 0x12, 0x00, 0x6C, 0x80, 0x18, 0xE5, 0x07, +0x03, 0x28, 0x00, 0x6C, 0xA4, 0x67, 0x07, 0x10, +0x01, 0x70, 0x03, 0x61, 0x00, 0x6C, 0x01, 0x6D, +0x02, 0x10, 0x00, 0x6C, 0x02, 0x6D, 0x80, 0x18, +0x05, 0x11, 0x01, 0x6C, 0x80, 0x18, 0xE5, 0x07, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x24, 0x67, 0x4C, 0xE9, 0xAC, 0xEA, +0x01, 0x72, 0x43, 0x61, 0x44, 0x41, 0x01, 0x6B, +0x64, 0xEA, 0x00, 0xF2, 0x08, 0x6A, 0x4D, 0xEB, +0x04, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF0, 0xEC, 0x9A, 0x30, 0xF0, 0x20, 0x68, +0x69, 0xF3, 0x08, 0x48, 0x90, 0x67, 0xB1, 0x67, +0x00, 0x6E, 0x06, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x01, 0x6C, 0x08, 0xF0, 0x00, 0x6F, 0xB1, 0x67, +0x04, 0xD4, 0x8F, 0x6E, 0x90, 0x67, 0x80, 0x18, +0x78, 0x56, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x0A, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x06, 0x96, +0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x06, 0x96, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xAB, 0xED, 0x01, 0x4E, 0x03, 0xF3, +0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, 0x40, 0xEA, +0x91, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x36, 0x0F, +0xF0, 0x10, 0x02, 0x72, 0x01, 0x6A, 0xE0, 0xF0, +0x0C, 0x61, 0x30, 0xF0, 0x21, 0x6A, 0x70, 0xF2, +0x42, 0xA2, 0x00, 0x68, 0x09, 0x72, 0x0C, 0x60, +0x12, 0x72, 0x01, 0x68, 0x09, 0x60, 0x1B, 0x72, +0x02, 0x68, 0x06, 0x60, 0x24, 0x68, 0x4E, 0xE8, +0x01, 0x58, 0x18, 0x67, 0x04, 0x6A, 0x03, 0xE2, +0x24, 0x32, 0x08, 0xD2, 0x08, 0x93, 0x08, 0x6A, +0x30, 0xF0, 0x20, 0x6C, 0x4D, 0xEB, 0xC0, 0xF3, +0x44, 0x9C, 0x01, 0x6D, 0xC3, 0x67, 0x08, 0xD3, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9B, 0x06, 0x93, 0x01, 0x6D, 0xAB, 0xED, +0xAA, 0xF3, 0xDA, 0xA3, 0xC3, 0xF3, 0x0C, 0x6C, +0x40, 0xEA, 0x44, 0x41, 0x01, 0x6C, 0x30, 0xF0, +0x20, 0x6B, 0x84, 0xEA, 0x00, 0xF3, 0x08, 0x6A, +0x4D, 0xEC, 0x80, 0xF3, 0x4C, 0x9B, 0x07, 0xD4, +0x0A, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0xC0, 0xF3, 0x44, 0x9C, 0x07, 0x96, 0x01, 0x6D, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x07, 0x96, 0xC0, 0xF3, +0x44, 0x9B, 0x01, 0x6D, 0xAB, 0xED, 0x01, 0x4E, +0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6C, 0x80, 0xF3, 0x4C, 0x9C, 0xC8, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF6, +0x1C, 0x4B, 0xE0, 0x9B, 0x30, 0xF0, 0x20, 0x6A, +0x69, 0xF3, 0x08, 0x4A, 0x82, 0x67, 0xB1, 0x67, +0x00, 0x6E, 0x07, 0xD2, 0x80, 0x18, 0x05, 0x56, +0x91, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x36, 0x0F, +0x01, 0x72, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF2, 0x1C, 0x4A, 0x41, 0xE0, 0x40, 0xA0, +0x06, 0x94, 0xAA, 0xF3, 0x5A, 0xC4, 0x70, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x1C, 0x4A, +0x07, 0x94, 0xE0, 0x9A, 0xB1, 0x67, 0x00, 0x6E, +0x80, 0x18, 0x05, 0x56, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0x67, 0x08, 0x96, 0xC0, 0xF3, 0x44, 0x9B, +0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0xE3, 0xF7, 0x00, 0x6A, 0x2C, 0xEA, +0x06, 0x93, 0x56, 0x34, 0x96, 0x32, 0xAA, 0xF3, +0x5C, 0xDB, 0x1F, 0x6A, 0x8C, 0xEA, 0x02, 0x5A, +0xFF, 0x6B, 0x0B, 0x60, 0x03, 0x70, 0x03, 0x60, +0x01, 0x48, 0x6C, 0xE8, 0x4F, 0x10, 0x06, 0x94, +0x01, 0x6B, 0x03, 0x68, 0x6A, 0xF7, 0x71, 0xC4, +0x49, 0x10, 0x0A, 0x5A, 0x0B, 0x61, 0x04, 0x20, +0xFF, 0x48, 0x6C, 0xE8, 0x01, 0x6B, 0x0B, 0x10, +0x06, 0x94, 0x01, 0x6B, 0x6A, 0xF7, 0x71, 0xC4, +0x01, 0x6B, 0x09, 0x10, 0x06, 0x94, 0x00, 0x6B, +0x6A, 0xF7, 0x71, 0xC4, 0x00, 0x6B, 0x03, 0x20, +0x04, 0x58, 0x01, 0x61, 0x03, 0x68, 0x30, 0xF0, +0x20, 0x6C, 0xA5, 0xF6, 0x08, 0x4C, 0x6A, 0xF7, +0xB1, 0xA4, 0x01, 0x5D, 0xB8, 0x67, 0xAB, 0xED, +0xAC, 0xEB, 0x30, 0xF0, 0x20, 0x6D, 0x42, 0xF2, +0x1C, 0x4D, 0xA1, 0xE0, 0xA0, 0xA0, 0xAA, 0xF3, +0xBA, 0xC4, 0x0F, 0x2B, 0xAA, 0xF3, 0xDA, 0xA4, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x64, 0x9B, +0xC0, 0x36, 0x01, 0x6D, 0x4D, 0xEE, 0xE3, 0xF3, +0x08, 0x6C, 0xAB, 0xED, 0x40, 0xEB, 0x00, 0x6A, +0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x01, 0x6D, 0xE3, 0xF3, 0x08, 0x6C, +0xAB, 0xED, 0xFF, 0xF7, 0x1F, 0x6E, 0x40, 0xEA, +0x01, 0x6A, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0x01, 0x6B, 0xC8, 0x17, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x21, 0x6A, 0x50, 0xF2, 0x7F, 0xA2, 0xFF, 0x68, +0x8C, 0xE8, 0x06, 0x5B, 0x01, 0x6A, 0x7C, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x68, 0x33, 0x22, 0xF2, +0x0C, 0x4A, 0x69, 0xE2, 0x40, 0x9A, 0x00, 0xEA, +0x90, 0x67, 0x80, 0x18, 0xE1, 0x0C, 0x90, 0x67, +0x01, 0x6D, 0x80, 0x18, 0x37, 0x10, 0x62, 0x10, +0x90, 0x67, 0x80, 0x18, 0x8F, 0x0C, 0x90, 0x67, +0x01, 0x6D, 0x80, 0x18, 0x7B, 0x10, 0x52, 0x22, +0x03, 0x6C, 0x98, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0xA5, 0xF6, 0x08, 0x4B, 0x12, 0xEC, 0x71, 0xE4, +0x4A, 0xF7, 0xBE, 0xA4, 0x02, 0x5D, 0x04, 0x60, +0x01, 0x4D, 0x4A, 0xF7, 0xBE, 0xC4, 0xEB, 0x17, +0x61, 0xE0, 0x01, 0x6C, 0x39, 0x10, 0x90, 0x67, +0x01, 0x6D, 0x80, 0x18, 0x26, 0x0C, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, 0x00, 0x6B, +0x6A, 0xF7, 0x71, 0xC2, 0x90, 0x67, 0x02, 0x6D, +0x80, 0x18, 0xA6, 0x12, 0x2F, 0x22, 0x30, 0xF0, +0x20, 0x6B, 0x04, 0x34, 0xA5, 0xF6, 0x08, 0x4B, +0x6D, 0xE4, 0x6A, 0xF7, 0x8A, 0xA3, 0x0A, 0x5C, +0x25, 0x60, 0x01, 0x4C, 0x6A, 0xF7, 0x8A, 0xC3, +0xED, 0x17, 0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, +0x26, 0x0C, 0x90, 0x67, 0x02, 0x6D, 0x80, 0x18, +0x7B, 0x10, 0x18, 0x22, 0x03, 0x6C, 0x98, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, +0x12, 0xEC, 0x71, 0xE4, 0x4A, 0xF7, 0xBF, 0xA4, +0x02, 0x5D, 0x04, 0x60, 0x01, 0x4D, 0x4A, 0xF7, +0xBF, 0xC4, 0xEB, 0x17, 0x61, 0xE0, 0x02, 0x6C, +0xEA, 0xF4, 0x90, 0xC0, 0x06, 0x6C, 0xAA, 0xF3, +0x97, 0xC3, 0x12, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xA5, 0xF6, 0x08, 0x4B, 0xAA, 0xF3, 0x97, 0xA3, +0x01, 0x4C, 0xF5, 0x17, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0xAA, 0xF3, 0x77, 0xA2, +0x01, 0x4B, 0xAA, 0xF3, 0x77, 0xC2, 0x01, 0x6A, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0xAA, 0xF3, 0x75, 0xA2, 0xAA, 0xF3, 0x58, 0xA2, +0x08, 0xD3, 0x06, 0x5A, 0x76, 0x60, 0x30, 0xF0, +0x20, 0x6B, 0x48, 0x32, 0x42, 0xF2, 0x04, 0x4B, +0x4D, 0xE3, 0x40, 0x9B, 0x00, 0xEA, 0x00, 0x6C, +0x80, 0x18, 0x48, 0x13, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0xAA, 0xF3, 0x77, 0xA2, +0x06, 0x73, 0xF5, 0x61, 0x2A, 0x10, 0x00, 0x6C, +0x80, 0x18, 0xD1, 0x0D, 0x00, 0x6C, 0xA4, 0x67, +0x37, 0x10, 0x00, 0x6C, 0x80, 0x18, 0x99, 0x0D, +0x00, 0x6C, 0xA4, 0x67, 0x80, 0x18, 0x7B, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, +0xCA, 0xF3, 0x80, 0xA3, 0x01, 0x4C, 0xCA, 0xF3, +0x80, 0xC3, 0x42, 0x22, 0x4A, 0xF7, 0x5D, 0xA3, +0x03, 0x5A, 0x3E, 0x60, 0x01, 0x4A, 0x4A, 0xF7, +0x5D, 0xC3, 0x43, 0x10, 0x01, 0x6C, 0x80, 0x18, +0x48, 0x13, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0xAA, 0xF3, 0x77, 0xA2, 0x06, 0x73, +0xF5, 0x61, 0xAA, 0xF3, 0x78, 0xA2, 0x01, 0x4B, +0xAA, 0xF3, 0x78, 0xC2, 0x78, 0x67, 0xAA, 0xF3, +0x77, 0xC2, 0xCA, 0xF3, 0x60, 0xA2, 0x01, 0x4B, +0xCA, 0xF3, 0x60, 0xC2, 0x2A, 0x10, 0x01, 0x6C, +0x80, 0x18, 0xD1, 0x0D, 0x01, 0x6C, 0x00, 0x6D, +0x80, 0x18, 0x37, 0x10, 0x19, 0x10, 0x01, 0x6C, +0x80, 0x18, 0x99, 0x0D, 0x01, 0x6C, 0x00, 0x6D, +0x80, 0x18, 0x7B, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xA5, 0xF6, 0x08, 0x4B, 0xCA, 0xF3, 0x80, 0xA3, +0x01, 0x4C, 0xCA, 0xF3, 0x80, 0xC3, 0x08, 0x22, +0x6A, 0xF7, 0x40, 0xA3, 0x03, 0x5A, 0x04, 0x60, +0x01, 0x4A, 0x6A, 0xF7, 0x40, 0xC3, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0xAA, 0xF3, 0x78, 0xA2, 0x01, 0x4B, 0xAA, 0xF3, +0x78, 0xC2, 0x30, 0xF0, 0x21, 0x6A, 0x70, 0xF2, +0x40, 0xA2, 0x06, 0x72, 0x80, 0xF0, 0x08, 0x61, +0x30, 0xF0, 0x21, 0x69, 0x00, 0x6A, 0x30, 0xF6, +0x04, 0x49, 0x06, 0xD2, 0x06, 0x92, 0xFF, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0x6C, 0xEA, 0x06, 0x93, +0x07, 0xD2, 0x01, 0x6D, 0x64, 0x36, 0xC0, 0xF3, +0x64, 0x98, 0x08, 0x6A, 0x4D, 0xEE, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF7, 0xB8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, +0x0C, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x08, 0x92, 0x06, 0x72, 0x1A, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0xF6, 0xBC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x99, +0x01, 0x6D, 0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x01, 0x6D, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, 0xC2, 0x99, +0x21, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF6, +0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, +0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF5, 0x1C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF5, 0x1C, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xC0, 0x9B, 0x01, 0x6D, 0x23, 0xF3, +0x1C, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF7, +0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, 0xA3, 0xF3, +0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x03, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x07, 0x95, +0x23, 0xF0, 0xEC, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x69, 0xF3, 0x08, 0x4C, 0x00, 0x6E, 0x80, 0x18, +0x78, 0x56, 0x06, 0x92, 0x04, 0x49, 0x01, 0x4A, +0x02, 0x72, 0x06, 0xD2, 0x7F, 0xF7, 0x1E, 0x61, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x21, 0x6A, +0x50, 0xF2, 0x5D, 0xA2, 0xFF, 0x69, 0x8C, 0xE9, +0x02, 0x72, 0x02, 0x6A, 0x05, 0xD2, 0x02, 0x60, +0x04, 0x6B, 0x05, 0xD3, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x08, 0x6E, 0x03, 0xF3, +0x00, 0x6C, 0x0F, 0x6D, 0x40, 0xEA, 0x01, 0x6D, +0x03, 0xF3, 0x08, 0x6C, 0xAB, 0xED, 0x80, 0x18, +0xA1, 0x19, 0x04, 0xD2, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x00, 0x6C, 0x06, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x08, 0x6C, 0x80, 0x6D, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, +0x06, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, 0x80, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0x00, 0x68, 0x91, 0x67, +0x80, 0x18, 0x8E, 0x13, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0xAA, 0xF3, 0x78, 0xA2, +0x06, 0x73, 0x0B, 0x60, 0x05, 0x21, 0xCA, 0xF3, +0x40, 0xA2, 0x05, 0x93, 0x6E, 0xEA, 0x05, 0x22, +0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, 0x64, 0x70, +0xEA, 0x61, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x06, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x04, 0x96, 0x03, 0xF3, 0x08, 0x69, 0x01, 0x6D, +0x91, 0x67, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x06, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x04, 0x96, 0x01, 0x6D, 0x91, 0x67, 0xAB, 0xED, +0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0xFC, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x69, 0xF3, 0x08, 0x4C, +0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, 0x05, 0x56, +0x30, 0xF0, 0x20, 0x6B, 0x06, 0xF0, 0x00, 0x6C, +0xA5, 0xF6, 0x08, 0x4B, 0x4C, 0xEC, 0x2A, 0xF7, +0x5C, 0xDB, 0x82, 0x32, 0x52, 0x32, 0x02, 0x72, +0x0A, 0x60, 0x03, 0x6C, 0x4E, 0xEC, 0x04, 0x24, +0x01, 0x72, 0x02, 0x6A, 0x07, 0x60, 0x05, 0x10, +0xAA, 0xF3, 0x95, 0xC3, 0x05, 0x10, 0x01, 0x6A, +0x01, 0x10, 0x00, 0x6A, 0xAA, 0xF3, 0x55, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF5, 0x6C, 0x9B, +0x2A, 0xF7, 0x9C, 0x9A, 0x8C, 0xEB, 0x62, 0x33, +0x62, 0x33, 0xAA, 0xF3, 0x74, 0xC2, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xF1, 0x63, 0x1D, 0x62, +0x1C, 0xD1, 0x1B, 0xD0, 0x08, 0xA4, 0x02, 0x6A, +0x01, 0x69, 0x0C, 0xEA, 0x46, 0x32, 0x18, 0xD2, +0x80, 0x18, 0x07, 0x07, 0x80, 0x18, 0x57, 0x14, +0x80, 0x18, 0x70, 0x12, 0x00, 0x6C, 0x80, 0x18, +0xE5, 0x07, 0x90, 0x67, 0x2C, 0xEC, 0x00, 0x6D, +0x80, 0x18, 0x39, 0x12, 0x80, 0xF0, 0x00, 0x2A, +0x30, 0xF0, 0x20, 0x68, 0xA5, 0xF6, 0x08, 0x48, +0xAA, 0xF3, 0x76, 0xA0, 0xAA, 0xF3, 0x58, 0xC0, +0xAA, 0xF3, 0x57, 0xC0, 0x01, 0x4B, 0xAA, 0xF3, +0x76, 0xC0, 0xCA, 0xF3, 0x40, 0xC0, 0xCA, 0xF3, +0x21, 0xC0, 0x38, 0x6C, 0x80, 0x18, 0x68, 0x0B, +0x00, 0x6C, 0x6A, 0xF7, 0x54, 0xD8, 0xA4, 0x67, +0x80, 0x18, 0xD9, 0x0F, 0x30, 0xF0, 0x20, 0x6E, +0x30, 0xF0, 0x20, 0x6F, 0x04, 0x04, 0x0D, 0x05, +0xE1, 0xF7, 0x10, 0x4E, 0xE1, 0xF7, 0x1C, 0x4F, +0x80, 0x18, 0xB8, 0x0B, 0x30, 0xF0, 0x20, 0x6D, +0x07, 0x04, 0x42, 0xF0, 0x10, 0x4D, 0x80, 0x18, +0x78, 0x0F, 0x00, 0x68, 0x80, 0x18, 0xDE, 0x0A, +0x01, 0x6C, 0x80, 0x18, 0x21, 0x08, 0x18, 0x94, +0x80, 0x18, 0x1B, 0x14, 0x00, 0x6C, 0x80, 0x18, +0x21, 0x08, 0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF0, +0x10, 0x4C, 0x07, 0x05, 0x80, 0x18, 0x6A, 0x0E, +0x30, 0xF0, 0x20, 0x6E, 0x30, 0xF0, 0x20, 0x6F, +0x04, 0x04, 0x0D, 0x05, 0xE1, 0xF7, 0x10, 0x4E, +0xE1, 0xF7, 0x1C, 0x4F, 0x80, 0x18, 0x9B, 0x0A, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0xAA, 0xF3, 0x78, 0xA2, 0x06, 0x73, 0x08, 0x60, +0xFF, 0x6B, 0x01, 0x48, 0x6C, 0xE8, 0x03, 0x70, +0x00, 0x6B, 0xCA, 0xF3, 0x60, 0xC2, 0xD2, 0x61, +0x30, 0xF0, 0x20, 0x68, 0x00, 0x6C, 0x80, 0x18, +0xB3, 0x07, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x00, 0x6C, 0xFF, 0x6D, 0x08, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x10, 0x69, +0x91, 0x67, 0xFF, 0x6D, 0xAA, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, +0xFF, 0x6D, 0x0A, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0xFF, 0x6D, 0xAA, 0x6E, +0x40, 0xEA, 0x01, 0x6C, 0x80, 0x18, 0xE5, 0x07, +0x1D, 0x97, 0x1C, 0x91, 0x1B, 0x90, 0x00, 0x6A, +0x0F, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x45, 0xF7, +0x10, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6B, +0xA5, 0xF6, 0x08, 0x4B, 0xA0, 0xA4, 0x00, 0xF1, +0xF5, 0xA3, 0x02, 0x6A, 0x01, 0x6E, 0x4B, 0xEA, +0xCC, 0xED, 0xEC, 0xEA, 0xAD, 0xEA, 0x00, 0xF1, +0x55, 0xC3, 0xA1, 0xA4, 0xCC, 0xEA, 0x00, 0xF1, +0xB6, 0xC3, 0xFF, 0x6D, 0x0D, 0x22, 0x61, 0xA4, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF7, 0x50, 0x9A, +0x74, 0x33, 0x40, 0x6C, 0x4D, 0xE3, 0x40, 0xA3, +0xAC, 0xEA, 0x8D, 0xEA, 0xAC, 0xEA, 0x0A, 0x10, +0x61, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF7, +0x50, 0x9A, 0x74, 0x33, 0x4D, 0xE3, 0x80, 0xA3, +0xBF, 0x6A, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, +0xE0, 0x63, 0x3F, 0x62, 0x01, 0x6A, 0x7D, 0x67, +0x4B, 0xEA, 0x50, 0xC3, 0x01, 0x6A, 0x52, 0xC3, +0x08, 0x6A, 0x53, 0xC3, 0xA0, 0xA4, 0x7F, 0x6A, +0xAC, 0xEA, 0x01, 0x72, 0xBE, 0x33, 0x13, 0x61, +0x48, 0xA4, 0xBD, 0x67, 0x54, 0xC5, 0x41, 0xA4, +0x55, 0xC5, 0x42, 0xA4, 0x56, 0xC5, 0x46, 0xA4, +0x58, 0xC5, 0x43, 0xA4, 0x57, 0xC5, 0x47, 0xA4, +0x59, 0xC5, 0x18, 0x23, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF4, 0x40, 0x9A, 0x11, 0x10, 0x12, 0x2A, +0xA9, 0xA4, 0xDD, 0x67, 0xB4, 0xC6, 0xA8, 0xA4, +0x56, 0xC6, 0x57, 0xC6, 0xB5, 0xC6, 0x46, 0xA4, +0x58, 0xC6, 0x87, 0xA4, 0x07, 0x23, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, 0x99, 0xC6, +0x04, 0x04, 0x40, 0xEA, 0x3F, 0x97, 0x20, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF1, 0x40, 0x9A, 0x60, 0xA2, 0x03, 0x6A, +0x6C, 0xEA, 0x10, 0x6B, 0x64, 0xEA, 0xFF, 0x6A, +0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, +0x44, 0x9A, 0x04, 0xD3, 0x40, 0x9A, 0x05, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x48, 0x9A, +0x00, 0x9A, 0x05, 0x92, 0x0A, 0xEA, 0xC0, 0xF0, +0x07, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0xA0, 0xF0, 0x64, 0x9A, 0x02, 0x6C, +0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x30, 0xF0, +0x20, 0x69, 0xA5, 0xF6, 0x08, 0x49, 0xE2, 0xF5, +0x42, 0xA9, 0x00, 0xF7, 0x00, 0x72, 0x07, 0x60, +0xE2, 0xF5, 0x62, 0xA1, 0xE2, 0xF5, 0x83, 0xA1, +0xAF, 0x43, 0x8E, 0xED, 0x13, 0x2D, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF5, 0x74, 0x9A, 0xFF, 0x6C, +0x01, 0x4C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0x63, 0xF3, 0x64, 0x9A, 0x8D, 0xEB, 0x63, 0xF3, +0x64, 0xDA, 0x9A, 0x10, 0x30, 0xF0, 0x20, 0x6D, +0x22, 0xF7, 0xBC, 0x9D, 0x7F, 0x6E, 0xB5, 0xE0, +0xE0, 0xA5, 0xCC, 0xEF, 0x47, 0x2F, 0x00, 0xF4, +0x00, 0x72, 0x80, 0xF0, 0x0D, 0x60, 0xAC, 0x43, +0x8E, 0xED, 0x80, 0xF0, 0x09, 0x25, 0x00, 0xF5, +0x01, 0x72, 0x80, 0xF0, 0x05, 0x60, 0x00, 0xF6, +0x02, 0x72, 0x80, 0xF0, 0x01, 0x60, 0x00, 0xF7, +0x03, 0x72, 0x7E, 0x60, 0x00, 0xF5, 0x00, 0x72, +0x7B, 0x60, 0xFD, 0x4B, 0x6E, 0xEC, 0x78, 0x24, +0x30, 0xF0, 0x20, 0x69, 0xA5, 0xF6, 0x08, 0x49, +0xE2, 0xF5, 0x42, 0xA9, 0x00, 0xF6, 0x01, 0x72, +0x6F, 0x60, 0x00, 0xF7, 0x02, 0x72, 0x6C, 0x60, +0x00, 0xF6, 0x00, 0x72, 0x69, 0x60, 0xE2, 0xF5, +0x62, 0xA1, 0xE2, 0xF5, 0x83, 0xA1, 0xFE, 0x4B, +0x8E, 0xEB, 0x62, 0x23, 0x00, 0xF7, 0x01, 0x72, +0x5F, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, +0x4C, 0x9A, 0x7F, 0x4C, 0x30, 0xF0, 0x20, 0x6D, +0x28, 0x4C, 0x22, 0xF7, 0xBC, 0x9D, 0x49, 0xE0, +0x94, 0x34, 0x60, 0xAA, 0x91, 0xE1, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0x02, 0x4C, +0xB5, 0xE0, 0x13, 0x10, 0x40, 0xA5, 0x4C, 0xEE, +0x01, 0x76, 0x1F, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF1, 0x4C, 0x9A, 0x7F, 0x4C, 0x28, 0x4C, +0x49, 0xE0, 0x60, 0xAA, 0x30, 0xF0, 0x20, 0x6A, +0x94, 0x34, 0x80, 0xF2, 0x4C, 0x9A, 0x91, 0xE1, +0x02, 0x4C, 0xFF, 0x6E, 0x6C, 0xEE, 0x40, 0xEA, +0xE2, 0xF5, 0x43, 0xA1, 0x08, 0x6B, 0x01, 0x4A, +0xE2, 0xF5, 0x43, 0xC1, 0xE2, 0xF5, 0x43, 0xA1, +0x6E, 0xEA, 0x13, 0x2A, 0xE2, 0xF5, 0x43, 0xC1, +0x10, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, +0x94, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF6, +0x7C, 0x9B, 0x40, 0x9C, 0x6D, 0xEA, 0x40, 0xDC, +0x63, 0xF3, 0x44, 0x99, 0x6D, 0xEA, 0x63, 0xF3, +0x44, 0xD9, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, +0x50, 0x9A, 0x04, 0x93, 0x40, 0x9A, 0x0E, 0xEA, +0x61, 0xE0, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF1, 0x54, 0x9A, 0x00, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF1, 0x48, 0x9A, 0x00, 0xDA, +0x05, 0x92, 0x4A, 0xE8, 0x5F, 0xF7, 0x03, 0x61, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFE, 0x63, 0x03, 0xD1, +0x02, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0x63, 0xF3, 0x64, 0x9A, 0x02, 0x6D, +0xAC, 0xEB, 0x40, 0xF1, 0x1E, 0x2B, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF1, 0x78, 0x9B, 0x80, 0xA3, +0x0F, 0x6B, 0x8C, 0xEB, 0x05, 0x23, 0xA0, 0xF0, +0x84, 0x9A, 0xAD, 0xEC, 0xA0, 0xF0, 0x84, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0xE5, 0xF7, 0x5F, 0xA2, +0x00, 0xD2, 0xFF, 0x4A, 0x01, 0xD2, 0x47, 0x11, +0x00, 0x92, 0x06, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x06, 0xF0, 0x40, 0xA2, 0x07, 0x72, 0x09, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0x40, 0xF1, 0x18, 0xA2, 0x01, 0x94, 0x8A, 0xE8, +0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, +0x74, 0x9A, 0xFF, 0x6C, 0x01, 0x4C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0x63, 0xF3, 0x64, 0x9A, +0x8D, 0xEB, 0x63, 0xF3, 0x64, 0xDA, 0x25, 0x11, +0x30, 0xF0, 0x20, 0x6C, 0x45, 0xF5, 0xD6, 0xA4, +0xE3, 0x67, 0xFF, 0x6D, 0xE7, 0xEE, 0xC7, 0x67, +0x01, 0x6F, 0xEC, 0xEE, 0xA0, 0xF0, 0x0A, 0x26, +0x0C, 0x34, 0x89, 0xE2, 0x00, 0xF1, 0x1B, 0x4A, +0x00, 0x6C, 0x30, 0xF0, 0x20, 0x6E, 0x45, 0xF5, +0xF6, 0xA6, 0xFF, 0x6D, 0x1F, 0xF7, 0x00, 0x69, +0xAC, 0xEF, 0x74, 0x4F, 0xE8, 0x37, 0xFD, 0xE4, +0x2C, 0xEF, 0x02, 0xF0, 0x00, 0x77, 0x08, 0x60, +0x45, 0xF5, 0xF6, 0xA6, 0xAC, 0xEF, 0x74, 0x4F, +0xE8, 0x37, 0xFD, 0xE4, 0x2C, 0xEF, 0x0F, 0x2F, +0x30, 0xF0, 0x20, 0x6D, 0x45, 0xF5, 0x36, 0xA5, +0xFF, 0x6D, 0x30, 0xF0, 0x20, 0x6E, 0xAC, 0xE9, +0x74, 0x49, 0x28, 0x31, 0xE4, 0x67, 0x25, 0xE4, +0x22, 0xF5, 0xC4, 0x9E, 0x0B, 0x10, 0x45, 0xF5, +0x36, 0xA6, 0x30, 0xF0, 0x20, 0x6E, 0x22, 0xF5, +0xC8, 0x9E, 0xAC, 0xE9, 0x74, 0x49, 0x28, 0x31, +0xE4, 0x67, 0x25, 0xE4, 0xD9, 0xE1, 0xC0, 0xA6, +0x0C, 0x31, 0xCC, 0xED, 0x30, 0xF0, 0x20, 0x6E, +0xA5, 0xF6, 0x08, 0x4E, 0xD9, 0xE1, 0xF9, 0xE6, +0x00, 0xF1, 0xB7, 0xC6, 0x30, 0xF0, 0x20, 0x6E, +0x45, 0xF5, 0xF6, 0xA6, 0xFF, 0x6D, 0x1F, 0xF7, +0x00, 0x69, 0xAC, 0xEF, 0x7C, 0x4F, 0xE8, 0x37, +0xFD, 0xE4, 0x2C, 0xEF, 0x02, 0xF0, 0x00, 0x77, +0x08, 0x60, 0x45, 0xF5, 0xF6, 0xA6, 0xAC, 0xEF, +0x7C, 0x4F, 0xE8, 0x37, 0xFD, 0xE4, 0x2C, 0xEF, +0x0E, 0x2F, 0x30, 0xF0, 0x20, 0x6D, 0x45, 0xF5, +0xF6, 0xA5, 0xFF, 0x6D, 0x30, 0xF0, 0x20, 0x6E, +0xAC, 0xEF, 0x7C, 0x4F, 0xE8, 0x37, 0xFD, 0xE4, +0x22, 0xF5, 0xC4, 0x9E, 0x0A, 0x10, 0x45, 0xF5, +0xF6, 0xA6, 0x30, 0xF0, 0x20, 0x6E, 0x22, 0xF5, +0xC8, 0x9E, 0xAC, 0xEF, 0x7C, 0x4F, 0xE8, 0x37, +0xFD, 0xE4, 0xD9, 0xE7, 0xC0, 0xA6, 0x01, 0x4C, +0x04, 0x74, 0xCC, 0xED, 0xA0, 0xC2, 0x01, 0x4A, +0x8C, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x45, 0xF5, +0xB6, 0xA2, 0x01, 0x6C, 0xC4, 0x67, 0xC4, 0xED, +0xCF, 0xED, 0x45, 0xF5, 0xD6, 0xA2, 0xAC, 0xEB, +0xFF, 0x6D, 0x84, 0xEE, 0x30, 0xF0, 0x20, 0x6E, +0x43, 0xF1, 0xD8, 0x9E, 0xAC, 0xEC, 0x08, 0x6F, +0x80, 0xC6, 0x45, 0xF5, 0x96, 0xA2, 0xAC, 0xEC, +0x01, 0x4C, 0xAC, 0xEC, 0x45, 0xF5, 0x96, 0xC2, +0x45, 0xF5, 0xB6, 0xA2, 0x03, 0x6C, 0xAC, 0xEC, +0x45, 0xF5, 0x96, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0x40, 0xF1, 0x98, 0xA2, +0x01, 0x4C, 0x40, 0xF1, 0x98, 0xC2, 0x40, 0xF1, +0x98, 0xA2, 0xEE, 0xEC, 0x70, 0x2C, 0x40, 0xF1, +0x98, 0xC2, 0x6D, 0x10, 0x30, 0xF0, 0x20, 0x6E, +0xE2, 0xF5, 0x14, 0x9E, 0x02, 0x6F, 0xC0, 0x98, +0xED, 0xEE, 0xC0, 0xD8, 0x63, 0xF3, 0xC4, 0x9A, +0x63, 0xF3, 0x70, 0xC2, 0x45, 0xF5, 0x76, 0xA4, +0xED, 0xEE, 0x63, 0xF3, 0xC4, 0xDA, 0x63, 0xF3, +0x71, 0xC2, 0x45, 0xF5, 0x56, 0xA4, 0x1F, 0xF7, +0x00, 0x6B, 0xAC, 0xEA, 0x74, 0x4A, 0x48, 0x32, +0x6C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x07, 0x60, +0x45, 0xF5, 0x56, 0xA4, 0xAC, 0xEA, 0x74, 0x4A, +0x48, 0x32, 0x6C, 0xEA, 0x0E, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x45, 0xF5, 0x76, 0xA2, 0x30, 0xF0, +0x20, 0x6C, 0x43, 0xF1, 0x9C, 0x9C, 0xFF, 0x6A, +0x4C, 0xEB, 0x8D, 0xE3, 0x68, 0x33, 0xA0, 0xA3, +0x0A, 0x10, 0x45, 0xF5, 0x56, 0xA4, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF1, 0x60, 0x9B, 0xAC, 0xEA, +0x69, 0xE2, 0x48, 0x32, 0x40, 0xA2, 0x4C, 0xED, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x09, 0xF2, 0xBA, 0xC2, 0x45, 0xF5, 0x56, 0xA3, +0x45, 0xF5, 0x96, 0xA3, 0xFF, 0x6A, 0x1F, 0xF7, +0x00, 0x6D, 0x4C, 0xEC, 0x88, 0x34, 0xC0, 0xF1, +0x11, 0x4C, 0xAC, 0xEC, 0x0B, 0x2C, 0x45, 0xF5, +0x76, 0xA3, 0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x6C, +0x4C, 0xEB, 0x74, 0x4B, 0x68, 0x33, 0x63, 0xF1, +0x84, 0x9C, 0x09, 0x10, 0x45, 0xF5, 0x76, 0xA3, +0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF1, 0x88, 0x9C, +0x4C, 0xEB, 0x74, 0x4B, 0x68, 0x33, 0x8D, 0xE3, +0x60, 0xA3, 0x6C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x09, 0xF2, 0x5B, 0xC3, 0x02, 0x10, 0xBF, 0xF6, +0x17, 0x2B, 0x03, 0x91, 0x02, 0x90, 0x02, 0x63, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF4, +0x54, 0x9A, 0xFF, 0x68, 0x60, 0xA2, 0x6C, 0xE8, +0x1D, 0x20, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, +0x4C, 0x9A, 0x20, 0x6B, 0x20, 0x70, 0x60, 0xC2, +0x0D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6C, 0xA0, 0xF0, +0x64, 0x9A, 0x62, 0xF5, 0x98, 0x9C, 0x8D, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF4, 0x6C, 0x9B, 0x10, 0xF0, 0x30, 0x6A, +0x0B, 0xF1, 0x15, 0x4A, 0x40, 0xDB, 0x00, 0x1C, +0xAC, 0x39, 0x80, 0x18, 0xFC, 0x5D, 0x05, 0x6C, +0x01, 0x6D, 0x80, 0x18, 0xF3, 0x02, 0x20, 0xBA, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0xFF, 0x17, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0x68, 0x44, 0xFA, 0x4B, +0x4C, 0xEB, 0x04, 0x5B, 0x03, 0x60, 0x80, 0x18, +0x39, 0x41, 0x15, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF5, 0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xA2, 0xF6, 0x90, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0x63, 0xF3, 0x64, 0x9A, 0x8D, 0xEB, +0x63, 0xF3, 0x64, 0xDA, 0xFF, 0x6A, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0xA5, 0xF6, 0x08, 0x4B, 0x40, 0xA4, 0xC0, 0xF0, +0xC0, 0xA3, 0x7F, 0x68, 0x5E, 0x32, 0x5C, 0x32, +0x0C, 0xEE, 0x4D, 0xEE, 0xC0, 0xF0, 0xC0, 0xC3, +0xA0, 0xA4, 0x01, 0x6A, 0x41, 0x6F, 0xBA, 0x35, +0x4C, 0xED, 0xEB, 0xEF, 0xB8, 0x35, 0xCC, 0xEF, +0xAD, 0xEF, 0xC0, 0xF0, 0xE0, 0xC3, 0xA0, 0xA4, +0x21, 0x6E, 0xCB, 0xEE, 0xB6, 0x35, 0x4C, 0xED, +0xB4, 0x35, 0xEC, 0xEE, 0xAD, 0xEE, 0xC0, 0xF0, +0xC0, 0xC3, 0xA0, 0xA4, 0x11, 0x6F, 0xEB, 0xEF, +0xB2, 0x35, 0x4C, 0xED, 0xB0, 0x35, 0xCC, 0xEF, +0xAD, 0xEF, 0xC0, 0xF0, 0xE0, 0xC3, 0xA0, 0xA4, +0x10, 0x6E, 0x0F, 0x69, 0xCB, 0xEE, 0x2C, 0xED, +0xEC, 0xEE, 0xAD, 0xEE, 0xC0, 0xF0, 0xC0, 0xC3, +0xE1, 0xA4, 0xA7, 0x67, 0xC0, 0xF0, 0xE1, 0xA3, +0x0C, 0xED, 0xFD, 0x65, 0x1F, 0x65, 0x80, 0x6D, +0xF8, 0x67, 0xAB, 0xED, 0xEC, 0xED, 0xFF, 0x67, +0xED, 0xED, 0xC0, 0xF0, 0xA1, 0xC3, 0xE2, 0xA4, +0x0C, 0xED, 0xC0, 0xF0, 0xE2, 0xC3, 0xE1, 0xA4, +0xFE, 0x37, 0xFC, 0x37, 0xED, 0xED, 0xC0, 0xF0, +0xA1, 0xC3, 0xC0, 0xF0, 0xE3, 0xA3, 0x83, 0xA4, +0x02, 0x6D, 0xAB, 0xED, 0x4C, 0xEC, 0xEC, 0xED, +0x8D, 0xED, 0xC0, 0xF0, 0xA3, 0xC3, 0xC0, 0xF0, +0xA0, 0xA3, 0x86, 0x67, 0x2C, 0xEC, 0xBA, 0x35, +0x4E, 0xED, 0x4C, 0xED, 0x80, 0x18, 0xA7, 0x18, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x60, 0xA4, 0x01, 0xA4, +0x02, 0x6A, 0x6C, 0xEA, 0x24, 0x67, 0x06, 0xD0, +0x36, 0x22, 0x42, 0xA4, 0x06, 0xD2, 0x33, 0x10, +0x40, 0xA1, 0x01, 0x6D, 0x90, 0x67, 0x4C, 0xED, +0x00, 0x18, 0xBB, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x5C, 0x9A, 0x90, 0x67, 0x40, 0xEA, +0x0F, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x58, 0x9A, 0x90, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x02, 0xF7, 0x50, 0x9A, 0x14, 0x33, +0x4D, 0xE3, 0x80, 0xA3, 0xBF, 0x6A, 0x12, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x54, 0x9A, +0x90, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF7, 0x50, 0x9A, 0x14, 0x33, 0xFF, 0x6C, +0x4D, 0xE3, 0x40, 0xA3, 0x8C, 0xEA, 0x40, 0x6C, +0x8D, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, 0x40, 0xC3, +0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, 0x06, 0x92, +0x03, 0xEA, 0xCA, 0x60, 0x30, 0xF0, 0x20, 0x68, +0xA5, 0xF6, 0x08, 0x48, 0xA3, 0xF3, 0x6C, 0xA0, +0x02, 0x6A, 0x6C, 0xEA, 0x1A, 0x22, 0x03, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xA3, 0xF3, 0x4C, 0xC0, +0x00, 0x18, 0xD5, 0xCA, 0x04, 0xD2, 0x04, 0x93, +0xA3, 0xF3, 0x50, 0x98, 0x6E, 0xEA, 0x03, 0x22, +0x04, 0x94, 0x00, 0x18, 0xF6, 0xCA, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, 0xA3, 0xF3, +0x8C, 0xA2, 0x02, 0x6B, 0x8D, 0xEB, 0xA3, 0xF3, +0x6C, 0xC2, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, 0x68, 0x44, +0xC8, 0x4B, 0x4C, 0xEB, 0x20, 0x5B, 0x05, 0x67, +0x03, 0x60, 0x80, 0x18, 0x44, 0x45, 0x64, 0x10, +0x13, 0x74, 0x37, 0x60, 0x14, 0x5C, 0x0D, 0x60, +0x08, 0x74, 0x27, 0x60, 0x09, 0x5C, 0x04, 0x60, +0x18, 0x24, 0x01, 0x74, 0x1A, 0x60, 0x45, 0x10, +0x09, 0x74, 0x27, 0x60, 0x0A, 0x74, 0x21, 0x60, +0x40, 0x10, 0xBB, 0x74, 0x16, 0x60, 0xBC, 0x5C, +0x05, 0x60, 0x1E, 0x74, 0x2A, 0x60, 0x1F, 0x74, +0x24, 0x60, 0x37, 0x10, 0xC3, 0x74, 0x31, 0x60, +0xCD, 0x74, 0x2B, 0x60, 0xC2, 0x74, 0x25, 0x60, +0x30, 0x10, 0x85, 0x67, 0x80, 0x18, 0xC5, 0x14, +0x3F, 0x10, 0x85, 0x67, 0x80, 0x18, 0xAD, 0x16, +0x3B, 0x10, 0x85, 0x67, 0x00, 0x18, 0x5D, 0xD2, +0x37, 0x10, 0x85, 0x67, 0x80, 0x18, 0x60, 0x02, +0x33, 0x10, 0x85, 0x67, 0x80, 0x18, 0x45, 0x00, +0x2F, 0x10, 0x85, 0x67, 0x80, 0x18, 0xA3, 0x00, +0x2B, 0x10, 0x85, 0x67, 0x80, 0x18, 0x77, 0x16, +0x27, 0x10, 0x85, 0x67, 0x00, 0x18, 0x6F, 0xC8, +0x23, 0x10, 0x85, 0x67, 0x00, 0x18, 0x55, 0xC8, +0x1F, 0x10, 0x85, 0x67, 0x00, 0x18, 0x34, 0xC8, +0x1B, 0x10, 0x85, 0x67, 0x80, 0x18, 0xCD, 0x14, +0x17, 0x10, 0x85, 0x67, 0x80, 0x18, 0x1D, 0x5B, +0x13, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, +0x74, 0x9A, 0x01, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0x63, 0xF3, 0x64, 0x9A, 0x8D, 0xEB, +0x63, 0xF3, 0x64, 0xDA, 0x0E, 0x6A, 0x01, 0x10, +0x00, 0x6A, 0x40, 0xC0, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xA5, 0xF6, +0x08, 0x48, 0x40, 0xF1, 0x57, 0xA0, 0x40, 0xF1, +0x78, 0xA0, 0x4E, 0xEB, 0x29, 0x23, 0x67, 0x42, +0x1B, 0x4B, 0x6C, 0x33, 0x0D, 0xE3, 0x4C, 0x32, +0x87, 0xA3, 0x55, 0xE0, 0x00, 0xF1, 0x18, 0x4D, +0x80, 0x18, 0xE3, 0x16, 0x40, 0xF1, 0x57, 0xA0, +0x01, 0x4A, 0x40, 0xF1, 0x57, 0xC0, 0x40, 0xF1, +0x77, 0xA0, 0x40, 0xF1, 0x58, 0xA0, 0x6E, 0xEA, +0x06, 0x22, 0xA0, 0xF0, 0x44, 0x98, 0x02, 0x6B, +0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, 0x40, 0xF1, +0x77, 0xA2, 0x08, 0x6C, 0x8E, 0xEB, 0x02, 0x2B, +0x40, 0xF1, 0x77, 0xC2, 0x80, 0x18, 0x77, 0x15, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0xA5, 0xF6, 0x08, 0x48, 0xE2, 0xF5, +0x42, 0xA0, 0x7F, 0x6C, 0xA0, 0xF0, 0xA7, 0x42, +0xB4, 0x35, 0x15, 0xE5, 0x62, 0xA5, 0x8C, 0xEB, +0x24, 0x2B, 0xA0, 0xF0, 0x62, 0x42, 0x74, 0x33, +0x0D, 0xE3, 0x54, 0x32, 0xA0, 0xF0, 0x8A, 0xA3, +0x55, 0xE0, 0xE2, 0xF4, 0x0B, 0x4D, 0x80, 0x18, +0xE3, 0x16, 0xE2, 0xF5, 0x42, 0xA0, 0x30, 0xF0, +0x20, 0x6C, 0x63, 0xF1, 0x90, 0x9C, 0x54, 0x33, +0x0D, 0xE3, 0xE2, 0xF4, 0xA8, 0xA3, 0x7F, 0x4A, +0x28, 0x4A, 0xA0, 0xC4, 0xE2, 0xF4, 0x89, 0xA3, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x74, 0x9B, +0x54, 0x32, 0x41, 0xE0, 0x80, 0xC3, 0x82, 0x40, +0x37, 0x10, 0x01, 0x73, 0x37, 0x61, 0x54, 0x33, +0x0D, 0xE3, 0xE2, 0xF4, 0x83, 0xA3, 0xFF, 0x74, +0x0C, 0x61, 0xE2, 0xF4, 0x84, 0xA3, 0x02, 0x4D, +0x80, 0x18, 0x65, 0x16, 0xE2, 0xF5, 0x62, 0xA0, +0x7F, 0x4B, 0x23, 0x4B, 0x74, 0x33, 0x01, 0xE3, +0x06, 0x10, 0x7F, 0x4A, 0x23, 0x4A, 0x54, 0x32, +0x01, 0xE2, 0x01, 0x6A, 0x4B, 0xEA, 0xA0, 0xF0, +0x4A, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0xE2, 0xF5, 0x62, 0xA2, 0x30, 0xF0, +0x20, 0x6D, 0x63, 0xF1, 0xB0, 0x9D, 0x74, 0x34, +0x51, 0xE4, 0xE2, 0xF4, 0xC8, 0xA4, 0x7F, 0x4B, +0x28, 0x4B, 0xC0, 0xC5, 0xE2, 0xF4, 0xA9, 0xA4, +0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF1, 0x94, 0x9C, +0x74, 0x33, 0x69, 0xE2, 0xA0, 0xC4, 0x82, 0x42, +0x80, 0x18, 0xE4, 0x14, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xA5, 0xF6, +0x08, 0x48, 0xE2, 0xF5, 0x62, 0xA0, 0xE2, 0xF5, +0x43, 0xA0, 0x6E, 0xEA, 0x42, 0x22, 0x40, 0xF6, +0x5A, 0xA8, 0x09, 0xF6, 0x00, 0x72, 0x10, 0x60, +0x40, 0xF6, 0x9A, 0xA0, 0x40, 0xF6, 0x7B, 0xA0, +0xAE, 0x44, 0x6E, 0xED, 0x09, 0x25, 0x09, 0xF7, +0x01, 0x72, 0x06, 0x60, 0x09, 0xF7, 0x00, 0x72, +0x03, 0x60, 0xFF, 0x4C, 0x8E, 0xEB, 0x0D, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, +0xA0, 0xF0, 0x44, 0x9B, 0x04, 0x6C, 0x8D, 0xEA, +0x02, 0x6C, 0x8D, 0xEA, 0xA0, 0xF0, 0x44, 0xDB, +0x20, 0x10, 0x80, 0x18, 0x3C, 0x17, 0xE2, 0xF5, +0x42, 0xA0, 0x01, 0x4A, 0xE2, 0xF5, 0x42, 0xC0, +0xE2, 0xF5, 0x62, 0xA0, 0xE2, 0xF5, 0x43, 0xA0, +0x6E, 0xEA, 0x06, 0x22, 0xA0, 0xF0, 0x44, 0x98, +0x02, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0xE2, 0xF5, 0x62, 0xA2, 0x08, 0x6C, 0x8E, 0xEB, +0x02, 0x2B, 0xE2, 0xF5, 0x62, 0xC2, 0x80, 0x18, +0x01, 0x15, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, 0x60, 0x9B, +0x30, 0xF0, 0x20, 0x68, 0x83, 0xF1, 0x04, 0x98, +0xE0, 0x9B, 0xFF, 0x6A, 0x4C, 0xEC, 0x0C, 0xEF, +0x08, 0x5C, 0x4C, 0xED, 0x4C, 0xEE, 0xE0, 0xDB, +0x46, 0x60, 0xB0, 0x75, 0x2E, 0x61, 0xB2, 0x76, +0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, +0xA8, 0x9A, 0x01, 0x6A, 0x44, 0xEC, 0xC0, 0x9D, +0x00, 0xF6, 0x40, 0x34, 0xCD, 0xEC, 0x80, 0xDD, +0xC0, 0x9D, 0x40, 0x34, 0x80, 0x34, 0x8F, 0xEC, +0xCC, 0xEC, 0x80, 0xDD, 0x80, 0x9B, 0x4E, 0x10, +0xB1, 0x76, 0x80, 0xF0, 0x13, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0xA8, 0x9A, 0x01, 0x6A, +0x44, 0xEC, 0xC0, 0x9D, 0x00, 0xF6, 0x40, 0x34, +0xCD, 0xEC, 0x80, 0xDD, 0xC0, 0x9D, 0x40, 0x34, +0x80, 0x34, 0x8F, 0xEC, 0xCC, 0xEC, 0x80, 0xDD, +0x80, 0x9B, 0x4F, 0xEA, 0x8C, 0xEA, 0x40, 0xDB, +0x7B, 0x10, 0xA0, 0x75, 0x7D, 0x61, 0xA1, 0x76, +0x08, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, +0x48, 0x9A, 0x01, 0x6B, 0x64, 0xEC, 0xA0, 0x9A, +0x51, 0x10, 0xA2, 0x76, 0x6F, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x48, 0x9A, 0x01, 0x6B, +0x64, 0xEC, 0xA0, 0x9A, 0x5A, 0x10, 0xE8, 0x44, +0x4C, 0xEF, 0x08, 0x5F, 0xE0, 0x6A, 0x65, 0x60, +0xB0, 0x75, 0x35, 0x61, 0xB2, 0x76, 0x18, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x4C, 0x9A, +0x01, 0x6E, 0xA6, 0x67, 0x00, 0x9A, 0xA4, 0xEF, +0xE5, 0x67, 0x00, 0xF6, 0xA0, 0x35, 0x0D, 0xED, +0xA0, 0xDA, 0xA0, 0x9A, 0xE0, 0x37, 0xE0, 0x37, +0xEF, 0xEF, 0xAC, 0xEF, 0xE0, 0xDA, 0x40, 0x9B, +0xC4, 0xEC, 0x86, 0x67, 0x4D, 0xEC, 0x19, 0x10, +0xB1, 0x76, 0x44, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x4C, 0x9A, 0x01, 0x6E, 0xA6, 0x67, +0x00, 0x9A, 0xA4, 0xEF, 0xE5, 0x67, 0x00, 0xF6, +0xA0, 0x35, 0x0D, 0xED, 0xA0, 0xDA, 0xA0, 0x9A, +0xE0, 0x37, 0xE0, 0x37, 0xEF, 0xEF, 0xAC, 0xEF, +0xE0, 0xDA, 0x40, 0x9B, 0xC4, 0xEC, 0xCF, 0xEC, +0x4C, 0xEC, 0x80, 0xDB, 0x29, 0x10, 0xA0, 0x75, +0x2B, 0x61, 0xA1, 0x76, 0x11, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x4C, 0x9A, 0x01, 0x6B, +0x64, 0xEF, 0xA0, 0x9A, 0x00, 0xF6, 0x60, 0x34, +0x8F, 0xEC, 0xAC, 0xEC, 0x80, 0xDA, 0x80, 0x9A, +0x60, 0x33, 0x60, 0x33, 0x8D, 0xEB, 0x13, 0x10, +0xA2, 0x76, 0x14, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x4C, 0x9A, 0x01, 0x6B, 0x64, 0xEF, +0xA0, 0x9A, 0x00, 0xF6, 0x60, 0x34, 0x8F, 0xEC, +0xAC, 0xEC, 0x80, 0xDA, 0x80, 0x9A, 0x60, 0x33, +0x60, 0x33, 0x6F, 0xEB, 0x8C, 0xEB, 0x60, 0xDA, +0xF0, 0x6A, 0x03, 0x10, 0xE2, 0x6A, 0x01, 0x10, +0xE1, 0x6A, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, +0xFF, 0x6B, 0x6C, 0xEC, 0x08, 0x5C, 0xFF, 0x63, +0x18, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, +0x50, 0x9A, 0x01, 0x6D, 0x40, 0xA2, 0x6C, 0xEA, +0x47, 0xEC, 0xAC, 0xEA, 0x37, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x54, 0x9A, 0x40, 0xA2, +0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x30, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x48, 0x9A, +0x1C, 0x10, 0xF8, 0x4C, 0x6C, 0xEC, 0x08, 0x5C, +0xE0, 0x6A, 0x27, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x58, 0x9A, 0x01, 0x6D, 0x40, 0xA2, +0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x1A, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x5C, 0x9A, +0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, +0x13, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, +0x4C, 0x9A, 0x40, 0xA2, 0xA4, 0xEC, 0x85, 0x67, +0x6C, 0xEC, 0x4C, 0xEC, 0x5D, 0x67, 0x80, 0xC2, +0x40, 0xA2, 0x4C, 0xEB, 0x6B, 0xEA, 0xC0, 0xF7, +0x42, 0x32, 0x03, 0x10, 0xE4, 0x6A, 0x01, 0x10, +0xE6, 0x6A, 0x01, 0x63, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6B, 0x6C, 0xEC, 0x08, 0x5C, 0x6C, 0xED, +0x20, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, +0x50, 0x9A, 0x01, 0x6E, 0x40, 0xA2, 0x6C, 0xEA, +0x47, 0xEC, 0xCC, 0xEA, 0x48, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x54, 0x9A, 0xC4, 0xEC, +0x86, 0x67, 0x40, 0xA2, 0x6C, 0xEA, 0xCC, 0xEA, +0xCE, 0xEA, 0x3B, 0x2A, 0x05, 0x25, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF1, 0xA0, 0x9A, 0x24, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0x40, 0x9A, +0x29, 0x10, 0xF8, 0x4C, 0x6C, 0xEC, 0x08, 0x5C, +0xE0, 0x6A, 0x2E, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x58, 0x9A, 0x01, 0x6E, 0x40, 0xA2, +0x6C, 0xEA, 0x47, 0xEC, 0xCC, 0xEA, 0x23, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x5C, 0x9A, +0xC4, 0xEC, 0x86, 0x67, 0x40, 0xA2, 0x6C, 0xEA, +0xCC, 0xEA, 0xCE, 0xEA, 0x16, 0x2A, 0x0A, 0x25, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0xA4, 0x9A, +0x40, 0xA5, 0x6C, 0xEA, 0x8D, 0xEA, 0x6C, 0xEA, +0x40, 0xC5, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF1, 0x44, 0x9A, 0xA0, 0xA2, 0x8F, 0xEC, +0x6C, 0xEC, 0xAC, 0xEC, 0x80, 0xC2, 0xF0, 0x6A, +0x20, 0xE8, 0xE5, 0x6A, 0x20, 0xE8, 0xE4, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, +0x08, 0x5C, 0x0F, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x50, 0x9A, 0x01, 0x6D, 0x40, 0xA2, +0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x1F, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x54, 0x9A, +0x13, 0x10, 0xF8, 0x4C, 0x6C, 0xEC, 0x08, 0x5C, +0xE0, 0x6A, 0x16, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x58, 0x9A, 0x01, 0x6D, 0x40, 0xA2, +0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x0B, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x5C, 0x9A, +0x40, 0xA2, 0x4C, 0xEB, 0x67, 0xEC, 0x45, 0x67, +0x6E, 0xEA, 0xAC, 0xEA, 0x20, 0xE8, 0x00, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, +0x08, 0x5C, 0x1A, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x50, 0x9A, 0x01, 0x6E, 0x40, 0xA2, +0x6C, 0xEA, 0x47, 0xEC, 0xCC, 0xEA, 0x35, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x54, 0x9A, +0xC4, 0xEC, 0x86, 0x67, 0xA0, 0xA2, 0x6C, 0xED, +0xCC, 0xED, 0xCE, 0xED, 0x2A, 0x2D, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF1, 0x40, 0x9A, 0x1E, 0x10, +0xF8, 0x4C, 0x6C, 0xEC, 0x08, 0x5C, 0xE0, 0x6A, +0x21, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, +0x58, 0x9A, 0x01, 0x6E, 0x40, 0xA2, 0x6C, 0xEA, +0x47, 0xEC, 0xCC, 0xEA, 0x16, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x5C, 0x9A, 0xC4, 0xEC, +0x86, 0x67, 0xA0, 0xA2, 0x6C, 0xED, 0xCC, 0xED, +0xCE, 0xED, 0x0B, 0x2D, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF1, 0x44, 0x9A, 0x40, 0xA2, 0x4C, 0xEB, +0x8C, 0xEB, 0x6E, 0xEC, 0x01, 0x5C, 0x58, 0x67, +0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, +0x01, 0x72, 0xFF, 0xF7, 0x1F, 0x6C, 0xAC, 0xEC, +0x05, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x48, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x04, 0x67, +0x2C, 0xE8, 0x90, 0x67, 0xA0, 0x6D, 0xA2, 0x6E, +0x80, 0x18, 0x9F, 0x17, 0x90, 0x67, 0x80, 0x18, +0x02, 0x18, 0x7D, 0x67, 0x50, 0xC3, 0x50, 0xA3, +0x09, 0x97, 0x07, 0x90, 0x2C, 0xEA, 0x08, 0x91, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0x24, 0x67, +0x0C, 0xE9, 0x91, 0x67, 0xAC, 0xE8, 0xA1, 0x6E, +0xA0, 0x6D, 0x80, 0x18, 0x9F, 0x17, 0x91, 0x67, +0xB0, 0x67, 0x80, 0x18, 0x28, 0x18, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6D, +0x83, 0xF1, 0xA4, 0x9D, 0x40, 0x9B, 0xA2, 0x6E, +0xAC, 0xEA, 0x40, 0xDB, 0xFF, 0x6A, 0x4C, 0xEC, +0xA0, 0x6D, 0x80, 0x18, 0x9F, 0x17, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0xB0, 0x6D, 0xB2, 0x6E, +0x80, 0x18, 0x9F, 0x17, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0xB0, 0x6D, 0xB1, 0x6E, +0x80, 0x18, 0x9F, 0x17, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x6A, 0x04, 0x67, 0x4C, 0xE8, +0xAC, 0xEA, 0xA4, 0x72, 0x0C, 0x61, 0x90, 0x67, +0x80, 0x18, 0x55, 0x18, 0x01, 0x72, 0x04, 0x61, +0x90, 0x67, 0x80, 0x18, 0xB2, 0x18, 0x1F, 0x10, +0x90, 0x67, 0x00, 0x6D, 0x0D, 0x10, 0xA5, 0x72, +0x11, 0x61, 0x90, 0x67, 0x80, 0x18, 0x55, 0x18, +0x01, 0x72, 0x04, 0x61, 0x90, 0x67, 0x80, 0x18, +0xB2, 0x18, 0x18, 0x10, 0x90, 0x67, 0x01, 0x6D, +0x80, 0x18, 0xA7, 0x18, 0x90, 0x67, 0x80, 0x18, +0xB2, 0x18, 0x14, 0x10, 0x90, 0x67, 0x80, 0x18, +0x6D, 0x18, 0x01, 0x72, 0x07, 0x61, 0x90, 0x67, +0x01, 0x6D, 0x80, 0x18, 0xA7, 0x18, 0x90, 0x67, +0x00, 0x6D, 0x06, 0x10, 0x90, 0x67, 0x00, 0x6D, +0x80, 0x18, 0xA7, 0x18, 0x90, 0x67, 0x01, 0x6D, +0x80, 0x18, 0xA7, 0x18, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, +0x4C, 0xEE, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0xA3, 0xF4, 0x79, 0xA2, 0xFF, 0xF7, +0x1F, 0x69, 0x04, 0xD4, 0xAC, 0xE9, 0x05, 0xD6, +0x0B, 0x23, 0xA3, 0xF4, 0x7A, 0xA2, 0x04, 0x23, +0xA3, 0xF4, 0x97, 0xA2, 0xA5, 0x6D, 0x07, 0x10, +0xA3, 0xF4, 0x97, 0xA2, 0xA4, 0x6D, 0x03, 0x10, +0xA3, 0xF4, 0x97, 0xA2, 0xA3, 0x6D, 0x30, 0xF0, +0x20, 0x68, 0xA5, 0xF6, 0x08, 0x48, 0x80, 0x18, +0xC9, 0x18, 0xA3, 0xF4, 0x5B, 0xA0, 0x7D, 0x22, +0x04, 0x94, 0xB1, 0x67, 0x80, 0x18, 0x90, 0x18, +0xA3, 0xF4, 0x59, 0xA0, 0x0B, 0x22, 0xA3, 0xF4, +0x5A, 0xA0, 0x04, 0x22, 0xA3, 0xF4, 0x97, 0xA0, +0xA5, 0x6D, 0x07, 0x10, 0xA3, 0xF4, 0x97, 0xA0, +0xA4, 0x6D, 0x03, 0x10, 0xA3, 0xF4, 0x97, 0xA0, +0xA3, 0x6D, 0x80, 0x18, 0xC9, 0x18, 0x30, 0xF0, +0x20, 0x6A, 0x69, 0xF3, 0x44, 0xA2, 0x01, 0x68, +0x5D, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, +0x48, 0x9A, 0x60, 0xA2, 0x10, 0x6A, 0x6C, 0xEA, +0x58, 0x2A, 0x04, 0x94, 0xB1, 0x67, 0x80, 0x18, +0x90, 0x18, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0xA3, 0xF4, 0x79, 0xA2, 0x0B, 0x23, +0xA3, 0xF4, 0x7A, 0xA2, 0x04, 0x23, 0xA3, 0xF4, +0x97, 0xA2, 0xA5, 0x6D, 0x07, 0x10, 0xA3, 0xF4, +0x97, 0xA2, 0xA4, 0x6D, 0x03, 0x10, 0xA3, 0xF4, +0x97, 0xA2, 0xA3, 0x6D, 0x80, 0x18, 0xC9, 0x18, +0xDC, 0x17, 0x04, 0x94, 0xB1, 0x67, 0x80, 0x18, +0x90, 0x18, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0xA3, 0xF4, 0x79, 0xA2, 0x0B, 0x23, +0xA3, 0xF4, 0x7A, 0xA2, 0x04, 0x23, 0xA3, 0xF4, +0x97, 0xA2, 0xA5, 0x6D, 0x07, 0x10, 0xA3, 0xF4, +0x97, 0xA2, 0xA4, 0x6D, 0x03, 0x10, 0xA3, 0xF4, +0x97, 0xA2, 0xA3, 0x6D, 0x80, 0x18, 0xC9, 0x18, +0x04, 0x94, 0xB1, 0x67, 0x80, 0x18, 0x90, 0x18, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0xA3, 0xF4, 0x79, 0xA2, 0x0B, 0x23, 0xA3, 0xF4, +0x7A, 0xA2, 0x04, 0x23, 0xA3, 0xF4, 0x97, 0xA2, +0xA5, 0x6D, 0x07, 0x10, 0xA3, 0xF4, 0x97, 0xA2, +0xA4, 0x6D, 0x03, 0x10, 0xA3, 0xF4, 0x97, 0xA2, +0xA3, 0x6D, 0x80, 0x18, 0xC9, 0x18, 0x01, 0x48, +0xFF, 0x6A, 0x4C, 0xE8, 0x05, 0x92, 0x43, 0xE8, +0xC4, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x49, 0xF3, 0x1F, 0x4C, +0x00, 0x6D, 0x06, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xA5, 0xF6, 0x08, 0x48, 0xC0, 0xF0, 0x41, 0xA0, +0x7F, 0x6B, 0xFF, 0x69, 0x4C, 0xEB, 0xC0, 0xF0, +0x42, 0xA0, 0x2C, 0xEC, 0x2C, 0xEB, 0x01, 0x74, +0x04, 0xD3, 0x05, 0xD2, 0x5B, 0x60, 0xC0, 0xF0, +0x80, 0xA0, 0x80, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, +0x2C, 0xEA, 0x54, 0x22, 0xC0, 0xF0, 0xA0, 0xA0, +0x01, 0x6A, 0x0F, 0x6B, 0xBA, 0x35, 0x6C, 0xEC, +0x4E, 0xED, 0x4C, 0xED, 0x2C, 0xEC, 0x80, 0x18, +0xA7, 0x18, 0xC0, 0xF0, 0xA0, 0xA0, 0xC0, 0xF0, +0x80, 0xA0, 0x0F, 0x6B, 0x01, 0x6A, 0xBA, 0x35, +0x6C, 0xEC, 0x4C, 0xED, 0x2C, 0xEC, 0x2C, 0xED, +0x80, 0x18, 0xA7, 0x18, 0xC0, 0xF0, 0x60, 0xA0, +0x20, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x25, 0x22, +0x04, 0x93, 0x80, 0x6A, 0x4B, 0xEA, 0x74, 0x36, +0xC0, 0xF0, 0x61, 0xA0, 0x6C, 0xEA, 0x2C, 0xEA, +0x09, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x48, 0x9A, 0xFF, 0x6C, 0x59, 0x4C, 0x00, 0x6D, +0x40, 0xEA, 0x13, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x86, 0x67, 0x40, 0xEA, +0xC0, 0xF0, 0xA0, 0xA0, 0xC0, 0xF0, 0x80, 0xA0, +0x01, 0x6B, 0x0F, 0x6A, 0xBA, 0x35, 0x4C, 0xEC, +0x6E, 0xED, 0x2C, 0xEC, 0x6C, 0xED, 0x80, 0x18, +0xA7, 0x18, 0x30, 0xF0, 0x20, 0x6A, 0x65, 0xF7, +0x68, 0xA2, 0x10, 0x6A, 0x6C, 0xEA, 0x0A, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x05, 0x93, 0x00, 0xF3, +0x48, 0x9A, 0xFF, 0x6C, 0x59, 0x4C, 0x00, 0x6D, +0x6C, 0x36, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x00, 0x6A, 0x7D, 0x67, +0x52, 0xC3, 0x14, 0x6A, 0x50, 0xC3, 0x01, 0x6A, +0x4F, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, +0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x65, 0xF7, 0x88, 0xA2, +0x80, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, 0xFF, 0x6B, +0x6C, 0xEA, 0x1D, 0x22, 0x10, 0x6A, 0x8C, 0xEA, +0x6C, 0xEA, 0x02, 0x22, 0x80, 0x18, 0x82, 0x19, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0xC0, 0xF0, 0x81, 0xA2, 0x80, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xFF, 0x6C, 0x8C, 0xEB, 0x0B, 0x23, +0xC0, 0xF0, 0xA0, 0xA2, 0x0F, 0x6B, 0x01, 0x6A, +0xAC, 0xEB, 0xBA, 0x35, 0x4E, 0xED, 0x6C, 0xEC, +0x4C, 0xED, 0x80, 0x18, 0xA7, 0x18, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF5, 0x68, 0x9B, 0xFF, 0xF7, 0x1F, 0x6A, +0x8C, 0xEA, 0x69, 0xE2, 0x00, 0x9A, 0x41, 0x45, +0x25, 0x67, 0x08, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x44, 0x9A, 0x85, 0x67, 0x2C, 0xE8, +0x40, 0xEA, 0x06, 0xEA, 0x50, 0x67, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0xF7, 0x1F, 0x68, 0x41, 0x45, 0x25, 0x67, +0x0C, 0xD6, 0x8C, 0xE8, 0x07, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF5, 0x48, 0x9A, 0x41, 0xE0, +0xC0, 0xD8, 0x1A, 0x10, 0x01, 0x6D, 0x90, 0x67, +0xAB, 0xED, 0x80, 0x18, 0xA1, 0x19, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, +0x91, 0x67, 0x40, 0xEA, 0x0C, 0x93, 0x64, 0xEA, +0x43, 0x67, 0x04, 0x93, 0x2C, 0xEA, 0x2F, 0xE9, +0x6C, 0xE9, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF5, +0x68, 0x9B, 0x2D, 0xEA, 0x61, 0xE0, 0x40, 0xD8, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x01, 0x74, 0x0D, 0x60, +0x06, 0x24, 0x02, 0x74, 0x10, 0x60, 0x03, 0x74, +0x00, 0x6A, 0x1C, 0x61, 0x14, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA8, 0x35, 0x03, 0xF2, 0x54, 0x9A, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA8, 0x35, +0x03, 0xF2, 0x58, 0x9A, 0x05, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x5C, 0x9A, 0xA8, 0x35, +0x55, 0xE5, 0x40, 0x9D, 0x20, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF2, 0x40, 0x9A, 0xA8, 0x35, +0x55, 0xE5, 0x40, 0x9D, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xA9, 0xF0, 0x00, 0x4A, 0x88, 0x34, 0x91, 0xE2, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x7C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF5, 0xA0, 0x35, +0xCC, 0xEB, 0x30, 0xF0, 0x20, 0x6E, 0x63, 0xF0, +0xDC, 0x9E, 0xC0, 0xF3, 0x44, 0x9A, 0x80, 0xAC, +0xAD, 0xEB, 0x01, 0x6D, 0xAB, 0xED, 0x6C, 0xEE, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6B, 0x8C, 0xEB, 0xFF, 0xF7, 0x1F, 0x6A, +0x81, 0x46, 0x06, 0x67, 0xAC, 0xEA, 0x06, 0x2C, +0x83, 0x67, 0xA2, 0x67, 0x80, 0x18, 0xC9, 0x19, +0x02, 0x67, 0x0D, 0x10, 0x83, 0x67, 0xA2, 0x67, +0x80, 0x18, 0xC9, 0x19, 0x22, 0x67, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, 0x90, 0x67, +0x2C, 0xE8, 0x40, 0xEA, 0x06, 0xEA, 0x50, 0x67, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x46, 0x67, 0xFF, 0x68, +0xFF, 0xF7, 0x1F, 0x69, 0x01, 0x4A, 0x0C, 0xD6, +0x0D, 0xD7, 0x8C, 0xE8, 0xAC, 0xE9, 0x04, 0x2A, +0x90, 0x67, 0xB1, 0x67, 0xC7, 0x67, 0x15, 0x10, +0xB1, 0x67, 0x90, 0x67, 0x80, 0x18, 0xC9, 0x19, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x0C, 0x94, +0xA0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x0D, 0x96, +0x90, 0x67, 0xB1, 0x67, 0xC4, 0xEA, 0x0C, 0x92, +0x4C, 0xEE, 0x4F, 0xEB, 0x04, 0x92, 0x4C, 0xEB, +0x6D, 0xEE, 0x80, 0x18, 0xDC, 0x19, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, +0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, +0x8C, 0xEA, 0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x25, 0x67, 0x01, 0x60, +0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF5, +0x64, 0x9B, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF5, 0x68, 0x9B, 0x69, 0xE2, 0x00, 0x9A, +0x41, 0x41, 0x08, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x44, 0x9A, 0x91, 0x67, 0x2C, 0xE8, +0x40, 0xEA, 0x06, 0xEA, 0x50, 0x67, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0xF7, 0x1F, 0x68, 0x41, 0x45, 0x25, 0x67, +0x0C, 0xD6, 0x8C, 0xE8, 0x16, 0x2A, 0x1F, 0xF7, +0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF5, 0x44, 0x9A, 0x41, 0xE0, 0x0C, 0x92, +0x3A, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF5, +0x48, 0x9A, 0x0C, 0x93, 0x41, 0xE0, 0x60, 0xD8, +0x33, 0x10, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, +0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF5, 0x44, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF5, +0x48, 0x9A, 0x49, 0xE0, 0x40, 0x9A, 0x91, 0x67, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, +0x44, 0x9A, 0x40, 0xEA, 0x0C, 0x93, 0x64, 0xEA, +0x43, 0x67, 0x04, 0x93, 0x2C, 0xEA, 0x2F, 0xE9, +0x6C, 0xE9, 0x1F, 0xF7, 0x00, 0x6B, 0x0C, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x2D, 0xEA, 0x01, 0x60, +0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF5, +0x64, 0x9B, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF5, 0x68, 0x9B, 0x61, 0xE0, 0x40, 0xD8, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0x03, 0xF0, 0x08, 0x6B, +0xE3, 0xF1, 0x78, 0xDA, 0x05, 0xF1, 0x00, 0x4B, +0xE3, 0xF1, 0x7C, 0xDA, 0x02, 0xF1, 0x00, 0x4B, +0x03, 0xF2, 0x60, 0xDA, 0x00, 0xF1, 0x00, 0x4B, +0x03, 0xF2, 0x64, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6B, 0x6C, 0xEC, 0x1F, 0x6D, 0x8C, 0xED, +0x96, 0x34, 0x6C, 0xEC, 0x01, 0x74, 0x03, 0x6A, +0x0A, 0x60, 0x10, 0x24, 0x04, 0x74, 0x05, 0x60, +0x06, 0x74, 0x00, 0x6A, 0x12, 0x61, 0xEF, 0x4A, +0x02, 0x10, 0x07, 0x6A, 0x4B, 0xEA, 0xAB, 0xE2, +0x44, 0x32, 0x00, 0xF6, 0x40, 0x32, 0x00, 0xF6, +0x43, 0x32, 0x20, 0xE8, 0x08, 0x6A, 0xAB, 0xE2, +0x44, 0x32, 0x00, 0xF6, 0x40, 0x32, 0x00, 0xF6, +0x43, 0x32, 0x20, 0xE8, 0x00, 0xF6, 0x80, 0x34, +0x00, 0xF6, 0x83, 0x34, 0x47, 0x44, 0x5C, 0x4A, +0xFF, 0x6B, 0x6C, 0xEA, 0x77, 0x5A, 0x00, 0x6A, +0x06, 0x60, 0x00, 0x54, 0x64, 0x6A, 0x03, 0x60, +0x47, 0x44, 0x5D, 0x4A, 0x6C, 0xEA, 0x20, 0xE8, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x0E, 0x91, 0x04, 0xD2, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xED, 0x4C, 0xE9, +0x0C, 0xD6, 0x0D, 0xD7, 0x0F, 0x90, 0x05, 0xD5, +0x00, 0x6A, 0x08, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, +0x40, 0xA8, 0x01, 0x4A, 0x40, 0xC8, 0x30, 0xF0, +0x20, 0x6A, 0x04, 0x95, 0x05, 0x96, 0x62, 0xF6, +0xFC, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x69, 0xF3, +0x08, 0x4C, 0x80, 0x18, 0x05, 0x56, 0x0C, 0x93, +0x6C, 0xEA, 0x0D, 0x93, 0x6E, 0xEA, 0x03, 0x22, +0x40, 0xA8, 0x23, 0xEA, 0xE3, 0x61, 0x40, 0xA8, +0x09, 0x97, 0x07, 0x90, 0x23, 0xEA, 0x08, 0x91, +0x58, 0x67, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF2, 0x6C, 0x9A, 0x7F, 0x6A, 0xFD, 0x67, +0x80, 0xA3, 0x01, 0x6D, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x50, 0x9A, +0xD2, 0xA7, 0x02, 0x6B, 0x80, 0xA2, 0x6B, 0xEB, +0xCC, 0xEB, 0xAC, 0xEC, 0x8D, 0xEB, 0x72, 0xC7, +0x02, 0x6B, 0x70, 0xC7, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF2, 0x74, 0x9B, 0xAF, 0xCF, 0xFF, 0x6A, +0xA0, 0xAB, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF7, +0xF0, 0x9B, 0x4C, 0xED, 0xB4, 0x35, 0xF5, 0xE5, +0x60, 0xA5, 0x40, 0x6E, 0x4C, 0xEB, 0xCD, 0xEB, +0x4C, 0xEB, 0x60, 0xC5, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF2, 0x78, 0x9B, 0xA0, 0xAB, 0x4C, 0xED, +0xB4, 0x35, 0xF5, 0xE5, 0x60, 0xA5, 0x4C, 0xEB, +0xCD, 0xEB, 0x4C, 0xEB, 0x60, 0xC5, 0x80, 0x18, +0x6E, 0x4B, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, +0x05, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0xC2, 0xF5, 0xA4, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xC2, 0xF5, 0x88, 0x9C, 0x60, 0x9D, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, 0x8C, 0xEB, +0xE2, 0xF5, 0x64, 0xDA, 0x60, 0x9D, 0x8C, 0xEB, +0xE2, 0xF5, 0x70, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, 0x50, 0x9A, +0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, +0x48, 0x9A, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x40, 0x98, +0x82, 0x46, 0x26, 0x67, 0x40, 0xEA, 0x04, 0xD2, +0xC0, 0xF3, 0x40, 0x98, 0x83, 0x41, 0x40, 0xEA, +0x05, 0xD2, 0xC0, 0xF3, 0x40, 0x98, 0x81, 0x41, +0x40, 0xEA, 0x06, 0xD2, 0xC0, 0xF3, 0x40, 0x98, +0x91, 0x67, 0x40, 0xEA, 0x05, 0x94, 0x03, 0x6B, +0x8C, 0xEB, 0x04, 0x94, 0xA7, 0x43, 0x0F, 0x6B, +0x8C, 0xEB, 0x6C, 0x33, 0x11, 0x4D, 0x75, 0xE5, +0x06, 0x93, 0x60, 0x34, 0x4D, 0xEC, 0xE7, 0xF7, +0x1F, 0x6A, 0x4C, 0xEC, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF4, 0x70, 0x9A, 0x91, 0xE5, 0x40, 0xEB, +0x30, 0xF0, 0x20, 0x6B, 0x88, 0xF4, 0x6C, 0x9B, +0x29, 0xE2, 0x43, 0xEB, 0x02, 0x60, 0x6F, 0xEB, +0x69, 0xE2, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x40, 0x98, 0x82, 0x45, 0x25, 0x67, +0x40, 0xEA, 0x04, 0xD2, 0xC0, 0xF3, 0x40, 0x98, +0x83, 0x41, 0x18, 0x49, 0x40, 0xEA, 0x03, 0x6B, +0x4C, 0xEB, 0x04, 0x92, 0x0F, 0x6C, 0x65, 0xE1, +0x4C, 0xEC, 0x8C, 0x34, 0x89, 0xE1, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF4, 0x4C, 0x9A, 0x85, 0x67, 0x40, 0xEA, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0x6A, 0x8C, 0xEA, 0x0B, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF1, 0x7C, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x03, 0xF1, 0x98, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF1, 0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x03, 0xF3, 0x9C, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, +0x40, 0xDB, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xEC, +0x07, 0x6B, 0x8C, 0xEB, 0x4C, 0xED, 0x8E, 0x34, +0x42, 0xF4, 0x10, 0x4C, 0x36, 0x25, 0x1F, 0xF7, +0x00, 0x6D, 0x8C, 0xED, 0x02, 0xF0, 0x00, 0x75, +0x01, 0x60, 0x21, 0x2D, 0x1F, 0xF7, 0x00, 0x6A, +0x8C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, +0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF5, +0xA4, 0x9A, 0xB5, 0xE4, 0x80, 0xA5, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF5, 0xA4, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF5, 0x48, 0x9A, +0xB5, 0xE4, 0x51, 0xE4, 0x80, 0xA4, 0x00, 0xF6, +0x80, 0x34, 0x01, 0x6A, 0x00, 0xF6, 0x83, 0x34, +0x44, 0xEB, 0x8D, 0xEA, 0x36, 0x10, 0x30, 0xF0, +0x20, 0x6D, 0x22, 0xF5, 0xA8, 0x9D, 0x01, 0x6E, +0xC4, 0xEB, 0xB1, 0xE4, 0xA0, 0xA4, 0x00, 0xF6, +0xA0, 0x35, 0x00, 0xF6, 0xA3, 0x35, 0xCD, 0xED, +0x3A, 0x10, 0x1F, 0xF7, 0x00, 0x6D, 0x8C, 0xED, +0x02, 0xF0, 0x00, 0x75, 0x01, 0x60, 0x25, 0x2D, +0x1F, 0xF7, 0x00, 0x6A, 0x8C, 0xEA, 0x02, 0xF0, +0x00, 0x72, 0x01, 0x60, 0x07, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF5, 0xA4, 0x9A, 0xB5, 0xE4, +0x80, 0xA5, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF5, 0xA4, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF5, 0x48, 0x9A, 0xB5, 0xE4, 0x51, 0xE4, +0x80, 0xA4, 0x01, 0x6A, 0x00, 0xF6, 0x80, 0x34, +0x44, 0xEB, 0x00, 0xF6, 0x83, 0x34, 0x4F, 0xEA, +0x8C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x40, 0xC5, +0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6D, 0x22, 0xF5, +0xA8, 0x9D, 0x01, 0x6E, 0xC4, 0xEB, 0xB1, 0xE4, +0xA0, 0xA4, 0xCF, 0xEE, 0x00, 0xF6, 0xA0, 0x35, +0x00, 0xF6, 0xA3, 0x35, 0xCC, 0xED, 0x4C, 0xED, +0xA0, 0xC4, 0x20, 0xE8, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF4, 0x5C, 0x9A, 0x06, 0xD4, 0x09, 0xD7, +0x07, 0xD5, 0x08, 0xD6, 0x06, 0x04, 0x40, 0xEA, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x46, 0x67, 0x01, 0x4A, 0x05, 0x67, 0x0C, 0xD6, +0x27, 0x67, 0x1F, 0x22, 0x1F, 0xF7, 0x00, 0x6A, +0xAC, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, +0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF5, +0x44, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF5, 0x48, 0x9A, 0x49, 0xE0, 0x40, 0x9A, +0x0C, 0x94, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x0C, 0x93, +0x24, 0xEA, 0x6F, 0xEA, 0x04, 0x93, 0x6C, 0xEA, +0x4D, 0xE9, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, +0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF5, 0x44, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF5, +0x48, 0x9A, 0x41, 0xE0, 0x20, 0xD8, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x1F, 0xF7, 0x00, 0x6A, 0xAC, 0xEA, 0x02, 0xF0, +0x00, 0x72, 0x26, 0x67, 0x01, 0x60, 0x05, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF5, 0x44, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF5, +0x48, 0x9A, 0x55, 0xE5, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0x9D, 0xA0, 0xF3, 0x44, 0x9A, 0x91, 0x67, +0x2C, 0xE8, 0x40, 0xEA, 0x06, 0xEA, 0x50, 0x67, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x44, 0x99, 0xFF, 0x68, 0xAC, 0xE8, +0xD0, 0x67, 0x41, 0xF4, 0x10, 0x6C, 0x7F, 0x6D, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xD0, 0x67, +0x41, 0xF6, 0x10, 0x6C, 0x7F, 0x6D, 0x40, 0xEA, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x85, 0x67, 0xA6, 0x67, 0xC7, 0x67, 0x00, 0x18, +0x30, 0xC6, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x04, 0xD2, 0x04, 0x95, +0x30, 0xF0, 0x20, 0x69, 0xA5, 0xF6, 0x08, 0x49, +0xA8, 0x34, 0x31, 0xE4, 0x05, 0xD4, 0x05, 0x90, +0x22, 0xF5, 0x16, 0x4A, 0x48, 0x32, 0x29, 0xE2, +0xCA, 0xF4, 0xDE, 0xA0, 0x64, 0xA2, 0x01, 0x6A, +0x4C, 0xEE, 0x4C, 0xEB, 0xC4, 0x36, 0xCA, 0xF4, +0xFD, 0xA4, 0xD9, 0xE3, 0xCA, 0xF4, 0x7F, 0xA0, +0x4C, 0xEF, 0xF0, 0x37, 0x4C, 0xEB, 0x74, 0x33, +0x6D, 0xE7, 0x07, 0xD3, 0x04, 0x93, 0x85, 0x67, +0x65, 0xF2, 0x14, 0x4C, 0x64, 0x32, 0x29, 0xE2, +0x84, 0x34, 0x31, 0xE4, 0xEA, 0xF4, 0x51, 0xA2, +0xA8, 0xA4, 0x03, 0x6C, 0x8C, 0xEA, 0x8C, 0xED, +0x40, 0x32, 0xA0, 0x35, 0x48, 0x32, 0x49, 0xE5, +0x30, 0xF0, 0x20, 0x68, 0x06, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x08, 0xD6, 0xC0, 0xF3, 0x64, 0x98, +0x62, 0xF6, 0xD8, 0x9A, 0x01, 0x6D, 0xE3, 0xF2, +0x1D, 0x4C, 0xAB, 0xED, 0x40, 0xEB, 0x08, 0x94, +0x07, 0x96, 0x06, 0x93, 0xC0, 0xF3, 0x44, 0x98, +0x8D, 0xEE, 0x6D, 0xEE, 0xE3, 0xF3, 0x10, 0x6C, +0xFF, 0xF7, 0x1F, 0x6D, 0x40, 0xEA, 0x04, 0x92, +0x05, 0x94, 0x01, 0x6D, 0x22, 0xF5, 0x1C, 0x4A, +0xEA, 0xF4, 0xD6, 0xAC, 0x48, 0x32, 0x29, 0xE2, +0x62, 0xAA, 0xC0, 0x36, 0xC0, 0xF3, 0x44, 0x98, +0xC0, 0x36, 0x6D, 0xEE, 0xE3, 0xF3, 0x08, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x04, 0x92, 0x05, 0x95, +0xE3, 0xF3, 0x0C, 0x6C, 0x22, 0xF5, 0x1D, 0x4A, +0xEA, 0xF4, 0xDA, 0xAD, 0x48, 0x32, 0x29, 0xE2, +0x62, 0xAA, 0xC0, 0x36, 0xC0, 0xF3, 0x44, 0x98, +0xC0, 0x36, 0x01, 0x6D, 0x6D, 0xEE, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x6A, 0xF7, 0xD8, 0xA1, 0x42, 0xF5, +0xAC, 0x9B, 0xE3, 0xF3, 0x10, 0x6C, 0x40, 0xEA, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0x00, 0x6B, 0xC3, 0xF4, 0x7B, 0xC2, +0x30, 0xF0, 0x20, 0x6B, 0x89, 0xF3, 0x03, 0x4B, +0x03, 0xF5, 0x68, 0xDA, 0x00, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xA2, 0xF6, 0x6C, 0x9B, 0x54, 0x34, +0x01, 0x4A, 0x71, 0xE4, 0xA0, 0xA4, 0xF8, 0x6B, +0x80, 0x68, 0xAC, 0xEB, 0x60, 0xC4, 0xFF, 0x6B, +0x6C, 0xEA, 0x4E, 0xE8, 0xF0, 0x28, 0x80, 0x18, +0x61, 0x45, 0x30, 0xF0, 0x20, 0x6A, 0x89, 0xF3, +0x1A, 0xC2, 0x80, 0x18, 0xED, 0x48, 0x80, 0x18, +0x67, 0x45, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0xD1, +0x08, 0xD0, 0x0A, 0xD4, 0x44, 0x67, 0x82, 0x10, +0x25, 0x73, 0x04, 0x60, 0x60, 0xA5, 0x60, 0xC2, +0x01, 0x4A, 0x7B, 0x10, 0x61, 0x85, 0x62, 0x73, +0x7D, 0x67, 0x20, 0x61, 0x62, 0x85, 0x78, 0x73, +0x03, 0x60, 0x58, 0x73, 0x7D, 0x67, 0x1A, 0x61, +0x82, 0x85, 0x60, 0xA6, 0x78, 0x6F, 0xEE, 0xEC, +0x30, 0xF0, 0x20, 0x6F, 0x72, 0x30, 0x83, 0xF3, +0x18, 0x4F, 0xE1, 0xE0, 0x00, 0xA0, 0x01, 0x5C, +0x98, 0x67, 0x94, 0x34, 0x8D, 0xE8, 0x3D, 0x67, +0x00, 0xC1, 0x0F, 0x68, 0x6C, 0xE8, 0xFD, 0xE0, +0x60, 0xA7, 0x02, 0x4D, 0x8D, 0xEB, 0x61, 0xC1, +0x00, 0xF0, 0x02, 0x03, 0x81, 0x85, 0x77, 0x74, +0x26, 0x61, 0x82, 0x85, 0x78, 0x74, 0x02, 0x60, +0x58, 0x74, 0x21, 0x61, 0x80, 0xAE, 0x06, 0xD3, +0x07, 0xD4, 0x82, 0x85, 0x78, 0x74, 0xF8, 0x67, +0x01, 0x5F, 0x18, 0x67, 0x14, 0x30, 0x18, 0x65, +0x0C, 0x6C, 0x07, 0x97, 0x0F, 0x68, 0x30, 0xF0, +0x20, 0x69, 0xE7, 0xEC, 0x0C, 0xEF, 0x83, 0xF3, +0x18, 0x49, 0x3D, 0xE7, 0xE0, 0xA7, 0x06, 0x90, +0x38, 0x67, 0x2D, 0xEF, 0xFC, 0x4C, 0xE0, 0xC0, +0x01, 0x48, 0xE4, 0x44, 0x06, 0xD0, 0xED, 0x2F, +0x04, 0x4B, 0x02, 0x4D, 0x25, 0x10, 0x81, 0x85, +0x78, 0x74, 0x02, 0x60, 0x58, 0x74, 0x20, 0x61, +0x81, 0x85, 0x20, 0x9E, 0x06, 0xD3, 0x78, 0x74, +0x98, 0x67, 0x01, 0x5C, 0xF8, 0x67, 0xF4, 0x37, +0x07, 0xD1, 0x1F, 0x65, 0x1C, 0x6C, 0x07, 0x97, +0x0F, 0x68, 0x30, 0xF0, 0x20, 0x69, 0xE6, 0xEC, +0x0C, 0xEF, 0x83, 0xF3, 0x18, 0x49, 0x3D, 0xE7, +0xE0, 0xA7, 0x06, 0x91, 0x18, 0x67, 0x0D, 0xEF, +0xFC, 0x4C, 0xE0, 0xC1, 0x01, 0x49, 0xE4, 0x44, +0x06, 0xD1, 0xED, 0x2F, 0x08, 0x4B, 0x01, 0x4D, +0x9D, 0x67, 0x04, 0x10, 0xE0, 0xA4, 0x01, 0x4C, +0xE0, 0xC2, 0x01, 0x4A, 0x63, 0xEC, 0xFA, 0x61, +0x04, 0x4E, 0x01, 0x4D, 0x60, 0x85, 0x7F, 0xF7, +0x1B, 0x2B, 0x0A, 0x94, 0x01, 0x24, 0x60, 0xC2, +0x0A, 0x97, 0x09, 0x91, 0x08, 0x90, 0xEB, 0xE2, +0x05, 0x63, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x01, 0x6B, 0xA5, 0xF6, 0x08, 0x4A, 0x6B, 0xEB, +0x07, 0xF3, 0x6C, 0xC2, 0x07, 0xF3, 0x6D, 0xC2, +0x07, 0xF3, 0x6E, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x00, 0xF0, 0x12, 0x02, +0x00, 0xF0, 0x1E, 0x03, 0x00, 0x6D, 0xA0, 0xC2, +0x01, 0x4A, 0x6A, 0xEA, 0xFB, 0x61, 0x61, 0xA4, +0x40, 0xA4, 0x02, 0x5B, 0x29, 0x60, 0x80, 0x6C, +0x8B, 0xEC, 0x7C, 0x33, 0x4D, 0xEC, 0x6D, 0xE2, +0xBD, 0x67, 0x92, 0xC5, 0x61, 0xF1, 0x13, 0x4B, +0x30, 0xF0, 0x20, 0x6C, 0xA5, 0xF6, 0x08, 0x4C, +0x6C, 0x33, 0x6D, 0xE4, 0x04, 0x4B, 0x00, 0xF0, +0x13, 0x02, 0x00, 0xF0, 0x1B, 0x04, 0xA0, 0xAB, +0xA0, 0xC2, 0xA2, 0x35, 0xA1, 0xC2, 0x02, 0x4A, +0x00, 0x6D, 0x8A, 0xEA, 0xA0, 0xCB, 0x02, 0x4B, +0xF6, 0x61, 0x0D, 0x6A, 0x7D, 0x67, 0x50, 0xC3, +0x09, 0x6A, 0x4F, 0xCB, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, +0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x68, 0xA4, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, 0xE3, 0xF4, +0x64, 0xC2, 0x69, 0xA4, 0xC3, 0xF4, 0x79, 0xC2, +0x6A, 0xA4, 0xE3, 0xF4, 0x63, 0xC2, 0xAB, 0xA4, +0x0F, 0x6B, 0xAC, 0xEB, 0xE3, 0xF4, 0x6D, 0xC2, +0x6B, 0xA4, 0x72, 0x33, 0xE3, 0xF4, 0x6A, 0xC2, +0x8E, 0xA4, 0x01, 0x6B, 0x8C, 0xEB, 0xC3, 0xF4, +0x7B, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0x89, 0xF3, +0x03, 0x4B, 0x03, 0xF5, 0x68, 0xDA, 0x00, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0x60, 0xA4, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, 0xE3, 0xF4, +0x64, 0xC2, 0x61, 0xA4, 0xC3, 0xF4, 0x79, 0xC2, +0x62, 0xA4, 0xE3, 0xF4, 0x63, 0xC2, 0xA3, 0xA4, +0x0F, 0x6B, 0xAC, 0xEB, 0xE3, 0xF4, 0x6D, 0xC2, +0x63, 0xA4, 0x72, 0x33, 0xE3, 0xF4, 0x6A, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x0E, 0x72, 0x03, 0x60, +0x11, 0x72, 0x05, 0x60, 0x08, 0x10, 0x85, 0x67, +0x80, 0x18, 0x75, 0x14, 0x19, 0x10, 0x85, 0x67, +0x80, 0x18, 0x1B, 0x41, 0x15, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF5, 0x74, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xA2, 0xF6, 0x90, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0x63, 0xF3, 0x64, 0x9A, +0x8D, 0xEB, 0x63, 0xF3, 0x64, 0xDA, 0xFF, 0x6A, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, +0x42, 0xA4, 0x00, 0xA4, 0x21, 0xA4, 0x0A, 0xD2, +0x63, 0xA4, 0x00, 0xF0, 0x16, 0x02, 0x20, 0xF0, +0x02, 0x04, 0x00, 0x6D, 0xA0, 0xC2, 0x01, 0x4A, +0x8A, 0xEA, 0xFB, 0x61, 0x01, 0x6A, 0x6C, 0xEA, +0x10, 0x22, 0x04, 0x04, 0x00, 0xF0, 0x11, 0x05, +0x80, 0x18, 0x5F, 0x47, 0x7D, 0x67, 0x50, 0xA3, +0x01, 0x6C, 0x96, 0xC3, 0x57, 0xC3, 0x51, 0xA3, +0x58, 0xC3, 0x26, 0x6A, 0x54, 0xC3, 0x03, 0x6A, +0x51, 0xCB, 0x0A, 0x95, 0x01, 0x6A, 0x4C, 0xED, +0x1E, 0x25, 0x1E, 0x30, 0xE0, 0xF0, 0x13, 0x20, +0x3E, 0x31, 0xE0, 0xF0, 0x10, 0x21, 0xBD, 0x67, +0x56, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0x89, 0xF0, 0x78, 0x9A, 0x62, 0x34, +0x77, 0xC5, 0x00, 0xF6, 0x62, 0x33, 0x7A, 0xC5, +0x0D, 0x6B, 0x74, 0xC5, 0x05, 0x6B, 0x98, 0xC5, +0x71, 0xCD, 0x82, 0x34, 0x00, 0x6B, 0x99, 0xC5, +0x89, 0xF0, 0x78, 0xDA, 0xD8, 0x10, 0x0A, 0x93, +0x02, 0x6C, 0x8C, 0xEB, 0x31, 0x23, 0xDD, 0x67, +0x1E, 0x32, 0x96, 0xC6, 0x17, 0x2A, 0xC4, 0xF4, +0x6C, 0x40, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0x64, 0x33, 0x4D, 0xE3, 0x82, 0xAB, +0x44, 0xF4, 0x0C, 0x48, 0x04, 0x30, 0x49, 0xE0, +0x97, 0xC6, 0x82, 0x34, 0x98, 0xC6, 0x82, 0xAA, +0xA2, 0xCB, 0xA2, 0xCA, 0x99, 0xC6, 0x82, 0x34, +0x9A, 0xC6, 0x04, 0x10, 0x16, 0x6A, 0x4B, 0xEA, +0x7D, 0x67, 0x57, 0xC3, 0x3E, 0x32, 0x4E, 0x2A, +0xC4, 0xF4, 0x6C, 0x41, 0x30, 0xF0, 0x20, 0x6A, +0x64, 0x33, 0xA5, 0xF6, 0x08, 0x4A, 0x4D, 0xE3, +0x82, 0xAB, 0xBD, 0x67, 0x44, 0xF4, 0x0C, 0x49, +0x9B, 0xC5, 0x82, 0x34, 0x9C, 0xC5, 0x34, 0x10, +0x0A, 0x95, 0x08, 0x6A, 0xAC, 0xEA, 0x43, 0x22, +0xDD, 0x67, 0x1E, 0x32, 0x96, 0xC6, 0x17, 0x2A, +0xC4, 0xF4, 0x8C, 0x40, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0x84, 0x34, 0x51, 0xE4, +0xA2, 0xAC, 0x44, 0xF5, 0x0C, 0x48, 0x04, 0x30, +0x49, 0xE0, 0xB7, 0xC6, 0xA2, 0x35, 0xB8, 0xC6, +0xA2, 0xAA, 0x62, 0xCC, 0x62, 0xCA, 0xB9, 0xC6, +0xA2, 0x35, 0xBA, 0xC6, 0x04, 0x10, 0x16, 0x6A, +0x4B, 0xEA, 0x7D, 0x67, 0x57, 0xC3, 0x3E, 0x32, +0x19, 0x2A, 0xC4, 0xF4, 0x6C, 0x41, 0x30, 0xF0, +0x20, 0x6A, 0x64, 0x33, 0xA5, 0xF6, 0x08, 0x4A, +0x4D, 0xE3, 0x82, 0xAB, 0xBD, 0x67, 0x44, 0xF5, +0x0C, 0x49, 0x9B, 0xC5, 0x82, 0x34, 0x9C, 0xC5, +0x24, 0x31, 0x49, 0xE1, 0x82, 0xAA, 0x9D, 0xC5, +0x82, 0x34, 0x9E, 0xC5, 0x00, 0x6C, 0x82, 0xCB, +0x82, 0xCA, 0x04, 0x10, 0x16, 0x6A, 0x4B, 0xEA, +0xDD, 0x67, 0x5B, 0xC6, 0x0D, 0x6A, 0x7D, 0x67, +0x54, 0xC3, 0x09, 0x6A, 0x56, 0x10, 0x0A, 0x94, +0x56, 0x2C, 0x1E, 0x32, 0x24, 0x2A, 0x44, 0xF3, +0x6C, 0x40, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0x64, 0x33, 0x4D, 0xE3, 0x80, 0xAB, +0xBD, 0x67, 0x16, 0xC5, 0x97, 0xC5, 0x82, 0x34, +0x98, 0xC5, 0xC4, 0xF3, 0x8C, 0x40, 0x84, 0x34, +0x49, 0xE4, 0x80, 0xAA, 0x14, 0x30, 0xC7, 0x45, +0x99, 0xC5, 0x82, 0x34, 0x9A, 0xC5, 0x30, 0xF0, +0x20, 0x6C, 0xA2, 0xF6, 0x94, 0x9C, 0x21, 0x4E, +0xC0, 0xAE, 0x81, 0xE0, 0x80, 0xA0, 0xC0, 0xCB, +0xC0, 0xCA, 0x9B, 0xC5, 0x02, 0x10, 0x9D, 0x67, +0x16, 0xC4, 0x3E, 0x32, 0x24, 0x2A, 0x44, 0xF3, +0x6C, 0x41, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0x64, 0x33, 0x4D, 0xE3, 0x80, 0xAB, +0xBD, 0x67, 0x3C, 0xC5, 0x9D, 0xC5, 0x82, 0x34, +0x9E, 0xC5, 0xC4, 0xF3, 0x8C, 0x41, 0x84, 0x34, +0x49, 0xE4, 0x80, 0xAA, 0x34, 0x31, 0x9F, 0xC5, +0x82, 0x34, 0x20, 0xF0, 0x80, 0xC5, 0x30, 0xF0, +0x20, 0x6C, 0xA2, 0xF6, 0x94, 0x9C, 0x85, 0xE1, +0x80, 0xA1, 0x20, 0xF0, 0x81, 0xC5, 0x00, 0x6C, +0x80, 0xCB, 0x80, 0xCA, 0x02, 0x10, 0x5D, 0x67, +0x3C, 0xC2, 0x04, 0x6A, 0x7D, 0x67, 0x54, 0xC3, +0x0C, 0x6A, 0x51, 0xCB, 0x04, 0x10, 0x9D, 0x67, +0x04, 0x6B, 0x74, 0xC4, 0x51, 0xCC, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x05, 0x04, +0x40, 0xEA, 0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, +0x08, 0x63, 0x00, 0xEF, 0xF8, 0x63, 0x0F, 0x62, +0x0E, 0xD1, 0x0D, 0xD0, 0x00, 0x6A, 0x10, 0xD4, +0x01, 0x68, 0x62, 0x67, 0xA0, 0xA4, 0x0E, 0x25, +0xFF, 0x6D, 0x01, 0x4B, 0xAC, 0xEB, 0x01, 0x4A, +0x0B, 0x73, 0xAC, 0xEA, 0x03, 0x61, 0x01, 0x48, +0xAC, 0xE8, 0x00, 0x6B, 0x37, 0x72, 0x01, 0x4C, +0xF1, 0x61, 0x37, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xA5, 0xF6, 0x08, 0x4B, 0x07, 0xF3, 0x90, 0xA3, +0x0F, 0x5C, 0x01, 0x4C, 0x01, 0x61, 0x00, 0x6C, +0x07, 0xF3, 0x90, 0xC3, 0x30, 0xF0, 0x20, 0x6B, +0xAD, 0xF1, 0x78, 0xA3, 0x0B, 0x6D, 0x2F, 0x40, +0x70, 0x33, 0x0A, 0xD3, 0x0A, 0x94, 0xFF, 0x6B, +0x6C, 0xE9, 0x6C, 0xEC, 0x0A, 0xD4, 0x01, 0x6C, +0x13, 0xE4, 0xB8, 0xEC, 0x12, 0xEC, 0x91, 0xE2, +0x6C, 0xEC, 0x09, 0xD4, 0x00, 0x6A, 0x01, 0x4C, +0x0B, 0xD4, 0x08, 0xD2, 0x3C, 0x10, 0x08, 0x94, +0x0B, 0x6B, 0x0A, 0x95, 0x78, 0xEC, 0x9D, 0x67, +0x12, 0xEB, 0x4C, 0xEB, 0x0F, 0x6A, 0x2C, 0xEA, +0xAD, 0xEA, 0x08, 0x95, 0x52, 0xC4, 0x4F, 0x40, +0xAE, 0xEA, 0x07, 0x22, 0x10, 0x92, 0x00, 0xF0, +0x1E, 0x04, 0x6D, 0xE2, 0x00, 0xF0, 0x13, 0x02, +0x0F, 0x10, 0x10, 0x94, 0x09, 0x95, 0x00, 0xF0, +0x13, 0x02, 0x6D, 0xE4, 0xB1, 0xE2, 0x04, 0x10, +0xA0, 0xA3, 0x01, 0x4B, 0xA0, 0xC2, 0x01, 0x4A, +0x8A, 0xEA, 0xFA, 0x61, 0x0B, 0x92, 0x07, 0x10, +0xA0, 0xA3, 0x01, 0x4B, 0xA0, 0xC2, 0x01, 0x4A, +0x8A, 0xEA, 0xFA, 0x61, 0x0C, 0x6A, 0x9D, 0x67, +0x00, 0x6B, 0x4F, 0xCC, 0x70, 0xC4, 0x05, 0x95, +0x04, 0x94, 0x06, 0x96, 0x07, 0x97, 0xFF, 0x49, +0x80, 0x18, 0x00, 0x40, 0x08, 0x95, 0xFF, 0x6A, +0x4C, 0xE9, 0x01, 0x4D, 0x08, 0xD5, 0x08, 0x93, +0xFF, 0x6A, 0x4C, 0xEB, 0x03, 0xEB, 0xBF, 0x61, +0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xA2, 0xF6, 0x58, 0x9A, 0xAD, 0xF1, +0x78, 0x9B, 0x07, 0xD5, 0x08, 0xD6, 0x6C, 0xEA, +0x00, 0xF1, 0x00, 0x72, 0x09, 0xD7, 0x06, 0xD4, +0x0C, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x06, 0x95, +0xA5, 0xF5, 0x08, 0x48, 0x90, 0x67, 0x07, 0x06, +0x80, 0x18, 0xAB, 0x40, 0x90, 0x67, 0x80, 0x18, +0xE3, 0x41, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x61, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0xA0, 0xA4, 0xE3, 0xF4, 0x6B, 0xC2, +0xC3, 0xF4, 0x70, 0x9A, 0x20, 0x6C, 0x8C, 0xEB, +0x08, 0x23, 0xE3, 0xF4, 0xCB, 0xA2, 0x30, 0xF0, +0x20, 0x6C, 0xA3, 0xF3, 0x0C, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xF3, 0x63, 0x19, 0x62, 0x18, 0xD1, 0x17, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x15, 0xD2, 0x40, 0xF0, +0x06, 0x03, 0x20, 0xF0, 0x1A, 0x02, 0x00, 0x6C, +0x80, 0xC2, 0x01, 0x4A, 0x6A, 0xEA, 0xFB, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0xAD, 0xF1, 0x14, 0x4B, +0x00, 0x68, 0x12, 0xD3, 0x14, 0xD0, 0x70, 0x10, +0x12, 0x92, 0x40, 0xA2, 0xFF, 0x72, 0x13, 0xD2, +0x0A, 0x61, 0x7D, 0x67, 0x09, 0xE3, 0x01, 0x6B, +0x6B, 0xEB, 0x20, 0xF0, 0x7A, 0xC2, 0x01, 0x48, +0xFF, 0x6A, 0x4C, 0xE8, 0x65, 0x10, 0x13, 0x92, +0x30, 0x69, 0x9D, 0x67, 0x38, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xA9, 0xF7, 0x10, 0x4A, 0x0E, 0x03, +0x0D, 0xE3, 0x04, 0x48, 0x12, 0xE9, 0x25, 0xE2, +0x47, 0x44, 0x45, 0x4A, 0x80, 0xA2, 0x82, 0xC3, +0x4A, 0xA9, 0x03, 0x6C, 0x43, 0xC3, 0x42, 0xA1, +0x44, 0xC3, 0x47, 0xA1, 0x4A, 0x32, 0x8C, 0xEA, +0x45, 0xC3, 0xFF, 0x6B, 0x6C, 0xE8, 0x30, 0xF0, +0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, 0xC3, 0xF4, +0xB0, 0x9B, 0xE7, 0xF7, 0x1D, 0x4C, 0xAC, 0xEC, +0x0E, 0x24, 0xC3, 0xF4, 0x74, 0x9B, 0x05, 0x5B, +0x0A, 0x61, 0xCA, 0xA9, 0xE2, 0xA1, 0x13, 0x95, +0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF3, 0x04, 0x4C, +0x04, 0xD2, 0x80, 0x18, 0x25, 0x42, 0x15, 0x92, +0x02, 0x6B, 0x6E, 0xEA, 0x21, 0x2A, 0x96, 0xA9, +0x0E, 0x03, 0x0D, 0xE3, 0x82, 0xC3, 0x96, 0xA9, +0x02, 0x48, 0x82, 0x34, 0x83, 0xC3, 0x56, 0xC9, +0xFF, 0x6A, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0xC3, 0xF4, 0x90, 0x9A, +0x08, 0xF0, 0x00, 0x6B, 0x8C, 0xEB, 0x0C, 0x23, +0xC3, 0xF4, 0x54, 0x9A, 0x05, 0x5A, 0x08, 0x61, +0x13, 0x95, 0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF3, +0x08, 0x4C, 0x00, 0x6E, 0x80, 0x18, 0x25, 0x42, +0x14, 0x94, 0xFF, 0x6A, 0x01, 0x4C, 0x4C, 0xEC, +0x12, 0x92, 0x14, 0xD4, 0x01, 0x4A, 0x12, 0xD2, +0x14, 0x93, 0x15, 0x94, 0x83, 0xEB, 0x8C, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0xC3, 0xF4, 0x90, 0x9A, 0x08, 0xF0, 0x00, 0x6B, +0x8C, 0xEB, 0x2D, 0x23, 0xC3, 0xF4, 0x54, 0x9A, +0x05, 0x5A, 0x29, 0x61, 0x5D, 0x67, 0x20, 0xF0, +0xBA, 0xA2, 0x20, 0xF0, 0xDB, 0xA2, 0x20, 0xF0, +0xFC, 0xA2, 0x20, 0xF0, 0x5D, 0xA2, 0x7D, 0x67, +0x30, 0xF0, 0x20, 0x6C, 0x04, 0xD2, 0x20, 0xF0, +0x5E, 0xA3, 0x03, 0xF4, 0x00, 0x4C, 0x05, 0xD2, +0x20, 0xF0, 0x5F, 0xA3, 0x06, 0xD2, 0x40, 0xF0, +0x40, 0xA3, 0x07, 0xD2, 0x40, 0xF0, 0x41, 0xA3, +0x08, 0xD2, 0x40, 0xF0, 0x42, 0xA3, 0x09, 0xD2, +0x40, 0xF0, 0x43, 0xA3, 0x0A, 0xD2, 0x40, 0xF0, +0x44, 0xA3, 0x0B, 0xD2, 0x40, 0xF0, 0x45, 0xA3, +0x0C, 0xD2, 0x80, 0x18, 0x25, 0x42, 0x9D, 0x67, +0x2C, 0x6A, 0x20, 0xF0, 0x58, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x40, 0xF0, +0x06, 0xCC, 0x0E, 0x04, 0x40, 0xEA, 0x19, 0x97, +0x18, 0x91, 0x17, 0x90, 0x0D, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x43, 0xA4, 0x62, 0xA4, 0xC0, 0xA4, 0x40, 0x32, +0x40, 0x32, 0x60, 0x33, 0x4D, 0xE3, 0x41, 0xA4, +0x0F, 0x6D, 0xCC, 0xED, 0x4D, 0xE3, 0x44, 0xA4, +0xD2, 0x36, 0x01, 0x5E, 0x00, 0xF6, 0x40, 0x32, +0x49, 0xE3, 0x08, 0xD2, 0xB4, 0x32, 0x06, 0xD2, +0x06, 0x93, 0xFF, 0x6A, 0x4C, 0xEB, 0x06, 0xD3, +0x03, 0x6A, 0x78, 0x67, 0x6F, 0xE2, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, 0xC3, 0xF4, +0x90, 0x9A, 0x07, 0xD3, 0x08, 0xF0, 0x00, 0x6B, +0x8C, 0xEB, 0x0B, 0x23, 0xC3, 0xF4, 0x54, 0x9A, +0x05, 0x5A, 0x07, 0x61, 0x08, 0x97, 0x30, 0xF0, +0x20, 0x6C, 0x23, 0xF4, 0x1C, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x80, 0x18, 0xF5, 0x40, 0x00, 0x68, +0x06, 0x91, 0x4E, 0x10, 0x08, 0x94, 0x01, 0x6A, +0x44, 0xE9, 0x8C, 0xEA, 0x1C, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, 0x4D, 0xE0, +0x07, 0xF3, 0x2C, 0xC3, 0xC3, 0xF4, 0x90, 0x9A, +0xFF, 0x6B, 0x01, 0x48, 0x6C, 0xE8, 0x07, 0xF7, +0x01, 0x4B, 0x8C, 0xEB, 0x0C, 0x23, 0xC3, 0xF4, +0x54, 0x9A, 0x05, 0x5A, 0x08, 0x61, 0x30, 0xF0, +0x20, 0x6C, 0x63, 0xF4, 0x04, 0x4C, 0xB0, 0x67, +0xD1, 0x67, 0x80, 0x18, 0x25, 0x42, 0x07, 0x92, +0x4A, 0xE8, 0x04, 0x60, 0x06, 0x92, 0x1F, 0x4A, +0x2E, 0xEA, 0x23, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0xC3, 0xF4, 0x90, 0x9A, +0x08, 0xF0, 0x00, 0x6B, 0x8C, 0xEB, 0x12, 0x23, +0xC3, 0xF4, 0x74, 0x9A, 0x05, 0x5B, 0x0E, 0x61, +0x07, 0xF3, 0xCC, 0xA2, 0x07, 0xF3, 0xED, 0xA2, +0x07, 0xF3, 0x4E, 0xA2, 0x30, 0xF0, 0x20, 0x6C, +0x83, 0xF4, 0x04, 0x4C, 0xB0, 0x67, 0x04, 0xD2, +0x80, 0x18, 0x25, 0x42, 0x0D, 0x20, 0x07, 0x94, +0x00, 0x68, 0x80, 0x18, 0x44, 0x42, 0x80, 0x18, +0xF5, 0x40, 0x01, 0x49, 0xFF, 0x6A, 0x4C, 0xE9, +0x06, 0x92, 0x20, 0x4A, 0x42, 0xE9, 0xAE, 0x61, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF6, 0x63, 0x13, 0x62, +0x12, 0xD1, 0x11, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0xFF, 0x6A, 0x8C, 0xEA, 0x22, 0xF1, 0x84, 0x9B, +0x22, 0xF1, 0x04, 0x4B, 0x01, 0x72, 0x04, 0xD4, +0x81, 0x9B, 0x68, 0xA3, 0x05, 0xD4, 0x9D, 0x67, +0x78, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF1, +0x98, 0x9B, 0x02, 0xF1, 0x18, 0x4B, 0x07, 0xD4, +0x81, 0x9B, 0x68, 0xA3, 0x08, 0xD4, 0x9D, 0x67, +0x20, 0xF0, 0x64, 0xC4, 0x20, 0x61, 0x00, 0x68, +0x5D, 0x67, 0x0D, 0xE2, 0x5C, 0xA3, 0x0B, 0x5A, +0x01, 0x61, 0x0A, 0x6A, 0xFF, 0x6B, 0x6C, 0xEA, +0x02, 0x4A, 0x7D, 0x67, 0x5B, 0xCB, 0x0E, 0x6A, +0x20, 0xF0, 0x48, 0xC3, 0x01, 0x6A, 0x20, 0xF0, +0x4A, 0xC3, 0x09, 0xE3, 0x50, 0xA2, 0x0B, 0x95, +0x0C, 0x96, 0x20, 0xF0, 0x4B, 0xC3, 0x0A, 0x94, +0x0D, 0x97, 0x01, 0x48, 0x80, 0x18, 0x00, 0x40, +0x09, 0x70, 0xE2, 0x61, 0x71, 0x10, 0x08, 0x72, +0x37, 0x61, 0x20, 0xF0, 0x05, 0x04, 0x07, 0x00, +0x04, 0x01, 0x0E, 0xD4, 0x40, 0xA0, 0x0B, 0x5A, +0x01, 0x61, 0x0A, 0x6A, 0xFF, 0x6B, 0x4C, 0xEB, +0x9D, 0x67, 0x42, 0x43, 0x5B, 0xCC, 0x0E, 0x6A, +0x20, 0xF0, 0x48, 0xC4, 0x08, 0x6A, 0x20, 0xF0, +0x4A, 0xC4, 0x40, 0xA1, 0x20, 0xF0, 0x4B, 0xC4, +0x00, 0x6A, 0x0E, 0x10, 0x9D, 0x67, 0x55, 0xE4, +0xC0, 0xA1, 0x30, 0xF0, 0x20, 0x6C, 0xA5, 0xF6, +0x08, 0x4C, 0x91, 0xE2, 0xD1, 0xE4, 0x07, 0xF1, +0x88, 0xA4, 0x01, 0x4A, 0x20, 0xF0, 0x8C, 0xC5, +0xFF, 0x6C, 0x4C, 0xEC, 0x63, 0xEC, 0xEE, 0x61, +0x0A, 0x94, 0x0B, 0x95, 0x0C, 0x96, 0x0D, 0x97, +0x01, 0x48, 0x01, 0x49, 0x80, 0x18, 0x00, 0x40, +0x0E, 0x92, 0x4A, 0xE8, 0xCF, 0x61, 0x38, 0x10, +0x09, 0x72, 0x36, 0x61, 0x20, 0xF0, 0x05, 0x03, +0x07, 0x00, 0x04, 0x01, 0x0F, 0xD3, 0x40, 0xA0, +0x0B, 0x5A, 0x01, 0x61, 0x0A, 0x6A, 0xFF, 0x6B, +0x4C, 0xEB, 0x9D, 0x67, 0x42, 0x43, 0x5B, 0xCC, +0x0E, 0x6A, 0x20, 0xF0, 0x48, 0xC4, 0x09, 0x6A, +0x20, 0xF0, 0x4A, 0xC4, 0x40, 0xA1, 0x20, 0xF0, +0x4B, 0xC4, 0x00, 0x6A, 0x0E, 0x10, 0x9D, 0x67, +0x55, 0xE4, 0xC0, 0xA1, 0x30, 0xF0, 0x20, 0x6C, +0xA5, 0xF6, 0x08, 0x4C, 0x91, 0xE2, 0xD1, 0xE4, +0x47, 0xF1, 0x9C, 0xA4, 0x01, 0x4A, 0x20, 0xF0, +0x8C, 0xC5, 0xFF, 0x6C, 0x4C, 0xEC, 0x63, 0xEC, +0xEE, 0x61, 0x0A, 0x94, 0x0B, 0x95, 0x0C, 0x96, +0x0D, 0x97, 0x01, 0x48, 0x01, 0x49, 0x80, 0x18, +0x00, 0x40, 0x0F, 0x92, 0x4A, 0xE8, 0xCF, 0x61, +0x13, 0x97, 0x12, 0x91, 0x11, 0x90, 0x0A, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x44, 0x67, 0x65, 0xA2, +0x02, 0x6D, 0x81, 0xA4, 0xAC, 0xEB, 0x03, 0x23, +0x80, 0x18, 0xF7, 0x42, 0x3D, 0x10, 0x01, 0x74, +0x22, 0xA2, 0x04, 0xA2, 0x43, 0xA2, 0x07, 0x61, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF4, 0x0C, 0x4C, +0x80, 0x18, 0xE3, 0x41, 0x31, 0x10, 0x10, 0x30, +0x08, 0x74, 0x4D, 0xE8, 0x0E, 0x61, 0x30, 0xF0, +0x20, 0x6C, 0xA3, 0xF4, 0x18, 0x4C, 0x80, 0x18, +0xE3, 0x41, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0x45, 0xE1, 0x07, 0xF1, 0x08, 0xC1, +0x1F, 0x10, 0x09, 0x74, 0x0E, 0x61, 0x30, 0xF0, +0x20, 0x6C, 0xC3, 0xF4, 0x18, 0x4C, 0x80, 0x18, +0xE3, 0x41, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0x45, 0xE1, 0x47, 0xF1, 0x1C, 0xC1, +0x0F, 0x10, 0x0A, 0x74, 0x0D, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xA2, 0xF6, 0xFC, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xE3, 0xF4, 0x08, 0x4C, 0xF9, 0x6D, +0x28, 0xF3, 0x01, 0x6E, 0x80, 0x18, 0x25, 0x42, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0x30, 0x6B, 0x78, 0xEC, +0x30, 0xF0, 0x20, 0x6E, 0xA9, 0xF7, 0x10, 0x4E, +0xAC, 0xEA, 0x05, 0x6D, 0x12, 0xEB, 0x6D, 0xE6, +0xDD, 0x67, 0xAF, 0xCE, 0x0F, 0x6D, 0xB0, 0xC6, +0x92, 0xC6, 0x53, 0xC6, 0x5B, 0xA3, 0x07, 0x97, +0x04, 0x94, 0x54, 0xC6, 0x5C, 0xA3, 0x55, 0xC6, +0x5D, 0xA3, 0x56, 0xC6, 0x05, 0x95, 0x06, 0x96, +0x80, 0x18, 0x00, 0x40, 0x09, 0x97, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, +0x0E, 0xD1, 0x0D, 0xD0, 0x14, 0x92, 0x15, 0x93, +0x16, 0x90, 0x0A, 0xD2, 0xFF, 0x6A, 0x1A, 0x65, +0xAC, 0xEA, 0x08, 0xD2, 0x58, 0x67, 0xCC, 0xEA, +0x17, 0x91, 0x1A, 0x65, 0x0A, 0x92, 0xFF, 0xF7, +0x1F, 0x6D, 0xAC, 0xEF, 0xAC, 0xEA, 0xAC, 0xEB, +0xAC, 0xE8, 0xAC, 0xE9, 0x30, 0xF0, 0x20, 0x6D, +0xA5, 0xF6, 0x08, 0x4D, 0xC3, 0xF4, 0xD0, 0x9D, +0x0A, 0xD2, 0x8C, 0xEE, 0x36, 0x26, 0xC3, 0xF4, +0x94, 0x9D, 0x05, 0x6A, 0x4E, 0xEC, 0x31, 0x2C, +0x30, 0xF0, 0x20, 0x6C, 0xA2, 0xF6, 0x98, 0x9C, +0x07, 0xF3, 0xB0, 0x9D, 0x7F, 0x4A, 0x7C, 0x4A, +0xAC, 0xEC, 0x4E, 0xEC, 0x26, 0x2C, 0x9D, 0x67, +0x47, 0x44, 0x19, 0x4A, 0x40, 0xA2, 0xF4, 0xC4, +0xE2, 0x37, 0x52, 0xC4, 0x58, 0x67, 0x53, 0xC4, +0x47, 0x44, 0x21, 0x4A, 0x40, 0xA2, 0xF5, 0xC4, +0x56, 0xC4, 0x0A, 0x94, 0x82, 0x32, 0x9D, 0x67, +0x57, 0xC4, 0x02, 0x6A, 0x4B, 0xEA, 0x78, 0xC4, +0x1A, 0xC4, 0x3C, 0xC4, 0x50, 0xC4, 0x62, 0x33, +0x02, 0x30, 0x22, 0x31, 0x0C, 0x6A, 0x79, 0xC4, +0x1B, 0xC4, 0x3D, 0xC4, 0x4F, 0xCC, 0x05, 0x95, +0x04, 0x94, 0x06, 0x96, 0x07, 0x97, 0x80, 0x18, +0x00, 0x40, 0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, +0x08, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x40, 0xA4, 0x70, 0x69, +0x30, 0xF0, 0x20, 0x68, 0x06, 0xD2, 0x81, 0xA4, +0xA5, 0xF6, 0x08, 0x48, 0x05, 0xD4, 0x05, 0x92, +0x9E, 0x33, 0x07, 0xD3, 0x8C, 0xE9, 0x7D, 0x67, +0x03, 0x6C, 0x8C, 0xEA, 0x87, 0x43, 0x11, 0x4C, +0x60, 0xA4, 0x32, 0x31, 0x04, 0xD2, 0x9D, 0x67, +0x09, 0xE1, 0xE4, 0xF0, 0x78, 0xC2, 0x67, 0x44, +0x09, 0x4B, 0x80, 0xA3, 0xE4, 0xF0, 0x9A, 0xC2, +0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF5, 0x14, 0x4C, +0x80, 0x18, 0x25, 0x42, 0x5D, 0x67, 0x67, 0x42, +0x15, 0x4B, 0x40, 0xA3, 0x07, 0x93, 0x04, 0xF1, +0x41, 0xC0, 0x21, 0x23, 0xE4, 0xF0, 0x7E, 0xA0, +0x01, 0x6A, 0x44, 0xE9, 0x6D, 0xEA, 0xE4, 0xF0, +0x5E, 0xC0, 0xC3, 0xF4, 0x50, 0x98, 0x10, 0x6B, +0x6C, 0xEA, 0x0D, 0x22, 0xC3, 0xF4, 0x54, 0x98, +0x05, 0x5A, 0x09, 0x61, 0x04, 0x96, 0x06, 0x97, +0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF5, 0x00, 0x4C, +0xB1, 0x67, 0x80, 0x18, 0x25, 0x42, 0x05, 0x94, +0x0C, 0x6D, 0x8C, 0xED, 0xAA, 0x35, 0x91, 0x67, +0x80, 0x18, 0xB2, 0x4B, 0x23, 0x10, 0xE4, 0xF0, +0x7E, 0xA0, 0x01, 0x6A, 0x44, 0xE9, 0x4F, 0xEA, +0x6C, 0xEA, 0xE4, 0xF0, 0x5E, 0xC0, 0xC3, 0xF4, +0x50, 0x98, 0x10, 0x6B, 0x6C, 0xEA, 0x0D, 0x22, +0xC3, 0xF4, 0x54, 0x98, 0x05, 0x5A, 0x09, 0x61, +0x04, 0x96, 0x06, 0x97, 0x30, 0xF0, 0x20, 0x6C, +0x23, 0xF5, 0x14, 0x4C, 0xB1, 0x67, 0x80, 0x18, +0x25, 0x42, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0x45, 0xE1, 0x01, 0x6A, 0x4B, 0xEA, +0xE4, 0xF0, 0x58, 0xC1, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, +0x40, 0xA4, 0x30, 0x68, 0x20, 0x6B, 0x18, 0xEA, +0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF7, +0x10, 0x4A, 0x24, 0x67, 0x12, 0xE8, 0x01, 0xE2, +0x58, 0xA0, 0x0A, 0xD2, 0x42, 0xA4, 0xBA, 0xA0, +0x58, 0xC0, 0x43, 0xA4, 0x01, 0x6C, 0x6C, 0xEA, +0xBF, 0x4B, 0xAC, 0xEB, 0x4D, 0xEB, 0x7A, 0xC0, +0x43, 0xA1, 0xA8, 0xA0, 0x4C, 0xEC, 0x02, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x8D, 0xEA, 0x5A, 0xC0, +0x83, 0xA1, 0x02, 0x6B, 0x6C, 0xEC, 0xFB, 0x4B, +0x4C, 0xEB, 0x8D, 0xEB, 0x7A, 0xC0, 0x83, 0xA1, +0x40, 0x6A, 0x4C, 0xEC, 0x80, 0x4A, 0xFF, 0x4A, +0x6C, 0xEA, 0x8D, 0xEA, 0x5A, 0xC0, 0x83, 0xA1, +0x7F, 0x6B, 0xAC, 0xEB, 0x9E, 0x34, 0x9C, 0x34, +0x8D, 0xEB, 0x68, 0xC0, 0x83, 0xA1, 0x09, 0xD4, +0x64, 0xA1, 0x7E, 0xC0, 0x65, 0xA1, 0x07, 0xD3, +0x86, 0xA1, 0x04, 0x6B, 0x8C, 0xEB, 0x6B, 0x33, +0x08, 0xD4, 0x20, 0xF0, 0x6E, 0xC0, 0x20, 0x6B, +0x6C, 0xEA, 0x22, 0x22, 0x06, 0x94, 0x80, 0x18, +0x95, 0x45, 0xC7, 0xA0, 0x03, 0x6C, 0xB8, 0xA0, +0xCA, 0x36, 0x8C, 0xEE, 0x06, 0x94, 0xFF, 0x6A, +0x4C, 0xEE, 0x80, 0x18, 0x42, 0x4F, 0x30, 0xF0, +0x20, 0x6A, 0x69, 0xF3, 0x58, 0x9A, 0x20, 0x6B, +0x6C, 0xEA, 0x0E, 0x22, 0xE7, 0xA0, 0x03, 0x6C, +0x06, 0x95, 0xEA, 0x37, 0xD8, 0xA0, 0x8C, 0xEF, +0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF5, +0x0C, 0x4C, 0x4C, 0xEF, 0x80, 0x18, 0x25, 0x42, +0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF3, 0x58, 0x9A, +0x20, 0x6B, 0x6C, 0xEA, 0x0E, 0x22, 0x5E, 0xA0, +0xD8, 0xA0, 0xE3, 0xA1, 0x04, 0xD2, 0x20, 0xF0, +0x4E, 0xA0, 0x06, 0x95, 0x30, 0xF0, 0x20, 0x6C, +0x63, 0xF5, 0x04, 0x4C, 0x05, 0xD2, 0x80, 0x18, +0x25, 0x42, 0x09, 0x93, 0x08, 0x6A, 0x6C, 0xEA, +0x19, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF3, +0x58, 0x9A, 0x08, 0x94, 0x20, 0x6B, 0x03, 0x69, +0x6C, 0xEA, 0x8C, 0xE9, 0x09, 0x22, 0x06, 0x95, +0x07, 0x96, 0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF5, +0x04, 0x4C, 0xF1, 0x67, 0x80, 0x18, 0x25, 0x42, +0x06, 0x94, 0x07, 0x95, 0x00, 0x6E, 0xF1, 0x67, +0x80, 0x18, 0xE7, 0x4B, 0xFA, 0xA0, 0xD8, 0xA0, +0x06, 0x94, 0x0A, 0x95, 0x01, 0x6A, 0xF6, 0x37, +0x4C, 0xEF, 0x80, 0x18, 0xE6, 0x4A, 0x0F, 0x97, +0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x03, 0xA4, +0x44, 0xA4, 0xC0, 0xA4, 0x00, 0x30, 0x00, 0x30, +0x00, 0xF6, 0x40, 0x32, 0xA5, 0xA4, 0xE6, 0xA4, +0x0D, 0xEA, 0x01, 0xA4, 0x82, 0xA4, 0x30, 0xF0, +0x20, 0x6B, 0x0D, 0xEA, 0x80, 0x34, 0xA5, 0xF6, +0x08, 0x4B, 0x8D, 0xEA, 0xC3, 0xF4, 0x50, 0xDB, +0x07, 0xF3, 0xD1, 0xC3, 0x0A, 0x26, 0x01, 0x6C, +0x4C, 0xEC, 0x07, 0x24, 0x07, 0xF3, 0xB2, 0xC3, +0x07, 0xF3, 0xF3, 0xC3, 0x02, 0x25, 0x80, 0x18, +0xB1, 0x50, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xA4, +0x30, 0xF0, 0x20, 0x6D, 0xC2, 0xF6, 0x40, 0x9A, +0xC2, 0xF6, 0xA4, 0x9D, 0x0C, 0x33, 0x49, 0xE3, +0x03, 0x4C, 0xAD, 0xE3, 0xA0, 0xA4, 0x01, 0x4C, +0xA0, 0xC2, 0x01, 0x4A, 0x6A, 0xEA, 0xFA, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0xC3, 0xF4, 0x70, 0x9A, 0x20, 0x6C, 0x8C, 0xEB, +0x11, 0x23, 0xC3, 0xF4, 0x54, 0x9A, 0x05, 0x5A, +0x0D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, +0x40, 0x9A, 0x0C, 0x33, 0x30, 0xF0, 0x20, 0x6C, +0x49, 0xE3, 0xA0, 0x9A, 0xA3, 0xF5, 0x00, 0x4C, +0x80, 0x18, 0x25, 0x42, 0x30, 0xF0, 0x20, 0x6A, +0xC2, 0xF6, 0x40, 0x9A, 0x0C, 0x33, 0x30, 0xF0, +0x20, 0x6C, 0x49, 0xE3, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF6, 0x68, 0x9B, 0x40, 0x9A, 0xA5, 0xF6, +0x08, 0x4C, 0xFF, 0x6E, 0x6C, 0xEA, 0xA3, 0xF4, +0x71, 0xA4, 0xA3, 0xF4, 0x96, 0xA4, 0xAF, 0x43, +0xCC, 0xED, 0x02, 0x5D, 0x04, 0x61, 0x01, 0x74, +0x02, 0x60, 0x02, 0x74, 0x11, 0x61, 0x10, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, 0x4C, 0x9A, +0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xC2, 0xF6, 0x70, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF4, 0x4C, 0x9A, 0x60, 0xDA, 0xF0, 0x17, +0x03, 0x73, 0x13, 0x61, 0x00, 0xF4, 0x00, 0x5A, +0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, +0x4C, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF6, 0x74, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF4, 0x4C, 0x9A, 0x60, 0xDA, +0xF0, 0x17, 0x90, 0x67, 0x80, 0x18, 0x38, 0x4C, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x20, 0xA4, 0x30, 0x6E, 0x30, 0xF0, 0x20, 0x6A, +0xD8, 0xE9, 0xA9, 0xF7, 0x10, 0x4A, 0x61, 0xA4, +0x7E, 0x33, 0x68, 0x33, 0x12, 0xE8, 0x01, 0xE2, +0xAC, 0xA0, 0x05, 0x6A, 0x4B, 0xEA, 0xAC, 0xEA, +0x6D, 0xEA, 0x4C, 0xC0, 0xA1, 0xA4, 0x60, 0x6B, +0xAC, 0xEB, 0x76, 0x33, 0x06, 0xD3, 0xE8, 0xA0, +0x1F, 0x6B, 0xAC, 0xEB, 0x20, 0x6D, 0xAB, 0xED, +0xEC, 0xED, 0x6D, 0xED, 0xA8, 0xC0, 0xE2, 0xA4, +0x41, 0x6B, 0x6B, 0xEB, 0xFE, 0x37, 0xF8, 0x37, +0xAC, 0xEB, 0xED, 0xEB, 0x68, 0xC0, 0xA2, 0xA4, +0x40, 0x6F, 0xEC, 0xED, 0xBA, 0x35, 0xB4, 0x37, +0x21, 0x6D, 0xAB, 0xED, 0x6C, 0xED, 0xED, 0xED, +0xA8, 0xC0, 0xA2, 0xA4, 0x03, 0x6B, 0xCC, 0xED, +0xCC, 0x4E, 0xB2, 0x35, 0xCC, 0xEA, 0xAD, 0xEA, +0x4C, 0xC0, 0x42, 0xA4, 0x08, 0x6D, 0x03, 0x4C, +0x4C, 0xED, 0xAE, 0x35, 0x07, 0xD5, 0x4C, 0xEB, +0x47, 0xA0, 0x30, 0xF0, 0x20, 0x6D, 0xC2, 0xF6, +0xA0, 0x9D, 0xCC, 0xEA, 0x6D, 0xEA, 0x47, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, 0x58, 0x9A, +0x2C, 0x33, 0x49, 0xE3, 0xAD, 0xE3, 0xA0, 0xA4, +0x01, 0x4C, 0xA0, 0xC2, 0x01, 0x4A, 0x6A, 0xEA, +0xFA, 0x61, 0x07, 0x92, 0x09, 0x2A, 0x67, 0xA0, +0x03, 0x6A, 0x6C, 0xEA, 0x48, 0x34, 0x0D, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x8D, 0xEA, 0x47, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF3, 0x58, 0x9A, +0x20, 0x6B, 0x6C, 0xEA, 0x13, 0x22, 0x8C, 0xA0, +0xC7, 0xA0, 0x03, 0x6A, 0x8A, 0x33, 0x4C, 0xEC, +0xCA, 0x37, 0x01, 0x6D, 0x05, 0xD4, 0x30, 0xF0, +0x20, 0x6C, 0xAC, 0xEB, 0xA3, 0xF5, 0x0C, 0x4C, +0xB1, 0x67, 0x4C, 0xEE, 0x4C, 0xEF, 0x04, 0xD3, +0x80, 0x18, 0x25, 0x42, 0x30, 0xF0, 0x20, 0x6A, +0x69, 0xF3, 0x58, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, +0x12, 0x22, 0x06, 0x94, 0x48, 0xA0, 0x01, 0x6B, +0x04, 0xD4, 0x07, 0x94, 0x5A, 0x35, 0x56, 0x36, +0x05, 0xD4, 0x1F, 0x6F, 0x30, 0xF0, 0x20, 0x6C, +0xC3, 0xF5, 0x14, 0x4C, 0x6C, 0xED, 0x6C, 0xEE, +0x4C, 0xEF, 0x80, 0x18, 0x25, 0x42, 0x30, 0xF0, +0x20, 0x6A, 0x69, 0xF3, 0x58, 0x9A, 0x20, 0x6B, +0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xC2, 0xF6, 0x58, 0x9A, 0x2C, 0x33, 0x30, 0xF0, +0x20, 0x6C, 0x49, 0xE3, 0xA0, 0x9A, 0x03, 0xF6, +0x00, 0x4C, 0x80, 0x18, 0x25, 0x42, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF6, 0x58, 0x9A, 0x2C, 0x33, +0x49, 0xE3, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0xA3, 0xF4, 0x91, 0xA2, +0x01, 0x74, 0x04, 0x60, 0xA3, 0xF4, 0x56, 0xA2, +0x01, 0x72, 0x16, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xC2, 0xF6, 0x5C, 0x9A, 0x63, 0xEA, 0x10, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, 0x4C, 0x9A, +0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF6, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF4, 0x4C, 0x9A, 0x60, 0xDA, 0xF0, 0x17, +0x47, 0xA0, 0x03, 0x6B, 0x4A, 0x32, 0x6C, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x49, 0xF3, 0x78, 0xA3, +0x05, 0x73, 0x11, 0x61, 0x38, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF6, 0x4C, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, +0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF4, +0x4C, 0x9A, 0x60, 0xDA, 0xF0, 0x17, 0x06, 0x73, +0x12, 0x61, 0x02, 0x5A, 0x24, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF6, 0x4C, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, +0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF4, +0x4C, 0x9A, 0x60, 0xDA, 0xF0, 0x17, 0x07, 0x73, +0x12, 0x61, 0x03, 0x72, 0x10, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF6, 0x4C, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, +0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF4, +0x4C, 0x9A, 0x60, 0xDA, 0xF0, 0x17, 0x30, 0xF0, +0x20, 0x6A, 0x49, 0xF3, 0x5A, 0xA2, 0x02, 0x72, +0x14, 0x61, 0x6C, 0xA0, 0x03, 0x6A, 0x6C, 0xEA, +0x10, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, +0x4C, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF6, 0x70, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF4, 0x4C, 0x9A, 0x60, 0xDA, +0xF0, 0x17, 0x91, 0x67, 0x80, 0x18, 0x38, 0x4C, +0x06, 0x92, 0x0D, 0x22, 0x04, 0x6B, 0xC7, 0xA0, +0x4F, 0xE3, 0x09, 0x6A, 0x44, 0xEB, 0xFF, 0x6D, +0xCA, 0x36, 0x4C, 0xED, 0x03, 0x6A, 0x91, 0x67, +0x4C, 0xEE, 0x80, 0x18, 0x42, 0x4F, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0xC0, 0x4C, 0x4C, 0xEC, 0x13, 0x5C, 0x2F, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, 0xC2, 0xF0, +0x0C, 0x4A, 0x89, 0xE2, 0x40, 0x9A, 0x00, 0xEA, +0x85, 0x67, 0x80, 0x18, 0xA0, 0x44, 0x23, 0x10, +0x85, 0x67, 0x80, 0x18, 0xF8, 0x43, 0x1F, 0x10, +0x85, 0x67, 0x80, 0x18, 0x63, 0x44, 0x1B, 0x10, +0x85, 0x67, 0x80, 0x18, 0x53, 0x43, 0x17, 0x10, +0x85, 0x67, 0x80, 0x18, 0x37, 0x42, 0x13, 0x10, +0x85, 0x67, 0x80, 0x18, 0x4E, 0x44, 0x0F, 0x10, +0x85, 0x67, 0x80, 0x18, 0xAE, 0x42, 0x0B, 0x10, +0x85, 0x67, 0x80, 0x18, 0xBB, 0x43, 0x07, 0x10, +0x85, 0x67, 0x80, 0x18, 0x4E, 0x41, 0x03, 0x10, +0x85, 0x67, 0x80, 0x18, 0xFC, 0x40, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0x05, 0x6B, 0xC3, 0xF4, +0x74, 0xDA, 0x09, 0x6B, 0xC3, 0xF4, 0x70, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, +0x00, 0x6A, 0x83, 0xF5, 0xAC, 0x42, 0x30, 0xF0, +0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, 0xA4, 0x35, +0x00, 0x6C, 0x75, 0xE5, 0x80, 0xCD, 0x03, 0xF6, +0xAC, 0x42, 0xC4, 0xF1, 0x0C, 0x42, 0xA4, 0x35, +0x75, 0xE5, 0x04, 0x30, 0x80, 0xCD, 0x61, 0xE0, +0x75, 0xE2, 0x07, 0xF7, 0x98, 0xC5, 0x87, 0xF7, +0x98, 0xC5, 0x44, 0xF1, 0xEC, 0x42, 0x80, 0xC8, +0xC4, 0xF2, 0xCC, 0x42, 0x44, 0xF2, 0x0C, 0x42, +0xE4, 0x37, 0xC4, 0x36, 0x04, 0x30, 0x79, 0xE6, +0x7D, 0xE7, 0x61, 0xE0, 0x80, 0xC8, 0x80, 0xCF, +0x80, 0xCE, 0xC4, 0xF3, 0xCC, 0x42, 0xC4, 0x36, +0x79, 0xE6, 0x80, 0xCE, 0x44, 0xF3, 0xCC, 0x42, +0xC4, 0x36, 0x79, 0xE6, 0x80, 0xCE, 0x44, 0xF4, +0xCC, 0x42, 0xC4, 0x36, 0x79, 0xE6, 0x82, 0xCE, +0xC4, 0xF4, 0xCC, 0x42, 0xC4, 0x36, 0x79, 0xE6, +0x82, 0xCE, 0x44, 0xF5, 0xCC, 0x42, 0xC4, 0x36, +0x79, 0xE6, 0x82, 0xCE, 0x04, 0xF0, 0xCC, 0x42, +0xC4, 0x36, 0x79, 0xE6, 0x80, 0xCE, 0x84, 0xF0, +0xCC, 0x42, 0xC4, 0x36, 0x79, 0xE6, 0x80, 0xCE, +0x01, 0x4A, 0x08, 0xF2, 0x98, 0xC5, 0xFF, 0x6C, +0x8C, 0xEA, 0x80, 0x72, 0xAE, 0x61, 0x01, 0x90, +0x58, 0x67, 0x89, 0xF0, 0x58, 0xDB, 0x01, 0x63, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x8C, 0xEA, +0xC4, 0xF3, 0xAC, 0x42, 0x30, 0xF0, 0x20, 0x6B, +0xA5, 0xF6, 0x08, 0x4B, 0xA4, 0x35, 0x00, 0x6C, +0x75, 0xE5, 0x80, 0xCD, 0x44, 0xF3, 0xAC, 0x42, +0xA4, 0x35, 0x75, 0xE5, 0x80, 0xCD, 0x44, 0xF4, +0xAC, 0x42, 0xA4, 0x35, 0x75, 0xE5, 0x82, 0xCD, +0xC4, 0xF4, 0xAC, 0x42, 0x44, 0xF5, 0x0C, 0x4A, +0xA4, 0x35, 0x44, 0x32, 0x75, 0xE5, 0x6D, 0xE2, +0x82, 0xCD, 0x82, 0xCB, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0x8C, 0xEA, 0x04, 0xF0, 0xAC, 0x42, +0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, +0xA4, 0x35, 0x00, 0x6C, 0x75, 0xE5, 0x80, 0xCD, +0x84, 0xF0, 0xAC, 0x42, 0xA4, 0x35, 0x75, 0xE5, +0x69, 0xE2, 0x80, 0xCD, 0x08, 0xF2, 0x98, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x8C, 0xEA, +0x44, 0xF1, 0xAC, 0x42, 0x30, 0xF0, 0x20, 0x6B, +0xA5, 0xF6, 0x08, 0x4B, 0xA4, 0x35, 0x00, 0x6C, +0x75, 0xE5, 0x80, 0xCD, 0xC4, 0xF2, 0xAC, 0x42, +0xA4, 0x35, 0x75, 0xE5, 0x80, 0xCD, 0xC4, 0xF1, +0xAC, 0x42, 0xA4, 0x35, 0x75, 0xE5, 0x80, 0xCD, +0x44, 0xF2, 0xAC, 0x42, 0xA4, 0x35, 0x75, 0xE5, +0x80, 0xCD, 0x30, 0x6C, 0x98, 0xEA, 0xB0, 0x4C, +0x12, 0xEA, 0x6D, 0xE2, 0x24, 0xF1, 0x47, 0xA3, +0x4C, 0xEC, 0x24, 0xF1, 0x87, 0xC3, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0xD1, 0x06, 0xD0, 0x0D, 0x92, +0xFF, 0xF7, 0x1F, 0x6B, 0x1B, 0x65, 0x02, 0xD2, +0xCC, 0xEB, 0x00, 0xD3, 0x0C, 0x90, 0x02, 0x93, +0xD8, 0x67, 0xFF, 0x69, 0x2C, 0xEC, 0xCC, 0xEF, +0xCC, 0xEB, 0xCC, 0xE8, 0x30, 0x6E, 0xD8, 0xEC, +0x0E, 0x92, 0x30, 0xF0, 0x20, 0x6E, 0xA9, 0xF7, +0x10, 0x4E, 0x2C, 0xEA, 0x02, 0xD3, 0x03, 0xE7, +0x78, 0x67, 0x6C, 0xE8, 0x12, 0xE9, 0x39, 0xE6, +0x00, 0x91, 0x01, 0xD6, 0x3B, 0xE5, 0xFB, 0xE6, +0x03, 0xD6, 0xC4, 0xF3, 0x2C, 0x44, 0x30, 0xF0, +0x20, 0x6E, 0x24, 0x31, 0xA5, 0xF6, 0x08, 0x4E, +0xD9, 0xE1, 0x00, 0x91, 0x04, 0xD6, 0xC0, 0xAE, +0x2F, 0xE3, 0xC2, 0xEB, 0x03, 0x61, 0x04, 0x93, +0xD9, 0xE1, 0xC0, 0xCB, 0x30, 0xF0, 0x20, 0x6B, +0x44, 0xF3, 0xCC, 0x44, 0xA5, 0xF6, 0x08, 0x4B, +0xC4, 0x36, 0x79, 0xE6, 0x60, 0xAE, 0xFF, 0xF7, +0x1F, 0x69, 0xE7, 0xE1, 0x62, 0xE9, 0x02, 0x61, +0x6D, 0xE7, 0x60, 0xCE, 0x30, 0xF0, 0x20, 0x6B, +0xA5, 0xF6, 0x08, 0x4B, 0x89, 0xF0, 0xD8, 0x9B, +0x0F, 0xE9, 0xC3, 0xE9, 0x03, 0x61, 0xC1, 0xE0, +0x89, 0xF0, 0x18, 0xDB, 0x30, 0xF0, 0x20, 0x6E, +0x44, 0xF4, 0x6C, 0x44, 0xA5, 0xF6, 0x08, 0x4E, +0x64, 0x33, 0xCD, 0xE3, 0x03, 0x91, 0xC2, 0xAB, +0xFF, 0xF7, 0x1F, 0x68, 0x23, 0xE0, 0xC3, 0xE8, +0x02, 0x61, 0xD9, 0xE1, 0xC2, 0xCB, 0x30, 0xF0, +0x20, 0x6E, 0x44, 0xF5, 0x6C, 0x44, 0xA5, 0xF6, +0x08, 0x4E, 0x64, 0x33, 0xCD, 0xE3, 0x02, 0x91, +0xC2, 0xAB, 0xFF, 0xF7, 0x1F, 0x68, 0x23, 0xE0, +0xC2, 0xE8, 0x02, 0x61, 0xD9, 0xE1, 0xC2, 0xCB, +0x30, 0xF0, 0x20, 0x6E, 0xC4, 0xF4, 0x6C, 0x44, +0xA5, 0xF6, 0x08, 0x4E, 0x64, 0x33, 0xCD, 0xE3, +0xC2, 0xAB, 0xFF, 0xF7, 0x1F, 0x68, 0xA3, 0xE0, +0xC3, 0xE8, 0x02, 0x61, 0xD9, 0xE5, 0xC2, 0xCB, +0x01, 0x96, 0x75, 0xAE, 0xFF, 0xF7, 0x1F, 0x6E, +0xBB, 0xE6, 0xC3, 0xEB, 0x03, 0x60, 0x01, 0x90, +0x6D, 0xE5, 0x75, 0xC8, 0x01, 0x91, 0xFF, 0xF7, +0x1F, 0x6E, 0xBB, 0xE6, 0x76, 0xA9, 0xC3, 0xEB, +0x02, 0x60, 0x75, 0xE5, 0xB6, 0xC9, 0x6A, 0x42, +0xFF, 0x6D, 0xAC, 0xEB, 0x02, 0x5B, 0x00, 0x6B, +0x0A, 0x61, 0x6C, 0x42, 0xAC, 0xEB, 0x02, 0x5B, +0x01, 0x6B, 0x05, 0x61, 0x03, 0x22, 0x03, 0x72, +0x03, 0x6B, 0x01, 0x61, 0x02, 0x6B, 0x88, 0x32, +0x69, 0xE2, 0x30, 0xF0, 0x20, 0x6D, 0xC4, 0xF5, +0x0C, 0x4A, 0xA5, 0xF6, 0x08, 0x4D, 0x44, 0x32, +0xA9, 0xE2, 0xA2, 0xAA, 0xFF, 0xF7, 0x1F, 0x6E, +0xFB, 0xE6, 0xC2, 0xED, 0x02, 0x60, 0xBD, 0xE7, +0xE2, 0xCA, 0x88, 0x34, 0x6D, 0xE4, 0x30, 0xF0, +0x20, 0x6A, 0xC4, 0xF7, 0x0C, 0x4B, 0xA5, 0xF6, +0x08, 0x4A, 0x64, 0x33, 0x4D, 0xE3, 0x00, 0x95, +0x42, 0xAB, 0xFF, 0xF7, 0x1F, 0x6C, 0xB3, 0xE4, +0x82, 0xEA, 0x02, 0x60, 0x49, 0xE5, 0x42, 0xCB, +0x07, 0x91, 0x06, 0x90, 0x04, 0x63, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x69, 0xF3, 0x58, 0x9A, 0x01, 0x6B, +0xFF, 0x68, 0x6C, 0xEA, 0x8C, 0xE8, 0x06, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF6, 0x0C, 0x4C, +0x80, 0x18, 0x25, 0x42, 0x83, 0xF6, 0x8C, 0x40, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0x84, 0x34, 0x00, 0x6B, 0x51, 0xE4, 0x60, 0xCC, +0x03, 0xF7, 0x8C, 0x40, 0x84, 0x34, 0x51, 0xE4, +0x60, 0xCC, 0x03, 0xF6, 0x8C, 0x40, 0x84, 0x34, +0x51, 0xE4, 0x60, 0xCC, 0x83, 0xF5, 0x8C, 0x40, +0x84, 0x34, 0x41, 0xE0, 0x51, 0xE4, 0x60, 0xCC, +0x07, 0xF7, 0x78, 0xC0, 0x87, 0xF7, 0x78, 0xC0, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF6, 0x74, 0x9B, 0xFF, 0x6A, 0x8C, 0xEA, +0x50, 0x32, 0x69, 0xE2, 0x60, 0x9A, 0x30, 0xF0, +0x21, 0x6C, 0x50, 0xF2, 0x04, 0x4C, 0x04, 0xD3, +0x61, 0x9A, 0x04, 0x05, 0x10, 0x6E, 0x05, 0xD3, +0x62, 0x9A, 0x06, 0xD3, 0x43, 0x9A, 0x07, 0xD2, +0x00, 0x18, 0x30, 0xC6, 0x09, 0x97, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, +0x0E, 0xD1, 0x0D, 0xD0, 0xFF, 0x69, 0x2C, 0xEC, +0x80, 0x18, 0x46, 0x46, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0x8A, 0xF3, 0x7E, 0xA2, +0x7F, 0x68, 0x01, 0x6C, 0x6C, 0xE8, 0xC3, 0xF4, +0x70, 0x9A, 0x2C, 0xE8, 0x8C, 0xEB, 0x21, 0x23, +0xAA, 0xF3, 0x85, 0xA2, 0xAA, 0xF3, 0xC4, 0xA2, +0x8A, 0xF3, 0xFF, 0xA2, 0x04, 0xD4, 0xAA, 0xF3, +0x88, 0xA2, 0x3F, 0x6B, 0x6C, 0xEE, 0x6C, 0xEC, +0x05, 0xD4, 0xAA, 0xF3, 0x80, 0xA2, 0xB0, 0x67, +0x2C, 0xEE, 0x6C, 0xEC, 0x06, 0xD4, 0xAA, 0xF3, +0x81, 0xA2, 0x8C, 0xEB, 0x07, 0xD3, 0xAA, 0xF3, +0x40, 0xA2, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF6, +0x18, 0x4C, 0x5E, 0x32, 0x08, 0xD2, 0x80, 0x18, +0x25, 0x42, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x5C, 0x9A, 0x90, 0x67, 0x40, 0xEA, 0xC0, 0xF1, +0x0F, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0x8A, 0xF3, 0x9D, 0xA2, 0x80, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0xFF, 0x6C, 0x8C, 0xEB, +0x0B, 0x23, 0xC3, 0xF4, 0x50, 0x9A, 0x01, 0x6B, +0x6C, 0xEA, 0xA0, 0xF1, 0x1D, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x43, 0xF6, 0x10, 0x4C, 0x10, 0x10, +0xAA, 0xF3, 0xA3, 0xA2, 0x10, 0x6B, 0xAC, 0xEB, +0x8C, 0xEB, 0x0D, 0x23, 0xC3, 0xF4, 0x50, 0x9A, +0x01, 0x6B, 0x6C, 0xEA, 0xA0, 0xF1, 0x0C, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF6, 0x1C, 0x4C, +0x80, 0x18, 0x25, 0x42, 0xA5, 0x11, 0xAA, 0xF3, +0x69, 0xA2, 0x3F, 0x6A, 0x6C, 0xEA, 0x8C, 0xEA, +0x02, 0x22, 0x3F, 0x72, 0x1E, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xA2, 0xF6, 0x54, 0x9A, 0x14, 0x33, +0xFF, 0x6E, 0x49, 0xE3, 0x40, 0xA2, 0x4C, 0xEE, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0x8A, 0xF3, 0xBF, 0xA2, 0xCA, 0xED, 0x0D, 0x60, +0xC3, 0xF4, 0x50, 0x9A, 0x01, 0x6B, 0x6C, 0xEA, +0x80, 0xF1, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0x63, 0xF6, 0x08, 0x4C, 0x80, 0x18, 0x25, 0x42, +0x7F, 0x11, 0x30, 0x69, 0x38, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0xA9, 0xF7, 0x10, 0x4A, 0x12, 0xE9, +0x25, 0xE2, 0x68, 0xA1, 0x40, 0x6A, 0x6C, 0xEA, +0x10, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF3, +0x58, 0x9A, 0x01, 0x6B, 0x6C, 0xEA, 0x60, 0xF1, +0x0B, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF6, +0x04, 0x4C, 0xB0, 0x67, 0x80, 0x18, 0x25, 0x42, +0x63, 0x11, 0x80, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xFF, 0x6B, 0x6C, 0xEA, 0x0B, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, 0xAA, 0xF3, +0x81, 0xA2, 0xDF, 0xF6, 0x01, 0x4B, 0x8C, 0xEB, +0xAA, 0xF3, 0x61, 0xC2, 0x5F, 0xA1, 0x1F, 0x6E, +0x3F, 0x6F, 0x4C, 0xEE, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0xAA, 0xF3, 0x64, 0xA2, +0xC3, 0xF4, 0x50, 0x9A, 0x6C, 0xEF, 0x01, 0x6B, +0x6C, 0xEA, 0x08, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0xC2, 0xEF, 0x83, 0xF6, 0x10, 0x4C, 0xB8, 0x67, +0x80, 0x18, 0x25, 0x42, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0xAA, 0xF3, 0x64, 0xA2, +0xDF, 0xA1, 0x1F, 0x6D, 0x6C, 0xED, 0x20, 0x6B, +0x6B, 0xEB, 0xCC, 0xEB, 0xAD, 0xEB, 0x7F, 0xC1, +0xAA, 0xF3, 0x60, 0xA2, 0xAA, 0xF3, 0xA8, 0xA2, +0xAA, 0xF3, 0xC1, 0xA2, 0x3F, 0x6C, 0x8C, 0xED, +0x8C, 0xEE, 0x6C, 0xEC, 0x8D, 0xE6, 0x85, 0x67, +0x6E, 0xEC, 0x0A, 0x2C, 0xC3, 0xF4, 0x50, 0x9A, +0x01, 0x6B, 0x6C, 0xEA, 0x10, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0xA3, 0xF6, 0x08, 0x4C, 0x09, 0x10, +0xC3, 0xF4, 0x50, 0x9A, 0x01, 0x6B, 0x6C, 0xEA, +0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF6, +0x14, 0x4C, 0x80, 0x18, 0x25, 0x42, 0x30, 0xF0, +0x21, 0x6A, 0x50, 0xF2, 0x68, 0xA2, 0x80, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, +0x00, 0x6B, 0x03, 0x22, 0x6C, 0x81, 0xC0, 0xF7, +0x62, 0x33, 0x30, 0xF0, 0x21, 0x6A, 0x50, 0xF2, +0x91, 0xA2, 0x3F, 0x6A, 0x8C, 0xEA, 0x02, 0x22, +0x3F, 0x72, 0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0xAA, 0xF3, 0xA5, 0xA2, +0x8A, 0xF3, 0x9F, 0xA2, 0xAE, 0xEC, 0x06, 0x2C, +0xAA, 0xF3, 0x40, 0xA2, 0x3F, 0x6C, 0x4C, 0xEC, +0x0A, 0xD4, 0x02, 0x10, 0x00, 0x6D, 0x0A, 0xD5, +0x43, 0x23, 0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF1, +0x6C, 0x40, 0xA5, 0xF6, 0x08, 0x4A, 0x64, 0x33, +0x4D, 0xE3, 0x80, 0xAB, 0x0A, 0x97, 0x91, 0xE7, +0x80, 0xCB, 0xC4, 0xF1, 0x6C, 0x40, 0x64, 0x33, +0x4D, 0xE3, 0xAA, 0xF3, 0xA8, 0xA2, 0xC0, 0xAB, +0x3F, 0x6C, 0x8C, 0xED, 0xB5, 0xE6, 0xA0, 0xCB, +0xC4, 0xF2, 0xAC, 0x40, 0xA4, 0x35, 0x55, 0xE5, +0xAA, 0xF3, 0xC0, 0xA2, 0xE0, 0xAD, 0x8C, 0xEE, +0xD9, 0xE7, 0xC0, 0xCD, 0xAA, 0xF3, 0xC1, 0xA2, +0x44, 0xF2, 0xAC, 0x40, 0xA4, 0x35, 0x55, 0xE5, +0xCC, 0xEC, 0xC0, 0xAD, 0x91, 0xE6, 0x80, 0xCD, +0xA0, 0xAB, 0x70, 0xA1, 0x63, 0xED, 0x80, 0xF0, +0x13, 0x61, 0xC3, 0xF4, 0x50, 0x9A, 0x01, 0x6B, +0x6C, 0xEA, 0x07, 0x22, 0xD1, 0xA1, 0x30, 0xF0, +0x20, 0x6C, 0xC3, 0xF6, 0x00, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x90, 0x67, 0x80, 0x18, 0xD6, 0x4F, +0x90, 0x67, 0x80, 0x18, 0xB1, 0x45, 0x80, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF6, 0x6C, 0x40, +0xA5, 0xF6, 0x08, 0x4A, 0x64, 0x33, 0x4D, 0xE3, +0x80, 0xAB, 0x0A, 0x95, 0x91, 0xE5, 0x80, 0xCB, +0x83, 0xF5, 0x8C, 0x40, 0x84, 0x34, 0xAA, 0xF3, +0xA8, 0xA2, 0x51, 0xE4, 0xC0, 0xAC, 0x3F, 0x6B, +0x6C, 0xED, 0xB5, 0xE6, 0xA0, 0xCC, 0x03, 0xF7, +0xAC, 0x40, 0xA4, 0x35, 0xAA, 0xF3, 0xC0, 0xA2, +0x55, 0xE5, 0xE0, 0xAD, 0x6C, 0xEE, 0xD9, 0xE7, +0xC0, 0xCD, 0x03, 0xF6, 0xAC, 0x40, 0xA4, 0x35, +0xAA, 0xF3, 0xC1, 0xA2, 0x55, 0xE5, 0xE0, 0xAD, +0x6C, 0xEE, 0xD9, 0xE7, 0xC0, 0xCD, 0x84, 0xF0, +0xAC, 0x40, 0xA4, 0x35, 0x55, 0xE5, 0xC0, 0xAD, +0x0A, 0x97, 0xD9, 0xE7, 0xC0, 0xCD, 0xAA, 0xF3, +0xC8, 0xA2, 0x04, 0xF0, 0xAC, 0x40, 0xA4, 0x35, +0x55, 0xE5, 0xCC, 0xEB, 0xC0, 0xAD, 0x6D, 0xE6, +0x60, 0xCD, 0x80, 0xAC, 0x20, 0xF0, 0x68, 0xA1, +0x63, 0xEC, 0x1A, 0x61, 0x20, 0xF0, 0x6E, 0xA1, +0x17, 0x2B, 0xC3, 0xF4, 0x50, 0x9A, 0x01, 0x6B, +0x6C, 0xEA, 0x09, 0x22, 0x20, 0xF0, 0xC8, 0xA1, +0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF6, 0x1C, 0x4C, +0xB0, 0x67, 0x80, 0x18, 0x25, 0x42, 0x90, 0x67, +0x80, 0x18, 0x69, 0x4E, 0x20, 0xF0, 0x45, 0xA1, +0x01, 0x4A, 0x20, 0xF0, 0x45, 0xC1, 0x24, 0x10, +0x6F, 0xA1, 0x40, 0x6A, 0x6C, 0xEA, 0x20, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF3, 0x58, 0x9A, +0x01, 0x6B, 0x6C, 0xEA, 0x07, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0xE3, 0xF6, 0x10, 0x4C, 0xB0, 0x67, +0x80, 0x18, 0x25, 0x42, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF5, 0x6C, 0x40, 0x64, 0x33, 0xA5, 0xF6, +0x08, 0x4A, 0x49, 0xE3, 0x40, 0xAA, 0x03, 0x22, +0x90, 0x67, 0x80, 0x18, 0x69, 0x4E, 0x6F, 0xA1, +0x41, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x4F, 0xC1, +0x0A, 0x94, 0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF6, +0x08, 0x4B, 0xAA, 0xF3, 0xA8, 0xA3, 0xAA, 0xF3, +0xC1, 0xA3, 0xAA, 0xF3, 0xE0, 0xA3, 0x04, 0xD4, +0xAA, 0xF3, 0x84, 0xA3, 0x3F, 0x6A, 0x4C, 0xED, +0x4C, 0xEC, 0x05, 0xD4, 0x8A, 0xF3, 0x9D, 0xA3, +0x1F, 0x6B, 0x4C, 0xEE, 0x8C, 0xEB, 0x4C, 0xEF, +0x90, 0x67, 0x06, 0xD3, 0x80, 0x18, 0xC4, 0x45, +0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xE1, 0xF7, 0x6C, 0xA2, 0xE1, 0xF7, 0x0C, 0x4A, +0x60, 0xC4, 0x41, 0xA2, 0x40, 0xC5, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF6, 0x74, 0x9B, +0xFF, 0x6A, 0x4C, 0xEC, 0x94, 0x34, 0x71, 0xE4, +0x60, 0xA4, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF6, 0x6C, 0x9B, +0xFF, 0x6A, 0x4C, 0xEC, 0x94, 0x34, 0x71, 0xE4, +0x60, 0xA4, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0x40, 0xA4, 0x60, 0xA5, 0x60, 0xC4, 0x40, 0xC5, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, +0x0C, 0x5C, 0x13, 0x61, 0x2C, 0x5C, 0x06, 0x60, +0x48, 0x44, 0xFC, 0x4A, 0x4F, 0x32, 0x01, 0x4A, +0x6C, 0xEA, 0x20, 0xE8, 0x36, 0x5C, 0x09, 0x61, +0x40, 0x5C, 0x02, 0x6A, 0x07, 0x61, 0x4A, 0x5C, +0x03, 0x6A, 0x04, 0x61, 0x54, 0x5C, 0x04, 0x6A, +0x01, 0x61, 0x01, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0xAA, 0xEC, 0x64, 0x6A, 0x31, 0x60, 0x2F, 0x24, +0x83, 0xED, 0x2D, 0x61, 0x02, 0xF0, 0x00, 0x5D, +0x04, 0x6A, 0x0C, 0x61, 0x04, 0xF0, 0x00, 0x5D, +0x03, 0x6A, 0x08, 0x61, 0x08, 0xF0, 0x00, 0x5D, +0x02, 0x6A, 0x04, 0x61, 0xEF, 0xF7, 0x1E, 0x4A, +0x43, 0xED, 0x58, 0x67, 0xA4, 0xEA, 0x84, 0xEA, +0x00, 0x6B, 0x01, 0x6A, 0xA6, 0x35, 0x83, 0xED, +0x11, 0x60, 0x81, 0xF4, 0x00, 0x6E, 0xC7, 0xEB, +0xC9, 0xE2, 0x01, 0x75, 0xFF, 0xF7, 0x1F, 0x6E, +0xCC, 0xEA, 0xB3, 0xE4, 0x04, 0x61, 0x02, 0x5C, +0x04, 0x60, 0x01, 0x74, 0x06, 0x60, 0x02, 0x2C, +0x04, 0x10, 0x02, 0x6D, 0x01, 0x4B, 0x0C, 0x73, +0xE9, 0x61, 0x5A, 0x32, 0x01, 0x10, 0x00, 0x6A, +0xFF, 0x6B, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x6B, 0x8C, 0xEB, +0x22, 0xF2, 0x80, 0x9A, 0xFE, 0x63, 0x22, 0xF2, +0x00, 0x4A, 0x00, 0xD4, 0x81, 0x9A, 0x44, 0xAA, +0x00, 0xF0, 0x0A, 0x05, 0x01, 0xD4, 0x9D, 0x67, +0x44, 0xCC, 0x40, 0xA4, 0x43, 0xEB, 0x05, 0x61, +0x01, 0x4B, 0x4B, 0xE3, 0xFF, 0x6B, 0x6C, 0xEA, +0x04, 0x10, 0x01, 0x4C, 0xAA, 0xEC, 0xF5, 0x61, +0x00, 0x6A, 0x02, 0x63, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, +0x04, 0x67, 0x4C, 0xE8, 0xAC, 0xEA, 0x7F, 0x6B, +0x82, 0x67, 0x6C, 0xEC, 0x80, 0x18, 0x9C, 0x47, +0x30, 0x6B, 0x78, 0xE8, 0x14, 0x6C, 0x30, 0xF0, +0x20, 0x6B, 0xA9, 0xF7, 0x10, 0x4B, 0x12, 0xE8, +0x0D, 0xE3, 0x98, 0xEA, 0x12, 0xEA, 0x20, 0xF0, +0x48, 0xC3, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, +0x45, 0x67, 0x30, 0x6D, 0xB8, 0xEC, 0x30, 0xF0, +0x20, 0x6D, 0xA9, 0xF7, 0x10, 0x4D, 0x6C, 0xEA, +0x12, 0xEC, 0x95, 0xE5, 0xC0, 0xA5, 0x81, 0xA5, +0x30, 0xF0, 0x20, 0x6D, 0xAD, 0xF1, 0xFC, 0xA5, +0x04, 0x6D, 0xEC, 0xED, 0x6C, 0xED, 0x16, 0x2D, +0xFF, 0x72, 0x02, 0x61, 0x43, 0x67, 0x20, 0xE8, +0x7F, 0x6D, 0xAC, 0xEE, 0x4C, 0xED, 0xA3, 0xEE, +0x0A, 0x60, 0x80, 0x6C, 0x8B, 0xEC, 0x4C, 0xEC, +0xCD, 0xEC, 0x00, 0xF6, 0x80, 0x32, 0x00, 0xF6, +0x43, 0x32, 0x6C, 0xEA, 0x20, 0xE8, 0x83, 0xED, +0x01, 0x60, 0x44, 0x67, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0x4C, 0xEE, 0x4C, 0xEC, 0x4C, 0xED, +0x06, 0x26, 0x2C, 0x5C, 0x04, 0x61, 0x68, 0x44, +0xE8, 0x4B, 0x4C, 0xEB, 0x01, 0x10, 0x64, 0x67, +0x20, 0x5B, 0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xC2, 0xF6, 0x40, 0x9A, 0xAC, 0x35, 0xE0, 0x4B, +0x55, 0xE5, 0x40, 0x9D, 0xFF, 0x6D, 0xAC, 0xEB, +0x07, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, +0x58, 0x9A, 0xAC, 0x35, 0x55, 0xE5, 0x40, 0x9D, +0x01, 0x6D, 0xA4, 0xEB, 0x4C, 0xED, 0xFF, 0x6A, +0x01, 0x25, 0x44, 0x67, 0x20, 0xE8, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x4C, 0xEE, 0x30, 0x68, 0x18, 0xEE, +0x30, 0xF0, 0x20, 0x6B, 0xA9, 0xF7, 0x10, 0x4B, +0x4C, 0xED, 0x4C, 0xEC, 0x27, 0x67, 0x01, 0x75, +0x09, 0xD6, 0x4C, 0xE9, 0x12, 0xE8, 0x01, 0xE3, +0x7F, 0x6B, 0x6C, 0xEC, 0x1F, 0x61, 0x0C, 0x5C, +0x05, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x85, 0xF1, +0x1C, 0x4A, 0x1E, 0x10, 0x0A, 0x29, 0xF4, 0x4C, +0x4C, 0xEC, 0x03, 0x6A, 0x58, 0xEC, 0x30, 0xF0, +0x20, 0x6A, 0x25, 0xF3, 0x00, 0x4A, 0x12, 0xEC, +0x36, 0x10, 0x2C, 0x5C, 0xC0, 0xF0, 0x0F, 0x61, +0xD4, 0x4C, 0x4C, 0xEC, 0x03, 0x6A, 0x58, 0xEC, +0x30, 0xF0, 0x20, 0x6A, 0xC5, 0xF2, 0x04, 0x4A, +0x12, 0xEC, 0x29, 0x10, 0x0C, 0x5C, 0x10, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF1, 0x08, 0x4A, +0x91, 0xE2, 0x80, 0xA4, 0x09, 0x95, 0xD1, 0x67, +0x80, 0x18, 0xD2, 0x47, 0x8C, 0xA0, 0x19, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0x6C, 0xC0, 0xB4, 0x10, +0x0A, 0x29, 0xF4, 0x4C, 0x4C, 0xEC, 0x03, 0x6A, +0x58, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0xC5, 0xF3, +0x04, 0x4A, 0x12, 0xEC, 0x0C, 0x10, 0x2C, 0x5C, +0xA0, 0xF0, 0x05, 0x61, 0xD4, 0x4C, 0x4C, 0xEC, +0x03, 0x6A, 0x58, 0xEC, 0x30, 0xF0, 0x20, 0x6A, +0x65, 0xF3, 0x08, 0x4A, 0x12, 0xEC, 0x89, 0xE2, +0x08, 0xD2, 0x01, 0x6A, 0x4B, 0xEA, 0x7D, 0x67, +0x00, 0x6C, 0x50, 0xC3, 0x51, 0xC3, 0x52, 0xC3, +0x07, 0xD4, 0x06, 0xD4, 0x07, 0x94, 0x08, 0x93, +0x89, 0xE3, 0x80, 0xA2, 0x2C, 0x74, 0x03, 0x61, +0x2C, 0x6C, 0x01, 0x29, 0x0C, 0x6C, 0x09, 0x95, +0xD1, 0x67, 0x80, 0x18, 0xD2, 0x47, 0xFF, 0x72, +0x08, 0x60, 0x06, 0x94, 0xBD, 0x67, 0x8D, 0xE5, +0x50, 0xC3, 0x01, 0x4C, 0xFF, 0x6A, 0x4C, 0xEC, +0x06, 0xD4, 0x07, 0x95, 0x01, 0x4D, 0x03, 0x75, +0x07, 0xD5, 0xE4, 0x61, 0x06, 0x92, 0x05, 0x2A, +0x6C, 0xA0, 0xE7, 0x4A, 0x6C, 0xEA, 0x4C, 0xC0, +0x6E, 0x10, 0x7A, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, +0x1F, 0x22, 0x6F, 0xA0, 0x30, 0x6A, 0x6C, 0xEA, +0x20, 0x72, 0x1A, 0x61, 0x05, 0x21, 0x30, 0xF0, +0x20, 0x6A, 0xE5, 0xF4, 0x18, 0x4A, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xE5, 0xF4, 0x10, 0x4A, +0x9D, 0x67, 0x71, 0xA4, 0x2D, 0x5B, 0x01, 0x61, +0xE0, 0x4B, 0x40, 0x9A, 0x01, 0x6C, 0x84, 0xEB, +0x4C, 0xEC, 0x29, 0x24, 0x04, 0x04, 0x00, 0xF0, +0x11, 0x05, 0x80, 0x18, 0x70, 0x47, 0x23, 0x10, +0x7A, 0xA0, 0x40, 0x6A, 0x6C, 0xEA, 0x1F, 0x22, +0x6F, 0xA0, 0x30, 0x6A, 0x6C, 0xEA, 0x20, 0x72, +0x1A, 0x61, 0x05, 0x21, 0x30, 0xF0, 0x20, 0x6A, +0x05, 0xF5, 0x08, 0x4A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x05, 0xF5, 0x00, 0x4A, 0xBD, 0x67, +0x71, 0xA5, 0x2D, 0x5B, 0x01, 0x61, 0xE0, 0x4B, +0x40, 0x9A, 0x01, 0x6C, 0x84, 0xEB, 0x4C, 0xEC, +0x06, 0x24, 0x7D, 0x67, 0x51, 0xA3, 0x50, 0xC3, +0x01, 0x6A, 0x4B, 0xEA, 0x51, 0xC3, 0x9D, 0x67, +0x71, 0xA4, 0xFF, 0x73, 0x0B, 0x60, 0x52, 0xA4, +0xFF, 0x72, 0x08, 0x60, 0x65, 0xC0, 0x6C, 0xA0, +0x44, 0xC0, 0x19, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x10, 0x6B, 0x14, 0x10, 0xBD, 0x67, 0x51, 0xA5, +0xFF, 0x72, 0x03, 0x60, 0x72, 0xA5, 0xFF, 0x73, +0x07, 0x60, 0x7D, 0x67, 0x51, 0xA3, 0xFF, 0x72, +0x0B, 0x61, 0x52, 0xA3, 0xFF, 0x72, 0x08, 0x60, +0x6C, 0xA0, 0x44, 0xC0, 0x19, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x08, 0x6B, 0x6D, 0xEA, 0x4C, 0xC0, +0x9D, 0x67, 0x50, 0xA4, 0x01, 0x10, 0xFF, 0x6A, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD1, +0x00, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, 0x30, 0x6B, +0x78, 0xEC, 0x30, 0xF0, 0x20, 0x6B, 0xA9, 0xF7, +0x10, 0x4B, 0x06, 0x67, 0x4C, 0xE8, 0xE0, 0xA5, +0x12, 0xEC, 0x91, 0xE3, 0xCC, 0xA4, 0x03, 0x6B, +0xCC, 0xEB, 0x4C, 0xEB, 0x54, 0x23, 0x04, 0x6B, +0xCC, 0xEB, 0x4C, 0xEB, 0x50, 0x23, 0xDF, 0xA4, +0x20, 0x6B, 0x6B, 0xEB, 0xCC, 0xEB, 0x4C, 0xEB, +0x4A, 0x23, 0x7F, 0xA4, 0x0A, 0x69, 0x7F, 0x6E, +0x76, 0x33, 0xFF, 0x4B, 0x38, 0xEB, 0xEC, 0xEE, +0x12, 0xEB, 0x4C, 0xEB, 0x27, 0x43, 0x2C, 0x49, +0x22, 0xEE, 0x3D, 0x61, 0x80, 0x69, 0x7B, 0xE6, +0x02, 0x70, 0xEC, 0xE9, 0x4C, 0xEE, 0x11, 0x61, +0x33, 0x76, 0x35, 0x60, 0x02, 0x21, 0xC4, 0xC4, +0x02, 0x10, 0x4F, 0x46, 0x44, 0xC4, 0x80, 0x6A, +0xEF, 0x46, 0x4B, 0xEA, 0x4D, 0xEF, 0xFF, 0x6A, +0x4C, 0xEF, 0xCC, 0xA4, 0xFF, 0xF6, 0x08, 0x4A, +0x17, 0x10, 0x35, 0x76, 0x24, 0x60, 0x34, 0x76, +0x03, 0x61, 0xB5, 0x6F, 0x15, 0x29, 0x06, 0x10, +0x05, 0x21, 0x80, 0x68, 0xE1, 0x46, 0x0B, 0xE8, +0x0D, 0xEF, 0x04, 0x10, 0x80, 0x6F, 0xEB, 0xEF, +0xCD, 0xEF, 0xFF, 0x6A, 0x01, 0x4E, 0xC4, 0xC4, +0xCC, 0xA4, 0x4C, 0xEF, 0x19, 0x6A, 0x4B, 0xEA, +0xCC, 0xEA, 0x08, 0x6E, 0xCD, 0xEA, 0x4C, 0xC4, +0xCC, 0xA4, 0x18, 0x6A, 0xCC, 0xEA, 0x03, 0x22, +0x44, 0xA4, 0x49, 0xE3, 0x44, 0xC4, 0x6D, 0xE7, +0x60, 0xC5, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, +0x01, 0x91, 0x00, 0x90, 0x01, 0x63, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0x6B, 0x78, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xA9, 0xF7, 0x10, 0x4C, +0x12, 0xEB, 0x6D, 0xE4, 0x03, 0x2E, 0x25, 0x67, +0x00, 0x68, 0x02, 0x10, 0x26, 0x67, 0x20, 0x68, +0x1F, 0x6C, 0x00, 0xF6, 0x80, 0x37, 0x00, 0xF6, +0xE3, 0x37, 0x1F, 0x65, 0x01, 0x6F, 0xE4, 0xEC, +0x2C, 0xEF, 0x10, 0x27, 0xEC, 0xA3, 0x38, 0x67, +0x21, 0xE0, 0x1F, 0x65, 0x38, 0x67, 0x03, 0x6F, +0xFF, 0x6C, 0x2C, 0xEF, 0x8C, 0xEF, 0x8C, 0xE8, +0x09, 0x27, 0x0C, 0x58, 0x07, 0x61, 0x20, 0x48, +0x8C, 0xE8, 0x04, 0x10, 0xFF, 0x4C, 0xE1, 0x44, +0xE4, 0x2F, 0x00, 0x68, 0x00, 0x69, 0x02, 0x2D, +0xA6, 0x67, 0x20, 0x69, 0x00, 0x6C, 0x01, 0x6F, +0xE4, 0xEC, 0x00, 0xF6, 0x80, 0x36, 0xAC, 0xEF, +0x00, 0xF6, 0xC3, 0x36, 0x0D, 0x27, 0xC5, 0xE1, +0xCC, 0xA3, 0x03, 0x6D, 0xFF, 0x6C, 0xCC, 0xED, +0x8C, 0xED, 0x8C, 0xE9, 0x09, 0x25, 0x0C, 0x59, +0x07, 0x61, 0x20, 0x49, 0x8C, 0xE9, 0x04, 0x10, +0x01, 0x4C, 0x20, 0x74, 0xE8, 0x61, 0x00, 0x69, +0x00, 0xC3, 0x21, 0xC3, 0x82, 0x67, 0x80, 0x18, +0x64, 0x47, 0x7F, 0x6B, 0x4C, 0xEB, 0x63, 0xE8, +0x50, 0x67, 0x09, 0x61, 0xFF, 0x6A, 0x83, 0x67, +0x4C, 0xEB, 0x2C, 0xEA, 0x43, 0xEB, 0x01, 0x60, +0x91, 0x67, 0xFF, 0x6A, 0x8C, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFF, 0x63, 0x01, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF6, 0xD8, 0x9A, 0x03, 0x6A, 0x02, 0x68, +0x40, 0xC6, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, +0xBC, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, +0xF8, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF7, +0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF7, +0x84, 0x9A, 0x01, 0x6A, 0xE0, 0xDD, 0x80, 0xDB, +0x00, 0xC6, 0xE0, 0xDD, 0x80, 0xDB, 0x40, 0xC6, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF7, 0x48, 0x9A, +0x40, 0xDD, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0x80, 0xDB, 0xA7, 0xF1, 0x11, 0xC2, +0x00, 0x68, 0x00, 0xC6, 0xE0, 0xDD, 0x80, 0xDB, +0x04, 0x6B, 0xA7, 0xF1, 0x70, 0xC2, 0x01, 0x90, +0x01, 0x63, 0x20, 0xE8, 0xE5, 0x63, 0x35, 0x62, +0x34, 0xD1, 0x33, 0xD0, 0x30, 0xF0, 0x20, 0x6D, +0x07, 0x04, 0xC2, 0xF1, 0x0C, 0x4D, 0x54, 0x6E, +0x00, 0x18, 0x30, 0xC6, 0x30, 0xF0, 0x20, 0x6D, +0x1C, 0x04, 0x62, 0xF1, 0x18, 0x4D, 0x54, 0x6E, +0x00, 0x18, 0x30, 0xC6, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF1, 0x6C, 0x9A, 0x62, 0xF1, 0x0C, 0x4A, +0x00, 0x69, 0x04, 0xD3, 0x61, 0x9A, 0x44, 0xAA, +0x05, 0xD3, 0x7D, 0x67, 0x4C, 0xCB, 0x30, 0x68, +0x18, 0xE9, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF7, +0x10, 0x4A, 0x00, 0x6C, 0x33, 0x6D, 0x01, 0x49, +0x12, 0xE8, 0x01, 0xE2, 0x68, 0xA0, 0x20, 0x6A, +0xC7, 0xA0, 0x4B, 0xEA, 0x6C, 0xEA, 0x09, 0x6B, +0x6D, 0xEA, 0xEA, 0x4B, 0xCC, 0xEB, 0x04, 0x6E, +0xEC, 0xA0, 0xCB, 0xEE, 0xCC, 0xEB, 0x67, 0xC0, +0x04, 0x6B, 0xED, 0xEB, 0xCC, 0xEB, 0x20, 0x6E, +0xCD, 0xEA, 0x40, 0x6E, 0xCD, 0xEA, 0xDA, 0xA0, +0x48, 0xC0, 0x03, 0x6A, 0x4B, 0xEA, 0xCC, 0xEA, +0x41, 0x6E, 0xCB, 0xEE, 0xCC, 0xEA, 0xCF, 0xA0, +0x81, 0xC0, 0x82, 0xC0, 0x99, 0xC0, 0x31, 0x6C, +0x8B, 0xEC, 0xCC, 0xEC, 0x8F, 0xC0, 0x7F, 0x6C, +0x8C, 0xEB, 0x00, 0x6C, 0x8A, 0xC0, 0x8A, 0xC8, +0xDF, 0x4C, 0x8C, 0xEA, 0x8D, 0xA0, 0x5A, 0xC0, +0x02, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, 0x6C, 0xC0, +0x4D, 0xC0, 0x00, 0x6B, 0x01, 0x6A, 0xA0, 0xC0, +0xA6, 0xC0, 0x7F, 0xC0, 0x20, 0xF0, 0x6E, 0xC0, +0x20, 0xF0, 0x48, 0xC0, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x48, 0x9B, 0x87, 0x40, 0x1A, 0x4C, +0xFF, 0x6D, 0x02, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x80, 0xF2, 0x48, 0x9B, 0x87, 0x40, +0x1C, 0x4C, 0x00, 0x6D, 0x02, 0x6E, 0x40, 0xEA, +0xFF, 0x6A, 0x4C, 0xE9, 0x80, 0x71, 0xA3, 0x61, +0x30, 0xF0, 0x20, 0x68, 0x80, 0x18, 0xD2, 0x48, +0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, 0x20, 0x6C, +0xAC, 0xF7, 0x10, 0x4C, 0x1C, 0x05, 0x54, 0x6E, +0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, +0x20, 0x6C, 0x0D, 0xF0, 0x04, 0x4C, 0x07, 0x05, +0x54, 0x6E, 0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x98, +0x30, 0xF0, 0x20, 0x6C, 0xAD, 0xF1, 0x0A, 0x4C, +0x04, 0x05, 0x0A, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x4D, 0xF0, +0x1A, 0x4A, 0x0D, 0xF1, 0x02, 0x4B, 0x0A, 0x6C, +0x80, 0xCA, 0x00, 0x6C, 0xA0, 0xF0, 0x88, 0xCA, +0x02, 0x4A, 0x6A, 0xEA, 0xF8, 0x61, 0x35, 0x97, +0x34, 0x91, 0x33, 0x90, 0x1B, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xEE, 0x30, 0x6A, +0x58, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF7, +0x10, 0x4A, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xED, +0x11, 0xD7, 0x04, 0xD5, 0x05, 0xD6, 0x12, 0xEC, +0x89, 0xE2, 0x86, 0x67, 0x06, 0xD2, 0xC3, 0xF4, +0x18, 0x4C, 0x30, 0xF0, 0x20, 0x6A, 0x84, 0x34, +0xA5, 0xF6, 0x08, 0x4A, 0x49, 0xE4, 0x01, 0xAA, +0x03, 0xED, 0x13, 0xE5, 0x02, 0x60, 0x04, 0x92, +0x53, 0xE0, 0x6C, 0xEC, 0x05, 0x93, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, 0x23, 0xF5, +0x0C, 0x4B, 0x64, 0x33, 0x4D, 0xE3, 0x61, 0xAB, +0xFF, 0x4C, 0x07, 0xD3, 0xFF, 0xF7, 0x1F, 0x6B, +0x6C, 0xEC, 0x07, 0x5C, 0x13, 0x60, 0x04, 0x93, +0x03, 0xEB, 0x08, 0x60, 0x05, 0x93, 0xC3, 0xF4, +0x18, 0x4B, 0x64, 0x33, 0x49, 0xE3, 0x61, 0xAA, +0xFF, 0x4B, 0x12, 0x10, 0x05, 0x93, 0xC3, 0xF4, +0x18, 0x4B, 0x64, 0x33, 0x49, 0xE3, 0x61, 0xAA, +0x01, 0x4B, 0x0A, 0x10, 0x05, 0x93, 0x04, 0x94, +0xC3, 0xF4, 0x18, 0x4B, 0x64, 0x33, 0x49, 0xE3, +0x0C, 0x33, 0x0F, 0xE3, 0x8D, 0xE3, 0x6F, 0x33, +0x61, 0xCA, 0x05, 0x93, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0xC3, 0xF4, 0x18, 0x4B, +0x64, 0x33, 0x4D, 0xE3, 0x61, 0xAB, 0xC3, 0xF4, +0x50, 0x9A, 0x08, 0xD3, 0xFF, 0x6B, 0x01, 0x4B, +0x4C, 0xEB, 0x09, 0x23, 0x08, 0x95, 0x04, 0x97, +0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF6, 0x1C, 0x4C, +0xD0, 0x67, 0x80, 0x18, 0x25, 0x42, 0x04, 0x92, +0x43, 0xE8, 0x14, 0x61, 0x06, 0x94, 0x43, 0xE0, +0xFF, 0xF7, 0x1F, 0x6A, 0x69, 0xA4, 0x4C, 0xE8, +0x0F, 0x6C, 0x6A, 0x32, 0x8C, 0xEA, 0x44, 0x32, +0x01, 0x6D, 0xAD, 0xEA, 0x8C, 0xEA, 0xB4, 0x4C, +0x48, 0x32, 0x6C, 0xEC, 0x4D, 0xEC, 0x06, 0x92, +0x89, 0xC2, 0x13, 0x10, 0x04, 0x93, 0x06, 0x94, +0xFF, 0xF7, 0x1F, 0x6A, 0x03, 0xE3, 0x69, 0xA4, +0x4C, 0xE8, 0x0F, 0x6C, 0x6A, 0x32, 0x8C, 0xEA, +0x44, 0x32, 0x8C, 0xEA, 0x48, 0x34, 0x3D, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x06, 0x93, 0x8D, 0xEA, +0x49, 0xC3, 0x06, 0x94, 0x03, 0x6B, 0x49, 0xA4, +0x4A, 0x32, 0x6C, 0xEA, 0xFF, 0x4A, 0x02, 0x5A, +0x04, 0x61, 0x03, 0x58, 0x07, 0x91, 0x40, 0x60, +0x07, 0x10, 0x09, 0x58, 0x09, 0x6A, 0x01, 0x60, +0x50, 0x67, 0xFF, 0xF7, 0x1F, 0x68, 0x4C, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0xC3, 0xF4, 0x90, 0x9A, 0xFF, 0x6B, 0x01, 0x4B, +0x8C, 0xEB, 0x0F, 0x23, 0x06, 0x93, 0x49, 0xE0, +0x07, 0xF3, 0xE2, 0xA2, 0xA9, 0xA3, 0x30, 0xF0, +0x20, 0x6C, 0x0F, 0x6B, 0xAA, 0x35, 0x23, 0xF7, +0x00, 0x4C, 0x6C, 0xED, 0xD0, 0x67, 0x80, 0x18, +0x25, 0x42, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0x41, 0xE0, 0x07, 0xF3, 0x42, 0xA0, +0x07, 0x94, 0xFF, 0xF7, 0x1F, 0x6B, 0x00, 0x69, +0x49, 0xE4, 0x6C, 0xEA, 0x0A, 0x5A, 0x06, 0x61, +0x28, 0x42, 0xFE, 0x49, 0x6C, 0xE9, 0x1F, 0x59, +0x01, 0x61, 0x1E, 0x69, 0x05, 0x93, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, 0x23, 0xF5, +0x0C, 0x4B, 0x64, 0x33, 0x49, 0xE3, 0x21, 0xCA, +0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF3, 0x78, 0x9B, +0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x08, 0x22, +0x07, 0x95, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF7, +0x18, 0x4C, 0xD1, 0x67, 0x80, 0x18, 0x25, 0x42, +0x08, 0x94, 0x11, 0x67, 0x0B, 0x5C, 0x10, 0x61, +0x15, 0x59, 0x01, 0x6A, 0x06, 0x60, 0x0B, 0x59, +0x58, 0x67, 0x01, 0x5A, 0x58, 0x67, 0x03, 0x6B, +0x4B, 0xE3, 0x08, 0x90, 0xF6, 0x48, 0x07, 0xEA, +0x01, 0xE1, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, +0x28, 0x58, 0x01, 0x61, 0x28, 0x68, 0x03, 0x59, +0x00, 0x69, 0x02, 0x60, 0x04, 0x92, 0x4A, 0x31, +0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF3, 0x78, 0x9B, +0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x08, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF7, 0x08, 0x4C, +0xB1, 0x67, 0xD0, 0x67, 0x80, 0x18, 0x25, 0x42, +0x12, 0x92, 0x20, 0xCA, 0x11, 0x93, 0x00, 0xCB, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x68, 0x0C, 0xEC, +0x30, 0x6B, 0x78, 0xEC, 0x5D, 0x67, 0x25, 0x67, +0x40, 0xF0, 0xA8, 0xAA, 0x30, 0xF0, 0x20, 0x6A, +0xA9, 0xF7, 0x10, 0x4A, 0x0C, 0xE9, 0x10, 0xD6, +0x11, 0xD7, 0x06, 0x07, 0x12, 0xEB, 0x69, 0xE2, +0x09, 0xD2, 0x7F, 0x6A, 0x2C, 0xEA, 0x08, 0xD2, +0x08, 0x96, 0x7D, 0x67, 0x00, 0x6A, 0x4C, 0xCB, +0x4D, 0xCB, 0x00, 0xF0, 0x1A, 0x02, 0x04, 0xD2, +0x80, 0x18, 0x46, 0x49, 0x80, 0x6B, 0x6B, 0xEB, +0x2C, 0xEB, 0x0C, 0xEB, 0x0A, 0x6A, 0x08, 0x2B, +0x08, 0x94, 0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, +0x08, 0x4A, 0x49, 0xE4, 0x47, 0xF1, 0x5C, 0xA2, +0xDD, 0x67, 0x8C, 0xAE, 0x6D, 0xAE, 0x00, 0x69, +0xA3, 0x44, 0x55, 0xE5, 0xA2, 0xEB, 0x05, 0x60, +0x23, 0x44, 0x67, 0xE1, 0x25, 0xE2, 0xFF, 0x6A, +0x4C, 0xE9, 0x08, 0x93, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0x49, 0xE3, 0xDD, 0x67, +0x07, 0xF1, 0x48, 0xA2, 0x8C, 0xAE, 0x6D, 0xAE, +0x00, 0x68, 0x95, 0xE2, 0xA2, 0xEB, 0x04, 0x60, +0x63, 0xE4, 0x41, 0xE0, 0xFF, 0x6A, 0x4C, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0xC3, 0xF4, 0x90, 0x9A, 0xFF, 0x6B, 0x01, 0x4B, +0x8C, 0xEB, 0x0C, 0x23, 0x08, 0x93, 0x30, 0xF0, +0x20, 0x6C, 0x63, 0xF7, 0x00, 0x4C, 0x49, 0xE3, +0x07, 0xF1, 0xA8, 0xA2, 0x47, 0xF1, 0xDC, 0xA2, +0x80, 0x18, 0x25, 0x42, 0x30, 0xF0, 0x20, 0x6B, +0x69, 0xF3, 0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, +0x6C, 0xEA, 0x08, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0x63, 0xF7, 0x10, 0x4C, 0xB0, 0x67, 0xD1, 0x67, +0x80, 0x18, 0x25, 0x42, 0x09, 0x94, 0x3F, 0x6B, +0x5E, 0xA4, 0x6C, 0xEA, 0x7E, 0x84, 0x00, 0x53, +0x0F, 0x60, 0x43, 0xE9, 0x02, 0x60, 0x00, 0x69, +0x03, 0x10, 0x47, 0xE1, 0xFF, 0x6B, 0x6C, 0xE9, +0x43, 0xE8, 0x02, 0x60, 0x00, 0x68, 0x0A, 0x10, +0x43, 0xE0, 0xFF, 0x6A, 0x4C, 0xE8, 0x06, 0x10, +0x05, 0x22, 0xFF, 0x6B, 0x45, 0xE1, 0x41, 0xE0, +0x6C, 0xE9, 0x6C, 0xE8, 0x42, 0x58, 0x50, 0x67, +0x01, 0x61, 0x41, 0x6A, 0x10, 0x96, 0x5B, 0x59, +0x40, 0xC6, 0x51, 0x67, 0x01, 0x61, 0x5A, 0x6A, +0x11, 0x93, 0x40, 0xC3, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0x30, 0x68, 0x18, 0xEC, +0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF7, +0x10, 0x4A, 0x07, 0xD4, 0x06, 0xD5, 0x01, 0x69, +0x12, 0xE8, 0x01, 0xE2, 0x46, 0xA0, 0x08, 0xD2, +0x00, 0x6A, 0x05, 0xD2, 0x81, 0xA0, 0x4C, 0xA0, +0x07, 0x96, 0xFF, 0x6B, 0x91, 0xE1, 0x03, 0x6F, +0x6C, 0xEC, 0x01, 0x6D, 0x4C, 0xEF, 0x80, 0x18, +0xE6, 0x47, 0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF3, +0x78, 0x9B, 0x04, 0xD2, 0x00, 0xF2, 0x00, 0x6A, +0x6C, 0xEA, 0x0C, 0x22, 0x05, 0x92, 0xC1, 0xA0, +0x04, 0x97, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6C, +0x83, 0xF7, 0x00, 0x4C, 0xA2, 0x67, 0xD9, 0xE2, +0x80, 0x18, 0x25, 0x42, 0x04, 0x92, 0xFF, 0x72, +0x0E, 0x61, 0x05, 0x93, 0x81, 0xA0, 0x40, 0xA0, +0x01, 0x4B, 0x91, 0xE3, 0x42, 0xEC, 0x06, 0x60, +0x01, 0x49, 0xFF, 0x6A, 0x4C, 0xE9, 0x54, 0x71, +0x05, 0xD3, 0xD0, 0x61, 0x04, 0xD2, 0x06, 0x92, +0x38, 0x5A, 0x02, 0x61, 0x46, 0xA0, 0x0D, 0x10, +0x06, 0x92, 0x24, 0x5A, 0x05, 0x61, 0x08, 0x92, +0xFF, 0x6B, 0xFE, 0x4A, 0x6C, 0xEA, 0x05, 0x10, +0x06, 0x92, 0x15, 0x5A, 0x04, 0x92, 0x01, 0x60, +0x41, 0xA0, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, +0x30, 0x68, 0x18, 0xEC, 0x4C, 0xEF, 0x30, 0xF0, +0x20, 0x6B, 0x0D, 0xD5, 0x0E, 0xD6, 0x06, 0xD4, +0x05, 0xD7, 0xA9, 0xF7, 0x10, 0x4B, 0x20, 0xA5, +0x03, 0x6D, 0x12, 0xE8, 0x01, 0xE3, 0x60, 0xA6, +0x04, 0xD3, 0x87, 0xA0, 0x04, 0x96, 0xAC, 0xEC, +0x64, 0x67, 0x4C, 0xEB, 0xC2, 0xEB, 0x03, 0x60, +0x0E, 0x91, 0x80, 0xC1, 0xA2, 0x10, 0xA0, 0xF0, +0x00, 0x23, 0x2F, 0x59, 0x80, 0xF0, 0x1D, 0x60, +0x6C, 0xA0, 0x6C, 0xED, 0x4C, 0xED, 0x80, 0xF0, +0x18, 0x25, 0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF3, +0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x09, 0x22, 0x05, 0x95, 0x04, 0x96, 0x30, 0xF0, +0x20, 0x6C, 0x83, 0xF7, 0x14, 0x4C, 0xF1, 0x67, +0x80, 0x18, 0x25, 0x42, 0x05, 0x92, 0x01, 0x72, +0x03, 0x60, 0x05, 0x6B, 0x01, 0x6A, 0x42, 0x10, +0x04, 0x6B, 0x00, 0x6A, 0x3F, 0x10, 0x05, 0x93, +0x81, 0x42, 0x01, 0x73, 0x01, 0x60, 0x8F, 0x42, +0xFF, 0x6A, 0x4C, 0xEC, 0x30, 0xF0, 0x20, 0x6F, +0xA5, 0xF2, 0x10, 0x4F, 0x88, 0x32, 0xE9, 0xE2, +0xC0, 0xAA, 0xFF, 0x6D, 0x88, 0x34, 0x26, 0x67, +0xAC, 0xE9, 0x04, 0xD1, 0x47, 0xA0, 0x91, 0xE7, +0xE1, 0xAC, 0x1A, 0x65, 0x38, 0x67, 0x03, 0x6A, +0x2C, 0xEA, 0xE2, 0x34, 0xAC, 0xEA, 0xAC, 0xEC, +0xC2, 0x33, 0x82, 0xEA, 0xAC, 0xEB, 0x41, 0x61, +0xE4, 0xC0, 0x30, 0xF0, 0x20, 0x6D, 0x05, 0xD5, +0x06, 0x95, 0x30, 0x69, 0x38, 0xED, 0x05, 0x91, +0xA5, 0xF6, 0x08, 0x49, 0x12, 0xED, 0x35, 0xE5, +0x24, 0xF1, 0x8E, 0xC5, 0x84, 0xA0, 0xFF, 0x74, +0x30, 0x60, 0xAC, 0xA0, 0x19, 0x6C, 0x8B, 0xEC, +0xAC, 0xEC, 0x08, 0x6D, 0xAD, 0xEC, 0x8C, 0xC0, +0x28, 0x10, 0x01, 0x4A, 0xFF, 0x6C, 0x8C, 0xEA, +0x63, 0xEA, 0x46, 0x60, 0x30, 0xF0, 0x20, 0x6C, +0x48, 0x35, 0xA5, 0xF2, 0x10, 0x4C, 0x91, 0xE5, +0xA0, 0xAC, 0xFF, 0x6C, 0xC5, 0x67, 0x8C, 0xEE, +0x2E, 0xEE, 0x05, 0x2E, 0xA2, 0x35, 0x8C, 0xED, +0x04, 0x94, 0x8E, 0xED, 0xB0, 0x25, 0x30, 0xF0, +0x20, 0x6C, 0x48, 0x35, 0xA5, 0xF2, 0x10, 0x4C, +0xB1, 0xE4, 0xA1, 0xAC, 0xFF, 0x6C, 0xC5, 0x67, +0x8C, 0xEE, 0x2E, 0xEE, 0xDE, 0x2E, 0x04, 0x96, +0xA2, 0x35, 0x8C, 0xED, 0xCE, 0xED, 0xD9, 0x2D, +0x9E, 0x17, 0x62, 0xEA, 0x00, 0x68, 0x09, 0x61, +0x3D, 0x67, 0x47, 0x41, 0x09, 0x4A, 0x40, 0xA2, +0x0D, 0x91, 0x01, 0x68, 0x40, 0xC1, 0x0E, 0x94, +0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF3, +0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x09, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF7, +0x10, 0x4C, 0xB0, 0x67, 0x80, 0x18, 0x25, 0x42, +0x01, 0x10, 0x00, 0x68, 0x50, 0x67, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0x00, 0x68, 0xF0, 0x67, 0xD0, 0x67, 0xE5, 0x17, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x68, 0x0C, 0xEC, 0xAC, 0xE8, 0xFF, 0x70, +0x04, 0xD4, 0x33, 0x60, 0x7F, 0x69, 0x0C, 0xE9, +0x91, 0x67, 0x80, 0x18, 0x73, 0x47, 0x04, 0x93, +0x30, 0x6C, 0x98, 0xEB, 0x30, 0xF0, 0x20, 0x6B, +0xA9, 0xF7, 0x10, 0x4B, 0x12, 0xEC, 0x8D, 0xE3, +0x4D, 0xE3, 0x20, 0xF0, 0x60, 0xA3, 0x00, 0xF2, +0x00, 0x6A, 0x04, 0xD3, 0x30, 0xF0, 0x20, 0x6B, +0x69, 0xF3, 0x78, 0x9B, 0x6C, 0xEA, 0x08, 0x22, +0x04, 0x96, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF7, +0x08, 0x4C, 0xB0, 0x67, 0x80, 0x18, 0x25, 0x42, +0x04, 0x94, 0xFF, 0x74, 0x0F, 0x60, 0x7F, 0x6A, +0x8C, 0xEA, 0x23, 0xEA, 0x0A, 0x61, 0x4E, 0xE9, +0x09, 0x29, 0x80, 0x6A, 0x70, 0x67, 0x4C, 0xEB, +0x8C, 0xEA, 0x4A, 0xEB, 0x02, 0x60, 0x02, 0x23, +0x01, 0x2A, 0xFF, 0x68, 0x50, 0x67, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0x4C, 0xED, 0x4C, 0xEE, 0xC3, 0xED, +0x4C, 0xEC, 0xEC, 0xEA, 0x02, 0x61, 0xD7, 0xE5, +0x01, 0x10, 0xB7, 0xE6, 0x03, 0x55, 0x01, 0x60, +0x25, 0x22, 0x30, 0x69, 0x38, 0xEC, 0x30, 0xF0, +0x20, 0x6A, 0xA9, 0xF7, 0x10, 0x4A, 0x30, 0xF0, +0x20, 0x68, 0xFF, 0x6D, 0x02, 0x6E, 0x12, 0xE9, +0x25, 0xE2, 0x80, 0xF2, 0x48, 0x98, 0x87, 0x41, +0x1A, 0x4C, 0x40, 0xEA, 0x80, 0xF2, 0x48, 0x98, +0x87, 0x41, 0x1C, 0x4C, 0x00, 0x6D, 0x02, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF3, +0x78, 0x9B, 0x01, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, +0x13, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF7, +0x18, 0x4C, 0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x69, 0xF3, 0x78, 0x9B, 0x01, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0xE3, 0xF7, 0x04, 0x4C, 0x80, 0x18, 0x25, 0x42, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0x6B, 0x78, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xA9, 0xF7, 0x10, 0x4C, +0x12, 0xEB, 0x6D, 0xE4, 0x20, 0xF0, 0x81, 0xA3, +0xFF, 0x74, 0x0F, 0x60, 0x20, 0xF0, 0x83, 0xA3, +0x32, 0x5C, 0x04, 0x60, 0x01, 0x4C, 0x20, 0xF0, +0x83, 0xC3, 0x07, 0x10, 0x00, 0x6C, 0x20, 0xF0, +0x83, 0xC3, 0x01, 0x6C, 0x8B, 0xEC, 0x20, 0xF0, +0x81, 0xC3, 0x20, 0xF0, 0x82, 0xA3, 0xFF, 0x74, +0x0F, 0x60, 0x20, 0xF0, 0x84, 0xA3, 0x32, 0x5C, +0x08, 0x61, 0x00, 0x6C, 0x20, 0xF0, 0x84, 0xC3, +0x01, 0x6C, 0x8B, 0xEC, 0x20, 0xF0, 0x82, 0xC3, +0x03, 0x10, 0x01, 0x4C, 0x20, 0xF0, 0x84, 0xC3, +0x01, 0x72, 0x17, 0x61, 0x30, 0xF0, 0x20, 0x6C, +0x69, 0xF3, 0x98, 0x9C, 0x01, 0xF0, 0x00, 0x6A, +0x8C, 0xEA, 0x0F, 0x22, 0x20, 0xF0, 0xA1, 0xA3, +0x20, 0xF0, 0xC3, 0xA3, 0x20, 0xF0, 0xE2, 0xA3, +0x20, 0xF0, 0x44, 0xA3, 0x30, 0xF0, 0x20, 0x6C, +0xE3, 0xF7, 0x10, 0x4C, 0x04, 0xD2, 0x80, 0x18, +0x25, 0x42, 0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0xFF, 0x6E, 0x44, 0x67, +0x20, 0xF4, 0x0D, 0x6B, 0x9D, 0x67, 0x68, 0xCC, +0xCC, 0xEA, 0x20, 0xF4, 0x0F, 0x6B, 0x69, 0xCC, +0x44, 0x33, 0x6D, 0xE4, 0x68, 0xAB, 0x1F, 0xF7, +0x00, 0x6C, 0xAC, 0xEE, 0x6C, 0xEC, 0x02, 0xF0, +0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, +0x20, 0x6C, 0x22, 0xF5, 0x84, 0x9C, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF5, 0x88, 0x9C, +0x91, 0xE3, 0xA0, 0xA4, 0xF1, 0x6C, 0xAC, 0xEC, +0xC4, 0x35, 0x8D, 0xED, 0x00, 0xF6, 0xA0, 0x34, +0x00, 0xF6, 0x83, 0x34, 0xFF, 0x6D, 0xAC, 0xEC, +0x1F, 0xF7, 0x00, 0x6D, 0x6C, 0xED, 0x02, 0xF0, +0x00, 0x75, 0x01, 0x60, 0x05, 0x2D, 0x30, 0xF0, +0x20, 0x6D, 0x22, 0xF5, 0xA4, 0x9D, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6D, 0x22, 0xF5, 0xA8, 0x9D, +0xAD, 0xE3, 0x80, 0xC3, 0x30, 0xF0, 0x20, 0x6B, +0x69, 0xF3, 0x78, 0x9B, 0x10, 0x6C, 0x8C, 0xEB, +0x07, 0x23, 0x30, 0xF0, 0x20, 0x6C, 0x04, 0xF0, +0x0C, 0x4C, 0xA2, 0x67, 0x80, 0x18, 0x25, 0x42, +0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xA5, 0xF6, 0x08, 0x48, +0x04, 0xF1, 0x41, 0xA0, 0xFF, 0x69, 0x8C, 0xE9, +0x16, 0x22, 0x09, 0xE1, 0xE4, 0xF0, 0xBC, 0xA2, +0x91, 0x67, 0x04, 0xD2, 0x80, 0x18, 0x32, 0x4B, +0xC3, 0xF4, 0x50, 0x98, 0x10, 0x6B, 0x6C, 0xEA, +0x0A, 0x22, 0x04, 0x92, 0x30, 0xF0, 0x20, 0x6C, +0x24, 0xF0, 0x04, 0x4C, 0xE4, 0xF0, 0xDC, 0xA2, +0xB1, 0x67, 0x80, 0x18, 0x25, 0x42, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x6A, 0x02, 0xF7, +0x6C, 0x9B, 0x4C, 0xEC, 0x08, 0xD4, 0x00, 0xA3, +0x10, 0x6B, 0x30, 0xF0, 0x20, 0x69, 0x6C, 0xE8, +0x13, 0x30, 0x4C, 0xE8, 0xA5, 0xF6, 0x08, 0x49, +0x35, 0xE0, 0xE4, 0xF0, 0x58, 0xA5, 0x06, 0xD5, +0x82, 0x67, 0x07, 0xD2, 0x80, 0x18, 0x64, 0x47, +0x7F, 0x6C, 0x4C, 0xEC, 0x09, 0xD2, 0x80, 0x18, +0x73, 0x47, 0x06, 0x93, 0x0A, 0xD2, 0x04, 0xF1, +0x41, 0xA1, 0xE4, 0xF0, 0x7A, 0xA3, 0x06, 0xD3, +0x59, 0x22, 0xC3, 0xF4, 0x50, 0x99, 0x10, 0x6D, +0xAC, 0xEA, 0x0C, 0x22, 0x04, 0xF1, 0x40, 0xA1, +0x07, 0x95, 0x08, 0x96, 0x09, 0x97, 0x30, 0xF0, +0x20, 0x6C, 0x24, 0xF0, 0x1C, 0x4C, 0x04, 0xD2, +0x80, 0x18, 0x25, 0x42, 0x08, 0x92, 0x12, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0xE4, 0xF0, 0xBF, 0xA2, 0x01, 0x6B, 0x83, 0x67, +0x84, 0xE8, 0xAD, 0xEC, 0xE4, 0xF0, 0x9F, 0xC2, +0x06, 0x94, 0x0A, 0x95, 0x01, 0x4C, 0xA2, 0xEC, +0x0E, 0x60, 0x22, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0xE4, 0xF0, 0x9F, 0xA2, +0x01, 0x6B, 0x64, 0xE8, 0x6F, 0xEB, 0x8C, 0xEB, +0xE4, 0xF0, 0x7F, 0xC2, 0x15, 0x10, 0x04, 0xF1, +0x80, 0xA2, 0x87, 0xE8, 0x6C, 0xEC, 0x10, 0x24, +0xC3, 0xF4, 0x50, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, +0x07, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF0, +0x1C, 0x4C, 0xB0, 0x67, 0x80, 0x18, 0x25, 0x42, +0x90, 0x67, 0x80, 0x18, 0x5A, 0x4B, 0x12, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF3, 0x58, 0x9A, +0x10, 0x6B, 0x6C, 0xEA, 0x07, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x64, 0xF0, 0x08, 0x4C, 0xB0, 0x67, +0x80, 0x18, 0x25, 0x42, 0x90, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x32, 0x4B, 0x0F, 0x97, 0x0E, 0x91, +0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6B, 0x44, 0x67, +0x6C, 0xEA, 0xAC, 0xEB, 0x01, 0x73, 0x0B, 0x60, +0x03, 0x23, 0x02, 0x73, 0x0F, 0x60, 0x16, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, +0x6D, 0xE2, 0x01, 0x6C, 0x0D, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, 0x6D, 0xE2, +0x03, 0x6C, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xA5, 0xF6, 0x08, 0x4B, 0x6D, 0xE2, 0x07, 0x6C, +0xE4, 0xF0, 0x9C, 0xC3, 0x30, 0xF0, 0x20, 0x6B, +0xA5, 0xF6, 0x08, 0x4B, 0xC3, 0xF4, 0x90, 0x9B, +0x10, 0x6D, 0xAC, 0xEC, 0x0A, 0x24, 0x6D, 0xE2, +0xE4, 0xF0, 0xDC, 0xA3, 0x30, 0xF0, 0x20, 0x6C, +0x64, 0xF0, 0x14, 0x4C, 0xA2, 0x67, 0x80, 0x18, +0x25, 0x42, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0x4C, 0xEE, 0x4C, 0xED, 0xEC, 0xEA, 0x30, 0x6F, +0xF8, 0xEC, 0x30, 0xF0, 0x20, 0x6B, 0xA9, 0xF7, +0x10, 0x4B, 0x12, 0xEF, 0xED, 0xE3, 0xFD, 0x67, +0xB2, 0xC7, 0x93, 0xC7, 0x55, 0xC7, 0x4B, 0xAB, +0x56, 0xC7, 0x4A, 0xAB, 0xD8, 0xC7, 0x57, 0xC7, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0x49, 0xE4, 0x87, 0xF7, 0x98, 0xA2, 0x07, 0xF7, +0xB8, 0xA2, 0x80, 0x18, 0x80, 0x47, 0x7D, 0x67, +0x59, 0xC3, 0x0C, 0x6A, 0x50, 0xC3, 0x08, 0x6A, +0x4F, 0xCB, 0x07, 0x97, 0x04, 0x94, 0x05, 0x95, +0x06, 0x96, 0x80, 0x18, 0x00, 0x40, 0x09, 0x97, +0x05, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0xFF, 0x6A, 0x02, 0xF7, 0x70, 0x9B, 0x4C, 0xEC, +0x04, 0xD4, 0x4C, 0xED, 0x4C, 0xEE, 0x4C, 0xEF, +0x94, 0x34, 0x06, 0xD5, 0x07, 0xD6, 0x05, 0xD7, +0x6D, 0xE4, 0x60, 0xA3, 0x04, 0x94, 0x6C, 0xEA, +0x08, 0xD2, 0x80, 0x18, 0x6A, 0x47, 0x04, 0x94, +0x06, 0x95, 0x09, 0xD2, 0x80, 0x18, 0xBB, 0x47, +0xFF, 0x72, 0x22, 0x67, 0x7C, 0x60, 0x04, 0x92, +0x30, 0x68, 0x0C, 0x59, 0x18, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xA9, 0xF7, 0x10, 0x4A, 0x12, 0xE8, +0x01, 0xE2, 0x22, 0xC0, 0x08, 0x60, 0x67, 0xA0, +0x0D, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x00, 0x6C, +0x47, 0xC0, 0x05, 0xD4, 0x0A, 0x10, 0x05, 0x95, +0x87, 0xA0, 0x03, 0x6B, 0x0D, 0x6A, 0xAC, 0xEB, +0x4B, 0xEA, 0x68, 0x33, 0x8C, 0xEA, 0x6D, 0xEA, +0x47, 0xC0, 0x07, 0x96, 0x15, 0x2E, 0x43, 0xA0, +0x2E, 0xEA, 0x01, 0x22, 0xD6, 0xC8, 0x6C, 0xA0, +0x7F, 0x6A, 0xB1, 0x67, 0x6C, 0xEA, 0x4C, 0xC0, +0x04, 0x94, 0x80, 0x18, 0xAC, 0x47, 0x04, 0x94, +0x05, 0x96, 0xB1, 0x67, 0x00, 0x6F, 0x80, 0x18, +0xCE, 0x4B, 0x00, 0x6A, 0x62, 0x67, 0x1C, 0x10, +0x6C, 0xA0, 0x80, 0x6A, 0x4B, 0xEA, 0x6D, 0xEA, +0x4C, 0xC0, 0x04, 0x94, 0x05, 0x96, 0xB1, 0x67, +0x05, 0x6F, 0x80, 0x18, 0xCE, 0x4B, 0x06, 0x94, +0x30, 0xF0, 0x20, 0x6A, 0x7F, 0x6B, 0x8C, 0xEB, +0x45, 0xF2, 0x1C, 0x4A, 0x49, 0xE3, 0x40, 0xA2, +0x50, 0xC0, 0x70, 0xA0, 0x51, 0xA0, 0x63, 0xEA, +0x01, 0x60, 0x50, 0xC0, 0x40, 0x6A, 0x01, 0x6B, +0x05, 0x96, 0x07, 0x6C, 0xCC, 0x35, 0x09, 0x96, +0xCC, 0xEC, 0x91, 0xE5, 0x08, 0x96, 0x4D, 0xEC, +0x04, 0x6A, 0x4B, 0xEA, 0xCC, 0xEA, 0x6D, 0xEA, +0x00, 0xF6, 0x80, 0x34, 0x00, 0xF6, 0x40, 0x32, +0xFF, 0x6D, 0x00, 0xF6, 0x83, 0x34, 0x00, 0xF6, +0x43, 0x32, 0xAC, 0xEC, 0xAC, 0xEA, 0x04, 0x95, +0xB4, 0x33, 0x30, 0xF0, 0x20, 0x6D, 0xA2, 0xF6, +0xB4, 0x9D, 0xB5, 0xE3, 0x20, 0xC5, 0x30, 0xF0, +0x20, 0x6D, 0xA2, 0xF6, 0xAC, 0x9D, 0xB5, 0xE3, +0x80, 0xC5, 0x30, 0xF0, 0x20, 0x6C, 0x02, 0xF7, +0x90, 0x9C, 0x8D, 0xE3, 0x40, 0xC3, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x69, 0x8C, 0xE9, 0x30, 0x68, 0x18, 0xE9, +0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF7, 0x10, 0x4A, +0x91, 0x67, 0x12, 0xE8, 0x01, 0xE2, 0x80, 0x18, +0x64, 0x47, 0x7F, 0x6B, 0x4C, 0xEB, 0x04, 0xD3, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, 0x78, 0x9B, +0x2C, 0x32, 0x91, 0x67, 0x6D, 0xE2, 0xA0, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, 0x60, 0x9B, +0x69, 0xE2, 0xC0, 0x9A, 0x80, 0x18, 0x9E, 0x48, +0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF3, +0x58, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x08, 0x22, +0x04, 0x95, 0x05, 0x96, 0x30, 0xF0, 0x20, 0x6C, +0x84, 0xF0, 0x0C, 0x4C, 0x80, 0x18, 0x25, 0x42, +0x04, 0x92, 0x05, 0x93, 0x6E, 0xEA, 0x09, 0x22, +0xE7, 0xA0, 0x03, 0x6A, 0x91, 0x67, 0xEA, 0x37, +0xA3, 0x67, 0x00, 0x6E, 0x4C, 0xEF, 0x80, 0x18, +0xE7, 0x4B, 0x6C, 0xA0, 0x03, 0x6A, 0x6C, 0xEA, +0x02, 0x22, 0x33, 0x6A, 0x01, 0x10, 0x13, 0x6A, +0x46, 0xC0, 0x66, 0xA0, 0x40, 0xA0, 0x63, 0xEA, +0x01, 0x60, 0x46, 0xC0, 0x68, 0xA0, 0x1F, 0x6A, +0x4C, 0xEB, 0x0F, 0x5B, 0x26, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0x68, 0x33, 0x22, 0xF1, 0x10, 0x4A, +0x69, 0xE2, 0x40, 0x9A, 0x00, 0xEA, 0x7F, 0xA0, +0x1F, 0x6A, 0x6C, 0xEA, 0x40, 0x6B, 0x6D, 0xEA, +0x6F, 0xA0, 0x5F, 0xC0, 0x31, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x20, 0x6B, 0x1A, 0x10, 0x7F, 0xA0, +0x1F, 0x6A, 0x6C, 0xEA, 0x20, 0x6B, 0x6D, 0xEA, +0x0E, 0x10, 0x7F, 0xA0, 0x1F, 0x6A, 0x0A, 0x10, +0x7F, 0xA0, 0x1F, 0x6A, 0x6C, 0xEA, 0x60, 0x6B, +0x6D, 0xEA, 0x5F, 0xC0, 0x6F, 0xA0, 0x30, 0x6A, +0x08, 0x10, 0x7F, 0xA0, 0x6C, 0xEA, 0x6F, 0xA0, +0x5F, 0xC0, 0x31, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x10, 0x6B, 0x6D, 0xEA, 0x4F, 0xC0, 0x30, 0xF0, +0x20, 0x6A, 0x69, 0xF3, 0x58, 0x9A, 0x20, 0x6B, +0x6C, 0xEA, 0x0A, 0x22, 0xFF, 0xA0, 0xA0, 0xA0, +0xC1, 0xA0, 0x30, 0xF0, 0x20, 0x6C, 0x84, 0xF0, +0x1C, 0x4C, 0xF6, 0x37, 0x80, 0x18, 0x25, 0x42, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, +0x0E, 0xD1, 0x0D, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF7, 0x54, 0x9A, 0x00, 0x68, 0x60, 0xA2, +0xFF, 0x6A, 0x83, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF7, 0x78, 0x9B, 0x4C, 0xEC, 0x08, 0xD4, +0x60, 0xA3, 0x01, 0x6C, 0x6C, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, 0x56, 0x32, +0x8C, 0xEA, 0x07, 0xF3, 0xB4, 0xA3, 0x48, 0x34, +0x05, 0x6A, 0x4B, 0xEA, 0xAC, 0xEA, 0x8D, 0xEA, +0x07, 0xF3, 0x54, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x5C, 0x9A, 0x90, 0x67, 0x40, 0xEA, +0xC0, 0xF0, 0x12, 0x22, 0x30, 0x69, 0x38, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF7, 0x10, 0x4A, +0x40, 0x6B, 0x12, 0xE9, 0x25, 0xE2, 0x88, 0xA1, +0xFF, 0x6A, 0x8C, 0xEB, 0xC0, 0xF0, 0x04, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, +0x07, 0xF3, 0xB4, 0xA3, 0x04, 0x6C, 0xAC, 0xEC, +0x4C, 0xEC, 0x4D, 0x24, 0x08, 0x94, 0x0A, 0xEC, +0x23, 0x61, 0x30, 0xF0, 0x20, 0x6C, 0x02, 0xF7, +0x9C, 0x9C, 0xC3, 0xF4, 0x70, 0x9B, 0x80, 0xA4, +0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF7, +0x80, 0x9C, 0x4C, 0xED, 0x06, 0xD5, 0x80, 0xA4, +0x8C, 0xEA, 0x07, 0xD2, 0x01, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x09, 0x22, 0x07, 0x96, 0x06, 0x97, +0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF0, 0x14, 0x4C, +0xB0, 0x67, 0x80, 0x18, 0x25, 0x42, 0x90, 0x67, +0x06, 0x95, 0x00, 0x6E, 0x07, 0x97, 0x25, 0x10, +0x08, 0x94, 0xFF, 0x74, 0x24, 0x61, 0x30, 0xF0, +0x20, 0x6C, 0x02, 0xF7, 0x9C, 0x9C, 0xC3, 0xF4, +0x70, 0x9B, 0x80, 0xA4, 0xA4, 0x67, 0x30, 0xF0, +0x20, 0x6C, 0x22, 0xF7, 0x80, 0x9C, 0x4C, 0xED, +0x07, 0xD5, 0x80, 0xA4, 0x8C, 0xEA, 0x06, 0xD2, +0x01, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x09, 0x22, +0x06, 0x96, 0x07, 0x97, 0x30, 0xF0, 0x20, 0x6C, +0xA4, 0xF0, 0x14, 0x4C, 0xB0, 0x67, 0x80, 0x18, +0x25, 0x42, 0x07, 0x95, 0x06, 0x97, 0x90, 0x67, +0x00, 0x6E, 0x80, 0x18, 0xE7, 0x4B, 0x20, 0xF0, +0x45, 0xA1, 0x04, 0x2A, 0x6F, 0xA1, 0x40, 0x6A, +0x6D, 0xEA, 0x04, 0x10, 0x6F, 0xA1, 0x41, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x4F, 0xC1, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, 0x4D, 0xE0, +0x06, 0xD2, 0x08, 0xF2, 0x58, 0xA3, 0x07, 0xD3, +0x01, 0x4A, 0x08, 0xF2, 0x58, 0xC3, 0x08, 0xF2, +0x58, 0xA3, 0x28, 0x5A, 0x39, 0x61, 0x06, 0x94, +0x04, 0xF0, 0x4C, 0x40, 0x44, 0x32, 0x89, 0xE2, +0xA0, 0xAA, 0x09, 0xD2, 0x84, 0xF0, 0x4C, 0x40, +0x44, 0x32, 0x89, 0xE2, 0x80, 0xAA, 0x0A, 0xD2, +0x93, 0xE5, 0x80, 0x18, 0x80, 0x47, 0x06, 0x95, +0x0B, 0xD2, 0x10, 0x6B, 0xC3, 0xF4, 0x50, 0x9D, +0x6C, 0xEA, 0x0F, 0x22, 0x07, 0x92, 0x0A, 0x94, +0x09, 0x93, 0x08, 0xF2, 0xD8, 0xA2, 0x40, 0xAC, +0xE0, 0xAB, 0x30, 0xF0, 0x20, 0x6C, 0xC4, 0xF0, +0x10, 0x4C, 0xB0, 0x67, 0x04, 0xD2, 0x80, 0x18, +0x25, 0x42, 0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF3, +0x58, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, 0x09, 0x22, +0xC3, 0xA1, 0x0B, 0x97, 0x30, 0xF0, 0x20, 0x6C, +0xE4, 0xF0, 0x10, 0x4C, 0xB0, 0x67, 0x80, 0x18, +0x25, 0x42, 0x90, 0x67, 0x80, 0x18, 0xA6, 0x45, +0x01, 0x70, 0x10, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0x69, 0xF3, 0x78, 0x9B, 0x01, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x08, 0x22, 0x20, 0xF0, 0xA5, 0xA1, +0x30, 0xF0, 0x20, 0x6C, 0x04, 0xF1, 0x0C, 0x4C, +0x80, 0x18, 0x25, 0x42, 0x00, 0x6A, 0x20, 0xF0, +0x45, 0xC1, 0x90, 0x67, 0x80, 0x18, 0x0B, 0x4B, +0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, 0x80, 0x70, +0x3F, 0xF7, 0x00, 0x61, 0x0F, 0x97, 0x0E, 0x91, +0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0x68, 0x18, 0xEA, +0x08, 0xD2, 0x08, 0x94, 0xFF, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0xAC, 0xEB, 0xA9, 0xF7, 0x10, 0x4A, +0x0B, 0xD3, 0x7F, 0x69, 0x12, 0xE8, 0x01, 0xE2, +0x80, 0x18, 0x64, 0x47, 0x7D, 0x67, 0x58, 0xC3, +0x98, 0xA3, 0x03, 0x6B, 0x09, 0xD4, 0x40, 0xA0, +0x8C, 0xE9, 0x9D, 0x67, 0x0A, 0xD2, 0xE7, 0xA0, +0xEA, 0x32, 0x6C, 0xEA, 0x59, 0xC4, 0x01, 0x6A, +0x4B, 0xEA, 0x8C, 0xA0, 0x44, 0xC0, 0x45, 0xC0, +0x20, 0xF0, 0x46, 0xC0, 0x20, 0xF0, 0x47, 0xC0, +0x19, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, 0x4C, 0xC0, +0x30, 0xF0, 0x20, 0x6C, 0x69, 0xF3, 0x98, 0x9C, +0x00, 0xF2, 0x00, 0x6A, 0x8C, 0xEA, 0x0C, 0x22, +0x5D, 0x67, 0x09, 0x95, 0xD9, 0xA2, 0x6C, 0xEF, +0x30, 0xF0, 0x20, 0x6C, 0xFF, 0x6B, 0x04, 0xF1, +0x18, 0x4C, 0x6C, 0xEF, 0x80, 0x18, 0x25, 0x42, +0x0A, 0x94, 0x8A, 0xE9, 0x2F, 0x61, 0x6C, 0xA0, +0x04, 0x6A, 0x6C, 0xEA, 0x19, 0x22, 0x09, 0x92, +0x80, 0x6B, 0x6B, 0xEB, 0x6C, 0xEA, 0xFF, 0x6C, +0x8C, 0xEA, 0x12, 0x2A, 0x0A, 0x92, 0x9D, 0x67, +0x4D, 0xEB, 0x78, 0xC4, 0x30, 0xF0, 0x20, 0x6B, +0x69, 0xF3, 0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, +0x6C, 0xEA, 0xA0, 0xF0, 0x19, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x24, 0xF1, 0x14, 0x4C, 0xB0, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF3, 0x78, 0x9B, +0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x40, 0xF1, +0x19, 0x22, 0x7D, 0x67, 0xB8, 0xA3, 0x30, 0xF0, +0x20, 0x6C, 0x44, 0xF1, 0x00, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x50, 0x11, 0x0A, 0x94, 0x23, 0xEC, +0x17, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF3, +0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, +0x08, 0x22, 0x5D, 0x67, 0xB8, 0xA2, 0x30, 0xF0, +0x20, 0x6C, 0x44, 0xF1, 0x10, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x7D, 0x67, 0x87, 0x43, 0x21, 0x4C, +0x80, 0xA4, 0x00, 0x69, 0x98, 0xC3, 0x89, 0x10, +0x08, 0x94, 0x06, 0x05, 0x00, 0xF0, 0x19, 0x06, +0x01, 0x6F, 0x80, 0x18, 0x5D, 0x4A, 0x12, 0x22, +0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF3, 0x78, 0x9B, +0x00, 0xF4, 0x00, 0x6A, 0x6C, 0xEA, 0x78, 0x22, +0x5D, 0x67, 0xB8, 0xA2, 0xD9, 0xA2, 0x30, 0xF0, +0x20, 0x6C, 0x64, 0xF1, 0x00, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x6E, 0x10, 0x7D, 0x67, 0x87, 0xA0, +0x59, 0xA3, 0x03, 0x6B, 0x8C, 0xEB, 0x62, 0xEA, +0x15, 0x60, 0x9D, 0x67, 0x78, 0xA4, 0x0C, 0x5B, +0x11, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF3, +0x78, 0x9B, 0x01, 0x4A, 0x59, 0xC4, 0x00, 0xF2, +0x00, 0x6A, 0x6C, 0xEA, 0x59, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x5D, 0x67, 0x64, 0xF1, 0x1C, 0x4C, +0xB9, 0xA2, 0x50, 0x10, 0x08, 0x94, 0x06, 0x05, +0x01, 0x6E, 0x80, 0x18, 0x67, 0x48, 0x00, 0x6B, +0x09, 0xD3, 0x10, 0x22, 0x30, 0xF0, 0x20, 0x6B, +0x69, 0xF3, 0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, +0x6C, 0xEA, 0x42, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0x84, 0xF1, 0x08, 0x4C, 0x39, 0x10, 0x01, 0x49, +0xFF, 0x6A, 0x4C, 0xE9, 0x4C, 0xA0, 0x08, 0x96, +0x03, 0x6F, 0x91, 0x67, 0x01, 0x6D, 0x4C, 0xEF, +0x80, 0x18, 0xE6, 0x47, 0x7D, 0x67, 0x58, 0xC3, +0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF3, 0x78, 0x9B, +0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x0A, 0x22, +0x5D, 0x67, 0x09, 0x95, 0xF8, 0xA2, 0x30, 0xF0, +0x20, 0x6C, 0x84, 0xF1, 0x18, 0x4C, 0xD1, 0x67, +0x80, 0x18, 0x25, 0x42, 0x7D, 0x67, 0x58, 0xA3, +0xFF, 0x72, 0x0A, 0x61, 0x0A, 0x94, 0x83, 0xE9, +0x02, 0x61, 0x98, 0xC3, 0x05, 0x10, 0x09, 0x93, +0x01, 0x4B, 0x54, 0x73, 0x09, 0xD3, 0xD3, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF3, 0x78, 0x9B, +0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x08, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF1, 0x08, 0x4C, +0x5D, 0x67, 0xB8, 0xA2, 0x80, 0x18, 0x25, 0x42, +0x01, 0x69, 0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF3, +0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, +0x0A, 0x22, 0x7D, 0x67, 0xB8, 0xA3, 0xC4, 0xA0, +0xE5, 0xA0, 0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF1, +0x14, 0x4C, 0x80, 0x18, 0x25, 0x42, 0x5D, 0x67, +0x08, 0x94, 0xB8, 0xA2, 0x80, 0x18, 0xC4, 0x4A, +0x7D, 0x67, 0x58, 0xC3, 0x6C, 0xA0, 0x18, 0x6A, +0x6C, 0xEA, 0x0A, 0x22, 0x08, 0x94, 0xA4, 0xA0, +0x80, 0x18, 0xC4, 0x4A, 0x44, 0xC0, 0x08, 0x94, +0xA5, 0xA0, 0x80, 0x18, 0xC4, 0x4A, 0x45, 0xC0, +0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF3, 0x78, 0x9B, +0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x0A, 0x22, +0x5D, 0x67, 0xB8, 0xA2, 0xC4, 0xA0, 0xE5, 0xA0, +0x30, 0xF0, 0x20, 0x6C, 0xC4, 0xF1, 0x04, 0x4C, +0x80, 0x18, 0x25, 0x42, 0x45, 0xA0, 0xFF, 0x6B, +0x84, 0xA0, 0x4E, 0xEB, 0x01, 0x5B, 0x78, 0x67, +0xFF, 0x74, 0x05, 0x61, 0x44, 0xC0, 0x01, 0x6A, +0x4B, 0xEA, 0x45, 0xC0, 0x01, 0x4B, 0x9D, 0x67, +0x58, 0xA4, 0xFF, 0x72, 0x09, 0x61, 0x44, 0xA0, +0x01, 0x4B, 0x58, 0xC4, 0x01, 0x6A, 0x4B, 0xEA, +0x44, 0xC0, 0xFF, 0x6A, 0x4C, 0xEB, 0x07, 0x10, +0x06, 0x2B, 0x6C, 0xA0, 0x19, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x10, 0x6B, 0x07, 0x10, 0x01, 0x73, +0x07, 0x61, 0x6C, 0xA0, 0x19, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x08, 0x6B, 0x6D, 0xEA, 0x06, 0x10, +0x02, 0x73, 0x09, 0x61, 0x6C, 0xA0, 0x19, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x4C, 0xC0, 0x0B, 0x92, +0x01, 0x72, 0x1B, 0x61, 0x14, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x69, 0xF3, 0x78, 0x9B, 0x00, 0xF2, +0x00, 0x6A, 0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0xC4, 0xF1, 0x14, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x6C, 0xA0, 0x19, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x4C, 0xC0, 0x2B, 0x10, 0x6C, 0xA0, +0x19, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x4C, 0xC0, +0x00, 0x69, 0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF3, +0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, +0x10, 0x22, 0x7D, 0x67, 0xB8, 0xA3, 0xC4, 0xA0, +0xE5, 0xA0, 0x04, 0xD1, 0x4C, 0xA0, 0x03, 0x6B, +0x30, 0xF0, 0x20, 0x6C, 0x4E, 0x32, 0x6C, 0xEA, +0xE4, 0xF1, 0x00, 0x4C, 0x05, 0xD2, 0x80, 0x18, +0x25, 0x42, 0x6B, 0xA0, 0x0F, 0x6A, 0xD1, 0x67, +0x6C, 0xEA, 0x10, 0x6B, 0x6D, 0xEA, 0x4B, 0xC0, +0x5D, 0x67, 0x08, 0x94, 0xB8, 0xA2, 0xF9, 0xA2, +0x80, 0x18, 0xE7, 0x4B, 0x0F, 0x97, 0x0E, 0x91, +0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF6, 0x63, 0x13, 0x62, 0x12, 0xD1, 0x11, 0xD0, +0xFF, 0x68, 0x0C, 0xEC, 0x30, 0x69, 0x38, 0xEC, +0x30, 0xF0, 0x20, 0x6A, 0x0C, 0xED, 0x0C, 0xEE, +0xA9, 0xF7, 0x10, 0x4A, 0x09, 0xD4, 0x0D, 0xD5, +0x0E, 0xD6, 0x12, 0xE9, 0x25, 0xE2, 0x80, 0x18, +0x64, 0x47, 0x7D, 0x67, 0x58, 0xC3, 0x98, 0xA3, +0x0C, 0xD4, 0x40, 0xA1, 0x9D, 0x67, 0x0A, 0xD2, +0x61, 0xA1, 0x0B, 0xD3, 0xE7, 0xA1, 0x03, 0x6B, +0xEA, 0x32, 0x6C, 0xEA, 0x59, 0xC4, 0x01, 0x6A, +0x4B, 0xEA, 0x8C, 0xA1, 0x44, 0xC1, 0x45, 0xC1, +0x20, 0xF0, 0x46, 0xC1, 0x20, 0xF0, 0x47, 0xC1, +0x19, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, 0x4C, 0xC1, +0x30, 0xF0, 0x20, 0x6C, 0x69, 0xF3, 0x98, 0x9C, +0x00, 0xF4, 0x00, 0x6A, 0x8C, 0xEA, 0x0B, 0x22, +0x5D, 0x67, 0x0C, 0x95, 0xD9, 0xA2, 0x6C, 0xEF, +0x30, 0xF0, 0x20, 0x6C, 0x04, 0xF2, 0x04, 0x4C, +0x0C, 0xEF, 0x80, 0x18, 0x25, 0x42, 0x0D, 0x93, +0xA0, 0xF0, 0x07, 0x23, 0x0C, 0x92, 0x0A, 0x93, +0x7F, 0x6C, 0x8C, 0xEA, 0x43, 0xEB, 0x08, 0xD2, +0x02, 0x60, 0x9D, 0x67, 0x78, 0xC4, 0x08, 0x93, +0x0B, 0x94, 0x8A, 0xEB, 0x80, 0xF0, 0x19, 0x60, +0x63, 0xEC, 0x04, 0x61, 0x5D, 0x67, 0x98, 0xC2, +0x00, 0x68, 0x65, 0x10, 0x09, 0x94, 0x06, 0x00, +0xB0, 0x67, 0x00, 0xF0, 0x19, 0x06, 0x02, 0x6F, +0x80, 0x18, 0x5D, 0x4A, 0x0D, 0x22, 0x30, 0xF0, +0x20, 0x6B, 0x69, 0xF3, 0x78, 0x9B, 0x00, 0xF4, +0x00, 0x6A, 0x6C, 0xEA, 0x53, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x24, 0xF2, 0x00, 0x4C, 0x4A, 0x10, +0x09, 0x94, 0xB0, 0x67, 0x02, 0x6E, 0x80, 0x18, +0x67, 0x48, 0x00, 0x68, 0x2E, 0x22, 0x30, 0xF0, +0x20, 0x6B, 0x69, 0xF3, 0x78, 0x9B, 0x00, 0xF4, +0x00, 0x6A, 0x6C, 0xEA, 0x3F, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x7D, 0x67, 0x24, 0xF2, 0x0C, 0x4C, +0xB8, 0xA3, 0x36, 0x10, 0x4C, 0xA1, 0x08, 0x94, +0x09, 0x96, 0x03, 0x6F, 0x02, 0x6D, 0x4C, 0xEF, +0x80, 0x18, 0xE6, 0x47, 0x9D, 0x67, 0x58, 0xC4, +0x0B, 0x93, 0x08, 0x92, 0x43, 0xEB, 0x02, 0x61, +0x78, 0xC4, 0x0C, 0x10, 0x7D, 0x67, 0x58, 0xA3, +0xFF, 0x72, 0x08, 0x61, 0x08, 0x94, 0xFF, 0x6A, +0xFF, 0x4C, 0x4C, 0xEC, 0x0A, 0x92, 0x08, 0xD4, +0x4A, 0xEC, 0xE4, 0x61, 0x01, 0x48, 0xFF, 0x6A, +0x4C, 0xE8, 0x0D, 0x93, 0x63, 0xE8, 0x06, 0x60, +0x08, 0x94, 0xFF, 0x6A, 0xAC, 0x4C, 0x4C, 0xEC, +0x0A, 0xD4, 0xD8, 0x17, 0x30, 0xF0, 0x20, 0x6B, +0x69, 0xF3, 0x78, 0x9B, 0x00, 0xF4, 0x00, 0x6A, +0x6C, 0xEA, 0x08, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0x24, 0xF2, 0x1C, 0x4C, 0x5D, 0x67, 0xB8, 0xA2, +0x80, 0x18, 0x25, 0x42, 0x01, 0x68, 0x0E, 0x93, +0x01, 0x73, 0x06, 0x61, 0x6C, 0xA1, 0x19, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x4C, 0xC1, 0x00, 0x68, +0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF3, 0x78, 0x9B, +0x00, 0xF4, 0x00, 0x6A, 0x6C, 0xEA, 0x10, 0x22, +0x9D, 0x67, 0xB8, 0xA4, 0xC4, 0xA1, 0xE5, 0xA1, +0x04, 0xD0, 0x4C, 0xA1, 0x03, 0x6B, 0x30, 0xF0, +0x20, 0x6C, 0x4E, 0x32, 0x6C, 0xEA, 0x44, 0xF2, +0x0C, 0x4C, 0x05, 0xD2, 0x80, 0x18, 0x25, 0x42, +0x6B, 0xA1, 0x0F, 0x6A, 0xD0, 0x67, 0x6C, 0xEA, +0x20, 0x6B, 0x6D, 0xEA, 0x4B, 0xC1, 0x5D, 0x67, +0x09, 0x94, 0xB8, 0xA2, 0xF9, 0xA2, 0x80, 0x18, +0xE7, 0x4B, 0x13, 0x97, 0x12, 0x91, 0x11, 0x90, +0x0A, 0x63, 0x00, 0xEF, 0xF6, 0x63, 0x13, 0x62, +0x12, 0xD1, 0x11, 0xD0, 0xFF, 0x69, 0x8C, 0xE9, +0x30, 0x68, 0x18, 0xE9, 0x30, 0xF0, 0x20, 0x6A, +0xA9, 0xF7, 0x10, 0x4A, 0x91, 0x67, 0x12, 0xE8, +0x01, 0xE2, 0x80, 0x18, 0x64, 0x47, 0x91, 0x67, +0x0B, 0xD2, 0x80, 0x18, 0x6A, 0x47, 0x8C, 0xA0, +0x80, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xFF, 0x6C, +0x8C, 0xEB, 0x0E, 0x23, 0x30, 0xF0, 0x20, 0x6B, +0x69, 0xF3, 0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, +0x6C, 0xEA, 0x80, 0xF1, 0x04, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x64, 0xF2, 0x10, 0x4C, 0x7D, 0x11, +0x18, 0x6B, 0x4C, 0xEB, 0x6F, 0x33, 0xFF, 0x6D, +0xAC, 0xEB, 0x08, 0xD3, 0x0B, 0x93, 0x7F, 0x6A, +0x6C, 0xEA, 0x60, 0xA0, 0x42, 0xEB, 0x15, 0x60, +0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF3, 0x78, 0x9B, +0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x06, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF2, 0x18, 0x4C, +0x80, 0x18, 0x25, 0x42, 0xA0, 0xA0, 0x08, 0x97, +0x91, 0x67, 0x00, 0x6E, 0x80, 0x18, 0xE7, 0x4B, +0x61, 0x11, 0x9D, 0x67, 0xA7, 0x44, 0x25, 0x4D, +0x80, 0xA5, 0x31, 0x6A, 0x4B, 0xEA, 0x83, 0xC0, +0x08, 0x95, 0x87, 0xA0, 0xB0, 0x33, 0x8C, 0xEA, +0x6D, 0xEA, 0x47, 0xC0, 0x83, 0xF6, 0x6C, 0x41, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0x64, 0x33, 0x4D, 0xE3, 0x60, 0xAB, 0x0D, 0xD3, +0x03, 0xF7, 0x6C, 0x41, 0x64, 0x33, 0x4D, 0xE3, +0x60, 0xAB, 0x0C, 0xD3, 0x83, 0xF5, 0x6C, 0x41, +0x64, 0x33, 0x49, 0xE3, 0x40, 0xAA, 0x0D, 0x93, +0xA2, 0x67, 0x73, 0xE2, 0x0A, 0xD2, 0x80, 0x18, +0x80, 0x47, 0x09, 0xD2, 0x0C, 0x95, 0x0D, 0x92, +0x53, 0xE5, 0x80, 0x18, 0x80, 0x47, 0x7D, 0x67, +0x87, 0x43, 0x1D, 0x4C, 0x60, 0xAC, 0x0E, 0xD2, +0x6A, 0xC8, 0x0A, 0x94, 0x40, 0x6B, 0x86, 0x32, +0x41, 0x5A, 0x03, 0x60, 0x61, 0x42, 0xFF, 0x6D, +0xAC, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x71, 0xC0, +0xA5, 0xF6, 0x08, 0x4A, 0xC3, 0xF4, 0x90, 0x9A, +0xFF, 0x6B, 0x01, 0x4B, 0x8C, 0xEB, 0x11, 0x23, +0x03, 0xF6, 0x6C, 0x41, 0x64, 0x33, 0x49, 0xE3, +0x40, 0xAA, 0x0D, 0x96, 0x0A, 0x97, 0x04, 0xD2, +0x0C, 0x92, 0x30, 0xF0, 0x20, 0x6C, 0x84, 0xF2, +0x04, 0x4C, 0xB1, 0x67, 0x05, 0xD2, 0x80, 0x18, +0x25, 0x42, 0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF3, +0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x08, 0x22, 0x09, 0x95, 0x0E, 0x96, 0x30, 0xF0, +0x20, 0x6C, 0xA4, 0xF2, 0x08, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF3, +0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x0C, 0x22, 0xA7, 0xA0, 0x08, 0x96, 0x0B, 0x97, +0xAA, 0x35, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0x6A, +0xA4, 0xF2, 0x18, 0x4C, 0x4C, 0xED, 0x80, 0x18, +0x25, 0x42, 0x09, 0x93, 0x0B, 0x95, 0x91, 0x67, +0x06, 0x06, 0x00, 0xF0, 0x19, 0x07, 0x04, 0xD3, +0x80, 0x18, 0xDB, 0x49, 0x30, 0xF0, 0x20, 0x6B, +0x69, 0xF3, 0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, +0x6C, 0xEA, 0x09, 0x22, 0x5D, 0x67, 0xB8, 0xA2, +0xD9, 0xA2, 0x30, 0xF0, 0x20, 0x6C, 0xC4, 0xF2, +0x10, 0x4C, 0x80, 0x18, 0x25, 0x42, 0x30, 0xF0, +0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, 0x07, 0xF3, +0xB4, 0xA3, 0x04, 0x6C, 0xFF, 0x6A, 0xAC, 0xEC, +0x0B, 0x24, 0xC3, 0xF4, 0x70, 0x9B, 0x01, 0x4A, +0x6C, 0xEA, 0xA0, 0xF0, 0x18, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0xE4, 0xF2, 0x00, 0x4C, 0xB1, 0x10, +0xBD, 0x67, 0x99, 0xA5, 0x09, 0x95, 0x83, 0xED, +0x03, 0x60, 0x0E, 0x94, 0x1E, 0x5C, 0x52, 0x61, +0x0E, 0x95, 0x50, 0x5D, 0x15, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x69, 0xF3, 0x78, 0x9B, 0xFF, 0x6A, +0x01, 0x4A, 0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0xE4, 0xF2, 0x0C, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x01, 0x6D, 0x91, 0x67, 0xC5, 0x67, +0x80, 0x18, 0xF0, 0x4D, 0x00, 0x6A, 0x72, 0x10, +0x8A, 0xA0, 0x0F, 0x6D, 0x10, 0x6A, 0x64, 0x67, +0xAC, 0xEB, 0x01, 0x4B, 0x4B, 0xEA, 0xAC, 0xEB, +0x8C, 0xEA, 0x6D, 0xEA, 0x4A, 0xC0, 0x30, 0xF0, +0x20, 0x6C, 0x69, 0xF3, 0x98, 0x9C, 0xFF, 0x6B, +0x01, 0x4B, 0x8C, 0xEB, 0x07, 0x23, 0x30, 0xF0, +0x20, 0x6C, 0xE4, 0xF2, 0x18, 0x4C, 0x4C, 0xED, +0x80, 0x18, 0x25, 0x42, 0x6A, 0xA0, 0x0F, 0x6A, +0x6C, 0xEA, 0x02, 0x52, 0x18, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x69, 0xF3, 0x78, 0x9B, 0xFF, 0x6A, +0x01, 0x4A, 0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x04, 0xF3, 0x08, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x91, 0x67, 0x01, 0x6D, 0x00, 0x6E, +0x80, 0x18, 0xF0, 0x4D, 0x6A, 0xA0, 0x10, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x4A, 0xC0, 0x6A, 0xA0, +0x0F, 0x6A, 0x37, 0x10, 0x9D, 0x67, 0xB8, 0xA4, +0xFF, 0xF7, 0x1F, 0x6C, 0xAC, 0xEC, 0x09, 0x95, +0x83, 0xED, 0x32, 0x60, 0x8A, 0xA0, 0x10, 0x4C, +0x8A, 0xC0, 0xC3, 0xF4, 0x70, 0x9B, 0xFF, 0x6C, +0x01, 0x4C, 0x6C, 0xEC, 0x09, 0x24, 0xAA, 0xA0, +0x30, 0xF0, 0x20, 0x6C, 0x04, 0xF3, 0x14, 0x4C, +0xB2, 0x35, 0x4C, 0xED, 0x80, 0x18, 0x25, 0x42, +0x4A, 0xA0, 0x52, 0x32, 0x03, 0x52, 0x16, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF3, 0x78, 0x9B, +0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x06, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x24, 0xF3, 0x00, 0x4C, +0x80, 0x18, 0x25, 0x42, 0x91, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x0A, 0x4D, 0x6A, 0xA0, 0x0F, 0x6A, +0x6C, 0xEA, 0x4A, 0xC0, 0x6A, 0xA0, 0x10, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x4A, 0xC0, 0x1F, 0x10, +0x8A, 0xA0, 0x92, 0x33, 0x4C, 0xEB, 0x02, 0x23, +0xF0, 0x4C, 0x8A, 0xC0, 0x8A, 0xA0, 0x0F, 0x6A, +0x64, 0x67, 0x4C, 0xEB, 0x06, 0x23, 0x0F, 0x4B, +0x4C, 0xEB, 0xE1, 0x4A, 0x8C, 0xEA, 0x6D, 0xEA, +0x4A, 0xC0, 0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF3, +0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x24, 0xF3, +0x08, 0x4C, 0x80, 0x18, 0x25, 0x42, 0x91, 0x67, +0x80, 0x18, 0x2C, 0x46, 0x13, 0x97, 0x12, 0x91, +0x11, 0x90, 0x0A, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x04, 0x67, 0x26, 0x67, 0x4C, 0xE8, +0x4C, 0xE9, 0x90, 0x67, 0x4C, 0xED, 0xD1, 0x67, +0x80, 0x18, 0x2E, 0x4A, 0xA2, 0x67, 0x90, 0x67, +0x00, 0x6E, 0xF1, 0x67, 0x04, 0xD2, 0x80, 0x18, +0xE7, 0x4B, 0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF3, +0x58, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x07, 0x22, +0x04, 0x95, 0x30, 0xF0, 0x20, 0x6C, 0x24, 0xF3, +0x14, 0x4C, 0x80, 0x18, 0x25, 0x42, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0x30, 0x69, 0x38, 0xEC, +0x30, 0xF0, 0x20, 0x6B, 0xA9, 0xF7, 0x10, 0x4B, +0x05, 0xD4, 0x12, 0xE9, 0x25, 0xE3, 0x07, 0xA1, +0x03, 0x6B, 0x12, 0x30, 0x6C, 0xE8, 0x4C, 0xE8, +0x43, 0xA1, 0x7F, 0x6B, 0x04, 0xD2, 0x4C, 0xEB, +0x40, 0xA1, 0x63, 0xEA, 0x01, 0x60, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF3, 0x78, 0x9B, +0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x08, 0x22, +0x04, 0x95, 0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF3, +0x04, 0x4C, 0xD0, 0x67, 0x80, 0x18, 0x25, 0x42, +0x43, 0xA1, 0x04, 0x93, 0x80, 0x6D, 0xAB, 0xED, +0x4C, 0xED, 0x6D, 0xED, 0x05, 0x94, 0x00, 0xF6, +0xA0, 0x35, 0xFF, 0x6A, 0x00, 0xF6, 0xA3, 0x35, +0xF0, 0x67, 0x4C, 0xED, 0x00, 0x6E, 0x80, 0x18, +0xE7, 0x4B, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, +0x30, 0x68, 0x18, 0xEA, 0x04, 0xD2, 0x04, 0x94, +0xFF, 0x6E, 0x30, 0xF0, 0x20, 0x6A, 0xAC, 0xEE, +0xA9, 0xF7, 0x10, 0x4A, 0x06, 0xD6, 0x18, 0x69, +0x12, 0xE8, 0x01, 0xE2, 0x80, 0x18, 0x64, 0x47, +0x04, 0x94, 0x05, 0xD2, 0x80, 0x18, 0x6A, 0x47, +0x06, 0x96, 0x4C, 0xE9, 0x2F, 0x31, 0xFF, 0x6A, +0x01, 0x76, 0x4C, 0xE9, 0x1C, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x69, 0xF3, 0x78, 0x9B, 0x01, 0xF7, +0x01, 0x4A, 0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x44, 0xF3, 0x1C, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x6B, 0xA0, 0x10, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x4B, 0xC0, 0x04, 0x94, 0x05, 0x95, +0x00, 0x6E, 0xF1, 0x67, 0x80, 0x18, 0xE7, 0x4B, +0x6C, 0xA0, 0x19, 0x6A, 0x21, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x69, 0xF3, 0x78, 0x9B, 0x02, 0xF0, +0x00, 0x6A, 0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x64, 0xF3, 0x08, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x8B, 0xA0, 0x0F, 0x6A, 0x64, 0x67, +0x4C, 0xEB, 0x01, 0x4B, 0x4C, 0xEB, 0xE1, 0x4A, +0x8C, 0xEA, 0x6D, 0xEA, 0x6C, 0xA0, 0x4B, 0xC0, +0x18, 0x6A, 0x6C, 0xEA, 0x09, 0x2A, 0x04, 0x94, +0x80, 0x18, 0x56, 0x4F, 0x6C, 0xA0, 0x61, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x4C, 0xC0, 0x57, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF3, 0x78, 0x9B, +0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x0C, 0x22, +0xAC, 0xA0, 0x03, 0x6A, 0x30, 0xF0, 0x20, 0x6C, +0xAE, 0x35, 0x4C, 0xED, 0xFF, 0x6A, 0x64, 0xF3, +0x10, 0x4C, 0x4C, 0xED, 0x80, 0x18, 0x25, 0x42, +0xAC, 0xA0, 0x03, 0x6B, 0xB6, 0x32, 0x6C, 0xEA, +0x51, 0xE0, 0xC4, 0xA4, 0x01, 0x4A, 0x6C, 0xEA, +0x05, 0xD6, 0x54, 0x36, 0x61, 0x6A, 0x4B, 0xEA, +0xAC, 0xEA, 0xCD, 0xEA, 0x4C, 0xC0, 0xAC, 0xA0, +0xAE, 0x32, 0x6C, 0xEA, 0x03, 0x4A, 0x6C, 0xEA, +0x4C, 0x33, 0x19, 0x6A, 0x4B, 0xEA, 0xAC, 0xEA, +0x6D, 0xEA, 0x4C, 0xC0, 0x20, 0xF0, 0x46, 0xA4, +0xFF, 0x72, 0x10, 0x60, 0x30, 0xF0, 0x20, 0x6B, +0x69, 0xF3, 0x78, 0x9B, 0x22, 0x67, 0x02, 0xF0, +0x00, 0x6A, 0x6C, 0xEA, 0x07, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x84, 0xF3, 0x00, 0x4C, 0xB1, 0x67, +0x80, 0x18, 0x25, 0x42, 0x30, 0xF0, 0x20, 0x6B, +0x69, 0xF3, 0x78, 0x9B, 0x02, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x07, 0x22, 0x05, 0x95, 0x30, 0xF0, +0x20, 0x6C, 0x84, 0xF3, 0x0C, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x04, 0x94, 0x05, 0x95, 0x01, 0x6E, +0xF1, 0x67, 0x80, 0x18, 0xE7, 0x4B, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xF6, 0x63, 0x13, 0x62, 0x12, 0xD1, 0x11, 0xD0, +0xFF, 0x69, 0x8C, 0xE9, 0x30, 0x68, 0x18, 0xE9, +0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF7, 0x10, 0x4A, +0x91, 0x67, 0x12, 0xE8, 0x01, 0xE2, 0x80, 0x18, +0x64, 0x47, 0x91, 0x67, 0x09, 0xD2, 0x80, 0x18, +0x6A, 0x47, 0x0B, 0xD2, 0x4A, 0xA8, 0x30, 0xF0, +0x20, 0x6B, 0x69, 0xF3, 0x78, 0x9B, 0x0E, 0xD2, +0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x06, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x84, 0xF3, 0x18, 0x4C, +0x80, 0x18, 0x25, 0x42, 0x6C, 0xA0, 0x80, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, +0x80, 0xF1, 0x03, 0x22, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF6, 0x4C, 0x41, 0xA5, 0xF6, 0x08, 0x4B, +0x44, 0x32, 0x69, 0xE2, 0x40, 0xAA, 0x06, 0xD3, +0x03, 0x5A, 0x0F, 0x61, 0xC3, 0xF4, 0x70, 0x9B, +0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x06, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF6, 0x00, 0x4C, +0x80, 0x18, 0x25, 0x42, 0x91, 0x67, 0x00, 0x6D, +0x66, 0x11, 0x06, 0x94, 0xC4, 0xF1, 0x4C, 0x41, +0x44, 0x32, 0x89, 0xE2, 0xA0, 0xAA, 0x08, 0xD2, +0x44, 0xF1, 0x4C, 0x41, 0x44, 0x32, 0x89, 0xE2, +0x80, 0xAA, 0x07, 0xD2, 0x93, 0xE5, 0x80, 0x18, +0x80, 0x47, 0x06, 0x93, 0x0D, 0xD2, 0xC4, 0xF2, +0x4C, 0x41, 0x44, 0x32, 0x69, 0xE2, 0xA0, 0xAA, +0x0A, 0xD2, 0x07, 0x92, 0x80, 0xAA, 0x93, 0xE5, +0x80, 0x18, 0x80, 0x47, 0x06, 0x94, 0x0C, 0xD2, +0x02, 0xF0, 0x00, 0x6A, 0xC3, 0xF4, 0x70, 0x9C, +0x6C, 0xEA, 0x12, 0x22, 0x07, 0x92, 0x08, 0x93, +0xA0, 0xAA, 0x44, 0xF2, 0x4C, 0x41, 0x44, 0x32, +0x89, 0xE2, 0x0A, 0x94, 0xE0, 0xAA, 0xC0, 0xAB, +0x40, 0xAC, 0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF3, +0x04, 0x4C, 0x04, 0xD2, 0x80, 0x18, 0x25, 0x42, +0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF3, 0x78, 0x9B, +0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x08, 0x22, +0x0D, 0x95, 0x0C, 0x96, 0x30, 0xF0, 0x20, 0x6C, +0xA4, 0xF2, 0x08, 0x4C, 0x80, 0x18, 0x25, 0x42, +0x0B, 0x93, 0x18, 0x6A, 0x6C, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x69, 0xF3, 0x78, 0x9B, 0x4E, 0x32, +0x0A, 0xD2, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, +0x08, 0x22, 0x0A, 0x95, 0x09, 0x96, 0x30, 0xF0, +0x20, 0x6C, 0xC4, 0xF3, 0x00, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x09, 0x92, 0x7F, 0x6C, 0x09, 0x93, +0x8C, 0xEA, 0x06, 0xD2, 0x80, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x0F, 0x22, +0x06, 0x94, 0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF4, +0x0C, 0x4A, 0x84, 0x33, 0x49, 0xE3, 0x40, 0xAA, +0x52, 0x34, 0x56, 0x33, 0x6D, 0xE4, 0x4D, 0xE3, +0x5E, 0x32, 0x49, 0xE3, 0x08, 0x10, 0x06, 0x94, +0x30, 0xF0, 0x20, 0x6A, 0x05, 0xF4, 0x0C, 0x4A, +0x84, 0x33, 0x49, 0xE3, 0x40, 0xAA, 0x0B, 0xD2, +0x43, 0x80, 0x00, 0x52, 0x12, 0x60, 0x63, 0xA0, +0x7F, 0x6C, 0x30, 0xF0, 0x20, 0x6A, 0x8C, 0xEB, +0x05, 0xF4, 0x0C, 0x4A, 0x64, 0x33, 0x4D, 0xE3, +0x40, 0xAB, 0x52, 0x34, 0x56, 0x33, 0x6D, 0xE4, +0x4D, 0xE3, 0x5E, 0x32, 0x49, 0xE3, 0x08, 0xD2, +0x0B, 0x10, 0x63, 0xA0, 0x7F, 0x6C, 0x30, 0xF0, +0x20, 0x6A, 0x8C, 0xEB, 0x64, 0x33, 0x05, 0xF4, +0x0C, 0x4A, 0x4D, 0xE3, 0x60, 0xAB, 0x08, 0xD3, +0x4B, 0xA0, 0x10, 0x6B, 0x6B, 0xEB, 0x4C, 0xEB, +0xFF, 0x6A, 0x10, 0x6C, 0x4C, 0xEB, 0x8E, 0xEB, +0x01, 0x5B, 0x78, 0x67, 0x6B, 0xEB, 0x05, 0x6C, +0x6C, 0xEC, 0x07, 0xD4, 0x30, 0xF0, 0x20, 0x6C, +0x69, 0xF3, 0x98, 0x9C, 0x02, 0xF0, 0x00, 0x6B, +0x8C, 0xEB, 0x0C, 0x23, 0xA7, 0xA0, 0x03, 0x6B, +0x0A, 0x96, 0xB2, 0x35, 0x6C, 0xED, 0x30, 0xF0, +0x20, 0x6C, 0xC4, 0xF3, 0x10, 0x4C, 0x4C, 0xED, +0x80, 0x18, 0x25, 0x42, 0x0E, 0x92, 0x07, 0x94, +0xFF, 0x6D, 0x64, 0x6B, 0x4C, 0xED, 0xAB, 0xE3, +0x89, 0xE2, 0x08, 0x94, 0x98, 0xEA, 0x12, 0xEC, +0x08, 0xD4, 0x47, 0xA0, 0x03, 0x6C, 0x52, 0x32, +0x8C, 0xEA, 0x12, 0xEC, 0x84, 0xEA, 0x0D, 0x92, +0x08, 0xD4, 0x4F, 0xE3, 0x0B, 0x92, 0x78, 0xEA, +0x0A, 0x93, 0x12, 0xEA, 0x44, 0xEB, 0x30, 0xF0, +0x20, 0x6B, 0x69, 0xF3, 0x78, 0x9B, 0x07, 0xD2, +0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x07, 0x22, +0x0D, 0x96, 0x30, 0xF0, 0x20, 0x6C, 0xC4, 0xF3, +0x1C, 0x4C, 0x80, 0x18, 0x25, 0x42, 0x30, 0xF0, +0x20, 0x6B, 0x69, 0xF3, 0x78, 0x9B, 0x02, 0xF0, +0x00, 0x6A, 0x6C, 0xEA, 0x08, 0x22, 0xA3, 0xA0, +0x09, 0x96, 0x30, 0xF0, 0x20, 0x6C, 0xE4, 0xF3, +0x0C, 0x4C, 0x80, 0x18, 0x25, 0x42, 0x30, 0xF0, +0x20, 0x6B, 0x69, 0xF3, 0x78, 0x9B, 0x02, 0xF0, +0x00, 0x6A, 0x6C, 0xEA, 0x0A, 0x22, 0x08, 0x92, +0x07, 0x93, 0x30, 0xF0, 0x20, 0x6C, 0xE4, 0xF3, +0x1C, 0x4C, 0x4E, 0x35, 0x6E, 0x36, 0x80, 0x18, +0x25, 0x42, 0x07, 0x94, 0x08, 0x92, 0x43, 0xEC, +0x03, 0x61, 0x0C, 0x93, 0x1E, 0x5B, 0x2F, 0x61, +0x6B, 0xA0, 0x10, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xFF, 0x6B, 0x6C, 0xEA, 0x10, 0x72, 0x38, 0x61, +0x0C, 0x94, 0x1E, 0x5C, 0x35, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x69, 0xF3, 0x78, 0x9B, 0x02, 0xF0, +0x00, 0x6A, 0x6C, 0xEA, 0x07, 0x22, 0x09, 0x95, +0x30, 0xF0, 0x20, 0x6C, 0x04, 0xF4, 0x0C, 0x4C, +0x80, 0x18, 0x25, 0x42, 0x06, 0x94, 0x80, 0x18, +0x73, 0x47, 0x02, 0x72, 0x09, 0x61, 0x5D, 0x67, +0x67, 0x42, 0x1D, 0x4B, 0x40, 0xA3, 0x00, 0x6B, +0x20, 0xF0, 0x42, 0xC0, 0x06, 0xD3, 0x1A, 0x10, +0x9D, 0x67, 0x47, 0x44, 0x1D, 0x4A, 0x80, 0xA2, +0x20, 0xF0, 0x81, 0xC0, 0x11, 0x10, 0x6B, 0xA0, +0x10, 0x6A, 0x4B, 0xEA, 0x4C, 0xEB, 0xFF, 0x6C, +0x8C, 0xEB, 0x10, 0x73, 0x01, 0x6B, 0x06, 0xD3, +0x09, 0x61, 0x6A, 0xA0, 0x6C, 0xEA, 0x01, 0x6B, +0x6D, 0xEA, 0x4A, 0xC0, 0x06, 0xD3, 0x02, 0x10, +0x00, 0x6A, 0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6B, +0x69, 0xF3, 0x78, 0x9B, 0x02, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x07, 0x22, 0x06, 0x95, 0x30, 0xF0, +0x20, 0x6C, 0x04, 0xF4, 0x18, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x06, 0x95, 0x91, 0x67, 0x80, 0x18, +0x77, 0x4F, 0x13, 0x97, 0x12, 0x91, 0x11, 0x90, +0x0A, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0x07, 0xF3, 0x33, 0xA2, +0x30, 0x68, 0x07, 0xF3, 0x52, 0xA2, 0x18, 0xE9, +0x30, 0xF0, 0x20, 0x6B, 0xA9, 0xF7, 0x10, 0x4B, +0x02, 0x72, 0x12, 0xE8, 0x01, 0xE3, 0x34, 0x60, +0x03, 0x5A, 0x03, 0x60, 0x01, 0x72, 0x09, 0x60, +0xB7, 0x10, 0x03, 0x72, 0x78, 0x67, 0x08, 0xD3, +0x74, 0x23, 0x04, 0x72, 0x80, 0xF0, 0x19, 0x60, +0xAF, 0x10, 0x9D, 0x67, 0x0C, 0x6A, 0x0E, 0x6B, +0x70, 0xC4, 0x4F, 0xCC, 0x52, 0xC4, 0x58, 0xA0, +0xBD, 0x67, 0x53, 0xC4, 0x42, 0xA0, 0x54, 0xC4, +0x87, 0xA0, 0x03, 0x6A, 0x8A, 0x33, 0x4C, 0xEB, +0x4C, 0xEC, 0x96, 0xC5, 0x75, 0xC5, 0x64, 0xA0, +0x01, 0x6C, 0x77, 0xC5, 0x65, 0xA0, 0x78, 0xC5, +0x68, 0xA0, 0x7A, 0x33, 0x8C, 0xEB, 0x79, 0xC5, +0x6C, 0xA0, 0x6C, 0xEA, 0x5A, 0xC5, 0x4C, 0xA0, +0x4A, 0x32, 0x8C, 0xEA, 0x5B, 0xC5, 0x4A, 0xA8, +0x5C, 0xC5, 0x4B, 0xA8, 0x5D, 0xC5, 0x82, 0x10, +0x7D, 0x67, 0x0C, 0x6A, 0x4F, 0xCB, 0x0E, 0x6A, +0x50, 0xC3, 0x0D, 0x6A, 0x52, 0xC3, 0x68, 0xA0, +0x1F, 0x6A, 0x9D, 0x67, 0x6C, 0xEA, 0x53, 0xC4, +0x40, 0xA0, 0x2C, 0x31, 0x54, 0xC4, 0x41, 0xA0, +0x55, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, +0x58, 0x9A, 0x49, 0xE1, 0x40, 0xA2, 0x56, 0xC4, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, 0x44, 0x9A, +0x49, 0xE1, 0x40, 0xA2, 0x57, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF7, 0x48, 0x9A, 0x49, 0xE1, +0x40, 0xA2, 0x58, 0xC4, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF7, 0x4C, 0x9A, 0x49, 0xE1, 0x40, 0xA2, +0x59, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, +0x40, 0x9A, 0x49, 0xE1, 0x40, 0xA2, 0x5A, 0xC4, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, 0x50, 0x9A, +0x49, 0xE1, 0x40, 0xA2, 0x5B, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF7, 0x54, 0x9A, 0x49, 0xE1, +0x40, 0xA2, 0x5C, 0xC4, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF7, 0x58, 0x9A, 0x45, 0xE1, 0x40, 0xA1, +0x26, 0x10, 0xBD, 0x67, 0x0C, 0x6A, 0x4F, 0xCD, +0x0E, 0x6A, 0x50, 0xC5, 0x52, 0xC5, 0x4A, 0xA8, +0x91, 0x67, 0x53, 0xC5, 0x4B, 0xA8, 0x54, 0xC5, +0x5E, 0xA0, 0x55, 0xC5, 0x6A, 0xA0, 0x72, 0x32, +0x56, 0xC5, 0x0F, 0x6A, 0x6C, 0xEA, 0x57, 0xC5, +0x20, 0xF0, 0x45, 0xA0, 0x58, 0xC5, 0x80, 0x18, +0x64, 0x47, 0x7D, 0x67, 0x91, 0x67, 0x59, 0xC3, +0x80, 0x18, 0x6A, 0x47, 0x9D, 0x67, 0xA7, 0x44, +0x19, 0x4D, 0xA0, 0xA5, 0x5A, 0xC4, 0xBB, 0xC4, +0x42, 0xA0, 0x5C, 0xC4, 0x43, 0xA0, 0x5D, 0xC4, +0x11, 0x10, 0x7D, 0x67, 0x03, 0x6A, 0x4F, 0xCB, +0x0E, 0x6A, 0x50, 0xC3, 0x0F, 0x6A, 0x52, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0xE1, 0xF7, 0x6C, 0xA2, +0xE1, 0xF7, 0x0C, 0x4A, 0x41, 0xA2, 0x9D, 0x67, +0x73, 0xC4, 0x54, 0xC4, 0x04, 0x94, 0x05, 0x95, +0x06, 0x96, 0x07, 0x97, 0x80, 0x18, 0x00, 0x40, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, +0x1C, 0x22, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0xFF, 0x6D, 0x83, 0xF4, 0x10, 0x6C, +0x01, 0x4D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF6, 0x30, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x01, 0x6E, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0xFF, 0x6D, 0x83, 0xF4, 0x10, 0x6C, +0x01, 0x4D, 0x00, 0x6E, 0x40, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFF, 0x63, 0x01, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF6, 0x7C, 0x9B, 0x46, 0x67, 0x8E, 0xEB, +0x12, 0x23, 0x00, 0x6E, 0x66, 0x67, 0xE4, 0x67, +0xE6, 0xEE, 0x01, 0x68, 0x0C, 0xEF, 0x07, 0x2F, +0x01, 0x4B, 0xFF, 0x6F, 0xEC, 0xEB, 0x14, 0x73, +0x01, 0x4E, 0xF5, 0x61, 0x14, 0x6B, 0x8F, 0xEC, +0x44, 0xEB, 0xAC, 0xEC, 0x8D, 0xEA, 0x01, 0x90, +0x01, 0x63, 0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, +0x20, 0xE8, 0x00, 0x65, 0x01, 0x6A, 0x20, 0xE8, +0x20, 0xE8, 0x00, 0x65, 0x00, 0x6A, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x01, 0x75, 0x33, 0x61, 0x01, 0x76, 0x17, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x3C, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF0, 0xD8, 0x9B, +0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x81, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF6, 0x3C, 0x9A, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x43, 0xF0, +0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, +0x00, 0x6C, 0xB1, 0x67, 0x43, 0xF0, 0xDC, 0x9B, +0x67, 0x10, 0x02, 0x75, 0x2C, 0x61, 0x01, 0x76, +0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, +0x3C, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x00, 0x6C, 0xB1, 0x67, 0x43, 0xF0, 0xDC, 0x9B, +0x2D, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, +0x3C, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0x43, 0xF0, 0xDC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, 0xB1, 0x67, +0x43, 0xF0, 0xD8, 0x9B, 0x39, 0x10, 0x03, 0x75, +0x38, 0x61, 0x01, 0x76, 0x1A, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF6, 0x3C, 0x9A, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF0, 0xD8, 0x9B, 0x03, 0xF0, +0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, +0x00, 0x6C, 0xB1, 0x67, 0x63, 0xF0, 0xC0, 0x9B, +0x1B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF6, 0x3C, 0x9A, 0x43, 0xF0, +0x18, 0x4B, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF0, 0x18, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xC0, 0x9B, 0x08, 0xF1, 0x00, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0x01, 0x6A, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0xAC, 0xEA, 0x0E, 0x72, 0x51, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, +0x63, 0xF0, 0x04, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF2, 0x00, 0x6C, 0xA7, 0xF5, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF0, 0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF2, 0x04, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF2, 0x08, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, +0xAD, 0xF2, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF0, 0x04, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF2, 0x18, 0x6C, +0x75, 0xF2, 0x1B, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x83, 0xF2, 0x1C, 0x6C, 0xFF, 0xF7, +0x1F, 0x6D, 0xDE, 0xF3, 0x17, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF2, 0x00, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, +0xCC, 0x9B, 0xA3, 0xF2, 0x0C, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF2, +0x10, 0x6C, 0xB1, 0x67, 0xFF, 0xF7, 0x1F, 0x6E, +0x55, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0x63, 0xF0, 0x04, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x00, 0x6C, +0x8A, 0xF2, 0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF0, 0xD0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF2, +0x04, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF2, 0x08, 0x6C, 0xFF, 0xF7, +0x1F, 0x6D, 0x81, 0xF2, 0x08, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, 0x04, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF2, +0x18, 0x6C, 0xD5, 0xF4, 0x04, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF2, 0x1C, 0x6C, +0xFF, 0xF7, 0x1F, 0x6D, 0xB9, 0xF0, 0x12, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, +0xD4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF2, +0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF0, 0xD8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xA3, 0xF2, 0x0C, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x63, 0xF0, 0xDC, 0x9B, 0xA3, 0xF2, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, +0xFF, 0x68, 0xAC, 0xE8, 0xD0, 0x67, 0xA3, 0xF0, +0x0C, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0xD0, 0x67, 0xA8, 0xF1, +0x0C, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, 0x40, 0xEA, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x68, 0xAC, 0xE8, +0x09, 0xE4, 0x0A, 0xD4, 0x05, 0xD2, 0x40, 0xF0, +0x71, 0xA2, 0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, +0x44, 0x99, 0x04, 0xD3, 0xA3, 0xF0, 0x0C, 0x6C, +0xE0, 0xF1, 0x10, 0x6D, 0xD0, 0x67, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0xA8, 0xF1, 0x0C, 0x6C, +0xE0, 0xF1, 0x10, 0x6D, 0xD0, 0x67, 0x40, 0xEA, +0x0A, 0x92, 0x40, 0xF0, 0x10, 0xC2, 0x05, 0x93, +0x60, 0xF0, 0x41, 0xA3, 0x02, 0x2A, 0x0D, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x04, 0x96, 0x21, 0xF0, 0x08, 0x6C, +0xF8, 0x6D, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xED, +0x68, 0x45, 0xFB, 0x4B, 0x4C, 0xEB, 0x02, 0x5B, +0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, 0xE1, 0xF7, +0x1F, 0x6D, 0x61, 0xF1, 0x09, 0x6E, 0x78, 0x10, +0x68, 0x45, 0xFD, 0x4B, 0x4C, 0xEB, 0x02, 0x5B, +0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, 0xE1, 0xF7, +0x1F, 0x6D, 0x61, 0xF1, 0x0A, 0x6E, 0x68, 0x10, +0x6F, 0x45, 0x4C, 0xEB, 0x0A, 0x5B, 0x0B, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x21, 0xF4, 0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0xA1, 0xF1, 0x0A, 0x6E, 0x59, 0x10, 0x68, 0x45, +0xE4, 0x4B, 0x4C, 0xEB, 0x10, 0x5B, 0x0B, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x21, 0xF4, 0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x80, 0xF4, 0x14, 0x6E, 0x49, 0x10, 0x68, 0x45, +0xD4, 0x4B, 0x4C, 0xEB, 0x04, 0x5B, 0x0B, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x21, 0xF4, 0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x80, 0xF4, 0x13, 0x6E, 0x39, 0x10, 0x68, 0x45, +0xD0, 0x4B, 0x4C, 0xEB, 0x38, 0x5B, 0x0B, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x21, 0xF4, 0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x40, 0xF4, 0x13, 0x6E, 0x29, 0x10, 0x68, 0x45, +0x98, 0x4B, 0x4C, 0xEB, 0x08, 0x5B, 0x0B, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x21, 0xF4, 0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x40, 0xF4, 0x12, 0x6E, 0x19, 0x10, 0x88, 0x4D, +0x4C, 0xED, 0x35, 0x5D, 0x0B, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, +0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x00, 0xF4, +0x12, 0x6E, 0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x00, 0xF4, 0x11, 0x6E, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0xAC, 0xEA, +0x0F, 0x5A, 0x0B, 0x60, 0x0D, 0x72, 0x09, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x01, 0xF0, 0x08, 0x6C, 0x70, 0x6D, 0x01, 0x6E, +0x08, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x01, 0xF0, 0x08, 0x6C, 0x70, 0x6D, +0x03, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, +0x26, 0x67, 0x3B, 0x22, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0x83, 0xF0, 0x00, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF1, +0x04, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF0, 0x00, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xD1, 0x67, 0x48, 0xF0, 0x04, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF5, +0x3C, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF1, +0x00, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x48, 0xF0, 0x00, 0x6C, +0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0xF0, 0x18, 0x6C, 0x01, 0xF0, +0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF5, +0x1C, 0x6C, 0x83, 0xF0, 0xA4, 0x9B, 0x0F, 0x6E, +0x37, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x68, 0x83, 0xF0, 0x20, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF1, 0x04, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x48, 0xF0, 0x04, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF5, +0x3C, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF1, +0x00, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x48, 0xF0, 0x00, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0xF0, 0x18, 0x6C, 0x01, 0xF0, +0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF0, +0xA4, 0x9B, 0x23, 0xF5, 0x1C, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, 0x13, 0x22, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0xF0, 0x18, 0x6C, 0x08, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF5, 0x1C, 0x6C, 0x83, 0xF0, +0xA4, 0x9B, 0x0F, 0x6E, 0x12, 0x10, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, +0x18, 0x6C, 0x08, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x83, 0xF0, 0xA4, 0x9B, 0x23, 0xF5, 0x1C, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0xAC, 0xE8, +0x00, 0x6D, 0x24, 0x67, 0x80, 0x18, 0xB9, 0x52, +0x99, 0x70, 0x07, 0x61, 0x50, 0x99, 0x40, 0xA2, +0x04, 0x2A, 0x91, 0x67, 0x01, 0x6D, 0x70, 0x6E, +0x03, 0x10, 0x00, 0x6D, 0x91, 0x67, 0xC5, 0x67, +0x80, 0x18, 0x79, 0x52, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0xAC, 0xEA, +0x0C, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, 0x63, 0xF4, +0x04, 0x6C, 0x62, 0xF5, 0xBC, 0x9B, 0x01, 0x6E, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, 0x62, 0xF5, +0xBC, 0x9B, 0x63, 0xF4, 0x04, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0xAC, 0xEA, +0x09, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x41, 0xF4, 0x14, 0x6C, 0x80, 0x6D, +0x01, 0x6E, 0x08, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x41, 0xF4, 0x14, 0x6C, +0x80, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x5B, 0xAC, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0xFF, 0xF7, 0x1F, 0x68, 0xAC, 0xE8, 0x24, 0x67, +0xD0, 0x67, 0x61, 0xF2, 0x10, 0x6C, 0xE0, 0xF3, +0x1F, 0x6D, 0x40, 0xEA, 0x1B, 0xC9, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, 0xA8, 0x9B, +0xC0, 0xF3, 0x44, 0x9A, 0x00, 0x6E, 0x23, 0xF4, +0x1C, 0x6C, 0x40, 0xEA, 0x01, 0x6D, 0xA5, 0xF5, +0x14, 0x6C, 0xAB, 0xED, 0x80, 0x18, 0xA1, 0x19, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0x6C, 0x9B, +0x05, 0x97, 0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF6, 0x50, 0x9A, 0x4E, 0xEB, 0x01, 0x5B, +0x58, 0x67, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x83, 0xF2, 0x18, 0x68, 0x24, 0x67, 0x18, 0xF0, +0x00, 0x6D, 0x90, 0x67, 0x80, 0x18, 0xA1, 0x19, +0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, +0xAC, 0x9A, 0xA3, 0xF2, 0x08, 0x6C, 0x80, 0x18, +0xA1, 0x19, 0x90, 0x67, 0xC0, 0x6D, 0x04, 0xD2, +0x80, 0x18, 0xA1, 0x19, 0x02, 0x67, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF6, 0xB8, 0x9A, 0x63, 0xF2, +0x10, 0x6C, 0x80, 0x18, 0xA1, 0x19, 0x05, 0x93, +0x04, 0x95, 0xFF, 0x6C, 0x8C, 0xEB, 0x8C, 0xE8, +0x70, 0x33, 0x10, 0x30, 0x4D, 0xE8, 0xAD, 0xEB, +0x60, 0xF0, 0x71, 0xC1, 0x60, 0xF0, 0x12, 0xC1, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x4C, 0xED, +0x08, 0xD4, 0xCC, 0xEA, 0xC0, 0xF0, 0x1C, 0x25, +0x20, 0x22, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0x83, 0xF0, 0xB0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0x21, 0xF0, +0x13, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF4, 0x08, 0x6C, 0x18, 0xF0, 0x00, 0x6D, +0x02, 0x6E, 0x40, 0xEA, 0x01, 0x6D, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xAB, 0xED, 0x83, 0xF0, 0xD4, 0x9B, +0x90, 0x11, 0x08, 0x93, 0x50, 0x9B, 0x40, 0xA2, +0x01, 0x72, 0x80, 0xF1, 0x0B, 0x61, 0x01, 0x69, +0x2B, 0xE9, 0xA1, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x80, 0x18, 0xA1, 0x19, 0x08, 0x93, 0x30, 0xF0, +0x20, 0x68, 0x03, 0xF0, 0x00, 0x6C, 0x5D, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0xB0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x81, 0xF0, 0x08, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF5, +0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x81, 0xF0, +0x18, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x63, 0xF4, 0x08, 0x6C, 0x18, 0xF0, +0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xA1, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x04, 0xF2, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF0, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF0, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, +0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF0, 0xDC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF0, 0xC4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, +0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF0, 0xCC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, +0xD0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF0, 0xD4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, +0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF0, 0x1C, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xC0, 0x9B, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0xA3, 0xF0, 0x1C, 0x4B, 0xD4, 0x10, +0x20, 0x22, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0x83, 0xF0, 0xB0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0x20, 0xF3, +0x13, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF4, 0x08, 0x6C, 0x18, 0xF0, 0x00, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x01, 0x6D, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xAB, 0xED, 0xC3, 0xF0, 0xC0, 0x9B, +0xB4, 0x10, 0x08, 0x93, 0x50, 0x9B, 0x40, 0xA2, +0x01, 0x72, 0xA0, 0xF0, 0x0F, 0x61, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, +0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x00, 0x6C, 0x20, 0xF3, 0x13, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF5, 0xBC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x81, 0xF0, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF4, 0x08, 0x6C, 0x18, 0xF0, 0x00, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x08, 0x93, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x69, 0xDD, 0x9B, 0x2B, 0xE9, +0xA1, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF0, 0x00, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF0, 0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0xC8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF0, 0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0xD0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF0, 0xD4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0xD8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF0, 0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF0, 0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0x08, 0x4B, +0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0xE3, 0xF0, 0x08, 0x4B, +0xC0, 0x9B, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x05, 0x67, 0x23, 0xF0, 0xAC, 0x9A, +0x21, 0xF0, 0x04, 0x6C, 0x80, 0x18, 0xA1, 0x19, +0x40, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, +0xB8, 0x9A, 0x03, 0xF2, 0x04, 0x6C, 0x80, 0x18, +0xA1, 0x19, 0x01, 0x72, 0x02, 0x61, 0x03, 0x6A, +0x06, 0x10, 0x02, 0x2A, 0x01, 0x6A, 0x03, 0x10, +0x05, 0x72, 0x02, 0x61, 0x02, 0x6A, 0x41, 0xC0, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x05, 0x67, +0x01, 0x6D, 0x21, 0xF0, 0x00, 0x6C, 0xAB, 0xED, +0x80, 0x18, 0xA1, 0x19, 0xF0, 0x6B, 0x4C, 0xEB, +0x72, 0x33, 0x61, 0xC0, 0x0F, 0x6B, 0x4C, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, 0xAC, 0x9A, +0x60, 0xC0, 0x03, 0xF2, 0x04, 0x6C, 0x80, 0x18, +0xA1, 0x19, 0x0C, 0x72, 0x02, 0x61, 0x03, 0x6A, +0x09, 0x10, 0x08, 0x72, 0x02, 0x61, 0x01, 0x6A, +0x05, 0x10, 0x04, 0x72, 0x02, 0x61, 0x02, 0x6A, +0x01, 0x10, 0x01, 0x2A, 0x42, 0xC0, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF5, 0xAC, 0x9A, 0x23, 0xF6, +0x04, 0x6C, 0x80, 0x18, 0xA1, 0x19, 0x4F, 0xEA, +0x43, 0xC0, 0x01, 0x6A, 0x44, 0xC0, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x63, 0xF5, 0x10, 0x69, 0x01, 0x6D, 0x91, 0x67, +0xAB, 0xED, 0x80, 0x18, 0xA1, 0x19, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x68, 0x04, 0x96, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0x91, 0x67, 0xAB, 0xED, +0xFF, 0xF5, 0x1E, 0x4E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x04, 0x96, 0x01, 0x6D, 0x91, 0x67, +0xAB, 0xED, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x0C, 0xED, +0x23, 0xF0, 0x0C, 0x4A, 0x04, 0xD5, 0xA0, 0x9A, +0x21, 0xF0, 0x04, 0x69, 0x91, 0x67, 0x80, 0x18, +0xA1, 0x19, 0x04, 0x93, 0x48, 0x23, 0x4C, 0xE8, +0x03, 0x70, 0x08, 0x60, 0x30, 0xF0, 0x20, 0x6C, +0x24, 0xF4, 0x04, 0x4C, 0x80, 0x18, 0x25, 0x42, +0x00, 0x6A, 0x7B, 0x10, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, 0x1C, 0x6C, +0x04, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x82, 0xF6, 0x18, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, +0x0C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x08, 0xF1, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF6, 0x18, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, +0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF0, 0xB0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF2, 0x0C, 0x69, 0x91, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0xE3, 0xF0, +0xB4, 0x9B, 0x00, 0x6E, 0x3C, 0x10, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, +0x1C, 0x6C, 0x04, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF6, 0x18, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF0, 0x0C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, 0x03, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF6, +0x18, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF2, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0xB0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x0C, 0x69, +0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF0, +0xB4, 0x9B, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0x01, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0xCC, 0xEA, +0x08, 0xD2, 0x0E, 0xD4, 0x0F, 0xD5, 0x11, 0xD7, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, 0x58, 0x9A, +0x64, 0x9C, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0x44, 0xF4, +0x10, 0x4C, 0x02, 0xF3, 0x1C, 0x4D, 0x80, 0x18, +0x25, 0x42, 0x0F, 0x93, 0x02, 0x5B, 0x03, 0x60, +0x08, 0x94, 0x54, 0x5C, 0x12, 0x61, 0x0E, 0x94, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, 0x58, 0x9A, +0x64, 0x9C, 0xFF, 0x69, 0x6C, 0xEA, 0x80, 0xF0, +0x15, 0x22, 0x0F, 0x95, 0x30, 0xF0, 0x20, 0x6C, +0x44, 0xF4, 0x1C, 0x4C, 0x80, 0x18, 0x25, 0x42, +0x8D, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0xE3, 0xF0, 0x18, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, 0x1C, 0x69, +0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF0, 0xBC, 0x9A, 0xC0, 0xF3, +0x64, 0x98, 0x08, 0x96, 0x91, 0x67, 0x40, 0xEB, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0x18, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0xE5, 0xF5, 0x08, 0x6C, +0xFF, 0x6D, 0x80, 0x18, 0xA1, 0x19, 0x00, 0xF6, +0x40, 0x31, 0x00, 0xF6, 0x23, 0x31, 0x40, 0x6A, +0x2C, 0xEA, 0x03, 0x22, 0x80, 0x6A, 0x4B, 0xEA, +0x4D, 0xE9, 0x11, 0x94, 0x0B, 0x74, 0x10, 0x61, +0x0F, 0x93, 0xA3, 0xF0, 0x00, 0x6A, 0x06, 0xD2, +0x05, 0xF1, 0x00, 0x4A, 0x07, 0xD2, 0x9D, 0x67, +0x68, 0x32, 0x49, 0xE4, 0x8C, 0xAA, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF1, 0xA0, 0x9A, 0x13, 0x10, +0x11, 0x92, 0x00, 0x68, 0x0C, 0x72, 0x13, 0x61, +0x0F, 0x93, 0xE3, 0xF0, 0x08, 0x6A, 0x04, 0xD2, +0x05, 0xF1, 0x00, 0x4A, 0x05, 0xD2, 0x9D, 0x67, +0x68, 0x32, 0x49, 0xE4, 0x88, 0xAA, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF1, 0xA4, 0x9A, 0x80, 0x18, +0xA1, 0x19, 0xFF, 0x68, 0x4C, 0xE8, 0x0E, 0x94, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, 0x58, 0x9A, +0x64, 0x9C, 0x6C, 0xEA, 0x08, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x64, 0xF4, 0x14, 0x4C, 0xB1, 0x67, +0xD0, 0x67, 0x80, 0x18, 0x25, 0x42, 0x21, 0xE0, +0x00, 0x50, 0x00, 0x69, 0x02, 0x61, 0xFF, 0x69, +0x0C, 0xE9, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0xE3, 0xF0, +0xB8, 0x9B, 0x63, 0xF4, 0x1C, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x0E, 0x94, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF5, 0x58, 0x9A, 0x64, 0x9C, 0x6C, 0xEA, +0x09, 0x22, 0x0F, 0x95, 0x08, 0x96, 0x30, 0xF0, +0x20, 0x6C, 0x84, 0xF4, 0x04, 0x4C, 0xF1, 0x67, +0x80, 0x18, 0x25, 0x42, 0x51, 0x67, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x00, 0xF6, 0xA0, 0x35, 0x00, 0xF6, 0xC0, 0x36, +0x00, 0xF6, 0xE0, 0x37, 0x00, 0xF6, 0xA3, 0x35, +0x00, 0xF6, 0xC3, 0x36, 0x00, 0xF6, 0xE3, 0x37, +0x05, 0xD5, 0x06, 0xD6, 0x07, 0xD7, 0x5D, 0x67, +0x40, 0xF0, 0x48, 0x82, 0x7D, 0x67, 0x24, 0x67, +0x08, 0xD2, 0x40, 0xF0, 0x6C, 0xA3, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF5, 0x58, 0x9A, 0x04, 0xD3, +0x64, 0x9C, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0x44, 0xF4, +0x10, 0x4C, 0x22, 0xF3, 0x1C, 0x4D, 0x80, 0x18, +0x25, 0x42, 0x20, 0xF0, 0x4F, 0xA1, 0x0E, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, 0x58, 0x9A, +0x64, 0x99, 0x6C, 0xEA, 0x5F, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0xA4, 0xF4, 0x04, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x58, 0x10, 0x04, 0x92, 0x40, 0x5A, +0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, +0x78, 0x9A, 0x44, 0x99, 0x4C, 0xEB, 0x00, 0x6A, +0x4E, 0x23, 0x30, 0xF0, 0x20, 0x6C, 0xC4, 0xF4, +0x00, 0x4C, 0x80, 0x18, 0x25, 0x42, 0x00, 0x6A, +0x46, 0x10, 0x83, 0xF4, 0x10, 0x68, 0x90, 0x67, +0x10, 0xF0, 0x00, 0x6D, 0x80, 0x18, 0xA1, 0x19, +0x09, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x90, 0x67, 0x10, 0xF0, 0x00, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x06, 0x90, 0x05, 0x93, +0x7F, 0x6A, 0x4C, 0xE8, 0x4C, 0xEB, 0x00, 0x30, +0x6D, 0xE8, 0x07, 0x93, 0x04, 0x6C, 0x8B, 0xEC, +0x4C, 0xEB, 0x60, 0x33, 0x60, 0x33, 0x6D, 0xE8, +0x08, 0x93, 0x01, 0x6D, 0xAB, 0xED, 0x6C, 0xEA, +0x00, 0xF6, 0x40, 0x32, 0x4D, 0xE8, 0x04, 0x92, +0xFF, 0xF7, 0x1F, 0x6B, 0xD0, 0x67, 0x4C, 0xEC, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x07, 0xF2, 0x00, 0x4C, 0x6C, 0xEC, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, 0x58, 0x9A, +0x64, 0x99, 0x6C, 0xEA, 0x0B, 0x22, 0x04, 0x95, +0x30, 0xF0, 0x20, 0x6C, 0xC4, 0xF4, 0x14, 0x4C, +0xC5, 0x67, 0x07, 0xF2, 0x00, 0x4E, 0xF0, 0x67, +0x80, 0x18, 0x25, 0x42, 0x01, 0x6A, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x12, 0xD6, 0x13, 0xD7, +0x62, 0xF5, 0x58, 0x9A, 0x64, 0x9C, 0xFF, 0x69, +0x04, 0x67, 0x6C, 0xEA, 0xAC, 0xE9, 0x0A, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, +0x44, 0xF4, 0x10, 0x4C, 0x62, 0xF3, 0x00, 0x4D, +0x80, 0x18, 0x25, 0x42, 0x20, 0xF0, 0x4F, 0xA0, +0x0E, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, +0x58, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x7E, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF4, 0x04, 0x4C, +0x80, 0x18, 0x25, 0x42, 0x77, 0x10, 0x12, 0x92, +0x02, 0x5A, 0x11, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF5, 0x78, 0x9A, 0x44, 0x98, 0x4C, 0xEB, +0x00, 0x6A, 0x6D, 0x23, 0x12, 0x95, 0x30, 0xF0, +0x20, 0x6C, 0x44, 0xF4, 0x1C, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x00, 0x6A, 0x64, 0x10, 0x83, 0xF4, +0x10, 0x6C, 0x10, 0xF0, 0x00, 0x6D, 0x80, 0x18, +0xA1, 0x19, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x83, 0xF4, 0x10, 0x6C, +0x10, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x13, 0x93, 0x0B, 0x73, 0x27, 0x61, 0x12, 0x93, +0xA3, 0xF0, 0x00, 0x6A, 0x08, 0xD2, 0x05, 0xF1, +0x00, 0x4A, 0x09, 0xD2, 0x68, 0x32, 0x06, 0x03, +0x4D, 0xE3, 0x0A, 0xD3, 0x84, 0xAB, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9A, 0x03, 0xF1, 0xA0, 0x9B, 0xD1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, +0x58, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x32, 0x22, +0x0A, 0x92, 0x30, 0xF0, 0x20, 0x6C, 0xE4, 0xF4, +0x14, 0x4C, 0xE2, 0x9A, 0x12, 0x95, 0x04, 0xD1, +0x0B, 0x6E, 0x26, 0x10, 0x12, 0x93, 0xE3, 0xF0, +0x08, 0x6A, 0x06, 0xD2, 0x05, 0xF1, 0x00, 0x4A, +0x07, 0xD2, 0x68, 0x32, 0x06, 0x03, 0x4D, 0xE3, +0x0B, 0xD3, 0x80, 0xAB, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, +0x03, 0xF1, 0xA4, 0x9B, 0xD1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, 0x58, 0x9A, +0x64, 0x98, 0x6C, 0xEA, 0x0B, 0x22, 0x0B, 0x92, +0x12, 0x95, 0x13, 0x96, 0x30, 0xF0, 0x20, 0x6C, +0xE0, 0x9A, 0xE4, 0xF4, 0x14, 0x4C, 0x04, 0xD1, +0x80, 0x18, 0x25, 0x42, 0x01, 0x6A, 0x0F, 0x97, +0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x0C, 0xD4, 0x25, 0x67, 0xA0, 0xA5, 0x00, 0x6E, +0x0B, 0x6F, 0x80, 0x18, 0x58, 0x55, 0x0C, 0x94, +0xA1, 0xA1, 0x01, 0x6E, 0x0B, 0x6F, 0x80, 0x18, +0x58, 0x55, 0x0C, 0x94, 0xA2, 0xA1, 0x00, 0x6E, +0x0C, 0x6F, 0x80, 0x18, 0x58, 0x55, 0x0C, 0x94, +0xA3, 0xA1, 0x01, 0x6E, 0x0C, 0x6F, 0x80, 0x18, +0x58, 0x55, 0xFD, 0x6A, 0x00, 0x6B, 0x11, 0x67, +0x06, 0xD2, 0x07, 0xD3, 0x07, 0x93, 0x03, 0x6A, +0x6C, 0xEA, 0x03, 0x72, 0x0A, 0x61, 0x44, 0x80, +0xA1, 0x80, 0xC2, 0x80, 0xE3, 0x80, 0x0C, 0x94, +0x04, 0xD2, 0x06, 0x92, 0x05, 0xD2, 0x80, 0x18, +0x0A, 0x55, 0x06, 0x92, 0x07, 0x93, 0x01, 0x48, +0x01, 0x4A, 0x06, 0xD2, 0x01, 0x4B, 0x07, 0xD3, +0x06, 0x93, 0xFF, 0x6A, 0x4C, 0xEB, 0x07, 0x92, +0x06, 0xD3, 0x1C, 0x72, 0xE3, 0x61, 0x11, 0x67, +0x29, 0x69, 0x43, 0x41, 0x03, 0x6B, 0x6C, 0xEA, +0x03, 0x72, 0x0D, 0x61, 0x20, 0xF0, 0xAD, 0x80, +0x20, 0xF0, 0xCE, 0x80, 0x20, 0xF0, 0xEF, 0x80, +0x20, 0xF0, 0x50, 0x80, 0x0C, 0x94, 0x05, 0xD1, +0x04, 0xD2, 0x80, 0x18, 0x0A, 0x55, 0x01, 0x49, +0x3D, 0x71, 0x01, 0x48, 0xEA, 0x61, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x0C, 0xD4, 0x0D, 0xD5, +0x0F, 0xD7, 0x62, 0xF5, 0x58, 0x9A, 0x64, 0x9C, +0x06, 0x67, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0x44, 0xF4, +0x10, 0x4C, 0xA2, 0xF3, 0x04, 0x4D, 0x80, 0x18, +0x25, 0x42, 0x07, 0xF4, 0x00, 0x6A, 0x06, 0xD2, +0x02, 0xF0, 0x00, 0x4A, 0x07, 0xD2, 0xFF, 0x69, +0x30, 0xF0, 0x20, 0x6A, 0x0D, 0x93, 0x0C, 0xE9, +0x62, 0xF6, 0x1C, 0x9A, 0x0F, 0x92, 0x28, 0x34, +0x10, 0x96, 0x4C, 0xE8, 0x68, 0x32, 0x7D, 0x67, +0x49, 0xE3, 0x46, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, +0xB0, 0x67, 0x51, 0xE4, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x6C, 0xEC, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x01, 0x6C, 0x40, 0xEA, 0x0C, 0x94, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF5, 0x58, 0x9A, 0x64, 0x9C, +0x6C, 0xEA, 0x0A, 0x22, 0x0D, 0x95, 0x10, 0x97, +0x30, 0xF0, 0x20, 0x6C, 0x04, 0xF5, 0x18, 0x4C, +0xD1, 0x67, 0x04, 0xD0, 0x80, 0x18, 0x25, 0x42, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x01, 0x6A, +0x06, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x0F, 0xD5, 0x11, 0xD7, 0x62, 0xF5, 0x58, 0x9A, +0x64, 0x9C, 0x04, 0x67, 0x26, 0x67, 0x6C, 0xEA, +0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6D, 0x44, 0xF4, 0x10, 0x4C, 0xC2, 0xF3, +0x0C, 0x4D, 0x80, 0x18, 0x25, 0x42, 0x0F, 0x92, +0x02, 0x5A, 0x16, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF5, 0x58, 0x9A, 0x64, 0x98, 0x6C, 0xEA, +0x04, 0x2A, 0x01, 0x6B, 0x6B, 0xEB, 0x08, 0xD3, +0x39, 0x10, 0x0F, 0x95, 0x30, 0xF0, 0x20, 0x6C, +0x44, 0xF4, 0x1C, 0x4C, 0x80, 0x18, 0x25, 0x42, +0x01, 0x6A, 0x4B, 0xEA, 0x08, 0xD2, 0x2E, 0x10, +0x07, 0xF4, 0x00, 0x6A, 0x06, 0xD2, 0xFF, 0x6B, +0x02, 0xF0, 0x00, 0x4A, 0x2C, 0xEB, 0x07, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x3C, 0x9A, +0x09, 0xD3, 0x11, 0x92, 0x68, 0x34, 0x0F, 0x93, +0x4C, 0xE9, 0xB1, 0x67, 0x68, 0x32, 0x7D, 0x67, +0x49, 0xE3, 0x46, 0x9A, 0x51, 0xE4, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xEC, 0x80, 0x18, 0xA1, 0x19, +0x08, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, +0x58, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x0A, 0x22, +0x0F, 0x95, 0x09, 0x96, 0x08, 0x97, 0x30, 0xF0, +0x20, 0x6C, 0x44, 0xF5, 0x00, 0x4C, 0x04, 0xD1, +0x80, 0x18, 0x25, 0x42, 0x08, 0x92, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x20, 0xF0, 0x44, 0xA4, 0x25, 0x67, 0x18, 0x6E, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, +0xFC, 0x9A, 0x00, 0x6D, 0x04, 0x67, 0x80, 0x18, +0x05, 0x56, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF5, 0x58, 0x9A, 0x64, 0x98, 0x6C, 0xEA, +0x0B, 0x22, 0x20, 0xF0, 0xAA, 0xA0, 0x20, 0xF0, +0xCD, 0xA0, 0x04, 0x97, 0x30, 0xF0, 0x20, 0x6C, +0x64, 0xF5, 0x04, 0x4C, 0x80, 0x18, 0x25, 0x42, +0x04, 0x93, 0xFF, 0x6A, 0xEB, 0x4B, 0x4C, 0xEB, +0x02, 0x5B, 0x50, 0x60, 0x05, 0x93, 0x6C, 0xEA, +0x0F, 0x5A, 0x58, 0x67, 0x01, 0x5A, 0x58, 0x67, +0x4B, 0xEA, 0x4C, 0xE9, 0x01, 0x71, 0x12, 0x60, +0x05, 0x21, 0x02, 0x71, 0x23, 0x60, 0x03, 0x71, +0x2D, 0x60, 0x40, 0x10, 0x30, 0xF0, 0x20, 0x68, +0xFF, 0xF7, 0x1F, 0x69, 0xC0, 0xF3, 0x44, 0x98, +0x43, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x6E, 0xF7, +0x10, 0x6E, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0xFF, 0xF7, 0x1F, 0x69, +0x43, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x04, 0xF3, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x48, 0xF1, 0x04, 0x6C, 0xB1, 0x67, 0x6E, 0xF0, +0x17, 0x6E, 0x1F, 0x10, 0x30, 0xF0, 0x20, 0x68, +0xFF, 0xF7, 0x1F, 0x69, 0xC0, 0xF3, 0x44, 0x98, +0x43, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x6E, 0xF7, +0x10, 0x6E, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0xFF, 0xF7, 0x1F, 0x69, +0x43, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x04, 0xF3, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x48, 0xF1, 0x04, 0x6C, 0xB1, 0x67, 0x24, 0xF0, +0x10, 0x6E, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x10, 0xD6, 0x11, 0xD7, +0x62, 0xF5, 0x58, 0x9A, 0x64, 0x9C, 0x04, 0x67, +0x25, 0x67, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0x44, 0xF4, +0x10, 0x4C, 0x82, 0xF3, 0x04, 0x4D, 0x80, 0x18, +0x25, 0x42, 0x02, 0x59, 0x0F, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF5, 0x58, 0x9A, 0x64, 0x98, +0x6C, 0xEA, 0x6D, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0xA4, 0xF5, 0x04, 0x4C, 0xB1, 0x67, 0x80, 0x18, +0x25, 0x42, 0x65, 0x10, 0x10, 0x92, 0x09, 0x22, +0x12, 0x94, 0x11, 0x97, 0xB1, 0x67, 0x04, 0xD4, +0xC2, 0x67, 0x90, 0x67, 0x80, 0x18, 0xDA, 0x55, +0x5B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, +0xFC, 0x9A, 0x11, 0x92, 0x00, 0x6C, 0x08, 0xD4, +0xEC, 0xEA, 0xEA, 0xEA, 0x09, 0xD2, 0x1C, 0x60, +0x90, 0x67, 0xB1, 0x67, 0x00, 0x6E, 0x80, 0x18, +0x05, 0x56, 0x08, 0xD2, 0x01, 0x4A, 0x0E, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, 0x58, 0x9A, +0x64, 0x98, 0x6C, 0xEA, 0x40, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0xA4, 0xF5, 0x18, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x39, 0x10, 0x09, 0x94, 0x08, 0x95, +0x12, 0x96, 0x80, 0x18, 0x36, 0x51, 0x12, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x9A, +0x03, 0xF0, 0x08, 0x6A, 0x06, 0xD2, 0x05, 0xF1, +0x00, 0x4A, 0x07, 0xD2, 0x9D, 0x67, 0x28, 0x32, +0x49, 0xE4, 0x8C, 0xAA, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF6, 0xDC, 0x9A, 0x12, 0x92, 0x01, 0x6D, +0xAB, 0xED, 0x4C, 0xEE, 0x40, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF5, 0x58, 0x9A, 0x64, 0x98, +0x6C, 0xEA, 0x0D, 0x22, 0x08, 0x94, 0x09, 0x92, +0x12, 0x97, 0x04, 0xD4, 0x30, 0xF0, 0x20, 0x6C, +0xC4, 0xF5, 0x14, 0x4C, 0xB1, 0x67, 0x00, 0x6E, +0x05, 0xD2, 0x80, 0x18, 0x25, 0x42, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0D, 0x6C, +0x40, 0xEA, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x00, 0x6D, 0x0A, 0xD4, +0x80, 0x18, 0x1D, 0x51, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF0, 0x34, 0x9A, 0x30, 0xF0, 0x20, 0x68, +0x69, 0xF3, 0x08, 0x48, 0x00, 0x6A, 0x90, 0x67, +0xF1, 0x67, 0xA2, 0x67, 0xBC, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x78, 0x56, 0x90, 0x67, 0xF1, 0x67, +0x01, 0x6A, 0x00, 0x6D, 0xBC, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x78, 0x56, 0x00, 0x6A, 0xF1, 0x67, +0x90, 0x67, 0xBC, 0x6E, 0xA2, 0x67, 0x04, 0xD2, +0x80, 0x18, 0x78, 0x56, 0x0A, 0x94, 0x01, 0x6D, +0x80, 0x18, 0x1D, 0x51, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x68, 0x25, 0x67, 0x0C, 0xE9, 0x29, 0x59, +0xCC, 0xE8, 0x03, 0x61, 0x17, 0x58, 0x03, 0x60, +0x08, 0x10, 0x17, 0x58, 0x06, 0x60, 0x01, 0x6A, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x23, 0xF4, 0x1C, 0x6C, 0x03, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x30, 0xF0, 0x20, 0x6D, 0x04, 0xF6, 0x0C, 0x4C, +0xE2, 0xF3, 0x0C, 0x4D, 0xD1, 0x67, 0xF0, 0x67, +0x80, 0x18, 0x25, 0x42, 0x00, 0x6A, 0xE4, 0x17, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, +0xFF, 0x6D, 0x83, 0xF4, 0x10, 0x6C, 0x01, 0x4D, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF5, 0x0C, 0x9A, 0x00, 0x6C, 0x01, 0x6E, +0xB0, 0x67, 0x80, 0x18, 0x2E, 0x1A, 0x00, 0x6C, +0xB0, 0x67, 0xC4, 0x67, 0x80, 0x18, 0x2E, 0x1A, +0xB0, 0x67, 0x00, 0x6C, 0x01, 0x6E, 0x80, 0x18, +0x2E, 0x1A, 0xC0, 0xF3, 0x44, 0x99, 0xFF, 0x6D, +0x83, 0xF4, 0x10, 0x6C, 0x01, 0x4D, 0x01, 0x6E, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x52, 0x9C, 0x40, 0xA2, 0x13, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF5, 0x0C, 0x9A, +0x00, 0x6C, 0x01, 0x6E, 0xB0, 0x67, 0x80, 0x18, +0x2E, 0x1A, 0x00, 0x6C, 0xC4, 0x67, 0xB0, 0x67, +0x80, 0x18, 0x2E, 0x1A, 0x00, 0x6C, 0xB0, 0x67, +0x01, 0x6E, 0x80, 0x18, 0x2E, 0x1A, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x09, 0xD5, 0x62, 0xF5, +0x58, 0x9A, 0x64, 0x9C, 0x04, 0x67, 0x6C, 0xEA, +0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6D, 0x44, 0xF4, 0x10, 0x4C, 0x62, 0xF2, +0x1C, 0x4D, 0x80, 0x18, 0x25, 0x42, 0x90, 0x67, +0x80, 0x18, 0x1C, 0x53, 0x52, 0x98, 0x40, 0xA2, +0x04, 0x22, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, +0xF0, 0x52, 0x20, 0xF0, 0x58, 0xA0, 0x04, 0x22, +0x90, 0x67, 0xE0, 0xF3, 0x1F, 0x6D, 0x02, 0x10, +0x90, 0x67, 0x00, 0x6D, 0x30, 0xF0, 0x20, 0x69, +0x80, 0x18, 0xFE, 0x52, 0xC0, 0xF3, 0x44, 0x99, +0x03, 0x6D, 0xC5, 0x67, 0x03, 0xF0, 0x0C, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF5, +0x18, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0x03, 0xF0, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0x03, 0x6D, 0xC5, 0x67, +0x08, 0xF1, 0x0C, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF5, 0x18, 0x4B, 0xC0, 0xF3, +0x44, 0x99, 0xA0, 0x9B, 0x08, 0xF1, 0x0C, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x09, 0x92, 0x14, 0x2A, +0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF4, 0x1C, 0x6C, +0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF5, 0x18, 0x4B, 0x44, 0x98, +0x60, 0x9B, 0x6C, 0xEA, 0x2F, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x44, 0xF6, 0x0C, 0x4C, 0x16, 0x10, +0x09, 0x92, 0x01, 0x72, 0x16, 0x61, 0xC0, 0xF3, +0x44, 0x99, 0x03, 0x6D, 0x23, 0xF4, 0x1C, 0x6C, +0xC5, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF5, 0x18, 0x4B, 0x44, 0x98, 0x60, 0x9B, +0x6C, 0xEA, 0x18, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0x64, 0xF6, 0x18, 0x4C, 0x80, 0x18, 0x25, 0x42, +0x11, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, +0x18, 0x4A, 0x40, 0x9A, 0x64, 0x98, 0x4C, 0xEB, +0x00, 0x6A, 0x0C, 0x23, 0x30, 0xF0, 0x20, 0x6C, +0xA4, 0xF6, 0x04, 0x4C, 0x80, 0x18, 0x25, 0x42, +0x00, 0x6A, 0x04, 0x10, 0x90, 0x67, 0x80, 0x18, +0x09, 0x57, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0xAC, 0xEA, 0x06, 0xD2, 0x10, 0xD6, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, 0x58, 0x9A, +0x64, 0x9C, 0x04, 0x67, 0x6C, 0xEA, 0x0A, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, +0x44, 0xF4, 0x10, 0x4C, 0xA2, 0xF2, 0x00, 0x4D, +0x80, 0x18, 0x25, 0x42, 0x20, 0xF0, 0x4F, 0xA0, +0x10, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, +0x78, 0x9A, 0x44, 0x98, 0x4C, 0xEB, 0x01, 0x6A, +0x40, 0xF2, 0x0D, 0x23, 0x30, 0xF0, 0x20, 0x6C, +0xA4, 0xF6, 0x14, 0x4C, 0x80, 0x18, 0x25, 0x42, +0x43, 0x12, 0x10, 0x93, 0x07, 0x5B, 0x0B, 0x60, +0x01, 0x73, 0x03, 0x61, 0x06, 0x92, 0x03, 0x5A, +0x05, 0x10, 0x10, 0x93, 0x02, 0x73, 0x10, 0x61, +0x06, 0x92, 0x05, 0x5A, 0x0D, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF5, 0x58, 0x9A, 0x64, 0x98, +0x6C, 0xEA, 0x20, 0xF2, 0x0F, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0xC4, 0xF6, 0x14, 0x4C, 0x0E, 0x12, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0xFC, 0x9A, +0x90, 0x67, 0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, +0x05, 0x56, 0x06, 0xF0, 0x01, 0x6B, 0x6B, 0xEB, +0x09, 0xD2, 0x6C, 0xEA, 0x07, 0xD2, 0x10, 0x92, +0x07, 0x5A, 0x60, 0xF1, 0x0E, 0x60, 0x48, 0x33, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF2, 0x00, 0x4A, +0x69, 0xE2, 0x40, 0x9A, 0x00, 0xEA, 0x10, 0x93, +0x05, 0x73, 0x25, 0x61, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x44, 0x99, 0x01, 0xF0, 0x10, 0x6C, +0xE7, 0xF7, 0x10, 0x6D, 0xA0, 0xF2, 0x0B, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, +0x10, 0x6C, 0xDF, 0xF7, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, +0x14, 0x6C, 0x00, 0xF7, 0x00, 0x6D, 0x04, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x99, 0xA1, 0xF1, 0x14, 0x6C, 0x03, 0xF1, +0xA8, 0x9B, 0x04, 0x6E, 0x4E, 0x10, 0x10, 0x92, +0x06, 0x72, 0x25, 0x61, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x44, 0x99, 0x01, 0xF0, 0x10, 0x6C, +0xE7, 0xF7, 0x10, 0x6D, 0xA0, 0xF2, 0x0B, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, +0x10, 0x6C, 0xDF, 0xF7, 0x00, 0x6D, 0x02, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, +0x14, 0x6C, 0x00, 0xF7, 0x00, 0x6D, 0x06, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x99, 0xA1, 0xF1, 0x14, 0x6C, 0x03, 0xF1, +0xA8, 0x9B, 0x05, 0x6E, 0x26, 0x10, 0x10, 0x93, +0x25, 0x2B, 0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, +0x44, 0x99, 0x01, 0xF0, 0x10, 0x6C, 0xE7, 0xF7, +0x10, 0x6D, 0x80, 0xF1, 0x1B, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, 0x10, 0x6C, +0xDF, 0xF7, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, 0x14, 0x6C, +0x00, 0xF7, 0x00, 0x6D, 0x07, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, +0x03, 0xF1, 0xA8, 0x9B, 0xA1, 0xF1, 0x14, 0x6C, +0x06, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, 0x10, 0x6C, +0x0F, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x07, 0x93, +0x06, 0xF0, 0x00, 0x6A, 0xA1, 0xF4, 0x1C, 0x6C, +0x4D, 0xEB, 0x07, 0xD3, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF0, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF5, 0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0xA3, 0xF2, 0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF5, 0xBC, 0x9B, +0xC0, 0xF3, 0x44, 0x99, 0xE3, 0xF2, 0x08, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, +0xE3, 0xF2, 0x0C, 0x6C, 0x0F, 0x6D, 0x06, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x81, 0xF0, +0x0C, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x53, 0x98, 0x18, 0x6B, 0x40, 0xA2, +0x08, 0xD3, 0xC0, 0xF0, 0x01, 0x2A, 0x90, 0x67, +0x05, 0x6D, 0x80, 0x18, 0xF8, 0x51, 0x90, 0x67, +0x06, 0x6D, 0x80, 0x18, 0x07, 0x52, 0x18, 0x6A, +0xB6, 0x10, 0x06, 0x93, 0x01, 0x73, 0x09, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x03, 0xF2, 0x00, 0x6C, 0x10, 0x6D, 0x01, 0x6E, +0x08, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x03, 0xF2, 0x00, 0x6C, 0x10, 0x6D, +0x00, 0x6E, 0x30, 0xF0, 0x20, 0x69, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, 0x10, 0x6C, +0x0F, 0x6D, 0x05, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0xA1, 0xF1, 0x10, 0x6C, 0xC0, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x06, 0x92, 0x06, 0x93, +0xA1, 0xF1, 0x10, 0x6C, 0x50, 0x36, 0xC0, 0xF3, +0x44, 0x99, 0x6D, 0xEE, 0x1F, 0xF7, 0x00, 0x6D, +0x40, 0xEA, 0x07, 0x93, 0x04, 0xF0, 0x00, 0x6A, +0xA1, 0xF4, 0x1C, 0x6C, 0x4D, 0xEB, 0x07, 0xD3, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF5, 0xBC, 0x9B, +0xC0, 0xF3, 0x44, 0x99, 0xA3, 0xF2, 0x1C, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF5, 0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0xE3, 0xF2, 0x08, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0xE3, 0xF2, 0x0C, 0x6C, +0x0F, 0x6D, 0x08, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0x81, 0xF0, 0x0C, 0x6C, 0x1E, 0xF0, +0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x53, 0x98, +0x10, 0x6B, 0x40, 0xA2, 0x08, 0xD3, 0x50, 0x2A, +0x90, 0x67, 0x04, 0x6D, 0x80, 0x18, 0xF8, 0x51, +0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x07, 0x52, +0x10, 0x6A, 0x45, 0x10, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, 0x10, 0x6C, +0x0F, 0x6D, 0x0A, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0xA1, 0xF1, 0x10, 0x6C, 0xC0, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x06, 0x93, 0xC0, 0xF3, +0x44, 0x99, 0xA1, 0xF1, 0x10, 0x6C, 0x70, 0x36, +0x6D, 0xEE, 0x1F, 0xF7, 0x00, 0x6D, 0x40, 0xEA, +0x07, 0x93, 0x02, 0xF0, 0x00, 0x6A, 0xA1, 0xF4, +0x1C, 0x6C, 0x4D, 0xEB, 0x07, 0xD3, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF0, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x99, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0x81, 0xF0, 0x0C, 0x6C, 0x1E, 0xF0, +0x00, 0x6D, 0x06, 0x6E, 0x40, 0xEA, 0x08, 0x6A, +0x12, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0x98, +0x62, 0xF5, 0x58, 0x9A, 0x6C, 0xEA, 0x00, 0x6B, +0x08, 0xD3, 0x0A, 0x22, 0x10, 0x95, 0x06, 0x96, +0x30, 0xF0, 0x20, 0x6C, 0xE4, 0xF6, 0x1C, 0x4C, +0x80, 0x18, 0x25, 0x42, 0x00, 0x6A, 0x08, 0xD2, +0x30, 0xF0, 0x20, 0x69, 0x69, 0xF3, 0x08, 0x49, +0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x1D, 0x51, +0x01, 0x6B, 0x91, 0x67, 0x00, 0x6D, 0xEE, 0x6E, +0x04, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x12, 0x6A, 0x91, 0x67, 0x00, 0x6D, 0x33, 0x6E, +0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x1C, 0x4A, +0x08, 0x93, 0xE0, 0x9A, 0x91, 0x67, 0x00, 0x6D, +0x3F, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x00, 0x6B, 0xA3, 0x67, 0x91, 0x67, 0xEE, 0x6E, +0x04, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x01, 0x6A, 0x91, 0x67, 0xA2, 0x67, 0xEE, 0x6E, +0x04, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x12, 0x6B, 0x91, 0x67, 0x01, 0x6D, 0x33, 0x6E, +0x1F, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF6, 0x1C, 0x4B, +0xE0, 0x9B, 0x08, 0x92, 0x91, 0x67, 0x01, 0x6D, +0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x00, 0x6A, 0x91, 0x67, 0x01, 0x6D, 0xEE, 0x6E, +0x04, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x1C, 0x4A, +0x07, 0x93, 0xE0, 0x9A, 0x91, 0x67, 0x00, 0x6D, +0x18, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x1C, 0x4A, +0x07, 0x93, 0xE0, 0x9A, 0x91, 0x67, 0x01, 0x6D, +0x18, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x78, 0x56, +0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x1D, 0x51, +0x09, 0x92, 0x01, 0x4A, 0x10, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF5, 0x58, 0x9A, 0x64, 0x98, +0x6C, 0xEA, 0x20, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0x24, 0xF7, 0x04, 0x4C, 0x10, 0x95, 0x06, 0x96, +0x80, 0x18, 0x25, 0x42, 0x17, 0x10, 0x90, 0x67, +0x80, 0x18, 0x46, 0x54, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF5, 0x58, 0x9A, 0x64, 0x98, 0x6C, 0xEA, +0x08, 0x22, 0x10, 0x95, 0x06, 0x96, 0x30, 0xF0, +0x20, 0x6C, 0x64, 0xF7, 0x14, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x90, 0x67, 0x80, 0x18, 0x09, 0x57, +0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x08, 0xD4, 0x09, 0xD5, 0x52, 0x9C, 0x60, 0xA2, +0x45, 0x67, 0x55, 0x2B, 0x02, 0x75, 0x29, 0x61, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0xC1, 0xF4, 0x00, 0x69, 0x91, 0x67, 0xE0, 0xF7, +0x1F, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF1, 0x0C, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0x49, +0x91, 0x67, 0xE0, 0xF7, 0x1F, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, +0x0C, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, +0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x03, 0x6A, +0x2A, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0xC1, 0xF4, 0x00, 0x69, 0x91, 0x67, +0xE0, 0xF7, 0x1F, 0x6D, 0x00, 0xF4, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, +0x0C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x08, 0x49, 0x91, 0x67, 0xE0, 0xF7, +0x1F, 0x6D, 0x00, 0xF4, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0x0C, 0x4B, +0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, 0x91, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0x09, 0x92, 0x6F, 0x42, +0x02, 0x5B, 0x46, 0x60, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF5, 0x10, 0x69, +0x91, 0x67, 0x00, 0xF3, 0x00, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, +0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA2, 0xF6, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x41, 0xF4, 0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, 0xB8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x41, 0xF4, 0x14, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF6, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x21, 0xF4, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0xAC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x09, 0x96, 0xFD, 0xF2, +0x14, 0x49, 0x91, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x82, 0xF6, 0xB8, 0x9B, 0x09, 0x96, 0x47, 0x10, +0x03, 0x72, 0x46, 0x61, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF5, 0x10, 0x69, +0x91, 0x67, 0x00, 0xF3, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, +0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA2, 0xF6, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x41, 0xF4, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, 0xB8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x41, 0xF4, 0x14, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF6, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x21, 0xF4, 0x18, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0xAC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xFD, 0xF2, 0x14, 0x49, +0x91, 0x67, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x82, 0xF6, +0xB8, 0x9B, 0x91, 0x67, 0x03, 0x6E, 0x40, 0xEA, +0x08, 0x94, 0x80, 0x18, 0x09, 0x57, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x03, 0x75, 0x24, 0x67, 0x53, 0x60, 0x01, 0x76, +0x09, 0x61, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x21, 0xF0, 0x00, 0x6C, 0xFF, 0x6D, +0x01, 0x6E, 0x08, 0x10, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, 0x00, 0x6C, +0xFF, 0x6D, 0x02, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF6, 0x0C, 0x6C, 0xFF, 0xF7, +0x1F, 0x6D, 0x00, 0x6E, 0x2E, 0x10, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, +0x00, 0x6C, 0xFF, 0x6D, 0x31, 0x6E, 0x0A, 0x10, +0x02, 0x76, 0x12, 0x61, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, 0x00, 0x6C, +0xFF, 0x6D, 0x32, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF6, 0x0C, 0x6C, 0xFF, 0xF7, +0x1F, 0x6D, 0x00, 0xF4, 0x00, 0x6E, 0x11, 0x10, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x21, 0xF0, 0x00, 0x6C, 0xFF, 0x6D, 0x33, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF6, +0x0C, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0x00, 0xF4, +0x04, 0x6E, 0x40, 0xEA, 0x91, 0x67, 0x80, 0x18, +0x09, 0x57, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0x01, 0x76, 0xD0, 0x61, +0xC6, 0x17, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x01, 0x75, 0x08, 0xD4, +0x26, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0x82, 0xF6, 0xB8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF2, 0x04, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, +0x0C, 0x69, 0x91, 0x67, 0x20, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, +0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0xE3, 0xF0, +0xB4, 0x9B, 0x00, 0x6E, 0x46, 0x10, 0x02, 0x75, +0x1D, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0x82, 0xF6, 0xB8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF2, 0x04, 0x6C, 0x05, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, +0x0C, 0x69, 0x91, 0x67, 0x20, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0xE3, 0xF0, 0xB0, 0x9B, +0x00, 0x6E, 0x1E, 0x10, 0x03, 0x75, 0x26, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, +0x82, 0xF6, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF2, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x0C, 0x69, +0x91, 0x67, 0x20, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0xE3, 0xF0, 0xB0, 0x9B, 0x91, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xE3, 0xF0, 0xB4, 0x9B, 0x91, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0x08, 0x94, 0x80, 0x18, +0x09, 0x57, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x01, 0x6A, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x04, 0x67, 0x25, 0x67, 0x80, 0x18, 0x4D, 0x59, +0xB1, 0x67, 0x90, 0x67, 0x80, 0x18, 0xA2, 0x58, +0x20, 0xF0, 0x2D, 0xC0, 0x90, 0x67, 0x80, 0x18, +0x09, 0x57, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x01, 0x75, 0x04, 0x67, 0x0C, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF2, 0x04, 0x6C, +0xE3, 0xF0, 0xAC, 0x9B, 0x08, 0x6E, 0x19, 0x10, +0x02, 0x75, 0x0C, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, +0x03, 0xF2, 0x04, 0x6C, 0xE3, 0xF0, 0xAC, 0x9B, +0x04, 0x6E, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, +0xE3, 0xF0, 0xAC, 0x9B, 0x03, 0xF2, 0x04, 0x6C, +0x0C, 0x6E, 0x40, 0xEA, 0x90, 0x67, 0x80, 0x18, +0x09, 0x57, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x7D, 0x67, 0x04, 0x67, +0x47, 0x43, 0x0A, 0xD6, 0x20, 0xF0, 0xAC, 0xC0, +0x21, 0x4A, 0x60, 0xA2, 0x46, 0x67, 0xAD, 0xEA, +0x0B, 0xD7, 0x25, 0x67, 0x20, 0xF0, 0x6B, 0xC4, +0x20, 0xF0, 0x4A, 0xC4, 0xA7, 0x67, 0x80, 0x18, +0x97, 0x59, 0x0A, 0x96, 0x90, 0x67, 0xB1, 0x67, +0x80, 0x18, 0x1E, 0x59, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF5, 0x58, 0x9A, 0x64, 0x98, 0x6C, 0xEA, +0x09, 0x22, 0x0A, 0x96, 0x0B, 0x97, 0x30, 0xF0, +0x20, 0x6C, 0xA4, 0xF7, 0x00, 0x4C, 0xB1, 0x67, +0x80, 0x18, 0x25, 0x42, 0x90, 0x67, 0x80, 0x18, +0x09, 0x57, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x0D, 0xD5, 0x0E, 0xD6, +0x20, 0xF0, 0x44, 0xA4, 0x04, 0x67, 0x27, 0x67, +0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, +0x58, 0x9A, 0x64, 0x9C, 0x6C, 0xEA, 0x0A, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, +0x44, 0xF4, 0x10, 0x4C, 0x02, 0xF3, 0x00, 0x4D, +0x80, 0x18, 0x25, 0x42, 0x20, 0xF0, 0x4F, 0xA0, +0x0B, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6D, 0xC4, 0xF7, 0x04, 0x4C, 0x02, 0xF3, +0x00, 0x4D, 0x80, 0x18, 0x25, 0x42, 0x8D, 0x10, +0x0E, 0x93, 0x04, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6D, 0xC4, 0xF7, 0x1C, 0x4C, 0x02, 0xF3, +0x00, 0x4D, 0xC3, 0x67, 0x16, 0x10, 0x0D, 0x92, +0xFF, 0x72, 0x02, 0x61, 0xFF, 0x71, 0x15, 0x60, +0x0D, 0x93, 0x04, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x03, 0x2A, 0xA3, 0x67, 0x06, 0xD2, 0x10, 0x10, +0x0D, 0x96, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6D, 0xE4, 0xF7, 0x14, 0x4C, 0x02, 0xF3, +0x00, 0x4D, 0x80, 0x18, 0x25, 0x42, 0x00, 0x6A, +0x65, 0x10, 0x01, 0x6B, 0x03, 0x6D, 0x06, 0xD3, +0x0E, 0x96, 0x90, 0x67, 0x80, 0x18, 0x4A, 0x51, +0x0E, 0x95, 0x90, 0x67, 0x80, 0x18, 0x8C, 0x59, +0x20, 0xF0, 0x4B, 0xA0, 0x03, 0x2A, 0x01, 0x6A, +0x20, 0xF0, 0x4B, 0xC0, 0x0D, 0x92, 0xFF, 0x4A, +0x02, 0x5A, 0x02, 0x60, 0x0D, 0x91, 0x0D, 0x10, +0x0D, 0x93, 0x03, 0x73, 0x06, 0x61, 0xFF, 0x71, +0x0B, 0x61, 0x20, 0xF0, 0x2B, 0xA0, 0x03, 0x6A, +0x05, 0x10, 0x06, 0x93, 0x05, 0x23, 0x20, 0xF0, +0x2B, 0xA0, 0x00, 0x6A, 0x06, 0xD2, 0x02, 0x10, +0x03, 0x6B, 0x06, 0xD3, 0x06, 0x95, 0x90, 0x67, +0xD1, 0x67, 0xF1, 0x67, 0x80, 0x18, 0xB1, 0x59, +0x07, 0x92, 0xFF, 0x6B, 0xEB, 0x4A, 0x6C, 0xEA, +0x02, 0x5A, 0x18, 0x60, 0x20, 0xF0, 0x4A, 0xA0, +0x01, 0x72, 0x06, 0x61, 0x0E, 0x92, 0x01, 0x72, +0x03, 0x61, 0x90, 0x67, 0x01, 0x6D, 0x0C, 0x10, +0x20, 0xF0, 0x4A, 0xA0, 0x02, 0x72, 0x06, 0x61, +0x0E, 0x93, 0x02, 0x73, 0x03, 0x61, 0x90, 0x67, +0x02, 0x6D, 0x02, 0x10, 0x90, 0x67, 0x03, 0x6D, +0x80, 0x18, 0x38, 0x56, 0x90, 0x67, 0x80, 0x18, +0x46, 0x54, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, +0x58, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x0A, 0x22, +0x0E, 0x95, 0x0D, 0x96, 0x06, 0x97, 0x30, 0xF0, +0x20, 0x6C, 0x05, 0xF0, 0x0C, 0x4C, 0x04, 0xD1, +0x80, 0x18, 0x25, 0x42, 0x90, 0x67, 0x80, 0x18, +0x09, 0x57, 0x01, 0x6A, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, +0x20, 0xF0, 0x44, 0xA4, 0xFF, 0x69, 0x04, 0x67, +0x0A, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, +0x58, 0x9A, 0x64, 0x9C, 0xAC, 0xE9, 0x6C, 0xEA, +0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6D, 0x44, 0xF4, 0x10, 0x4C, 0xC2, 0xF2, +0x04, 0x4D, 0x80, 0x18, 0x25, 0x42, 0x20, 0xF0, +0x4F, 0xA0, 0x0F, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF5, 0x58, 0x9A, 0x64, 0x98, 0x6C, 0xEA, +0x80, 0xF1, 0x1A, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0x25, 0xF0, 0x10, 0x4C, 0x80, 0x18, 0x25, 0x42, +0x93, 0x11, 0x48, 0x41, 0xF9, 0x4A, 0xFF, 0x6B, +0x6C, 0xEA, 0x15, 0x5A, 0x0C, 0x61, 0x48, 0x41, +0xC7, 0x4A, 0x6C, 0xEA, 0x23, 0x5A, 0x07, 0x61, +0x47, 0x41, 0x68, 0x4A, 0x6C, 0xEA, 0x04, 0x5A, +0x02, 0x61, 0xB2, 0x59, 0x10, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF5, 0x58, 0x9A, 0x64, 0x98, +0x6C, 0xEA, 0x60, 0xF1, 0x1B, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x45, 0xF0, 0x04, 0x4C, 0xB1, 0x67, +0x80, 0x18, 0x25, 0x42, 0x73, 0x11, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF6, 0xFC, 0x9A, 0x90, 0x67, +0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, 0x05, 0x56, +0x09, 0xD2, 0x01, 0x4A, 0x0F, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF5, 0x58, 0x9A, 0x64, 0x98, +0x6C, 0xEA, 0x40, 0xF1, 0x1F, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x45, 0xF0, 0x14, 0x4C, 0x80, 0x18, +0x25, 0x42, 0x58, 0x11, 0x20, 0xF0, 0x6B, 0xA0, +0x0F, 0x59, 0x58, 0x67, 0x0B, 0xD2, 0x06, 0xD3, +0x15, 0x2B, 0x21, 0xF0, 0x00, 0x6C, 0x0F, 0x6D, +0x80, 0x18, 0xA1, 0x19, 0xFF, 0x6B, 0x4C, 0xEB, +0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, +0x20, 0xF0, 0x6B, 0xC0, 0x65, 0xF0, 0x08, 0x4C, +0xC2, 0xF2, 0x04, 0x4D, 0xC3, 0x67, 0x06, 0xD3, +0x80, 0x18, 0x25, 0x42, 0x20, 0xF0, 0x4A, 0xA0, +0x08, 0xD2, 0x1B, 0x2A, 0x21, 0xF0, 0x00, 0x6C, +0xF0, 0x6D, 0x80, 0x18, 0xA1, 0x19, 0xC2, 0x67, +0x06, 0x92, 0xFF, 0x6B, 0x6C, 0xEE, 0xCD, 0xEA, +0x6C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6D, 0x20, 0xF0, 0xCC, 0xC0, 0x20, 0xF0, +0x4A, 0xC0, 0x85, 0xF0, 0x10, 0x4C, 0xC2, 0xF2, +0x04, 0x4D, 0xE2, 0x67, 0x08, 0xD2, 0x80, 0x18, +0x25, 0x42, 0x20, 0xF0, 0x6D, 0xA0, 0x07, 0xD3, +0x18, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, +0xAC, 0x9A, 0x21, 0xF0, 0x04, 0x6C, 0x80, 0x18, +0xA1, 0x19, 0xFF, 0x6B, 0x4C, 0xEB, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0x20, 0xF0, +0x6D, 0xC0, 0xC5, 0xF0, 0x0C, 0x4C, 0xC2, 0xF2, +0x04, 0x4D, 0xC3, 0x67, 0x07, 0xD3, 0x80, 0x18, +0x25, 0x42, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, +0x50, 0x9A, 0x09, 0x93, 0x4C, 0xEB, 0x0B, 0x92, +0x2D, 0xEB, 0x06, 0xD3, 0x16, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF1, 0x54, 0x9A, 0x91, 0x59, +0x4D, 0xEB, 0x06, 0xD3, 0x05, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF1, 0x58, 0x9A, 0x07, 0x10, +0x50, 0x59, 0x07, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xA2, 0xF6, 0x50, 0x9A, 0x06, 0x93, 0x4D, 0xEB, +0x06, 0xD3, 0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, +0x1D, 0x51, 0x30, 0xF0, 0x20, 0x6A, 0x69, 0xF3, +0x08, 0x4A, 0x82, 0x67, 0x09, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF6, 0x1C, 0x4A, 0x06, 0x93, +0xE0, 0x9A, 0x00, 0x6D, 0x18, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x78, 0x56, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF6, 0x1C, 0x4A, 0x06, 0x93, 0x09, 0x94, +0xE0, 0x9A, 0x01, 0x6D, 0x18, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x78, 0x56, 0x90, 0x67, 0x01, 0x6D, +0x80, 0x18, 0x1D, 0x51, 0x0F, 0x59, 0x11, 0x60, +0x50, 0x98, 0x40, 0xA2, 0x07, 0x2A, 0x90, 0x67, +0x05, 0x6D, 0x80, 0x18, 0xF8, 0x51, 0x90, 0x67, +0x06, 0x6D, 0x1A, 0x10, 0x90, 0x67, 0x04, 0x6D, +0x80, 0x18, 0xF8, 0x51, 0x90, 0x67, 0x00, 0x6D, +0x13, 0x10, 0x68, 0x41, 0xE4, 0x4B, 0xFF, 0x6A, +0x4C, 0xEB, 0x1D, 0x5B, 0x03, 0x60, 0x90, 0x67, +0x01, 0x6D, 0x0A, 0x10, 0x68, 0x41, 0xA4, 0x4B, +0x4C, 0xEB, 0x2D, 0x5B, 0x03, 0x60, 0x90, 0x67, +0x02, 0x6D, 0x02, 0x10, 0x90, 0x67, 0x03, 0x6D, +0x80, 0x18, 0x07, 0x52, 0x90, 0x67, 0xB1, 0x67, +0x80, 0x18, 0x22, 0x52, 0x90, 0x67, 0xB1, 0x67, +0x80, 0x18, 0x6A, 0x52, 0x0B, 0x93, 0x2F, 0x23, +0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, 0x9E, 0x51, +0x90, 0x67, 0x01, 0x6D, 0x00, 0x18, 0x7F, 0xC1, +0x40, 0xF4, 0x14, 0x6C, 0x80, 0x6D, 0x00, 0x6E, +0x80, 0x18, 0x2E, 0x1A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF1, 0xB8, 0x9B, 0x83, 0xF2, 0x00, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF1, 0xBC, 0x9B, 0x83, 0xF4, 0x00, 0x6C, +0x0F, 0x6E, 0x40, 0xEA, 0x0A, 0x92, 0xFF, 0x6B, +0xEB, 0x4A, 0x6C, 0xEA, 0x02, 0x5A, 0x41, 0x60, +0x90, 0x67, 0x00, 0x6D, 0x3C, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF1, 0xB8, 0x9B, 0x83, 0xF2, +0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x01, 0x6E, +0x40, 0xF4, 0x14, 0x6C, 0x80, 0x6D, 0x80, 0x18, +0x2E, 0x1A, 0x90, 0x67, 0x02, 0x6D, 0x00, 0x18, +0x7F, 0xC1, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, +0xBC, 0x9B, 0x83, 0xF4, 0x00, 0x6C, 0x22, 0x6E, +0x40, 0xEA, 0x0A, 0x92, 0xFF, 0x6B, 0xEB, 0x4A, +0x6C, 0xEA, 0x02, 0x5A, 0x16, 0x60, 0x08, 0x92, +0x01, 0x72, 0x06, 0x61, 0x07, 0x93, 0x01, 0x73, +0x0C, 0x61, 0x90, 0x67, 0x01, 0x6D, 0x0B, 0x10, +0x08, 0x92, 0x02, 0x72, 0x06, 0x61, 0x07, 0x93, +0x02, 0x73, 0x03, 0x61, 0x90, 0x67, 0x02, 0x6D, +0x02, 0x10, 0x90, 0x67, 0x03, 0x6D, 0x80, 0x18, +0x38, 0x56, 0x90, 0x67, 0x80, 0x18, 0x46, 0x54, +0x52, 0x98, 0x40, 0xA2, 0x04, 0x22, 0x90, 0x67, +0xB1, 0x67, 0x80, 0x18, 0xD1, 0x52, 0x90, 0x67, +0x80, 0x18, 0x09, 0x57, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF5, 0x58, 0x9A, 0x64, 0x98, 0x6C, 0xEA, +0x07, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xE5, 0xF0, +0x1C, 0x4C, 0xB1, 0x67, 0x80, 0x18, 0x25, 0x42, +0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x0F, 0x97, +0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0x26, 0x67, 0x4C, 0xED, 0x04, 0x67, +0x0B, 0xD7, 0x4C, 0xE9, 0x80, 0x18, 0x2A, 0x5A, +0x00, 0x6B, 0x09, 0x22, 0x0B, 0x96, 0x90, 0x67, +0xB1, 0x67, 0x80, 0x18, 0x66, 0x57, 0x4B, 0xEB, +0x4D, 0xEB, 0xC0, 0xF7, 0x62, 0x33, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x43, 0x67, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x40, 0xA4, 0x01, 0x72, 0x04, 0x61, 0x00, 0x18, +0xB0, 0xC8, 0x00, 0x18, 0xA6, 0xC8, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x22, 0x6A, 0x7D, 0x67, 0x50, 0xC3, 0x01, 0x6A, +0x4F, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x5C, 0x9A, 0x92, 0xC3, 0x04, 0x04, 0x40, 0xEA, +0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0x6B, 0x6C, 0xEC, 0x03, 0x5C, 0x58, 0x67, +0x6C, 0xEA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xC9, 0xF1, 0x14, 0x4A, 0x67, 0x42, 0x09, 0x4B, +0x80, 0xA2, 0x02, 0x24, 0x01, 0x6A, 0x20, 0xE8, +0x01, 0x4A, 0x6A, 0xEA, 0xF9, 0x61, 0x00, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x49, 0xF3, 0x5C, 0xA2, +0x0E, 0x72, 0x29, 0x61, 0x80, 0x18, 0x2F, 0x5B, +0x26, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x69, 0xF3, +0x08, 0x4C, 0x04, 0x05, 0x80, 0x18, 0x2A, 0x54, +0x5D, 0x67, 0x92, 0xA2, 0x80, 0x18, 0x2C, 0x5B, +0x0A, 0x22, 0x5D, 0x67, 0x90, 0xA2, 0x80, 0x18, +0x2C, 0x5B, 0x05, 0x22, 0x5D, 0x67, 0x91, 0xA2, +0x80, 0x18, 0x2C, 0x5B, 0x10, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF6, 0x4C, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, +0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF4, +0x4C, 0x9A, 0x60, 0xDA, 0xF0, 0x17, 0x07, 0x97, +0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x49, 0xF3, +0x59, 0xA2, 0x01, 0x72, 0x4A, 0x61, 0x80, 0x18, +0x2F, 0x5B, 0x47, 0x22, 0x30, 0xF0, 0x20, 0x68, +0x69, 0xF3, 0x08, 0x48, 0x90, 0x67, 0x05, 0x05, +0x80, 0x18, 0x2A, 0x54, 0x7D, 0x67, 0x56, 0xA3, +0x01, 0x72, 0x0E, 0x60, 0x03, 0x72, 0x0C, 0x60, +0x54, 0xA3, 0x01, 0x72, 0x09, 0x60, 0x03, 0x72, +0x07, 0x60, 0x55, 0xA3, 0x01, 0x72, 0x04, 0x60, +0x02, 0x72, 0x02, 0x60, 0x03, 0x72, 0x10, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, 0x4C, 0x9A, +0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF6, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF4, 0x4C, 0x9A, 0x60, 0xDA, 0xF0, 0x17, +0x90, 0x67, 0x04, 0x05, 0x80, 0x18, 0x18, 0x54, +0x7D, 0x67, 0x51, 0xA3, 0x01, 0x72, 0x05, 0x60, +0x03, 0x72, 0x03, 0x60, 0x50, 0xA3, 0x01, 0x72, +0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, +0x4C, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF6, 0x60, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF4, 0x4C, 0x9A, 0x60, 0xDA, +0xF0, 0x17, 0x09, 0x97, 0x08, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x10, 0xF0, 0x23, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF7, 0x01, 0x4B, +0x40, 0xF1, 0x68, 0xDA, 0x10, 0xF0, 0x23, 0x6B, +0x40, 0xF1, 0x08, 0x4A, 0x40, 0xF5, 0x05, 0x4B, +0x61, 0xDA, 0x10, 0xF0, 0x23, 0x6B, 0x03, 0xF0, +0x15, 0x4B, 0x62, 0xDA, 0x10, 0xF0, 0x23, 0x6B, +0x03, 0xF0, 0x05, 0x4B, 0x63, 0xDA, 0x10, 0xF0, +0x23, 0x6B, 0xE2, 0xF7, 0x15, 0x4B, 0x64, 0xDA, +0x10, 0xF0, 0x23, 0x6B, 0xE2, 0xF7, 0x05, 0x4B, +0x65, 0xDA, 0x10, 0xF0, 0x23, 0x6B, 0xC2, 0xF7, +0x15, 0x4B, 0x66, 0xDA, 0x10, 0xF0, 0x23, 0x6B, +0xC2, 0xF7, 0x05, 0x4B, 0x67, 0xDA, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF1, 0x14, 0x4A, +0x67, 0x42, 0x09, 0x4B, 0x00, 0x6C, 0x80, 0xC2, +0x01, 0x4A, 0x6A, 0xEA, 0xFB, 0x61, 0x42, 0xF4, +0x10, 0x6A, 0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x05, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF5, 0x64, 0x9B, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF5, +0x68, 0x9B, 0x6D, 0xE2, 0x04, 0x4A, 0x00, 0x6C, +0x62, 0xF4, 0x00, 0x72, 0x80, 0xDB, 0xE9, 0x61, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x40, 0x9A, +0x03, 0x6C, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF6, 0x44, 0x9A, 0x00, 0xF5, 0x62, 0x33, +0x8C, 0xEB, 0x40, 0x9A, 0x01, 0x73, 0x42, 0x32, +0x52, 0x32, 0x8C, 0xEA, 0x05, 0x60, 0x0B, 0x2B, +0x02, 0x5A, 0x50, 0x6C, 0x0D, 0x60, 0x03, 0x10, +0x02, 0x5A, 0x0A, 0x60, 0x28, 0x6C, 0x87, 0xEA, +0xFF, 0x6A, 0x4C, 0xEC, 0x06, 0x10, 0x02, 0x5A, +0x28, 0x6C, 0x03, 0x60, 0x14, 0x6C, 0x01, 0x10, +0x50, 0x6C, 0x80, 0x18, 0x77, 0x5E, 0x80, 0x18, +0x8B, 0x02, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, +0x74, 0x9B, 0x00, 0x6A, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF4, 0x6C, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, 0x70, 0x9B, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, +0x7C, 0x9B, 0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF5, 0x64, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF6, 0x68, 0x9B, 0x40, 0xDB, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xA5, 0xF6, 0x08, 0x48, +0x00, 0x69, 0xA0, 0xF0, 0x24, 0xD8, 0x40, 0xF1, +0x37, 0xC0, 0x80, 0x18, 0x7D, 0x5B, 0xC0, 0xF0, +0x7C, 0xA0, 0x01, 0x6A, 0x6D, 0xEA, 0xC0, 0xF0, +0x5C, 0xC0, 0x80, 0x18, 0xEB, 0x5C, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF1, +0x34, 0xC0, 0xE9, 0xF1, 0x08, 0x4A, 0xE9, 0xF1, +0x18, 0x4C, 0x00, 0x6B, 0x60, 0xC2, 0x70, 0xC2, +0x01, 0x4A, 0x62, 0x67, 0x8E, 0xEB, 0xF9, 0x2B, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0x23, 0xF3, 0x7D, 0xC2, 0x23, 0xF3, 0x7E, 0xC2, +0x23, 0xF3, 0x7F, 0xC2, 0x23, 0xF3, 0x7C, 0xC2, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x80, 0x18, 0x94, 0x5B, 0x80, 0x18, 0x00, 0x5C, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x50, 0x9A, +0x40, 0xEA, 0x80, 0x18, 0x93, 0x40, 0x00, 0x18, +0x8B, 0xD2, 0x80, 0x18, 0x58, 0x00, 0x80, 0x18, +0x3F, 0x19, 0x00, 0x18, 0x32, 0xCB, 0x00, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x4C, 0x9A, 0x10, 0xF0, 0x23, 0x6C, 0x01, 0x6F, +0x25, 0xF3, 0x1D, 0x4C, 0x00, 0x6D, 0x64, 0x6E, +0xEB, 0xEF, 0x40, 0xEA, 0x00, 0x18, 0x4F, 0xCB, +0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF6, 0x08, 0x4A, +0x00, 0x6B, 0x40, 0xF6, 0x7A, 0xC2, 0x40, 0xF6, +0x7B, 0xC2, 0x40, 0xF1, 0x77, 0xC2, 0x40, 0xF1, +0x78, 0xC2, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0xA3, 0xF4, 0x71, 0xA2, +0x0F, 0x23, 0xA3, 0xF4, 0x70, 0xA2, 0x0C, 0x23, +0xA3, 0xF4, 0x76, 0xA2, 0x09, 0x23, 0xA3, 0xF4, +0x72, 0xA2, 0x06, 0x23, 0xA3, 0xF4, 0x74, 0xA2, +0x03, 0x23, 0xA3, 0xF4, 0x53, 0xA2, 0x1E, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x64, 0x9A, +0xFF, 0xF7, 0x1F, 0x6C, 0x10, 0xF0, 0x00, 0x6D, +0x40, 0xAB, 0xAB, 0xED, 0x8C, 0xEA, 0xAD, 0xEA, +0x8C, 0xEA, 0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6A, +0xC2, 0xF6, 0x4C, 0x9A, 0x00, 0x6B, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, 0x78, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF4, 0x4C, 0x9A, +0x60, 0xDA, 0xF0, 0x17, 0x20, 0xE8, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x48, 0x98, +0x0A, 0xD4, 0x04, 0x05, 0xE0, 0xF1, 0x14, 0x6C, +0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x0A, 0x95, +0xE0, 0xF1, 0x15, 0x6C, 0x30, 0xF0, 0x20, 0x69, +0x40, 0xC5, 0xC0, 0xF3, 0x48, 0x98, 0x04, 0x05, +0xA5, 0xF6, 0x08, 0x49, 0x40, 0xEA, 0x7D, 0x67, +0x50, 0xA3, 0x0A, 0x95, 0xE0, 0xF1, 0x16, 0x6C, +0x41, 0xC5, 0xC0, 0xF3, 0x48, 0x98, 0x04, 0x05, +0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x0A, 0x95, +0xE0, 0xF1, 0x17, 0x6C, 0x42, 0xC5, 0xC0, 0xF3, +0x48, 0x98, 0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, +0x50, 0xA3, 0x0A, 0x95, 0xE0, 0xF1, 0x18, 0x6C, +0x43, 0xC5, 0xC0, 0xF3, 0x48, 0x98, 0x04, 0x05, +0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x0A, 0x95, +0xE0, 0xF1, 0x19, 0x6C, 0x44, 0xC5, 0xC0, 0xF3, +0x48, 0x98, 0x04, 0x05, 0x40, 0xEA, 0xBD, 0x67, +0x90, 0xA5, 0xA3, 0xF4, 0x54, 0xA1, 0x0F, 0x6B, +0x8C, 0xEB, 0x50, 0x32, 0x6D, 0xEA, 0x0A, 0x93, +0x04, 0x05, 0xE0, 0xF1, 0x1B, 0x6C, 0x45, 0xC3, +0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, 0xA3, 0xF4, +0x56, 0xA1, 0xA3, 0xF4, 0x71, 0xA1, 0x0A, 0x95, +0x4C, 0x32, 0x74, 0x33, 0x6D, 0xEA, 0xA3, 0xF4, +0x70, 0xA1, 0x6D, 0xEA, 0x46, 0xC5, 0xA3, 0xF4, +0x52, 0xA1, 0xA3, 0xF4, 0x73, 0xA1, 0x48, 0x32, +0x78, 0x33, 0x6D, 0xEA, 0x33, 0x6B, 0x6D, 0xEA, +0x47, 0xC5, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x48, 0x98, 0x24, 0x67, 0x04, 0x05, +0xE0, 0xF1, 0x10, 0x6C, 0x40, 0xEA, 0x7D, 0x67, +0x50, 0xA3, 0x04, 0x05, 0xE0, 0xF1, 0x11, 0x6C, +0x40, 0xC1, 0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, +0x7D, 0x67, 0x50, 0xA3, 0x04, 0x05, 0xE0, 0xF1, +0x12, 0x6C, 0x41, 0xC1, 0xC0, 0xF3, 0x48, 0x98, +0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x04, 0x05, +0xE0, 0xF1, 0x13, 0x6C, 0x42, 0xC1, 0xC0, 0xF3, +0x48, 0x98, 0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, +0x04, 0x05, 0xE0, 0xF1, 0x1C, 0x6C, 0x43, 0xC1, +0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, 0x7D, 0x67, +0x50, 0xA3, 0x04, 0x05, 0xE0, 0xF1, 0x1D, 0x6C, +0x44, 0xC1, 0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, +0x7D, 0x67, 0x50, 0xA3, 0x04, 0x05, 0xE0, 0xF1, +0x1E, 0x6C, 0x45, 0xC1, 0xC0, 0xF3, 0x48, 0x98, +0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0xE0, 0xF1, +0x1F, 0x6C, 0x04, 0x05, 0x46, 0xC1, 0xC0, 0xF3, +0x48, 0x98, 0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, +0x47, 0xC1, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD0, 0x04, 0x00, 0x90, 0x67, 0x80, 0x18, +0x22, 0x5C, 0xA0, 0xF1, 0x02, 0x6A, 0x1F, 0xF7, +0x00, 0x6B, 0x4C, 0xEB, 0x02, 0xF0, 0x00, 0x73, +0x01, 0x60, 0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF5, 0x64, 0x9B, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0xF5, 0x68, 0x9B, 0x80, 0xA0, +0x6D, 0xE2, 0x01, 0x4A, 0xA0, 0xF1, 0x0A, 0x72, +0x80, 0xC3, 0x01, 0x48, 0xE8, 0x61, 0x04, 0x00, +0x90, 0x67, 0x80, 0x18, 0x59, 0x5C, 0xA0, 0xF1, +0x0A, 0x6A, 0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x05, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF5, 0x64, 0x9B, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF5, +0x68, 0x9B, 0x80, 0xA0, 0x6D, 0xE2, 0x01, 0x4A, +0xA0, 0xF1, 0x0F, 0x72, 0x80, 0xC3, 0x01, 0x48, +0xE8, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, +0x5C, 0x9A, 0x19, 0x6B, 0x60, 0xC2, 0x09, 0x97, +0x08, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0xA5, 0xF6, 0x08, 0x48, 0xA3, 0xF4, +0x50, 0xA0, 0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, 0x1A, 0x6C, +0x04, 0x05, 0x40, 0xEA, 0x9D, 0x67, 0x70, 0xA4, +0x07, 0x6A, 0x6C, 0xEA, 0xA3, 0xF4, 0x50, 0xC0, +0x30, 0xF0, 0x20, 0x68, 0xA5, 0xF6, 0x08, 0x48, +0xA3, 0xF4, 0x51, 0xA0, 0x0D, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, +0x1A, 0x6C, 0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, +0x50, 0xA3, 0x56, 0x32, 0xA3, 0xF4, 0x51, 0xC0, +0x30, 0xF0, 0x20, 0x68, 0xA5, 0xF6, 0x08, 0x48, +0xA3, 0xF4, 0x56, 0xA0, 0x0F, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, +0x1A, 0x6C, 0x04, 0x05, 0x40, 0xEA, 0x9D, 0x67, +0x50, 0xA4, 0x18, 0x6B, 0x6C, 0xEA, 0x4F, 0x32, +0xA3, 0xF4, 0x56, 0xC0, 0x30, 0xF0, 0x20, 0x68, +0xA5, 0xF6, 0x08, 0x48, 0xA3, 0xF4, 0x54, 0xA0, +0x0D, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x48, 0x9A, 0xE0, 0xF1, 0x1C, 0x6C, 0x04, 0x05, +0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x52, 0x32, +0xA3, 0xF4, 0x54, 0xC0, 0x30, 0xF0, 0x20, 0x68, +0xA5, 0xF6, 0x08, 0x48, 0xA3, 0xF4, 0x52, 0xA0, +0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x48, 0x9A, 0xE0, 0xF1, 0x1D, 0x6C, 0x04, 0x05, +0x40, 0xEA, 0x9D, 0x67, 0x70, 0xA4, 0x03, 0x6A, +0x6C, 0xEA, 0xA3, 0xF4, 0x52, 0xC0, 0x30, 0xF0, +0x20, 0x68, 0xA5, 0xF6, 0x08, 0x48, 0xA3, 0xF4, +0x53, 0xA0, 0x0F, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, 0x1D, 0x6C, +0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, +0x30, 0x6B, 0x6C, 0xEA, 0x53, 0x32, 0xA3, 0xF4, +0x53, 0xC0, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x48, 0x99, 0xE0, 0xF1, 0x19, 0x6C, +0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, +0x30, 0xF0, 0x20, 0x68, 0xA5, 0xF6, 0x08, 0x48, +0x52, 0x32, 0xA3, 0xF4, 0x54, 0xC0, 0xC0, 0xF3, +0x48, 0x99, 0xE0, 0xF1, 0x1B, 0x6C, 0x04, 0x05, +0x40, 0xEA, 0x9D, 0x67, 0x70, 0xA4, 0x07, 0x6A, +0x6C, 0xEA, 0xA3, 0xF4, 0x50, 0xC0, 0x43, 0x67, +0x18, 0x6B, 0x4C, 0xEB, 0x6F, 0x33, 0xA3, 0xF4, +0x76, 0xC0, 0x4F, 0x72, 0x56, 0x33, 0xA3, 0xF4, +0x71, 0xC0, 0x0E, 0x61, 0xC0, 0xF3, 0x48, 0x99, +0xE0, 0xF1, 0x1A, 0x6C, 0x00, 0xF0, 0x11, 0x05, +0x40, 0xEA, 0x7D, 0x67, 0x51, 0xA3, 0x57, 0x72, +0x03, 0x61, 0x02, 0x6A, 0xA3, 0xF4, 0x56, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, +0xE0, 0xF1, 0x1D, 0x6C, 0x04, 0x05, 0x40, 0xEA, +0x7D, 0x67, 0x90, 0xA3, 0x0C, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x8C, 0xEB, 0xA5, 0xF6, 0x08, 0x4A, +0x6B, 0x33, 0x9A, 0x34, 0xA3, 0xF4, 0x72, 0xC2, +0xA3, 0xF4, 0x93, 0xC2, 0x80, 0x18, 0xA8, 0x5C, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, 0x5C, 0x9A, +0x60, 0xA2, 0xFF, 0x6A, 0x6C, 0xEA, 0xFD, 0x72, +0x02, 0x61, 0x80, 0x18, 0x83, 0x5C, 0x80, 0x18, +0x07, 0x5C, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF1, 0x54, 0x9A, 0x01, 0x6B, 0x60, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF1, 0x98, 0x9A, 0xFF, 0x6B, 0x20, 0x6D, +0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF5, +0x90, 0x9A, 0x08, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, +0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x60, 0x9A, +0xFD, 0x6A, 0xFF, 0x6C, 0xA0, 0xA3, 0xAC, 0xEA, +0x40, 0xC3, 0x40, 0xA3, 0x01, 0x6D, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, +0xA2, 0xF6, 0x94, 0x9B, 0x00, 0x6D, 0x02, 0xF0, +0x00, 0x6E, 0x40, 0xEA, 0x00, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xA2, 0xF6, 0x74, 0x9B, 0x54, 0x34, +0x01, 0x4A, 0x6D, 0xE4, 0x80, 0x72, 0x04, 0x6C, +0x80, 0xC3, 0xF5, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, 0x98, 0x9B, +0x80, 0xF2, 0x48, 0x9A, 0x00, 0x6D, 0x00, 0xF4, +0x00, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0xA5, 0xF6, 0x08, 0x4B, 0x52, 0x9B, 0x8D, 0xEA, +0x52, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, +0x64, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF1, 0x68, 0x9B, 0x40, 0xDB, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, +0xB2, 0x9B, 0x8F, 0xEA, 0xAC, 0xEA, 0x52, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0x68, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, +0x44, 0x9A, 0x80, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0x05, 0x5C, 0x5E, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x88, 0x34, 0x02, 0xF4, 0x0C, 0x4A, 0x89, 0xE2, +0x40, 0x9A, 0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA5, 0xF6, 0x48, 0x9B, 0xAD, 0xEA, 0xA5, 0xF6, +0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, +0x6C, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF1, 0x6C, 0x9B, 0x32, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, 0x41, 0x9B, +0xAD, 0xEA, 0x41, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF1, 0x70, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF1, 0x74, 0x9B, 0x21, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, +0x42, 0x9B, 0xAD, 0xEA, 0x42, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF1, 0x78, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0x7C, 0x9B, +0x10, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF6, +0x08, 0x4B, 0x43, 0x9B, 0xAD, 0xEA, 0x43, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF1, 0x60, 0x9B, +0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF1, +0x64, 0x9B, 0x40, 0xDB, 0x20, 0xE8, 0x30, 0xF0, +0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, 0x44, 0x9B, +0xAD, 0xEA, 0x44, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF1, 0x68, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF1, 0x6C, 0x9B, 0x40, 0xDB, +0x20, 0xE8, 0x00, 0x65, 0x05, 0x5C, 0x63, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, 0x22, 0xF4, +0x00, 0x4A, 0x89, 0xE2, 0x40, 0x9A, 0x00, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF6, 0x88, 0x9B, +0xAF, 0xEA, 0x8C, 0xEA, 0xA5, 0xF6, 0x48, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0x6C, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, +0x4C, 0x9A, 0x35, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xA5, 0xF6, 0x08, 0x4B, 0x81, 0x9B, 0xAF, 0xEA, +0x8C, 0xEA, 0x41, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF1, 0x74, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF1, 0x50, 0x9A, 0x23, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, +0x82, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x42, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0x7C, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, +0x58, 0x9A, 0x11, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xA5, 0xF6, 0x08, 0x4B, 0x83, 0x9B, 0xAF, 0xEA, +0x8C, 0xEA, 0x43, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF1, 0x64, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF1, 0x40, 0x9A, 0xA0, 0xDA, +0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF6, +0x08, 0x4B, 0x84, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, +0x44, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF1, +0x6C, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF1, 0x48, 0x9A, 0xA0, 0xDA, 0x20, 0xE8, +0x01, 0x74, 0x15, 0x60, 0x03, 0x24, 0x02, 0x74, +0x23, 0x60, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0xA5, 0xF6, 0x08, 0x4B, 0x54, 0x9B, 0xAD, 0xEA, +0x54, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, +0x60, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF1, 0x70, 0x9B, 0x21, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, 0x55, 0x9B, +0xAD, 0xEA, 0x55, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF1, 0x74, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF1, 0x78, 0x9B, 0x10, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, +0x56, 0x9B, 0xAD, 0xEA, 0x56, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF1, 0x7C, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF2, 0x60, 0x9B, +0x40, 0xDB, 0x20, 0xE8, 0x01, 0x74, 0x16, 0x60, +0x03, 0x24, 0x02, 0x74, 0x25, 0x60, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, +0x94, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x54, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF1, 0x70, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, +0x40, 0x9A, 0x23, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xA5, 0xF6, 0x08, 0x4B, 0x95, 0x9B, 0xAF, 0xEA, +0x8C, 0xEA, 0x55, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF1, 0x78, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF1, 0x54, 0x9A, 0x11, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF6, 0x08, 0x4B, +0x96, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x56, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF2, 0x60, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, +0x5C, 0x9A, 0xA0, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF1, 0x8C, 0x9C, +0x00, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xA5, 0xF6, +0x48, 0xDB, 0xA5, 0xF6, 0x08, 0x4B, 0x41, 0xDB, +0x42, 0xDB, 0x43, 0xDB, 0x44, 0xDB, 0x40, 0xDC, +0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF1, 0x94, 0x9C, +0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF1, +0x9C, 0x9C, 0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, +0xE3, 0xF1, 0x84, 0x9C, 0x40, 0xDC, 0x30, 0xF0, +0x20, 0x6C, 0xE3, 0xF1, 0x8C, 0x9C, 0x40, 0xDC, +0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF1, 0x90, 0x9C, +0x54, 0xDB, 0x55, 0xDB, 0x40, 0xDC, 0x30, 0xF0, +0x20, 0x6C, 0xE3, 0xF1, 0x98, 0x9C, 0x40, 0xDC, +0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF2, 0x80, 0x9C, +0x56, 0xDB, 0x40, 0xDC, 0x52, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF1, 0x68, 0x9B, 0x40, 0xDB, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF1, 0x6C, 0x9B, 0x01, 0x6A, 0x4B, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, +0x70, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF1, 0x78, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF1, 0x60, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF1, 0x68, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, +0x60, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF1, 0x74, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF1, 0x7C, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0x64, 0x9B, +0x40, 0xDB, 0x20, 0xE8, 0x1F, 0xF4, 0x0E, 0x6E, +0x30, 0xF0, 0x20, 0x6B, 0xCB, 0xEE, 0xA5, 0xF6, +0xC8, 0xDB, 0xE1, 0xF7, 0x1F, 0x6A, 0xA5, 0xF6, +0x08, 0x4B, 0x08, 0xF0, 0x00, 0x6D, 0x00, 0x6C, +0x42, 0xDB, 0x43, 0xDB, 0xA1, 0xDB, 0x84, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0x6C, 0x9B, +0xC0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, +0x74, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF1, 0x7C, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF1, 0x64, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, 0x4C, 0x9A, +0x80, 0xDA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0x00, 0x6B, 0x72, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x48, 0x9A, +0x60, 0xDA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF6, 0x90, 0x9B, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0xC6, 0x6D, 0xFF, 0x6B, +0xB4, 0xDA, 0x95, 0xDA, 0x76, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF1, 0x50, 0x9A, 0xA0, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, 0x58, 0x9A, +0x80, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, +0x40, 0x9A, 0x60, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xFC, 0x5D, +0x80, 0x18, 0x1B, 0x5E, 0x80, 0x18, 0x33, 0x5E, +0x80, 0x18, 0x4F, 0x5E, 0x80, 0x18, 0x49, 0x5E, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0x8B, 0x5E, 0x30, 0xF0, 0x20, 0x6B, +0xA5, 0xF6, 0x08, 0x4B, 0xE2, 0xF5, 0x4C, 0xC3, +0x00, 0x6A, 0xE2, 0xF5, 0x4D, 0xC3, 0x80, 0x18, +0x2C, 0x5D, 0x80, 0x18, 0xC2, 0x5F, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x44, 0x9A, 0x3F, 0x6B, +0x60, 0xC2, 0x80, 0x18, 0x1D, 0x5D, 0x80, 0x18, +0x21, 0x5D, 0x80, 0x18, 0x34, 0x5D, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x4B, 0xC6, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF2, 0x5C, 0x9A, 0xE0, 0xF1, 0x1B, 0x6B, +0x6B, 0xEB, 0x60, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0xC2, 0xF5, 0x70, 0x9A, 0xFB, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF2, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x83, 0xF1, 0x84, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, +0x40, 0xDB, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF5, 0x44, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, +0x40, 0xAA, 0x4C, 0xEB, 0x62, 0x33, 0x03, 0x6A, +0x72, 0x33, 0x4C, 0xEB, 0x02, 0x6A, 0x04, 0x23, +0x01, 0x73, 0x01, 0x6A, 0x01, 0x60, 0x03, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0x10, 0xF0, 0x23, 0x6A, +0x43, 0xF2, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x48, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x63, 0xF2, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x4C, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0xEF, 0xF1, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x50, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x27, 0xF2, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF2, 0x48, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0x43, 0xF1, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF2, 0x4C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x07, 0xF2, 0x09, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xE5, 0xF2, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF2, 0x50, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x68, 0xF3, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF2, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x68, 0xF4, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF2, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xC2, 0xF3, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF2, 0x58, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x02, 0xF5, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF2, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x25, 0xF1, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF3, 0x40, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xE4, 0xF2, 0x09, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF3, 0x44, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x24, 0xF3, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF3, 0x48, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x45, 0xF6, 0x09, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF3, 0x4C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xC3, 0xF4, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF4, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x03, 0xF7, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF4, 0x40, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x87, 0xF6, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF4, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x27, 0xF7, 0x09, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x40, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x44, 0xF4, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x44, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x02, 0xF0, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x58, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x28, 0xF0, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x22, 0xF0, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x50, 0xDB, 0x10, 0xF0, 0x30, 0x6A, +0xCC, 0xF6, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x03, 0xF2, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF3, 0x44, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x23, 0xF2, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF3, 0x4C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x03, 0xF2, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF3, 0x48, 0xDB, 0x10, 0xF0, 0x30, 0x6A, +0x4D, 0xF4, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF3, 0x40, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0x08, 0xF5, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF6, 0x50, 0xDB, 0x10, 0xF0, 0x30, 0x6A, +0x21, 0xF6, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF6, 0x54, 0xDB, 0x10, 0xF0, 0x30, 0x6A, +0x62, 0xF7, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF6, 0x58, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x45, 0xF7, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF6, 0x5C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x88, 0xF4, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC9, 0xF0, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF6, 0x64, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0xC9, 0xF0, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC9, 0xF1, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x4C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x09, 0xF2, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x50, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x69, 0xF3, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF6, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x21, 0xF0, 0x00, 0x4B, 0x80, 0xF2, 0x08, 0x4A, +0x13, 0x10, 0x80, 0x9A, 0x10, 0x2C, 0x30, 0xF0, +0x20, 0x6C, 0xE2, 0xF5, 0xB4, 0x9C, 0x30, 0xF0, +0x20, 0x6E, 0x62, 0xF5, 0xDC, 0x9E, 0x80, 0x9D, +0xCD, 0xEC, 0x80, 0xDD, 0x30, 0xF0, 0x20, 0x6C, +0x42, 0xF5, 0x94, 0x9C, 0x40, 0xDC, 0x04, 0x4A, +0x43, 0xEB, 0xEB, 0x60, 0x20, 0xE8, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0xF7, 0x1F, 0x69, 0x2C, 0xED, 0x30, 0xF0, +0x20, 0x6B, 0x04, 0xD5, 0xE3, 0xF2, 0xA8, 0x9B, +0xFF, 0x6A, 0x40, 0x6E, 0x60, 0xA5, 0xCB, 0xEE, +0x4C, 0xEC, 0x4C, 0xEB, 0xCC, 0xEB, 0x6D, 0xEC, +0x4C, 0xEC, 0x80, 0xC5, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x4C, 0x9A, +0x00, 0xAA, 0x04, 0x92, 0x2C, 0xE8, 0x2A, 0xEA, +0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, +0x44, 0x9A, 0x04, 0x94, 0x40, 0xEA, 0x04, 0x93, +0x2C, 0xEA, 0x6C, 0xE8, 0x07, 0xEA, 0x2C, 0xE8, +0x50, 0x67, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0xF7, 0x1F, 0x69, +0x2C, 0xED, 0xFF, 0x68, 0x0C, 0xEC, 0x2C, 0xEE, +0x2A, 0xED, 0x05, 0xD4, 0x04, 0xD5, 0x06, 0xD6, +0x1F, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, +0x68, 0x9A, 0x40, 0x6C, 0x8B, 0xEC, 0x40, 0xA3, +0x0C, 0xEA, 0x8C, 0xEA, 0x05, 0x94, 0x8D, 0xEA, +0x0C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF2, 0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x63, 0xF0, 0x84, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF5, 0x9C, 0x9C, +0x8D, 0xEA, 0xCD, 0xEA, 0x40, 0xDB, 0x34, 0x10, +0x05, 0x94, 0xB1, 0x67, 0x80, 0x18, 0x3E, 0x5F, +0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x94, +0xA0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF2, 0x88, 0x9B, 0x40, 0x6D, +0xAB, 0xED, 0x60, 0xA4, 0x2C, 0xEA, 0x0C, 0xEB, +0xAC, 0xEB, 0x05, 0x95, 0xAD, 0xEB, 0x0C, 0xEB, +0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, +0x8C, 0x9B, 0x30, 0xF0, 0x20, 0x6D, 0x63, 0xF0, +0xA4, 0x9D, 0x60, 0x9C, 0x06, 0x96, 0xAC, 0xEB, +0x30, 0xF0, 0x20, 0x6D, 0x42, 0xF5, 0xBC, 0x9D, +0xC4, 0xEA, 0x46, 0x67, 0xAD, 0xEB, 0x04, 0x95, +0x07, 0x96, 0xAC, 0xEA, 0xAF, 0xED, 0xCC, 0xED, +0xAD, 0xEA, 0x2C, 0xEA, 0x4D, 0xEB, 0x60, 0xDC, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x0A, 0x6C, 0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x6C, 0x10, 0xF0, +0x00, 0x6D, 0x80, 0x18, 0x3E, 0x5F, 0x05, 0x97, +0x01, 0x5A, 0x58, 0x67, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF4, 0x6C, 0x9B, 0x10, 0xF0, +0x31, 0x6A, 0x4F, 0xF6, 0x19, 0x4A, 0x40, 0xDB, +0x00, 0x68, 0x31, 0x10, 0x82, 0xF3, 0x08, 0x70, +0x1A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, +0x74, 0x9A, 0x02, 0xF0, 0x00, 0x6C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA5, 0xF6, 0x08, 0x4A, 0x63, 0xF3, 0x64, 0x9A, +0x8D, 0xEB, 0x63, 0xF3, 0x64, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0xA2, 0xF5, 0x5C, 0x9A, 0x03, 0x6B, +0x6B, 0xEB, 0x60, 0xC2, 0x18, 0x10, 0xFF, 0xF7, +0x1F, 0x6A, 0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, +0x40, 0xEA, 0x33, 0x58, 0x08, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF1, 0x48, 0x9A, 0x60, 0xA2, +0x08, 0x6A, 0x6C, 0xEA, 0x04, 0x2A, 0x80, 0x18, +0x90, 0x5F, 0x01, 0x72, 0xCB, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xA2, 0xF5, 0x5C, 0x9A, 0x02, 0x6B, +0x6B, 0xEB, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF4, 0x6C, 0x9B, 0x10, 0xF0, 0x31, 0x6A, +0x4F, 0xF6, 0x1A, 0x4A, 0x40, 0xDB, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF2, 0x70, 0x9A, 0x02, 0x6C, +0xFF, 0xF7, 0x1F, 0x6D, 0x40, 0x9B, 0xFF, 0x6E, +0x41, 0x4E, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF5, 0x64, 0x9A, 0xE0, 0xF3, +0x1E, 0x4C, 0x30, 0xF0, 0x20, 0x68, 0x40, 0xAB, +0xAC, 0xEA, 0x8D, 0xEA, 0xAC, 0xEA, 0x40, 0xCB, +0x02, 0x6C, 0x80, 0x18, 0x59, 0x5F, 0x80, 0xF3, +0x4C, 0x98, 0x0A, 0x6C, 0x40, 0xEA, 0x00, 0x6C, +0xC0, 0x6D, 0x02, 0x6E, 0x80, 0x18, 0x59, 0x5F, +0x00, 0x6C, 0xC4, 0x67, 0x02, 0xF0, 0x00, 0x6D, +0x80, 0x18, 0x59, 0x5F, 0x00, 0x6C, 0xC4, 0x67, +0x0C, 0xF0, 0x00, 0x6D, 0x80, 0x18, 0x59, 0x5F, +0x00, 0x6C, 0x01, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x80, 0x18, 0x59, 0x5F, 0x10, 0xF0, 0x00, 0x6D, +0x01, 0x6E, 0x00, 0x6C, 0x80, 0x18, 0x59, 0x5F, +0x80, 0xF3, 0x4C, 0x98, 0x0A, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x74, 0x9A, +0xFF, 0x6C, 0x04, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xC9, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +u32 array_length_mp_8822c_fw_ap = 128912; + +#endif /*defined(CONFIG_AP_WOWLAN) || (DM_ODM_SUPPORT_TYPE & (ODM_AP))*/ + +#if (DM_ODM_SUPPORT_TYPE & (ODM_WIN)) || (DM_ODM_SUPPORT_TYPE & (ODM_CE)) + +u8 array_mp_8822c_fw_nic[] = { +0x22, 0x88, 0x00, 0x00, 0x09, 0x00, 0x0D, 0x00, +0x0F, 0x12, 0x23, 0xA2, 0x00, 0x00, 0x00, 0x00, +0x09, 0x18, 0x0F, 0x16, 0xE5, 0x07, 0x00, 0x00, +0x18, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, +0x00, 0x00, 0x20, 0x80, 0x20, 0x46, 0x00, 0x00, +0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0xA8, 0xCE, 0x00, 0x00, 0x38, 0xE7, 0x01, 0x00, +0x00, 0x00, 0x10, 0x80, 0x00, 0x00, 0x03, 0x80, +0x00, 0x00, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, +0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, +0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, +0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, +0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, +0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, +0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, +0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +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, 0x01, 0xFE, 0x03, 0x01, 0x01, 0xFE, +0x03, 0x02, 0x01, 0xFE, 0x03, 0x03, 0x01, 0xFE, +0x03, 0x04, 0x01, 0xFE, 0x03, 0x05, 0x01, 0xFE, +0x03, 0x06, 0x01, 0xFE, 0x03, 0x07, 0x01, 0xFE, +0x48, 0x0A, 0x20, 0x80, 0x06, 0x00, 0x00, 0x00, +0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, +0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, +0x01, 0x00, 0x03, 0x80, 0x99, 0x01, 0x03, 0x80, +0x99, 0x01, 0x03, 0x80, 0x08, 0x00, 0x00, 0x00, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xE0, +0x4C, 0x81, 0x92, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x8D, +0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x07, 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, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x59, 0x53, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, +0x00, 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, 0x55, 0x55, 0x03, 0x80, +0x01, 0x00, 0x00, 0x00, 0x00, 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, +0x28, 0x46, 0x20, 0x80, 0x01, 0x00, 0x00, 0x00, +0x02, 0x00, 0x00, 0x00, 0x20, 0x05, 0x00, 0x00, +0x50, 0x05, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, +0x20, 0x08, 0x00, 0x00, 0x24, 0x08, 0x00, 0x00, +0x38, 0x1C, 0x00, 0x00, 0x68, 0x1C, 0x00, 0x00, +0x60, 0x1D, 0x00, 0x00, 0x0C, 0x18, 0x00, 0x00, +0x0C, 0x41, 0x00, 0x00, 0x3C, 0x1C, 0x00, 0x00, +0x14, 0x1A, 0x00, 0x00, 0x58, 0x1D, 0x00, 0x00, +0x70, 0x1D, 0x00, 0x00, 0x64, 0x18, 0x00, 0x00, +0x64, 0x41, 0x00, 0x00, 0x6C, 0x18, 0x00, 0x00, +0x6C, 0x41, 0x00, 0x00, 0x14, 0x1A, 0x00, 0x00, +0x70, 0x1E, 0x00, 0x00, 0x0C, 0x08, 0x00, 0x00, +0x7C, 0x1E, 0x00, 0x00, 0xA4, 0x18, 0x00, 0x00, +0xA4, 0x41, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, +0xDF, 0x00, 0x00, 0x00, 0x9E, 0x00, 0x00, 0x00, +0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, +0x00, 0x00, 0x30, 0x8D, 0x00, 0x12, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 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, +0x08, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x59, 0x36, 0x03, 0x80, 0x65, 0x36, 0x03, 0x80, +0x6B, 0x36, 0x03, 0x80, 0x71, 0x36, 0x03, 0x80, +0x79, 0x36, 0x03, 0x80, 0xAB, 0x36, 0x03, 0x80, +0xB7, 0x36, 0x03, 0x80, 0xBD, 0x36, 0x03, 0x80, +0xC3, 0x36, 0x03, 0x80, 0xCB, 0x36, 0x03, 0x80, +0x0D, 0x37, 0x03, 0x80, 0x13, 0x37, 0x03, 0x80, +0x1F, 0x37, 0x03, 0x80, 0x2B, 0x37, 0x03, 0x80, +0x37, 0x37, 0x03, 0x80, 0x5B, 0x37, 0x03, 0x80, +0x61, 0x37, 0x03, 0x80, 0x6D, 0x37, 0x03, 0x80, +0x79, 0x37, 0x03, 0x80, 0x85, 0x37, 0x03, 0x80, +0x1D, 0x39, 0x03, 0x80, 0x07, 0x3A, 0x03, 0x80, +0x7F, 0x39, 0x03, 0x80, 0x07, 0x3A, 0x03, 0x80, +0xC3, 0x38, 0x03, 0x80, 0x07, 0x3A, 0x03, 0x80, +0x07, 0x3A, 0x03, 0x80, 0x07, 0x3A, 0x03, 0x80, +0xE9, 0x39, 0x03, 0x80, 0x07, 0x3A, 0x03, 0x80, +0x07, 0x3A, 0x03, 0x80, 0x07, 0x3A, 0x03, 0x80, +0x5B, 0x38, 0x03, 0x80, 0x0C, 0x1D, 0x00, 0x00, +0x3C, 0x1C, 0x00, 0x00, 0x90, 0x1C, 0x00, 0x00, +0xB0, 0x09, 0x00, 0x00, 0x20, 0x0A, 0x00, 0x00, +0x2C, 0x0A, 0x00, 0x00, 0x14, 0x0C, 0x00, 0x00, +0x38, 0x0C, 0x00, 0x00, 0x44, 0x0C, 0x00, 0x00, +0x54, 0x0C, 0x00, 0x00, 0x58, 0x1D, 0x00, 0x00, +0x90, 0x1D, 0x00, 0x00, 0x94, 0x1D, 0x00, 0x00, +0x24, 0x1E, 0x00, 0x00, 0x28, 0x1E, 0x00, 0x00, +0x2C, 0x1E, 0x00, 0x00, 0x8C, 0x1E, 0x00, 0x00, +0xB0, 0x1E, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, +0x24, 0x40, 0x00, 0x00, 0x28, 0x40, 0x00, 0x00, +0x2C, 0x40, 0x00, 0x00, 0x50, 0x40, 0x00, 0x00, +0x00, 0x1C, 0x66, 0xB8, 0x08, 0x00, 0x00, 0x00, +0x00, 0x01, 0x64, 0xB8, 0x20, 0x00, 0x00, 0x00, +0xA0, 0x01, 0x64, 0xB8, 0x28, 0x00, 0x00, 0x00, +0x00, 0x02, 0x64, 0xB8, 0xF0, 0x00, 0x00, 0x00, +0x20, 0x04, 0x64, 0xB8, 0x29, 0x01, 0x00, 0x00, +0x74, 0x05, 0x64, 0xB8, 0x8C, 0x02, 0x00, 0x00, +0x20, 0x14, 0x64, 0xB8, 0xC0, 0x00, 0x00, 0x00, +0x00, 0x15, 0x64, 0xB8, 0xD4, 0x00, 0x00, 0x00, +0x00, 0x16, 0x64, 0xB8, 0xC8, 0x00, 0x00, 0x00, +0x00, 0x08, 0x64, 0xB8, 0xFC, 0x00, 0x00, 0x00, +0xB0, 0x09, 0x64, 0xB8, 0x4C, 0x04, 0x00, 0x00, +0x00, 0x18, 0x64, 0xB8, 0xFC, 0x01, 0x00, 0x00, +0x00, 0x1C, 0x64, 0xB8, 0xFC, 0x02, 0x00, 0x00, +0x00, 0x3A, 0x64, 0xB8, 0xA8, 0x00, 0x00, 0x00, +0x00, 0x40, 0x64, 0xB8, 0x00, 0x02, 0x00, 0x00, +0x00, 0x1A, 0x64, 0xB8, 0x00, 0x01, 0x00, 0x00, +0xA8, 0x06, 0x10, 0x07, 0x00, 0x16, 0x04, 0x16, +0x08, 0x16, 0x00, 0x00, 0xA8, 0x06, 0x10, 0x07, +0x00, 0x16, 0x04, 0x16, 0x08, 0x16, 0x00, 0x00, +0xA8, 0x06, 0x10, 0x07, 0x00, 0x16, 0x04, 0x16, +0x08, 0x16, 0x00, 0x00, 0x50, 0x05, 0x51, 0x05, +0x78, 0x05, 0x79, 0x05, 0x7A, 0x05, 0x00, 0x00, +0xA8, 0x06, 0x10, 0x07, 0x00, 0x16, 0x04, 0x16, +0x08, 0x16, 0x00, 0x00, 0x77, 0x51, 0x03, 0x80, +0x71, 0x51, 0x03, 0x80, 0x7D, 0x51, 0x03, 0x80, +0x83, 0x51, 0x03, 0x80, 0x89, 0x51, 0x03, 0x80, +0x8F, 0x51, 0x03, 0x80, 0x09, 0x12, 0x1B, 0x24, +0x94, 0x0C, 0x94, 0x0E, 0x94, 0x18, 0x94, 0x1A, +0xBD, 0x19, 0x11, 0x80, 0x23, 0x1A, 0x11, 0x80, +0xC5, 0x19, 0x11, 0x80, 0xFD, 0x19, 0x11, 0x80, +0x23, 0x1A, 0x11, 0x80, 0x23, 0x1A, 0x11, 0x80, +0xCD, 0x19, 0x11, 0x80, 0xD5, 0x19, 0x11, 0x80, +0xDD, 0x19, 0x11, 0x80, 0xE5, 0x19, 0x11, 0x80, +0x23, 0x1A, 0x11, 0x80, 0xF5, 0x19, 0x11, 0x80, +0x0D, 0x1A, 0x11, 0x80, 0x15, 0x1A, 0x11, 0x80, +0xED, 0x19, 0x11, 0x80, 0x1D, 0x1A, 0x11, 0x80, +0x23, 0x1A, 0x11, 0x80, 0x23, 0x1A, 0x11, 0x80, +0x05, 0x1A, 0x11, 0x80, 0x04, 0x08, 0x08, 0x08, +0x08, 0x08, 0x0A, 0x0A, 0x0A, 0x00, 0x00, 0x00, +0x00, 0x04, 0x0C, 0x14, 0x1C, 0x24, 0x2C, 0x36, +0x40, 0x00, 0x00, 0x00, 0x77, 0x38, 0x11, 0x80, +0x8F, 0x38, 0x11, 0x80, 0x77, 0x38, 0x11, 0x80, +0x8F, 0x38, 0x11, 0x80, 0x77, 0x38, 0x11, 0x80, +0x8F, 0x38, 0x11, 0x80, 0x9B, 0x38, 0x11, 0x80, +0x9B, 0x38, 0x11, 0x80, 0x9B, 0x38, 0x11, 0x80, +0x77, 0x38, 0x11, 0x80, 0x8F, 0x38, 0x11, 0x80, +0x8F, 0x38, 0x11, 0x80, 0x77, 0x38, 0x11, 0x80, +0xA1, 0x38, 0x11, 0x80, 0xA1, 0x38, 0x11, 0x80, +0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, +0x0F, 0x10, 0x00, 0x00, 0x12, 0x12, 0x14, 0x12, +0x0F, 0x0F, 0x0C, 0x0C, 0x09, 0x08, 0x08, 0x07, +0x0A, 0x0A, 0x09, 0x07, 0x07, 0x06, 0x05, 0x04, +0x0C, 0x0C, 0x0A, 0x0A, 0x09, 0x07, 0x07, 0x06, +0x0C, 0x0C, 0x0A, 0x0A, 0x09, 0x07, 0x07, 0x06, +0x0C, 0x0C, 0x0A, 0x0A, 0x09, 0x07, 0x07, 0x06, +0x0A, 0x0A, 0x08, 0x08, 0x08, 0x07, 0x07, 0x06, +0x04, 0x04, 0x0C, 0x0C, 0x0A, 0x0A, 0x09, 0x07, +0x07, 0x06, 0x05, 0x04, 0x0C, 0x0C, 0x0A, 0x0A, +0x09, 0x07, 0x07, 0x05, 0x04, 0x04, 0x0A, 0x0A, +0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, +0x28, 0x28, 0x32, 0x28, 0x1E, 0x19, 0x19, 0x19, +0x18, 0x18, 0x12, 0x0F, 0x14, 0x1E, 0x19, 0x1E, +0x18, 0x16, 0x0C, 0x0C, 0x1E, 0x1E, 0x19, 0x1E, +0x18, 0x16, 0x0C, 0x0C, 0x1E, 0x1E, 0x19, 0x1C, +0x18, 0x14, 0x0C, 0x0A, 0x1E, 0x1E, 0x19, 0x1E, +0x19, 0x18, 0x0F, 0x0E, 0x14, 0x28, 0x21, 0x1E, +0x1A, 0x16, 0x0B, 0x10, 0x0A, 0x0A, 0x2D, 0x28, +0x21, 0x1E, 0x1A, 0x16, 0x0B, 0x10, 0x0A, 0x0A, +0x1E, 0x1E, 0x1E, 0x1E, 0x18, 0x16, 0x0D, 0x0D, +0x0A, 0x08, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, +0x0A, 0x0A, 0x0A, 0x0A, 0x4A, 0x40, 0x36, 0x2C, +0x24, 0x1C, 0x14, 0x0C, 0x04, 0x00, 0x00, 0x00, +0x09, 0x52, 0x10, 0x80, 0xDD, 0x52, 0x10, 0x80, +0x19, 0x52, 0x10, 0x80, 0x4F, 0x52, 0x10, 0x80, +0x8B, 0x52, 0x10, 0x80, 0xDD, 0x52, 0x10, 0x80, +0x27, 0x53, 0x10, 0x80, 0x3F, 0x53, 0x10, 0x80, +0x4B, 0x53, 0x10, 0x80, 0x7D, 0x53, 0x10, 0x80, +0xAF, 0x53, 0x10, 0x80, 0xBF, 0x53, 0x10, 0x80, +0x09, 0x12, 0x1B, 0x24, 0x5B, 0x7D, 0x10, 0x80, +0xB7, 0x7D, 0x10, 0x80, 0xDB, 0x7D, 0x10, 0x80, +0x0B, 0x7E, 0x10, 0x80, 0x2F, 0x7E, 0x10, 0x80, +0x57, 0x7E, 0x10, 0x80, 0x19, 0x00, 0x00, 0x00, +0x1A, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, +0x63, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, +0x8F, 0x00, 0x00, 0x00, 0xDE, 0x00, 0x00, 0x00, +0x20, 0x05, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, +0x24, 0x08, 0x00, 0x00, 0x3C, 0x1C, 0x00, 0x00, +0x58, 0x1D, 0x00, 0x00, 0x64, 0x18, 0x00, 0x00, +0x64, 0x41, 0x00, 0x00, 0x0C, 0x18, 0x00, 0x00, +0x0C, 0x41, 0x00, 0x00, 0x6C, 0x18, 0x00, 0x00, +0x6C, 0x41, 0x00, 0x00, 0x14, 0x1A, 0x00, 0x00, +0x70, 0x1E, 0x00, 0x00, 0x0C, 0x08, 0x00, 0x00, +0x70, 0x1D, 0x00, 0x00, 0x7C, 0x1E, 0x00, 0x00, +0xA4, 0x18, 0x00, 0x00, 0xA4, 0x41, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xB0, 0x01, 0x00, 0x00, +0x4C, 0x01, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, +0xE8, 0x00, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00, +0xAE, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, +0x84, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, +0x64, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, +0x4A, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, +0x33, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, +0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, +0x0F, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xC7, 0x68, 0x11, 0x80, +0x4B, 0x6A, 0x11, 0x80, 0x2D, 0x6B, 0x11, 0x80, +0x93, 0x6B, 0x11, 0x80, 0x93, 0x6B, 0x11, 0x80, +0xC7, 0x68, 0x11, 0x80, 0xC7, 0x68, 0x11, 0x80, +0x63, 0x6F, 0x6E, 0x66, 0x69, 0x67, 0x5F, 0x70, +0x68, 0x79, 0x64, 0x6D, 0x5F, 0x70, 0x61, 0x72, +0x61, 0x6D, 0x65, 0x74, 0x65, 0x72, 0x5F, 0x69, +0x6E, 0x69, 0x74, 0x5F, 0x38, 0x38, 0x32, 0x32, +0x63, 0x00, 0x00, 0x00, 0x63, 0x6F, 0x6E, 0x66, +0x69, 0x67, 0x5F, 0x70, 0x68, 0x79, 0x64, 0x6D, +0x5F, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5F, +0x62, 0x61, 0x6E, 0x64, 0x77, 0x69, 0x64, 0x74, +0x68, 0x5F, 0x38, 0x38, 0x32, 0x32, 0x63, 0x00, +0x63, 0x6F, 0x6E, 0x66, 0x69, 0x67, 0x5F, 0x70, +0x68, 0x79, 0x64, 0x6D, 0x5F, 0x73, 0x77, 0x69, +0x74, 0x63, 0x68, 0x5F, 0x63, 0x68, 0x61, 0x6E, +0x6E, 0x65, 0x6C, 0x5F, 0x38, 0x38, 0x32, 0x32, +0x63, 0x00, 0x00, 0x00, 0x70, 0x68, 0x79, 0x64, +0x6D, 0x5F, 0x63, 0x63, 0x6B, 0x5F, 0x72, 0x78, +0x69, 0x71, 0x5F, 0x38, 0x38, 0x32, 0x32, 0x63, +0x00, 0x00, 0x00, 0x00, 0x63, 0x6F, 0x6E, 0x66, +0x69, 0x67, 0x5F, 0x70, 0x68, 0x79, 0x64, 0x6D, +0x5F, 0x74, 0x72, 0x78, 0x5F, 0x6D, 0x6F, 0x64, +0x65, 0x5F, 0x38, 0x38, 0x32, 0x32, 0x63, 0x00, +0x63, 0x6F, 0x6E, 0x66, 0x69, 0x67, 0x5F, 0x70, +0x68, 0x79, 0x64, 0x6D, 0x5F, 0x72, 0x65, 0x61, +0x64, 0x5F, 0x74, 0x78, 0x61, 0x67, 0x63, 0x5F, +0x38, 0x38, 0x32, 0x32, 0x63, 0x00, 0x00, 0x00, +0x63, 0x6F, 0x6E, 0x66, 0x69, 0x67, 0x5F, 0x70, +0x68, 0x79, 0x64, 0x6D, 0x5F, 0x77, 0x72, 0x69, +0x74, 0x65, 0x5F, 0x74, 0x78, 0x61, 0x67, 0x63, +0x5F, 0x64, 0x69, 0x66, 0x66, 0x5F, 0x38, 0x38, +0x32, 0x32, 0x63, 0x00, 0x63, 0x6F, 0x6E, 0x66, +0x69, 0x67, 0x5F, 0x70, 0x68, 0x79, 0x64, 0x6D, +0x5F, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5F, 0x74, +0x78, 0x61, 0x67, 0x63, 0x5F, 0x72, 0x65, 0x66, +0x5F, 0x38, 0x38, 0x32, 0x32, 0x63, 0x00, 0x00, +0x63, 0x6F, 0x6E, 0x66, 0x69, 0x67, 0x5F, 0x70, +0x68, 0x79, 0x64, 0x6D, 0x5F, 0x77, 0x72, 0x69, +0x74, 0x65, 0x5F, 0x72, 0x66, 0x5F, 0x72, 0x65, +0x67, 0x5F, 0x38, 0x38, 0x32, 0x32, 0x63, 0x00, +0x63, 0x6F, 0x6E, 0x66, 0x69, 0x67, 0x5F, 0x70, +0x68, 0x79, 0x64, 0x6D, 0x5F, 0x64, 0x69, 0x72, +0x65, 0x63, 0x74, 0x5F, 0x77, 0x72, 0x69, 0x74, +0x65, 0x5F, 0x72, 0x66, 0x5F, 0x72, 0x65, 0x67, +0x5F, 0x38, 0x38, 0x32, 0x32, 0x63, 0x00, 0x00, +0x63, 0x6F, 0x6E, 0x66, 0x69, 0x67, 0x5F, 0x70, +0x68, 0x79, 0x64, 0x6D, 0x5F, 0x72, 0x65, 0x61, +0x64, 0x5F, 0x72, 0x66, 0x5F, 0x72, 0x65, 0x67, +0x5F, 0x38, 0x38, 0x32, 0x32, 0x63, 0x00, 0x00, +0x70, 0x68, 0x79, 0x64, 0x6D, 0x5F, 0x63, 0x68, +0x6B, 0x5F, 0x70, 0x6B, 0x67, 0x5F, 0x73, 0x65, +0x74, 0x5F, 0x76, 0x61, 0x6C, 0x69, 0x64, 0x5F, +0x38, 0x38, 0x32, 0x32, 0x63, 0x00, 0x00, 0x00, +0xED, 0x84, 0x11, 0x80, 0xE9, 0x84, 0x11, 0x80, +0xF3, 0x84, 0x11, 0x80, 0xF7, 0x84, 0x11, 0x80, +0xFB, 0x84, 0x11, 0x80, 0x01, 0x85, 0x11, 0x80, +0x09, 0x85, 0x11, 0x80, 0x33, 0x85, 0x11, 0x80, +0x61, 0x85, 0x11, 0x80, 0x67, 0x85, 0x11, 0x80, +0xB3, 0x85, 0x11, 0x80, 0xC1, 0x85, 0x11, 0x80, +0xD9, 0x85, 0x11, 0x80, 0xFB, 0x85, 0x11, 0x80, +0x29, 0xD9, 0x11, 0x80, 0x4B, 0xD9, 0x11, 0x80, +0x6D, 0xD9, 0x11, 0x80, 0x8F, 0xD9, 0x11, 0x80, +0xB3, 0xD9, 0x11, 0x80, 0xED, 0xD9, 0x11, 0x80, +0x11, 0xDA, 0x11, 0x80, 0x35, 0xDA, 0x11, 0x80, +0x59, 0xDA, 0x11, 0x80, 0x7F, 0xDA, 0x11, 0x80, +0x01, 0x01, 0x04, 0x10, 0x40, 0x00, 0x00, 0x00, +0xE0, 0x04, 0xE3, 0x04, 0xE3, 0x04, 0xE3, 0x04, +0xE3, 0x04, 0x00, 0x00, 0x45, 0x93, 0x11, 0x80, +0x45, 0x93, 0x11, 0x80, 0x45, 0x93, 0x11, 0x80, +0x5F, 0x93, 0x11, 0x80, 0x45, 0x93, 0x11, 0x80, +0x45, 0x93, 0x11, 0x80, 0x45, 0x93, 0x11, 0x80, +0x41, 0x93, 0x11, 0x80, 0x41, 0x93, 0x11, 0x80, +0x41, 0x93, 0x11, 0x80, 0x41, 0x93, 0x11, 0x80, +0x41, 0x93, 0x11, 0x80, 0xCF, 0x93, 0x11, 0x80, +0xD9, 0x93, 0x11, 0x80, 0xA8, 0x06, 0x10, 0x07, +0x00, 0x16, 0x04, 0x16, 0x08, 0x16, 0x00, 0x00, +0x18, 0x06, 0x08, 0x07, 0x28, 0x16, 0x38, 0x16, +0x48, 0x16, 0x00, 0x00, 0x47, 0x94, 0x03, 0x80, +0x57, 0x94, 0x03, 0x80, 0x61, 0x94, 0x03, 0x80, +0x6B, 0x94, 0x03, 0x80, 0x7D, 0x94, 0x03, 0x80, +0xD1, 0xB1, 0x03, 0x80, 0xCD, 0xB1, 0x03, 0x80, +0xD1, 0xB1, 0x03, 0x80, 0xCD, 0xB1, 0x03, 0x80, +0xF1, 0xB1, 0x03, 0x80, 0xCD, 0xB1, 0x03, 0x80, +0xF1, 0xB1, 0x03, 0x80, 0xCD, 0xB1, 0x03, 0x80, +0x11, 0xB2, 0x03, 0x80, 0xCD, 0xB1, 0x03, 0x80, +0x11, 0xB2, 0x03, 0x80, 0xCD, 0xB1, 0x03, 0x80, +0x31, 0xB2, 0x03, 0x80, 0xCD, 0xB1, 0x03, 0x80, +0x31, 0xB2, 0x03, 0x80, 0x39, 0xB3, 0x03, 0x80, +0x39, 0xB3, 0x03, 0x80, 0x39, 0xB3, 0x03, 0x80, +0x39, 0xB3, 0x03, 0x80, 0x59, 0xB3, 0x03, 0x80, +0x59, 0xB3, 0x03, 0x80, 0x59, 0xB3, 0x03, 0x80, +0x59, 0xB3, 0x03, 0x80, 0x79, 0xB3, 0x03, 0x80, +0x79, 0xB3, 0x03, 0x80, 0x79, 0xB3, 0x03, 0x80, +0x79, 0xB3, 0x03, 0x80, 0x99, 0xB3, 0x03, 0x80, +0x99, 0xB3, 0x03, 0x80, 0x99, 0xB3, 0x03, 0x80, +0x99, 0xB3, 0x03, 0x80, 0x50, 0x05, 0x00, 0x00, +0x51, 0x05, 0x00, 0x00, 0x78, 0x05, 0x00, 0x00, +0x79, 0x05, 0x00, 0x00, 0x7A, 0x05, 0x00, 0x00, +0x50, 0x05, 0x00, 0x00, 0x51, 0x05, 0x00, 0x00, +0x78, 0x05, 0x00, 0x00, 0x79, 0x05, 0x00, 0x00, +0x7A, 0x05, 0x00, 0x00, 0x13, 0xC1, 0x11, 0x80, +0x63, 0xC1, 0x11, 0x80, 0xBB, 0xC1, 0x11, 0x80, +0x13, 0xC2, 0x11, 0x80, 0x79, 0xC2, 0x11, 0x80, +0xE3, 0xC7, 0x11, 0x80, 0x0B, 0xC8, 0x11, 0x80, +0x31, 0xC8, 0x11, 0x80, 0x57, 0xC8, 0x11, 0x80, +0x7D, 0xC8, 0x11, 0x80, 0x27, 0xBB, 0x03, 0x80, +0x87, 0xBB, 0x03, 0x80, 0x1B, 0xBC, 0x03, 0x80, +0xB9, 0xBC, 0x03, 0x80, 0x5D, 0xBD, 0x03, 0x80, +0xFC, 0x10, 0x60, 0xB8, 0xFA, 0xFA, 0xFA, 0xFA, +0xCF, 0x01, 0x64, 0xB8, 0x8C, 0x04, 0x64, 0xB8, +0x90, 0x04, 0x64, 0xB8, 0x94, 0x04, 0x64, 0xB8, +0x98, 0x04, 0x64, 0xB8, 0x9C, 0x04, 0x64, 0xB8, +0xA0, 0x04, 0x64, 0xB8, 0x01, 0x06, 0x64, 0xB8, +0xDD, 0xCC, 0xBB, 0xAA, 0x00, 0x00, 0x68, 0xB8, +0x04, 0x00, 0x68, 0xB8, 0x77, 0x05, 0x64, 0xB8, +0x6C, 0x05, 0x64, 0xB8, 0x68, 0x05, 0x64, 0xB8, +0x54, 0x05, 0x64, 0xB8, 0x00, 0x00, 0x00, 0x80, +0x70, 0x06, 0x64, 0xB8, 0x78, 0x06, 0x64, 0xB8, +0x00, 0x00, 0x01, 0x80, 0x74, 0x06, 0x64, 0xB8, +0x98, 0x06, 0x64, 0xB8, 0x9C, 0x06, 0x64, 0xB8, +0x54, 0x06, 0x64, 0xB8, 0x58, 0x06, 0x64, 0xB8, +0x5C, 0x06, 0x64, 0xB8, 0xFF, 0xFF, 0xFF, 0x8F, +0x00, 0x00, 0x60, 0xB8, 0x00, 0x00, 0x64, 0xB8, +0xBF, 0x01, 0x64, 0xB8, 0x89, 0x00, 0x60, 0xB8, +0x8A, 0x00, 0x60, 0xB8, 0x1A, 0x04, 0x64, 0xB8, +0x1B, 0x04, 0x64, 0xB8, 0xF4, 0x11, 0x64, 0xB8, +0x58, 0x05, 0x64, 0xB8, 0xE2, 0x10, 0x60, 0xB8, +0x30, 0x01, 0x64, 0xB8, 0x20, 0x01, 0x64, 0xB8, +0x20, 0x11, 0x64, 0xB8, 0x01, 0x8F, 0x00, 0xF0, +0x28, 0x11, 0x64, 0xB8, 0x30, 0x11, 0x64, 0xB8, +0x38, 0x11, 0x64, 0xB8, 0xE0, 0x11, 0x64, 0xB8, +0x50, 0x00, 0x60, 0xB8, 0x38, 0x01, 0x64, 0xB8, +0x18, 0x34, 0x00, 0xB8, 0x88, 0x10, 0x60, 0xB8, +0xFB, 0x11, 0x64, 0xB8, 0xFA, 0x11, 0x64, 0xB8, +0xF8, 0x11, 0x64, 0xB8, 0xC6, 0x04, 0x64, 0xB8, +0x00, 0x00, 0x66, 0xB8, 0x02, 0x00, 0x60, 0xB8, +0xBF, 0xD8, 0xF1, 0x02, 0x00, 0x00, 0x00, 0x40, +0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x41, +0xB7, 0xD8, 0xF1, 0x02, 0x28, 0x06, 0x64, 0xB8, +0x00, 0x00, 0x80, 0xC0, 0x2C, 0x06, 0x64, 0xB8, +0xFF, 0x00, 0xFF, 0x00, 0x96, 0x02, 0x64, 0xB8, +0x84, 0x00, 0x60, 0xB8, 0x00, 0x01, 0x64, 0xB8, +0x2C, 0x02, 0x64, 0xB8, 0x44, 0x02, 0x64, 0xB8, +0x4C, 0x02, 0x64, 0xB8, 0x54, 0x02, 0x64, 0xB8, +0xD8, 0x04, 0x64, 0xB8, 0xDC, 0x04, 0x64, 0xB8, +0x7D, 0x04, 0x64, 0xB8, 0x14, 0x11, 0x64, 0xB8, +0xA0, 0x02, 0x64, 0xB8, 0x9C, 0x02, 0x64, 0xB8, +0xC7, 0x01, 0x64, 0xB8, 0x90, 0x06, 0x64, 0xB8, +0x80, 0x00, 0x60, 0xB8, 0x00, 0x00, 0x80, 0x00, +0xFF, 0xFF, 0x7F, 0xFF, 0x00, 0x00, 0x78, 0xB8, +0xA4, 0x04, 0x64, 0xB8, 0xA8, 0x04, 0x64, 0xB8, +0xF8, 0x10, 0x60, 0xB8, 0x00, 0x00, 0x20, 0x00, +0x10, 0x02, 0x64, 0xB8, 0x88, 0x02, 0x64, 0xB8, +0xE2, 0x04, 0x64, 0xB8, 0xA0, 0x00, 0x78, 0xB8, +0x30, 0x00, 0x78, 0xB8, 0x8C, 0x00, 0x60, 0xB8, +0x86, 0x02, 0x64, 0xB8, 0xA2, 0x02, 0x64, 0xB8, +0xCC, 0x01, 0x64, 0xB8, 0x62, 0x06, 0x64, 0xB8, +0x0A, 0x06, 0x64, 0xB8, 0xB1, 0x05, 0x64, 0xB8, +0xCA, 0x01, 0x64, 0xB8, 0x5B, 0x01, 0x64, 0xB8, +0x3C, 0x01, 0x64, 0xB8, 0x00, 0x00, 0x1E, 0x00, +0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, +0x00, 0x00, 0x08, 0x00, 0x22, 0x05, 0x64, 0xB8, +0x3F, 0x42, 0x0F, 0x00, 0xFE, 0x11, 0x64, 0xB8, +0xFC, 0x11, 0x64, 0xB8, 0xE0, 0x10, 0x60, 0xB8, +0x57, 0x01, 0x64, 0xB8, 0x31, 0x00, 0x78, 0xB8, +0x1D, 0x04, 0x64, 0xB8, 0x32, 0x00, 0x78, 0xB8, +0x33, 0x00, 0x78, 0xB8, 0x7A, 0x04, 0x64, 0xB8, +0x24, 0x04, 0x64, 0xB8, 0x56, 0x04, 0x64, 0xB8, +0x1C, 0x04, 0x64, 0xB8, 0x00, 0x00, 0x00, 0x10, +0x20, 0x04, 0x64, 0xB8, 0xFF, 0xFF, 0xEF, 0xFF, +0x00, 0x00, 0x10, 0x00, 0x86, 0x00, 0x60, 0xB8, +0x00, 0x00, 0x00, 0x02, 0xCB, 0x01, 0x64, 0xB8, +0x08, 0x00, 0x68, 0xB8, 0x0C, 0x00, 0x68, 0xB8, +0x87, 0x00, 0x60, 0xB8, 0x88, 0x00, 0x60, 0xB8, +0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x42, +0xE0, 0x00, 0x60, 0xB8, 0xFF, 0xFF, 0xFF, 0xFD, +0xE3, 0x00, 0x60, 0xB8, 0x00, 0x00, 0x00, 0x01, +0xE1, 0x00, 0x60, 0xB8, 0x00, 0x00, 0x00, 0x60, +0x00, 0x00, 0x00, 0x20, 0xCC, 0x00, 0x60, 0xB8, +0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x04, +0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xDF, +0xFF, 0xFF, 0xFF, 0x1F, 0x04, 0x00, 0x60, 0xB8, +0x04, 0x00, 0x64, 0xB8, 0x08, 0x00, 0x60, 0xB8, +0x08, 0x00, 0x64, 0xB8, 0xE8, 0x12, 0x64, 0xB8, +0x24, 0x00, 0x60, 0xB8, 0xFF, 0xFF, 0xFF, 0xEF, +0xB0, 0x02, 0x64, 0xB8, 0x1C, 0x01, 0x64, 0xB8, +0x00, 0x0C, 0x01, 0x00, 0x00, 0x00, 0x70, 0xB8, +0x00, 0x00, 0x21, 0x80, 0x00, 0x00, 0x20, 0x80, +0x00, 0x00, 0x12, 0x80, 0x00, 0x00, 0x10, 0x80, +0x00, 0x80, 0xFF, 0x01, 0x08, 0x00, 0x00, 0xF8, +0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x1F, 0x00, +0x01, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xFF, 0x0F, +0x21, 0x00, 0x00, 0xE0, 0x00, 0xDB, 0x66, 0xDB, +0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xFC, +0x00, 0x00, 0x00, 0x06, 0x80, 0xFF, 0x7F, 0x00, +0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xFC, 0x07, +0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xF0, 0x0F, +0x00, 0x00, 0x00, 0x0F, 0xB4, 0x06, 0x64, 0xB8, +0x06, 0x00, 0x00, 0x89, 0x00, 0x0A, 0x08, 0x00, +0x01, 0x00, 0x66, 0xB8, 0x00, 0xFF, 0xFF, 0x00, +0xCD, 0x9B, 0x78, 0x56, 0x04, 0x1C, 0x66, 0xB8, +0x08, 0x1C, 0x66, 0xB8, 0xFF, 0xFF, 0xFF, 0x3F, +0x1F, 0x00, 0x60, 0xB8, 0x05, 0xEA, 0xEF, 0xFD, +0x06, 0xEA, 0xEF, 0xFD, 0x00, 0x1C, 0x66, 0xB8, +0xFF, 0xFF, 0x3F, 0x00, 0x04, 0xEA, 0xEF, 0xFD, +0x07, 0xEA, 0xEF, 0xFD, 0x08, 0xEA, 0xEF, 0xFD, +0x09, 0xEA, 0xEF, 0xFD, 0x0A, 0xEA, 0xEF, 0xFD, +0x00, 0x10, 0x66, 0xB8, 0x23, 0x04, 0x64, 0xB8, +0x30, 0x04, 0x64, 0xB8, 0x34, 0x04, 0x64, 0xB8, +0x04, 0x05, 0x07, 0x08, 0x00, 0x01, 0x01, 0x02, +0x2D, 0x04, 0x64, 0xB8, 0x06, 0x00, 0x66, 0xB8, +0x52, 0x04, 0x64, 0xB8, 0x53, 0x04, 0x64, 0xB8, +0x50, 0x04, 0x64, 0xB8, 0x51, 0x04, 0x64, 0xB8, +0x01, 0x1C, 0x66, 0xB8, 0x02, 0x1C, 0x66, 0xB8, +0x03, 0x1C, 0x66, 0xB8, 0x05, 0x1C, 0x66, 0xB8, +0x06, 0x1C, 0x66, 0xB8, 0x07, 0x1C, 0x66, 0xB8, +0x44, 0x00, 0x78, 0xB8, 0x01, 0x00, 0x00, 0xC0, +0x01, 0x00, 0x00, 0x60, 0x52, 0x29, 0x46, 0xE2, +0x03, 0x29, 0x29, 0x00, 0x32, 0xFC, 0x18, 0xA2, +0x08, 0x00, 0x04, 0x05, 0x01, 0x00, 0x0F, 0x70, +0x01, 0x00, 0x1F, 0x70, 0x01, 0x00, 0x2F, 0x70, +0x01, 0x00, 0x3F, 0x70, 0x01, 0x00, 0x4F, 0x70, +0x01, 0x00, 0x5F, 0x70, 0x01, 0x00, 0x6F, 0x70, +0x01, 0x00, 0x7F, 0x70, 0x01, 0x00, 0x8F, 0x70, +0x01, 0x00, 0x9F, 0x70, 0x01, 0x00, 0xAF, 0x70, +0x01, 0x00, 0xBF, 0x70, 0x01, 0x00, 0xCF, 0x70, +0x01, 0x00, 0xDF, 0x70, 0x01, 0x00, 0xEF, 0x70, +0x01, 0x00, 0xFF, 0x70, 0x5E, 0x00, 0xD5, 0xF7, +0x41, 0x80, 0x0B, 0x70, 0x40, 0x00, 0x1F, 0x70, +0x40, 0x00, 0x2F, 0x70, 0x40, 0x00, 0x3F, 0x70, +0x40, 0x00, 0x4F, 0x70, 0x41, 0x80, 0x5B, 0x70, +0x40, 0x00, 0x6F, 0x70, 0x41, 0x40, 0x14, 0x70, +0x41, 0x40, 0x24, 0x70, 0x41, 0x40, 0x34, 0x70, +0x41, 0x40, 0x44, 0x70, 0x41, 0x40, 0x64, 0x70, +0x41, 0x80, 0x7B, 0x70, 0x41, 0x80, 0x8B, 0x70, +0x41, 0x80, 0x9B, 0x70, 0x41, 0x80, 0xAB, 0x70, +0x41, 0x80, 0xBB, 0x70, 0x41, 0x80, 0xCB, 0x70, +0x41, 0x80, 0xDB, 0x70, 0x41, 0x80, 0xEB, 0x70, +0x41, 0x80, 0xFB, 0x70, 0x50, 0x50, 0x50, 0x50, +0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x03, 0x00, +0xEF, 0x00, 0x60, 0xB8, 0x03, 0x00, 0x00, 0xC0, +0x03, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xFF, +0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x0F, 0xC0, +0x08, 0x18, 0x07, 0x00, 0x08, 0x0C, 0x07, 0x00, +0x00, 0x00, 0x0F, 0x00, 0x08, 0x00, 0x04, 0x00, +0xFF, 0x60, 0x0F, 0x00, 0x3F, 0xD8, 0x0F, 0x00, +0xFF, 0x60, 0x07, 0x00, 0x3F, 0xD8, 0x0D, 0x00, +0xFF, 0xDE, 0x07, 0x00, 0xBF, 0xF7, 0x0D, 0x00, +0x00, 0xC0, 0x0F, 0x00, 0x00, 0x00, 0x7C, 0x00, +0x00, 0xF0, 0x01, 0x00, 0x5E, 0x00, 0xA1, 0xFF, +0x00, 0x00, 0xFF, 0x1F, 0xFF, 0x1F, 0x00, 0x04, +0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, +0x80, 0x00, 0x00, 0x30, 0xF0, 0x00, 0x04, 0x00, +0xF0, 0x00, 0x04, 0x04, 0xF0, 0x00, 0x04, 0x08, +0xF0, 0x00, 0x04, 0x01, 0xF0, 0x00, 0x04, 0x05, +0xF0, 0x00, 0x04, 0x09, 0xF0, 0x00, 0x04, 0x02, +0xF0, 0x00, 0x04, 0x06, 0xF0, 0x00, 0x04, 0x0A, +0xF0, 0x00, 0x04, 0x03, 0xF0, 0x00, 0x04, 0x07, +0xF0, 0x00, 0x04, 0x0B, 0xF0, 0x00, 0x04, 0x0C, +0xF0, 0x00, 0x04, 0x10, 0xF0, 0x00, 0x04, 0x0D, +0xF0, 0x00, 0x04, 0x11, 0xF0, 0x00, 0x04, 0x0E, +0xF0, 0x00, 0x04, 0x12, 0xF0, 0x00, 0x04, 0x0F, +0xF0, 0x00, 0x04, 0x13, 0x00, 0x00, 0x06, 0x00, +0x01, 0x00, 0x06, 0x00, 0xF0, 0x00, 0x09, 0x00, +0x17, 0x00, 0x05, 0x00, 0x00, 0xC0, 0x07, 0x00, +0x00, 0x00, 0x10, 0x1F, 0x00, 0x00, 0x0D, 0x1F, +0x0B, 0x17, 0x23, 0x3B, 0x47, 0x53, 0x5F, 0x77, +0x00, 0x48, 0x08, 0x00, 0x01, 0x48, 0x08, 0x00, +0xFF, 0xFF, 0xFF, 0x0F, 0x80, 0x66, 0x06, 0x01, +0x10, 0x13, 0x00, 0x80, 0xDB, 0x00, 0x00, 0x81, +0xDB, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x05, +0x0C, 0x19, 0x00, 0x82, 0x0C, 0x19, 0x00, 0x02, +0x14, 0xEE, 0x01, 0x83, 0x14, 0xEE, 0x01, 0x03, +0x08, 0x00, 0x02, 0x05, 0x3F, 0x00, 0x00, 0xC0, +0x14, 0x3E, 0x03, 0x00, 0xFF, 0xFF, 0xFF, 0x03, +0x12, 0x33, 0x03, 0x00, 0x11, 0x33, 0x03, 0x00, +0x12, 0x11, 0x01, 0x00, 0x31, 0xC9, 0x62, 0x49, +0x55, 0x24, 0x01, 0xFF, 0xC8, 0xFE, 0x18, 0x3E, +0xDE, 0xF0, 0xFA, 0x00, 0x44, 0x23, 0x12, 0x00, +0x00, 0xF0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x78, +0x00, 0x00, 0xF0, 0x00, 0x3F, 0xFF, 0xFE, 0xDF, +0x00, 0xFF, 0x0F, 0x00, 0x01, 0x80, 0x03, 0x70, +0x01, 0x80, 0x53, 0x70, 0x01, 0x80, 0x73, 0x70, +0x01, 0x80, 0x83, 0x70, 0x01, 0x80, 0x93, 0x70, +0x01, 0x80, 0xA3, 0x70, 0x01, 0x80, 0xB3, 0x70, +0x01, 0x80, 0xC3, 0x70, 0x01, 0x80, 0xD3, 0x70, +0x01, 0x80, 0xE3, 0x70, 0x01, 0x80, 0xF3, 0x70, +0x01, 0x80, 0x0B, 0x70, 0x01, 0x80, 0x5B, 0x70, +0x01, 0x80, 0x7B, 0x70, 0x01, 0x80, 0x8B, 0x70, +0x01, 0x80, 0x9B, 0x70, 0x01, 0x80, 0xAB, 0x70, +0x01, 0x80, 0xBB, 0x70, 0x01, 0x80, 0xCB, 0x70, +0x01, 0x80, 0xDB, 0x70, 0x01, 0x80, 0xEB, 0x70, +0x01, 0x80, 0xFB, 0x70, 0x00, 0x00, 0x60, 0x00, +0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0x00, +0x00, 0xFC, 0x01, 0x00, 0x00, 0x00, 0x40, 0x00, +0x00, 0x00, 0x70, 0x00, 0x00, 0xFC, 0xF8, 0xFF, +0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x3F, +0xAA, 0x00, 0x60, 0xB8, 0xC4, 0x06, 0x64, 0xB8, +0xCC, 0x06, 0x64, 0xB8, 0x78, 0x07, 0x64, 0xB8, +0x5A, 0x5A, 0x5A, 0x5A, 0x70, 0x07, 0x64, 0xB8, +0x74, 0x07, 0x64, 0xB8, 0x5A, 0x5A, 0x5A, 0xAA, +0x1F, 0x04, 0x64, 0xB8, 0x65, 0x07, 0x64, 0xB8, +0x40, 0x00, 0x60, 0xB8, 0x68, 0x00, 0x60, 0xB8, +0x6E, 0x07, 0x64, 0xB8, 0x64, 0x07, 0x64, 0xB8, +0x23, 0x05, 0x64, 0xB8, 0x64, 0x00, 0x60, 0xB8, +0xFF, 0xFF, 0x40, 0xFF, 0xBF, 0xD4, 0x01, 0x00, +0x04, 0x00, 0x04, 0x00, 0x73, 0x00, 0x60, 0xB8, +0xBF, 0x27, 0x09, 0x00, 0x54, 0x04, 0x64, 0xB8, +0x20, 0x34, 0x00, 0xB8, 0x18, 0x00, 0x70, 0xB8, +0x0B, 0x00, 0x70, 0xB8, 0x02, 0x00, 0x70, 0xB8, +0x94, 0x02, 0x64, 0xB8, 0x97, 0x02, 0x64, 0xB8, +0x84, 0x02, 0x64, 0xB8, 0x50, 0x02, 0x64, 0xB8, +0x04, 0x00, 0x78, 0xB8, 0x48, 0x02, 0x64, 0xB8, +0x74, 0x00, 0x18, 0x2E, 0x74, 0x00, 0x19, 0x2E, +0x01, 0x00, 0x60, 0xB8, 0x01, 0x00, 0x64, 0xB8, +0x34, 0x01, 0x64, 0xB8, 0x64, 0x05, 0x64, 0xB8, +0x60, 0x05, 0x64, 0xB8, 0x27, 0x05, 0x64, 0xB8, +0xB5, 0x05, 0x64, 0xB8, 0x1D, 0x05, 0x64, 0xB8, +0x1C, 0x05, 0x64, 0xB8, 0xB7, 0x05, 0x64, 0xB8, +0x31, 0x05, 0x64, 0xB8, 0x3C, 0x11, 0x64, 0xB8, +0x50, 0x05, 0x64, 0xB8, 0x40, 0x05, 0x64, 0xB8, +0xC8, 0x01, 0x64, 0xB8, 0xC9, 0x01, 0x64, 0xB8, +0x0C, 0xEA, 0xEF, 0xFD, 0xA0, 0x01, 0x64, 0xB8, +0x48, 0x00, 0x60, 0xB8, 0xFF, 0xFF, 0xFE, 0xFF, +0x44, 0x00, 0x60, 0xB8, 0x60, 0x00, 0x60, 0xB8, +0x47, 0x00, 0x60, 0xB8, 0x46, 0x00, 0x60, 0xB8, +0x63, 0x00, 0x60, 0xB8, 0x62, 0x00, 0x60, 0xB8, +0x45, 0x00, 0x60, 0xB8, 0x61, 0x00, 0x60, 0xB8, +0xC6, 0x01, 0x64, 0xB8, 0x57, 0x05, 0x64, 0xB8, +0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x05, +0x64, 0x01, 0x64, 0xB8, 0x53, 0x05, 0x64, 0xB8, +0x94, 0x01, 0x64, 0xB8, 0x54, 0x00, 0x60, 0xB8, +0x24, 0x01, 0x64, 0xB8, 0x24, 0x11, 0x64, 0xB8, +0x2C, 0x11, 0x64, 0xB8, 0x34, 0x11, 0x64, 0xB8, +0xE4, 0x11, 0x64, 0xB8, 0x00, 0x40, 0xE0, 0x17, +0x01, 0x70, 0x00, 0x03, 0xE0, 0x12, 0x64, 0xB8, +0x67, 0x05, 0x64, 0xB8, 0x66, 0x05, 0x64, 0xB8, +0x65, 0x05, 0x64, 0xB8, 0x63, 0x05, 0x64, 0xB8, +0x62, 0x05, 0x64, 0xB8, 0x61, 0x05, 0x64, 0xB8, +0xB4, 0x00, 0x60, 0xB8, 0x2F, 0x01, 0x64, 0xB8, +0xE8, 0x10, 0x60, 0xB8, 0x00, 0x3C, 0x64, 0xB8, +0x00, 0x4C, 0x64, 0xB8, 0x00, 0x58, 0x64, 0xB8, +0x00, 0x5C, 0x64, 0xB8, 0xF8, 0x05, 0x64, 0xB8, +0x83, 0x00, 0x60, 0xB8, 0x08, 0x01, 0x64, 0xB8, +0x90, 0x00, 0x60, 0xB8, 0x92, 0x06, 0x64, 0xB8, +0x00, 0x10, 0x60, 0xB8, 0x92, 0x00, 0x60, 0xB8, +0xFF, 0xFF, 0xFF, 0x7F, 0x88, 0x06, 0x64, 0xB8, +0x00, 0x00, 0x68, 0x18, 0x40, 0x00, 0x78, 0xB8, +0x2C, 0x04, 0x64, 0xB8, 0x14, 0x00, 0x78, 0xB8, +0x5F, 0x01, 0x64, 0xB8, 0x1F, 0x07, 0x64, 0xB8, +0x1C, 0x07, 0x64, 0xB8, 0xB8, 0x05, 0x64, 0xB8, +0xBC, 0x05, 0x64, 0xB8, 0x5F, 0x11, 0x64, 0xB8, +0xFE, 0xFF, 0xFF, 0x7F, 0x30, 0x00, 0x78, 0x18, +0x00, 0x00, 0x78, 0x18, 0xA0, 0x34, 0x00, 0xB8, +0x00, 0x52, 0x00, 0xB8, 0x04, 0x52, 0x00, 0xB8, +0x08, 0x52, 0x00, 0xB8, 0x0C, 0x52, 0x00, 0xB8, +0x10, 0x52, 0x00, 0xB8, 0x30, 0x52, 0x00, 0xB8, +0x3C, 0x50, 0x00, 0xB8, 0x4C, 0x04, 0x64, 0xB8, +0xC0, 0x01, 0x64, 0xB8, 0xB8, 0x01, 0x64, 0xB8, +0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x02, 0x02, +0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x08, 0x08, +0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x20, 0x20, +0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x80, 0x80, +0x7E, 0x04, 0x64, 0xB8, 0xAC, 0x04, 0x64, 0xB8, +0x08, 0x10, 0x66, 0xB8, 0x04, 0x10, 0x66, 0xB8, +0x0C, 0x10, 0x66, 0xB8, 0x7C, 0x04, 0x64, 0xB8, +0xF4, 0x00, 0x60, 0xB8, 0x71, 0x00, 0x60, 0xB8, +0xE4, 0x00, 0x60, 0xB8, 0xE6, 0x00, 0x60, 0xB8, +0xE8, 0x00, 0x60, 0xB8, 0xE9, 0x00, 0x60, 0xB8, +0xEA, 0x00, 0x60, 0xB8, 0xEB, 0x00, 0x60, 0xB8, +0xE5, 0x00, 0x60, 0xB8, 0x44, 0x00, 0x02, 0x00, +0xA0, 0x07, 0x64, 0xB8, 0x00, 0x00, 0x60, 0x06, +0x00, 0x00, 0x60, 0x02, 0xFF, 0xFF, 0xBF, 0xFD, +0x00, 0x00, 0x40, 0x02, 0xFF, 0xFF, 0xDF, 0xFF, +0xFF, 0xFF, 0xBF, 0xFF, 0xBC, 0x01, 0x64, 0xB8, +0x16, 0x11, 0x64, 0xB8, 0x17, 0x11, 0x64, 0xB8, +0xD4, 0x07, 0x64, 0xB8, 0x08, 0x06, 0x64, 0xB8, +0x0F, 0x06, 0x64, 0xB8, 0x9A, 0x01, 0x64, 0xB8, +0x98, 0x01, 0x64, 0xB8, 0xD0, 0x05, 0x64, 0xB8, +0x08, 0x02, 0x64, 0xB8, 0x7B, 0x05, 0x64, 0xB8, +0x73, 0x05, 0x64, 0xB8, 0xD4, 0x04, 0x60, 0xB8, +0xD4, 0x04, 0x64, 0xB8, 0x84, 0x04, 0x60, 0xB8, +0x84, 0x04, 0x64, 0xB8, 0xC8, 0x04, 0x60, 0xB8, +0xC8, 0x04, 0x64, 0xB8, 0x78, 0x04, 0x60, 0xB8, +0x78, 0x04, 0x64, 0xB8, 0x00, 0x90, 0x01, 0x00, +0x01, 0x01, 0x64, 0xB8, 0xA3, 0x00, 0x60, 0xB8, +0xA0, 0x00, 0x60, 0xB8, 0x70, 0x00, 0x60, 0xB8, +0x35, 0x00, 0x60, 0xB8, 0x37, 0x00, 0x60, 0xB8, +0x30, 0x00, 0x60, 0xB8, 0x00, 0x00, 0xFC, 0xFF, +0x40, 0x42, 0x0F, 0x00, 0x0D, 0xEA, 0xEF, 0xFD, +0x01, 0x00, 0x78, 0xB8, 0xA0, 0x06, 0x64, 0xB8, +0xFF, 0xFF, 0xFB, 0xFF, 0xC2, 0x01, 0x64, 0xB8, +0xB2, 0x05, 0x64, 0xB8, 0xB3, 0x05, 0x64, 0xB8, +0x43, 0x05, 0x64, 0xB8, 0x7D, 0x05, 0x64, 0xB8, +0x7F, 0x05, 0x64, 0xB8, 0x72, 0x05, 0x64, 0xB8, +0x51, 0x05, 0x64, 0xB8, 0x78, 0x05, 0x64, 0xB8, +0x79, 0x05, 0x64, 0xB8, 0x7A, 0x05, 0x64, 0xB8, +0xCF, 0x05, 0x64, 0xB8, 0xE0, 0x05, 0x64, 0xB8, +0xE4, 0x05, 0x64, 0xB8, 0xE8, 0x05, 0x64, 0xB8, +0xEC, 0x05, 0x64, 0xB8, 0xF0, 0x05, 0x64, 0xB8, +0xB6, 0x05, 0x64, 0xB8, 0x04, 0x06, 0x64, 0xB8, +0xFF, 0xFF, 0xFF, 0xFE, 0x60, 0x16, 0x64, 0xB8, +0x09, 0x00, 0x78, 0xB8, 0xFF, 0xFF, 0x00, 0xF0, +0x00, 0x00, 0x30, 0x80, 0x00, 0x12, 0x00, 0x04, +0x08, 0x00, 0x78, 0xB8, 0x0C, 0x00, 0x78, 0xB8, +0x10, 0x00, 0x78, 0xB8, 0x03, 0x00, 0x78, 0xB8, +0xFF, 0xFF, 0x01, 0xFF, 0x18, 0x00, 0x78, 0xB8, +0x20, 0x00, 0x78, 0xB8, 0x05, 0x00, 0x78, 0xB8, +0x12, 0x05, 0x64, 0xB8, 0x10, 0x05, 0x64, 0xB8, +0x18, 0x15, 0x64, 0xB8, 0x04, 0x18, 0x66, 0xB8, +0x00, 0x18, 0x66, 0xB8, 0x10, 0x00, 0x66, 0xB8, +0x11, 0x00, 0x66, 0xB8, 0x12, 0x00, 0x66, 0xB8, +0x13, 0x00, 0x66, 0xB8, 0x14, 0x00, 0x66, 0xB8, +0x15, 0x00, 0x66, 0xB8, 0xBC, 0x06, 0x64, 0xB8, +0xC0, 0x00, 0x60, 0xB8, 0x00, 0x00, 0x12, 0x20, +0xEC, 0x00, 0x60, 0xB8, 0x78, 0x00, 0x60, 0xB8, +0x74, 0x00, 0x60, 0xB8, 0xF3, 0x00, 0x40, 0x20, +0xF3, 0x00, 0x40, 0x60, 0x31, 0x00, 0x41, 0x20, +0x31, 0x00, 0x41, 0x60, 0x81, 0x00, 0x42, 0x20, +0x81, 0x00, 0x42, 0x60, 0x75, 0x00, 0x60, 0xB8, +0xF4, 0x00, 0x40, 0x20, 0xF4, 0x00, 0x40, 0x60, +0x9B, 0x00, 0x41, 0x20, 0x9B, 0x00, 0x41, 0x60, +0xBB, 0x00, 0x41, 0x20, 0xBB, 0x00, 0x41, 0x60, +0x00, 0x00, 0x40, 0x20, 0x00, 0x00, 0x40, 0x60, +0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x41, 0x60, +0x00, 0x00, 0x43, 0x20, 0x3A, 0x00, 0x60, 0xB8, +0xF6, 0x00, 0x60, 0xB8, 0x6A, 0x00, 0x60, 0xB8, +0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, +0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, +0x00, 0x00, 0x00, 0x00, 0x73, 0x65, 0x74, 0x5F, +0x74, 0x78, 0x2C, 0x69, 0x64, 0x3D, 0x25, 0x62, +0x78, 0x2C, 0x31, 0x73, 0x73, 0x3D, 0x25, 0x62, +0x78, 0x21, 0x0A, 0x00, 0x50, 0x45, 0x52, 0x20, +0x52, 0x50, 0x54, 0x3A, 0x20, 0x6D, 0x69, 0x64, +0x25, 0x62, 0x58, 0x2C, 0x52, 0x3A, 0x25, 0x62, +0x78, 0x2C, 0x72, 0x74, 0x3A, 0x25, 0x62, 0x78, +0x2C, 0x62, 0x77, 0x3A, 0x25, 0x62, 0x78, 0x00, +0x50, 0x45, 0x52, 0x20, 0x52, 0x50, 0x54, 0x3A, +0x20, 0x6D, 0x69, 0x64, 0x25, 0x62, 0x58, 0x2C, +0x54, 0x54, 0x3A, 0x25, 0x77, 0x78, 0x00, 0x00, +0x50, 0x45, 0x52, 0x20, 0x52, 0x50, 0x54, 0x3A, +0x20, 0x25, 0x62, 0x58, 0x2C, 0x25, 0x62, 0x78, +0x2C, 0x25, 0x62, 0x78, 0x2C, 0x25, 0x62, 0x78, +0x2C, 0x25, 0x62, 0x58, 0x2C, 0x25, 0x62, 0x78, +0x2C, 0x25, 0x62, 0x78, 0x2C, 0x25, 0x62, 0x78, +0x2C, 0x25, 0x62, 0x58, 0x2C, 0x25, 0x62, 0x78, +0x2C, 0x25, 0x62, 0x78, 0x2C, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x52, 0x65, 0x71, 0x20, +0x50, 0x45, 0x52, 0x20, 0x43, 0x4D, 0x44, 0x3A, +0x20, 0x47, 0x72, 0x3A, 0x25, 0x62, 0x58, 0x2C, +0x20, 0x54, 0x59, 0x50, 0x3A, 0x25, 0x62, 0x78, +0x2C, 0x20, 0x62, 0x74, 0x6D, 0x70, 0x3A, 0x25, +0x78, 0x00, 0x00, 0x00, 0x52, 0x65, 0x71, 0x20, +0x50, 0x45, 0x52, 0x20, 0x43, 0x4D, 0x44, 0x3A, +0x20, 0x49, 0x64, 0x78, 0x3A, 0x25, 0x62, 0x78, +0x2C, 0x20, 0x6D, 0x69, 0x64, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x52, 0x65, 0x71, 0x20, +0x50, 0x45, 0x52, 0x20, 0x43, 0x4D, 0x44, 0x3A, +0x20, 0x49, 0x64, 0x78, 0x3A, 0x25, 0x62, 0x78, +0x2C, 0x20, 0x4D, 0x69, 0x64, 0x3A, 0x25, 0x62, +0x78, 0x2C, 0x20, 0x25, 0x62, 0x78, 0x2C, 0x20, +0x25, 0x62, 0x78, 0x00, 0x53, 0x65, 0x74, 0x5F, +0x50, 0x6E, 0x74, 0x79, 0x00, 0x00, 0x00, 0x00, +0x53, 0x65, 0x74, 0x5F, 0x52, 0x41, 0x5F, 0x55, +0x70, 0x5F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x5F, +0x66, 0x6F, 0x72, 0x5F, 0x52, 0x41, 0x5F, 0x64, +0x65, 0x62, 0x75, 0x67, 0x00, 0x00, 0x00, 0x00, +0x53, 0x65, 0x74, 0x5F, 0x44, 0x6F, 0x77, 0x6E, +0x5F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x00, 0x00, +0x76, 0x61, 0x6C, 0x75, 0x65, 0x38, 0x3D, 0x30, +0x78, 0x25, 0x62, 0x58, 0x2C, 0x20, 0x76, 0x61, +0x6C, 0x75, 0x65, 0x31, 0x36, 0x3D, 0x30, 0x78, +0x25, 0x77, 0x78, 0x2C, 0x20, 0x76, 0x61, 0x6C, +0x75, 0x65, 0x33, 0x32, 0x3D, 0x30, 0x78, 0x25, +0x78, 0x00, 0x00, 0x00, 0x48, 0x32, 0x43, 0x42, +0x46, 0x45, 0x6E, 0x74, 0x00, 0x00, 0x00, 0x00, +0x45, 0x6E, 0x3A, 0x25, 0x62, 0x78, 0x20, 0x4E, +0x63, 0x3A, 0x25, 0x62, 0x78, 0x20, 0x4D, 0x3A, +0x25, 0x62, 0x78, 0x00, 0x44, 0x69, 0x73, 0x3A, +0x25, 0x62, 0x78, 0x20, 0x4E, 0x63, 0x3A, 0x25, +0x62, 0x78, 0x20, 0x4D, 0x3A, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x49, 0x6E, 0x69, 0x74, +0x42, 0x79, 0x52, 0x53, 0x53, 0x49, 0x3A, 0x25, +0x62, 0x78, 0x20, 0x25, 0x62, 0x78, 0x20, 0x25, +0x62, 0x78, 0x00, 0x00, 0x52, 0x53, 0x53, 0x49, +0x5F, 0x43, 0x4D, 0x44, 0x3A, 0x25, 0x62, 0x78, +0x20, 0x25, 0x62, 0x78, 0x20, 0x25, 0x62, 0x78, +0x20, 0x25, 0x62, 0x78, 0x20, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x52, 0x53, 0x53, 0x49, +0x43, 0x4D, 0x44, 0x20, 0x44, 0x72, 0x76, 0x46, +0x69, 0x78, 0x3A, 0x25, 0x62, 0x78, 0x20, 0x25, +0x62, 0x78, 0x20, 0x25, 0x62, 0x78, 0x00, 0x00, +0x4D, 0x61, 0x73, 0x6B, 0x31, 0x20, 0x25, 0x78, +0x00, 0x00, 0x00, 0x00, 0x49, 0x44, 0x3A, 0x25, +0x62, 0x78, 0x2C, 0x49, 0x6E, 0x42, 0x77, 0x3A, +0x25, 0x62, 0x78, 0x2C, 0x42, 0x77, 0x3A, 0x25, +0x62, 0x78, 0x2C, 0x53, 0x47, 0x49, 0x3A, 0x25, +0x62, 0x78, 0x2C, 0x56, 0x48, 0x54, 0x3A, 0x25, +0x62, 0x78, 0x00, 0x00, 0x44, 0x52, 0x61, 0x3A, +0x25, 0x62, 0x78, 0x2C, 0x44, 0x50, 0x74, 0x3A, +0x25, 0x62, 0x78, 0x2C, 0x52, 0x61, 0x49, 0x64, +0x3A, 0x25, 0x62, 0x78, 0x2C, 0x6C, 0x76, 0x3A, +0x25, 0x62, 0x78, 0x2C, 0x6E, 0x55, 0x70, 0x42, +0x77, 0x3A, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x4D, 0x61, 0x73, 0x6B, 0x30, 0x20, 0x25, 0x78, +0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x78, 0x5F, +0x68, 0x32, 0x63, 0x20, 0x25, 0x62, 0x78, 0x2C, +0x25, 0x62, 0x78, 0x20, 0x50, 0x65, 0x72, 0x69, +0x6F, 0x64, 0x3D, 0x25, 0x77, 0x78, 0x00, 0x00, +0x72, 0x65, 0x61, 0x64, 0x79, 0x3D, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x43, 0x6C, 0x6D, 0x52, +0x70, 0x74, 0x3D, 0x25, 0x77, 0x78, 0x00, 0x00, +0x43, 0x32, 0x48, 0x20, 0x25, 0x62, 0x78, 0x20, +0x25, 0x62, 0x78, 0x00, 0x74, 0x62, 0x74, 0x74, +0x3D, 0x25, 0x62, 0x78, 0x2C, 0x72, 0x5F, 0x63, +0x6E, 0x74, 0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, +0x43, 0x4C, 0x4D, 0x5F, 0x44, 0x65, 0x63, 0x00, +0x43, 0x4C, 0x4D, 0x5F, 0x54, 0x72, 0x69, 0x67, +0x00, 0x00, 0x00, 0x00, 0x52, 0x65, 0x73, 0x65, +0x74, 0x20, 0x54, 0x78, 0x52, 0x70, 0x74, 0x00, +0x49, 0x44, 0x3D, 0x25, 0x62, 0x78, 0x2C, 0x52, +0x5B, 0x25, 0x62, 0x78, 0x5D, 0x2C, 0x52, 0x61, +0x74, 0x65, 0x3D, 0x25, 0x62, 0x78, 0x2D, 0x3E, +0x25, 0x62, 0x78, 0x2C, 0x54, 0x3A, 0x25, 0x62, +0x78, 0x2C, 0x4F, 0x6B, 0x3A, 0x25, 0x62, 0x78, +0x2C, 0x44, 0x70, 0x3A, 0x25, 0x62, 0x78, 0x2C, +0x54, 0x72, 0x79, 0x3A, 0x25, 0x62, 0x78, 0x00, +0x44, 0x72, 0x76, 0x46, 0x69, 0x78, 0x52, 0x61, +0x74, 0x65, 0x00, 0x00, 0x52, 0x54, 0x53, 0x20, +0x44, 0x72, 0x6F, 0x70, 0x00, 0x00, 0x00, 0x00, +0x53, 0x55, 0x20, 0x52, 0x61, 0x74, 0x65, 0x20, +0x52, 0x70, 0x74, 0x3A, 0x25, 0x62, 0x78, 0x21, +0x3D, 0x43, 0x54, 0x52, 0x4C, 0x3A, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x44, 0x69, 0x73, 0x52, +0x41, 0x20, 0x49, 0x44, 0x25, 0x62, 0x78, 0x00, +0x31, 0x52, 0x70, 0x74, 0x25, 0x62, 0x78, 0x20, +0x50, 0x72, 0x74, 0x79, 0x25, 0x62, 0x78, 0x20, +0x43, 0x54, 0x72, 0x79, 0x25, 0x62, 0x78, 0x00, +0x54, 0x3D, 0x4F, 0x4B, 0x2B, 0x44, 0x52, 0x4F, +0x50, 0x00, 0x00, 0x00, 0x54, 0x21, 0x3D, 0x4F, +0x4B, 0x2B, 0x44, 0x52, 0x4F, 0x50, 0x00, 0x00, +0x5B, 0x44, 0x65, 0x63, 0x5D, 0x54, 0x5F, 0x61, +0x63, 0x63, 0x25, 0x62, 0x78, 0x2C, 0x74, 0x72, +0x79, 0x5F, 0x6E, 0x65, 0x73, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x44, 0x6F, 0x20, 0x52, +0x41, 0x20, 0x25, 0x62, 0x78, 0x2C, 0x20, 0x74, +0x68, 0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x54, 0x62, 0x74, 0x74, 0x52, 0x41, 0x20, 0x25, +0x62, 0x78, 0x00, 0x00, 0x50, 0x45, 0x52, 0x3A, +0x4E, 0x65, 0x77, 0x4D, 0x61, 0x3A, 0x25, 0x62, +0x78, 0x2C, 0x20, 0x4F, 0x6C, 0x64, 0x4D, 0x61, +0x3A, 0x25, 0x62, 0x78, 0x2C, 0x20, 0x43, 0x75, +0x72, 0x3A, 0x25, 0x62, 0x78, 0x20, 0x00, 0x00, +0x4D, 0x61, 0x70, 0x3A, 0x25, 0x62, 0x78, 0x20, +0x44, 0x69, 0x66, 0x3A, 0x25, 0x62, 0x78, 0x20, +0x6F, 0x66, 0x74, 0x3A, 0x25, 0x62, 0x78, 0x00, +0x56, 0x41, 0x52, 0x3A, 0x20, 0x25, 0x62, 0x78, +0x2D, 0x3E, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x44, 0x65, 0x63, 0x5F, 0x6F, 0x66, 0x73, 0x74, +0x7B, 0x50, 0x2C, 0x4E, 0x7D, 0x3A, 0x20, 0x25, +0x62, 0x78, 0x2C, 0x25, 0x62, 0x78, 0x00, 0x00, +0x30, 0x55, 0x70, 0x25, 0x62, 0x78, 0x2C, 0x44, +0x77, 0x6E, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x31, 0x55, 0x70, 0x25, 0x62, 0x78, 0x2C, 0x44, +0x77, 0x6E, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x53, 0x74, 0x61, 0x72, 0x74, 0x25, 0x62, 0x78, +0x3A, 0x25, 0x62, 0x78, 0x2D, 0x3E, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x4D, 0x74, 0x42, 0x77, +0x20, 0x55, 0x70, 0x44, 0x77, 0x25, 0x62, 0x78, +0x20, 0x42, 0x57, 0x25, 0x62, 0x78, 0x20, 0x52, +0x74, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x48, 0x69, 0x74, 0x25, 0x62, 0x78, 0x20, 0x52, +0x74, 0x30, 0x3D, 0x25, 0x77, 0x78, 0x20, 0x52, +0x74, 0x31, 0x3D, 0x25, 0x77, 0x78, 0x00, 0x00, +0x6C, 0x6D, 0x74, 0x20, 0x52, 0x25, 0x62, 0x78, +0x20, 0x4C, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x52, 0x53, 0x53, 0x49, 0x20, 0x52, 0x6C, 0x73, +0x4C, 0x6D, 0x74, 0x00, 0x52, 0x53, 0x53, 0x49, +0x20, 0x49, 0x6E, 0x4C, 0x6D, 0x74, 0x00, 0x00, +0x4C, 0x6D, 0x74, 0x20, 0x31, 0x53, 0x53, 0x25, +0x62, 0x78, 0x20, 0x25, 0x62, 0x78, 0x2C, 0x32, +0x53, 0x53, 0x25, 0x62, 0x78, 0x20, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x57, 0x72, 0x69, 0x74, +0x65, 0x45, 0x6E, 0x3A, 0x25, 0x62, 0x78, 0x20, +0x42, 0x46, 0x63, 0x74, 0x72, 0x6C, 0x3A, 0x25, +0x62, 0x78, 0x00, 0x00, 0x52, 0x65, 0x63, 0x45, +0x6E, 0x3A, 0x25, 0x62, 0x78, 0x20, 0x42, 0x46, +0x63, 0x74, 0x72, 0x6C, 0x3A, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x53, 0x6E, 0x64, 0x44, +0x20, 0x4D, 0x3A, 0x25, 0x62, 0x78, 0x20, 0x52, +0x3A, 0x25, 0x62, 0x78, 0x20, 0x52, 0x25, 0x62, +0x78, 0x20, 0x43, 0x74, 0x3A, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x41, 0x70, 0x70, 0x6C, +0x56, 0x3A, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x4E, 0x61, 0x70, 0x70, 0x6C, 0x56, 0x3A, 0x25, +0x62, 0x78, 0x00, 0x00, 0x53, 0x74, 0x6F, 0x72, +0x45, 0x6E, 0x3A, 0x25, 0x62, 0x78, 0x20, 0x42, +0x46, 0x63, 0x74, 0x72, 0x6C, 0x3A, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x52, 0x74, 0x25, 0x62, +0x78, 0x2C, 0x52, 0x74, 0x5F, 0x63, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x48, 0x52, 0x3A, 0x25, +0x62, 0x78, 0x2C, 0x4C, 0x52, 0x3A, 0x25, 0x62, +0x78, 0x2C, 0x54, 0x79, 0x70, 0x65, 0x3A, 0x25, +0x62, 0x78, 0x00, 0x00, 0x46, 0x69, 0x78, 0x20, +0x69, 0x64, 0x3D, 0x25, 0x62, 0x78, 0x20, 0x42, +0x77, 0x3D, 0x25, 0x62, 0x78, 0x20, 0x52, 0x74, +0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x49, 0x44, 0x3D, 0x25, 0x62, 0x78, 0x2C, 0x42, +0x43, 0x6E, 0x74, 0x3D, 0x25, 0x62, 0x78, 0x2C, +0x42, 0x54, 0x3A, 0x25, 0x78, 0x2C, 0x42, 0x4F, +0x6B, 0x3A, 0x25, 0x78, 0x00, 0x00, 0x00, 0x00, +0x49, 0x44, 0x3D, 0x25, 0x62, 0x78, 0x2C, 0x42, +0x52, 0x61, 0x74, 0x65, 0x3D, 0x25, 0x62, 0x78, +0x2C, 0x42, 0x50, 0x45, 0x52, 0x3A, 0x25, 0x78, +0x00, 0x00, 0x00, 0x00, 0x52, 0x61, 0x4F, 0x63, +0x63, 0x4E, 0x75, 0x6D, 0x25, 0x62, 0x78, 0x00, +0x55, 0x70, 0x52, 0x61, 0x74, 0x65, 0x25, 0x62, +0x78, 0x20, 0x42, 0x57, 0x25, 0x62, 0x78, 0x20, +0x4D, 0x61, 0x78, 0x42, 0x57, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x31, 0x2E, 0x48, 0x2D, +0x65, 0x73, 0x74, 0x20, 0x25, 0x62, 0x78, 0x00, +0x32, 0x2E, 0x48, 0x2D, 0x65, 0x73, 0x74, 0x53, +0x20, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x33, 0x2E, 0x3E, 0x48, 0x2D, 0x65, 0x73, 0x74, +0x20, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x34, 0x2E, 0x4D, 0x2D, 0x42, 0x77, 0x55, 0x70, +0x20, 0x52, 0x61, 0x74, 0x65, 0x3A, 0x25, 0x62, +0x78, 0x2C, 0x20, 0x42, 0x77, 0x3A, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x35, 0x2E, 0x42, 0x77, +0x55, 0x70, 0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, +0x36, 0x2E, 0x53, 0x47, 0x49, 0x5F, 0x55, 0x70, +0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x25, 0x62, 0x78, 0x3A, 0x25, 0x62, 0x78, 0x2D, +0x3E, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x37, 0x2E, 0x52, 0x61, 0x74, 0x65, 0x55, 0x70, +0x25, 0x62, 0x78, 0x00, 0x30, 0x52, 0x74, 0x25, +0x62, 0x78, 0x20, 0x25, 0x62, 0x78, 0x20, 0x25, +0x62, 0x78, 0x00, 0x00, 0x31, 0x52, 0x74, 0x25, +0x62, 0x78, 0x20, 0x25, 0x62, 0x78, 0x20, 0x25, +0x62, 0x78, 0x00, 0x00, 0x4E, 0x6F, 0x20, 0x55, +0x70, 0x20, 0x52, 0x61, 0x74, 0x65, 0x00, 0x00, +0x32, 0x52, 0x74, 0x3A, 0x25, 0x62, 0x78, 0x20, +0x25, 0x62, 0x78, 0x20, 0x25, 0x62, 0x78, 0x2C, +0x54, 0x72, 0x79, 0x3D, 0x25, 0x62, 0x78, 0x2C, +0x4D, 0x2D, 0x54, 0x72, 0x79, 0x3D, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x44, 0x6E, 0x52, 0x61, +0x74, 0x65, 0x25, 0x62, 0x78, 0x20, 0x42, 0x57, +0x25, 0x62, 0x78, 0x20, 0x4D, 0x61, 0x78, 0x42, +0x57, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x35, 0x2E, 0x42, 0x77, 0x44, 0x77, 0x6E, 0x3D, +0x25, 0x62, 0x78, 0x00, 0x36, 0x2E, 0x53, 0x47, +0x49, 0x5F, 0x44, 0x77, 0x3D, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x37, 0x2E, 0x52, 0x61, +0x74, 0x65, 0x44, 0x77, 0x6E, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x52, 0x74, 0x3A, 0x25, +0x62, 0x78, 0x20, 0x25, 0x62, 0x78, 0x20, 0x25, +0x62, 0x78, 0x2C, 0x54, 0x72, 0x79, 0x3D, 0x25, +0x62, 0x78, 0x2C, 0x4D, 0x2D, 0x54, 0x72, 0x79, +0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x54, 0x72, 0x79, 0x69, 0x6E, 0x67, 0x00, 0x00, +0x3E, 0x48, 0x2D, 0x65, 0x73, 0x74, 0x20, 0x52, +0x74, 0x00, 0x00, 0x00, 0x49, 0x44, 0x3A, 0x25, +0x62, 0x78, 0x2C, 0x4F, 0x6B, 0x25, 0x62, 0x78, +0x2C, 0x54, 0x6F, 0x74, 0x25, 0x62, 0x78, 0x2C, +0x44, 0x70, 0x25, 0x62, 0x78, 0x2C, 0x61, 0x2D, +0x4F, 0x4B, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x50, 0x45, 0x52, 0x25, 0x62, 0x78, 0x2C, 0x52, +0x44, 0x52, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x42, 0x77, 0x3D, 0x25, 0x62, 0x78, 0x2C, 0x42, +0x77, 0x32, 0x3D, 0x25, 0x62, 0x78, 0x2C, 0x52, +0x74, 0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x32, 0x55, 0x70, 0x25, 0x62, 0x78, 0x2C, 0x44, +0x77, 0x6E, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x46, 0x77, 0x20, 0x46, 0x69, 0x78, 0x20, 0x52, +0x61, 0x74, 0x65, 0x00, 0x46, 0x6F, 0x72, 0x63, +0x65, 0x52, 0x61, 0x74, 0x65, 0x44, 0x77, 0x00, +0x52, 0x74, 0x44, 0x77, 0x6E, 0x43, 0x6E, 0x74, +0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x52, 0x61, 0x74, 0x65, 0x20, 0x44, 0x6F, 0x77, +0x6E, 0x00, 0x00, 0x00, 0x52, 0x74, 0x55, 0x70, +0x43, 0x6E, 0x74, 0x3D, 0x25, 0x62, 0x78, 0x00, +0x52, 0x61, 0x74, 0x65, 0x20, 0x55, 0x50, 0x00, +0x52, 0x61, 0x74, 0x65, 0x20, 0x53, 0x74, 0x61, +0x79, 0x00, 0x00, 0x00, 0x49, 0x6E, 0x69, 0x74, +0x52, 0x61, 0x74, 0x65, 0x20, 0x25, 0x62, 0x78, +0x00, 0x00, 0x00, 0x00, 0x52, 0x61, 0x44, 0x77, +0x6E, 0x54, 0x72, 0x79, 0x20, 0x52, 0x61, 0x74, +0x65, 0x3D, 0x25, 0x62, 0x78, 0x2C, 0x42, 0x77, +0x25, 0x62, 0x78, 0x00, 0x54, 0x72, 0x79, 0x53, +0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x00, 0x00, +0x54, 0x72, 0x79, 0x66, 0x61, 0x69, 0x6C, 0x00, +0x4D, 0x74, 0x54, 0x72, 0x79, 0x49, 0x64, 0x78, +0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x4D, 0x74, 0x54, 0x72, 0x79, 0x42, 0x57, 0x3D, +0x25, 0x62, 0x78, 0x00, 0x54, 0x72, 0x79, 0x20, +0x52, 0x74, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x5B, 0x54, 0x72, 0x79, 0x20, 0x44, 0x65, 0x63, +0x5D, 0x00, 0x00, 0x00, 0x4F, 0x6B, 0x25, 0x62, +0x78, 0x2C, 0x54, 0x6F, 0x74, 0x25, 0x62, 0x78, +0x2C, 0x44, 0x70, 0x25, 0x62, 0x78, 0x2C, 0x61, +0x2D, 0x4F, 0x4B, 0x25, 0x62, 0x78, 0x00, 0x00, +0x42, 0x77, 0x25, 0x62, 0x78, 0x2C, 0x52, 0x74, +0x3D, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, +0x62, 0x77, 0x20, 0x25, 0x77, 0x78, 0x2D, 0x3E, +0x25, 0x77, 0x78, 0x00, 0x50, 0x72, 0x6F, 0x62, +0x20, 0x25, 0x62, 0x78, 0x2D, 0x3E, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x52, 0x61, 0x74, 0x65, +0x20, 0x25, 0x62, 0x78, 0x2D, 0x3E, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x54, 0x72, 0x70, 0x74, +0x20, 0x25, 0x77, 0x78, 0x2D, 0x3E, 0x25, 0x77, +0x78, 0x00, 0x00, 0x00, 0x53, 0x65, 0x74, 0x20, +0x4C, 0x6D, 0x74, 0x20, 0x25, 0x62, 0x78, 0x00, +0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x3D, 0x25, +0x62, 0x78, 0x00, 0x00, 0x65, 0x72, 0x72, 0x6F, +0x72, 0x20, 0x63, 0x68, 0x61, 0x6E, 0x6E, 0x65, +0x6C, 0x00, 0x00, 0x00, 0x63, 0x68, 0x3A, 0x25, +0x77, 0x78, 0x2C, 0x20, 0x73, 0x6E, 0x3A, 0x25, +0x62, 0x78, 0x00, 0x00, 0x70, 0x68, 0x79, 0x64, +0x6D, 0x5F, 0x6D, 0x63, 0x63, 0x64, 0x6D, 0x5F, +0x73, 0x77, 0x5F, 0x61, 0x70, 0x69, 0x00, 0x00, +0x73, 0x65, 0x74, 0x3A, 0x20, 0x72, 0x65, 0x67, +0x3A, 0x25, 0x77, 0x78, 0x2C, 0x20, 0x76, 0x61, +0x6C, 0x3A, 0x25, 0x62, 0x78, 0x00, 0x00, 0x00, +0x70, 0x68, 0x79, 0x64, 0x6D, 0x5F, 0x69, 0x6E, +0x69, 0x74, 0x5F, 0x6D, 0x63, 0x63, 0x64, 0x6D, +0x00, 0x00, 0x00, 0x00, 0x70, 0x68, 0x79, 0x64, +0x6D, 0x5F, 0x43, 0x32, 0x48, 0x48, 0x44, 0x4C, +0x5F, 0x6D, 0x63, 0x63, 0x5F, 0x64, 0x6D, 0x3A, +0x20, 0x65, 0x6E, 0x20, 0x25, 0x62, 0x78, 0x2C, +0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x25, 0x62, +0x78, 0x00, 0x00, 0x00, 0x72, 0x65, 0x67, 0x5F, +0x69, 0x64, 0x20, 0x25, 0x62, 0x78, 0x2C, 0x20, +0x72, 0x65, 0x67, 0x3A, 0x20, 0x25, 0x77, 0x78, +0x2C, 0x20, 0x76, 0x61, 0x6C, 0x20, 0x25, 0x62, +0x78, 0x2C, 0x20, 0x25, 0x62, 0x78, 0x00, 0x00, +0x63, 0x68, 0x31, 0x3A, 0x20, 0x25, 0x77, 0x78, +0x2C, 0x20, 0x63, 0x68, 0x32, 0x3A, 0x20, 0x25, +0x77, 0x78, 0x00, 0x00, 0x44, 0x6F, 0x20, 0x6E, +0x6F, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x31, +0x52, 0x43, 0x43, 0x41, 0x20, 0x77, 0x68, 0x65, +0x6E, 0x20, 0x72, 0x78, 0x20, 0x63, 0x6F, 0x6E, +0x66, 0x69, 0x67, 0x20, 0x69, 0x73, 0x20, 0x6E, +0x6F, 0x74, 0x20, 0x32, 0x52, 0x21, 0x00, 0x00, +0x25, 0x73, 0x20, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, +0x3D, 0x3E, 0x0A, 0x00, 0x55, 0x6E, 0x73, 0x75, +0x70, 0x70, 0x6F, 0x72, 0x74, 0x65, 0x64, 0x20, +0x70, 0x61, 0x74, 0x68, 0x20, 0x28, 0x25, 0x64, +0x29, 0x0A, 0x00, 0x00, 0x64, 0x69, 0x66, 0x66, +0x3D, 0x25, 0x64, 0x20, 0x72, 0x65, 0x66, 0x3D, +0x25, 0x64, 0x0A, 0x00, 0x70, 0x61, 0x74, 0x68, +0x2D, 0x25, 0x64, 0x20, 0x72, 0x61, 0x74, 0x65, +0x20, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x20, 0x30, +0x78, 0x25, 0x78, 0x20, 0x3D, 0x20, 0x30, 0x78, +0x25, 0x78, 0x0A, 0x00, 0x44, 0x69, 0x73, 0x61, +0x62, 0x6C, 0x65, 0x20, 0x50, 0x48, 0x59, 0x20, +0x41, 0x50, 0x49, 0x20, 0x66, 0x6F, 0x72, 0x20, +0x64, 0x65, 0x62, 0x75, 0x67, 0x0A, 0x00, 0x00, +0x55, 0x6E, 0x73, 0x75, 0x70, 0x70, 0x6F, 0x72, +0x74, 0x65, 0x64, 0x20, 0x72, 0x61, 0x74, 0x65, +0x0A, 0x00, 0x00, 0x00, 0x72, 0x61, 0x74, 0x65, +0x20, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x20, 0x30, +0x78, 0x25, 0x78, 0x20, 0x28, 0x30, 0x78, 0x25, +0x78, 0x29, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, +0x78, 0x0A, 0x00, 0x00, 0x70, 0x61, 0x74, 0x68, +0x2D, 0x25, 0x64, 0x20, 0x72, 0x61, 0x74, 0x65, +0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x25, 0x64, +0x20, 0x28, 0x30, 0x78, 0x25, 0x78, 0x29, 0x20, +0x3D, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0A, 0x00, +0x52, 0x46, 0x2D, 0x25, 0x64, 0x20, 0x30, 0x78, +0x25, 0x78, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, +0x78, 0x20, 0x2C, 0x20, 0x62, 0x69, 0x74, 0x20, +0x6D, 0x61, 0x73, 0x6B, 0x20, 0x3D, 0x20, 0x30, +0x78, 0x25, 0x78, 0x0A, 0x00, 0x00, 0x00, 0x00, +0x52, 0x46, 0x2D, 0x25, 0x64, 0x20, 0x30, 0x78, +0x25, 0x78, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, +0x78, 0x2C, 0x20, 0x62, 0x69, 0x74, 0x20, 0x6D, +0x61, 0x73, 0x6B, 0x20, 0x3D, 0x20, 0x30, 0x78, +0x25, 0x78, 0x0A, 0x00, 0x5B, 0x38, 0x38, 0x32, +0x32, 0x43, 0x5D, 0x20, 0x55, 0x70, 0x64, 0x61, +0x74, 0x65, 0x20, 0x52, 0x46, 0x45, 0x20, 0x50, +0x49, 0x4E, 0x73, 0x3A, 0x20, 0x54, 0x2F, 0x52, +0x58, 0x5F, 0x70, 0x61, 0x74, 0x68, 0x3A, 0x7B, +0x30, 0x78, 0x25, 0x78, 0x2C, 0x20, 0x30, 0x78, +0x25, 0x78, 0x7D, 0x2C, 0x20, 0x72, 0x66, 0x65, +0x5F, 0x74, 0x79, 0x70, 0x65, 0x3A, 0x25, 0x64, +0x0A, 0x00, 0x00, 0x00, 0x49, 0x6E, 0x76, 0x61, +0x6C, 0x69, 0x64, 0x20, 0x70, 0x61, 0x74, 0x68, +0x3D, 0x25, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x00, +0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x66, 0x61, +0x69, 0x6C, 0x2C, 0x20, 0x52, 0x46, 0x20, 0x69, +0x73, 0x20, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6C, +0x65, 0x0A, 0x00, 0x00, 0x52, 0x46, 0x2D, 0x25, +0x64, 0x20, 0x30, 0x78, 0x25, 0x78, 0x20, 0x3D, +0x20, 0x30, 0x78, 0x25, 0x78, 0x20, 0x28, 0x6F, +0x72, 0x69, 0x67, 0x69, 0x6E, 0x61, 0x6C, 0x3A, +0x20, 0x30, 0x78, 0x25, 0x78, 0x29, 0x2C, 0x20, +0x62, 0x69, 0x74, 0x20, 0x6D, 0x61, 0x73, 0x6B, +0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0A, +0x00, 0x00, 0x00, 0x00, 0x5B, 0x57, 0x61, 0x72, +0x6E, 0x69, 0x6E, 0x67, 0x5D, 0x5B, 0x25, 0x73, +0x5D, 0x20, 0x50, 0x6B, 0x67, 0x5F, 0x76, 0x65, +0x72, 0x7B, 0x62, 0x62, 0x2C, 0x20, 0x72, 0x66, +0x7D, 0x3D, 0x7B, 0x25, 0x64, 0x2C, 0x20, 0x25, +0x64, 0x7D, 0x20, 0x64, 0x69, 0x73, 0x61, 0x62, +0x6C, 0x65, 0x20, 0x61, 0x6C, 0x6C, 0x20, 0x42, +0x42, 0x20, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x0A, +0x00, 0x00, 0x00, 0x00, 0x50, 0x72, 0x65, 0x20, +0x73, 0x65, 0x74, 0x74, 0x69, 0x6E, 0x67, 0x3A, +0x20, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6C, 0x65, +0x20, 0x4F, 0x46, 0x44, 0x4D, 0x20, 0x61, 0x6E, +0x64, 0x20, 0x43, 0x43, 0x4B, 0x20, 0x62, 0x6C, +0x6F, 0x63, 0x6B, 0x0A, 0x00, 0x00, 0x00, 0x00, +0x50, 0x6F, 0x73, 0x74, 0x20, 0x73, 0x65, 0x74, +0x74, 0x69, 0x6E, 0x67, 0x3A, 0x20, 0x65, 0x6E, +0x61, 0x62, 0x6C, 0x65, 0x20, 0x4F, 0x46, 0x44, +0x4D, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x43, 0x43, +0x4B, 0x20, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x0A, +0x00, 0x00, 0x00, 0x00, 0x57, 0x72, 0x6F, 0x6E, +0x67, 0x20, 0x74, 0x79, 0x70, 0x65, 0x21, 0x21, +0x0A, 0x00, 0x00, 0x00, 0x44, 0x69, 0x73, 0x61, +0x62, 0x6C, 0x65, 0x20, 0x50, 0x48, 0x59, 0x20, +0x41, 0x50, 0x49, 0x20, 0x66, 0x6F, 0x72, 0x20, +0x64, 0x65, 0x62, 0x75, 0x67, 0x21, 0x21, 0x0A, +0x00, 0x00, 0x00, 0x00, 0x46, 0x61, 0x69, 0x6C, +0x20, 0x74, 0x6F, 0x20, 0x73, 0x77, 0x69, 0x74, +0x63, 0x68, 0x20, 0x62, 0x77, 0x28, 0x62, 0x77, +0x3A, 0x25, 0x64, 0x2C, 0x20, 0x70, 0x72, 0x69, +0x20, 0x63, 0x68, 0x3A, 0x25, 0x64, 0x29, 0x0A, +0x00, 0x00, 0x00, 0x00, 0x46, 0x61, 0x69, 0x6C, +0x20, 0x74, 0x6F, 0x20, 0x73, 0x77, 0x69, 0x74, +0x63, 0x68, 0x20, 0x62, 0x77, 0x20, 0x28, 0x62, +0x77, 0x3A, 0x25, 0x64, 0x2C, 0x20, 0x70, 0x72, +0x69, 0x20, 0x63, 0x68, 0x3A, 0x25, 0x64, 0x29, +0x0A, 0x00, 0x00, 0x00, 0x46, 0x61, 0x69, 0x6C, +0x20, 0x74, 0x6F, 0x20, 0x73, 0x77, 0x69, 0x74, +0x63, 0x68, 0x20, 0x62, 0x77, 0x20, 0x28, 0x62, +0x77, 0x3A, 0x25, 0x64, 0x2C, 0x20, 0x70, 0x72, +0x69, 0x6D, 0x61, 0x72, 0x79, 0x20, 0x63, 0x68, +0x3A, 0x25, 0x64, 0x29, 0x2C, 0x20, 0x62, 0x65, +0x63, 0x61, 0x75, 0x73, 0x65, 0x20, 0x77, 0x72, +0x69, 0x74, 0x69, 0x6E, 0x67, 0x20, 0x52, 0x46, +0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, +0x72, 0x20, 0x69, 0x73, 0x20, 0x66, 0x61, 0x69, +0x6C, 0x0A, 0x00, 0x00, 0x53, 0x75, 0x63, 0x63, +0x65, 0x73, 0x73, 0x20, 0x74, 0x6F, 0x20, 0x73, +0x77, 0x69, 0x74, 0x63, 0x68, 0x20, 0x62, 0x77, +0x20, 0x28, 0x62, 0x77, 0x3A, 0x25, 0x64, 0x2C, +0x20, 0x70, 0x72, 0x69, 0x20, 0x63, 0x68, 0x3A, +0x25, 0x64, 0x29, 0x0A, 0x00, 0x00, 0x00, 0x00, +0x70, 0x61, 0x74, 0x68, 0x5F, 0x73, 0x65, 0x6C, +0x5F, 0x32, 0x73, 0x73, 0x2F, 0x31, 0x73, 0x73, +0x2F, 0x63, 0x63, 0x6B, 0x3D, 0x7B, 0x25, 0x64, +0x2C, 0x20, 0x25, 0x64, 0x2C, 0x20, 0x25, 0x64, +0x7D, 0x0A, 0x00, 0x00, 0x5B, 0x25, 0x73, 0x5D, +0x20, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6C, 0x65, +0x20, 0x50, 0x48, 0x59, 0x20, 0x41, 0x50, 0x49, +0x0A, 0x00, 0x00, 0x00, 0x5B, 0x57, 0x61, 0x72, +0x6E, 0x69, 0x6E, 0x67, 0x5D, 0x5B, 0x25, 0x73, +0x5D, 0x20, 0x52, 0x58, 0x3A, 0x30, 0x78, 0x25, +0x78, 0x0A, 0x00, 0x00, 0x5B, 0x57, 0x61, 0x72, +0x6E, 0x69, 0x6E, 0x67, 0x5D, 0x5B, 0x25, 0x73, +0x5D, 0x20, 0x54, 0x58, 0x3A, 0x30, 0x78, 0x25, +0x78, 0x0A, 0x00, 0x00, 0x52, 0x58, 0x5F, 0x65, +0x6E, 0x3D, 0x25, 0x78, 0x2C, 0x20, 0x74, 0x78, +0x5F, 0x65, 0x6E, 0x2F, 0x32, 0x73, 0x73, 0x2F, +0x31, 0x73, 0x73, 0x3D, 0x7B, 0x25, 0x78, 0x2C, +0x25, 0x78, 0x2C, 0x25, 0x78, 0x7D, 0x0A, 0x00, +0x44, 0x69, 0x73, 0x61, 0x62, 0x6C, 0x65, 0x20, +0x50, 0x48, 0x59, 0x20, 0x41, 0x50, 0x49, 0x0A, +0x00, 0x00, 0x00, 0x00, 0x45, 0x72, 0x72, 0x6F, +0x72, 0x20, 0x43, 0x48, 0x3A, 0x25, 0x64, 0x0A, +0x00, 0x00, 0x00, 0x00, 0x49, 0x6E, 0x76, 0x61, +0x6C, 0x69, 0x64, 0x20, 0x52, 0x46, 0x5F, 0x30, +0x78, 0x31, 0x38, 0x0A, 0x00, 0x00, 0x00, 0x00, +0x5B, 0x25, 0x73, 0x5D, 0x74, 0x78, 0x5F, 0x31, +0x73, 0x73, 0x20, 0x69, 0x73, 0x20, 0x6E, 0x6F, +0x6E, 0x21, 0x2C, 0x20, 0x75, 0x70, 0x64, 0x61, +0x74, 0x65, 0x20, 0x74, 0x78, 0x5F, 0x31, 0x73, +0x74, 0x73, 0x3A, 0x25, 0x64, 0x0A, 0x00, 0x00, +0x5B, 0x25, 0x73, 0x5D, 0x74, 0x78, 0x5F, 0x61, +0x6E, 0x74, 0x5F, 0x73, 0x74, 0x61, 0x74, 0x75, +0x73, 0x20, 0x69, 0x73, 0x20, 0x6E, 0x6F, 0x6E, +0x21, 0x2C, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, +0x65, 0x20, 0x74, 0x78, 0x5F, 0x32, 0x73, 0x74, +0x73, 0x2F, 0x74, 0x78, 0x5F, 0x70, 0x61, 0x74, +0x68, 0x3A, 0x25, 0x64, 0x2F, 0x25, 0x64, 0x0A, +0x00, 0x00, 0x00, 0x00, 0x5B, 0x25, 0x73, 0x5D, +0x72, 0x78, 0x5F, 0x61, 0x6E, 0x74, 0x5F, 0x73, +0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x69, 0x73, +0x20, 0x6E, 0x6F, 0x6E, 0x21, 0x2C, 0x20, 0x75, +0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x72, 0x78, +0x5F, 0x70, 0x61, 0x74, 0x68, 0x3A, 0x25, 0x64, +0x0A, 0x00, 0x00, 0x00, 0x53, 0x77, 0x69, 0x74, +0x63, 0x68, 0x20, 0x43, 0x48, 0x3A, 0x25, 0x64, +0x20, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, +0x0A, 0x00, 0x00, 0x00, 0x55, 0x6E, 0x72, 0x65, +0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x20, 0x63, +0x6C, 0x61, 0x73, 0x73, 0x21, 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, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +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, 0x80, 0x0B, 0x70, 0x01, 0x80, 0x0B, 0x70, +0x01, 0x40, 0x14, 0x70, 0x01, 0x40, 0x24, 0x70, +0x01, 0x40, 0x34, 0x70, 0x01, 0x40, 0x44, 0x70, +0x01, 0x80, 0x5B, 0x70, 0x01, 0x40, 0x64, 0x70, +0x01, 0x80, 0x7B, 0x70, 0x01, 0x80, 0x8B, 0x70, +0x01, 0x80, 0x9B, 0x70, 0x01, 0x80, 0xAB, 0x70, +0x01, 0x80, 0xBB, 0x70, 0x01, 0x80, 0xCB, 0x70, +0x01, 0x80, 0xDB, 0x70, 0x01, 0x80, 0xEB, 0x70, +0x01, 0x80, 0xFB, 0x70, 0x01, 0x80, 0xFB, 0x70, +0x01, 0x80, 0x0B, 0x70, 0x01, 0x80, 0x0B, 0x70, +0x01, 0x40, 0x14, 0x70, 0x01, 0x40, 0x24, 0x70, +0x01, 0x40, 0x34, 0x70, 0x01, 0x40, 0x44, 0x70, +0x01, 0x80, 0x5B, 0x70, 0x01, 0x40, 0x64, 0x70, +0x01, 0x80, 0x7B, 0x70, 0x01, 0x80, 0x8B, 0x70, +0x01, 0x80, 0x9B, 0x70, 0x01, 0x80, 0xAB, 0x70, +0x01, 0x80, 0xBB, 0x70, 0x01, 0x80, 0xCB, 0x70, +0x01, 0x80, 0xDB, 0x70, 0x01, 0x80, 0xEB, 0x70, +0x01, 0x80, 0xFB, 0x70, 0x01, 0x80, 0xFB, 0x70, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, +0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x42, +0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x44, +0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x46, +0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x48, +0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x4A, +0x00, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00, 0x4C, +0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x4E, +0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x50, +0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x52, +0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x54, +0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x56, +0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x58, +0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x5A, +0x00, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x00, 0x5C, +0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x5E, +0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x60, +0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x62, +0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x64, +0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x66, +0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x68, +0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x6A, +0x00, 0x00, 0x00, 0x6B, 0x00, 0x00, 0x00, 0x6C, +0x00, 0x00, 0x00, 0x6D, 0x00, 0x00, 0x00, 0x6E, +0x00, 0x00, 0x00, 0x6F, 0x00, 0x00, 0x00, 0x70, +0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x72, +0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x74, +0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x76, +0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x78, +0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x7A, +0x00, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x7C, +0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x7E, +0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x80, +0x00, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, +0x08, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, +0x08, 0x00, 0xA7, 0x00, 0x00, 0x1B, 0x00, 0x00, +0x08, 0x00, 0x15, 0x00, 0x00, 0x1B, 0x00, 0x00, +0x08, 0x00, 0x00, 0x00, 0x04, 0x1B, 0x00, 0x00, +0x52, 0x29, 0x46, 0xE2, 0x08, 0x1B, 0x00, 0x00, +0x80, 0x00, 0x00, 0x00, 0x0C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x10, 0x1B, 0x00, 0x00, +0x00, 0x0C, 0x01, 0x00, 0x14, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x18, 0x1B, 0x00, 0x00, +0x03, 0x29, 0x29, 0x00, 0x1C, 0x1B, 0x00, 0x00, +0x32, 0xFC, 0x18, 0xA2, 0x20, 0x1B, 0x00, 0x00, +0x08, 0x00, 0x04, 0x01, 0x24, 0x1B, 0x00, 0x00, +0x08, 0x00, 0x06, 0x00, 0x28, 0x1B, 0x00, 0x00, +0x00, 0x03, 0x06, 0x00, 0x2C, 0x1B, 0x00, 0x00, +0x18, 0x00, 0x18, 0x00, 0x30, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x34, 0x1B, 0x00, 0x00, +0x00, 0x08, 0x00, 0x00, 0x38, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x3C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x98, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x9C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xC0, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0xCC, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xE4, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xEC, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x40, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x44, 0x1B, 0x00, 0x00, +0x64, 0x40, 0x00, 0x20, 0x48, 0x1B, 0x00, 0x00, +0x2D, 0x00, 0x05, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x60, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x10, 0x1F, 0x64, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x12, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x00, 0x50, 0x1B, 0x00, 0x00, +0xBE, 0x03, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x01, 0x50, 0x1B, 0x00, 0x00, +0x7A, 0x05, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x02, 0x50, 0x1B, 0x00, 0x00, +0xC8, 0x06, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x03, 0x50, 0x1B, 0x00, 0x00, +0xE0, 0x07, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x04, 0x50, 0x1B, 0x00, 0x00, +0xD5, 0x08, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x05, 0x50, 0x1B, 0x00, 0x00, +0xB2, 0x09, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x06, 0x50, 0x1B, 0x00, 0x00, +0x7D, 0x0A, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x07, 0x50, 0x1B, 0x00, 0x00, +0x3A, 0x0B, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x08, 0x50, 0x1B, 0x00, 0x00, +0xEB, 0x0B, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x09, 0x50, 0x1B, 0x00, 0x00, +0x92, 0x0C, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x0A, 0x50, 0x1B, 0x00, 0x00, +0x31, 0x0D, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x0B, 0x50, 0x1B, 0x00, 0x00, +0xC9, 0x0D, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x0C, 0x50, 0x1B, 0x00, 0x00, +0x5A, 0x0E, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x0D, 0x50, 0x1B, 0x00, 0x00, +0xE6, 0x0E, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x0E, 0x50, 0x1B, 0x00, 0x00, +0x6D, 0x0F, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x0F, 0x50, 0x1B, 0x00, 0x00, +0xF0, 0x0F, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x10, 0x50, 0x1B, 0x00, 0x00, +0x6F, 0x10, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x11, 0x50, 0x1B, 0x00, 0x00, +0xE9, 0x10, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x12, 0x50, 0x1B, 0x00, 0x00, +0x61, 0x11, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x13, 0x50, 0x1B, 0x00, 0x00, +0xD5, 0x11, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x14, 0x50, 0x1B, 0x00, 0x00, +0x47, 0x12, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x15, 0x50, 0x1B, 0x00, 0x00, +0xB5, 0x12, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x16, 0x50, 0x1B, 0x00, 0x00, +0x22, 0x13, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x17, 0x50, 0x1B, 0x00, 0x00, +0x8B, 0x13, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x18, 0x50, 0x1B, 0x00, 0x00, +0xF3, 0x13, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x19, 0x50, 0x1B, 0x00, 0x00, +0x59, 0x14, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x1A, 0x50, 0x1B, 0x00, 0x00, +0xBD, 0x14, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x1B, 0x50, 0x1B, 0x00, 0x00, +0x1E, 0x15, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x1C, 0x50, 0x1B, 0x00, 0x00, +0x7F, 0x15, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x1D, 0x50, 0x1B, 0x00, 0x00, +0xDD, 0x15, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x1E, 0x50, 0x1B, 0x00, 0x00, +0x3A, 0x16, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x1F, 0x50, 0x1B, 0x00, 0x00, +0x95, 0x16, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x20, 0x50, 0x1B, 0x00, 0x00, +0xEF, 0x16, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x21, 0x50, 0x1B, 0x00, 0x00, +0x48, 0x17, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x22, 0x50, 0x1B, 0x00, 0x00, +0x9F, 0x17, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x23, 0x50, 0x1B, 0x00, 0x00, +0xF5, 0x17, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x24, 0x50, 0x1B, 0x00, 0x00, +0x4A, 0x18, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x25, 0x50, 0x1B, 0x00, 0x00, +0x9E, 0x18, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x26, 0x50, 0x1B, 0x00, 0x00, +0xF1, 0x18, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x27, 0x50, 0x1B, 0x00, 0x00, +0x42, 0x19, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x28, 0x50, 0x1B, 0x00, 0x00, +0x93, 0x19, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x29, 0x50, 0x1B, 0x00, 0x00, +0xE2, 0x19, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x2A, 0x50, 0x1B, 0x00, 0x00, +0x31, 0x1A, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x2B, 0x50, 0x1B, 0x00, 0x00, +0x7F, 0x1A, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x2C, 0x50, 0x1B, 0x00, 0x00, +0xCC, 0x1A, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x2D, 0x50, 0x1B, 0x00, 0x00, +0x18, 0x1B, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x2E, 0x50, 0x1B, 0x00, 0x00, +0x63, 0x1B, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x2F, 0x50, 0x1B, 0x00, 0x00, +0xAD, 0x1B, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x30, 0x50, 0x1B, 0x00, 0x00, +0xF7, 0x1B, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x31, 0x50, 0x1B, 0x00, 0x00, +0x40, 0x1C, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x32, 0x50, 0x1B, 0x00, 0x00, +0x88, 0x1C, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x33, 0x50, 0x1B, 0x00, 0x00, +0xCF, 0x1C, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x34, 0x50, 0x1B, 0x00, 0x00, +0x16, 0x1D, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x35, 0x50, 0x1B, 0x00, 0x00, +0x5C, 0x1D, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x36, 0x50, 0x1B, 0x00, 0x00, +0xA2, 0x1D, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x37, 0x50, 0x1B, 0x00, 0x00, +0xE6, 0x1D, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x38, 0x50, 0x1B, 0x00, 0x00, +0x2B, 0x1E, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x39, 0x50, 0x1B, 0x00, 0x00, +0x6E, 0x1E, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x3A, 0x50, 0x1B, 0x00, 0x00, +0xB1, 0x1E, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x3B, 0x50, 0x1B, 0x00, 0x00, +0xF4, 0x1E, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x3C, 0x50, 0x1B, 0x00, 0x00, +0x35, 0x1F, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x3D, 0x50, 0x1B, 0x00, 0x00, +0x77, 0x1F, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x3E, 0x50, 0x1B, 0x00, 0x00, +0xB8, 0x1F, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x3F, 0x50, 0x1B, 0x00, 0x00, +0xF8, 0x1F, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x50, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x00, 0x5C, 0x1B, 0x00, 0x00, +0xFF, 0x3F, 0x6B, 0x3C, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x02, 0x5C, 0x1B, 0x00, 0x00, +0x0A, 0x39, 0xD9, 0x35, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x04, 0x5C, 0x1B, 0x00, 0x00, +0xD6, 0x32, 0xFE, 0x2F, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x06, 0x5C, 0x1B, 0x00, 0x00, +0x4F, 0x2D, 0xC6, 0x2A, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x08, 0x5C, 0x1B, 0x00, 0x00, +0x62, 0x28, 0x1F, 0x26, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x0A, 0x5C, 0x1B, 0x00, 0x00, +0xFD, 0x23, 0xFA, 0x21, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x0C, 0x5C, 0x1B, 0x00, 0x00, +0x13, 0x20, 0x48, 0x1E, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x0E, 0x5C, 0x1B, 0x00, 0x00, +0x96, 0x1C, 0xFD, 0x1A, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x10, 0x5C, 0x1B, 0x00, 0x00, +0x7B, 0x19, 0x0E, 0x18, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x12, 0x5C, 0x1B, 0x00, 0x00, +0xB5, 0x16, 0x70, 0x15, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x14, 0x5C, 0x1B, 0x00, 0x00, +0x3D, 0x14, 0x1B, 0x13, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x16, 0x5C, 0x1B, 0x00, 0x00, +0x0A, 0x12, 0x07, 0x11, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x18, 0x5C, 0x1B, 0x00, 0x00, +0x13, 0x10, 0x2D, 0x0F, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x1A, 0x5C, 0x1B, 0x00, 0x00, +0x54, 0x0E, 0x87, 0x0D, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x1C, 0x5C, 0x1B, 0x00, 0x00, +0xC5, 0x0C, 0x0E, 0x0C, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x1E, 0x5C, 0x1B, 0x00, 0x00, +0x62, 0x0B, 0xBF, 0x0A, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x20, 0x5C, 0x1B, 0x00, 0x00, +0x25, 0x0A, 0x93, 0x09, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x22, 0x5C, 0x1B, 0x00, 0x00, +0x0A, 0x09, 0x89, 0x08, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x24, 0x5C, 0x1B, 0x00, 0x00, +0x0F, 0x08, 0x9B, 0x07, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x26, 0x5C, 0x1B, 0x00, 0x00, +0x2E, 0x07, 0xC7, 0x06, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x28, 0x5C, 0x1B, 0x00, 0x00, +0x66, 0x06, 0x0B, 0x06, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x2A, 0x5C, 0x1B, 0x00, 0x00, +0xB4, 0x05, 0x63, 0x05, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x2C, 0x5C, 0x1B, 0x00, 0x00, +0x15, 0x05, 0xCD, 0x04, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x2E, 0x5C, 0x1B, 0x00, 0x00, +0x88, 0x04, 0x47, 0x04, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x30, 0x5C, 0x1B, 0x00, 0x00, +0x0A, 0x04, 0xD0, 0x03, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x32, 0x5C, 0x1B, 0x00, 0x00, +0x99, 0x03, 0x66, 0x03, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x34, 0x5C, 0x1B, 0x00, 0x00, +0x35, 0x03, 0x07, 0x03, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x36, 0x5C, 0x1B, 0x00, 0x00, +0xDC, 0x02, 0xB3, 0x02, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x38, 0x5C, 0x1B, 0x00, 0x00, +0x8C, 0x02, 0x68, 0x02, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x3A, 0x5C, 0x1B, 0x00, 0x00, +0x45, 0x02, 0x25, 0x02, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x3C, 0x5C, 0x1B, 0x00, 0x00, +0x06, 0x02, 0xE9, 0x01, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x3E, 0x5C, 0x1B, 0x00, 0x00, +0xCE, 0x01, 0xB4, 0x01, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x40, 0x5C, 0x1B, 0x00, 0x00, +0x9C, 0x01, 0x85, 0x01, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x42, 0x5C, 0x1B, 0x00, 0x00, +0x6F, 0x01, 0x5A, 0x01, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x44, 0x5C, 0x1B, 0x00, 0x00, +0x47, 0x01, 0x35, 0x01, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x46, 0x5C, 0x1B, 0x00, 0x00, +0x23, 0x01, 0x13, 0x01, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x48, 0x5C, 0x1B, 0x00, 0x00, +0x04, 0x01, 0xF5, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x4A, 0x5C, 0x1B, 0x00, 0x00, +0xE7, 0x00, 0xDA, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x4C, 0x5C, 0x1B, 0x00, 0x00, +0xCE, 0x00, 0xC3, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x4E, 0x5C, 0x1B, 0x00, 0x00, +0xB8, 0x00, 0xAE, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x50, 0x5C, 0x1B, 0x00, 0x00, +0xA4, 0x00, 0x9B, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x52, 0x5C, 0x1B, 0x00, 0x00, +0x92, 0x00, 0x8A, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x54, 0x5C, 0x1B, 0x00, 0x00, +0x82, 0x00, 0x7B, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x56, 0x5C, 0x1B, 0x00, 0x00, +0x74, 0x00, 0x6E, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x58, 0x5C, 0x1B, 0x00, 0x00, +0x67, 0x00, 0x62, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x5A, 0x5C, 0x1B, 0x00, 0x00, +0x5C, 0x00, 0x57, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x5C, 0x5C, 0x1B, 0x00, 0x00, +0x52, 0x00, 0x4E, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x5E, 0x5C, 0x1B, 0x00, 0x00, +0x49, 0x00, 0x45, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x60, 0x5C, 0x1B, 0x00, 0x00, +0x41, 0x00, 0x3E, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x62, 0x5C, 0x1B, 0x00, 0x00, +0x3A, 0x00, 0x37, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x01, 0x62, 0x00, 0x1B, 0x00, 0x00, +0x0A, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, +0x0A, 0x00, 0xA7, 0x00, 0x00, 0x1B, 0x00, 0x00, +0x0A, 0x00, 0x15, 0x00, 0x00, 0x1B, 0x00, 0x00, +0x0A, 0x00, 0x00, 0x00, 0x04, 0x1B, 0x00, 0x00, +0x52, 0x29, 0x46, 0xE2, 0x08, 0x1B, 0x00, 0x00, +0x80, 0x00, 0x00, 0x00, 0x0C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x10, 0x1B, 0x00, 0x00, +0x00, 0x0C, 0x01, 0x00, 0x14, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x18, 0x1B, 0x00, 0x00, +0x03, 0x29, 0x29, 0x00, 0x1C, 0x1B, 0x00, 0x00, +0x32, 0xFC, 0x18, 0xA2, 0x20, 0x1B, 0x00, 0x00, +0x08, 0x00, 0x04, 0x01, 0x24, 0x1B, 0x00, 0x00, +0x08, 0x00, 0x06, 0x00, 0x28, 0x1B, 0x00, 0x00, +0x00, 0x03, 0x06, 0x00, 0x2C, 0x1B, 0x00, 0x00, +0x18, 0x00, 0x18, 0x00, 0x30, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x34, 0x1B, 0x00, 0x00, +0x00, 0x08, 0x00, 0x00, 0x38, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x3C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x98, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x9C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xC0, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0xCC, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xE4, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xEC, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x60, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x10, 0x1F, 0x64, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x12, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x00, 0x5C, 0x1B, 0x00, 0x00, +0xFF, 0x3F, 0x6B, 0x3C, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x02, 0x5C, 0x1B, 0x00, 0x00, +0x0A, 0x39, 0xD9, 0x35, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x04, 0x5C, 0x1B, 0x00, 0x00, +0xD6, 0x32, 0xFE, 0x2F, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x06, 0x5C, 0x1B, 0x00, 0x00, +0x4F, 0x2D, 0xC6, 0x2A, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x08, 0x5C, 0x1B, 0x00, 0x00, +0x62, 0x28, 0x1F, 0x26, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x0A, 0x5C, 0x1B, 0x00, 0x00, +0xFD, 0x23, 0xFA, 0x21, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x0C, 0x5C, 0x1B, 0x00, 0x00, +0x13, 0x20, 0x48, 0x1E, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x0E, 0x5C, 0x1B, 0x00, 0x00, +0x96, 0x1C, 0xFD, 0x1A, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x10, 0x5C, 0x1B, 0x00, 0x00, +0x7B, 0x19, 0x0E, 0x18, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x12, 0x5C, 0x1B, 0x00, 0x00, +0xB5, 0x16, 0x70, 0x15, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x14, 0x5C, 0x1B, 0x00, 0x00, +0x3D, 0x14, 0x1B, 0x13, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x16, 0x5C, 0x1B, 0x00, 0x00, +0x0A, 0x12, 0x07, 0x11, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x18, 0x5C, 0x1B, 0x00, 0x00, +0x13, 0x10, 0x2D, 0x0F, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x1A, 0x5C, 0x1B, 0x00, 0x00, +0x54, 0x0E, 0x87, 0x0D, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x1C, 0x5C, 0x1B, 0x00, 0x00, +0xC5, 0x0C, 0x0E, 0x0C, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x1E, 0x5C, 0x1B, 0x00, 0x00, +0x62, 0x0B, 0xBF, 0x0A, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x20, 0x5C, 0x1B, 0x00, 0x00, +0x25, 0x0A, 0x93, 0x09, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x22, 0x5C, 0x1B, 0x00, 0x00, +0x0A, 0x09, 0x89, 0x08, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x24, 0x5C, 0x1B, 0x00, 0x00, +0x0F, 0x08, 0x9B, 0x07, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x26, 0x5C, 0x1B, 0x00, 0x00, +0x2E, 0x07, 0xC7, 0x06, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x28, 0x5C, 0x1B, 0x00, 0x00, +0x66, 0x06, 0x0B, 0x06, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x2A, 0x5C, 0x1B, 0x00, 0x00, +0xB4, 0x05, 0x63, 0x05, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x2C, 0x5C, 0x1B, 0x00, 0x00, +0x15, 0x05, 0xCD, 0x04, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x2E, 0x5C, 0x1B, 0x00, 0x00, +0x88, 0x04, 0x47, 0x04, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x30, 0x5C, 0x1B, 0x00, 0x00, +0x0A, 0x04, 0xD0, 0x03, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x32, 0x5C, 0x1B, 0x00, 0x00, +0x99, 0x03, 0x66, 0x03, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x34, 0x5C, 0x1B, 0x00, 0x00, +0x35, 0x03, 0x07, 0x03, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x36, 0x5C, 0x1B, 0x00, 0x00, +0xDC, 0x02, 0xB3, 0x02, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x38, 0x5C, 0x1B, 0x00, 0x00, +0x8C, 0x02, 0x68, 0x02, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x3A, 0x5C, 0x1B, 0x00, 0x00, +0x45, 0x02, 0x25, 0x02, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x3C, 0x5C, 0x1B, 0x00, 0x00, +0x06, 0x02, 0xE9, 0x01, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x3E, 0x5C, 0x1B, 0x00, 0x00, +0xCE, 0x01, 0xB4, 0x01, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x40, 0x5C, 0x1B, 0x00, 0x00, +0x9C, 0x01, 0x85, 0x01, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x42, 0x5C, 0x1B, 0x00, 0x00, +0x6F, 0x01, 0x5A, 0x01, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x44, 0x5C, 0x1B, 0x00, 0x00, +0x47, 0x01, 0x35, 0x01, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x46, 0x5C, 0x1B, 0x00, 0x00, +0x23, 0x01, 0x13, 0x01, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x48, 0x5C, 0x1B, 0x00, 0x00, +0x04, 0x01, 0xF5, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x4A, 0x5C, 0x1B, 0x00, 0x00, +0xE7, 0x00, 0xDA, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x4C, 0x5C, 0x1B, 0x00, 0x00, +0xCE, 0x00, 0xC3, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x4E, 0x5C, 0x1B, 0x00, 0x00, +0xB8, 0x00, 0xAE, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x50, 0x5C, 0x1B, 0x00, 0x00, +0xA4, 0x00, 0x9B, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x52, 0x5C, 0x1B, 0x00, 0x00, +0x92, 0x00, 0x8A, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x54, 0x5C, 0x1B, 0x00, 0x00, +0x82, 0x00, 0x7B, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x56, 0x5C, 0x1B, 0x00, 0x00, +0x74, 0x00, 0x6E, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x58, 0x5C, 0x1B, 0x00, 0x00, +0x67, 0x00, 0x62, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x5A, 0x5C, 0x1B, 0x00, 0x00, +0x5C, 0x00, 0x57, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x5C, 0x5C, 0x1B, 0x00, 0x00, +0x52, 0x00, 0x4E, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x5E, 0x5C, 0x1B, 0x00, 0x00, +0x49, 0x00, 0x45, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x60, 0x5C, 0x1B, 0x00, 0x00, +0x41, 0x00, 0x3E, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x62, 0x5C, 0x1B, 0x00, 0x00, +0x3A, 0x00, 0x37, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x01, 0x62, 0x00, 0x1B, 0x00, 0x00, +0x0C, 0x00, 0x00, 0x00, 0xD4, 0x1B, 0x00, 0x00, +0xF0, 0x00, 0x00, 0x00, 0xB8, 0x1B, 0x00, 0x00, +0x20, 0x20, 0x20, 0x20, 0xBC, 0x1B, 0x00, 0x00, +0x20, 0x20, 0x20, 0x20, 0xC0, 0x1B, 0x00, 0x00, +0x20, 0x20, 0x20, 0x20, 0xC4, 0x1B, 0x00, 0x00, +0x20, 0x20, 0x20, 0x20, 0xC8, 0x1B, 0x00, 0x00, +0x04, 0x04, 0x04, 0x04, 0xCC, 0x1B, 0x00, 0x00, +0x04, 0x04, 0x04, 0x04, 0xD0, 0x1B, 0x00, 0x00, +0x04, 0x04, 0x04, 0x04, 0xD8, 0x1B, 0x00, 0x00, +0x04, 0x04, 0x04, 0x04, 0xDC, 0x1B, 0x00, 0x00, +0x20, 0x20, 0x20, 0x20, 0xE0, 0x1B, 0x00, 0x00, +0x04, 0x04, 0x04, 0x04, 0xE4, 0x1B, 0x00, 0x00, +0x17, 0x2F, 0x47, 0x77, 0xE8, 0x1B, 0x00, 0x00, +0x8F, 0xA7, 0xBF, 0xEF, 0xEC, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xF0, 0x1B, 0x00, 0x00, +0x39, 0x19, 0x1F, 0x1F, 0x04, 0x1B, 0x00, 0x00, +0x5B, 0x00, 0x00, 0x00, 0x08, 0x1B, 0x00, 0x00, +0x00, 0xC0, 0x00, 0xB0, 0x5C, 0x1B, 0x00, 0x00, +0x5B, 0x00, 0x00, 0x00, 0x60, 0x1B, 0x00, 0x00, +0x00, 0xC0, 0x00, 0xB0, 0xB4, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x50, 0x01, 0x60, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x51, 0x01, 0x61, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x52, 0x01, 0x62, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x53, 0x01, 0x63, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x54, 0x01, 0x64, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x55, 0x01, 0x6C, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x56, 0x01, 0x65, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x57, 0x01, 0x70, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x5C, 0x01, 0x75, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x5D, 0x01, 0x80, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x5E, 0x01, 0x81, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x5F, 0x01, 0x82, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x60, 0x01, 0x83, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x61, 0x01, 0x84, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x62, 0x01, 0x85, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x63, 0x01, 0x86, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x64, 0x01, 0x87, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x65, 0x01, 0x88, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x66, 0x01, 0x89, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x67, 0x01, 0xA0, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x68, 0x01, 0xA1, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x69, 0x01, 0xA2, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x6A, 0x01, 0xA3, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x6B, 0x01, 0xA4, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x6C, 0x01, 0xA5, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x6D, 0x01, 0xA6, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x6E, 0x01, 0xA7, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x6F, 0x01, 0xA8, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x70, 0x01, 0xA9, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x71, 0x01, 0xAA, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x72, 0x01, 0xAB, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x73, 0x01, 0xAC, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x74, 0x01, 0xAD, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x75, 0x01, 0xAE, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x76, 0x01, 0xAF, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x77, 0x01, 0xB0, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x78, 0x01, 0xB1, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x90, 0x01, 0x67, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x94, 0x01, 0x78, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x95, 0x01, 0x79, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x96, 0x01, 0x7A, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x97, 0x01, 0x6D, 0xFE, 0xFF, 0xFF, 0x00, 0x00, +0x00, 0x02, 0xE0, 0xFE, 0xE0, 0x00, 0x00, 0x00, +0x01, 0x02, 0xE1, 0xFE, 0xE1, 0x00, 0x00, 0x00, +0x02, 0x02, 0xE2, 0xFE, 0xE2, 0x00, 0x00, 0x00, +0x03, 0x02, 0xE3, 0xFE, 0xE3, 0x00, 0x00, 0x00, +0x04, 0x02, 0xE4, 0xFE, 0xE4, 0x00, 0x00, 0x00, +0x05, 0x02, 0xE5, 0xFE, 0xE5, 0x00, 0x00, 0x00, +0x06, 0x02, 0xE6, 0xFE, 0xE6, 0x00, 0x00, 0x00, +0x07, 0x02, 0xE7, 0xFE, 0xE7, 0x00, 0x00, 0x00, +0x08, 0x02, 0xE8, 0xFE, 0xE0, 0x01, 0x00, 0x00, +0x09, 0x02, 0xE9, 0xFE, 0xE1, 0x01, 0x00, 0x00, +0x0A, 0x02, 0xEA, 0xFE, 0xE2, 0x01, 0x00, 0x00, +0x0B, 0x02, 0xEB, 0xFE, 0xE3, 0x01, 0x00, 0x00, +0x0C, 0x02, 0xEC, 0xFE, 0xE4, 0x01, 0x00, 0x00, +0x0D, 0x02, 0xED, 0xFE, 0xE5, 0x01, 0x00, 0x00, +0x0E, 0x02, 0xEE, 0xFE, 0xE6, 0x01, 0x00, 0x00, +0x0F, 0x02, 0xEF, 0xFE, 0xE7, 0x01, 0x00, 0x00, +0x10, 0x02, 0xF0, 0xFE, 0xF0, 0x00, 0x00, 0x00, +0x11, 0x02, 0xF1, 0xFE, 0xF1, 0x00, 0x00, 0x00, +0x12, 0x02, 0xF2, 0xFE, 0xF2, 0x00, 0x00, 0x00, +0x13, 0x02, 0xF3, 0xFE, 0xF3, 0x00, 0x00, 0x00, +0x14, 0x02, 0xF4, 0xFE, 0xF4, 0x00, 0x00, 0x00, +0x15, 0x02, 0xF5, 0xFE, 0xF5, 0x00, 0x00, 0x00, +0x16, 0x02, 0xF6, 0xFE, 0xF6, 0x00, 0x00, 0x00, +0x17, 0x02, 0xF7, 0xFE, 0xF7, 0x00, 0x00, 0x00, +0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x15, 0xF0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, +0x15, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, +0x05, 0xF0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, +0x05, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, +0x10, 0xF0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, +0x10, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, +0xF5, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xF0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, +0x00, 0xF0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, +0x15, 0xF0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, +0x15, 0xF0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, +0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, +0x15, 0xF0, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, +0x01, 0x02, 0x03, 0x06, 0x05, 0x06, 0x07, 0x08, +0x09, 0x0A, 0x0B, 0xFF, 0xFF, 0x00, 0x01, 0x02, +0x02, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, +0x28, 0x28, 0x32, 0x28, 0x1E, 0x19, 0x19, 0x19, +0x18, 0x18, 0x12, 0x0F, 0x1E, 0x1E, 0x19, 0x1E, +0x18, 0x16, 0x0C, 0x0C, 0x1E, 0x1E, 0x19, 0x1E, +0x18, 0x16, 0x0C, 0x0C, 0x1E, 0x1E, 0x19, 0x1C, +0x18, 0x14, 0x0C, 0x0A, 0x1E, 0x1E, 0x19, 0x1E, +0x19, 0x18, 0x0F, 0x0E, 0x1E, 0x1E, 0x1E, 0x1E, +0x1C, 0x16, 0x14, 0x12, 0x0C, 0x0A, 0x1E, 0x1E, +0x1E, 0x1E, 0x1A, 0x16, 0x12, 0x10, 0x0C, 0x0A, +0x1E, 0x1E, 0x1E, 0x1E, 0x18, 0x16, 0x0D, 0x0E, +0x0C, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, +0x0A, 0x0A, 0x0A, 0x0A, 0x12, 0x12, 0x14, 0x12, +0x0F, 0x0F, 0x0C, 0x0C, 0x09, 0x08, 0x08, 0x07, +0x0A, 0x0A, 0x09, 0x07, 0x07, 0x06, 0x05, 0x04, +0x0C, 0x0C, 0x0A, 0x0A, 0x09, 0x07, 0x07, 0x06, +0x0C, 0x0C, 0x0A, 0x0A, 0x09, 0x07, 0x07, 0x06, +0x0C, 0x0C, 0x0A, 0x0A, 0x09, 0x07, 0x07, 0x06, +0x0A, 0x0A, 0x08, 0x08, 0x08, 0x07, 0x07, 0x06, +0x04, 0x04, 0x0C, 0x0C, 0x0A, 0x0A, 0x09, 0x07, +0x07, 0x06, 0x05, 0x04, 0x0C, 0x0C, 0x0A, 0x0A, +0x09, 0x07, 0x07, 0x06, 0x05, 0x04, 0x0A, 0x0A, +0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, +0x02, 0x02, 0x02, 0x04, 0x02, 0x04, 0x06, 0x06, +0x08, 0x08, 0x09, 0x09, 0x03, 0x06, 0x08, 0x08, +0x0A, 0x0E, 0x10, 0x18, 0x05, 0x08, 0x08, 0x08, +0x0A, 0x0E, 0x10, 0x18, 0x05, 0x08, 0x08, 0x09, +0x10, 0x14, 0x1C, 0x20, 0x04, 0x06, 0x08, 0x0A, +0x10, 0x18, 0x18, 0x20, 0x03, 0x06, 0x08, 0x09, +0x10, 0x14, 0x1C, 0x24, 0x34, 0x3A, 0x05, 0x07, +0x09, 0x0A, 0x10, 0x14, 0x1C, 0x28, 0x34, 0x3C, +0x06, 0x08, 0x0A, 0x0C, 0x12, 0x18, 0x1E, 0x2E, +0x36, 0x40, 0x0A, 0x0C, 0x0C, 0x12, 0x16, 0x1C, +0x20, 0x2E, 0x36, 0x40, 0x2C, 0x00, 0x04, 0x00, +0x2D, 0x00, 0x2C, 0x01, 0x2D, 0x01, 0x2C, 0x02, +0x2E, 0x01, 0xFF, 0x00, 0x2D, 0x02, 0xFF, 0x00, +0x36, 0x2D, 0xFF, 0x36, 0x2E, 0xFF, 0x37, 0x2F, +0xFF, 0x38, 0x30, 0xFF, 0x39, 0x31, 0xFF, 0x3A, +0x32, 0xFF, 0x3A, 0x33, 0xFF, 0x3A, 0x34, 0xFF, +0x3A, 0x35, 0xFF, 0x3B, 0xFF, 0xFF, 0x37, 0x2E, +0xFF, 0x38, 0x30, 0xFF, 0x39, 0x31, 0xFF, 0x3A, +0x32, 0xFF, 0x3B, 0x35, 0xFF, 0x3C, 0xFF, 0xFF, +0x3D, 0xFF, 0xFF, 0x3E, 0xFF, 0xFF, 0x3F, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0x37, 0xFF, 0x2F, 0x39, +0xFF, 0x31, 0xFF, 0x3A, 0x33, 0xFF, 0x3B, 0x35, +0xFF, 0x3D, 0xFF, 0xFF, 0xFF, 0x3E, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0x00, 0x00, 0x0D, 0x14, 0xFF, 0x15, +0x0E, 0xFF, 0x15, 0x0F, 0xFF, 0x16, 0x10, 0xFF, +0x17, 0x11, 0xFF, 0x18, 0x12, 0xFF, 0x18, 0x13, +0xFF, 0x18, 0xFF, 0xFF, 0x15, 0x0E, 0xFF, 0x16, +0x10, 0xFF, 0x17, 0x10, 0xFF, 0x18, 0x11, 0xFF, +0x19, 0xFF, 0xFF, 0x1A, 0xFF, 0xFF, 0x1B, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0x15, 0x13, 0x0F, 0x17, +0x1E, 0x11, 0x18, 0x1F, 0x13, 0x20, 0x19, 0xFF, +0x21, 0x1B, 0xFF, 0x22, 0xFF, 0xFF, 0x23, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0x04, 0x04, 0x04, 0x36, +0x2C, 0xFF, 0x2D, 0xFF, 0xFF, 0x2E, 0x37, 0xFF, +0x38, 0x2F, 0xFF, 0x39, 0x30, 0xFF, 0x39, 0x31, +0xFF, 0x39, 0x32, 0xFF, 0x3A, 0x33, 0xFF, 0x3A, +0x34, 0xFF, 0x2D, 0x2C, 0xFF, 0x36, 0x2E, 0xFF, +0x37, 0x2F, 0xFF, 0x38, 0x30, 0xFF, 0x33, 0x39, +0xFF, 0x35, 0x3A, 0xFF, 0x3B, 0x34, 0xFF, 0x3C, +0x3B, 0xFF, 0x3D, 0x3C, 0xFF, 0x3E, 0x3D, 0xFF, +0x37, 0x2E, 0xFF, 0x38, 0x2F, 0xFF, 0x39, 0x31, +0xFF, 0x3A, 0xFF, 0xFF, 0xFF, 0x3B, 0xFF, 0xFF, +0x3C, 0xFF, 0xFF, 0x3D, 0x3C, 0xFF, 0x3F, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, +0x04, 0xFF, 0xFF, 0x0C, 0xFF, 0xFF, 0x0D, 0x14, +0xFF, 0x0E, 0x15, 0xFF, 0x16, 0x0F, 0xFF, 0x17, +0x10, 0xFF, 0x17, 0x11, 0xFF, 0x17, 0x12, 0xFF, +0x0D, 0x0C, 0xFF, 0x14, 0x0E, 0xFF, 0x15, 0x0F, +0xFF, 0x16, 0x10, 0xFF, 0x17, 0x12, 0xFF, 0x18, +0x13, 0xFF, 0x19, 0x13, 0xFF, 0x1A, 0x13, 0xFF, +0x14, 0x0E, 0xFF, 0x15, 0x1C, 0xFF, 0x17, 0x1D, +0x11, 0x18, 0x1E, 0x13, 0x19, 0x1F, 0x1E, 0x20, +0x1A, 0x1F, 0x21, 0x1B, 0x20, 0x22, 0x21, 0x1B, +0x01, 0x00, 0x02, 0x00, 0x05, 0x00, 0x0B, 0x00, +0x06, 0x00, 0x09, 0x00, 0x0C, 0x00, 0x12, 0x00, +0x18, 0x00, 0x24, 0x00, 0x30, 0x00, 0x36, 0x00, +0x0E, 0x00, 0x1B, 0x00, 0x29, 0x00, 0x36, 0x00, +0x51, 0x00, 0x6C, 0x00, 0x7A, 0x00, 0x87, 0x00, +0x1B, 0x00, 0x36, 0x00, 0x51, 0x00, 0x6C, 0x00, +0xA2, 0x00, 0xD8, 0x00, 0xF3, 0x00, 0x0E, 0x01, +0x29, 0x00, 0x51, 0x00, 0x7A, 0x00, 0xA2, 0x00, +0xF3, 0x00, 0x44, 0x01, 0x6D, 0x01, 0x95, 0x01, +0x36, 0x00, 0x6C, 0x00, 0xA2, 0x00, 0xD8, 0x00, +0x44, 0x01, 0xB0, 0x01, 0xE6, 0x01, 0x1C, 0x02, +0x0E, 0x00, 0x1B, 0x00, 0x29, 0x00, 0x36, 0x00, +0x51, 0x00, 0x6C, 0x00, 0x7A, 0x00, 0x87, 0x00, +0xA2, 0x00, 0xB4, 0x00, 0x1B, 0x00, 0x36, 0x00, +0x51, 0x00, 0x6C, 0x00, 0xA2, 0x00, 0xD8, 0x00, +0xF3, 0x00, 0x0E, 0x01, 0x44, 0x01, 0x68, 0x01, +0x29, 0x00, 0x51, 0x00, 0x7A, 0x00, 0xA2, 0x00, +0xF3, 0x00, 0x44, 0x01, 0x6C, 0x01, 0x95, 0x01, +0xE6, 0x01, 0x1C, 0x02, 0x36, 0x00, 0x6C, 0x00, +0xA2, 0x00, 0xD8, 0x00, 0x44, 0x01, 0xB0, 0x01, +0xE6, 0x01, 0x1C, 0x02, 0x88, 0x02, 0xD0, 0x02, +0x14, 0x14, 0x15, 0x15, 0x16, 0x17, 0x17, 0x18, +0x1C, 0x1C, 0x1C, 0x1C, 0x1D, 0x1D, 0x1E, 0x1E, +0x1C, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x20, 0x20, +0x36, 0x36, 0x37, 0x37, 0x38, 0x39, 0x39, 0x3A, +0x3A, 0x3A, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, +0x41, 0x41, 0x42, 0x42, 0x43, 0x43, 0x00, 0x00, +0x40, 0x40, 0x41, 0x42, 0x43, 0x44, 0x44, 0x44, +0x45, 0x46, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, +0x00, 0x00, 0x30, 0xC0, 0xE0, 0x00, 0x00, 0x00, +0x00, 0x0C, 0x0E, 0x38, 0x18, 0x00, 0x00, 0x00, +0x00, 0x83, 0x01, 0x06, 0x80, 0x03, 0x00, 0x00, +0x00, 0x00, 0x70, 0xE0, 0x00, 0x00, 0x00, 0x00, +0xFC, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x30, 0xF0, 0x21, 0x6C, 0x00, 0xF0, 0x00, 0x4C, +0xBC, 0x65, 0x94, 0xB8, 0x00, 0x65, 0x00, 0x6D, +0xFE, 0xF7, 0x1F, 0x4D, 0xAC, 0xEC, 0x94, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0xF4, +0x00, 0x6D, 0xAD, 0xEC, 0x40, 0x6D, 0xAD, 0xEC, +0x94, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x1F, 0xF6, 0x00, 0x6C, 0x8C, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x77, 0xF0, 0x20, 0x6C, +0x80, 0xF0, 0x80, 0x9C, 0x80, 0xF0, 0x20, 0x6E, +0xCC, 0xEC, 0x18, 0x24, 0x30, 0xF0, 0x21, 0x6C, +0xFC, 0xF7, 0x1C, 0x4C, 0x80, 0x9C, 0xBC, 0x65, +0x30, 0xF0, 0x21, 0x6C, 0xFC, 0xF7, 0x18, 0x4C, +0x80, 0x9C, 0xFC, 0x65, 0x9F, 0x67, 0x77, 0xF0, +0x24, 0x6D, 0xE0, 0xF2, 0x90, 0xDD, 0x9D, 0x67, +0x77, 0xF0, 0x24, 0x6D, 0xE0, 0xF2, 0x94, 0xDD, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6C, +0xC0, 0xF1, 0x14, 0x4C, 0x00, 0x6E, 0x30, 0xF0, +0x20, 0x6F, 0x41, 0xF7, 0x08, 0x4F, 0xC0, 0xDC, +0x04, 0x4C, 0xE3, 0xEC, 0xB8, 0x67, 0xFB, 0x2D, +0x30, 0xF0, 0x20, 0x6C, 0x28, 0xF6, 0x08, 0x4C, +0x00, 0x6E, 0x30, 0xF0, 0x21, 0x6F, 0x35, 0xF2, +0x18, 0x4F, 0xC0, 0xDC, 0x04, 0x4C, 0xE3, 0xEC, +0xB8, 0x67, 0xFB, 0x2D, 0x10, 0xF0, 0x23, 0x6C, +0xC0, 0xF0, 0x01, 0x4C, 0x00, 0xEC, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF0, 0x70, 0x9B, 0x10, 0xF0, +0x23, 0x6A, 0xC0, 0xF0, 0x01, 0x4A, 0x40, 0xDB, +0x00, 0x1C, 0x80, 0x00, 0x80, 0x18, 0x80, 0x77, +0x80, 0x18, 0x80, 0x74, 0x80, 0x18, 0xA7, 0x74, +0x80, 0x18, 0x51, 0x77, 0x80, 0x18, 0xC1, 0x74, +0x80, 0x18, 0x48, 0x77, 0x00, 0x18, 0x67, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x54, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x21, 0x6A, 0x41, 0xF7, +0x08, 0x4C, 0x1D, 0xF0, 0x00, 0x4A, 0x43, 0xDC, +0xE0, 0xF7, 0x40, 0x98, 0x00, 0x6D, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC9, 0xF5, 0x48, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x01, 0xF0, 0x50, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xE1, 0xF7, 0x00, 0x4C, +0x01, 0x6D, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC9, 0xF5, 0x50, 0xDB, 0x30, 0xF0, 0x20, 0x6C, +0x30, 0xF0, 0x21, 0x6A, 0x81, 0xF7, 0x14, 0x4C, +0x1D, 0xF4, 0x00, 0x4A, 0x43, 0xDC, 0xE0, 0xF7, +0x40, 0x98, 0x00, 0x6D, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC9, 0xF5, 0x4C, 0xDB, 0x80, 0x18, +0x78, 0x79, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, +0x70, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, 0x10, 0xF0, +0x00, 0x6D, 0x40, 0xAB, 0xAB, 0xED, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF7, 0x58, 0x9A, 0x40, 0xEA, +0x00, 0x1C, 0xAB, 0x39, 0xFF, 0x17, 0x00, 0x65, +0x6D, 0xB8, 0x00, 0x65, 0x00, 0xF0, 0x20, 0x6A, +0x7C, 0x4A, 0x6C, 0xEA, 0x1C, 0x22, 0x00, 0xF0, +0x20, 0x6B, 0x28, 0x4B, 0x6A, 0xEA, 0x0B, 0x61, +0x4E, 0xB8, 0x00, 0x65, 0x00, 0xF0, 0x20, 0x6B, +0x01, 0x4B, 0x6B, 0xE2, 0x60, 0xAA, 0xBF, 0xF6, +0x1A, 0x6A, 0x6A, 0xEA, 0x31, 0x60, 0x77, 0xF0, +0x24, 0x6A, 0xA0, 0xF1, 0x1C, 0x4A, 0x1D, 0xF4, +0x00, 0x6B, 0x60, 0xDA, 0x10, 0xF0, 0x23, 0x6A, +0xE1, 0xF2, 0x19, 0x4A, 0x00, 0xEA, 0x00, 0xF0, +0x20, 0x6A, 0x1F, 0xF7, 0x00, 0x6A, 0x4C, 0xEB, +0x4C, 0xB8, 0x00, 0x65, 0x6C, 0xEA, 0x42, 0x32, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF0, 0x00, 0x4B, +0x49, 0xE3, 0x40, 0xA2, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF1, 0x08, 0x4B, 0x69, 0xE2, 0x30, 0xF0, +0x20, 0x6B, 0x80, 0xF2, 0x04, 0x4B, 0x60, 0x9B, +0x05, 0x2B, 0x10, 0xF0, 0x23, 0x6B, 0x60, 0xF3, +0x1D, 0x4B, 0x00, 0xEB, 0x10, 0xF0, 0x23, 0x6B, +0x00, 0xF4, 0x11, 0x4B, 0x00, 0xEB, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF1, 0x14, 0x4A, +0x00, 0xF0, 0x20, 0x6B, 0x01, 0x6B, 0x60, 0xDA, +0x10, 0xF0, 0x23, 0x6B, 0x40, 0xF2, 0x05, 0x4B, +0x00, 0xEB, 0x00, 0x65, 0x5A, 0xB8, 0x00, 0x65, +0x7B, 0xB8, 0x00, 0x65, 0x40, 0xE8, 0x5A, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x7B, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF1, 0x14, 0x4A, 0x00, 0xF0, +0x20, 0x6B, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF1, 0x0C, 0x4A, 0x60, 0x9A, 0x41, 0x9A, +0x6A, 0xEA, 0x0D, 0x61, 0x6E, 0xB8, 0x00, 0x65, +0x62, 0x43, 0xCB, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x5A, 0xB8, 0x00, 0x65, 0x7B, 0xB8, +0x00, 0x65, 0x00, 0xBA, 0x00, 0x65, 0x36, 0x23, +0xDF, 0xF7, 0x00, 0x03, 0x86, 0xDB, 0xA7, 0xDB, +0xC8, 0xDB, 0xE9, 0xDB, 0x0A, 0xDB, 0x2B, 0xDB, +0x98, 0x67, 0x8C, 0xDB, 0x9F, 0x67, 0x8E, 0xDB, +0x12, 0xEC, 0x10, 0xED, 0x82, 0xDB, 0xA3, 0xDB, +0x9A, 0xB8, 0x00, 0x65, 0x84, 0xDB, 0x9B, 0xB8, +0x00, 0x65, 0x85, 0xDB, 0x8E, 0xB8, 0x00, 0x65, +0x82, 0x44, 0x81, 0xDB, 0x8C, 0xB8, 0x00, 0x65, +0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF1, +0x0C, 0x4B, 0x60, 0x9B, 0x9D, 0x67, 0x89, 0xDB, +0x6A, 0x9B, 0xCF, 0xF7, 0x80, 0x44, 0x62, 0xEC, +0x0D, 0x60, 0x77, 0xF0, 0x24, 0x6C, 0xA0, 0xF1, +0x1C, 0x4C, 0x1D, 0xF4, 0x01, 0x6B, 0x60, 0xDC, +0x10, 0xF0, 0x23, 0x6C, 0xE1, 0xF2, 0x19, 0x4C, +0x00, 0xEC, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF1, 0x0C, 0x4B, 0x41, 0x9B, 0x40, 0xDB, +0x89, 0x9A, 0xBC, 0x65, 0x7D, 0x67, 0xDF, 0xF7, +0x00, 0x03, 0x4C, 0xB8, 0x00, 0x65, 0x00, 0xF0, +0x20, 0x6D, 0x05, 0x4D, 0xAF, 0xED, 0xAC, 0xEA, +0xA0, 0x9B, 0x04, 0x6C, 0x8C, 0xED, 0xAD, 0xEA, +0x82, 0x9B, 0xA3, 0x9B, 0x32, 0xEC, 0x30, 0xED, +0x8E, 0x9B, 0xFC, 0x65, 0x8C, 0x9B, 0x1C, 0x65, +0x84, 0x9B, 0x5C, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x85, 0x9B, 0x7C, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x2B, 0x9B, 0x0A, 0x9B, +0xE9, 0x9B, 0xC8, 0x9B, 0xA7, 0x9B, 0x86, 0x9B, +0x61, 0x9B, 0xCB, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x8A, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x7B, 0xB8, 0x00, 0x65, 0x5A, 0xB8, +0x00, 0x65, 0x00, 0xBA, 0xDF, 0xF7, 0x00, 0x03, +0x86, 0xDB, 0xA7, 0xDB, 0xC8, 0xDB, 0xE9, 0xDB, +0x0A, 0xDB, 0x2B, 0xDB, 0x98, 0x67, 0x8C, 0xDB, +0x9F, 0x67, 0x8E, 0xDB, 0x12, 0xEC, 0x10, 0xED, +0x82, 0xDB, 0xA3, 0xDB, 0x9A, 0xB8, 0x00, 0x65, +0x84, 0xDB, 0x9B, 0xB8, 0x00, 0x65, 0x85, 0xDB, +0x7D, 0x67, 0x5B, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x40, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x41, 0xF3, 0x08, 0x4C, 0x00, 0xF4, 0x00, 0x4C, +0xBC, 0x65, 0x82, 0x67, 0x40, 0xEA, 0x00, 0x65, +0x7A, 0xB8, 0x00, 0x65, 0xBB, 0x65, 0xDF, 0xF7, +0x00, 0x03, 0x82, 0x9B, 0xA3, 0x9B, 0x32, 0xEC, +0x30, 0xED, 0x8E, 0x9B, 0xFC, 0x65, 0x8C, 0x9B, +0x1C, 0x65, 0x84, 0x9B, 0x5C, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x85, 0x9B, 0x7C, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x2B, 0x9B, +0x0A, 0x9B, 0xE9, 0x9B, 0xC8, 0x9B, 0xA7, 0x9B, +0x86, 0x9B, 0x5A, 0xB8, 0x00, 0x65, 0x7B, 0xB8, +0x00, 0x65, 0x00, 0xBA, 0x00, 0x65, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF1, 0x14, 0x4B, +0x40, 0xDB, 0xDF, 0xF7, 0x00, 0x03, 0x86, 0xDB, +0xA7, 0xDB, 0xC8, 0xDB, 0xE9, 0xDB, 0x0A, 0xDB, +0x2B, 0xDB, 0x98, 0x67, 0x8C, 0xDB, 0x9F, 0x67, +0x8E, 0xDB, 0x12, 0xEC, 0x10, 0xED, 0x82, 0xDB, +0xA3, 0xDB, 0x9A, 0xB8, 0x00, 0x65, 0x84, 0xDB, +0x9B, 0xB8, 0x00, 0x65, 0x85, 0xDB, 0x8E, 0xB8, +0x00, 0x65, 0x81, 0xDB, 0x8C, 0xB8, 0x00, 0x65, +0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF1, +0x0C, 0x4B, 0x60, 0x9B, 0x9D, 0x67, 0x89, 0xDB, +0x6A, 0x9B, 0xCF, 0xF7, 0x80, 0x44, 0x62, 0xEC, +0x0D, 0x60, 0x77, 0xF0, 0x24, 0x6C, 0xA0, 0xF1, +0x1C, 0x4C, 0x1D, 0xF4, 0x01, 0x6B, 0x60, 0xDC, +0x10, 0xF0, 0x23, 0x6C, 0xE1, 0xF2, 0x19, 0x4C, +0x00, 0xEC, 0x00, 0x65, 0x40, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x41, 0xF3, 0x08, 0x4C, 0x00, 0xF4, +0x00, 0x4C, 0xBC, 0x65, 0x82, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF1, 0x14, 0x4C, +0x00, 0xF0, 0x20, 0x6D, 0xA0, 0xDC, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF1, 0x0C, 0x4A, 0x10, 0xF0, +0x23, 0x6B, 0xA0, 0xF4, 0x19, 0x4B, 0x00, 0xEB, +0x61, 0x9A, 0x60, 0xDA, 0x49, 0x9B, 0xBA, 0x65, +0xDF, 0xF7, 0x00, 0x03, 0x4C, 0xB8, 0x00, 0x65, +0x00, 0xF0, 0x20, 0x6D, 0x05, 0x4D, 0xAF, 0xED, +0xAC, 0xEA, 0xA0, 0x9B, 0x00, 0xF0, 0x20, 0x6C, +0x04, 0x4C, 0x8C, 0xED, 0xAD, 0xEA, 0x82, 0x9B, +0xA3, 0x9B, 0x32, 0xEC, 0x30, 0xED, 0x8E, 0x9B, +0xFC, 0x65, 0x8C, 0x9B, 0x1C, 0x65, 0x84, 0x9B, +0x5C, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x85, 0x9B, 0x7C, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x2B, 0x9B, 0x0A, 0x9B, 0xE9, 0x9B, +0xC8, 0x9B, 0xA7, 0x9B, 0x86, 0x9B, 0x61, 0x9B, +0xCB, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x8A, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x7B, 0xB8, 0x00, 0x65, 0x5A, 0xB8, 0x00, 0x65, +0x00, 0xBA, 0x00, 0x65, 0x5F, 0x67, 0x5A, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x18, +0x1B, 0xC2, 0x00, 0x1C, 0xBA, 0x35, 0x5A, 0xB8, +0x00, 0x65, 0x00, 0xEA, 0x6D, 0xB8, 0x00, 0xF0, +0x20, 0x6A, 0x00, 0xF2, 0x00, 0x4A, 0x4F, 0xEA, +0x4C, 0xEB, 0xAB, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x5F, 0x67, 0x5A, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x1C, 0x7D, 0x35, +0x5A, 0xB8, 0x00, 0x65, 0x00, 0xEA, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, 0x64, 0x9B, +0xFF, 0x6A, 0x8C, 0xEA, 0x80, 0xA3, 0x10, 0x6B, +0x8C, 0xEB, 0x05, 0x23, 0xE2, 0xF1, 0x10, 0x4A, +0xE2, 0xF1, 0x10, 0x6B, 0x31, 0x10, 0x7F, 0x4A, +0x09, 0x4A, 0x88, 0x6B, 0x15, 0x10, 0x1F, 0xF7, +0x00, 0x6C, 0x6C, 0xEC, 0x02, 0xF0, 0x00, 0x74, +0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, +0xA3, 0xF0, 0x80, 0x9C, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6C, 0xA3, 0xF0, 0x84, 0x9C, 0xC0, 0xA5, +0x91, 0xE3, 0x01, 0x4D, 0xC0, 0xC4, 0x01, 0x4B, +0x4A, 0xEB, 0xE9, 0x61, 0x20, 0xE8, 0x1F, 0xF7, +0x00, 0x6C, 0x6C, 0xEC, 0x02, 0xF0, 0x00, 0x74, +0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, +0xA3, 0xF0, 0x80, 0x9C, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6C, 0xA3, 0xF0, 0x84, 0x9C, 0xC0, 0xA5, +0x91, 0xE3, 0x01, 0x4D, 0xC0, 0xC4, 0x01, 0x4B, +0x4A, 0xEB, 0xE9, 0x61, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, +0x54, 0x9A, 0x64, 0x9C, 0xFF, 0x68, 0xAC, 0xE8, +0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0x30, 0xF0, 0x20, 0x6D, 0x05, 0xF4, 0x08, 0x4C, +0x42, 0xF5, 0x14, 0x4D, 0x80, 0x18, 0x48, 0x43, +0x01, 0x70, 0x14, 0x61, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF2, 0xA0, 0x9B, 0x83, 0xF2, 0x1C, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF2, 0x14, 0x6C, 0x00, 0xF3, 0x00, 0x6D, +0x00, 0x6E, 0x15, 0x10, 0x02, 0x70, 0x14, 0x61, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0xA0, 0x9B, +0x83, 0xF2, 0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x14, 0x6C, +0x00, 0xF3, 0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0x67, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6C, +0x6B, 0xF0, 0x08, 0x48, 0x4B, 0xF1, 0x06, 0x4C, +0x07, 0x6E, 0x40, 0xEA, 0xC0, 0xF0, 0x9E, 0xA0, +0x00, 0x18, 0x89, 0xDC, 0xA4, 0xF5, 0x58, 0xA0, +0x1F, 0x6B, 0x01, 0x6C, 0x4A, 0x32, 0x6C, 0xEA, +0xC0, 0xF0, 0x7E, 0xA0, 0x47, 0xEB, 0x8C, 0xEA, +0x03, 0x22, 0xA4, 0xF5, 0x79, 0xC0, 0x04, 0x10, +0x01, 0x6A, 0x4B, 0xEA, 0xA4, 0xF5, 0x59, 0xC0, +0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, +0xA4, 0xF5, 0x78, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, +0x1A, 0x22, 0x03, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xA4, 0xF5, 0x58, 0xC0, 0x00, 0x18, 0x0A, 0xE5, +0x04, 0xD2, 0x04, 0x93, 0xA4, 0xF5, 0x5C, 0x98, +0x6E, 0xEA, 0x03, 0x22, 0x04, 0x94, 0x00, 0x18, +0x2B, 0xE5, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xA4, 0xF5, 0x98, 0xA2, 0x02, 0x6B, +0x8D, 0xEB, 0xA4, 0xF5, 0x78, 0xC2, 0x07, 0x97, +0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x68, +0x8C, 0xE8, 0x90, 0x67, 0x00, 0x18, 0x62, 0xCF, +0x90, 0x67, 0x00, 0x18, 0x34, 0xE7, 0x01, 0x6C, +0x00, 0x18, 0x8F, 0xC6, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF1, 0x7E, 0xA2, 0x07, 0x6A, 0x6C, 0xEA, +0x0E, 0xEA, 0x02, 0x2A, 0x80, 0x18, 0xB6, 0x5F, +0x90, 0x67, 0x01, 0x6D, 0x00, 0x18, 0xDB, 0xCE, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF2, 0x44, 0xA2, +0x10, 0x6B, 0x6E, 0xEA, 0x01, 0x5A, 0x58, 0x67, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x09, 0xF2, 0x44, 0xA2, 0x01, 0x5A, 0x58, 0x67, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x09, 0xF2, 0x47, 0xA2, 0x01, 0x6B, 0x6E, 0xEA, +0x01, 0x5A, 0x58, 0x67, 0x20, 0xE8, 0x00, 0x65, +0x00, 0x6A, 0x40, 0xC4, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x46, 0xF1, 0x08, 0x4B, +0x00, 0x6C, 0x40, 0xA3, 0x0B, 0x2A, 0x05, 0x6B, +0x78, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF1, +0x08, 0x4A, 0x01, 0x6B, 0x12, 0xEC, 0x49, 0xE4, +0x60, 0xC2, 0x20, 0xE8, 0x01, 0x4C, 0x08, 0x74, +0x05, 0x4B, 0xEF, 0x61, 0x00, 0x6A, 0x20, 0xE8, +0x06, 0x5C, 0x08, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x88, 0x34, 0xE6, 0xF0, 0x04, 0x4A, 0x49, 0xE4, +0xA0, 0xDA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xE6, 0xF0, 0x04, 0x4A, 0x70, 0x9A, 0x01, 0x4B, +0x70, 0xDA, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x68, 0x80, 0xF2, 0x48, 0x9A, 0xE6, 0xF0, +0x04, 0x48, 0x90, 0x67, 0x64, 0x6E, 0x00, 0x6D, +0x40, 0xEA, 0x01, 0x6A, 0x10, 0xF0, 0x32, 0x6D, +0x56, 0xC8, 0x00, 0x6C, 0x30, 0x6A, 0xF4, 0xF0, +0x1D, 0x4D, 0x57, 0xC8, 0x00, 0x18, 0xF6, 0xC1, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x10, 0xF0, 0x32, 0x6D, +0x01, 0x6C, 0x14, 0xF4, 0x1D, 0x4D, 0x00, 0x18, +0xF6, 0xC1, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF3, 0x44, 0x9A, 0x42, 0xF1, 0x18, 0x6C, +0x01, 0x6D, 0x02, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x17, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF0, 0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF0, 0x50, 0x9A, 0x60, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF0, 0x58, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF1, +0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xEF, 0x9A, +0x23, 0xF0, 0x7C, 0x9B, 0x8C, 0x9A, 0xCE, 0x9A, +0xAD, 0x9A, 0xE0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF0, 0x60, 0x9B, 0xC0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF0, 0x64, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x68, 0x9B, +0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x89, 0x9A, +0x43, 0xF0, 0x6C, 0x9B, 0x80, 0xDB, 0x68, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, 0x50, 0x9A, +0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF1, +0x6C, 0xAA, 0x00, 0x6A, 0x0B, 0x10, 0x30, 0xF0, +0x20, 0x6C, 0x48, 0x35, 0x60, 0xF2, 0x08, 0x4C, +0x91, 0xE5, 0x80, 0x9C, 0x05, 0x24, 0x01, 0x4A, +0xFF, 0x6C, 0x8C, 0xEA, 0x63, 0xEA, 0xF3, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x94, 0x9B, +0x40, 0x32, 0x7F, 0x6B, 0xA0, 0xA4, 0x48, 0x32, +0x04, 0x6E, 0xAC, 0xEB, 0x60, 0xC4, 0x7D, 0x67, +0x08, 0xD2, 0x40, 0xF4, 0x1C, 0x4A, 0x4C, 0xCB, +0x80, 0x6A, 0x4B, 0xEA, 0x5A, 0xC3, 0x01, 0x6A, +0x5B, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, +0x58, 0x9A, 0x06, 0x04, 0xFF, 0xF7, 0x1F, 0x68, +0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, +0x1C, 0x4A, 0xA0, 0x9A, 0x00, 0x18, 0xB3, 0xD6, +0x04, 0x6A, 0xA2, 0x67, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF0, 0xE0, 0x9A, 0x90, 0x67, +0x07, 0x06, 0x00, 0x18, 0xD2, 0xD6, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF0, 0x1C, 0x4B, 0x60, 0x9B, +0x24, 0x42, 0x0C, 0xE9, 0x48, 0x6A, 0x30, 0xF0, +0x20, 0x6E, 0x7D, 0xE1, 0x00, 0x6C, 0xA2, 0x67, +0x00, 0xF1, 0x00, 0x4E, 0x04, 0xD2, 0x00, 0x18, +0xD2, 0xD6, 0x45, 0xE1, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF0, 0x1C, 0x4A, 0x40, 0x9A, 0x0C, 0xE9, +0x30, 0xF0, 0x20, 0x6E, 0x00, 0xF4, 0x00, 0x6D, +0x5D, 0xE1, 0x01, 0x6C, 0x41, 0xF3, 0x08, 0x4E, +0x04, 0xD5, 0x00, 0x18, 0xD2, 0xD6, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF0, 0x1C, 0x4B, 0x60, 0x9B, +0x08, 0x95, 0x45, 0xE1, 0x0C, 0xE9, 0x30, 0xF0, +0x21, 0x6E, 0x0C, 0xED, 0x1D, 0xF0, 0x00, 0x4E, +0x7D, 0xE1, 0x02, 0x6C, 0x04, 0xD5, 0x00, 0x18, +0xD2, 0xD6, 0x01, 0x6C, 0xA4, 0x67, 0x80, 0x18, +0x20, 0x01, 0x00, 0x1C, 0xAC, 0x39, 0x30, 0xF0, +0x20, 0x6C, 0x6B, 0xF0, 0x08, 0x4C, 0x01, 0x6A, +0x08, 0xD4, 0xCA, 0xF1, 0x10, 0x68, 0x09, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x58, 0x9A, +0xFF, 0x69, 0x40, 0xA2, 0x4C, 0xE9, 0x0D, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x58, 0x9A, +0xFF, 0x69, 0x01, 0x6C, 0x40, 0xA2, 0x4C, 0xE9, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x40, 0xEA, 0xF2, 0x21, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF0, 0x58, 0x9A, 0x00, 0x6B, 0xE5, 0xF7, +0x1D, 0x58, 0x60, 0xC2, 0x09, 0x61, 0x9D, 0x67, +0x7A, 0xA4, 0x80, 0x6A, 0x4B, 0xEA, 0x6D, 0xEA, +0x5A, 0xC4, 0xE5, 0xF7, 0x1C, 0x69, 0x06, 0x10, +0x9D, 0x67, 0x7A, 0xA4, 0x7F, 0x6A, 0x30, 0x67, +0x6C, 0xEA, 0x5A, 0xC4, 0x5D, 0x67, 0x9A, 0xA2, +0x2C, 0xCA, 0x7F, 0x6A, 0x64, 0x67, 0x4C, 0xEB, +0x01, 0x4B, 0x4C, 0xEB, 0x80, 0x4A, 0x81, 0x4A, +0x8C, 0xEA, 0x6D, 0xEA, 0x9D, 0x67, 0x5A, 0xC4, +0x01, 0x6A, 0x5B, 0xC4, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF0, 0xBC, 0x9A, 0x06, 0x04, 0x04, 0x6E, +0x00, 0x18, 0xB3, 0xD6, 0x09, 0x92, 0x0C, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x08, 0x96, 0x63, 0xF0, +0xE0, 0x9A, 0x03, 0x6C, 0xCA, 0xF1, 0x10, 0x6D, +0x04, 0xD1, 0x00, 0x18, 0xD2, 0xD6, 0x08, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x08, 0x94, 0x63, 0xF0, +0xA0, 0x9A, 0xD1, 0x67, 0x00, 0x18, 0xB3, 0xD6, +0x23, 0xE0, 0xFF, 0xF7, 0x1F, 0x6A, 0x01, 0x6C, +0x4C, 0xE8, 0xA4, 0x67, 0x80, 0x18, 0x20, 0x01, +0x06, 0x20, 0x08, 0x93, 0x00, 0x6C, 0x09, 0xD4, +0x2D, 0xE3, 0x08, 0xD3, 0x95, 0x17, 0xFF, 0x17, +0x4C, 0xB8, 0x00, 0x65, 0x80, 0x34, 0x8D, 0xEA, +0x8A, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x4C, 0xB8, 0x00, 0x65, +0x80, 0x34, 0x8F, 0xEC, 0x8C, 0xEA, 0x8A, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF1, 0x00, 0x4A, +0x60, 0xDA, 0x81, 0xDA, 0xA2, 0xDA, 0xC3, 0xDA, +0xE4, 0xDA, 0x05, 0xDA, 0x26, 0xDA, 0x78, 0x67, +0x67, 0xDA, 0x7D, 0x67, 0x68, 0xDA, 0x7F, 0x67, +0x69, 0xDA, 0x12, 0xEB, 0x6A, 0xDA, 0x10, 0xEB, +0x6B, 0xDA, 0x6D, 0xB8, 0x00, 0x65, 0x6C, 0xDA, +0x68, 0xB8, 0x00, 0x65, 0x6D, 0xDA, 0x6C, 0xB8, +0x00, 0x65, 0x6E, 0xDA, 0x6E, 0xB8, 0x00, 0x65, +0x6F, 0xDA, 0x10, 0xF0, 0x23, 0x6A, 0x61, 0xF0, +0x15, 0x4A, 0x00, 0xEA, 0x00, 0x65, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0x70, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0x41, 0xF3, 0x09, 0x4A, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF0, +0x44, 0x9A, 0x08, 0x6B, 0x40, 0xA2, 0x4C, 0xEB, +0x00, 0x6A, 0x11, 0x23, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF0, 0x48, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0x9A, 0xC9, 0xF5, 0x54, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF0, 0x4C, 0x9A, 0xC9, 0xF5, +0x14, 0x4B, 0x40, 0x9A, 0x41, 0xDB, 0x20, 0xE8, +0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x23, 0xF0, 0x90, 0x9C, 0x10, 0xF0, 0x23, 0x6B, +0x81, 0xF3, 0x11, 0x4B, 0x60, 0xDC, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF0, 0x64, 0x9B, 0x80, 0xA3, +0x08, 0x6B, 0x8C, 0xEB, 0x1C, 0x23, 0x05, 0x5A, +0x1A, 0x60, 0x0C, 0x6D, 0xB8, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF0, 0x68, 0x9B, 0x80, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xC9, 0xF5, 0x1C, 0x4B, +0x12, 0xEA, 0x49, 0xE3, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF0, 0x6C, 0x9B, 0x81, 0xDA, 0x80, 0xA2, +0x60, 0x9B, 0x62, 0xDA, 0x01, 0x6B, 0x8D, 0xEB, +0x60, 0xC2, 0x01, 0x6A, 0x20, 0xE8, 0x00, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF0, 0x90, 0x9C, +0x10, 0xF0, 0x23, 0x6B, 0xE1, 0xF3, 0x15, 0x4B, +0x60, 0xDC, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, +0x64, 0x9B, 0x80, 0xA3, 0x08, 0x6B, 0x8C, 0xEB, +0x1B, 0x23, 0x05, 0x5A, 0x19, 0x60, 0x0C, 0x6C, +0x98, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC9, 0xF5, +0x1C, 0x4B, 0x12, 0xEA, 0x69, 0xE2, 0x80, 0xA2, +0x01, 0x6B, 0x8C, 0xEB, 0x0D, 0x23, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF0, 0x68, 0x9B, 0x42, 0x9A, +0xA0, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, +0x6C, 0x9B, 0x60, 0x9B, 0x4B, 0xE3, 0x20, 0xE8, +0x00, 0x6A, 0x20, 0xE8, 0xFF, 0x6B, 0x8C, 0xEB, +0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF0, 0x90, 0x9C, +0x10, 0xF0, 0x23, 0x6A, 0x41, 0xF4, 0x15, 0x4A, +0x05, 0x5B, 0x40, 0xDC, 0x00, 0x6A, 0x11, 0x60, +0x0C, 0x6C, 0x98, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0xC9, 0xF5, 0x1C, 0x4A, 0x12, 0xEB, 0x4D, 0xE3, +0x80, 0xA3, 0x02, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, +0x40, 0xC3, 0x00, 0x6A, 0x41, 0xDB, 0x42, 0xDB, +0x01, 0x6A, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, +0x70, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0x81, 0xF4, +0x15, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF7, 0x50, 0x9A, 0x40, 0xEA, 0x03, 0x22, +0x00, 0x18, 0xD2, 0xC2, 0x05, 0x10, 0x10, 0xF0, +0x23, 0x68, 0x41, 0xF3, 0x09, 0x48, 0xBA, 0xFE, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF0, 0x70, 0x9B, 0x10, 0xF0, +0x23, 0x6A, 0xC1, 0xF4, 0x11, 0x4A, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x50, 0x9A, +0xFF, 0x68, 0x8C, 0xE8, 0x40, 0xEA, 0x04, 0x22, +0x90, 0x67, 0x00, 0x18, 0xE4, 0xC2, 0x06, 0x10, +0x90, 0x67, 0x10, 0xF0, 0x23, 0x68, 0x81, 0xF3, +0x11, 0x48, 0xBA, 0xFE, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, +0x70, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0x01, 0xF5, +0x15, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF7, 0x50, 0x9A, 0xFF, 0x68, 0x8C, 0xE8, +0x40, 0xEA, 0x04, 0x22, 0x90, 0x67, 0x00, 0x18, +0xFD, 0xC2, 0x06, 0x10, 0x90, 0x67, 0x10, 0xF0, +0x23, 0x68, 0xE1, 0xF3, 0x15, 0x48, 0xBA, 0xFE, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF0, 0x70, 0x9B, 0x10, 0xF0, +0x23, 0x6A, 0x41, 0xF5, 0x19, 0x4A, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x50, 0x9A, +0xFF, 0x68, 0x8C, 0xE8, 0x40, 0xEA, 0x04, 0x22, +0x90, 0x67, 0x00, 0x18, 0x15, 0xC3, 0x06, 0x10, +0x90, 0x67, 0x10, 0xF0, 0x23, 0x68, 0x41, 0xF4, +0x15, 0x48, 0xBA, 0xFE, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0x10, 0xF0, 0x23, 0x6A, +0x40, 0xF2, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF6, 0x48, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x00, 0xF4, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF6, 0x4C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xA0, 0xF4, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF6, 0x50, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x20, 0xF5, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF6, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x61, 0xF0, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF6, 0x58, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xE1, 0xF2, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF6, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x61, 0xF0, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF7, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x3C, 0xF6, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF7, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xBA, 0xF4, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF7, 0x48, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x5A, 0xF2, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF7, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xDA, 0xF5, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF7, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xFA, 0xF6, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF7, 0x54, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xFA, 0xF5, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF7, 0x58, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x7A, 0xF1, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF7, 0x5C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xBB, 0xF6, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF7, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x7B, 0xF5, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF7, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xFB, 0xF5, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF7, 0x48, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x5C, 0xF1, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF7, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x5C, 0xF7, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF7, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xBC, 0xF1, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF7, 0x54, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xFC, 0xF0, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF7, 0x58, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x5B, 0xF6, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF7, 0x5C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xFA, 0xF5, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF7, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xDA, 0xF0, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF7, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xD9, 0xF6, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF7, 0x48, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x1C, 0xF6, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF7, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xB9, 0xF6, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF7, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xFB, 0xF1, 0x04, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF7, 0x54, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xFB, 0xF7, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF7, 0x58, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xBC, 0xF6, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF7, 0x5C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x1B, 0xF7, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF7, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x7B, 0xF6, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF7, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xFB, 0xF1, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF7, 0x48, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x41, 0xF0, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF7, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x5A, 0xF0, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF7, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x1A, 0xF0, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF7, 0x54, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xFA, 0xF0, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF7, 0x58, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x5A, 0xF2, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF7, 0x5C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x9A, 0xF3, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF7, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xFA, 0xF1, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF7, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x5C, 0xF3, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF7, 0x48, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x5C, 0xF4, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF7, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x3C, 0xF2, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF7, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xBC, 0xF4, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF7, 0x54, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x1C, 0xF5, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF7, 0x58, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xFB, 0xF1, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF7, 0x5C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x9B, 0xF4, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF7, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x1B, 0xF3, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF7, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x1B, 0xF2, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF7, 0x48, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x5A, 0xF7, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF7, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xBB, 0xF0, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF7, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x5B, 0xF0, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF7, 0x54, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x9A, 0xF7, 0x04, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF7, 0x58, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x5B, 0xF1, 0x04, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF7, 0x5C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x7B, 0xF1, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF7, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x9C, 0xF7, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF7, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xFC, 0xF7, 0x04, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF7, 0x48, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x1D, 0xF0, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF7, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x79, 0xF6, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF7, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xDD, 0xF0, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF7, 0x54, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x1D, 0xF1, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF7, 0x58, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x3D, 0xF1, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF7, 0x5C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x9D, 0xF3, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF7, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xFD, 0xF3, 0x04, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF7, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x3D, 0xF4, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF7, 0x48, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x5D, 0xF4, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF7, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x9D, 0xF4, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF7, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xDD, 0xF4, 0x04, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF7, 0x54, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xFD, 0xF6, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF7, 0x58, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x3D, 0xF7, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF7, 0x5C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x7D, 0xF7, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x01, 0xF0, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x1E, 0xF1, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x01, 0xF0, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x7E, 0xF1, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x01, 0xF0, 0x48, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x9E, 0xF1, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x28, 0xF6, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xDE, 0xF1, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x01, 0xF0, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xDE, 0xF3, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x01, 0xF0, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x3E, 0xF4, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x01, 0xF0, 0x54, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x7E, 0xF4, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x01, 0xF0, 0x58, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xBE, 0xF4, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x01, 0xF0, 0x5C, 0xDB, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0x24, 0x67, 0x4C, 0xE9, 0x4C, 0xED, +0x2E, 0x34, 0x07, 0x6B, 0x01, 0x75, 0x4C, 0xEC, +0x2C, 0xEB, 0x22, 0x61, 0x30, 0xF0, 0x20, 0x68, +0x6B, 0xF0, 0x08, 0x48, 0x11, 0xE4, 0x01, 0x6A, +0x44, 0xEB, 0x63, 0xF3, 0x74, 0xA4, 0x00, 0x6D, +0x6D, 0xEA, 0x63, 0xF3, 0x54, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF3, 0x40, 0x9A, 0x91, 0x67, +0x40, 0xEA, 0xC0, 0xF0, 0x5F, 0xA0, 0x4E, 0xE9, +0x1F, 0x29, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF0, +0x50, 0x9A, 0x40, 0x9A, 0x50, 0x32, 0x00, 0xF5, +0x42, 0x32, 0x03, 0xF6, 0x44, 0xC8, 0x14, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x51, 0xE4, 0x01, 0x6A, 0x44, 0xEB, 0x63, 0xF3, +0x74, 0xA4, 0x4F, 0xEA, 0x01, 0x6D, 0x6C, 0xEA, +0x63, 0xF3, 0x54, 0xC4, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x40, 0x9A, 0x91, 0x67, 0x40, 0xEA, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x68, 0x63, 0xF0, +0x54, 0x9A, 0x8C, 0xE8, 0x0C, 0x30, 0x0D, 0xD5, +0x4D, 0xE8, 0x00, 0x69, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF0, 0x58, 0x9A, 0x60, 0xF6, 0x13, 0x6C, +0x80, 0x6D, 0x00, 0xDA, 0x06, 0x02, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, +0x00, 0x6E, 0x14, 0x6F, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF0, 0x5C, 0x9A, 0x0D, 0x94, +0x01, 0x48, 0x60, 0x9A, 0x29, 0xE4, 0x04, 0x49, +0x18, 0x71, 0x60, 0xDA, 0xE3, 0x61, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x68, 0x83, 0xF0, +0x40, 0x9A, 0x8C, 0xE8, 0x0C, 0x30, 0x0D, 0xD5, +0x4D, 0xE8, 0x00, 0x69, 0x0D, 0x93, 0x60, 0xF6, +0x13, 0x6C, 0x80, 0x6D, 0x29, 0xE3, 0x60, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, 0x44, 0x9A, +0x00, 0x6E, 0x14, 0x6F, 0x60, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF0, 0x58, 0x9A, 0x04, 0x49, +0x00, 0xDA, 0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, 0x01, 0x48, +0x40, 0xEA, 0x18, 0x71, 0xE3, 0x61, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x8C, 0xE8, +0x63, 0xF0, 0x54, 0x9A, 0x00, 0x30, 0x0C, 0x30, +0x0D, 0xD5, 0x4D, 0xE8, 0x00, 0x69, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF0, 0x48, 0x9A, 0x80, 0xF6, +0x1B, 0x6C, 0x80, 0x6D, 0x00, 0xDA, 0x06, 0x02, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, +0x48, 0x9A, 0x00, 0x6E, 0x14, 0x6F, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, 0x4C, 0x9A, +0x0D, 0x94, 0x00, 0xF1, 0x00, 0x48, 0x60, 0x9A, +0x29, 0xE4, 0x04, 0x49, 0x14, 0x71, 0x60, 0xDA, +0xE2, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x68, 0x30, 0xF0, +0x20, 0x6A, 0x8C, 0xE8, 0x83, 0xF0, 0x40, 0x9A, +0x00, 0x30, 0x0C, 0x30, 0x0D, 0xD5, 0x4D, 0xE8, +0x00, 0x69, 0x0D, 0x93, 0x80, 0xF6, 0x1B, 0x6C, +0x80, 0x6D, 0x29, 0xE3, 0x60, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF0, 0x4C, 0x9A, 0x00, 0x6E, +0x14, 0x6F, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF0, 0x48, 0x9A, 0x04, 0x49, 0x00, 0xDA, +0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x48, 0x9A, 0x00, 0xF1, 0x00, 0x48, +0x40, 0xEA, 0x14, 0x71, 0xE2, 0x61, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF0, 0x74, 0x9B, 0xFF, 0x6A, +0x8C, 0xEA, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF0, 0x70, 0x9B, 0x05, 0x67, 0x40, 0xF6, +0x17, 0x6C, 0x40, 0xDB, 0x06, 0x02, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, +0x80, 0x6D, 0x00, 0x6E, 0x14, 0x6F, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, 0x54, 0x9A, +0x09, 0x97, 0x40, 0x9A, 0x40, 0xD8, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF0, 0x58, 0x9A, 0x40, 0x9A, +0x41, 0xD8, 0x08, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF0, 0x60, 0x9B, 0xFF, 0x6A, 0x8C, 0xEA, +0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0x9D, +0x83, 0xF0, 0x74, 0x9B, 0x00, 0x6E, 0x14, 0x6F, +0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x81, 0x9D, +0x83, 0xF0, 0x78, 0x9B, 0x80, 0x6D, 0x80, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0x70, 0x9B, +0x40, 0xF6, 0x17, 0x6C, 0x40, 0xDB, 0x06, 0x02, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, +0x48, 0x9A, 0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, +0x01, 0x6B, 0xAC, 0xEA, 0x6E, 0xEA, 0x01, 0x5A, +0x58, 0x67, 0x05, 0x5C, 0x48, 0x32, 0x03, 0x61, +0x01, 0x6A, 0x4B, 0xEA, 0x20, 0xE8, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF0, 0xB0, 0x9B, 0x30, 0xF0, +0x20, 0x6E, 0x83, 0xF0, 0xDC, 0x9E, 0x60, 0x9D, +0x00, 0xF7, 0x80, 0x34, 0xCC, 0xEB, 0x6D, 0xEC, +0x80, 0xDD, 0x1F, 0xF7, 0x00, 0x6B, 0x60, 0xF5, +0x80, 0x42, 0x8C, 0xEB, 0x02, 0xF0, 0x00, 0x73, +0x01, 0x60, 0x09, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF0, 0x60, 0x9B, 0x60, 0xF5, 0x00, 0x4A, +0x69, 0xE2, 0x40, 0x9A, 0x20, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x44, 0x9A, 0x51, 0xE4, +0x40, 0x9C, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF2, 0xCC, 0x9B, 0xFE, 0x63, 0x22, 0xF2, +0x0C, 0x4B, 0x00, 0xD6, 0xC1, 0x9B, 0x64, 0xAB, +0xFF, 0x6A, 0x01, 0xD6, 0x4C, 0xED, 0xDD, 0x67, +0x4C, 0xEC, 0x64, 0xCE, 0x3C, 0x25, 0x84, 0x33, +0x6D, 0xE6, 0xA0, 0xAB, 0x1F, 0xF7, 0x00, 0x6B, +0xAC, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, +0x26, 0x2B, 0x84, 0x32, 0x7D, 0x67, 0x49, 0xE3, +0xA0, 0xAA, 0x1F, 0xF7, 0x00, 0x6A, 0xAC, 0xEA, +0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x0B, 0x2A, +0x84, 0x34, 0xBD, 0x67, 0x91, 0xE5, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x40, 0x9A, 0x60, 0xAC, +0x4D, 0xE3, 0x40, 0xA3, 0x0B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x60, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x44, 0x9A, 0x6D, 0xE5, +0x55, 0xE5, 0x40, 0xA5, 0xFF, 0x6C, 0x8C, 0xEA, +0x08, 0x6D, 0xAD, 0xEA, 0x3E, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF0, 0x84, 0x9B, 0x91, 0xE5, +0x60, 0xA4, 0x08, 0x6D, 0x4C, 0xEB, 0xAD, 0xEB, +0x4C, 0xEB, 0x60, 0xC4, 0x34, 0x10, 0x84, 0x32, +0xDD, 0x67, 0x49, 0xE6, 0x60, 0xAA, 0x1F, 0xF7, +0x00, 0x6A, 0x6C, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x20, 0x2A, 0x84, 0x32, 0x7D, 0x67, +0x49, 0xE3, 0xA0, 0xAA, 0x1F, 0xF7, 0x00, 0x6A, +0xAC, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, +0x09, 0x2A, 0x84, 0x34, 0xBD, 0x67, 0x91, 0xE5, +0x30, 0xF0, 0x20, 0x6A, 0x60, 0xAC, 0xA3, 0xF0, +0x40, 0x9A, 0x10, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x44, 0x9A, 0x6D, 0xE5, 0x55, 0xE5, +0x80, 0xA5, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x44, 0x9A, 0x4D, 0xE3, 0x80, 0xA3, +0xF7, 0x6A, 0x8C, 0xEA, 0x40, 0xC3, 0x02, 0x63, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, +0x01, 0x74, 0xAC, 0xEA, 0x13, 0x60, 0x03, 0x24, +0x02, 0x74, 0x15, 0x60, 0x18, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, 0xE3, 0xF5, +0xBC, 0xA3, 0x01, 0x6C, 0x4C, 0xEC, 0x02, 0x6A, +0x4B, 0xEA, 0xAC, 0xEA, 0x8D, 0xEA, 0xE3, 0xF5, +0x5C, 0xC3, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x6E, 0xF6, 0x47, 0xC3, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xEE, 0xF6, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x48, 0x9A, 0x60, 0xA2, +0x10, 0x6A, 0x6C, 0xEA, 0x1C, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xE3, 0xF5, +0x9C, 0xA2, 0xE3, 0xF5, 0xBF, 0xA2, 0x01, 0x6B, +0x8C, 0xEB, 0x7F, 0x6C, 0xAC, 0xEC, 0x7C, 0x33, +0x8D, 0xEB, 0xFF, 0x6C, 0x8C, 0xEB, 0x30, 0xF0, +0x20, 0x6C, 0xA3, 0xF0, 0x8C, 0x9C, 0x60, 0xC4, +0x63, 0xF6, 0x78, 0xA2, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x50, 0x9A, 0x60, 0xC2, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x48, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x4B, 0xF1, 0x06, 0x4C, 0x00, 0x6D, 0x07, 0x6E, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x54, 0x9A, +0x60, 0xA2, 0xFF, 0x6A, 0x6C, 0xEA, 0xFF, 0x72, +0x00, 0x6A, 0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x58, 0x9A, 0x60, 0xA2, 0x07, 0x6A, +0x6C, 0xEA, 0x07, 0x6B, 0x6E, 0xEA, 0x01, 0x5A, +0x58, 0x67, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xEC, +0x01, 0x74, 0xAC, 0xEA, 0x03, 0x60, 0x02, 0x74, +0x09, 0x60, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x02, 0x6B, 0x03, 0xF6, +0x66, 0xC2, 0x15, 0x10, 0x09, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xC0, 0xF0, +0x65, 0xA2, 0x03, 0xF6, 0x66, 0xC2, 0x05, 0x10, +0xFF, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x6E, 0xF6, +0x4E, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x03, 0xF6, 0x66, 0xA2, 0xE3, 0xF5, +0x9C, 0xA2, 0x03, 0xF6, 0x67, 0xC2, 0x40, 0x6B, +0x8D, 0xEB, 0xE3, 0xF5, 0x7C, 0xC2, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0xDE, 0xC5, +0x01, 0x72, 0x11, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xE3, 0xF5, 0x9C, 0xA2, +0x04, 0x6B, 0x8C, 0xEB, 0x08, 0x2B, 0x63, 0xF6, +0x98, 0xA2, 0x05, 0x5C, 0x04, 0x60, 0x24, 0xF5, +0x74, 0xDA, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x01, 0x74, 0x18, 0x60, 0x03, 0x24, 0x02, 0x74, +0x0B, 0x60, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x44, 0xF5, 0x6E, 0xAA, +0x01, 0x4B, 0x44, 0xF5, 0x6E, 0xCA, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x44, 0xF5, 0x72, 0xAA, 0x01, 0x4B, 0x44, 0xF5, +0x72, 0xCA, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x44, 0xF5, 0x70, 0xAA, +0x01, 0x4B, 0x44, 0xF5, 0x70, 0xCA, 0xE3, 0xF5, +0x9D, 0xA2, 0x03, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0xE3, 0xF5, 0x7D, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF4, 0x5C, 0x9A, 0xFF, 0x6B, 0x6C, 0xEC, +0x00, 0x6D, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, 0xC5, 0x67, +0xFF, 0x6C, 0x40, 0xEA, 0x01, 0x6C, 0x0C, 0x6D, +0x00, 0x18, 0xB3, 0xC5, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, +0x30, 0xF0, 0x20, 0x6F, 0x6B, 0xF0, 0x08, 0x4F, +0xC0, 0xF0, 0x17, 0xA7, 0x01, 0x6B, 0xFF, 0x6A, +0x0C, 0xEB, 0x4C, 0xEB, 0x4C, 0xEC, 0x4C, 0xED, +0x4C, 0xEE, 0x05, 0x23, 0xC0, 0xF0, 0x59, 0xA7, +0xFF, 0x72, 0xA0, 0xF0, 0x04, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xE3, 0xF5, +0x1D, 0xA2, 0x20, 0x6F, 0xFF, 0x6B, 0x0C, 0xEF, +0x80, 0xF0, 0x15, 0x2F, 0xC0, 0xF0, 0x17, 0xA2, +0x01, 0x6F, 0xEC, 0xE8, 0x6C, 0xE8, 0x53, 0x28, +0xE3, 0xF5, 0x1C, 0xA2, 0x0C, 0xEF, 0x6C, 0xEF, +0x08, 0x27, 0x03, 0xF6, 0x7A, 0xA2, 0x03, 0x4B, +0x03, 0xF6, 0x75, 0xC2, 0x03, 0xF6, 0x74, 0xC2, +0x08, 0x10, 0x06, 0x6F, 0x03, 0xF6, 0xF5, 0xC2, +0x06, 0x4E, 0x05, 0x6F, 0x03, 0xF6, 0xF4, 0xC2, +0x6C, 0xEE, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x03, 0xF6, 0xF3, 0xA2, 0x03, 0xF6, +0x74, 0xA2, 0xE3, 0xEB, 0x09, 0x61, 0x03, 0xF6, +0x75, 0xA2, 0x03, 0xF6, 0xC8, 0xC2, 0x71, 0xE4, +0xB7, 0xE4, 0x03, 0xF6, 0xB6, 0xC2, 0x09, 0x10, +0x03, 0xF6, 0x95, 0xA2, 0x77, 0xE5, 0xB9, 0xE6, +0x6F, 0xE4, 0x03, 0xF6, 0xC8, 0xC2, 0x03, 0xF6, +0x76, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x03, 0xF6, 0x75, 0xA2, 0x03, 0xF6, +0x96, 0xA2, 0x0A, 0x4B, 0x82, 0xEB, 0x02, 0x60, +0x03, 0xF6, 0x76, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x03, 0xF6, 0x76, 0xA2, +0x03, 0xF6, 0x88, 0xA2, 0x23, 0x4B, 0x82, 0xEB, +0x02, 0x60, 0x03, 0xF6, 0x68, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x03, 0xF6, +0x76, 0xA2, 0x03, 0xF6, 0x70, 0xCA, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x5C, 0x9A, 0x60, 0xA2, +0x07, 0x23, 0x60, 0xA2, 0xFF, 0x6A, 0x4C, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x6E, 0xF6, 0x78, 0xCA, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA0, 0xF0, 0x9E, 0xA2, 0x18, 0x6B, 0x8C, 0xEB, +0x10, 0x73, 0x0C, 0x61, 0x03, 0xF6, 0x7A, 0xA2, +0x03, 0x6C, 0x03, 0x4B, 0x03, 0xF6, 0x76, 0xC2, +0xC0, 0xF0, 0x61, 0xA2, 0x76, 0x33, 0x8C, 0xEB, +0x03, 0xF6, 0x68, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF0, 0x40, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x6E, 0xF6, 0x98, 0xAC, 0xA0, 0xA2, 0xFF, 0x6B, +0x6C, 0xED, 0x8E, 0xED, 0x02, 0x25, 0x8C, 0xEB, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xE3, 0xF5, 0x9D, 0xA2, 0x41, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0x02, 0x10, 0x40, 0x6B, +0x0D, 0xEB, 0xE3, 0xF5, 0x7D, 0xC2, 0x01, 0x90, +0x01, 0x63, 0x20, 0xE8, 0xFB, 0x63, 0x09, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x2B, 0xF1, 0xA6, 0xA3, +0x04, 0x6B, 0xFF, 0x6A, 0xAC, 0xEB, 0x4C, 0xEB, +0x4C, 0xEC, 0x0C, 0x23, 0x7D, 0x67, 0x1E, 0x6A, +0x50, 0xC3, 0x01, 0x6A, 0x4F, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x92, 0xC3, +0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF2, 0x68, 0x9A, 0x02, 0xF2, 0x08, 0x4A, +0xFF, 0x69, 0x04, 0xD3, 0x61, 0x9A, 0x44, 0xAA, +0x30, 0xF0, 0x20, 0x68, 0x05, 0xD3, 0x7D, 0x67, +0x2C, 0xEC, 0x4C, 0xCB, 0x6B, 0xF0, 0x08, 0x48, +0x30, 0xF0, 0x20, 0x6A, 0x08, 0xD4, 0x80, 0xF3, +0x5C, 0x9A, 0xC0, 0xF0, 0x9F, 0xA0, 0x40, 0xEA, +0x01, 0x72, 0x3E, 0x61, 0xA0, 0xF0, 0x7B, 0xA0, +0x7F, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x38, 0x22, +0x08, 0x93, 0x64, 0x32, 0x7D, 0x67, 0x49, 0xE3, +0x68, 0xAA, 0x1F, 0xF7, 0x00, 0x6A, 0x6C, 0xEA, +0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x0C, 0x2A, +0x08, 0x93, 0x64, 0x32, 0x7D, 0x67, 0x49, 0xE3, +0x68, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, +0x40, 0x9A, 0x49, 0xE3, 0x60, 0x9A, 0x06, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x44, 0x9A, +0x4D, 0xE3, 0x60, 0x9B, 0x04, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x16, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF0, 0x64, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, +0x40, 0xAB, 0x8C, 0xEA, 0x01, 0x4A, 0x8C, 0xEA, +0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x24, 0xF5, 0x6C, 0x9A, 0x01, 0x4B, +0x24, 0xF5, 0x6C, 0xDA, 0x00, 0x6A, 0x01, 0x10, +0x01, 0x6A, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0xFF, 0x6A, 0x4C, 0xEC, +0x38, 0x2C, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x83, 0xF6, 0x68, 0xA2, 0x2F, 0x23, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x68, 0x9B, +0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, +0x6C, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF0, 0x70, 0x9B, 0x80, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0x9A, 0xC3, 0xF0, 0x74, 0x9B, +0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, +0x58, 0x9A, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF0, 0x5C, 0x9A, 0x01, 0x6B, 0x80, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, 0x40, 0x9A, +0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, +0x44, 0x9A, 0x80, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF0, 0x48, 0x9A, 0x80, 0xDA, 0x00, 0x6B, +0x4A, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, +0x90, 0x9B, 0x02, 0x6D, 0x60, 0xA4, 0x4C, 0xEB, +0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0x67, 0x6B, 0xF0, 0x08, 0x4A, +0x83, 0xF6, 0x88, 0xA2, 0x37, 0x24, 0x6B, 0xF0, +0x88, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, +0x68, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x81, 0x9A, 0xC3, 0xF0, 0x6C, 0x9B, 0x80, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0x9A, 0xC3, 0xF0, +0x70, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0x9A, 0xC3, 0xF0, 0x78, 0x9B, 0x80, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x84, 0x9A, 0xC3, 0xF0, +0x7C, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x94, 0x9A, 0xE3, 0xF0, 0x6C, 0x9B, 0x80, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x95, 0x9A, 0xE3, 0xF0, +0x60, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x96, 0x9A, 0xE3, 0xF0, 0x64, 0x9B, 0x80, 0xDB, +0x72, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, +0x48, 0x9A, 0x05, 0x10, 0x74, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF0, 0x4C, 0x9A, 0x60, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF0, 0x54, 0x9A, 0x80, 0xA2, 0xFF, 0x6A, +0x4C, 0xEC, 0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF0, 0x98, 0x9B, 0x07, 0x10, 0x02, 0x6B, +0x8C, 0xEB, 0x0A, 0x23, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF0, 0x9C, 0x9B, 0x60, 0xA4, 0x4C, 0xEB, +0x01, 0x4B, 0x4C, 0xEB, 0x60, 0xC4, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0x60, 0x9A, +0xFF, 0xF7, 0x1F, 0x6C, 0x40, 0xAB, 0x8C, 0xEA, +0x01, 0x4A, 0x8C, 0xEA, 0x40, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF0, 0x54, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x4F, 0xF0, 0xA8, 0x9B, 0xE0, 0xF2, 0x40, 0x9A, +0x38, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF1, 0x64, 0x9A, 0xFF, 0x6C, 0x10, 0x6D, +0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xC3, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x00, 0x6A, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, +0x58, 0x9A, 0x03, 0xF1, 0xC8, 0x9B, 0x30, 0xF0, +0x21, 0x6D, 0x00, 0x6C, 0x19, 0xF0, 0x18, 0x4D, +0x20, 0x6F, 0x40, 0xEA, 0x0A, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x24, 0xF5, +0x78, 0x9A, 0x04, 0x6C, 0x8D, 0xEB, 0x24, 0xF5, +0x78, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x05, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xEE, 0xF6, 0x33, 0xA2, 0x34, 0x10, +0xD0, 0xF3, 0x44, 0x41, 0x4C, 0x32, 0x09, 0xE2, +0xC2, 0x9A, 0x2C, 0x32, 0x09, 0xE2, 0xA3, 0xF6, +0xEC, 0x9A, 0x06, 0xD2, 0x00, 0x6A, 0x83, 0xF6, +0xBC, 0x98, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x21, 0x6B, 0xE0, 0xF2, +0x58, 0x9A, 0x36, 0xF2, 0x18, 0x4B, 0x00, 0x6C, +0xB5, 0xE3, 0x40, 0xEA, 0x01, 0x72, 0x09, 0x61, +0x06, 0x92, 0xA3, 0xF6, 0x6C, 0x9A, 0x83, 0xF6, +0x5C, 0x98, 0x49, 0xE3, 0x83, 0xF6, 0x5C, 0xD8, +0x06, 0x10, 0x24, 0xF5, 0x58, 0x98, 0x04, 0x6B, +0x6D, 0xEA, 0x24, 0xF5, 0x58, 0xD8, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x05, 0x6C, +0x01, 0x49, 0x40, 0xEA, 0xFF, 0x6A, 0x4C, 0xE9, +0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, +0x83, 0xF6, 0x4B, 0xA0, 0x01, 0x4A, 0x42, 0xE9, +0xC3, 0x61, 0x83, 0xF6, 0x2B, 0xC0, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0x6C, 0x9A, +0xFF, 0x6C, 0x02, 0x6D, 0x40, 0xA3, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x69, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x8E, 0xF7, +0x10, 0x48, 0x4F, 0xF0, 0x08, 0x49, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xA8, 0xC1, 0x98, 0xC0, 0xF3, +0x44, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x08, 0x48, +0x40, 0xEA, 0x2A, 0xE8, 0xF4, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xEE, 0xF6, 0x33, 0xA2, 0x35, 0x10, +0xD0, 0xF3, 0x44, 0x41, 0x4C, 0x32, 0x09, 0xE2, +0xC2, 0x9A, 0x2C, 0x32, 0x09, 0xE2, 0xA3, 0xF6, +0xEC, 0x9A, 0x06, 0xD2, 0x00, 0x6A, 0x83, 0xF6, +0xBC, 0x98, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x21, 0x6B, 0xE0, 0xF2, +0x58, 0x9A, 0x36, 0xF2, 0x18, 0x4B, 0x00, 0x6C, +0xB5, 0xE3, 0x40, 0xEA, 0x01, 0x72, 0x12, 0x61, +0x06, 0x92, 0x05, 0x6C, 0x01, 0x49, 0xA3, 0xF6, +0x6C, 0x9A, 0x83, 0xF6, 0x5C, 0x98, 0x49, 0xE3, +0x83, 0xF6, 0x5C, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x40, 0xEA, 0xFF, 0x6A, +0x4C, 0xE9, 0x07, 0x10, 0x24, 0xF5, 0x58, 0x98, +0x10, 0x6B, 0x6D, 0xEA, 0x24, 0xF5, 0x58, 0xD8, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, +0x08, 0x48, 0x83, 0xF6, 0x4B, 0xA0, 0x07, 0x4A, +0x42, 0xE9, 0xC2, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x68, 0xEE, 0xF6, 0x33, 0xC2, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, +0xB1, 0x67, 0xE3, 0xF6, 0x08, 0x6C, 0x03, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF1, 0xD0, 0x9B, 0xB1, 0x67, +0x01, 0xF4, 0x0C, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF1, 0x34, 0x9A, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xD1, 0x67, 0x83, 0xF5, 0x14, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, +0x58, 0x9A, 0x45, 0xE1, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF1, 0x5C, 0x9A, 0x2E, 0xEA, 0xEB, 0x2A, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x01, 0xF4, +0x0C, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xE3, 0xF6, 0x08, 0x6C, +0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x78, 0xA2, +0x01, 0x6A, 0x00, 0x68, 0x6C, 0xEA, 0x11, 0x2A, +0x18, 0x10, 0x18, 0x6D, 0xB8, 0xE8, 0x49, 0xE0, +0x24, 0xF5, 0x80, 0xA2, 0x30, 0xF0, 0x20, 0x6B, +0x4F, 0xF0, 0x0C, 0x4B, 0x01, 0x48, 0x12, 0xED, +0xB5, 0xE3, 0x00, 0x18, 0xE2, 0xC4, 0xFF, 0x6A, +0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x04, 0xF5, 0x7C, 0xA2, 0x63, 0xE8, +0xE8, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xC0, 0xF0, 0x90, 0xA2, 0x02, 0x6B, +0x8C, 0xEB, 0x08, 0x23, 0x04, 0xF5, 0x99, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x2F, 0xF5, 0x0F, 0x4A, +0x00, 0x6B, 0x2F, 0x10, 0x30, 0xF0, 0x20, 0x68, +0x2F, 0xF3, 0x0C, 0x48, 0x00, 0x69, 0x2E, 0x10, +0xFF, 0xF7, 0xDF, 0xA2, 0xA0, 0xA2, 0xC0, 0x36, +0xC0, 0x36, 0x00, 0xF6, 0xA0, 0x35, 0xCD, 0xED, +0xFF, 0xF7, 0xDD, 0xA2, 0xCD, 0xED, 0xFF, 0xF7, +0xDE, 0xA2, 0xC0, 0x36, 0xCD, 0xED, 0x30, 0xF0, +0x20, 0x6E, 0x23, 0xF1, 0xC4, 0x9E, 0xA0, 0xDE, +0xA2, 0xA2, 0xC1, 0xA2, 0x06, 0x4A, 0xA0, 0x35, +0xCD, 0xED, 0x1F, 0x6E, 0x6C, 0xEE, 0x00, 0xF6, +0xC0, 0x36, 0xCD, 0xED, 0x30, 0xF0, 0x20, 0x6E, +0x23, 0xF1, 0xC8, 0x9E, 0x01, 0x4B, 0xCD, 0xED, +0x30, 0xF0, 0x20, 0x6E, 0x23, 0xF1, 0xCC, 0x9E, +0xA0, 0xDE, 0xFF, 0x6D, 0x6C, 0xED, 0x83, 0xED, +0xD3, 0x61, 0xCC, 0x17, 0x91, 0x67, 0xB0, 0x67, +0x01, 0x49, 0x00, 0x18, 0x42, 0xC5, 0x40, 0x71, +0x08, 0x48, 0xF8, 0x61, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x63, 0xA2, 0x7F, 0x6A, 0x6C, 0xEA, +0x01, 0x5A, 0x58, 0x67, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x69, 0x80, 0xF2, 0x48, 0x99, +0x30, 0xF0, 0x20, 0x6C, 0x2B, 0xF1, 0x11, 0x4C, +0x00, 0x6D, 0x07, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x68, 0x80, 0xF2, 0x48, 0x99, 0x90, 0x67, +0x28, 0xF6, 0x14, 0x4C, 0x00, 0x6D, 0x24, 0x6E, +0x40, 0xEA, 0x28, 0xF6, 0x54, 0xA0, 0x07, 0x97, +0x06, 0x91, 0x01, 0x4A, 0x28, 0xF6, 0x54, 0xC0, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x51, 0xA2, +0x01, 0x6B, 0x46, 0x32, 0x6C, 0xEA, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x71, 0xA2, +0x01, 0x6A, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x51, 0xA2, +0xFF, 0x6B, 0x56, 0x32, 0x8E, 0xEA, 0x6C, 0xEA, +0x01, 0x5A, 0x58, 0x67, 0x6C, 0xEA, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x20, 0xC8, +0x00, 0x6B, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xEE, 0xF6, 0x6F, 0xA2, 0x01, 0x6A, 0x4C, 0xEB, +0x05, 0x97, 0x43, 0x67, 0x03, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0xC0, 0xF0, 0x89, 0xA3, 0x04, 0x6A, 0x8C, 0xEA, +0x0C, 0x22, 0xC0, 0xF0, 0x4A, 0xA3, 0x09, 0x22, +0xC0, 0xF0, 0x4B, 0xA3, 0x06, 0x22, 0xC0, 0xF0, +0x6C, 0xA3, 0x00, 0x6A, 0x03, 0x23, 0x01, 0x6A, +0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0x32, 0x6B, 0xAC, 0xEA, 0xBD, 0x67, 0x70, 0xC5, +0x02, 0x5C, 0x02, 0x6B, 0x6F, 0xCD, 0x92, 0xC5, +0x02, 0x60, 0x53, 0xC5, 0x04, 0x10, 0x01, 0x6A, +0x4B, 0xEA, 0x7D, 0x67, 0x53, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, +0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x01, 0x74, 0x18, 0x60, +0x03, 0x24, 0x02, 0x74, 0x0B, 0x60, 0x2B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x44, 0xF5, 0x66, 0xAA, 0x01, 0x4B, 0x44, 0xF5, +0x66, 0xCA, 0x21, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x44, 0xF5, 0x6A, 0xAA, +0x01, 0x4B, 0x44, 0xF5, 0x6A, 0xCA, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x44, 0xF5, 0x68, 0xAA, 0x01, 0x4B, 0x44, 0xF5, +0x68, 0xCA, 0xE3, 0xF5, 0x9D, 0xA2, 0x02, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0xE3, 0xF5, 0x7D, 0xC2, +0x63, 0xF6, 0x5B, 0xA2, 0x04, 0x22, 0x00, 0x6C, +0x02, 0x6D, 0x00, 0x18, 0x3E, 0xC8, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x6C, 0x00, 0x18, 0x5F, 0xDC, 0x05, 0x97, +0x30, 0xF0, 0x20, 0x6B, 0x28, 0xF6, 0x14, 0x4B, +0x00, 0x6C, 0x86, 0xDB, 0x87, 0xDB, 0x44, 0xDB, +0x45, 0xDB, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x30, 0xF0, 0x20, 0x6F, +0x24, 0x6A, 0x04, 0x6C, 0x03, 0x6D, 0x02, 0x6E, +0x28, 0xF6, 0x14, 0x4F, 0x04, 0xD2, 0x80, 0x18, +0xDD, 0x67, 0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x28, 0xF6, 0x14, 0x4A, +0x00, 0x6B, 0xFF, 0x69, 0x68, 0xC2, 0x8C, 0xE9, +0x00, 0x18, 0x32, 0xC8, 0x28, 0x22, 0x30, 0xF0, +0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, 0xC0, 0xF0, +0x4A, 0xA0, 0xC0, 0xF0, 0x6B, 0xA0, 0x58, 0xEB, +0x12, 0xEA, 0x83, 0xF6, 0x45, 0xC0, 0x00, 0x18, +0x05, 0xC8, 0x03, 0x22, 0x83, 0xF6, 0x05, 0xA0, +0x05, 0x10, 0xC0, 0xF0, 0x4B, 0xA0, 0x01, 0x72, +0x12, 0x61, 0x01, 0x68, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0x58, 0xEE, 0xF6, 0x0E, 0xC2, 0x08, 0x61, +0x91, 0x67, 0x00, 0x18, 0x2A, 0xE7, 0x91, 0x67, +0xB0, 0x67, 0x00, 0x18, 0x37, 0xEC, 0x03, 0x10, +0x91, 0x67, 0x00, 0x18, 0x3B, 0xE7, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0xAC, 0xEA, 0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x28, 0xF6, 0x14, 0x4A, 0x6A, 0xA2, 0x01, 0x4B, +0x6A, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0xEE, 0xF6, +0x6E, 0xA3, 0x01, 0x73, 0x0E, 0x61, 0x1B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x28, 0xF6, 0x14, 0x4A, +0x69, 0xA2, 0x01, 0x4B, 0x69, 0xC2, 0x30, 0xF0, +0x20, 0x6B, 0xEE, 0xF6, 0x6E, 0xA3, 0x01, 0x73, +0x0E, 0x61, 0x68, 0xA2, 0x01, 0x4B, 0x68, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x28, 0xF6, 0x5C, 0xA2, +0x0A, 0x5A, 0x00, 0x6A, 0x05, 0x61, 0x00, 0x18, +0x78, 0xC8, 0x00, 0x6A, 0x01, 0x10, 0x01, 0x6A, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0xFF, 0x6A, +0x4C, 0xEC, 0x12, 0x2C, 0x10, 0xF0, 0x23, 0x6C, +0x07, 0xF4, 0x09, 0x4C, 0x00, 0x18, 0xB3, 0xE5, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x83, 0xF6, 0x87, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0x83, 0xF6, 0x67, 0xC2, 0x29, 0x10, +0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, +0xC0, 0xF0, 0x89, 0xA0, 0x04, 0x6B, 0x8C, 0xEB, +0x4C, 0xEB, 0x1F, 0x23, 0x30, 0xF0, 0x20, 0x6A, +0x28, 0xF6, 0x14, 0x4A, 0x66, 0xA2, 0xC0, 0xF0, +0xCC, 0xA0, 0x10, 0xF0, 0x23, 0x6C, 0x01, 0x4B, +0x66, 0xC2, 0x0A, 0x6B, 0x78, 0xEE, 0x00, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x4C, 0x9A, 0x07, 0xF4, 0x09, 0x4C, 0x00, 0x6D, +0x01, 0x6F, 0x12, 0xEE, 0x40, 0xEA, 0x83, 0xF6, +0x67, 0xA0, 0x01, 0x6A, 0x6D, 0xEA, 0x83, 0xF6, +0x47, 0xC0, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, 0x00, 0x18, +0x95, 0xED, 0x08, 0x20, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, 0xFF, 0x6C, +0xC5, 0x67, 0x40, 0xEA, 0x01, 0x6C, 0x04, 0x6D, +0x00, 0x18, 0xB3, 0xC5, 0x04, 0x6C, 0x80, 0x18, +0xBF, 0x70, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, +0x70, 0x9B, 0x63, 0xF6, 0x98, 0x9A, 0x8C, 0xEB, +0x04, 0x73, 0x0C, 0x61, 0xE3, 0xF5, 0x7F, 0xA2, +0x04, 0x6C, 0x8C, 0xEB, 0x07, 0x23, 0x01, 0x6B, +0x63, 0xF6, 0x7A, 0xC2, 0x01, 0x6C, 0x00, 0x6D, +0x00, 0x18, 0x3E, 0xC8, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0x6B, 0xF0, 0x08, 0x49, 0x40, 0xF1, 0x76, 0xA1, +0x01, 0x6A, 0x6C, 0xEA, 0x20, 0x22, 0x00, 0x18, +0x92, 0xD5, 0x1B, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF1, 0x54, 0x9A, 0x40, 0xA2, 0x15, 0x2A, +0x43, 0xF6, 0x68, 0xA1, 0x40, 0xF1, 0x57, 0xA1, +0x43, 0xEB, 0x11, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF1, 0x58, 0x9A, 0x00, 0xA2, 0xFF, 0x6A, +0x4C, 0xE8, 0x07, 0x28, 0x06, 0x6C, 0x01, 0x6D, +0x80, 0x18, 0x20, 0x01, 0x43, 0xF6, 0x08, 0xC1, +0x02, 0x10, 0x00, 0x6A, 0x01, 0x10, 0x01, 0x6A, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0xB3, 0x41, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF1, 0x7C, 0x9A, 0xFF, 0xF7, 0x1F, 0x6A, +0x80, 0xAB, 0x8C, 0xEA, 0x02, 0xF4, 0x03, 0x6C, +0x4C, 0xEC, 0x80, 0xCB, 0x40, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0xEE, 0xF6, 0x33, 0xA2, 0x35, 0x10, +0xD0, 0xF3, 0x44, 0x41, 0x4C, 0x32, 0x09, 0xE2, +0xC2, 0x9A, 0x2C, 0x32, 0x09, 0xE2, 0xA3, 0xF6, +0xEC, 0x9A, 0x06, 0xD2, 0x00, 0x6A, 0x83, 0xF6, +0xBC, 0x98, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x21, 0x6B, 0xE0, 0xF2, +0x58, 0x9A, 0x36, 0xF2, 0x18, 0x4B, 0x00, 0x6C, +0xB5, 0xE3, 0x40, 0xEA, 0x01, 0x72, 0x12, 0x61, +0x06, 0x92, 0x05, 0x6C, 0x01, 0x49, 0xA3, 0xF6, +0x6C, 0x9A, 0x83, 0xF6, 0x5C, 0x98, 0x49, 0xE3, +0x83, 0xF6, 0x5C, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x40, 0xEA, 0xFF, 0x6A, +0x4C, 0xE9, 0x07, 0x10, 0x24, 0xF5, 0x58, 0x98, +0x08, 0x6B, 0x6D, 0xEA, 0x24, 0xF5, 0x58, 0xD8, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, +0x08, 0x48, 0x83, 0xF6, 0x4B, 0xA0, 0x08, 0x4A, +0x42, 0xE9, 0xC2, 0x61, 0x30, 0xF0, 0x20, 0x68, +0x6B, 0xF0, 0x08, 0x48, 0x83, 0xF6, 0x2B, 0xC0, +0x00, 0x18, 0xB8, 0xD4, 0x01, 0x2A, 0xFF, 0x17, +0x00, 0x18, 0x2B, 0xC7, 0xE4, 0xF4, 0x94, 0xA8, +0xFF, 0xF7, 0x1F, 0x69, 0x00, 0x6D, 0xFF, 0x4C, +0x2C, 0xEC, 0x00, 0x18, 0xB4, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF1, 0x60, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x63, 0xF0, 0x94, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF1, 0x44, 0x9A, 0x04, 0x6C, 0x60, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x48, 0x9A, +0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, +0x6C, 0x9A, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF4, 0x78, 0x98, +0x43, 0xF1, 0x50, 0x9A, 0x60, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0xE4, 0xF4, 0x7C, 0x98, 0x43, 0xF1, +0x54, 0x9A, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF1, 0x58, 0x9A, 0x00, 0x6B, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x28, 0xF6, 0x50, 0xA2, +0x1E, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF5, +0x68, 0x98, 0x43, 0xF1, 0x5C, 0x9A, 0xFF, 0x6C, +0x80, 0x6D, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x40, 0x9A, 0xAB, 0xED, 0x40, 0xAA, +0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, +0x44, 0x9A, 0x20, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF0, 0x74, 0x9A, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x30, 0xF0, +0x20, 0x6B, 0x04, 0xF5, 0x94, 0xA2, 0x63, 0xF1, +0x68, 0x9B, 0x80, 0xC3, 0x04, 0xF5, 0x75, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, 0x4C, 0x9A, +0x60, 0xC2, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6B, 0x8C, 0xEB, +0x01, 0x6A, 0x60, 0x2B, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x50, 0x9A, 0x60, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF1, 0x54, 0x9A, 0x4C, 0xEB, +0x00, 0x6A, 0x54, 0x23, 0x30, 0xF0, 0x20, 0x6A, +0xEE, 0xF6, 0x50, 0xA2, 0x01, 0x72, 0x02, 0x61, +0x00, 0x18, 0x15, 0xC7, 0x30, 0xF0, 0x20, 0x68, +0x6B, 0xF0, 0x08, 0x48, 0x01, 0x6C, 0x00, 0x18, +0x93, 0xEB, 0x83, 0xF6, 0x4A, 0xA0, 0x00, 0x69, +0x83, 0xF6, 0x4B, 0xC0, 0x83, 0xF6, 0x58, 0x98, +0x83, 0xF6, 0x38, 0xD8, 0x83, 0xF6, 0x5C, 0xD8, +0x00, 0x6A, 0x83, 0xF6, 0x4A, 0xC0, 0x00, 0x18, +0x38, 0xC7, 0x00, 0x18, 0x0B, 0xC9, 0x00, 0x18, +0x70, 0xC7, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF6, +0xB4, 0x98, 0x83, 0xF6, 0xCC, 0x98, 0x83, 0xF6, +0xF0, 0x98, 0xE0, 0xF2, 0x58, 0x9A, 0x04, 0xD1, +0x05, 0xD1, 0x91, 0x67, 0x40, 0xEA, 0x01, 0x72, +0x06, 0x60, 0x24, 0xF5, 0x58, 0x98, 0x20, 0x6B, +0x6D, 0xEA, 0x24, 0xF5, 0x58, 0xD8, 0x00, 0x18, +0xC8, 0xC7, 0x01, 0x6C, 0x00, 0x18, 0xCF, 0xC6, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, 0x70, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF1, 0x98, 0x9C, +0x40, 0x9B, 0x8C, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x00, 0x6B, +0x83, 0xF6, 0x6A, 0xC2, 0x00, 0x6B, 0x83, 0xF6, +0x78, 0xDA, 0x01, 0x6A, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xDD, 0x63, 0x45, 0x62, 0x44, 0xD1, 0x43, 0xD0, +0x30, 0xF0, 0x20, 0x6D, 0x1D, 0x04, 0x82, 0xF1, +0x08, 0x4D, 0x80, 0x6E, 0x00, 0x18, 0x3C, 0xD6, +0x30, 0xF0, 0x20, 0x6D, 0x06, 0x04, 0x22, 0xF1, +0x0C, 0x4D, 0x5C, 0x6E, 0x00, 0x18, 0x3C, 0xD6, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, 0x74, 0x9A, +0x80, 0x6D, 0xFF, 0x6A, 0x80, 0xA3, 0xAB, 0xED, +0x8C, 0xEA, 0xAC, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x28, 0xF6, 0x50, 0xC4, 0x28, 0xF6, 0x50, 0xA4, +0x04, 0x22, 0x80, 0xA3, 0x7F, 0x6A, 0x8C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x0E, 0xF7, +0x10, 0x4C, 0x1D, 0x05, 0x80, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x00, 0x6B, 0x83, 0xF6, 0x6A, 0xC2, 0x00, 0x6B, +0x83, 0xF6, 0x78, 0xDA, 0x3E, 0x02, 0x1E, 0x00, +0x40, 0xD2, 0x23, 0x67, 0x00, 0x6A, 0xFF, 0xF7, +0xBC, 0x98, 0xE0, 0x98, 0x04, 0xD2, 0x05, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x21, 0x6E, +0xE0, 0xF2, 0x58, 0x9A, 0x36, 0xF2, 0x18, 0x4E, +0x00, 0x6C, 0x39, 0xE6, 0x40, 0xEA, 0x0A, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x24, 0xF5, 0x78, 0x9A, 0x01, 0x6C, 0x8D, 0xEB, +0x24, 0xF5, 0x78, 0xDA, 0x40, 0x98, 0x14, 0x6C, +0x08, 0x48, 0x3E, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x40, 0xEA, 0x40, 0x92, +0x4A, 0xE8, 0x03, 0x60, 0x3E, 0x92, 0x45, 0xE1, +0xD5, 0x17, 0x30, 0xF0, 0x20, 0x68, 0x1D, 0x02, +0x06, 0x01, 0x8E, 0xF7, 0x10, 0x48, 0x41, 0xD2, +0x40, 0x99, 0xFF, 0xF7, 0x1F, 0x6C, 0x01, 0x6D, +0x40, 0xD8, 0x4C, 0xEC, 0xAB, 0xED, 0x80, 0x18, +0x09, 0x28, 0x41, 0xD8, 0x41, 0x92, 0x04, 0x49, +0x08, 0x48, 0x4A, 0xE9, 0x58, 0x67, 0x3E, 0xD2, +0xEF, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF2, +0x54, 0x9A, 0x38, 0x6C, 0x30, 0xF0, 0x20, 0x68, +0x40, 0xEA, 0x6B, 0xF0, 0x08, 0x48, 0xE3, 0xF7, +0x40, 0xD8, 0x00, 0x18, 0x8D, 0xD5, 0xE4, 0xF4, +0x54, 0xC8, 0xE4, 0xF4, 0xB4, 0xA8, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF1, 0x5C, 0x9A, 0x83, 0xF6, +0xF0, 0x98, 0xBC, 0x35, 0x30, 0xF0, 0x21, 0x6E, +0x55, 0xE5, 0x39, 0xF0, 0x18, 0x4E, 0x02, 0xF0, +0x01, 0x5F, 0x83, 0xF6, 0xAC, 0xD8, 0x83, 0xF6, +0xD4, 0xD8, 0x1F, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x40, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF1, 0x6C, 0x9B, 0xC0, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x44, 0x9A, 0x01, 0x6D, +0xE0, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, +0x88, 0x9A, 0x40, 0x9C, 0x6D, 0xEA, 0x40, 0xDC, +0xA3, 0xF3, 0x40, 0x98, 0x04, 0x6C, 0x6D, 0xEA, +0xA3, 0xF3, 0x40, 0xD8, 0x80, 0x18, 0x20, 0x01, +0xFF, 0x17, 0x3E, 0x91, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF2, 0x58, 0x9A, 0x04, 0xD1, 0x05, 0xD1, +0x00, 0x6C, 0x40, 0xEA, 0x06, 0x2A, 0x24, 0xF5, +0x58, 0x98, 0x02, 0x6B, 0x6D, 0xEA, 0x24, 0xF5, +0x58, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x78, 0xA2, 0x01, 0x6A, 0x00, 0x68, 0x6C, 0xEA, +0x11, 0x2A, 0x18, 0x10, 0x18, 0x6D, 0xB8, 0xE8, +0x49, 0xE0, 0x24, 0xF5, 0x80, 0xA2, 0x30, 0xF0, +0x20, 0x6B, 0x4F, 0xF0, 0x0C, 0x4B, 0x01, 0x48, +0x12, 0xED, 0xB5, 0xE3, 0x00, 0x18, 0xCA, 0xC4, +0xFF, 0x6A, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x04, 0xF5, 0x7C, 0xA2, +0x63, 0xE8, 0xE8, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x83, 0xF6, 0x68, 0xA2, +0x12, 0x23, 0xC0, 0xF0, 0x70, 0xA2, 0x01, 0x6A, +0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x68, +0x0F, 0xF1, 0x0C, 0x48, 0x00, 0x69, 0x91, 0x67, +0xB0, 0x67, 0x01, 0x49, 0x00, 0x18, 0xCA, 0xC4, +0x04, 0x71, 0x18, 0x48, 0xF8, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xC0, 0xF0, +0x90, 0xA2, 0x02, 0x6B, 0x8C, 0xEB, 0x49, 0x23, +0x04, 0xF5, 0xD9, 0xA2, 0x00, 0x6C, 0x30, 0xF0, +0x20, 0x6A, 0x2F, 0xF5, 0x0C, 0x4A, 0x01, 0x6B, +0xA4, 0x67, 0x3B, 0x10, 0x30, 0xF0, 0x20, 0x68, +0x63, 0xF0, 0x14, 0x98, 0x1F, 0x6F, 0x8C, 0xEF, +0x00, 0xF6, 0xE0, 0x37, 0x0D, 0xEF, 0x30, 0xF0, +0x20, 0x68, 0x23, 0xF1, 0x0C, 0x98, 0xE0, 0xD8, +0x30, 0xF0, 0x20, 0x6F, 0x23, 0xF1, 0xEC, 0x9F, +0xE0, 0x9F, 0x00, 0x57, 0x0B, 0x60, 0xFF, 0x68, +0x01, 0x4B, 0x0A, 0x6F, 0x0C, 0xEB, 0xFB, 0xEB, +0x01, 0x2F, 0xE5, 0xE8, 0x10, 0xEF, 0x0C, 0xEF, +0xEF, 0x2F, 0x19, 0x25, 0x30, 0xF0, 0x20, 0x6D, +0x23, 0xF1, 0xA4, 0x9D, 0xA0, 0x9D, 0xA2, 0x37, +0xA0, 0xC2, 0x00, 0xF6, 0xA2, 0x35, 0xA3, 0xC2, +0x30, 0xF0, 0x20, 0x6D, 0x23, 0xF1, 0xAC, 0x9D, +0xE1, 0xC2, 0xE2, 0x37, 0xE2, 0xC2, 0xE0, 0xAD, +0xFF, 0xF7, 0x1F, 0x6D, 0xEC, 0xED, 0xA4, 0xC2, +0xA2, 0x35, 0xA5, 0xC2, 0x01, 0x6D, 0x01, 0x4C, +0x06, 0x4A, 0xFF, 0x6F, 0x8C, 0xEF, 0xC3, 0xEF, +0xC1, 0x61, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x08, 0x6E, 0x03, 0xF3, 0x00, 0x6C, +0x0F, 0x6D, 0x40, 0xEA, 0x01, 0x6D, 0x23, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x30, 0xF0, 0x20, 0x69, +0x80, 0x18, 0x09, 0x28, 0x6B, 0xF0, 0x08, 0x49, +0x04, 0xF5, 0x4C, 0xD9, 0xC0, 0xF3, 0x44, 0x98, +0x0A, 0x6E, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, +0x40, 0xEA, 0x01, 0x6D, 0x23, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x80, 0x18, 0x09, 0x28, 0x04, 0xF5, +0x50, 0xD9, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x00, 0x6C, 0x0F, 0x6D, 0x08, 0x6E, 0x40, 0xEA, +0x00, 0x18, 0xB8, 0xD4, 0x45, 0x97, 0x44, 0x91, +0x43, 0x90, 0x23, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x00, 0x6A, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, +0x58, 0x9A, 0x03, 0xF1, 0xA8, 0x9B, 0x30, 0xF0, +0x21, 0x6E, 0x00, 0x6C, 0x19, 0xF0, 0x18, 0x4E, +0x20, 0x6F, 0x40, 0xEA, 0x0A, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x24, 0xF5, +0x78, 0x9A, 0x01, 0x6C, 0x8D, 0xEB, 0x24, 0xF5, +0x78, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x14, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x83, 0xF6, +0x69, 0xA2, 0x05, 0x23, 0x00, 0x6B, 0x83, 0xF6, +0x69, 0xC2, 0x00, 0x18, 0xAC, 0xC9, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF1, 0x6C, 0x9A, 0xFD, 0x6A, +0x30, 0xF0, 0x20, 0x68, 0x80, 0xA3, 0x2F, 0xF3, +0x0C, 0x48, 0x00, 0x69, 0x8C, 0xEA, 0x40, 0xC3, +0x00, 0x6C, 0x00, 0x18, 0xCF, 0xC6, 0x00, 0x6C, +0x00, 0x18, 0x93, 0xEB, 0x91, 0x67, 0xB0, 0x67, +0x01, 0x49, 0x00, 0x18, 0x2C, 0xC5, 0x40, 0x71, +0x08, 0x48, 0xF8, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF1, 0x50, 0x9A, 0x60, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xE4, 0xF4, +0x78, 0xDA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, +0x74, 0x9B, 0x60, 0x9B, 0xE4, 0xF4, 0x7C, 0xDA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, 0x70, 0x9B, +0x60, 0x9B, 0x04, 0xF5, 0x60, 0xDA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF1, 0x74, 0x9B, 0x60, 0x9B, +0x04, 0xF5, 0x64, 0xDA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF1, 0x78, 0x9B, 0x60, 0xA3, 0x04, 0xF5, +0x76, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, +0x7C, 0x9B, 0x60, 0x9B, 0x04, 0xF5, 0x68, 0xDA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x68, 0x9B, +0x60, 0xA3, 0x04, 0xF5, 0x74, 0xC2, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF1, 0x6C, 0x9B, 0x60, 0xA3, +0x04, 0xF5, 0x75, 0xC2, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x68, 0x8C, 0xE8, 0x00, 0x18, 0x8D, 0xD5, +0x01, 0xE2, 0x30, 0xF0, 0x20, 0x6B, 0x1C, 0x30, +0x63, 0xF1, 0x1C, 0x4B, 0x60, 0x9B, 0x04, 0xD0, +0xB0, 0x67, 0x30, 0xF0, 0x20, 0x68, 0x80, 0xF2, +0x4C, 0x98, 0x30, 0xF0, 0x21, 0x69, 0xB2, 0xF4, +0x16, 0x49, 0x30, 0x4D, 0x75, 0xE5, 0x91, 0x67, +0x02, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6E, +0x04, 0x95, 0x63, 0xF1, 0x1C, 0x4E, 0xC0, 0x9E, +0x80, 0xF2, 0x4C, 0x98, 0x87, 0x41, 0x32, 0x4D, +0xD5, 0xE5, 0x10, 0x4C, 0x02, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x04, 0x95, 0x63, 0xF1, +0x1C, 0x4B, 0x60, 0x9B, 0x80, 0xF2, 0x4C, 0x98, +0x34, 0x4D, 0x30, 0xF0, 0x21, 0x6C, 0x75, 0xE5, +0x72, 0xF5, 0x10, 0x4C, 0x04, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x04, 0x96, 0x63, 0xF1, +0x1C, 0x4B, 0x60, 0x9B, 0x80, 0xF2, 0x4C, 0x98, +0x38, 0x4E, 0x87, 0x41, 0x75, 0xE6, 0x04, 0xD6, +0x13, 0x4C, 0xA0, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x04, 0x96, 0x83, 0xF1, 0xBC, 0x9B, +0x80, 0xF2, 0x4C, 0x98, 0x87, 0x41, 0xB5, 0xE6, +0x0B, 0x4C, 0x01, 0x6E, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x68, +0x8C, 0xE8, 0x00, 0x18, 0x8D, 0xD5, 0x01, 0xE2, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x6C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0xA0, 0x9A, +0x1C, 0x30, 0x30, 0xF0, 0x20, 0x6C, 0xB5, 0xE0, +0x8F, 0xF5, 0x00, 0x4C, 0x10, 0x6E, 0x40, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x04, 0xF5, 0x7D, 0xA2, 0x7C, 0x33, 0x83, 0xF6, +0x70, 0xDA, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, 0x00, 0x18, +0x8D, 0xD5, 0x01, 0xE2, 0x1C, 0x34, 0x30, 0x4C, +0x80, 0x18, 0xF0, 0x07, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xFF, 0x68, 0x8C, 0xE8, 0xE3, 0xF5, +0x9C, 0xA2, 0x03, 0x6B, 0x6B, 0xEB, 0x41, 0x6D, +0x8C, 0xEB, 0xAB, 0xED, 0xAC, 0xEB, 0xE3, 0xF5, +0xBD, 0xA2, 0xE3, 0xF5, 0x7C, 0xC2, 0x11, 0x6B, +0x00, 0x6C, 0x6B, 0xEB, 0x03, 0xF6, 0x89, 0xC2, +0x03, 0xF6, 0x81, 0xC2, 0xAC, 0xEB, 0x03, 0xF6, +0x8A, 0xC2, 0x90, 0x67, 0xE3, 0xF5, 0x7D, 0xC2, +0x00, 0x18, 0x3B, 0xE7, 0x90, 0x67, 0x00, 0x18, +0x34, 0xE7, 0x90, 0x67, 0x00, 0x18, 0x50, 0xE7, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xF2, 0x63, 0x1B, 0x62, 0x1A, 0xD1, 0x19, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xFF, 0x69, 0x6B, 0xF0, +0x08, 0x48, 0x30, 0xF0, 0x20, 0x6A, 0x8C, 0xE9, +0x80, 0xF3, 0x5C, 0x9A, 0xC0, 0xF0, 0x9F, 0xA0, +0x40, 0xEA, 0x01, 0x72, 0x4E, 0x61, 0xE3, 0xF5, +0x7D, 0xA0, 0x09, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xE3, 0xF5, 0x5D, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0xFF, 0x6C, 0x6F, 0x6D, +0x2C, 0x6E, 0x40, 0xEA, 0x0C, 0x04, 0x00, 0x6D, +0x30, 0x6E, 0x00, 0x18, 0x37, 0xD6, 0xA0, 0xF0, +0x4A, 0xA0, 0x7D, 0x67, 0x40, 0xF0, 0x2C, 0xC3, +0x40, 0xF0, 0x48, 0xCB, 0x01, 0x6A, 0x40, 0xF0, +0x4A, 0xC3, 0x08, 0x6A, 0x40, 0xF0, 0x4B, 0xC3, +0x10, 0xF0, 0x23, 0x6A, 0xC6, 0xF0, 0x01, 0x4A, +0x0C, 0xD2, 0x10, 0xF0, 0x23, 0x6A, 0x23, 0xF0, +0x19, 0x4A, 0x0D, 0xD2, 0x04, 0x04, 0x00, 0x6A, +0x10, 0x03, 0x05, 0x10, 0x59, 0xE3, 0xC0, 0xA6, +0x55, 0xE4, 0x01, 0x4A, 0xC0, 0xC5, 0x20, 0x5A, +0xF9, 0x61, 0x0C, 0x94, 0x0D, 0x95, 0x0E, 0x96, +0x0F, 0x97, 0x00, 0x18, 0x14, 0xE4, 0x11, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xE3, 0xF5, 0x9D, 0xA2, 0x02, 0x6B, 0x0E, 0x6D, +0x8D, 0xEB, 0xE3, 0xF5, 0x7D, 0xC2, 0x01, 0x6C, +0x00, 0x18, 0xB3, 0xC5, 0x0E, 0x6C, 0x80, 0x18, +0xBF, 0x70, 0x1B, 0x97, 0x1A, 0x91, 0x19, 0x90, +0x0E, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0x6B, 0xF0, 0x08, 0x48, 0x80, 0x18, 0xCA, 0x05, +0xE3, 0xF5, 0x5F, 0xA0, 0x01, 0x6C, 0xF0, 0x6D, +0x06, 0xD2, 0x00, 0x18, 0xB3, 0xC5, 0x00, 0x18, +0xED, 0xC8, 0x80, 0xF0, 0x05, 0x22, 0x00, 0x18, +0x01, 0xEC, 0x83, 0xF6, 0x48, 0xA0, 0x64, 0x22, +0x00, 0x18, 0x78, 0xCA, 0x5C, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x7D, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, 0x21, 0x6C, +0xFC, 0xF7, 0x1C, 0x4C, 0xBD, 0x67, 0xA0, 0xDC, +0x9A, 0xB8, 0x00, 0x65, 0xBB, 0xB8, 0x00, 0x65, +0x00, 0x18, 0x17, 0xE1, 0x30, 0xF0, 0x21, 0x69, +0xDC, 0xF7, 0x0C, 0x49, 0x00, 0x99, 0x32, 0xE8, +0x01, 0x99, 0x30, 0xE8, 0x42, 0x99, 0x63, 0x99, +0x84, 0x99, 0xA5, 0x99, 0xC6, 0x99, 0xE7, 0x99, +0x08, 0x99, 0x18, 0x65, 0x09, 0x99, 0x58, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, +0x21, 0x68, 0xDC, 0xF7, 0x0C, 0x48, 0x2A, 0x98, +0x1A, 0xB8, 0x00, 0x65, 0x58, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x79, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, 0x21, 0x69, +0x9C, 0xF7, 0x0C, 0x49, 0x09, 0xD9, 0x12, 0xE8, +0x00, 0xD9, 0x10, 0xE8, 0x01, 0xD9, 0x42, 0xD9, +0x63, 0xD9, 0x84, 0xD9, 0xA5, 0xD9, 0xC6, 0xD9, +0xE7, 0xD9, 0x18, 0x67, 0x08, 0xD9, 0x1F, 0x67, +0x0B, 0xD9, 0x1D, 0x67, 0x0C, 0xD9, 0x1F, 0xF7, +0x32, 0x68, 0x46, 0xF4, 0x16, 0x48, 0xFF, 0xF7, +0x1C, 0xD9, 0x30, 0xF0, 0x21, 0x68, 0x9C, 0xF7, +0x0C, 0x48, 0x3B, 0xB8, 0x00, 0x65, 0x2A, 0xD8, +0x1A, 0xB8, 0x00, 0x65, 0x00, 0x18, 0xF0, 0xE0, +0x00, 0x6C, 0x00, 0x18, 0x75, 0xC9, 0x10, 0x10, +0x00, 0x6C, 0x00, 0x18, 0x93, 0xEB, 0x00, 0x6C, +0x00, 0x18, 0xCF, 0xC6, 0x00, 0x18, 0x17, 0xE1, +0x00, 0x18, 0xF0, 0xE0, 0x01, 0x6C, 0x00, 0x18, +0xCF, 0xC6, 0x01, 0x6C, 0x00, 0x18, 0x93, 0xEB, +0x00, 0x6A, 0x82, 0x67, 0xA2, 0x67, 0x01, 0x6E, +0xE2, 0x67, 0x04, 0xD2, 0x80, 0x18, 0xDD, 0x67, +0x06, 0x95, 0x01, 0x6C, 0x00, 0x18, 0xB3, 0xC5, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0x00, 0x6D, 0xC5, 0x67, 0xFF, 0x6C, +0x40, 0xEA, 0x04, 0x6D, 0x01, 0x6C, 0x00, 0x18, +0xB3, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF4, +0x06, 0xA2, 0x90, 0x67, 0x80, 0x18, 0x58, 0x6F, +0x40, 0x6B, 0x4D, 0xEB, 0xFF, 0x6D, 0x90, 0x67, +0x6C, 0xED, 0x80, 0x18, 0x4B, 0x6F, 0x04, 0x6C, +0x80, 0x18, 0xBF, 0x70, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0x2E, 0x6E, 0xFF, 0x6C, 0x6F, 0x6D, +0x40, 0xEA, 0x02, 0x6D, 0x01, 0x6C, 0x00, 0x18, +0xB3, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF4, +0x06, 0xA2, 0x90, 0x67, 0x80, 0x18, 0x58, 0x6F, +0xBF, 0x6D, 0x90, 0x67, 0x4C, 0xED, 0x80, 0x18, +0x4B, 0x6F, 0x02, 0x6C, 0x80, 0x18, 0xBF, 0x70, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, +0xE3, 0xF5, 0x7D, 0xA0, 0x08, 0x6A, 0xFF, 0x69, +0x6C, 0xEA, 0x2C, 0xEA, 0x2C, 0xEC, 0x0C, 0x2A, +0x01, 0x6C, 0x0C, 0x6D, 0x00, 0x18, 0xB3, 0xC5, +0x63, 0xF6, 0x5B, 0xA0, 0x49, 0x22, 0x00, 0x6C, +0xA4, 0x67, 0x00, 0x18, 0x3E, 0xC8, 0x44, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x5C, 0x9A, +0x01, 0x6D, 0x40, 0xEA, 0x01, 0x6C, 0x04, 0x6D, +0x00, 0x18, 0xB3, 0xC5, 0xA0, 0xF0, 0x7A, 0xA0, +0x01, 0x6A, 0x4C, 0xEB, 0x2C, 0xEB, 0x05, 0x2B, +0xA3, 0xF3, 0x7C, 0xA0, 0x6C, 0xEA, 0x2C, 0xEA, +0x2C, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xA0, 0xF0, 0x9A, 0xA2, 0x04, 0x6B, +0x6C, 0xEC, 0x06, 0x2C, 0xA3, 0xF3, 0x5C, 0xA2, +0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x1D, 0x22, +0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, +0xA3, 0xF3, 0x3E, 0xA0, 0x91, 0x67, 0x80, 0x18, +0x58, 0x6F, 0x80, 0x6D, 0xAB, 0xED, 0x4D, 0xED, +0xFF, 0x6A, 0x4C, 0xED, 0x91, 0x67, 0x80, 0x18, +0x4B, 0x6F, 0xA3, 0xF3, 0x1E, 0xA0, 0x90, 0x67, +0x80, 0x18, 0x58, 0x6F, 0x20, 0x6D, 0x4D, 0xED, +0xFF, 0x6A, 0x90, 0x67, 0x4C, 0xED, 0x80, 0x18, +0x4B, 0x6F, 0x04, 0x6C, 0x80, 0x18, 0xBF, 0x70, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, +0x00, 0x6D, 0xFF, 0x6C, 0xC5, 0x67, 0x40, 0xEA, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6D, +0x6B, 0xF0, 0x08, 0x4D, 0xE3, 0xF5, 0xDD, 0xA5, +0x04, 0x6B, 0xFF, 0x6A, 0xCC, 0xEB, 0x4C, 0xEB, +0x4C, 0xEC, 0x0C, 0x2B, 0x63, 0xF6, 0x7B, 0xA5, +0x09, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, +0xA4, 0x9B, 0x60, 0xA5, 0x4C, 0xEB, 0x01, 0x4B, +0x4C, 0xEB, 0x60, 0xC5, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xE3, 0xF5, 0xBD, 0xA2, +0x04, 0x6B, 0xAC, 0xEB, 0x0E, 0x2B, 0x63, 0xF6, +0x5B, 0xA2, 0x0B, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF4, 0x5C, 0x9A, 0x03, 0x6D, 0x40, 0xEA, +0x01, 0x6C, 0x04, 0x6D, 0x00, 0x18, 0xB3, 0xC5, +0x25, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, +0x5C, 0x9A, 0x00, 0x6D, 0x30, 0xF0, 0x20, 0x69, +0x40, 0xEA, 0x6B, 0xF0, 0x08, 0x49, 0x0C, 0x6D, +0x01, 0x6C, 0x00, 0x18, 0xB3, 0xC5, 0xA3, 0xF3, +0x1E, 0xA1, 0x90, 0x67, 0x80, 0x18, 0x58, 0x6F, +0x7F, 0x6D, 0x90, 0x67, 0x4C, 0xED, 0x80, 0x18, +0x4B, 0x6F, 0xA3, 0xF3, 0x1E, 0xA1, 0x90, 0x67, +0x80, 0x18, 0x58, 0x6F, 0xDF, 0x6D, 0x90, 0x67, +0x4C, 0xED, 0x80, 0x18, 0x4B, 0x6F, 0x0C, 0x6C, +0x80, 0x18, 0xBF, 0x70, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, 0xFF, 0x6C, +0xC5, 0x67, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x04, 0x67, 0xA4, 0xA0, 0x82, 0xA4, 0x00, 0x18, +0xE6, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xA8, +0xC3, 0xA0, 0xA0, 0xF2, 0x54, 0x9A, 0x01, 0x6D, +0x04, 0x6F, 0x40, 0xEA, 0x22, 0x67, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xA0, 0x40, 0xF4, 0x58, 0x9A, +0xC4, 0xA0, 0xB1, 0x67, 0x40, 0xEA, 0x82, 0xA0, +0x00, 0x18, 0x49, 0xD2, 0x0A, 0x22, 0x30, 0xF0, +0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, 0x44, 0xF5, +0x8C, 0xAB, 0x01, 0x4C, 0x44, 0xF5, 0x8C, 0xCB, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, +0x08, 0x4B, 0x44, 0xF5, 0x84, 0xAB, 0x01, 0x4C, +0x44, 0xF5, 0x84, 0xCB, 0xA2, 0x67, 0x91, 0x67, +0x00, 0x18, 0x83, 0xEF, 0xA4, 0xA0, 0x91, 0x67, +0x00, 0x18, 0x92, 0xEF, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x01, 0x6A, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x1C, 0xC8, +0x20, 0x2A, 0x00, 0x18, 0x92, 0xD5, 0x3A, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, 0x54, 0x9A, +0x40, 0xA2, 0x34, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xAF, 0xF5, 0x7C, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0xFF, 0x6B, 0x6C, 0xEA, 0x2B, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF1, 0x48, 0x9A, 0x60, 0xA2, +0x02, 0x6A, 0x6C, 0xEA, 0x23, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF1, 0x4C, 0x9A, 0x40, 0xA2, +0x1D, 0x2A, 0x00, 0x18, 0x97, 0xD5, 0x1A, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA0, 0xF1, 0x60, 0xA2, 0xA0, 0xF1, 0x41, 0xA2, +0x6E, 0xEA, 0x10, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF1, 0x50, 0x9A, 0x60, 0xA2, 0x0F, 0x6A, +0x6C, 0xEA, 0x08, 0x2A, 0x00, 0x18, 0xDD, 0xF1, +0x05, 0x2A, 0x00, 0x18, 0xDD, 0xF1, 0x01, 0x5A, +0x58, 0x67, 0x01, 0x10, 0x00, 0x6A, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x6E, 0xF6, 0x47, 0xA2, +0x02, 0x22, 0x08, 0x72, 0x06, 0x61, 0x00, 0x18, +0x50, 0xCC, 0x01, 0x72, 0x02, 0x61, 0x00, 0x18, +0x53, 0xCB, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF0, 0x70, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0xE6, 0xF1, 0x11, 0x4A, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xE3, 0xF5, +0x9C, 0xA2, 0x01, 0x6B, 0xFF, 0x6D, 0x6C, 0xEC, +0x20, 0x24, 0xA0, 0xF0, 0x9A, 0xA2, 0x6C, 0xEC, +0xAC, 0xEC, 0x05, 0x2C, 0xA3, 0xF3, 0x5C, 0xA2, +0x6C, 0xEA, 0xAC, 0xEA, 0x13, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xA0, 0xF0, +0x9A, 0xA2, 0x02, 0x6B, 0x6C, 0xEC, 0x06, 0x2C, +0xA3, 0xF3, 0x5C, 0xA2, 0x6C, 0xEA, 0xFF, 0x6B, +0x6C, 0xEA, 0x04, 0x22, 0x80, 0x18, 0x34, 0x70, +0x01, 0x72, 0x05, 0x61, 0x00, 0x18, 0x73, 0xCC, +0x02, 0x10, 0x00, 0x18, 0xED, 0xC8, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF0, 0x70, 0x9B, 0x10, 0xF0, +0x23, 0x6A, 0xE6, 0xF1, 0x13, 0x4A, 0x40, 0xDB, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, +0xE0, 0xF0, 0x7A, 0xA0, 0x01, 0x6A, 0xFF, 0x69, +0x4C, 0xEB, 0x0D, 0x23, 0x64, 0xF5, 0x79, 0xA0, +0x6C, 0xEA, 0x2C, 0xEA, 0x47, 0x2A, 0x63, 0xF6, +0x58, 0xA0, 0x44, 0x2A, 0x83, 0xF3, 0x5C, 0xA0, +0x01, 0x5A, 0x58, 0x67, 0x40, 0x10, 0x00, 0x18, +0xDE, 0xC5, 0x01, 0x72, 0x3B, 0x61, 0x00, 0x18, +0xE7, 0xE3, 0x01, 0x72, 0x37, 0x61, 0x03, 0xF6, +0x61, 0xA0, 0x03, 0x6A, 0x6C, 0xEA, 0x32, 0x2A, +0x63, 0xF6, 0x58, 0xA0, 0x2F, 0x2A, 0x04, 0x6A, +0x6C, 0xEA, 0x2C, 0x2A, 0x10, 0x6A, 0x6C, 0xEA, +0x29, 0x2A, 0xE3, 0xF5, 0x7C, 0xA0, 0x20, 0x6A, +0x6C, 0xEA, 0x2C, 0xEA, 0x23, 0x22, 0x83, 0xF3, +0x5C, 0xA0, 0x20, 0x2A, 0x00, 0x18, 0x2A, 0xC8, +0x1D, 0x2A, 0x30, 0xF0, 0x21, 0x6A, 0x32, 0xF4, +0x70, 0xA2, 0x03, 0x6A, 0x6C, 0xEA, 0x03, 0x72, +0x15, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, +0x74, 0x9A, 0x02, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x0D, 0x2A, 0x40, 0xA3, 0x01, 0x6C, 0x4C, 0xEC, +0x01, 0x6A, 0x09, 0x24, 0x80, 0xA3, 0xFC, 0x6B, +0x00, 0x6A, 0x8C, 0xEB, 0x80, 0x73, 0x03, 0x60, +0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x24, 0x67, 0x6E, 0xF6, +0x86, 0xA3, 0x02, 0x6B, 0xFF, 0x6A, 0x8C, 0xEB, +0x4C, 0xED, 0x4C, 0xEB, 0x4C, 0xE9, 0x08, 0xD5, +0x02, 0x6A, 0x75, 0x23, 0x30, 0xF0, 0x20, 0x6A, +0x48, 0xF6, 0x5B, 0xA2, 0x2E, 0xEA, 0x5F, 0x22, +0x00, 0x6A, 0x7D, 0x67, 0x30, 0xF0, 0x20, 0x6C, +0x05, 0xD2, 0x58, 0xC3, 0x48, 0xCB, 0x48, 0xF6, +0x5A, 0xA4, 0x27, 0x2A, 0x30, 0xF0, 0x20, 0x6B, +0x48, 0xF6, 0x59, 0xA3, 0x22, 0x2A, 0x30, 0xF0, +0x20, 0x6C, 0x48, 0xF6, 0x58, 0xA4, 0x1D, 0x2A, +0x30, 0xF0, 0x21, 0x68, 0x32, 0xF4, 0x18, 0x48, +0x90, 0x67, 0x05, 0x05, 0x80, 0x18, 0xC4, 0x56, +0x90, 0x67, 0x04, 0x05, 0x80, 0x18, 0xB2, 0x56, +0x7D, 0x67, 0x50, 0xA3, 0x30, 0xF0, 0x20, 0x6C, +0x48, 0xF6, 0x5A, 0xC4, 0x54, 0xA3, 0x75, 0xA3, +0x30, 0xF0, 0x20, 0x6C, 0x4D, 0xEB, 0x48, 0xF6, +0x79, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0x48, 0xF6, +0x58, 0xC3, 0x03, 0x21, 0x01, 0x71, 0x12, 0x60, +0x26, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x48, 0xF6, +0xB9, 0xA2, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x21, 0x6C, 0x48, 0xF6, 0xDA, 0xA2, 0x30, 0xF0, +0x20, 0x6A, 0x32, 0xF4, 0x18, 0x4C, 0x48, 0xF6, +0xF8, 0xA2, 0x13, 0x10, 0x30, 0xF0, 0x21, 0x68, +0x32, 0xF4, 0x18, 0x48, 0x90, 0x67, 0x80, 0x18, +0xA4, 0x55, 0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x32, 0x6C, 0x40, 0xEA, +0xF1, 0x17, 0x01, 0x6D, 0x90, 0x67, 0xC5, 0x67, +0xE5, 0x67, 0x80, 0x18, 0x65, 0x5C, 0x30, 0xF0, +0x20, 0x6A, 0x48, 0xF6, 0x3B, 0xC2, 0x08, 0x94, +0x00, 0x6A, 0x0D, 0x24, 0x30, 0xF0, 0x20, 0x6B, +0x48, 0xF6, 0x5A, 0xC3, 0x30, 0xF0, 0x20, 0x6B, +0x48, 0xF6, 0x59, 0xC3, 0x30, 0xF0, 0x20, 0x6B, +0x48, 0xF6, 0x58, 0xC3, 0x00, 0x6A, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x80, 0xF2, 0x48, 0x98, +0x30, 0xF0, 0x20, 0x6C, 0x6E, 0xF6, 0x04, 0x4C, +0x00, 0x6D, 0x80, 0x6E, 0x40, 0xEA, 0x80, 0xF2, +0x48, 0x98, 0x30, 0xF0, 0x20, 0x6C, 0x2C, 0x6E, +0x8F, 0xF5, 0x10, 0x4C, 0x00, 0x6D, 0x30, 0xF0, +0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, 0x40, 0xEA, +0x00, 0x18, 0x0A, 0xC8, 0x01, 0x6A, 0x03, 0xF6, +0x46, 0xC0, 0x03, 0xF6, 0x47, 0xC0, 0x0C, 0x6A, +0x02, 0x69, 0x03, 0xF6, 0x48, 0xC0, 0x00, 0x6C, +0x06, 0x6A, 0x03, 0xF6, 0x50, 0xC8, 0xA0, 0xF0, +0x3D, 0xC0, 0xA4, 0x67, 0x00, 0x18, 0xB3, 0xC5, +0x02, 0x6C, 0x0C, 0x6D, 0x00, 0x18, 0xB3, 0xC5, +0x01, 0x6C, 0x0C, 0x6D, 0x00, 0x18, 0xB3, 0xC5, +0x30, 0xF0, 0x20, 0x6C, 0x6E, 0xF6, 0x16, 0x4C, +0x00, 0x6D, 0x00, 0x18, 0x94, 0xEB, 0xC0, 0xF0, +0x64, 0xA0, 0x0F, 0x6A, 0xC0, 0xF0, 0x43, 0xC0, +0x01, 0x6A, 0x6C, 0xEA, 0x28, 0x6B, 0x6D, 0xEA, +0xC0, 0xF0, 0x44, 0xC0, 0x07, 0x6A, 0xC0, 0xF0, +0x45, 0xC0, 0x03, 0xF6, 0x5A, 0xA0, 0xC0, 0xF0, +0x22, 0xC0, 0x30, 0xF0, 0x20, 0x69, 0x03, 0x4A, +0x03, 0xF6, 0x56, 0xC0, 0x0C, 0x6A, 0x03, 0xF6, +0x57, 0xC0, 0x40, 0xF4, 0x5C, 0x99, 0x00, 0x6C, +0xA4, 0x67, 0x40, 0xEA, 0x40, 0xF4, 0x5C, 0x99, +0x01, 0x6C, 0x00, 0x6D, 0x40, 0xEA, 0x40, 0xF4, +0x5C, 0x99, 0x02, 0x6C, 0x00, 0x6D, 0x40, 0xEA, +0x40, 0xF4, 0x5C, 0x99, 0x03, 0x6C, 0x00, 0x6D, +0x40, 0xEA, 0x40, 0xF4, 0x5C, 0x99, 0x04, 0x6C, +0x00, 0x6D, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF1, 0x78, 0x9A, 0xF8, 0x6A, 0x00, 0x6D, +0x80, 0xA3, 0xC5, 0x67, 0x00, 0x69, 0x8C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0xFF, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF6, 0x70, 0xA0, 0xC3, 0xF0, +0x40, 0x9A, 0x83, 0xF3, 0x3C, 0xC0, 0xFF, 0x6C, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, +0x7C, 0x9A, 0x08, 0x6D, 0xAB, 0xED, 0x40, 0xA3, +0x80, 0xF6, 0x10, 0x6E, 0x8C, 0xEA, 0xAC, 0xEA, +0x05, 0x6D, 0xAD, 0xEA, 0x8C, 0xEA, 0x30, 0xF0, +0x20, 0x6C, 0x40, 0xC3, 0xEE, 0xF6, 0x10, 0x4C, +0x00, 0x6D, 0x00, 0x18, 0x37, 0xD6, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF1, 0x40, 0x9A, 0x20, 0x6B, +0x10, 0xF0, 0x23, 0x6D, 0x60, 0xC2, 0x0C, 0x6A, +0x63, 0xF6, 0x58, 0xC0, 0xE3, 0xF5, 0x5F, 0xC0, +0x63, 0xF6, 0x39, 0xC0, 0x63, 0xF6, 0x3B, 0xC0, +0x04, 0x6C, 0xE9, 0xF0, 0x0D, 0x4D, 0x00, 0x18, +0xF6, 0xC1, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x6E, 0xF6, 0xA4, 0xA3, 0x04, 0x6B, 0xFF, 0x6A, +0xAC, 0xEB, 0x4C, 0xEB, 0x4C, 0xEC, 0x06, 0x23, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x44, 0x9A, +0x00, 0x6B, 0x60, 0xC2, 0x02, 0x6D, 0x00, 0x18, +0xC8, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, +0x48, 0x9A, 0x04, 0x69, 0x30, 0xF0, 0x20, 0x68, +0x20, 0xDA, 0x6B, 0xF0, 0x08, 0x48, 0xC0, 0xF0, +0xC4, 0xA0, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x48, 0x9A, 0xFF, 0x6C, 0x59, 0x4C, 0x00, 0x6D, +0xC6, 0x36, 0x40, 0xEA, 0xE3, 0xF5, 0x5C, 0xA0, +0x07, 0x97, 0x4D, 0xE9, 0xE3, 0xF5, 0x3C, 0xC0, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0xAC, 0xEA, 0x29, 0x22, 0x05, 0x5C, 0x1D, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, 0xA2, 0xF0, +0x08, 0x4A, 0x89, 0xE2, 0x40, 0x9A, 0x00, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x01, 0x6C, 0xC3, 0xF1, +0xAC, 0x9A, 0x0D, 0x10, 0x04, 0x6C, 0x0F, 0x6D, +0x0A, 0x10, 0x04, 0x6C, 0xF0, 0x6D, 0x07, 0x10, +0x04, 0x6C, 0x01, 0xF7, 0x00, 0x6D, 0x03, 0x10, +0x04, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, 0x80, 0x18, +0x45, 0x76, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, +0x78, 0x9A, 0xFF, 0x6C, 0x07, 0x6D, 0x40, 0xA3, +0x8C, 0xEA, 0xAD, 0xEA, 0x25, 0x10, 0x05, 0x5C, +0x1D, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, +0xA2, 0xF0, 0x1C, 0x4A, 0x89, 0xE2, 0x40, 0x9A, +0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x01, 0x6C, +0xC3, 0xF1, 0xAC, 0x9A, 0x0D, 0x10, 0x04, 0x6C, +0x0F, 0x6D, 0x0A, 0x10, 0x04, 0x6C, 0xF0, 0x6D, +0x07, 0x10, 0x04, 0x6C, 0x01, 0xF7, 0x00, 0x6D, +0x03, 0x10, 0x04, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, +0x80, 0x18, 0x76, 0x76, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF1, 0x78, 0x9A, 0xF8, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x27, 0x22, +0x05, 0x5C, 0x4B, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x88, 0x34, 0xC2, 0xF0, 0x10, 0x4A, 0x89, 0xE2, +0x40, 0x9A, 0x00, 0xEA, 0x00, 0x6C, 0x08, 0x6D, +0x17, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x6C, +0x03, 0xF1, 0xB8, 0x9A, 0x11, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x04, 0x6C, 0xC3, 0xF1, 0xB0, 0x9A, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x6C, +0xC3, 0xF1, 0xB4, 0x9A, 0x05, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF1, 0xB8, 0x9A, 0x04, 0x6C, +0x80, 0x18, 0x45, 0x76, 0x26, 0x10, 0x05, 0x5C, +0x24, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, +0xE2, 0xF0, 0x04, 0x4A, 0x89, 0xE2, 0x40, 0x9A, +0x00, 0xEA, 0x00, 0x6C, 0x08, 0x6D, 0x17, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0x6C, 0x03, 0xF1, +0xB8, 0x9A, 0x11, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0x6C, 0xC3, 0xF1, 0xB0, 0x9A, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0x6C, 0xC3, 0xF1, +0xB4, 0x9A, 0x05, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF1, 0xB8, 0x9A, 0x04, 0x6C, 0x80, 0x18, +0x76, 0x76, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x6A, 0xC3, 0xF1, +0x7C, 0x9B, 0x4C, 0xEC, 0x04, 0xD4, 0x20, 0xA3, +0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6C, 0x4C, 0xE9, +0xA0, 0xF2, 0x50, 0x98, 0xA4, 0x67, 0x2D, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, +0x5C, 0x9A, 0x40, 0xEA, 0x06, 0x2A, 0xA0, 0xF2, +0x50, 0x98, 0xFF, 0x6C, 0xB1, 0x67, 0x2D, 0x6E, +0x0C, 0x10, 0x04, 0x94, 0x01, 0x6D, 0x00, 0x18, +0xBB, 0xCD, 0x00, 0x18, 0xAB, 0xED, 0x07, 0x2A, +0xA0, 0xF2, 0x50, 0x98, 0xFF, 0x6C, 0xB1, 0x67, +0x5B, 0x6E, 0x40, 0xEA, 0x07, 0x10, 0x01, 0x6C, +0x00, 0x6D, 0x00, 0x18, 0xB3, 0xC5, 0x00, 0x6C, +0x80, 0x18, 0xBF, 0x70, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x25, 0x67, 0x30, 0xF0, 0x20, 0x6D, 0x6B, 0xF0, +0x08, 0x4D, 0x06, 0x67, 0xE3, 0xF5, 0xDD, 0xA5, +0x03, 0x6B, 0xFF, 0x6A, 0xCC, 0xEB, 0x4C, 0xEB, +0x4C, 0xEC, 0x4C, 0xE9, 0x4C, 0xE8, 0xE0, 0xF0, +0x06, 0x2B, 0xE3, 0xF5, 0x5F, 0xA5, 0x8E, 0xEA, +0xE0, 0xF0, 0x01, 0x22, 0x0D, 0x5C, 0xC0, 0xF0, +0x1E, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, +0xE2, 0xF0, 0x18, 0x4A, 0x89, 0xE2, 0x40, 0x9A, +0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x6E, 0xF6, +0x47, 0xA2, 0x0E, 0x72, 0x03, 0x61, 0x90, 0x67, +0x00, 0x18, 0xC6, 0xCB, 0x30, 0xF0, 0x20, 0x6A, +0x6E, 0xF6, 0x47, 0xA2, 0x04, 0x2A, 0x01, 0x6C, +0xB0, 0x67, 0x00, 0x18, 0xD3, 0xC8, 0x30, 0xF0, +0x20, 0x6A, 0x6E, 0xF6, 0x47, 0xA2, 0x06, 0x72, +0x03, 0x61, 0x90, 0x67, 0x00, 0x18, 0xFD, 0xCB, +0x30, 0xF0, 0x20, 0x6A, 0x6E, 0xF6, 0x47, 0xA2, +0x04, 0x72, 0x09, 0x61, 0x05, 0x21, 0x91, 0x67, +0xB0, 0x67, 0x00, 0x18, 0x4A, 0xD1, 0x03, 0x10, +0x90, 0x67, 0x00, 0x18, 0x24, 0xC6, 0x30, 0xF0, +0x20, 0x6A, 0x6E, 0xF6, 0x47, 0xA2, 0x08, 0x72, +0xA0, 0xF0, 0x05, 0x61, 0x80, 0x18, 0x00, 0x40, +0xA2, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x6E, 0xF6, +0x47, 0xA2, 0x04, 0x2A, 0x01, 0x6C, 0xB0, 0x67, +0x00, 0x18, 0xD3, 0xC8, 0x30, 0xF0, 0x20, 0x6A, +0x6E, 0xF6, 0x47, 0xA2, 0x06, 0x72, 0x03, 0x61, +0x90, 0x67, 0x00, 0x18, 0xFD, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0x6E, 0xF6, 0x47, 0xA2, 0x0E, 0x72, +0x07, 0x61, 0x00, 0x18, 0x00, 0xC6, 0x01, 0x72, +0x03, 0x61, 0x90, 0x67, 0x00, 0x18, 0xC6, 0xCB, +0x30, 0xF0, 0x20, 0x6A, 0x6E, 0xF6, 0x47, 0xA2, +0x0C, 0x72, 0x7D, 0x61, 0x00, 0x18, 0x00, 0xC6, +0x01, 0x72, 0x79, 0x61, 0x90, 0x67, 0x00, 0x18, +0x20, 0xCB, 0x75, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x6E, 0xF6, 0x47, 0xA2, 0x0E, 0x72, 0x07, 0x61, +0x00, 0x18, 0x00, 0xC6, 0x01, 0x72, 0x03, 0x61, +0x90, 0x67, 0x00, 0x18, 0xC6, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0x6E, 0xF6, 0x47, 0xA2, 0x06, 0x72, +0x03, 0x61, 0x90, 0x67, 0x00, 0x18, 0xFD, 0xCB, +0x30, 0xF0, 0x20, 0x6A, 0x6E, 0xF6, 0x47, 0xA2, +0x0C, 0x72, 0x07, 0x61, 0x00, 0x18, 0x00, 0xC6, +0x01, 0x72, 0x03, 0x61, 0x90, 0x67, 0x00, 0x18, +0x20, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x6E, 0xF6, +0x47, 0xA2, 0x04, 0x72, 0x4C, 0x61, 0x00, 0x18, +0x9E, 0xCC, 0x01, 0x72, 0x48, 0x61, 0x90, 0x67, +0x00, 0x18, 0xE6, 0xCD, 0x44, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x6E, 0xF6, 0x47, 0xA2, 0x0E, 0x72, +0x07, 0x61, 0x00, 0x18, 0x00, 0xC6, 0x01, 0x72, +0x03, 0x61, 0x90, 0x67, 0x00, 0x18, 0xC6, 0xCB, +0x30, 0xF0, 0x20, 0x6A, 0x6E, 0xF6, 0x47, 0xA2, +0x06, 0x72, 0x03, 0x61, 0x90, 0x67, 0x00, 0x18, +0xFD, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x6E, 0xF6, +0x47, 0xA2, 0x0C, 0x72, 0x07, 0x61, 0x00, 0x18, +0x00, 0xC6, 0x01, 0x72, 0x03, 0x61, 0x90, 0x67, +0x00, 0x18, 0x20, 0xCB, 0x30, 0xF0, 0x20, 0x6A, +0x6E, 0xF6, 0x47, 0xA2, 0x04, 0x2A, 0x01, 0x6C, +0xB0, 0x67, 0x00, 0x18, 0xD3, 0xC8, 0x30, 0xF0, +0x20, 0x6A, 0x6E, 0xF6, 0x47, 0xA2, 0x04, 0x72, +0x12, 0x61, 0x00, 0x18, 0xB5, 0xCB, 0x0F, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xE3, 0xF5, 0x7F, 0xA2, 0x0C, 0x73, 0x07, 0x61, +0xE3, 0xF5, 0x7C, 0xA2, 0x20, 0x6A, 0x6C, 0xEA, +0x02, 0x22, 0x80, 0x18, 0x19, 0x40, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x24, 0x67, 0x4C, 0xED, 0x00, 0x6C, +0x4C, 0xE9, 0x04, 0xD5, 0x00, 0x18, 0x5F, 0xDC, +0x02, 0x67, 0x00, 0x18, 0x05, 0xC8, 0x2D, 0x22, +0x16, 0x29, 0x30, 0xF0, 0x20, 0x6A, 0x28, 0xF6, +0x14, 0x4A, 0x63, 0xA2, 0x84, 0x9A, 0xA6, 0x9A, +0x01, 0x4B, 0x63, 0xC2, 0x93, 0xE0, 0xE0, 0xF3, +0x08, 0x6B, 0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, +0x05, 0xDA, 0x12, 0xEB, 0xAD, 0xE3, 0x66, 0xDA, +0x80, 0x18, 0x19, 0x40, 0x44, 0x10, 0x80, 0x18, +0x00, 0x40, 0x30, 0xF0, 0x20, 0x6A, 0x28, 0xF6, +0x14, 0x4A, 0x85, 0x9A, 0xE0, 0xF3, 0x08, 0x6B, +0xA7, 0x9A, 0x93, 0xE0, 0x7B, 0xEC, 0x01, 0x2B, +0xE5, 0xE8, 0x04, 0xDA, 0x12, 0xEB, 0xAD, 0xE3, +0x67, 0xDA, 0x62, 0xA2, 0x01, 0x4B, 0x62, 0xC2, +0x2E, 0x10, 0x01, 0x71, 0x19, 0x61, 0x04, 0x96, +0x04, 0x6C, 0x01, 0x6D, 0x00, 0x18, 0x04, 0xCE, +0x30, 0xF0, 0x20, 0x6A, 0x28, 0xF6, 0x14, 0x4A, +0x85, 0x9A, 0xE0, 0xF3, 0x08, 0x6B, 0xA7, 0x9A, +0x93, 0xE0, 0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, +0x04, 0xDA, 0x12, 0xEB, 0xAD, 0xE3, 0x67, 0xDA, +0x64, 0xA2, 0x01, 0x4B, 0x64, 0xC2, 0x13, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x28, 0xF6, 0x14, 0x4A, +0x84, 0x9A, 0xE0, 0xF3, 0x08, 0x6B, 0xA6, 0x9A, +0x93, 0xE0, 0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, +0x05, 0xDA, 0x12, 0xEB, 0xAD, 0xE3, 0x66, 0xDA, +0x65, 0xA2, 0x01, 0x4B, 0x65, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x28, 0xF6, 0x14, 0x4A, 0x66, 0x9A, +0x06, 0x23, 0x87, 0x9A, 0x7B, 0xEC, 0x01, 0x2B, +0xE5, 0xE8, 0x12, 0xEB, 0x63, 0xDA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x28, 0xF6, 0x14, 0x4A, +0x61, 0xA2, 0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, +0x08, 0x48, 0xC0, 0xF0, 0x29, 0xA0, 0x01, 0x4B, +0x61, 0xC2, 0x36, 0x31, 0x00, 0x18, 0x05, 0xC8, +0x08, 0x22, 0x00, 0x18, 0x20, 0xC8, 0x02, 0x22, +0x08, 0x6A, 0x01, 0x10, 0x0C, 0x6A, 0x63, 0xF6, +0x58, 0xC0, 0x00, 0x6C, 0x00, 0x18, 0xB0, 0xC8, +0x00, 0x18, 0x67, 0xC8, 0x00, 0x18, 0x20, 0xC8, +0x01, 0x6C, 0x04, 0x22, 0x91, 0x67, 0x00, 0x18, +0x78, 0xC8, 0x00, 0x6C, 0xB1, 0x67, 0x00, 0x18, +0x84, 0xCE, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x68, 0x24, 0x67, 0x4C, 0xED, 0x00, 0x6C, +0x28, 0xF6, 0x14, 0x48, 0x4C, 0xE9, 0x05, 0xD5, +0x00, 0x18, 0x5F, 0xDC, 0x68, 0x98, 0x04, 0xD2, +0x6F, 0xE2, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, +0x40, 0x9A, 0x63, 0xEA, 0x04, 0x60, 0x00, 0x18, +0x70, 0xC8, 0x04, 0x92, 0x48, 0xD8, 0x00, 0x18, +0x20, 0xC8, 0x29, 0x22, 0x91, 0x67, 0x00, 0x18, +0x24, 0xC8, 0x25, 0x22, 0x00, 0x18, 0x32, 0xC8, +0x22, 0x22, 0x05, 0x95, 0x91, 0x67, 0x00, 0x18, +0x96, 0xC8, 0x1D, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x83, 0xF6, 0x85, 0xA2, +0x83, 0xF6, 0x66, 0xA2, 0x63, 0xEC, 0x6F, 0xE4, +0x01, 0x60, 0x00, 0x6B, 0x83, 0xF6, 0x65, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF6, 0x4D, 0xA2, +0x0A, 0x2A, 0x91, 0x67, 0x00, 0x18, 0x78, 0xC8, +0x01, 0x6C, 0xB1, 0x67, 0x00, 0x18, 0x84, 0xCE, +0x01, 0x6C, 0x00, 0x18, 0xB0, 0xC8, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x28, 0xF6, 0x14, 0x4A, 0x67, 0xA2, 0x01, 0x4B, +0x67, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x83, 0xF6, 0x87, 0xA2, 0xC0, 0xF0, +0xA9, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x83, 0xF6, 0x67, 0xC2, 0x00, 0x6C, 0xB6, 0x35, +0x00, 0x18, 0x84, 0xCE, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, +0x08, 0x4B, 0xA0, 0xF0, 0xBB, 0xA3, 0x04, 0x67, +0x7F, 0x6C, 0xAC, 0xEC, 0xFF, 0x6A, 0x01, 0x74, +0x4C, 0xE8, 0x20, 0x61, 0xA0, 0xF0, 0xBC, 0xA3, +0x10, 0x6C, 0x8B, 0xEC, 0xAC, 0xEC, 0x4C, 0xEC, +0x11, 0x24, 0xD0, 0x67, 0x0C, 0x6C, 0x00, 0x6D, +0x00, 0x18, 0x04, 0xCE, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, 0xFF, 0x6C, +0xC5, 0x67, 0x40, 0xEA, 0x90, 0x67, 0x00, 0x18, +0x73, 0xCD, 0x08, 0x10, 0xE3, 0xF5, 0x5F, 0xA3, +0x05, 0x2A, 0x04, 0x6C, 0x01, 0x6D, 0xD0, 0x67, +0x00, 0x18, 0x04, 0xCE, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF1, 0xA2, 0xA3, +0x01, 0x6B, 0xFF, 0x6A, 0xAC, 0xEB, 0x4C, 0xEB, +0x4C, 0xEC, 0x06, 0x2B, 0x00, 0x18, 0x11, 0xCF, +0x00, 0x6C, 0xA4, 0x67, 0x00, 0x18, 0xCE, 0xCC, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, +0x08, 0x48, 0x4C, 0xEC, 0x04, 0xD4, 0x03, 0xF6, +0x81, 0xA0, 0x10, 0x6B, 0x8D, 0xEB, 0xC0, 0xF0, +0x97, 0xA0, 0x03, 0xF6, 0x61, 0xC0, 0x01, 0x6B, +0x8C, 0xEB, 0x4C, 0xEB, 0x26, 0x23, 0xC0, 0xF0, +0x59, 0xA0, 0xFF, 0x72, 0x2C, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF1, 0x44, 0x9A, 0x00, 0x6B, +0x30, 0xF0, 0x20, 0x69, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF1, 0x48, 0x9A, 0x04, 0x6B, +0xFF, 0x6C, 0x60, 0xC2, 0x00, 0xF3, 0x48, 0x99, +0x59, 0x4C, 0x00, 0x6D, 0x06, 0x6E, 0x40, 0xEA, +0xC0, 0xF0, 0xD9, 0xA0, 0x00, 0xF3, 0x48, 0x99, +0xFF, 0x6C, 0x55, 0x4C, 0x00, 0x6D, 0x06, 0x4E, +0x40, 0xEA, 0x04, 0x94, 0x00, 0x18, 0x5A, 0xE7, +0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x48, 0x9A, 0x03, 0xF6, 0xC8, 0xA0, 0xFF, 0x6C, +0x55, 0x4C, 0x00, 0x6D, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x6E, 0xF6, 0x47, 0xA2, 0x04, 0x6B, +0x6C, 0xEA, 0x05, 0x2A, 0x04, 0x96, 0x83, 0x67, +0x01, 0x6D, 0x00, 0x18, 0x04, 0xCE, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x69, +0x04, 0xD2, 0x6B, 0xF0, 0x08, 0x49, 0xA0, 0xF0, +0x7B, 0xA1, 0x00, 0x6A, 0x03, 0xF6, 0x4D, 0xC1, +0x7F, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, +0x29, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x5C, 0x9A, 0xC0, 0xF0, 0x9F, 0xA1, 0x01, 0x68, +0x40, 0xEA, 0x4E, 0xE8, 0x1F, 0x28, 0x04, 0x94, +0x03, 0xF6, 0xA6, 0xA1, 0x00, 0x18, 0x37, 0xEC, +0xA0, 0xF0, 0x7A, 0xA1, 0x01, 0x6A, 0xFF, 0x6C, +0x4C, 0xEB, 0x8C, 0xEB, 0x03, 0xF6, 0x07, 0xC1, +0x05, 0x2B, 0xA3, 0xF3, 0x7C, 0xA1, 0x6C, 0xEA, +0x8C, 0xEA, 0x09, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x2E, 0xF4, 0x02, 0xA2, 0x80, 0x18, 0x74, 0x6F, +0x05, 0x22, 0x02, 0x70, 0x03, 0x60, 0x04, 0x94, +0x00, 0x18, 0x36, 0xCF, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, +0xA0, 0xF0, 0x7B, 0xA0, 0x00, 0x6A, 0x03, 0xF6, +0x4D, 0xC0, 0x7F, 0x6A, 0xFF, 0x69, 0x6C, 0xEA, +0x2C, 0xEC, 0x2C, 0xEA, 0x04, 0xD4, 0x37, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, +0xC0, 0xF0, 0x9F, 0xA0, 0x40, 0xEA, 0x01, 0x72, +0x2E, 0x61, 0xA0, 0xF0, 0x7C, 0xA0, 0x0F, 0x6A, +0x6C, 0xEA, 0x2C, 0xEA, 0x01, 0x69, 0x06, 0x22, +0xE3, 0xF5, 0x3D, 0xA0, 0x01, 0x6A, 0x32, 0x31, +0x4E, 0xE9, 0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xA0, 0xF0, 0x9A, 0xA2, +0x01, 0x6B, 0x6C, 0xEC, 0x06, 0x2C, 0xA3, 0xF3, +0x5C, 0xA2, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, +0x0E, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF4, +0x62, 0xA2, 0x02, 0x6A, 0x4E, 0xEB, 0x6B, 0xEA, +0x6D, 0xEA, 0xC0, 0xF7, 0x43, 0x32, 0x4C, 0xE9, +0x80, 0x18, 0x74, 0x6F, 0x04, 0x22, 0x03, 0x21, +0x04, 0x94, 0x00, 0x18, 0x36, 0xCF, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xF2, 0x63, 0x1B, 0x62, 0x1A, 0xD1, 0x19, 0xD0, +0xFF, 0x69, 0x8C, 0xE9, 0x30, 0xF0, 0x20, 0x68, +0x91, 0x67, 0x6B, 0xF0, 0x08, 0x48, 0x00, 0x18, +0x73, 0xCD, 0xE3, 0xF5, 0x5F, 0xA0, 0x0C, 0x72, +0x41, 0x60, 0xD1, 0x67, 0x0C, 0x6C, 0x00, 0x6D, +0x00, 0x18, 0x04, 0xCE, 0x00, 0x6C, 0xA4, 0x67, +0x00, 0x18, 0xCE, 0xCC, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, 0xC5, 0x67, +0xFF, 0x6C, 0x40, 0xEA, 0xE3, 0xF5, 0x7D, 0xA0, +0x01, 0x6A, 0x0C, 0x04, 0x6D, 0xEA, 0x00, 0x6D, +0x30, 0x6E, 0xE3, 0xF5, 0x5D, 0xC0, 0x00, 0x18, +0x37, 0xD6, 0xA0, 0xF0, 0x4A, 0xA0, 0x7D, 0x67, +0x40, 0xF0, 0x2C, 0xC3, 0x40, 0xF0, 0x48, 0xCB, +0x08, 0x6A, 0x40, 0xF0, 0x4B, 0xC3, 0x10, 0xF0, +0x23, 0x6A, 0xC6, 0xF0, 0x01, 0x4A, 0x0C, 0xD2, +0x10, 0xF0, 0x23, 0x6A, 0x24, 0xF1, 0x11, 0x4A, +0x0D, 0xD2, 0x04, 0x04, 0x00, 0x6A, 0x10, 0x03, +0x05, 0x10, 0x59, 0xE3, 0xC0, 0xA6, 0x55, 0xE4, +0x01, 0x4A, 0xC0, 0xC5, 0x20, 0x5A, 0xF9, 0x61, +0x0C, 0x94, 0x0D, 0x95, 0x0E, 0x96, 0x0F, 0x97, +0x00, 0x18, 0x14, 0xE4, 0x1B, 0x97, 0x1A, 0x91, +0x19, 0x90, 0x0E, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0xA0, 0xF0, 0xDB, 0xA3, +0x7F, 0x6D, 0xFF, 0x6A, 0xCC, 0xED, 0x01, 0x75, +0x4C, 0xEC, 0x16, 0x61, 0x03, 0xF6, 0xC1, 0xA3, +0x01, 0x6D, 0xCD, 0xED, 0x03, 0xF6, 0xA1, 0xC3, +0xA0, 0xF0, 0xBC, 0xA3, 0x10, 0x6B, 0x6B, 0xEB, +0xAC, 0xEB, 0x4C, 0xEB, 0x20, 0x73, 0x06, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, 0x40, 0x9A, +0x40, 0xEA, 0x02, 0x10, 0x00, 0x18, 0xAC, 0xCF, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0xA0, 0xF0, 0xBA, 0xA3, +0xC4, 0x67, 0x01, 0x6C, 0xFF, 0x6A, 0x8C, 0xED, +0x4C, 0xED, 0x4C, 0xEE, 0x05, 0x2D, 0xA3, 0xF3, +0xBC, 0xA3, 0xAC, 0xEC, 0x4C, 0xEC, 0x07, 0x24, +0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF6, 0x80, 0xA2, +0x80, 0x18, 0xEF, 0x70, 0x05, 0x10, 0x63, 0xF6, +0x98, 0xA3, 0x01, 0x6D, 0x00, 0x18, 0x04, 0xCE, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0x40, 0xF1, 0xB6, 0xA3, 0x24, 0x67, 0x01, 0x6C, +0xFF, 0x6A, 0xAC, 0xEC, 0x4C, 0xEC, 0x4C, 0xE9, +0x05, 0x24, 0x43, 0xF6, 0x48, 0xA3, 0x01, 0x4A, +0x43, 0xF6, 0x48, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xE3, 0xF5, 0x9C, 0xA2, +0x40, 0x6B, 0x8C, 0xEB, 0x0A, 0x23, 0xE3, 0xF5, +0x7D, 0xA2, 0x10, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, +0x6C, 0xEA, 0x03, 0x22, 0x91, 0x67, 0x00, 0x18, +0x5A, 0xE7, 0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, +0x08, 0x48, 0xE3, 0xF5, 0x7C, 0xA0, 0x02, 0x6A, +0x6C, 0xEA, 0x10, 0x22, 0x03, 0x6A, 0x4B, 0xEA, +0x4C, 0xEB, 0xE3, 0xF5, 0x7C, 0xC0, 0x03, 0xF6, +0x61, 0xA0, 0x6C, 0xEA, 0x03, 0xF6, 0x41, 0xC0, +0x03, 0xF6, 0x41, 0xA0, 0x07, 0x6B, 0x6C, 0xEA, +0x65, 0x2A, 0x61, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF1, 0x84, 0x9A, 0xFF, 0xF7, 0x1F, 0x6A, +0x60, 0xAC, 0x4C, 0xEB, 0x01, 0x4B, 0x4C, 0xEB, +0x60, 0xCC, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, +0x84, 0x9B, 0x60, 0xAC, 0x4C, 0xEB, 0x01, 0x4B, +0x4C, 0xEB, 0x60, 0xCC, 0x24, 0xF5, 0x4C, 0x98, +0x03, 0xF6, 0x61, 0xA0, 0x01, 0x4A, 0x24, 0xF5, +0x4C, 0xD8, 0x03, 0xF6, 0x49, 0xA0, 0x01, 0x4A, +0x03, 0xF6, 0x49, 0xC0, 0x11, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x03, 0xF6, 0x41, 0xC0, 0x03, 0xF6, +0x69, 0xA0, 0xC0, 0xF0, 0x42, 0xA0, 0x63, 0xEA, +0x36, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x5C, 0x9A, 0xC0, 0xF0, 0x9F, 0xA0, 0x40, 0xEA, +0x01, 0x6B, 0x6E, 0xEA, 0x2F, 0x2A, 0xA0, 0xF0, +0x9C, 0xA0, 0xEF, 0x4B, 0x8C, 0xEB, 0xFF, 0x6C, +0x8C, 0xEB, 0x07, 0x2B, 0xE3, 0xF5, 0x7C, 0xA0, +0xDF, 0x4A, 0x6C, 0xEA, 0xE3, 0xF5, 0x5C, 0xC0, +0x21, 0x10, 0x03, 0xF6, 0x6A, 0xA0, 0x01, 0x4B, +0x03, 0xF6, 0x6A, 0xC0, 0x03, 0xF6, 0x6A, 0xA0, +0x02, 0x5B, 0x0A, 0x61, 0xE3, 0xF5, 0x9C, 0xA0, +0x21, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xE3, 0xF5, +0x7C, 0xC0, 0x03, 0xF6, 0x4A, 0xC0, 0x03, 0x10, +0x91, 0x67, 0x00, 0x18, 0xAC, 0xCF, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x00, 0x6B, +0x03, 0xF6, 0x69, 0xC2, 0x03, 0x10, 0x91, 0x67, +0x00, 0x18, 0xEC, 0xCF, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x6A, 0x8C, 0xEA, +0x22, 0xF2, 0x80, 0x9B, 0x22, 0xF2, 0x00, 0x4B, +0x04, 0xD4, 0x81, 0x9B, 0x64, 0xAB, 0x05, 0xD4, +0x9D, 0x67, 0x6C, 0xCC, 0x44, 0x33, 0x6D, 0xE4, +0x88, 0xAB, 0x1F, 0xF7, 0x00, 0x6B, 0x8C, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x0B, 0x2B, +0x9D, 0x67, 0x44, 0x33, 0x6D, 0xE4, 0x88, 0xAB, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, 0x60, 0x9B, +0x6D, 0xE4, 0x60, 0xAB, 0x06, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF0, 0x64, 0x9B, 0x71, 0xE4, +0x60, 0xAC, 0xFF, 0xF7, 0x1F, 0x68, 0x6C, 0xE8, +0x30, 0xF0, 0x21, 0x6B, 0x32, 0xF4, 0x90, 0xA3, +0x01, 0x6B, 0x8C, 0xEB, 0x03, 0x23, 0xE7, 0xF7, +0x1F, 0x6B, 0x6C, 0xE8, 0x18, 0xF0, 0x00, 0x6B, +0x0C, 0xEB, 0x13, 0x2B, 0x30, 0xF0, 0x20, 0x6C, +0x6B, 0xF0, 0x08, 0x4C, 0x03, 0xF6, 0xA1, 0xA4, +0xFE, 0x4B, 0xAC, 0xEB, 0x05, 0x6D, 0xAB, 0xED, +0xAC, 0xEB, 0x02, 0x4D, 0xAC, 0xEB, 0x03, 0xF6, +0x61, 0xC4, 0x82, 0x67, 0x00, 0x18, 0xEC, 0xCF, +0x3E, 0x10, 0x08, 0xF0, 0x00, 0x6B, 0x0C, 0xEB, +0x04, 0x23, 0x82, 0x67, 0x00, 0x18, 0xD8, 0xCF, +0x0E, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, +0x08, 0x4B, 0x03, 0xF6, 0x81, 0xA3, 0x02, 0x6A, +0x4B, 0xEA, 0x8C, 0xEA, 0x05, 0x6C, 0x8B, 0xEC, +0x8C, 0xEA, 0x03, 0xF6, 0x41, 0xC3, 0x02, 0x30, +0x1E, 0x30, 0x1A, 0x20, 0x30, 0xF0, 0x20, 0x68, +0x6B, 0xF0, 0x08, 0x48, 0x03, 0xF6, 0x41, 0xA0, +0x02, 0x69, 0xC0, 0xF0, 0xC3, 0xA0, 0x2D, 0xEA, +0x03, 0xF6, 0x41, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF3, 0x48, 0x9A, 0xFF, 0x6C, 0x55, 0x4C, +0x00, 0x6D, 0x40, 0xEA, 0xE3, 0xF5, 0x5C, 0xA0, +0x4D, 0xE9, 0xE3, 0xF5, 0x3C, 0xC0, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x03, 0xF6, 0x81, 0xA2, 0x03, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0x03, 0xF6, 0x61, 0xC2, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF2, 0x74, 0x9A, +0x02, 0xF2, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x68, +0x04, 0xD3, 0x61, 0x9A, 0x44, 0xAA, 0xFF, 0x69, +0x05, 0xD3, 0x7D, 0x67, 0x4C, 0xCB, 0x6B, 0xF0, +0x08, 0x48, 0x30, 0xF0, 0x20, 0x6A, 0x8C, 0xE9, +0x80, 0xF3, 0x5C, 0x9A, 0xC0, 0xF0, 0x9F, 0xA0, +0x40, 0xEA, 0x01, 0x72, 0x00, 0xF1, 0x19, 0x61, +0xA0, 0xF0, 0x7B, 0xA0, 0x7F, 0x6A, 0xFF, 0x6C, +0x6C, 0xEA, 0x8C, 0xEA, 0x00, 0xF1, 0x11, 0x22, +0xC7, 0xF3, 0x68, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, +0x8C, 0xEA, 0x04, 0x22, 0x02, 0x6A, 0x6D, 0xEA, +0xC7, 0xF3, 0x48, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x64, 0xA2, 0x0F, 0x6A, 0x6C, 0xEA, +0x01, 0x72, 0x3C, 0x61, 0x24, 0x32, 0xBD, 0x67, +0x49, 0xE5, 0x68, 0xAA, 0x1F, 0xF7, 0x00, 0x6A, +0x6C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, +0x0B, 0x2A, 0x7D, 0x67, 0x24, 0x32, 0x49, 0xE3, +0x68, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, +0x40, 0x9A, 0x49, 0xE3, 0x60, 0x9A, 0x06, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x44, 0x9A, +0x4D, 0xE3, 0x60, 0x9B, 0x04, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x0F, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF6, 0x62, 0x34, 0x6B, 0xF0, 0x08, 0x4A, +0x62, 0x33, 0x03, 0xF6, 0x87, 0xC2, 0x62, 0x33, +0xFF, 0x6C, 0x8C, 0xEB, 0x02, 0x23, 0x03, 0xF6, +0x66, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x03, 0xF6, 0x67, 0xA2, 0x02, 0x2B, +0x03, 0xF6, 0x66, 0xA2, 0x30, 0xF0, 0x20, 0x6A, +0x6E, 0xF6, 0x6F, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x00, 0x6B, 0x03, 0xF6, +0x69, 0xC2, 0x03, 0xF6, 0x6A, 0xC2, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF1, 0xA8, 0x9B, 0xFF, 0xF7, +0x1F, 0x6B, 0x80, 0xAD, 0x6C, 0xEC, 0x01, 0x4C, +0x6C, 0xEC, 0x80, 0xCD, 0x30, 0xF0, 0x20, 0x6C, +0xE3, 0xF1, 0xAC, 0x9C, 0x80, 0xAD, 0x6C, 0xEC, +0x01, 0x4C, 0x6C, 0xEC, 0x80, 0xCD, 0x24, 0xF5, +0x68, 0x9A, 0x40, 0xF1, 0x96, 0xA2, 0x01, 0x4B, +0x24, 0xF5, 0x68, 0xDA, 0x01, 0x6B, 0x8C, 0xEB, +0x05, 0x23, 0x43, 0xF6, 0x68, 0xA2, 0x01, 0x4B, +0x43, 0xF6, 0x68, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF1, 0x50, 0x9A, 0x00, 0x6B, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x48, 0x9A, +0x02, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x03, 0xF6, 0x81, 0xA2, +0x03, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x11, 0x6C, +0x8B, 0xEC, 0x8C, 0xEB, 0xA0, 0xF0, 0x9A, 0xA2, +0x03, 0xF6, 0x61, 0xC2, 0x01, 0x6B, 0x6C, 0xEC, +0x06, 0x2C, 0xA3, 0xF3, 0x5C, 0xA2, 0x6C, 0xEA, +0xFF, 0x6B, 0x6C, 0xEA, 0x04, 0x22, 0x91, 0x67, +0x80, 0x18, 0x7D, 0x40, 0x03, 0x10, 0x91, 0x67, +0x00, 0x18, 0x54, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0x6B, 0xF0, 0x08, 0x48, 0xE3, 0xF5, 0x7C, 0xA0, +0x40, 0x6A, 0x6C, 0xEA, 0x55, 0x22, 0xE3, 0xF5, +0x9D, 0xA0, 0x10, 0x6B, 0xFF, 0x6D, 0x44, 0x67, +0x6C, 0xEA, 0xAC, 0xEA, 0x22, 0x2A, 0x03, 0xF6, +0x47, 0xA0, 0x03, 0xF6, 0xA6, 0xA0, 0xAE, 0xEA, +0x47, 0x2A, 0x8D, 0xEB, 0x91, 0x67, 0xE3, 0xF5, +0x7D, 0xC0, 0x00, 0x18, 0x37, 0xEC, 0x91, 0x67, +0x00, 0x18, 0x2A, 0xE7, 0x00, 0x18, 0x20, 0xC8, +0x06, 0x2A, 0x91, 0x67, 0x00, 0x18, 0x61, 0xE7, +0x91, 0x67, 0x00, 0x18, 0x5A, 0xE7, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x03, 0xF6, +0x67, 0xA2, 0xFF, 0x4B, 0x03, 0xF6, 0x67, 0xC2, +0x2B, 0x10, 0xA0, 0xF0, 0x7C, 0xA0, 0x0F, 0x6A, +0x6C, 0xEA, 0x01, 0x72, 0x25, 0x61, 0x03, 0xF6, +0x47, 0xA0, 0x08, 0xD2, 0x08, 0x93, 0x03, 0xF6, +0x46, 0xA0, 0x6E, 0xEA, 0x1D, 0x22, 0x91, 0x67, +0x00, 0x18, 0x2C, 0xEC, 0x08, 0x94, 0x8E, 0xEA, +0x17, 0x22, 0xE3, 0xF5, 0x7C, 0xA0, 0x20, 0x6A, +0xFF, 0x6D, 0x6C, 0xEA, 0xAC, 0xEA, 0x10, 0x22, +0xE3, 0xF5, 0x7D, 0xA0, 0x11, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x91, 0x67, 0xE3, 0xF5, 0x5D, 0xC0, +0x00, 0x18, 0x50, 0xE7, 0x91, 0x67, 0x00, 0x18, +0x3B, 0xE7, 0x91, 0x67, 0x00, 0x18, 0x34, 0xE7, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xE3, 0xF5, 0x9C, 0xA2, 0x01, 0x6B, 0x03, 0xF6, +0x6D, 0xC2, 0x20, 0x6B, 0x8D, 0xEB, 0xE3, 0xF5, +0x7C, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xA0, 0xF0, 0x9A, 0xA2, 0x02, 0x6B, +0x6C, 0xEC, 0x06, 0x24, 0xA3, 0xF3, 0x5C, 0xA2, +0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x0A, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xE3, 0xF5, 0x9C, 0xA2, 0x20, 0x6B, 0x8D, 0xEB, +0xE3, 0xF5, 0x7C, 0xC2, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF2, 0x63, 0x1B, 0x62, 0x1A, 0xD1, 0x19, 0xD0, +0xFF, 0x69, 0x2C, 0xEC, 0xAC, 0xE9, 0x76, 0x24, +0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, +0xC0, 0xF0, 0x9F, 0xA0, 0x40, 0xEA, 0x01, 0x72, +0x69, 0x61, 0xE3, 0xF5, 0x7D, 0xA0, 0x05, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xE3, 0xF5, 0x5D, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, +0xFF, 0x6C, 0x0F, 0x6D, 0x2B, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x5C, 0x9A, +0x91, 0x67, 0x02, 0x6D, 0x40, 0xEA, 0x63, 0xF6, +0x5B, 0xA0, 0x01, 0x68, 0x01, 0x2A, 0x08, 0x68, +0x0C, 0x04, 0x00, 0x6D, 0x30, 0x6E, 0x00, 0x18, +0x37, 0xD6, 0x30, 0xF0, 0x20, 0x6A, 0x0B, 0xF1, +0x52, 0xA2, 0x7D, 0x67, 0x40, 0xF0, 0x0B, 0xC3, +0x40, 0xF0, 0x48, 0xCB, 0x10, 0xF0, 0x23, 0x6A, +0xC6, 0xF0, 0x01, 0x4A, 0x0C, 0xD2, 0x10, 0xF0, +0x23, 0x6A, 0x24, 0xF1, 0x11, 0x4A, 0x40, 0xF0, +0x2C, 0xC3, 0x0D, 0xD2, 0x04, 0x04, 0x00, 0x6A, +0x10, 0x03, 0x05, 0x10, 0x59, 0xE3, 0xC0, 0xA6, +0x55, 0xE4, 0x01, 0x4A, 0xC0, 0xC5, 0x20, 0x5A, +0xF9, 0x61, 0x0C, 0x94, 0x0D, 0x95, 0x0E, 0x96, +0x0F, 0x97, 0x00, 0x18, 0x14, 0xE4, 0x12, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xE3, 0xF5, 0x9D, 0xA2, 0x01, 0x6B, 0x06, 0x6D, +0x8D, 0xEB, 0xE3, 0xF5, 0x7D, 0xC2, 0x01, 0x6C, +0x00, 0x18, 0xB3, 0xC5, 0x06, 0x6C, 0x80, 0x18, +0xBF, 0x70, 0x10, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xEE, 0xF6, 0x43, 0xA2, 0x0B, 0x22, 0x06, 0x6D, +0x01, 0x6C, 0x00, 0x18, 0xB3, 0xC5, 0x91, 0x67, +0x00, 0x18, 0xEC, 0xCF, 0x00, 0x6C, 0x02, 0x6D, +0x00, 0x18, 0x3E, 0xC8, 0x1B, 0x97, 0x1A, 0x91, +0x19, 0x90, 0x0E, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xFF, 0x69, 0x6B, 0xF0, +0x08, 0x48, 0x30, 0xF0, 0x20, 0x6A, 0x8C, 0xE9, +0x80, 0xF3, 0x5C, 0x9A, 0xC0, 0xF0, 0x9F, 0xA0, +0x40, 0xEA, 0x01, 0x72, 0x12, 0x61, 0xE3, 0xF5, +0x7C, 0xA0, 0x21, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xE3, 0xF5, 0x5C, 0xC0, 0xE3, 0xF5, 0x5F, 0xA0, +0x04, 0x6B, 0x6C, 0xEA, 0x0C, 0x2A, 0x83, 0x67, +0x01, 0x6D, 0xD1, 0x67, 0x00, 0x18, 0x04, 0xCE, +0x06, 0x10, 0xE3, 0xF5, 0x7C, 0xA0, 0x20, 0x6A, +0x6D, 0xEA, 0xE3, 0xF5, 0x5C, 0xC0, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x69, 0x2C, 0xEC, 0x01, 0x6D, 0x04, 0xD4, +0x00, 0x18, 0x8E, 0xCD, 0x04, 0x94, 0x30, 0xF0, +0x20, 0x68, 0x01, 0x6D, 0x6B, 0xF0, 0x08, 0x48, +0x00, 0x18, 0xBB, 0xCD, 0x03, 0xF6, 0x70, 0xA8, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, 0x40, 0x9A, +0x2C, 0xEB, 0x08, 0x6C, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF1, 0x7C, 0x9A, 0x8B, 0xEC, +0x40, 0xA3, 0x2C, 0xEA, 0x8C, 0xEA, 0x05, 0x6C, +0x8D, 0xEA, 0x2C, 0xEA, 0x40, 0xC3, 0x04, 0x94, +0x00, 0x18, 0x8C, 0xD1, 0x40, 0xF1, 0x76, 0xA0, +0x01, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x03, 0x22, +0x00, 0x6A, 0x43, 0xF6, 0x48, 0xC0, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x68, 0x24, 0x67, 0x0C, 0xE9, 0xAC, 0xE8, +0x74, 0x29, 0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, +0x8E, 0xCD, 0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, +0xBB, 0xCD, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, +0x50, 0x9A, 0x02, 0x6B, 0x20, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF1, 0x48, 0x9A, 0x60, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x63, 0xF6, 0x7B, 0xA2, 0x08, 0x23, 0xE3, 0xF5, +0x5F, 0xA2, 0x0C, 0x72, 0x04, 0x61, 0x00, 0x6C, +0xA4, 0x67, 0x00, 0x18, 0x3E, 0xC8, 0x30, 0xF0, +0x20, 0x69, 0x6B, 0xF0, 0x08, 0x49, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, 0xC0, 0xF0, +0x9F, 0xA1, 0x40, 0xEA, 0x19, 0x2A, 0xE3, 0xF5, +0x5F, 0xA1, 0x04, 0x6B, 0x6C, 0xEA, 0x02, 0x2A, +0x00, 0x18, 0x95, 0xED, 0x90, 0x67, 0x00, 0x18, +0x24, 0xC6, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, +0x08, 0x4B, 0xE3, 0xF5, 0x9D, 0xA3, 0x02, 0x6A, +0x4B, 0xEA, 0x8C, 0xEA, 0x03, 0x6C, 0x8B, 0xEC, +0x8C, 0xEA, 0xE3, 0xF5, 0x5D, 0xC3, 0x05, 0x10, +0x0C, 0x6C, 0x01, 0x6D, 0xD0, 0x67, 0x00, 0x18, +0x04, 0xCE, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xE3, 0xF5, 0x9C, 0xA2, 0x05, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0xE3, 0xF5, 0x7C, 0xC2, +0xC0, 0xF0, 0x77, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0x0C, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, +0x44, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF1, 0x48, 0x9A, 0x04, 0x6B, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x40, 0xF1, 0x96, 0xA2, 0x02, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0x40, 0xF1, 0x76, 0xC2, +0x05, 0x10, 0x01, 0x71, 0x03, 0x61, 0x90, 0x67, +0x00, 0x18, 0xA4, 0xD1, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x69, 0x30, 0xF0, 0x20, 0x68, 0x2C, 0xEC, +0x6B, 0xF0, 0x08, 0x48, 0x04, 0xD4, 0x00, 0x18, +0x09, 0xCB, 0xA0, 0xF0, 0x9B, 0xA0, 0x7F, 0x6A, +0x04, 0x95, 0x4C, 0xEC, 0x2C, 0xEC, 0x00, 0x18, +0xC0, 0xD1, 0xA0, 0xF0, 0x5B, 0xA0, 0x7F, 0x6B, +0x6C, 0xEA, 0x2C, 0xEA, 0x0E, 0x2A, 0x00, 0x6C, +0x01, 0x6D, 0x00, 0x18, 0xCE, 0xCC, 0xC7, 0xF3, +0x68, 0xA0, 0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xC7, 0xF3, 0x48, 0xC0, 0x02, 0x6C, 0x00, 0x6D, +0x16, 0x10, 0xA0, 0xF0, 0x5C, 0xA0, 0xA0, 0xF0, +0xBD, 0xA0, 0x0F, 0x6C, 0x4C, 0xEC, 0x2C, 0xEC, +0x00, 0x18, 0xE9, 0xC5, 0x00, 0x18, 0xB6, 0xEC, +0xC7, 0xF3, 0x68, 0xA0, 0x01, 0x6A, 0x02, 0x6C, +0x6D, 0xEA, 0x03, 0x6B, 0x6B, 0xEB, 0x6C, 0xEA, +0xC7, 0xF3, 0x48, 0xC0, 0x01, 0x6D, 0x00, 0x18, +0x86, 0xE3, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x40, 0xA4, 0x25, 0x67, +0x1B, 0x2A, 0x30, 0xF0, 0x20, 0x68, 0x48, 0xF6, +0x1C, 0x48, 0x40, 0xC0, 0x41, 0xC0, 0x2C, 0x6A, +0x41, 0xC8, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6D, 0x84, 0x40, +0x8F, 0xF5, 0x10, 0x4D, 0x2C, 0x6E, 0x40, 0xEA, +0xC2, 0xA0, 0xFF, 0x6A, 0x91, 0x67, 0x04, 0x4E, +0xB0, 0x67, 0x4C, 0xEE, 0x80, 0x18, 0x1F, 0x68, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0xDD, 0x67, 0x44, 0x67, 0x98, 0xAE, 0xFF, 0x6B, +0x6C, 0xED, 0x04, 0x5C, 0x10, 0x61, 0x03, 0x25, +0x01, 0x75, 0x0D, 0x60, 0x05, 0x10, 0x87, 0x67, +0xA2, 0x67, 0x00, 0x18, 0x27, 0xD2, 0x07, 0x10, +0x8C, 0xEB, 0x03, 0x6D, 0x04, 0x6C, 0x01, 0x6E, +0x04, 0xD3, 0x80, 0x18, 0xDD, 0x67, 0x07, 0x97, +0x04, 0x63, 0x00, 0xEF, 0xFF, 0x6B, 0x6C, 0xEC, +0x01, 0x6A, 0x8E, 0xEA, 0x01, 0x5A, 0x58, 0x67, +0x6C, 0xEA, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xEC, +0x01, 0x74, 0x0C, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF1, 0x74, 0x9B, 0x10, 0x6C, 0x75, 0xE5, +0x60, 0xA5, 0x4C, 0xEB, 0x8D, 0xEB, 0x4C, 0xEB, +0x60, 0xC5, 0x20, 0xE8, 0x09, 0x2C, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF1, 0x54, 0x9A, 0x55, 0xE5, +0x60, 0xA5, 0xEF, 0x6A, 0x6C, 0xEA, 0x40, 0xC5, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, 0x58, 0x9A, +0xFF, 0x6B, 0x40, 0xA2, 0x6C, 0xEA, 0x52, 0x32, +0x6C, 0xEA, 0x11, 0x2A, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x54, 0x9A, +0x0B, 0xF1, 0x91, 0xA3, 0x00, 0x6D, 0x18, 0x6E, +0xE5, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFF, 0xF7, 0x1F, 0x6A, +0xAC, 0xEA, 0xFF, 0x6B, 0xA2, 0x67, 0x42, 0x32, +0x6C, 0xED, 0x6C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF1, 0x7C, 0x9B, 0x6D, 0xE4, 0xA0, 0xC3, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF2, 0x60, 0x9B, +0x71, 0xE4, 0x40, 0xC4, 0x20, 0xE8, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xFF, 0xF7, 0x1F, 0x68, +0xE3, 0xF1, 0x78, 0x9B, 0x0C, 0xED, 0x04, 0xD5, +0x60, 0xA3, 0xFF, 0x6A, 0x24, 0x67, 0x4C, 0xE9, +0x2D, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, +0x7C, 0x9B, 0x00, 0x6C, 0xFF, 0x6D, 0x60, 0xA3, +0x36, 0x6E, 0x6C, 0xEA, 0x05, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, +0x40, 0xEA, 0x01, 0x72, 0x0E, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF2, 0x54, 0x9A, 0x00, 0x6E, +0x91, 0x67, 0x01, 0x6D, 0xE6, 0x67, 0x40, 0xEA, +0x04, 0x95, 0x82, 0x67, 0x0C, 0xEC, 0x00, 0x18, +0x6B, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0x05, 0x95, 0x00, 0x6C, 0x37, 0x6E, +0x40, 0xEA, 0x0E, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x54, 0x9A, 0x00, 0x6E, 0x91, 0x67, +0x01, 0x6D, 0xE6, 0x67, 0x40, 0xEA, 0x04, 0x95, +0x82, 0x67, 0x0C, 0xEC, 0x00, 0x18, 0x6B, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x5C, 0x9A, +0x6F, 0x6D, 0x90, 0x6C, 0x60, 0xA2, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0x6C, 0xED, +0x38, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF1, 0x78, 0x9B, +0xFF, 0x6A, 0x04, 0x67, 0x60, 0xA3, 0x25, 0x67, +0x4C, 0xE8, 0x4C, 0xEB, 0x72, 0x33, 0x4C, 0xEB, +0x4C, 0xE9, 0x3F, 0x23, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF1, 0x7C, 0x9B, 0x00, 0x6C, 0xFF, 0x6D, +0x60, 0xA3, 0x29, 0x6E, 0x6C, 0xEA, 0x05, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, +0x5C, 0x9A, 0x40, 0xEA, 0x01, 0x72, 0x20, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x0B, 0xF1, 0x93, 0xA3, 0xA0, 0xF2, 0x54, 0x9A, +0x00, 0x6F, 0x01, 0x6D, 0x08, 0x6E, 0x40, 0xEA, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x95, +0x40, 0xF4, 0x58, 0x9A, 0xD1, 0x67, 0x90, 0x67, +0x40, 0xEA, 0x90, 0x67, 0x00, 0x18, 0x49, 0xD2, +0x04, 0x94, 0xA2, 0x67, 0x00, 0x18, 0x83, 0xEF, +0x04, 0x94, 0xB1, 0x67, 0x00, 0x18, 0x92, 0xEF, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, +0x05, 0x95, 0x00, 0x6C, 0x2A, 0x6E, 0x40, 0xEA, +0x20, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x0B, 0xF1, 0x93, 0xA3, 0xA0, 0xF2, +0x54, 0x9A, 0x00, 0x6F, 0x01, 0x6D, 0x08, 0x6E, +0x40, 0xEA, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0x95, 0x40, 0xF4, 0x58, 0x9A, 0xD1, 0x67, +0x90, 0x67, 0x40, 0xEA, 0x90, 0x67, 0x00, 0x18, +0x49, 0xD2, 0x04, 0x94, 0xA2, 0x67, 0x00, 0x18, +0x83, 0xEF, 0x04, 0x94, 0xB1, 0x67, 0x00, 0x18, +0x92, 0xEF, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, +0x54, 0x9A, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x69, 0x2C, 0xEC, 0x2C, 0xED, 0x02, 0x5C, +0x04, 0xD4, 0x05, 0xD5, 0x4E, 0x60, 0x00, 0x18, +0x8D, 0xD5, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF2, +0x64, 0x9B, 0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, +0x08, 0x48, 0x80, 0xAB, 0xFF, 0xF7, 0x1F, 0x6B, +0x8C, 0xEB, 0x4B, 0xE3, 0xA0, 0xF0, 0x6A, 0xA0, +0x2C, 0xEA, 0x6E, 0xEA, 0x3A, 0x2A, 0xE3, 0xF5, +0x5F, 0xA0, 0x0E, 0x72, 0x19, 0x61, 0x04, 0x92, +0x34, 0x2A, 0xE3, 0xF5, 0x7D, 0xA0, 0xFD, 0x4A, +0x05, 0x94, 0x6C, 0xEA, 0xE3, 0xF5, 0x5D, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x5C, 0x9A, +0x00, 0x6D, 0x40, 0xEA, 0x01, 0x6C, 0x0C, 0x6D, +0x00, 0x18, 0xB3, 0xC5, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x91, 0x67, 0x1A, 0x10, +0x06, 0x72, 0x1B, 0x61, 0x04, 0x92, 0x19, 0x22, +0xE3, 0xF5, 0x7D, 0xA0, 0x02, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0xE3, 0xF5, 0x5D, 0xC0, 0x30, 0xF0, +0x20, 0x6A, 0x40, 0xF4, 0x5C, 0x9A, 0x05, 0x94, +0x01, 0x6D, 0x40, 0xEA, 0x04, 0x6A, 0xE3, 0xF5, +0x5F, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0xFF, 0x6C, 0x00, 0x6D, 0xC5, 0x67, +0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, +0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0xD2, +0xE3, 0xF1, 0x78, 0x9B, 0xFF, 0x6A, 0x4C, 0xEE, +0x05, 0xD6, 0x60, 0xA3, 0x05, 0x67, 0x27, 0x67, +0x4C, 0xEB, 0x72, 0x33, 0x4C, 0xEB, 0x4C, 0xE8, +0x4C, 0xE9, 0x40, 0x23, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF1, 0x7C, 0x9B, 0x00, 0x6C, 0xFF, 0x6D, +0x60, 0xA3, 0x26, 0x6E, 0x6C, 0xEA, 0x06, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, +0x5C, 0x9A, 0x40, 0xEA, 0x01, 0x72, 0x1D, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0x94, 0x05, 0x96, +0xA0, 0xF2, 0x54, 0x9A, 0x04, 0x6F, 0x01, 0x6D, +0x40, 0xEA, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0x95, 0x40, 0xF4, 0x58, 0x9A, 0xD1, 0x67, +0x90, 0x67, 0x40, 0xEA, 0x90, 0x67, 0x00, 0x18, +0x49, 0xD2, 0x04, 0x94, 0xA2, 0x67, 0x00, 0x18, +0x83, 0xEF, 0x04, 0x94, 0xB1, 0x67, 0x00, 0x18, +0x92, 0xEF, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0x95, +0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6C, 0x27, 0x6E, +0x40, 0xEA, 0x90, 0x67, 0xB1, 0x67, 0x00, 0x18, +0xE6, 0xD2, 0x21, 0x10, 0x90, 0x67, 0xB1, 0x67, +0x00, 0x18, 0xE6, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0x94, 0x05, 0x96, 0xA0, 0xF2, 0x54, 0x9A, +0x04, 0x6F, 0x01, 0x6D, 0x40, 0xEA, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0x95, 0x40, 0xF4, +0x58, 0x9A, 0xD1, 0x67, 0x90, 0x67, 0x40, 0xEA, +0x90, 0x67, 0x00, 0x18, 0x49, 0xD2, 0x04, 0x94, +0xA2, 0x67, 0x00, 0x18, 0x83, 0xEF, 0x04, 0x94, +0xB1, 0x67, 0x00, 0x18, 0x92, 0xEF, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0x30, 0xF0, 0x20, 0x6A, 0x11, 0x67, 0x80, 0xF2, +0x48, 0x9A, 0x48, 0xF7, 0x04, 0x48, 0x90, 0x67, +0x00, 0x6D, 0x78, 0x6E, 0x40, 0xEA, 0x00, 0x6A, +0x43, 0xC0, 0x02, 0x6B, 0x01, 0x6A, 0x48, 0xF7, +0x44, 0xC1, 0x20, 0xF0, 0x4B, 0xC0, 0x20, 0xF0, +0x48, 0xC0, 0x40, 0xF0, 0x73, 0xC0, 0x40, 0xF0, +0x50, 0xC0, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0xA3, 0xF3, 0xBE, 0xA3, +0x28, 0x6A, 0x40, 0xC4, 0x28, 0x6A, 0x58, 0xED, +0x30, 0xF0, 0x20, 0x6C, 0x48, 0xF7, 0x04, 0x4C, +0x12, 0xED, 0x89, 0xE5, 0xA3, 0xF3, 0xBC, 0xA3, +0x01, 0x6C, 0xAC, 0xEC, 0x81, 0xC2, 0xA3, 0xF3, +0x7D, 0xA3, 0x62, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x3C, 0x22, +0x28, 0x6A, 0x58, 0xEC, 0x30, 0xF0, 0x20, 0x6B, +0x48, 0xF7, 0x04, 0x4B, 0x12, 0xEA, 0x49, 0xE3, +0x61, 0x9A, 0xC8, 0xDA, 0x01, 0x4B, 0x61, 0xDA, +0x69, 0x9A, 0x03, 0x2B, 0x8E, 0xAA, 0x01, 0x6B, +0x25, 0x10, 0xC3, 0xEB, 0x21, 0x60, 0x7B, 0xE6, +0x65, 0x9A, 0x01, 0x2B, 0xC5, 0xDA, 0x28, 0x6B, +0x78, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0x48, 0xF7, +0x04, 0x4A, 0x12, 0xEB, 0x49, 0xE3, 0x66, 0x9A, +0x01, 0x2B, 0xC6, 0xDA, 0x28, 0x6B, 0x78, 0xEC, +0x30, 0xF0, 0x20, 0x6A, 0x48, 0xF7, 0x04, 0x4A, +0x12, 0xEC, 0x91, 0xE2, 0x45, 0x9C, 0x43, 0xEE, +0x02, 0x60, 0xC5, 0xDC, 0x20, 0xE8, 0x46, 0x9C, +0xC3, 0xEA, 0x4E, 0x60, 0xC6, 0xDC, 0x20, 0xE8, +0x8E, 0xAA, 0x02, 0x6B, 0x8D, 0xEB, 0x6E, 0xCA, +0x7E, 0xA2, 0x01, 0x4B, 0x7E, 0xC2, 0x20, 0xE8, +0x05, 0x6B, 0x78, 0xEC, 0x30, 0xF0, 0x20, 0x6D, +0x48, 0xF7, 0x04, 0x4D, 0x12, 0xEB, 0x01, 0x4B, +0x6C, 0x33, 0xAD, 0xE3, 0x40, 0x9B, 0x01, 0x4A, +0x40, 0xDB, 0x28, 0x6A, 0x58, 0xEC, 0x12, 0xEA, +0x49, 0xE5, 0xA8, 0x9A, 0xC9, 0xDA, 0x30, 0x25, +0xC3, 0xED, 0x27, 0x60, 0x41, 0x9B, 0xBB, 0xE6, +0x01, 0x2A, 0xC1, 0xDB, 0x28, 0x6B, 0x78, 0xEC, +0x30, 0xF0, 0x20, 0x6A, 0x48, 0xF7, 0x04, 0x4A, +0x12, 0xEB, 0x49, 0xE3, 0x64, 0x9A, 0x01, 0x2B, +0xC4, 0xDA, 0x05, 0x6B, 0x78, 0xEC, 0x30, 0xF0, +0x20, 0x6A, 0x48, 0xF7, 0x04, 0x4A, 0x12, 0xEB, +0x01, 0x4B, 0x6C, 0x33, 0x6D, 0xE2, 0xA1, 0x9B, +0xA3, 0xEE, 0x02, 0x60, 0xC1, 0xDB, 0x20, 0xE8, +0x28, 0x6B, 0x78, 0xEC, 0x12, 0xEC, 0x49, 0xE4, +0x64, 0x9A, 0xC3, 0xEB, 0x09, 0x60, 0xC4, 0xDA, +0x20, 0xE8, 0x8E, 0xAA, 0x04, 0x6B, 0x8D, 0xEB, +0x6E, 0xCA, 0x7E, 0xA2, 0x01, 0x4B, 0x7E, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, +0x0E, 0x90, 0x24, 0x67, 0x4C, 0xE9, 0x03, 0x6B, +0x4C, 0xEF, 0x2C, 0xEB, 0x00, 0x6A, 0x0B, 0xD5, +0x0C, 0xD6, 0x04, 0xD7, 0x40, 0xC8, 0x00, 0x6A, +0x0A, 0x23, 0x28, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, +0x40, 0xA8, 0x01, 0x4A, 0x40, 0xC8, 0x1F, 0xF7, +0x00, 0x6A, 0x2C, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x40, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x44, 0x9A, 0x49, 0xE1, +0x0B, 0x93, 0x40, 0x9A, 0x6C, 0xEA, 0x0C, 0x93, +0x6E, 0xEA, 0x04, 0x22, 0x40, 0xA8, 0x04, 0x93, +0x63, 0xEA, 0xDC, 0x61, 0x40, 0xA8, 0x04, 0x93, +0x63, 0xEA, 0x58, 0x67, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0x6A, 0xA0, 0x35, 0x4C, 0xEC, 0xA0, 0x35, +0xCC, 0xEA, 0x4D, 0xED, 0x05, 0x2C, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF2, 0x40, 0x9A, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x44, 0x9A, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, 0x88, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, 0x6C, 0x9B, +0xAD, 0xEA, 0x40, 0xDC, 0x4C, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF2, 0x50, 0x9A, 0x60, 0xDC, +0x00, 0x6B, 0x60, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0xFF, 0xF7, 0x1F, 0x6B, 0x8C, 0xEA, +0xAC, 0xEB, 0x05, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF1, 0x54, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF2, 0x54, 0x9A, 0x60, 0x33, +0x60, 0x33, 0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF2, 0x48, 0x9A, 0x00, 0x6C, 0x60, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x58, 0x9A, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, 0x70, 0x9B, +0x40, 0xA2, 0x80, 0xC3, 0xFF, 0x6B, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, +0x7C, 0x9B, 0xFF, 0x6A, 0xCC, 0xEA, 0x6D, 0xEA, +0xE0, 0xF1, 0x1F, 0x6B, 0xAC, 0xEB, 0x60, 0x33, +0x60, 0x33, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF2, 0x08, 0x9B, 0x01, 0x6C, 0x40, 0xD8, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x40, 0xEA, 0x00, 0x6A, 0x40, 0xD8, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xE0, 0xF1, 0x1F, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xAC, 0xEA, 0x63, 0xF2, 0x60, 0x9B, 0x40, 0x32, +0x40, 0x32, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF2, 0x08, 0x4B, 0x60, 0x9B, 0x30, 0xF0, +0x20, 0x68, 0x01, 0x6C, 0x40, 0xDB, 0x80, 0xF3, +0x4C, 0x98, 0xFF, 0x69, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF2, 0x58, 0x9A, 0x01, 0x6C, +0x40, 0xA2, 0x4C, 0xE9, 0x80, 0xF3, 0x4C, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF2, +0x08, 0x4C, 0x80, 0x9C, 0x00, 0x6A, 0x40, 0xDC, +0x07, 0x97, 0x51, 0x67, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0xC4, 0x9B, +0xFF, 0x6A, 0x04, 0x6D, 0x60, 0xA6, 0x4C, 0xEC, +0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC6, +0x11, 0x24, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, +0x8C, 0x9B, 0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, +0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xC4, +0x6B, 0xF0, 0x08, 0x4A, 0x00, 0x6B, 0x22, 0xF6, +0x75, 0xC2, 0x0D, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF1, 0x6C, 0x9A, 0xFB, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x8D, 0xF6, 0x7D, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xEE, 0xF6, 0xB0, 0xA2, 0x30, 0xF0, +0x20, 0x6C, 0x6E, 0xF6, 0x16, 0x4C, 0x00, 0x18, +0x94, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, +0x64, 0x9A, 0xFB, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x0E, 0x92, 0x0F, 0x91, 0x04, 0x67, 0x04, 0xD2, +0x04, 0x93, 0xFF, 0x6A, 0x4C, 0xE8, 0x4C, 0xEB, +0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, +0x5C, 0x9A, 0x0B, 0xD5, 0x0C, 0xD6, 0x0D, 0xD7, +0x04, 0xD3, 0x90, 0x67, 0x40, 0xEA, 0x80, 0xF0, +0x07, 0x22, 0x06, 0x58, 0x80, 0xF0, 0x04, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x08, 0x30, 0x42, 0xF2, +0x04, 0x4A, 0x09, 0xE2, 0x40, 0x9A, 0x00, 0xEA, +0x02, 0xF2, 0x10, 0x6A, 0x0E, 0x10, 0x02, 0xF2, +0x00, 0x6A, 0x0B, 0x10, 0x22, 0xF2, 0x00, 0x6A, +0x08, 0x10, 0x22, 0xF2, 0x10, 0x6A, 0x05, 0x10, +0x42, 0xF2, 0x00, 0x6A, 0x02, 0x10, 0x42, 0xF2, +0x10, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x0D, 0x94, +0x63, 0xF2, 0x68, 0x9B, 0x8C, 0xEB, 0x30, 0xF0, +0x20, 0x6C, 0x63, 0xF0, 0x94, 0x9C, 0x8D, 0xEB, +0x06, 0x21, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF2, +0x8C, 0x9C, 0x6D, 0xEC, 0x05, 0x10, 0x30, 0xF0, +0x20, 0x6C, 0x63, 0xF2, 0x90, 0x9C, 0x6C, 0xEC, +0x04, 0x96, 0x06, 0x26, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF2, 0x60, 0x9B, 0x8D, 0xEB, 0x05, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0x74, 0x9B, +0x8C, 0xEB, 0x1F, 0xF7, 0x00, 0x6C, 0x4C, 0xEC, +0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF0, 0xA0, 0x9C, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF0, +0xA4, 0x9C, 0x30, 0xF0, 0x20, 0x6C, 0x0B, 0x96, +0x63, 0xF2, 0x98, 0x9C, 0xB5, 0xE2, 0xCC, 0xEC, +0x80, 0xDD, 0x84, 0x42, 0x1F, 0xF7, 0x00, 0x6D, +0xAC, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, +0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF2, +0xBC, 0x9C, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, +0x83, 0xF2, 0xA0, 0x9C, 0x30, 0xF0, 0x20, 0x6C, +0x0C, 0x96, 0x63, 0xF2, 0x98, 0x9C, 0xB5, 0xE2, +0xCC, 0xEC, 0x80, 0xDD, 0x87, 0x42, 0x01, 0x4C, +0x1F, 0xF7, 0x00, 0x6D, 0xAC, 0xEC, 0x02, 0xF0, +0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, +0x20, 0x6C, 0x83, 0xF2, 0x84, 0x9C, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF2, 0x88, 0x9C, +0x89, 0xE2, 0x60, 0xDA, 0x01, 0x6A, 0x01, 0x10, +0x00, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x01, 0x68, 0x04, 0xEC, +0x82, 0xF3, 0x08, 0x69, 0x1C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, +0xFF, 0x49, 0x40, 0xEA, 0x14, 0x29, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x68, 0x9A, 0x08, 0xF0, +0x00, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x60, 0xDA, 0x00, 0x6A, 0x0B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF2, 0x4C, 0x9A, 0x60, 0xAA, +0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, 0x0C, 0xEA, +0xDA, 0x2A, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x04, 0xF7, +0x10, 0x68, 0x1C, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x05, 0x6C, 0xFF, 0x48, +0x40, 0xEA, 0x14, 0x28, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x68, 0x9A, 0x08, 0xF0, 0x00, 0x6C, +0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xA3, 0xF3, +0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, 0x60, 0xDA, +0x00, 0x6A, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF2, 0x4C, 0x9A, 0x60, 0xAA, 0x3F, 0x6A, +0x6C, 0xEA, 0xDC, 0x2A, 0x01, 0x6A, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, 0x4C, 0x9A, +0x40, 0xAA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF2, 0x4C, 0x9A, 0x40, 0xAA, 0x20, 0xE8, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x00, 0x18, 0x15, 0xC7, 0x00, 0x6A, 0x04, 0xD2, +0x04, 0x92, 0x01, 0x72, 0x58, 0x67, 0x04, 0xD2, +0x10, 0xF0, 0x23, 0x6A, 0x78, 0x67, 0x4A, 0xF3, +0x19, 0x4A, 0x69, 0xE2, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF0, 0x70, 0x9B, 0x40, 0xDB, 0x00, 0x1C, +0xAC, 0x39, 0x80, 0x18, 0x58, 0x01, 0x00, 0x1C, +0xAB, 0x39, 0x00, 0x1C, 0xAC, 0x39, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xA0, 0xF0, +0x84, 0x9A, 0x02, 0x6B, 0x8C, 0xEB, 0x09, 0x23, +0x03, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0xF0, +0x64, 0xDA, 0x80, 0x18, 0xD3, 0x24, 0x80, 0x18, +0x26, 0x25, 0x00, 0x1C, 0xAB, 0x39, 0x00, 0x1C, +0xAC, 0x39, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xA0, 0xF0, 0x84, 0x9A, 0x04, 0x6B, +0x8C, 0xEB, 0x09, 0x23, 0x05, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x00, 0x18, +0x24, 0xDA, 0x00, 0x18, 0xB3, 0xDA, 0x00, 0x1C, +0xAB, 0x39, 0x00, 0x1C, 0xAC, 0x39, 0x00, 0x1C, +0xAC, 0x39, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x63, 0xF6, 0x98, 0xA2, 0xE3, 0xF5, +0x7F, 0xA2, 0x8E, 0xEB, 0x05, 0x23, 0xA0, 0xF0, +0x9E, 0xA2, 0x96, 0x34, 0x00, 0x18, 0xEC, 0xCF, +0x30, 0xF0, 0x20, 0x6A, 0x0B, 0xF1, 0x4C, 0x9A, +0x02, 0x2A, 0x00, 0x18, 0x7C, 0xCC, 0x00, 0x1C, +0xAB, 0x39, 0x00, 0x1C, 0xAB, 0x39, 0x00, 0x1C, +0xAC, 0x39, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xA0, 0xF0, 0x84, 0x9A, 0x10, 0x6B, +0x8C, 0xEB, 0x07, 0x23, 0x11, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x80, 0x18, +0x3D, 0x4E, 0x00, 0x1C, 0xAB, 0x39, 0x00, 0x1C, +0xAC, 0x39, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xA0, 0xF0, 0x84, 0x9A, 0x02, 0xF0, +0x00, 0x6B, 0x8C, 0xEB, 0x08, 0x23, 0x02, 0xF0, +0x01, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0xF0, +0x64, 0xDA, 0x00, 0x18, 0x73, 0xE6, 0x00, 0x1C, +0xAB, 0x39, 0x00, 0x1C, 0xAC, 0x39, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xA0, 0xF0, +0x84, 0x9A, 0xFF, 0x6B, 0x01, 0x4B, 0x8C, 0xEB, +0x08, 0x23, 0xFF, 0x6B, 0x02, 0x4B, 0x6B, 0xEB, +0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x80, 0x18, +0xD9, 0x61, 0x00, 0x1C, 0xAB, 0x39, 0x00, 0x1C, +0xAC, 0x39, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF2, +0x74, 0x9B, 0xA0, 0xF0, 0x84, 0x9A, 0x8C, 0xEB, +0x20, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, +0x74, 0x9B, 0x8C, 0xEB, 0xA0, 0xF0, 0x9B, 0xA2, +0xA0, 0xF0, 0x64, 0xDA, 0x7F, 0x6B, 0x8C, 0xEB, +0x07, 0x2B, 0xE3, 0xF5, 0x5F, 0xA2, 0x0C, 0x72, +0x03, 0x61, 0x80, 0x18, 0x53, 0x22, 0x0D, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6C, 0xA0, 0xF0, 0x64, 0x9A, +0x03, 0xF2, 0x94, 0x9C, 0x8D, 0xEB, 0xA0, 0xF0, +0x64, 0xDA, 0x30, 0xF0, 0x20, 0x69, 0x6B, 0xF0, +0x08, 0x49, 0x00, 0x1C, 0xAB, 0x39, 0x00, 0x1C, +0xAC, 0x39, 0x23, 0xF2, 0x1C, 0xA1, 0x01, 0x6A, +0x4E, 0xE8, 0x05, 0x28, 0x0B, 0x6C, 0x80, 0x18, +0x6E, 0x63, 0x23, 0xF2, 0x1C, 0xC1, 0x80, 0x18, +0x75, 0x69, 0x80, 0x18, 0x8F, 0x69, 0x00, 0x1C, +0xAB, 0x39, 0x00, 0x1C, 0xAC, 0x39, 0x00, 0x18, +0xF9, 0xE4, 0x00, 0x1C, 0xAB, 0x39, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF5, +0x90, 0x9B, 0x01, 0xF0, 0x58, 0x9A, 0x40, 0xEA, +0x0B, 0x17, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x00, 0x68, 0x0A, 0x70, 0x0C, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x01, 0xF0, 0x54, 0x9A, 0xC9, 0xF5, 0x90, 0x9B, +0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, 0x00, 0x68, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0x70, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0x4A, 0xF5, 0x15, 0x4A, +0x40, 0xDB, 0x00, 0x1C, 0xAC, 0x39, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xA0, 0xF0, +0x84, 0x9A, 0x00, 0xF2, 0x00, 0x6B, 0x8C, 0xEB, +0x08, 0x23, 0x00, 0xF2, 0x01, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x00, 0x18, +0x82, 0xE3, 0x00, 0x1C, 0xAB, 0x39, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF0, 0x70, 0x9B, 0x10, 0xF0, +0x23, 0x6A, 0x4A, 0xF5, 0x16, 0x4A, 0x40, 0xDB, +0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, 0xC6, 0x17, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0xA9, 0xE6, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x9C, 0xE6, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x6F, 0xE7, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x31, 0xE8, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0xA7, 0xE8, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x96, 0xE6, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x48, 0x9A, 0xE1, 0xF7, 0x1F, 0x6B, +0x40, 0xAA, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, 0x58, 0x9A, +0x60, 0x9A, 0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x50, 0x9A, 0x01, 0x6B, 0x40, 0x9A, +0x42, 0x32, 0x52, 0x32, 0x6E, 0xEA, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF2, 0x7C, 0x9B, 0x44, 0x67, 0x30, 0xF0, +0x20, 0x6C, 0x60, 0x9B, 0x63, 0xF2, 0x88, 0x9C, +0x8C, 0xEB, 0x43, 0xEB, 0x02, 0x60, 0x6F, 0xEB, +0x69, 0xE2, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x29, 0xF6, 0x44, 0x9A, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x29, 0xF6, 0x40, 0x9A, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x29, 0xF6, 0x0C, 0x4A, 0x01, 0x10, 0x43, 0x67, +0x60, 0x9A, 0x83, 0xEB, 0xFC, 0x61, 0x61, 0x9A, +0x75, 0xE2, 0x8E, 0xED, 0x04, 0x2D, 0x81, 0x9C, +0x8D, 0xE3, 0x61, 0xDA, 0x82, 0x67, 0xC1, 0x9C, +0x60, 0x9A, 0xD5, 0xE4, 0x6E, 0xED, 0x0E, 0x2D, +0x30, 0xF0, 0x20, 0x6D, 0x09, 0xF6, 0xBC, 0x9D, +0xAA, 0xEB, 0x06, 0x60, 0x61, 0x9B, 0x79, 0xE6, +0xC1, 0xDC, 0x60, 0x9A, 0x60, 0x9B, 0x02, 0x10, +0xA0, 0xDC, 0x01, 0x10, 0x60, 0xDC, 0x8A, 0xEA, +0x01, 0x60, 0x80, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x1B, 0x24, 0x30, 0xF0, +0x20, 0x6A, 0x09, 0xF6, 0x58, 0x9A, 0x53, 0xE4, +0x30, 0xF0, 0x20, 0x6A, 0x29, 0xF6, 0x68, 0x9A, +0x41, 0x9C, 0xA3, 0x67, 0x4C, 0xED, 0x0E, 0x25, +0xA0, 0x9C, 0x0C, 0x2D, 0x6F, 0xEB, 0x4C, 0xEB, +0x61, 0xDC, 0x30, 0xF0, 0x20, 0x6A, 0x29, 0xF6, +0xA4, 0x9A, 0xAD, 0xE3, 0x29, 0xF6, 0x64, 0xDA, +0x00, 0x18, 0xAB, 0xD5, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x08, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x09, 0xF6, 0x78, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x29, 0xF6, 0x14, 0x4A, 0x03, 0x6B, +0x4C, 0xEB, 0x03, 0x2B, 0x00, 0xF1, 0x00, 0x4B, +0x09, 0x10, 0x04, 0x6B, 0x6B, 0xEB, 0x03, 0x4A, +0x6C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x29, 0xF7, +0x14, 0x4B, 0x4F, 0xE3, 0x30, 0xF0, 0x20, 0x6C, +0x29, 0xF6, 0x4C, 0xDC, 0x00, 0x6D, 0x29, 0xF6, +0x0C, 0x4C, 0xA1, 0xDC, 0x30, 0xF0, 0x20, 0x6C, +0x09, 0xF6, 0x98, 0x9C, 0x8F, 0xE3, 0x04, 0x6C, +0x6D, 0xE2, 0x8B, 0xEC, 0x8C, 0xEB, 0x30, 0xF0, +0x20, 0x6C, 0x09, 0xF6, 0x7C, 0xDC, 0xA1, 0xDB, +0x09, 0xF6, 0xDC, 0x9C, 0x4F, 0xE3, 0xA0, 0xDE, +0x61, 0xDA, 0x09, 0xF6, 0x9C, 0x9C, 0x80, 0xDA, +0x30, 0xF0, 0x20, 0x6C, 0x29, 0xF6, 0x60, 0xDC, +0x61, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x29, 0xF6, +0x64, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF0, +0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x29, 0xF6, +0x68, 0xDA, 0x20, 0xE8, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x09, 0xF6, 0x5C, 0x9A, 0x04, 0x67, 0x02, 0x2A, +0x00, 0x18, 0xD1, 0xD5, 0x30, 0xF0, 0x20, 0x6A, +0x29, 0xF6, 0x48, 0x9A, 0x0C, 0xEA, 0x58, 0x2A, +0x57, 0x20, 0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF6, +0x58, 0x9A, 0x03, 0x6B, 0x49, 0xE0, 0x4C, 0xEB, +0x04, 0x23, 0x04, 0x6B, 0x6B, 0xEB, 0x4C, 0xEB, +0x44, 0x43, 0x4A, 0x22, 0x30, 0xF0, 0x20, 0x6B, +0x29, 0xF6, 0x64, 0x9B, 0x43, 0xEB, 0x44, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0x29, 0xF6, 0x0C, 0x9B, +0x29, 0xF6, 0x0C, 0x4B, 0x02, 0x10, 0x70, 0x67, +0x04, 0x67, 0x81, 0x98, 0x43, 0xEC, 0x02, 0x60, +0x80, 0x98, 0xF9, 0x2C, 0x30, 0xF0, 0x20, 0x6C, +0x09, 0xF6, 0x9C, 0x9C, 0x0E, 0xEC, 0x30, 0x24, +0x30, 0xF0, 0x20, 0x6C, 0x09, 0xF6, 0xB8, 0x9C, +0x20, 0x9B, 0x04, 0xD5, 0xA0, 0x98, 0xA0, 0xDB, +0x61, 0x98, 0x09, 0xF6, 0x98, 0x9C, 0x4F, 0xE3, +0x84, 0x34, 0x63, 0xEC, 0x05, 0x60, 0x51, 0xE0, +0x61, 0xDC, 0x41, 0xD8, 0x00, 0x18, 0xAB, 0xD5, +0x30, 0xF0, 0x20, 0x6B, 0x29, 0xF6, 0x84, 0x9B, +0x41, 0x98, 0x4B, 0xE4, 0x29, 0xF6, 0x44, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x29, 0xF6, 0x80, 0x9B, +0x83, 0xEA, 0x02, 0x60, 0x29, 0xF6, 0x40, 0xDB, +0x04, 0x93, 0x30, 0xF0, 0x20, 0x6C, 0x29, 0xF6, +0x88, 0x9C, 0x69, 0xE1, 0x61, 0x98, 0x8D, 0xEB, +0x61, 0xD8, 0x00, 0x6B, 0x60, 0xD8, 0x01, 0x10, +0x00, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0x03, 0x6F, 0x8C, 0xEF, +0x64, 0x67, 0x46, 0x67, 0x04, 0x27, 0x0B, 0x10, +0xA0, 0xDB, 0xFC, 0x4A, 0x04, 0x4B, 0x04, 0x5A, +0xFB, 0x60, 0x03, 0x6A, 0x4C, 0xEE, 0x03, 0x10, +0xA0, 0xC4, 0xFF, 0x4E, 0x01, 0x4C, 0xFC, 0x2E, +0x00, 0x6A, 0x20, 0xE8, 0xFF, 0x6A, 0xAC, 0xEA, +0x03, 0x10, 0x40, 0xC4, 0xFF, 0x4E, 0x01, 0x4C, +0xFC, 0x2E, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x63, 0x01, 0xD0, 0x03, 0x6B, 0x05, 0x67, +0x6C, 0xE8, 0x44, 0x67, 0xE4, 0x67, 0x85, 0x67, +0x12, 0x28, 0x4C, 0xEB, 0x10, 0x2B, 0x86, 0x67, +0x06, 0x10, 0x61, 0xE5, 0x00, 0x98, 0x7D, 0xE2, +0xFC, 0x4C, 0x00, 0xDF, 0x04, 0x4B, 0x04, 0x5C, +0xF8, 0x60, 0xCA, 0x34, 0x88, 0x34, 0x03, 0x6B, +0x9D, 0xE2, 0x6C, 0xEE, 0x91, 0xE5, 0x00, 0x6B, +0x06, 0x10, 0x61, 0xE4, 0x00, 0xA0, 0x75, 0xE7, +0xFF, 0x4E, 0x00, 0xC5, 0x01, 0x4B, 0xF9, 0x2E, +0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, 0x00, 0x65, +0x09, 0x10, 0x60, 0xA4, 0x40, 0xA5, 0xFF, 0x4E, +0x4A, 0xEB, 0x02, 0x60, 0x4B, 0xE3, 0x20, 0xE8, +0x01, 0x4C, 0x01, 0x4D, 0xF6, 0x2E, 0x00, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x02, 0x24, 0x00, 0x18, 0xC0, 0xD5, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x00, 0x68, 0x24, 0x67, +0x03, 0x24, 0x00, 0x18, 0xF5, 0xD5, 0x02, 0x67, +0x05, 0x20, 0x90, 0x67, 0x00, 0x6D, 0xD1, 0x67, +0x00, 0x18, 0x37, 0xD6, 0x50, 0x67, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x6A, 0x02, 0x24, +0x00, 0x18, 0xF5, 0xD5, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x06, 0x2C, 0x64, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xC8, 0xF7, 0x64, 0xDA, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC8, 0xF7, +0x84, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0xC8, 0xF7, +0x44, 0x9A, 0x32, 0x72, 0x2A, 0x60, 0x33, 0x5A, +0x0C, 0x60, 0x14, 0x72, 0x2E, 0x60, 0x15, 0x5A, +0x03, 0x60, 0x0A, 0x72, 0x12, 0x60, 0x20, 0xE8, +0x19, 0x72, 0x17, 0x60, 0x28, 0x72, 0x25, 0x60, +0x20, 0xE8, 0x64, 0x72, 0x2A, 0x60, 0x65, 0x5A, +0x03, 0x60, 0x50, 0x72, 0x1E, 0x60, 0x20, 0xE8, +0x78, 0x72, 0x2B, 0x60, 0xC8, 0x72, 0x31, 0x60, +0x20, 0xE8, 0x02, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xC8, 0xF7, 0x68, 0xDA, 0xE0, 0xF7, 0x1E, 0x4B, +0x31, 0x10, 0x09, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xC8, 0xF7, 0x68, 0xDA, 0xE4, 0xF3, 0x17, 0x4B, +0x29, 0x10, 0x11, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xC8, 0xF7, 0x68, 0xDA, 0xE8, 0xF3, 0x0F, 0x4B, +0x21, 0x10, 0x0D, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xC8, 0xF7, 0x68, 0xDA, 0x06, 0xF4, 0x08, 0x4B, +0x19, 0x10, 0x22, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xC8, 0xF7, 0x68, 0xDA, 0x11, 0xF0, 0x00, 0x6B, +0x11, 0x10, 0x28, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xC8, 0xF7, 0x68, 0xDA, 0x14, 0xF0, 0x00, 0x6B, +0x09, 0x10, 0x43, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xC8, 0xF7, 0x68, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF2, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0xC8, 0xF7, 0x6C, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xC8, 0xF7, 0x44, 0x9A, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xC8, 0xF7, 0x4C, 0x9A, 0xFF, 0x63, 0x58, 0xEC, +0x12, 0xEA, 0x00, 0xD2, 0x00, 0x92, 0xFF, 0x4A, +0x00, 0xD2, 0x00, 0x92, 0xFB, 0x2A, 0x01, 0x63, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xC8, 0xF7, 0x48, 0x9A, 0xFF, 0x63, 0x58, 0xEC, +0x12, 0xEA, 0x00, 0xD2, 0x00, 0x92, 0xFF, 0x4A, +0x00, 0xD2, 0x00, 0x92, 0xFB, 0x2A, 0x01, 0x63, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x7C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0x58, 0x9A, +0x6D, 0xE4, 0xFF, 0xF7, 0x1F, 0x6F, 0x63, 0xEA, +0xCC, 0xEF, 0x07, 0x60, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF0, 0x74, 0x9B, 0x6D, 0xE4, 0x63, 0xEA, +0x23, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, +0xDC, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, +0x58, 0x9A, 0xD9, 0xE5, 0xC3, 0xEA, 0x07, 0x60, +0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF0, 0xD4, 0x9C, +0xD9, 0xE5, 0xC3, 0xEA, 0x11, 0x61, 0x00, 0x6A, +0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF2, 0x58, 0x9A, 0x00, 0x6C, 0xA3, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, +0x5C, 0x9A, 0x00, 0x6C, 0x40, 0xEA, 0x01, 0x10, +0x00, 0x6A, 0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0xF7, 0x1F, 0x69, 0x5D, 0x67, 0x2C, 0xEC, +0x2C, 0xED, 0x0D, 0xD7, 0x0C, 0xD6, 0x0E, 0x90, +0x88, 0xCA, 0xA9, 0xCA, 0x04, 0x04, 0xA7, 0x67, +0x04, 0x6E, 0x00, 0x18, 0xB3, 0xD6, 0x0D, 0x95, +0x0C, 0x94, 0x2C, 0xE8, 0xD0, 0x67, 0x04, 0x4D, +0x00, 0x18, 0xB3, 0xD6, 0x44, 0x40, 0x2C, 0xEA, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0xFF, 0xF7, +0x1F, 0x6B, 0x8C, 0xEA, 0xAC, 0xEB, 0x0F, 0x22, +0x01, 0x72, 0x1E, 0x61, 0x30, 0xF0, 0x21, 0x6A, +0xF2, 0xF3, 0x44, 0x9A, 0x4D, 0xE3, 0x0C, 0xF0, +0x01, 0x5B, 0x16, 0x60, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF2, 0x64, 0x9B, 0x0F, 0x10, 0x30, 0xF0, +0x21, 0x6A, 0xF2, 0xF3, 0x44, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xC3, 0xF1, 0x94, 0x9C, 0x4D, 0xE3, +0x63, 0xEC, 0x06, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF1, 0x7C, 0x9B, 0x49, 0xE3, 0x20, 0xE8, +0x00, 0x6A, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x67, 0xF3, 0x16, 0xAA, +0x4D, 0x20, 0x67, 0xF3, 0xD4, 0xA2, 0x67, 0xF3, +0x38, 0x9A, 0x03, 0x6B, 0x6C, 0xEE, 0x01, 0x76, +0x31, 0xE0, 0xFF, 0x6D, 0x17, 0x60, 0x02, 0x76, +0x29, 0x60, 0x40, 0x2E, 0x30, 0xF0, 0x20, 0x6E, +0x83, 0xF0, 0xC0, 0x9E, 0x83, 0xEE, 0x3A, 0x61, +0x67, 0xF3, 0x94, 0xA2, 0x8A, 0x34, 0x6C, 0xEC, +0xAC, 0xEC, 0xB0, 0x67, 0x00, 0x18, 0xE3, 0xD6, +0x31, 0x22, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, +0x94, 0x9B, 0x27, 0x10, 0x30, 0xF0, 0x20, 0x6E, +0xA3, 0xF2, 0xC8, 0x9E, 0x83, 0xEE, 0x26, 0x61, +0x67, 0xF3, 0x94, 0xA2, 0x8A, 0x34, 0x6C, 0xEC, +0xAC, 0xEC, 0xB0, 0x67, 0x00, 0x18, 0xE3, 0xD6, +0x1D, 0x22, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF2, +0x8C, 0x9B, 0x13, 0x10, 0x30, 0xF0, 0x20, 0x6E, +0xA3, 0xF2, 0xD0, 0x9E, 0x83, 0xEE, 0x12, 0x61, +0x67, 0xF3, 0x94, 0xA2, 0x8A, 0x34, 0x6C, 0xEC, +0xAC, 0xEC, 0xB0, 0x67, 0x00, 0x18, 0xE3, 0xD6, +0x09, 0x22, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF2, +0x94, 0x9B, 0x91, 0xE1, 0xA2, 0x67, 0xD0, 0x67, +0x00, 0x18, 0xB3, 0xD6, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, +0x21, 0x6C, 0xD2, 0xF3, 0x1C, 0x4C, 0x0C, 0x6E, +0x40, 0xEA, 0x00, 0x18, 0xF7, 0xD6, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x50, 0xD6, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xED, 0x00, 0x18, 0x37, 0xD6, +0x05, 0x97, 0x00, 0x6A, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, +0x04, 0x67, 0x4C, 0xEE, 0x00, 0x18, 0x3C, 0xD6, +0x50, 0x67, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEE, 0x4C, 0xED, 0xA0, 0xC4, +0xC1, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0xA7, 0x67, 0x02, 0x4C, 0x40, 0xEA, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xA9, 0xF1, 0x08, 0x48, +0x4F, 0x98, 0x0A, 0xD4, 0x0B, 0xD5, 0x8E, 0xEA, +0x0F, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x4C, 0x9A, 0x00, 0x69, 0x10, 0xF0, 0x23, 0x6C, +0x04, 0xD1, 0xEC, 0xF3, 0x11, 0x4C, 0xB1, 0x67, +0x64, 0x6E, 0x01, 0x6F, 0x40, 0xEA, 0x31, 0xD8, +0x0A, 0x93, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF1, +0x08, 0x4A, 0x6F, 0xDA, 0x0B, 0x93, 0x70, 0xDA, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF6, 0x58, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0x80, 0xAA, 0xEF, 0xF7, +0x1F, 0x6A, 0x8C, 0xEA, 0xA4, 0xF5, 0x54, 0xCB, +0xA4, 0xF5, 0x74, 0xAB, 0x30, 0xF0, 0x20, 0x6C, +0xA9, 0xF1, 0x56, 0xCC, 0x60, 0x6C, 0x8C, 0xEB, +0x00, 0x6A, 0x01, 0x23, 0x01, 0x6A, 0xFF, 0x6B, +0x6C, 0xEA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0xA9, 0xF1, 0x08, 0x4B, 0x9B, 0xA3, 0x02, 0x6A, +0x4B, 0xEA, 0x8C, 0xEA, 0x03, 0x6C, 0x8B, 0xEC, +0x8C, 0xEA, 0xFE, 0x4C, 0x8C, 0xEA, 0x5B, 0xC3, +0x00, 0x6A, 0x59, 0xC3, 0x5A, 0xC3, 0x20, 0xE8, +0xFF, 0x6B, 0x8C, 0xEB, 0x0F, 0x5B, 0x00, 0x6A, +0x06, 0x61, 0x24, 0x5B, 0x78, 0x67, 0x01, 0x5B, +0x58, 0x67, 0x02, 0x6B, 0x4B, 0xE3, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF6, 0x7C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0x9B, 0xE9, 0xF1, +0x98, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF6, +0x80, 0x9A, 0xFC, 0x6A, 0xA0, 0xA4, 0xAC, 0xEA, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF6, +0x44, 0x9A, 0x0D, 0x6C, 0x80, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF6, 0x48, 0x9A, 0x40, 0xDB, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0xA9, 0xF1, 0x08, 0x49, 0x40, 0xF0, 0x8C, 0xA1, +0x00, 0x18, 0x74, 0xD7, 0x40, 0xF0, 0x8E, 0xA1, +0x02, 0x67, 0x00, 0x18, 0x74, 0xD7, 0x4D, 0xE8, +0xFF, 0x6B, 0x6C, 0xE8, 0x01, 0x6A, 0x4E, 0xE8, +0x01, 0x58, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x58, 0x67, 0x6C, 0xEA, 0x04, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA4, 0xF5, 0x88, 0x9A, 0x64, 0x67, 0x03, 0x2C, +0x84, 0xF5, 0x70, 0x9A, 0x06, 0x23, 0x05, 0x23, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF6, 0x5C, 0x9A, +0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xE0, 0xF0, 0x9A, 0xA2, 0x05, 0x6B, +0x8C, 0xEB, 0x05, 0x73, 0x05, 0x60, 0x00, 0x6B, +0xA4, 0xF5, 0x68, 0xDA, 0x84, 0xF5, 0x70, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xA9, 0xF1, 0x08, 0x48, 0x20, 0xF0, 0x45, 0xA0, +0x2F, 0x2A, 0x80, 0x18, 0x49, 0x5E, 0x40, 0xF0, +0x8C, 0xA0, 0x00, 0x69, 0x00, 0x18, 0x74, 0xD7, +0x06, 0x2A, 0x40, 0xF0, 0x2D, 0xA0, 0x01, 0x6A, +0x1A, 0x59, 0x38, 0x67, 0x4E, 0xE9, 0x30, 0xF0, +0x20, 0x68, 0xA9, 0xF1, 0x08, 0x48, 0x40, 0xF0, +0x8E, 0xA0, 0x00, 0x18, 0x74, 0xD7, 0x00, 0x6B, +0x1B, 0x65, 0x05, 0x2A, 0x40, 0xF0, 0x4F, 0xA0, +0x1A, 0x5A, 0x58, 0x67, 0x01, 0x72, 0x01, 0x61, +0x3E, 0x21, 0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, +0x23, 0x6C, 0xEB, 0xF5, 0x09, 0x4C, 0x00, 0x6D, +0x14, 0x6E, 0x01, 0x6F, 0x40, 0xEA, 0x2F, 0x10, +0x01, 0x72, 0x2D, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF6, 0x60, 0x9A, 0xFF, 0x69, 0x03, 0x6C, +0x40, 0xA3, 0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, +0x08, 0x48, 0x2C, 0xEA, 0x8D, 0xEA, 0x2C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF6, +0x44, 0x9A, 0x01, 0x6B, 0x60, 0xC2, 0xE0, 0xF0, +0x7A, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, +0x12, 0x2A, 0x00, 0x18, 0x89, 0xD7, 0x0F, 0x22, +0xA4, 0xF5, 0x65, 0xA0, 0xA4, 0xF5, 0x46, 0xA0, +0x01, 0x4B, 0xA4, 0xF5, 0x65, 0xC0, 0xA4, 0xF5, +0x65, 0xA0, 0x14, 0x4A, 0x2C, 0xEA, 0x6E, 0xEA, +0x02, 0x2A, 0xA4, 0xF5, 0x66, 0xC0, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFF, 0x6A, 0x8C, 0xEA, 0x05, 0x5A, 0x0B, 0x60, +0x87, 0x42, 0x30, 0xF0, 0x20, 0x6B, 0x09, 0x4C, +0x84, 0x34, 0xA9, 0xF1, 0x08, 0x4B, 0x6D, 0xE4, +0x83, 0xAB, 0x01, 0x4C, 0x83, 0xCB, 0x30, 0xF0, +0x20, 0x6B, 0xA9, 0xF1, 0x08, 0x4B, 0x40, 0xF0, +0x88, 0xA3, 0x11, 0x24, 0x10, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF6, 0x98, 0x9A, 0xFF, 0x6D, +0x10, 0x6E, 0x40, 0xA4, 0xAC, 0xEA, 0xCD, 0xEA, +0xAC, 0xEA, 0x40, 0xC4, 0x40, 0xF0, 0x4A, 0xAB, +0x01, 0x4A, 0x40, 0xF0, 0x4A, 0xCB, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xA9, 0xF1, 0x08, 0x4B, 0x4C, 0xEC, +0x4C, 0xED, 0x4C, 0xEE, 0xEC, 0xEA, 0x40, 0xF0, +0x8C, 0xC3, 0x40, 0xF0, 0xAD, 0xC3, 0x40, 0xF0, +0xCE, 0xC3, 0x40, 0xF0, 0x4F, 0xC3, 0x01, 0x24, +0x10, 0x2E, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF1, +0x08, 0x4A, 0x74, 0x9A, 0x07, 0x23, 0x30, 0xF0, +0x20, 0x6C, 0x03, 0xF6, 0x9C, 0x9C, 0x60, 0xDC, +0x00, 0x6B, 0x74, 0xDA, 0x00, 0x6C, 0x00, 0x18, +0xB3, 0xE5, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x69, 0x2C, 0xED, 0x2C, 0xEC, 0x09, 0xD5, +0x56, 0x24, 0x30, 0xF0, 0x20, 0x68, 0xA9, 0xF1, +0x08, 0x48, 0x5B, 0xA0, 0x02, 0x6B, 0x4C, 0xEB, +0x2C, 0xEB, 0x08, 0xD3, 0x80, 0xF0, 0x02, 0x2B, +0x01, 0x6A, 0x9D, 0x67, 0x01, 0x6D, 0x06, 0x06, +0x58, 0xC4, 0x34, 0x6C, 0x80, 0x18, 0x1E, 0x69, +0x53, 0xA0, 0x02, 0x6C, 0x01, 0x4A, 0x53, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF5, 0x44, 0x9A, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF6, +0x44, 0x9A, 0x9B, 0xA0, 0x60, 0xA2, 0x04, 0x6A, +0x6C, 0xEA, 0x4A, 0x32, 0x4C, 0x33, 0x09, 0x6A, +0x4B, 0xEA, 0x8C, 0xEA, 0x6D, 0xEA, 0x00, 0x6C, +0x5B, 0xC0, 0x00, 0x18, 0x5F, 0xDC, 0x47, 0xD8, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x64, 0xF5, 0x98, 0xA2, 0x08, 0x6B, 0x00, 0x6D, +0x8D, 0xEB, 0x64, 0xF5, 0x78, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF0, 0x6C, 0x9A, 0x02, 0x6C, +0x64, 0x6E, 0x40, 0xA3, 0x01, 0x6F, 0x2C, 0xEA, +0x8D, 0xEA, 0x2C, 0xEA, 0x40, 0xC3, 0x08, 0x92, +0x10, 0xF0, 0x23, 0x6C, 0xCC, 0xF1, 0x01, 0x4C, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x4C, 0x9A, 0x40, 0xEA, 0x5B, 0xA0, 0x02, 0x6B, +0x6D, 0xEA, 0x5B, 0xC0, 0x37, 0x10, 0x30, 0xF0, +0x20, 0x68, 0xA9, 0xF1, 0x08, 0x48, 0x7B, 0xA0, +0x06, 0x6A, 0x6C, 0xEA, 0x02, 0x72, 0x2E, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF5, 0x44, 0x9A, +0x03, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF6, 0x44, 0x9A, 0x9B, 0xA0, 0x04, 0x6D, +0x60, 0xA2, 0x11, 0x6A, 0x4B, 0xEA, 0xAC, 0xEB, +0x6A, 0x33, 0x70, 0x33, 0x8C, 0xEA, 0x6D, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x5B, 0xC0, 0x6B, 0xF0, +0x08, 0x4B, 0x64, 0xF5, 0xD8, 0xA3, 0x09, 0x6C, +0x8B, 0xEC, 0xCC, 0xEC, 0x64, 0xF5, 0x98, 0xC3, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x8C, 0x9B, +0xFD, 0x6B, 0xAD, 0xEA, 0xC0, 0xA4, 0xCC, 0xEB, +0x60, 0xC4, 0x00, 0x6C, 0x5B, 0xC0, 0x00, 0x18, +0x5F, 0xDC, 0x48, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0xA9, 0xF1, 0x08, 0x4A, 0x7A, 0xA2, 0x09, 0x94, +0x8D, 0xEB, 0x7A, 0xC2, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xA9, 0xF1, 0x08, 0x48, +0x9B, 0xA0, 0x04, 0x6A, 0xFF, 0x69, 0x8C, 0xEA, +0x18, 0x2A, 0x02, 0x6B, 0x8C, 0xEB, 0x2C, 0xEB, +0x01, 0x6A, 0x14, 0x2B, 0x00, 0x18, 0x5D, 0xD7, +0xBB, 0xA0, 0x02, 0x6C, 0x01, 0x6B, 0x8B, 0xEC, +0x6C, 0xEA, 0xAC, 0xEC, 0x4D, 0xEC, 0x8C, 0xEB, +0x2C, 0xEB, 0x9B, 0xC0, 0x06, 0x23, 0x01, 0x6C, +0x02, 0x6D, 0x00, 0x18, 0x08, 0xD8, 0x01, 0x6A, +0x01, 0x10, 0x00, 0x6A, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0xA9, 0xF1, 0x08, 0x48, 0x00, 0x6C, +0x00, 0x18, 0x5F, 0xDC, 0x79, 0xA0, 0x01, 0x4B, +0x79, 0xC0, 0x79, 0xA0, 0x07, 0x5B, 0x26, 0x60, +0x67, 0x98, 0x6B, 0xE2, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF6, 0x68, 0x9B, 0x43, 0xEB, 0x1E, 0x61, +0x00, 0x18, 0x5D, 0xD7, 0xBB, 0xA0, 0x02, 0x6C, +0x01, 0x6B, 0x8B, 0xEC, 0x6C, 0xEA, 0xAC, 0xEC, +0x4D, 0xEC, 0x8C, 0xEB, 0x9B, 0xC0, 0x0F, 0x23, +0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, 0x23, 0x6C, +0xCC, 0xF1, 0x01, 0x4C, 0x00, 0x6D, 0x64, 0x6E, +0x01, 0x6F, 0x40, 0xEA, 0x07, 0x10, 0x00, 0x6C, +0x08, 0x6D, 0x02, 0x10, 0x00, 0x6C, 0x10, 0x6D, +0x00, 0x18, 0x08, 0xD8, 0x07, 0x97, 0x06, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0xFF, 0x6B, 0x46, 0x67, 0x6C, 0xEF, 0xC4, 0x67, +0x04, 0xD7, 0x6C, 0xEE, 0xE2, 0x67, 0x03, 0x6C, +0x6C, 0xED, 0x80, 0x18, 0xDD, 0x67, 0x07, 0x97, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xA9, 0xF1, +0x08, 0x4B, 0x20, 0xF0, 0x04, 0xA3, 0xFF, 0x6A, +0x8C, 0xEA, 0x4A, 0xE8, 0x1E, 0x61, 0x22, 0x10, +0x20, 0xF0, 0x45, 0xA3, 0x16, 0x22, 0x00, 0x6A, +0x07, 0x10, 0x24, 0x5A, 0x08, 0x61, 0x20, 0xF0, +0x45, 0xA3, 0x01, 0x72, 0x0E, 0x60, 0x01, 0x6A, +0x20, 0xF0, 0x45, 0xC3, 0x0B, 0x10, 0x4D, 0x9B, +0x01, 0x6C, 0x00, 0x6E, 0x8D, 0xEA, 0x02, 0x6D, +0x04, 0x6C, 0xE6, 0x67, 0x4D, 0xDB, 0x00, 0x18, +0x8F, 0xD8, 0x08, 0x28, 0x00, 0x18, 0xA9, 0xD7, +0x05, 0x10, 0x0F, 0x5A, 0x20, 0xF0, 0x44, 0xC3, +0xDF, 0x61, 0xE3, 0x17, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0xA9, 0xF1, 0x08, 0x49, 0x4F, 0x99, 0x80, 0xF0, +0x05, 0x22, 0x7D, 0x67, 0x10, 0x6A, 0x50, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF1, 0x10, 0x4A, +0xE7, 0x41, 0x82, 0x67, 0x00, 0x6D, 0x10, 0x6E, +0x31, 0x4F, 0x06, 0xD2, 0x00, 0x18, 0x3F, 0xD7, +0x7D, 0x67, 0x10, 0xA3, 0xFF, 0x6A, 0x01, 0x6B, +0x02, 0x48, 0x4C, 0xE8, 0x4F, 0x99, 0x6C, 0xEA, +0x10, 0x22, 0x7D, 0x67, 0x08, 0x6A, 0x50, 0xC3, +0x06, 0x92, 0x01, 0x6D, 0x08, 0x6E, 0x11, 0xE2, +0xF1, 0x67, 0x00, 0x18, 0x3F, 0xD7, 0x7D, 0x67, +0x50, 0xA3, 0x02, 0x4A, 0x41, 0xE0, 0xFF, 0x6A, +0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6F, 0xA9, 0xF1, +0x08, 0x4F, 0x4F, 0x9F, 0x02, 0x6B, 0x6C, 0xEA, +0x13, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x08, 0x6A, +0x7D, 0x67, 0x09, 0xF1, 0x10, 0x4C, 0x50, 0xC3, +0x11, 0xE4, 0x02, 0x6D, 0x08, 0x6E, 0x08, 0x4F, +0x00, 0x18, 0x3F, 0xD7, 0x7D, 0x67, 0x50, 0xA3, +0x02, 0x4A, 0x41, 0xE0, 0xFF, 0x6A, 0x4C, 0xE8, +0x30, 0xF0, 0x20, 0x6F, 0xA9, 0xF1, 0x08, 0x4F, +0x4F, 0x9F, 0x04, 0x6B, 0x6C, 0xEA, 0x13, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x14, 0x6A, 0x7D, 0x67, +0x09, 0xF1, 0x10, 0x4C, 0x50, 0xC3, 0x11, 0xE4, +0x03, 0x6D, 0x14, 0x6E, 0x10, 0x4F, 0x00, 0x18, +0x3F, 0xD7, 0x7D, 0x67, 0x50, 0xA3, 0x02, 0x4A, +0x41, 0xE0, 0xFF, 0x6A, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0xE9, 0xF1, 0x44, 0x9A, 0x08, 0x6B, +0x6C, 0xEA, 0x16, 0x22, 0x04, 0x04, 0x00, 0x18, +0x69, 0xD3, 0x7D, 0x67, 0xD0, 0xA3, 0x10, 0x26, +0x0F, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x09, 0xF1, +0x10, 0x4C, 0x11, 0xE4, 0xE2, 0x67, 0x04, 0x6D, +0x00, 0x18, 0x3F, 0xD7, 0x7D, 0x67, 0x50, 0xA3, +0x02, 0x4A, 0x41, 0xE0, 0xFF, 0x6A, 0x4C, 0xE8, +0x09, 0x20, 0x30, 0xF0, 0x20, 0x6E, 0x05, 0x6C, +0x03, 0x6D, 0x09, 0xF1, 0x10, 0x4E, 0xF0, 0x67, +0x00, 0x18, 0x8F, 0xD8, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xA9, 0xF1, 0x08, 0x48, +0x5D, 0xA8, 0x01, 0x4A, 0x5D, 0xC8, 0x4F, 0x98, +0x20, 0x22, 0x00, 0x6C, 0x00, 0x18, 0x5F, 0xDC, +0x22, 0x67, 0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, +0x23, 0x6C, 0xEC, 0xF3, 0x11, 0x4C, 0x00, 0x6D, +0x64, 0x6E, 0x01, 0x6F, 0x40, 0xEA, 0x71, 0x98, +0xE0, 0xF3, 0x08, 0x6A, 0x90, 0x98, 0x6F, 0xE1, +0x5B, 0xEB, 0x01, 0x2A, 0xE5, 0xE8, 0x12, 0xEA, +0x83, 0xEA, 0x03, 0x61, 0x00, 0x18, 0xB1, 0xD8, +0x31, 0xD8, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFE, 0x65, 0xFF, 0xF7, +0x1F, 0x6E, 0xEC, 0xEE, 0xFF, 0x6B, 0x24, 0x46, +0x6C, 0xE9, 0x30, 0xF0, 0x20, 0x68, 0x97, 0x59, +0x08, 0xD4, 0x6C, 0xED, 0xE8, 0xF7, 0x00, 0x48, +0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0xA0, 0xC0, 0xC1, 0xC8, 0x84, 0x40, +0xBF, 0x67, 0x6C, 0xEE, 0x40, 0xEA, 0x05, 0x10, +0x05, 0x6A, 0x40, 0xC0, 0x00, 0x6A, 0x41, 0xC8, +0x04, 0x69, 0x08, 0x94, 0xB0, 0x67, 0xD1, 0x67, +0x80, 0x18, 0x1F, 0x68, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x40, 0xA6, 0x07, 0x27, +0x7D, 0x67, 0x03, 0x6D, 0x04, 0x06, 0x01, 0x6F, +0x50, 0xC3, 0x00, 0x18, 0x15, 0xD9, 0x07, 0x97, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD0, 0xFF, 0x6A, 0x04, 0x67, 0xAC, 0xEA, +0x60, 0xA6, 0x38, 0x27, 0x9D, 0x67, 0x70, 0xC4, +0x70, 0xA4, 0x2E, 0x2B, 0x09, 0x77, 0x04, 0x60, +0x00, 0x6F, 0xC7, 0x67, 0x06, 0x6D, 0x26, 0x10, +0x01, 0x72, 0x04, 0x60, 0x00, 0x6F, 0xC7, 0x67, +0x04, 0x6D, 0x20, 0x10, 0x43, 0xA6, 0x64, 0xA6, +0xA7, 0xA6, 0x40, 0x32, 0x40, 0x32, 0x00, 0xF6, +0x60, 0x33, 0x4D, 0xEB, 0x41, 0xA6, 0xA0, 0x35, +0xA0, 0x35, 0x4D, 0xEB, 0x48, 0xA6, 0x82, 0xA6, +0x00, 0xF6, 0x40, 0x32, 0xAD, 0xEA, 0xA5, 0xA6, +0x80, 0x34, 0x6D, 0xEC, 0xAD, 0xEA, 0xA6, 0xA6, +0xA0, 0x35, 0x4D, 0xED, 0x00, 0x18, 0x48, 0xD7, +0x30, 0xF0, 0x20, 0x6E, 0x10, 0x6F, 0xE9, 0xF1, +0x00, 0x4E, 0x00, 0x6D, 0x90, 0x67, 0x04, 0x10, +0x90, 0x67, 0x03, 0x6D, 0x04, 0x06, 0x01, 0x6F, +0x00, 0x18, 0x15, 0xD9, 0x07, 0x97, 0x06, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x0A, 0xD4, 0x40, 0xA6, +0x72, 0x27, 0x71, 0x22, 0x01, 0x6B, 0x4E, 0xEB, +0x26, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF1, +0x08, 0x4A, 0x40, 0xF0, 0x88, 0xA2, 0x0D, 0x2C, +0x01, 0x6B, 0x40, 0xF0, 0x68, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF6, 0x6C, 0x9A, 0xFF, 0x6C, +0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, +0x08, 0x10, 0x40, 0xF0, 0x68, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF6, 0x6C, 0x9A, 0xBF, 0x6A, +0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6E, 0x0A, 0x94, 0x00, 0x6D, 0xE9, 0xF1, +0x10, 0x4E, 0x01, 0x6F, 0x46, 0x10, 0x02, 0x72, +0x46, 0x61, 0x23, 0x6A, 0x30, 0xF0, 0x20, 0x68, +0xA9, 0xF1, 0x08, 0x48, 0x30, 0xF0, 0x20, 0x6C, +0x4B, 0xEA, 0x69, 0xF0, 0x58, 0xC4, 0x40, 0xF0, +0x48, 0xA0, 0x69, 0xF0, 0x18, 0x4C, 0xA7, 0x40, +0x41, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0x26, 0x48, 0x02, 0x4C, 0x43, 0x4D, +0x02, 0x6E, 0x40, 0xEA, 0x04, 0xD0, 0x04, 0x6F, +0x00, 0x68, 0x04, 0x93, 0x40, 0xAB, 0x17, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x69, 0xF0, 0x18, 0x4C, +0x12, 0x6B, 0xE9, 0xE4, 0x6B, 0xEB, 0x60, 0xC2, +0x01, 0xC2, 0x22, 0x47, 0xFF, 0x6A, 0x4C, 0xE9, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0x04, 0x95, 0x31, 0xE4, 0x02, 0x6E, 0x40, 0xEA, +0xE2, 0x41, 0xFF, 0x6B, 0x6C, 0xEF, 0xFF, 0x6A, +0x01, 0x48, 0x4C, 0xE8, 0x04, 0x92, 0x05, 0x70, +0x02, 0x4A, 0x04, 0xD2, 0xDE, 0x61, 0x0A, 0x94, +0x30, 0xF0, 0x20, 0x6E, 0x00, 0x6D, 0x69, 0xF0, +0x18, 0x4E, 0x00, 0x18, 0x15, 0xD9, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0xFF, 0x6B, +0x05, 0x67, 0x6C, 0xE8, 0xA6, 0x67, 0x6C, 0xED, +0x01, 0x70, 0x7D, 0x67, 0x47, 0x67, 0xF8, 0xAB, +0x08, 0x60, 0x03, 0x20, 0xFE, 0x70, 0x09, 0x60, +0x0C, 0x10, 0xC2, 0x67, 0x00, 0x18, 0x33, 0xD9, +0x0F, 0x10, 0xC2, 0x67, 0x00, 0x18, 0x2C, 0xD9, +0x0B, 0x10, 0xC2, 0x67, 0x00, 0x18, 0x55, 0xD9, +0x07, 0x10, 0x5D, 0x67, 0x10, 0xC2, 0x02, 0x6D, +0x04, 0x06, 0x01, 0x6F, 0x00, 0x18, 0x15, 0xD9, +0x07, 0x97, 0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6C, +0x64, 0x67, 0x01, 0x6A, 0xA9, 0xF1, 0x08, 0x4B, +0x10, 0xF0, 0x23, 0x6D, 0xA9, 0xF1, 0x48, 0xC4, +0x20, 0xF0, 0x58, 0xC3, 0x48, 0xC3, 0x50, 0xC3, +0x03, 0x6C, 0x4C, 0xF6, 0x11, 0x4D, 0x00, 0x18, +0xF6, 0xC1, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x00, 0x68, +0x20, 0x10, 0xE0, 0xF3, 0x08, 0x70, 0x13, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x68, 0x9A, +0x80, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x60, 0xDA, 0x00, 0x6A, 0x13, 0x10, 0xFF, 0xF7, +0x1F, 0x6A, 0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, +0x54, 0x9A, 0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0xD8, 0x2A, 0x01, 0x6A, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFF, 0xF7, 0x1F, 0x6A, +0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6C, 0xA3, 0xF2, 0x64, 0x9B, 0x63, 0xF6, +0x94, 0x9C, 0x6D, 0xE5, 0x91, 0xE5, 0x00, 0x6E, +0xC0, 0xDB, 0x04, 0x4B, 0x8A, 0xEB, 0xFB, 0x61, +0xE7, 0xF7, 0x1F, 0x6B, 0x4C, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF0, 0x54, 0x9A, 0x10, 0x6C, +0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, +0x44, 0x9A, 0x49, 0xE5, 0x60, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF6, 0x58, 0x9A, 0xFF, 0x6B, +0x55, 0xE5, 0x40, 0xA5, 0x6C, 0xEA, 0x8D, 0xEA, +0x6C, 0xEA, 0x40, 0xC5, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xE9, 0xF1, 0x7D, 0xA2, +0x08, 0xD4, 0x30, 0xF0, 0x20, 0x69, 0x61, 0xC5, +0x01, 0x4B, 0xE9, 0xF1, 0x7D, 0xC2, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF2, 0x84, 0x9B, 0x08, 0x93, +0x80, 0xF2, 0x4C, 0x99, 0x02, 0x6E, 0x91, 0xE3, +0x05, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF6, 0x9C, 0x9B, 0x08, 0x93, 0xCE, 0xA0, +0x80, 0xF2, 0x4C, 0x99, 0xA2, 0x40, 0x91, 0xE3, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x24, 0x67, 0x00, 0x18, +0xB4, 0xD9, 0x00, 0x6B, 0x46, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF2, 0x5C, 0x9A, 0xFF, 0xF7, +0x1F, 0x6E, 0xFF, 0x6F, 0x00, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF2, 0x48, 0x9A, 0x10, 0x6C, +0x8B, 0xEC, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xA1, 0x40, 0x83, 0xF6, 0x40, 0x9A, 0x65, 0x67, +0xCC, 0xEB, 0x60, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF6, 0x44, 0x9A, 0x60, 0xA2, 0xFA, 0x65, +0xA2, 0x32, 0xEC, 0xEB, 0x8C, 0xEB, 0x42, 0x32, +0x6D, 0xEA, 0xEC, 0xEA, 0x7F, 0x67, 0x40, 0xC3, +0x87, 0xA9, 0x02, 0x4C, 0xCC, 0xEC, 0x00, 0x18, +0xCD, 0xD9, 0x87, 0x40, 0x12, 0x4C, 0xB1, 0x67, +0x00, 0x18, 0xE4, 0xD9, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF1, 0x54, 0x9A, 0x01, 0x6B, 0x80, 0xF2, +0x16, 0x6C, 0x60, 0xC2, 0x06, 0x02, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, +0x01, 0x6D, 0x00, 0x6E, 0x04, 0xF7, 0x10, 0x6F, +0x40, 0xEA, 0x4B, 0xEB, 0x4D, 0xEB, 0xC0, 0xF7, +0x62, 0x33, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x43, 0x67, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, 0xA0, 0xF6, +0x82, 0xA0, 0xA0, 0xF6, 0x43, 0xA0, 0x8E, 0xEA, +0x44, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF6, +0x48, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, +0x74, 0x9B, 0x40, 0x9A, 0x6C, 0xEA, 0x39, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x90, 0x34, 0x0B, 0xF2, +0x0A, 0x4A, 0x91, 0xE2, 0x00, 0x18, 0xF9, 0xD9, +0x1D, 0x22, 0xA0, 0xF6, 0x42, 0xA0, 0x01, 0x4A, +0xA0, 0xF6, 0x42, 0xC0, 0xA0, 0xF6, 0x62, 0xA0, +0xA0, 0xF6, 0x43, 0xA0, 0x6E, 0xEA, 0x06, 0x22, +0xA0, 0xF0, 0x44, 0x98, 0x04, 0x6B, 0x6D, 0xEA, +0xA0, 0xF0, 0x44, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xA0, 0xF6, 0x62, 0xA2, +0x50, 0x6C, 0x8E, 0xEB, 0x09, 0x2B, 0xA0, 0xF6, +0x62, 0xC2, 0x06, 0x10, 0xA0, 0xF0, 0x44, 0x98, +0x04, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x40, 0xF1, 0x96, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, +0x04, 0x23, 0x40, 0xF1, 0x77, 0xA2, 0x43, 0xF6, +0x68, 0xC2, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, +0x08, 0x48, 0xA0, 0xF0, 0x44, 0x98, 0x04, 0x6B, +0xA4, 0x67, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, +0xA0, 0xF6, 0x42, 0xA8, 0x09, 0xF7, 0x00, 0x72, +0x07, 0x60, 0xA0, 0xF6, 0x42, 0xA0, 0xA0, 0xF6, +0x83, 0xA0, 0xFF, 0x4A, 0x8E, 0xEA, 0x13, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x68, 0x9A, +0x00, 0xF2, 0x00, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, +0xA3, 0xF3, 0x60, 0xDA, 0x18, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, +0x4C, 0x9A, 0x0B, 0xF2, 0x0A, 0x4B, 0x90, 0x34, +0x91, 0xE3, 0x10, 0x6E, 0x40, 0xEA, 0xA0, 0xF6, +0x43, 0xA0, 0x50, 0x6B, 0x01, 0x4A, 0xA0, 0xF6, +0x43, 0xC0, 0xA0, 0xF6, 0x43, 0xA0, 0x6E, 0xEA, +0x02, 0x2A, 0xA0, 0xF6, 0x43, 0xC0, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0xE9, 0xF1, 0x5C, 0xA3, 0xFF, 0x6F, +0xE0, 0xF0, 0xC7, 0xA5, 0x41, 0xC5, 0x43, 0xA5, +0xE9, 0xF1, 0x7C, 0xA3, 0x03, 0x4A, 0xEC, 0xEA, +0x09, 0x10, 0xED, 0x42, 0xFF, 0x68, 0x0C, 0xEF, +0xFD, 0xE5, 0x64, 0xC7, 0xE6, 0xA7, 0x03, 0x4F, +0xE9, 0xE2, 0x0C, 0xEA, 0xEF, 0x46, 0xE2, 0xEA, +0xF4, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE9, 0xF1, +0x7C, 0xA2, 0x01, 0x4B, 0xE9, 0xF1, 0x7C, 0xC2, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF2, 0x64, 0x9B, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0x71, 0xE4, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x24, 0x67, 0x00, 0x18, +0xB4, 0xD9, 0x00, 0x6B, 0x3C, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF2, 0x5C, 0x9A, 0x0F, 0x6C, +0xFF, 0xF7, 0x1F, 0x6B, 0x00, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF2, 0x48, 0x9A, 0x4C, 0xE8, +0xA1, 0x40, 0xA2, 0x32, 0x42, 0x32, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF6, 0x80, 0x9C, +0xAC, 0xEB, 0x60, 0xCC, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF6, 0x64, 0x9B, 0x40, 0xC3, 0xE0, 0xF0, +0x87, 0xA1, 0x00, 0x18, 0xCD, 0xD9, 0x87, 0x40, +0x12, 0x4C, 0xB1, 0x67, 0x00, 0x18, 0x74, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, 0x54, 0x9A, +0x01, 0x6B, 0x80, 0xF2, 0x16, 0x6C, 0x60, 0xC2, +0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x48, 0x9A, 0x01, 0x6D, 0x00, 0x6E, +0x04, 0xF7, 0x10, 0x6F, 0x40, 0xEA, 0x4B, 0xEB, +0x4D, 0xEB, 0xC0, 0xF7, 0x62, 0x33, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x43, 0x67, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, +0x08, 0x48, 0x22, 0xF5, 0x67, 0xA0, 0x22, 0xF5, +0x48, 0xA0, 0x6E, 0xEA, 0x4B, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF6, 0x48, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xC3, 0xF1, 0x94, 0x9C, 0x40, 0x9A, +0x8C, 0xEA, 0x40, 0x2A, 0xE8, 0x6A, 0x58, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x0B, 0xF7, 0x0C, 0x4A, +0x12, 0xEB, 0x71, 0xE2, 0x00, 0x18, 0x8D, 0xDA, +0x07, 0x2A, 0xA0, 0xF0, 0x44, 0x98, 0x04, 0x6B, +0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, 0x2E, 0x10, +0x22, 0xF5, 0x47, 0xA0, 0x10, 0x6B, 0x01, 0x4A, +0x22, 0xF5, 0x47, 0xC0, 0x22, 0xF5, 0x47, 0xA0, +0x6E, 0xEA, 0x02, 0x2A, 0x22, 0xF5, 0x47, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x22, 0xF5, 0x87, 0xA2, 0x22, 0xF5, 0x68, 0xA2, +0x8E, 0xEB, 0x07, 0x23, 0xA0, 0xF0, 0x64, 0x9A, +0x04, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, +0x04, 0x10, 0x22, 0xF5, 0x86, 0xC2, 0x22, 0xF5, +0x64, 0xCA, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x40, 0xF1, 0x96, 0xA2, 0x01, 0x6B, +0x8C, 0xEB, 0x04, 0x23, 0x40, 0xF1, 0x77, 0xA2, +0x43, 0xF6, 0x68, 0xC2, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x22, 0xF5, 0x67, 0xA2, +0xA4, 0x67, 0x04, 0x2B, 0x22, 0xF5, 0x48, 0xA2, +0x0F, 0x72, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x68, +0x6B, 0xF0, 0x08, 0x48, 0x22, 0xF5, 0x47, 0xA0, +0x22, 0xF5, 0x68, 0xA0, 0xFF, 0x4A, 0x6E, 0xEA, +0x15, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, +0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF1, +0x98, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x60, 0xDA, 0xAC, 0x10, 0x23, 0xA5, 0xFF, 0xF7, +0x1F, 0x6A, 0x04, 0x49, 0x4C, 0xE9, 0x22, 0xF5, +0x44, 0xA8, 0x22, 0x2A, 0xE8, 0x6A, 0x58, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6C, +0x80, 0xF2, 0x4C, 0x9A, 0x0B, 0xF7, 0x0C, 0x4C, +0xFF, 0x6E, 0x2C, 0xEE, 0x12, 0xEB, 0x71, 0xE4, +0x40, 0xEA, 0x22, 0xF5, 0x48, 0xA0, 0x22, 0xF5, +0x67, 0xA0, 0x22, 0xF5, 0x24, 0xC8, 0x4E, 0xEB, +0x79, 0x2B, 0x01, 0x4A, 0x22, 0xF5, 0x48, 0xC0, +0x22, 0xF5, 0x48, 0xA0, 0x10, 0x6B, 0x6E, 0xEA, +0x71, 0x2A, 0x22, 0xF5, 0x48, 0xC0, 0x6E, 0x10, +0x62, 0xA5, 0x39, 0x2B, 0x4D, 0xE1, 0xE3, 0x53, +0x36, 0x60, 0x22, 0xF5, 0x66, 0xA0, 0xE8, 0x6C, +0x98, 0xEB, 0x12, 0xEB, 0x0D, 0xE3, 0xA0, 0xF6, +0x86, 0xA3, 0x2D, 0x2C, 0xA0, 0xF6, 0x87, 0xA3, +0xFF, 0x6E, 0xFC, 0x4A, 0xFF, 0x4C, 0xA0, 0xF6, +0x87, 0xC3, 0x22, 0xF5, 0x64, 0xA8, 0x22, 0xF5, +0x86, 0xA0, 0xCC, 0xEA, 0xFF, 0x4B, 0x22, 0xF5, +0x64, 0xC8, 0xE8, 0x6B, 0x78, 0xEC, 0x2C, 0xEE, +0x12, 0xEC, 0x91, 0xE0, 0x51, 0xE4, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0xA0, 0xF6, +0x07, 0x4C, 0x40, 0xEA, 0x22, 0xF5, 0x46, 0xA0, +0xE8, 0x6B, 0x78, 0xEA, 0x12, 0xEA, 0x09, 0xE2, +0xA0, 0xF6, 0x67, 0xA2, 0x6D, 0xE1, 0xA0, 0xF6, +0x67, 0xC2, 0x22, 0xF5, 0x44, 0xA8, 0x45, 0xE1, +0x22, 0xF5, 0x24, 0xC8, 0x33, 0x10, 0x30, 0xF0, +0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, 0x22, 0xF5, +0x88, 0xA0, 0xE8, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x58, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0x0B, 0xF7, 0x0C, 0x4B, 0xFF, 0x6E, +0x2C, 0xEE, 0x12, 0xEC, 0x91, 0xE3, 0x40, 0xEA, +0x22, 0xF5, 0x48, 0xA0, 0x10, 0x6B, 0x22, 0xF5, +0x24, 0xC8, 0x01, 0x4A, 0x22, 0xF5, 0x48, 0xC0, +0x22, 0xF5, 0x48, 0xA0, 0x6E, 0xEA, 0x02, 0x2A, +0x22, 0xF5, 0x48, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x22, 0xF5, 0x66, 0xA2, +0x10, 0x6C, 0x01, 0x4B, 0x22, 0xF5, 0x66, 0xC2, +0x22, 0xF5, 0x66, 0xA2, 0x8E, 0xEB, 0x02, 0x2B, +0x22, 0xF5, 0x66, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x22, 0xF5, 0x86, 0xA2, +0xE8, 0x6B, 0x78, 0xEC, 0x22, 0xF5, 0x84, 0xAA, +0x12, 0xEB, 0x4D, 0xE3, 0x80, 0xF7, 0x8B, 0xC3, +0xA0, 0xF0, 0x64, 0x9A, 0x04, 0x6C, 0x8D, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0xF7, 0x1F, 0x68, 0x0C, 0xED, 0x08, 0xD4, +0xA0, 0xCC, 0x08, 0x92, 0xCC, 0xE8, 0x22, 0x67, +0x01, 0xCA, 0x04, 0x49, 0x0B, 0x27, 0x0A, 0x20, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0xFF, 0x6E, 0x91, 0x67, 0xA7, 0x67, 0x0C, 0xEE, +0x40, 0xEA, 0x05, 0xE1, 0x08, 0x92, 0x07, 0x97, +0x05, 0x90, 0x47, 0xE1, 0xFF, 0xF7, 0x1F, 0x6A, +0x2C, 0xEA, 0x06, 0x91, 0x04, 0x63, 0x00, 0xEF, +0xDF, 0x63, 0x41, 0x62, 0x40, 0xD1, 0x3F, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, +0xFF, 0x68, 0xCC, 0xE8, 0x24, 0x67, 0x43, 0xD5, +0x04, 0x04, 0x00, 0x6D, 0xE8, 0x6E, 0x40, 0xEA, +0x01, 0x6A, 0x7D, 0x67, 0x4B, 0xEA, 0x50, 0xC3, +0x1B, 0x6A, 0x52, 0xC3, 0x44, 0x40, 0x53, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0x95, 0x80, 0xF2, +0x4C, 0x9A, 0xD0, 0x67, 0x05, 0xD1, 0x06, 0x04, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, +0x40, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x41, 0x97, +0x40, 0x91, 0x3F, 0x90, 0x21, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, +0x20, 0x6C, 0xAB, 0xF1, 0x1E, 0x4C, 0x07, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x00, 0x6B, 0x43, 0xF6, 0x68, 0xC2, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0x6A, 0x4C, 0xED, 0xFF, 0x75, 0x4C, 0xEC, +0xCC, 0xEA, 0x06, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0x71, 0xE4, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0x71, 0xE4, 0x63, 0xF3, 0x7C, 0xA4, 0xAC, 0xEA, +0xAF, 0xED, 0x6C, 0xED, 0xAD, 0xEA, 0x63, 0xF3, +0x5C, 0xC4, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xEC, +0xFF, 0x74, 0xAC, 0xEA, 0x05, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0xEE, 0xF3, 0x42, 0xC3, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0x63, 0xF3, 0xBA, 0xA3, 0x8C, 0xEA, 0x8F, 0xEC, +0xAC, 0xEC, 0x8D, 0xEA, 0x63, 0xF3, 0x5A, 0xC3, +0x20, 0xE8, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x01, 0xA4, 0x20, 0xA4, +0x0C, 0x20, 0x90, 0x67, 0xB1, 0x67, 0x00, 0x18, +0x93, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0x90, 0x67, 0xB1, 0x67, 0x53, 0x6E, +0x40, 0xEA, 0x7D, 0x67, 0x20, 0x6A, 0x50, 0xC3, +0x03, 0x6A, 0x4F, 0xCB, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF1, 0x5C, 0x9A, 0x9D, 0x67, 0x40, 0xA2, +0x52, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x63, 0xF3, 0x7A, 0xA2, 0x63, 0xF3, +0x5B, 0xA2, 0x73, 0xC4, 0x54, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, +0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xF7, 0x63, 0x11, 0x62, +0x10, 0xD1, 0x0F, 0xD0, 0x40, 0xA4, 0x08, 0xD2, +0x08, 0x93, 0x1F, 0x6A, 0x4C, 0xEB, 0x08, 0xD3, +0x42, 0xA4, 0x61, 0xA4, 0x0B, 0xD2, 0x43, 0xA4, +0x84, 0xA4, 0x09, 0xD4, 0x08, 0x94, 0x08, 0x5C, +0x44, 0x60, 0x84, 0x31, 0x09, 0x94, 0x01, 0x2C, +0x28, 0x22, 0xFF, 0x68, 0x0C, 0xEA, 0x0C, 0xEB, +0xA2, 0x67, 0xC3, 0x67, 0x91, 0x67, 0x0C, 0xD2, +0x0D, 0xD3, 0x00, 0x18, 0x86, 0xDB, 0x0B, 0x94, +0x09, 0x93, 0x41, 0x41, 0x0C, 0xEC, 0x0B, 0xD4, +0x0B, 0x96, 0x0C, 0xEA, 0x0C, 0xEB, 0x82, 0x67, +0xA3, 0x67, 0x30, 0xF0, 0x20, 0x68, 0x0A, 0xD2, +0x09, 0xD3, 0x00, 0x18, 0x86, 0xDB, 0x40, 0xF4, +0x40, 0x98, 0x0C, 0x95, 0x0D, 0x96, 0x91, 0x67, +0x01, 0x6F, 0x40, 0xEA, 0x40, 0xF4, 0x40, 0x98, +0x0A, 0x94, 0x09, 0x95, 0x0B, 0x96, 0x02, 0x6F, +0x40, 0xEA, 0x91, 0x67, 0x00, 0x18, 0x6D, 0xEC, +0x7D, 0x67, 0x53, 0xC3, 0x42, 0x32, 0x54, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x45, 0xE1, 0x63, 0xF3, 0x5C, 0xA1, 0x55, 0xC3, +0x63, 0xF3, 0x5D, 0xA1, 0x56, 0xC3, 0x83, 0xF3, +0x4C, 0xA1, 0x57, 0xC3, 0x83, 0xF3, 0x4D, 0xA1, +0x58, 0xC3, 0x9D, 0x67, 0x21, 0x6A, 0x72, 0xA4, +0x50, 0xC4, 0x07, 0x6A, 0x4F, 0xCC, 0x20, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x08, 0x93, 0x6D, 0xEA, +0x52, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x11, 0x97, +0x10, 0x91, 0x0F, 0x90, 0x09, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0x04, 0x67, +0x30, 0xF0, 0x20, 0x6C, 0x2B, 0xF1, 0x18, 0x4C, +0xB0, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x81, 0xA0, +0x00, 0x18, 0xEE, 0xCA, 0x82, 0xA0, 0x02, 0x24, +0x00, 0x18, 0xC0, 0xCA, 0x83, 0xA0, 0x02, 0x24, +0x00, 0x18, 0x01, 0xCB, 0x05, 0x97, 0x04, 0x90, +0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF6, +0x71, 0xC2, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x1A, 0x6A, 0x7D, 0x67, +0x50, 0xC3, 0x00, 0xF0, 0x12, 0x04, 0x07, 0x6A, +0x4F, 0xCB, 0x80, 0x18, 0x42, 0x75, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, +0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x19, 0x6A, 0x7D, 0x67, +0x50, 0xC3, 0x00, 0xF0, 0x12, 0x04, 0x08, 0x6A, +0x4F, 0xCB, 0x80, 0x18, 0x0B, 0x75, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, +0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, +0xFF, 0xF7, 0x1F, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x8C, 0xEA, 0x03, 0xF7, 0x78, 0x9B, 0x30, 0xF0, +0x20, 0x6C, 0x03, 0xF7, 0x9C, 0x9C, 0xCC, 0xEB, +0x40, 0xF6, 0xA0, 0x35, 0x8D, 0xEB, 0x1F, 0xF7, +0x00, 0x6C, 0x4C, 0xEC, 0x02, 0xF0, 0x00, 0x74, +0xAD, 0xEB, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, +0x20, 0x6C, 0xA3, 0xF0, 0x80, 0x9C, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF0, 0x84, 0x9C, +0x89, 0xE2, 0x60, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0x1F, 0xF7, +0x00, 0x6C, 0x4C, 0xEC, 0xFF, 0x6B, 0x02, 0xF0, +0x00, 0x74, 0xAC, 0xEB, 0x01, 0x60, 0x05, 0x2C, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF0, 0x80, 0x9C, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF0, +0x84, 0x9C, 0x91, 0xE2, 0x00, 0x6D, 0xA0, 0xDC, +0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF7, 0x98, 0x9C, +0xD4, 0x36, 0x40, 0xF6, 0x60, 0x33, 0x8C, 0xEE, +0x6D, 0xEE, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF7, +0x7C, 0x9B, 0x6D, 0xEE, 0x1F, 0xF7, 0x00, 0x6B, +0x4C, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, +0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, +0x60, 0x9B, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF0, 0x64, 0x9B, 0x69, 0xE2, 0xC0, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0x0F, 0xF5, 0x00, 0x6B, +0x78, 0xEE, 0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF7, 0x98, 0x9C, +0x40, 0xF6, 0xA0, 0x35, 0x12, 0xEB, 0x8C, 0xEB, +0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF7, 0x9C, 0x9C, +0xAD, 0xEB, 0x8D, 0xEB, 0x1F, 0xF7, 0x00, 0x6C, +0x4C, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, +0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF0, +0x80, 0x9C, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, +0xA3, 0xF0, 0x84, 0x9C, 0x89, 0xE2, 0x60, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF0, 0x48, 0x9A, 0x60, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF0, 0x4C, 0x9A, 0x40, 0x9A, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x8C, 0xEA, +0x01, 0x72, 0x06, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF0, 0x48, 0x9A, 0x40, 0x9A, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF0, 0x4C, 0x9A, +0x40, 0x9A, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF6, 0xC0, 0x9B, 0xFD, 0x63, 0xE2, 0xF6, +0x00, 0x4B, 0x02, 0xD6, 0xC1, 0x9B, 0x64, 0xAB, +0xFF, 0x6A, 0x03, 0xD6, 0xDD, 0x67, 0x68, 0xCE, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, 0xD8, 0x9B, +0xC2, 0xF6, 0x18, 0x4B, 0x64, 0xA3, 0x4C, 0xEC, +0x00, 0xD6, 0xDD, 0x67, 0x64, 0xC6, 0x8D, 0xE6, +0xE0, 0xA3, 0x84, 0x33, 0x6D, 0xE6, 0xC4, 0xAB, +0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xED, 0xCC, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x0C, 0x2B, +0x5D, 0x67, 0x84, 0x34, 0x91, 0xE2, 0x30, 0xF0, +0x20, 0x6A, 0x64, 0xAC, 0xA3, 0xF0, 0x40, 0x9A, +0x49, 0xE3, 0x60, 0xA2, 0xFF, 0x6A, 0x06, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, 0x64, 0x9B, +0x79, 0xE6, 0x60, 0xA6, 0xE4, 0xED, 0x6C, 0xEA, +0xA7, 0x67, 0x4C, 0xED, 0x00, 0x6B, 0x01, 0x25, +0x01, 0x6B, 0xFF, 0x6A, 0x6C, 0xEA, 0x03, 0x63, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0x8C, 0xE9, +0x00, 0x68, 0xFF, 0x6A, 0x0C, 0xEA, 0x2E, 0xEA, +0x10, 0x2A, 0x91, 0x67, 0x00, 0x18, 0x34, 0xE7, +0x91, 0x67, 0x00, 0x18, 0x23, 0xE7, 0x91, 0x67, +0x00, 0x18, 0x3B, 0xE7, 0x91, 0x67, 0x00, 0x18, +0x05, 0xE7, 0x91, 0x67, 0x00, 0x18, 0xFB, 0xE6, +0x0F, 0x10, 0x90, 0x67, 0x00, 0x18, 0x5A, 0xE7, +0x90, 0x67, 0x00, 0x18, 0x49, 0xE7, 0x90, 0x67, +0x00, 0x18, 0x61, 0xE7, 0x90, 0x67, 0x00, 0x18, +0x19, 0xE7, 0x90, 0x67, 0x00, 0x18, 0x0F, 0xE7, +0x01, 0x48, 0x05, 0x70, 0xDA, 0x61, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF7, 0x8C, 0x9A, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0xA0, 0x9C, 0x52, 0x9B, 0xAC, 0xEA, 0x53, 0xDB, +0x40, 0xDC, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0xD1, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, +0x28, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF7, +0x10, 0x4A, 0x40, 0x9A, 0x60, 0x99, 0x30, 0xF0, +0x20, 0x6C, 0xA0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF7, 0x54, 0x9A, 0x23, 0xF7, 0x18, 0x4C, +0x80, 0x9C, 0x00, 0x9A, 0x1A, 0x65, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0x9C, 0x23, 0xF7, 0x1C, 0x4A, +0x40, 0x9A, 0x01, 0xD4, 0x30, 0xF0, 0x20, 0x6C, +0x40, 0x9A, 0x6B, 0xF0, 0xE8, 0x9C, 0x00, 0xD2, +0x44, 0x67, 0x6B, 0xF0, 0x08, 0x4A, 0xC1, 0x9A, +0x83, 0x9A, 0x6C, 0xEF, 0xAC, 0xEE, 0x01, 0x93, +0xA2, 0x9A, 0xE8, 0xDA, 0x6C, 0xEC, 0x0C, 0xED, +0x64, 0x9A, 0x00, 0x90, 0x8B, 0xDA, 0xC9, 0xDA, +0x0C, 0xEB, 0xAA, 0xDA, 0x6C, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF7, 0x10, 0x4A, 0x40, 0x9A, +0xE0, 0xD9, 0x18, 0x67, 0xC0, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF7, 0x18, 0x4A, 0x40, 0x9A, +0xA0, 0xD8, 0x80, 0xDA, 0x30, 0xF0, 0x20, 0x6C, +0x23, 0xF7, 0x1C, 0x4C, 0x80, 0x9C, 0x60, 0xDC, +0x05, 0x91, 0x04, 0x90, 0x03, 0x63, 0x20, 0xE8, +0xFF, 0x63, 0x01, 0xD1, 0x00, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF1, 0x08, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF6, 0xEC, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF7, 0xC0, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x80, 0x98, +0xB4, 0x9A, 0x60, 0x9F, 0x20, 0x9E, 0x8C, 0xED, +0x95, 0x9A, 0xB7, 0xDA, 0x6C, 0xEC, 0x76, 0x9A, +0x98, 0xDA, 0x2C, 0xEB, 0x79, 0xDA, 0xA0, 0xD8, +0x80, 0xDF, 0x60, 0xDE, 0x01, 0x91, 0x00, 0x90, +0x01, 0x63, 0x20, 0xE8, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x48, 0x9A, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x2E, 0xF4, 0x7C, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0x06, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, +0x48, 0x9A, 0x07, 0x6C, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, 0x50, 0x9A, +0x40, 0xA2, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, +0x54, 0x9A, 0x40, 0xA2, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF7, 0x58, 0x9A, 0x40, 0xA2, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF6, 0x4C, 0x9A, 0x40, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, 0x5C, 0x9A, +0x40, 0xA2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF7, +0x40, 0x9A, 0x40, 0xA2, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF7, 0x44, 0x9A, 0x40, 0xA2, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF6, 0x50, 0x9A, 0x40, 0xA2, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xA0, 0xF0, 0x9A, 0xA2, +0x01, 0x6B, 0x8C, 0xEB, 0x0A, 0x23, 0xA3, 0xF3, +0x98, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x03, 0x6C, 0x8B, 0xEC, 0x8C, 0xEB, 0xA3, 0xF3, +0x78, 0xC2, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xA0, 0xF0, 0x9A, 0xA2, +0x01, 0x6B, 0x8C, 0xEB, 0x0A, 0x23, 0xA3, 0xF3, +0x98, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x03, 0x6C, 0x8B, 0xEC, 0x8C, 0xEB, 0xA3, 0xF3, +0x78, 0xC2, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xA0, 0xF0, 0x9A, 0xA2, +0x01, 0x6B, 0x8C, 0xEB, 0x0A, 0x23, 0xA3, 0xF3, +0x98, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x03, 0x6C, 0x8B, 0xEC, 0x8C, 0xEB, 0xA3, 0xF3, +0x78, 0xC2, 0x20, 0xE8, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x68, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF1, 0x98, 0x9C, +0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xA3, 0xF3, +0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, 0x60, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, 0xC0, 0xF0, +0x9F, 0xA0, 0x40, 0xEA, 0x01, 0x72, 0x2E, 0x61, +0xA0, 0xF0, 0x7B, 0xA0, 0x7F, 0x6A, 0x6C, 0xEA, +0x29, 0x22, 0x40, 0xF1, 0x76, 0xA0, 0x01, 0x6A, +0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x04, 0x22, +0x40, 0xF1, 0x57, 0xA0, 0x43, 0xF6, 0x48, 0xC0, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0x03, 0xF6, 0x4D, 0xA3, 0x01, 0x6C, 0x8E, 0xEA, +0x15, 0x2A, 0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF1, +0x90, 0x9C, 0x00, 0x6D, 0x40, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF1, 0x48, 0x9A, 0x02, 0x6C, +0x80, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x48, 0x9A, 0xC0, 0xF0, 0xC3, 0xA3, 0xFF, 0x6C, +0x55, 0x4C, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0x4C, 0xEC, 0x07, 0x6D, 0xB8, 0xEC, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0x01, 0x6E, 0x12, 0xEC, 0x71, 0xE4, 0x00, 0xF1, +0xBE, 0xA4, 0xCC, 0xED, 0x1D, 0x25, 0x00, 0xF1, +0xBF, 0xA4, 0x22, 0xF6, 0x70, 0x9B, 0x00, 0xF1, +0x9E, 0xA4, 0x75, 0xE5, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF1, 0x7C, 0x9B, 0xBC, 0x35, 0x21, 0x4D, +0x75, 0xE5, 0xE0, 0xA5, 0x9E, 0x33, 0x9A, 0x34, +0xCC, 0xEC, 0x78, 0x33, 0x9C, 0x34, 0x4C, 0xEF, +0x8D, 0xEB, 0xED, 0xEB, 0x00, 0xF6, 0x60, 0x33, +0x00, 0xF6, 0x63, 0x33, 0x4C, 0xEB, 0x60, 0xC5, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0xA0, 0xF0, 0xDA, 0xAB, 0x0F, 0xF7, 0x01, 0x6D, +0xFF, 0x6A, 0xCC, 0xED, 0x4C, 0xEC, 0x06, 0x2D, +0xA3, 0xF3, 0xBC, 0xA3, 0x01, 0x6B, 0xAC, 0xEB, +0x4C, 0xEB, 0x18, 0x23, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xA0, 0xF0, 0xBA, 0xA2, +0x01, 0x6B, 0x6C, 0xED, 0x06, 0x2D, 0xA3, 0xF3, +0x5C, 0xA2, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, +0x07, 0x22, 0x80, 0x18, 0x74, 0x6F, 0x01, 0x72, +0x05, 0x61, 0x80, 0x18, 0xC7, 0x70, 0x02, 0x10, +0x00, 0x18, 0x2B, 0xCF, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x30, 0xF0, +0x20, 0x68, 0x2C, 0xEC, 0x6B, 0xF0, 0x08, 0x48, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0xD4, 0x80, 0xF3, +0x5C, 0x9A, 0xC0, 0xF0, 0x9F, 0xA0, 0x40, 0xEA, +0x01, 0x72, 0x21, 0x61, 0xA0, 0xF0, 0x7B, 0xA0, +0x7F, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x1B, 0x22, +0x03, 0xF6, 0x61, 0xA0, 0x02, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x40, 0xF1, 0x76, 0xA0, 0x03, 0xF6, +0x41, 0xC0, 0x01, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, +0x04, 0x22, 0x40, 0xF1, 0x57, 0xA0, 0x43, 0xF6, +0x48, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x6E, 0xF6, +0x49, 0xA2, 0x07, 0x6B, 0x6C, 0xEA, 0x03, 0x2A, +0x04, 0x94, 0x00, 0x18, 0xEC, 0xCF, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x69, 0x30, 0xF0, 0x20, 0x68, 0x2C, 0xEC, +0x6B, 0xF0, 0x08, 0x48, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0xD4, 0x80, 0xF3, 0x5C, 0x9A, 0xC0, 0xF0, +0x9F, 0xA0, 0x40, 0xEA, 0x01, 0x72, 0x3A, 0x61, +0xA0, 0xF0, 0x7B, 0xA0, 0x7F, 0x6A, 0x6C, 0xEA, +0x2C, 0xEA, 0x34, 0x22, 0x40, 0xF1, 0x76, 0xA0, +0x01, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x04, 0x22, +0x40, 0xF1, 0x57, 0xA0, 0x43, 0xF6, 0x48, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x6E, 0xF6, 0x55, 0xA2, +0x01, 0x6B, 0x6E, 0xEA, 0x0B, 0x2A, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF1, 0x70, 0x9B, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x48, 0x9A, +0x02, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xE3, 0xF5, 0x9C, 0xA2, +0x03, 0x6B, 0x6B, 0xEB, 0x6C, 0xEC, 0xE3, 0xF5, +0x9C, 0xC2, 0x03, 0xF6, 0x81, 0xA2, 0x8C, 0xEB, +0x03, 0xF6, 0x61, 0xC2, 0x03, 0xF6, 0x41, 0xA2, +0x07, 0x6B, 0x6C, 0xEA, 0x03, 0x2A, 0x04, 0x94, +0x00, 0x18, 0xEC, 0xCF, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, +0xE3, 0xF5, 0x7D, 0xA0, 0x02, 0x6A, 0xFF, 0x69, +0x6C, 0xEA, 0x2C, 0xEC, 0x2C, 0xEA, 0x04, 0xD4, +0x23, 0x22, 0x03, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xE3, 0xF5, 0x5D, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF4, 0x44, 0x9A, 0x01, 0x6D, 0x40, 0xEA, +0xE3, 0xF5, 0x9D, 0xA0, 0x01, 0x6B, 0x4C, 0xEB, +0x09, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, 0xA0, 0xF0, +0x9B, 0xA0, 0x6C, 0x33, 0x6D, 0xEA, 0x7F, 0x6B, +0x8C, 0xEB, 0x2C, 0xEB, 0xE3, 0xF5, 0x5D, 0xC0, +0x07, 0x23, 0x08, 0x6B, 0x4C, 0xEB, 0x2C, 0xEB, +0x03, 0x23, 0x04, 0x94, 0x00, 0x18, 0xEC, 0xCF, +0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, +0xE0, 0xF0, 0x7A, 0xA0, 0x11, 0x6A, 0xFF, 0x69, +0x6C, 0xEA, 0x11, 0x72, 0x26, 0x61, 0x64, 0xF5, +0x78, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, +0x20, 0x22, 0x03, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x64, 0xF5, 0x58, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0x94, 0x40, 0xF4, 0x44, 0x9A, 0x01, 0x6D, +0x40, 0xEA, 0x64, 0xF5, 0x98, 0xA0, 0x01, 0x6B, +0x4C, 0xEB, 0x05, 0x6A, 0x4B, 0xEA, 0x68, 0x33, +0x8C, 0xEA, 0x6D, 0xEA, 0x04, 0x6B, 0x4C, 0xEB, +0x2C, 0xEB, 0x64, 0xF5, 0x58, 0xC0, 0x05, 0x23, +0x84, 0xF5, 0x5E, 0xA0, 0x01, 0x4A, 0x84, 0xF5, +0x5E, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, +0x50, 0x9A, 0x04, 0x94, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x69, 0x30, 0xF0, 0x20, 0x68, 0x2C, 0xEC, +0x6B, 0xF0, 0x08, 0x48, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0xD4, 0x80, 0xF3, 0x5C, 0x9A, 0xC0, 0xF0, +0x9F, 0xA0, 0x40, 0xEA, 0x01, 0x72, 0x34, 0x61, +0xA0, 0xF0, 0x7B, 0xA0, 0x7F, 0x6A, 0x6C, 0xEA, +0x2C, 0xEA, 0x2E, 0x22, 0x40, 0xF1, 0x76, 0xA0, +0x01, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x04, 0x22, +0x40, 0xF1, 0x57, 0xA0, 0x43, 0xF6, 0x48, 0xC0, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0xA0, 0xF0, 0x9C, 0xA3, 0x10, 0x6A, 0x4B, 0xEA, +0x8C, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, 0x20, 0x72, +0x0C, 0x60, 0xA0, 0xF0, 0x7B, 0xA3, 0x7F, 0x6A, +0x6C, 0xEA, 0x01, 0x72, 0x06, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x60, 0xF4, 0x40, 0x9A, 0x40, 0xEA, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x63, 0xA2, 0x7F, 0x6A, 0x6C, 0xEA, 0x02, 0x72, +0x03, 0x60, 0x04, 0x94, 0x00, 0x18, 0xAC, 0xCF, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, 0x7E, 0xA2, +0x07, 0x6A, 0x6C, 0xEA, 0x04, 0x93, 0x6E, 0xEA, +0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF5, +0x48, 0x9A, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, 0xE0, 0xF0, +0xB3, 0xA3, 0x04, 0x67, 0x01, 0x6C, 0xFF, 0x6A, +0xAC, 0xEC, 0x4C, 0xEC, 0x4C, 0xE8, 0x13, 0x24, +0xA6, 0x32, 0x07, 0x6C, 0x8C, 0xEA, 0x0E, 0xEA, +0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF0, +0x48, 0x9A, 0x40, 0x9A, 0x87, 0xF3, 0x54, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF0, 0x4C, 0x9A, +0x40, 0x9A, 0x87, 0xF3, 0x50, 0xDB, 0x90, 0x67, +0x00, 0x18, 0x9D, 0xC6, 0x7B, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xA0, 0xF0, +0x9A, 0xA2, 0x01, 0x6B, 0x6C, 0xEC, 0x06, 0x2C, +0xA3, 0xF3, 0x5C, 0xA2, 0x6C, 0xEA, 0xFF, 0x6B, +0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x2E, 0xF4, 0x42, 0xA2, 0x02, 0x72, 0x23, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA0, 0xF0, 0x9A, 0xAA, 0x0F, 0xF7, 0x01, 0x6B, +0x8C, 0xEB, 0x05, 0x2B, 0xA3, 0xF3, 0x7C, 0xA2, +0x01, 0x6A, 0x6C, 0xEA, 0x09, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x6E, 0xF6, 0x47, 0xA2, 0x02, 0x72, +0x0E, 0x60, 0x90, 0x67, 0x00, 0x18, 0x9E, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, 0x7E, 0xA2, +0x07, 0x6A, 0x6C, 0xEA, 0x0E, 0xEA, 0x03, 0x2A, +0x90, 0x67, 0x80, 0x18, 0xA2, 0x5E, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xE0, 0xF0, +0xA5, 0xA2, 0x01, 0x6C, 0xFF, 0x6B, 0xAC, 0xEC, +0x39, 0x24, 0xB6, 0x34, 0x8E, 0xE8, 0x36, 0x28, +0xE0, 0xF0, 0xA8, 0xA2, 0xE0, 0xF0, 0xC7, 0xA2, +0x7F, 0x6C, 0x8C, 0xED, 0x8C, 0xEE, 0xE0, 0xF0, +0x88, 0xA2, 0x6C, 0xED, 0x6C, 0xEE, 0x9E, 0x34, +0x6C, 0xEC, 0x05, 0x2C, 0xB4, 0x35, 0xD0, 0x4D, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xED, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xE0, 0xF0, +0xE6, 0xA2, 0x7F, 0x6B, 0xEC, 0xEB, 0x87, 0xF3, +0x67, 0xC2, 0xE0, 0xF0, 0x65, 0xA2, 0x01, 0x6F, +0x66, 0x30, 0xEC, 0xE8, 0x87, 0xF3, 0x08, 0xC2, +0xE0, 0xF0, 0x07, 0xA2, 0x1E, 0x30, 0x87, 0xF3, +0x0B, 0xC2, 0x6A, 0x30, 0x6E, 0x33, 0xEC, 0xEB, +0xEC, 0xE8, 0x87, 0xF3, 0x6A, 0xC2, 0x00, 0x6B, +0x87, 0xF3, 0x09, 0xC2, 0x87, 0xF3, 0x6C, 0xC2, +0x80, 0x18, 0x9A, 0x26, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xF8, 0x63, 0x0F, 0x62, +0x0E, 0xD1, 0x0D, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, +0x30, 0xF0, 0x20, 0x6B, 0x0A, 0xD4, 0x6B, 0xF0, +0x08, 0x4B, 0xE0, 0xF0, 0xB3, 0xA3, 0x10, 0x6C, +0xAC, 0xEC, 0x4C, 0xEC, 0x28, 0x24, 0x0A, 0x94, +0xB6, 0x32, 0x8E, 0xEA, 0x24, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF7, 0x94, 0x9A, 0x8F, 0x6A, +0xA0, 0xA4, 0xAC, 0xEA, 0x40, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF0, 0x48, 0x9A, 0x40, 0x9A, +0x87, 0xF3, 0x5C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF0, 0x4C, 0x9A, 0x40, 0x9A, 0x87, 0xF3, +0x58, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, +0x4C, 0x9A, 0x40, 0x9A, 0xA7, 0xF3, 0x44, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, 0x50, 0x9A, +0x40, 0x9A, 0xA7, 0xF3, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, 0xE0, 0xF0, +0x6C, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, 0x69, 0x22, +0x76, 0x32, 0x0A, 0x93, 0x6E, 0xEA, 0x65, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, 0x50, 0x9A, +0x9D, 0x67, 0x30, 0xF0, 0x20, 0x69, 0x40, 0x9A, +0x05, 0x05, 0x04, 0x6E, 0x05, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF6, 0x4C, 0x9A, 0x40, 0x9A, +0x04, 0xD2, 0x2D, 0x6A, 0x58, 0xC4, 0x09, 0x6A, +0x53, 0xCC, 0x80, 0xF2, 0x4C, 0x99, 0x00, 0xF0, +0x1A, 0x04, 0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x99, +0x04, 0x05, 0x04, 0x6E, 0x00, 0xF0, 0x1E, 0x04, +0x40, 0xEA, 0x5D, 0x67, 0x67, 0x42, 0x21, 0x4B, +0x60, 0xA3, 0x06, 0x04, 0x20, 0xF0, 0x62, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, +0x40, 0xEA, 0xE0, 0xF0, 0xAF, 0xA0, 0xE0, 0xF0, +0xCE, 0xA0, 0x7F, 0x6A, 0xFF, 0x6C, 0x4C, 0xED, +0x4C, 0xEE, 0x8C, 0xED, 0x8C, 0xEE, 0xE0, 0xF0, +0x8F, 0xA0, 0xFF, 0x6A, 0x9E, 0x34, 0x4C, 0xEC, +0x05, 0x2C, 0xB4, 0x35, 0xD0, 0x4D, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xE0, 0xF0, 0xED, 0xA2, +0x7F, 0x6B, 0xEC, 0xEB, 0x87, 0xF3, 0x67, 0xC2, +0xE0, 0xF0, 0x6C, 0xA2, 0x01, 0x6F, 0x66, 0x30, +0xEC, 0xE8, 0x87, 0xF3, 0x08, 0xC2, 0xE0, 0xF0, +0x0E, 0xA2, 0x1E, 0x30, 0x87, 0xF3, 0x0B, 0xC2, +0x6A, 0x30, 0x6E, 0x33, 0xEC, 0xEB, 0xEC, 0xE8, +0x87, 0xF3, 0x6A, 0xC2, 0x00, 0x6B, 0x87, 0xF3, +0x09, 0xC2, 0x87, 0xF3, 0x6C, 0xC2, 0x80, 0x18, +0x9A, 0x26, 0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, +0x08, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0x0B, 0x21, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0x6B, 0xF0, 0x08, 0x48, 0xE3, 0xF5, 0x7D, 0xA0, +0xFF, 0x69, 0x01, 0x6A, 0x8C, 0xE9, 0x6C, 0xEA, +0xFF, 0x6C, 0x8C, 0xEA, 0x2E, 0x22, 0x02, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xE3, 0xF5, 0x5D, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x44, 0x9A, +0x91, 0x67, 0x00, 0x6D, 0x40, 0xEA, 0xE3, 0xF5, +0x9D, 0xA0, 0x01, 0x6B, 0x6C, 0xEA, 0xFA, 0x4B, +0x48, 0x32, 0x8C, 0xEB, 0x4D, 0xEB, 0x04, 0x6A, +0x6C, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, 0xE3, 0xF5, +0x7D, 0xC0, 0x09, 0x22, 0x91, 0x67, 0x00, 0x18, +0xEC, 0xCF, 0x63, 0xF6, 0x5B, 0xA0, 0x0D, 0x22, +0x00, 0x6C, 0xA4, 0x67, 0x08, 0x10, 0x63, 0xF6, +0x5B, 0xA0, 0x07, 0x22, 0x91, 0x67, 0x00, 0x18, +0xEC, 0xCF, 0x00, 0x6C, 0x01, 0x6D, 0x00, 0x18, +0x3E, 0xC8, 0x91, 0x67, 0x80, 0x18, 0xEB, 0x6B, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x62, 0xA2, +0x01, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x80, 0x18, +0xED, 0x40, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x62, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0x02, 0x22, 0x80, 0x18, 0xED, 0x40, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x62, 0xA2, +0x01, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x80, 0x18, +0xED, 0x40, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x62, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0x02, 0x22, 0x80, 0x18, 0x04, 0x41, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x62, 0xA2, +0x01, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x80, 0x18, +0x04, 0x41, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x62, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0x02, 0x22, 0x80, 0x18, 0x04, 0x41, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x00, 0x18, 0x80, 0xE0, 0x02, 0x67, +0x01, 0x6A, 0x0C, 0xEA, 0x11, 0x22, 0x00, 0x6C, +0x01, 0x6D, 0x00, 0x18, 0xB3, 0xC5, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF7, 0x48, 0x9A, 0xFF, 0x6C, +0x01, 0x4C, 0x60, 0x9A, 0x8C, 0xEB, 0x08, 0x23, +0x60, 0x9A, 0x8D, 0xEB, 0x60, 0xDA, 0x04, 0x10, +0x00, 0x6C, 0xA4, 0x67, 0x00, 0x18, 0xB3, 0xC5, +0x40, 0x6A, 0x0C, 0xEA, 0x1B, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF7, 0x4C, 0x9A, 0x60, 0xA2, +0x00, 0xF6, 0x60, 0x33, 0x00, 0xF6, 0x63, 0x33, +0x00, 0x53, 0x00, 0x6B, 0x02, 0x61, 0x80, 0x6B, +0x6B, 0xEB, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x40, 0xF1, 0x96, 0xA2, +0x01, 0x6B, 0x8C, 0xEB, 0x03, 0x23, 0x00, 0x6B, +0x43, 0xF6, 0x68, 0xC2, 0x10, 0x6B, 0x0C, 0xEB, +0x09, 0x23, 0x30, 0xF0, 0x20, 0x6A, 0x01, 0x6B, +0x6B, 0xF0, 0x08, 0x4A, 0x83, 0xF6, 0x68, 0xC2, +0x07, 0x6B, 0x07, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x83, 0xF6, 0x68, 0xC2, +0x04, 0x6B, 0x03, 0xF6, 0x70, 0xCA, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF6, 0x90, 0xA2, 0xC3, 0xF0, +0x60, 0x9B, 0xFF, 0x6D, 0x08, 0x6E, 0x80, 0xC3, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0x9C, 0x9B, +0xCB, 0xEE, 0x60, 0xA4, 0xAC, 0xEB, 0xCC, 0xEB, +0x06, 0x6E, 0xCD, 0xEB, 0xAC, 0xEB, 0x60, 0xC4, +0x83, 0xF6, 0xA8, 0xA2, 0x30, 0xF0, 0x20, 0x6C, +0x6E, 0xF6, 0x16, 0x4C, 0x00, 0x18, 0x94, 0xEB, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x2F, 0xF6, 0x60, 0xA2, 0x02, 0x6A, 0x6C, 0xEA, +0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, 0x1A, 0xE6, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x4B, 0xC1, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0x6A, 0x29, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, +0xA0, 0xF0, 0x7B, 0xA0, 0x7F, 0x6A, 0xFF, 0x69, +0x6C, 0xEA, 0x1E, 0x22, 0xA0, 0xF0, 0x9E, 0xA0, +0x96, 0x34, 0x2C, 0xEC, 0x00, 0x18, 0xCE, 0xE0, +0x02, 0x6B, 0x4C, 0xEB, 0x2C, 0xEB, 0x07, 0x23, +0xA0, 0xF0, 0x9E, 0xA0, 0x96, 0x34, 0x2C, 0xEC, +0x00, 0x18, 0x73, 0xCD, 0x0D, 0x10, 0xA0, 0xF0, +0x9E, 0xA0, 0xE3, 0xF5, 0x7C, 0xA0, 0x05, 0x6A, +0x4B, 0xEA, 0x96, 0x34, 0x6C, 0xEA, 0x2C, 0xEC, +0xE3, 0xF5, 0x5C, 0xC0, 0x00, 0x18, 0xEC, 0xCF, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA0, 0xF0, 0x9B, 0xA2, 0x7F, 0x6B, 0x8C, 0xEB, +0x07, 0x23, 0xA0, 0xF0, 0x9E, 0xA2, 0xFF, 0x6A, +0x96, 0x34, 0x4C, 0xEC, 0x00, 0x18, 0xFE, 0xCF, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x69, 0x04, 0x67, 0x2C, 0xE8, 0x90, 0x67, +0x80, 0x18, 0x21, 0x27, 0x06, 0x70, 0x0A, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF7, 0x70, 0x9A, +0x01, 0x6C, 0x40, 0xA3, 0x2C, 0xEA, 0x8D, 0xEA, +0x2C, 0xEA, 0x40, 0xC3, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0x8B, 0xF1, 0xA5, 0xA3, 0x01, 0x6B, 0xFF, 0x6A, +0xAC, 0xEB, 0x4C, 0xEB, 0x4C, 0xEC, 0x02, 0x23, +0x80, 0x18, 0x13, 0x00, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF4, +0x45, 0xA2, 0xFF, 0x68, 0x8C, 0xE8, 0x0E, 0xEA, +0x02, 0x2A, 0x80, 0x18, 0x09, 0x71, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x46, 0xA2, 0x56, 0x32, +0x0E, 0xEA, 0x06, 0x2A, 0x90, 0x67, 0x00, 0x18, +0x84, 0xCF, 0x00, 0x6C, 0x00, 0x18, 0x8F, 0xC6, +0x90, 0x67, 0x00, 0x18, 0xE0, 0xD7, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF1, 0x7E, 0xA2, 0x07, 0x6A, +0x6C, 0xEA, 0x0E, 0xEA, 0x02, 0x2A, 0x80, 0x18, +0xB6, 0x5F, 0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, +0xDB, 0xCE, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF1, +0x65, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, 0x03, 0x22, +0x90, 0x67, 0x80, 0x18, 0x13, 0x00, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xB9, 0x29, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xE0, 0xF0, 0x9A, 0xA2, +0x01, 0x6B, 0x6C, 0xEC, 0x08, 0x24, 0xA4, 0xF5, +0x43, 0xA2, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, +0x02, 0x2A, 0x80, 0x18, 0x8B, 0x5E, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0xD3, 0xD4, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0xD0, 0xD4, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0x35, 0x22, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0x7F, 0x21, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0xB2, 0x20, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF1, 0xA5, 0xA3, +0x01, 0x6B, 0xFF, 0x6A, 0xAC, 0xEB, 0x4C, 0xEB, +0x4C, 0xEC, 0x02, 0x23, 0x80, 0x18, 0x5D, 0x00, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0x00, 0x18, 0x03, 0xE0, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF1, +0x7E, 0xA2, 0xFF, 0x68, 0x07, 0x6A, 0x8C, 0xE8, +0x6C, 0xEA, 0x0E, 0xEA, 0x02, 0x2A, 0x80, 0x18, +0xFF, 0x5F, 0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF4, +0x45, 0xA2, 0x0E, 0xEA, 0x02, 0x2A, 0x80, 0x18, +0xB7, 0x70, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xA0, 0xF0, 0x7E, 0xA2, 0xFF, 0x6C, +0x76, 0x33, 0x0E, 0xEB, 0x0F, 0x2B, 0xA0, 0xF0, +0xBB, 0xA2, 0x7F, 0x6B, 0xAC, 0xEB, 0x8C, 0xEB, +0x09, 0x23, 0xE3, 0xF5, 0x7C, 0xA2, 0x40, 0x6A, +0x6C, 0xEA, 0x8C, 0xEA, 0x03, 0x22, 0x90, 0x67, +0x00, 0x18, 0x5A, 0xE7, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xA4, 0xF5, 0x79, 0xA2, +0x0E, 0xEB, 0x11, 0x2B, 0xA4, 0xF5, 0x78, 0xA2, +0x1F, 0x6C, 0x6A, 0x32, 0x8C, 0xEA, 0x47, 0xE8, +0x01, 0x6C, 0x8C, 0xEA, 0x08, 0x22, 0x02, 0x6A, +0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x00, 0x6C, 0x00, 0x18, 0x1A, 0xE6, 0x30, 0xF0, +0x20, 0x6A, 0x4E, 0xF4, 0x68, 0xA2, 0x0F, 0x6A, +0x6C, 0xEA, 0x0E, 0xEA, 0x06, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF5, 0x50, 0x9A, 0x90, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF1, +0x65, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, 0x03, 0x22, +0x90, 0x67, 0x80, 0x18, 0x5D, 0x00, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0x00, 0x18, 0x11, 0xE0, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x7C, 0x9B, +0xFF, 0x6A, 0x4C, 0xEE, 0x6D, 0xE4, 0x08, 0x68, +0x80, 0xA3, 0xDB, 0xE0, 0x02, 0x67, 0x4C, 0xED, +0x07, 0xEE, 0xD0, 0x67, 0x4C, 0xEF, 0x04, 0xED, +0x4C, 0xEC, 0xCC, 0xEF, 0x0F, 0xE8, 0x8C, 0xE8, +0xE4, 0xED, 0xED, 0xE8, 0x4C, 0xE8, 0x00, 0xC3, +0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, 0x5C, 0x9A, +0xFF, 0xF7, 0x1F, 0x6B, 0x8C, 0xEB, 0x4D, 0xE3, +0x40, 0xA3, 0xFF, 0x6C, 0x8C, 0xEE, 0x08, 0x6B, +0xDB, 0xE3, 0x8C, 0xED, 0x8C, 0xEA, 0x64, 0x67, +0x47, 0xED, 0x67, 0xEE, 0x6C, 0xEA, 0x8C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, +0x70, 0x9B, 0x10, 0xF0, 0x24, 0x6A, 0x90, 0xF1, +0x0D, 0x4A, 0x40, 0xDB, 0x00, 0x68, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF7, 0x44, 0x9A, 0x40, 0x9A, +0x21, 0x22, 0xE0, 0xF3, 0x09, 0x70, 0x13, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x68, 0x9A, +0x20, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x60, 0xDA, 0x00, 0x6A, 0x0C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x32, 0x6C, +0x01, 0x48, 0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE8, 0xD9, 0x17, 0x01, 0x6A, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0x70, 0x9B, +0x10, 0xF0, 0x24, 0x6A, 0x10, 0xF2, 0x01, 0x4A, +0x40, 0xDB, 0x00, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF7, 0xA8, 0x9A, 0xFF, 0x6C, 0x40, 0xA5, +0xA0, 0xA5, 0x8C, 0xEA, 0xAC, 0xEC, 0x4E, 0xEC, +0x19, 0x24, 0x64, 0x73, 0x12, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF1, 0x88, 0x9B, 0x40, 0x6D, +0x60, 0x9C, 0xAD, 0xEB, 0x60, 0xDC, 0x30, 0xF0, +0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, 0xA3, 0xF3, +0x80, 0x9B, 0xAD, 0xEC, 0xA3, 0xF3, 0x80, 0xDB, +0x20, 0xE8, 0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xEB, 0xDC, 0x17, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x69, 0x8C, 0xE9, 0x00, 0x68, 0x2B, 0x10, +0x82, 0xF3, 0x08, 0x70, 0x12, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x68, 0x9A, 0x10, 0x6C, +0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xA3, 0xF3, +0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, 0x60, 0xDA, +0x14, 0x10, 0xFF, 0xF7, 0x1F, 0x6A, 0x01, 0x48, +0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x14, 0x6C, 0x40, 0xEA, 0x33, 0x58, +0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, +0x50, 0x9A, 0x01, 0x6B, 0x40, 0xA2, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x6A, 0x0C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF7, 0x4C, 0x9A, 0x01, 0x6B, +0x40, 0x9A, 0x42, 0x32, 0x5E, 0x32, 0x6C, 0xEA, +0x2E, 0xEA, 0xCA, 0x2A, 0x43, 0x67, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0x70, 0x9B, +0x10, 0xF0, 0x24, 0x6A, 0xF0, 0xF2, 0x09, 0x4A, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF7, +0x50, 0x9A, 0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0xF8, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, +0x70, 0x9B, 0x10, 0xF0, 0x24, 0x6A, 0xF0, 0xF2, +0x0A, 0x4A, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0x4C, 0xEC, 0x94, 0x34, 0x4C, 0xED, +0x4C, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF7, +0x54, 0x9A, 0x80, 0xC2, 0xA0, 0xC2, 0x20, 0xE8, +0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF7, +0x74, 0x9B, 0x4C, 0xEC, 0x94, 0x34, 0x4C, 0xEC, +0x80, 0xC3, 0x60, 0xA3, 0x6C, 0xEA, 0x20, 0xE8, +0xFF, 0x6A, 0x4C, 0xED, 0xFF, 0x75, 0x4C, 0xEC, +0xCC, 0xEA, 0x06, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0x71, 0xE4, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0x71, 0xE4, 0x83, 0xF3, 0x6C, 0xA4, 0xAC, 0xEA, +0xAF, 0xED, 0x6C, 0xED, 0xAD, 0xEA, 0x83, 0xF3, +0x4C, 0xC4, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x6B, 0x6C, 0xEC, 0x07, 0x6A, +0x6C, 0xED, 0x8C, 0xEA, 0x01, 0x68, 0xE6, 0x67, +0x04, 0xEA, 0xAB, 0xEE, 0x30, 0xF0, 0x20, 0x6A, +0xAD, 0xEE, 0x40, 0xF4, 0x40, 0x9A, 0x6C, 0xE8, +0xC0, 0xF7, 0xC3, 0x36, 0x8E, 0x34, 0x6C, 0xEF, +0xB0, 0x67, 0x0C, 0xEE, 0x6C, 0xEC, 0x40, 0xEA, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x00, 0x18, 0xBA, 0xE0, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF2, 0x64, 0x9A, 0xEF, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x00, 0x6C, 0x00, 0x18, +0x98, 0xE0, 0x00, 0x18, 0x20, 0xC8, 0x2B, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x71, 0xA2, +0x08, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, +0x22, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF7, +0x78, 0x9A, 0x7F, 0xF7, 0x1F, 0x6A, 0x30, 0xF0, +0x20, 0x68, 0x80, 0xAB, 0x07, 0x69, 0x8C, 0xEA, +0x40, 0xCB, 0x80, 0xF3, 0x4C, 0x98, 0x0A, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, +0x40, 0x9A, 0x0A, 0x6C, 0x20, 0xC2, 0x80, 0xF3, +0x4C, 0x98, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF4, 0x50, 0x9A, 0x0A, 0x6C, 0x20, 0xC2, +0x80, 0xF3, 0x4C, 0x98, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xE3, 0xF5, +0x9C, 0xA2, 0x7F, 0x6B, 0x8C, 0xEB, 0xE3, 0xF5, +0x7C, 0xC2, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0x6B, 0xF0, 0x08, 0x48, 0xE3, 0xF5, 0x7C, 0xA0, +0x80, 0x6A, 0x4B, 0xEA, 0x6D, 0xEA, 0x83, 0xF6, +0x68, 0xA0, 0xE3, 0xF5, 0x5C, 0xC0, 0x01, 0x6A, +0x44, 0xF5, 0x42, 0xC0, 0x04, 0xD3, 0x80, 0xF0, +0x01, 0x23, 0x02, 0x6A, 0x03, 0xF6, 0x40, 0xC0, +0x5C, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x7D, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x30, 0xF0, 0x21, 0x6C, 0xFC, 0xF7, 0x18, 0x4C, +0xBF, 0x67, 0xA0, 0xDC, 0x9A, 0xB8, 0x00, 0x65, +0xBB, 0xB8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x70, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x63, 0xF1, 0x94, 0x9C, 0x40, 0x9B, 0x10, 0x6D, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF0, 0x54, 0x9A, 0x04, 0x6B, 0xFF, 0x6C, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x00, 0x6B, 0x22, 0xF6, 0x76, 0xC2, +0x03, 0xF6, 0x6E, 0xAA, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF7, 0x5C, 0x9A, 0x60, 0xCA, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF2, 0x64, 0x9A, 0x40, 0xA3, +0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, +0x01, 0x6C, 0x00, 0x18, 0x98, 0xE0, 0xA0, 0xF0, +0x0D, 0x22, 0x58, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x79, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x30, 0xF0, 0x21, 0x69, 0xDC, 0xF7, +0x0C, 0x49, 0x12, 0xE8, 0x00, 0xD9, 0x10, 0xE8, +0x01, 0xD9, 0x42, 0xD9, 0x63, 0xD9, 0x84, 0xD9, +0xA5, 0xD9, 0xC6, 0xD9, 0xE7, 0xD9, 0x18, 0x67, +0x08, 0xD9, 0x1A, 0xB8, 0x00, 0x65, 0x09, 0xD9, +0x30, 0xF0, 0x21, 0x68, 0xDC, 0xF7, 0x0C, 0x48, +0x3B, 0xB8, 0x00, 0x65, 0x2A, 0xD8, 0x1A, 0xB8, +0x00, 0x65, 0x58, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x79, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x77, 0xF0, 0x20, 0x68, 0x80, 0xF0, +0x10, 0x48, 0x00, 0x98, 0x01, 0x69, 0x2D, 0xE8, +0x77, 0xF0, 0x20, 0x69, 0x80, 0xF0, 0x10, 0x49, +0x00, 0xD9, 0x1A, 0xB8, 0x00, 0x65, 0x3B, 0xB8, +0x00, 0x65, 0x47, 0x10, 0x03, 0xF6, 0x40, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF6, 0x6E, 0xA8, +0x83, 0xF7, 0x5C, 0x9A, 0x60, 0xCA, 0x00, 0x18, +0x20, 0xC8, 0x23, 0x22, 0xC0, 0xF0, 0x69, 0xA0, +0x08, 0x6A, 0x6C, 0xEA, 0x1E, 0x22, 0x9D, 0x67, +0x67, 0x44, 0x09, 0x4B, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xA3, 0x23, 0xF3, 0x40, 0x9A, 0x7D, 0x67, +0x80, 0x6D, 0x80, 0xC2, 0x87, 0x43, 0x09, 0x4C, +0x30, 0xF0, 0x20, 0x6A, 0x60, 0xA4, 0x43, 0xF4, +0x50, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF7, 0x78, 0x9A, +0x40, 0xAB, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, +0x64, 0x9A, 0xFF, 0x68, 0x10, 0x6C, 0x40, 0xA3, +0x0C, 0xEA, 0x8D, 0xEA, 0x0C, 0xEA, 0x40, 0xC3, +0x01, 0x6C, 0x00, 0x18, 0x98, 0xE0, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF7, 0x70, 0x9A, 0x01, 0x6C, +0x40, 0xA3, 0x0C, 0xEA, 0x8D, 0xEA, 0x0C, 0xEA, +0x40, 0xC3, 0x20, 0xBA, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x9F, 0xE7, 0x01, 0x4F, 0x00, 0xF1, 0x00, 0x5F, +0x64, 0x67, 0x05, 0x67, 0x0E, 0xD6, 0x06, 0xD7, +0x1A, 0x61, 0xC7, 0x45, 0x0E, 0x95, 0x00, 0x6A, +0x04, 0xD2, 0x6D, 0xED, 0x30, 0xF0, 0x20, 0x6B, +0x05, 0xD2, 0xA3, 0xF7, 0x60, 0x9B, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF2, 0x58, 0x9A, 0x05, 0x4E, +0xFF, 0x6F, 0x00, 0x6C, 0x6C, 0xEE, 0x01, 0x4F, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, +0x5C, 0x9A, 0x00, 0x6C, 0x2C, 0x10, 0x47, 0x45, +0x05, 0x4A, 0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF7, 0x40, 0x9A, 0x07, 0x94, 0x30, 0xF0, +0x20, 0x6F, 0x0E, 0x95, 0x4C, 0xEC, 0x07, 0xD4, +0xE0, 0xF2, 0x58, 0x9F, 0x07, 0x96, 0x06, 0x97, +0x00, 0x69, 0x6D, 0xED, 0x91, 0x67, 0x04, 0xD1, +0x05, 0xD1, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x06, 0x97, 0xE0, 0xF2, 0x58, 0x9B, 0x07, 0x93, +0x0E, 0x95, 0x91, 0x67, 0x79, 0xE7, 0x06, 0x93, +0xFF, 0x6F, 0x01, 0x4F, 0x04, 0xD1, 0x05, 0xD1, +0x7F, 0xE7, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF2, 0x5C, 0x9A, 0x91, 0x67, 0x40, 0xEA, +0x67, 0x40, 0x05, 0x4B, 0x62, 0x32, 0x41, 0xC0, +0x42, 0x32, 0x42, 0xC0, 0x00, 0xF6, 0x62, 0x32, +0x43, 0xC0, 0x47, 0x40, 0x1D, 0x4A, 0x00, 0xF1, +0x4C, 0xC0, 0x42, 0x34, 0x00, 0xF6, 0x42, 0x32, +0x60, 0xC0, 0x00, 0xF1, 0x8D, 0xC0, 0x00, 0xF1, +0x4F, 0xC0, 0x82, 0x34, 0x41, 0xA0, 0x00, 0xF1, +0x8E, 0xC0, 0x80, 0xA0, 0x40, 0x32, 0x0F, 0x6D, +0x8D, 0xEA, 0x82, 0xA0, 0x03, 0x6E, 0x0A, 0x91, +0x80, 0x34, 0x80, 0x34, 0x4D, 0xEC, 0x43, 0xA0, +0x00, 0xF6, 0x40, 0x32, 0x8D, 0xEA, 0xE2, 0xA2, +0x83, 0xA2, 0xAC, 0xEF, 0x03, 0x4F, 0xEC, 0x37, +0xCC, 0xEC, 0x91, 0xE7, 0x71, 0xE4, 0x82, 0x37, +0x84, 0xC0, 0xE5, 0xC0, 0x00, 0xF6, 0x82, 0x34, +0xE2, 0x37, 0xE6, 0xC0, 0x87, 0xC0, 0xE3, 0xA2, +0x8A, 0xA2, 0x42, 0xA2, 0xEC, 0xEE, 0x8A, 0x34, +0x4C, 0xED, 0x03, 0x4D, 0xD9, 0xE4, 0xAC, 0x35, +0xB9, 0xE6, 0x6D, 0xE6, 0x62, 0x32, 0x00, 0xF1, +0x70, 0xC0, 0x00, 0xF1, 0x51, 0xC0, 0x00, 0xF6, +0x62, 0x33, 0x42, 0x32, 0x00, 0xF1, 0x52, 0xC0, +0x00, 0xF1, 0x73, 0xC0, 0x0B, 0x97, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFE, 0x63, 0x03, 0xD1, +0x02, 0xD0, 0xFF, 0x68, 0xFF, 0xF7, 0x1F, 0x6A, +0x0C, 0xED, 0xCC, 0xEA, 0xEC, 0xE8, 0x00, 0x6F, +0x04, 0xD4, 0x00, 0xD5, 0x01, 0x6C, 0x67, 0x67, +0xC2, 0x67, 0x41, 0x47, 0xB0, 0x67, 0xA7, 0xEA, +0x45, 0x67, 0x01, 0x6D, 0xAC, 0xEA, 0x0F, 0x22, +0x02, 0x6A, 0x06, 0x10, 0xFF, 0xF7, 0x1F, 0x69, +0x44, 0x32, 0x01, 0x4D, 0x2C, 0xEA, 0x2C, 0xED, +0x83, 0xED, 0xF8, 0x61, 0x4C, 0x32, 0x4D, 0xE3, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEB, 0x01, 0x4C, +0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEC, 0x08, 0x74, +0x01, 0x4F, 0xE3, 0x61, 0x63, 0xEE, 0x46, 0x67, +0x15, 0x61, 0x00, 0x96, 0xCC, 0x34, 0xFF, 0x4C, +0x91, 0xE3, 0xAC, 0xEC, 0x43, 0xEC, 0x0E, 0x61, +0x6B, 0xE2, 0x08, 0x6C, 0x9A, 0xEA, 0x01, 0x2C, +0xE5, 0xE8, 0x04, 0x93, 0x12, 0xEA, 0x49, 0xE3, +0x40, 0xA2, 0x10, 0xED, 0x01, 0x6B, 0x47, 0xED, +0x6C, 0xEA, 0x01, 0x10, 0x00, 0x6A, 0x03, 0x91, +0x02, 0x90, 0x02, 0x63, 0x20, 0xE8, 0x00, 0x65, +0xD8, 0x63, 0x4F, 0x62, 0x4E, 0xD1, 0x4D, 0xD0, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEC, 0x30, 0xF0, +0x20, 0x6B, 0x48, 0xD4, 0x22, 0xF7, 0x84, 0x9B, +0x22, 0xF7, 0x04, 0x4B, 0x4C, 0xEE, 0x04, 0xD4, +0x81, 0x9B, 0x64, 0xAB, 0x4A, 0xD6, 0x05, 0xD4, +0x9D, 0x67, 0x6C, 0xCC, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0xFF, 0x68, 0xAC, 0xE8, +0xC7, 0xF3, 0xA8, 0xA3, 0x03, 0x6C, 0x8B, 0xEC, +0x24, 0x48, 0xAC, 0xEC, 0xC7, 0xF3, 0x88, 0xC3, +0x4C, 0xE8, 0x00, 0x69, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF2, 0x40, 0x9B, 0x48, 0x94, 0xFF, 0xF7, +0x1F, 0x6B, 0xA1, 0x40, 0x6C, 0xED, 0x40, 0xEA, +0x49, 0xD2, 0x02, 0x2A, 0x02, 0x6A, 0x15, 0x11, +0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF2, 0x40, 0x9C, +0x48, 0x94, 0xB0, 0x67, 0x40, 0xEA, 0x05, 0x72, +0x06, 0x61, 0x49, 0x92, 0x01, 0x6B, 0x04, 0x5A, +0x03, 0x6A, 0x13, 0x60, 0x06, 0x11, 0x49, 0x92, +0xFF, 0xF7, 0x1F, 0x6B, 0x01, 0x49, 0x02, 0x4A, +0x41, 0xE0, 0x4A, 0x92, 0x6C, 0xE8, 0x6C, 0xE9, +0xFC, 0x4A, 0x42, 0xE8, 0x02, 0x61, 0x00, 0x6B, +0x04, 0x10, 0xE0, 0xF1, 0x14, 0x71, 0xD2, 0x61, +0xF3, 0x10, 0xE0, 0xF1, 0x14, 0x71, 0xE0, 0xF0, +0x0F, 0x60, 0x00, 0x6A, 0xE0, 0xF0, 0x0D, 0x23, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0xC7, 0xF3, 0x88, 0xA3, 0xF7, 0x4A, 0x30, 0xF0, +0x20, 0x69, 0x8C, 0xEA, 0x05, 0x6C, 0x8B, 0xEC, +0x8C, 0xEA, 0xC7, 0xF3, 0x48, 0xC3, 0xC0, 0xF2, +0x40, 0x99, 0x48, 0x94, 0xFF, 0xF7, 0x1F, 0x6B, +0xA2, 0x40, 0x6C, 0xED, 0x40, 0xEA, 0x9D, 0x67, +0x5C, 0xC4, 0xC0, 0xF2, 0x40, 0x99, 0x48, 0x94, +0xFF, 0xF7, 0x1F, 0x6B, 0xA3, 0x40, 0x6C, 0xED, +0x40, 0xEA, 0x9D, 0x67, 0x5D, 0xC4, 0xC0, 0xF2, +0x40, 0x99, 0x48, 0x94, 0xA4, 0x40, 0xFF, 0xF7, +0x1F, 0x6B, 0x6C, 0xED, 0x40, 0xEA, 0x9D, 0x67, +0x5E, 0xC4, 0x05, 0x48, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE8, 0x00, 0x69, 0x10, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x48, 0x94, 0xC0, 0xF2, 0x40, 0x9A, +0xB0, 0x67, 0x01, 0x48, 0x40, 0xEA, 0x9D, 0x67, +0x2D, 0xE4, 0x5F, 0xC3, 0x01, 0x49, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xE9, 0x4C, 0xE8, 0x49, 0x92, +0xFD, 0x4A, 0x42, 0xE9, 0xEC, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x4B, 0xF1, 0x46, 0xA2, 0x7D, 0x67, +0x44, 0x32, 0x49, 0xE3, 0x68, 0xAA, 0x1F, 0xF7, +0x00, 0x6A, 0x6C, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x0F, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x4B, 0xF1, 0x46, 0xA2, 0x9D, 0x67, 0x44, 0x32, +0x49, 0xE4, 0x68, 0xAA, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x40, 0x9A, 0x49, 0xE3, 0x60, 0xAA, +0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, +0x44, 0x9A, 0x4D, 0xE3, 0x60, 0xAB, 0xFF, 0xF7, +0x1F, 0x6A, 0x9D, 0x67, 0x6C, 0xEA, 0x7C, 0xA4, +0x0E, 0x2B, 0x7E, 0xA4, 0x01, 0x6C, 0x8C, 0xEB, +0x0A, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, +0x08, 0x4B, 0xC7, 0xF3, 0xA8, 0xA3, 0x08, 0x6C, +0xAD, 0xEC, 0xC7, 0xF3, 0x88, 0xC3, 0x49, 0x95, +0xE0, 0xF7, 0x1F, 0x6E, 0x4C, 0xEE, 0x5D, 0x67, +0xFE, 0xA2, 0xFD, 0x4D, 0xFF, 0x6B, 0x00, 0xF0, +0x1F, 0x04, 0x6C, 0xED, 0x00, 0x18, 0xF1, 0xE1, +0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xC7, 0xF3, 0x88, 0xA2, 0x04, 0x6B, +0x8D, 0xEB, 0xC7, 0xF3, 0x68, 0xC2, 0x30, 0xF0, +0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, 0xC7, 0xF3, +0x68, 0xA0, 0x0C, 0x6A, 0x6C, 0xEA, 0x10, 0x2A, +0x03, 0xF6, 0x61, 0xA0, 0xFE, 0x4A, 0xC0, 0xF0, +0x9E, 0xA0, 0x6C, 0xEA, 0x05, 0x6B, 0x6B, 0xEB, +0x6C, 0xEA, 0x02, 0x4B, 0x6C, 0xEA, 0x03, 0xF6, +0x41, 0xC0, 0x00, 0x18, 0xEC, 0xCF, 0x3A, 0x10, +0x08, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, +0x16, 0x22, 0x03, 0xF6, 0x41, 0xA0, 0x02, 0x69, +0xC0, 0xF0, 0xC3, 0xA0, 0x2D, 0xEA, 0x03, 0xF6, +0x41, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x48, 0x9A, 0xFF, 0x6C, 0x55, 0x4C, 0x00, 0x6D, +0x40, 0xEA, 0xE3, 0xF5, 0x5C, 0xA0, 0x4D, 0xE9, +0xE3, 0xF5, 0x3C, 0xC0, 0x07, 0x10, 0x03, 0xF6, +0x61, 0xA0, 0x03, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x03, 0xF6, 0x41, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xC7, 0xF3, 0x88, 0xA2, +0x04, 0x6B, 0x8C, 0xEB, 0x05, 0x23, 0xC0, 0xF0, +0x9E, 0xA2, 0x00, 0x18, 0xD8, 0xCF, 0x0A, 0x10, +0x03, 0xF6, 0x81, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0x05, 0x6C, 0x8B, 0xEC, 0x8C, 0xEB, +0x03, 0xF6, 0x61, 0xC2, 0x00, 0x6A, 0x01, 0x10, +0x01, 0x6A, 0x4F, 0x97, 0x4E, 0x91, 0x4D, 0x90, +0x28, 0x63, 0x00, 0xEF, 0xF8, 0x63, 0x0F, 0x62, +0x0E, 0xD1, 0x0D, 0xD0, 0xFF, 0x6B, 0xFF, 0xF7, +0x1F, 0x6A, 0xAC, 0xEB, 0x4C, 0xEC, 0x08, 0xD3, +0x30, 0xF0, 0x20, 0x6B, 0x09, 0xD4, 0x22, 0xF7, +0x90, 0x9B, 0x22, 0xF7, 0x10, 0x4B, 0x08, 0x90, +0x04, 0xD4, 0x81, 0x9B, 0x64, 0xAB, 0x4C, 0xEF, +0x05, 0xD4, 0x10, 0x48, 0x9D, 0x67, 0x0A, 0xD7, +0x6C, 0xCC, 0x4C, 0xE8, 0x00, 0x69, 0x30, 0xF0, +0x20, 0x6A, 0x09, 0x94, 0xC0, 0xF2, 0x40, 0x9A, +0xB0, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x4B, 0xF1, 0x66, 0xA3, 0x9D, 0x67, 0x64, 0x33, +0x6D, 0xE4, 0x88, 0xAB, 0x1F, 0xF7, 0x00, 0x6B, +0x91, 0xE1, 0x8C, 0xEB, 0x02, 0xF0, 0x00, 0x73, +0x01, 0x60, 0x10, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0x4B, 0xF1, 0x66, 0xA3, 0x9D, 0x67, 0x64, 0x33, +0x6D, 0xE4, 0x68, 0xAB, 0x30, 0xF0, 0x20, 0x6C, +0xA3, 0xF0, 0x80, 0x9C, 0x6D, 0xE1, 0x8D, 0xE3, +0x80, 0xA3, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF0, 0x64, 0x9B, 0x71, 0xE4, 0x80, 0xA4, +0xFF, 0x6B, 0x8C, 0xEB, 0x6E, 0xEA, 0x27, 0x2A, +0x01, 0x49, 0x01, 0x48, 0xFF, 0xF7, 0x1F, 0x6A, +0x06, 0x71, 0x4C, 0xE8, 0xC8, 0x61, 0x30, 0xF0, +0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, 0xC7, 0xF3, +0x68, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, 0x17, 0x22, +0x09, 0x94, 0x08, 0x95, 0x0A, 0x96, 0x00, 0x18, +0x16, 0xE2, 0x12, 0x22, 0xC7, 0xF3, 0x88, 0xA0, +0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xC7, 0xF3, +0x68, 0xC0, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF7, +0x84, 0x9B, 0xFF, 0xF6, 0x1F, 0x6B, 0xA0, 0xAC, +0xAC, 0xEB, 0x60, 0xCC, 0x01, 0x10, 0x00, 0x6A, +0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, +0xFF, 0xF7, 0x1F, 0x6B, 0xCC, 0xEB, 0x8C, 0xEA, +0x04, 0xD2, 0x06, 0xD3, 0x30, 0xF0, 0x20, 0x6B, +0xFF, 0x68, 0xC0, 0xF2, 0x40, 0x9B, 0x04, 0x94, +0x0C, 0xED, 0x05, 0xD5, 0x03, 0x6D, 0x40, 0xEA, +0x05, 0x95, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0x69, +0x4C, 0xE9, 0x18, 0x4D, 0xC0, 0xF2, 0x40, 0x9B, +0x04, 0x94, 0xFF, 0xF7, 0x1F, 0x6B, 0xB5, 0xE1, +0x6C, 0xED, 0x40, 0xEA, 0x04, 0x6B, 0x6B, 0xEB, +0x4C, 0xEB, 0x0C, 0xEB, 0x50, 0x73, 0x1F, 0x60, +0x80, 0x73, 0x3D, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xE7, 0xF1, 0x74, 0xA2, +0x01, 0x6C, 0x8C, 0xEB, 0x0C, 0xEB, 0x08, 0x23, +0x07, 0xF3, 0xA8, 0xA2, 0x7F, 0x6B, 0xAC, 0xEB, +0x03, 0x73, 0x02, 0x61, 0x07, 0xF2, 0x80, 0xC2, +0x05, 0x95, 0x04, 0x94, 0x05, 0x96, 0x18, 0x4D, +0x06, 0x97, 0xB5, 0xE1, 0xFF, 0x6A, 0x4C, 0xED, +0x00, 0x18, 0xBD, 0xE2, 0x20, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xE7, 0xF1, +0x94, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, 0x0C, 0xEB, +0x16, 0x23, 0x07, 0xF3, 0x68, 0xA2, 0x7F, 0x6D, +0xAC, 0xEB, 0x03, 0x73, 0x10, 0x61, 0x07, 0xF3, +0x8C, 0x9A, 0x80, 0x6B, 0x6B, 0xEB, 0xC1, 0xA4, +0xCC, 0xEB, 0x0C, 0xEB, 0x08, 0x23, 0x07, 0xF2, +0x41, 0xA2, 0x01, 0x72, 0x04, 0x61, 0xCC, 0xED, +0xA1, 0xC4, 0x80, 0x18, 0x85, 0x65, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0x4C, 0x9A, +0xFF, 0x6B, 0xFF, 0xF7, 0x1F, 0x69, 0x40, 0xA2, +0x00, 0x6C, 0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x44, 0x9A, 0x05, 0xD3, 0x40, 0xAA, +0x4C, 0xE9, 0x63, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF7, 0xC8, 0x9A, 0x30, 0xF0, 0x20, 0x6D, +0x91, 0x67, 0xCE, 0xF2, 0x08, 0x4D, 0xE5, 0xF6, +0x1F, 0x6F, 0x00, 0x18, 0x9E, 0xE1, 0x30, 0xF0, +0x20, 0x6A, 0xCE, 0xF2, 0x68, 0x9A, 0x0F, 0x6D, +0xFF, 0xF7, 0x1F, 0x6E, 0x42, 0xA3, 0xE1, 0xA3, +0x83, 0xA3, 0x4C, 0xED, 0x3F, 0x68, 0x40, 0xA3, +0xEC, 0xE8, 0xFE, 0x65, 0x92, 0x34, 0x01, 0x6E, +0x00, 0x30, 0xCC, 0xEC, 0x4D, 0xE8, 0xAC, 0x35, +0xFF, 0x6A, 0x10, 0x2C, 0x18, 0x48, 0xE7, 0xF7, +0x1F, 0x6B, 0xA1, 0xE0, 0x6C, 0xE8, 0xD7, 0xF7, +0x01, 0x4B, 0xEC, 0xEB, 0x4C, 0xEB, 0x29, 0x2B, +0x91, 0x67, 0x4C, 0xED, 0xD0, 0x67, 0x00, 0x18, +0xFB, 0xE2, 0x23, 0x10, 0x30, 0xF0, 0x20, 0x6C, +0x43, 0xF0, 0x94, 0x9C, 0x07, 0x68, 0xE0, 0xA4, +0x80, 0xA4, 0x8C, 0xE8, 0x10, 0x6C, 0xEC, 0xEC, +0x14, 0x30, 0x4C, 0xEC, 0x4C, 0xE8, 0x11, 0x24, +0x92, 0xA3, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x4C, 0xEB, 0xFC, 0x73, 0x02, 0x60, 0xFE, 0x73, +0x03, 0x61, 0x07, 0x45, 0x21, 0x48, 0x09, 0x10, +0x18, 0x48, 0xA1, 0xE0, 0x5F, 0x67, 0x4C, 0xE8, +0x04, 0x10, 0x18, 0x48, 0xA1, 0xE0, 0x7F, 0x67, +0x6C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x58, 0x9A, 0x91, 0x67, 0xB0, 0x67, 0x40, 0xEA, +0x04, 0x94, 0x22, 0x67, 0xFF, 0x6A, 0x01, 0x4C, +0x4C, 0xEC, 0x04, 0xD4, 0x04, 0x96, 0x05, 0x92, +0x43, 0xEE, 0x98, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF1, 0x4C, 0x9A, 0x40, 0xA2, 0x0A, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA0, 0xF0, 0x64, 0x9A, 0x00, 0xF2, 0x00, 0x6C, +0x8D, 0xEB, 0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xA0, 0xF0, 0x64, 0x9A, +0x00, 0xF2, 0x01, 0x6C, 0x8B, 0xEC, 0x8C, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x32, 0xE3, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6B, 0xFF, 0xF7, +0x1F, 0x6A, 0xAC, 0xEB, 0x8C, 0xEA, 0x08, 0x23, +0x30, 0xF0, 0x20, 0x6C, 0x09, 0xF2, 0x60, 0xAC, +0x4D, 0xEB, 0x09, 0xF2, 0x60, 0xCC, 0x08, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x09, 0xF2, 0x80, 0xAB, +0x4F, 0xEA, 0x8C, 0xEA, 0x09, 0xF2, 0x40, 0xCB, +0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF2, 0x60, 0xAA, +0x02, 0x6A, 0x30, 0xF0, 0x20, 0x6C, 0x6C, 0xEA, +0x4B, 0xEA, 0xA3, 0xF7, 0x84, 0x9C, 0xC0, 0xF7, +0x42, 0x32, 0x40, 0x32, 0x40, 0xCC, 0x1C, 0x6A, +0x6C, 0xEA, 0x0B, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF0, 0x74, 0x9A, 0xFF, 0x6C, 0x08, 0x6D, +0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF2, +0x40, 0xAA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF0, 0x74, 0x9A, 0xFF, 0x6C, 0x80, 0x6D, +0x40, 0xA3, 0xAB, 0xED, 0x8C, 0xEA, 0xAD, 0xEA, +0x0B, 0x10, 0x00, 0x18, 0x82, 0xE3, 0x00, 0x18, +0xAD, 0xEE, 0xFB, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF0, 0x74, 0x9A, 0x7F, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x24, 0x67, 0x00, 0x18, +0xDF, 0xC1, 0x04, 0xD2, 0x04, 0x93, 0x00, 0x6A, +0x30, 0x2B, 0x1E, 0x21, 0x30, 0xF0, 0x20, 0x6A, +0x09, 0xF2, 0xA2, 0xA2, 0x30, 0x6A, 0x30, 0xF0, +0x20, 0x68, 0x58, 0xED, 0x2A, 0xF0, 0x18, 0x48, +0x91, 0x67, 0xC2, 0x67, 0x12, 0xED, 0xB5, 0xE0, +0x00, 0x18, 0x3C, 0xD6, 0x30, 0xF0, 0x20, 0x6B, +0x09, 0xF2, 0x42, 0xA3, 0x30, 0x6B, 0x78, 0xEA, +0x12, 0xEA, 0x01, 0xE2, 0x5D, 0x67, 0x67, 0x42, +0x09, 0x4B, 0x40, 0xA3, 0x20, 0xF0, 0x4E, 0xC0, +0x30, 0xF0, 0x20, 0x6B, 0x09, 0xF2, 0x42, 0xA3, +0x0F, 0x6C, 0x01, 0x4A, 0x8C, 0xEA, 0x09, 0xF2, +0x42, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF2, +0x64, 0xA2, 0xFF, 0x4B, 0x09, 0xF2, 0x64, 0xC2, +0x01, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x08, 0xD4, 0x09, 0xD5, +0x0A, 0xD6, 0x0B, 0xD7, 0x00, 0x18, 0xE3, 0xC1, +0x02, 0x67, 0x00, 0x6A, 0x1A, 0x28, 0x30, 0xF0, +0x20, 0x69, 0x09, 0xF2, 0x86, 0xA1, 0x30, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x78, 0xEC, 0x2A, 0xF3, +0x18, 0x4A, 0xC3, 0x67, 0x08, 0x05, 0x12, 0xEC, +0x91, 0xE2, 0x00, 0x18, 0x3C, 0xD6, 0x30, 0xF0, +0x20, 0x6A, 0x09, 0xF2, 0x67, 0xA2, 0x09, 0xF2, +0x06, 0xC1, 0x01, 0x4B, 0x09, 0xF2, 0x67, 0xC2, +0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0x09, 0xF2, 0x64, 0xA2, 0x00, 0x6A, 0x06, 0x2B, +0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF2, 0x47, 0xA2, +0x01, 0x5A, 0x58, 0x67, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF2, 0x47, 0xA2, +0x01, 0x5A, 0x58, 0x67, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0x4C, 0xEC, 0xFF, 0x74, 0xAC, 0xEA, +0x05, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0xEE, 0xF3, +0x43, 0xC3, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0x63, 0xF3, 0xBB, 0xA3, +0x8C, 0xEA, 0x8F, 0xEC, 0xAC, 0xEC, 0x8D, 0xEA, +0x63, 0xF3, 0x5B, 0xC3, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x68, 0x26, 0x67, 0x0C, 0xE9, 0x53, 0x71, +0x0C, 0xEC, 0x0C, 0xED, 0x09, 0x60, 0x06, 0x2C, +0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF3, 0x42, 0xA2, +0xAD, 0xEA, 0x0B, 0x10, 0x00, 0x18, 0xF2, 0xE3, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x63, 0xF3, 0x7B, 0xA2, 0x63, 0xF3, 0x5A, 0xA2, +0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, +0x7C, 0x9B, 0x0C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0xEE, 0xF3, 0x20, 0xC2, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x0A, 0xD4, 0x0B, 0xD5, 0x0C, 0xD6, 0x0D, 0xD7, +0x00, 0x18, 0xDA, 0xC1, 0x04, 0xD2, 0x04, 0x93, +0x00, 0x6A, 0x05, 0xD2, 0x54, 0x2B, 0x30, 0xF0, +0x20, 0x69, 0x09, 0xF2, 0x83, 0xA1, 0x30, 0x6A, +0x30, 0xF0, 0x20, 0x68, 0x58, 0xEC, 0x2A, 0xF0, +0x18, 0x48, 0x0A, 0x05, 0xC2, 0x67, 0x12, 0xEC, +0x91, 0xE0, 0x00, 0x18, 0x3C, 0xD6, 0x09, 0xF2, +0x83, 0xA1, 0x30, 0x6D, 0x30, 0xF0, 0x20, 0x6A, +0xB8, 0xEC, 0x42, 0xF0, 0x7C, 0xA2, 0x12, 0xEC, +0x01, 0xE4, 0x20, 0xF0, 0x6E, 0xC0, 0x01, 0x4B, +0x42, 0xF0, 0x7C, 0xC2, 0x7D, 0x67, 0x87, 0x43, +0x09, 0x4C, 0x60, 0xA4, 0x20, 0xF0, 0x6F, 0xC0, +0x42, 0xF0, 0x7C, 0xA2, 0x03, 0x2B, 0x01, 0x6B, +0x42, 0xF0, 0x7C, 0xC2, 0x30, 0xF0, 0x20, 0x69, +0x09, 0xF2, 0x83, 0xA1, 0x30, 0x6A, 0x30, 0xF0, +0x20, 0x68, 0x58, 0xEC, 0x2A, 0xF0, 0x18, 0x48, +0x04, 0xD4, 0x12, 0xEA, 0x09, 0xE2, 0x20, 0xF0, +0x4E, 0xA2, 0x05, 0xD2, 0x00, 0x18, 0x59, 0xDC, +0x04, 0x95, 0x06, 0x6C, 0x98, 0xED, 0x12, 0xEC, +0x01, 0x4C, 0x8C, 0x34, 0x01, 0xE4, 0x61, 0xD8, +0x40, 0xD8, 0x09, 0xF2, 0x43, 0xA1, 0x0F, 0x6B, +0x01, 0x4A, 0x6C, 0xEA, 0x09, 0xF2, 0x43, 0xC1, +0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF2, 0x64, 0xA2, +0x01, 0x4B, 0x09, 0xF2, 0x64, 0xC2, 0x05, 0x92, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD0, 0x0E, 0xD4, 0x0F, 0xD5, 0x10, 0xD6, +0x11, 0xD7, 0x00, 0x18, 0xE3, 0xC1, 0x00, 0x68, +0x1C, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, +0x54, 0x9A, 0x40, 0xEA, 0x02, 0x67, 0x00, 0x18, +0x59, 0xDC, 0x13, 0x20, 0x12, 0xD2, 0x13, 0xD3, +0x00, 0x6A, 0x04, 0x04, 0x12, 0x03, 0x05, 0x10, +0x59, 0xE3, 0xC0, 0xA6, 0x55, 0xE4, 0x01, 0x4A, +0xC0, 0xC5, 0x20, 0x5A, 0xF9, 0x61, 0x0E, 0x94, +0x0F, 0x95, 0x10, 0x96, 0x11, 0x97, 0x00, 0x18, +0xD1, 0xE3, 0x50, 0x67, 0x0D, 0x97, 0x0C, 0x90, +0x07, 0x63, 0x00, 0xEF, 0xF3, 0x63, 0x19, 0x62, +0x00, 0x18, 0xDF, 0xC1, 0x21, 0x22, 0x24, 0x10, +0x7D, 0x67, 0x40, 0xF0, 0x5F, 0xA3, 0x1C, 0x2A, +0x0C, 0x92, 0x1A, 0x22, 0x00, 0x18, 0x59, 0xDC, +0x0E, 0x95, 0x12, 0x04, 0xB7, 0xE2, 0x0C, 0x92, +0x40, 0xEA, 0x12, 0x22, 0x00, 0x6A, 0x04, 0x04, +0x10, 0x03, 0x05, 0x10, 0x59, 0xE3, 0xC0, 0xA6, +0x55, 0xE4, 0x01, 0x4A, 0xC0, 0xC5, 0x20, 0x5A, +0xF9, 0x61, 0x0C, 0x94, 0x0D, 0x95, 0x0E, 0x96, +0x0F, 0x97, 0x00, 0x18, 0x49, 0xE4, 0x04, 0x10, +0x0C, 0x04, 0x00, 0x18, 0xB1, 0xE3, 0xDC, 0x2A, +0x19, 0x97, 0x0D, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x24, 0x67, 0x00, 0x18, 0xEE, 0xE3, 0x04, 0xD2, +0x04, 0x93, 0x00, 0x6A, 0x2E, 0x2B, 0x00, 0x18, +0x59, 0xDC, 0x1E, 0x21, 0x30, 0xF0, 0x20, 0x6A, +0x09, 0xF2, 0xA5, 0xA2, 0x30, 0x6A, 0x30, 0xF0, +0x20, 0x68, 0x58, 0xED, 0x2A, 0xF3, 0x18, 0x48, +0x91, 0x67, 0xC2, 0x67, 0x12, 0xED, 0xB5, 0xE0, +0x00, 0x18, 0x3C, 0xD6, 0x30, 0xF0, 0x20, 0x6B, +0x09, 0xF2, 0x45, 0xA3, 0x30, 0x6B, 0x78, 0xEA, +0x12, 0xEA, 0x01, 0xE2, 0x5D, 0x67, 0x67, 0x42, +0x09, 0x4B, 0x40, 0xA3, 0x20, 0xF0, 0x4E, 0xC0, +0x00, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF2, +0x65, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF2, +0x67, 0xA2, 0xFF, 0x4B, 0x09, 0xF2, 0x67, 0xC2, +0x01, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xF7, 0x63, 0x11, 0x62, +0x00, 0x18, 0xEE, 0xE3, 0x0D, 0x2A, 0x04, 0x04, +0x00, 0x18, 0x76, 0xE4, 0x09, 0x22, 0x05, 0x92, +0x07, 0x22, 0x00, 0x18, 0x59, 0xDC, 0x06, 0x95, +0x02, 0x6C, 0xB7, 0xE2, 0x05, 0x92, 0x40, 0xEA, +0x11, 0x97, 0x09, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF7, 0x63, 0x11, 0x62, 0x04, 0x04, 0x00, 0x18, +0x76, 0xE4, 0x09, 0x22, 0x05, 0x92, 0x07, 0x22, +0x00, 0x18, 0x59, 0xDC, 0x06, 0x95, 0x00, 0x6C, +0xB7, 0xE2, 0x05, 0x92, 0x40, 0xEA, 0x11, 0x97, +0x09, 0x63, 0x00, 0xEF, 0xF6, 0x63, 0x13, 0x62, +0x12, 0xD1, 0x11, 0xD0, 0x04, 0x00, 0x24, 0x67, +0x00, 0x6D, 0x90, 0x67, 0x30, 0x6E, 0x00, 0x18, +0x37, 0xD6, 0x90, 0x67, 0x00, 0x18, 0x76, 0xE4, +0x10, 0x22, 0x00, 0x18, 0x59, 0xDC, 0x08, 0x90, +0x03, 0xE2, 0x00, 0x18, 0x15, 0xF0, 0x04, 0x22, +0x05, 0x92, 0x91, 0x67, 0x04, 0x2A, 0x05, 0x10, +0x05, 0x92, 0x03, 0x22, 0x00, 0x6C, 0xB0, 0x67, +0x40, 0xEA, 0x13, 0x97, 0x12, 0x91, 0x11, 0x90, +0x0A, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x3B, 0x22, 0x30, 0xF0, +0x20, 0x6B, 0x09, 0xF2, 0x67, 0xA3, 0x14, 0x23, +0x30, 0xF0, 0x20, 0x6C, 0x09, 0xF2, 0xA5, 0xA4, +0x30, 0x6C, 0x30, 0xF0, 0x20, 0x6B, 0x98, 0xED, +0x2A, 0xF3, 0x18, 0x4B, 0x12, 0xEC, 0x6D, 0xE4, +0x20, 0xF0, 0x6E, 0xA3, 0x6E, 0xEA, 0x26, 0x2A, +0x03, 0x6C, 0x00, 0x18, 0xA9, 0xE4, 0x22, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x09, 0xF2, 0x64, 0xA3, +0x17, 0x2B, 0x1C, 0x10, 0xA0, 0xA4, 0x4E, 0xED, +0x0C, 0x2D, 0x30, 0x6C, 0x98, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0x2A, 0xF0, 0x18, 0x4A, 0x12, 0xEB, +0x49, 0xE3, 0x01, 0x6B, 0x20, 0xF0, 0x6F, 0xC2, +0x0D, 0x10, 0x01, 0x4B, 0xFF, 0x6D, 0xAC, 0xEB, +0x10, 0x73, 0x30, 0x4C, 0xEB, 0x61, 0x06, 0x10, +0x30, 0xF0, 0x20, 0x6C, 0x6A, 0xF0, 0x06, 0x4C, +0x00, 0x6B, 0xE4, 0x17, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x01, 0x6C, 0x00, 0x18, 0xA9, 0xE4, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xF6, 0x63, 0x13, 0x62, +0x12, 0xD1, 0x11, 0xD0, 0x00, 0x18, 0x97, 0xD5, +0x20, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0x09, 0xF2, +0xA5, 0xA3, 0x30, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x78, 0xED, 0x2A, 0xF3, 0x18, 0x4A, 0x04, 0x04, +0xC3, 0x67, 0x12, 0xED, 0xB5, 0xE2, 0x00, 0x18, +0x3C, 0xD6, 0x08, 0x90, 0x09, 0x91, 0x00, 0x18, +0x59, 0xDC, 0x03, 0xE2, 0x03, 0xEA, 0x58, 0x67, +0x27, 0xE3, 0x4B, 0xE1, 0x03, 0x2A, 0x82, 0xF3, +0x08, 0x58, 0x07, 0x61, 0x00, 0x18, 0xDD, 0xE4, +0x02, 0x10, 0x00, 0x18, 0xA0, 0xE4, 0x00, 0x18, +0x5F, 0xE4, 0x13, 0x97, 0x12, 0x91, 0x11, 0x90, +0x0A, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0xEE, 0xE3, 0x03, 0x2A, 0x00, 0x18, +0xE1, 0xE4, 0x0B, 0x10, 0x00, 0x18, 0xDF, 0xC1, +0x06, 0x2A, 0x00, 0x18, 0x97, 0xD5, 0x05, 0x22, +0x00, 0x18, 0x5F, 0xE4, 0x02, 0x10, 0x00, 0x18, +0x97, 0xD5, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA0, 0xF0, 0x64, 0x9A, 0x10, 0x6C, 0x8D, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x2F, 0xF6, 0x41, 0xA2, +0xFF, 0x63, 0x05, 0x5A, 0x36, 0x60, 0x30, 0xF0, +0x20, 0x6B, 0x48, 0x32, 0x22, 0xF7, 0x1C, 0x4B, +0x4D, 0xE3, 0x40, 0x9B, 0x00, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF0, 0x50, 0x9A, 0xFF, 0xF7, +0x1F, 0x6B, 0x40, 0x9A, 0x1A, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF0, 0x50, 0x9A, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, 0x44, 0x9A, +0x0D, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, +0x44, 0x9A, 0x40, 0x9A, 0x50, 0x32, 0x00, 0xF5, +0x42, 0x32, 0x08, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF7, 0x48, 0x9A, 0x40, 0x9A, 0xE1, 0xF7, +0x1F, 0x6B, 0x6C, 0xEA, 0x00, 0xD2, 0x00, 0x93, +0xE0, 0xF3, 0x08, 0x6A, 0x60, 0x33, 0x68, 0x33, +0x5B, 0xEB, 0x01, 0x2A, 0xE5, 0xE8, 0x12, 0xEA, +0x01, 0x10, 0x66, 0x6A, 0x00, 0xD2, 0x00, 0x92, +0x01, 0x63, 0x20, 0xE8, 0xFF, 0x63, 0x01, 0xD0, +0x15, 0x2C, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, +0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF0, +0x94, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x60, 0xDA, 0x5D, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xA4, 0xF5, 0xB8, 0xA2, +0x03, 0x6B, 0x6B, 0xEB, 0xAC, 0xEB, 0xA4, 0xF5, +0x78, 0xC2, 0xA4, 0xF5, 0xDC, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x4F, 0xF6, 0x00, 0x4A, 0x00, 0x6D, +0x18, 0x6F, 0xF8, 0xED, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0x12, 0xEF, 0x6D, 0xE7, +0xC4, 0xF5, 0x0C, 0xA3, 0x01, 0x6F, 0xEC, 0xE8, +0x23, 0x20, 0xC4, 0xF5, 0x6C, 0xA3, 0x66, 0x33, +0xEC, 0xEB, 0xFF, 0x6F, 0xEC, 0xEB, 0x1C, 0x23, +0xFF, 0xF7, 0x78, 0x9A, 0x9B, 0xEB, 0x01, 0x2C, +0xE5, 0xE8, 0x12, 0xEB, 0xFF, 0xF7, 0x7C, 0xDA, +0x10, 0xEF, 0x03, 0x27, 0x01, 0x4B, 0xFF, 0xF7, +0x7C, 0xDA, 0x60, 0x9A, 0x78, 0xEE, 0x12, 0xEB, +0x9B, 0xEB, 0x01, 0x2C, 0xE5, 0xE8, 0x12, 0xEB, +0x60, 0xDA, 0xFF, 0xF7, 0x7C, 0x9A, 0x04, 0x2B, +0x01, 0x6F, 0xFF, 0xF7, 0xFC, 0xDA, 0x60, 0xDA, +0x01, 0x4D, 0x0A, 0x75, 0x18, 0x4A, 0xCC, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xC4, 0xF5, 0x60, 0x9A, 0xA4, 0xF5, 0x9C, 0xDA, +0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, 0xA4, 0xF5, +0x98, 0xA2, 0x12, 0xEB, 0xC4, 0xF5, 0x64, 0xDA, +0x78, 0x67, 0xC4, 0xF5, 0x68, 0xDA, 0x02, 0x6B, +0x8D, 0xEB, 0xA4, 0xF5, 0x78, 0xC2, 0x01, 0x90, +0x01, 0x63, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, +0x08, 0x48, 0xA4, 0xF5, 0x58, 0xA0, 0x03, 0x6B, +0x4C, 0xEB, 0x00, 0x6A, 0x26, 0x2B, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF7, 0x4C, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xFF, 0x6E, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, 0x2F, 0xF6, +0x00, 0x4C, 0x00, 0x6D, 0x05, 0x4E, 0x40, 0xEA, +0x66, 0x6A, 0xA4, 0xF5, 0x5C, 0xD8, 0xC4, 0xF5, +0x44, 0xD8, 0x01, 0x6A, 0x4B, 0xEA, 0xA4, 0xF5, +0x98, 0xA0, 0xA4, 0xF5, 0x59, 0xC0, 0x7D, 0x6A, +0x4B, 0xEA, 0x01, 0x6B, 0x8C, 0xEA, 0x6D, 0xEA, +0xA4, 0xF5, 0x58, 0xC0, 0xC4, 0xF5, 0x60, 0xD8, +0x43, 0x67, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, +0x08, 0x48, 0xA4, 0xF5, 0x98, 0xA0, 0x01, 0x6B, +0x00, 0x6A, 0x8C, 0xEB, 0x22, 0x23, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF7, 0x4C, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x03, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, +0xA4, 0xF5, 0x58, 0xC0, 0x00, 0x18, 0x0A, 0xE5, +0x04, 0xD2, 0x04, 0x94, 0x00, 0x18, 0x2B, 0xE5, +0xA4, 0xF5, 0x78, 0xA0, 0x02, 0x6A, 0xC4, 0xF5, +0xC0, 0x98, 0x6D, 0xEA, 0xA4, 0xF5, 0x58, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, +0x42, 0xF1, 0x1C, 0x6C, 0x01, 0x6D, 0x40, 0xEA, +0x01, 0x6A, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0xA4, 0xF5, 0xB8, 0xA3, +0x02, 0x6C, 0x00, 0x6A, 0xAC, 0xEC, 0x0C, 0x24, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, 0x4C, 0x9A, +0x00, 0x6C, 0x80, 0xC2, 0x03, 0x6A, 0x4B, 0xEA, +0xAC, 0xEA, 0xA4, 0xF5, 0x58, 0xC3, 0x01, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0x00, 0x6A, 0x18, 0x6C, +0x98, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, +0x08, 0x4B, 0x01, 0x4A, 0x0A, 0x72, 0x12, 0xEC, +0x71, 0xE4, 0xC4, 0xF5, 0xAC, 0xA4, 0x02, 0x6B, +0x6B, 0xEB, 0xAC, 0xEB, 0xC4, 0xF5, 0x6C, 0xC4, +0xEE, 0x61, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x2F, 0xF6, 0x40, 0xA2, 0x01, 0x6B, 0x4C, 0xEB, +0x00, 0x6A, 0x1C, 0x23, 0x30, 0xF0, 0x20, 0x6A, +0x4F, 0xF6, 0x04, 0x4A, 0x00, 0x6B, 0xA0, 0x9A, +0x8E, 0xED, 0x0F, 0x2D, 0x18, 0x6E, 0xD8, 0xEB, +0x30, 0xF0, 0x20, 0x6D, 0x6B, 0xF0, 0x08, 0x4D, +0x12, 0xEE, 0xB9, 0xE6, 0xC4, 0xF5, 0xEC, 0xA6, +0x02, 0x6D, 0xAB, 0xED, 0xEC, 0xED, 0xC4, 0xF5, +0xAC, 0xC6, 0x01, 0x4B, 0x0A, 0x73, 0x18, 0x4A, +0xEA, 0x61, 0x01, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x5D, 0x67, 0x0A, 0xD4, 0x20, 0xF0, 0x98, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x0B, 0xD5, 0x0C, 0xD6, +0x6B, 0xF0, 0x08, 0x4A, 0xA4, 0xF5, 0xB8, 0xA2, +0x01, 0x6B, 0x00, 0xF6, 0xE0, 0x31, 0xAC, 0xEB, +0x00, 0xF6, 0x23, 0x31, 0x80, 0xF0, 0x09, 0x23, +0x21, 0x24, 0x01, 0x74, 0x80, 0xF0, 0x05, 0x61, +0x0A, 0x93, 0x80, 0xF0, 0x02, 0x23, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF7, 0x70, 0x9B, 0xC3, 0xEB, +0x7C, 0x61, 0x7F, 0x71, 0x7A, 0x60, 0xFF, 0xF7, +0x1F, 0x51, 0x77, 0x61, 0xA4, 0xF5, 0x1C, 0x9A, +0x1B, 0xEE, 0x01, 0x28, 0xE5, 0xE8, 0x10, 0xEA, +0x12, 0xE8, 0x02, 0x22, 0x01, 0x48, 0x04, 0x10, +0x03, 0x28, 0x01, 0x68, 0x50, 0x67, 0x1D, 0x10, +0x01, 0x6B, 0x1E, 0x10, 0x0A, 0x94, 0x65, 0x24, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF7, 0x70, 0x9B, +0x0C, 0x95, 0xA3, 0xEB, 0x5E, 0x61, 0x7F, 0x71, +0x5C, 0x60, 0xFF, 0xF7, 0x1F, 0x51, 0x59, 0x61, +0xC4, 0xF5, 0x00, 0x9A, 0x1B, 0xED, 0x01, 0x28, +0xE5, 0xE8, 0x10, 0xEA, 0x12, 0xE8, 0x02, 0x22, +0x01, 0x48, 0x05, 0x10, 0x04, 0x28, 0x01, 0x68, +0x00, 0x6A, 0x04, 0xD2, 0x02, 0x10, 0x00, 0x6B, +0x04, 0xD3, 0x0A, 0x94, 0x00, 0x18, 0xB3, 0xE5, +0x00, 0x6C, 0xFF, 0x6E, 0xA4, 0x67, 0xCC, 0xED, +0x1D, 0x65, 0x18, 0x6D, 0xB8, 0xEC, 0x30, 0xF0, +0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, 0x01, 0x6D, +0x12, 0xEA, 0x69, 0xE2, 0xC4, 0xF5, 0x4C, 0xA2, +0xAC, 0xEA, 0xCC, 0xEA, 0x2F, 0x2A, 0xD8, 0x67, +0x18, 0x6F, 0xF8, 0xEE, 0x04, 0x96, 0xC4, 0x36, +0x04, 0xD6, 0x03, 0x6E, 0xCB, 0xEE, 0x12, 0xEC, +0x71, 0xE4, 0xC4, 0xF5, 0xEC, 0xA4, 0xEC, 0xEE, +0x04, 0x97, 0xED, 0xEE, 0xC4, 0xF5, 0xCC, 0xC4, +0x0A, 0x96, 0xC4, 0xF5, 0xDC, 0xDC, 0x0B, 0x97, +0xE4, 0xF5, 0xE0, 0xDC, 0x0C, 0x96, 0x18, 0x6F, +0xC4, 0xF5, 0xD0, 0xDC, 0xD8, 0x67, 0x01, 0x4E, +0xF8, 0xEE, 0x12, 0xEE, 0x6D, 0xE6, 0xC4, 0xF5, +0x40, 0xDB, 0xA4, 0xF5, 0x1C, 0xDB, 0xC4, 0xF5, +0x4D, 0xC4, 0xC4, 0xF5, 0x4C, 0xA4, 0xC4, 0xF5, +0x2E, 0xC4, 0x4D, 0xED, 0xC4, 0xF5, 0xAC, 0xC4, +0x01, 0x6A, 0x04, 0x10, 0x01, 0x4C, 0x0A, 0x74, +0xBC, 0x61, 0x00, 0x6A, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, +0x06, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x4F, 0xF6, +0x00, 0x4A, 0x00, 0x6C, 0x4A, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x4F, 0xF6, 0x00, 0x4A, 0x00, 0x6B, +0x18, 0x6D, 0xB8, 0xEB, 0x30, 0xF0, 0x20, 0x6C, +0x6B, 0xF0, 0x08, 0x4C, 0x12, 0xED, 0x91, 0xE5, +0xC4, 0xF5, 0xCC, 0xA4, 0x01, 0x6D, 0xAC, 0xEE, +0x08, 0x26, 0xC4, 0xF5, 0x8C, 0xA4, 0x86, 0x34, +0xAC, 0xEC, 0x03, 0x24, 0x80, 0x9A, 0x01, 0x4C, +0x80, 0xDA, 0x01, 0x4B, 0x0A, 0x73, 0x18, 0x4A, +0xE7, 0x61, 0x00, 0x18, 0x0A, 0xE5, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA0, 0xF0, 0x7E, 0xA2, 0xA4, 0xF5, 0xB9, 0xA2, +0xFF, 0x6C, 0x76, 0x33, 0xAE, 0xEB, 0x12, 0x2B, +0xA0, 0xF0, 0xBB, 0xA2, 0x7F, 0x6B, 0xAC, 0xEB, +0x8C, 0xEB, 0x0C, 0x23, 0xA0, 0xF0, 0xBC, 0xA2, +0x0F, 0x6B, 0xAC, 0xEB, 0x8C, 0xEB, 0x06, 0x23, +0x04, 0x93, 0x03, 0xF6, 0x46, 0xA2, 0x78, 0xEA, +0x12, 0xEA, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0x93, 0x2F, 0xF6, 0x44, 0x9A, 0x6E, 0xEA, +0x52, 0x22, 0x04, 0x94, 0x00, 0x18, 0x2B, 0xE5, +0x4E, 0x10, 0x18, 0x6D, 0xB8, 0xEC, 0x30, 0xF0, +0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, 0x12, 0xED, +0x6D, 0xE5, 0xC4, 0xF5, 0xCC, 0xA3, 0x01, 0x6D, +0xAC, 0xEE, 0x0A, 0x26, 0xC4, 0xF5, 0x6C, 0xA3, +0x66, 0x33, 0xAC, 0xEB, 0xFF, 0x6D, 0xAC, 0xEB, +0x03, 0x2B, 0x60, 0x9A, 0x01, 0x4B, 0x60, 0xDA, +0x01, 0x4C, 0x0A, 0x74, 0x18, 0x4A, 0xE5, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA4, 0xF5, 0x79, 0xA2, 0xFF, 0x73, 0x2B, 0x61, +0xC4, 0xF5, 0x68, 0x9A, 0x01, 0x4B, 0xC4, 0xF5, +0x68, 0xDA, 0xC4, 0xF5, 0x44, 0x9A, 0x4E, 0xEB, +0x22, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0x4F, 0xF6, +0x00, 0x4A, 0x18, 0x6D, 0xB8, 0xEB, 0x30, 0xF0, +0x20, 0x6C, 0x6B, 0xF0, 0x08, 0x4C, 0x12, 0xED, +0x91, 0xE5, 0xC4, 0xF5, 0xCC, 0xA4, 0x01, 0x6D, +0xAC, 0xEE, 0x08, 0x26, 0xC4, 0xF5, 0x8C, 0xA4, +0x86, 0x34, 0xAC, 0xEC, 0x03, 0x24, 0x80, 0x9A, +0x01, 0x4C, 0x80, 0xDA, 0x01, 0x4B, 0x0A, 0x73, +0x18, 0x4A, 0xE7, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x78, 0x67, 0x2F, 0xF6, 0x70, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xA0, 0xF0, +0x64, 0x9A, 0x02, 0xF0, 0x00, 0x6C, 0x8D, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x07, 0x97, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0x2F, 0xF6, 0x15, 0x48, 0x00, 0x69, 0x18, 0x6A, +0x58, 0xE9, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, +0x08, 0x4B, 0x12, 0xEA, 0x69, 0xE2, 0xC4, 0xF5, +0x8C, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, 0x27, 0x23, +0x00, 0xF0, 0x8B, 0x98, 0x00, 0xF0, 0x67, 0x98, +0x63, 0xEC, 0x21, 0x61, 0x61, 0x80, 0x81, 0x43, +0x04, 0xD4, 0x07, 0x2C, 0x00, 0xF0, 0x4F, 0x98, +0x00, 0xF0, 0x93, 0x98, 0x40, 0xEA, 0x04, 0x92, +0x14, 0x10, 0x80, 0xA0, 0x01, 0x4C, 0x80, 0xC0, +0x80, 0xA0, 0x82, 0xEB, 0x08, 0x60, 0xC4, 0xF5, +0x8C, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0xC4, 0xF5, 0x6C, 0xC2, 0x08, 0x10, 0x00, 0xF0, +0x4F, 0x98, 0x00, 0xF0, 0x93, 0x98, 0x40, 0xEA, +0x00, 0x6A, 0x00, 0xF0, 0x4B, 0xD8, 0x01, 0x49, +0x0A, 0x71, 0x18, 0x48, 0xC8, 0x61, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0x70, 0x9B, +0x10, 0xF0, 0x24, 0x6A, 0x53, 0xF2, 0x19, 0x4A, +0x40, 0xDB, 0x01, 0x4A, 0x40, 0xDB, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x30, 0x9A, +0x10, 0xF0, 0x24, 0x68, 0x73, 0xF2, 0x11, 0x48, +0x00, 0xD9, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF5, +0x58, 0x9A, 0x01, 0x48, 0x40, 0xEA, 0x00, 0xD9, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF0, 0x70, 0x9B, 0x10, 0xF0, 0x24, 0x6A, +0xB3, 0xF2, 0x05, 0x4A, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF7, 0x7C, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF2, 0x48, 0x9A, 0x80, 0x9B, +0xA4, 0x67, 0x4C, 0xED, 0x4E, 0xED, 0x02, 0x25, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, 0x5C, 0x9A, +0x01, 0x6B, 0x40, 0x9A, 0x6C, 0xEA, 0x60, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, 0x40, 0x9A, +0x00, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, +0x44, 0x9A, 0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF7, 0x48, 0x9A, 0xC0, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF7, 0x4C, 0x9A, 0xA0, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, 0x50, 0x9A, +0x80, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, +0x54, 0x9A, 0x40, 0x9A, 0x41, 0x22, 0x30, 0xF0, +0x20, 0x69, 0xE3, 0xF7, 0x38, 0x99, 0x60, 0xD9, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF7, 0x7C, 0x9B, +0x00, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, +0x70, 0x9B, 0xE0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF1, 0x60, 0x9B, 0xC0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF1, 0x64, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF0, 0x60, 0x9B, +0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF0, +0x64, 0x9B, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF2, +0x80, 0x9C, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x68, 0x9A, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0x5C, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x7D, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x77, 0xF0, 0x24, 0x6C, 0xC0, 0xF1, +0x04, 0x4C, 0xAE, 0xB8, 0x00, 0x65, 0xA0, 0xDC, +0x9A, 0xB8, 0x00, 0x65, 0xBB, 0xB8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0x70, 0x9B, +0x10, 0xF0, 0x24, 0x6A, 0xB3, 0xF2, 0x06, 0x4A, +0x40, 0xDB, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFF, 0x6B, 0x6C, 0xEC, +0x0F, 0x6A, 0x8C, 0xEA, 0x03, 0x2A, 0x92, 0x32, +0x6C, 0xEA, 0x20, 0xE8, 0x07, 0x4A, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x04, 0x2A, 0x01, 0x6C, +0x08, 0xF0, 0x00, 0x6D, 0x05, 0x10, 0x44, 0x32, +0xFF, 0x4A, 0x01, 0x6D, 0x02, 0x6C, 0xA4, 0xEA, +0x80, 0x18, 0xA9, 0x76, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x04, 0x2A, 0x01, 0x6C, +0x04, 0xF0, 0x00, 0x6D, 0x05, 0x10, 0xFF, 0x4A, +0x44, 0x32, 0x01, 0x6D, 0x02, 0x6C, 0xA4, 0xEA, +0x80, 0x18, 0xA9, 0x76, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x04, 0x2A, 0x01, 0x6C, +0x08, 0xF0, 0x00, 0x6D, 0x05, 0x10, 0x44, 0x32, +0xFF, 0x4A, 0x01, 0x6D, 0x02, 0x6C, 0xA4, 0xEA, +0x80, 0x18, 0xC6, 0x76, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x04, 0x2A, 0x01, 0x6C, +0x04, 0xF0, 0x00, 0x6D, 0x05, 0x10, 0xFF, 0x4A, +0x44, 0x32, 0x01, 0x6D, 0x02, 0x6C, 0xA4, 0xEA, +0x80, 0x18, 0xC6, 0x76, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6D, 0x8C, 0xED, 0x01, 0x6C, 0x44, 0x67, +0x15, 0x4D, 0x44, 0xED, 0xA2, 0x67, 0x80, 0x18, +0x45, 0x76, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6D, 0x8C, 0xED, +0x04, 0x2D, 0x03, 0x6C, 0x10, 0xF0, 0x00, 0x6D, +0x05, 0x10, 0x1B, 0x4D, 0x01, 0x6A, 0x44, 0xED, +0x03, 0x6C, 0xA2, 0x67, 0x80, 0x18, 0x45, 0x76, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0x00, 0x18, 0xF5, 0xE6, 0x01, 0x6D, 0x02, 0x6C, +0xA4, 0xEA, 0x80, 0x18, 0x45, 0x76, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0x00, 0x18, 0xF5, 0xE6, +0x01, 0x6D, 0x03, 0x6C, 0xA4, 0xEA, 0x80, 0x18, +0x45, 0x76, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6D, 0x8C, 0xED, +0x18, 0x4D, 0x01, 0x6A, 0x44, 0xED, 0x00, 0x6C, +0xA2, 0x67, 0x80, 0x18, 0x45, 0x76, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6D, 0x8C, 0xED, 0x01, 0x6C, 0x44, 0x67, +0x15, 0x4D, 0x44, 0xED, 0xA2, 0x67, 0x80, 0x18, +0x76, 0x76, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6D, 0x8C, 0xED, +0x04, 0x2D, 0x03, 0x6C, 0x10, 0xF0, 0x00, 0x6D, +0x05, 0x10, 0x1B, 0x4D, 0x01, 0x6A, 0x44, 0xED, +0x03, 0x6C, 0xA2, 0x67, 0x80, 0x18, 0x76, 0x76, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0x00, 0x18, 0xF5, 0xE6, 0x01, 0x6D, 0x02, 0x6C, +0xA4, 0xEA, 0x80, 0x18, 0x76, 0x76, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0x00, 0x18, 0xF5, 0xE6, +0x01, 0x6D, 0x03, 0x6C, 0xA4, 0xEA, 0x80, 0x18, +0x76, 0x76, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6D, 0x8C, 0xED, +0x18, 0x4D, 0x01, 0x6A, 0x44, 0xED, 0x00, 0x6C, +0xA2, 0x67, 0x80, 0x18, 0x76, 0x76, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0x70, 0x9B, +0x10, 0xF0, 0x24, 0x6A, 0xB3, 0xF5, 0x1D, 0x4A, +0x40, 0xDB, 0x00, 0x18, 0xD2, 0xDC, 0x30, 0xF0, +0x20, 0x6A, 0xCB, 0xF0, 0x64, 0x9A, 0x6C, 0x23, +0x01, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0xEE, 0xDC, 0x30, 0xF0, 0x20, 0x6A, 0xCB, 0xF0, +0x44, 0x9A, 0x02, 0x6B, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0xA1, 0xDF, 0x30, 0xF0, 0x20, 0x6A, +0xCB, 0xF0, 0x44, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0x88, 0xDF, 0x30, 0xF0, +0x20, 0x6A, 0xCB, 0xF0, 0x44, 0x9A, 0x08, 0x6B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x84, 0xDF, +0x30, 0xF0, 0x20, 0x6A, 0xCB, 0xF0, 0x44, 0x9A, +0x10, 0x6B, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0xF7, 0xDC, 0x30, 0xF0, 0x20, 0x6A, 0xCB, 0xF0, +0x44, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0xF8, 0xDC, 0x30, 0xF0, 0x20, 0x6A, +0xCB, 0xF0, 0x44, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0xF9, 0xDC, 0x30, 0xF0, +0x20, 0x6A, 0xCB, 0xF0, 0x44, 0x9A, 0x80, 0x6B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x80, 0xDF, +0x30, 0xF0, 0x20, 0x6B, 0xCB, 0xF0, 0x64, 0x9B, +0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0x78, 0xDF, 0x30, 0xF0, 0x20, 0x6B, +0xCB, 0xF0, 0x64, 0x9B, 0x04, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0xFA, 0xDC, +0x30, 0xF0, 0x20, 0x6B, 0xCB, 0xF0, 0x64, 0x9B, +0x08, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0xFB, 0xDC, 0x30, 0xF0, 0x20, 0x6B, +0xCB, 0xF0, 0x64, 0x9B, 0x10, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0xFC, 0xDC, +0x30, 0xF0, 0x20, 0x6A, 0xCB, 0xF0, 0x68, 0x9A, +0xA0, 0xF0, 0x02, 0x23, 0x01, 0x6A, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0x3D, 0xDF, 0x30, 0xF0, +0x20, 0x6A, 0xCB, 0xF0, 0x48, 0x9A, 0x02, 0x6B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0xFD, 0xDC, +0x30, 0xF0, 0x20, 0x6B, 0xCB, 0xF0, 0x68, 0x9B, +0x04, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, +0x00, 0x6C, 0x00, 0x18, 0xEF, 0xDE, 0x30, 0xF0, +0x20, 0x6B, 0xCB, 0xF0, 0x68, 0x9B, 0x08, 0xF0, +0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, +0x00, 0x18, 0xDA, 0xDD, 0x30, 0xF0, 0x20, 0x6B, +0xCB, 0xF0, 0x68, 0x9B, 0x10, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x02, 0x22, 0x80, 0x18, 0x7F, 0x6F, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF1, 0x58, 0x9A, 0xCB, 0xF0, 0x68, 0x9B, +0x6C, 0xEA, 0x02, 0x22, 0x80, 0x18, 0x89, 0x6F, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF1, 0x50, 0x9A, 0xCB, 0xF0, 0x68, 0x9B, +0x6C, 0xEA, 0x02, 0x22, 0x80, 0x18, 0x93, 0x6F, +0x30, 0xF0, 0x20, 0x6A, 0xCB, 0xF0, 0x48, 0x9A, +0x40, 0x6B, 0x6C, 0xEA, 0x02, 0x22, 0x80, 0x18, +0x2E, 0x74, 0x30, 0xF0, 0x20, 0x6A, 0xCB, 0xF0, +0x48, 0x9A, 0x80, 0x6B, 0x6C, 0xEA, 0x02, 0x22, +0x80, 0x18, 0xAD, 0x73, 0x30, 0xF0, 0x20, 0x6B, +0xCB, 0xF0, 0x68, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, +0x6C, 0xEA, 0x02, 0x22, 0x80, 0x18, 0x2A, 0x74, +0x30, 0xF0, 0x20, 0x6B, 0xCB, 0xF0, 0x68, 0x9B, +0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x02, 0x22, +0x80, 0x18, 0xA9, 0x73, 0x30, 0xF0, 0x20, 0x6B, +0xCB, 0xF0, 0x68, 0x9B, 0x00, 0xF4, 0x00, 0x6A, +0x6C, 0xEA, 0x02, 0x22, 0x80, 0x18, 0x26, 0x74, +0x30, 0xF0, 0x20, 0x6B, 0xCB, 0xF0, 0x68, 0x9B, +0x01, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x02, 0x22, +0x80, 0x18, 0xA5, 0x73, 0x30, 0xF0, 0x20, 0x6B, +0xCB, 0xF0, 0x68, 0x9B, 0x02, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0xFE, 0xDC, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF2, 0x54, 0x9A, 0xCB, 0xF0, 0x68, 0x9B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x32, 0xDD, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF2, 0x48, 0x9A, 0xCB, 0xF0, 0x68, 0x9B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0xEB, 0xDE, +0x30, 0xF0, 0x20, 0x6A, 0xCB, 0xF0, 0x6C, 0x9A, +0x55, 0x23, 0x01, 0x6A, 0x6C, 0xEA, 0x03, 0x22, +0x01, 0x6C, 0x00, 0x18, 0xEF, 0xDE, 0x30, 0xF0, +0x20, 0x6A, 0xCB, 0xF0, 0x4C, 0x9A, 0x02, 0x6B, +0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, +0xDA, 0xDD, 0x30, 0xF0, 0x20, 0x6A, 0xCB, 0xF0, +0x4C, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x02, 0x6C, 0x00, 0x18, 0xEF, 0xDE, 0x30, 0xF0, +0x20, 0x6A, 0xCB, 0xF0, 0x4C, 0x9A, 0x08, 0x6B, +0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, +0xDA, 0xDD, 0x30, 0xF0, 0x20, 0x6A, 0xCB, 0xF0, +0x4C, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x03, 0x6C, 0x00, 0x18, 0xEF, 0xDE, 0x30, 0xF0, +0x20, 0x6A, 0xCB, 0xF0, 0x4C, 0x9A, 0x20, 0x6B, +0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, +0xDA, 0xDD, 0x30, 0xF0, 0x20, 0x6A, 0xCB, 0xF0, +0x4C, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x04, 0x6C, 0x00, 0x18, 0xEF, 0xDE, 0x30, 0xF0, +0x20, 0x6A, 0xCB, 0xF0, 0x4C, 0x9A, 0x80, 0x6B, +0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, +0xDA, 0xDD, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, +0x70, 0x9B, 0x10, 0xF0, 0x24, 0x6A, 0xB3, 0xF5, +0x1E, 0x4A, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0x70, 0x9B, +0x10, 0xF0, 0x24, 0x6A, 0xD4, 0xF0, 0x05, 0x4A, +0x40, 0xDB, 0x00, 0x18, 0xA2, 0xDC, 0x30, 0xF0, +0x20, 0x6A, 0xAB, 0xF0, 0x74, 0x9A, 0xC0, 0xF0, +0x16, 0x23, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, +0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, 0xAC, 0xDF, +0x30, 0xF0, 0x20, 0x6B, 0xAB, 0xF0, 0x74, 0x9B, +0x04, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, +0x01, 0x6C, 0x00, 0x18, 0xAC, 0xDF, 0x30, 0xF0, +0x20, 0x6B, 0xAB, 0xF0, 0x74, 0x9B, 0x08, 0xF0, +0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, +0x00, 0x18, 0xAC, 0xDF, 0x30, 0xF0, 0x20, 0x6B, +0xAB, 0xF0, 0x74, 0x9B, 0x10, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, +0xAC, 0xDF, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF1, 0x58, 0x9A, 0xAB, 0xF0, +0x74, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, +0x00, 0x18, 0xAC, 0xDF, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0x50, 0x9A, +0xAB, 0xF0, 0x74, 0x9B, 0x6C, 0xEA, 0x03, 0x22, +0x05, 0x6C, 0x00, 0x18, 0xAC, 0xDF, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, +0x54, 0x9A, 0xAB, 0xF0, 0x74, 0x9B, 0x6C, 0xEA, +0x03, 0x22, 0x06, 0x6C, 0x00, 0x18, 0xAC, 0xDF, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF1, 0x58, 0x9A, 0xAB, 0xF0, 0x74, 0x9B, +0x6C, 0xEA, 0x03, 0x22, 0x07, 0x6C, 0x00, 0x18, +0xAC, 0xDF, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF2, 0x40, 0x9A, 0xAB, 0xF0, +0x74, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x08, 0x6C, +0x00, 0x18, 0xAC, 0xDF, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, 0x4C, 0x9A, +0xAB, 0xF0, 0x74, 0x9B, 0x6C, 0xEA, 0x03, 0x22, +0x09, 0x6C, 0x00, 0x18, 0xAC, 0xDF, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF6, +0x44, 0x9A, 0xAB, 0xF0, 0x74, 0x9B, 0x6C, 0xEA, +0x03, 0x22, 0x0A, 0x6C, 0x00, 0x18, 0xAC, 0xDF, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF1, 0x54, 0x9A, 0xAB, 0xF0, 0x74, 0x9B, +0x6C, 0xEA, 0x03, 0x22, 0x0B, 0x6C, 0x00, 0x18, +0xAC, 0xDF, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF2, 0x54, 0x9A, 0xAB, 0xF0, +0x74, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x0C, 0x6C, +0x00, 0x18, 0xAC, 0xDF, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, 0x48, 0x9A, +0xAB, 0xF0, 0x74, 0x9B, 0x6C, 0xEA, 0x03, 0x22, +0x0D, 0x6C, 0x00, 0x18, 0xAC, 0xDF, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, +0x4C, 0x9A, 0xAB, 0xF0, 0x74, 0x9B, 0x6C, 0xEA, +0x03, 0x22, 0x0E, 0x6C, 0x00, 0x18, 0xAC, 0xDF, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF2, 0x58, 0x9A, 0xAB, 0xF0, 0x74, 0x9B, +0x6C, 0xEA, 0x03, 0x22, 0x0F, 0x6C, 0x00, 0x18, +0xAC, 0xDF, 0x30, 0xF0, 0x20, 0x6A, 0xAB, 0xF0, +0x54, 0x9A, 0x80, 0x6B, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0xFF, 0xDF, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF0, 0x70, 0x9B, 0x10, 0xF0, 0x24, 0x6A, +0xD4, 0xF0, 0x06, 0x4A, 0x40, 0xDB, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, 0x70, 0x9B, +0x10, 0xF0, 0x24, 0x6A, 0x94, 0xF2, 0x1D, 0x4A, +0x40, 0xDB, 0x00, 0x18, 0xA9, 0xDC, 0x30, 0xF0, +0x20, 0x6A, 0x8B, 0xF0, 0x68, 0x9A, 0xE0, 0xF0, +0x1E, 0x23, 0x08, 0x6A, 0x6C, 0xEA, 0x03, 0x22, +0x00, 0x6C, 0x00, 0x18, 0x7B, 0xDD, 0x30, 0xF0, +0x20, 0x6A, 0x8B, 0xF0, 0x48, 0x9A, 0x02, 0x6B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0xE6, 0xDC, +0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF0, 0x48, 0x9A, +0x10, 0x6B, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0xFB, 0xDF, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF0, +0x48, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0xF7, 0xDF, 0x30, 0xF0, 0x20, 0x6A, +0x8B, 0xF0, 0x48, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0xEB, 0xDC, 0x30, 0xF0, +0x20, 0x6A, 0x8B, 0xF0, 0x48, 0x9A, 0x80, 0x6B, +0x6C, 0xEA, 0x05, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x48, 0x9A, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x8B, 0xF0, 0x68, 0x9B, 0xFF, 0x6A, +0x01, 0x4A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0xF3, 0xDF, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF0, +0x68, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0xEF, 0xDF, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF0, +0x48, 0x9A, 0x8B, 0xF0, 0x68, 0x9B, 0x6C, 0xEA, +0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, +0x54, 0x9A, 0x6C, 0xEA, 0x04, 0x22, 0x00, 0x6C, +0x00, 0x18, 0x93, 0xDE, 0x03, 0x10, 0x00, 0x6C, +0x00, 0x18, 0x3D, 0xDD, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF0, 0x4C, 0x9A, +0x8B, 0xF0, 0x68, 0x9B, 0x6C, 0xEA, 0x0D, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x48, 0x9A, +0x6C, 0xEA, 0x04, 0x22, 0x01, 0x6C, 0x00, 0x18, +0x93, 0xDE, 0x03, 0x10, 0x01, 0x6C, 0x00, 0x18, +0x3D, 0xDD, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x04, 0xF0, 0x50, 0x9A, 0x8B, 0xF0, +0x68, 0x9B, 0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF2, 0x4C, 0x9A, 0x6C, 0xEA, +0x04, 0x22, 0x02, 0x6C, 0x00, 0x18, 0x93, 0xDE, +0x03, 0x10, 0x02, 0x6C, 0x00, 0x18, 0x3D, 0xDD, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x04, 0xF0, 0x54, 0x9A, 0x8B, 0xF0, 0x68, 0x9B, +0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF2, 0x58, 0x9A, 0x6C, 0xEA, 0x04, 0x22, +0x03, 0x6C, 0x00, 0x18, 0x93, 0xDE, 0x03, 0x10, +0x03, 0x6C, 0x00, 0x18, 0x3D, 0xDD, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF0, +0x58, 0x9A, 0x8B, 0xF0, 0x68, 0x9B, 0x6C, 0xEA, +0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, +0x54, 0x9A, 0x6C, 0xEA, 0x04, 0x22, 0x04, 0x6C, +0x00, 0x18, 0x93, 0xDE, 0x03, 0x10, 0x04, 0x6C, +0x00, 0x18, 0x3D, 0xDD, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF0, 0x5C, 0x9A, +0x8B, 0xF0, 0x68, 0x9B, 0x6C, 0xEA, 0x0D, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0x40, 0x9A, +0x6C, 0xEA, 0x04, 0x22, 0x05, 0x6C, 0x00, 0x18, +0x93, 0xDE, 0x03, 0x10, 0x05, 0x6C, 0x00, 0x18, +0x3D, 0xDD, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x24, 0xF0, 0x40, 0x9A, 0x8B, 0xF0, +0x68, 0x9B, 0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF1, 0x54, 0x9A, 0x6C, 0xEA, +0x04, 0x22, 0x06, 0x6C, 0x00, 0x18, 0x93, 0xDE, +0x03, 0x10, 0x06, 0x6C, 0x00, 0x18, 0x3D, 0xDD, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x24, 0xF0, 0x44, 0x9A, 0x8B, 0xF0, 0x68, 0x9B, +0x6C, 0xEA, 0x09, 0x22, 0x00, 0x53, 0x04, 0x60, +0x07, 0x6C, 0x00, 0x18, 0x93, 0xDE, 0x03, 0x10, +0x07, 0x6C, 0x00, 0x18, 0x3D, 0xDD, 0x30, 0xF0, +0x20, 0x6A, 0x8B, 0xF0, 0x6C, 0x9A, 0x80, 0xF0, +0x19, 0x23, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, +0x4C, 0x9A, 0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, +0x00, 0x18, 0x40, 0xDE, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF6, 0x44, 0x9A, +0x8B, 0xF0, 0x6C, 0x9B, 0x6C, 0xEA, 0x03, 0x22, +0x01, 0x6C, 0x00, 0x18, 0x40, 0xDE, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, +0x54, 0x9A, 0x8B, 0xF0, 0x6C, 0x9B, 0x6C, 0xEA, +0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, 0x40, 0xDE, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF2, 0x54, 0x9A, 0x8B, 0xF0, 0x6C, 0x9B, +0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, +0x40, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF2, 0x48, 0x9A, 0x8B, 0xF0, +0x6C, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, +0x00, 0x18, 0x40, 0xDE, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0x50, 0x9A, +0x8B, 0xF0, 0x6C, 0x9B, 0x6C, 0xEA, 0x03, 0x22, +0x00, 0x6C, 0x00, 0x18, 0x3E, 0xDD, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, +0x54, 0x9A, 0x8B, 0xF0, 0x6C, 0x9B, 0x6C, 0xEA, +0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, 0xB0, 0xDD, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF1, 0x58, 0x9A, 0x8B, 0xF0, 0x6C, 0x9B, +0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, +0x12, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF2, 0x40, 0x9A, 0x8B, 0xF0, +0x6C, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, +0x00, 0x18, 0x93, 0xDD, 0x30, 0xF0, 0x20, 0x6B, +0x8B, 0xF0, 0x6C, 0x9B, 0x08, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0xE0, 0xDF, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF1, 0x58, 0x9A, 0x8B, 0xF0, 0x6C, 0x9B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0xE4, 0xDF, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0x6C, 0x9B, +0x89, 0x9A, 0x8C, 0xEB, 0x07, 0x23, 0xA0, 0xF0, +0x64, 0x9A, 0x00, 0xF2, 0x00, 0x6C, 0x8D, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x8A, 0x9A, 0x7B, 0x24, +0x01, 0x6B, 0x6C, 0xEC, 0x06, 0x24, 0x9F, 0x9A, +0x6D, 0xEC, 0x9F, 0xDA, 0x00, 0x6C, 0x00, 0x18, +0x44, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF0, +0x50, 0x9A, 0x02, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x10, 0x6C, 0x00, 0x18, 0x0C, 0xE0, 0x30, 0xF0, +0x20, 0x6A, 0x8B, 0xF0, 0x50, 0x9A, 0x04, 0x6B, +0x6C, 0xEA, 0x03, 0x22, 0x20, 0x6C, 0x00, 0x18, +0x0C, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF0, +0x50, 0x9A, 0x08, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x30, 0x6C, 0x00, 0x18, 0x0C, 0xE0, 0x30, 0xF0, +0x20, 0x6A, 0x8B, 0xF0, 0x50, 0x9A, 0x10, 0x6B, +0x6C, 0xEA, 0x03, 0x22, 0x40, 0x6C, 0x00, 0x18, +0x0C, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF0, +0x50, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x50, 0x6C, 0x00, 0x18, 0x0C, 0xE0, 0x30, 0xF0, +0x20, 0x6A, 0x8B, 0xF0, 0x50, 0x9A, 0x40, 0x6B, +0x6C, 0xEA, 0x03, 0x22, 0x60, 0x6C, 0x00, 0x18, +0x0C, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF0, +0x50, 0x9A, 0x80, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x70, 0x6C, 0x00, 0x18, 0x0C, 0xE0, 0x30, 0xF0, +0x20, 0x6B, 0x8B, 0xF0, 0x70, 0x9B, 0xFF, 0x6A, +0x01, 0x4A, 0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, +0x00, 0x18, 0x44, 0xE0, 0x30, 0xF0, 0x20, 0x6B, +0x8B, 0xF0, 0x70, 0x9B, 0x00, 0xF2, 0x00, 0x6A, +0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, +0x44, 0xE0, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF0, +0x70, 0x9B, 0x00, 0xF4, 0x00, 0x6A, 0x6C, 0xEA, +0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, 0x44, 0xE0, +0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF0, 0x70, 0x9B, +0x01, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, +0x04, 0x6C, 0x00, 0x18, 0x44, 0xE0, 0x30, 0xF0, +0x20, 0x6A, 0x8B, 0xF0, 0x74, 0x9A, 0xA0, 0xF0, +0x13, 0x23, 0x01, 0x6A, 0x6C, 0xEA, 0x03, 0x22, +0x00, 0x6C, 0x00, 0x18, 0xC3, 0xDF, 0x30, 0xF0, +0x20, 0x6A, 0x8B, 0xF0, 0x54, 0x9A, 0x02, 0x6B, +0x6C, 0xEA, 0x03, 0x22, 0x10, 0x6C, 0x00, 0x18, +0xBA, 0xDF, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF0, +0x54, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x20, 0x6C, 0x00, 0x18, 0xBA, 0xDF, 0x30, 0xF0, +0x20, 0x6A, 0x8B, 0xF0, 0x54, 0x9A, 0x08, 0x6B, +0x6C, 0xEA, 0x03, 0x22, 0x30, 0x6C, 0x00, 0x18, +0xBA, 0xDF, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF0, +0x54, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x40, 0x6C, 0x00, 0x18, 0xBA, 0xDF, 0x30, 0xF0, +0x20, 0x6A, 0x8B, 0xF0, 0x54, 0x9A, 0x20, 0x6B, +0x6C, 0xEA, 0x03, 0x22, 0x50, 0x6C, 0x00, 0x18, +0xBA, 0xDF, 0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF0, +0x54, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x60, 0x6C, 0x00, 0x18, 0xBA, 0xDF, 0x30, 0xF0, +0x20, 0x6A, 0x8B, 0xF0, 0x54, 0x9A, 0x80, 0x6B, +0x6C, 0xEA, 0x03, 0x22, 0x70, 0x6C, 0x00, 0x18, +0xBA, 0xDF, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF0, +0x74, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, 0xC3, 0xDF, +0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF0, 0x74, 0x9B, +0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, +0x02, 0x6C, 0x00, 0x18, 0xC3, 0xDF, 0x30, 0xF0, +0x20, 0x6B, 0x8B, 0xF0, 0x74, 0x9B, 0x00, 0xF4, +0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, +0x00, 0x18, 0xC3, 0xDF, 0x30, 0xF0, 0x20, 0x6B, +0x8B, 0xF0, 0x74, 0x9B, 0x01, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, +0xC3, 0xDF, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF0, +0x74, 0x9B, 0x10, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, +0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, 0xCA, 0xC1, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF2, 0x54, 0x9A, 0x8B, 0xF0, 0x74, 0x9B, +0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, +0xCA, 0xC1, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF2, 0x40, 0x9A, 0x8B, 0xF0, +0x74, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, +0x00, 0x18, 0xCA, 0xC1, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0x54, 0x9A, +0x8B, 0xF0, 0x74, 0x9B, 0x6C, 0xEA, 0x03, 0x22, +0x03, 0x6C, 0x00, 0x18, 0xCA, 0xC1, 0x30, 0xF0, +0x20, 0x6A, 0x8B, 0xF0, 0x54, 0x9A, 0x00, 0x52, +0x03, 0x60, 0x04, 0x6C, 0x00, 0x18, 0xCA, 0xC1, +0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF0, 0x78, 0x9A, +0xC0, 0xF0, 0x18, 0x23, 0x01, 0x6A, 0x6C, 0xEA, +0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, 0x3E, 0xDD, +0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF0, 0x58, 0x9A, +0x02, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, +0x00, 0x18, 0xB0, 0xDD, 0x30, 0xF0, 0x20, 0x6A, +0x8B, 0xF0, 0x58, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, +0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, 0x12, 0xDE, +0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF0, 0x58, 0x9A, +0x08, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, +0x00, 0x18, 0x93, 0xDD, 0x30, 0xF0, 0x20, 0x6A, +0x8B, 0xF0, 0x58, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, +0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, 0x3E, 0xDD, +0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF0, 0x58, 0x9A, +0x20, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, +0x00, 0x18, 0xB0, 0xDD, 0x30, 0xF0, 0x20, 0x6A, +0x8B, 0xF0, 0x58, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, +0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, 0x12, 0xDE, +0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF0, 0x58, 0x9A, +0x80, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, +0x00, 0x18, 0x93, 0xDD, 0x30, 0xF0, 0x20, 0x6B, +0x8B, 0xF0, 0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, +0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, +0x3E, 0xDD, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF0, +0x78, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, +0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, 0xB0, 0xDD, +0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF0, 0x78, 0x9B, +0x00, 0xF4, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, +0x03, 0x6C, 0x00, 0x18, 0x12, 0xDE, 0x30, 0xF0, +0x20, 0x6B, 0x8B, 0xF0, 0x78, 0x9B, 0x01, 0xF0, +0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, +0x00, 0x18, 0x93, 0xDD, 0x30, 0xF0, 0x20, 0x6B, +0x8B, 0xF0, 0x78, 0x9B, 0x02, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, +0x3E, 0xDD, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF0, +0x78, 0x9B, 0x04, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, +0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, 0xB0, 0xDD, +0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF0, 0x78, 0x9B, +0x08, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, +0x04, 0x6C, 0x00, 0x18, 0x12, 0xDE, 0x30, 0xF0, +0x20, 0x6B, 0x8B, 0xF0, 0x78, 0x9B, 0x10, 0xF0, +0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, +0x00, 0x18, 0x93, 0xDD, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0x58, 0x9A, +0x8B, 0xF0, 0x78, 0x9B, 0x6C, 0xEA, 0x03, 0x22, +0x01, 0x6C, 0x00, 0x18, 0x7B, 0xDD, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, +0x50, 0x9A, 0x8B, 0xF0, 0x78, 0x9B, 0x6C, 0xEA, +0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, 0x7B, 0xDD, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF1, 0x54, 0x9A, 0x8B, 0xF0, 0x78, 0x9B, +0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, +0x7B, 0xDD, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF1, 0x58, 0x9A, 0x8B, 0xF0, +0x78, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, +0x00, 0x18, 0x7B, 0xDD, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF0, 0x70, 0x9B, 0x10, 0xF0, 0x24, 0x6A, +0x94, 0xF2, 0x1E, 0x4A, 0x40, 0xDB, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xDD, 0x63, 0x45, 0x62, +0x44, 0xD1, 0x43, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xFF, 0x69, 0x24, 0xF0, 0x50, 0x9A, 0x8C, 0xE9, +0x30, 0x31, 0x49, 0xE1, 0x40, 0xD2, 0x40, 0xA2, +0x00, 0xF6, 0x40, 0x32, 0x00, 0xF6, 0x43, 0x32, +0x00, 0x52, 0x40, 0x60, 0x01, 0x6A, 0x7D, 0x67, +0x4B, 0xEA, 0x54, 0xC3, 0x0F, 0x6A, 0x56, 0xC3, +0x10, 0x6A, 0x57, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF3, 0x48, 0x9A, 0x30, 0xF0, 0x20, 0x68, +0x06, 0x04, 0x49, 0xE1, 0x40, 0x9A, 0x04, 0x05, +0x04, 0x6E, 0x04, 0xD2, 0x80, 0xF2, 0x4C, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, +0x54, 0x9A, 0x07, 0x04, 0x04, 0x05, 0x49, 0xE1, +0x40, 0x9A, 0x04, 0x6E, 0x04, 0xD2, 0x80, 0xF2, +0x4C, 0x98, 0x40, 0xEA, 0x40, 0x93, 0x08, 0x04, +0x04, 0x05, 0x40, 0x9B, 0x04, 0x6E, 0x04, 0xD2, +0x80, 0xF2, 0x4C, 0x98, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x24, 0xF0, 0x58, 0x9A, 0x09, 0x04, +0x04, 0x05, 0x45, 0xE1, 0x40, 0x99, 0x04, 0x6E, +0x04, 0xD2, 0x80, 0xF2, 0x4C, 0x98, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, +0x05, 0x04, 0x40, 0xEA, 0x45, 0x97, 0x44, 0x91, +0x43, 0x90, 0x23, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF3, 0x88, 0x9C, +0x50, 0x33, 0x91, 0xE3, 0x80, 0x9C, 0x30, 0xF0, +0x20, 0x6C, 0x24, 0xF0, 0x94, 0x9C, 0x8D, 0xE3, +0x82, 0x67, 0x60, 0x9B, 0x00, 0x18, 0x91, 0xEA, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF1, 0x58, 0x9A, 0x24, 0xF0, 0x7C, 0x9B, +0x00, 0xA2, 0x20, 0xA3, 0xFF, 0x6A, 0x4C, 0xE8, +0x4C, 0xE9, 0x2A, 0xE8, 0x35, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF3, 0x48, 0x9A, 0x10, 0x33, +0x49, 0xE3, 0x40, 0xA2, 0xFF, 0x6B, 0x6C, 0xEA, +0x56, 0x32, 0x6C, 0xEA, 0x02, 0x72, 0x0E, 0x60, +0x03, 0x5A, 0x02, 0x60, 0x06, 0x22, 0x1A, 0x10, +0x04, 0x72, 0x0D, 0x60, 0x06, 0x72, 0x10, 0x60, +0x15, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x4C, 0x9A, 0x0E, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x54, 0x9A, 0x09, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x58, 0x9A, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x5C, 0x9A, +0x90, 0x67, 0x40, 0xEA, 0x01, 0x48, 0x7F, 0x6A, +0x4C, 0xE8, 0x0A, 0xE9, 0xD0, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF1, 0x58, 0x9A, 0x20, 0xC2, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, +0x8C, 0xEA, 0xFF, 0x6B, 0xE2, 0x67, 0x6C, 0xEE, +0x6C, 0xEF, 0x1E, 0x65, 0x87, 0x67, 0x03, 0x6E, +0xCC, 0xEC, 0x80, 0xF0, 0x10, 0x2C, 0x30, 0xF0, +0x20, 0x6C, 0x44, 0xF0, 0x04, 0x9C, 0x08, 0x69, +0x42, 0x32, 0x80, 0xA0, 0x52, 0x32, 0x6C, 0xEA, +0x6C, 0xEC, 0x2D, 0xEC, 0x6C, 0xEC, 0x80, 0xC0, +0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF0, 0x88, 0x9C, +0xCC, 0xEA, 0xE0, 0xC4, 0x30, 0xF0, 0x20, 0x6C, +0x44, 0xF0, 0x8C, 0x9C, 0x40, 0xC4, 0x0F, 0x6A, +0x98, 0x67, 0x8C, 0xEA, 0x74, 0x22, 0x01, 0x6C, +0x4C, 0xEC, 0x06, 0x24, 0x30, 0xF0, 0x20, 0x6C, +0x44, 0xF0, 0x90, 0x9C, 0xAC, 0xEB, 0x60, 0xC4, +0x02, 0x6B, 0x4C, 0xEB, 0x08, 0x23, 0xFF, 0x6C, +0xA2, 0x33, 0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, +0x44, 0xF0, 0x94, 0x9C, 0x60, 0xC4, 0x04, 0x6B, +0x4C, 0xEB, 0x09, 0x23, 0xA2, 0x33, 0xFF, 0x6C, +0x62, 0x33, 0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, +0x44, 0xF0, 0x98, 0x9C, 0x60, 0xC4, 0x4E, 0x33, +0x07, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0x44, 0xF0, +0x7C, 0x9B, 0x00, 0xF6, 0xA2, 0x35, 0xA0, 0xC3, +0x20, 0x6B, 0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0x64, 0xF0, 0x40, 0x9A, 0x64, 0x68, 0x60, 0xC2, +0x2C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0A, 0x6C, 0xFF, 0x48, 0x40, 0xEA, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0x21, 0x28, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x68, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF2, 0x98, 0x9C, +0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xA3, 0xF3, +0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, 0x60, 0xDA, +0x60, 0xA1, 0xD0, 0x6A, 0x6C, 0xEA, 0x40, 0xC1, +0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF0, 0x64, 0x9A, +0xF7, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, +0x16, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF0, +0x20, 0x9A, 0x20, 0x6A, 0x60, 0xA1, 0x6C, 0xEA, +0xCC, 0x2A, 0x60, 0xA1, 0xF0, 0x6A, 0x6C, 0xEA, +0x40, 0xC1, 0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF0, +0x64, 0x9A, 0xF7, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, +0x8C, 0xEA, 0xC2, 0x67, 0xFF, 0x6C, 0x8C, 0xEE, +0x03, 0x6D, 0x66, 0x67, 0xAC, 0xEB, 0x4B, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0x44, 0xF0, 0xE4, 0x9B, +0x08, 0x68, 0x42, 0x32, 0x60, 0xA7, 0x52, 0x32, +0x8C, 0xEA, 0x8C, 0xEB, 0x0D, 0xEB, 0x8C, 0xEB, +0x60, 0xC7, 0x30, 0xF0, 0x20, 0x6B, 0x44, 0xF0, +0x68, 0x9B, 0xAC, 0xEA, 0x64, 0x68, 0xC0, 0xC3, +0x30, 0xF0, 0x20, 0x6B, 0x44, 0xF0, 0x6C, 0x9B, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF0, +0x40, 0x9A, 0x30, 0x6B, 0x60, 0xC2, 0x2E, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x0A, 0x6C, 0xFF, 0x48, 0x40, 0xEA, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xE8, 0x23, 0x28, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x68, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xC3, 0xF2, 0x98, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xA3, 0xF3, 0x60, 0x9A, +0x8D, 0xEB, 0xA3, 0xF3, 0x60, 0xDA, 0x60, 0xA1, +0xCF, 0x6A, 0x6C, 0xEA, 0x40, 0xC1, 0x30, 0xF0, +0x20, 0x6A, 0x44, 0xF0, 0x64, 0x9A, 0xF7, 0x6A, +0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x6A, +0x4B, 0xEA, 0x19, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x64, 0xF0, 0x20, 0x9A, 0x20, 0x6A, 0x60, 0xA1, +0x6C, 0xEA, 0xCA, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x44, 0xF0, 0x50, 0x9A, 0xEF, 0x6B, 0x40, 0x9A, +0x80, 0xA1, 0x8C, 0xEB, 0x60, 0xC1, 0x30, 0xF0, +0x20, 0x6B, 0x44, 0xF0, 0x84, 0x9B, 0xF7, 0x6B, +0xA0, 0xA4, 0xAC, 0xEB, 0x60, 0xC4, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x64, 0xF0, 0xA4, 0x9A, 0xE0, 0xF3, 0x10, 0x6C, +0x0F, 0x6E, 0x00, 0x18, 0xF1, 0xEA, 0xE0, 0xF3, +0x0C, 0x6C, 0x00, 0x18, 0x45, 0xEB, 0xFF, 0x6B, +0x4C, 0xEB, 0x0B, 0x73, 0x0B, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x64, 0xF0, 0x68, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xA3, 0xF7, 0x80, 0x9C, 0x40, 0x9B, +0x8C, 0xEA, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x8D, 0xF6, 0x7C, 0xA3, +0xFF, 0x6A, 0x24, 0x67, 0x01, 0x73, 0xAC, 0xEA, +0x07, 0x60, 0x03, 0x73, 0x05, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x64, 0xF0, 0x6C, 0x9B, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x64, 0xF0, 0x70, 0x9B, +0x06, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF0, +0x14, 0x9A, 0x6C, 0xE8, 0x0A, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x64, 0xF0, 0x18, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x64, 0xF0, 0x5C, 0x9A, 0x6D, 0xE8, +0x4C, 0xE8, 0x00, 0x18, 0x20, 0xC8, 0x0C, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x71, 0xA2, +0x08, 0x6A, 0x6C, 0xEA, 0x05, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x84, 0xF0, 0x40, 0x9A, 0x4C, 0xE8, +0x02, 0x30, 0x02, 0x30, 0x00, 0xC9, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0xF7, 0x1F, 0x69, 0x30, 0xF0, 0x20, 0x6B, +0x8C, 0xE9, 0x23, 0xF1, 0x9C, 0x9B, 0xFF, 0x6A, +0x4C, 0xED, 0xC0, 0xA4, 0x4C, 0xEE, 0x07, 0x25, +0x8E, 0x6B, 0xCC, 0xEB, 0x60, 0xC4, 0x71, 0x6B, +0xCD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0xA4, 0xF0, 0x68, 0x9A, 0xFF, 0x6C, +0x01, 0x6D, 0x40, 0xA3, 0x00, 0x68, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x22, 0x10, +0x64, 0x70, 0x16, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xC3, 0xF1, 0x94, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, +0xA3, 0xF3, 0x60, 0xDA, 0x00, 0x6A, 0x1C, 0x10, +0xFF, 0xF7, 0x1F, 0x6A, 0x01, 0x48, 0x4C, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x0A, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xA4, 0xF0, 0x48, 0x9A, 0x60, 0xA2, 0x01, 0x6A, +0x6C, 0xEA, 0xD6, 0x2A, 0xFF, 0xF7, 0x1F, 0x6A, +0x01, 0x49, 0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x48, 0x9A, 0x20, 0xCA, 0x01, 0x6A, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x30, 0xF0, 0x20, 0x6D, 0x04, 0x04, 0xE2, 0xF7, +0x00, 0x4D, 0x14, 0x6E, 0x00, 0x18, 0x3C, 0xD6, +0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF4, 0x19, 0x4A, +0x05, 0x04, 0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6D, +0x2B, 0xF1, 0xA6, 0xA5, 0xB6, 0x35, 0x6E, 0xED, +0x1B, 0x25, 0xC0, 0xA2, 0x19, 0x26, 0xE0, 0x9C, +0x1F, 0xF7, 0x00, 0x6D, 0xEC, 0xED, 0x02, 0xF0, +0x00, 0x75, 0x01, 0x60, 0x09, 0x2D, 0x30, 0xF0, +0x20, 0x6E, 0xA0, 0x9C, 0xA3, 0xF0, 0xC0, 0x9E, +0xB5, 0xE6, 0xC0, 0xA2, 0xC0, 0xC5, 0x06, 0x10, +0x30, 0xF0, 0x20, 0x6D, 0xA3, 0xF0, 0xA4, 0x9D, +0xFD, 0xE5, 0xC0, 0xC7, 0x00, 0x6D, 0xA0, 0xC2, +0x01, 0x4B, 0xFF, 0x6D, 0xAC, 0xEB, 0x04, 0x73, +0x01, 0x4A, 0x04, 0x4C, 0xD7, 0x61, 0x0B, 0x97, +0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x30, 0xF0, 0x20, 0x6D, 0x04, 0x04, 0xC2, 0xF7, +0x0C, 0x4D, 0x14, 0x6E, 0x00, 0x18, 0x3C, 0xD6, +0x05, 0x03, 0x00, 0x6C, 0x01, 0x6A, 0x30, 0xF0, +0x20, 0x6D, 0x2B, 0xF1, 0xA6, 0xA5, 0xB6, 0x35, +0x4E, 0xED, 0x38, 0x25, 0xC0, 0x9B, 0x1F, 0xF7, +0x00, 0x6D, 0xCC, 0xED, 0x02, 0xF0, 0x00, 0x75, +0x01, 0x60, 0x09, 0x2D, 0x30, 0xF0, 0x20, 0x6E, +0xA3, 0xF0, 0xC0, 0x9E, 0xA0, 0x9B, 0xE1, 0x44, +0xB5, 0xE6, 0xC0, 0xA5, 0x07, 0x10, 0x30, 0xF0, +0x20, 0x6D, 0xA3, 0xF0, 0xA4, 0x9D, 0xE1, 0x44, +0xD9, 0xE5, 0xC0, 0xA6, 0xFF, 0x6D, 0xCC, 0xED, +0x30, 0xF0, 0x20, 0x6E, 0xA9, 0xF4, 0x18, 0x4E, +0xD9, 0xE7, 0xA0, 0xC6, 0xC0, 0x9B, 0x1F, 0xF7, +0x00, 0x6D, 0xCC, 0xED, 0x02, 0xF0, 0x00, 0x75, +0x01, 0x60, 0x09, 0x2D, 0x30, 0xF0, 0x20, 0x6E, +0xA0, 0x9B, 0xA3, 0xF0, 0xC0, 0x9E, 0xB5, 0xE6, +0x00, 0x6E, 0xC0, 0xC5, 0x07, 0x10, 0x30, 0xF0, +0x20, 0x6D, 0xA3, 0xF0, 0xA4, 0x9D, 0xD9, 0xE5, +0x00, 0x6D, 0xA0, 0xC6, 0x01, 0x4A, 0xFF, 0x6D, +0xAC, 0xEA, 0x04, 0x72, 0x01, 0x4C, 0x04, 0x4B, +0xBA, 0x61, 0x0B, 0x97, 0x06, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6B, 0xA4, 0xF0, 0xAC, 0x9B, +0xFF, 0x6A, 0x08, 0x6E, 0x60, 0xA5, 0xCB, 0xEE, +0x4C, 0xEC, 0x4C, 0xEB, 0xCC, 0xEB, 0x6D, 0xEC, +0x30, 0xF0, 0x20, 0x6B, 0xA4, 0xF0, 0x70, 0x9B, +0x4C, 0xEC, 0x80, 0xC5, 0x60, 0xA3, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0xA4, 0xF0, 0xCC, 0x9B, 0xFF, 0x6A, 0x08, 0x6F, +0x60, 0xA6, 0xEB, 0xEF, 0x4C, 0xEC, 0x4C, 0xEB, +0xEC, 0xEB, 0x6D, 0xEC, 0x4C, 0xED, 0x4C, 0xEC, +0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF0, 0x50, 0x9A, +0x80, 0xC6, 0xA0, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x08, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0x83, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF2, 0xB4, 0x9B, 0xC3, 0xF4, +0x10, 0x69, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF2, 0xA0, 0x9B, 0x91, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF1, 0xB4, 0x9B, 0x91, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, 0xB4, 0x9B, +0x91, 0x67, 0x00, 0x6E, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x69, 0x40, 0xEA, 0x06, 0xF3, +0x0C, 0x48, 0xE7, 0xF7, 0x0C, 0x49, 0x0A, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xA8, 0xC1, 0x98, +0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, 0xAB, 0xED, +0x40, 0xEA, 0x08, 0x48, 0x2A, 0xE8, 0xF4, 0x61, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0x8C, 0xEA, +0x0F, 0x5A, 0x08, 0x60, 0x30, 0xF0, 0x20, 0x6B, +0x48, 0x34, 0x42, 0xF7, 0x10, 0x4B, 0x8D, 0xE3, +0x60, 0x9B, 0x00, 0xEB, 0x00, 0x6A, 0x20, 0xE8, +0xD0, 0xF4, 0x64, 0x42, 0x1F, 0xF7, 0x00, 0x6C, +0x8C, 0xEB, 0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0xA4, 0xF0, 0x74, 0x9B, 0x2F, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xA4, 0xF0, 0x78, 0x9B, 0x2A, 0x10, +0x80, 0xF4, 0x64, 0x42, 0x1F, 0xF7, 0x00, 0x6C, +0x8C, 0xEB, 0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0xA4, 0xF0, 0x7C, 0x9B, 0x1F, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xC4, 0xF0, 0x60, 0x9B, 0x1A, 0x10, +0xC0, 0xF4, 0x68, 0x42, 0x1F, 0xF7, 0x00, 0x6C, +0x8C, 0xEB, 0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0xC4, 0xF0, 0x64, 0x9B, 0x0F, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xC4, 0xF0, 0x68, 0x9B, 0x0A, 0x10, +0x70, 0xF4, 0x68, 0x42, 0x1F, 0xF7, 0x00, 0x6C, +0x8C, 0xEB, 0x0A, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0xC4, 0xF0, 0x6C, 0x9B, 0x69, 0xE2, 0x60, 0xAA, +0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0xC4, 0xF0, 0x70, 0x9B, +0x69, 0xE2, 0x60, 0xAA, 0xFF, 0xF7, 0x1F, 0x6A, +0x6C, 0xEA, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, +0x70, 0x9B, 0x10, 0xF0, 0x24, 0x6A, 0x76, 0xF2, +0x05, 0x4A, 0x40, 0xDB, 0x00, 0x68, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF7, 0x44, 0x9A, 0x40, 0x9A, +0x21, 0x22, 0xE0, 0xF3, 0x09, 0x70, 0x13, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x68, 0x9A, +0x20, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x60, 0xDA, 0x00, 0x6A, 0x0C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x32, 0x6C, +0x01, 0x48, 0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE8, 0xD9, 0x17, 0x01, 0x6A, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x8D, 0xF6, 0x5C, 0xA2, +0x03, 0x72, 0x0D, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x44, 0xF0, 0x84, 0x9A, 0xFF, 0x6A, 0x60, 0xA4, +0x6C, 0xEA, 0x10, 0x6B, 0x4C, 0xEB, 0x03, 0x23, +0xEF, 0x6B, 0x4C, 0xEB, 0x60, 0xC4, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0x27, 0x67, 0x4C, 0xE9, 0x6F, 0x41, +0x4C, 0xEB, 0x04, 0x67, 0x02, 0x5B, 0x4C, 0xE8, +0x4C, 0xED, 0x4C, 0xEE, 0x03, 0x61, 0x90, 0x67, +0x00, 0x18, 0xD4, 0xE0, 0x10, 0x58, 0x55, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x08, 0x33, 0x82, 0xF7, +0x0C, 0x4A, 0x69, 0xE2, 0x40, 0x9A, 0x00, 0xEA, +0xD0, 0xF4, 0x44, 0x40, 0x1F, 0xF7, 0x00, 0x6B, +0x6C, 0xEA, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xA4, 0xF0, 0x74, 0x9A, 0x34, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA4, 0xF0, 0x78, 0x9A, 0x2F, 0x10, +0x80, 0xF4, 0x44, 0x40, 0x1F, 0xF7, 0x00, 0x6B, +0x6C, 0xEA, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xA4, 0xF0, 0x7C, 0x9A, 0x24, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC4, 0xF0, 0x60, 0x9A, 0x1F, 0x10, +0xC0, 0xF4, 0x48, 0x40, 0x1F, 0xF7, 0x00, 0x6B, +0x6C, 0xEA, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xC4, 0xF0, 0x64, 0x9A, 0x14, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC4, 0xF0, 0x68, 0x9A, 0x0F, 0x10, +0x70, 0xF4, 0x48, 0x40, 0x1F, 0xF7, 0x00, 0x6B, +0x6C, 0xEA, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xC4, 0xF0, 0x6C, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC4, 0xF0, 0x70, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x6D, 0xE0, +0x41, 0xE0, 0x63, 0xF3, 0x9C, 0xA0, 0x83, 0xF3, +0x4C, 0xA0, 0x8D, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF3, +0x21, 0xC2, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x23, 0xF4, 0x04, 0x6C, 0x01, 0x6D, 0x80, 0x18, +0x09, 0x28, 0x01, 0x6B, 0x6E, 0xEA, 0x05, 0x97, +0x01, 0x5A, 0x58, 0x67, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x24, 0x67, 0xA0, 0xF0, 0x9B, 0xA2, 0x03, 0xF6, +0x70, 0xAA, 0x7F, 0x6A, 0x8C, 0xEA, 0x21, 0x22, +0x01, 0x4B, 0xE0, 0xF3, 0x08, 0x6A, 0x58, 0xEB, +0x12, 0xEC, 0x23, 0xEC, 0x04, 0xD4, 0x19, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x86, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, 0x14, 0x9A, +0x96, 0x34, 0xB0, 0x67, 0x80, 0x18, 0x0F, 0x01, +0x43, 0xE0, 0x23, 0xE8, 0x0A, 0x61, 0x04, 0x92, +0x03, 0xEA, 0x07, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, +0xE7, 0x17, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF0, 0x70, 0x9B, 0x10, 0xF0, 0x24, 0x6A, +0x76, 0xF4, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x69, +0x40, 0xDB, 0x6B, 0xF0, 0x08, 0x49, 0x03, 0xF6, +0x40, 0xA1, 0x6C, 0x22, 0x00, 0x18, 0xF9, 0xEC, +0x01, 0x72, 0x68, 0x60, 0x80, 0x18, 0xCD, 0x03, +0x03, 0xF6, 0x40, 0xA1, 0x02, 0x72, 0x52, 0x61, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x08, 0x6E, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, +0x40, 0xEA, 0x01, 0x6D, 0xAB, 0xED, 0x03, 0xF3, +0x08, 0x6C, 0x80, 0x18, 0x09, 0x28, 0x04, 0xD2, +0x00, 0x18, 0x42, 0xEC, 0x02, 0x6C, 0x80, 0x18, +0xC7, 0x13, 0x30, 0xF0, 0x21, 0x6C, 0x32, 0xF4, +0x18, 0x4C, 0x80, 0x18, 0xCD, 0x1D, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, +0x08, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x04, 0xF5, 0xCC, 0x99, 0x01, 0x6D, 0x23, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x04, 0x96, 0x01, 0x6D, 0x03, 0xF3, +0x08, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, +0x0A, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x04, 0xF5, 0xD0, 0x99, 0x01, 0x6D, 0x23, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x04, 0x96, 0x01, 0x6D, 0x03, 0xF3, +0x08, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, +0x08, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x00, 0x6B, 0x03, 0xF6, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, +0x70, 0x9B, 0x10, 0xF0, 0x24, 0x6A, 0x76, 0xF4, +0x0E, 0x4A, 0x40, 0xDB, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x6E, 0xF6, 0x48, 0xA2, +0x02, 0x72, 0x58, 0x61, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x69, 0x06, 0xF2, 0x00, 0x48, +0x06, 0xF3, 0x0C, 0x49, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0x98, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, +0x83, 0xF6, 0x04, 0x6C, 0xAB, 0xED, 0x04, 0x48, +0x40, 0xEA, 0x2A, 0xE8, 0xF3, 0x61, 0x30, 0xF0, +0x20, 0x68, 0x66, 0xF1, 0x10, 0x48, 0x30, 0xF0, +0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, 0xC0, 0x98, +0x01, 0x6D, 0x23, 0xF0, 0x10, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x48, +0xA6, 0xF1, 0x18, 0x4A, 0x4A, 0xE8, 0xEF, 0x61, +0x21, 0xF0, 0x04, 0x68, 0x01, 0x6D, 0x90, 0x67, +0xAB, 0xED, 0x80, 0x18, 0x09, 0x28, 0x30, 0xF0, +0x20, 0x6B, 0x04, 0xD2, 0x63, 0xF4, 0xB0, 0x9B, +0xC0, 0xF3, 0x44, 0x99, 0x90, 0x67, 0x03, 0x6E, +0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, 0xA6, 0xF1, +0x18, 0x48, 0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, +0x44, 0x99, 0xC0, 0x98, 0x01, 0x6D, 0x28, 0xF1, +0x10, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x04, 0x48, 0x06, 0xF2, 0x00, 0x4A, +0x4A, 0xE8, 0xEF, 0x61, 0xC0, 0xF3, 0x44, 0x99, +0x04, 0x96, 0x01, 0x6D, 0x21, 0xF0, 0x04, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x06, 0x6C, 0x00, 0x18, +0x1B, 0xED, 0xC8, 0x6C, 0x00, 0x18, 0x00, 0xED, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x23, 0xF4, 0x04, 0x6C, 0x01, 0x6D, 0x80, 0x18, +0x09, 0x28, 0x21, 0x22, 0x00, 0x18, 0xE3, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, 0x78, 0x9A, +0xFF, 0x6C, 0x02, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF1, 0x5C, 0x9A, 0x01, 0x6B, +0x6B, 0xEB, 0x30, 0xF0, 0x21, 0x6C, 0x32, 0xF4, +0x18, 0x4C, 0x60, 0xC2, 0x00, 0x6D, 0x80, 0x18, +0x2D, 0x20, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF5, +0x44, 0x9A, 0x01, 0x6C, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF5, 0x44, 0x9A, +0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF4, 0x5C, 0x9A, 0x40, 0xEA, 0x01, 0x6C, +0x00, 0x6D, 0x00, 0x18, 0xCE, 0xCC, 0x03, 0x72, +0x20, 0x60, 0x30, 0xF0, 0x21, 0x6C, 0x32, 0xF4, +0x18, 0x4C, 0x01, 0x6D, 0x80, 0x18, 0x2D, 0x20, +0x14, 0x22, 0x00, 0x18, 0xDE, 0xC5, 0x01, 0x72, +0x06, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, +0x5C, 0x9A, 0x3F, 0x6B, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xC4, 0xF0, 0x78, 0x9A, 0xFD, 0x6A, +0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x6A, +0x0B, 0x10, 0x00, 0x6C, 0xA4, 0x67, 0x00, 0x18, +0xCE, 0xCC, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF5, +0x44, 0x9A, 0x01, 0x6C, 0x40, 0xEA, 0x00, 0x6A, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF0, 0xC8, 0x9A, +0xFF, 0x6B, 0xFC, 0x6D, 0x40, 0xA6, 0x6C, 0xEC, +0x4C, 0xED, 0x8D, 0xED, 0x6C, 0xED, 0xA0, 0xC6, +0xA0, 0xA6, 0x03, 0x6A, 0xAC, 0xEA, 0x8E, 0xEA, +0x01, 0x5A, 0x58, 0x67, 0x6C, 0xEA, 0x20, 0xE8, +0xFF, 0x63, 0x01, 0xD0, 0x00, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x6A, 0xF3, 0x08, 0x4B, 0x71, 0xE2, +0x80, 0xA4, 0x1F, 0x6D, 0x8C, 0xED, 0x0F, 0x75, +0x1D, 0x61, 0x01, 0x4A, 0x6D, 0xE2, 0xA0, 0xA3, +0xF0, 0x68, 0x96, 0x33, 0xAC, 0xE8, 0x07, 0x30, +0x6D, 0xE8, 0x2E, 0x70, 0x0F, 0x6B, 0xAC, 0xEB, +0x14, 0x61, 0x04, 0x6D, 0x6C, 0xED, 0x05, 0x2D, +0x01, 0x6E, 0x30, 0xF0, 0x20, 0x6D, 0xC9, 0xF4, +0xC4, 0xC5, 0x6E, 0x35, 0x2E, 0x68, 0x09, 0x2D, +0x01, 0x6E, 0x30, 0xF0, 0x20, 0x6D, 0xC9, 0xF4, +0xC5, 0xC5, 0x03, 0x10, 0x0F, 0x6B, 0x92, 0x30, +0x8C, 0xEB, 0xFF, 0x74, 0x29, 0x60, 0x01, 0x4A, +0x80, 0xF1, 0x1F, 0x5A, 0x2B, 0x60, 0x0C, 0x30, +0x00, 0x6C, 0xA3, 0x67, 0xA7, 0xEC, 0x01, 0x6E, +0xCC, 0xED, 0x1A, 0x2D, 0x84, 0x36, 0x19, 0xE6, +0xA1, 0x46, 0x00, 0xF3, 0x01, 0x5D, 0x1E, 0x60, +0x30, 0xF0, 0x20, 0x6D, 0x6A, 0xF5, 0x08, 0x4D, +0xB9, 0xE6, 0x30, 0xF0, 0x20, 0x6D, 0x6A, 0xF3, +0x08, 0x4D, 0xBD, 0xE2, 0xE0, 0xA7, 0xE0, 0xC6, +0xE1, 0x42, 0xA0, 0xF1, 0x00, 0x5F, 0x0E, 0x60, +0xB5, 0xE7, 0xA0, 0xA5, 0x02, 0x4A, 0xA1, 0xC6, +0x01, 0x4C, 0x04, 0x74, 0xDE, 0x61, 0xAB, 0x17, +0x30, 0xF0, 0x20, 0x6B, 0xC9, 0xF4, 0x40, 0xDB, +0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x01, 0x90, +0x01, 0x63, 0x20, 0xE8, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xE4, 0xF0, 0x8C, 0x9A, 0xFF, 0x6A, 0x60, 0xA4, +0x6C, 0xEA, 0x5E, 0x33, 0x03, 0x23, 0x7F, 0x6B, +0x4C, 0xEB, 0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6A, +0xE4, 0xF0, 0x50, 0x9A, 0x00, 0x69, 0x00, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF0, 0x54, 0x9A, +0x30, 0xF0, 0x20, 0x6B, 0xE4, 0xF0, 0x70, 0x9B, +0x0C, 0xEA, 0xE0, 0xF3, 0x1F, 0x68, 0x2C, 0xE8, +0x00, 0x30, 0x4D, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF7, 0x40, 0x9A, 0x0C, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF0, 0x58, 0x9A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x01, 0x6C, 0x40, 0xEA, 0x04, 0x93, +0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF0, 0x50, 0x9A, +0xFF, 0x4B, 0x40, 0x9A, 0x04, 0xD3, 0x02, 0x2B, +0x00, 0x6A, 0x0D, 0x10, 0x00, 0x52, 0xED, 0x60, +0x30, 0xF0, 0x20, 0x6B, 0x6A, 0xF3, 0x08, 0x4B, +0x2D, 0xE3, 0x01, 0x49, 0x00, 0xF2, 0x00, 0x71, +0x40, 0xC3, 0xCA, 0x61, 0x01, 0x6A, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFF, 0xF7, 0x1F, 0x6B, 0x8C, 0xEB, 0x00, 0xF3, +0x00, 0x5B, 0xFF, 0x6A, 0x06, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0x6A, 0xF5, 0x08, 0x4A, 0x4D, 0xE3, +0x40, 0xA3, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC9, 0xF4, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6B, 0xC9, 0xF4, 0x44, 0xC3, 0x6A, 0xF3, +0x08, 0x4C, 0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x6D, +0x00, 0xF2, 0x00, 0x6E, 0xC9, 0xF4, 0x45, 0xC3, +0x00, 0x18, 0x37, 0xD6, 0x30, 0xF0, 0x20, 0x6C, +0x6A, 0xF5, 0x08, 0x4C, 0xFF, 0x6D, 0x00, 0xF3, +0x00, 0x6E, 0x00, 0x18, 0x37, 0xD6, 0x00, 0x18, +0x05, 0xEE, 0x01, 0x72, 0x02, 0x61, 0x00, 0x18, +0xD4, 0xED, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x2E, 0xF4, 0x5C, 0xA2, 0x0F, 0x6B, 0x01, 0x74, +0x46, 0x32, 0x6C, 0xEA, 0x34, 0x6B, 0x78, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x6E, 0xF5, 0x10, 0x4B, +0x12, 0xEA, 0x49, 0xE3, 0x13, 0x60, 0x05, 0x24, +0x02, 0x74, 0x0C, 0x60, 0x03, 0x74, 0x12, 0x60, +0x1A, 0x10, 0x67, 0x9A, 0x0D, 0x6C, 0x01, 0x4B, +0x67, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, +0x48, 0x9A, 0x10, 0x10, 0x69, 0x9A, 0x01, 0x4B, +0x69, 0xDA, 0x07, 0x10, 0x68, 0x9A, 0x01, 0x4B, +0x68, 0xDA, 0x03, 0x10, 0x6C, 0x9A, 0x01, 0x4B, +0x6C, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, +0x48, 0x9A, 0x0E, 0x6C, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF4, 0x5C, 0xA2, +0x0F, 0x6B, 0x01, 0x74, 0x46, 0x32, 0x6C, 0xEA, +0x34, 0x6B, 0x78, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x6E, 0xF5, 0x10, 0x4B, 0x12, 0xEA, 0x49, 0xE3, +0x11, 0x60, 0x03, 0x24, 0x02, 0x74, 0x0A, 0x60, +0x16, 0x10, 0x61, 0x9A, 0x0B, 0x6C, 0x01, 0x4B, +0x61, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, +0x48, 0x9A, 0x0C, 0x10, 0x63, 0x9A, 0x01, 0x4B, +0x63, 0xDA, 0x03, 0x10, 0x62, 0x9A, 0x01, 0x4B, +0x62, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, +0x48, 0x9A, 0x0C, 0x6C, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x25, 0x67, 0x36, 0x24, 0x40, 0xA4, 0x34, 0x2A, +0x30, 0xF0, 0x20, 0x68, 0xC9, 0xF4, 0x08, 0x48, +0x40, 0xC0, 0x41, 0xC0, 0x78, 0x6A, 0x41, 0xC8, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA0, 0xF0, 0x75, 0xA2, 0x30, 0xF0, 0x20, 0x6D, +0x84, 0x40, 0xE3, 0xF4, 0x7C, 0xC2, 0xA0, 0xF0, +0x76, 0xA2, 0x6E, 0xF5, 0x04, 0x4D, 0x78, 0x6E, +0xE3, 0xF4, 0x7D, 0xC2, 0xC3, 0xF3, 0x7C, 0xA2, +0xE3, 0xF4, 0x7E, 0xC2, 0xE3, 0xF3, 0x68, 0xA2, +0xE3, 0xF4, 0x7F, 0xC2, 0xC3, 0xF3, 0x7E, 0xA2, +0x03, 0xF5, 0x60, 0xC2, 0xE3, 0xF3, 0x6A, 0xA2, +0x03, 0xF5, 0x61, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0x40, 0xEA, 0x91, 0x67, +0xB0, 0x67, 0x7C, 0x6E, 0x80, 0x18, 0x1F, 0x68, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0xDD, 0x67, 0x44, 0x67, 0x98, 0xAE, 0xFF, 0x6B, +0x6C, 0xED, 0x04, 0x5C, 0x10, 0x61, 0x03, 0x25, +0x01, 0x75, 0x0D, 0x60, 0x05, 0x10, 0x87, 0x67, +0xA2, 0x67, 0x00, 0x18, 0x7E, 0xEE, 0x07, 0x10, +0x8C, 0xEB, 0x03, 0x6D, 0x05, 0x6C, 0x01, 0x6E, +0x04, 0xD3, 0x80, 0x18, 0xDD, 0x67, 0x07, 0x97, +0x04, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x44, 0x9A, +0x63, 0xF1, 0x60, 0x9B, 0x40, 0xAA, 0x60, 0xAB, +0x6E, 0xEA, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, +0x01, 0x5A, 0x58, 0x67, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x0B, 0x2A, +0x30, 0xF0, 0x20, 0x6B, 0x44, 0xF1, 0xB4, 0x9B, +0x30, 0xF0, 0x20, 0x6E, 0x44, 0xF1, 0xD8, 0x9E, +0x60, 0x9D, 0xCC, 0xEB, 0x0C, 0x10, 0x01, 0x72, +0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x44, 0xF1, +0xB4, 0x9B, 0x30, 0xF0, 0x20, 0x6E, 0x43, 0xF2, +0xD4, 0x9E, 0x60, 0x9D, 0xCD, 0xEB, 0x60, 0xDD, +0x05, 0x5C, 0x60, 0xF1, 0x1A, 0x60, 0x30, 0xF0, +0x20, 0x6B, 0x88, 0x34, 0x03, 0xF0, 0x1C, 0x4B, +0x8D, 0xE3, 0x60, 0x9B, 0x00, 0xEB, 0x07, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF1, 0x74, 0x9A, +0x7F, 0x6A, 0x80, 0xA3, 0x12, 0x10, 0x01, 0x72, +0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF1, +0x74, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, +0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, +0x40, 0xA3, 0x80, 0x4D, 0xC0, 0x4D, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, +0x02, 0x72, 0x05, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x44, 0xF1, 0x74, 0x9A, 0x5B, 0x10, 0x03, 0x72, +0x40, 0xF1, 0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x44, 0xF1, 0x74, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, +0x40, 0xA3, 0x8C, 0xEA, 0xE9, 0x17, 0x07, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF1, 0x7C, 0x9A, +0xFB, 0x6A, 0x80, 0xA3, 0xE2, 0x17, 0x01, 0x72, +0x19, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF1, +0x94, 0x9A, 0xFF, 0x6A, 0x40, 0x6D, 0x60, 0xA4, +0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, +0x30, 0xF0, 0x20, 0x6B, 0x44, 0xF1, 0x9C, 0x9B, +0x01, 0x6D, 0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, +0x4C, 0xEB, 0x60, 0xC4, 0x60, 0xA4, 0x04, 0x6D, +0x4C, 0xEB, 0x48, 0x10, 0x02, 0x72, 0x0F, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF1, 0x74, 0x9A, +0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF1, 0x7C, 0x9A, +0xFE, 0x6A, 0x80, 0xA3, 0xB6, 0x17, 0x03, 0x72, +0x00, 0xF1, 0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x44, 0xF1, 0x94, 0x9A, 0xFF, 0x6B, 0x40, 0x6D, +0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF1, +0x9C, 0x9A, 0x01, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, +0x4B, 0x10, 0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x44, 0xF1, 0x7C, 0x9A, 0x80, 0xA3, 0xBF, 0x6A, +0x98, 0x17, 0x01, 0x72, 0x1B, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x44, 0xF1, 0x94, 0x9A, 0xFF, 0x6A, +0x40, 0x6D, 0x60, 0xA4, 0x10, 0x6E, 0x4C, 0xEB, +0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x30, 0xF0, +0x20, 0x6B, 0x44, 0xF1, 0x9C, 0x9B, 0x60, 0xA4, +0x4C, 0xEB, 0xCD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, +0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, +0x60, 0xC4, 0x20, 0xE8, 0x02, 0x72, 0x0F, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF1, 0x74, 0x9A, +0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF1, 0x7C, 0x9A, +0xEF, 0x6A, 0x80, 0xA3, 0x6A, 0x17, 0x03, 0x72, +0xA0, 0xF0, 0x1F, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x44, 0xF1, 0x94, 0x9A, 0xFF, 0x6B, 0x40, 0x6D, +0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF1, +0x9C, 0x9A, 0x10, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, +0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x20, 0xE8, +0x08, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF1, +0x7C, 0x9A, 0xFF, 0xF3, 0x1F, 0x6A, 0x80, 0xAB, +0x83, 0x10, 0x01, 0x72, 0x1D, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x44, 0xF1, 0x74, 0x9A, 0xFF, 0x6C, +0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x44, 0xF1, 0x7C, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, +0x7F, 0x4D, 0x40, 0xAB, 0x41, 0x4D, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xCB, 0x40, 0xAB, +0x00, 0xF3, 0x00, 0x4D, 0x8C, 0xEA, 0x51, 0x10, +0x02, 0x72, 0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x44, 0xF1, 0x74, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x44, 0xF1, 0x7C, 0x9A, 0xFF, 0xF6, 0x1F, 0x6A, +0x80, 0xAB, 0x52, 0x10, 0x03, 0x72, 0x6D, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF1, 0x74, 0x9A, +0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x44, 0xF1, 0x7C, 0x9A, 0xFF, 0xF7, +0x1F, 0x6C, 0x7F, 0x4D, 0x40, 0xAB, 0x41, 0x4D, +0x8C, 0xEA, 0x27, 0x10, 0x08, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x44, 0xF1, 0x7C, 0x9A, 0xF7, 0xF7, +0x1F, 0x6A, 0x80, 0xAB, 0x31, 0x10, 0x01, 0x72, +0x1E, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF1, +0x74, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, +0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF1, 0x7C, 0x9A, +0xFF, 0xF7, 0x1F, 0x6C, 0xC1, 0xF7, 0x00, 0x4D, +0x40, 0xAB, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xCB, 0x40, 0xAB, 0x06, 0xF0, 0x00, 0x4D, +0x8C, 0xEA, 0xAD, 0xEA, 0x11, 0x10, 0x02, 0x72, +0x12, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF1, +0x74, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF1, +0x7C, 0x9A, 0xFD, 0xF7, 0x1F, 0x6A, 0x80, 0xAB, +0x8C, 0xEA, 0x40, 0xCB, 0x20, 0xE8, 0x03, 0x72, +0x18, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF1, +0x74, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, +0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF1, 0x7C, 0x9A, +0xFF, 0xF7, 0x1F, 0x6C, 0xC1, 0xF7, 0x00, 0x4D, +0x40, 0xAB, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xCB, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0x64, 0xF1, 0x60, 0x9B, 0xFF, 0x6A, 0x4C, 0xED, +0x6D, 0xE4, 0xC0, 0xA3, 0x3F, 0x6C, 0xCC, 0xEC, +0x80, 0xC3, 0x07, 0x2D, 0x80, 0xA3, 0x40, 0x6D, +0x4C, 0xEC, 0xAD, 0xEC, 0x4C, 0xEC, 0x80, 0xC3, +0x20, 0xE8, 0x01, 0x75, 0x07, 0x61, 0x80, 0xA3, +0x80, 0x6D, 0xAB, 0xED, 0x4C, 0xEC, 0xAD, 0xEC, +0x4C, 0xEC, 0x80, 0xC3, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF7, 0x74, 0x9B, +0xFF, 0x6A, 0xAC, 0xEA, 0x6D, 0xE4, 0x80, 0x9B, +0x80, 0xF4, 0x40, 0x32, 0x8D, 0xEA, 0x40, 0xDB, +0x20, 0xE8, 0x00, 0x65, 0xFE, 0x63, 0x03, 0xD1, +0x02, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xE0, 0xF0, 0xDA, 0xA2, 0x01, 0x6B, +0xE3, 0x67, 0xCC, 0xEF, 0x00, 0xD7, 0xC3, 0xF3, +0x54, 0xA2, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6F, +0x4C, 0xEE, 0x30, 0xF0, 0x20, 0x6A, 0x1E, 0x65, +0x63, 0xF1, 0xDC, 0x9A, 0x64, 0xF1, 0xE4, 0x9F, +0x30, 0xF0, 0x20, 0x69, 0xD9, 0xE4, 0x40, 0x9E, +0x64, 0xF1, 0x2C, 0x99, 0xEC, 0xEA, 0x30, 0xF0, +0x20, 0x6F, 0x64, 0xF1, 0xE8, 0x9F, 0xED, 0xEA, +0x40, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF6, +0x10, 0x9A, 0x83, 0xF7, 0x00, 0x6A, 0x4B, 0xEA, +0x01, 0xE4, 0xC0, 0x98, 0x7F, 0x6F, 0x4C, 0xEE, +0x43, 0xA5, 0xEC, 0xEA, 0x2D, 0xEA, 0xCD, 0xEA, +0x40, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF1, +0xD0, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0xC3, 0xF1, +0x18, 0x98, 0xD9, 0xE4, 0x40, 0x9E, 0x0D, 0xEA, +0x40, 0xDE, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF1, +0xD4, 0x9A, 0xFF, 0x68, 0x01, 0x48, 0xD9, 0xE4, +0x40, 0x9E, 0x0D, 0xEA, 0x3F, 0xF6, 0x1F, 0x48, +0x0C, 0xEA, 0x40, 0xDE, 0x30, 0xF0, 0x20, 0x6A, +0x64, 0xF1, 0x58, 0x9A, 0x49, 0xE4, 0xC0, 0x9A, +0x40, 0xA5, 0xEC, 0xEA, 0x4D, 0xEE, 0x30, 0xF0, +0x20, 0x6A, 0x64, 0xF1, 0x5C, 0x9A, 0x49, 0xE4, +0x40, 0xA2, 0x4C, 0xEB, 0x05, 0x23, 0x03, 0xF7, +0x01, 0x6A, 0x4B, 0xEA, 0xCC, 0xEA, 0x07, 0x10, +0x61, 0xA5, 0x1F, 0xF7, 0x01, 0x6A, 0x4B, 0xEA, +0xCC, 0xEA, 0x60, 0x33, 0x6D, 0xEA, 0xC2, 0xA5, +0xFF, 0x6B, 0xCE, 0xEB, 0x0D, 0x23, 0x30, 0xF0, +0x20, 0x6B, 0x84, 0xF1, 0x60, 0x9B, 0x4C, 0xEB, +0x80, 0xF4, 0xC0, 0x32, 0x30, 0xF0, 0x20, 0x6E, +0xC3, 0xF1, 0xD0, 0x9E, 0xCD, 0xEA, 0x6D, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x64, 0xF1, 0x78, 0x9B, +0x6D, 0xE4, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x84, 0xF1, 0xC4, 0x9A, 0x02, 0xF0, 0x00, 0x6B, +0x6B, 0xEB, 0xD9, 0xE4, 0x40, 0x9E, 0x6C, 0xEA, +0x62, 0xAD, 0xE1, 0xF7, 0x1F, 0x6D, 0xAC, 0xEB, +0x6D, 0xEA, 0x40, 0xDE, 0x30, 0xF0, 0x20, 0x6A, +0x84, 0xF1, 0x68, 0x9A, 0x0E, 0xF0, 0x01, 0x4D, +0x6D, 0xE4, 0x40, 0x9B, 0xAD, 0xEA, 0xC8, 0xF0, +0x00, 0x4D, 0xAC, 0xEA, 0x40, 0xDB, 0x02, 0x61, +0x00, 0x97, 0x15, 0x27, 0x30, 0xF0, 0x20, 0x6A, +0x84, 0xF1, 0x4C, 0x9A, 0xFF, 0x6B, 0x80, 0x6D, +0x51, 0xE4, 0x40, 0xA4, 0xAB, 0xED, 0x6C, 0xEA, +0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0x84, 0xF1, 0x50, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x00, 0x6B, 0x11, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x84, 0xF1, 0x4C, 0x9A, 0x51, 0xE4, +0x60, 0xA4, 0x7F, 0x6A, 0x6C, 0xEA, 0x40, 0xC4, +0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF1, 0x50, 0x9A, +0x1C, 0x6B, 0x60, 0xC2, 0x08, 0xF4, 0x13, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF1, 0x54, 0x9A, +0x60, 0xCA, 0x03, 0x91, 0x02, 0x90, 0x02, 0x63, +0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, +0x70, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF2, +0x80, 0x9C, 0x40, 0x9B, 0x20, 0x6D, 0x00, 0x6E, +0x8D, 0xEA, 0x40, 0xDB, 0x06, 0x02, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, +0x00, 0xF4, 0x1F, 0x6C, 0xE0, 0xF1, 0x14, 0x6F, +0x40, 0xEA, 0x02, 0x67, 0x00, 0x18, 0x95, 0xE4, +0x50, 0x67, 0x09, 0x97, 0x08, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x97, 0xD5, 0x00, 0x6B, 0x32, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF1, 0x78, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF1, 0x98, 0x9C, +0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x70, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xC3, 0xF2, 0x98, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x06, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, +0x50, 0x9A, 0x02, 0xF0, 0x00, 0x6B, 0x40, 0x9A, +0x6C, 0xEA, 0xF1, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x84, 0xF1, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xE3, 0xF6, 0x8C, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, +0x40, 0xDB, 0x01, 0x6B, 0x05, 0x97, 0x43, 0x67, +0x03, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0xFF, 0xF7, +0x1F, 0x68, 0x4C, 0xED, 0x4C, 0xEE, 0x4C, 0xEF, +0x0C, 0xEC, 0x30, 0xF0, 0x20, 0x6B, 0x07, 0xD4, +0x05, 0xD6, 0x08, 0xD5, 0x09, 0xD7, 0x6B, 0xF0, +0x08, 0x4B, 0xE0, 0xF0, 0xBA, 0xA3, 0x01, 0x6C, +0xC5, 0x67, 0x8C, 0xEE, 0x4C, 0xEE, 0x04, 0xD6, +0xC3, 0xF3, 0x34, 0xA3, 0x8C, 0xE9, 0x4C, 0xE9, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x48, 0x9A, +0x00, 0x6C, 0xA4, 0x67, 0x40, 0xAA, 0x62, 0x67, +0x0C, 0xEB, 0x06, 0xD3, 0x00, 0x18, 0xCE, 0xCC, +0x06, 0x94, 0x07, 0x95, 0xE1, 0xF7, 0x1F, 0x6B, +0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF2, +0x84, 0x9C, 0x6D, 0xE5, 0x0C, 0xEB, 0x60, 0xCC, +0x7C, 0x32, 0x30, 0xF0, 0x20, 0x6B, 0x84, 0xF1, +0x68, 0x9B, 0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF1, +0x98, 0x9C, 0x6D, 0xE2, 0x60, 0xAB, 0x08, 0x96, +0x91, 0xE2, 0x0C, 0xEB, 0x80, 0x9C, 0x05, 0x26, +0x10, 0xF0, 0x00, 0x6D, 0xAB, 0xED, 0xAD, 0xEB, +0x0C, 0xEB, 0xD8, 0xF0, 0x00, 0x6D, 0x6C, 0xED, +0x30, 0xF0, 0x20, 0x6B, 0x84, 0xF1, 0x68, 0x9B, +0x6D, 0xE2, 0xA0, 0xCB, 0x30, 0xF0, 0x20, 0x6B, +0x64, 0xF1, 0x7C, 0x9B, 0x6D, 0xE2, 0xA0, 0xA3, +0x01, 0x6B, 0xAC, 0xEB, 0x05, 0x23, 0x03, 0xF7, +0x01, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x07, 0x10, +0x09, 0x95, 0x1F, 0xF7, 0x01, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xA0, 0x34, 0x8D, 0xEB, 0x05, 0x96, +0xFF, 0x76, 0x13, 0x60, 0x30, 0xF0, 0x20, 0x6C, +0x84, 0xF1, 0x80, 0x9C, 0x30, 0xF0, 0x20, 0x6D, +0xC3, 0xF1, 0xB0, 0x9D, 0x6C, 0xEC, 0x80, 0xF4, +0xC0, 0x33, 0xAD, 0xEB, 0x8D, 0xEB, 0x30, 0xF0, +0x20, 0x6C, 0x64, 0xF1, 0x98, 0x9C, 0x91, 0xE2, +0x60, 0xDC, 0x02, 0x29, 0x04, 0x93, 0x15, 0x23, +0x30, 0xF0, 0x20, 0x6B, 0x84, 0xF1, 0x8C, 0x9B, +0xFF, 0x6D, 0x80, 0x6E, 0x91, 0xE2, 0x60, 0xA4, +0xCB, 0xEE, 0xAC, 0xEB, 0xCD, 0xEB, 0xAC, 0xEB, +0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0x84, 0xF1, +0x70, 0x9B, 0x00, 0x6C, 0x80, 0xC3, 0x00, 0x6C, +0x11, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x84, 0xF1, +0x8C, 0x9B, 0x7F, 0x6B, 0x91, 0xE2, 0xA0, 0xA4, +0xAC, 0xEB, 0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6B, +0x84, 0xF1, 0x70, 0x9B, 0x1C, 0x6C, 0x80, 0xC3, +0x08, 0xF4, 0x13, 0x6C, 0x30, 0xF0, 0x20, 0x6B, +0x84, 0xF1, 0x74, 0x9B, 0x80, 0xCB, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF1, 0x94, 0x9B, 0xF7, 0x6B, +0x91, 0xE2, 0xA0, 0xA4, 0xAC, 0xEB, 0x60, 0xC4, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, +0xAC, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x84, 0xF1, 0x5C, 0x9A, 0x8C, 0x34, 0x30, 0xF0, +0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, 0x63, 0xF2, +0x60, 0x9B, 0x6D, 0xEA, 0x0C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x84, 0xF1, 0x5C, 0x9A, 0x8C, 0x34, +0x30, 0xF0, 0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, +0x63, 0xF2, 0x74, 0x9B, 0x6C, 0xEA, 0x40, 0xDC, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, +0xAC, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x84, 0xF1, 0x5C, 0x9A, 0x8C, 0x34, 0x30, 0xF0, +0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, 0x03, 0xF2, +0x74, 0x9B, 0x6D, 0xEA, 0x0C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x84, 0xF1, 0x5C, 0x9A, 0x8C, 0x34, +0x30, 0xF0, 0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, +0x83, 0xF2, 0x74, 0x9B, 0x6C, 0xEA, 0x40, 0xDC, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xFF, 0x6B, 0x84, 0xF1, 0x5C, 0x9A, 0x6C, 0xEC, +0x8C, 0x34, 0x51, 0xE4, 0x40, 0x9C, 0x01, 0x6C, +0x40, 0xF7, 0x42, 0x32, 0x8C, 0xEA, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xFF, 0x6B, 0x84, 0xF1, 0x5C, 0x9A, 0x6C, 0xEC, +0x8C, 0x34, 0x51, 0xE4, 0x40, 0x9C, 0x01, 0x6C, +0x00, 0xF7, 0x42, 0x32, 0x8C, 0xEA, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x00, 0x68, 0x90, 0x67, 0x00, 0x6D, +0x00, 0x18, 0x91, 0xF0, 0x90, 0x67, 0x01, 0x6D, +0x01, 0x48, 0x00, 0x18, 0xA1, 0xF0, 0x0B, 0x70, +0xF5, 0x61, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, +0x0C, 0x6B, 0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, +0x0A, 0x69, 0x12, 0xED, 0x4C, 0xED, 0x04, 0xD5, +0xFF, 0x68, 0x2C, 0xE8, 0x90, 0x67, 0x00, 0x18, +0xB1, 0xF0, 0x17, 0x2A, 0xFF, 0x49, 0x00, 0xF6, +0x20, 0x31, 0x90, 0x67, 0x01, 0x6D, 0x00, 0xF6, +0x23, 0x31, 0x00, 0x18, 0xA1, 0xF0, 0x41, 0x41, +0xEF, 0x2A, 0x01, 0x69, 0x2B, 0xE9, 0x09, 0x10, +0x04, 0x94, 0xFF, 0x49, 0x00, 0x6D, 0x00, 0xF6, +0x20, 0x31, 0x00, 0x18, 0xA1, 0xF0, 0x00, 0xF6, +0x23, 0x31, 0x00, 0x51, 0xF5, 0x60, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0x0C, 0x68, 0x4C, 0xEC, 0x1B, 0xEC, +0x01, 0x28, 0xE5, 0xE8, 0x4C, 0xED, 0x10, 0xE9, +0x4C, 0xE9, 0x12, 0xE8, 0x4C, 0xE8, 0x0F, 0x25, +0x90, 0x67, 0x01, 0x6D, 0x00, 0x18, 0x91, 0xF0, +0x30, 0xF0, 0x20, 0x6A, 0xE7, 0xF7, 0x0C, 0x4A, +0x41, 0xE0, 0x60, 0xA0, 0x01, 0x6A, 0x44, 0xE9, +0x6D, 0xEA, 0x40, 0xC0, 0x11, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xE7, 0xF7, 0x0C, 0x4A, 0x49, 0xE0, +0x80, 0xA2, 0x01, 0x6B, 0x64, 0xE9, 0x6F, 0xEB, +0x8C, 0xEB, 0x60, 0xC2, 0x40, 0xA2, 0x04, 0x2A, +0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, 0x91, 0xF0, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0x24, 0x67, +0x0C, 0xE9, 0xAC, 0xE8, 0x91, 0x67, 0xB0, 0x67, +0x00, 0x18, 0xE4, 0xF0, 0x91, 0x67, 0xB0, 0x67, +0x00, 0x18, 0xCB, 0xF0, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x0C, 0x6B, 0x7B, 0xED, 0x01, 0x2B, 0xE5, 0xE8, +0x05, 0x6E, 0xFF, 0x6A, 0x4C, 0xEC, 0x10, 0xEB, +0x12, 0xED, 0x4C, 0xED, 0xD8, 0xEB, 0x12, 0xEB, +0x4C, 0xEB, 0x1E, 0x73, 0x1D, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xA4, 0xF1, 0x60, 0x9A, 0xAC, 0x35, +0x30, 0xF0, 0x20, 0x6E, 0x6D, 0xE5, 0x40, 0x9B, +0x03, 0xF3, 0xDC, 0x9E, 0xCC, 0xEA, 0x80, 0xF7, +0x80, 0x36, 0xCD, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x84, 0xF1, 0x5C, 0x9A, 0x08, 0x6B, +0x6B, 0xEB, 0x55, 0xE5, 0x40, 0x9D, 0x8A, 0x34, +0x6C, 0xEA, 0x07, 0x6B, 0x6C, 0xEC, 0x1E, 0x10, +0x20, 0x5B, 0x0C, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0xA4, 0xF1, 0x40, 0x9A, 0x1F, 0x6E, 0xAC, 0x35, +0xE6, 0x67, 0x55, 0xE5, 0xE4, 0xEB, 0x40, 0x9D, +0xEF, 0xEF, 0x0D, 0x10, 0xE0, 0x4B, 0x4C, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF1, 0x5C, 0x9A, +0xAC, 0x35, 0x1F, 0x6E, 0x55, 0xE5, 0xE0, 0x9D, +0x46, 0x67, 0x44, 0xEB, 0x4F, 0xEA, 0xCC, 0xEC, +0xEC, 0xEA, 0x84, 0xEB, 0x8D, 0xEA, 0x40, 0xDD, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0x2C, 0xEC, +0xCC, 0xE9, 0x05, 0x67, 0x01, 0x29, 0x00, 0x6C, +0xB0, 0x67, 0x00, 0x18, 0x0A, 0xF1, 0xFF, 0x6C, +0x0C, 0xEC, 0xB1, 0x67, 0x00, 0x18, 0xFF, 0xF0, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xAE, 0xEC, 0x01, 0x6A, +0x8C, 0xEA, 0x20, 0xE8, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, +0x06, 0xD2, 0x05, 0xD4, 0x00, 0x69, 0x1F, 0x68, +0x22, 0x10, 0x05, 0x92, 0x40, 0xA2, 0x07, 0xD2, +0x00, 0x6A, 0x04, 0xD2, 0x04, 0x92, 0x07, 0x94, +0x12, 0x35, 0x87, 0xEA, 0xFF, 0x6A, 0x4C, 0xEC, +0x00, 0x18, 0x3D, 0xF1, 0x06, 0x22, 0xFF, 0x6A, +0x04, 0x30, 0x4C, 0xE8, 0x05, 0x6A, 0x4E, 0xE8, +0x01, 0x10, 0x04, 0x30, 0xFF, 0x6A, 0x4C, 0xE8, +0x04, 0x92, 0x01, 0x4A, 0x08, 0x72, 0x04, 0xD2, +0xE9, 0x61, 0xFF, 0x6A, 0x01, 0x49, 0x4C, 0xE9, +0x05, 0x92, 0x01, 0x4A, 0x05, 0xD2, 0x06, 0x92, +0x43, 0xE9, 0xDB, 0x61, 0x1F, 0x6A, 0x4E, 0xE8, +0x0C, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x60, 0xA4, 0x01, 0x6A, 0x04, 0x67, +0x6C, 0xEA, 0x44, 0x22, 0x66, 0x32, 0x30, 0xF0, +0x20, 0x6B, 0xA4, 0xF1, 0x64, 0x9B, 0x54, 0x32, +0x69, 0xE2, 0x61, 0xA4, 0x60, 0xC2, 0x40, 0xA4, +0x30, 0xF0, 0x20, 0x6B, 0xA4, 0xF1, 0x68, 0x9B, +0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x62, 0xA4, +0x60, 0xC2, 0x40, 0xA4, 0x30, 0xF0, 0x20, 0x6B, +0xA4, 0xF1, 0x6C, 0x9B, 0x46, 0x32, 0x54, 0x32, +0x69, 0xE2, 0x63, 0xA4, 0x60, 0xC2, 0x40, 0xA4, +0x30, 0xF0, 0x20, 0x6B, 0xA4, 0xF1, 0x70, 0x9B, +0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x64, 0xA4, +0x60, 0xC2, 0x40, 0xA4, 0x30, 0xF0, 0x20, 0x6B, +0xA4, 0xF1, 0x74, 0x9B, 0x46, 0x32, 0x54, 0x32, +0x69, 0xE2, 0x65, 0xA4, 0x60, 0xC2, 0x40, 0xA4, +0x30, 0xF0, 0x20, 0x6B, 0xA4, 0xF1, 0x78, 0x9B, +0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x66, 0xA4, +0x10, 0xF0, 0x00, 0x6C, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x84, 0xF0, 0x70, 0x9A, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x81, 0x40, 0x06, 0x6D, +0x00, 0x18, 0x3F, 0xF1, 0x60, 0xA0, 0x01, 0x6E, +0x82, 0x67, 0x66, 0x35, 0x6C, 0xEE, 0x00, 0x18, +0x31, 0xF1, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0xC1, 0xF0, 0x30, 0xF0, 0x20, 0x6A, +0xA4, 0xF1, 0x7C, 0x9A, 0xFF, 0xF7, 0x1F, 0x6A, +0x80, 0xAB, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x43, 0xF2, 0x80, 0x9C, 0x8D, 0xEA, 0x40, 0xDB, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x00, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC9, 0xF5, +0x43, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0xC9, 0xF5, +0x45, 0xC3, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xC4, 0xF1, 0x40, 0x9A, 0xFF, 0x6E, 0xA0, 0x9A, +0x0F, 0x6A, 0x40, 0xF5, 0xA2, 0x33, 0x4C, 0xEB, +0x45, 0x67, 0xCC, 0xEA, 0x08, 0x72, 0x80, 0xF7, +0xA2, 0x34, 0x15, 0x60, 0x09, 0x5A, 0x07, 0x60, +0x02, 0x72, 0x0D, 0x60, 0x04, 0x72, 0x0D, 0x60, +0x01, 0x72, 0x21, 0x60, 0x06, 0x10, 0x20, 0x72, +0x19, 0x60, 0x40, 0x72, 0x11, 0x60, 0x10, 0x72, +0x0A, 0x60, 0x00, 0x6A, 0x20, 0xE8, 0x14, 0x24, +0x1D, 0x10, 0x07, 0x24, 0x1B, 0x10, 0x00, 0x6A, +0x17, 0x2B, 0x19, 0x24, 0x15, 0x10, 0x03, 0x74, +0x15, 0x61, 0x00, 0x6A, 0x08, 0x73, 0x0F, 0x10, +0x00, 0xF7, 0xA2, 0x35, 0x01, 0x6A, 0x4C, 0xED, +0xCC, 0xED, 0x05, 0x2D, 0x03, 0x74, 0x0A, 0x61, +0x00, 0x6A, 0x0C, 0x73, 0x04, 0x10, 0x03, 0x74, +0x05, 0x61, 0x00, 0x6A, 0x0F, 0x73, 0x03, 0x60, +0x01, 0x6A, 0x20, 0xE8, 0x01, 0x6A, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF1, 0x64, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x48, 0x9A, +0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, +0x58, 0x9A, 0xFF, 0x6B, 0x80, 0xA2, 0x6C, 0xEC, +0x8C, 0xEB, 0x44, 0x67, 0x01, 0x23, 0x01, 0x6A, +0xFF, 0x6B, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF1, 0x68, 0x9A, +0x01, 0x6D, 0xFF, 0x6C, 0x40, 0xA3, 0xAC, 0xEA, +0x02, 0x22, 0x45, 0x67, 0x15, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC4, 0xF1, 0xC4, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF2, 0x48, 0x9A, 0xC0, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x58, 0x9A, +0x40, 0xA2, 0x0C, 0x22, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x6A, +0x00, 0x6B, 0x30, 0xF0, 0x20, 0x6C, 0xC9, 0xF5, +0x62, 0xC4, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xC9, 0xF5, 0x62, 0xA2, 0x00, 0x6A, 0x01, 0x4B, +0x8C, 0xEB, 0xF3, 0x17, 0x30, 0xF0, 0x20, 0x6A, +0xC9, 0xF5, 0x60, 0xA2, 0x01, 0x6A, 0x07, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0xC9, 0xF5, 0x62, 0xA3, +0x00, 0x6A, 0x01, 0x23, 0x01, 0x6A, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF2, 0x64, 0x9A, 0xFF, 0x6C, +0x04, 0x6D, 0x40, 0xA3, 0x10, 0x6E, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0xC4, 0xF1, 0xAC, 0x9A, 0x40, 0xA5, +0x8C, 0xEA, 0xCD, 0xEA, 0x8C, 0xEA, 0x40, 0xC5, +0x80, 0xA3, 0xFB, 0x6A, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF1, 0x10, 0x9A, +0xFF, 0xF7, 0x1F, 0x6B, 0xFF, 0x6C, 0x40, 0xA8, +0x01, 0x4C, 0x6C, 0xEA, 0x8D, 0xEA, 0x6C, 0xEA, +0x40, 0xC8, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x48, 0x9A, 0x01, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, +0x48, 0x9A, 0xC4, 0xF1, 0x74, 0x9B, 0x60, 0xDA, +0x30, 0xF0, 0x20, 0x6B, 0xC4, 0xF1, 0x78, 0x9B, +0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6B, 0xC4, 0xF1, +0x7C, 0x9B, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6B, +0xE4, 0xF1, 0x60, 0x9B, 0x60, 0xDA, 0x30, 0xF0, +0x20, 0x6B, 0xE4, 0xF1, 0x64, 0x9B, 0x60, 0xDA, +0x30, 0xF0, 0x20, 0x6B, 0xE4, 0xF1, 0x68, 0x9B, +0x60, 0xDA, 0x60, 0xA8, 0xFF, 0xF6, 0x1F, 0x6A, +0x6C, 0xEA, 0x40, 0xC8, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x0C, 0x33, 0xE7, 0xF7, 0x18, 0x4A, +0x49, 0xE3, 0x67, 0xA2, 0x0C, 0x2B, 0x30, 0xF0, +0x20, 0x6B, 0xC9, 0xF5, 0x64, 0xA3, 0x01, 0x73, +0x24, 0x61, 0x80, 0xAA, 0x00, 0x18, 0x2E, 0xEE, +0xFF, 0x72, 0x02, 0x61, 0x1E, 0x10, 0x46, 0xA2, +0x30, 0xF0, 0x20, 0x6B, 0xE7, 0xF7, 0x18, 0x4B, +0x0C, 0x30, 0x0D, 0xE3, 0x82, 0xA3, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF2, 0x60, 0x9B, 0x80, 0x34, +0x80, 0x34, 0x71, 0xE4, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF2, 0x68, 0x9B, 0x80, 0xDB, 0x80, 0x9B, +0x1F, 0xF7, 0x00, 0x6B, 0x6C, 0xEC, 0x82, 0x34, +0x8E, 0xEA, 0x00, 0x6B, 0x03, 0x22, 0x01, 0x6B, +0x01, 0x10, 0x00, 0x6B, 0x05, 0x97, 0x04, 0x90, +0x43, 0x67, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD0, 0x01, 0x6D, +0x04, 0x00, 0x5D, 0x67, 0x20, 0xF0, 0x88, 0xC2, +0x0A, 0x07, 0x00, 0x6A, 0x90, 0x67, 0xC5, 0x67, +0x04, 0xD2, 0x05, 0xD2, 0x06, 0xD2, 0x07, 0xD2, +0x00, 0x18, 0x52, 0xDB, 0xFF, 0x6E, 0xB0, 0x67, +0x02, 0x6C, 0x4C, 0xEE, 0x00, 0x18, 0x64, 0xDB, +0x09, 0x97, 0x08, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xCB, 0xF1, 0x45, 0xA2, +0x01, 0x68, 0x0C, 0xEA, 0x69, 0x22, 0x00, 0x18, +0xC6, 0xF1, 0x3C, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xC9, 0xF5, 0x20, 0xA2, 0x22, 0x29, 0x00, 0x18, +0xBA, 0xF1, 0x1B, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xC9, 0xF5, 0x61, 0xA2, 0x01, 0x4B, 0xC9, 0xF5, +0x61, 0xC2, 0xC9, 0xF5, 0x41, 0xA2, 0x06, 0x5A, +0x14, 0x61, 0x90, 0x67, 0x00, 0x18, 0x30, 0xF2, +0x30, 0xF0, 0x20, 0x6A, 0x10, 0xF0, 0x24, 0x6C, +0x04, 0xD0, 0x00, 0xF3, 0x4C, 0x9A, 0xF9, 0xF0, +0x19, 0x4C, 0x00, 0x6D, 0xC8, 0x6E, 0xF0, 0x67, +0x42, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF5, +0x21, 0xC2, 0x00, 0x18, 0x99, 0xF1, 0x0D, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF5, 0x60, 0xA2, +0x02, 0x6C, 0x01, 0x4B, 0xC9, 0xF5, 0x60, 0xC2, +0xC9, 0xF5, 0x40, 0xA2, 0x0A, 0x5A, 0x0F, 0x61, +0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xC9, 0xF5, +0x40, 0xC3, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xC9, 0xF5, 0x42, 0xA2, 0x32, 0x5A, 0x03, 0x61, +0x00, 0x6C, 0x00, 0x18, 0x30, 0xF2, 0x30, 0xF0, +0x20, 0x6A, 0xC9, 0xF5, 0x40, 0xA2, 0x0E, 0x2A, +0x01, 0x6A, 0x04, 0xD2, 0x10, 0xF0, 0x24, 0x6C, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, +0xF9, 0xF0, 0x19, 0x4C, 0x00, 0x6D, 0xC8, 0x6E, +0x01, 0x6F, 0x0D, 0x10, 0x00, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, +0x10, 0xF0, 0x24, 0x6C, 0x01, 0x6E, 0xF9, 0xF0, +0x19, 0x4C, 0x00, 0x6D, 0xE6, 0x67, 0x40, 0xEA, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x2C, 0xEC, +0x30, 0xF0, 0x20, 0x6A, 0xE7, 0xF7, 0x18, 0x4A, +0x8C, 0x33, 0x6D, 0xE2, 0x05, 0xD4, 0x04, 0xD3, +0x42, 0xAB, 0x00, 0x68, 0xFF, 0xF7, 0x1F, 0x72, +0xC0, 0xF0, 0x01, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0xE4, 0xF1, 0x6C, 0x9A, 0x01, 0x6C, 0x40, 0xA3, +0x2C, 0xEA, 0x8D, 0xEA, 0x2C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, +0x40, 0xEA, 0x04, 0x93, 0x46, 0xA3, 0x62, 0xAB, +0x62, 0x34, 0x2C, 0xEC, 0x18, 0x2C, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0x43, 0xF2, +0x88, 0x9C, 0xE4, 0xF1, 0xB0, 0x9D, 0xA0, 0xDC, +0x30, 0xF0, 0x20, 0x6D, 0xE4, 0xF1, 0xB4, 0x9D, +0xA0, 0xDC, 0x30, 0xF0, 0x20, 0x6D, 0xE4, 0xF1, +0xB8, 0x9D, 0xA0, 0xDC, 0x30, 0xF0, 0x20, 0x6D, +0xE4, 0xF1, 0xBC, 0x9D, 0x1A, 0x10, 0x01, 0x74, +0x80, 0xF0, 0x05, 0x61, 0x30, 0xF0, 0x20, 0x6C, +0x30, 0xF0, 0x20, 0x6D, 0x43, 0xF2, 0x88, 0x9C, +0xE4, 0xF1, 0xB0, 0x9D, 0xA0, 0xDC, 0x30, 0xF0, +0x20, 0x6D, 0xE4, 0xF1, 0xB4, 0x9D, 0xA0, 0xDC, +0x30, 0xF0, 0x20, 0x6D, 0x04, 0xF2, 0xA0, 0x9D, +0xA0, 0xDC, 0x30, 0xF0, 0x20, 0x6D, 0x04, 0xF2, +0xA4, 0x9D, 0xA0, 0xDC, 0x30, 0xF0, 0x20, 0x6D, +0xE4, 0xF1, 0xA4, 0x9D, 0xA0, 0xDC, 0x30, 0xF0, +0x20, 0x6D, 0xE4, 0xF1, 0xA8, 0x9D, 0xA0, 0xDC, +0xFF, 0x6C, 0x8C, 0xEB, 0xA7, 0x43, 0x19, 0x4D, +0x8C, 0xED, 0x08, 0x5D, 0x05, 0x61, 0xA7, 0x43, +0x09, 0x4D, 0x8C, 0xED, 0x08, 0x5D, 0x57, 0x60, +0x30, 0xF0, 0x20, 0x6C, 0x04, 0xF2, 0xA8, 0x9C, +0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF2, 0x88, 0x9C, +0xB5, 0xE3, 0x01, 0x68, 0xA0, 0xDC, 0x30, 0xF0, +0x20, 0x6D, 0x04, 0xF2, 0xAC, 0x9D, 0xAD, 0xE3, +0x60, 0xDC, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF2, +0x70, 0x9B, 0x1F, 0xF7, 0x00, 0x6D, 0x6D, 0xE2, +0x60, 0xDC, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF2, +0x74, 0x9B, 0x6D, 0xE2, 0x60, 0xDC, 0x30, 0xF0, +0x20, 0x6B, 0xE4, 0xF1, 0x64, 0x9B, 0x60, 0xDC, +0x30, 0xF0, 0x20, 0x6B, 0xE4, 0xF1, 0x68, 0x9B, +0x60, 0xDC, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF2, +0x78, 0x9B, 0x60, 0xDC, 0x60, 0x9C, 0xAC, 0xEB, +0x62, 0x33, 0x4E, 0xEB, 0x25, 0x2B, 0x05, 0x97, +0x30, 0xF0, 0x20, 0x6B, 0xE7, 0xF7, 0x18, 0x4B, +0xEC, 0x36, 0xCD, 0xE3, 0xC1, 0xAB, 0xFF, 0x6B, +0xCC, 0xEB, 0x30, 0xF0, 0x20, 0x6E, 0x43, 0xF2, +0xDC, 0x9E, 0x60, 0x33, 0x60, 0x33, 0xD9, 0xE2, +0x79, 0xE6, 0xC0, 0xDC, 0x30, 0xF0, 0x20, 0x6E, +0x63, 0xF2, 0xC0, 0x9E, 0xCD, 0xE3, 0x60, 0xDC, +0x60, 0x9C, 0xAC, 0xEB, 0x62, 0x33, 0x6E, 0xEA, +0x03, 0x22, 0x01, 0x68, 0x07, 0x6C, 0x05, 0x10, +0x00, 0x68, 0x05, 0x6C, 0x02, 0x10, 0x00, 0x68, +0x08, 0x6C, 0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF1, +0x6C, 0x9A, 0xFE, 0x6A, 0xA0, 0xA3, 0xAC, 0xEA, +0x40, 0xC3, 0x00, 0x18, 0x30, 0xF2, 0x50, 0x67, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xC9, 0xF5, 0x24, 0xA0, 0x1C, 0x29, 0x00, 0x6C, +0x00, 0x18, 0xCA, 0xED, 0x01, 0x72, 0x78, 0x67, +0x04, 0xD3, 0x03, 0x23, 0xC9, 0xF5, 0x24, 0xC0, +0x0F, 0x10, 0x00, 0x18, 0x35, 0xEE, 0x01, 0x72, +0x07, 0x60, 0x5D, 0x67, 0x67, 0x42, 0x09, 0x4B, +0x40, 0xA3, 0xC9, 0xF5, 0x44, 0xC0, 0x04, 0x10, +0x01, 0x6A, 0xC9, 0xF5, 0x44, 0xC0, 0x03, 0x10, +0x09, 0x6C, 0x00, 0x18, 0x30, 0xF2, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, +0x40, 0xF1, 0x7D, 0xA0, 0x40, 0xF1, 0x3D, 0xA0, +0x01, 0x6A, 0x6A, 0x33, 0x4C, 0xEB, 0x4C, 0xE9, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x06, 0xD3, +0xCB, 0xF1, 0x05, 0x4C, 0x01, 0x6E, 0x40, 0xEA, +0x40, 0xF1, 0x7D, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0xE4, 0xF1, 0x30, 0xF0, +0x20, 0x6A, 0xCB, 0xF1, 0x65, 0xA2, 0x01, 0x6A, +0x6C, 0xEA, 0x20, 0x2A, 0x01, 0x68, 0x2E, 0xE8, +0x1D, 0x28, 0x10, 0xF0, 0x24, 0x6C, 0xF9, 0xF0, +0x19, 0x4C, 0x00, 0x18, 0xB3, 0xE5, 0x30, 0xF0, +0x20, 0x6A, 0x04, 0xF2, 0x5C, 0x9A, 0x00, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF2, 0x40, 0x9A, +0x00, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF5, +0x00, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF5, +0x01, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF5, +0x02, 0xC2, 0x2C, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xCB, 0xF1, 0x65, 0xA2, 0x01, 0x6A, 0x4C, 0xEB, +0x25, 0x23, 0x24, 0x29, 0x30, 0xF0, 0x20, 0x6B, +0x04, 0xF2, 0x7C, 0x9B, 0x51, 0x6C, 0x00, 0x6D, +0x80, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0x24, 0xF2, +0x60, 0x9B, 0x10, 0xF0, 0x24, 0x6C, 0xF9, 0xF0, +0x19, 0x4C, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6B, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF5, +0x20, 0xC3, 0x00, 0xF3, 0x4C, 0x9A, 0x30, 0xF0, +0x20, 0x6B, 0xC9, 0xF5, 0x21, 0xC3, 0x30, 0xF0, +0x20, 0x6B, 0xC9, 0xF5, 0x22, 0xC3, 0xC8, 0x6E, +0x01, 0x6F, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xCB, 0xF1, 0x65, 0xA2, 0x04, 0x6A, 0x6C, 0xEA, +0x0B, 0x2A, 0x06, 0x92, 0x09, 0x22, 0x10, 0xF0, +0x24, 0x6C, 0x99, 0xF5, 0x19, 0x4C, 0x00, 0x18, +0xB3, 0xE5, 0x00, 0x18, 0x94, 0xF1, 0x1C, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xCB, 0xF1, 0x65, 0xA2, +0x04, 0x6A, 0x6C, 0xEA, 0x15, 0x22, 0x06, 0x93, +0x13, 0x2B, 0x00, 0x18, 0x94, 0xF1, 0x00, 0x18, +0xE9, 0xF2, 0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, +0x24, 0x6C, 0x99, 0xF5, 0x19, 0x4C, 0x00, 0x6D, +0xC0, 0xF7, 0x10, 0x6E, 0x01, 0x6F, 0x40, 0xEA, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF2, 0x44, 0x9A, +0x41, 0x6B, 0x60, 0xC2, 0x45, 0x6B, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF1, 0x68, 0x9A, +0xFE, 0x6A, 0xA0, 0xA3, 0xAC, 0xEA, 0x40, 0xC3, +0x00, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC9, 0xF5, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0xC9, 0xF5, +0x41, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0xC9, 0xF5, +0x42, 0xC3, 0xFF, 0x6A, 0x4C, 0xEC, 0x00, 0x18, +0x30, 0xF2, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xCB, 0xF1, 0x65, 0xA2, +0x04, 0x6A, 0x6C, 0xEA, 0x78, 0x22, 0x30, 0xF0, +0x20, 0x68, 0x00, 0x69, 0xE7, 0xF7, 0x18, 0x48, +0x06, 0xD1, 0x40, 0xA8, 0xFF, 0xF7, 0x1F, 0x72, +0x23, 0x60, 0x91, 0x67, 0x00, 0x18, 0x11, 0xF2, +0x01, 0x72, 0x1B, 0x61, 0x42, 0xA8, 0xFF, 0xF7, +0x1F, 0x72, 0x10, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0xC9, 0xF5, 0x43, 0xA3, 0x81, 0x42, 0xC9, 0xF5, +0x83, 0xC3, 0xFF, 0x4A, 0xFF, 0x6B, 0x6C, 0xEA, +0x02, 0x5A, 0x52, 0x60, 0x04, 0x6C, 0x00, 0x18, +0x53, 0xF3, 0x4E, 0x10, 0x91, 0x67, 0x00, 0x18, +0x7B, 0xF2, 0x01, 0x72, 0x02, 0x61, 0x01, 0x6B, +0x06, 0xD3, 0x01, 0x49, 0x08, 0x48, 0xD9, 0x17, +0x30, 0xF0, 0x20, 0x6A, 0x98, 0x67, 0xC9, 0xF5, +0x83, 0xC2, 0x06, 0x10, 0x00, 0x6B, 0x06, 0x6C, +0xC9, 0xF5, 0x63, 0xC2, 0x00, 0x18, 0x30, 0xF2, +0x06, 0x92, 0x07, 0x2A, 0x7D, 0x67, 0x87, 0x43, +0x11, 0x4C, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xA4, +0x05, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF5, +0x65, 0xA2, 0x01, 0x4B, 0xC9, 0xF5, 0x65, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF5, 0x65, 0xA2, +0x02, 0x5B, 0x06, 0x61, 0x00, 0x6B, 0x06, 0x6C, +0xC9, 0xF5, 0x65, 0xC2, 0x00, 0x18, 0x53, 0xF3, +0x30, 0xF0, 0x20, 0x6A, 0xCB, 0xF1, 0x65, 0xA2, +0x08, 0x6A, 0x6C, 0xEA, 0x05, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xC9, 0xF5, 0x43, 0xA2, 0x17, 0x22, +0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, 0x24, 0x6C, +0x99, 0xF5, 0x19, 0x4C, 0x00, 0x6D, 0xC0, 0xF7, +0x10, 0x6E, 0x01, 0x6F, 0x40, 0xEA, 0x07, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF5, 0x63, 0xA2, +0x04, 0x5B, 0xC2, 0x61, 0xBB, 0x17, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xD7, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x30, 0xF0, 0x20, 0x6B, 0x0F, 0xF6, 0x7E, 0xAB, +0xFF, 0x6A, 0x8C, 0xEA, 0x69, 0xE2, 0xFF, 0xF7, +0x1F, 0x6B, 0x6C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF2, 0x68, 0x9B, 0x40, 0xCB, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF2, 0x6C, 0x9B, 0x40, 0xCB, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x0B, 0xF1, +0x17, 0x4C, 0x05, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x20, 0x72, 0x2B, 0x60, +0x21, 0x5A, 0x04, 0x60, 0x08, 0x22, 0x10, 0x72, +0x16, 0x60, 0x56, 0x10, 0x30, 0x72, 0x33, 0x60, +0x40, 0x72, 0x41, 0x60, 0x51, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x70, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x03, 0xF2, 0x94, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x0B, 0xF1, 0x97, 0xA2, 0x3F, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x70, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x03, 0xF1, 0x94, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x0B, 0xF1, 0x98, 0xA2, 0x2F, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x70, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x03, 0xF2, 0x94, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x0B, 0xF1, 0x99, 0xA2, 0x1F, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x70, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x03, 0xF1, 0x94, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x0B, 0xF1, 0x9A, 0xA2, 0x0F, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x70, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x03, 0xF2, 0x94, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x0B, 0xF1, 0x9B, 0xA2, 0x80, 0x18, 0x00, 0x00, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xE0, 0x63, 0x3F, 0x62, 0xFF, 0x6A, 0x01, 0x6B, +0x8C, 0xEA, 0x6B, 0xEB, 0x9D, 0x67, 0x70, 0xC4, +0x23, 0x6B, 0x72, 0xC4, 0x20, 0x72, 0x10, 0x6B, +0x73, 0xC4, 0x0F, 0x60, 0x21, 0x5A, 0x04, 0x60, +0x12, 0x22, 0x10, 0x72, 0x07, 0x60, 0x11, 0x10, +0x30, 0x72, 0x09, 0x60, 0x40, 0x72, 0x40, 0x6A, +0x0A, 0x60, 0x0B, 0x10, 0x9D, 0x67, 0x74, 0xC4, +0x08, 0x10, 0x20, 0x6A, 0x04, 0x10, 0x30, 0x6A, +0x9D, 0x67, 0x54, 0xC4, 0x02, 0x10, 0x7D, 0x67, +0x54, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, +0x40, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x3F, 0x97, +0x20, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0x20, 0x74, 0x17, 0x60, +0x21, 0x5C, 0x04, 0x60, 0x08, 0x24, 0x10, 0x74, +0x0C, 0x60, 0x27, 0x10, 0x30, 0x74, 0x15, 0x60, +0x40, 0x74, 0x19, 0x60, 0x22, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x8B, 0xF1, 0xA5, 0xA3, 0x02, 0x6B, +0x17, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF1, +0xA5, 0xA3, 0x04, 0x6B, 0x11, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x8B, 0xF1, 0xA5, 0xA3, 0x08, 0x6B, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF1, +0xA5, 0xA3, 0x10, 0x6B, 0x05, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x8B, 0xF1, 0xA5, 0xA3, 0x20, 0x6B, +0xAC, 0xEB, 0x4C, 0xEB, 0x02, 0x23, 0x80, 0x18, +0x46, 0x00, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0x80, 0xF2, 0x48, 0x98, 0x30, 0xF0, +0x20, 0x6C, 0x8B, 0xF1, 0x05, 0x4C, 0x00, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0x80, 0xF2, 0x48, 0x98, +0x30, 0xF0, 0x20, 0x6C, 0x0F, 0xF6, 0x1E, 0x4C, +0x00, 0x6D, 0x02, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, +0x20, 0x6C, 0x8B, 0xF1, 0x05, 0x4C, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x00, 0xF1, 0x9D, 0xA2, 0x01, 0x6B, +0x8C, 0xEB, 0x39, 0x23, 0x30, 0xF0, 0x20, 0x6B, +0xA8, 0xF7, 0x7C, 0xA3, 0x0A, 0x2B, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF2, 0x68, 0x9B, 0x80, 0xAB, +0xE1, 0xF7, 0x1F, 0x6B, 0x8C, 0xEB, 0xA4, 0xF5, +0x76, 0xCA, 0x30, 0xF0, 0x20, 0x6A, 0xA8, 0xF7, +0x7C, 0xA2, 0x00, 0x6C, 0x01, 0x4B, 0xA8, 0xF7, +0x7C, 0xC2, 0x00, 0x18, 0x34, 0xE7, 0x10, 0x6C, +0x00, 0x18, 0x34, 0xE7, 0x20, 0x6C, 0x00, 0x18, +0x34, 0xE7, 0x30, 0x6C, 0x00, 0x18, 0x34, 0xE7, +0x00, 0x6C, 0x00, 0x18, 0x3B, 0xE7, 0x10, 0x6C, +0x00, 0x18, 0x3B, 0xE7, 0x20, 0x6C, 0x00, 0x18, +0x3B, 0xE7, 0x30, 0x6C, 0x00, 0x18, 0x3B, 0xE7, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x78, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF2, 0x9C, 0x9C, +0x40, 0x9B, 0x8C, 0xEA, 0x42, 0x10, 0xC0, 0xF0, +0x5E, 0xA2, 0x0A, 0x2A, 0x10, 0x6C, 0x00, 0x18, +0x5A, 0xE7, 0x20, 0x6C, 0x00, 0x18, 0x5A, 0xE7, +0x30, 0x6C, 0x00, 0x18, 0x5A, 0xE7, 0x0F, 0x10, +0x00, 0x6C, 0x00, 0x18, 0x5A, 0xE7, 0x10, 0x6C, +0x00, 0x18, 0x5A, 0xE7, 0x20, 0x6C, 0x00, 0x18, +0x5A, 0xE7, 0x30, 0x6C, 0x00, 0x18, 0x5A, 0xE7, +0x00, 0x6C, 0x00, 0x18, 0x61, 0xE7, 0x10, 0x6C, +0x00, 0x18, 0x61, 0xE7, 0x20, 0x6C, 0x00, 0x18, +0x61, 0xE7, 0x30, 0x6C, 0x00, 0x18, 0x61, 0xE7, +0x00, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xA8, 0xF7, +0x7C, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x0F, 0xF6, 0x5E, 0xAA, 0x03, 0xF2, +0x68, 0x9B, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF2, +0x80, 0x9C, 0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF2, 0x6C, 0x9B, 0x40, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x78, 0x9A, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x00, 0x6B, 0x22, 0xF5, +0x67, 0xC2, 0x22, 0xF5, 0x68, 0xC2, 0x22, 0xF5, +0x66, 0xC2, 0x00, 0x6B, 0x22, 0xF5, 0x64, 0xCA, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0xD1, +0x06, 0xD0, 0xFF, 0x6A, 0xCC, 0xEA, 0x08, 0xD4, +0x03, 0xD2, 0xE1, 0x9C, 0x00, 0x68, 0x00, 0x69, +0xA3, 0xEF, 0x40, 0x9C, 0x00, 0xD0, 0x01, 0xD1, +0x0A, 0x61, 0xBB, 0xEF, 0x01, 0x2D, 0xE5, 0xE8, +0x00, 0x69, 0x00, 0xD1, 0x12, 0xEB, 0x01, 0xD3, +0xB8, 0xEB, 0x12, 0xEB, 0x7F, 0xE7, 0xC5, 0x67, +0x00, 0x6B, 0x01, 0x6C, 0x00, 0x6D, 0x0C, 0x10, +0xC4, 0x30, 0xC3, 0xE8, 0x64, 0x33, 0xD0, 0x67, +0x18, 0x67, 0x6D, 0xE0, 0x84, 0x30, 0x83, 0xE8, +0x38, 0x67, 0xA4, 0x34, 0x95, 0xE1, 0x90, 0x67, +0x01, 0x53, 0x02, 0x60, 0x07, 0x2B, 0x06, 0x26, +0xE3, 0xEB, 0xEE, 0x61, 0x6A, 0xEF, 0x02, 0x61, +0x43, 0xEE, 0xEA, 0x61, 0x63, 0xEF, 0x18, 0x61, +0xEA, 0xEB, 0x02, 0x61, 0xC3, 0xEA, 0x14, 0x61, +0x00, 0x91, 0xC3, 0xE2, 0x03, 0xEA, 0x7F, 0xE7, +0x50, 0x67, 0x18, 0x67, 0x1F, 0xE7, 0x81, 0xE1, +0x23, 0xE8, 0x01, 0x91, 0x00, 0xD0, 0x18, 0x67, +0xA5, 0xE1, 0x21, 0xE0, 0x02, 0xD0, 0x04, 0xD1, +0x00, 0x90, 0x02, 0x91, 0x00, 0xD0, 0x01, 0xD1, +0x86, 0x30, 0xC0, 0xF7, 0xA0, 0x31, 0x0D, 0xE9, +0x19, 0x65, 0xA6, 0x31, 0x98, 0x67, 0x11, 0x67, +0x8D, 0xE8, 0x02, 0xD1, 0xB1, 0x67, 0x06, 0x20, +0xC0, 0xF7, 0x60, 0x30, 0xC6, 0x36, 0x0D, 0xEE, +0x66, 0x33, 0xD4, 0x17, 0x03, 0x93, 0x01, 0x73, +0x05, 0x61, 0x00, 0x94, 0x01, 0x95, 0x08, 0x90, +0x80, 0xD8, 0xA1, 0xD8, 0x07, 0x91, 0x06, 0x90, +0x04, 0x63, 0x20, 0xE8, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0x40, 0xF4, 0x4C, 0x99, 0xFF, 0x68, 0x8C, 0xE8, +0x0D, 0xD5, 0x90, 0x67, 0x01, 0x6D, 0x40, 0xEA, +0x06, 0xD2, 0x40, 0xF4, 0x4C, 0x99, 0x90, 0x67, +0x00, 0x6D, 0x40, 0xEA, 0x04, 0xD2, 0x0D, 0x95, +0x06, 0x92, 0x04, 0x04, 0x00, 0x6E, 0x05, 0xD2, +0x80, 0x18, 0xD9, 0x00, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, 0x78, 0x9B, +0xFF, 0x6A, 0x4C, 0xEC, 0xC0, 0xA3, 0x4C, 0xED, +0x15, 0x26, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, +0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF2, +0x88, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x60, 0xDA, 0x20, 0xE8, 0x80, 0xC3, 0x0B, 0x25, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, 0x8C, 0x9B, +0x80, 0x6D, 0xAB, 0xED, 0x60, 0xA4, 0x4C, 0xEB, +0xAE, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, 0x6C, 0x9B, +0x30, 0xF0, 0x20, 0x69, 0xC8, 0xF7, 0x40, 0x99, +0xE0, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, +0x7C, 0x9B, 0x50, 0x32, 0x6D, 0xE2, 0xE0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, 0x60, 0x9B, +0x6D, 0xE2, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF2, 0x70, 0x9B, 0x6D, 0xE2, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, 0x74, 0x9B, +0x69, 0xE2, 0xC0, 0xDA, 0xC8, 0xF7, 0x00, 0x99, +0x01, 0x48, 0x00, 0xF1, 0x00, 0x70, 0xC8, 0xF7, +0x00, 0xD9, 0x05, 0x60, 0x00, 0xF2, 0x00, 0x6A, +0x4E, 0xE8, 0x06, 0x20, 0x0B, 0x10, 0x10, 0x6C, +0x01, 0x6D, 0x80, 0x18, 0x20, 0x01, 0x06, 0x10, +0x11, 0x6C, 0x01, 0x6D, 0x80, 0x18, 0x20, 0x01, +0xC8, 0xF7, 0x00, 0xD9, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, 0x04, 0x4B, +0x60, 0x9B, 0xFF, 0x69, 0x40, 0xA3, 0x00, 0xF6, +0x40, 0x32, 0x00, 0xF6, 0x43, 0x32, 0x00, 0x52, +0x4D, 0x60, 0x40, 0xA3, 0x7F, 0x68, 0x4C, 0xE8, +0x40, 0x6A, 0x4D, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF2, 0x58, 0x9A, 0x2C, 0xE8, 0x00, 0xC3, +0xA0, 0xA2, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, +0x5C, 0x9A, 0x2C, 0xED, 0x05, 0x75, 0x80, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x4C, 0x9A, +0x2C, 0xEC, 0x60, 0xA2, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x50, 0x9A, 0x2C, 0xEB, 0x40, 0xA2, +0x2C, 0xEA, 0x09, 0x61, 0xBD, 0x67, 0x90, 0xC5, +0x71, 0xC5, 0x52, 0xC5, 0x04, 0x04, 0x80, 0x18, +0x28, 0x5F, 0x1A, 0x2A, 0x10, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF2, 0x04, 0x4B, 0x60, 0x9B, +0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF2, 0x04, 0x4C, +0x40, 0xA3, 0x80, 0x9C, 0x3F, 0x6B, 0x2C, 0xEA, +0x6D, 0xEA, 0x2C, 0xEA, 0x40, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF2, 0x64, 0x9A, 0xBF, 0x6A, +0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x0A, 0x10, +0x30, 0xF0, 0x20, 0x6D, 0x40, 0x6A, 0x23, 0xF2, +0x04, 0x4D, 0x4B, 0xEA, 0xA0, 0x9D, 0x0D, 0xEA, +0x2C, 0xEA, 0x40, 0xC5, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x00, 0x6A, 0x7D, 0x67, +0x04, 0xD2, 0x05, 0xD2, 0x4C, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xFF, 0xF7, +0x1F, 0x6F, 0x8C, 0xEF, 0x47, 0xF4, 0x8E, 0xA2, +0x0F, 0x6B, 0x04, 0x05, 0x8C, 0xEB, 0x9D, 0x67, +0x70, 0xC4, 0x47, 0xF4, 0x70, 0xA2, 0x0A, 0x6E, +0x72, 0xC4, 0x47, 0xF4, 0x71, 0xA2, 0x73, 0xC4, +0x07, 0xF5, 0x6C, 0xA2, 0x07, 0xF5, 0x4D, 0xA2, +0x76, 0xC4, 0x57, 0xC4, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xF4, 0x50, 0x9A, 0x25, 0x6C, 0x40, 0xEA, +0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x69, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, 0x08, 0x49, +0xA3, 0xF2, 0x18, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xA0, 0x9B, 0xE9, 0xF5, 0xCE, 0xA9, 0xA3, 0xF0, +0x10, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF2, 0x18, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xA0, 0x9B, 0xE9, 0xF5, 0xD0, 0xA9, 0xC3, 0xF0, +0x0C, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF2, 0x18, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xA0, 0x9B, 0xE9, 0xF5, 0xD2, 0xA9, 0xA8, 0xF1, +0x10, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF2, 0x18, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xE9, 0xF5, 0xD4, 0xA9, 0xA0, 0x9B, 0xC8, 0xF1, +0x0C, 0x6C, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x00, 0x6A, 0x0B, 0xD7, +0xE0, 0xAE, 0x1F, 0xF7, 0x00, 0x6B, 0xEC, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x09, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xAE, 0xA3, 0xF0, +0x60, 0x9B, 0x6D, 0xE7, 0xE0, 0xA4, 0xE0, 0xC3, +0x07, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, +0x64, 0x9B, 0x7D, 0xE7, 0x60, 0xA4, 0x60, 0xC7, +0x01, 0x4A, 0xFF, 0x6B, 0x6C, 0xEA, 0x03, 0x72, +0x02, 0x4E, 0x01, 0x4C, 0xE1, 0x61, 0x25, 0x67, +0x00, 0x68, 0x0B, 0x92, 0xC0, 0x99, 0x01, 0x6D, +0x0D, 0xE2, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x80, 0xAB, 0xAB, 0xED, 0x02, 0x48, +0x40, 0xEA, 0x16, 0x70, 0x04, 0x49, 0xF1, 0x61, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0xD1, +0x08, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xE9, 0xF5, 0x7A, 0xA2, 0x79, 0x2B, +0x01, 0x6B, 0x30, 0xF0, 0x21, 0x6D, 0x30, 0xF0, +0x21, 0x6C, 0x09, 0xF6, 0x69, 0xC2, 0x09, 0xF6, +0x6A, 0xC2, 0x94, 0xF7, 0x10, 0x4D, 0x94, 0xF6, +0x18, 0x4C, 0x00, 0x6A, 0x00, 0x6B, 0x60, 0xDD, +0x30, 0xF0, 0x20, 0x6E, 0xE1, 0xF1, 0x68, 0x42, +0x6B, 0xF0, 0x08, 0x4E, 0x6C, 0x33, 0x6D, 0xE6, +0x04, 0xD3, 0xC2, 0xF3, 0x6E, 0x42, 0x68, 0x33, +0x6D, 0xE6, 0x03, 0xD3, 0x06, 0x6B, 0x78, 0xEA, +0x01, 0xD4, 0x12, 0xEB, 0x6D, 0xE6, 0xAA, 0xF1, +0x01, 0x4B, 0x00, 0x6E, 0x04, 0x90, 0x00, 0x6F, +0xE0, 0xD8, 0x03, 0x90, 0xE0, 0xC8, 0x44, 0x30, +0x01, 0xE6, 0x84, 0xF7, 0x10, 0x48, 0x30, 0xF0, +0x20, 0x6F, 0x04, 0x30, 0x6B, 0xF0, 0x08, 0x4F, +0x1D, 0xE7, 0x05, 0xD7, 0x01, 0x97, 0x00, 0x68, +0x00, 0xD0, 0x02, 0xD7, 0x05, 0x90, 0x01, 0x6F, +0x44, 0x31, 0xE0, 0xC0, 0x00, 0x97, 0xC5, 0xE1, +0x24, 0x31, 0x25, 0xE7, 0xE0, 0xF4, 0x02, 0x41, +0x30, 0xF0, 0x20, 0x6F, 0xE0, 0xF4, 0x0A, 0x49, +0x6B, 0xF0, 0x08, 0x4F, 0x10, 0x30, 0x30, 0x31, +0x01, 0xE7, 0x25, 0xE7, 0x06, 0xD2, 0x02, 0x92, +0x00, 0x6F, 0xE0, 0xC8, 0x02, 0x48, 0x4A, 0xE8, +0xE0, 0xC9, 0x02, 0x49, 0xF8, 0x61, 0x00, 0x90, +0x06, 0x92, 0x01, 0x48, 0x00, 0xD0, 0x05, 0x90, +0x01, 0x48, 0x05, 0xD0, 0x02, 0x90, 0x10, 0x48, +0x02, 0xD0, 0x00, 0x90, 0x02, 0x70, 0xD6, 0x61, +0xE0, 0xC3, 0xE1, 0xC3, 0xE2, 0xC3, 0x04, 0x97, +0x03, 0x90, 0x01, 0x4E, 0x04, 0x4F, 0x04, 0xD7, +0x01, 0x97, 0x02, 0x48, 0x02, 0x76, 0x20, 0x4F, +0x03, 0xD0, 0x03, 0x4B, 0x01, 0xD7, 0xB2, 0x61, +0x01, 0x4A, 0x02, 0x72, 0x04, 0x4D, 0x40, 0x4C, +0x95, 0x61, 0x09, 0x91, 0x08, 0x90, 0x05, 0x63, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0xE0, 0x9A, +0x30, 0xF0, 0x21, 0x6C, 0x32, 0xF4, 0x18, 0x4C, +0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, 0x9F, 0x58, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF4, 0x00, 0x6C, +0x6B, 0xF0, 0x08, 0x4B, 0x4C, 0xEC, 0x29, 0xF7, +0x50, 0xDB, 0x82, 0x32, 0x4A, 0x32, 0x02, 0x72, +0x0A, 0x60, 0x03, 0x6C, 0x4E, 0xEC, 0x04, 0x24, +0x01, 0x72, 0x02, 0x6A, 0x05, 0x60, 0x06, 0x10, +0xE9, 0xF5, 0x99, 0xC3, 0x03, 0x10, 0x01, 0x6A, +0xE9, 0xF5, 0x59, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF1, 0x78, 0x9B, 0x29, 0xF7, 0x90, 0x9A, +0x8C, 0xEB, 0x62, 0x33, 0x62, 0x33, 0xE9, 0xF5, +0x78, 0xC2, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x00, 0x68, 0x05, 0xD5, 0x04, 0xD4, 0x05, 0x92, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0x00, 0x4B, +0xE0, 0x9B, 0xC0, 0xA2, 0x30, 0xF0, 0x21, 0x69, +0x32, 0xF4, 0x18, 0x49, 0x91, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x9F, 0x58, 0x04, 0x93, 0x91, 0x67, +0x01, 0x6D, 0x40, 0xDB, 0x05, 0x92, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF2, 0x00, 0x4B, 0xE0, 0x9B, +0xC0, 0xA2, 0x01, 0x48, 0x80, 0x18, 0x9F, 0x58, +0x04, 0x93, 0x41, 0xDB, 0xFF, 0x6A, 0x4C, 0xE8, +0x05, 0x92, 0x08, 0x4B, 0x03, 0x70, 0x01, 0x4A, +0x05, 0xD2, 0x04, 0xD3, 0xD8, 0x61, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x69, 0xAC, 0xE9, 0x00, 0x68, 0x85, 0xF5, +0x1C, 0x6C, 0xFF, 0x6D, 0x80, 0x18, 0x09, 0x28, +0x55, 0x72, 0x0C, 0x61, 0x00, 0x6A, 0x15, 0x21, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0xAC, 0x9A, +0x03, 0xF3, 0x08, 0x6C, 0x80, 0x18, 0x09, 0x28, +0x00, 0x6A, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, 0x01, 0x48, +0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, +0x01, 0x6A, 0x32, 0x58, 0x01, 0x60, 0xDF, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x00, 0x6A, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x01, 0x72, +0x05, 0xD4, 0x24, 0x61, 0x44, 0x67, 0x04, 0x4A, +0x01, 0x68, 0x30, 0xF0, 0x20, 0x69, 0x04, 0xEA, +0x00, 0xF2, 0x08, 0x6A, 0x4D, 0xE8, 0xC0, 0xF3, +0x44, 0x99, 0x01, 0x6D, 0xD0, 0x67, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0x01, 0x6D, 0xAB, 0xED, 0xC1, 0x40, +0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, +0x40, 0xEA, 0x05, 0x94, 0x01, 0x6D, 0x80, 0x18, +0x5A, 0x02, 0xD2, 0x10, 0x02, 0x72, 0x01, 0x6A, +0xC0, 0xF0, 0x0E, 0x61, 0x30, 0xF0, 0x21, 0x6A, +0x74, 0xF6, 0x46, 0xA2, 0x00, 0x68, 0x09, 0x72, +0x0C, 0x60, 0x12, 0x72, 0x01, 0x68, 0x09, 0x60, +0x1B, 0x72, 0x02, 0x68, 0x06, 0x60, 0x24, 0x68, +0x4E, 0xE8, 0x01, 0x58, 0x18, 0x67, 0x04, 0x6A, +0x03, 0xE2, 0x05, 0x92, 0x30, 0xF0, 0x20, 0x69, +0x01, 0x6D, 0x44, 0x32, 0x07, 0xD2, 0x07, 0x93, +0x08, 0x6A, 0x03, 0xF3, 0x00, 0x6C, 0x4D, 0xEB, +0xC0, 0xF3, 0x44, 0x99, 0xC3, 0x67, 0x07, 0xD3, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x6B, 0xF0, 0x08, 0x4C, 0x04, 0xD4, 0x04, 0x93, +0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0xE9, 0xF5, +0xDE, 0xA3, 0xC3, 0xF3, 0x0C, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x05, 0x92, 0x01, 0x6C, 0x01, 0x6D, +0x04, 0x4A, 0x84, 0xEA, 0x00, 0xF3, 0x08, 0x6A, +0x4D, 0xEC, 0x06, 0xD4, 0xC0, 0xF3, 0x44, 0x99, +0x06, 0x96, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x06, 0x96, 0xC0, 0xF3, 0x44, 0x99, +0x01, 0x6D, 0xAB, 0xED, 0x01, 0x4E, 0x03, 0xF3, +0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x48, 0x9A, 0x02, 0x6C, 0x40, 0xEA, +0x05, 0x94, 0x01, 0x6D, 0x80, 0x18, 0x5A, 0x02, +0x01, 0x72, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF2, 0x1C, 0x4A, 0x41, 0xE0, 0x40, 0xA0, +0x04, 0x93, 0xE9, 0xF5, 0x5E, 0xC3, 0x6B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x05, 0x95, 0xC3, 0xF2, +0xE0, 0x9A, 0x30, 0xF0, 0x21, 0x6C, 0x32, 0xF4, +0x18, 0x4C, 0x00, 0x6E, 0x80, 0x18, 0x9F, 0x58, +0x05, 0xD2, 0x07, 0x96, 0xC0, 0xF3, 0x44, 0x99, +0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x05, 0x94, 0xE3, 0xF7, 0x00, 0x6A, +0x04, 0x93, 0x8C, 0xEA, 0x56, 0x34, 0x96, 0x32, +0x09, 0xF6, 0x40, 0xDB, 0x1F, 0x6A, 0x8C, 0xEA, +0x02, 0x5A, 0xFF, 0x6B, 0x0B, 0x60, 0x03, 0x70, +0x03, 0x60, 0x01, 0x48, 0x6C, 0xE8, 0x49, 0x10, +0x04, 0x94, 0x01, 0x6B, 0x03, 0x68, 0xAA, 0xF1, +0x75, 0xC4, 0x43, 0x10, 0x0A, 0x5A, 0x0B, 0x61, +0x04, 0x20, 0xFF, 0x48, 0x6C, 0xE8, 0x01, 0x6B, +0x0B, 0x10, 0x04, 0x94, 0x01, 0x6B, 0xAA, 0xF1, +0x75, 0xC4, 0x01, 0x6B, 0x09, 0x10, 0x04, 0x94, +0x00, 0x6B, 0xAA, 0xF1, 0x75, 0xC4, 0x00, 0x6B, +0x03, 0x20, 0x04, 0x58, 0x01, 0x61, 0x03, 0x68, +0x30, 0xF0, 0x20, 0x6D, 0x42, 0xF2, 0x1C, 0x4D, +0xA1, 0xE0, 0xA0, 0xA0, 0x30, 0xF0, 0x20, 0x6C, +0x6B, 0xF0, 0x08, 0x4C, 0xE9, 0xF5, 0xBE, 0xC4, +0x0F, 0x2B, 0xE9, 0xF5, 0xDE, 0xA4, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x64, 0x9B, 0xC0, 0x36, +0x01, 0x6D, 0x4D, 0xEE, 0xE3, 0xF3, 0x08, 0x6C, +0xAB, 0xED, 0x40, 0xEB, 0x00, 0x6A, 0x0C, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x01, 0x6D, 0xE3, 0xF3, 0x08, 0x6C, 0xAB, 0xED, +0xFF, 0xF7, 0x1F, 0x6E, 0x40, 0xEA, 0x01, 0x6A, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x01, 0x6B, 0xCE, 0x17, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x00, 0x6B, 0x0B, 0xD7, 0xE0, 0xAE, 0x1F, 0xF7, +0x00, 0x6A, 0xEC, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x08, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xAE, 0xA3, 0xF0, 0x40, 0x9A, 0x49, 0xE7, +0xE0, 0xA2, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x44, 0x9A, 0x5D, 0xE7, 0xE0, 0xA7, +0xFF, 0x6A, 0xEC, 0xEA, 0x7D, 0xE4, 0x01, 0x4B, +0x03, 0x73, 0x40, 0xC7, 0x02, 0x4E, 0xE2, 0x61, +0x25, 0x67, 0x00, 0x68, 0x0B, 0x93, 0x01, 0x6D, +0xAB, 0xED, 0x09, 0xE3, 0x80, 0xAA, 0x02, 0x48, +0x80, 0x18, 0x09, 0x28, 0x16, 0x70, 0x40, 0xD9, +0x04, 0x49, 0xF4, 0x61, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x69, 0xA3, 0xF2, +0x7C, 0x9B, 0x30, 0xF0, 0x20, 0x68, 0x2C, 0xEC, +0xC0, 0xF3, 0x44, 0x98, 0xAC, 0xE9, 0x24, 0x36, +0x01, 0x6D, 0x04, 0xD4, 0xAB, 0xED, 0x03, 0xF3, +0x00, 0x6C, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, +0x08, 0x2A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x03, 0x6E, +0x07, 0x10, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0xC3, 0xF2, +0xA4, 0x9B, 0xC3, 0xF3, 0x14, 0x6C, 0x10, 0x6E, +0x40, 0xEA, 0x04, 0x94, 0x24, 0x31, 0x30, 0xF0, +0x20, 0x6A, 0x25, 0xE4, 0xE0, 0xF4, 0x62, 0x41, +0xE0, 0xF4, 0x0A, 0x49, 0x6B, 0xF0, 0x08, 0x4A, +0x70, 0x33, 0x30, 0x31, 0x25, 0xE2, 0x6D, 0xE2, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0xD1, 0xC3, 0xF2, +0x28, 0x9A, 0x05, 0xD3, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xD1, 0x67, +0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x01, 0x6D, 0xE3, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, +0x80, 0x18, 0x09, 0x28, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF2, 0x6C, 0x9B, 0x05, 0x94, 0x04, 0x49, +0x4C, 0xEB, 0x62, 0x33, 0x62, 0x33, 0x60, 0xCC, +0xE1, 0xF7, 0x1F, 0x6B, 0x4C, 0xEB, 0x04, 0x92, +0x02, 0x4C, 0x05, 0xD4, 0x60, 0xCA, 0x02, 0x4A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, +0x50, 0x9A, 0x2E, 0xEA, 0xD7, 0x2A, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, +0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, +0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0x05, 0x67, 0x01, 0x74, +0x4C, 0xE8, 0x80, 0xF0, 0x19, 0x60, 0x04, 0x24, +0x04, 0x5C, 0xA0, 0xF0, 0x10, 0x60, 0xAA, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x29, 0xF7, 0x68, 0x9A, 0x30, 0xF0, 0x21, 0x6C, +0x30, 0xF0, 0x21, 0x6D, 0x29, 0xF7, 0x6C, 0xDA, +0x30, 0xF0, 0x21, 0x6B, 0x30, 0xF0, 0x21, 0x6A, +0xB4, 0xF7, 0x08, 0x4C, 0xB4, 0xF7, 0x00, 0x4B, +0x94, 0xF7, 0x1C, 0x4A, 0x94, 0xF6, 0x18, 0x4D, +0x00, 0x69, 0xC0, 0x9C, 0x94, 0xF7, 0x00, 0x41, +0x04, 0x30, 0xC2, 0xDC, 0xC0, 0xAB, 0x05, 0xD5, +0xE5, 0x67, 0xC2, 0xCB, 0xC0, 0xA2, 0xC2, 0xC2, +0x30, 0xF0, 0x20, 0x6E, 0x6B, 0xF0, 0x08, 0x4E, +0x01, 0xE6, 0x00, 0x6E, 0x04, 0xD6, 0xA0, 0xA0, +0x24, 0x36, 0xA4, 0xC0, 0x04, 0x95, 0xD9, 0xE5, +0xA6, 0x67, 0xE0, 0xF4, 0x02, 0x4D, 0xB0, 0x35, +0x06, 0xD5, 0x07, 0xD6, 0x30, 0xF0, 0x20, 0x6E, +0xA6, 0x67, 0x06, 0x96, 0x6B, 0xF0, 0x08, 0x4D, +0x1D, 0x65, 0xD5, 0xE5, 0x07, 0x96, 0x06, 0xD5, +0xB8, 0x67, 0xE0, 0xF4, 0x0A, 0x4E, 0xD0, 0x36, +0xD9, 0xE5, 0x06, 0x95, 0x07, 0xD2, 0x40, 0xAD, +0x40, 0xF0, 0x40, 0xCD, 0x40, 0xAE, 0x02, 0x4D, +0x40, 0xF0, 0x40, 0xCE, 0x05, 0x92, 0x02, 0x4E, +0x4A, 0xED, 0xF5, 0x61, 0x04, 0x95, 0x05, 0x96, +0x07, 0x92, 0x01, 0x4D, 0x10, 0x4E, 0x02, 0x75, +0x04, 0xD5, 0x01, 0x48, 0x05, 0xD6, 0xCF, 0x61, +0x01, 0x49, 0x02, 0x6E, 0xA7, 0x67, 0x2E, 0xEE, +0x04, 0x4C, 0x02, 0x4B, 0x01, 0x4A, 0x20, 0x4D, +0xB4, 0x2E, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x00, 0x6B, 0xAA, 0xF1, 0x6D, 0xC2, +0xAA, 0xF1, 0x6E, 0xC2, 0xAA, 0xF1, 0x61, 0xC2, +0xAA, 0xF1, 0x62, 0xC2, 0xAA, 0xF1, 0x63, 0xC2, +0x29, 0xF7, 0x75, 0xC2, 0xAA, 0xF1, 0x6F, 0xC2, +0xAA, 0xF1, 0x70, 0xC2, 0xAA, 0xF1, 0x64, 0xC2, +0xAA, 0xF1, 0x65, 0xC2, 0xAA, 0xF1, 0x66, 0xC2, +0x29, 0xF7, 0x70, 0x9A, 0x01, 0x6C, 0x29, 0xF7, +0xD4, 0xC2, 0x29, 0xF7, 0xD8, 0xCA, 0x29, 0xF7, +0x80, 0xC2, 0x29, 0xF7, 0x81, 0xC2, 0x29, 0xF7, +0xDA, 0xCA, 0x29, 0xF7, 0x82, 0xC2, 0x29, 0xF7, +0x83, 0xC2, 0x29, 0xF7, 0x68, 0xDA, 0x1B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0xE0, 0x9A, +0x30, 0xF0, 0x21, 0x6C, 0xB0, 0x67, 0x32, 0xF4, +0x18, 0x4C, 0x58, 0x6E, 0x80, 0x18, 0x9F, 0x58, +0xC2, 0xF3, 0x10, 0x48, 0x30, 0xF0, 0x20, 0x6B, +0x08, 0x30, 0x6B, 0xF0, 0x08, 0x4B, 0x6D, 0xE0, +0x40, 0xDB, 0x05, 0x10, 0xFE, 0x4C, 0x4C, 0xEC, +0xB0, 0x67, 0x80, 0x18, 0x16, 0x03, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x21, 0x6A, +0x74, 0xF6, 0x4D, 0xA2, 0x18, 0x2A, 0x01, 0x6C, +0x00, 0x6D, 0x80, 0x18, 0x5A, 0x03, 0x02, 0x6C, +0x00, 0x6D, 0x80, 0x18, 0x5A, 0x03, 0x03, 0x6C, +0x00, 0x6D, 0x80, 0x18, 0x5A, 0x03, 0x01, 0x6C, +0xA4, 0x67, 0x80, 0x18, 0x5A, 0x03, 0x02, 0x6C, +0x01, 0x6D, 0x80, 0x18, 0x5A, 0x03, 0x03, 0x6C, +0x01, 0x6D, 0x80, 0x18, 0x5A, 0x03, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x21, 0x6A, +0xD4, 0xF5, 0x5C, 0xA2, 0xA0, 0xF3, 0x17, 0x22, +0x01, 0x69, 0x2B, 0xE9, 0xB1, 0x67, 0x63, 0xF0, +0x00, 0x6C, 0x80, 0x18, 0x09, 0x28, 0xB1, 0x67, +0x68, 0xF1, 0x00, 0x6C, 0x07, 0xD2, 0x80, 0x18, +0x09, 0x28, 0xB1, 0x67, 0xA1, 0xF1, 0x14, 0x6C, +0x30, 0xF0, 0x20, 0x68, 0x06, 0xD2, 0x80, 0x18, +0x09, 0x28, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, +0xD4, 0x9B, 0x05, 0xD2, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0xA1, 0xF1, 0x14, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0x38, 0x9A, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0xC3, 0xF0, 0x0C, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0xA8, 0xF1, 0x10, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0xC8, 0xF1, 0x0C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0x34, 0x9A, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF2, 0x1C, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, 0x00, 0x6C, +0x3C, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xC5, 0x67, 0xA3, 0xF0, 0x14, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xC5, 0x67, 0xC3, 0xF0, 0x10, 0x6C, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x28, 0xF1, +0x10, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF2, 0x1C, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x68, 0xF1, 0x00, 0x6C, +0x3C, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xC5, 0x67, 0xA8, 0xF1, 0x14, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xC5, 0x67, 0xC8, 0xF1, 0x10, 0x6C, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0x10, 0x6C, +0x01, 0xF7, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, 0x00, 0x6C, +0x08, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, 0x0C, 0x6C, +0x01, 0xF7, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, 0x1C, 0x6C, +0x08, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0x10, 0x6C, +0x01, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF0, 0x0C, 0x6C, 0x01, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xC5, 0x67, 0xA3, 0xF0, 0x10, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xC5, 0x67, 0xC3, 0xF0, 0x0C, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x20, 0x9A, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0x18, 0x6C, +0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF0, 0x14, 0x6C, 0xB1, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA8, 0xF1, 0x10, 0x6C, 0x01, 0xF7, 0x00, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC8, 0xF1, 0x00, 0x6C, 0x08, 0xF0, 0x00, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC8, 0xF1, 0x0C, 0x6C, 0x01, 0xF7, 0x00, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC8, 0xF1, 0x1C, 0x6C, 0x08, 0xF0, 0x00, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA8, 0xF1, 0x10, 0x6C, 0x01, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, +0x0C, 0x6C, 0x01, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC5, 0x67, +0xA8, 0xF1, 0x10, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xC5, 0x67, 0xC8, 0xF1, +0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA8, 0xF1, 0x18, 0x6C, 0xB1, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, +0x14, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0x00, 0x68, 0xFF, 0x6A, 0x01, 0x48, 0x4C, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0xA4, 0x9A, +0x05, 0xF0, 0x08, 0x6C, 0x80, 0x18, 0x09, 0x28, +0xFF, 0xF7, 0x1F, 0x72, 0x12, 0x60, 0xFF, 0x70, +0xF0, 0x61, 0x0F, 0x10, 0xFF, 0x6A, 0x01, 0x48, +0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, +0xA4, 0x9A, 0x25, 0xF0, 0x14, 0x6C, 0x80, 0x18, +0x09, 0x28, 0xFF, 0xF7, 0x1F, 0x72, 0x03, 0x61, +0x14, 0x10, 0x00, 0x68, 0xEF, 0x17, 0xFF, 0x70, +0xED, 0x61, 0x0F, 0x10, 0xFF, 0x6A, 0x01, 0x48, +0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, +0xA4, 0x9A, 0x08, 0xF5, 0x08, 0x6C, 0x80, 0x18, +0x09, 0x28, 0xFF, 0xF7, 0x1F, 0x72, 0x03, 0x61, +0x14, 0x10, 0x00, 0x68, 0xEF, 0x17, 0xFF, 0x70, +0xED, 0x61, 0x0F, 0x10, 0xFF, 0x6A, 0x01, 0x48, +0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, +0xA4, 0x9A, 0x28, 0xF5, 0x14, 0x6C, 0x80, 0x18, +0x09, 0x28, 0xFF, 0xF7, 0x1F, 0x72, 0x03, 0x61, +0x04, 0x10, 0x00, 0x68, 0xEF, 0x17, 0xFF, 0x70, +0xED, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0xE3, 0xF2, 0x00, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xA0, 0x9B, 0xA3, 0xF0, 0x18, 0x69, +0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF2, 0x00, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xA0, 0x9B, 0x91, 0x67, 0x02, 0x6E, +0x40, 0xEA, 0x00, 0x68, 0x05, 0xF0, 0x08, 0x6C, +0xFF, 0x6D, 0x80, 0x18, 0x09, 0x28, 0x86, 0x72, +0x07, 0x61, 0x30, 0xF0, 0x21, 0x69, 0x00, 0x6A, +0xD4, 0xF5, 0x1E, 0x49, 0x04, 0xD2, 0x1E, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, 0x00, 0x4B, +0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x69, 0x01, 0x48, +0xA0, 0x9B, 0x4C, 0xE8, 0xC0, 0xF3, 0x44, 0x99, +0xA3, 0xF0, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, 0x00, 0x4B, +0xC0, 0xF3, 0x44, 0x99, 0xA0, 0x9B, 0xA3, 0xF0, +0x18, 0x6C, 0x02, 0x6E, 0x40, 0xEA, 0x64, 0x70, +0xD5, 0x61, 0xDB, 0x17, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0x14, 0x6C, +0x04, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xA9, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0x14, 0x6C, +0xE1, 0xF7, 0x18, 0x6D, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF2, 0xA8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x04, 0x96, 0xA3, 0xF0, 0x10, 0x6C, +0x02, 0x49, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF0, 0x14, 0x6C, 0x04, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x04, 0x92, 0x01, 0x4A, 0x0F, 0x72, +0x04, 0xD2, 0xD8, 0x61, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF0, 0x14, 0x6C, 0x04, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, +0x00, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, +0xC3, 0xF0, 0x14, 0x69, 0x91, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, +0x00, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, +0x91, 0x67, 0x02, 0x6E, 0x40, 0xEA, 0x00, 0x68, +0x25, 0xF0, 0x14, 0x6C, 0xFF, 0x6D, 0x80, 0x18, +0x09, 0x28, 0x86, 0x72, 0x07, 0x61, 0x30, 0xF0, +0x21, 0x69, 0x00, 0x6A, 0xF4, 0xF5, 0x1C, 0x49, +0x04, 0xD2, 0x1E, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF2, 0x00, 0x4B, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x69, 0x01, 0x48, 0xA0, 0x9B, 0x4C, 0xE8, +0xC0, 0xF3, 0x44, 0x99, 0xC3, 0xF0, 0x14, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF2, 0x00, 0x4B, 0xC0, 0xF3, 0x44, 0x99, +0xA0, 0x9B, 0xC3, 0xF0, 0x14, 0x6C, 0x02, 0x6E, +0x40, 0xEA, 0x64, 0x70, 0xD5, 0x61, 0xDB, 0x17, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF0, 0x10, 0x6C, 0x04, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xA9, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF0, 0x10, 0x6C, 0xE1, 0xF7, 0x18, 0x6D, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, +0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, +0xC3, 0xF0, 0x0C, 0x6C, 0x02, 0x49, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, 0x10, 0x6C, +0x04, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x04, 0x92, +0x01, 0x4A, 0x0F, 0x72, 0x04, 0xD2, 0xD8, 0x61, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, 0x10, 0x6C, +0x04, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF2, 0x20, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0xA3, 0xF0, 0x18, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF0, 0x14, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, +0x14, 0x6C, 0x01, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, 0x10, 0x6C, +0x01, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xA8, 0xF1, 0x18, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA8, 0xF1, 0x18, 0x6C, 0xB1, 0x67, 0x02, 0x6E, +0x40, 0xEA, 0x00, 0x68, 0x08, 0xF5, 0x08, 0x6C, +0xFF, 0x6D, 0x80, 0x18, 0x09, 0x28, 0x86, 0x72, +0x07, 0x61, 0x30, 0xF0, 0x21, 0x69, 0x00, 0x6B, +0x14, 0xF6, 0x1A, 0x49, 0x04, 0xD3, 0x1E, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, 0x00, 0x4B, +0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x69, 0x01, 0x48, +0xA0, 0x9B, 0x4C, 0xE8, 0xC0, 0xF3, 0x44, 0x99, +0xA8, 0xF1, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, 0x00, 0x4B, +0xC0, 0xF3, 0x44, 0x99, 0xA0, 0x9B, 0xA8, 0xF1, +0x18, 0x6C, 0x02, 0x6E, 0x40, 0xEA, 0x64, 0x70, +0xD5, 0x61, 0xDB, 0x17, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x14, 0x6C, +0x04, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xA9, +0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x14, 0x6C, +0xE1, 0xF7, 0x18, 0x6D, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF2, 0xA8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x04, 0x96, 0xA8, 0xF1, 0x10, 0x6C, +0x02, 0x49, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA8, 0xF1, 0x14, 0x6C, 0x04, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x04, 0x92, 0x01, 0x4A, 0x0F, 0x72, +0x04, 0xD2, 0xD8, 0x61, 0xC0, 0xF3, 0x44, 0x98, +0xA8, 0xF1, 0x14, 0x6C, 0x04, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, +0x00, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, +0xC8, 0xF1, 0x14, 0x69, 0x91, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, +0x00, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, +0x91, 0x67, 0x02, 0x6E, 0x40, 0xEA, 0x00, 0x68, +0x28, 0xF5, 0x14, 0x6C, 0xFF, 0x6D, 0x80, 0x18, +0x09, 0x28, 0x86, 0x72, 0x07, 0x61, 0x30, 0xF0, +0x21, 0x69, 0x00, 0x6A, 0x34, 0xF6, 0x18, 0x49, +0x04, 0xD2, 0x1E, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF2, 0x00, 0x4B, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x69, 0x01, 0x48, 0xA0, 0x9B, 0x4C, 0xE8, +0xC0, 0xF3, 0x44, 0x99, 0xC8, 0xF1, 0x14, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF2, 0x00, 0x4B, 0xC0, 0xF3, 0x44, 0x99, +0xA0, 0x9B, 0xC8, 0xF1, 0x14, 0x6C, 0x02, 0x6E, +0x40, 0xEA, 0x64, 0x70, 0xD5, 0x61, 0xDB, 0x17, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0xC8, 0xF1, 0x10, 0x6C, 0x04, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xA9, 0xC0, 0xF3, 0x44, 0x98, +0xC8, 0xF1, 0x10, 0x6C, 0xE1, 0xF7, 0x18, 0x6D, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, +0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, +0xC8, 0xF1, 0x0C, 0x6C, 0x02, 0x49, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x10, 0x6C, +0x04, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x04, 0x92, +0x01, 0x4A, 0x0F, 0x72, 0x04, 0xD2, 0xD8, 0x61, +0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x10, 0x6C, +0x04, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF2, 0x20, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0xA8, 0xF1, 0x18, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0xC8, 0xF1, 0x14, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, +0x14, 0x6C, 0x01, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x10, 0x6C, +0x01, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF1, 0x34, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x28, 0xF1, 0x10, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x07, 0x96, +0x01, 0x6D, 0x63, 0xF0, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x06, 0x96, +0x01, 0x6D, 0x68, 0xF1, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, +0x38, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, 0x0C, 0x6C, +0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xA8, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC8, 0xF1, 0x0C, 0x6C, 0xB1, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x05, 0x96, +0x01, 0x6D, 0xA1, 0xF1, 0x14, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x80, 0x18, 0xA0, 0x01, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xE3, 0xF7, 0x18, 0x69, 0xB1, 0x67, 0x05, 0xF0, +0x10, 0x6C, 0x80, 0x18, 0x09, 0x28, 0x30, 0xF0, +0x20, 0x68, 0xFF, 0x6B, 0x6B, 0xF0, 0x08, 0x48, +0x6C, 0xEA, 0xB1, 0x67, 0x25, 0xF0, 0x1C, 0x6C, +0xE9, 0xF5, 0x4E, 0xC8, 0x80, 0x18, 0x09, 0x28, +0xFF, 0x6B, 0x6C, 0xEA, 0xB1, 0x67, 0x08, 0xF5, +0x10, 0x6C, 0xE9, 0xF5, 0x50, 0xC8, 0x80, 0x18, +0x09, 0x28, 0xFF, 0x6B, 0x6C, 0xEA, 0xB1, 0x67, +0x28, 0xF5, 0x1C, 0x6C, 0xE9, 0xF5, 0x52, 0xC8, +0x80, 0x18, 0x09, 0x28, 0xFF, 0x6B, 0x6C, 0xEA, +0xE9, 0xF5, 0x54, 0xC8, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xE1, 0xF7, 0x64, 0xA2, +0x00, 0xF1, 0x0B, 0x23, 0x00, 0x68, 0xE1, 0xF7, +0x04, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, +0xA4, 0x9A, 0x05, 0xF0, 0x08, 0x6C, 0x80, 0x18, +0x09, 0x28, 0xFF, 0xF7, 0x1F, 0x72, 0x07, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x69, 0xF5, 0x14, 0xC2, 0xF6, 0x10, 0x01, 0x69, +0x2B, 0xE9, 0x01, 0x6B, 0xB1, 0x67, 0x30, 0xF0, +0x21, 0x6A, 0x63, 0xF0, 0x00, 0x6C, 0xD4, 0xF5, +0x7C, 0xC2, 0x80, 0x18, 0x09, 0x28, 0xB1, 0x67, +0x68, 0xF1, 0x00, 0x6C, 0x07, 0xD2, 0x80, 0x18, +0x09, 0x28, 0xB1, 0x67, 0xA1, 0xF1, 0x14, 0x6C, +0x30, 0xF0, 0x20, 0x68, 0x06, 0xD2, 0x80, 0x18, +0x09, 0x28, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, +0xD4, 0x9B, 0x05, 0xD2, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0xA1, 0xF1, 0x14, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF1, 0xB4, 0x9B, 0x23, 0xF0, 0x10, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF2, 0xBC, 0x9B, +0x63, 0xF0, 0x00, 0x6C, 0x3C, 0x6E, 0x30, 0xF0, +0x21, 0x68, 0x40, 0xEA, 0xD4, 0xF5, 0x1E, 0x48, +0x00, 0x69, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF2, 0xA8, 0x9B, 0xC0, 0xF3, +0x44, 0x9A, 0xD1, 0x67, 0xA3, 0xF0, 0x10, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, +0xAC, 0x9A, 0x05, 0xF0, 0x10, 0x6C, 0x01, 0x49, +0x80, 0x18, 0x09, 0x28, 0x0F, 0x71, 0x40, 0xC8, +0x02, 0x48, 0xE7, 0x61, 0x30, 0xF0, 0x21, 0x68, +0x00, 0x6A, 0xF4, 0xF5, 0x1C, 0x48, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x69, +0xE3, 0xF2, 0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0x04, 0x96, 0xC3, 0xF0, 0x0C, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0xAC, 0x9A, +0x25, 0xF0, 0x1C, 0x6C, 0x80, 0x18, 0x09, 0x28, +0x40, 0xC8, 0x04, 0x92, 0x02, 0x48, 0x01, 0x4A, +0x0F, 0x72, 0x04, 0xD2, 0xE5, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, 0x03, 0xF1, +0xB4, 0x9B, 0x28, 0xF1, 0x10, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x99, 0xC3, 0xF2, 0xBC, 0x9B, 0x68, 0xF1, +0x00, 0x6C, 0x3C, 0x6E, 0x30, 0xF0, 0x21, 0x68, +0x40, 0xEA, 0x14, 0xF6, 0x1A, 0x48, 0x00, 0x69, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF2, 0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, +0xD1, 0x67, 0xA8, 0xF1, 0x10, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0xAC, 0x9A, +0x08, 0xF5, 0x10, 0x6C, 0x01, 0x49, 0x80, 0x18, +0x09, 0x28, 0x0F, 0x71, 0x40, 0xC8, 0x02, 0x48, +0xE7, 0x61, 0x30, 0xF0, 0x21, 0x69, 0x00, 0x6A, +0x34, 0xF6, 0x18, 0x49, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0xE3, 0xF2, +0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, +0xC8, 0xF1, 0x0C, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF2, 0xAC, 0x9A, 0x28, 0xF5, +0x1C, 0x6C, 0x80, 0x18, 0x09, 0x28, 0x40, 0xC9, +0x04, 0x92, 0x02, 0x49, 0x01, 0x4A, 0x0F, 0x72, +0x04, 0xD2, 0xE5, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF1, 0x34, 0x9A, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x28, 0xF1, 0x10, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x01, 0x69, 0xC0, 0xF3, 0x44, 0x98, 0x07, 0x96, +0x2B, 0xE9, 0x63, 0xF0, 0x00, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x06, 0x96, +0x68, 0xF1, 0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x05, 0x96, 0xA1, 0xF1, +0x14, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x80, 0x18, +0xB0, 0x05, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x69, 0x00, 0x6A, +0x8C, 0xE9, 0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF2, 0x00, 0x4A, 0xE0, 0x9A, 0x30, 0xF0, +0x21, 0x68, 0x32, 0xF4, 0x18, 0x48, 0x00, 0x6B, +0x90, 0x67, 0xB1, 0x67, 0xEF, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF2, 0x00, 0x4A, 0xE0, 0x9A, 0x00, 0x6B, +0x90, 0x67, 0xB1, 0x67, 0x08, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF2, 0x00, 0x4B, 0xE0, 0x9B, 0x90, 0x67, +0xB1, 0x67, 0x08, 0x6E, 0x80, 0x18, 0x9F, 0x58, +0x0B, 0x22, 0x06, 0x92, 0x01, 0x4A, 0x06, 0xD2, +0x06, 0x93, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEB, +0x2E, 0xF5, 0x10, 0x73, 0x06, 0xD3, 0xCE, 0x61, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF5, 0x63, 0x15, 0x62, +0x14, 0xD1, 0x13, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, +0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF2, +0x00, 0x4A, 0x64, 0x67, 0x06, 0xD2, 0xC2, 0xF3, +0x08, 0x4B, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x68, 0x33, 0x6D, 0xE2, 0x08, 0xD3, +0x64, 0x67, 0xE1, 0xF1, 0x08, 0x4B, 0x6C, 0x33, +0x6D, 0xE2, 0x0A, 0xD3, 0x00, 0x6B, 0x0F, 0xD4, +0x11, 0xD5, 0x07, 0xD3, 0x07, 0x95, 0x11, 0x92, +0xFF, 0x69, 0xAC, 0xE9, 0x18, 0x2A, 0x30, 0xF0, +0x21, 0x68, 0x32, 0xF4, 0x18, 0x48, 0x01, 0x6A, +0x90, 0x67, 0xB1, 0x67, 0xDF, 0x6E, 0x10, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x0A, 0x93, +0x90, 0x67, 0xB1, 0x67, 0x40, 0x9B, 0x58, 0x6E, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, +0xE0, 0x9A, 0x80, 0x18, 0x12, 0x59, 0x07, 0x95, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x5C, 0x9A, +0xA4, 0x35, 0x00, 0x69, 0x4D, 0xED, 0x0E, 0xD5, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x0E, 0x96, 0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x23, 0xF3, 0x0C, 0x6C, 0xAB, 0xED, +0x07, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF2, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, 0x18, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF2, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, 0x1C, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xC3, 0xF3, 0x0C, 0x6C, 0xAB, 0xED, +0x00, 0x6E, 0x40, 0xEA, 0xFF, 0x6A, 0x2C, 0xEA, +0x08, 0x2A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x03, 0x6E, +0x07, 0x10, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF2, 0xA4, 0x9B, 0xC0, 0xF3, +0x44, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, 0x10, 0x6E, +0x40, 0xEA, 0x0F, 0x95, 0x07, 0x93, 0x30, 0xF0, +0x20, 0x6A, 0xA4, 0x34, 0x71, 0xE4, 0x84, 0x34, +0x91, 0xE1, 0xE3, 0xF2, 0x50, 0x9A, 0xE0, 0xF4, +0xA2, 0x44, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, +0x08, 0x4B, 0xB0, 0x35, 0xE0, 0xF4, 0x0A, 0x4C, +0x46, 0xE9, 0xB5, 0xE3, 0x90, 0x34, 0x91, 0xE3, +0x0D, 0xD5, 0x61, 0x42, 0xA3, 0x42, 0x23, 0x4A, +0x09, 0xD5, 0x0C, 0xD4, 0x0B, 0xD3, 0x10, 0xD2, +0x0D, 0x95, 0x09, 0x93, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xAD, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xC0, 0x36, 0xC4, 0x36, 0xD9, 0xE3, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x0C, 0x95, +0x0B, 0x93, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0xAD, +0x01, 0x6D, 0xAB, 0xED, 0xC0, 0x36, 0xC4, 0x36, +0xD9, 0xE3, 0xC3, 0xF3, 0x18, 0x6C, 0x40, 0xEA, +0x0D, 0x95, 0x0C, 0x93, 0x09, 0x92, 0x02, 0x4D, +0x02, 0x4B, 0x0D, 0xD5, 0x0C, 0xD3, 0x0B, 0x95, +0x10, 0x93, 0x04, 0x4A, 0x04, 0x4D, 0x6A, 0xEA, +0x09, 0xD2, 0x0B, 0xD5, 0xD5, 0x61, 0xFF, 0x6A, +0x2C, 0xEA, 0x08, 0x2A, 0x08, 0x95, 0x06, 0x93, +0xC0, 0xF3, 0x44, 0x98, 0xC0, 0xA5, 0x80, 0xAB, +0x01, 0x6D, 0x08, 0x10, 0x06, 0x93, 0x08, 0x95, +0xC0, 0xF3, 0x44, 0x98, 0x80, 0xAB, 0xC1, 0xA5, +0x00, 0xF4, 0x00, 0x6D, 0xCF, 0xEE, 0x01, 0x49, +0x40, 0xEA, 0x02, 0x71, 0x5F, 0xF7, 0x0C, 0x61, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x06, 0xF0, 0x00, 0x6D, 0x03, 0xF3, 0x0C, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x07, 0x95, 0x06, 0x92, +0x08, 0x93, 0x01, 0x4D, 0x07, 0xD5, 0x02, 0x4A, +0x0A, 0x95, 0x06, 0xD2, 0x07, 0x92, 0x02, 0x4B, +0x04, 0x4D, 0x02, 0x72, 0x08, 0xD3, 0x0A, 0xD5, +0x1F, 0xF7, 0x04, 0x61, 0x15, 0x97, 0x14, 0x91, +0x13, 0x90, 0x0B, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, +0x4C, 0xEC, 0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x00, 0x6B, 0xAA, 0xF1, +0x7C, 0xC2, 0x1A, 0x2C, 0xE9, 0xF5, 0x7A, 0xA2, +0x17, 0x23, 0x29, 0xF7, 0x70, 0x9A, 0x29, 0xF7, +0x88, 0x9A, 0x00, 0x68, 0x6E, 0xEC, 0x05, 0x24, +0x29, 0xF7, 0x4C, 0x9A, 0x4E, 0xEB, 0x0C, 0x2B, +0x01, 0x68, 0x01, 0x6B, 0x30, 0xF0, 0x21, 0x6A, +0x90, 0x67, 0x35, 0xF2, 0x64, 0xC2, 0x80, 0x18, +0x77, 0x06, 0x90, 0x67, 0x80, 0x18, 0x6E, 0x41, +0x30, 0xF0, 0x21, 0x6A, 0x35, 0xF2, 0x44, 0xA2, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x21, 0x6A, +0x74, 0xF6, 0x4D, 0xA2, 0x05, 0x22, 0x00, 0x6C, +0x01, 0x6D, 0x80, 0x18, 0x08, 0x07, 0x04, 0x10, +0x00, 0x6C, 0x01, 0x6D, 0x80, 0x18, 0x77, 0x06, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x00, 0x6A, 0x7D, 0x67, 0x4C, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF1, 0x38, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF2, 0x00, 0x4A, 0xE0, 0x9A, +0x30, 0xF0, 0x21, 0x68, 0x32, 0xF4, 0x18, 0x48, +0x00, 0x6D, 0x90, 0x67, 0xC5, 0x67, 0x04, 0xD1, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF2, 0x00, 0x4B, 0xE0, 0x9B, 0x90, 0x67, +0x01, 0x6D, 0x00, 0x6E, 0x30, 0xF0, 0x20, 0x68, +0x04, 0xD1, 0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF2, 0xB4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xE1, 0xF0, 0x18, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xE1, 0xF0, 0x1C, 0x6C, 0xAB, 0xED, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x07, 0x6D, +0xC5, 0x67, 0x83, 0xF1, 0x0C, 0x6C, 0x40, 0xEA, +0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x48, 0x9A, 0xA1, 0xF3, 0x18, 0x6F, +0xA1, 0xF7, 0x00, 0x6C, 0x08, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, +0x08, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0xE3, 0xF2, 0xB8, 0x9B, 0x01, 0xF2, 0x04, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF1, 0x6C, 0x9A, 0xFF, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0xFE, 0x6C, 0x4C, 0xEC, 0x80, 0xC3, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, +0x54, 0x9A, 0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0x09, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, +0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, +0x5C, 0x9A, 0x60, 0xDA, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0x20, 0x9A, +0x30, 0xF0, 0x21, 0x68, 0x32, 0xF4, 0x18, 0x48, +0x90, 0x67, 0xF1, 0x67, 0x01, 0xF2, 0x00, 0x6A, +0x00, 0x6D, 0xB8, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, +0x44, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, +0xB8, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x0E, 0xD6, 0x0F, 0xD7, +0x04, 0xD7, 0xFF, 0x68, 0xFF, 0xF7, 0x1F, 0x69, +0x0E, 0x97, 0x8C, 0xE8, 0xAC, 0xE9, 0x30, 0xF0, +0x21, 0x6C, 0x32, 0xF4, 0x18, 0x4C, 0xB0, 0x67, +0xD1, 0x67, 0x80, 0x18, 0x12, 0x59, 0x00, 0x6A, +0x07, 0xD2, 0x30, 0xF0, 0x21, 0x6B, 0x0E, 0x97, +0x32, 0xF4, 0x18, 0x4B, 0x83, 0x67, 0xB0, 0x67, +0xD1, 0x67, 0x06, 0xD3, 0x80, 0x18, 0x9F, 0x58, +0x0F, 0x93, 0x6E, 0xEA, 0x1E, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, +0x40, 0xEA, 0x0F, 0x92, 0x06, 0x94, 0x0E, 0x97, +0xB0, 0x67, 0xD1, 0x67, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x07, 0x93, 0x01, 0x4B, 0xE0, 0xF3, +0x08, 0x73, 0x07, 0xD3, 0xDE, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0xA0, 0xF1, +0x00, 0x6C, 0x1F, 0xF7, 0x00, 0x6D, 0x0A, 0x6E, +0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xFF, 0x68, 0xFF, 0xF7, 0x1F, 0x69, 0xC3, 0xF2, +0xE0, 0x9A, 0x8C, 0xE8, 0xAC, 0xE9, 0x30, 0xF0, +0x21, 0x6C, 0x0E, 0xD6, 0x04, 0xD6, 0x32, 0xF4, +0x18, 0x4C, 0xB0, 0x67, 0xD1, 0x67, 0x80, 0x18, +0x12, 0x59, 0x00, 0x6A, 0x07, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF2, 0x00, 0x4A, 0x30, 0xF0, +0x21, 0x6B, 0xE0, 0x9A, 0x32, 0xF4, 0x18, 0x4B, +0x83, 0x67, 0xB0, 0x67, 0xD1, 0x67, 0x06, 0xD3, +0x80, 0x18, 0x9F, 0x58, 0x0E, 0x93, 0x6E, 0xEA, +0x18, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF2, 0x00, 0x4B, 0x0E, 0x92, +0x06, 0x94, 0xE0, 0x9B, 0xB0, 0x67, 0xD1, 0x67, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x07, 0x92, +0x01, 0x4A, 0xE0, 0xF3, 0x08, 0x72, 0x07, 0xD2, +0xD6, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x00, 0x6A, 0x0C, 0xD4, +0x05, 0x67, 0x06, 0xD2, 0x06, 0x92, 0xFF, 0x6B, +0x30, 0xF0, 0x21, 0x69, 0x6C, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF2, 0x00, 0x4B, 0x07, 0xD2, +0xE0, 0x9B, 0x07, 0x95, 0x32, 0xF4, 0x18, 0x49, +0x00, 0x6A, 0x91, 0x67, 0xEF, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x40, 0x98, 0x06, 0x94, +0x11, 0x6E, 0xCB, 0xEE, 0x4C, 0xEE, 0xDF, 0x6D, +0x80, 0x18, 0xA1, 0x07, 0x0C, 0x92, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF2, 0x00, 0x4B, 0xC1, 0xA2, +0xE0, 0x9B, 0x42, 0x98, 0x07, 0x95, 0x91, 0x67, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x0C, 0x92, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0x00, 0x4B, +0xC2, 0xA2, 0x07, 0x95, 0x44, 0x98, 0xE0, 0x9B, +0x91, 0x67, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x06, 0x92, 0x04, 0x48, 0x01, 0x4A, 0x02, 0x72, +0x06, 0xD2, 0xC4, 0x61, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x21, 0x6C, +0x32, 0xF4, 0x18, 0x4C, 0x80, 0x18, 0xFE, 0x1F, +0x05, 0x97, 0x01, 0x6A, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x01, 0x6B, 0x6B, 0xEB, 0x30, 0xF0, 0x21, 0x6A, +0x0A, 0xD4, 0x74, 0xF6, 0x62, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF1, 0x3C, 0x9A, 0x30, 0xF0, +0x20, 0x68, 0x0A, 0x93, 0x80, 0xF2, 0x4C, 0x98, +0x30, 0xF0, 0x21, 0x6C, 0x35, 0xE3, 0xF5, 0xF1, +0x00, 0x4C, 0x08, 0x6E, 0x40, 0xEA, 0x0A, 0x95, +0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, 0x21, 0x6C, +0x08, 0x4D, 0x35, 0xE5, 0xB4, 0xF7, 0x18, 0x4C, +0x44, 0x6E, 0x40, 0xEA, 0x0A, 0x92, 0x30, 0xF0, +0x21, 0x6C, 0xF4, 0xF7, 0x1C, 0x4C, 0x4C, 0x4A, +0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, +0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, +0x30, 0xF0, 0x21, 0x6C, 0x55, 0xF0, 0x00, 0x4C, +0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, +0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, +0x04, 0x92, 0x30, 0xF0, 0x21, 0x6C, 0x95, 0xF0, +0x04, 0x4C, 0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, +0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, +0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, 0x21, 0x6C, +0xD5, 0xF0, 0x08, 0x4C, 0x44, 0x4A, 0x04, 0xD2, +0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, +0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, +0x21, 0x6C, 0x15, 0xF1, 0x0C, 0x4C, 0x44, 0x4A, +0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, +0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, +0x30, 0xF0, 0x21, 0x6C, 0x55, 0xF1, 0x10, 0x4C, +0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, +0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, +0x04, 0x92, 0x30, 0xF0, 0x21, 0x6C, 0x95, 0xF1, +0x14, 0x4C, 0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, +0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, +0xB0, 0x9B, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, +0x30, 0xF0, 0x21, 0x6C, 0xF5, 0xF1, 0x18, 0x4C, +0xB5, 0xE3, 0x10, 0x6E, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0xD1, 0x08, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF0, 0x78, 0xA2, 0x80, 0xF0, +0x1A, 0x23, 0x30, 0xF0, 0x20, 0x6C, 0x00, 0x6B, +0x03, 0xF1, 0x94, 0x9C, 0x42, 0xF0, 0x78, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x09, 0xF6, 0x90, 0xDA, 0x09, 0xF6, 0x98, 0xDA, +0x09, 0xF6, 0x94, 0xDA, 0x09, 0xF6, 0x9C, 0xDA, +0x30, 0xF0, 0x21, 0x6D, 0x30, 0xF0, 0x21, 0x6C, +0x09, 0xF6, 0x6B, 0xC2, 0x09, 0xF6, 0x69, 0xC2, +0x09, 0xF6, 0x6D, 0xC2, 0x09, 0xF6, 0x6C, 0xC2, +0x09, 0xF6, 0x6A, 0xC2, 0x09, 0xF6, 0x6E, 0xC2, +0xF5, 0xF1, 0x00, 0x4D, 0xD4, 0xF7, 0x1A, 0x4C, +0x00, 0x6A, 0x00, 0x6B, 0x60, 0xDD, 0x30, 0xF0, +0x20, 0x6E, 0x31, 0xF2, 0x62, 0x42, 0x6B, 0xF0, +0x08, 0x4E, 0x6C, 0x33, 0x6D, 0xE6, 0x04, 0xD3, +0x62, 0xF4, 0x62, 0x42, 0x68, 0x33, 0x6D, 0xE6, +0x03, 0xD3, 0x06, 0x6B, 0x78, 0xEA, 0x01, 0xD4, +0x12, 0xEB, 0x6D, 0xE6, 0xAA, 0xF1, 0x01, 0x4B, +0x00, 0x6E, 0x04, 0x90, 0x00, 0x6F, 0xE0, 0xD8, +0x03, 0x90, 0xE0, 0xC8, 0x44, 0x30, 0x01, 0xE6, +0xA5, 0xF0, 0x18, 0x48, 0x30, 0xF0, 0x20, 0x6F, +0x04, 0x30, 0x6B, 0xF0, 0x08, 0x4F, 0x1D, 0xE7, +0x05, 0xD7, 0x01, 0x97, 0x00, 0x68, 0x00, 0xD0, +0x02, 0xD7, 0x05, 0x90, 0x00, 0x6F, 0x22, 0x69, +0xE0, 0xC0, 0x00, 0x97, 0x06, 0xD2, 0x38, 0xEF, +0x44, 0x6F, 0x12, 0xE9, 0xF8, 0xEE, 0x12, 0xEF, +0xE5, 0xE1, 0x88, 0x6F, 0xF8, 0xEA, 0x12, 0xEF, +0xE5, 0xE1, 0x11, 0x67, 0x30, 0xF0, 0x20, 0x6F, +0x6B, 0xF0, 0x08, 0x4F, 0x49, 0xF7, 0x10, 0x48, +0x6A, 0xF0, 0x00, 0x49, 0x01, 0xE7, 0x25, 0xE7, +0x02, 0x92, 0x00, 0x6F, 0xE0, 0xC8, 0x02, 0x48, +0x4A, 0xE8, 0xE0, 0xC9, 0x02, 0x49, 0xF8, 0x61, +0x00, 0x90, 0x06, 0x92, 0x01, 0x48, 0x00, 0xD0, +0x05, 0x90, 0x01, 0x48, 0x05, 0xD0, 0x02, 0x90, +0x22, 0x48, 0x02, 0xD0, 0x00, 0x90, 0x02, 0x70, +0xD0, 0x61, 0xE0, 0xC3, 0xE1, 0xC3, 0xE2, 0xC3, +0x04, 0x97, 0x03, 0x90, 0x01, 0x4E, 0x04, 0x4F, +0x04, 0xD7, 0x01, 0x97, 0x02, 0x48, 0x02, 0x76, +0x44, 0x4F, 0x03, 0xD0, 0x03, 0x4B, 0x01, 0xD7, +0xAC, 0x61, 0x01, 0x4A, 0x7F, 0x4C, 0x02, 0x72, +0x04, 0x4D, 0x09, 0x4C, 0x8E, 0x61, 0x09, 0x91, +0x08, 0x90, 0x05, 0x63, 0x20, 0xE8, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0x4C, 0xED, 0x4C, 0xEC, 0xCC, 0xEA, +0x4B, 0xEA, 0xC0, 0xF7, 0x42, 0x32, 0x30, 0xF0, +0x20, 0x68, 0x44, 0x32, 0xC0, 0xF3, 0x64, 0x98, +0x07, 0xD5, 0x04, 0xD2, 0xA4, 0x36, 0x08, 0x6A, +0x01, 0x6D, 0x06, 0xD4, 0x4D, 0xEE, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, 0x06, 0x92, +0x0F, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xE3, 0xF2, 0xB0, 0x9B, 0x23, 0xF3, +0x00, 0x6C, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF3, 0x54, 0x9A, 0x0E, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0xE3, 0xF2, 0xB0, 0x9B, 0x23, 0xF3, 0x00, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF3, 0x58, 0x9A, 0x05, 0xD2, 0x06, 0x92, +0x22, 0x69, 0x07, 0x93, 0x38, 0xEA, 0x44, 0x6A, +0x00, 0x68, 0x12, 0xE9, 0x58, 0xEB, 0x04, 0x93, +0x12, 0xEA, 0x45, 0xE1, 0x88, 0x6A, 0x58, 0xEB, +0x12, 0xEA, 0x45, 0xE1, 0x30, 0xF0, 0x20, 0x6A, +0x49, 0xF7, 0x10, 0x49, 0x6B, 0xF0, 0x08, 0x4A, +0x25, 0xE2, 0xC0, 0xA9, 0x05, 0x94, 0x08, 0x32, +0xC0, 0x36, 0x8D, 0xEE, 0x4D, 0xEE, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, +0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x02, 0x4E, +0x01, 0x48, 0x40, 0xEA, 0x11, 0x70, 0x02, 0x49, +0xEC, 0x61, 0x06, 0x92, 0x22, 0x6B, 0x07, 0x94, +0x78, 0xEA, 0x44, 0x6A, 0x00, 0x69, 0x12, 0xEB, +0x58, 0xEC, 0x04, 0x94, 0x12, 0xEA, 0x49, 0xE3, +0x88, 0x6B, 0x78, 0xEC, 0x12, 0xEB, 0x69, 0xE2, +0x30, 0xF0, 0x20, 0x6B, 0x6A, 0xF0, 0x00, 0x4A, +0x6B, 0xF0, 0x08, 0x4B, 0x4D, 0xE3, 0x04, 0xD3, +0x04, 0x92, 0x05, 0x93, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xAA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xC0, 0x36, 0x6D, 0xEE, 0x28, 0x33, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x6D, 0xEE, 0x40, 0xEA, +0x04, 0x94, 0x01, 0x49, 0x11, 0x71, 0x02, 0x4C, +0x04, 0xD4, 0xEA, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF2, 0xC8, 0x9B, +0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xE3, 0xF2, 0xB0, 0x9B, 0x23, 0xF3, +0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x52, 0xF4, 0x8C, 0x42, +0x30, 0xF0, 0x20, 0x6B, 0xC5, 0xF0, 0x00, 0x4A, +0x6B, 0xF0, 0x08, 0x4B, 0x88, 0x34, 0x44, 0x32, +0x91, 0xE3, 0x4D, 0xE3, 0x00, 0x68, 0x04, 0x4B, +0x04, 0xD4, 0x05, 0xD3, 0x06, 0xD0, 0x07, 0xD0, +0x08, 0xD0, 0x04, 0x95, 0x01, 0x6C, 0x08, 0x93, +0x40, 0xA5, 0x30, 0xF0, 0x20, 0x69, 0x04, 0x36, +0x8C, 0xEA, 0x44, 0xE8, 0x4D, 0xE3, 0x41, 0xA5, +0x05, 0x95, 0x08, 0xD3, 0x8C, 0xEA, 0x07, 0x94, +0x64, 0x40, 0x44, 0xEB, 0x51, 0xE4, 0x40, 0xA5, +0x07, 0xD4, 0x03, 0x6C, 0x64, 0x33, 0x8C, 0xEA, +0x44, 0xEB, 0x04, 0x94, 0x06, 0x93, 0x01, 0x6D, +0x8C, 0xAC, 0x4D, 0xE3, 0x06, 0xD3, 0xC0, 0xF3, +0x64, 0x99, 0x08, 0x6A, 0x4D, 0xEE, 0x09, 0xD4, +0xAB, 0xED, 0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEB, +0x08, 0x95, 0x07, 0x96, 0x06, 0x93, 0xC0, 0xF3, +0x44, 0x99, 0xAD, 0xEE, 0x6D, 0xEE, 0xE3, 0xF3, +0x10, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0x09, 0x96, 0x01, 0x6D, +0xE3, 0xF3, 0x08, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x04, 0x94, 0x05, 0x95, 0x01, 0x48, 0x02, 0x4C, +0x01, 0x4D, 0x02, 0x70, 0x04, 0xD4, 0x05, 0xD5, +0xBC, 0x61, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, +0x05, 0xD2, 0x00, 0x6A, 0x04, 0xD2, 0x04, 0x92, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x64, 0x98, +0x01, 0x69, 0x2B, 0xE9, 0x44, 0x36, 0x08, 0x6A, +0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xB1, 0x67, +0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x83, 0xF3, 0xDC, 0x9B, 0x03, 0xF3, +0x04, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x05, 0x92, +0x07, 0x2A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x08, 0x6C, 0xB1, 0x67, 0x80, 0x6E, 0x06, 0x10, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x30, 0xF0, 0x20, 0x68, +0x40, 0xEA, 0x01, 0x69, 0xC0, 0xF3, 0x44, 0x98, +0x2B, 0xE9, 0x03, 0xF3, 0x0C, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF2, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x14, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF3, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x18, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, +0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x1C, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, +0xC8, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x04, 0x92, 0x01, 0x4A, 0x02, 0x72, +0x04, 0xD2, 0x99, 0x61, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, +0x00, 0xF2, 0x1C, 0x22, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0xB0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF6, 0x04, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF2, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF4, 0x10, 0x69, 0x91, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF1, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF0, 0x14, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF5, +0x18, 0x6C, 0xE1, 0xF7, 0x18, 0x6D, 0xE0, 0xF1, +0x1F, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF0, 0x14, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x63, 0xF0, 0x04, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, +0x14, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x68, 0xF1, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0x38, 0x9A, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0x0C, 0x6C, +0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x08, 0xF1, 0x0C, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF0, 0x0C, 0x6C, 0x80, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x68, 0xF1, +0x0C, 0x6C, 0x80, 0x6D, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0x0C, 0x6C, +0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x08, 0xF1, 0x0C, 0x6C, 0x03, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF2, 0x00, 0x6C, 0x03, 0x6D, 0x02, 0x6E, +0x40, 0xEA, 0x01, 0x69, 0xC0, 0xF3, 0x44, 0x98, +0x2B, 0xE9, 0x23, 0xF4, 0x18, 0x6C, 0xB1, 0x67, +0xD1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF3, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, +0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF3, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF3, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF3, 0x04, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF3, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, +0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF3, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF3, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF3, 0x04, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF3, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, +0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, 0x0C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF3, 0x0C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF3, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, +0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, 0x18, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF3, 0x1C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF3, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, +0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0x08, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF3, 0x0C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF3, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, +0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0x18, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF3, 0x1C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF3, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, +0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, 0x08, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF3, 0x08, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0xC0, 0x9B, 0xC9, 0x12, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x04, 0xD2, 0xAA, 0xF1, +0x40, 0xA2, 0xE0, 0xF0, 0x1B, 0x22, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, +0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, +0x2B, 0xE9, 0x23, 0xF4, 0x18, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x04, 0x93, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF0, 0x00, 0x6C, 0x09, 0xF6, 0xC6, 0xA3, +0x04, 0x6B, 0x0E, 0xF0, 0x00, 0x6D, 0x67, 0xEE, +0xC3, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF3, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x23, 0xF0, +0x10, 0x6C, 0x09, 0xF6, 0xC6, 0xA2, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, 0x14, 0x4B, +0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, +0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0x09, 0xF6, +0xC6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF3, 0x18, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x23, 0xF0, +0x10, 0x6C, 0x09, 0xF6, 0xC6, 0xA2, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, 0x1C, 0x4B, +0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, +0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0x09, 0xF6, +0xC6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF4, 0x00, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, +0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x04, 0x92, 0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, +0x09, 0xF6, 0xC6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF4, 0x08, 0x4B, 0x60, 0x9B, +0x6D, 0xEE, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF3, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x28, 0xF1, +0x10, 0x6C, 0x09, 0xF6, 0xC6, 0xA2, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, 0x14, 0x4B, +0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, +0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, 0x09, 0xF6, +0xC6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF3, 0x18, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x28, 0xF1, +0x10, 0x6C, 0x09, 0xF6, 0xC6, 0xA2, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, 0x1C, 0x4B, +0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, +0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, 0x09, 0xF6, +0xC6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF4, 0x00, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, +0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x04, 0x92, 0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, +0x09, 0xF6, 0xC6, 0xA2, 0xB1, 0x67, 0xC0, 0xF3, +0x44, 0x98, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF4, 0x08, 0x4B, 0x60, 0x9B, +0x6D, 0xEE, 0x63, 0x11, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0xE3, 0xF3, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, +0x2B, 0xE9, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, +0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, +0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x1C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, +0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x0C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x1C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF3, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, +0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, +0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x1C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, +0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x0C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x1C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF4, 0x00, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xC0, 0x9B, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF5, +0x18, 0x6C, 0xE1, 0xF7, 0x18, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF0, +0x34, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, +0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x68, 0xF1, +0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF2, 0x38, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF0, 0x0C, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x08, 0xF1, 0x0C, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, +0x0C, 0x6C, 0x80, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x68, 0xF1, 0x0C, 0x6C, +0x80, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0x6D, 0xC5, 0x67, 0x03, 0xF0, +0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0x6D, 0xC5, 0x67, 0x08, 0xF1, 0x0C, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, +0x00, 0x6C, 0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x06, 0x67, 0x43, 0xF4, 0xC4, 0x9B, 0x09, 0xD5, +0x01, 0x6D, 0x24, 0x67, 0x0B, 0xD7, 0x63, 0xF5, +0x10, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x00, 0x6A, +0x80, 0x98, 0x1F, 0xF7, 0x00, 0x6B, 0x8C, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x09, 0x2B, +0x30, 0xF0, 0x20, 0x6C, 0x60, 0x98, 0xA3, 0xF0, +0x80, 0x9C, 0x6D, 0xE4, 0x80, 0x99, 0x80, 0xDB, +0x07, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, +0x64, 0x9B, 0x91, 0xE3, 0x60, 0x99, 0x60, 0xDC, +0x01, 0x4A, 0xFF, 0x6B, 0x6C, 0xEA, 0x03, 0x72, +0x04, 0x48, 0x04, 0x49, 0xE1, 0x61, 0x00, 0x68, +0x0B, 0x92, 0x30, 0xF0, 0x20, 0x69, 0x01, 0x6D, +0x11, 0xE2, 0x09, 0x92, 0x80, 0xAC, 0xAB, 0xED, +0x0D, 0xE2, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0x04, 0x48, 0x40, 0xEA, 0x2C, 0x70, 0xF0, 0x61, +0x30, 0xF0, 0x21, 0x6A, 0xD5, 0xF1, 0x59, 0xA2, +0x01, 0x72, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x99, 0x03, 0xF0, 0x0C, 0x6C, +0x63, 0xF0, 0xB4, 0x9B, 0x00, 0x6E, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, +0x63, 0xF0, 0xB4, 0x9B, 0x03, 0xF0, 0x0C, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x21, 0x6A, +0xD5, 0xF1, 0x5B, 0xA2, 0x01, 0x72, 0x0C, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9A, 0x08, 0xF1, 0x0C, 0x6C, +0x63, 0xF0, 0xB4, 0x9B, 0x00, 0x6E, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9A, 0x63, 0xF0, 0xB4, 0x9B, +0x08, 0xF1, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x21, 0x6A, 0x15, 0xF2, 0x48, 0xA2, +0x1E, 0x22, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF1, 0xB4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x63, 0xF6, 0x1C, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, +0x34, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, +0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x04, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF1, 0x5C, 0x9A, 0x01, 0x6B, +0x6B, 0xEB, 0x30, 0xF0, 0x20, 0x68, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF1, 0xB0, 0x9B, 0x23, 0xF6, 0x04, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF4, 0xA8, 0x9B, +0xC3, 0xF4, 0x10, 0x6C, 0x07, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, 0xB4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF5, 0x00, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6E, 0xCB, 0xEE, 0xA6, 0x67, 0x23, 0xF4, +0x18, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF2, 0x14, 0x6C, 0x00, 0xF3, 0x00, 0x6D, +0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF4, 0xAC, 0x9B, +0x21, 0xF0, 0x04, 0x6C, 0x03, 0x6E, 0x40, 0xEA, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF2, 0xE4, 0x9B, 0xFF, 0x6A, 0x04, 0x6B, +0xC0, 0xA7, 0x4C, 0xED, 0x4C, 0xEC, 0x4C, 0xEE, +0xCD, 0xEB, 0x4C, 0xEB, 0x60, 0xC7, 0x06, 0x2D, +0x07, 0x6B, 0x07, 0x24, 0x01, 0x74, 0x07, 0x6B, +0x12, 0x61, 0x0C, 0x10, 0x07, 0x2C, 0x79, 0x6B, +0x6B, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, +0x40, 0x9A, 0x08, 0x10, 0x01, 0x74, 0x07, 0x61, +0x79, 0x6B, 0x6B, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF4, 0x50, 0x9A, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF2, 0x44, 0x9A, 0xC0, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6E, 0x30, 0xF0, +0x20, 0x68, 0xCC, 0xEC, 0xC0, 0xF3, 0x44, 0x98, +0xAC, 0xEE, 0x01, 0x69, 0x08, 0x6B, 0x2B, 0xE9, +0xC4, 0x36, 0x04, 0xD4, 0xB1, 0x67, 0x03, 0xF3, +0x00, 0x6C, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, +0x12, 0x2A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x03, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, +0x43, 0xF4, 0xD4, 0x9B, 0x11, 0x10, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, +0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF4, +0xD8, 0x9B, 0xC3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, +0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x30, 0xF0, 0x20, 0x68, 0xC3, 0xF3, 0x18, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x00, 0x6E, +0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x00, 0x68, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF4, 0xBC, 0x9A, 0x02, 0xF7, 0x00, 0x6C, +0x80, 0x18, 0x81, 0x28, 0x20, 0x6B, 0x4C, 0xEB, +0x0A, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x14, 0x6C, 0x01, 0x48, 0x40, 0xEA, +0x0A, 0x70, 0xEC, 0x61, 0x0A, 0x68, 0x50, 0x67, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0xF7, 0x1F, 0x68, 0x8C, 0xE8, 0x80, 0x18, +0x89, 0x0C, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF4, +0xC0, 0x9A, 0x01, 0x69, 0x2B, 0xE9, 0x0D, 0xEE, +0xB1, 0x67, 0x02, 0xF7, 0x00, 0x6C, 0x80, 0x18, +0x96, 0x28, 0xB1, 0x67, 0x02, 0xF7, 0x08, 0x6C, +0x80, 0x18, 0x81, 0x28, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0xF7, 0x1F, 0x68, 0x25, 0x67, 0x0C, 0xD6, +0x8C, 0xE8, 0x37, 0x25, 0x61, 0x45, 0x00, 0x6A, +0x0E, 0x2B, 0x80, 0x18, 0x89, 0x0C, 0x01, 0x69, +0x0C, 0x96, 0x2B, 0xE9, 0x02, 0xF7, 0x04, 0x6C, +0xB1, 0x67, 0x80, 0x18, 0x96, 0x28, 0x02, 0xF7, +0x00, 0x6C, 0xB1, 0x67, 0x1F, 0x10, 0x71, 0x67, +0x66, 0xEA, 0x01, 0x6C, 0x8C, 0xEB, 0x04, 0x2B, +0x01, 0x4A, 0x20, 0x72, 0xF8, 0x61, 0x00, 0x6A, +0x90, 0x67, 0x04, 0xD2, 0x2F, 0xE9, 0x80, 0x18, +0x98, 0x0C, 0x4C, 0xE9, 0x80, 0x18, 0x89, 0x0C, +0x0C, 0x96, 0x04, 0x92, 0x01, 0x6D, 0x02, 0xF7, +0x04, 0x6C, 0xC4, 0xEA, 0xAB, 0xED, 0x2D, 0xEE, +0x80, 0x18, 0x96, 0x28, 0x01, 0x6D, 0x02, 0xF7, +0x00, 0x6C, 0xAB, 0xED, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF4, 0xC4, 0x9A, 0x0D, 0xEE, 0x80, 0x18, +0x96, 0x28, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x38, 0x6C, 0x18, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x80, 0x18, 0xA8, 0x0C, 0x38, 0x6C, 0x01, 0xF4, +0x00, 0x6D, 0x01, 0x6E, 0x80, 0x18, 0xA8, 0x0C, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x38, 0x6C, 0x06, 0xF0, +0x00, 0x6D, 0x03, 0x6E, 0x80, 0x18, 0xA8, 0x0C, +0x38, 0x6C, 0x00, 0xF3, 0x00, 0x6D, 0x03, 0x6E, +0x80, 0x18, 0xA8, 0x0C, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x05, 0x22, 0x80, 0x18, +0xD4, 0x0C, 0x80, 0x18, 0xCB, 0x0C, 0x09, 0x10, +0x30, 0xF0, 0x21, 0x6A, 0x35, 0xF2, 0xC0, 0x9A, +0x01, 0x6D, 0x38, 0x6C, 0xAB, 0xED, 0x80, 0x18, +0xA8, 0x0C, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x00, 0x6A, 0x09, 0xD5, 0x27, 0x67, 0xA0, 0x9E, +0x1F, 0xF7, 0x00, 0x6B, 0xAC, 0xEB, 0x02, 0xF0, +0x00, 0x73, 0x01, 0x60, 0x08, 0x2B, 0x30, 0xF0, +0x20, 0x6D, 0x60, 0x9E, 0xA3, 0xF0, 0xA0, 0x9D, +0x6D, 0xE5, 0x60, 0x9B, 0x06, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF0, 0x64, 0x9B, 0xB5, 0xE3, +0x60, 0x9D, 0x55, 0xE4, 0x04, 0x4A, 0x0C, 0x72, +0x60, 0xDD, 0x04, 0x4E, 0xE4, 0x61, 0x00, 0x68, +0x09, 0xE1, 0x80, 0xAA, 0x01, 0x6D, 0xAB, 0xED, +0x80, 0x18, 0x09, 0x28, 0x09, 0x94, 0x0D, 0xE4, +0x04, 0x48, 0x2C, 0x70, 0x40, 0xDB, 0xF4, 0x61, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x4C, 0xED, +0x4C, 0xEC, 0xCC, 0xEA, 0x4B, 0xEA, 0xC0, 0xF7, +0x42, 0x32, 0x30, 0xF0, 0x20, 0x68, 0x44, 0x32, +0xC0, 0xF3, 0x64, 0x98, 0x06, 0xD5, 0x04, 0xD2, +0xA4, 0x36, 0x08, 0x6A, 0x01, 0x6D, 0x05, 0xD4, +0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEB, 0x05, 0x92, 0x0A, 0x2A, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, +0x00, 0x6C, 0xE3, 0xF2, 0xB0, 0x9B, 0x03, 0x6E, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xE3, 0xF2, 0xB0, 0x9B, 0x23, 0xF3, +0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, +0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, +0x14, 0x69, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF2, 0xA4, 0x9B, 0x91, 0x67, 0x10, 0x6E, +0x40, 0xEA, 0x05, 0x92, 0x22, 0x6B, 0x06, 0x94, +0x78, 0xEA, 0x44, 0x6A, 0x00, 0x69, 0x12, 0xEB, +0x58, 0xEC, 0x04, 0x94, 0x12, 0xEA, 0x4D, 0xE3, +0x88, 0x6A, 0x58, 0xEC, 0x12, 0xEA, 0x4D, 0xE3, +0x83, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x49, 0xF7, 0x10, 0x4C, 0x6A, 0xF0, +0x00, 0x4B, 0x91, 0xE2, 0x6D, 0xE2, 0x05, 0xD4, +0x04, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, +0x68, 0x9B, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0x36, 0x01, 0x6D, 0x6D, 0xEE, +0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x01, 0x6D, 0xE3, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, +0x80, 0x18, 0x09, 0x28, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF2, 0x6C, 0x9B, 0x05, 0x94, 0x01, 0x49, +0x4C, 0xEB, 0x62, 0x33, 0x62, 0x33, 0x60, 0xCC, +0xE1, 0xF7, 0x1F, 0x6B, 0x4C, 0xEB, 0x04, 0x92, +0x02, 0x4C, 0x11, 0x71, 0x60, 0xCA, 0x02, 0x4A, +0x05, 0xD4, 0x04, 0xD2, 0xD6, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF2, 0xB0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x00, 0x6E, +0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xFF, 0x6A, 0x24, 0x67, 0x6B, 0xF0, 0x08, 0x48, +0x4C, 0xED, 0x4C, 0xE9, 0xE9, 0xF5, 0x59, 0xA0, +0x06, 0xD5, 0x24, 0x36, 0x07, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x9A, 0x01, 0x6D, +0x08, 0x6A, 0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF2, 0xB0, 0x9B, 0x23, 0xF3, 0x00, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0xE9, 0xF5, 0x58, 0xA0, +0x4B, 0x2A, 0x06, 0x92, 0x03, 0x22, 0x12, 0x6A, +0xE9, 0xF5, 0x5E, 0xC0, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x21, 0x6B, 0x74, 0xF6, 0xC6, 0xA3, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, +0xFF, 0x6D, 0x40, 0xEA, 0x01, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0xF8, 0x9A, +0x30, 0xF0, 0x21, 0x6B, 0x32, 0xF4, 0x18, 0x4B, +0x83, 0x67, 0xB1, 0x67, 0xDE, 0x6E, 0x06, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x06, 0x94, 0xE1, 0xF7, +0x1F, 0x6F, 0x20, 0x6A, 0xB1, 0x67, 0x56, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x18, 0x6C, 0x02, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF4, 0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x23, 0xF3, 0x04, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x0C, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x18, 0x6E, 0x49, 0x10, +0x06, 0x92, 0x03, 0x22, 0x12, 0x6A, 0xE9, 0xF5, +0x5E, 0xC0, 0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF1, 0xF8, 0x9A, 0x30, 0xF0, +0x21, 0x68, 0x32, 0xF4, 0x18, 0x48, 0x90, 0x67, +0xB1, 0x67, 0xDE, 0x6E, 0x80, 0x18, 0x12, 0x59, +0xE1, 0xF7, 0x1F, 0x6F, 0x90, 0x67, 0x00, 0x6A, +0xB1, 0x67, 0x56, 0x6E, 0x30, 0xF0, 0x20, 0x68, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, +0x21, 0x6B, 0x74, 0xF6, 0xC6, 0xA3, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x18, 0x6C, 0x02, 0x6D, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, 0xCC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, +0x04, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x38, 0x6E, 0x40, 0xEA, 0x07, 0x93, 0x06, 0x73, +0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, +0x1F, 0x6D, 0x08, 0x6E, 0x40, 0xEA, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x06, 0xD2, 0x6B, 0xF0, 0x08, 0x4B, 0xE9, 0xF5, +0x59, 0xA3, 0x07, 0xD3, 0x06, 0x93, 0x30, 0xF0, +0x20, 0x68, 0x08, 0xD2, 0x64, 0x31, 0x08, 0x6A, +0x4D, 0xE9, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xD1, 0x67, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, +0x00, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x3F, 0x6D, 0xC5, 0x67, +0xC3, 0xF3, 0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xD1, 0x67, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF2, 0x00, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF2, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x00, 0x69, 0x91, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0xE0, 0xF3, 0x00, 0x6D, 0x12, 0x6E, 0x40, 0xEA, +0x07, 0x93, 0xE9, 0xF5, 0x58, 0xA3, 0x11, 0x2A, +0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x21, 0x69, 0x06, 0x95, 0x03, 0xF1, +0xF8, 0x9A, 0x32, 0xF4, 0x18, 0x49, 0x91, 0x67, +0xDE, 0x6E, 0x80, 0x18, 0x12, 0x59, 0x20, 0x6A, +0x10, 0x10, 0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x21, 0x69, 0x06, 0x95, +0x03, 0xF1, 0xF8, 0x9A, 0x32, 0xF4, 0x18, 0x49, +0x91, 0x67, 0xDE, 0x6E, 0x80, 0x18, 0x12, 0x59, +0x00, 0x6A, 0x06, 0x95, 0x91, 0x67, 0x56, 0x6E, +0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, +0x0C, 0x6C, 0xFF, 0x6D, 0x12, 0x6E, 0x40, 0xEA, +0x08, 0x92, 0x06, 0x72, 0x0A, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, +0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x08, 0x6E, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, +0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xFF, 0x68, 0xE9, 0xF5, 0x79, 0xA2, 0x8C, 0xE8, +0x06, 0xD2, 0x04, 0x32, 0x07, 0xD2, 0x08, 0xD3, +0x07, 0x93, 0x30, 0xF0, 0x20, 0x69, 0x08, 0x6A, +0x4D, 0xEB, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, +0xC3, 0x67, 0x07, 0xD3, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF2, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0x3F, 0x6D, 0xC5, 0x67, +0xC3, 0xF3, 0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0x07, 0x96, 0x01, 0x6D, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF2, 0xB0, 0x9B, 0xC0, 0xF3, +0x44, 0x99, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, +0x00, 0x6C, 0xE0, 0xF3, 0x00, 0x6D, 0x12, 0x6E, +0x40, 0xEA, 0x06, 0x92, 0xE9, 0xF5, 0x58, 0xA2, +0x06, 0xD2, 0x5B, 0x2A, 0x07, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF4, 0xF0, 0x9A, +0x30, 0xF0, 0x21, 0x69, 0x32, 0xF4, 0x18, 0x49, +0x91, 0x67, 0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, +0x12, 0x59, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, +0x9E, 0x6E, 0x20, 0x6F, 0x04, 0xD3, 0x80, 0x18, +0x12, 0x59, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x9E, 0x6E, 0x00, 0xF4, 0x00, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF1, 0x18, 0x4A, 0xE0, 0x9A, 0x01, 0x6B, +0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x10, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x01, 0x6B, +0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, +0x04, 0xD3, 0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF1, 0x18, 0x4B, 0xE0, 0x9B, +0x06, 0x92, 0x91, 0x67, 0xB0, 0x67, 0x18, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x06, 0x92, +0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, 0x01, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x04, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, 0x70, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x06, 0x93, +0x5A, 0x10, 0x07, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF4, 0xF0, 0x9A, 0x30, 0xF0, +0x21, 0x69, 0x32, 0xF4, 0x18, 0x49, 0x91, 0x67, +0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, 0x12, 0x59, +0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, +0x20, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, +0x00, 0xF4, 0x00, 0x6F, 0x04, 0xD3, 0x80, 0x18, +0x12, 0x59, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, +0x18, 0x4B, 0xE0, 0x9B, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0xDE, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x01, 0x6B, 0x91, 0x67, +0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF1, 0x18, 0x4B, 0xE0, 0x9B, 0x01, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x18, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x33, 0x6E, 0xE2, 0x67, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x04, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x08, 0x6E, 0x70, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x00, 0x6B, 0x91, 0x67, +0x30, 0xF0, 0x21, 0x69, 0xB0, 0x67, 0xEF, 0x6E, +0x04, 0x6F, 0x32, 0xF4, 0x18, 0x49, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x00, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x57, 0x6E, 0x01, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0xEF, 0x6E, 0x10, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x21, 0x6A, +0x74, 0xF6, 0x40, 0xA2, 0x01, 0x22, 0x20, 0x6A, +0x7F, 0x6F, 0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, +0x30, 0xF0, 0x20, 0x69, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0xC0, 0xF3, 0x44, 0x99, 0xC3, 0xF3, +0x0C, 0x6C, 0xFF, 0x6D, 0x09, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, 0x0C, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x21, 0x6C, 0xB0, 0x67, 0x10, 0x6F, +0x01, 0x6A, 0x32, 0xF4, 0x18, 0x4C, 0xEF, 0x6E, +0x30, 0xF0, 0x20, 0x68, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, +0xFF, 0x6D, 0x12, 0x6E, 0x40, 0xEA, 0x08, 0x92, +0x06, 0x72, 0x08, 0x61, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x08, 0x6E, 0x07, 0x10, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x38, 0x6E, 0x40, 0xEA, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xE9, 0xF5, 0x79, 0xA2, 0x30, 0xF0, 0x20, 0x68, +0xFF, 0x69, 0x8C, 0xE9, 0x07, 0xD3, 0xC0, 0xF3, +0x64, 0x98, 0x06, 0xD2, 0x24, 0x36, 0x08, 0x6A, +0x01, 0x6D, 0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF2, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF4, 0xD4, 0x9B, 0x01, 0x6D, 0x23, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x06, 0x93, +0xE9, 0xF5, 0x58, 0xA3, 0x03, 0x2A, 0x81, 0xF0, +0x07, 0x4A, 0x02, 0x10, 0xC1, 0xF0, 0x0A, 0x6A, +0x30, 0xF0, 0x21, 0x6C, 0x32, 0xF4, 0x18, 0x4C, +0xB1, 0x67, 0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, +0x09, 0x6E, 0x40, 0xEA, 0x07, 0x92, 0x06, 0x72, +0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, +0x1F, 0x6D, 0x08, 0x6E, 0x09, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, +0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x38, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xFF, 0x68, 0x8C, 0xE8, 0xE9, 0xF5, 0x79, 0xA2, +0x06, 0xD2, 0x04, 0x32, 0x07, 0xD2, 0x08, 0xD3, +0x07, 0x93, 0x30, 0xF0, 0x20, 0x69, 0x08, 0x6A, +0x4D, 0xEB, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, +0xC3, 0x67, 0x07, 0xD3, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF2, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0x3F, 0x6D, 0xC5, 0x67, +0xC3, 0xF3, 0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0x07, 0x96, 0x01, 0x6D, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF2, 0xB0, 0x9B, 0xC0, 0xF3, +0x44, 0x99, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x30, 0xF0, +0x21, 0x69, 0x32, 0xF4, 0x18, 0x49, 0x23, 0xF3, +0x00, 0x6C, 0xE0, 0xF3, 0x00, 0x6D, 0x12, 0x6E, +0x40, 0xEA, 0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0xDF, 0x6E, 0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x00, 0x6B, 0x91, 0x67, 0xB0, 0x67, +0x9E, 0x6E, 0x20, 0x6F, 0x04, 0xD3, 0x80, 0x18, +0x12, 0x59, 0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x9E, 0x6E, 0x00, 0xF4, 0x00, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x06, 0x93, 0xE9, 0xF5, +0x78, 0xA3, 0x06, 0xD3, 0x35, 0x2B, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF1, 0x18, 0x4B, 0xE0, 0x9B, +0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x81, 0xF0, +0x07, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, +0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0xEF, 0x6E, 0x04, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, +0x18, 0x4A, 0x06, 0x93, 0xE0, 0x9A, 0x91, 0x67, +0xB0, 0x67, 0x18, 0x6E, 0x04, 0xD3, 0x80, 0x18, +0x12, 0x59, 0x04, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x08, 0x6E, 0x70, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x06, 0x93, 0x04, 0xD3, 0x3C, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0x18, 0x4B, +0xE0, 0x9B, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0xDE, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x61, 0xF0, 0x08, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF1, 0x18, 0x4A, 0xE0, 0x9A, 0x01, 0x6B, +0x91, 0x67, 0xB0, 0x67, 0x18, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x00, 0x6B, 0x91, 0x67, +0xB0, 0x67, 0x33, 0x6E, 0x01, 0x6F, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x04, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x08, 0x6E, 0x70, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x00, 0x6A, 0x04, 0xD2, +0x91, 0x67, 0x30, 0xF0, 0x21, 0x69, 0xB0, 0x67, +0xEF, 0x6E, 0x04, 0x6F, 0x32, 0xF4, 0x18, 0x49, +0x80, 0x18, 0x12, 0x59, 0x00, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x57, 0x6E, 0x01, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0xEF, 0x6E, 0x10, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x21, 0x6A, +0x74, 0xF6, 0x40, 0xA2, 0x01, 0x22, 0x20, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, 0x7F, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0xC3, 0xF3, +0x0C, 0x6C, 0xFF, 0x6D, 0x09, 0x6E, 0x40, 0xEA, +0x08, 0x93, 0x06, 0x73, 0x0A, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, +0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x08, 0x6E, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, +0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF3, +0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF2, 0x00, 0x4A, 0xE0, 0x9A, 0x30, 0xF0, +0x21, 0x68, 0x00, 0x69, 0x32, 0xF4, 0x18, 0x48, +0x0E, 0xD4, 0x0F, 0xD5, 0x90, 0x67, 0xB1, 0x67, +0xEF, 0x6E, 0x04, 0xD1, 0x80, 0x18, 0x12, 0x59, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0x00, 0x4B, +0xE0, 0x9B, 0x90, 0x67, 0x01, 0x6D, 0xEF, 0x6E, +0x04, 0xD1, 0x80, 0x18, 0x12, 0x59, 0x0E, 0x90, +0x0F, 0x91, 0x00, 0x6A, 0x07, 0xD2, 0x30, 0xF0, +0x21, 0x6B, 0x32, 0xF4, 0x18, 0x4B, 0x06, 0xD3, +0x40, 0x99, 0xC0, 0x98, 0x83, 0x67, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0x00, 0x4A, +0xE0, 0x9A, 0x00, 0x6D, 0x80, 0x18, 0x12, 0x59, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0x00, 0x4B, +0xC0, 0x98, 0x41, 0x99, 0xE0, 0x9B, 0x06, 0x94, +0x01, 0x6D, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x07, 0x92, 0x04, 0x48, 0x08, 0x49, 0x01, 0x4A, +0x07, 0xD2, 0x07, 0x93, 0xFF, 0x6A, 0x4C, 0xEB, +0x03, 0x73, 0x58, 0x67, 0x07, 0xD3, 0x08, 0xD2, +0xD6, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, +0x18, 0x9A, 0x06, 0x94, 0x78, 0x67, 0xF0, 0x67, +0x00, 0x6D, 0xDE, 0x6E, 0x04, 0xD3, 0x80, 0x18, +0x12, 0x59, 0x08, 0x92, 0x06, 0x94, 0xF0, 0x67, +0x01, 0x6D, 0xDE, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x9A, 0xA3, 0xF3, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF2, 0x20, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF1, 0x18, 0x4A, 0x40, 0x9A, 0x30, 0xF0, +0x21, 0x68, 0x32, 0xF4, 0x18, 0x48, 0x90, 0x67, +0xF1, 0x67, 0x00, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x04, 0x6B, 0x90, 0x67, +0x00, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x90, 0x67, 0xF1, 0x67, +0x03, 0x6A, 0x00, 0x6D, 0x3E, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF4, 0x58, 0x9A, 0x90, 0x67, 0xF1, 0x67, +0x00, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x00, 0x6B, 0xA3, 0x67, 0x90, 0x67, +0xF1, 0x67, 0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, +0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, +0x18, 0x4A, 0x40, 0x9A, 0x90, 0x67, 0xF1, 0x67, +0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x04, 0x6B, 0x90, 0x67, 0x01, 0x6D, +0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD3, 0x80, 0x18, +0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF4, +0x5C, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, +0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x90, 0x67, 0xF1, 0x67, 0x00, 0x6A, 0x01, 0x6D, +0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0x18, 0x4B, +0x60, 0x9B, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, +0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x12, 0x59, +0x90, 0x67, 0x06, 0x6A, 0x00, 0x6D, 0x33, 0x6E, +0x0F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x03, 0x6B, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, +0x3E, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x12, 0x59, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF4, 0x40, 0x9A, +0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, 0x3F, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x00, 0x6A, +0x90, 0x67, 0xF1, 0x67, 0xA2, 0x67, 0xEF, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF1, 0x18, 0x4B, 0x60, 0x9B, +0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, 0xEF, 0x6E, +0x04, 0xD3, 0x80, 0x18, 0x12, 0x59, 0x90, 0x67, +0x06, 0x6A, 0x01, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF4, 0x44, 0x9A, 0x90, 0x67, +0xF1, 0x67, 0x01, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x00, 0x6B, 0x90, 0x67, +0xF1, 0x67, 0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF1, 0x18, 0x4A, 0x40, 0x9A, 0x90, 0x67, +0xF1, 0x67, 0x00, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x07, 0x6B, 0x90, 0x67, +0x00, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x90, 0x67, 0xF1, 0x67, +0x03, 0x6A, 0x00, 0x6D, 0x3E, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF4, 0x48, 0x9A, 0x90, 0x67, 0xF1, 0x67, +0x00, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x00, 0x6B, 0xA3, 0x67, 0x90, 0x67, +0xF1, 0x67, 0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, +0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, +0x18, 0x4A, 0x40, 0x9A, 0x90, 0x67, 0xF1, 0x67, +0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x07, 0x6B, 0x90, 0x67, 0x01, 0x6D, +0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD3, 0x80, 0x18, +0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF4, +0x4C, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, +0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x90, 0x67, 0xF1, 0x67, 0x00, 0x6A, 0x01, 0x6D, +0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x00, 0x6B, 0xA3, 0x67, 0x90, 0x67, 0xF1, 0x67, +0x19, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x12, 0x59, +0x90, 0x67, 0xF1, 0x67, 0x00, 0x6A, 0x01, 0x6D, +0x19, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, +0x4C, 0xED, 0x06, 0xD4, 0x07, 0xD5, 0x01, 0x68, +0x00, 0x69, 0x85, 0xF5, 0x1C, 0x6C, 0xFF, 0x6D, +0x80, 0x18, 0x09, 0x28, 0x55, 0x72, 0x11, 0x61, +0x07, 0x92, 0x03, 0x2A, 0x00, 0x68, 0x50, 0x67, +0x17, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, +0xAC, 0x9A, 0x03, 0xF3, 0x08, 0x6C, 0xFF, 0x68, +0x80, 0x18, 0x09, 0x28, 0x4C, 0xE8, 0x00, 0x6A, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x64, 0x6C, 0x01, 0x49, 0x40, 0xEA, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE9, 0x01, 0x6A, +0xA1, 0xF3, 0x18, 0x59, 0x02, 0x61, 0x01, 0x68, +0x01, 0x10, 0xD7, 0x2A, 0x06, 0x95, 0x30, 0xF0, +0x21, 0x69, 0x32, 0xF4, 0x18, 0x49, 0x91, 0x67, +0x00, 0x6A, 0x8F, 0x6E, 0x08, 0xF0, 0x00, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x01, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0x95, +0x63, 0xF4, 0xF0, 0x9A, 0x91, 0x67, 0x00, 0x6E, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x30, 0xF0, +0x20, 0x69, 0x40, 0xEA, 0x06, 0x92, 0x01, 0x6D, +0x08, 0x6B, 0x44, 0x36, 0xC0, 0xF3, 0x44, 0x99, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x6D, 0xEE, +0x40, 0xEA, 0x0A, 0x28, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, 0x00, 0x6C, +0xE3, 0xF2, 0xA0, 0x9B, 0x02, 0x6E, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, +0xE3, 0xF2, 0xA0, 0x9B, 0x23, 0xF3, 0x00, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF3, 0x10, 0x6C, +0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x00, 0x6A, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x00, 0x68, 0x05, 0xD5, +0x04, 0xD4, 0x05, 0x92, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF2, 0x00, 0x4B, 0xE0, 0x9B, 0xC0, 0x9A, +0x30, 0xF0, 0x21, 0x69, 0x32, 0xF4, 0x18, 0x49, +0x91, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x9F, 0x58, +0x04, 0x93, 0x91, 0x67, 0x01, 0x6D, 0x40, 0xDB, +0x05, 0x92, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, +0x00, 0x4B, 0xE0, 0x9B, 0xC0, 0x9A, 0x01, 0x48, +0x80, 0x18, 0x9F, 0x58, 0x04, 0x93, 0x41, 0xDB, +0xFF, 0x6A, 0x4C, 0xE8, 0x05, 0x92, 0x08, 0x4B, +0x03, 0x70, 0x04, 0x4A, 0x05, 0xD2, 0x04, 0xD3, +0xD8, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x04, 0x67, +0x30, 0xF0, 0x20, 0x6A, 0x2C, 0xE8, 0xC0, 0xF3, +0x44, 0x9A, 0x08, 0x6B, 0x04, 0x36, 0x01, 0x6D, +0x6D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, +0xE0, 0x9A, 0x30, 0xF0, 0x21, 0x6C, 0x32, 0xF4, +0x18, 0x4C, 0xB0, 0x67, 0x58, 0x6E, 0x80, 0x18, +0x9F, 0x58, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, +0x70, 0x9B, 0x4C, 0xEB, 0x62, 0x33, 0x7A, 0x33, +0x2C, 0xEB, 0x0B, 0x23, 0x3F, 0x73, 0x09, 0x60, +0x07, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, 0x62, 0x32, +0x2C, 0xEA, 0x03, 0x22, 0x3F, 0x72, 0x00, 0x6A, +0x56, 0x61, 0x30, 0xF0, 0x21, 0x69, 0x32, 0xF4, +0x18, 0x49, 0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x57, 0x6E, 0x01, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0xEF, 0x6E, 0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x30, 0xF0, 0x21, 0x6A, 0x74, 0xF6, +0x40, 0xA2, 0x01, 0x22, 0x20, 0x6A, 0x91, 0x67, +0x30, 0xF0, 0x21, 0x69, 0x32, 0xF4, 0x18, 0x49, +0xB0, 0x67, 0x33, 0x6E, 0x7F, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x20, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x08, 0x6E, 0x07, 0xF7, 0x00, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF4, 0xF0, 0x9A, 0x20, 0x6B, +0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF2, 0x00, 0x4A, 0xE0, 0x9A, 0x91, 0x67, +0xB0, 0x67, 0x08, 0x6E, 0x80, 0x18, 0x9F, 0x58, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0x00, 0x4B, +0xE0, 0x9B, 0x91, 0x67, 0xB0, 0x67, 0x58, 0x6E, +0x80, 0x18, 0x9F, 0x58, 0x00, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0xEF, 0x6E, 0x10, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x01, 0x6A, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x68, 0x0C, 0xEC, 0x01, 0x74, 0xAC, 0xE8, +0x80, 0xF0, 0x0B, 0x60, 0x07, 0x24, 0x02, 0x74, +0x80, 0xF0, 0x1D, 0x60, 0x03, 0x74, 0x80, 0xF0, +0x1E, 0x60, 0xA2, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x6A, 0xF1, 0x78, 0x9A, +0x30, 0xF0, 0x21, 0x6C, 0x30, 0xF0, 0x21, 0x6D, +0x6A, 0xF1, 0x7C, 0xDA, 0x00, 0x6E, 0x30, 0xF0, +0x21, 0x6B, 0x30, 0xF0, 0x21, 0x6A, 0xF5, 0xF1, +0x18, 0x4C, 0xF5, 0xF1, 0x10, 0x4B, 0xF5, 0xF1, +0x0C, 0x4A, 0xD4, 0xF7, 0x1A, 0x4D, 0x04, 0xD6, +0xC0, 0x9C, 0x04, 0x97, 0x00, 0x69, 0xC2, 0xDC, +0xC0, 0xAB, 0xA5, 0xF0, 0x18, 0x4F, 0xE4, 0x37, +0xC2, 0xCB, 0xC0, 0xA2, 0x06, 0xD5, 0x05, 0xD1, +0xC2, 0xC2, 0x30, 0xF0, 0x20, 0x6E, 0x6B, 0xF0, +0x08, 0x4E, 0xFD, 0xE6, 0xC0, 0xA7, 0x22, 0x68, +0x04, 0x91, 0xC4, 0xC7, 0x05, 0x96, 0x18, 0xEE, +0x44, 0x6E, 0x12, 0xE8, 0xD8, 0xE9, 0x30, 0xF0, +0x20, 0x69, 0x6B, 0xF0, 0x08, 0x49, 0x12, 0xEE, +0xC1, 0xE0, 0xD0, 0x67, 0x49, 0xF7, 0x10, 0x4E, +0x6A, 0xF0, 0x00, 0x48, 0xD9, 0xE1, 0x01, 0xE1, +0x20, 0xAE, 0x80, 0xF0, 0x28, 0xCE, 0x20, 0xA8, +0x02, 0x4E, 0x80, 0xF0, 0x28, 0xC8, 0x06, 0x91, +0x02, 0x48, 0x2A, 0xEE, 0xF5, 0x61, 0x05, 0x96, +0x22, 0x49, 0x01, 0x4F, 0x01, 0x4E, 0x02, 0x76, +0x05, 0xD6, 0x06, 0xD1, 0xD7, 0x61, 0x04, 0x91, +0x04, 0x4C, 0x02, 0x4B, 0x01, 0x49, 0x02, 0x71, +0x04, 0xD1, 0x01, 0x4A, 0x44, 0x4D, 0xBC, 0x61, +0x30, 0xF0, 0x21, 0x6B, 0xF5, 0xF1, 0x0C, 0x4B, +0x44, 0x43, 0xA7, 0x43, 0x16, 0x4D, 0xC2, 0x67, +0x00, 0x6C, 0x80, 0xC3, 0x01, 0x4B, 0x00, 0x6C, +0xCA, 0xEB, 0x80, 0xCA, 0xFF, 0xF7, 0x88, 0xC2, +0x20, 0xF0, 0x85, 0xC2, 0xFF, 0xF7, 0x89, 0xC2, +0x20, 0xF0, 0x86, 0xC2, 0x80, 0xC5, 0x81, 0xC5, +0x82, 0xC5, 0x02, 0x4A, 0x03, 0x4D, 0xEC, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x8A, 0xF1, 0x60, 0x9A, 0x6A, 0xF1, 0x78, 0xDA, +0x1F, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, +0xE0, 0x9A, 0x30, 0xF0, 0x21, 0x6C, 0xB0, 0x67, +0x32, 0xF4, 0x18, 0x4C, 0x58, 0x6E, 0x80, 0x18, +0x9F, 0x58, 0x62, 0xF4, 0x04, 0x48, 0x30, 0xF0, +0x20, 0x6B, 0x08, 0x30, 0x6B, 0xF0, 0x08, 0x4B, +0x6D, 0xE0, 0x40, 0xDB, 0x09, 0x10, 0x00, 0x6C, +0xB0, 0x67, 0xC4, 0x67, 0x03, 0x10, 0x01, 0x6C, +0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, 0x03, 0x0D, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x04, 0x67, +0x4C, 0xE8, 0xAC, 0xEA, 0x0E, 0x22, 0x08, 0x6A, +0x04, 0x31, 0x4D, 0xE9, 0x01, 0x6B, 0x44, 0x40, +0x64, 0xEA, 0x30, 0xF0, 0x21, 0x6A, 0x32, 0xF4, +0x18, 0x4A, 0x06, 0xD2, 0x6D, 0xE9, 0x06, 0x6A, +0x0D, 0x10, 0x08, 0x6A, 0x04, 0x31, 0x4D, 0xE9, +0x01, 0x6B, 0x44, 0x40, 0x64, 0xEA, 0x30, 0xF0, +0x21, 0x6A, 0x32, 0xF4, 0x18, 0x4A, 0x06, 0xD2, +0x6D, 0xE9, 0x04, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x06, 0x94, 0x63, 0xF4, 0xF0, 0x9A, +0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, 0x12, 0x59, +0x06, 0x94, 0x08, 0xF0, 0x00, 0x6F, 0x01, 0x6B, +0x8F, 0x6E, 0xB0, 0x67, 0x04, 0xD3, 0x80, 0x18, +0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x01, 0x6C, +0x80, 0x18, 0xDD, 0x0C, 0x90, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x45, 0x0C, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, 0xD1, 0x67, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x01, 0x6D, 0xC1, 0x41, 0xAB, 0xED, 0x03, 0xF3, +0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x21, 0x6C, 0xEF, 0x6E, 0x10, 0x6F, +0x00, 0x6A, 0x32, 0xF4, 0x18, 0x4C, 0xB0, 0x67, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x01, 0x6D, +0x90, 0x67, 0x80, 0x18, 0x45, 0x0C, 0x00, 0x6C, +0x80, 0x18, 0xDD, 0x0C, 0x90, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x65, 0x10, 0x22, 0x67, 0x04, 0x2A, +0x01, 0x6C, 0xB0, 0x67, 0x80, 0x18, 0x08, 0x11, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x41, 0xE0, 0x09, 0xF6, 0x29, 0xC0, 0x51, 0x67, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x04, 0x67, +0x4C, 0xED, 0x4C, 0xE8, 0x30, 0xF0, 0x21, 0x6A, +0x74, 0xF6, 0x41, 0xA2, 0x06, 0x6B, 0x08, 0xD5, +0x4E, 0xEB, 0x01, 0x5B, 0x98, 0x67, 0x07, 0xD4, +0x16, 0x2D, 0x04, 0x24, 0xFF, 0x6A, 0x04, 0x33, +0x01, 0x4A, 0x03, 0x10, 0x04, 0x4A, 0x04, 0x33, +0x40, 0x32, 0x4D, 0xEB, 0x84, 0x40, 0x01, 0x6A, +0x44, 0xEC, 0x4D, 0xEB, 0x30, 0xF0, 0x21, 0x6A, +0x32, 0xF4, 0x18, 0x4A, 0x08, 0x69, 0x06, 0xD2, +0x6D, 0xE9, 0x04, 0x6A, 0x19, 0x10, 0x08, 0x93, +0x01, 0x73, 0x22, 0x61, 0x07, 0x94, 0x04, 0x24, +0xFF, 0x6A, 0x04, 0x33, 0x01, 0x4A, 0x03, 0x10, +0x07, 0x4A, 0x04, 0x33, 0x40, 0x32, 0x4D, 0xEB, +0x84, 0x40, 0x01, 0x6A, 0x44, 0xEC, 0x4D, 0xEB, +0x30, 0xF0, 0x21, 0x6A, 0x32, 0xF4, 0x18, 0x4A, +0x08, 0x69, 0x06, 0xD2, 0x6D, 0xE9, 0x06, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0x94, +0x63, 0xF4, 0xF0, 0x9A, 0xB0, 0x67, 0x00, 0x6E, +0x80, 0x18, 0x12, 0x59, 0x01, 0x6A, 0x25, 0x10, +0x08, 0x93, 0x00, 0x69, 0x02, 0x73, 0x2F, 0x61, +0x07, 0x94, 0x04, 0x24, 0xFF, 0x6A, 0x04, 0x33, +0x01, 0x4A, 0x03, 0x10, 0x0A, 0x4A, 0x04, 0x33, +0x40, 0x32, 0x4D, 0xEB, 0x84, 0x40, 0x01, 0x6A, +0x44, 0xEC, 0x4D, 0xEB, 0x30, 0xF0, 0x21, 0x6A, +0x32, 0xF4, 0x18, 0x4A, 0x06, 0xD2, 0x07, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0x94, +0x63, 0xF4, 0xF0, 0x9A, 0x08, 0x69, 0xB0, 0x67, +0x00, 0x6E, 0x6D, 0xE9, 0x80, 0x18, 0x12, 0x59, +0x00, 0x6A, 0x06, 0x94, 0xB0, 0x67, 0x8F, 0x6E, +0x08, 0xF0, 0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x01, 0x6C, +0x80, 0x18, 0xDD, 0x0C, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0xD1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF3, 0x44, 0x9C, +0x01, 0x6D, 0xC1, 0x41, 0xAB, 0xED, 0x03, 0xF3, +0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, 0x40, 0xEA, +0x01, 0x6D, 0x90, 0x67, 0x80, 0x18, 0x65, 0x10, +0x00, 0x6C, 0x06, 0xD2, 0x80, 0x18, 0xDD, 0x0C, +0x04, 0x32, 0x09, 0xD2, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x09, 0x93, 0x01, 0x6D, +0x08, 0x6E, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x6D, 0xEE, 0x40, 0xEA, 0x08, 0x94, 0x1C, 0x2C, +0x7D, 0x67, 0x87, 0x43, 0x11, 0x4C, 0x60, 0xA4, +0x30, 0xF0, 0x20, 0x69, 0xB5, 0xF0, 0x48, 0x40, +0x06, 0x94, 0x44, 0x32, 0x6B, 0xF0, 0x08, 0x49, +0x29, 0xE2, 0x60, 0xC2, 0x48, 0x2C, 0x07, 0x92, +0x09, 0x22, 0x01, 0x6D, 0x23, 0xF3, 0x18, 0x4C, +0xAB, 0xED, 0x80, 0x18, 0x09, 0x28, 0x62, 0xF4, +0x10, 0x48, 0x35, 0x10, 0x02, 0x6C, 0x38, 0x10, +0x08, 0x93, 0x02, 0x73, 0x38, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF2, 0xE0, 0x9A, 0x30, 0xF0, +0x21, 0x6C, 0x30, 0xF0, 0x20, 0x69, 0x6B, 0xF0, +0x08, 0x49, 0x32, 0xF4, 0x18, 0x4C, 0xB0, 0x67, +0x00, 0x6E, 0x80, 0x18, 0x9F, 0x58, 0xE9, 0xF5, +0x9E, 0xA1, 0xFF, 0x6B, 0x56, 0x32, 0x6C, 0xEA, +0x80, 0x34, 0xC5, 0xF0, 0x64, 0x40, 0x8D, 0xEA, +0x64, 0x33, 0x09, 0x94, 0x2D, 0xE3, 0x40, 0xCB, +0x7D, 0x67, 0x29, 0xE4, 0x87, 0x43, 0x11, 0x4C, +0x60, 0xA4, 0x06, 0x94, 0x6A, 0xF1, 0x71, 0xC2, +0x12, 0x2C, 0x07, 0x92, 0x0C, 0x22, 0x01, 0x6D, +0x23, 0xF3, 0x1C, 0x4C, 0xAB, 0xED, 0x80, 0x18, +0x09, 0x28, 0x62, 0xF4, 0x12, 0x48, 0x08, 0x30, +0x25, 0xE0, 0x40, 0xD9, 0x04, 0x10, 0x03, 0x6C, +0xB0, 0x67, 0x80, 0x18, 0x08, 0x11, 0x06, 0x92, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF7, 0x63, 0x11, 0x62, +0x10, 0xD1, 0x0F, 0xD0, 0xFF, 0x6A, 0x04, 0x67, +0x4C, 0xE8, 0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xE9, 0xF5, 0x79, 0xA2, +0x30, 0xF0, 0x21, 0x6C, 0x35, 0xF2, 0x08, 0x4C, +0x0D, 0xD3, 0x31, 0xF2, 0x62, 0x40, 0x6C, 0x33, +0x6D, 0xE2, 0x0C, 0xD5, 0x0A, 0xD3, 0x08, 0xD4, +0x00, 0x69, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF2, 0x00, 0x4B, 0xE0, 0x9B, 0xFF, 0x6A, +0x30, 0xF0, 0x21, 0x68, 0x32, 0xF4, 0x18, 0x48, +0x2C, 0xEA, 0x90, 0x67, 0xA2, 0x67, 0xDF, 0x6E, +0x06, 0xD2, 0x80, 0x18, 0x9F, 0x58, 0x10, 0x6B, +0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, +0x00, 0x4A, 0x06, 0x95, 0xE0, 0x9A, 0x90, 0x67, +0xDF, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x12, 0x59, +0x0A, 0x93, 0x06, 0x95, 0x90, 0x67, 0x40, 0x9B, +0x58, 0x6E, 0x30, 0xF0, 0x20, 0x68, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0x00, 0x4A, +0xE0, 0x9A, 0x80, 0x18, 0x12, 0x59, 0xC0, 0xF3, +0x44, 0x98, 0x08, 0x6B, 0x24, 0x36, 0x01, 0x6D, +0x6D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, +0x0C, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x0D, 0x93, 0x06, 0x73, 0x1C, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF2, 0xAC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x08, 0x93, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xC0, 0x9B, 0x23, 0xF3, 0x18, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x08, 0x93, 0x01, 0x6D, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x1C, 0x6C, +0xAB, 0xED, 0xC2, 0x9B, 0x21, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF2, 0xAC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, +0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, +0x14, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, +0x01, 0x6D, 0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x0C, 0x94, 0x06, 0x24, 0x00, 0x6A, +0x01, 0x74, 0x06, 0xD2, 0xC0, 0xF0, 0x05, 0x61, +0x62, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0xE3, 0xF2, +0xB0, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x03, 0x6E, +0x40, 0xEA, 0x44, 0x6B, 0x78, 0xE9, 0x09, 0x94, +0x88, 0x6A, 0x00, 0x68, 0x12, 0xEB, 0x58, 0xEC, +0x12, 0xEA, 0x49, 0xE3, 0x30, 0xF0, 0x20, 0x6B, +0x49, 0xF7, 0x10, 0x4A, 0x6B, 0xF0, 0x08, 0x4B, +0x4D, 0xE3, 0x06, 0xD3, 0x06, 0x92, 0x01, 0x6D, +0xC3, 0xF3, 0x18, 0x6C, 0xC0, 0xAA, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF3, 0x54, 0x9A, 0xC0, 0x36, +0xAB, 0xED, 0x4D, 0xEE, 0x08, 0x32, 0x4D, 0xEE, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x02, 0x4E, 0x01, 0x48, 0x40, 0xEA, 0x06, 0x93, +0x11, 0x70, 0x02, 0x4B, 0x06, 0xD3, 0xE6, 0x61, +0x44, 0x6B, 0x78, 0xE9, 0x09, 0x94, 0x88, 0x6A, +0x00, 0x68, 0x12, 0xEB, 0x58, 0xEC, 0x12, 0xEA, +0x49, 0xE3, 0x30, 0xF0, 0x20, 0x6B, 0x6A, 0xF0, +0x00, 0x4A, 0x6B, 0xF0, 0x08, 0x4B, 0x4D, 0xE3, +0x06, 0xD3, 0x06, 0x92, 0x08, 0x33, 0x01, 0x6D, +0xC0, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, +0x54, 0x9A, 0xC0, 0x36, 0xC3, 0xF3, 0x18, 0x6C, +0x4D, 0xEE, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x6D, 0xEE, 0xAB, 0xED, 0x40, 0xEA, +0x06, 0x93, 0x01, 0x48, 0x11, 0x70, 0x02, 0x4B, +0x06, 0xD3, 0xE7, 0x61, 0xE7, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0xE3, 0xF2, 0xB0, 0x9B, 0x23, 0xF3, +0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x44, 0x6B, +0x78, 0xE9, 0x09, 0x94, 0x88, 0x6A, 0x00, 0x68, +0x12, 0xEB, 0x58, 0xEC, 0x12, 0xEA, 0x49, 0xE3, +0x30, 0xF0, 0x20, 0x6B, 0x69, 0xF7, 0x12, 0x4A, +0x6B, 0xF0, 0x08, 0x4B, 0x4D, 0xE3, 0x06, 0xD3, +0x06, 0x92, 0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, +0xC0, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, +0x58, 0x9A, 0xC0, 0x36, 0xAB, 0xED, 0x4D, 0xEE, +0x08, 0x32, 0x4D, 0xEE, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x02, 0x4E, 0x01, 0x48, +0x40, 0xEA, 0x06, 0x93, 0x11, 0x70, 0x02, 0x4B, +0x06, 0xD3, 0xE6, 0x61, 0x44, 0x6B, 0x78, 0xE9, +0x09, 0x94, 0x88, 0x6A, 0x00, 0x68, 0x12, 0xEB, +0x58, 0xEC, 0x12, 0xEA, 0x49, 0xE3, 0x30, 0xF0, +0x20, 0x6B, 0x8A, 0xF0, 0x02, 0x4A, 0x6B, 0xF0, +0x08, 0x4B, 0x4D, 0xE3, 0x06, 0xD3, 0x06, 0x92, +0x08, 0x33, 0x01, 0x6D, 0xC0, 0xAA, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF3, 0x58, 0x9A, 0xC0, 0x36, +0xC3, 0xF3, 0x18, 0x6C, 0x4D, 0xEE, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x6D, 0xEE, +0xAB, 0xED, 0x40, 0xEA, 0x06, 0x93, 0x01, 0x48, +0x11, 0x70, 0x02, 0x4B, 0x06, 0xD3, 0xE7, 0x61, +0x85, 0x10, 0x06, 0x94, 0xFF, 0x6A, 0x8C, 0xEA, +0x11, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0xE3, 0xF2, +0xB0, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x03, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, +0x54, 0x9A, 0x10, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0xE3, 0xF2, 0xB0, 0x9B, 0x23, 0xF3, 0x00, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF3, 0x58, 0x9A, 0x0B, 0xD2, 0x06, 0x92, +0x22, 0x6B, 0x09, 0x94, 0x78, 0xEA, 0x44, 0x6A, +0x00, 0x68, 0x12, 0xEB, 0x58, 0xE9, 0x12, 0xEA, +0x49, 0xE3, 0x88, 0x6B, 0x78, 0xEC, 0x12, 0xEB, +0x69, 0xE2, 0x30, 0xF0, 0x20, 0x6B, 0x49, 0xF7, +0x10, 0x4A, 0x6B, 0xF0, 0x08, 0x4B, 0x4D, 0xE3, +0x07, 0xD3, 0x07, 0x92, 0x0B, 0x93, 0x01, 0x6D, +0xC0, 0xAA, 0x08, 0x32, 0xC3, 0xF3, 0x18, 0x6C, +0xC0, 0x36, 0x6D, 0xEE, 0x4D, 0xEE, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0xAB, 0xED, +0x02, 0x4E, 0x40, 0xEA, 0x07, 0x94, 0x01, 0x48, +0x11, 0x70, 0x02, 0x4C, 0x07, 0xD4, 0xE9, 0x61, +0x06, 0x92, 0x22, 0x6B, 0x09, 0x94, 0x78, 0xEA, +0x44, 0x6A, 0x00, 0x68, 0x12, 0xEB, 0x58, 0xE9, +0x12, 0xEA, 0x49, 0xE3, 0x88, 0x6B, 0x78, 0xEC, +0x12, 0xEB, 0x69, 0xE2, 0x30, 0xF0, 0x20, 0x6B, +0x6A, 0xF0, 0x00, 0x4A, 0x6B, 0xF0, 0x08, 0x4B, +0x4D, 0xE3, 0x07, 0xD3, 0x07, 0x92, 0x0B, 0x93, +0x01, 0x6D, 0xC0, 0xAA, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0xC0, 0x36, 0x6D, 0xEE, +0x08, 0x33, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x6D, 0xEE, 0x40, 0xEA, 0x07, 0x94, 0x01, 0x48, +0x11, 0x70, 0x02, 0x4C, 0x07, 0xD4, 0xEA, 0x61, +0x06, 0x92, 0x01, 0x4A, 0x02, 0x72, 0x06, 0xD2, +0x7F, 0xF7, 0x1B, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0xC3, 0xF2, 0xC8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF2, 0xB0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x00, 0x6B, 0x06, 0xD3, 0x06, 0x93, +0x06, 0x92, 0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6C, +0x8C, 0xEA, 0x64, 0x36, 0xC0, 0xF3, 0x64, 0x98, +0x07, 0xD2, 0x01, 0x6D, 0x08, 0x6A, 0x4D, 0xEE, +0x03, 0xF2, 0x01, 0x4C, 0xAB, 0xED, 0x40, 0xEB, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0xAC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, +0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, +0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, +0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x03, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x07, 0x95, +0x63, 0xF4, 0xF0, 0x9A, 0x30, 0xF0, 0x21, 0x6C, +0x32, 0xF4, 0x18, 0x4C, 0x00, 0x6E, 0x80, 0x18, +0x12, 0x59, 0x06, 0x94, 0x01, 0x4C, 0x02, 0x74, +0x06, 0xD4, 0xA9, 0x61, 0x0A, 0x92, 0x08, 0x93, +0x01, 0x49, 0x04, 0x4A, 0x04, 0x4B, 0x02, 0x71, +0x0A, 0xD2, 0x08, 0xD3, 0xBF, 0xF5, 0x16, 0x61, +0x11, 0x97, 0x10, 0x91, 0x0F, 0x90, 0x09, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, 0x00, 0x6B, +0x8C, 0xEA, 0xAA, 0xF1, 0x7C, 0xC0, 0x2A, 0x2A, +0xE9, 0xF5, 0x5A, 0xA0, 0x27, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF2, 0xE0, 0x9A, 0x30, 0xF0, +0x21, 0x6C, 0x32, 0xF4, 0x18, 0x4C, 0x00, 0x6D, +0x18, 0x6E, 0x80, 0x18, 0x9F, 0x58, 0x6A, 0xF1, +0x78, 0x98, 0x8A, 0xF1, 0x40, 0xD8, 0x00, 0x69, +0x4E, 0xEB, 0x05, 0x23, 0x6A, 0xF1, 0x7C, 0x98, +0x6E, 0xEA, 0x10, 0x2A, 0x01, 0x69, 0x02, 0x6D, +0x91, 0x67, 0x80, 0x18, 0x33, 0x12, 0x91, 0x67, +0x80, 0x18, 0xE4, 0x08, 0x01, 0x6C, 0x80, 0x18, +0x15, 0x09, 0x01, 0x6B, 0x30, 0xF0, 0x21, 0x6A, +0x35, 0xF2, 0x64, 0xC2, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x08, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x69, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x49, 0x03, 0xF1, 0x18, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xAA, 0xF1, +0xDC, 0xA1, 0xE3, 0xF3, 0x10, 0x6C, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x0A, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0x18, 0x4B, +0xC0, 0xF3, 0x44, 0x98, 0xAA, 0xF1, 0xDC, 0xA1, +0xA0, 0x9B, 0xE3, 0xF3, 0x10, 0x6C, 0x40, 0xEA, +0xAA, 0xF1, 0x5C, 0xA1, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0xB4, 0x9A, +0x63, 0xF6, 0x1C, 0x6C, 0x80, 0x18, 0x09, 0x28, +0x06, 0x22, 0x01, 0x6B, 0x30, 0xF0, 0x21, 0x6A, +0x15, 0xF2, 0x68, 0xC2, 0x04, 0x10, 0x30, 0xF0, +0x21, 0x6B, 0x15, 0xF2, 0x48, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF2, 0x00, 0x4A, 0xE0, 0x9A, +0x30, 0xF0, 0x21, 0x68, 0x32, 0xF4, 0x18, 0x48, +0x90, 0x67, 0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, +0x9F, 0x58, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, +0x00, 0x4B, 0xE0, 0x9B, 0x90, 0x67, 0x00, 0x6D, +0x18, 0x6E, 0x22, 0x67, 0x80, 0x18, 0x9F, 0x58, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0x8A, 0xF1, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF1, 0x58, 0x9A, 0x09, 0xF6, 0x27, 0xC3, +0x2C, 0xEA, 0x42, 0x32, 0x42, 0x32, 0x09, 0xF6, +0x46, 0xC3, 0x06, 0xF0, 0x00, 0x6A, 0x2C, 0xEA, +0x42, 0x32, 0x52, 0x32, 0x09, 0xF6, 0x48, 0xC3, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, 0x80, 0x18, +0xA0, 0x13, 0x00, 0x6C, 0x80, 0x18, 0x15, 0x09, +0x03, 0x28, 0x00, 0x6C, 0xA4, 0x67, 0x07, 0x10, +0x01, 0x70, 0x03, 0x61, 0x00, 0x6C, 0x01, 0x6D, +0x02, 0x10, 0x00, 0x6C, 0x02, 0x6D, 0x80, 0x18, +0x33, 0x12, 0x01, 0x6C, 0x80, 0x18, 0x15, 0x09, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x24, 0x67, 0x4C, 0xE9, 0xAC, 0xEA, +0x01, 0x72, 0x43, 0x61, 0x44, 0x41, 0x01, 0x6B, +0x64, 0xEA, 0x00, 0xF2, 0x08, 0x6A, 0x4D, 0xEB, +0x04, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF4, 0xF0, 0x9A, 0x30, 0xF0, 0x21, 0x68, +0x32, 0xF4, 0x18, 0x48, 0x90, 0x67, 0xB1, 0x67, +0x00, 0x6E, 0x06, 0xD3, 0x80, 0x18, 0x12, 0x59, +0x01, 0x6C, 0x08, 0xF0, 0x00, 0x6F, 0xB1, 0x67, +0x04, 0xD4, 0x8F, 0x6E, 0x90, 0x67, 0x80, 0x18, +0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x0A, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x06, 0x96, +0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x06, 0x96, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xAB, 0xED, 0x01, 0x4E, 0x03, 0xF3, +0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, 0x40, 0xEA, +0x91, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x65, 0x10, +0xF0, 0x10, 0x02, 0x72, 0x01, 0x6A, 0xE0, 0xF0, +0x0C, 0x61, 0x30, 0xF0, 0x21, 0x6A, 0x74, 0xF6, +0x46, 0xA2, 0x00, 0x68, 0x09, 0x72, 0x0C, 0x60, +0x12, 0x72, 0x01, 0x68, 0x09, 0x60, 0x1B, 0x72, +0x02, 0x68, 0x06, 0x60, 0x24, 0x68, 0x4E, 0xE8, +0x01, 0x58, 0x18, 0x67, 0x04, 0x6A, 0x03, 0xE2, +0x24, 0x32, 0x08, 0xD2, 0x08, 0x93, 0x08, 0x6A, +0x30, 0xF0, 0x20, 0x6C, 0x4D, 0xEB, 0xC0, 0xF3, +0x44, 0x9C, 0x01, 0x6D, 0xC3, 0x67, 0x08, 0xD3, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9B, 0x06, 0x93, 0x01, 0x6D, 0xAB, 0xED, +0xE9, 0xF5, 0xDE, 0xA3, 0xC3, 0xF3, 0x0C, 0x6C, +0x40, 0xEA, 0x44, 0x41, 0x01, 0x6C, 0x30, 0xF0, +0x20, 0x6B, 0x84, 0xEA, 0x00, 0xF3, 0x08, 0x6A, +0x4D, 0xEC, 0x80, 0xF3, 0x4C, 0x9B, 0x07, 0xD4, +0x0A, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0xC0, 0xF3, 0x44, 0x9C, 0x07, 0x96, 0x01, 0x6D, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x07, 0x96, 0xC0, 0xF3, +0x44, 0x9B, 0x01, 0x6D, 0xAB, 0xED, 0x01, 0x4E, +0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6C, 0x80, 0xF3, 0x4C, 0x9C, 0xC8, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, +0x00, 0x4B, 0xE0, 0x9B, 0x30, 0xF0, 0x21, 0x6A, +0x32, 0xF4, 0x18, 0x4A, 0x82, 0x67, 0xB1, 0x67, +0x00, 0x6E, 0x07, 0xD2, 0x80, 0x18, 0x9F, 0x58, +0x91, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x65, 0x10, +0x01, 0x72, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF3, 0x18, 0x4A, 0x41, 0xE0, 0x40, 0xA0, +0x06, 0x94, 0xE9, 0xF5, 0x5E, 0xC4, 0x70, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0x00, 0x4A, +0x07, 0x94, 0xE0, 0x9A, 0xB1, 0x67, 0x00, 0x6E, +0x80, 0x18, 0x9F, 0x58, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0x67, 0x08, 0x96, 0xC0, 0xF3, 0x44, 0x9B, +0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0xE3, 0xF7, 0x00, 0x6A, 0x2C, 0xEA, +0x06, 0x93, 0x56, 0x34, 0x96, 0x32, 0x09, 0xF6, +0x40, 0xDB, 0x1F, 0x6A, 0x8C, 0xEA, 0x02, 0x5A, +0xFF, 0x6B, 0x0B, 0x60, 0x03, 0x70, 0x03, 0x60, +0x01, 0x48, 0x6C, 0xE8, 0x4F, 0x10, 0x06, 0x94, +0x01, 0x6B, 0x03, 0x68, 0xAA, 0xF1, 0x75, 0xC4, +0x49, 0x10, 0x0A, 0x5A, 0x0B, 0x61, 0x04, 0x20, +0xFF, 0x48, 0x6C, 0xE8, 0x01, 0x6B, 0x0B, 0x10, +0x06, 0x94, 0x01, 0x6B, 0xAA, 0xF1, 0x75, 0xC4, +0x01, 0x6B, 0x09, 0x10, 0x06, 0x94, 0x00, 0x6B, +0xAA, 0xF1, 0x75, 0xC4, 0x00, 0x6B, 0x03, 0x20, +0x04, 0x58, 0x01, 0x61, 0x03, 0x68, 0x30, 0xF0, +0x20, 0x6C, 0x6B, 0xF0, 0x08, 0x4C, 0xAA, 0xF1, +0xB5, 0xA4, 0x01, 0x5D, 0xB8, 0x67, 0xAB, 0xED, +0xAC, 0xEB, 0x30, 0xF0, 0x20, 0x6D, 0xE2, 0xF3, +0x18, 0x4D, 0xA1, 0xE0, 0xA0, 0xA0, 0xE9, 0xF5, +0xBE, 0xC4, 0x0F, 0x2B, 0xE9, 0xF5, 0xDE, 0xA4, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x64, 0x9B, +0xC0, 0x36, 0x01, 0x6D, 0x4D, 0xEE, 0xE3, 0xF3, +0x08, 0x6C, 0xAB, 0xED, 0x40, 0xEB, 0x00, 0x6A, +0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x01, 0x6D, 0xE3, 0xF3, 0x08, 0x6C, +0xAB, 0xED, 0xFF, 0xF7, 0x1F, 0x6E, 0x40, 0xEA, +0x01, 0x6A, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0x01, 0x6B, 0xC8, 0x17, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x21, 0x6A, 0x74, 0xF6, 0x63, 0xA2, 0xFF, 0x68, +0x8C, 0xE8, 0x06, 0x5B, 0x01, 0x6A, 0x7C, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x68, 0x33, 0xC2, 0xF3, +0x08, 0x4A, 0x69, 0xE2, 0x40, 0x9A, 0x00, 0xEA, +0x90, 0x67, 0x80, 0x18, 0x10, 0x0E, 0x90, 0x67, +0x01, 0x6D, 0x80, 0x18, 0x65, 0x11, 0x62, 0x10, +0x90, 0x67, 0x80, 0x18, 0xBE, 0x0D, 0x90, 0x67, +0x01, 0x6D, 0x80, 0x18, 0xA9, 0x11, 0x52, 0x22, +0x03, 0x6C, 0x98, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0x12, 0xEC, 0x71, 0xE4, +0xAA, 0xF1, 0xA2, 0xA4, 0x02, 0x5D, 0x04, 0x60, +0x01, 0x4D, 0xAA, 0xF1, 0xA2, 0xC4, 0xEB, 0x17, +0x61, 0xE0, 0x01, 0x6C, 0x39, 0x10, 0x90, 0x67, +0x01, 0x6D, 0x80, 0x18, 0x55, 0x0D, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x00, 0x6B, +0xAA, 0xF1, 0x75, 0xC2, 0x90, 0x67, 0x02, 0x6D, +0x80, 0x18, 0xD6, 0x13, 0x2F, 0x22, 0x30, 0xF0, +0x20, 0x6B, 0x04, 0x34, 0x6B, 0xF0, 0x08, 0x4B, +0x6D, 0xE4, 0xAA, 0xF1, 0x8E, 0xA3, 0x0A, 0x5C, +0x25, 0x60, 0x01, 0x4C, 0xAA, 0xF1, 0x8E, 0xC3, +0xED, 0x17, 0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, +0x55, 0x0D, 0x90, 0x67, 0x02, 0x6D, 0x80, 0x18, +0xA9, 0x11, 0x18, 0x22, 0x03, 0x6C, 0x98, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0x12, 0xEC, 0x71, 0xE4, 0xAA, 0xF1, 0xA3, 0xA4, +0x02, 0x5D, 0x04, 0x60, 0x01, 0x4D, 0xAA, 0xF1, +0xA3, 0xC4, 0xEB, 0x17, 0x61, 0xE0, 0x02, 0x6C, +0x29, 0xF7, 0x94, 0xC0, 0x06, 0x6C, 0xE9, 0xF5, +0x9B, 0xC3, 0x12, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0xE9, 0xF5, 0x9B, 0xA3, +0x01, 0x4C, 0xF5, 0x17, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xE9, 0xF5, 0x7B, 0xA2, +0x01, 0x4B, 0xE9, 0xF5, 0x7B, 0xC2, 0x01, 0x6A, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xE9, 0xF5, 0x79, 0xA2, 0xE9, 0xF5, 0x5C, 0xA2, +0x08, 0xD3, 0x06, 0x5A, 0x76, 0x60, 0x30, 0xF0, +0x20, 0x6B, 0x48, 0x32, 0xE2, 0xF3, 0x00, 0x4B, +0x4D, 0xE3, 0x40, 0x9B, 0x00, 0xEA, 0x00, 0x6C, +0x80, 0x18, 0x78, 0x14, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xE9, 0xF5, 0x7B, 0xA2, +0x06, 0x73, 0xF5, 0x61, 0x2A, 0x10, 0x00, 0x6C, +0x80, 0x18, 0x00, 0x0F, 0x00, 0x6C, 0xA4, 0x67, +0x37, 0x10, 0x00, 0x6C, 0x80, 0x18, 0xC8, 0x0E, +0x00, 0x6C, 0xA4, 0x67, 0x80, 0x18, 0xA9, 0x11, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0x09, 0xF6, 0x84, 0xA3, 0x01, 0x4C, 0x09, 0xF6, +0x84, 0xC3, 0x42, 0x22, 0xAA, 0xF1, 0x41, 0xA3, +0x03, 0x5A, 0x3E, 0x60, 0x01, 0x4A, 0xAA, 0xF1, +0x41, 0xC3, 0x43, 0x10, 0x01, 0x6C, 0x80, 0x18, +0x78, 0x14, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xE9, 0xF5, 0x7B, 0xA2, 0x06, 0x73, +0xF5, 0x61, 0xE9, 0xF5, 0x7C, 0xA2, 0x01, 0x4B, +0xE9, 0xF5, 0x7C, 0xC2, 0x78, 0x67, 0xE9, 0xF5, +0x7B, 0xC2, 0x09, 0xF6, 0x64, 0xA2, 0x01, 0x4B, +0x09, 0xF6, 0x64, 0xC2, 0x2A, 0x10, 0x01, 0x6C, +0x80, 0x18, 0x00, 0x0F, 0x01, 0x6C, 0x00, 0x6D, +0x80, 0x18, 0x65, 0x11, 0x19, 0x10, 0x01, 0x6C, +0x80, 0x18, 0xC8, 0x0E, 0x01, 0x6C, 0x00, 0x6D, +0x80, 0x18, 0xA9, 0x11, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0x09, 0xF6, 0x84, 0xA3, +0x01, 0x4C, 0x09, 0xF6, 0x84, 0xC3, 0x08, 0x22, +0xAA, 0xF1, 0x44, 0xA3, 0x03, 0x5A, 0x04, 0x60, +0x01, 0x4A, 0xAA, 0xF1, 0x44, 0xC3, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xE9, 0xF5, 0x7C, 0xA2, 0x01, 0x4B, 0xE9, 0xF5, +0x7C, 0xC2, 0x30, 0xF0, 0x21, 0x6A, 0x74, 0xF6, +0x44, 0xA2, 0x06, 0x72, 0x80, 0xF0, 0x08, 0x61, +0x30, 0xF0, 0x21, 0x69, 0x00, 0x6A, 0x35, 0xF2, +0x08, 0x49, 0x06, 0xD2, 0x06, 0x92, 0xFF, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0x6C, 0xEA, 0x06, 0x93, +0x07, 0xD2, 0x01, 0x6D, 0x64, 0x36, 0xC0, 0xF3, +0x64, 0x98, 0x08, 0x6A, 0x4D, 0xEE, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF2, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, +0x0C, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x08, 0x92, 0x06, 0x72, 0x1A, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF2, 0xAC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x99, +0x01, 0x6D, 0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x01, 0x6D, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, 0xC2, 0x99, +0x21, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, +0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, +0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF1, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF1, 0x14, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xC0, 0x9B, 0x01, 0x6D, 0x23, 0xF3, +0x1C, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, 0xA3, 0xF3, +0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x03, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x07, 0x95, +0x63, 0xF4, 0xF0, 0x9A, 0x30, 0xF0, 0x21, 0x6C, +0x32, 0xF4, 0x18, 0x4C, 0x00, 0x6E, 0x80, 0x18, +0x12, 0x59, 0x06, 0x92, 0x04, 0x49, 0x01, 0x4A, +0x02, 0x72, 0x06, 0xD2, 0x7F, 0xF7, 0x1E, 0x61, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x21, 0x6A, +0x74, 0xF6, 0x41, 0xA2, 0xFF, 0x69, 0x8C, 0xE9, +0x02, 0x72, 0x02, 0x6A, 0x05, 0xD2, 0x02, 0x60, +0x04, 0x6B, 0x05, 0xD3, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x08, 0x6E, 0x03, 0xF3, +0x00, 0x6C, 0x0F, 0x6D, 0x40, 0xEA, 0x01, 0x6D, +0x03, 0xF3, 0x08, 0x6C, 0xAB, 0xED, 0x80, 0x18, +0x09, 0x28, 0x04, 0xD2, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x00, 0x6C, 0x06, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x08, 0x6C, 0x80, 0x6D, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, +0x06, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, 0x80, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0x00, 0x68, 0x91, 0x67, +0x80, 0x18, 0xBE, 0x14, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xE9, 0xF5, 0x7C, 0xA2, +0x06, 0x73, 0x0B, 0x60, 0x05, 0x21, 0x09, 0xF6, +0x44, 0xA2, 0x05, 0x93, 0x6E, 0xEA, 0x05, 0x22, +0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, 0x64, 0x70, +0xEA, 0x61, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x06, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x04, 0x96, 0x03, 0xF3, 0x08, 0x69, 0x01, 0x6D, +0x91, 0x67, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x06, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x04, 0x96, 0x01, 0x6D, 0x91, 0x67, 0xAB, 0xED, +0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0xE0, 0x9A, +0x30, 0xF0, 0x21, 0x6C, 0x32, 0xF4, 0x18, 0x4C, +0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, 0x9F, 0x58, +0x30, 0xF0, 0x20, 0x6B, 0x06, 0xF0, 0x00, 0x6C, +0x6B, 0xF0, 0x08, 0x4B, 0x4C, 0xEC, 0x8A, 0xF1, +0x40, 0xDB, 0x82, 0x32, 0x52, 0x32, 0x02, 0x72, +0x0A, 0x60, 0x03, 0x6C, 0x4E, 0xEC, 0x04, 0x24, +0x01, 0x72, 0x02, 0x6A, 0x07, 0x60, 0x05, 0x10, +0xE9, 0xF5, 0x99, 0xC3, 0x05, 0x10, 0x01, 0x6A, +0x01, 0x10, 0x00, 0x6A, 0xE9, 0xF5, 0x59, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0x78, 0x9B, +0x8A, 0xF1, 0x80, 0x9A, 0x8C, 0xEB, 0x62, 0x33, +0x62, 0x33, 0xE9, 0xF5, 0x78, 0xC2, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xF1, 0x63, 0x1D, 0x62, +0x1C, 0xD1, 0x1B, 0xD0, 0x08, 0xA4, 0x02, 0x6A, +0x01, 0x69, 0x0C, 0xEA, 0x46, 0x32, 0x18, 0xD2, +0x80, 0x18, 0x3A, 0x08, 0x80, 0x18, 0x87, 0x15, +0x80, 0x18, 0xA0, 0x13, 0x00, 0x6C, 0x80, 0x18, +0x15, 0x09, 0x90, 0x67, 0x2C, 0xEC, 0x00, 0x6D, +0x80, 0x18, 0x69, 0x13, 0x80, 0xF0, 0x00, 0x2A, +0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, +0xE9, 0xF5, 0x7A, 0xA0, 0xE9, 0xF5, 0x5C, 0xC0, +0xE9, 0xF5, 0x5B, 0xC0, 0x01, 0x4B, 0xE9, 0xF5, +0x7A, 0xC0, 0x09, 0xF6, 0x44, 0xC0, 0x09, 0xF6, +0x25, 0xC0, 0x38, 0x6C, 0x80, 0x18, 0x98, 0x0C, +0x00, 0x6C, 0xAA, 0xF1, 0x58, 0xD8, 0xA4, 0x67, +0x80, 0x18, 0x08, 0x11, 0x30, 0xF0, 0x20, 0x6E, +0x30, 0xF0, 0x20, 0x6F, 0x04, 0x04, 0x0D, 0x05, +0xE1, 0xF7, 0x0C, 0x4E, 0xE1, 0xF7, 0x18, 0x4F, +0x80, 0x18, 0xE8, 0x0C, 0x30, 0xF0, 0x20, 0x6D, +0x07, 0x04, 0x42, 0xF0, 0x0C, 0x4D, 0x80, 0x18, +0xA7, 0x10, 0x00, 0x68, 0x80, 0x18, 0x0E, 0x0C, +0x01, 0x6C, 0x80, 0x18, 0x51, 0x09, 0x18, 0x94, +0x80, 0x18, 0x4B, 0x15, 0x00, 0x6C, 0x80, 0x18, +0x51, 0x09, 0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF0, +0x0C, 0x4C, 0x07, 0x05, 0x80, 0x18, 0x99, 0x0F, +0x30, 0xF0, 0x20, 0x6E, 0x30, 0xF0, 0x20, 0x6F, +0x04, 0x04, 0x0D, 0x05, 0xE1, 0xF7, 0x0C, 0x4E, +0xE1, 0xF7, 0x18, 0x4F, 0x80, 0x18, 0xCB, 0x0B, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xE9, 0xF5, 0x7C, 0xA2, 0x06, 0x73, 0x08, 0x60, +0xFF, 0x6B, 0x01, 0x48, 0x6C, 0xE8, 0x03, 0x70, +0x00, 0x6B, 0x09, 0xF6, 0x64, 0xC2, 0xD2, 0x61, +0x30, 0xF0, 0x20, 0x68, 0x00, 0x6C, 0x80, 0x18, +0xE4, 0x08, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x00, 0x6C, 0xFF, 0x6D, 0x08, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x10, 0x69, +0x91, 0x67, 0xFF, 0x6D, 0xAA, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, +0xFF, 0x6D, 0x0A, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0xFF, 0x6D, 0xAA, 0x6E, +0x40, 0xEA, 0x01, 0x6C, 0x80, 0x18, 0x15, 0x09, +0x1D, 0x97, 0x1C, 0x91, 0x1B, 0x90, 0x00, 0x6A, +0x0F, 0x63, 0x00, 0xEF, 0xF2, 0x63, 0x1B, 0x62, +0x1A, 0xD0, 0x30, 0xF0, 0x20, 0x6D, 0x04, 0x67, +0x62, 0xF4, 0x18, 0x4D, 0x04, 0x04, 0x54, 0x6E, +0x00, 0x18, 0x3C, 0xD6, 0x00, 0x6A, 0x26, 0x20, +0x70, 0x67, 0x01, 0x73, 0x03, 0x60, 0x66, 0x33, +0x01, 0x4A, 0xFB, 0x17, 0x01, 0x6C, 0x01, 0x4A, +0x64, 0x67, 0x04, 0x10, 0x01, 0x4B, 0xFF, 0x6D, +0x84, 0x34, 0xAC, 0xEB, 0x63, 0xEA, 0xFA, 0x60, +0x64, 0x6B, 0x78, 0xE8, 0x05, 0x6D, 0x12, 0xE8, +0x9B, 0xE8, 0x01, 0x2C, 0xE5, 0xE8, 0x12, 0xEC, +0xBB, 0xEC, 0x01, 0x2D, 0xE5, 0xE8, 0x12, 0xEC, +0x15, 0x5C, 0x78, 0xEA, 0x12, 0xEA, 0x01, 0x61, +0x14, 0x6C, 0x7D, 0x67, 0x88, 0x34, 0x91, 0xE3, +0x64, 0x9C, 0x6B, 0xE2, 0x1B, 0x97, 0x1A, 0x90, +0x0E, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x26, 0x67, 0x43, 0xF4, 0xC4, 0x9B, 0x05, 0x67, +0x01, 0x6D, 0x0D, 0xD7, 0x63, 0xF5, 0x10, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x00, 0x6A, 0x04, 0xD2, +0x0E, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xA8, +0xC0, 0x99, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, +0xAB, 0xED, 0x40, 0xEA, 0x04, 0x93, 0x04, 0x48, +0x04, 0x49, 0x01, 0x4B, 0x04, 0xD3, 0x04, 0x92, +0x0D, 0x93, 0x63, 0xEA, 0xEE, 0x61, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x00, 0x6C, 0x0F, 0x6D, 0x0C, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x14, 0x6C, +0xF0, 0x6D, 0x04, 0x6E, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, +0xFF, 0x68, 0xAC, 0xE8, 0xD0, 0x67, 0xA3, 0xF0, +0x04, 0x6C, 0x80, 0x6D, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0xD0, 0x67, 0xA8, 0xF1, 0x04, 0x6C, +0x80, 0x6D, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x68, +0x83, 0xF4, 0x34, 0x9A, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x1F, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0xA8, 0xF1, 0x00, 0x6C, 0x1F, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF4, 0x38, 0x9A, +0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF0, 0x08, 0x6C, +0xB1, 0x67, 0x1F, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0xE8, 0xF1, 0x08, 0x6C, +0x1F, 0x6E, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0xAC, 0xEA, 0x08, 0xD4, 0x80, 0xF1, +0x16, 0x22, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF4, +0x18, 0x6C, 0xB1, 0x67, 0xD1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, 0x0C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF3, 0x0C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF3, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, +0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, 0x18, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF3, 0x1C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF3, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, +0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0x08, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF3, 0x0C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF3, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, +0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0x18, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF3, 0x1C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF3, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, +0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, 0x08, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF3, 0x08, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF3, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, +0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF3, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF3, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF3, 0x04, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF3, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, +0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF3, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF3, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF3, 0x04, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF3, 0x08, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xC0, 0x9B, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0xE3, 0xF3, 0x08, 0x4B, 0x70, 0x12, 0x08, 0x93, +0x60, 0xF0, 0x5B, 0xA3, 0xE0, 0xF0, 0x1B, 0x22, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF3, 0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF4, 0x18, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, +0x63, 0xF0, 0x00, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, +0xC0, 0xF3, 0x44, 0x98, 0x0E, 0xF0, 0x00, 0x6D, +0x67, 0xEE, 0xC3, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF3, 0x10, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, +0x23, 0xF0, 0x10, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, +0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, +0x14, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, +0x08, 0x92, 0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, +0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF3, 0x18, 0x4B, 0x60, 0x9B, +0x6D, 0xEE, 0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, +0x23, 0xF0, 0x10, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, +0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, +0x1C, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, +0x08, 0x92, 0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, +0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF4, 0x00, 0x4B, 0x60, 0x9B, +0x6D, 0xEE, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, 0x23, 0xF0, +0x10, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x08, 0x4B, +0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF3, 0x10, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, +0x28, 0xF1, 0x10, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, +0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, +0x14, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, +0x08, 0x92, 0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, +0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF3, 0x18, 0x4B, 0x60, 0x9B, +0x6D, 0xEE, 0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, +0x28, 0xF1, 0x10, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, +0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, +0x1C, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, +0x08, 0x92, 0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, +0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF4, 0x00, 0x4B, 0x60, 0x9B, +0x6D, 0xEE, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, 0x28, 0xF1, +0x10, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, 0xB1, 0x67, +0xC0, 0xF3, 0x44, 0x98, 0x67, 0xEE, 0xC3, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x08, 0x4B, +0x60, 0x9B, 0x6D, 0xEE, 0xA7, 0x10, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, +0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, +0x2B, 0xE9, 0x23, 0xF4, 0x18, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, +0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x0C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x04, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF3, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, +0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, +0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x1C, 0x4B, +0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x23, 0xF4, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, +0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x0C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x1C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, +0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x08, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, +0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x18, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF4, 0x1C, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xC0, 0x9B, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x30, 0xF0, 0x20, 0x6B, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x43, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFF, 0xF7, 0x1F, 0x6B, +0x6C, 0xED, 0x1E, 0xF0, 0x01, 0x4D, 0x6C, 0xED, +0x02, 0x5D, 0x6C, 0xEE, 0x09, 0x61, 0x02, 0xF0, +0x00, 0x76, 0x06, 0x60, 0xE1, 0xF7, 0x1F, 0x6A, +0x4E, 0xEE, 0x01, 0x5E, 0x58, 0x67, 0x20, 0xE8, +0x01, 0x6A, 0x20, 0xE8, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, +0x50, 0x6B, 0x78, 0xEA, 0xE0, 0xF0, 0x68, 0x44, +0x24, 0x67, 0x12, 0xEA, 0x90, 0xF0, 0x08, 0x42, +0x4D, 0xE3, 0x01, 0xE4, 0x04, 0xD3, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0xA0, 0x9A, 0x40, 0x98, +0xE3, 0xF7, 0x1F, 0x6E, 0x91, 0x67, 0x4C, 0xED, +0xA2, 0x35, 0xA2, 0x35, 0x4C, 0xEE, 0x80, 0x18, +0x61, 0x18, 0x02, 0x22, 0x00, 0x6A, 0x05, 0x10, +0x04, 0x92, 0x04, 0x48, 0x4A, 0xE8, 0xEB, 0x61, +0x01, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x68, 0x4C, 0xED, 0x4C, 0xEE, 0x01, 0x69, +0xC0, 0xF3, 0x44, 0x98, 0x2B, 0xE9, 0x0C, 0xD4, +0x05, 0xD5, 0x06, 0xD6, 0xB1, 0x67, 0x03, 0xF3, +0x00, 0x6C, 0x0C, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0xC3, 0xF3, 0x14, 0x6C, +0xF0, 0x6E, 0x40, 0xEA, 0x05, 0x93, 0x50, 0x6A, +0x03, 0xF3, 0x0C, 0x68, 0x58, 0xEB, 0x0C, 0x93, +0x00, 0x69, 0x12, 0xEA, 0x7F, 0x4A, 0x19, 0x4A, +0x49, 0xE3, 0x04, 0xD2, 0x05, 0x92, 0x90, 0x67, +0x05, 0x22, 0x87, 0x40, 0x51, 0x4C, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xEC, 0x06, 0x93, 0x0A, 0x2B, +0x03, 0x71, 0x03, 0x60, 0xE3, 0xF7, 0x1F, 0x6E, +0x07, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0xC4, 0x9A, 0x02, 0x10, 0x04, 0x92, 0xC0, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, 0x04, 0x93, +0xFF, 0x6A, 0x01, 0x49, 0x4C, 0xE9, 0x04, 0x4B, +0x04, 0x48, 0xFF, 0xF7, 0x1F, 0x6A, 0x14, 0x71, +0x04, 0xD3, 0x4C, 0xE8, 0xD7, 0x61, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x24, 0x67, 0x0F, 0x6D, 0x03, 0xF3, 0x00, 0x6C, +0x0C, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF0, 0x14, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x60, 0xF0, 0xD9, 0xA1, 0x03, 0xF3, +0x08, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF0, 0x14, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xA0, 0x9B, 0x60, 0xF0, 0xD9, 0xA1, 0x63, 0xF3, +0x00, 0x6C, 0x40, 0xEA, 0x60, 0xF0, 0x58, 0xA1, +0x2C, 0x22, 0x60, 0xF0, 0x5E, 0xA9, 0x01, 0x6B, +0x6C, 0xEA, 0x10, 0x22, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x08, 0x6C, 0x18, 0xF0, 0x00, 0x6D, +0xC3, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x20, 0xF1, 0xD8, 0xA9, 0x03, 0xF3, 0x04, 0x6C, +0xFF, 0x6D, 0x40, 0xEA, 0x60, 0xF0, 0x5E, 0xA9, +0x02, 0x6B, 0x6C, 0xEA, 0x3C, 0x22, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF3, +0x00, 0x6C, 0x18, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF3, +0x1C, 0x6C, 0xFF, 0x6D, 0x20, 0xF1, 0xDA, 0xA9, +0x29, 0x10, 0x60, 0xF0, 0x5E, 0xA9, 0x01, 0x6B, +0x6C, 0xEA, 0x0F, 0x22, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x08, 0x6C, 0x18, 0xF0, 0x00, 0x6D, +0x03, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x04, 0x6C, 0xFF, 0x6D, 0x5B, 0x6E, +0x40, 0xEA, 0x60, 0xF0, 0x5E, 0xA9, 0x02, 0x6B, +0x6C, 0xEA, 0x11, 0x22, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF3, 0x00, 0x6C, +0x18, 0xF0, 0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF3, 0x1C, 0x6C, +0xFF, 0x6D, 0x5B, 0x6E, 0x40, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, +0xA3, 0xF4, 0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x20, 0xF5, 0x00, 0x6C, 0xFF, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF6, 0x10, 0x6C, +0x0F, 0x6D, 0x02, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF4, 0x30, 0x9A, 0x30, 0xF0, +0x21, 0x68, 0x32, 0xF4, 0x18, 0x48, 0x00, 0x6D, +0x90, 0x67, 0xC5, 0x67, 0xF1, 0x67, 0x80, 0x18, +0x9F, 0x58, 0xFF, 0x6B, 0x4C, 0xEB, 0x90, 0x67, +0xF1, 0x67, 0x01, 0x6D, 0x00, 0x6E, 0x04, 0xD3, +0xFF, 0x69, 0x80, 0x18, 0x9F, 0x58, 0x4C, 0xE9, +0x00, 0x68, 0x27, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF4, 0x10, 0x4A, 0xE0, 0x9A, 0x30, 0xF0, +0x21, 0x69, 0x32, 0xF4, 0x18, 0x49, 0x00, 0x6D, +0x91, 0x67, 0xC5, 0x67, 0x80, 0x18, 0x9F, 0x58, +0xFF, 0x6B, 0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF4, 0x10, 0x4A, 0xE0, 0x9A, 0x91, 0x67, +0x01, 0x6D, 0x00, 0x6E, 0x04, 0xD3, 0xFF, 0x69, +0x80, 0x18, 0x9F, 0x58, 0x4C, 0xE9, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x02, 0x6C, +0x01, 0x48, 0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE8, 0x04, 0x93, 0x02, 0x73, 0x02, 0x60, +0x02, 0x71, 0x03, 0x61, 0xC1, 0xF1, 0x04, 0x70, +0xD1, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x04, 0x67, 0x80, 0x18, +0xF0, 0x18, 0x60, 0xF0, 0x5B, 0xA0, 0x1E, 0x22, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF1, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF6, 0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x34, 0x9A, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0x04, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xA8, 0xF1, 0x04, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0xB0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF6, 0x04, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x43, 0xF5, 0x18, 0x6C, 0xE1, 0xF7, 0x18, 0x6D, +0xE0, 0xF1, 0x1F, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF0, 0x34, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0x63, 0xF0, 0x04, 0x6C, 0xB1, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x68, 0xF1, 0x04, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, +0x38, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x0C, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x08, 0xF1, +0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x63, 0xF0, 0x0C, 0x6C, 0x80, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x68, 0xF1, 0x0C, 0x6C, 0x80, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x0C, 0x6C, 0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, 0x0C, 0x6C, +0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF2, 0x14, 0x6C, 0x00, 0xF3, +0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0xF0, 0x0C, 0x6C, 0x0F, 0x6D, +0x08, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, 0xB0, 0x9B, +0x21, 0xF0, 0x04, 0x69, 0x91, 0x67, 0x03, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xE3, 0xF2, 0xB8, 0x9B, 0x91, 0x67, +0x03, 0x6E, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x00, 0x6A, 0x25, 0x67, 0x04, 0xD6, 0x05, 0xD2, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0x00, 0x4B, +0xC0, 0x99, 0xE0, 0x9B, 0x30, 0xF0, 0x21, 0x68, +0x32, 0xF4, 0x18, 0x48, 0x90, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x9F, 0x58, 0x04, 0x93, 0x90, 0x67, +0x01, 0x6D, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF2, 0x00, 0x4A, 0xC0, 0x99, 0xE0, 0x9A, +0x04, 0x49, 0x80, 0x18, 0x9F, 0x58, 0x04, 0x93, +0x41, 0xDB, 0x05, 0x92, 0x08, 0x4B, 0x04, 0xD3, +0x01, 0x4A, 0x07, 0x72, 0x05, 0xD2, 0xDC, 0x61, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x30, 0xF0, +0x20, 0x68, 0x2C, 0xEE, 0xC0, 0xF3, 0x64, 0x98, +0x08, 0x6A, 0x04, 0xD6, 0x2C, 0xEF, 0xC4, 0x36, +0x0A, 0xD4, 0x0B, 0xD5, 0x4D, 0xEE, 0x05, 0xD7, +0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x40, 0xEB, +0x05, 0x92, 0x0C, 0x22, 0x0B, 0x96, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xFA, 0x4E, +0x63, 0xF3, 0x04, 0x6C, 0x43, 0xF4, 0xBC, 0x9B, +0x2C, 0xEE, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF4, 0xBC, 0x9B, +0x63, 0xF3, 0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x0A, 0x93, 0x04, 0x92, 0x63, 0xF3, 0x04, 0x6C, +0x41, 0xE3, 0x7D, 0x67, 0x47, 0x43, 0x0D, 0x4A, +0x60, 0xA2, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF4, +0xBC, 0x9A, 0x80, 0xF0, 0x73, 0xC0, 0x80, 0x18, +0x09, 0x28, 0x80, 0xF0, 0x55, 0xC0, 0x0A, 0x94, +0x04, 0x95, 0x05, 0x96, 0x80, 0x18, 0x81, 0x18, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x4C, 0xEF, +0x4C, 0xED, 0x24, 0x67, 0x0C, 0xD6, 0x04, 0xD7, +0x05, 0x2D, 0xA7, 0x67, 0x80, 0x18, 0x6B, 0x18, +0x01, 0x68, 0x01, 0x2A, 0x00, 0x68, 0x0C, 0x95, +0x04, 0x96, 0x91, 0x67, 0xF0, 0x67, 0x80, 0x18, +0x8F, 0x19, 0x50, 0x67, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xE3, 0xF3, 0x1C, 0x68, 0x01, 0x6D, 0x90, 0x67, +0xAB, 0xED, 0x80, 0x18, 0x09, 0x28, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0xAC, 0x9A, 0x90, 0x67, +0xFF, 0xF7, 0x1F, 0x69, 0x80, 0x18, 0x09, 0x28, +0x90, 0x67, 0xB1, 0x67, 0x04, 0xD2, 0x80, 0x18, +0x09, 0x28, 0xE3, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, +0x04, 0xF0, 0x00, 0x6C, 0x53, 0xE4, 0x04, 0x92, +0x6C, 0xEC, 0xFF, 0x4C, 0x4C, 0xEB, 0x2C, 0xEC, +0x60, 0x32, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x40, 0x32, 0x8D, 0xEA, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0xAC, 0xEA, 0x30, 0xF0, 0x20, 0x68, +0x05, 0xD2, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0x24, 0x67, 0xAB, 0xED, 0x03, 0xF3, 0x00, 0x6C, +0x0C, 0x6E, 0x40, 0xEA, 0x05, 0x93, 0x0F, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x43, 0xF2, 0xB4, 0x9B, 0xA3, 0xF3, 0x14, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x04, 0x6C, 0x11, 0x10, 0x05, 0x94, +0x01, 0x74, 0x15, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF2, 0xB4, 0x9B, +0xA3, 0xF3, 0x14, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF3, 0x1C, 0x6C, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0xD0, 0x9B, +0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x64, 0x98, 0xA3, 0xF4, 0xD4, 0x9A, 0x01, 0x6D, +0xAB, 0xED, 0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, +0x91, 0x67, 0x80, 0x18, 0xC4, 0x19, 0x05, 0x94, +0x50, 0x6D, 0xB8, 0xEC, 0xAF, 0x4D, 0xC3, 0xF3, +0x14, 0x6C, 0x12, 0xEB, 0x6D, 0xE1, 0x04, 0xD3, +0x80, 0xF0, 0x58, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x64, 0x98, 0xA3, 0xF4, 0xD8, 0x9A, +0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, 0xC4, 0x19, +0x04, 0x93, 0x01, 0x6D, 0xAB, 0xED, 0x80, 0xF0, +0x5C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x64, 0x98, 0xA3, 0xF4, 0xDC, 0x9A, 0xC3, 0xF3, +0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, +0xC4, 0x19, 0x04, 0x94, 0x01, 0x6D, 0xAB, 0xED, +0xA0, 0xF0, 0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x64, 0x98, 0xC3, 0xF4, 0xC0, 0x9A, +0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, +0x80, 0x18, 0xC4, 0x19, 0x04, 0x95, 0xC3, 0xF3, +0x14, 0x6C, 0xA0, 0xF0, 0x44, 0xDD, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0xC3, 0xF4, +0xC4, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEB, +0x91, 0x67, 0x80, 0x18, 0xC4, 0x19, 0x04, 0x93, +0x01, 0x6D, 0xAB, 0xED, 0xA0, 0xF0, 0x48, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, +0xC3, 0xF4, 0xC8, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, +0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, 0xC4, 0x19, +0x04, 0x94, 0x01, 0x6D, 0xAB, 0xED, 0xA0, 0xF0, +0x4C, 0xDC, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x64, 0x98, 0xC3, 0xF4, 0xCC, 0x9A, 0xC3, 0xF3, +0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, +0xC4, 0x19, 0x04, 0x95, 0xC3, 0xF3, 0x14, 0x6C, +0xA0, 0xF0, 0x50, 0xDD, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x64, 0x98, 0xC3, 0xF4, 0xD0, 0x9A, +0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEB, 0x91, 0x67, +0x80, 0x18, 0xC4, 0x19, 0x04, 0x93, 0x01, 0x6D, +0xAB, 0xED, 0xA0, 0xF0, 0x54, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0xC3, 0xF4, +0xD4, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, +0x91, 0x67, 0x80, 0x18, 0xC4, 0x19, 0x04, 0x94, +0x01, 0x6D, 0xAB, 0xED, 0xA0, 0xF0, 0x58, 0xDC, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, +0xC3, 0xF4, 0xD8, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, +0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, 0xC4, 0x19, +0x04, 0x95, 0xC3, 0xF3, 0x14, 0x6C, 0xA0, 0xF0, +0x5C, 0xDD, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x64, 0x98, 0xC3, 0xF4, 0xDC, 0x9A, 0x01, 0x6D, +0xAB, 0xED, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, +0xC4, 0x19, 0x04, 0x93, 0x01, 0x6D, 0xAB, 0xED, +0xC0, 0xF0, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x64, 0x98, 0xE3, 0xF4, 0xC0, 0x9A, +0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, +0x80, 0x18, 0xC4, 0x19, 0x04, 0x94, 0x01, 0x6D, +0xAB, 0xED, 0xC0, 0xF0, 0x44, 0xDC, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0xE3, 0xF4, +0xC4, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, +0x91, 0x67, 0x80, 0x18, 0xC4, 0x19, 0x05, 0x93, +0x50, 0x6C, 0x01, 0x6D, 0x01, 0x4B, 0x98, 0xEB, +0xAB, 0xED, 0x83, 0xF3, 0x04, 0x4C, 0x12, 0xEB, +0x6D, 0xE1, 0x5E, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x64, 0x98, 0xE3, 0xF4, 0xC8, 0x9A, +0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, 0xC4, 0x19, +0x04, 0x95, 0xC3, 0xF3, 0x14, 0x6C, 0xC0, 0xF0, +0x4C, 0xDD, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x64, 0x98, 0xE3, 0xF4, 0xCC, 0x9A, 0x01, 0x6D, +0xAB, 0xED, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, +0xC4, 0x19, 0x04, 0x93, 0x01, 0x6D, 0xAB, 0xED, +0xC0, 0xF0, 0x50, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x64, 0x98, 0xE3, 0xF4, 0xD0, 0x9A, +0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, +0x80, 0x18, 0xC4, 0x19, 0x04, 0x94, 0x01, 0x6D, +0xAB, 0xED, 0xC0, 0xF0, 0x54, 0xDC, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0xE3, 0xF4, +0xD4, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, +0x91, 0x67, 0x80, 0x18, 0xC4, 0x19, 0x04, 0x95, +0xC3, 0xF3, 0x14, 0x6C, 0xC0, 0xF0, 0x58, 0xDD, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, +0xE3, 0xF4, 0xD8, 0x9A, 0x01, 0x6D, 0xAB, 0xED, +0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, 0xC4, 0x19, +0x04, 0x93, 0x01, 0x6D, 0xAB, 0xED, 0xC0, 0xF0, +0x5C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x64, 0x98, 0xE3, 0xF4, 0xDC, 0x9A, 0xC3, 0xF3, +0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, +0xC4, 0x19, 0x04, 0x94, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF5, 0xC0, 0x9B, 0xE0, 0xF0, 0x40, 0xDC, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xAB, 0xED, +0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEA, 0x91, 0x67, +0x80, 0x18, 0xC4, 0x19, 0x04, 0x95, 0xE0, 0xF0, +0x44, 0xDD, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xFF, 0x6A, 0x4C, 0xED, 0xC0, 0xF3, 0x44, 0x98, +0x08, 0x6B, 0xA4, 0x36, 0x6D, 0xEE, 0x03, 0xF3, +0x00, 0x6C, 0x0F, 0x6D, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF3, 0x08, 0x69, 0x91, 0x67, +0x08, 0xF0, 0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, 0xC4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC3, 0xF3, +0x14, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xE3, 0xF3, +0x1C, 0x6C, 0xF0, 0x6D, 0x80, 0x18, 0x09, 0x28, +0x04, 0xD2, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x08, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x04, 0x92, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0xFF, 0x6B, 0x6C, 0xEA, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6A, 0x4C, 0xED, +0x4C, 0xEE, 0x01, 0x69, 0xC0, 0xF3, 0x44, 0x98, +0x08, 0x6B, 0x2B, 0xE9, 0x04, 0xD6, 0xA4, 0x36, +0x6D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF3, +0x08, 0x6C, 0x08, 0xF0, 0x00, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, +0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, +0x14, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF3, 0x0C, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0x04, 0x92, 0x04, 0x22, +0x02, 0x72, 0x00, 0x68, 0x2C, 0x60, 0x44, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF1, 0xD8, 0x9B, 0xB1, 0x67, 0x43, 0xF3, +0x0C, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0xAC, 0x9A, 0xE3, 0xF3, 0x1C, 0x69, +0x91, 0x67, 0x80, 0x18, 0x09, 0x28, 0x91, 0x67, +0xFF, 0xF7, 0x1F, 0x6D, 0x02, 0x67, 0x80, 0x18, +0x09, 0x28, 0x22, 0x67, 0x42, 0x32, 0x5E, 0x32, +0x05, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, +0x58, 0x9A, 0x27, 0xE2, 0x02, 0x32, 0x5E, 0x32, +0x21, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, +0x58, 0x9A, 0x03, 0xE2, 0x1B, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF1, 0x78, 0x9B, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x69, +0x2B, 0xE9, 0x00, 0xF6, 0x00, 0x36, 0x43, 0xF3, +0x0C, 0x6C, 0xB1, 0x67, 0x6D, 0xEE, 0x40, 0xEA, +0x01, 0x48, 0xE3, 0xF3, 0x1C, 0x6C, 0xB1, 0x67, +0x80, 0x18, 0x09, 0x28, 0x40, 0x70, 0xE7, 0x61, +0x00, 0x68, 0x30, 0x67, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, 0x43, 0xF3, +0x0C, 0x6C, 0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, +0x18, 0xE8, 0x09, 0x97, 0x12, 0xE8, 0x38, 0xE9, +0x12, 0xE9, 0x29, 0xE0, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, +0x0C, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x00, 0x6E, 0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0xAC, 0x9A, +0xE3, 0xF3, 0x1C, 0x6C, 0x80, 0x18, 0x09, 0x28, +0x05, 0x97, 0x04, 0x90, 0xFF, 0xF7, 0x1F, 0x6B, +0x6C, 0xEA, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF5, 0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, +0x01, 0x6D, 0xC3, 0xF3, 0x14, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, +0xAC, 0x9A, 0xE3, 0xF3, 0x1C, 0x69, 0x91, 0x67, +0x80, 0x18, 0x09, 0x28, 0xFF, 0xF7, 0x1F, 0x68, +0x91, 0x67, 0xE1, 0xF7, 0x1F, 0x6D, 0x4C, 0xE8, +0xFF, 0xF7, 0x1F, 0x69, 0x80, 0x18, 0x09, 0x28, +0x4C, 0xE9, 0x02, 0x32, 0x4E, 0x32, 0x01, 0x72, +0x06, 0x61, 0x02, 0xF0, 0x00, 0x6A, 0x03, 0xE2, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0x22, 0x32, +0x4E, 0x32, 0x01, 0x72, 0x06, 0x61, 0x02, 0xF0, +0x00, 0x6A, 0x27, 0xE2, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x01, 0x6D, 0xF0, 0x6E, 0xC3, 0xF3, +0x14, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xE3, 0xF3, +0x1C, 0x6C, 0xFF, 0x6D, 0x80, 0x18, 0x09, 0x28, +0xE3, 0xF3, 0x1C, 0x6C, 0x1F, 0xF7, 0x00, 0x6D, +0x04, 0xD2, 0x80, 0x18, 0x09, 0x28, 0xC9, 0x58, +0x0C, 0x60, 0xC9, 0x59, 0x0A, 0x60, 0x04, 0x93, +0xFF, 0x6A, 0x6C, 0xEA, 0x28, 0x5A, 0x05, 0x61, +0x42, 0x5A, 0x58, 0x67, 0x01, 0x6B, 0x6E, 0xEA, +0x01, 0x10, 0x01, 0x6A, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF1, 0xB4, 0x9A, 0x04, 0x67, +0x63, 0xF6, 0x1C, 0x6C, 0x80, 0x18, 0x09, 0x28, +0x01, 0x22, 0x01, 0x6A, 0x60, 0xF0, 0x5B, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0xE0, 0x9A, +0x30, 0xF0, 0x21, 0x6C, 0x32, 0xF4, 0x18, 0x4C, +0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, 0x9F, 0x58, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0x78, 0x9B, +0x80, 0xF0, 0x50, 0xC0, 0x05, 0x97, 0x4C, 0xEB, +0x62, 0x33, 0x62, 0x33, 0x80, 0xF0, 0x71, 0xC0, +0x06, 0xF0, 0x00, 0x6B, 0x4C, 0xEB, 0x62, 0x33, +0x72, 0x33, 0x80, 0xF0, 0x72, 0xC0, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x00, 0x6A, 0x0D, 0xD7, +0x05, 0x67, 0x26, 0x67, 0x04, 0xD2, 0x0B, 0x10, +0x80, 0xA8, 0x01, 0x6D, 0xAB, 0xED, 0x80, 0x18, +0x09, 0x28, 0x40, 0xD9, 0x04, 0x93, 0x04, 0x48, +0x04, 0x49, 0x01, 0x4B, 0x04, 0xD3, 0x04, 0x92, +0x0D, 0x93, 0x63, 0xEA, 0xF1, 0x61, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0x18, 0x4B, +0xE0, 0x9B, 0xFF, 0x69, 0x30, 0xF0, 0x21, 0x68, +0xAC, 0xE9, 0x32, 0xF4, 0x18, 0x48, 0x90, 0x67, +0xB1, 0x67, 0x01, 0x6A, 0x42, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x00, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x18, 0x4A, +0xE0, 0x9A, 0x90, 0x67, 0xB1, 0x67, 0x42, 0x6E, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF1, 0x18, 0x4A, 0xE0, 0x9A, 0x01, 0x6B, +0xB1, 0x67, 0x90, 0x67, 0x42, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x0F, 0x6C, 0x40, 0xEA, +0x90, 0x67, 0xB1, 0x67, 0x42, 0x6E, 0x7E, 0x6F, +0x80, 0x18, 0x9F, 0x58, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0xFF, 0x6B, 0x6C, 0xEA, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x00, 0x6A, 0x0A, 0xD4, +0x60, 0xF0, 0x5E, 0xCC, 0x0A, 0x90, 0x04, 0xD4, +0x00, 0x69, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x64, 0x9A, 0x24, 0x36, 0x08, 0x6A, 0x4D, 0xEE, +0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x40, 0xEB, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x43, 0xF3, 0x18, 0x6C, 0x7F, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x00, 0x6A, 0x80, 0xF0, 0x55, 0xC0, +0x80, 0xF0, 0x53, 0xC0, 0x04, 0x94, 0x5B, 0x6B, +0xB1, 0x67, 0x20, 0xF1, 0x78, 0xCC, 0x80, 0xF0, +0x44, 0xC0, 0x0A, 0x94, 0x01, 0x49, 0x80, 0x18, +0x7A, 0x1B, 0x80, 0xF0, 0x40, 0xC0, 0x04, 0x92, +0x02, 0x71, 0x01, 0x48, 0x02, 0x4A, 0x04, 0xD2, +0xD4, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x0C, 0xD4, 0x80, 0xF0, +0x51, 0xA4, 0xFF, 0x68, 0xAC, 0xE8, 0x07, 0xD2, +0x5D, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, +0x00, 0x4B, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0x9B, +0x03, 0xF5, 0x50, 0x9A, 0x30, 0xF0, 0x21, 0x69, +0x32, 0xF4, 0x18, 0x49, 0x91, 0x67, 0xB0, 0x67, +0x00, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0x00, 0x4A, +0xE0, 0x9A, 0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, +0x80, 0x18, 0x9F, 0x58, 0x06, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF1, 0xF8, 0x9A, 0x01, 0x6B, +0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x01, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0xF8, 0x9A, +0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, 0x80, 0x18, +0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, 0x07, 0x93, +0x03, 0xF5, 0xF4, 0x9A, 0x91, 0x67, 0xB0, 0x67, +0x55, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x12, 0x59, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0x00, 0x4B, +0xE0, 0x9B, 0x06, 0x92, 0x91, 0x67, 0xB0, 0x67, +0x56, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x55, 0x6E, +0x1C, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x07, 0x93, 0x30, 0xF0, 0x20, 0x6A, 0x91, 0x67, +0x04, 0xD3, 0xB0, 0x67, 0x87, 0x6E, 0xC3, 0xF1, +0xF4, 0x9A, 0x6B, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF5, 0x50, 0x9A, 0x30, 0xF0, 0x21, 0x69, +0x32, 0xF4, 0x18, 0x49, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF2, 0x00, 0x4A, 0xE0, 0x9A, +0x91, 0x67, 0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, +0x12, 0x59, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, +0x00, 0x4B, 0xE0, 0x9B, 0x91, 0x67, 0xB0, 0x67, +0x56, 0x6E, 0x80, 0x18, 0x9F, 0x58, 0x06, 0xD2, +0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF1, 0xF8, 0x9A, 0x91, 0x67, 0xB0, 0x67, +0xDE, 0x6E, 0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF1, 0xF8, 0x9A, 0x01, 0x6B, +0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x00, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, 0xF4, 0x9A, +0x91, 0x67, 0xB0, 0x67, 0x55, 0x6E, 0x80, 0x18, +0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, +0x00, 0x4A, 0x06, 0x93, 0xE0, 0x9A, 0x91, 0x67, +0xB0, 0x67, 0x56, 0x6E, 0x04, 0xD3, 0x80, 0x18, +0x12, 0x59, 0x00, 0x6B, 0x91, 0x67, 0xB0, 0x67, +0x63, 0x6E, 0x18, 0xF0, 0x00, 0x6F, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x06, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x63, 0x6E, 0x1C, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x63, 0x6E, 0x06, 0xF0, 0x00, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x00, 0x6B, +0x04, 0xD3, 0x91, 0x67, 0xB0, 0x67, 0x8A, 0x6E, +0x18, 0x6F, 0x80, 0x18, 0x12, 0x59, 0x91, 0x67, +0x30, 0xF0, 0x21, 0x69, 0x0F, 0x6A, 0xB0, 0x67, +0x00, 0x6E, 0xE0, 0xF3, 0x00, 0x6F, 0x32, 0xF4, +0x18, 0x49, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, +0x04, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x1A, 0x6E, +0x01, 0xF4, 0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x0C, 0x93, 0x80, 0xF0, 0x52, 0xA3, +0x01, 0x72, 0x02, 0x6A, 0x01, 0x60, 0x01, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x1A, 0x6E, 0x0E, 0xF0, +0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x30, 0xF0, 0x21, 0x6C, 0xB0, 0x67, 0x8F, 0x6E, +0x02, 0x6F, 0x30, 0xF0, 0x20, 0x68, 0x01, 0x6A, +0x32, 0xF4, 0x18, 0x4C, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x80, 0xF3, 0x4C, 0x98, 0x14, 0x6C, +0x40, 0xEA, 0x80, 0xF3, 0x4C, 0x98, 0x14, 0x6C, +0x40, 0xEA, 0x80, 0xF3, 0x4C, 0x98, 0x14, 0x6C, +0x40, 0xEA, 0x80, 0xF3, 0x4C, 0x98, 0x14, 0x6C, +0x40, 0xEA, 0x80, 0xF3, 0x4C, 0x98, 0x14, 0x6C, +0x40, 0xEA, 0x06, 0x93, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x1F, 0x6A, 0x6C, 0xEA, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x00, 0x69, 0x0A, 0xD4, +0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF2, 0xE0, 0x9A, 0x30, 0xF0, 0x21, 0x6C, +0xFF, 0x6D, 0x32, 0xF4, 0x18, 0x4C, 0x2C, 0xED, +0x19, 0x6E, 0x30, 0xF0, 0x20, 0x68, 0x80, 0x18, +0x12, 0x59, 0xC0, 0xF3, 0x64, 0x98, 0x08, 0x6A, +0x24, 0x36, 0x01, 0x6D, 0x4D, 0xEE, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, 0x0A, 0x93, +0x80, 0xF0, 0x51, 0xA3, 0x0B, 0x2A, 0x01, 0x6D, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x03, 0xF5, +0xD8, 0x9B, 0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF5, 0xDC, 0x9B, +0x01, 0x6D, 0x63, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF3, 0x04, 0x6C, 0x0E, 0xF0, +0x00, 0x6D, 0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF2, +0xB0, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x03, 0x6E, +0x01, 0x49, 0x40, 0xEA, 0x02, 0x71, 0xB4, 0x61, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, +0x0F, 0x6D, 0x0C, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF5, +0xC0, 0x9B, 0x01, 0x69, 0x2B, 0xE9, 0xB1, 0x67, +0xE3, 0xF3, 0x04, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF5, +0xC4, 0x9B, 0xB1, 0x67, 0xE3, 0xF3, 0x08, 0x6C, +0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF5, 0x48, 0x9A, 0xFF, 0x69, 0x30, 0xF0, +0x21, 0x68, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF2, 0x00, 0x4A, 0xE0, 0x9A, 0x32, 0xF4, +0x18, 0x48, 0xAC, 0xE9, 0x90, 0x67, 0xB1, 0x67, +0x92, 0x6E, 0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x05, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, +0x00, 0x4B, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF5, +0x4C, 0x9A, 0xE0, 0x9B, 0x90, 0x67, 0xB1, 0x67, +0x92, 0x6E, 0x04, 0xD2, 0x00, 0x68, 0x80, 0x18, +0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x14, 0x6C, 0x01, 0x48, 0x40, 0xEA, +0xFF, 0x6A, 0x4C, 0xE8, 0x1E, 0x70, 0xF5, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF5, 0x48, 0x9A, +0x30, 0xF0, 0x21, 0x6C, 0xB1, 0x67, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0xE0, 0x9A, +0x32, 0xF4, 0x18, 0x4C, 0x92, 0x6E, 0x80, 0x18, +0x12, 0x59, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x00, 0x6A, 0x06, 0xD5, +0x06, 0x67, 0x07, 0xD2, 0x40, 0x98, 0x06, 0x93, +0x30, 0xF0, 0x21, 0x69, 0x32, 0xF4, 0x18, 0x49, +0xC0, 0x9B, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF2, 0x00, 0x4A, 0xE0, 0x9A, 0x91, 0x67, +0x00, 0x6D, 0x80, 0x18, 0x12, 0x59, 0x41, 0x98, +0x06, 0x93, 0x91, 0x67, 0x01, 0x6D, 0xC0, 0x9B, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, +0x00, 0x4A, 0xE0, 0x9A, 0x08, 0x48, 0x80, 0x18, +0x12, 0x59, 0x07, 0x93, 0x06, 0x92, 0x01, 0x4B, +0x04, 0x4A, 0x07, 0x73, 0x07, 0xD3, 0x06, 0xD2, +0xD9, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x00, 0x68, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF5, 0x48, 0x9A, 0x30, 0xF0, +0x21, 0x69, 0x32, 0xF4, 0x18, 0x49, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0x00, 0x4A, +0xE0, 0x9A, 0x91, 0x67, 0xB0, 0x67, 0x92, 0x6E, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x05, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0x00, 0x4B, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF5, 0x4C, 0x9A, +0xE0, 0x9B, 0x91, 0x67, 0xB0, 0x67, 0x92, 0x6E, +0x04, 0xD2, 0x00, 0x69, 0x80, 0x18, 0x12, 0x59, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x14, 0x6C, 0x01, 0x49, 0x40, 0xEA, 0xFF, 0x6A, +0x4C, 0xE9, 0x1E, 0x71, 0xF5, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF5, 0x48, 0x9A, 0x30, 0xF0, +0x21, 0x6C, 0xB0, 0x67, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF2, 0xE0, 0x9A, 0x32, 0xF4, +0x18, 0x4C, 0x92, 0x6E, 0x80, 0x18, 0x12, 0x59, +0x01, 0x48, 0xFF, 0x6B, 0x6C, 0xE8, 0x02, 0x70, +0xB6, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x00, 0x69, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF4, 0xBC, 0x9A, 0x02, 0xF7, +0x00, 0x6C, 0x80, 0x18, 0x81, 0x28, 0x20, 0x6B, +0x4C, 0xEB, 0x12, 0x2B, 0x00, 0x68, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, +0x01, 0x48, 0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE8, 0xE0, 0xF1, 0x14, 0x70, 0xF3, 0x61, +0x01, 0x49, 0x0A, 0x71, 0xE4, 0x61, 0x0A, 0x69, +0x51, 0x67, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x68, +0xAC, 0xE8, 0x80, 0x18, 0xF5, 0x1C, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF4, 0xC0, 0x9A, 0x01, 0x69, +0x2B, 0xE9, 0x0D, 0xEE, 0xB1, 0x67, 0x02, 0xF7, +0x00, 0x6C, 0x80, 0x18, 0x96, 0x28, 0xB1, 0x67, +0x02, 0xF7, 0x08, 0x6C, 0x80, 0x18, 0x81, 0x28, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0xF7, 0x1F, 0x68, +0x24, 0x67, 0x0C, 0xD6, 0x0D, 0xD7, 0xAC, 0xE8, +0x38, 0x26, 0x66, 0x67, 0x01, 0x4B, 0x00, 0x6A, +0x09, 0x2B, 0x01, 0x69, 0x2B, 0xE9, 0x80, 0x18, +0xF5, 0x1C, 0x02, 0xF7, 0x04, 0x6C, 0xB1, 0x67, +0x0D, 0x96, 0x1F, 0x10, 0x0C, 0x93, 0x01, 0x6C, +0x66, 0xEA, 0x8C, 0xEB, 0x04, 0x2B, 0x01, 0x4A, +0x20, 0x72, 0xF8, 0x61, 0x00, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x05, 0xD2, 0x80, 0x18, 0x09, 0x1D, +0x0C, 0x93, 0x91, 0x67, 0x01, 0x69, 0x6F, 0xEB, +0x4C, 0xEB, 0x04, 0xD3, 0x80, 0x18, 0xF5, 0x1C, +0x0D, 0x96, 0x05, 0x92, 0x04, 0x93, 0x2B, 0xE9, +0xC4, 0xEA, 0x02, 0xF7, 0x04, 0x6C, 0xB1, 0x67, +0x6D, 0xEE, 0x80, 0x18, 0x96, 0x28, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF4, 0xC4, 0x9A, 0x02, 0xF7, +0x00, 0x6C, 0xB1, 0x67, 0x0D, 0xEE, 0x80, 0x18, +0x96, 0x28, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, +0x04, 0x67, 0x1D, 0x22, 0x01, 0x6D, 0x70, 0x6C, +0xAB, 0xED, 0x80, 0x18, 0x81, 0x28, 0x80, 0xF0, +0x48, 0xD8, 0x90, 0x67, 0x38, 0x6D, 0x80, 0x18, +0x09, 0x1D, 0x80, 0xF0, 0x4C, 0xD8, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF2, 0xAC, 0x9A, 0x70, 0x6C, +0x01, 0x6E, 0x80, 0x18, 0x96, 0x28, 0x90, 0x67, +0x38, 0x6D, 0x1F, 0xF7, 0x00, 0x6E, 0x77, 0x6F, +0x80, 0x18, 0x19, 0x1D, 0x0E, 0x10, 0x01, 0x69, +0x80, 0xF0, 0xEC, 0x98, 0x2B, 0xE9, 0x38, 0x6D, +0xD1, 0x67, 0x80, 0x18, 0x19, 0x1D, 0x80, 0xF0, +0xC8, 0x98, 0x70, 0x6C, 0xB1, 0x67, 0x80, 0x18, +0x96, 0x28, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x4C, 0xED, +0x0A, 0xD4, 0x04, 0xD5, 0x80, 0xF0, 0x72, 0xA4, +0x01, 0x6C, 0x26, 0x67, 0x8E, 0xEB, 0x01, 0x5B, +0x4C, 0xE9, 0x78, 0x67, 0x01, 0x71, 0x64, 0x33, +0x03, 0x61, 0x05, 0x67, 0x14, 0x48, 0x10, 0x10, +0x02, 0x71, 0x03, 0x61, 0x04, 0x90, 0x16, 0x48, +0x0A, 0x10, 0x03, 0x71, 0x03, 0x61, 0x04, 0x90, +0x1A, 0x48, 0x06, 0x10, 0x04, 0x71, 0x00, 0x68, +0x04, 0x61, 0x04, 0x90, 0x1C, 0x48, 0x01, 0xE3, +0x4C, 0xE8, 0x0A, 0x94, 0x01, 0x6D, 0x80, 0x18, +0x3D, 0x1D, 0x4A, 0x29, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0x14, 0x49, +0x91, 0x67, 0x02, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x02, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0xA4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x00, 0x6E, 0xC3, 0xF3, +0x14, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, 0x00, 0x68, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF0, +0xB4, 0x9A, 0xE3, 0xF3, 0x1C, 0x6C, 0x80, 0x18, +0x09, 0x28, 0xFF, 0x6B, 0x4C, 0xEB, 0x14, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x14, 0x6C, 0x01, 0x48, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF0, 0xB4, 0x9A, 0xE3, 0xF3, +0x1C, 0x6C, 0x80, 0x18, 0x09, 0x28, 0xFF, 0x6B, +0x4C, 0xEB, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, +0x01, 0x73, 0x60, 0x60, 0xE0, 0xF3, 0x08, 0x70, +0xE7, 0x61, 0xE0, 0xF3, 0x08, 0x68, 0x5A, 0x10, +0x04, 0x92, 0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, +0x64, 0x99, 0x44, 0x36, 0x08, 0x6A, 0x4D, 0xEE, +0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x40, 0xEB, +0xC0, 0xF3, 0x44, 0x99, 0xC3, 0xF3, 0x0C, 0x6C, +0x3F, 0x6D, 0x09, 0x6E, 0x40, 0xEA, 0x00, 0x30, +0x48, 0x6A, 0x4D, 0xE8, 0xC0, 0xF3, 0x44, 0x99, +0x01, 0x6D, 0xD0, 0x67, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, +0x01, 0x6D, 0xC1, 0x40, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x85, 0xF5, 0x1C, 0x6C, +0xFF, 0x6D, 0x80, 0x18, 0x09, 0x28, 0xFF, 0x6B, +0x4C, 0xEB, 0x00, 0x68, 0x11, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, +0x01, 0x48, 0x40, 0xEA, 0x85, 0xF5, 0x1C, 0x6C, +0xFF, 0x6D, 0x80, 0x18, 0x09, 0x28, 0xFF, 0x6B, +0x4C, 0xEB, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, +0x55, 0x73, 0x05, 0x60, 0xE0, 0xF3, 0x08, 0x70, +0xEA, 0x61, 0xE0, 0xF3, 0x08, 0x68, 0x04, 0x94, +0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, +0x84, 0x36, 0x08, 0x6B, 0x03, 0xF3, 0x00, 0x6C, +0x0F, 0x6D, 0x6D, 0xEE, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0xC3, 0xF3, 0x0C, 0x6C, 0x3F, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x0A, 0x94, 0x00, 0x6D, +0x80, 0x18, 0x3D, 0x1D, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF3, 0x10, 0x6C, +0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xE0, 0xF3, +0x08, 0x6A, 0x0E, 0xEA, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x01, 0x5A, 0x58, 0x67, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x60, 0xF0, 0x5E, 0xAC, +0x24, 0x67, 0x03, 0x2A, 0x80, 0xF0, 0x50, 0xA4, +0x71, 0x22, 0x80, 0x18, 0x52, 0x1B, 0x00, 0x68, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x04, 0x36, 0x08, 0x6B, 0x03, 0xF3, 0x00, 0x6C, +0x0F, 0x6D, 0x6D, 0xEE, 0x40, 0xEA, 0x80, 0xF0, +0x51, 0xA1, 0x0D, 0x2A, 0x30, 0xF0, 0x20, 0x6C, +0x01, 0x6D, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9C, 0xAB, 0xED, 0x63, 0xF3, 0x00, 0x6C, +0x03, 0xF5, 0xD8, 0x9B, 0x0C, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF5, 0xDC, 0x9B, 0x01, 0x6D, +0x63, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x0D, 0xE1, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6D, 0x80, 0xF0, 0xD5, 0xA3, 0xC0, 0xF3, +0x44, 0x9C, 0x43, 0xF4, 0xBC, 0x9D, 0x63, 0xF3, +0x04, 0x6C, 0x40, 0xEA, 0x60, 0xF0, 0xDE, 0xA1, +0x01, 0x6A, 0x44, 0xE8, 0x47, 0xE8, 0x4C, 0xEE, +0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, 0x81, 0x18, +0x91, 0x67, 0xB0, 0x67, 0x03, 0x6E, 0x80, 0x18, +0x59, 0x1D, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9B, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, +0x0C, 0x6E, 0x40, 0xEA, 0xFF, 0x6A, 0x0C, 0xEA, +0x0D, 0x2A, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9C, 0x23, 0xF5, +0xB0, 0x9B, 0x03, 0xF3, 0x04, 0x6C, 0x20, 0xF1, +0xD8, 0xA9, 0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF5, 0xB0, 0x9B, 0x20, 0xF1, 0xDA, 0xA9, +0x43, 0xF3, 0x1C, 0x6C, 0x01, 0x48, 0x40, 0xEA, +0x02, 0x70, 0x92, 0x61, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x00, 0x6A, +0x60, 0xF0, 0x5C, 0xC4, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF2, 0xE0, 0x9A, 0x04, 0x67, 0x30, 0xF0, +0x21, 0x6C, 0x32, 0xF4, 0x18, 0x4C, 0x00, 0x6D, +0x18, 0x6E, 0x80, 0x18, 0x9F, 0x58, 0x80, 0xF0, +0x90, 0xA0, 0xFF, 0x6B, 0x4C, 0xEB, 0x8E, 0xEB, +0x06, 0x2B, 0x90, 0x67, 0x80, 0x18, 0xCD, 0x1D, +0x01, 0x6A, 0x60, 0xF0, 0x5C, 0xC0, 0x60, 0xF0, +0x5C, 0xA0, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x68, 0xAC, 0xEA, 0x04, 0xD2, 0x44, 0x36, +0xC0, 0xF3, 0x44, 0x98, 0x08, 0x6B, 0x6D, 0xEE, +0x0A, 0xD4, 0x0F, 0x6D, 0x03, 0xF3, 0x00, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, +0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, +0x00, 0x69, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, 0xB0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0x7F, 0x49, 0xC0, 0xF3, 0x44, 0x98, +0x2D, 0x49, 0x91, 0x67, 0x3F, 0x6D, 0x09, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, +0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x0C, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, +0x14, 0x6C, 0xF0, 0x6D, 0x0F, 0x6E, 0x40, 0xEA, +0x04, 0x93, 0x12, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF5, 0xB0, 0x9B, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF5, 0xD4, 0x9B, +0x03, 0xF3, 0x04, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, 0x11, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF5, 0xB0, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF5, 0xD4, 0x9B, 0x43, 0xF3, 0x1C, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF3, +0x00, 0x6C, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, +0xB4, 0x9B, 0x01, 0x6E, 0x40, 0xEA, 0x0A, 0x93, +0x80, 0xF0, 0x52, 0xA3, 0x01, 0x72, 0x41, 0x61, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF5, 0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x69, 0x2B, 0xE9, 0xE3, 0xF3, 0x18, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, 0x02, 0xF3, +0x10, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF5, 0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF5, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF3, 0x18, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, 0x36, 0xF4, +0x08, 0x6E, 0x40, 0xEA, 0x04, 0x92, 0x01, 0x6E, +0x30, 0xF0, 0x20, 0x6B, 0xC4, 0xEA, 0x00, 0xF7, +0xC0, 0x36, 0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF3, +0x14, 0x6C, 0xB1, 0x67, 0x43, 0xF5, 0x64, 0x9B, +0x42, 0x10, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF5, 0xC8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0xE3, 0xF3, +0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF5, 0xCC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF5, +0xD0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF3, +0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF5, 0xD4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF3, +0x18, 0x6C, 0xB1, 0x67, 0x36, 0xF4, 0x08, 0x6E, +0x40, 0xEA, 0x04, 0x93, 0x01, 0x6E, 0xC0, 0xF3, +0x44, 0x98, 0xC4, 0xEB, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF5, 0x78, 0x9B, 0x00, 0xF7, 0xC0, 0x36, +0xE3, 0xF3, 0x14, 0x6C, 0xB1, 0x67, 0x6D, 0xEE, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x68, 0x43, 0xF4, 0x3C, 0x9A, 0x04, 0x96, +0xC0, 0xF3, 0x44, 0x98, 0x08, 0x6B, 0x6D, 0xEE, +0xB1, 0x67, 0xA3, 0xF3, 0x14, 0x6C, 0x40, 0xEA, +0x0A, 0x94, 0x04, 0x95, 0x00, 0x6E, 0x80, 0x18, +0x59, 0x1D, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0xE3, 0xF3, 0x14, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x04, 0x92, 0x08, 0x6B, 0x03, 0xF3, 0x00, 0x6C, +0x44, 0x36, 0xC0, 0xF3, 0x44, 0x98, 0x6D, 0xEE, +0x0F, 0x6D, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF5, 0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF3, 0x0C, 0x69, 0x91, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, +0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x0C, 0x6E, +0x40, 0xEA, 0x04, 0x92, 0x05, 0x2A, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x04, 0x6C, 0x04, 0x10, +0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF3, 0x1C, 0x6C, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF5, 0xB0, 0x9B, +0x5B, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0xA4, 0x9B, +0xC0, 0xF3, 0x44, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF2, 0xAC, 0x9A, 0xE3, 0xF3, 0x1C, 0x6C, +0x80, 0x18, 0x09, 0x28, 0xFF, 0xF7, 0x1F, 0x6B, +0x80, 0xF3, 0x0E, 0x6C, 0x6C, 0xEA, 0x98, 0xEA, +0x0A, 0x6C, 0x12, 0xE8, 0x02, 0x30, 0x0A, 0x30, +0x9B, 0xE8, 0x01, 0x2C, 0xE5, 0xE8, 0x10, 0xEC, +0x05, 0x5C, 0x12, 0xE8, 0x6C, 0xE8, 0x02, 0x61, +0x01, 0x48, 0x6C, 0xE8, 0x04, 0x92, 0x07, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x03, 0xF3, 0x04, 0x6C, 0x06, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x43, 0xF3, +0x1C, 0x6C, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF5, +0xB0, 0x9B, 0xD0, 0x67, 0x40, 0xEA, 0x04, 0x92, +0x0A, 0x93, 0x7F, 0x4A, 0x1D, 0x4A, 0x44, 0x32, +0x49, 0xE3, 0x00, 0xCA, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x68, 0xAC, 0xE8, 0xB0, 0x67, 0x03, 0x6E, +0x24, 0x67, 0x80, 0x18, 0x59, 0x1D, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x04, 0x36, +0x08, 0x6B, 0x6D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, +0x0F, 0x6D, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF2, 0xB0, 0x9B, 0x23, 0xF3, 0x00, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x60, 0xF0, 0x7E, 0xA9, +0x01, 0x6A, 0x44, 0xE8, 0x6C, 0xEA, 0x47, 0xE8, +0x04, 0x22, 0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, +0x21, 0x1E, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x68, 0xCC, 0xE8, +0xB0, 0x67, 0x02, 0x6E, 0x24, 0x67, 0x80, 0x18, +0x59, 0x1D, 0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x08, 0x6B, 0x04, 0x36, +0x6D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, +0xAC, 0x9A, 0x03, 0xF3, 0x08, 0x6C, 0x80, 0x18, +0x09, 0x28, 0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF5, 0x40, 0x9A, 0x30, 0xF0, 0x21, 0x6C, +0xB0, 0x67, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF2, 0xE0, 0x9A, 0x00, 0x6E, 0x32, 0xF4, +0x18, 0x4C, 0x80, 0x18, 0x12, 0x59, 0x91, 0x67, +0xB0, 0x67, 0x80, 0x18, 0xDA, 0x19, 0x06, 0x93, +0x07, 0x92, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x6D, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x25, 0x67, +0x4C, 0xEE, 0x4C, 0xE9, 0xEC, 0xEA, 0x01, 0x72, +0x04, 0x67, 0x04, 0xD6, 0x17, 0x61, 0xB1, 0x67, +0x04, 0x6E, 0x80, 0x18, 0x59, 0x1D, 0x90, 0x67, +0xB1, 0x67, 0x80, 0x18, 0x0D, 0x1B, 0x00, 0xF6, +0x00, 0x5A, 0x04, 0x61, 0x04, 0x93, 0x02, 0x6A, +0x23, 0x2B, 0x25, 0x10, 0x04, 0x94, 0x00, 0xF3, +0x00, 0x5A, 0x78, 0x67, 0x01, 0x5C, 0x58, 0x67, +0x1E, 0x2B, 0x1A, 0x10, 0x19, 0x2A, 0xB1, 0x67, +0x00, 0x6E, 0x80, 0x18, 0xC6, 0x1A, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF5, 0x64, 0x9B, 0x43, 0xEB, +0x11, 0x60, 0x42, 0x34, 0x96, 0x34, 0x80, 0x18, +0xF5, 0x15, 0x03, 0x6B, 0x78, 0xEA, 0x03, 0x6A, +0x12, 0xEB, 0xFE, 0xF0, 0x02, 0x4B, 0xE0, 0xF3, +0x09, 0x5B, 0x05, 0x60, 0xFA, 0x5B, 0x02, 0x61, +0x00, 0x6A, 0x01, 0x10, 0x04, 0x6A, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xF7, 0x63, 0x11, 0x62, 0x10, 0xD1, 0x0F, 0xD0, +0xFF, 0x6A, 0x25, 0x67, 0x4C, 0xEE, 0x4C, 0xEF, +0x4C, 0xE9, 0x00, 0x6A, 0x12, 0xD4, 0x0C, 0xD6, +0x0A, 0xD7, 0x07, 0xD2, 0x08, 0xD2, 0x09, 0xD2, +0x06, 0xD2, 0x02, 0x67, 0x06, 0x5A, 0x80, 0xF0, +0x1C, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x48, 0x32, +0xE2, 0xF3, 0x1C, 0x4B, 0x49, 0xE3, 0x40, 0x9A, +0x00, 0xEA, 0x30, 0xF0, 0x21, 0x68, 0x32, 0xF4, +0x18, 0x48, 0x90, 0x67, 0xB1, 0x67, 0x56, 0x6E, +0x1F, 0x6F, 0x80, 0x18, 0x9F, 0x58, 0x90, 0x67, +0xB1, 0x67, 0x00, 0x6E, 0xE0, 0xF3, 0x00, 0x6F, +0x0B, 0xD2, 0x80, 0x18, 0x9F, 0x58, 0x0A, 0x94, +0x06, 0xD2, 0x0D, 0x2C, 0x12, 0x94, 0x08, 0x96, +0xB1, 0x67, 0x01, 0x6F, 0x80, 0x18, 0x25, 0x1F, +0x07, 0x2A, 0x0C, 0x92, 0x04, 0x22, 0x01, 0x6B, +0x09, 0xD3, 0x0A, 0x92, 0x01, 0x10, 0x05, 0x6A, +0x06, 0x94, 0xFF, 0x6B, 0x0B, 0x90, 0x6C, 0xEC, +0x06, 0xD4, 0x07, 0x94, 0x6C, 0xE8, 0x01, 0x4C, +0x6C, 0xEC, 0x07, 0xD4, 0x60, 0x10, 0x06, 0x92, +0x0F, 0x5A, 0x12, 0x60, 0x06, 0x92, 0xFF, 0x6B, +0xF4, 0x4A, 0x6C, 0xEA, 0x03, 0x5A, 0x54, 0x60, +0x00, 0x6A, 0x30, 0xF0, 0x21, 0x6C, 0x04, 0xD2, +0x32, 0xF4, 0x18, 0x4C, 0xB1, 0x67, 0xC2, 0x67, +0x13, 0x10, 0x06, 0x93, 0x0C, 0x5B, 0x02, 0x60, +0x0C, 0x6A, 0x07, 0x10, 0x06, 0x92, 0xFF, 0x6B, +0xF4, 0x4A, 0x6C, 0xEA, 0x03, 0x5A, 0x40, 0x60, +0x0F, 0x6A, 0x30, 0xF0, 0x21, 0x6C, 0x04, 0xD2, +0x32, 0xF4, 0x18, 0x4C, 0xB1, 0x67, 0x00, 0x6E, +0xE0, 0xF3, 0x00, 0x6F, 0x80, 0x18, 0x12, 0x59, +0x35, 0x10, 0x3B, 0x20, 0xFF, 0x6A, 0xFE, 0x48, +0x30, 0xF0, 0x21, 0x6C, 0x4C, 0xE8, 0x32, 0xF4, +0x18, 0x4C, 0xB1, 0x67, 0x56, 0x6E, 0x1F, 0x6F, +0x04, 0xD0, 0x80, 0x18, 0x12, 0x59, 0x00, 0x6C, +0x08, 0xD4, 0x44, 0x67, 0x24, 0x10, 0x1F, 0x70, +0x02, 0x61, 0x1F, 0x68, 0x26, 0x10, 0xFF, 0x6A, +0x03, 0x48, 0x30, 0xF0, 0x21, 0x6C, 0x4C, 0xE8, +0x32, 0xF4, 0x18, 0x4C, 0xB1, 0x67, 0x56, 0x6E, +0x1F, 0x6F, 0x04, 0xD0, 0x80, 0x18, 0x12, 0x59, +0x00, 0x6A, 0x08, 0xD2, 0x10, 0x10, 0x12, 0x94, +0xB1, 0x67, 0x01, 0x6E, 0x80, 0x18, 0x59, 0x1D, +0x12, 0x94, 0x08, 0x96, 0xB1, 0x67, 0x00, 0x6F, +0x80, 0x18, 0x25, 0x1F, 0x0A, 0x22, 0x03, 0x10, +0x01, 0x6B, 0x08, 0xD3, 0x00, 0x6A, 0x09, 0x94, +0x04, 0x2C, 0x07, 0x93, 0x06, 0x5B, 0x7F, 0xF7, +0x01, 0x61, 0x50, 0x67, 0x11, 0x97, 0x10, 0x91, +0x0F, 0x90, 0x09, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, +0xFF, 0x68, 0xAC, 0xE8, 0xB0, 0x67, 0x24, 0x67, +0x80, 0x18, 0xB9, 0x1B, 0x30, 0xF0, 0x21, 0x6C, +0x1F, 0x6F, 0x00, 0x6E, 0x32, 0xF4, 0x18, 0x4C, +0xB0, 0x67, 0x0A, 0xD2, 0x80, 0x18, 0x9F, 0x58, +0x91, 0x67, 0xB0, 0x67, 0x09, 0xD2, 0x80, 0x18, +0x89, 0x1C, 0x91, 0x67, 0xB0, 0x67, 0x04, 0x6E, +0x80, 0x18, 0x59, 0x1D, 0x91, 0x67, 0xB0, 0x67, +0x80, 0x18, 0x0D, 0x1B, 0x91, 0x67, 0xB0, 0x67, +0x80, 0x18, 0x20, 0x1B, 0x0D, 0x22, 0x91, 0x67, +0xB0, 0x67, 0x80, 0x18, 0x89, 0x1C, 0x91, 0x67, +0xB0, 0x67, 0x04, 0x6E, 0x80, 0x18, 0x59, 0x1D, +0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, 0x20, 0x1B, +0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, 0x7A, 0x1B, +0x91, 0x67, 0xB0, 0x67, 0x00, 0x6E, 0x01, 0x6F, +0x07, 0xD2, 0x80, 0x18, 0x48, 0x1F, 0x91, 0x67, +0xB0, 0x67, 0x08, 0xD2, 0x80, 0x18, 0xA9, 0x1A, +0x08, 0x93, 0x00, 0x6C, 0x06, 0xD4, 0x43, 0xEB, +0x06, 0x61, 0x4B, 0xE3, 0x06, 0xD2, 0x06, 0x94, +0xFF, 0x6A, 0x4C, 0xEC, 0x06, 0xD4, 0x06, 0x92, +0x30, 0xF0, 0x21, 0x6C, 0x32, 0xF4, 0x18, 0x4C, +0xB0, 0x67, 0x56, 0x6E, 0x1F, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x91, 0x67, 0xB0, 0x67, +0x80, 0x18, 0x7A, 0x1B, 0x07, 0x93, 0x43, 0xEB, +0x02, 0x60, 0x6B, 0xE2, 0x02, 0x10, 0x07, 0x94, +0x4B, 0xE4, 0xFF, 0x6B, 0x6C, 0xEA, 0x01, 0xE1, +0x20, 0xF1, 0x5C, 0xC0, 0x09, 0x93, 0x0A, 0x94, +0x0F, 0x97, 0x0E, 0x91, 0x8B, 0xE3, 0x06, 0x93, +0x0D, 0x90, 0x49, 0xE3, 0xFF, 0x6B, 0x6C, 0xEA, +0x08, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x68, 0xAC, 0xE8, +0xB0, 0x67, 0x24, 0x67, 0x80, 0x18, 0xA4, 0x1F, +0xA2, 0x67, 0x91, 0x67, 0xD0, 0x67, 0x04, 0xD2, +0x80, 0x18, 0x05, 0x1F, 0x04, 0x96, 0x91, 0x67, +0xA2, 0x67, 0xF0, 0x67, 0x80, 0x18, 0xB5, 0x19, +0x09, 0xE1, 0x80, 0xF0, 0x53, 0xA2, 0x07, 0x22, +0x60, 0xF0, 0x7E, 0xA9, 0x01, 0x6A, 0x44, 0xE8, +0x6D, 0xEA, 0x60, 0xF0, 0x5E, 0xC9, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x00, 0x6D, +0x04, 0x67, 0x80, 0x18, 0xDF, 0x1F, 0x90, 0x67, +0x01, 0x6D, 0x80, 0x18, 0xDF, 0x1F, 0x90, 0x67, +0x00, 0x6D, 0x80, 0x18, 0xEC, 0x1E, 0x90, 0x67, +0x01, 0x6D, 0x80, 0x18, 0xEC, 0x1E, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xDF, 0x63, 0x41, 0x62, 0x40, 0xD1, 0x3F, 0xD0, +0x30, 0xF0, 0x20, 0x6D, 0x24, 0x67, 0x22, 0xF4, +0x10, 0x4D, 0x2B, 0x04, 0x48, 0x6E, 0x00, 0x18, +0x3C, 0xD6, 0x30, 0xF0, 0x20, 0x6D, 0x04, 0x04, +0x02, 0xF4, 0x14, 0x4D, 0x1C, 0x6E, 0x00, 0x18, +0x3C, 0xD6, 0x52, 0x99, 0x40, 0xA2, 0x04, 0x2A, +0x91, 0x67, 0x80, 0x18, 0x0E, 0x1E, 0x3C, 0x2A, +0x91, 0x67, 0x80, 0x18, 0x52, 0x1B, 0x04, 0x00, +0x12, 0x6F, 0x91, 0x67, 0x2B, 0x05, 0x19, 0x06, +0x80, 0x18, 0x6B, 0x1B, 0x0B, 0x06, 0xB0, 0x67, +0x91, 0x67, 0x80, 0x18, 0x76, 0x19, 0x91, 0x67, +0x80, 0x18, 0x23, 0x19, 0x91, 0x67, 0x01, 0x6D, +0x80, 0x18, 0x56, 0x16, 0x01, 0x6D, 0x91, 0x67, +0x80, 0x18, 0x30, 0x16, 0x91, 0x67, 0x80, 0x18, +0x4F, 0x1C, 0x91, 0x67, 0x80, 0x18, 0x9B, 0x1B, +0x91, 0x67, 0x80, 0x18, 0xF2, 0x1F, 0x91, 0x67, +0x80, 0x18, 0xAD, 0x18, 0x91, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x30, 0x16, 0x91, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x56, 0x16, 0xB0, 0x67, 0x0B, 0x06, +0x91, 0x67, 0x80, 0x18, 0xB1, 0x1C, 0x91, 0x67, +0x80, 0x18, 0xCB, 0x1C, 0x91, 0x67, 0x2B, 0x05, +0x19, 0x06, 0x12, 0x6F, 0x80, 0x18, 0x11, 0x16, +0x41, 0x97, 0x40, 0x91, 0x3F, 0x90, 0x21, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x69, 0x2C, 0xED, +0x01, 0x75, 0x58, 0x67, 0x0C, 0xD4, 0x06, 0xD2, +0x80, 0xF0, 0x0C, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF2, 0x20, 0x9A, 0x00, 0x6D, 0xC5, 0x67, +0xF1, 0x67, 0x80, 0x18, 0x9F, 0x58, 0x30, 0xF0, +0x20, 0x68, 0x0C, 0x94, 0x6B, 0xF0, 0x08, 0x48, +0xF1, 0x67, 0x43, 0xF6, 0x54, 0xD8, 0x01, 0x6D, +0x00, 0x6E, 0x80, 0x18, 0x9F, 0x58, 0x43, 0xF6, +0x58, 0xD8, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF0, 0x0C, 0x6C, 0x03, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x00, 0x6E, 0x08, 0xF1, 0x0C, 0x6C, 0x03, 0x6D, +0x40, 0xEA, 0x01, 0x6D, 0x21, 0xF0, 0x04, 0x6C, +0xAB, 0xED, 0x80, 0x18, 0x09, 0x28, 0x07, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, +0x63, 0xF4, 0xB0, 0x9A, 0x21, 0xF0, 0x04, 0x6C, +0x03, 0x6E, 0x40, 0xEB, 0x06, 0x93, 0x0C, 0x94, +0x00, 0x6D, 0xC5, 0x67, 0xF1, 0x67, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x06, 0x92, 0x0C, 0x94, +0xF1, 0x67, 0x01, 0x6D, 0x00, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0xC0, 0xF3, 0x44, 0x98, +0x07, 0x96, 0x01, 0x6D, 0x21, 0xF0, 0x04, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x0C, 0x94, 0x00, 0x68, +0x80, 0x18, 0x8C, 0x59, 0x0C, 0x94, 0x80, 0x18, +0xA4, 0x55, 0x1B, 0x2A, 0xE0, 0xF3, 0x09, 0x70, +0x0D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, +0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF6, +0x84, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x00, 0x6A, 0x91, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x32, 0x6C, 0x01, 0x48, +0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, +0xE1, 0x17, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x63, 0xF4, 0x04, 0x6C, 0x08, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF1, 0x6C, 0x9A, 0xFE, 0x6A, 0x01, 0x6D, +0x80, 0xA3, 0xC5, 0x67, 0x8C, 0xEA, 0x40, 0xC3, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF4, 0x04, 0x6C, +0x40, 0xEA, 0x6C, 0x10, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x00, 0x6E, +0x23, 0xF4, 0x04, 0x6C, 0x40, 0xEA, 0x00, 0x18, +0x5E, 0xED, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, +0x6C, 0x9A, 0x01, 0x6C, 0x40, 0xA3, 0x2C, 0xEA, +0x8D, 0xEA, 0x2C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x30, 0xF0, +0x20, 0x69, 0x6B, 0xF0, 0x08, 0x49, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6E, 0x63, 0xF4, +0x04, 0x6C, 0x08, 0x6D, 0x40, 0xEA, 0x01, 0x6D, +0x21, 0xF0, 0x04, 0x6C, 0xAB, 0xED, 0x80, 0x18, +0x09, 0x28, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, +0xB0, 0x9B, 0x06, 0xD2, 0xC0, 0xF3, 0x44, 0x98, +0x21, 0xF0, 0x04, 0x6C, 0x03, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0x00, 0x4B, +0xE0, 0x9B, 0x43, 0xF6, 0x54, 0x99, 0x0C, 0x94, +0x00, 0x6D, 0xC5, 0x67, 0x04, 0xD2, 0x80, 0x18, +0x12, 0x59, 0x43, 0xF6, 0x58, 0x99, 0x0C, 0x94, +0x01, 0x6D, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF2, 0x00, 0x4A, 0xE0, 0x9A, 0x00, 0x6E, +0x80, 0x18, 0x12, 0x59, 0xC0, 0xF3, 0x44, 0x98, +0x06, 0x96, 0x01, 0x6D, 0xAB, 0xED, 0x21, 0xF0, +0x04, 0x6C, 0x40, 0xEA, 0x0C, 0x94, 0x80, 0x18, +0xA3, 0x59, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0x6D, +0xC5, 0x67, 0x03, 0xF0, 0x0C, 0x6C, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0x6D, 0x08, 0xF1, +0x0C, 0x6C, 0xC5, 0x67, 0x40, 0xEA, 0x0C, 0x94, +0x80, 0x18, 0x5D, 0x59, 0x01, 0x6A, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xA9, 0xF1, 0x08, 0x4A, 0x66, 0xAA, +0xEF, 0xF7, 0x1F, 0x68, 0x01, 0x4B, 0x66, 0xCA, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF6, 0x58, 0x9A, +0x02, 0x6B, 0x40, 0xAA, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x0F, 0xF6, 0x5C, 0xAA, 0x0E, 0xEA, +0x6C, 0xEA, 0x04, 0x22, 0x80, 0x18, 0xA4, 0x79, +0x00, 0x18, 0x6B, 0xD7, 0x02, 0x6B, 0x50, 0x67, +0x6C, 0xEA, 0x08, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x0F, 0xF6, 0x5C, 0xAA, 0x6C, 0xEA, 0x02, 0x2A, +0x80, 0x18, 0xA4, 0x79, 0x30, 0xF0, 0x20, 0x6A, +0x0F, 0xF6, 0x1C, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0xA9, 0xF1, 0x16, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF5, 0x50, 0x9A, 0x04, 0x6C, 0x40, 0xEA, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, +0x20, 0x6C, 0x0B, 0xF1, 0x10, 0x4C, 0x07, 0x6E, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x80, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x01, 0x6B, 0x8C, 0xEB, 0xE3, 0xF5, +0xBE, 0xA2, 0x64, 0x34, 0x03, 0x6B, 0x6B, 0xEB, +0xAC, 0xEB, 0x8D, 0xEB, 0xE3, 0xF5, 0x7E, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x2B, 0xF1, +0x1F, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xC0, 0xF0, +0x97, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, 0x0C, 0x23, +0xC0, 0xF0, 0x79, 0xA2, 0xFF, 0x73, 0x08, 0x60, +0xC0, 0xF0, 0x98, 0xA2, 0x03, 0xF6, 0x7A, 0xA2, +0x6D, 0xE4, 0x03, 0x4B, 0x03, 0xF6, 0x70, 0xCA, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0xA0, 0xA4, 0x40, 0xF1, 0xFE, 0xA3, 0x02, 0x6A, +0x01, 0x6E, 0x4B, 0xEA, 0xCC, 0xED, 0xEC, 0xEA, +0xAD, 0xEA, 0x40, 0xF1, 0x5E, 0xC3, 0xA1, 0xA4, +0xCC, 0xEA, 0x40, 0xF1, 0xBF, 0xC3, 0xFF, 0x6D, +0x0D, 0x22, 0x61, 0xA4, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF3, 0x44, 0x9A, 0x74, 0x33, 0x40, 0x6C, +0x4D, 0xE3, 0x40, 0xA3, 0xAC, 0xEA, 0x8D, 0xEA, +0xAC, 0xEA, 0x0A, 0x10, 0x61, 0xA4, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF3, 0x44, 0x9A, 0x74, 0x33, +0x4D, 0xE3, 0x80, 0xA3, 0xBF, 0x6A, 0x8C, 0xEA, +0x40, 0xC3, 0x20, 0xE8, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF1, 0x4C, 0x9A, 0x60, 0xA2, 0x03, 0x6A, +0x6C, 0xEA, 0x10, 0x6B, 0x64, 0xEA, 0xFF, 0x6A, +0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF6, +0x4C, 0x9A, 0x04, 0xD3, 0x40, 0x9A, 0x05, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x48, 0x9A, +0x00, 0x9A, 0x05, 0x92, 0x0A, 0xEA, 0xC0, 0xF0, +0x04, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xA0, 0xF0, 0x64, 0x9A, 0x02, 0x6C, +0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x30, 0xF0, +0x20, 0x69, 0x6B, 0xF0, 0x08, 0x49, 0x22, 0xF6, +0x4A, 0xA9, 0x00, 0xF7, 0x00, 0x72, 0x07, 0x60, +0x22, 0xF6, 0x6A, 0xA1, 0x22, 0xF6, 0x8B, 0xA1, +0xAF, 0x43, 0x8E, 0xED, 0x13, 0x2D, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x68, 0x9A, 0xFF, 0x6C, +0x01, 0x4C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x60, 0xDA, 0x97, 0x10, 0x30, 0xF0, 0x20, 0x6D, +0x63, 0xF1, 0xBC, 0x9D, 0x7F, 0x6E, 0xB5, 0xE0, +0xE0, 0xA5, 0xCC, 0xEF, 0x45, 0x2F, 0x00, 0xF4, +0x00, 0x72, 0x80, 0xF0, 0x0A, 0x60, 0xAC, 0x43, +0x8E, 0xED, 0x80, 0xF0, 0x06, 0x25, 0x00, 0xF5, +0x01, 0x72, 0x80, 0xF0, 0x02, 0x60, 0x00, 0xF6, +0x02, 0x72, 0x7F, 0x60, 0x00, 0xF7, 0x03, 0x72, +0x7C, 0x60, 0x00, 0xF5, 0x00, 0x72, 0x79, 0x60, +0xFD, 0x4B, 0x6E, 0xEC, 0x76, 0x24, 0x30, 0xF0, +0x20, 0x69, 0x6B, 0xF0, 0x08, 0x49, 0x22, 0xF6, +0x4A, 0xA9, 0x00, 0xF6, 0x01, 0x72, 0x6D, 0x60, +0x00, 0xF7, 0x02, 0x72, 0x6A, 0x60, 0x00, 0xF6, +0x00, 0x72, 0x67, 0x60, 0x22, 0xF6, 0x6A, 0xA1, +0x22, 0xF6, 0x8B, 0xA1, 0xFE, 0x4B, 0x8E, 0xEB, +0x60, 0x23, 0x00, 0xF7, 0x01, 0x72, 0x5D, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF6, 0x50, 0x9A, +0x30, 0xF0, 0x20, 0x6D, 0x63, 0xF1, 0xBC, 0x9D, +0x49, 0xE0, 0x94, 0x34, 0x60, 0xAA, 0x91, 0xE1, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0x22, 0xF5, 0x0A, 0x4C, 0xB5, 0xE0, 0x12, 0x10, +0x40, 0xA5, 0x4C, 0xEE, 0x01, 0x76, 0x1E, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF6, 0x50, 0x9A, +0x94, 0x34, 0x91, 0xE1, 0x49, 0xE0, 0x60, 0xAA, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0x22, 0xF5, 0x0A, 0x4C, 0xFF, 0x6E, 0x6C, 0xEE, +0x40, 0xEA, 0x22, 0xF6, 0x4B, 0xA1, 0x08, 0x6B, +0x01, 0x4A, 0x22, 0xF6, 0x4B, 0xC1, 0x22, 0xF6, +0x4B, 0xA1, 0x6E, 0xEA, 0x13, 0x2A, 0x22, 0xF6, +0x4B, 0xC1, 0x10, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x88, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF2, 0x6C, 0x9B, 0x40, 0x9C, 0x6D, 0xEA, +0x40, 0xDC, 0xA3, 0xF3, 0x40, 0x99, 0x6D, 0xEA, +0xA3, 0xF3, 0x40, 0xD9, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF6, 0x54, 0x9A, 0x04, 0x93, 0x40, 0x9A, +0x0E, 0xEA, 0x61, 0xE0, 0x05, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF1, 0x44, 0x9A, 0x00, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x48, 0x9A, +0x00, 0xDA, 0x05, 0x92, 0x4A, 0xE8, 0x5F, 0xF7, +0x06, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFE, 0x63, 0x03, 0xD1, +0x02, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xA3, 0xF3, 0x60, 0x9A, 0x02, 0x6D, +0xAC, 0xEB, 0x40, 0xF1, 0x1A, 0x2B, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF1, 0x70, 0x9B, 0x80, 0xA3, +0x0F, 0x6B, 0x8C, 0xEB, 0x05, 0x23, 0xA0, 0xF0, +0x84, 0x9A, 0xAD, 0xEC, 0xA0, 0xF0, 0x84, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0x0B, 0xF2, 0x48, 0xA2, +0xFF, 0x4A, 0x00, 0xD2, 0x44, 0x11, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xA0, 0xF1, +0x80, 0xAA, 0x00, 0xF7, 0x00, 0x74, 0x05, 0x60, +0xA0, 0xF1, 0x01, 0xA2, 0x00, 0x94, 0x8A, 0xE8, +0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, +0x68, 0x9A, 0xFF, 0x6C, 0x01, 0x4C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xA3, 0xF3, 0x60, 0x9A, +0x8D, 0xEB, 0xA3, 0xF3, 0x60, 0xDA, 0x25, 0x11, +0x30, 0xF0, 0x20, 0x6C, 0xE9, 0xF1, 0xDE, 0xA4, +0xE3, 0x67, 0xFF, 0x6D, 0xE7, 0xEE, 0xC7, 0x67, +0x01, 0x6F, 0xEC, 0xEE, 0xA0, 0xF0, 0x0A, 0x26, +0x0C, 0x35, 0x60, 0xF1, 0x04, 0x4D, 0xB5, 0xE2, +0x00, 0x6A, 0x30, 0xF0, 0x20, 0x6E, 0xE9, 0xF1, +0xFE, 0xA6, 0xFF, 0x6C, 0x1F, 0xF7, 0x00, 0x69, +0x8C, 0xEF, 0x74, 0x4F, 0xE8, 0x37, 0xFD, 0xE2, +0x2C, 0xEF, 0x02, 0xF0, 0x00, 0x77, 0x08, 0x60, +0xE9, 0xF1, 0xFE, 0xA6, 0x8C, 0xEF, 0x74, 0x4F, +0xE8, 0x37, 0xFD, 0xE2, 0x2C, 0xEF, 0x0F, 0x2F, +0x30, 0xF0, 0x20, 0x6C, 0xE9, 0xF1, 0x3E, 0xA4, +0xFF, 0x6C, 0x30, 0xF0, 0x20, 0x6E, 0x8C, 0xE9, +0x74, 0x49, 0x28, 0x31, 0xE2, 0x67, 0x25, 0xE2, +0xA3, 0xF0, 0xC0, 0x9E, 0x0B, 0x10, 0xE9, 0xF1, +0x3E, 0xA6, 0x30, 0xF0, 0x20, 0x6E, 0xA3, 0xF0, +0xC4, 0x9E, 0x8C, 0xE9, 0x74, 0x49, 0x28, 0x31, +0xE2, 0x67, 0x25, 0xE2, 0xD9, 0xE1, 0xC0, 0xA6, +0x0C, 0x31, 0xCC, 0xEC, 0x30, 0xF0, 0x20, 0x6E, +0x6B, 0xF0, 0x08, 0x4E, 0xD9, 0xE1, 0xFD, 0xE6, +0x60, 0xF1, 0x80, 0xC7, 0x30, 0xF0, 0x20, 0x6E, +0xE9, 0xF1, 0xFE, 0xA6, 0xFF, 0x6C, 0x1F, 0xF7, +0x00, 0x69, 0x8C, 0xEF, 0x7C, 0x4F, 0xE8, 0x37, +0xFD, 0xE2, 0x2C, 0xEF, 0x02, 0xF0, 0x00, 0x77, +0x08, 0x60, 0xE9, 0xF1, 0xFE, 0xA6, 0x8C, 0xEF, +0x7C, 0x4F, 0xE8, 0x37, 0xFD, 0xE2, 0x2C, 0xEF, +0x0E, 0x2F, 0x30, 0xF0, 0x20, 0x6C, 0xE9, 0xF1, +0xDE, 0xA4, 0xFF, 0x6C, 0x30, 0xF0, 0x20, 0x6F, +0x8C, 0xEE, 0x7C, 0x4E, 0xC8, 0x36, 0xD9, 0xE2, +0xA3, 0xF0, 0xE0, 0x9F, 0x0A, 0x10, 0xE9, 0xF1, +0xDE, 0xA6, 0x30, 0xF0, 0x20, 0x6F, 0xA3, 0xF0, +0xE4, 0x9F, 0x8C, 0xEE, 0x7C, 0x4E, 0xC8, 0x36, +0xD9, 0xE2, 0xF9, 0xE6, 0xC0, 0xA6, 0x01, 0x4A, +0x04, 0x72, 0xCC, 0xEC, 0x80, 0xC5, 0x01, 0x4D, +0x8C, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE9, 0xF1, +0xBE, 0xA2, 0x01, 0x6C, 0xC4, 0x67, 0xC4, 0xED, +0xCF, 0xED, 0xE9, 0xF1, 0xDE, 0xA2, 0xAC, 0xEB, +0xFF, 0x6D, 0x84, 0xEE, 0x30, 0xF0, 0x20, 0x6E, +0xA3, 0xF1, 0xD0, 0x9E, 0xAC, 0xEC, 0x08, 0x6F, +0x80, 0xC6, 0xE9, 0xF1, 0x9E, 0xA2, 0xAC, 0xEC, +0x01, 0x4C, 0xAC, 0xEC, 0xE9, 0xF1, 0x9E, 0xC2, +0xE9, 0xF1, 0xBE, 0xA2, 0x03, 0x6C, 0xAC, 0xEC, +0xE9, 0xF1, 0x9E, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xA0, 0xF1, 0x81, 0xA2, +0x01, 0x4C, 0xA0, 0xF1, 0x81, 0xC2, 0xA0, 0xF1, +0x81, 0xA2, 0xEE, 0xEC, 0x70, 0x2C, 0xA0, 0xF1, +0x81, 0xC2, 0x6D, 0x10, 0x30, 0xF0, 0x20, 0x6E, +0x83, 0xF1, 0x08, 0x9E, 0x02, 0x6F, 0xC0, 0x98, +0xED, 0xEE, 0xC0, 0xD8, 0xA3, 0xF3, 0xC0, 0x9A, +0xA3, 0xF3, 0x6C, 0xC2, 0xE9, 0xF1, 0x7E, 0xA4, +0xED, 0xEE, 0xA3, 0xF3, 0xC0, 0xDA, 0xA3, 0xF3, +0x6D, 0xC2, 0xE9, 0xF1, 0x5E, 0xA4, 0x1F, 0xF7, +0x00, 0x6B, 0xAC, 0xEA, 0x74, 0x4A, 0x48, 0x32, +0x6C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x07, 0x60, +0xE9, 0xF1, 0x5E, 0xA4, 0xAC, 0xEA, 0x74, 0x4A, +0x48, 0x32, 0x6C, 0xEA, 0x0E, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xE9, 0xF1, 0x7E, 0xA2, 0x30, 0xF0, +0x20, 0x6C, 0x83, 0xF6, 0x98, 0x9C, 0xFF, 0x6A, +0x4C, 0xEB, 0x8D, 0xE3, 0x68, 0x33, 0xA0, 0xA3, +0x0A, 0x10, 0xE9, 0xF1, 0x5E, 0xA4, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF6, 0x7C, 0x9B, 0xAC, 0xEA, +0x69, 0xE2, 0x48, 0x32, 0x40, 0xA2, 0x4C, 0xED, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x0E, 0xF4, 0xB6, 0xC2, 0xE9, 0xF1, 0x5E, 0xA3, +0xE9, 0xF1, 0x9E, 0xA3, 0xFF, 0x6A, 0x1F, 0xF7, +0x00, 0x6D, 0x4C, 0xEC, 0x88, 0x34, 0xC0, 0xF1, +0x11, 0x4C, 0xAC, 0xEC, 0x0B, 0x2C, 0xE9, 0xF1, +0x7E, 0xA3, 0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x6C, +0x4C, 0xEB, 0x74, 0x4B, 0x68, 0x33, 0xA3, 0xF6, +0x80, 0x9C, 0x09, 0x10, 0xE9, 0xF1, 0x7E, 0xA3, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF6, 0x84, 0x9C, +0x4C, 0xEB, 0x74, 0x4B, 0x68, 0x33, 0x8D, 0xE3, +0x60, 0xA3, 0x6C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x0E, 0xF4, 0x57, 0xC3, 0x02, 0x10, 0xBF, 0xF6, +0x1A, 0x2B, 0x03, 0x91, 0x02, 0x90, 0x02, 0x63, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF0, 0x58, 0x9A, 0xFF, 0x68, 0x60, 0xA2, +0x6C, 0xE8, 0x2B, 0x20, 0x00, 0x6B, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x01, 0x6C, 0x80, 0x69, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF6, 0x48, 0x9A, 0x20, 0x6B, +0x0E, 0xE9, 0x60, 0xC2, 0x0B, 0x29, 0x00, 0x18, +0x07, 0xC9, 0x80, 0x6C, 0x00, 0x6D, 0x80, 0x18, +0x20, 0x01, 0x30, 0xF0, 0x20, 0x6A, 0x8D, 0xF6, +0x3E, 0xC2, 0x0F, 0x10, 0x20, 0x70, 0x0D, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6C, 0xA0, 0xF0, 0x64, 0x9A, +0x03, 0xF2, 0x94, 0x9C, 0x8D, 0xEB, 0xA0, 0xF0, +0x64, 0xDA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF0, 0x70, 0x9B, 0x10, 0xF0, 0x31, 0x6A, +0x51, 0xF1, 0x0D, 0x4A, 0x40, 0xDB, 0x00, 0x1C, +0xAC, 0x39, 0x80, 0x18, 0xE5, 0x76, 0x05, 0x6C, +0x01, 0x6D, 0x80, 0x18, 0x20, 0x01, 0x20, 0xBA, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0xFF, 0x17, 0x00, 0x65, 0xDD, 0x63, 0x45, 0x62, +0x44, 0xD1, 0x43, 0xD0, 0x00, 0x6A, 0x06, 0xD2, +0x07, 0xD2, 0x01, 0x6A, 0x7D, 0x67, 0x4B, 0xEA, +0x20, 0xF0, 0x40, 0xC3, 0x01, 0x6A, 0x20, 0xF0, +0x42, 0xC3, 0x08, 0x6A, 0x20, 0xF0, 0x43, 0xC3, +0x60, 0xA4, 0x7F, 0x6A, 0x6C, 0xEA, 0x01, 0x72, +0x7E, 0x30, 0x00, 0xF1, 0x04, 0x61, 0x48, 0xA4, +0xBD, 0x67, 0x20, 0xF0, 0x44, 0xC5, 0x41, 0xA4, +0x20, 0xF0, 0x45, 0xC5, 0x42, 0xA4, 0x20, 0xF0, +0x46, 0xC5, 0x46, 0xA4, 0x20, 0xF0, 0x48, 0xC5, +0x43, 0xA4, 0x20, 0xF0, 0x47, 0xC5, 0x47, 0xA4, +0x20, 0xF0, 0x49, 0xC5, 0x20, 0xF0, 0x44, 0xA5, +0xE0, 0xF0, 0x07, 0x2A, 0x7D, 0x67, 0x20, 0xF0, +0x47, 0xA3, 0x20, 0xF0, 0x66, 0xA3, 0x40, 0x32, +0x6D, 0xEA, 0x03, 0x72, 0x0A, 0x60, 0x04, 0x52, +0x03, 0x60, 0x02, 0x72, 0x5E, 0x60, 0xD9, 0x10, +0x08, 0x72, 0x2C, 0x60, 0xB7, 0x72, 0x43, 0x60, +0xD4, 0x10, 0x06, 0x20, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF4, 0x40, 0x9A, 0x08, 0x04, 0x40, 0xEA, +0x9D, 0x67, 0x20, 0xF0, 0xE9, 0xA4, 0x20, 0xF0, +0x48, 0xA4, 0xFF, 0xF7, 0x1F, 0x6B, 0xE0, 0x37, +0x5D, 0xE7, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, +0x50, 0x9A, 0x30, 0xF0, 0x20, 0x6D, 0x05, 0x6C, +0x6C, 0xEF, 0xAD, 0xF6, 0x04, 0x4D, 0x00, 0xF2, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x07, 0xF3, 0x90, 0xA2, +0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x07, 0xF3, +0x70, 0xC2, 0xCA, 0x10, 0xBD, 0x67, 0x30, 0xF0, +0x20, 0x6B, 0x10, 0x6A, 0x20, 0xF0, 0x43, 0xC5, +0x30, 0xF0, 0x21, 0x69, 0x80, 0xF2, 0x4C, 0x9B, +0x52, 0xF2, 0x00, 0x49, 0x0B, 0x04, 0xB1, 0x67, +0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x80, 0xF2, 0x4C, 0x9C, 0xA4, 0x41, 0x0C, 0x04, +0x04, 0x6E, 0x40, 0xEA, 0x92, 0x10, 0x08, 0x20, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, +0x08, 0x04, 0x40, 0xEA, 0x00, 0x18, 0xB3, 0xDA, +0xBD, 0x67, 0x20, 0xF0, 0x89, 0xA5, 0x20, 0xF0, +0x48, 0xA5, 0x80, 0x34, 0x51, 0xE4, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xEC, 0x80, 0x18, 0x8A, 0x01, +0x9B, 0x10, 0x10, 0x6A, 0x7D, 0x67, 0x20, 0xF0, +0x43, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, +0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x69, 0x0B, 0x04, +0x40, 0x9A, 0x07, 0x05, 0x04, 0x6E, 0x06, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, 0x50, 0x9A, +0x40, 0x9A, 0x07, 0xD2, 0x80, 0xF2, 0x4C, 0x99, +0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x99, 0x0C, 0x04, +0x06, 0x05, 0x04, 0x6E, 0x40, 0xEA, 0x06, 0x20, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, +0x08, 0x04, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x68, +0x6B, 0xF0, 0x08, 0x48, 0xE7, 0xF1, 0x74, 0xA0, +0x01, 0x6A, 0xFF, 0x69, 0x6C, 0xEA, 0x42, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF4, 0x50, 0x9A, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, +0x74, 0x9A, 0x80, 0x6C, 0x8B, 0xEC, 0x40, 0xA3, +0x2C, 0xEA, 0x8D, 0xEA, 0x2C, 0xEA, 0x40, 0xC3, +0x40, 0xA3, 0x08, 0x6C, 0x2C, 0xEA, 0x8D, 0xEA, +0x2C, 0xEA, 0x40, 0xC3, 0xE7, 0xF1, 0x60, 0xA0, +0x04, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x23, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, 0x4C, 0x9A, +0xE7, 0xF1, 0xCC, 0x98, 0x10, 0xF0, 0x32, 0x6C, +0x40, 0x9A, 0x32, 0xF7, 0x11, 0x4C, 0x00, 0x6D, +0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, +0x50, 0x9A, 0x01, 0x6F, 0x40, 0x9A, 0x5B, 0xE6, +0x07, 0xD2, 0xE0, 0xF3, 0x08, 0x6A, 0x5B, 0xEE, +0x01, 0x2A, 0xE5, 0xE8, 0x00, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, +0x12, 0xEE, 0x40, 0xEA, 0x2D, 0x10, 0x80, 0x18, +0xCC, 0x65, 0x2A, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF4, 0x54, 0x9A, 0x40, 0xEA, 0xE7, 0xF1, +0xB2, 0xA8, 0x00, 0x6C, 0x80, 0x18, 0x08, 0x65, +0x1F, 0x10, 0x1E, 0x20, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF4, 0x40, 0x9A, 0x17, 0x10, 0x18, 0x2A, +0x69, 0xA4, 0xBD, 0x67, 0x20, 0xF0, 0x64, 0xC5, +0x68, 0xA4, 0x20, 0xF0, 0x46, 0xC5, 0x20, 0xF0, +0x47, 0xC5, 0x20, 0xF0, 0x65, 0xC5, 0x46, 0xA4, +0x20, 0xF0, 0x48, 0xC5, 0x67, 0xA4, 0x08, 0x20, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, +0x20, 0xF0, 0x69, 0xC5, 0x08, 0x04, 0x40, 0xEA, +0x45, 0x97, 0x44, 0x91, 0x43, 0x90, 0x23, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0x68, 0x44, 0xFA, 0x4B, +0x4C, 0xEB, 0x04, 0x5B, 0x03, 0x60, 0x80, 0x18, +0x5C, 0x42, 0x48, 0x10, 0x0D, 0x74, 0x22, 0x60, +0x0E, 0x5C, 0x10, 0x60, 0x08, 0x74, 0x53, 0x60, +0x09, 0x5C, 0x05, 0x60, 0x02, 0x74, 0x1F, 0x60, +0x03, 0x74, 0x3E, 0x60, 0x71, 0x10, 0x0A, 0x74, +0x56, 0x60, 0x0A, 0x5C, 0x4F, 0x61, 0x0C, 0x74, +0x1A, 0x60, 0x6A, 0x10, 0x16, 0x74, 0x1C, 0x60, +0x17, 0x5C, 0x05, 0x60, 0x12, 0x74, 0x5A, 0x60, +0x13, 0x74, 0x4E, 0x60, 0x61, 0x10, 0x24, 0x74, +0x51, 0x60, 0xB7, 0x74, 0x57, 0x60, 0x18, 0x74, +0x22, 0x60, 0x5A, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xF4, 0x48, 0x9A, 0x34, 0x10, 0x85, 0x67, +0x80, 0x18, 0x48, 0x65, 0x1B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF4, 0x44, 0x9A, 0x2B, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0x07, 0xF3, 0x90, 0xA3, 0x01, 0x6E, 0xCC, 0xEC, +0x4C, 0xEC, 0x58, 0x2C, 0xE7, 0xF1, 0x74, 0xA3, +0xCC, 0xEB, 0x4C, 0xEB, 0x53, 0x2B, 0x85, 0x67, +0x80, 0x18, 0xAF, 0x6E, 0x03, 0x10, 0x85, 0x67, +0x80, 0x18, 0xF3, 0x6E, 0x62, 0x67, 0x4B, 0x10, +0x30, 0xF0, 0x21, 0x6B, 0x72, 0xF3, 0x78, 0xA3, +0x02, 0x6C, 0x6C, 0xEC, 0x4C, 0xEC, 0x12, 0x6B, +0x42, 0x2C, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, +0x54, 0x9A, 0x40, 0xEA, 0xEF, 0x17, 0x30, 0xF0, +0x20, 0x6A, 0x60, 0xF4, 0x58, 0x9A, 0x85, 0x67, +0x40, 0xEA, 0xE8, 0x17, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xF4, 0x5C, 0x9A, 0xF8, 0x17, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF4, 0x40, 0x9A, 0xF3, 0x17, +0x87, 0x45, 0x01, 0x4C, 0x80, 0x18, 0x4C, 0x68, +0x00, 0x6B, 0x25, 0x10, 0x85, 0x67, 0x80, 0x18, +0x2A, 0x72, 0xD4, 0x17, 0x85, 0x67, 0x80, 0x18, +0x91, 0x29, 0xD0, 0x17, 0x80, 0x18, 0xEA, 0x07, +0x00, 0x6B, 0x19, 0x2A, 0x13, 0x6B, 0x17, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x68, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF1, 0x90, 0x9C, +0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xA3, 0xF3, +0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, 0x60, 0xDA, +0xFF, 0x6B, 0x01, 0x10, 0x10, 0x6B, 0x05, 0x97, +0x43, 0x67, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, +0x20, 0x6C, 0x2B, 0xF1, 0x03, 0x4C, 0x07, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xA0, 0xF0, 0x7F, 0xA2, 0xA0, 0xF0, +0xBB, 0xA2, 0x00, 0x6C, 0x63, 0xF6, 0x78, 0xC2, +0x7F, 0x6B, 0xAC, 0xEB, 0x63, 0xF6, 0x9A, 0xC2, +0x04, 0x2B, 0x01, 0x6B, 0x63, 0xF6, 0x7B, 0xC2, +0x02, 0x10, 0x63, 0xF6, 0x9B, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xA0, 0xF0, +0xDB, 0xA2, 0x63, 0xF6, 0x99, 0xA2, 0x7F, 0x6B, +0xCC, 0xEB, 0x6E, 0xEC, 0xFF, 0x6D, 0x07, 0x24, +0xA0, 0xF0, 0x9E, 0xA2, 0x96, 0x34, 0xAC, 0xEC, +0x00, 0x18, 0x04, 0xD2, 0x07, 0x10, 0x06, 0x23, +0xA0, 0xF0, 0x9E, 0xA2, 0x96, 0x34, 0xAC, 0xEC, +0x00, 0x18, 0x8C, 0xD1, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF1, 0x70, 0x9B, 0x63, 0xF6, 0x98, 0x9A, +0x8C, 0xEB, 0x04, 0x73, 0x0C, 0x61, 0xE3, 0xF5, +0x7F, 0xA2, 0x04, 0x6C, 0x8C, 0xEB, 0x07, 0x23, +0x01, 0x6B, 0x63, 0xF6, 0x7A, 0xC2, 0x01, 0x6C, +0x00, 0x6D, 0x00, 0x18, 0x3E, 0xC8, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xA0, 0xF0, +0x9B, 0xA2, 0x7F, 0x6B, 0x8C, 0xEB, 0x63, 0xF6, +0x79, 0xC2, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x08, 0xD4, 0x41, 0xA4, 0x24, 0x67, 0x06, 0xD2, +0x60, 0xA4, 0x02, 0x6A, 0x6C, 0xEA, 0x06, 0x93, +0x07, 0xD3, 0x02, 0x22, 0x82, 0xA4, 0x07, 0xD4, +0x06, 0x90, 0x34, 0x10, 0x08, 0x93, 0x01, 0x6D, +0x90, 0x67, 0x40, 0xA3, 0x4C, 0xED, 0x00, 0x18, +0xA4, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x5C, 0x9A, 0x90, 0x67, 0x40, 0xEA, 0x0F, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x58, 0x9A, +0x90, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF3, 0x44, 0x9A, 0x14, 0x33, 0x4D, 0xE3, +0x80, 0xA3, 0xBF, 0x6A, 0x12, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x54, 0x9A, 0x90, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, +0x44, 0x9A, 0x14, 0x33, 0xFF, 0x6C, 0x4D, 0xE3, +0x40, 0xA3, 0x8C, 0xEA, 0x40, 0x6C, 0x8D, 0xEA, +0xFF, 0x6C, 0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x48, +0xFF, 0x6A, 0x4C, 0xE8, 0x07, 0x92, 0x03, 0xEA, +0xC9, 0x60, 0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, +0x08, 0x48, 0xC0, 0xF0, 0x9F, 0xA0, 0x06, 0x92, +0x8E, 0xEA, 0x1E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x5C, 0x9A, 0x40, 0xEA, 0x18, 0x2A, +0x00, 0x18, 0x95, 0xED, 0xA0, 0xF0, 0x9E, 0xA0, +0x96, 0x34, 0x00, 0x18, 0x24, 0xC6, 0xE3, 0xF5, +0x7C, 0xA0, 0x05, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xE3, 0xF5, 0x7D, 0xA0, 0xE3, 0xF5, 0x5C, 0xC0, +0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x03, 0x6B, +0x6B, 0xEB, 0x6C, 0xEA, 0xE3, 0xF5, 0x5D, 0xC0, +0x43, 0xA1, 0x07, 0x6B, 0x01, 0x6C, 0x4C, 0xEB, +0x40, 0xA1, 0x8C, 0xEA, 0x1C, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xA4, 0xF5, +0xD8, 0xA2, 0x84, 0xEB, 0x1F, 0x6F, 0xCA, 0x35, +0x8F, 0xEC, 0xEC, 0xED, 0x8C, 0xED, 0x7D, 0x6C, +0x8B, 0xEC, 0xA8, 0x35, 0xCC, 0xEC, 0xAD, 0xEC, +0xA4, 0xF5, 0x98, 0xC2, 0xC0, 0xF0, 0x9E, 0xA2, +0x8E, 0xEB, 0x1E, 0x2B, 0x01, 0x6B, 0x6B, 0xEB, +0xA4, 0xF5, 0x79, 0xC2, 0x19, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xA4, 0xF5, +0xD8, 0xA2, 0x1F, 0x6F, 0x84, 0xEB, 0xCA, 0x35, +0xEC, 0xED, 0xAD, 0xEC, 0xEC, 0xEC, 0x88, 0x35, +0x7D, 0x6C, 0x8B, 0xEC, 0xCC, 0xEC, 0xAD, 0xEC, +0xA4, 0xF5, 0x98, 0xC2, 0xC0, 0xF0, 0x9E, 0xA2, +0x8E, 0xEB, 0x02, 0x2B, 0xA4, 0xF5, 0x99, 0xC2, +0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, +0xA4, 0xF5, 0x78, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, +0x1A, 0x22, 0x03, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xA4, 0xF5, 0x58, 0xC0, 0x00, 0x18, 0x0A, 0xE5, +0x04, 0xD2, 0x04, 0x93, 0xA4, 0xF5, 0x5C, 0x98, +0x6E, 0xEA, 0x03, 0x22, 0x04, 0x94, 0x00, 0x18, +0x2B, 0xE5, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xA4, 0xF5, 0x98, 0xA2, 0x02, 0x6B, +0x8D, 0xEB, 0xA4, 0xF5, 0x78, 0xC2, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, +0x4C, 0xEC, 0x68, 0x44, 0xC8, 0x4B, 0x4C, 0xEB, +0x20, 0x5B, 0x05, 0x67, 0x03, 0x60, 0x80, 0x18, +0x67, 0x46, 0x91, 0x11, 0x2F, 0x74, 0x00, 0xF1, +0x1B, 0x60, 0x30, 0x5C, 0x5D, 0x60, 0x1D, 0x74, +0xE0, 0xF0, 0x0A, 0x60, 0x1E, 0x5C, 0x2D, 0x60, +0x14, 0x74, 0x80, 0xF1, 0x04, 0x60, 0x15, 0x5C, +0x12, 0x60, 0x09, 0x74, 0xA0, 0xF0, 0x1C, 0x60, +0x0A, 0x5C, 0x06, 0x60, 0xA0, 0xF0, 0x0C, 0x24, +0x01, 0x74, 0xA0, 0xF0, 0x0D, 0x60, 0x64, 0x11, +0x0B, 0x74, 0xA0, 0xF0, 0x15, 0x60, 0x10, 0x74, +0xA0, 0xF0, 0x16, 0x60, 0x5D, 0x11, 0x17, 0x74, +0xA0, 0xF0, 0x1E, 0x60, 0x18, 0x5C, 0x07, 0x60, +0x15, 0x74, 0xA0, 0xF0, 0x11, 0x60, 0x16, 0x74, +0xA0, 0xF0, 0x12, 0x60, 0x51, 0x11, 0x19, 0x74, +0xA0, 0xF0, 0x1A, 0x60, 0x19, 0x5C, 0xA0, 0xF0, +0x13, 0x61, 0x1C, 0x74, 0xA0, 0xF0, 0x18, 0x60, +0x47, 0x11, 0x24, 0x74, 0xC0, 0xF0, 0x0C, 0x60, +0x25, 0x5C, 0x13, 0x60, 0x20, 0x74, 0xA0, 0xF0, +0x1F, 0x60, 0x21, 0x5C, 0x07, 0x60, 0x1E, 0x74, +0xA0, 0xF0, 0x16, 0x60, 0x1F, 0x74, 0xA0, 0xF0, +0x0F, 0x60, 0x36, 0x11, 0x21, 0x74, 0x40, 0xF1, +0x06, 0x60, 0x23, 0x74, 0x40, 0xF1, 0x03, 0x60, +0x2F, 0x11, 0x2B, 0x74, 0xA0, 0xF0, 0x1C, 0x60, +0x2C, 0x5C, 0x07, 0x60, 0x25, 0x74, 0x20, 0xF1, +0x1A, 0x60, 0x27, 0x74, 0xA0, 0xF0, 0x10, 0x60, +0x23, 0x11, 0x2D, 0x74, 0xA0, 0xF0, 0x18, 0x60, +0x2E, 0x5C, 0xA0, 0xF0, 0x19, 0x60, 0xB0, 0x10, +0x6C, 0x74, 0xE0, 0xF0, 0x1D, 0x60, 0x6D, 0x5C, +0x2E, 0x60, 0x63, 0x74, 0xE0, 0xF0, 0x04, 0x60, +0x64, 0x5C, 0x13, 0x60, 0x60, 0x74, 0xA0, 0xF0, +0x17, 0x60, 0x61, 0x5C, 0x07, 0x60, 0x30, 0x74, +0xA0, 0xF0, 0x0E, 0x60, 0x31, 0x74, 0x80, 0xF0, +0x0B, 0x60, 0x06, 0x11, 0x61, 0x74, 0xC0, 0xF0, +0x0B, 0x60, 0x62, 0x74, 0xC0, 0xF0, 0x0C, 0x60, +0xFF, 0x10, 0x66, 0x74, 0xC0, 0xF0, 0x10, 0x60, +0x67, 0x5C, 0x07, 0x60, 0x64, 0x74, 0xA0, 0xF0, +0x03, 0x60, 0x65, 0x74, 0xA0, 0xF0, 0x04, 0x60, +0xF3, 0x10, 0x68, 0x74, 0xC0, 0xF0, 0x0C, 0x60, +0x68, 0x5C, 0xC0, 0xF0, 0x05, 0x61, 0x69, 0x74, +0xC0, 0xF0, 0x0A, 0x60, 0xE9, 0x10, 0x72, 0x74, +0xC0, 0xF0, 0x0E, 0x60, 0x73, 0x5C, 0x13, 0x60, +0x6F, 0x74, 0x80, 0xF0, 0x1D, 0x60, 0x70, 0x5C, +0x07, 0x60, 0x6D, 0x74, 0x80, 0xF0, 0x10, 0x60, +0x6E, 0x74, 0x80, 0xF0, 0x11, 0x60, 0xD8, 0x10, +0x70, 0x74, 0x80, 0xF0, 0x15, 0x60, 0x71, 0x74, +0x80, 0xF0, 0x16, 0x60, 0xD1, 0x10, 0xC3, 0x74, +0xC0, 0xF0, 0x0A, 0x60, 0xC4, 0x5C, 0x06, 0x60, +0xBA, 0x74, 0xA0, 0xF0, 0x15, 0x60, 0xBB, 0x74, +0x13, 0x60, 0xC6, 0x10, 0xCD, 0x74, 0xA0, 0xF0, +0x17, 0x60, 0xD1, 0x74, 0xA0, 0xF0, 0x18, 0x60, +0xCA, 0x74, 0xA0, 0xF0, 0x0D, 0x60, 0xBC, 0x10, +0x85, 0x67, 0x80, 0x18, 0xD0, 0x20, 0xCB, 0x10, +0x85, 0x67, 0x80, 0x18, 0x96, 0x23, 0xC7, 0x10, +0x85, 0x67, 0x00, 0x18, 0x5B, 0xF1, 0xC3, 0x10, +0x85, 0x67, 0x80, 0x18, 0x0B, 0x00, 0xBF, 0x10, +0x85, 0x67, 0x80, 0x18, 0x85, 0x62, 0xBB, 0x10, +0x85, 0x67, 0x80, 0x18, 0x13, 0x64, 0xB7, 0x10, +0x85, 0x67, 0x80, 0x18, 0xAE, 0x63, 0xB3, 0x10, +0x85, 0x67, 0x80, 0x18, 0xC6, 0x63, 0xAF, 0x10, +0x85, 0x67, 0x80, 0x18, 0x58, 0x6B, 0xAB, 0x10, +0x85, 0x67, 0x80, 0x18, 0x9D, 0x6A, 0xA7, 0x10, +0x85, 0x67, 0x80, 0x18, 0xD2, 0x63, 0xA3, 0x10, +0x85, 0x67, 0x80, 0x18, 0x9E, 0x6A, 0x9F, 0x10, +0x85, 0x67, 0x80, 0x18, 0x9F, 0x6A, 0x9B, 0x10, +0x85, 0x67, 0x00, 0x18, 0xB9, 0xDB, 0x97, 0x10, +0x85, 0x67, 0x00, 0x18, 0x9F, 0xDB, 0x93, 0x10, +0x85, 0x67, 0x80, 0x18, 0x64, 0x23, 0x8F, 0x10, +0x85, 0x67, 0x80, 0x18, 0xD8, 0x20, 0x8B, 0x10, +0x85, 0x67, 0x80, 0x18, 0x96, 0x62, 0x87, 0x10, +0x85, 0x67, 0x80, 0x18, 0x8D, 0x62, 0x83, 0x10, +0x85, 0x67, 0x00, 0x18, 0xF0, 0xDB, 0x7F, 0x10, +0x85, 0x67, 0x00, 0x18, 0xA2, 0xC1, 0x7B, 0x10, +0x85, 0x67, 0x80, 0x18, 0xE1, 0x20, 0x77, 0x10, +0x85, 0x67, 0x80, 0x18, 0xF8, 0x26, 0x73, 0x10, +0x85, 0x67, 0x80, 0x18, 0xBF, 0x27, 0x6F, 0x10, +0x85, 0x67, 0x80, 0x18, 0xF4, 0x27, 0x6B, 0x10, +0x85, 0x67, 0x80, 0x18, 0xB4, 0x5E, 0x67, 0x10, +0x85, 0x67, 0x80, 0x18, 0xC9, 0x5E, 0x63, 0x10, +0x85, 0x67, 0x80, 0x18, 0xCA, 0x5E, 0x5F, 0x10, +0x85, 0x67, 0x80, 0x18, 0xB4, 0x61, 0x5B, 0x10, +0x85, 0x67, 0x80, 0x18, 0xD7, 0x5E, 0x57, 0x10, +0x85, 0x67, 0x80, 0x18, 0xE6, 0x5E, 0x53, 0x10, +0x85, 0x67, 0x80, 0x18, 0xF2, 0x5E, 0x4F, 0x10, +0x85, 0x67, 0x80, 0x18, 0x20, 0x5F, 0x4B, 0x10, +0x85, 0x67, 0x80, 0x18, 0xAC, 0x61, 0x47, 0x10, +0x85, 0x67, 0x80, 0x18, 0xA7, 0x61, 0x43, 0x10, +0x85, 0x67, 0x80, 0x18, 0xA2, 0x61, 0x3F, 0x10, +0x85, 0x67, 0x80, 0x18, 0x9D, 0x61, 0x3B, 0x10, +0x85, 0x67, 0x80, 0x18, 0x91, 0x61, 0x37, 0x10, +0x85, 0x67, 0x80, 0x18, 0x8C, 0x61, 0x33, 0x10, +0x85, 0x67, 0x80, 0x18, 0x2C, 0x61, 0x2F, 0x10, +0x85, 0x67, 0x80, 0x18, 0x27, 0x61, 0x2B, 0x10, +0x85, 0x67, 0x80, 0x18, 0x22, 0x61, 0x27, 0x10, +0x85, 0x67, 0x80, 0x18, 0x86, 0x00, 0x23, 0x10, +0x85, 0x67, 0x00, 0x18, 0x7A, 0xDB, 0x1F, 0x10, +0x85, 0x67, 0x80, 0x18, 0xF4, 0x20, 0x1B, 0x10, +0x85, 0x67, 0x00, 0x18, 0xFE, 0xF2, 0x17, 0x10, +0x85, 0x67, 0x80, 0x18, 0x68, 0x63, 0x13, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x68, 0x9A, +0x01, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x60, 0xDA, 0x0E, 0x6A, 0x01, 0x10, 0x00, 0x6A, +0x40, 0xC0, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, +0x08, 0x48, 0xA0, 0xF1, 0x40, 0xA0, 0xA0, 0xF1, +0x61, 0xA0, 0x4E, 0xEB, 0x29, 0x23, 0x67, 0x42, +0x25, 0x4B, 0x6C, 0x33, 0x0D, 0xE3, 0x4C, 0x32, +0x80, 0xA3, 0x60, 0xF1, 0xA1, 0x42, 0xB5, 0xE0, +0x80, 0x18, 0x00, 0x24, 0xA0, 0xF1, 0x40, 0xA0, +0x01, 0x4A, 0xA0, 0xF1, 0x40, 0xC0, 0xA0, 0xF1, +0x60, 0xA0, 0xA0, 0xF1, 0x41, 0xA0, 0x6E, 0xEA, +0x06, 0x22, 0xA0, 0xF0, 0x44, 0x98, 0x02, 0x6B, +0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xA0, 0xF1, +0x60, 0xA2, 0x08, 0x6C, 0x8E, 0xEB, 0x02, 0x2B, +0xA0, 0xF1, 0x60, 0xC2, 0x80, 0x18, 0x7F, 0x21, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, 0x22, 0xF6, +0x6A, 0xA0, 0x7F, 0x6C, 0xA0, 0xF0, 0xA4, 0x43, +0xB4, 0x35, 0x09, 0xE5, 0xA0, 0xF0, 0x4A, 0xA2, +0x8C, 0xEA, 0x20, 0x2A, 0x74, 0x33, 0x09, 0xE3, +0x22, 0xF5, 0x92, 0xA2, 0xA2, 0x67, 0x22, 0xF5, +0x13, 0x4D, 0x80, 0x18, 0x00, 0x24, 0x22, 0xF6, +0x4A, 0xA0, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF6, +0x98, 0x9C, 0x54, 0x33, 0x0D, 0xE3, 0x22, 0xF5, +0xB0, 0xA3, 0x54, 0x32, 0x41, 0xE0, 0xA0, 0xC4, +0x22, 0xF5, 0x91, 0xA3, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF6, 0x7C, 0x9B, 0x80, 0xC3, 0x22, 0xF5, +0x8A, 0x40, 0x34, 0x10, 0x01, 0x72, 0x34, 0x61, +0x74, 0x33, 0x0D, 0xE3, 0x22, 0xF5, 0x4B, 0xA3, +0xFF, 0x72, 0x0E, 0x61, 0xB5, 0xE0, 0x22, 0xF5, +0x8C, 0xA3, 0x7F, 0x4D, 0x2B, 0x4D, 0x80, 0x18, +0x11, 0x23, 0x22, 0xF6, 0x6A, 0xA0, 0x74, 0x33, +0x01, 0xE3, 0x22, 0xF5, 0x52, 0xC0, 0x04, 0x10, +0x01, 0x6A, 0x4B, 0xEA, 0x22, 0xF5, 0x52, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x22, 0xF6, 0x6A, 0xA2, 0x30, 0xF0, 0x20, 0x6D, +0xC3, 0xF6, 0xB8, 0x9D, 0x74, 0x34, 0x51, 0xE4, +0x22, 0xF5, 0xD0, 0xA4, 0x74, 0x33, 0x69, 0xE2, +0xC0, 0xC5, 0x22, 0xF5, 0xB1, 0xA4, 0x30, 0xF0, +0x20, 0x6C, 0xC3, 0xF6, 0x9C, 0x9C, 0xA0, 0xC4, +0x22, 0xF5, 0x8A, 0x42, 0x80, 0x18, 0x73, 0x22, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, 0x22, 0xF6, +0x6A, 0xA0, 0x22, 0xF6, 0x4B, 0xA0, 0x6E, 0xEA, +0x42, 0x22, 0xA0, 0xF6, 0x42, 0xA8, 0x09, 0xF6, +0x00, 0x72, 0x10, 0x60, 0xA0, 0xF6, 0x82, 0xA0, +0xA0, 0xF6, 0x63, 0xA0, 0xAE, 0x44, 0x6E, 0xED, +0x09, 0x25, 0x09, 0xF7, 0x01, 0x72, 0x06, 0x60, +0x09, 0xF7, 0x00, 0x72, 0x03, 0x60, 0xFF, 0x4C, +0x8E, 0xEB, 0x0D, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0xA0, 0xF0, 0x44, 0x9B, +0x04, 0x6C, 0x8D, 0xEA, 0x02, 0x6C, 0x8D, 0xEA, +0xA0, 0xF0, 0x44, 0xDB, 0x20, 0x10, 0x80, 0x18, +0xF0, 0x24, 0x22, 0xF6, 0x4A, 0xA0, 0x01, 0x4A, +0x22, 0xF6, 0x4A, 0xC0, 0x22, 0xF6, 0x6A, 0xA0, +0x22, 0xF6, 0x4B, 0xA0, 0x6E, 0xEA, 0x06, 0x22, +0xA0, 0xF0, 0x44, 0x98, 0x02, 0x6B, 0x6D, 0xEA, +0xA0, 0xF0, 0x44, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x22, 0xF6, 0x6A, 0xA2, +0x08, 0x6C, 0x8E, 0xEB, 0x02, 0x2B, 0x22, 0xF6, +0x6A, 0xC2, 0x80, 0x18, 0x0B, 0x21, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0x63, 0x01, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF6, 0x68, 0x9B, 0x30, 0xF0, 0x20, 0x68, +0xE3, 0xF6, 0x0C, 0x98, 0xE0, 0x9B, 0xFF, 0x6A, +0x4C, 0xEC, 0x0C, 0xEF, 0x08, 0x5C, 0x4C, 0xED, +0x4C, 0xEE, 0xE0, 0xDB, 0x46, 0x60, 0xB0, 0x75, +0x2E, 0x61, 0xB2, 0x76, 0x13, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF6, 0xB0, 0x9A, 0x01, 0x6A, +0x44, 0xEC, 0xC0, 0x9D, 0x00, 0xF6, 0x40, 0x34, +0xCD, 0xEC, 0x80, 0xDD, 0xC0, 0x9D, 0x40, 0x34, +0x80, 0x34, 0x8F, 0xEC, 0xCC, 0xEC, 0x80, 0xDD, +0x80, 0x9B, 0x4E, 0x10, 0xB1, 0x76, 0x80, 0xF0, +0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF6, +0xB0, 0x9A, 0x01, 0x6A, 0x44, 0xEC, 0xC0, 0x9D, +0x00, 0xF6, 0x40, 0x34, 0xCD, 0xEC, 0x80, 0xDD, +0xC0, 0x9D, 0x40, 0x34, 0x80, 0x34, 0x8F, 0xEC, +0xCC, 0xEC, 0x80, 0xDD, 0x80, 0x9B, 0x4F, 0xEA, +0x8C, 0xEA, 0x40, 0xDB, 0x7B, 0x10, 0xA0, 0x75, +0x7D, 0x61, 0xA1, 0x76, 0x08, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF6, 0x50, 0x9A, 0x01, 0x6B, +0x64, 0xEC, 0xA0, 0x9A, 0x51, 0x10, 0xA2, 0x76, +0x6F, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF6, +0x50, 0x9A, 0x01, 0x6B, 0x64, 0xEC, 0xA0, 0x9A, +0x5A, 0x10, 0xE8, 0x44, 0x4C, 0xEF, 0x08, 0x5F, +0xE0, 0x6A, 0x65, 0x60, 0xB0, 0x75, 0x35, 0x61, +0xB2, 0x76, 0x18, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF6, 0x54, 0x9A, 0x01, 0x6E, 0xA6, 0x67, +0x00, 0x9A, 0xA4, 0xEF, 0xE5, 0x67, 0x00, 0xF6, +0xA0, 0x35, 0x0D, 0xED, 0xA0, 0xDA, 0xA0, 0x9A, +0xE0, 0x37, 0xE0, 0x37, 0xEF, 0xEF, 0xAC, 0xEF, +0xE0, 0xDA, 0x40, 0x9B, 0xC4, 0xEC, 0x86, 0x67, +0x4D, 0xEC, 0x19, 0x10, 0xB1, 0x76, 0x44, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF6, 0x54, 0x9A, +0x01, 0x6E, 0xA6, 0x67, 0x00, 0x9A, 0xA4, 0xEF, +0xE5, 0x67, 0x00, 0xF6, 0xA0, 0x35, 0x0D, 0xED, +0xA0, 0xDA, 0xA0, 0x9A, 0xE0, 0x37, 0xE0, 0x37, +0xEF, 0xEF, 0xAC, 0xEF, 0xE0, 0xDA, 0x40, 0x9B, +0xC4, 0xEC, 0xCF, 0xEC, 0x4C, 0xEC, 0x80, 0xDB, +0x29, 0x10, 0xA0, 0x75, 0x2B, 0x61, 0xA1, 0x76, +0x11, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF6, +0x54, 0x9A, 0x01, 0x6B, 0x64, 0xEF, 0xA0, 0x9A, +0x00, 0xF6, 0x60, 0x34, 0x8F, 0xEC, 0xAC, 0xEC, +0x80, 0xDA, 0x80, 0x9A, 0x60, 0x33, 0x60, 0x33, +0x8D, 0xEB, 0x13, 0x10, 0xA2, 0x76, 0x14, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF6, 0x54, 0x9A, +0x01, 0x6B, 0x64, 0xEF, 0xA0, 0x9A, 0x00, 0xF6, +0x60, 0x34, 0x8F, 0xEC, 0xAC, 0xEC, 0x80, 0xDA, +0x80, 0x9A, 0x60, 0x33, 0x60, 0x33, 0x6F, 0xEB, +0x8C, 0xEB, 0x60, 0xDA, 0xF0, 0x6A, 0x03, 0x10, +0xE2, 0x6A, 0x01, 0x10, 0xE1, 0x6A, 0x01, 0x90, +0x01, 0x63, 0x20, 0xE8, 0xFF, 0x6B, 0x6C, 0xEC, +0x08, 0x5C, 0xFF, 0x63, 0x18, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF6, 0x58, 0x9A, 0x01, 0x6D, +0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, +0x37, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF6, +0x5C, 0x9A, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, +0xAC, 0xEA, 0x30, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF6, 0x50, 0x9A, 0x1C, 0x10, 0xF8, 0x4C, +0x6C, 0xEC, 0x08, 0x5C, 0xE0, 0x6A, 0x27, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, 0x40, 0x9A, +0x01, 0x6D, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, +0xAC, 0xEA, 0x1A, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF7, 0x44, 0x9A, 0x40, 0xA2, 0x6C, 0xEA, +0x47, 0xEC, 0xAC, 0xEA, 0x13, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF6, 0x54, 0x9A, 0x40, 0xA2, +0xA4, 0xEC, 0x85, 0x67, 0x6C, 0xEC, 0x4C, 0xEC, +0x5D, 0x67, 0x80, 0xC2, 0x40, 0xA2, 0x4C, 0xEB, +0x6B, 0xEA, 0xC0, 0xF7, 0x42, 0x32, 0x03, 0x10, +0xE4, 0x6A, 0x01, 0x10, 0xE6, 0x6A, 0x01, 0x63, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, +0x08, 0x5C, 0x6C, 0xED, 0x20, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF6, 0x58, 0x9A, 0x01, 0x6E, +0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xCC, 0xEA, +0x48, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF6, +0x5C, 0x9A, 0xC4, 0xEC, 0x86, 0x67, 0x40, 0xA2, +0x6C, 0xEA, 0xCC, 0xEA, 0xCE, 0xEA, 0x3B, 0x2A, +0x05, 0x25, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, +0xA8, 0x9A, 0x24, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF7, 0x48, 0x9A, 0x29, 0x10, 0xF8, 0x4C, +0x6C, 0xEC, 0x08, 0x5C, 0xE0, 0x6A, 0x2E, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, 0x40, 0x9A, +0x01, 0x6E, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, +0xCC, 0xEA, 0x23, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF7, 0x44, 0x9A, 0xC4, 0xEC, 0x86, 0x67, +0x40, 0xA2, 0x6C, 0xEA, 0xCC, 0xEA, 0xCE, 0xEA, +0x16, 0x2A, 0x0A, 0x25, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF7, 0xAC, 0x9A, 0x40, 0xA5, 0x6C, 0xEA, +0x8D, 0xEA, 0x6C, 0xEA, 0x40, 0xC5, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, 0x4C, 0x9A, +0xA0, 0xA2, 0x8F, 0xEC, 0x6C, 0xEC, 0xAC, 0xEC, +0x80, 0xC2, 0xF0, 0x6A, 0x20, 0xE8, 0xE5, 0x6A, +0x20, 0xE8, 0xE4, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6B, 0x6C, 0xEC, 0x08, 0x5C, 0x0F, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF6, 0x58, 0x9A, +0x01, 0x6D, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, +0xAC, 0xEA, 0x1F, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF6, 0x5C, 0x9A, 0x13, 0x10, 0xF8, 0x4C, +0x6C, 0xEC, 0x08, 0x5C, 0xE0, 0x6A, 0x16, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, 0x40, 0x9A, +0x01, 0x6D, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, +0xAC, 0xEA, 0x0B, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF7, 0x44, 0x9A, 0x40, 0xA2, 0x4C, 0xEB, +0x67, 0xEC, 0x45, 0x67, 0x6E, 0xEA, 0xAC, 0xEA, +0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6B, 0x6C, 0xEC, 0x08, 0x5C, 0x1A, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF6, 0x58, 0x9A, +0x01, 0x6E, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, +0xCC, 0xEA, 0x35, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF6, 0x5C, 0x9A, 0xC4, 0xEC, 0x86, 0x67, +0xA0, 0xA2, 0x6C, 0xED, 0xCC, 0xED, 0xCE, 0xED, +0x2A, 0x2D, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, +0x48, 0x9A, 0x1E, 0x10, 0xF8, 0x4C, 0x6C, 0xEC, +0x08, 0x5C, 0xE0, 0x6A, 0x21, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF7, 0x40, 0x9A, 0x01, 0x6E, +0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xCC, 0xEA, +0x16, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, +0x44, 0x9A, 0xC4, 0xEC, 0x86, 0x67, 0xA0, 0xA2, +0x6C, 0xED, 0xCC, 0xED, 0xCE, 0xED, 0x0B, 0x2D, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, 0x4C, 0x9A, +0x40, 0xA2, 0x4C, 0xEB, 0x8C, 0xEB, 0x6E, 0xEC, +0x01, 0x5C, 0x58, 0x67, 0x20, 0xE8, 0x00, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x01, 0x72, 0xFF, 0xF7, +0x1F, 0x6C, 0xAC, 0xEC, 0x05, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x69, 0x04, 0x67, 0x2C, 0xE8, 0x90, 0x67, +0xA0, 0x6D, 0xA2, 0x6E, 0x80, 0x18, 0x50, 0x25, +0x90, 0x67, 0x80, 0x18, 0xB3, 0x25, 0x7D, 0x67, +0x50, 0xC3, 0x50, 0xA3, 0x09, 0x97, 0x07, 0x90, +0x2C, 0xEA, 0x08, 0x91, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x68, 0x24, 0x67, 0x0C, 0xE9, 0x91, 0x67, +0xAC, 0xE8, 0xA1, 0x6E, 0xA0, 0x6D, 0x80, 0x18, +0x50, 0x25, 0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, +0xD9, 0x25, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF6, 0x68, 0x9A, +0x30, 0xF0, 0x20, 0x6D, 0xE3, 0xF6, 0xAC, 0x9D, +0x40, 0x9B, 0xA2, 0x6E, 0xAC, 0xEA, 0x40, 0xDB, +0xFF, 0x6A, 0x4C, 0xEC, 0xA0, 0x6D, 0x80, 0x18, +0x50, 0x25, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0xB0, 0x6D, 0xB2, 0x6E, 0x80, 0x18, 0x50, 0x25, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0xB0, 0x6D, 0xB1, 0x6E, 0x80, 0x18, 0x50, 0x25, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, +0x04, 0x67, 0x4C, 0xE8, 0xAC, 0xEA, 0xA4, 0x72, +0x0C, 0x61, 0x90, 0x67, 0x80, 0x18, 0x06, 0x26, +0x01, 0x72, 0x04, 0x61, 0x90, 0x67, 0x80, 0x18, +0x63, 0x26, 0x1F, 0x10, 0x90, 0x67, 0x00, 0x6D, +0x0D, 0x10, 0xA5, 0x72, 0x11, 0x61, 0x90, 0x67, +0x80, 0x18, 0x06, 0x26, 0x01, 0x72, 0x04, 0x61, +0x90, 0x67, 0x80, 0x18, 0x63, 0x26, 0x18, 0x10, +0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x58, 0x26, +0x90, 0x67, 0x80, 0x18, 0x63, 0x26, 0x14, 0x10, +0x90, 0x67, 0x80, 0x18, 0x1E, 0x26, 0x01, 0x72, +0x07, 0x61, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, +0x58, 0x26, 0x90, 0x67, 0x00, 0x6D, 0x06, 0x10, +0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x58, 0x26, +0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x58, 0x26, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xEE, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x87, 0xF3, +0x69, 0xA2, 0xFF, 0xF7, 0x1F, 0x69, 0x04, 0xD4, +0xAC, 0xE9, 0x05, 0xD6, 0x0B, 0x23, 0x87, 0xF3, +0x6A, 0xA2, 0x04, 0x23, 0x87, 0xF3, 0x87, 0xA2, +0xA5, 0x6D, 0x07, 0x10, 0x87, 0xF3, 0x87, 0xA2, +0xA4, 0x6D, 0x03, 0x10, 0x87, 0xF3, 0x87, 0xA2, +0xA3, 0x6D, 0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, +0x08, 0x48, 0x80, 0x18, 0x7A, 0x26, 0x87, 0xF3, +0x4B, 0xA0, 0x7D, 0x22, 0x04, 0x94, 0xB1, 0x67, +0x80, 0x18, 0x41, 0x26, 0x87, 0xF3, 0x49, 0xA0, +0x0B, 0x22, 0x87, 0xF3, 0x4A, 0xA0, 0x04, 0x22, +0x87, 0xF3, 0x87, 0xA0, 0xA5, 0x6D, 0x07, 0x10, +0x87, 0xF3, 0x87, 0xA0, 0xA4, 0x6D, 0x03, 0x10, +0x87, 0xF3, 0x87, 0xA0, 0xA3, 0x6D, 0x80, 0x18, +0x7A, 0x26, 0x30, 0xF0, 0x21, 0x6A, 0xF2, 0xF3, +0x54, 0xA2, 0x01, 0x68, 0x5D, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF7, 0x50, 0x9A, 0x60, 0xA2, +0x10, 0x6A, 0x6C, 0xEA, 0x58, 0x2A, 0x04, 0x94, +0xB1, 0x67, 0x80, 0x18, 0x41, 0x26, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x87, 0xF3, +0x69, 0xA2, 0x0B, 0x23, 0x87, 0xF3, 0x6A, 0xA2, +0x04, 0x23, 0x87, 0xF3, 0x87, 0xA2, 0xA5, 0x6D, +0x07, 0x10, 0x87, 0xF3, 0x87, 0xA2, 0xA4, 0x6D, +0x03, 0x10, 0x87, 0xF3, 0x87, 0xA2, 0xA3, 0x6D, +0x80, 0x18, 0x7A, 0x26, 0xDC, 0x17, 0x04, 0x94, +0xB1, 0x67, 0x80, 0x18, 0x41, 0x26, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x87, 0xF3, +0x69, 0xA2, 0x0B, 0x23, 0x87, 0xF3, 0x6A, 0xA2, +0x04, 0x23, 0x87, 0xF3, 0x87, 0xA2, 0xA5, 0x6D, +0x07, 0x10, 0x87, 0xF3, 0x87, 0xA2, 0xA4, 0x6D, +0x03, 0x10, 0x87, 0xF3, 0x87, 0xA2, 0xA3, 0x6D, +0x80, 0x18, 0x7A, 0x26, 0x04, 0x94, 0xB1, 0x67, +0x80, 0x18, 0x41, 0x26, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x87, 0xF3, 0x69, 0xA2, +0x0B, 0x23, 0x87, 0xF3, 0x6A, 0xA2, 0x04, 0x23, +0x87, 0xF3, 0x87, 0xA2, 0xA5, 0x6D, 0x07, 0x10, +0x87, 0xF3, 0x87, 0xA2, 0xA4, 0x6D, 0x03, 0x10, +0x87, 0xF3, 0x87, 0xA2, 0xA3, 0x6D, 0x80, 0x18, +0x7A, 0x26, 0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, +0x05, 0x92, 0x43, 0xE8, 0xC4, 0x61, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x48, 0x9A, 0x30, 0xF0, 0x21, 0x6C, +0xF2, 0xF3, 0x0F, 0x4C, 0x00, 0x6D, 0x06, 0x6E, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, +0x20, 0x6C, 0x4B, 0xF1, 0x0D, 0x4C, 0x07, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6D, 0x6B, 0xF0, +0x08, 0x4D, 0xE0, 0xF0, 0x85, 0xA5, 0x01, 0x6A, +0xC2, 0x67, 0x8C, 0xEE, 0xFF, 0x6B, 0x37, 0x26, +0x02, 0x6E, 0x8C, 0xEE, 0x6C, 0xEE, 0x0F, 0x26, +0x04, 0x6E, 0x8C, 0xEE, 0x6C, 0xEE, 0x22, 0x26, +0x08, 0x6A, 0x8C, 0xEA, 0x6C, 0xEA, 0x16, 0x2A, +0xE0, 0xF0, 0x46, 0xA5, 0x7F, 0x6C, 0x00, 0x6D, +0x4C, 0xEC, 0x6C, 0xEC, 0x22, 0x10, 0x04, 0x6E, +0x8C, 0xEE, 0x6C, 0xEE, 0x13, 0x26, 0x08, 0x6A, +0x8C, 0xEA, 0x6C, 0xEA, 0x07, 0x22, 0xE0, 0xF0, +0x46, 0xA5, 0x7F, 0x6C, 0x01, 0x6D, 0x4C, 0xEC, +0x6C, 0xEC, 0x13, 0x10, 0xE0, 0xF0, 0x46, 0xA5, +0x7F, 0x6C, 0x4C, 0xEC, 0x6C, 0xEC, 0x80, 0x18, +0x63, 0x26, 0x0D, 0x10, 0xE0, 0xF0, 0xC6, 0xA5, +0xE0, 0xF0, 0xA5, 0xA5, 0x7F, 0x6C, 0xCC, 0xEC, +0xA6, 0x35, 0x01, 0x6E, 0xCE, 0xED, 0x6C, 0xEC, +0x4C, 0xED, 0x80, 0x18, 0x58, 0x26, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xF7, 0x63, 0x11, 0x62, +0x10, 0xD1, 0x0F, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0xE0, 0xF0, 0xD3, 0xA3, +0x11, 0x6D, 0xFF, 0x6A, 0xCC, 0xED, 0x4C, 0xED, +0x4C, 0xEC, 0x20, 0xF1, 0x06, 0x25, 0xE0, 0xF0, +0xF4, 0xA3, 0x1F, 0x6D, 0xEC, 0xED, 0x8E, 0xED, +0x00, 0xF1, 0x1F, 0x2D, 0x01, 0x6C, 0xCC, 0xEC, +0x4C, 0xEC, 0x07, 0x24, 0x87, 0xF3, 0x90, 0x9B, +0xA7, 0xF3, 0x48, 0x9B, 0x8E, 0xEA, 0x00, 0xF1, +0x14, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xE0, 0xF0, 0x93, 0xA2, 0x10, 0x6B, +0x8C, 0xEB, 0x07, 0x23, 0x87, 0xF3, 0x78, 0x9A, +0xA7, 0xF3, 0x50, 0x9A, 0x6E, 0xEA, 0x00, 0xF1, +0x04, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF0, +0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x07, 0x05, +0x40, 0x9A, 0x04, 0x6E, 0x30, 0xF0, 0x20, 0x69, +0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF0, +0x48, 0x9A, 0x6B, 0xF0, 0x08, 0x49, 0x40, 0x9A, +0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, +0x74, 0x9A, 0x8F, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, +0x50, 0x9A, 0x7D, 0x67, 0x08, 0x6C, 0x40, 0x9A, +0x8B, 0xEC, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF6, 0x4C, 0x9A, 0x40, 0x9A, 0x04, 0xD2, +0x2F, 0x6A, 0x20, 0xF0, 0x40, 0xC3, 0x0A, 0x6A, +0x57, 0xCB, 0x20, 0xF0, 0x42, 0xA3, 0x8C, 0xEA, +0x20, 0xF0, 0x42, 0xC3, 0x80, 0xF2, 0x4C, 0x98, +0x09, 0x04, 0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x98, +0x04, 0x6E, 0x0A, 0x04, 0x06, 0x05, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6D, 0x00, 0xF4, 0x5C, 0x9D, +0x08, 0x04, 0x40, 0xEA, 0x7D, 0x67, 0x20, 0xF0, +0x42, 0xA3, 0x08, 0x6C, 0x8B, 0xEC, 0x01, 0x6B, +0x8C, 0xEA, 0x6D, 0xEA, 0xBD, 0x67, 0x20, 0xF0, +0x42, 0xC5, 0x80, 0xF2, 0x4C, 0x98, 0x09, 0x04, +0x05, 0x05, 0x04, 0x6E, 0x40, 0xEA, 0x80, 0xF2, +0x4C, 0x98, 0x0A, 0x04, 0x04, 0x05, 0x04, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF4, +0x5C, 0x9B, 0x08, 0x04, 0x40, 0xEA, 0xE0, 0xF0, +0x73, 0xA1, 0x10, 0x6A, 0x6C, 0xEA, 0x59, 0x22, +0x9D, 0x67, 0x20, 0xF0, 0x42, 0xA4, 0x08, 0x6D, +0xAB, 0xED, 0x02, 0x6B, 0xAC, 0xEA, 0x6D, 0xEA, +0x20, 0xF0, 0x42, 0xC4, 0xE0, 0xF0, 0x53, 0xA1, +0x04, 0x6E, 0x56, 0x32, 0x20, 0xF0, 0x43, 0xC4, +0x30, 0xF0, 0x21, 0x6A, 0x12, 0xF4, 0x00, 0x4A, +0x0C, 0xD2, 0x0C, 0x95, 0x80, 0xF2, 0x4C, 0x98, +0x09, 0x04, 0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x98, +0x30, 0xF0, 0x21, 0x6D, 0x12, 0xF4, 0x04, 0x4D, +0x04, 0x6E, 0x0A, 0x04, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x00, 0xF4, 0x5C, 0x9B, 0x08, 0x04, +0x40, 0xEA, 0x9D, 0x67, 0x20, 0xF0, 0x62, 0xA4, +0x08, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x04, 0x6B, +0x6D, 0xEA, 0x20, 0xF0, 0x42, 0xC4, 0xE0, 0xF0, +0x53, 0xA1, 0x30, 0xF0, 0x21, 0x6D, 0xC3, 0x67, +0x56, 0x32, 0x20, 0xF0, 0x43, 0xC4, 0x80, 0xF2, +0x4C, 0x98, 0x09, 0x04, 0x12, 0xF4, 0x08, 0x4D, +0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, +0x21, 0x6D, 0x04, 0x6E, 0x0A, 0x04, 0x12, 0xF4, +0x0C, 0x4D, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6D, +0x00, 0xF4, 0x5C, 0x9D, 0x08, 0x04, 0x40, 0xEA, +0x80, 0xF2, 0x4C, 0x98, 0x0C, 0x95, 0x30, 0xF0, +0x21, 0x6C, 0x12, 0xF4, 0x18, 0x4C, 0x10, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xE0, 0xF0, 0x93, 0xA2, 0x01, 0x6B, +0x8C, 0xEB, 0x3B, 0x23, 0x87, 0xF3, 0x90, 0x9A, +0xA7, 0xF3, 0x68, 0x9A, 0x8E, 0xEB, 0x35, 0x23, +0xBD, 0x67, 0x20, 0xF0, 0x82, 0xA5, 0x08, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0x03, 0x6C, 0x8D, 0xEB, +0x20, 0xF0, 0x62, 0xC5, 0xE0, 0xF0, 0x53, 0xA2, +0x07, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x46, 0x32, +0x6C, 0xEA, 0x20, 0xF0, 0x43, 0xC5, 0x30, 0xF0, +0x21, 0x69, 0x80, 0xF2, 0x4C, 0x98, 0xF2, 0xF3, +0x18, 0x49, 0x09, 0x04, 0xB1, 0x67, 0x04, 0x6E, +0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, +0x21, 0x6D, 0xF2, 0xF3, 0x1C, 0x4D, 0x04, 0x6E, +0x0A, 0x04, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF4, 0x5C, 0x9A, 0x08, 0x04, 0x40, 0xEA, +0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, 0x21, 0x6C, +0x12, 0xF4, 0x10, 0x4C, 0xB1, 0x67, 0x08, 0x6E, +0x40, 0xEA, 0x11, 0x97, 0x10, 0x91, 0x0F, 0x90, +0x09, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6C, 0x4B, 0xF1, +0x14, 0x4C, 0x07, 0x6E, 0x6B, 0xF0, 0x08, 0x48, +0x40, 0xEA, 0xE0, 0xF0, 0x4C, 0xA0, 0x01, 0x6B, +0xFF, 0x69, 0x6C, 0xEA, 0x4B, 0x22, 0xE0, 0xF0, +0x8C, 0xA0, 0x96, 0x34, 0x2C, 0xEC, 0x00, 0x18, +0x42, 0xE7, 0xE0, 0xF0, 0x6C, 0xA0, 0x02, 0x6A, +0x6C, 0xEA, 0x2C, 0xEA, 0x1B, 0x22, 0x04, 0x6A, +0x6C, 0xEA, 0x2C, 0xEA, 0x0B, 0x22, 0x08, 0x6A, +0x6C, 0xEA, 0x2C, 0xEA, 0x22, 0x2A, 0xE0, 0xF0, +0x4D, 0xA0, 0x7F, 0x6C, 0x00, 0x6D, 0x4C, 0xEC, +0x2C, 0xEC, 0x2E, 0x10, 0xE0, 0xF0, 0x4D, 0xA0, +0xE0, 0xF0, 0xAC, 0xA0, 0x7F, 0x6C, 0x4C, 0xEC, +0xA6, 0x35, 0x01, 0x6A, 0x4E, 0xED, 0x2C, 0xEC, +0x4C, 0xED, 0x22, 0x10, 0x04, 0x6A, 0x6C, 0xEA, +0x2C, 0xEA, 0x13, 0x22, 0x08, 0x6A, 0x6C, 0xEA, +0x2C, 0xEA, 0x07, 0x22, 0xE0, 0xF0, 0x4D, 0xA0, +0x7F, 0x6C, 0x01, 0x6D, 0x4C, 0xEC, 0x2C, 0xEC, +0x13, 0x10, 0xE0, 0xF0, 0x4D, 0xA0, 0x7F, 0x6C, +0x4C, 0xEC, 0x2C, 0xEC, 0x80, 0x18, 0x63, 0x26, +0x0D, 0x10, 0xE0, 0xF0, 0xAC, 0xA0, 0xE0, 0xF0, +0x4D, 0xA0, 0x01, 0x6B, 0x7F, 0x6C, 0xA6, 0x35, +0x4C, 0xEC, 0x6E, 0xED, 0x2C, 0xEC, 0x6C, 0xED, +0x80, 0x18, 0x58, 0x26, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, +0x20, 0x6C, 0x4B, 0xF1, 0x1B, 0x4C, 0x07, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xE0, 0xF0, 0x93, 0xA2, 0x10, 0x6B, +0x8C, 0xEB, 0x05, 0x23, 0x96, 0x34, 0xFF, 0x6A, +0x4C, 0xEC, 0x00, 0x18, 0x42, 0xE7, 0x30, 0xF0, +0x20, 0x6A, 0x4B, 0xF1, 0x5C, 0xA2, 0x1F, 0x6C, +0x4C, 0xEC, 0x0C, 0x4C, 0x01, 0x6A, 0x44, 0xEC, +0x82, 0x67, 0x80, 0x18, 0x32, 0x76, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF0, 0x64, 0x9B, 0xFF, 0xF7, 0x1F, 0x6A, +0x8C, 0xEA, 0x69, 0xE2, 0x00, 0x9A, 0x41, 0x45, +0x25, 0x67, 0x08, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x44, 0x9A, 0x85, 0x67, 0x2C, 0xE8, +0x40, 0xEA, 0x06, 0xEA, 0x50, 0x67, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0xF7, 0x1F, 0x68, 0x41, 0x45, 0x25, 0x67, +0x0C, 0xD6, 0x8C, 0xE8, 0x07, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x44, 0x9A, 0x41, 0xE0, +0xC0, 0xD8, 0x1A, 0x10, 0x01, 0x6D, 0x90, 0x67, +0xAB, 0xED, 0x80, 0x18, 0x09, 0x28, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, +0x91, 0x67, 0x40, 0xEA, 0x0C, 0x93, 0x64, 0xEA, +0x43, 0x67, 0x04, 0x93, 0x2C, 0xEA, 0x2F, 0xE9, +0x6C, 0xE9, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, +0x64, 0x9B, 0x2D, 0xEA, 0x61, 0xE0, 0x40, 0xD8, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x01, 0x74, 0x0D, 0x60, +0x06, 0x24, 0x02, 0x74, 0x10, 0x60, 0x03, 0x74, +0x00, 0x6A, 0x1C, 0x61, 0x14, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA8, 0x35, 0x63, 0xF7, 0x54, 0x9A, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA8, 0x35, +0x63, 0xF7, 0x58, 0x9A, 0x05, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF7, 0x5C, 0x9A, 0xA8, 0x35, +0x55, 0xE5, 0x40, 0x9D, 0x20, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF7, 0x40, 0x9A, 0xA8, 0x35, +0x55, 0xE5, 0x40, 0x9D, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xAE, 0xF2, 0x08, 0x4A, 0x88, 0x34, 0x91, 0xE2, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0x60, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF5, 0xA0, 0x35, +0xCC, 0xEB, 0x30, 0xF0, 0x20, 0x6E, 0x23, 0xF5, +0xD0, 0x9E, 0xC0, 0xF3, 0x44, 0x9A, 0x80, 0xAC, +0xAD, 0xEB, 0x01, 0x6D, 0xAB, 0xED, 0x6C, 0xEE, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6B, 0x8C, 0xEB, 0xFF, 0xF7, 0x1F, 0x6A, +0x81, 0x46, 0x06, 0x67, 0xAC, 0xEA, 0x06, 0x2C, +0x83, 0x67, 0xA2, 0x67, 0x80, 0x18, 0x31, 0x28, +0x02, 0x67, 0x0D, 0x10, 0x83, 0x67, 0xA2, 0x67, +0x80, 0x18, 0x31, 0x28, 0x22, 0x67, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, 0x90, 0x67, +0x2C, 0xE8, 0x40, 0xEA, 0x06, 0xEA, 0x50, 0x67, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x46, 0x67, 0xFF, 0x68, +0xFF, 0xF7, 0x1F, 0x69, 0x01, 0x4A, 0x0C, 0xD6, +0x0D, 0xD7, 0x8C, 0xE8, 0xAC, 0xE9, 0x04, 0x2A, +0x90, 0x67, 0xB1, 0x67, 0xC7, 0x67, 0x15, 0x10, +0xB1, 0x67, 0x90, 0x67, 0x80, 0x18, 0x31, 0x28, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x0C, 0x94, +0xA0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x0D, 0x96, +0x90, 0x67, 0xB1, 0x67, 0xC4, 0xEA, 0x0C, 0x92, +0x4C, 0xEE, 0x4F, 0xEB, 0x04, 0x92, 0x4C, 0xEB, +0x6D, 0xEE, 0x80, 0x18, 0x44, 0x28, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, +0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, +0x8C, 0xEA, 0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x25, 0x67, 0x01, 0x60, +0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, +0x60, 0x9B, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF0, 0x64, 0x9B, 0x69, 0xE2, 0x00, 0x9A, +0x41, 0x41, 0x08, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x44, 0x9A, 0x91, 0x67, 0x2C, 0xE8, +0x40, 0xEA, 0x06, 0xEA, 0x50, 0x67, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0xF7, 0x1F, 0x68, 0x41, 0x45, 0x25, 0x67, +0x0C, 0xD6, 0x8C, 0xE8, 0x16, 0x2A, 0x1F, 0xF7, +0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x40, 0x9A, 0x41, 0xE0, 0x0C, 0x92, +0x3A, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, +0x44, 0x9A, 0x0C, 0x93, 0x41, 0xE0, 0x60, 0xD8, +0x33, 0x10, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, +0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x40, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, +0x44, 0x9A, 0x49, 0xE0, 0x40, 0x9A, 0x91, 0x67, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, +0x44, 0x9A, 0x40, 0xEA, 0x0C, 0x93, 0x64, 0xEA, +0x43, 0x67, 0x04, 0x93, 0x2C, 0xEA, 0x2F, 0xE9, +0x6C, 0xE9, 0x1F, 0xF7, 0x00, 0x6B, 0x0C, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x2D, 0xEA, 0x01, 0x60, +0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, +0x60, 0x9B, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF0, 0x64, 0x9B, 0x61, 0xE0, 0x40, 0xD8, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x03, 0xF0, 0x08, 0x6B, +0x43, 0xF2, 0x60, 0xDA, 0x05, 0xF1, 0x00, 0x4B, +0x43, 0xF2, 0x64, 0xDA, 0x02, 0xF1, 0x00, 0x4B, +0x43, 0xF2, 0x68, 0xDA, 0x00, 0xF1, 0x00, 0x4B, +0x43, 0xF2, 0x6C, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6B, 0x6C, 0xEC, 0x1F, 0x6D, 0x8C, 0xED, +0x96, 0x34, 0x6C, 0xEC, 0x01, 0x74, 0x03, 0x6A, +0x0A, 0x60, 0x10, 0x24, 0x04, 0x74, 0x05, 0x60, +0x06, 0x74, 0x00, 0x6A, 0x12, 0x61, 0xEF, 0x4A, +0x02, 0x10, 0x07, 0x6A, 0x4B, 0xEA, 0xAB, 0xE2, +0x44, 0x32, 0x00, 0xF6, 0x40, 0x32, 0x00, 0xF6, +0x43, 0x32, 0x20, 0xE8, 0x08, 0x6A, 0xAB, 0xE2, +0x44, 0x32, 0x00, 0xF6, 0x40, 0x32, 0x00, 0xF6, +0x43, 0x32, 0x20, 0xE8, 0x00, 0xF6, 0x80, 0x34, +0x00, 0xF6, 0x83, 0x34, 0x47, 0x44, 0x5C, 0x4A, +0xFF, 0x6B, 0x6C, 0xEA, 0x77, 0x5A, 0x00, 0x6A, +0x06, 0x60, 0x00, 0x54, 0x64, 0x6A, 0x03, 0x60, +0x47, 0x44, 0x5D, 0x4A, 0x6C, 0xEA, 0x20, 0xE8, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x0E, 0x91, 0x04, 0xD2, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xED, 0x4C, 0xE9, +0x0C, 0xD6, 0x0D, 0xD7, 0x0F, 0x90, 0x05, 0xD5, +0x00, 0x6A, 0x08, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, +0x40, 0xA8, 0x01, 0x4A, 0x40, 0xC8, 0x30, 0xF0, +0x20, 0x6A, 0x04, 0x95, 0x05, 0x96, 0xC3, 0xF2, +0xE0, 0x9A, 0x30, 0xF0, 0x21, 0x6C, 0x32, 0xF4, +0x18, 0x4C, 0x80, 0x18, 0x9F, 0x58, 0x0C, 0x93, +0x6C, 0xEA, 0x0D, 0x93, 0x6E, 0xEA, 0x03, 0x22, +0x40, 0xA8, 0x23, 0xEA, 0xE3, 0x61, 0x40, 0xA8, +0x09, 0x97, 0x07, 0x90, 0x23, 0xEA, 0x08, 0x91, +0x58, 0x67, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0x01, 0x6A, 0xA3, 0xF3, 0xB5, 0xA3, 0x4B, 0xEA, +0xA3, 0xF3, 0x50, 0xC3, 0x04, 0x6A, 0x00, 0x6C, +0x4B, 0xEA, 0xAC, 0xEA, 0xA3, 0xF3, 0x92, 0xCB, +0xA3, 0xF3, 0x94, 0xC3, 0x02, 0x6D, 0xA3, 0xF3, +0x96, 0xCB, 0x09, 0x6C, 0x8B, 0xEC, 0xAD, 0xEA, +0x8C, 0xEA, 0x04, 0x4C, 0x8C, 0xEA, 0xA3, 0xF3, +0x55, 0xC3, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0xA3, 0xF3, 0xD4, 0xA3, +0x3F, 0x6D, 0x30, 0xF0, 0x20, 0x6A, 0xBB, 0xEE, +0x01, 0x2D, 0xE5, 0xE8, 0xA3, 0xF7, 0x4C, 0x9A, +0x49, 0xE4, 0x10, 0xED, 0xA8, 0x35, 0xA0, 0xC2, +0xA3, 0xF3, 0x54, 0xA3, 0x01, 0x4A, 0xA3, 0xF3, +0x54, 0xC3, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF1, 0x5C, 0x9A, 0xFF, 0x69, 0x00, 0x68, +0x40, 0xA2, 0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF7, 0x70, 0x9A, 0xEE, 0xF1, 0x1F, 0x6A, +0x80, 0xAB, 0x8C, 0xEA, 0x10, 0xF0, 0x00, 0x6C, +0x8B, 0xEC, 0x8D, 0xEA, 0xFF, 0xF7, 0x1F, 0x6C, +0x8C, 0xEA, 0x40, 0xCB, 0x18, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xA3, 0xF3, +0x95, 0xA2, 0x08, 0x6B, 0x8C, 0xEB, 0x05, 0x2B, +0xFB, 0x4B, 0x8C, 0xEB, 0xA3, 0xF3, 0x75, 0xC2, +0x65, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x01, 0x6C, 0x01, 0x48, 0x40, 0xEA, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x50, 0x9A, 0x60, 0xAA, +0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, +0xC0, 0xF7, 0x10, 0x70, 0xDC, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x0E, 0xF4, +0x98, 0xA3, 0xA0, 0xF2, 0x54, 0x9A, 0x01, 0x6D, +0x05, 0x6E, 0x08, 0x6F, 0x40, 0xEA, 0x02, 0x67, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0x40, 0x9A, +0x49, 0xE0, 0x60, 0xA2, 0xFF, 0x6A, 0x6C, 0xEA, +0x54, 0x72, 0x03, 0x61, 0x90, 0x67, 0x80, 0x18, +0x13, 0x29, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, +0x54, 0x9A, 0x6F, 0x6D, 0x2C, 0xED, 0x41, 0xE0, +0x60, 0xA0, 0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, +0x08, 0x48, 0xFF, 0x6A, 0xA3, 0xF3, 0x95, 0xA0, +0x4C, 0xEB, 0x76, 0x33, 0x03, 0x6A, 0x4C, 0xEB, +0xF9, 0x4A, 0x8C, 0xEA, 0x6D, 0xEA, 0xA3, 0xF3, +0x55, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0x90, 0x6C, 0x19, 0x6E, 0x40, 0xEA, +0xA3, 0xF3, 0x75, 0xA0, 0x08, 0x6A, 0xFF, 0x6C, +0x6C, 0xEA, 0x8C, 0xEA, 0x0F, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF6, 0x58, 0x9A, 0x20, 0x6C, +0x80, 0xC2, 0xA3, 0xF3, 0x56, 0xA8, 0x01, 0x4A, +0xA3, 0xF3, 0x56, 0xC8, 0x04, 0x6A, 0x6D, 0xEA, +0xA3, 0xF3, 0x55, 0xC0, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, 0xA3, 0xF3, +0x75, 0xA0, 0x08, 0x6A, 0x6C, 0xEA, 0x1A, 0x22, +0x80, 0x18, 0x1F, 0x29, 0xA3, 0xF3, 0xD2, 0xA8, +0x09, 0x26, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x48, 0x9A, 0xFF, 0x6C, 0x5D, 0x4C, 0x00, 0x6D, +0x40, 0xEA, 0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF7, 0x58, 0x9A, 0xC0, 0xC2, 0xA3, 0xF3, +0x75, 0xA0, 0x09, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xA3, 0xF3, 0x55, 0xC0, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, 0x00, 0x18, +0x8D, 0xD5, 0x01, 0xE2, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE8, 0x1C, 0x30, 0x00, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6D, 0x63, 0xF1, +0x9C, 0x9A, 0xA3, 0xF1, 0xA0, 0x9D, 0x68, 0x32, +0x91, 0xE0, 0xB5, 0xE0, 0x51, 0xE4, 0x49, 0xE5, +0x40, 0x9A, 0x01, 0x4B, 0x14, 0x73, 0x40, 0xDC, +0xEE, 0x61, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0xA7, 0x44, 0x01, 0x4D, 0x04, 0x04, +0x08, 0x6E, 0x40, 0xEA, 0x9D, 0x67, 0x50, 0xA4, +0x01, 0x6B, 0x4C, 0xEB, 0x22, 0x23, 0x30, 0xF0, +0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, 0xA3, 0xF3, +0x75, 0xA0, 0x08, 0x6A, 0x6D, 0xEA, 0xA3, 0xF3, +0x55, 0xC0, 0x52, 0xA4, 0x71, 0xA4, 0xA3, 0xF3, +0x50, 0xC0, 0x05, 0x6A, 0x58, 0xEB, 0xA3, 0xF3, +0x90, 0xA0, 0x12, 0xEA, 0xA3, 0xF3, 0x52, 0xC8, +0x80, 0x18, 0x7F, 0x29, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF3, 0x48, 0x9A, 0xA3, 0xF3, 0xD2, 0xA8, +0xFF, 0x6C, 0x5D, 0x4C, 0x00, 0x6D, 0x40, 0xEA, +0x17, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xA3, 0xF3, 0xB5, 0xA2, 0x09, 0x6C, +0x8B, 0xEC, 0xAC, 0xEC, 0xA3, 0xF3, 0x95, 0xC2, +0x01, 0x6C, 0x8B, 0xEC, 0xA3, 0xF3, 0x72, 0xCA, +0xA3, 0xF3, 0x90, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF7, 0x58, 0x9A, 0x00, 0x6B, 0x60, 0xC2, +0x07, 0x97, 0x06, 0x90, 0x00, 0x6A, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, +0x7C, 0x9A, 0x7F, 0x6A, 0x01, 0x68, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF7, 0x40, 0x9A, 0x60, 0xA2, 0xFF, 0x6A, +0x6C, 0xE8, 0x2A, 0x20, 0x30, 0xF0, 0x20, 0x6B, +0x0E, 0xF4, 0x9D, 0xA3, 0x04, 0x6B, 0x8C, 0xEB, +0x4C, 0xEB, 0x22, 0x23, 0x03, 0x6B, 0x8C, 0xEB, +0x4C, 0xEB, 0x01, 0x73, 0x0B, 0x60, 0x02, 0x73, +0x11, 0x60, 0x1A, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF3, 0x80, 0x9B, 0x02, 0x6D, 0x60, 0xA4, +0x4C, 0xEB, 0x0F, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF3, 0x80, 0x9B, 0x06, 0x6D, 0x60, 0xA4, +0x4C, 0xEB, 0x07, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF3, 0x80, 0x9B, 0x0E, 0x6D, 0x60, 0xA4, +0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA3, 0xF3, 0x95, 0xA2, 0x05, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xA3, 0xF3, 0x75, 0xC2, 0x90, 0x67, +0x80, 0x18, 0x26, 0x4D, 0x9D, 0x67, 0x72, 0xA4, +0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x0D, 0xEA, +0x52, 0xC4, 0x02, 0x6A, 0x50, 0xC4, 0x01, 0x6A, +0x4F, 0xCC, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x21, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x32, 0xF2, 0x9D, 0xA3, +0xA0, 0xF2, 0x54, 0x9A, 0x00, 0x6E, 0xE6, 0x67, +0x01, 0x6D, 0x40, 0xEA, 0x05, 0x97, 0x01, 0x6A, +0x03, 0x63, 0x00, 0xEF, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x01, 0x74, 0x11, 0x60, +0x05, 0x24, 0x02, 0x74, 0x03, 0x60, 0x03, 0x74, +0x0F, 0x60, 0x19, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xE4, 0xF0, 0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x63, 0xF2, 0x90, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, +0x0D, 0x10, 0x00, 0x18, 0x5A, 0xD8, 0x0B, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF0, 0x64, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF2, 0x8C, 0x9C, +0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFF, 0x6A, 0x8C, 0xEA, +0x0B, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF6, +0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF1, +0x94, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x0A, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF6, 0x68, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x04, 0xF1, 0x88, 0x9C, +0x40, 0x9B, 0x8C, 0xEA, 0x40, 0xDB, 0x20, 0xE8, +0xFF, 0x6A, 0x4C, 0xEC, 0x07, 0x6B, 0x8C, 0xEB, +0x4C, 0xED, 0x8E, 0x34, 0x42, 0xF4, 0x10, 0x4C, +0x36, 0x25, 0x1F, 0xF7, 0x00, 0x6D, 0x8C, 0xED, +0x02, 0xF0, 0x00, 0x75, 0x01, 0x60, 0x21, 0x2D, +0x1F, 0xF7, 0x00, 0x6A, 0x8C, 0xEA, 0x02, 0xF0, +0x00, 0x72, 0x01, 0x60, 0x07, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0xA0, 0x9A, 0xB5, 0xE4, +0x80, 0xA5, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0xA0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x44, 0x9A, 0xB5, 0xE4, 0x51, 0xE4, +0x80, 0xA4, 0x00, 0xF6, 0x80, 0x34, 0x01, 0x6A, +0x00, 0xF6, 0x83, 0x34, 0x44, 0xEB, 0x8D, 0xEA, +0x36, 0x10, 0x30, 0xF0, 0x20, 0x6D, 0xA3, 0xF0, +0xA4, 0x9D, 0x01, 0x6E, 0xC4, 0xEB, 0xB1, 0xE4, +0xA0, 0xA4, 0x00, 0xF6, 0xA0, 0x35, 0x00, 0xF6, +0xA3, 0x35, 0xCD, 0xED, 0x3A, 0x10, 0x1F, 0xF7, +0x00, 0x6D, 0x8C, 0xED, 0x02, 0xF0, 0x00, 0x75, +0x01, 0x60, 0x25, 0x2D, 0x1F, 0xF7, 0x00, 0x6A, +0x8C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, +0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, +0xA0, 0x9A, 0xB5, 0xE4, 0x80, 0xA5, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0xA0, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x44, 0x9A, +0xB5, 0xE4, 0x51, 0xE4, 0x80, 0xA4, 0x01, 0x6A, +0x00, 0xF6, 0x80, 0x34, 0x44, 0xEB, 0x00, 0xF6, +0x83, 0x34, 0x4F, 0xEA, 0x8C, 0xEA, 0xFF, 0x6B, +0x6C, 0xEA, 0x40, 0xC5, 0x20, 0xE8, 0x30, 0xF0, +0x20, 0x6D, 0xA3, 0xF0, 0xA4, 0x9D, 0x01, 0x6E, +0xC4, 0xEB, 0xB1, 0xE4, 0xA0, 0xA4, 0xCF, 0xEE, +0x00, 0xF6, 0xA0, 0x35, 0x00, 0xF6, 0xA3, 0x35, +0xCC, 0xED, 0x4C, 0xED, 0xA0, 0xC4, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x64, 0x67, 0xC2, 0xA3, 0x80, 0xAC, 0xA0, 0xF2, +0x54, 0x9A, 0x01, 0x6D, 0x03, 0x6F, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF1, 0x6C, 0x9A, +0xFF, 0x6C, 0x08, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x05, 0x97, +0x01, 0x6A, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xF2, 0x63, 0x1B, 0x62, +0x1A, 0xD1, 0x19, 0xD0, 0xFF, 0xF7, 0x1F, 0x69, +0xFF, 0x68, 0x8C, 0xE9, 0xAC, 0xE8, 0x0C, 0x04, +0x00, 0x6D, 0x30, 0x6E, 0x00, 0x18, 0x37, 0xD6, +0x5D, 0x67, 0x40, 0xF0, 0x28, 0xCA, 0x40, 0xF0, +0x0A, 0xC2, 0x10, 0xF0, 0x31, 0x6A, 0x55, 0xF1, +0x09, 0x4A, 0x0C, 0xD2, 0x10, 0xF0, 0x31, 0x6A, +0x95, 0xF1, 0x01, 0x4A, 0x0D, 0xD2, 0x04, 0x04, +0x00, 0x6A, 0x10, 0x03, 0x05, 0x10, 0x59, 0xE3, +0xC0, 0xA6, 0x55, 0xE4, 0x01, 0x4A, 0xC0, 0xC5, +0x20, 0x5A, 0xF9, 0x61, 0x0F, 0x97, 0x0C, 0x94, +0x0D, 0x95, 0x0E, 0x96, 0x00, 0x18, 0x14, 0xE4, +0x1B, 0x97, 0x1A, 0x91, 0x19, 0x90, 0x0E, 0x63, +0x00, 0xEF, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x2E, 0xF4, 0x64, 0xA2, 0x80, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x02, 0x2A, +0x00, 0x18, 0x95, 0xED, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0xA3, 0xF3, 0x9C, 0xA3, +0x80, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, 0xFF, 0x6C, +0x8C, 0xEA, 0x05, 0x22, 0xA3, 0xF3, 0x9F, 0xA3, +0x80, 0x18, 0x71, 0x40, 0x08, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, +0xFF, 0x6C, 0xC5, 0x67, 0x40, 0xEA, 0x0C, 0x6D, +0x01, 0x6C, 0x00, 0x18, 0xB3, 0xC5, 0x0C, 0x6C, +0x80, 0x18, 0xBF, 0x70, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0xA3, 0xF3, 0x9C, 0xA3, 0x80, 0x6A, 0x4B, 0xEA, +0x8C, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, 0x05, 0x22, +0xA3, 0xF3, 0x9F, 0xA3, 0x80, 0x18, 0x77, 0x40, +0x08, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0xFF, 0x6C, 0xA4, 0x67, 0x2F, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, +0x5C, 0x9A, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x2E, 0xF4, 0x64, 0xA2, 0x80, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x02, 0x2A, +0x00, 0x18, 0xAB, 0xED, 0x08, 0x6D, 0x01, 0x6C, +0x00, 0x18, 0xB3, 0xC5, 0x08, 0x6C, 0x80, 0x18, +0xBF, 0x70, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x57, 0xD3, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x2B, 0xF1, 0x02, 0x4C, +0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xA0, 0xF0, +0x7A, 0xA2, 0x03, 0x6C, 0x8B, 0xEC, 0x8C, 0xEB, +0xA3, 0xF3, 0xB8, 0xA2, 0xA0, 0xF0, 0x7A, 0xC2, +0x02, 0x6B, 0x6B, 0xEB, 0xAC, 0xEB, 0x8C, 0xEB, +0xA3, 0xF3, 0x78, 0xC2, 0x00, 0x6B, 0xA3, 0xF3, +0x79, 0xC2, 0x0C, 0x6B, 0xA3, 0xF3, 0x7A, 0xC2, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF1, 0x50, 0x9A, 0x60, 0xA2, +0x40, 0x23, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF1, 0x48, 0x9A, 0x02, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0x60, 0xC2, 0x6B, 0xF0, +0x08, 0x48, 0xE3, 0xF5, 0x7C, 0xA0, 0x02, 0x6A, +0xFF, 0x6C, 0x6C, 0xEA, 0x8C, 0xEA, 0x0B, 0x22, +0x03, 0x6A, 0x4B, 0xEA, 0x4C, 0xEB, 0xE3, 0xF5, +0x7C, 0xC0, 0x03, 0xF6, 0x61, 0xA0, 0x6C, 0xEA, +0x03, 0xF6, 0x41, 0xC0, 0x22, 0x10, 0x03, 0xF6, +0x49, 0xA0, 0x03, 0xF6, 0x61, 0xA0, 0x01, 0x4A, +0x03, 0xF6, 0x49, 0xC0, 0x11, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x03, 0xF6, 0x41, 0xC0, 0x03, 0xF6, +0x69, 0xA0, 0xC0, 0xF0, 0x42, 0xA0, 0x63, 0xEA, +0x10, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x5C, 0x9A, 0xC0, 0xF0, 0x9F, 0xA0, 0x40, 0xEA, +0x01, 0x72, 0x07, 0x61, 0xE3, 0xF5, 0x7C, 0xA0, +0x21, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xE3, 0xF5, +0x5C, 0xC0, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0x00, 0x6D, 0x12, 0x6E, +0x00, 0x18, 0xE1, 0xE0, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0x01, 0x6D, 0x11, 0x6E, +0x00, 0x18, 0xE1, 0xE0, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0xFF, 0x6A, 0x8C, 0xEA, 0x22, 0xF2, 0x98, 0x9B, +0x22, 0xF2, 0x18, 0x4B, 0x04, 0xD4, 0x81, 0x9B, +0x64, 0xAB, 0x05, 0xD4, 0x9D, 0x67, 0x6C, 0xCC, +0x44, 0x33, 0x6D, 0xE4, 0x88, 0xAB, 0x1F, 0xF7, +0x00, 0x6B, 0x8C, 0xEB, 0x02, 0xF0, 0x00, 0x73, +0x01, 0x60, 0x0B, 0x2B, 0x9D, 0x67, 0x44, 0x33, +0x6D, 0xE4, 0x88, 0xAB, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF0, 0x60, 0x9B, 0x6D, 0xE4, 0x60, 0xAB, +0x06, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, +0x64, 0x9B, 0x71, 0xE4, 0x60, 0xAC, 0xFF, 0xF7, +0x1F, 0x68, 0x6C, 0xE8, 0x18, 0xF0, 0x00, 0x6B, +0x0C, 0xEB, 0x0F, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0x03, 0xF6, 0x81, 0xA3, +0x02, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, 0x03, 0x6C, +0x8B, 0xEC, 0x8C, 0xEA, 0x03, 0xF6, 0x41, 0xC3, +0x79, 0x10, 0x08, 0xF0, 0x00, 0x6B, 0x0C, 0xEB, +0x42, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, +0x08, 0x4B, 0xA0, 0xF0, 0xDB, 0xA3, 0x7F, 0x6D, +0xFF, 0x6C, 0xCC, 0xED, 0x02, 0x75, 0x1F, 0x61, +0xA0, 0xF0, 0x5E, 0xA3, 0x01, 0x6D, 0xAC, 0xEA, +0x8C, 0xEA, 0x06, 0x2A, 0x03, 0xF6, 0x41, 0xA3, +0x4D, 0xED, 0x03, 0xF6, 0xA1, 0xC3, 0x21, 0x10, +0xA0, 0xF0, 0xBC, 0xA3, 0x10, 0x6A, 0x4B, 0xEA, +0xAC, 0xEA, 0x8C, 0xEA, 0x10, 0x72, 0x2E, 0x61, +0x03, 0xF6, 0x81, 0xA3, 0x04, 0x6A, 0x00, 0x6D, +0x8D, 0xEA, 0x03, 0xF6, 0x41, 0xC3, 0x01, 0x6C, +0x00, 0x18, 0xA8, 0xD2, 0x23, 0x10, 0x03, 0xF6, +0xC1, 0xA3, 0x01, 0x6D, 0xCD, 0xED, 0x03, 0xF6, +0xA1, 0xC3, 0xA0, 0xF0, 0xBC, 0xA3, 0x10, 0x6B, +0x6B, 0xEB, 0xAC, 0xEB, 0x8C, 0xEB, 0x20, 0x73, +0x06, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, +0x40, 0x9A, 0x40, 0xEA, 0x0F, 0x10, 0x82, 0x67, +0x00, 0x18, 0xAC, 0xCF, 0x0B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x03, 0xF6, +0x81, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x03, 0xF6, 0x61, 0xC2, 0x02, 0x30, 0x1E, 0x30, +0x1A, 0x20, 0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, +0x08, 0x48, 0x03, 0xF6, 0x41, 0xA0, 0x02, 0x69, +0xC0, 0xF0, 0xC3, 0xA0, 0x2D, 0xEA, 0x03, 0xF6, +0x41, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x48, 0x9A, 0xFF, 0x6C, 0x55, 0x4C, 0x00, 0x6D, +0x40, 0xEA, 0xE3, 0xF5, 0x5C, 0xA0, 0x4D, 0xE9, +0xE3, 0xF5, 0x3C, 0xC0, 0x0B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x03, 0xF6, +0x81, 0xA2, 0x03, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x03, 0xF6, 0x61, 0xC2, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x68, +0x8C, 0xE8, 0x00, 0x18, 0xDE, 0xC5, 0x03, 0x2A, +0x90, 0x67, 0x00, 0x18, 0x2B, 0xCF, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0x74, 0x6F, +0x01, 0x72, 0x01, 0x6C, 0x01, 0x60, 0x02, 0x6C, +0x80, 0x18, 0xEA, 0x71, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, +0x08, 0x48, 0xA0, 0xF0, 0x7A, 0xA0, 0x01, 0x6A, +0x6C, 0xEA, 0x1D, 0x22, 0xA3, 0xF3, 0x59, 0xA0, +0x04, 0x72, 0x19, 0x60, 0xA3, 0xF3, 0x5A, 0xA0, +0x02, 0x72, 0x15, 0x60, 0x02, 0x6A, 0x6C, 0xEA, +0xFF, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x80, 0x18, +0xE6, 0x40, 0x0D, 0x10, 0x80, 0x18, 0xDC, 0x70, +0xA3, 0xF3, 0x5A, 0xA0, 0x0C, 0x6C, 0x08, 0x72, +0x02, 0x60, 0x05, 0x2A, 0x04, 0x6C, 0x00, 0x6D, +0xC5, 0x67, 0x00, 0x18, 0x04, 0xCE, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, 0xA0, 0xF0, +0x7A, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, 0x28, 0x22, +0xA3, 0xF3, 0x59, 0xA0, 0x04, 0x72, 0x24, 0x60, +0xA3, 0xF3, 0x5A, 0xA0, 0x02, 0x72, 0x20, 0x60, +0x02, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, +0x03, 0x22, 0x80, 0x18, 0xE6, 0x40, 0x18, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, +0xFF, 0x6C, 0xA4, 0x67, 0xC4, 0x67, 0x40, 0xEA, +0x80, 0x18, 0x4A, 0x40, 0xA3, 0xF3, 0x5A, 0xA0, +0x0C, 0x72, 0x03, 0x61, 0x08, 0x6C, 0x00, 0x6D, +0x04, 0x10, 0x04, 0x72, 0x05, 0x61, 0x00, 0x6C, +0xA4, 0x67, 0xC5, 0x67, 0x00, 0x18, 0x04, 0xCE, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF4, 0x5C, 0x9A, 0x06, 0xD4, 0x09, 0xD7, +0x07, 0xD5, 0x08, 0xD6, 0x06, 0x04, 0x40, 0xEA, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x46, 0x67, 0x01, 0x4A, 0x05, 0x67, 0x0C, 0xD6, +0x27, 0x67, 0x1F, 0x22, 0x1F, 0xF7, 0x00, 0x6A, +0xAC, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, +0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, +0x40, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x44, 0x9A, 0x49, 0xE0, 0x40, 0x9A, +0x0C, 0x94, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x0C, 0x93, +0x24, 0xEA, 0x6F, 0xEA, 0x04, 0x93, 0x6C, 0xEA, +0x4D, 0xE9, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, +0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x40, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, +0x44, 0x9A, 0x41, 0xE0, 0x20, 0xD8, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x1F, 0xF7, 0x00, 0x6A, 0xAC, 0xEA, 0x02, 0xF0, +0x00, 0x72, 0x26, 0x67, 0x01, 0x60, 0x05, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x40, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, +0x44, 0x9A, 0x55, 0xE5, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0x9D, 0xA0, 0xF3, 0x44, 0x9A, 0x91, 0x67, +0x2C, 0xE8, 0x40, 0xEA, 0x06, 0xEA, 0x50, 0x67, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x44, 0x99, 0xFF, 0x68, 0xAC, 0xE8, +0xD0, 0x67, 0x41, 0xF4, 0x10, 0x6C, 0x7F, 0x6D, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xD0, 0x67, +0x41, 0xF6, 0x10, 0x6C, 0x7F, 0x6D, 0x40, 0xEA, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x85, 0x67, 0xA6, 0x67, 0xC7, 0x67, 0x00, 0x18, +0x3C, 0xD6, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x04, 0xD2, 0x04, 0x95, +0x30, 0xF0, 0x20, 0x69, 0x6B, 0xF0, 0x08, 0x49, +0xA8, 0x34, 0x31, 0xE4, 0x05, 0xD4, 0x05, 0x90, +0xC2, 0xF3, 0x08, 0x4A, 0x48, 0x32, 0x29, 0xE2, +0x29, 0xF7, 0xC2, 0xA0, 0x60, 0xA2, 0x01, 0x6A, +0x4C, 0xEE, 0x4C, 0xEB, 0xC4, 0x36, 0x29, 0xF7, +0xE1, 0xA4, 0xD9, 0xE3, 0x29, 0xF7, 0x63, 0xA0, +0x4C, 0xEF, 0xF0, 0x37, 0x4C, 0xEB, 0x74, 0x33, +0x6D, 0xE7, 0x07, 0xD3, 0x04, 0x93, 0x85, 0x67, +0x84, 0xF7, 0x18, 0x4C, 0x64, 0x32, 0x29, 0xE2, +0x84, 0x34, 0x31, 0xE4, 0x29, 0xF7, 0x55, 0xA2, +0xA4, 0xA4, 0x03, 0x6C, 0x8C, 0xEA, 0x8C, 0xED, +0x40, 0x32, 0xA0, 0x35, 0x48, 0x32, 0x49, 0xE5, +0x30, 0xF0, 0x20, 0x68, 0x06, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x08, 0xD6, 0xC0, 0xF3, 0x64, 0x98, +0xA3, 0xF2, 0xDC, 0x9A, 0x01, 0x6D, 0xE3, 0xF2, +0x1D, 0x4C, 0xAB, 0xED, 0x40, 0xEB, 0x08, 0x94, +0x07, 0x96, 0x06, 0x93, 0xC0, 0xF3, 0x44, 0x98, +0x8D, 0xEE, 0x6D, 0xEE, 0xE3, 0xF3, 0x10, 0x6C, +0xFF, 0xF7, 0x1F, 0x6D, 0x40, 0xEA, 0x04, 0x92, +0x05, 0x94, 0x01, 0x6D, 0xC2, 0xF3, 0x0E, 0x4A, +0x29, 0xF7, 0xDA, 0xAC, 0x48, 0x32, 0x29, 0xE2, +0x60, 0xAA, 0xC0, 0x36, 0xC0, 0xF3, 0x44, 0x98, +0xC0, 0x36, 0x6D, 0xEE, 0xE3, 0xF3, 0x08, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x04, 0x92, 0x05, 0x95, +0xE3, 0xF3, 0x0C, 0x6C, 0xC2, 0xF3, 0x0F, 0x4A, +0x29, 0xF7, 0xDE, 0xAD, 0x48, 0x32, 0x29, 0xE2, +0x60, 0xAA, 0xC0, 0x36, 0xC0, 0xF3, 0x44, 0x98, +0xC0, 0x36, 0x01, 0x6D, 0x6D, 0xEE, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xAA, 0xF1, 0xDC, 0xA1, 0x03, 0xF1, +0xB8, 0x9B, 0xE3, 0xF3, 0x10, 0x6C, 0x40, 0xEA, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x00, 0x6B, 0xE7, 0xF3, 0x6B, 0xC2, +0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, 0x13, 0x4B, +0x07, 0xF4, 0x78, 0xDA, 0x00, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF3, 0x68, 0x9B, 0x54, 0x34, +0x20, 0x68, 0x71, 0xE4, 0xA0, 0xA4, 0xF8, 0x6B, +0x01, 0x4A, 0xAC, 0xEB, 0x4E, 0xE8, 0x60, 0xC4, +0xF2, 0x28, 0x80, 0x18, 0x8A, 0x46, 0x30, 0xF0, +0x21, 0x6A, 0x72, 0xF4, 0x0A, 0xC2, 0x80, 0x18, +0xA7, 0x4A, 0x80, 0x18, 0x35, 0x47, 0x30, 0xF0, +0x21, 0x6C, 0x32, 0xF4, 0x18, 0x4C, 0x80, 0x18, +0xAA, 0x46, 0x80, 0x18, 0x49, 0x53, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0xD1, 0x08, 0xD0, 0x0A, 0xD4, +0x44, 0x67, 0x82, 0x10, 0x25, 0x73, 0x04, 0x60, +0x60, 0xA5, 0x60, 0xC2, 0x01, 0x4A, 0x7B, 0x10, +0x61, 0x85, 0x62, 0x73, 0x7D, 0x67, 0x20, 0x61, +0x62, 0x85, 0x78, 0x73, 0x03, 0x60, 0x58, 0x73, +0x7D, 0x67, 0x1A, 0x61, 0x82, 0x85, 0x60, 0xA6, +0x78, 0x6F, 0xEE, 0xEC, 0x30, 0xF0, 0x20, 0x6F, +0x72, 0x30, 0x24, 0xF2, 0x08, 0x4F, 0xE1, 0xE0, +0x00, 0xA0, 0x01, 0x5C, 0x98, 0x67, 0x94, 0x34, +0x8D, 0xE8, 0x3D, 0x67, 0x00, 0xC1, 0x0F, 0x68, +0x6C, 0xE8, 0xFD, 0xE0, 0x60, 0xA7, 0x02, 0x4D, +0x8D, 0xEB, 0x61, 0xC1, 0x00, 0xF0, 0x02, 0x03, +0x81, 0x85, 0x77, 0x74, 0x26, 0x61, 0x82, 0x85, +0x78, 0x74, 0x02, 0x60, 0x58, 0x74, 0x21, 0x61, +0x80, 0xAE, 0x06, 0xD3, 0x07, 0xD4, 0x82, 0x85, +0x78, 0x74, 0xF8, 0x67, 0x01, 0x5F, 0x18, 0x67, +0x14, 0x30, 0x18, 0x65, 0x0C, 0x6C, 0x07, 0x97, +0x0F, 0x68, 0x30, 0xF0, 0x20, 0x69, 0xE7, 0xEC, +0x0C, 0xEF, 0x24, 0xF2, 0x08, 0x49, 0x3D, 0xE7, +0xE0, 0xA7, 0x06, 0x90, 0x38, 0x67, 0x2D, 0xEF, +0xFC, 0x4C, 0xE0, 0xC0, 0x01, 0x48, 0xE4, 0x44, +0x06, 0xD0, 0xED, 0x2F, 0x04, 0x4B, 0x02, 0x4D, +0x25, 0x10, 0x81, 0x85, 0x78, 0x74, 0x02, 0x60, +0x58, 0x74, 0x20, 0x61, 0x81, 0x85, 0x20, 0x9E, +0x06, 0xD3, 0x78, 0x74, 0x98, 0x67, 0x01, 0x5C, +0xF8, 0x67, 0xF4, 0x37, 0x07, 0xD1, 0x1F, 0x65, +0x1C, 0x6C, 0x07, 0x97, 0x0F, 0x68, 0x30, 0xF0, +0x20, 0x69, 0xE6, 0xEC, 0x0C, 0xEF, 0x24, 0xF2, +0x08, 0x49, 0x3D, 0xE7, 0xE0, 0xA7, 0x06, 0x91, +0x18, 0x67, 0x0D, 0xEF, 0xFC, 0x4C, 0xE0, 0xC1, +0x01, 0x49, 0xE4, 0x44, 0x06, 0xD1, 0xED, 0x2F, +0x08, 0x4B, 0x01, 0x4D, 0x9D, 0x67, 0x04, 0x10, +0xE0, 0xA4, 0x01, 0x4C, 0xE0, 0xC2, 0x01, 0x4A, +0x63, 0xEC, 0xFA, 0x61, 0x04, 0x4E, 0x01, 0x4D, +0x60, 0x85, 0x7F, 0xF7, 0x1B, 0x2B, 0x0A, 0x94, +0x01, 0x24, 0x60, 0xC2, 0x0A, 0x97, 0x09, 0x91, +0x08, 0x90, 0xEB, 0xE2, 0x05, 0x63, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x01, 0x6B, 0x6B, 0xF0, +0x08, 0x4A, 0x6B, 0xEB, 0x28, 0xF7, 0x6C, 0xC2, +0x28, 0xF7, 0x6D, 0xC2, 0x28, 0xF7, 0x6E, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x00, 0xF0, 0x12, 0x02, 0x00, 0xF0, 0x1E, 0x03, +0x00, 0x6D, 0xA0, 0xC2, 0x01, 0x4A, 0x6A, 0xEA, +0xFB, 0x61, 0x61, 0xA4, 0x40, 0xA4, 0x02, 0x5B, +0x29, 0x60, 0x80, 0x6C, 0x8B, 0xEC, 0x74, 0x33, +0x4D, 0xEC, 0x6D, 0xE2, 0xBD, 0x67, 0x92, 0xC5, +0x61, 0xF1, 0x0B, 0x4B, 0x30, 0xF0, 0x20, 0x6C, +0x6B, 0xF0, 0x08, 0x4C, 0x6C, 0x33, 0x6D, 0xE4, +0x04, 0x4B, 0x00, 0xF0, 0x13, 0x02, 0x00, 0xF0, +0x1B, 0x04, 0xA0, 0xAB, 0xA0, 0xC2, 0xA2, 0x35, +0xA1, 0xC2, 0x02, 0x4A, 0x00, 0x6D, 0x8A, 0xEA, +0xA0, 0xCB, 0x02, 0x4B, 0xF6, 0x61, 0x0D, 0x6A, +0x7D, 0x67, 0x50, 0xC3, 0x09, 0x6A, 0x4F, 0xCB, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, +0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x68, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xE7, 0xF3, 0x74, 0xC2, 0x69, 0xA4, +0xE7, 0xF3, 0x69, 0xC2, 0x6A, 0xA4, 0xE7, 0xF3, +0x73, 0xC2, 0xAB, 0xA4, 0x0F, 0x6B, 0xAC, 0xEB, +0xE7, 0xF3, 0x7D, 0xC2, 0x6B, 0xA4, 0x72, 0x33, +0xE7, 0xF3, 0x7A, 0xC2, 0x8E, 0xA4, 0x01, 0x6B, +0x8C, 0xEB, 0xE7, 0xF3, 0x6B, 0xC2, 0x30, 0xF0, +0x21, 0x6B, 0x52, 0xF4, 0x13, 0x4B, 0x07, 0xF4, +0x78, 0xDA, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0x60, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xE7, 0xF3, 0x74, 0xC2, 0x61, 0xA4, +0xE7, 0xF3, 0x69, 0xC2, 0x62, 0xA4, 0xE7, 0xF3, +0x73, 0xC2, 0xA3, 0xA4, 0x0F, 0x6B, 0xAC, 0xEB, +0xE7, 0xF3, 0x7D, 0xC2, 0x63, 0xA4, 0x72, 0x33, +0xE7, 0xF3, 0x7A, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, +0x0E, 0x72, 0x03, 0x60, 0x11, 0x72, 0x05, 0x60, +0x08, 0x10, 0x85, 0x67, 0x80, 0x18, 0xA5, 0x15, +0x19, 0x10, 0x85, 0x67, 0x80, 0x18, 0x3E, 0x42, +0x15, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, +0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF1, +0x90, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA3, 0xF3, 0x60, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x60, 0xDA, 0xFF, 0x6A, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, +0x0E, 0xD1, 0x0D, 0xD0, 0x42, 0xA4, 0x00, 0xA4, +0x21, 0xA4, 0x0A, 0xD2, 0x63, 0xA4, 0x00, 0xF0, +0x16, 0x02, 0x20, 0xF0, 0x02, 0x04, 0x00, 0x6D, +0xA0, 0xC2, 0x01, 0x4A, 0x8A, 0xEA, 0xFB, 0x61, +0x01, 0x6A, 0x6C, 0xEA, 0x10, 0x22, 0x04, 0x04, +0x00, 0xF0, 0x11, 0x05, 0x80, 0x18, 0x19, 0x49, +0x7D, 0x67, 0x50, 0xA3, 0x01, 0x6C, 0x96, 0xC3, +0x57, 0xC3, 0x51, 0xA3, 0x58, 0xC3, 0x26, 0x6A, +0x54, 0xC3, 0x03, 0x6A, 0x51, 0xCB, 0x0A, 0x93, +0x01, 0x6A, 0x4C, 0xEB, 0x1E, 0x23, 0x20, 0x58, +0xE0, 0xF0, 0x13, 0x61, 0x20, 0x59, 0xE0, 0xF0, +0x10, 0x61, 0xBD, 0x67, 0x56, 0xC5, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x89, 0xF2, +0x78, 0x9A, 0x62, 0x34, 0x77, 0xC5, 0x00, 0xF6, +0x62, 0x33, 0x7A, 0xC5, 0x0D, 0x6B, 0x74, 0xC5, +0x05, 0x6B, 0x98, 0xC5, 0x71, 0xCD, 0x82, 0x34, +0x00, 0x6B, 0x99, 0xC5, 0x89, 0xF2, 0x78, 0xDA, +0xD8, 0x10, 0x0A, 0x92, 0x02, 0x6C, 0x8C, 0xEA, +0x31, 0x22, 0xDD, 0x67, 0x20, 0x58, 0x96, 0xC6, +0x17, 0x60, 0x64, 0xF5, 0x8C, 0x40, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x84, 0x34, +0x51, 0xE4, 0xA2, 0xAC, 0x44, 0xF5, 0x0C, 0x48, +0x04, 0x30, 0x49, 0xE0, 0xB7, 0xC6, 0xA2, 0x35, +0xB8, 0xC6, 0xA2, 0xAA, 0x62, 0xCC, 0x62, 0xCA, +0xB9, 0xC6, 0xA2, 0x35, 0xBA, 0xC6, 0x04, 0x10, +0x16, 0x6A, 0x4B, 0xEA, 0x7D, 0x67, 0x57, 0xC3, +0x20, 0x59, 0x4E, 0x60, 0x64, 0xF5, 0x6C, 0x41, +0x30, 0xF0, 0x20, 0x6A, 0x64, 0x33, 0x6B, 0xF0, +0x08, 0x4A, 0x4D, 0xE3, 0x82, 0xAB, 0xBD, 0x67, +0x44, 0xF5, 0x0C, 0x49, 0x9B, 0xC5, 0x82, 0x34, +0x9C, 0xC5, 0x34, 0x10, 0x0A, 0x95, 0x08, 0x6B, +0xAC, 0xEB, 0x43, 0x23, 0xDD, 0x67, 0x20, 0x58, +0x96, 0xC6, 0x17, 0x60, 0x64, 0xF5, 0x8C, 0x40, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0x84, 0x34, 0x71, 0xE4, 0xA2, 0xAC, 0x84, 0xF5, +0x0C, 0x48, 0x04, 0x30, 0x6D, 0xE0, 0xB7, 0xC6, +0xA2, 0x35, 0xB8, 0xC6, 0xA2, 0xAB, 0x42, 0xCC, +0x42, 0xCB, 0xB9, 0xC6, 0xA2, 0x35, 0xBA, 0xC6, +0x04, 0x10, 0x16, 0x6A, 0x4B, 0xEA, 0x7D, 0x67, +0x57, 0xC3, 0x20, 0x59, 0x19, 0x60, 0x64, 0xF5, +0x6C, 0x41, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0x33, +0x6B, 0xF0, 0x08, 0x4A, 0x4D, 0xE3, 0x82, 0xAB, +0xBD, 0x67, 0x84, 0xF5, 0x0C, 0x49, 0x9B, 0xC5, +0x82, 0x34, 0x9C, 0xC5, 0x24, 0x31, 0x49, 0xE1, +0x82, 0xAA, 0x9D, 0xC5, 0x82, 0x34, 0x9E, 0xC5, +0x00, 0x6C, 0x82, 0xCB, 0x82, 0xCA, 0x04, 0x10, +0x16, 0x6A, 0x4B, 0xEA, 0xDD, 0x67, 0x5B, 0xC6, +0x0D, 0x6A, 0x7D, 0x67, 0x54, 0xC3, 0x09, 0x6A, +0x56, 0x10, 0x0A, 0x94, 0x56, 0x2C, 0x20, 0x58, +0x24, 0x60, 0x04, 0xF5, 0x6C, 0x40, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x64, 0x33, +0x4D, 0xE3, 0x80, 0xAB, 0xBD, 0x67, 0x16, 0xC5, +0x97, 0xC5, 0x82, 0x34, 0x98, 0xC5, 0x24, 0xF5, +0x8C, 0x40, 0x84, 0x34, 0x49, 0xE4, 0x80, 0xAA, +0x14, 0x30, 0xC7, 0x45, 0x99, 0xC5, 0x82, 0x34, +0x9A, 0xC5, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF1, +0x88, 0x9C, 0x21, 0x4E, 0xC0, 0xAE, 0x81, 0xE0, +0x80, 0xA0, 0xC0, 0xCB, 0xC0, 0xCA, 0x9B, 0xC5, +0x02, 0x10, 0x9D, 0x67, 0x16, 0xC4, 0x20, 0x59, +0x24, 0x60, 0x04, 0xF5, 0x6C, 0x41, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x64, 0x33, +0x4D, 0xE3, 0x80, 0xAB, 0xBD, 0x67, 0x3C, 0xC5, +0x9D, 0xC5, 0x82, 0x34, 0x9E, 0xC5, 0x24, 0xF5, +0x8C, 0x41, 0x84, 0x34, 0x49, 0xE4, 0x80, 0xAA, +0x34, 0x31, 0x9F, 0xC5, 0x82, 0x34, 0x20, 0xF0, +0x80, 0xC5, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF1, +0x88, 0x9C, 0x85, 0xE1, 0x80, 0xA1, 0x20, 0xF0, +0x81, 0xC5, 0x00, 0x6C, 0x80, 0xCB, 0x80, 0xCA, +0x02, 0x10, 0x5D, 0x67, 0x3C, 0xC2, 0x04, 0x6A, +0x7D, 0x67, 0x54, 0xC3, 0x0C, 0x6A, 0x51, 0xCB, +0x04, 0x10, 0x9D, 0x67, 0x04, 0x6A, 0x54, 0xC4, +0x71, 0xCC, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x5C, 0x9A, 0x05, 0x04, 0x40, 0xEA, 0x0F, 0x97, +0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, +0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, +0x00, 0x6A, 0x10, 0xD4, 0x01, 0x68, 0x62, 0x67, +0xA0, 0xA4, 0x0E, 0x25, 0xFF, 0x6D, 0x01, 0x4B, +0xAC, 0xEB, 0x01, 0x4A, 0x0B, 0x73, 0xAC, 0xEA, +0x03, 0x61, 0x01, 0x48, 0xAC, 0xE8, 0x00, 0x6B, +0x37, 0x72, 0x01, 0x4C, 0xF1, 0x61, 0x37, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0x28, 0xF7, 0x90, 0xA3, 0x0F, 0x5C, 0x01, 0x4C, +0x01, 0x61, 0x00, 0x6C, 0x28, 0xF7, 0x90, 0xC3, +0x30, 0xF0, 0x21, 0x6B, 0x93, 0xF7, 0x78, 0xA3, +0x0B, 0x6D, 0x2F, 0x40, 0x70, 0x33, 0x0A, 0xD3, +0x0A, 0x94, 0xFF, 0x6B, 0x6C, 0xE9, 0x6C, 0xEC, +0x0A, 0xD4, 0x01, 0x6C, 0x13, 0xE4, 0xB8, 0xEC, +0x12, 0xEC, 0x91, 0xE2, 0x6C, 0xEC, 0x09, 0xD4, +0x00, 0x6A, 0x01, 0x4C, 0x0B, 0xD4, 0x08, 0xD2, +0x3C, 0x10, 0x08, 0x94, 0x0B, 0x6B, 0x0A, 0x95, +0x78, 0xEC, 0x9D, 0x67, 0x12, 0xEB, 0x4C, 0xEB, +0x0F, 0x6A, 0x2C, 0xEA, 0xAD, 0xEA, 0x08, 0x95, +0x52, 0xC4, 0x4F, 0x40, 0xAE, 0xEA, 0x07, 0x22, +0x10, 0x92, 0x00, 0xF0, 0x1E, 0x04, 0x6D, 0xE2, +0x00, 0xF0, 0x13, 0x02, 0x0F, 0x10, 0x10, 0x94, +0x09, 0x95, 0x00, 0xF0, 0x13, 0x02, 0x6D, 0xE4, +0xB1, 0xE2, 0x04, 0x10, 0xA0, 0xA3, 0x01, 0x4B, +0xA0, 0xC2, 0x01, 0x4A, 0x8A, 0xEA, 0xFA, 0x61, +0x0B, 0x92, 0x07, 0x10, 0xA0, 0xA3, 0x01, 0x4B, +0xA0, 0xC2, 0x01, 0x4A, 0x8A, 0xEA, 0xFA, 0x61, +0x0C, 0x6A, 0x9D, 0x67, 0x00, 0x6B, 0x4F, 0xCC, +0x70, 0xC4, 0x05, 0x95, 0x04, 0x94, 0x06, 0x96, +0x07, 0x97, 0xFF, 0x49, 0x80, 0x18, 0x20, 0x41, +0x08, 0x95, 0xFF, 0x6A, 0x4C, 0xE9, 0x01, 0x4D, +0x08, 0xD5, 0x08, 0x93, 0xFF, 0x6A, 0x4C, 0xEB, +0x03, 0xEB, 0xBF, 0x61, 0x0F, 0x97, 0x0E, 0x91, +0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x21, 0x6B, 0x03, 0xF3, +0x4C, 0x9A, 0x93, 0xF7, 0x78, 0x9B, 0x07, 0xD5, +0x08, 0xD6, 0x6C, 0xEA, 0x00, 0xF1, 0x00, 0x72, +0x09, 0xD7, 0x06, 0xD4, 0x0C, 0x61, 0x30, 0xF0, +0x20, 0x68, 0x06, 0x95, 0x29, 0xF7, 0x18, 0x48, +0x90, 0x67, 0x07, 0x06, 0x80, 0x18, 0xCE, 0x41, +0x90, 0x67, 0x80, 0x18, 0x06, 0x43, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x61, 0xA4, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xA0, 0xA4, +0xE7, 0xF3, 0x7B, 0xC2, 0xE7, 0xF3, 0x60, 0x9A, +0x20, 0x6C, 0x8C, 0xEB, 0x08, 0x23, 0xE7, 0xF3, +0xDB, 0xA2, 0x30, 0xF0, 0x20, 0x6C, 0x24, 0xF2, +0x1C, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xF3, 0x63, 0x19, 0x62, +0x18, 0xD1, 0x17, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, +0x15, 0xD2, 0x40, 0xF0, 0x06, 0x03, 0x20, 0xF0, +0x1A, 0x02, 0x00, 0x6C, 0x80, 0xC2, 0x01, 0x4A, +0x6A, 0xEA, 0xFB, 0x61, 0x30, 0xF0, 0x21, 0x6B, +0x93, 0xF7, 0x14, 0x4B, 0x00, 0x68, 0x12, 0xD3, +0x14, 0xD0, 0x70, 0x10, 0x12, 0x92, 0x40, 0xA2, +0xFF, 0x72, 0x13, 0xD2, 0x0A, 0x61, 0x7D, 0x67, +0x09, 0xE3, 0x01, 0x6B, 0x6B, 0xEB, 0x20, 0xF0, +0x7A, 0xC2, 0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, +0x65, 0x10, 0x13, 0x92, 0x30, 0x69, 0x9D, 0x67, +0x38, 0xEA, 0x30, 0xF0, 0x21, 0x6A, 0x92, 0xF7, +0x10, 0x4A, 0x0E, 0x03, 0x0D, 0xE3, 0x04, 0x48, +0x12, 0xE9, 0x25, 0xE2, 0x47, 0x44, 0x45, 0x4A, +0x80, 0xA2, 0x82, 0xC3, 0x4A, 0xA9, 0x03, 0x6C, +0x43, 0xC3, 0x42, 0xA1, 0x44, 0xC3, 0x47, 0xA1, +0x4A, 0x32, 0x8C, 0xEA, 0x45, 0xC3, 0xFF, 0x6B, +0x6C, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, +0x08, 0x4B, 0xE7, 0xF3, 0xA0, 0x9B, 0xE7, 0xF7, +0x1D, 0x4C, 0xAC, 0xEC, 0x0E, 0x24, 0xE7, 0xF3, +0x64, 0x9B, 0x05, 0x5B, 0x0A, 0x61, 0xCA, 0xA9, +0xE2, 0xA1, 0x13, 0x95, 0x30, 0xF0, 0x20, 0x6C, +0x44, 0xF2, 0x14, 0x4C, 0x04, 0xD2, 0x80, 0x18, +0x48, 0x43, 0x15, 0x92, 0x02, 0x6B, 0x6E, 0xEA, +0x21, 0x2A, 0x96, 0xA9, 0x0E, 0x03, 0x0D, 0xE3, +0x82, 0xC3, 0x96, 0xA9, 0x02, 0x48, 0x82, 0x34, +0x83, 0xC3, 0x56, 0xC9, 0xFF, 0x6A, 0x4C, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xE7, 0xF3, 0x80, 0x9A, 0x08, 0xF0, 0x00, 0x6B, +0x8C, 0xEB, 0x0C, 0x23, 0xE7, 0xF3, 0x44, 0x9A, +0x05, 0x5A, 0x08, 0x61, 0x13, 0x95, 0x30, 0xF0, +0x20, 0x6C, 0x64, 0xF2, 0x18, 0x4C, 0x00, 0x6E, +0x80, 0x18, 0x48, 0x43, 0x14, 0x94, 0xFF, 0x6A, +0x01, 0x4C, 0x4C, 0xEC, 0x12, 0x92, 0x14, 0xD4, +0x01, 0x4A, 0x12, 0xD2, 0x14, 0x93, 0x15, 0x94, +0x83, 0xEB, 0x8C, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xE7, 0xF3, 0x80, 0x9A, +0x08, 0xF0, 0x00, 0x6B, 0x8C, 0xEB, 0x2D, 0x23, +0xE7, 0xF3, 0x44, 0x9A, 0x05, 0x5A, 0x29, 0x61, +0x5D, 0x67, 0x20, 0xF0, 0xBA, 0xA2, 0x20, 0xF0, +0xDB, 0xA2, 0x20, 0xF0, 0xFC, 0xA2, 0x20, 0xF0, +0x5D, 0xA2, 0x7D, 0x67, 0x30, 0xF0, 0x20, 0x6C, +0x04, 0xD2, 0x20, 0xF0, 0x5E, 0xA3, 0x84, 0xF2, +0x10, 0x4C, 0x05, 0xD2, 0x20, 0xF0, 0x5F, 0xA3, +0x06, 0xD2, 0x40, 0xF0, 0x40, 0xA3, 0x07, 0xD2, +0x40, 0xF0, 0x41, 0xA3, 0x08, 0xD2, 0x40, 0xF0, +0x42, 0xA3, 0x09, 0xD2, 0x40, 0xF0, 0x43, 0xA3, +0x0A, 0xD2, 0x40, 0xF0, 0x44, 0xA3, 0x0B, 0xD2, +0x40, 0xF0, 0x45, 0xA3, 0x0C, 0xD2, 0x80, 0x18, +0x48, 0x43, 0x9D, 0x67, 0x2C, 0x6A, 0x20, 0xF0, +0x58, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x5C, 0x9A, 0x40, 0xF0, 0x06, 0xCC, 0x0E, 0x04, +0x40, 0xEA, 0x19, 0x97, 0x18, 0x91, 0x17, 0x90, +0x0D, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x43, 0xA4, 0x62, 0xA4, +0xC0, 0xA4, 0x40, 0x32, 0x40, 0x32, 0x60, 0x33, +0x4D, 0xE3, 0x41, 0xA4, 0x0F, 0x6D, 0xCC, 0xED, +0x4D, 0xE3, 0x44, 0xA4, 0xD2, 0x36, 0x01, 0x5E, +0x00, 0xF6, 0x40, 0x32, 0x49, 0xE3, 0x08, 0xD2, +0xB4, 0x32, 0x06, 0xD2, 0x06, 0x93, 0xFF, 0x6A, +0x4C, 0xEB, 0x06, 0xD3, 0x03, 0x6A, 0x78, 0x67, +0x6F, 0xE2, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xE7, 0xF3, 0x80, 0x9A, 0x07, 0xD3, +0x08, 0xF0, 0x00, 0x6B, 0x8C, 0xEB, 0x0B, 0x23, +0xE7, 0xF3, 0x44, 0x9A, 0x05, 0x5A, 0x07, 0x61, +0x08, 0x97, 0x30, 0xF0, 0x20, 0x6C, 0xC4, 0xF2, +0x0C, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x80, 0x18, +0x18, 0x42, 0x00, 0x68, 0x06, 0x91, 0x4E, 0x10, +0x08, 0x94, 0x01, 0x6A, 0x44, 0xE9, 0x8C, 0xEA, +0x1C, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x4D, 0xE0, 0x28, 0xF7, 0x2C, 0xC3, +0xE7, 0xF3, 0x80, 0x9A, 0xFF, 0x6B, 0x01, 0x48, +0x6C, 0xE8, 0x07, 0xF7, 0x01, 0x4B, 0x8C, 0xEB, +0x0C, 0x23, 0xE7, 0xF3, 0x44, 0x9A, 0x05, 0x5A, +0x08, 0x61, 0x30, 0xF0, 0x20, 0x6C, 0xE4, 0xF2, +0x14, 0x4C, 0xB0, 0x67, 0xD1, 0x67, 0x80, 0x18, +0x48, 0x43, 0x07, 0x92, 0x4A, 0xE8, 0x04, 0x60, +0x06, 0x92, 0x1F, 0x4A, 0x2E, 0xEA, 0x23, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xE7, 0xF3, 0x80, 0x9A, 0x08, 0xF0, 0x00, 0x6B, +0x8C, 0xEB, 0x12, 0x23, 0xE7, 0xF3, 0x64, 0x9A, +0x05, 0x5B, 0x0E, 0x61, 0x28, 0xF7, 0xCC, 0xA2, +0x28, 0xF7, 0xED, 0xA2, 0x28, 0xF7, 0x4E, 0xA2, +0x30, 0xF0, 0x20, 0x6C, 0x04, 0xF3, 0x14, 0x4C, +0xB0, 0x67, 0x04, 0xD2, 0x80, 0x18, 0x48, 0x43, +0x0D, 0x20, 0x07, 0x94, 0x00, 0x68, 0x80, 0x18, +0x67, 0x43, 0x80, 0x18, 0x18, 0x42, 0x01, 0x49, +0xFF, 0x6A, 0x4C, 0xE9, 0x06, 0x92, 0x20, 0x4A, +0x42, 0xE9, 0xAE, 0x61, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF6, 0x63, 0x13, 0x62, 0x12, 0xD1, 0x11, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x6A, 0x8C, 0xEA, +0xC2, 0xF2, 0x80, 0x9B, 0xC2, 0xF2, 0x00, 0x4B, +0x01, 0x72, 0x04, 0xD4, 0x81, 0x9B, 0x68, 0xA3, +0x05, 0xD4, 0x9D, 0x67, 0x78, 0xC4, 0x30, 0xF0, +0x20, 0x6B, 0xA2, 0xF2, 0x94, 0x9B, 0xA2, 0xF2, +0x14, 0x4B, 0x07, 0xD4, 0x81, 0x9B, 0x68, 0xA3, +0x08, 0xD4, 0x9D, 0x67, 0x20, 0xF0, 0x64, 0xC4, +0x20, 0x61, 0x00, 0x68, 0x5D, 0x67, 0x0D, 0xE2, +0x5C, 0xA3, 0x0B, 0x5A, 0x01, 0x61, 0x0A, 0x6A, +0xFF, 0x6B, 0x6C, 0xEA, 0x02, 0x4A, 0x7D, 0x67, +0x5B, 0xCB, 0x0E, 0x6A, 0x20, 0xF0, 0x48, 0xC3, +0x01, 0x6A, 0x20, 0xF0, 0x4A, 0xC3, 0x09, 0xE3, +0x50, 0xA2, 0x0B, 0x95, 0x0C, 0x96, 0x20, 0xF0, +0x4B, 0xC3, 0x0A, 0x94, 0x0D, 0x97, 0x01, 0x48, +0x80, 0x18, 0x20, 0x41, 0x09, 0x70, 0xE2, 0x61, +0x71, 0x10, 0x08, 0x72, 0x37, 0x61, 0x20, 0xF0, +0x05, 0x04, 0x07, 0x00, 0x04, 0x01, 0x0E, 0xD4, +0x40, 0xA0, 0x0B, 0x5A, 0x01, 0x61, 0x0A, 0x6A, +0xFF, 0x6B, 0x4C, 0xEB, 0x9D, 0x67, 0x42, 0x43, +0x5B, 0xCC, 0x0E, 0x6A, 0x20, 0xF0, 0x48, 0xC4, +0x08, 0x6A, 0x20, 0xF0, 0x4A, 0xC4, 0x40, 0xA1, +0x20, 0xF0, 0x4B, 0xC4, 0x00, 0x6A, 0x0E, 0x10, +0x9D, 0x67, 0x55, 0xE4, 0xC0, 0xA1, 0x30, 0xF0, +0x20, 0x6C, 0x6B, 0xF0, 0x08, 0x4C, 0x91, 0xE2, +0xD1, 0xE4, 0x28, 0xF5, 0x88, 0xA4, 0x01, 0x4A, +0x20, 0xF0, 0x8C, 0xC5, 0xFF, 0x6C, 0x4C, 0xEC, +0x63, 0xEC, 0xEE, 0x61, 0x0A, 0x94, 0x0B, 0x95, +0x0C, 0x96, 0x0D, 0x97, 0x01, 0x48, 0x01, 0x49, +0x80, 0x18, 0x20, 0x41, 0x0E, 0x92, 0x4A, 0xE8, +0xCF, 0x61, 0x38, 0x10, 0x09, 0x72, 0x36, 0x61, +0x20, 0xF0, 0x05, 0x03, 0x07, 0x00, 0x04, 0x01, +0x0F, 0xD3, 0x40, 0xA0, 0x0B, 0x5A, 0x01, 0x61, +0x0A, 0x6A, 0xFF, 0x6B, 0x4C, 0xEB, 0x9D, 0x67, +0x42, 0x43, 0x5B, 0xCC, 0x0E, 0x6A, 0x20, 0xF0, +0x48, 0xC4, 0x09, 0x6A, 0x20, 0xF0, 0x4A, 0xC4, +0x40, 0xA1, 0x20, 0xF0, 0x4B, 0xC4, 0x00, 0x6A, +0x0E, 0x10, 0x9D, 0x67, 0x55, 0xE4, 0xC0, 0xA1, +0x30, 0xF0, 0x20, 0x6C, 0x6B, 0xF0, 0x08, 0x4C, +0x91, 0xE2, 0xD1, 0xE4, 0x68, 0xF5, 0x9C, 0xA4, +0x01, 0x4A, 0x20, 0xF0, 0x8C, 0xC5, 0xFF, 0x6C, +0x4C, 0xEC, 0x63, 0xEC, 0xEE, 0x61, 0x0A, 0x94, +0x0B, 0x95, 0x0C, 0x96, 0x0D, 0x97, 0x01, 0x48, +0x01, 0x49, 0x80, 0x18, 0x20, 0x41, 0x0F, 0x92, +0x4A, 0xE8, 0xCF, 0x61, 0x13, 0x97, 0x12, 0x91, +0x11, 0x90, 0x0A, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x44, 0x67, 0x65, 0xA2, 0x02, 0x6D, 0x81, 0xA4, +0xAC, 0xEB, 0x03, 0x23, 0x80, 0x18, 0x1A, 0x44, +0x3D, 0x10, 0x01, 0x74, 0x22, 0xA2, 0x04, 0xA2, +0x43, 0xA2, 0x07, 0x61, 0x30, 0xF0, 0x20, 0x6C, +0x24, 0xF3, 0x1C, 0x4C, 0x80, 0x18, 0x06, 0x43, +0x31, 0x10, 0x10, 0x30, 0x08, 0x74, 0x4D, 0xE8, +0x0E, 0x61, 0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF3, +0x08, 0x4C, 0x80, 0x18, 0x06, 0x43, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x45, 0xE1, +0x28, 0xF5, 0x08, 0xC1, 0x1F, 0x10, 0x09, 0x74, +0x0E, 0x61, 0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF3, +0x08, 0x4C, 0x80, 0x18, 0x06, 0x43, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x45, 0xE1, +0x68, 0xF5, 0x1C, 0xC1, 0x0F, 0x10, 0x0A, 0x74, +0x0D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, +0xF0, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF3, +0x18, 0x4C, 0xF9, 0x6D, 0x28, 0xF3, 0x01, 0x6E, +0x80, 0x18, 0x48, 0x43, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0x30, 0x6B, 0x78, 0xEC, 0x30, 0xF0, 0x21, 0x6E, +0x92, 0xF7, 0x10, 0x4E, 0xAC, 0xEA, 0x05, 0x6D, +0x12, 0xEB, 0x6D, 0xE6, 0xDD, 0x67, 0xAF, 0xCE, +0x0F, 0x6D, 0xB0, 0xC6, 0x92, 0xC6, 0x53, 0xC6, +0x5B, 0xA3, 0x07, 0x97, 0x04, 0x94, 0x54, 0xC6, +0x5C, 0xA3, 0x55, 0xC6, 0x5D, 0xA3, 0x56, 0xC6, +0x05, 0x95, 0x06, 0x96, 0x80, 0x18, 0x20, 0x41, +0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, +0x14, 0x92, 0x15, 0x93, 0x16, 0x90, 0x0A, 0xD2, +0xFF, 0x6A, 0x1A, 0x65, 0xAC, 0xEA, 0x08, 0xD2, +0x58, 0x67, 0xCC, 0xEA, 0x17, 0x91, 0x1A, 0x65, +0x0A, 0x92, 0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEF, +0xAC, 0xEA, 0xAC, 0xEB, 0xAC, 0xE8, 0xAC, 0xE9, +0x30, 0xF0, 0x20, 0x6D, 0x6B, 0xF0, 0x08, 0x4D, +0xE7, 0xF3, 0xC0, 0x9D, 0x0A, 0xD2, 0x8C, 0xEE, +0x36, 0x26, 0xE7, 0xF3, 0x84, 0x9D, 0x05, 0x6A, +0x4E, 0xEC, 0x31, 0x2C, 0x30, 0xF0, 0x20, 0x6C, +0x03, 0xF3, 0x8C, 0x9C, 0x28, 0xF7, 0xB0, 0x9D, +0x7F, 0x4A, 0x7C, 0x4A, 0xAC, 0xEC, 0x4E, 0xEC, +0x26, 0x2C, 0x9D, 0x67, 0x47, 0x44, 0x19, 0x4A, +0x40, 0xA2, 0xF4, 0xC4, 0xE2, 0x37, 0x52, 0xC4, +0x58, 0x67, 0x53, 0xC4, 0x47, 0x44, 0x21, 0x4A, +0x40, 0xA2, 0xF5, 0xC4, 0x56, 0xC4, 0x0A, 0x94, +0x82, 0x32, 0x9D, 0x67, 0x57, 0xC4, 0x02, 0x6A, +0x4B, 0xEA, 0x78, 0xC4, 0x1A, 0xC4, 0x3C, 0xC4, +0x50, 0xC4, 0x62, 0x33, 0x02, 0x30, 0x22, 0x31, +0x0C, 0x6A, 0x79, 0xC4, 0x1B, 0xC4, 0x3D, 0xC4, +0x4F, 0xCC, 0x05, 0x95, 0x04, 0x94, 0x06, 0x96, +0x07, 0x97, 0x80, 0x18, 0x20, 0x41, 0x0F, 0x97, +0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x40, 0xA4, 0x70, 0x69, 0x30, 0xF0, 0x20, 0x68, +0x06, 0xD2, 0x81, 0xA4, 0x6B, 0xF0, 0x08, 0x48, +0x05, 0xD4, 0x05, 0x92, 0x9E, 0x33, 0x07, 0xD3, +0x8C, 0xE9, 0x7D, 0x67, 0x03, 0x6C, 0x8C, 0xEA, +0x87, 0x43, 0x11, 0x4C, 0x60, 0xA4, 0x32, 0x31, +0x04, 0xD2, 0x9D, 0x67, 0x09, 0xE1, 0x07, 0xF7, +0x6E, 0xC2, 0x67, 0x44, 0x09, 0x4B, 0x80, 0xA3, +0x07, 0xF7, 0x90, 0xC2, 0x30, 0xF0, 0x20, 0x6C, +0xA4, 0xF3, 0x04, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x5D, 0x67, 0x67, 0x42, 0x15, 0x4B, 0x40, 0xA3, +0x07, 0x93, 0x07, 0xF7, 0x57, 0xC0, 0x21, 0x23, +0x07, 0xF7, 0x74, 0xA0, 0x01, 0x6A, 0x44, 0xE9, +0x6D, 0xEA, 0x07, 0xF7, 0x54, 0xC0, 0xE7, 0xF3, +0x40, 0x98, 0x10, 0x6B, 0x6C, 0xEA, 0x0D, 0x22, +0xE7, 0xF3, 0x44, 0x98, 0x05, 0x5A, 0x09, 0x61, +0x04, 0x96, 0x06, 0x97, 0x30, 0xF0, 0x20, 0x6C, +0xA4, 0xF3, 0x10, 0x4C, 0xB1, 0x67, 0x80, 0x18, +0x48, 0x43, 0x05, 0x94, 0x0C, 0x6D, 0x8C, 0xED, +0xAA, 0x35, 0x91, 0x67, 0x80, 0x18, 0x6A, 0x4D, +0x23, 0x10, 0x07, 0xF7, 0x74, 0xA0, 0x01, 0x6A, +0x44, 0xE9, 0x4F, 0xEA, 0x6C, 0xEA, 0x07, 0xF7, +0x54, 0xC0, 0xE7, 0xF3, 0x40, 0x98, 0x10, 0x6B, +0x6C, 0xEA, 0x0D, 0x22, 0xE7, 0xF3, 0x44, 0x98, +0x05, 0x5A, 0x09, 0x61, 0x04, 0x96, 0x06, 0x97, +0x30, 0xF0, 0x20, 0x6C, 0xC4, 0xF3, 0x04, 0x4C, +0xB1, 0x67, 0x80, 0x18, 0x48, 0x43, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x45, 0xE1, +0x01, 0x6A, 0x4B, 0xEA, 0x07, 0xF7, 0x4E, 0xC1, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, +0x0E, 0xD1, 0x0D, 0xD0, 0x40, 0xA4, 0x30, 0x68, +0x20, 0x6B, 0x18, 0xEA, 0x06, 0xD2, 0x30, 0xF0, +0x21, 0x6A, 0x92, 0xF7, 0x10, 0x4A, 0x24, 0x67, +0x12, 0xE8, 0x01, 0xE2, 0x58, 0xA0, 0x0A, 0xD2, +0x42, 0xA4, 0xBA, 0xA0, 0x58, 0xC0, 0x43, 0xA4, +0x01, 0x6C, 0x6C, 0xEA, 0xBF, 0x4B, 0xAC, 0xEB, +0x4D, 0xEB, 0x7A, 0xC0, 0x43, 0xA1, 0xA8, 0xA0, +0x4C, 0xEC, 0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x8D, 0xEA, 0x5A, 0xC0, 0x83, 0xA1, 0x02, 0x6B, +0x6C, 0xEC, 0xFB, 0x4B, 0x4C, 0xEB, 0x8D, 0xEB, +0x7A, 0xC0, 0x83, 0xA1, 0x40, 0x6A, 0x4C, 0xEC, +0x80, 0x4A, 0xFF, 0x4A, 0x6C, 0xEA, 0x8D, 0xEA, +0x5A, 0xC0, 0x83, 0xA1, 0x7F, 0x6B, 0xAC, 0xEB, +0x9E, 0x34, 0x9C, 0x34, 0x8D, 0xEB, 0x68, 0xC0, +0x83, 0xA1, 0x09, 0xD4, 0x64, 0xA1, 0x7E, 0xC0, +0x65, 0xA1, 0x07, 0xD3, 0x86, 0xA1, 0x04, 0x6B, +0x8C, 0xEB, 0x6B, 0x33, 0x08, 0xD4, 0x20, 0xF0, +0x6E, 0xC0, 0x20, 0x6B, 0x6C, 0xEA, 0x22, 0x22, +0x06, 0x94, 0x80, 0x18, 0x4F, 0x47, 0xC7, 0xA0, +0x03, 0x6C, 0xB8, 0xA0, 0xCA, 0x36, 0x8C, 0xEE, +0x06, 0x94, 0xFF, 0x6A, 0x4C, 0xEE, 0x80, 0x18, +0xFD, 0x50, 0x30, 0xF0, 0x21, 0x6A, 0x52, 0xF4, +0x48, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x0E, 0x22, +0xE7, 0xA0, 0x03, 0x6C, 0x06, 0x95, 0xEA, 0x37, +0xD8, 0xA0, 0x8C, 0xEF, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x6C, 0xC4, 0xF3, 0x1C, 0x4C, 0x4C, 0xEF, +0x80, 0x18, 0x48, 0x43, 0x30, 0xF0, 0x21, 0x6A, +0x52, 0xF4, 0x48, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, +0x0E, 0x22, 0x5E, 0xA0, 0xD8, 0xA0, 0xE3, 0xA1, +0x04, 0xD2, 0x20, 0xF0, 0x4E, 0xA0, 0x06, 0x95, +0x30, 0xF0, 0x20, 0x6C, 0xE4, 0xF3, 0x14, 0x4C, +0x05, 0xD2, 0x80, 0x18, 0x48, 0x43, 0x09, 0x93, +0x08, 0x6A, 0x6C, 0xEA, 0x19, 0x22, 0x30, 0xF0, +0x21, 0x6A, 0x52, 0xF4, 0x48, 0x9A, 0x08, 0x94, +0x20, 0x6B, 0x03, 0x69, 0x6C, 0xEA, 0x8C, 0xE9, +0x09, 0x22, 0x06, 0x95, 0x07, 0x96, 0x30, 0xF0, +0x20, 0x6C, 0x04, 0xF4, 0x14, 0x4C, 0xF1, 0x67, +0x80, 0x18, 0x48, 0x43, 0x06, 0x94, 0x07, 0x95, +0x00, 0x6E, 0xF1, 0x67, 0x80, 0x18, 0x9F, 0x4D, +0xFA, 0xA0, 0xD8, 0xA0, 0x06, 0x94, 0x0A, 0x95, +0x01, 0x6A, 0xF6, 0x37, 0x4C, 0xEF, 0x80, 0x18, +0x9E, 0x4C, 0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, +0x08, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x03, 0xA4, 0x44, 0xA4, 0xC0, 0xA4, +0x00, 0x30, 0x00, 0x30, 0x00, 0xF6, 0x40, 0x32, +0xA5, 0xA4, 0xE6, 0xA4, 0x0D, 0xEA, 0x01, 0xA4, +0x82, 0xA4, 0x30, 0xF0, 0x20, 0x6B, 0x0D, 0xEA, +0x80, 0x34, 0x6B, 0xF0, 0x08, 0x4B, 0x8D, 0xEA, +0xE7, 0xF3, 0x40, 0xDB, 0x28, 0xF7, 0xD1, 0xC3, +0x0A, 0x26, 0x01, 0x6C, 0x4C, 0xEC, 0x07, 0x24, +0x28, 0xF7, 0xB2, 0xC3, 0x28, 0xF7, 0xF3, 0xC3, +0x02, 0x25, 0x80, 0x18, 0x6C, 0x52, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xA4, 0x30, 0xF0, 0x20, 0x6D, +0x03, 0xF3, 0x54, 0x9A, 0x03, 0xF3, 0xB8, 0x9D, +0x0C, 0x33, 0x49, 0xE3, 0x03, 0x4C, 0xAD, 0xE3, +0xA0, 0xA4, 0x01, 0x4C, 0xA0, 0xC2, 0x01, 0x4A, +0x6A, 0xEA, 0xFA, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xE7, 0xF3, 0x60, 0x9A, +0x20, 0x6C, 0x8C, 0xEB, 0x11, 0x23, 0xE7, 0xF3, +0x44, 0x9A, 0x05, 0x5A, 0x0D, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF3, 0x54, 0x9A, 0x0C, 0x33, +0x30, 0xF0, 0x20, 0x6C, 0x49, 0xE3, 0xA0, 0x9A, +0x24, 0xF4, 0x10, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, 0x54, 0x9A, +0x0C, 0x33, 0x30, 0xF0, 0x20, 0x6C, 0x49, 0xE3, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, 0x7C, 0x9B, +0x40, 0x9A, 0x6B, 0xF0, 0x08, 0x4C, 0xFF, 0x6E, +0x6C, 0xEA, 0x87, 0xF3, 0x61, 0xA4, 0x87, 0xF3, +0x86, 0xA4, 0xAF, 0x43, 0xCC, 0xED, 0x02, 0x5D, +0x04, 0x61, 0x01, 0x74, 0x02, 0x60, 0x02, 0x74, +0x11, 0x61, 0x10, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF3, 0x40, 0x9A, 0x00, 0x6B, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x64, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x50, 0x9A, +0x60, 0xDA, 0xF0, 0x17, 0x03, 0x73, 0x13, 0x61, +0x00, 0xF4, 0x00, 0x5A, 0x10, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF3, 0x40, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, +0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, +0x50, 0x9A, 0x60, 0xDA, 0xF0, 0x17, 0x90, 0x67, +0x80, 0x18, 0xF0, 0x4D, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x20, 0xA4, 0x30, 0x6E, +0x30, 0xF0, 0x21, 0x6A, 0xD8, 0xE9, 0x92, 0xF7, +0x10, 0x4A, 0x61, 0xA4, 0x7E, 0x33, 0x68, 0x33, +0x12, 0xE8, 0x01, 0xE2, 0xAC, 0xA0, 0x05, 0x6A, +0x4B, 0xEA, 0xAC, 0xEA, 0x6D, 0xEA, 0x4C, 0xC0, +0xA1, 0xA4, 0x60, 0x6B, 0xAC, 0xEB, 0x76, 0x33, +0x06, 0xD3, 0xE8, 0xA0, 0x1F, 0x6B, 0xAC, 0xEB, +0x20, 0x6D, 0xAB, 0xED, 0xEC, 0xED, 0x6D, 0xED, +0xA8, 0xC0, 0xE2, 0xA4, 0x41, 0x6B, 0x6B, 0xEB, +0xFE, 0x37, 0xF8, 0x37, 0xAC, 0xEB, 0xED, 0xEB, +0x68, 0xC0, 0xA2, 0xA4, 0x40, 0x6F, 0xEC, 0xED, +0xBA, 0x35, 0xB4, 0x37, 0x21, 0x6D, 0xAB, 0xED, +0x6C, 0xED, 0xED, 0xED, 0xA8, 0xC0, 0xA2, 0xA4, +0x03, 0x6B, 0xCC, 0xED, 0xCC, 0x4E, 0xB2, 0x35, +0xCC, 0xEA, 0xAD, 0xEA, 0x4C, 0xC0, 0x42, 0xA4, +0x08, 0x6D, 0x03, 0x4C, 0x4C, 0xED, 0xAE, 0x35, +0x07, 0xD5, 0x4C, 0xEB, 0x47, 0xA0, 0x30, 0xF0, +0x20, 0x6D, 0x03, 0xF3, 0xB4, 0x9D, 0xCC, 0xEA, +0x6D, 0xEA, 0x47, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF3, 0x4C, 0x9A, 0x2C, 0x33, 0x49, 0xE3, +0xAD, 0xE3, 0xA0, 0xA4, 0x01, 0x4C, 0xA0, 0xC2, +0x01, 0x4A, 0x6A, 0xEA, 0xFA, 0x61, 0x07, 0x92, +0x09, 0x2A, 0x67, 0xA0, 0x03, 0x6A, 0x6C, 0xEA, +0x48, 0x34, 0x0D, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x8D, 0xEA, 0x47, 0xC0, 0x30, 0xF0, 0x21, 0x6A, +0x52, 0xF4, 0x48, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, +0x13, 0x22, 0x8C, 0xA0, 0xC7, 0xA0, 0x03, 0x6A, +0x8A, 0x33, 0x4C, 0xEC, 0xCA, 0x37, 0x01, 0x6D, +0x05, 0xD4, 0x30, 0xF0, 0x20, 0x6C, 0xAC, 0xEB, +0x24, 0xF4, 0x1C, 0x4C, 0xB1, 0x67, 0x4C, 0xEE, +0x4C, 0xEF, 0x04, 0xD3, 0x80, 0x18, 0x48, 0x43, +0x30, 0xF0, 0x21, 0x6A, 0x52, 0xF4, 0x48, 0x9A, +0x20, 0x6B, 0x6C, 0xEA, 0x12, 0x22, 0x06, 0x94, +0x48, 0xA0, 0x01, 0x6B, 0x04, 0xD4, 0x07, 0x94, +0x5A, 0x35, 0x56, 0x36, 0x05, 0xD4, 0x1F, 0x6F, +0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF4, 0x04, 0x4C, +0x6C, 0xED, 0x6C, 0xEE, 0x4C, 0xEF, 0x80, 0x18, +0x48, 0x43, 0x30, 0xF0, 0x21, 0x6A, 0x52, 0xF4, +0x48, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x0D, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x4C, 0x9A, +0x2C, 0x33, 0x30, 0xF0, 0x20, 0x6C, 0x49, 0xE3, +0xA0, 0x9A, 0x84, 0xF4, 0x10, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, +0x4C, 0x9A, 0x2C, 0x33, 0x49, 0xE3, 0x60, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x87, 0xF3, 0x81, 0xA2, 0x01, 0x74, 0x04, 0x60, +0x87, 0xF3, 0x46, 0xA2, 0x01, 0x72, 0x16, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x50, 0x9A, +0x63, 0xEA, 0x10, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF3, 0x40, 0x9A, 0x00, 0x6B, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x74, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, 0x50, 0x9A, +0x60, 0xDA, 0xF0, 0x17, 0x47, 0xA0, 0x03, 0x6B, +0x4A, 0x32, 0x6C, 0xEA, 0x30, 0xF0, 0x21, 0x6B, +0xF2, 0xF3, 0x68, 0xA3, 0x05, 0x73, 0x11, 0x61, +0x38, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, +0x40, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF3, 0x78, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF0, 0x50, 0x9A, 0x60, 0xDA, +0xF0, 0x17, 0x06, 0x73, 0x12, 0x61, 0x02, 0x5A, +0x24, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, +0x40, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF3, 0x7C, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF0, 0x50, 0x9A, 0x60, 0xDA, +0xF0, 0x17, 0x07, 0x73, 0x12, 0x61, 0x03, 0x72, +0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, +0x40, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF3, 0x60, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF0, 0x50, 0x9A, 0x60, 0xDA, +0xF0, 0x17, 0x30, 0xF0, 0x21, 0x6A, 0xF2, 0xF3, +0x4A, 0xA2, 0x02, 0x72, 0x14, 0x61, 0x6C, 0xA0, +0x03, 0x6A, 0x6C, 0xEA, 0x10, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF3, 0x40, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, +0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, +0x50, 0x9A, 0x60, 0xDA, 0xF0, 0x17, 0x91, 0x67, +0x80, 0x18, 0xF0, 0x4D, 0x06, 0x92, 0x0D, 0x22, +0x04, 0x6B, 0xC7, 0xA0, 0x4F, 0xE3, 0x09, 0x6A, +0x44, 0xEB, 0xFF, 0x6D, 0xCA, 0x36, 0x4C, 0xED, +0x03, 0x6A, 0x91, 0x67, 0x4C, 0xEE, 0x80, 0x18, +0xFD, 0x50, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0xC0, 0x4C, 0x4C, 0xEC, +0x13, 0x5C, 0x3B, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x88, 0x34, 0x62, 0xF2, 0x08, 0x4A, 0x89, 0xE2, +0x40, 0x9A, 0x00, 0xEA, 0x85, 0x67, 0x80, 0x18, +0xC3, 0x45, 0x2F, 0x10, 0x85, 0x67, 0x80, 0x18, +0x1B, 0x45, 0x2B, 0x10, 0x85, 0x67, 0x80, 0x18, +0x86, 0x45, 0x27, 0x10, 0x85, 0x67, 0x80, 0x18, +0x76, 0x44, 0x23, 0x10, 0x85, 0x67, 0x80, 0x18, +0x5A, 0x43, 0x1F, 0x10, 0x85, 0x67, 0x80, 0x18, +0x71, 0x45, 0x1B, 0x10, 0x85, 0x67, 0x80, 0x18, +0xD1, 0x43, 0x17, 0x10, 0x85, 0x67, 0x80, 0x18, +0xDE, 0x44, 0x13, 0x10, 0x85, 0x67, 0x80, 0x18, +0x71, 0x42, 0x0F, 0x10, 0x85, 0x67, 0x80, 0x18, +0x1F, 0x42, 0x0B, 0x10, 0x85, 0x67, 0x80, 0x18, +0x50, 0x42, 0x07, 0x10, 0x85, 0x67, 0x80, 0x18, +0xB0, 0x46, 0x03, 0x10, 0x85, 0x67, 0x80, 0x18, +0x5D, 0x53, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x05, 0x6B, 0xE7, 0xF3, 0x64, 0xDA, 0x09, 0x6B, +0xE7, 0xF3, 0x60, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0x40, 0xF3, 0xCE, 0xAC, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF6, 0x00, 0x6C, 0xFF, 0xF7, +0x1F, 0x6D, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xFF, 0x6D, 0x63, 0xF6, 0x00, 0x6C, 0x01, 0x4D, +0x01, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF6, 0x00, 0x69, +0x91, 0x67, 0x01, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x91, 0x67, +0xC5, 0x67, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x00, 0x6A, 0x40, 0xF3, 0x4B, 0xC4, 0x40, 0xF3, +0x4A, 0xC4, 0x05, 0x6A, 0x40, 0xF3, 0x49, 0xC4, +0x00, 0x6A, 0x40, 0xF3, 0x50, 0xDC, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x60, 0xA4, 0x80, 0x6A, 0x30, 0xF0, 0x20, 0x68, +0x4B, 0xEA, 0x6B, 0xF0, 0x08, 0x48, 0x6C, 0xEA, +0x07, 0xF7, 0x5B, 0xC0, 0x60, 0xA4, 0x0F, 0x6A, +0x24, 0x67, 0x6C, 0xEA, 0x07, 0xF7, 0x58, 0xC0, +0x41, 0xA4, 0x07, 0xF7, 0x78, 0xA0, 0x30, 0xF0, +0x21, 0x6C, 0x07, 0xF7, 0x59, 0xC0, 0x00, 0x6A, +0x01, 0x4B, 0x07, 0xF7, 0x5A, 0xC0, 0x01, 0x6A, +0x44, 0xEB, 0xFF, 0x4A, 0x32, 0xF4, 0x18, 0x4C, +0x07, 0xF7, 0x5E, 0xC8, 0x80, 0x18, 0x90, 0x46, +0xE7, 0xF3, 0x60, 0x98, 0x10, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x0A, 0x22, 0xA1, 0xA1, 0xC0, 0xA1, +0x07, 0xF7, 0xFE, 0xA8, 0x30, 0xF0, 0x20, 0x6C, +0x84, 0xF4, 0x1C, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF1, 0xB8, 0x9A, 0x24, 0x67, 0x85, 0xF5, +0x08, 0x6C, 0x80, 0x18, 0x09, 0x28, 0x01, 0x22, +0x01, 0x6A, 0x64, 0x99, 0x02, 0x67, 0x10, 0xF0, +0x00, 0x6A, 0x6C, 0xEA, 0x07, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0xA4, 0xF4, 0x18, 0x4C, 0xB0, 0x67, +0x80, 0x18, 0x48, 0x43, 0x50, 0x67, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0xF7, +0x1F, 0x6D, 0x04, 0x67, 0x85, 0xF5, 0x08, 0x6C, +0x80, 0x18, 0x09, 0x28, 0x64, 0x98, 0x40, 0xF3, +0x4C, 0xC8, 0x10, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, +0x08, 0x22, 0x40, 0xF3, 0xAC, 0xA8, 0x30, 0xF0, +0x20, 0x6C, 0xC4, 0xF4, 0x04, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x64, 0x9C, 0x10, 0xF0, +0x00, 0x6A, 0xFF, 0x69, 0x05, 0x67, 0x6C, 0xEA, +0x2C, 0xE8, 0xCC, 0xE9, 0x08, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0xC4, 0xF4, 0x10, 0x4C, 0xB0, 0x67, +0xD1, 0x67, 0x80, 0x18, 0x48, 0x43, 0x5D, 0x67, +0x12, 0xC2, 0x33, 0xC2, 0x7D, 0x67, 0x2A, 0x6A, +0x50, 0xC3, 0x02, 0x6A, 0x4F, 0xCB, 0x07, 0x97, +0x04, 0x94, 0x05, 0x95, 0x06, 0x96, 0x80, 0x18, +0x20, 0x41, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x40, 0xF3, 0x4B, 0xA4, 0x04, 0x67, +0x59, 0x22, 0x40, 0xF3, 0xCA, 0xA4, 0x40, 0xF3, +0x49, 0xA4, 0xC3, 0xEA, 0x53, 0x61, 0x64, 0x9C, +0x10, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x08, 0x22, +0x40, 0xF3, 0xB0, 0x98, 0x30, 0xF0, 0x20, 0x6C, +0xC4, 0xF4, 0x1C, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x40, 0xF3, 0x70, 0x98, 0x03, 0x6A, 0x5B, 0xEB, +0x01, 0x2A, 0xE5, 0xE8, 0x10, 0xEA, 0x39, 0x2A, +0x90, 0x67, 0x80, 0x18, 0xCF, 0x46, 0x27, 0x22, +0x64, 0x98, 0x10, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, +0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xE4, 0xF4, +0x10, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x90, 0x67, +0x80, 0x18, 0xE0, 0x46, 0x40, 0xF3, 0x4E, 0xA8, +0xFF, 0xF7, 0x1F, 0x72, 0x14, 0x61, 0x40, 0xF3, +0xAC, 0xA8, 0x64, 0x6A, 0x90, 0x67, 0x58, 0xED, +0x8F, 0xF7, 0x1C, 0x4A, 0x12, 0xED, 0x55, 0xE5, +0x40, 0xF3, 0x4A, 0xA0, 0xA2, 0x35, 0xA2, 0x35, +0x01, 0x4A, 0x40, 0xF3, 0x4A, 0xC0, 0x40, 0xF3, +0xCA, 0xA0, 0x80, 0x18, 0xEF, 0x46, 0x64, 0x98, +0x10, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x06, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0xE4, 0xF4, 0x18, 0x4C, +0x80, 0x18, 0x48, 0x43, 0x90, 0x67, 0x80, 0x18, +0x9D, 0x46, 0x40, 0xF3, 0x50, 0x98, 0x01, 0x4A, +0x40, 0xF3, 0x50, 0xD8, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x21, 0x6A, +0x94, 0xF1, 0x00, 0x4A, 0x30, 0xF0, 0x21, 0x6C, +0xA7, 0x42, 0xB4, 0xF0, 0x00, 0x4C, 0x39, 0x4D, +0x00, 0x6B, 0x3F, 0xF6, 0x60, 0xCA, 0x7F, 0xF6, +0x60, 0xCA, 0x60, 0xC4, 0x20, 0xF0, 0x60, 0xC4, +0x40, 0xF0, 0x60, 0xCA, 0x80, 0xF0, 0x60, 0xCA, +0x60, 0xCA, 0xC0, 0xF0, 0x60, 0xCA, 0x40, 0xF1, +0x60, 0xCA, 0x00, 0xF1, 0x60, 0xCA, 0x80, 0xF1, +0x64, 0xCA, 0xC0, 0xF1, 0x64, 0xCA, 0x00, 0xF2, +0x64, 0xCA, 0x7F, 0xF7, 0x60, 0xCA, 0xBF, 0xF7, +0x60, 0xCA, 0x02, 0x4A, 0xAA, 0xEA, 0xC0, 0xF0, +0x60, 0xC4, 0x01, 0x4C, 0xDD, 0x61, 0x30, 0xF0, +0x21, 0x6A, 0x78, 0x67, 0x14, 0xF3, 0x60, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x8C, 0xEA, +0x24, 0xF5, 0xAC, 0x42, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0xA4, 0x35, 0x00, 0x6C, +0x75, 0xE5, 0x80, 0xCD, 0x04, 0xF5, 0xAC, 0x42, +0xA4, 0x35, 0x75, 0xE5, 0x80, 0xCD, 0x44, 0xF5, +0xAC, 0x42, 0xA4, 0x35, 0x75, 0xE5, 0x82, 0xCD, +0x64, 0xF5, 0xAC, 0x42, 0x84, 0xF5, 0x0C, 0x4A, +0xA4, 0x35, 0x44, 0x32, 0x75, 0xE5, 0x6D, 0xE2, +0x82, 0xCD, 0x82, 0xCB, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0x8C, 0xEA, 0x34, 0xF4, 0xAC, 0x42, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0xA4, 0x35, 0x00, 0x6C, 0x75, 0xE5, 0x80, 0xCD, +0x54, 0xF4, 0xAC, 0x42, 0xA4, 0x35, 0x75, 0xE5, +0x69, 0xE2, 0x80, 0xCD, 0xE9, 0xF0, 0x98, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x8C, 0xEA, +0x84, 0xF4, 0xAC, 0x42, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0xA4, 0x35, 0x00, 0x6C, +0x75, 0xE5, 0x80, 0xCD, 0xE4, 0xF4, 0xAC, 0x42, +0xA4, 0x35, 0x75, 0xE5, 0x80, 0xCD, 0xA4, 0xF4, +0xAC, 0x42, 0xA4, 0x35, 0x75, 0xE5, 0x80, 0xCD, +0xC4, 0xF4, 0xAC, 0x42, 0xA4, 0x35, 0x75, 0xE5, +0x80, 0xCD, 0x30, 0x6C, 0x98, 0xEA, 0xB0, 0x4C, +0x12, 0xEA, 0x6D, 0xE2, 0x47, 0xF7, 0x47, 0xA3, +0x4C, 0xEC, 0x47, 0xF7, 0x87, 0xC3, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0xD1, 0x06, 0xD0, 0x0D, 0x92, +0xFF, 0xF7, 0x1F, 0x6B, 0x1B, 0x65, 0x02, 0xD2, +0xCC, 0xEB, 0x00, 0xD3, 0x0C, 0x90, 0x02, 0x93, +0xD8, 0x67, 0xFF, 0x69, 0x2C, 0xEC, 0xCC, 0xEF, +0xCC, 0xEB, 0xCC, 0xE8, 0x30, 0x6E, 0xD8, 0xEC, +0x0E, 0x92, 0x30, 0xF0, 0x21, 0x6E, 0x92, 0xF7, +0x10, 0x4E, 0x2C, 0xEA, 0x02, 0xD3, 0x03, 0xE7, +0x78, 0x67, 0x6C, 0xE8, 0x12, 0xE9, 0x39, 0xE6, +0x00, 0x91, 0x01, 0xD6, 0x3B, 0xE5, 0xFB, 0xE6, +0x03, 0xD6, 0x24, 0xF5, 0x2C, 0x44, 0x30, 0xF0, +0x20, 0x6E, 0x24, 0x31, 0x6B, 0xF0, 0x08, 0x4E, +0xD9, 0xE1, 0x00, 0x91, 0x04, 0xD6, 0xC0, 0xAE, +0x2F, 0xE3, 0xC2, 0xEB, 0x03, 0x61, 0x04, 0x93, +0xD9, 0xE1, 0xC0, 0xCB, 0x30, 0xF0, 0x20, 0x6B, +0x04, 0xF5, 0xCC, 0x44, 0x6B, 0xF0, 0x08, 0x4B, +0xC4, 0x36, 0x79, 0xE6, 0x60, 0xAE, 0xFF, 0xF7, +0x1F, 0x69, 0xE7, 0xE1, 0x62, 0xE9, 0x02, 0x61, +0x6D, 0xE7, 0x60, 0xCE, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0x89, 0xF2, 0xD8, 0x9B, +0x0F, 0xE9, 0xC3, 0xE9, 0x03, 0x61, 0xC1, 0xE0, +0x89, 0xF2, 0x18, 0xDB, 0x30, 0xF0, 0x20, 0x6E, +0x44, 0xF5, 0x6C, 0x44, 0x6B, 0xF0, 0x08, 0x4E, +0x64, 0x33, 0xCD, 0xE3, 0x03, 0x91, 0xC2, 0xAB, +0xFF, 0xF7, 0x1F, 0x68, 0x23, 0xE0, 0xC3, 0xE8, +0x02, 0x61, 0xD9, 0xE1, 0xC2, 0xCB, 0x30, 0xF0, +0x20, 0x6E, 0x84, 0xF5, 0x6C, 0x44, 0x6B, 0xF0, +0x08, 0x4E, 0x64, 0x33, 0xCD, 0xE3, 0x02, 0x91, +0xC2, 0xAB, 0xFF, 0xF7, 0x1F, 0x68, 0x23, 0xE0, +0xC2, 0xE8, 0x02, 0x61, 0xD9, 0xE1, 0xC2, 0xCB, +0x30, 0xF0, 0x20, 0x6E, 0x64, 0xF5, 0x6C, 0x44, +0x6B, 0xF0, 0x08, 0x4E, 0x64, 0x33, 0xCD, 0xE3, +0xC2, 0xAB, 0xFF, 0xF7, 0x1F, 0x68, 0xA3, 0xE0, +0xC3, 0xE8, 0x02, 0x61, 0xD9, 0xE5, 0xC2, 0xCB, +0x01, 0x96, 0x75, 0xAE, 0xFF, 0xF7, 0x1F, 0x6E, +0xBB, 0xE6, 0xC3, 0xEB, 0x03, 0x60, 0x01, 0x90, +0x6D, 0xE5, 0x75, 0xC8, 0x01, 0x91, 0xFF, 0xF7, +0x1F, 0x6E, 0xBB, 0xE6, 0x76, 0xA9, 0xC3, 0xEB, +0x02, 0x60, 0x75, 0xE5, 0xB6, 0xC9, 0x6A, 0x42, +0xFF, 0x6D, 0xAC, 0xEB, 0x02, 0x5B, 0x00, 0x6B, +0x0A, 0x61, 0x6C, 0x42, 0xAC, 0xEB, 0x02, 0x5B, +0x01, 0x6B, 0x05, 0x61, 0x03, 0x22, 0x03, 0x72, +0x03, 0x6B, 0x01, 0x61, 0x02, 0x6B, 0x88, 0x32, +0x69, 0xE2, 0x30, 0xF0, 0x20, 0x6D, 0xA4, 0xF5, +0x0C, 0x4A, 0x6B, 0xF0, 0x08, 0x4D, 0x44, 0x32, +0xA9, 0xE2, 0xA2, 0xAA, 0xFF, 0xF7, 0x1F, 0x6E, +0xFB, 0xE6, 0xC2, 0xED, 0x02, 0x60, 0xBD, 0xE7, +0xE2, 0xCA, 0x88, 0x34, 0x6D, 0xE4, 0x30, 0xF0, +0x20, 0x6A, 0x24, 0xF6, 0x0C, 0x4B, 0x6B, 0xF0, +0x08, 0x4A, 0x64, 0x33, 0x4D, 0xE3, 0x00, 0x95, +0x42, 0xAB, 0xFF, 0xF7, 0x1F, 0x6C, 0xB3, 0xE4, +0x82, 0xEA, 0x02, 0x60, 0x49, 0xE5, 0x42, 0xCB, +0x07, 0x91, 0x06, 0x90, 0x04, 0x63, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x21, 0x6A, 0x52, 0xF4, 0x48, 0x9A, 0x01, 0x6B, +0xFF, 0x68, 0x6C, 0xEA, 0x8C, 0xE8, 0x06, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x04, 0xF5, 0x04, 0x4C, +0x80, 0x18, 0x48, 0x43, 0xD4, 0xF3, 0x8C, 0x40, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x84, 0x34, 0x00, 0x6B, 0x51, 0xE4, 0x60, 0xCC, +0xF4, 0xF3, 0x8C, 0x40, 0x84, 0x34, 0x51, 0xE4, +0x60, 0xCC, 0xB4, 0xF3, 0x8C, 0x40, 0x84, 0x34, +0x51, 0xE4, 0x60, 0xCC, 0x94, 0xF3, 0x8C, 0x40, +0x84, 0x34, 0x41, 0xE0, 0x51, 0xE4, 0x60, 0xCC, +0x29, 0xF0, 0x78, 0xC0, 0x49, 0xF0, 0x78, 0xC0, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF3, 0x68, 0x9B, 0xFF, 0x6A, 0x8C, 0xEA, +0x50, 0x32, 0x69, 0xE2, 0x60, 0x9A, 0x30, 0xF0, +0x21, 0x6C, 0xD4, 0xF5, 0x04, 0x4C, 0x04, 0xD3, +0x61, 0x9A, 0x04, 0x05, 0x10, 0x6E, 0x05, 0xD3, +0x62, 0x9A, 0x06, 0xD3, 0x43, 0x9A, 0x07, 0xD2, +0x00, 0x18, 0x3C, 0xD6, 0x09, 0x97, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, +0x0E, 0xD1, 0x0D, 0xD0, 0xFF, 0x69, 0x2C, 0xEC, +0x80, 0x18, 0x00, 0x48, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x49, 0xF5, 0x7E, 0xA2, +0x7F, 0x68, 0x01, 0x6C, 0x6C, 0xE8, 0xE7, 0xF3, +0x60, 0x9A, 0x2C, 0xE8, 0x8C, 0xEB, 0x21, 0x23, +0x69, 0xF5, 0x85, 0xA2, 0x69, 0xF5, 0xC4, 0xA2, +0x49, 0xF5, 0xFF, 0xA2, 0x04, 0xD4, 0x69, 0xF5, +0x88, 0xA2, 0x3F, 0x6B, 0x6C, 0xEE, 0x6C, 0xEC, +0x05, 0xD4, 0x69, 0xF5, 0x80, 0xA2, 0xB0, 0x67, +0x2C, 0xEE, 0x6C, 0xEC, 0x06, 0xD4, 0x69, 0xF5, +0x81, 0xA2, 0x8C, 0xEB, 0x07, 0xD3, 0x69, 0xF5, +0x40, 0xA2, 0x30, 0xF0, 0x20, 0x6C, 0x04, 0xF5, +0x10, 0x4C, 0x5E, 0x32, 0x08, 0xD2, 0x80, 0x18, +0x48, 0x43, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x5C, 0x9A, 0x90, 0x67, 0x40, 0xEA, 0xC0, 0xF1, +0x0F, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x49, 0xF5, 0x9D, 0xA2, 0x80, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0xFF, 0x6C, 0x8C, 0xEB, +0x0B, 0x23, 0xE7, 0xF3, 0x40, 0x9A, 0x01, 0x6B, +0x6C, 0xEA, 0xA0, 0xF1, 0x1D, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x44, 0xF5, 0x08, 0x4C, 0x10, 0x10, +0x69, 0xF5, 0xA3, 0xA2, 0x10, 0x6B, 0xAC, 0xEB, +0x8C, 0xEB, 0x0D, 0x23, 0xE7, 0xF3, 0x40, 0x9A, +0x01, 0x6B, 0x6C, 0xEA, 0xA0, 0xF1, 0x0C, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF5, 0x14, 0x4C, +0x80, 0x18, 0x48, 0x43, 0xA5, 0x11, 0x69, 0xF5, +0x69, 0xA2, 0x3F, 0x6A, 0x6C, 0xEA, 0x8C, 0xEA, +0x02, 0x22, 0x3F, 0x72, 0x1E, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF1, 0x48, 0x9A, 0x14, 0x33, +0xFF, 0x6E, 0x49, 0xE3, 0x40, 0xA2, 0x4C, 0xEE, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x49, 0xF5, 0xBF, 0xA2, 0xCA, 0xED, 0x0D, 0x60, +0xE7, 0xF3, 0x40, 0x9A, 0x01, 0x6B, 0x6C, 0xEA, +0x80, 0xF1, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0x64, 0xF5, 0x00, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x7F, 0x11, 0x30, 0x69, 0x38, 0xE8, 0x30, 0xF0, +0x21, 0x6A, 0x92, 0xF7, 0x10, 0x4A, 0x12, 0xE9, +0x25, 0xE2, 0x68, 0xA1, 0x40, 0x6A, 0x6C, 0xEA, +0x10, 0x22, 0x30, 0xF0, 0x21, 0x6A, 0x52, 0xF4, +0x48, 0x9A, 0x01, 0x6B, 0x6C, 0xEA, 0x60, 0xF1, +0x0B, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x64, 0xF5, +0x1C, 0x4C, 0xB0, 0x67, 0x80, 0x18, 0x48, 0x43, +0x63, 0x11, 0x80, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xFF, 0x6B, 0x6C, 0xEA, 0x0B, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x69, 0xF5, +0x81, 0xA2, 0xDF, 0xF6, 0x01, 0x4B, 0x8C, 0xEB, +0x69, 0xF5, 0x61, 0xC2, 0x5F, 0xA1, 0x1F, 0x6E, +0x3F, 0x6F, 0x4C, 0xEE, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x69, 0xF5, 0x64, 0xA2, +0xE7, 0xF3, 0x40, 0x9A, 0x6C, 0xEF, 0x01, 0x6B, +0x6C, 0xEA, 0x08, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0xC2, 0xEF, 0x84, 0xF5, 0x08, 0x4C, 0xB8, 0x67, +0x80, 0x18, 0x48, 0x43, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x69, 0xF5, 0x64, 0xA2, +0xDF, 0xA1, 0x1F, 0x6D, 0x6C, 0xED, 0x20, 0x6B, +0x6B, 0xEB, 0xCC, 0xEB, 0xAD, 0xEB, 0x7F, 0xC1, +0x69, 0xF5, 0x60, 0xA2, 0x69, 0xF5, 0xA8, 0xA2, +0x69, 0xF5, 0xC1, 0xA2, 0x3F, 0x6C, 0x8C, 0xED, +0x8C, 0xEE, 0x6C, 0xEC, 0x8D, 0xE6, 0x85, 0x67, +0x6E, 0xEC, 0x0A, 0x2C, 0xE7, 0xF3, 0x40, 0x9A, +0x01, 0x6B, 0x6C, 0xEA, 0x10, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0xA4, 0xF5, 0x00, 0x4C, 0x09, 0x10, +0xE7, 0xF3, 0x40, 0x9A, 0x01, 0x6B, 0x6C, 0xEA, +0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF5, +0x0C, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x30, 0xF0, +0x21, 0x6A, 0xD4, 0xF5, 0x68, 0xA2, 0x80, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, +0x00, 0x6B, 0x03, 0x22, 0x6C, 0x81, 0xC0, 0xF7, +0x62, 0x33, 0x30, 0xF0, 0x21, 0x6A, 0xD4, 0xF5, +0x91, 0xA2, 0x3F, 0x6A, 0x8C, 0xEA, 0x02, 0x22, +0x3F, 0x72, 0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x69, 0xF5, 0xA5, 0xA2, +0x49, 0xF5, 0x9F, 0xA2, 0xAE, 0xEC, 0x06, 0x2C, +0x69, 0xF5, 0x40, 0xA2, 0x3F, 0x6C, 0x4C, 0xEC, +0x0A, 0xD4, 0x02, 0x10, 0x00, 0x6D, 0x0A, 0xD5, +0x43, 0x23, 0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF4, +0x6C, 0x40, 0x6B, 0xF0, 0x08, 0x4A, 0x64, 0x33, +0x4D, 0xE3, 0x80, 0xAB, 0x0A, 0x97, 0x91, 0xE7, +0x80, 0xCB, 0xA4, 0xF4, 0x6C, 0x40, 0x64, 0x33, +0x4D, 0xE3, 0x69, 0xF5, 0xA8, 0xA2, 0xC0, 0xAB, +0x3F, 0x6C, 0x8C, 0xED, 0xB5, 0xE6, 0xA0, 0xCB, +0xE4, 0xF4, 0xAC, 0x40, 0xA4, 0x35, 0x55, 0xE5, +0x69, 0xF5, 0xC0, 0xA2, 0xE0, 0xAD, 0x8C, 0xEE, +0xD9, 0xE7, 0xC0, 0xCD, 0x69, 0xF5, 0xC1, 0xA2, +0xC4, 0xF4, 0xAC, 0x40, 0xA4, 0x35, 0x55, 0xE5, +0xCC, 0xEC, 0xC0, 0xAD, 0x91, 0xE6, 0x80, 0xCD, +0xA0, 0xAB, 0x70, 0xA1, 0x63, 0xED, 0x80, 0xF0, +0x13, 0x61, 0xE7, 0xF3, 0x40, 0x9A, 0x01, 0x6B, +0x6C, 0xEA, 0x07, 0x22, 0xD1, 0xA1, 0x30, 0xF0, +0x20, 0x6C, 0xA4, 0xF5, 0x18, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x90, 0x67, 0x80, 0x18, 0x91, 0x51, +0x90, 0x67, 0x80, 0x18, 0x6B, 0x47, 0x80, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xD4, 0xF3, 0x6C, 0x40, +0x6B, 0xF0, 0x08, 0x4A, 0x64, 0x33, 0x4D, 0xE3, +0x80, 0xAB, 0x0A, 0x95, 0x91, 0xE5, 0x80, 0xCB, +0x94, 0xF3, 0x8C, 0x40, 0x84, 0x34, 0x69, 0xF5, +0xA8, 0xA2, 0x51, 0xE4, 0xC0, 0xAC, 0x3F, 0x6B, +0x6C, 0xED, 0xB5, 0xE6, 0xA0, 0xCC, 0xF4, 0xF3, +0xAC, 0x40, 0xA4, 0x35, 0x69, 0xF5, 0xC0, 0xA2, +0x55, 0xE5, 0xE0, 0xAD, 0x6C, 0xEE, 0xD9, 0xE7, +0xC0, 0xCD, 0xB4, 0xF3, 0xAC, 0x40, 0xA4, 0x35, +0x69, 0xF5, 0xC1, 0xA2, 0x55, 0xE5, 0xE0, 0xAD, +0x6C, 0xEE, 0xD9, 0xE7, 0xC0, 0xCD, 0x54, 0xF4, +0xAC, 0x40, 0xA4, 0x35, 0x55, 0xE5, 0xC0, 0xAD, +0x0A, 0x97, 0xD9, 0xE7, 0xC0, 0xCD, 0x69, 0xF5, +0xC8, 0xA2, 0x34, 0xF4, 0xAC, 0x40, 0xA4, 0x35, +0x55, 0xE5, 0xCC, 0xEB, 0xC0, 0xAD, 0x6D, 0xE6, +0x60, 0xCD, 0x80, 0xAC, 0x20, 0xF0, 0x68, 0xA1, +0x63, 0xEC, 0x1A, 0x61, 0x20, 0xF0, 0x6E, 0xA1, +0x17, 0x2B, 0xE7, 0xF3, 0x40, 0x9A, 0x01, 0x6B, +0x6C, 0xEA, 0x09, 0x22, 0x20, 0xF0, 0xC8, 0xA1, +0x30, 0xF0, 0x20, 0x6C, 0xC4, 0xF5, 0x14, 0x4C, +0xB0, 0x67, 0x80, 0x18, 0x48, 0x43, 0x90, 0x67, +0x80, 0x18, 0x24, 0x50, 0x20, 0xF0, 0x45, 0xA1, +0x01, 0x4A, 0x20, 0xF0, 0x45, 0xC1, 0x24, 0x10, +0x6F, 0xA1, 0x40, 0x6A, 0x6C, 0xEA, 0x20, 0x22, +0x30, 0xF0, 0x21, 0x6A, 0x52, 0xF4, 0x48, 0x9A, +0x01, 0x6B, 0x6C, 0xEA, 0x07, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0xE4, 0xF5, 0x08, 0x4C, 0xB0, 0x67, +0x80, 0x18, 0x48, 0x43, 0x30, 0xF0, 0x20, 0x6A, +0x94, 0xF3, 0x6C, 0x40, 0x64, 0x33, 0x6B, 0xF0, +0x08, 0x4A, 0x49, 0xE3, 0x40, 0xAA, 0x03, 0x22, +0x90, 0x67, 0x80, 0x18, 0x24, 0x50, 0x6F, 0xA1, +0x41, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x4F, 0xC1, +0x0A, 0x94, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, +0x08, 0x4B, 0x69, 0xF5, 0xA8, 0xA3, 0x69, 0xF5, +0xC1, 0xA3, 0x69, 0xF5, 0xE0, 0xA3, 0x04, 0xD4, +0x69, 0xF5, 0x84, 0xA3, 0x3F, 0x6A, 0x4C, 0xED, +0x4C, 0xEC, 0x05, 0xD4, 0x49, 0xF5, 0x9D, 0xA3, +0x1F, 0x6B, 0x4C, 0xEE, 0x8C, 0xEB, 0x4C, 0xEF, +0x90, 0x67, 0x06, 0xD3, 0x80, 0x18, 0x7E, 0x47, +0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xE1, 0xF7, 0x68, 0xA2, 0xE1, 0xF7, 0x08, 0x4A, +0x60, 0xC4, 0x41, 0xA2, 0x40, 0xC5, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0x68, 0x9B, +0xFF, 0x6A, 0x4C, 0xEC, 0x94, 0x34, 0x71, 0xE4, +0x60, 0xA4, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, 0x68, 0x9B, +0xFF, 0x6A, 0x4C, 0xEC, 0x94, 0x34, 0x71, 0xE4, +0x60, 0xA4, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0x40, 0xA4, 0x60, 0xA5, 0x60, 0xC4, 0x40, 0xC5, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, +0x0C, 0x5C, 0x13, 0x61, 0x2C, 0x5C, 0x06, 0x60, +0x48, 0x44, 0xFC, 0x4A, 0x4F, 0x32, 0x01, 0x4A, +0x6C, 0xEA, 0x20, 0xE8, 0x36, 0x5C, 0x09, 0x61, +0x40, 0x5C, 0x02, 0x6A, 0x07, 0x61, 0x4A, 0x5C, +0x03, 0x6A, 0x04, 0x61, 0x54, 0x5C, 0x04, 0x6A, +0x01, 0x61, 0x01, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0xAA, 0xEC, 0x64, 0x6A, 0x31, 0x60, 0x2F, 0x24, +0x83, 0xED, 0x2D, 0x61, 0x02, 0xF0, 0x00, 0x5D, +0x04, 0x6A, 0x0C, 0x61, 0x04, 0xF0, 0x00, 0x5D, +0x03, 0x6A, 0x08, 0x61, 0x08, 0xF0, 0x00, 0x5D, +0x02, 0x6A, 0x04, 0x61, 0xEF, 0xF7, 0x1E, 0x4A, +0x43, 0xED, 0x58, 0x67, 0xA4, 0xEA, 0x84, 0xEA, +0x00, 0x6B, 0x01, 0x6A, 0xA6, 0x35, 0x83, 0xED, +0x11, 0x60, 0x81, 0xF4, 0x00, 0x6E, 0xC7, 0xEB, +0xC9, 0xE2, 0x01, 0x75, 0xFF, 0xF7, 0x1F, 0x6E, +0xCC, 0xEA, 0xB3, 0xE4, 0x04, 0x61, 0x02, 0x5C, +0x04, 0x60, 0x01, 0x74, 0x06, 0x60, 0x02, 0x2C, +0x04, 0x10, 0x02, 0x6D, 0x01, 0x4B, 0x0C, 0x73, +0xE9, 0x61, 0x5A, 0x32, 0x01, 0x10, 0x00, 0x6A, +0xFF, 0x6B, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x6B, 0x8C, 0xEB, +0xA2, 0xF3, 0x9C, 0x9A, 0xFE, 0x63, 0xA2, 0xF3, +0x1C, 0x4A, 0x00, 0xD4, 0x81, 0x9A, 0x44, 0xAA, +0x00, 0xF0, 0x0A, 0x05, 0x01, 0xD4, 0x9D, 0x67, +0x44, 0xCC, 0x40, 0xA4, 0x43, 0xEB, 0x05, 0x61, +0x01, 0x4B, 0x4B, 0xE3, 0xFF, 0x6B, 0x6C, 0xEA, +0x04, 0x10, 0x01, 0x4C, 0xAA, 0xEC, 0xF5, 0x61, +0x00, 0x6A, 0x02, 0x63, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, +0x04, 0x67, 0x4C, 0xE8, 0xAC, 0xEA, 0x7F, 0x6B, +0x82, 0x67, 0x6C, 0xEC, 0x80, 0x18, 0x56, 0x49, +0x30, 0x6B, 0x78, 0xE8, 0x14, 0x6C, 0x30, 0xF0, +0x21, 0x6B, 0x92, 0xF7, 0x10, 0x4B, 0x12, 0xE8, +0x0D, 0xE3, 0x98, 0xEA, 0x12, 0xEA, 0x20, 0xF0, +0x48, 0xC3, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, +0x45, 0x67, 0x30, 0x6D, 0xB8, 0xEC, 0x30, 0xF0, +0x21, 0x6D, 0x92, 0xF7, 0x10, 0x4D, 0x6C, 0xEA, +0x12, 0xEC, 0x95, 0xE5, 0xC0, 0xA5, 0x81, 0xA5, +0x30, 0xF0, 0x21, 0x6D, 0x93, 0xF7, 0xFC, 0xA5, +0x04, 0x6D, 0xEC, 0xED, 0x6C, 0xED, 0x16, 0x2D, +0xFF, 0x72, 0x02, 0x61, 0x43, 0x67, 0x20, 0xE8, +0x7F, 0x6D, 0xAC, 0xEE, 0x4C, 0xED, 0xA3, 0xEE, +0x0A, 0x60, 0x80, 0x6C, 0x8B, 0xEC, 0x4C, 0xEC, +0xCD, 0xEC, 0x00, 0xF6, 0x80, 0x32, 0x00, 0xF6, +0x43, 0x32, 0x6C, 0xEA, 0x20, 0xE8, 0x83, 0xED, +0x01, 0x60, 0x44, 0x67, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0x4C, 0xEE, 0x4C, 0xEC, 0x4C, 0xED, +0x06, 0x26, 0x2C, 0x5C, 0x04, 0x61, 0x68, 0x44, +0xE8, 0x4B, 0x4C, 0xEB, 0x01, 0x10, 0x64, 0x67, +0x20, 0x5B, 0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF3, 0x54, 0x9A, 0xAC, 0x35, 0xE0, 0x4B, +0x55, 0xE5, 0x40, 0x9D, 0xFF, 0x6D, 0xAC, 0xEB, +0x07, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, +0x4C, 0x9A, 0xAC, 0x35, 0x55, 0xE5, 0x40, 0x9D, +0x01, 0x6D, 0xA4, 0xEB, 0x4C, 0xED, 0xFF, 0x6A, +0x01, 0x25, 0x44, 0x67, 0x20, 0xE8, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x4C, 0xEE, 0x30, 0x68, 0x18, 0xEE, +0x30, 0xF0, 0x21, 0x6B, 0x92, 0xF7, 0x10, 0x4B, +0x4C, 0xED, 0x4C, 0xEC, 0x27, 0x67, 0x01, 0x75, +0x09, 0xD6, 0x4C, 0xE9, 0x12, 0xE8, 0x01, 0xE3, +0x7F, 0x6B, 0x6C, 0xEC, 0x1F, 0x61, 0x0C, 0x5C, +0x05, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x88, 0xF2, +0x08, 0x4A, 0x1E, 0x10, 0x0A, 0x29, 0xF4, 0x4C, +0x4C, 0xEC, 0x03, 0x6A, 0x58, 0xEC, 0x30, 0xF0, +0x20, 0x6A, 0x08, 0xF4, 0x0C, 0x4A, 0x12, 0xEC, +0x36, 0x10, 0x2C, 0x5C, 0xC0, 0xF0, 0x0F, 0x61, +0xD4, 0x4C, 0x4C, 0xEC, 0x03, 0x6A, 0x58, 0xEC, +0x30, 0xF0, 0x20, 0x6A, 0xA8, 0xF3, 0x10, 0x4A, +0x12, 0xEC, 0x29, 0x10, 0x0C, 0x5C, 0x10, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x88, 0xF2, 0x14, 0x4A, +0x91, 0xE2, 0x80, 0xA4, 0x09, 0x95, 0xD1, 0x67, +0x80, 0x18, 0x8C, 0x49, 0x8C, 0xA0, 0x19, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0x6C, 0xC0, 0xB4, 0x10, +0x0A, 0x29, 0xF4, 0x4C, 0x4C, 0xEC, 0x03, 0x6A, +0x58, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0xA8, 0xF4, +0x10, 0x4A, 0x12, 0xEC, 0x0C, 0x10, 0x2C, 0x5C, +0xA0, 0xF0, 0x05, 0x61, 0xD4, 0x4C, 0x4C, 0xEC, +0x03, 0x6A, 0x58, 0xEC, 0x30, 0xF0, 0x20, 0x6A, +0x48, 0xF4, 0x14, 0x4A, 0x12, 0xEC, 0x89, 0xE2, +0x08, 0xD2, 0x01, 0x6A, 0x4B, 0xEA, 0x7D, 0x67, +0x00, 0x6C, 0x50, 0xC3, 0x51, 0xC3, 0x52, 0xC3, +0x07, 0xD4, 0x06, 0xD4, 0x07, 0x94, 0x08, 0x93, +0x89, 0xE3, 0x80, 0xA2, 0x2C, 0x74, 0x03, 0x61, +0x2C, 0x6C, 0x01, 0x29, 0x0C, 0x6C, 0x09, 0x95, +0xD1, 0x67, 0x80, 0x18, 0x8C, 0x49, 0xFF, 0x72, +0x08, 0x60, 0x06, 0x94, 0xBD, 0x67, 0x8D, 0xE5, +0x50, 0xC3, 0x01, 0x4C, 0xFF, 0x6A, 0x4C, 0xEC, +0x06, 0xD4, 0x07, 0x95, 0x01, 0x4D, 0x03, 0x75, +0x07, 0xD5, 0xE4, 0x61, 0x06, 0x92, 0x05, 0x2A, +0x6C, 0xA0, 0xE7, 0x4A, 0x6C, 0xEA, 0x4C, 0xC0, +0x6E, 0x10, 0x7A, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, +0x1F, 0x22, 0x6F, 0xA0, 0x30, 0x6A, 0x6C, 0xEA, +0x20, 0x72, 0x1A, 0x61, 0x05, 0x21, 0x30, 0xF0, +0x20, 0x6A, 0xE8, 0xF5, 0x04, 0x4A, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC8, 0xF5, 0x1C, 0x4A, +0x9D, 0x67, 0x71, 0xA4, 0x2D, 0x5B, 0x01, 0x61, +0xE0, 0x4B, 0x40, 0x9A, 0x01, 0x6C, 0x84, 0xEB, +0x4C, 0xEC, 0x29, 0x24, 0x04, 0x04, 0x00, 0xF0, +0x11, 0x05, 0x80, 0x18, 0x2A, 0x49, 0x23, 0x10, +0x7A, 0xA0, 0x40, 0x6A, 0x6C, 0xEA, 0x1F, 0x22, +0x6F, 0xA0, 0x30, 0x6A, 0x6C, 0xEA, 0x20, 0x72, +0x1A, 0x61, 0x05, 0x21, 0x30, 0xF0, 0x20, 0x6A, +0xE8, 0xF5, 0x14, 0x4A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xE8, 0xF5, 0x0C, 0x4A, 0xBD, 0x67, +0x71, 0xA5, 0x2D, 0x5B, 0x01, 0x61, 0xE0, 0x4B, +0x40, 0x9A, 0x01, 0x6C, 0x84, 0xEB, 0x4C, 0xEC, +0x06, 0x24, 0x7D, 0x67, 0x51, 0xA3, 0x50, 0xC3, +0x01, 0x6A, 0x4B, 0xEA, 0x51, 0xC3, 0x9D, 0x67, +0x71, 0xA4, 0xFF, 0x73, 0x0B, 0x60, 0x52, 0xA4, +0xFF, 0x72, 0x08, 0x60, 0x65, 0xC0, 0x6C, 0xA0, +0x44, 0xC0, 0x19, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x10, 0x6B, 0x14, 0x10, 0xBD, 0x67, 0x51, 0xA5, +0xFF, 0x72, 0x03, 0x60, 0x72, 0xA5, 0xFF, 0x73, +0x07, 0x60, 0x7D, 0x67, 0x51, 0xA3, 0xFF, 0x72, +0x0B, 0x61, 0x52, 0xA3, 0xFF, 0x72, 0x08, 0x60, +0x6C, 0xA0, 0x44, 0xC0, 0x19, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x08, 0x6B, 0x6D, 0xEA, 0x4C, 0xC0, +0x9D, 0x67, 0x50, 0xA4, 0x01, 0x10, 0xFF, 0x6A, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD1, +0x00, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, 0x30, 0x6B, +0x78, 0xEC, 0x30, 0xF0, 0x21, 0x6B, 0x92, 0xF7, +0x10, 0x4B, 0x06, 0x67, 0x4C, 0xE8, 0xE0, 0xA5, +0x12, 0xEC, 0x91, 0xE3, 0xCC, 0xA4, 0x03, 0x6B, +0xCC, 0xEB, 0x4C, 0xEB, 0x54, 0x23, 0x04, 0x6B, +0xCC, 0xEB, 0x4C, 0xEB, 0x50, 0x23, 0xDF, 0xA4, +0x20, 0x6B, 0x6B, 0xEB, 0xCC, 0xEB, 0x4C, 0xEB, +0x4A, 0x23, 0x7F, 0xA4, 0x0A, 0x69, 0x7F, 0x6E, +0x76, 0x33, 0xFF, 0x4B, 0x38, 0xEB, 0xEC, 0xEE, +0x12, 0xEB, 0x4C, 0xEB, 0x27, 0x43, 0x2C, 0x49, +0x22, 0xEE, 0x3D, 0x61, 0x80, 0x69, 0x7B, 0xE6, +0x02, 0x70, 0xEC, 0xE9, 0x4C, 0xEE, 0x11, 0x61, +0x33, 0x76, 0x35, 0x60, 0x02, 0x21, 0xC4, 0xC4, +0x02, 0x10, 0x4F, 0x46, 0x44, 0xC4, 0x80, 0x6A, +0xEF, 0x46, 0x4B, 0xEA, 0x4D, 0xEF, 0xFF, 0x6A, +0x4C, 0xEF, 0xCC, 0xA4, 0xFF, 0xF6, 0x08, 0x4A, +0x17, 0x10, 0x35, 0x76, 0x24, 0x60, 0x34, 0x76, +0x03, 0x61, 0xB5, 0x6F, 0x15, 0x29, 0x06, 0x10, +0x05, 0x21, 0x80, 0x68, 0xE1, 0x46, 0x0B, 0xE8, +0x0D, 0xEF, 0x04, 0x10, 0x80, 0x6F, 0xEB, 0xEF, +0xCD, 0xEF, 0xFF, 0x6A, 0x01, 0x4E, 0xC4, 0xC4, +0xCC, 0xA4, 0x4C, 0xEF, 0x19, 0x6A, 0x4B, 0xEA, +0xCC, 0xEA, 0x08, 0x6E, 0xCD, 0xEA, 0x4C, 0xC4, +0xCC, 0xA4, 0x18, 0x6A, 0xCC, 0xEA, 0x03, 0x22, +0x44, 0xA4, 0x49, 0xE3, 0x44, 0xC4, 0x6D, 0xE7, +0x60, 0xC5, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, +0x01, 0x91, 0x00, 0x90, 0x01, 0x63, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0x6B, 0x78, 0xEA, +0x30, 0xF0, 0x21, 0x6C, 0x92, 0xF7, 0x10, 0x4C, +0x12, 0xEB, 0x6D, 0xE4, 0x03, 0x2E, 0x25, 0x67, +0x00, 0x68, 0x02, 0x10, 0x26, 0x67, 0x20, 0x68, +0x1F, 0x6C, 0x00, 0xF6, 0x80, 0x37, 0x00, 0xF6, +0xE3, 0x37, 0x1F, 0x65, 0x01, 0x6F, 0xE4, 0xEC, +0x2C, 0xEF, 0x10, 0x27, 0xEC, 0xA3, 0x38, 0x67, +0x21, 0xE0, 0x1F, 0x65, 0x38, 0x67, 0x03, 0x6F, +0xFF, 0x6C, 0x2C, 0xEF, 0x8C, 0xEF, 0x8C, 0xE8, +0x09, 0x27, 0x0C, 0x58, 0x07, 0x61, 0x20, 0x48, +0x8C, 0xE8, 0x04, 0x10, 0xFF, 0x4C, 0xE1, 0x44, +0xE4, 0x2F, 0x00, 0x68, 0x00, 0x69, 0x02, 0x2D, +0xA6, 0x67, 0x20, 0x69, 0x00, 0x6C, 0x01, 0x6F, +0xE4, 0xEC, 0x00, 0xF6, 0x80, 0x36, 0xAC, 0xEF, +0x00, 0xF6, 0xC3, 0x36, 0x0D, 0x27, 0xC5, 0xE1, +0xCC, 0xA3, 0x03, 0x6D, 0xFF, 0x6C, 0xCC, 0xED, +0x8C, 0xED, 0x8C, 0xE9, 0x09, 0x25, 0x0C, 0x59, +0x07, 0x61, 0x20, 0x49, 0x8C, 0xE9, 0x04, 0x10, +0x01, 0x4C, 0x20, 0x74, 0xE8, 0x61, 0x00, 0x69, +0x00, 0xC3, 0x21, 0xC3, 0x82, 0x67, 0x80, 0x18, +0x1E, 0x49, 0x7F, 0x6B, 0x4C, 0xEB, 0x63, 0xE8, +0x50, 0x67, 0x09, 0x61, 0xFF, 0x6A, 0x83, 0x67, +0x4C, 0xEB, 0x2C, 0xEA, 0x43, 0xEB, 0x01, 0x60, +0x91, 0x67, 0xFF, 0x6A, 0x8C, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFF, 0x63, 0x01, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF3, 0xCC, 0x9A, 0x03, 0x6A, 0x02, 0x68, +0x40, 0xC6, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, +0xB0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, +0xE8, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, +0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, +0x98, 0x9A, 0x01, 0x6A, 0xE0, 0xDD, 0x80, 0xDB, +0x00, 0xC6, 0xE0, 0xDD, 0x80, 0xDB, 0x40, 0xC6, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, 0x5C, 0x9A, +0x40, 0xDD, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x80, 0xDB, 0xC8, 0xF5, 0x11, 0xC2, +0x00, 0x68, 0x00, 0xC6, 0xE0, 0xDD, 0x80, 0xDB, +0x04, 0x6B, 0xC8, 0xF5, 0x70, 0xC2, 0x01, 0x90, +0x01, 0x63, 0x20, 0xE8, 0xE4, 0x63, 0x37, 0x62, +0x36, 0xD1, 0x35, 0xD0, 0x30, 0xF0, 0x20, 0x6D, +0x07, 0x04, 0x62, 0xF3, 0x08, 0x4D, 0x54, 0x6E, +0x00, 0x18, 0x3C, 0xD6, 0x30, 0xF0, 0x20, 0x6D, +0x1C, 0x04, 0x02, 0xF3, 0x14, 0x4D, 0x54, 0x6E, +0x00, 0x18, 0x3C, 0xD6, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF3, 0x68, 0x9A, 0x02, 0xF3, 0x08, 0x4A, +0x30, 0xF0, 0x21, 0x68, 0x04, 0xD3, 0x61, 0x9A, +0x44, 0xAA, 0x92, 0xF7, 0x10, 0x48, 0x05, 0xD3, +0x7D, 0x67, 0x4C, 0xCB, 0x30, 0xF0, 0x21, 0x6A, +0x93, 0xF5, 0x10, 0x4A, 0x32, 0xD2, 0x68, 0xA0, +0x20, 0x6A, 0xC7, 0xA0, 0x4B, 0xEA, 0x6C, 0xEA, +0x09, 0x6B, 0x6D, 0xEA, 0xEA, 0x4B, 0xCC, 0xEB, +0x04, 0x6E, 0xEC, 0xA0, 0xCB, 0xEE, 0xCC, 0xEB, +0x67, 0xC0, 0x04, 0x6B, 0xED, 0xEB, 0xCC, 0xEB, +0x20, 0x6E, 0xCD, 0xEA, 0x40, 0x6E, 0xCD, 0xEA, +0xDA, 0xA0, 0x48, 0xC0, 0x03, 0x6A, 0x4B, 0xEA, +0xCC, 0xEA, 0x41, 0x6E, 0xCB, 0xEE, 0x00, 0x6C, +0xCC, 0xEA, 0xCF, 0xA0, 0x81, 0xC0, 0x82, 0xC0, +0x99, 0xC0, 0x31, 0x6C, 0x8B, 0xEC, 0xCC, 0xEC, +0x8F, 0xC0, 0x7F, 0x6C, 0x8C, 0xEB, 0x00, 0x6C, +0x8A, 0xC0, 0x8A, 0xC8, 0xDF, 0x4C, 0x8C, 0xEA, +0x8D, 0xA0, 0x5A, 0xC0, 0x02, 0x6A, 0x4B, 0xEA, +0x8C, 0xEA, 0x6C, 0xC0, 0x4D, 0xC0, 0x00, 0x6B, +0x33, 0x6D, 0x01, 0x6A, 0x7F, 0xC0, 0x20, 0xF0, +0x6E, 0xC0, 0xA0, 0xC0, 0xA6, 0xC0, 0x20, 0xF0, +0x48, 0xC0, 0x30, 0xF0, 0x20, 0x69, 0x80, 0xF2, +0x48, 0x99, 0x87, 0x40, 0x1A, 0x4C, 0xFF, 0x6D, +0x02, 0x6E, 0x40, 0xEA, 0x80, 0xF2, 0x48, 0x99, +0x87, 0x40, 0x1C, 0x4C, 0x00, 0x6D, 0x02, 0x6E, +0x40, 0xEA, 0x32, 0x93, 0x30, 0x48, 0x6A, 0xE8, +0xAE, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x80, 0x18, +0x8C, 0x4A, 0x30, 0xF0, 0x21, 0x69, 0x80, 0xF2, +0x4C, 0x98, 0x93, 0xF5, 0x10, 0x49, 0x91, 0x67, +0x1C, 0x05, 0x54, 0x6E, 0x40, 0xEA, 0x80, 0xF2, +0x4C, 0x98, 0x87, 0x41, 0x4D, 0x4C, 0x07, 0x05, +0x54, 0x6E, 0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x98, +0x30, 0xF0, 0x21, 0x6C, 0x93, 0xF7, 0x0A, 0x4C, +0x04, 0x05, 0x0A, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x21, 0x6A, 0x30, 0xF0, 0x21, 0x6B, 0x33, 0xF6, +0x1A, 0x4A, 0xF3, 0xF6, 0x02, 0x4B, 0x0A, 0x6C, +0x80, 0xCA, 0x00, 0x6C, 0xA0, 0xF0, 0x88, 0xCA, +0x02, 0x4A, 0x6A, 0xEA, 0xF8, 0x61, 0x37, 0x97, +0x36, 0x91, 0x35, 0x90, 0x1C, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xEE, 0x30, 0x6A, +0x58, 0xEC, 0x30, 0xF0, 0x21, 0x6A, 0x92, 0xF7, +0x10, 0x4A, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xED, +0x11, 0xD7, 0x04, 0xD5, 0x05, 0xD6, 0x12, 0xEC, +0x89, 0xE2, 0x86, 0x67, 0x06, 0xD2, 0xE4, 0xF2, +0x08, 0x4C, 0x30, 0xF0, 0x20, 0x6A, 0x84, 0x34, +0x6B, 0xF0, 0x08, 0x4A, 0x49, 0xE4, 0x01, 0xAA, +0x03, 0xED, 0x13, 0xE5, 0x02, 0x60, 0x04, 0x92, +0x53, 0xE0, 0x6C, 0xEC, 0x05, 0x93, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x24, 0xF3, +0x1C, 0x4B, 0x64, 0x33, 0x4D, 0xE3, 0x61, 0xAB, +0xFF, 0x4C, 0x07, 0xD3, 0xFF, 0xF7, 0x1F, 0x6B, +0x6C, 0xEC, 0x07, 0x5C, 0x13, 0x60, 0x04, 0x93, +0x03, 0xEB, 0x08, 0x60, 0x05, 0x93, 0xE4, 0xF2, +0x08, 0x4B, 0x64, 0x33, 0x49, 0xE3, 0x61, 0xAA, +0xFF, 0x4B, 0x12, 0x10, 0x05, 0x93, 0xE4, 0xF2, +0x08, 0x4B, 0x64, 0x33, 0x49, 0xE3, 0x61, 0xAA, +0x01, 0x4B, 0x0A, 0x10, 0x05, 0x93, 0x04, 0x94, +0xE4, 0xF2, 0x08, 0x4B, 0x64, 0x33, 0x49, 0xE3, +0x0C, 0x33, 0x0F, 0xE3, 0x8D, 0xE3, 0x6F, 0x33, +0x61, 0xCA, 0x05, 0x93, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xE4, 0xF2, 0x08, 0x4B, +0x64, 0x33, 0x4D, 0xE3, 0x61, 0xAB, 0xE7, 0xF3, +0x40, 0x9A, 0x08, 0xD3, 0xFF, 0x6B, 0x01, 0x4B, +0x4C, 0xEB, 0x09, 0x23, 0x08, 0x95, 0x04, 0x97, +0x30, 0xF0, 0x20, 0x6C, 0xE4, 0xF5, 0x14, 0x4C, +0xD0, 0x67, 0x80, 0x18, 0x48, 0x43, 0x04, 0x92, +0x43, 0xE8, 0x14, 0x61, 0x06, 0x94, 0x43, 0xE0, +0xFF, 0xF7, 0x1F, 0x6A, 0x69, 0xA4, 0x4C, 0xE8, +0x0F, 0x6C, 0x6A, 0x32, 0x8C, 0xEA, 0x44, 0x32, +0x01, 0x6D, 0xAD, 0xEA, 0x8C, 0xEA, 0xB4, 0x4C, +0x48, 0x32, 0x6C, 0xEC, 0x4D, 0xEC, 0x06, 0x92, +0x89, 0xC2, 0x13, 0x10, 0x04, 0x93, 0x06, 0x94, +0xFF, 0xF7, 0x1F, 0x6A, 0x03, 0xE3, 0x69, 0xA4, +0x4C, 0xE8, 0x0F, 0x6C, 0x6A, 0x32, 0x8C, 0xEA, +0x44, 0x32, 0x8C, 0xEA, 0x48, 0x34, 0x3D, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x06, 0x93, 0x8D, 0xEA, +0x49, 0xC3, 0x06, 0x94, 0x03, 0x6B, 0x49, 0xA4, +0x4A, 0x32, 0x6C, 0xEA, 0xFF, 0x4A, 0x02, 0x5A, +0x04, 0x61, 0x03, 0x58, 0x07, 0x91, 0x40, 0x60, +0x07, 0x10, 0x09, 0x58, 0x09, 0x6A, 0x01, 0x60, +0x50, 0x67, 0xFF, 0xF7, 0x1F, 0x68, 0x4C, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xE7, 0xF3, 0x80, 0x9A, 0xFF, 0x6B, 0x01, 0x4B, +0x8C, 0xEB, 0x0F, 0x23, 0x06, 0x93, 0x49, 0xE0, +0x28, 0xF7, 0xE2, 0xA2, 0xA9, 0xA3, 0x30, 0xF0, +0x20, 0x6C, 0x0F, 0x6B, 0xAA, 0x35, 0x04, 0xF6, +0x18, 0x4C, 0x6C, 0xED, 0xD0, 0x67, 0x80, 0x18, +0x48, 0x43, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x41, 0xE0, 0x28, 0xF7, 0x42, 0xA0, +0x07, 0x94, 0xFF, 0xF7, 0x1F, 0x6B, 0x00, 0x69, +0x49, 0xE4, 0x6C, 0xEA, 0x0A, 0x5A, 0x06, 0x61, +0x28, 0x42, 0xFE, 0x49, 0x6C, 0xE9, 0x1F, 0x59, +0x01, 0x61, 0x1E, 0x69, 0x05, 0x93, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x24, 0xF3, +0x1C, 0x4B, 0x64, 0x33, 0x49, 0xE3, 0x21, 0xCA, +0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, 0x68, 0x9B, +0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x08, 0x22, +0x07, 0x95, 0x30, 0xF0, 0x20, 0x6C, 0x24, 0xF6, +0x10, 0x4C, 0xD1, 0x67, 0x80, 0x18, 0x48, 0x43, +0x08, 0x94, 0x11, 0x67, 0x0B, 0x5C, 0x10, 0x61, +0x15, 0x59, 0x01, 0x6A, 0x06, 0x60, 0x0B, 0x59, +0x58, 0x67, 0x01, 0x5A, 0x58, 0x67, 0x03, 0x6B, +0x4B, 0xE3, 0x08, 0x90, 0xF6, 0x48, 0x07, 0xEA, +0x01, 0xE1, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, +0x28, 0x58, 0x01, 0x61, 0x28, 0x68, 0x03, 0x59, +0x00, 0x69, 0x02, 0x60, 0x04, 0x92, 0x4A, 0x31, +0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, 0x68, 0x9B, +0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x08, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF6, 0x00, 0x4C, +0xB1, 0x67, 0xD0, 0x67, 0x80, 0x18, 0x48, 0x43, +0x12, 0x92, 0x20, 0xCA, 0x11, 0x93, 0x00, 0xCB, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x68, 0x0C, 0xEC, +0x30, 0x6B, 0x78, 0xEC, 0x5D, 0x67, 0x25, 0x67, +0x40, 0xF0, 0xA8, 0xAA, 0x30, 0xF0, 0x21, 0x6A, +0x92, 0xF7, 0x10, 0x4A, 0x0C, 0xE9, 0x10, 0xD6, +0x11, 0xD7, 0x06, 0x07, 0x12, 0xEB, 0x69, 0xE2, +0x09, 0xD2, 0x7F, 0x6A, 0x2C, 0xEA, 0x08, 0xD2, +0x08, 0x96, 0x7D, 0x67, 0x00, 0x6A, 0x4C, 0xCB, +0x4D, 0xCB, 0x00, 0xF0, 0x1A, 0x02, 0x04, 0xD2, +0x80, 0x18, 0xFE, 0x4A, 0x80, 0x6B, 0x6B, 0xEB, +0x2C, 0xEB, 0x0C, 0xEB, 0x0A, 0x6A, 0x08, 0x2B, +0x08, 0x94, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x49, 0xE4, 0x68, 0xF5, 0x5C, 0xA2, +0xDD, 0x67, 0x8C, 0xAE, 0x6D, 0xAE, 0x00, 0x69, +0xA3, 0x44, 0x55, 0xE5, 0xA2, 0xEB, 0x05, 0x60, +0x23, 0x44, 0x67, 0xE1, 0x25, 0xE2, 0xFF, 0x6A, +0x4C, 0xE9, 0x08, 0x93, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x49, 0xE3, 0xDD, 0x67, +0x28, 0xF5, 0x48, 0xA2, 0x8C, 0xAE, 0x6D, 0xAE, +0x00, 0x68, 0x95, 0xE2, 0xA2, 0xEB, 0x04, 0x60, +0x63, 0xE4, 0x41, 0xE0, 0xFF, 0x6A, 0x4C, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xE7, 0xF3, 0x80, 0x9A, 0xFF, 0x6B, 0x01, 0x4B, +0x8C, 0xEB, 0x0C, 0x23, 0x08, 0x93, 0x30, 0xF0, +0x20, 0x6C, 0x44, 0xF6, 0x18, 0x4C, 0x49, 0xE3, +0x28, 0xF5, 0xA8, 0xA2, 0x68, 0xF5, 0xDC, 0xA2, +0x80, 0x18, 0x48, 0x43, 0x30, 0xF0, 0x21, 0x6B, +0x52, 0xF4, 0x68, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, +0x6C, 0xEA, 0x08, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0x64, 0xF6, 0x08, 0x4C, 0xB0, 0x67, 0xD1, 0x67, +0x80, 0x18, 0x48, 0x43, 0x09, 0x94, 0x3F, 0x6B, +0x5E, 0xA4, 0x6C, 0xEA, 0x7E, 0x84, 0x00, 0x53, +0x0F, 0x60, 0x43, 0xE9, 0x02, 0x60, 0x00, 0x69, +0x03, 0x10, 0x47, 0xE1, 0xFF, 0x6B, 0x6C, 0xE9, +0x43, 0xE8, 0x02, 0x60, 0x00, 0x68, 0x0A, 0x10, +0x43, 0xE0, 0xFF, 0x6A, 0x4C, 0xE8, 0x06, 0x10, +0x05, 0x22, 0xFF, 0x6B, 0x45, 0xE1, 0x41, 0xE0, +0x6C, 0xE9, 0x6C, 0xE8, 0x42, 0x58, 0x50, 0x67, +0x01, 0x61, 0x41, 0x6A, 0x10, 0x96, 0x5B, 0x59, +0x40, 0xC6, 0x51, 0x67, 0x01, 0x61, 0x5A, 0x6A, +0x11, 0x93, 0x40, 0xC3, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0x30, 0x68, 0x18, 0xEC, +0x4C, 0xED, 0x30, 0xF0, 0x21, 0x6A, 0x92, 0xF7, +0x10, 0x4A, 0x07, 0xD4, 0x06, 0xD5, 0x01, 0x69, +0x12, 0xE8, 0x01, 0xE2, 0x46, 0xA0, 0x08, 0xD2, +0x00, 0x6A, 0x05, 0xD2, 0x81, 0xA0, 0x4C, 0xA0, +0x07, 0x96, 0xFF, 0x6B, 0x91, 0xE1, 0x03, 0x6F, +0x6C, 0xEC, 0x01, 0x6D, 0x4C, 0xEF, 0x80, 0x18, +0xA0, 0x49, 0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, +0x68, 0x9B, 0x04, 0xD2, 0x00, 0xF2, 0x00, 0x6A, +0x6C, 0xEA, 0x0C, 0x22, 0x05, 0x92, 0xC1, 0xA0, +0x04, 0x97, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6C, +0x64, 0xF6, 0x18, 0x4C, 0xA2, 0x67, 0xD9, 0xE2, +0x80, 0x18, 0x48, 0x43, 0x04, 0x92, 0xFF, 0x72, +0x0E, 0x61, 0x05, 0x93, 0x81, 0xA0, 0x40, 0xA0, +0x01, 0x4B, 0x91, 0xE3, 0x42, 0xEC, 0x06, 0x60, +0x01, 0x49, 0xFF, 0x6A, 0x4C, 0xE9, 0x54, 0x71, +0x05, 0xD3, 0xD0, 0x61, 0x04, 0xD2, 0x06, 0x92, +0x38, 0x5A, 0x02, 0x61, 0x46, 0xA0, 0x0D, 0x10, +0x06, 0x92, 0x24, 0x5A, 0x05, 0x61, 0x08, 0x92, +0xFF, 0x6B, 0xFE, 0x4A, 0x6C, 0xEA, 0x05, 0x10, +0x06, 0x92, 0x15, 0x5A, 0x04, 0x92, 0x01, 0x60, +0x41, 0xA0, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, +0x30, 0x68, 0x18, 0xEC, 0x4C, 0xEF, 0x30, 0xF0, +0x21, 0x6B, 0x0D, 0xD5, 0x0E, 0xD6, 0x06, 0xD4, +0x05, 0xD7, 0x92, 0xF7, 0x10, 0x4B, 0x20, 0xA5, +0x03, 0x6D, 0x12, 0xE8, 0x01, 0xE3, 0x60, 0xA6, +0x04, 0xD3, 0x87, 0xA0, 0x04, 0x96, 0xAC, 0xEC, +0x64, 0x67, 0x4C, 0xEB, 0xC2, 0xEB, 0x03, 0x60, +0x0E, 0x91, 0x80, 0xC1, 0xA2, 0x10, 0xA0, 0xF0, +0x00, 0x23, 0x2F, 0x59, 0x80, 0xF0, 0x1D, 0x60, +0x6C, 0xA0, 0x6C, 0xED, 0x4C, 0xED, 0x80, 0xF0, +0x18, 0x25, 0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, +0x68, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x09, 0x22, 0x05, 0x95, 0x04, 0x96, 0x30, 0xF0, +0x20, 0x6C, 0x84, 0xF6, 0x0C, 0x4C, 0xF1, 0x67, +0x80, 0x18, 0x48, 0x43, 0x05, 0x92, 0x01, 0x72, +0x03, 0x60, 0x05, 0x6B, 0x01, 0x6A, 0x42, 0x10, +0x04, 0x6B, 0x00, 0x6A, 0x3F, 0x10, 0x05, 0x93, +0x81, 0x42, 0x01, 0x73, 0x01, 0x60, 0x8F, 0x42, +0xFF, 0x6A, 0x4C, 0xEC, 0x30, 0xF0, 0x20, 0x6F, +0x88, 0xF3, 0x1C, 0x4F, 0x88, 0x32, 0xE9, 0xE2, +0xC0, 0xAA, 0xFF, 0x6D, 0x88, 0x34, 0x26, 0x67, +0xAC, 0xE9, 0x04, 0xD1, 0x47, 0xA0, 0x91, 0xE7, +0xE1, 0xAC, 0x1A, 0x65, 0x38, 0x67, 0x03, 0x6A, +0x2C, 0xEA, 0xE2, 0x34, 0xAC, 0xEA, 0xAC, 0xEC, +0xC2, 0x33, 0x82, 0xEA, 0xAC, 0xEB, 0x41, 0x61, +0xE4, 0xC0, 0x30, 0xF0, 0x20, 0x6D, 0x05, 0xD5, +0x06, 0x95, 0x30, 0x69, 0x38, 0xED, 0x05, 0x91, +0x6B, 0xF0, 0x08, 0x49, 0x12, 0xED, 0x35, 0xE5, +0x47, 0xF7, 0x8E, 0xC5, 0x84, 0xA0, 0xFF, 0x74, +0x30, 0x60, 0xAC, 0xA0, 0x19, 0x6C, 0x8B, 0xEC, +0xAC, 0xEC, 0x08, 0x6D, 0xAD, 0xEC, 0x8C, 0xC0, +0x28, 0x10, 0x01, 0x4A, 0xFF, 0x6C, 0x8C, 0xEA, +0x63, 0xEA, 0x46, 0x60, 0x30, 0xF0, 0x20, 0x6C, +0x48, 0x35, 0x88, 0xF3, 0x1C, 0x4C, 0x91, 0xE5, +0xA0, 0xAC, 0xFF, 0x6C, 0xC5, 0x67, 0x8C, 0xEE, +0x2E, 0xEE, 0x05, 0x2E, 0xA2, 0x35, 0x8C, 0xED, +0x04, 0x94, 0x8E, 0xED, 0xB0, 0x25, 0x30, 0xF0, +0x20, 0x6C, 0x48, 0x35, 0x88, 0xF3, 0x1C, 0x4C, +0xB1, 0xE4, 0xA1, 0xAC, 0xFF, 0x6C, 0xC5, 0x67, +0x8C, 0xEE, 0x2E, 0xEE, 0xDE, 0x2E, 0x04, 0x96, +0xA2, 0x35, 0x8C, 0xED, 0xCE, 0xED, 0xD9, 0x2D, +0x9E, 0x17, 0x62, 0xEA, 0x00, 0x68, 0x09, 0x61, +0x3D, 0x67, 0x47, 0x41, 0x09, 0x4A, 0x40, 0xA2, +0x0D, 0x91, 0x01, 0x68, 0x40, 0xC1, 0x0E, 0x94, +0x60, 0xC4, 0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, +0x68, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x09, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF6, +0x08, 0x4C, 0xB0, 0x67, 0x80, 0x18, 0x48, 0x43, +0x01, 0x10, 0x00, 0x68, 0x50, 0x67, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0x00, 0x68, 0xF0, 0x67, 0xD0, 0x67, 0xE5, 0x17, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x68, 0x0C, 0xEC, 0xAC, 0xE8, 0xFF, 0x70, +0x04, 0xD4, 0x33, 0x60, 0x7F, 0x69, 0x0C, 0xE9, +0x91, 0x67, 0x80, 0x18, 0x2D, 0x49, 0x04, 0x93, +0x30, 0x6C, 0x98, 0xEB, 0x30, 0xF0, 0x21, 0x6B, +0x92, 0xF7, 0x10, 0x4B, 0x12, 0xEC, 0x8D, 0xE3, +0x4D, 0xE3, 0x20, 0xF0, 0x60, 0xA3, 0x00, 0xF2, +0x00, 0x6A, 0x04, 0xD3, 0x30, 0xF0, 0x21, 0x6B, +0x52, 0xF4, 0x68, 0x9B, 0x6C, 0xEA, 0x08, 0x22, +0x04, 0x96, 0x30, 0xF0, 0x20, 0x6C, 0xC4, 0xF6, +0x00, 0x4C, 0xB0, 0x67, 0x80, 0x18, 0x48, 0x43, +0x04, 0x94, 0xFF, 0x74, 0x0F, 0x60, 0x7F, 0x6A, +0x8C, 0xEA, 0x23, 0xEA, 0x0A, 0x61, 0x4E, 0xE9, +0x09, 0x29, 0x80, 0x6A, 0x70, 0x67, 0x4C, 0xEB, +0x8C, 0xEA, 0x4A, 0xEB, 0x02, 0x60, 0x02, 0x23, +0x01, 0x2A, 0xFF, 0x68, 0x50, 0x67, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0x4C, 0xED, 0x4C, 0xEE, 0xC3, 0xED, +0x4C, 0xEC, 0xEC, 0xEA, 0x02, 0x61, 0xD7, 0xE5, +0x01, 0x10, 0xB7, 0xE6, 0x03, 0x55, 0x01, 0x60, +0x25, 0x22, 0x30, 0x69, 0x38, 0xEC, 0x30, 0xF0, +0x21, 0x6A, 0x92, 0xF7, 0x10, 0x4A, 0x30, 0xF0, +0x20, 0x68, 0xFF, 0x6D, 0x02, 0x6E, 0x12, 0xE9, +0x25, 0xE2, 0x80, 0xF2, 0x48, 0x98, 0x87, 0x41, +0x1A, 0x4C, 0x40, 0xEA, 0x80, 0xF2, 0x48, 0x98, +0x87, 0x41, 0x1C, 0x4C, 0x00, 0x6D, 0x02, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, +0x68, 0x9B, 0x01, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, +0x13, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xC4, 0xF6, +0x10, 0x4C, 0x0C, 0x10, 0x30, 0xF0, 0x21, 0x6B, +0x52, 0xF4, 0x68, 0x9B, 0x01, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0xC4, 0xF6, 0x1C, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0x6B, 0x78, 0xEA, +0x30, 0xF0, 0x21, 0x6C, 0x92, 0xF7, 0x10, 0x4C, +0x12, 0xEB, 0x6D, 0xE4, 0x20, 0xF0, 0x81, 0xA3, +0xFF, 0x74, 0x0F, 0x60, 0x20, 0xF0, 0x83, 0xA3, +0x32, 0x5C, 0x04, 0x60, 0x01, 0x4C, 0x20, 0xF0, +0x83, 0xC3, 0x07, 0x10, 0x00, 0x6C, 0x20, 0xF0, +0x83, 0xC3, 0x01, 0x6C, 0x8B, 0xEC, 0x20, 0xF0, +0x81, 0xC3, 0x20, 0xF0, 0x82, 0xA3, 0xFF, 0x74, +0x0F, 0x60, 0x20, 0xF0, 0x84, 0xA3, 0x32, 0x5C, +0x08, 0x61, 0x00, 0x6C, 0x20, 0xF0, 0x84, 0xC3, +0x01, 0x6C, 0x8B, 0xEC, 0x20, 0xF0, 0x82, 0xC3, +0x03, 0x10, 0x01, 0x4C, 0x20, 0xF0, 0x84, 0xC3, +0x17, 0x2A, 0x30, 0xF0, 0x21, 0x6C, 0x52, 0xF4, +0x88, 0x9C, 0x01, 0xF0, 0x00, 0x4A, 0x8C, 0xEA, +0x0F, 0x22, 0x20, 0xF0, 0xA1, 0xA3, 0x20, 0xF0, +0xC3, 0xA3, 0x20, 0xF0, 0xE2, 0xA3, 0x20, 0xF0, +0x44, 0xA3, 0x30, 0xF0, 0x20, 0x6C, 0xE4, 0xF6, +0x08, 0x4C, 0x04, 0xD2, 0x80, 0x18, 0x48, 0x43, +0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0xFF, 0x6E, 0x44, 0x67, +0x20, 0xF4, 0x0D, 0x6B, 0x9D, 0x67, 0x68, 0xCC, +0xCC, 0xEA, 0x20, 0xF4, 0x0F, 0x6B, 0x69, 0xCC, +0x44, 0x33, 0x6D, 0xE4, 0x68, 0xAB, 0x1F, 0xF7, +0x00, 0x6C, 0xAC, 0xEE, 0x6C, 0xEC, 0x02, 0xF0, +0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, +0x20, 0x6C, 0xA3, 0xF0, 0x80, 0x9C, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF0, 0x84, 0x9C, +0x91, 0xE3, 0xA0, 0xA4, 0xF1, 0x6C, 0xAC, 0xEC, +0xC4, 0x35, 0x8D, 0xED, 0x00, 0xF6, 0xA0, 0x34, +0x00, 0xF6, 0x83, 0x34, 0xFF, 0x6D, 0xAC, 0xEC, +0x1F, 0xF7, 0x00, 0x6D, 0x6C, 0xED, 0x02, 0xF0, +0x00, 0x75, 0x01, 0x60, 0x05, 0x2D, 0x30, 0xF0, +0x20, 0x6D, 0xA3, 0xF0, 0xA0, 0x9D, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6D, 0xA3, 0xF0, 0xA4, 0x9D, +0xAD, 0xE3, 0x80, 0xC3, 0x30, 0xF0, 0x21, 0x6B, +0x52, 0xF4, 0x68, 0x9B, 0x10, 0x6C, 0x8C, 0xEB, +0x07, 0x23, 0x30, 0xF0, 0x20, 0x6C, 0x04, 0xF7, +0x04, 0x4C, 0xA2, 0x67, 0x80, 0x18, 0x48, 0x43, +0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, +0x07, 0xF7, 0x57, 0xA0, 0xFF, 0x69, 0x8C, 0xE9, +0x16, 0x22, 0x09, 0xE1, 0x07, 0xF7, 0xB2, 0xA2, +0x91, 0x67, 0x04, 0xD2, 0x80, 0x18, 0xEA, 0x4C, +0xE7, 0xF3, 0x40, 0x98, 0x10, 0x6B, 0x6C, 0xEA, +0x0A, 0x22, 0x04, 0x92, 0x30, 0xF0, 0x20, 0x6C, +0x04, 0xF7, 0x1C, 0x4C, 0x07, 0xF7, 0xD2, 0xA2, +0xB1, 0x67, 0x80, 0x18, 0x48, 0x43, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x6A, 0x63, 0xF3, +0x60, 0x9B, 0x4C, 0xEC, 0x08, 0xD4, 0x00, 0xA3, +0x10, 0x6B, 0x30, 0xF0, 0x20, 0x69, 0x6C, 0xE8, +0x13, 0x30, 0x4C, 0xE8, 0x6B, 0xF0, 0x08, 0x49, +0x35, 0xE0, 0x07, 0xF7, 0x4E, 0xA5, 0x06, 0xD5, +0x82, 0x67, 0x07, 0xD2, 0x80, 0x18, 0x1E, 0x49, +0x7F, 0x6C, 0x4C, 0xEC, 0x09, 0xD2, 0x80, 0x18, +0x2D, 0x49, 0x06, 0x93, 0x0A, 0xD2, 0x07, 0xF7, +0x57, 0xA1, 0x07, 0xF7, 0x70, 0xA3, 0x06, 0xD3, +0x59, 0x22, 0xE7, 0xF3, 0x40, 0x99, 0x10, 0x6D, +0xAC, 0xEA, 0x0C, 0x22, 0x07, 0xF7, 0x56, 0xA1, +0x07, 0x95, 0x08, 0x96, 0x09, 0x97, 0x30, 0xF0, +0x20, 0x6C, 0x24, 0xF7, 0x14, 0x4C, 0x04, 0xD2, +0x80, 0x18, 0x48, 0x43, 0x08, 0x92, 0x12, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x07, 0xF7, 0xB5, 0xA2, 0x01, 0x6B, 0x83, 0x67, +0x84, 0xE8, 0xAD, 0xEC, 0x07, 0xF7, 0x95, 0xC2, +0x06, 0x94, 0x0A, 0x95, 0x01, 0x4C, 0xA2, 0xEC, +0x0E, 0x60, 0x22, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x07, 0xF7, 0x95, 0xA2, +0x01, 0x6B, 0x64, 0xE8, 0x6F, 0xEB, 0x8C, 0xEB, +0x07, 0xF7, 0x75, 0xC2, 0x15, 0x10, 0x07, 0xF7, +0x96, 0xA2, 0x87, 0xE8, 0x6C, 0xEC, 0x10, 0x24, +0xE7, 0xF3, 0x40, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, +0x07, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF7, +0x14, 0x4C, 0xB0, 0x67, 0x80, 0x18, 0x48, 0x43, +0x90, 0x67, 0x80, 0x18, 0x12, 0x4D, 0x12, 0x10, +0x30, 0xF0, 0x21, 0x6A, 0x52, 0xF4, 0x48, 0x9A, +0x10, 0x6B, 0x6C, 0xEA, 0x07, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x64, 0xF7, 0x00, 0x4C, 0xB0, 0x67, +0x80, 0x18, 0x48, 0x43, 0x90, 0x67, 0x00, 0x6D, +0x80, 0x18, 0xEA, 0x4C, 0x0F, 0x97, 0x0E, 0x91, +0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6B, 0x44, 0x67, +0x6C, 0xEA, 0xAC, 0xEB, 0x01, 0x73, 0x0B, 0x60, +0x03, 0x23, 0x02, 0x73, 0x0F, 0x60, 0x16, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0x6D, 0xE2, 0x01, 0x6C, 0x0D, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, 0x6D, 0xE2, +0x03, 0x6C, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0x6D, 0xE2, 0x07, 0x6C, +0x07, 0xF7, 0x92, 0xC3, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0xE7, 0xF3, 0x80, 0x9B, +0x10, 0x6D, 0xAC, 0xEC, 0x0A, 0x24, 0x6D, 0xE2, +0x07, 0xF7, 0xD2, 0xA3, 0x30, 0xF0, 0x20, 0x6C, +0x64, 0xF7, 0x0C, 0x4C, 0xA2, 0x67, 0x80, 0x18, +0x48, 0x43, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0x4C, 0xEE, 0x4C, 0xED, 0xEC, 0xEA, 0x30, 0x6F, +0xF8, 0xEC, 0x30, 0xF0, 0x21, 0x6B, 0x92, 0xF7, +0x10, 0x4B, 0x12, 0xEF, 0xED, 0xE3, 0xFD, 0x67, +0xB2, 0xC7, 0x93, 0xC7, 0x55, 0xC7, 0x4B, 0xAB, +0x56, 0xC7, 0x4A, 0xAB, 0xD8, 0xC7, 0x57, 0xC7, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x49, 0xE4, 0x49, 0xF0, 0x98, 0xA2, 0x29, 0xF0, +0xB8, 0xA2, 0x80, 0x18, 0x3A, 0x49, 0x7D, 0x67, +0x59, 0xC3, 0x0C, 0x6A, 0x50, 0xC3, 0x08, 0x6A, +0x4F, 0xCB, 0x07, 0x97, 0x04, 0x94, 0x05, 0x95, +0x06, 0x96, 0x80, 0x18, 0x20, 0x41, 0x09, 0x97, +0x05, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0xFF, 0x6A, 0x63, 0xF3, 0x64, 0x9B, 0x4C, 0xEC, +0x04, 0xD4, 0x4C, 0xED, 0x4C, 0xEE, 0x4C, 0xEF, +0x94, 0x34, 0x06, 0xD5, 0x07, 0xD6, 0x05, 0xD7, +0x6D, 0xE4, 0x60, 0xA3, 0x04, 0x94, 0x6C, 0xEA, +0x08, 0xD2, 0x80, 0x18, 0x24, 0x49, 0x04, 0x94, +0x06, 0x95, 0x09, 0xD2, 0x80, 0x18, 0x75, 0x49, +0xFF, 0x72, 0x22, 0x67, 0x7C, 0x60, 0x04, 0x92, +0x30, 0x68, 0x0C, 0x59, 0x18, 0xEA, 0x30, 0xF0, +0x21, 0x6A, 0x92, 0xF7, 0x10, 0x4A, 0x12, 0xE8, +0x01, 0xE2, 0x22, 0xC0, 0x08, 0x60, 0x67, 0xA0, +0x0D, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x00, 0x6C, +0x47, 0xC0, 0x05, 0xD4, 0x0A, 0x10, 0x05, 0x95, +0x87, 0xA0, 0x03, 0x6B, 0x0D, 0x6A, 0xAC, 0xEB, +0x4B, 0xEA, 0x68, 0x33, 0x8C, 0xEA, 0x6D, 0xEA, +0x47, 0xC0, 0x07, 0x96, 0x15, 0x2E, 0x43, 0xA0, +0x2E, 0xEA, 0x01, 0x22, 0xD6, 0xC8, 0x6C, 0xA0, +0x7F, 0x6A, 0xB1, 0x67, 0x6C, 0xEA, 0x4C, 0xC0, +0x04, 0x94, 0x80, 0x18, 0x66, 0x49, 0x04, 0x94, +0x05, 0x96, 0xB1, 0x67, 0x00, 0x6F, 0x80, 0x18, +0x86, 0x4D, 0x00, 0x6B, 0x43, 0x67, 0x1C, 0x10, +0x6C, 0xA0, 0x80, 0x6A, 0x4B, 0xEA, 0x6D, 0xEA, +0x4C, 0xC0, 0x04, 0x94, 0x05, 0x96, 0xB1, 0x67, +0x05, 0x6F, 0x80, 0x18, 0x86, 0x4D, 0x06, 0x94, +0x30, 0xF0, 0x20, 0x6A, 0x7F, 0x6B, 0x8C, 0xEB, +0x48, 0xF3, 0x08, 0x4A, 0x49, 0xE3, 0x40, 0xA2, +0x50, 0xC0, 0x70, 0xA0, 0x51, 0xA0, 0x63, 0xEA, +0x01, 0x60, 0x50, 0xC0, 0x01, 0x6B, 0x40, 0x6A, +0x05, 0x96, 0x07, 0x6C, 0xCC, 0x35, 0x09, 0x96, +0xCC, 0xEC, 0x91, 0xE5, 0x08, 0x96, 0x4D, 0xEC, +0x04, 0x6A, 0x4B, 0xEA, 0xCC, 0xEA, 0x6D, 0xEA, +0x00, 0xF6, 0x80, 0x34, 0x00, 0xF6, 0x40, 0x32, +0xFF, 0x6D, 0x00, 0xF6, 0x83, 0x34, 0x00, 0xF6, +0x43, 0x32, 0xAC, 0xEC, 0xAC, 0xEA, 0x04, 0x95, +0xB4, 0x33, 0x30, 0xF0, 0x20, 0x6D, 0x03, 0xF1, +0xA8, 0x9D, 0xB5, 0xE3, 0x20, 0xC5, 0x30, 0xF0, +0x20, 0x6D, 0x03, 0xF3, 0xA8, 0x9D, 0xB5, 0xE3, +0x80, 0xC5, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF3, +0x84, 0x9C, 0x8D, 0xE3, 0x40, 0xC3, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x69, 0x8C, 0xE9, 0x30, 0x68, 0x18, 0xE9, +0x30, 0xF0, 0x21, 0x6A, 0x92, 0xF7, 0x10, 0x4A, +0x91, 0x67, 0x12, 0xE8, 0x01, 0xE2, 0x80, 0x18, +0x1E, 0x49, 0x7F, 0x6B, 0x4C, 0xEB, 0x04, 0xD3, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF3, 0x6C, 0x9B, +0x2C, 0x32, 0x91, 0x67, 0x6D, 0xE2, 0xA0, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, 0x74, 0x9B, +0x69, 0xE2, 0xC0, 0x9A, 0x80, 0x18, 0x58, 0x4A, +0x05, 0xD2, 0x30, 0xF0, 0x21, 0x6A, 0x52, 0xF4, +0x48, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x08, 0x22, +0x04, 0x95, 0x05, 0x96, 0x30, 0xF0, 0x20, 0x6C, +0x84, 0xF7, 0x04, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x04, 0x92, 0x05, 0x93, 0x6E, 0xEA, 0x09, 0x22, +0xE7, 0xA0, 0x03, 0x6A, 0x91, 0x67, 0xEA, 0x37, +0xA3, 0x67, 0x00, 0x6E, 0x4C, 0xEF, 0x80, 0x18, +0x9F, 0x4D, 0x6C, 0xA0, 0x03, 0x6A, 0x6C, 0xEA, +0x02, 0x22, 0x33, 0x6A, 0x01, 0x10, 0x13, 0x6A, +0x46, 0xC0, 0x66, 0xA0, 0x40, 0xA0, 0x63, 0xEA, +0x01, 0x60, 0x46, 0xC0, 0x68, 0xA0, 0x1F, 0x6A, +0x4C, 0xEB, 0x0F, 0x5B, 0x26, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0x68, 0x33, 0xC2, 0xF2, 0x0C, 0x4A, +0x69, 0xE2, 0x40, 0x9A, 0x00, 0xEA, 0x7F, 0xA0, +0x1F, 0x6A, 0x6C, 0xEA, 0x40, 0x6B, 0x6D, 0xEA, +0x6F, 0xA0, 0x5F, 0xC0, 0x31, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x20, 0x6B, 0x1A, 0x10, 0x7F, 0xA0, +0x1F, 0x6A, 0x6C, 0xEA, 0x20, 0x6B, 0x6D, 0xEA, +0x0E, 0x10, 0x7F, 0xA0, 0x1F, 0x6A, 0x0A, 0x10, +0x7F, 0xA0, 0x1F, 0x6A, 0x6C, 0xEA, 0x60, 0x6B, +0x6D, 0xEA, 0x5F, 0xC0, 0x6F, 0xA0, 0x30, 0x6A, +0x08, 0x10, 0x7F, 0xA0, 0x6C, 0xEA, 0x6F, 0xA0, +0x5F, 0xC0, 0x31, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x10, 0x6B, 0x6D, 0xEA, 0x4F, 0xC0, 0x30, 0xF0, +0x21, 0x6A, 0x52, 0xF4, 0x48, 0x9A, 0x20, 0x6B, +0x6C, 0xEA, 0x0A, 0x22, 0xFF, 0xA0, 0xA0, 0xA0, +0xC1, 0xA0, 0x30, 0xF0, 0x20, 0x6C, 0x84, 0xF7, +0x14, 0x4C, 0xF6, 0x37, 0x80, 0x18, 0x48, 0x43, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, +0x0E, 0xD1, 0x0D, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF3, 0x48, 0x9A, 0x30, 0xF0, 0x21, 0x69, +0x92, 0xF7, 0x10, 0x49, 0x60, 0xA2, 0xFF, 0x6A, +0x00, 0x68, 0x83, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF3, 0x6C, 0x9B, 0x4C, 0xEC, 0x0B, 0xD4, +0x60, 0xA3, 0x01, 0x6C, 0x6C, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, 0x56, 0x32, +0x28, 0xF7, 0xB4, 0xA3, 0x8C, 0xEA, 0x48, 0x34, +0x05, 0x6A, 0x4B, 0xEA, 0xAC, 0xEA, 0x8D, 0xEA, +0x28, 0xF7, 0x54, 0xC3, 0x30, 0xF0, 0x21, 0x6D, +0x30, 0xF0, 0x21, 0x6A, 0x74, 0xF1, 0x00, 0x4D, +0xF4, 0xF0, 0x00, 0x4A, 0x07, 0xD5, 0x06, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, +0x90, 0x67, 0x40, 0xEA, 0xC0, 0xF0, 0x00, 0x22, +0x08, 0xD1, 0x88, 0xA1, 0x40, 0x6A, 0xFF, 0x6B, +0x8C, 0xEA, 0xA0, 0xF0, 0x19, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x28, 0xF7, +0xB4, 0xA2, 0x04, 0x6C, 0xAC, 0xEC, 0x6C, 0xEC, +0x4F, 0x24, 0x0B, 0x95, 0x90, 0x67, 0x6C, 0xEC, +0xAE, 0xEC, 0x23, 0x2C, 0x30, 0xF0, 0x20, 0x6C, +0x63, 0xF3, 0x90, 0x9C, 0xE7, 0xF3, 0x40, 0x9A, +0x80, 0xA4, 0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, +0x63, 0xF3, 0x94, 0x9C, 0x6C, 0xED, 0x09, 0xD5, +0x80, 0xA4, 0x8C, 0xEB, 0x0A, 0xD3, 0x01, 0xF0, +0x00, 0x6B, 0x4C, 0xEB, 0x09, 0x23, 0x0A, 0x96, +0x09, 0x97, 0x30, 0xF0, 0x20, 0x6C, 0xA4, 0xF7, +0x0C, 0x4C, 0xB0, 0x67, 0x80, 0x18, 0x48, 0x43, +0x90, 0x67, 0x09, 0x95, 0x00, 0x6E, 0x0A, 0x97, +0x25, 0x10, 0x0B, 0x94, 0xFF, 0x74, 0x24, 0x61, +0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF3, 0x90, 0x9C, +0xE7, 0xF3, 0x40, 0x9A, 0x80, 0xA4, 0xA4, 0x67, +0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF3, 0x94, 0x9C, +0x6C, 0xED, 0x0A, 0xD5, 0x80, 0xA4, 0x8C, 0xEB, +0x09, 0xD3, 0x01, 0xF0, 0x00, 0x6B, 0x4C, 0xEB, +0x09, 0x23, 0x09, 0x96, 0x0A, 0x97, 0x30, 0xF0, +0x20, 0x6C, 0xA4, 0xF7, 0x0C, 0x4C, 0xB0, 0x67, +0x80, 0x18, 0x48, 0x43, 0x0A, 0x95, 0x09, 0x97, +0x90, 0x67, 0x00, 0x6E, 0x80, 0x18, 0x9F, 0x4D, +0x20, 0xF0, 0x45, 0xA1, 0x07, 0x2A, 0x08, 0x92, +0x6F, 0xA2, 0x40, 0x6A, 0x6D, 0xEA, 0x08, 0x93, +0x4F, 0xC3, 0x06, 0x10, 0x08, 0x94, 0x41, 0x6A, +0x4B, 0xEA, 0x6F, 0xA4, 0x6C, 0xEA, 0x4F, 0xC4, +0x07, 0x95, 0x40, 0xA5, 0x01, 0x4A, 0x40, 0xC5, +0x40, 0xA5, 0x28, 0x5A, 0x30, 0x61, 0x06, 0x92, +0xA0, 0xAA, 0x40, 0xF0, 0x80, 0xAA, 0x93, 0xE5, +0x80, 0x18, 0x3A, 0x49, 0x08, 0xD2, 0x30, 0xF0, +0x21, 0x6A, 0x52, 0xF4, 0x48, 0x9A, 0x10, 0x6B, +0x6C, 0xEA, 0x0E, 0x22, 0x06, 0x94, 0x07, 0x93, +0xB0, 0x67, 0xE0, 0xAC, 0x40, 0xF0, 0x40, 0xAC, +0xC0, 0xA3, 0x30, 0xF0, 0x20, 0x6C, 0xC4, 0xF7, +0x08, 0x4C, 0x04, 0xD2, 0x80, 0x18, 0x48, 0x43, +0x30, 0xF0, 0x21, 0x6A, 0x52, 0xF4, 0x48, 0x9A, +0x10, 0x6B, 0x6C, 0xEA, 0x09, 0x22, 0xC3, 0xA1, +0x08, 0x97, 0x30, 0xF0, 0x20, 0x6C, 0xE4, 0xF7, +0x08, 0x4C, 0xB0, 0x67, 0x80, 0x18, 0x48, 0x43, +0x90, 0x67, 0x80, 0x18, 0x60, 0x47, 0xFF, 0x6A, +0x0C, 0xEA, 0x10, 0x2A, 0x30, 0xF0, 0x21, 0x6B, +0x52, 0xF4, 0x68, 0x9B, 0x01, 0xF0, 0x00, 0x4A, +0x6C, 0xEA, 0x08, 0x22, 0x20, 0xF0, 0xA5, 0xA1, +0x30, 0xF0, 0x20, 0x6C, 0x05, 0xF0, 0x04, 0x4C, +0x80, 0x18, 0x48, 0x43, 0x00, 0x6A, 0x20, 0xF0, +0x45, 0xC1, 0x90, 0x67, 0x80, 0x18, 0xC3, 0x4C, +0x07, 0x95, 0x06, 0x92, 0x01, 0x48, 0x01, 0x4D, +0x02, 0x4A, 0x20, 0x70, 0x30, 0x49, 0x07, 0xD5, +0x06, 0xD2, 0x3F, 0xF7, 0x0D, 0x61, 0x30, 0xF0, +0x21, 0x6C, 0x32, 0xF4, 0x18, 0x4C, 0x80, 0x18, +0x03, 0x47, 0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, +0x08, 0x63, 0x00, 0xEF, 0xF8, 0x63, 0x0F, 0x62, +0x0E, 0xD1, 0x0D, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, +0x30, 0x68, 0x18, 0xEA, 0x08, 0xD2, 0x08, 0x94, +0xFF, 0x6B, 0x30, 0xF0, 0x21, 0x6A, 0xAC, 0xEB, +0x92, 0xF7, 0x10, 0x4A, 0x0B, 0xD3, 0x7F, 0x69, +0x12, 0xE8, 0x01, 0xE2, 0x80, 0x18, 0x1E, 0x49, +0x7D, 0x67, 0x58, 0xC3, 0x98, 0xA3, 0x03, 0x6B, +0x09, 0xD4, 0x40, 0xA0, 0x8C, 0xE9, 0x9D, 0x67, +0x0A, 0xD2, 0xE7, 0xA0, 0xEA, 0x32, 0x6C, 0xEA, +0x59, 0xC4, 0x01, 0x6A, 0x4B, 0xEA, 0x8C, 0xA0, +0x44, 0xC0, 0x45, 0xC0, 0x20, 0xF0, 0x46, 0xC0, +0x20, 0xF0, 0x47, 0xC0, 0x19, 0x6A, 0x4B, 0xEA, +0x8C, 0xEA, 0x4C, 0xC0, 0x30, 0xF0, 0x21, 0x6C, +0x52, 0xF4, 0x88, 0x9C, 0x00, 0xF2, 0x00, 0x6A, +0x8C, 0xEA, 0x0C, 0x22, 0x5D, 0x67, 0x09, 0x95, +0xD9, 0xA2, 0x6C, 0xEF, 0x30, 0xF0, 0x20, 0x6C, +0xFF, 0x6B, 0x05, 0xF0, 0x10, 0x4C, 0x6C, 0xEF, +0x80, 0x18, 0x48, 0x43, 0x0A, 0x94, 0x8A, 0xE9, +0x2F, 0x61, 0x6C, 0xA0, 0x04, 0x6A, 0x6C, 0xEA, +0x19, 0x22, 0x09, 0x92, 0x80, 0x6B, 0x6B, 0xEB, +0x6C, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, 0x12, 0x2A, +0x0A, 0x92, 0x9D, 0x67, 0x4D, 0xEB, 0x78, 0xC4, +0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, 0x68, 0x9B, +0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0xA0, 0xF0, +0x19, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x25, 0xF0, +0x0C, 0x4C, 0xB0, 0x10, 0x30, 0xF0, 0x21, 0x6B, +0x52, 0xF4, 0x68, 0x9B, 0x00, 0xF2, 0x00, 0x6A, +0x6C, 0xEA, 0x40, 0xF1, 0x19, 0x22, 0x7D, 0x67, +0xB8, 0xA3, 0x30, 0xF0, 0x20, 0x6C, 0x25, 0xF0, +0x18, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x50, 0x11, +0x0A, 0x94, 0x23, 0xEC, 0x17, 0x60, 0x30, 0xF0, +0x21, 0x6B, 0x52, 0xF4, 0x68, 0x9B, 0x00, 0xF2, +0x00, 0x6A, 0x6C, 0xEA, 0x08, 0x22, 0x5D, 0x67, +0xB8, 0xA2, 0x30, 0xF0, 0x20, 0x6C, 0x45, 0xF0, +0x08, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x7D, 0x67, +0x87, 0x43, 0x21, 0x4C, 0x80, 0xA4, 0x00, 0x69, +0x98, 0xC3, 0x89, 0x10, 0x08, 0x94, 0x06, 0x05, +0x00, 0xF0, 0x19, 0x06, 0x01, 0x6F, 0x80, 0x18, +0x15, 0x4C, 0x12, 0x22, 0x30, 0xF0, 0x21, 0x6B, +0x52, 0xF4, 0x68, 0x9B, 0x00, 0xF4, 0x00, 0x6A, +0x6C, 0xEA, 0x78, 0x22, 0x5D, 0x67, 0xB8, 0xA2, +0xD9, 0xA2, 0x30, 0xF0, 0x20, 0x6C, 0x45, 0xF0, +0x18, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x6E, 0x10, +0x7D, 0x67, 0x87, 0xA0, 0x59, 0xA3, 0x03, 0x6B, +0x8C, 0xEB, 0x62, 0xEA, 0x15, 0x60, 0x9D, 0x67, +0x78, 0xA4, 0x0C, 0x5B, 0x11, 0x61, 0x30, 0xF0, +0x21, 0x6B, 0x52, 0xF4, 0x68, 0x9B, 0x01, 0x4A, +0x59, 0xC4, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, +0x59, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x5D, 0x67, +0x65, 0xF0, 0x14, 0x4C, 0xB9, 0xA2, 0x50, 0x10, +0x08, 0x94, 0x06, 0x05, 0x01, 0x6E, 0x80, 0x18, +0x21, 0x4A, 0x00, 0x6B, 0x09, 0xD3, 0x10, 0x22, +0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, 0x68, 0x9B, +0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x42, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x85, 0xF0, 0x00, 0x4C, +0x39, 0x10, 0x01, 0x49, 0xFF, 0x6A, 0x4C, 0xE9, +0x4C, 0xA0, 0x08, 0x96, 0x03, 0x6F, 0x91, 0x67, +0x01, 0x6D, 0x4C, 0xEF, 0x80, 0x18, 0xA0, 0x49, +0x7D, 0x67, 0x58, 0xC3, 0x30, 0xF0, 0x21, 0x6B, +0x52, 0xF4, 0x68, 0x9B, 0x00, 0xF2, 0x00, 0x6A, +0x6C, 0xEA, 0x0A, 0x22, 0x5D, 0x67, 0x09, 0x95, +0xF8, 0xA2, 0x30, 0xF0, 0x20, 0x6C, 0x85, 0xF0, +0x10, 0x4C, 0xD1, 0x67, 0x80, 0x18, 0x48, 0x43, +0x7D, 0x67, 0x58, 0xA3, 0xFF, 0x72, 0x0A, 0x61, +0x0A, 0x94, 0x83, 0xE9, 0x02, 0x61, 0x98, 0xC3, +0x05, 0x10, 0x09, 0x93, 0x01, 0x4B, 0x54, 0x73, +0x09, 0xD3, 0xD3, 0x61, 0x30, 0xF0, 0x21, 0x6B, +0x52, 0xF4, 0x68, 0x9B, 0x00, 0xF2, 0x00, 0x6A, +0x6C, 0xEA, 0x08, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0xA5, 0xF0, 0x00, 0x4C, 0x5D, 0x67, 0xB8, 0xA2, +0x80, 0x18, 0x48, 0x43, 0x01, 0x69, 0x30, 0xF0, +0x21, 0x6B, 0x52, 0xF4, 0x68, 0x9B, 0x00, 0xF2, +0x00, 0x6A, 0x6C, 0xEA, 0x0A, 0x22, 0x7D, 0x67, +0xB8, 0xA3, 0xC4, 0xA0, 0xE5, 0xA0, 0x30, 0xF0, +0x20, 0x6C, 0xA5, 0xF0, 0x0C, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x5D, 0x67, 0x08, 0x94, 0xB8, 0xA2, +0x80, 0x18, 0x7C, 0x4C, 0x7D, 0x67, 0x58, 0xC3, +0x6C, 0xA0, 0x18, 0x6A, 0x6C, 0xEA, 0x0A, 0x22, +0x08, 0x94, 0xA4, 0xA0, 0x80, 0x18, 0x7C, 0x4C, +0x44, 0xC0, 0x08, 0x94, 0xA5, 0xA0, 0x80, 0x18, +0x7C, 0x4C, 0x45, 0xC0, 0x30, 0xF0, 0x21, 0x6B, +0x52, 0xF4, 0x68, 0x9B, 0x00, 0xF2, 0x00, 0x6A, +0x6C, 0xEA, 0x0A, 0x22, 0x5D, 0x67, 0xB8, 0xA2, +0xC4, 0xA0, 0xE5, 0xA0, 0x30, 0xF0, 0x20, 0x6C, +0xA5, 0xF0, 0x1C, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x45, 0xA0, 0xFF, 0x6B, 0x84, 0xA0, 0x4E, 0xEB, +0x01, 0x5B, 0x78, 0x67, 0xFF, 0x74, 0x05, 0x61, +0x44, 0xC0, 0x01, 0x6A, 0x4B, 0xEA, 0x45, 0xC0, +0x01, 0x4B, 0x9D, 0x67, 0x58, 0xA4, 0xFF, 0x72, +0x09, 0x61, 0x44, 0xA0, 0x01, 0x4B, 0x58, 0xC4, +0x01, 0x6A, 0x4B, 0xEA, 0x44, 0xC0, 0xFF, 0x6A, +0x4C, 0xEB, 0x07, 0x10, 0x06, 0x2B, 0x6C, 0xA0, +0x19, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x10, 0x6B, +0x07, 0x10, 0x01, 0x73, 0x07, 0x61, 0x6C, 0xA0, +0x19, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x08, 0x6B, +0x6D, 0xEA, 0x06, 0x10, 0x02, 0x73, 0x09, 0x61, +0x6C, 0xA0, 0x19, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x4C, 0xC0, 0x0B, 0x92, 0x01, 0x72, 0x1B, 0x61, +0x14, 0x10, 0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, +0x68, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, +0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xC5, 0xF0, +0x0C, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x6C, 0xA0, +0x19, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x4C, 0xC0, +0x2B, 0x10, 0x6C, 0xA0, 0x19, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x4C, 0xC0, 0x00, 0x69, 0x30, 0xF0, +0x21, 0x6B, 0x52, 0xF4, 0x68, 0x9B, 0x00, 0xF2, +0x00, 0x6A, 0x6C, 0xEA, 0x10, 0x22, 0x7D, 0x67, +0xB8, 0xA3, 0xC4, 0xA0, 0xE5, 0xA0, 0x04, 0xD1, +0x4C, 0xA0, 0x03, 0x6B, 0x30, 0xF0, 0x20, 0x6C, +0x4E, 0x32, 0x6C, 0xEA, 0xC5, 0xF0, 0x18, 0x4C, +0x05, 0xD2, 0x80, 0x18, 0x48, 0x43, 0x6B, 0xA0, +0x0F, 0x6A, 0xD1, 0x67, 0x6C, 0xEA, 0x10, 0x6B, +0x6D, 0xEA, 0x4B, 0xC0, 0x5D, 0x67, 0x08, 0x94, +0xB8, 0xA2, 0xF9, 0xA2, 0x80, 0x18, 0x9F, 0x4D, +0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF6, 0x63, 0x13, 0x62, +0x12, 0xD1, 0x11, 0xD0, 0xFF, 0x68, 0x0C, 0xEC, +0x30, 0x69, 0x38, 0xEC, 0x30, 0xF0, 0x21, 0x6A, +0x0C, 0xED, 0x0C, 0xEE, 0x92, 0xF7, 0x10, 0x4A, +0x09, 0xD4, 0x0D, 0xD5, 0x0E, 0xD6, 0x12, 0xE9, +0x25, 0xE2, 0x80, 0x18, 0x1E, 0x49, 0x7D, 0x67, +0x58, 0xC3, 0x98, 0xA3, 0x0C, 0xD4, 0x40, 0xA1, +0x9D, 0x67, 0x0A, 0xD2, 0x61, 0xA1, 0x0B, 0xD3, +0xE7, 0xA1, 0x03, 0x6B, 0xEA, 0x32, 0x6C, 0xEA, +0x59, 0xC4, 0x01, 0x6A, 0x4B, 0xEA, 0x8C, 0xA1, +0x44, 0xC1, 0x45, 0xC1, 0x20, 0xF0, 0x46, 0xC1, +0x20, 0xF0, 0x47, 0xC1, 0x19, 0x6A, 0x4B, 0xEA, +0x8C, 0xEA, 0x4C, 0xC1, 0x30, 0xF0, 0x21, 0x6C, +0x52, 0xF4, 0x88, 0x9C, 0x00, 0xF4, 0x00, 0x6A, +0x8C, 0xEA, 0x0B, 0x22, 0x5D, 0x67, 0x0C, 0x95, +0xD9, 0xA2, 0x6C, 0xEF, 0x30, 0xF0, 0x20, 0x6C, +0xE5, 0xF0, 0x1C, 0x4C, 0x0C, 0xEF, 0x80, 0x18, +0x48, 0x43, 0x0D, 0x93, 0xA0, 0xF0, 0x07, 0x23, +0x0C, 0x92, 0x0A, 0x93, 0x7F, 0x6C, 0x8C, 0xEA, +0x43, 0xEB, 0x08, 0xD2, 0x02, 0x60, 0x9D, 0x67, +0x78, 0xC4, 0x08, 0x93, 0x0B, 0x94, 0x8A, 0xEB, +0x80, 0xF0, 0x19, 0x60, 0x63, 0xEC, 0x04, 0x61, +0x5D, 0x67, 0x98, 0xC2, 0x00, 0x68, 0x65, 0x10, +0x09, 0x94, 0x06, 0x00, 0xB0, 0x67, 0x00, 0xF0, +0x19, 0x06, 0x02, 0x6F, 0x80, 0x18, 0x15, 0x4C, +0x0D, 0x22, 0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, +0x68, 0x9B, 0x00, 0xF4, 0x00, 0x6A, 0x6C, 0xEA, +0x53, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x05, 0xF1, +0x18, 0x4C, 0x4A, 0x10, 0x09, 0x94, 0xB0, 0x67, +0x02, 0x6E, 0x80, 0x18, 0x21, 0x4A, 0x00, 0x68, +0x2E, 0x22, 0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, +0x68, 0x9B, 0x00, 0xF4, 0x00, 0x6A, 0x6C, 0xEA, +0x3F, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x7D, 0x67, +0x25, 0xF1, 0x04, 0x4C, 0xB8, 0xA3, 0x36, 0x10, +0x4C, 0xA1, 0x08, 0x94, 0x09, 0x96, 0x03, 0x6F, +0x02, 0x6D, 0x4C, 0xEF, 0x80, 0x18, 0xA0, 0x49, +0x9D, 0x67, 0x58, 0xC4, 0x0B, 0x93, 0x08, 0x92, +0x43, 0xEB, 0x02, 0x61, 0x78, 0xC4, 0x0C, 0x10, +0x7D, 0x67, 0x58, 0xA3, 0xFF, 0x72, 0x08, 0x61, +0x08, 0x94, 0xFF, 0x6A, 0xFF, 0x4C, 0x4C, 0xEC, +0x0A, 0x92, 0x08, 0xD4, 0x4A, 0xEC, 0xE4, 0x61, +0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, 0x0D, 0x93, +0x63, 0xE8, 0x06, 0x60, 0x08, 0x94, 0xFF, 0x6A, +0xAC, 0x4C, 0x4C, 0xEC, 0x0A, 0xD4, 0xD8, 0x17, +0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, 0x68, 0x9B, +0x00, 0xF4, 0x00, 0x6A, 0x6C, 0xEA, 0x08, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x25, 0xF1, 0x14, 0x4C, +0x5D, 0x67, 0xB8, 0xA2, 0x80, 0x18, 0x48, 0x43, +0x01, 0x68, 0x0E, 0x93, 0x01, 0x73, 0x06, 0x61, +0x6C, 0xA1, 0x19, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x4C, 0xC1, 0x00, 0x68, 0x30, 0xF0, 0x21, 0x6B, +0x52, 0xF4, 0x68, 0x9B, 0x00, 0xF4, 0x00, 0x6A, +0x6C, 0xEA, 0x10, 0x22, 0x9D, 0x67, 0xB8, 0xA4, +0xC4, 0xA1, 0xE5, 0xA1, 0x04, 0xD0, 0x4C, 0xA1, +0x03, 0x6B, 0x30, 0xF0, 0x20, 0x6C, 0x4E, 0x32, +0x6C, 0xEA, 0x45, 0xF1, 0x04, 0x4C, 0x05, 0xD2, +0x80, 0x18, 0x48, 0x43, 0x6B, 0xA1, 0x0F, 0x6A, +0xD0, 0x67, 0x6C, 0xEA, 0x20, 0x6B, 0x6D, 0xEA, +0x4B, 0xC1, 0x5D, 0x67, 0x09, 0x94, 0xB8, 0xA2, +0xF9, 0xA2, 0x80, 0x18, 0x9F, 0x4D, 0x13, 0x97, +0x12, 0x91, 0x11, 0x90, 0x0A, 0x63, 0x00, 0xEF, +0xF6, 0x63, 0x13, 0x62, 0x12, 0xD1, 0x11, 0xD0, +0xFF, 0x69, 0x8C, 0xE9, 0x30, 0x68, 0x18, 0xE9, +0x30, 0xF0, 0x21, 0x6A, 0x92, 0xF7, 0x10, 0x4A, +0x91, 0x67, 0x12, 0xE8, 0x01, 0xE2, 0x80, 0x18, +0x1E, 0x49, 0x91, 0x67, 0x0B, 0xD2, 0x80, 0x18, +0x24, 0x49, 0x8C, 0xA0, 0x80, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xFF, 0x6C, 0x8C, 0xEB, 0x0E, 0x23, +0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, 0x68, 0x9B, +0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x80, 0xF1, +0x04, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x65, 0xF1, +0x08, 0x4C, 0x7D, 0x11, 0x18, 0x6B, 0x4C, 0xEB, +0x6F, 0x33, 0xFF, 0x6D, 0xAC, 0xEB, 0x08, 0xD3, +0x0B, 0x93, 0x7F, 0x6A, 0x6C, 0xEA, 0x60, 0xA0, +0x42, 0xEB, 0x15, 0x60, 0x30, 0xF0, 0x21, 0x6B, +0x52, 0xF4, 0x68, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, +0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0x65, 0xF1, 0x10, 0x4C, 0x80, 0x18, 0x48, 0x43, +0xA0, 0xA0, 0x08, 0x97, 0x91, 0x67, 0x00, 0x6E, +0x80, 0x18, 0x9F, 0x4D, 0x61, 0x11, 0x9D, 0x67, +0xA7, 0x44, 0x25, 0x4D, 0x80, 0xA5, 0x31, 0x6A, +0x4B, 0xEA, 0x83, 0xC0, 0x08, 0x95, 0x87, 0xA0, +0xB0, 0x33, 0x8C, 0xEA, 0x6D, 0xEA, 0x47, 0xC0, +0xD4, 0xF3, 0x6C, 0x41, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x64, 0x33, 0x4D, 0xE3, +0x60, 0xAB, 0x0D, 0xD3, 0xF4, 0xF3, 0x6C, 0x41, +0x64, 0x33, 0x4D, 0xE3, 0x60, 0xAB, 0x0C, 0xD3, +0x94, 0xF3, 0x6C, 0x41, 0x64, 0x33, 0x49, 0xE3, +0x40, 0xAA, 0x0D, 0x93, 0xA2, 0x67, 0x73, 0xE2, +0x0A, 0xD2, 0x80, 0x18, 0x3A, 0x49, 0x09, 0xD2, +0x0C, 0x95, 0x0D, 0x92, 0x53, 0xE5, 0x80, 0x18, +0x3A, 0x49, 0x7D, 0x67, 0x87, 0x43, 0x1D, 0x4C, +0x60, 0xAC, 0x0E, 0xD2, 0x6A, 0xC8, 0x0A, 0x94, +0x40, 0x6B, 0x86, 0x32, 0x41, 0x5A, 0x03, 0x60, +0x61, 0x42, 0xFF, 0x6D, 0xAC, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0x71, 0xC0, 0x6B, 0xF0, 0x08, 0x4A, +0xE7, 0xF3, 0x80, 0x9A, 0xFF, 0x6B, 0x01, 0x4B, +0x8C, 0xEB, 0x11, 0x23, 0xB4, 0xF3, 0x6C, 0x41, +0x64, 0x33, 0x49, 0xE3, 0x40, 0xAA, 0x0D, 0x96, +0x0A, 0x97, 0x04, 0xD2, 0x0C, 0x92, 0x30, 0xF0, +0x20, 0x6C, 0x65, 0xF1, 0x1C, 0x4C, 0xB1, 0x67, +0x05, 0xD2, 0x80, 0x18, 0x48, 0x43, 0x30, 0xF0, +0x21, 0x6B, 0x52, 0xF4, 0x68, 0x9B, 0xFF, 0x6A, +0x01, 0x4A, 0x6C, 0xEA, 0x08, 0x22, 0x09, 0x95, +0x0E, 0x96, 0x30, 0xF0, 0x20, 0x6C, 0xA5, 0xF1, +0x00, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x30, 0xF0, +0x21, 0x6B, 0x52, 0xF4, 0x68, 0x9B, 0xFF, 0x6A, +0x01, 0x4A, 0x6C, 0xEA, 0x0C, 0x22, 0xA7, 0xA0, +0x08, 0x96, 0x0B, 0x97, 0xAA, 0x35, 0x30, 0xF0, +0x20, 0x6C, 0x03, 0x6A, 0xA5, 0xF1, 0x10, 0x4C, +0x4C, 0xED, 0x80, 0x18, 0x48, 0x43, 0x09, 0x93, +0x0B, 0x95, 0x91, 0x67, 0x06, 0x06, 0x00, 0xF0, +0x19, 0x07, 0x04, 0xD3, 0x80, 0x18, 0x93, 0x4B, +0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, 0x68, 0x9B, +0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x09, 0x22, +0x5D, 0x67, 0xB8, 0xA2, 0xD9, 0xA2, 0x30, 0xF0, +0x20, 0x6C, 0xC5, 0xF1, 0x08, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, +0x08, 0x4B, 0x28, 0xF7, 0xB4, 0xA3, 0x04, 0x6C, +0xFF, 0x6A, 0xAC, 0xEC, 0x0B, 0x24, 0xE7, 0xF3, +0x60, 0x9B, 0x01, 0x4A, 0x6C, 0xEA, 0xA0, 0xF0, +0x18, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xC5, 0xF1, +0x18, 0x4C, 0xB1, 0x10, 0xBD, 0x67, 0x99, 0xA5, +0x09, 0x95, 0x83, 0xED, 0x03, 0x60, 0x0E, 0x94, +0x1E, 0x5C, 0x52, 0x61, 0x0E, 0x95, 0x50, 0x5D, +0x15, 0x61, 0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, +0x68, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xE5, 0xF1, +0x04, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x01, 0x6D, +0x91, 0x67, 0xC5, 0x67, 0x80, 0x18, 0xAB, 0x4F, +0x00, 0x6A, 0x72, 0x10, 0x8A, 0xA0, 0x0F, 0x6D, +0x10, 0x6A, 0x64, 0x67, 0xAC, 0xEB, 0x01, 0x4B, +0x4B, 0xEA, 0xAC, 0xEB, 0x8C, 0xEA, 0x6D, 0xEA, +0x4A, 0xC0, 0x30, 0xF0, 0x21, 0x6C, 0x52, 0xF4, +0x88, 0x9C, 0xFF, 0x6B, 0x01, 0x4B, 0x8C, 0xEB, +0x07, 0x23, 0x30, 0xF0, 0x20, 0x6C, 0xE5, 0xF1, +0x10, 0x4C, 0x4C, 0xED, 0x80, 0x18, 0x48, 0x43, +0x6A, 0xA0, 0x0F, 0x6A, 0x6C, 0xEA, 0x02, 0x52, +0x18, 0x61, 0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, +0x68, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x05, 0xF2, +0x00, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x91, 0x67, +0x01, 0x6D, 0x00, 0x6E, 0x80, 0x18, 0xAB, 0x4F, +0x6A, 0xA0, 0x10, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x4A, 0xC0, 0x6A, 0xA0, 0x0F, 0x6A, 0x37, 0x10, +0x9D, 0x67, 0xB8, 0xA4, 0xFF, 0xF7, 0x1F, 0x6C, +0xAC, 0xEC, 0x09, 0x95, 0x83, 0xED, 0x32, 0x60, +0x8A, 0xA0, 0x10, 0x4C, 0x8A, 0xC0, 0xE7, 0xF3, +0x60, 0x9B, 0xFF, 0x6C, 0x01, 0x4C, 0x6C, 0xEC, +0x09, 0x24, 0xAA, 0xA0, 0x30, 0xF0, 0x20, 0x6C, +0x05, 0xF2, 0x0C, 0x4C, 0xB2, 0x35, 0x4C, 0xED, +0x80, 0x18, 0x48, 0x43, 0x4A, 0xA0, 0x52, 0x32, +0x03, 0x52, 0x16, 0x61, 0x30, 0xF0, 0x21, 0x6B, +0x52, 0xF4, 0x68, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, +0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0x05, 0xF2, 0x18, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x91, 0x67, 0x00, 0x6D, 0x80, 0x18, 0xC5, 0x4E, +0x6A, 0xA0, 0x0F, 0x6A, 0x6C, 0xEA, 0x4A, 0xC0, +0x6A, 0xA0, 0x10, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x4A, 0xC0, 0x1F, 0x10, 0x8A, 0xA0, 0x92, 0x33, +0x4C, 0xEB, 0x02, 0x23, 0xF0, 0x4C, 0x8A, 0xC0, +0x8A, 0xA0, 0x0F, 0x6A, 0x64, 0x67, 0x4C, 0xEB, +0x06, 0x23, 0x0F, 0x4B, 0x4C, 0xEB, 0xE1, 0x4A, +0x8C, 0xEA, 0x6D, 0xEA, 0x4A, 0xC0, 0x30, 0xF0, +0x21, 0x6B, 0x52, 0xF4, 0x68, 0x9B, 0xFF, 0x6A, +0x01, 0x4A, 0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x25, 0xF2, 0x00, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x91, 0x67, 0x80, 0x18, 0xE6, 0x47, +0x13, 0x97, 0x12, 0x91, 0x11, 0x90, 0x0A, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x04, 0x67, +0x26, 0x67, 0x4C, 0xE8, 0x4C, 0xE9, 0x90, 0x67, +0x4C, 0xED, 0xD1, 0x67, 0x80, 0x18, 0xE6, 0x4B, +0xA2, 0x67, 0x90, 0x67, 0x00, 0x6E, 0xF1, 0x67, +0x04, 0xD2, 0x80, 0x18, 0x9F, 0x4D, 0x30, 0xF0, +0x21, 0x6A, 0x52, 0xF4, 0x48, 0x9A, 0x20, 0x6B, +0x6C, 0xEA, 0x07, 0x22, 0x04, 0x95, 0x30, 0xF0, +0x20, 0x6C, 0x25, 0xF2, 0x0C, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, +0x30, 0x69, 0x38, 0xEC, 0x30, 0xF0, 0x21, 0x6B, +0x92, 0xF7, 0x10, 0x4B, 0x05, 0xD4, 0x12, 0xE9, +0x25, 0xE3, 0x07, 0xA1, 0x03, 0x6B, 0x12, 0x30, +0x6C, 0xE8, 0x4C, 0xE8, 0x43, 0xA1, 0x7F, 0x6B, +0x04, 0xD2, 0x4C, 0xEB, 0x40, 0xA1, 0x63, 0xEA, +0x01, 0x60, 0x04, 0xD2, 0x30, 0xF0, 0x21, 0x6B, +0x52, 0xF4, 0x68, 0x9B, 0x00, 0xF2, 0x00, 0x6A, +0x6C, 0xEA, 0x08, 0x22, 0x04, 0x95, 0x30, 0xF0, +0x20, 0x6C, 0x25, 0xF2, 0x1C, 0x4C, 0xD0, 0x67, +0x80, 0x18, 0x48, 0x43, 0x43, 0xA1, 0x04, 0x93, +0x80, 0x6D, 0xAB, 0xED, 0x4C, 0xED, 0x6D, 0xED, +0x05, 0x94, 0x00, 0xF6, 0xA0, 0x35, 0xFF, 0x6A, +0x00, 0xF6, 0xA3, 0x35, 0xF0, 0x67, 0x4C, 0xED, +0x00, 0x6E, 0x80, 0x18, 0x9F, 0x4D, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0x68, 0x18, 0xEA, +0x04, 0xD2, 0x04, 0x94, 0xFF, 0x6E, 0x30, 0xF0, +0x21, 0x6A, 0xAC, 0xEE, 0x92, 0xF7, 0x10, 0x4A, +0x06, 0xD6, 0x18, 0x69, 0x12, 0xE8, 0x01, 0xE2, +0x80, 0x18, 0x1E, 0x49, 0x04, 0x94, 0x05, 0xD2, +0x80, 0x18, 0x24, 0x49, 0x06, 0x96, 0x4C, 0xE9, +0x2F, 0x31, 0xFF, 0x6A, 0x01, 0x76, 0x4C, 0xE9, +0x1C, 0x61, 0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, +0x68, 0x9B, 0x01, 0xF7, 0x01, 0x4A, 0x6C, 0xEA, +0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x45, 0xF2, +0x14, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x6B, 0xA0, +0x10, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x4B, 0xC0, +0x04, 0x94, 0x05, 0x95, 0x00, 0x6E, 0xF1, 0x67, +0x80, 0x18, 0x9F, 0x4D, 0x6C, 0xA0, 0x19, 0x6A, +0x21, 0x10, 0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, +0x68, 0x9B, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, +0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x65, 0xF2, +0x00, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x8B, 0xA0, +0x0F, 0x6A, 0x64, 0x67, 0x4C, 0xEB, 0x01, 0x4B, +0x4C, 0xEB, 0xE1, 0x4A, 0x8C, 0xEA, 0x6D, 0xEA, +0x6C, 0xA0, 0x4B, 0xC0, 0x18, 0x6A, 0x6C, 0xEA, +0x09, 0x2A, 0x04, 0x94, 0x80, 0x18, 0x11, 0x51, +0x6C, 0xA0, 0x61, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x4C, 0xC0, 0x57, 0x10, 0x30, 0xF0, 0x21, 0x6B, +0x52, 0xF4, 0x68, 0x9B, 0x02, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x0C, 0x22, 0xAC, 0xA0, 0x03, 0x6A, +0x30, 0xF0, 0x20, 0x6C, 0xAE, 0x35, 0x4C, 0xED, +0xFF, 0x6A, 0x65, 0xF2, 0x08, 0x4C, 0x4C, 0xED, +0x80, 0x18, 0x48, 0x43, 0xAC, 0xA0, 0x03, 0x6B, +0xB6, 0x32, 0x6C, 0xEA, 0x51, 0xE0, 0xC4, 0xA4, +0x01, 0x4A, 0x6C, 0xEA, 0x05, 0xD6, 0x54, 0x36, +0x61, 0x6A, 0x4B, 0xEA, 0xAC, 0xEA, 0xCD, 0xEA, +0x4C, 0xC0, 0xAC, 0xA0, 0xAE, 0x32, 0x6C, 0xEA, +0x03, 0x4A, 0x6C, 0xEA, 0x4C, 0x33, 0x19, 0x6A, +0x4B, 0xEA, 0xAC, 0xEA, 0x6D, 0xEA, 0x4C, 0xC0, +0x20, 0xF0, 0x46, 0xA4, 0xFF, 0x72, 0x10, 0x60, +0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, 0x68, 0x9B, +0x22, 0x67, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, +0x07, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x65, 0xF2, +0x18, 0x4C, 0xB1, 0x67, 0x80, 0x18, 0x48, 0x43, +0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, 0x68, 0x9B, +0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x07, 0x22, +0x05, 0x95, 0x30, 0xF0, 0x20, 0x6C, 0x85, 0xF2, +0x04, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x04, 0x94, +0x05, 0x95, 0x01, 0x6E, 0xF1, 0x67, 0x80, 0x18, +0x9F, 0x4D, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xF6, 0x63, 0x13, 0x62, +0x12, 0xD1, 0x11, 0xD0, 0xFF, 0x69, 0x8C, 0xE9, +0x30, 0x68, 0x18, 0xE9, 0x30, 0xF0, 0x21, 0x6A, +0x92, 0xF7, 0x10, 0x4A, 0x91, 0x67, 0x12, 0xE8, +0x01, 0xE2, 0x80, 0x18, 0x1E, 0x49, 0x91, 0x67, +0x09, 0xD2, 0x80, 0x18, 0x24, 0x49, 0x0B, 0xD2, +0x4A, 0xA8, 0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, +0x68, 0x9B, 0x0E, 0xD2, 0x02, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0x85, 0xF2, 0x10, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x6C, 0xA0, 0x80, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xFF, 0x6B, 0x6C, 0xEA, 0x80, 0xF1, 0x03, 0x22, +0x30, 0xF0, 0x20, 0x6B, 0xB4, 0xF3, 0x4C, 0x41, +0x6B, 0xF0, 0x08, 0x4B, 0x44, 0x32, 0x69, 0xE2, +0x40, 0xAA, 0x06, 0xD3, 0x03, 0x5A, 0x0F, 0x61, +0xE7, 0xF3, 0x60, 0x9B, 0x02, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0x44, 0xF5, 0x18, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x91, 0x67, 0x00, 0x6D, 0x66, 0x11, 0x06, 0x94, +0xA4, 0xF4, 0x4C, 0x41, 0x44, 0x32, 0x89, 0xE2, +0xA0, 0xAA, 0x08, 0xD2, 0x84, 0xF4, 0x4C, 0x41, +0x44, 0x32, 0x89, 0xE2, 0x80, 0xAA, 0x07, 0xD2, +0x93, 0xE5, 0x80, 0x18, 0x3A, 0x49, 0x06, 0x93, +0x0D, 0xD2, 0xE4, 0xF4, 0x4C, 0x41, 0x44, 0x32, +0x69, 0xE2, 0xA0, 0xAA, 0x0A, 0xD2, 0x07, 0x92, +0x80, 0xAA, 0x93, 0xE5, 0x80, 0x18, 0x3A, 0x49, +0x06, 0x94, 0x0C, 0xD2, 0x02, 0xF0, 0x00, 0x6A, +0xE7, 0xF3, 0x60, 0x9C, 0x6C, 0xEA, 0x12, 0x22, +0x07, 0x92, 0x08, 0x93, 0xA0, 0xAA, 0xC4, 0xF4, +0x4C, 0x41, 0x44, 0x32, 0x89, 0xE2, 0x0A, 0x94, +0xE0, 0xAA, 0xC0, 0xAB, 0x40, 0xAC, 0x30, 0xF0, +0x20, 0x6C, 0x85, 0xF2, 0x1C, 0x4C, 0x04, 0xD2, +0x80, 0x18, 0x48, 0x43, 0x30, 0xF0, 0x21, 0x6B, +0x52, 0xF4, 0x68, 0x9B, 0x02, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x08, 0x22, 0x0D, 0x95, 0x0C, 0x96, +0x30, 0xF0, 0x20, 0x6C, 0xA5, 0xF1, 0x00, 0x4C, +0x80, 0x18, 0x48, 0x43, 0x0B, 0x93, 0x18, 0x6A, +0x6C, 0xEA, 0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, +0x68, 0x9B, 0x4E, 0x32, 0x0A, 0xD2, 0x02, 0xF0, +0x00, 0x6A, 0x6C, 0xEA, 0x08, 0x22, 0x0A, 0x95, +0x09, 0x96, 0x30, 0xF0, 0x20, 0x6C, 0xA5, 0xF2, +0x18, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x09, 0x92, +0x7F, 0x6C, 0x09, 0x93, 0x8C, 0xEA, 0x06, 0xD2, +0x80, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, +0x6C, 0xEA, 0x0F, 0x22, 0x06, 0x94, 0x30, 0xF0, +0x20, 0x6A, 0xE8, 0xF4, 0x18, 0x4A, 0x84, 0x33, +0x49, 0xE3, 0x40, 0xAA, 0x52, 0x34, 0x56, 0x33, +0x6D, 0xE4, 0x4D, 0xE3, 0x5E, 0x32, 0x49, 0xE3, +0x08, 0x10, 0x06, 0x94, 0x30, 0xF0, 0x20, 0x6A, +0xE8, 0xF4, 0x18, 0x4A, 0x84, 0x33, 0x49, 0xE3, +0x40, 0xAA, 0x0B, 0xD2, 0x43, 0x80, 0x00, 0x52, +0x12, 0x60, 0x63, 0xA0, 0x7F, 0x6C, 0x30, 0xF0, +0x20, 0x6A, 0x8C, 0xEB, 0xE8, 0xF4, 0x18, 0x4A, +0x64, 0x33, 0x4D, 0xE3, 0x40, 0xAB, 0x52, 0x34, +0x56, 0x33, 0x6D, 0xE4, 0x4D, 0xE3, 0x5E, 0x32, +0x49, 0xE3, 0x08, 0xD2, 0x0B, 0x10, 0x63, 0xA0, +0x7F, 0x6C, 0x30, 0xF0, 0x20, 0x6A, 0x8C, 0xEB, +0x64, 0x33, 0xE8, 0xF4, 0x18, 0x4A, 0x4D, 0xE3, +0x60, 0xAB, 0x08, 0xD3, 0x4B, 0xA0, 0x10, 0x6B, +0x6B, 0xEB, 0x4C, 0xEB, 0xFF, 0x6A, 0x10, 0x6C, +0x4C, 0xEB, 0x8E, 0xEB, 0x01, 0x5B, 0x78, 0x67, +0x6B, 0xEB, 0x05, 0x6C, 0x6C, 0xEC, 0x07, 0xD4, +0x30, 0xF0, 0x21, 0x6C, 0x52, 0xF4, 0x88, 0x9C, +0x02, 0xF0, 0x00, 0x6B, 0x8C, 0xEB, 0x0C, 0x23, +0xA7, 0xA0, 0x03, 0x6B, 0x0A, 0x96, 0xB2, 0x35, +0x6C, 0xED, 0x30, 0xF0, 0x20, 0x6C, 0xC5, 0xF2, +0x08, 0x4C, 0x4C, 0xED, 0x80, 0x18, 0x48, 0x43, +0x0E, 0x92, 0x07, 0x94, 0xFF, 0x6D, 0x64, 0x6B, +0x4C, 0xED, 0xAB, 0xE3, 0x89, 0xE2, 0x08, 0x94, +0x98, 0xEA, 0x12, 0xEC, 0x08, 0xD4, 0x47, 0xA0, +0x03, 0x6C, 0x52, 0x32, 0x8C, 0xEA, 0x12, 0xEC, +0x84, 0xEA, 0x0D, 0x92, 0x08, 0xD4, 0x4F, 0xE3, +0x0B, 0x92, 0x78, 0xEA, 0x0A, 0x93, 0x12, 0xEA, +0x44, 0xEB, 0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, +0x68, 0x9B, 0x07, 0xD2, 0x02, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x07, 0x22, 0x0D, 0x96, 0x30, 0xF0, +0x20, 0x6C, 0xC5, 0xF2, 0x14, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, +0x68, 0x9B, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, +0x08, 0x22, 0xA3, 0xA0, 0x09, 0x96, 0x30, 0xF0, +0x20, 0x6C, 0xE5, 0xF2, 0x04, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, +0x68, 0x9B, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, +0x0A, 0x22, 0x08, 0x92, 0x07, 0x93, 0x30, 0xF0, +0x20, 0x6C, 0xE5, 0xF2, 0x14, 0x4C, 0x4E, 0x35, +0x6E, 0x36, 0x80, 0x18, 0x48, 0x43, 0x07, 0x94, +0x08, 0x92, 0x43, 0xEC, 0x03, 0x61, 0x0C, 0x93, +0x1E, 0x5B, 0x2F, 0x61, 0x6B, 0xA0, 0x10, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, +0x10, 0x72, 0x38, 0x61, 0x0C, 0x94, 0x1E, 0x5C, +0x35, 0x61, 0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, +0x68, 0x9B, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, +0x07, 0x22, 0x09, 0x95, 0x30, 0xF0, 0x20, 0x6C, +0x05, 0xF3, 0x04, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x06, 0x94, 0x80, 0x18, 0x2D, 0x49, 0x02, 0x72, +0x09, 0x61, 0x5D, 0x67, 0x67, 0x42, 0x1D, 0x4B, +0x40, 0xA3, 0x00, 0x6B, 0x20, 0xF0, 0x42, 0xC0, +0x06, 0xD3, 0x1A, 0x10, 0x9D, 0x67, 0x47, 0x44, +0x1D, 0x4A, 0x80, 0xA2, 0x20, 0xF0, 0x81, 0xC0, +0x11, 0x10, 0x6B, 0xA0, 0x10, 0x6A, 0x4B, 0xEA, +0x4C, 0xEB, 0xFF, 0x6C, 0x8C, 0xEB, 0x10, 0x73, +0x01, 0x6B, 0x06, 0xD3, 0x09, 0x61, 0x6A, 0xA0, +0x6C, 0xEA, 0x01, 0x6B, 0x6D, 0xEA, 0x4A, 0xC0, +0x06, 0xD3, 0x02, 0x10, 0x00, 0x6A, 0x06, 0xD2, +0x30, 0xF0, 0x21, 0x6B, 0x52, 0xF4, 0x68, 0x9B, +0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x07, 0x22, +0x06, 0x95, 0x30, 0xF0, 0x20, 0x6C, 0x05, 0xF3, +0x10, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x06, 0x95, +0x91, 0x67, 0x80, 0x18, 0x32, 0x51, 0x13, 0x97, +0x12, 0x91, 0x11, 0x90, 0x0A, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x28, 0xF7, 0x33, 0xA2, 0x30, 0x68, 0x28, 0xF7, +0x52, 0xA2, 0x18, 0xE9, 0x30, 0xF0, 0x21, 0x6B, +0x92, 0xF7, 0x10, 0x4B, 0x02, 0x72, 0x12, 0xE8, +0x01, 0xE3, 0x34, 0x60, 0x03, 0x5A, 0x03, 0x60, +0x01, 0x72, 0x09, 0x60, 0xB7, 0x10, 0x03, 0x72, +0x78, 0x67, 0x08, 0xD3, 0x74, 0x23, 0x04, 0x72, +0x80, 0xF0, 0x19, 0x60, 0xAF, 0x10, 0x9D, 0x67, +0x0C, 0x6A, 0x0E, 0x6B, 0x70, 0xC4, 0x4F, 0xCC, +0x52, 0xC4, 0x58, 0xA0, 0xBD, 0x67, 0x53, 0xC4, +0x42, 0xA0, 0x54, 0xC4, 0x87, 0xA0, 0x03, 0x6A, +0x8A, 0x33, 0x4C, 0xEB, 0x4C, 0xEC, 0x96, 0xC5, +0x75, 0xC5, 0x64, 0xA0, 0x01, 0x6C, 0x77, 0xC5, +0x65, 0xA0, 0x78, 0xC5, 0x68, 0xA0, 0x7A, 0x33, +0x8C, 0xEB, 0x79, 0xC5, 0x6C, 0xA0, 0x6C, 0xEA, +0x5A, 0xC5, 0x4C, 0xA0, 0x4A, 0x32, 0x8C, 0xEA, +0x5B, 0xC5, 0x4A, 0xA8, 0x5C, 0xC5, 0x4B, 0xA8, +0x5D, 0xC5, 0x82, 0x10, 0x7D, 0x67, 0x0C, 0x6A, +0x4F, 0xCB, 0x0E, 0x6A, 0x50, 0xC3, 0x0D, 0x6A, +0x52, 0xC3, 0x68, 0xA0, 0x1F, 0x6A, 0x9D, 0x67, +0x6C, 0xEA, 0x53, 0xC4, 0x40, 0xA0, 0x2C, 0x31, +0x54, 0xC4, 0x41, 0xA0, 0x55, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF3, 0x4C, 0x9A, 0x49, 0xE1, +0x40, 0xA2, 0x56, 0xC4, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF3, 0x58, 0x9A, 0x49, 0xE1, 0x40, 0xA2, +0x57, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF3, +0x5C, 0x9A, 0x49, 0xE1, 0x40, 0xA2, 0x58, 0xC4, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, 0x40, 0x9A, +0x49, 0xE1, 0x40, 0xA2, 0x59, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF3, 0x54, 0x9A, 0x49, 0xE1, +0x40, 0xA2, 0x5A, 0xC4, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF3, 0x44, 0x9A, 0x49, 0xE1, 0x40, 0xA2, +0x5B, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, +0x48, 0x9A, 0x49, 0xE1, 0x40, 0xA2, 0x5C, 0xC4, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, 0x4C, 0x9A, +0x45, 0xE1, 0x40, 0xA1, 0x26, 0x10, 0xBD, 0x67, +0x0C, 0x6A, 0x4F, 0xCD, 0x0E, 0x6A, 0x50, 0xC5, +0x52, 0xC5, 0x4A, 0xA8, 0x91, 0x67, 0x53, 0xC5, +0x4B, 0xA8, 0x54, 0xC5, 0x5E, 0xA0, 0x55, 0xC5, +0x6A, 0xA0, 0x72, 0x32, 0x56, 0xC5, 0x0F, 0x6A, +0x6C, 0xEA, 0x57, 0xC5, 0x20, 0xF0, 0x45, 0xA0, +0x58, 0xC5, 0x80, 0x18, 0x1E, 0x49, 0x7D, 0x67, +0x91, 0x67, 0x59, 0xC3, 0x80, 0x18, 0x24, 0x49, +0x9D, 0x67, 0xA7, 0x44, 0x19, 0x4D, 0xA0, 0xA5, +0x5A, 0xC4, 0xBB, 0xC4, 0x42, 0xA0, 0x5C, 0xC4, +0x43, 0xA0, 0x5D, 0xC4, 0x11, 0x10, 0x7D, 0x67, +0x03, 0x6A, 0x4F, 0xCB, 0x0E, 0x6A, 0x50, 0xC3, +0x0F, 0x6A, 0x52, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0xE1, 0xF7, 0x68, 0xA2, 0xE1, 0xF7, 0x08, 0x4A, +0x41, 0xA2, 0x9D, 0x67, 0x73, 0xC4, 0x54, 0xC4, +0x04, 0x94, 0x05, 0x95, 0x06, 0x96, 0x07, 0x97, +0x80, 0x18, 0x20, 0x41, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xEE, 0x30, 0xF0, +0x20, 0x6B, 0xEC, 0xEA, 0x43, 0xF7, 0xE4, 0x44, +0x6B, 0xF0, 0x08, 0x4B, 0xE4, 0x37, 0x7D, 0xE7, +0xA3, 0xCF, 0x63, 0xF7, 0xA4, 0x44, 0xA4, 0x35, +0x84, 0x34, 0x75, 0xE5, 0x6D, 0xE4, 0xC6, 0xC5, +0xC7, 0xF6, 0x4F, 0xC3, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0x8C, 0xEA, 0x43, 0xF7, 0xA4, 0x42, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0xA4, 0x35, 0x01, 0x6C, 0x75, 0xE5, 0x8B, 0xEC, +0x83, 0xCD, 0x63, 0xF7, 0xA4, 0x42, 0xA4, 0x35, +0x44, 0x32, 0x75, 0xE5, 0x6D, 0xE2, 0x86, 0xC5, +0xC7, 0xF6, 0x8F, 0xC3, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0xF7, 0x1F, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x4C, 0xEC, 0x6B, 0xF0, 0x08, 0x4B, 0xAC, 0xEA, +0x87, 0xF6, 0x8A, 0xCB, 0x87, 0xF6, 0x4C, 0xCB, +0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0x6B, 0xF0, 0x08, 0x48, 0x87, 0xF6, 0x48, 0xA0, +0x80, 0xF0, 0x13, 0x22, 0x30, 0xF0, 0x21, 0x6C, +0x00, 0x6D, 0x32, 0xF4, 0x18, 0x4C, 0x18, 0x6E, +0xE0, 0xF3, 0x1F, 0x6F, 0x80, 0x18, 0x9F, 0x58, +0x87, 0xF6, 0x6A, 0xA8, 0xFF, 0xF7, 0x1F, 0x6D, +0x4C, 0xED, 0xAE, 0xEB, 0x6B, 0xEA, 0x6D, 0xEA, +0xC0, 0xF7, 0x43, 0x32, 0xFF, 0x69, 0x4C, 0xE9, +0x87, 0xF6, 0x4C, 0xA8, 0xAE, 0xEA, 0x12, 0x22, +0xFF, 0x71, 0x11, 0x61, 0xE7, 0xF3, 0x40, 0x98, +0x80, 0x6B, 0x6C, 0xEA, 0x72, 0x22, 0xE7, 0xF3, +0x44, 0x98, 0x05, 0x5A, 0x6E, 0x61, 0x30, 0xF0, +0x20, 0x6C, 0x05, 0xF3, 0x1C, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x67, 0x10, 0x01, 0x69, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xE7, 0xF3, +0x60, 0x9A, 0x80, 0x6C, 0x8C, 0xEB, 0x0B, 0x23, +0xE7, 0xF3, 0x44, 0x9A, 0x05, 0x5A, 0x07, 0x61, +0x30, 0xF0, 0x20, 0x6C, 0x25, 0xF3, 0x0C, 0x4C, +0xD1, 0x67, 0x80, 0x18, 0x48, 0x43, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xE7, 0xF3, +0x60, 0x9A, 0x80, 0x6C, 0x8C, 0xEB, 0x0A, 0x23, +0xE7, 0xF3, 0x44, 0x9A, 0x05, 0x5A, 0x06, 0x61, +0x30, 0xF0, 0x20, 0x6C, 0x25, 0xF3, 0x1C, 0x4C, +0x80, 0x18, 0x48, 0x43, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x25, 0xE2, 0x30, 0xF0, +0x21, 0x6A, 0x30, 0xF0, 0x21, 0x68, 0x32, 0xF7, +0x16, 0x4A, 0xF2, 0xF6, 0x16, 0x48, 0xC7, 0xF6, +0x0E, 0x49, 0x04, 0xD2, 0xA0, 0xA8, 0xC0, 0xA1, +0xFF, 0xF7, 0x1F, 0x75, 0x25, 0x60, 0x1F, 0xF7, +0x00, 0x6A, 0xAC, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x40, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x44, 0x9A, 0x49, 0xE5, +0xC0, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xE7, 0xF3, 0x60, 0x9A, 0x80, 0x6C, +0x8C, 0xEB, 0x0A, 0x23, 0xE7, 0xF3, 0x44, 0x9A, +0x05, 0x5A, 0x06, 0x61, 0x30, 0xF0, 0x20, 0x6C, +0x45, 0xF3, 0x10, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x04, 0x92, 0x02, 0x48, 0x02, 0x49, 0x4A, 0xE8, +0xD1, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xE7, 0xF3, 0x60, 0x9A, 0x80, 0x6C, +0x8C, 0xEB, 0x0A, 0x23, 0xE7, 0xF3, 0x44, 0x9A, +0x05, 0x5A, 0x06, 0x61, 0x30, 0xF0, 0x20, 0x6C, +0x65, 0xF3, 0x08, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x00, 0x6B, 0x87, 0xF6, 0x68, 0xC2, 0x00, 0x68, +0x90, 0x67, 0x01, 0x48, 0x80, 0x18, 0xE4, 0x52, +0x20, 0x70, 0xFA, 0x61, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x60, 0xA4, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x7E, 0x33, +0x87, 0xF6, 0x68, 0xC2, 0x04, 0x67, 0x80, 0xA4, +0x60, 0x6B, 0x1F, 0x69, 0x8C, 0xEB, 0x76, 0x33, +0x09, 0xD3, 0x8C, 0xE9, 0x82, 0xA0, 0x61, 0xA0, +0x80, 0x34, 0x6D, 0xE4, 0x08, 0xD3, 0x08, 0x94, +0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEC, 0x08, 0xD4, +0x63, 0xA0, 0x07, 0xD3, 0x84, 0xA0, 0xE7, 0xF3, +0x60, 0x9A, 0x06, 0xD4, 0x80, 0x6C, 0x8C, 0xEB, +0x0D, 0x23, 0xE7, 0xF3, 0x64, 0x9A, 0x05, 0x5B, +0x09, 0x61, 0x87, 0xF6, 0xA8, 0xA2, 0x09, 0x96, +0x30, 0xF0, 0x20, 0x6C, 0x65, 0xF3, 0x1C, 0x4C, +0x80, 0x18, 0x48, 0x43, 0x30, 0xF0, 0x21, 0x6A, +0xF2, 0xF6, 0x50, 0xA2, 0x02, 0x2A, 0x80, 0x18, +0x49, 0x53, 0x09, 0x92, 0x1C, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xE7, 0xF3, +0x60, 0x9A, 0x80, 0x6C, 0x8C, 0xEB, 0x0F, 0x23, +0xE7, 0xF3, 0x44, 0x9A, 0x05, 0x5A, 0x0B, 0x61, +0x06, 0x93, 0x08, 0x96, 0x07, 0x97, 0x30, 0xF0, +0x20, 0x6C, 0xA5, 0xF3, 0x04, 0x4C, 0xB1, 0x67, +0x04, 0xD3, 0x80, 0x18, 0x48, 0x43, 0x91, 0x67, +0x80, 0x18, 0xE4, 0x52, 0x55, 0x10, 0x09, 0x94, +0x01, 0x74, 0x29, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xE7, 0xF3, 0x60, 0x9A, +0x80, 0x6C, 0x8C, 0xEB, 0x0F, 0x23, 0xE7, 0xF3, +0x44, 0x9A, 0x05, 0x5A, 0x0B, 0x61, 0x06, 0x92, +0x08, 0x96, 0x07, 0x97, 0x30, 0xF0, 0x20, 0x6C, +0xA5, 0xF3, 0x04, 0x4C, 0xB1, 0x67, 0x04, 0xD2, +0x80, 0x18, 0x48, 0x43, 0x07, 0x93, 0xFF, 0x73, +0x02, 0x61, 0x06, 0x94, 0x07, 0xD4, 0x06, 0x92, +0xFF, 0x72, 0x02, 0x61, 0x07, 0x93, 0x06, 0xD3, +0x08, 0x95, 0x07, 0x96, 0x06, 0x97, 0x91, 0x67, +0x80, 0x18, 0xD8, 0x52, 0x29, 0x10, 0x09, 0x94, +0x03, 0x74, 0x26, 0x61, 0x22, 0xA0, 0x84, 0xA0, +0x63, 0xA0, 0x51, 0x67, 0x40, 0x31, 0x41, 0xA0, +0x80, 0x34, 0x61, 0xE4, 0x45, 0xE1, 0xE0, 0xF3, +0x1F, 0x6A, 0x4C, 0xE9, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xE7, 0xF3, +0x60, 0x9A, 0x80, 0x6C, 0x8C, 0xEB, 0x0C, 0x23, +0xE7, 0xF3, 0x44, 0x9A, 0x05, 0x5A, 0x08, 0x61, +0x30, 0xF0, 0x20, 0x6C, 0xC5, 0xF3, 0x08, 0x4C, +0xB1, 0x67, 0xD0, 0x67, 0x80, 0x18, 0x48, 0x43, +0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, 0xF0, 0x52, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, +0x1C, 0x22, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0xFF, 0x6D, 0x83, 0xF4, 0x10, 0x6C, +0x01, 0x4D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF2, 0x20, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x01, 0x6E, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0xFF, 0x6D, 0x83, 0xF4, 0x10, 0x6C, +0x01, 0x4D, 0x00, 0x6E, 0x40, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFF, 0x63, 0x01, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF2, 0x60, 0x9B, 0x46, 0x67, 0x8E, 0xEB, +0x12, 0x23, 0x00, 0x6E, 0x66, 0x67, 0xE4, 0x67, +0xE6, 0xEE, 0x01, 0x68, 0x0C, 0xEF, 0x07, 0x2F, +0x01, 0x4B, 0xFF, 0x6F, 0xEC, 0xEB, 0x14, 0x73, +0x01, 0x4E, 0xF5, 0x61, 0x14, 0x6B, 0x8F, 0xEC, +0x44, 0xEB, 0xAC, 0xEC, 0x8D, 0xEA, 0x01, 0x90, +0x01, 0x63, 0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, +0x20, 0xE8, 0x00, 0x65, 0x01, 0x6A, 0x20, 0xE8, +0x20, 0xE8, 0x00, 0x65, 0x00, 0x6A, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x01, 0x75, 0x33, 0x61, 0x01, 0x76, 0x17, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0x20, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF5, 0xC8, 0x9B, +0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x81, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF2, 0x20, 0x9A, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x63, 0xF5, +0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, +0x00, 0x6C, 0xB1, 0x67, 0x63, 0xF5, 0xCC, 0x9B, +0x67, 0x10, 0x02, 0x75, 0x2C, 0x61, 0x01, 0x76, +0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, +0x20, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x00, 0x6C, 0xB1, 0x67, 0x63, 0xF5, 0xCC, 0x9B, +0x2D, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, +0x20, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0x63, 0xF5, 0xCC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, 0xB1, 0x67, +0x63, 0xF5, 0xC8, 0x9B, 0x39, 0x10, 0x03, 0x75, +0x38, 0x61, 0x01, 0x76, 0x1A, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF2, 0x20, 0x9A, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x63, 0xF5, 0xC8, 0x9B, 0x03, 0xF0, +0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, +0x00, 0x6C, 0xB1, 0x67, 0x63, 0xF5, 0xD0, 0x9B, +0x1B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF2, 0x20, 0x9A, 0x63, 0xF5, +0x08, 0x4B, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF5, 0x08, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xC0, 0x9B, 0x08, 0xF1, 0x00, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0x01, 0x6A, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0xAC, 0xEA, 0x0E, 0x72, 0x51, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, +0xA3, 0xF4, 0x0C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF2, 0x00, 0x6C, 0xA7, 0xF5, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF5, 0xD4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF2, 0x04, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF2, 0x08, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, +0xAD, 0xF2, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x0C, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF2, 0x18, 0x6C, +0x75, 0xF2, 0x1B, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x83, 0xF2, 0x1C, 0x6C, 0xFF, 0xF7, +0x1F, 0x6D, 0xDE, 0xF3, 0x17, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF2, 0x00, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF5, +0xD8, 0x9B, 0xA3, 0xF2, 0x0C, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF2, +0x10, 0x6C, 0xB1, 0x67, 0xFF, 0xF7, 0x1F, 0x6E, +0x55, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0xA3, 0xF4, 0x0C, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x00, 0x6C, +0x8A, 0xF2, 0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF5, 0xDC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF2, +0x04, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF2, 0x08, 0x6C, 0xFF, 0xF7, +0x1F, 0x6D, 0x81, 0xF2, 0x08, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x0C, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF2, +0x18, 0x6C, 0xD5, 0xF4, 0x04, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF2, 0x1C, 0x6C, +0xFF, 0xF7, 0x1F, 0x6D, 0xB9, 0xF0, 0x12, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF2, +0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF5, 0xC4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xA3, 0xF2, 0x0C, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF5, 0xD0, 0x9B, 0xA3, 0xF2, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, +0xFF, 0x68, 0xAC, 0xE8, 0xD0, 0x67, 0xA3, 0xF0, +0x0C, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0xD0, 0x67, 0xA8, 0xF1, +0x0C, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, 0x40, 0xEA, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x68, 0xAC, 0xE8, +0x09, 0xE4, 0x0A, 0xD4, 0x05, 0xD2, 0x40, 0xF0, +0x71, 0xA2, 0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, +0x44, 0x99, 0x04, 0xD3, 0xA3, 0xF0, 0x0C, 0x6C, +0xE0, 0xF1, 0x10, 0x6D, 0xD0, 0x67, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0xA8, 0xF1, 0x0C, 0x6C, +0xE0, 0xF1, 0x10, 0x6D, 0xD0, 0x67, 0x40, 0xEA, +0x0A, 0x92, 0x40, 0xF0, 0x10, 0xC2, 0x05, 0x93, +0x60, 0xF0, 0x41, 0xA3, 0x02, 0x2A, 0x0D, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x04, 0x96, 0x21, 0xF0, 0x08, 0x6C, +0xF8, 0x6D, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xED, +0x68, 0x45, 0xFB, 0x4B, 0x4C, 0xEB, 0x02, 0x5B, +0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, 0xE1, 0xF7, +0x1F, 0x6D, 0x61, 0xF1, 0x09, 0x6E, 0x78, 0x10, +0x68, 0x45, 0xFD, 0x4B, 0x4C, 0xEB, 0x02, 0x5B, +0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, 0xE1, 0xF7, +0x1F, 0x6D, 0x61, 0xF1, 0x0A, 0x6E, 0x68, 0x10, +0x6F, 0x45, 0x4C, 0xEB, 0x0A, 0x5B, 0x0B, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x21, 0xF4, 0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0xA1, 0xF1, 0x0A, 0x6E, 0x59, 0x10, 0x68, 0x45, +0xE4, 0x4B, 0x4C, 0xEB, 0x10, 0x5B, 0x0B, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x21, 0xF4, 0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x80, 0xF4, 0x14, 0x6E, 0x49, 0x10, 0x68, 0x45, +0xD4, 0x4B, 0x4C, 0xEB, 0x04, 0x5B, 0x0B, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x21, 0xF4, 0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x80, 0xF4, 0x13, 0x6E, 0x39, 0x10, 0x68, 0x45, +0xD0, 0x4B, 0x4C, 0xEB, 0x38, 0x5B, 0x0B, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x21, 0xF4, 0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x40, 0xF4, 0x13, 0x6E, 0x29, 0x10, 0x68, 0x45, +0x98, 0x4B, 0x4C, 0xEB, 0x08, 0x5B, 0x0B, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x21, 0xF4, 0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x40, 0xF4, 0x12, 0x6E, 0x19, 0x10, 0x88, 0x4D, +0x4C, 0xED, 0x35, 0x5D, 0x0B, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, +0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x00, 0xF4, +0x12, 0x6E, 0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x00, 0xF4, 0x11, 0x6E, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0xAC, 0xEA, +0x0F, 0x5A, 0x0B, 0x60, 0x0D, 0x72, 0x09, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x01, 0xF0, 0x08, 0x6C, 0x70, 0x6D, 0x01, 0x6E, +0x08, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x01, 0xF0, 0x08, 0x6C, 0x70, 0x6D, +0x03, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, +0x26, 0x67, 0x3B, 0x22, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0x83, 0xF5, 0x08, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF1, +0x04, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF5, 0x08, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xD1, 0x67, 0x48, 0xF0, 0x04, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF0, +0x34, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF1, +0x00, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x48, 0xF0, 0x00, 0x6C, +0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0xF0, 0x18, 0x6C, 0x01, 0xF0, +0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF5, +0x1C, 0x6C, 0x83, 0xF5, 0xAC, 0x9B, 0x0F, 0x6E, +0x37, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x68, 0x83, 0xF5, 0x28, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF1, 0x04, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x48, 0xF0, 0x04, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF0, +0x34, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF1, +0x00, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x48, 0xF0, 0x00, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0xF0, 0x18, 0x6C, 0x01, 0xF0, +0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF5, +0xAC, 0x9B, 0x23, 0xF5, 0x1C, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, 0x13, 0x22, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0xF0, 0x18, 0x6C, 0x08, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF5, 0x1C, 0x6C, 0x83, 0xF5, +0xAC, 0x9B, 0x0F, 0x6E, 0x12, 0x10, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, +0x18, 0x6C, 0x08, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x83, 0xF5, 0xAC, 0x9B, 0x23, 0xF5, 0x1C, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0xAC, 0xE8, +0x00, 0x6D, 0x24, 0x67, 0x80, 0x18, 0x53, 0x55, +0x99, 0x70, 0x07, 0x61, 0x50, 0x99, 0x40, 0xA2, +0x04, 0x2A, 0x91, 0x67, 0x01, 0x6D, 0x70, 0x6E, +0x03, 0x10, 0x00, 0x6D, 0x91, 0x67, 0xC5, 0x67, +0x80, 0x18, 0x13, 0x55, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0xAC, 0xEA, +0x0C, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, 0x63, 0xF4, +0x04, 0x6C, 0x03, 0xF1, 0xB4, 0x9B, 0x01, 0x6E, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF1, +0xB4, 0x9B, 0x63, 0xF4, 0x04, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0xAC, 0xEA, +0x09, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x41, 0xF4, 0x14, 0x6C, 0x80, 0x6D, +0x01, 0x6E, 0x08, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x41, 0xF4, 0x14, 0x6C, +0x80, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x5B, 0xAC, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0xFF, 0xF7, 0x1F, 0x68, 0xAC, 0xE8, 0x24, 0x67, +0xD0, 0x67, 0x61, 0xF2, 0x10, 0x6C, 0xE0, 0xF3, +0x1F, 0x6D, 0x40, 0xEA, 0x1B, 0xC9, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF5, 0xB0, 0x9B, +0xC0, 0xF3, 0x44, 0x9A, 0x00, 0x6E, 0x23, 0xF4, +0x1C, 0x6C, 0x40, 0xEA, 0x01, 0x6D, 0xA5, 0xF5, +0x14, 0x6C, 0xAB, 0xED, 0x80, 0x18, 0x09, 0x28, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, 0x74, 0x9B, +0x05, 0x97, 0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF2, 0x50, 0x9A, 0x4E, 0xEB, 0x01, 0x5B, +0x58, 0x67, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x83, 0xF2, 0x18, 0x68, 0x24, 0x67, 0x18, 0xF0, +0x00, 0x6D, 0x90, 0x67, 0x80, 0x18, 0x09, 0x28, +0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF4, +0xB0, 0x9A, 0xA3, 0xF2, 0x08, 0x6C, 0x80, 0x18, +0x09, 0x28, 0x90, 0x67, 0xC0, 0x6D, 0x04, 0xD2, +0x80, 0x18, 0x09, 0x28, 0x02, 0x67, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF2, 0xB8, 0x9A, 0x63, 0xF2, +0x10, 0x6C, 0x80, 0x18, 0x09, 0x28, 0x05, 0x93, +0x04, 0x95, 0xFF, 0x6C, 0x8C, 0xEB, 0x8C, 0xE8, +0x70, 0x33, 0x10, 0x30, 0x4D, 0xE8, 0xAD, 0xEB, +0x60, 0xF0, 0x71, 0xC1, 0x60, 0xF0, 0x12, 0xC1, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x4C, 0xED, +0x08, 0xD4, 0xCC, 0xEA, 0xC0, 0xF0, 0x1C, 0x25, +0x20, 0x22, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0x83, 0xF5, 0xB8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0x21, 0xF0, +0x13, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF4, 0x08, 0x6C, 0x18, 0xF0, 0x00, 0x6D, +0x02, 0x6E, 0x40, 0xEA, 0x01, 0x6D, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xAB, 0xED, 0x83, 0xF5, 0xDC, 0x9B, +0x90, 0x11, 0x08, 0x93, 0x50, 0x9B, 0x40, 0xA2, +0x01, 0x72, 0x80, 0xF1, 0x0B, 0x61, 0x01, 0x69, +0x2B, 0xE9, 0xA1, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x80, 0x18, 0x09, 0x28, 0x08, 0x93, 0x30, 0xF0, +0x20, 0x68, 0x03, 0xF0, 0x00, 0x6C, 0x5D, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, 0xB8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x81, 0xF0, 0x08, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, +0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x81, 0xF0, +0x18, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x63, 0xF4, 0x08, 0x6C, 0x18, 0xF0, +0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xA1, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x04, 0xF2, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF5, 0x1C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF5, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF5, 0xC4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, +0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF5, 0xCC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, +0xD0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF5, 0xD4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF5, +0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF5, 0xDC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF5, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF5, 0x04, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xC0, 0x9B, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0xC3, 0xF5, 0x04, 0x4B, 0xD4, 0x10, +0x20, 0x22, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0x83, 0xF5, 0xB8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0x20, 0xF3, +0x13, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF4, 0x08, 0x6C, 0x18, 0xF0, 0x00, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x01, 0x6D, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xAB, 0xED, 0xC3, 0xF5, 0xC8, 0x9B, +0xB4, 0x10, 0x08, 0x93, 0x50, 0x9B, 0x40, 0xA2, +0x01, 0x72, 0xA0, 0xF0, 0x0F, 0x61, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF5, +0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x00, 0x6C, 0x20, 0xF3, 0x13, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0xB4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x81, 0xF0, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF4, 0x08, 0x6C, 0x18, 0xF0, 0x00, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x08, 0x93, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x69, 0xDD, 0x9B, 0x2B, 0xE9, +0xA1, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF5, 0x08, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF5, 0x08, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF5, 0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF5, 0xD0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF5, 0xD4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF5, 0xD8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF5, 0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF5, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF5, 0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF5, 0xC8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF5, 0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF5, 0x10, 0x4B, +0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0xE3, 0xF5, 0x10, 0x4B, +0xC0, 0x9B, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x05, 0x67, 0x63, 0xF4, 0xB0, 0x9A, +0x21, 0xF0, 0x04, 0x6C, 0x80, 0x18, 0x09, 0x28, +0x40, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, +0xB8, 0x9A, 0x03, 0xF2, 0x04, 0x6C, 0x80, 0x18, +0x09, 0x28, 0x01, 0x72, 0x02, 0x61, 0x03, 0x6A, +0x06, 0x10, 0x02, 0x2A, 0x01, 0x6A, 0x03, 0x10, +0x05, 0x72, 0x02, 0x61, 0x02, 0x6A, 0x41, 0xC0, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x05, 0x67, +0x01, 0x6D, 0x21, 0xF0, 0x00, 0x6C, 0xAB, 0xED, +0x80, 0x18, 0x09, 0x28, 0xF0, 0x6B, 0x4C, 0xEB, +0x72, 0x33, 0x61, 0xC0, 0x0F, 0x6B, 0x4C, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0xA8, 0x9A, +0x60, 0xC0, 0x03, 0xF2, 0x04, 0x6C, 0x80, 0x18, +0x09, 0x28, 0x0C, 0x72, 0x02, 0x61, 0x03, 0x6A, +0x09, 0x10, 0x08, 0x72, 0x02, 0x61, 0x01, 0x6A, +0x05, 0x10, 0x04, 0x72, 0x02, 0x61, 0x02, 0x6A, +0x01, 0x10, 0x01, 0x2A, 0x42, 0xC0, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF1, 0xB8, 0x9A, 0x23, 0xF6, +0x04, 0x6C, 0x80, 0x18, 0x09, 0x28, 0x4F, 0xEA, +0x43, 0xC0, 0x01, 0x6A, 0x44, 0xC0, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x63, 0xF5, 0x10, 0x69, 0x01, 0x6D, 0x91, 0x67, +0xAB, 0xED, 0x80, 0x18, 0x09, 0x28, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x68, 0x04, 0x96, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0x91, 0x67, 0xAB, 0xED, +0xFF, 0xF5, 0x1E, 0x4E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x04, 0x96, 0x01, 0x6D, 0x91, 0x67, +0xAB, 0xED, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x0C, 0xED, +0x63, 0xF4, 0x10, 0x4A, 0x04, 0xD5, 0xA0, 0x9A, +0x21, 0xF0, 0x04, 0x69, 0x91, 0x67, 0x80, 0x18, +0x09, 0x28, 0x04, 0x93, 0x48, 0x23, 0x4C, 0xE8, +0x03, 0x70, 0x08, 0x60, 0x30, 0xF0, 0x20, 0x6C, +0xC5, 0xF3, 0x1C, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x00, 0x6A, 0x7B, 0x10, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, 0x1C, 0x6C, +0x04, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF2, 0x18, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, +0x10, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x08, 0xF1, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, 0x18, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, +0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF5, 0xA4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF2, 0x0C, 0x69, 0x91, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0xE3, 0xF5, +0xB4, 0x9B, 0x00, 0x6E, 0x3C, 0x10, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, +0x1C, 0x6C, 0x04, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, 0x18, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF4, 0x10, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, 0x03, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF2, +0x18, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF2, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, 0xA4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x0C, 0x69, +0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF5, +0xB4, 0x9B, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0x01, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0xCC, 0xEA, +0x08, 0xD2, 0x0E, 0xD4, 0x0F, 0xD5, 0x11, 0xD7, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x54, 0x9A, +0x64, 0x9C, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0x05, 0xF4, +0x08, 0x4C, 0x82, 0xF5, 0x08, 0x4D, 0x80, 0x18, +0x48, 0x43, 0x0F, 0x93, 0x02, 0x5B, 0x03, 0x60, +0x08, 0x94, 0x54, 0x5C, 0x12, 0x61, 0x0E, 0x94, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x54, 0x9A, +0x64, 0x9C, 0xFF, 0x69, 0x6C, 0xEA, 0x80, 0xF0, +0x15, 0x22, 0x0F, 0x95, 0x30, 0xF0, 0x20, 0x6C, +0x05, 0xF4, 0x14, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x8D, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0x63, 0xF1, 0x14, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, 0x1C, 0x69, +0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF5, 0xB8, 0x9A, 0xC0, 0xF3, +0x64, 0x98, 0x08, 0x96, 0x91, 0x67, 0x40, 0xEB, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x14, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0xE5, 0xF5, 0x08, 0x6C, +0xFF, 0x6D, 0x80, 0x18, 0x09, 0x28, 0x00, 0xF6, +0x40, 0x31, 0x00, 0xF6, 0x23, 0x31, 0x40, 0x6A, +0x2C, 0xEA, 0x03, 0x22, 0x80, 0x6A, 0x4B, 0xEA, +0x4D, 0xE9, 0x11, 0x94, 0x0B, 0x74, 0x10, 0x61, +0x0F, 0x93, 0xA3, 0xF0, 0x00, 0x6A, 0x06, 0xD2, +0x05, 0xF1, 0x00, 0x4A, 0x07, 0xD2, 0x9D, 0x67, +0x68, 0x32, 0x49, 0xE4, 0x8C, 0xAA, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF5, 0xBC, 0x9A, 0x13, 0x10, +0x11, 0x92, 0x00, 0x68, 0x0C, 0x72, 0x13, 0x61, +0x0F, 0x93, 0xE3, 0xF0, 0x08, 0x6A, 0x04, 0xD2, +0x05, 0xF1, 0x00, 0x4A, 0x05, 0xD2, 0x9D, 0x67, +0x68, 0x32, 0x49, 0xE4, 0x88, 0xAA, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF6, 0xA0, 0x9A, 0x80, 0x18, +0x09, 0x28, 0xFF, 0x68, 0x4C, 0xE8, 0x0E, 0x94, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x54, 0x9A, +0x64, 0x9C, 0x6C, 0xEA, 0x08, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x25, 0xF4, 0x0C, 0x4C, 0xB1, 0x67, +0xD0, 0x67, 0x80, 0x18, 0x48, 0x43, 0x21, 0xE0, +0x00, 0x50, 0x00, 0x69, 0x02, 0x61, 0xFF, 0x69, +0x0C, 0xE9, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x63, 0xF1, +0xB4, 0x9B, 0x63, 0xF4, 0x1C, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x0E, 0x94, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x54, 0x9A, 0x64, 0x9C, 0x6C, 0xEA, +0x09, 0x22, 0x0F, 0x95, 0x08, 0x96, 0x30, 0xF0, +0x20, 0x6C, 0x25, 0xF4, 0x1C, 0x4C, 0xF1, 0x67, +0x80, 0x18, 0x48, 0x43, 0x51, 0x67, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x00, 0xF6, 0xA0, 0x35, 0x00, 0xF6, 0xC0, 0x36, +0x00, 0xF6, 0xE0, 0x37, 0x00, 0xF6, 0xA3, 0x35, +0x00, 0xF6, 0xC3, 0x36, 0x00, 0xF6, 0xE3, 0x37, +0x05, 0xD5, 0x06, 0xD6, 0x07, 0xD7, 0x5D, 0x67, +0x40, 0xF0, 0x48, 0x82, 0x7D, 0x67, 0x24, 0x67, +0x08, 0xD2, 0x40, 0xF0, 0x6C, 0xA3, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x54, 0x9A, 0x04, 0xD3, +0x64, 0x9C, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0x05, 0xF4, +0x08, 0x4C, 0xA2, 0xF5, 0x08, 0x4D, 0x80, 0x18, +0x48, 0x43, 0x20, 0xF0, 0x4F, 0xA1, 0x0E, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x54, 0x9A, +0x64, 0x99, 0x6C, 0xEA, 0x5F, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x45, 0xF4, 0x1C, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x58, 0x10, 0x04, 0x92, 0x40, 0x5A, +0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, +0x74, 0x9A, 0x44, 0x99, 0x4C, 0xEB, 0x00, 0x6A, +0x4E, 0x23, 0x30, 0xF0, 0x20, 0x6C, 0x65, 0xF4, +0x18, 0x4C, 0x80, 0x18, 0x48, 0x43, 0x00, 0x6A, +0x46, 0x10, 0x83, 0xF4, 0x10, 0x68, 0x90, 0x67, +0x10, 0xF0, 0x00, 0x6D, 0x80, 0x18, 0x09, 0x28, +0x09, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x90, 0x67, 0x10, 0xF0, 0x00, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x06, 0x90, 0x05, 0x93, +0x7F, 0x6A, 0x4C, 0xE8, 0x4C, 0xEB, 0x00, 0x30, +0x6D, 0xE8, 0x07, 0x93, 0x04, 0x6C, 0x8B, 0xEC, +0x4C, 0xEB, 0x60, 0x33, 0x60, 0x33, 0x6D, 0xE8, +0x08, 0x93, 0x01, 0x6D, 0xAB, 0xED, 0x6C, 0xEA, +0x00, 0xF6, 0x40, 0x32, 0x4D, 0xE8, 0x04, 0x92, +0xFF, 0xF7, 0x1F, 0x6B, 0xD0, 0x67, 0x4C, 0xEC, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x07, 0xF2, 0x00, 0x4C, 0x6C, 0xEC, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x54, 0x9A, +0x64, 0x99, 0x6C, 0xEA, 0x0B, 0x22, 0x04, 0x95, +0x30, 0xF0, 0x20, 0x6C, 0x85, 0xF4, 0x0C, 0x4C, +0xC5, 0x67, 0x07, 0xF2, 0x00, 0x4E, 0xF0, 0x67, +0x80, 0x18, 0x48, 0x43, 0x01, 0x6A, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x12, 0xD6, 0x13, 0xD7, +0x03, 0xF2, 0x54, 0x9A, 0x64, 0x9C, 0xFF, 0x69, +0x04, 0x67, 0x6C, 0xEA, 0xAC, 0xE9, 0x0A, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, +0x05, 0xF4, 0x08, 0x4C, 0xC2, 0xF5, 0x0C, 0x4D, +0x80, 0x18, 0x48, 0x43, 0x20, 0xF0, 0x4F, 0xA0, +0x0E, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, +0x54, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x7E, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x45, 0xF4, 0x1C, 0x4C, +0x80, 0x18, 0x48, 0x43, 0x77, 0x10, 0x12, 0x92, +0x02, 0x5A, 0x11, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x74, 0x9A, 0x44, 0x98, 0x4C, 0xEB, +0x00, 0x6A, 0x6D, 0x23, 0x12, 0x95, 0x30, 0xF0, +0x20, 0x6C, 0x05, 0xF4, 0x14, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x00, 0x6A, 0x64, 0x10, 0x83, 0xF4, +0x10, 0x6C, 0x10, 0xF0, 0x00, 0x6D, 0x80, 0x18, +0x09, 0x28, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x83, 0xF4, 0x10, 0x6C, +0x10, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x13, 0x93, 0x0B, 0x73, 0x27, 0x61, 0x12, 0x93, +0xA3, 0xF0, 0x00, 0x6A, 0x08, 0xD2, 0x05, 0xF1, +0x00, 0x4A, 0x09, 0xD2, 0x68, 0x32, 0x06, 0x03, +0x4D, 0xE3, 0x0A, 0xD3, 0x84, 0xAB, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9A, 0xE3, 0xF5, 0xBC, 0x9B, 0xD1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, +0x54, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x32, 0x22, +0x0A, 0x92, 0x30, 0xF0, 0x20, 0x6C, 0xA5, 0xF4, +0x0C, 0x4C, 0xE2, 0x9A, 0x12, 0x95, 0x04, 0xD1, +0x0B, 0x6E, 0x26, 0x10, 0x12, 0x93, 0xE3, 0xF0, +0x08, 0x6A, 0x06, 0xD2, 0x05, 0xF1, 0x00, 0x4A, +0x07, 0xD2, 0x68, 0x32, 0x06, 0x03, 0x4D, 0xE3, +0x0B, 0xD3, 0x80, 0xAB, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, +0x03, 0xF6, 0xA0, 0x9B, 0xD1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x54, 0x9A, +0x64, 0x98, 0x6C, 0xEA, 0x0B, 0x22, 0x0B, 0x92, +0x12, 0x95, 0x13, 0x96, 0x30, 0xF0, 0x20, 0x6C, +0xE0, 0x9A, 0xA5, 0xF4, 0x0C, 0x4C, 0x04, 0xD1, +0x80, 0x18, 0x48, 0x43, 0x01, 0x6A, 0x0F, 0x97, +0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x0C, 0xD4, 0x25, 0x67, 0xA0, 0xA5, 0x00, 0x6E, +0x0B, 0x6F, 0x80, 0x18, 0xF2, 0x57, 0x0C, 0x94, +0xA1, 0xA1, 0x01, 0x6E, 0x0B, 0x6F, 0x80, 0x18, +0xF2, 0x57, 0x0C, 0x94, 0xA2, 0xA1, 0x00, 0x6E, +0x0C, 0x6F, 0x80, 0x18, 0xF2, 0x57, 0x0C, 0x94, +0xA3, 0xA1, 0x01, 0x6E, 0x0C, 0x6F, 0x80, 0x18, +0xF2, 0x57, 0xFD, 0x6A, 0x00, 0x6B, 0x11, 0x67, +0x06, 0xD2, 0x07, 0xD3, 0x07, 0x93, 0x03, 0x6A, +0x6C, 0xEA, 0x03, 0x72, 0x0A, 0x61, 0x44, 0x80, +0xA1, 0x80, 0xC2, 0x80, 0xE3, 0x80, 0x0C, 0x94, +0x04, 0xD2, 0x06, 0x92, 0x05, 0xD2, 0x80, 0x18, +0xA4, 0x57, 0x06, 0x92, 0x07, 0x93, 0x01, 0x48, +0x01, 0x4A, 0x06, 0xD2, 0x01, 0x4B, 0x07, 0xD3, +0x06, 0x93, 0xFF, 0x6A, 0x4C, 0xEB, 0x07, 0x92, +0x06, 0xD3, 0x1C, 0x72, 0xE3, 0x61, 0x11, 0x67, +0x29, 0x69, 0x43, 0x41, 0x03, 0x6B, 0x6C, 0xEA, +0x03, 0x72, 0x0D, 0x61, 0x20, 0xF0, 0xAD, 0x80, +0x20, 0xF0, 0xCE, 0x80, 0x20, 0xF0, 0xEF, 0x80, +0x20, 0xF0, 0x50, 0x80, 0x0C, 0x94, 0x05, 0xD1, +0x04, 0xD2, 0x80, 0x18, 0xA4, 0x57, 0x01, 0x49, +0x3D, 0x71, 0x01, 0x48, 0xEA, 0x61, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x0C, 0xD4, 0x0D, 0xD5, +0x0F, 0xD7, 0x03, 0xF2, 0x54, 0x9A, 0x64, 0x9C, +0x06, 0x67, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0x05, 0xF4, +0x08, 0x4C, 0x02, 0xF6, 0x10, 0x4D, 0x80, 0x18, +0x48, 0x43, 0x07, 0xF4, 0x00, 0x6A, 0x06, 0xD2, +0x02, 0xF0, 0x00, 0x4A, 0x07, 0xD2, 0xFF, 0x69, +0x30, 0xF0, 0x20, 0x6A, 0x0D, 0x93, 0x0C, 0xE9, +0xC3, 0xF2, 0x00, 0x9A, 0x0F, 0x92, 0x28, 0x34, +0x10, 0x96, 0x4C, 0xE8, 0x68, 0x32, 0x7D, 0x67, +0x49, 0xE3, 0x46, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, +0xB0, 0x67, 0x51, 0xE4, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x6C, 0xEC, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x01, 0x6C, 0x40, 0xEA, 0x0C, 0x94, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x54, 0x9A, 0x64, 0x9C, +0x6C, 0xEA, 0x0A, 0x22, 0x0D, 0x95, 0x10, 0x97, +0x30, 0xF0, 0x20, 0x6C, 0xC5, 0xF4, 0x10, 0x4C, +0xD1, 0x67, 0x04, 0xD0, 0x80, 0x18, 0x48, 0x43, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x01, 0x6A, +0x06, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x0F, 0xD5, 0x11, 0xD7, 0x03, 0xF2, 0x54, 0x9A, +0x64, 0x9C, 0x04, 0x67, 0x26, 0x67, 0x6C, 0xEA, +0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6D, 0x05, 0xF4, 0x08, 0x4C, 0x22, 0xF6, +0x18, 0x4D, 0x80, 0x18, 0x48, 0x43, 0x0F, 0x92, +0x02, 0x5A, 0x16, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x54, 0x9A, 0x64, 0x98, 0x6C, 0xEA, +0x04, 0x2A, 0x01, 0x6B, 0x6B, 0xEB, 0x08, 0xD3, +0x39, 0x10, 0x0F, 0x95, 0x30, 0xF0, 0x20, 0x6C, +0x05, 0xF4, 0x14, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x01, 0x6A, 0x4B, 0xEA, 0x08, 0xD2, 0x2E, 0x10, +0x07, 0xF4, 0x00, 0x6A, 0x06, 0xD2, 0xFF, 0x6B, +0x02, 0xF0, 0x00, 0x4A, 0x2C, 0xEB, 0x07, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0x20, 0x9A, +0x09, 0xD3, 0x11, 0x92, 0x68, 0x34, 0x0F, 0x93, +0x4C, 0xE9, 0xB1, 0x67, 0x68, 0x32, 0x7D, 0x67, +0x49, 0xE3, 0x46, 0x9A, 0x51, 0xE4, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xEC, 0x80, 0x18, 0x09, 0x28, +0x08, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, +0x54, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x0A, 0x22, +0x0F, 0x95, 0x09, 0x96, 0x08, 0x97, 0x30, 0xF0, +0x20, 0x6C, 0xE5, 0xF4, 0x18, 0x4C, 0x04, 0xD1, +0x80, 0x18, 0x48, 0x43, 0x08, 0x92, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x20, 0xF0, 0x44, 0xA4, 0x25, 0x67, 0x18, 0x6E, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, +0xE0, 0x9A, 0x00, 0x6D, 0x04, 0x67, 0x80, 0x18, +0x9F, 0x58, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x54, 0x9A, 0x64, 0x98, 0x6C, 0xEA, +0x0B, 0x22, 0x20, 0xF0, 0xAA, 0xA0, 0x20, 0xF0, +0xCD, 0xA0, 0x04, 0x97, 0x30, 0xF0, 0x20, 0x6C, +0x05, 0xF5, 0x1C, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x04, 0x93, 0xFF, 0x6A, 0xEB, 0x4B, 0x4C, 0xEB, +0x02, 0x5B, 0x50, 0x60, 0x05, 0x93, 0x6C, 0xEA, +0x0F, 0x5A, 0x58, 0x67, 0x01, 0x5A, 0x58, 0x67, +0x4B, 0xEA, 0x4C, 0xE9, 0x01, 0x71, 0x12, 0x60, +0x05, 0x21, 0x02, 0x71, 0x23, 0x60, 0x03, 0x71, +0x2D, 0x60, 0x40, 0x10, 0x30, 0xF0, 0x20, 0x68, +0xFF, 0xF7, 0x1F, 0x69, 0xC0, 0xF3, 0x44, 0x98, +0x43, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x6E, 0xF7, +0x10, 0x6E, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0xFF, 0xF7, 0x1F, 0x69, +0x43, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x04, 0xF3, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x48, 0xF1, 0x04, 0x6C, 0xB1, 0x67, 0x6E, 0xF0, +0x17, 0x6E, 0x1F, 0x10, 0x30, 0xF0, 0x20, 0x68, +0xFF, 0xF7, 0x1F, 0x69, 0xC0, 0xF3, 0x44, 0x98, +0x43, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x6E, 0xF7, +0x10, 0x6E, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0xFF, 0xF7, 0x1F, 0x69, +0x43, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x04, 0xF3, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x48, 0xF1, 0x04, 0x6C, 0xB1, 0x67, 0x24, 0xF0, +0x10, 0x6E, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x10, 0xD6, 0x11, 0xD7, +0x03, 0xF2, 0x54, 0x9A, 0x64, 0x9C, 0x04, 0x67, +0x25, 0x67, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0x05, 0xF4, +0x08, 0x4C, 0xE2, 0xF5, 0x10, 0x4D, 0x80, 0x18, +0x48, 0x43, 0x02, 0x59, 0x0F, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x54, 0x9A, 0x64, 0x98, +0x6C, 0xEA, 0x6D, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0x45, 0xF5, 0x1C, 0x4C, 0xB1, 0x67, 0x80, 0x18, +0x48, 0x43, 0x65, 0x10, 0x10, 0x92, 0x09, 0x22, +0x12, 0x94, 0x11, 0x97, 0xB1, 0x67, 0x04, 0xD4, +0xC2, 0x67, 0x90, 0x67, 0x80, 0x18, 0x74, 0x58, +0x5B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, +0xE0, 0x9A, 0x11, 0x92, 0x00, 0x6C, 0x08, 0xD4, +0xEC, 0xEA, 0xEA, 0xEA, 0x09, 0xD2, 0x1C, 0x60, +0x90, 0x67, 0xB1, 0x67, 0x00, 0x6E, 0x80, 0x18, +0x9F, 0x58, 0x08, 0xD2, 0x01, 0x4A, 0x0E, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x54, 0x9A, +0x64, 0x98, 0x6C, 0xEA, 0x40, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x65, 0xF5, 0x10, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x39, 0x10, 0x09, 0x94, 0x08, 0x95, +0x12, 0x96, 0x80, 0x18, 0xD0, 0x53, 0x12, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x9A, +0x03, 0xF0, 0x08, 0x6A, 0x06, 0xD2, 0x05, 0xF1, +0x00, 0x4A, 0x07, 0xD2, 0x9D, 0x67, 0x28, 0x32, +0x49, 0xE4, 0x8C, 0xAA, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF2, 0xC0, 0x9A, 0x12, 0x92, 0x01, 0x6D, +0xAB, 0xED, 0x4C, 0xEE, 0x40, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x54, 0x9A, 0x64, 0x98, +0x6C, 0xEA, 0x0D, 0x22, 0x08, 0x94, 0x09, 0x92, +0x12, 0x97, 0x04, 0xD4, 0x30, 0xF0, 0x20, 0x6C, +0x85, 0xF5, 0x0C, 0x4C, 0xB1, 0x67, 0x00, 0x6E, +0x05, 0xD2, 0x80, 0x18, 0x48, 0x43, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0D, 0x6C, +0x40, 0xEA, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x00, 0x6D, 0x0A, 0xD4, +0x80, 0x18, 0xB7, 0x53, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF1, 0x38, 0x9A, 0x30, 0xF0, 0x21, 0x68, +0x32, 0xF4, 0x18, 0x48, 0x00, 0x6A, 0x90, 0x67, +0xF1, 0x67, 0xA2, 0x67, 0xBC, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x90, 0x67, 0xF1, 0x67, +0x01, 0x6A, 0x00, 0x6D, 0xBC, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x00, 0x6A, 0xF1, 0x67, +0x90, 0x67, 0xBC, 0x6E, 0xA2, 0x67, 0x04, 0xD2, +0x80, 0x18, 0x12, 0x59, 0x0A, 0x94, 0x01, 0x6D, +0x80, 0x18, 0xB7, 0x53, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x68, 0x25, 0x67, 0x0C, 0xE9, 0x29, 0x59, +0xCC, 0xE8, 0x03, 0x61, 0x17, 0x58, 0x03, 0x60, +0x08, 0x10, 0x17, 0x58, 0x06, 0x60, 0x01, 0x6A, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x23, 0xF4, 0x1C, 0x6C, 0x03, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x30, 0xF0, 0x20, 0x6D, 0xC5, 0xF5, 0x04, 0x4C, +0x42, 0xF6, 0x18, 0x4D, 0xD1, 0x67, 0xF0, 0x67, +0x80, 0x18, 0x48, 0x43, 0x00, 0x6A, 0xE4, 0x17, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, +0xFF, 0x6D, 0x83, 0xF4, 0x10, 0x6C, 0x01, 0x4D, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF1, 0x18, 0x9A, 0x00, 0x6C, 0x01, 0x6E, +0xB0, 0x67, 0x80, 0x18, 0x96, 0x28, 0x00, 0x6C, +0xB0, 0x67, 0xC4, 0x67, 0x80, 0x18, 0x96, 0x28, +0xB0, 0x67, 0x00, 0x6C, 0x01, 0x6E, 0x80, 0x18, +0x96, 0x28, 0xC0, 0xF3, 0x44, 0x99, 0xFF, 0x6D, +0x83, 0xF4, 0x10, 0x6C, 0x01, 0x4D, 0x01, 0x6E, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x52, 0x9C, 0x40, 0xA2, 0x13, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0x18, 0x9A, +0x00, 0x6C, 0x01, 0x6E, 0xB0, 0x67, 0x80, 0x18, +0x96, 0x28, 0x00, 0x6C, 0xC4, 0x67, 0xB0, 0x67, +0x80, 0x18, 0x96, 0x28, 0x00, 0x6C, 0xB0, 0x67, +0x01, 0x6E, 0x80, 0x18, 0x96, 0x28, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x09, 0xD5, 0x03, 0xF2, +0x54, 0x9A, 0x64, 0x9C, 0x04, 0x67, 0x6C, 0xEA, +0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6D, 0x05, 0xF4, 0x08, 0x4C, 0xE2, 0xF4, +0x08, 0x4D, 0x80, 0x18, 0x48, 0x43, 0x90, 0x67, +0x80, 0x18, 0xB6, 0x55, 0x52, 0x98, 0x40, 0xA2, +0x04, 0x22, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, +0x8A, 0x55, 0x20, 0xF0, 0x58, 0xA0, 0x04, 0x22, +0x90, 0x67, 0xE0, 0xF3, 0x1F, 0x6D, 0x02, 0x10, +0x90, 0x67, 0x00, 0x6D, 0x30, 0xF0, 0x20, 0x69, +0x80, 0x18, 0x98, 0x55, 0xC0, 0xF3, 0x44, 0x99, +0x03, 0x6D, 0xC5, 0x67, 0x03, 0xF0, 0x0C, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF2, +0x14, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0x03, 0xF0, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0x03, 0x6D, 0xC5, 0x67, +0x08, 0xF1, 0x0C, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF2, 0x14, 0x4B, 0xC0, 0xF3, +0x44, 0x99, 0xA0, 0x9B, 0x08, 0xF1, 0x0C, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x09, 0x92, 0x14, 0x2A, +0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF4, 0x1C, 0x6C, +0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF2, 0x14, 0x4B, 0x44, 0x98, +0x60, 0x9B, 0x6C, 0xEA, 0x2F, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x05, 0xF6, 0x04, 0x4C, 0x16, 0x10, +0x09, 0x92, 0x01, 0x72, 0x16, 0x61, 0xC0, 0xF3, +0x44, 0x99, 0x03, 0x6D, 0x23, 0xF4, 0x1C, 0x6C, +0xC5, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF2, 0x14, 0x4B, 0x44, 0x98, 0x60, 0x9B, +0x6C, 0xEA, 0x18, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0x25, 0xF6, 0x10, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x11, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, +0x14, 0x4A, 0x40, 0x9A, 0x64, 0x98, 0x4C, 0xEB, +0x00, 0x6A, 0x0C, 0x23, 0x30, 0xF0, 0x20, 0x6C, +0x45, 0xF6, 0x1C, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x00, 0x6A, 0x04, 0x10, 0x90, 0x67, 0x80, 0x18, +0xA3, 0x59, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0xAC, 0xEA, 0x06, 0xD2, 0x10, 0xD6, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x54, 0x9A, +0x64, 0x9C, 0x04, 0x67, 0x6C, 0xEA, 0x0A, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, +0x05, 0xF4, 0x08, 0x4C, 0x02, 0xF5, 0x0C, 0x4D, +0x80, 0x18, 0x48, 0x43, 0x20, 0xF0, 0x4F, 0xA0, +0x10, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, +0x74, 0x9A, 0x44, 0x98, 0x4C, 0xEB, 0x01, 0x6A, +0x40, 0xF2, 0x0D, 0x23, 0x30, 0xF0, 0x20, 0x6C, +0x65, 0xF6, 0x0C, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x43, 0x12, 0x10, 0x93, 0x07, 0x5B, 0x0B, 0x60, +0x01, 0x73, 0x03, 0x61, 0x06, 0x92, 0x03, 0x5A, +0x05, 0x10, 0x10, 0x93, 0x02, 0x73, 0x10, 0x61, +0x06, 0x92, 0x05, 0x5A, 0x0D, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x54, 0x9A, 0x64, 0x98, +0x6C, 0xEA, 0x20, 0xF2, 0x0F, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x85, 0xF6, 0x0C, 0x4C, 0x0E, 0x12, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0xE0, 0x9A, +0x90, 0x67, 0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, +0x9F, 0x58, 0x06, 0xF0, 0x01, 0x6B, 0x6B, 0xEB, +0x09, 0xD2, 0x6C, 0xEA, 0x07, 0xD2, 0x10, 0x92, +0x07, 0x5A, 0x60, 0xF1, 0x0E, 0x60, 0x48, 0x33, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF4, 0x0C, 0x4A, +0x69, 0xE2, 0x40, 0x9A, 0x00, 0xEA, 0x10, 0x93, +0x05, 0x73, 0x25, 0x61, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x44, 0x99, 0x01, 0xF0, 0x10, 0x6C, +0xE7, 0xF7, 0x10, 0x6D, 0xA0, 0xF2, 0x0B, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, +0x10, 0x6C, 0xDF, 0xF7, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, +0x14, 0x6C, 0x00, 0xF7, 0x00, 0x6D, 0x04, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x99, 0xA1, 0xF1, 0x14, 0x6C, 0x03, 0xF6, +0xA8, 0x9B, 0x04, 0x6E, 0x4E, 0x10, 0x10, 0x92, +0x06, 0x72, 0x25, 0x61, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x44, 0x99, 0x01, 0xF0, 0x10, 0x6C, +0xE7, 0xF7, 0x10, 0x6D, 0xA0, 0xF2, 0x0B, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, +0x10, 0x6C, 0xDF, 0xF7, 0x00, 0x6D, 0x02, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, +0x14, 0x6C, 0x00, 0xF7, 0x00, 0x6D, 0x06, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x99, 0xA1, 0xF1, 0x14, 0x6C, 0x03, 0xF6, +0xA8, 0x9B, 0x05, 0x6E, 0x26, 0x10, 0x10, 0x93, +0x25, 0x2B, 0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, +0x44, 0x99, 0x01, 0xF0, 0x10, 0x6C, 0xE7, 0xF7, +0x10, 0x6D, 0x80, 0xF1, 0x1B, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, 0x10, 0x6C, +0xDF, 0xF7, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, 0x14, 0x6C, +0x00, 0xF7, 0x00, 0x6D, 0x07, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, +0x03, 0xF6, 0xA8, 0x9B, 0xA1, 0xF1, 0x14, 0x6C, +0x06, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, 0x10, 0x6C, +0x0F, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x07, 0x93, +0x06, 0xF0, 0x00, 0x6A, 0xA1, 0xF4, 0x1C, 0x6C, +0x4D, 0xEB, 0x07, 0xD3, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF1, 0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF1, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0xA3, 0xF2, 0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, 0xB4, 0x9B, +0xC0, 0xF3, 0x44, 0x99, 0xE3, 0xF2, 0x08, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, +0xE3, 0xF2, 0x0C, 0x6C, 0x0F, 0x6D, 0x06, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x81, 0xF0, +0x0C, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x53, 0x98, 0x18, 0x6B, 0x40, 0xA2, +0x08, 0xD3, 0xC0, 0xF0, 0x01, 0x2A, 0x90, 0x67, +0x05, 0x6D, 0x80, 0x18, 0x92, 0x54, 0x90, 0x67, +0x06, 0x6D, 0x80, 0x18, 0xA1, 0x54, 0x18, 0x6A, +0xB6, 0x10, 0x06, 0x93, 0x01, 0x73, 0x09, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x03, 0xF2, 0x00, 0x6C, 0x10, 0x6D, 0x01, 0x6E, +0x08, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x03, 0xF2, 0x00, 0x6C, 0x10, 0x6D, +0x00, 0x6E, 0x30, 0xF0, 0x20, 0x69, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, 0x10, 0x6C, +0x0F, 0x6D, 0x05, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0xA1, 0xF1, 0x10, 0x6C, 0xC0, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x06, 0x92, 0x06, 0x93, +0xA1, 0xF1, 0x10, 0x6C, 0x50, 0x36, 0xC0, 0xF3, +0x44, 0x99, 0x6D, 0xEE, 0x1F, 0xF7, 0x00, 0x6D, +0x40, 0xEA, 0x07, 0x93, 0x04, 0xF0, 0x00, 0x6A, +0xA1, 0xF4, 0x1C, 0x6C, 0x4D, 0xEB, 0x07, 0xD3, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, 0xAC, 0x9B, +0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0xB4, 0x9B, +0xC0, 0xF3, 0x44, 0x99, 0xA3, 0xF2, 0x1C, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF0, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0xE3, 0xF2, 0x08, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0xE3, 0xF2, 0x0C, 0x6C, +0x0F, 0x6D, 0x08, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0x81, 0xF0, 0x0C, 0x6C, 0x1E, 0xF0, +0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x53, 0x98, +0x10, 0x6B, 0x40, 0xA2, 0x08, 0xD3, 0x50, 0x2A, +0x90, 0x67, 0x04, 0x6D, 0x80, 0x18, 0x92, 0x54, +0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0xA1, 0x54, +0x10, 0x6A, 0x45, 0x10, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x44, 0x99, 0xA1, 0xF1, 0x10, 0x6C, +0x0F, 0x6D, 0x0A, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0xA1, 0xF1, 0x10, 0x6C, 0xC0, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x06, 0x93, 0xC0, 0xF3, +0x44, 0x99, 0xA1, 0xF1, 0x10, 0x6C, 0x70, 0x36, +0x6D, 0xEE, 0x1F, 0xF7, 0x00, 0x6D, 0x40, 0xEA, +0x07, 0x93, 0x02, 0xF0, 0x00, 0x6A, 0xA1, 0xF4, +0x1C, 0x6C, 0x4D, 0xEB, 0x07, 0xD3, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF1, 0xAC, 0x9B, 0xC0, 0xF3, +0x44, 0x99, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0x81, 0xF0, 0x0C, 0x6C, 0x1E, 0xF0, +0x00, 0x6D, 0x06, 0x6E, 0x40, 0xEA, 0x08, 0x6A, +0x12, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0x98, +0x03, 0xF2, 0x54, 0x9A, 0x6C, 0xEA, 0x00, 0x6B, +0x08, 0xD3, 0x0A, 0x22, 0x10, 0x95, 0x06, 0x96, +0x30, 0xF0, 0x20, 0x6C, 0xA5, 0xF6, 0x14, 0x4C, +0x80, 0x18, 0x48, 0x43, 0x00, 0x6A, 0x08, 0xD2, +0x30, 0xF0, 0x21, 0x69, 0x32, 0xF4, 0x18, 0x49, +0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0xB7, 0x53, +0x01, 0x6B, 0x91, 0x67, 0x00, 0x6D, 0xEE, 0x6E, +0x04, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x12, 0x59, +0x12, 0x6A, 0x91, 0x67, 0x00, 0x6D, 0x33, 0x6E, +0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0x00, 0x4A, +0x08, 0x93, 0xE0, 0x9A, 0x91, 0x67, 0x00, 0x6D, +0x3F, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x12, 0x59, +0x00, 0x6B, 0xA3, 0x67, 0x91, 0x67, 0xEE, 0x6E, +0x04, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x12, 0x59, +0x01, 0x6A, 0x91, 0x67, 0xA2, 0x67, 0xEE, 0x6E, +0x04, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x12, 0x6B, 0x91, 0x67, 0x01, 0x6D, 0x33, 0x6E, +0x1F, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x12, 0x59, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0x00, 0x4B, +0xE0, 0x9B, 0x08, 0x92, 0x91, 0x67, 0x01, 0x6D, +0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x00, 0x6A, 0x91, 0x67, 0x01, 0x6D, 0xEE, 0x6E, +0x04, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0x00, 0x4A, +0x07, 0x93, 0xE0, 0x9A, 0x91, 0x67, 0x00, 0x6D, +0x18, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x12, 0x59, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0x00, 0x4A, +0x07, 0x93, 0xE0, 0x9A, 0x91, 0x67, 0x01, 0x6D, +0x18, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x12, 0x59, +0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, 0xB7, 0x53, +0x09, 0x92, 0x01, 0x4A, 0x10, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x54, 0x9A, 0x64, 0x98, +0x6C, 0xEA, 0x20, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0xC5, 0xF6, 0x1C, 0x4C, 0x10, 0x95, 0x06, 0x96, +0x80, 0x18, 0x48, 0x43, 0x17, 0x10, 0x90, 0x67, +0x80, 0x18, 0xE0, 0x56, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x54, 0x9A, 0x64, 0x98, 0x6C, 0xEA, +0x08, 0x22, 0x10, 0x95, 0x06, 0x96, 0x30, 0xF0, +0x20, 0x6C, 0x25, 0xF7, 0x0C, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x90, 0x67, 0x80, 0x18, 0xA3, 0x59, +0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x08, 0xD4, 0x09, 0xD5, 0x52, 0x9C, 0x60, 0xA2, +0x45, 0x67, 0x55, 0x2B, 0x02, 0x75, 0x29, 0x61, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0xC1, 0xF4, 0x00, 0x69, 0x91, 0x67, 0xE0, 0xF7, +0x1F, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF6, 0x04, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0x49, +0x91, 0x67, 0xE0, 0xF7, 0x1F, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF6, +0x04, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, +0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x03, 0x6A, +0x2A, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0xC1, 0xF4, 0x00, 0x69, 0x91, 0x67, +0xE0, 0xF7, 0x1F, 0x6D, 0x00, 0xF4, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF6, +0x04, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x08, 0x49, 0x91, 0x67, 0xE0, 0xF7, +0x1F, 0x6D, 0x00, 0xF4, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF6, 0x04, 0x4B, +0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, 0x91, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0x09, 0x92, 0x6F, 0x42, +0x02, 0x5B, 0x46, 0x60, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF5, 0x10, 0x69, +0x91, 0x67, 0x00, 0xF3, 0x00, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF5, +0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF1, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x41, 0xF4, 0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x41, 0xF4, 0x14, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF2, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x21, 0xF4, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, 0xB0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x09, 0x96, 0xFD, 0xF2, +0x14, 0x49, 0x91, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0xE3, 0xF2, 0xB8, 0x9B, 0x09, 0x96, 0x47, 0x10, +0x03, 0x72, 0x46, 0x61, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF5, 0x10, 0x69, +0x91, 0x67, 0x00, 0xF3, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF5, +0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF1, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x41, 0xF4, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x41, 0xF4, 0x14, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF2, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x21, 0xF4, 0x18, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, 0xB0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xFD, 0xF2, 0x14, 0x49, +0x91, 0x67, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF2, +0xB8, 0x9B, 0x91, 0x67, 0x03, 0x6E, 0x40, 0xEA, +0x08, 0x94, 0x80, 0x18, 0xA3, 0x59, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x03, 0x75, 0x24, 0x67, 0x53, 0x60, 0x01, 0x76, +0x09, 0x61, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x21, 0xF0, 0x00, 0x6C, 0xFF, 0x6D, +0x01, 0x6E, 0x08, 0x10, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, 0x00, 0x6C, +0xFF, 0x6D, 0x02, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF6, 0x0C, 0x6C, 0xFF, 0xF7, +0x1F, 0x6D, 0x00, 0x6E, 0x2E, 0x10, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, +0x00, 0x6C, 0xFF, 0x6D, 0x31, 0x6E, 0x0A, 0x10, +0x02, 0x76, 0x12, 0x61, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, 0x00, 0x6C, +0xFF, 0x6D, 0x32, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF6, 0x0C, 0x6C, 0xFF, 0xF7, +0x1F, 0x6D, 0x00, 0xF4, 0x00, 0x6E, 0x11, 0x10, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x21, 0xF0, 0x00, 0x6C, 0xFF, 0x6D, 0x33, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF6, +0x0C, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0x00, 0xF4, +0x04, 0x6E, 0x40, 0xEA, 0x91, 0x67, 0x80, 0x18, +0xA3, 0x59, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0x01, 0x76, 0xD0, 0x61, +0xC6, 0x17, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x01, 0x75, 0x08, 0xD4, +0x26, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF2, 0xB8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF2, 0x04, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, +0x0C, 0x69, 0x91, 0x67, 0x20, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, +0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0xE3, 0xF5, +0xB4, 0x9B, 0x00, 0x6E, 0x46, 0x10, 0x02, 0x75, +0x1D, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0xE3, 0xF2, 0xB8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF2, 0x04, 0x6C, 0x05, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, +0x0C, 0x69, 0x91, 0x67, 0x20, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0x03, 0xF5, 0xA4, 0x9B, +0x00, 0x6E, 0x1E, 0x10, 0x03, 0x75, 0x26, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, +0xE3, 0xF2, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF2, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x0C, 0x69, +0x91, 0x67, 0x20, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF5, 0xA4, 0x9B, 0x91, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xE3, 0xF5, 0xB4, 0x9B, 0x91, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0x08, 0x94, 0x80, 0x18, +0xA3, 0x59, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x01, 0x6A, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x04, 0x67, 0x25, 0x67, 0x80, 0x18, 0xE7, 0x5B, +0xB1, 0x67, 0x90, 0x67, 0x80, 0x18, 0x3C, 0x5B, +0x20, 0xF0, 0x2D, 0xC0, 0x90, 0x67, 0x80, 0x18, +0xA3, 0x59, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x01, 0x75, 0x04, 0x67, 0x0C, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF2, 0x04, 0x6C, +0xE3, 0xF2, 0xA8, 0x9B, 0x08, 0x6E, 0x19, 0x10, +0x02, 0x75, 0x0C, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, +0x03, 0xF2, 0x04, 0x6C, 0xE3, 0xF2, 0xA8, 0x9B, +0x04, 0x6E, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, +0xE3, 0xF2, 0xA8, 0x9B, 0x03, 0xF2, 0x04, 0x6C, +0x0C, 0x6E, 0x40, 0xEA, 0x90, 0x67, 0x80, 0x18, +0xA3, 0x59, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x7D, 0x67, 0x04, 0x67, +0x47, 0x43, 0x0A, 0xD6, 0x20, 0xF0, 0xAC, 0xC0, +0x21, 0x4A, 0x60, 0xA2, 0x46, 0x67, 0xAD, 0xEA, +0x0B, 0xD7, 0x25, 0x67, 0x20, 0xF0, 0x6B, 0xC4, +0x20, 0xF0, 0x4A, 0xC4, 0xA7, 0x67, 0x80, 0x18, +0x31, 0x5C, 0x0A, 0x96, 0x90, 0x67, 0xB1, 0x67, +0x80, 0x18, 0xB8, 0x5B, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x54, 0x9A, 0x64, 0x98, 0x6C, 0xEA, +0x09, 0x22, 0x0A, 0x96, 0x0B, 0x97, 0x30, 0xF0, +0x20, 0x6C, 0x45, 0xF7, 0x18, 0x4C, 0xB1, 0x67, +0x80, 0x18, 0x48, 0x43, 0x90, 0x67, 0x80, 0x18, +0xA3, 0x59, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x0D, 0xD5, 0x0E, 0xD6, +0x20, 0xF0, 0x44, 0xA4, 0x04, 0x67, 0x27, 0x67, +0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, +0x54, 0x9A, 0x64, 0x9C, 0x6C, 0xEA, 0x0A, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, +0x05, 0xF4, 0x08, 0x4C, 0x62, 0xF5, 0x0C, 0x4D, +0x80, 0x18, 0x48, 0x43, 0x20, 0xF0, 0x4F, 0xA0, +0x0B, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6D, 0x65, 0xF7, 0x1C, 0x4C, 0x62, 0xF5, +0x0C, 0x4D, 0x80, 0x18, 0x48, 0x43, 0x8D, 0x10, +0x0E, 0x93, 0x04, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6D, 0x85, 0xF7, 0x14, 0x4C, 0x62, 0xF5, +0x0C, 0x4D, 0xC3, 0x67, 0x16, 0x10, 0x0D, 0x92, +0xFF, 0x72, 0x02, 0x61, 0xFF, 0x71, 0x15, 0x60, +0x0D, 0x93, 0x04, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x03, 0x2A, 0xA3, 0x67, 0x06, 0xD2, 0x10, 0x10, +0x0D, 0x96, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6D, 0xA5, 0xF7, 0x0C, 0x4C, 0x62, 0xF5, +0x0C, 0x4D, 0x80, 0x18, 0x48, 0x43, 0x00, 0x6A, +0x65, 0x10, 0x01, 0x6B, 0x03, 0x6D, 0x06, 0xD3, +0x0E, 0x96, 0x90, 0x67, 0x80, 0x18, 0xE4, 0x53, +0x0E, 0x95, 0x90, 0x67, 0x80, 0x18, 0x26, 0x5C, +0x20, 0xF0, 0x4B, 0xA0, 0x03, 0x2A, 0x01, 0x6A, +0x20, 0xF0, 0x4B, 0xC0, 0x0D, 0x92, 0xFF, 0x4A, +0x02, 0x5A, 0x02, 0x60, 0x0D, 0x91, 0x0D, 0x10, +0x0D, 0x93, 0x03, 0x73, 0x06, 0x61, 0xFF, 0x71, +0x0B, 0x61, 0x20, 0xF0, 0x2B, 0xA0, 0x03, 0x6A, +0x05, 0x10, 0x06, 0x93, 0x05, 0x23, 0x20, 0xF0, +0x2B, 0xA0, 0x00, 0x6A, 0x06, 0xD2, 0x02, 0x10, +0x03, 0x6B, 0x06, 0xD3, 0x06, 0x95, 0x90, 0x67, +0xD1, 0x67, 0xF1, 0x67, 0x80, 0x18, 0x4B, 0x5C, +0x07, 0x92, 0xFF, 0x6B, 0xEB, 0x4A, 0x6C, 0xEA, +0x02, 0x5A, 0x18, 0x60, 0x20, 0xF0, 0x4A, 0xA0, +0x01, 0x72, 0x06, 0x61, 0x0E, 0x92, 0x01, 0x72, +0x03, 0x61, 0x90, 0x67, 0x01, 0x6D, 0x0C, 0x10, +0x20, 0xF0, 0x4A, 0xA0, 0x02, 0x72, 0x06, 0x61, +0x0E, 0x93, 0x02, 0x73, 0x03, 0x61, 0x90, 0x67, +0x02, 0x6D, 0x02, 0x10, 0x90, 0x67, 0x03, 0x6D, +0x80, 0x18, 0xD2, 0x58, 0x90, 0x67, 0x80, 0x18, +0xE0, 0x56, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, +0x54, 0x9A, 0x64, 0x98, 0x6C, 0xEA, 0x0A, 0x22, +0x0E, 0x95, 0x0D, 0x96, 0x06, 0x97, 0x30, 0xF0, +0x20, 0x6C, 0xC5, 0xF7, 0x04, 0x4C, 0x04, 0xD1, +0x80, 0x18, 0x48, 0x43, 0x90, 0x67, 0x80, 0x18, +0xA3, 0x59, 0x01, 0x6A, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, +0x20, 0xF0, 0x44, 0xA4, 0xFF, 0x69, 0x04, 0x67, +0x0A, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, +0x54, 0x9A, 0x64, 0x9C, 0xAC, 0xE9, 0x6C, 0xEA, +0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6D, 0x05, 0xF4, 0x08, 0x4C, 0x22, 0xF5, +0x10, 0x4D, 0x80, 0x18, 0x48, 0x43, 0x20, 0xF0, +0x4F, 0xA0, 0x0F, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x54, 0x9A, 0x64, 0x98, 0x6C, 0xEA, +0x80, 0xF1, 0x1A, 0x22, 0x30, 0xF0, 0x20, 0x6C, +0xE5, 0xF7, 0x08, 0x4C, 0x80, 0x18, 0x48, 0x43, +0x93, 0x11, 0x48, 0x41, 0xF9, 0x4A, 0xFF, 0x6B, +0x6C, 0xEA, 0x15, 0x5A, 0x0C, 0x61, 0x48, 0x41, +0xC7, 0x4A, 0x6C, 0xEA, 0x23, 0x5A, 0x07, 0x61, +0x47, 0x41, 0x68, 0x4A, 0x6C, 0xEA, 0x04, 0x5A, +0x02, 0x61, 0xB2, 0x59, 0x10, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x54, 0x9A, 0x64, 0x98, +0x6C, 0xEA, 0x60, 0xF1, 0x1B, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0xE5, 0xF7, 0x1C, 0x4C, 0xB1, 0x67, +0x80, 0x18, 0x48, 0x43, 0x73, 0x11, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF2, 0xE0, 0x9A, 0x90, 0x67, +0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, 0x9F, 0x58, +0x09, 0xD2, 0x01, 0x4A, 0x0F, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x54, 0x9A, 0x64, 0x98, +0x6C, 0xEA, 0x40, 0xF1, 0x1F, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0x06, 0xF0, 0x0C, 0x4C, 0x80, 0x18, +0x48, 0x43, 0x58, 0x11, 0x20, 0xF0, 0x6B, 0xA0, +0x0F, 0x59, 0x58, 0x67, 0x0B, 0xD2, 0x06, 0xD3, +0x15, 0x2B, 0x21, 0xF0, 0x00, 0x6C, 0x0F, 0x6D, +0x80, 0x18, 0x09, 0x28, 0xFF, 0x6B, 0x4C, 0xEB, +0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, +0x20, 0xF0, 0x6B, 0xC0, 0x26, 0xF0, 0x00, 0x4C, +0x22, 0xF5, 0x10, 0x4D, 0xC3, 0x67, 0x06, 0xD3, +0x80, 0x18, 0x48, 0x43, 0x20, 0xF0, 0x4A, 0xA0, +0x08, 0xD2, 0x1B, 0x2A, 0x21, 0xF0, 0x00, 0x6C, +0xF0, 0x6D, 0x80, 0x18, 0x09, 0x28, 0xC2, 0x67, +0x06, 0x92, 0xFF, 0x6B, 0x6C, 0xEE, 0xCD, 0xEA, +0x6C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6D, 0x20, 0xF0, 0xCC, 0xC0, 0x20, 0xF0, +0x4A, 0xC0, 0x46, 0xF0, 0x08, 0x4C, 0x22, 0xF5, +0x10, 0x4D, 0xE2, 0x67, 0x08, 0xD2, 0x80, 0x18, +0x48, 0x43, 0x20, 0xF0, 0x6D, 0xA0, 0x07, 0xD3, +0x18, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF4, +0xB0, 0x9A, 0x21, 0xF0, 0x04, 0x6C, 0x80, 0x18, +0x09, 0x28, 0xFF, 0x6B, 0x4C, 0xEB, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0x20, 0xF0, +0x6D, 0xC0, 0x86, 0xF0, 0x04, 0x4C, 0x22, 0xF5, +0x10, 0x4D, 0xC3, 0x67, 0x07, 0xD3, 0x80, 0x18, +0x48, 0x43, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF6, +0x4C, 0x9A, 0x09, 0x93, 0x4C, 0xEB, 0x0B, 0x92, +0x2D, 0xEB, 0x06, 0xD3, 0x16, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF6, 0x50, 0x9A, 0x91, 0x59, +0x4D, 0xEB, 0x06, 0xD3, 0x05, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF1, 0x54, 0x9A, 0x07, 0x10, +0x50, 0x59, 0x07, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF1, 0x50, 0x9A, 0x06, 0x93, 0x4D, 0xEB, +0x06, 0xD3, 0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, +0xB7, 0x53, 0x30, 0xF0, 0x21, 0x6A, 0x32, 0xF4, +0x18, 0x4A, 0x82, 0x67, 0x09, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF2, 0x00, 0x4A, 0x06, 0x93, +0xE0, 0x9A, 0x00, 0x6D, 0x18, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF2, 0x00, 0x4A, 0x06, 0x93, 0x09, 0x94, +0xE0, 0x9A, 0x01, 0x6D, 0x18, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x12, 0x59, 0x90, 0x67, 0x01, 0x6D, +0x80, 0x18, 0xB7, 0x53, 0x0F, 0x59, 0x11, 0x60, +0x50, 0x98, 0x40, 0xA2, 0x07, 0x2A, 0x90, 0x67, +0x05, 0x6D, 0x80, 0x18, 0x92, 0x54, 0x90, 0x67, +0x06, 0x6D, 0x1A, 0x10, 0x90, 0x67, 0x04, 0x6D, +0x80, 0x18, 0x92, 0x54, 0x90, 0x67, 0x00, 0x6D, +0x13, 0x10, 0x68, 0x41, 0xE4, 0x4B, 0xFF, 0x6A, +0x4C, 0xEB, 0x1D, 0x5B, 0x03, 0x60, 0x90, 0x67, +0x01, 0x6D, 0x0A, 0x10, 0x68, 0x41, 0xA4, 0x4B, +0x4C, 0xEB, 0x2D, 0x5B, 0x03, 0x60, 0x90, 0x67, +0x02, 0x6D, 0x02, 0x10, 0x90, 0x67, 0x03, 0x6D, +0x80, 0x18, 0xA1, 0x54, 0x90, 0x67, 0xB1, 0x67, +0x80, 0x18, 0xBC, 0x54, 0x90, 0x67, 0xB1, 0x67, +0x80, 0x18, 0x04, 0x55, 0x0B, 0x93, 0x2F, 0x23, +0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, 0x38, 0x54, +0x90, 0x67, 0x01, 0x6D, 0x00, 0x18, 0x7F, 0xC1, +0x40, 0xF4, 0x14, 0x6C, 0x80, 0x6D, 0x00, 0x6E, +0x80, 0x18, 0x96, 0x28, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF1, 0xB4, 0x9B, 0x83, 0xF2, 0x00, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF6, 0xB4, 0x9B, 0x83, 0xF4, 0x00, 0x6C, +0x0F, 0x6E, 0x40, 0xEA, 0x0A, 0x92, 0xFF, 0x6B, +0xEB, 0x4A, 0x6C, 0xEA, 0x02, 0x5A, 0x41, 0x60, +0x90, 0x67, 0x00, 0x6D, 0x3C, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF1, 0xB4, 0x9B, 0x83, 0xF2, +0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x01, 0x6E, +0x40, 0xF4, 0x14, 0x6C, 0x80, 0x6D, 0x80, 0x18, +0x96, 0x28, 0x90, 0x67, 0x02, 0x6D, 0x00, 0x18, +0x7F, 0xC1, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF6, +0xB4, 0x9B, 0x83, 0xF4, 0x00, 0x6C, 0x22, 0x6E, +0x40, 0xEA, 0x0A, 0x92, 0xFF, 0x6B, 0xEB, 0x4A, +0x6C, 0xEA, 0x02, 0x5A, 0x16, 0x60, 0x08, 0x92, +0x01, 0x72, 0x06, 0x61, 0x07, 0x93, 0x01, 0x73, +0x0C, 0x61, 0x90, 0x67, 0x01, 0x6D, 0x0B, 0x10, +0x08, 0x92, 0x02, 0x72, 0x06, 0x61, 0x07, 0x93, +0x02, 0x73, 0x03, 0x61, 0x90, 0x67, 0x02, 0x6D, +0x02, 0x10, 0x90, 0x67, 0x03, 0x6D, 0x80, 0x18, +0xD2, 0x58, 0x90, 0x67, 0x80, 0x18, 0xE0, 0x56, +0x52, 0x98, 0x40, 0xA2, 0x04, 0x22, 0x90, 0x67, +0xB1, 0x67, 0x80, 0x18, 0x6B, 0x55, 0x90, 0x67, +0x80, 0x18, 0xA3, 0x59, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x54, 0x9A, 0x64, 0x98, 0x6C, 0xEA, +0x07, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xA6, 0xF0, +0x14, 0x4C, 0xB1, 0x67, 0x80, 0x18, 0x48, 0x43, +0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x0F, 0x97, +0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0x26, 0x67, 0x4C, 0xED, 0x04, 0x67, +0x0B, 0xD7, 0x4C, 0xE9, 0x80, 0x18, 0xC4, 0x5C, +0x00, 0x6B, 0x09, 0x22, 0x0B, 0x96, 0x90, 0x67, +0xB1, 0x67, 0x80, 0x18, 0x00, 0x5A, 0x4B, 0xEB, +0x4D, 0xEB, 0xC0, 0xF7, 0x62, 0x33, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x43, 0x67, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x09, 0x6B, 0xBD, 0x67, 0xFF, 0x6A, 0x70, 0xC5, +0x07, 0x6B, 0x4C, 0xEC, 0x6F, 0xCD, 0x04, 0x6B, +0x8E, 0xEB, 0x92, 0xC5, 0x31, 0x23, 0x05, 0x74, +0x3E, 0x60, 0x4A, 0x2C, 0x30, 0xF0, 0x20, 0x6B, +0xEF, 0xF5, 0x80, 0xA3, 0x20, 0x6B, 0x8C, 0xEB, +0x4C, 0xEB, 0x1C, 0x23, 0x40, 0x6B, 0x8C, 0xEB, +0x4C, 0xEB, 0x04, 0x23, 0x01, 0x6A, 0x7D, 0x67, +0x53, 0xC3, 0x16, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF6, 0x6C, 0x9B, 0x60, 0xA3, 0x07, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF6, 0x70, 0x9B, +0x60, 0xA3, 0x6C, 0xEA, 0x04, 0x22, 0x01, 0x6A, +0x9D, 0x67, 0x53, 0xC4, 0x05, 0x10, 0xBD, 0x67, +0x53, 0xC5, 0x02, 0x10, 0x5D, 0x67, 0x73, 0xC2, +0x00, 0x6A, 0x7D, 0x67, 0x54, 0xC3, 0x55, 0xC3, +0x56, 0xC3, 0x57, 0xC3, 0x58, 0xC3, 0x44, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA4, 0xF5, 0x94, 0xAA, 0xBD, 0x67, 0x75, 0xC5, +0x82, 0x32, 0x93, 0xC5, 0x54, 0xC5, 0x76, 0xC5, +0x77, 0xC5, 0x78, 0xC5, 0x35, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0x30, 0xF0, +0x20, 0x6D, 0x00, 0xF0, 0x13, 0x04, 0x6B, 0xF1, +0x02, 0x4D, 0x05, 0x6E, 0x40, 0xEA, 0x28, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA4, 0xF5, 0x6E, 0xA2, 0x9D, 0x67, 0xBD, 0x67, +0x73, 0xC4, 0xA4, 0xF5, 0x8F, 0xA2, 0x94, 0xC5, +0xA4, 0xF5, 0x90, 0xA2, 0x95, 0xC5, 0xA4, 0xF5, +0x91, 0xA2, 0x96, 0xC5, 0xA4, 0xF5, 0x92, 0xA2, +0x97, 0xC5, 0xA4, 0xF5, 0x93, 0xA2, 0x98, 0xC5, +0x64, 0xF5, 0xD8, 0xA2, 0x01, 0x6C, 0x6C, 0xEC, +0x21, 0x6B, 0x6B, 0xEB, 0x94, 0x35, 0xCC, 0xEB, +0xAD, 0xEB, 0x41, 0x6D, 0xAB, 0xED, 0x98, 0x34, +0xAC, 0xEB, 0x8D, 0xEB, 0x64, 0xF5, 0x78, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, +0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x0A, 0x6A, 0x7D, 0x67, 0x50, 0xC3, 0x06, 0x6A, +0x4F, 0xCB, 0x40, 0xA4, 0x52, 0xC3, 0x41, 0xA4, +0x53, 0xC3, 0x42, 0xA4, 0x54, 0xC3, 0x43, 0xA4, +0x55, 0xC3, 0x44, 0xA4, 0x56, 0xC3, 0x45, 0xA4, +0x04, 0x04, 0x57, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF4, 0x5C, 0x9A, 0x40, 0xEA, 0x09, 0x97, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0x0B, 0x6B, 0x4C, 0xED, +0xCC, 0xEA, 0xDD, 0x67, 0x70, 0xC6, 0x07, 0x6B, +0x6F, 0xCE, 0x92, 0xC6, 0x17, 0x24, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xA4, 0xF5, +0x6F, 0xA2, 0x73, 0xC6, 0xA4, 0xF5, 0x6D, 0xA2, +0x74, 0xC6, 0xA4, 0xF5, 0x70, 0xA2, 0x75, 0xC6, +0xA4, 0xF5, 0x71, 0xA2, 0x76, 0xC6, 0xA4, 0xF5, +0x72, 0xA2, 0xA4, 0xF5, 0x53, 0xA2, 0x77, 0xC6, +0x58, 0xC6, 0x07, 0x10, 0x7D, 0x67, 0xB3, 0xC3, +0x54, 0xC3, 0x95, 0xC3, 0x96, 0xC3, 0x97, 0xC3, +0x98, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x15, 0x6A, 0x7D, 0x67, 0x50, 0xC3, 0x01, 0x6A, +0x4F, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x5C, 0x9A, 0x92, 0xC3, 0x04, 0x04, 0x40, 0xEA, +0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x27, 0x6A, 0x7D, 0x67, +0x50, 0xC3, 0x08, 0x6A, 0x4F, 0xCB, 0x52, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x84, 0xF5, 0x76, 0xA2, 0x9D, 0x67, 0x73, 0xC4, +0x84, 0xF5, 0x77, 0xA2, 0x74, 0xC4, 0x84, 0xF5, +0x7E, 0xA2, 0x75, 0xC4, 0x84, 0xF5, 0x7C, 0xA2, +0x76, 0xC4, 0x84, 0xF5, 0x7D, 0xA2, 0x77, 0xC4, +0xA4, 0xF5, 0x65, 0xA2, 0xA4, 0xF5, 0x47, 0xA2, +0x78, 0xC4, 0x59, 0xC4, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, +0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF6, 0x74, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF6, 0x5C, 0x9A, +0x60, 0xDA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF6, 0x60, 0x9A, 0xFC, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF6, 0x44, 0x9A, 0x0D, 0x6B, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF1, 0x08, 0x4A, +0x74, 0x9A, 0x07, 0x23, 0x30, 0xF0, 0x20, 0x6C, +0x03, 0xF6, 0x9C, 0x9C, 0x60, 0xDC, 0x00, 0x6B, +0x74, 0xDA, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, +0x08, 0x48, 0x64, 0xF5, 0x99, 0xA0, 0x01, 0x6B, +0x43, 0x67, 0x8C, 0xEA, 0x57, 0x2A, 0x30, 0xF0, +0x20, 0x6D, 0xC8, 0xF7, 0x58, 0xDD, 0x30, 0xF0, +0x20, 0x6D, 0xC8, 0xF7, 0x5C, 0xC5, 0x30, 0xF0, +0x20, 0x6A, 0x40, 0xF5, 0x54, 0x9A, 0x8D, 0xEB, +0x64, 0xF5, 0x79, 0xC0, 0x00, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF5, 0x58, 0x9A, +0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF5, 0x5C, 0x9A, 0x00, 0x6C, 0x40, 0xEA, +0xE0, 0xF0, 0x7E, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, +0xFF, 0x6B, 0x6C, 0xEA, 0x10, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF6, 0x40, 0x9A, 0x02, 0xF0, +0x00, 0x6C, 0x60, 0x9A, 0x8D, 0xEB, 0x60, 0xDA, +0x30, 0xF0, 0x20, 0x6C, 0x60, 0x9A, 0x03, 0xF2, +0x94, 0x9C, 0x8D, 0xEB, 0x60, 0xDA, 0x30, 0xF0, +0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, 0x00, 0xF1, +0x76, 0xA0, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, +0x4C, 0x9A, 0x07, 0x6C, 0x6C, 0xEC, 0x00, 0x6D, +0x40, 0xEA, 0xE0, 0xF0, 0x9E, 0xA0, 0x04, 0x6B, +0x8C, 0xEB, 0x10, 0x23, 0x84, 0xF5, 0x78, 0x98, +0x43, 0xEB, 0x0C, 0x60, 0x84, 0xF5, 0x9F, 0xA0, +0x6F, 0xE2, 0x80, 0x34, 0x88, 0x34, 0x63, 0xEC, +0x05, 0x60, 0x84, 0xF5, 0x5D, 0xA0, 0x01, 0x4A, +0x84, 0xF5, 0x5D, 0xC0, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xA4, 0xF5, 0x64, 0xA2, +0x01, 0x4B, 0xA4, 0xF5, 0x64, 0xC2, 0x20, 0xE8, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xC8, 0xF7, 0x58, 0x9A, +0x14, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC8, 0xF7, +0x7C, 0xA2, 0x0F, 0x23, 0x00, 0x6B, 0xC8, 0xF7, +0x7C, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF5, +0x54, 0x9A, 0x01, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x40, 0xF5, 0x58, 0x9A, 0x01, 0x6C, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0x93, 0x5E, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xC8, 0xF7, 0x58, 0x9A, 0x11, 0x22, 0x01, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xC8, 0xF7, 0x7C, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF5, 0x54, 0x9A, +0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF5, 0x58, 0x9A, 0x00, 0x6C, 0x40, 0xEA, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x69, 0x80, 0xF2, 0x4C, 0x99, +0x04, 0x67, 0xB0, 0x67, 0x04, 0x04, 0x05, 0x6E, +0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x99, 0x30, 0xF0, +0x20, 0x6C, 0xC8, 0xF7, 0x10, 0x4C, 0xB0, 0x67, +0x05, 0x6E, 0x40, 0xEA, 0x60, 0xA0, 0x01, 0x6A, +0x4C, 0xEB, 0x05, 0x23, 0x30, 0xF0, 0x20, 0x6B, +0xC8, 0xF7, 0x55, 0xC3, 0x06, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x60, 0xF5, 0x4C, 0x9A, 0x90, 0x67, +0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0xC0, 0xA4, 0x00, 0xF1, 0xE1, 0xA3, 0x02, 0x6A, +0x01, 0x6D, 0x4B, 0xEA, 0xAC, 0xEE, 0xEC, 0xEA, +0xCD, 0xEA, 0x00, 0xF1, 0x41, 0xC3, 0x80, 0xA4, +0x86, 0x34, 0xAC, 0xEC, 0x84, 0x35, 0x03, 0x6C, +0x8B, 0xEC, 0x4C, 0xEC, 0xAD, 0xEC, 0x00, 0xF1, +0x81, 0xC3, 0x20, 0xE8, 0x40, 0xA4, 0x0C, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF6, 0x7C, 0x9A, +0xFF, 0x6C, 0x18, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0xEF, 0xF5, 0x60, 0xA2, +0x08, 0x6A, 0x6C, 0xEA, 0x08, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF6, 0x7C, 0x9A, 0xE7, 0x6A, +0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA0, 0xA4, 0x00, 0xF1, 0xC8, 0xA2, 0x02, 0x6B, +0x01, 0x6C, 0x6B, 0xEB, 0x8C, 0xED, 0xCC, 0xEB, +0xAD, 0xEB, 0x00, 0xF1, 0x68, 0xC2, 0x8C, 0xEB, +0x01, 0x23, 0x18, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF6, 0x5C, 0x9A, 0x60, 0xC2, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xA0, 0xA4, 0x00, 0xF1, +0xCF, 0xA2, 0x02, 0x6B, 0x01, 0x6C, 0x6B, 0xEB, +0x8C, 0xED, 0xCC, 0xEB, 0xAD, 0xEB, 0x00, 0xF1, +0x6F, 0xC2, 0x8C, 0xEB, 0xFF, 0x6A, 0x44, 0x23, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF6, 0x80, 0x9B, +0xE5, 0x6D, 0xAB, 0xED, 0x60, 0xA4, 0x4C, 0xEB, +0xAC, 0xEB, 0xA4, 0x6D, 0xAD, 0xEB, 0x60, 0xDC, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF6, 0x64, 0x9B, +0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF6, 0x48, 0x9A, 0x42, 0xF2, +0x15, 0x6B, 0x01, 0x6C, 0x60, 0xCA, 0x30, 0xF0, +0x20, 0x6A, 0x40, 0xF5, 0x50, 0x9A, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF6, 0x60, 0x9A, +0x03, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF6, 0x6C, 0x9A, +0xFE, 0xF5, 0x1C, 0x4C, 0x40, 0x9B, 0x8C, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF6, +0x70, 0x9A, 0x7F, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF6, +0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF6, +0x98, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, 0x40, 0xDB, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x60, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x00, 0xF1, 0xB6, 0xA2, 0x07, 0x6C, +0x6C, 0xEC, 0x08, 0x6B, 0x6B, 0xEB, 0xAC, 0xEB, +0x8D, 0xEB, 0x00, 0xF1, 0x76, 0xC2, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x01, 0x6A, 0x7D, 0x67, +0x50, 0xC3, 0x02, 0x6A, 0x51, 0xC3, 0x03, 0x6A, +0x52, 0xC3, 0x04, 0x6C, 0x04, 0x6A, 0x04, 0x05, +0x53, 0xC3, 0x00, 0x18, 0x5C, 0xC1, 0x07, 0x97, +0x00, 0x6A, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xA4, 0xF5, +0x81, 0xA2, 0x03, 0x6B, 0x8C, 0xEB, 0x03, 0x73, +0x1D, 0x61, 0xE0, 0xF0, 0x7E, 0xA2, 0x04, 0x6A, +0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x16, 0x22, +0x30, 0xF0, 0x20, 0x68, 0xC8, 0xF7, 0x58, 0x98, +0x11, 0x22, 0x00, 0x6C, 0x00, 0x18, 0x5F, 0xDC, +0xC8, 0xF7, 0x78, 0x98, 0x43, 0xEB, 0x0A, 0x60, +0x6B, 0xE2, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF6, +0x9C, 0x9B, 0x01, 0x6B, 0x43, 0xEC, 0x58, 0x67, +0x6E, 0xEA, 0x01, 0x10, 0x00, 0x6A, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0x30, 0xF0, 0x20, 0x6B, +0x06, 0xD4, 0x6B, 0xF0, 0x08, 0x4B, 0xA4, 0xF5, +0xA1, 0xA3, 0x03, 0x6C, 0xAC, 0xEC, 0x4C, 0xEC, +0x0D, 0x2C, 0xA4, 0xF5, 0x42, 0xA3, 0x01, 0x4A, +0xA4, 0xF5, 0x42, 0xC3, 0xA4, 0xF5, 0x41, 0xA3, +0xA4, 0xF5, 0x82, 0xA3, 0x4A, 0x32, 0x42, 0xEC, +0x4B, 0x60, 0xAD, 0x10, 0xA4, 0xF5, 0x41, 0xA3, +0xA4, 0xF5, 0x82, 0xA3, 0x4A, 0x32, 0x42, 0xEC, +0x0E, 0x60, 0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, +0x31, 0x6C, 0x00, 0x6D, 0xEF, 0xF7, 0x0D, 0x4C, +0xC5, 0x67, 0x01, 0x6F, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xA4, 0xF5, +0x62, 0xA2, 0x29, 0x23, 0xA4, 0xF5, 0x61, 0xA2, +0x03, 0x6A, 0x6C, 0xEA, 0x03, 0x6B, 0x6E, 0xEA, +0x0C, 0x2A, 0x04, 0xD2, 0x10, 0xF0, 0x31, 0x6C, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, +0xCF, 0xF6, 0x09, 0x4C, 0x00, 0x6D, 0x34, 0x6E, +0x0C, 0x10, 0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, +0x31, 0x6C, 0xCF, 0xF6, 0x09, 0x4C, 0x00, 0x6D, +0x66, 0x6E, 0x01, 0x6F, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xA4, 0xF5, +0x62, 0xA2, 0xFF, 0x4B, 0x03, 0x10, 0xA4, 0xF5, +0x61, 0xA2, 0x6A, 0x33, 0xA4, 0xF5, 0x62, 0xC2, +0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, +0xE0, 0xF0, 0x7A, 0xA0, 0x01, 0x6A, 0xFF, 0x69, +0x6C, 0xEA, 0x34, 0x22, 0x00, 0x6A, 0x64, 0xF5, +0x78, 0xA0, 0x64, 0xF5, 0x5B, 0xC0, 0x80, 0x6A, +0x4B, 0xEA, 0x6D, 0xEA, 0x64, 0xF5, 0x58, 0xC0, +0x80, 0x18, 0x32, 0x5F, 0x06, 0x22, 0x06, 0x92, +0x01, 0x72, 0x49, 0x61, 0x80, 0x18, 0xA6, 0x5E, +0x46, 0x10, 0xE0, 0xF0, 0x9A, 0xA0, 0x04, 0x6B, +0x8C, 0xEB, 0x2C, 0xEB, 0x15, 0x23, 0x84, 0xF5, +0x94, 0xA0, 0x84, 0xF5, 0x75, 0xA0, 0x63, 0xEC, +0x08, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x84, 0xF5, +0x8C, 0x98, 0x03, 0xF6, 0x7C, 0x9B, 0x80, 0xDB, +0x05, 0x10, 0x00, 0x18, 0x98, 0xD7, 0x84, 0xF5, +0x54, 0xA0, 0x01, 0x4A, 0x84, 0xF5, 0x54, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF5, 0x48, 0x9A, +0x40, 0xEA, 0x25, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF6, 0x58, 0x9A, 0x60, 0xAA, 0xEF, 0xF7, +0x1F, 0x6A, 0x6C, 0xEA, 0xA4, 0xF5, 0x54, 0xC8, +0x30, 0xF0, 0x20, 0x6B, 0xA9, 0xF1, 0x56, 0xCB, +0xA4, 0xF5, 0x54, 0xA8, 0x10, 0x6B, 0x6C, 0xEA, +0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF6, +0x60, 0x9A, 0x03, 0x6C, 0x40, 0xA3, 0x2C, 0xEA, +0x8D, 0xEA, 0x2C, 0xEA, 0x07, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF6, 0x60, 0x9A, 0xFC, 0x6A, +0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x6C, 0x80, 0x18, +0x4A, 0x5F, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xC8, 0xF7, 0x75, 0xA2, 0x0C, 0x23, 0x00, 0x6B, +0xC8, 0xF7, 0x75, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xF5, 0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xC8, 0xF7, 0x10, 0x4C, 0x40, 0xEA, 0x01, 0x6C, +0x80, 0x18, 0x4A, 0x5F, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xA4, 0xF5, 0xC1, 0xA2, 0x03, 0x6B, +0xFF, 0x6D, 0xCC, 0xEB, 0xAC, 0xEB, 0xAC, 0xEC, +0x09, 0x2B, 0xA4, 0xF5, 0xA1, 0xA2, 0xA4, 0xF5, +0xC2, 0xA2, 0xAA, 0x35, 0xA2, 0xEE, 0x55, 0x61, +0xA4, 0xF5, 0x62, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xE0, 0xF0, 0xBA, 0xA2, +0x01, 0x6B, 0xAC, 0xEB, 0x4A, 0x23, 0x64, 0xF5, +0x5B, 0xA2, 0x47, 0x2A, 0x01, 0x74, 0x07, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xC8, 0xF7, 0x7D, 0xA2, +0x01, 0x4B, 0xC8, 0xF7, 0x7D, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xC8, 0xF7, 0x7D, 0xA2, 0x14, 0x5B, +0x05, 0x61, 0x00, 0x6B, 0xC8, 0xF7, 0x7D, 0xC2, +0x80, 0x18, 0x2E, 0x5E, 0x80, 0x18, 0x32, 0x5F, +0x1C, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC8, 0xF7, +0x58, 0x9A, 0x2B, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xC8, 0xF7, 0x5C, 0xA2, 0x26, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF1, 0xC3, 0xA2, 0x00, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x4C, 0x9A, 0x10, 0xF0, 0x31, 0x6C, 0x4F, 0xF2, +0x0D, 0x4C, 0x00, 0x6D, 0x01, 0x6F, 0x40, 0xEA, +0x14, 0x10, 0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, +0x08, 0x48, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF5, +0x54, 0x9A, 0xE0, 0xF0, 0x9B, 0xA0, 0x40, 0xEA, +0x64, 0xF5, 0x79, 0xA0, 0x01, 0x6A, 0x64, 0xF5, +0x5B, 0xC0, 0x01, 0x6A, 0x6D, 0xEA, 0x64, 0xF5, +0x59, 0xC0, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x6C, 0x80, 0x18, 0xC3, 0x5F, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x01, 0x6C, 0x80, 0x18, 0xC3, 0x5F, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD0, 0x00, 0x6C, 0x00, 0x18, 0x5F, 0xDC, +0x30, 0xF0, 0x20, 0x6B, 0xC8, 0xF7, 0x58, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA4, 0xF5, 0x65, 0xA2, 0xFF, 0x6D, 0x01, 0x4B, +0xA4, 0xF5, 0x65, 0xC2, 0xA4, 0xF5, 0x66, 0xA2, +0xA4, 0xF5, 0x85, 0xA2, 0x14, 0x4B, 0xAC, 0xEB, +0x8E, 0xEB, 0x02, 0x2B, 0xA4, 0xF5, 0x86, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF5, 0x5C, 0x9A, +0x01, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF5, 0x54, 0x9A, 0x01, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF5, 0x58, 0x9A, +0x01, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x00, 0x6B, 0x64, 0xF5, +0x7B, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF6, +0xA0, 0x9B, 0xE0, 0xF0, 0x7C, 0x9A, 0xAC, 0xEB, +0x6E, 0xED, 0x14, 0x2D, 0x64, 0xF5, 0x99, 0xA2, +0x10, 0x6B, 0xA4, 0xF5, 0xC0, 0xA2, 0x8D, 0xEB, +0x64, 0xF5, 0x79, 0xC2, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF5, 0x84, 0x9B, +0x00, 0xF3, 0x4C, 0x9A, 0x04, 0xD5, 0xC6, 0x36, +0x01, 0x6F, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x68, +0x6B, 0xF0, 0x08, 0x48, 0x00, 0xF1, 0x76, 0xA0, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x4C, 0x9A, +0x07, 0x6C, 0x6C, 0xEC, 0x00, 0x6D, 0x40, 0xEA, +0x84, 0xF5, 0x58, 0xD8, 0x07, 0x97, 0x06, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0x24, 0x67, 0x30, 0xF0, +0x20, 0x6C, 0x6B, 0xF1, 0x02, 0x4C, 0xB1, 0x67, +0x05, 0x6E, 0x40, 0xEA, 0x60, 0xA1, 0x01, 0x6A, +0x6C, 0xEA, 0x5D, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF0, 0x50, 0x9A, 0x30, 0xF0, 0x20, 0x68, +0x6B, 0xF0, 0x08, 0x48, 0x40, 0xA2, 0x64, 0xF5, +0x79, 0xA0, 0x04, 0x6C, 0x84, 0xF5, 0x44, 0xC0, +0x41, 0xA1, 0x00, 0x69, 0x64, 0xF5, 0x3A, 0xC0, +0xE0, 0xF0, 0x5B, 0xC0, 0x07, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x64, 0xF5, 0x59, 0xC0, 0x30, 0xF0, +0x20, 0x6A, 0x40, 0xF5, 0x5C, 0x9A, 0x40, 0xEA, +0xE0, 0xF0, 0x7A, 0xA0, 0x04, 0x6A, 0x6C, 0xEA, +0xFF, 0x6B, 0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF6, 0x5C, 0x9A, 0x84, 0xF5, +0x34, 0xC0, 0x40, 0x9A, 0x84, 0xF5, 0x50, 0xD8, +0x02, 0x10, 0x00, 0x18, 0x98, 0xD7, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xE0, 0xF0, +0x9C, 0xA2, 0x04, 0x6B, 0x8C, 0xEB, 0x11, 0x23, +0xA4, 0xF5, 0x80, 0xA2, 0x01, 0x6B, 0xFF, 0x6D, +0x8C, 0xEB, 0x6C, 0xED, 0x05, 0x2D, 0x64, 0x6C, +0x6D, 0xEC, 0xA4, 0xF5, 0x80, 0xC2, 0x05, 0x10, +0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xA4, 0xF5, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, +0x40, 0x9A, 0x03, 0x6B, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF1, 0x5C, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x06, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xEF, 0xF5, 0x63, 0xC2, 0x20, 0x10, 0x00, 0x18, +0x98, 0xD7, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF5, +0x58, 0x9A, 0x03, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x40, 0xF5, 0x5C, 0x9A, 0x03, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x64, 0xF5, 0x99, 0xA2, 0x07, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0xE0, 0xF0, 0x9E, 0xA2, +0x64, 0xF5, 0x79, 0xC2, 0x41, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xE0, 0xF0, 0x7E, 0xC2, 0x30, 0xF0, +0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, 0x64, 0xF5, +0x78, 0xA0, 0x02, 0x6A, 0x4B, 0xEA, 0x4C, 0xEB, +0x64, 0xF5, 0x78, 0xC0, 0x64, 0xF5, 0x79, 0xA0, +0x05, 0x6C, 0xFF, 0x69, 0x6C, 0xEA, 0x64, 0xF5, +0x59, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF5, +0x54, 0x9A, 0x40, 0xEA, 0xE0, 0xF0, 0x7C, 0xA0, +0x08, 0x6A, 0x6C, 0xEA, 0x0F, 0x22, 0x00, 0xF1, +0x96, 0xA0, 0x07, 0x6A, 0x01, 0x6D, 0x4C, 0xEC, +0x2C, 0xEC, 0x00, 0x18, 0x8E, 0xCD, 0x00, 0xF1, +0x96, 0xA0, 0x07, 0x6A, 0x01, 0x6D, 0x4C, 0xEC, +0x2C, 0xEC, 0x14, 0x10, 0xA0, 0xF0, 0x7B, 0xA0, +0x7F, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x10, 0x2A, +0x00, 0xF1, 0x96, 0xA0, 0x07, 0x6A, 0x00, 0x6D, +0x4C, 0xEC, 0x2C, 0xEC, 0x00, 0x18, 0x8E, 0xCD, +0x00, 0xF1, 0x96, 0xA0, 0x07, 0x6A, 0x00, 0x6D, +0x4C, 0xEC, 0x2C, 0xEC, 0x00, 0x18, 0xBB, 0xCD, +0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, +0x00, 0xF1, 0x76, 0xA0, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF4, 0x5C, 0x9A, 0x07, 0x6C, 0x6C, 0xEC, +0x00, 0x6D, 0x40, 0xEA, 0xA4, 0xF5, 0x41, 0xA0, +0x07, 0x97, 0x06, 0x91, 0x4A, 0x32, 0xA4, 0xF5, +0x42, 0xC0, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xA4, 0xF5, 0x63, 0xA2, +0x02, 0x4B, 0xA4, 0xF5, 0x63, 0xC2, 0xA4, 0xF5, +0x64, 0xA2, 0x1C, 0x23, 0xA4, 0xF5, 0x63, 0xA2, +0x66, 0x33, 0x05, 0x53, 0x17, 0x60, 0x00, 0x6B, +0xA4, 0xF5, 0x64, 0xC2, 0xA4, 0xF5, 0x67, 0xA2, +0x10, 0xF0, 0x32, 0x6C, 0xB0, 0xF2, 0x11, 0x4C, +0x01, 0x4B, 0xA4, 0xF5, 0x67, 0xC2, 0x00, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x4C, 0x9A, 0x00, 0x6D, 0x05, 0x6E, 0x01, 0x6F, +0x40, 0xEA, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF1, 0xB8, 0x9A, 0x01, 0x6C, 0x80, 0x18, +0x76, 0x76, 0x80, 0x18, 0x03, 0x60, 0x07, 0x97, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF5, 0x54, 0x9A, +0x03, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF5, 0x5C, 0x9A, 0x02, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xE0, 0xF0, 0x9E, 0xA2, 0x40, 0x6B, 0x8C, 0xEB, +0x16, 0x23, 0x64, 0xF5, 0x99, 0xA2, 0x07, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0x02, 0x6C, 0x8D, 0xEB, +0x64, 0xF5, 0x79, 0xC2, 0x00, 0x6B, 0x64, 0xF5, +0x7A, 0xC2, 0x83, 0xF3, 0x7C, 0xA2, 0x0A, 0x23, +0x64, 0xF5, 0x98, 0xA2, 0x04, 0x6B, 0x8D, 0xEB, +0x64, 0xF5, 0x78, 0xC2, 0x03, 0x10, 0x05, 0x6B, +0x64, 0xF5, 0x7B, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x64, 0xF5, 0x99, 0xA2, +0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x64, 0xF5, +0x79, 0xC2, 0xA4, 0xF5, 0x43, 0xA2, 0x7D, 0x67, +0x42, 0x6C, 0x46, 0x32, 0x50, 0xC3, 0x01, 0x6D, +0x04, 0x06, 0x80, 0x18, 0x1E, 0x69, 0x07, 0x97, +0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xE0, 0xF0, 0x3A, 0xA2, +0x01, 0x6B, 0x2C, 0xEB, 0x5B, 0x23, 0xE0, 0xF0, +0x7E, 0xA2, 0x40, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, +0x6C, 0xEA, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xF5, 0x50, 0x9A, 0x40, 0xEA, 0x4E, 0x22, +0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, +0x64, 0xF5, 0x5B, 0xA0, 0x01, 0x72, 0x04, 0x60, +0x2F, 0x22, 0x05, 0x72, 0x04, 0x60, 0x42, 0x10, +0x80, 0x18, 0xC7, 0x60, 0x3F, 0x10, 0x30, 0x6A, +0x2C, 0xEA, 0x20, 0x72, 0x07, 0x60, 0xA4, 0xF5, +0x23, 0xA0, 0x01, 0x6A, 0x4C, 0xE9, 0xFF, 0x6A, +0x4C, 0xE9, 0x03, 0x21, 0x80, 0x18, 0x03, 0x60, +0x31, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, +0xB8, 0x9A, 0x01, 0x6C, 0x80, 0x18, 0x45, 0x76, +0xA4, 0xF5, 0x43, 0xA0, 0x01, 0x6B, 0x10, 0xF0, +0x32, 0x6C, 0x6C, 0xEA, 0xA4, 0xF5, 0x43, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, +0x04, 0xD1, 0xB0, 0xF2, 0x11, 0x4C, 0x00, 0x6D, +0x05, 0x6E, 0xE3, 0x67, 0x40, 0xEA, 0x16, 0x10, +0xA4, 0xF5, 0x63, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, +0x0C, 0x2A, 0x64, 0xF5, 0x78, 0xA0, 0x80, 0x4A, +0x10, 0xF0, 0x32, 0x6C, 0x6D, 0xEA, 0xB0, 0xF2, +0x11, 0x4C, 0x64, 0xF5, 0x58, 0xC0, 0x00, 0x18, +0xB3, 0xE5, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF5, +0x48, 0x9A, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x02, 0x6D, 0xC4, 0x67, +0x24, 0x6C, 0x80, 0x18, 0x1E, 0x69, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x02, 0x6D, 0xC4, 0x67, 0x38, 0x6C, 0x80, 0x18, +0x1E, 0x69, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x61, 0xA4, 0xBD, 0x67, +0x40, 0xA4, 0x70, 0xC5, 0x62, 0xA4, 0x0E, 0x5A, +0x71, 0xC5, 0x63, 0xA4, 0x72, 0xC5, 0x64, 0xA4, +0x73, 0xC5, 0x65, 0xA4, 0x74, 0xC5, 0x66, 0xA4, +0xFF, 0x6C, 0x75, 0xC5, 0xA0, 0xF0, 0x04, 0x60, +0x30, 0xF0, 0x20, 0x6B, 0x48, 0x32, 0x62, 0xF6, +0x18, 0x4B, 0x4D, 0xE3, 0x40, 0x9B, 0x00, 0xEA, +0x2A, 0x6C, 0x08, 0x10, 0x29, 0x6C, 0x02, 0x6D, +0x98, 0x10, 0x31, 0x6C, 0x95, 0x10, 0x32, 0x6C, +0x93, 0x10, 0x33, 0x6C, 0x06, 0x6D, 0x91, 0x10, +0x04, 0x04, 0x80, 0x18, 0xFD, 0x5D, 0x90, 0x10, +0x9D, 0x67, 0x70, 0xA4, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x84, 0xF5, 0x66, 0xC2, +0x71, 0xA4, 0x84, 0xF5, 0x67, 0xC2, 0x72, 0xA4, +0x84, 0xF5, 0x68, 0xC2, 0x73, 0xA4, 0x84, 0xF5, +0x69, 0xC2, 0x74, 0xA4, 0x84, 0xF5, 0x6A, 0xC2, +0x7B, 0x10, 0xBD, 0x67, 0x50, 0xA5, 0x30, 0xF0, +0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, 0x93, 0xA5, +0x84, 0xF5, 0x55, 0xC3, 0x54, 0xA5, 0x80, 0x34, +0x80, 0x34, 0x00, 0xF6, 0x40, 0x32, 0x8D, 0xEA, +0x91, 0xA5, 0x8D, 0xEA, 0x92, 0xA5, 0x80, 0x34, +0x8D, 0xEA, 0x84, 0xF5, 0x4C, 0xDB, 0x64, 0x10, +0x80, 0x18, 0x2E, 0x5E, 0x61, 0x10, 0xBD, 0x67, +0x90, 0xA5, 0x30, 0xF0, 0x20, 0x6A, 0x01, 0x6B, +0x84, 0x34, 0x6B, 0xF0, 0x08, 0x4A, 0x6D, 0xEC, +0xA4, 0xF5, 0x80, 0xC2, 0xA4, 0xF5, 0x80, 0xA2, +0x86, 0x35, 0x1E, 0x55, 0x05, 0x60, 0x8C, 0xEB, +0x3C, 0x6C, 0x8D, 0xEB, 0xA4, 0xF5, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA4, 0xF5, 0x60, 0xA2, 0x66, 0x34, 0x51, 0x54, +0x43, 0x61, 0x01, 0x6C, 0x6C, 0xEC, 0x60, 0x6B, +0x6B, 0xEB, 0x6D, 0xEC, 0xA4, 0xF5, 0x80, 0xC2, +0x3B, 0x10, 0x5D, 0x67, 0x70, 0xA2, 0x30, 0xF0, +0x20, 0x6A, 0x0F, 0xF6, 0x67, 0xC2, 0x34, 0x10, +0x7D, 0x67, 0x50, 0xA3, 0x3F, 0x6B, 0x4C, 0xEB, +0x68, 0x33, 0x5A, 0x32, 0x6D, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x0F, 0xF6, 0x49, 0xC3, 0x28, 0x10, +0xBD, 0x67, 0x50, 0xA5, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0xA4, 0xF5, 0xA3, 0xA3, +0x01, 0x6C, 0x4C, 0xEC, 0x02, 0x6A, 0x4B, 0xEA, +0xAC, 0xEA, 0x8D, 0xEA, 0xA4, 0xF5, 0x43, 0xC3, +0x17, 0x10, 0x7D, 0x67, 0x54, 0xA3, 0x73, 0xA3, +0x9D, 0x67, 0x00, 0xF6, 0x40, 0x32, 0x60, 0x33, +0x60, 0x33, 0x6D, 0xEA, 0x71, 0xA4, 0x6D, 0xEA, +0x72, 0xA4, 0x60, 0x33, 0x6D, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x0F, 0xF6, 0x50, 0xDB, 0x04, 0x10, +0x01, 0x6D, 0x04, 0x06, 0x80, 0x18, 0x1E, 0x69, +0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x01, 0x6D, 0xC4, 0x67, +0x28, 0x6C, 0x80, 0x18, 0x1E, 0x69, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x40, 0xA4, 0x7D, 0x67, 0x07, 0x6D, 0x50, 0xC3, +0x41, 0xA4, 0x04, 0x06, 0x51, 0xC3, 0x42, 0xA4, +0x52, 0xC3, 0x43, 0xA4, 0x53, 0xC3, 0x44, 0xA4, +0x30, 0x6C, 0x54, 0xC3, 0x00, 0x6A, 0x55, 0xC3, +0x56, 0xC3, 0x80, 0x18, 0x1E, 0x69, 0x07, 0x97, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x03, 0x6D, 0xC4, 0x67, 0x11, 0x6C, 0x80, 0x18, +0x1E, 0x69, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x01, 0x6D, 0xC4, 0x67, +0x1B, 0x6C, 0x80, 0x18, 0x1E, 0x69, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x01, 0x6D, 0xC4, 0x67, 0x17, 0x6C, 0x80, 0x18, +0x1E, 0x69, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x40, 0xA4, 0xC4, 0x67, +0x01, 0x72, 0x03, 0x61, 0x23, 0x6C, 0x03, 0x6D, +0x02, 0x10, 0x23, 0x6C, 0x01, 0x6D, 0x80, 0x18, +0x1E, 0x69, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x80, 0xA4, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x01, 0x6B, +0x8C, 0xEB, 0x64, 0xF5, 0xB9, 0xA2, 0x6C, 0x34, +0x09, 0x6B, 0x6B, 0xEB, 0xAC, 0xEB, 0x8D, 0xEB, +0x08, 0x6C, 0x64, 0xF5, 0x79, 0xC2, 0x8C, 0xEB, +0x23, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0xA9, 0xF1, +0x08, 0x4B, 0xB6, 0xA3, 0x01, 0x4D, 0xB6, 0xC3, +0x64, 0xF5, 0x58, 0xA2, 0x8C, 0xEA, 0xFF, 0x6C, +0x8C, 0xEA, 0x0C, 0x22, 0x58, 0xA3, 0x02, 0x6C, +0x00, 0x6E, 0x01, 0x4A, 0x58, 0xC3, 0x4D, 0x9B, +0x01, 0x6D, 0xE6, 0x67, 0x8D, 0xEA, 0x4D, 0xDB, +0x00, 0x18, 0x8F, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF0, 0x6C, 0x9A, 0xFF, 0x6C, 0x01, 0x6D, +0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x0D, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF1, 0x08, 0x4A, +0x77, 0xA2, 0x01, 0x4B, 0x77, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF0, 0x6C, 0x9A, 0xFE, 0x6A, +0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF1, +0x08, 0x4A, 0x61, 0xA2, 0x30, 0xF0, 0x20, 0x68, +0x6B, 0xF0, 0x08, 0x48, 0x01, 0x4B, 0x61, 0xC2, +0xA4, 0xF5, 0x6C, 0xA0, 0x27, 0x73, 0x31, 0x60, +0x28, 0x5B, 0x07, 0x60, 0x23, 0x73, 0x1A, 0x60, +0x24, 0x73, 0x21, 0x60, 0x15, 0x73, 0x0E, 0x60, +0xD1, 0x10, 0x34, 0x73, 0x3B, 0x60, 0x35, 0x5B, +0x03, 0x60, 0x30, 0x73, 0x2B, 0x60, 0xCA, 0x10, +0x39, 0x73, 0x57, 0x60, 0x41, 0x73, 0xA0, 0xF0, +0x1C, 0x60, 0xC4, 0x10, 0x62, 0xA2, 0xA4, 0xF5, +0x8E, 0xA0, 0x01, 0x4B, 0x62, 0xC2, 0x80, 0x18, +0x67, 0x69, 0xC8, 0x10, 0x63, 0xA2, 0x01, 0x6C, +0x01, 0x4B, 0x63, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF5, 0x50, 0x9A, 0x08, 0x10, 0x63, 0xA2, +0x06, 0x6C, 0x01, 0x4B, 0x63, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF5, 0x50, 0x9A, 0x40, 0xEA, +0xB5, 0x10, 0x64, 0xA2, 0x02, 0x6C, 0x01, 0x4B, +0x64, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF5, +0x50, 0x9A, 0xF5, 0x17, 0x65, 0xA2, 0x00, 0x6D, +0x01, 0x6C, 0x01, 0x4B, 0x65, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF5, 0x54, 0x9A, 0xC5, 0x67, +0x40, 0xEA, 0xA0, 0x10, 0xA4, 0xF5, 0x6E, 0xA0, +0x01, 0x6C, 0x8C, 0xEB, 0x16, 0x23, 0x71, 0xA2, +0x01, 0x4B, 0x71, 0xC2, 0x64, 0xF5, 0xB9, 0xA0, +0x08, 0x6B, 0xAC, 0xEB, 0xA4, 0x67, 0x12, 0x23, +0x74, 0xA2, 0x00, 0x6E, 0x02, 0x6D, 0x01, 0x4B, +0x74, 0xC2, 0x6C, 0x9A, 0xE6, 0x67, 0x8D, 0xEB, +0x6C, 0xDA, 0x03, 0x6C, 0x00, 0x18, 0x8F, 0xD8, +0x73, 0x10, 0x72, 0xA2, 0x00, 0x6C, 0x04, 0x6D, +0x01, 0x4B, 0x72, 0xC2, 0x00, 0x18, 0x08, 0xD8, +0x6B, 0x10, 0x66, 0xA2, 0x01, 0x4B, 0x66, 0xC2, +0x80, 0x18, 0x32, 0x5F, 0x1E, 0x22, 0xE0, 0xF0, +0x9A, 0xA0, 0x01, 0x6A, 0xFF, 0x6B, 0x8C, 0xEA, +0x18, 0x22, 0x84, 0xF5, 0x5C, 0xA0, 0x64, 0xF5, +0x98, 0xA0, 0x01, 0x4A, 0x84, 0xF5, 0x5C, 0xC0, +0x7F, 0x6A, 0x8C, 0xEA, 0xE0, 0xF0, 0x9C, 0xA0, +0x64, 0xF5, 0x58, 0xC0, 0x04, 0x6A, 0x8C, 0xEA, +0x6C, 0xEA, 0x45, 0x22, 0x64, 0xF5, 0x99, 0xA0, +0x10, 0x6A, 0x8C, 0xEA, 0x6C, 0xEA, 0x5A, 0x2A, +0x3E, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xE0, 0xF0, 0xBA, 0xA2, 0x01, 0x6B, +0xFF, 0x6C, 0xAC, 0xEB, 0x4F, 0x23, 0xE0, 0xF0, +0xBE, 0xA2, 0x04, 0x6E, 0xCC, 0xED, 0x8C, 0xED, +0x49, 0x25, 0x64, 0xF5, 0xB8, 0xA2, 0x80, 0x6B, +0x6B, 0xEB, 0xAC, 0xEB, 0x8C, 0xEB, 0x42, 0x23, +0x84, 0xF5, 0x7C, 0xA2, 0x01, 0x4B, 0x84, 0xF5, +0x7C, 0xC2, 0xE0, 0xF0, 0x7C, 0xA2, 0xCC, 0xEB, +0x8C, 0xEB, 0x0B, 0x23, 0x64, 0xF5, 0xD9, 0xA2, +0x10, 0x6B, 0xCC, 0xEB, 0x8C, 0xEB, 0x05, 0x23, +0x7F, 0x6B, 0xAC, 0xEB, 0x64, 0xF5, 0x78, 0xC2, +0x2D, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x64, 0xF5, 0x7B, 0xA2, 0x26, 0x2B, +0x64, 0xF5, 0x98, 0xA2, 0x7F, 0x6B, 0x8C, 0xEB, +0x64, 0xF5, 0x78, 0xC2, 0xE0, 0xF0, 0x7E, 0xA2, +0x04, 0x6A, 0x6C, 0xEA, 0x1B, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x60, 0xF5, 0x48, 0x9A, 0x40, 0xEA, +0x15, 0x10, 0x75, 0xA2, 0x01, 0x4B, 0x75, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF5, 0x50, 0x9A, +0x03, 0x6C, 0x55, 0x17, 0x30, 0xF0, 0x20, 0x6A, +0x0F, 0xF6, 0x54, 0xA2, 0x7D, 0x67, 0x06, 0x6C, +0x50, 0xC3, 0x03, 0x6D, 0x04, 0x06, 0x01, 0x6F, +0x00, 0x18, 0x8F, 0xD8, 0x07, 0x97, 0x06, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6C, 0xA9, 0xF1, +0x08, 0x4C, 0x00, 0x6D, 0x54, 0x6E, 0x00, 0x18, +0x37, 0xD6, 0x00, 0x18, 0xA8, 0xD9, 0x30, 0xF0, +0x20, 0x6C, 0x6B, 0xF1, 0x02, 0x4C, 0x00, 0x6D, +0x07, 0x6E, 0x30, 0xF0, 0x20, 0x68, 0x00, 0x18, +0x37, 0xD6, 0x6B, 0xF0, 0x08, 0x48, 0x0B, 0x6A, +0xE0, 0xF0, 0x5B, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF6, 0x50, 0x9A, 0xE0, 0xF0, 0x9D, 0xA0, +0x00, 0x6D, 0x60, 0xA2, 0xFF, 0x6A, 0x34, 0x6E, +0x6C, 0xEA, 0x4A, 0x32, 0x01, 0x6B, 0x6C, 0xEA, +0x58, 0x33, 0x41, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x6D, 0xEA, 0xEF, 0xF5, +0x00, 0x4C, 0xE0, 0xF0, 0x5D, 0xC0, 0x00, 0x18, +0x37, 0xD6, 0x64, 0xF5, 0x78, 0xA0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6C, 0x6D, 0xEA, 0x00, 0x6D, +0x07, 0x6E, 0x6B, 0xF1, 0x17, 0x4C, 0x64, 0xF5, +0x58, 0xC0, 0x00, 0x18, 0x37, 0xD6, 0x00, 0xF1, +0x76, 0xA0, 0x08, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x00, 0xF1, 0x56, 0xC0, 0x1E, 0x6A, 0x84, 0xF5, +0x5F, 0xC0, 0x04, 0x6A, 0xA4, 0xF5, 0x41, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF5, 0x50, 0x9A, +0x01, 0x6C, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xA2, 0xA4, 0x41, 0xA4, 0x80, 0xA4, 0xA0, 0x35, +0x55, 0xE5, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xED, +0x80, 0x18, 0x32, 0x74, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x2B, 0xF1, +0x11, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0x00, 0x18, +0xC2, 0xCE, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, 0x14, 0x9A, +0x0A, 0xD4, 0xFF, 0x69, 0x40, 0xA0, 0x0A, 0x95, +0x30, 0xF0, 0x20, 0x6C, 0x62, 0x67, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0x2C, 0xEB, +0x05, 0xD3, 0x2B, 0xF1, 0x02, 0x4C, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, +0x78, 0x9A, 0xF8, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, +0x5C, 0x9A, 0x02, 0x6B, 0x00, 0x6C, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF6, 0x60, 0x9B, +0x80, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF6, +0x64, 0x9B, 0x10, 0x6C, 0x80, 0xC3, 0x40, 0xA2, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF6, 0x68, 0x9B, +0x2C, 0xEA, 0x50, 0x32, 0x01, 0x4A, 0x2C, 0xEA, +0x40, 0xC3, 0x0A, 0x94, 0x02, 0x6B, 0x40, 0xA4, +0x6C, 0xEA, 0x2C, 0xEA, 0xA0, 0xF0, 0x0B, 0x22, +0x30, 0xF0, 0x20, 0x6C, 0x6B, 0xF0, 0x08, 0x4C, +0x04, 0xD4, 0xA0, 0xF0, 0x7A, 0xA4, 0x01, 0x6A, +0x6C, 0xEA, 0x2C, 0xEA, 0x80, 0xF0, 0x14, 0x22, +0x01, 0x6C, 0xC0, 0x6D, 0x80, 0x18, 0xA9, 0x76, +0x04, 0x94, 0x05, 0x92, 0x20, 0x68, 0xA0, 0xF0, +0x7A, 0xA4, 0x4D, 0xE8, 0x04, 0x6A, 0x6C, 0xEA, +0x2C, 0xEA, 0x2C, 0xE8, 0x17, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF6, 0x4C, 0x9A, 0x01, 0x6C, +0x10, 0xF0, 0x00, 0x6D, 0x60, 0xA2, 0x2C, 0xEB, +0x60, 0xC2, 0x80, 0x18, 0xA9, 0x76, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF6, 0x70, 0x9A, 0x02, 0x6C, +0x40, 0xA3, 0x2C, 0xEA, 0x8D, 0xEA, 0x2C, 0xEA, +0x40, 0xC3, 0x11, 0x10, 0x04, 0x92, 0x01, 0x6C, +0x10, 0xF0, 0x00, 0x6D, 0xA3, 0xF3, 0x78, 0xA2, +0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x03, 0x6B, +0x6B, 0xEB, 0x6C, 0xEA, 0x04, 0x93, 0xA3, 0xF3, +0x58, 0xC3, 0x80, 0x18, 0xC6, 0x76, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x82, 0xA2, 0x08, 0x6A, +0xFF, 0x6B, 0x8C, 0xEA, 0x0D, 0x22, 0x02, 0x6A, +0x4D, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, +0x90, 0x9A, 0x01, 0x6D, 0x6C, 0xE8, 0x40, 0xA4, +0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x82, 0xA2, +0x10, 0x6A, 0xFF, 0x6B, 0x8C, 0xEA, 0x0D, 0x22, +0x04, 0x6A, 0x4D, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF6, 0x90, 0x9A, 0x01, 0x6D, 0x6C, 0xE8, +0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x62, 0xA2, 0x20, 0x6A, 0x6C, 0xEA, 0x05, 0x22, +0x80, 0x6A, 0x4B, 0xEA, 0x4D, 0xE8, 0xFF, 0x6A, +0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x62, 0xA2, 0x40, 0x6A, 0x4C, 0xEB, 0x03, 0x2B, +0x4D, 0xE8, 0xFF, 0x6A, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF6, 0x54, 0x9A, 0x00, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF4, 0x41, 0xA2, +0x03, 0x2A, 0x01, 0x6C, 0x80, 0x18, 0xEA, 0x71, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x62, 0xA2, +0x40, 0x6A, 0x04, 0x6C, 0x6C, 0xEA, 0x05, 0x2A, +0x80, 0x18, 0x74, 0x6F, 0x01, 0x6C, 0x01, 0x2A, +0x02, 0x6C, 0x80, 0x18, 0xEA, 0x71, 0x98, 0x10, +0x40, 0xC0, 0x04, 0x94, 0xA3, 0xF3, 0x59, 0xA4, +0x04, 0x72, 0xA0, 0xF0, 0x13, 0x61, 0x00, 0x6C, +0x80, 0x18, 0xEA, 0x71, 0xAF, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x04, 0xD2, +0xA0, 0xF0, 0x5A, 0xA2, 0x01, 0x6B, 0x6C, 0xEA, +0x2C, 0xEA, 0x80, 0xF0, 0x08, 0x22, 0x83, 0x67, +0xC0, 0x6D, 0x80, 0x18, 0xA9, 0x76, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF6, 0x10, 0x4B, 0x60, 0x9B, +0x05, 0x94, 0x20, 0x68, 0x40, 0xA3, 0x8D, 0xE8, +0x01, 0x6C, 0x2C, 0xEA, 0x8D, 0xEA, 0x2C, 0xEA, +0x40, 0xC3, 0x04, 0x94, 0x04, 0x6A, 0x2C, 0xE8, +0xA0, 0xF0, 0x7A, 0xA4, 0x6C, 0xEA, 0x2C, 0xEA, +0x18, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, +0x4C, 0x9A, 0x01, 0x6C, 0x10, 0xF0, 0x00, 0x6D, +0x60, 0xA2, 0x2C, 0xEB, 0x60, 0xC2, 0x80, 0x18, +0xA9, 0x76, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF6, +0x10, 0x4B, 0x60, 0x9B, 0x02, 0x6C, 0x40, 0xA3, +0x2C, 0xEA, 0x8D, 0xEA, 0x2C, 0xEA, 0x40, 0xC3, +0x05, 0x10, 0x01, 0x6C, 0x10, 0xF0, 0x00, 0x6D, +0x80, 0x18, 0xC6, 0x76, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x62, 0xA2, 0x08, 0x6A, 0x6C, 0xEA, +0x04, 0x22, 0x02, 0x6A, 0x4D, 0xE8, 0xFF, 0x6A, +0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, +0x62, 0xA2, 0x10, 0x6A, 0x6C, 0xEA, 0x04, 0x22, +0x04, 0x6A, 0x4D, 0xE8, 0xFF, 0x6A, 0x4C, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, 0x74, 0x9A, +0x40, 0x6D, 0xFF, 0x6C, 0x00, 0xC3, 0x30, 0xF0, +0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, 0xA0, 0xF0, +0x5A, 0xA0, 0xAC, 0xEA, 0x07, 0x22, 0xA3, 0xF3, +0x5A, 0xA0, 0x02, 0x72, 0x21, 0x60, 0x02, 0x6C, +0x00, 0x6D, 0x16, 0x10, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0xA3, 0xF3, +0x5A, 0xA0, 0x02, 0x72, 0x11, 0x61, 0x00, 0x18, +0xA3, 0xCB, 0x80, 0x18, 0x74, 0x6F, 0x01, 0x72, +0x05, 0x61, 0x63, 0xF6, 0x98, 0xA0, 0x01, 0x6D, +0x00, 0x6E, 0x03, 0x10, 0x00, 0x6C, 0xA4, 0x67, +0xC5, 0x67, 0x00, 0x18, 0x04, 0xCE, 0x04, 0x10, +0xE3, 0xF5, 0x5F, 0xA0, 0xA3, 0xF3, 0x5A, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, 0x54, 0x9A, +0x22, 0x6B, 0x60, 0xC2, 0x1B, 0x10, 0x40, 0xC0, +0x04, 0x94, 0xA3, 0xF3, 0x5A, 0xA4, 0x04, 0x6C, +0x02, 0x72, 0x03, 0x60, 0x08, 0x72, 0x05, 0x61, +0x0C, 0x6C, 0x01, 0x6D, 0x00, 0x6E, 0x00, 0x18, +0x04, 0xCE, 0x00, 0x6C, 0x80, 0x18, 0xDE, 0x40, +0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF6, 0x80, 0xA2, +0x01, 0x6D, 0x00, 0x6E, 0x00, 0x18, 0x04, 0xCE, +0x80, 0x18, 0x34, 0x40, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x40, 0xA4, 0x01, 0x72, +0x04, 0x61, 0x00, 0x18, 0x0C, 0xDC, 0x00, 0x18, +0x02, 0xDC, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x22, 0x6A, 0x7D, 0x67, +0x50, 0xC3, 0x01, 0x6A, 0x4F, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x92, 0xC3, +0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x04, 0x67, +0x4C, 0xE8, 0x6C, 0x40, 0x4C, 0xEB, 0x03, 0x5B, +0x01, 0x6C, 0x03, 0x61, 0x0E, 0xEC, 0x01, 0x5C, +0x98, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF4, +0x7C, 0xA2, 0x60, 0x6A, 0x6C, 0xEA, 0x40, 0x72, +0x09, 0x60, 0x20, 0x72, 0x01, 0x61, 0x06, 0x2C, +0x03, 0x70, 0x04, 0x60, 0x02, 0x70, 0x02, 0x60, +0x09, 0x70, 0x49, 0x61, 0x09, 0x70, 0x06, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF4, 0x3E, 0xA2, +0x32, 0x31, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x4E, 0xF4, 0x48, 0xA2, 0x0F, 0x69, 0x4C, 0xE9, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x4C, 0x9B, +0x91, 0x67, 0x00, 0x6D, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6C, 0x08, 0xD2, 0x40, 0xF4, 0x4C, 0x9C, +0x01, 0x6D, 0x91, 0x67, 0x40, 0xEA, 0x9D, 0x67, +0x17, 0x6B, 0x70, 0xC4, 0x0A, 0x6B, 0x6F, 0xCC, +0x12, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0x2E, 0xF4, +0x7C, 0xA3, 0x0F, 0x6C, 0x66, 0x33, 0x8C, 0xEB, +0x9D, 0x67, 0x73, 0xC4, 0x67, 0x44, 0x19, 0x4B, +0x60, 0xA3, 0x74, 0xC4, 0x08, 0x94, 0x82, 0x33, +0x9D, 0x67, 0x75, 0xC4, 0x62, 0x33, 0x76, 0xC4, +0x08, 0x94, 0x00, 0xF6, 0x82, 0x33, 0x9D, 0x67, +0x77, 0xC4, 0x58, 0xC4, 0x42, 0x33, 0x00, 0xF6, +0x42, 0x32, 0x5B, 0xC4, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF4, 0x5C, 0x9A, 0x79, 0xC4, 0x62, 0x33, +0x7A, 0xC4, 0x04, 0x04, 0x40, 0xEA, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x60, 0xA4, 0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, +0x08, 0x48, 0x0F, 0x6A, 0x4C, 0xEB, 0xC3, 0xF3, +0x56, 0xA0, 0x24, 0x67, 0x0F, 0x6C, 0x70, 0x33, +0x8C, 0xEA, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF3, 0x56, 0xC0, 0x80, 0xF5, 0x48, 0x9B, +0x09, 0x6C, 0x40, 0xEA, 0x60, 0xA1, 0xC3, 0xF3, +0x56, 0xA0, 0x0F, 0x6C, 0x72, 0x33, 0x70, 0x33, +0x8C, 0xEA, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF3, 0x56, 0xC0, 0x80, 0xF5, 0x48, 0x9B, +0x09, 0x6C, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x60, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xE3, 0xF3, 0x61, 0xC2, 0x61, 0xA4, +0xE3, 0xF3, 0x62, 0xC2, 0x62, 0xA4, 0xE3, 0xF3, +0x6D, 0xC2, 0x63, 0xA4, 0xE3, 0xF3, 0x6E, 0xC2, +0x64, 0xA4, 0xE3, 0xF3, 0x79, 0xC2, 0x65, 0xA4, +0xE3, 0xF3, 0x7A, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x45, 0xA4, +0x01, 0x68, 0xA4, 0x67, 0x0C, 0xEA, 0x3F, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA0, 0xF0, 0x79, 0xA2, 0xA0, 0xF0, 0xD4, 0xA2, +0x0D, 0xEB, 0xA0, 0xF0, 0x79, 0xC2, 0x81, 0xA4, +0xE0, 0xF3, 0x08, 0x6B, 0x80, 0x34, 0x88, 0x34, +0x7A, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, 0x12, 0xEB, +0xE3, 0xF4, 0x78, 0xC2, 0x65, 0xA5, 0x66, 0x33, +0xE3, 0xF4, 0x79, 0xC2, 0x65, 0xA5, 0x82, 0xA5, +0x66, 0x33, 0x6F, 0xE4, 0xE3, 0xF4, 0x7A, 0xC2, +0x62, 0xA5, 0xE3, 0xF4, 0x7B, 0xC2, 0x80, 0xA5, +0x02, 0x6B, 0x6B, 0xEB, 0x0C, 0xEC, 0xCC, 0xEB, +0x8D, 0xEB, 0xA0, 0xF0, 0x74, 0xC2, 0x80, 0xA5, +0x0C, 0xEB, 0x86, 0x34, 0x84, 0x34, 0x8D, 0xEB, +0xA0, 0xF0, 0x74, 0xC2, 0xE3, 0xF4, 0x7B, 0xA2, +0x64, 0x73, 0x06, 0x60, 0x96, 0x73, 0x04, 0x61, +0x03, 0x6B, 0xE3, 0xF4, 0x7B, 0xC2, 0x39, 0x10, +0xE3, 0xF4, 0x1B, 0xC2, 0x36, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x0B, 0xF1, 0x1C, 0x4C, 0x07, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xA0, 0xF0, 0x95, 0xA2, 0xE0, 0xF3, +0x08, 0x6B, 0x80, 0x34, 0x88, 0x34, 0x7A, 0xEC, +0x01, 0x2B, 0xE5, 0xE8, 0x12, 0xEB, 0xA0, 0xF0, +0x75, 0xC2, 0xA0, 0xF0, 0x76, 0xA2, 0x64, 0x73, +0x06, 0x60, 0x96, 0x73, 0x04, 0x61, 0x03, 0x6B, +0xA0, 0xF0, 0x76, 0xC2, 0x02, 0x10, 0xA0, 0xF0, +0x16, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xA0, 0xF0, 0x76, 0xA2, 0xC3, 0xF3, +0xB7, 0xA2, 0x0F, 0x6C, 0x6C, 0xEC, 0x10, 0x6B, +0x6B, 0xEB, 0xAC, 0xEB, 0x8D, 0xEB, 0xC3, 0xF3, +0x77, 0xC2, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0xE0, 0x6A, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0xC3, 0xF3, 0xD9, 0xA3, 0x20, 0x6D, 0xFF, 0x6A, +0xCC, 0xED, 0x4C, 0xED, 0x4C, 0xEC, 0x10, 0x2D, +0xE3, 0xF3, 0xC0, 0xA3, 0x0F, 0x6D, 0xCC, 0xED, +0x8E, 0xED, 0x0A, 0x2D, 0xC3, 0xF3, 0x94, 0xA3, +0x01, 0x6B, 0x8C, 0xEB, 0x4C, 0xEB, 0x04, 0x23, +0x80, 0x18, 0x45, 0x6A, 0x80, 0x18, 0x85, 0x6A, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x69, 0x80, 0xF2, +0x48, 0x9B, 0x2C, 0xED, 0xFF, 0xF7, 0x1F, 0x68, +0x11, 0xD7, 0x8C, 0xE8, 0x08, 0xD5, 0x04, 0x04, +0x00, 0x6D, 0xCC, 0xE9, 0x04, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, 0x48, 0x9B, +0x05, 0x04, 0x00, 0x6D, 0x04, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, 0x4C, 0x9B, +0x11, 0x95, 0x04, 0x04, 0x04, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, 0x4C, 0x9B, +0x12, 0x95, 0x06, 0x04, 0x04, 0x6E, 0x40, 0xEA, +0x00, 0xF1, 0x00, 0x58, 0x08, 0x61, 0x0E, 0xF0, +0x40, 0x40, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, +0x00, 0xF1, 0x00, 0x5A, 0x39, 0x60, 0x08, 0x92, +0x04, 0x72, 0x11, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x40, 0x9A, 0xFF, 0x6B, 0x49, 0xE0, +0x40, 0xA2, 0x4C, 0xEB, 0x5F, 0x21, 0x06, 0x94, +0x8F, 0xEA, 0x6C, 0xEA, 0x04, 0x93, 0x8C, 0xEB, +0x6D, 0xEA, 0x04, 0xD2, 0x57, 0x10, 0x08, 0x92, +0x05, 0x72, 0x12, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x40, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, +0x49, 0xE0, 0x40, 0xAA, 0x4C, 0xEB, 0x7F, 0x21, +0x06, 0x94, 0x8F, 0xEA, 0x6C, 0xEA, 0x04, 0x93, +0x8C, 0xEB, 0x6D, 0xEA, 0x04, 0xD2, 0x77, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x40, 0x9A, +0x49, 0xE0, 0x60, 0x9A, 0x80, 0xF0, 0x1E, 0x21, +0x06, 0x94, 0x8F, 0xEA, 0x6C, 0xEA, 0x04, 0x93, +0x8C, 0xEB, 0x6D, 0xEA, 0x04, 0xD2, 0x96, 0x10, +0x01, 0xF0, 0x00, 0x58, 0x09, 0x61, 0x0D, 0xF7, +0x40, 0x40, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, +0x00, 0xF7, 0x00, 0x5A, 0x80, 0xF0, 0x17, 0x60, +0x08, 0x92, 0x04, 0x72, 0x31, 0x61, 0x1F, 0xF7, +0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x40, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x44, 0x9A, 0x49, 0xE0, +0x60, 0xA2, 0xFF, 0x6A, 0x6C, 0xEA, 0x07, 0x21, +0x06, 0x94, 0x8F, 0xEB, 0x4C, 0xEB, 0x04, 0x92, +0x8C, 0xEA, 0x4D, 0xEB, 0x04, 0xD3, 0x1F, 0xF7, +0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x40, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x44, 0x9A, 0x7D, 0x67, +0x41, 0xE0, 0x50, 0xA3, 0x40, 0xC0, 0x7E, 0x10, +0x08, 0x92, 0x05, 0x72, 0x32, 0x61, 0x1F, 0xF7, +0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x40, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x44, 0x9A, 0x49, 0xE0, +0x60, 0xAA, 0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, +0x07, 0x21, 0x06, 0x94, 0x8F, 0xEB, 0x4C, 0xEB, +0x04, 0x92, 0x8C, 0xEA, 0x4D, 0xEB, 0x04, 0xD3, +0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, +0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x40, 0x9A, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x44, 0x9A, +0x7D, 0x67, 0x41, 0xE0, 0x48, 0xAB, 0x40, 0xC8, +0x49, 0x10, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, +0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x40, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, +0x44, 0x9A, 0x49, 0xE0, 0x60, 0x9A, 0x07, 0x21, +0x06, 0x94, 0x8F, 0xEA, 0x6C, 0xEA, 0x04, 0x93, +0x8C, 0xEB, 0x6D, 0xEA, 0x04, 0xD2, 0x1F, 0xF7, +0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x40, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x44, 0x9A, 0x41, 0xE0, +0x04, 0x92, 0x40, 0xD8, 0x1B, 0x10, 0xFF, 0xF7, +0x1C, 0x6A, 0x0C, 0xEA, 0x01, 0x6D, 0x82, 0x67, +0xAB, 0xED, 0x08, 0xD2, 0x80, 0x18, 0x09, 0x28, +0x05, 0xD2, 0x07, 0x21, 0x06, 0x94, 0x8F, 0xEB, +0x4C, 0xEB, 0x04, 0x92, 0x8C, 0xEA, 0x4D, 0xEB, +0x04, 0xD3, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x08, 0x94, 0x04, 0x96, 0x01, 0x6D, +0xAB, 0xED, 0x40, 0xEA, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x41, 0x9C, 0x61, 0xA4, 0x01, 0xAC, 0x06, 0xD2, +0x42, 0x9C, 0xFF, 0x73, 0x07, 0xD2, 0x00, 0x6A, +0x62, 0x60, 0x7F, 0x6D, 0x6C, 0xED, 0x4C, 0x45, +0xFF, 0x6B, 0x6C, 0xEA, 0x0E, 0x5A, 0x08, 0x60, +0x30, 0xF0, 0x20, 0x6B, 0x48, 0x32, 0xE2, 0xF6, +0x0C, 0x4B, 0x4D, 0xE3, 0x40, 0x9B, 0x00, 0xEA, +0x03, 0x6A, 0x51, 0x10, 0x61, 0xA4, 0x80, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6E, 0x07, 0x03, +0x90, 0x67, 0x4C, 0xEE, 0x06, 0x07, 0x04, 0xD3, +0x80, 0x18, 0x28, 0x64, 0x28, 0x10, 0x81, 0xA4, +0x80, 0x6A, 0xFF, 0x69, 0x64, 0x67, 0x4C, 0xEB, +0x0C, 0xE9, 0x02, 0x32, 0x30, 0xF0, 0x21, 0x6C, +0x01, 0x6F, 0x32, 0xF4, 0x18, 0x4C, 0xA2, 0x67, +0xD1, 0x67, 0xEB, 0xEF, 0x08, 0xD3, 0x09, 0xD2, +0x80, 0x18, 0x9F, 0x58, 0x08, 0x93, 0x07, 0x23, +0x07, 0x94, 0x8F, 0xEB, 0x4C, 0xEB, 0x06, 0x92, +0x8C, 0xEA, 0x4D, 0xEB, 0x06, 0xD3, 0x06, 0x92, +0x09, 0x95, 0x30, 0xF0, 0x21, 0x6C, 0x01, 0x6F, +0x32, 0xF4, 0x18, 0x4C, 0xD1, 0x67, 0xEB, 0xEF, +0x04, 0xD2, 0x80, 0x18, 0x12, 0x59, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xC7, 0xF1, +0x78, 0x9A, 0x06, 0x94, 0x61, 0xE0, 0xC7, 0xF1, +0x7C, 0x9A, 0xC7, 0xF1, 0x18, 0xDA, 0x6D, 0xE4, +0xC7, 0xF1, 0x7C, 0xDA, 0x0B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, +0x90, 0x67, 0x40, 0xEA, 0x01, 0x6A, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4A, 0xAE, 0xF2, 0x1C, 0x4B, +0x07, 0xF4, 0x7C, 0xDA, 0x30, 0xF0, 0x20, 0x6B, +0xAE, 0xF2, 0x18, 0x4B, 0x07, 0xF4, 0x70, 0xDA, +0x30, 0xF0, 0x20, 0x6B, 0xCE, 0xF2, 0x00, 0x4B, +0x07, 0xF4, 0x6C, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0xDF, 0x63, 0x41, 0x62, 0x40, 0xD0, 0xFF, 0xF7, +0x1F, 0x6A, 0xAC, 0xEA, 0xBD, 0x67, 0x5E, 0xC5, +0x42, 0x32, 0x5F, 0xC5, 0x0C, 0x6A, 0x5B, 0xC5, +0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xEB, +0xA3, 0xF6, 0x4C, 0x9A, 0x78, 0xC5, 0x03, 0x6B, +0x7A, 0xC5, 0x9C, 0xC5, 0x40, 0x9A, 0x30, 0xF0, +0x20, 0x68, 0x08, 0x04, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF6, 0x50, 0x9A, 0x05, 0x05, +0x04, 0x6E, 0x40, 0x9A, 0x05, 0xD2, 0x80, 0xF2, +0x4C, 0x98, 0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x98, +0x09, 0x04, 0x04, 0x05, 0x04, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, +0x06, 0x04, 0x40, 0xEA, 0x41, 0x97, 0x40, 0x90, +0x21, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0xA7, 0x44, 0x30, 0xF0, 0x21, 0x6C, 0x01, 0x4D, +0x52, 0xF2, 0x08, 0x4C, 0x14, 0x6E, 0x40, 0xEA, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xE0, 0x63, 0x3F, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0x30, 0xF0, 0x20, 0x6B, 0xAC, 0xEA, 0x30, 0xF0, +0x20, 0x6D, 0xA3, 0xF6, 0xB0, 0x9D, 0xA3, 0xF6, +0x6C, 0x9B, 0xFD, 0x67, 0x60, 0x9B, 0xC0, 0x9D, +0x01, 0x6D, 0x56, 0xC7, 0xAB, 0xED, 0xC2, 0x32, +0xB0, 0xC7, 0x59, 0xC7, 0x22, 0x6D, 0x42, 0x32, +0xB2, 0xC7, 0x5A, 0xC7, 0x0C, 0x6D, 0x62, 0x32, +0xB3, 0xC7, 0x5D, 0xC7, 0x30, 0xF0, 0x21, 0x6D, +0x42, 0x32, 0x72, 0xF3, 0xAC, 0xA5, 0x5E, 0xC7, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, +0xD8, 0xC7, 0x7C, 0xC7, 0x00, 0xF6, 0xC2, 0x36, +0x00, 0xF6, 0x62, 0x33, 0xB4, 0xC7, 0x95, 0xC7, +0xDB, 0xC7, 0x7F, 0xC7, 0x04, 0x04, 0x40, 0xEA, +0x3F, 0x97, 0x20, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x04, 0x67, 0x80, 0x18, 0x23, 0x65, 0x47, 0xA0, +0x66, 0xA0, 0x30, 0xF0, 0x20, 0x69, 0x6B, 0xF0, +0x08, 0x49, 0x40, 0x32, 0xE7, 0xF1, 0x80, 0xA1, +0x69, 0xE2, 0xE7, 0xF1, 0x52, 0xC9, 0x01, 0x6A, +0x8C, 0xEA, 0xFF, 0x6B, 0x1C, 0x2A, 0xE7, 0xF1, +0xB4, 0xA1, 0xFE, 0x4A, 0xAC, 0xEA, 0xE7, 0xF1, +0x54, 0xC1, 0x02, 0x6A, 0x8C, 0xEA, 0x6C, 0xEA, +0x52, 0x22, 0xE7, 0xF1, 0x43, 0xA1, 0x0F, 0x6D, +0xE7, 0xF1, 0x84, 0xA1, 0x4C, 0xED, 0x52, 0x36, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x58, 0x9A, +0x6C, 0xED, 0x6C, 0xEE, 0x40, 0xEA, 0x01, 0x72, +0x0D, 0x6A, 0x42, 0x61, 0x40, 0x10, 0xE7, 0xF1, +0x74, 0xA1, 0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xE7, 0xF1, 0x54, 0xC1, 0xE7, 0xF1, 0x50, 0xA9, +0x00, 0xF1, 0x01, 0x5A, 0x0C, 0x6A, 0x34, 0x60, +0x00, 0x6A, 0xE7, 0xF1, 0x55, 0xC1, 0xE7, 0xF1, +0x56, 0xC1, 0xE7, 0xF1, 0x01, 0xA1, 0x00, 0x6A, +0xE7, 0xF1, 0x58, 0xC9, 0xE7, 0xF1, 0x5A, 0xC9, +0x07, 0xF2, 0x40, 0xC1, 0x07, 0xF2, 0x41, 0xC1, +0x00, 0x18, 0x8D, 0xD5, 0x01, 0xE2, 0x00, 0x6A, +0xE7, 0xF1, 0xF0, 0xA9, 0x04, 0xD2, 0x05, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, 0x78, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, 0xB4, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF0, 0x54, 0x9A, +0x30, 0xF0, 0x21, 0x6E, 0x1C, 0x30, 0x72, 0xF2, +0x0A, 0x4E, 0x00, 0x6C, 0xB5, 0xE0, 0x59, 0xE6, +0x40, 0xEB, 0xE7, 0xF1, 0x54, 0xA1, 0x01, 0x6B, +0x6D, 0xEA, 0xE7, 0xF1, 0x54, 0xC1, 0x00, 0x6A, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF2, 0x63, 0x1B, 0x62, +0x1A, 0xD1, 0x19, 0xD0, 0x30, 0xF0, 0x21, 0x6A, +0x72, 0xF3, 0x14, 0x9A, 0x04, 0x6A, 0x61, 0xA0, +0x6C, 0xEA, 0x04, 0x22, 0x04, 0x6C, 0x00, 0x6D, +0x80, 0x18, 0x2C, 0x65, 0x42, 0xA0, 0x7F, 0x6E, +0x30, 0xF0, 0x21, 0x6C, 0x4C, 0xEE, 0x92, 0xF3, +0x01, 0x4C, 0x00, 0x6B, 0x40, 0xA4, 0xFF, 0x6D, +0x6C, 0xED, 0xCE, 0xEA, 0x47, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x60, 0xF7, 0xE2, 0x43, 0xEC, 0x37, +0x6B, 0xF0, 0x08, 0x4A, 0x5D, 0xE7, 0xE8, 0xA7, +0x1F, 0x65, 0x38, 0x67, 0x01, 0x6F, 0x2C, 0xEF, +0x01, 0x77, 0x38, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF2, 0x68, 0x9B, 0xC7, 0xF1, 0xD5, 0xA2, +0x60, 0xF7, 0x02, 0x4D, 0x80, 0xAB, 0xE1, 0xF7, +0x1F, 0x6B, 0xAC, 0x35, 0x8C, 0xEB, 0x49, 0xE5, +0xD9, 0xE3, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0x9A, +0x63, 0xF0, 0x74, 0x9B, 0xE5, 0xAA, 0x58, 0x67, +0x75, 0xE5, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF7, +0x78, 0x9B, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF2, 0x58, 0x9A, 0xDC, 0x36, +0x79, 0xE6, 0x00, 0x6C, 0x40, 0xEA, 0x0C, 0x04, +0x00, 0x6D, 0x30, 0x6E, 0x00, 0x18, 0x37, 0xD6, +0x10, 0xF0, 0x31, 0x6A, 0xB4, 0xF7, 0x09, 0x4A, +0x0C, 0xD2, 0x10, 0xF0, 0x31, 0x6A, 0xD4, 0xF7, +0x0D, 0x4A, 0x0D, 0xD2, 0x04, 0x04, 0x00, 0x6A, +0x10, 0x03, 0x10, 0x10, 0x01, 0x4B, 0x0A, 0x73, +0x08, 0x4C, 0xB0, 0x61, 0x61, 0xA0, 0x02, 0x6A, +0x6C, 0xEA, 0x1C, 0x22, 0x05, 0x6C, 0x06, 0x6D, +0x17, 0x10, 0x59, 0xE3, 0xC0, 0xA6, 0x55, 0xE4, +0x01, 0x4A, 0xC0, 0xC5, 0x20, 0x5A, 0xF9, 0x61, +0x0C, 0x94, 0x0D, 0x95, 0x0E, 0x96, 0x0F, 0x97, +0x00, 0x18, 0x14, 0xE4, 0x81, 0xA0, 0x02, 0x6B, +0x8C, 0xEB, 0x08, 0x23, 0x03, 0x2A, 0x05, 0x6C, +0x08, 0x6D, 0x02, 0x10, 0x05, 0x6C, 0x07, 0x6D, +0x80, 0x18, 0x2C, 0x65, 0x1B, 0x97, 0x1A, 0x91, +0x19, 0x90, 0x0E, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF2, 0x68, 0x9A, +0x23, 0x23, 0x80, 0xA3, 0x80, 0x6A, 0x4B, 0xEA, +0x8C, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, 0x1C, 0x22, +0x30, 0xF0, 0x21, 0x6A, 0x72, 0xF2, 0x48, 0xA2, +0x01, 0x72, 0x16, 0x61, 0x61, 0xA3, 0x01, 0x6A, +0x6C, 0xEA, 0x8C, 0xEA, 0x04, 0x22, 0x06, 0x6C, +0x00, 0x6D, 0x80, 0x18, 0x2C, 0x65, 0x30, 0xF0, +0x20, 0x6B, 0x09, 0xF2, 0x88, 0x9B, 0x7F, 0x6A, +0xA0, 0xA4, 0x4C, 0xED, 0xA0, 0xC4, 0x09, 0xF2, +0x68, 0x9B, 0xC0, 0xA3, 0x4C, 0xEE, 0x5D, 0x11, +0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, +0x07, 0xF3, 0x8C, 0x98, 0x00, 0x6A, 0x07, 0xF2, +0x41, 0xC0, 0x07, 0xF2, 0x40, 0xC0, 0x00, 0x18, +0x57, 0xD6, 0x30, 0xF0, 0x21, 0x6A, 0x72, 0xF2, +0x0A, 0x4A, 0x06, 0xD2, 0x06, 0x93, 0xE7, 0xF1, +0xB8, 0xA8, 0x30, 0xF0, 0x20, 0x69, 0x80, 0xF2, +0x4C, 0x99, 0x30, 0xF0, 0x21, 0x6C, 0xB5, 0xE3, +0x72, 0xF3, 0x0C, 0x4C, 0x04, 0x6E, 0x40, 0xEA, +0xE7, 0xF1, 0x58, 0xA8, 0x07, 0xF3, 0x67, 0xA0, +0x04, 0x4A, 0xE7, 0xF1, 0x58, 0xC8, 0x80, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, +0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0x07, 0xF3, +0x4C, 0xD8, 0x09, 0xF2, 0x48, 0xDB, 0x40, 0x10, +0x06, 0x93, 0xE7, 0xF1, 0xB8, 0xA8, 0x80, 0xF2, +0x4C, 0x99, 0x30, 0xF0, 0x21, 0x6C, 0xB5, 0xE3, +0x72, 0xF3, 0x10, 0x4C, 0x02, 0x6E, 0x40, 0xEA, +0xE7, 0xF1, 0x58, 0xA8, 0x07, 0xF3, 0x68, 0xA0, +0x02, 0x4A, 0xE7, 0xF1, 0x58, 0xC8, 0x7F, 0x6A, +0x6C, 0xEA, 0x03, 0x72, 0x17, 0x61, 0x07, 0xF3, +0x89, 0xA0, 0x00, 0x18, 0x66, 0xD6, 0x07, 0xF3, +0x4C, 0xD8, 0xE7, 0xF1, 0xB8, 0xA8, 0x82, 0x67, +0x06, 0x92, 0x80, 0xF2, 0x6C, 0x99, 0x07, 0xF3, +0xC9, 0xA0, 0xB5, 0xE2, 0x40, 0xEB, 0x07, 0xF3, +0x6C, 0x98, 0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF2, +0x68, 0xDA, 0x07, 0x10, 0x00, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x07, 0xF3, 0x4C, 0xD8, 0x09, 0xF2, +0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xE7, 0xF1, 0x78, 0xAA, 0x07, 0xF3, +0x89, 0xA2, 0x6D, 0xE4, 0xE7, 0xF1, 0x78, 0xCA, +0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF2, 0x48, 0x9A, +0x61, 0xA2, 0x10, 0x6A, 0x6C, 0xEA, 0x04, 0x22, +0x00, 0x6C, 0xA4, 0x67, 0x80, 0x18, 0x2C, 0x65, +0x30, 0xF0, 0x20, 0x6C, 0x6B, 0xF0, 0x08, 0x4C, +0x07, 0xF3, 0x65, 0xA4, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF4, 0x58, 0x9A, 0x07, 0xF3, 0x84, 0xA4, +0x0F, 0x6D, 0x6C, 0xED, 0x72, 0x36, 0xFF, 0x68, +0x40, 0xEA, 0x27, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x09, 0xF2, 0x48, 0x9A, 0x61, 0xA2, 0x08, 0x6A, +0x6C, 0xEA, 0x0C, 0xEA, 0x04, 0x22, 0x01, 0x6C, +0x02, 0x6D, 0x80, 0x18, 0x2C, 0x65, 0x30, 0xF0, +0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, 0xE7, 0xF1, +0x60, 0xA0, 0x20, 0x6A, 0x6C, 0xEA, 0x80, 0xF0, +0x10, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF4, +0x54, 0x9A, 0x40, 0xEA, 0xE7, 0xF1, 0x74, 0xA0, +0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xE7, 0xF1, +0x54, 0xC0, 0x01, 0x6C, 0xE7, 0xF1, 0xB2, 0xA8, +0xCC, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF2, +0x48, 0x9A, 0x61, 0xA2, 0x08, 0x6A, 0x6C, 0xEA, +0x0C, 0xEA, 0x04, 0x22, 0x01, 0x6C, 0xA4, 0x67, +0x80, 0x18, 0x2C, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x07, 0xF3, 0xA7, 0xA2, +0x7F, 0x6B, 0xFF, 0x6C, 0xAC, 0xEB, 0x56, 0x23, +0x01, 0x73, 0x4D, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x09, 0xF2, 0x48, 0x9A, 0x61, 0xA2, 0x04, 0x6A, +0x6C, 0xEA, 0x8C, 0xEA, 0x04, 0x22, 0x02, 0x6C, +0x00, 0x6D, 0x80, 0x18, 0x2C, 0x65, 0x30, 0xF0, +0x20, 0x6A, 0x60, 0xF4, 0x4C, 0x9A, 0x00, 0x6C, +0x40, 0xEA, 0x0B, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x09, 0xF2, 0x48, 0x9A, 0x61, 0xA2, 0x02, 0x6A, +0x6C, 0xEA, 0x17, 0x22, 0x03, 0x6C, 0xA4, 0x67, +0x12, 0x10, 0x30, 0xF0, 0x21, 0x6A, 0x32, 0xF2, +0x9D, 0xA2, 0x00, 0x6D, 0x80, 0x18, 0x61, 0x2A, +0x14, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF2, +0x48, 0x9A, 0x61, 0xA2, 0x02, 0x6A, 0x6C, 0xEA, +0x04, 0x22, 0x03, 0x6C, 0x05, 0x6D, 0x80, 0x18, +0x2C, 0x65, 0x30, 0xF0, 0x21, 0x6A, 0x52, 0xF2, +0x68, 0xA2, 0x20, 0x6A, 0x6C, 0xEA, 0x2D, 0x2A, +0x6A, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x09, 0xF2, +0x48, 0x9A, 0x61, 0xA2, 0x02, 0x6A, 0x6C, 0xEA, +0x04, 0x22, 0x03, 0x6C, 0x04, 0x6D, 0x80, 0x18, +0x2C, 0x65, 0x01, 0x6B, 0x30, 0xF0, 0x21, 0x6A, +0x72, 0xF2, 0x69, 0xC2, 0x07, 0x10, 0xE7, 0xF1, +0xA0, 0xA2, 0x20, 0x6B, 0xAC, 0xEB, 0x8C, 0xEB, +0x14, 0x2B, 0x48, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x09, 0xF2, 0x48, 0x9A, 0x61, 0xA2, 0x80, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, +0x06, 0x22, 0x30, 0xF0, 0x21, 0x6A, 0x72, 0xF2, +0x49, 0xA2, 0x01, 0x72, 0x02, 0x60, 0x80, 0x18, +0x85, 0x65, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xE7, 0xF1, 0x75, 0xA2, 0x07, 0xF3, +0x86, 0xA2, 0x01, 0x4B, 0xE7, 0xF1, 0x75, 0xC2, +0xE7, 0xF1, 0x7A, 0xAA, 0x6D, 0xE4, 0xE7, 0xF1, +0x7A, 0xCA, 0xE7, 0xF1, 0x95, 0xA2, 0xE7, 0xF1, +0x62, 0xA2, 0x8E, 0xEB, 0x0C, 0x2B, 0x07, 0xF3, +0xC6, 0xA2, 0x10, 0xF0, 0x32, 0x6C, 0x30, 0xF0, +0x20, 0x6A, 0x04, 0xD3, 0x00, 0xF3, 0x4C, 0x9A, +0xD3, 0xF2, 0x0D, 0x4C, 0x0C, 0x10, 0x07, 0xF3, +0xC6, 0xA2, 0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, +0x32, 0x6C, 0xB3, 0xF2, 0x01, 0x4C, 0x64, 0x6B, +0x78, 0xEE, 0x00, 0x6D, 0x01, 0x6F, 0x12, 0xEE, +0x40, 0xEA, 0x19, 0x10, 0xE7, 0xF1, 0x94, 0xA2, +0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xE7, 0xF1, +0x74, 0xC2, 0x02, 0x6C, 0x0C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xE7, 0xF1, +0x94, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0xE7, 0xF1, 0x74, 0xC2, 0x03, 0x6C, 0xE7, 0xF1, +0xB2, 0xAA, 0x80, 0x18, 0x08, 0x65, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xE7, 0xF1, 0x94, 0xA2, +0x01, 0x6B, 0x8C, 0xEB, 0x08, 0x23, 0x07, 0xF3, +0x62, 0xA2, 0x03, 0x23, 0x00, 0x6B, 0x07, 0xF3, +0x62, 0xC2, 0x80, 0x18, 0xCC, 0x65, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xE7, 0xF1, 0xB4, 0xA2, 0x01, 0x6C, +0xFF, 0x6B, 0x8C, 0xED, 0x40, 0xF1, 0x03, 0x25, +0x07, 0xF3, 0x0C, 0x9A, 0x27, 0x20, 0xC0, 0xA0, +0x80, 0x6D, 0xAB, 0xED, 0xCC, 0xED, 0x6C, 0xED, +0x21, 0x25, 0x07, 0xF2, 0x40, 0xA2, 0x01, 0x72, +0x1D, 0x61, 0x41, 0xA0, 0x4C, 0xEC, 0x6C, 0xEC, +0x04, 0x24, 0x06, 0x6C, 0x00, 0x6D, 0x80, 0x18, +0x2C, 0x65, 0x40, 0xA0, 0x7F, 0x6B, 0x64, 0x6E, +0x4C, 0xEB, 0xD8, 0xEB, 0x00, 0x6A, 0x60, 0xC0, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x4C, 0x9A, 0x10, 0xF0, 0x32, 0x6C, 0xD3, 0xF2, +0x0D, 0x4C, 0x00, 0x6D, 0x01, 0x6F, 0x12, 0xEE, +0x40, 0xEA, 0x19, 0x11, 0x30, 0xF0, 0x20, 0x68, +0x6B, 0xF0, 0x08, 0x48, 0xE7, 0xF1, 0x80, 0xA0, +0x03, 0x6D, 0xFF, 0x6B, 0x8E, 0x32, 0xAC, 0xEA, +0x02, 0x72, 0x7E, 0x60, 0x03, 0x72, 0xC0, 0xF0, +0x1F, 0x60, 0x01, 0x72, 0x27, 0x60, 0xE7, 0xF1, +0xB4, 0xA0, 0x02, 0x6A, 0x4B, 0xEA, 0xAC, 0xEA, +0xE7, 0xF1, 0x54, 0xC0, 0x02, 0x6A, 0x8C, 0xEA, +0x6C, 0xEA, 0x11, 0x22, 0xE7, 0xF1, 0x43, 0xA0, +0x0F, 0x6D, 0xE7, 0xF1, 0x84, 0xA0, 0x4C, 0xED, +0x52, 0x36, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x58, 0x9A, 0x6C, 0xED, 0x6C, 0xEE, 0x40, 0xEA, +0x01, 0x72, 0x01, 0x6C, 0x01, 0x61, 0x00, 0x6C, +0xE7, 0xF1, 0xB2, 0xA8, 0x80, 0x18, 0x08, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF4, 0x54, 0x9A, +0x40, 0xEA, 0xC0, 0x10, 0x02, 0x6A, 0x8C, 0xEA, +0x6C, 0xEA, 0x11, 0x22, 0xE7, 0xF1, 0x43, 0xA0, +0x0F, 0x6D, 0xE7, 0xF1, 0x84, 0xA0, 0x4C, 0xED, +0x52, 0x36, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x58, 0x9A, 0x6C, 0xED, 0x6C, 0xEE, 0x40, 0xEA, +0x01, 0x72, 0xA0, 0xF0, 0x1C, 0x61, 0xE7, 0xF1, +0xB2, 0xA8, 0x00, 0x6C, 0x80, 0x18, 0x08, 0x65, +0x30, 0xF0, 0x21, 0x6A, 0x52, 0xF2, 0x4D, 0xA2, +0x5A, 0x33, 0x02, 0x73, 0x0D, 0x60, 0x03, 0x73, +0x0F, 0x60, 0x01, 0x73, 0x05, 0x60, 0x3F, 0x6E, +0x4C, 0xEE, 0xFF, 0x6A, 0x4C, 0xEE, 0x0E, 0x10, +0x3F, 0x6B, 0x4C, 0xEB, 0x0A, 0x6E, 0x08, 0x10, +0x3F, 0x6B, 0x4C, 0xEB, 0x64, 0x6E, 0x04, 0x10, +0x3F, 0x6B, 0x4C, 0xEB, 0xE0, 0xF3, 0x08, 0x6E, +0xD8, 0xEB, 0x12, 0xEE, 0x0A, 0x6A, 0x58, 0xEE, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xE7, 0xF1, 0x7A, 0xAA, 0x10, 0xF0, 0x32, 0x6C, +0xB3, 0xF2, 0x01, 0x4C, 0x00, 0x6D, 0x12, 0xEE, +0x7B, 0xE6, 0x01, 0x6B, 0x07, 0xF3, 0x62, 0xC2, +0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF3, 0x4C, 0x9A, 0x64, 0x6B, 0x5F, 0x10, +0x02, 0x6A, 0x8C, 0xEA, 0x6C, 0xEA, 0x10, 0x22, +0xE7, 0xF1, 0x43, 0xA0, 0x0F, 0x6D, 0xE7, 0xF1, +0x84, 0xA0, 0x4C, 0xED, 0x52, 0x36, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x58, 0x9A, 0x6C, 0xED, +0x6C, 0xEE, 0x40, 0xEA, 0x01, 0x72, 0x6B, 0x61, +0xE7, 0xF1, 0xB2, 0xA8, 0x00, 0x6C, 0x80, 0x18, +0x08, 0x65, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xE7, 0xF1, 0x87, 0xA2, 0xE7, 0xF1, +0x76, 0xA2, 0xFF, 0x4C, 0x6E, 0xEC, 0x03, 0x2C, +0xE7, 0xF1, 0x46, 0xA2, 0x05, 0x10, 0x01, 0x4B, +0xE7, 0xF1, 0x76, 0xC2, 0xE7, 0xF1, 0x45, 0xA2, +0x5A, 0x33, 0x02, 0x73, 0x0D, 0x60, 0x03, 0x73, +0x0F, 0x60, 0x01, 0x73, 0x05, 0x60, 0x3F, 0x6B, +0x4C, 0xEB, 0xFF, 0x6A, 0x4C, 0xEB, 0x0E, 0x10, +0x3F, 0x6B, 0x4C, 0xEB, 0x0A, 0x6A, 0x08, 0x10, +0x3F, 0x6B, 0x4C, 0xEB, 0x64, 0x6A, 0x04, 0x10, +0x3F, 0x6B, 0x4C, 0xEB, 0xE0, 0xF3, 0x08, 0x6A, +0x58, 0xEB, 0x12, 0xEB, 0x0A, 0x6A, 0x58, 0xEB, +0x30, 0xF0, 0x21, 0x6A, 0x72, 0xF2, 0x42, 0xAA, +0x01, 0x6C, 0x00, 0x6D, 0x64, 0x6E, 0x12, 0xEB, +0x4F, 0xE3, 0x30, 0xF0, 0x21, 0x6A, 0x72, 0xF3, +0x8A, 0xC2, 0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, +0x32, 0x6C, 0xB3, 0xF2, 0x01, 0x4C, 0xD8, 0xEB, +0x01, 0x6F, 0x12, 0xEE, 0x40, 0xEA, 0x0A, 0x10, +0xE7, 0xF1, 0xB2, 0xA8, 0x00, 0x6C, 0x80, 0x18, +0x08, 0x65, 0x01, 0x6A, 0x07, 0xF3, 0x42, 0xC0, +0x80, 0x18, 0xA8, 0x66, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x00, 0x6B, 0xE7, 0xF1, +0x75, 0xC2, 0x00, 0x6B, 0xE7, 0xF1, 0x7A, 0xCA, +0xE7, 0xF1, 0x78, 0xCA, 0x07, 0xF2, 0x61, 0xC2, +0x07, 0xF2, 0x60, 0xC2, 0x10, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xE7, 0xF1, +0x94, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0xE7, 0xF1, +0xB2, 0xAA, 0x8C, 0xEB, 0xE7, 0xF1, 0x74, 0xC2, +0x01, 0x6C, 0x80, 0x18, 0x08, 0x65, 0x07, 0x97, +0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x69, 0x04, 0x67, +0x80, 0xF4, 0x4C, 0x9A, 0x2C, 0xE8, 0x2C, 0xED, +0xCC, 0xE9, 0x04, 0xD5, 0x90, 0x67, 0xD1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x0F, 0x58, 0x43, 0xF2, 0x18, 0xC2, +0x43, 0xF2, 0x30, 0xDA, 0x01, 0x6B, 0x01, 0x60, +0x00, 0x6B, 0x43, 0xF2, 0x74, 0xDA, 0x90, 0x67, +0x00, 0x18, 0x97, 0xD8, 0x04, 0x96, 0x30, 0xF0, +0x21, 0x6C, 0xB0, 0x67, 0xF1, 0x67, 0x32, 0xF4, +0x18, 0x4C, 0x80, 0x18, 0xA8, 0x5D, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6B, 0xCC, 0xEB, +0x17, 0x24, 0xE3, 0x5B, 0x15, 0x60, 0x01, 0x6A, +0x4B, 0xEA, 0x40, 0xC4, 0x1F, 0x6A, 0x42, 0xC4, +0x47, 0x43, 0x01, 0x4A, 0x43, 0xC4, 0x00, 0x6A, +0x44, 0xC4, 0x46, 0x43, 0x45, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0x06, 0x4C, +0xC3, 0x67, 0x40, 0xEA, 0x01, 0x6A, 0x01, 0x10, +0x00, 0x6A, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x0A, 0x93, +0xFF, 0x6A, 0x4C, 0xED, 0x4C, 0xEB, 0xDB, 0x5B, +0x4C, 0xEE, 0x00, 0x6A, 0x12, 0x60, 0x00, 0xA4, +0xFE, 0x4A, 0xA2, 0xC4, 0x0C, 0xEA, 0x40, 0xC4, +0x00, 0x6A, 0xC3, 0xC4, 0x44, 0xC4, 0x65, 0xC4, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0x06, 0x4C, 0xA7, 0x67, 0xC3, 0x67, 0x40, 0xEA, +0x01, 0x6A, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0x40, 0xA4, 0xE6, 0xF0, 0x04, 0x48, 0x40, 0xF0, +0x7F, 0xA0, 0x46, 0x32, 0x24, 0x67, 0x6E, 0xEA, +0x05, 0x22, 0x55, 0x98, 0x01, 0x4A, 0x55, 0xD8, +0x03, 0x6A, 0x1A, 0x10, 0x40, 0xF0, 0x9C, 0xA8, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x21, 0x6B, +0x80, 0xF2, 0x4C, 0x9A, 0xC1, 0xA1, 0x3B, 0xF0, +0x18, 0x4B, 0x91, 0xE3, 0xA2, 0x41, 0x40, 0xEA, +0x61, 0xA1, 0x40, 0xF0, 0x5C, 0xA8, 0x49, 0xE3, +0x40, 0xF0, 0x5C, 0xC8, 0x40, 0xF0, 0x5F, 0xA0, +0x01, 0x4A, 0x40, 0xF0, 0x5F, 0xC0, 0x00, 0x6A, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xE0, 0x63, 0x3F, 0x62, +0x01, 0x6A, 0x7D, 0x67, 0x4B, 0xEA, 0x50, 0xC3, +0x1F, 0x6A, 0x52, 0xC3, 0x02, 0x6A, 0x53, 0xC3, +0x60, 0xA4, 0x01, 0x6A, 0x04, 0x04, 0x66, 0x33, +0x64, 0x33, 0x6D, 0xEA, 0x7D, 0x67, 0x54, 0xC3, +0x00, 0x6B, 0x05, 0x02, 0x61, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, 0x40, 0xEA, +0x3F, 0x97, 0x20, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xE0, 0x63, 0x3F, 0x62, 0x01, 0x6A, 0x7D, 0x67, +0x4B, 0xEA, 0x50, 0xC3, 0x1F, 0x6A, 0x52, 0xC3, +0x08, 0x6A, 0x53, 0xC3, 0x00, 0x6A, 0x54, 0xC3, +0xBD, 0x67, 0x06, 0x6B, 0x75, 0xC5, 0xA0, 0xA4, +0x01, 0x6B, 0xA6, 0x35, 0xA4, 0x35, 0xAD, 0xEB, +0xBD, 0x67, 0x57, 0xC5, 0x76, 0xC5, 0x61, 0xA4, +0x78, 0xC5, 0x62, 0xA4, 0x79, 0xC5, 0x63, 0xA4, +0x5B, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0x7A, 0xC5, +0x20, 0xF4, 0x40, 0x9A, 0x04, 0x04, 0x40, 0xEA, +0x3F, 0x97, 0x20, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x24, 0x67, 0x80, 0x18, 0x97, 0x67, 0x02, 0x67, +0x03, 0x2A, 0x91, 0x67, 0x80, 0x18, 0xB1, 0x67, +0x50, 0x67, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xC2, 0x63, 0x7B, 0x62, +0x7A, 0xD1, 0x79, 0xD0, 0x80, 0x91, 0xFF, 0x6B, +0x06, 0x5C, 0x44, 0x67, 0x05, 0x67, 0x6C, 0xEE, +0x6C, 0xE9, 0x08, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xE6, 0xF0, 0x04, 0x4A, 0x72, 0x9A, 0x01, 0x4B, +0x72, 0xDA, 0x2E, 0x10, 0x06, 0x2D, 0x30, 0xF0, +0x20, 0x6B, 0x46, 0xF1, 0x64, 0xA3, 0x10, 0x2B, +0x27, 0x10, 0x03, 0x6C, 0x98, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE6, 0xF0, 0x04, 0x4B, 0x12, 0xEC, +0x6D, 0xE4, 0x98, 0xA3, 0x1D, 0x24, 0x06, 0x75, +0x03, 0x60, 0x79, 0xA3, 0xA3, 0xEB, 0x18, 0x61, +0xFF, 0x6D, 0x06, 0x04, 0x4C, 0xED, 0x10, 0x30, +0x04, 0xD1, 0x80, 0x18, 0x86, 0x67, 0x5D, 0x67, +0x19, 0xC2, 0xC6, 0x41, 0x3E, 0x00, 0xFF, 0x6A, +0x90, 0x67, 0x06, 0x05, 0x4C, 0xEE, 0x80, 0x18, +0x76, 0x67, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF4, 0x40, 0x9A, 0x90, 0x67, 0x40, 0xEA, +0x7B, 0x97, 0x7A, 0x91, 0x79, 0x90, 0x3E, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD0, 0xE4, 0x67, 0x41, 0xA7, 0x85, 0x67, +0x06, 0x5A, 0x17, 0x60, 0x30, 0xF0, 0x20, 0x6B, +0x48, 0x32, 0xE6, 0xF0, 0x04, 0x4B, 0x69, 0xE2, +0x40, 0x9A, 0x0F, 0x22, 0x4F, 0x9B, 0x01, 0x4A, +0x4F, 0xDB, 0x41, 0xA7, 0xA2, 0xAF, 0xC3, 0xA7, +0x48, 0x32, 0x69, 0xE2, 0x62, 0xA7, 0x04, 0xD5, +0x40, 0x9A, 0xA3, 0x67, 0x06, 0x4F, 0x40, 0xEA, +0x18, 0x10, 0x06, 0x00, 0x30, 0xF0, 0x20, 0x6D, +0x90, 0x67, 0xC6, 0xF0, 0x0C, 0x4D, 0x13, 0x6E, +0x00, 0x18, 0x3C, 0xD6, 0x01, 0x6C, 0x13, 0x6A, +0x03, 0x6D, 0xC4, 0x67, 0xF0, 0x67, 0x04, 0xD2, +0x80, 0x18, 0xDD, 0x67, 0x30, 0xF0, 0x20, 0x6A, +0xE6, 0xF0, 0x04, 0x4A, 0x72, 0x9A, 0x01, 0x4B, +0x72, 0xDA, 0x0D, 0x97, 0x0C, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xDE, 0x63, 0x43, 0x62, +0x42, 0xD1, 0x41, 0xD0, 0xFF, 0x69, 0x04, 0x67, +0xE5, 0x67, 0xCC, 0xE9, 0x31, 0x24, 0x30, 0x25, +0xDB, 0x59, 0x08, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xE6, 0xF0, 0x04, 0x4A, 0x71, 0x9A, 0x01, 0x4B, +0x71, 0xDA, 0x26, 0x10, 0xA2, 0xA4, 0xC3, 0xA4, +0x00, 0xF0, 0x1E, 0x04, 0x04, 0xD1, 0x80, 0x18, +0x86, 0x67, 0x1E, 0x22, 0xBD, 0x67, 0x81, 0xA0, +0x5E, 0xA5, 0x01, 0x6B, 0x84, 0x34, 0x6C, 0xEA, +0x8D, 0xEA, 0x5E, 0xC5, 0xC6, 0x41, 0xFF, 0x6A, +0x06, 0x01, 0x7F, 0xC5, 0x91, 0x67, 0x00, 0xF0, +0x1E, 0x05, 0x4C, 0xEE, 0x80, 0x18, 0x76, 0x67, +0x0B, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, +0x40, 0x9A, 0x91, 0x67, 0x40, 0xEA, 0x90, 0x67, +0x00, 0x18, 0xE8, 0xC1, 0x01, 0x6A, 0x01, 0x10, +0x00, 0x6A, 0x43, 0x97, 0x42, 0x91, 0x41, 0x90, +0x22, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, 0x10, 0x2A, +0x7D, 0x67, 0x01, 0x68, 0xBD, 0x67, 0x10, 0xC3, +0x51, 0xC3, 0x02, 0x6B, 0x72, 0xC5, 0x53, 0xC5, +0x04, 0x6E, 0x04, 0x05, 0x80, 0x18, 0x1F, 0x68, +0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF1, 0x04, 0xC2, +0x07, 0x97, 0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xE6, 0xF0, 0x04, 0x48, +0x4C, 0x98, 0x24, 0x67, 0x01, 0x4A, 0x4C, 0xD8, +0x80, 0x18, 0xD4, 0x67, 0x38, 0x2A, 0x60, 0xA1, +0x01, 0x6A, 0x4C, 0xEB, 0x04, 0x23, 0x4D, 0x98, +0x01, 0x4A, 0x4D, 0xD8, 0x42, 0x10, 0x30, 0xF0, +0x21, 0x68, 0x3B, 0xF0, 0x18, 0x48, 0x60, 0xA0, +0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x90, 0x67, 0x80, 0x18, 0xC0, 0x67, 0x00, 0x18, +0xEA, 0xC1, 0x22, 0x67, 0x18, 0x22, 0x40, 0xA0, +0x90, 0x67, 0xB1, 0x67, 0x46, 0x32, 0x41, 0xC1, +0x41, 0xA0, 0x42, 0xC1, 0x42, 0xA0, 0x43, 0xC1, +0x43, 0xA0, 0x44, 0xC1, 0x80, 0x18, 0x01, 0x68, +0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF0, 0x04, 0x4A, +0x6E, 0x9A, 0x91, 0x67, 0x01, 0x4B, 0x6E, 0xDA, +0x00, 0x18, 0xE8, 0xC1, 0x0B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xE6, 0xF0, 0x04, 0x4A, 0x74, 0x9A, +0x01, 0x4B, 0x74, 0xDA, 0x03, 0x10, 0x53, 0x98, +0x01, 0x4A, 0x53, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0xE6, 0xF0, 0x04, 0x4A, 0x40, 0xF0, 0x7E, 0xA2, +0x01, 0x4B, 0x40, 0xF0, 0x7E, 0xC2, 0x00, 0x6B, +0x40, 0xF0, 0x7F, 0xC2, 0x00, 0x6B, 0x40, 0xF0, +0x7C, 0xCA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xE4, 0xA4, 0x03, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x58, 0xEF, 0xE6, 0xF0, +0x04, 0x4B, 0xC6, 0xA4, 0xA7, 0xA4, 0x12, 0xEA, +0x69, 0xE2, 0x65, 0xA4, 0xD9, 0xC2, 0xBA, 0xC2, +0x78, 0xC2, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0xFF, 0x6B, 0x44, 0x67, +0x6C, 0xEA, 0xE5, 0x67, 0xCC, 0xEB, 0x01, 0x6C, +0x03, 0x6D, 0xC2, 0x67, 0x04, 0xD3, 0x80, 0x18, +0xDD, 0x67, 0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x01, 0x6A, +0x04, 0xD2, 0x41, 0xA4, 0x05, 0x67, 0x09, 0x2A, +0x43, 0xA4, 0x62, 0xA4, 0x40, 0x32, 0x6D, 0xEA, +0x03, 0x5A, 0x03, 0x61, 0x80, 0x18, 0x7B, 0x68, +0x04, 0xD2, 0x90, 0x67, 0x04, 0x05, 0x04, 0x6E, +0x80, 0x18, 0x1F, 0x68, 0x07, 0x97, 0x06, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x40, 0xA4, 0x02, 0x2A, 0x80, 0x18, 0x8C, 0x68, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x00, 0x6C, 0x30, 0xF0, +0x20, 0x6A, 0x25, 0x67, 0x09, 0xF2, 0x0C, 0x48, +0xE6, 0xF0, 0x04, 0x4A, 0x64, 0x67, 0xA0, 0x9A, +0x03, 0x25, 0x01, 0x6D, 0xA4, 0xEB, 0xAD, 0xEC, +0x01, 0x4B, 0x06, 0x73, 0x04, 0x4A, 0xF7, 0x61, +0x02, 0x6A, 0x40, 0xC0, 0x58, 0x67, 0x41, 0xC0, +0x04, 0x6A, 0x41, 0xC8, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0x04, 0xD4, 0x04, 0x05, +0x84, 0x40, 0x04, 0x6E, 0x40, 0xEA, 0xC2, 0xA0, +0xFF, 0x6A, 0x91, 0x67, 0x04, 0x4E, 0xB0, 0x67, +0x4C, 0xEE, 0x80, 0x18, 0x1F, 0x68, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x41, 0xA4, 0x02, 0x2A, +0x80, 0x18, 0x9E, 0x68, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xE9, 0xF2, 0x10, 0x48, 0x00, 0x6A, 0x41, 0xC0, +0x01, 0x6A, 0x40, 0xC0, 0x30, 0x6A, 0x41, 0xC8, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0x30, 0xF0, 0x20, 0x6D, 0x24, 0x67, 0x06, 0xF1, +0x10, 0x4D, 0x84, 0x40, 0x30, 0x6E, 0x40, 0xEA, +0xC2, 0xA0, 0xFF, 0x6A, 0x91, 0x67, 0x04, 0x4E, +0xB0, 0x67, 0x4C, 0xEE, 0x80, 0x18, 0x1F, 0x68, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x41, 0xA4, 0x03, 0x2A, 0x85, 0x67, 0x80, 0x18, +0xBD, 0x68, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x43, 0xA4, 0x62, 0xA4, 0x25, 0x67, 0x40, 0x32, +0x6D, 0xEA, 0x30, 0x22, 0x44, 0xA4, 0x06, 0x5A, +0x20, 0x60, 0x03, 0x6D, 0xB8, 0xEA, 0x30, 0xF0, +0x20, 0x68, 0xC9, 0xF3, 0x14, 0x48, 0x00, 0x6B, +0x61, 0xC0, 0x60, 0xC0, 0x44, 0xC0, 0x04, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x61, 0xC8, 0x80, 0xF2, +0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0xE6, 0xF0, +0x1C, 0x4B, 0x85, 0x40, 0x03, 0x6E, 0x12, 0xED, +0xB5, 0xE3, 0x40, 0xEA, 0xC2, 0xA0, 0xFF, 0x6A, +0x91, 0x67, 0x04, 0x4E, 0xB0, 0x67, 0x4C, 0xEE, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6D, 0xC9, 0xF3, +0x14, 0x4D, 0x00, 0x6A, 0x41, 0xC5, 0x40, 0xC5, +0x00, 0x6A, 0x41, 0xCD, 0x91, 0x67, 0x04, 0x6E, +0x80, 0x18, 0x1F, 0x68, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x41, 0xA4, 0x07, 0x2A, +0x43, 0xA4, 0x62, 0xA4, 0x40, 0x32, 0x6D, 0xEA, +0x02, 0x22, 0x80, 0x18, 0xD6, 0x68, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x40, 0xA4, 0x01, 0x72, 0x07, 0x60, 0x03, 0x22, +0x02, 0x72, 0x07, 0x60, 0x08, 0x10, 0x80, 0x18, +0xF6, 0x68, 0x05, 0x10, 0x80, 0x18, 0xD1, 0x68, +0x02, 0x10, 0x80, 0x18, 0xB8, 0x68, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6B, 0xAC, 0xEB, 0x44, 0x67, 0x87, 0x67, +0x03, 0x23, 0x01, 0x73, 0x05, 0x60, 0x07, 0x10, +0xA2, 0x67, 0x80, 0x18, 0xFD, 0x68, 0x03, 0x10, +0xA2, 0x67, 0x80, 0x18, 0x99, 0x68, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF0, 0x70, 0x9A, 0x01, 0x6D, 0xFF, 0x6C, +0x40, 0xA3, 0xAC, 0xEA, 0x05, 0x22, 0x40, 0xA3, +0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, 0x70, 0x9A, +0xFF, 0x6C, 0x02, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0x04, 0x67, 0x4C, 0xE8, 0x30, 0x70, +0x26, 0x67, 0x4C, 0xED, 0x09, 0x61, 0x41, 0xA6, +0x0C, 0x72, 0x06, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xA9, 0xF4, 0x5C, 0xA2, 0x00, 0x6B, 0x44, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, 0x7C, 0x9A, +0xFF, 0x6C, 0x08, 0x6E, 0x40, 0xA3, 0xCB, 0xEE, +0x8C, 0xEA, 0xCC, 0xEA, 0x05, 0x6E, 0xCD, 0xEA, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0xE4, 0xF0, 0x40, 0x9A, 0x60, 0xA2, 0x0F, 0x6A, +0x6C, 0xEA, 0x04, 0x72, 0x1C, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF5, 0x48, 0x9A, 0x90, 0x67, +0xD1, 0x67, 0x40, 0xEA, 0x01, 0x72, 0x01, 0x6B, +0x23, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF5, +0x4C, 0x9A, 0x83, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0xA0, 0xF0, +0x64, 0x9A, 0x04, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, +0x64, 0xDA, 0x02, 0x6B, 0x11, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF5, 0x4C, 0x9A, 0x02, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xA0, 0xF0, 0x64, 0x9A, 0x04, 0x6C, +0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x03, 0x6B, +0x23, 0x70, 0x03, 0x60, 0x30, 0x70, 0x0A, 0x60, +0x2F, 0x10, 0x03, 0x73, 0x2D, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF5, 0x50, 0x9A, 0x00, 0x6C, +0x40, 0xEA, 0x1C, 0x10, 0x41, 0xA1, 0x0D, 0x72, +0x0E, 0x61, 0x01, 0x6A, 0x6E, 0xEA, 0x06, 0x2A, +0x30, 0xF0, 0x20, 0x6B, 0xA9, 0xF4, 0x5C, 0xC3, +0x01, 0x6D, 0x09, 0x10, 0x01, 0x6C, 0x30, 0xF0, +0x20, 0x6A, 0xA9, 0xF4, 0x9C, 0xC2, 0x01, 0x6A, +0x4E, 0xEB, 0x01, 0x5B, 0xB8, 0x67, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF5, 0x54, 0x9A, 0xC0, 0xA1, +0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xA0, 0xF0, 0x64, 0x9A, +0x04, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6B, 0x6C, 0xEC, 0x03, 0x5C, 0x58, 0x67, +0x6C, 0xEA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0x63, 0xF3, 0x54, 0xA3, +0x0B, 0x2A, 0x63, 0xF3, 0x55, 0xA3, 0x08, 0x2A, +0x63, 0xF3, 0x56, 0xA3, 0x05, 0x2A, 0x63, 0xF3, +0x77, 0xA3, 0x03, 0x23, 0x01, 0x6A, 0x20, 0xE8, +0x01, 0x6A, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, +0x30, 0xF0, 0x21, 0x6A, 0xF2, 0xF3, 0x4C, 0xA2, +0x0E, 0x72, 0x29, 0x61, 0x80, 0x18, 0x6B, 0x69, +0x26, 0x22, 0x30, 0xF0, 0x21, 0x6C, 0x32, 0xF4, +0x18, 0x4C, 0x04, 0x05, 0x80, 0x18, 0xC4, 0x56, +0x5D, 0x67, 0x92, 0xA2, 0x80, 0x18, 0x68, 0x69, +0x0A, 0x22, 0x5D, 0x67, 0x90, 0xA2, 0x80, 0x18, +0x68, 0x69, 0x05, 0x22, 0x5D, 0x67, 0x91, 0xA2, +0x80, 0x18, 0x68, 0x69, 0x10, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF3, 0x40, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF0, +0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF0, +0x50, 0x9A, 0x60, 0xDA, 0xF0, 0x17, 0x07, 0x97, +0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD0, 0x30, 0xF0, 0x21, 0x6A, 0xF2, 0xF3, +0x49, 0xA2, 0x01, 0x72, 0x4A, 0x61, 0x80, 0x18, +0x6B, 0x69, 0x47, 0x22, 0x30, 0xF0, 0x21, 0x68, +0x32, 0xF4, 0x18, 0x48, 0x90, 0x67, 0x05, 0x05, +0x80, 0x18, 0xC4, 0x56, 0x7D, 0x67, 0x56, 0xA3, +0x01, 0x72, 0x0E, 0x60, 0x03, 0x72, 0x0C, 0x60, +0x54, 0xA3, 0x01, 0x72, 0x09, 0x60, 0x03, 0x72, +0x07, 0x60, 0x55, 0xA3, 0x01, 0x72, 0x04, 0x60, +0x02, 0x72, 0x02, 0x60, 0x03, 0x72, 0x10, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x40, 0x9A, +0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF3, 0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF0, 0x50, 0x9A, 0x60, 0xDA, 0xF0, 0x17, +0x90, 0x67, 0x04, 0x05, 0x80, 0x18, 0xB2, 0x56, +0x7D, 0x67, 0x51, 0xA3, 0x01, 0x72, 0x05, 0x60, +0x03, 0x72, 0x03, 0x60, 0x50, 0xA3, 0x01, 0x72, +0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, +0x40, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF3, 0x74, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF0, 0x50, 0x9A, 0x60, 0xDA, +0xF0, 0x17, 0x09, 0x97, 0x08, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF5, 0x4C, 0x9A, +0x40, 0xEA, 0x01, 0x6B, 0x07, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF5, 0x48, 0x9A, 0x06, 0x6C, +0x40, 0xEA, 0x00, 0x6B, 0x05, 0x97, 0x43, 0x67, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0xC4, 0x67, 0xC3, 0xF3, 0x94, 0xA3, 0x0F, 0x6D, +0xFF, 0x6A, 0x86, 0x34, 0xAC, 0xEC, 0x4C, 0xEC, +0x0C, 0x6D, 0xB8, 0xEC, 0x4C, 0xEE, 0x12, 0xED, +0x6D, 0xE5, 0xC3, 0xF3, 0xBF, 0xA3, 0x07, 0x6B, +0xAC, 0xEB, 0x4C, 0xEB, 0x01, 0x73, 0x2E, 0x60, +0x05, 0x23, 0x02, 0x73, 0x03, 0x60, 0x03, 0x73, +0x29, 0x60, 0x3E, 0x10, 0x0C, 0x6B, 0x78, 0xEC, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x01, 0x6D, 0x12, 0xEC, 0x51, 0xE4, 0xC3, 0xF3, +0x7F, 0xA4, 0x76, 0x33, 0xAC, 0xEB, 0x14, 0x2B, +0xE3, 0xF3, 0xA3, 0xA4, 0x0F, 0x6A, 0x4B, 0xEA, +0xAC, 0xEA, 0xE3, 0xF3, 0x43, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF5, 0x98, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0x04, 0xD3, +0x00, 0x6D, 0x01, 0x6F, 0x40, 0xEA, 0x1C, 0x10, +0x02, 0x6B, 0xC3, 0xF3, 0x78, 0xC2, 0xE3, 0xF3, +0x80, 0xA4, 0x0D, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x02, 0x6B, 0xC3, 0xF3, +0x78, 0xC2, 0x0C, 0x6B, 0x78, 0xEC, 0x12, 0xEC, +0x49, 0xE4, 0xE3, 0xF3, 0x80, 0xA2, 0x30, 0xF0, +0x20, 0x6A, 0x92, 0x34, 0x80, 0xF5, 0x4C, 0x9A, +0x91, 0xE6, 0xFF, 0x6B, 0x6C, 0xEC, 0x40, 0xEA, +0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x0B, 0xF1, 0x5F, 0xA2, 0xC4, 0x67, 0x08, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, +0xFF, 0x6C, 0x51, 0x4C, 0x00, 0x6D, 0x40, 0xEA, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, +0xC3, 0xF3, 0x34, 0xA0, 0xC3, 0xF3, 0xB8, 0xA0, +0x0F, 0x6B, 0x26, 0x31, 0xFF, 0x6A, 0x6C, 0xE9, +0x01, 0x75, 0x4C, 0xEC, 0x4C, 0xE9, 0x38, 0x61, +0x0C, 0x6D, 0xB8, 0xE9, 0x12, 0xED, 0x15, 0xE5, +0xE3, 0xF3, 0xC0, 0xA5, 0xCC, 0xEB, 0x8E, 0xEB, +0x2F, 0x2B, 0xE3, 0xF3, 0xC3, 0xA5, 0x01, 0x6B, +0xCC, 0xEB, 0x4C, 0xEB, 0x29, 0x23, 0xFF, 0xF6, +0x1F, 0x4A, 0xCC, 0xEA, 0xE3, 0xF3, 0x43, 0xC5, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x44, 0x9A, +0x01, 0x6D, 0x40, 0xEA, 0x14, 0x22, 0x34, 0x6A, +0x58, 0xE9, 0x02, 0x6C, 0xB1, 0x67, 0x12, 0xEA, +0x09, 0xE2, 0x23, 0xF5, 0x70, 0x9A, 0x01, 0x4B, +0x23, 0xF5, 0x70, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF5, 0x40, 0x9A, 0x40, 0xEA, 0x02, 0x6A, +0xC3, 0xF3, 0x58, 0xC0, 0x09, 0x10, 0x34, 0x6A, +0x58, 0xE9, 0x12, 0xE9, 0x01, 0xE1, 0x23, 0xF5, +0x54, 0x98, 0x01, 0x4A, 0x23, 0xF5, 0x54, 0xD8, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0x6B, 0xF0, 0x08, 0x48, 0xC3, 0xF3, 0x74, 0xA0, +0x01, 0x6A, 0xFF, 0x69, 0x6C, 0xEA, 0x24, 0x22, +0xC3, 0xF3, 0x55, 0xA0, 0x20, 0x4A, 0xC3, 0xF3, +0x55, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF5, +0x48, 0x9A, 0x40, 0xEA, 0xC3, 0xF3, 0x54, 0xA0, +0x0F, 0x6B, 0xC3, 0xF3, 0x95, 0xA0, 0x46, 0x32, +0x6C, 0xEA, 0xA0, 0xF0, 0x76, 0xA0, 0x96, 0x34, +0x2C, 0xEA, 0x82, 0xEB, 0x0D, 0x61, 0x0C, 0x6B, +0x78, 0xEA, 0x12, 0xEA, 0x01, 0xE2, 0xE3, 0xF3, +0x80, 0xA0, 0xC3, 0xF3, 0x5E, 0xA0, 0x92, 0x34, +0x93, 0xE2, 0x2C, 0xEC, 0x80, 0x18, 0xC5, 0x69, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xC3, 0xF3, 0x74, 0xA2, 0x80, 0x6C, +0x8B, 0xEC, 0x6C, 0xEC, 0xFF, 0x6B, 0x6C, 0xEC, +0x6D, 0x24, 0xC3, 0xF3, 0xF7, 0xA2, 0x0F, 0x6D, +0x10, 0x6C, 0xC7, 0x67, 0xAC, 0xEE, 0x01, 0x4E, +0x8B, 0xEC, 0xAC, 0xEE, 0xEC, 0xEC, 0xCD, 0xEC, +0xA0, 0xF0, 0xD6, 0xA2, 0xC3, 0xF3, 0x97, 0xC2, +0xAC, 0xEC, 0xC2, 0xEC, 0x5B, 0x61, 0xA0, 0xF0, +0xB9, 0xA2, 0x01, 0x6C, 0xAC, 0xEC, 0x6C, 0xEC, +0x15, 0x24, 0xFF, 0xF6, 0x1F, 0x4B, 0xAC, 0xEB, +0xA0, 0xF0, 0x79, 0xC2, 0xE3, 0xF4, 0x78, 0xA2, +0xA0, 0xF0, 0x75, 0xC2, 0xE3, 0xF4, 0x7B, 0xA2, +0xA0, 0xF0, 0x76, 0xC2, 0xE3, 0xF4, 0x79, 0xA2, +0xC3, 0xF3, 0x7E, 0xC2, 0xE3, 0xF4, 0x7A, 0xA2, +0xE3, 0xF3, 0x6A, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xC3, 0xF3, 0x94, 0xA2, +0x1E, 0x6B, 0x8C, 0xEB, 0x02, 0x73, 0x05, 0x61, +0x63, 0xF5, 0x70, 0xA2, 0x01, 0x4B, 0x63, 0xF5, +0x70, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, +0x48, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, +0x08, 0x48, 0x08, 0x6C, 0x40, 0xEA, 0xC3, 0xF3, +0x74, 0xA0, 0x1F, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xC3, 0xF3, 0x54, 0xC0, 0xC3, 0xF3, 0x54, 0xA0, +0x0F, 0x6B, 0x46, 0x32, 0x6C, 0xEA, 0x0C, 0x6B, +0x78, 0xEA, 0x12, 0xEA, 0x09, 0xE2, 0xE3, 0xF3, +0x80, 0xA2, 0xA0, 0xF0, 0x55, 0xA0, 0x92, 0x34, +0x93, 0xE2, 0xFF, 0x6A, 0x4C, 0xEC, 0x80, 0x18, +0xC5, 0x69, 0xC3, 0xF3, 0x77, 0xA0, 0x10, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xC3, 0xF3, 0x75, 0xA0, +0xC3, 0xF3, 0x57, 0xC0, 0x1F, 0x6A, 0x6C, 0xEA, +0xC3, 0xF3, 0x55, 0xC0, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0xA0, 0xF0, 0x94, 0xA3, 0x01, 0x6A, 0xFF, 0x6E, +0x8C, 0xEA, 0x20, 0x22, 0xC3, 0xF3, 0xF5, 0xA3, +0x1F, 0x6C, 0xA7, 0x67, 0x8C, 0xED, 0x45, 0x67, +0xCC, 0xEA, 0x18, 0x22, 0x20, 0x6A, 0x1F, 0x4D, +0x4B, 0xEA, 0x8C, 0xED, 0xEC, 0xEA, 0xAD, 0xEA, +0xC3, 0xF3, 0x55, 0xC3, 0x8C, 0xEA, 0xCC, 0xEA, +0x0D, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF5, 0x84, 0x9B, +0x00, 0xF3, 0x4C, 0x9A, 0x00, 0x6D, 0x14, 0x6E, +0x01, 0x6F, 0x40, 0xEA, 0x07, 0x97, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xF7, 0x63, 0x11, 0x62, +0x10, 0xD1, 0x0F, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x61, 0xA4, 0x24, 0x67, 0x00, 0xF4, 0x58, 0x9A, +0x80, 0xA4, 0x0F, 0x6D, 0x6C, 0xED, 0x72, 0x36, +0x40, 0xEA, 0x62, 0xA1, 0x01, 0x6A, 0x72, 0x30, +0x4C, 0xEB, 0x4F, 0x23, 0x30, 0xF0, 0x20, 0x6B, +0x4E, 0xF4, 0x61, 0xA3, 0x6C, 0xEA, 0xFF, 0x6B, +0x6C, 0xEA, 0x00, 0x6B, 0x0D, 0xD3, 0x38, 0x2A, +0x44, 0x10, 0x1F, 0x6D, 0xB8, 0xE8, 0x0D, 0x96, +0x0C, 0x6A, 0x12, 0xED, 0x58, 0xEE, 0x0C, 0x96, +0x12, 0xEA, 0x55, 0xE5, 0xD5, 0xE5, 0x89, 0xE2, +0xE0, 0xF6, 0x1E, 0x4D, 0x69, 0xE2, 0xA8, 0x35, +0xC9, 0xE2, 0x75, 0xE5, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF6, 0x70, 0x9B, 0xA2, 0x9D, 0x0D, 0x96, +0x63, 0xF4, 0xE0, 0xA2, 0x30, 0xF0, 0x21, 0x6C, +0x32, 0xF4, 0x18, 0x4C, 0x40, 0xEB, 0x0C, 0x92, +0x01, 0x4A, 0x0C, 0xD2, 0x0C, 0x93, 0xFF, 0x6A, +0x4C, 0xEB, 0x0C, 0xD3, 0x7C, 0x6C, 0x98, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0x0C, 0x95, 0x12, 0xEC, 0x69, 0xE4, 0x63, 0xF4, +0x58, 0xA2, 0x43, 0xED, 0xCE, 0x61, 0x0D, 0x96, +0xFF, 0x6A, 0x01, 0x4E, 0x4C, 0xEE, 0x0D, 0xD6, +0x30, 0xF0, 0x20, 0x6A, 0x4E, 0xF4, 0x41, 0xA2, +0x0F, 0x6B, 0x46, 0x32, 0x6C, 0xEA, 0x0D, 0x93, +0x42, 0xEB, 0x03, 0x60, 0x00, 0x6D, 0x0C, 0xD5, +0xE1, 0x17, 0x62, 0xA1, 0x02, 0x6A, 0x6C, 0xEA, +0x08, 0x22, 0x00, 0x6A, 0xDD, 0x67, 0x58, 0xC6, +0x04, 0x04, 0x04, 0xD2, 0x05, 0xD2, 0x80, 0x18, +0xA5, 0x15, 0x7D, 0x67, 0x10, 0x6A, 0x5C, 0xC3, +0x01, 0x6A, 0x55, 0xCB, 0x40, 0xA1, 0x07, 0x04, +0x5E, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x5C, 0x9A, 0x40, 0xEA, 0x11, 0x97, 0x10, 0x91, +0x0F, 0x90, 0x09, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x04, 0x67, 0x00, 0x18, 0x8D, 0xD5, 0x05, 0xD2, +0x80, 0xA0, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xE3, 0xF3, 0x84, 0xCA, 0x81, 0xA0, +0xC3, 0xF3, 0xF9, 0xA2, 0x02, 0x6D, 0xE3, 0xF3, +0x90, 0xCA, 0x82, 0xA0, 0x01, 0x6E, 0xAB, 0xED, +0xE3, 0xF3, 0x9C, 0xCA, 0x83, 0xA0, 0xEC, 0xED, +0x70, 0x67, 0xCC, 0xEC, 0x8D, 0xED, 0xC3, 0xF3, +0xB9, 0xC2, 0xE3, 0xA0, 0x1F, 0x6C, 0x8B, 0xEC, +0xF2, 0x37, 0xE4, 0x37, 0xAC, 0xEC, 0xED, 0xEC, +0xC3, 0xF3, 0x99, 0xC2, 0xCC, 0xEC, 0xA0, 0xF0, +0x11, 0x24, 0x30, 0xF0, 0x20, 0x6A, 0xCE, 0xF5, +0x1C, 0x4A, 0x00, 0x6D, 0xB1, 0xE3, 0x05, 0x96, +0x84, 0xA4, 0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, +0x08, 0x48, 0x91, 0xE6, 0xFF, 0xF7, 0x1F, 0x6E, +0xCC, 0xEC, 0x30, 0xF0, 0x20, 0x6E, 0x03, 0xF2, +0xC4, 0x9E, 0x80, 0xCE, 0x30, 0xF0, 0x20, 0x6E, +0x63, 0xF1, 0xDC, 0x9E, 0x9C, 0x34, 0xDD, 0xE4, +0xE0, 0xA7, 0xE0, 0xC2, 0xE1, 0x44, 0xDD, 0xE7, +0xE0, 0xA7, 0xE1, 0xC2, 0xE2, 0x44, 0xDD, 0xE7, +0xE0, 0xA7, 0xE2, 0xC2, 0xE3, 0x44, 0xD9, 0xE7, +0x44, 0x6F, 0xF8, 0xED, 0xC0, 0xA6, 0xC3, 0xC2, +0x30, 0xF0, 0x20, 0x6E, 0x83, 0xF6, 0xD0, 0x9E, +0xD9, 0xE4, 0x12, 0xEF, 0xFD, 0xE0, 0x30, 0xF0, +0x20, 0x68, 0x83, 0xF3, 0x10, 0x98, 0x63, 0xF5, +0x18, 0x4F, 0x11, 0xE4, 0x00, 0xA6, 0x01, 0x4E, +0x8A, 0xEE, 0x00, 0xC7, 0x01, 0x4F, 0xFA, 0x61, +0x01, 0x4D, 0x02, 0x75, 0x44, 0x4A, 0xC2, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF6, 0x00, 0x4A, +0x00, 0x6D, 0x44, 0x68, 0x18, 0xED, 0x01, 0x6F, +0xC1, 0x45, 0xEC, 0xEE, 0xD9, 0xE3, 0xE4, 0xA6, +0x05, 0x96, 0xFF, 0x6C, 0xAC, 0xEC, 0xDD, 0xE7, +0xFF, 0xF7, 0x1F, 0x6E, 0xCC, 0xEF, 0x30, 0xF0, +0x20, 0x6E, 0x03, 0xF2, 0xC4, 0x9E, 0xE0, 0xCE, +0x30, 0xF0, 0x20, 0x6E, 0x6B, 0xF0, 0x08, 0x4E, +0x12, 0xE8, 0x01, 0xE6, 0x30, 0xF0, 0x20, 0x6E, +0x63, 0xF1, 0xDC, 0x9E, 0xFC, 0x37, 0x63, 0xF5, +0x18, 0x48, 0xD9, 0xE7, 0x04, 0xD6, 0x06, 0xD3, +0x20, 0xA0, 0x04, 0x93, 0xFF, 0x6E, 0x25, 0xE4, +0xCC, 0xE9, 0x01, 0x48, 0x20, 0xC3, 0x4A, 0xE8, +0x01, 0x4B, 0x04, 0xD3, 0xF5, 0x61, 0x30, 0xF0, +0x20, 0x69, 0x63, 0xF1, 0x1C, 0x49, 0x20, 0x99, +0x07, 0x47, 0x39, 0x48, 0x21, 0xE0, 0xBF, 0xF7, +0x3E, 0xA2, 0x06, 0x93, 0x01, 0x4D, 0x02, 0x49, +0x25, 0xE4, 0xCC, 0xE9, 0x20, 0xC0, 0x30, 0xF0, +0x20, 0x68, 0x63, 0xF1, 0x1C, 0x48, 0x00, 0x98, +0x27, 0x47, 0x3A, 0x49, 0x05, 0xE1, 0x19, 0x65, +0xBF, 0xF7, 0x3F, 0xA2, 0x18, 0x67, 0x42, 0x4F, +0x02, 0x49, 0x25, 0xE4, 0xCC, 0xE9, 0x20, 0xC0, +0x30, 0xF0, 0x20, 0x69, 0x63, 0xF1, 0x1C, 0x49, +0x20, 0x99, 0x02, 0x75, 0x21, 0xE7, 0xBF, 0xF7, +0x3C, 0xA2, 0x03, 0x49, 0x25, 0xE4, 0xCC, 0xE9, +0x20, 0xC0, 0x30, 0xF0, 0x20, 0x68, 0x04, 0xF1, +0x00, 0x98, 0x1D, 0xE7, 0xBF, 0xF7, 0x1D, 0xA2, +0x44, 0x4A, 0x03, 0x48, 0x11, 0xE4, 0xCC, 0xEC, +0x80, 0xC7, 0x97, 0x61, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x10, 0xF0, 0x24, 0x6D, +0x05, 0x6C, 0x77, 0xF2, 0x1D, 0x4D, 0x00, 0x18, +0xF6, 0xC1, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x60, 0xA4, 0x0F, 0x69, 0x51, 0x67, 0x6C, 0xEA, +0x04, 0xD2, 0x10, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xFF, 0x6B, 0x6C, 0xEA, 0xF0, 0x72, 0x04, 0x67, +0x37, 0x61, 0x04, 0x92, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0xFF, 0x4A, 0xC3, 0xF3, +0xB4, 0xA3, 0x2C, 0xEA, 0x44, 0x34, 0x1F, 0x6A, +0x4B, 0xEA, 0xAC, 0xEA, 0x8D, 0xEA, 0xC3, 0xF3, +0x54, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, +0x44, 0x9A, 0x04, 0x94, 0x40, 0xEA, 0x01, 0x72, +0x0D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, +0x40, 0x9A, 0x00, 0x6C, 0xA4, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, 0x48, 0x9A, +0x02, 0x6C, 0x05, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF5, 0x48, 0x9A, 0x04, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xC3, 0xF3, 0x94, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xC3, 0xF3, 0x74, 0xC2, 0xC1, 0x10, +0x04, 0x93, 0x0C, 0x6A, 0x30, 0xF0, 0x20, 0x6C, +0x58, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0x4E, 0xF4, 0x04, 0x4C, 0xA1, 0x40, +0x05, 0x6E, 0x12, 0xEB, 0x71, 0xE4, 0x05, 0xD3, +0x40, 0xEA, 0x05, 0x94, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x4D, 0xE4, 0xE3, 0xF3, +0x80, 0xA3, 0xFF, 0x6D, 0x92, 0x32, 0xAC, 0xEA, +0x05, 0x2A, 0x8C, 0xE9, 0x20, 0x6A, 0x4D, 0xE9, +0xE3, 0xF3, 0x20, 0xC3, 0x04, 0x94, 0x0C, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x78, 0xEC, 0x6B, 0xF0, +0x08, 0x4A, 0xE0, 0xF3, 0x08, 0x6C, 0x12, 0xEB, +0x4D, 0xE3, 0xC3, 0xF3, 0xBE, 0xA3, 0xA0, 0x35, +0xA8, 0x35, 0x9A, 0xED, 0x01, 0x2C, 0xE5, 0xE8, +0x12, 0xEC, 0xC3, 0xF3, 0x9E, 0xC3, 0x60, 0xA0, +0x04, 0x94, 0x72, 0x33, 0xFF, 0x4B, 0x8E, 0xEB, +0x80, 0xF0, 0x03, 0x2B, 0xA0, 0xF0, 0x9A, 0xAA, +0x0F, 0xF7, 0x01, 0x4B, 0x8C, 0xEB, 0x07, 0x23, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, 0x48, 0x9A, +0x05, 0x6C, 0x40, 0xEA, 0x8E, 0x10, 0xC3, 0xF3, +0x74, 0xA2, 0x1F, 0x6C, 0x8B, 0xEC, 0x6C, 0xEC, +0xC3, 0xF3, 0x94, 0xC2, 0xC3, 0xF3, 0xD6, 0xA2, +0xA0, 0xA0, 0x10, 0x6B, 0x6B, 0xEB, 0xB2, 0x35, +0xCC, 0xEB, 0xAD, 0xEB, 0xC3, 0xF3, 0xBF, 0xA2, +0xC3, 0xF3, 0x76, 0xC2, 0x61, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xBA, 0x35, 0xA0, 0xF0, 0x94, 0xA2, +0xB4, 0x35, 0xAD, 0xEB, 0x01, 0x6D, 0xAC, 0xEC, +0xFF, 0x6E, 0xCC, 0xEC, 0x0B, 0x24, 0x7F, 0x6C, +0x6C, 0xEC, 0xC3, 0xF3, 0x94, 0xC2, 0xC3, 0xF3, +0x95, 0xA2, 0x20, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0xAD, 0xEB, 0x0A, 0x10, 0x80, 0x6C, 0x8B, 0xEC, +0x6D, 0xEC, 0xC3, 0xF3, 0x94, 0xC2, 0xC3, 0xF3, +0x95, 0xA2, 0x20, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, +0xC3, 0xF3, 0x75, 0xC2, 0xC3, 0xF3, 0x74, 0xA0, +0x01, 0x6A, 0x30, 0xF0, 0x20, 0x6C, 0x6D, 0xEA, +0xC3, 0xF3, 0x54, 0xC0, 0xC3, 0xF3, 0x79, 0xA0, +0x00, 0x6A, 0xC3, 0xF3, 0x58, 0xC0, 0x21, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xC3, 0xF3, 0x59, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, +0x00, 0x6D, 0x78, 0x6E, 0x6E, 0xF5, 0x04, 0x4C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, +0x48, 0x9A, 0x03, 0x6C, 0x0F, 0x69, 0x40, 0xEA, +0xE3, 0xF3, 0x80, 0xA0, 0x2C, 0xEC, 0x00, 0x18, +0x34, 0xE7, 0xE3, 0xF3, 0x80, 0xA0, 0x2C, 0xEC, +0x00, 0x18, 0xFB, 0xE6, 0xE3, 0xF3, 0x8C, 0xA0, +0x2C, 0xEC, 0x00, 0x18, 0xFB, 0xE6, 0xE3, 0xF3, +0x80, 0xA0, 0x2C, 0xEC, 0x00, 0x18, 0x05, 0xE7, +0xE3, 0xF3, 0x8C, 0xA0, 0x2C, 0xEC, 0x00, 0x18, +0x05, 0xE7, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF5, +0x84, 0x9A, 0x00, 0x18, 0xB3, 0xE5, 0x10, 0xF0, +0x32, 0x6C, 0x15, 0xF1, 0x15, 0x4C, 0x00, 0x18, +0xB3, 0xE5, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF5, +0x80, 0x9A, 0x00, 0x18, 0xB3, 0xE5, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF5, 0x98, 0x9A, 0x00, 0x18, +0xB3, 0xE5, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xF1, 0x63, 0x1D, 0x62, +0x1C, 0xD1, 0x1B, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0xFF, 0x6A, 0x6B, 0xF0, 0x08, 0x49, 0x4C, 0xEC, +0xC3, 0xF3, 0x54, 0xA1, 0x0F, 0x6B, 0xFF, 0x6D, +0x46, 0x32, 0x6C, 0xEA, 0xAC, 0xEA, 0x0C, 0x68, +0x18, 0xEA, 0x18, 0xD2, 0x12, 0xE8, 0x21, 0xE0, +0xE3, 0xF3, 0x40, 0xA0, 0x6C, 0xEA, 0x8E, 0xEA, +0x7E, 0x2A, 0xE3, 0xF3, 0x63, 0xA0, 0x01, 0x6D, +0x72, 0x32, 0xAC, 0xEA, 0xFF, 0x6D, 0xAC, 0xEA, +0x76, 0x22, 0x11, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xE3, 0xF3, 0x43, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF4, 0x44, 0x9A, 0x00, 0x6D, 0x40, 0xEA, +0x60, 0x2A, 0xC3, 0xF3, 0x3F, 0xA0, 0x01, 0x6A, +0xFF, 0x6B, 0x32, 0x31, 0x4C, 0xE9, 0x6C, 0xE9, +0x49, 0x29, 0xE3, 0xF3, 0x43, 0xA0, 0x56, 0x33, +0x02, 0x53, 0x44, 0x60, 0x10, 0x6B, 0x4D, 0xEB, +0xE3, 0xF3, 0x63, 0xC0, 0x0C, 0x04, 0x00, 0x6D, +0x30, 0x6E, 0x00, 0x18, 0x37, 0xD6, 0xE3, 0xF3, +0x44, 0xA8, 0xBD, 0x67, 0x40, 0xF0, 0x2A, 0xC5, +0x40, 0xF0, 0x48, 0xCD, 0x01, 0x6A, 0x4B, 0xEA, +0x40, 0xF0, 0x4B, 0xC5, 0xE3, 0xF3, 0x40, 0xA0, +0x0F, 0x6B, 0x04, 0x04, 0x6C, 0xEA, 0x40, 0xF0, +0x4C, 0xC5, 0x10, 0xF0, 0x32, 0x6A, 0x76, 0xF7, +0x1D, 0x4A, 0x0C, 0xD2, 0x10, 0xF0, 0x24, 0x6A, +0x97, 0xF1, 0x15, 0x4A, 0x0D, 0xD2, 0x10, 0x03, +0x00, 0x6A, 0x05, 0x10, 0x59, 0xE3, 0xC0, 0xA6, +0x55, 0xE4, 0x01, 0x4A, 0xC0, 0xC5, 0x20, 0x5A, +0xF9, 0x61, 0x0C, 0x94, 0x0D, 0x95, 0x0E, 0x96, +0x0F, 0x97, 0x0C, 0x69, 0x00, 0x18, 0x14, 0xE4, +0x18, 0x93, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x38, 0xEB, 0x12, 0xE9, 0x49, 0xE1, +0xE3, 0xF3, 0x63, 0xA2, 0x20, 0x4B, 0xE3, 0xF3, +0x63, 0xC2, 0x19, 0x10, 0x18, 0x93, 0x34, 0x69, +0x30, 0xF0, 0x20, 0x6A, 0x38, 0xEB, 0x6B, 0xF0, +0x08, 0x4A, 0x12, 0xE9, 0x49, 0xE1, 0x03, 0xF5, +0x7C, 0x9A, 0x01, 0x4B, 0x03, 0xF5, 0x7C, 0xDA, +0x0A, 0x10, 0x18, 0x93, 0x34, 0x6A, 0x58, 0xEB, +0x12, 0xEA, 0x25, 0xE2, 0x03, 0xF5, 0x58, 0x99, +0x01, 0x4A, 0x03, 0xF5, 0x58, 0xD9, 0x1D, 0x97, +0x1C, 0x91, 0x1B, 0x90, 0x0F, 0x63, 0x00, 0xEF, +0xF2, 0x63, 0x1B, 0x62, 0x1A, 0xD1, 0x19, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, +0xC3, 0xF3, 0x34, 0xA0, 0x0F, 0x6A, 0x0C, 0x04, +0x26, 0x31, 0x00, 0x6D, 0x30, 0x6E, 0x4C, 0xE9, +0x00, 0x18, 0x37, 0xD6, 0x0C, 0x6A, 0x58, 0xE9, +0x7D, 0x67, 0x04, 0x04, 0x12, 0xE9, 0x01, 0xE1, +0xE3, 0xF3, 0x44, 0xA8, 0x40, 0xF0, 0x48, 0xCB, +0x01, 0x6A, 0x4B, 0xEA, 0x40, 0xF0, 0x4B, 0xC3, +0xE3, 0xF3, 0x40, 0xA0, 0x0F, 0x6B, 0x6C, 0xEA, +0x7D, 0x67, 0x40, 0xF0, 0x4C, 0xC3, 0x10, 0xF0, +0x32, 0x6A, 0x76, 0xF7, 0x1D, 0x4A, 0x0C, 0xD2, +0x10, 0xF0, 0x24, 0x6A, 0x97, 0xF1, 0x15, 0x4A, +0x0D, 0xD2, 0x10, 0x03, 0x00, 0x6A, 0x05, 0x10, +0x59, 0xE3, 0xC0, 0xA6, 0x55, 0xE4, 0x01, 0x4A, +0xC0, 0xC5, 0x20, 0x5A, 0xF9, 0x61, 0x0F, 0x97, +0x0C, 0x94, 0x0D, 0x95, 0x0E, 0x96, 0x00, 0x18, +0x14, 0xE4, 0x1B, 0x97, 0x1A, 0x91, 0x19, 0x90, +0x0E, 0x63, 0x00, 0xEF, 0xF1, 0x63, 0x1D, 0x62, +0x1C, 0xD1, 0x1B, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0x6B, 0xF0, 0x08, 0x48, 0xC3, 0xF3, 0x54, 0xA0, +0x0F, 0x69, 0x46, 0x32, 0x2C, 0xEA, 0x18, 0xD2, +0xC3, 0xF3, 0x58, 0xA0, 0x03, 0x72, 0x71, 0x60, +0x0C, 0x04, 0x00, 0x6D, 0x30, 0x6E, 0x00, 0x18, +0x37, 0xD6, 0x18, 0x93, 0x0C, 0x6A, 0xBD, 0x67, +0x58, 0xEB, 0x04, 0x04, 0x10, 0x03, 0x12, 0xEA, +0x01, 0xE2, 0xE3, 0xF3, 0x44, 0xA8, 0x40, 0xF0, +0x48, 0xCD, 0x01, 0x6A, 0x40, 0xF0, 0x4A, 0xC5, +0x01, 0x6A, 0x4B, 0xEA, 0x40, 0xF0, 0x4B, 0xC5, +0xE3, 0xF3, 0x40, 0xA0, 0x4C, 0xE9, 0x10, 0xF0, +0x32, 0x6A, 0x76, 0xF7, 0x1D, 0x4A, 0x0C, 0xD2, +0x10, 0xF0, 0x24, 0x6A, 0x37, 0xF1, 0x09, 0x4A, +0x0D, 0xD2, 0x40, 0xF0, 0x2C, 0xC5, 0x00, 0x6A, +0x05, 0x10, 0x59, 0xE3, 0xC0, 0xA6, 0x55, 0xE4, +0x01, 0x4A, 0xC0, 0xC5, 0x20, 0x5A, 0xF9, 0x61, +0x0C, 0x94, 0x0D, 0x95, 0x0E, 0x96, 0x0F, 0x97, +0x00, 0x18, 0x14, 0xE4, 0x18, 0x95, 0x0C, 0x6B, +0x30, 0xF0, 0x20, 0x6C, 0x78, 0xED, 0x6B, 0xF0, +0x08, 0x4C, 0x12, 0xEB, 0x8D, 0xE3, 0xE3, 0xF3, +0x46, 0xC3, 0xE3, 0xF3, 0x46, 0xA3, 0x06, 0x22, +0xE3, 0xF3, 0x83, 0xA3, 0x01, 0x6A, 0x8D, 0xEA, +0xE3, 0xF3, 0x43, 0xC3, 0x18, 0x92, 0x0C, 0x6C, +0x30, 0xF0, 0x20, 0x6B, 0x98, 0xEA, 0x6B, 0xF0, +0x08, 0x4B, 0x07, 0x6E, 0x12, 0xEC, 0x71, 0xE4, +0xE3, 0xF3, 0xA3, 0xA4, 0xA6, 0x32, 0xCC, 0xEA, +0x01, 0x4A, 0xCC, 0xEA, 0x44, 0x36, 0x0F, 0x6A, +0x4B, 0xEA, 0xAC, 0xEA, 0xCD, 0xEA, 0xE3, 0xF3, +0x43, 0xC4, 0xC3, 0xF3, 0x58, 0xA3, 0x08, 0x2A, +0xE3, 0xF3, 0x80, 0xA4, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF5, 0x4C, 0x9A, 0x92, 0x34, 0x40, 0xEA, +0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x4E, 0xF4, +0x60, 0xC2, 0x1D, 0x97, 0x1C, 0x91, 0x1B, 0x90, +0x0F, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6C, +0x6B, 0xF0, 0x08, 0x4C, 0xC3, 0xF3, 0x14, 0xA4, +0x0F, 0x6F, 0x0C, 0x69, 0x06, 0x30, 0xEC, 0xE8, +0x38, 0xE8, 0x07, 0x6D, 0xFF, 0x6A, 0x12, 0xEB, +0x8D, 0xE3, 0xC3, 0xF3, 0xDF, 0xA3, 0xCC, 0xED, +0xC3, 0xF3, 0xD8, 0xA4, 0x02, 0x76, 0x06, 0x60, +0x03, 0x6A, 0xCE, 0xEA, 0x5C, 0x22, 0x01, 0x76, +0x54, 0x60, 0x5B, 0x10, 0x01, 0x75, 0x06, 0x60, +0x30, 0x25, 0x02, 0x75, 0x2E, 0x60, 0x03, 0x75, +0x38, 0x60, 0x53, 0x10, 0xC3, 0xF3, 0xD6, 0xA4, +0xA1, 0x40, 0x4C, 0xED, 0xCC, 0xEF, 0xAE, 0xEF, +0xEB, 0xEE, 0xED, 0xEE, 0xC0, 0xF7, 0xC3, 0x36, +0xCC, 0xED, 0x38, 0xED, 0x12, 0xE9, 0x85, 0xE1, +0xC3, 0xF3, 0x9E, 0xA1, 0x20, 0x5C, 0x0A, 0x61, +0xE3, 0xF3, 0x84, 0xAB, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x74, 0x9B, 0x4C, 0xEC, 0x0F, 0xF4, +0x00, 0x6D, 0x0E, 0x10, 0xC3, 0xF3, 0xBE, 0xA1, +0xE3, 0xF3, 0x84, 0xAB, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0x35, 0x40, 0xF4, 0x74, 0x9B, 0xA8, 0x35, +0x4C, 0xEC, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xED, +0x40, 0xEB, 0x0C, 0x6B, 0x78, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x12, 0xEB, +0x49, 0xE3, 0xE3, 0xF3, 0x86, 0xA2, 0x00, 0x18, +0xBB, 0xE4, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, +0x40, 0x9A, 0x02, 0x6C, 0xB0, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF5, 0x4C, 0x9A, +0x40, 0xEA, 0x0F, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF5, 0x48, 0x9A, 0x06, 0x6C, 0x40, 0xEA, +0x08, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, +0x54, 0x9A, 0x40, 0xEA, 0x02, 0x10, 0xC3, 0xF3, +0x58, 0xC4, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xC3, 0xF3, 0x74, 0xA2, +0x0C, 0x69, 0x66, 0x33, 0x06, 0xD3, 0x06, 0x94, +0x0F, 0x6B, 0x6C, 0xEC, 0x38, 0xEC, 0x06, 0xD4, +0x01, 0x6B, 0x12, 0xE9, 0x45, 0xE1, 0xC3, 0xF3, +0x1F, 0xA1, 0x12, 0x30, 0x6C, 0xE8, 0x23, 0x28, +0xE3, 0xF3, 0x63, 0xA1, 0x07, 0x6C, 0x66, 0x33, +0x8C, 0xEB, 0x02, 0x53, 0x1C, 0x60, 0x63, 0xF5, +0x72, 0xA2, 0x01, 0x4B, 0x63, 0xF5, 0x72, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, 0x58, 0x9A, +0x40, 0xEA, 0xE3, 0xF3, 0xC0, 0xA1, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF5, 0x88, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0xFF, 0x6B, +0xD2, 0x36, 0x04, 0xD0, 0x00, 0x6D, 0x6C, 0xEE, +0x01, 0x6F, 0x40, 0xEA, 0x31, 0x10, 0x06, 0x93, +0x0C, 0x69, 0x30, 0xF0, 0x20, 0x6A, 0x38, 0xEB, +0x6B, 0xF0, 0x08, 0x4A, 0x01, 0x6B, 0x12, 0xE9, +0x45, 0xE1, 0xC3, 0xF3, 0x1F, 0xA1, 0x0E, 0x30, +0x6C, 0xE8, 0x1F, 0x28, 0x63, 0xF5, 0x71, 0xA2, +0x01, 0x4B, 0x63, 0xF5, 0x71, 0xC2, 0xE3, 0xF3, +0x86, 0xA1, 0x00, 0x18, 0xBB, 0xE4, 0xE3, 0xF3, +0x06, 0xC1, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, +0x40, 0x9A, 0x06, 0x95, 0x02, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF5, 0x4C, 0x9A, +0x40, 0xEA, 0x0A, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF5, 0x48, 0x9A, 0x06, 0x6C, 0x40, 0xEA, +0x03, 0x10, 0x03, 0x6B, 0xC3, 0xF3, 0x78, 0xC2, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xE9, 0x63, 0x2D, 0x62, +0x2C, 0xD1, 0x2B, 0xD0, 0x00, 0x6A, 0x7D, 0x67, +0x20, 0xF0, 0x58, 0xC3, 0x0C, 0xD2, 0x0D, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, +0x40, 0xEA, 0x00, 0x6B, 0x60, 0xF1, 0x10, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xC3, 0xF3, 0xB4, 0xA2, 0x0F, 0x6C, 0x1F, 0x6E, +0xA6, 0x33, 0x8C, 0xEB, 0x23, 0x67, 0x01, 0x4B, +0x8C, 0xEB, 0xCB, 0xEE, 0x64, 0x33, 0xCC, 0xED, +0x6D, 0xED, 0xC3, 0xF3, 0xB4, 0xC2, 0xC3, 0xF3, +0xB4, 0xA2, 0xC3, 0xF3, 0x76, 0xA2, 0xFF, 0x6F, +0xA6, 0x30, 0x0E, 0xEB, 0x8C, 0xEB, 0xEC, 0xEB, +0xEC, 0xE9, 0x04, 0x2B, 0x66, 0x67, 0xAC, 0xEB, +0xC3, 0xF3, 0x74, 0xC2, 0x30, 0xF0, 0x20, 0x68, +0x6B, 0xF0, 0x08, 0x48, 0xC3, 0xF3, 0x54, 0xA0, +0x46, 0x32, 0x28, 0xD2, 0x28, 0x94, 0x0F, 0x6A, +0x4C, 0xEC, 0x28, 0xD4, 0x00, 0x18, 0x59, 0xDC, +0x28, 0x96, 0x30, 0xF0, 0x20, 0x6C, 0xA9, 0xF5, +0x10, 0x4C, 0xCC, 0x35, 0x95, 0xE5, 0x40, 0xDD, +0x2C, 0x32, 0x61, 0xDD, 0x91, 0xE2, 0x40, 0x9C, +0x61, 0x9C, 0x6D, 0xEA, 0x29, 0x22, 0x60, 0x9D, +0x40, 0x9C, 0x01, 0xE1, 0x03, 0xF5, 0x84, 0xA0, +0x4B, 0xE3, 0xE0, 0xF3, 0x08, 0x6B, 0x78, 0xEC, +0x12, 0xEC, 0x43, 0xEC, 0x06, 0x60, 0x7B, 0xEA, +0x01, 0x2B, 0xE5, 0xE8, 0x12, 0xEB, 0x03, 0xF5, +0x64, 0xC0, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, +0x08, 0x4B, 0x6D, 0xE1, 0x03, 0xF5, 0xA2, 0xA3, +0x03, 0x2D, 0xE0, 0xF3, 0x08, 0x6C, 0x06, 0x10, +0xE0, 0xF3, 0x08, 0x6C, 0x98, 0xED, 0x12, 0xED, +0xA3, 0xEA, 0x06, 0x60, 0x9B, 0xEA, 0x01, 0x2C, +0xE5, 0xE8, 0x12, 0xEA, 0x03, 0xF5, 0x42, 0xC3, +0x28, 0x92, 0x0C, 0x6C, 0x30, 0xF0, 0x20, 0x68, +0x98, 0xEA, 0x6B, 0xF0, 0x08, 0x48, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x58, 0x9A, 0x0F, 0x6D, +0x12, 0xEC, 0x11, 0xE4, 0xC3, 0xF3, 0x7D, 0xA4, +0xC3, 0xF3, 0x9C, 0xA4, 0x6C, 0xED, 0x72, 0x36, +0x40, 0xEA, 0x80, 0x18, 0xF7, 0x52, 0xC3, 0xF3, +0x79, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, 0x0F, 0x22, +0x28, 0x92, 0x44, 0x6D, 0x30, 0xF0, 0x21, 0x6C, +0xB8, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xCE, 0xF5, +0x1C, 0x4A, 0x32, 0xF4, 0x18, 0x4C, 0x12, 0xED, +0xB5, 0xE2, 0x80, 0x18, 0x46, 0x58, 0x0C, 0x68, +0x0C, 0x04, 0x80, 0x18, 0xA5, 0x15, 0x18, 0xE9, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x02, 0x6B, 0x6B, 0xEB, 0x01, 0x6E, 0x12, 0xE9, +0x45, 0xE1, 0xE3, 0xF3, 0x83, 0xA1, 0x8C, 0xEB, +0xE3, 0xF3, 0x63, 0xC1, 0x28, 0x93, 0x18, 0xEB, +0x11, 0x6B, 0x6B, 0xEB, 0x12, 0xE8, 0x41, 0xE0, +0xE3, 0xF3, 0x83, 0xA0, 0xC3, 0xF3, 0xBF, 0xA0, +0x8C, 0xEB, 0x1F, 0x6C, 0x8C, 0xEB, 0xE3, 0xF3, +0x63, 0xC0, 0xB6, 0x33, 0xCC, 0xEB, 0xFF, 0x6C, +0xA0, 0xF0, 0x01, 0x2B, 0xC3, 0xF3, 0xD9, 0xA2, +0x20, 0x6B, 0xCC, 0xEB, 0x8C, 0xEB, 0x4D, 0x23, +0x07, 0x69, 0xAC, 0xE9, 0x8C, 0xE9, 0x32, 0x29, +0x10, 0x04, 0x00, 0x6D, 0x30, 0x6E, 0x00, 0x18, +0x37, 0xD6, 0xE3, 0xF3, 0x44, 0xA8, 0x9D, 0x67, +0x40, 0xF0, 0x3A, 0xC4, 0x40, 0xF0, 0x58, 0xCC, +0x01, 0x6A, 0x4B, 0xEA, 0x40, 0xF0, 0x5B, 0xC4, +0xE3, 0xF3, 0x60, 0xA0, 0x0F, 0x6A, 0x6C, 0xEA, +0x40, 0xF0, 0x5C, 0xC4, 0x10, 0xF0, 0x32, 0x6A, +0x76, 0xF7, 0x1D, 0x4A, 0x10, 0xD2, 0x10, 0xF0, +0x24, 0x6A, 0x97, 0xF1, 0x15, 0x4A, 0x11, 0xD2, +0x04, 0x04, 0x00, 0x6A, 0x14, 0x03, 0x05, 0x10, +0x59, 0xE3, 0xC0, 0xA6, 0x55, 0xE4, 0x01, 0x4A, +0xC0, 0xC5, 0x20, 0x5A, 0xF9, 0x61, 0x10, 0x94, +0x11, 0x95, 0x12, 0x96, 0x13, 0x97, 0x00, 0x18, +0x14, 0xE4, 0x65, 0x10, 0x02, 0x6E, 0xCE, 0xE9, +0x62, 0x29, 0xC3, 0xF3, 0xC8, 0x9A, 0xC3, 0xF3, +0x44, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF5, +0x9C, 0x9B, 0x5B, 0xE6, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF3, 0x4C, 0x9A, 0xC2, 0x36, 0x04, 0xD1, +0x00, 0x6D, 0xCE, 0x36, 0x01, 0x6F, 0x40, 0xEA, +0x4E, 0x10, 0x07, 0x6A, 0xAC, 0xEA, 0x8C, 0xEA, +0x02, 0x22, 0x02, 0x72, 0x48, 0x61, 0x1C, 0x04, +0x30, 0x6E, 0x00, 0x6D, 0x00, 0x18, 0x37, 0xD6, +0x28, 0x94, 0x0C, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x78, 0xEC, 0x6B, 0xF0, 0x08, 0x4A, 0xDD, 0x67, +0x04, 0x04, 0x12, 0xEB, 0x49, 0xE3, 0xE3, 0xF3, +0x64, 0xAA, 0x80, 0xF0, 0x68, 0xCE, 0x01, 0x6B, +0x6B, 0xEB, 0x80, 0xF0, 0x6B, 0xC6, 0xE3, 0xF3, +0x60, 0xA2, 0x0F, 0x6A, 0x6C, 0xEA, 0x80, 0xF0, +0x4C, 0xC6, 0x10, 0xF0, 0x32, 0x6A, 0x76, 0xF7, +0x1D, 0x4A, 0x1C, 0xD2, 0x10, 0xF0, 0x24, 0x6A, +0x97, 0xF1, 0x15, 0x4A, 0x1D, 0xD2, 0x20, 0x03, +0x00, 0x6A, 0x05, 0x10, 0x59, 0xE3, 0xC0, 0xA6, +0x55, 0xE4, 0x01, 0x4A, 0xC0, 0xC5, 0x20, 0x5A, +0xF9, 0x61, 0x1C, 0x94, 0x1D, 0x95, 0x1E, 0x96, +0x1F, 0x97, 0x00, 0x18, 0x14, 0xE4, 0x28, 0x94, +0x0C, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x78, 0xEC, +0x6B, 0xF0, 0x08, 0x4A, 0x12, 0xEB, 0x4D, 0xE3, +0xE3, 0xF3, 0x83, 0xA3, 0x10, 0x6A, 0x8D, 0xEA, +0x20, 0x4A, 0xE3, 0xF3, 0x43, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x28, 0x95, 0x80, 0xF5, 0x40, 0x9A, +0x01, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0x6B, 0x6B, 0xF0, 0x08, 0x4A, 0xC3, 0xF3, +0x78, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, +0x48, 0x9A, 0x00, 0x6C, 0x40, 0xEA, 0x01, 0x6B, +0x2D, 0x97, 0x2C, 0x91, 0x2B, 0x90, 0x43, 0x67, +0x17, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xC0, 0xF7, 0x11, 0x5D, +0x04, 0x67, 0x00, 0x6A, 0x39, 0x60, 0x82, 0xA4, +0xA4, 0xA0, 0x00, 0x18, 0xE6, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xA8, 0xC3, 0xA0, 0xA0, 0xF2, +0x54, 0x9A, 0x04, 0x6F, 0x01, 0x6D, 0x40, 0xEA, +0x22, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, +0x58, 0x9A, 0x82, 0xA0, 0xC4, 0xA0, 0xB1, 0x67, +0x40, 0xEA, 0x82, 0xA0, 0x00, 0x18, 0x49, 0xD2, +0x30, 0xF0, 0x20, 0x6B, 0x2E, 0xF4, 0x7C, 0xA3, +0x0F, 0x6C, 0x66, 0x33, 0x8C, 0xEB, 0x34, 0x6C, +0x98, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0x6E, 0xF5, +0x10, 0x4C, 0x12, 0xEB, 0x6D, 0xE4, 0x04, 0x22, +0x86, 0x9B, 0x01, 0x4C, 0x86, 0xDB, 0x03, 0x10, +0x80, 0x9B, 0x01, 0x4C, 0x80, 0xDB, 0xA2, 0x67, +0x91, 0x67, 0x00, 0x18, 0x83, 0xEF, 0xA4, 0xA0, +0x91, 0x67, 0x00, 0x18, 0x92, 0xEF, 0x01, 0x6A, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x84, 0xF0, 0x54, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0x80, 0xA2, 0xE7, 0xF1, +0xD4, 0xA3, 0xE7, 0xF1, 0x9C, 0xC3, 0xA0, 0xAA, +0x01, 0xF0, 0x00, 0x6C, 0xAC, 0xEC, 0x83, 0x35, +0x03, 0x6C, 0xAE, 0x35, 0x8B, 0xEC, 0xA4, 0x35, +0xCC, 0xEC, 0xAD, 0xEC, 0xE7, 0xF1, 0x94, 0xC3, +0x30, 0xF0, 0x20, 0x6C, 0x04, 0xF1, 0x84, 0x9C, +0xA0, 0xAC, 0xE7, 0xF1, 0xBE, 0xCB, 0xA0, 0xAA, +0xBF, 0xF7, 0x1F, 0x6B, 0xAC, 0xEB, 0x60, 0xCA, +0xA0, 0xAA, 0x7F, 0xF7, 0x1F, 0x6B, 0xAC, 0xEB, +0x60, 0xCA, 0xC0, 0xAA, 0xFE, 0xF7, 0x1F, 0x6B, +0xFF, 0xF7, 0x1F, 0x6D, 0xCC, 0xEB, 0x60, 0xCA, +0x40, 0xAC, 0xFF, 0x6B, 0x21, 0x4B, 0xAC, 0xEA, +0x6D, 0xEA, 0xAC, 0xEA, 0x40, 0xCC, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE7, 0xF1, 0x9C, 0xA2, +0x84, 0xF0, 0x74, 0x9B, 0x01, 0x6E, 0x80, 0xC3, +0x30, 0xF0, 0x20, 0x6C, 0xE7, 0xF1, 0xBE, 0xAA, +0x04, 0xF1, 0x84, 0x9C, 0xA0, 0xCC, 0xE7, 0xF1, +0x54, 0xA2, 0x80, 0xAB, 0xFF, 0xF7, 0x1F, 0x6D, +0x46, 0x32, 0xCC, 0xEA, 0xAC, 0xEC, 0x40, 0x32, +0xFE, 0xF7, 0x1E, 0x4E, 0x4C, 0x32, 0xCC, 0xEC, +0x8D, 0xEA, 0xAC, 0xEA, 0x40, 0xCB, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x07, 0xF3, +0x90, 0xA2, 0x01, 0x6B, 0x00, 0x68, 0x8D, 0xEB, +0x07, 0xF3, 0x70, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x48, 0x9A, 0x90, 0x67, 0x04, 0x05, +0x40, 0xEA, 0x01, 0x72, 0x0E, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF6, 0x40, 0x9A, 0x9D, 0x67, +0x70, 0xA4, 0x09, 0xE2, 0x01, 0x48, 0x00, 0xF2, +0x00, 0x70, 0x60, 0xC2, 0xEB, 0x61, 0x00, 0x6A, +0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0x07, 0xF3, 0x90, 0xA2, 0x02, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0x07, 0xF3, 0x70, 0xC2, +0x03, 0x6A, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xAD, 0xF6, 0x04, 0x4A, 0x03, 0x6B, 0x4C, 0xEB, +0x03, 0x2B, 0x00, 0xF2, 0x00, 0x6C, 0x09, 0x10, +0x04, 0x6B, 0x03, 0x4A, 0x6B, 0xEB, 0x30, 0xF0, +0x20, 0x6C, 0x6C, 0xEA, 0xAE, 0xF0, 0x04, 0x4C, +0x53, 0xE4, 0xF8, 0x4C, 0x04, 0x6E, 0xCB, 0xEE, +0x30, 0xF0, 0x20, 0x6B, 0x91, 0xE2, 0x6B, 0xF0, +0x08, 0x4B, 0x00, 0x6D, 0xCC, 0xEC, 0x67, 0xF3, +0x90, 0xDB, 0x67, 0xF3, 0xAC, 0xDB, 0x67, 0xF3, +0x48, 0xDB, 0xA1, 0xDC, 0x67, 0xF3, 0xD0, 0x9B, +0x53, 0xE4, 0xA0, 0xDE, 0x81, 0xDA, 0x67, 0xF3, +0xB0, 0x9B, 0xA0, 0xDA, 0x07, 0xF3, 0x94, 0xDB, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x21, 0x6A, +0xD2, 0xF3, 0x10, 0x4A, 0x01, 0x10, 0x43, 0x67, +0x60, 0x9A, 0x83, 0xEB, 0xFC, 0x61, 0x61, 0x9A, +0x75, 0xE2, 0x8E, 0xED, 0x04, 0x2D, 0x81, 0x9C, +0x8D, 0xE3, 0x61, 0xDA, 0x82, 0x67, 0xC1, 0x9C, +0x60, 0x9A, 0xD5, 0xE4, 0x6E, 0xED, 0x0E, 0x2D, +0x30, 0xF0, 0x21, 0x6D, 0xD2, 0xF3, 0xB8, 0x9D, +0xAA, 0xEB, 0x06, 0x60, 0x61, 0x9B, 0x79, 0xE6, +0xC1, 0xDC, 0x60, 0x9A, 0x60, 0x9B, 0x02, 0x10, +0xA0, 0xDC, 0x01, 0x10, 0x60, 0xDC, 0x8A, 0xEA, +0x01, 0x60, 0x80, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x21, 0x6A, 0xD2, 0xF3, 0x58, 0x9A, +0x04, 0x67, 0x02, 0x2A, 0x80, 0x18, 0x4D, 0x6E, +0x41, 0x20, 0x47, 0x40, 0x01, 0x4A, 0x03, 0x6B, +0x4C, 0xEB, 0x04, 0x23, 0x04, 0x6B, 0x6B, 0xEB, +0x4C, 0xEB, 0x44, 0x43, 0x37, 0x22, 0x30, 0xF0, +0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, 0x07, 0xF3, +0x94, 0x9B, 0x43, 0xEC, 0x2F, 0x61, 0x67, 0xF3, +0x08, 0x9B, 0x30, 0xF0, 0x21, 0x6B, 0xD2, 0xF3, +0x10, 0x4B, 0x02, 0x10, 0x70, 0x67, 0x04, 0x67, +0x81, 0x98, 0x43, 0xEC, 0x02, 0x60, 0x80, 0x98, +0xF9, 0x2C, 0x30, 0xF0, 0x21, 0x6C, 0xD2, 0xF3, +0x98, 0x9C, 0x0E, 0xEC, 0x1B, 0x24, 0x80, 0x98, +0x20, 0x9B, 0x80, 0xDB, 0x61, 0x98, 0x4F, 0xE3, +0x11, 0x5B, 0x05, 0x61, 0x51, 0xE0, 0x61, 0xDC, +0x41, 0xD8, 0x80, 0x18, 0x65, 0x6E, 0x30, 0xF0, +0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, 0x07, 0xF3, +0xB4, 0x9B, 0x81, 0x98, 0x47, 0x41, 0x01, 0x4A, +0x93, 0xE5, 0x07, 0xF3, 0x94, 0xDB, 0x00, 0x6B, +0x60, 0xD8, 0x01, 0x10, 0x00, 0x6A, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x0F, 0x24, 0xF8, 0x4C, +0x40, 0x9C, 0x0C, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xA1, 0x9C, 0x07, 0xF3, +0x74, 0x9A, 0x6D, 0xE5, 0x07, 0xF3, 0x74, 0xDA, +0x80, 0x18, 0x65, 0x6E, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, +0x0E, 0xD1, 0x0D, 0xD0, 0x4A, 0xA4, 0xC9, 0xA4, +0xA8, 0xA4, 0x08, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x48, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, +0x40, 0xAA, 0x4C, 0xEB, 0x07, 0xD3, 0x8B, 0xA4, +0x30, 0xF0, 0x21, 0x6A, 0x92, 0xF3, 0x01, 0x4A, +0x0A, 0xD4, 0x00, 0x6B, 0x30, 0xF0, 0x20, 0x6C, +0x60, 0xF7, 0xE2, 0x43, 0xEC, 0x37, 0x6B, 0xF0, +0x08, 0x4C, 0x91, 0xE7, 0xE8, 0xA4, 0x01, 0x6C, +0xEC, 0xEC, 0x06, 0x24, 0x80, 0xA2, 0x08, 0x97, +0xEE, 0xEC, 0x02, 0x2C, 0x11, 0x6A, 0x59, 0x10, +0x01, 0x4B, 0x0A, 0x73, 0x08, 0x4A, 0xEA, 0x61, +0x00, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0x60, 0xF7, +0x62, 0x42, 0x6C, 0x33, 0x6B, 0xF0, 0x08, 0x48, +0x0D, 0xE3, 0x68, 0xA3, 0x01, 0x6F, 0xFF, 0x6C, +0xEC, 0xEB, 0x22, 0x67, 0x8C, 0xEB, 0x8C, 0xE9, +0x40, 0x2B, 0xC0, 0x36, 0xD9, 0xE5, 0x09, 0xD3, +0xFF, 0xF7, 0x1F, 0x6A, 0x66, 0x67, 0x4C, 0xEB, +0x60, 0xF7, 0x02, 0x49, 0x83, 0x67, 0x2C, 0x31, +0x06, 0xD3, 0x05, 0xE1, 0x80, 0x18, 0x7A, 0x6E, +0x43, 0xD9, 0x32, 0x22, 0x9D, 0x67, 0xE7, 0x44, +0x19, 0x4F, 0x80, 0xA7, 0xFD, 0x67, 0x67, 0x47, +0x89, 0xC1, 0x11, 0x4B, 0xE0, 0xAB, 0x30, 0xF0, +0x20, 0x6E, 0xC3, 0xF7, 0xD8, 0x9E, 0xE5, 0xC9, +0x0A, 0x93, 0x07, 0x94, 0x09, 0x97, 0x95, 0xE3, +0xBC, 0x35, 0xD5, 0xE5, 0x30, 0xF0, 0x20, 0x6E, +0x63, 0xF0, 0xD4, 0x9E, 0x30, 0xF0, 0x20, 0x6B, +0x04, 0xD7, 0x05, 0xD7, 0xE0, 0xF2, 0x78, 0x9B, +0x06, 0x97, 0x00, 0x6C, 0xD9, 0xE2, 0x40, 0xEB, +0x48, 0xA1, 0x01, 0x6B, 0x6D, 0xEA, 0x48, 0xC1, +0x07, 0xF3, 0x50, 0xA0, 0x02, 0x6B, 0x10, 0x4A, +0x6D, 0xEA, 0x07, 0xF3, 0x50, 0xC0, 0x00, 0x6A, +0x04, 0x10, 0x01, 0x4A, 0x0A, 0x72, 0xAD, 0x61, +0x0F, 0x6A, 0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, +0x08, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x68, 0xA4, 0x01, 0x6A, +0x89, 0xA4, 0x6C, 0xEA, 0x01, 0x72, 0xB8, 0x67, +0x04, 0xD5, 0x32, 0x2D, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x21, 0x69, 0x80, 0xF2, 0x48, 0x98, +0x72, 0xF3, 0x18, 0x49, 0x91, 0x67, 0x08, 0x6E, +0x40, 0xEA, 0x80, 0xF2, 0x48, 0x98, 0x87, 0x41, +0x01, 0x4C, 0x00, 0x6D, 0x50, 0x6E, 0x40, 0xEA, +0x80, 0xF2, 0x48, 0x98, 0x87, 0x41, 0x51, 0x4C, +0x00, 0x6D, 0x08, 0x6E, 0x40, 0xEA, 0x04, 0x92, +0x30, 0xF0, 0x20, 0x69, 0x6B, 0xF0, 0x08, 0x49, +0x67, 0xF3, 0x50, 0xD9, 0x80, 0xF2, 0x48, 0x98, +0x30, 0xF0, 0x20, 0x6C, 0xAD, 0xF6, 0x04, 0x4C, +0x00, 0x6D, 0x00, 0xF2, 0x00, 0x6E, 0x40, 0xEA, +0x07, 0xF3, 0x70, 0xA1, 0x03, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x07, 0xF3, 0x50, 0xC1, 0x3C, 0x10, +0x02, 0x6A, 0x6C, 0xEA, 0x39, 0x22, 0x3E, 0x10, +0x30, 0xF0, 0x20, 0x68, 0x60, 0xF7, 0xA2, 0x42, +0xAC, 0x35, 0x6B, 0xF0, 0x08, 0x48, 0x15, 0xE5, +0xC8, 0xA5, 0x01, 0x6D, 0xFF, 0x69, 0xCC, 0xED, +0x4C, 0xE9, 0x26, 0x25, 0xA0, 0xA3, 0x8E, 0xED, +0x23, 0x2D, 0x60, 0xF7, 0x42, 0x41, 0x4C, 0x32, +0x09, 0xE2, 0x83, 0x9A, 0x80, 0x18, 0xA4, 0x6E, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x21, 0x6B, +0x80, 0xF2, 0x48, 0x9A, 0x92, 0xF3, 0x00, 0x4B, +0x2C, 0x34, 0x91, 0xE3, 0x00, 0x6D, 0x08, 0x6E, +0x40, 0xEA, 0x07, 0xF3, 0x70, 0xA0, 0xF0, 0x6A, +0xFF, 0x6C, 0xF0, 0x4B, 0x6C, 0xEA, 0x8C, 0xEA, +0x07, 0xF3, 0x70, 0xC0, 0x09, 0x2A, 0xFD, 0x4A, +0x6C, 0xEA, 0x07, 0xF3, 0x50, 0xC0, 0x04, 0x10, +0x01, 0x4A, 0x0A, 0x72, 0x08, 0x4B, 0xC8, 0x61, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x00, 0x6A, +0x05, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x21, 0x6B, +0x92, 0xF3, 0x01, 0x4B, 0x00, 0x6A, 0xBC, 0x17, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x48, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x2E, 0xF4, 0x04, 0x4C, 0x00, 0x6D, 0x18, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xA3, 0xF3, 0x7C, 0xA2, 0x03, 0x6C, +0x8B, 0xEC, 0x8C, 0xEB, 0xA3, 0xF3, 0xB8, 0xA2, +0xA3, 0xF3, 0x7C, 0xC2, 0x02, 0x6B, 0x6B, 0xEB, +0xAC, 0xEB, 0x8C, 0xEB, 0xA3, 0xF3, 0x78, 0xC2, +0x00, 0x6B, 0xA3, 0xF3, 0x79, 0xC2, 0x0C, 0x6B, +0xA3, 0xF3, 0x7A, 0xC2, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, +0x01, 0x74, 0xAC, 0xEA, 0x09, 0x60, 0x03, 0x24, +0x02, 0x74, 0x0B, 0x60, 0x20, 0xE8, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF6, 0x74, 0x9B, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF1, 0x70, 0x9B, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF1, +0x74, 0x9B, 0x40, 0xC3, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6B, 0x6C, 0xEC, 0x01, 0x74, 0x0A, 0x60, +0x04, 0x24, 0x02, 0x74, 0x00, 0x6A, 0x13, 0x61, +0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, +0x54, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0xF1, 0x50, 0x9A, 0x40, 0xA2, 0x6C, 0xEA, +0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF1, +0x54, 0x9A, 0x40, 0xA2, 0x6C, 0xEA, 0x20, 0xE8, +0xFF, 0x6B, 0x6C, 0xEC, 0x01, 0x74, 0x0A, 0x60, +0x04, 0x24, 0x02, 0x74, 0x00, 0x6A, 0x13, 0x61, +0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF1, +0x58, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0xF1, 0x5C, 0x9A, 0x40, 0xA2, 0x6C, 0xEA, +0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF1, +0x40, 0x9A, 0x40, 0xA2, 0x6C, 0xEA, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0xA3, 0xF3, 0x5C, 0xA3, +0x01, 0x6C, 0x4C, 0xEC, 0x00, 0x6A, 0x04, 0x24, +0xA3, 0xF3, 0x9E, 0xA3, 0x80, 0x18, 0x66, 0x6F, +0x05, 0x97, 0xFF, 0x6B, 0x5E, 0x32, 0x6C, 0xEA, +0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xA3, 0xF3, 0x9C, 0xA2, +0x01, 0x6B, 0x8C, 0xEB, 0x0A, 0x23, 0xA3, 0xF3, +0x98, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x03, 0x6C, 0x8B, 0xEC, 0x8C, 0xEB, 0xA3, 0xF3, +0x78, 0xC2, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xA3, 0xF3, 0x9C, 0xA2, +0x01, 0x6B, 0x8C, 0xEB, 0x0A, 0x23, 0xA3, 0xF3, +0x98, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x03, 0x6C, 0x8B, 0xEC, 0x8C, 0xEB, 0xA3, 0xF3, +0x78, 0xC2, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xA3, 0xF3, 0x9C, 0xA2, +0x01, 0x6B, 0x8C, 0xEB, 0x0A, 0x23, 0xA3, 0xF3, +0x98, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x03, 0x6C, 0x8B, 0xEC, 0x8C, 0xEB, 0xA3, 0xF3, +0x78, 0xC2, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x30, 0xF0, 0x20, 0x69, +0xFF, 0x6C, 0x6F, 0x6D, 0x1F, 0x6E, 0x6B, 0xF0, +0x08, 0x49, 0x40, 0xEA, 0xA3, 0xF3, 0x7C, 0xA1, +0x02, 0x6A, 0x6C, 0xEA, 0x0D, 0x22, 0xA3, 0xF3, +0x1E, 0xA1, 0x90, 0x67, 0x80, 0x18, 0x58, 0x6F, +0xBF, 0x6D, 0x4C, 0xED, 0x90, 0x67, 0x80, 0x18, +0x4B, 0x6F, 0x04, 0x6A, 0xA3, 0xF3, 0x59, 0xC1, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0x6B, 0xF0, 0x08, 0x49, 0xA3, 0xF3, 0x7C, 0xA1, +0x02, 0x6A, 0x6C, 0xEA, 0x0D, 0x22, 0xA3, 0xF3, +0x1E, 0xA1, 0x90, 0x67, 0x80, 0x18, 0x58, 0x6F, +0xBF, 0x6D, 0x4C, 0xED, 0x90, 0x67, 0x80, 0x18, +0x4B, 0x6F, 0x00, 0x6A, 0xA3, 0xF3, 0x59, 0xC1, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, +0xFF, 0x6C, 0xA4, 0x67, 0x21, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA3, 0xF3, 0x9C, 0xA2, 0x02, 0x6B, 0x8C, 0xEB, +0x03, 0x23, 0x03, 0x6B, 0xA3, 0xF3, 0x79, 0xC2, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA3, 0xF3, 0x9C, 0xA2, 0x02, 0x6B, 0x8C, 0xEB, +0x03, 0x23, 0x01, 0x6B, 0xA3, 0xF3, 0x79, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0xCE, 0x6F, 0x80, 0x18, 0x9D, 0x6F, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xCE, 0x6F, +0x80, 0x18, 0xC1, 0x6F, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, 0x30, 0xF0, +0x20, 0x68, 0xFF, 0x6C, 0xC5, 0x67, 0x6B, 0xF0, +0x08, 0x48, 0x40, 0xEA, 0xA3, 0xF3, 0x7C, 0xA0, +0x02, 0x6A, 0x6C, 0xEA, 0x0F, 0x22, 0xA3, 0xF3, +0x3E, 0xA0, 0x91, 0x67, 0x80, 0x18, 0x58, 0x6F, +0x40, 0x6B, 0x4D, 0xEB, 0xFF, 0x6D, 0x91, 0x67, +0x6C, 0xED, 0x80, 0x18, 0x4B, 0x6F, 0x01, 0x6A, +0xA3, 0xF3, 0x59, 0xC0, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xDF, 0x6F, +0x80, 0x18, 0xB1, 0x6F, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0xFF, 0x6C, 0x30, 0xF0, +0x20, 0x68, 0xA4, 0x67, 0x22, 0x6E, 0x6B, 0xF0, +0x08, 0x48, 0x40, 0xEA, 0xA3, 0xF3, 0x7C, 0xA0, +0x02, 0x6A, 0x6C, 0xEA, 0x0F, 0x22, 0xA3, 0xF3, +0x3E, 0xA0, 0x91, 0x67, 0x80, 0x18, 0x58, 0x6F, +0x40, 0x6B, 0x4D, 0xEB, 0xFF, 0x6D, 0x91, 0x67, +0x6C, 0xED, 0x80, 0x18, 0x4B, 0x6F, 0x03, 0x6A, +0xA3, 0xF3, 0x59, 0xC0, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, 0xFF, 0x6C, +0xC5, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xA3, 0xF3, 0x9C, 0xA2, +0x02, 0x6B, 0x8C, 0xEB, 0x03, 0x23, 0x01, 0x6B, +0xA3, 0xF3, 0x79, 0xC2, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0x0E, 0x70, 0x80, 0x18, 0xB1, 0x6F, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, +0x30, 0xF0, 0x20, 0x69, 0xFF, 0x6C, 0x6F, 0x6D, +0x25, 0x6E, 0x6B, 0xF0, 0x08, 0x49, 0x40, 0xEA, +0xA3, 0xF3, 0x7C, 0xA1, 0x02, 0x6A, 0x6C, 0xEA, +0x0D, 0x22, 0xA3, 0xF3, 0x1E, 0xA1, 0x90, 0x67, +0x80, 0x18, 0x58, 0x6F, 0xBF, 0x6D, 0x4C, 0xED, +0x90, 0x67, 0x80, 0x18, 0x4B, 0x6F, 0x04, 0x6A, +0xA3, 0xF3, 0x59, 0xC1, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0xA3, 0xF3, 0x5C, 0xA3, 0x01, 0x6C, 0x4C, 0xEC, +0x01, 0x6A, 0x06, 0x24, 0xA3, 0xF3, 0x59, 0xA3, +0x02, 0x6B, 0x6E, 0xEA, 0x01, 0x5A, 0x58, 0x67, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x2E, 0xF4, 0x45, 0xA2, 0x05, 0x5A, 0xE0, 0xF0, +0x0C, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x48, 0x32, +0xE2, 0xF7, 0x14, 0x4B, 0x4D, 0xE3, 0x40, 0x9B, +0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, +0x08, 0x4B, 0xA3, 0xF3, 0x9C, 0xA3, 0x04, 0x6A, +0xFF, 0x6D, 0x8C, 0xEA, 0x19, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF6, 0x90, 0x9A, 0x02, 0x6E, +0x40, 0xA4, 0xAC, 0xEA, 0xCD, 0xEA, 0xAC, 0xEA, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF0, +0x8C, 0x9A, 0xF8, 0x6A, 0xA0, 0xA4, 0xAC, 0xEA, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, +0x60, 0xA3, 0x24, 0xF1, 0x44, 0x9A, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, 0x70, 0x9A, +0x83, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, +0x08, 0x4B, 0xA3, 0xF3, 0xBC, 0xA3, 0x04, 0x6A, +0xFF, 0x6C, 0xAC, 0xEA, 0x1D, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x24, 0xF1, 0xA8, 0x9A, 0x02, 0x6E, +0x40, 0xA5, 0x8C, 0xEA, 0xCD, 0xEA, 0x8C, 0xEA, +0x40, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF0, +0xAC, 0x9A, 0xF6, 0x4E, 0x40, 0xA5, 0x8C, 0xEA, +0xCC, 0xEA, 0x01, 0x6E, 0xCD, 0xEA, 0x8C, 0xEA, +0x40, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, +0x60, 0xA3, 0x24, 0xF1, 0x44, 0x9A, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF1, 0x68, 0x9A, +0x57, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, +0x08, 0x4B, 0xA3, 0xF3, 0xBC, 0xA3, 0x04, 0x6A, +0xFF, 0x6C, 0xAC, 0xEA, 0x1D, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x24, 0xF1, 0xAC, 0x9A, 0x02, 0x6E, +0x08, 0x6F, 0x40, 0xA5, 0xEB, 0xEF, 0x8C, 0xEA, +0xCD, 0xEA, 0x8C, 0xEA, 0x40, 0xC5, 0x30, 0xF0, +0x20, 0x6A, 0xA4, 0xF0, 0xAC, 0x9A, 0x40, 0xA5, +0x8C, 0xEA, 0xEC, 0xEA, 0xCD, 0xEA, 0x8C, 0xEA, +0x40, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, +0x60, 0xA3, 0x24, 0xF1, 0x44, 0x9A, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF1, 0x6C, 0x9A, +0x2B, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, +0x08, 0x4B, 0xA3, 0xF3, 0xBC, 0xA3, 0x04, 0x6A, +0xFF, 0x6C, 0xAC, 0xEA, 0x1D, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x24, 0xF1, 0xB0, 0x9A, 0x02, 0x6E, +0x40, 0xA5, 0x8C, 0xEA, 0xCD, 0xEA, 0x8C, 0xEA, +0x40, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF0, +0xAC, 0x9A, 0xF6, 0x4E, 0x40, 0xA5, 0x8C, 0xEA, +0xCC, 0xEA, 0x03, 0x6E, 0xCD, 0xEA, 0x8C, 0xEA, +0x40, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, +0x60, 0xA3, 0x24, 0xF1, 0x44, 0x9A, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF1, 0x70, 0x9A, +0x40, 0xA3, 0xFF, 0x6C, 0x01, 0x6D, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0xA3, 0xF3, 0x5C, 0xA3, 0x04, 0x6E, 0xFF, 0x6C, +0xCC, 0xEA, 0x1C, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x24, 0xF1, 0xB4, 0x9A, 0x02, 0x6F, 0x40, 0xA5, +0x8C, 0xEA, 0xED, 0xEA, 0x8C, 0xEA, 0x40, 0xC5, +0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF0, 0xAC, 0x9A, +0xF6, 0x4F, 0x40, 0xA5, 0x8C, 0xEA, 0xEC, 0xEA, +0xCD, 0xEA, 0x8C, 0xEA, 0x40, 0xC5, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF3, 0x60, 0xA3, 0x24, 0xF1, +0x44, 0x9A, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x24, 0xF1, 0x74, 0x9A, 0xFF, 0x6C, 0x01, 0x6D, +0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xC3, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xA3, 0xF3, 0x9C, 0xA2, +0x01, 0x6B, 0x8C, 0xEB, 0x06, 0x23, 0xA3, 0xF3, +0x98, 0xA2, 0x02, 0x6B, 0x8D, 0xEB, 0xA3, 0xF3, +0x78, 0xC2, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6D, +0x6B, 0xF0, 0x08, 0x4D, 0xA3, 0xF3, 0xDC, 0xA5, +0x02, 0x6B, 0xFF, 0x6A, 0xCC, 0xEB, 0x4C, 0xEB, +0x4C, 0xEC, 0x02, 0x2B, 0xA3, 0xF3, 0x9A, 0xC5, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0x6B, 0xF0, 0x08, 0x48, 0xA0, 0xF0, 0x7B, 0xA0, +0x7F, 0x6A, 0xFF, 0x69, 0x6C, 0xEA, 0x02, 0x72, +0x16, 0x60, 0xA0, 0xF0, 0x7C, 0xA0, 0x10, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x2C, 0xEA, 0x0F, 0x22, +0x00, 0x18, 0xDE, 0xC5, 0x0C, 0x2A, 0xA3, 0xF3, +0x7C, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, +0x06, 0x22, 0xA3, 0xF3, 0xDD, 0xA0, 0x0C, 0x6C, +0x00, 0x6D, 0x00, 0x18, 0x04, 0xCE, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xA3, 0xF3, 0x9C, 0xA2, +0x01, 0x6B, 0x6C, 0xEC, 0x16, 0x24, 0xA3, 0xF3, +0xDC, 0xA2, 0xA3, 0xF3, 0xBA, 0xA2, 0xDA, 0x34, +0x6C, 0xEC, 0x0D, 0x24, 0x02, 0x75, 0x0F, 0x60, +0xCC, 0xEB, 0xFF, 0x6C, 0x8C, 0xEB, 0x09, 0x23, +0xA3, 0xF3, 0xDD, 0xA2, 0x02, 0x6C, 0x01, 0x6D, +0x00, 0x18, 0x04, 0xCE, 0x02, 0x10, 0x02, 0x75, +0x02, 0x60, 0x80, 0x18, 0xC7, 0x70, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0x24, 0x67, 0xA3, 0xF3, +0x9C, 0xA3, 0x01, 0x6D, 0xFF, 0x6A, 0xAC, 0xEC, +0x4C, 0xEC, 0x4C, 0xE9, 0x00, 0x68, 0x05, 0x24, +0xA3, 0xF3, 0x1C, 0xA3, 0x1A, 0x30, 0xAC, 0xE8, +0x4C, 0xE8, 0x80, 0x18, 0x74, 0x6F, 0x01, 0x72, +0x13, 0x61, 0x12, 0x28, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0xA3, 0xF3, 0x5C, 0xA3, +0x01, 0x6C, 0x4C, 0xEC, 0x01, 0x6A, 0x09, 0x24, +0xA3, 0xF3, 0xDD, 0xA3, 0xA2, 0x67, 0x91, 0x67, +0x00, 0x18, 0x04, 0xCE, 0x01, 0x6A, 0x01, 0x10, +0x00, 0x6A, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA3, 0xF3, 0x7C, 0xA2, 0x01, 0x6C, 0xA4, 0x67, +0x6C, 0xED, 0x0C, 0x25, 0xA3, 0xF3, 0xB8, 0xA2, +0xAD, 0xEC, 0xA3, 0xF3, 0x98, 0xC2, 0x02, 0x6A, +0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x02, 0x22, +0x80, 0x18, 0xE6, 0x40, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0x6B, 0xF0, 0x08, 0x49, 0xA3, 0xF3, 0x5E, 0xA1, +0xFF, 0x68, 0x8C, 0xE8, 0x01, 0x72, 0x31, 0x60, +0x03, 0x22, 0x02, 0x72, 0x5F, 0x60, 0xC2, 0x10, +0x01, 0x6C, 0xC0, 0x6D, 0x80, 0x18, 0xA9, 0x76, +0x20, 0x6A, 0xA3, 0xF3, 0x7C, 0xA1, 0x4D, 0xE8, +0xFF, 0x6A, 0x4C, 0xE8, 0x04, 0x6A, 0x6C, 0xEA, +0xFF, 0x6C, 0x8C, 0xEA, 0x0B, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF6, 0x4C, 0x9A, 0x10, 0xF0, +0x00, 0x6D, 0x60, 0xA2, 0x8C, 0xEB, 0x60, 0xC2, +0x01, 0x6C, 0x5F, 0x10, 0x02, 0x6A, 0x6C, 0xEA, +0xFF, 0x6B, 0x6C, 0xEA, 0x0A, 0x22, 0xA3, 0xF3, +0x78, 0xA1, 0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x03, 0x6B, 0x6B, 0xEB, 0x6C, 0xEA, 0xA3, 0xF3, +0x58, 0xC1, 0x01, 0x6C, 0x10, 0xF0, 0x00, 0x6D, +0x63, 0x10, 0x01, 0x6C, 0x00, 0xF3, 0x00, 0x6D, +0x80, 0x18, 0xA9, 0x76, 0xA3, 0xF3, 0x7C, 0xA1, +0x20, 0x6A, 0x4D, 0xE8, 0x04, 0x6A, 0xFF, 0x6C, +0x6C, 0xEA, 0x8C, 0xEA, 0x8C, 0xE8, 0x0D, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, 0x4C, 0x9A, +0x60, 0xA2, 0x8C, 0xEB, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x01, 0x6C, 0x03, 0xF1, 0xB8, 0x9A, +0x30, 0x10, 0x02, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, +0x6C, 0xEA, 0x0A, 0x22, 0xA3, 0xF3, 0x78, 0xA1, +0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x03, 0x6B, +0x6B, 0xEB, 0x6C, 0xEA, 0xA3, 0xF3, 0x58, 0xC1, +0x30, 0xF0, 0x20, 0x6A, 0x01, 0x6C, 0x03, 0xF1, +0xB8, 0x9A, 0x32, 0x10, 0x01, 0x6C, 0x01, 0xF4, +0x00, 0x6D, 0x80, 0x18, 0xA9, 0x76, 0xA3, 0xF3, +0x7C, 0xA1, 0x20, 0x6A, 0x4D, 0xE8, 0x04, 0x6A, +0xFF, 0x6C, 0x6C, 0xEA, 0x8C, 0xEA, 0x8C, 0xE8, +0x0F, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, +0x4C, 0x9A, 0x60, 0xA2, 0x8C, 0xEB, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0xB0, 0x9A, +0x01, 0x6C, 0x80, 0x18, 0xA9, 0x76, 0x16, 0x10, +0x02, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, +0x0A, 0x22, 0xA3, 0xF3, 0x78, 0xA1, 0x02, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x03, 0x6B, 0x6B, 0xEB, +0x6C, 0xEA, 0xA3, 0xF3, 0x58, 0xC1, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF1, 0xB0, 0x9A, 0x01, 0x6C, +0x80, 0x18, 0xC6, 0x76, 0x30, 0xF0, 0x20, 0x6A, +0x2E, 0xF4, 0x84, 0xA2, 0x08, 0x6A, 0xFF, 0x6B, +0x8C, 0xEA, 0x09, 0x22, 0x10, 0x6A, 0x8C, 0xEA, +0x6C, 0xEA, 0x02, 0x2A, 0x02, 0x6A, 0x01, 0x10, +0x04, 0x6A, 0x4D, 0xE8, 0x6C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x2E, 0xF4, 0x84, 0xA2, 0x02, 0x6A, +0xFF, 0x6B, 0x8C, 0xEA, 0x08, 0x22, 0x20, 0x6A, +0x8C, 0xEA, 0x6C, 0xEA, 0x04, 0x22, 0x80, 0x6A, +0x4B, 0xEA, 0x4D, 0xE8, 0x6C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x2E, 0xF4, 0xA4, 0xA2, 0x40, 0x6C, +0x44, 0x67, 0xAC, 0xEA, 0xFF, 0x6B, 0x06, 0x2A, +0x80, 0x4A, 0xAC, 0xEA, 0x6C, 0xEA, 0x02, 0x2A, +0x8D, 0xE8, 0x6C, 0xE8, 0x50, 0x67, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0xAB, 0xED, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA3, 0xF3, 0x9C, 0xA2, 0x02, 0x6B, 0x6C, 0xEC, +0x02, 0x24, 0xA3, 0xF3, 0x79, 0xC2, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xA3, 0xF3, 0x9C, 0xA2, 0x02, 0x6B, +0x8C, 0xEB, 0x0C, 0x23, 0xA3, 0xF3, 0x1E, 0xA2, +0x90, 0x67, 0x80, 0x18, 0x58, 0x6F, 0x40, 0x6B, +0x4D, 0xEB, 0xFF, 0x6D, 0x90, 0x67, 0x6C, 0xED, +0x80, 0x18, 0x4B, 0x6F, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0xFF, 0x6C, 0xA4, 0x67, +0x23, 0x6E, 0x40, 0xEA, 0x00, 0x18, 0xAB, 0xED, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA3, 0xF3, 0x9C, 0xA2, 0x02, 0x6B, 0x6C, 0xEC, +0x02, 0x24, 0xA3, 0xF3, 0x79, 0xC2, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0xFF, 0x6C, 0xA4, 0x67, +0x20, 0x6E, 0x40, 0xEA, 0x00, 0x18, 0xAB, 0xED, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA3, 0xF3, 0x9C, 0xA2, 0x02, 0x6B, 0x6C, 0xEC, +0x02, 0x24, 0xA3, 0xF3, 0x79, 0xC2, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0xCE, 0x6F, 0x80, 0x18, 0xA6, 0x71, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x95, 0xED, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA3, 0xF3, 0x9C, 0xA2, 0x02, 0x6B, 0x8C, 0xEB, +0x03, 0x23, 0x03, 0x6B, 0xA3, 0xF3, 0x79, 0xC2, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x00, 0x18, 0x95, 0xED, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x30, 0xF0, 0x20, 0x69, +0xFF, 0x6C, 0x6F, 0x6D, 0x24, 0x6E, 0x6B, 0xF0, +0x08, 0x49, 0x40, 0xEA, 0xA3, 0xF3, 0x7C, 0xA1, +0x02, 0x6A, 0x6C, 0xEA, 0x0D, 0x22, 0xA3, 0xF3, +0x1E, 0xA1, 0x90, 0x67, 0x80, 0x18, 0x58, 0x6F, +0xBF, 0x6D, 0x4C, 0xED, 0x90, 0x67, 0x80, 0x18, +0x4B, 0x6F, 0x04, 0x6A, 0xA3, 0xF3, 0x59, 0xC1, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x95, 0xED, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, 0xFF, 0x6C, +0xC5, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xA3, 0xF3, 0x9C, 0xA2, +0x02, 0x6B, 0x8C, 0xEB, 0x03, 0x23, 0x01, 0x6B, +0xA3, 0xF3, 0x79, 0xC2, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0xD7, 0x71, 0x80, 0x18, 0xB1, 0x6F, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6D, +0x6B, 0xF0, 0x08, 0x4D, 0xA3, 0xF3, 0xDC, 0xA5, +0x02, 0x6B, 0xFF, 0x6A, 0xCC, 0xEB, 0x4C, 0xEB, +0x4C, 0xEC, 0x00, 0x6A, 0x02, 0x23, 0xA3, 0xF3, +0x59, 0xA5, 0x8A, 0xEA, 0x69, 0x60, 0x05, 0x5C, +0x67, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x88, 0x34, +0x03, 0xF0, 0x08, 0x4B, 0x8D, 0xE3, 0x60, 0x9B, +0x00, 0xEB, 0x04, 0x72, 0x03, 0x61, 0x80, 0x18, +0xF4, 0x6F, 0x5A, 0x10, 0x02, 0x72, 0x03, 0x61, +0x80, 0x18, 0xE5, 0x71, 0x55, 0x10, 0x03, 0x72, +0x03, 0x61, 0x80, 0x18, 0x1B, 0x70, 0x50, 0x10, +0x01, 0x72, 0x4E, 0x61, 0x80, 0x18, 0xB1, 0x6F, +0x4B, 0x10, 0x04, 0x72, 0x03, 0x61, 0x80, 0x18, +0xDF, 0x6F, 0x46, 0x10, 0x02, 0x72, 0x03, 0x61, +0x80, 0x18, 0xD7, 0x71, 0x41, 0x10, 0x03, 0x72, +0x03, 0x61, 0x80, 0x18, 0x0E, 0x70, 0x3C, 0x10, +0x3B, 0x2A, 0x80, 0x18, 0xCE, 0x6F, 0x38, 0x10, +0x04, 0x72, 0x03, 0x61, 0x80, 0x18, 0x8D, 0x71, +0x33, 0x10, 0x01, 0x72, 0x03, 0x61, 0x80, 0x18, +0xA6, 0x71, 0x2E, 0x10, 0x03, 0x72, 0x03, 0x61, +0x80, 0x18, 0x84, 0x71, 0x29, 0x10, 0x28, 0x2A, +0x80, 0x18, 0xB3, 0x71, 0x25, 0x10, 0x04, 0x72, +0x03, 0x61, 0x80, 0x18, 0xF9, 0x6F, 0x20, 0x10, +0x01, 0x72, 0x03, 0x61, 0x80, 0x18, 0xC1, 0x6F, +0x1B, 0x10, 0x02, 0x72, 0x03, 0x61, 0x80, 0x18, +0xB8, 0x71, 0x16, 0x10, 0x15, 0x2A, 0x80, 0x18, +0xDA, 0x6F, 0x12, 0x10, 0x03, 0x72, 0x03, 0x61, +0x80, 0x18, 0x20, 0x70, 0x0D, 0x10, 0x01, 0x72, +0x03, 0x61, 0x80, 0x18, 0x9D, 0x6F, 0x08, 0x10, +0x02, 0x72, 0x03, 0x61, 0x80, 0x18, 0xC2, 0x71, +0x03, 0x10, 0x02, 0x2A, 0x80, 0x18, 0xD5, 0x6F, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0xA7, 0x44, 0x30, 0xF0, 0x20, 0x6C, 0x2E, 0xF4, +0x04, 0x4C, 0x01, 0x4D, 0x18, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xC3, 0xF3, 0x94, 0xA2, 0x01, 0x6B, 0x6C, 0xEC, +0x11, 0x24, 0xA3, 0xF3, 0x9C, 0xA2, 0x8C, 0xEB, +0xFF, 0x6C, 0x8C, 0xEB, 0x0B, 0x23, 0xC3, 0xF3, +0x99, 0xA2, 0x40, 0x6B, 0x8D, 0xEB, 0xC3, 0xF3, +0x79, 0xC2, 0xC3, 0xF3, 0x70, 0x9A, 0xC3, 0xF3, +0x7A, 0xC2, 0x4F, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xC3, 0xF3, 0xF4, 0xA2, +0x01, 0x6C, 0xA4, 0x67, 0xEC, 0xED, 0xFF, 0x6B, +0x44, 0x25, 0xA3, 0xF3, 0xBC, 0xA2, 0x8C, 0xED, +0x6C, 0xED, 0x3F, 0x2D, 0xC3, 0xF3, 0xD9, 0xA2, +0xDE, 0x4C, 0xA0, 0xF0, 0x16, 0xA2, 0xCC, 0xEC, +0xC3, 0xF3, 0xD5, 0xA2, 0xC3, 0xF3, 0x99, 0xC2, +0x1F, 0x6C, 0xCC, 0xEC, 0xC3, 0xF3, 0x95, 0xC2, +0xC3, 0xF3, 0x97, 0xA2, 0x0F, 0x6E, 0xCC, 0xE8, +0x1C, 0x65, 0x10, 0x6C, 0x8B, 0xEC, 0x38, 0x67, +0x2C, 0xEC, 0x0D, 0xEC, 0xC3, 0xF3, 0x97, 0xC2, +0x1E, 0x6C, 0xEC, 0xEC, 0x6C, 0xEC, 0xC3, 0xF3, +0xB8, 0xC2, 0x17, 0x24, 0xC3, 0xF3, 0xB4, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, 0x40, 0x9A, +0xA6, 0x35, 0xCC, 0xED, 0x02, 0x6C, 0x6C, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF5, +0x4C, 0x9A, 0x40, 0xEA, 0x06, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF5, 0x48, 0x9A, 0x06, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x4E, 0xF4, +0x48, 0xA2, 0x0F, 0x6C, 0x4C, 0xEC, 0x00, 0x18, +0x34, 0xE7, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, +0x08, 0x4B, 0xA3, 0xF3, 0x5E, 0xA3, 0x01, 0x72, +0x6C, 0x60, 0x05, 0x22, 0x02, 0x72, 0x00, 0x6C, +0x20, 0xF1, 0x13, 0x61, 0xC9, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF6, 0x54, 0x9A, 0xFF, 0x6D, +0x08, 0x6F, 0x80, 0xA2, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF6, 0xD8, 0x9A, 0xEB, 0xEF, 0xAC, 0xEC, +0x40, 0xA6, 0xAC, 0xEA, 0xEC, 0xEA, 0xA3, 0xF3, +0xFD, 0xA3, 0xED, 0xEA, 0xAC, 0xEA, 0x40, 0xC6, +0xA3, 0xF3, 0x7C, 0xA3, 0x08, 0x6A, 0x6C, 0xEA, +0xAC, 0xEA, 0x00, 0xF1, 0x16, 0x22, 0x10, 0x6E, +0x43, 0x67, 0xCC, 0xEA, 0xAC, 0xEA, 0x07, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF1, 0x78, 0x9A, +0x8F, 0x6A, 0xA0, 0xA3, 0x0A, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x24, 0xF1, 0x78, 0x9A, 0x71, 0x6F, +0xEB, 0xEF, 0x40, 0xA3, 0xAC, 0xEA, 0xEC, 0xEA, +0xCD, 0xEA, 0xAC, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF3, 0xA4, 0x9A, 0x24, 0xF1, +0x7C, 0x9B, 0x01, 0x6E, 0xA0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF3, 0xA8, 0x9A, 0x44, 0xF1, +0x60, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF3, 0xAC, 0x9A, 0x44, 0xF1, 0x64, 0x9B, +0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, +0xB0, 0x9A, 0x44, 0xF1, 0x68, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x44, 0xF1, 0x6C, 0x9B, +0xA3, 0xF3, 0x5C, 0xA2, 0xFF, 0x6D, 0xE0, 0xA3, +0x52, 0x32, 0xCC, 0xEA, 0xC4, 0xEA, 0xAC, 0xEF, +0x46, 0x67, 0xED, 0xEA, 0xAC, 0xEA, 0x40, 0xC3, +0xCC, 0x10, 0x30, 0xF0, 0x20, 0x6D, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF6, 0x18, 0x9D, 0x04, 0xF1, +0x50, 0x9A, 0xA3, 0xF3, 0xBD, 0xA3, 0x71, 0x6E, +0x80, 0xA2, 0xE0, 0xA0, 0xFF, 0x6A, 0xCB, 0xEE, +0x4C, 0xEF, 0xB0, 0x35, 0xCC, 0xEF, 0xED, 0xED, +0x4C, 0xED, 0xA0, 0xC0, 0xA3, 0xF3, 0xBC, 0xA3, +0x08, 0x6B, 0x4C, 0xEC, 0xAC, 0xEB, 0x4C, 0xEB, +0xA0, 0xF0, 0x0F, 0x23, 0x10, 0x6B, 0xAC, 0xEB, +0x4C, 0xEB, 0x09, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0x24, 0xF1, 0xB8, 0x9B, 0x60, 0xA5, 0x4C, 0xEB, +0xCC, 0xEB, 0x20, 0x6E, 0x08, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x24, 0xF1, 0xB8, 0x9B, 0x60, 0xA5, +0x4C, 0xEB, 0xCC, 0xEB, 0x30, 0x6E, 0xCD, 0xEB, +0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xC5, +0x6B, 0xF0, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF3, 0xA4, 0x9A, 0x24, 0xF1, 0x7C, 0x9B, +0x01, 0x6F, 0xFF, 0x6E, 0xA0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF3, 0xA8, 0x9A, 0x44, 0xF1, +0x60, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF3, 0xAC, 0x9A, 0x44, 0xF1, 0x64, 0x9B, +0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, +0xB0, 0x9A, 0x44, 0xF1, 0x68, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x44, 0xF1, 0xAC, 0x9B, +0xA3, 0xF3, 0x7C, 0xA2, 0x00, 0xA5, 0x72, 0x33, +0xEC, 0xEB, 0xCC, 0xE8, 0x42, 0x43, 0x64, 0x10, +0x30, 0xF0, 0x20, 0x6D, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0xF1, 0x54, 0x9A, 0x44, 0xF1, 0xD0, 0x9D, +0x08, 0x6F, 0x80, 0xA2, 0xA0, 0xA6, 0xFF, 0x6A, +0xEB, 0xEF, 0x4C, 0xED, 0xEC, 0xED, 0xA3, 0xF3, +0xFD, 0xA3, 0x4C, 0xEC, 0xED, 0xED, 0x4C, 0xED, +0xA0, 0xC6, 0xA3, 0xF3, 0xBC, 0xA3, 0x08, 0x6B, +0xAC, 0xEB, 0x4C, 0xEB, 0x4E, 0x23, 0x10, 0x6B, +0xAC, 0xEB, 0x4C, 0xEB, 0x0B, 0x2B, 0x30, 0xF0, +0x20, 0x6B, 0x24, 0xF1, 0xB8, 0x9B, 0x71, 0x6E, +0xCB, 0xEE, 0x60, 0xA5, 0x4C, 0xEB, 0xCC, 0xEB, +0x40, 0x6E, 0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x24, 0xF1, 0xB8, 0x9B, 0x71, 0x6E, 0xCB, 0xEE, +0x60, 0xA5, 0x4C, 0xEB, 0xCC, 0xEB, 0x50, 0x6E, +0xCD, 0xEB, 0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xC5, 0x6B, 0xF0, 0x08, 0x4A, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF3, 0xA4, 0x9A, 0x24, 0xF1, +0x7C, 0x9B, 0x01, 0x6F, 0xFF, 0x6E, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0xA8, 0x9A, +0x44, 0xF1, 0x60, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF3, 0xAC, 0x9A, 0x44, 0xF1, +0x64, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF3, 0xB0, 0x9A, 0x44, 0xF1, 0x68, 0x9B, +0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x44, 0xF1, +0xAC, 0x9B, 0xA3, 0xF3, 0x7C, 0xA2, 0x00, 0xA5, +0x72, 0x33, 0xEC, 0xEB, 0xCC, 0xE8, 0x44, 0x43, +0xE4, 0xEA, 0x47, 0x67, 0x0D, 0xEA, 0xCC, 0xEA, +0x40, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, +0x40, 0x9A, 0x00, 0x6B, 0xFF, 0x69, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, 0x5C, 0x9A, +0x02, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x60, 0xC2, +0x40, 0xA2, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF6, +0x68, 0x9B, 0x2C, 0xEA, 0x50, 0x32, 0x01, 0x4A, +0x2C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF6, 0x44, 0x9A, 0x20, 0x6B, 0x6B, 0xF0, +0x08, 0x48, 0x60, 0xC2, 0xA3, 0xF3, 0x7C, 0xA0, +0x01, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x51, 0x22, +0x80, 0x18, 0x17, 0x71, 0x04, 0xD2, 0x80, 0x18, +0x3D, 0x70, 0xA3, 0xF3, 0x9E, 0xA0, 0x04, 0x95, +0x80, 0x18, 0x4B, 0x6F, 0xA3, 0xF3, 0x7C, 0xA0, +0x02, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x16, 0x22, +0xA3, 0xF3, 0x59, 0xA0, 0x03, 0x2A, 0x01, 0x6C, +0x80, 0x18, 0xEA, 0x71, 0x30, 0xF0, 0x20, 0x6A, +0x2E, 0xF4, 0x64, 0xA2, 0x40, 0x6A, 0x04, 0x6C, +0x6C, 0xEA, 0x05, 0x2A, 0x80, 0x18, 0x74, 0x6F, +0x01, 0x6C, 0x01, 0x2A, 0x02, 0x6C, 0x80, 0x18, +0xEA, 0x71, 0x24, 0x10, 0x40, 0x6A, 0x6C, 0xEA, +0x2C, 0xEA, 0x07, 0x22, 0xA3, 0xF3, 0x5A, 0xA0, +0x02, 0x72, 0x1C, 0x60, 0x02, 0x6C, 0x00, 0x6D, +0x10, 0x10, 0xA3, 0xF3, 0x5A, 0xA0, 0x02, 0x72, +0x11, 0x61, 0x00, 0x18, 0xA3, 0xCB, 0x80, 0x18, +0x74, 0x6F, 0x01, 0x72, 0x04, 0x61, 0x63, 0xF6, +0x98, 0xA0, 0x01, 0x6D, 0x02, 0x10, 0x00, 0x6C, +0xA4, 0x67, 0xA3, 0xF3, 0xDD, 0xA0, 0x00, 0x18, +0x04, 0xCE, 0x04, 0x10, 0xE3, 0xF5, 0x5F, 0xA0, +0xA3, 0xF3, 0x5A, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF6, 0x54, 0x9A, 0x22, 0x6B, 0x60, 0xC2, +0x31, 0x10, 0xA3, 0xF3, 0x9E, 0xA0, 0x00, 0x6D, +0x80, 0x18, 0x4B, 0x6F, 0xA3, 0xF3, 0x7C, 0xA0, +0x02, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x08, 0x22, +0xA3, 0xF3, 0x59, 0xA0, 0x04, 0x72, 0x22, 0x61, +0x00, 0x6C, 0x80, 0x18, 0xEA, 0x71, 0x1E, 0x10, +0xA3, 0xF3, 0x5A, 0xA0, 0x04, 0x6C, 0x02, 0x72, +0x03, 0x60, 0x08, 0x72, 0x06, 0x61, 0x0C, 0x6C, +0xA3, 0xF3, 0xDD, 0xA0, 0x01, 0x6D, 0x00, 0x18, +0x04, 0xCE, 0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, +0x08, 0x48, 0xA3, 0xF3, 0x9D, 0xA0, 0x80, 0x18, +0xDE, 0x40, 0x63, 0xF6, 0x98, 0xA0, 0xA3, 0xF3, +0xDD, 0xA0, 0x01, 0x6D, 0x00, 0x18, 0x04, 0xCE, +0x80, 0x18, 0x36, 0x6F, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x00, 0x6A, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF6, 0x50, 0x9A, +0xFF, 0x69, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0x9A, +0x2C, 0xEC, 0x01, 0x6D, 0x6B, 0xF0, 0x08, 0x48, +0x00, 0x18, 0x76, 0xD3, 0xA3, 0xF3, 0x7C, 0xA0, +0x01, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x1D, 0x22, +0xA3, 0xF3, 0x59, 0xA0, 0x04, 0x72, 0x19, 0x60, +0xA3, 0xF3, 0x5A, 0xA0, 0x02, 0x72, 0x15, 0x60, +0x02, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x03, 0x22, +0x80, 0x18, 0xE6, 0x40, 0x0E, 0x10, 0x80, 0x18, +0xDC, 0x70, 0xA3, 0xF3, 0x5A, 0xA0, 0x0C, 0x6C, +0x08, 0x72, 0x02, 0x60, 0x06, 0x2A, 0x04, 0x6C, +0xA3, 0xF3, 0xDD, 0xA0, 0x00, 0x6D, 0x00, 0x18, +0x04, 0xCE, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xC3, 0xF3, 0x94, 0xA2, 0x01, 0x6B, +0xFF, 0x6D, 0x6C, 0xEC, 0x49, 0x24, 0xA3, 0xF3, +0x9C, 0xA2, 0x8C, 0xEB, 0xAC, 0xEB, 0x44, 0x23, +0xC3, 0xF3, 0x7A, 0xA2, 0xFF, 0x73, 0x27, 0x60, +0xFF, 0x4B, 0xC3, 0xF3, 0x7A, 0xC2, 0xC3, 0xF3, +0xDA, 0xA2, 0x21, 0x2E, 0xC3, 0xF3, 0x99, 0xA2, +0x21, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xC3, 0xF3, +0x95, 0xA2, 0xC3, 0xF3, 0x79, 0xC2, 0x1F, 0x6B, +0x8C, 0xEB, 0xC3, 0xF3, 0x17, 0xA2, 0xA0, 0xF0, +0xF6, 0xA2, 0xC3, 0xF3, 0x75, 0xC2, 0x10, 0x6B, +0x0F, 0x6C, 0x6B, 0xEB, 0x8C, 0xEF, 0x0C, 0xEB, +0xED, 0xEB, 0xC3, 0xF3, 0x77, 0xC2, 0xC3, 0xF3, +0xD8, 0xC2, 0xE3, 0xF3, 0x40, 0xA2, 0x4C, 0xEC, +0xAC, 0xEC, 0x00, 0x18, 0x34, 0xE7, 0x30, 0xF0, +0x20, 0x6A, 0x2E, 0xF4, 0xBC, 0xA2, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF5, 0x40, 0x9A, 0x0F, 0x6B, +0xA6, 0x35, 0x02, 0x6C, 0x6C, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF5, 0x4C, 0x9A, +0x40, 0xEA, 0x06, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF5, 0x48, 0x9A, 0x06, 0x6C, 0x40, 0xEA, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x02, 0x6C, 0x80, 0x18, 0x5E, 0x73, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x01, 0x6C, 0x80, 0x18, 0x5E, 0x73, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x6C, 0x80, 0x18, 0x5E, 0x73, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF6, 0x50, 0x9A, 0xFF, 0x68, 0x0C, 0xEC, +0xC0, 0x9A, 0x00, 0x6D, 0x00, 0x18, 0x76, 0xD3, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xA3, 0xF3, 0x9C, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, +0x0C, 0xEB, 0x36, 0x23, 0xA3, 0xF3, 0x79, 0xA2, +0x04, 0x73, 0x32, 0x60, 0xA3, 0xF3, 0x7A, 0xA2, +0x02, 0x73, 0x2E, 0x60, 0x02, 0x6B, 0x8C, 0xEB, +0x0C, 0xEB, 0x03, 0x23, 0x80, 0x18, 0xE6, 0x40, +0x27, 0x10, 0x80, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x0C, 0xEB, 0x05, 0x23, 0xA3, 0xF3, 0x9F, 0xA2, +0x80, 0x18, 0x77, 0x40, 0x08, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0xFF, 0x6C, +0xA4, 0x67, 0xC4, 0x67, 0x40, 0xEA, 0x80, 0x18, +0x4A, 0x40, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xA3, 0xF3, 0x7A, 0xA2, 0x0C, 0x73, +0x03, 0x61, 0x08, 0x6C, 0x00, 0x6D, 0x04, 0x10, +0x04, 0x73, 0x06, 0x61, 0x00, 0x6C, 0xA4, 0x67, +0xA3, 0xF3, 0xDD, 0xA2, 0x00, 0x18, 0x04, 0xCE, +0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, +0xC3, 0xF3, 0x74, 0xA0, 0x01, 0x6A, 0xFF, 0x69, +0x4C, 0xEB, 0x80, 0xF0, 0x0C, 0x23, 0xA3, 0xF3, +0x7C, 0xA0, 0x6C, 0xEA, 0x2C, 0xEA, 0x80, 0xF0, +0x06, 0x22, 0xC3, 0xF3, 0x79, 0xA0, 0x40, 0x6A, +0x6C, 0xEA, 0x2C, 0xEA, 0x45, 0x22, 0x20, 0x6A, +0x6D, 0xEA, 0xC3, 0xF3, 0x59, 0xC0, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF5, 0x98, 0x9A, 0x00, 0x18, +0xB3, 0xE5, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF5, +0x80, 0x9A, 0x00, 0x18, 0xB3, 0xE5, 0xC3, 0xF3, +0x56, 0xA0, 0x0F, 0x6B, 0x4C, 0xEB, 0x2C, 0xEB, +0x00, 0x6A, 0x11, 0x10, 0x0C, 0x6D, 0xB8, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x6B, 0xF0, 0x08, 0x4C, +0x12, 0xED, 0x91, 0xE5, 0xC3, 0xF3, 0xBF, 0xA4, +0x07, 0x6C, 0xAC, 0xEC, 0x02, 0x74, 0x05, 0x60, +0x01, 0x4A, 0xFF, 0x6C, 0x8C, 0xEA, 0x62, 0xEA, +0xED, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, +0x08, 0x48, 0xC3, 0xF3, 0xB4, 0xA0, 0x0F, 0x6C, +0x1F, 0x6B, 0x8C, 0xEA, 0x6B, 0xEB, 0x44, 0x32, +0xAC, 0xEB, 0x4D, 0xEB, 0xE3, 0xF3, 0x40, 0xA0, +0xC3, 0xF3, 0x74, 0xC0, 0x4C, 0xEC, 0x00, 0x18, +0x5A, 0xE7, 0xC3, 0xF3, 0x79, 0xA0, 0x41, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xC3, 0xF3, 0x59, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x2E, 0xF4, 0xBC, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF5, 0x40, 0x9A, +0x0F, 0x6B, 0xA6, 0x35, 0x02, 0x6C, 0x6C, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF5, +0x4C, 0x9A, 0x40, 0xEA, 0x06, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF5, 0x48, 0x9A, 0x06, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, +0x48, 0x9A, 0x0F, 0x6C, 0xFF, 0x6E, 0xE0, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0xC3, 0xF3, 0xB4, 0xA2, 0xC3, 0xF3, 0x64, 0x9A, +0xCC, 0xEF, 0xA6, 0x35, 0x8C, 0xED, 0x0C, 0x6C, +0x98, 0xED, 0x62, 0x33, 0x6A, 0x33, 0x12, 0xED, +0x49, 0xE5, 0xE3, 0xF3, 0x80, 0xA2, 0x4F, 0x47, +0x57, 0x32, 0x92, 0x34, 0x8F, 0xE3, 0x53, 0xE3, +0xCC, 0xEC, 0x80, 0x18, 0xC5, 0x69, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x02, 0x6C, 0x80, 0x18, +0xB1, 0x73, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x01, 0x6C, 0x80, 0x18, +0xB1, 0x73, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x6C, 0x80, 0x18, +0xB1, 0x73, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0xF7, 0x1F, 0x6B, 0xAC, 0xEB, 0x06, 0xD3, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF2, 0x68, 0x9B, +0xFF, 0x6A, 0x8C, 0xEA, 0x80, 0xAB, 0xE1, 0xF7, +0x1F, 0x6B, 0x00, 0x68, 0x8C, 0xEB, 0x69, 0xE2, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0x80, 0x9B, +0x5C, 0x32, 0x91, 0xE2, 0x04, 0xD4, 0x22, 0x10, +0x04, 0x92, 0x40, 0x9A, 0x05, 0xD2, 0x0D, 0x28, +0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, +0x05, 0x96, 0x01, 0x6D, 0x83, 0xF1, 0x18, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x05, 0x96, 0x01, 0x6D, 0x83, 0xF1, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x04, 0x93, +0x01, 0x48, 0xFF, 0xF7, 0x1F, 0x6A, 0x04, 0x4B, +0x4C, 0xE8, 0x04, 0xD3, 0x06, 0x92, 0x43, 0xE8, +0xDB, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0x10, 0xF0, 0x23, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xCA, 0xF5, 0x11, 0x4B, +0x40, 0xF1, 0x68, 0xDA, 0x10, 0xF0, 0x23, 0x6B, +0x40, 0xF1, 0x08, 0x4A, 0x40, 0xF5, 0x05, 0x4B, +0x61, 0xDA, 0x10, 0xF0, 0x23, 0x6B, 0x2A, 0xF6, +0x05, 0x4B, 0x62, 0xDA, 0x10, 0xF0, 0x23, 0x6B, +0x0A, 0xF6, 0x15, 0x4B, 0x63, 0xDA, 0x10, 0xF0, +0x23, 0x6B, 0x0A, 0xF6, 0x05, 0x4B, 0x64, 0xDA, +0x10, 0xF0, 0x23, 0x6B, 0xEA, 0xF5, 0x15, 0x4B, +0x65, 0xDA, 0x10, 0xF0, 0x23, 0x6B, 0xEA, 0xF5, +0x05, 0x4B, 0x66, 0xDA, 0x10, 0xF0, 0x23, 0x6B, +0xCA, 0xF5, 0x15, 0x4B, 0x67, 0xDA, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x00, 0x6B, 0x63, 0xF3, 0x74, 0xC2, 0x63, 0xF3, +0x75, 0xC2, 0x63, 0xF3, 0x76, 0xC2, 0x63, 0xF3, +0x77, 0xC2, 0x42, 0xF4, 0x10, 0x6A, 0x1F, 0xF7, +0x00, 0x6B, 0x4C, 0xEB, 0x02, 0xF0, 0x00, 0x73, +0x01, 0x60, 0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF0, 0x60, 0x9B, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF0, 0x64, 0x9B, 0x6D, 0xE2, +0x04, 0x4A, 0x00, 0x6C, 0x62, 0xF4, 0x00, 0x72, +0x80, 0xDB, 0xE9, 0x61, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF2, 0x50, 0x9A, 0x03, 0x6C, 0x60, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, 0x50, 0x9A, +0x00, 0xF5, 0x62, 0x33, 0x8C, 0xEB, 0x40, 0x9A, +0x01, 0x73, 0x42, 0x32, 0x52, 0x32, 0x8C, 0xEA, +0x05, 0x60, 0x0B, 0x2B, 0x02, 0x5A, 0x50, 0x6C, +0x0D, 0x60, 0x03, 0x10, 0x02, 0x5A, 0x0A, 0x60, +0x28, 0x6C, 0x87, 0xEA, 0xFF, 0x6A, 0x4C, 0xEC, +0x06, 0x10, 0x02, 0x5A, 0x28, 0x6C, 0x03, 0x60, +0x14, 0x6C, 0x01, 0x10, 0x50, 0x6C, 0x80, 0x18, +0x62, 0x77, 0x80, 0x18, 0xD1, 0x00, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF1, 0x68, 0x9B, 0x00, 0x6A, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF0, +0x70, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF1, 0x78, 0x9B, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF2, 0x64, 0x9B, 0x40, 0xCB, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, 0x7C, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, +0x64, 0x9B, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0x6B, 0xF0, 0x08, 0x48, 0x00, 0x69, 0xA0, 0xF0, +0x24, 0xD8, 0xA0, 0xF1, 0x20, 0xC0, 0x80, 0x18, +0x55, 0x74, 0x80, 0x18, 0xD4, 0x75, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF2, +0x3C, 0xC0, 0xEE, 0xF3, 0x04, 0x4A, 0xEE, 0xF3, +0x14, 0x4C, 0x00, 0x6B, 0x60, 0xC2, 0x70, 0xC2, +0x01, 0x4A, 0x62, 0x67, 0x8E, 0xEB, 0xF9, 0x2B, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, 0x63, 0xF3, +0x79, 0xC2, 0x63, 0xF3, 0x7A, 0xC2, 0x63, 0xF3, +0x7B, 0xC2, 0x63, 0xF3, 0x78, 0xC2, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x80, 0x18, 0x6C, 0x74, 0x80, 0x18, 0xE9, 0x74, +0x00, 0x18, 0xFF, 0xC1, 0x00, 0x18, 0x0E, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x50, 0x9A, +0x40, 0xEA, 0x80, 0x18, 0xB3, 0x41, 0x00, 0x18, +0x89, 0xF1, 0x80, 0x18, 0x04, 0x29, 0x80, 0x18, +0x57, 0x62, 0x80, 0x18, 0x11, 0x69, 0x00, 0x18, +0x14, 0xCD, 0x00, 0x18, 0xD6, 0xC5, 0x80, 0x18, +0x34, 0x40, 0x80, 0x18, 0x36, 0x6F, 0x30, 0xF0, +0x20, 0x6A, 0x60, 0xF4, 0x44, 0x9A, 0x40, 0xEA, +0x80, 0x18, 0xFC, 0x64, 0x80, 0x18, 0xF0, 0x26, +0x00, 0x18, 0x67, 0xE5, 0x01, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, +0x10, 0xF0, 0x24, 0x6C, 0x01, 0x6F, 0x00, 0x6D, +0x64, 0x6E, 0xEB, 0xEF, 0x12, 0xF4, 0x11, 0x4C, +0x40, 0xEA, 0x00, 0x18, 0x83, 0xE5, 0x80, 0x18, +0x78, 0x00, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x08, 0x4A, 0xC7, 0xF3, 0x88, 0xA2, 0x02, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0xC7, 0xF3, 0x68, 0xC2, +0x80, 0x18, 0x52, 0x6B, 0x07, 0x97, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0x00, 0x6B, 0xA0, 0xF6, +0x62, 0xC2, 0xA0, 0xF6, 0x63, 0xC2, 0xA0, 0xF1, +0x60, 0xC2, 0xA0, 0xF1, 0x61, 0xC2, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, 0x08, 0x4A, +0x87, 0xF3, 0x61, 0xA2, 0x0F, 0x23, 0x87, 0xF3, +0x60, 0xA2, 0x0C, 0x23, 0x87, 0xF3, 0x66, 0xA2, +0x09, 0x23, 0x87, 0xF3, 0x62, 0xA2, 0x06, 0x23, +0x87, 0xF3, 0x64, 0xA2, 0x03, 0x23, 0x87, 0xF3, +0x43, 0xA2, 0x1E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x70, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, +0x10, 0xF0, 0x00, 0x6D, 0x40, 0xAB, 0xAB, 0xED, +0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xCB, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x40, 0x9A, +0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF6, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF0, 0x50, 0x9A, 0x60, 0xDA, 0xF0, 0x17, +0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x48, 0x98, 0x0A, 0xD4, 0x04, 0x05, +0xE0, 0xF1, 0x14, 0x6C, 0x40, 0xEA, 0x7D, 0x67, +0x50, 0xA3, 0x0A, 0x95, 0xE0, 0xF1, 0x15, 0x6C, +0x30, 0xF0, 0x20, 0x69, 0x40, 0xC5, 0xC0, 0xF3, +0x48, 0x98, 0x04, 0x05, 0x6B, 0xF0, 0x08, 0x49, +0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x0A, 0x95, +0xE0, 0xF1, 0x16, 0x6C, 0x41, 0xC5, 0xC0, 0xF3, +0x48, 0x98, 0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, +0x50, 0xA3, 0x0A, 0x95, 0xE0, 0xF1, 0x17, 0x6C, +0x42, 0xC5, 0xC0, 0xF3, 0x48, 0x98, 0x04, 0x05, +0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x0A, 0x95, +0xE0, 0xF1, 0x18, 0x6C, 0x43, 0xC5, 0xC0, 0xF3, +0x48, 0x98, 0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, +0x50, 0xA3, 0x0A, 0x95, 0xE0, 0xF1, 0x19, 0x6C, +0x44, 0xC5, 0xC0, 0xF3, 0x48, 0x98, 0x04, 0x05, +0x40, 0xEA, 0xBD, 0x67, 0x90, 0xA5, 0x87, 0xF3, +0x44, 0xA1, 0x0F, 0x6B, 0x8C, 0xEB, 0x50, 0x32, +0x6D, 0xEA, 0x0A, 0x93, 0x04, 0x05, 0xE0, 0xF1, +0x1B, 0x6C, 0x45, 0xC3, 0xC0, 0xF3, 0x48, 0x98, +0x40, 0xEA, 0x87, 0xF3, 0x46, 0xA1, 0x87, 0xF3, +0x61, 0xA1, 0x0A, 0x95, 0x4C, 0x32, 0x74, 0x33, +0x6D, 0xEA, 0x87, 0xF3, 0x60, 0xA1, 0x6D, 0xEA, +0x46, 0xC5, 0x87, 0xF3, 0x42, 0xA1, 0x87, 0xF3, +0x63, 0xA1, 0x48, 0x32, 0x78, 0x33, 0x6D, 0xEA, +0x33, 0x6B, 0x6D, 0xEA, 0x47, 0xC5, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x48, 0x98, +0x24, 0x67, 0x04, 0x05, 0xE0, 0xF1, 0x10, 0x6C, +0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x04, 0x05, +0xE0, 0xF1, 0x11, 0x6C, 0x40, 0xC1, 0xC0, 0xF3, +0x48, 0x98, 0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, +0x04, 0x05, 0xE0, 0xF1, 0x12, 0x6C, 0x41, 0xC1, +0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, 0x7D, 0x67, +0x50, 0xA3, 0x04, 0x05, 0xE0, 0xF1, 0x13, 0x6C, +0x42, 0xC1, 0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, +0x7D, 0x67, 0x50, 0xA3, 0x04, 0x05, 0xE0, 0xF1, +0x1C, 0x6C, 0x43, 0xC1, 0xC0, 0xF3, 0x48, 0x98, +0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x04, 0x05, +0xE0, 0xF1, 0x1D, 0x6C, 0x44, 0xC1, 0xC0, 0xF3, +0x48, 0x98, 0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, +0x04, 0x05, 0xE0, 0xF1, 0x1E, 0x6C, 0x45, 0xC1, +0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, 0x7D, 0x67, +0x50, 0xA3, 0xE0, 0xF1, 0x1F, 0x6C, 0x04, 0x05, +0x46, 0xC1, 0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, +0x7D, 0x67, 0x50, 0xA3, 0x47, 0xC1, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD0, 0x04, 0x00, +0x90, 0x67, 0x80, 0x18, 0x0B, 0x75, 0xA0, 0xF1, +0x02, 0x6A, 0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x05, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, 0x60, 0x9B, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, +0x64, 0x9B, 0x80, 0xA0, 0x6D, 0xE2, 0x01, 0x4A, +0xA0, 0xF1, 0x0A, 0x72, 0x80, 0xC3, 0x01, 0x48, +0xE8, 0x61, 0x04, 0x00, 0x90, 0x67, 0x80, 0x18, +0x42, 0x75, 0xA0, 0xF1, 0x0A, 0x6A, 0x1F, 0xF7, +0x00, 0x6B, 0x4C, 0xEB, 0x02, 0xF0, 0x00, 0x73, +0x01, 0x60, 0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF0, 0x60, 0x9B, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF0, 0x64, 0x9B, 0x80, 0xA0, +0x6D, 0xE2, 0x01, 0x4A, 0xA0, 0xF1, 0x0F, 0x72, +0x80, 0xC3, 0x01, 0x48, 0xE8, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF6, 0x44, 0x9A, 0x19, 0x6B, +0x60, 0xC2, 0x09, 0x97, 0x08, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, +0x08, 0x48, 0x87, 0xF3, 0x40, 0xA0, 0x0E, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, +0xE0, 0xF1, 0x1A, 0x6C, 0x04, 0x05, 0x40, 0xEA, +0x9D, 0x67, 0x70, 0xA4, 0x07, 0x6A, 0x6C, 0xEA, +0x87, 0xF3, 0x40, 0xC0, 0x30, 0xF0, 0x20, 0x68, +0x6B, 0xF0, 0x08, 0x48, 0x87, 0xF3, 0x41, 0xA0, +0x0D, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x48, 0x9A, 0xE0, 0xF1, 0x1A, 0x6C, 0x04, 0x05, +0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x56, 0x32, +0x87, 0xF3, 0x41, 0xC0, 0x30, 0xF0, 0x20, 0x68, +0x6B, 0xF0, 0x08, 0x48, 0x87, 0xF3, 0x46, 0xA0, +0x0F, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x48, 0x9A, 0xE0, 0xF1, 0x1A, 0x6C, 0x04, 0x05, +0x40, 0xEA, 0x9D, 0x67, 0x50, 0xA4, 0x18, 0x6B, +0x6C, 0xEA, 0x4F, 0x32, 0x87, 0xF3, 0x46, 0xC0, +0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, +0x87, 0xF3, 0x44, 0xA0, 0x0D, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, +0x1C, 0x6C, 0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, +0x50, 0xA3, 0x52, 0x32, 0x87, 0xF3, 0x44, 0xC0, +0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, 0x08, 0x48, +0x87, 0xF3, 0x42, 0xA0, 0x0E, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, +0x1D, 0x6C, 0x04, 0x05, 0x40, 0xEA, 0x9D, 0x67, +0x70, 0xA4, 0x03, 0x6A, 0x6C, 0xEA, 0x87, 0xF3, +0x42, 0xC0, 0x30, 0xF0, 0x20, 0x68, 0x6B, 0xF0, +0x08, 0x48, 0x87, 0xF3, 0x43, 0xA0, 0x0F, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, +0xE0, 0xF1, 0x1D, 0x6C, 0x04, 0x05, 0x40, 0xEA, +0x7D, 0x67, 0x50, 0xA3, 0x30, 0x6B, 0x6C, 0xEA, +0x53, 0x32, 0x87, 0xF3, 0x43, 0xC0, 0x07, 0x97, +0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x48, 0x99, +0xE0, 0xF1, 0x19, 0x6C, 0x04, 0x05, 0x40, 0xEA, +0x7D, 0x67, 0x50, 0xA3, 0x30, 0xF0, 0x20, 0x68, +0x6B, 0xF0, 0x08, 0x48, 0x52, 0x32, 0x87, 0xF3, +0x44, 0xC0, 0xC0, 0xF3, 0x48, 0x99, 0xE0, 0xF1, +0x1B, 0x6C, 0x04, 0x05, 0x40, 0xEA, 0x9D, 0x67, +0x70, 0xA4, 0x07, 0x6A, 0x6C, 0xEA, 0x87, 0xF3, +0x40, 0xC0, 0x43, 0x67, 0x18, 0x6B, 0x4C, 0xEB, +0x6F, 0x33, 0x87, 0xF3, 0x66, 0xC0, 0x4F, 0x72, +0x56, 0x33, 0x87, 0xF3, 0x61, 0xC0, 0x0E, 0x61, +0xC0, 0xF3, 0x48, 0x99, 0xE0, 0xF1, 0x1A, 0x6C, +0x00, 0xF0, 0x11, 0x05, 0x40, 0xEA, 0x7D, 0x67, +0x51, 0xA3, 0x57, 0x72, 0x03, 0x61, 0x02, 0x6A, +0x87, 0xF3, 0x46, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, 0x1D, 0x6C, +0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, 0x90, 0xA3, +0x0C, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x8C, 0xEB, +0x6B, 0xF0, 0x08, 0x4A, 0x6B, 0x33, 0x9A, 0x34, +0x87, 0xF3, 0x62, 0xC2, 0x87, 0xF3, 0x83, 0xC2, +0x80, 0x18, 0x91, 0x75, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF6, 0x44, 0x9A, 0x60, 0xA2, 0xFF, 0x6A, +0x6C, 0xEA, 0xFD, 0x72, 0x02, 0x61, 0x80, 0x18, +0x6C, 0x75, 0x80, 0x18, 0xF0, 0x74, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF7, 0x40, 0x9A, +0x01, 0x6B, 0x60, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF7, 0x84, 0x9A, +0xFF, 0x6B, 0x20, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, +0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF0, 0x84, 0x9A, 0x08, 0x6D, +0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, +0x40, 0xC4, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF7, 0x68, 0x9A, 0xFD, 0x6A, 0xFF, 0x6C, +0xA0, 0xA3, 0xAC, 0xEA, 0x40, 0xC3, 0x40, 0xA3, +0x01, 0x6D, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xC3, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x48, 0x9A, 0x03, 0xF1, 0x88, 0x9B, +0x00, 0x6D, 0x02, 0xF0, 0x00, 0x6E, 0x40, 0xEA, +0x00, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, +0x68, 0x9B, 0x54, 0x34, 0x01, 0x4A, 0x6D, 0xE4, +0x80, 0x72, 0x04, 0x6C, 0x80, 0xC3, 0xF5, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF3, 0x8C, 0x9B, 0x80, 0xF2, 0x48, 0x9A, +0x00, 0x6D, 0x00, 0xF4, 0x00, 0x6E, 0x40, 0xEA, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0x52, 0x9B, 0x8D, 0xEA, 0x52, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF7, 0x6C, 0x9B, 0x80, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0x68, 0x9B, +0x40, 0xDB, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0xB2, 0x9B, 0x8F, 0xEA, +0xAC, 0xEA, 0x52, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF0, 0x68, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF7, 0x4C, 0x9A, 0x80, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0x05, 0x5C, 0x5E, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, 0xA2, 0xF6, +0x10, 0x4A, 0x89, 0xE2, 0x40, 0x9A, 0x00, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x48, 0x9B, +0xAD, 0xEA, 0x6B, 0xF0, 0x48, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF6, 0x68, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x68, 0x9B, +0x32, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, +0x08, 0x4B, 0x41, 0x9B, 0xAD, 0xEA, 0x41, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF7, 0x70, 0x9B, +0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, +0x6C, 0x9B, 0x21, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0x42, 0x9B, 0xAD, 0xEA, +0x42, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF7, +0x74, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF0, 0x70, 0x9B, 0x10, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, 0x43, 0x9B, +0xAD, 0xEA, 0x43, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF7, 0x78, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF0, 0x78, 0x9B, 0x40, 0xDB, +0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, +0x08, 0x4B, 0x44, 0x9B, 0xAD, 0xEA, 0x44, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF7, 0x7C, 0x9B, +0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, +0x7C, 0x9B, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, +0x05, 0x5C, 0x63, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x88, 0x34, 0xC2, 0xF6, 0x04, 0x4A, 0x89, 0xE2, +0x40, 0x9A, 0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x88, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, +0x6B, 0xF0, 0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF0, 0x68, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF6, 0x48, 0x9A, 0x35, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0x81, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x41, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x6C, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF7, +0x50, 0x9A, 0x23, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0x82, 0x9B, 0xAF, 0xEA, +0x8C, 0xEA, 0x42, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF0, 0x70, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF7, 0x54, 0x9A, 0x11, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0x83, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x43, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x78, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF7, +0x58, 0x9A, 0xA0, 0xDA, 0x20, 0xE8, 0x30, 0xF0, +0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, 0x84, 0x9B, +0xAF, 0xEA, 0x8C, 0xEA, 0x44, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF0, 0x7C, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF7, 0x5C, 0x9A, +0xA0, 0xDA, 0x20, 0xE8, 0x01, 0x74, 0x15, 0x60, +0x03, 0x24, 0x02, 0x74, 0x23, 0x60, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0x54, 0x9B, 0xAD, 0xEA, 0x54, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF1, 0x68, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0x6C, 0x9B, +0x21, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, +0x08, 0x4B, 0x55, 0x9B, 0xAD, 0xEA, 0x55, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF6, 0x6C, 0x9B, +0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, +0x60, 0x9B, 0x10, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0x56, 0x9B, 0xAD, 0xEA, +0x56, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF7, +0x60, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF0, 0x64, 0x9B, 0x40, 0xDB, 0x20, 0xE8, +0x01, 0x74, 0x16, 0x60, 0x03, 0x24, 0x02, 0x74, +0x25, 0x60, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0x94, 0x9B, 0xAF, 0xEA, +0x8C, 0xEA, 0x54, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF0, 0x6C, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF1, 0x48, 0x9A, 0x23, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x6B, 0xF0, 0x08, 0x4B, +0x95, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x55, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0x60, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, +0x4C, 0x9A, 0x11, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0x96, 0x9B, 0xAF, 0xEA, +0x8C, 0xEA, 0x56, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF0, 0x64, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF7, 0x40, 0x9A, 0xA0, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6C, +0xC3, 0xF0, 0x88, 0x9C, 0x00, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x6B, 0xF0, 0x48, 0xDB, 0x6B, 0xF0, +0x08, 0x4B, 0x41, 0xDB, 0x42, 0xDB, 0x43, 0xDB, +0x44, 0xDB, 0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, +0xC3, 0xF0, 0x8C, 0x9C, 0x40, 0xDC, 0x30, 0xF0, +0x20, 0x6C, 0xC3, 0xF0, 0x90, 0x9C, 0x40, 0xDC, +0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF0, 0x98, 0x9C, +0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF0, +0x9C, 0x9C, 0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, +0xE3, 0xF0, 0x8C, 0x9C, 0x54, 0xDB, 0x55, 0xDB, +0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF0, +0x80, 0x9C, 0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, +0xE3, 0xF0, 0x84, 0x9C, 0x56, 0xDB, 0x40, 0xDC, +0x52, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, +0x68, 0x9B, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF6, 0x68, 0x9B, +0x01, 0x6A, 0x4B, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF7, 0x70, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF7, 0x74, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF7, +0x78, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF7, 0x7C, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF1, 0x68, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF6, 0x6C, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF7, +0x60, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF7, 0x6C, 0x9B, 0x40, 0xDB, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, 0xA4, 0x9A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF3, 0x12, 0x6E, +0x6B, 0xF0, 0xC8, 0xDB, 0x01, 0xF7, 0x01, 0x6A, +0x6B, 0xF0, 0x08, 0x4B, 0x00, 0x6C, 0x42, 0xDB, +0x43, 0xDB, 0xA1, 0xDB, 0x84, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF0, 0x68, 0x9B, 0xC0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, 0x6C, 0x9B, +0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF0, +0x70, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF0, 0x78, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF0, 0x5C, 0x9A, 0x80, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0x80, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xAB, 0xF0, 0x50, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF0, 0x68, 0x9B, 0x40, 0xDB, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF7, 0x88, 0x9B, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xC0, 0xF1, 0x0F, 0x6D, +0xFF, 0x6B, 0xB4, 0xDA, 0x95, 0xDA, 0x76, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, 0x4C, 0x9A, +0xA0, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, +0x40, 0x9A, 0x80, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF0, 0x44, 0x9A, 0x60, 0xDA, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xE5, 0x76, +0x80, 0x18, 0x04, 0x77, 0x80, 0x18, 0x1C, 0x77, +0x80, 0x18, 0x39, 0x77, 0x80, 0x18, 0x33, 0x77, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0x76, 0x77, 0x30, 0xF0, 0x20, 0x6B, +0x6B, 0xF0, 0x08, 0x4B, 0x22, 0xF6, 0x54, 0xC3, +0x00, 0x6A, 0x22, 0xF6, 0x55, 0xC3, 0x80, 0x18, +0x15, 0x76, 0x80, 0x18, 0xA4, 0x79, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF7, 0x4C, 0x9A, 0x3F, 0x6B, +0x60, 0xC2, 0x80, 0x18, 0x06, 0x76, 0x80, 0x18, +0x0A, 0x76, 0x80, 0x18, 0x1D, 0x76, 0x80, 0x18, +0xEE, 0x78, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x6B, 0xD6, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x44, 0x9A, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, 0x48, 0x9A, +0xE0, 0xF1, 0x1B, 0x6B, 0x6B, 0xEB, 0x60, 0xCA, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x78, 0x9A, +0xFB, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, 0x6C, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF6, 0x8C, 0x9C, +0x40, 0x9B, 0x8C, 0xEA, 0x40, 0xDB, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF0, 0x40, 0x9A, +0xFF, 0xF7, 0x1F, 0x6B, 0x40, 0xAA, 0x4C, 0xEB, +0x62, 0x33, 0x03, 0x6A, 0x72, 0x33, 0x4C, 0xEB, +0x02, 0x6A, 0x04, 0x23, 0x01, 0x73, 0x01, 0x6A, +0x01, 0x60, 0x03, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0x10, 0xF0, 0x23, 0x6A, 0xCB, 0xF4, 0x0D, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, 0x48, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0xEB, 0xF4, 0x01, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, 0x4C, 0xDB, +0x10, 0xF0, 0x32, 0x6A, 0xBB, 0xF5, 0x01, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, 0x50, 0xDB, +0x10, 0xF0, 0x24, 0x6A, 0x35, 0xF3, 0x09, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF2, 0x48, 0xDB, +0x10, 0xF0, 0x31, 0x6A, 0x24, 0xF0, 0x1D, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF2, 0x4C, 0xDB, +0x10, 0xF0, 0x24, 0x6A, 0xF5, 0xF2, 0x19, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, 0x54, 0xDB, +0x10, 0xF0, 0x24, 0x6A, 0xF1, 0xF7, 0x19, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF2, 0x50, 0xDB, +0x10, 0xF0, 0x24, 0x6A, 0xD8, 0xF0, 0x0D, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF2, 0x54, 0xDB, +0x10, 0xF0, 0x24, 0x6A, 0x18, 0xF0, 0x0D, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF2, 0x54, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0x2A, 0xF1, 0x09, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF2, 0x58, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0x6A, 0xF2, 0x15, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF2, 0x5C, 0xDB, +0x10, 0xF0, 0x24, 0x6A, 0x30, 0xF1, 0x05, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF3, 0x40, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0x4E, 0xF0, 0x19, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF3, 0x44, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0xAE, 0xF0, 0x01, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF3, 0x48, 0xDB, +0x10, 0xF0, 0x24, 0x6A, 0x12, 0xF7, 0x19, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF3, 0x4C, 0xDB, +0x10, 0xF0, 0x32, 0x6A, 0x73, 0xF5, 0x19, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF4, 0x58, 0xDB, +0x10, 0xF0, 0x32, 0x6A, 0x17, 0xF0, 0x0D, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF4, 0x50, 0xDB, +0x10, 0xF0, 0x32, 0x6A, 0x97, 0xF0, 0x01, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF4, 0x54, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0x2D, 0xF1, 0x1D, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF4, 0x5C, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0x8D, 0xF3, 0x05, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF4, 0x40, 0xDB, +0x10, 0xF0, 0x24, 0x6A, 0x76, 0xF2, 0x05, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF4, 0x5C, 0xDB, +0x10, 0xF0, 0x24, 0x6A, 0x16, 0xF3, 0x01, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x40, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0xC2, 0xF5, 0x05, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x48, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0x42, 0xF5, 0x1D, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x4C, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0x8E, 0xF1, 0x1D, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x44, 0xDB, +0x10, 0xF0, 0x32, 0x6A, 0xD7, 0xF0, 0x09, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF4, 0x54, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0x29, 0xF1, 0x15, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x58, 0xDB, +0x10, 0xF0, 0x24, 0x6A, 0xD7, 0xF2, 0x19, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x5C, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0x69, 0xF1, 0x0D, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF4, 0x40, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0x49, 0xF4, 0x15, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x50, 0xDB, +0x10, 0xF0, 0x31, 0x6A, 0xD4, 0xF7, 0x11, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF5, 0x44, 0xDB, +0x10, 0xF0, 0x31, 0x6A, 0x74, 0xF0, 0x01, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0xC9, 0xF1, 0x19, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF4, 0x54, 0xDB, +0x10, 0xF0, 0x32, 0x6A, 0xD0, 0xF0, 0x1D, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF5, 0x4C, 0xDB, +0x10, 0xF0, 0x32, 0x6A, 0xB0, 0xF3, 0x0D, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF5, 0x58, 0xDB, +0x10, 0xF0, 0x31, 0x6A, 0x4F, 0xF1, 0x1D, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF5, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xB9, 0xF1, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF5, 0x50, 0xDB, +0x10, 0xF0, 0x31, 0x6A, 0x8F, 0xF0, 0x15, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF5, 0x4C, 0xDB, +0x10, 0xF0, 0x31, 0x6A, 0xCE, 0xF6, 0x1D, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF5, 0x50, 0xDB, +0x10, 0xF0, 0x31, 0x6A, 0x2F, 0xF0, 0x0D, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF5, 0x54, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0x8B, 0xF2, 0x01, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF3, 0x44, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0xAB, 0xF2, 0x0D, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF3, 0x4C, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0x8B, 0xF2, 0x0D, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF3, 0x48, 0xDB, +0x10, 0xF0, 0x32, 0x6A, 0x12, 0xF3, 0x09, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF3, 0x50, 0xDB, +0x10, 0xF0, 0x32, 0x6A, 0xD1, 0xF5, 0x1D, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF5, 0x48, 0xDB, +0x10, 0xF0, 0x32, 0x6A, 0x52, 0xF0, 0x1D, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF5, 0x50, 0xDB, +0x10, 0xF0, 0x32, 0x6A, 0xB5, 0xF0, 0x05, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF5, 0x40, 0xDB, +0x10, 0xF0, 0x32, 0x6A, 0x96, 0xF2, 0x05, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF5, 0x48, 0xDB, +0x10, 0xF0, 0x32, 0x6A, 0x76, 0xF4, 0x0D, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF5, 0x4C, 0xDB, +0x10, 0xF0, 0x32, 0x6A, 0xF4, 0xF6, 0x0D, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF5, 0x44, 0xDB, +0x10, 0xF0, 0x32, 0x6A, 0x15, 0xF0, 0x01, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF5, 0x50, 0xDB, +0x10, 0xF0, 0x32, 0x6A, 0x96, 0xF3, 0x05, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF5, 0x54, 0xDB, +0x10, 0xF0, 0x32, 0x6A, 0x76, 0xF1, 0x15, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF5, 0x58, 0xDB, +0x10, 0xF0, 0x32, 0x6A, 0xF6, 0xF0, 0x09, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF5, 0x5C, 0xDB, +0x10, 0xF0, 0x31, 0x6A, 0x55, 0xF0, 0x11, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF3, 0x40, 0xDB, +0x10, 0xF0, 0x31, 0x6A, 0x89, 0xF7, 0x05, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF6, 0x50, 0xDB, +0x10, 0xF0, 0x30, 0x6A, 0x81, 0xF0, 0x0D, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF6, 0x54, 0xDB, +0x10, 0xF0, 0x30, 0x6A, 0x23, 0xF4, 0x01, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF6, 0x58, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x0B, 0xF1, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF6, 0x5C, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xAD, 0xF6, 0x04, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF6, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xCE, 0xF2, 0x68, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6C, +0x20, 0xF6, 0x64, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0xCE, 0xF2, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xCE, 0xF3, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x4C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x0E, 0xF4, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x50, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x2F, 0xF7, 0x04, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x54, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x58, 0xDB, 0x30, 0xF0, 0x21, 0x6A, +0x31, 0xF7, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x5C, 0xDB, 0x30, 0xF0, 0x21, 0x6A, +0x32, 0xF2, 0x1B, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF6, 0x40, 0xDB, 0x30, 0xF0, 0x21, 0x6A, +0x52, 0xF2, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF6, 0x44, 0xDB, 0x30, 0xF0, 0x21, 0x6A, +0x52, 0xF2, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF6, 0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x0B, 0xF1, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF6, 0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x4E, 0xF4, 0x04, 0x4A, +0x60, 0xF6, 0x4C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xF6, 0x0C, 0x4B, 0x4E, 0xF4, 0x10, 0x4A, +0x41, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x4E, 0xF4, +0x1C, 0x4A, 0x42, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x2E, 0xF4, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF6, 0x58, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x6E, 0xF5, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF6, 0x5C, 0xDB, 0x30, 0xF0, 0x21, 0x6A, +0x32, 0xF4, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF6, 0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x6E, 0xF4, 0x08, 0x4B, 0x80, 0xF6, 0x60, 0xDC, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF6, 0x00, 0x4C, +0xEE, 0xF4, 0x04, 0x4B, 0x61, 0xDC, 0x30, 0xF0, +0x20, 0x6B, 0x2E, 0xF4, 0x04, 0x4B, 0x30, 0xF0, +0x20, 0x6C, 0x80, 0xF6, 0x6C, 0xDC, 0x30, 0xF0, +0x20, 0x6B, 0x0F, 0xF6, 0x14, 0x4B, 0x30, 0xF0, +0x20, 0x6C, 0xC0, 0xF6, 0x68, 0xDC, 0x30, 0xF0, +0x20, 0x6B, 0xEF, 0xF5, 0x00, 0x4B, 0x30, 0xF0, +0x20, 0x6C, 0xC0, 0xF6, 0x6C, 0xDC, 0x30, 0xF0, +0x20, 0x6B, 0x6B, 0xF1, 0x02, 0x4B, 0x30, 0xF0, +0x20, 0x6C, 0xC0, 0xF6, 0x70, 0xDC, 0x30, 0xF0, +0x20, 0x6B, 0x0B, 0xF1, 0x10, 0x4B, 0x30, 0xF0, +0x20, 0x6C, 0xC0, 0xF6, 0x74, 0xDC, 0x30, 0xF0, +0x20, 0x6B, 0x0F, 0xF6, 0x1C, 0x4B, 0x30, 0xF0, +0x20, 0x6C, 0xC0, 0xF6, 0x78, 0xDC, 0x30, 0xF0, +0x20, 0x6B, 0x6B, 0xF1, 0x1E, 0x4B, 0x30, 0xF0, +0x20, 0x6C, 0xC0, 0xF6, 0x7C, 0xDC, 0x30, 0xF0, +0x20, 0x6B, 0x6B, 0xF1, 0x10, 0x4B, 0x30, 0xF0, +0x20, 0x6C, 0xE0, 0xF6, 0x60, 0xDC, 0x30, 0xF0, +0x20, 0x6B, 0x6B, 0xF1, 0x17, 0x4B, 0x30, 0xF0, +0x20, 0x6C, 0xE0, 0xF6, 0x64, 0xDC, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF6, 0x40, 0xDB, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x21, 0xF0, 0x00, 0x4B, 0x80, 0xF2, 0x08, 0x4A, +0x13, 0x10, 0x80, 0x9A, 0x10, 0x2C, 0x30, 0xF0, +0x20, 0x6C, 0x83, 0xF1, 0xA8, 0x9C, 0x30, 0xF0, +0x20, 0x6E, 0x03, 0xF1, 0xD4, 0x9E, 0x80, 0x9D, +0xCD, 0xEC, 0x80, 0xDD, 0x30, 0xF0, 0x20, 0x6C, +0x84, 0xF0, 0x84, 0x9C, 0x40, 0xDC, 0x04, 0x4A, +0x43, 0xEB, 0xEB, 0x60, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x5C, 0x9A, +0xE5, 0xF6, 0x1F, 0x6B, 0xFF, 0x6C, 0x60, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF0, 0x48, 0x9A, +0x10, 0x6B, 0x40, 0x6D, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x84, 0xF0, 0x4C, 0x9A, 0x01, 0x6B, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, +0x54, 0x9A, 0x60, 0xA2, 0x8C, 0xEB, 0xAD, 0xEB, +0x8C, 0xEB, 0x60, 0xC2, 0x80, 0xA2, 0xF8, 0x6B, +0x8C, 0xEB, 0x60, 0xC2, 0x80, 0xA2, 0xF7, 0x6B, +0x8C, 0xEB, 0x60, 0xC2, 0x80, 0xA2, 0xEF, 0x6B, +0x8C, 0xEB, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x84, 0xF0, 0x50, 0x9A, 0x00, 0xF2, 0x01, 0x6C, +0x8B, 0xEC, 0x60, 0x9A, 0x8C, 0xEB, 0x60, 0xDA, +0x60, 0x9A, 0x00, 0xF1, 0x00, 0x4C, 0x8C, 0xEB, +0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF0, +0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF2, +0x94, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF0, 0x58, 0x9A, +0x60, 0xA2, 0x04, 0x5B, 0x02, 0x60, 0x04, 0x6B, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, +0x40, 0x9A, 0x60, 0xAA, 0xFF, 0xF7, 0x1F, 0x6A, +0x6C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, +0x64, 0x9B, 0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF0, 0x74, 0x9A, 0x7F, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0xF7, 0x1F, 0x69, 0x2C, 0xED, 0x30, 0xF0, +0x20, 0x6B, 0x04, 0xD5, 0x84, 0xF0, 0xBC, 0x9B, +0xFF, 0x6A, 0x40, 0x6E, 0x60, 0xA5, 0xCB, 0xEE, +0x4C, 0xEC, 0x4C, 0xEB, 0xCC, 0xEB, 0x6D, 0xEC, +0x4C, 0xEC, 0x80, 0xC5, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF0, 0x40, 0x9A, +0x00, 0xAA, 0x04, 0x92, 0x2C, 0xE8, 0x2A, 0xEA, +0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, +0x44, 0x9A, 0x04, 0x94, 0x40, 0xEA, 0x04, 0x93, +0x2C, 0xEA, 0x6C, 0xE8, 0x07, 0xEA, 0x2C, 0xE8, +0x50, 0x67, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0xF7, 0x1F, 0x69, +0x2C, 0xED, 0xFF, 0x68, 0x0C, 0xEC, 0x2C, 0xEE, +0x2A, 0xED, 0x05, 0xD4, 0x04, 0xD5, 0x06, 0xD6, +0x1F, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF0, +0x7C, 0x9A, 0x40, 0x6C, 0x8B, 0xEC, 0x40, 0xA3, +0x0C, 0xEA, 0x8C, 0xEA, 0x05, 0x94, 0x8D, 0xEA, +0x0C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0xA4, 0xF0, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xA3, 0xF4, 0x8C, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF0, 0x94, 0x9C, +0x8D, 0xEA, 0xCD, 0xEA, 0x40, 0xDB, 0x34, 0x10, +0x05, 0x94, 0xB1, 0x67, 0x80, 0x18, 0x20, 0x79, +0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x94, +0xA0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x84, 0xF0, 0x9C, 0x9B, 0x40, 0x6D, +0xAB, 0xED, 0x60, 0xA4, 0x2C, 0xEA, 0x0C, 0xEB, +0xAC, 0xEB, 0x05, 0x95, 0xAD, 0xEB, 0x0C, 0xEB, +0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0xA4, 0xF0, +0x80, 0x9B, 0x30, 0xF0, 0x20, 0x6D, 0xA3, 0xF4, +0xAC, 0x9D, 0x60, 0x9C, 0x06, 0x96, 0xAC, 0xEB, +0x30, 0xF0, 0x20, 0x6D, 0x63, 0xF0, 0xB4, 0x9D, +0xC4, 0xEA, 0x46, 0x67, 0xAD, 0xEB, 0x04, 0x95, +0x07, 0x96, 0xAC, 0xEA, 0xAF, 0xED, 0xCC, 0xED, +0xAD, 0xEA, 0x2C, 0xEA, 0x4D, 0xEB, 0x60, 0xDC, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x0A, 0x6C, 0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x6C, 0x10, 0xF0, +0x00, 0x6D, 0x80, 0x18, 0x20, 0x79, 0x05, 0x97, +0x01, 0x5A, 0x58, 0x67, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF0, 0x70, 0x9B, 0x10, 0xF0, +0x32, 0x6A, 0xFC, 0xF5, 0x01, 0x4A, 0x40, 0xDB, +0x00, 0x68, 0x31, 0x10, 0x82, 0xF3, 0x08, 0x70, +0x1A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, +0x68, 0x9A, 0x02, 0xF0, 0x00, 0x6C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF0, 0x08, 0x4A, 0xA3, 0xF3, 0x60, 0x9A, +0x8D, 0xEB, 0xA3, 0xF3, 0x60, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF1, 0x48, 0x9A, 0x03, 0x6B, +0x6B, 0xEB, 0x60, 0xC2, 0x18, 0x10, 0xFF, 0xF7, +0x1F, 0x6A, 0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, +0x40, 0xEA, 0x33, 0x58, 0x08, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF7, 0x50, 0x9A, 0x60, 0xA2, +0x08, 0x6A, 0x6C, 0xEA, 0x04, 0x2A, 0x80, 0x18, +0x72, 0x79, 0x01, 0x72, 0xCB, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF1, 0x48, 0x9A, 0x02, 0x6B, +0x6B, 0xEB, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF0, 0x70, 0x9B, 0x10, 0xF0, 0x32, 0x6A, +0xFC, 0xF5, 0x02, 0x4A, 0x40, 0xDB, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF7, 0x70, 0x9A, 0x02, 0x6C, +0xFF, 0xF7, 0x1F, 0x6D, 0x40, 0x9B, 0xFF, 0x6E, +0x41, 0x4E, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF1, 0x7C, 0x9A, 0xE0, 0xF3, +0x1E, 0x4C, 0x30, 0xF0, 0x20, 0x68, 0x40, 0xAB, +0xAC, 0xEA, 0x8D, 0xEA, 0xAC, 0xEA, 0x40, 0xCB, +0x02, 0x6C, 0x80, 0x18, 0x3B, 0x79, 0x80, 0xF3, +0x4C, 0x98, 0x0A, 0x6C, 0x40, 0xEA, 0x00, 0x6C, +0xC0, 0x6D, 0x02, 0x6E, 0x80, 0x18, 0x3B, 0x79, +0x00, 0x6C, 0xC4, 0x67, 0x02, 0xF0, 0x00, 0x6D, +0x80, 0x18, 0x3B, 0x79, 0x00, 0x6C, 0xC4, 0x67, +0x0C, 0xF0, 0x00, 0x6D, 0x80, 0x18, 0x3B, 0x79, +0x00, 0x6C, 0x01, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x80, 0x18, 0x3B, 0x79, 0x10, 0xF0, 0x00, 0x6D, +0x01, 0x6E, 0x00, 0x6C, 0x80, 0x18, 0x3B, 0x79, +0x80, 0xF3, 0x4C, 0x98, 0x0A, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF0, 0x64, 0x9A, +0xFF, 0x6C, 0x04, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xA0, 0xD6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +u32 array_length_mp_8822c_fw_nic = 195672; + + +#if !(DM_ODM_SUPPORT_TYPE & (ODM_CE)) +u8 array_mp_8822c_fw_spic[] = { +0x22, 0x88, 0x00, 0x00, 0x09, 0x00, 0x0D, 0x00, +0x0F, 0x12, 0x23, 0xA2, 0x00, 0x00, 0x00, 0x00, +0x09, 0x18, 0x0F, 0x17, 0xE5, 0x07, 0x00, 0x00, +0x18, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, +0x00, 0x00, 0x20, 0x80, 0x28, 0x1C, 0x00, 0x00, +0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x20, 0x63, 0x00, 0x00, 0xF8, 0x3D, 0x01, 0x00, +0x00, 0x00, 0x10, 0x80, 0x00, 0x00, 0x03, 0x80, +0x00, 0x00, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, +0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, +0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, +0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, +0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, +0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, +0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, +0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +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, 0x01, 0xFE, 0x03, 0x01, 0x01, 0xFE, +0x03, 0x02, 0x01, 0xFE, 0x03, 0x03, 0x01, 0xFE, +0x03, 0x04, 0x01, 0xFE, 0x03, 0x05, 0x01, 0xFE, +0x03, 0x06, 0x01, 0xFE, 0x03, 0x07, 0x01, 0xFE, +0x48, 0x0A, 0x20, 0x80, 0x06, 0x00, 0x00, 0x00, +0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, +0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, +0x01, 0x00, 0x03, 0x80, 0xBD, 0x01, 0x03, 0x80, +0xBD, 0x01, 0x03, 0x80, 0x08, 0x00, 0x00, 0x00, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xE0, +0x4C, 0x81, 0x92, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x8D, +0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x07, 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, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xCD, 0x15, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, +0x00, 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, 0x8D, 0x15, 0x03, 0x80, +0x01, 0x00, 0x00, 0x00, 0x00, 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, +0x2C, 0x1C, 0x20, 0x80, 0x20, 0x05, 0x00, 0x00, +0x50, 0x05, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, +0x20, 0x08, 0x00, 0x00, 0x24, 0x08, 0x00, 0x00, +0x38, 0x1C, 0x00, 0x00, 0x68, 0x1C, 0x00, 0x00, +0x60, 0x1D, 0x00, 0x00, 0x0C, 0x18, 0x00, 0x00, +0x0C, 0x41, 0x00, 0x00, 0x3C, 0x1C, 0x00, 0x00, +0x14, 0x1A, 0x00, 0x00, 0x58, 0x1D, 0x00, 0x00, +0x70, 0x1D, 0x00, 0x00, 0x64, 0x18, 0x00, 0x00, +0x64, 0x41, 0x00, 0x00, 0x6C, 0x18, 0x00, 0x00, +0x6C, 0x41, 0x00, 0x00, 0x14, 0x1A, 0x00, 0x00, +0x70, 0x1E, 0x00, 0x00, 0x0C, 0x08, 0x00, 0x00, +0x7C, 0x1E, 0x00, 0x00, 0xA4, 0x18, 0x00, 0x00, +0xA4, 0x41, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, +0xDF, 0x00, 0x00, 0x00, 0x9E, 0x00, 0x00, 0x00, +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x8D, +0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x07, 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, 0x08, 0x00, 0x00, 0x00, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xAB, 0x13, 0x03, 0x80, +0xA5, 0x13, 0x03, 0x80, 0xB1, 0x13, 0x03, 0x80, +0xB7, 0x13, 0x03, 0x80, 0xBD, 0x13, 0x03, 0x80, +0xC3, 0x13, 0x03, 0x80, 0x00, 0x20, 0x41, 0x80, +0x00, 0x00, 0x00, 0x00, 0x2A, 0x18, 0x3F, 0x00, +0x71, 0x73, 0x29, 0x23, 0x2B, 0x48, 0x01, 0x00, +0x01, 0x00, 0x2B, 0x48, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x31, 0x2E, 0x30, 0x30, +0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x20, 0x53, +0x74, 0x6F, 0x72, 0x61, 0x67, 0x65, 0x20, 0x20, +0x52, 0x65, 0x61, 0x6C, 0x74, 0x65, 0x6B, 0x20, +0x09, 0x12, 0x1B, 0x24, 0x94, 0x0C, 0x94, 0x0E, +0x94, 0x18, 0x94, 0x1A, 0x41, 0x43, 0x10, 0x80, +0x15, 0x44, 0x10, 0x80, 0x51, 0x43, 0x10, 0x80, +0x87, 0x43, 0x10, 0x80, 0xC3, 0x43, 0x10, 0x80, +0x15, 0x44, 0x10, 0x80, 0x5F, 0x44, 0x10, 0x80, +0x77, 0x44, 0x10, 0x80, 0x83, 0x44, 0x10, 0x80, +0xB5, 0x44, 0x10, 0x80, 0xE7, 0x44, 0x10, 0x80, +0xF7, 0x44, 0x10, 0x80, 0x09, 0x12, 0x1B, 0x24, +0x03, 0x19, 0x11, 0x80, 0x7B, 0x1A, 0x11, 0x80, +0x55, 0x1B, 0x11, 0x80, 0xFF, 0x18, 0x11, 0x80, +0xFF, 0x18, 0x11, 0x80, 0x03, 0x19, 0x11, 0x80, +0x03, 0x19, 0x11, 0x80, 0xE7, 0x50, 0x10, 0x80, +0xFD, 0x50, 0x10, 0x80, 0x2F, 0x51, 0x10, 0x80, +0x2F, 0x51, 0x10, 0x80, 0x2F, 0x51, 0x10, 0x80, +0x2F, 0x51, 0x10, 0x80, 0x09, 0x51, 0x10, 0x80, +0x13, 0x51, 0x10, 0x80, 0x1D, 0x51, 0x10, 0x80, +0x27, 0x51, 0x10, 0x80, 0xEF, 0x50, 0x10, 0x80, +0xDD, 0x50, 0x10, 0x80, 0xE1, 0x31, 0x11, 0x80, +0x03, 0x32, 0x11, 0x80, 0x25, 0x32, 0x11, 0x80, +0x47, 0x32, 0x11, 0x80, 0x6B, 0x32, 0x11, 0x80, +0xA5, 0x32, 0x11, 0x80, 0xC9, 0x32, 0x11, 0x80, +0xED, 0x32, 0x11, 0x80, 0x11, 0x33, 0x11, 0x80, +0x37, 0x33, 0x11, 0x80, 0x01, 0x01, 0x04, 0x10, +0x40, 0x00, 0x00, 0x00, 0xE0, 0x04, 0xE3, 0x04, +0xE3, 0x04, 0xE3, 0x04, 0xE3, 0x04, 0x00, 0x00, +0xB9, 0x27, 0x11, 0x80, 0xB9, 0x27, 0x11, 0x80, +0xB9, 0x27, 0x11, 0x80, 0xD3, 0x27, 0x11, 0x80, +0xB9, 0x27, 0x11, 0x80, 0xB9, 0x27, 0x11, 0x80, +0xB9, 0x27, 0x11, 0x80, 0xB5, 0x27, 0x11, 0x80, +0xB5, 0x27, 0x11, 0x80, 0xB5, 0x27, 0x11, 0x80, +0xB5, 0x27, 0x11, 0x80, 0xB5, 0x27, 0x11, 0x80, +0x43, 0x28, 0x11, 0x80, 0x4D, 0x28, 0x11, 0x80, +0xEB, 0x39, 0x03, 0x80, 0xFB, 0x39, 0x03, 0x80, +0x05, 0x3A, 0x03, 0x80, 0x0F, 0x3A, 0x03, 0x80, +0x21, 0x3A, 0x03, 0x80, 0x43, 0x59, 0x03, 0x80, +0xA3, 0x59, 0x03, 0x80, 0x37, 0x5A, 0x03, 0x80, +0xD5, 0x5A, 0x03, 0x80, 0x79, 0x5B, 0x03, 0x80, +0xFC, 0x10, 0x60, 0xB8, 0xFA, 0xFA, 0xFA, 0xFA, +0xCF, 0x01, 0x64, 0xB8, 0x8C, 0x04, 0x64, 0xB8, +0x90, 0x04, 0x64, 0xB8, 0x94, 0x04, 0x64, 0xB8, +0x98, 0x04, 0x64, 0xB8, 0x9C, 0x04, 0x64, 0xB8, +0xA0, 0x04, 0x64, 0xB8, 0x77, 0x05, 0x64, 0xB8, +0x6C, 0x05, 0x64, 0xB8, 0x68, 0x05, 0x64, 0xB8, +0x54, 0x05, 0x64, 0xB8, 0xFF, 0xFF, 0xFF, 0x8F, +0x00, 0x00, 0x60, 0xB8, 0x00, 0x00, 0x64, 0xB8, +0x31, 0x00, 0x78, 0xB8, 0x1D, 0x04, 0x64, 0xB8, +0x22, 0x05, 0x64, 0xB8, 0x86, 0x00, 0x60, 0xB8, +0x87, 0x00, 0x60, 0xB8, 0x88, 0x00, 0x60, 0xB8, +0x89, 0x00, 0x60, 0xB8, 0x8A, 0x00, 0x60, 0xB8, +0x84, 0x00, 0x60, 0xB8, 0xF8, 0x10, 0x60, 0xB8, +0x00, 0x00, 0x00, 0x02, 0xCB, 0x01, 0x64, 0xB8, +0x00, 0x00, 0x68, 0xB8, 0x04, 0x00, 0x68, 0xB8, +0x08, 0x00, 0x68, 0xB8, 0x0C, 0x00, 0x68, 0xB8, +0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x42, +0xE0, 0x00, 0x60, 0xB8, 0xFF, 0xFF, 0xFF, 0xFD, +0xE3, 0x00, 0x60, 0xB8, 0x00, 0x00, 0x00, 0x40, +0x00, 0x00, 0x00, 0x01, 0xE1, 0x00, 0x60, 0xB8, +0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x20, +0xCC, 0x00, 0x60, 0xB8, 0x02, 0x00, 0x60, 0xB8, +0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, +0x00, 0x00, 0x00, 0x04, 0xFF, 0xFF, 0xFF, 0xFB, +0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0x1F, +0x04, 0x00, 0x60, 0xB8, 0x04, 0x00, 0x64, 0xB8, +0x08, 0x00, 0x60, 0xB8, 0x08, 0x00, 0x64, 0xB8, +0xE8, 0x12, 0x64, 0xB8, 0x24, 0x00, 0x60, 0xB8, +0x80, 0x00, 0x60, 0xB8, 0x8C, 0x00, 0x60, 0xB8, +0x74, 0x00, 0x60, 0xB8, 0x00, 0x00, 0x00, 0x10, +0xFF, 0xFF, 0xFF, 0xEF, 0x24, 0x04, 0x64, 0xB8, +0xB0, 0x02, 0x64, 0xB8, 0x1C, 0x04, 0x64, 0xB8, +0x1C, 0x01, 0x64, 0xB8, 0x55, 0x53, 0x42, 0x43, +0x00, 0x00, 0x00, 0x08, 0x55, 0x53, 0x42, 0x53, +0x00, 0x20, 0x78, 0xB8, 0x00, 0x10, 0x78, 0xB8, +0x00, 0x00, 0xFD, 0xFF, 0x00, 0x00, 0xFF, 0x00, +0x00, 0x00, 0x04, 0x00, 0x00, 0x0C, 0x01, 0x00, +0x08, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x01, 0x00, +0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x1F, 0x00, +0x01, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xFF, 0x0F, +0x21, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0xC0, +0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x0F, +0x62, 0x06, 0x64, 0xB8, 0xB4, 0x06, 0x64, 0xB8, +0x06, 0x00, 0x00, 0x89, 0x00, 0x0A, 0x08, 0x00, +0x01, 0x00, 0x66, 0xB8, 0x00, 0x00, 0x02, 0x00, +0x00, 0x00, 0x78, 0xB8, 0x44, 0x00, 0x78, 0xB8, +0x01, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x60, +0x52, 0x29, 0x46, 0xE2, 0x03, 0x29, 0x29, 0x00, +0x32, 0xFC, 0x18, 0xA2, 0x08, 0x00, 0x04, 0x05, +0x01, 0x00, 0x0F, 0x70, 0x01, 0x00, 0x1F, 0x70, +0x01, 0x00, 0x2F, 0x70, 0x01, 0x00, 0x3F, 0x70, +0x01, 0x00, 0x4F, 0x70, 0x01, 0x00, 0x5F, 0x70, +0x01, 0x00, 0x6F, 0x70, 0x01, 0x00, 0x7F, 0x70, +0x01, 0x00, 0x8F, 0x70, 0x01, 0x00, 0x9F, 0x70, +0x01, 0x00, 0xAF, 0x70, 0x01, 0x00, 0xBF, 0x70, +0x01, 0x00, 0xCF, 0x70, 0x01, 0x00, 0xDF, 0x70, +0x01, 0x00, 0xEF, 0x70, 0x01, 0x00, 0xFF, 0x70, +0x5E, 0x00, 0xD5, 0xF7, 0x41, 0x80, 0x0B, 0x70, +0x40, 0x00, 0x1F, 0x70, 0x40, 0x00, 0x2F, 0x70, +0x40, 0x00, 0x3F, 0x70, 0x40, 0x00, 0x4F, 0x70, +0x41, 0x80, 0x5B, 0x70, 0x40, 0x00, 0x6F, 0x70, +0x41, 0x40, 0x14, 0x70, 0x41, 0x40, 0x24, 0x70, +0x41, 0x40, 0x34, 0x70, 0x41, 0x40, 0x44, 0x70, +0x41, 0x40, 0x64, 0x70, 0x41, 0x80, 0x7B, 0x70, +0x41, 0x80, 0x8B, 0x70, 0x41, 0x80, 0x9B, 0x70, +0x41, 0x80, 0xAB, 0x70, 0x41, 0x80, 0xBB, 0x70, +0x41, 0x80, 0xCB, 0x70, 0x41, 0x80, 0xDB, 0x70, +0x41, 0x80, 0xEB, 0x70, 0x41, 0x80, 0xFB, 0x70, +0x00, 0x00, 0x10, 0x00, 0x50, 0x50, 0x50, 0x50, +0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x03, 0x00, +0x1F, 0x00, 0x60, 0xB8, 0xEF, 0x00, 0x60, 0xB8, +0x03, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x60, +0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x0F, 0x80, +0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x20, 0x00, +0x08, 0x18, 0x07, 0x00, 0x08, 0x0C, 0x07, 0x00, +0x00, 0x00, 0x0F, 0x00, 0x08, 0x00, 0x04, 0x00, +0x00, 0x00, 0x08, 0x00, 0xFF, 0x60, 0x0F, 0x00, +0x3F, 0xD8, 0x0F, 0x00, 0xFF, 0x60, 0x07, 0x00, +0x3F, 0xD8, 0x0D, 0x00, 0xFF, 0xDE, 0x07, 0x00, +0xBF, 0xF7, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x06, +0x00, 0xC0, 0x0F, 0x00, 0x12, 0x33, 0x03, 0x00, +0x11, 0x33, 0x03, 0x00, 0x12, 0x11, 0x01, 0x00, +0x00, 0x00, 0xFF, 0xFF, 0x31, 0xC9, 0x62, 0x49, +0x55, 0x24, 0x01, 0xFF, 0xC8, 0xFE, 0x18, 0x3E, +0xDE, 0xF0, 0xFA, 0x00, 0x44, 0x23, 0x12, 0x00, +0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0xF0, 0x1F, 0x00, +0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0xF0, 0x00, +0x3F, 0xFF, 0xFE, 0xDF, 0x00, 0x00, 0x06, 0x00, +0x00, 0x00, 0x60, 0x00, 0x00, 0xFF, 0x0F, 0x00, +0x01, 0x80, 0x03, 0x70, 0x01, 0x80, 0x53, 0x70, +0x01, 0x80, 0x73, 0x70, 0x01, 0x80, 0x83, 0x70, +0x01, 0x80, 0x93, 0x70, 0x01, 0x80, 0xA3, 0x70, +0x01, 0x80, 0xB3, 0x70, 0x01, 0x80, 0xC3, 0x70, +0x01, 0x80, 0xD3, 0x70, 0x01, 0x80, 0xE3, 0x70, +0x01, 0x80, 0xF3, 0x70, 0x01, 0x80, 0x0B, 0x70, +0x01, 0x80, 0x5B, 0x70, 0x01, 0x80, 0x7B, 0x70, +0x01, 0x80, 0x8B, 0x70, 0x01, 0x80, 0x9B, 0x70, +0x01, 0x80, 0xAB, 0x70, 0x01, 0x80, 0xBB, 0x70, +0x01, 0x80, 0xCB, 0x70, 0x01, 0x80, 0xDB, 0x70, +0x01, 0x80, 0xEB, 0x70, 0x01, 0x80, 0xFB, 0x70, +0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x80, 0x00, +0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0x00, +0x00, 0xFC, 0x01, 0x00, 0x00, 0x00, 0x70, 0x00, +0x00, 0x00, 0x40, 0x00, 0x00, 0xFC, 0xF8, 0xFF, +0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x3F, +0x96, 0x02, 0x64, 0xB8, 0x00, 0x00, 0x70, 0xB8, +0x18, 0x00, 0x70, 0xB8, 0x0B, 0x00, 0x70, 0xB8, +0x02, 0x00, 0x70, 0xB8, 0x94, 0x02, 0x64, 0xB8, +0x97, 0x02, 0x64, 0xB8, 0x84, 0x02, 0x64, 0xB8, +0x06, 0x00, 0x66, 0xB8, 0x54, 0x02, 0x64, 0xB8, +0x50, 0x02, 0x64, 0xB8, 0x4C, 0x02, 0x64, 0xB8, +0x04, 0x00, 0x78, 0xB8, 0x48, 0x02, 0x64, 0xB8, +0x44, 0x02, 0x64, 0xB8, 0xCC, 0x01, 0x64, 0xB8, +0x74, 0x00, 0x18, 0x2E, 0x74, 0x00, 0x19, 0x2E, +0x01, 0x00, 0x60, 0xB8, 0x01, 0x00, 0x64, 0xB8, +0x34, 0x01, 0x64, 0xB8, 0x64, 0x05, 0x64, 0xB8, +0x60, 0x05, 0x64, 0xB8, 0xC8, 0x01, 0x64, 0xB8, +0xC9, 0x01, 0x64, 0xB8, 0x48, 0x00, 0x60, 0xB8, +0xFF, 0xFF, 0xFE, 0xFF, 0x44, 0x00, 0x60, 0xB8, +0x60, 0x00, 0x60, 0xB8, 0x47, 0x00, 0x60, 0xB8, +0x46, 0x00, 0x60, 0xB8, 0x63, 0x00, 0x60, 0xB8, +0x62, 0x00, 0x60, 0xB8, 0x45, 0x00, 0x60, 0xB8, +0x61, 0x00, 0x60, 0xB8, 0xC6, 0x01, 0x64, 0xB8, +0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x05, +0x64, 0x01, 0x64, 0xB8, 0x53, 0x05, 0x64, 0xB8, +0x94, 0x01, 0x64, 0xB8, 0x00, 0x00, 0x66, 0xB8, +0x00, 0x1C, 0x66, 0xB8, 0x54, 0x00, 0x60, 0xB8, +0x50, 0x00, 0x60, 0xB8, 0x30, 0x01, 0x64, 0xB8, +0x24, 0x01, 0x64, 0xB8, 0x20, 0x01, 0x64, 0xB8, +0x24, 0x11, 0x64, 0xB8, 0x20, 0x11, 0x64, 0xB8, +0x2C, 0x11, 0x64, 0xB8, 0x28, 0x11, 0x64, 0xB8, +0x34, 0x11, 0x64, 0xB8, 0x30, 0x11, 0x64, 0xB8, +0x3C, 0x01, 0x64, 0xB8, 0x38, 0x01, 0x64, 0xB8, +0x3C, 0x11, 0x64, 0xB8, 0x38, 0x11, 0x64, 0xB8, +0xE4, 0x11, 0x64, 0xB8, 0xE0, 0x11, 0x64, 0xB8, +0xE0, 0x12, 0x64, 0xB8, 0xE8, 0x10, 0x60, 0xB8, +0x00, 0x3C, 0x64, 0xB8, 0x00, 0x4C, 0x64, 0xB8, +0x00, 0x58, 0x64, 0xB8, 0x00, 0x5C, 0x64, 0xB8, +0xF8, 0x05, 0x64, 0xB8, 0x92, 0x06, 0x64, 0xB8, +0xC0, 0x01, 0x64, 0xB8, 0x1F, 0x07, 0x64, 0xB8, +0x1C, 0x07, 0x64, 0xB8, 0x2C, 0x04, 0x64, 0xB8, +0x2E, 0x04, 0x64, 0xB8, 0xB8, 0x05, 0x64, 0xB8, +0xBC, 0x05, 0x64, 0xB8, 0x5F, 0x11, 0x64, 0xB8, +0xFE, 0xFF, 0xFF, 0x7F, 0x30, 0x00, 0x78, 0x18, +0x70, 0x00, 0x60, 0xB8, 0x1C, 0x00, 0x60, 0xB8, +0x00, 0x08, 0x70, 0xB8, 0xA0, 0x34, 0x00, 0xB8, +0x00, 0x52, 0x00, 0xB8, 0x04, 0x52, 0x00, 0xB8, +0x08, 0x52, 0x00, 0xB8, 0x0C, 0x52, 0x00, 0xB8, +0x10, 0x52, 0x00, 0xB8, 0x30, 0x52, 0x00, 0xB8, +0x3C, 0x50, 0x00, 0xB8, 0x4C, 0x04, 0x64, 0xB8, +0x50, 0x04, 0x64, 0xB8, 0xA4, 0x04, 0x64, 0xB8, +0xA8, 0x04, 0x64, 0xB8, 0xB8, 0x01, 0x64, 0xB8, +0x7E, 0x04, 0x64, 0xB8, 0x20, 0x04, 0x64, 0xB8, +0xAC, 0x04, 0x64, 0xB8, 0x08, 0x10, 0x66, 0xB8, +0x00, 0x10, 0x66, 0xB8, 0x04, 0x10, 0x66, 0xB8, +0x0C, 0x10, 0x66, 0xB8, 0x7D, 0x04, 0x64, 0xB8, +0x7C, 0x04, 0x64, 0xB8, 0xF4, 0x00, 0x60, 0xB8, +0x71, 0x00, 0x60, 0xB8, 0xE4, 0x00, 0x60, 0xB8, +0xE6, 0x00, 0x60, 0xB8, 0xE8, 0x00, 0x60, 0xB8, +0xE9, 0x00, 0x60, 0xB8, 0xEA, 0x00, 0x60, 0xB8, +0xEB, 0x00, 0x60, 0xB8, 0xE5, 0x00, 0x60, 0xB8, +0x44, 0x00, 0x02, 0x00, 0xA0, 0x07, 0x64, 0xB8, +0xFF, 0xFF, 0xFF, 0x7F, 0xBC, 0x01, 0x64, 0xB8, +0x9A, 0x01, 0x64, 0xB8, 0x98, 0x01, 0x64, 0xB8, +0xC7, 0x01, 0x64, 0xB8, 0x90, 0x00, 0x60, 0xB8, +0x00, 0x01, 0x64, 0xB8, 0xD0, 0x05, 0x64, 0xB8, +0x08, 0x06, 0x64, 0xB8, 0xA0, 0x06, 0x64, 0xB8, +0xFF, 0xFF, 0xFB, 0xFF, 0x9C, 0x02, 0x64, 0xB8, +0xA0, 0x02, 0x64, 0xB8, 0xC2, 0x01, 0x64, 0xB8, +0x08, 0x90, 0x00, 0xB8, 0x00, 0x90, 0x00, 0xB8, +0x10, 0x90, 0x00, 0xB8, 0x04, 0x90, 0x00, 0xB8, +0x18, 0x91, 0x00, 0xB8, 0x1C, 0x91, 0x00, 0xB8, +0x60, 0x90, 0x00, 0xB8, 0x28, 0x90, 0x00, 0xB8, +0x40, 0x00, 0x60, 0xB8, 0x20, 0x91, 0x00, 0xB8, +0x2C, 0x90, 0x00, 0xB8, 0x04, 0x06, 0x64, 0xB8, +0xFF, 0xFF, 0xFF, 0xFE, 0x60, 0x16, 0x64, 0xB8, +0x7A, 0x04, 0x64, 0xB8, 0x20, 0x00, 0x78, 0xB8, +0x10, 0x00, 0x78, 0xB8, 0x03, 0x00, 0x78, 0xB8, +0xFF, 0xFF, 0x01, 0xFF, 0x05, 0x00, 0x78, 0xB8, +0x12, 0x05, 0x64, 0xB8, 0x10, 0x05, 0x64, 0xB8, +0x09, 0x00, 0x78, 0xB8, 0x14, 0x00, 0x78, 0xB8, +0xFF, 0xFF, 0x00, 0xF0, 0x00, 0x00, 0x30, 0x80, +0x00, 0x12, 0x00, 0x04, 0x08, 0x00, 0x78, 0xB8, +0x0C, 0x00, 0x78, 0xB8, 0x18, 0x00, 0x78, 0xB8, +0x04, 0x18, 0x66, 0xB8, 0x00, 0x18, 0x66, 0xB8, +0xFF, 0xFF, 0xFF, 0x3F, 0x10, 0x00, 0x66, 0xB8, +0x11, 0x00, 0x66, 0xB8, 0x12, 0x00, 0x66, 0xB8, +0x13, 0x00, 0x66, 0xB8, 0x14, 0x00, 0x66, 0xB8, +0x15, 0x00, 0x66, 0xB8, 0xD4, 0x07, 0x64, 0xB8, +0xBC, 0x06, 0x64, 0xB8, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x15, 0xF0, 0xFF, 0x0F, +0x00, 0x00, 0x00, 0x00, 0x15, 0xF0, 0x0F, 0x00, +0x00, 0x00, 0x00, 0x00, 0x05, 0xF0, 0xFF, 0x0F, +0x00, 0x00, 0x00, 0x00, 0x05, 0xF0, 0x0F, 0x00, +0x00, 0x00, 0x00, 0x00, 0x10, 0xF0, 0xFF, 0x0F, +0x00, 0x00, 0x00, 0x00, 0x10, 0xF0, 0x0F, 0x00, +0x00, 0x00, 0x00, 0x00, 0xF5, 0x0F, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x3F, 0x00, +0x00, 0x00, 0x00, 0x00, 0x15, 0xF0, 0x3F, 0x00, +0x00, 0x00, 0x00, 0x00, 0x15, 0xF0, 0xFF, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, +0xFF, 0x03, 0x00, 0x00, 0x15, 0xF0, 0xFF, 0xFF, +0x0F, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x06, +0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0xFF, +0xFF, 0x00, 0x01, 0x02, 0x02, 0x04, 0x05, 0x06, +0x07, 0x08, 0x09, 0x0A, 0x28, 0x28, 0x32, 0x28, +0x1E, 0x19, 0x19, 0x19, 0x18, 0x18, 0x12, 0x0F, +0x1E, 0x1E, 0x19, 0x1E, 0x18, 0x16, 0x0C, 0x0C, +0x1E, 0x1E, 0x19, 0x1E, 0x18, 0x16, 0x0C, 0x0C, +0x1E, 0x1E, 0x19, 0x1C, 0x18, 0x14, 0x0C, 0x0A, +0x1E, 0x1E, 0x19, 0x1E, 0x19, 0x18, 0x0F, 0x0E, +0x1E, 0x1E, 0x1E, 0x1E, 0x1C, 0x16, 0x14, 0x12, +0x0C, 0x0A, 0x1E, 0x1E, 0x1E, 0x1E, 0x1A, 0x16, +0x12, 0x10, 0x0C, 0x0A, 0x1E, 0x1E, 0x1E, 0x1E, +0x18, 0x16, 0x0D, 0x0E, 0x0C, 0x0A, 0x0A, 0x0A, +0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, +0x12, 0x12, 0x14, 0x12, 0x0F, 0x0F, 0x0C, 0x0C, +0x09, 0x08, 0x08, 0x07, 0x0A, 0x0A, 0x09, 0x07, +0x07, 0x06, 0x05, 0x04, 0x0C, 0x0C, 0x0A, 0x0A, +0x09, 0x07, 0x07, 0x06, 0x0C, 0x0C, 0x0A, 0x0A, +0x09, 0x07, 0x07, 0x06, 0x0C, 0x0C, 0x0A, 0x0A, +0x09, 0x07, 0x07, 0x06, 0x0A, 0x0A, 0x08, 0x08, +0x08, 0x07, 0x07, 0x06, 0x04, 0x04, 0x0C, 0x0C, +0x0A, 0x0A, 0x09, 0x07, 0x07, 0x06, 0x05, 0x04, +0x0C, 0x0C, 0x0A, 0x0A, 0x09, 0x07, 0x07, 0x06, +0x05, 0x04, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, +0x0A, 0x0A, 0x0A, 0x0A, 0x02, 0x02, 0x02, 0x04, +0x02, 0x04, 0x06, 0x06, 0x08, 0x08, 0x09, 0x09, +0x03, 0x06, 0x08, 0x08, 0x0A, 0x0E, 0x10, 0x18, +0x05, 0x08, 0x08, 0x08, 0x0A, 0x0E, 0x10, 0x18, +0x05, 0x08, 0x08, 0x09, 0x10, 0x14, 0x1C, 0x20, +0x04, 0x06, 0x08, 0x0A, 0x10, 0x18, 0x18, 0x20, +0x03, 0x06, 0x08, 0x09, 0x10, 0x14, 0x1C, 0x24, +0x34, 0x3A, 0x05, 0x07, 0x09, 0x0A, 0x10, 0x14, +0x1C, 0x28, 0x34, 0x3C, 0x06, 0x08, 0x0A, 0x0C, +0x12, 0x18, 0x1E, 0x2E, 0x36, 0x40, 0x0A, 0x0C, +0x0C, 0x12, 0x16, 0x1C, 0x20, 0x2E, 0x36, 0x40, +0x2C, 0x00, 0x04, 0x00, 0x2D, 0x00, 0x2C, 0x01, +0x2D, 0x01, 0x2C, 0x02, 0x2E, 0x01, 0xFF, 0x00, +0x2D, 0x02, 0xFF, 0x00, 0x36, 0x2D, 0xFF, 0x36, +0x2E, 0xFF, 0x37, 0x2F, 0xFF, 0x38, 0x30, 0xFF, +0x39, 0x31, 0xFF, 0x3A, 0x32, 0xFF, 0x3A, 0x33, +0xFF, 0x3A, 0x34, 0xFF, 0x3A, 0x35, 0xFF, 0x3B, +0xFF, 0xFF, 0x37, 0x2E, 0xFF, 0x38, 0x30, 0xFF, +0x39, 0x31, 0xFF, 0x3A, 0x32, 0xFF, 0x3B, 0x35, +0xFF, 0x3C, 0xFF, 0xFF, 0x3D, 0xFF, 0xFF, 0x3E, +0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x37, 0xFF, 0x2F, 0x39, 0xFF, 0x31, 0xFF, 0x3A, +0x33, 0xFF, 0x3B, 0x35, 0xFF, 0x3D, 0xFF, 0xFF, +0xFF, 0x3E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, +0x0D, 0x14, 0xFF, 0x15, 0x0E, 0xFF, 0x15, 0x0F, +0xFF, 0x16, 0x10, 0xFF, 0x17, 0x11, 0xFF, 0x18, +0x12, 0xFF, 0x18, 0x13, 0xFF, 0x18, 0xFF, 0xFF, +0x15, 0x0E, 0xFF, 0x16, 0x10, 0xFF, 0x17, 0x10, +0xFF, 0x18, 0x11, 0xFF, 0x19, 0xFF, 0xFF, 0x1A, +0xFF, 0xFF, 0x1B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x15, 0x13, 0x0F, 0x17, 0x1E, 0x11, 0x18, 0x1F, +0x13, 0x20, 0x19, 0xFF, 0x21, 0x1B, 0xFF, 0x22, +0xFF, 0xFF, 0x23, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x04, 0x04, 0x04, 0x36, 0x2C, 0xFF, 0x2D, 0xFF, +0xFF, 0x2E, 0x37, 0xFF, 0x38, 0x2F, 0xFF, 0x39, +0x30, 0xFF, 0x39, 0x31, 0xFF, 0x39, 0x32, 0xFF, +0x3A, 0x33, 0xFF, 0x3A, 0x34, 0xFF, 0x2D, 0x2C, +0xFF, 0x36, 0x2E, 0xFF, 0x37, 0x2F, 0xFF, 0x38, +0x30, 0xFF, 0x33, 0x39, 0xFF, 0x35, 0x3A, 0xFF, +0x3B, 0x34, 0xFF, 0x3C, 0x3B, 0xFF, 0x3D, 0x3C, +0xFF, 0x3E, 0x3D, 0xFF, 0x37, 0x2E, 0xFF, 0x38, +0x2F, 0xFF, 0x39, 0x31, 0xFF, 0x3A, 0xFF, 0xFF, +0xFF, 0x3B, 0xFF, 0xFF, 0x3C, 0xFF, 0xFF, 0x3D, +0x3C, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0x00, 0x00, 0x04, 0xFF, 0xFF, 0x0C, +0xFF, 0xFF, 0x0D, 0x14, 0xFF, 0x0E, 0x15, 0xFF, +0x16, 0x0F, 0xFF, 0x17, 0x10, 0xFF, 0x17, 0x11, +0xFF, 0x17, 0x12, 0xFF, 0x0D, 0x0C, 0xFF, 0x14, +0x0E, 0xFF, 0x15, 0x0F, 0xFF, 0x16, 0x10, 0xFF, +0x17, 0x12, 0xFF, 0x18, 0x13, 0xFF, 0x19, 0x13, +0xFF, 0x1A, 0x13, 0xFF, 0x14, 0x0E, 0xFF, 0x15, +0x1C, 0xFF, 0x17, 0x1D, 0x11, 0x18, 0x1E, 0x13, +0x19, 0x1F, 0x1E, 0x20, 0x1A, 0x1F, 0x21, 0x1B, +0x20, 0x22, 0x21, 0x1B, 0x01, 0x00, 0x02, 0x00, +0x05, 0x00, 0x0B, 0x00, 0x06, 0x00, 0x09, 0x00, +0x0C, 0x00, 0x12, 0x00, 0x18, 0x00, 0x24, 0x00, +0x30, 0x00, 0x36, 0x00, 0x0E, 0x00, 0x1B, 0x00, +0x29, 0x00, 0x36, 0x00, 0x51, 0x00, 0x6C, 0x00, +0x7A, 0x00, 0x87, 0x00, 0x1B, 0x00, 0x36, 0x00, +0x51, 0x00, 0x6C, 0x00, 0xA2, 0x00, 0xD8, 0x00, +0xF3, 0x00, 0x0E, 0x01, 0x29, 0x00, 0x51, 0x00, +0x7A, 0x00, 0xA2, 0x00, 0xF3, 0x00, 0x44, 0x01, +0x6D, 0x01, 0x95, 0x01, 0x36, 0x00, 0x6C, 0x00, +0xA2, 0x00, 0xD8, 0x00, 0x44, 0x01, 0xB0, 0x01, +0xE6, 0x01, 0x1C, 0x02, 0x0E, 0x00, 0x1B, 0x00, +0x29, 0x00, 0x36, 0x00, 0x51, 0x00, 0x6C, 0x00, +0x7A, 0x00, 0x87, 0x00, 0xA2, 0x00, 0xB4, 0x00, +0x1B, 0x00, 0x36, 0x00, 0x51, 0x00, 0x6C, 0x00, +0xA2, 0x00, 0xD8, 0x00, 0xF3, 0x00, 0x0E, 0x01, +0x44, 0x01, 0x68, 0x01, 0x29, 0x00, 0x51, 0x00, +0x7A, 0x00, 0xA2, 0x00, 0xF3, 0x00, 0x44, 0x01, +0x6C, 0x01, 0x95, 0x01, 0xE6, 0x01, 0x1C, 0x02, +0x36, 0x00, 0x6C, 0x00, 0xA2, 0x00, 0xD8, 0x00, +0x44, 0x01, 0xB0, 0x01, 0xE6, 0x01, 0x1C, 0x02, +0x88, 0x02, 0xD0, 0x02, 0x14, 0x14, 0x15, 0x15, +0x16, 0x17, 0x17, 0x18, 0x1C, 0x1C, 0x1C, 0x1C, +0x1D, 0x1D, 0x1E, 0x1E, 0x1C, 0x1C, 0x1D, 0x1E, +0x1F, 0x20, 0x20, 0x20, 0x36, 0x36, 0x37, 0x37, +0x38, 0x39, 0x39, 0x3A, 0x3A, 0x3A, 0x00, 0x00, +0x40, 0x40, 0x40, 0x40, 0x41, 0x41, 0x42, 0x42, +0x43, 0x43, 0x00, 0x00, 0x40, 0x40, 0x41, 0x42, +0x43, 0x44, 0x44, 0x44, 0x45, 0x46, 0x00, 0x00, +0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xF0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xF0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x30, 0xC0, +0xE0, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0E, 0x38, +0x18, 0x00, 0x00, 0x00, 0x00, 0x83, 0x01, 0x06, +0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x70, 0xE0, +0x8C, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x30, 0xF0, 0x21, 0x6C, 0x00, 0xF0, 0x00, 0x4C, +0xBC, 0x65, 0x94, 0xB8, 0x00, 0x65, 0x00, 0x6D, +0xFE, 0xF7, 0x1F, 0x4D, 0xAC, 0xEC, 0x94, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0xF4, +0x00, 0x6D, 0xAD, 0xEC, 0x40, 0x6D, 0xAD, 0xEC, +0x94, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x1F, 0xF6, 0x00, 0x6C, 0x8C, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x77, 0xF0, 0x20, 0x6C, +0x80, 0xF0, 0x80, 0x9C, 0x80, 0xF0, 0x20, 0x6E, +0xCC, 0xEC, 0x18, 0x24, 0x30, 0xF0, 0x21, 0x6C, +0xFC, 0xF7, 0x1C, 0x4C, 0x80, 0x9C, 0xBC, 0x65, +0x30, 0xF0, 0x21, 0x6C, 0xFC, 0xF7, 0x18, 0x4C, +0x80, 0x9C, 0xFC, 0x65, 0x9F, 0x67, 0x77, 0xF0, +0x24, 0x6D, 0xE0, 0xF2, 0x90, 0xDD, 0x9D, 0x67, +0x77, 0xF0, 0x24, 0x6D, 0xE0, 0xF2, 0x94, 0xDD, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6C, +0xC0, 0xF1, 0x14, 0x4C, 0x00, 0x6E, 0x30, 0xF0, +0x20, 0x6F, 0x41, 0xF7, 0x08, 0x4F, 0xC0, 0xDC, +0x04, 0x4C, 0xE3, 0xEC, 0xB8, 0x67, 0xFB, 0x2D, +0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF4, 0x0C, 0x4C, +0x00, 0x6E, 0x30, 0xF0, 0x20, 0x6F, 0xAB, 0xF2, +0x00, 0x4F, 0xC0, 0xDC, 0x04, 0x4C, 0xE3, 0xEC, +0xB8, 0x67, 0xFB, 0x2D, 0x10, 0xF0, 0x23, 0x6C, +0xC0, 0xF0, 0x01, 0x4C, 0x00, 0xEC, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF2, 0x60, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0xC0, 0xF0, 0x01, 0x4A, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF3, +0x68, 0x9A, 0xFF, 0xF7, 0x1F, 0x68, 0xFF, 0x6C, +0x40, 0xAB, 0x01, 0x4C, 0x30, 0xF0, 0x20, 0x69, +0x0C, 0xEA, 0x8D, 0xEA, 0x0C, 0xEA, 0x40, 0xCB, +0x00, 0x1C, 0x80, 0x00, 0x80, 0x18, 0xC5, 0x4D, +0x80, 0x18, 0xF9, 0x4B, 0x80, 0x18, 0xDA, 0x4B, +0x80, 0x18, 0x82, 0x4D, 0x80, 0x18, 0x20, 0x4C, +0x80, 0x18, 0x75, 0x4D, 0x00, 0x18, 0x7F, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x54, 0x9A, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x21, 0x6A, 0x41, 0xF7, 0x08, 0x4C, 0x1D, 0xF0, +0x00, 0x4A, 0x43, 0xDC, 0xE0, 0xF7, 0x40, 0x99, +0x00, 0x6D, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF4, 0x50, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x01, 0xF0, 0x50, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xE1, 0xF7, 0x00, 0x4C, 0x01, 0x6D, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0x58, 0xDB, +0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x21, 0x6A, +0x81, 0xF7, 0x14, 0x4C, 0x1D, 0xF4, 0x00, 0x4A, +0x43, 0xDC, 0xE0, 0xF7, 0x40, 0x99, 0x00, 0x6D, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, +0x54, 0xDB, 0x80, 0x18, 0x28, 0x4F, 0x30, 0xF0, +0x20, 0x6A, 0x02, 0xF3, 0x60, 0x9A, 0x10, 0xF0, +0x00, 0x6C, 0x8B, 0xEC, 0x40, 0xAB, 0x7F, 0xF7, +0x1F, 0x6D, 0x0C, 0xEA, 0x8D, 0xEA, 0x0C, 0xEA, +0x01, 0x6C, 0x40, 0xCB, 0xC4, 0x67, 0x00, 0x18, +0x93, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, +0x58, 0x9A, 0x40, 0xEA, 0x00, 0x1C, 0xAB, 0x39, +0xFF, 0x17, 0x00, 0x65, 0x6D, 0xB8, 0x00, 0x65, +0x00, 0xF0, 0x20, 0x6A, 0x7C, 0x4A, 0x6C, 0xEA, +0x1C, 0x22, 0x00, 0xF0, 0x20, 0x6B, 0x28, 0x4B, +0x6A, 0xEA, 0x0B, 0x61, 0x4E, 0xB8, 0x00, 0x65, +0x00, 0xF0, 0x20, 0x6B, 0x01, 0x4B, 0x6B, 0xE2, +0x60, 0xAA, 0xBF, 0xF6, 0x1A, 0x6A, 0x6A, 0xEA, +0x31, 0x60, 0x77, 0xF0, 0x24, 0x6A, 0xA0, 0xF1, +0x1C, 0x4A, 0x1D, 0xF4, 0x00, 0x6B, 0x60, 0xDA, +0x10, 0xF0, 0x23, 0x6A, 0x40, 0xF7, 0x19, 0x4A, +0x00, 0xEA, 0x00, 0xF0, 0x20, 0x6A, 0x1F, 0xF7, +0x00, 0x6A, 0x4C, 0xEB, 0x4C, 0xB8, 0x00, 0x65, +0x6C, 0xEA, 0x42, 0x32, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF0, 0x00, 0x4B, 0x49, 0xE3, 0x40, 0xA2, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF1, 0x08, 0x4B, +0x69, 0xE2, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, +0x04, 0x4B, 0x60, 0x9B, 0x05, 0x2B, 0x10, 0xF0, +0x23, 0x6B, 0xA0, 0xF3, 0x01, 0x4B, 0x00, 0xEB, +0x10, 0xF0, 0x23, 0x6B, 0x20, 0xF4, 0x15, 0x4B, +0x00, 0xEB, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF1, 0x14, 0x4A, 0x00, 0xF0, 0x20, 0x6B, +0x01, 0x6B, 0x60, 0xDA, 0x10, 0xF0, 0x23, 0x6B, +0x60, 0xF2, 0x09, 0x4B, 0x00, 0xEB, 0x00, 0x65, +0x5A, 0xB8, 0x00, 0x65, 0x7B, 0xB8, 0x00, 0x65, +0x40, 0xE8, 0x5A, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x7B, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF1, +0x14, 0x4A, 0x00, 0xF0, 0x20, 0x6B, 0x60, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF1, 0x0C, 0x4A, +0x60, 0x9A, 0x41, 0x9A, 0x6A, 0xEA, 0x0D, 0x61, +0x6E, 0xB8, 0x00, 0x65, 0x62, 0x43, 0xCB, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x5A, 0xB8, +0x00, 0x65, 0x7B, 0xB8, 0x00, 0x65, 0x00, 0xBA, +0x00, 0x65, 0x36, 0x23, 0xDF, 0xF7, 0x00, 0x03, +0x86, 0xDB, 0xA7, 0xDB, 0xC8, 0xDB, 0xE9, 0xDB, +0x0A, 0xDB, 0x2B, 0xDB, 0x98, 0x67, 0x8C, 0xDB, +0x9F, 0x67, 0x8E, 0xDB, 0x12, 0xEC, 0x10, 0xED, +0x82, 0xDB, 0xA3, 0xDB, 0x9A, 0xB8, 0x00, 0x65, +0x84, 0xDB, 0x9B, 0xB8, 0x00, 0x65, 0x85, 0xDB, +0x8E, 0xB8, 0x00, 0x65, 0x82, 0x44, 0x81, 0xDB, +0x8C, 0xB8, 0x00, 0x65, 0x80, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xE0, 0xF1, 0x0C, 0x4B, 0x60, 0x9B, +0x9D, 0x67, 0x89, 0xDB, 0x6A, 0x9B, 0xCF, 0xF7, +0x80, 0x44, 0x62, 0xEC, 0x0D, 0x60, 0x77, 0xF0, +0x24, 0x6C, 0xA0, 0xF1, 0x1C, 0x4C, 0x1D, 0xF4, +0x01, 0x6B, 0x60, 0xDC, 0x10, 0xF0, 0x23, 0x6C, +0x40, 0xF7, 0x19, 0x4C, 0x00, 0xEC, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF1, 0x0C, 0x4B, +0x41, 0x9B, 0x40, 0xDB, 0x89, 0x9A, 0xBC, 0x65, +0x7D, 0x67, 0xDF, 0xF7, 0x00, 0x03, 0x4C, 0xB8, +0x00, 0x65, 0x00, 0xF0, 0x20, 0x6D, 0x05, 0x4D, +0xAF, 0xED, 0xAC, 0xEA, 0xA0, 0x9B, 0x04, 0x6C, +0x8C, 0xED, 0xAD, 0xEA, 0x82, 0x9B, 0xA3, 0x9B, +0x32, 0xEC, 0x30, 0xED, 0x8E, 0x9B, 0xFC, 0x65, +0x8C, 0x9B, 0x1C, 0x65, 0x84, 0x9B, 0x5C, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x85, 0x9B, +0x7C, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x2B, 0x9B, 0x0A, 0x9B, 0xE9, 0x9B, 0xC8, 0x9B, +0xA7, 0x9B, 0x86, 0x9B, 0x61, 0x9B, 0xCB, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x8A, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x7B, 0xB8, +0x00, 0x65, 0x5A, 0xB8, 0x00, 0x65, 0x00, 0xBA, +0xDF, 0xF7, 0x00, 0x03, 0x86, 0xDB, 0xA7, 0xDB, +0xC8, 0xDB, 0xE9, 0xDB, 0x0A, 0xDB, 0x2B, 0xDB, +0x98, 0x67, 0x8C, 0xDB, 0x9F, 0x67, 0x8E, 0xDB, +0x12, 0xEC, 0x10, 0xED, 0x82, 0xDB, 0xA3, 0xDB, +0x9A, 0xB8, 0x00, 0x65, 0x84, 0xDB, 0x9B, 0xB8, +0x00, 0x65, 0x85, 0xDB, 0x7D, 0x67, 0x5B, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x40, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x41, 0xF3, 0x08, 0x4C, +0x00, 0xF4, 0x00, 0x4C, 0xBC, 0x65, 0x82, 0x67, +0x40, 0xEA, 0x00, 0x65, 0x7A, 0xB8, 0x00, 0x65, +0xBB, 0x65, 0xDF, 0xF7, 0x00, 0x03, 0x82, 0x9B, +0xA3, 0x9B, 0x32, 0xEC, 0x30, 0xED, 0x8E, 0x9B, +0xFC, 0x65, 0x8C, 0x9B, 0x1C, 0x65, 0x84, 0x9B, +0x5C, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x85, 0x9B, 0x7C, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x2B, 0x9B, 0x0A, 0x9B, 0xE9, 0x9B, +0xC8, 0x9B, 0xA7, 0x9B, 0x86, 0x9B, 0x5A, 0xB8, +0x00, 0x65, 0x7B, 0xB8, 0x00, 0x65, 0x00, 0xBA, +0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF1, 0x14, 0x4B, 0x40, 0xDB, 0xDF, 0xF7, +0x00, 0x03, 0x86, 0xDB, 0xA7, 0xDB, 0xC8, 0xDB, +0xE9, 0xDB, 0x0A, 0xDB, 0x2B, 0xDB, 0x98, 0x67, +0x8C, 0xDB, 0x9F, 0x67, 0x8E, 0xDB, 0x12, 0xEC, +0x10, 0xED, 0x82, 0xDB, 0xA3, 0xDB, 0x9A, 0xB8, +0x00, 0x65, 0x84, 0xDB, 0x9B, 0xB8, 0x00, 0x65, +0x85, 0xDB, 0x8E, 0xB8, 0x00, 0x65, 0x81, 0xDB, +0x8C, 0xB8, 0x00, 0x65, 0x80, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xE0, 0xF1, 0x0C, 0x4B, 0x60, 0x9B, +0x9D, 0x67, 0x89, 0xDB, 0x6A, 0x9B, 0xCF, 0xF7, +0x80, 0x44, 0x62, 0xEC, 0x0D, 0x60, 0x77, 0xF0, +0x24, 0x6C, 0xA0, 0xF1, 0x1C, 0x4C, 0x1D, 0xF4, +0x01, 0x6B, 0x60, 0xDC, 0x10, 0xF0, 0x23, 0x6C, +0x40, 0xF7, 0x19, 0x4C, 0x00, 0xEC, 0x00, 0x65, +0x40, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x41, 0xF3, +0x08, 0x4C, 0x00, 0xF4, 0x00, 0x4C, 0xBC, 0x65, +0x82, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0xC0, 0xF1, 0x14, 0x4C, 0x00, 0xF0, 0x20, 0x6D, +0xA0, 0xDC, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF1, +0x0C, 0x4A, 0x10, 0xF0, 0x23, 0x6B, 0xC0, 0xF4, +0x1D, 0x4B, 0x00, 0xEB, 0x61, 0x9A, 0x60, 0xDA, +0x49, 0x9B, 0xBA, 0x65, 0xDF, 0xF7, 0x00, 0x03, +0x4C, 0xB8, 0x00, 0x65, 0x00, 0xF0, 0x20, 0x6D, +0x05, 0x4D, 0xAF, 0xED, 0xAC, 0xEA, 0xA0, 0x9B, +0x00, 0xF0, 0x20, 0x6C, 0x04, 0x4C, 0x8C, 0xED, +0xAD, 0xEA, 0x82, 0x9B, 0xA3, 0x9B, 0x32, 0xEC, +0x30, 0xED, 0x8E, 0x9B, 0xFC, 0x65, 0x8C, 0x9B, +0x1C, 0x65, 0x84, 0x9B, 0x5C, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x85, 0x9B, 0x7C, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x2B, 0x9B, +0x0A, 0x9B, 0xE9, 0x9B, 0xC8, 0x9B, 0xA7, 0x9B, +0x86, 0x9B, 0x61, 0x9B, 0xCB, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x8A, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x7B, 0xB8, 0x00, 0x65, +0x5A, 0xB8, 0x00, 0x65, 0x00, 0xBA, 0x00, 0x65, +0x5F, 0x67, 0x5A, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x18, 0xAA, 0xC1, 0x00, 0x1C, +0xBA, 0x35, 0x5A, 0xB8, 0x00, 0x65, 0x00, 0xEA, +0x6D, 0xB8, 0x00, 0xF0, 0x20, 0x6A, 0x00, 0xF2, +0x00, 0x4A, 0x4F, 0xEA, 0x4C, 0xEB, 0xAB, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x5F, 0x67, +0x5A, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x1C, 0x7D, 0x35, 0x5A, 0xB8, 0x00, 0x65, +0x00, 0xEA, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF2, 0x6C, 0x9B, 0xFF, 0x6A, 0x8C, 0xEA, +0x80, 0xA3, 0x10, 0x6B, 0x8C, 0xEB, 0x05, 0x23, +0xE2, 0xF1, 0x10, 0x4A, 0xE2, 0xF1, 0x10, 0x6B, +0x31, 0x10, 0x7F, 0x4A, 0x09, 0x4A, 0x88, 0x6B, +0x15, 0x10, 0x1F, 0xF7, 0x00, 0x6C, 0x6C, 0xEC, +0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, +0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF2, 0x98, 0x9C, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF2, +0x9C, 0x9C, 0xC0, 0xA5, 0x91, 0xE3, 0x01, 0x4D, +0xC0, 0xC4, 0x01, 0x4B, 0x4A, 0xEB, 0xE9, 0x61, +0x20, 0xE8, 0x1F, 0xF7, 0x00, 0x6C, 0x6C, 0xEC, +0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, +0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF2, 0x98, 0x9C, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF2, +0x9C, 0x9C, 0xC0, 0xA5, 0x91, 0xE3, 0x01, 0x4D, +0xC0, 0xC4, 0x01, 0x4B, 0x4A, 0xEB, 0xE9, 0x61, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, 0x01, 0x72, +0x14, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x42, 0xF4, +0xA0, 0x9B, 0x83, 0xF2, 0x1C, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, +0x14, 0x6C, 0x00, 0xF3, 0x00, 0x6D, 0x00, 0x6E, +0x15, 0x10, 0x02, 0x72, 0x14, 0x61, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x42, 0xF4, 0xA0, 0x9B, 0x83, 0xF2, +0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF2, 0x14, 0x6C, 0x00, 0xF3, +0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x44, 0x9A, +0x42, 0xF1, 0x18, 0x6C, 0x01, 0x6D, 0x02, 0x6E, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x17, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF2, 0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF2, 0x40, 0x9A, 0x60, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF2, 0x48, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF1, +0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xEF, 0x9A, +0x22, 0xF2, 0x6C, 0x9B, 0xCE, 0x9A, 0xAD, 0x9A, +0x8C, 0x9A, 0xE0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF2, 0x70, 0x9B, 0xC0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0xF2, 0x74, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF2, 0x78, 0x9B, +0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x89, 0x9A, +0x22, 0xF2, 0x7C, 0x9B, 0x80, 0xDB, 0x68, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF2, 0x40, 0x9A, +0x01, 0x6C, 0xA4, 0x67, 0x60, 0xDA, 0x80, 0x18, +0x68, 0x00, 0x00, 0x1C, 0xAC, 0x39, 0xFF, 0x17, +0x4C, 0xB8, 0x00, 0x65, 0x80, 0x34, 0x8D, 0xEA, +0x8A, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x4C, 0xB8, 0x00, 0x65, +0x80, 0x34, 0x8F, 0xEC, 0x8C, 0xEA, 0x8A, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF1, 0x00, 0x4A, +0x60, 0xDA, 0x81, 0xDA, 0xA2, 0xDA, 0xC3, 0xDA, +0xE4, 0xDA, 0x05, 0xDA, 0x26, 0xDA, 0x78, 0x67, +0x67, 0xDA, 0x7D, 0x67, 0x68, 0xDA, 0x7F, 0x67, +0x69, 0xDA, 0x12, 0xEB, 0x6A, 0xDA, 0x10, 0xEB, +0x6B, 0xDA, 0x6D, 0xB8, 0x00, 0x65, 0x6C, 0xDA, +0x68, 0xB8, 0x00, 0x65, 0x6D, 0xDA, 0x6C, 0xB8, +0x00, 0x65, 0x6E, 0xDA, 0x6E, 0xB8, 0x00, 0x65, +0x6F, 0xDA, 0x10, 0xF0, 0x23, 0x6A, 0xA0, 0xF6, +0x11, 0x4A, 0x00, 0xEA, 0x00, 0x65, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF2, 0x60, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0xA0, 0xF7, 0x09, 0x4A, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF2, +0x44, 0x9A, 0x08, 0x6B, 0x40, 0xA2, 0x4C, 0xEB, +0x00, 0x6A, 0x11, 0x23, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF2, 0x48, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0x9A, 0x43, 0xF4, 0x5C, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF2, 0x4C, 0x9A, 0x43, 0xF4, +0x1C, 0x4B, 0x40, 0x9A, 0x41, 0xDB, 0x20, 0xE8, +0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x22, 0xF2, 0x80, 0x9C, 0x10, 0xF0, 0x23, 0x6B, +0xE0, 0xF7, 0x11, 0x4B, 0x60, 0xDC, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF2, 0x64, 0x9B, 0x80, 0xA3, +0x08, 0x6B, 0x8C, 0xEB, 0x1C, 0x23, 0x05, 0x5A, +0x1A, 0x60, 0x0C, 0x6D, 0xB8, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF2, 0x68, 0x9B, 0x80, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, 0x04, 0x4B, +0x12, 0xEA, 0x49, 0xE3, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF2, 0x6C, 0x9B, 0x81, 0xDA, 0x80, 0xA2, +0x60, 0x9B, 0x62, 0xDA, 0x01, 0x6B, 0x8D, 0xEB, +0x60, 0xC2, 0x01, 0x6A, 0x20, 0xE8, 0x00, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF2, 0x80, 0x9C, +0x10, 0xF0, 0x23, 0x6B, 0x41, 0xF0, 0x15, 0x4B, +0x60, 0xDC, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF2, +0x64, 0x9B, 0x80, 0xA3, 0x08, 0x6B, 0x8C, 0xEB, +0x1B, 0x23, 0x05, 0x5A, 0x19, 0x60, 0x0C, 0x6C, +0x98, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, +0x04, 0x4B, 0x12, 0xEA, 0x69, 0xE2, 0x80, 0xA2, +0x01, 0x6B, 0x8C, 0xEB, 0x0D, 0x23, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF2, 0x68, 0x9B, 0x42, 0x9A, +0xA0, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF2, +0x6C, 0x9B, 0x60, 0x9B, 0x4B, 0xE3, 0x20, 0xE8, +0x00, 0x6A, 0x20, 0xE8, 0xFF, 0x6B, 0x8C, 0xEB, +0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF2, 0x80, 0x9C, +0x10, 0xF0, 0x23, 0x6A, 0xA1, 0xF0, 0x15, 0x4A, +0x05, 0x5B, 0x40, 0xDC, 0x00, 0x6A, 0x11, 0x60, +0x0C, 0x6C, 0x98, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF4, 0x04, 0x4A, 0x12, 0xEB, 0x4D, 0xE3, +0x80, 0xA3, 0x02, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, +0x40, 0xC3, 0x00, 0x6A, 0x41, 0xDB, 0x42, 0xDB, +0x01, 0x6A, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF2, +0x60, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0xE1, 0xF0, +0x15, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF7, 0x50, 0x9A, 0x40, 0xEA, 0x03, 0x22, +0x00, 0x18, 0xEA, 0xC1, 0x05, 0x10, 0x10, 0xF0, +0x23, 0x68, 0xA0, 0xF7, 0x09, 0x48, 0xBA, 0xFE, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0xF2, 0x60, 0x9B, 0x10, 0xF0, +0x23, 0x6A, 0x21, 0xF1, 0x11, 0x4A, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x50, 0x9A, +0xFF, 0x68, 0x8C, 0xE8, 0x40, 0xEA, 0x04, 0x22, +0x90, 0x67, 0x00, 0x18, 0xFC, 0xC1, 0x06, 0x10, +0x90, 0x67, 0x10, 0xF0, 0x23, 0x68, 0xE0, 0xF7, +0x11, 0x48, 0xBA, 0xFE, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF2, +0x60, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0x61, 0xF1, +0x15, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF7, 0x50, 0x9A, 0xFF, 0x68, 0x8C, 0xE8, +0x40, 0xEA, 0x04, 0x22, 0x90, 0x67, 0x00, 0x18, +0x15, 0xC2, 0x06, 0x10, 0x90, 0x67, 0x10, 0xF0, +0x23, 0x68, 0x41, 0xF0, 0x15, 0x48, 0xBA, 0xFE, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0xF2, 0x60, 0x9B, 0x10, 0xF0, +0x23, 0x6A, 0xA1, 0xF1, 0x19, 0x4A, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x50, 0x9A, +0xFF, 0x68, 0x8C, 0xE8, 0x40, 0xEA, 0x04, 0x22, +0x90, 0x67, 0x00, 0x18, 0x2D, 0xC2, 0x06, 0x10, +0x90, 0x67, 0x10, 0xF0, 0x23, 0x68, 0xA1, 0xF0, +0x15, 0x48, 0xBA, 0xFE, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0x10, 0xF0, 0x23, 0x6A, +0x60, 0xF2, 0x09, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF6, 0x48, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x20, 0xF4, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF6, 0x4C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xC0, 0xF4, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF6, 0x50, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x40, 0xF5, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF6, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xA0, 0xF6, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF6, 0x58, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x40, 0xF7, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF6, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xA0, 0xF6, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF7, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x3C, 0xF6, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF7, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xBA, 0xF4, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF7, 0x48, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x5A, 0xF2, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF7, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xDA, 0xF5, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF7, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xFA, 0xF6, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF7, 0x54, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xFA, 0xF5, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF7, 0x58, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x7A, 0xF1, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF7, 0x5C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xBB, 0xF6, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF7, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x7B, 0xF5, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF7, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xFB, 0xF5, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF7, 0x48, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x5C, 0xF1, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF7, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x5C, 0xF7, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF7, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xBC, 0xF1, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF7, 0x54, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xFC, 0xF0, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF7, 0x58, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x5B, 0xF6, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF7, 0x5C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xFA, 0xF5, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF7, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xDA, 0xF0, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF7, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xD9, 0xF6, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF7, 0x48, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x1C, 0xF6, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF7, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xB9, 0xF6, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF7, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xFB, 0xF1, 0x04, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF7, 0x54, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xFB, 0xF7, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF7, 0x58, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xBC, 0xF6, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF7, 0x5C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x1B, 0xF7, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF7, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x7B, 0xF6, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF7, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xFB, 0xF1, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF7, 0x48, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x80, 0xF6, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF7, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x5A, 0xF0, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF7, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x1A, 0xF0, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF7, 0x54, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xFA, 0xF0, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF7, 0x58, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x5A, 0xF2, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF7, 0x5C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x9A, 0xF3, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF7, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xFA, 0xF1, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF7, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x5C, 0xF3, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF7, 0x48, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x5C, 0xF4, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF7, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x3C, 0xF2, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF7, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xBC, 0xF4, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF7, 0x54, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x1C, 0xF5, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF7, 0x58, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xFB, 0xF1, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF7, 0x5C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x9B, 0xF4, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF7, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x1B, 0xF3, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF7, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x1B, 0xF2, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF7, 0x48, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x5A, 0xF7, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF7, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xBB, 0xF0, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF7, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x5B, 0xF0, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF7, 0x54, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x9A, 0xF7, 0x04, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF7, 0x58, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x5B, 0xF1, 0x04, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF7, 0x5C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x7B, 0xF1, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF7, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x9C, 0xF7, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF7, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xFC, 0xF7, 0x04, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF7, 0x48, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x1D, 0xF0, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF7, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x79, 0xF6, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF7, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xDD, 0xF0, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF7, 0x54, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x1D, 0xF1, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF7, 0x58, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x3D, 0xF1, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF7, 0x5C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x9D, 0xF3, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF7, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xFD, 0xF3, 0x04, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF7, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x3D, 0xF4, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF7, 0x48, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x5D, 0xF4, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF7, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x9D, 0xF4, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF7, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xDD, 0xF4, 0x04, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF7, 0x54, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xFD, 0xF6, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF7, 0x58, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x3D, 0xF7, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF7, 0x5C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x7D, 0xF7, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x01, 0xF0, 0x40, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x1E, 0xF1, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x01, 0xF0, 0x44, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x7E, 0xF1, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x01, 0xF0, 0x48, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x9E, 0xF1, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF4, 0x48, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xDE, 0xF1, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x01, 0xF0, 0x4C, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xDE, 0xF3, 0x1C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x01, 0xF0, 0x50, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x3E, 0xF4, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x01, 0xF0, 0x54, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0x7E, 0xF4, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x01, 0xF0, 0x58, 0xDB, 0x10, 0xF0, 0x21, 0x6A, +0xBE, 0xF4, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x01, 0xF0, 0x5C, 0xDB, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0x4C, 0xED, 0x8E, 0x36, 0x07, 0x6B, 0x01, 0x75, +0x4C, 0xEE, 0x8C, 0xEB, 0x12, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, 0x59, 0xE6, +0x01, 0x6A, 0x44, 0xEB, 0x03, 0xF3, 0x64, 0xA6, +0x00, 0x6D, 0x6D, 0xEA, 0x03, 0xF3, 0x44, 0xC6, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x40, 0x9A, +0x12, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0x00, 0x4A, 0x59, 0xE6, 0x01, 0x6A, 0x44, 0xEB, +0x03, 0xF3, 0x64, 0xA6, 0x4F, 0xEA, 0x01, 0x6D, +0x6C, 0xEA, 0x03, 0xF3, 0x44, 0xC6, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF3, 0x40, 0x9A, 0x40, 0xEA, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0x6A, 0x4C, 0xEC, 0x01, 0x6B, 0xAC, 0xEA, +0x6E, 0xEA, 0x01, 0x5A, 0x58, 0x67, 0x05, 0x5C, +0x48, 0x32, 0x03, 0x61, 0x01, 0x6A, 0x4B, 0xEA, +0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF2, +0xB0, 0x9B, 0x30, 0xF0, 0x20, 0x6E, 0x42, 0xF2, +0xD4, 0x9E, 0x60, 0x9D, 0x00, 0xF7, 0x80, 0x34, +0xCC, 0xEB, 0x6D, 0xEC, 0x80, 0xDD, 0x1F, 0xF7, +0x00, 0x6B, 0x60, 0xF5, 0x80, 0x42, 0x8C, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x09, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF2, 0x78, 0x9B, +0x60, 0xF5, 0x00, 0x4A, 0x69, 0xE2, 0x40, 0x9A, +0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF2, +0x5C, 0x9A, 0x51, 0xE4, 0x40, 0x9C, 0x20, 0xE8, +0xFB, 0x63, 0x09, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0x32, 0x6B, 0xAC, 0xEA, 0xBD, 0x67, 0x70, 0xC5, +0x02, 0x5C, 0x02, 0x6B, 0x6F, 0xCD, 0x92, 0xC5, +0x02, 0x60, 0x53, 0xC5, 0x04, 0x10, 0x01, 0x6A, +0x4B, 0xEA, 0x7D, 0x67, 0x53, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, +0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, +0xFF, 0x6B, 0x6C, 0xEC, 0x01, 0x6A, 0x8E, 0xEA, +0x01, 0x5A, 0x58, 0x67, 0x6C, 0xEA, 0x20, 0xE8, +0xFF, 0x6A, 0x4C, 0xEC, 0x01, 0x74, 0x0C, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF2, 0x60, 0x9B, +0x10, 0x6C, 0x75, 0xE5, 0x60, 0xA5, 0x4C, 0xEB, +0x8D, 0xEB, 0x4C, 0xEB, 0x60, 0xC5, 0x20, 0xE8, +0x09, 0x2C, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF2, +0x40, 0x9A, 0x55, 0xE5, 0x60, 0xA5, 0xEF, 0x6A, +0x6C, 0xEA, 0x40, 0xC5, 0x20, 0xE8, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x6A, 0x62, 0xF2, +0x64, 0x9B, 0x4C, 0xEE, 0x4C, 0xEF, 0x05, 0xD6, +0x04, 0xD7, 0x60, 0xA3, 0xFF, 0xF7, 0x1F, 0x68, +0x25, 0x67, 0x4C, 0xEB, 0x72, 0x33, 0x4C, 0xEB, +0x8C, 0xE8, 0x4C, 0xE9, 0x3C, 0x23, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF2, 0x68, 0x9B, 0x00, 0x6C, +0xFF, 0x6D, 0x60, 0xA3, 0x26, 0x6E, 0x6C, 0xEA, +0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF4, 0x5C, 0x9A, 0x40, 0xEA, 0x01, 0x72, +0x1D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x05, 0x96, +0xA0, 0xF2, 0x54, 0x9A, 0x04, 0x6F, 0x90, 0x67, +0x01, 0x6D, 0x40, 0xEA, 0x02, 0x67, 0x30, 0xF0, +0x20, 0x6A, 0x04, 0x96, 0x40, 0xF4, 0x58, 0x9A, +0xB0, 0x67, 0x91, 0x67, 0x40, 0xEA, 0x91, 0x67, +0x00, 0x18, 0xFE, 0xC3, 0xA2, 0x67, 0x90, 0x67, +0x00, 0x18, 0x59, 0xD7, 0x04, 0x95, 0x90, 0x67, +0x00, 0x18, 0x68, 0xD7, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x06, 0x95, 0x00, 0x6C, +0x27, 0x6E, 0x40, 0xEA, 0x1D, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x05, 0x96, 0xA0, 0xF2, 0x54, 0x9A, +0x04, 0x6F, 0x90, 0x67, 0x01, 0x6D, 0x40, 0xEA, +0x02, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x96, +0x40, 0xF4, 0x58, 0x9A, 0xB0, 0x67, 0x91, 0x67, +0x40, 0xEA, 0x91, 0x67, 0x00, 0x18, 0xFE, 0xC3, +0xA2, 0x67, 0x90, 0x67, 0x00, 0x18, 0x59, 0xD7, +0x04, 0x95, 0x90, 0x67, 0x00, 0x18, 0x68, 0xD7, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, 0x54, 0x9A, +0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, +0x0E, 0x90, 0x24, 0x67, 0x4C, 0xE9, 0x03, 0x6B, +0x4C, 0xEF, 0x2C, 0xEB, 0x00, 0x6A, 0x0B, 0xD5, +0x0C, 0xD6, 0x04, 0xD7, 0x40, 0xC8, 0x00, 0x6A, +0x0A, 0x23, 0x28, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, +0x40, 0xA8, 0x01, 0x4A, 0x40, 0xC8, 0x1F, 0xF7, +0x00, 0x6A, 0x2C, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF2, 0x58, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF2, 0x5C, 0x9A, 0x49, 0xE1, +0x0B, 0x93, 0x40, 0x9A, 0x6C, 0xEA, 0x0C, 0x93, +0x6E, 0xEA, 0x04, 0x22, 0x40, 0xA8, 0x04, 0x93, +0x63, 0xEA, 0xDC, 0x61, 0x40, 0xA8, 0x04, 0x93, +0x63, 0xEA, 0x58, 0x67, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0x6A, 0xA0, 0x35, 0x4C, 0xEC, 0xA0, 0x35, +0xCC, 0xEA, 0x4D, 0xED, 0x05, 0x2C, 0x30, 0xF0, +0x20, 0x6A, 0xA2, 0xF2, 0x40, 0x9A, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF2, 0x44, 0x9A, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF2, 0x88, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF2, 0x6C, 0x9B, +0xAD, 0xEA, 0x40, 0xDC, 0x4C, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0xA2, 0xF2, 0x50, 0x9A, 0x60, 0xDC, +0x00, 0x6B, 0x60, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0xFF, 0xF7, 0x1F, 0x6B, 0x8C, 0xEA, +0xAC, 0xEB, 0x05, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xA2, 0xF2, 0x54, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA2, 0xF2, 0x58, 0x9A, 0x60, 0x33, +0x60, 0x33, 0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0xA2, 0xF2, 0x48, 0x9A, 0x00, 0x6C, 0x60, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF2, 0x5C, 0x9A, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF2, 0x70, 0x9B, +0x40, 0xA2, 0x80, 0xC3, 0xFF, 0x6B, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, +0x60, 0x9B, 0xFF, 0x6A, 0xCC, 0xEA, 0x6D, 0xEA, +0xE0, 0xF1, 0x1F, 0x6B, 0xAC, 0xEB, 0x60, 0x33, +0x60, 0x33, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA2, 0xF2, 0x08, 0x9B, 0x01, 0x6C, 0x40, 0xD8, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x40, 0xEA, 0x00, 0x6A, 0x40, 0xD8, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xE0, 0xF1, 0x1F, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xAC, 0xEA, 0xC2, 0xF2, 0x64, 0x9B, 0x40, 0x32, +0x40, 0x32, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA2, 0xF2, 0x08, 0x4B, 0x60, 0x9B, 0x30, 0xF0, +0x20, 0x68, 0x01, 0x6C, 0x40, 0xDB, 0x80, 0xF3, +0x4C, 0x98, 0xFF, 0x69, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xA2, 0xF2, 0x5C, 0x9A, 0x01, 0x6C, +0x40, 0xA2, 0x4C, 0xE9, 0x80, 0xF3, 0x4C, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0xA2, 0xF2, +0x08, 0x4C, 0x80, 0x9C, 0x00, 0x6A, 0x40, 0xDC, +0x07, 0x97, 0x51, 0x67, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF2, 0xC8, 0x9B, 0xFF, 0x6A, 0x04, 0x6D, +0x60, 0xA6, 0x4C, 0xEC, 0x4C, 0xEB, 0xAD, 0xEB, +0x4C, 0xEB, 0x60, 0xC6, 0x11, 0x24, 0x30, 0xF0, +0x20, 0x6B, 0xC2, 0xF2, 0x8C, 0x9B, 0x60, 0xA4, +0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0x60, 0xC4, 0xA3, 0xF4, 0x00, 0x4A, +0x00, 0x6B, 0xC2, 0xF5, 0x65, 0xC2, 0x0D, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF2, 0x6C, 0x9A, +0xFB, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, +0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x66, 0xF2, +0x65, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF2, +0x68, 0x9A, 0xFB, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x20, 0xE8, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x0E, 0x92, 0x0F, 0x91, +0x04, 0x67, 0x04, 0xD2, 0x04, 0x93, 0xFF, 0x6A, +0x4C, 0xE8, 0x4C, 0xEB, 0x4C, 0xE9, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF2, 0x5C, 0x9A, 0x0B, 0xD5, +0x0C, 0xD6, 0x0D, 0xD7, 0x04, 0xD3, 0x90, 0x67, +0x40, 0xEA, 0x80, 0xF0, 0x07, 0x22, 0x06, 0x58, +0x80, 0xF0, 0x04, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x08, 0x30, 0x82, 0xF0, 0x1C, 0x4A, 0x09, 0xE2, +0x40, 0x9A, 0x00, 0xEA, 0x02, 0xF2, 0x10, 0x6A, +0x0E, 0x10, 0x02, 0xF2, 0x00, 0x6A, 0x0B, 0x10, +0x22, 0xF2, 0x00, 0x6A, 0x08, 0x10, 0x22, 0xF2, +0x10, 0x6A, 0x05, 0x10, 0x42, 0xF2, 0x00, 0x6A, +0x02, 0x10, 0x42, 0xF2, 0x10, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x0D, 0x94, 0xC2, 0xF2, 0x70, 0x9B, +0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF2, +0x94, 0x9C, 0x8D, 0xEB, 0x06, 0x21, 0x30, 0xF0, +0x20, 0x6C, 0xC2, 0xF2, 0x98, 0x9C, 0x6D, 0xEC, +0x05, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF2, +0x9C, 0x9C, 0x6C, 0xEC, 0x04, 0x96, 0x06, 0x26, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, 0x64, 0x9B, +0x8D, 0xEB, 0x05, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF2, 0x60, 0x9B, 0x8C, 0xEB, 0x1F, 0xF7, +0x00, 0x6C, 0x4C, 0xEC, 0x02, 0xF0, 0x00, 0x74, +0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, +0x42, 0xF2, 0xB8, 0x9C, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6C, 0x42, 0xF2, 0xBC, 0x9C, 0x30, 0xF0, +0x20, 0x6C, 0x0B, 0x96, 0xE2, 0xF2, 0x84, 0x9C, +0xB5, 0xE2, 0xCC, 0xEC, 0x80, 0xDD, 0x84, 0x42, +0x1F, 0xF7, 0x00, 0x6D, 0xAC, 0xEC, 0x02, 0xF0, +0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, +0x20, 0x6C, 0xE2, 0xF2, 0xA8, 0x9C, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF2, 0xAC, 0x9C, +0x30, 0xF0, 0x20, 0x6C, 0x0C, 0x96, 0xE2, 0xF2, +0x84, 0x9C, 0xB5, 0xE2, 0xCC, 0xEC, 0x80, 0xDD, +0x87, 0x42, 0x01, 0x4C, 0x1F, 0xF7, 0x00, 0x6D, +0xAC, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, +0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF2, +0x90, 0x9C, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, +0xE2, 0xF2, 0x94, 0x9C, 0x89, 0xE2, 0x60, 0xDA, +0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x01, 0x68, 0x04, 0xEC, 0x82, 0xF3, 0x08, 0x69, +0x1C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x01, 0x6C, 0xFF, 0x49, 0x40, 0xEA, +0x14, 0x29, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF2, +0x64, 0x9A, 0x08, 0xF0, 0x00, 0x6C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0x23, 0xF3, 0x70, 0x9A, +0x8D, 0xEB, 0x23, 0xF3, 0x70, 0xDA, 0x00, 0x6A, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, +0x58, 0x9A, 0x60, 0xAA, 0xFF, 0xF7, 0x1F, 0x6A, +0x6C, 0xEA, 0x0C, 0xEA, 0xDA, 0x2A, 0x01, 0x6A, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x04, 0xF7, 0x10, 0x68, 0x1C, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x05, 0x6C, 0xFF, 0x48, 0x40, 0xEA, 0x14, 0x28, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF2, 0x64, 0x9A, +0x08, 0xF0, 0x00, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0x00, 0x4A, 0x23, 0xF3, 0x70, 0x9A, 0x8D, 0xEB, +0x23, 0xF3, 0x70, 0xDA, 0x00, 0x6A, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0x58, 0x9A, +0x60, 0xAA, 0x3F, 0x6A, 0x6C, 0xEA, 0xDC, 0x2A, +0x01, 0x6A, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF2, 0x58, 0x9A, 0x40, 0xAA, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0x58, 0x9A, +0x40, 0xAA, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x6A, 0x0A, 0x72, 0x0C, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x01, 0xF0, +0x54, 0x9A, 0x43, 0xF4, 0x98, 0x9B, 0x01, 0x6D, +0xAB, 0xED, 0x40, 0xEA, 0x00, 0x6A, 0x30, 0xF0, +0x20, 0x6C, 0x22, 0xF2, 0x80, 0x9C, 0x10, 0xF0, +0x23, 0x6B, 0x82, 0xF5, 0x0D, 0x4B, 0x60, 0xDC, +0x01, 0x4B, 0x60, 0xDC, 0x01, 0x4A, 0xFF, 0x6B, +0x6C, 0xEA, 0xE3, 0x17, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x00, 0x68, 0x01, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0xF2, 0x60, 0x9B, 0x4E, 0xE8, +0x10, 0xF0, 0x23, 0x6A, 0xC2, 0xF5, 0x0D, 0x4A, +0x09, 0xE2, 0x40, 0xDB, 0x00, 0x1C, 0xAC, 0x39, +0x80, 0x18, 0x4F, 0x00, 0x00, 0x1C, 0xAB, 0x39, +0x00, 0x1C, 0xAC, 0x39, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0xA0, 0xF0, 0x84, 0x9A, +0x10, 0xF0, 0x00, 0x6B, 0x8C, 0xEB, 0x08, 0x23, +0x10, 0xF0, 0x01, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x00, 0x18, 0xD1, 0xD0, +0x00, 0x1C, 0xAB, 0x39, 0x00, 0x1C, 0xAC, 0x39, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0xA0, 0xF0, 0x84, 0x9A, 0x02, 0x6B, 0x8C, 0xEB, +0x09, 0x23, 0x03, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x80, 0x18, 0xCD, 0x14, +0x80, 0x18, 0x1E, 0x15, 0x00, 0x1C, 0xAB, 0x39, +0x00, 0x1C, 0xAC, 0x39, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0xA0, 0xF0, 0x84, 0x9A, +0x04, 0x6B, 0x8C, 0xEB, 0x09, 0x23, 0x05, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, +0x00, 0x18, 0x1F, 0xCB, 0x00, 0x18, 0xA7, 0xCB, +0x00, 0x1C, 0xAB, 0x39, 0x00, 0x1C, 0xAC, 0x39, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0xA0, 0xF0, 0x84, 0x9A, 0x02, 0xF0, 0x00, 0x6B, +0x8C, 0xEB, 0x08, 0x23, 0x02, 0xF0, 0x01, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, +0x00, 0x18, 0xCD, 0xCF, 0x00, 0x1C, 0xAB, 0x39, +0x00, 0x1C, 0xAC, 0x39, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF3, 0x6C, 0x9B, 0xA0, 0xF0, 0x84, 0x9A, +0x8C, 0xEB, 0x09, 0x23, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF3, 0x70, 0x9B, 0x8C, 0xEB, 0xA0, 0xF0, +0x64, 0xDA, 0x80, 0x18, 0xA2, 0x13, 0x00, 0x1C, +0xAB, 0x39, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF4, 0x98, 0x9B, 0x01, 0xF0, +0x58, 0x9A, 0x40, 0xEA, 0x73, 0x17, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0xF5, 0xD0, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0xEF, 0xD0, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x4F, 0xD1, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0xC9, 0xD1, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0xDD, 0xD1, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0xE9, 0xD0, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF3, 0x54, 0x9A, 0xE1, 0xF7, 0x1F, 0x6B, +0x40, 0xAA, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF3, 0x58, 0x9A, +0x60, 0x9A, 0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF3, 0x5C, 0x9A, 0x01, 0x6B, 0x40, 0x9A, +0x42, 0x32, 0x52, 0x32, 0x6E, 0xEA, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF3, 0x60, 0x9B, 0x44, 0x67, 0x30, 0xF0, +0x20, 0x6C, 0x60, 0x9B, 0xC2, 0xF2, 0x90, 0x9C, +0x8C, 0xEB, 0x43, 0xEB, 0x02, 0x60, 0x6F, 0xEB, +0x69, 0xE2, 0x20, 0xE8, 0x03, 0x6F, 0x8C, 0xEF, +0x64, 0x67, 0x46, 0x67, 0x04, 0x27, 0x0B, 0x10, +0xA0, 0xDB, 0xFC, 0x4A, 0x04, 0x4B, 0x04, 0x5A, +0xFB, 0x60, 0x03, 0x6A, 0x4C, 0xEE, 0x03, 0x10, +0xA0, 0xC4, 0xFF, 0x4E, 0x01, 0x4C, 0xFC, 0x2E, +0x00, 0x6A, 0x20, 0xE8, 0xFF, 0x6A, 0xAC, 0xEA, +0x03, 0x10, 0x40, 0xC4, 0xFF, 0x4E, 0x01, 0x4C, +0xFC, 0x2E, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x63, 0x01, 0xD0, 0x03, 0x6B, 0x05, 0x67, +0x6C, 0xE8, 0x44, 0x67, 0xE4, 0x67, 0x85, 0x67, +0x12, 0x28, 0x4C, 0xEB, 0x10, 0x2B, 0x86, 0x67, +0x06, 0x10, 0x61, 0xE5, 0x00, 0x98, 0x7D, 0xE2, +0xFC, 0x4C, 0x00, 0xDF, 0x04, 0x4B, 0x04, 0x5C, +0xF8, 0x60, 0xCA, 0x34, 0x88, 0x34, 0x03, 0x6B, +0x9D, 0xE2, 0x6C, 0xEE, 0x91, 0xE5, 0x00, 0x6B, +0x06, 0x10, 0x61, 0xE4, 0x00, 0xA0, 0x75, 0xE7, +0xFF, 0x4E, 0x00, 0xC5, 0x01, 0x4B, 0xF9, 0x2E, +0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, 0x00, 0x65, +0x09, 0x10, 0x60, 0xA4, 0x40, 0xA5, 0xFF, 0x4E, +0x4A, 0xEB, 0x02, 0x60, 0x4B, 0xE3, 0x20, 0xE8, +0x01, 0x4C, 0x01, 0x4D, 0xF6, 0x2E, 0x00, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0x80, 0x63, 0xFF, 0x62, +0xFE, 0xD1, 0xFD, 0xD0, 0xF9, 0x63, 0x20, 0xF4, +0x18, 0xD4, 0x00, 0x6D, 0x85, 0x04, 0x00, 0xF2, +0x00, 0x6E, 0x00, 0x18, 0xF7, 0xC5, 0x00, 0x6C, +0x0F, 0x10, 0x01, 0x6D, 0xAB, 0xED, 0xA0, 0xCB, +0x01, 0x4A, 0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEA, +0x04, 0x72, 0x02, 0x4B, 0xF6, 0x61, 0xFF, 0x6B, +0x04, 0x4C, 0x01, 0x4B, 0x8E, 0xEB, 0x05, 0x23, +0x84, 0x32, 0x85, 0x03, 0x4D, 0xE3, 0x00, 0x6A, +0xEC, 0x17, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x48, 0x9A, 0x9D, 0x67, 0x72, 0xC4, 0x71, 0xC4, +0x70, 0xC4, 0x04, 0x05, 0x00, 0x6C, 0x40, 0xEA, +0x7D, 0x67, 0x50, 0xA3, 0x01, 0x68, 0xFF, 0x72, +0x00, 0x6A, 0x80, 0xF0, 0x1D, 0x61, 0xCF, 0x10, +0x1F, 0x6A, 0x2C, 0xEA, 0x0F, 0x72, 0x2C, 0x61, +0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF3, 0x48, 0x9C, +0x00, 0xF0, 0x11, 0x05, 0x90, 0x67, 0x40, 0xEA, +0x5D, 0x67, 0x91, 0xA2, 0xFF, 0x74, 0x0F, 0x60, +0x0F, 0x6B, 0x8C, 0xEB, 0x01, 0x48, 0xFF, 0xF7, +0x1F, 0x6A, 0x0F, 0x73, 0x4C, 0xE8, 0x10, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x48, 0x9B, +0x90, 0x67, 0x04, 0x05, 0x40, 0xEA, 0x00, 0x6D, +0x05, 0x04, 0x00, 0xF2, 0x00, 0x6E, 0x00, 0x18, +0xF7, 0xC5, 0x01, 0x6D, 0x00, 0x6B, 0x92, 0x10, +0xF0, 0x6A, 0x8C, 0xEA, 0x47, 0x32, 0x36, 0x31, +0x2D, 0xEA, 0x00, 0xF4, 0x18, 0xD3, 0x05, 0x10, +0x0F, 0x6C, 0x2C, 0xEC, 0x32, 0x32, 0x00, 0xF4, +0x18, 0xD4, 0x40, 0x5A, 0x00, 0x6B, 0x49, 0x60, +0x4C, 0x32, 0x85, 0x01, 0x45, 0xE1, 0x20, 0xF4, +0x00, 0xD1, 0x00, 0xF4, 0x1C, 0xD3, 0x00, 0xF4, +0x1C, 0x93, 0x00, 0xF4, 0x18, 0x92, 0x47, 0xEB, +0x01, 0x6B, 0x6C, 0xEA, 0x2C, 0x2A, 0x90, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0xFF, 0xF7, 0x1F, 0x6A, +0x01, 0x48, 0x4C, 0xE8, 0xC0, 0xF3, 0x48, 0x9B, +0x00, 0xF0, 0x12, 0x05, 0x40, 0xEA, 0x9D, 0x67, +0x52, 0xA4, 0x20, 0xF4, 0x00, 0x93, 0x00, 0xF2, +0x00, 0x58, 0x40, 0xCB, 0x36, 0x60, 0x90, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0xFF, 0xF7, 0x1F, 0x6A, +0x01, 0x48, 0x4C, 0xE8, 0xC0, 0xF3, 0x48, 0x9B, +0x00, 0xF0, 0x12, 0x05, 0x40, 0xEA, 0x9D, 0x67, +0x52, 0xA4, 0x60, 0xA9, 0x00, 0xF2, 0x00, 0x70, +0x40, 0x32, 0x6D, 0xEA, 0x40, 0xC9, 0x03, 0x61, +0x00, 0xF2, 0x00, 0x68, 0x1E, 0x10, 0x00, 0xF4, +0x1C, 0x92, 0x20, 0xF4, 0x00, 0x93, 0x02, 0x49, +0x01, 0x4A, 0x02, 0x4B, 0x04, 0x72, 0x00, 0xF4, +0x1C, 0xD2, 0x20, 0xF4, 0x00, 0xD3, 0xBF, 0x61, +0x10, 0x10, 0x00, 0xF4, 0x18, 0x92, 0x01, 0x6C, +0x47, 0xEB, 0x8C, 0xEA, 0x07, 0x2A, 0x02, 0x48, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0x00, 0xF2, +0x00, 0x58, 0x03, 0x60, 0x01, 0x4B, 0x04, 0x73, +0xF0, 0x61, 0xFF, 0xF7, 0x1F, 0x6A, 0x90, 0x67, +0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x48, 0x9A, 0x04, 0x05, 0x40, 0xEA, +0x9D, 0x67, 0x30, 0xA4, 0xFF, 0x71, 0x7F, 0xF7, +0x1E, 0x60, 0x00, 0xF2, 0x00, 0x58, 0x5F, 0xF7, +0x1B, 0x61, 0x79, 0x17, 0x20, 0xAC, 0x01, 0x4A, +0x02, 0x4C, 0x20, 0xC0, 0x20, 0xAF, 0x02, 0x48, +0x02, 0x4F, 0x22, 0x31, 0x20, 0xC6, 0xFF, 0xF7, +0x1F, 0x69, 0x2C, 0xEA, 0x04, 0x72, 0x02, 0x4E, +0xF1, 0x61, 0x04, 0x4B, 0x00, 0xF1, 0x00, 0x73, +0x08, 0x4D, 0x09, 0x60, 0x64, 0x30, 0x85, 0x04, +0x11, 0xE4, 0x05, 0x06, 0x01, 0xE6, 0xE4, 0x67, +0xB9, 0xE6, 0x00, 0x6A, 0xE3, 0x17, 0x7D, 0x67, +0xA0, 0xF1, 0x45, 0xA3, 0x20, 0xF4, 0x18, 0x94, +0x01, 0x6B, 0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, +0xEA, 0xF3, 0x7C, 0xC2, 0x01, 0x6A, 0x07, 0x63, +0xFF, 0x97, 0xFE, 0x91, 0xFD, 0x90, 0x00, 0xF4, +0x00, 0x63, 0x00, 0xEF, 0x1F, 0x75, 0x0D, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF2, 0x64, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF2, 0x94, 0x9C, +0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x00, 0x6A, +0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, +0x44, 0x9A, 0x60, 0x9C, 0x4E, 0xEB, 0x01, 0x6A, +0x0C, 0x23, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF2, +0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xA2, 0xF2, +0x94, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x00, 0x6A, 0x20, 0xE8, 0x6D, 0xA4, 0x0F, 0x6A, +0x6C, 0xEA, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF2, 0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xC2, 0xF2, 0x84, 0x9C, 0x40, 0x9B, 0x2F, 0x10, +0x4E, 0xA4, 0x1F, 0x6B, 0x6C, 0xEA, 0x1F, 0x4A, +0x6C, 0xEA, 0x10, 0x5A, 0x0A, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF2, 0x64, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x02, 0xF3, 0x8C, 0x9C, 0x40, 0x9B, +0x1E, 0x10, 0x4C, 0xA4, 0x0C, 0x22, 0x80, 0x72, +0x0A, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF2, +0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF3, +0x88, 0x9C, 0x40, 0x9B, 0x10, 0x10, 0x6D, 0xA4, +0x10, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6D, +0xAC, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF2, 0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xC2, 0xF2, 0x98, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0x00, 0x6A, 0x20, 0xE8, 0x4E, 0xA4, +0x20, 0x6B, 0x6B, 0xEB, 0x4C, 0xEB, 0xAC, 0xEB, +0x01, 0x6A, 0x0C, 0x23, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF2, 0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x82, 0xF2, 0x88, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x00, 0x4B, +0x26, 0xF7, 0x4F, 0xA3, 0x04, 0x2A, 0x01, 0x6C, +0x26, 0xF7, 0x8F, 0xC3, 0x20, 0xE8, 0x8F, 0x42, +0x26, 0xF7, 0x8F, 0xC3, 0x20, 0xE8, 0x00, 0x65, +0xA2, 0xDC, 0x20, 0xE8, 0xAC, 0xC4, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x68, 0xAC, 0xE8, 0x00, 0x30, 0x30, 0xF0, +0x20, 0x6A, 0xC9, 0xF7, 0x08, 0x4A, 0x04, 0x30, +0x01, 0xE2, 0x24, 0x67, 0x00, 0x6D, 0x90, 0x67, +0x00, 0xF2, 0x00, 0x6E, 0x00, 0x18, 0xF7, 0xC5, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, 0x4C, 0x9A, +0x40, 0xD8, 0x41, 0x99, 0x41, 0xD8, 0x07, 0x97, +0x50, 0x67, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xDB, 0x63, 0x49, 0x62, +0x48, 0xD1, 0x47, 0xD0, 0xFF, 0x6E, 0x04, 0x67, +0x25, 0x67, 0x04, 0x04, 0x00, 0x6D, 0x01, 0x4E, +0x00, 0x18, 0xF7, 0xC5, 0x6E, 0x10, 0x00, 0x6A, +0x08, 0x58, 0x44, 0xD2, 0x0A, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF3, 0x54, 0x9A, 0x91, 0x67, +0xF8, 0x48, 0x40, 0xEA, 0x02, 0xF0, 0x00, 0x49, +0x60, 0x10, 0xFF, 0x6E, 0x04, 0x04, 0x00, 0x6D, +0x01, 0x4E, 0x00, 0x18, 0xF7, 0xC5, 0x44, 0x93, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, 0x5C, 0x9A, +0xFF, 0x6D, 0x31, 0xE3, 0x01, 0x4D, 0x04, 0x06, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x44, 0x94, +0x22, 0xF3, 0x70, 0x9B, 0x04, 0x02, 0x6D, 0xE4, +0x44, 0x04, 0xA0, 0xA2, 0x01, 0x4A, 0x8A, 0xEA, +0xA0, 0xC3, 0x01, 0x4B, 0xFA, 0x61, 0x44, 0x92, +0x00, 0xF1, 0x00, 0x4A, 0x02, 0xF0, 0x00, 0x72, +0x44, 0xD2, 0xDB, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF3, 0x54, 0x9A, 0x91, 0x67, 0x00, 0x30, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, +0x40, 0x9A, 0x04, 0x30, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x5C, 0x9A, 0x02, 0x6C, +0x40, 0xEA, 0x2D, 0xE0, 0x44, 0xD3, 0xFF, 0x6E, +0x04, 0x04, 0x00, 0x6D, 0x01, 0x4E, 0x00, 0x18, +0xF7, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, +0x70, 0x9A, 0x44, 0x04, 0x04, 0x02, 0x6D, 0xE0, +0xA0, 0xA3, 0x01, 0x4B, 0xA0, 0xC2, 0x01, 0x4A, +0x8A, 0xEA, 0xFA, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x44, 0x94, 0xE0, 0xF3, 0x58, 0x9A, 0xFF, 0x6D, +0x01, 0x4D, 0x04, 0x06, 0x40, 0xEA, 0x44, 0x94, +0x00, 0xF1, 0x00, 0x48, 0x02, 0xF0, 0x00, 0x58, +0x00, 0xF1, 0x00, 0x4C, 0x44, 0xD4, 0xDB, 0x61, +0x00, 0x68, 0x91, 0x28, 0x49, 0x97, 0x48, 0x91, +0x47, 0x90, 0x25, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF0, 0x70, 0x9A, +0xE2, 0xF0, 0x10, 0x4A, 0x41, 0x9A, 0x30, 0xF0, +0x20, 0x6D, 0x07, 0x04, 0xE2, 0xF0, 0x00, 0x4D, +0x10, 0x6E, 0x05, 0xD3, 0x06, 0xD2, 0x00, 0x18, +0xFC, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF0, +0x5C, 0x9A, 0x04, 0xD2, 0x00, 0x18, 0xDA, 0xC6, +0x40, 0x30, 0x22, 0x67, 0x30, 0xF0, 0x20, 0x6A, +0xC9, 0xF7, 0x08, 0x4A, 0x04, 0x30, 0x01, 0xE2, +0x90, 0x67, 0x00, 0x6D, 0x00, 0xF2, 0x00, 0x6E, +0x00, 0x18, 0xF7, 0xC5, 0x30, 0xF0, 0x20, 0x6A, +0xEA, 0xF3, 0x5C, 0xA2, 0x08, 0x2A, 0x30, 0xF0, +0x20, 0x6C, 0xEA, 0xF3, 0x1D, 0x4C, 0x00, 0x18, +0x17, 0xC6, 0x01, 0x72, 0x09, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xEA, 0xF3, 0x5D, 0xA2, 0x02, 0x6B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x6A, 0x01, 0x10, +0x05, 0x6A, 0x40, 0xC0, 0x80, 0x6A, 0x4B, 0xEA, +0x41, 0xC0, 0x01, 0x6A, 0x43, 0xC0, 0x87, 0x40, +0x1F, 0x6A, 0x05, 0x05, 0x44, 0xC0, 0x01, 0x4C, +0x08, 0x6E, 0x00, 0x18, 0xFC, 0xC5, 0x87, 0x40, +0x07, 0x05, 0x09, 0x4C, 0x10, 0x6E, 0x00, 0x18, +0xFC, 0xC5, 0x87, 0x40, 0x04, 0x05, 0x19, 0x4C, +0x04, 0x6E, 0x00, 0x18, 0xFC, 0xC5, 0x91, 0x67, +0x24, 0x6D, 0x00, 0x6E, 0x00, 0x18, 0x7A, 0xD0, +0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, 0x01, 0x6A, +0x08, 0x63, 0x00, 0xEF, 0xD4, 0x63, 0x57, 0x62, +0x56, 0xD1, 0x55, 0xD0, 0x59, 0xD5, 0x30, 0xF0, +0x20, 0x6D, 0xA2, 0xF0, 0x14, 0x4D, 0x28, 0x6E, +0x24, 0x67, 0x04, 0x04, 0x00, 0x18, 0xFC, 0xC5, +0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6E, 0x0E, 0x04, +0x00, 0x6D, 0x01, 0x4E, 0xA3, 0xF4, 0x00, 0x48, +0x00, 0x18, 0xF7, 0xC5, 0x26, 0xF7, 0x50, 0xA0, +0x20, 0xF5, 0x0E, 0x2A, 0x59, 0x95, 0x91, 0x67, +0x00, 0x18, 0x9D, 0xC6, 0x00, 0xF5, 0x18, 0x22, +0x59, 0x95, 0x91, 0x67, 0x00, 0x18, 0xAF, 0xC6, +0x00, 0xF5, 0x12, 0x22, 0x4F, 0xA1, 0x2A, 0x72, +0x20, 0xF4, 0x11, 0x60, 0x2B, 0x5A, 0x25, 0x60, +0x1B, 0x72, 0x00, 0xF3, 0x1A, 0x60, 0x1C, 0x5A, +0x0F, 0x60, 0x03, 0x72, 0x68, 0x60, 0x04, 0x5A, +0x04, 0x60, 0x20, 0xF2, 0x0A, 0x22, 0xE0, 0xF4, +0x14, 0x10, 0x12, 0x72, 0x3F, 0x60, 0x1A, 0x72, +0x80, 0xF0, 0x1B, 0x60, 0xE0, 0xF4, 0x0D, 0x10, +0x23, 0x72, 0x78, 0x67, 0x4F, 0xD3, 0x40, 0xF1, +0x1C, 0x23, 0x24, 0x5A, 0x05, 0x60, 0x1E, 0x72, +0x40, 0xF1, 0x0C, 0x60, 0xE0, 0xF4, 0x01, 0x10, +0x25, 0x72, 0xA0, 0xF1, 0x0F, 0x60, 0x28, 0x72, +0x25, 0x10, 0x51, 0x72, 0x20, 0xF2, 0x14, 0x60, +0x52, 0x5A, 0x12, 0x60, 0x43, 0x72, 0x40, 0xF2, +0x03, 0x60, 0x44, 0x5A, 0x05, 0x60, 0x35, 0x72, +0xC0, 0xF4, 0x1A, 0x60, 0xC0, 0xF4, 0x0D, 0x10, +0x46, 0x72, 0x20, 0xF2, 0x19, 0x60, 0x4A, 0x72, +0x00, 0xF2, 0x0D, 0x60, 0xC0, 0xF4, 0x05, 0x10, +0x5A, 0x72, 0xA0, 0xF0, 0x16, 0x60, 0x5B, 0x5A, +0x05, 0x60, 0x52, 0x72, 0x20, 0xF2, 0x0C, 0x60, +0xA0, 0xF4, 0x1B, 0x10, 0xA4, 0x72, 0x80, 0xF4, +0x16, 0x60, 0xA8, 0x72, 0xE0, 0xF2, 0x09, 0x60, +0xA0, 0xF4, 0x13, 0x10, 0x82, 0x99, 0x4E, 0xD4, +0x00, 0x18, 0x36, 0xC7, 0x50, 0xD2, 0x00, 0x18, +0xDA, 0xC6, 0xA2, 0x67, 0x91, 0x67, 0x4F, 0xD2, +0x00, 0x18, 0xE4, 0xC6, 0x4E, 0x95, 0x02, 0x67, +0x25, 0x5D, 0x03, 0x61, 0x82, 0x67, 0xDC, 0x4D, +0x02, 0x10, 0x82, 0x67, 0x00, 0x6D, 0x00, 0x18, +0xE2, 0xC6, 0x50, 0x92, 0x01, 0x72, 0x40, 0xF2, +0x1B, 0x60, 0x90, 0x67, 0x01, 0x6D, 0x00, 0x18, +0xE3, 0xC6, 0x4F, 0x94, 0x38, 0x10, 0x00, 0x18, +0xDA, 0xC6, 0x4F, 0xD2, 0x40, 0x30, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0x99, 0xC9, 0xF7, 0x08, 0x4A, +0x04, 0x30, 0x01, 0xE2, 0x90, 0x67, 0x00, 0x6D, +0x00, 0xF2, 0x00, 0x6E, 0x4E, 0xD3, 0x00, 0x18, +0xF7, 0xC5, 0x4E, 0x94, 0x08, 0x5C, 0x80, 0xF2, +0x06, 0x61, 0x70, 0x6A, 0x40, 0xC0, 0x44, 0x67, +0xF8, 0x4A, 0x47, 0xC0, 0x05, 0x6A, 0x42, 0xC0, +0x20, 0x6A, 0x4C, 0xC0, 0x4E, 0x92, 0x4F, 0x94, +0xFF, 0xF7, 0x1F, 0x6D, 0x4C, 0xED, 0x00, 0x6E, +0x00, 0x18, 0x7A, 0xD0, 0x00, 0x18, 0xDA, 0xC6, +0xA2, 0x67, 0x91, 0x67, 0x4E, 0xD2, 0x00, 0x18, +0xE4, 0xC6, 0x02, 0x67, 0x90, 0x67, 0x00, 0x6D, +0x00, 0x18, 0xE2, 0xC6, 0x90, 0x67, 0x00, 0x6D, +0x00, 0x18, 0xE3, 0xC6, 0x4E, 0x94, 0x0D, 0x6D, +0x00, 0x6E, 0x00, 0x18, 0x7A, 0xD0, 0xE0, 0xF4, +0x1C, 0x10, 0x00, 0x18, 0xDA, 0xC6, 0x4F, 0xD2, +0x40, 0x30, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0x99, +0xC9, 0xF7, 0x08, 0x4A, 0x04, 0x30, 0x01, 0xE2, +0x90, 0x67, 0x00, 0x6D, 0x00, 0xF2, 0x00, 0x6E, +0x4E, 0xD3, 0x00, 0x18, 0xF7, 0xC5, 0x4E, 0x94, +0x04, 0x5C, 0x40, 0xF2, 0x08, 0x61, 0x03, 0x6A, +0x40, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0xEA, 0xF3, +0x5C, 0xA2, 0x08, 0x2A, 0x30, 0xF0, 0x20, 0x6C, +0xEA, 0xF3, 0x1D, 0x4C, 0x00, 0x18, 0x17, 0xC6, +0x01, 0x72, 0x0C, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xEA, 0xF3, 0x7D, 0xA2, 0x02, 0x6A, 0x6C, 0xEA, +0x05, 0x22, 0x04, 0x6A, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x6A, 0x02, 0x10, 0x80, 0x6A, 0x4B, 0xEA, +0x42, 0xC0, 0x4F, 0x94, 0x04, 0x6D, 0x00, 0x6E, +0x00, 0x18, 0x7A, 0xD0, 0x00, 0x18, 0xDA, 0xC6, +0xA2, 0x67, 0x91, 0x67, 0x4F, 0xD2, 0x00, 0x18, +0xE4, 0xC6, 0x4E, 0x95, 0x02, 0x67, 0x04, 0x75, +0xC0, 0xF1, 0x0E, 0x60, 0x82, 0x67, 0xFC, 0x4D, +0xCD, 0x11, 0x00, 0x18, 0xDA, 0xC6, 0x50, 0xD2, +0x42, 0x99, 0x50, 0x94, 0x00, 0x6D, 0x4E, 0xD2, +0x80, 0x33, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0x33, +0xC9, 0xF7, 0x08, 0x4A, 0x69, 0xE2, 0x82, 0x67, +0x00, 0xF2, 0x00, 0x6E, 0x51, 0xD2, 0x00, 0x18, +0xF7, 0xC5, 0x76, 0xA1, 0x57, 0xA1, 0x60, 0x33, +0x49, 0xE3, 0x4F, 0xD2, 0x2D, 0x22, 0x46, 0xF7, +0x5C, 0xA0, 0x08, 0x2A, 0x30, 0xF0, 0x20, 0x6C, +0xEA, 0xF3, 0x1D, 0x4C, 0x00, 0x18, 0x17, 0xC6, +0x01, 0x72, 0x16, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xEA, 0xF3, 0x7D, 0xA2, 0x02, 0x6A, 0x6C, 0xEA, +0x0A, 0x22, 0x04, 0x6A, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x6A, 0x0C, 0x10, 0x80, 0x6A, 0x4B, 0xEA, +0x7D, 0x67, 0x53, 0xC3, 0x09, 0x10, 0x80, 0x6A, +0x4B, 0xEA, 0x9D, 0x67, 0x53, 0xC4, 0x04, 0x10, +0x80, 0x6A, 0x4B, 0xEA, 0xBD, 0x67, 0x53, 0xC5, +0x51, 0x94, 0x04, 0x05, 0x28, 0x6E, 0x00, 0x18, +0xFC, 0xC5, 0x4F, 0x92, 0x29, 0x5A, 0x02, 0x61, +0x50, 0x94, 0xCE, 0x11, 0x4E, 0x93, 0x4F, 0x94, +0x63, 0xEC, 0x06, 0x60, 0x4F, 0x92, 0xFF, 0xF7, +0x1F, 0x6D, 0x50, 0x94, 0x4C, 0xED, 0x05, 0x10, +0x4E, 0x93, 0x50, 0x94, 0xFF, 0xF7, 0x1F, 0x6D, +0x6C, 0xED, 0x00, 0x6E, 0x00, 0x18, 0x7A, 0xD0, +0x00, 0x18, 0xDA, 0xC6, 0xA2, 0x67, 0x91, 0x67, +0x50, 0xD2, 0x00, 0x18, 0xE4, 0xC6, 0x4E, 0x94, +0x4F, 0x95, 0x02, 0x67, 0x83, 0xED, 0x04, 0x60, +0x82, 0x67, 0x4E, 0x92, 0xB7, 0xE2, 0x02, 0x10, +0x82, 0x67, 0x00, 0x6D, 0x00, 0x18, 0xE2, 0xC6, +0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, 0xE3, 0xC6, +0x50, 0x94, 0x3D, 0x17, 0x00, 0x18, 0xDA, 0xC6, +0xA2, 0x67, 0x91, 0x67, 0x4E, 0xD2, 0x00, 0x18, +0xE4, 0xC6, 0x02, 0x67, 0x82, 0x67, 0xA2, 0x99, +0x2B, 0x17, 0x00, 0x18, 0xDA, 0xC6, 0x50, 0xD2, +0x40, 0x33, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0x33, +0xC9, 0xF7, 0x08, 0x4A, 0x69, 0xE2, 0x82, 0x67, +0x00, 0x6D, 0x00, 0xF2, 0x00, 0x6E, 0x4E, 0xD2, +0x00, 0x18, 0xF7, 0xC5, 0x4E, 0x93, 0x08, 0x6A, +0x9D, 0x67, 0x43, 0xC3, 0x30, 0xF1, 0xAC, 0x44, +0x80, 0xA5, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, +0x58, 0x9A, 0x84, 0xC3, 0x26, 0xF1, 0x60, 0x98, +0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF3, 0x9C, 0x9C, +0x6D, 0xE2, 0x62, 0x33, 0x66, 0x33, 0x4E, 0x95, +0x8C, 0xEB, 0x62, 0x33, 0x62, 0x33, 0x65, 0xC5, +0x26, 0xF1, 0x60, 0x98, 0x1F, 0xF7, 0x00, 0x6C, +0x00, 0x6E, 0x6D, 0xE2, 0x62, 0x33, 0x66, 0x33, +0x8C, 0xEB, 0x62, 0x33, 0x66, 0xC5, 0x26, 0xF1, +0x60, 0x98, 0x69, 0xE2, 0x42, 0x32, 0x46, 0x32, +0x47, 0xC5, 0x7D, 0x67, 0x02, 0x6A, 0x48, 0xC5, +0x30, 0xF1, 0x8C, 0x43, 0x60, 0xA4, 0x9D, 0x67, +0x4A, 0xC5, 0x69, 0xC5, 0x30, 0xF1, 0xAC, 0x44, +0x80, 0xA5, 0x4E, 0x95, 0x8B, 0xC5, 0x50, 0x94, +0x0C, 0x6D, 0x00, 0x18, 0x7A, 0xD0, 0x00, 0x18, +0xDA, 0xC6, 0xA2, 0x67, 0x91, 0x67, 0x4E, 0xD2, +0x00, 0x18, 0xE4, 0xC6, 0xA2, 0x99, 0x02, 0x67, +0x0D, 0x5D, 0xDF, 0xF6, 0x0F, 0x61, 0x82, 0x67, +0xF4, 0x4D, 0xCE, 0x16, 0x00, 0x18, 0xDA, 0xC6, +0x4E, 0xD2, 0x40, 0x30, 0x30, 0xF0, 0x20, 0x6A, +0xC9, 0xF7, 0x08, 0x4A, 0x04, 0x30, 0x01, 0xE2, +0x90, 0x67, 0x00, 0x6D, 0x00, 0xF2, 0x00, 0x6E, +0x00, 0x18, 0xF7, 0xC5, 0x56, 0xA1, 0x01, 0x6B, +0x6C, 0xEA, 0x4C, 0x2A, 0x51, 0xA1, 0x4A, 0x2A, +0x62, 0x99, 0x08, 0x5B, 0x47, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x00, 0x4B, 0x30, 0xF0, +0x20, 0x6C, 0x26, 0xF1, 0xA0, 0x9B, 0x22, 0xF3, +0x98, 0x9C, 0x30, 0xF0, 0x20, 0x6E, 0x22, 0xF3, +0xDC, 0x9E, 0xB5, 0xE4, 0xA2, 0x35, 0xA6, 0x35, +0xFF, 0x4D, 0x00, 0xF6, 0xA2, 0x35, 0xA0, 0xC0, +0x26, 0xF1, 0xA0, 0x9B, 0xB5, 0xE4, 0xA2, 0x35, +0xA6, 0x35, 0xFF, 0x4D, 0xCC, 0xED, 0xA2, 0x35, +0xA2, 0x35, 0xA1, 0xC0, 0x26, 0xF1, 0xA0, 0x9B, +0x1F, 0xF7, 0x00, 0x6E, 0xB5, 0xE4, 0xA2, 0x35, +0xA6, 0x35, 0xFF, 0x4D, 0xCC, 0xED, 0xA2, 0x35, +0xA2, 0xC0, 0x26, 0xF1, 0x60, 0x9B, 0x44, 0xC0, +0x45, 0xC0, 0x71, 0xE4, 0x82, 0x34, 0x86, 0x34, +0x02, 0x6B, 0xFF, 0x4C, 0x66, 0xC0, 0x83, 0xC0, +0x47, 0xC0, 0x4E, 0x94, 0x08, 0x6D, 0x00, 0x6E, +0x00, 0x18, 0x7A, 0xD0, 0x00, 0x18, 0xDA, 0xC6, +0xA2, 0x67, 0x91, 0x67, 0x4E, 0xD2, 0x00, 0x18, +0xE4, 0xC6, 0xA2, 0x99, 0x02, 0x67, 0x82, 0x67, +0xF8, 0x4D, 0x6E, 0x16, 0x00, 0x6C, 0xA4, 0x67, +0x23, 0x10, 0x02, 0x99, 0x13, 0x58, 0xC0, 0xF1, +0x0C, 0x60, 0x00, 0x18, 0xDA, 0xC6, 0xA2, 0x67, +0x91, 0x67, 0x4E, 0xD2, 0x00, 0x18, 0xE4, 0xC6, +0x22, 0x67, 0x82, 0x67, 0xB0, 0x67, 0x00, 0x18, +0xE2, 0xC6, 0x91, 0x67, 0x5C, 0x16, 0x00, 0x18, +0xDA, 0xC6, 0x02, 0x67, 0x40, 0x34, 0x30, 0xF0, +0x20, 0x6A, 0xC9, 0xF7, 0x08, 0x4A, 0x84, 0x34, +0x91, 0xE2, 0x00, 0x6D, 0x00, 0xF2, 0x00, 0x6E, +0x00, 0x18, 0xF7, 0xC5, 0x90, 0x67, 0x00, 0x6D, +0xC5, 0x67, 0x00, 0x18, 0x7A, 0xD0, 0xA5, 0x12, +0xA2, 0x99, 0x4F, 0xD5, 0x00, 0x18, 0xDA, 0xC6, +0x00, 0x6D, 0xC5, 0x67, 0x82, 0x67, 0x00, 0x18, +0x7A, 0xD0, 0x00, 0x18, 0xDA, 0xC6, 0xA2, 0x67, +0x91, 0x67, 0x4E, 0xD2, 0x00, 0x18, 0xE4, 0xC6, +0x02, 0x67, 0x82, 0x67, 0x4F, 0x95, 0xA6, 0x12, +0x00, 0x18, 0xDA, 0xC6, 0x4F, 0xD2, 0x42, 0x99, +0x4F, 0x93, 0x00, 0x6D, 0x4E, 0xD2, 0x60, 0x30, +0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF7, 0x08, 0x4A, +0x04, 0x30, 0x01, 0xE2, 0x90, 0x67, 0x00, 0xF2, +0x00, 0x6E, 0x00, 0x18, 0xF7, 0xC5, 0x6F, 0xA1, +0x43, 0x6A, 0x6E, 0xEA, 0x40, 0x2A, 0x12, 0x6B, +0x61, 0xC0, 0x01, 0x6B, 0x62, 0xC0, 0x63, 0xC0, +0x66, 0xC0, 0x56, 0x6B, 0x14, 0x6C, 0x6B, 0xEB, +0x85, 0xC0, 0x8D, 0xC0, 0x6E, 0xC0, 0x52, 0xC0, +0x53, 0xC0, 0x58, 0xA1, 0x40, 0x72, 0x03, 0x60, +0x51, 0xA1, 0x01, 0x72, 0x03, 0x61, 0x0A, 0x6A, +0x41, 0xC0, 0x05, 0x10, 0x50, 0xA1, 0x02, 0x72, +0x02, 0x61, 0x02, 0x6A, 0x4B, 0xC0, 0x4E, 0x94, +0x15, 0x5C, 0x03, 0x61, 0x4F, 0x94, 0x14, 0x6D, +0x05, 0x10, 0x4E, 0x92, 0x4F, 0x94, 0xFF, 0xF7, +0x1F, 0x6D, 0x4C, 0xED, 0x00, 0x6E, 0x00, 0x18, +0x7A, 0xD0, 0x00, 0x18, 0xDA, 0xC6, 0xA2, 0x67, +0x91, 0x67, 0x4F, 0xD2, 0x00, 0x18, 0xE4, 0xC6, +0x4E, 0x93, 0x02, 0x67, 0x15, 0x5B, 0x04, 0x61, +0xA3, 0x67, 0x82, 0x67, 0xEC, 0x4D, 0x02, 0x10, +0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, 0xE2, 0xC6, +0x90, 0x67, 0x00, 0x6D, 0xA4, 0x15, 0x46, 0x73, +0x18, 0x61, 0x4E, 0x94, 0x08, 0x5C, 0x3F, 0x61, +0x04, 0x6A, 0x43, 0xC0, 0x08, 0x6A, 0x47, 0xC0, +0x4F, 0x94, 0x08, 0x6D, 0x00, 0x6E, 0x00, 0x18, +0x7A, 0xD0, 0x00, 0x18, 0xDA, 0xC6, 0xA2, 0x67, +0x91, 0x67, 0x4F, 0xD2, 0x00, 0x18, 0xE4, 0xC6, +0x4E, 0x95, 0x02, 0x67, 0x82, 0x67, 0xF8, 0x4D, +0xE1, 0x17, 0x4E, 0x95, 0x20, 0x5D, 0x27, 0x61, +0x2E, 0x6A, 0x41, 0xC0, 0x01, 0x6A, 0x42, 0xC0, +0x43, 0xC0, 0x46, 0xC0, 0x02, 0x6A, 0x47, 0xC0, +0x10, 0x6A, 0x57, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF3, 0x40, 0x9A, 0x04, 0x6B, 0x65, 0xC0, +0x46, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF2, +0x50, 0x9A, 0x20, 0x6D, 0x00, 0x6E, 0x47, 0xD8, +0x4F, 0x94, 0x00, 0x18, 0x7A, 0xD0, 0x00, 0x18, +0xDA, 0xC6, 0xA2, 0x67, 0x91, 0x67, 0x4F, 0xD2, +0x00, 0x18, 0xE4, 0xC6, 0x4E, 0x95, 0x02, 0x67, +0x82, 0x67, 0xE0, 0x4D, 0xB7, 0x17, 0x4F, 0x94, +0x00, 0x6D, 0xC5, 0x67, 0x00, 0x18, 0x7A, 0xD0, +0x00, 0x18, 0xDA, 0xC6, 0xA2, 0x67, 0x91, 0x67, +0x4F, 0xD2, 0x00, 0x18, 0xE4, 0xC6, 0x4E, 0x95, +0x82, 0x67, 0x02, 0x67, 0x00, 0x18, 0xE2, 0xC6, +0x4C, 0x15, 0x00, 0x18, 0xDA, 0xC6, 0xA2, 0x67, +0x91, 0x67, 0x4E, 0xD2, 0x00, 0x18, 0xE4, 0xC6, +0x02, 0x67, 0x82, 0x67, 0x00, 0x6D, 0x00, 0x18, +0xE2, 0xC6, 0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, +0xE3, 0xC6, 0x4E, 0x94, 0x0D, 0x6D, 0x00, 0x6E, +0x00, 0x18, 0x7A, 0xD0, 0x00, 0x18, 0x2C, 0xD0, +0x74, 0x12, 0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF5, +0x40, 0x9A, 0x02, 0x99, 0x4F, 0xD2, 0x52, 0xA1, +0x71, 0xA1, 0x40, 0x32, 0x00, 0xF6, 0x60, 0x33, +0x40, 0x32, 0x49, 0xE3, 0x74, 0xA1, 0x69, 0xE2, +0x73, 0xA1, 0x60, 0x33, 0x69, 0xE2, 0x80, 0xF1, +0x00, 0x4A, 0x40, 0x32, 0x44, 0x32, 0x4E, 0xD2, +0x00, 0xF2, 0x01, 0x58, 0x58, 0x60, 0x4E, 0x92, +0x4F, 0x93, 0x09, 0xE2, 0x43, 0xEB, 0x51, 0xD2, +0x23, 0x61, 0x00, 0x18, 0xDA, 0xC6, 0x50, 0xD2, +0x40, 0x33, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0x33, +0xC9, 0xF7, 0x08, 0x4A, 0x69, 0xE2, 0x82, 0x67, +0x00, 0x6D, 0x00, 0xF2, 0x00, 0x6E, 0x4F, 0xD2, +0x00, 0x18, 0xF7, 0xC5, 0x30, 0xF0, 0x20, 0x6A, +0x4E, 0x94, 0x4F, 0x96, 0xE0, 0xF3, 0x5C, 0x9A, +0xB0, 0x67, 0x40, 0xEA, 0x50, 0x94, 0xFF, 0xF7, +0x1F, 0x6D, 0x0C, 0xED, 0x01, 0x6E, 0x00, 0x18, +0x7A, 0xD0, 0x80, 0xF0, 0x1F, 0x2A, 0x9B, 0x10, +0x4E, 0x94, 0x4F, 0x95, 0xA3, 0xEC, 0x80, 0xF0, +0x08, 0x60, 0x00, 0x18, 0xDA, 0xC6, 0x52, 0xD2, +0x40, 0x33, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0x33, +0xC9, 0xF7, 0x08, 0x4A, 0x69, 0xE2, 0x82, 0x67, +0x00, 0x6D, 0x00, 0xF2, 0x00, 0x6E, 0x50, 0xD2, +0x00, 0x18, 0xF7, 0xC5, 0x4E, 0x93, 0x4F, 0x92, +0x50, 0x96, 0x83, 0x67, 0x6B, 0xE2, 0x53, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, 0x5C, 0x9A, +0x53, 0x95, 0x40, 0xEA, 0x53, 0x92, 0x52, 0x94, +0xFF, 0xF7, 0x1F, 0x6D, 0x4C, 0xED, 0x01, 0x6E, +0x00, 0x18, 0x7A, 0xD0, 0x70, 0x22, 0x51, 0x93, +0x4F, 0x94, 0x83, 0xE3, 0x5B, 0x10, 0x4E, 0x92, +0x4F, 0x93, 0x00, 0xF2, 0x00, 0x4A, 0x43, 0xEB, +0x51, 0xD2, 0x27, 0x61, 0x00, 0x18, 0xDA, 0xC6, +0x52, 0xD2, 0x40, 0x33, 0x30, 0xF0, 0x20, 0x6A, +0x64, 0x33, 0xC9, 0xF7, 0x08, 0x4A, 0x69, 0xE2, +0x82, 0x67, 0x00, 0x6D, 0x00, 0xF2, 0x00, 0x6E, +0x50, 0xD2, 0x00, 0x18, 0xF7, 0xC5, 0x30, 0xF0, +0x20, 0x6A, 0x4E, 0x94, 0x50, 0x96, 0xE0, 0xF3, +0x5C, 0x9A, 0x00, 0xF2, 0x00, 0x6D, 0x40, 0xEA, +0x52, 0x94, 0x00, 0xF2, 0x00, 0x6D, 0x01, 0x6E, +0x00, 0x18, 0x7A, 0xD0, 0x44, 0x22, 0x1F, 0xF6, +0x00, 0x48, 0x44, 0x20, 0x51, 0x94, 0x4E, 0xD4, +0x77, 0x17, 0x4E, 0x95, 0x4F, 0x92, 0x43, 0xED, +0x2C, 0x60, 0x00, 0x18, 0xDA, 0xC6, 0x51, 0xD2, +0x40, 0x33, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0x33, +0xC9, 0xF7, 0x08, 0x4A, 0x69, 0xE2, 0x82, 0x67, +0x00, 0x6D, 0x00, 0xF2, 0x00, 0x6E, 0x50, 0xD2, +0x00, 0x18, 0xF7, 0xC5, 0x4E, 0x94, 0x4F, 0x93, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, 0x5C, 0x9A, +0x50, 0x96, 0x8F, 0xE3, 0xA3, 0x67, 0x52, 0xD3, +0x40, 0xEA, 0x52, 0x92, 0x51, 0x94, 0xFF, 0xF7, +0x1F, 0x6D, 0x4C, 0xED, 0x01, 0x6E, 0x00, 0x18, +0x7A, 0xD0, 0x15, 0x22, 0x4E, 0x93, 0x4F, 0x94, +0x01, 0xE3, 0x83, 0xE0, 0x01, 0x6D, 0x4E, 0xD5, +0x14, 0x10, 0x00, 0x18, 0xDA, 0xC6, 0xA2, 0x67, +0x91, 0x67, 0x4E, 0xD2, 0x00, 0x18, 0xE4, 0xC6, +0x22, 0x67, 0x82, 0x67, 0xB0, 0x67, 0x00, 0x18, +0xE2, 0xC6, 0x91, 0x67, 0x06, 0x11, 0x00, 0x6A, +0x4E, 0xD2, 0x03, 0x10, 0x01, 0x6B, 0x00, 0x68, +0x4E, 0xD3, 0x00, 0x18, 0xDA, 0xC6, 0xA2, 0x67, +0x91, 0x67, 0x4F, 0xD2, 0x00, 0x18, 0xE4, 0xC6, +0x4E, 0x94, 0x22, 0x67, 0x06, 0x24, 0x82, 0x67, +0xB0, 0x67, 0x00, 0x18, 0xE2, 0xC6, 0x91, 0x67, +0x9C, 0x16, 0x82, 0x67, 0x00, 0x6D, 0x00, 0x18, +0xE2, 0xC6, 0x91, 0x67, 0x3B, 0x14, 0x76, 0xA1, +0x57, 0xA1, 0x82, 0x99, 0x60, 0x33, 0x49, 0xE3, +0x4E, 0xD2, 0x4E, 0x95, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xED, 0xA0, 0x32, 0x44, 0x32, 0x8E, 0xEA, +0x4E, 0xD5, 0xC0, 0xF0, 0x02, 0x2A, 0x4C, 0xA1, +0xA0, 0xF0, 0x1F, 0x2A, 0x52, 0xA1, 0x71, 0xA1, +0x40, 0x32, 0x40, 0x32, 0x00, 0xF6, 0x60, 0x33, +0x4D, 0xE3, 0x54, 0xA1, 0x4D, 0xE3, 0x53, 0xA1, +0x40, 0x32, 0x4D, 0xE3, 0x80, 0xF1, 0x40, 0x43, +0x40, 0x35, 0xA4, 0x35, 0x91, 0xE5, 0x51, 0xD5, +0x26, 0xF1, 0xA0, 0x98, 0x83, 0xED, 0xA0, 0xF0, +0x08, 0x61, 0x07, 0x68, 0x6C, 0xE8, 0x05, 0x28, +0x4E, 0x94, 0x51, 0x95, 0x00, 0x18, 0xF5, 0xC6, +0x62, 0x10, 0x0B, 0xE2, 0x40, 0x32, 0x44, 0x32, +0x50, 0xD2, 0x00, 0x6A, 0x4F, 0xD2, 0xFF, 0x6E, +0x0E, 0x04, 0x00, 0x6D, 0x01, 0x4E, 0x00, 0x18, +0xF7, 0xC5, 0x4F, 0x93, 0x50, 0x95, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF3, 0x5C, 0x9A, 0xB1, 0xE3, +0xFF, 0x6D, 0x01, 0x4D, 0x0E, 0x06, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x4F, 0x94, 0x22, 0xF3, +0x74, 0x9B, 0x0E, 0x02, 0x6D, 0xE4, 0x4E, 0x04, +0xA0, 0xA2, 0x01, 0x4A, 0x8A, 0xEA, 0xA0, 0xC3, +0x01, 0x4B, 0xFA, 0x61, 0x4F, 0x95, 0x00, 0xF1, +0x00, 0x4D, 0x02, 0xF0, 0x00, 0x75, 0x4F, 0xD5, +0xDA, 0x61, 0x4E, 0x92, 0x50, 0x95, 0x51, 0xE0, +0x00, 0x18, 0xF5, 0xC6, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF3, 0x40, 0x9A, 0x00, 0x30, 0x04, 0x30, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x5C, 0x9A, 0x02, 0x6C, 0x40, 0xEA, 0x4F, 0xD0, +0x00, 0x68, 0xFF, 0x6E, 0x0E, 0x04, 0x00, 0x6D, +0x01, 0x4E, 0x00, 0x18, 0xF7, 0xC5, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF3, 0x74, 0x9A, 0x4E, 0x04, +0x0E, 0x02, 0x6D, 0xE0, 0xA0, 0xA3, 0x01, 0x4B, +0xA0, 0xC2, 0x01, 0x4A, 0x8A, 0xEA, 0xFA, 0x61, +0x50, 0x93, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, +0x58, 0x9A, 0xFF, 0x6D, 0x71, 0xE0, 0x01, 0x4D, +0x0E, 0x06, 0x40, 0xEA, 0x4F, 0x94, 0x00, 0xF1, +0x00, 0x48, 0x83, 0xE8, 0xDE, 0x61, 0x51, 0x93, +0x4E, 0x95, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0x00, 0x4A, 0x30, 0xF0, 0x20, 0x68, 0xCA, 0xF3, +0x1C, 0x48, 0x26, 0xF7, 0x74, 0xDA, 0x01, 0x6B, +0x90, 0x67, 0x26, 0xF7, 0xB8, 0xDA, 0x26, 0xF7, +0x70, 0xC2, 0x00, 0x6D, 0x20, 0x6E, 0x00, 0x18, +0xF7, 0xC5, 0x90, 0x67, 0xB1, 0x67, 0x20, 0x6E, +0x00, 0x18, 0xFC, 0xC5, 0xCA, 0x10, 0x00, 0x18, +0xDA, 0xC6, 0x4F, 0xD2, 0x82, 0x99, 0x40, 0x30, +0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF7, 0x08, 0x4A, +0x04, 0x30, 0x01, 0xE2, 0x4E, 0xD4, 0x00, 0x6D, +0x90, 0x67, 0x00, 0xF2, 0x00, 0x6E, 0x00, 0x18, +0xF7, 0xC5, 0x06, 0x6A, 0x41, 0xC0, 0x25, 0x6A, +0x44, 0xC0, 0x01, 0x6A, 0x4B, 0xEA, 0x45, 0xC0, +0x01, 0x6A, 0x46, 0xC0, 0x4E, 0x92, 0xFF, 0xF7, +0x1F, 0x6D, 0x4F, 0x94, 0x4C, 0xED, 0x00, 0x6E, +0x0D, 0x16, 0x00, 0x18, 0xDA, 0xC6, 0xA2, 0x67, +0x91, 0x67, 0x4E, 0xD2, 0x00, 0x18, 0xE4, 0xC6, +0x02, 0x67, 0x82, 0x67, 0xA2, 0x99, 0x0A, 0x10, +0x00, 0x18, 0xDA, 0xC6, 0xA2, 0x67, 0x91, 0x67, +0x4E, 0xD2, 0x00, 0x18, 0xE4, 0xC6, 0x02, 0x67, +0x82, 0x67, 0x00, 0x6D, 0x00, 0x18, 0xE2, 0xC6, +0x90, 0x67, 0x01, 0x6D, 0x9F, 0xF3, 0x08, 0x10, +0x26, 0xF7, 0x78, 0x98, 0x4E, 0xD3, 0x15, 0x2B, +0x00, 0x18, 0xDA, 0xC6, 0x30, 0xF0, 0x20, 0x6C, +0xCA, 0xF3, 0x1C, 0x4C, 0xA2, 0x67, 0x4F, 0xD2, +0x00, 0x18, 0xE4, 0xC6, 0x26, 0xF7, 0xB8, 0x98, +0x22, 0x67, 0x82, 0x67, 0xA0, 0x35, 0xA4, 0x35, +0x00, 0x18, 0xE2, 0xC6, 0x91, 0x67, 0x01, 0x6D, +0x62, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, +0x40, 0x9A, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x5C, 0x9A, 0x02, 0x6C, 0x40, 0xEA, +0x59, 0x93, 0xFF, 0xF7, 0x1F, 0x6A, 0x00, 0x6C, +0x4C, 0xEB, 0x4E, 0xD3, 0x26, 0xF7, 0x14, 0x98, +0x4F, 0xD4, 0x2A, 0x10, 0x4E, 0x95, 0x00, 0xF1, +0x00, 0x5D, 0x19, 0x61, 0x4F, 0x93, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF3, 0x58, 0x9A, 0xFF, 0x6D, +0x90, 0x67, 0x01, 0x4D, 0x79, 0xE1, 0x40, 0xEA, +0x4E, 0x94, 0x4F, 0x95, 0xFF, 0xF7, 0x1F, 0x6A, +0x80, 0x4C, 0x80, 0x4C, 0x00, 0xF1, 0x00, 0x4D, +0x4C, 0xEC, 0x4C, 0xED, 0x4E, 0xD4, 0x4F, 0xD5, +0x00, 0xF1, 0x00, 0x48, 0x0D, 0x10, 0x4F, 0x93, +0x30, 0xF0, 0x20, 0x6A, 0x4E, 0x95, 0xE0, 0xF3, +0x58, 0x9A, 0x90, 0x67, 0x79, 0xE1, 0x40, 0xEA, +0x4E, 0x94, 0x00, 0x6D, 0x4E, 0xD5, 0x81, 0xE0, +0x4E, 0x92, 0xD4, 0x2A, 0x30, 0xF0, 0x20, 0x68, +0xA3, 0xF4, 0x00, 0x48, 0x26, 0xF7, 0x54, 0x98, +0x59, 0x93, 0x49, 0xE3, 0x26, 0xF7, 0x54, 0xD8, +0x26, 0xF7, 0x58, 0x98, 0xFF, 0x4A, 0x26, 0xF7, +0x58, 0xD8, 0x23, 0x2A, 0x00, 0x18, 0xDA, 0xC6, +0x30, 0xF0, 0x20, 0x6C, 0xCA, 0xF3, 0x1C, 0x4C, +0xA2, 0x67, 0x4F, 0xD2, 0x00, 0x18, 0xE4, 0xC6, +0x22, 0x67, 0x82, 0x67, 0x00, 0x6D, 0x00, 0x18, +0xE2, 0xC6, 0x91, 0x67, 0x00, 0x6D, 0x00, 0x18, +0xE3, 0xC6, 0x4F, 0x94, 0x0D, 0x6D, 0x00, 0x6E, +0x00, 0x18, 0x7A, 0xD0, 0x9D, 0x67, 0x30, 0xF1, +0xA8, 0x44, 0x80, 0xA5, 0x4E, 0x95, 0x26, 0xF7, +0x90, 0xC0, 0x26, 0xF7, 0xB4, 0xD8, 0x26, 0xF7, +0xB8, 0xD8, 0x57, 0x97, 0x56, 0x91, 0x55, 0x90, +0x2C, 0x63, 0x00, 0xEF, 0x06, 0x2C, 0x64, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF4, 0x7C, 0xDA, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF4, +0x9C, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF4, +0x5C, 0x9A, 0x32, 0x72, 0x2A, 0x60, 0x33, 0x5A, +0x0C, 0x60, 0x14, 0x72, 0x2E, 0x60, 0x15, 0x5A, +0x03, 0x60, 0x0A, 0x72, 0x12, 0x60, 0x20, 0xE8, +0x19, 0x72, 0x17, 0x60, 0x28, 0x72, 0x25, 0x60, +0x20, 0xE8, 0x64, 0x72, 0x2A, 0x60, 0x65, 0x5A, +0x03, 0x60, 0x50, 0x72, 0x1E, 0x60, 0x20, 0xE8, +0x78, 0x72, 0x2B, 0x60, 0xC8, 0x72, 0x31, 0x60, +0x20, 0xE8, 0x02, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF4, 0x60, 0xDA, 0xE0, 0xF7, 0x1E, 0x4B, +0x31, 0x10, 0x09, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF4, 0x60, 0xDA, 0xE4, 0xF3, 0x17, 0x4B, +0x29, 0x10, 0x11, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF4, 0x60, 0xDA, 0xE8, 0xF3, 0x0F, 0x4B, +0x21, 0x10, 0x0D, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF4, 0x60, 0xDA, 0x06, 0xF4, 0x08, 0x4B, +0x19, 0x10, 0x22, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF4, 0x60, 0xDA, 0x11, 0xF0, 0x00, 0x6B, +0x11, 0x10, 0x28, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF4, 0x60, 0xDA, 0x14, 0xF0, 0x00, 0x6B, +0x09, 0x10, 0x43, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF4, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF3, 0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF4, 0x64, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF4, 0x5C, 0x9A, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF4, 0x44, 0x9A, 0xFF, 0x63, 0x58, 0xEC, +0x12, 0xEA, 0x00, 0xD2, 0x00, 0x92, 0xFF, 0x4A, +0x00, 0xD2, 0x00, 0x92, 0xFB, 0x2A, 0x01, 0x63, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF4, 0x40, 0x9A, 0xFF, 0x63, 0x58, 0xEC, +0x12, 0xEA, 0x00, 0xD2, 0x00, 0x92, 0xFF, 0x4A, +0x00, 0xD2, 0x00, 0x92, 0xFB, 0x2A, 0x01, 0x63, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x10, 0xC6, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xED, 0x00, 0x18, 0xF7, 0xC5, +0x05, 0x97, 0x00, 0x6A, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, +0x04, 0x67, 0x4C, 0xEE, 0x00, 0x18, 0xFC, 0xC5, +0x50, 0x67, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x00, 0x68, 0x20, 0x10, 0xE0, 0xF3, +0x08, 0x70, 0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF2, 0x64, 0x9A, 0x80, 0x6C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0x23, 0xF3, 0x70, 0x9A, +0x8D, 0xEB, 0x23, 0xF3, 0x70, 0xDA, 0x00, 0x6A, +0x13, 0x10, 0xFF, 0xF7, 0x1F, 0x6A, 0x01, 0x48, +0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF5, 0x48, 0x9A, 0x60, 0xA2, +0x01, 0x6A, 0x6C, 0xEA, 0xD8, 0x2A, 0x01, 0x6A, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6C, 0x62, 0xF5, +0x6C, 0x9B, 0x62, 0xF5, 0x90, 0x9C, 0x6D, 0xE5, +0x91, 0xE5, 0x00, 0x6E, 0xC0, 0xDB, 0x04, 0x4B, +0x8A, 0xEB, 0xFB, 0x61, 0xE7, 0xF7, 0x1F, 0x6B, +0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF2, +0x54, 0x9A, 0x10, 0x6C, 0x4D, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF5, 0x4C, 0x9A, 0x49, 0xE5, +0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, +0x54, 0x9A, 0xFF, 0x6B, 0x55, 0xE5, 0x40, 0xA5, +0x6C, 0xEA, 0x8D, 0xEA, 0x6C, 0xEA, 0x40, 0xC5, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF4, 0x69, 0xA2, 0x08, 0xD4, 0x30, 0xF0, +0x20, 0x69, 0x61, 0xC5, 0x01, 0x4B, 0x43, 0xF4, +0x69, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF5, +0x8C, 0x9B, 0x08, 0x93, 0x80, 0xF2, 0x4C, 0x99, +0x02, 0x6E, 0x91, 0xE3, 0x05, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF5, 0x98, 0x9B, +0x08, 0x93, 0xCE, 0xA0, 0x80, 0xF2, 0x4C, 0x99, +0xA2, 0x40, 0x91, 0xE3, 0x40, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x24, 0x67, 0x00, 0x18, 0xAF, 0xCA, 0x00, 0x6B, +0x46, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, +0x40, 0x9A, 0xFF, 0xF7, 0x1F, 0x6E, 0xFF, 0x6F, +0x00, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF2, +0x50, 0x9A, 0x10, 0x6C, 0x8B, 0xEC, 0x4C, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0xA1, 0x40, 0x62, 0xF5, +0x5C, 0x9A, 0x65, 0x67, 0xCC, 0xEB, 0x60, 0xCA, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, 0x40, 0x9A, +0x60, 0xA2, 0xFA, 0x65, 0xA2, 0x32, 0xEC, 0xEB, +0x8C, 0xEB, 0x42, 0x32, 0x6D, 0xEA, 0xEC, 0xEA, +0x7F, 0x67, 0x40, 0xC3, 0x87, 0xA9, 0x02, 0x4C, +0xCC, 0xEC, 0x00, 0x18, 0xC8, 0xCA, 0x87, 0x40, +0x12, 0x4C, 0xB1, 0x67, 0x00, 0x18, 0xDF, 0xCA, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, 0x48, 0x9A, +0x01, 0x6B, 0x80, 0xF2, 0x16, 0x6C, 0x60, 0xC2, +0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x48, 0x9A, 0x01, 0x6D, 0x00, 0x6E, +0x04, 0xF7, 0x10, 0x6F, 0x40, 0xEA, 0x4B, 0xEB, +0x4D, 0xEB, 0xC0, 0xF7, 0x62, 0x33, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x43, 0x67, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xA3, 0xF4, +0x00, 0x48, 0x20, 0xF6, 0x92, 0xA0, 0x20, 0xF6, +0x53, 0xA0, 0x8E, 0xEA, 0x37, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF5, 0x44, 0x9A, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF3, 0x60, 0x9B, 0x40, 0x9A, +0x6C, 0xEA, 0x2C, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x90, 0x34, 0xC3, 0xF5, 0x12, 0x4A, 0x91, 0xE2, +0x00, 0x18, 0xF4, 0xCA, 0x1D, 0x22, 0x20, 0xF6, +0x52, 0xA0, 0x01, 0x4A, 0x20, 0xF6, 0x52, 0xC0, +0x20, 0xF6, 0x72, 0xA0, 0x20, 0xF6, 0x53, 0xA0, +0x6E, 0xEA, 0x06, 0x22, 0xA0, 0xF0, 0x44, 0x98, +0x04, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0x20, 0xF6, 0x72, 0xA2, 0x50, 0x6C, 0x8E, 0xEB, +0x09, 0x2B, 0x20, 0xF6, 0x72, 0xC2, 0x06, 0x10, +0xA0, 0xF0, 0x44, 0x98, 0x04, 0x6B, 0x6D, 0xEA, +0xA0, 0xF0, 0x44, 0xD8, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xA3, 0xF4, +0x00, 0x48, 0xA0, 0xF0, 0x44, 0x98, 0x04, 0x6B, +0xA4, 0x67, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, +0x20, 0xF6, 0x52, 0xA8, 0x09, 0xF7, 0x00, 0x72, +0x07, 0x60, 0x20, 0xF6, 0x52, 0xA0, 0x20, 0xF6, +0x93, 0xA0, 0xFF, 0x4A, 0x8E, 0xEA, 0x13, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF2, 0x64, 0x9A, +0x00, 0xF2, 0x00, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0x00, 0x4A, 0x23, 0xF3, 0x70, 0x9A, 0x8D, 0xEB, +0x23, 0xF3, 0x70, 0xDA, 0x18, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, +0x4C, 0x9A, 0xC3, 0xF5, 0x12, 0x4B, 0x90, 0x34, +0x91, 0xE3, 0x10, 0x6E, 0x40, 0xEA, 0x20, 0xF6, +0x53, 0xA0, 0x50, 0x6B, 0x01, 0x4A, 0x20, 0xF6, +0x53, 0xC0, 0x20, 0xF6, 0x53, 0xA0, 0x6E, 0xEA, +0x02, 0x2A, 0x20, 0xF6, 0x53, 0xC0, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF4, 0x48, 0xA3, 0xFF, 0x6F, +0xE0, 0xF0, 0xC7, 0xA5, 0x41, 0xC5, 0x43, 0xA5, +0x43, 0xF4, 0x68, 0xA3, 0x03, 0x4A, 0xEC, 0xEA, +0x09, 0x10, 0xED, 0x42, 0xFF, 0x68, 0x0C, 0xEF, +0xFD, 0xE5, 0x64, 0xC7, 0xE6, 0xA7, 0x03, 0x4F, +0xE9, 0xE2, 0x0C, 0xEA, 0xEF, 0x46, 0xE2, 0xEA, +0xF4, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF4, +0x68, 0xA2, 0x01, 0x4B, 0x43, 0xF4, 0x68, 0xC2, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF5, 0x6C, 0x9B, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0x71, 0xE4, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x24, 0x67, 0x00, 0x18, +0xAF, 0xCA, 0x00, 0x6B, 0x3C, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF3, 0x40, 0x9A, 0x0F, 0x6C, +0xFF, 0xF7, 0x1F, 0x6B, 0x00, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF2, 0x50, 0x9A, 0x4C, 0xE8, +0xA1, 0x40, 0xA2, 0x32, 0x42, 0x32, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x62, 0xF5, 0x9C, 0x9C, +0xAC, 0xEB, 0x60, 0xCC, 0x30, 0xF0, 0x20, 0x6B, +0x82, 0xF5, 0x60, 0x9B, 0x40, 0xC3, 0xE0, 0xF0, +0x87, 0xA1, 0x00, 0x18, 0xC8, 0xCA, 0x87, 0x40, +0x12, 0x4C, 0xB1, 0x67, 0x00, 0x18, 0x68, 0xCB, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF5, 0x48, 0x9A, +0x01, 0x6B, 0x80, 0xF2, 0x16, 0x6C, 0x60, 0xC2, +0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x48, 0x9A, 0x01, 0x6D, 0x00, 0x6E, +0x04, 0xF7, 0x10, 0x6F, 0x40, 0xEA, 0x4B, 0xEB, +0x4D, 0xEB, 0xC0, 0xF7, 0x62, 0x33, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x43, 0x67, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xA3, 0xF4, +0x00, 0x48, 0xA2, 0xF4, 0x77, 0xA0, 0xA2, 0xF4, +0x58, 0xA0, 0x6E, 0xEA, 0x3E, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF5, 0x44, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x42, 0xF3, 0x80, 0x9C, 0x40, 0x9A, +0x8C, 0xEA, 0x33, 0x2A, 0xE8, 0x6A, 0x58, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF2, 0x14, 0x4A, +0x12, 0xEB, 0x71, 0xE2, 0x00, 0x18, 0x81, 0xCB, +0x07, 0x2A, 0xA0, 0xF0, 0x44, 0x98, 0x04, 0x6B, +0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, 0x21, 0x10, +0xA2, 0xF4, 0x57, 0xA0, 0x10, 0x6B, 0x01, 0x4A, +0xA2, 0xF4, 0x57, 0xC0, 0xA2, 0xF4, 0x57, 0xA0, +0x6E, 0xEA, 0x02, 0x2A, 0xA2, 0xF4, 0x57, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0xA2, 0xF4, 0x97, 0xA2, 0xA2, 0xF4, 0x78, 0xA2, +0x8E, 0xEB, 0x07, 0x23, 0xA0, 0xF0, 0x64, 0x9A, +0x04, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, +0x04, 0x10, 0xA2, 0xF4, 0x96, 0xC2, 0xA2, 0xF4, +0x74, 0xCA, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0xA2, 0xF4, 0x77, 0xA2, +0xA4, 0x67, 0x04, 0x2B, 0xA2, 0xF4, 0x58, 0xA2, +0x0F, 0x72, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x68, +0xA3, 0xF4, 0x00, 0x48, 0xA2, 0xF4, 0x57, 0xA0, +0xA2, 0xF4, 0x78, 0xA0, 0xFF, 0x4A, 0x6E, 0xEA, +0x15, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF2, +0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF4, +0x80, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0x23, 0xF3, 0x70, 0x9A, 0x8D, 0xEB, 0x23, 0xF3, +0x70, 0xDA, 0xAC, 0x10, 0x23, 0xA5, 0xFF, 0xF7, +0x1F, 0x6A, 0x04, 0x49, 0x4C, 0xE9, 0xA2, 0xF4, +0x54, 0xA8, 0x22, 0x2A, 0xE8, 0x6A, 0x58, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6C, +0x80, 0xF2, 0x4C, 0x9A, 0xC4, 0xF2, 0x14, 0x4C, +0xFF, 0x6E, 0x2C, 0xEE, 0x12, 0xEB, 0x71, 0xE4, +0x40, 0xEA, 0xA2, 0xF4, 0x58, 0xA0, 0xA2, 0xF4, +0x77, 0xA0, 0xA2, 0xF4, 0x34, 0xC8, 0x4E, 0xEB, +0x79, 0x2B, 0x01, 0x4A, 0xA2, 0xF4, 0x58, 0xC0, +0xA2, 0xF4, 0x58, 0xA0, 0x10, 0x6B, 0x6E, 0xEA, +0x71, 0x2A, 0xA2, 0xF4, 0x58, 0xC0, 0x6E, 0x10, +0x62, 0xA5, 0x39, 0x2B, 0x4D, 0xE1, 0xE3, 0x53, +0x36, 0x60, 0xA2, 0xF4, 0x76, 0xA0, 0xE8, 0x6C, +0x98, 0xEB, 0x12, 0xEB, 0x0D, 0xE3, 0x20, 0xF6, +0x96, 0xA3, 0x2D, 0x2C, 0x20, 0xF6, 0x97, 0xA3, +0xFF, 0x6E, 0xFC, 0x4A, 0xFF, 0x4C, 0x20, 0xF6, +0x97, 0xC3, 0xA2, 0xF4, 0x74, 0xA8, 0xA2, 0xF4, +0x96, 0xA0, 0xCC, 0xEA, 0xFF, 0x4B, 0xA2, 0xF4, +0x74, 0xC8, 0xE8, 0x6B, 0x78, 0xEC, 0x2C, 0xEE, +0x12, 0xEC, 0x91, 0xE0, 0x51, 0xE4, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0x20, 0xF6, +0x17, 0x4C, 0x40, 0xEA, 0xA2, 0xF4, 0x56, 0xA0, +0xE8, 0x6B, 0x78, 0xEA, 0x12, 0xEA, 0x09, 0xE2, +0x20, 0xF6, 0x77, 0xA2, 0x6D, 0xE1, 0x20, 0xF6, +0x77, 0xC2, 0xA2, 0xF4, 0x54, 0xA8, 0x45, 0xE1, +0xA2, 0xF4, 0x34, 0xC8, 0x33, 0x10, 0x30, 0xF0, +0x20, 0x68, 0xA3, 0xF4, 0x00, 0x48, 0xA2, 0xF4, +0x98, 0xA0, 0xE8, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x58, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0xC4, 0xF2, 0x14, 0x4B, 0xFF, 0x6E, +0x2C, 0xEE, 0x12, 0xEC, 0x91, 0xE3, 0x40, 0xEA, +0xA2, 0xF4, 0x58, 0xA0, 0x10, 0x6B, 0xA2, 0xF4, +0x34, 0xC8, 0x01, 0x4A, 0xA2, 0xF4, 0x58, 0xC0, +0xA2, 0xF4, 0x58, 0xA0, 0x6E, 0xEA, 0x02, 0x2A, +0xA2, 0xF4, 0x58, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0xA2, 0xF4, 0x76, 0xA2, +0x10, 0x6C, 0x01, 0x4B, 0xA2, 0xF4, 0x76, 0xC2, +0xA2, 0xF4, 0x76, 0xA2, 0x8E, 0xEB, 0x02, 0x2B, +0xA2, 0xF4, 0x76, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0xA2, 0xF4, 0x96, 0xA2, +0xE8, 0x6B, 0x78, 0xEC, 0xA2, 0xF4, 0x94, 0xAA, +0x12, 0xEB, 0x4D, 0xE3, 0x00, 0xF7, 0x9B, 0xC3, +0xA0, 0xF0, 0x64, 0x9A, 0x04, 0x6C, 0x8D, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0xF7, 0x1F, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x8C, 0xEA, 0xE2, 0xF5, 0x78, 0x9B, 0x30, 0xF0, +0x20, 0x6C, 0xE2, 0xF5, 0x9C, 0x9C, 0xCC, 0xEB, +0x40, 0xF6, 0xA0, 0x35, 0x8D, 0xEB, 0x1F, 0xF7, +0x00, 0x6C, 0x4C, 0xEC, 0x02, 0xF0, 0x00, 0x74, +0xAD, 0xEB, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, +0x20, 0x6C, 0x42, 0xF2, 0x98, 0x9C, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF2, 0x9C, 0x9C, +0x89, 0xE2, 0x60, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0x1F, 0xF7, +0x00, 0x6C, 0x4C, 0xEC, 0xFF, 0x6B, 0x02, 0xF0, +0x00, 0x74, 0xAC, 0xEB, 0x01, 0x60, 0x05, 0x2C, +0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF2, 0x98, 0x9C, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF2, +0x9C, 0x9C, 0x91, 0xE2, 0x00, 0x6D, 0xA0, 0xDC, +0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF5, 0x98, 0x9C, +0xD4, 0x36, 0x40, 0xF6, 0x60, 0x33, 0x8C, 0xEE, +0x6D, 0xEE, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF5, +0x7C, 0x9B, 0x6D, 0xEE, 0x1F, 0xF7, 0x00, 0x6B, +0x4C, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, +0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF2, +0x78, 0x9B, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF2, 0x7C, 0x9B, 0x69, 0xE2, 0xC0, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0x0F, 0xF5, 0x00, 0x6B, +0x78, 0xEE, 0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF5, 0x98, 0x9C, +0x40, 0xF6, 0xA0, 0x35, 0x12, 0xEB, 0x8C, 0xEB, +0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF5, 0x9C, 0x9C, +0xAD, 0xEB, 0x8D, 0xEB, 0x1F, 0xF7, 0x00, 0x6C, +0x4C, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, +0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF2, +0x98, 0x9C, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, +0x42, 0xF2, 0x9C, 0x9C, 0x89, 0xE2, 0x60, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF2, 0x48, 0x9A, 0x60, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF2, 0x4C, 0x9A, 0x40, 0x9A, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x8C, 0xEA, +0x01, 0x72, 0x06, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF2, 0x48, 0x9A, 0x40, 0x9A, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF2, 0x4C, 0x9A, +0x40, 0x9A, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0xA2, 0xF1, 0xD4, 0x9B, 0xFD, 0x63, 0xA2, 0xF1, +0x14, 0x4B, 0x02, 0xD6, 0xC1, 0x9B, 0x64, 0xAB, +0xFF, 0x6A, 0x03, 0xD6, 0xDD, 0x67, 0x68, 0xCE, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF1, 0xCC, 0x9B, +0xA2, 0xF1, 0x0C, 0x4B, 0x64, 0xA3, 0x4C, 0xEC, +0x00, 0xD6, 0xDD, 0x67, 0x64, 0xC6, 0x8D, 0xE6, +0xE0, 0xA3, 0x84, 0x33, 0x6D, 0xE6, 0xC4, 0xAB, +0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xED, 0xCC, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x0C, 0x2B, +0x5D, 0x67, 0x84, 0x34, 0x91, 0xE2, 0x30, 0xF0, +0x20, 0x6A, 0x64, 0xAC, 0x42, 0xF2, 0x58, 0x9A, +0x49, 0xE3, 0x60, 0xA2, 0xFF, 0x6A, 0x06, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF2, 0x7C, 0x9B, +0x79, 0xE6, 0x60, 0xA6, 0xE4, 0xED, 0x6C, 0xEA, +0xA7, 0x67, 0x4C, 0xED, 0x00, 0x6B, 0x01, 0x25, +0x01, 0x6B, 0xFF, 0x6A, 0x6C, 0xEA, 0x03, 0x63, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF6, 0x94, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x00, 0x4B, 0xA0, 0x9C, 0x52, 0x9B, +0xAC, 0xEA, 0x53, 0xDB, 0x40, 0xDC, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0xD1, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xA2, 0xF5, 0x38, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF6, 0x00, 0x4A, 0x40, 0x9A, +0x60, 0x99, 0x30, 0xF0, 0x20, 0x6C, 0xA0, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, 0x48, 0x9A, +0x22, 0xF6, 0x10, 0x4C, 0x80, 0x9C, 0x00, 0x9A, +0x1A, 0x65, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0x9C, +0x22, 0xF6, 0x18, 0x4A, 0x40, 0x9A, 0x01, 0xD4, +0x30, 0xF0, 0x20, 0x6C, 0x40, 0x9A, 0xA3, 0xF4, +0xE0, 0x9C, 0x00, 0xD2, 0x44, 0x67, 0xA3, 0xF4, +0x00, 0x4A, 0xC1, 0x9A, 0x83, 0x9A, 0x6C, 0xEF, +0xAC, 0xEE, 0x01, 0x93, 0xA2, 0x9A, 0xE8, 0xDA, +0x6C, 0xEC, 0x0C, 0xED, 0x64, 0x9A, 0x00, 0x90, +0x8B, 0xDA, 0xC9, 0xDA, 0x0C, 0xEB, 0xAA, 0xDA, +0x6C, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, +0x00, 0x4A, 0x40, 0x9A, 0xE0, 0xD9, 0x18, 0x67, +0xC0, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, +0x10, 0x4A, 0x40, 0x9A, 0xA0, 0xD8, 0x80, 0xDA, +0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF6, 0x18, 0x4C, +0x80, 0x9C, 0x60, 0xDC, 0x05, 0x91, 0x04, 0x90, +0x03, 0x63, 0x20, 0xE8, 0xFF, 0x63, 0x01, 0xD1, +0x00, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF6, +0x00, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF6, +0xE8, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF6, +0xD0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0x00, 0x4A, 0x80, 0x98, 0xB4, 0x9A, 0x60, 0x9F, +0x20, 0x9E, 0x8C, 0xED, 0x95, 0x9A, 0xB7, 0xDA, +0x6C, 0xEC, 0x76, 0x9A, 0x98, 0xDA, 0x2C, 0xEB, +0x79, 0xDA, 0xA0, 0xD8, 0x80, 0xDF, 0x60, 0xDE, +0x01, 0x91, 0x00, 0x90, 0x01, 0x63, 0x20, 0xE8, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, +0x06, 0x74, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF6, 0x9C, 0x9B, 0x01, 0x6D, 0x60, 0xA4, +0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF2, 0x64, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF3, 0x8C, 0x9C, +0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, 0x23, 0xF3, +0x70, 0x9A, 0x8D, 0xEB, 0x23, 0xF3, 0x70, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0x4C, 0xEC, 0x07, 0x6D, 0xB8, 0xEC, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x00, 0x4B, +0x01, 0x6E, 0x12, 0xEC, 0x71, 0xE4, 0xA0, 0xF0, +0xB6, 0xA4, 0xCC, 0xED, 0x1D, 0x25, 0xA0, 0xF0, +0xB7, 0xA4, 0xC2, 0xF5, 0x60, 0x9B, 0xA0, 0xF0, +0x96, 0xA4, 0x75, 0xE5, 0x30, 0xF0, 0x20, 0x6B, +0x82, 0xF3, 0x68, 0x9B, 0xBC, 0x35, 0x21, 0x4D, +0x75, 0xE5, 0xE0, 0xA5, 0x9E, 0x33, 0x9A, 0x34, +0xCC, 0xEC, 0x78, 0x33, 0x9C, 0x34, 0x4C, 0xEF, +0x8D, 0xEB, 0xED, 0xEB, 0x00, 0xF6, 0x60, 0x33, +0x00, 0xF6, 0x63, 0x33, 0x4C, 0xEB, 0x60, 0xC5, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0x62, 0x12, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF7, 0x60, 0xA2, +0x02, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, +0x00, 0x18, 0x83, 0xCF, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x00, 0x4B, +0x43, 0xF3, 0xA1, 0xA3, 0xFF, 0x6A, 0x4C, 0xEC, +0x8E, 0xED, 0x10, 0x2D, 0x43, 0xF3, 0xA0, 0xA3, +0x1F, 0x6E, 0xAA, 0x33, 0xCC, 0xEB, 0x67, 0xEC, +0x01, 0x6C, 0x8C, 0xEB, 0x07, 0x23, 0x02, 0x6B, +0xAC, 0xEB, 0x4C, 0xEB, 0x03, 0x23, 0x00, 0x6C, +0x00, 0x18, 0x83, 0xCF, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0x00, 0x18, 0x47, 0xCD, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x54, 0xC1, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xEB, 0x17, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x60, 0xC5, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x5D, 0xC5, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0x8C, 0x13, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xD6, 0x12, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x12, 0xD0, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0x63, 0x01, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x82, 0xF3, 0x68, 0x9B, 0xFF, 0x6A, 0x4C, 0xEE, +0x6D, 0xE4, 0x08, 0x68, 0x80, 0xA3, 0xDB, 0xE0, +0x02, 0x67, 0x4C, 0xED, 0x07, 0xEE, 0xD0, 0x67, +0x4C, 0xEF, 0x04, 0xED, 0x4C, 0xEC, 0xCC, 0xEF, +0x0F, 0xE8, 0x8C, 0xE8, 0xE4, 0xED, 0xED, 0xE8, +0x4C, 0xE8, 0x00, 0xC3, 0x01, 0x90, 0x01, 0x63, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF3, 0x48, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, +0x8C, 0xEB, 0x4D, 0xE3, 0x40, 0xA3, 0xFF, 0x6C, +0x8C, 0xEE, 0x08, 0x6B, 0xDB, 0xE3, 0x8C, 0xED, +0x8C, 0xEA, 0x64, 0x67, 0x47, 0xED, 0x67, 0xEE, +0x6C, 0xEA, 0x8C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0xF2, 0x60, 0x9B, 0x10, 0xF0, +0x23, 0x6A, 0x46, 0xF6, 0x09, 0x4A, 0x40, 0xDB, +0x00, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, +0x50, 0x9A, 0x40, 0x9A, 0x21, 0x22, 0xE0, 0xF3, +0x09, 0x70, 0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF2, 0x64, 0x9A, 0x20, 0x6C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0x23, 0xF3, 0x70, 0x9A, +0x8D, 0xEB, 0x23, 0xF3, 0x70, 0xDA, 0x00, 0x6A, +0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x32, 0x6C, 0x01, 0x48, 0x40, 0xEA, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0xD9, 0x17, +0x01, 0x6A, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, +0x94, 0x34, 0x4C, 0xED, 0x4C, 0xEC, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF6, 0x54, 0x9A, 0x80, 0xC2, +0xA0, 0xC2, 0x20, 0xE8, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF6, 0x74, 0x9B, 0x4C, 0xEC, +0x94, 0x34, 0x4C, 0xEC, 0x80, 0xC3, 0x60, 0xA3, +0x6C, 0xEA, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x50, 0x9A, +0x05, 0x6C, 0x40, 0xEA, 0x01, 0x6B, 0x4C, 0xEB, +0xF7, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x48, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xA3, 0xF4, 0x00, 0x48, 0x06, 0xF1, 0x50, 0xA0, +0x01, 0x69, 0x71, 0x67, 0x4C, 0xEB, 0x04, 0xD3, +0xA0, 0xF0, 0x11, 0x2B, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF3, 0x48, 0x9A, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF3, 0x40, 0x9A, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x5C, 0x9A, +0x02, 0x6C, 0x40, 0xEA, 0x06, 0xF1, 0x51, 0xA0, +0xFF, 0x6B, 0xFF, 0x4A, 0x6C, 0xEA, 0xFE, 0x5A, +0x80, 0xF0, 0x0F, 0x60, 0x06, 0xF1, 0x51, 0xA0, +0x20, 0x6B, 0x4E, 0xEB, 0x0D, 0x2B, 0x04, 0x6A, +0x06, 0xF1, 0x54, 0xC0, 0x06, 0xF1, 0x53, 0xA0, +0x06, 0xF1, 0x35, 0xC0, 0x06, 0xF1, 0x3C, 0xC0, +0x24, 0xEA, 0x06, 0xF1, 0x38, 0xD8, 0x10, 0x10, +0xC2, 0x6B, 0x4E, 0xEB, 0x12, 0x2B, 0x08, 0x6A, +0x06, 0xF1, 0x5C, 0xC0, 0x06, 0xF1, 0x53, 0xA0, +0x06, 0xF1, 0x34, 0xC0, 0x06, 0xF1, 0x35, 0xC0, +0x24, 0xEA, 0x06, 0xF1, 0x38, 0xD8, 0x2C, 0x31, +0x26, 0xF1, 0x20, 0xD8, 0x26, 0xF1, 0x64, 0xC0, +0x66, 0x10, 0xEF, 0x72, 0x33, 0x61, 0x03, 0x6A, +0x06, 0xF1, 0x54, 0xC0, 0x06, 0xF1, 0x52, 0xA0, +0x0F, 0x6B, 0x6C, 0xEA, 0x01, 0x72, 0x0C, 0x61, +0x02, 0x6A, 0x06, 0xF1, 0x55, 0xC0, 0x06, 0xF1, +0x53, 0xA0, 0x06, 0xF1, 0x3C, 0xC0, 0x24, 0xEA, +0x06, 0xF1, 0x38, 0xD8, 0x24, 0x31, 0x09, 0x10, +0x06, 0xF1, 0x53, 0xA0, 0x06, 0xF1, 0x35, 0xC0, +0x06, 0xF1, 0x3C, 0xC0, 0x24, 0xEA, 0x06, 0xF1, +0x38, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF2, +0x78, 0x9B, 0x06, 0xF1, 0x98, 0x9A, 0x26, 0xF1, +0x20, 0xD8, 0x83, 0xEB, 0x01, 0x6B, 0x01, 0x61, +0x00, 0x6B, 0x26, 0xF1, 0x64, 0xC2, 0x26, 0xF1, +0x65, 0xC2, 0x33, 0x10, 0x1C, 0x6B, 0x6E, 0xEA, +0x13, 0x2A, 0x05, 0x6B, 0x06, 0xF1, 0x74, 0xC0, +0x06, 0xF1, 0x73, 0xA0, 0x06, 0xF1, 0x35, 0xC0, +0x06, 0xF1, 0x3C, 0xC0, 0x24, 0xEB, 0x06, 0xF1, +0x38, 0xD8, 0x26, 0xF1, 0x20, 0xD8, 0x26, 0xF1, +0x44, 0xC0, 0x26, 0xF1, 0x45, 0xC0, 0x1D, 0x10, +0x5D, 0x67, 0x67, 0x42, 0x09, 0x4B, 0x40, 0xA3, +0x06, 0xF1, 0x35, 0xC0, 0x06, 0xF1, 0x3C, 0xC0, +0x06, 0xF1, 0x54, 0xC0, 0x06, 0xF1, 0x53, 0xA0, +0x24, 0xEA, 0x5D, 0x67, 0x67, 0x42, 0x09, 0x4B, +0x40, 0xA3, 0x7D, 0x67, 0x06, 0xF1, 0x38, 0xD8, +0x26, 0xF1, 0x44, 0xC0, 0x47, 0x43, 0x09, 0x4A, +0x60, 0xA2, 0x26, 0xF1, 0x20, 0xD8, 0x26, 0xF1, +0x65, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0x00, 0x4A, 0x06, 0xF1, 0x90, 0xA2, 0x01, 0x6B, +0x8D, 0xEB, 0x06, 0xF1, 0x70, 0xC2, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x52, 0xA4, 0x73, 0xA4, 0x30, 0xF0, 0x20, 0x69, +0x40, 0x32, 0x40, 0x32, 0x00, 0xF6, 0x60, 0x33, +0x4D, 0xE3, 0x50, 0xA4, 0xA3, 0xF4, 0x00, 0x49, +0x04, 0x67, 0x4D, 0xE3, 0x51, 0xA4, 0x40, 0x32, +0x49, 0xE3, 0x04, 0xD2, 0x6A, 0xA4, 0x49, 0xA4, +0x60, 0x33, 0x49, 0xE3, 0x05, 0xD2, 0x4E, 0xA4, +0x6F, 0xA4, 0x40, 0x32, 0x40, 0x32, 0x00, 0xF6, +0x60, 0x33, 0x4D, 0xE3, 0x4C, 0xA4, 0x4D, 0xE3, +0x4D, 0xA4, 0x40, 0x32, 0x49, 0xE3, 0x06, 0xD2, +0x06, 0xF1, 0x50, 0xA1, 0x01, 0x6B, 0x6C, 0xEA, +0x18, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, +0x48, 0x9A, 0x40, 0xEA, 0x00, 0x18, 0xC5, 0xCD, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, 0x40, 0x9A, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x5C, 0x9A, 0x02, 0x6C, 0x40, 0xEA, 0x06, 0xF1, +0x50, 0xA1, 0x01, 0x6B, 0x6D, 0xEA, 0x06, 0xF1, +0x50, 0xC1, 0x48, 0xA0, 0x20, 0x72, 0x1C, 0x60, +0x21, 0x5A, 0x05, 0x60, 0x02, 0x72, 0x1F, 0x60, +0x03, 0x72, 0x22, 0x60, 0x29, 0x10, 0x52, 0x72, +0x0E, 0x60, 0x60, 0x72, 0x25, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF3, 0x4C, 0x9A, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, +0xA1, 0xF7, 0x00, 0x6C, 0x0A, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF3, 0x50, 0x9A, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, 0x54, 0x9A, +0x04, 0x94, 0x40, 0xEA, 0x0D, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x40, 0x9A, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x44, 0x9A, +0x04, 0x94, 0x06, 0x95, 0x05, 0x96, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x78, 0x9A, +0x02, 0x6C, 0x8B, 0xEC, 0x40, 0x9B, 0x8C, 0xEA, +0x40, 0xDB, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x01, 0x6A, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF2, 0x68, 0x9B, +0xFF, 0x6A, 0x4C, 0xED, 0xA0, 0xC3, 0xCC, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF7, 0x48, 0xC3, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xE6, 0xF7, 0x41, 0xA2, 0xFF, 0x63, 0x05, 0x5A, +0x36, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x48, 0x32, +0xE2, 0xF1, 0x18, 0x4B, 0x4D, 0xE3, 0x40, 0x9B, +0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF2, +0x50, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, 0x40, 0x9A, +0x1A, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF2, +0x50, 0x9A, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF6, 0x4C, 0x9A, 0x0D, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF6, 0x4C, 0x9A, 0x40, 0x9A, +0x50, 0x32, 0x00, 0xF5, 0x42, 0x32, 0x08, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, 0x50, 0x9A, +0x40, 0x9A, 0xE1, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, +0x00, 0xD2, 0x00, 0x93, 0xE0, 0xF3, 0x08, 0x6A, +0x60, 0x33, 0x68, 0x33, 0x5B, 0xEB, 0x01, 0x2A, +0xE5, 0xE8, 0x12, 0xEA, 0x01, 0x10, 0x66, 0x6A, +0x00, 0xD2, 0x00, 0x92, 0x01, 0x63, 0x20, 0xE8, +0xFF, 0x63, 0x01, 0xD0, 0x15, 0x2C, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF2, 0x64, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xC2, 0xF2, 0x94, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0x23, 0xF3, 0x70, 0x9A, +0x8D, 0xEB, 0x23, 0xF3, 0x70, 0xDA, 0x5D, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0x43, 0xF3, 0xA0, 0xA2, 0x03, 0x6B, 0x6B, 0xEB, +0xAC, 0xEB, 0x43, 0xF3, 0x60, 0xC2, 0x43, 0xF3, +0xC4, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x07, 0xF0, +0x00, 0x4A, 0x00, 0x6D, 0x18, 0x6F, 0xF8, 0xED, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x00, 0x4B, +0x12, 0xEF, 0x6D, 0xE7, 0x43, 0xF3, 0x14, 0xA3, +0x01, 0x6F, 0xEC, 0xE8, 0x23, 0x20, 0x43, 0xF3, +0x74, 0xA3, 0x66, 0x33, 0xEC, 0xEB, 0xFF, 0x6F, +0xEC, 0xEB, 0x1C, 0x23, 0xFF, 0xF7, 0x78, 0x9A, +0x9B, 0xEB, 0x01, 0x2C, 0xE5, 0xE8, 0x12, 0xEB, +0xFF, 0xF7, 0x7C, 0xDA, 0x10, 0xEF, 0x03, 0x27, +0x01, 0x4B, 0xFF, 0xF7, 0x7C, 0xDA, 0x60, 0x9A, +0x78, 0xEE, 0x12, 0xEB, 0x9B, 0xEB, 0x01, 0x2C, +0xE5, 0xE8, 0x12, 0xEB, 0x60, 0xDA, 0xFF, 0xF7, +0x7C, 0x9A, 0x04, 0x2B, 0x01, 0x6F, 0xFF, 0xF7, +0xFC, 0xDA, 0x60, 0xDA, 0x01, 0x4D, 0x0A, 0x75, +0x18, 0x4A, 0xCC, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0x43, 0xF3, 0x68, 0x9A, +0x43, 0xF3, 0x84, 0xDA, 0x7B, 0xEC, 0x01, 0x2B, +0xE5, 0xE8, 0x43, 0xF3, 0x80, 0xA2, 0x12, 0xEB, +0x43, 0xF3, 0x6C, 0xDA, 0x78, 0x67, 0x43, 0xF3, +0x70, 0xDA, 0x02, 0x6B, 0x8D, 0xEB, 0x43, 0xF3, +0x60, 0xC2, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0xA3, 0xF4, 0x00, 0x48, 0x43, 0xF3, +0x40, 0xA0, 0x03, 0x6B, 0x4C, 0xEB, 0x00, 0x6A, +0x26, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, +0x54, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xFF, 0x6E, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x48, 0x9A, 0xE6, 0xF7, 0x00, 0x4C, 0x00, 0x6D, +0x05, 0x4E, 0x40, 0xEA, 0x66, 0x6A, 0x43, 0xF3, +0x44, 0xD8, 0x43, 0xF3, 0x4C, 0xD8, 0x01, 0x6A, +0x4B, 0xEA, 0x43, 0xF3, 0x80, 0xA0, 0x43, 0xF3, +0x41, 0xC0, 0x7D, 0x6A, 0x4B, 0xEA, 0x01, 0x6B, +0x8C, 0xEA, 0x6D, 0xEA, 0x43, 0xF3, 0x40, 0xC0, +0x43, 0xF3, 0x68, 0xD8, 0x43, 0x67, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0xA3, 0xF4, 0x00, 0x48, 0x43, 0xF3, +0x80, 0xA0, 0x01, 0x6B, 0x00, 0x6A, 0x8C, 0xEB, +0x22, 0x23, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, +0x54, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x03, 0x6A, +0x4B, 0xEA, 0x8C, 0xEA, 0x43, 0xF3, 0x40, 0xC0, +0x00, 0x18, 0x73, 0xCE, 0x04, 0xD2, 0x04, 0x94, +0x00, 0x18, 0x94, 0xCE, 0x43, 0xF3, 0x60, 0xA0, +0x02, 0x6A, 0x43, 0xF3, 0xC8, 0x98, 0x6D, 0xEA, +0x43, 0xF3, 0x40, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF3, 0x48, 0x9A, 0x42, 0xF1, 0x1C, 0x6C, +0x01, 0x6D, 0x40, 0xEA, 0x01, 0x6A, 0x07, 0x97, +0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x00, 0x4B, +0x43, 0xF3, 0xA0, 0xA3, 0x02, 0x6C, 0x00, 0x6A, +0xAC, 0xEC, 0x0C, 0x24, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF6, 0x54, 0x9A, 0x00, 0x6C, 0x80, 0xC2, +0x03, 0x6A, 0x4B, 0xEA, 0xAC, 0xEA, 0x43, 0xF3, +0x40, 0xC3, 0x01, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0x00, 0x6A, 0x18, 0x6C, 0x98, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x00, 0x4B, 0x01, 0x4A, +0x0A, 0x72, 0x12, 0xEC, 0x71, 0xE4, 0x43, 0xF3, +0xB4, 0xA4, 0x02, 0x6B, 0x6B, 0xEB, 0xAC, 0xEB, +0x43, 0xF3, 0x74, 0xC4, 0xEE, 0x61, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF7, 0x40, 0xA2, +0x01, 0x6B, 0x4C, 0xEB, 0x00, 0x6A, 0x1C, 0x23, +0x30, 0xF0, 0x20, 0x6A, 0x07, 0xF0, 0x04, 0x4A, +0x00, 0x6B, 0xA0, 0x9A, 0x8E, 0xED, 0x0F, 0x2D, +0x18, 0x6E, 0xD8, 0xEB, 0x30, 0xF0, 0x20, 0x6D, +0xA3, 0xF4, 0x00, 0x4D, 0x12, 0xEE, 0xB9, 0xE6, +0x43, 0xF3, 0xF4, 0xA6, 0x02, 0x6D, 0xAB, 0xED, +0xEC, 0xED, 0x43, 0xF3, 0xB4, 0xC6, 0x01, 0x4B, +0x0A, 0x73, 0x18, 0x4A, 0xEA, 0x61, 0x01, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x5D, 0x67, 0x0A, 0xD4, +0x20, 0xF0, 0x98, 0xA2, 0x30, 0xF0, 0x20, 0x6A, +0x0B, 0xD5, 0x0C, 0xD6, 0xA3, 0xF4, 0x00, 0x4A, +0x43, 0xF3, 0xA0, 0xA2, 0x01, 0x6B, 0x00, 0xF6, +0xE0, 0x31, 0xAC, 0xEB, 0x00, 0xF6, 0x23, 0x31, +0x80, 0xF0, 0x09, 0x23, 0x21, 0x24, 0x01, 0x74, +0x80, 0xF0, 0x05, 0x61, 0x0A, 0x93, 0x80, 0xF0, +0x02, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF6, +0x78, 0x9B, 0xC3, 0xEB, 0x7C, 0x61, 0x7F, 0x71, +0x7A, 0x60, 0xFF, 0xF7, 0x1F, 0x51, 0x77, 0x61, +0x43, 0xF3, 0x04, 0x9A, 0x1B, 0xEE, 0x01, 0x28, +0xE5, 0xE8, 0x10, 0xEA, 0x12, 0xE8, 0x02, 0x22, +0x01, 0x48, 0x04, 0x10, 0x03, 0x28, 0x01, 0x68, +0x50, 0x67, 0x1D, 0x10, 0x01, 0x6B, 0x1E, 0x10, +0x0A, 0x94, 0x65, 0x24, 0x30, 0xF0, 0x20, 0x6B, +0x82, 0xF6, 0x78, 0x9B, 0x0C, 0x95, 0xA3, 0xEB, +0x5E, 0x61, 0x7F, 0x71, 0x5C, 0x60, 0xFF, 0xF7, +0x1F, 0x51, 0x59, 0x61, 0x43, 0xF3, 0x08, 0x9A, +0x1B, 0xED, 0x01, 0x28, 0xE5, 0xE8, 0x10, 0xEA, +0x12, 0xE8, 0x02, 0x22, 0x01, 0x48, 0x05, 0x10, +0x04, 0x28, 0x01, 0x68, 0x00, 0x6A, 0x04, 0xD2, +0x02, 0x10, 0x00, 0x6B, 0x04, 0xD3, 0x0A, 0x94, +0x00, 0x18, 0x1C, 0xCF, 0x00, 0x6C, 0xFF, 0x6E, +0xA4, 0x67, 0xCC, 0xED, 0x1D, 0x65, 0x18, 0x6D, +0xB8, 0xEC, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x00, 0x4B, 0x01, 0x6D, 0x12, 0xEA, 0x69, 0xE2, +0x43, 0xF3, 0x54, 0xA2, 0xAC, 0xEA, 0xCC, 0xEA, +0x2F, 0x2A, 0xD8, 0x67, 0x18, 0x6F, 0xF8, 0xEE, +0x04, 0x96, 0xC4, 0x36, 0x04, 0xD6, 0x03, 0x6E, +0xCB, 0xEE, 0x12, 0xEC, 0x71, 0xE4, 0x43, 0xF3, +0xF4, 0xA4, 0xEC, 0xEE, 0x04, 0x97, 0xED, 0xEE, +0x43, 0xF3, 0xD4, 0xC4, 0x0A, 0x96, 0x63, 0xF3, +0xC4, 0xDC, 0x0B, 0x97, 0x63, 0xF3, 0xE8, 0xDC, +0x0C, 0x96, 0x18, 0x6F, 0x43, 0xF3, 0xD8, 0xDC, +0xD8, 0x67, 0x01, 0x4E, 0xF8, 0xEE, 0x12, 0xEE, +0x6D, 0xE6, 0x43, 0xF3, 0x48, 0xDB, 0x43, 0xF3, +0x04, 0xDB, 0x43, 0xF3, 0x55, 0xC4, 0x43, 0xF3, +0x54, 0xA4, 0x43, 0xF3, 0x36, 0xC4, 0x4D, 0xED, +0x43, 0xF3, 0xB4, 0xC4, 0x01, 0x6A, 0x04, 0x10, +0x01, 0x4C, 0x0A, 0x74, 0xBC, 0x61, 0x00, 0x6A, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x06, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x07, 0xF0, 0x00, 0x4A, 0x00, 0x6C, +0x2C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x07, 0xF0, +0x00, 0x4A, 0x00, 0x6B, 0x18, 0x6D, 0xB8, 0xEB, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF4, 0x00, 0x4C, +0x12, 0xED, 0x91, 0xE5, 0x43, 0xF3, 0xD4, 0xA4, +0x01, 0x6D, 0xAC, 0xEE, 0x08, 0x26, 0x43, 0xF3, +0x94, 0xA4, 0x86, 0x34, 0xAC, 0xEC, 0x03, 0x24, +0x80, 0x9A, 0x01, 0x4C, 0x80, 0xDA, 0x01, 0x4B, +0x0A, 0x73, 0x18, 0x4A, 0xE7, 0x61, 0x00, 0x18, +0x73, 0xCE, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0x93, 0xE6, 0xF7, 0x44, 0x9A, 0x6E, 0xEA, +0x52, 0x22, 0x04, 0x94, 0x00, 0x18, 0x94, 0xCE, +0x4E, 0x10, 0x18, 0x6D, 0xB8, 0xEC, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x00, 0x4B, 0x12, 0xED, +0x6D, 0xE5, 0x43, 0xF3, 0xD4, 0xA3, 0x01, 0x6D, +0xAC, 0xEE, 0x0A, 0x26, 0x43, 0xF3, 0x74, 0xA3, +0x66, 0x33, 0xAC, 0xEB, 0xFF, 0x6D, 0xAC, 0xEB, +0x03, 0x2B, 0x60, 0x9A, 0x01, 0x4B, 0x60, 0xDA, +0x01, 0x4C, 0x0A, 0x74, 0x18, 0x4A, 0xE5, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0x43, 0xF3, 0x61, 0xA2, 0xFF, 0x73, 0x2B, 0x61, +0x43, 0xF3, 0x70, 0x9A, 0x01, 0x4B, 0x43, 0xF3, +0x70, 0xDA, 0x43, 0xF3, 0x4C, 0x9A, 0x4E, 0xEB, +0x22, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0x07, 0xF0, +0x00, 0x4A, 0x18, 0x6D, 0xB8, 0xEB, 0x30, 0xF0, +0x20, 0x6C, 0xA3, 0xF4, 0x00, 0x4C, 0x12, 0xED, +0x91, 0xE5, 0x43, 0xF3, 0xD4, 0xA4, 0x01, 0x6D, +0xAC, 0xEE, 0x08, 0x26, 0x43, 0xF3, 0x94, 0xA4, +0x86, 0x34, 0xAC, 0xEC, 0x03, 0x24, 0x80, 0x9A, +0x01, 0x4C, 0x80, 0xDA, 0x01, 0x4B, 0x0A, 0x73, +0x18, 0x4A, 0xE7, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x78, 0x67, 0xE6, 0xF7, 0x70, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, 0xA0, 0xF0, +0x64, 0x9A, 0x02, 0xF0, 0x00, 0x6C, 0x8D, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x07, 0x97, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xE6, 0xF7, 0x15, 0x48, 0x00, 0x69, 0x18, 0x6A, +0x58, 0xE9, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x00, 0x4B, 0x12, 0xEA, 0x69, 0xE2, 0x43, 0xF3, +0x94, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, 0x27, 0x23, +0x00, 0xF0, 0x8B, 0x98, 0x00, 0xF0, 0x67, 0x98, +0x63, 0xEC, 0x21, 0x61, 0x61, 0x80, 0x81, 0x43, +0x04, 0xD4, 0x07, 0x2C, 0x00, 0xF0, 0x4F, 0x98, +0x00, 0xF0, 0x93, 0x98, 0x40, 0xEA, 0x04, 0x92, +0x14, 0x10, 0x80, 0xA0, 0x01, 0x4C, 0x80, 0xC0, +0x80, 0xA0, 0x82, 0xEB, 0x08, 0x60, 0x43, 0xF3, +0x94, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x43, 0xF3, 0x74, 0xC2, 0x08, 0x10, 0x00, 0xF0, +0x4F, 0x98, 0x00, 0xF0, 0x93, 0x98, 0x40, 0xEA, +0x00, 0x6A, 0x00, 0xF0, 0x4B, 0xD8, 0x01, 0x49, +0x0A, 0x71, 0x18, 0x48, 0xC8, 0x61, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x68, 0x09, 0xD5, 0x8C, 0xE8, 0x7F, 0xF7, +0x1E, 0x6D, 0x01, 0x6C, 0x00, 0x18, 0xA4, 0xC4, +0x62, 0x67, 0x67, 0xE8, 0x01, 0x6A, 0x4C, 0xEB, +0x00, 0x6A, 0x2D, 0x23, 0x0A, 0x28, 0x01, 0x6C, +0x9F, 0xF7, 0x00, 0x6D, 0x00, 0x18, 0xA4, 0xC4, +0x22, 0x67, 0x01, 0x6C, 0x9F, 0xF7, 0x01, 0x6D, +0x09, 0x10, 0x01, 0x6C, 0x9F, 0xF7, 0x02, 0x6D, +0x00, 0x18, 0xA4, 0xC4, 0x22, 0x67, 0x01, 0x6C, +0x9F, 0xF7, 0x03, 0x6D, 0x00, 0x18, 0xA4, 0xC4, +0x0F, 0x6B, 0x4C, 0xEB, 0x60, 0x32, 0x2D, 0xEA, +0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x82, 0xF3, 0x68, 0x9B, 0x00, 0x30, +0x08, 0x30, 0x61, 0xE0, 0x51, 0xE0, 0x09, 0x93, +0x04, 0x10, 0xA0, 0xA0, 0x01, 0x48, 0xA0, 0xC3, +0x01, 0x4B, 0x8A, 0xE8, 0xFA, 0x61, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0x01, 0x6C, 0x7F, 0xF7, 0x1E, 0x6D, +0xA3, 0xF4, 0x00, 0x48, 0x00, 0x18, 0xA4, 0xC4, +0x26, 0xF7, 0x88, 0xA0, 0x01, 0x6B, 0x47, 0xEC, +0x6C, 0xEA, 0x0F, 0x22, 0x30, 0xF0, 0x20, 0x6D, +0xC9, 0xF5, 0x08, 0x4D, 0x00, 0x18, 0xF0, 0xCF, +0x26, 0xF7, 0x4A, 0xC8, 0xA0, 0xF0, 0x44, 0x98, +0x10, 0xF0, 0x00, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, +0x44, 0xD8, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x01, 0x6C, 0x7F, 0xF7, 0x1E, 0x6D, 0x00, 0x18, +0xA4, 0xC4, 0x05, 0x97, 0x30, 0xF0, 0x20, 0x6B, +0xCA, 0xF3, 0x4C, 0xC3, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF6, 0x60, 0x9A, +0xFD, 0x6A, 0x1F, 0xF6, 0x10, 0x69, 0x80, 0xA3, +0xB1, 0x67, 0x7F, 0xF7, 0x1F, 0x68, 0x8C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF6, +0x64, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x01, 0x6C, 0x00, 0x18, 0xA4, 0xC4, +0xFE, 0x6E, 0xB1, 0x67, 0x4C, 0xEE, 0x01, 0x6C, +0x00, 0x18, 0x93, 0xC4, 0xB0, 0x67, 0x01, 0x6C, +0x00, 0x18, 0xA4, 0xC4, 0x40, 0x6E, 0x4D, 0xEE, +0xFF, 0x6A, 0xB0, 0x67, 0x4C, 0xEE, 0x01, 0x6C, +0x00, 0x18, 0x93, 0xC4, 0xB0, 0x67, 0x01, 0x6C, +0x00, 0x18, 0xA4, 0xC4, 0x80, 0x6E, 0xCB, 0xEE, +0x4D, 0xEE, 0xFF, 0x6A, 0x4C, 0xEE, 0xB0, 0x67, +0x01, 0x6C, 0x00, 0x18, 0x93, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, +0x14, 0x6C, 0x40, 0xEA, 0xB1, 0x67, 0x01, 0x6C, +0x00, 0x18, 0xA4, 0xC4, 0x01, 0x6E, 0x4D, 0xEE, +0xFF, 0x6A, 0xB1, 0x67, 0x4C, 0xEE, 0x01, 0x6C, +0x00, 0x18, 0x93, 0xC4, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF3, 0x68, 0x9A, 0xFF, 0xF6, 0x1F, 0x6A, +0x80, 0xAB, 0x8C, 0xEA, 0x40, 0xCB, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0xA3, 0xF4, 0x00, 0x48, 0x26, 0xF7, +0x68, 0xA0, 0x01, 0x6A, 0xFF, 0x6E, 0x44, 0xEB, +0x4C, 0xEE, 0x01, 0x6C, 0x7F, 0xF7, 0x1E, 0x6D, +0x00, 0x18, 0x93, 0xC4, 0x26, 0xF7, 0x48, 0xA0, +0x01, 0x6B, 0x05, 0x97, 0x6E, 0xEA, 0x26, 0xF7, +0x48, 0xC0, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0x26, 0xF7, 0x6E, 0xA2, +0x01, 0x6C, 0x8E, 0xEB, 0x05, 0x2B, 0x26, 0xF7, +0x6E, 0xC2, 0x00, 0x18, 0x5A, 0xD0, 0x10, 0x10, +0x26, 0xF7, 0xCC, 0xA2, 0x26, 0xF7, 0x88, 0xA2, +0x01, 0x6B, 0xA6, 0x67, 0xA7, 0xEC, 0x6C, 0xED, +0x07, 0x25, 0x6E, 0xEC, 0xC7, 0xEC, 0x86, 0x67, +0x6C, 0xEC, 0x02, 0x24, 0x26, 0xF7, 0x6D, 0xC2, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0xFF, 0xF7, 0x1F, 0x6B, 0x05, 0x67, +0x4C, 0xEC, 0x6C, 0xE8, 0x0A, 0x35, 0x80, 0x37, +0x6C, 0xED, 0xE4, 0x37, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x00, 0x4B, 0x4C, 0xEE, 0x26, 0xF3, +0x08, 0x4F, 0xAC, 0xEA, 0xFD, 0xE3, 0x04, 0xD2, +0x00, 0x6B, 0x1E, 0x10, 0x30, 0xF0, 0x20, 0x69, +0xCA, 0xF3, 0x29, 0xA1, 0x20, 0x31, 0x28, 0x31, +0x19, 0x65, 0x30, 0xF0, 0x20, 0x69, 0x62, 0xF5, +0x2C, 0x99, 0x58, 0x67, 0x01, 0x76, 0x29, 0xE2, +0x68, 0x31, 0x29, 0xE2, 0xF9, 0x65, 0x20, 0x9F, +0x20, 0xDA, 0x08, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xA2, 0xF6, 0x28, 0x9A, 0x5F, 0x67, 0x29, 0xE2, +0x20, 0x9F, 0x20, 0xDA, 0x01, 0x4B, 0x04, 0x4F, +0xFF, 0x6A, 0x22, 0x67, 0xFA, 0x65, 0x04, 0x92, +0x6C, 0xE9, 0x43, 0xE9, 0xDB, 0x61, 0x03, 0x6A, +0x3F, 0x67, 0x0C, 0xEA, 0x2C, 0xED, 0x20, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0x26, 0xF7, 0xE9, 0xA2, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF5, 0x6C, 0x9B, 0xE0, 0x37, 0x9C, 0x34, +0xE8, 0x37, 0x7D, 0xE7, 0xA8, 0x33, 0xB5, 0xE4, +0xC1, 0xF4, 0x0A, 0x4D, 0xA8, 0x35, 0x49, 0xE5, +0x80, 0x9A, 0x7D, 0xE7, 0x01, 0x76, 0x80, 0xDF, +0x07, 0x61, 0x30, 0xF0, 0x20, 0x6C, 0xA2, 0xF6, +0x88, 0x9C, 0x40, 0x9A, 0x8D, 0xE3, 0x40, 0xDB, +0xFF, 0x69, 0xD0, 0x67, 0x01, 0x6C, 0x7F, 0xF7, +0x1C, 0x6D, 0x2C, 0xEE, 0x00, 0x18, 0x93, 0xC4, +0x02, 0x36, 0x01, 0x6C, 0x7F, 0xF7, 0x1D, 0x6D, +0x2C, 0xEE, 0x00, 0x18, 0x93, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0xCA, 0xF3, 0x49, 0xA2, 0x01, 0x6E, +0x01, 0x6C, 0x02, 0x4A, 0xC4, 0xEA, 0x7F, 0xF7, +0x1E, 0x6D, 0x2C, 0xEE, 0x00, 0x18, 0x93, 0xC4, +0x00, 0x68, 0x12, 0x10, 0x01, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x4E, 0xE8, 0x22, 0xF2, 0x60, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0xE8, 0xF1, 0x09, 0x4A, +0x09, 0xE2, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, 0x40, 0xEA, +0x01, 0x6C, 0x7F, 0xF7, 0x1E, 0x6D, 0x00, 0x18, +0xA4, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x00, 0x4B, 0x26, 0xF7, 0x89, 0xA3, 0xA2, 0x44, +0x47, 0xED, 0x01, 0x6D, 0xAC, 0xEA, 0xDE, 0x2A, +0xAE, 0xEC, 0x26, 0xF7, 0x89, 0xC3, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x45, 0x67, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xBC, 0x63, 0x87, 0x62, +0x86, 0xD1, 0x85, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0xA3, 0xF4, 0x00, 0x49, 0x26, 0xF7, 0xAA, 0xA9, +0x30, 0xF0, 0x20, 0x6C, 0xC9, 0xF5, 0x08, 0x4C, +0x00, 0x18, 0x69, 0xC7, 0x00, 0x18, 0x5A, 0xD0, +0x26, 0xF7, 0x88, 0xA1, 0x04, 0x00, 0xB0, 0x67, +0x00, 0x18, 0xF0, 0xCF, 0x11, 0x22, 0x90, 0x67, +0xA2, 0x67, 0x00, 0x18, 0x69, 0xC7, 0x26, 0xF7, +0x0D, 0xA1, 0x01, 0x6A, 0x4E, 0xE8, 0x05, 0x28, +0x00, 0x18, 0x5A, 0xD0, 0x26, 0xF7, 0x0D, 0xC1, +0x03, 0x10, 0x01, 0x6A, 0x26, 0xF7, 0x4E, 0xC1, +0x87, 0x97, 0x86, 0x91, 0x85, 0x90, 0x44, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF2, 0x60, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0xA8, 0xF3, 0x05, 0x4A, 0x40, 0xDB, 0x01, 0x4A, +0x40, 0xDB, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF2, 0x60, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0xA8, 0xF3, 0x1D, 0x4A, 0x40, 0xDB, 0x01, 0x4A, +0x40, 0xDB, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF2, 0x60, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0xC8, 0xF3, 0x15, 0x4A, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xA2, 0xF6, 0x6C, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF5, 0x40, 0x9A, 0x80, 0x9B, +0xA4, 0x67, 0x4C, 0xED, 0x4E, 0xED, 0x02, 0x25, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF6, 0x4C, 0x9A, +0x01, 0x6B, 0x40, 0x9A, 0x6C, 0xEA, 0x60, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF6, 0x50, 0x9A, +0x00, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF6, +0x54, 0x9A, 0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0xA2, 0xF6, 0x58, 0x9A, 0xC0, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xA2, 0xF6, 0x5C, 0x9A, 0xA0, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, 0x40, 0x9A, +0x80, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF6, +0x44, 0x9A, 0x40, 0x9A, 0x41, 0x22, 0x30, 0xF0, +0x20, 0x69, 0xC2, 0xF6, 0x28, 0x99, 0x60, 0xD9, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, 0x6C, 0x9B, +0x00, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, +0x70, 0x9B, 0xE0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF6, 0x74, 0x9B, 0xC0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xC2, 0xF6, 0x78, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF6, 0x78, 0x9B, +0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF6, +0x7C, 0x9B, 0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF4, +0x80, 0x9C, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF2, 0x64, 0x9A, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0x5C, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x7D, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x77, 0xF0, 0x24, 0x6C, 0xC0, 0xF1, +0x04, 0x4C, 0xAE, 0xB8, 0x00, 0x65, 0xA0, 0xDC, +0x9A, 0xB8, 0x00, 0x65, 0xBB, 0xB8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF2, 0x60, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0xC8, 0xF3, 0x16, 0x4A, +0x40, 0xDB, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6D, 0x8C, 0xED, 0x18, 0x4D, 0x01, 0x6A, +0x44, 0xED, 0x00, 0x6C, 0xA2, 0x67, 0x80, 0x18, +0x73, 0x4C, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6D, 0x8C, 0xED, +0x18, 0x4D, 0x01, 0x6A, 0x44, 0xED, 0x00, 0x6C, +0xA2, 0x67, 0x80, 0x18, 0xA4, 0x4C, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF2, 0x60, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0x28, 0xF5, 0x1D, 0x4A, +0x40, 0xDB, 0x00, 0x18, 0xE3, 0xCC, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF4, 0x7C, 0x9A, 0x6C, 0x23, +0x01, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0x05, 0xCD, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF4, +0x5C, 0x9A, 0x02, 0x6B, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0x06, 0xCD, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF4, 0x5C, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0x07, 0xCD, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF4, 0x5C, 0x9A, 0x08, 0x6B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x08, 0xCD, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF4, 0x5C, 0x9A, +0x10, 0x6B, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0x09, 0xCD, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF4, +0x5C, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0x0A, 0xCD, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF4, 0x5C, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0x0B, 0xCD, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF4, 0x5C, 0x9A, 0x80, 0x6B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x5C, 0xCD, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, 0x7C, 0x9B, +0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0x3F, 0xCD, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF4, 0x7C, 0x9B, 0x04, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x0C, 0xCD, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, 0x7C, 0x9B, +0x08, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0x0D, 0xCD, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF4, 0x7C, 0x9B, 0x10, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x0E, 0xCD, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, 0x60, 0x9A, +0x14, 0x23, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF2, +0x58, 0x9A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0x12, 0xCD, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x82, 0xF2, 0x48, 0x9A, 0x03, 0xF5, +0x60, 0x9B, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0x3B, 0xCD, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, +0x64, 0x9A, 0x55, 0x23, 0x01, 0x6A, 0x6C, 0xEA, +0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, 0x0F, 0xCD, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, 0x44, 0x9A, +0x02, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, +0x00, 0x18, 0x10, 0xCD, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF5, 0x44, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, +0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, 0x0F, 0xCD, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, 0x44, 0x9A, +0x08, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, +0x00, 0x18, 0x10, 0xCD, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF5, 0x44, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, +0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, 0x0F, 0xCD, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, 0x44, 0x9A, +0x20, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, +0x00, 0x18, 0x10, 0xCD, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF5, 0x44, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, +0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, 0x0F, 0xCD, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, 0x44, 0x9A, +0x80, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, +0x00, 0x18, 0x10, 0xCD, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF2, 0x60, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0x28, 0xF5, 0x1E, 0x4A, 0x40, 0xDB, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF2, 0x60, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0x28, 0xF7, 0x05, 0x4A, +0x40, 0xDB, 0x00, 0x18, 0x25, 0xD0, 0x00, 0x18, +0xB3, 0xCC, 0x00, 0x18, 0x68, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF4, 0x6C, 0x9A, 0x0F, 0x23, +0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0x74, 0xCD, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF2, 0x60, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0x28, 0xF7, 0x06, 0x4A, 0x40, 0xDB, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF2, 0x60, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0x68, 0xF7, 0x15, 0x4A, +0x40, 0xDB, 0x00, 0x18, 0xBA, 0xCC, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF4, 0x60, 0x9A, 0x2B, 0x23, +0x10, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0x70, 0xCD, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF4, +0x40, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0x6C, 0xCD, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF4, 0x40, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0xF7, 0xCC, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0x60, 0x9B, 0xFF, 0x6A, +0x01, 0x4A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0x68, 0xCD, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, +0x60, 0x9B, 0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0x64, 0xCD, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF4, 0x64, 0x9A, 0x06, 0x23, +0x08, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0x60, 0xCD, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0x8A, 0x9A, 0x35, 0x24, +0x01, 0x6B, 0x6C, 0xEC, 0x06, 0x24, 0x9F, 0x9A, +0x6D, 0xEC, 0x9F, 0xDA, 0x00, 0x6C, 0x00, 0x18, +0x57, 0xCD, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, +0x68, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, 0x57, 0xCD, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, 0x68, 0x9B, +0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, +0x02, 0x6C, 0x00, 0x18, 0x57, 0xCD, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0x68, 0x9B, 0x00, 0xF4, +0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, +0x00, 0x18, 0x57, 0xCD, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF4, 0x68, 0x9B, 0x01, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, +0x57, 0xCD, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF4, +0x6C, 0x9A, 0x32, 0x23, 0x01, 0x6A, 0x6C, 0xEA, +0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, 0xFB, 0xCC, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, 0x6C, 0x9B, +0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x03, 0x22, +0x01, 0x6C, 0x00, 0x18, 0xFB, 0xCC, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0x6C, 0x9B, 0x00, 0xF2, +0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, +0x00, 0x18, 0xFB, 0xCC, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF4, 0x6C, 0x9B, 0x00, 0xF4, 0x00, 0x6A, +0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, +0xFB, 0xCC, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, +0x6C, 0x9B, 0x01, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, +0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, 0xFB, 0xCC, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF2, 0x60, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0x68, 0xF7, 0x16, 0x4A, +0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xDD, 0x63, 0x45, 0x62, 0x44, 0xD1, 0x43, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x69, 0xE2, 0xF6, +0x4C, 0x9A, 0x8C, 0xE9, 0x30, 0x31, 0x49, 0xE1, +0x40, 0xD2, 0x40, 0xA2, 0x00, 0xF6, 0x40, 0x32, +0x00, 0xF6, 0x43, 0x32, 0x00, 0x52, 0x40, 0x60, +0x01, 0x6A, 0x7D, 0x67, 0x4B, 0xEA, 0x54, 0xC3, +0x0F, 0x6A, 0x56, 0xC3, 0x10, 0x6A, 0x57, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, 0x50, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0x06, 0x04, 0x49, 0xE1, +0x40, 0x9A, 0x04, 0x05, 0x04, 0x6E, 0x04, 0xD2, +0x80, 0xF2, 0x4C, 0x98, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF6, 0x54, 0x9A, 0x07, 0x04, +0x04, 0x05, 0x49, 0xE1, 0x40, 0x9A, 0x04, 0x6E, +0x04, 0xD2, 0x80, 0xF2, 0x4C, 0x98, 0x40, 0xEA, +0x40, 0x93, 0x08, 0x04, 0x04, 0x05, 0x40, 0x9B, +0x04, 0x6E, 0x04, 0xD2, 0x80, 0xF2, 0x4C, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, +0x58, 0x9A, 0x09, 0x04, 0x04, 0x05, 0x45, 0xE1, +0x40, 0x99, 0x04, 0x6E, 0x04, 0xD2, 0x80, 0xF2, +0x4C, 0x98, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF4, 0x40, 0x9A, 0x05, 0x04, 0x40, 0xEA, +0x45, 0x97, 0x44, 0x91, 0x43, 0x90, 0x23, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0xE2, 0xF6, 0x90, 0x9C, 0x50, 0x33, 0x91, 0xE3, +0x80, 0x9C, 0x30, 0xF0, 0x20, 0x6C, 0xE2, 0xF6, +0x94, 0x9C, 0x8D, 0xE3, 0x82, 0x67, 0x60, 0x9B, +0x00, 0x18, 0x40, 0xD2, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF6, 0x5C, 0x9A, +0x02, 0xF7, 0x60, 0x9B, 0x00, 0xA2, 0x20, 0xA3, +0xFF, 0x6A, 0x4C, 0xE8, 0x4C, 0xE9, 0x2A, 0xE8, +0x2B, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, +0x50, 0x9A, 0x10, 0x33, 0x49, 0xE3, 0x40, 0xA2, +0xFF, 0x6B, 0x6C, 0xEA, 0x56, 0x32, 0x6C, 0xEA, +0x04, 0x72, 0x09, 0x60, 0x06, 0x72, 0x0C, 0x60, +0x02, 0x72, 0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x54, 0x9A, 0x09, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x58, 0x9A, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x5C, 0x9A, +0x90, 0x67, 0x40, 0xEA, 0x01, 0x48, 0x7F, 0x6A, +0x4C, 0xE8, 0x0A, 0xE9, 0xDA, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF6, 0x5C, 0x9A, 0x20, 0xC2, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, +0x8C, 0xEA, 0xFF, 0x6B, 0xE2, 0x67, 0x6C, 0xEE, +0x6C, 0xEF, 0x1E, 0x65, 0x87, 0x67, 0x03, 0x6E, +0xCC, 0xEC, 0x80, 0xF0, 0x10, 0x2C, 0x30, 0xF0, +0x20, 0x6C, 0x02, 0xF7, 0x08, 0x9C, 0x08, 0x69, +0x42, 0x32, 0x80, 0xA0, 0x52, 0x32, 0x6C, 0xEA, +0x6C, 0xEC, 0x2D, 0xEC, 0x6C, 0xEC, 0x80, 0xC0, +0x30, 0xF0, 0x20, 0x6C, 0x02, 0xF7, 0x8C, 0x9C, +0xCC, 0xEA, 0xE0, 0xC4, 0x30, 0xF0, 0x20, 0x6C, +0x02, 0xF7, 0x90, 0x9C, 0x40, 0xC4, 0x0F, 0x6A, +0x98, 0x67, 0x8C, 0xEA, 0x74, 0x22, 0x01, 0x6C, +0x4C, 0xEC, 0x06, 0x24, 0x30, 0xF0, 0x20, 0x6C, +0x02, 0xF7, 0x94, 0x9C, 0xAC, 0xEB, 0x60, 0xC4, +0x02, 0x6B, 0x4C, 0xEB, 0x08, 0x23, 0xFF, 0x6C, +0xA2, 0x33, 0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, +0x02, 0xF7, 0x98, 0x9C, 0x60, 0xC4, 0x04, 0x6B, +0x4C, 0xEB, 0x09, 0x23, 0xA2, 0x33, 0xFF, 0x6C, +0x62, 0x33, 0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, +0x02, 0xF7, 0x9C, 0x9C, 0x60, 0xC4, 0x4E, 0x33, +0x07, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, +0x60, 0x9B, 0x00, 0xF6, 0xA2, 0x35, 0xA0, 0xC3, +0x20, 0x6B, 0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF7, 0x44, 0x9A, 0x64, 0x68, 0x60, 0xC2, +0x2C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0A, 0x6C, 0xFF, 0x48, 0x40, 0xEA, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0x21, 0x28, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF2, 0x64, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF3, 0x88, 0x9C, +0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, 0x23, 0xF3, +0x70, 0x9A, 0x8D, 0xEB, 0x23, 0xF3, 0x70, 0xDA, +0x60, 0xA1, 0xD0, 0x6A, 0x6C, 0xEA, 0x40, 0xC1, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF7, 0x68, 0x9A, +0xF7, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, +0x16, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, +0x24, 0x9A, 0x20, 0x6A, 0x60, 0xA1, 0x6C, 0xEA, +0xCC, 0x2A, 0x60, 0xA1, 0xF0, 0x6A, 0x6C, 0xEA, +0x40, 0xC1, 0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF7, +0x68, 0x9A, 0xF7, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, +0x8C, 0xEA, 0xC2, 0x67, 0xFF, 0x6C, 0x8C, 0xEE, +0x03, 0x6D, 0x66, 0x67, 0xAC, 0xEB, 0x4B, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF7, 0xE8, 0x9B, +0x08, 0x68, 0x42, 0x32, 0x60, 0xA7, 0x52, 0x32, +0x8C, 0xEA, 0x8C, 0xEB, 0x0D, 0xEB, 0x8C, 0xEB, +0x60, 0xC7, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF7, +0x6C, 0x9B, 0xAC, 0xEA, 0x64, 0x68, 0xC0, 0xC3, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF7, 0x70, 0x9B, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, +0x44, 0x9A, 0x30, 0x6B, 0x60, 0xC2, 0x2E, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x0A, 0x6C, 0xFF, 0x48, 0x40, 0xEA, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xE8, 0x23, 0x28, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF2, 0x64, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x22, 0xF3, 0x88, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0x23, 0xF3, 0x70, 0x9A, +0x8D, 0xEB, 0x23, 0xF3, 0x70, 0xDA, 0x60, 0xA1, +0xCF, 0x6A, 0x6C, 0xEA, 0x40, 0xC1, 0x30, 0xF0, +0x20, 0x6A, 0x02, 0xF7, 0x68, 0x9A, 0xF7, 0x6A, +0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x6A, +0x4B, 0xEA, 0x19, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF7, 0x24, 0x9A, 0x20, 0x6A, 0x60, 0xA1, +0x6C, 0xEA, 0xCA, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF7, 0x54, 0x9A, 0xEF, 0x6B, 0x40, 0x9A, +0x80, 0xA1, 0x8C, 0xEB, 0x60, 0xC1, 0x30, 0xF0, +0x20, 0x6B, 0x02, 0xF7, 0x88, 0x9B, 0xF7, 0x6B, +0xA0, 0xA4, 0xAC, 0xEB, 0x60, 0xC4, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF7, 0xA8, 0x9A, 0xE0, 0xF3, 0x10, 0x6C, +0x0F, 0x6E, 0x00, 0x18, 0x9B, 0xD2, 0xE0, 0xF3, +0x0C, 0x6C, 0x00, 0x18, 0xEF, 0xD2, 0xFF, 0x6B, +0x4C, 0xEB, 0x0B, 0x73, 0x0B, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF7, 0x6C, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x22, 0xF7, 0x90, 0x9C, 0x40, 0x9B, +0x8C, 0xEA, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF2, +0x60, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0xE9, 0xF4, +0x15, 0x4A, 0x40, 0xDB, 0x00, 0x68, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF6, 0x50, 0x9A, 0x40, 0x9A, +0x21, 0x22, 0xE0, 0xF3, 0x09, 0x70, 0x13, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF2, 0x64, 0x9A, +0x20, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0x23, 0xF3, 0x70, 0x9A, 0x8D, 0xEB, 0x23, 0xF3, +0x70, 0xDA, 0x00, 0x6A, 0x0C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x32, 0x6C, +0x01, 0x48, 0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE8, 0xD9, 0x17, 0x01, 0x6A, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x66, 0xF2, 0x44, 0xA2, +0x03, 0x72, 0x0D, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF7, 0x88, 0x9A, 0xFF, 0x6A, 0x60, 0xA4, +0x6C, 0xEA, 0x10, 0x6B, 0x4C, 0xEB, 0x03, 0x23, +0xEF, 0x6B, 0x4C, 0xEB, 0x60, 0xC4, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF7, 0x5C, 0x9A, 0x62, 0xF7, 0x60, 0x9B, +0x40, 0xAA, 0x60, 0xAB, 0x6E, 0xEA, 0xFF, 0xF7, +0x1F, 0x6B, 0x6C, 0xEA, 0x01, 0x5A, 0x58, 0x67, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF7, 0xA8, 0x9B, 0x00, 0x6B, 0xFF, 0x6A, +0x60, 0xC5, 0x30, 0xF0, 0x20, 0x6B, 0x8C, 0xEA, +0x62, 0xF7, 0x8C, 0x9B, 0x00, 0xF3, 0x00, 0x6E, +0x30, 0xF0, 0x20, 0x6F, 0x60, 0x9C, 0xA2, 0xF4, +0xF0, 0x9F, 0xCD, 0xEB, 0x60, 0xDC, 0x30, 0xF0, +0x20, 0x6C, 0x62, 0xF7, 0x90, 0x9C, 0x01, 0x6B, +0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6C, 0x62, 0xF7, +0x94, 0x9C, 0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6C, +0x62, 0xF7, 0x98, 0x9C, 0x60, 0xC4, 0x30, 0xF0, +0x20, 0x6C, 0x62, 0xF7, 0xDC, 0x9C, 0x80, 0x9E, +0xEC, 0xEC, 0x80, 0xDE, 0x30, 0xF0, 0x20, 0x6C, +0x82, 0xF7, 0x80, 0x9C, 0x40, 0xC4, 0x60, 0xC5, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, 0x44, 0x9A, +0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, 0xF8, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, 0x40, 0x9A, +0xFF, 0x6B, 0x40, 0xA2, 0x6C, 0xEA, 0x20, 0xE8, +0xFF, 0x63, 0x01, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF7, 0x68, 0x9B, 0xFF, 0x6A, 0x4C, 0xEC, +0xAC, 0xEA, 0x00, 0x6D, 0xA0, 0xC3, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF7, 0xEC, 0x9B, 0x00, 0xF3, +0x01, 0x68, 0x0B, 0xE8, 0x60, 0x9F, 0x0C, 0xEB, +0x60, 0xDF, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF7, +0x70, 0x9B, 0x01, 0x6F, 0xE0, 0xC3, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF7, 0x78, 0x9B, 0xA0, 0xC3, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF7, 0x60, 0x9B, +0x80, 0xC3, 0x00, 0x6B, 0x0A, 0x10, 0x30, 0xF0, +0x20, 0x6C, 0xA0, 0xA6, 0x82, 0xF7, 0x80, 0x9C, +0x01, 0x4B, 0x01, 0x4E, 0xA0, 0xC4, 0xFF, 0x6C, +0x8C, 0xEB, 0x43, 0xEB, 0xF4, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF7, 0x48, 0x9A, 0x01, 0x6B, +0x60, 0xC2, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x54, 0x9A, 0x00, 0x6D, 0x05, 0x6C, +0xC5, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF7, 0x44, 0x9A, 0x60, 0xA2, 0x01, 0x6A, +0x6C, 0xEA, 0xF8, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF7, 0x40, 0x9A, 0x05, 0x97, 0xFF, 0x6B, +0x40, 0xA2, 0x6C, 0xEA, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x5D, 0x67, 0x90, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x54, 0x9A, +0x05, 0x6C, 0x01, 0x6D, 0x04, 0x06, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, 0x44, 0x9A, +0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, 0xF8, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x48, 0x9A, +0x40, 0xEA, 0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x54, 0x9A, 0x00, 0x6D, 0x06, 0x6C, +0xC5, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF7, 0x44, 0x9A, 0x60, 0xA2, 0x01, 0x6A, +0x6C, 0xEA, 0xF8, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF4, 0x48, 0x9A, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x54, 0x9A, +0x00, 0x6D, 0x04, 0x6C, 0xC5, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, 0x44, 0x9A, +0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, 0xF8, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x48, 0x9A, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, 0x88, 0x9A, +0x00, 0x6A, 0x00, 0xF3, 0x00, 0x6D, 0x40, 0xC4, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, 0x6C, 0x9A, +0x30, 0xF0, 0x20, 0x6E, 0xA2, 0xF4, 0xD0, 0x9E, +0x40, 0x9B, 0xAD, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF7, 0x70, 0x9B, 0x01, 0x6A, +0x03, 0x6D, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF7, 0x74, 0x9B, 0xA0, 0xC3, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF7, 0x78, 0x9B, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF7, 0xBC, 0x9B, +0x60, 0x9D, 0xCC, 0xEB, 0x60, 0xDD, 0x30, 0xF0, +0x20, 0x6B, 0x82, 0xF7, 0x60, 0x9B, 0x61, 0x6D, +0xAB, 0xED, 0xA0, 0xC3, 0x40, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF7, 0x44, 0x9A, 0x60, 0xA2, +0x01, 0x6A, 0x6C, 0xEA, 0xF8, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF7, 0x60, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x60, 0xF6, 0x84, 0x9A, 0xA0, 0xA3, +0xA1, 0xC4, 0xA0, 0xA3, 0x60, 0xF6, 0x84, 0x9A, +0xA2, 0xC4, 0x60, 0xA3, 0x60, 0xF6, 0x44, 0x9A, +0x63, 0xC2, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, 0x40, 0x9A, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x54, 0x9A, 0x00, 0x6D, 0x60, 0x6C, 0xC5, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, +0x44, 0x9A, 0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0xF8, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x48, 0x9A, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, +0x40, 0x9A, 0x04, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF7, 0xA8, 0x9A, 0x00, 0x6A, +0x00, 0xF3, 0x01, 0x6C, 0x40, 0xC5, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF7, 0x6C, 0x9A, 0x8B, 0xEC, +0x01, 0x6E, 0x40, 0x9B, 0x02, 0x37, 0x8C, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, +0x50, 0x9A, 0x03, 0x6B, 0xE2, 0x34, 0xC0, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, 0x58, 0x9A, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, +0x40, 0x9A, 0x52, 0x6B, 0x60, 0xC2, 0xFF, 0x6B, +0x6C, 0xEC, 0x6C, 0xEF, 0x6C, 0xE8, 0x80, 0xC2, +0xE0, 0xC2, 0x00, 0xC2, 0xC0, 0xC5, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF7, 0x44, 0x9A, 0x60, 0xA2, +0x01, 0x6A, 0x6C, 0xEA, 0xF8, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x48, 0x9A, 0x40, 0xEA, +0x05, 0x97, 0x04, 0x90, 0x01, 0x6A, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, +0x40, 0x9A, 0x04, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF7, 0xA8, 0x9A, 0x00, 0x6A, +0x00, 0xF3, 0x01, 0x6C, 0x40, 0xC5, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF7, 0x6C, 0x9A, 0x8B, 0xEC, +0x01, 0x6E, 0x40, 0x9B, 0x02, 0x37, 0x8C, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, +0x50, 0x9A, 0x03, 0x6B, 0xE2, 0x34, 0xC0, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, 0x58, 0x9A, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, +0x40, 0x9A, 0x20, 0x6B, 0x60, 0xC2, 0xFF, 0x6B, +0x6C, 0xEC, 0x6C, 0xEF, 0x6C, 0xE8, 0x80, 0xC2, +0xE0, 0xC2, 0x00, 0xC2, 0xC0, 0xC5, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF7, 0x44, 0x9A, 0x60, 0xA2, +0x01, 0x6A, 0x6C, 0xEA, 0xF8, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x48, 0x9A, 0x40, 0xEA, +0x05, 0x97, 0x04, 0x90, 0x01, 0x6A, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF3, 0x40, 0x9A, 0x09, 0xD5, 0x04, 0x67, +0x26, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF7, 0x48, 0x9A, 0x00, 0x6B, 0x00, 0xF3, +0x01, 0x6C, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF7, 0x6C, 0x9A, 0x8B, 0xEC, 0x40, 0x9B, +0x8C, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF7, 0x50, 0x9A, 0x01, 0x6B, 0xFF, 0x6C, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, +0x58, 0x9A, 0x03, 0x6B, 0x60, 0xC2, 0x02, 0x6B, +0x00, 0xF6, 0x00, 0x32, 0x6D, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0xF3, 0x7C, 0x9B, 0x0C, 0xEB, +0x62, 0x33, 0x62, 0x33, 0x8C, 0xEB, 0x60, 0x33, +0x6D, 0xEA, 0x1F, 0xF7, 0x00, 0x6B, 0x0C, 0xEB, +0x60, 0x33, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x82, 0xF7, 0x60, 0x9B, 0x00, 0x6C, 0x40, 0xDB, +0x71, 0x67, 0xA2, 0xA3, 0x41, 0xA3, 0x04, 0x4C, +0xA0, 0x35, 0xA0, 0x35, 0x40, 0x32, 0xAD, 0xEA, +0xA0, 0xA3, 0x0C, 0x74, 0xAD, 0xEA, 0xA3, 0xA3, +0x04, 0x4B, 0x00, 0xF6, 0xA0, 0x35, 0xAD, 0xEA, +0x30, 0xF0, 0x20, 0x6D, 0x82, 0xF7, 0xA0, 0x9D, +0x40, 0xDD, 0xEB, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF7, 0x48, 0x9A, 0x01, 0x6B, 0x60, 0xC2, +0x0C, 0x6A, 0x08, 0x10, 0x4D, 0xE1, 0x80, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF7, 0x60, 0x9B, +0x04, 0x4A, 0x80, 0xDB, 0x09, 0x93, 0x63, 0xEA, +0xF5, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, +0x44, 0x9A, 0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0xF8, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x48, 0x9A, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x01, 0x6A, 0x04, 0x63, 0x00, 0xEF, +0xFF, 0x63, 0x01, 0xD1, 0x00, 0xD0, 0x00, 0x6B, +0x04, 0xD6, 0x63, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF7, 0x48, 0x9A, 0x00, 0x6E, 0x30, 0xF0, +0x20, 0x6F, 0xC0, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF7, 0xCC, 0x9A, 0x42, 0xF4, 0xE0, 0x9F, +0x11, 0x5D, 0x40, 0x9E, 0xEC, 0xEA, 0x00, 0xF3, +0x00, 0x6F, 0xED, 0xEA, 0x40, 0xDE, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF7, 0x50, 0x9A, 0x01, 0x6E, +0x30, 0xF0, 0x20, 0x6F, 0xC0, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF7, 0xDC, 0x9A, 0xA2, 0xF4, +0xF0, 0x9F, 0x40, 0x9E, 0xEC, 0xEA, 0x40, 0xDE, +0x10, 0x6A, 0x02, 0x60, 0xFF, 0x6A, 0xAC, 0xEA, +0x30, 0xF0, 0x20, 0x6E, 0x62, 0xF7, 0xD4, 0x9E, +0x03, 0x6F, 0x82, 0x31, 0x40, 0xC6, 0x30, 0xF0, +0x20, 0x6E, 0x62, 0xF7, 0xD8, 0x9E, 0x22, 0x30, +0xE0, 0xC6, 0x30, 0xF0, 0x20, 0x6E, 0x82, 0xF7, +0xC0, 0x9E, 0xE0, 0xC6, 0xFF, 0x6F, 0xEC, 0xE8, +0xEC, 0xE9, 0x8C, 0xEF, 0x00, 0xC6, 0x20, 0xC6, +0xE0, 0xC6, 0x30, 0xF0, 0x20, 0x6E, 0x62, 0xF7, +0xC8, 0x9E, 0x01, 0x6F, 0xE0, 0xC6, 0x30, 0xF0, +0x20, 0x6E, 0x82, 0xF7, 0xC4, 0x9E, 0xE0, 0xA6, +0x01, 0x6E, 0xEC, 0xEE, 0xF8, 0x2E, 0x04, 0x96, +0x7D, 0xE6, 0xC3, 0x67, 0x08, 0x10, 0x30, 0xF0, +0x20, 0x68, 0x82, 0xF7, 0x00, 0x98, 0x01, 0x4E, +0x00, 0xA0, 0x00, 0xC7, 0x01, 0x4F, 0x61, 0xE2, +0x03, 0xEE, 0xF5, 0x61, 0x57, 0xE5, 0x51, 0xE4, +0x66, 0x67, 0x9C, 0x2D, 0x01, 0x91, 0x00, 0x90, +0x01, 0x6A, 0x01, 0x63, 0x20, 0xE8, 0x00, 0x65, +0xDB, 0x63, 0x49, 0x62, 0x48, 0xD1, 0x47, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF3, 0x54, 0x9A, +0x4A, 0xD4, 0x25, 0x67, 0x60, 0xAA, 0xFF, 0xF7, +0x1F, 0x6A, 0x6C, 0xEA, 0x49, 0xE6, 0x5C, 0x32, +0x30, 0x4A, 0x44, 0xD2, 0x33, 0x10, 0x4A, 0x93, +0xFF, 0x6A, 0x6C, 0xEA, 0x0B, 0x22, 0x00, 0xF1, +0x00, 0x59, 0x04, 0x60, 0x2D, 0xE2, 0x00, 0xF1, +0x00, 0x5B, 0x0A, 0x61, 0xFF, 0x68, 0x01, 0x48, +0x43, 0xE0, 0x07, 0x10, 0x00, 0xF1, 0x00, 0x59, +0x03, 0x61, 0xFF, 0x68, 0x01, 0x48, 0x01, 0x10, +0x11, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF3, +0x68, 0x9A, 0x44, 0x92, 0x6D, 0xE2, 0x00, 0x6A, +0xA0, 0xA3, 0x04, 0x06, 0x51, 0xE6, 0x01, 0x4A, +0x03, 0xEA, 0xA0, 0xC4, 0x01, 0x4B, 0xF8, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, 0x58, 0x9A, +0x4A, 0x94, 0xB0, 0x67, 0x07, 0xE1, 0x40, 0xEA, +0x44, 0x93, 0x4A, 0x92, 0x0D, 0xE3, 0x09, 0xE2, +0x44, 0xD3, 0x4A, 0xD2, 0xCC, 0x29, 0x49, 0x97, +0x48, 0x91, 0x47, 0x90, 0x25, 0x63, 0x00, 0xEF, +0xDB, 0x63, 0x49, 0x62, 0x48, 0xD1, 0x47, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF3, 0x54, 0x9A, +0x4A, 0xD4, 0x02, 0xF0, 0x01, 0x5D, 0x60, 0xAA, +0xFF, 0xF7, 0x1F, 0x6A, 0x05, 0x67, 0x6C, 0xEA, +0x49, 0xE6, 0x5C, 0x32, 0x44, 0xD2, 0x27, 0x61, +0x02, 0xF0, 0x00, 0x68, 0x24, 0x10, 0x00, 0xF1, +0x00, 0x58, 0x30, 0x67, 0x02, 0x61, 0xFF, 0x69, +0x01, 0x49, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, +0x5C, 0x9A, 0x4A, 0x94, 0xB1, 0x67, 0x04, 0x06, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF3, +0x68, 0x9A, 0x44, 0x92, 0x6D, 0xE2, 0x00, 0x6A, +0xBD, 0x67, 0x51, 0xE5, 0x90, 0xA4, 0x01, 0x4A, +0x23, 0xEA, 0x80, 0xC3, 0x01, 0x4B, 0xF8, 0x61, +0x44, 0x92, 0x4A, 0x95, 0x23, 0xE0, 0x29, 0xE2, +0x35, 0xE5, 0x44, 0xD2, 0x4A, 0xD5, 0xDB, 0x28, +0x49, 0x97, 0x48, 0x91, 0x47, 0x90, 0x25, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xE0, 0xF3, 0x40, 0x98, 0xFF, 0x69, 0x8C, 0xE9, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x5C, 0x9A, 0x02, 0x6C, 0x40, 0xEA, 0xE0, 0xF3, +0x40, 0x98, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF7, 0x68, 0x9A, 0x00, 0x6A, 0x00, 0xF3, +0x01, 0x6D, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF7, 0x8C, 0x9A, 0xAB, 0xED, 0x40, 0x9C, +0xAC, 0xEA, 0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, +0x62, 0xF7, 0x90, 0x9C, 0x01, 0x6A, 0x3E, 0x6D, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6C, 0x62, 0xF7, +0x98, 0x9C, 0xAB, 0xED, 0x40, 0xC4, 0x30, 0xF0, +0x20, 0x6C, 0x82, 0xF7, 0x80, 0x9C, 0xA0, 0xC4, +0x20, 0xC4, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF7, 0x44, 0x9A, 0x60, 0xA2, 0x01, 0x6A, +0x6C, 0xEA, 0xF8, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF4, 0x48, 0x9A, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x58, 0x9A, 0x40, 0xEA, +0x01, 0x6B, 0x4C, 0xEB, 0xF8, 0x2B, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF3, 0x40, 0x9A, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x5C, 0x9A, +0x3E, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, 0x0A, 0x6C, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x01, 0x6A, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xE0, 0xF3, 0x40, 0x98, +0xFF, 0x69, 0x8C, 0xE9, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x5C, 0x9A, 0x02, 0x6C, +0x40, 0xEA, 0xE0, 0xF3, 0x40, 0x98, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, 0x68, 0x9A, +0x00, 0x6A, 0x00, 0xF3, 0x01, 0x6D, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, 0x8C, 0x9A, +0xAB, 0xED, 0x40, 0x9C, 0xAC, 0xEA, 0x40, 0xDC, +0x30, 0xF0, 0x20, 0x6C, 0x62, 0xF7, 0x90, 0x9C, +0x01, 0x6A, 0x3B, 0x6D, 0x40, 0xC4, 0x30, 0xF0, +0x20, 0x6C, 0x62, 0xF7, 0x98, 0x9C, 0xAB, 0xED, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF7, +0x80, 0x9C, 0xA0, 0xC4, 0x20, 0xC4, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, 0x44, 0x9A, +0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, 0xF8, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x48, 0x9A, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x58, 0x9A, 0x40, 0xEA, 0x01, 0x6B, 0x4C, 0xEB, +0xF8, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, +0x40, 0x9A, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x5C, 0x9A, 0x3E, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, 0x44, 0x9A, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x01, 0x6A, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x00, 0x4B, 0xEC, 0xEA, 0x05, 0xD2, 0x06, 0xF1, +0x58, 0x9B, 0x04, 0x67, 0x0B, 0xD5, 0x06, 0xF1, +0x95, 0xA3, 0x0C, 0xD6, 0x62, 0x67, 0x00, 0x69, +0x06, 0x10, 0x01, 0x49, 0xFF, 0x6D, 0xAC, 0xE9, +0x23, 0xEC, 0x5B, 0x61, 0x63, 0xE0, 0x43, 0xE8, +0xF8, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x00, 0x4B, 0x06, 0xF1, 0x56, 0xA3, 0x04, 0xD3, +0x2E, 0xEA, 0x06, 0x22, 0x91, 0x67, 0x00, 0x18, +0x1F, 0xD5, 0x04, 0x92, 0x06, 0xF1, 0x36, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xC9, 0xF5, 0x45, 0xA2, +0x01, 0x72, 0x08, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF5, 0x58, 0x9A, 0x00, 0xF6, 0x02, 0x31, +0x4C, 0xE8, 0x07, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF5, 0x58, 0x9A, 0x03, 0xEA, 0x35, 0x61, +0x00, 0x69, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x00, 0x4B, 0x06, 0xF1, 0x57, 0xA3, 0x04, 0xD3, +0x2E, 0xEA, 0x06, 0x22, 0x91, 0x67, 0x00, 0x18, +0x54, 0xD5, 0x04, 0x92, 0x06, 0xF1, 0x37, 0xC2, +0x05, 0x93, 0x06, 0x2B, 0x0B, 0x95, 0x0C, 0x96, +0x90, 0x67, 0x00, 0x18, 0xA0, 0xD4, 0x1E, 0x10, +0x05, 0x92, 0x01, 0x72, 0x06, 0x61, 0x0B, 0x95, +0x0C, 0x96, 0x90, 0x67, 0x00, 0x18, 0x61, 0xD4, +0x15, 0x10, 0x05, 0x93, 0x02, 0x73, 0x04, 0x61, +0x90, 0x67, 0x00, 0x18, 0x3D, 0xD4, 0x0E, 0x10, +0x05, 0x92, 0x03, 0x72, 0x04, 0x61, 0x90, 0x67, +0x00, 0x18, 0x19, 0xD4, 0x07, 0x10, 0x05, 0x93, +0x00, 0x6A, 0x04, 0x73, 0x03, 0x60, 0x01, 0x6A, +0x01, 0x10, 0x00, 0x6A, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xDB, 0xEC, 0x01, 0x2E, 0xE5, 0xE8, 0x10, 0xEA, +0xAD, 0xE2, 0x63, 0xEE, 0x78, 0x67, 0x4B, 0xE6, +0x6B, 0xEB, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xEC, 0xEA, +0xA3, 0xF4, 0x00, 0x4B, 0x04, 0xD2, 0x26, 0xF1, +0x40, 0x9B, 0x0A, 0xD4, 0x91, 0xE5, 0x83, 0xEA, +0x0B, 0xD5, 0x0C, 0xD6, 0x00, 0x6A, 0x45, 0x61, +0x0A, 0x94, 0x06, 0xF1, 0xD8, 0x9B, 0x00, 0x18, +0xC4, 0xD5, 0x22, 0x67, 0x1A, 0x22, 0xA2, 0x67, +0x30, 0xF0, 0x20, 0x6A, 0x0A, 0x94, 0xA2, 0xF2, +0xD8, 0x9A, 0x00, 0x18, 0xC4, 0xD5, 0x02, 0x67, +0x07, 0x22, 0x0A, 0x94, 0x0C, 0x96, 0x04, 0x97, +0xA2, 0x67, 0x00, 0x18, 0x86, 0xD5, 0x2C, 0x22, +0x0A, 0x93, 0x0C, 0x92, 0x04, 0x97, 0x71, 0xE0, +0x17, 0xE1, 0x19, 0xE2, 0x00, 0x18, 0x86, 0xD5, +0x23, 0x22, 0x0B, 0x92, 0x0A, 0x93, 0x37, 0xE2, +0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF2, 0xD8, 0x9A, +0x6D, 0xE1, 0x83, 0x67, 0x05, 0xD3, 0x00, 0x18, +0xC4, 0xD5, 0x02, 0x67, 0x08, 0x22, 0x0C, 0x93, +0x05, 0x94, 0x04, 0x97, 0xA2, 0x67, 0x39, 0xE3, +0x00, 0x18, 0x86, 0xD5, 0x0D, 0x22, 0x0A, 0x92, +0x0B, 0x93, 0x04, 0x97, 0x51, 0xE1, 0x0C, 0x92, +0x37, 0xE3, 0x39, 0xE0, 0x11, 0xE4, 0x17, 0xE5, +0xD9, 0xE2, 0x00, 0x18, 0x86, 0xD5, 0x01, 0x10, +0x00, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x6D, 0xC5, 0x67, 0x03, 0x6F, 0x00, 0x18, +0xCA, 0xD5, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x6D, 0xC5, 0x67, +0x02, 0x6F, 0x00, 0x18, 0xCA, 0xD5, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x6F, 0x00, 0x18, 0xCA, 0xD5, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x01, 0x6F, 0x00, 0x18, 0xCA, 0xD5, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, 0x68, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF4, 0x80, 0x9C, +0x40, 0x9B, 0x30, 0xF0, 0x20, 0x6E, 0x42, 0xF4, +0xCC, 0x9E, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF7, 0x68, 0x9A, 0x00, 0x6A, +0x00, 0x6C, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF7, 0x4C, 0x9A, 0x80, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF7, 0xBC, 0x9A, 0x40, 0x9D, +0xCD, 0xEA, 0x40, 0xDD, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF7, 0x50, 0x9A, 0x00, 0x6D, 0x18, 0x6E, +0x80, 0xC2, 0x01, 0x6A, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF6, +0x84, 0x9B, 0x80, 0xF2, 0x48, 0x9A, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF3, 0x48, 0x9A, +0x40, 0xEA, 0x00, 0x18, 0xC5, 0xCD, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, 0x30, 0xF0, +0x20, 0x6B, 0x06, 0xF1, 0x98, 0x9A, 0xA2, 0xF2, +0x78, 0x9B, 0x83, 0xEB, 0x0D, 0x60, 0x26, 0xF1, +0x65, 0xA2, 0x0A, 0x2B, 0x06, 0xF1, 0x75, 0xA2, +0x06, 0xF1, 0x9C, 0xA2, 0x78, 0xEC, 0x12, 0xEB, +0x00, 0xF6, 0x60, 0x33, 0x26, 0xF1, 0x60, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0x06, 0xF1, 0x90, 0xA2, 0x01, 0x6B, 0x8D, 0xEB, +0x06, 0xF1, 0x70, 0xC2, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, +0xAC, 0xEA, 0x0B, 0x2A, 0x30, 0xF0, 0x20, 0x6B, +0x82, 0xF7, 0xB4, 0x9B, 0x30, 0xF0, 0x20, 0x6E, +0x82, 0xF7, 0xD8, 0x9E, 0x60, 0x9D, 0xCC, 0xEB, +0x0C, 0x10, 0x01, 0x72, 0x0B, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x82, 0xF7, 0xB4, 0x9B, 0x30, 0xF0, +0x20, 0x6E, 0xA2, 0xF2, 0xD8, 0x9E, 0x60, 0x9D, +0xCD, 0xEB, 0x60, 0xDD, 0x05, 0x5C, 0x60, 0xF1, +0x1A, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x88, 0x34, +0x02, 0xF2, 0x0C, 0x4B, 0x8D, 0xE3, 0x60, 0x9B, +0x00, 0xEB, 0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF7, 0x74, 0x9A, 0x7F, 0x6A, 0x80, 0xA3, +0x12, 0x10, 0x01, 0x72, 0x13, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF7, 0x74, 0x9A, 0xFF, 0x6C, +0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, +0x8C, 0xEA, 0x40, 0xC3, 0x40, 0xA3, 0x80, 0x4D, +0xC0, 0x4D, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xC3, 0x20, 0xE8, 0x02, 0x72, 0x05, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, 0x74, 0x9A, +0x5B, 0x10, 0x03, 0x72, 0x40, 0xF1, 0x0B, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, 0x74, 0x9A, +0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, +0xE9, 0x17, 0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF7, 0x7C, 0x9A, 0xFB, 0x6A, 0x80, 0xA3, +0xE2, 0x17, 0x01, 0x72, 0x19, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF7, 0x94, 0x9A, 0xFF, 0x6A, +0x40, 0x6D, 0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, +0x4C, 0xEB, 0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6B, +0x82, 0xF7, 0x9C, 0x9B, 0x01, 0x6D, 0x60, 0xA4, +0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, +0x60, 0xA4, 0x04, 0x6D, 0x4C, 0xEB, 0x48, 0x10, +0x02, 0x72, 0x0F, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF7, 0x74, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF7, 0x7C, 0x9A, 0xFE, 0x6A, 0x80, 0xA3, +0xB6, 0x17, 0x03, 0x72, 0x00, 0xF1, 0x0B, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, 0x94, 0x9A, +0xFF, 0x6B, 0x40, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, +0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF7, 0x9C, 0x9A, 0x01, 0x6D, +0x40, 0xA4, 0x6C, 0xEA, 0x4B, 0x10, 0x07, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, 0x7C, 0x9A, +0x80, 0xA3, 0xBF, 0x6A, 0x98, 0x17, 0x01, 0x72, +0x1B, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, +0x94, 0x9A, 0xFF, 0x6A, 0x40, 0x6D, 0x60, 0xA4, +0x10, 0x6E, 0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, +0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF7, +0x9C, 0x9B, 0x60, 0xA4, 0x4C, 0xEB, 0xCD, 0xEB, +0x4C, 0xEB, 0x60, 0xC4, 0x60, 0xA4, 0x4C, 0xEB, +0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x20, 0xE8, +0x02, 0x72, 0x0F, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF7, 0x74, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF7, 0x7C, 0x9A, 0xEF, 0x6A, 0x80, 0xA3, +0x6A, 0x17, 0x03, 0x72, 0xA0, 0xF0, 0x1F, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, 0x94, 0x9A, +0xFF, 0x6B, 0x40, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, +0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF7, 0x9C, 0x9A, 0x10, 0x6D, +0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, +0x40, 0xC4, 0x20, 0xE8, 0x08, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF7, 0x7C, 0x9A, 0xFF, 0xF3, +0x1F, 0x6A, 0x80, 0xAB, 0x83, 0x10, 0x01, 0x72, +0x1D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, +0x74, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, +0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, 0x7C, 0x9A, +0xFF, 0xF7, 0x1F, 0x6C, 0x7F, 0x4D, 0x40, 0xAB, +0x41, 0x4D, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xCB, 0x40, 0xAB, 0x00, 0xF3, 0x00, 0x4D, +0x8C, 0xEA, 0x51, 0x10, 0x02, 0x72, 0x10, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, 0x74, 0x9A, +0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, 0x7C, 0x9A, +0xFF, 0xF6, 0x1F, 0x6A, 0x80, 0xAB, 0x52, 0x10, +0x03, 0x72, 0x6D, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF7, 0x74, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, +0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, +0x7C, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, 0x7F, 0x4D, +0x40, 0xAB, 0x41, 0x4D, 0x8C, 0xEA, 0x27, 0x10, +0x08, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF7, +0x7C, 0x9A, 0xF7, 0xF7, 0x1F, 0x6A, 0x80, 0xAB, +0x31, 0x10, 0x01, 0x72, 0x1E, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF7, 0x74, 0x9A, 0xFF, 0x6C, +0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF7, 0x7C, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, +0xC1, 0xF7, 0x00, 0x4D, 0x40, 0xAB, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xCB, 0x40, 0xAB, +0x06, 0xF0, 0x00, 0x4D, 0x8C, 0xEA, 0xAD, 0xEA, +0x11, 0x10, 0x02, 0x72, 0x12, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF7, 0x74, 0x9A, 0xBF, 0x6A, +0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF7, 0x7C, 0x9A, 0xFD, 0xF7, +0x1F, 0x6A, 0x80, 0xAB, 0x8C, 0xEA, 0x40, 0xCB, +0x20, 0xE8, 0x03, 0x72, 0x18, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF7, 0x74, 0x9A, 0xFF, 0x6C, +0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF7, 0x7C, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, +0xC1, 0xF7, 0x00, 0x4D, 0x40, 0xAB, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xCB, 0x20, 0xE8, +0xFF, 0x63, 0x01, 0xD0, 0xFF, 0x6A, 0x4C, 0xED, +0x4C, 0xEE, 0x4C, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF3, 0x54, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, +0x6C, 0xEC, 0x00, 0xAA, 0xE1, 0xF7, 0x1F, 0x6A, +0x0C, 0xEA, 0x30, 0xF0, 0x20, 0x68, 0xA2, 0xF7, +0x00, 0x98, 0x51, 0xE4, 0x6C, 0xEC, 0x80, 0xC8, +0x9C, 0x32, 0x30, 0xF0, 0x20, 0x6C, 0xA2, 0xF7, +0x84, 0x9C, 0x30, 0xF0, 0x20, 0x68, 0xA2, 0xF7, +0x08, 0x98, 0x91, 0xE2, 0x80, 0xAC, 0x01, 0xE2, +0x00, 0x98, 0x6C, 0xEC, 0x05, 0x25, 0x10, 0xF0, +0x00, 0x6D, 0xAB, 0xED, 0xAD, 0xEC, 0x6C, 0xEC, +0xD8, 0xF0, 0x00, 0x6B, 0x8C, 0xEB, 0x30, 0xF0, +0x20, 0x6C, 0xA2, 0xF7, 0x84, 0x9C, 0x91, 0xE2, +0x60, 0xCC, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF7, +0x6C, 0x9B, 0x6D, 0xE2, 0x80, 0xA3, 0x01, 0x6B, +0x8C, 0xEB, 0x05, 0x23, 0x03, 0xF7, 0x01, 0x6B, +0x6B, 0xEB, 0x0C, 0xEB, 0x06, 0x10, 0x1F, 0xF7, +0x01, 0x6B, 0x6B, 0xEB, 0x0C, 0xEB, 0xE0, 0x37, +0xED, 0xEB, 0xFF, 0x76, 0x13, 0x60, 0x30, 0xF0, +0x20, 0x6C, 0xA2, 0xF7, 0x90, 0x9C, 0x80, 0xF4, +0xC0, 0x36, 0x6C, 0xEC, 0x30, 0xF0, 0x20, 0x6B, +0x82, 0xF3, 0x64, 0x9B, 0x6D, 0xEE, 0x30, 0xF0, +0x20, 0x6B, 0xA2, 0xF7, 0x68, 0x9B, 0x8D, 0xEE, +0x6D, 0xE2, 0xC0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xA2, 0xF7, 0x94, 0x9B, 0x7F, 0x6B, 0x91, 0xE2, +0xA0, 0xA4, 0xAC, 0xEB, 0x60, 0xC4, 0x30, 0xF0, +0x20, 0x6B, 0xA2, 0xF7, 0x78, 0x9B, 0x1C, 0x6C, +0x80, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF7, +0x7C, 0x9B, 0x08, 0xF4, 0x13, 0x6C, 0x80, 0xCB, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF2, 0x80, 0x9B, +0xF7, 0x6B, 0x91, 0xE2, 0xA0, 0xA4, 0xAC, 0xEB, +0x60, 0xC4, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, +0xFB, 0x63, 0x09, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF3, 0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xC2, 0xF2, 0x84, 0x9C, 0x40, 0x9B, 0x10, 0x6D, +0x00, 0x6E, 0x8D, 0xEA, 0x40, 0xDB, 0x06, 0x02, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, +0x48, 0x9A, 0x00, 0xF4, 0x1D, 0x6C, 0x82, 0xF3, +0x08, 0x6F, 0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF7, 0x60, 0x9B, 0xFF, 0x6A, 0x4C, 0xED, +0x6D, 0xE4, 0xC0, 0xA3, 0x3F, 0x6C, 0xCC, 0xEC, +0x80, 0xC3, 0x07, 0x2D, 0x80, 0xA3, 0x40, 0x6D, +0x4C, 0xEC, 0xAD, 0xEC, 0x4C, 0xEC, 0x80, 0xC3, +0x20, 0xE8, 0x01, 0x75, 0x07, 0x61, 0x80, 0xA3, +0x80, 0x6D, 0xAB, 0xED, 0x4C, 0xEC, 0xAD, 0xEC, +0x4C, 0xEC, 0x80, 0xC3, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF7, 0x64, 0x9B, +0xFF, 0x6A, 0xAC, 0xEA, 0x6D, 0xE4, 0x80, 0x9B, +0x80, 0xF4, 0x40, 0x32, 0x8D, 0xEA, 0x40, 0xDB, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF3, 0x68, 0x9A, +0x30, 0xF0, 0x20, 0x6E, 0xC2, 0xF7, 0xC8, 0x9E, +0x6D, 0xE4, 0x40, 0x9B, 0x30, 0xF0, 0x20, 0x68, +0xC2, 0xF7, 0x10, 0x98, 0xCC, 0xEA, 0x30, 0xF0, +0x20, 0x6E, 0xC2, 0xF7, 0xCC, 0x9E, 0xCD, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, +0xF8, 0x9A, 0x83, 0xF7, 0x00, 0x6A, 0x4B, 0xEA, +0xFD, 0xE4, 0x60, 0x9F, 0x7F, 0x6E, 0x4C, 0xEB, +0x43, 0xA5, 0xCC, 0xEA, 0x0D, 0xEA, 0x6D, 0xEA, +0x40, 0xDF, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF7, +0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6F, 0x82, 0xF4, +0xE0, 0x9F, 0x6D, 0xE4, 0x40, 0x9B, 0xED, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF7, +0x78, 0x9A, 0xFF, 0x6F, 0x01, 0x4F, 0x6D, 0xE4, +0x40, 0x9B, 0xED, 0xEA, 0x3F, 0xF6, 0x1F, 0x4F, +0xEC, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA2, 0xF7, 0x48, 0x9A, 0x49, 0xE4, 0x60, 0x9A, +0x40, 0xA5, 0xCC, 0xEA, 0x4D, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0xA2, 0xF7, 0x4C, 0x9A, 0x49, 0xE4, +0xC0, 0xA2, 0x01, 0x6A, 0xCC, 0xEA, 0x05, 0x22, +0x03, 0xF7, 0x01, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x07, 0x10, 0x1F, 0xF7, 0x01, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x61, 0xA5, 0x60, 0x33, 0x6D, 0xEA, +0xC2, 0xA5, 0xFF, 0x76, 0x0D, 0x60, 0x30, 0xF0, +0x20, 0x6B, 0xA2, 0xF7, 0x70, 0x9B, 0x4C, 0xEB, +0x80, 0xF4, 0xC0, 0x32, 0x30, 0xF0, 0x20, 0x6E, +0x82, 0xF3, 0xC4, 0x9E, 0xCD, 0xEA, 0x6D, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF7, 0x68, 0x9B, +0x6D, 0xE4, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC2, 0xF7, 0xDC, 0x9A, 0x02, 0xF0, 0x00, 0x6B, +0x6B, 0xEB, 0xD9, 0xE4, 0x40, 0x9E, 0x6C, 0xEA, +0x62, 0xAD, 0xE1, 0xF7, 0x1F, 0x6D, 0xAC, 0xEB, +0x6D, 0xEA, 0x40, 0xDE, 0x30, 0xF0, 0x20, 0x6A, +0xA2, 0xF7, 0x64, 0x9A, 0x0E, 0xF0, 0x01, 0x4D, +0x6D, 0xE4, 0x40, 0x9B, 0xAD, 0xEA, 0xC8, 0xF0, +0x00, 0x4D, 0xAC, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xA2, 0xF7, 0x54, 0x9A, 0x51, 0xE4, +0x60, 0xA4, 0x7F, 0x6A, 0x6C, 0xEA, 0x40, 0xC4, +0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF7, 0x58, 0x9A, +0x1C, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xA2, 0xF7, 0x5C, 0x9A, 0x08, 0xF4, 0x13, 0x6B, +0x60, 0xCA, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, +0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x0D, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF7, 0x40, 0x9A, +0x8C, 0x34, 0x30, 0xF0, 0x20, 0x6B, 0x51, 0xE4, +0x40, 0x9C, 0xC2, 0xF2, 0x64, 0x9B, 0x6D, 0xEA, +0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF7, +0x40, 0x9A, 0x8C, 0x34, 0x30, 0xF0, 0x20, 0x6B, +0x51, 0xE4, 0x40, 0x9C, 0xE2, 0xF2, 0x60, 0x9B, +0x6C, 0xEA, 0x40, 0xDC, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x0D, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF7, 0x40, 0x9A, +0x8C, 0x34, 0x30, 0xF0, 0x20, 0x6B, 0x51, 0xE4, +0x40, 0x9C, 0x02, 0xF3, 0x6C, 0x9B, 0x6D, 0xEA, +0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF7, +0x40, 0x9A, 0x8C, 0x34, 0x30, 0xF0, 0x20, 0x6B, +0x51, 0xE4, 0x40, 0x9C, 0x02, 0xF3, 0x70, 0x9B, +0x6C, 0xEA, 0x40, 0xDC, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x6B, 0xE2, 0xF7, +0x40, 0x9A, 0x6C, 0xEC, 0x8C, 0x34, 0x51, 0xE4, +0x40, 0x9C, 0x01, 0x6C, 0x40, 0xF7, 0x42, 0x32, +0x8C, 0xEA, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x6B, 0xE2, 0xF7, +0x40, 0x9A, 0x6C, 0xEC, 0x8C, 0x34, 0x51, 0xE4, +0x40, 0x9C, 0x01, 0x6C, 0x00, 0xF7, 0x42, 0x32, +0x8C, 0xEA, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x00, 0x68, +0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, 0xC4, 0xD7, +0x90, 0x67, 0x01, 0x6D, 0x01, 0x48, 0x00, 0x18, +0xD4, 0xD7, 0x0B, 0x70, 0xF5, 0x61, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0x0C, 0x6B, 0x7B, 0xEC, +0x01, 0x2B, 0xE5, 0xE8, 0x0A, 0x69, 0x12, 0xED, +0x4C, 0xED, 0x04, 0xD5, 0xFF, 0x68, 0x2C, 0xE8, +0x90, 0x67, 0x00, 0x18, 0xE4, 0xD7, 0x17, 0x2A, +0xFF, 0x49, 0x00, 0xF6, 0x20, 0x31, 0x90, 0x67, +0x01, 0x6D, 0x00, 0xF6, 0x23, 0x31, 0x00, 0x18, +0xD4, 0xD7, 0x41, 0x41, 0xEF, 0x2A, 0x01, 0x69, +0x2B, 0xE9, 0x09, 0x10, 0x04, 0x94, 0xFF, 0x49, +0x00, 0x6D, 0x00, 0xF6, 0x20, 0x31, 0x00, 0x18, +0xD4, 0xD7, 0x00, 0xF6, 0x23, 0x31, 0x00, 0x51, +0xF5, 0x60, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x0C, 0x68, +0x4C, 0xEC, 0x1B, 0xEC, 0x01, 0x28, 0xE5, 0xE8, +0x4C, 0xED, 0x10, 0xE9, 0x4C, 0xE9, 0x12, 0xE8, +0x4C, 0xE8, 0x0F, 0x25, 0x90, 0x67, 0x01, 0x6D, +0x00, 0x18, 0xC4, 0xD7, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF0, 0x10, 0x4A, 0x41, 0xE0, 0x60, 0xA0, +0x01, 0x6A, 0x44, 0xE9, 0x6D, 0xEA, 0x40, 0xC0, +0x11, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, +0x10, 0x4A, 0x49, 0xE0, 0x80, 0xA2, 0x01, 0x6B, +0x64, 0xE9, 0x6F, 0xEB, 0x8C, 0xEB, 0x60, 0xC2, +0x40, 0xA2, 0x04, 0x2A, 0x90, 0x67, 0x00, 0x6D, +0x00, 0x18, 0xC4, 0xD7, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x68, 0x24, 0x67, 0x0C, 0xE9, 0xAC, 0xE8, +0x91, 0x67, 0xB0, 0x67, 0x00, 0x18, 0x17, 0xD8, +0x91, 0x67, 0xB0, 0x67, 0x00, 0x18, 0xFE, 0xD7, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x0C, 0x6B, 0x7B, 0xED, +0x01, 0x2B, 0xE5, 0xE8, 0x05, 0x6E, 0xFF, 0x6A, +0x4C, 0xEC, 0x10, 0xEB, 0x12, 0xED, 0x4C, 0xED, +0xD8, 0xEB, 0x12, 0xEB, 0x4C, 0xEB, 0x1E, 0x73, +0x1D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF7, +0x64, 0x9A, 0xAC, 0x35, 0x30, 0xF0, 0x20, 0x6E, +0x6D, 0xE5, 0x40, 0x9B, 0xE2, 0xF7, 0xC8, 0x9E, +0xCC, 0xEA, 0x80, 0xF7, 0x80, 0x36, 0xCD, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF7, +0x40, 0x9A, 0x08, 0x6B, 0x6B, 0xEB, 0x55, 0xE5, +0x40, 0x9D, 0x8A, 0x34, 0x6C, 0xEA, 0x07, 0x6B, +0x6C, 0xEC, 0x1E, 0x10, 0x20, 0x5B, 0x0C, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF7, 0x44, 0x9A, +0x1F, 0x6E, 0xAC, 0x35, 0xE6, 0x67, 0x55, 0xE5, +0xE4, 0xEB, 0x40, 0x9D, 0xEF, 0xEF, 0x0D, 0x10, +0xE0, 0x4B, 0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF7, 0x40, 0x9A, 0xAC, 0x35, 0x1F, 0x6E, +0x55, 0xE5, 0xE0, 0x9D, 0x46, 0x67, 0x44, 0xEB, +0x4F, 0xEA, 0xCC, 0xEC, 0xEC, 0xEA, 0x84, 0xEB, +0x8D, 0xEA, 0x40, 0xDD, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x69, 0x2C, 0xEC, 0xCC, 0xE9, 0x05, 0x67, +0x01, 0x29, 0x00, 0x6C, 0xB0, 0x67, 0x00, 0x18, +0x3D, 0xD8, 0xFF, 0x6C, 0x0C, 0xEC, 0xB1, 0x67, +0x00, 0x18, 0x32, 0xD8, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xAE, 0xEC, 0x01, 0x6A, 0x8C, 0xEA, 0x20, 0xE8, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0xAC, 0xEA, 0x06, 0xD2, 0x05, 0xD4, +0x00, 0x69, 0x1F, 0x68, 0x22, 0x10, 0x05, 0x92, +0x40, 0xA2, 0x07, 0xD2, 0x00, 0x6A, 0x04, 0xD2, +0x04, 0x92, 0x07, 0x94, 0x12, 0x35, 0x87, 0xEA, +0xFF, 0x6A, 0x4C, 0xEC, 0x00, 0x18, 0x70, 0xD8, +0x06, 0x22, 0xFF, 0x6A, 0x04, 0x30, 0x4C, 0xE8, +0x05, 0x6A, 0x4E, 0xE8, 0x01, 0x10, 0x04, 0x30, +0xFF, 0x6A, 0x4C, 0xE8, 0x04, 0x92, 0x01, 0x4A, +0x08, 0x72, 0x04, 0xD2, 0xE9, 0x61, 0xFF, 0x6A, +0x01, 0x49, 0x4C, 0xE9, 0x05, 0x92, 0x01, 0x4A, +0x05, 0xD2, 0x06, 0x92, 0x43, 0xE9, 0xDB, 0x61, +0x1F, 0x6A, 0x4E, 0xE8, 0x0C, 0xEA, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x60, 0xA4, +0x01, 0x6A, 0x04, 0x67, 0x6C, 0xEA, 0x44, 0x22, +0x66, 0x32, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, +0x6C, 0x9B, 0x54, 0x32, 0x69, 0xE2, 0x61, 0xA4, +0x60, 0xC2, 0x40, 0xA4, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF7, 0x70, 0x9B, 0x46, 0x32, 0x54, 0x32, +0x69, 0xE2, 0x62, 0xA4, 0x60, 0xC2, 0x40, 0xA4, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, 0x74, 0x9B, +0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x63, 0xA4, +0x60, 0xC2, 0x40, 0xA4, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF7, 0x78, 0x9B, 0x46, 0x32, 0x54, 0x32, +0x69, 0xE2, 0x64, 0xA4, 0x60, 0xC2, 0x40, 0xA4, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF7, 0x7C, 0x9B, +0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x65, 0xA4, +0x60, 0xC2, 0x40, 0xA4, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF0, 0x60, 0x9B, 0x46, 0x32, 0x54, 0x32, +0x69, 0xE2, 0x66, 0xA4, 0x10, 0xF0, 0x00, 0x6C, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, +0x64, 0x9A, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x81, 0x40, 0x06, 0x6D, 0x00, 0x18, 0x72, 0xD8, +0x60, 0xA0, 0x01, 0x6E, 0x82, 0x67, 0x66, 0x35, +0x6C, 0xEE, 0x00, 0x18, 0x64, 0xD8, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0xF4, 0xD7, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF0, 0x68, 0x9A, +0xFF, 0xF7, 0x1F, 0x6A, 0x80, 0xAB, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xA2, 0xF2, 0x80, 0x9C, +0x8D, 0xEA, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x00, 0x00, 0x00, 0x00, +0xD5, 0xD7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0x00, 0x6B, 0xA2, 0xF4, 0x77, 0xC2, 0xA2, 0xF4, +0x78, 0xC2, 0xA2, 0xF4, 0x76, 0xC2, 0x00, 0x6B, +0xA2, 0xF4, 0x74, 0xCA, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0xD1, 0x06, 0xD0, 0xFF, 0x6A, +0xCC, 0xEA, 0x08, 0xD4, 0x03, 0xD2, 0xE1, 0x9C, +0x00, 0x68, 0x00, 0x69, 0xA3, 0xEF, 0x40, 0x9C, +0x00, 0xD0, 0x01, 0xD1, 0x0A, 0x61, 0xBB, 0xEF, +0x01, 0x2D, 0xE5, 0xE8, 0x00, 0x69, 0x00, 0xD1, +0x12, 0xEB, 0x01, 0xD3, 0xB8, 0xEB, 0x12, 0xEB, +0x7F, 0xE7, 0xC5, 0x67, 0x00, 0x6B, 0x01, 0x6C, +0x00, 0x6D, 0x0C, 0x10, 0xC4, 0x30, 0xC3, 0xE8, +0x64, 0x33, 0xD0, 0x67, 0x18, 0x67, 0x6D, 0xE0, +0x84, 0x30, 0x83, 0xE8, 0x38, 0x67, 0xA4, 0x34, +0x95, 0xE1, 0x90, 0x67, 0x01, 0x53, 0x02, 0x60, +0x07, 0x2B, 0x06, 0x26, 0xE3, 0xEB, 0xEE, 0x61, +0x6A, 0xEF, 0x02, 0x61, 0x43, 0xEE, 0xEA, 0x61, +0x63, 0xEF, 0x18, 0x61, 0xEA, 0xEB, 0x02, 0x61, +0xC3, 0xEA, 0x14, 0x61, 0x00, 0x91, 0xC3, 0xE2, +0x03, 0xEA, 0x7F, 0xE7, 0x50, 0x67, 0x18, 0x67, +0x1F, 0xE7, 0x81, 0xE1, 0x23, 0xE8, 0x01, 0x91, +0x00, 0xD0, 0x18, 0x67, 0xA5, 0xE1, 0x21, 0xE0, +0x02, 0xD0, 0x04, 0xD1, 0x00, 0x90, 0x02, 0x91, +0x00, 0xD0, 0x01, 0xD1, 0x86, 0x30, 0xC0, 0xF7, +0xA0, 0x31, 0x0D, 0xE9, 0x19, 0x65, 0xA6, 0x31, +0x98, 0x67, 0x11, 0x67, 0x8D, 0xE8, 0x02, 0xD1, +0xB1, 0x67, 0x06, 0x20, 0xC0, 0xF7, 0x60, 0x30, +0xC6, 0x36, 0x0D, 0xEE, 0x66, 0x33, 0xD4, 0x17, +0x03, 0x93, 0x01, 0x73, 0x05, 0x61, 0x00, 0x94, +0x01, 0x95, 0x08, 0x90, 0x80, 0xD8, 0xA1, 0xD8, +0x07, 0x91, 0x06, 0x90, 0x04, 0x63, 0x20, 0xE8, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x69, 0x40, 0xF4, 0x4C, 0x99, +0xFF, 0x68, 0x8C, 0xE8, 0x0D, 0xD5, 0x90, 0x67, +0x01, 0x6D, 0x40, 0xEA, 0x06, 0xD2, 0x40, 0xF4, +0x4C, 0x99, 0x90, 0x67, 0x00, 0x6D, 0x40, 0xEA, +0x04, 0xD2, 0x0D, 0x95, 0x06, 0x92, 0x04, 0x04, +0x00, 0x6E, 0x05, 0xD2, 0x80, 0x18, 0x08, 0x00, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF2, 0x4C, 0x9A, 0xFF, 0x6B, 0x80, 0xA2, +0x00, 0xF6, 0x80, 0x34, 0x00, 0xF6, 0x83, 0x34, +0x00, 0x54, 0x25, 0x60, 0xA0, 0xA2, 0x7F, 0x6C, +0xAC, 0xEC, 0x40, 0x6D, 0xAD, 0xEC, 0x6C, 0xEC, +0x80, 0xC2, 0x30, 0xF0, 0x20, 0x6C, 0x62, 0xF2, +0x90, 0x9C, 0x3F, 0x6D, 0x80, 0xA4, 0x30, 0xF0, +0x20, 0x6C, 0x62, 0xF2, 0x94, 0x9C, 0x80, 0xA4, +0x30, 0xF0, 0x20, 0x6C, 0x62, 0xF2, 0x98, 0x9C, +0x80, 0xA4, 0x30, 0xF0, 0x20, 0x6C, 0x62, 0xF2, +0x9C, 0x9C, 0x80, 0xA4, 0x80, 0xA2, 0x6C, 0xEC, +0xAD, 0xEC, 0x6C, 0xEC, 0x80, 0xC2, 0x80, 0xA2, +0xBF, 0x6B, 0x8C, 0xEB, 0x60, 0xC2, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF2, 0x60, 0x9B, +0xFF, 0x6A, 0x4C, 0xEC, 0xC0, 0xA3, 0x4C, 0xED, +0x15, 0x26, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF2, +0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x82, 0xF2, +0x88, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0x23, 0xF3, 0x70, 0x9A, 0x8D, 0xEB, 0x23, 0xF3, +0x70, 0xDA, 0x20, 0xE8, 0x80, 0xC3, 0x0B, 0x25, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF2, 0x8C, 0x9B, +0x80, 0x6D, 0xAB, 0xED, 0x60, 0xA4, 0x4C, 0xEB, +0xAE, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF2, 0x6C, 0x9B, +0x30, 0xF0, 0x20, 0x69, 0x23, 0xF4, 0x58, 0x99, +0xE0, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF2, +0x70, 0x9B, 0x50, 0x32, 0x6D, 0xE2, 0xE0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF2, 0x74, 0x9B, +0x6D, 0xE2, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x82, 0xF2, 0x78, 0x9B, 0x6D, 0xE2, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF2, 0x7C, 0x9B, +0x69, 0xE2, 0xC0, 0xDA, 0x23, 0xF4, 0x18, 0x99, +0x01, 0x48, 0x00, 0xF1, 0x00, 0x70, 0x23, 0xF4, +0x18, 0xD9, 0x05, 0x60, 0x00, 0xF2, 0x00, 0x6A, +0x4E, 0xE8, 0x06, 0x20, 0x0B, 0x10, 0x10, 0x6C, +0x01, 0x6D, 0x80, 0x18, 0x68, 0x00, 0x06, 0x10, +0x11, 0x6C, 0x01, 0x6D, 0x80, 0x18, 0x68, 0x00, +0x23, 0xF4, 0x18, 0xD9, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x00, 0x6A, 0x0B, 0xD7, +0xE0, 0xAE, 0x1F, 0xF7, 0x00, 0x6B, 0xEC, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x09, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xAE, 0x42, 0xF2, +0x78, 0x9B, 0x6D, 0xE7, 0xE0, 0xA4, 0xE0, 0xC3, +0x07, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF2, +0x7C, 0x9B, 0x7D, 0xE7, 0x60, 0xA4, 0x60, 0xC7, +0x01, 0x4A, 0xFF, 0x6B, 0x6C, 0xEA, 0x03, 0x72, +0x02, 0x4E, 0x01, 0x4C, 0xE1, 0x61, 0x25, 0x67, +0x00, 0x68, 0x0B, 0x92, 0xC0, 0x99, 0x01, 0x6D, +0x0D, 0xE2, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x80, 0xAB, 0xAB, 0xED, 0x02, 0x48, +0x40, 0xEA, 0x16, 0x70, 0x04, 0x49, 0xF1, 0x61, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0xD1, +0x08, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0x00, 0x4A, 0x27, 0xF2, 0x6A, 0xA2, 0x79, 0x2B, +0x01, 0x6B, 0x27, 0xF2, 0x79, 0xC2, 0x27, 0xF2, +0x7A, 0xC2, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6B, 0xEA, 0xF7, 0x18, 0x4C, 0x0A, 0xF7, +0x00, 0x4B, 0x00, 0x6A, 0x00, 0x6D, 0xA0, 0xDC, +0x60, 0xF7, 0xCE, 0x42, 0x30, 0xF0, 0x20, 0x6D, +0xA3, 0xF4, 0x00, 0x4D, 0xCC, 0x36, 0xD9, 0xE5, +0x04, 0xD6, 0xD1, 0xF6, 0xCA, 0x42, 0xC8, 0x36, +0xD9, 0xE5, 0x03, 0xD6, 0x06, 0x6E, 0xD8, 0xEA, +0x01, 0xD3, 0x12, 0xEE, 0xD9, 0xE5, 0xC7, 0xF5, +0x11, 0x4E, 0x00, 0x6D, 0x04, 0x90, 0x00, 0x6F, +0xE0, 0xD8, 0x03, 0x90, 0xE0, 0xC8, 0x44, 0x30, +0x01, 0xE5, 0xA3, 0xF5, 0x08, 0x48, 0x30, 0xF0, +0x20, 0x6F, 0x04, 0x30, 0xA3, 0xF4, 0x00, 0x4F, +0x1D, 0xE7, 0x05, 0xD7, 0x01, 0x97, 0x00, 0x68, +0x00, 0xD0, 0x02, 0xD7, 0x05, 0x90, 0x01, 0x6F, +0x44, 0x31, 0xE0, 0xC0, 0x00, 0x97, 0xA5, 0xE1, +0x24, 0x31, 0x25, 0xE7, 0xA0, 0xF3, 0x05, 0x41, +0x30, 0xF0, 0x20, 0x6F, 0xA0, 0xF3, 0x0D, 0x49, +0xA3, 0xF4, 0x00, 0x4F, 0x10, 0x30, 0x30, 0x31, +0x01, 0xE7, 0x25, 0xE7, 0x06, 0xD2, 0x02, 0x92, +0x00, 0x6F, 0xE0, 0xC8, 0x02, 0x48, 0x4A, 0xE8, +0xE0, 0xC9, 0x02, 0x49, 0xF8, 0x61, 0x00, 0x90, +0x06, 0x92, 0x01, 0x48, 0x00, 0xD0, 0x05, 0x90, +0x01, 0x48, 0x05, 0xD0, 0x02, 0x90, 0x10, 0x48, +0x02, 0xD0, 0x00, 0x90, 0x02, 0x70, 0xD6, 0x61, +0xE0, 0xC6, 0xE1, 0xC6, 0xE2, 0xC6, 0x04, 0x97, +0x03, 0x90, 0x01, 0x4D, 0x04, 0x4F, 0x04, 0xD7, +0x01, 0x97, 0x02, 0x48, 0x02, 0x75, 0x20, 0x4F, +0x03, 0xD0, 0x03, 0x4E, 0x01, 0xD7, 0xB2, 0x61, +0x01, 0x4A, 0x02, 0x72, 0x04, 0x4C, 0x40, 0x4B, +0x95, 0x61, 0x09, 0x91, 0x08, 0x90, 0x05, 0x63, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, 0xF0, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x0A, 0xF4, 0x00, 0x4C, +0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, 0x3E, 0x45, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF4, 0x00, 0x6C, +0xA3, 0xF4, 0x00, 0x4B, 0x4C, 0xEC, 0x67, 0xF3, +0x40, 0xDB, 0x82, 0x32, 0x4A, 0x32, 0x02, 0x72, +0x0A, 0x60, 0x03, 0x6C, 0x4E, 0xEC, 0x04, 0x24, +0x01, 0x72, 0x02, 0x6A, 0x05, 0x60, 0x06, 0x10, +0x27, 0xF2, 0x89, 0xC3, 0x03, 0x10, 0x01, 0x6A, +0x27, 0xF2, 0x49, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF3, 0x6C, 0x9B, 0x67, 0xF3, 0x80, 0x9A, +0x8C, 0xEB, 0x62, 0x33, 0x62, 0x33, 0x27, 0xF2, +0x68, 0xC2, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x00, 0x68, 0x05, 0xD5, 0x04, 0xD4, 0x05, 0x92, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, 0x10, 0x4B, +0xE0, 0x9B, 0xC0, 0xA2, 0x30, 0xF0, 0x20, 0x69, +0x0A, 0xF4, 0x00, 0x49, 0x91, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x3E, 0x45, 0x04, 0x93, 0x91, 0x67, +0x01, 0x6D, 0x40, 0xDB, 0x05, 0x92, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF3, 0x10, 0x4B, 0xE0, 0x9B, +0xC0, 0xA2, 0x01, 0x48, 0x80, 0x18, 0x3E, 0x45, +0x04, 0x93, 0x41, 0xDB, 0xFF, 0x6A, 0x4C, 0xE8, +0x05, 0x92, 0x08, 0x4B, 0x03, 0x70, 0x01, 0x4A, +0x05, 0xD2, 0x04, 0xD3, 0xD8, 0x61, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x69, 0xAC, 0xE9, 0x00, 0x68, 0x85, 0xF5, +0x1C, 0x6C, 0xFF, 0x6D, 0x80, 0x18, 0xF0, 0x16, +0x55, 0x72, 0x0C, 0x61, 0x00, 0x6A, 0x15, 0x21, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF2, 0xB8, 0x9A, +0x03, 0xF3, 0x08, 0x6C, 0x80, 0x18, 0xF0, 0x16, +0x00, 0x6A, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, 0x01, 0x48, +0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, +0x01, 0x6A, 0x32, 0x58, 0x01, 0x60, 0xDF, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x00, 0x6A, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x01, 0x72, +0x05, 0xD4, 0x24, 0x61, 0x44, 0x67, 0x04, 0x4A, +0x01, 0x68, 0x30, 0xF0, 0x20, 0x69, 0x04, 0xEA, +0x00, 0xF2, 0x08, 0x6A, 0x4D, 0xE8, 0xC0, 0xF3, +0x44, 0x99, 0x01, 0x6D, 0xD0, 0x67, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0x01, 0x6D, 0xAB, 0xED, 0xC1, 0x40, +0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, +0x40, 0xEA, 0x05, 0x94, 0x01, 0x6D, 0x80, 0x18, +0x3A, 0x01, 0xD2, 0x10, 0x02, 0x72, 0x01, 0x6A, +0xC0, 0xF0, 0x0E, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xCA, 0xF6, 0x4E, 0xA2, 0x00, 0x68, 0x09, 0x72, +0x0C, 0x60, 0x12, 0x72, 0x01, 0x68, 0x09, 0x60, +0x1B, 0x72, 0x02, 0x68, 0x06, 0x60, 0x24, 0x68, +0x4E, 0xE8, 0x01, 0x58, 0x18, 0x67, 0x04, 0x6A, +0x03, 0xE2, 0x05, 0x92, 0x30, 0xF0, 0x20, 0x69, +0x01, 0x6D, 0x44, 0x32, 0x07, 0xD2, 0x07, 0x93, +0x08, 0x6A, 0x03, 0xF3, 0x00, 0x6C, 0x4D, 0xEB, +0xC0, 0xF3, 0x44, 0x99, 0xC3, 0x67, 0x07, 0xD3, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0xA3, 0xF4, 0x00, 0x4C, 0x04, 0xD4, 0x04, 0x93, +0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0x27, 0xF2, +0xCE, 0xA3, 0xC3, 0xF3, 0x0C, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x05, 0x92, 0x01, 0x6C, 0x01, 0x6D, +0x04, 0x4A, 0x84, 0xEA, 0x00, 0xF3, 0x08, 0x6A, +0x4D, 0xEC, 0x06, 0xD4, 0xC0, 0xF3, 0x44, 0x99, +0x06, 0x96, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x06, 0x96, 0xC0, 0xF3, 0x44, 0x99, +0x01, 0x6D, 0xAB, 0xED, 0x01, 0x4E, 0x03, 0xF3, +0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x48, 0x9A, 0x02, 0x6C, 0x40, 0xEA, +0x05, 0x94, 0x01, 0x6D, 0x80, 0x18, 0x3A, 0x01, +0x01, 0x72, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF0, 0x18, 0x4A, 0x41, 0xE0, 0x40, 0xA0, +0x04, 0x93, 0x27, 0xF2, 0x4E, 0xC3, 0x6B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x05, 0x95, 0x42, 0xF3, +0xF0, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x0A, 0xF4, +0x00, 0x4C, 0x00, 0x6E, 0x80, 0x18, 0x3E, 0x45, +0x05, 0xD2, 0x07, 0x96, 0xC0, 0xF3, 0x44, 0x99, +0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x05, 0x94, 0xE3, 0xF7, 0x00, 0x6A, +0x04, 0x93, 0x8C, 0xEA, 0x56, 0x34, 0x96, 0x32, +0x27, 0xF2, 0x50, 0xDB, 0x1F, 0x6A, 0x8C, 0xEA, +0x02, 0x5A, 0xFF, 0x6B, 0x0B, 0x60, 0x03, 0x70, +0x03, 0x60, 0x01, 0x48, 0x6C, 0xE8, 0x49, 0x10, +0x04, 0x94, 0x01, 0x6B, 0x03, 0x68, 0xE7, 0xF5, +0x65, 0xC4, 0x43, 0x10, 0x0A, 0x5A, 0x0B, 0x61, +0x04, 0x20, 0xFF, 0x48, 0x6C, 0xE8, 0x01, 0x6B, +0x0B, 0x10, 0x04, 0x94, 0x01, 0x6B, 0xE7, 0xF5, +0x65, 0xC4, 0x01, 0x6B, 0x09, 0x10, 0x04, 0x94, +0x00, 0x6B, 0xE7, 0xF5, 0x65, 0xC4, 0x00, 0x6B, +0x03, 0x20, 0x04, 0x58, 0x01, 0x61, 0x03, 0x68, +0x30, 0xF0, 0x20, 0x6D, 0xE2, 0xF0, 0x18, 0x4D, +0xA1, 0xE0, 0xA0, 0xA0, 0x30, 0xF0, 0x20, 0x6C, +0xA3, 0xF4, 0x00, 0x4C, 0x27, 0xF2, 0xAE, 0xC4, +0x0F, 0x2B, 0x27, 0xF2, 0xCE, 0xA4, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x64, 0x9B, 0xC0, 0x36, +0x01, 0x6D, 0x4D, 0xEE, 0xE3, 0xF3, 0x08, 0x6C, +0xAB, 0xED, 0x40, 0xEB, 0x00, 0x6A, 0x0C, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x01, 0x6D, 0xE3, 0xF3, 0x08, 0x6C, 0xAB, 0xED, +0xFF, 0xF7, 0x1F, 0x6E, 0x40, 0xEA, 0x01, 0x6A, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x01, 0x6B, 0xCE, 0x17, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x00, 0x6B, 0x0B, 0xD7, 0xE0, 0xAE, 0x1F, 0xF7, +0x00, 0x6A, 0xEC, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x08, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xAE, 0x42, 0xF2, 0x58, 0x9A, 0x49, 0xE7, +0xE0, 0xA2, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF2, 0x5C, 0x9A, 0x5D, 0xE7, 0xE0, 0xA7, +0xFF, 0x6A, 0xEC, 0xEA, 0x7D, 0xE4, 0x01, 0x4B, +0x03, 0x73, 0x40, 0xC7, 0x02, 0x4E, 0xE2, 0x61, +0x25, 0x67, 0x00, 0x68, 0x0B, 0x93, 0x01, 0x6D, +0xAB, 0xED, 0x09, 0xE3, 0x80, 0xAA, 0x02, 0x48, +0x80, 0x18, 0xF0, 0x16, 0x16, 0x70, 0x40, 0xD9, +0x04, 0x49, 0xF4, 0x61, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x69, 0x42, 0xF3, +0x68, 0x9B, 0x30, 0xF0, 0x20, 0x68, 0x2C, 0xEC, +0xC0, 0xF3, 0x44, 0x98, 0xAC, 0xE9, 0x24, 0x36, +0x01, 0x6D, 0x04, 0xD4, 0xAB, 0xED, 0x03, 0xF3, +0x00, 0x6C, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, +0x08, 0x2A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x03, 0x6E, +0x07, 0x10, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x42, 0xF3, +0xB4, 0x9B, 0xC3, 0xF3, 0x14, 0x6C, 0x10, 0x6E, +0x40, 0xEA, 0x04, 0x94, 0x24, 0x31, 0x30, 0xF0, +0x20, 0x6A, 0x25, 0xE4, 0xA0, 0xF3, 0x65, 0x41, +0xA0, 0xF3, 0x0D, 0x49, 0xA3, 0xF4, 0x00, 0x4A, +0x70, 0x33, 0x30, 0x31, 0x25, 0xE2, 0x6D, 0xE2, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0xD1, 0x42, 0xF3, +0x38, 0x9A, 0x05, 0xD3, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xD1, 0x67, +0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x01, 0x6D, 0xE3, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, +0x80, 0x18, 0xF0, 0x16, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF3, 0x7C, 0x9B, 0x05, 0x94, 0x04, 0x49, +0x4C, 0xEB, 0x62, 0x33, 0x62, 0x33, 0x60, 0xCC, +0xE1, 0xF7, 0x1F, 0x6B, 0x4C, 0xEB, 0x04, 0x92, +0x02, 0x4C, 0x05, 0xD4, 0x60, 0xCA, 0x02, 0x4A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF3, +0x40, 0x9A, 0x2E, 0xEA, 0xD7, 0x2A, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, +0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, +0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0x05, 0x67, 0x01, 0x74, +0x4C, 0xE8, 0x80, 0xF0, 0x19, 0x60, 0x04, 0x24, +0x04, 0x5C, 0xA0, 0xF0, 0x10, 0x60, 0xAA, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0x47, 0xF3, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x30, 0xF0, 0x20, 0x6D, 0x47, 0xF3, 0x7C, 0xDA, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x0B, 0xF0, 0x10, 0x4C, 0x0B, 0xF0, 0x08, 0x4B, +0x0B, 0xF0, 0x04, 0x4A, 0x0A, 0xF7, 0x00, 0x4D, +0x00, 0x69, 0xC0, 0x9C, 0xA3, 0xF5, 0x08, 0x41, +0x04, 0x30, 0xC2, 0xDC, 0xC0, 0xAB, 0x05, 0xD5, +0xE5, 0x67, 0xC2, 0xCB, 0xC0, 0xA2, 0xC2, 0xC2, +0x30, 0xF0, 0x20, 0x6E, 0xA3, 0xF4, 0x00, 0x4E, +0x01, 0xE6, 0x00, 0x6E, 0x04, 0xD6, 0xA0, 0xA0, +0x24, 0x36, 0xA4, 0xC0, 0x04, 0x95, 0xD9, 0xE5, +0xA6, 0x67, 0xA0, 0xF3, 0x05, 0x4D, 0xB0, 0x35, +0x06, 0xD5, 0x07, 0xD6, 0x30, 0xF0, 0x20, 0x6E, +0xA6, 0x67, 0x06, 0x96, 0xA3, 0xF4, 0x00, 0x4D, +0x1D, 0x65, 0xD5, 0xE5, 0x07, 0x96, 0x06, 0xD5, +0xB8, 0x67, 0xA0, 0xF3, 0x0D, 0x4E, 0xD0, 0x36, +0xD9, 0xE5, 0x06, 0x95, 0x07, 0xD2, 0x40, 0xAD, +0x40, 0xF0, 0x40, 0xCD, 0x40, 0xAE, 0x02, 0x4D, +0x40, 0xF0, 0x40, 0xCE, 0x05, 0x92, 0x02, 0x4E, +0x4A, 0xED, 0xF5, 0x61, 0x04, 0x95, 0x05, 0x96, +0x07, 0x92, 0x01, 0x4D, 0x10, 0x4E, 0x02, 0x75, +0x04, 0xD5, 0x01, 0x48, 0x05, 0xD6, 0xCF, 0x61, +0x01, 0x49, 0x02, 0x6E, 0xA7, 0x67, 0x2E, 0xEE, +0x04, 0x4C, 0x02, 0x4B, 0x01, 0x4A, 0x20, 0x4D, +0xB4, 0x2E, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0x00, 0x4A, 0x00, 0x6B, 0xC7, 0xF5, 0x7D, 0xC2, +0xC7, 0xF5, 0x7E, 0xC2, 0xC7, 0xF5, 0x71, 0xC2, +0xC7, 0xF5, 0x72, 0xC2, 0xC7, 0xF5, 0x73, 0xC2, +0x67, 0xF3, 0x65, 0xC2, 0xC7, 0xF5, 0x7F, 0xC2, +0xE7, 0xF5, 0x60, 0xC2, 0xC7, 0xF5, 0x74, 0xC2, +0xC7, 0xF5, 0x75, 0xC2, 0xC7, 0xF5, 0x76, 0xC2, +0x67, 0xF3, 0x60, 0x9A, 0x01, 0x6C, 0x67, 0xF3, +0xC4, 0xC2, 0x67, 0xF3, 0xC8, 0xCA, 0x47, 0xF3, +0x90, 0xC2, 0x47, 0xF3, 0x91, 0xC2, 0x67, 0xF3, +0xCA, 0xCA, 0x47, 0xF3, 0x92, 0xC2, 0x47, 0xF3, +0x93, 0xC2, 0x47, 0xF3, 0x78, 0xDA, 0x1B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, 0xF0, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xB0, 0x67, 0x0A, 0xF4, +0x00, 0x4C, 0x58, 0x6E, 0x80, 0x18, 0x3E, 0x45, +0xC1, 0xF6, 0x1C, 0x48, 0x30, 0xF0, 0x20, 0x6B, +0x08, 0x30, 0xA3, 0xF4, 0x00, 0x4B, 0x6D, 0xE0, +0x40, 0xDB, 0x05, 0x10, 0xFE, 0x4C, 0x4C, 0xEC, +0xB0, 0x67, 0x80, 0x18, 0xF6, 0x01, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xCA, 0xF6, 0x55, 0xA2, 0x18, 0x2A, 0x01, 0x6C, +0x00, 0x6D, 0x80, 0x18, 0x3A, 0x02, 0x02, 0x6C, +0x00, 0x6D, 0x80, 0x18, 0x3A, 0x02, 0x03, 0x6C, +0x00, 0x6D, 0x80, 0x18, 0x3A, 0x02, 0x01, 0x6C, +0xA4, 0x67, 0x80, 0x18, 0x3A, 0x02, 0x02, 0x6C, +0x01, 0x6D, 0x80, 0x18, 0x3A, 0x02, 0x03, 0x6C, +0x01, 0x6D, 0x80, 0x18, 0x3A, 0x02, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x69, 0x00, 0x6A, +0x8C, 0xE9, 0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF3, 0x10, 0x4A, 0xE0, 0x9A, 0x30, 0xF0, +0x20, 0x68, 0x0A, 0xF4, 0x00, 0x48, 0x00, 0x6B, +0x90, 0x67, 0xB1, 0x67, 0xEF, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF3, 0x10, 0x4A, 0xE0, 0x9A, 0x00, 0x6B, +0x90, 0x67, 0xB1, 0x67, 0x08, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF3, 0x10, 0x4B, 0xE0, 0x9B, 0x90, 0x67, +0xB1, 0x67, 0x08, 0x6E, 0x80, 0x18, 0x3E, 0x45, +0x0B, 0x22, 0x06, 0x92, 0x01, 0x4A, 0x06, 0xD2, +0x06, 0x93, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEB, +0x2E, 0xF5, 0x10, 0x73, 0x06, 0xD3, 0xCE, 0x61, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF5, 0x63, 0x15, 0x62, +0x14, 0xD1, 0x13, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, +0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF0, +0x1C, 0x4A, 0x64, 0x67, 0x06, 0xD2, 0xC1, 0xF6, +0x14, 0x4B, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0x00, 0x4A, 0x68, 0x33, 0x6D, 0xE2, 0x08, 0xD3, +0x64, 0x67, 0x60, 0xF7, 0x0E, 0x4B, 0x6C, 0x33, +0x6D, 0xE2, 0x0A, 0xD3, 0x00, 0x6B, 0x0F, 0xD4, +0x11, 0xD5, 0x07, 0xD3, 0x07, 0x95, 0x11, 0x92, +0xFF, 0x69, 0xAC, 0xE9, 0x18, 0x2A, 0x30, 0xF0, +0x20, 0x68, 0x0A, 0xF4, 0x00, 0x48, 0x01, 0x6A, +0x90, 0x67, 0xB1, 0x67, 0xDF, 0x6E, 0x10, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x0A, 0x93, +0x90, 0x67, 0xB1, 0x67, 0x40, 0x9B, 0x58, 0x6E, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, +0xF0, 0x9A, 0x80, 0x18, 0x83, 0x45, 0x07, 0x95, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, 0x48, 0x9A, +0xA4, 0x35, 0x00, 0x69, 0x4D, 0xED, 0x0E, 0xD5, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x0E, 0x96, 0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x23, 0xF3, 0x0C, 0x6C, 0xAB, 0xED, +0x07, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF2, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, 0x18, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF2, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, 0x1C, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xC3, 0xF3, 0x0C, 0x6C, 0xAB, 0xED, +0x00, 0x6E, 0x40, 0xEA, 0xFF, 0x6A, 0x2C, 0xEA, +0x08, 0x2A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x03, 0x6E, +0x07, 0x10, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF3, 0xB4, 0x9B, 0xC0, 0xF3, +0x44, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, 0x10, 0x6E, +0x40, 0xEA, 0x0F, 0x95, 0x07, 0x93, 0x30, 0xF0, +0x20, 0x6A, 0xA4, 0x34, 0x71, 0xE4, 0x84, 0x34, +0x91, 0xE1, 0x62, 0xF3, 0x44, 0x9A, 0xA0, 0xF3, +0xA5, 0x44, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x00, 0x4B, 0xB0, 0x35, 0xA0, 0xF3, 0x0D, 0x4C, +0x46, 0xE9, 0xB5, 0xE3, 0x90, 0x34, 0x91, 0xE3, +0x0D, 0xD5, 0x61, 0x42, 0xA3, 0x42, 0x23, 0x4A, +0x09, 0xD5, 0x0C, 0xD4, 0x0B, 0xD3, 0x10, 0xD2, +0x0D, 0x95, 0x09, 0x93, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xAD, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xC0, 0x36, 0xC4, 0x36, 0xD9, 0xE3, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x0C, 0x95, +0x0B, 0x93, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0xAD, +0x01, 0x6D, 0xAB, 0xED, 0xC0, 0x36, 0xC4, 0x36, +0xD9, 0xE3, 0xC3, 0xF3, 0x18, 0x6C, 0x40, 0xEA, +0x0D, 0x95, 0x0C, 0x93, 0x09, 0x92, 0x02, 0x4D, +0x02, 0x4B, 0x0D, 0xD5, 0x0C, 0xD3, 0x0B, 0x95, +0x10, 0x93, 0x04, 0x4A, 0x04, 0x4D, 0x6A, 0xEA, +0x09, 0xD2, 0x0B, 0xD5, 0xD5, 0x61, 0xFF, 0x6A, +0x2C, 0xEA, 0x08, 0x2A, 0x08, 0x95, 0x06, 0x93, +0xC0, 0xF3, 0x44, 0x98, 0xC0, 0xA5, 0x80, 0xAB, +0x01, 0x6D, 0x08, 0x10, 0x06, 0x93, 0x08, 0x95, +0xC0, 0xF3, 0x44, 0x98, 0x80, 0xAB, 0xC1, 0xA5, +0x00, 0xF4, 0x00, 0x6D, 0xCF, 0xEE, 0x01, 0x49, +0x40, 0xEA, 0x02, 0x71, 0x5F, 0xF7, 0x0C, 0x61, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x06, 0xF0, 0x00, 0x6D, 0x03, 0xF3, 0x0C, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x07, 0x95, 0x06, 0x92, +0x08, 0x93, 0x01, 0x4D, 0x07, 0xD5, 0x02, 0x4A, +0x0A, 0x95, 0x06, 0xD2, 0x07, 0x92, 0x02, 0x4B, +0x04, 0x4D, 0x02, 0x72, 0x08, 0xD3, 0x0A, 0xD5, +0x1F, 0xF7, 0x04, 0x61, 0x15, 0x97, 0x14, 0x91, +0x13, 0x90, 0x0B, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, +0x4C, 0xEC, 0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0x00, 0x6B, 0xE7, 0xF5, +0x6C, 0xC2, 0x1A, 0x2C, 0x27, 0xF2, 0x6A, 0xA2, +0x17, 0x23, 0x67, 0xF3, 0x60, 0x9A, 0x47, 0xF3, +0x98, 0x9A, 0x00, 0x68, 0x6E, 0xEC, 0x05, 0x24, +0x47, 0xF3, 0x5C, 0x9A, 0x4E, 0xEB, 0x0C, 0x2B, +0x01, 0x68, 0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x90, 0x67, 0x8B, 0xF2, 0x6C, 0xC2, 0x80, 0x18, +0xCD, 0x02, 0x90, 0x67, 0x80, 0x18, 0x4E, 0x40, +0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF2, 0x4C, 0xA2, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xCA, 0xF6, 0x55, 0xA2, 0x05, 0x22, 0x00, 0x6C, +0x01, 0x6D, 0x80, 0x18, 0x5E, 0x03, 0x04, 0x10, +0x00, 0x6C, 0x01, 0x6D, 0x80, 0x18, 0xCD, 0x02, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x00, 0x6A, 0x7D, 0x67, 0x4C, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF3, 0x2C, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF3, 0x10, 0x4A, 0xE0, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0x0A, 0xF4, 0x00, 0x48, +0x00, 0x6D, 0x90, 0x67, 0xC5, 0x67, 0x04, 0xD1, +0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF3, 0x10, 0x4B, 0xE0, 0x9B, 0x90, 0x67, +0x01, 0x6D, 0x00, 0x6E, 0x30, 0xF0, 0x20, 0x68, +0x04, 0xD1, 0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF3, 0xA8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xE1, 0xF0, 0x18, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xE1, 0xF0, 0x1C, 0x6C, 0xAB, 0xED, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x07, 0x6D, +0xC5, 0x67, 0x83, 0xF1, 0x0C, 0x6C, 0x40, 0xEA, +0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x48, 0x9A, 0xA1, 0xF3, 0x18, 0x6F, +0xA1, 0xF7, 0x00, 0x6C, 0x08, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, +0x08, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x62, 0xF3, 0xAC, 0x9B, 0x01, 0xF2, 0x04, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xC2, 0xF2, 0x6C, 0x9A, 0xFF, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0xFE, 0x6C, 0x4C, 0xEC, 0x80, 0xC3, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF3, +0x50, 0x9A, 0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0x09, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF3, +0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF3, +0x54, 0x9A, 0x60, 0xDA, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, 0x30, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0x0A, 0xF4, 0x00, 0x48, +0x90, 0x67, 0xF1, 0x67, 0x01, 0xF2, 0x00, 0x6A, +0x00, 0x6D, 0xB8, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x83, 0x45, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF3, +0x5C, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, +0xB8, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x0E, 0xD6, 0x0F, 0xD7, +0x04, 0xD7, 0xFF, 0x68, 0xFF, 0xF7, 0x1F, 0x69, +0x0E, 0x97, 0x8C, 0xE8, 0xAC, 0xE9, 0x30, 0xF0, +0x20, 0x6C, 0x0A, 0xF4, 0x00, 0x4C, 0xB0, 0x67, +0xD1, 0x67, 0x80, 0x18, 0x83, 0x45, 0x00, 0x6A, +0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6B, 0x0E, 0x97, +0x0A, 0xF4, 0x00, 0x4B, 0x83, 0x67, 0xB0, 0x67, +0xD1, 0x67, 0x06, 0xD3, 0x80, 0x18, 0x3E, 0x45, +0x0F, 0x93, 0x6E, 0xEA, 0x1E, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, +0x40, 0xEA, 0x0F, 0x92, 0x06, 0x94, 0x0E, 0x97, +0xB0, 0x67, 0xD1, 0x67, 0x04, 0xD2, 0x80, 0x18, +0x83, 0x45, 0x07, 0x93, 0x01, 0x4B, 0xE0, 0xF3, +0x08, 0x73, 0x07, 0xD3, 0xDE, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0xA0, 0xF1, +0x00, 0x6C, 0x1F, 0xF7, 0x00, 0x6D, 0x0A, 0x6E, +0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xFF, 0x68, 0xFF, 0xF7, 0x1F, 0x69, 0x42, 0xF3, +0xF0, 0x9A, 0x8C, 0xE8, 0xAC, 0xE9, 0x30, 0xF0, +0x20, 0x6C, 0x0E, 0xD6, 0x04, 0xD6, 0x0A, 0xF4, +0x00, 0x4C, 0xB0, 0x67, 0xD1, 0x67, 0x80, 0x18, +0x83, 0x45, 0x00, 0x6A, 0x07, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF3, 0x10, 0x4A, 0x30, 0xF0, +0x20, 0x6B, 0xE0, 0x9A, 0x0A, 0xF4, 0x00, 0x4B, +0x83, 0x67, 0xB0, 0x67, 0xD1, 0x67, 0x06, 0xD3, +0x80, 0x18, 0x3E, 0x45, 0x0E, 0x93, 0x6E, 0xEA, +0x18, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF3, 0x10, 0x4B, 0x0E, 0x92, +0x06, 0x94, 0xE0, 0x9B, 0xB0, 0x67, 0xD1, 0x67, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x07, 0x92, +0x01, 0x4A, 0xE0, 0xF3, 0x08, 0x72, 0x07, 0xD2, +0xD6, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x00, 0x6A, 0x0C, 0xD4, +0x05, 0x67, 0x06, 0xD2, 0x06, 0x92, 0xFF, 0x6B, +0x30, 0xF0, 0x20, 0x69, 0x6C, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF3, 0x10, 0x4B, 0x07, 0xD2, +0xE0, 0x9B, 0x07, 0x95, 0x0A, 0xF4, 0x00, 0x49, +0x00, 0x6A, 0x91, 0x67, 0xEF, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x83, 0x45, 0x40, 0x98, 0x06, 0x94, +0x11, 0x6E, 0xCB, 0xEE, 0x4C, 0xEE, 0xDF, 0x6D, +0x80, 0x18, 0xF7, 0x03, 0x0C, 0x92, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF3, 0x10, 0x4B, 0xC1, 0xA2, +0xE0, 0x9B, 0x42, 0x98, 0x07, 0x95, 0x91, 0x67, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x0C, 0x92, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, 0x10, 0x4B, +0xC2, 0xA2, 0x07, 0x95, 0x44, 0x98, 0xE0, 0x9B, +0x91, 0x67, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x06, 0x92, 0x04, 0x48, 0x01, 0x4A, 0x02, 0x72, +0x06, 0xD2, 0xC4, 0x61, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x01, 0x6B, 0x6B, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0x0A, 0xD4, 0xCA, 0xF6, 0x6A, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF3, 0x28, 0x9A, 0x30, 0xF0, +0x20, 0x68, 0x0A, 0x93, 0x80, 0xF2, 0x4C, 0x98, +0x30, 0xF0, 0x20, 0x6C, 0x35, 0xE3, 0x4B, 0xF2, +0x08, 0x4C, 0x08, 0x6E, 0x40, 0xEA, 0x0A, 0x95, +0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, 0x20, 0x6C, +0x08, 0x4D, 0x35, 0xE5, 0x2B, 0xF0, 0x00, 0x4C, +0x44, 0x6E, 0x40, 0xEA, 0x0A, 0x92, 0x30, 0xF0, +0x20, 0x6C, 0x6B, 0xF0, 0x04, 0x4C, 0x4C, 0x4A, +0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, +0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, +0x30, 0xF0, 0x20, 0x6C, 0xAB, 0xF0, 0x08, 0x4C, +0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, +0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, +0x04, 0x92, 0x30, 0xF0, 0x20, 0x6C, 0xEB, 0xF0, +0x0C, 0x4C, 0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, +0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, +0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, 0x20, 0x6C, +0x2B, 0xF1, 0x10, 0x4C, 0x44, 0x4A, 0x04, 0xD2, +0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, +0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, +0x20, 0x6C, 0x6B, 0xF1, 0x14, 0x4C, 0x44, 0x4A, +0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, +0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, +0x30, 0xF0, 0x20, 0x6C, 0xAB, 0xF1, 0x18, 0x4C, +0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, +0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, +0x04, 0x92, 0x30, 0xF0, 0x20, 0x6C, 0xEB, 0xF1, +0x1C, 0x4C, 0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, +0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF3, +0xAC, 0x9B, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, +0x30, 0xF0, 0x20, 0x6C, 0x6B, 0xF2, 0x00, 0x4C, +0xB5, 0xE3, 0x10, 0x6E, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0xD1, 0x08, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF0, 0x70, 0xA2, 0x80, 0xF0, +0x19, 0x23, 0x30, 0xF0, 0x20, 0x6C, 0x00, 0x6B, +0xA2, 0xF2, 0x94, 0x9C, 0x42, 0xF0, 0x70, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0x27, 0xF2, 0x7B, 0xC2, 0x47, 0xF2, 0x80, 0xDA, +0x27, 0xF2, 0x79, 0xC2, 0x27, 0xF2, 0x7D, 0xC2, +0x47, 0xF2, 0x88, 0xDA, 0x27, 0xF2, 0x7C, 0xC2, +0x47, 0xF2, 0x84, 0xDA, 0x27, 0xF2, 0x7A, 0xC2, +0x27, 0xF2, 0x7E, 0xC2, 0x47, 0xF2, 0x8C, 0xDA, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6C, +0x4B, 0xF2, 0x08, 0x4C, 0x4B, 0xF0, 0x02, 0x4B, +0x00, 0x6A, 0x00, 0x6D, 0xA0, 0xDC, 0xB0, 0xF7, +0xC8, 0x42, 0x30, 0xF0, 0x20, 0x6D, 0xA3, 0xF4, +0x00, 0x4D, 0xCC, 0x36, 0xD9, 0xE5, 0x04, 0xD6, +0x61, 0xF7, 0xCE, 0x42, 0xC8, 0x36, 0xD9, 0xE5, +0x03, 0xD6, 0x06, 0x6E, 0xD8, 0xEA, 0x01, 0xD3, +0x12, 0xEE, 0xD9, 0xE5, 0xC7, 0xF5, 0x11, 0x4E, +0x00, 0x6D, 0x04, 0x90, 0x00, 0x6F, 0xE0, 0xD8, +0x03, 0x90, 0xE0, 0xC8, 0x44, 0x30, 0x01, 0xE5, +0xC3, 0xF6, 0x10, 0x48, 0x30, 0xF0, 0x20, 0x6F, +0x04, 0x30, 0xA3, 0xF4, 0x00, 0x4F, 0x1D, 0xE7, +0x05, 0xD7, 0x01, 0x97, 0x00, 0x68, 0x00, 0xD0, +0x02, 0xD7, 0x05, 0x90, 0x00, 0x6F, 0x22, 0x69, +0xE0, 0xC0, 0x00, 0x97, 0x06, 0xD2, 0x38, 0xEF, +0x44, 0x6F, 0x12, 0xE9, 0xF8, 0xED, 0x12, 0xEF, +0xE5, 0xE1, 0x88, 0x6F, 0xF8, 0xEA, 0x12, 0xEF, +0xE5, 0xE1, 0x30, 0xF0, 0x20, 0x6F, 0x87, 0xF3, +0x00, 0x41, 0xA3, 0xF4, 0x00, 0x4F, 0x87, 0xF4, +0x10, 0x49, 0x01, 0xE7, 0x25, 0xE7, 0x02, 0x92, +0x00, 0x6F, 0xE0, 0xC8, 0x02, 0x48, 0x4A, 0xE8, +0xE0, 0xC9, 0x02, 0x49, 0xF8, 0x61, 0x00, 0x90, +0x06, 0x92, 0x01, 0x48, 0x00, 0xD0, 0x05, 0x90, +0x01, 0x48, 0x05, 0xD0, 0x02, 0x90, 0x22, 0x48, +0x02, 0xD0, 0x00, 0x90, 0x02, 0x70, 0xD1, 0x61, +0xE0, 0xC6, 0xE1, 0xC6, 0xE2, 0xC6, 0x04, 0x97, +0x03, 0x90, 0x01, 0x4D, 0x04, 0x4F, 0x04, 0xD7, +0x01, 0x97, 0x02, 0x48, 0x02, 0x75, 0x44, 0x4F, +0x03, 0xD0, 0x03, 0x4E, 0x01, 0xD7, 0xAD, 0x61, +0x01, 0x4A, 0x7F, 0x4B, 0x02, 0x72, 0x04, 0x4C, +0x09, 0x4B, 0x8F, 0x61, 0x09, 0x91, 0x08, 0x90, +0x05, 0x63, 0x20, 0xE8, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x4C, 0xED, +0x4C, 0xEC, 0xCC, 0xEA, 0x4B, 0xEA, 0xC0, 0xF7, +0x42, 0x32, 0x30, 0xF0, 0x20, 0x68, 0x44, 0x32, +0xC0, 0xF3, 0x64, 0x98, 0x07, 0xD5, 0x04, 0xD2, +0xA4, 0x36, 0x08, 0x6A, 0x01, 0x6D, 0x06, 0xD4, +0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEB, 0x06, 0x92, 0x0F, 0x2A, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x62, 0xF3, +0xA4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x03, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF3, +0x50, 0x9A, 0x0E, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x62, 0xF3, 0xA4, 0x9B, +0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF3, 0x54, 0x9A, +0x05, 0xD2, 0x06, 0x92, 0x22, 0x69, 0x07, 0x93, +0x38, 0xEA, 0x44, 0x6A, 0x00, 0x68, 0x12, 0xE9, +0x58, 0xEB, 0x04, 0x93, 0x12, 0xEA, 0x45, 0xE1, +0x88, 0x6A, 0x58, 0xEB, 0x12, 0xEA, 0x45, 0xE1, +0x30, 0xF0, 0x20, 0x6A, 0x87, 0xF3, 0x00, 0x49, +0xA3, 0xF4, 0x00, 0x4A, 0x25, 0xE2, 0xC0, 0xA9, +0x05, 0x94, 0x08, 0x32, 0xC0, 0x36, 0x8D, 0xEE, +0x4D, 0xEE, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, +0xAB, 0xED, 0x02, 0x4E, 0x01, 0x48, 0x40, 0xEA, +0x11, 0x70, 0x02, 0x49, 0xEC, 0x61, 0x06, 0x92, +0x22, 0x6B, 0x07, 0x94, 0x78, 0xEA, 0x44, 0x6A, +0x00, 0x69, 0x12, 0xEB, 0x58, 0xEC, 0x04, 0x94, +0x12, 0xEA, 0x4D, 0xE3, 0x88, 0x6A, 0x58, 0xEC, +0x12, 0xEA, 0x4D, 0xE3, 0x30, 0xF0, 0x20, 0x6A, +0x87, 0xF4, 0x10, 0x4B, 0xA3, 0xF4, 0x00, 0x4A, +0x69, 0xE2, 0x04, 0xD2, 0x04, 0x92, 0x05, 0x93, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xAA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xC0, 0x36, 0x6D, 0xEE, +0x28, 0x33, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x94, 0x01, 0x49, +0x11, 0x71, 0x02, 0x4C, 0x04, 0xD4, 0xEA, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x42, 0xF3, 0xD8, 0x9B, 0x01, 0x6D, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x62, 0xF3, +0xA4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, +0x61, 0xF7, 0x88, 0x42, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF6, 0x18, 0x4A, 0xA3, 0xF4, 0x00, 0x4B, +0x88, 0x34, 0x44, 0x32, 0x91, 0xE3, 0x4D, 0xE3, +0x00, 0x68, 0x04, 0x4B, 0x04, 0xD4, 0x05, 0xD3, +0x06, 0xD0, 0x07, 0xD0, 0x08, 0xD0, 0x04, 0x95, +0x01, 0x6C, 0x08, 0x93, 0x40, 0xA5, 0x30, 0xF0, +0x20, 0x69, 0x04, 0x36, 0x8C, 0xEA, 0x44, 0xE8, +0x4D, 0xE3, 0x41, 0xA5, 0x05, 0x95, 0x08, 0xD3, +0x8C, 0xEA, 0x07, 0x94, 0x64, 0x40, 0x44, 0xEB, +0x51, 0xE4, 0x40, 0xA5, 0x07, 0xD4, 0x03, 0x6C, +0x64, 0x33, 0x8C, 0xEA, 0x44, 0xEB, 0x04, 0x94, +0x06, 0x93, 0x01, 0x6D, 0x8C, 0xAC, 0x4D, 0xE3, +0x06, 0xD3, 0xC0, 0xF3, 0x64, 0x99, 0x08, 0x6A, +0x4D, 0xEE, 0x09, 0xD4, 0xAB, 0xED, 0x03, 0xF3, +0x00, 0x6C, 0x40, 0xEB, 0x08, 0x95, 0x07, 0x96, +0x06, 0x93, 0xC0, 0xF3, 0x44, 0x99, 0xAD, 0xEE, +0x6D, 0xEE, 0xE3, 0xF3, 0x10, 0x6C, 0xFF, 0xF7, +0x1F, 0x6D, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, +0x09, 0x96, 0x01, 0x6D, 0xE3, 0xF3, 0x08, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x04, 0x94, 0x05, 0x95, +0x01, 0x48, 0x02, 0x4C, 0x01, 0x4D, 0x02, 0x70, +0x04, 0xD4, 0x05, 0xD5, 0xBC, 0x61, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x05, 0xD2, 0x00, 0x6A, +0x04, 0xD2, 0x04, 0x92, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x64, 0x98, 0x01, 0x69, 0x2B, 0xE9, +0x44, 0x36, 0x08, 0x6A, 0x4D, 0xEE, 0x03, 0xF3, +0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEB, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x82, 0xF3, +0xD8, 0x9B, 0x03, 0xF3, 0x04, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x05, 0x92, 0x07, 0x2A, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, 0xB1, 0x67, +0x80, 0x6E, 0x06, 0x10, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x08, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, 0x01, 0x69, +0xC0, 0xF3, 0x44, 0x98, 0x2B, 0xE9, 0x03, 0xF3, +0x0C, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, 0xC4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x14, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF3, +0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA2, 0xF3, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x1C, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xA2, 0xF3, 0xC4, 0x9B, 0x23, 0xF3, +0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, +0x01, 0x4A, 0x02, 0x72, 0x04, 0xD2, 0x99, 0x61, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x00, 0xF2, 0x1C, 0x22, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, +0x82, 0xF3, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF6, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF3, 0xAC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF4, 0x10, 0x69, +0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC2, 0xF2, 0xA4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF2, 0xB4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, +0x14, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF5, 0x18, 0x6C, 0xE1, 0xF7, +0x18, 0x6D, 0xE0, 0xF1, 0x1F, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, 0x14, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, +0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC2, 0xF2, 0x14, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x68, 0xF1, 0x04, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF3, 0x28, 0x9A, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF0, 0x0C, 0x6C, 0xB1, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x08, 0xF1, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, 0x0C, 0x6C, +0x80, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x68, 0xF1, 0x0C, 0x6C, 0x80, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF0, 0x0C, 0x6C, 0x03, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, +0x0C, 0x6C, 0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x00, 0x6C, +0x03, 0x6D, 0x02, 0x6E, 0x40, 0xEA, 0x01, 0x69, +0xC0, 0xF3, 0x44, 0x98, 0x2B, 0xE9, 0x23, 0xF4, +0x18, 0x6C, 0xB1, 0x67, 0xD1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF3, 0x08, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA2, 0xF3, 0x08, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA2, 0xF3, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF3, +0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF3, 0x14, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA2, 0xF3, 0x18, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA2, 0xF3, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF3, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF3, 0x04, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC2, 0xF3, 0x08, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF3, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF3, +0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF3, 0x14, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC2, 0xF3, 0x18, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF3, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, 0x04, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF3, 0x04, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA2, 0xF3, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF3, +0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF3, 0x0C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA2, 0xF3, 0x10, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA2, 0xF3, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF3, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF3, 0x1C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC2, 0xF3, 0x00, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF3, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF3, +0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF3, 0x0C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC2, 0xF3, 0x10, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF3, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF3, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF3, 0x1C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF3, 0x00, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF3, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, +0x04, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0xC0, 0x9B, 0xC9, 0x12, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0x04, 0xD2, 0xC7, 0xF5, 0x50, 0xA2, 0xE0, 0xF0, +0x1B, 0x22, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF3, 0xC8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF4, +0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x04, 0x93, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, 0x00, 0x6C, +0x27, 0xF2, 0xD6, 0xA3, 0x04, 0x6B, 0x0E, 0xF0, +0x00, 0x6D, 0x67, 0xEE, 0xC3, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, 0x0C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, +0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0x27, 0xF2, +0xD6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF3, 0x10, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x23, 0xF0, +0x10, 0x6C, 0x27, 0xF2, 0xD6, 0xA2, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, 0x14, 0x4B, +0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, +0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0x27, 0xF2, +0xD6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF3, 0x18, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x23, 0xF0, +0x10, 0x6C, 0x27, 0xF2, 0xD6, 0xA2, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, 0x1C, 0x4B, +0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x02, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, +0x23, 0xF0, 0x10, 0x6C, 0x27, 0xF2, 0xD6, 0xA2, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, +0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF4, +0x04, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, 0x0C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, +0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, 0x27, 0xF2, +0xD6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF3, 0x10, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x28, 0xF1, +0x10, 0x6C, 0x27, 0xF2, 0xD6, 0xA2, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, 0x14, 0x4B, +0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, +0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, 0x27, 0xF2, +0xD6, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF3, 0x18, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x28, 0xF1, +0x10, 0x6C, 0x27, 0xF2, 0xD6, 0xA2, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, 0x1C, 0x4B, +0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x02, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, +0x28, 0xF1, 0x10, 0x6C, 0x27, 0xF2, 0xD6, 0xA2, +0xB1, 0x67, 0xC0, 0xF3, 0x44, 0x98, 0x67, 0xEE, +0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF4, +0x04, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x63, 0x11, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, +0xE2, 0xF3, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x02, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF4, +0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF4, 0x14, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x02, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF4, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF4, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF4, +0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF4, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF4, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF3, 0x0C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x02, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF4, +0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF4, 0x14, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x02, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF4, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF4, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF4, +0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF4, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF4, +0x1C, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x30, 0xF0, +0x20, 0x68, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF4, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, +0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF5, 0x18, 0x6C, 0xE1, 0xF7, +0x18, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF2, 0x34, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0x63, 0xF0, 0x04, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x68, 0xF1, 0x04, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF3, +0x28, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x0C, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, 0x0C, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x63, 0xF0, 0x0C, 0x6C, 0x80, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x68, 0xF1, 0x0C, 0x6C, 0x80, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0x6D, +0xC5, 0x67, 0x03, 0xF0, 0x0C, 0x6C, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0x6D, 0xC5, 0x67, +0x08, 0xF1, 0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF2, 0x00, 0x6C, 0x03, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x06, 0x67, 0x42, 0xF4, +0xC4, 0x9B, 0x09, 0xD5, 0x01, 0x6D, 0x24, 0x67, +0x0B, 0xD7, 0x63, 0xF5, 0x10, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x00, 0x6A, 0x80, 0x98, 0x1F, 0xF7, +0x00, 0x6B, 0x8C, 0xEB, 0x02, 0xF0, 0x00, 0x73, +0x01, 0x60, 0x09, 0x2B, 0x30, 0xF0, 0x20, 0x6C, +0x60, 0x98, 0x42, 0xF2, 0x98, 0x9C, 0x6D, 0xE4, +0x80, 0x99, 0x80, 0xDB, 0x07, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF2, 0x7C, 0x9B, 0x91, 0xE3, +0x60, 0x99, 0x60, 0xDC, 0x01, 0x4A, 0xFF, 0x6B, +0x6C, 0xEA, 0x03, 0x72, 0x04, 0x48, 0x04, 0x49, +0xE1, 0x61, 0x00, 0x68, 0x0B, 0x92, 0x30, 0xF0, +0x20, 0x69, 0x01, 0x6D, 0x11, 0xE2, 0x09, 0x92, +0x80, 0xAC, 0xAB, 0xED, 0x0D, 0xE2, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x99, 0x04, 0x48, 0x40, 0xEA, +0x2C, 0x70, 0xF0, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x4B, 0xF2, 0x41, 0xA2, 0x01, 0x72, 0x0A, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, +0x03, 0xF0, 0x0C, 0x6C, 0xC2, 0xF2, 0xB4, 0x9B, +0x00, 0x6E, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x99, 0xC2, 0xF2, 0xB4, 0x9B, +0x03, 0xF0, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x4B, 0xF2, 0x43, 0xA2, +0x01, 0x72, 0x0C, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, +0x08, 0xF1, 0x0C, 0x6C, 0xC2, 0xF2, 0xB4, 0x9B, +0x00, 0x6E, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, +0xC2, 0xF2, 0xB4, 0x9B, 0x08, 0xF1, 0x0C, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF2, 0x50, 0xA2, 0x1E, 0x22, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF2, +0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF6, +0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x02, 0xF3, 0x2C, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0xA3, 0xF0, 0x04, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA8, 0xF1, 0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF2, +0x48, 0x9A, 0x01, 0x6B, 0x6B, 0xEB, 0x30, 0xF0, +0x20, 0x68, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x82, 0xF3, 0xA4, 0x9B, +0x23, 0xF6, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x42, 0xF4, 0xA8, 0x9B, 0xC3, 0xF4, 0x10, 0x6C, +0x07, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF2, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF5, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6E, 0xCB, 0xEE, +0xA6, 0x67, 0x23, 0xF4, 0x18, 0x6C, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x14, 0x6C, +0x00, 0xF3, 0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x42, 0xF4, 0xAC, 0x9B, 0x21, 0xF0, 0x04, 0x6C, +0x03, 0x6E, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, 0xE8, 0x9B, +0xFF, 0x6A, 0x04, 0x6B, 0xC0, 0xA7, 0x4C, 0xED, +0x4C, 0xEC, 0x4C, 0xEE, 0xCD, 0xEB, 0x4C, 0xEB, +0x60, 0xC7, 0x06, 0x2D, 0x07, 0x6B, 0x07, 0x24, +0x01, 0x74, 0x07, 0x6B, 0x12, 0x61, 0x0C, 0x10, +0x07, 0x2C, 0x79, 0x6B, 0x6B, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF4, 0x50, 0x9A, 0x08, 0x10, +0x01, 0x74, 0x07, 0x61, 0x79, 0x6B, 0x6B, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF4, 0x54, 0x9A, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF2, +0x48, 0x9A, 0xC0, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6E, 0x30, 0xF0, 0x20, 0x68, 0xCC, 0xEC, +0xC0, 0xF3, 0x44, 0x98, 0xAC, 0xEE, 0x01, 0x69, +0x08, 0x6B, 0x2B, 0xE9, 0xC4, 0x36, 0x04, 0xD4, +0xB1, 0x67, 0x03, 0xF3, 0x00, 0x6C, 0x6D, 0xEE, +0x40, 0xEA, 0x04, 0x92, 0x12, 0x2A, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, +0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, +0x18, 0x6C, 0xB1, 0x67, 0x42, 0xF4, 0xD8, 0x9B, +0x11, 0x10, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x42, 0xF4, 0xDC, 0x9B, 0xC3, 0xF3, +0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF3, 0xD8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x30, 0xF0, 0x20, 0x68, +0xC3, 0xF3, 0x18, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, +0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, +0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x00, 0x68, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF4, 0xA0, 0x9A, +0x02, 0xF7, 0x00, 0x6C, 0x80, 0x18, 0x68, 0x17, +0x20, 0x6B, 0x4C, 0xEB, 0x0A, 0x2B, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, +0x01, 0x48, 0x40, 0xEA, 0x0A, 0x70, 0xEC, 0x61, +0x0A, 0x68, 0x50, 0x67, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x68, +0x8C, 0xE8, 0x80, 0x18, 0xD8, 0x08, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF4, 0xC4, 0x9A, 0x01, 0x69, +0x2B, 0xE9, 0x0D, 0xEE, 0xB1, 0x67, 0x02, 0xF7, +0x00, 0x6C, 0x80, 0x18, 0x7D, 0x17, 0xB1, 0x67, +0x02, 0xF7, 0x08, 0x6C, 0x80, 0x18, 0x68, 0x17, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0xF7, 0x1F, 0x68, +0x25, 0x67, 0x0C, 0xD6, 0x8C, 0xE8, 0x37, 0x25, +0x61, 0x45, 0x00, 0x6A, 0x0E, 0x2B, 0x80, 0x18, +0xD8, 0x08, 0x01, 0x69, 0x0C, 0x96, 0x2B, 0xE9, +0x02, 0xF7, 0x04, 0x6C, 0xB1, 0x67, 0x80, 0x18, +0x7D, 0x17, 0x02, 0xF7, 0x00, 0x6C, 0xB1, 0x67, +0x1F, 0x10, 0x71, 0x67, 0x66, 0xEA, 0x01, 0x6C, +0x8C, 0xEB, 0x04, 0x2B, 0x01, 0x4A, 0x20, 0x72, +0xF8, 0x61, 0x00, 0x6A, 0x90, 0x67, 0x04, 0xD2, +0x2F, 0xE9, 0x80, 0x18, 0xE7, 0x08, 0x4C, 0xE9, +0x80, 0x18, 0xD8, 0x08, 0x0C, 0x96, 0x04, 0x92, +0x01, 0x6D, 0x02, 0xF7, 0x04, 0x6C, 0xC4, 0xEA, +0xAB, 0xED, 0x2D, 0xEE, 0x80, 0x18, 0x7D, 0x17, +0x01, 0x6D, 0x02, 0xF7, 0x00, 0x6C, 0xAB, 0xED, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF4, 0xC8, 0x9A, +0x0D, 0xEE, 0x80, 0x18, 0x7D, 0x17, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x38, 0x6C, 0x18, 0xF0, +0x00, 0x6D, 0x01, 0x6E, 0x80, 0x18, 0xF7, 0x08, +0x38, 0x6C, 0x01, 0xF4, 0x00, 0x6D, 0x01, 0x6E, +0x80, 0x18, 0xF7, 0x08, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x38, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x03, 0x6E, +0x80, 0x18, 0xF7, 0x08, 0x38, 0x6C, 0x00, 0xF3, +0x00, 0x6D, 0x03, 0x6E, 0x80, 0x18, 0xF7, 0x08, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, +0x05, 0x22, 0x80, 0x18, 0x23, 0x09, 0x80, 0x18, +0x1A, 0x09, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x8B, 0xF2, 0xC8, 0x9A, 0x01, 0x6D, 0x38, 0x6C, +0xAB, 0xED, 0x80, 0x18, 0xF7, 0x08, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x00, 0x6A, 0x09, 0xD5, +0x27, 0x67, 0xA0, 0x9E, 0x1F, 0xF7, 0x00, 0x6B, +0xAC, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, +0x08, 0x2B, 0x30, 0xF0, 0x20, 0x6D, 0x60, 0x9E, +0x42, 0xF2, 0xB8, 0x9D, 0x6D, 0xE5, 0x60, 0x9B, +0x06, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF2, +0x7C, 0x9B, 0xB5, 0xE3, 0x60, 0x9D, 0x55, 0xE4, +0x04, 0x4A, 0x0C, 0x72, 0x60, 0xDD, 0x04, 0x4E, +0xE4, 0x61, 0x00, 0x68, 0x09, 0xE1, 0x80, 0xAA, +0x01, 0x6D, 0xAB, 0xED, 0x80, 0x18, 0xF0, 0x16, +0x09, 0x94, 0x0D, 0xE4, 0x04, 0x48, 0x2C, 0x70, +0x40, 0xDB, 0xF4, 0x61, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0x4C, 0xED, 0x4C, 0xEC, 0xCC, 0xEA, +0x4B, 0xEA, 0xC0, 0xF7, 0x42, 0x32, 0x30, 0xF0, +0x20, 0x68, 0x44, 0x32, 0xC0, 0xF3, 0x64, 0x98, +0x06, 0xD5, 0x04, 0xD2, 0xA4, 0x36, 0x08, 0x6A, +0x01, 0x6D, 0x05, 0xD4, 0x4D, 0xEE, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, 0x05, 0x92, +0x0A, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x62, 0xF3, +0xA4, 0x9B, 0x03, 0x6E, 0x09, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x62, 0xF3, +0xA4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF4, 0xAC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF3, 0x14, 0x69, 0x91, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x42, 0xF3, 0xB4, 0x9B, +0x91, 0x67, 0x10, 0x6E, 0x40, 0xEA, 0x05, 0x92, +0x22, 0x6B, 0x06, 0x94, 0x78, 0xEA, 0x44, 0x6A, +0x00, 0x69, 0x12, 0xEB, 0x58, 0xEC, 0x04, 0x94, +0x12, 0xEA, 0x4D, 0xE3, 0x88, 0x6A, 0x58, 0xEC, +0x12, 0xEA, 0x4D, 0xE3, 0x30, 0xF0, 0x20, 0x6A, +0x87, 0xF3, 0x80, 0x43, 0xA3, 0xF4, 0x00, 0x4A, +0x87, 0xF4, 0x10, 0x4B, 0x91, 0xE2, 0x6D, 0xE2, +0x05, 0xD4, 0x04, 0xD3, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF3, 0x78, 0x9B, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0x36, 0x01, 0x6D, +0x6D, 0xEE, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x01, 0x6D, 0xE3, 0xF3, 0x1C, 0x6C, +0xAB, 0xED, 0x80, 0x18, 0xF0, 0x16, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF3, 0x7C, 0x9B, 0x05, 0x94, +0x01, 0x49, 0x4C, 0xEB, 0x62, 0x33, 0x62, 0x33, +0x60, 0xCC, 0xE1, 0xF7, 0x1F, 0x6B, 0x4C, 0xEB, +0x04, 0x92, 0x02, 0x4C, 0x11, 0x71, 0x60, 0xCA, +0x02, 0x4A, 0x05, 0xD4, 0x04, 0xD2, 0xD6, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, 0xA4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x00, 0x6E, 0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6A, 0x24, 0x67, +0xA3, 0xF4, 0x00, 0x48, 0x4C, 0xED, 0x4C, 0xE9, +0x27, 0xF2, 0x49, 0xA0, 0x06, 0xD5, 0x24, 0x36, +0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x64, 0x9A, 0x01, 0x6D, 0x08, 0x6A, 0x4D, 0xEE, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, 0xA4, 0x9B, +0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x27, 0xF2, 0x48, 0xA0, 0x4B, 0x2A, 0x06, 0x92, +0x03, 0x22, 0x12, 0x6A, 0x27, 0xF2, 0x4E, 0xC0, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, +0xCA, 0xF6, 0xCE, 0xA3, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x40, 0xEA, +0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF3, 0xEC, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0x0A, 0xF4, 0x00, 0x4B, 0x83, 0x67, 0xB1, 0x67, +0xDE, 0x6E, 0x06, 0xD3, 0x80, 0x18, 0x83, 0x45, +0x06, 0x94, 0xE1, 0xF7, 0x1F, 0x6F, 0x20, 0x6A, +0xB1, 0x67, 0x56, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x83, 0x45, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x18, 0x6C, 0x02, 0x6D, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF4, 0xD0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, +0x04, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x18, 0x6E, 0x49, 0x10, 0x06, 0x92, 0x03, 0x22, +0x12, 0x6A, 0x27, 0xF2, 0x4E, 0xC0, 0x01, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, +0xEC, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x0A, 0xF4, +0x00, 0x48, 0x90, 0x67, 0xB1, 0x67, 0xDE, 0x6E, +0x80, 0x18, 0x83, 0x45, 0xE1, 0xF7, 0x1F, 0x6F, +0x90, 0x67, 0x00, 0x6A, 0xB1, 0x67, 0x56, 0x6E, +0x30, 0xF0, 0x20, 0x68, 0x04, 0xD2, 0x80, 0x18, +0x83, 0x45, 0x30, 0xF0, 0x20, 0x6B, 0xCA, 0xF6, +0xCE, 0xA3, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, +0x0C, 0x6C, 0xFF, 0x6D, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x18, 0x6C, 0x02, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF4, 0xD4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x23, 0xF3, 0x04, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x0C, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, +0x07, 0x93, 0x06, 0x73, 0x0A, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, +0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x08, 0x6E, +0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x06, 0xD2, 0xA3, 0xF4, +0x00, 0x4B, 0x27, 0xF2, 0x49, 0xA3, 0x07, 0xD3, +0x06, 0x93, 0x30, 0xF0, 0x20, 0x68, 0x08, 0xD2, +0x64, 0x31, 0x08, 0x6A, 0x4D, 0xE9, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xD1, 0x67, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF4, 0x00, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x3F, 0x6D, 0xC5, 0x67, 0xC3, 0xF3, 0x0C, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xD1, 0x67, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF4, +0x00, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, 0xA4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x00, 0x69, +0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0xE0, 0xF3, 0x00, 0x6D, +0x12, 0x6E, 0x40, 0xEA, 0x07, 0x93, 0x27, 0xF2, +0x48, 0xA3, 0x11, 0x2A, 0x01, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x69, +0x06, 0x95, 0x42, 0xF3, 0xEC, 0x9A, 0x0A, 0xF4, +0x00, 0x49, 0x91, 0x67, 0xDE, 0x6E, 0x80, 0x18, +0x83, 0x45, 0x20, 0x6A, 0x10, 0x10, 0x01, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x69, 0x06, 0x95, 0x42, 0xF3, 0xEC, 0x9A, +0x0A, 0xF4, 0x00, 0x49, 0x91, 0x67, 0xDE, 0x6E, +0x80, 0x18, 0x83, 0x45, 0x00, 0x6A, 0x06, 0x95, +0x91, 0x67, 0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, +0x12, 0x6E, 0x40, 0xEA, 0x08, 0x92, 0x06, 0x72, +0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, +0x1F, 0x6D, 0x08, 0x6E, 0x09, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, +0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x38, 0x6E, +0x40, 0xEA, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0xFF, 0x68, 0x27, 0xF2, +0x69, 0xA2, 0x8C, 0xE8, 0x06, 0xD2, 0x04, 0x32, +0x07, 0xD2, 0x08, 0xD3, 0x07, 0x93, 0x30, 0xF0, +0x20, 0x69, 0x08, 0x6A, 0x4D, 0xEB, 0xC0, 0xF3, +0x44, 0x99, 0x01, 0x6D, 0xC3, 0x67, 0x07, 0xD3, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF4, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x99, 0xA3, 0xF3, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, +0x3F, 0x6D, 0xC5, 0x67, 0xC3, 0xF3, 0x0C, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x07, 0x96, +0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, +0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, +0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0x23, 0xF3, 0x00, 0x6C, 0xE0, 0xF3, +0x00, 0x6D, 0x12, 0x6E, 0x40, 0xEA, 0x06, 0x92, +0x27, 0xF2, 0x48, 0xA2, 0x06, 0xD2, 0x5B, 0x2A, +0x07, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF4, 0xF8, 0x9A, 0x30, 0xF0, 0x20, 0x69, +0x0A, 0xF4, 0x00, 0x49, 0x91, 0x67, 0xB0, 0x67, +0x00, 0x6E, 0x80, 0x18, 0x83, 0x45, 0x01, 0x6B, +0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, 0x20, 0x6F, +0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, 0x01, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, 0x00, 0xF4, +0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, 0x0C, 0x4A, +0xE0, 0x9A, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, +0xDE, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, +0x10, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, +0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x83, 0x45, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, +0xEF, 0x6E, 0x04, 0x6F, 0x04, 0xD3, 0x80, 0x18, +0x83, 0x45, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, +0x0C, 0x4B, 0xE0, 0x9B, 0x06, 0x92, 0x91, 0x67, +0xB0, 0x67, 0x18, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x83, 0x45, 0x06, 0x92, 0x91, 0x67, 0xB0, 0x67, +0x33, 0x6E, 0x01, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x83, 0x45, 0x04, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x08, 0x6E, 0x70, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x83, 0x45, 0x06, 0x93, 0x5A, 0x10, 0x07, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF4, +0xF8, 0x9A, 0x30, 0xF0, 0x20, 0x69, 0x0A, 0xF4, +0x00, 0x49, 0x91, 0x67, 0xB0, 0x67, 0x00, 0x6E, +0x80, 0x18, 0x83, 0x45, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x9E, 0x6E, 0x20, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x83, 0x45, 0x01, 0x6B, 0x91, 0x67, +0xB0, 0x67, 0x9E, 0x6E, 0x00, 0xF4, 0x00, 0x6F, +0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF3, 0x0C, 0x4B, 0xE0, 0x9B, +0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x00, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, 0xE1, 0xF7, +0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, +0x04, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, 0x0C, 0x4B, +0xE0, 0x9B, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x18, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, +0xE2, 0x67, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x04, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, +0x70, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x00, 0x6B, 0x91, 0x67, 0x30, 0xF0, 0x20, 0x69, +0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, 0x0A, 0xF4, +0x00, 0x49, 0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, +0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x57, 0x6E, +0x01, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, +0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x30, 0xF0, 0x20, 0x6A, 0xCA, 0xF6, 0x48, 0xA2, +0x01, 0x22, 0x20, 0x6A, 0x7F, 0x6F, 0x91, 0x67, +0xB0, 0x67, 0x33, 0x6E, 0x30, 0xF0, 0x20, 0x69, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0xC0, 0xF3, +0x44, 0x99, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, +0x09, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, +0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x38, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0xB0, 0x67, 0x10, 0x6F, 0x01, 0x6A, 0x0A, 0xF4, +0x00, 0x4C, 0xEF, 0x6E, 0x30, 0xF0, 0x20, 0x68, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x12, 0x6E, +0x40, 0xEA, 0x08, 0x92, 0x06, 0x72, 0x08, 0x61, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x0C, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x08, 0x6E, 0x07, 0x10, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x0C, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0x27, 0xF2, 0x69, 0xA2, +0x30, 0xF0, 0x20, 0x68, 0xFF, 0x69, 0x8C, 0xE9, +0x07, 0xD3, 0xC0, 0xF3, 0x64, 0x98, 0x06, 0xD2, +0x24, 0x36, 0x08, 0x6A, 0x01, 0x6D, 0x4D, 0xEE, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF4, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x62, 0xF4, 0xDC, 0x9B, +0x01, 0x6D, 0x23, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x06, 0x93, 0x27, 0xF2, 0x48, 0xA3, +0x03, 0x2A, 0x81, 0xF0, 0x07, 0x4A, 0x02, 0x10, +0xC1, 0xF0, 0x0A, 0x6A, 0x30, 0xF0, 0x20, 0x6C, +0x0A, 0xF4, 0x00, 0x4C, 0xB1, 0x67, 0x56, 0x6E, +0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x83, 0x45, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, +0x0C, 0x6C, 0xFF, 0x6D, 0x09, 0x6E, 0x40, 0xEA, +0x07, 0x92, 0x06, 0x72, 0x0A, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, +0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x08, 0x6E, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, +0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF3, +0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0xFF, 0x68, 0x8C, 0xE8, +0x27, 0xF2, 0x69, 0xA2, 0x06, 0xD2, 0x04, 0x32, +0x07, 0xD2, 0x08, 0xD3, 0x07, 0x93, 0x30, 0xF0, +0x20, 0x69, 0x08, 0x6A, 0x4D, 0xEB, 0xC0, 0xF3, +0x44, 0x99, 0x01, 0x6D, 0xC3, 0x67, 0x07, 0xD3, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF4, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x99, 0xA3, 0xF3, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, +0x3F, 0x6D, 0xC5, 0x67, 0xC3, 0xF3, 0x0C, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x07, 0x96, +0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, +0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, +0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0x30, 0xF0, 0x20, 0x69, 0x0A, 0xF4, +0x00, 0x49, 0x23, 0xF3, 0x00, 0x6C, 0xE0, 0xF3, +0x00, 0x6D, 0x12, 0x6E, 0x40, 0xEA, 0x00, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0xDF, 0x6E, 0x10, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x00, 0x6B, +0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, 0x20, 0x6F, +0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, 0x00, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, 0x00, 0xF4, +0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x06, 0x93, 0x27, 0xF2, 0x68, 0xA3, 0x06, 0xD3, +0x35, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, +0x0C, 0x4B, 0xE0, 0x9B, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0xDE, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x83, 0x45, 0x81, 0xF0, 0x07, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x01, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF3, 0x0C, 0x4A, 0x06, 0x93, +0xE0, 0x9A, 0x91, 0x67, 0xB0, 0x67, 0x18, 0x6E, +0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, 0x04, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, 0x70, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x06, 0x93, +0x04, 0xD3, 0x3C, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF3, 0x0C, 0x4B, 0xE0, 0x9B, 0x01, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x83, 0x45, 0x61, 0xF0, 0x08, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, 0xE1, 0xF7, +0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, +0x04, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, 0x0C, 0x4A, +0xE0, 0x9A, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, +0x18, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, +0x00, 0x6B, 0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, +0x01, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, +0x04, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, +0x70, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x00, 0x6A, 0x04, 0xD2, 0x91, 0x67, 0x30, 0xF0, +0x20, 0x69, 0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, +0x0A, 0xF4, 0x00, 0x49, 0x80, 0x18, 0x83, 0x45, +0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x57, 0x6E, +0x01, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, +0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x30, 0xF0, 0x20, 0x6A, 0xCA, 0xF6, 0x48, 0xA2, +0x01, 0x22, 0x20, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x33, 0x6E, 0x7F, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x83, 0x45, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, +0x09, 0x6E, 0x40, 0xEA, 0x08, 0x93, 0x06, 0x73, +0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, +0x1F, 0x6D, 0x08, 0x6E, 0x09, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, +0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x38, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, 0x10, 0x4A, +0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x00, 0x69, +0x0A, 0xF4, 0x00, 0x48, 0x0E, 0xD4, 0x0F, 0xD5, +0x90, 0x67, 0xB1, 0x67, 0xEF, 0x6E, 0x04, 0xD1, +0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF3, 0x10, 0x4B, 0xE0, 0x9B, 0x90, 0x67, +0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD1, 0x80, 0x18, +0x83, 0x45, 0x0E, 0x90, 0x0F, 0x91, 0x00, 0x6A, +0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6B, 0x0A, 0xF4, +0x00, 0x4B, 0x06, 0xD3, 0x40, 0x99, 0xC0, 0x98, +0x83, 0x67, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF3, 0x10, 0x4A, 0xE0, 0x9A, 0x00, 0x6D, +0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF3, 0x10, 0x4B, 0xC0, 0x98, 0x41, 0x99, +0xE0, 0x9B, 0x06, 0x94, 0x01, 0x6D, 0x04, 0xD2, +0x80, 0x18, 0x83, 0x45, 0x07, 0x92, 0x04, 0x48, +0x08, 0x49, 0x01, 0x4A, 0x07, 0xD2, 0x07, 0x93, +0xFF, 0x6A, 0x4C, 0xEB, 0x03, 0x73, 0x58, 0x67, +0x07, 0xD3, 0x08, 0xD2, 0xD6, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF3, 0x0C, 0x9A, 0x06, 0x94, +0x78, 0x67, 0xF0, 0x67, 0x00, 0x6D, 0xDE, 0x6E, +0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, 0x08, 0x92, +0x06, 0x94, 0xF0, 0x67, 0x01, 0x6D, 0xDE, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF4, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, +0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, 0x30, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF4, 0x00, 0x4A, +0x40, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x0A, 0xF4, +0x00, 0x48, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, +0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x04, 0x6B, 0x90, 0x67, 0x00, 0x6D, 0x33, 0x6E, +0x0F, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, +0x90, 0x67, 0xF1, 0x67, 0x03, 0x6A, 0x00, 0x6D, +0x3E, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF4, 0x44, 0x9A, +0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, 0x3F, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x00, 0x6B, +0xA3, 0x67, 0x90, 0x67, 0xF1, 0x67, 0xEF, 0x6E, +0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF4, 0x00, 0x4A, 0x40, 0x9A, +0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, 0xEF, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x04, 0x6B, +0x90, 0x67, 0x01, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, +0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF4, 0x48, 0x9A, 0x90, 0x67, +0xF1, 0x67, 0x01, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x83, 0x45, 0x90, 0x67, 0xF1, 0x67, +0x00, 0x6A, 0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, 0x20, 0x6B, +0x82, 0xF4, 0x00, 0x4B, 0x60, 0x9B, 0x90, 0x67, +0xF1, 0x67, 0x00, 0x6D, 0xEF, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x83, 0x45, 0x90, 0x67, 0x06, 0x6A, +0x00, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x83, 0x45, 0x03, 0x6B, 0x90, 0x67, +0xF1, 0x67, 0x00, 0x6D, 0x3E, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF4, 0x4C, 0x9A, 0x90, 0x67, 0xF1, 0x67, +0x00, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x83, 0x45, 0x00, 0x6A, 0x90, 0x67, 0xF1, 0x67, +0xA2, 0x67, 0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x83, 0x45, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF4, +0x00, 0x4B, 0x60, 0x9B, 0x90, 0x67, 0xF1, 0x67, +0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, +0x83, 0x45, 0x90, 0x67, 0x06, 0x6A, 0x01, 0x6D, +0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x83, 0x45, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF4, +0x50, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, +0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x00, 0x6B, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, +0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF4, 0x00, 0x4A, +0x40, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, +0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x07, 0x6B, 0x90, 0x67, 0x00, 0x6D, 0x33, 0x6E, +0x0F, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, +0x90, 0x67, 0xF1, 0x67, 0x03, 0x6A, 0x00, 0x6D, +0x3E, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF4, 0x54, 0x9A, +0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, 0x3F, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x00, 0x6B, +0xA3, 0x67, 0x90, 0x67, 0xF1, 0x67, 0xEF, 0x6E, +0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF4, 0x00, 0x4A, 0x40, 0x9A, +0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, 0xEF, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x07, 0x6B, +0x90, 0x67, 0x01, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, +0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF4, 0x58, 0x9A, 0x90, 0x67, +0xF1, 0x67, 0x01, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x83, 0x45, 0x90, 0x67, 0xF1, 0x67, +0x00, 0x6A, 0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x83, 0x45, 0x00, 0x6B, 0xA3, 0x67, +0x90, 0x67, 0xF1, 0x67, 0x19, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0x83, 0x45, 0x90, 0x67, 0xF1, 0x67, +0x00, 0x6A, 0x01, 0x6D, 0x19, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0x83, 0x45, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xED, 0x06, 0xD4, +0x07, 0xD5, 0x01, 0x68, 0x00, 0x69, 0x85, 0xF5, +0x1C, 0x6C, 0xFF, 0x6D, 0x80, 0x18, 0xF0, 0x16, +0x55, 0x72, 0x11, 0x61, 0x07, 0x92, 0x03, 0x2A, +0x00, 0x68, 0x50, 0x67, 0x17, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF2, 0xB8, 0x9A, 0x03, 0xF3, +0x08, 0x6C, 0xFF, 0x68, 0x80, 0x18, 0xF0, 0x16, +0x4C, 0xE8, 0x00, 0x6A, 0x0B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x64, 0x6C, +0x01, 0x49, 0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE9, 0x01, 0x6A, 0xA1, 0xF3, 0x18, 0x59, +0x02, 0x61, 0x01, 0x68, 0x01, 0x10, 0xD7, 0x2A, +0x06, 0x95, 0x30, 0xF0, 0x20, 0x69, 0x0A, 0xF4, +0x00, 0x49, 0x91, 0x67, 0x00, 0x6A, 0x8F, 0x6E, +0x08, 0xF0, 0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x83, 0x45, 0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x06, 0x95, 0x62, 0xF4, 0xF8, 0x9A, +0x91, 0x67, 0x00, 0x6E, 0x80, 0x18, 0x83, 0x45, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x0A, 0x6C, 0x30, 0xF0, 0x20, 0x69, 0x40, 0xEA, +0x06, 0x92, 0x01, 0x6D, 0x08, 0x6B, 0x44, 0x36, +0xC0, 0xF3, 0x44, 0x99, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x6D, 0xEE, 0x40, 0xEA, 0x0A, 0x28, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, +0x23, 0xF3, 0x00, 0x6C, 0x82, 0xF4, 0xBC, 0x9B, +0x02, 0x6E, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x99, 0x82, 0xF4, 0xBC, 0x9B, +0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x00, 0x6A, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x00, 0x68, 0x05, 0xD5, 0x04, 0xD4, 0x05, 0x92, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, 0x10, 0x4B, +0xE0, 0x9B, 0xC0, 0x9A, 0x30, 0xF0, 0x20, 0x69, +0x0A, 0xF4, 0x00, 0x49, 0x91, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x3E, 0x45, 0x04, 0x93, 0x91, 0x67, +0x01, 0x6D, 0x40, 0xDB, 0x05, 0x92, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF3, 0x10, 0x4B, 0xE0, 0x9B, +0xC0, 0x9A, 0x01, 0x48, 0x80, 0x18, 0x3E, 0x45, +0x04, 0x93, 0x41, 0xDB, 0xFF, 0x6A, 0x4C, 0xE8, +0x05, 0x92, 0x08, 0x4B, 0x03, 0x70, 0x04, 0x4A, +0x05, 0xD2, 0x04, 0xD3, 0xD8, 0x61, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x69, 0x04, 0x67, 0x30, 0xF0, 0x20, 0x6A, +0x2C, 0xE8, 0xC0, 0xF3, 0x44, 0x9A, 0x08, 0x6B, +0x04, 0x36, 0x01, 0x6D, 0x6D, 0xEE, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF3, 0xF0, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x0A, 0xF4, 0x00, 0x4C, 0xB0, 0x67, +0x58, 0x6E, 0x80, 0x18, 0x3E, 0x45, 0x30, 0xF0, +0x20, 0x6B, 0xA2, 0xF4, 0x60, 0x9B, 0x4C, 0xEB, +0x62, 0x33, 0x7A, 0x33, 0x2C, 0xEB, 0x0B, 0x23, +0x3F, 0x73, 0x09, 0x60, 0x07, 0xF7, 0x00, 0x6B, +0x4C, 0xEB, 0x62, 0x32, 0x2C, 0xEA, 0x03, 0x22, +0x3F, 0x72, 0x00, 0x6A, 0x56, 0x61, 0x30, 0xF0, +0x20, 0x69, 0x0A, 0xF4, 0x00, 0x49, 0x00, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x57, 0x6E, 0x01, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x01, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, 0x10, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, +0x20, 0x6A, 0xCA, 0xF6, 0x48, 0xA2, 0x01, 0x22, +0x20, 0x6A, 0x91, 0x67, 0x30, 0xF0, 0x20, 0x69, +0x0A, 0xF4, 0x00, 0x49, 0xB0, 0x67, 0x33, 0x6E, +0x7F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x20, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, +0x07, 0xF7, 0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x83, 0x45, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF4, +0xE0, 0x9A, 0x20, 0x6B, 0x91, 0x67, 0xB0, 0x67, +0x08, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, 0x10, 0x4A, +0xE0, 0x9A, 0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, +0x80, 0x18, 0x3E, 0x45, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF3, 0x10, 0x4B, 0xE0, 0x9B, 0x91, 0x67, +0xB0, 0x67, 0x58, 0x6E, 0x80, 0x18, 0x3E, 0x45, +0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, +0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x01, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x68, 0x0C, 0xEC, +0x01, 0x74, 0xAC, 0xE8, 0x80, 0xF0, 0x0A, 0x60, +0x07, 0x24, 0x02, 0x74, 0x80, 0xF0, 0x1C, 0x60, +0x03, 0x74, 0x80, 0xF0, 0x1D, 0x60, 0xA1, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0xA7, 0xF5, 0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x30, 0xF0, 0x20, 0x6D, 0xA7, 0xF5, 0x6C, 0xDA, +0x00, 0x6E, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF2, 0x00, 0x4C, 0x4B, 0xF2, +0x18, 0x4B, 0x4B, 0xF2, 0x14, 0x4A, 0x4B, 0xF0, +0x02, 0x4D, 0x04, 0xD6, 0xC0, 0x9C, 0x04, 0x97, +0x00, 0x69, 0xC2, 0xDC, 0xC0, 0xAB, 0xC3, 0xF6, +0x10, 0x4F, 0xE4, 0x37, 0xC2, 0xCB, 0xC0, 0xA2, +0x06, 0xD5, 0x05, 0xD1, 0xC2, 0xC2, 0x30, 0xF0, +0x20, 0x6E, 0xA3, 0xF4, 0x00, 0x4E, 0xFD, 0xE6, +0xC0, 0xA7, 0x22, 0x68, 0x04, 0x91, 0xC4, 0xC7, +0x05, 0x96, 0x18, 0xEE, 0x44, 0x6E, 0x12, 0xE8, +0xD8, 0xE9, 0x30, 0xF0, 0x20, 0x69, 0xA3, 0xF4, +0x00, 0x49, 0x12, 0xEE, 0xC1, 0xE0, 0x87, 0xF3, +0xC0, 0x40, 0x87, 0xF4, 0x10, 0x48, 0xD9, 0xE1, +0x01, 0xE1, 0x20, 0xAE, 0x80, 0xF0, 0x28, 0xCE, +0x20, 0xA8, 0x02, 0x4E, 0x80, 0xF0, 0x28, 0xC8, +0x06, 0x91, 0x02, 0x48, 0x2A, 0xEE, 0xF5, 0x61, +0x05, 0x96, 0x22, 0x49, 0x01, 0x4F, 0x01, 0x4E, +0x02, 0x76, 0x05, 0xD6, 0x06, 0xD1, 0xD8, 0x61, +0x04, 0x91, 0x04, 0x4C, 0x02, 0x4B, 0x01, 0x49, +0x02, 0x71, 0x04, 0xD1, 0x01, 0x4A, 0x44, 0x4D, +0xBD, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x4B, 0xF2, +0x14, 0x4B, 0x44, 0x43, 0xA7, 0x43, 0x16, 0x4D, +0xC2, 0x67, 0x00, 0x6C, 0x80, 0xC3, 0x01, 0x4B, +0x00, 0x6C, 0xCA, 0xEB, 0x80, 0xCA, 0xFF, 0xF7, +0x88, 0xC2, 0x20, 0xF0, 0x85, 0xC2, 0xFF, 0xF7, +0x89, 0xC2, 0x20, 0xF0, 0x86, 0xC2, 0x80, 0xC5, +0x81, 0xC5, 0x82, 0xC5, 0x02, 0x4A, 0x03, 0x4D, +0xEC, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0x00, 0x4A, 0xA7, 0xF5, 0x70, 0x9A, 0xA7, 0xF5, +0x68, 0xDA, 0x1F, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF3, 0xF0, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xB0, 0x67, 0x0A, 0xF4, 0x00, 0x4C, 0x58, 0x6E, +0x80, 0x18, 0x3E, 0x45, 0x61, 0xF7, 0x10, 0x48, +0x30, 0xF0, 0x20, 0x6B, 0x08, 0x30, 0xA3, 0xF4, +0x00, 0x4B, 0x6D, 0xE0, 0x40, 0xDB, 0x09, 0x10, +0x00, 0x6C, 0xB0, 0x67, 0xC4, 0x67, 0x03, 0x10, +0x01, 0x6C, 0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, +0x52, 0x09, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x04, 0x67, +0x4C, 0xE8, 0xAC, 0xEA, 0x0E, 0x22, 0x08, 0x6A, +0x04, 0x31, 0x4D, 0xE9, 0x01, 0x6B, 0x44, 0x40, +0x64, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x0A, 0xF4, +0x00, 0x4A, 0x06, 0xD2, 0x6D, 0xE9, 0x06, 0x6A, +0x0D, 0x10, 0x08, 0x6A, 0x04, 0x31, 0x4D, 0xE9, +0x01, 0x6B, 0x44, 0x40, 0x64, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x0A, 0xF4, 0x00, 0x4A, 0x06, 0xD2, +0x6D, 0xE9, 0x04, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x06, 0x94, 0x62, 0xF4, 0xF8, 0x9A, +0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, 0x83, 0x45, +0x06, 0x94, 0x08, 0xF0, 0x00, 0x6F, 0x01, 0x6B, +0x8F, 0x6E, 0xB0, 0x67, 0x04, 0xD3, 0x80, 0x18, +0x83, 0x45, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x01, 0x6C, +0x80, 0x18, 0x2C, 0x09, 0x90, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x94, 0x08, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, 0xD1, 0x67, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x01, 0x6D, 0xC1, 0x41, 0xAB, 0xED, 0x03, 0xF3, +0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xEF, 0x6E, 0x10, 0x6F, +0x00, 0x6A, 0x0A, 0xF4, 0x00, 0x4C, 0xB0, 0x67, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x01, 0x6D, +0x90, 0x67, 0x80, 0x18, 0x94, 0x08, 0x00, 0x6C, +0x80, 0x18, 0x2C, 0x09, 0x90, 0x67, 0x00, 0x6D, +0x80, 0x18, 0xB4, 0x0C, 0x22, 0x67, 0x04, 0x2A, +0x01, 0x6C, 0xB0, 0x67, 0x80, 0x18, 0x57, 0x0D, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0x41, 0xE0, 0x27, 0xF2, 0x39, 0xC0, 0x51, 0x67, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x04, 0x67, +0x4C, 0xED, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xCA, 0xF6, 0x49, 0xA2, 0x06, 0x6B, 0x08, 0xD5, +0x4E, 0xEB, 0x01, 0x5B, 0x98, 0x67, 0x07, 0xD4, +0x16, 0x2D, 0x04, 0x24, 0xFF, 0x6A, 0x04, 0x33, +0x01, 0x4A, 0x03, 0x10, 0x04, 0x4A, 0x04, 0x33, +0x40, 0x32, 0x4D, 0xEB, 0x84, 0x40, 0x01, 0x6A, +0x44, 0xEC, 0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0x0A, 0xF4, 0x00, 0x4A, 0x08, 0x69, 0x06, 0xD2, +0x6D, 0xE9, 0x04, 0x6A, 0x19, 0x10, 0x08, 0x93, +0x01, 0x73, 0x22, 0x61, 0x07, 0x94, 0x04, 0x24, +0xFF, 0x6A, 0x04, 0x33, 0x01, 0x4A, 0x03, 0x10, +0x07, 0x4A, 0x04, 0x33, 0x40, 0x32, 0x4D, 0xEB, +0x84, 0x40, 0x01, 0x6A, 0x44, 0xEC, 0x4D, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x0A, 0xF4, 0x00, 0x4A, +0x08, 0x69, 0x06, 0xD2, 0x6D, 0xE9, 0x06, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0x94, +0x62, 0xF4, 0xF8, 0x9A, 0xB0, 0x67, 0x00, 0x6E, +0x80, 0x18, 0x83, 0x45, 0x01, 0x6A, 0x25, 0x10, +0x08, 0x93, 0x00, 0x69, 0x02, 0x73, 0x2F, 0x61, +0x07, 0x94, 0x04, 0x24, 0xFF, 0x6A, 0x04, 0x33, +0x01, 0x4A, 0x03, 0x10, 0x0A, 0x4A, 0x04, 0x33, +0x40, 0x32, 0x4D, 0xEB, 0x84, 0x40, 0x01, 0x6A, +0x44, 0xEC, 0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0x0A, 0xF4, 0x00, 0x4A, 0x06, 0xD2, 0x07, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0x94, +0x62, 0xF4, 0xF8, 0x9A, 0x08, 0x69, 0xB0, 0x67, +0x00, 0x6E, 0x6D, 0xE9, 0x80, 0x18, 0x83, 0x45, +0x00, 0x6A, 0x06, 0x94, 0xB0, 0x67, 0x8F, 0x6E, +0x08, 0xF0, 0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0x83, 0x45, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x01, 0x6C, +0x80, 0x18, 0x2C, 0x09, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0xD1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF3, 0x44, 0x9C, +0x01, 0x6D, 0xC1, 0x41, 0xAB, 0xED, 0x03, 0xF3, +0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, 0x40, 0xEA, +0x01, 0x6D, 0x90, 0x67, 0x80, 0x18, 0xB4, 0x0C, +0x00, 0x6C, 0x06, 0xD2, 0x80, 0x18, 0x2C, 0x09, +0x04, 0x32, 0x09, 0xD2, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x09, 0x93, 0x01, 0x6D, +0x08, 0x6E, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x6D, 0xEE, 0x40, 0xEA, 0x08, 0x94, 0x1C, 0x2C, +0x7D, 0x67, 0x87, 0x43, 0x11, 0x4C, 0x60, 0xA4, +0x30, 0xF0, 0x20, 0x69, 0xD3, 0xF6, 0x40, 0x40, +0x06, 0x94, 0x44, 0x32, 0xA3, 0xF4, 0x00, 0x49, +0x29, 0xE2, 0x60, 0xC2, 0x48, 0x2C, 0x07, 0x92, +0x09, 0x22, 0x01, 0x6D, 0x23, 0xF3, 0x18, 0x4C, +0xAB, 0xED, 0x80, 0x18, 0xF0, 0x16, 0x61, 0xF7, +0x1C, 0x48, 0x35, 0x10, 0x02, 0x6C, 0x38, 0x10, +0x08, 0x93, 0x02, 0x73, 0x38, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF3, 0xF0, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x69, 0xA3, 0xF4, +0x00, 0x49, 0x0A, 0xF4, 0x00, 0x4C, 0xB0, 0x67, +0x00, 0x6E, 0x80, 0x18, 0x3E, 0x45, 0x27, 0xF2, +0x8E, 0xA1, 0xFF, 0x6B, 0x56, 0x32, 0x6C, 0xEA, +0x80, 0x34, 0xD3, 0xF6, 0x6C, 0x40, 0x8D, 0xEA, +0x64, 0x33, 0x09, 0x94, 0x2D, 0xE3, 0x40, 0xCB, +0x7D, 0x67, 0x29, 0xE4, 0x87, 0x43, 0x11, 0x4C, +0x60, 0xA4, 0x06, 0x94, 0xA7, 0xF5, 0x61, 0xC2, +0x12, 0x2C, 0x07, 0x92, 0x0C, 0x22, 0x01, 0x6D, +0x23, 0xF3, 0x1C, 0x4C, 0xAB, 0xED, 0x80, 0x18, +0xF0, 0x16, 0x61, 0xF7, 0x1E, 0x48, 0x08, 0x30, +0x25, 0xE0, 0x40, 0xD9, 0x04, 0x10, 0x03, 0x6C, +0xB0, 0x67, 0x80, 0x18, 0x57, 0x0D, 0x06, 0x92, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF7, 0x63, 0x11, 0x62, +0x10, 0xD1, 0x0F, 0xD0, 0xFF, 0x6A, 0x04, 0x67, +0x4C, 0xE8, 0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0x27, 0xF2, 0x69, 0xA2, +0x30, 0xF0, 0x20, 0x6C, 0x8B, 0xF2, 0x10, 0x4C, +0x0D, 0xD3, 0xB0, 0xF7, 0x68, 0x40, 0x6C, 0x33, +0x6D, 0xE2, 0x0C, 0xD5, 0x0A, 0xD3, 0x08, 0xD4, +0x00, 0x69, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF3, 0x10, 0x4B, 0xE0, 0x9B, 0xFF, 0x6A, +0x30, 0xF0, 0x20, 0x68, 0x0A, 0xF4, 0x00, 0x48, +0x2C, 0xEA, 0x90, 0x67, 0xA2, 0x67, 0xDF, 0x6E, +0x06, 0xD2, 0x80, 0x18, 0x3E, 0x45, 0x10, 0x6B, +0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, +0x10, 0x4A, 0x06, 0x95, 0xE0, 0x9A, 0x90, 0x67, +0xDF, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, +0x0A, 0x93, 0x06, 0x95, 0x90, 0x67, 0x40, 0x9B, +0x58, 0x6E, 0x30, 0xF0, 0x20, 0x68, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, 0x10, 0x4A, +0xE0, 0x9A, 0x80, 0x18, 0x83, 0x45, 0xC0, 0xF3, +0x44, 0x98, 0x08, 0x6B, 0x24, 0x36, 0x01, 0x6D, +0x6D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, +0x0C, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x0D, 0x93, 0x06, 0x73, 0x1C, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0xC2, 0xF2, 0xB8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x08, 0x93, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xC0, 0x9B, 0x23, 0xF3, 0x18, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x08, 0x93, 0x01, 0x6D, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x1C, 0x6C, +0xAB, 0xED, 0xC2, 0x9B, 0x21, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xC2, 0xF2, 0xB8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF2, +0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF2, +0x14, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, +0x01, 0x6D, 0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x0C, 0x94, 0x06, 0x24, 0x00, 0x6A, +0x01, 0x74, 0x06, 0xD2, 0xC0, 0xF0, 0x05, 0x61, +0x62, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x62, 0xF3, +0xA4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x03, 0x6E, +0x40, 0xEA, 0x44, 0x6B, 0x78, 0xE9, 0x09, 0x94, +0x88, 0x6A, 0x00, 0x68, 0x12, 0xEB, 0x58, 0xEC, +0x12, 0xEA, 0x4D, 0xE3, 0x30, 0xF0, 0x20, 0x6A, +0x87, 0xF3, 0x00, 0x4B, 0xA3, 0xF4, 0x00, 0x4A, +0x69, 0xE2, 0x06, 0xD2, 0x06, 0x92, 0x01, 0x6D, +0xC3, 0xF3, 0x18, 0x6C, 0xC0, 0xAA, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF3, 0x50, 0x9A, 0xC0, 0x36, +0xAB, 0xED, 0x4D, 0xEE, 0x08, 0x32, 0x4D, 0xEE, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x02, 0x4E, 0x01, 0x48, 0x40, 0xEA, 0x06, 0x93, +0x11, 0x70, 0x02, 0x4B, 0x06, 0xD3, 0xE6, 0x61, +0x44, 0x6B, 0x78, 0xE9, 0x09, 0x94, 0x88, 0x6A, +0x00, 0x68, 0x12, 0xEB, 0x58, 0xEC, 0x12, 0xEA, +0x4D, 0xE3, 0x30, 0xF0, 0x20, 0x6A, 0x87, 0xF4, +0x10, 0x4B, 0xA3, 0xF4, 0x00, 0x4A, 0x69, 0xE2, +0x06, 0xD2, 0x06, 0x92, 0x08, 0x33, 0x01, 0x6D, +0xC0, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF3, +0x50, 0x9A, 0xC0, 0x36, 0xC3, 0xF3, 0x18, 0x6C, +0x4D, 0xEE, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x6D, 0xEE, 0xAB, 0xED, 0x40, 0xEA, +0x06, 0x93, 0x01, 0x48, 0x11, 0x70, 0x02, 0x4B, +0x06, 0xD3, 0xE7, 0x61, 0xE7, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x62, 0xF3, 0xA4, 0x9B, 0x23, 0xF3, +0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x44, 0x6B, +0x78, 0xE9, 0x09, 0x94, 0x88, 0x6A, 0x00, 0x68, +0x12, 0xEB, 0x58, 0xEC, 0x12, 0xEA, 0x4D, 0xE3, +0x30, 0xF0, 0x20, 0x6A, 0xA7, 0xF3, 0x02, 0x4B, +0xA3, 0xF4, 0x00, 0x4A, 0x69, 0xE2, 0x06, 0xD2, +0x06, 0x92, 0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, +0xC0, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF3, +0x54, 0x9A, 0xC0, 0x36, 0xAB, 0xED, 0x4D, 0xEE, +0x08, 0x32, 0x4D, 0xEE, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x02, 0x4E, 0x01, 0x48, +0x40, 0xEA, 0x06, 0x93, 0x11, 0x70, 0x02, 0x4B, +0x06, 0xD3, 0xE6, 0x61, 0x44, 0x6B, 0x78, 0xE9, +0x09, 0x94, 0x88, 0x6A, 0x00, 0x68, 0x12, 0xEB, +0x58, 0xEC, 0x12, 0xEA, 0x4D, 0xE3, 0x30, 0xF0, +0x20, 0x6A, 0xA7, 0xF4, 0x12, 0x4B, 0xA3, 0xF4, +0x00, 0x4A, 0x69, 0xE2, 0x06, 0xD2, 0x06, 0x92, +0x08, 0x33, 0x01, 0x6D, 0xC0, 0xAA, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF3, 0x54, 0x9A, 0xC0, 0x36, +0xC3, 0xF3, 0x18, 0x6C, 0x4D, 0xEE, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x6D, 0xEE, +0xAB, 0xED, 0x40, 0xEA, 0x06, 0x93, 0x01, 0x48, +0x11, 0x70, 0x02, 0x4B, 0x06, 0xD3, 0xE7, 0x61, +0x85, 0x10, 0x06, 0x94, 0xFF, 0x6A, 0x8C, 0xEA, +0x11, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x62, 0xF3, +0xA4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x03, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF3, +0x50, 0x9A, 0x10, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x62, 0xF3, 0xA4, 0x9B, 0x23, 0xF3, 0x00, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF3, 0x54, 0x9A, 0x0B, 0xD2, 0x06, 0x92, +0x22, 0x6B, 0x09, 0x94, 0x78, 0xEA, 0x44, 0x6A, +0x00, 0x68, 0x12, 0xEB, 0x58, 0xE9, 0x12, 0xEA, +0x4D, 0xE3, 0x88, 0x6A, 0x58, 0xEC, 0x12, 0xEA, +0x4D, 0xE3, 0x30, 0xF0, 0x20, 0x6A, 0x87, 0xF3, +0x00, 0x4B, 0xA3, 0xF4, 0x00, 0x4A, 0x69, 0xE2, +0x07, 0xD2, 0x07, 0x92, 0x0B, 0x93, 0x01, 0x6D, +0xC0, 0xAA, 0x08, 0x32, 0xC3, 0xF3, 0x18, 0x6C, +0xC0, 0x36, 0x6D, 0xEE, 0x4D, 0xEE, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0xAB, 0xED, +0x02, 0x4E, 0x40, 0xEA, 0x07, 0x94, 0x01, 0x48, +0x11, 0x70, 0x02, 0x4C, 0x07, 0xD4, 0xE9, 0x61, +0x06, 0x92, 0x22, 0x6B, 0x09, 0x94, 0x78, 0xEA, +0x44, 0x6A, 0x00, 0x68, 0x12, 0xEB, 0x58, 0xE9, +0x12, 0xEA, 0x4D, 0xE3, 0x88, 0x6A, 0x58, 0xEC, +0x12, 0xEA, 0x4D, 0xE3, 0x30, 0xF0, 0x20, 0x6A, +0x87, 0xF4, 0x10, 0x4B, 0xA3, 0xF4, 0x00, 0x4A, +0x69, 0xE2, 0x07, 0xD2, 0x07, 0x92, 0x0B, 0x93, +0x01, 0x6D, 0xC0, 0xAA, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0xC0, 0x36, 0x6D, 0xEE, +0x08, 0x33, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x6D, 0xEE, 0x40, 0xEA, 0x07, 0x94, 0x01, 0x48, +0x11, 0x70, 0x02, 0x4C, 0x07, 0xD4, 0xEA, 0x61, +0x06, 0x92, 0x01, 0x4A, 0x02, 0x72, 0x06, 0xD2, +0x7F, 0xF7, 0x1B, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0x42, 0xF3, 0xD8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF3, 0xA4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x00, 0x6B, 0x06, 0xD3, 0x06, 0x93, +0x06, 0x92, 0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6C, +0x8C, 0xEA, 0x64, 0x36, 0xC0, 0xF3, 0x64, 0x98, +0x07, 0xD2, 0x01, 0x6D, 0x08, 0x6A, 0x4D, 0xEE, +0x03, 0xF2, 0x01, 0x4C, 0xAB, 0xED, 0x40, 0xEB, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, 0xB8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF2, +0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF2, +0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF4, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, +0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x03, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x07, 0x95, +0x62, 0xF4, 0xF8, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x0A, 0xF4, 0x00, 0x4C, 0x00, 0x6E, 0x80, 0x18, +0x83, 0x45, 0x06, 0x94, 0x01, 0x4C, 0x02, 0x74, +0x06, 0xD4, 0xA9, 0x61, 0x0A, 0x92, 0x08, 0x93, +0x01, 0x49, 0x04, 0x4A, 0x04, 0x4B, 0x02, 0x71, +0x0A, 0xD2, 0x08, 0xD3, 0xBF, 0xF5, 0x16, 0x61, +0x11, 0x97, 0x10, 0x91, 0x0F, 0x90, 0x09, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x68, 0xA3, 0xF4, 0x00, 0x48, 0x00, 0x6B, +0x8C, 0xEA, 0xE7, 0xF5, 0x6C, 0xC0, 0x2A, 0x2A, +0x27, 0xF2, 0x4A, 0xA0, 0x27, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF3, 0xF0, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x0A, 0xF4, 0x00, 0x4C, 0x00, 0x6D, +0x18, 0x6E, 0x80, 0x18, 0x3E, 0x45, 0xA7, 0xF5, +0x68, 0x98, 0xA7, 0xF5, 0x50, 0xD8, 0x00, 0x69, +0x4E, 0xEB, 0x05, 0x23, 0xA7, 0xF5, 0x6C, 0x98, +0x6E, 0xEA, 0x10, 0x2A, 0x01, 0x69, 0x02, 0x6D, +0x91, 0x67, 0x80, 0x18, 0x81, 0x0E, 0x91, 0x67, +0x80, 0x18, 0x33, 0x05, 0x01, 0x6C, 0x80, 0x18, +0x64, 0x05, 0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x8B, 0xF2, 0x6C, 0xC2, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x08, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x69, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x00, 0x49, 0x42, 0xF3, 0x0C, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xE7, 0xF5, +0xCC, 0xA1, 0xE3, 0xF3, 0x10, 0x6C, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x0A, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, 0x0C, 0x4B, +0xC0, 0xF3, 0x44, 0x98, 0xE7, 0xF5, 0xCC, 0xA1, +0xA0, 0x9B, 0xE3, 0xF3, 0x10, 0x6C, 0x40, 0xEA, +0xE7, 0xF5, 0x4C, 0xA1, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF2, 0xB4, 0x9A, +0x63, 0xF6, 0x1C, 0x6C, 0x80, 0x18, 0xF0, 0x16, +0x06, 0x22, 0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF2, 0x70, 0xC2, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x6B, 0xF2, 0x50, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF3, 0x10, 0x4A, 0xE0, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0x0A, 0xF4, 0x00, 0x48, +0x90, 0x67, 0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, +0x3E, 0x45, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, +0x10, 0x4B, 0xE0, 0x9B, 0x90, 0x67, 0x00, 0x6D, +0x18, 0x6E, 0x22, 0x67, 0x80, 0x18, 0x3E, 0x45, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x00, 0x4B, +0xA7, 0xF5, 0x50, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF3, 0x4C, 0x9A, 0x27, 0xF2, 0x37, 0xC3, +0x2C, 0xEA, 0x42, 0x32, 0x42, 0x32, 0x27, 0xF2, +0x56, 0xC3, 0x06, 0xF0, 0x00, 0x6A, 0x2C, 0xEA, +0x42, 0x32, 0x52, 0x32, 0x27, 0xF2, 0x58, 0xC3, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, 0x80, 0x18, +0xEE, 0x0F, 0x00, 0x6C, 0x80, 0x18, 0x64, 0x05, +0x03, 0x28, 0x00, 0x6C, 0xA4, 0x67, 0x07, 0x10, +0x01, 0x70, 0x03, 0x61, 0x00, 0x6C, 0x01, 0x6D, +0x02, 0x10, 0x00, 0x6C, 0x02, 0x6D, 0x80, 0x18, +0x81, 0x0E, 0x01, 0x6C, 0x80, 0x18, 0x64, 0x05, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x24, 0x67, 0x4C, 0xE9, 0xAC, 0xEA, +0x01, 0x72, 0x43, 0x61, 0x44, 0x41, 0x01, 0x6B, +0x64, 0xEA, 0x00, 0xF2, 0x08, 0x6A, 0x4D, 0xEB, +0x04, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF4, 0xF8, 0x9A, 0x30, 0xF0, 0x20, 0x68, +0x0A, 0xF4, 0x00, 0x48, 0x90, 0x67, 0xB1, 0x67, +0x00, 0x6E, 0x06, 0xD3, 0x80, 0x18, 0x83, 0x45, +0x01, 0x6C, 0x08, 0xF0, 0x00, 0x6F, 0xB1, 0x67, +0x04, 0xD4, 0x8F, 0x6E, 0x90, 0x67, 0x80, 0x18, +0x83, 0x45, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x0A, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x06, 0x96, +0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x06, 0x96, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xAB, 0xED, 0x01, 0x4E, 0x03, 0xF3, +0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x48, 0x9A, 0x01, 0x6C, 0x40, 0xEA, +0x91, 0x67, 0x01, 0x6D, 0x80, 0x18, 0xB4, 0x0C, +0xF0, 0x10, 0x02, 0x72, 0x01, 0x6A, 0xE0, 0xF0, +0x0C, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xCA, 0xF6, +0x4E, 0xA2, 0x00, 0x68, 0x09, 0x72, 0x0C, 0x60, +0x12, 0x72, 0x01, 0x68, 0x09, 0x60, 0x1B, 0x72, +0x02, 0x68, 0x06, 0x60, 0x24, 0x68, 0x4E, 0xE8, +0x01, 0x58, 0x18, 0x67, 0x04, 0x6A, 0x03, 0xE2, +0x24, 0x32, 0x08, 0xD2, 0x08, 0x93, 0x08, 0x6A, +0x30, 0xF0, 0x20, 0x6C, 0x4D, 0xEB, 0xC0, 0xF3, +0x44, 0x9C, 0x01, 0x6D, 0xC3, 0x67, 0x08, 0xD3, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9B, 0x06, 0x93, 0x01, 0x6D, 0xAB, 0xED, +0x27, 0xF2, 0xCE, 0xA3, 0xC3, 0xF3, 0x0C, 0x6C, +0x40, 0xEA, 0x44, 0x41, 0x01, 0x6C, 0x30, 0xF0, +0x20, 0x6B, 0x84, 0xEA, 0x00, 0xF3, 0x08, 0x6A, +0x4D, 0xEC, 0x80, 0xF3, 0x4C, 0x9B, 0x07, 0xD4, +0x0A, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0xC0, 0xF3, 0x44, 0x9C, 0x07, 0x96, 0x01, 0x6D, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x07, 0x96, 0xC0, 0xF3, +0x44, 0x9B, 0x01, 0x6D, 0xAB, 0xED, 0x01, 0x4E, +0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6C, 0x80, 0xF3, 0x4C, 0x9C, 0xC8, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, +0x10, 0x4B, 0xE0, 0x9B, 0x30, 0xF0, 0x20, 0x6A, +0x0A, 0xF4, 0x00, 0x4A, 0x82, 0x67, 0xB1, 0x67, +0x00, 0x6E, 0x07, 0xD2, 0x80, 0x18, 0x3E, 0x45, +0x91, 0x67, 0x01, 0x6D, 0x80, 0x18, 0xB4, 0x0C, +0x01, 0x72, 0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF1, 0x14, 0x4A, 0x41, 0xE0, 0x40, 0xA0, +0x06, 0x94, 0x27, 0xF2, 0x4E, 0xC4, 0x70, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, 0x10, 0x4A, +0x07, 0x94, 0xE0, 0x9A, 0xB1, 0x67, 0x00, 0x6E, +0x80, 0x18, 0x3E, 0x45, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0x67, 0x08, 0x96, 0xC0, 0xF3, 0x44, 0x9B, +0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0xE3, 0xF7, 0x00, 0x6A, 0x2C, 0xEA, +0x06, 0x93, 0x56, 0x34, 0x96, 0x32, 0x27, 0xF2, +0x50, 0xDB, 0x1F, 0x6A, 0x8C, 0xEA, 0x02, 0x5A, +0xFF, 0x6B, 0x0B, 0x60, 0x03, 0x70, 0x03, 0x60, +0x01, 0x48, 0x6C, 0xE8, 0x4F, 0x10, 0x06, 0x94, +0x01, 0x6B, 0x03, 0x68, 0xE7, 0xF5, 0x65, 0xC4, +0x49, 0x10, 0x0A, 0x5A, 0x0B, 0x61, 0x04, 0x20, +0xFF, 0x48, 0x6C, 0xE8, 0x01, 0x6B, 0x0B, 0x10, +0x06, 0x94, 0x01, 0x6B, 0xE7, 0xF5, 0x65, 0xC4, +0x01, 0x6B, 0x09, 0x10, 0x06, 0x94, 0x00, 0x6B, +0xE7, 0xF5, 0x65, 0xC4, 0x00, 0x6B, 0x03, 0x20, +0x04, 0x58, 0x01, 0x61, 0x03, 0x68, 0x30, 0xF0, +0x20, 0x6C, 0xA3, 0xF4, 0x00, 0x4C, 0xE7, 0xF5, +0xA5, 0xA4, 0x01, 0x5D, 0xB8, 0x67, 0xAB, 0xED, +0xAC, 0xEB, 0x30, 0xF0, 0x20, 0x6D, 0x22, 0xF1, +0x14, 0x4D, 0xA1, 0xE0, 0xA0, 0xA0, 0x27, 0xF2, +0xAE, 0xC4, 0x0F, 0x2B, 0x27, 0xF2, 0xCE, 0xA4, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x64, 0x9B, +0xC0, 0x36, 0x01, 0x6D, 0x4D, 0xEE, 0xE3, 0xF3, +0x08, 0x6C, 0xAB, 0xED, 0x40, 0xEB, 0x00, 0x6A, +0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x01, 0x6D, 0xE3, 0xF3, 0x08, 0x6C, +0xAB, 0xED, 0xFF, 0xF7, 0x1F, 0x6E, 0x40, 0xEA, +0x01, 0x6A, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0x01, 0x6B, 0xC8, 0x17, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xCA, 0xF6, 0x6B, 0xA2, 0xFF, 0x68, +0x8C, 0xE8, 0x06, 0x5B, 0x01, 0x6A, 0x7C, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x68, 0x33, 0x02, 0xF1, +0x04, 0x4A, 0x69, 0xE2, 0x40, 0x9A, 0x00, 0xEA, +0x90, 0x67, 0x80, 0x18, 0x5F, 0x0A, 0x90, 0x67, +0x01, 0x6D, 0x80, 0x18, 0xB3, 0x0D, 0x62, 0x10, +0x90, 0x67, 0x80, 0x18, 0x0D, 0x0A, 0x90, 0x67, +0x01, 0x6D, 0x80, 0x18, 0xF7, 0x0D, 0x52, 0x22, +0x03, 0x6C, 0x98, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x00, 0x4B, 0x12, 0xEC, 0x71, 0xE4, +0xC7, 0xF5, 0xB2, 0xA4, 0x02, 0x5D, 0x04, 0x60, +0x01, 0x4D, 0xC7, 0xF5, 0xB2, 0xC4, 0xEB, 0x17, +0x61, 0xE0, 0x01, 0x6C, 0x39, 0x10, 0x90, 0x67, +0x01, 0x6D, 0x80, 0x18, 0xA4, 0x09, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, 0x00, 0x6B, +0xE7, 0xF5, 0x65, 0xC2, 0x90, 0x67, 0x02, 0x6D, +0x80, 0x18, 0x24, 0x10, 0x2F, 0x22, 0x30, 0xF0, +0x20, 0x6B, 0x04, 0x34, 0xA3, 0xF4, 0x00, 0x4B, +0x6D, 0xE4, 0xC7, 0xF5, 0x9E, 0xA3, 0x0A, 0x5C, +0x25, 0x60, 0x01, 0x4C, 0xC7, 0xF5, 0x9E, 0xC3, +0xED, 0x17, 0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, +0xA4, 0x09, 0x90, 0x67, 0x02, 0x6D, 0x80, 0x18, +0xF7, 0x0D, 0x18, 0x22, 0x03, 0x6C, 0x98, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x00, 0x4B, +0x12, 0xEC, 0x71, 0xE4, 0xC7, 0xF5, 0xB3, 0xA4, +0x02, 0x5D, 0x04, 0x60, 0x01, 0x4D, 0xC7, 0xF5, +0xB3, 0xC4, 0xEB, 0x17, 0x61, 0xE0, 0x02, 0x6C, +0x67, 0xF3, 0x84, 0xC0, 0x06, 0x6C, 0x27, 0xF2, +0x8B, 0xC3, 0x12, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x00, 0x4B, 0x27, 0xF2, 0x8B, 0xA3, +0x01, 0x4C, 0xF5, 0x17, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0x27, 0xF2, 0x6B, 0xA2, +0x01, 0x4B, 0x27, 0xF2, 0x6B, 0xC2, 0x01, 0x6A, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0x27, 0xF2, 0x69, 0xA2, 0x27, 0xF2, 0x4C, 0xA2, +0x08, 0xD3, 0x06, 0x5A, 0x76, 0x60, 0x30, 0xF0, +0x20, 0x6B, 0x48, 0x32, 0x02, 0xF1, 0x1C, 0x4B, +0x4D, 0xE3, 0x40, 0x9B, 0x00, 0xEA, 0x00, 0x6C, +0x80, 0x18, 0xC6, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0x27, 0xF2, 0x6B, 0xA2, +0x06, 0x73, 0xF5, 0x61, 0x2A, 0x10, 0x00, 0x6C, +0x80, 0x18, 0x4F, 0x0B, 0x00, 0x6C, 0xA4, 0x67, +0x37, 0x10, 0x00, 0x6C, 0x80, 0x18, 0x17, 0x0B, +0x00, 0x6C, 0xA4, 0x67, 0x80, 0x18, 0xF7, 0x0D, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x00, 0x4B, +0x27, 0xF2, 0x94, 0xA3, 0x01, 0x4C, 0x27, 0xF2, +0x94, 0xC3, 0x42, 0x22, 0xC7, 0xF5, 0x51, 0xA3, +0x03, 0x5A, 0x3E, 0x60, 0x01, 0x4A, 0xC7, 0xF5, +0x51, 0xC3, 0x43, 0x10, 0x01, 0x6C, 0x80, 0x18, +0xC6, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0x00, 0x4A, 0x27, 0xF2, 0x6B, 0xA2, 0x06, 0x73, +0xF5, 0x61, 0x27, 0xF2, 0x6C, 0xA2, 0x01, 0x4B, +0x27, 0xF2, 0x6C, 0xC2, 0x78, 0x67, 0x27, 0xF2, +0x6B, 0xC2, 0x27, 0xF2, 0x74, 0xA2, 0x01, 0x4B, +0x27, 0xF2, 0x74, 0xC2, 0x2A, 0x10, 0x01, 0x6C, +0x80, 0x18, 0x4F, 0x0B, 0x01, 0x6C, 0x00, 0x6D, +0x80, 0x18, 0xB3, 0x0D, 0x19, 0x10, 0x01, 0x6C, +0x80, 0x18, 0x17, 0x0B, 0x01, 0x6C, 0x00, 0x6D, +0x80, 0x18, 0xF7, 0x0D, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x00, 0x4B, 0x27, 0xF2, 0x94, 0xA3, +0x01, 0x4C, 0x27, 0xF2, 0x94, 0xC3, 0x08, 0x22, +0xC7, 0xF5, 0x54, 0xA3, 0x03, 0x5A, 0x04, 0x60, +0x01, 0x4A, 0xC7, 0xF5, 0x54, 0xC3, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0x27, 0xF2, 0x6C, 0xA2, 0x01, 0x4B, 0x27, 0xF2, +0x6C, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xCA, 0xF6, +0x4C, 0xA2, 0x06, 0x72, 0x80, 0xF0, 0x08, 0x61, +0x30, 0xF0, 0x20, 0x69, 0x00, 0x6A, 0x8B, 0xF2, +0x10, 0x49, 0x06, 0xD2, 0x06, 0x92, 0xFF, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0x6C, 0xEA, 0x06, 0x93, +0x07, 0xD2, 0x01, 0x6D, 0x64, 0x36, 0xC0, 0xF3, +0x64, 0x98, 0x08, 0x6A, 0x4D, 0xEE, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF4, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, +0x0C, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x08, 0x92, 0x06, 0x72, 0x1A, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0xC2, 0xF2, 0xB8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x99, +0x01, 0x6D, 0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x01, 0x6D, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, 0xC2, 0x99, +0x21, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, +0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, +0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA2, 0xF2, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA2, 0xF2, 0x14, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xC0, 0x9B, 0x01, 0x6D, 0x23, 0xF3, +0x1C, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF4, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, 0xA3, 0xF3, +0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x03, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x07, 0x95, +0x62, 0xF4, 0xF8, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x0A, 0xF4, 0x00, 0x4C, 0x00, 0x6E, 0x80, 0x18, +0x83, 0x45, 0x06, 0x92, 0x04, 0x49, 0x01, 0x4A, +0x02, 0x72, 0x06, 0xD2, 0x7F, 0xF7, 0x1E, 0x61, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xCA, 0xF6, 0x49, 0xA2, 0xFF, 0x69, 0x8C, 0xE9, +0x02, 0x72, 0x02, 0x6A, 0x05, 0xD2, 0x02, 0x60, +0x04, 0x6B, 0x05, 0xD3, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x08, 0x6E, 0x03, 0xF3, +0x00, 0x6C, 0x0F, 0x6D, 0x40, 0xEA, 0x01, 0x6D, +0x03, 0xF3, 0x08, 0x6C, 0xAB, 0xED, 0x80, 0x18, +0xF0, 0x16, 0x04, 0xD2, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x00, 0x6C, 0x06, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x08, 0x6C, 0x80, 0x6D, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, +0x06, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, 0x80, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0x00, 0x68, 0x91, 0x67, +0x80, 0x18, 0x0C, 0x11, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0x27, 0xF2, 0x6C, 0xA2, +0x06, 0x73, 0x0B, 0x60, 0x05, 0x21, 0x27, 0xF2, +0x54, 0xA2, 0x05, 0x93, 0x6E, 0xEA, 0x05, 0x22, +0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, 0x64, 0x70, +0xEA, 0x61, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x06, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x04, 0x96, 0x03, 0xF3, 0x08, 0x69, 0x01, 0x6D, +0x91, 0x67, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x06, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x04, 0x96, 0x01, 0x6D, 0x91, 0x67, 0xAB, 0xED, +0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, 0xF0, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x0A, 0xF4, 0x00, 0x4C, +0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, 0x3E, 0x45, +0x30, 0xF0, 0x20, 0x6B, 0x06, 0xF0, 0x00, 0x6C, +0xA3, 0xF4, 0x00, 0x4B, 0x4C, 0xEC, 0xA7, 0xF5, +0x50, 0xDB, 0x82, 0x32, 0x52, 0x32, 0x02, 0x72, +0x0A, 0x60, 0x03, 0x6C, 0x4E, 0xEC, 0x04, 0x24, +0x01, 0x72, 0x02, 0x6A, 0x07, 0x60, 0x05, 0x10, +0x27, 0xF2, 0x89, 0xC3, 0x05, 0x10, 0x01, 0x6A, +0x01, 0x10, 0x00, 0x6A, 0x27, 0xF2, 0x49, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, 0x6C, 0x9B, +0xA7, 0xF5, 0x90, 0x9A, 0x8C, 0xEB, 0x62, 0x33, +0x62, 0x33, 0x27, 0xF2, 0x68, 0xC2, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xF1, 0x63, 0x1D, 0x62, +0x1C, 0xD1, 0x1B, 0xD0, 0x08, 0xA4, 0x02, 0x6A, +0x01, 0x69, 0x0C, 0xEA, 0x46, 0x32, 0x18, 0xD2, +0x80, 0x18, 0x8A, 0x04, 0x80, 0x18, 0xD5, 0x11, +0x80, 0x18, 0xEE, 0x0F, 0x00, 0x6C, 0x80, 0x18, +0x64, 0x05, 0x90, 0x67, 0x2C, 0xEC, 0x00, 0x6D, +0x80, 0x18, 0xB7, 0x0F, 0x80, 0xF0, 0x00, 0x2A, +0x30, 0xF0, 0x20, 0x68, 0xA3, 0xF4, 0x00, 0x48, +0x27, 0xF2, 0x6A, 0xA0, 0x27, 0xF2, 0x4C, 0xC0, +0x27, 0xF2, 0x4B, 0xC0, 0x01, 0x4B, 0x27, 0xF2, +0x6A, 0xC0, 0x27, 0xF2, 0x54, 0xC0, 0x27, 0xF2, +0x35, 0xC0, 0x38, 0x6C, 0x80, 0x18, 0xE7, 0x08, +0x00, 0x6C, 0xE7, 0xF5, 0x48, 0xD8, 0xA4, 0x67, +0x80, 0x18, 0x57, 0x0D, 0x30, 0xF0, 0x20, 0x6E, +0x30, 0xF0, 0x20, 0x6F, 0x04, 0x04, 0x0D, 0x05, +0xE1, 0xF7, 0x04, 0x4E, 0xE1, 0xF7, 0x10, 0x4F, +0x80, 0x18, 0x37, 0x09, 0x30, 0xF0, 0x20, 0x6D, +0x07, 0x04, 0x42, 0xF0, 0x04, 0x4D, 0x80, 0x18, +0xF6, 0x0C, 0x00, 0x68, 0x80, 0x18, 0x5D, 0x08, +0x01, 0x6C, 0x80, 0x18, 0xA0, 0x05, 0x18, 0x94, +0x80, 0x18, 0x99, 0x11, 0x00, 0x6C, 0x80, 0x18, +0xA0, 0x05, 0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF0, +0x04, 0x4C, 0x07, 0x05, 0x80, 0x18, 0xE8, 0x0B, +0x30, 0xF0, 0x20, 0x6E, 0x30, 0xF0, 0x20, 0x6F, +0x04, 0x04, 0x0D, 0x05, 0xE1, 0xF7, 0x04, 0x4E, +0xE1, 0xF7, 0x10, 0x4F, 0x80, 0x18, 0x1A, 0x08, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0x27, 0xF2, 0x6C, 0xA2, 0x06, 0x73, 0x08, 0x60, +0xFF, 0x6B, 0x01, 0x48, 0x6C, 0xE8, 0x03, 0x70, +0x00, 0x6B, 0x27, 0xF2, 0x74, 0xC2, 0xD2, 0x61, +0x30, 0xF0, 0x20, 0x68, 0x00, 0x6C, 0x80, 0x18, +0x33, 0x05, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x00, 0x6C, 0xFF, 0x6D, 0x08, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x10, 0x69, +0x91, 0x67, 0xFF, 0x6D, 0xAA, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, +0xFF, 0x6D, 0x0A, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0xFF, 0x6D, 0xAA, 0x6E, +0x40, 0xEA, 0x01, 0x6C, 0x80, 0x18, 0x64, 0x05, +0x1D, 0x97, 0x1C, 0x91, 0x1B, 0x90, 0x00, 0x6A, +0x0F, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF5, +0x08, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x00, 0x4B, 0xA0, 0xA4, 0xE0, 0xF0, +0xEE, 0xA3, 0x02, 0x6A, 0x01, 0x6E, 0x4B, 0xEA, +0xCC, 0xED, 0xEC, 0xEA, 0xAD, 0xEA, 0xE0, 0xF0, +0x4E, 0xC3, 0xA1, 0xA4, 0xCC, 0xEA, 0xE0, 0xF0, +0xAF, 0xC3, 0xFF, 0x6D, 0x0D, 0x22, 0x61, 0xA4, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, 0x48, 0x9A, +0x74, 0x33, 0x40, 0x6C, 0x4D, 0xE3, 0x40, 0xA3, +0xAC, 0xEA, 0x8D, 0xEA, 0xAC, 0xEA, 0x0A, 0x10, +0x61, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, +0x48, 0x9A, 0x74, 0x33, 0x4D, 0xE3, 0x80, 0xA3, +0xBF, 0x6A, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, 0x4C, 0x9A, +0x60, 0xA2, 0x03, 0x6A, 0x6C, 0xEA, 0x10, 0x6B, +0x64, 0xEA, 0xFF, 0x6A, 0x4C, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF5, 0x50, 0x9A, 0x04, 0xD3, +0x40, 0x9A, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF5, 0x54, 0x9A, 0x00, 0x9A, 0x05, 0x92, +0x0A, 0xEA, 0xC0, 0xF0, 0x04, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, 0xA0, 0xF0, +0x64, 0x9A, 0x02, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, +0x64, 0xDA, 0x30, 0xF0, 0x20, 0x69, 0xA3, 0xF4, +0x00, 0x49, 0xA2, 0xF5, 0x5A, 0xA9, 0x00, 0xF7, +0x00, 0x72, 0x07, 0x60, 0xA2, 0xF5, 0x7A, 0xA1, +0xA2, 0xF5, 0x9B, 0xA1, 0xAF, 0x43, 0x8E, 0xED, +0x13, 0x2D, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF2, +0x64, 0x9A, 0xFF, 0x6C, 0x01, 0x4C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0x23, 0xF3, 0x70, 0x9A, +0x8D, 0xEB, 0x23, 0xF3, 0x70, 0xDA, 0x97, 0x10, +0x30, 0xF0, 0x20, 0x6D, 0x82, 0xF3, 0xA8, 0x9D, +0x7F, 0x6E, 0xB5, 0xE0, 0xE0, 0xA5, 0xCC, 0xEF, +0x45, 0x2F, 0x00, 0xF4, 0x00, 0x72, 0x80, 0xF0, +0x0A, 0x60, 0xAC, 0x43, 0x8E, 0xED, 0x80, 0xF0, +0x06, 0x25, 0x00, 0xF5, 0x01, 0x72, 0x80, 0xF0, +0x02, 0x60, 0x00, 0xF6, 0x02, 0x72, 0x7F, 0x60, +0x00, 0xF7, 0x03, 0x72, 0x7C, 0x60, 0x00, 0xF5, +0x00, 0x72, 0x79, 0x60, 0xFD, 0x4B, 0x6E, 0xEC, +0x76, 0x24, 0x30, 0xF0, 0x20, 0x69, 0xA3, 0xF4, +0x00, 0x49, 0xA2, 0xF5, 0x5A, 0xA9, 0x00, 0xF6, +0x01, 0x72, 0x6D, 0x60, 0x00, 0xF7, 0x02, 0x72, +0x6A, 0x60, 0x00, 0xF6, 0x00, 0x72, 0x67, 0x60, +0xA2, 0xF5, 0x7A, 0xA1, 0xA2, 0xF5, 0x9B, 0xA1, +0xFE, 0x4B, 0x8E, 0xEB, 0x60, 0x23, 0x00, 0xF7, +0x01, 0x72, 0x5D, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF5, 0x58, 0x9A, 0x30, 0xF0, 0x20, 0x6D, +0x82, 0xF3, 0xA8, 0x9D, 0x49, 0xE0, 0x94, 0x34, +0x60, 0xAA, 0x91, 0xE1, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0xA2, 0xF4, 0x1A, 0x4C, +0xB5, 0xE0, 0x12, 0x10, 0x40, 0xA5, 0x4C, 0xEE, +0x01, 0x76, 0x1E, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF5, 0x58, 0x9A, 0x94, 0x34, 0x91, 0xE1, +0x49, 0xE0, 0x60, 0xAA, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0xA2, 0xF4, 0x1A, 0x4C, +0xFF, 0x6E, 0x6C, 0xEE, 0x40, 0xEA, 0xA2, 0xF5, +0x5B, 0xA1, 0x08, 0x6B, 0x01, 0x4A, 0xA2, 0xF5, +0x5B, 0xC1, 0xA2, 0xF5, 0x5B, 0xA1, 0x6E, 0xEA, +0x13, 0x2A, 0xA2, 0xF5, 0x5B, 0xC1, 0x10, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF2, 0x84, 0x9A, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, 0x78, 0x9B, +0x40, 0x9C, 0x6D, 0xEA, 0x40, 0xDC, 0x23, 0xF3, +0x50, 0x99, 0x6D, 0xEA, 0x23, 0xF3, 0x50, 0xD9, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, 0x5C, 0x9A, +0x04, 0x93, 0x40, 0x9A, 0x0E, 0xEA, 0x61, 0xE0, +0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF5, +0x40, 0x9A, 0x00, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF5, 0x54, 0x9A, 0x00, 0xDA, 0x05, 0x92, +0x4A, 0xE8, 0x5F, 0xF7, 0x06, 0x61, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFE, 0x63, 0x03, 0xD1, 0x02, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, 0x23, 0xF3, +0x70, 0x9A, 0x02, 0x6D, 0xAC, 0xEB, 0x40, 0xF1, +0x1A, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF5, +0x64, 0x9B, 0x80, 0xA3, 0x0F, 0x6B, 0x8C, 0xEB, +0x05, 0x23, 0xA0, 0xF0, 0x84, 0x9A, 0xAD, 0xEC, +0xA0, 0xF0, 0x84, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF5, 0x50, 0xA2, 0xFF, 0x4A, 0x00, 0xD2, +0x44, 0x11, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0x00, 0x4A, 0x20, 0xF1, 0x90, 0xAA, 0x00, 0xF7, +0x00, 0x74, 0x05, 0x60, 0x20, 0xF1, 0x11, 0xA2, +0x00, 0x94, 0x8A, 0xE8, 0x13, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF2, 0x64, 0x9A, 0xFF, 0x6C, +0x01, 0x4C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0x23, 0xF3, 0x70, 0x9A, 0x8D, 0xEB, 0x23, 0xF3, +0x70, 0xDA, 0x25, 0x11, 0x30, 0xF0, 0x20, 0x6C, +0x43, 0xF4, 0xCA, 0xA4, 0xE3, 0x67, 0xFF, 0x6D, +0xE7, 0xEE, 0xC7, 0x67, 0x01, 0x6F, 0xEC, 0xEE, +0xA0, 0xF0, 0x0A, 0x26, 0x0C, 0x35, 0x7F, 0x4D, +0x75, 0x4D, 0xB5, 0xE2, 0x00, 0x6A, 0x30, 0xF0, +0x20, 0x6E, 0x43, 0xF4, 0xEA, 0xA6, 0xFF, 0x6C, +0x1F, 0xF7, 0x00, 0x69, 0x8C, 0xEF, 0x74, 0x4F, +0xE8, 0x37, 0xFD, 0xE2, 0x2C, 0xEF, 0x02, 0xF0, +0x00, 0x77, 0x08, 0x60, 0x43, 0xF4, 0xEA, 0xA6, +0x8C, 0xEF, 0x74, 0x4F, 0xE8, 0x37, 0xFD, 0xE2, +0x2C, 0xEF, 0x0F, 0x2F, 0x30, 0xF0, 0x20, 0x6C, +0x43, 0xF4, 0x2A, 0xA4, 0xFF, 0x6C, 0x30, 0xF0, +0x20, 0x6E, 0x8C, 0xE9, 0x74, 0x49, 0x28, 0x31, +0xE2, 0x67, 0x25, 0xE2, 0x42, 0xF2, 0xD8, 0x9E, +0x0B, 0x10, 0x43, 0xF4, 0x2A, 0xA6, 0x30, 0xF0, +0x20, 0x6E, 0x42, 0xF2, 0xDC, 0x9E, 0x8C, 0xE9, +0x74, 0x49, 0x28, 0x31, 0xE2, 0x67, 0x25, 0xE2, +0xD9, 0xE1, 0xC0, 0xA6, 0x0C, 0x31, 0xCC, 0xEC, +0x30, 0xF0, 0x20, 0x6E, 0xA3, 0xF4, 0x00, 0x4E, +0xD9, 0xE1, 0xFD, 0xE6, 0xE0, 0xF0, 0x90, 0xC7, +0x30, 0xF0, 0x20, 0x6E, 0x43, 0xF4, 0xEA, 0xA6, +0xFF, 0x6C, 0x1F, 0xF7, 0x00, 0x69, 0x8C, 0xEF, +0x7C, 0x4F, 0xE8, 0x37, 0xFD, 0xE2, 0x2C, 0xEF, +0x02, 0xF0, 0x00, 0x77, 0x08, 0x60, 0x43, 0xF4, +0xEA, 0xA6, 0x8C, 0xEF, 0x7C, 0x4F, 0xE8, 0x37, +0xFD, 0xE2, 0x2C, 0xEF, 0x0E, 0x2F, 0x30, 0xF0, +0x20, 0x6C, 0x43, 0xF4, 0xCA, 0xA4, 0xFF, 0x6C, +0x30, 0xF0, 0x20, 0x6F, 0x8C, 0xEE, 0x7C, 0x4E, +0xC8, 0x36, 0xD9, 0xE2, 0x42, 0xF2, 0xF8, 0x9F, +0x0A, 0x10, 0x43, 0xF4, 0xCA, 0xA6, 0x30, 0xF0, +0x20, 0x6F, 0x42, 0xF2, 0xFC, 0x9F, 0x8C, 0xEE, +0x7C, 0x4E, 0xC8, 0x36, 0xD9, 0xE2, 0xF9, 0xE6, +0xC0, 0xA6, 0x01, 0x4A, 0x04, 0x72, 0xCC, 0xEC, +0x80, 0xC5, 0x01, 0x4D, 0x8C, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF4, 0xAA, 0xA2, 0x01, 0x6C, +0xC4, 0x67, 0xC4, 0xED, 0xCF, 0xED, 0x43, 0xF4, +0xCA, 0xA2, 0xAC, 0xEB, 0xFF, 0x6D, 0x84, 0xEE, +0x30, 0xF0, 0x20, 0x6E, 0xA2, 0xF5, 0xC4, 0x9E, +0xAC, 0xEC, 0x08, 0x6F, 0x80, 0xC6, 0x43, 0xF4, +0x8A, 0xA2, 0xAC, 0xEC, 0x01, 0x4C, 0xAC, 0xEC, +0x43, 0xF4, 0x8A, 0xC2, 0x43, 0xF4, 0xAA, 0xA2, +0x03, 0x6C, 0xAC, 0xEC, 0x43, 0xF4, 0x8A, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0x20, 0xF1, 0x91, 0xA2, 0x01, 0x4C, 0x20, 0xF1, +0x91, 0xC2, 0x20, 0xF1, 0x91, 0xA2, 0xEE, 0xEC, +0x70, 0x2C, 0x20, 0xF1, 0x91, 0xC2, 0x6D, 0x10, +0x30, 0xF0, 0x20, 0x6E, 0x82, 0xF2, 0x04, 0x9E, +0x02, 0x6F, 0xC0, 0x98, 0xED, 0xEE, 0xC0, 0xD8, +0x23, 0xF3, 0xD0, 0x9A, 0x23, 0xF3, 0x7C, 0xC2, +0x43, 0xF4, 0x6A, 0xA4, 0xED, 0xEE, 0x23, 0xF3, +0xD0, 0xDA, 0x23, 0xF3, 0x7D, 0xC2, 0x43, 0xF4, +0x4A, 0xA4, 0x1F, 0xF7, 0x00, 0x6B, 0xAC, 0xEA, +0x74, 0x4A, 0x48, 0x32, 0x6C, 0xEA, 0x02, 0xF0, +0x00, 0x72, 0x07, 0x60, 0x43, 0xF4, 0x4A, 0xA4, +0xAC, 0xEA, 0x74, 0x4A, 0x48, 0x32, 0x6C, 0xEA, +0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF4, +0x6A, 0xA2, 0x30, 0xF0, 0x20, 0x6C, 0xA2, 0xF5, +0x88, 0x9C, 0xFF, 0x6A, 0x4C, 0xEB, 0x8D, 0xE3, +0x68, 0x33, 0xA0, 0xA3, 0x0A, 0x10, 0x43, 0xF4, +0x4A, 0xA4, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF5, +0x6C, 0x9B, 0xAC, 0xEA, 0x69, 0xE2, 0x48, 0x32, +0x40, 0xA2, 0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF7, 0xBE, 0xC2, +0x43, 0xF4, 0x4A, 0xA3, 0x43, 0xF4, 0x8A, 0xA3, +0xFF, 0x6A, 0x1F, 0xF7, 0x00, 0x6D, 0x4C, 0xEC, +0x88, 0x34, 0xC0, 0xF1, 0x11, 0x4C, 0xAC, 0xEC, +0x0B, 0x2C, 0x43, 0xF4, 0x6A, 0xA3, 0xFF, 0x6A, +0x30, 0xF0, 0x20, 0x6C, 0x4C, 0xEB, 0x74, 0x4B, +0x68, 0x33, 0xA2, 0xF5, 0x90, 0x9C, 0x09, 0x10, +0x43, 0xF4, 0x6A, 0xA3, 0x30, 0xF0, 0x20, 0x6C, +0xA2, 0xF5, 0x94, 0x9C, 0x4C, 0xEB, 0x74, 0x4B, +0x68, 0x33, 0x8D, 0xE3, 0x60, 0xA3, 0x6C, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF7, 0x5F, 0xC3, +0x02, 0x10, 0xBF, 0xF6, 0x1A, 0x2B, 0x03, 0x91, +0x02, 0x90, 0x02, 0x63, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF2, 0x48, 0x9A, 0xFF, 0x68, +0x60, 0xA2, 0x6C, 0xE8, 0x1D, 0x20, 0x00, 0x6B, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x01, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xA2, 0xF5, 0x58, 0x9A, 0x20, 0x6B, +0x20, 0x70, 0x60, 0xC2, 0x0D, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, 0x30, 0xF0, +0x20, 0x6C, 0xA0, 0xF0, 0x64, 0x9A, 0x02, 0xF3, +0x8C, 0x9C, 0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF2, 0x60, 0x9B, +0x10, 0xF0, 0x30, 0x6A, 0x89, 0xF6, 0x09, 0x4A, +0x40, 0xDB, 0x00, 0x1C, 0xAC, 0x39, 0x80, 0x18, +0x13, 0x4D, 0x05, 0x6C, 0x01, 0x6D, 0x80, 0x18, +0x68, 0x00, 0x20, 0xBA, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0xFF, 0x17, 0x00, 0x65, +0xDE, 0x63, 0x43, 0x62, 0x42, 0xD1, 0x41, 0xD0, +0x01, 0x6A, 0x7D, 0x67, 0x4B, 0xEA, 0x58, 0xC3, +0x01, 0x6A, 0x5A, 0xC3, 0x08, 0x6A, 0x5B, 0xC3, +0x60, 0xA4, 0x7F, 0x6A, 0x6C, 0xEA, 0x01, 0x72, +0x7E, 0x30, 0xA0, 0xF0, 0x05, 0x61, 0x48, 0xA4, +0xBD, 0x67, 0x5C, 0xC5, 0x41, 0xA4, 0x5D, 0xC5, +0x42, 0xA4, 0x5E, 0xC5, 0x46, 0xA4, 0x20, 0xF0, +0x40, 0xC5, 0x43, 0xA4, 0x5F, 0xC5, 0x47, 0xA4, +0x20, 0xF0, 0x41, 0xC5, 0x5C, 0xA5, 0x80, 0xF0, +0x0D, 0x2A, 0x7D, 0x67, 0x5F, 0xA3, 0x7E, 0xA3, +0x40, 0x32, 0x6D, 0xEA, 0x03, 0x72, 0x05, 0x60, +0x08, 0x72, 0x21, 0x60, 0x02, 0x72, 0x37, 0x60, +0x81, 0x10, 0x06, 0x20, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF4, 0x40, 0x9A, 0x06, 0x04, 0x40, 0xEA, +0x9D, 0x67, 0x20, 0xF0, 0xE1, 0xA4, 0x20, 0xF0, +0x40, 0xA4, 0xFF, 0xF7, 0x1F, 0x6B, 0xE0, 0x37, +0x5D, 0xE7, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, +0x50, 0x9A, 0x30, 0xF0, 0x20, 0x6D, 0x05, 0x6C, +0x66, 0xF2, 0x0C, 0x4D, 0x00, 0xF2, 0x00, 0x6E, +0x6C, 0xEF, 0x40, 0xEA, 0x7E, 0x10, 0xBD, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0x10, 0x6A, 0x5B, 0xC5, +0x30, 0xF0, 0x20, 0x69, 0x80, 0xF2, 0x4C, 0x9B, +0x09, 0xF4, 0x00, 0x49, 0x09, 0x04, 0xB1, 0x67, +0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x80, 0xF2, 0x4C, 0x9C, 0xA4, 0x41, 0x0A, 0x04, +0x04, 0x6E, 0x40, 0xEA, 0x4B, 0x10, 0x06, 0x20, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, +0x06, 0x04, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x68, +0xA3, 0xF4, 0x00, 0x48, 0x65, 0xF7, 0x7C, 0xA0, +0x01, 0x6A, 0x6C, 0xEA, 0x30, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF4, 0x50, 0x9A, 0x40, 0xEA, +0x65, 0xF7, 0x68, 0xA0, 0x04, 0x6A, 0x6C, 0xEA, +0xFF, 0x6B, 0x6C, 0xEA, 0x21, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xA2, 0xF5, 0x5C, 0x9A, 0x65, 0xF7, +0xD4, 0x98, 0x10, 0xF0, 0x31, 0x6C, 0x40, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, 0x40, 0x9A, +0xC5, 0xF1, 0x19, 0x4C, 0x00, 0x6D, 0x40, 0x9A, +0x01, 0x6F, 0x5B, 0xE6, 0xE0, 0xF3, 0x08, 0x6A, +0x5B, 0xEE, 0x01, 0x2A, 0xE5, 0xE8, 0x00, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x4C, 0x9A, 0x12, 0xEE, 0x40, 0xEA, 0x29, 0x10, +0x80, 0x18, 0x76, 0x4A, 0x26, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF4, 0x54, 0x9A, 0x40, 0xEA, +0x65, 0xF7, 0xBA, 0xA8, 0x00, 0x6C, 0x80, 0x18, +0x25, 0x4A, 0x1B, 0x10, 0x1A, 0x20, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, 0x13, 0x10, +0x14, 0x2A, 0x69, 0xA4, 0xBD, 0x67, 0x7C, 0xC5, +0x68, 0xA4, 0x5E, 0xC5, 0x5F, 0xC5, 0x7D, 0xC5, +0x46, 0xA4, 0x20, 0xF0, 0x40, 0xC5, 0x67, 0xA4, +0x08, 0x20, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, +0x40, 0x9A, 0x20, 0xF0, 0x61, 0xC5, 0x06, 0x04, +0x40, 0xEA, 0x43, 0x97, 0x42, 0x91, 0x41, 0x90, +0x22, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0x68, 0x44, 0xFA, 0x4B, +0x4C, 0xEB, 0x04, 0x5B, 0x03, 0x60, 0x80, 0x18, +0xC7, 0x40, 0x4A, 0x10, 0xFE, 0x4C, 0x4C, 0xEC, +0x0C, 0x5C, 0x31, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x88, 0x34, 0x42, 0xF1, 0x14, 0x4A, 0x89, 0xE2, +0x40, 0x9A, 0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xF4, 0x48, 0x9A, 0x08, 0x10, 0x85, 0x67, +0x80, 0x18, 0x3B, 0x4A, 0x35, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF4, 0x44, 0x9A, 0x85, 0x67, +0x40, 0xEA, 0x2E, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xF4, 0x54, 0x9A, 0x40, 0xEA, 0x28, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, 0x58, 0x9A, +0xF2, 0x17, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, +0x5C, 0x9A, 0xED, 0x17, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF4, 0x40, 0x9A, 0xE8, 0x17, 0x85, 0x67, +0x00, 0x18, 0x28, 0xCE, 0x15, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF2, 0x64, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x82, 0xF3, 0x84, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0x23, 0xF3, 0x70, 0x9A, +0x8D, 0xEB, 0x23, 0xF3, 0x70, 0xDA, 0xFF, 0x6A, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x07, 0xD4, 0x60, 0xA4, 0x01, 0xA4, 0x02, 0x6A, +0x6C, 0xEA, 0x24, 0x67, 0x06, 0xD0, 0x37, 0x22, +0x42, 0xA4, 0x06, 0xD2, 0x34, 0x10, 0x07, 0x93, +0x01, 0x6D, 0x90, 0x67, 0x40, 0xA3, 0x4C, 0xED, +0x00, 0x18, 0xBC, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x5C, 0x9A, 0x90, 0x67, 0x40, 0xEA, +0x0F, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x58, 0x9A, 0x90, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF5, 0x48, 0x9A, 0x14, 0x33, +0x4D, 0xE3, 0x80, 0xA3, 0xBF, 0x6A, 0x12, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x54, 0x9A, +0x90, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF5, 0x48, 0x9A, 0x14, 0x33, 0xFF, 0x6C, +0x4D, 0xE3, 0x40, 0xA3, 0x8C, 0xEA, 0x40, 0x6C, +0x8D, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, 0x40, 0xC3, +0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, 0x06, 0x92, +0x03, 0xEA, 0xC9, 0x60, 0x43, 0xA1, 0x07, 0x6B, +0x01, 0x6C, 0x4C, 0xEB, 0x40, 0xA1, 0x8C, 0xEA, +0x1C, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0x00, 0x4A, 0x43, 0xF3, 0xC0, 0xA2, 0x84, 0xEB, +0x1F, 0x6F, 0xCA, 0x35, 0x8F, 0xEC, 0xEC, 0xED, +0x8C, 0xED, 0x7D, 0x6C, 0x8B, 0xEC, 0xA8, 0x35, +0xCC, 0xEC, 0xAD, 0xEC, 0x43, 0xF3, 0x80, 0xC2, +0xA0, 0xF0, 0x8F, 0xA2, 0x8E, 0xEB, 0x1E, 0x2B, +0x01, 0x6B, 0x6B, 0xEB, 0x43, 0xF3, 0x61, 0xC2, +0x19, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0x00, 0x4A, 0x43, 0xF3, 0xC0, 0xA2, 0x1F, 0x6F, +0x84, 0xEB, 0xCA, 0x35, 0xEC, 0xED, 0xAD, 0xEC, +0xEC, 0xEC, 0x88, 0x35, 0x7D, 0x6C, 0x8B, 0xEC, +0xCC, 0xEC, 0xAD, 0xEC, 0x43, 0xF3, 0x80, 0xC2, +0xA0, 0xF0, 0x8F, 0xA2, 0x8E, 0xEB, 0x02, 0x2B, +0x43, 0xF3, 0x81, 0xC2, 0x30, 0xF0, 0x20, 0x68, +0xA3, 0xF4, 0x00, 0x48, 0x43, 0xF3, 0x60, 0xA0, +0x02, 0x6A, 0x6C, 0xEA, 0x1A, 0x22, 0x03, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x43, 0xF3, 0x40, 0xC0, +0x00, 0x18, 0x73, 0xCE, 0x04, 0xD2, 0x04, 0x93, +0x43, 0xF3, 0x44, 0x98, 0x6E, 0xEA, 0x03, 0x22, +0x04, 0x94, 0x00, 0x18, 0x94, 0xCE, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, 0x43, 0xF3, +0x80, 0xA2, 0x02, 0x6B, 0x8D, 0xEB, 0x43, 0xF3, +0x60, 0xC2, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, 0x68, 0x44, +0xC8, 0x4B, 0x4C, 0xEB, 0x20, 0x5B, 0x05, 0x67, +0x03, 0x60, 0x80, 0x18, 0xC6, 0x40, 0x2B, 0x10, +0x01, 0x74, 0x0A, 0x60, 0x05, 0x24, 0xBB, 0x74, +0x0B, 0x60, 0xCD, 0x74, 0x0D, 0x60, 0x10, 0x10, +0x85, 0x67, 0x80, 0x18, 0x43, 0x12, 0x1F, 0x10, +0x85, 0x67, 0x80, 0x18, 0x58, 0x14, 0x1B, 0x10, +0x85, 0x67, 0x00, 0x18, 0x8E, 0xD8, 0x17, 0x10, +0x85, 0x67, 0x80, 0x18, 0x4B, 0x12, 0x13, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF2, 0x64, 0x9A, +0x01, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0x23, 0xF3, 0x70, 0x9A, 0x8D, 0xEB, 0x23, 0xF3, +0x70, 0xDA, 0x0E, 0x6A, 0x01, 0x10, 0x00, 0x6A, +0x40, 0xC0, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xA3, 0xF4, +0x00, 0x48, 0x20, 0xF1, 0x50, 0xA0, 0x20, 0xF1, +0x71, 0xA0, 0x4E, 0xEB, 0x29, 0x23, 0x67, 0x42, +0x17, 0x4B, 0x6C, 0x33, 0x0D, 0xE3, 0x4C, 0x32, +0x80, 0xA3, 0xF0, 0xF0, 0xA1, 0x42, 0xB5, 0xE0, +0x80, 0x18, 0xAD, 0x14, 0x20, 0xF1, 0x50, 0xA0, +0x01, 0x4A, 0x20, 0xF1, 0x50, 0xC0, 0x20, 0xF1, +0x70, 0xA0, 0x20, 0xF1, 0x51, 0xA0, 0x6E, 0xEA, +0x06, 0x22, 0xA0, 0xF0, 0x44, 0x98, 0x02, 0x6B, +0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, 0x20, 0xF1, +0x70, 0xA2, 0x08, 0x6C, 0x8E, 0xEB, 0x02, 0x2B, +0x20, 0xF1, 0x70, 0xC2, 0x80, 0x18, 0xD6, 0x12, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0xA3, 0xF4, 0x00, 0x48, 0xA2, 0xF5, +0x7A, 0xA0, 0x7F, 0x6E, 0x74, 0x35, 0x11, 0xE5, +0xA2, 0xF4, 0x5A, 0xA4, 0xCC, 0xEA, 0x1E, 0x2A, +0x7F, 0x4B, 0x27, 0x4B, 0x74, 0x33, 0x0D, 0xE3, +0xA4, 0x67, 0x82, 0xA3, 0xC2, 0xF4, 0x03, 0x4D, +0x80, 0x18, 0xAD, 0x14, 0xA2, 0xF5, 0x9A, 0xA0, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF5, 0x64, 0x9B, +0x94, 0x34, 0x09, 0xE4, 0xC2, 0xF4, 0xA0, 0xA2, +0x91, 0xE0, 0xA0, 0xC3, 0xC2, 0xF4, 0x61, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, 0x48, 0x9A, +0x60, 0xC2, 0x32, 0x10, 0x01, 0x72, 0x34, 0x61, +0xA2, 0xF4, 0x5B, 0xA4, 0xFF, 0x72, 0x0E, 0x61, +0xA2, 0xF4, 0x9C, 0xA4, 0xB5, 0xE0, 0xA2, 0xF4, +0x1A, 0x4D, 0x80, 0x18, 0x2B, 0x14, 0xA2, 0xF5, +0x7A, 0xA0, 0x7F, 0x4B, 0x27, 0x4B, 0x74, 0x33, +0x01, 0xE3, 0x06, 0x10, 0x7F, 0x4B, 0x27, 0x4B, +0x74, 0x33, 0x01, 0x6A, 0x01, 0xE3, 0x4B, 0xEA, +0x42, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0x00, 0x4A, 0xA2, 0xF5, 0x9A, 0xA2, 0x30, 0xF0, +0x20, 0x6D, 0xC2, 0xF5, 0xA4, 0x9D, 0x94, 0x34, +0x4D, 0xE4, 0xC2, 0xF4, 0xC0, 0xA3, 0x91, 0xE2, +0xC0, 0xC5, 0xC2, 0xF4, 0xA1, 0xA3, 0x30, 0xF0, +0x20, 0x6B, 0xC2, 0xF5, 0x68, 0x9B, 0xA0, 0xC3, +0xA2, 0xF4, 0x1A, 0x4C, 0x80, 0x18, 0xC2, 0x13, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0xA3, 0xF4, 0x00, 0x48, 0xA2, 0xF5, +0x7A, 0xA0, 0xA2, 0xF5, 0x5B, 0xA0, 0x6E, 0xEA, +0x42, 0x22, 0x20, 0xF6, 0x52, 0xA8, 0x09, 0xF6, +0x00, 0x72, 0x10, 0x60, 0x20, 0xF6, 0x92, 0xA0, +0x20, 0xF6, 0x73, 0xA0, 0xAE, 0x44, 0x6E, 0xED, +0x09, 0x25, 0x09, 0xF7, 0x01, 0x72, 0x06, 0x60, +0x09, 0xF7, 0x00, 0x72, 0x03, 0x60, 0xFF, 0x4C, +0x8E, 0xEB, 0x0D, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x00, 0x4B, 0xA0, 0xF0, 0x44, 0x9B, +0x04, 0x6C, 0x8D, 0xEA, 0x02, 0x6C, 0x8D, 0xEA, +0xA0, 0xF0, 0x44, 0xDB, 0x20, 0x10, 0x80, 0x18, +0xEA, 0x14, 0xA2, 0xF5, 0x5A, 0xA0, 0x01, 0x4A, +0xA2, 0xF5, 0x5A, 0xC0, 0xA2, 0xF5, 0x7A, 0xA0, +0xA2, 0xF5, 0x5B, 0xA0, 0x6E, 0xEA, 0x06, 0x22, +0xA0, 0xF0, 0x44, 0x98, 0x02, 0x6B, 0x6D, 0xEA, +0xA0, 0xF0, 0x44, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0xA2, 0xF5, 0x7A, 0xA2, +0x08, 0x6C, 0x8E, 0xEB, 0x02, 0x2B, 0xA2, 0xF5, +0x7A, 0xC2, 0x80, 0x18, 0x62, 0x12, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0x63, 0x01, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF5, 0x6C, 0x9B, 0x30, 0xF0, 0x20, 0x68, +0xC2, 0xF5, 0x10, 0x98, 0xE0, 0x9B, 0xFF, 0x6A, +0x4C, 0xEC, 0x0C, 0xEF, 0x08, 0x5C, 0x4C, 0xED, +0x4C, 0xEE, 0xE0, 0xDB, 0x46, 0x60, 0xB0, 0x75, +0x2E, 0x61, 0xB2, 0x76, 0x13, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF5, 0xB4, 0x9A, 0x01, 0x6A, +0x44, 0xEC, 0xC0, 0x9D, 0x00, 0xF6, 0x40, 0x34, +0xCD, 0xEC, 0x80, 0xDD, 0xC0, 0x9D, 0x40, 0x34, +0x80, 0x34, 0x8F, 0xEC, 0xCC, 0xEC, 0x80, 0xDD, +0x80, 0x9B, 0x4E, 0x10, 0xB1, 0x76, 0x80, 0xF0, +0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, +0xB4, 0x9A, 0x01, 0x6A, 0x44, 0xEC, 0xC0, 0x9D, +0x00, 0xF6, 0x40, 0x34, 0xCD, 0xEC, 0x80, 0xDD, +0xC0, 0x9D, 0x40, 0x34, 0x80, 0x34, 0x8F, 0xEC, +0xCC, 0xEC, 0x80, 0xDD, 0x80, 0x9B, 0x4F, 0xEA, +0x8C, 0xEA, 0x40, 0xDB, 0x7B, 0x10, 0xA0, 0x75, +0x7D, 0x61, 0xA1, 0x76, 0x08, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF5, 0x54, 0x9A, 0x01, 0x6B, +0x64, 0xEC, 0xA0, 0x9A, 0x51, 0x10, 0xA2, 0x76, +0x6F, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, +0x54, 0x9A, 0x01, 0x6B, 0x64, 0xEC, 0xA0, 0x9A, +0x5A, 0x10, 0xE8, 0x44, 0x4C, 0xEF, 0x08, 0x5F, +0xE0, 0x6A, 0x65, 0x60, 0xB0, 0x75, 0x35, 0x61, +0xB2, 0x76, 0x18, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xC2, 0xF5, 0x58, 0x9A, 0x01, 0x6E, 0xA6, 0x67, +0x00, 0x9A, 0xA4, 0xEF, 0xE5, 0x67, 0x00, 0xF6, +0xA0, 0x35, 0x0D, 0xED, 0xA0, 0xDA, 0xA0, 0x9A, +0xE0, 0x37, 0xE0, 0x37, 0xEF, 0xEF, 0xAC, 0xEF, +0xE0, 0xDA, 0x40, 0x9B, 0xC4, 0xEC, 0x86, 0x67, +0x4D, 0xEC, 0x19, 0x10, 0xB1, 0x76, 0x44, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, 0x58, 0x9A, +0x01, 0x6E, 0xA6, 0x67, 0x00, 0x9A, 0xA4, 0xEF, +0xE5, 0x67, 0x00, 0xF6, 0xA0, 0x35, 0x0D, 0xED, +0xA0, 0xDA, 0xA0, 0x9A, 0xE0, 0x37, 0xE0, 0x37, +0xEF, 0xEF, 0xAC, 0xEF, 0xE0, 0xDA, 0x40, 0x9B, +0xC4, 0xEC, 0xCF, 0xEC, 0x4C, 0xEC, 0x80, 0xDB, +0x29, 0x10, 0xA0, 0x75, 0x2B, 0x61, 0xA1, 0x76, +0x11, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, +0x58, 0x9A, 0x01, 0x6B, 0x64, 0xEF, 0xA0, 0x9A, +0x00, 0xF6, 0x60, 0x34, 0x8F, 0xEC, 0xAC, 0xEC, +0x80, 0xDA, 0x80, 0x9A, 0x60, 0x33, 0x60, 0x33, +0x8D, 0xEB, 0x13, 0x10, 0xA2, 0x76, 0x14, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, 0x58, 0x9A, +0x01, 0x6B, 0x64, 0xEF, 0xA0, 0x9A, 0x00, 0xF6, +0x60, 0x34, 0x8F, 0xEC, 0xAC, 0xEC, 0x80, 0xDA, +0x80, 0x9A, 0x60, 0x33, 0x60, 0x33, 0x6F, 0xEB, +0x8C, 0xEB, 0x60, 0xDA, 0xF0, 0x6A, 0x03, 0x10, +0xE2, 0x6A, 0x01, 0x10, 0xE1, 0x6A, 0x01, 0x90, +0x01, 0x63, 0x20, 0xE8, 0xFF, 0x6B, 0x6C, 0xEC, +0x08, 0x5C, 0xFF, 0x63, 0x18, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF5, 0x5C, 0x9A, 0x01, 0x6D, +0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, +0x37, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, +0x40, 0x9A, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, +0xAC, 0xEA, 0x30, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xC2, 0xF5, 0x54, 0x9A, 0x1C, 0x10, 0xF8, 0x4C, +0x6C, 0xEC, 0x08, 0x5C, 0xE0, 0x6A, 0x27, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x44, 0x9A, +0x01, 0x6D, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, +0xAC, 0xEA, 0x1A, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF5, 0x48, 0x9A, 0x40, 0xA2, 0x6C, 0xEA, +0x47, 0xEC, 0xAC, 0xEA, 0x13, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF5, 0x58, 0x9A, 0x40, 0xA2, +0xA4, 0xEC, 0x85, 0x67, 0x6C, 0xEC, 0x4C, 0xEC, +0x5D, 0x67, 0x80, 0xC2, 0x40, 0xA2, 0x4C, 0xEB, +0x6B, 0xEA, 0xC0, 0xF7, 0x42, 0x32, 0x03, 0x10, +0xE4, 0x6A, 0x01, 0x10, 0xE6, 0x6A, 0x01, 0x63, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, +0x08, 0x5C, 0x6C, 0xED, 0x20, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF5, 0x5C, 0x9A, 0x01, 0x6E, +0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xCC, 0xEA, +0x48, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, +0x40, 0x9A, 0xC4, 0xEC, 0x86, 0x67, 0x40, 0xA2, +0x6C, 0xEA, 0xCC, 0xEA, 0xCE, 0xEA, 0x3B, 0x2A, +0x05, 0x25, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, +0xAC, 0x9A, 0x24, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF5, 0x4C, 0x9A, 0x29, 0x10, 0xF8, 0x4C, +0x6C, 0xEC, 0x08, 0x5C, 0xE0, 0x6A, 0x2E, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x44, 0x9A, +0x01, 0x6E, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, +0xCC, 0xEA, 0x23, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF5, 0x48, 0x9A, 0xC4, 0xEC, 0x86, 0x67, +0x40, 0xA2, 0x6C, 0xEA, 0xCC, 0xEA, 0xCE, 0xEA, +0x16, 0x2A, 0x0A, 0x25, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF5, 0xB0, 0x9A, 0x40, 0xA5, 0x6C, 0xEA, +0x8D, 0xEA, 0x6C, 0xEA, 0x40, 0xC5, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x50, 0x9A, +0xA0, 0xA2, 0x8F, 0xEC, 0x6C, 0xEC, 0xAC, 0xEC, +0x80, 0xC2, 0xF0, 0x6A, 0x20, 0xE8, 0xE5, 0x6A, +0x20, 0xE8, 0xE4, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6B, 0x6C, 0xEC, 0x08, 0x5C, 0x0F, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, 0x5C, 0x9A, +0x01, 0x6D, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, +0xAC, 0xEA, 0x1F, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF5, 0x40, 0x9A, 0x13, 0x10, 0xF8, 0x4C, +0x6C, 0xEC, 0x08, 0x5C, 0xE0, 0x6A, 0x16, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x44, 0x9A, +0x01, 0x6D, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, +0xAC, 0xEA, 0x0B, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF5, 0x48, 0x9A, 0x40, 0xA2, 0x4C, 0xEB, +0x67, 0xEC, 0x45, 0x67, 0x6E, 0xEA, 0xAC, 0xEA, +0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6B, 0x6C, 0xEC, 0x08, 0x5C, 0x1A, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, 0x5C, 0x9A, +0x01, 0x6E, 0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, +0xCC, 0xEA, 0x35, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF5, 0x40, 0x9A, 0xC4, 0xEC, 0x86, 0x67, +0xA0, 0xA2, 0x6C, 0xED, 0xCC, 0xED, 0xCE, 0xED, +0x2A, 0x2D, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, +0x4C, 0x9A, 0x1E, 0x10, 0xF8, 0x4C, 0x6C, 0xEC, +0x08, 0x5C, 0xE0, 0x6A, 0x21, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF5, 0x44, 0x9A, 0x01, 0x6E, +0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xCC, 0xEA, +0x16, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, +0x48, 0x9A, 0xC4, 0xEC, 0x86, 0x67, 0xA0, 0xA2, +0x6C, 0xED, 0xCC, 0xED, 0xCE, 0xED, 0x0B, 0x2D, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x50, 0x9A, +0x40, 0xA2, 0x4C, 0xEB, 0x8C, 0xEB, 0x6E, 0xEC, +0x01, 0x5C, 0x58, 0x67, 0x20, 0xE8, 0x00, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x01, 0x72, 0xFF, 0xF7, +0x1F, 0x6C, 0xAC, 0xEC, 0x05, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x69, 0x04, 0x67, 0x2C, 0xE8, 0x90, 0x67, +0xA0, 0x6D, 0xA2, 0x6E, 0x80, 0x18, 0x48, 0x15, +0x90, 0x67, 0x80, 0x18, 0xAB, 0x15, 0x7D, 0x67, +0x50, 0xC3, 0x50, 0xA3, 0x09, 0x97, 0x07, 0x90, +0x2C, 0xEA, 0x08, 0x91, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x68, 0x24, 0x67, 0x0C, 0xE9, 0x91, 0x67, +0xAC, 0xE8, 0xA1, 0x6E, 0xA0, 0x6D, 0x80, 0x18, +0x48, 0x15, 0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, +0xD1, 0x15, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF5, 0x6C, 0x9A, +0x30, 0xF0, 0x20, 0x6D, 0xC2, 0xF5, 0xB0, 0x9D, +0x40, 0x9B, 0xA2, 0x6E, 0xAC, 0xEA, 0x40, 0xDB, +0xFF, 0x6A, 0x4C, 0xEC, 0xA0, 0x6D, 0x80, 0x18, +0x48, 0x15, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0xB0, 0x6D, 0xB2, 0x6E, 0x80, 0x18, 0x48, 0x15, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0xB0, 0x6D, 0xB1, 0x6E, 0x80, 0x18, 0x48, 0x15, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, +0x04, 0x67, 0x4C, 0xE8, 0xAC, 0xEA, 0xA4, 0x72, +0x0C, 0x61, 0x90, 0x67, 0x80, 0x18, 0xFE, 0x15, +0x01, 0x72, 0x04, 0x61, 0x90, 0x67, 0x80, 0x18, +0x5B, 0x16, 0x1F, 0x10, 0x90, 0x67, 0x00, 0x6D, +0x0D, 0x10, 0xA5, 0x72, 0x11, 0x61, 0x90, 0x67, +0x80, 0x18, 0xFE, 0x15, 0x01, 0x72, 0x04, 0x61, +0x90, 0x67, 0x80, 0x18, 0x5B, 0x16, 0x18, 0x10, +0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x50, 0x16, +0x90, 0x67, 0x80, 0x18, 0x5B, 0x16, 0x14, 0x10, +0x90, 0x67, 0x80, 0x18, 0x16, 0x16, 0x01, 0x72, +0x07, 0x61, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, +0x50, 0x16, 0x90, 0x67, 0x00, 0x6D, 0x06, 0x10, +0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x50, 0x16, +0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x50, 0x16, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xEE, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, 0x06, 0xF1, +0x6A, 0xA2, 0xFF, 0xF7, 0x1F, 0x69, 0x04, 0xD4, +0xAC, 0xE9, 0x05, 0xD6, 0x0B, 0x23, 0x06, 0xF1, +0x6B, 0xA2, 0x04, 0x23, 0x06, 0xF1, 0x88, 0xA2, +0xA5, 0x6D, 0x07, 0x10, 0x06, 0xF1, 0x88, 0xA2, +0xA4, 0x6D, 0x03, 0x10, 0x06, 0xF1, 0x88, 0xA2, +0xA3, 0x6D, 0x30, 0xF0, 0x20, 0x68, 0xA3, 0xF4, +0x00, 0x48, 0x80, 0x18, 0x72, 0x16, 0x06, 0xF1, +0x4C, 0xA0, 0x7D, 0x22, 0x04, 0x94, 0xB1, 0x67, +0x80, 0x18, 0x39, 0x16, 0x06, 0xF1, 0x4A, 0xA0, +0x0B, 0x22, 0x06, 0xF1, 0x4B, 0xA0, 0x04, 0x22, +0x06, 0xF1, 0x88, 0xA0, 0xA5, 0x6D, 0x07, 0x10, +0x06, 0xF1, 0x88, 0xA0, 0xA4, 0x6D, 0x03, 0x10, +0x06, 0xF1, 0x88, 0xA0, 0xA3, 0x6D, 0x80, 0x18, +0x72, 0x16, 0x30, 0xF0, 0x20, 0x6A, 0xA9, 0xF5, +0x4D, 0xA2, 0x01, 0x68, 0x5D, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF5, 0x54, 0x9A, 0x60, 0xA2, +0x10, 0x6A, 0x6C, 0xEA, 0x58, 0x2A, 0x04, 0x94, +0xB1, 0x67, 0x80, 0x18, 0x39, 0x16, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, 0x06, 0xF1, +0x6A, 0xA2, 0x0B, 0x23, 0x06, 0xF1, 0x6B, 0xA2, +0x04, 0x23, 0x06, 0xF1, 0x88, 0xA2, 0xA5, 0x6D, +0x07, 0x10, 0x06, 0xF1, 0x88, 0xA2, 0xA4, 0x6D, +0x03, 0x10, 0x06, 0xF1, 0x88, 0xA2, 0xA3, 0x6D, +0x80, 0x18, 0x72, 0x16, 0xDC, 0x17, 0x04, 0x94, +0xB1, 0x67, 0x80, 0x18, 0x39, 0x16, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, 0x06, 0xF1, +0x6A, 0xA2, 0x0B, 0x23, 0x06, 0xF1, 0x6B, 0xA2, +0x04, 0x23, 0x06, 0xF1, 0x88, 0xA2, 0xA5, 0x6D, +0x07, 0x10, 0x06, 0xF1, 0x88, 0xA2, 0xA4, 0x6D, +0x03, 0x10, 0x06, 0xF1, 0x88, 0xA2, 0xA3, 0x6D, +0x80, 0x18, 0x72, 0x16, 0x04, 0x94, 0xB1, 0x67, +0x80, 0x18, 0x39, 0x16, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0x06, 0xF1, 0x6A, 0xA2, +0x0B, 0x23, 0x06, 0xF1, 0x6B, 0xA2, 0x04, 0x23, +0x06, 0xF1, 0x88, 0xA2, 0xA5, 0x6D, 0x07, 0x10, +0x06, 0xF1, 0x88, 0xA2, 0xA4, 0x6D, 0x03, 0x10, +0x06, 0xF1, 0x88, 0xA2, 0xA3, 0x6D, 0x80, 0x18, +0x72, 0x16, 0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, +0x05, 0x92, 0x43, 0xE8, 0xC4, 0x61, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x48, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xA9, 0xF5, 0x08, 0x4C, 0x00, 0x6D, 0x06, 0x6E, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF2, 0x7C, 0x9B, +0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0x69, 0xE2, +0x00, 0x9A, 0x41, 0x45, 0x25, 0x67, 0x08, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, +0x85, 0x67, 0x2C, 0xE8, 0x40, 0xEA, 0x06, 0xEA, +0x50, 0x67, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0xF7, 0x1F, 0x68, +0x41, 0x45, 0x25, 0x67, 0x0C, 0xD6, 0x8C, 0xE8, +0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF2, +0x5C, 0x9A, 0x41, 0xE0, 0xC0, 0xD8, 0x1A, 0x10, +0x01, 0x6D, 0x90, 0x67, 0xAB, 0xED, 0x80, 0x18, +0xF0, 0x16, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x44, 0x9A, 0x91, 0x67, 0x40, 0xEA, +0x0C, 0x93, 0x64, 0xEA, 0x43, 0x67, 0x04, 0x93, +0x2C, 0xEA, 0x2F, 0xE9, 0x6C, 0xE9, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF2, 0x7C, 0x9B, 0x2D, 0xEA, +0x61, 0xE0, 0x40, 0xD8, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x01, 0x74, 0x0D, 0x60, 0x06, 0x24, 0x02, 0x74, +0x10, 0x60, 0x03, 0x74, 0x00, 0x6A, 0x1C, 0x61, +0x14, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA8, 0x35, +0x62, 0xF6, 0x40, 0x9A, 0x0B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA8, 0x35, 0x62, 0xF6, 0x44, 0x9A, +0x05, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, +0x48, 0x9A, 0xA8, 0x35, 0x55, 0xE5, 0x40, 0x9D, +0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, +0x4C, 0x9A, 0xA8, 0x35, 0x55, 0xE5, 0x40, 0x9D, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x66, 0xF6, 0x10, 0x4A, +0x88, 0x34, 0x91, 0xE2, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF3, 0x70, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF5, 0xA0, 0x35, 0xCC, 0xEB, 0x30, 0xF0, +0x20, 0x6E, 0xC2, 0xF4, 0xC8, 0x9E, 0xC0, 0xF3, +0x44, 0x9A, 0x80, 0xAC, 0xAD, 0xEB, 0x01, 0x6D, +0xAB, 0xED, 0x6C, 0xEE, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6B, 0x8C, 0xEB, +0xFF, 0xF7, 0x1F, 0x6A, 0x81, 0x46, 0x06, 0x67, +0xAC, 0xEA, 0x06, 0x2C, 0x83, 0x67, 0xA2, 0x67, +0x80, 0x18, 0x18, 0x17, 0x02, 0x67, 0x0D, 0x10, +0x83, 0x67, 0xA2, 0x67, 0x80, 0x18, 0x18, 0x17, +0x22, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, +0x44, 0x9A, 0x90, 0x67, 0x2C, 0xE8, 0x40, 0xEA, +0x06, 0xEA, 0x50, 0x67, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x46, 0x67, 0xFF, 0x68, 0xFF, 0xF7, 0x1F, 0x69, +0x01, 0x4A, 0x0C, 0xD6, 0x0D, 0xD7, 0x8C, 0xE8, +0xAC, 0xE9, 0x04, 0x2A, 0x90, 0x67, 0xB1, 0x67, +0xC7, 0x67, 0x15, 0x10, 0xB1, 0x67, 0x90, 0x67, +0x80, 0x18, 0x18, 0x17, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x0C, 0x94, 0xA0, 0xF3, 0x44, 0x9A, +0x40, 0xEA, 0x0D, 0x96, 0x90, 0x67, 0xB1, 0x67, +0xC4, 0xEA, 0x0C, 0x92, 0x4C, 0xEE, 0x4F, 0xEB, +0x04, 0x92, 0x4C, 0xEB, 0x6D, 0xEE, 0x80, 0x18, +0x2B, 0x17, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0x1F, 0xF7, +0x00, 0x6B, 0x4C, 0xEB, 0x02, 0xF0, 0x00, 0x73, +0x25, 0x67, 0x01, 0x60, 0x05, 0x2B, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF2, 0x78, 0x9B, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF2, 0x7C, 0x9B, +0x69, 0xE2, 0x00, 0x9A, 0x41, 0x41, 0x08, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, +0x91, 0x67, 0x2C, 0xE8, 0x40, 0xEA, 0x06, 0xEA, +0x50, 0x67, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0xF7, 0x1F, 0x68, +0x41, 0x45, 0x25, 0x67, 0x0C, 0xD6, 0x8C, 0xE8, +0x16, 0x2A, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, +0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x07, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF2, 0x58, 0x9A, +0x41, 0xE0, 0x0C, 0x92, 0x3A, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF2, 0x5C, 0x9A, 0x0C, 0x93, +0x41, 0xE0, 0x60, 0xD8, 0x33, 0x10, 0x1F, 0xF7, +0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF2, 0x58, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF2, 0x5C, 0x9A, 0x49, 0xE0, +0x40, 0x9A, 0x91, 0x67, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, +0x0C, 0x93, 0x64, 0xEA, 0x43, 0x67, 0x04, 0x93, +0x2C, 0xEA, 0x2F, 0xE9, 0x6C, 0xE9, 0x1F, 0xF7, +0x00, 0x6B, 0x0C, 0xEB, 0x02, 0xF0, 0x00, 0x73, +0x2D, 0xEA, 0x01, 0x60, 0x05, 0x2B, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF2, 0x78, 0x9B, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF2, 0x7C, 0x9B, +0x61, 0xE0, 0x40, 0xD8, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0x03, 0xF0, 0x08, 0x6B, 0xC3, 0xF1, 0x70, 0xDA, +0x05, 0xF1, 0x00, 0x4B, 0xC3, 0xF1, 0x74, 0xDA, +0x02, 0xF1, 0x00, 0x4B, 0xC3, 0xF1, 0x78, 0xDA, +0x00, 0xF1, 0x00, 0x4B, 0xC3, 0xF1, 0x7C, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, +0x1F, 0x6D, 0x8C, 0xED, 0x96, 0x34, 0x6C, 0xEC, +0x01, 0x74, 0x03, 0x6A, 0x0A, 0x60, 0x10, 0x24, +0x04, 0x74, 0x05, 0x60, 0x06, 0x74, 0x00, 0x6A, +0x12, 0x61, 0xEF, 0x4A, 0x02, 0x10, 0x07, 0x6A, +0x4B, 0xEA, 0xAB, 0xE2, 0x44, 0x32, 0x00, 0xF6, +0x40, 0x32, 0x00, 0xF6, 0x43, 0x32, 0x20, 0xE8, +0x08, 0x6A, 0xAB, 0xE2, 0x44, 0x32, 0x00, 0xF6, +0x40, 0x32, 0x00, 0xF6, 0x43, 0x32, 0x20, 0xE8, +0x00, 0xF6, 0x80, 0x34, 0x00, 0xF6, 0x83, 0x34, +0x47, 0x44, 0x5C, 0x4A, 0xFF, 0x6B, 0x6C, 0xEA, +0x77, 0x5A, 0x00, 0x6A, 0x06, 0x60, 0x00, 0x54, +0x64, 0x6A, 0x03, 0x60, 0x47, 0x44, 0x5D, 0x4A, +0x6C, 0xEA, 0x20, 0xE8, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, +0x0E, 0x91, 0x04, 0xD2, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xED, 0x4C, 0xE9, 0x0C, 0xD6, 0x0D, 0xD7, +0x0F, 0x90, 0x05, 0xD5, 0x00, 0x6A, 0x08, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x0A, 0x6C, 0x40, 0xEA, 0x40, 0xA8, 0x01, 0x4A, +0x40, 0xC8, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x95, +0x05, 0x96, 0x42, 0xF3, 0xF0, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x0A, 0xF4, 0x00, 0x4C, 0x80, 0x18, +0x3E, 0x45, 0x0C, 0x93, 0x6C, 0xEA, 0x0D, 0x93, +0x6E, 0xEA, 0x03, 0x22, 0x40, 0xA8, 0x23, 0xEA, +0xE3, 0x61, 0x40, 0xA8, 0x09, 0x97, 0x07, 0x90, +0x23, 0xEA, 0x08, 0x91, 0x58, 0x67, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF6, 0x7C, 0x9A, +0x7F, 0x6A, 0xFD, 0x67, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF6, +0x40, 0x9A, 0xD2, 0xA7, 0x02, 0x6B, 0xA0, 0xA2, +0x01, 0x6C, 0x6B, 0xEB, 0x8C, 0xED, 0xCC, 0xEB, +0xAD, 0xEB, 0x72, 0xC7, 0x02, 0x6B, 0x70, 0xC7, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF6, 0x64, 0x9B, +0x8F, 0xCF, 0xFF, 0x6A, 0x80, 0xAB, 0x30, 0xF0, +0x20, 0x6B, 0x82, 0xF5, 0xC8, 0x9B, 0x4C, 0xEC, +0x94, 0x34, 0xD1, 0xE4, 0x60, 0xA4, 0x40, 0x6D, +0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF6, 0x68, 0x9B, +0x80, 0xAB, 0x4C, 0xEC, 0x94, 0x34, 0xD1, 0xE4, +0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, +0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, +0x05, 0x63, 0x00, 0xEF, 0xFF, 0x6A, 0x8C, 0xEA, +0x0B, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, +0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF3, +0x80, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x0A, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF5, 0x64, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF7, 0x98, 0x9C, +0x40, 0x9B, 0x8C, 0xEA, 0x40, 0xDB, 0x20, 0xE8, +0xFF, 0x6A, 0x4C, 0xEC, 0x07, 0x6B, 0x8C, 0xEB, +0x4C, 0xED, 0x8E, 0x34, 0x42, 0xF4, 0x10, 0x4C, +0x36, 0x25, 0x1F, 0xF7, 0x00, 0x6D, 0x8C, 0xED, +0x02, 0xF0, 0x00, 0x75, 0x01, 0x60, 0x21, 0x2D, +0x1F, 0xF7, 0x00, 0x6A, 0x8C, 0xEA, 0x02, 0xF0, +0x00, 0x72, 0x01, 0x60, 0x07, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF2, 0xB8, 0x9A, 0xB5, 0xE4, +0x80, 0xA5, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF2, 0xB8, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF2, 0x5C, 0x9A, 0xB5, 0xE4, 0x51, 0xE4, +0x80, 0xA4, 0x00, 0xF6, 0x80, 0x34, 0x01, 0x6A, +0x00, 0xF6, 0x83, 0x34, 0x44, 0xEB, 0x8D, 0xEA, +0x36, 0x10, 0x30, 0xF0, 0x20, 0x6D, 0x42, 0xF2, +0xBC, 0x9D, 0x01, 0x6E, 0xC4, 0xEB, 0xB1, 0xE4, +0xA0, 0xA4, 0x00, 0xF6, 0xA0, 0x35, 0x00, 0xF6, +0xA3, 0x35, 0xCD, 0xED, 0x3A, 0x10, 0x1F, 0xF7, +0x00, 0x6D, 0x8C, 0xED, 0x02, 0xF0, 0x00, 0x75, +0x01, 0x60, 0x25, 0x2D, 0x1F, 0xF7, 0x00, 0x6A, +0x8C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, +0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF2, +0xB8, 0x9A, 0xB5, 0xE4, 0x80, 0xA5, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF2, 0xB8, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF2, 0x5C, 0x9A, +0xB5, 0xE4, 0x51, 0xE4, 0x80, 0xA4, 0x01, 0x6A, +0x00, 0xF6, 0x80, 0x34, 0x44, 0xEB, 0x00, 0xF6, +0x83, 0x34, 0x4F, 0xEA, 0x8C, 0xEA, 0xFF, 0x6B, +0x6C, 0xEA, 0x40, 0xC5, 0x20, 0xE8, 0x30, 0xF0, +0x20, 0x6D, 0x42, 0xF2, 0xBC, 0x9D, 0x01, 0x6E, +0xC4, 0xEB, 0xB1, 0xE4, 0xA0, 0xA4, 0xCF, 0xEE, +0x00, 0xF6, 0xA0, 0x35, 0x00, 0xF6, 0xA3, 0x35, +0xCC, 0xED, 0x4C, 0xED, 0xA0, 0xC4, 0x20, 0xE8, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF2, 0x68, 0x9B, +0xFF, 0x6A, 0x25, 0x67, 0x60, 0xA3, 0xFF, 0xF7, +0x1F, 0x68, 0x4C, 0xE9, 0x6C, 0xEA, 0x8C, 0xE8, +0x04, 0xD2, 0x00, 0x18, 0xDF, 0xC5, 0x0F, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, +0x00, 0x6C, 0xFF, 0x6D, 0x49, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, +0x40, 0xEA, 0x01, 0x72, 0x09, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF2, 0x54, 0x9A, 0x90, 0x67, +0x01, 0x6D, 0xD1, 0x67, 0x03, 0x6F, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF7, 0x64, 0x9A, +0xFF, 0x6C, 0x08, 0x6D, 0x40, 0xA3, 0x4A, 0x6E, +0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0x95, 0xA0, 0xF2, +0x50, 0x9A, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF4, 0x5C, 0x9A, 0x06, 0xD4, 0x09, 0xD7, +0x07, 0xD5, 0x08, 0xD6, 0x06, 0x04, 0x40, 0xEA, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x46, 0x67, 0x01, 0x4A, 0x05, 0x67, 0x0C, 0xD6, +0x27, 0x67, 0x1F, 0x22, 0x1F, 0xF7, 0x00, 0x6A, +0xAC, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, +0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF2, +0x58, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF2, 0x5C, 0x9A, 0x49, 0xE0, 0x40, 0x9A, +0x0C, 0x94, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x0C, 0x93, +0x24, 0xEA, 0x6F, 0xEA, 0x04, 0x93, 0x6C, 0xEA, +0x4D, 0xE9, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, +0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF2, 0x58, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF2, +0x5C, 0x9A, 0x41, 0xE0, 0x20, 0xD8, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x1F, 0xF7, 0x00, 0x6A, 0xAC, 0xEA, 0x02, 0xF0, +0x00, 0x72, 0x26, 0x67, 0x01, 0x60, 0x05, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF2, 0x58, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF2, +0x5C, 0x9A, 0x55, 0xE5, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0x9D, 0xA0, 0xF3, 0x44, 0x9A, 0x91, 0x67, +0x2C, 0xE8, 0x40, 0xEA, 0x06, 0xEA, 0x50, 0x67, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x44, 0x99, 0xFF, 0x68, 0xAC, 0xE8, +0xD0, 0x67, 0x41, 0xF4, 0x10, 0x6C, 0x7F, 0x6D, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xD0, 0x67, +0x41, 0xF6, 0x10, 0x6C, 0x7F, 0x6D, 0x40, 0xEA, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x85, 0x67, 0xA6, 0x67, 0xC7, 0x67, 0x00, 0x18, +0xFC, 0xC5, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x04, 0xD2, 0x04, 0x95, +0x30, 0xF0, 0x20, 0x69, 0xA3, 0xF4, 0x00, 0x49, +0xA8, 0x34, 0x31, 0xE4, 0x05, 0xD4, 0x05, 0x90, +0xC1, 0xF6, 0x14, 0x4A, 0x48, 0x32, 0x29, 0xE2, +0x47, 0xF3, 0xD2, 0xA0, 0x60, 0xA2, 0x01, 0x6A, +0x4C, 0xEE, 0x4C, 0xEB, 0xC4, 0x36, 0x47, 0xF3, +0xF1, 0xA4, 0xD9, 0xE3, 0x47, 0xF3, 0x73, 0xA0, +0x4C, 0xEF, 0xF0, 0x37, 0x4C, 0xEB, 0x74, 0x33, +0x6D, 0xE7, 0x07, 0xD3, 0x04, 0x93, 0x85, 0x67, +0xA3, 0xF5, 0x10, 0x4C, 0x64, 0x32, 0x29, 0xE2, +0x84, 0x34, 0x31, 0xE4, 0x67, 0xF3, 0x45, 0xA2, +0xA4, 0xA4, 0x03, 0x6C, 0x8C, 0xEA, 0x8C, 0xED, +0x40, 0x32, 0xA0, 0x35, 0x48, 0x32, 0x49, 0xE5, +0x30, 0xF0, 0x20, 0x68, 0x06, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x08, 0xD6, 0xC0, 0xF3, 0x64, 0x98, +0x42, 0xF3, 0xC8, 0x9A, 0x01, 0x6D, 0xE3, 0xF2, +0x1D, 0x4C, 0xAB, 0xED, 0x40, 0xEB, 0x08, 0x94, +0x07, 0x96, 0x06, 0x93, 0xC0, 0xF3, 0x44, 0x98, +0x8D, 0xEE, 0x6D, 0xEE, 0xE3, 0xF3, 0x10, 0x6C, +0xFF, 0xF7, 0x1F, 0x6D, 0x40, 0xEA, 0x04, 0x92, +0x05, 0x94, 0x01, 0x6D, 0xC1, 0xF6, 0x1A, 0x4A, +0x67, 0xF3, 0xCA, 0xAC, 0x48, 0x32, 0x29, 0xE2, +0x60, 0xAA, 0xC0, 0x36, 0xC0, 0xF3, 0x44, 0x98, +0xC0, 0x36, 0x6D, 0xEE, 0xE3, 0xF3, 0x08, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x04, 0x92, 0x05, 0x95, +0xE3, 0xF3, 0x0C, 0x6C, 0xC1, 0xF6, 0x1B, 0x4A, +0x67, 0xF3, 0xCE, 0xAD, 0x48, 0x32, 0x29, 0xE2, +0x60, 0xAA, 0xC0, 0x36, 0xC0, 0xF3, 0x44, 0x98, +0xC0, 0x36, 0x01, 0x6D, 0x6D, 0xEE, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xE7, 0xF5, 0xCC, 0xA1, 0x42, 0xF3, +0xAC, 0x9B, 0xE3, 0xF3, 0x10, 0x6C, 0x40, 0xEA, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0x00, 0x4A, 0x00, 0x6B, 0x66, 0xF7, 0x7B, 0xC2, +0x30, 0xF0, 0x20, 0x6B, 0x0A, 0xF4, 0x1B, 0x4B, +0xA6, 0xF7, 0x68, 0xDA, 0x00, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x82, 0xF3, 0x60, 0x9B, 0x54, 0x34, +0x20, 0x68, 0x71, 0xE4, 0xA0, 0xA4, 0xF8, 0x6B, +0x01, 0x4A, 0xAC, 0xEB, 0x4E, 0xE8, 0x60, 0xC4, +0xF2, 0x28, 0x80, 0x18, 0xDC, 0x40, 0x30, 0xF0, +0x20, 0x6A, 0x2A, 0xF4, 0x12, 0xC2, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x68, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0x00, 0x4A, 0x86, 0xF7, 0x64, 0xC2, 0x69, 0xA4, +0x66, 0xF7, 0x79, 0xC2, 0x6A, 0xA4, 0x86, 0xF7, +0x63, 0xC2, 0xAB, 0xA4, 0x0F, 0x6B, 0xAC, 0xEB, +0x86, 0xF7, 0x6D, 0xC2, 0x6B, 0xA4, 0x72, 0x33, +0x86, 0xF7, 0x6A, 0xC2, 0x8E, 0xA4, 0x01, 0x6B, +0x8C, 0xEB, 0x66, 0xF7, 0x7B, 0xC2, 0x30, 0xF0, +0x20, 0x6B, 0x0A, 0xF4, 0x1B, 0x4B, 0xA6, 0xF7, +0x68, 0xDA, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0x60, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0x00, 0x4A, 0x86, 0xF7, 0x64, 0xC2, 0x61, 0xA4, +0x66, 0xF7, 0x79, 0xC2, 0x62, 0xA4, 0x86, 0xF7, +0x63, 0xC2, 0xA3, 0xA4, 0x0F, 0x6B, 0xAC, 0xEB, +0x86, 0xF7, 0x6D, 0xC2, 0x63, 0xA4, 0x72, 0x33, +0x86, 0xF7, 0x6A, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x0E, 0x72, 0x03, 0x60, +0x11, 0x72, 0x05, 0x60, 0x08, 0x10, 0x85, 0x67, +0x80, 0x18, 0xF3, 0x11, 0x19, 0x10, 0x85, 0x67, +0x80, 0x18, 0xA8, 0x40, 0x15, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x82, 0xF2, 0x64, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x82, 0xF3, 0x84, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0x23, 0xF3, 0x70, 0x9A, +0x8D, 0xEB, 0x23, 0xF3, 0x70, 0xDA, 0xFF, 0x6A, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0x05, 0x6B, 0x66, 0xF7, 0x74, 0xDA, 0x09, 0x6B, +0x66, 0xF7, 0x70, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0xAC, 0xEA, 0x1C, 0x22, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0xFF, 0x6D, +0x83, 0xF4, 0x10, 0x6C, 0x01, 0x4D, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC2, 0xF2, +0x24, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x01, 0x6E, 0x09, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0xFF, 0x6D, +0x83, 0xF4, 0x10, 0x6C, 0x01, 0x4D, 0x00, 0x6E, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xED, 0x29, 0x5D, 0xCC, 0xEA, +0x03, 0x61, 0x17, 0x5A, 0x03, 0x60, 0x06, 0x10, +0x17, 0x5A, 0x04, 0x60, 0x01, 0x6A, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF4, 0x1C, 0x6C, +0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x00, 0x6A, +0xF2, 0x17, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, 0x70, 0x9B, +0x46, 0x67, 0x8E, 0xEB, 0x12, 0x23, 0x00, 0x6E, +0x66, 0x67, 0xE4, 0x67, 0xE6, 0xEE, 0x01, 0x68, +0x0C, 0xEF, 0x07, 0x2F, 0x01, 0x4B, 0xFF, 0x6F, +0xEC, 0xEB, 0x14, 0x73, 0x01, 0x4E, 0xF5, 0x61, +0x14, 0x6B, 0x8F, 0xEC, 0x44, 0xEB, 0xAC, 0xEC, +0x8D, 0xEA, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x07, 0xF4, 0x00, 0x6A, +0x04, 0xD2, 0x02, 0xF0, 0x00, 0x4A, 0x05, 0xD2, +0xA8, 0x35, 0x5D, 0x67, 0xB5, 0xE2, 0x44, 0x9D, +0xFF, 0x6C, 0xCC, 0xEC, 0x88, 0x34, 0x51, 0xE4, +0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEC, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF3, 0xB0, 0x9B, 0x30, 0xF0, +0x20, 0x6A, 0x0C, 0x96, 0xC0, 0xF3, 0x44, 0x9A, +0xEC, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, 0x40, 0xEA, +0x07, 0x97, 0x01, 0x6A, 0x04, 0x63, 0x00, 0xEF, +0x00, 0x6A, 0x20, 0xE8, 0x20, 0xE8, 0x00, 0x65, +0x01, 0x6A, 0x20, 0xE8, 0x20, 0xE8, 0x00, 0x65, +0x00, 0x6A, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x01, 0x75, 0x33, 0x61, +0x01, 0x76, 0x17, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF3, 0x30, 0x9A, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0xA2, 0xF4, 0xC4, 0x9B, 0x03, 0xF0, 0x00, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x08, 0xF1, 0x00, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x81, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, +0x30, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0xA2, 0xF4, 0xC4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, 0xB1, 0x67, +0xA2, 0xF4, 0xC8, 0x9B, 0x67, 0x10, 0x02, 0x75, +0x2C, 0x61, 0x01, 0x76, 0x10, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF3, 0x30, 0x9A, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, +0xA2, 0xF4, 0xC8, 0x9B, 0x2D, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF3, 0x30, 0x9A, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0xA2, 0xF4, +0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, +0x00, 0x6C, 0xB1, 0x67, 0xA2, 0xF4, 0xC4, 0x9B, +0x39, 0x10, 0x03, 0x75, 0x38, 0x61, 0x01, 0x76, +0x1A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, +0x30, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xA2, 0xF4, +0xC4, 0x9B, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, 0xB1, 0x67, +0xA2, 0xF4, 0xCC, 0x9B, 0x1B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, +0x30, 0x9A, 0xA2, 0xF4, 0x04, 0x4B, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF4, 0x04, 0x4B, +0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, 0x08, 0xF1, +0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0x01, 0x6A, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, +0x0E, 0x72, 0x51, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0xA2, 0xF4, 0x10, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, +0x00, 0x6C, 0xA7, 0xF5, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF4, 0xD4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, +0x23, 0xF2, 0x04, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x08, 0x6C, +0xFF, 0xF7, 0x1F, 0x6D, 0xAD, 0xF2, 0x03, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF4, +0x10, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x83, 0xF2, 0x18, 0x6C, 0x75, 0xF2, 0x1B, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF2, +0x1C, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0xDE, 0xF3, +0x17, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF2, 0x00, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xA2, 0xF4, 0xD8, 0x9B, 0xA3, 0xF2, +0x0C, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xA3, 0xF2, 0x10, 0x6C, 0xB1, 0x67, +0xFF, 0xF7, 0x1F, 0x6E, 0x55, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0xA2, 0xF4, +0x10, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF2, 0x00, 0x6C, 0x8A, 0xF2, 0x04, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF4, +0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, +0x2B, 0xE9, 0x23, 0xF2, 0x04, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, +0x08, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0x81, 0xF2, +0x08, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA2, 0xF4, 0x10, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x83, 0xF2, 0x18, 0x6C, 0xD5, 0xF4, +0x04, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x83, 0xF2, 0x1C, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, +0xB9, 0xF0, 0x12, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC2, 0xF4, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xA3, 0xF2, 0x00, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF4, +0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF2, +0x0C, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xC2, 0xF4, +0xC8, 0x9B, 0xA3, 0xF2, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x44, 0x99, 0xFF, 0x68, 0xAC, 0xE8, +0xD0, 0x67, 0xA3, 0xF0, 0x0C, 0x6C, 0x1E, 0xF0, +0x00, 0x6D, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, +0xD0, 0x67, 0xA8, 0xF1, 0x0C, 0x6C, 0x1E, 0xF0, +0x00, 0x6D, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x68, 0xAC, 0xE8, 0x09, 0xE4, 0x0A, 0xD4, +0x05, 0xD2, 0x40, 0xF0, 0x71, 0xA2, 0x30, 0xF0, +0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, 0x04, 0xD3, +0xA3, 0xF0, 0x0C, 0x6C, 0xE0, 0xF1, 0x10, 0x6D, +0xD0, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, +0xA8, 0xF1, 0x0C, 0x6C, 0xE0, 0xF1, 0x10, 0x6D, +0xD0, 0x67, 0x40, 0xEA, 0x0A, 0x92, 0x40, 0xF0, +0x10, 0xC2, 0x05, 0x93, 0x60, 0xF0, 0x41, 0xA3, +0x02, 0x2A, 0x0D, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x04, 0x96, +0x21, 0xF0, 0x08, 0x6C, 0xF8, 0x6D, 0x40, 0xEA, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xED, 0x68, 0x45, 0xFB, 0x4B, +0x4C, 0xEB, 0x02, 0x5B, 0x0B, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, +0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x61, 0xF1, +0x09, 0x6E, 0x78, 0x10, 0x68, 0x45, 0xFD, 0x4B, +0x4C, 0xEB, 0x02, 0x5B, 0x0B, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, +0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x61, 0xF1, +0x0A, 0x6E, 0x68, 0x10, 0x6F, 0x45, 0x4C, 0xEB, +0x0A, 0x5B, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0xA1, 0xF1, 0x0A, 0x6E, +0x59, 0x10, 0x68, 0x45, 0xE4, 0x4B, 0x4C, 0xEB, +0x10, 0x5B, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x80, 0xF4, 0x14, 0x6E, +0x49, 0x10, 0x68, 0x45, 0xD4, 0x4B, 0x4C, 0xEB, +0x04, 0x5B, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x80, 0xF4, 0x13, 0x6E, +0x39, 0x10, 0x68, 0x45, 0xD0, 0x4B, 0x4C, 0xEB, +0x38, 0x5B, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x40, 0xF4, 0x13, 0x6E, +0x29, 0x10, 0x68, 0x45, 0x98, 0x4B, 0x4C, 0xEB, +0x08, 0x5B, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x40, 0xF4, 0x12, 0x6E, +0x19, 0x10, 0x88, 0x4D, 0x4C, 0xED, 0x35, 0x5D, +0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, 0xE1, 0xF7, +0x1F, 0x6D, 0x00, 0xF4, 0x12, 0x6E, 0x0A, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x21, 0xF4, 0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x00, 0xF4, 0x11, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0xAC, 0xEA, 0x0F, 0x5A, 0x0B, 0x60, +0x0D, 0x72, 0x09, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x01, 0xF0, 0x08, 0x6C, +0x70, 0x6D, 0x01, 0x6E, 0x08, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0xF0, +0x08, 0x6C, 0x70, 0x6D, 0x03, 0x6E, 0x40, 0xEA, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0xAC, 0xEA, 0x26, 0x67, 0x3B, 0x22, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, +0xC2, 0xF4, 0x0C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF1, 0x04, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF4, 0x0C, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xD1, 0x67, +0x48, 0xF0, 0x04, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF2, 0x34, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF1, 0x00, 0x6C, 0xB1, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x48, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, +0x18, 0x6C, 0x01, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF5, 0x1C, 0x6C, 0xC2, 0xF4, +0xB0, 0x9B, 0x0F, 0x6E, 0x37, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0xC2, 0xF4, +0x2C, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF1, +0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x48, 0xF0, +0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0xF2, 0x34, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF1, 0x00, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x48, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, +0x18, 0x6C, 0x01, 0xF0, 0x00, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xC2, 0xF4, 0xB0, 0x9B, 0x23, 0xF5, +0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, +0xAC, 0xEA, 0x13, 0x22, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, 0x18, 0x6C, +0x08, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF5, +0x1C, 0x6C, 0xC2, 0xF4, 0xB0, 0x9B, 0x0F, 0x6E, +0x12, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0xF0, 0x18, 0x6C, 0x08, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0xC2, 0xF4, 0xB0, 0x9B, +0x23, 0xF5, 0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x68, 0xAC, 0xE8, 0x00, 0x6D, 0x24, 0x67, +0x80, 0x18, 0xA0, 0x42, 0x99, 0x70, 0x07, 0x61, +0x50, 0x99, 0x40, 0xA2, 0x04, 0x2A, 0x91, 0x67, +0x01, 0x6D, 0x70, 0x6E, 0x03, 0x10, 0x00, 0x6D, +0x91, 0x67, 0xC5, 0x67, 0x80, 0x18, 0x60, 0x42, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0xAC, 0xEA, 0x0C, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9A, 0x63, 0xF4, 0x04, 0x6C, 0xA2, 0xF2, +0xB4, 0x9B, 0x01, 0x6E, 0x0B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9A, 0xA2, 0xF2, 0xB4, 0x9B, 0x63, 0xF4, +0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0xAC, 0xEA, 0x09, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x41, 0xF4, +0x14, 0x6C, 0x80, 0x6D, 0x01, 0x6E, 0x08, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x41, 0xF4, 0x14, 0x6C, 0x80, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x5B, 0xAC, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0xFF, 0xF7, 0x1F, 0x68, +0xAC, 0xE8, 0x24, 0x67, 0xD0, 0x67, 0x61, 0xF2, +0x10, 0x6C, 0xE0, 0xF3, 0x1F, 0x6D, 0x40, 0xEA, +0x1B, 0xC9, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xC2, 0xF4, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, +0x00, 0x6E, 0x23, 0xF4, 0x1C, 0x6C, 0x40, 0xEA, +0x01, 0x6D, 0xA5, 0xF5, 0x14, 0x6C, 0xAB, 0xED, +0x80, 0x18, 0xF0, 0x16, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF4, 0x78, 0x9B, 0x05, 0x97, 0x4C, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF3, 0x44, 0x9A, +0x4E, 0xEB, 0x01, 0x5B, 0x58, 0x67, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x83, 0xF2, 0x18, 0x68, +0x24, 0x67, 0x18, 0xF0, 0x00, 0x6D, 0x90, 0x67, +0x80, 0x18, 0xF0, 0x16, 0x05, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF4, 0xB8, 0x9A, 0xA3, 0xF2, +0x08, 0x6C, 0x80, 0x18, 0xF0, 0x16, 0x90, 0x67, +0xC0, 0x6D, 0x04, 0xD2, 0x80, 0x18, 0xF0, 0x16, +0x02, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF3, +0xAC, 0x9A, 0x63, 0xF2, 0x10, 0x6C, 0x80, 0x18, +0xF0, 0x16, 0x05, 0x93, 0x04, 0x95, 0xFF, 0x6C, +0x8C, 0xEB, 0x8C, 0xE8, 0x70, 0x33, 0x10, 0x30, +0x4D, 0xE8, 0xAD, 0xEB, 0x60, 0xF0, 0x71, 0xC1, +0x60, 0xF0, 0x12, 0xC1, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x0C, 0xED, +0x62, 0xF4, 0x18, 0x4A, 0x04, 0xD5, 0xA0, 0x9A, +0x21, 0xF0, 0x04, 0x69, 0x91, 0x67, 0x80, 0x18, +0xF0, 0x16, 0x04, 0x93, 0x41, 0x23, 0x4C, 0xE8, +0x03, 0x70, 0x00, 0x6A, 0x7B, 0x61, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, +0x1C, 0x6C, 0x04, 0x6D, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, 0x0C, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF4, 0x18, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, +0x0C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF2, 0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF4, 0xBC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x02, 0xF2, 0x08, 0x49, +0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0xE2, 0xF4, 0xA0, 0x9B, 0x00, 0x6E, 0x3C, 0x10, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x21, 0xF0, 0x1C, 0x6C, 0x04, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, +0x0C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x91, 0x67, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF4, 0x18, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, +0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF3, 0x0C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF2, 0x04, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF4, +0xBC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, +0x0C, 0x69, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0xE2, 0xF4, 0xA0, 0x9B, 0x91, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0x01, 0x6A, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0x4C, 0xED, 0x08, 0xD4, 0xCC, 0xEA, +0xC0, 0xF0, 0x1C, 0x25, 0x20, 0x22, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0xE2, 0xF4, +0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x00, 0x6C, 0x21, 0xF0, 0x13, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, 0x08, 0x6C, +0x18, 0xF0, 0x00, 0x6D, 0x02, 0x6E, 0x40, 0xEA, +0x01, 0x6D, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xAB, 0xED, +0xE2, 0xF4, 0xC8, 0x9B, 0x90, 0x11, 0x08, 0x93, +0x50, 0x9B, 0x40, 0xA2, 0x01, 0x72, 0x80, 0xF1, +0x0B, 0x61, 0x01, 0x69, 0x2B, 0xE9, 0xA1, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x80, 0x18, 0xF0, 0x16, +0x08, 0x93, 0x30, 0xF0, 0x20, 0x68, 0x03, 0xF0, +0x00, 0x6C, 0x5D, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xE2, 0xF4, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x81, 0xF0, 0x08, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA2, 0xF2, 0xB4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x81, 0xF0, 0x18, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, +0x08, 0x6C, 0x18, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA1, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x04, 0xF2, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF4, +0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF4, 0x08, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF4, 0xCC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF4, +0xD0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF4, 0xD4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE2, 0xF4, +0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF4, 0xDC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF5, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x02, 0xF5, 0xC4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF5, +0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x02, 0xF5, 0xCC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF5, +0x10, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x02, 0xF5, +0x10, 0x4B, 0xD4, 0x10, 0x20, 0x22, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0xE2, 0xF4, +0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x00, 0x6C, 0x20, 0xF3, 0x13, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, 0x08, 0x6C, +0x18, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x01, 0x6D, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xAB, 0xED, +0x02, 0xF5, 0xD4, 0x9B, 0xB4, 0x10, 0x08, 0x93, +0x50, 0x9B, 0x40, 0xA2, 0x01, 0x72, 0xA0, 0xF0, +0x0F, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF4, 0xA4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0x20, 0xF3, +0x13, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA2, 0xF2, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x81, 0xF0, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, 0x08, 0x6C, +0x18, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x08, 0x93, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, +0xDD, 0x9B, 0x2B, 0xE9, 0xA1, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF5, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF5, +0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF5, 0xD8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF5, 0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF5, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF5, 0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF5, 0xC8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF5, 0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF5, 0xD0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF5, 0xD4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF5, 0xD8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF5, 0x1C, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xC0, 0x9B, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x22, 0xF5, 0x1C, 0x4B, 0xC0, 0x9B, 0x40, 0xEA, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x05, 0x67, +0x62, 0xF4, 0xB8, 0x9A, 0x21, 0xF0, 0x04, 0x6C, +0x80, 0x18, 0xF0, 0x16, 0x40, 0xC0, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF3, 0xAC, 0x9A, 0x03, 0xF2, +0x04, 0x6C, 0x80, 0x18, 0xF0, 0x16, 0x01, 0x72, +0x02, 0x61, 0x03, 0x6A, 0x06, 0x10, 0x02, 0x2A, +0x01, 0x6A, 0x03, 0x10, 0x05, 0x72, 0x02, 0x61, +0x02, 0x6A, 0x41, 0xC0, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x05, 0x67, 0x01, 0x6D, 0x21, 0xF0, +0x00, 0x6C, 0xAB, 0xED, 0x80, 0x18, 0xF0, 0x16, +0xF0, 0x6B, 0x4C, 0xEB, 0x72, 0x33, 0x61, 0xC0, +0x0F, 0x6B, 0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF5, 0xA0, 0x9A, 0x60, 0xC0, 0x03, 0xF2, +0x04, 0x6C, 0x80, 0x18, 0xF0, 0x16, 0x0C, 0x72, +0x02, 0x61, 0x03, 0x6A, 0x09, 0x10, 0x08, 0x72, +0x02, 0x61, 0x01, 0x6A, 0x05, 0x10, 0x04, 0x72, +0x02, 0x61, 0x02, 0x6A, 0x01, 0x10, 0x01, 0x2A, +0x42, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, +0xAC, 0x9A, 0x23, 0xF6, 0x04, 0x6C, 0x80, 0x18, +0xF0, 0x16, 0x4F, 0xEA, 0x43, 0xC0, 0x01, 0x6A, +0x44, 0xC0, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x69, 0x02, 0x5D, +0x0D, 0xD5, 0x0F, 0xD7, 0xCC, 0xE9, 0x70, 0x60, +0x54, 0x59, 0x6E, 0x60, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0x42, 0xF5, 0x04, 0x4B, +0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, 0x63, 0xF4, +0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x42, 0xF5, +0xA8, 0x9B, 0x63, 0xF4, 0x1C, 0x6C, 0xD1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF5, +0x04, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, +0x63, 0xF4, 0x1C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0xE5, 0xF5, 0x08, 0x6C, 0xFF, 0x6D, 0x80, 0x18, +0xF0, 0x16, 0x00, 0xF6, 0x40, 0x30, 0x00, 0xF6, +0x03, 0x30, 0x40, 0x6A, 0x0C, 0xEA, 0x03, 0x22, +0x80, 0x6A, 0x4B, 0xEA, 0x4D, 0xE8, 0x0F, 0x92, +0x0B, 0x72, 0x10, 0x61, 0x0D, 0x93, 0xA3, 0xF0, +0x00, 0x6A, 0x06, 0xD2, 0x05, 0xF1, 0x00, 0x4A, +0x07, 0xD2, 0x68, 0x32, 0x7D, 0x67, 0x49, 0xE3, +0x8C, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF5, +0xAC, 0x9A, 0x13, 0x10, 0x0F, 0x92, 0x00, 0x6B, +0x0C, 0x72, 0x13, 0x61, 0x0D, 0x93, 0xE3, 0xF0, +0x08, 0x6A, 0x04, 0xD2, 0x05, 0xF1, 0x00, 0x4A, +0x05, 0xD2, 0x68, 0x32, 0x7D, 0x67, 0x49, 0xE3, +0x88, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF5, +0xB0, 0x9A, 0x80, 0x18, 0xF0, 0x16, 0xFF, 0x6B, +0x4C, 0xEB, 0x0D, 0xE3, 0x00, 0x53, 0x00, 0x68, +0x02, 0x61, 0xFF, 0x68, 0x6C, 0xE8, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x42, 0xF5, 0xA4, 0x9B, 0x63, 0xF4, +0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x01, 0x10, +0xFF, 0x68, 0x50, 0x67, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x00, 0xF6, 0xA0, 0x35, 0x00, 0xF6, 0xC0, 0x36, +0x00, 0xF6, 0xE0, 0x37, 0x00, 0xF6, 0xA3, 0x35, +0x00, 0xF6, 0xC3, 0x36, 0x00, 0xF6, 0xE3, 0x37, +0x05, 0xD5, 0x06, 0xD6, 0x07, 0xD7, 0x5D, 0x67, +0x40, 0xF0, 0x48, 0x82, 0x08, 0xD2, 0x5D, 0x67, +0x40, 0xF0, 0x4C, 0xA2, 0x04, 0xD2, 0x20, 0xF0, +0x6F, 0xA4, 0x01, 0x6A, 0x37, 0x2B, 0x04, 0x92, +0x40, 0x5A, 0x00, 0x6A, 0x33, 0x60, 0x83, 0xF4, +0x10, 0x68, 0x10, 0xF0, 0x00, 0x69, 0x90, 0x67, +0xB1, 0x67, 0x80, 0x18, 0xF0, 0x16, 0x08, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x90, 0x67, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0x04, 0x92, 0x04, 0x6C, 0x06, 0x93, 0x8B, 0xEC, +0x4C, 0xEC, 0x05, 0x92, 0x7F, 0x6E, 0xCC, 0xEB, +0xCC, 0xEA, 0x60, 0x33, 0x4D, 0xEB, 0x07, 0x92, +0xFF, 0xF7, 0x1F, 0x6D, 0x07, 0xF2, 0x00, 0x4C, +0xCC, 0xEA, 0x40, 0x32, 0x40, 0x32, 0x4D, 0xEB, +0x08, 0x92, 0xAC, 0xEC, 0x01, 0x6D, 0x4C, 0xEE, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x00, 0xF6, 0xC0, 0x36, 0xAB, 0xED, 0x6D, 0xEE, +0x40, 0xEA, 0x01, 0x6A, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x0F, 0xD7, 0x20, 0xF0, 0x6F, 0xA4, 0xFF, 0x68, +0x26, 0x67, 0xAC, 0xE8, 0x01, 0x6A, 0x3F, 0x2B, +0x02, 0x5E, 0x00, 0x6A, 0x3C, 0x60, 0x83, 0xF4, +0x10, 0x6C, 0x10, 0xF0, 0x00, 0x6D, 0x80, 0x18, +0xF0, 0x16, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x83, 0xF4, 0x10, 0x6C, +0x10, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x0F, 0x92, 0x0B, 0x72, 0x13, 0x61, 0xA3, 0xF0, +0x00, 0x6B, 0x06, 0xD3, 0x05, 0xF1, 0x00, 0x4B, +0x07, 0xD3, 0x28, 0x31, 0x7D, 0x67, 0x25, 0xE3, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9A, 0x8C, 0xA9, 0x42, 0xF5, +0xAC, 0x9B, 0x12, 0x10, 0xE3, 0xF0, 0x08, 0x6B, +0x04, 0xD3, 0x05, 0xF1, 0x00, 0x4B, 0x05, 0xD3, +0x28, 0x31, 0x7D, 0x67, 0x25, 0xE3, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9A, 0x88, 0xA9, 0x42, 0xF5, 0xB0, 0x9B, +0xD0, 0x67, 0x40, 0xEA, 0x01, 0x6A, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x0C, 0xD4, 0x25, 0x67, 0xA0, 0xA5, 0x00, 0x6E, +0x0B, 0x6F, 0x80, 0x18, 0xE8, 0x44, 0x0C, 0x94, +0xA1, 0xA1, 0x01, 0x6E, 0x0B, 0x6F, 0x80, 0x18, +0xE8, 0x44, 0x0C, 0x94, 0xA2, 0xA1, 0x00, 0x6E, +0x0C, 0x6F, 0x80, 0x18, 0xE8, 0x44, 0x0C, 0x94, +0xA3, 0xA1, 0x01, 0x6E, 0x0C, 0x6F, 0x80, 0x18, +0xE8, 0x44, 0xFD, 0x6A, 0x00, 0x6B, 0x11, 0x67, +0x06, 0xD2, 0x07, 0xD3, 0x07, 0x93, 0x03, 0x6A, +0x6C, 0xEA, 0x03, 0x72, 0x0A, 0x61, 0x44, 0x80, +0xA1, 0x80, 0xC2, 0x80, 0xE3, 0x80, 0x0C, 0x94, +0x04, 0xD2, 0x06, 0x92, 0x05, 0xD2, 0x80, 0x18, +0xBA, 0x44, 0x06, 0x92, 0x07, 0x93, 0x01, 0x48, +0x01, 0x4A, 0x06, 0xD2, 0x01, 0x4B, 0x07, 0xD3, +0x06, 0x93, 0xFF, 0x6A, 0x4C, 0xEB, 0x07, 0x92, +0x06, 0xD3, 0x1C, 0x72, 0xE3, 0x61, 0x11, 0x67, +0x29, 0x69, 0x43, 0x41, 0x03, 0x6B, 0x6C, 0xEA, +0x03, 0x72, 0x0D, 0x61, 0x20, 0xF0, 0xAD, 0x80, +0x20, 0xF0, 0xCE, 0x80, 0x20, 0xF0, 0xEF, 0x80, +0x20, 0xF0, 0x50, 0x80, 0x0C, 0x94, 0x05, 0xD1, +0x04, 0xD2, 0x80, 0x18, 0xBA, 0x44, 0x01, 0x49, +0x3D, 0x71, 0x01, 0x48, 0xEA, 0x61, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x02, 0x5D, 0x03, 0x61, +0x01, 0x6A, 0x4B, 0xEA, 0x18, 0x10, 0x07, 0xF4, +0x00, 0x6A, 0x04, 0xD2, 0x02, 0xF0, 0x00, 0x4A, +0x05, 0xD2, 0xA8, 0x35, 0x5D, 0x67, 0xB5, 0xE2, +0x44, 0x9D, 0xFF, 0x6C, 0xCC, 0xEC, 0x88, 0x34, +0x51, 0xE4, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEC, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, 0xB0, 0x9A, +0xEC, 0xED, 0x80, 0x18, 0xF0, 0x16, 0x07, 0x97, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF0, 0x24, 0xA4, 0x42, 0xF3, 0xF0, 0x9A, +0x05, 0x67, 0x18, 0x6E, 0x00, 0x6D, 0x80, 0x18, +0x3E, 0x45, 0xEB, 0x49, 0xFF, 0x6B, 0x6C, 0xE9, +0x02, 0x59, 0x4F, 0x60, 0x4C, 0xEB, 0x0F, 0x5B, +0x78, 0x67, 0x01, 0x5B, 0x78, 0x67, 0x6B, 0xEB, +0x6C, 0xE8, 0x01, 0x70, 0x12, 0x60, 0x05, 0x20, +0x02, 0x70, 0x23, 0x60, 0x03, 0x70, 0x2D, 0x60, +0x40, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xFF, 0xF7, +0x1F, 0x69, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF0, +0x00, 0x6C, 0xB1, 0x67, 0x6E, 0xF7, 0x10, 0x6E, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0xFF, 0xF7, 0x1F, 0x69, 0x43, 0xF0, +0x00, 0x6C, 0xB1, 0x67, 0x04, 0xF3, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x48, 0xF1, +0x04, 0x6C, 0xB1, 0x67, 0x6E, 0xF0, 0x17, 0x6E, +0x1F, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xFF, 0xF7, +0x1F, 0x69, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF0, +0x00, 0x6C, 0xB1, 0x67, 0x6E, 0xF7, 0x10, 0x6E, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0xFF, 0xF7, 0x1F, 0x69, 0x43, 0xF0, +0x00, 0x6C, 0xB1, 0x67, 0x04, 0xF3, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x48, 0xF1, +0x04, 0x6C, 0xB1, 0x67, 0x24, 0xF0, 0x10, 0x6E, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x02, 0x5D, 0x05, 0x67, +0x12, 0x91, 0x37, 0x60, 0x04, 0x26, 0x04, 0xD1, +0x80, 0x18, 0x18, 0x41, 0x33, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF3, 0x50, 0x9A, 0x4C, 0xEF, +0x4A, 0xEF, 0x08, 0xD7, 0x0C, 0x60, 0x00, 0x6E, +0xE2, 0x67, 0x80, 0x18, 0x3E, 0x45, 0x61, 0x42, +0x24, 0x23, 0x08, 0x94, 0xD1, 0x67, 0xA2, 0x67, +0x80, 0x18, 0x09, 0x41, 0x22, 0x67, 0x03, 0xF0, +0x08, 0x6B, 0x06, 0xD3, 0x05, 0xF1, 0x00, 0x4B, +0x07, 0xD3, 0x08, 0x30, 0x7D, 0x67, 0x01, 0xE3, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, 0xD0, 0x9B, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x8C, 0xA8, 0x01, 0x6D, 0xAB, 0xED, 0x2C, 0xEE, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0D, 0x6C, 0x40, 0xEA, 0x01, 0x6A, +0x01, 0x10, 0x00, 0x6A, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x00, 0x6D, 0x0A, 0xD4, 0x80, 0x18, 0xE2, 0x40, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF4, 0x20, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0x0A, 0xF4, 0x00, 0x48, +0x00, 0x6A, 0x90, 0x67, 0xF1, 0x67, 0xA2, 0x67, +0xBC, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x90, 0x67, 0xF1, 0x67, 0x01, 0x6A, 0x00, 0x6D, +0xBC, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x00, 0x6A, 0xF1, 0x67, 0x90, 0x67, 0xBC, 0x6E, +0xA2, 0x67, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x0A, 0x94, 0x01, 0x6D, 0x80, 0x18, 0xE2, 0x40, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x63, 0xF5, 0x10, 0x69, +0x01, 0x6D, 0x91, 0x67, 0xAB, 0xED, 0x80, 0x18, +0xF0, 0x16, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x68, +0x04, 0x96, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0x91, 0x67, 0xAB, 0xED, 0xFF, 0xF5, 0x1E, 0x4E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, +0x01, 0x6D, 0x91, 0x67, 0xAB, 0xED, 0x40, 0xEA, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x44, 0x99, 0xFF, 0x6D, 0x83, 0xF4, +0x10, 0x6C, 0x01, 0x4D, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, 0x0C, 0x9A, +0x00, 0x6C, 0x01, 0x6E, 0xB0, 0x67, 0x80, 0x18, +0x7D, 0x17, 0x00, 0x6C, 0xB0, 0x67, 0xC4, 0x67, +0x80, 0x18, 0x7D, 0x17, 0xB0, 0x67, 0x00, 0x6C, +0x01, 0x6E, 0x80, 0x18, 0x7D, 0x17, 0xC0, 0xF3, +0x44, 0x99, 0xFF, 0x6D, 0x83, 0xF4, 0x10, 0x6C, +0x01, 0x4D, 0x01, 0x6E, 0x40, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x52, 0x9C, +0x40, 0xA2, 0x13, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF3, 0x0C, 0x9A, 0x00, 0x6C, 0x01, 0x6E, +0xB0, 0x67, 0x80, 0x18, 0x7D, 0x17, 0x00, 0x6C, +0xC4, 0x67, 0xB0, 0x67, 0x80, 0x18, 0x7D, 0x17, +0x00, 0x6C, 0xB0, 0x67, 0x01, 0x6E, 0x80, 0x18, +0x7D, 0x17, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x24, 0x67, 0x09, 0xD5, +0x80, 0x18, 0x03, 0x43, 0x52, 0x99, 0x40, 0xA2, +0x04, 0x22, 0x91, 0x67, 0x01, 0x6D, 0x80, 0x18, +0xD7, 0x42, 0x20, 0xF0, 0x58, 0xA1, 0x04, 0x22, +0x91, 0x67, 0xE0, 0xF3, 0x1F, 0x6D, 0x02, 0x10, +0x91, 0x67, 0x00, 0x6D, 0x30, 0xF0, 0x20, 0x68, +0x80, 0x18, 0xE5, 0x42, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0x6D, 0xC5, 0x67, 0x03, 0xF0, 0x0C, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF3, +0x0C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF0, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0x6D, 0xC5, 0x67, +0x08, 0xF1, 0x0C, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x02, 0xF3, 0x0C, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xA0, 0x9B, 0x08, 0xF1, 0x0C, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x09, 0x92, 0x07, 0x2A, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF4, 0x1C, 0x6C, +0x03, 0x6D, 0x00, 0x6E, 0x0A, 0x10, 0x09, 0x93, +0x00, 0x6A, 0x01, 0x73, 0x0B, 0x61, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0x6D, 0x23, 0xF4, 0x1C, 0x6C, +0xC5, 0x67, 0x40, 0xEA, 0x91, 0x67, 0x80, 0x18, +0xE8, 0x45, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x0C, 0xD4, 0x20, 0xF0, 0x6F, 0xA4, 0xFF, 0x69, +0x06, 0x67, 0xAC, 0xE9, 0x01, 0x6A, 0xE0, 0xF1, +0x18, 0x2B, 0x07, 0x5E, 0xE0, 0xF1, 0x14, 0x60, +0x01, 0x76, 0x02, 0x61, 0x03, 0x59, 0x03, 0x10, +0x02, 0x76, 0x03, 0x61, 0x05, 0x59, 0xE0, 0xF1, +0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x0C, 0x94, +0x42, 0xF3, 0xF0, 0x9A, 0x00, 0x6D, 0x18, 0x6E, +0x80, 0x18, 0x3E, 0x45, 0x07, 0xD2, 0x07, 0x93, +0x06, 0xF0, 0x01, 0x6A, 0x4B, 0xEA, 0x4C, 0xEB, +0x07, 0x58, 0x06, 0xD3, 0x08, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0x08, 0x33, 0x22, 0xF1, 0x18, 0x4A, +0x69, 0xE2, 0x40, 0x9A, 0x00, 0xEA, 0x00, 0x69, +0x5A, 0x11, 0x05, 0x70, 0x25, 0x61, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, +0x10, 0x6C, 0xE7, 0xF7, 0x10, 0x6D, 0xA0, 0xF2, +0x0B, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA1, 0xF1, 0x10, 0x6C, 0xDF, 0xF7, 0x00, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA1, 0xF1, 0x14, 0x69, 0x91, 0x67, 0x00, 0xF7, +0x00, 0x6D, 0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x42, 0xF5, 0xB4, 0x9B, 0x04, 0x6E, 0x4C, 0x10, +0x06, 0x70, 0x25, 0x61, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, 0x10, 0x6C, +0xE7, 0xF7, 0x10, 0x6D, 0xA0, 0xF2, 0x0B, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA1, 0xF1, +0x10, 0x6C, 0xDF, 0xF7, 0x00, 0x6D, 0x02, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA1, 0xF1, +0x14, 0x69, 0x91, 0x67, 0x00, 0xF7, 0x00, 0x6D, +0x06, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x42, 0xF5, +0xB4, 0x9B, 0x05, 0x6E, 0x25, 0x10, 0x25, 0x28, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0xF0, 0x10, 0x6C, 0xE7, 0xF7, 0x10, 0x6D, +0x80, 0xF1, 0x1B, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xA1, 0xF1, 0x10, 0x6C, 0xDF, 0xF7, +0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xA1, 0xF1, 0x14, 0x69, 0x91, 0x67, +0x00, 0xF7, 0x00, 0x6D, 0x07, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x42, 0xF5, 0xB4, 0x9B, 0x91, 0x67, 0x06, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0xA1, 0xF1, 0x10, 0x6C, 0x0F, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x06, 0x93, 0x06, 0xF0, +0x00, 0x6A, 0xA1, 0xF4, 0x1C, 0x6C, 0x4D, 0xEB, +0x06, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF4, +0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x00, 0x6E, +0x18, 0x69, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA2, 0xF2, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF2, 0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, 0xB4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF2, 0x08, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xE3, 0xF2, 0x0C, 0x6C, 0x0F, 0x6D, 0x06, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x81, 0xF0, +0x0C, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x0C, 0x93, 0x53, 0x9B, 0x40, 0xA2, +0xA0, 0xF0, 0x05, 0x2A, 0x83, 0x67, 0x05, 0x6D, +0x80, 0x18, 0xDF, 0x41, 0x0C, 0x94, 0x06, 0x6D, +0x6A, 0x10, 0x01, 0x71, 0x09, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF2, +0x00, 0x6C, 0x10, 0x6D, 0x01, 0x6E, 0x08, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x03, 0xF2, 0x00, 0x6C, 0x10, 0x6D, 0x00, 0x6E, +0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xA1, 0xF1, 0x10, 0x6C, 0x0F, 0x6D, +0x05, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA1, 0xF1, 0x10, 0x6C, 0xC0, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x30, 0x36, +0x2D, 0xEE, 0xA1, 0xF1, 0x10, 0x6C, 0x1F, 0xF7, +0x00, 0x6D, 0x40, 0xEA, 0x06, 0x93, 0x04, 0xF0, +0x00, 0x6A, 0xA1, 0xF4, 0x1C, 0x6C, 0x4D, 0xEB, +0x06, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF4, +0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6E, +0x10, 0x69, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA2, 0xF2, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF2, 0x1C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC2, 0xF2, 0xB4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF2, 0x08, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xE3, 0xF2, 0x0C, 0x6C, 0x0F, 0x6D, 0x08, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x81, 0xF0, +0x0C, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x0C, 0x93, 0x53, 0x9B, 0x40, 0xA2, +0x3A, 0x2A, 0x83, 0x67, 0x04, 0x6D, 0x80, 0x18, +0xDF, 0x41, 0x0C, 0x94, 0x00, 0x6D, 0x80, 0x18, +0xEE, 0x41, 0x31, 0x10, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0xA1, 0xF1, 0x10, 0x6C, +0x0F, 0x6D, 0x0A, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xA1, 0xF1, 0x10, 0x6C, 0xC0, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x30, 0x36, 0x2D, 0xEE, 0xA1, 0xF1, 0x10, 0x6C, +0x1F, 0xF7, 0x00, 0x6D, 0x40, 0xEA, 0x06, 0x93, +0x02, 0xF0, 0x00, 0x6A, 0xA1, 0xF4, 0x1C, 0x6C, +0x4D, 0xEB, 0x06, 0xD3, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF4, 0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6E, 0x08, 0x69, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x81, 0xF0, 0x0C, 0x6C, 0x1E, 0xF0, +0x00, 0x6D, 0x06, 0x6E, 0x40, 0xEA, 0x0C, 0x94, +0x30, 0xF0, 0x20, 0x68, 0x0A, 0xF4, 0x00, 0x48, +0x00, 0x6D, 0x80, 0x18, 0xE2, 0x40, 0x01, 0x6A, +0x90, 0x67, 0x00, 0x6D, 0xEE, 0x6E, 0x04, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, 0x12, 0x6B, +0x90, 0x67, 0x00, 0x6D, 0x33, 0x6E, 0x1F, 0x6F, +0x04, 0xD3, 0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF3, 0x10, 0x4A, 0xE0, 0x9A, +0x90, 0x67, 0x00, 0x6D, 0x3F, 0x6E, 0x04, 0xD1, +0x80, 0x18, 0x83, 0x45, 0x00, 0x6B, 0xA3, 0x67, +0x90, 0x67, 0xEE, 0x6E, 0x04, 0x6F, 0x04, 0xD3, +0x80, 0x18, 0x83, 0x45, 0x01, 0x6A, 0x90, 0x67, +0xA2, 0x67, 0xEE, 0x6E, 0x04, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0x83, 0x45, 0x12, 0x6B, 0x90, 0x67, +0x01, 0x6D, 0x33, 0x6E, 0x1F, 0x6F, 0x04, 0xD3, +0x80, 0x18, 0x83, 0x45, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF3, 0x10, 0x4A, 0xE0, 0x9A, 0x90, 0x67, +0x01, 0x6D, 0x3F, 0x6E, 0x04, 0xD1, 0x80, 0x18, +0x83, 0x45, 0x00, 0x6B, 0x90, 0x67, 0x01, 0x6D, +0xEE, 0x6E, 0x04, 0x6F, 0x04, 0xD3, 0x80, 0x18, +0x83, 0x45, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, +0x10, 0x4B, 0xE0, 0x9B, 0x06, 0x92, 0x90, 0x67, +0x00, 0x6D, 0x18, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x83, 0x45, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, +0x10, 0x4B, 0x06, 0x92, 0xE0, 0x9B, 0x90, 0x67, +0x01, 0x6D, 0x18, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0x83, 0x45, 0x0C, 0x94, 0x01, 0x6D, 0x80, 0x18, +0xE2, 0x40, 0x07, 0x92, 0x01, 0x4A, 0x08, 0x22, +0x0C, 0x94, 0x80, 0x18, 0xBF, 0x45, 0x0C, 0x94, +0x80, 0x18, 0xE8, 0x45, 0x01, 0x6A, 0x01, 0x10, +0x00, 0x6A, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x08, 0xD4, 0x09, 0xD5, +0x52, 0x9C, 0x60, 0xA2, 0x45, 0x67, 0x55, 0x2B, +0x02, 0x75, 0x29, 0x61, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0xC1, 0xF4, 0x00, 0x69, +0x91, 0x67, 0xE0, 0xF7, 0x1F, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF5, +0x18, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x08, 0x49, 0x91, 0x67, 0xE0, 0xF7, +0x1F, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF5, 0x18, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xA0, 0x9B, 0x91, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0x03, 0x6A, 0x2A, 0x10, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0xC1, 0xF4, +0x00, 0x69, 0x91, 0x67, 0xE0, 0xF7, 0x1F, 0x6D, +0x00, 0xF4, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF5, 0x18, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0x49, +0x91, 0x67, 0xE0, 0xF7, 0x1F, 0x6D, 0x00, 0xF4, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF5, 0x18, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xA0, 0x9B, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0x09, 0x92, 0x6F, 0x42, 0x02, 0x5B, 0x46, 0x60, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF5, 0x10, 0x69, 0x91, 0x67, 0x00, 0xF3, +0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF4, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF3, 0xA4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x41, 0xF4, 0x04, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF4, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x41, 0xF4, 0x14, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF2, 0xB8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF4, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF4, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x09, 0x96, 0xFD, 0xF2, 0x14, 0x49, 0x91, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0x62, 0xF3, 0xAC, 0x9B, +0x09, 0x96, 0x47, 0x10, 0x03, 0x72, 0x46, 0x61, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF5, 0x10, 0x69, 0x91, 0x67, 0x00, 0xF3, +0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE2, 0xF4, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF3, 0xA4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x41, 0xF4, 0x04, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF4, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x41, 0xF4, 0x14, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF2, 0xB8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF4, 0x18, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF4, 0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xFD, 0xF2, 0x14, 0x49, 0x91, 0x67, 0x03, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x62, 0xF3, 0xAC, 0x9B, 0x91, 0x67, +0x03, 0x6E, 0x40, 0xEA, 0x08, 0x94, 0x80, 0x18, +0xE8, 0x45, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x03, 0x75, 0x24, 0x67, +0x53, 0x60, 0x01, 0x76, 0x09, 0x61, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, +0x00, 0x6C, 0xFF, 0x6D, 0x01, 0x6E, 0x08, 0x10, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x21, 0xF0, 0x00, 0x6C, 0xFF, 0x6D, 0x02, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF6, +0x0C, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0x00, 0x6E, +0x2E, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x21, 0xF0, 0x00, 0x6C, 0xFF, 0x6D, +0x31, 0x6E, 0x0A, 0x10, 0x02, 0x76, 0x12, 0x61, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x21, 0xF0, 0x00, 0x6C, 0xFF, 0x6D, 0x32, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF6, +0x0C, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0x00, 0xF4, +0x00, 0x6E, 0x11, 0x10, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, 0x00, 0x6C, +0xFF, 0x6D, 0x33, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF6, 0x0C, 0x6C, 0xFF, 0xF7, +0x1F, 0x6D, 0x00, 0xF4, 0x04, 0x6E, 0x40, 0xEA, +0x91, 0x67, 0x80, 0x18, 0xE8, 0x45, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0x01, 0x76, 0xD0, 0x61, 0xC6, 0x17, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x01, 0x75, 0x08, 0xD4, 0x26, 0x61, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF3, +0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, +0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF2, 0x0C, 0x69, 0x91, 0x67, +0x20, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC2, 0xF4, 0xBC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x91, 0x67, 0xE2, 0xF4, 0xA0, 0x9B, 0x00, 0x6E, +0x46, 0x10, 0x02, 0x75, 0x1D, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x62, 0xF3, +0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, +0x04, 0x6C, 0x05, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF2, 0x0C, 0x69, 0x91, 0x67, +0x20, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0xC2, 0xF4, 0xBC, 0x9B, 0x00, 0x6E, 0x1E, 0x10, +0x03, 0x75, 0x26, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0x62, 0xF3, 0xAC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x04, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF2, 0x0C, 0x69, 0x91, 0x67, 0x20, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0xC2, 0xF4, 0xBC, 0x9B, +0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xE2, 0xF4, +0xA0, 0x9B, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0x08, 0x94, 0x80, 0x18, 0xE8, 0x45, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x01, 0x6A, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x04, 0x67, 0x25, 0x67, +0x80, 0x18, 0xD6, 0x47, 0xB1, 0x67, 0x90, 0x67, +0x80, 0x18, 0x2B, 0x47, 0x20, 0xF0, 0x2D, 0xC0, +0x90, 0x67, 0x80, 0x18, 0xE8, 0x45, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x01, 0x75, +0x04, 0x67, 0x0C, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, +0x03, 0xF2, 0x04, 0x6C, 0x42, 0xF5, 0xA0, 0x9B, +0x08, 0x6E, 0x19, 0x10, 0x02, 0x75, 0x0C, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF2, 0x04, 0x6C, +0x42, 0xF5, 0xA0, 0x9B, 0x04, 0x6E, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9A, 0x42, 0xF5, 0xA0, 0x9B, +0x03, 0xF2, 0x04, 0x6C, 0x0C, 0x6E, 0x40, 0xEA, +0x90, 0x67, 0x80, 0x18, 0xE8, 0x45, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x7D, 0x67, 0x04, 0x67, 0x47, 0x43, 0x0A, 0xD6, +0x20, 0xF0, 0xAC, 0xC0, 0x21, 0x4A, 0x60, 0xA2, +0x46, 0x67, 0xAD, 0xEA, 0x20, 0xF0, 0x6B, 0xC4, +0x20, 0xF0, 0x4A, 0xC4, 0x25, 0x67, 0xA7, 0x67, +0x80, 0x18, 0x20, 0x48, 0x0A, 0x96, 0xB1, 0x67, +0x90, 0x67, 0x80, 0x18, 0xA7, 0x47, 0x90, 0x67, +0x80, 0x18, 0xE8, 0x45, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x0B, 0xD5, 0x0C, 0xD6, 0x20, 0xF0, 0x44, 0xA4, +0x04, 0x67, 0x27, 0x67, 0x05, 0xD2, 0x20, 0xF0, +0x6F, 0xA4, 0x01, 0x6A, 0x61, 0x2B, 0xFB, 0x4A, +0xCC, 0xEA, 0x5D, 0x2A, 0xFF, 0x75, 0x06, 0x61, +0xFF, 0x77, 0x04, 0x61, 0x01, 0x6B, 0x03, 0x6D, +0x04, 0xD3, 0x07, 0x10, 0x0B, 0x93, 0x04, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x50, 0x2A, 0xA3, 0x67, +0x04, 0xD2, 0x0C, 0x96, 0x90, 0x67, 0x80, 0x18, +0x31, 0x41, 0x0C, 0x95, 0x90, 0x67, 0x80, 0x18, +0x15, 0x48, 0x20, 0xF0, 0x4B, 0xA0, 0x03, 0x2A, +0x01, 0x6A, 0x20, 0xF0, 0x4B, 0xC0, 0x0B, 0x92, +0xFF, 0x4A, 0x02, 0x5A, 0x02, 0x60, 0x0B, 0x91, +0x0C, 0x10, 0x0B, 0x93, 0x03, 0x73, 0x05, 0x61, +0xFF, 0x71, 0x09, 0x61, 0x20, 0xF0, 0x2B, 0xA0, +0x06, 0x10, 0x04, 0x92, 0x04, 0x22, 0x20, 0xF0, +0x2B, 0xA0, 0x00, 0x6D, 0x01, 0x10, 0x03, 0x6D, +0x90, 0x67, 0xD1, 0x67, 0xF1, 0x67, 0x80, 0x18, +0x3A, 0x48, 0x05, 0x92, 0xFF, 0x6B, 0xEB, 0x4A, +0x6C, 0xEA, 0x02, 0x5A, 0x18, 0x60, 0x20, 0xF0, +0x4A, 0xA0, 0x01, 0x72, 0x06, 0x61, 0x0C, 0x93, +0x01, 0x73, 0x03, 0x61, 0x90, 0x67, 0x01, 0x6D, +0x0C, 0x10, 0x20, 0xF0, 0x4A, 0xA0, 0x02, 0x72, +0x06, 0x61, 0x0C, 0x92, 0x02, 0x72, 0x03, 0x61, +0x90, 0x67, 0x02, 0x6D, 0x02, 0x10, 0x90, 0x67, +0x03, 0x6D, 0x80, 0x18, 0x4F, 0x45, 0x90, 0x67, +0x80, 0x18, 0xBF, 0x45, 0x90, 0x67, 0x80, 0x18, +0xE8, 0x45, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, +0x0E, 0xD1, 0x0D, 0xD0, 0x20, 0xF0, 0x44, 0xA4, +0xFF, 0x69, 0x04, 0x67, 0x0A, 0xD2, 0x20, 0xF0, +0x6F, 0xA4, 0xAC, 0xE9, 0x01, 0x6A, 0x40, 0xF1, +0x0A, 0x2B, 0x48, 0x41, 0xF9, 0x4A, 0xFF, 0x6B, +0x6C, 0xEA, 0x15, 0x5A, 0x40, 0xF1, 0x02, 0x61, +0x48, 0x41, 0xC7, 0x4A, 0x6C, 0xEA, 0x23, 0x5A, +0x20, 0xF1, 0x1C, 0x61, 0x47, 0x41, 0x68, 0x4A, +0x6C, 0xEA, 0x04, 0x5A, 0x20, 0xF1, 0x16, 0x61, +0xB2, 0x59, 0x20, 0xF1, 0x13, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF3, 0xF0, 0x9A, 0x00, 0x6D, +0x18, 0x6E, 0x80, 0x18, 0x3E, 0x45, 0x09, 0xD2, +0x01, 0x4A, 0x20, 0xF1, 0x07, 0x22, 0x20, 0xF0, +0x6B, 0xA0, 0x0F, 0x59, 0x58, 0x67, 0x0B, 0xD2, +0x06, 0xD3, 0x0A, 0x2B, 0x21, 0xF0, 0x00, 0x6C, +0x0F, 0x6D, 0x80, 0x18, 0xF0, 0x16, 0xFF, 0x6C, +0x4C, 0xEC, 0x06, 0xD4, 0x20, 0xF0, 0x8B, 0xC0, +0x20, 0xF0, 0x8A, 0xA0, 0x08, 0xD4, 0x0F, 0x2C, +0x21, 0xF0, 0x00, 0x4C, 0xF0, 0x6D, 0x80, 0x18, +0xF0, 0x16, 0x06, 0x94, 0xFF, 0x6B, 0x6C, 0xEA, +0x4D, 0xEC, 0x6C, 0xEC, 0x08, 0xD4, 0x20, 0xF0, +0x4C, 0xC0, 0x20, 0xF0, 0x8A, 0xC0, 0x20, 0xF0, +0x8D, 0xA0, 0x07, 0xD4, 0x0D, 0x2C, 0x30, 0xF0, +0x20, 0x6A, 0x62, 0xF4, 0xB8, 0x9A, 0x21, 0xF0, +0x04, 0x4C, 0x80, 0x18, 0xF0, 0x16, 0xFF, 0x6B, +0x4C, 0xEB, 0x07, 0xD3, 0x20, 0xF0, 0x6D, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF5, 0x5C, 0x9A, +0x09, 0x93, 0x0B, 0x94, 0x4C, 0xEB, 0x2D, 0xEB, +0x06, 0xD3, 0x16, 0x2C, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF5, 0x40, 0x9A, 0x91, 0x59, 0x4D, 0xEB, +0x06, 0xD3, 0x05, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF3, 0x40, 0x9A, 0x07, 0x10, 0x50, 0x59, +0x07, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF3, +0x44, 0x9A, 0x06, 0x93, 0x4D, 0xEB, 0x06, 0xD3, +0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0xE2, 0x40, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF3, 0x10, 0x4B, +0xE0, 0x9B, 0x06, 0x92, 0x30, 0xF0, 0x20, 0x6C, +0x0A, 0xF4, 0x00, 0x4C, 0x00, 0x6D, 0x18, 0x6E, +0x09, 0xD4, 0x04, 0xD2, 0x80, 0x18, 0x83, 0x45, +0x06, 0x94, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF3, +0x10, 0x4A, 0x04, 0xD4, 0xE0, 0x9A, 0x09, 0x94, +0x01, 0x6D, 0x18, 0x6E, 0x80, 0x18, 0x83, 0x45, +0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, 0xE2, 0x40, +0x0F, 0x59, 0x11, 0x60, 0x50, 0x98, 0x40, 0xA2, +0x07, 0x2A, 0x90, 0x67, 0x05, 0x6D, 0x80, 0x18, +0xDF, 0x41, 0x90, 0x67, 0x06, 0x6D, 0x1A, 0x10, +0x90, 0x67, 0x04, 0x6D, 0x80, 0x18, 0xDF, 0x41, +0x90, 0x67, 0x00, 0x6D, 0x13, 0x10, 0x68, 0x41, +0xE4, 0x4B, 0xFF, 0x6A, 0x4C, 0xEB, 0x1D, 0x5B, +0x03, 0x60, 0x90, 0x67, 0x01, 0x6D, 0x0A, 0x10, +0x68, 0x41, 0xA4, 0x4B, 0x4C, 0xEB, 0x2D, 0x5B, +0x03, 0x60, 0x90, 0x67, 0x02, 0x6D, 0x02, 0x10, +0x90, 0x67, 0x03, 0x6D, 0x80, 0x18, 0xEE, 0x41, +0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, 0x09, 0x42, +0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, 0x51, 0x42, +0x0B, 0x93, 0x2F, 0x23, 0x90, 0x67, 0xB1, 0x67, +0x80, 0x18, 0x85, 0x41, 0x90, 0x67, 0x01, 0x6D, +0x00, 0x18, 0x87, 0xC1, 0x40, 0xF4, 0x14, 0x6C, +0x80, 0x6D, 0x00, 0x6E, 0x80, 0x18, 0x7D, 0x17, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6C, +0xC0, 0xF3, 0x44, 0x9C, 0x42, 0xF3, 0xA0, 0x9B, +0x83, 0xF2, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF5, 0xA4, 0x9B, +0x83, 0xF4, 0x00, 0x6C, 0x0F, 0x6E, 0x40, 0xEA, +0x0A, 0x92, 0xFF, 0x6B, 0xEB, 0x4A, 0x6C, 0xEA, +0x02, 0x5A, 0x41, 0x60, 0x90, 0x67, 0x00, 0x6D, +0x3C, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6C, 0xC0, 0xF3, 0x44, 0x9C, 0x42, 0xF3, +0xA0, 0x9B, 0x83, 0xF2, 0x00, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0x01, 0x6E, 0x40, 0xF4, 0x14, 0x6C, +0x80, 0x6D, 0x80, 0x18, 0x7D, 0x17, 0x90, 0x67, +0x02, 0x6D, 0x00, 0x18, 0x87, 0xC1, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF5, 0xA4, 0x9B, 0x83, 0xF4, +0x00, 0x6C, 0x22, 0x6E, 0x40, 0xEA, 0x0A, 0x92, +0xFF, 0x6B, 0xEB, 0x4A, 0x6C, 0xEA, 0x02, 0x5A, +0x16, 0x60, 0x08, 0x94, 0x01, 0x74, 0x06, 0x61, +0x07, 0x92, 0x01, 0x72, 0x0C, 0x61, 0x90, 0x67, +0x01, 0x6D, 0x0B, 0x10, 0x08, 0x93, 0x02, 0x73, +0x06, 0x61, 0x07, 0x94, 0x02, 0x74, 0x03, 0x61, +0x90, 0x67, 0x02, 0x6D, 0x02, 0x10, 0x90, 0x67, +0x03, 0x6D, 0x80, 0x18, 0x4F, 0x45, 0x90, 0x67, +0x80, 0x18, 0xBF, 0x45, 0x52, 0x98, 0x40, 0xA2, +0x04, 0x22, 0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, +0xB8, 0x42, 0x90, 0x67, 0x80, 0x18, 0xE8, 0x45, +0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x0F, 0x97, +0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0x26, 0x67, 0x4C, 0xED, 0x04, 0x67, +0x0B, 0xD7, 0x4C, 0xE9, 0x80, 0x18, 0x87, 0x48, +0x00, 0x6B, 0x09, 0x22, 0x0B, 0x96, 0x90, 0x67, +0xB1, 0x67, 0x80, 0x18, 0x26, 0x46, 0x4B, 0xEB, +0x4D, 0xEB, 0xC0, 0xF7, 0x62, 0x33, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x43, 0x67, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0xFF, 0x69, 0x80, 0xF2, 0x48, 0x9B, 0x2C, 0xED, +0xFF, 0xF7, 0x1F, 0x68, 0x11, 0xD7, 0x8C, 0xE8, +0x08, 0xD5, 0x04, 0x04, 0x00, 0x6D, 0xCC, 0xE9, +0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x48, 0x9B, 0x05, 0x04, 0x00, 0x6D, +0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x4C, 0x9B, 0x11, 0x95, 0x04, 0x04, +0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x4C, 0x9B, 0x12, 0x95, 0x06, 0x04, +0x04, 0x6E, 0x40, 0xEA, 0x00, 0xF1, 0x00, 0x58, +0x08, 0x61, 0x0E, 0xF0, 0x40, 0x40, 0xFF, 0xF7, +0x1F, 0x6B, 0x6C, 0xEA, 0x00, 0xF1, 0x00, 0x5A, +0x39, 0x60, 0x08, 0x92, 0x04, 0x72, 0x11, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF2, 0x58, 0x9A, +0xFF, 0x6B, 0x49, 0xE0, 0x40, 0xA2, 0x4C, 0xEB, +0x5F, 0x21, 0x06, 0x94, 0x8F, 0xEA, 0x6C, 0xEA, +0x04, 0x93, 0x8C, 0xEB, 0x6D, 0xEA, 0x04, 0xD2, +0x57, 0x10, 0x08, 0x92, 0x05, 0x72, 0x12, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF2, 0x58, 0x9A, +0xFF, 0xF7, 0x1F, 0x6B, 0x49, 0xE0, 0x40, 0xAA, +0x4C, 0xEB, 0x7F, 0x21, 0x06, 0x94, 0x8F, 0xEA, +0x6C, 0xEA, 0x04, 0x93, 0x8C, 0xEB, 0x6D, 0xEA, +0x04, 0xD2, 0x77, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF2, 0x58, 0x9A, 0x49, 0xE0, 0x60, 0x9A, +0x80, 0xF0, 0x1E, 0x21, 0x06, 0x94, 0x8F, 0xEA, +0x6C, 0xEA, 0x04, 0x93, 0x8C, 0xEB, 0x6D, 0xEA, +0x04, 0xD2, 0x96, 0x10, 0x01, 0xF0, 0x00, 0x58, +0x09, 0x61, 0x0D, 0xF7, 0x40, 0x40, 0xFF, 0xF7, +0x1F, 0x6B, 0x6C, 0xEA, 0x00, 0xF7, 0x00, 0x5A, +0x80, 0xF0, 0x17, 0x60, 0x08, 0x92, 0x04, 0x72, +0x31, 0x61, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, +0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF2, 0x58, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF2, +0x5C, 0x9A, 0x49, 0xE0, 0x60, 0xA2, 0xFF, 0x6A, +0x6C, 0xEA, 0x07, 0x21, 0x06, 0x94, 0x8F, 0xEB, +0x4C, 0xEB, 0x04, 0x92, 0x8C, 0xEA, 0x4D, 0xEB, +0x04, 0xD3, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, +0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF2, 0x58, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF2, +0x5C, 0x9A, 0x7D, 0x67, 0x41, 0xE0, 0x50, 0xA3, +0x40, 0xC0, 0x7E, 0x10, 0x08, 0x92, 0x05, 0x72, +0x32, 0x61, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, +0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF2, 0x58, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF2, +0x5C, 0x9A, 0x49, 0xE0, 0x60, 0xAA, 0xFF, 0xF7, +0x1F, 0x6A, 0x6C, 0xEA, 0x07, 0x21, 0x06, 0x94, +0x8F, 0xEB, 0x4C, 0xEB, 0x04, 0x92, 0x8C, 0xEA, +0x4D, 0xEB, 0x04, 0xD3, 0x1F, 0xF7, 0x00, 0x6A, +0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, +0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF2, +0x58, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF2, 0x5C, 0x9A, 0x7D, 0x67, 0x41, 0xE0, +0x48, 0xAB, 0x40, 0xC8, 0x49, 0x10, 0x1F, 0xF7, +0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF2, 0x58, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF2, 0x5C, 0x9A, 0x49, 0xE0, +0x60, 0x9A, 0x07, 0x21, 0x06, 0x94, 0x8F, 0xEA, +0x6C, 0xEA, 0x04, 0x93, 0x8C, 0xEB, 0x6D, 0xEA, +0x04, 0xD2, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, +0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF2, 0x58, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF2, +0x5C, 0x9A, 0x41, 0xE0, 0x04, 0x92, 0x40, 0xD8, +0x1B, 0x10, 0xFF, 0xF7, 0x1C, 0x6A, 0x0C, 0xEA, +0x01, 0x6D, 0x82, 0x67, 0xAB, 0xED, 0x08, 0xD2, +0x80, 0x18, 0xF0, 0x16, 0x05, 0xD2, 0x07, 0x21, +0x06, 0x94, 0x8F, 0xEB, 0x4C, 0xEB, 0x04, 0x92, +0x8C, 0xEA, 0x4D, 0xEB, 0x04, 0xD3, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x08, 0x94, +0x04, 0x96, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x41, 0x9C, 0x61, 0xA4, +0x01, 0xAC, 0x06, 0xD2, 0x42, 0x9C, 0xFF, 0x73, +0x07, 0xD2, 0x00, 0x6A, 0x62, 0x60, 0x7F, 0x6D, +0x6C, 0xED, 0x4C, 0x45, 0xFF, 0x6B, 0x6C, 0xEA, +0x0E, 0x5A, 0x08, 0x60, 0x30, 0xF0, 0x20, 0x6B, +0x48, 0x32, 0xC2, 0xF1, 0x00, 0x4B, 0x4D, 0xE3, +0x40, 0x9B, 0x00, 0xEA, 0x03, 0x6A, 0x51, 0x10, +0x61, 0xA4, 0x80, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xFF, 0x6E, 0x07, 0x03, 0x90, 0x67, 0x4C, 0xEE, +0x06, 0x07, 0x04, 0xD3, 0x80, 0x18, 0x45, 0x49, +0x28, 0x10, 0x81, 0xA4, 0x80, 0x6A, 0xFF, 0x69, +0x64, 0x67, 0x4C, 0xEB, 0x0C, 0xE9, 0x02, 0x32, +0x30, 0xF0, 0x20, 0x6C, 0x01, 0x6F, 0x0A, 0xF4, +0x00, 0x4C, 0xA2, 0x67, 0xD1, 0x67, 0xEB, 0xEF, +0x08, 0xD3, 0x09, 0xD2, 0x80, 0x18, 0x3E, 0x45, +0x08, 0x93, 0x07, 0x23, 0x07, 0x94, 0x8F, 0xEB, +0x4C, 0xEB, 0x06, 0x92, 0x8C, 0xEA, 0x4D, 0xEB, +0x06, 0xD3, 0x06, 0x92, 0x09, 0x95, 0x30, 0xF0, +0x20, 0x6C, 0x01, 0x6F, 0x0A, 0xF4, 0x00, 0x4C, +0xD1, 0x67, 0xEB, 0xEF, 0x04, 0xD2, 0x80, 0x18, +0x83, 0x45, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, +0x00, 0x4A, 0x65, 0xF7, 0x60, 0x9A, 0x06, 0x94, +0x61, 0xE0, 0x65, 0xF7, 0x64, 0x9A, 0x65, 0xF7, +0x00, 0xDA, 0x6D, 0xE4, 0x65, 0xF7, 0x64, 0xDA, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x48, 0x9A, 0x90, 0x67, 0x40, 0xEA, +0x01, 0x6A, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x00, 0x4A, +0x86, 0xF6, 0x04, 0x4B, 0xA6, 0xF7, 0x6C, 0xDA, +0x30, 0xF0, 0x20, 0x6B, 0x86, 0xF6, 0x00, 0x4B, +0xA6, 0xF7, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6B, +0x86, 0xF6, 0x08, 0x4B, 0x86, 0xF7, 0x7C, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0xE0, 0x63, 0x3F, 0x62, +0xFF, 0xF7, 0x1F, 0x6A, 0xAC, 0xEA, 0xBD, 0x67, +0x56, 0xC5, 0x01, 0x6B, 0x42, 0x32, 0x57, 0xC5, +0x6B, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x70, 0xC5, +0x20, 0xF4, 0x40, 0x9A, 0x03, 0x6B, 0x72, 0xC5, +0x04, 0x6B, 0x94, 0xC5, 0x73, 0xC5, 0x04, 0x04, +0x40, 0xEA, 0x3F, 0x97, 0x20, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0xA7, 0x44, 0x30, 0xF0, +0x20, 0x6C, 0x01, 0x4D, 0x09, 0xF4, 0x08, 0x4C, +0x14, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x04, 0x67, 0x80, 0x18, +0x32, 0x4A, 0x47, 0xA0, 0x66, 0xA0, 0x30, 0xF0, +0x20, 0x69, 0xA3, 0xF4, 0x00, 0x49, 0x40, 0x32, +0x65, 0xF7, 0x88, 0xA1, 0x69, 0xE2, 0x65, 0xF7, +0x5A, 0xC9, 0x01, 0x6A, 0x8C, 0xEA, 0xFF, 0x6B, +0x1C, 0x2A, 0x65, 0xF7, 0xBC, 0xA1, 0xFE, 0x4A, +0xAC, 0xEA, 0x65, 0xF7, 0x5C, 0xC1, 0x02, 0x6A, +0x8C, 0xEA, 0x6C, 0xEA, 0x4E, 0x22, 0x65, 0xF7, +0x4B, 0xA1, 0x0F, 0x6D, 0x65, 0xF7, 0x8C, 0xA1, +0x4C, 0xED, 0x52, 0x36, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF4, 0x58, 0x9A, 0x6C, 0xED, 0x6C, 0xEE, +0x40, 0xEA, 0x01, 0x72, 0x0D, 0x6A, 0x3E, 0x61, +0x3C, 0x10, 0x65, 0xF7, 0x7C, 0xA1, 0x02, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x65, 0xF7, 0x5C, 0xC1, +0x65, 0xF7, 0x58, 0xA9, 0x00, 0xF1, 0x01, 0x5A, +0x0C, 0x6A, 0x30, 0x60, 0x00, 0x6A, 0x65, 0xF7, +0x5D, 0xC1, 0x65, 0xF7, 0x5E, 0xC1, 0x65, 0xF7, +0x09, 0xA1, 0x00, 0x6A, 0x85, 0xF7, 0x40, 0xC9, +0x85, 0xF7, 0x42, 0xC9, 0x00, 0x18, 0xD5, 0xC5, +0x01, 0xE2, 0x00, 0x6A, 0x65, 0xF7, 0xF8, 0xA9, +0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF2, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x82, 0xF6, 0xBC, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0xC2, 0xF2, 0x54, 0x9A, 0x30, 0xF0, 0x20, 0x6E, +0x1C, 0x30, 0x29, 0xF4, 0x0A, 0x4E, 0x00, 0x6C, +0xB5, 0xE0, 0x59, 0xE6, 0x40, 0xEB, 0x65, 0xF7, +0x5C, 0xA1, 0x01, 0x6B, 0x6D, 0xEA, 0x65, 0xF7, +0x5C, 0xC1, 0x00, 0x6A, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0xA3, 0xF4, 0x00, 0x48, 0x85, 0xF7, +0xA0, 0xA8, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x80, 0xF2, 0x4C, 0x9A, 0x29, 0xF4, +0x0A, 0x4B, 0x30, 0xF0, 0x20, 0x6C, 0xB5, 0xE3, +0x29, 0xF5, 0x0C, 0x4C, 0x04, 0x6E, 0x40, 0xEA, +0x86, 0xF0, 0x6F, 0xA0, 0x80, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x05, 0x2A, +0x85, 0xF7, 0x40, 0xA8, 0x04, 0x4A, 0x85, 0xF7, +0x40, 0xC8, 0x30, 0xF0, 0x20, 0x68, 0xA3, 0xF4, +0x00, 0x48, 0x86, 0xF0, 0x6D, 0xA0, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x58, 0x9A, 0x86, 0xF0, +0x8C, 0xA0, 0x0F, 0x6D, 0x6C, 0xED, 0x72, 0x36, +0x40, 0xEA, 0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF4, 0x54, 0x9A, 0x40, 0xEA, 0x65, 0xF7, +0x7C, 0xA0, 0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x65, 0xF7, 0x5C, 0xC0, 0x01, 0x6C, 0x59, 0x10, +0x86, 0xF0, 0x6F, 0xA0, 0x7F, 0x6A, 0x6C, 0xEA, +0xFF, 0x6B, 0x6C, 0xEA, 0x15, 0x22, 0x01, 0x72, +0x48, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, +0x4C, 0x9A, 0x00, 0x6C, 0x40, 0xEA, 0x4C, 0x22, +0x45, 0xF7, 0x9D, 0xA0, 0x00, 0x6D, 0x80, 0x18, +0x58, 0x18, 0x06, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF4, 0x54, 0x9A, 0x40, 0xEA, 0x40, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0x65, 0xF7, 0x7D, 0xA2, 0x86, 0xF0, 0x8E, 0xA2, +0x01, 0x4B, 0x65, 0xF7, 0x7D, 0xC2, 0x85, 0xF7, +0x62, 0xAA, 0x6D, 0xE4, 0x85, 0xF7, 0x62, 0xCA, +0x65, 0xF7, 0x9D, 0xA2, 0x65, 0xF7, 0x6A, 0xA2, +0x8E, 0xEB, 0x0C, 0x2B, 0x86, 0xF0, 0xCE, 0xA2, +0x10, 0xF0, 0x31, 0x6C, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0xD3, 0x00, 0xF3, 0x4C, 0x9A, 0x65, 0xF3, +0x0D, 0x4C, 0x0C, 0x10, 0x86, 0xF0, 0xCE, 0xA2, +0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, 0x31, 0x6C, +0x45, 0xF3, 0x01, 0x4C, 0x64, 0x6B, 0x78, 0xEE, +0x00, 0x6D, 0x01, 0x6F, 0x12, 0xEE, 0x40, 0xEA, +0x1B, 0x10, 0x65, 0xF7, 0x7C, 0xA0, 0x02, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x65, 0xF7, 0x5C, 0xC0, +0x02, 0x6C, 0x65, 0xF7, 0xBA, 0xA8, 0x0E, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0x65, 0xF7, 0x9C, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, +0x65, 0xF7, 0xBA, 0xAA, 0x8C, 0xEB, 0x65, 0xF7, +0x7C, 0xC2, 0x03, 0x6C, 0x80, 0x18, 0x25, 0x4A, +0x07, 0x97, 0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0x65, 0xF7, 0x9C, 0xA2, +0x01, 0x6B, 0x8C, 0xEB, 0x08, 0x23, 0x86, 0xF0, +0x6A, 0xA2, 0x03, 0x23, 0x00, 0x6B, 0x86, 0xF0, +0x6A, 0xC2, 0x80, 0x18, 0x76, 0x4A, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xA3, 0xF4, 0x00, 0x48, 0x65, 0xF7, 0x5C, 0xA0, +0x01, 0x69, 0x91, 0x67, 0x4C, 0xEC, 0xFF, 0x6B, +0x00, 0xF1, 0x0E, 0x24, 0x65, 0xF7, 0xA8, 0xA0, +0x03, 0x6E, 0xAE, 0x34, 0xCC, 0xEC, 0x6C, 0xEC, +0x02, 0x74, 0x7C, 0x60, 0x03, 0x74, 0xC0, 0xF0, +0x1D, 0x60, 0x01, 0x74, 0x25, 0x60, 0x02, 0x6C, +0x8B, 0xEC, 0x4C, 0xEC, 0x02, 0x6A, 0xAC, 0xEA, +0x6C, 0xEA, 0x65, 0xF7, 0x9C, 0xC0, 0x11, 0x22, +0x65, 0xF7, 0x4B, 0xA0, 0x0F, 0x6D, 0x65, 0xF7, +0x8C, 0xA0, 0x4C, 0xED, 0x52, 0x36, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x58, 0x9A, 0x6C, 0xED, +0x6C, 0xEE, 0x40, 0xEA, 0x01, 0x72, 0x01, 0x6C, +0x01, 0x61, 0x00, 0x6C, 0x65, 0xF7, 0xBA, 0xA8, +0x80, 0x18, 0x25, 0x4A, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF4, 0x54, 0x9A, 0x40, 0xEA, 0xBF, 0x10, +0x02, 0x6A, 0xAC, 0xEA, 0x6C, 0xEA, 0x11, 0x22, +0x65, 0xF7, 0x4B, 0xA0, 0x0F, 0x6D, 0x65, 0xF7, +0x8C, 0xA0, 0x4C, 0xED, 0x52, 0x36, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x58, 0x9A, 0x6C, 0xED, +0x6C, 0xEE, 0x40, 0xEA, 0x01, 0x72, 0xA0, 0xF0, +0x17, 0x61, 0x65, 0xF7, 0xBA, 0xA8, 0x00, 0x6C, +0x80, 0x18, 0x25, 0x4A, 0x30, 0xF0, 0x20, 0x6A, +0x09, 0xF4, 0x4D, 0xA2, 0x5A, 0x33, 0x02, 0x73, +0x0D, 0x60, 0x03, 0x73, 0x0F, 0x60, 0x01, 0x73, +0x05, 0x60, 0x3F, 0x6E, 0x4C, 0xEE, 0xFF, 0x6A, +0x4C, 0xEE, 0x0E, 0x10, 0x3F, 0x6B, 0x4C, 0xEB, +0x0A, 0x6E, 0x08, 0x10, 0x3F, 0x6B, 0x4C, 0xEB, +0x64, 0x6E, 0x04, 0x10, 0x3F, 0x6B, 0x4C, 0xEB, +0xE0, 0xF3, 0x08, 0x6E, 0xD8, 0xEB, 0x12, 0xEE, +0x0A, 0x6A, 0x58, 0xEE, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0x85, 0xF7, 0x62, 0xAA, +0x10, 0xF0, 0x31, 0x6C, 0x45, 0xF3, 0x01, 0x4C, +0x00, 0x6D, 0x12, 0xEE, 0x7B, 0xE6, 0x01, 0x6B, +0x86, 0xF0, 0x6A, 0xC2, 0x00, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, +0x64, 0x6B, 0x5F, 0x10, 0x02, 0x6A, 0xAC, 0xEA, +0x6C, 0xEA, 0x10, 0x22, 0x65, 0xF7, 0x4B, 0xA0, +0x0F, 0x6D, 0x65, 0xF7, 0x8C, 0xA0, 0x4C, 0xED, +0x52, 0x36, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x58, 0x9A, 0x6C, 0xED, 0x6C, 0xEE, 0x40, 0xEA, +0x01, 0x72, 0x66, 0x61, 0x65, 0xF7, 0xBA, 0xA8, +0x00, 0x6C, 0x80, 0x18, 0x25, 0x4A, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, 0x65, 0xF7, +0x8F, 0xA2, 0x65, 0xF7, 0x7E, 0xA2, 0xFF, 0x4C, +0x6E, 0xEC, 0x03, 0x2C, 0x65, 0xF7, 0x4E, 0xA2, +0x05, 0x10, 0x01, 0x4B, 0x65, 0xF7, 0x7E, 0xC2, +0x65, 0xF7, 0x4D, 0xA2, 0x5A, 0x33, 0x02, 0x73, +0x0D, 0x60, 0x03, 0x73, 0x0F, 0x60, 0x01, 0x73, +0x05, 0x60, 0x3F, 0x6B, 0x4C, 0xEB, 0xFF, 0x6A, +0x4C, 0xEB, 0x0E, 0x10, 0x3F, 0x6B, 0x4C, 0xEB, +0x0A, 0x6A, 0x08, 0x10, 0x3F, 0x6B, 0x4C, 0xEB, +0x64, 0x6A, 0x04, 0x10, 0x3F, 0x6B, 0x4C, 0xEB, +0xE0, 0xF3, 0x08, 0x6A, 0x58, 0xEB, 0x12, 0xEB, +0x0A, 0x6A, 0x58, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0x29, 0xF4, 0x42, 0xAA, 0x01, 0x6C, 0x00, 0x6D, +0x64, 0x6E, 0x12, 0xEB, 0x4F, 0xE3, 0x30, 0xF0, +0x20, 0x6A, 0x29, 0xF5, 0x8A, 0xC2, 0x00, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x4C, 0x9A, 0x10, 0xF0, 0x31, 0x6C, 0x45, 0xF3, +0x01, 0x4C, 0xD8, 0xEB, 0x01, 0x6F, 0x12, 0xEE, +0x40, 0xEA, 0x09, 0x10, 0x65, 0xF7, 0xBA, 0xA8, +0x00, 0x6C, 0x80, 0x18, 0x25, 0x4A, 0x86, 0xF0, +0x2A, 0xC0, 0x80, 0x18, 0xD0, 0x4A, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, 0x00, 0x6B, +0x65, 0xF7, 0x7D, 0xC2, 0x00, 0x6B, 0x85, 0xF7, +0x62, 0xCA, 0x85, 0xF7, 0x60, 0xCA, 0x10, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0x65, 0xF7, 0x9C, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, +0x65, 0xF7, 0xBA, 0xAA, 0x8C, 0xEB, 0x65, 0xF7, +0x7C, 0xC2, 0x01, 0x6C, 0x80, 0x18, 0x25, 0x4A, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xFF, 0x69, 0x04, 0x67, 0x80, 0xF4, 0x4C, 0x9A, +0x2C, 0xE8, 0x2C, 0xED, 0xCC, 0xE9, 0x04, 0xD5, +0x90, 0x67, 0xD1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, 0x0F, 0x58, +0xE3, 0xF1, 0x08, 0xC2, 0xE3, 0xF1, 0x20, 0xDA, +0x01, 0x6B, 0x01, 0x60, 0x00, 0x6B, 0x04, 0x96, +0x30, 0xF0, 0x20, 0x6C, 0xB0, 0x67, 0xF1, 0x67, +0xE3, 0xF1, 0x64, 0xDA, 0x0A, 0xF4, 0x00, 0x4C, +0x80, 0x18, 0x36, 0x49, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, 0x50, 0x9A, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x00, 0x4B, +0x80, 0xA2, 0x65, 0xF7, 0xDC, 0xA3, 0x85, 0xF7, +0x84, 0xC3, 0xA0, 0xAA, 0x01, 0xF0, 0x00, 0x6C, +0xAC, 0xEC, 0x83, 0x35, 0x03, 0x6C, 0xAE, 0x35, +0x8B, 0xEC, 0xA4, 0x35, 0xCC, 0xEC, 0xAD, 0xEC, +0x65, 0xF7, 0x9C, 0xC3, 0x30, 0xF0, 0x20, 0x6C, +0x42, 0xF7, 0x94, 0x9C, 0xA0, 0xAC, 0x85, 0xF7, +0xA6, 0xCB, 0xA0, 0xAA, 0xBF, 0xF7, 0x1F, 0x6B, +0xAC, 0xEB, 0x60, 0xCA, 0xA0, 0xAA, 0x7F, 0xF7, +0x1F, 0x6B, 0xAC, 0xEB, 0x60, 0xCA, 0xC0, 0xAA, +0xFE, 0xF7, 0x1F, 0x6B, 0xFF, 0xF7, 0x1F, 0x6D, +0xCC, 0xEB, 0x60, 0xCA, 0x40, 0xAC, 0xFF, 0x6B, +0x21, 0x4B, 0xAC, 0xEA, 0x6D, 0xEA, 0xAC, 0xEA, +0x40, 0xCC, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x85, 0xF7, 0x84, 0xA2, 0x42, 0xF7, 0x70, 0x9B, +0x01, 0x6E, 0x80, 0xC3, 0x30, 0xF0, 0x20, 0x6C, +0x85, 0xF7, 0xA6, 0xAA, 0x42, 0xF7, 0x94, 0x9C, +0xA0, 0xCC, 0x65, 0xF7, 0x5C, 0xA2, 0x80, 0xAB, +0xFF, 0xF7, 0x1F, 0x6D, 0x46, 0x32, 0xCC, 0xEA, +0xAC, 0xEC, 0x40, 0x32, 0xFE, 0xF7, 0x1E, 0x4E, +0x4C, 0x32, 0xCC, 0xEC, 0x8D, 0xEA, 0xAC, 0xEA, +0x40, 0xCB, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD0, 0x00, 0x68, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x48, 0x9A, 0x90, 0x67, 0x04, 0x05, +0x40, 0xEA, 0x01, 0x72, 0x02, 0x60, 0x03, 0x6A, +0x0D, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF6, +0x40, 0x9A, 0x9D, 0x67, 0x70, 0xA4, 0x09, 0xE2, +0x01, 0x48, 0x00, 0xF2, 0x00, 0x70, 0x60, 0xC2, +0xE9, 0x61, 0x00, 0x6A, 0x07, 0x97, 0x06, 0x90, +0x04, 0x63, 0x00, 0xEF, 0x10, 0xF0, 0x23, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF6, 0x11, 0x4B, +0x40, 0xF1, 0x68, 0xDA, 0x10, 0xF0, 0x23, 0x6B, +0x40, 0xF1, 0x08, 0x4A, 0x60, 0xF5, 0x09, 0x4B, +0x61, 0xDA, 0x10, 0xF0, 0x23, 0x6B, 0x42, 0xF7, +0x05, 0x4B, 0x62, 0xDA, 0x10, 0xF0, 0x23, 0x6B, +0x22, 0xF7, 0x15, 0x4B, 0x63, 0xDA, 0x10, 0xF0, +0x23, 0x6B, 0x22, 0xF7, 0x05, 0x4B, 0x64, 0xDA, +0x10, 0xF0, 0x23, 0x6B, 0x02, 0xF7, 0x15, 0x4B, +0x65, 0xDA, 0x10, 0xF0, 0x23, 0x6B, 0x02, 0xF7, +0x05, 0x4B, 0x66, 0xDA, 0x10, 0xF0, 0x23, 0x6B, +0xE2, 0xF6, 0x15, 0x4B, 0x67, 0xDA, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xA3, 0xF4, 0x00, 0x48, +0x00, 0x69, 0xA0, 0xF0, 0x24, 0xD8, 0x20, 0xF1, +0x30, 0xC0, 0x80, 0x18, 0xC3, 0x4B, 0xC3, 0xF1, +0x2C, 0xC0, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0x00, 0x6B, 0x03, 0xF3, +0x64, 0xC2, 0x03, 0xF3, 0x65, 0xC2, 0x03, 0xF3, +0x66, 0xC2, 0x03, 0xF3, 0x67, 0xC2, 0x42, 0xF4, +0x10, 0x6A, 0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x05, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF2, 0x78, 0x9B, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF2, +0x7C, 0x9B, 0x6D, 0xE2, 0x04, 0x4A, 0x00, 0x6C, +0x62, 0xF4, 0x00, 0x72, 0x80, 0xDB, 0xE9, 0x61, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF2, 0x5C, 0x9A, +0x03, 0x6C, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF3, 0x40, 0x9A, 0x00, 0xF5, 0x62, 0x33, +0x8C, 0xEB, 0x40, 0x9A, 0x01, 0x73, 0x42, 0x32, +0x52, 0x32, 0x8C, 0xEA, 0x05, 0x60, 0x0B, 0x2B, +0x02, 0x5A, 0x50, 0x6C, 0x0D, 0x60, 0x03, 0x10, +0x02, 0x5A, 0x0A, 0x60, 0x28, 0x6C, 0x87, 0xEA, +0xFF, 0x6A, 0x4C, 0xEC, 0x06, 0x10, 0x02, 0x5A, +0x28, 0x6C, 0x03, 0x60, 0x14, 0x6C, 0x01, 0x10, +0x50, 0x6C, 0x80, 0x18, 0x94, 0x4D, 0x80, 0x18, +0x00, 0x00, 0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF2, +0x64, 0x9B, 0x00, 0x6A, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0xF2, 0x60, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0xF2, 0x60, 0x9B, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF2, +0x6C, 0x9B, 0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6B, +0x62, 0xF2, 0x74, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x02, 0xF3, 0x64, 0x9B, 0x40, 0xDB, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xE5, 0x4B, +0x80, 0x18, 0x2D, 0x4C, 0x80, 0x18, 0x93, 0x40, +0x00, 0x18, 0xBC, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xF4, 0x44, 0x9A, 0x40, 0xEA, 0x80, 0x18, +0x19, 0x4A, 0x80, 0x18, 0xE8, 0x16, 0x00, 0x18, +0xD0, 0xCE, 0x00, 0x18, 0xEC, 0xCE, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0x00, 0x6B, 0x20, 0xF6, +0x72, 0xC2, 0x20, 0xF6, 0x73, 0xC2, 0x20, 0xF1, +0x70, 0xC2, 0x20, 0xF1, 0x71, 0xC2, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, 0x40, 0x9A, +0x01, 0x6B, 0x60, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF6, 0x84, 0x9A, +0xFF, 0x6B, 0x20, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, +0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF2, 0x84, 0x9A, 0x08, 0x6D, +0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, +0x40, 0xC4, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF6, 0x68, 0x9A, 0xFD, 0x6A, 0xFF, 0x6C, +0xA0, 0xA3, 0xAC, 0xEA, 0x40, 0xC3, 0x40, 0xA3, +0x01, 0x6D, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xC3, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x48, 0x9A, 0x02, 0xF6, 0x8C, 0x9B, +0x00, 0x6D, 0x02, 0xF0, 0x00, 0x6E, 0x40, 0xEA, +0x00, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF6, +0x6C, 0x9B, 0x54, 0x34, 0x01, 0x4A, 0x6D, 0xE4, +0x80, 0x72, 0x04, 0x6C, 0x80, 0xC3, 0xF5, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF6, 0x90, 0x9B, 0x80, 0xF2, 0x48, 0x9A, +0x00, 0x6D, 0x00, 0xF4, 0x00, 0x6E, 0x40, 0xEA, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x00, 0x4B, +0x52, 0x9B, 0x8D, 0xEA, 0x52, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x02, 0xF6, 0x74, 0x9B, 0x80, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF6, 0x78, 0x9B, +0x40, 0xDB, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x00, 0x4B, 0xB2, 0x9B, 0x8F, 0xEA, +0xAC, 0xEA, 0x52, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF6, 0x78, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x02, 0xF6, 0x54, 0x9A, 0x80, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0x05, 0x5C, 0x5E, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, 0x82, 0xF1, +0x04, 0x4A, 0x89, 0xE2, 0x40, 0x9A, 0x00, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x40, 0x9B, +0xAD, 0xEA, 0xA3, 0xF4, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xA2, 0xF5, 0x78, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF6, 0x7C, 0x9B, +0x32, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x00, 0x4B, 0x41, 0x9B, 0xAD, 0xEA, 0x41, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF6, 0x60, 0x9B, +0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF6, +0x64, 0x9B, 0x21, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x00, 0x4B, 0x42, 0x9B, 0xAD, 0xEA, +0x42, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF6, +0x68, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF6, 0x6C, 0x9B, 0x10, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x00, 0x4B, 0x43, 0x9B, +0xAD, 0xEA, 0x43, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF6, 0x70, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0xF6, 0x74, 0x9B, 0x40, 0xDB, +0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x00, 0x4B, 0x44, 0x9B, 0xAD, 0xEA, 0x44, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF6, 0x78, 0x9B, +0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF6, +0x7C, 0x9B, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, +0x05, 0x5C, 0x63, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x88, 0x34, 0x82, 0xF1, 0x18, 0x4A, 0x89, 0xE2, +0x40, 0x9A, 0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x80, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, +0xA3, 0xF4, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF6, 0x7C, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xA2, 0xF5, 0x58, 0x9A, 0x35, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x00, 0x4B, +0x81, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x41, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF6, 0x64, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, +0x40, 0x9A, 0x23, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x00, 0x4B, 0x82, 0x9B, 0xAF, 0xEA, +0x8C, 0xEA, 0x42, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF6, 0x6C, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x22, 0xF6, 0x48, 0x9A, 0x11, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x00, 0x4B, +0x83, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x43, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF6, 0x74, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, +0x50, 0x9A, 0xA0, 0xDA, 0x20, 0xE8, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x00, 0x4B, 0x84, 0x9B, +0xAF, 0xEA, 0x8C, 0xEA, 0x44, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0xF6, 0x7C, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, 0x58, 0x9A, +0xA0, 0xDA, 0x20, 0xE8, 0x01, 0x74, 0x15, 0x60, +0x03, 0x24, 0x02, 0x74, 0x23, 0x60, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x00, 0x4B, +0x54, 0x9B, 0xAD, 0xEA, 0x54, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF6, 0x60, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF6, 0x64, 0x9B, +0x21, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x00, 0x4B, 0x55, 0x9B, 0xAD, 0xEA, 0x55, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF6, 0x68, 0x9B, +0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF6, +0x6C, 0x9B, 0x10, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x00, 0x4B, 0x56, 0x9B, 0xAD, 0xEA, +0x56, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF6, +0x70, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF6, 0x74, 0x9B, 0x40, 0xDB, 0x20, 0xE8, +0x01, 0x74, 0x16, 0x60, 0x03, 0x24, 0x02, 0x74, +0x25, 0x60, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x00, 0x4B, 0x94, 0x9B, 0xAF, 0xEA, +0x8C, 0xEA, 0x54, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF6, 0x64, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF6, 0x40, 0x9A, 0x23, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x00, 0x4B, +0x95, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x55, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF6, 0x6C, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF6, +0x48, 0x9A, 0x11, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x00, 0x4B, 0x96, 0x9B, 0xAF, 0xEA, +0x8C, 0xEA, 0x56, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF6, 0x74, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF6, 0x50, 0x9A, 0xA0, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6C, +0x02, 0xF6, 0x9C, 0x9C, 0x00, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x40, 0xDB, 0xA3, 0xF4, +0x00, 0x4B, 0x41, 0xDB, 0x42, 0xDB, 0x43, 0xDB, +0x44, 0xDB, 0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, +0x22, 0xF6, 0x84, 0x9C, 0x40, 0xDC, 0x30, 0xF0, +0x20, 0x6C, 0x22, 0xF6, 0x8C, 0x9C, 0x40, 0xDC, +0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF6, 0x94, 0x9C, +0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, 0x22, 0xF6, +0x9C, 0x9C, 0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, +0x42, 0xF6, 0x84, 0x9C, 0x54, 0xDB, 0x55, 0xDB, +0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, 0x42, 0xF6, +0x8C, 0x9C, 0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, +0x42, 0xF6, 0x94, 0x9C, 0x56, 0xDB, 0x40, 0xDC, +0x52, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF6, +0x78, 0x9B, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF5, 0x78, 0x9B, +0x01, 0x6A, 0x4B, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0xF6, 0x60, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF6, 0x68, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF6, +0x70, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF6, 0x78, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF6, 0x60, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF6, 0x68, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF6, +0x70, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF6, 0x74, 0x9B, 0x40, 0xDB, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF3, 0x10, 0x6E, +0xA3, 0xF4, 0xC0, 0xDB, 0x01, 0xF7, 0x01, 0x6A, +0xA3, 0xF4, 0x00, 0x4B, 0x08, 0xF0, 0x00, 0x6D, +0x00, 0x6C, 0x42, 0xDB, 0x43, 0xDB, 0xA1, 0xDB, +0x84, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x02, 0xF6, +0x7C, 0x9B, 0xC0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF6, 0x64, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0xF6, 0x6C, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF6, 0x74, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, +0x5C, 0x9A, 0x80, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF4, 0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0xF6, 0x78, 0x9B, 0x40, 0xDB, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0xA2, 0xF2, 0x80, 0x9B, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF4, 0x00, 0x4A, +0x80, 0xF1, 0x06, 0x6D, 0xFF, 0x6B, 0xB4, 0xDA, +0x95, 0xDA, 0x76, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0x42, 0xF6, 0x44, 0x9A, 0xA0, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF6, 0x4C, 0x9A, 0x80, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF6, 0x54, 0x9A, +0x60, 0xDA, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0x13, 0x4D, 0x80, 0x18, 0x32, 0x4D, +0x80, 0x18, 0x4A, 0x4D, 0x80, 0x18, 0x66, 0x4D, +0x80, 0x18, 0x60, 0x4D, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x4C, 0x9A, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xBB, 0x4D, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x00, 0x4B, +0xC2, 0xF5, 0x44, 0xC3, 0x00, 0x6A, 0xC2, 0xF5, +0x45, 0xC3, 0x80, 0x18, 0x43, 0x4C, 0x80, 0x18, +0x54, 0x4F, 0x80, 0x18, 0x7D, 0x4D, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF6, 0x58, 0x9A, 0x3F, 0x6B, +0x60, 0xC2, 0x80, 0x18, 0x34, 0x4C, 0x80, 0x18, +0x38, 0x4C, 0x80, 0x18, 0x4B, 0x4C, 0x80, 0x18, +0x9A, 0x4D, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x57, 0xCA, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x44, 0x9A, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0x00, 0x6B, 0x01, 0x6C, +0x9F, 0xF7, 0x00, 0x6D, 0x00, 0x6E, 0x26, 0xF7, +0x68, 0xC2, 0x26, 0xF7, 0x69, 0xC2, 0x00, 0x18, +0x93, 0xC4, 0x01, 0x6C, 0x9F, 0xF7, 0x01, 0x6D, +0x00, 0x6E, 0x00, 0x18, 0x93, 0xC4, 0x01, 0x6C, +0x9F, 0xF7, 0x02, 0x6D, 0x00, 0x6E, 0x00, 0x18, +0x93, 0xC4, 0x01, 0x6C, 0x9F, 0xF7, 0x03, 0x6D, +0x00, 0x6E, 0x00, 0x18, 0x93, 0xC4, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF6, 0x40, 0x9A, 0xE0, 0xF1, 0x1B, 0x6B, +0x6B, 0xEB, 0x60, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF6, 0x64, 0x9A, 0xFB, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF6, 0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xC2, 0xF5, 0x90, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, +0x40, 0xDB, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF7, 0x44, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, +0x40, 0xAA, 0x4C, 0xEB, 0x62, 0x33, 0x03, 0x6A, +0x72, 0x33, 0x4C, 0xEB, 0x02, 0x6A, 0x04, 0x23, +0x01, 0x73, 0x01, 0x6A, 0x01, 0x60, 0x03, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0x10, 0xF0, 0x23, 0x6A, +0x85, 0xF2, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x48, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xA5, 0xF2, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x4C, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0xA6, 0xF6, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x50, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xA9, 0xF1, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xA7, 0xF1, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF2, 0x50, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x2B, 0xF4, 0x09, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF2, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x2B, 0xF5, 0x09, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF2, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x42, 0xF3, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF2, 0x58, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xA2, 0xF4, 0x09, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF2, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xE6, 0xF5, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF3, 0x40, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x06, 0xF1, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF3, 0x44, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x46, 0xF1, 0x09, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF3, 0x48, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xA7, 0xF4, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF3, 0x4C, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0xA5, 0xF5, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF4, 0x58, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0x05, 0xF6, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF4, 0x50, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0x85, 0xF6, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF4, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x05, 0xF5, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF4, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x25, 0xF7, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF4, 0x40, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xE9, 0xF4, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF4, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x46, 0xF2, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x44, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0xC5, 0xF6, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF4, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x02, 0xF0, 0x09, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x58, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xEB, 0xF0, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x42, 0xF0, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x50, 0xDB, 0x10, 0xF0, 0x30, 0x6A, +0xEB, 0xF3, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xE6, 0xF6, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF4, 0x48, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x2B, 0xF0, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x4C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xA9, 0xF5, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x50, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x29, 0xF6, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xA9, 0xF6, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x58, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xE9, 0xF6, 0x09, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x29, 0xF7, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF3, 0x40, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x49, 0xF7, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF3, 0x44, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x89, 0xF7, 0x09, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF3, 0x48, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x2A, 0xF0, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF3, 0x4C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xEA, 0xF7, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF3, 0x50, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xEA, 0xF7, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF3, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x0B, 0xF0, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF3, 0x58, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x0B, 0xF0, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF3, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x6A, 0xF3, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF4, 0x40, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xEA, 0xF3, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF4, 0x44, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x25, 0xF2, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF3, 0x44, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x45, 0xF2, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF3, 0x4C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x25, 0xF2, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF3, 0x48, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0x64, 0xF7, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF3, 0x50, 0xDB, 0x10, 0xF0, 0x30, 0x6A, +0x6C, 0xF0, 0x09, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF3, 0x40, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0xA0, 0xF4, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF6, 0x50, 0xDB, 0x10, 0xF0, 0x30, 0x6A, +0x00, 0xF4, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF6, 0x54, 0xDB, 0x10, 0xF0, 0x30, 0x6A, +0x61, 0xF5, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF6, 0x58, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF5, 0x04, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF6, 0x5C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x66, 0xF2, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x86, 0xF6, 0x70, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF6, 0x64, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0x86, 0xF6, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF7, 0x04, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x4C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF7, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x50, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xE7, 0xF0, 0x04, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x54, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x58, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xE9, 0xF0, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x5C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xE9, 0xF3, 0x1B, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF6, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x09, 0xF4, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF6, 0x44, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x09, 0xF4, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF6, 0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA9, 0xF5, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF6, 0x44, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x0A, 0xF4, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF6, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x21, 0xF0, 0x00, 0x4B, 0x80, 0xF2, 0x08, 0x4A, +0x13, 0x10, 0x80, 0x9A, 0x10, 0x2C, 0x30, 0xF0, +0x20, 0x6C, 0x82, 0xF2, 0xA4, 0x9C, 0x30, 0xF0, +0x20, 0x6E, 0xA2, 0xF2, 0xD4, 0x9E, 0x80, 0x9D, +0xCD, 0xEC, 0x80, 0xDD, 0x30, 0xF0, 0x20, 0x6C, +0x22, 0xF7, 0x94, 0x9C, 0x40, 0xDC, 0x04, 0x4A, +0x43, 0xEB, 0xEB, 0x60, 0x20, 0xE8, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0xF7, 0x1F, 0x69, 0x2C, 0xED, 0x30, 0xF0, +0x20, 0x6B, 0x04, 0xD5, 0x22, 0xF7, 0xB8, 0x9B, +0xFF, 0x6A, 0x40, 0x6E, 0x60, 0xA5, 0xCB, 0xEE, +0x4C, 0xEC, 0x4C, 0xEB, 0xCC, 0xEB, 0x6D, 0xEC, +0x4C, 0xEC, 0x80, 0xC5, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, 0x5C, 0x9A, +0x00, 0xAA, 0x04, 0x92, 0x2C, 0xE8, 0x2A, 0xEA, +0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, +0x44, 0x9A, 0x04, 0x94, 0x40, 0xEA, 0x04, 0x93, +0x2C, 0xEA, 0x6C, 0xE8, 0x07, 0xEA, 0x2C, 0xE8, +0x50, 0x67, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0xF7, 0x1F, 0x69, +0x2C, 0xED, 0xFF, 0x68, 0x0C, 0xEC, 0x2C, 0xEE, +0x2A, 0xED, 0x05, 0xD4, 0x04, 0xD5, 0x06, 0xD6, +0x1F, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF7, +0x78, 0x9A, 0x40, 0x6C, 0x8B, 0xEC, 0x40, 0xA3, +0x0C, 0xEA, 0x8C, 0xEA, 0x05, 0x94, 0x8D, 0xEA, +0x0C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF7, 0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xA2, 0xF4, 0x90, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xC2, 0xF2, 0x94, 0x9C, +0x8D, 0xEA, 0xCD, 0xEA, 0x40, 0xDB, 0x34, 0x10, +0x05, 0x94, 0xB1, 0x67, 0x80, 0x18, 0xD0, 0x4E, +0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x94, +0xA0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0xF7, 0x98, 0x9B, 0x40, 0x6D, +0xAB, 0xED, 0x60, 0xA4, 0x2C, 0xEA, 0x0C, 0xEB, +0xAC, 0xEB, 0x05, 0x95, 0xAD, 0xEB, 0x0C, 0xEB, +0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF7, +0x9C, 0x9B, 0x30, 0xF0, 0x20, 0x6D, 0xA2, 0xF4, +0xB0, 0x9D, 0x60, 0x9C, 0x06, 0x96, 0xAC, 0xEB, +0x30, 0xF0, 0x20, 0x6D, 0xC2, 0xF2, 0xB4, 0x9D, +0xC4, 0xEA, 0x46, 0x67, 0xAD, 0xEB, 0x04, 0x95, +0x07, 0x96, 0xAC, 0xEA, 0xAF, 0xED, 0xCC, 0xED, +0xAD, 0xEA, 0x2C, 0xEA, 0x4D, 0xEB, 0x60, 0xDC, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x0A, 0x6C, 0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x6C, 0x10, 0xF0, +0x00, 0x6D, 0x80, 0x18, 0xD0, 0x4E, 0x05, 0x97, +0x01, 0x5A, 0x58, 0x67, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0xF2, 0x60, 0x9B, 0x10, 0xF0, +0x31, 0x6A, 0xA7, 0xF4, 0x01, 0x4A, 0x40, 0xDB, +0x00, 0x68, 0x31, 0x10, 0x82, 0xF3, 0x08, 0x70, +0x1A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF2, +0x64, 0x9A, 0x02, 0xF0, 0x00, 0x6C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF4, 0x00, 0x4A, 0x23, 0xF3, 0x70, 0x9A, +0x8D, 0xEB, 0x23, 0xF3, 0x70, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF7, 0x40, 0x9A, 0x03, 0x6B, +0x6B, 0xEB, 0x60, 0xC2, 0x18, 0x10, 0xFF, 0xF7, +0x1F, 0x6A, 0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, +0x40, 0xEA, 0x33, 0x58, 0x08, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF5, 0x54, 0x9A, 0x60, 0xA2, +0x08, 0x6A, 0x6C, 0xEA, 0x04, 0x2A, 0x80, 0x18, +0x22, 0x4F, 0x01, 0x72, 0xCB, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF7, 0x40, 0x9A, 0x02, 0x6B, +0x6B, 0xEB, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF2, 0x60, 0x9B, 0x10, 0xF0, 0x31, 0x6A, +0xA7, 0xF4, 0x02, 0x4A, 0x40, 0xDB, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF7, 0x64, 0x9A, 0x02, 0x6C, +0xFF, 0xF7, 0x1F, 0x6D, 0x40, 0x9B, 0xFF, 0x6E, +0x41, 0x4E, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF7, 0x68, 0x9A, 0xE0, 0xF3, +0x1E, 0x4C, 0x30, 0xF0, 0x20, 0x68, 0x40, 0xAB, +0xAC, 0xEA, 0x8D, 0xEA, 0xAC, 0xEA, 0x40, 0xCB, +0x02, 0x6C, 0x80, 0x18, 0xEB, 0x4E, 0x80, 0xF3, +0x4C, 0x98, 0x0A, 0x6C, 0x40, 0xEA, 0x00, 0x6C, +0xC0, 0x6D, 0x02, 0x6E, 0x80, 0x18, 0xEB, 0x4E, +0x00, 0x6C, 0xC4, 0x67, 0x02, 0xF0, 0x00, 0x6D, +0x80, 0x18, 0xEB, 0x4E, 0x00, 0x6C, 0xC4, 0x67, +0x0C, 0xF0, 0x00, 0x6D, 0x80, 0x18, 0xEB, 0x4E, +0x00, 0x6C, 0x01, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x80, 0x18, 0xEB, 0x4E, 0x10, 0xF0, 0x00, 0x6D, +0x01, 0x6E, 0x00, 0x6C, 0x80, 0x18, 0xEB, 0x4E, +0x80, 0xF3, 0x4C, 0x98, 0x0A, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x42, 0xF7, 0x6C, 0x9A, +0xFF, 0x6C, 0x04, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +u32 array_length_mp_8822c_fw_spic = 114072; + +#endif /*!(DM_ODM_SUPPORT_TYPE & (ODM_CE))*/ + +#ifdef CONFIG_WOWLAN + +u8 array_mp_8822c_fw_wowlan[] = { +0x22, 0x88, 0x00, 0x00, 0x09, 0x00, 0x0D, 0x00, +0x0F, 0x12, 0x23, 0xA2, 0x00, 0x00, 0x00, 0x00, +0x09, 0x18, 0x0F, 0x17, 0xE5, 0x07, 0x00, 0x00, +0x18, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, +0x00, 0x00, 0x20, 0x80, 0xD8, 0x33, 0x00, 0x00, +0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x58, 0x91, 0x00, 0x00, 0x40, 0x6A, 0x01, 0x00, +0x00, 0x00, 0x10, 0x80, 0x00, 0x00, 0x03, 0x80, +0x00, 0x00, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, +0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, +0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, +0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, +0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, +0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, +0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, +0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +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, 0x01, 0xFE, 0x03, 0x01, 0x01, 0xFE, +0x03, 0x02, 0x01, 0xFE, 0x03, 0x03, 0x01, 0xFE, +0x03, 0x04, 0x01, 0xFE, 0x03, 0x05, 0x01, 0xFE, +0x03, 0x06, 0x01, 0xFE, 0x03, 0x07, 0x01, 0xFE, +0x48, 0x0A, 0x20, 0x80, 0x06, 0x00, 0x00, 0x00, +0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, +0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, +0x01, 0x00, 0x03, 0x80, 0x95, 0x01, 0x03, 0x80, +0x95, 0x01, 0x03, 0x80, 0x08, 0x00, 0x00, 0x00, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xE0, +0x4C, 0x81, 0x92, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x8D, +0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x07, 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, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xD1, 0x47, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, +0x00, 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, 0x9D, 0x49, 0x03, 0x80, +0x01, 0x00, 0x00, 0x00, 0x00, 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, +0xDC, 0x33, 0x20, 0x80, 0x01, 0x02, 0x00, 0x02, +0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, +0x0D, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x03, +0x00, 0x00, 0x00, 0x00, 0x89, 0x00, 0x89, 0x00, +0x01, 0x00, 0x00, 0x00, 0x11, 0x06, 0x00, 0x01, +0x00, 0x00, 0x00, 0x00, 0xA1, 0x00, 0xA1, 0x00, +0x02, 0x00, 0x00, 0x00, 0x11, 0x01, 0x04, 0x03, +0xE0, 0x00, 0x00, 0xFB, 0xE9, 0x14, 0xE9, 0x14, +0x04, 0x00, 0x00, 0x00, 0x11, 0x01, 0x04, 0x01, +0xEF, 0xFF, 0xFF, 0xFA, 0x6C, 0x07, 0x6C, 0x07, +0x06, 0x00, 0x00, 0x00, 0x11, 0x01, 0x04, 0x01, +0xEF, 0xFF, 0xFF, 0xFA, 0x76, 0x0E, 0x76, 0x0E, +0x08, 0x00, 0x00, 0x00, 0x11, 0x01, 0x04, 0x01, +0xEF, 0xFF, 0xFF, 0xFD, 0xAB, 0x01, 0xAB, 0x01, +0x0A, 0x00, 0x00, 0x00, 0x11, 0x01, 0x04, 0x01, +0xE0, 0x00, 0x00, 0xFC, 0xEB, 0x14, 0xEB, 0x14, +0x10, 0x00, 0x00, 0x00, 0x3A, 0x02, 0x00, 0x02, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, +0x3A, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, +0x0F, 0x00, 0x00, 0x00, 0x11, 0x06, 0x00, 0x01, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xA1, 0x00, 0xA1, 0x00, 0x03, 0x00, 0x00, 0x00, +0x11, 0x01, 0x10, 0x03, 0x02, 0xFF, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xFB, 0x00, 0xE9, 0x14, 0xE9, 0x14, +0x05, 0x00, 0x00, 0x00, 0x11, 0x01, 0x10, 0x01, +0x02, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, +0x6C, 0x07, 0x6C, 0x07, 0x07, 0x00, 0x00, 0x00, +0x11, 0x01, 0x10, 0x01, 0x05, 0xFF, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x0C, 0x00, 0x6C, 0x07, 0x6C, 0x07, +0x07, 0x00, 0x00, 0x00, 0x11, 0x01, 0x10, 0x01, +0x02, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, +0x76, 0x0E, 0x76, 0x0E, 0x09, 0x00, 0x00, 0x00, +0x11, 0x01, 0x10, 0x01, 0x02, 0xFF, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x23, 0x01, 0xAB, 0x01, 0xAB, 0x01, +0x0B, 0x00, 0x00, 0x00, 0x11, 0x01, 0x10, 0x01, +0x05, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x01, +0xAB, 0x01, 0xAB, 0x01, 0x0B, 0x00, 0x00, 0x00, +0x11, 0x01, 0x10, 0x01, 0x02, 0xFF, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x16, 0x01, 0xAB, 0x01, 0xAB, 0x01, +0x0B, 0x00, 0x00, 0x00, 0x11, 0x01, 0x10, 0x01, +0x05, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x01, +0xAB, 0x01, 0xAB, 0x01, 0x0B, 0x00, 0x00, 0x00, +0x11, 0x01, 0x0E, 0x01, 0x02, 0xFF, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x01, 0x00, 0x00, 0x00, 0xAB, 0x01, 0xAB, 0x01, +0x0B, 0x00, 0x00, 0x00, 0x11, 0x01, 0x0E, 0x01, +0x05, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, +0xAB, 0x01, 0xAB, 0x01, 0x0B, 0x00, 0x00, 0x00, +0x11, 0x01, 0x10, 0x01, 0x02, 0xFF, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x01, 0x00, 0x03, 0x00, 0xEB, 0x14, 0xEB, 0x14, +0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, +0x20, 0x05, 0x00, 0x00, 0x50, 0x05, 0x00, 0x00, +0x1C, 0x00, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, +0x24, 0x08, 0x00, 0x00, 0x38, 0x1C, 0x00, 0x00, +0x68, 0x1C, 0x00, 0x00, 0x60, 0x1D, 0x00, 0x00, +0x0C, 0x18, 0x00, 0x00, 0x0C, 0x41, 0x00, 0x00, +0x3C, 0x1C, 0x00, 0x00, 0x14, 0x1A, 0x00, 0x00, +0x58, 0x1D, 0x00, 0x00, 0x70, 0x1D, 0x00, 0x00, +0x64, 0x18, 0x00, 0x00, 0x64, 0x41, 0x00, 0x00, +0x6C, 0x18, 0x00, 0x00, 0x6C, 0x41, 0x00, 0x00, +0x14, 0x1A, 0x00, 0x00, 0x70, 0x1E, 0x00, 0x00, +0x0C, 0x08, 0x00, 0x00, 0x7C, 0x1E, 0x00, 0x00, +0xA4, 0x18, 0x00, 0x00, 0xA4, 0x41, 0x00, 0x00, +0x19, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x00, +0x9E, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, +0x00, 0x00, 0x30, 0x8D, 0x00, 0x12, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 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, +0x08, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x11, 0x30, 0x03, 0x80, 0x1D, 0x30, 0x03, 0x80, +0x23, 0x30, 0x03, 0x80, 0x29, 0x30, 0x03, 0x80, +0x31, 0x30, 0x03, 0x80, 0x63, 0x30, 0x03, 0x80, +0x6F, 0x30, 0x03, 0x80, 0x75, 0x30, 0x03, 0x80, +0x7B, 0x30, 0x03, 0x80, 0x83, 0x30, 0x03, 0x80, +0xC5, 0x30, 0x03, 0x80, 0xCB, 0x30, 0x03, 0x80, +0xD7, 0x30, 0x03, 0x80, 0xE3, 0x30, 0x03, 0x80, +0xEF, 0x30, 0x03, 0x80, 0x13, 0x31, 0x03, 0x80, +0x19, 0x31, 0x03, 0x80, 0x25, 0x31, 0x03, 0x80, +0x31, 0x31, 0x03, 0x80, 0x3D, 0x31, 0x03, 0x80, +0xCD, 0x32, 0x03, 0x80, 0xB7, 0x33, 0x03, 0x80, +0x2F, 0x33, 0x03, 0x80, 0xB7, 0x33, 0x03, 0x80, +0x73, 0x32, 0x03, 0x80, 0xB7, 0x33, 0x03, 0x80, +0xB7, 0x33, 0x03, 0x80, 0xB7, 0x33, 0x03, 0x80, +0x99, 0x33, 0x03, 0x80, 0xB7, 0x33, 0x03, 0x80, +0xB7, 0x33, 0x03, 0x80, 0xB7, 0x33, 0x03, 0x80, +0x0B, 0x32, 0x03, 0x80, 0x0C, 0x1D, 0x00, 0x00, +0x3C, 0x1C, 0x00, 0x00, 0x90, 0x1C, 0x00, 0x00, +0xB0, 0x09, 0x00, 0x00, 0x20, 0x0A, 0x00, 0x00, +0x2C, 0x0A, 0x00, 0x00, 0x14, 0x0C, 0x00, 0x00, +0x38, 0x0C, 0x00, 0x00, 0x44, 0x0C, 0x00, 0x00, +0x54, 0x0C, 0x00, 0x00, 0x58, 0x1D, 0x00, 0x00, +0x90, 0x1D, 0x00, 0x00, 0x94, 0x1D, 0x00, 0x00, +0x24, 0x1E, 0x00, 0x00, 0x28, 0x1E, 0x00, 0x00, +0x2C, 0x1E, 0x00, 0x00, 0x8C, 0x1E, 0x00, 0x00, +0xB0, 0x1E, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, +0x24, 0x40, 0x00, 0x00, 0x28, 0x40, 0x00, 0x00, +0x2C, 0x40, 0x00, 0x00, 0x50, 0x40, 0x00, 0x00, +0x00, 0x1C, 0x66, 0xB8, 0x08, 0x00, 0x00, 0x00, +0x00, 0x01, 0x64, 0xB8, 0x20, 0x00, 0x00, 0x00, +0xA0, 0x01, 0x64, 0xB8, 0x28, 0x00, 0x00, 0x00, +0x00, 0x02, 0x64, 0xB8, 0xF0, 0x00, 0x00, 0x00, +0x20, 0x04, 0x64, 0xB8, 0x29, 0x01, 0x00, 0x00, +0x74, 0x05, 0x64, 0xB8, 0x8C, 0x02, 0x00, 0x00, +0x20, 0x14, 0x64, 0xB8, 0xC0, 0x00, 0x00, 0x00, +0x00, 0x15, 0x64, 0xB8, 0xD4, 0x00, 0x00, 0x00, +0x00, 0x16, 0x64, 0xB8, 0xC8, 0x00, 0x00, 0x00, +0x00, 0x08, 0x64, 0xB8, 0xFC, 0x00, 0x00, 0x00, +0xB0, 0x09, 0x64, 0xB8, 0x4C, 0x04, 0x00, 0x00, +0x00, 0x18, 0x64, 0xB8, 0xFC, 0x01, 0x00, 0x00, +0x00, 0x1C, 0x64, 0xB8, 0xFC, 0x02, 0x00, 0x00, +0x00, 0x3A, 0x64, 0xB8, 0xA8, 0x00, 0x00, 0x00, +0x00, 0x40, 0x64, 0xB8, 0x00, 0x02, 0x00, 0x00, +0x00, 0x1A, 0x64, 0xB8, 0x00, 0x01, 0x00, 0x00, +0xA8, 0x06, 0x10, 0x07, 0x00, 0x16, 0x04, 0x16, +0x08, 0x16, 0x00, 0x00, 0xA8, 0x06, 0x10, 0x07, +0x00, 0x16, 0x04, 0x16, 0x08, 0x16, 0x00, 0x00, +0xA8, 0x06, 0x10, 0x07, 0x00, 0x16, 0x04, 0x16, +0x08, 0x16, 0x00, 0x00, 0x50, 0x05, 0x51, 0x05, +0x78, 0x05, 0x79, 0x05, 0x7A, 0x05, 0x00, 0x00, +0xFF, 0xFF, 0xFF, 0xFF, 0x05, 0x6C, 0x6F, 0x63, +0x61, 0x6C, 0x00, 0x00, 0x04, 0x5F, 0x73, 0x75, +0x62, 0x00, 0x00, 0x00, 0x33, 0x33, 0x00, 0x00, +0x00, 0xFB, 0x00, 0x00, 0x05, 0x6C, 0x6F, 0x63, +0x61, 0x6C, 0x00, 0x00, 0x04, 0x5F, 0x73, 0x75, +0x62, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xFB, +0x01, 0x00, 0x5E, 0x00, 0x00, 0xFB, 0x00, 0x00, +0xA8, 0x06, 0x10, 0x07, 0x00, 0x16, 0x04, 0x16, +0x08, 0x16, 0x00, 0x00, 0x10, 0x06, 0x00, 0x07, +0x20, 0x16, 0x30, 0x16, 0x40, 0x16, 0x00, 0x00, +0x18, 0x06, 0x08, 0x07, 0x28, 0x16, 0x38, 0x16, +0x48, 0x16, 0x00, 0x00, 0x18, 0x06, 0x08, 0x07, +0x28, 0x16, 0x38, 0x16, 0x48, 0x16, 0x00, 0x00, +0x00, 0x04, 0x08, 0x00, 0x08, 0x04, 0x04, 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, +0x01, 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, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 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, +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, 0x01, 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, 0x01, 0x00, 0x00, +0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, +0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, +0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, +0x01, 0x00, 0x00, 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, +0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, +0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, +0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, +0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, +0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, +0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, +0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, +0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, +0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, +0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, +0xA8, 0x06, 0x10, 0x07, 0x00, 0x16, 0x04, 0x16, +0x08, 0x16, 0x00, 0x00, 0xEF, 0x45, 0x03, 0x80, +0xE9, 0x45, 0x03, 0x80, 0xF5, 0x45, 0x03, 0x80, +0xFB, 0x45, 0x03, 0x80, 0x01, 0x46, 0x03, 0x80, +0x07, 0x46, 0x03, 0x80, 0x09, 0x12, 0x1B, 0x24, +0x94, 0x0C, 0x94, 0x0E, 0x94, 0x18, 0x94, 0x1A, +0x0D, 0xA6, 0x10, 0x80, 0xE1, 0xA6, 0x10, 0x80, +0x1D, 0xA6, 0x10, 0x80, 0x53, 0xA6, 0x10, 0x80, +0x8F, 0xA6, 0x10, 0x80, 0xE1, 0xA6, 0x10, 0x80, +0x2B, 0xA7, 0x10, 0x80, 0x43, 0xA7, 0x10, 0x80, +0x4F, 0xA7, 0x10, 0x80, 0x81, 0xA7, 0x10, 0x80, +0xB3, 0xA7, 0x10, 0x80, 0xC3, 0xA7, 0x10, 0x80, +0x09, 0x12, 0x1B, 0x24, 0x5F, 0xD1, 0x10, 0x80, +0xBB, 0xD1, 0x10, 0x80, 0xDF, 0xD1, 0x10, 0x80, +0x0F, 0xD2, 0x10, 0x80, 0x33, 0xD2, 0x10, 0x80, +0x5B, 0xD2, 0x10, 0x80, 0x19, 0x00, 0x00, 0x00, +0x1A, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, +0x63, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, +0x8F, 0x00, 0x00, 0x00, 0xDE, 0x00, 0x00, 0x00, +0x20, 0x05, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, +0x24, 0x08, 0x00, 0x00, 0x3C, 0x1C, 0x00, 0x00, +0x58, 0x1D, 0x00, 0x00, 0x64, 0x18, 0x00, 0x00, +0x64, 0x41, 0x00, 0x00, 0x0C, 0x18, 0x00, 0x00, +0x0C, 0x41, 0x00, 0x00, 0x6C, 0x18, 0x00, 0x00, +0x6C, 0x41, 0x00, 0x00, 0x14, 0x1A, 0x00, 0x00, +0x70, 0x1E, 0x00, 0x00, 0x0C, 0x08, 0x00, 0x00, +0x70, 0x1D, 0x00, 0x00, 0x7C, 0x1E, 0x00, 0x00, +0xA4, 0x18, 0x00, 0x00, 0xA4, 0x41, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xB0, 0x01, 0x00, 0x00, +0x4C, 0x01, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, +0xE8, 0x00, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00, +0xAE, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, +0x84, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, +0x64, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, +0x4A, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, +0x33, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, +0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, +0x0F, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x7B, 0x3E, 0x11, 0x80, +0xF3, 0x3F, 0x11, 0x80, 0xCD, 0x40, 0x11, 0x80, +0x77, 0x3E, 0x11, 0x80, 0x77, 0x3E, 0x11, 0x80, +0x7B, 0x3E, 0x11, 0x80, 0x7B, 0x3E, 0x11, 0x80, +0xB5, 0x5E, 0x11, 0x80, 0xD7, 0x5E, 0x11, 0x80, +0xF9, 0x5E, 0x11, 0x80, 0x1B, 0x5F, 0x11, 0x80, +0x3F, 0x5F, 0x11, 0x80, 0x79, 0x5F, 0x11, 0x80, +0x9D, 0x5F, 0x11, 0x80, 0xC1, 0x5F, 0x11, 0x80, +0xE5, 0x5F, 0x11, 0x80, 0x0B, 0x60, 0x11, 0x80, +0x01, 0x01, 0x04, 0x10, 0x40, 0x00, 0x00, 0x00, +0xE0, 0x04, 0xE3, 0x04, 0xE3, 0x04, 0xE3, 0x04, +0xE3, 0x04, 0x00, 0x00, 0x91, 0x4D, 0x11, 0x80, +0x91, 0x4D, 0x11, 0x80, 0x91, 0x4D, 0x11, 0x80, +0xAB, 0x4D, 0x11, 0x80, 0x91, 0x4D, 0x11, 0x80, +0x91, 0x4D, 0x11, 0x80, 0x91, 0x4D, 0x11, 0x80, +0x8D, 0x4D, 0x11, 0x80, 0x8D, 0x4D, 0x11, 0x80, +0x8D, 0x4D, 0x11, 0x80, 0x8D, 0x4D, 0x11, 0x80, +0x8D, 0x4D, 0x11, 0x80, 0x1B, 0x4E, 0x11, 0x80, +0x25, 0x4E, 0x11, 0x80, 0x3B, 0x67, 0x03, 0x80, +0x4B, 0x67, 0x03, 0x80, 0x55, 0x67, 0x03, 0x80, +0x5F, 0x67, 0x03, 0x80, 0x71, 0x67, 0x03, 0x80, +0x6D, 0x81, 0x03, 0x80, 0x69, 0x81, 0x03, 0x80, +0x6D, 0x81, 0x03, 0x80, 0x69, 0x81, 0x03, 0x80, +0x8D, 0x81, 0x03, 0x80, 0x69, 0x81, 0x03, 0x80, +0x8D, 0x81, 0x03, 0x80, 0x69, 0x81, 0x03, 0x80, +0xAD, 0x81, 0x03, 0x80, 0x69, 0x81, 0x03, 0x80, +0xAD, 0x81, 0x03, 0x80, 0x69, 0x81, 0x03, 0x80, +0xCD, 0x81, 0x03, 0x80, 0x69, 0x81, 0x03, 0x80, +0xCD, 0x81, 0x03, 0x80, 0xD5, 0x82, 0x03, 0x80, +0xD5, 0x82, 0x03, 0x80, 0xD5, 0x82, 0x03, 0x80, +0xD5, 0x82, 0x03, 0x80, 0xF5, 0x82, 0x03, 0x80, +0xF5, 0x82, 0x03, 0x80, 0xF5, 0x82, 0x03, 0x80, +0xF5, 0x82, 0x03, 0x80, 0x15, 0x83, 0x03, 0x80, +0x15, 0x83, 0x03, 0x80, 0x15, 0x83, 0x03, 0x80, +0x15, 0x83, 0x03, 0x80, 0x35, 0x83, 0x03, 0x80, +0x35, 0x83, 0x03, 0x80, 0x35, 0x83, 0x03, 0x80, +0x35, 0x83, 0x03, 0x80, 0x50, 0x05, 0x00, 0x00, +0x51, 0x05, 0x00, 0x00, 0x78, 0x05, 0x00, 0x00, +0x79, 0x05, 0x00, 0x00, 0x7A, 0x05, 0x00, 0x00, +0x50, 0x05, 0x00, 0x00, 0x51, 0x05, 0x00, 0x00, +0x78, 0x05, 0x00, 0x00, 0x79, 0x05, 0x00, 0x00, +0x7A, 0x05, 0x00, 0x00, 0x2F, 0x87, 0x03, 0x80, +0x8F, 0x87, 0x03, 0x80, 0x23, 0x88, 0x03, 0x80, +0xC1, 0x88, 0x03, 0x80, 0x65, 0x89, 0x03, 0x80, +0xFC, 0x10, 0x60, 0xB8, 0xFA, 0xFA, 0xFA, 0xFA, +0xCF, 0x01, 0x64, 0xB8, 0x8C, 0x04, 0x64, 0xB8, +0x90, 0x04, 0x64, 0xB8, 0x94, 0x04, 0x64, 0xB8, +0x98, 0x04, 0x64, 0xB8, 0x9C, 0x04, 0x64, 0xB8, +0xA0, 0x04, 0x64, 0xB8, 0x77, 0x05, 0x64, 0xB8, +0x6C, 0x05, 0x64, 0xB8, 0x68, 0x05, 0x64, 0xB8, +0x54, 0x05, 0x64, 0xB8, 0x00, 0x00, 0x00, 0x80, +0x70, 0x06, 0x64, 0xB8, 0x78, 0x06, 0x64, 0xB8, +0x00, 0x00, 0x01, 0x80, 0x74, 0x06, 0x64, 0xB8, +0x98, 0x06, 0x64, 0xB8, 0x9C, 0x06, 0x64, 0xB8, +0x54, 0x06, 0x64, 0xB8, 0x58, 0x06, 0x64, 0xB8, +0x5C, 0x06, 0x64, 0xB8, 0xFF, 0xFF, 0xFF, 0x8F, +0x00, 0x00, 0x60, 0xB8, 0x00, 0x00, 0x64, 0xB8, +0xBF, 0x01, 0x64, 0xB8, 0x89, 0x00, 0x60, 0xB8, +0x8A, 0x00, 0x60, 0xB8, 0x1A, 0x04, 0x64, 0xB8, +0x1B, 0x04, 0x64, 0xB8, 0x8C, 0x00, 0x60, 0xB8, +0x01, 0x00, 0xFF, 0x00, 0xF4, 0x11, 0x64, 0xB8, +0x58, 0x05, 0x64, 0xB8, 0xE2, 0x10, 0x60, 0xB8, +0x30, 0x01, 0x64, 0xB8, 0x20, 0x01, 0x64, 0xB8, +0x20, 0x11, 0x64, 0xB8, 0x01, 0x8F, 0x00, 0xF0, +0x28, 0x11, 0x64, 0xB8, 0x30, 0x11, 0x64, 0xB8, +0x38, 0x11, 0x64, 0xB8, 0xE0, 0x11, 0x64, 0xB8, +0x50, 0x00, 0x60, 0xB8, 0x38, 0x01, 0x64, 0xB8, +0x18, 0x34, 0x00, 0xB8, 0x88, 0x10, 0x60, 0xB8, +0xFB, 0x11, 0x64, 0xB8, 0xFA, 0x11, 0x64, 0xB8, +0xF8, 0x11, 0x64, 0xB8, 0xC6, 0x04, 0x64, 0xB8, +0x00, 0x00, 0x66, 0xB8, 0x02, 0x00, 0x60, 0xB8, +0xBF, 0xD8, 0xF1, 0x02, 0x00, 0x00, 0x00, 0x40, +0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x41, +0xB7, 0xD8, 0xF1, 0x02, 0x28, 0x06, 0x64, 0xB8, +0x00, 0x00, 0x80, 0xC0, 0x2C, 0x06, 0x64, 0xB8, +0x62, 0x06, 0x64, 0xB8, 0x00, 0x01, 0x64, 0xB8, +0x2C, 0x02, 0x64, 0xB8, 0x44, 0x02, 0x64, 0xB8, +0x4C, 0x02, 0x64, 0xB8, 0x54, 0x02, 0x64, 0xB8, +0xD8, 0x04, 0x64, 0xB8, 0xDC, 0x04, 0x64, 0xB8, +0x7D, 0x04, 0x64, 0xB8, 0xC7, 0x01, 0x64, 0xB8, +0x90, 0x06, 0x64, 0xB8, 0x80, 0x00, 0x60, 0xB8, +0x00, 0x00, 0x80, 0x00, 0xFF, 0xFF, 0x7F, 0xFF, +0x00, 0x00, 0x78, 0xB8, 0xA0, 0x00, 0x78, 0xB8, +0x30, 0x00, 0x78, 0xB8, 0xA4, 0x04, 0x64, 0xB8, +0xA8, 0x04, 0x64, 0xB8, 0xF8, 0x10, 0x60, 0xB8, +0x00, 0x00, 0x20, 0x00, 0x10, 0x02, 0x64, 0xB8, +0x88, 0x02, 0x64, 0xB8, 0xE2, 0x04, 0x64, 0xB8, +0x14, 0x11, 0x64, 0xB8, 0xFF, 0x00, 0xFF, 0x00, +0x96, 0x02, 0x64, 0xB8, 0x86, 0x02, 0x64, 0xB8, +0xA2, 0x02, 0x64, 0xB8, 0xCC, 0x01, 0x64, 0xB8, +0x0A, 0x06, 0x64, 0xB8, 0xB1, 0x05, 0x64, 0xB8, +0xCA, 0x01, 0x64, 0xB8, 0x5B, 0x01, 0x64, 0xB8, +0x3C, 0x01, 0x64, 0xB8, 0x00, 0x00, 0x1E, 0x00, +0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, +0x00, 0x00, 0x08, 0x00, 0x22, 0x05, 0x64, 0xB8, +0x3F, 0x42, 0x0F, 0x00, 0xFE, 0x11, 0x64, 0xB8, +0x7F, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, +0xFC, 0x11, 0x64, 0xB8, 0xE0, 0x10, 0x60, 0xB8, +0x57, 0x01, 0x64, 0xB8, 0x31, 0x00, 0x78, 0xB8, +0x1D, 0x04, 0x64, 0xB8, 0x7A, 0x04, 0x64, 0xB8, +0x80, 0x01, 0x64, 0xB8, 0x84, 0x01, 0x64, 0xB8, +0x72, 0x06, 0x64, 0xB8, 0xA9, 0x00, 0x78, 0xB8, +0x61, 0x00, 0x78, 0xB8, 0x01, 0x00, 0x78, 0xB8, +0xB9, 0x00, 0x78, 0xB8, 0xC1, 0x01, 0x64, 0xB8, +0xB9, 0x01, 0x64, 0xB8, 0xC3, 0x01, 0x64, 0xB8, +0x24, 0x04, 0x64, 0xB8, 0x40, 0x00, 0x78, 0xB8, +0x50, 0x00, 0x78, 0xB8, 0x38, 0x00, 0x78, 0xB8, +0x48, 0x00, 0x78, 0xB8, 0x1C, 0x04, 0x64, 0xB8, +0x34, 0x00, 0x78, 0xB8, 0x46, 0x00, 0x78, 0xB8, +0x07, 0x00, 0x78, 0xB8, 0x0B, 0x00, 0x78, 0xB8, +0x0C, 0x00, 0x78, 0xB8, 0xFF, 0xFF, 0x77, 0xB8, +0xFE, 0xFF, 0x77, 0xB8, 0x64, 0x00, 0x78, 0xB8, +0x65, 0x00, 0x78, 0xB8, 0x3C, 0x00, 0x78, 0xB8, +0x3D, 0x00, 0x78, 0xB8, 0x3E, 0x00, 0x78, 0xB8, +0x3F, 0x00, 0x78, 0xB8, 0x58, 0x00, 0x78, 0xB8, +0x59, 0x00, 0x78, 0xB8, 0x5A, 0x00, 0x78, 0xB8, +0x5B, 0x00, 0x78, 0xB8, 0x5C, 0x00, 0x78, 0xB8, +0x5D, 0x00, 0x78, 0xB8, 0x5E, 0x00, 0x78, 0xB8, +0x5F, 0x00, 0x78, 0xB8, 0x39, 0x00, 0x78, 0xB8, +0x3A, 0x00, 0x78, 0xB8, 0x3B, 0x00, 0x78, 0xB8, +0xC0, 0x01, 0x64, 0xB8, 0x4C, 0x00, 0x78, 0xB8, +0x51, 0x00, 0x78, 0xB8, 0x00, 0x00, 0x70, 0xB8, +0x4A, 0x00, 0x78, 0xB8, 0x00, 0x00, 0xFF, 0x00, +0x24, 0x01, 0x64, 0xB8, 0xB8, 0x01, 0x64, 0xB8, +0x38, 0x00, 0x60, 0xB8, 0xFF, 0xFF, 0x00, 0xFF, +0x00, 0x00, 0x09, 0x00, 0xF4, 0x00, 0x60, 0xB8, +0xFF, 0xFF, 0xFC, 0xFF, 0xC0, 0x00, 0x60, 0xB8, +0x60, 0x00, 0x60, 0xB8, 0x44, 0x00, 0x60, 0xB8, +0xBC, 0x01, 0x64, 0xB8, 0x01, 0x00, 0x00, 0x80, +0x4D, 0x01, 0x64, 0xB8, 0x18, 0x00, 0x78, 0xB8, +0x28, 0x00, 0x78, 0xB8, 0x10, 0x00, 0x78, 0xB8, +0x08, 0x00, 0x78, 0xB8, 0x09, 0x00, 0x78, 0xB8, +0x0A, 0x00, 0x78, 0xB8, 0x09, 0x06, 0x64, 0xB8, +0x08, 0x06, 0x64, 0xB8, 0xFF, 0xFF, 0xFF, 0x7F, +0x05, 0x00, 0x60, 0xB8, 0x04, 0x00, 0x78, 0xB8, +0x7A, 0x00, 0x78, 0xB8, 0x60, 0x00, 0x78, 0xB8, +0x54, 0x00, 0x78, 0xB8, 0x70, 0x11, 0x01, 0x00, +0x20, 0x00, 0x78, 0xB8, 0xC4, 0x01, 0x64, 0xB8, +0xA5, 0xA5, 0xA5, 0xA5, 0xC2, 0x01, 0x64, 0xB8, +0x05, 0x00, 0x78, 0xB8, 0x02, 0x00, 0x78, 0xB8, +0x06, 0x00, 0x78, 0xB8, 0x0D, 0x00, 0x78, 0xB8, +0x0E, 0x00, 0x78, 0xB8, 0x0F, 0x00, 0x78, 0xB8, +0x14, 0x00, 0x78, 0xB8, 0x02, 0x00, 0x64, 0xB8, +0x86, 0x00, 0x60, 0xB8, 0x87, 0x00, 0x60, 0xB8, +0x88, 0x00, 0x60, 0xB8, 0x84, 0x00, 0x60, 0xB8, +0x00, 0x00, 0x00, 0x02, 0xCB, 0x01, 0x64, 0xB8, +0x00, 0x00, 0x68, 0xB8, 0x04, 0x00, 0x68, 0xB8, +0x08, 0x00, 0x68, 0xB8, 0x0C, 0x00, 0x68, 0xB8, +0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x42, +0xE0, 0x00, 0x60, 0xB8, 0xFF, 0xFF, 0xFF, 0xFD, +0xE3, 0x00, 0x60, 0xB8, 0x00, 0x00, 0x00, 0x01, +0xE1, 0x00, 0x60, 0xB8, 0x00, 0x00, 0x00, 0x60, +0x00, 0x00, 0x00, 0x20, 0xCC, 0x00, 0x60, 0xB8, +0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x04, +0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xDF, +0xFF, 0xFF, 0xFF, 0x1F, 0x04, 0x00, 0x60, 0xB8, +0x04, 0x00, 0x64, 0xB8, 0x08, 0x00, 0x60, 0xB8, +0x08, 0x00, 0x64, 0xB8, 0xE8, 0x12, 0x64, 0xB8, +0x24, 0x00, 0x60, 0xB8, 0xFF, 0xFF, 0xFE, 0xFF, +0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xEF, +0xFF, 0xFF, 0xFD, 0xFF, 0xB0, 0x02, 0x64, 0xB8, +0x1C, 0x01, 0x64, 0xB8, 0x00, 0x0C, 0x01, 0x00, +0x00, 0x80, 0xFF, 0x01, 0x08, 0x00, 0x00, 0xF8, +0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x1F, 0x00, +0x01, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xFF, 0x0F, +0x21, 0x00, 0x00, 0xE0, 0x00, 0xDB, 0x66, 0xDB, +0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xFC, +0x00, 0x00, 0x00, 0x06, 0x80, 0xFF, 0x7F, 0x00, +0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xFC, 0x07, +0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xF0, 0x0F, +0x00, 0x00, 0x00, 0x0F, 0xB4, 0x06, 0x64, 0xB8, +0x06, 0x00, 0x00, 0x89, 0x00, 0x0A, 0x08, 0x00, +0x01, 0x00, 0x66, 0xB8, 0x44, 0x00, 0x78, 0xB8, +0x01, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x60, +0x52, 0x29, 0x46, 0xE2, 0x03, 0x29, 0x29, 0x00, +0x32, 0xFC, 0x18, 0xA2, 0x08, 0x00, 0x04, 0x05, +0x01, 0x00, 0x0F, 0x70, 0x01, 0x00, 0x1F, 0x70, +0x01, 0x00, 0x2F, 0x70, 0x01, 0x00, 0x3F, 0x70, +0x01, 0x00, 0x4F, 0x70, 0x01, 0x00, 0x5F, 0x70, +0x01, 0x00, 0x6F, 0x70, 0x01, 0x00, 0x7F, 0x70, +0x01, 0x00, 0x8F, 0x70, 0x01, 0x00, 0x9F, 0x70, +0x01, 0x00, 0xAF, 0x70, 0x01, 0x00, 0xBF, 0x70, +0x01, 0x00, 0xCF, 0x70, 0x01, 0x00, 0xDF, 0x70, +0x01, 0x00, 0xEF, 0x70, 0x01, 0x00, 0xFF, 0x70, +0x5E, 0x00, 0xD5, 0xF7, 0x41, 0x80, 0x0B, 0x70, +0x40, 0x00, 0x1F, 0x70, 0x40, 0x00, 0x2F, 0x70, +0x40, 0x00, 0x3F, 0x70, 0x40, 0x00, 0x4F, 0x70, +0x41, 0x80, 0x5B, 0x70, 0x40, 0x00, 0x6F, 0x70, +0x41, 0x40, 0x14, 0x70, 0x41, 0x40, 0x24, 0x70, +0x41, 0x40, 0x34, 0x70, 0x41, 0x40, 0x44, 0x70, +0x41, 0x40, 0x64, 0x70, 0x41, 0x80, 0x7B, 0x70, +0x41, 0x80, 0x8B, 0x70, 0x41, 0x80, 0x9B, 0x70, +0x41, 0x80, 0xAB, 0x70, 0x41, 0x80, 0xBB, 0x70, +0x41, 0x80, 0xCB, 0x70, 0x41, 0x80, 0xDB, 0x70, +0x41, 0x80, 0xEB, 0x70, 0x41, 0x80, 0xFB, 0x70, +0x00, 0x00, 0x10, 0x00, 0x50, 0x50, 0x50, 0x50, +0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x03, 0x00, +0x1F, 0x00, 0x60, 0xB8, 0xEF, 0x00, 0x60, 0xB8, +0x03, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x60, +0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x0F, 0x80, +0x00, 0x00, 0x0F, 0xC0, 0x08, 0x18, 0x07, 0x00, +0x08, 0x0C, 0x07, 0x00, 0x00, 0x00, 0x0F, 0x00, +0x08, 0x00, 0x04, 0x00, 0xFF, 0x60, 0x0F, 0x00, +0x3F, 0xD8, 0x0F, 0x00, 0xFF, 0x60, 0x07, 0x00, +0x3F, 0xD8, 0x0D, 0x00, 0xFF, 0xDE, 0x07, 0x00, +0xBF, 0xF7, 0x0D, 0x00, 0x00, 0xC0, 0x0F, 0x00, +0x00, 0x00, 0x7C, 0x00, 0x00, 0xF0, 0x01, 0x00, +0x5E, 0x00, 0xA1, 0xFF, 0x00, 0x00, 0xFF, 0x1F, +0xFF, 0x1F, 0x00, 0x04, 0x00, 0x00, 0xFF, 0xFF, +0x80, 0x00, 0x00, 0x30, 0xF0, 0x00, 0x04, 0x00, +0xF0, 0x00, 0x04, 0x04, 0xF0, 0x00, 0x04, 0x08, +0xF0, 0x00, 0x04, 0x01, 0xF0, 0x00, 0x04, 0x05, +0xF0, 0x00, 0x04, 0x09, 0xF0, 0x00, 0x04, 0x02, +0xF0, 0x00, 0x04, 0x06, 0xF0, 0x00, 0x04, 0x0A, +0xF0, 0x00, 0x04, 0x03, 0xF0, 0x00, 0x04, 0x07, +0xF0, 0x00, 0x04, 0x0B, 0xF0, 0x00, 0x04, 0x0C, +0xF0, 0x00, 0x04, 0x10, 0xF0, 0x00, 0x04, 0x0D, +0xF0, 0x00, 0x04, 0x11, 0xF0, 0x00, 0x04, 0x0E, +0xF0, 0x00, 0x04, 0x12, 0xF0, 0x00, 0x04, 0x0F, +0xF0, 0x00, 0x04, 0x13, 0x00, 0x00, 0x06, 0x00, +0x01, 0x00, 0x06, 0x00, 0xF0, 0x00, 0x09, 0x00, +0x17, 0x00, 0x05, 0x00, 0x00, 0xC0, 0x07, 0x00, +0x00, 0x00, 0x10, 0x1F, 0x00, 0x00, 0x0D, 0x1F, +0x0B, 0x17, 0x23, 0x3B, 0x47, 0x53, 0x5F, 0x77, +0x00, 0x48, 0x08, 0x00, 0x01, 0x48, 0x08, 0x00, +0xFF, 0xFF, 0xFF, 0x0F, 0x80, 0x66, 0x06, 0x01, +0x10, 0x13, 0x00, 0x80, 0xDB, 0x00, 0x00, 0x81, +0xDB, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x05, +0x0C, 0x19, 0x00, 0x82, 0x0C, 0x19, 0x00, 0x02, +0x14, 0xEE, 0x01, 0x83, 0x14, 0xEE, 0x01, 0x03, +0x08, 0x00, 0x02, 0x05, 0x3F, 0x00, 0x00, 0xC0, +0x14, 0x3E, 0x03, 0x00, 0xFF, 0xFF, 0xFF, 0x03, +0x12, 0x33, 0x03, 0x00, 0x11, 0x33, 0x03, 0x00, +0x12, 0x11, 0x01, 0x00, 0x31, 0xC9, 0x62, 0x49, +0x55, 0x24, 0x01, 0xFF, 0xC8, 0xFE, 0x18, 0x3E, +0xDE, 0xF0, 0xFA, 0x00, 0x44, 0x23, 0x12, 0x00, +0x00, 0xF0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x78, +0x00, 0x00, 0xF0, 0x00, 0x3F, 0xFF, 0xFE, 0xDF, +0x00, 0x00, 0x60, 0x00, 0x00, 0xFF, 0x0F, 0x00, +0x01, 0x80, 0x03, 0x70, 0x01, 0x80, 0x53, 0x70, +0x01, 0x80, 0x73, 0x70, 0x01, 0x80, 0x83, 0x70, +0x01, 0x80, 0x93, 0x70, 0x01, 0x80, 0xA3, 0x70, +0x01, 0x80, 0xB3, 0x70, 0x01, 0x80, 0xC3, 0x70, +0x01, 0x80, 0xD3, 0x70, 0x01, 0x80, 0xE3, 0x70, +0x01, 0x80, 0xF3, 0x70, 0x01, 0x80, 0x0B, 0x70, +0x01, 0x80, 0x5B, 0x70, 0x01, 0x80, 0x7B, 0x70, +0x01, 0x80, 0x8B, 0x70, 0x01, 0x80, 0x9B, 0x70, +0x01, 0x80, 0xAB, 0x70, 0x01, 0x80, 0xBB, 0x70, +0x01, 0x80, 0xCB, 0x70, 0x01, 0x80, 0xDB, 0x70, +0x01, 0x80, 0xEB, 0x70, 0x01, 0x80, 0xFB, 0x70, +0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0x00, +0x00, 0xFC, 0x01, 0x00, 0x00, 0x00, 0x40, 0x00, +0x00, 0x00, 0x70, 0x00, 0x00, 0xFC, 0xF8, 0xFF, +0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x3F, +0x18, 0x00, 0x70, 0xB8, 0x0B, 0x00, 0x70, 0xB8, +0x02, 0x00, 0x70, 0xB8, 0x94, 0x02, 0x64, 0xB8, +0x97, 0x02, 0x64, 0xB8, 0x84, 0x02, 0x64, 0xB8, +0x06, 0x00, 0x66, 0xB8, 0x50, 0x02, 0x64, 0xB8, +0x48, 0x02, 0x64, 0xB8, 0x74, 0x00, 0x18, 0x2E, +0x74, 0x00, 0x19, 0x2E, 0x01, 0x00, 0x60, 0xB8, +0x01, 0x00, 0x64, 0xB8, 0x34, 0x01, 0x64, 0xB8, +0x64, 0x05, 0x64, 0xB8, 0x60, 0x05, 0x64, 0xB8, +0xC8, 0x01, 0x64, 0xB8, 0xC9, 0x01, 0x64, 0xB8, +0x0C, 0xEA, 0xEF, 0xFD, 0xA0, 0x01, 0x64, 0xB8, +0x48, 0x00, 0x60, 0xB8, 0x47, 0x00, 0x60, 0xB8, +0x46, 0x00, 0x60, 0xB8, 0x63, 0x00, 0x60, 0xB8, +0x62, 0x00, 0x60, 0xB8, 0x45, 0x00, 0x60, 0xB8, +0x61, 0x00, 0x60, 0xB8, 0xC6, 0x01, 0x64, 0xB8, +0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x05, +0x64, 0x01, 0x64, 0xB8, 0x53, 0x05, 0x64, 0xB8, +0x94, 0x01, 0x64, 0xB8, 0x00, 0x1C, 0x66, 0xB8, +0x54, 0x00, 0x60, 0xB8, 0x24, 0x11, 0x64, 0xB8, +0x2C, 0x11, 0x64, 0xB8, 0x34, 0x11, 0x64, 0xB8, +0x3C, 0x11, 0x64, 0xB8, 0xE4, 0x11, 0x64, 0xB8, +0x00, 0x40, 0xE0, 0x03, 0x01, 0x60, 0x00, 0x03, +0xE0, 0x12, 0x64, 0xB8, 0x2F, 0x01, 0x64, 0xB8, +0xE8, 0x10, 0x60, 0xB8, 0x00, 0x3C, 0x64, 0xB8, +0x00, 0x4C, 0x64, 0xB8, 0x00, 0x58, 0x64, 0xB8, +0x00, 0x5C, 0x64, 0xB8, 0xF8, 0x05, 0x64, 0xB8, +0x83, 0x00, 0x60, 0xB8, 0x08, 0x01, 0x64, 0xB8, +0x90, 0x00, 0x60, 0xB8, 0x92, 0x06, 0x64, 0xB8, +0x00, 0x10, 0x60, 0xB8, 0x92, 0x00, 0x60, 0xB8, +0x1F, 0x07, 0x64, 0xB8, 0x1C, 0x07, 0x64, 0xB8, +0x2C, 0x04, 0x64, 0xB8, 0x2E, 0x04, 0x64, 0xB8, +0xB8, 0x05, 0x64, 0xB8, 0xBC, 0x05, 0x64, 0xB8, +0x5F, 0x11, 0x64, 0xB8, 0xFE, 0xFF, 0xFF, 0x7F, +0x30, 0x00, 0x78, 0x18, 0xA0, 0x34, 0x00, 0xB8, +0x00, 0x52, 0x00, 0xB8, 0x04, 0x52, 0x00, 0xB8, +0x08, 0x52, 0x00, 0xB8, 0x0C, 0x52, 0x00, 0xB8, +0x10, 0x52, 0x00, 0xB8, 0x30, 0x52, 0x00, 0xB8, +0x3C, 0x50, 0x00, 0xB8, 0x4C, 0x04, 0x64, 0xB8, +0x50, 0x04, 0x64, 0xB8, 0x7E, 0x04, 0x64, 0xB8, +0x20, 0x04, 0x64, 0xB8, 0xAC, 0x04, 0x64, 0xB8, +0x08, 0x10, 0x66, 0xB8, 0x00, 0x10, 0x66, 0xB8, +0x04, 0x10, 0x66, 0xB8, 0x0C, 0x10, 0x66, 0xB8, +0x7C, 0x04, 0x64, 0xB8, 0x71, 0x00, 0x60, 0xB8, +0xE4, 0x00, 0x60, 0xB8, 0xE6, 0x00, 0x60, 0xB8, +0xE8, 0x00, 0x60, 0xB8, 0xE9, 0x00, 0x60, 0xB8, +0xEA, 0x00, 0x60, 0xB8, 0xEB, 0x00, 0x60, 0xB8, +0xE5, 0x00, 0x60, 0xB8, 0x44, 0x00, 0x02, 0x00, +0xA0, 0x07, 0x64, 0xB8, 0x00, 0x00, 0x60, 0x06, +0x00, 0x00, 0x60, 0x02, 0xFF, 0xFF, 0xBF, 0xFD, +0x00, 0x00, 0x40, 0x02, 0xFF, 0xFF, 0xDF, 0xFF, +0xFF, 0xFF, 0xBF, 0xFF, 0x9A, 0x01, 0x64, 0xB8, +0x98, 0x01, 0x64, 0xB8, 0xD0, 0x05, 0x64, 0xB8, +0x08, 0x02, 0x64, 0xB8, 0x7B, 0x05, 0x64, 0xB8, +0x73, 0x05, 0x64, 0xB8, 0xD4, 0x04, 0x60, 0xB8, +0xD4, 0x04, 0x64, 0xB8, 0x84, 0x04, 0x60, 0xB8, +0x84, 0x04, 0x64, 0xB8, 0xC8, 0x04, 0x60, 0xB8, +0xC8, 0x04, 0x64, 0xB8, 0x78, 0x04, 0x60, 0xB8, +0x78, 0x04, 0x64, 0xB8, 0x00, 0x90, 0x01, 0x00, +0x01, 0x01, 0x64, 0xB8, 0x70, 0x00, 0x60, 0xB8, +0x0D, 0xEA, 0xEF, 0xFD, 0x04, 0xEA, 0xEF, 0xFD, +0xA0, 0x06, 0x64, 0xB8, 0x18, 0x11, 0x64, 0xB8, +0xFF, 0xFF, 0xFB, 0xFF, 0x9C, 0x02, 0x64, 0xB8, +0xA0, 0x02, 0x64, 0xB8, 0x04, 0x06, 0x64, 0xB8, +0xFF, 0xFF, 0xFF, 0xFE, 0x60, 0x16, 0x64, 0xB8, +0xFF, 0xFF, 0x00, 0xF0, 0x00, 0x00, 0x30, 0x80, +0x00, 0x12, 0x00, 0x04, 0x03, 0x00, 0x78, 0xB8, +0xFF, 0xFF, 0x01, 0xFF, 0x12, 0x05, 0x64, 0xB8, +0x10, 0x05, 0x64, 0xB8, 0x04, 0x18, 0x66, 0xB8, +0x00, 0x18, 0x66, 0xB8, 0xFF, 0xFF, 0xFF, 0x3F, +0x10, 0x00, 0x66, 0xB8, 0x11, 0x00, 0x66, 0xB8, +0x12, 0x00, 0x66, 0xB8, 0x13, 0x00, 0x66, 0xB8, +0x14, 0x00, 0x66, 0xB8, 0x15, 0x00, 0x66, 0xB8, +0xD4, 0x07, 0x64, 0xB8, 0xBC, 0x06, 0x64, 0xB8, +0x5F, 0x73, 0x75, 0x62, 0x00, 0x00, 0x00, 0x00, +0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xF2, 0x01, +0x01, 0x80, 0x0B, 0x70, 0x01, 0x80, 0x0B, 0x70, +0x01, 0x40, 0x14, 0x70, 0x01, 0x40, 0x24, 0x70, +0x01, 0x40, 0x34, 0x70, 0x01, 0x40, 0x44, 0x70, +0x01, 0x80, 0x5B, 0x70, 0x01, 0x40, 0x64, 0x70, +0x01, 0x80, 0x7B, 0x70, 0x01, 0x80, 0x8B, 0x70, +0x01, 0x80, 0x9B, 0x70, 0x01, 0x80, 0xAB, 0x70, +0x01, 0x80, 0xBB, 0x70, 0x01, 0x80, 0xCB, 0x70, +0x01, 0x80, 0xDB, 0x70, 0x01, 0x80, 0xEB, 0x70, +0x01, 0x80, 0xFB, 0x70, 0x01, 0x80, 0xFB, 0x70, +0x01, 0x80, 0x0B, 0x70, 0x01, 0x80, 0x0B, 0x70, +0x01, 0x40, 0x14, 0x70, 0x01, 0x40, 0x24, 0x70, +0x01, 0x40, 0x34, 0x70, 0x01, 0x40, 0x44, 0x70, +0x01, 0x80, 0x5B, 0x70, 0x01, 0x40, 0x64, 0x70, +0x01, 0x80, 0x7B, 0x70, 0x01, 0x80, 0x8B, 0x70, +0x01, 0x80, 0x9B, 0x70, 0x01, 0x80, 0xAB, 0x70, +0x01, 0x80, 0xBB, 0x70, 0x01, 0x80, 0xCB, 0x70, +0x01, 0x80, 0xDB, 0x70, 0x01, 0x80, 0xEB, 0x70, +0x01, 0x80, 0xFB, 0x70, 0x01, 0x80, 0xFB, 0x70, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, +0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x42, +0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x44, +0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x46, +0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x48, +0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x4A, +0x00, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00, 0x4C, +0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x4E, +0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x50, +0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x52, +0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x54, +0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x56, +0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x58, +0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x5A, +0x00, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x00, 0x5C, +0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x5E, +0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x60, +0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x62, +0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x64, +0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x66, +0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x68, +0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x6A, +0x00, 0x00, 0x00, 0x6B, 0x00, 0x00, 0x00, 0x6C, +0x00, 0x00, 0x00, 0x6D, 0x00, 0x00, 0x00, 0x6E, +0x00, 0x00, 0x00, 0x6F, 0x00, 0x00, 0x00, 0x70, +0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x72, +0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x74, +0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x76, +0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x78, +0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x7A, +0x00, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x7C, +0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x7E, +0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x80, +0x00, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, +0x08, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, +0x08, 0x00, 0xA7, 0x00, 0x00, 0x1B, 0x00, 0x00, +0x08, 0x00, 0x15, 0x00, 0x00, 0x1B, 0x00, 0x00, +0x08, 0x00, 0x00, 0x00, 0x04, 0x1B, 0x00, 0x00, +0x52, 0x29, 0x46, 0xE2, 0x08, 0x1B, 0x00, 0x00, +0x80, 0x00, 0x00, 0x00, 0x0C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x10, 0x1B, 0x00, 0x00, +0x00, 0x0C, 0x01, 0x00, 0x14, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x18, 0x1B, 0x00, 0x00, +0x03, 0x29, 0x29, 0x00, 0x1C, 0x1B, 0x00, 0x00, +0x32, 0xFC, 0x18, 0xA2, 0x20, 0x1B, 0x00, 0x00, +0x08, 0x00, 0x04, 0x01, 0x24, 0x1B, 0x00, 0x00, +0x08, 0x00, 0x06, 0x00, 0x28, 0x1B, 0x00, 0x00, +0x00, 0x03, 0x06, 0x00, 0x2C, 0x1B, 0x00, 0x00, +0x18, 0x00, 0x18, 0x00, 0x30, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x34, 0x1B, 0x00, 0x00, +0x00, 0x08, 0x00, 0x00, 0x38, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x3C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x98, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x9C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xC0, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0xCC, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xE4, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xEC, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x40, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x44, 0x1B, 0x00, 0x00, +0x64, 0x40, 0x00, 0x20, 0x48, 0x1B, 0x00, 0x00, +0x2D, 0x00, 0x05, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x60, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x10, 0x1F, 0x64, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x12, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x00, 0x50, 0x1B, 0x00, 0x00, +0xBE, 0x03, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x01, 0x50, 0x1B, 0x00, 0x00, +0x7A, 0x05, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x02, 0x50, 0x1B, 0x00, 0x00, +0xC8, 0x06, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x03, 0x50, 0x1B, 0x00, 0x00, +0xE0, 0x07, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x04, 0x50, 0x1B, 0x00, 0x00, +0xD5, 0x08, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x05, 0x50, 0x1B, 0x00, 0x00, +0xB2, 0x09, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x06, 0x50, 0x1B, 0x00, 0x00, +0x7D, 0x0A, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x07, 0x50, 0x1B, 0x00, 0x00, +0x3A, 0x0B, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x08, 0x50, 0x1B, 0x00, 0x00, +0xEB, 0x0B, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x09, 0x50, 0x1B, 0x00, 0x00, +0x92, 0x0C, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x0A, 0x50, 0x1B, 0x00, 0x00, +0x31, 0x0D, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x0B, 0x50, 0x1B, 0x00, 0x00, +0xC9, 0x0D, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x0C, 0x50, 0x1B, 0x00, 0x00, +0x5A, 0x0E, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x0D, 0x50, 0x1B, 0x00, 0x00, +0xE6, 0x0E, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x0E, 0x50, 0x1B, 0x00, 0x00, +0x6D, 0x0F, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x0F, 0x50, 0x1B, 0x00, 0x00, +0xF0, 0x0F, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x10, 0x50, 0x1B, 0x00, 0x00, +0x6F, 0x10, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x11, 0x50, 0x1B, 0x00, 0x00, +0xE9, 0x10, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x12, 0x50, 0x1B, 0x00, 0x00, +0x61, 0x11, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x13, 0x50, 0x1B, 0x00, 0x00, +0xD5, 0x11, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x14, 0x50, 0x1B, 0x00, 0x00, +0x47, 0x12, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x15, 0x50, 0x1B, 0x00, 0x00, +0xB5, 0x12, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x16, 0x50, 0x1B, 0x00, 0x00, +0x22, 0x13, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x17, 0x50, 0x1B, 0x00, 0x00, +0x8B, 0x13, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x18, 0x50, 0x1B, 0x00, 0x00, +0xF3, 0x13, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x19, 0x50, 0x1B, 0x00, 0x00, +0x59, 0x14, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x1A, 0x50, 0x1B, 0x00, 0x00, +0xBD, 0x14, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x1B, 0x50, 0x1B, 0x00, 0x00, +0x1E, 0x15, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x1C, 0x50, 0x1B, 0x00, 0x00, +0x7F, 0x15, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x1D, 0x50, 0x1B, 0x00, 0x00, +0xDD, 0x15, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x1E, 0x50, 0x1B, 0x00, 0x00, +0x3A, 0x16, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x1F, 0x50, 0x1B, 0x00, 0x00, +0x95, 0x16, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x20, 0x50, 0x1B, 0x00, 0x00, +0xEF, 0x16, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x21, 0x50, 0x1B, 0x00, 0x00, +0x48, 0x17, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x22, 0x50, 0x1B, 0x00, 0x00, +0x9F, 0x17, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x23, 0x50, 0x1B, 0x00, 0x00, +0xF5, 0x17, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x24, 0x50, 0x1B, 0x00, 0x00, +0x4A, 0x18, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x25, 0x50, 0x1B, 0x00, 0x00, +0x9E, 0x18, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x26, 0x50, 0x1B, 0x00, 0x00, +0xF1, 0x18, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x27, 0x50, 0x1B, 0x00, 0x00, +0x42, 0x19, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x28, 0x50, 0x1B, 0x00, 0x00, +0x93, 0x19, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x29, 0x50, 0x1B, 0x00, 0x00, +0xE2, 0x19, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x2A, 0x50, 0x1B, 0x00, 0x00, +0x31, 0x1A, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x2B, 0x50, 0x1B, 0x00, 0x00, +0x7F, 0x1A, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x2C, 0x50, 0x1B, 0x00, 0x00, +0xCC, 0x1A, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x2D, 0x50, 0x1B, 0x00, 0x00, +0x18, 0x1B, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x2E, 0x50, 0x1B, 0x00, 0x00, +0x63, 0x1B, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x2F, 0x50, 0x1B, 0x00, 0x00, +0xAD, 0x1B, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x30, 0x50, 0x1B, 0x00, 0x00, +0xF7, 0x1B, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x31, 0x50, 0x1B, 0x00, 0x00, +0x40, 0x1C, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x32, 0x50, 0x1B, 0x00, 0x00, +0x88, 0x1C, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x33, 0x50, 0x1B, 0x00, 0x00, +0xCF, 0x1C, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x34, 0x50, 0x1B, 0x00, 0x00, +0x16, 0x1D, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x35, 0x50, 0x1B, 0x00, 0x00, +0x5C, 0x1D, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x36, 0x50, 0x1B, 0x00, 0x00, +0xA2, 0x1D, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x37, 0x50, 0x1B, 0x00, 0x00, +0xE6, 0x1D, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x38, 0x50, 0x1B, 0x00, 0x00, +0x2B, 0x1E, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x39, 0x50, 0x1B, 0x00, 0x00, +0x6E, 0x1E, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x3A, 0x50, 0x1B, 0x00, 0x00, +0xB1, 0x1E, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x3B, 0x50, 0x1B, 0x00, 0x00, +0xF4, 0x1E, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x3C, 0x50, 0x1B, 0x00, 0x00, +0x35, 0x1F, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x3D, 0x50, 0x1B, 0x00, 0x00, +0x77, 0x1F, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x3E, 0x50, 0x1B, 0x00, 0x00, +0xB8, 0x1F, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x8A, 0x3F, 0x50, 0x1B, 0x00, 0x00, +0xF8, 0x1F, 0x00, 0x00, 0x4C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x50, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x00, 0x5C, 0x1B, 0x00, 0x00, +0xFF, 0x3F, 0x6B, 0x3C, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x02, 0x5C, 0x1B, 0x00, 0x00, +0x0A, 0x39, 0xD9, 0x35, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x04, 0x5C, 0x1B, 0x00, 0x00, +0xD6, 0x32, 0xFE, 0x2F, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x06, 0x5C, 0x1B, 0x00, 0x00, +0x4F, 0x2D, 0xC6, 0x2A, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x08, 0x5C, 0x1B, 0x00, 0x00, +0x62, 0x28, 0x1F, 0x26, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x0A, 0x5C, 0x1B, 0x00, 0x00, +0xFD, 0x23, 0xFA, 0x21, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x0C, 0x5C, 0x1B, 0x00, 0x00, +0x13, 0x20, 0x48, 0x1E, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x0E, 0x5C, 0x1B, 0x00, 0x00, +0x96, 0x1C, 0xFD, 0x1A, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x10, 0x5C, 0x1B, 0x00, 0x00, +0x7B, 0x19, 0x0E, 0x18, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x12, 0x5C, 0x1B, 0x00, 0x00, +0xB5, 0x16, 0x70, 0x15, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x14, 0x5C, 0x1B, 0x00, 0x00, +0x3D, 0x14, 0x1B, 0x13, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x16, 0x5C, 0x1B, 0x00, 0x00, +0x0A, 0x12, 0x07, 0x11, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x18, 0x5C, 0x1B, 0x00, 0x00, +0x13, 0x10, 0x2D, 0x0F, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x1A, 0x5C, 0x1B, 0x00, 0x00, +0x54, 0x0E, 0x87, 0x0D, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x1C, 0x5C, 0x1B, 0x00, 0x00, +0xC5, 0x0C, 0x0E, 0x0C, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x1E, 0x5C, 0x1B, 0x00, 0x00, +0x62, 0x0B, 0xBF, 0x0A, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x20, 0x5C, 0x1B, 0x00, 0x00, +0x25, 0x0A, 0x93, 0x09, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x22, 0x5C, 0x1B, 0x00, 0x00, +0x0A, 0x09, 0x89, 0x08, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x24, 0x5C, 0x1B, 0x00, 0x00, +0x0F, 0x08, 0x9B, 0x07, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x26, 0x5C, 0x1B, 0x00, 0x00, +0x2E, 0x07, 0xC7, 0x06, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x28, 0x5C, 0x1B, 0x00, 0x00, +0x66, 0x06, 0x0B, 0x06, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x2A, 0x5C, 0x1B, 0x00, 0x00, +0xB4, 0x05, 0x63, 0x05, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x2C, 0x5C, 0x1B, 0x00, 0x00, +0x15, 0x05, 0xCD, 0x04, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x2E, 0x5C, 0x1B, 0x00, 0x00, +0x88, 0x04, 0x47, 0x04, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x30, 0x5C, 0x1B, 0x00, 0x00, +0x0A, 0x04, 0xD0, 0x03, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x32, 0x5C, 0x1B, 0x00, 0x00, +0x99, 0x03, 0x66, 0x03, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x34, 0x5C, 0x1B, 0x00, 0x00, +0x35, 0x03, 0x07, 0x03, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x36, 0x5C, 0x1B, 0x00, 0x00, +0xDC, 0x02, 0xB3, 0x02, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x38, 0x5C, 0x1B, 0x00, 0x00, +0x8C, 0x02, 0x68, 0x02, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x3A, 0x5C, 0x1B, 0x00, 0x00, +0x45, 0x02, 0x25, 0x02, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x3C, 0x5C, 0x1B, 0x00, 0x00, +0x06, 0x02, 0xE9, 0x01, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x3E, 0x5C, 0x1B, 0x00, 0x00, +0xCE, 0x01, 0xB4, 0x01, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x40, 0x5C, 0x1B, 0x00, 0x00, +0x9C, 0x01, 0x85, 0x01, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x42, 0x5C, 0x1B, 0x00, 0x00, +0x6F, 0x01, 0x5A, 0x01, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x44, 0x5C, 0x1B, 0x00, 0x00, +0x47, 0x01, 0x35, 0x01, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x46, 0x5C, 0x1B, 0x00, 0x00, +0x23, 0x01, 0x13, 0x01, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x48, 0x5C, 0x1B, 0x00, 0x00, +0x04, 0x01, 0xF5, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x4A, 0x5C, 0x1B, 0x00, 0x00, +0xE7, 0x00, 0xDA, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x4C, 0x5C, 0x1B, 0x00, 0x00, +0xCE, 0x00, 0xC3, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x4E, 0x5C, 0x1B, 0x00, 0x00, +0xB8, 0x00, 0xAE, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x50, 0x5C, 0x1B, 0x00, 0x00, +0xA4, 0x00, 0x9B, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x52, 0x5C, 0x1B, 0x00, 0x00, +0x92, 0x00, 0x8A, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x54, 0x5C, 0x1B, 0x00, 0x00, +0x82, 0x00, 0x7B, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x56, 0x5C, 0x1B, 0x00, 0x00, +0x74, 0x00, 0x6E, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x58, 0x5C, 0x1B, 0x00, 0x00, +0x67, 0x00, 0x62, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x5A, 0x5C, 0x1B, 0x00, 0x00, +0x5C, 0x00, 0x57, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x5C, 0x5C, 0x1B, 0x00, 0x00, +0x52, 0x00, 0x4E, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x5E, 0x5C, 0x1B, 0x00, 0x00, +0x49, 0x00, 0x45, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x60, 0x5C, 0x1B, 0x00, 0x00, +0x41, 0x00, 0x3E, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x62, 0x5C, 0x1B, 0x00, 0x00, +0x3A, 0x00, 0x37, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x01, 0x62, 0x00, 0x1B, 0x00, 0x00, +0x0A, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, +0x0A, 0x00, 0xA7, 0x00, 0x00, 0x1B, 0x00, 0x00, +0x0A, 0x00, 0x15, 0x00, 0x00, 0x1B, 0x00, 0x00, +0x0A, 0x00, 0x00, 0x00, 0x04, 0x1B, 0x00, 0x00, +0x52, 0x29, 0x46, 0xE2, 0x08, 0x1B, 0x00, 0x00, +0x80, 0x00, 0x00, 0x00, 0x0C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x10, 0x1B, 0x00, 0x00, +0x00, 0x0C, 0x01, 0x00, 0x14, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x18, 0x1B, 0x00, 0x00, +0x03, 0x29, 0x29, 0x00, 0x1C, 0x1B, 0x00, 0x00, +0x32, 0xFC, 0x18, 0xA2, 0x20, 0x1B, 0x00, 0x00, +0x08, 0x00, 0x04, 0x01, 0x24, 0x1B, 0x00, 0x00, +0x08, 0x00, 0x06, 0x00, 0x28, 0x1B, 0x00, 0x00, +0x00, 0x03, 0x06, 0x00, 0x2C, 0x1B, 0x00, 0x00, +0x18, 0x00, 0x18, 0x00, 0x30, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x34, 0x1B, 0x00, 0x00, +0x00, 0x08, 0x00, 0x00, 0x38, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x3C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x98, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x9C, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xC0, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0xCC, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xE4, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xEC, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x60, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x10, 0x1F, 0x64, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x12, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x00, 0x5C, 0x1B, 0x00, 0x00, +0xFF, 0x3F, 0x6B, 0x3C, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x02, 0x5C, 0x1B, 0x00, 0x00, +0x0A, 0x39, 0xD9, 0x35, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x04, 0x5C, 0x1B, 0x00, 0x00, +0xD6, 0x32, 0xFE, 0x2F, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x06, 0x5C, 0x1B, 0x00, 0x00, +0x4F, 0x2D, 0xC6, 0x2A, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x08, 0x5C, 0x1B, 0x00, 0x00, +0x62, 0x28, 0x1F, 0x26, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x0A, 0x5C, 0x1B, 0x00, 0x00, +0xFD, 0x23, 0xFA, 0x21, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x0C, 0x5C, 0x1B, 0x00, 0x00, +0x13, 0x20, 0x48, 0x1E, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x0E, 0x5C, 0x1B, 0x00, 0x00, +0x96, 0x1C, 0xFD, 0x1A, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x10, 0x5C, 0x1B, 0x00, 0x00, +0x7B, 0x19, 0x0E, 0x18, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x12, 0x5C, 0x1B, 0x00, 0x00, +0xB5, 0x16, 0x70, 0x15, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x14, 0x5C, 0x1B, 0x00, 0x00, +0x3D, 0x14, 0x1B, 0x13, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x16, 0x5C, 0x1B, 0x00, 0x00, +0x0A, 0x12, 0x07, 0x11, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x18, 0x5C, 0x1B, 0x00, 0x00, +0x13, 0x10, 0x2D, 0x0F, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x1A, 0x5C, 0x1B, 0x00, 0x00, +0x54, 0x0E, 0x87, 0x0D, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x1C, 0x5C, 0x1B, 0x00, 0x00, +0xC5, 0x0C, 0x0E, 0x0C, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x1E, 0x5C, 0x1B, 0x00, 0x00, +0x62, 0x0B, 0xBF, 0x0A, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x20, 0x5C, 0x1B, 0x00, 0x00, +0x25, 0x0A, 0x93, 0x09, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x22, 0x5C, 0x1B, 0x00, 0x00, +0x0A, 0x09, 0x89, 0x08, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x24, 0x5C, 0x1B, 0x00, 0x00, +0x0F, 0x08, 0x9B, 0x07, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x26, 0x5C, 0x1B, 0x00, 0x00, +0x2E, 0x07, 0xC7, 0x06, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x28, 0x5C, 0x1B, 0x00, 0x00, +0x66, 0x06, 0x0B, 0x06, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x2A, 0x5C, 0x1B, 0x00, 0x00, +0xB4, 0x05, 0x63, 0x05, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x2C, 0x5C, 0x1B, 0x00, 0x00, +0x15, 0x05, 0xCD, 0x04, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x2E, 0x5C, 0x1B, 0x00, 0x00, +0x88, 0x04, 0x47, 0x04, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x30, 0x5C, 0x1B, 0x00, 0x00, +0x0A, 0x04, 0xD0, 0x03, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x32, 0x5C, 0x1B, 0x00, 0x00, +0x99, 0x03, 0x66, 0x03, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x34, 0x5C, 0x1B, 0x00, 0x00, +0x35, 0x03, 0x07, 0x03, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x36, 0x5C, 0x1B, 0x00, 0x00, +0xDC, 0x02, 0xB3, 0x02, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x38, 0x5C, 0x1B, 0x00, 0x00, +0x8C, 0x02, 0x68, 0x02, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x3A, 0x5C, 0x1B, 0x00, 0x00, +0x45, 0x02, 0x25, 0x02, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x3C, 0x5C, 0x1B, 0x00, 0x00, +0x06, 0x02, 0xE9, 0x01, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x3E, 0x5C, 0x1B, 0x00, 0x00, +0xCE, 0x01, 0xB4, 0x01, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x40, 0x5C, 0x1B, 0x00, 0x00, +0x9C, 0x01, 0x85, 0x01, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x42, 0x5C, 0x1B, 0x00, 0x00, +0x6F, 0x01, 0x5A, 0x01, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x44, 0x5C, 0x1B, 0x00, 0x00, +0x47, 0x01, 0x35, 0x01, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x46, 0x5C, 0x1B, 0x00, 0x00, +0x23, 0x01, 0x13, 0x01, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x48, 0x5C, 0x1B, 0x00, 0x00, +0x04, 0x01, 0xF5, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x4A, 0x5C, 0x1B, 0x00, 0x00, +0xE7, 0x00, 0xDA, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x4C, 0x5C, 0x1B, 0x00, 0x00, +0xCE, 0x00, 0xC3, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x4E, 0x5C, 0x1B, 0x00, 0x00, +0xB8, 0x00, 0xAE, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x50, 0x5C, 0x1B, 0x00, 0x00, +0xA4, 0x00, 0x9B, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x52, 0x5C, 0x1B, 0x00, 0x00, +0x92, 0x00, 0x8A, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x54, 0x5C, 0x1B, 0x00, 0x00, +0x82, 0x00, 0x7B, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x56, 0x5C, 0x1B, 0x00, 0x00, +0x74, 0x00, 0x6E, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x58, 0x5C, 0x1B, 0x00, 0x00, +0x67, 0x00, 0x62, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x5A, 0x5C, 0x1B, 0x00, 0x00, +0x5C, 0x00, 0x57, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x5C, 0x5C, 0x1B, 0x00, 0x00, +0x52, 0x00, 0x4E, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x5E, 0x5C, 0x1B, 0x00, 0x00, +0x49, 0x00, 0x45, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x60, 0x5C, 0x1B, 0x00, 0x00, +0x41, 0x00, 0x3E, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x89, 0x62, 0x5C, 0x1B, 0x00, 0x00, +0x3A, 0x00, 0x37, 0x00, 0x58, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x01, 0x62, 0x00, 0x1B, 0x00, 0x00, +0x0C, 0x00, 0x00, 0x00, 0xD4, 0x1B, 0x00, 0x00, +0xF0, 0x00, 0x00, 0x00, 0xB8, 0x1B, 0x00, 0x00, +0x20, 0x20, 0x20, 0x20, 0xBC, 0x1B, 0x00, 0x00, +0x20, 0x20, 0x20, 0x20, 0xC0, 0x1B, 0x00, 0x00, +0x20, 0x20, 0x20, 0x20, 0xC4, 0x1B, 0x00, 0x00, +0x20, 0x20, 0x20, 0x20, 0xC8, 0x1B, 0x00, 0x00, +0x04, 0x04, 0x04, 0x04, 0xCC, 0x1B, 0x00, 0x00, +0x04, 0x04, 0x04, 0x04, 0xD0, 0x1B, 0x00, 0x00, +0x04, 0x04, 0x04, 0x04, 0xD8, 0x1B, 0x00, 0x00, +0x04, 0x04, 0x04, 0x04, 0xDC, 0x1B, 0x00, 0x00, +0x20, 0x20, 0x20, 0x20, 0xE0, 0x1B, 0x00, 0x00, +0x04, 0x04, 0x04, 0x04, 0xE4, 0x1B, 0x00, 0x00, +0x17, 0x2F, 0x47, 0x77, 0xE8, 0x1B, 0x00, 0x00, +0x8F, 0xA7, 0xBF, 0xEF, 0xEC, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xF0, 0x1B, 0x00, 0x00, +0x39, 0x19, 0x1F, 0x1F, 0x04, 0x1B, 0x00, 0x00, +0x5B, 0x00, 0x00, 0x00, 0x08, 0x1B, 0x00, 0x00, +0x00, 0xC0, 0x00, 0xB0, 0x5C, 0x1B, 0x00, 0x00, +0x5B, 0x00, 0x00, 0x00, 0x60, 0x1B, 0x00, 0x00, +0x00, 0xC0, 0x00, 0xB0, 0xB4, 0x1B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x15, 0xF0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, +0x15, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, +0x05, 0xF0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, +0x05, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, +0x10, 0xF0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, +0x10, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, +0xF5, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xF0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, +0x00, 0xF0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, +0x15, 0xF0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, +0x15, 0xF0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, +0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, +0x15, 0xF0, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, +0x01, 0x02, 0x03, 0x06, 0x05, 0x06, 0x07, 0x08, +0x09, 0x0A, 0x0B, 0xFF, 0xFF, 0x00, 0x01, 0x02, +0x02, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, +0x28, 0x28, 0x32, 0x28, 0x1E, 0x19, 0x19, 0x19, +0x18, 0x18, 0x12, 0x0F, 0x1E, 0x1E, 0x19, 0x1E, +0x18, 0x16, 0x0C, 0x0C, 0x1E, 0x1E, 0x19, 0x1E, +0x18, 0x16, 0x0C, 0x0C, 0x1E, 0x1E, 0x19, 0x1C, +0x18, 0x14, 0x0C, 0x0A, 0x1E, 0x1E, 0x19, 0x1E, +0x19, 0x18, 0x0F, 0x0E, 0x1E, 0x1E, 0x1E, 0x1E, +0x1C, 0x16, 0x14, 0x12, 0x0C, 0x0A, 0x1E, 0x1E, +0x1E, 0x1E, 0x1A, 0x16, 0x12, 0x10, 0x0C, 0x0A, +0x1E, 0x1E, 0x1E, 0x1E, 0x18, 0x16, 0x0D, 0x0E, +0x0C, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, +0x0A, 0x0A, 0x0A, 0x0A, 0x12, 0x12, 0x14, 0x12, +0x0F, 0x0F, 0x0C, 0x0C, 0x09, 0x08, 0x08, 0x07, +0x0A, 0x0A, 0x09, 0x07, 0x07, 0x06, 0x05, 0x04, +0x0C, 0x0C, 0x0A, 0x0A, 0x09, 0x07, 0x07, 0x06, +0x0C, 0x0C, 0x0A, 0x0A, 0x09, 0x07, 0x07, 0x06, +0x0C, 0x0C, 0x0A, 0x0A, 0x09, 0x07, 0x07, 0x06, +0x0A, 0x0A, 0x08, 0x08, 0x08, 0x07, 0x07, 0x06, +0x04, 0x04, 0x0C, 0x0C, 0x0A, 0x0A, 0x09, 0x07, +0x07, 0x06, 0x05, 0x04, 0x0C, 0x0C, 0x0A, 0x0A, +0x09, 0x07, 0x07, 0x06, 0x05, 0x04, 0x0A, 0x0A, +0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, +0x02, 0x02, 0x02, 0x04, 0x02, 0x04, 0x06, 0x06, +0x08, 0x08, 0x09, 0x09, 0x03, 0x06, 0x08, 0x08, +0x0A, 0x0E, 0x10, 0x18, 0x05, 0x08, 0x08, 0x08, +0x0A, 0x0E, 0x10, 0x18, 0x05, 0x08, 0x08, 0x09, +0x10, 0x14, 0x1C, 0x20, 0x04, 0x06, 0x08, 0x0A, +0x10, 0x18, 0x18, 0x20, 0x03, 0x06, 0x08, 0x09, +0x10, 0x14, 0x1C, 0x24, 0x34, 0x3A, 0x05, 0x07, +0x09, 0x0A, 0x10, 0x14, 0x1C, 0x28, 0x34, 0x3C, +0x06, 0x08, 0x0A, 0x0C, 0x12, 0x18, 0x1E, 0x2E, +0x36, 0x40, 0x0A, 0x0C, 0x0C, 0x12, 0x16, 0x1C, +0x20, 0x2E, 0x36, 0x40, 0x2C, 0x00, 0x04, 0x00, +0x2D, 0x00, 0x2C, 0x01, 0x2D, 0x01, 0x2C, 0x02, +0x2E, 0x01, 0xFF, 0x00, 0x2D, 0x02, 0xFF, 0x00, +0x36, 0x2D, 0xFF, 0x36, 0x2E, 0xFF, 0x37, 0x2F, +0xFF, 0x38, 0x30, 0xFF, 0x39, 0x31, 0xFF, 0x3A, +0x32, 0xFF, 0x3A, 0x33, 0xFF, 0x3A, 0x34, 0xFF, +0x3A, 0x35, 0xFF, 0x3B, 0xFF, 0xFF, 0x37, 0x2E, +0xFF, 0x38, 0x30, 0xFF, 0x39, 0x31, 0xFF, 0x3A, +0x32, 0xFF, 0x3B, 0x35, 0xFF, 0x3C, 0xFF, 0xFF, +0x3D, 0xFF, 0xFF, 0x3E, 0xFF, 0xFF, 0x3F, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0x37, 0xFF, 0x2F, 0x39, +0xFF, 0x31, 0xFF, 0x3A, 0x33, 0xFF, 0x3B, 0x35, +0xFF, 0x3D, 0xFF, 0xFF, 0xFF, 0x3E, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0x00, 0x00, 0x0D, 0x14, 0xFF, 0x15, +0x0E, 0xFF, 0x15, 0x0F, 0xFF, 0x16, 0x10, 0xFF, +0x17, 0x11, 0xFF, 0x18, 0x12, 0xFF, 0x18, 0x13, +0xFF, 0x18, 0xFF, 0xFF, 0x15, 0x0E, 0xFF, 0x16, +0x10, 0xFF, 0x17, 0x10, 0xFF, 0x18, 0x11, 0xFF, +0x19, 0xFF, 0xFF, 0x1A, 0xFF, 0xFF, 0x1B, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0x15, 0x13, 0x0F, 0x17, +0x1E, 0x11, 0x18, 0x1F, 0x13, 0x20, 0x19, 0xFF, +0x21, 0x1B, 0xFF, 0x22, 0xFF, 0xFF, 0x23, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0x04, 0x04, 0x04, 0x36, +0x2C, 0xFF, 0x2D, 0xFF, 0xFF, 0x2E, 0x37, 0xFF, +0x38, 0x2F, 0xFF, 0x39, 0x30, 0xFF, 0x39, 0x31, +0xFF, 0x39, 0x32, 0xFF, 0x3A, 0x33, 0xFF, 0x3A, +0x34, 0xFF, 0x2D, 0x2C, 0xFF, 0x36, 0x2E, 0xFF, +0x37, 0x2F, 0xFF, 0x38, 0x30, 0xFF, 0x33, 0x39, +0xFF, 0x35, 0x3A, 0xFF, 0x3B, 0x34, 0xFF, 0x3C, +0x3B, 0xFF, 0x3D, 0x3C, 0xFF, 0x3E, 0x3D, 0xFF, +0x37, 0x2E, 0xFF, 0x38, 0x2F, 0xFF, 0x39, 0x31, +0xFF, 0x3A, 0xFF, 0xFF, 0xFF, 0x3B, 0xFF, 0xFF, +0x3C, 0xFF, 0xFF, 0x3D, 0x3C, 0xFF, 0x3F, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, +0x04, 0xFF, 0xFF, 0x0C, 0xFF, 0xFF, 0x0D, 0x14, +0xFF, 0x0E, 0x15, 0xFF, 0x16, 0x0F, 0xFF, 0x17, +0x10, 0xFF, 0x17, 0x11, 0xFF, 0x17, 0x12, 0xFF, +0x0D, 0x0C, 0xFF, 0x14, 0x0E, 0xFF, 0x15, 0x0F, +0xFF, 0x16, 0x10, 0xFF, 0x17, 0x12, 0xFF, 0x18, +0x13, 0xFF, 0x19, 0x13, 0xFF, 0x1A, 0x13, 0xFF, +0x14, 0x0E, 0xFF, 0x15, 0x1C, 0xFF, 0x17, 0x1D, +0x11, 0x18, 0x1E, 0x13, 0x19, 0x1F, 0x1E, 0x20, +0x1A, 0x1F, 0x21, 0x1B, 0x20, 0x22, 0x21, 0x1B, +0x01, 0x00, 0x02, 0x00, 0x05, 0x00, 0x0B, 0x00, +0x06, 0x00, 0x09, 0x00, 0x0C, 0x00, 0x12, 0x00, +0x18, 0x00, 0x24, 0x00, 0x30, 0x00, 0x36, 0x00, +0x0E, 0x00, 0x1B, 0x00, 0x29, 0x00, 0x36, 0x00, +0x51, 0x00, 0x6C, 0x00, 0x7A, 0x00, 0x87, 0x00, +0x1B, 0x00, 0x36, 0x00, 0x51, 0x00, 0x6C, 0x00, +0xA2, 0x00, 0xD8, 0x00, 0xF3, 0x00, 0x0E, 0x01, +0x29, 0x00, 0x51, 0x00, 0x7A, 0x00, 0xA2, 0x00, +0xF3, 0x00, 0x44, 0x01, 0x6D, 0x01, 0x95, 0x01, +0x36, 0x00, 0x6C, 0x00, 0xA2, 0x00, 0xD8, 0x00, +0x44, 0x01, 0xB0, 0x01, 0xE6, 0x01, 0x1C, 0x02, +0x0E, 0x00, 0x1B, 0x00, 0x29, 0x00, 0x36, 0x00, +0x51, 0x00, 0x6C, 0x00, 0x7A, 0x00, 0x87, 0x00, +0xA2, 0x00, 0xB4, 0x00, 0x1B, 0x00, 0x36, 0x00, +0x51, 0x00, 0x6C, 0x00, 0xA2, 0x00, 0xD8, 0x00, +0xF3, 0x00, 0x0E, 0x01, 0x44, 0x01, 0x68, 0x01, +0x29, 0x00, 0x51, 0x00, 0x7A, 0x00, 0xA2, 0x00, +0xF3, 0x00, 0x44, 0x01, 0x6C, 0x01, 0x95, 0x01, +0xE6, 0x01, 0x1C, 0x02, 0x36, 0x00, 0x6C, 0x00, +0xA2, 0x00, 0xD8, 0x00, 0x44, 0x01, 0xB0, 0x01, +0xE6, 0x01, 0x1C, 0x02, 0x88, 0x02, 0xD0, 0x02, +0x14, 0x14, 0x15, 0x15, 0x16, 0x17, 0x17, 0x18, +0x1C, 0x1C, 0x1C, 0x1C, 0x1D, 0x1D, 0x1E, 0x1E, +0x1C, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x20, 0x20, +0x36, 0x36, 0x37, 0x37, 0x38, 0x39, 0x39, 0x3A, +0x3A, 0x3A, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, +0x41, 0x41, 0x42, 0x42, 0x43, 0x43, 0x00, 0x00, +0x40, 0x40, 0x41, 0x42, 0x43, 0x44, 0x44, 0x44, +0x45, 0x46, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, +0x00, 0x00, 0x30, 0xC0, 0xE0, 0x00, 0x00, 0x00, +0x00, 0x0C, 0x0E, 0x38, 0x18, 0x00, 0x00, 0x00, +0x00, 0x83, 0x01, 0x06, 0x80, 0x03, 0x00, 0x00, +0x00, 0x00, 0x70, 0xE0, 0x00, 0x00, 0x00, 0x00, +0x46, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x30, 0xF0, 0x21, 0x6C, 0x00, 0xF0, 0x00, 0x4C, +0xBC, 0x65, 0x94, 0xB8, 0x00, 0x65, 0x00, 0x6D, +0xFE, 0xF7, 0x1F, 0x4D, 0xAC, 0xEC, 0x94, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0xF4, +0x00, 0x6D, 0xAD, 0xEC, 0x40, 0x6D, 0xAD, 0xEC, +0x94, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x1F, 0xF6, 0x00, 0x6C, 0x8C, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x77, 0xF0, 0x20, 0x6C, +0x80, 0xF0, 0x80, 0x9C, 0x80, 0xF0, 0x20, 0x6E, +0xCC, 0xEC, 0x18, 0x24, 0x30, 0xF0, 0x21, 0x6C, +0xFC, 0xF7, 0x1C, 0x4C, 0x80, 0x9C, 0xBC, 0x65, +0x30, 0xF0, 0x21, 0x6C, 0xFC, 0xF7, 0x18, 0x4C, +0x80, 0x9C, 0xFC, 0x65, 0x9F, 0x67, 0x77, 0xF0, +0x24, 0x6D, 0xE0, 0xF2, 0x90, 0xDD, 0x9D, 0x67, +0x77, 0xF0, 0x24, 0x6D, 0xE0, 0xF2, 0x94, 0xDD, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6C, +0xC0, 0xF1, 0x14, 0x4C, 0x00, 0x6E, 0x30, 0xF0, +0x20, 0x6F, 0x41, 0xF7, 0x08, 0x4F, 0xC0, 0xDC, +0x04, 0x4C, 0xE3, 0xEC, 0xB8, 0x67, 0xFB, 0x2D, +0x30, 0xF0, 0x20, 0x6C, 0xC6, 0xF3, 0x1C, 0x4C, +0x00, 0x6E, 0x30, 0xF0, 0x20, 0x6F, 0x0F, 0xF6, +0x10, 0x4F, 0xC0, 0xDC, 0x04, 0x4C, 0xE3, 0xEC, +0xB8, 0x67, 0xFB, 0x2D, 0x10, 0xF0, 0x23, 0x6C, +0xC0, 0xF0, 0x01, 0x4C, 0x00, 0xEC, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF0, 0x78, 0x9B, 0x10, 0xF0, +0x23, 0x6A, 0xC0, 0xF0, 0x01, 0x4A, 0x40, 0xDB, +0x00, 0x1C, 0x80, 0x00, 0x80, 0x18, 0xE3, 0x58, +0x80, 0x18, 0xF3, 0x55, 0x80, 0x18, 0x1A, 0x56, +0x80, 0x18, 0xB4, 0x58, 0x80, 0x18, 0x34, 0x56, +0x80, 0x18, 0xAB, 0x58, 0x00, 0x18, 0xA8, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x54, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x21, 0x6A, 0x41, 0xF7, +0x08, 0x4C, 0x1D, 0xF0, 0x00, 0x4A, 0x43, 0xDC, +0xE0, 0xF7, 0x40, 0x98, 0x00, 0x6D, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x26, 0xF4, 0x58, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x01, 0xF0, 0x50, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xE1, 0xF7, 0x00, 0x4C, +0x01, 0x6D, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x46, 0xF4, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6C, +0x30, 0xF0, 0x21, 0x6A, 0x81, 0xF7, 0x14, 0x4C, +0x1D, 0xF4, 0x00, 0x4A, 0x43, 0xDC, 0xE0, 0xF7, +0x40, 0x98, 0x00, 0x6D, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x26, 0xF4, 0x5C, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF1, 0x7C, 0x9A, 0xFF, 0xF7, +0x1F, 0x6C, 0x10, 0xF0, 0x00, 0x6D, 0x40, 0xAB, +0xAB, 0xED, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, +0x58, 0x9A, 0x40, 0xEA, 0x00, 0x1C, 0xAB, 0x39, +0xFF, 0x17, 0x00, 0x65, 0x6D, 0xB8, 0x00, 0x65, +0x00, 0xF0, 0x20, 0x6A, 0x7C, 0x4A, 0x6C, 0xEA, +0x1C, 0x22, 0x00, 0xF0, 0x20, 0x6B, 0x28, 0x4B, +0x6A, 0xEA, 0x0B, 0x61, 0x4E, 0xB8, 0x00, 0x65, +0x00, 0xF0, 0x20, 0x6B, 0x01, 0x4B, 0x6B, 0xE2, +0x60, 0xAA, 0xBF, 0xF6, 0x1A, 0x6A, 0x6A, 0xEA, +0x31, 0x60, 0x77, 0xF0, 0x24, 0x6A, 0xA0, 0xF1, +0x1C, 0x4A, 0x1D, 0xF4, 0x00, 0x6B, 0x60, 0xDA, +0x10, 0xF0, 0x23, 0x6A, 0xE0, 0xF7, 0x1D, 0x4A, +0x00, 0xEA, 0x00, 0xF0, 0x20, 0x6A, 0x1F, 0xF7, +0x00, 0x6A, 0x4C, 0xEB, 0x4C, 0xB8, 0x00, 0x65, +0x6C, 0xEA, 0x42, 0x32, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF0, 0x00, 0x4B, 0x49, 0xE3, 0x40, 0xA2, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF1, 0x08, 0x4B, +0x69, 0xE2, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, +0x04, 0x4B, 0x60, 0x9B, 0x05, 0x2B, 0x10, 0xF0, +0x23, 0x6B, 0x60, 0xF3, 0x19, 0x4B, 0x00, 0xEB, +0x10, 0xF0, 0x23, 0x6B, 0x00, 0xF4, 0x0D, 0x4B, +0x00, 0xEB, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF1, 0x14, 0x4A, 0x00, 0xF0, 0x20, 0x6B, +0x01, 0x6B, 0x60, 0xDA, 0x10, 0xF0, 0x23, 0x6B, +0x40, 0xF2, 0x01, 0x4B, 0x00, 0xEB, 0x00, 0x65, +0x5A, 0xB8, 0x00, 0x65, 0x7B, 0xB8, 0x00, 0x65, +0x40, 0xE8, 0x5A, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x7B, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF1, +0x14, 0x4A, 0x00, 0xF0, 0x20, 0x6B, 0x60, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF1, 0x0C, 0x4A, +0x60, 0x9A, 0x41, 0x9A, 0x6A, 0xEA, 0x0D, 0x61, +0x6E, 0xB8, 0x00, 0x65, 0x62, 0x43, 0xCB, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x5A, 0xB8, +0x00, 0x65, 0x7B, 0xB8, 0x00, 0x65, 0x00, 0xBA, +0x00, 0x65, 0x36, 0x23, 0xDF, 0xF7, 0x00, 0x03, +0x86, 0xDB, 0xA7, 0xDB, 0xC8, 0xDB, 0xE9, 0xDB, +0x0A, 0xDB, 0x2B, 0xDB, 0x98, 0x67, 0x8C, 0xDB, +0x9F, 0x67, 0x8E, 0xDB, 0x12, 0xEC, 0x10, 0xED, +0x82, 0xDB, 0xA3, 0xDB, 0x9A, 0xB8, 0x00, 0x65, +0x84, 0xDB, 0x9B, 0xB8, 0x00, 0x65, 0x85, 0xDB, +0x8E, 0xB8, 0x00, 0x65, 0x82, 0x44, 0x81, 0xDB, +0x8C, 0xB8, 0x00, 0x65, 0x80, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xE0, 0xF1, 0x0C, 0x4B, 0x60, 0x9B, +0x9D, 0x67, 0x89, 0xDB, 0x6A, 0x9B, 0xCF, 0xF7, +0x80, 0x44, 0x62, 0xEC, 0x0D, 0x60, 0x77, 0xF0, +0x24, 0x6C, 0xA0, 0xF1, 0x1C, 0x4C, 0x1D, 0xF4, +0x01, 0x6B, 0x60, 0xDC, 0x10, 0xF0, 0x23, 0x6C, +0xE0, 0xF7, 0x1D, 0x4C, 0x00, 0xEC, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF1, 0x0C, 0x4B, +0x41, 0x9B, 0x40, 0xDB, 0x89, 0x9A, 0xBC, 0x65, +0x7D, 0x67, 0xDF, 0xF7, 0x00, 0x03, 0x4C, 0xB8, +0x00, 0x65, 0x00, 0xF0, 0x20, 0x6D, 0x05, 0x4D, +0xAF, 0xED, 0xAC, 0xEA, 0xA0, 0x9B, 0x04, 0x6C, +0x8C, 0xED, 0xAD, 0xEA, 0x82, 0x9B, 0xA3, 0x9B, +0x32, 0xEC, 0x30, 0xED, 0x8E, 0x9B, 0xFC, 0x65, +0x8C, 0x9B, 0x1C, 0x65, 0x84, 0x9B, 0x5C, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x85, 0x9B, +0x7C, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x2B, 0x9B, 0x0A, 0x9B, 0xE9, 0x9B, 0xC8, 0x9B, +0xA7, 0x9B, 0x86, 0x9B, 0x61, 0x9B, 0xCB, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x8A, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x7B, 0xB8, +0x00, 0x65, 0x5A, 0xB8, 0x00, 0x65, 0x00, 0xBA, +0xDF, 0xF7, 0x00, 0x03, 0x86, 0xDB, 0xA7, 0xDB, +0xC8, 0xDB, 0xE9, 0xDB, 0x0A, 0xDB, 0x2B, 0xDB, +0x98, 0x67, 0x8C, 0xDB, 0x9F, 0x67, 0x8E, 0xDB, +0x12, 0xEC, 0x10, 0xED, 0x82, 0xDB, 0xA3, 0xDB, +0x9A, 0xB8, 0x00, 0x65, 0x84, 0xDB, 0x9B, 0xB8, +0x00, 0x65, 0x85, 0xDB, 0x7D, 0x67, 0x5B, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x40, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x41, 0xF3, 0x08, 0x4C, +0x00, 0xF4, 0x00, 0x4C, 0xBC, 0x65, 0x82, 0x67, +0x40, 0xEA, 0x00, 0x65, 0x7A, 0xB8, 0x00, 0x65, +0xBB, 0x65, 0xDF, 0xF7, 0x00, 0x03, 0x82, 0x9B, +0xA3, 0x9B, 0x32, 0xEC, 0x30, 0xED, 0x8E, 0x9B, +0xFC, 0x65, 0x8C, 0x9B, 0x1C, 0x65, 0x84, 0x9B, +0x5C, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x85, 0x9B, 0x7C, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x2B, 0x9B, 0x0A, 0x9B, 0xE9, 0x9B, +0xC8, 0x9B, 0xA7, 0x9B, 0x86, 0x9B, 0x5A, 0xB8, +0x00, 0x65, 0x7B, 0xB8, 0x00, 0x65, 0x00, 0xBA, +0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF1, 0x14, 0x4B, 0x40, 0xDB, 0xDF, 0xF7, +0x00, 0x03, 0x86, 0xDB, 0xA7, 0xDB, 0xC8, 0xDB, +0xE9, 0xDB, 0x0A, 0xDB, 0x2B, 0xDB, 0x98, 0x67, +0x8C, 0xDB, 0x9F, 0x67, 0x8E, 0xDB, 0x12, 0xEC, +0x10, 0xED, 0x82, 0xDB, 0xA3, 0xDB, 0x9A, 0xB8, +0x00, 0x65, 0x84, 0xDB, 0x9B, 0xB8, 0x00, 0x65, +0x85, 0xDB, 0x8E, 0xB8, 0x00, 0x65, 0x81, 0xDB, +0x8C, 0xB8, 0x00, 0x65, 0x80, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xE0, 0xF1, 0x0C, 0x4B, 0x60, 0x9B, +0x9D, 0x67, 0x89, 0xDB, 0x6A, 0x9B, 0xCF, 0xF7, +0x80, 0x44, 0x62, 0xEC, 0x0D, 0x60, 0x77, 0xF0, +0x24, 0x6C, 0xA0, 0xF1, 0x1C, 0x4C, 0x1D, 0xF4, +0x01, 0x6B, 0x60, 0xDC, 0x10, 0xF0, 0x23, 0x6C, +0xE0, 0xF7, 0x1D, 0x4C, 0x00, 0xEC, 0x00, 0x65, +0x40, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x41, 0xF3, +0x08, 0x4C, 0x00, 0xF4, 0x00, 0x4C, 0xBC, 0x65, +0x82, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0xC0, 0xF1, 0x14, 0x4C, 0x00, 0xF0, 0x20, 0x6D, +0xA0, 0xDC, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF1, +0x0C, 0x4A, 0x10, 0xF0, 0x23, 0x6B, 0xA0, 0xF4, +0x15, 0x4B, 0x00, 0xEB, 0x61, 0x9A, 0x60, 0xDA, +0x49, 0x9B, 0xBA, 0x65, 0xDF, 0xF7, 0x00, 0x03, +0x4C, 0xB8, 0x00, 0x65, 0x00, 0xF0, 0x20, 0x6D, +0x05, 0x4D, 0xAF, 0xED, 0xAC, 0xEA, 0xA0, 0x9B, +0x00, 0xF0, 0x20, 0x6C, 0x04, 0x4C, 0x8C, 0xED, +0xAD, 0xEA, 0x82, 0x9B, 0xA3, 0x9B, 0x32, 0xEC, +0x30, 0xED, 0x8E, 0x9B, 0xFC, 0x65, 0x8C, 0x9B, +0x1C, 0x65, 0x84, 0x9B, 0x5C, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x85, 0x9B, 0x7C, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x2B, 0x9B, +0x0A, 0x9B, 0xE9, 0x9B, 0xC8, 0x9B, 0xA7, 0x9B, +0x86, 0x9B, 0x61, 0x9B, 0xCB, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x8A, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x7B, 0xB8, 0x00, 0x65, +0x5A, 0xB8, 0x00, 0x65, 0x00, 0xBA, 0x00, 0x65, +0x5F, 0x67, 0x5A, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x18, 0xD3, 0xC1, 0x00, 0x1C, +0xBA, 0x35, 0x5A, 0xB8, 0x00, 0x65, 0x00, 0xEA, +0x6D, 0xB8, 0x00, 0xF0, 0x20, 0x6A, 0x00, 0xF2, +0x00, 0x4A, 0x4F, 0xEA, 0x4C, 0xEB, 0xAB, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x5F, 0x67, +0x5A, 0xB9, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x1C, 0x7D, 0x35, 0x5A, 0xB8, 0x00, 0x65, +0x00, 0xEA, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF3, 0x70, 0x9B, 0xFF, 0x6A, 0x8C, 0xEA, +0x80, 0xA3, 0x10, 0x6B, 0x8C, 0xEB, 0x05, 0x23, +0xE2, 0xF1, 0x10, 0x4A, 0xE2, 0xF1, 0x10, 0x6B, +0x31, 0x10, 0x7F, 0x4A, 0x09, 0x4A, 0x88, 0x6B, +0x15, 0x10, 0x1F, 0xF7, 0x00, 0x6C, 0x6C, 0xEC, +0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF0, 0x98, 0x9C, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF0, +0x9C, 0x9C, 0xC0, 0xA5, 0x91, 0xE3, 0x01, 0x4D, +0xC0, 0xC4, 0x01, 0x4B, 0x4A, 0xEB, 0xE9, 0x61, +0x20, 0xE8, 0x1F, 0xF7, 0x00, 0x6C, 0x6C, 0xEC, +0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF0, 0x98, 0x9C, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF0, +0x9C, 0x9C, 0xC0, 0xA5, 0x91, 0xE3, 0x01, 0x4D, +0xC0, 0xC4, 0x01, 0x4B, 0x4A, 0xEB, 0xE9, 0x61, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, 0x01, 0x72, +0x14, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF5, +0xB0, 0x9B, 0x83, 0xF2, 0x1C, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, +0x14, 0x6C, 0x00, 0xF3, 0x00, 0x6D, 0x00, 0x6E, +0x15, 0x10, 0x02, 0x72, 0x14, 0x61, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF5, 0xB0, 0x9B, 0x83, 0xF2, +0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF2, 0x14, 0x6C, 0x00, 0xF3, +0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x6C, 0xC6, 0xF5, 0x10, 0x48, +0xA6, 0xF6, 0x17, 0x4C, 0x07, 0x6E, 0x40, 0xEA, +0xE0, 0xF0, 0x87, 0xA0, 0x00, 0x18, 0xD9, 0xD5, +0x05, 0xF3, 0x5C, 0xA0, 0x1F, 0x6B, 0x01, 0x6C, +0x4A, 0x32, 0x6C, 0xEA, 0xE0, 0xF0, 0x67, 0xA0, +0x47, 0xEB, 0x8C, 0xEA, 0x03, 0x22, 0x05, 0xF3, +0x7D, 0xC0, 0x04, 0x10, 0x01, 0x6A, 0x4B, 0xEA, +0x05, 0xF3, 0x5D, 0xC0, 0x30, 0xF0, 0x20, 0x68, +0xC6, 0xF5, 0x10, 0x48, 0x05, 0xF3, 0x7C, 0xA0, +0x02, 0x6A, 0x6C, 0xEA, 0x1A, 0x22, 0x03, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x05, 0xF3, 0x5C, 0xC0, +0x00, 0x18, 0xC7, 0xD9, 0x04, 0xD2, 0x04, 0x93, +0x25, 0xF3, 0x40, 0x98, 0x6E, 0xEA, 0x03, 0x22, +0x04, 0x94, 0x00, 0x18, 0xE8, 0xD9, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x05, 0xF3, +0x9C, 0xA2, 0x02, 0x6B, 0x8D, 0xEB, 0x05, 0xF3, +0x7C, 0xC2, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, 0x90, 0x67, +0x00, 0x18, 0xCC, 0xCD, 0x90, 0x67, 0x00, 0x18, +0xEC, 0xDB, 0x01, 0x6C, 0x00, 0x18, 0x02, 0xC6, +0x90, 0x67, 0x01, 0x6D, 0x00, 0x18, 0x4B, 0xCD, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF3, 0x44, 0x9A, 0x42, 0xF1, 0x18, 0x6C, +0x01, 0x6D, 0x02, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x17, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, 0x7C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, 0x58, 0x9A, +0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF0, +0x40, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF1, 0x00, 0x4A, 0x30, 0xF0, +0x20, 0x6B, 0xEF, 0x9A, 0x63, 0xF0, 0x64, 0x9B, +0xCE, 0x9A, 0xAD, 0x9A, 0x8C, 0x9A, 0xE0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, 0x68, 0x9B, +0xC0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, +0x6C, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF0, 0x70, 0x9B, 0x80, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x89, 0x9A, 0x63, 0xF0, 0x74, 0x9B, +0x80, 0xDB, 0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF0, 0x58, 0x9A, 0x01, 0x6C, 0xA4, 0x67, +0x60, 0xDA, 0x80, 0x18, 0x4E, 0x16, 0x00, 0x1C, +0xAC, 0x39, 0xFF, 0x17, 0x4C, 0xB8, 0x00, 0x65, +0x80, 0x34, 0x8D, 0xEA, 0x8A, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x4C, 0xB8, 0x00, 0x65, 0x80, 0x34, 0x8F, 0xEC, +0x8C, 0xEA, 0x8A, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF1, 0x00, 0x4A, 0x60, 0xDA, 0x81, 0xDA, +0xA2, 0xDA, 0xC3, 0xDA, 0xE4, 0xDA, 0x05, 0xDA, +0x26, 0xDA, 0x78, 0x67, 0x67, 0xDA, 0x7D, 0x67, +0x68, 0xDA, 0x7F, 0x67, 0x69, 0xDA, 0x12, 0xEB, +0x6A, 0xDA, 0x10, 0xEB, 0x6B, 0xDA, 0x6D, 0xB8, +0x00, 0x65, 0x6C, 0xDA, 0x68, 0xB8, 0x00, 0x65, +0x6D, 0xDA, 0x6C, 0xB8, 0x00, 0x65, 0x6E, 0xDA, +0x6E, 0xB8, 0x00, 0x65, 0x6F, 0xDA, 0x10, 0xF0, +0x23, 0x6A, 0x40, 0xF7, 0x15, 0x4A, 0x00, 0xEA, +0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF0, 0x78, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0x41, 0xF0, 0x0D, 0x4A, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF0, 0x5C, 0x9A, 0x08, 0x6B, +0x40, 0xA2, 0x4C, 0xEB, 0x00, 0x6A, 0x11, 0x23, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, 0x40, 0x9A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0x9A, 0x46, 0xF4, +0x44, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, +0x44, 0x9A, 0x46, 0xF4, 0x04, 0x4B, 0x40, 0x9A, +0x41, 0xDB, 0x20, 0xE8, 0xFF, 0x6A, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF0, 0x98, 0x9C, +0x10, 0xF0, 0x23, 0x6B, 0x81, 0xF0, 0x15, 0x4B, +0x60, 0xDC, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF0, +0x7C, 0x9B, 0x80, 0xA3, 0x08, 0x6B, 0x8C, 0xEB, +0x1C, 0x23, 0x05, 0x5A, 0x1A, 0x60, 0x0C, 0x6D, +0xB8, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, +0x60, 0x9B, 0x80, 0x9B, 0x30, 0xF0, 0x20, 0x6B, +0x46, 0xF4, 0x0C, 0x4B, 0x12, 0xEA, 0x49, 0xE3, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0x64, 0x9B, +0x81, 0xDA, 0x80, 0xA2, 0x60, 0x9B, 0x62, 0xDA, +0x01, 0x6B, 0x8D, 0xEB, 0x60, 0xC2, 0x01, 0x6A, +0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x43, 0xF0, 0x98, 0x9C, 0x10, 0xF0, 0x23, 0x6B, +0xE1, 0xF0, 0x19, 0x4B, 0x60, 0xDC, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF0, 0x7C, 0x9B, 0x80, 0xA3, +0x08, 0x6B, 0x8C, 0xEB, 0x1B, 0x23, 0x05, 0x5A, +0x19, 0x60, 0x0C, 0x6C, 0x98, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x46, 0xF4, 0x0C, 0x4B, 0x12, 0xEA, +0x69, 0xE2, 0x80, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, +0x0D, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, +0x60, 0x9B, 0x42, 0x9A, 0xA0, 0x9B, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF0, 0x64, 0x9B, 0x60, 0x9B, +0x4B, 0xE3, 0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, +0xFF, 0x6B, 0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, +0x43, 0xF0, 0x98, 0x9C, 0x10, 0xF0, 0x23, 0x6A, +0x41, 0xF1, 0x19, 0x4A, 0x05, 0x5B, 0x40, 0xDC, +0x00, 0x6A, 0x11, 0x60, 0x0C, 0x6C, 0x98, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x46, 0xF4, 0x0C, 0x4A, +0x12, 0xEB, 0x4D, 0xE3, 0x80, 0xA3, 0x02, 0x6A, +0x4B, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x00, 0x6A, +0x41, 0xDB, 0x42, 0xDB, 0x01, 0x6A, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF0, 0x78, 0x9B, 0x10, 0xF0, +0x23, 0x6A, 0x81, 0xF1, 0x19, 0x4A, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x50, 0x9A, +0x40, 0xEA, 0x03, 0x22, 0x00, 0x18, 0x13, 0xC2, +0x05, 0x10, 0x10, 0xF0, 0x23, 0x68, 0x41, 0xF0, +0x0D, 0x48, 0xBA, 0xFE, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, +0x78, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0xC1, 0xF1, +0x15, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF7, 0x50, 0x9A, 0xFF, 0x68, 0x8C, 0xE8, +0x40, 0xEA, 0x04, 0x22, 0x90, 0x67, 0x00, 0x18, +0x25, 0xC2, 0x06, 0x10, 0x90, 0x67, 0x10, 0xF0, +0x23, 0x68, 0x81, 0xF0, 0x15, 0x48, 0xBA, 0xFE, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF0, 0x78, 0x9B, 0x10, 0xF0, +0x23, 0x6A, 0x01, 0xF2, 0x19, 0x4A, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF7, 0x50, 0x9A, +0xFF, 0x68, 0x8C, 0xE8, 0x40, 0xEA, 0x04, 0x22, +0x90, 0x67, 0x00, 0x18, 0x3E, 0xC2, 0x06, 0x10, +0x90, 0x67, 0x10, 0xF0, 0x23, 0x68, 0xE1, 0xF0, +0x19, 0x48, 0xBA, 0xFE, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, +0x78, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0x41, 0xF2, +0x1D, 0x4A, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF7, 0x50, 0x9A, 0xFF, 0x68, 0x8C, 0xE8, +0x40, 0xEA, 0x04, 0x22, 0x90, 0x67, 0x00, 0x18, +0x56, 0xC2, 0x06, 0x10, 0x90, 0x67, 0x10, 0xF0, +0x23, 0x68, 0x41, 0xF1, 0x19, 0x48, 0xBA, 0xFE, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0x10, 0xF0, 0x23, 0x6A, 0x40, 0xF2, 0x01, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x48, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0x00, 0xF4, 0x0D, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x4C, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0xA0, 0xF4, 0x15, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x50, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0x20, 0xF5, 0x09, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x54, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0x40, 0xF7, 0x15, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x58, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0xE0, 0xF7, 0x1D, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF6, 0x5C, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0x40, 0xF7, 0x11, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x3C, 0xF6, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xBA, 0xF4, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5A, 0xF2, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xDA, 0xF5, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFA, 0xF6, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFA, 0xF5, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x7A, 0xF1, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xBB, 0xF6, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x7B, 0xF5, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFB, 0xF5, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5C, 0xF1, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5C, 0xF7, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xBC, 0xF1, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFC, 0xF0, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5B, 0xF6, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x20, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFA, 0xF5, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xDA, 0xF0, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xD9, 0xF6, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1C, 0xF6, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xB9, 0xF6, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFB, 0xF1, 0x04, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFB, 0xF7, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xBC, 0xF6, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1B, 0xF7, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x7B, 0xF6, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFB, 0xF1, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x23, 0x6A, 0x20, 0xF7, 0x11, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5A, 0xF0, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1A, 0xF0, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFA, 0xF0, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5A, 0xF2, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x60, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x9A, 0xF3, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFA, 0xF1, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5C, 0xF3, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5C, 0xF4, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x3C, 0xF2, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xBC, 0xF4, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1C, 0xF5, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFB, 0xF1, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x9B, 0xF4, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1B, 0xF3, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1B, 0xF2, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5A, 0xF7, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xBB, 0xF0, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5B, 0xF0, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x9A, 0xF7, 0x04, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5B, 0xF1, 0x04, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x7B, 0xF1, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x9C, 0xF7, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFC, 0xF7, 0x04, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1D, 0xF0, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x79, 0xF6, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xDD, 0xF0, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1D, 0xF1, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x3D, 0xF1, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x9D, 0xF3, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFD, 0xF3, 0x04, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x3D, 0xF4, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x5D, 0xF4, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x9D, 0xF4, 0x08, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xDD, 0xF4, 0x04, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xFD, 0xF6, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x3D, 0xF7, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xF7, 0x5C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x7D, 0xF7, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x40, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x1E, 0xF1, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x44, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x7E, 0xF1, 0x00, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x48, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x9E, 0xF1, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF3, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xDE, 0xF1, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x4C, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xDE, 0xF3, 0x1C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x50, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x3E, 0xF4, 0x18, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x54, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0x7E, 0xF4, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x58, 0xDB, +0x10, 0xF0, 0x21, 0x6A, 0xBE, 0xF4, 0x0C, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x01, 0xF0, 0x5C, 0xDB, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x24, 0x67, +0x4C, 0xE9, 0x4C, 0xED, 0x2E, 0x34, 0x07, 0x6B, +0x01, 0x75, 0x4C, 0xEC, 0x2C, 0xEB, 0x22, 0x61, +0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, +0x11, 0xE4, 0x01, 0x6A, 0x44, 0xEB, 0x83, 0xF3, +0x70, 0xA4, 0x00, 0x6D, 0x6D, 0xEA, 0x83, 0xF3, +0x50, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, +0x40, 0x9A, 0x91, 0x67, 0x40, 0xEA, 0xE0, 0xF0, +0x48, 0xA0, 0x4E, 0xE9, 0x1F, 0x29, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF0, 0x48, 0x9A, 0x40, 0x9A, +0x50, 0x32, 0x00, 0xF5, 0x42, 0x32, 0xC3, 0xF3, +0x54, 0xC8, 0x14, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x51, 0xE4, 0x01, 0x6A, +0x44, 0xEB, 0x83, 0xF3, 0x70, 0xA4, 0x4F, 0xEA, +0x01, 0x6D, 0x6C, 0xEA, 0x83, 0xF3, 0x50, 0xC4, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x40, 0x9A, +0x91, 0x67, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x68, 0x83, 0xF0, +0x4C, 0x9A, 0x8C, 0xE8, 0x0C, 0x30, 0x0D, 0xD5, +0x4D, 0xE8, 0x00, 0x69, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF0, 0x50, 0x9A, 0x60, 0xF6, 0x13, 0x6C, +0x80, 0x6D, 0x00, 0xDA, 0x06, 0x02, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, +0x00, 0x6E, 0x14, 0x6F, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF0, 0x54, 0x9A, 0x0D, 0x94, +0x01, 0x48, 0x60, 0x9A, 0x29, 0xE4, 0x04, 0x49, +0x18, 0x71, 0x60, 0xDA, 0xE3, 0x61, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x68, 0x83, 0xF0, +0x58, 0x9A, 0x8C, 0xE8, 0x0C, 0x30, 0x0D, 0xD5, +0x4D, 0xE8, 0x00, 0x69, 0x0D, 0x93, 0x60, 0xF6, +0x13, 0x6C, 0x80, 0x6D, 0x29, 0xE3, 0x60, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, 0x5C, 0x9A, +0x00, 0x6E, 0x14, 0x6F, 0x60, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF0, 0x50, 0x9A, 0x04, 0x49, +0x00, 0xDA, 0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, 0x01, 0x48, +0x40, 0xEA, 0x18, 0x71, 0xE3, 0x61, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x8C, 0xE8, +0x83, 0xF0, 0x4C, 0x9A, 0x00, 0x30, 0x0C, 0x30, +0x0D, 0xD5, 0x4D, 0xE8, 0x00, 0x69, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x40, 0x9A, 0x80, 0xF6, +0x1B, 0x6C, 0x80, 0x6D, 0x00, 0xDA, 0x06, 0x02, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, +0x48, 0x9A, 0x00, 0x6E, 0x14, 0x6F, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x44, 0x9A, +0x0D, 0x94, 0x00, 0xF1, 0x00, 0x48, 0x60, 0x9A, +0x29, 0xE4, 0x04, 0x49, 0x14, 0x71, 0x60, 0xDA, +0xE2, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x68, 0x30, 0xF0, +0x20, 0x6A, 0x8C, 0xE8, 0x83, 0xF0, 0x58, 0x9A, +0x00, 0x30, 0x0C, 0x30, 0x0D, 0xD5, 0x4D, 0xE8, +0x00, 0x69, 0x0D, 0x93, 0x80, 0xF6, 0x1B, 0x6C, +0x80, 0x6D, 0x29, 0xE3, 0x60, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x44, 0x9A, 0x00, 0x6E, +0x14, 0x6F, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x40, 0x9A, 0x04, 0x49, 0x00, 0xDA, +0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x48, 0x9A, 0x00, 0xF1, 0x00, 0x48, +0x40, 0xEA, 0x14, 0x71, 0xE2, 0x61, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF0, 0x6C, 0x9B, 0xFF, 0x6A, +0x8C, 0xEA, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF0, 0x68, 0x9B, 0x05, 0x67, 0x40, 0xF6, +0x17, 0x6C, 0x40, 0xDB, 0x06, 0x02, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, +0x80, 0x6D, 0x00, 0x6E, 0x14, 0x6F, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x4C, 0x9A, +0x09, 0x97, 0x40, 0x9A, 0x40, 0xD8, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x50, 0x9A, 0x40, 0x9A, +0x41, 0xD8, 0x08, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF0, 0x78, 0x9B, 0xFF, 0x6A, 0x8C, 0xEA, +0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0x9D, +0xA3, 0xF0, 0x6C, 0x9B, 0x00, 0x6E, 0x14, 0x6F, +0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x81, 0x9D, +0xA3, 0xF0, 0x70, 0x9B, 0x80, 0x6D, 0x80, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, 0x68, 0x9B, +0x40, 0xF6, 0x17, 0x6C, 0x40, 0xDB, 0x06, 0x02, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, +0x48, 0x9A, 0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, +0x01, 0x6B, 0xAC, 0xEA, 0x6E, 0xEA, 0x01, 0x5A, +0x58, 0x67, 0x05, 0x5C, 0x48, 0x32, 0x03, 0x61, +0x01, 0x6A, 0x4B, 0xEA, 0x20, 0xE8, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF0, 0xA8, 0x9B, 0x30, 0xF0, +0x20, 0x6E, 0xA3, 0xF0, 0xD4, 0x9E, 0x60, 0x9D, +0x00, 0xF7, 0x80, 0x34, 0xCC, 0xEB, 0x6D, 0xEC, +0x80, 0xDD, 0x1F, 0xF7, 0x00, 0x6B, 0x60, 0xF5, +0x80, 0x42, 0x8C, 0xEB, 0x02, 0xF0, 0x00, 0x73, +0x01, 0x60, 0x09, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF0, 0x78, 0x9B, 0x60, 0xF5, 0x00, 0x4A, +0x69, 0xE2, 0x40, 0x9A, 0x20, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x5C, 0x9A, 0x51, 0xE4, +0x40, 0x9C, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0x22, 0xF4, 0xCC, 0x9B, 0xFE, 0x63, 0x22, 0xF4, +0x0C, 0x4B, 0x00, 0xD6, 0xC1, 0x9B, 0x64, 0xAB, +0xFF, 0x6A, 0x01, 0xD6, 0x4C, 0xED, 0xDD, 0x67, +0x4C, 0xEC, 0x64, 0xCE, 0x3C, 0x25, 0x84, 0x33, +0x6D, 0xE6, 0xA0, 0xAB, 0x1F, 0xF7, 0x00, 0x6B, +0xAC, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, +0x26, 0x2B, 0x84, 0x32, 0x7D, 0x67, 0x49, 0xE3, +0xA0, 0xAA, 0x1F, 0xF7, 0x00, 0x6A, 0xAC, 0xEA, +0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x0B, 0x2A, +0x84, 0x34, 0xBD, 0x67, 0x91, 0xE5, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x58, 0x9A, 0x60, 0xAC, +0x4D, 0xE3, 0x40, 0xA3, 0x0B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x78, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x5C, 0x9A, 0x6D, 0xE5, +0x55, 0xE5, 0x40, 0xA5, 0xFF, 0x6C, 0x8C, 0xEA, +0x08, 0x6D, 0xAD, 0xEA, 0x3E, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF0, 0x9C, 0x9B, 0x91, 0xE5, +0x60, 0xA4, 0x08, 0x6D, 0x4C, 0xEB, 0xAD, 0xEB, +0x4C, 0xEB, 0x60, 0xC4, 0x34, 0x10, 0x84, 0x32, +0xDD, 0x67, 0x49, 0xE6, 0x60, 0xAA, 0x1F, 0xF7, +0x00, 0x6A, 0x6C, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x20, 0x2A, 0x84, 0x32, 0x7D, 0x67, +0x49, 0xE3, 0xA0, 0xAA, 0x1F, 0xF7, 0x00, 0x6A, +0xAC, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, +0x09, 0x2A, 0x84, 0x34, 0xBD, 0x67, 0x91, 0xE5, +0x30, 0xF0, 0x20, 0x6A, 0x60, 0xAC, 0xA3, 0xF0, +0x58, 0x9A, 0x10, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x5C, 0x9A, 0x6D, 0xE5, 0x55, 0xE5, +0x80, 0xA5, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x5C, 0x9A, 0x4D, 0xE3, 0x80, 0xA3, +0xF7, 0x6A, 0x8C, 0xEA, 0x40, 0xC3, 0x02, 0x63, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, +0x01, 0x74, 0xAC, 0xEA, 0x13, 0x60, 0x03, 0x24, +0x02, 0x74, 0x15, 0x60, 0x18, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, 0xC3, 0xF3, +0xAC, 0xA3, 0x01, 0x6C, 0x4C, 0xEC, 0x02, 0x6A, +0x4B, 0xEA, 0xAC, 0xEA, 0x8D, 0xEA, 0xC3, 0xF3, +0x4C, 0xC3, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x8A, 0xF1, 0x5F, 0xC3, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x0A, 0xF2, 0x58, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF0, 0x40, 0x9A, 0x60, 0xA2, +0x10, 0x6A, 0x6C, 0xEA, 0x1C, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xC3, 0xF3, +0x8C, 0xA2, 0xC3, 0xF3, 0xAF, 0xA2, 0x01, 0x6B, +0x8C, 0xEB, 0x7F, 0x6C, 0xAC, 0xEC, 0x7C, 0x33, +0x8D, 0xEB, 0xFF, 0x6C, 0x8C, 0xEB, 0x30, 0xF0, +0x20, 0x6C, 0xC3, 0xF0, 0x84, 0x9C, 0x60, 0xC4, +0x43, 0xF4, 0x68, 0xA2, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF0, 0x48, 0x9A, 0x60, 0xC2, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x48, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xA6, 0xF6, 0x17, 0x4C, 0x00, 0x6D, 0x07, 0x6E, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF0, 0x4C, 0x9A, +0x60, 0xA2, 0xFF, 0x6A, 0x6C, 0xEA, 0xFF, 0x72, +0x00, 0x6A, 0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF0, 0x50, 0x9A, 0x60, 0xA2, 0x07, 0x6A, +0x6C, 0xEA, 0x07, 0x6B, 0x6E, 0xEA, 0x01, 0x5A, +0x58, 0x67, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xEC, +0x01, 0x74, 0xAC, 0xEA, 0x03, 0x60, 0x02, 0x74, +0x09, 0x60, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x02, 0x6B, 0xC3, 0xF3, +0x76, 0xC2, 0x15, 0x10, 0x09, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xC0, 0xF0, +0x6E, 0xA2, 0xC3, 0xF3, 0x76, 0xC2, 0x05, 0x10, +0xFF, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xAA, 0xF1, +0x46, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0xC3, 0xF3, 0x76, 0xA2, 0xC3, 0xF3, +0x8C, 0xA2, 0xC3, 0xF3, 0x77, 0xC2, 0x40, 0x6B, +0x8D, 0xEB, 0xC3, 0xF3, 0x6C, 0xC2, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x1E, 0xC5, +0x01, 0x72, 0x11, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xC3, 0xF3, 0x8C, 0xA2, +0x04, 0x6B, 0x8C, 0xEB, 0x08, 0x2B, 0x43, 0xF4, +0x88, 0xA2, 0x05, 0x5C, 0x04, 0x60, 0x04, 0xF3, +0x64, 0xDA, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF4, 0x5C, 0x9A, 0xFF, 0x6B, 0x6C, 0xEC, +0x00, 0x6D, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, 0xC5, 0x67, +0xFF, 0x6C, 0x40, 0xEA, 0x01, 0x6C, 0x0C, 0x6D, +0x00, 0x18, 0xF3, 0xC4, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6D, 0xC6, 0xF5, 0x10, 0x4D, +0xC3, 0xF3, 0xCD, 0xA5, 0x04, 0x6B, 0xFF, 0x6A, +0xCC, 0xEB, 0x4C, 0xEB, 0x4C, 0xEC, 0x0C, 0x2B, +0x43, 0xF4, 0x6B, 0xA5, 0x09, 0x23, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF0, 0xB4, 0x9B, 0x60, 0xA5, +0x4C, 0xEB, 0x01, 0x4B, 0x4C, 0xEB, 0x60, 0xC5, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xC3, 0xF3, 0xAD, 0xA2, 0x04, 0x6B, 0xAC, 0xEB, +0x0C, 0x2B, 0x43, 0xF4, 0x4B, 0xA2, 0x09, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x5C, 0x9A, +0x03, 0x6D, 0x40, 0xEA, 0x01, 0x6C, 0x04, 0x6D, +0x08, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, +0x5C, 0x9A, 0x00, 0x6D, 0x40, 0xEA, 0x01, 0x6C, +0x0C, 0x6D, 0x00, 0x18, 0xF3, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, +0xFF, 0x6C, 0xC5, 0x67, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xFF, 0x69, 0xC6, 0xF5, 0x10, 0x48, 0x30, 0xF0, +0x20, 0x6A, 0x8C, 0xE9, 0x80, 0xF3, 0x5C, 0x9A, +0xE0, 0xF0, 0x88, 0xA0, 0x40, 0xEA, 0x01, 0x72, +0x25, 0x61, 0xC3, 0xF3, 0x6D, 0xA0, 0x09, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xC3, 0xF3, 0x4D, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, +0xFF, 0x6C, 0x6F, 0x6D, 0x2C, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x50, 0x9A, +0xA0, 0xF0, 0x8A, 0xA0, 0x01, 0x6D, 0x08, 0x6E, +0xF1, 0x67, 0x40, 0xEA, 0x01, 0x72, 0x0A, 0x61, +0xC3, 0xF3, 0x6D, 0xA0, 0x02, 0x6A, 0x01, 0x6C, +0x6D, 0xEA, 0x0E, 0x6D, 0xC3, 0xF3, 0x4D, 0xC0, +0x00, 0x18, 0xF3, 0xC4, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x2E, 0x6E, 0xFF, 0x6C, +0x6F, 0x6D, 0x40, 0xEA, 0x01, 0x6C, 0x02, 0x6D, +0x00, 0x18, 0xF3, 0xC4, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6F, +0xC6, 0xF5, 0x10, 0x4B, 0xC3, 0xF0, 0x18, 0x9F, +0xE0, 0xF0, 0xE0, 0x9B, 0xFF, 0x6A, 0x4C, 0xEC, +0x0C, 0xEF, 0x0E, 0xEF, 0x4C, 0xED, 0x4C, 0xEE, +0xA0, 0xF0, 0x02, 0x27, 0xC3, 0xF3, 0x0D, 0xA3, +0x20, 0x6F, 0x0C, 0xEF, 0x4C, 0xEF, 0x80, 0xF0, +0x17, 0x2F, 0xE0, 0xF0, 0x00, 0xA3, 0x01, 0x6F, +0xEC, 0xE8, 0x4C, 0xE8, 0x53, 0x28, 0xC3, 0xF3, +0x0C, 0xA3, 0x0C, 0xEF, 0x4C, 0xEF, 0x08, 0x27, +0xE3, 0xF3, 0x4A, 0xA3, 0x03, 0x4A, 0xE3, 0xF3, +0x45, 0xC3, 0xE3, 0xF3, 0x44, 0xC3, 0x08, 0x10, +0x06, 0x6F, 0xE3, 0xF3, 0xE5, 0xC3, 0x06, 0x4E, +0x05, 0x6F, 0xE3, 0xF3, 0xE4, 0xC3, 0x4C, 0xEE, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xE3, 0xF3, 0xE3, 0xA2, 0xE3, 0xF3, 0x64, 0xA2, +0xE3, 0xEB, 0x09, 0x61, 0xE3, 0xF3, 0x65, 0xA2, +0xC3, 0xF3, 0xD8, 0xC2, 0x71, 0xE4, 0xB7, 0xE4, +0xE3, 0xF3, 0xA6, 0xC2, 0x09, 0x10, 0xE3, 0xF3, +0x85, 0xA2, 0x77, 0xE5, 0xB9, 0xE6, 0x6F, 0xE4, +0xC3, 0xF3, 0xD8, 0xC2, 0xE3, 0xF3, 0x66, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xE3, 0xF3, 0x65, 0xA2, 0xE3, 0xF3, 0x86, 0xA2, +0x0A, 0x4B, 0x82, 0xEB, 0x02, 0x60, 0xE3, 0xF3, +0x66, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0xE3, 0xF3, 0x66, 0xA2, 0xC3, 0xF3, +0x98, 0xA2, 0x23, 0x4B, 0x82, 0xEB, 0x02, 0x60, +0xC3, 0xF3, 0x78, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xE3, 0xF3, 0x66, 0xA2, +0xE3, 0xF3, 0x60, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF0, 0x5C, 0x9A, 0x60, 0xA2, 0x07, 0x23, +0x60, 0xA2, 0xFF, 0x6A, 0x4C, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0xAA, 0xF1, 0x70, 0xCA, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xC0, 0xF0, +0x87, 0xA2, 0x18, 0x6B, 0x8C, 0xEB, 0x10, 0x73, +0x0C, 0x61, 0xE3, 0xF3, 0x6A, 0xA2, 0x03, 0x6C, +0x03, 0x4B, 0xE3, 0xF3, 0x66, 0xC2, 0xC0, 0xF0, +0x6A, 0xA2, 0x76, 0x33, 0x8C, 0xEB, 0xC3, 0xF3, +0x78, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, +0x40, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xAA, 0xF1, +0x90, 0xAC, 0xA0, 0xA2, 0xFF, 0x6B, 0x6C, 0xED, +0x8E, 0xED, 0x02, 0x25, 0x8C, 0xEB, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xC3, 0xF3, 0x8D, 0xA2, 0x41, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xC3, 0xF3, 0x6D, 0xC2, 0x04, 0x10, +0x40, 0x6A, 0x0D, 0xEA, 0xC3, 0xF3, 0x4D, 0xC3, +0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0x86, 0xF6, 0xB7, 0xA3, 0x04, 0x6B, 0xFF, 0x6A, +0xAC, 0xEB, 0x4C, 0xEB, 0x4C, 0xEC, 0x0C, 0x23, +0x7D, 0x67, 0x1E, 0x6A, 0x50, 0xC3, 0x01, 0x6A, +0x4F, 0xCB, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x5C, 0x9A, 0x92, 0xC3, 0x04, 0x04, 0x40, 0xEA, +0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x02, 0xF4, 0x68, 0x9A, +0x02, 0xF4, 0x08, 0x4A, 0xFF, 0x69, 0x04, 0xD3, +0x61, 0x9A, 0x44, 0xAA, 0x30, 0xF0, 0x20, 0x68, +0x05, 0xD3, 0x7D, 0x67, 0x2C, 0xEC, 0x4C, 0xCB, +0xC6, 0xF5, 0x10, 0x48, 0x30, 0xF0, 0x20, 0x6A, +0x08, 0xD4, 0x80, 0xF3, 0x5C, 0x9A, 0xE0, 0xF0, +0x88, 0xA0, 0x40, 0xEA, 0x01, 0x72, 0x3E, 0x61, +0xC0, 0xF0, 0x64, 0xA0, 0x7F, 0x6A, 0x6C, 0xEA, +0x2C, 0xEA, 0x38, 0x22, 0x08, 0x93, 0x64, 0x32, +0x7D, 0x67, 0x49, 0xE3, 0x68, 0xAA, 0x1F, 0xF7, +0x00, 0x6A, 0x6C, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x0C, 0x2A, 0x08, 0x93, 0x64, 0x32, +0x7D, 0x67, 0x49, 0xE3, 0x68, 0xAA, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x58, 0x9A, 0x49, 0xE3, +0x60, 0x9A, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x5C, 0x9A, 0x4D, 0xE3, 0x60, 0x9B, +0x04, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x16, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, 0x64, 0x9A, +0xFF, 0xF7, 0x1F, 0x6C, 0x40, 0xAB, 0x8C, 0xEA, +0x01, 0x4A, 0x8C, 0xEA, 0x40, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xE4, 0xF2, +0x7C, 0x9A, 0x01, 0x4B, 0xE4, 0xF2, 0x7C, 0xDA, +0x00, 0x6A, 0x01, 0x10, 0x01, 0x6A, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xFF, 0x6A, 0x4C, 0xEC, 0x52, 0x2C, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x43, 0xF4, +0x78, 0xA2, 0x2F, 0x23, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF0, 0x68, 0x9B, 0x80, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF0, 0x6C, 0x9B, 0x80, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0x70, 0x9B, +0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0x9A, +0xE3, 0xF0, 0x74, 0x9B, 0x4C, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF0, 0x58, 0x9A, 0x60, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, 0x5C, 0x9A, +0x01, 0x6B, 0x80, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF1, 0x40, 0x9A, 0x60, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF1, 0x44, 0x9A, 0x80, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0x48, 0x9A, +0x80, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0xE0, 0xF0, 0x95, 0xA2, 0x10, 0x6B, +0x8C, 0xEB, 0x03, 0x23, 0xFF, 0x6A, 0x01, 0x4A, +0x0A, 0x10, 0xE0, 0xF0, 0x72, 0xA2, 0x02, 0x6A, +0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x4B, 0xEA, +0xC0, 0xF7, 0x42, 0x32, 0x4C, 0x32, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF1, 0x6C, 0x9B, 0x40, 0xDB, +0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, +0x90, 0x9B, 0x02, 0x6D, 0x60, 0xA4, 0x4C, 0xEB, +0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0x67, 0xC6, 0xF5, 0x10, 0x4A, +0x43, 0xF4, 0x98, 0xA2, 0x37, 0x24, 0xC6, 0xF5, +0x90, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, +0x68, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x81, 0x9A, 0xE3, 0xF0, 0x6C, 0x9B, 0x80, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x82, 0x9A, 0xE3, 0xF0, +0x70, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0x9A, 0xE3, 0xF0, 0x78, 0x9B, 0x80, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x84, 0x9A, 0xE3, 0xF0, +0x7C, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x94, 0x9A, 0x03, 0xF1, 0x6C, 0x9B, 0x80, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x95, 0x9A, 0x03, 0xF1, +0x60, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x96, 0x9A, 0x03, 0xF1, 0x64, 0x9B, 0x80, 0xDB, +0x72, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, +0x48, 0x9A, 0x05, 0x10, 0x74, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF1, 0x4C, 0x9A, 0x60, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF1, 0x54, 0x9A, 0x80, 0xA2, 0xFF, 0x6A, +0x4C, 0xEC, 0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF1, 0x98, 0x9B, 0x07, 0x10, 0x02, 0x6B, +0x8C, 0xEB, 0x0A, 0x23, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF1, 0x9C, 0x9B, 0x60, 0xA4, 0x4C, 0xEB, +0x01, 0x4B, 0x4C, 0xEB, 0x60, 0xC4, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, 0x60, 0x9A, +0xFF, 0xF7, 0x1F, 0x6C, 0x40, 0xAB, 0x8C, 0xEA, +0x01, 0x4A, 0x8C, 0xEA, 0x40, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF1, 0x54, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x8A, 0xF3, 0xA0, 0x9B, 0xE0, 0xF2, 0x40, 0x9A, +0x38, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF1, 0x64, 0x9A, 0xFF, 0x6C, 0x10, 0x6D, +0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xC3, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x00, 0x6A, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, +0x58, 0x9A, 0x23, 0xF1, 0xC8, 0x9B, 0x30, 0xF0, +0x21, 0x6D, 0x00, 0x6C, 0xF3, 0xF3, 0x10, 0x4D, +0x20, 0x6F, 0x40, 0xEA, 0x0A, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x04, 0xF3, +0x68, 0x9A, 0x04, 0x6C, 0x8D, 0xEB, 0x04, 0xF3, +0x68, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x05, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x2A, 0xF2, 0x2B, 0xA2, 0x34, 0x10, +0x80, 0xF3, 0x4E, 0x41, 0x4C, 0x32, 0x09, 0xE2, +0xC2, 0x9A, 0x2C, 0x32, 0x09, 0xE2, 0x63, 0xF4, +0xFC, 0x9A, 0x06, 0xD2, 0x00, 0x6A, 0x63, 0xF4, +0xAC, 0x98, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x21, 0x6B, 0xE0, 0xF2, +0x58, 0x9A, 0x10, 0xF6, 0x10, 0x4B, 0x00, 0x6C, +0xB5, 0xE3, 0x40, 0xEA, 0x01, 0x72, 0x09, 0x61, +0x06, 0x92, 0x63, 0xF4, 0x7C, 0x9A, 0x63, 0xF4, +0x4C, 0x98, 0x49, 0xE3, 0x63, 0xF4, 0x4C, 0xD8, +0x06, 0x10, 0x04, 0xF3, 0x48, 0x98, 0x04, 0x6B, +0x6D, 0xEA, 0x04, 0xF3, 0x48, 0xD8, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x05, 0x6C, +0x01, 0x49, 0x40, 0xEA, 0xFF, 0x6A, 0x4C, 0xE9, +0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, +0x43, 0xF4, 0x5B, 0xA0, 0x01, 0x4A, 0x42, 0xE9, +0xC3, 0x61, 0x43, 0xF4, 0x3B, 0xC0, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, 0x6C, 0x9A, +0xFF, 0x6C, 0x02, 0x6D, 0x40, 0xA3, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x69, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0xCA, 0xF2, +0x08, 0x48, 0x8A, 0xF3, 0x00, 0x49, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xA8, 0xC1, 0x98, 0xC0, 0xF3, +0x44, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x08, 0x48, +0x40, 0xEA, 0x2A, 0xE8, 0xF4, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x2A, 0xF2, 0x2B, 0xA2, 0x35, 0x10, +0x80, 0xF3, 0x4E, 0x41, 0x4C, 0x32, 0x09, 0xE2, +0xC2, 0x9A, 0x2C, 0x32, 0x09, 0xE2, 0x63, 0xF4, +0xFC, 0x9A, 0x06, 0xD2, 0x00, 0x6A, 0x63, 0xF4, +0xAC, 0x98, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x21, 0x6B, 0xE0, 0xF2, +0x58, 0x9A, 0x10, 0xF6, 0x10, 0x4B, 0x00, 0x6C, +0xB5, 0xE3, 0x40, 0xEA, 0x01, 0x72, 0x12, 0x61, +0x06, 0x92, 0x05, 0x6C, 0x01, 0x49, 0x63, 0xF4, +0x7C, 0x9A, 0x63, 0xF4, 0x4C, 0x98, 0x49, 0xE3, +0x63, 0xF4, 0x4C, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x40, 0xEA, 0xFF, 0x6A, +0x4C, 0xE9, 0x07, 0x10, 0x04, 0xF3, 0x48, 0x98, +0x10, 0x6B, 0x6D, 0xEA, 0x04, 0xF3, 0x48, 0xD8, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, +0x10, 0x48, 0x43, 0xF4, 0x5B, 0xA0, 0x07, 0x4A, +0x42, 0xE9, 0xC2, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x68, 0x2A, 0xF2, 0x2B, 0xC2, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, +0xB1, 0x67, 0xE3, 0xF6, 0x08, 0x6C, 0x03, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF1, 0xD0, 0x9B, 0xB1, 0x67, +0x01, 0xF4, 0x0C, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF1, 0x34, 0x9A, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xD1, 0x67, 0x83, 0xF5, 0x14, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, +0x58, 0x9A, 0x45, 0xE1, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF1, 0x5C, 0x9A, 0x2E, 0xEA, 0xEB, 0x2A, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF1, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x01, 0xF4, +0x0C, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xE3, 0xF6, 0x08, 0x6C, +0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x69, 0xA2, +0x01, 0x6A, 0x00, 0x68, 0x6C, 0xEA, 0x11, 0x2A, +0x31, 0x10, 0x18, 0x6D, 0xB8, 0xE8, 0x49, 0xE0, +0xE4, 0xF2, 0x90, 0xA2, 0x30, 0xF0, 0x20, 0x6B, +0x8A, 0xF3, 0x04, 0x4B, 0x01, 0x48, 0x12, 0xED, +0xB5, 0xE3, 0x00, 0x18, 0x22, 0xC4, 0xFF, 0x6A, +0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0xE4, 0xF2, 0x6C, 0xA2, 0x63, 0xE8, +0xE8, 0x61, 0xE0, 0xF0, 0x8E, 0xA2, 0x01, 0x6B, +0x8C, 0xEB, 0x14, 0x23, 0xE0, 0xF0, 0x75, 0xA2, +0x08, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, +0x0D, 0x22, 0x30, 0xF0, 0x20, 0x68, 0x4A, 0xF4, +0x04, 0x48, 0x00, 0x69, 0x91, 0x67, 0xB0, 0x67, +0x01, 0x49, 0x00, 0x18, 0x22, 0xC4, 0x04, 0x71, +0x18, 0x48, 0xF8, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xC0, 0xF0, 0x99, 0xA2, +0x02, 0x6B, 0x8C, 0xEB, 0x35, 0x23, 0xE4, 0xF2, +0x89, 0xA2, 0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF0, +0x07, 0x4A, 0x00, 0x6B, 0x29, 0x10, 0xFF, 0xF7, +0xDF, 0xA2, 0xA0, 0xA2, 0xC0, 0x36, 0xC0, 0x36, +0x00, 0xF6, 0xA0, 0x35, 0xCD, 0xED, 0xFF, 0xF7, +0xDD, 0xA2, 0xCD, 0xED, 0xFF, 0xF7, 0xDE, 0xA2, +0xC0, 0x36, 0xCD, 0xED, 0x30, 0xF0, 0x20, 0x6E, +0x43, 0xF1, 0xC4, 0x9E, 0xA0, 0xDE, 0xA2, 0xA2, +0xC1, 0xA2, 0x06, 0x4A, 0xA0, 0x35, 0xCD, 0xED, +0x1F, 0x6E, 0x6C, 0xEE, 0x00, 0xF6, 0xC0, 0x36, +0xCD, 0xED, 0x30, 0xF0, 0x20, 0x6E, 0x43, 0xF1, +0xC8, 0x9E, 0x01, 0x4B, 0xCD, 0xED, 0x30, 0xF0, +0x20, 0x6E, 0x43, 0xF1, 0xCC, 0x9E, 0xA0, 0xDE, +0xFF, 0x6D, 0x6C, 0xED, 0x83, 0xED, 0xD3, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xC0, 0xF0, 0x99, 0xA2, 0x04, 0x6B, 0x8C, 0xEB, +0x1C, 0x23, 0xE0, 0xF0, 0x6E, 0xA2, 0x03, 0x6A, +0x00, 0x68, 0x6C, 0xEA, 0x03, 0x72, 0x15, 0x61, +0x0E, 0x10, 0x14, 0x6D, 0xB8, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0xAA, 0xF4, 0x04, 0x4A, 0x90, 0x67, +0x01, 0x48, 0x12, 0xED, 0xB5, 0xE2, 0x00, 0x18, +0x53, 0xC4, 0xFF, 0x6A, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0xAB, 0xF0, 0x5A, 0xA2, 0x43, 0xE8, +0xEC, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x6A, 0xF6, +0x04, 0x48, 0x00, 0x69, 0x91, 0x67, 0xB0, 0x67, +0x01, 0x49, 0x00, 0x18, 0x82, 0xC4, 0x40, 0x71, +0x08, 0x48, 0xF8, 0x61, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x86, 0xF6, 0x74, 0xA2, 0x7F, 0x6A, 0x6C, 0xEA, +0x01, 0x5A, 0x58, 0x67, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x69, 0x80, 0xF2, 0x48, 0x99, +0x30, 0xF0, 0x20, 0x6C, 0xA6, 0xF6, 0x02, 0x4C, +0x00, 0x6D, 0x07, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x68, 0x80, 0xF2, 0x48, 0x99, 0x90, 0x67, +0xE6, 0xF3, 0x08, 0x4C, 0x00, 0x6D, 0x24, 0x6E, +0x40, 0xEA, 0xE6, 0xF3, 0x48, 0xA0, 0x07, 0x97, +0x06, 0x91, 0x01, 0x4A, 0xE6, 0xF3, 0x48, 0xC0, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x42, 0xA2, +0x01, 0x6B, 0x46, 0x32, 0x6C, 0xEA, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x62, 0xA2, +0x01, 0x6A, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x42, 0xA2, +0xFF, 0x6B, 0x56, 0x32, 0x8E, 0xEA, 0x6C, 0xEA, +0x01, 0x5A, 0x58, 0x67, 0x6C, 0xEA, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0xBE, 0xC7, +0x00, 0x6B, 0x06, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x2A, 0xF2, 0x67, 0xA2, 0x01, 0x6A, 0x4C, 0xEB, +0x05, 0x97, 0x43, 0x67, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x00, 0x18, 0x1E, 0xC5, 0x01, 0x72, 0x3F, 0x61, +0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, +0xC3, 0xF3, 0x71, 0xA0, 0x03, 0x69, 0x43, 0x67, +0x2C, 0xEA, 0x35, 0x2A, 0x43, 0xF4, 0x48, 0xA0, +0x32, 0x2A, 0x04, 0x6A, 0x6C, 0xEA, 0x2F, 0x2A, +0x10, 0x6A, 0x6C, 0xEA, 0x2C, 0x2A, 0xC3, 0xF3, +0x6C, 0xA0, 0x20, 0x6A, 0x6C, 0xEA, 0x27, 0x22, +0xA3, 0xF3, 0x58, 0xA0, 0x24, 0x2A, 0x00, 0x18, +0xC8, 0xC7, 0x21, 0x2A, 0x44, 0xF3, 0x50, 0xA0, +0x4C, 0xE9, 0x03, 0x71, 0x1C, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF1, 0x50, 0x9A, 0x60, 0xA2, +0x02, 0x6A, 0x6C, 0xEA, 0x14, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF1, 0x70, 0x9A, 0x01, 0x6A, +0x80, 0xA3, 0x8C, 0xEA, 0x05, 0x22, 0x60, 0xA3, +0xFC, 0x6A, 0x6C, 0xEA, 0x80, 0x72, 0x07, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF1, 0x44, 0xA2, +0x01, 0x5A, 0x58, 0x67, 0x01, 0x10, 0x00, 0x6A, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x10, 0x4B, 0xC0, 0xF0, 0x92, 0xA3, +0x04, 0x6A, 0x8C, 0xEA, 0x0C, 0x22, 0xC0, 0xF0, +0x53, 0xA3, 0x09, 0x22, 0xC0, 0xF0, 0x54, 0xA3, +0x06, 0x22, 0xC0, 0xF0, 0x75, 0xA3, 0x00, 0x6A, +0x03, 0x23, 0x01, 0x6A, 0x20, 0xE8, 0x00, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0x32, 0x6B, 0xAC, 0xEA, 0xBD, 0x67, 0x70, 0xC5, +0x02, 0x5C, 0x02, 0x6B, 0x6F, 0xCD, 0x92, 0xC5, +0x02, 0x60, 0x53, 0xC5, 0x04, 0x10, 0x01, 0x6A, +0x4B, 0xEA, 0x7D, 0x67, 0x53, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, +0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, 0xC3, 0xF3, +0xAD, 0xA0, 0x08, 0x6B, 0xFF, 0x6A, 0xAC, 0xEB, +0x4C, 0xEB, 0x4C, 0xEC, 0x0C, 0x2B, 0x01, 0x6C, +0x0C, 0x6D, 0x00, 0x18, 0xF3, 0xC4, 0x43, 0xF4, +0x4B, 0xA0, 0x0F, 0x22, 0x00, 0x6C, 0xA4, 0x67, +0x00, 0x18, 0x04, 0xC8, 0x0A, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x40, 0xF4, 0x5C, 0x9A, 0x01, 0x6D, +0x40, 0xEA, 0x01, 0x6C, 0x04, 0x6D, 0x00, 0x18, +0xF3, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0x00, 0x6D, 0xFF, 0x6C, 0xC5, 0x67, +0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x6C, 0x00, 0x18, 0xAF, 0xD5, 0x05, 0x97, +0x30, 0xF0, 0x20, 0x6B, 0xE6, 0xF3, 0x08, 0x4B, +0x00, 0x6C, 0x86, 0xDB, 0x87, 0xDB, 0x44, 0xDB, +0x45, 0xDB, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF3, 0x08, 0x4A, +0x00, 0x6B, 0xFF, 0x69, 0x68, 0xC2, 0x8C, 0xE9, +0x00, 0x18, 0xF7, 0xC7, 0x28, 0x22, 0x30, 0xF0, +0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, 0xC0, 0xF0, +0x53, 0xA0, 0xC0, 0xF0, 0x74, 0xA0, 0x58, 0xEB, +0x12, 0xEA, 0x43, 0xF4, 0x55, 0xC0, 0x00, 0x18, +0xA3, 0xC7, 0x03, 0x22, 0x43, 0xF4, 0x15, 0xA0, +0x05, 0x10, 0xC0, 0xF0, 0x54, 0xA0, 0x01, 0x72, +0x12, 0x61, 0x01, 0x68, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0x58, 0x2A, 0xF2, 0x06, 0xC2, 0x08, 0x61, +0x91, 0x67, 0x00, 0x18, 0xE2, 0xDB, 0x91, 0x67, +0xB0, 0x67, 0x00, 0x18, 0x1E, 0xE0, 0x03, 0x10, +0x91, 0x67, 0x00, 0x18, 0xF3, 0xDB, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0xAC, 0xEA, 0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xE6, 0xF3, 0x08, 0x4A, 0x6A, 0xA2, 0x01, 0x4B, +0x6A, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0x2A, 0xF2, +0x66, 0xA3, 0x01, 0x73, 0x0E, 0x61, 0x1B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF3, 0x08, 0x4A, +0x69, 0xA2, 0x01, 0x4B, 0x69, 0xC2, 0x30, 0xF0, +0x20, 0x6B, 0x2A, 0xF2, 0x66, 0xA3, 0x01, 0x73, +0x0E, 0x61, 0x68, 0xA2, 0x01, 0x4B, 0x68, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF3, 0x50, 0xA2, +0x0A, 0x5A, 0x00, 0x6A, 0x05, 0x61, 0x00, 0x18, +0x34, 0xC8, 0x00, 0x6A, 0x01, 0x10, 0x01, 0x6A, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0xFF, 0x6A, +0x4C, 0xEC, 0x12, 0x2C, 0x10, 0xF0, 0x23, 0x6C, +0xC6, 0xF5, 0x01, 0x4C, 0x00, 0x18, 0x72, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x43, 0xF4, 0x97, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0x43, 0xF4, 0x77, 0xC2, 0x29, 0x10, +0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, +0xC0, 0xF0, 0x92, 0xA0, 0x04, 0x6B, 0x8C, 0xEB, +0x4C, 0xEB, 0x1F, 0x23, 0x30, 0xF0, 0x20, 0x6A, +0xE6, 0xF3, 0x08, 0x4A, 0x66, 0xA2, 0xC0, 0xF0, +0xD5, 0xA0, 0x10, 0xF0, 0x23, 0x6C, 0x01, 0x4B, +0x66, 0xC2, 0x0A, 0x6B, 0x78, 0xEE, 0x00, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x4C, 0x9A, 0xC6, 0xF5, 0x01, 0x4C, 0x00, 0x6D, +0x01, 0x6F, 0x12, 0xEE, 0x40, 0xEA, 0x43, 0xF4, +0x77, 0xA0, 0x01, 0x6A, 0x6D, 0xEA, 0x43, 0xF4, +0x57, 0xC0, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0xEC, 0x49, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF1, 0x74, 0x9A, 0xFF, 0xF7, 0x1F, 0x6A, +0x80, 0xAB, 0x8C, 0xEA, 0x02, 0xF4, 0x03, 0x6C, +0x4C, 0xEC, 0x80, 0xCB, 0x40, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0x2A, 0xF2, 0x2B, 0xA2, 0x35, 0x10, +0x80, 0xF3, 0x4E, 0x41, 0x4C, 0x32, 0x09, 0xE2, +0xC2, 0x9A, 0x2C, 0x32, 0x09, 0xE2, 0x63, 0xF4, +0xFC, 0x9A, 0x06, 0xD2, 0x00, 0x6A, 0x63, 0xF4, +0xAC, 0x98, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x21, 0x6B, 0xE0, 0xF2, +0x58, 0x9A, 0x10, 0xF6, 0x10, 0x4B, 0x00, 0x6C, +0xB5, 0xE3, 0x40, 0xEA, 0x01, 0x72, 0x12, 0x61, +0x06, 0x92, 0x05, 0x6C, 0x01, 0x49, 0x63, 0xF4, +0x7C, 0x9A, 0x63, 0xF4, 0x4C, 0x98, 0x49, 0xE3, +0x63, 0xF4, 0x4C, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x40, 0xEA, 0xFF, 0x6A, +0x4C, 0xE9, 0x07, 0x10, 0x04, 0xF3, 0x48, 0x98, +0x08, 0x6B, 0x6D, 0xEA, 0x04, 0xF3, 0x48, 0xD8, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, +0x10, 0x48, 0x43, 0xF4, 0x5B, 0xA0, 0x08, 0x4A, +0x42, 0xE9, 0xC2, 0x61, 0x30, 0xF0, 0x20, 0x68, +0xC6, 0xF5, 0x10, 0x48, 0x43, 0xF4, 0x3B, 0xC0, +0x00, 0x18, 0xD6, 0xD1, 0x01, 0x2A, 0xFF, 0x17, +0x00, 0x18, 0xAB, 0xC6, 0xC4, 0xF2, 0x84, 0xA8, +0xFF, 0xF7, 0x1F, 0x6A, 0x00, 0x6D, 0xFF, 0x4C, +0x4C, 0xEC, 0x00, 0x18, 0x9B, 0xDF, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF1, 0x78, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x83, 0xF0, 0x8C, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF1, 0x5C, 0x9A, 0x04, 0x6C, 0x60, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, 0x40, 0x9A, +0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, +0x64, 0x9A, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF2, 0x68, 0x98, +0x63, 0xF1, 0x48, 0x9A, 0x60, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0xC4, 0xF2, 0x6C, 0x98, 0x63, 0xF1, +0x4C, 0x9A, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x50, 0x9A, 0x00, 0x6B, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF2, 0x64, 0xA0, +0x63, 0xF1, 0x54, 0x9A, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xE4, 0xF2, 0x65, 0xA0, 0x63, 0xF1, +0x58, 0x9A, 0x60, 0xC2, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6B, 0x8C, 0xEB, 0x01, 0x6A, 0x60, 0x2B, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, 0x5C, 0x9A, +0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, +0x40, 0x9A, 0x4C, 0xEB, 0x00, 0x6A, 0x54, 0x23, +0x30, 0xF0, 0x20, 0x6A, 0x2A, 0xF2, 0x48, 0xA2, +0x01, 0x72, 0x02, 0x61, 0x00, 0x18, 0x95, 0xC6, +0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, +0x01, 0x6C, 0x00, 0x18, 0x5A, 0xDF, 0x43, 0xF4, +0x5A, 0xA0, 0x00, 0x69, 0x43, 0xF4, 0x5B, 0xC0, +0x63, 0xF4, 0x48, 0x98, 0x63, 0xF4, 0x28, 0xD8, +0x63, 0xF4, 0x4C, 0xD8, 0x00, 0x6A, 0x43, 0xF4, +0x5A, 0xC0, 0x00, 0x18, 0xB8, 0xC6, 0x00, 0x18, +0x93, 0xC8, 0x00, 0x18, 0xF0, 0xC6, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF4, 0xA4, 0x98, 0x43, 0xF4, +0xDC, 0x98, 0x63, 0xF4, 0xE0, 0x98, 0xE0, 0xF2, +0x58, 0x9A, 0x04, 0xD1, 0x05, 0xD1, 0x91, 0x67, +0x40, 0xEA, 0x01, 0x72, 0x06, 0x60, 0x04, 0xF3, +0x48, 0x98, 0x20, 0x6B, 0x6D, 0xEA, 0x04, 0xF3, +0x48, 0xD8, 0x00, 0x18, 0x48, 0xC7, 0x01, 0x6C, +0x00, 0x18, 0x42, 0xC6, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x83, 0xF1, 0x84, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x00, 0x6B, 0x43, 0xF4, 0x7A, 0xC2, +0x00, 0x6B, 0x63, 0xF4, 0x68, 0xDA, 0x01, 0x6A, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, +0x00, 0x18, 0xAB, 0xD2, 0x01, 0xE2, 0x30, 0xF0, +0x20, 0x6B, 0x1C, 0x30, 0x83, 0xF1, 0x08, 0x4B, +0x60, 0x9B, 0x04, 0xD0, 0xB0, 0x67, 0x30, 0xF0, +0x20, 0x68, 0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, +0x20, 0x69, 0x6E, 0xF7, 0x06, 0x49, 0x30, 0x4D, +0x75, 0xE5, 0x91, 0x67, 0x02, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6E, 0x04, 0x95, 0x83, 0xF1, +0x08, 0x4E, 0xC0, 0x9E, 0x80, 0xF2, 0x4C, 0x98, +0x87, 0x41, 0x32, 0x4D, 0xD5, 0xE5, 0x10, 0x4C, +0x02, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x04, 0x95, 0x83, 0xF1, 0x08, 0x4B, 0x60, 0x9B, +0x80, 0xF2, 0x4C, 0x98, 0x34, 0x4D, 0x30, 0xF0, +0x20, 0x6C, 0x75, 0xE5, 0x2F, 0xF0, 0x00, 0x4C, +0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x04, 0x96, 0x83, 0xF1, 0x08, 0x4B, 0x60, 0x9B, +0x80, 0xF2, 0x4C, 0x98, 0x38, 0x4E, 0x87, 0x41, +0x75, 0xE6, 0x04, 0xD6, 0x13, 0x4C, 0xA0, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0x96, +0x83, 0xF1, 0xAC, 0x9B, 0x80, 0xF2, 0x4C, 0x98, +0x87, 0x41, 0xB5, 0xE6, 0x0B, 0x4C, 0x01, 0x6E, +0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, 0x00, 0x18, +0xAB, 0xD2, 0x01, 0xE2, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0xB0, 0x9A, 0x1C, 0x30, 0x30, 0xF0, +0x20, 0x6C, 0xB5, 0xE0, 0xAB, 0xF0, 0x18, 0x4C, +0x10, 0x6E, 0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xE4, 0xF2, 0x6D, 0xA2, +0x7C, 0x33, 0x63, 0xF4, 0x60, 0xDA, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xDD, 0x63, 0x45, 0x62, 0x44, 0xD1, 0x43, 0xD0, +0x30, 0xF0, 0x20, 0x6D, 0x1D, 0x00, 0x90, 0x67, +0x82, 0xF3, 0x08, 0x4D, 0x80, 0x6E, 0x00, 0x18, +0xD2, 0xD2, 0x30, 0xF0, 0x20, 0x6D, 0x06, 0x04, +0x22, 0xF3, 0x0C, 0x4D, 0x5C, 0x6E, 0x00, 0x18, +0xD2, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xB0, 0x67, +0x4A, 0xF2, 0x08, 0x4C, 0x80, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x00, 0x6B, 0x43, 0xF4, 0x7A, 0xC2, 0x00, 0x6B, +0x63, 0xF4, 0x68, 0xDA, 0x3E, 0x02, 0x1E, 0x00, +0x40, 0xD2, 0x23, 0x67, 0x00, 0x6A, 0xFF, 0xF7, +0xBC, 0x98, 0xE0, 0x98, 0x04, 0xD2, 0x05, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x21, 0x6E, +0xE0, 0xF2, 0x58, 0x9A, 0x10, 0xF6, 0x10, 0x4E, +0x00, 0x6C, 0x39, 0xE6, 0x40, 0xEA, 0x0A, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x04, 0xF3, 0x68, 0x9A, 0x01, 0x6C, 0x8D, 0xEB, +0x04, 0xF3, 0x68, 0xDA, 0x40, 0x98, 0x14, 0x6C, +0x08, 0x48, 0x3E, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x40, 0xEA, 0x40, 0x92, +0x4A, 0xE8, 0x03, 0x60, 0x3E, 0x92, 0x45, 0xE1, +0xD5, 0x17, 0x30, 0xF0, 0x20, 0x68, 0x1D, 0x02, +0x06, 0x01, 0xCA, 0xF2, 0x08, 0x48, 0x41, 0xD2, +0x40, 0x99, 0xFF, 0xF7, 0x1F, 0x6C, 0x01, 0x6D, +0x40, 0xD8, 0x4C, 0xEC, 0xAB, 0xED, 0x80, 0x18, +0x6E, 0x3C, 0x41, 0xD8, 0x41, 0x92, 0x04, 0x49, +0x08, 0x48, 0x4A, 0xE9, 0x58, 0x67, 0x3E, 0xD2, +0xEF, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF2, +0x54, 0x9A, 0x38, 0x6C, 0x30, 0xF0, 0x20, 0x68, +0x40, 0xEA, 0xC6, 0xF5, 0x10, 0x48, 0xA3, 0xF5, +0x50, 0xD8, 0x00, 0x18, 0xAB, 0xD2, 0xC4, 0xF2, +0x44, 0xC8, 0xC4, 0xF2, 0xA4, 0xA8, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x48, 0x9A, 0x63, 0xF4, +0xE0, 0x98, 0xBC, 0x35, 0x30, 0xF0, 0x21, 0x6E, +0x55, 0xE5, 0x13, 0xF4, 0x10, 0x4E, 0x84, 0xF5, +0x01, 0x5F, 0x43, 0xF4, 0xBC, 0xD8, 0x63, 0xF4, +0xC4, 0xD8, 0x1F, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x54, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF1, 0x60, 0x9B, 0xC0, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x58, 0x9A, 0x01, 0x6D, +0xE0, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, +0x9C, 0x9A, 0x40, 0x9C, 0x6D, 0xEA, 0x40, 0xDC, +0xA3, 0xF3, 0x5C, 0x98, 0x04, 0x6C, 0x6D, 0xEA, +0xA3, 0xF3, 0x5C, 0xD8, 0x80, 0x18, 0x4E, 0x16, +0xFF, 0x17, 0x3E, 0x91, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF2, 0x58, 0x9A, 0x04, 0xD1, 0x05, 0xD1, +0x00, 0x6C, 0x40, 0xEA, 0x06, 0x2A, 0x04, 0xF3, +0x48, 0x98, 0x02, 0x6B, 0x6D, 0xEA, 0x04, 0xF3, +0x48, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x69, 0xA2, 0x01, 0x6A, 0x00, 0x68, 0x6C, 0xEA, +0x11, 0x2A, 0x18, 0x10, 0x18, 0x6D, 0xB8, 0xE8, +0x49, 0xE0, 0xE4, 0xF2, 0x90, 0xA2, 0x30, 0xF0, +0x20, 0x6B, 0x8A, 0xF3, 0x04, 0x4B, 0x01, 0x48, +0x12, 0xED, 0xB5, 0xE3, 0x00, 0x18, 0x0A, 0xC4, +0xFF, 0x6A, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xE4, 0xF2, 0x6C, 0xA2, +0x63, 0xE8, 0xE8, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x43, 0xF4, 0x78, 0xA2, +0x12, 0x23, 0xC0, 0xF0, 0x79, 0xA2, 0x01, 0x6A, +0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x68, +0x4A, 0xF4, 0x04, 0x48, 0x00, 0x69, 0x91, 0x67, +0xB0, 0x67, 0x01, 0x49, 0x00, 0x18, 0x0A, 0xC4, +0x04, 0x71, 0x18, 0x48, 0xF8, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xC0, 0xF0, +0x99, 0xA2, 0x02, 0x6B, 0x8C, 0xEB, 0x49, 0x23, +0xE4, 0xF2, 0xC9, 0xA2, 0x00, 0x6C, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF0, 0x04, 0x4A, 0x01, 0x6B, +0xA4, 0x67, 0x3B, 0x10, 0x30, 0xF0, 0x20, 0x68, +0x83, 0xF0, 0x0C, 0x98, 0x1F, 0x6F, 0x8C, 0xEF, +0x00, 0xF6, 0xE0, 0x37, 0x0D, 0xEF, 0x30, 0xF0, +0x20, 0x68, 0x43, 0xF1, 0x0C, 0x98, 0xE0, 0xD8, +0x30, 0xF0, 0x20, 0x6F, 0x43, 0xF1, 0xEC, 0x9F, +0xE0, 0x9F, 0x00, 0x57, 0x0B, 0x60, 0xFF, 0x68, +0x01, 0x4B, 0x0A, 0x6F, 0x0C, 0xEB, 0xFB, 0xEB, +0x01, 0x2F, 0xE5, 0xE8, 0x10, 0xEF, 0x0C, 0xEF, +0xEF, 0x2F, 0x19, 0x25, 0x30, 0xF0, 0x20, 0x6D, +0x43, 0xF1, 0xA4, 0x9D, 0xA0, 0x9D, 0xA2, 0x37, +0xA0, 0xC2, 0x00, 0xF6, 0xA2, 0x35, 0xA3, 0xC2, +0x30, 0xF0, 0x20, 0x6D, 0x43, 0xF1, 0xAC, 0x9D, +0xE1, 0xC2, 0xE2, 0x37, 0xE2, 0xC2, 0xE0, 0xAD, +0xFF, 0xF7, 0x1F, 0x6D, 0xEC, 0xED, 0xA4, 0xC2, +0xA2, 0x35, 0xA5, 0xC2, 0x01, 0x6D, 0x01, 0x4C, +0x06, 0x4A, 0xFF, 0x6F, 0x8C, 0xEF, 0xC3, 0xEF, +0xC1, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0xC0, 0xF0, 0x99, 0xA2, 0x04, 0x6B, +0x8C, 0xEB, 0x1C, 0x23, 0xE0, 0xF0, 0x6E, 0xA2, +0x03, 0x6A, 0x00, 0x68, 0x6C, 0xEA, 0x03, 0x72, +0x15, 0x61, 0x0E, 0x10, 0x14, 0x6D, 0xB8, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0xAA, 0xF4, 0x04, 0x4A, +0x90, 0x67, 0x01, 0x48, 0x12, 0xED, 0xB5, 0xE2, +0x00, 0x18, 0x3A, 0xC4, 0xFF, 0x6A, 0x4C, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0xAB, 0xF0, 0x5A, 0xA2, +0x43, 0xE8, 0xEC, 0x61, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x08, 0x6E, 0x03, 0xF3, +0x00, 0x6C, 0x0F, 0x6D, 0x40, 0xEA, 0x01, 0x6D, +0x23, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x30, 0xF0, +0x20, 0x69, 0x80, 0x18, 0x6E, 0x3C, 0xC6, 0xF5, +0x10, 0x49, 0xC4, 0xF2, 0x5C, 0xD9, 0xC0, 0xF3, +0x44, 0x98, 0x0A, 0x6E, 0x03, 0xF3, 0x00, 0x6C, +0x0F, 0x6D, 0x40, 0xEA, 0x01, 0x6D, 0x23, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x80, 0x18, 0x6E, 0x3C, +0xE4, 0xF2, 0x40, 0xD9, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x08, 0x6E, +0x40, 0xEA, 0x00, 0x18, 0xD6, 0xD1, 0x45, 0x97, +0x44, 0x91, 0x43, 0x90, 0x23, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x00, 0x6A, 0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, +0x58, 0x9A, 0x23, 0xF1, 0xA8, 0x9B, 0x30, 0xF0, +0x21, 0x6E, 0x00, 0x6C, 0xF3, 0xF3, 0x10, 0x4E, +0x20, 0x6F, 0x40, 0xEA, 0x0A, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x04, 0xF3, +0x68, 0x9A, 0x01, 0x6C, 0x8D, 0xEB, 0x04, 0xF3, +0x68, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x14, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x43, 0xF4, +0x79, 0xA2, 0x05, 0x23, 0x00, 0x6B, 0x43, 0xF4, +0x79, 0xC2, 0x00, 0x18, 0x62, 0xC9, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF1, 0x6C, 0x9A, 0xFD, 0x6A, +0x30, 0xF0, 0x20, 0x68, 0x80, 0xA3, 0x6A, 0xF6, +0x04, 0x48, 0x00, 0x69, 0x8C, 0xEA, 0x40, 0xC3, +0x00, 0x6C, 0x00, 0x18, 0x42, 0xC6, 0x00, 0x6C, +0x00, 0x18, 0x5A, 0xDF, 0x91, 0x67, 0xB0, 0x67, +0x01, 0x49, 0x00, 0x18, 0x6C, 0xC4, 0x40, 0x71, +0x08, 0x48, 0xF8, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x48, 0x9A, 0x60, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xC4, 0xF2, +0x68, 0xDA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, +0x6C, 0x9B, 0x60, 0x9B, 0xC4, 0xF2, 0x6C, 0xDA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0x64, 0x9B, +0x60, 0x9B, 0xC4, 0xF2, 0x70, 0xDA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF1, 0x68, 0x9B, 0x60, 0x9B, +0xC4, 0xF2, 0x74, 0xDA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF1, 0x6C, 0x9B, 0x60, 0xA3, 0xE4, 0xF2, +0x66, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, +0x70, 0x9B, 0x60, 0x9B, 0xC4, 0xF2, 0x78, 0xDA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x74, 0x9B, +0x60, 0xA3, 0xE4, 0xF2, 0x64, 0xC2, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF1, 0x78, 0x9B, 0x60, 0xA3, +0xE4, 0xF2, 0x65, 0xC2, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x68, +0x8C, 0xE8, 0x00, 0x18, 0xAB, 0xD2, 0x01, 0xE2, +0x1C, 0x34, 0x30, 0x4C, 0x80, 0x18, 0xEE, 0x1C, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xFF, 0x68, +0x8C, 0xE8, 0xC3, 0xF3, 0x8C, 0xA2, 0x03, 0x6B, +0x6B, 0xEB, 0x41, 0x6D, 0x8C, 0xEB, 0xAB, 0xED, +0xAC, 0xEB, 0xC3, 0xF3, 0xAD, 0xA2, 0xC3, 0xF3, +0x6C, 0xC2, 0x11, 0x6B, 0x00, 0x6C, 0x6B, 0xEB, +0xC3, 0xF3, 0x99, 0xC2, 0xC3, 0xF3, 0x91, 0xC2, +0xAC, 0xEB, 0xC3, 0xF3, 0x9A, 0xC2, 0x90, 0x67, +0xC3, 0xF3, 0x6D, 0xC2, 0x00, 0x18, 0xF3, 0xDB, +0x90, 0x67, 0x00, 0x18, 0xEC, 0xDB, 0x90, 0x67, +0x00, 0x18, 0x08, 0xDC, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xC6, 0xF5, 0x10, 0x48, 0x80, 0x18, 0xC7, 0x1A, +0xC3, 0xF3, 0x4F, 0xA0, 0x01, 0x6C, 0xF0, 0x6D, +0x04, 0xD2, 0x00, 0x18, 0xF3, 0xC4, 0x00, 0x18, +0xE8, 0xDF, 0x43, 0xF4, 0x58, 0xA0, 0x64, 0x22, +0x00, 0x18, 0x36, 0xCA, 0x5C, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x7D, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, 0x21, 0x6C, +0xFC, 0xF7, 0x1C, 0x4C, 0xBD, 0x67, 0xA0, 0xDC, +0x9A, 0xB8, 0x00, 0x65, 0xBB, 0xB8, 0x00, 0x65, +0x00, 0x18, 0x1F, 0xD9, 0x30, 0xF0, 0x21, 0x69, +0xDC, 0xF7, 0x0C, 0x49, 0x00, 0x99, 0x32, 0xE8, +0x01, 0x99, 0x30, 0xE8, 0x42, 0x99, 0x63, 0x99, +0x84, 0x99, 0xA5, 0x99, 0xC6, 0x99, 0xE7, 0x99, +0x08, 0x99, 0x18, 0x65, 0x09, 0x99, 0x58, 0xB9, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, +0x21, 0x68, 0xDC, 0xF7, 0x0C, 0x48, 0x2A, 0x98, +0x1A, 0xB8, 0x00, 0x65, 0x58, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x79, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, 0x21, 0x69, +0x9C, 0xF7, 0x0C, 0x49, 0x09, 0xD9, 0x12, 0xE8, +0x00, 0xD9, 0x10, 0xE8, 0x01, 0xD9, 0x42, 0xD9, +0x63, 0xD9, 0x84, 0xD9, 0xA5, 0xD9, 0xC6, 0xD9, +0xE7, 0xD9, 0x18, 0x67, 0x08, 0xD9, 0x1F, 0x67, +0x0B, 0xD9, 0x1D, 0x67, 0x0C, 0xD9, 0x1F, 0xF7, +0x32, 0x68, 0x46, 0xF4, 0x16, 0x48, 0xFF, 0xF7, +0x1C, 0xD9, 0x30, 0xF0, 0x21, 0x68, 0x9C, 0xF7, +0x0C, 0x48, 0x3B, 0xB8, 0x00, 0x65, 0x2A, 0xD8, +0x1A, 0xB8, 0x00, 0x65, 0x00, 0x18, 0xF8, 0xD8, +0x00, 0x6C, 0x00, 0x18, 0xEA, 0xC8, 0x10, 0x10, +0x00, 0x6C, 0x00, 0x18, 0x5A, 0xDF, 0x00, 0x6C, +0x00, 0x18, 0x42, 0xC6, 0x00, 0x18, 0x1F, 0xD9, +0x00, 0x18, 0xF8, 0xD8, 0x01, 0x6C, 0x00, 0x18, +0x42, 0xC6, 0x01, 0x6C, 0x00, 0x18, 0x5A, 0xDF, +0x04, 0x95, 0x01, 0x6C, 0x00, 0x18, 0xF3, 0xC4, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x68, 0x8C, 0xE8, 0x00, 0x18, +0x7A, 0xE1, 0x00, 0x18, 0xB5, 0xD2, 0x01, 0x72, +0x03, 0x60, 0x08, 0x6C, 0x00, 0x18, 0x37, 0xE1, +0x08, 0x20, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0x00, 0x6D, 0xFF, 0x6C, 0xC5, 0x67, +0x40, 0xEA, 0x01, 0x6C, 0x04, 0x6D, 0x00, 0x18, +0xF3, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, +0x74, 0x9B, 0x43, 0xF4, 0x88, 0x9A, 0x8C, 0xEB, +0x04, 0x73, 0x0C, 0x61, 0xC3, 0xF3, 0x6F, 0xA2, +0x04, 0x6C, 0x8C, 0xEB, 0x07, 0x23, 0x01, 0x6B, +0x43, 0xF4, 0x6A, 0xC2, 0x01, 0x6C, 0x00, 0x6D, +0x00, 0x18, 0x04, 0xC8, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0xBA, 0xC7, 0x20, 0x2A, 0x00, 0x18, +0xB0, 0xD2, 0x39, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF1, 0x58, 0x9A, 0x40, 0xA2, 0x33, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xEB, 0xF0, 0x74, 0xA2, +0x01, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, +0x2A, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, +0x5C, 0x9A, 0x60, 0xA2, 0x02, 0x6A, 0x6C, 0xEA, +0x22, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, +0x40, 0x9A, 0x40, 0xA2, 0x1C, 0x2A, 0x00, 0x18, +0xB5, 0xD2, 0x19, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xA0, 0xF1, 0x9C, 0xA2, +0xA0, 0xF1, 0x7D, 0xA2, 0x8E, 0xEB, 0x0F, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, 0x64, 0x9B, +0x80, 0xA3, 0x0F, 0x6B, 0x8C, 0xEB, 0x07, 0x2B, +0x24, 0xF3, 0x44, 0xA2, 0x01, 0x6B, 0x4E, 0x32, +0x6E, 0xEA, 0x6C, 0xEA, 0x01, 0x10, 0x00, 0x6A, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x8A, 0xF1, 0x5F, 0xA2, 0x02, 0x22, 0x08, 0x72, +0x06, 0x61, 0x00, 0x18, 0x03, 0xCB, 0x01, 0x72, +0x02, 0x61, 0x00, 0x18, 0x9D, 0xCA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x78, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0xA5, 0xF4, 0x1D, 0x4A, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x8A, 0xF1, +0x7C, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0x26, 0xCB, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF0, 0x78, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0xA5, 0xF4, 0x1F, 0x4A, 0x40, 0xDB, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x24, 0x67, 0x8A, 0xF1, 0x9E, 0xA3, 0x02, 0x6B, +0xFF, 0x6A, 0x8C, 0xEB, 0x4C, 0xED, 0x4C, 0xEB, +0x4C, 0xE9, 0x08, 0xD5, 0x02, 0x6A, 0x75, 0x23, +0x30, 0xF0, 0x20, 0x6A, 0x06, 0xF4, 0x4F, 0xA2, +0x2E, 0xEA, 0x5F, 0x22, 0x00, 0x6A, 0x7D, 0x67, +0x30, 0xF0, 0x20, 0x6C, 0x05, 0xD2, 0x58, 0xC3, +0x48, 0xCB, 0x06, 0xF4, 0x4E, 0xA4, 0x27, 0x2A, +0x30, 0xF0, 0x20, 0x6B, 0x06, 0xF4, 0x4D, 0xA3, +0x22, 0x2A, 0x30, 0xF0, 0x20, 0x6C, 0x06, 0xF4, +0x4C, 0xA4, 0x1D, 0x2A, 0x30, 0xF0, 0x20, 0x68, +0xEE, 0xF6, 0x08, 0x48, 0x90, 0x67, 0x05, 0x05, +0x80, 0x18, 0xBB, 0x4D, 0x90, 0x67, 0x04, 0x05, +0x80, 0x18, 0xA9, 0x4D, 0x7D, 0x67, 0x50, 0xA3, +0x30, 0xF0, 0x20, 0x6C, 0x06, 0xF4, 0x4E, 0xC4, +0x54, 0xA3, 0x75, 0xA3, 0x30, 0xF0, 0x20, 0x6C, +0x4D, 0xEB, 0x06, 0xF4, 0x6D, 0xC4, 0x30, 0xF0, +0x20, 0x6B, 0x06, 0xF4, 0x4C, 0xC3, 0x03, 0x21, +0x01, 0x71, 0x12, 0x60, 0x26, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x06, 0xF4, 0xAD, 0xA2, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6C, 0x06, 0xF4, +0xCE, 0xA2, 0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF6, +0x08, 0x4C, 0x06, 0xF4, 0xEC, 0xA2, 0x13, 0x10, +0x30, 0xF0, 0x20, 0x68, 0xEE, 0xF6, 0x08, 0x48, +0x90, 0x67, 0x80, 0x18, 0x4F, 0x4C, 0x07, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x32, 0x6C, 0x40, 0xEA, 0xF1, 0x17, 0x01, 0x6D, +0x90, 0x67, 0xC5, 0x67, 0xE5, 0x67, 0x80, 0x18, +0xAA, 0x51, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0xF4, +0x2F, 0xC2, 0x08, 0x94, 0x00, 0x6A, 0x0D, 0x24, +0x30, 0xF0, 0x20, 0x6B, 0x06, 0xF4, 0x4E, 0xC3, +0x30, 0xF0, 0x20, 0x6B, 0x06, 0xF4, 0x4D, 0xC3, +0x30, 0xF0, 0x20, 0x6B, 0x06, 0xF4, 0x4C, 0xC3, +0x00, 0x6A, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0x80, 0xF2, 0x48, 0x98, 0x30, 0xF0, 0x20, 0x6C, +0x8A, 0xF1, 0x1C, 0x4C, 0x00, 0x6D, 0x80, 0x6E, +0x40, 0xEA, 0x80, 0xF2, 0x48, 0x98, 0x30, 0xF0, +0x20, 0x6C, 0x2C, 0x6E, 0xCB, 0xF0, 0x08, 0x4C, +0x00, 0x6D, 0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, +0x10, 0x48, 0x40, 0xEA, 0x00, 0x18, 0xA8, 0xC7, +0x02, 0x6A, 0xC0, 0xF0, 0x46, 0xC0, 0x01, 0x6A, +0xC3, 0xF3, 0x56, 0xC0, 0xC3, 0xF3, 0x57, 0xC0, +0x0C, 0x6A, 0xC3, 0xF3, 0x58, 0xC0, 0x00, 0x6C, +0x06, 0x6A, 0xE3, 0xF3, 0x40, 0xC8, 0xA4, 0x67, +0x00, 0x18, 0xF3, 0xC4, 0x02, 0x6C, 0x0C, 0x6D, +0x00, 0x18, 0xF3, 0xC4, 0x01, 0x6C, 0x0C, 0x6D, +0x00, 0x18, 0xF3, 0xC4, 0x30, 0xF0, 0x20, 0x6C, +0xAA, 0xF1, 0x0E, 0x4C, 0x00, 0x6D, 0x00, 0x18, +0x7B, 0xDF, 0xC0, 0xF0, 0x6D, 0xA0, 0x03, 0x6A, +0xC0, 0xF0, 0x4B, 0xC0, 0x0F, 0x6A, 0xC0, 0xF0, +0x4C, 0xC0, 0x01, 0x6A, 0x6C, 0xEA, 0x28, 0x6B, +0x6D, 0xEA, 0xC0, 0xF0, 0x4D, 0xC0, 0x07, 0x6A, +0xC0, 0xF0, 0x4E, 0xC0, 0xE3, 0xF3, 0x4A, 0xA0, +0x30, 0xF0, 0x20, 0x69, 0x00, 0x6C, 0x03, 0x4A, +0xE3, 0xF3, 0x46, 0xC0, 0x0C, 0x6A, 0xE3, 0xF3, +0x47, 0xC0, 0x40, 0xF4, 0x5C, 0x99, 0xA4, 0x67, +0x40, 0xEA, 0x40, 0xF4, 0x5C, 0x99, 0x01, 0x6C, +0x00, 0x6D, 0x40, 0xEA, 0x40, 0xF4, 0x5C, 0x99, +0x02, 0x6C, 0x00, 0x6D, 0x40, 0xEA, 0x40, 0xF4, +0x5C, 0x99, 0x03, 0x6C, 0x00, 0x6D, 0x40, 0xEA, +0x40, 0xF4, 0x5C, 0x99, 0x04, 0x6C, 0x00, 0x6D, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, +0x68, 0x9A, 0xFC, 0x6A, 0x00, 0x6D, 0x80, 0xA3, +0xC5, 0x67, 0x00, 0x69, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, +0xFF, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF3, 0x60, 0xA0, 0xE3, 0xF0, 0x40, 0x9A, +0xA3, 0xF3, 0x38, 0xC0, 0xFF, 0x6C, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x6C, 0x9A, +0x08, 0x6D, 0xAB, 0xED, 0x40, 0xA3, 0x80, 0xF6, +0x10, 0x6E, 0x8C, 0xEA, 0xAC, 0xEA, 0x05, 0x6D, +0xAD, 0xEA, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x40, 0xC3, 0x2A, 0xF2, 0x08, 0x4C, 0x00, 0x6D, +0x00, 0x18, 0xCD, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF1, 0x50, 0x9A, 0x4B, 0x6B, 0x60, 0xC2, +0x0C, 0x6A, 0x43, 0xF4, 0x48, 0xC0, 0xC3, 0xF3, +0x4F, 0xC0, 0x43, 0xF4, 0x29, 0xC0, 0x43, 0xF4, +0x2B, 0xC0, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x8A, 0xF1, 0xBC, 0xA3, 0x04, 0x6B, 0xFF, 0x6A, +0xAC, 0xEB, 0x4C, 0xEB, 0x4C, 0xEC, 0x06, 0x23, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, 0x54, 0x9A, +0x00, 0x6B, 0x60, 0xC2, 0x02, 0x6D, 0x00, 0x18, +0xD0, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, +0x58, 0x9A, 0x04, 0x69, 0x30, 0xF0, 0x20, 0x68, +0x20, 0xDA, 0xC6, 0xF5, 0x10, 0x48, 0xC0, 0xF0, +0xCD, 0xA0, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x48, 0x9A, 0xFF, 0x6C, 0x59, 0x4C, 0x00, 0x6D, +0xC6, 0x36, 0x40, 0xEA, 0xC3, 0xF3, 0x4C, 0xA0, +0x07, 0x97, 0x4D, 0xE9, 0xC3, 0xF3, 0x2C, 0xC0, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0xAC, 0xEA, 0x29, 0x22, 0x05, 0x5C, 0x1D, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, 0xA2, 0xF2, +0x08, 0x4A, 0x89, 0xE2, 0x40, 0x9A, 0x00, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x01, 0x6C, 0xC3, 0xF1, +0xBC, 0x9A, 0x0D, 0x10, 0x04, 0x6C, 0x0F, 0x6D, +0x0A, 0x10, 0x04, 0x6C, 0xF0, 0x6D, 0x07, 0x10, +0x04, 0x6C, 0x01, 0xF7, 0x00, 0x6D, 0x03, 0x10, +0x04, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, 0x80, 0x18, +0xA8, 0x57, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, +0x68, 0x9A, 0xFF, 0x6C, 0x07, 0x6D, 0x40, 0xA3, +0x8C, 0xEA, 0xAD, 0xEA, 0x25, 0x10, 0x05, 0x5C, +0x1D, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, +0xA2, 0xF2, 0x1C, 0x4A, 0x89, 0xE2, 0x40, 0x9A, +0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x01, 0x6C, +0xC3, 0xF1, 0xBC, 0x9A, 0x0D, 0x10, 0x04, 0x6C, +0x0F, 0x6D, 0x0A, 0x10, 0x04, 0x6C, 0xF0, 0x6D, +0x07, 0x10, 0x04, 0x6C, 0x01, 0xF7, 0x00, 0x6D, +0x03, 0x10, 0x04, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, +0x80, 0x18, 0xD9, 0x57, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF1, 0x68, 0x9A, 0xFC, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x27, 0x22, +0x05, 0x5C, 0x4B, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x88, 0x34, 0xC2, 0xF2, 0x10, 0x4A, 0x89, 0xE2, +0x40, 0x9A, 0x00, 0xEA, 0x00, 0x6C, 0x08, 0x6D, +0x17, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x6C, +0x23, 0xF1, 0xB8, 0x9A, 0x11, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x04, 0x6C, 0xE3, 0xF1, 0xA0, 0x9A, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x6C, +0xE3, 0xF1, 0xA4, 0x9A, 0x05, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF1, 0xA8, 0x9A, 0x04, 0x6C, +0x80, 0x18, 0xA8, 0x57, 0x26, 0x10, 0x05, 0x5C, +0x24, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, +0xE2, 0xF2, 0x04, 0x4A, 0x89, 0xE2, 0x40, 0x9A, +0x00, 0xEA, 0x00, 0x6C, 0x08, 0x6D, 0x17, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0x6C, 0x23, 0xF1, +0xB8, 0x9A, 0x11, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0x6C, 0xE3, 0xF1, 0xA0, 0x9A, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0x6C, 0xE3, 0xF1, +0xA4, 0x9A, 0x05, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF1, 0xA8, 0x9A, 0x04, 0x6C, 0x80, 0x18, +0xD9, 0x57, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x6A, 0xE3, 0xF1, +0x6C, 0x9B, 0x4C, 0xEC, 0x04, 0xD4, 0x20, 0xA3, +0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6C, 0x4C, 0xE9, +0xA0, 0xF2, 0x50, 0x98, 0xA4, 0x67, 0x2D, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, +0x5C, 0x9A, 0x40, 0xEA, 0x06, 0x2A, 0xA0, 0xF2, +0x50, 0x98, 0xFF, 0x6C, 0xB1, 0x67, 0x2D, 0x6E, +0x0C, 0x10, 0x04, 0x94, 0x01, 0x6D, 0x00, 0x18, +0x29, 0xCC, 0x00, 0x18, 0x90, 0xE1, 0x07, 0x2A, +0xA0, 0xF2, 0x50, 0x98, 0xFF, 0x6C, 0xB1, 0x67, +0x5B, 0x6E, 0x40, 0xEA, 0x04, 0x10, 0x01, 0x6C, +0x00, 0x6D, 0x00, 0x18, 0xF3, 0xC4, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x25, 0x67, 0x30, 0xF0, 0x20, 0x6D, 0xC6, 0xF5, +0x10, 0x4D, 0x06, 0x67, 0xC3, 0xF3, 0xCD, 0xA5, +0x03, 0x6B, 0xFF, 0x6A, 0xCC, 0xEB, 0x4C, 0xEB, +0x4C, 0xEC, 0x4C, 0xE9, 0x4C, 0xE8, 0xE0, 0xF0, +0x06, 0x2B, 0xC3, 0xF3, 0x4F, 0xA5, 0x8E, 0xEA, +0xE0, 0xF0, 0x01, 0x22, 0x0D, 0x5C, 0xC0, 0xF0, +0x1E, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, +0xE2, 0xF2, 0x18, 0x4A, 0x89, 0xE2, 0x40, 0x9A, +0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x8A, 0xF1, +0x5F, 0xA2, 0x0E, 0x72, 0x03, 0x61, 0x90, 0x67, +0x00, 0x18, 0x12, 0xC8, 0x30, 0xF0, 0x20, 0x6A, +0x8A, 0xF1, 0x5F, 0xA2, 0x04, 0x2A, 0x01, 0x6C, +0xB0, 0x67, 0x00, 0x18, 0xE7, 0xCA, 0x30, 0xF0, +0x20, 0x6A, 0x8A, 0xF1, 0x5F, 0xA2, 0x06, 0x72, +0x03, 0x61, 0x90, 0x67, 0x00, 0x18, 0x5B, 0xC5, +0x30, 0xF0, 0x20, 0x6A, 0x8A, 0xF1, 0x5F, 0xA2, +0x04, 0x72, 0x09, 0x61, 0x05, 0x21, 0x91, 0x67, +0xB0, 0x67, 0x00, 0x18, 0x6F, 0xCF, 0x03, 0x10, +0x90, 0x67, 0x00, 0x18, 0x4E, 0xC5, 0x30, 0xF0, +0x20, 0x6A, 0x8A, 0xF1, 0x5F, 0xA2, 0x08, 0x72, +0xA0, 0xF0, 0x05, 0x61, 0x80, 0x18, 0x00, 0x40, +0xA2, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x8A, 0xF1, +0x5F, 0xA2, 0x04, 0x2A, 0x01, 0x6C, 0xB0, 0x67, +0x00, 0x18, 0xE7, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0x8A, 0xF1, 0x5F, 0xA2, 0x06, 0x72, 0x03, 0x61, +0x90, 0x67, 0x00, 0x18, 0x5B, 0xC5, 0x30, 0xF0, +0x20, 0x6A, 0x8A, 0xF1, 0x5F, 0xA2, 0x0E, 0x72, +0x07, 0x61, 0x00, 0x18, 0x40, 0xC5, 0x01, 0x72, +0x03, 0x61, 0x90, 0x67, 0x00, 0x18, 0x12, 0xC8, +0x30, 0xF0, 0x20, 0x6A, 0x8A, 0xF1, 0x5F, 0xA2, +0x0C, 0x72, 0x7D, 0x61, 0x00, 0x18, 0x40, 0xC5, +0x01, 0x72, 0x79, 0x61, 0x90, 0x67, 0x00, 0x18, +0x7D, 0xC5, 0x75, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x8A, 0xF1, 0x5F, 0xA2, 0x0E, 0x72, 0x07, 0x61, +0x00, 0x18, 0x40, 0xC5, 0x01, 0x72, 0x03, 0x61, +0x90, 0x67, 0x00, 0x18, 0x12, 0xC8, 0x30, 0xF0, +0x20, 0x6A, 0x8A, 0xF1, 0x5F, 0xA2, 0x06, 0x72, +0x03, 0x61, 0x90, 0x67, 0x00, 0x18, 0x5B, 0xC5, +0x30, 0xF0, 0x20, 0x6A, 0x8A, 0xF1, 0x5F, 0xA2, +0x0C, 0x72, 0x07, 0x61, 0x00, 0x18, 0x40, 0xC5, +0x01, 0x72, 0x03, 0x61, 0x90, 0x67, 0x00, 0x18, +0x7D, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0x8A, 0xF1, +0x5F, 0xA2, 0x04, 0x72, 0x4C, 0x61, 0x00, 0x18, +0xD0, 0xC7, 0x01, 0x72, 0x48, 0x61, 0x90, 0x67, +0x00, 0x18, 0x54, 0xCC, 0x44, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x8A, 0xF1, 0x5F, 0xA2, 0x0E, 0x72, +0x07, 0x61, 0x00, 0x18, 0x40, 0xC5, 0x01, 0x72, +0x03, 0x61, 0x90, 0x67, 0x00, 0x18, 0x12, 0xC8, +0x30, 0xF0, 0x20, 0x6A, 0x8A, 0xF1, 0x5F, 0xA2, +0x06, 0x72, 0x03, 0x61, 0x90, 0x67, 0x00, 0x18, +0x5B, 0xC5, 0x30, 0xF0, 0x20, 0x6A, 0x8A, 0xF1, +0x5F, 0xA2, 0x0C, 0x72, 0x07, 0x61, 0x00, 0x18, +0x40, 0xC5, 0x01, 0x72, 0x03, 0x61, 0x90, 0x67, +0x00, 0x18, 0x7D, 0xC5, 0x30, 0xF0, 0x20, 0x6A, +0x8A, 0xF1, 0x5F, 0xA2, 0x04, 0x2A, 0x01, 0x6C, +0xB0, 0x67, 0x00, 0x18, 0xE7, 0xCA, 0x30, 0xF0, +0x20, 0x6A, 0x8A, 0xF1, 0x5F, 0xA2, 0x04, 0x72, +0x12, 0x61, 0x00, 0x18, 0x9C, 0xC5, 0x0F, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xC3, 0xF3, 0x6F, 0xA2, 0x0C, 0x73, 0x07, 0x61, +0xC3, 0xF3, 0x6C, 0xA2, 0x20, 0x6A, 0x6C, 0xEA, +0x02, 0x22, 0x80, 0x18, 0x0A, 0x40, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x24, 0x67, 0x4C, 0xED, 0x00, 0x6C, +0x4C, 0xE9, 0x04, 0xD5, 0x00, 0x18, 0xAF, 0xD5, +0x02, 0x67, 0x00, 0x18, 0xA3, 0xC7, 0x2D, 0x22, +0x16, 0x29, 0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF3, +0x08, 0x4A, 0x63, 0xA2, 0x84, 0x9A, 0xA6, 0x9A, +0x01, 0x4B, 0x63, 0xC2, 0x93, 0xE0, 0xE0, 0xF3, +0x08, 0x6B, 0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, +0x05, 0xDA, 0x12, 0xEB, 0xAD, 0xE3, 0x66, 0xDA, +0x80, 0x18, 0x0A, 0x40, 0x44, 0x10, 0x80, 0x18, +0x00, 0x40, 0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF3, +0x08, 0x4A, 0x85, 0x9A, 0xE0, 0xF3, 0x08, 0x6B, +0xA7, 0x9A, 0x93, 0xE0, 0x7B, 0xEC, 0x01, 0x2B, +0xE5, 0xE8, 0x04, 0xDA, 0x12, 0xEB, 0xAD, 0xE3, +0x67, 0xDA, 0x62, 0xA2, 0x01, 0x4B, 0x62, 0xC2, +0x2E, 0x10, 0x01, 0x71, 0x19, 0x61, 0x04, 0x96, +0x04, 0x6C, 0x01, 0x6D, 0x00, 0x18, 0x70, 0xCC, +0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF3, 0x08, 0x4A, +0x85, 0x9A, 0xE0, 0xF3, 0x08, 0x6B, 0xA7, 0x9A, +0x93, 0xE0, 0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, +0x04, 0xDA, 0x12, 0xEB, 0xAD, 0xE3, 0x67, 0xDA, +0x64, 0xA2, 0x01, 0x4B, 0x64, 0xC2, 0x13, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF3, 0x08, 0x4A, +0x84, 0x9A, 0xE0, 0xF3, 0x08, 0x6B, 0xA6, 0x9A, +0x93, 0xE0, 0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, +0x05, 0xDA, 0x12, 0xEB, 0xAD, 0xE3, 0x66, 0xDA, +0x65, 0xA2, 0x01, 0x4B, 0x65, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xE6, 0xF3, 0x08, 0x4A, 0x66, 0x9A, +0x06, 0x23, 0x87, 0x9A, 0x7B, 0xEC, 0x01, 0x2B, +0xE5, 0xE8, 0x12, 0xEB, 0x63, 0xDA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF3, 0x08, 0x4A, +0x61, 0xA2, 0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, +0x10, 0x48, 0xC0, 0xF0, 0x32, 0xA0, 0x01, 0x4B, +0x61, 0xC2, 0x36, 0x31, 0x00, 0x18, 0xA3, 0xC7, +0x08, 0x22, 0x00, 0x18, 0xBE, 0xC7, 0x02, 0x22, +0x08, 0x6A, 0x01, 0x10, 0x0C, 0x6A, 0x43, 0xF4, +0x48, 0xC0, 0x00, 0x6C, 0x00, 0x18, 0x6C, 0xC8, +0x00, 0x18, 0x2B, 0xC8, 0x00, 0x18, 0xBE, 0xC7, +0x08, 0x22, 0x91, 0x67, 0x00, 0x18, 0x34, 0xC8, +0x00, 0x6C, 0xB1, 0x67, 0x00, 0x18, 0xF0, 0xCC, +0x07, 0x10, 0x01, 0x6C, 0xB1, 0x67, 0x00, 0x18, +0xF0, 0xCC, 0x09, 0x6C, 0x00, 0x18, 0x37, 0xE1, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0x04, 0x67, +0x00, 0x6C, 0x2C, 0xE8, 0xAC, 0xE9, 0x00, 0x18, +0xAF, 0xD5, 0x30, 0xF0, 0x20, 0x6B, 0xE6, 0xF3, +0x08, 0x4B, 0xA8, 0x9B, 0x30, 0xF0, 0x20, 0x6C, +0xE3, 0xF1, 0x90, 0x9C, 0xB7, 0xE2, 0xA3, 0xEC, +0x01, 0x60, 0x48, 0xDB, 0x00, 0x18, 0xBE, 0xC7, +0x29, 0x22, 0x90, 0x67, 0x00, 0x18, 0xC2, 0xC7, +0x25, 0x22, 0x00, 0x18, 0xF7, 0xC7, 0x22, 0x22, +0x90, 0x67, 0xB1, 0x67, 0x00, 0x18, 0x52, 0xC8, +0x1D, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x43, 0xF4, 0x95, 0xA2, 0x43, 0xF4, +0x76, 0xA2, 0x63, 0xEC, 0x6F, 0xE4, 0x01, 0x60, +0x00, 0x6B, 0x43, 0xF4, 0x75, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x2A, 0xF2, 0x45, 0xA2, 0x0A, 0x2A, +0x90, 0x67, 0x00, 0x18, 0x34, 0xC8, 0x01, 0x6C, +0xB0, 0x67, 0x00, 0x18, 0xF0, 0xCC, 0x01, 0x6C, +0x00, 0x18, 0x6C, 0xC8, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xE6, 0xF3, 0x08, 0x4A, 0x67, 0xA2, 0x01, 0x4B, +0x67, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x43, 0xF4, 0x97, 0xA2, 0xC0, 0xF0, +0xB2, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x43, 0xF4, 0x77, 0xC2, 0x00, 0x6C, 0xB6, 0x35, +0x00, 0x18, 0xF0, 0xCC, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, +0x10, 0x4B, 0xC0, 0xF0, 0xA4, 0xA3, 0x04, 0x67, +0x7F, 0x6C, 0xAC, 0xEC, 0xFF, 0x6A, 0x01, 0x74, +0x4C, 0xE8, 0x20, 0x61, 0xC0, 0xF0, 0xA5, 0xA3, +0x10, 0x6C, 0x8B, 0xEC, 0xAC, 0xEC, 0x4C, 0xEC, +0x11, 0x24, 0xD0, 0x67, 0x0C, 0x6C, 0x00, 0x6D, +0x00, 0x18, 0x70, 0xCC, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, 0xFF, 0x6C, +0xC5, 0x67, 0x40, 0xEA, 0x90, 0x67, 0x00, 0x18, +0xE1, 0xCB, 0x08, 0x10, 0xC3, 0xF3, 0x4F, 0xA3, +0x05, 0x2A, 0x04, 0x6C, 0x01, 0x6D, 0xD0, 0x67, +0x00, 0x18, 0x70, 0xCC, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0x00, 0x18, 0x7F, 0xCD, +0x00, 0x6C, 0xA4, 0x67, 0x00, 0x18, 0x3F, 0xCB, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, +0x10, 0x48, 0x4C, 0xEC, 0x04, 0xD4, 0xC3, 0xF3, +0x91, 0xA0, 0x10, 0x6B, 0x8D, 0xEB, 0xE0, 0xF0, +0x80, 0xA0, 0xC3, 0xF3, 0x71, 0xC0, 0x01, 0x6B, +0x8C, 0xEB, 0x4C, 0xEB, 0x26, 0x23, 0xE0, 0xF0, +0x42, 0xA0, 0xFF, 0x72, 0x2C, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF1, 0x54, 0x9A, 0x00, 0x6B, +0x30, 0xF0, 0x20, 0x69, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF1, 0x58, 0x9A, 0x04, 0x6B, +0xFF, 0x6C, 0x60, 0xC2, 0x00, 0xF3, 0x48, 0x99, +0x59, 0x4C, 0x00, 0x6D, 0x06, 0x6E, 0x40, 0xEA, +0xE0, 0xF0, 0xC2, 0xA0, 0x00, 0xF3, 0x48, 0x99, +0xFF, 0x6C, 0x55, 0x4C, 0x00, 0x6D, 0x06, 0x4E, +0x40, 0xEA, 0x04, 0x94, 0x00, 0x18, 0x12, 0xDC, +0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x48, 0x9A, 0xC3, 0xF3, 0xD8, 0xA0, 0xFF, 0x6C, +0x55, 0x4C, 0x00, 0x6D, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x8A, 0xF1, 0x5F, 0xA2, 0x04, 0x6B, +0x6C, 0xEA, 0x05, 0x2A, 0x04, 0x96, 0x83, 0x67, +0x01, 0x6D, 0x00, 0x18, 0x70, 0xCC, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0x30, 0xF0, 0x20, 0x69, +0xC6, 0xF5, 0x10, 0x49, 0x04, 0xD4, 0xC0, 0xF0, +0x84, 0xA1, 0x00, 0x6B, 0xC3, 0xF3, 0x7D, 0xC1, +0x7F, 0x6B, 0x8C, 0xEB, 0x4C, 0xEB, 0x14, 0x23, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, +0xE0, 0xF0, 0x88, 0xA1, 0x01, 0x68, 0x40, 0xEA, +0x4E, 0xE8, 0x0A, 0x28, 0x04, 0x94, 0xC3, 0xF3, +0xB6, 0xA1, 0x00, 0x18, 0x1E, 0xE0, 0x04, 0x94, +0xC3, 0xF3, 0x17, 0xC1, 0x00, 0x18, 0xA0, 0xCD, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xC6, 0xF5, 0x10, 0x48, 0xC0, 0xF0, 0x64, 0xA0, +0x00, 0x6A, 0xC3, 0xF3, 0x5D, 0xC0, 0x7F, 0x6A, +0xFF, 0x69, 0x6C, 0xEA, 0x2C, 0xEC, 0x2C, 0xEA, +0x04, 0xD4, 0x18, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x5C, 0x9A, 0xE0, 0xF0, 0x88, 0xA0, +0x40, 0xEA, 0x01, 0x72, 0x0F, 0x61, 0xC0, 0xF0, +0x65, 0xA0, 0x0F, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, +0x06, 0x22, 0xC3, 0xF3, 0x6D, 0xA0, 0x10, 0x6A, +0x6C, 0xEA, 0x2C, 0xEA, 0x03, 0x2A, 0x04, 0x94, +0x00, 0x18, 0xA0, 0xCD, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x69, 0x8C, 0xE9, 0x30, 0xF0, 0x20, 0x68, +0x91, 0x67, 0xC6, 0xF5, 0x10, 0x48, 0x00, 0x18, +0xE1, 0xCB, 0xC3, 0xF3, 0x4F, 0xA0, 0x0C, 0x72, +0x21, 0x60, 0xD1, 0x67, 0x0C, 0x6C, 0x00, 0x6D, +0x00, 0x18, 0x70, 0xCC, 0x00, 0x6C, 0xA4, 0x67, +0x00, 0x18, 0x3F, 0xCB, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6D, 0xC5, 0x67, +0xFF, 0x6C, 0x40, 0xEA, 0xC3, 0xF3, 0x6D, 0xA0, +0x01, 0x6A, 0xA0, 0xF0, 0x8A, 0xA0, 0x6D, 0xEA, +0xC3, 0xF3, 0x4D, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF4, 0x50, 0x9A, 0x00, 0x6D, 0x08, 0x6E, +0xF1, 0x67, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x10, 0x4B, 0xC0, 0xF0, 0xC4, 0xA3, +0x7F, 0x6D, 0xFF, 0x6A, 0xCC, 0xED, 0x01, 0x75, +0x4C, 0xEC, 0x16, 0x61, 0xC3, 0xF3, 0xD1, 0xA3, +0x01, 0x6D, 0xCD, 0xED, 0xC3, 0xF3, 0xB1, 0xC3, +0xC0, 0xF0, 0xA5, 0xA3, 0x10, 0x6B, 0x6B, 0xEB, +0xAC, 0xEB, 0x4C, 0xEB, 0x20, 0x73, 0x06, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, 0x40, 0x9A, +0x40, 0xEA, 0x02, 0x10, 0x00, 0x18, 0xFC, 0xCD, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xFF, 0x6E, 0x8C, 0xEE, 0x0A, 0xF2, 0x98, 0xA2, +0x01, 0x6D, 0x00, 0x18, 0x70, 0xCC, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x24, 0x67, 0x30, 0xF0, +0x20, 0x6C, 0xC6, 0xF5, 0x10, 0x4C, 0xC3, 0xF3, +0xAC, 0xA4, 0x40, 0x6B, 0xFF, 0x6A, 0xAC, 0xEB, +0x4C, 0xEB, 0x4C, 0xE9, 0x09, 0x23, 0xC3, 0xF3, +0x8D, 0xA4, 0x10, 0x6B, 0x8C, 0xEB, 0x4C, 0xEB, +0x03, 0x23, 0x91, 0x67, 0x00, 0x18, 0x12, 0xDC, +0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, +0xC3, 0xF3, 0x6C, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, +0x10, 0x22, 0x03, 0x6A, 0x4B, 0xEA, 0x4C, 0xEB, +0xC3, 0xF3, 0x6C, 0xC0, 0xC3, 0xF3, 0x71, 0xA0, +0x6C, 0xEA, 0xC3, 0xF3, 0x51, 0xC0, 0xC3, 0xF3, +0x51, 0xA0, 0x07, 0x6B, 0x6C, 0xEA, 0x65, 0x2A, +0x61, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, +0x94, 0x9A, 0xFF, 0xF7, 0x1F, 0x6A, 0x60, 0xAC, +0x4C, 0xEB, 0x01, 0x4B, 0x4C, 0xEB, 0x60, 0xCC, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0x84, 0x9B, +0x60, 0xAC, 0x4C, 0xEB, 0x01, 0x4B, 0x4C, 0xEB, +0x60, 0xCC, 0xE4, 0xF2, 0x5C, 0x98, 0xC3, 0xF3, +0x71, 0xA0, 0x01, 0x4A, 0xE4, 0xF2, 0x5C, 0xD8, +0xC3, 0xF3, 0x59, 0xA0, 0x01, 0x4A, 0xC3, 0xF3, +0x59, 0xC0, 0x11, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xC3, 0xF3, 0x51, 0xC0, 0xC3, 0xF3, 0x79, 0xA0, +0xC0, 0xF0, 0x4B, 0xA0, 0x63, 0xEA, 0x36, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, +0xE0, 0xF0, 0x88, 0xA0, 0x40, 0xEA, 0x01, 0x6B, +0x6E, 0xEA, 0x2F, 0x2A, 0xC0, 0xF0, 0x85, 0xA0, +0xEF, 0x4B, 0x8C, 0xEB, 0xFF, 0x6C, 0x8C, 0xEB, +0x07, 0x2B, 0xC3, 0xF3, 0x6C, 0xA0, 0xDF, 0x4A, +0x6C, 0xEA, 0xC3, 0xF3, 0x4C, 0xC0, 0x21, 0x10, +0xC3, 0xF3, 0x7A, 0xA0, 0x01, 0x4B, 0xC3, 0xF3, +0x7A, 0xC0, 0xC3, 0xF3, 0x7A, 0xA0, 0x02, 0x5B, +0x0A, 0x61, 0xC3, 0xF3, 0x8C, 0xA0, 0x21, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0xC3, 0xF3, 0x6C, 0xC0, +0xC3, 0xF3, 0x5A, 0xC0, 0x03, 0x10, 0x91, 0x67, +0x00, 0x18, 0xFC, 0xCD, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x00, 0x6B, 0xC3, 0xF3, +0x79, 0xC2, 0x03, 0x10, 0x91, 0x67, 0x00, 0x18, +0x2C, 0xCE, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x22, 0xF4, 0x60, 0x9A, 0x22, 0xF4, 0x00, 0x4A, +0xFF, 0x69, 0x04, 0xD3, 0x61, 0x9A, 0x44, 0xAA, +0x8C, 0xE9, 0x05, 0xD3, 0x7D, 0x67, 0x4C, 0xCB, +0x24, 0x32, 0x49, 0xE3, 0x68, 0xAA, 0x1F, 0xF7, +0x00, 0x6A, 0x6C, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x0B, 0x2A, 0x7D, 0x67, 0x24, 0x32, +0x49, 0xE3, 0x68, 0xAA, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x58, 0x9A, 0x49, 0xE3, 0x40, 0xAA, +0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, +0x5C, 0x9A, 0x4D, 0xE3, 0x40, 0xAB, 0xFF, 0xF7, +0x1F, 0x68, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x2B, 0xF1, 0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0x03, 0x22, 0xE7, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, +0x18, 0xF0, 0x00, 0x6A, 0x0C, 0xEA, 0x13, 0x2A, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, +0xC3, 0xF3, 0x91, 0xA3, 0xFE, 0x4A, 0x8C, 0xEA, +0x05, 0x6C, 0x8B, 0xEC, 0x8C, 0xEA, 0x02, 0x4C, +0x8C, 0xEA, 0xC3, 0xF3, 0x51, 0xC3, 0x91, 0x67, +0x00, 0x18, 0x2C, 0xCE, 0x69, 0x10, 0x08, 0xF0, +0x00, 0x6A, 0x0C, 0xEA, 0x2F, 0x22, 0x02, 0x32, +0x5E, 0x32, 0x07, 0x2A, 0x04, 0x6C, 0x00, 0x18, +0x37, 0xE1, 0x91, 0x67, 0x00, 0x18, 0x18, 0xCE, +0x33, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF0, +0x84, 0x9A, 0xE3, 0xF1, 0x78, 0x9B, 0x8C, 0xEB, +0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF1, 0x9C, 0x9C, +0x8E, 0xEB, 0x09, 0x2B, 0xC0, 0xF0, 0x65, 0xA2, +0x10, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, +0x6C, 0xEA, 0x10, 0x72, 0x19, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xC3, 0xF3, +0x91, 0xA2, 0x01, 0x6B, 0x8D, 0xEB, 0xC3, 0xF3, +0x71, 0xC2, 0x0E, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x10, 0x4B, 0xC3, 0xF3, 0x91, 0xA3, +0x02, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, 0x05, 0x6C, +0x8B, 0xEC, 0x8C, 0xEA, 0xC3, 0xF3, 0x51, 0xC3, +0x02, 0x30, 0x1E, 0x30, 0x1A, 0x20, 0x30, 0xF0, +0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, 0xC3, 0xF3, +0x51, 0xA0, 0x02, 0x69, 0xC0, 0xF0, 0xCC, 0xA0, +0x2D, 0xEA, 0xC3, 0xF3, 0x51, 0xC0, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, 0xFF, 0x6C, +0x55, 0x4C, 0x00, 0x6D, 0x40, 0xEA, 0xC3, 0xF3, +0x4C, 0xA0, 0x4D, 0xE9, 0xC3, 0xF3, 0x2C, 0xC0, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0xC3, 0xF3, 0x91, 0xA2, 0x03, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0xC3, 0xF3, 0x71, 0xC2, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x02, 0xF4, 0x74, 0x9A, 0x02, 0xF4, 0x14, 0x4A, +0x30, 0xF0, 0x20, 0x68, 0x04, 0xD3, 0x61, 0x9A, +0x44, 0xAA, 0xFF, 0x69, 0x05, 0xD3, 0x7D, 0x67, +0x4C, 0xCB, 0xC6, 0xF5, 0x10, 0x48, 0x30, 0xF0, +0x20, 0x6A, 0x8C, 0xE9, 0x80, 0xF3, 0x5C, 0x9A, +0xE0, 0xF0, 0x88, 0xA0, 0x40, 0xEA, 0x01, 0x72, +0xE0, 0xF0, 0x17, 0x61, 0xC0, 0xF0, 0x64, 0xA0, +0x7F, 0x6A, 0xFF, 0x6C, 0x6C, 0xEA, 0x8C, 0xEA, +0xE0, 0xF0, 0x0F, 0x22, 0x44, 0xF3, 0x70, 0xA0, +0x01, 0x6A, 0x6C, 0xEA, 0x8C, 0xEA, 0x04, 0x22, +0x02, 0x6A, 0x6D, 0xEA, 0x44, 0xF3, 0x50, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF6, 0x75, 0xA2, +0x0F, 0x6A, 0x6C, 0xEA, 0x01, 0x72, 0x3C, 0x61, +0x24, 0x32, 0xBD, 0x67, 0x49, 0xE5, 0x68, 0xAA, +0x1F, 0xF7, 0x00, 0x6A, 0x6C, 0xEA, 0x02, 0xF0, +0x00, 0x72, 0x01, 0x60, 0x0B, 0x2A, 0x7D, 0x67, +0x24, 0x32, 0x49, 0xE3, 0x68, 0xAA, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x58, 0x9A, 0x49, 0xE3, +0x60, 0x9A, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x5C, 0x9A, 0x4D, 0xE3, 0x60, 0x9B, +0x04, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x0F, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF6, 0x62, 0x34, +0xC6, 0xF5, 0x10, 0x4A, 0x62, 0x33, 0xC3, 0xF3, +0x97, 0xC2, 0x62, 0x33, 0xFF, 0x6C, 0x8C, 0xEB, +0x02, 0x23, 0xC3, 0xF3, 0x76, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xC3, 0xF3, +0x77, 0xA2, 0x02, 0x2B, 0xC3, 0xF3, 0x76, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0xAA, 0xF1, 0x67, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0xA0, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, +0x00, 0x6B, 0xC3, 0xF3, 0x79, 0xC0, 0xC3, 0xF3, +0x7A, 0xC0, 0x80, 0xAD, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xEC, 0x01, 0x4C, 0x4C, 0xEC, 0x80, 0xCD, +0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF2, 0xA4, 0x9C, +0x80, 0xAD, 0x4C, 0xEC, 0x01, 0x4C, 0x4C, 0xEC, +0x80, 0xCD, 0xE4, 0xF2, 0x58, 0x98, 0x11, 0x6C, +0x8B, 0xEC, 0x01, 0x4A, 0xE4, 0xF2, 0x58, 0xD8, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x48, 0x9A, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, +0x58, 0x9A, 0x02, 0x6B, 0x60, 0xC2, 0xC3, 0xF3, +0x71, 0xA0, 0x03, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x8C, 0xEA, 0x91, 0x67, 0xC3, 0xF3, 0x51, 0xC0, +0x00, 0x18, 0x81, 0xCE, 0xC3, 0xF3, 0x6C, 0xA0, +0x40, 0x6A, 0x6C, 0xEA, 0x55, 0x22, 0xC3, 0xF3, +0x8D, 0xA0, 0x10, 0x6B, 0xFF, 0x6D, 0x44, 0x67, +0x6C, 0xEA, 0xAC, 0xEA, 0x22, 0x2A, 0xC3, 0xF3, +0x57, 0xA0, 0xC3, 0xF3, 0xB6, 0xA0, 0xAE, 0xEA, +0x47, 0x2A, 0x8D, 0xEB, 0x91, 0x67, 0xC3, 0xF3, +0x6D, 0xC0, 0x00, 0x18, 0x1E, 0xE0, 0x91, 0x67, +0x00, 0x18, 0xE2, 0xDB, 0x00, 0x18, 0xBE, 0xC7, +0x06, 0x2A, 0x91, 0x67, 0x00, 0x18, 0x19, 0xDC, +0x91, 0x67, 0x00, 0x18, 0x12, 0xDC, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xC3, 0xF3, +0x77, 0xA2, 0xFF, 0x4B, 0xC3, 0xF3, 0x77, 0xC2, +0x2B, 0x10, 0xC0, 0xF0, 0x65, 0xA0, 0x0F, 0x6A, +0x6C, 0xEA, 0x01, 0x72, 0x25, 0x61, 0xC3, 0xF3, +0x57, 0xA0, 0x08, 0xD2, 0x08, 0x93, 0xC3, 0xF3, +0x56, 0xA0, 0x6E, 0xEA, 0x1D, 0x22, 0x91, 0x67, +0x00, 0x18, 0x13, 0xE0, 0x08, 0x94, 0x8E, 0xEA, +0x17, 0x22, 0xC3, 0xF3, 0x6C, 0xA0, 0x20, 0x6A, +0xFF, 0x6D, 0x6C, 0xEA, 0xAC, 0xEA, 0x10, 0x22, +0xC3, 0xF3, 0x6D, 0xA0, 0x11, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x91, 0x67, 0xC3, 0xF3, 0x4D, 0xC0, +0x00, 0x18, 0x08, 0xDC, 0x91, 0x67, 0x00, 0x18, +0xF3, 0xDB, 0x91, 0x67, 0x00, 0x18, 0xEC, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xC3, 0xF3, 0x8C, 0xA2, 0x01, 0x6B, 0xC3, 0xF3, +0x7D, 0xC2, 0x20, 0x6B, 0x8D, 0xEB, 0xC3, 0xF3, +0x6C, 0xC2, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0x2C, 0xEC, +0xAC, 0xE9, 0x50, 0x24, 0x30, 0xF0, 0x20, 0x68, +0xC6, 0xF5, 0x10, 0x48, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x5C, 0x9A, 0xE0, 0xF0, 0x88, 0xA0, +0x40, 0xEA, 0x01, 0x72, 0x43, 0x61, 0xC3, 0xF3, +0x6D, 0xA0, 0x05, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xC3, 0xF3, 0x4D, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x2B, 0x6E, 0xFF, 0x6C, +0x0F, 0x6D, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF4, 0x5C, 0x9A, 0x91, 0x67, 0x02, 0x6D, +0x40, 0xEA, 0x43, 0xF4, 0x4B, 0xA0, 0x01, 0x6E, +0x01, 0x2A, 0x08, 0x6E, 0x30, 0xF0, 0x20, 0x68, +0xC6, 0xF5, 0x10, 0x48, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF4, 0x50, 0x9A, 0xA0, 0xF0, 0x8A, 0xA0, +0x00, 0x6D, 0xF1, 0x67, 0x40, 0xEA, 0x01, 0x72, +0x0B, 0x61, 0xC3, 0xF3, 0x6D, 0xA0, 0x01, 0x6A, +0x01, 0x6C, 0x6D, 0xEA, 0x06, 0x6D, 0xC3, 0xF3, +0x4D, 0xC0, 0x00, 0x18, 0xF3, 0xC4, 0x0E, 0x10, +0x43, 0xF4, 0x4B, 0xA0, 0x0B, 0x22, 0x06, 0x6D, +0x01, 0x6C, 0x00, 0x18, 0xF3, 0xC4, 0x91, 0x67, +0x00, 0x18, 0x2C, 0xCE, 0x00, 0x6C, 0x02, 0x6D, +0x00, 0x18, 0x04, 0xC8, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xFF, 0x69, 0xC6, 0xF5, +0x10, 0x48, 0x30, 0xF0, 0x20, 0x6A, 0x8C, 0xE9, +0x80, 0xF3, 0x5C, 0x9A, 0xE0, 0xF0, 0x88, 0xA0, +0x40, 0xEA, 0x01, 0x72, 0x12, 0x61, 0xC3, 0xF3, +0x6C, 0xA0, 0x21, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xC3, 0xF3, 0x4C, 0xC0, 0xC3, 0xF3, 0x4F, 0xA0, +0x04, 0x6B, 0x6C, 0xEA, 0x0C, 0x2A, 0x83, 0x67, +0x01, 0x6D, 0xD1, 0x67, 0x00, 0x18, 0x70, 0xCC, +0x06, 0x10, 0xC3, 0xF3, 0x6C, 0xA0, 0x20, 0x6A, +0x6D, 0xEA, 0xC3, 0xF3, 0x4C, 0xC0, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x68, 0x24, 0x67, 0x0C, 0xE9, 0x91, 0x67, +0x01, 0x6D, 0x00, 0x18, 0xFC, 0xCB, 0x91, 0x67, +0x01, 0x6D, 0x00, 0x18, 0x29, 0xCC, 0x30, 0xF0, +0x20, 0x6A, 0xAA, 0xF1, 0x70, 0xAA, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF0, 0x40, 0x9A, 0x0C, 0xEB, +0x08, 0x6C, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF1, 0x6C, 0x9A, 0x8B, 0xEC, 0x40, 0xA3, +0x0C, 0xEA, 0x8C, 0xEA, 0x05, 0x6C, 0x8D, 0xEA, +0x0C, 0xEA, 0x91, 0x67, 0x40, 0xC3, 0x00, 0x18, +0x9E, 0xCF, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0x24, 0x67, +0x0C, 0xE9, 0xAC, 0xE8, 0x69, 0x29, 0x90, 0x67, +0x00, 0x6D, 0x00, 0x18, 0xFC, 0xCB, 0x90, 0x67, +0x00, 0x6D, 0x00, 0x18, 0x29, 0xCC, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x48, 0x9A, 0x02, 0x6B, +0x20, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, +0x58, 0x9A, 0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x43, 0xF4, 0x6B, 0xA2, +0x08, 0x23, 0xC3, 0xF3, 0x4F, 0xA2, 0x0C, 0x72, +0x04, 0x61, 0x00, 0x6C, 0xA4, 0x67, 0x00, 0x18, +0x04, 0xC8, 0x30, 0xF0, 0x20, 0x69, 0xC6, 0xF5, +0x10, 0x49, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x5C, 0x9A, 0xE0, 0xF0, 0x88, 0xA1, 0x40, 0xEA, +0x19, 0x2A, 0xC3, 0xF3, 0x4F, 0xA1, 0x04, 0x6B, +0x6C, 0xEA, 0x02, 0x2A, 0x00, 0x18, 0x7A, 0xE1, +0x90, 0x67, 0x00, 0x18, 0x4E, 0xC5, 0x30, 0xF0, +0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, 0xC3, 0xF3, +0x8D, 0xA3, 0x02, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, +0x03, 0x6C, 0x8B, 0xEC, 0x8C, 0xEA, 0xC3, 0xF3, +0x4D, 0xC3, 0x05, 0x10, 0x0C, 0x6C, 0x01, 0x6D, +0xD0, 0x67, 0x00, 0x18, 0x70, 0xCC, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xC3, 0xF3, +0x8C, 0xA2, 0x05, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0xC3, 0xF3, 0x6C, 0xC2, 0xE0, 0xF0, 0x60, 0xA2, +0x01, 0x6A, 0x6C, 0xEA, 0x12, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF1, 0x54, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, +0x58, 0x9A, 0x04, 0x6B, 0x60, 0xC2, 0x05, 0x10, +0x01, 0x71, 0x03, 0x61, 0x90, 0x67, 0x00, 0x18, +0xB6, 0xCF, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x30, 0xF0, +0x20, 0x68, 0x2C, 0xEC, 0xC6, 0xF5, 0x10, 0x48, +0x04, 0xD4, 0x00, 0x18, 0x86, 0xCA, 0xC0, 0xF0, +0x84, 0xA0, 0x7F, 0x6A, 0x04, 0x95, 0x4C, 0xEC, +0x2C, 0xEC, 0x00, 0x18, 0xCD, 0xCF, 0xC0, 0xF0, +0x44, 0xA0, 0x7F, 0x6B, 0x6C, 0xEA, 0x2C, 0xEA, +0x05, 0x2A, 0x00, 0x6C, 0x01, 0x6D, 0x00, 0x18, +0x3F, 0xCB, 0x0B, 0x10, 0xC0, 0xF0, 0x45, 0xA0, +0x0F, 0x6C, 0xC0, 0xF0, 0xA6, 0xA0, 0x4C, 0xEC, +0x2C, 0xEC, 0x00, 0x18, 0x29, 0xC5, 0x00, 0x18, +0x9D, 0xE0, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFF, 0x6B, 0x8C, 0xEB, +0x01, 0x73, 0x01, 0x6A, 0x0A, 0x60, 0x00, 0x6A, +0x08, 0x23, 0x30, 0xF0, 0x20, 0x6A, 0x8A, 0xF1, +0x5F, 0xA2, 0x01, 0x6B, 0x4E, 0x32, 0x6E, 0xEA, +0x6C, 0xEA, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xEC, +0x01, 0x74, 0x12, 0x60, 0x07, 0x24, 0x30, 0xF0, +0x20, 0x6B, 0x8A, 0xF1, 0x7F, 0xA3, 0x08, 0x6C, +0x8C, 0xEB, 0x0A, 0x23, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x4C, 0x9A, 0x55, 0xE5, 0x60, 0xA5, +0xEF, 0x6A, 0x6C, 0xEA, 0x40, 0xC5, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF2, 0x6C, 0x9B, +0x10, 0x6C, 0x75, 0xE5, 0x60, 0xA5, 0x4C, 0xEB, +0x8D, 0xEB, 0x4C, 0xEB, 0x60, 0xC5, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x50, 0x9A, 0xFF, 0x6B, 0x40, 0xA2, +0x6C, 0xEA, 0x52, 0x32, 0x6C, 0xEA, 0x11, 0x2A, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x54, 0x9A, 0x66, 0xF6, 0x99, 0xA3, +0x00, 0x6D, 0x18, 0x6E, 0xE5, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, 0x54, 0x9A, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x69, 0x2C, 0xEC, 0x2C, 0xED, 0x02, 0x5C, +0x04, 0xD4, 0x05, 0xD5, 0x4E, 0x60, 0x00, 0x18, +0xAB, 0xD2, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF2, +0x74, 0x9B, 0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, +0x10, 0x48, 0x80, 0xAB, 0xFF, 0xF7, 0x1F, 0x6B, +0x8C, 0xEB, 0x4B, 0xE3, 0xA0, 0xF0, 0x6A, 0xA0, +0x2C, 0xEA, 0x6E, 0xEA, 0x3A, 0x2A, 0xC3, 0xF3, +0x4F, 0xA0, 0x0E, 0x72, 0x19, 0x61, 0x04, 0x92, +0x34, 0x2A, 0xC3, 0xF3, 0x6D, 0xA0, 0xFD, 0x4A, +0x05, 0x94, 0x6C, 0xEA, 0xC3, 0xF3, 0x4D, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x5C, 0x9A, +0x00, 0x6D, 0x40, 0xEA, 0x01, 0x6C, 0x0C, 0x6D, +0x00, 0x18, 0xF3, 0xC4, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x91, 0x67, 0x1A, 0x10, +0x06, 0x72, 0x1B, 0x61, 0x04, 0x92, 0x19, 0x22, +0xC3, 0xF3, 0x6D, 0xA0, 0x02, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0xC3, 0xF3, 0x4D, 0xC0, 0x30, 0xF0, +0x20, 0x6A, 0x40, 0xF4, 0x5C, 0x9A, 0x05, 0x94, +0x01, 0x6D, 0x40, 0xEA, 0x04, 0x6A, 0xC3, 0xF3, +0x4F, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0xFF, 0x6C, 0x00, 0x6D, 0xC5, 0x67, +0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, +0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0xD2, +0x03, 0xF2, 0x70, 0x9B, 0xFF, 0x6A, 0x4C, 0xEE, +0x05, 0xD6, 0x60, 0xA3, 0x05, 0x67, 0x27, 0x67, +0x4C, 0xEB, 0x72, 0x33, 0x4C, 0xEB, 0x4C, 0xE8, +0x4C, 0xE9, 0x40, 0x23, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF1, 0x6C, 0x9B, 0x00, 0x6C, 0xFF, 0x6D, +0x60, 0xA3, 0x26, 0x6E, 0x6C, 0xEA, 0x06, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, +0x5C, 0x9A, 0x40, 0xEA, 0x01, 0x72, 0x1D, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0x94, 0x05, 0x96, +0xA0, 0xF2, 0x54, 0x9A, 0x04, 0x6F, 0x01, 0x6D, +0x40, 0xEA, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0x95, 0x40, 0xF4, 0x58, 0x9A, 0xD1, 0x67, +0x90, 0x67, 0x40, 0xEA, 0x90, 0x67, 0x00, 0x18, +0x23, 0xD0, 0x04, 0x94, 0xA2, 0x67, 0x00, 0x18, +0x9D, 0xE2, 0x04, 0x94, 0xB1, 0x67, 0x00, 0x18, +0xAC, 0xE2, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0x95, +0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6C, 0x27, 0x6E, +0x40, 0xEA, 0x90, 0x67, 0xB1, 0x67, 0x00, 0x18, +0x4C, 0xD0, 0x21, 0x10, 0x90, 0x67, 0xB1, 0x67, +0x00, 0x18, 0x4C, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0x94, 0x05, 0x96, 0xA0, 0xF2, 0x54, 0x9A, +0x04, 0x6F, 0x01, 0x6D, 0x40, 0xEA, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0x95, 0x40, 0xF4, +0x58, 0x9A, 0xD1, 0x67, 0x90, 0x67, 0x40, 0xEA, +0x90, 0x67, 0x00, 0x18, 0x23, 0xD0, 0x04, 0x94, +0xA2, 0x67, 0x00, 0x18, 0x9D, 0xE2, 0x04, 0x94, +0xB1, 0x67, 0x00, 0x18, 0xAC, 0xE2, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF2, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xC3, 0xF2, 0x9C, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF2, 0x80, 0x9C, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF2, 0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xE3, 0xF2, 0x88, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF1, 0x98, 0x9C, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF2, 0x4C, 0x9A, 0x01, 0x6B, 0x40, 0x9A, +0x80, 0xF5, 0x42, 0x32, 0x6E, 0xEA, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x80, 0xA4, 0x80, 0x18, 0x28, 0x09, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, +0x0E, 0x90, 0x24, 0x67, 0x4C, 0xE9, 0x03, 0x6B, +0x4C, 0xEF, 0x2C, 0xEB, 0x00, 0x6A, 0x0B, 0xD5, +0x0C, 0xD6, 0x04, 0xD7, 0x40, 0xC8, 0x00, 0x6A, +0x0A, 0x23, 0x28, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, +0x40, 0xA8, 0x01, 0x4A, 0x40, 0xC8, 0x1F, 0xF7, +0x00, 0x6A, 0x2C, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x58, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x5C, 0x9A, 0x49, 0xE1, +0x0B, 0x93, 0x40, 0x9A, 0x6C, 0xEA, 0x0C, 0x93, +0x6E, 0xEA, 0x04, 0x22, 0x40, 0xA8, 0x04, 0x93, +0x63, 0xEA, 0xDC, 0x61, 0x40, 0xA8, 0x04, 0x93, +0x63, 0xEA, 0x58, 0x67, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0x6A, 0xA0, 0x35, 0x4C, 0xEC, 0xA0, 0x35, +0xCC, 0xEA, 0x4D, 0xED, 0x05, 0x2C, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF3, 0x58, 0x9A, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF3, 0x5C, 0x9A, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, 0x80, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, 0x64, 0x9B, +0xAD, 0xEA, 0x40, 0xDC, 0x4C, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF3, 0x48, 0x9A, 0x60, 0xDC, +0x00, 0x6B, 0x60, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0xFF, 0xF7, 0x1F, 0x6B, 0x8C, 0xEA, +0xAC, 0xEB, 0x05, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF1, 0x54, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF3, 0x4C, 0x9A, 0x60, 0x33, +0x60, 0x33, 0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF3, 0x40, 0x9A, 0x00, 0x6C, 0x60, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, 0x50, 0x9A, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, 0x68, 0x9B, +0x40, 0xA2, 0x80, 0xC3, 0xFF, 0x6B, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, +0x74, 0x9B, 0xFF, 0x6A, 0xCC, 0xEA, 0x6D, 0xEA, +0xE0, 0xF1, 0x1F, 0x6B, 0xAC, 0xEB, 0x60, 0x33, +0x60, 0x33, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF3, 0x00, 0x9B, 0x01, 0x6C, 0x40, 0xD8, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x40, 0xEA, 0x00, 0x6A, 0x40, 0xD8, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xE0, 0xF1, 0x1F, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xAC, 0xEA, 0xA3, 0xF3, 0x78, 0x9B, 0x40, 0x32, +0x40, 0x32, 0x6D, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF3, 0x00, 0x4B, 0x60, 0x9B, 0x30, 0xF0, +0x20, 0x68, 0x01, 0x6C, 0x40, 0xDB, 0x80, 0xF3, +0x4C, 0x98, 0xFF, 0x69, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF3, 0x50, 0x9A, 0x01, 0x6C, +0x40, 0xA2, 0x4C, 0xE9, 0x80, 0xF3, 0x4C, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF3, +0x00, 0x4C, 0x80, 0x9C, 0x00, 0x6A, 0x40, 0xDC, +0x07, 0x97, 0x51, 0x67, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, 0xDC, 0x9B, +0xFF, 0x6A, 0x04, 0x6D, 0x60, 0xA6, 0x4C, 0xEC, +0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC6, +0x11, 0x24, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, +0x8C, 0x9B, 0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, +0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xC4, +0xC6, 0xF5, 0x10, 0x4A, 0x00, 0x6B, 0x42, 0xF6, +0x71, 0xC2, 0x0D, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF1, 0x6C, 0x9A, 0xFB, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x29, 0xF4, 0x61, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x2A, 0xF2, 0xA8, 0xA2, 0x30, 0xF0, +0x20, 0x6C, 0xAA, 0xF1, 0x0E, 0x4C, 0x00, 0x18, +0x7B, 0xDF, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, +0x7C, 0x9A, 0xFB, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x0E, 0x92, 0x0F, 0x91, 0x04, 0x67, 0x04, 0xD2, +0x04, 0x93, 0xFF, 0x6A, 0x4C, 0xE8, 0x4C, 0xEB, +0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, +0x5C, 0x9A, 0x0B, 0xD5, 0x0C, 0xD6, 0x0D, 0xD7, +0x04, 0xD3, 0x90, 0x67, 0x40, 0xEA, 0x80, 0xF0, +0x07, 0x22, 0x06, 0x58, 0x80, 0xF0, 0x04, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x08, 0x30, 0xC2, 0xF5, +0x14, 0x4A, 0x09, 0xE2, 0x40, 0x9A, 0x00, 0xEA, +0x02, 0xF2, 0x10, 0x6A, 0x0E, 0x10, 0x02, 0xF2, +0x00, 0x6A, 0x0B, 0x10, 0x22, 0xF2, 0x00, 0x6A, +0x08, 0x10, 0x22, 0xF2, 0x10, 0x6A, 0x05, 0x10, +0x42, 0xF2, 0x00, 0x6A, 0x02, 0x10, 0x42, 0xF2, +0x10, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x0D, 0x94, +0xC3, 0xF3, 0x60, 0x9B, 0x8C, 0xEB, 0x30, 0xF0, +0x20, 0x6C, 0x83, 0xF0, 0x8C, 0x9C, 0x8D, 0xEB, +0x06, 0x21, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF3, +0x84, 0x9C, 0x6D, 0xEC, 0x05, 0x10, 0x30, 0xF0, +0x20, 0x6C, 0xC3, 0xF3, 0x88, 0x9C, 0x6C, 0xEC, +0x04, 0x96, 0x06, 0x26, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF3, 0x78, 0x9B, 0x8D, 0xEB, 0x05, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, 0x6C, 0x9B, +0x8C, 0xEB, 0x1F, 0xF7, 0x00, 0x6C, 0x4C, 0xEC, +0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF0, 0xB8, 0x9C, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF0, +0xBC, 0x9C, 0x30, 0xF0, 0x20, 0x6C, 0x0B, 0x96, +0xC3, 0xF3, 0x90, 0x9C, 0xB5, 0xE2, 0xCC, 0xEC, +0x80, 0xDD, 0x84, 0x42, 0x1F, 0xF7, 0x00, 0x6D, +0xAC, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, +0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF3, +0xB4, 0x9C, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, +0xC3, 0xF3, 0xB8, 0x9C, 0x30, 0xF0, 0x20, 0x6C, +0x0C, 0x96, 0xC3, 0xF3, 0x90, 0x9C, 0xB5, 0xE2, +0xCC, 0xEC, 0x80, 0xDD, 0x87, 0x42, 0x01, 0x4C, +0x1F, 0xF7, 0x00, 0x6D, 0xAC, 0xEC, 0x02, 0xF0, +0x00, 0x74, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, +0x20, 0x6C, 0xC3, 0xF3, 0x9C, 0x9C, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF3, 0x80, 0x9C, +0x89, 0xE2, 0x60, 0xDA, 0x01, 0x6A, 0x01, 0x10, +0x00, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x01, 0x68, 0x04, 0xEC, +0x82, 0xF3, 0x08, 0x69, 0x1C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, +0xFF, 0x49, 0x40, 0xEA, 0x14, 0x29, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x7C, 0x9A, 0x08, 0xF0, +0x00, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xA3, 0xF3, 0x7C, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x7C, 0xDA, 0x00, 0x6A, 0x0B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF3, 0x44, 0x9A, 0x60, 0xAA, +0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, 0x0C, 0xEA, +0xDA, 0x2A, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x04, 0xF7, +0x10, 0x68, 0x1C, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x05, 0x6C, 0xFF, 0x48, +0x40, 0xEA, 0x14, 0x28, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x7C, 0x9A, 0x08, 0xF0, 0x00, 0x6C, +0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xA3, 0xF3, +0x7C, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, 0x7C, 0xDA, +0x00, 0x6A, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF3, 0x44, 0x9A, 0x60, 0xAA, 0x3F, 0x6A, +0x6C, 0xEA, 0xDC, 0x2A, 0x01, 0x6A, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF3, 0x44, 0x9A, +0x40, 0xAA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF3, 0x44, 0x9A, 0x40, 0xAA, 0x20, 0xE8, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x00, 0x18, 0x95, 0xC6, 0x00, 0x6A, 0x04, 0xD2, +0x04, 0x92, 0x01, 0x72, 0x58, 0x67, 0x04, 0xD2, +0x10, 0xF0, 0x23, 0x6A, 0x78, 0x67, 0xC8, 0xF7, +0x11, 0x4A, 0x69, 0xE2, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF0, 0x78, 0x9B, 0x40, 0xDB, 0x00, 0x1C, +0xAC, 0x39, 0x80, 0x18, 0x35, 0x16, 0x00, 0x1C, +0xAB, 0x39, 0x00, 0x1C, 0xAC, 0x39, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xA0, 0xF0, +0x84, 0x9A, 0x02, 0x6B, 0x8C, 0xEB, 0x09, 0x23, +0x03, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0xF0, +0x64, 0xDA, 0x80, 0x18, 0x7D, 0x39, 0x80, 0x18, +0xD3, 0x39, 0x00, 0x1C, 0xAB, 0x39, 0x00, 0x1C, +0xAC, 0x39, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0xA0, 0xF0, 0x84, 0x9A, 0x04, 0x6B, +0x8C, 0xEB, 0x09, 0x23, 0x05, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x00, 0x18, +0xB5, 0xD3, 0x00, 0x18, 0x3D, 0xD4, 0x00, 0x1C, +0xAB, 0x39, 0x00, 0x1C, 0xAC, 0x39, 0x00, 0x1C, +0xAC, 0x39, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x43, 0xF4, 0x88, 0xA2, 0xC3, 0xF3, +0x6F, 0xA2, 0x8E, 0xEB, 0x05, 0x23, 0xC0, 0xF0, +0x87, 0xA2, 0x96, 0x34, 0x00, 0x18, 0x2C, 0xCE, +0x30, 0xF0, 0x20, 0x6A, 0x66, 0xF6, 0x54, 0x9A, +0x02, 0x2A, 0x00, 0x18, 0x2F, 0xCB, 0x00, 0x1C, +0xAB, 0x39, 0x00, 0x1C, 0xAB, 0x39, 0x00, 0x1C, +0xAC, 0x39, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0xA0, 0xF0, 0x84, 0x9A, 0x02, 0xF0, +0x00, 0x6B, 0x8C, 0xEB, 0x08, 0x23, 0x02, 0xF0, +0x01, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0xF0, +0x64, 0xDA, 0x00, 0x18, 0x32, 0xDB, 0x00, 0x1C, +0xAB, 0x39, 0x00, 0x1C, 0xAC, 0x39, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF1, 0x78, 0x9B, 0xA0, 0xF0, +0x84, 0x9A, 0x8C, 0xEB, 0x09, 0x23, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF3, 0x6C, 0x9B, 0x8C, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x80, 0x18, 0xA2, 0x08, +0x00, 0x1C, 0xAB, 0x39, 0x00, 0x1C, 0xAC, 0x39, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, 0x70, 0x9B, +0xA0, 0xF0, 0x84, 0x9A, 0x8C, 0xEB, 0x20, 0x23, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, 0x74, 0x9B, +0x8C, 0xEB, 0xC0, 0xF0, 0x84, 0xA2, 0xA0, 0xF0, +0x64, 0xDA, 0x7F, 0x6B, 0x8C, 0xEB, 0x07, 0x2B, +0xC3, 0xF3, 0x4F, 0xA2, 0x0C, 0x72, 0x03, 0x61, +0x80, 0x18, 0x38, 0x37, 0x0D, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x30, 0xF0, +0x20, 0x6C, 0xA0, 0xF0, 0x64, 0x9A, 0xE3, 0xF3, +0x90, 0x9C, 0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, +0x30, 0xF0, 0x20, 0x69, 0xC6, 0xF5, 0x10, 0x49, +0x00, 0x1C, 0xAB, 0x39, 0x00, 0x1C, 0xAC, 0x39, +0x43, 0xF2, 0x18, 0xA1, 0x01, 0x6A, 0x4E, 0xE8, +0x05, 0x28, 0x0B, 0x6C, 0x80, 0x18, 0xB2, 0x52, +0x43, 0xF2, 0x18, 0xC1, 0x80, 0x18, 0x43, 0x55, +0x80, 0x18, 0x5D, 0x55, 0x00, 0x1C, 0xAB, 0x39, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x46, 0xF4, 0x80, 0x9B, 0x01, 0xF0, 0x58, 0x9A, +0x40, 0xEA, 0x22, 0x17, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x00, 0x68, 0x0A, 0x70, 0x0C, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x01, 0xF0, 0x54, 0x9A, 0x46, 0xF4, 0x80, 0x9B, +0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, 0x00, 0x68, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x78, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0x89, 0xF1, 0x1D, 0x4A, +0x40, 0xDB, 0x00, 0x1C, 0xAC, 0x39, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF1, 0x60, 0x9B, 0xA0, 0xF0, +0x84, 0x9A, 0x8C, 0xEB, 0x09, 0x23, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF3, 0x78, 0x9B, 0x8C, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x80, 0x18, 0xB4, 0x07, +0x00, 0x1C, 0xAB, 0x39, 0x00, 0x1C, 0xAC, 0x39, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xA0, 0xF0, 0x84, 0x9A, 0x08, 0x6B, 0x8C, 0xEB, +0x07, 0x23, 0x09, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x80, 0x18, 0xB8, 0x10, +0x00, 0x1C, 0xAB, 0x39, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF0, 0x78, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0x89, 0xF1, 0x1E, 0x4A, 0x40, 0xDB, 0x01, 0x48, +0xFF, 0x6A, 0x4C, 0xE8, 0xAF, 0x17, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x61, 0xDB, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x5B, 0xDB, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x27, 0xDC, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0xB5, 0xDC, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x27, 0xDD, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x55, 0xDB, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF2, 0x40, 0x9A, 0xE1, 0xF7, 0x1F, 0x6B, +0x40, 0xAA, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF3, 0x5C, 0x9A, +0x60, 0x9A, 0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF2, 0x54, 0x9A, 0x01, 0x6B, 0x40, 0x9A, +0x42, 0x32, 0x52, 0x32, 0x6E, 0xEA, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF4, 0x60, 0x9B, 0x44, 0x67, 0x30, 0xF0, +0x20, 0x6C, 0x60, 0x9B, 0xC3, 0xF3, 0x80, 0x9C, +0x8C, 0xEB, 0x43, 0xEB, 0x02, 0x60, 0x6F, 0xEB, +0x69, 0xE2, 0x20, 0xE8, 0x03, 0x6F, 0x8C, 0xEF, +0x64, 0x67, 0x46, 0x67, 0x04, 0x27, 0x0B, 0x10, +0xA0, 0xDB, 0xFC, 0x4A, 0x04, 0x4B, 0x04, 0x5A, +0xFB, 0x60, 0x03, 0x6A, 0x4C, 0xEE, 0x03, 0x10, +0xA0, 0xC4, 0xFF, 0x4E, 0x01, 0x4C, 0xFC, 0x2E, +0x00, 0x6A, 0x20, 0xE8, 0xFF, 0x6A, 0xAC, 0xEA, +0x03, 0x10, 0x40, 0xC4, 0xFF, 0x4E, 0x01, 0x4C, +0xFC, 0x2E, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x63, 0x01, 0xD0, 0x03, 0x6B, 0x05, 0x67, +0x6C, 0xE8, 0x44, 0x67, 0xE4, 0x67, 0x85, 0x67, +0x12, 0x28, 0x4C, 0xEB, 0x10, 0x2B, 0x86, 0x67, +0x06, 0x10, 0x61, 0xE5, 0x00, 0x98, 0x7D, 0xE2, +0xFC, 0x4C, 0x00, 0xDF, 0x04, 0x4B, 0x04, 0x5C, +0xF8, 0x60, 0xCA, 0x34, 0x88, 0x34, 0x03, 0x6B, +0x9D, 0xE2, 0x6C, 0xEE, 0x91, 0xE5, 0x00, 0x6B, +0x06, 0x10, 0x61, 0xE4, 0x00, 0xA0, 0x75, 0xE7, +0xFF, 0x4E, 0x00, 0xC5, 0x01, 0x4B, 0xF9, 0x2E, +0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, 0x00, 0x65, +0x09, 0x10, 0x60, 0xA4, 0x40, 0xA5, 0xFF, 0x4E, +0x4A, 0xEB, 0x02, 0x60, 0x4B, 0xE3, 0x20, 0xE8, +0x01, 0x4C, 0x01, 0x4D, 0xF6, 0x2E, 0x00, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0x06, 0x2C, 0x64, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x26, 0xF4, 0x60, 0xDA, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x26, 0xF4, +0x80, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0x26, 0xF4, +0x40, 0x9A, 0x32, 0x72, 0x2A, 0x60, 0x33, 0x5A, +0x0C, 0x60, 0x14, 0x72, 0x2E, 0x60, 0x15, 0x5A, +0x03, 0x60, 0x0A, 0x72, 0x12, 0x60, 0x20, 0xE8, +0x19, 0x72, 0x17, 0x60, 0x28, 0x72, 0x25, 0x60, +0x20, 0xE8, 0x64, 0x72, 0x2A, 0x60, 0x65, 0x5A, +0x03, 0x60, 0x50, 0x72, 0x1E, 0x60, 0x20, 0xE8, +0x78, 0x72, 0x2B, 0x60, 0xC8, 0x72, 0x31, 0x60, +0x20, 0xE8, 0x02, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x26, 0xF4, 0x64, 0xDA, 0xE0, 0xF7, 0x1E, 0x4B, +0x31, 0x10, 0x09, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x26, 0xF4, 0x64, 0xDA, 0xE4, 0xF3, 0x17, 0x4B, +0x29, 0x10, 0x11, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x26, 0xF4, 0x64, 0xDA, 0xE8, 0xF3, 0x0F, 0x4B, +0x21, 0x10, 0x0D, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x26, 0xF4, 0x64, 0xDA, 0x06, 0xF4, 0x08, 0x4B, +0x19, 0x10, 0x22, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x26, 0xF4, 0x64, 0xDA, 0x11, 0xF0, 0x00, 0x6B, +0x11, 0x10, 0x28, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x26, 0xF4, 0x64, 0xDA, 0x14, 0xF0, 0x00, 0x6B, +0x09, 0x10, 0x43, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x26, 0xF4, 0x64, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF4, 0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x26, 0xF4, 0x68, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x26, 0xF4, 0x40, 0x9A, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x26, 0xF4, 0x48, 0x9A, 0xFF, 0x63, 0x58, 0xEC, +0x12, 0xEA, 0x00, 0xD2, 0x00, 0x92, 0xFF, 0x4A, +0x00, 0xD2, 0x00, 0x92, 0xFB, 0x2A, 0x01, 0x63, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x26, 0xF4, 0x44, 0x9A, 0xFF, 0x63, 0x58, 0xEC, +0x12, 0xEA, 0x00, 0xD2, 0x00, 0x92, 0xFF, 0x4A, +0x00, 0xD2, 0x00, 0x92, 0xFB, 0x2A, 0x01, 0x63, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0xE6, 0xD2, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xED, 0x00, 0x18, 0xCD, 0xD2, +0x05, 0x97, 0x00, 0x6A, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, +0x04, 0x67, 0x4C, 0xEE, 0x00, 0x18, 0xD2, 0xD2, +0x50, 0x67, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x00, 0x68, 0x20, 0x10, 0xE0, 0xF3, +0x08, 0x70, 0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x7C, 0x9A, 0x80, 0x6C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xA3, 0xF3, 0x7C, 0x9A, +0x8D, 0xEB, 0xA3, 0xF3, 0x7C, 0xDA, 0x00, 0x6A, +0x13, 0x10, 0xFF, 0xF7, 0x1F, 0x6A, 0x01, 0x48, +0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF1, 0x58, 0x9A, 0x60, 0xA2, +0x01, 0x6A, 0x6C, 0xEA, 0xD8, 0x2A, 0x01, 0x6A, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF2, +0x64, 0x9B, 0xE3, 0xF6, 0x88, 0x9C, 0x6D, 0xE5, +0x91, 0xE5, 0x00, 0x6E, 0xC0, 0xDB, 0x04, 0x4B, +0x8A, 0xEB, 0xFB, 0x61, 0xE7, 0xF7, 0x1F, 0x6B, +0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, +0x4C, 0x9A, 0x10, 0x6C, 0x4D, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF2, 0x44, 0x9A, 0x49, 0xE5, +0x60, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF6, +0x4C, 0x9A, 0xFF, 0x6B, 0x55, 0xE5, 0x40, 0xA5, +0x6C, 0xEA, 0x8D, 0xEA, 0x6C, 0xEA, 0x40, 0xC5, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x26, 0xF4, 0x6D, 0xA2, 0x08, 0xD4, 0x30, 0xF0, +0x20, 0x69, 0x61, 0xC5, 0x01, 0x4B, 0x26, 0xF4, +0x6D, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, +0x84, 0x9B, 0x08, 0x93, 0x80, 0xF2, 0x4C, 0x99, +0x02, 0x6E, 0x91, 0xE3, 0x05, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF6, 0x90, 0x9B, +0x08, 0x93, 0xCE, 0xA0, 0x80, 0xF2, 0x4C, 0x99, +0xA2, 0x40, 0x91, 0xE3, 0x40, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x24, 0x67, 0x00, 0x18, 0x45, 0xD3, 0x00, 0x6B, +0x46, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, +0x40, 0x9A, 0xFF, 0xF7, 0x1F, 0x6E, 0xFF, 0x6F, +0x00, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, +0x40, 0x9A, 0x10, 0x6C, 0x8B, 0xEC, 0x4C, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0xA1, 0x40, 0xE3, 0xF6, +0x54, 0x9A, 0x65, 0x67, 0xCC, 0xEB, 0x60, 0xCA, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF6, 0x58, 0x9A, +0x60, 0xA2, 0xFA, 0x65, 0xA2, 0x32, 0xEC, 0xEB, +0x8C, 0xEB, 0x42, 0x32, 0x6D, 0xEA, 0xEC, 0xEA, +0x7F, 0x67, 0x40, 0xC3, 0x87, 0xA9, 0x02, 0x4C, +0xCC, 0xEC, 0x00, 0x18, 0x5E, 0xD3, 0x87, 0x40, +0x12, 0x4C, 0xB1, 0x67, 0x00, 0x18, 0x75, 0xD3, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0x58, 0x9A, +0x01, 0x6B, 0x80, 0xF2, 0x16, 0x6C, 0x60, 0xC2, +0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x48, 0x9A, 0x01, 0x6D, 0x00, 0x6E, +0x04, 0xF7, 0x10, 0x6F, 0x40, 0xEA, 0x4B, 0xEB, +0x4D, 0xEB, 0xC0, 0xF7, 0x62, 0x33, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x43, 0x67, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, +0x10, 0x48, 0xA0, 0xF6, 0x9E, 0xA0, 0xA0, 0xF6, +0x5F, 0xA0, 0x8E, 0xEA, 0x37, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF6, 0x5C, 0x9A, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF1, 0x64, 0x9B, 0x40, 0x9A, +0x6C, 0xEA, 0x2C, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x90, 0x34, 0x86, 0xF7, 0x0E, 0x4A, 0x91, 0xE2, +0x00, 0x18, 0x8A, 0xD3, 0x1D, 0x22, 0xA0, 0xF6, +0x5E, 0xA0, 0x01, 0x4A, 0xA0, 0xF6, 0x5E, 0xC0, +0xA0, 0xF6, 0x7E, 0xA0, 0xA0, 0xF6, 0x5F, 0xA0, +0x6E, 0xEA, 0x06, 0x22, 0xA0, 0xF0, 0x44, 0x98, +0x04, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xA0, 0xF6, 0x7E, 0xA2, 0x50, 0x6C, 0x8E, 0xEB, +0x09, 0x2B, 0xA0, 0xF6, 0x7E, 0xC2, 0x06, 0x10, +0xA0, 0xF0, 0x44, 0x98, 0x04, 0x6B, 0x6D, 0xEA, +0xA0, 0xF0, 0x44, 0xD8, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, +0x10, 0x48, 0xA0, 0xF0, 0x44, 0x98, 0x04, 0x6B, +0xA4, 0x67, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, +0xA0, 0xF6, 0x5E, 0xA8, 0x09, 0xF7, 0x00, 0x72, +0x07, 0x60, 0xA0, 0xF6, 0x5E, 0xA0, 0xA0, 0xF6, +0x9F, 0xA0, 0xFF, 0x4A, 0x8E, 0xEA, 0x13, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x7C, 0x9A, +0x00, 0xF2, 0x00, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0xA3, 0xF3, 0x7C, 0x9A, 0x8D, 0xEB, +0xA3, 0xF3, 0x7C, 0xDA, 0x18, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, +0x4C, 0x9A, 0x86, 0xF7, 0x0E, 0x4B, 0x90, 0x34, +0x91, 0xE3, 0x10, 0x6E, 0x40, 0xEA, 0xA0, 0xF6, +0x5F, 0xA0, 0x50, 0x6B, 0x01, 0x4A, 0xA0, 0xF6, +0x5F, 0xC0, 0xA0, 0xF6, 0x5F, 0xA0, 0x6E, 0xEA, +0x02, 0x2A, 0xA0, 0xF6, 0x5F, 0xC0, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0x26, 0xF4, 0x4C, 0xA3, 0xFF, 0x6F, +0xE0, 0xF0, 0xC7, 0xA5, 0x41, 0xC5, 0x43, 0xA5, +0x26, 0xF4, 0x6C, 0xA3, 0x03, 0x4A, 0xEC, 0xEA, +0x09, 0x10, 0xED, 0x42, 0xFF, 0x68, 0x0C, 0xEF, +0xFD, 0xE5, 0x64, 0xC7, 0xE6, 0xA7, 0x03, 0x4F, +0xE9, 0xE2, 0x0C, 0xEA, 0xEF, 0x46, 0xE2, 0xEA, +0xF4, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x26, 0xF4, +0x6C, 0xA2, 0x01, 0x4B, 0x26, 0xF4, 0x6C, 0xC2, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0x64, 0x9B, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0x71, 0xE4, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x24, 0x67, 0x00, 0x18, +0x45, 0xD3, 0x00, 0x6B, 0x3C, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF4, 0x40, 0x9A, 0x0F, 0x6C, +0xFF, 0xF7, 0x1F, 0x6B, 0x00, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF3, 0x40, 0x9A, 0x4C, 0xE8, +0xA1, 0x40, 0xA2, 0x32, 0x42, 0x32, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF6, 0x94, 0x9C, +0xAC, 0xEB, 0x60, 0xCC, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF6, 0x78, 0x9B, 0x40, 0xC3, 0xE0, 0xF0, +0x87, 0xA1, 0x00, 0x18, 0x5E, 0xD3, 0x87, 0x40, +0x12, 0x4C, 0xB1, 0x67, 0x00, 0x18, 0xFE, 0xD3, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF1, 0x58, 0x9A, +0x01, 0x6B, 0x80, 0xF2, 0x16, 0x6C, 0x60, 0xC2, +0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x48, 0x9A, 0x01, 0x6D, 0x00, 0x6E, +0x04, 0xF7, 0x10, 0x6F, 0x40, 0xEA, 0x4B, 0xEB, +0x4D, 0xEB, 0xC0, 0xF7, 0x62, 0x33, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x43, 0x67, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, +0x10, 0x48, 0x42, 0xF5, 0x63, 0xA0, 0x42, 0xF5, +0x44, 0xA0, 0x6E, 0xEA, 0x3E, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF6, 0x5C, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xE3, 0xF1, 0x84, 0x9C, 0x40, 0x9A, +0x8C, 0xEA, 0x33, 0x2A, 0xE8, 0x6A, 0x58, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x87, 0xF4, 0x10, 0x4A, +0x12, 0xEB, 0x71, 0xE2, 0x00, 0x18, 0x17, 0xD4, +0x07, 0x2A, 0xA0, 0xF0, 0x44, 0x98, 0x04, 0x6B, +0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, 0x21, 0x10, +0x42, 0xF5, 0x43, 0xA0, 0x10, 0x6B, 0x01, 0x4A, +0x42, 0xF5, 0x43, 0xC0, 0x42, 0xF5, 0x43, 0xA0, +0x6E, 0xEA, 0x02, 0x2A, 0x42, 0xF5, 0x43, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x42, 0xF5, 0x83, 0xA2, 0x42, 0xF5, 0x64, 0xA2, +0x8E, 0xEB, 0x07, 0x23, 0xA0, 0xF0, 0x64, 0x9A, +0x04, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, +0x04, 0x10, 0x42, 0xF5, 0x82, 0xC2, 0x42, 0xF5, +0x60, 0xCA, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x42, 0xF5, 0x63, 0xA2, +0xA4, 0x67, 0x04, 0x2B, 0x42, 0xF5, 0x44, 0xA2, +0x0F, 0x72, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x68, +0xC6, 0xF5, 0x10, 0x48, 0x42, 0xF5, 0x43, 0xA0, +0x42, 0xF5, 0x64, 0xA0, 0xFF, 0x4A, 0x6E, 0xEA, +0x15, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, +0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF1, +0x88, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xA3, 0xF3, 0x7C, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x7C, 0xDA, 0xAC, 0x10, 0x23, 0xA5, 0xFF, 0xF7, +0x1F, 0x6A, 0x04, 0x49, 0x4C, 0xE9, 0x42, 0xF5, +0x40, 0xA8, 0x22, 0x2A, 0xE8, 0x6A, 0x58, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6C, +0x80, 0xF2, 0x4C, 0x9A, 0x87, 0xF4, 0x10, 0x4C, +0xFF, 0x6E, 0x2C, 0xEE, 0x12, 0xEB, 0x71, 0xE4, +0x40, 0xEA, 0x42, 0xF5, 0x44, 0xA0, 0x42, 0xF5, +0x63, 0xA0, 0x42, 0xF5, 0x20, 0xC8, 0x4E, 0xEB, +0x79, 0x2B, 0x01, 0x4A, 0x42, 0xF5, 0x44, 0xC0, +0x42, 0xF5, 0x44, 0xA0, 0x10, 0x6B, 0x6E, 0xEA, +0x71, 0x2A, 0x42, 0xF5, 0x44, 0xC0, 0x6E, 0x10, +0x62, 0xA5, 0x39, 0x2B, 0x4D, 0xE1, 0xE3, 0x53, +0x36, 0x60, 0x42, 0xF5, 0x62, 0xA0, 0xE8, 0x6C, +0x98, 0xEB, 0x12, 0xEB, 0x0D, 0xE3, 0xC0, 0xF6, +0x82, 0xA3, 0x2D, 0x2C, 0xC0, 0xF6, 0x83, 0xA3, +0xFF, 0x6E, 0xFC, 0x4A, 0xFF, 0x4C, 0xC0, 0xF6, +0x83, 0xC3, 0x42, 0xF5, 0x60, 0xA8, 0x42, 0xF5, +0x82, 0xA0, 0xCC, 0xEA, 0xFF, 0x4B, 0x42, 0xF5, +0x60, 0xC8, 0xE8, 0x6B, 0x78, 0xEC, 0x2C, 0xEE, +0x12, 0xEC, 0x91, 0xE0, 0x51, 0xE4, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0xC0, 0xF6, +0x03, 0x4C, 0x40, 0xEA, 0x42, 0xF5, 0x42, 0xA0, +0xE8, 0x6B, 0x78, 0xEA, 0x12, 0xEA, 0x09, 0xE2, +0xC0, 0xF6, 0x63, 0xA2, 0x6D, 0xE1, 0xC0, 0xF6, +0x63, 0xC2, 0x42, 0xF5, 0x40, 0xA8, 0x45, 0xE1, +0x42, 0xF5, 0x20, 0xC8, 0x33, 0x10, 0x30, 0xF0, +0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, 0x42, 0xF5, +0x84, 0xA0, 0xE8, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x58, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0x87, 0xF4, 0x10, 0x4B, 0xFF, 0x6E, +0x2C, 0xEE, 0x12, 0xEC, 0x91, 0xE3, 0x40, 0xEA, +0x42, 0xF5, 0x44, 0xA0, 0x10, 0x6B, 0x42, 0xF5, +0x20, 0xC8, 0x01, 0x4A, 0x42, 0xF5, 0x44, 0xC0, +0x42, 0xF5, 0x44, 0xA0, 0x6E, 0xEA, 0x02, 0x2A, +0x42, 0xF5, 0x44, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x42, 0xF5, 0x62, 0xA2, +0x10, 0x6C, 0x01, 0x4B, 0x42, 0xF5, 0x62, 0xC2, +0x42, 0xF5, 0x62, 0xA2, 0x8E, 0xEB, 0x02, 0x2B, +0x42, 0xF5, 0x62, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x42, 0xF5, 0x82, 0xA2, +0xE8, 0x6B, 0x78, 0xEC, 0x42, 0xF5, 0x80, 0xAA, +0x12, 0xEB, 0x4D, 0xE3, 0xA0, 0xF7, 0x87, 0xC3, +0xA0, 0xF0, 0x64, 0x9A, 0x04, 0x6C, 0x8D, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0x6A, 0x4C, 0xED, 0xFF, 0x75, 0x4C, 0xEC, +0xCC, 0xEA, 0x06, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x10, 0x4B, 0x71, 0xE4, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, +0x71, 0xE4, 0x83, 0xF3, 0x78, 0xA4, 0xAC, 0xEA, +0xAF, 0xED, 0x6C, 0xED, 0xAD, 0xEA, 0x83, 0xF3, +0x58, 0xC4, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xEC, +0xFF, 0x74, 0xAC, 0xEA, 0x05, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x6A, 0xF1, 0x46, 0xC3, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, +0x83, 0xF3, 0xB6, 0xA3, 0x8C, 0xEA, 0x8F, 0xEC, +0xAC, 0xEC, 0x8D, 0xEA, 0x83, 0xF3, 0x56, 0xC3, +0x20, 0xE8, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x01, 0xA4, 0x20, 0xA4, +0x0C, 0x20, 0x90, 0x67, 0xB1, 0x67, 0x00, 0x18, +0xE3, 0xD4, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0x90, 0x67, 0xB1, 0x67, 0x53, 0x6E, +0x40, 0xEA, 0x7D, 0x67, 0x20, 0x6A, 0x50, 0xC3, +0x03, 0x6A, 0x4F, 0xCB, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF1, 0x4C, 0x9A, 0x9D, 0x67, 0x40, 0xA2, +0x52, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x83, 0xF3, 0x76, 0xA2, 0x83, 0xF3, +0x57, 0xA2, 0x73, 0xC4, 0x54, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, +0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xF7, 0x63, 0x11, 0x62, +0x10, 0xD1, 0x0F, 0xD0, 0x40, 0xA4, 0x08, 0xD2, +0x08, 0x93, 0x1F, 0x6A, 0x4C, 0xEB, 0x08, 0xD3, +0x42, 0xA4, 0x61, 0xA4, 0x0B, 0xD2, 0x43, 0xA4, +0x84, 0xA4, 0x09, 0xD4, 0x08, 0x94, 0x08, 0x5C, +0x44, 0x60, 0x84, 0x31, 0x09, 0x94, 0x01, 0x2C, +0x28, 0x22, 0xFF, 0x68, 0x0C, 0xEA, 0x0C, 0xEB, +0xA2, 0x67, 0xC3, 0x67, 0x91, 0x67, 0x0C, 0xD2, +0x0D, 0xD3, 0x00, 0x18, 0xD6, 0xD4, 0x0B, 0x94, +0x09, 0x93, 0x41, 0x41, 0x0C, 0xEC, 0x0B, 0xD4, +0x0B, 0x96, 0x0C, 0xEA, 0x0C, 0xEB, 0x82, 0x67, +0xA3, 0x67, 0x30, 0xF0, 0x20, 0x68, 0x0A, 0xD2, +0x09, 0xD3, 0x00, 0x18, 0xD6, 0xD4, 0x40, 0xF4, +0x40, 0x98, 0x0C, 0x95, 0x0D, 0x96, 0x91, 0x67, +0x01, 0x6F, 0x40, 0xEA, 0x40, 0xF4, 0x40, 0x98, +0x0A, 0x94, 0x09, 0x95, 0x0B, 0x96, 0x02, 0x6F, +0x40, 0xEA, 0x91, 0x67, 0x00, 0x18, 0x54, 0xE0, +0x7D, 0x67, 0x53, 0xC3, 0x42, 0x32, 0x54, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x45, 0xE1, 0x83, 0xF3, 0x58, 0xA1, 0x55, 0xC3, +0x83, 0xF3, 0x59, 0xA1, 0x56, 0xC3, 0xA3, 0xF3, +0x48, 0xA1, 0x57, 0xC3, 0xA3, 0xF3, 0x49, 0xA1, +0x58, 0xC3, 0x9D, 0x67, 0x21, 0x6A, 0x72, 0xA4, +0x50, 0xC4, 0x07, 0x6A, 0x4F, 0xCC, 0x20, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x08, 0x93, 0x6D, 0xEA, +0x52, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x11, 0x97, +0x10, 0x91, 0x0F, 0x90, 0x09, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0x04, 0x67, +0x30, 0xF0, 0x20, 0x6C, 0xA6, 0xF6, 0x09, 0x4C, +0xB0, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x81, 0xA0, +0x00, 0x18, 0x4F, 0xC9, 0x82, 0xA0, 0x02, 0x24, +0x00, 0x18, 0x21, 0xC9, 0x83, 0xA0, 0x02, 0x24, +0x00, 0x18, 0x7E, 0xCA, 0x05, 0x97, 0x04, 0x90, +0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x2A, 0xF2, +0x69, 0xC2, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x1A, 0x6A, 0x7D, 0x67, +0x50, 0xC3, 0x00, 0xF0, 0x12, 0x04, 0x07, 0x6A, +0x4F, 0xCB, 0x80, 0x18, 0xA5, 0x56, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, +0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x19, 0x6A, 0x7D, 0x67, +0x50, 0xC3, 0x00, 0xF0, 0x12, 0x04, 0x08, 0x6A, +0x4F, 0xCB, 0x80, 0x18, 0x6E, 0x56, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x04, 0x04, +0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, +0xFF, 0xF7, 0x1F, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x8C, 0xEA, 0x43, 0xF7, 0x78, 0x9B, 0x30, 0xF0, +0x20, 0x6C, 0x43, 0xF7, 0x9C, 0x9C, 0xCC, 0xEB, +0x40, 0xF6, 0xA0, 0x35, 0x8D, 0xEB, 0x1F, 0xF7, +0x00, 0x6C, 0x4C, 0xEC, 0x02, 0xF0, 0x00, 0x74, +0xAD, 0xEB, 0x01, 0x60, 0x05, 0x2C, 0x30, 0xF0, +0x20, 0x6C, 0xA3, 0xF0, 0x98, 0x9C, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF0, 0x9C, 0x9C, +0x89, 0xE2, 0x60, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0x1F, 0xF7, +0x00, 0x6C, 0x4C, 0xEC, 0xFF, 0x6B, 0x02, 0xF0, +0x00, 0x74, 0xAC, 0xEB, 0x01, 0x60, 0x05, 0x2C, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF0, 0x98, 0x9C, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF0, +0x9C, 0x9C, 0x91, 0xE2, 0x00, 0x6D, 0xA0, 0xDC, +0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF7, 0x98, 0x9C, +0xD4, 0x36, 0x40, 0xF6, 0x60, 0x33, 0x8C, 0xEE, +0x6D, 0xEE, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF7, +0x7C, 0x9B, 0x6D, 0xEE, 0x1F, 0xF7, 0x00, 0x6B, +0x4C, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, +0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, +0x78, 0x9B, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF0, 0x7C, 0x9B, 0x69, 0xE2, 0xC0, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0x0F, 0xF5, 0x00, 0x6B, +0x78, 0xEE, 0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF7, 0x98, 0x9C, +0x40, 0xF6, 0xA0, 0x35, 0x12, 0xEB, 0x8C, 0xEB, +0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF7, 0x9C, 0x9C, +0xAD, 0xEB, 0x8D, 0xEB, 0x1F, 0xF7, 0x00, 0x6C, +0x4C, 0xEC, 0x02, 0xF0, 0x00, 0x74, 0x01, 0x60, +0x05, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF0, +0x98, 0x9C, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6C, +0xA3, 0xF0, 0x9C, 0x9C, 0x89, 0xE2, 0x60, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF0, 0x40, 0x9A, 0x60, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF0, 0x44, 0x9A, 0x40, 0x9A, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x8C, 0xEA, +0x01, 0x72, 0x06, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF0, 0x40, 0x9A, 0x40, 0x9A, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, 0x44, 0x9A, +0x40, 0x9A, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF7, 0xC8, 0x9B, 0xFD, 0x63, 0x42, 0xF7, +0x08, 0x4B, 0x02, 0xD6, 0xC1, 0x9B, 0x64, 0xAB, +0xFF, 0x6A, 0x03, 0xD6, 0xDD, 0x67, 0x68, 0xCE, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF7, 0xC0, 0x9B, +0x42, 0xF7, 0x00, 0x4B, 0x64, 0xA3, 0x4C, 0xEC, +0x00, 0xD6, 0xDD, 0x67, 0x64, 0xC6, 0x8D, 0xE6, +0xE0, 0xA3, 0x84, 0x33, 0x6D, 0xE6, 0xC4, 0xAB, +0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xED, 0xCC, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x0C, 0x2B, +0x5D, 0x67, 0x84, 0x34, 0x91, 0xE2, 0x30, 0xF0, +0x20, 0x6A, 0x64, 0xAC, 0xA3, 0xF0, 0x58, 0x9A, +0x49, 0xE3, 0x60, 0xA2, 0xFF, 0x6A, 0x06, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, 0x7C, 0x9B, +0x79, 0xE6, 0x60, 0xA6, 0xE4, 0xED, 0x6C, 0xEA, +0xA7, 0x67, 0x4C, 0xED, 0x00, 0x6B, 0x01, 0x25, +0x01, 0x6B, 0xFF, 0x6A, 0x6C, 0xEA, 0x03, 0x63, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0x8C, 0xE9, +0x00, 0x68, 0xFF, 0x6A, 0x0C, 0xEA, 0x2E, 0xEA, +0x10, 0x2A, 0x91, 0x67, 0x00, 0x18, 0xEC, 0xDB, +0x91, 0x67, 0x00, 0x18, 0xDB, 0xDB, 0x91, 0x67, +0x00, 0x18, 0xF3, 0xDB, 0x91, 0x67, 0x00, 0x18, +0xBD, 0xDB, 0x91, 0x67, 0x00, 0x18, 0xB3, 0xDB, +0x0F, 0x10, 0x90, 0x67, 0x00, 0x18, 0x12, 0xDC, +0x90, 0x67, 0x00, 0x18, 0x01, 0xDC, 0x90, 0x67, +0x00, 0x18, 0x19, 0xDC, 0x90, 0x67, 0x00, 0x18, +0xD1, 0xDB, 0x90, 0x67, 0x00, 0x18, 0xC7, 0xDB, +0x01, 0x48, 0x05, 0x70, 0xDA, 0x61, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF7, 0x90, 0x9A, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, +0xA0, 0x9C, 0x52, 0x9B, 0xAC, 0xEA, 0x53, 0xDB, +0x40, 0xDC, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0xD1, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, +0x3C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, +0x10, 0x4A, 0x40, 0x9A, 0x60, 0x99, 0x30, 0xF0, +0x20, 0x6C, 0xA0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF7, 0x54, 0x9A, 0x63, 0xF7, 0x18, 0x4C, +0x80, 0x9C, 0x00, 0x9A, 0x1A, 0x65, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0x9C, 0x63, 0xF7, 0x1C, 0x4A, +0x40, 0x9A, 0x01, 0xD4, 0x30, 0xF0, 0x20, 0x6C, +0x40, 0x9A, 0xC6, 0xF5, 0xF0, 0x9C, 0x00, 0xD2, +0x44, 0x67, 0xC6, 0xF5, 0x10, 0x4A, 0xC1, 0x9A, +0x83, 0x9A, 0x6C, 0xEF, 0xAC, 0xEE, 0x01, 0x93, +0xA2, 0x9A, 0xE8, 0xDA, 0x6C, 0xEC, 0x0C, 0xED, +0x64, 0x9A, 0x00, 0x90, 0x8B, 0xDA, 0xC9, 0xDA, +0x0C, 0xEB, 0xAA, 0xDA, 0x6C, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF2, 0x10, 0x4A, 0x40, 0x9A, +0xE0, 0xD9, 0x18, 0x67, 0xC0, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF7, 0x18, 0x4A, 0x40, 0x9A, +0xA0, 0xD8, 0x80, 0xDA, 0x30, 0xF0, 0x20, 0x6C, +0x63, 0xF7, 0x1C, 0x4C, 0x80, 0x9C, 0x60, 0xDC, +0x05, 0x91, 0x04, 0x90, 0x03, 0x63, 0x20, 0xE8, +0xFF, 0x63, 0x01, 0xD1, 0x00, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF1, 0x18, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF7, 0xE0, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF7, 0xC4, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x80, 0x98, +0xB4, 0x9A, 0x60, 0x9F, 0x20, 0x9E, 0x8C, 0xED, +0x95, 0x9A, 0xB7, 0xDA, 0x6C, 0xEC, 0x76, 0x9A, +0x98, 0xDA, 0x2C, 0xEB, 0x79, 0xDA, 0xA0, 0xD8, +0x80, 0xDF, 0x60, 0xDE, 0x01, 0x91, 0x00, 0x90, +0x01, 0x63, 0x20, 0xE8, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xE0, 0xF0, 0x95, 0xA2, +0x01, 0x6B, 0x8C, 0xEB, 0x06, 0x23, 0xA0, 0xF0, +0x64, 0x9A, 0x08, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, +0x64, 0xDA, 0x20, 0xE8, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x23, 0xF1, 0x98, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0xA3, 0xF3, 0x7C, 0x9A, 0x8D, 0xEB, +0xA3, 0xF3, 0x7C, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, 0xE0, 0xF0, +0x88, 0xA0, 0x40, 0xEA, 0x01, 0x72, 0x1F, 0x61, +0xC0, 0xF0, 0x64, 0xA0, 0x7F, 0x6A, 0x6C, 0xEA, +0x1A, 0x22, 0xC3, 0xF3, 0x5D, 0xA0, 0x01, 0x6B, +0x6E, 0xEA, 0x15, 0x2A, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF2, 0x68, 0x9B, 0xFF, 0x6C, 0x55, 0x4C, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, +0x58, 0x9A, 0x02, 0x6B, 0x00, 0x6D, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, +0xC0, 0xF0, 0xCC, 0xA0, 0x40, 0xEA, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, +0x07, 0x6D, 0xB8, 0xEC, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x10, 0x4B, 0x01, 0x6E, 0x12, 0xEC, +0x71, 0xE4, 0x40, 0xF1, 0xA2, 0xA4, 0xCC, 0xED, +0x1D, 0x25, 0x40, 0xF1, 0xA3, 0xA4, 0x42, 0xF6, +0x6C, 0x9B, 0x40, 0xF1, 0x82, 0xA4, 0x75, 0xE5, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, 0x68, 0x9B, +0xBC, 0x35, 0x21, 0x4D, 0x75, 0xE5, 0xE0, 0xA5, +0x9E, 0x33, 0x9A, 0x34, 0xCC, 0xEC, 0x78, 0x33, +0x9C, 0x34, 0x4C, 0xEF, 0x8D, 0xEB, 0xED, 0xEB, +0x00, 0xF6, 0x60, 0x33, 0x00, 0xF6, 0x63, 0x33, +0x4C, 0xEB, 0x60, 0xC5, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0x86, 0xF6, 0xB4, 0xA3, 0x7F, 0x6B, 0xFF, 0x6A, +0xAC, 0xEB, 0x4C, 0xEB, 0x4C, 0xEC, 0x02, 0x23, +0x00, 0x18, 0x99, 0xCD, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x30, 0xF0, +0x20, 0x68, 0x2C, 0xEC, 0xC6, 0xF5, 0x10, 0x48, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0xD4, 0x80, 0xF3, +0x5C, 0x9A, 0xE0, 0xF0, 0x88, 0xA0, 0x40, 0xEA, +0x01, 0x72, 0x15, 0x61, 0xC0, 0xF0, 0x64, 0xA0, +0x7F, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x0F, 0x22, +0xC3, 0xF3, 0x71, 0xA0, 0x02, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0xC3, 0xF3, 0x51, 0xC0, 0xC3, 0xF3, +0x51, 0xA0, 0x07, 0x6B, 0x6C, 0xEA, 0x03, 0x2A, +0x04, 0x94, 0x00, 0x18, 0x2C, 0xCE, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x69, 0x30, 0xF0, 0x20, 0x68, 0x2C, 0xEC, +0xC6, 0xF5, 0x10, 0x48, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0xD4, 0x80, 0xF3, 0x5C, 0x9A, 0xE0, 0xF0, +0x88, 0xA0, 0x40, 0xEA, 0x01, 0x72, 0x21, 0x61, +0xC0, 0xF0, 0x64, 0xA0, 0x7F, 0x6A, 0x6C, 0xEA, +0x2C, 0xEA, 0x1B, 0x22, 0xC0, 0xF0, 0x85, 0xA0, +0x10, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x2C, 0xEB, +0x20, 0x73, 0x08, 0x60, 0x01, 0x72, 0x06, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, 0x40, 0x9A, +0x40, 0xEA, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x86, 0xF6, 0x74, 0xA2, 0x7F, 0x6A, 0x6C, 0xEA, +0x02, 0x72, 0x03, 0x60, 0x04, 0x94, 0x00, 0x18, +0xFC, 0xCD, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x30, 0xF0, +0x20, 0x68, 0x2C, 0xEC, 0xC6, 0xF5, 0x10, 0x48, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0xD4, 0x80, 0xF3, +0x5C, 0x9A, 0xE0, 0xF0, 0x88, 0xA0, 0x40, 0xEA, +0x01, 0x72, 0x35, 0x61, 0xC0, 0xF0, 0x64, 0xA0, +0x7F, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x2F, 0x22, +0xC3, 0xF3, 0x5D, 0xA0, 0x01, 0x6B, 0x6E, 0xEA, +0x0B, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF2, +0x68, 0x9B, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF1, 0x58, 0x9A, 0x02, 0x6B, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xC3, 0xF3, 0x8C, 0xA2, 0x03, 0x6B, 0x6B, 0xEB, +0x6C, 0xEC, 0xC3, 0xF3, 0x8C, 0xC2, 0xC3, 0xF3, +0x91, 0xA2, 0x8C, 0xEB, 0xC3, 0xF3, 0x71, 0xC2, +0xC3, 0xF3, 0x51, 0xA2, 0x07, 0x6B, 0x6C, 0xEA, +0x04, 0x2A, 0x04, 0x94, 0x00, 0x18, 0x2C, 0xCE, +0x06, 0x10, 0x00, 0x6C, 0x00, 0x18, 0x37, 0xE1, +0x04, 0x94, 0x00, 0x18, 0x18, 0xCE, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x68, +0x8C, 0xE8, 0x90, 0x67, 0x00, 0x18, 0x10, 0xC6, +0x16, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x05, 0xF3, 0x77, 0xA2, 0x0E, 0xEB, +0x05, 0x2B, 0x05, 0xF3, 0x75, 0xA2, 0x01, 0x4B, +0x05, 0xF3, 0x75, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x8A, 0xF1, 0x5F, 0xA2, 0x02, 0x72, 0x03, 0x60, +0x90, 0x67, 0x00, 0x18, 0xE1, 0xCE, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xEE, 0x35, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, +0xC3, 0xF3, 0x6D, 0xA0, 0x02, 0x6A, 0xFF, 0x69, +0x6C, 0xEA, 0x2C, 0xEC, 0x2C, 0xEA, 0x04, 0xD4, +0x23, 0x22, 0x03, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xC3, 0xF3, 0x4D, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF4, 0x44, 0x9A, 0x01, 0x6D, 0x40, 0xEA, +0xC3, 0xF3, 0x8D, 0xA0, 0x01, 0x6B, 0x4C, 0xEB, +0x09, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, 0xC0, 0xF0, +0x84, 0xA0, 0x6C, 0x33, 0x6D, 0xEA, 0x7F, 0x6B, +0x8C, 0xEB, 0x2C, 0xEB, 0xC3, 0xF3, 0x4D, 0xC0, +0x07, 0x23, 0x08, 0x6B, 0x4C, 0xEB, 0x2C, 0xEB, +0x03, 0x23, 0x04, 0x94, 0x00, 0x18, 0x2C, 0xCE, +0x04, 0x95, 0x01, 0x6C, 0x80, 0x18, 0x87, 0x12, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xC6, 0xF5, 0x10, 0x48, 0xC3, 0xF3, 0x6D, 0xA0, +0xFF, 0x69, 0x01, 0x6A, 0x8C, 0xE9, 0x6C, 0xEA, +0xFF, 0x6C, 0x8C, 0xEA, 0x2E, 0x22, 0x02, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xC3, 0xF3, 0x4D, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x44, 0x9A, +0x91, 0x67, 0x00, 0x6D, 0x40, 0xEA, 0xC3, 0xF3, +0x8D, 0xA0, 0x01, 0x6B, 0x6C, 0xEA, 0xFA, 0x4B, +0x48, 0x32, 0x8C, 0xEB, 0x4D, 0xEB, 0x04, 0x6A, +0x6C, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, 0xC3, 0xF3, +0x6D, 0xC0, 0x09, 0x22, 0x91, 0x67, 0x00, 0x18, +0x2C, 0xCE, 0x43, 0xF4, 0x4B, 0xA0, 0x0D, 0x22, +0x00, 0x6C, 0xA4, 0x67, 0x08, 0x10, 0x43, 0xF4, +0x4B, 0xA0, 0x07, 0x22, 0x91, 0x67, 0x00, 0x18, +0x2C, 0xCE, 0x00, 0x6C, 0x01, 0x6D, 0x00, 0x18, +0x04, 0xC8, 0xB1, 0x67, 0x00, 0x6C, 0x80, 0x18, +0x87, 0x12, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x00, 0x18, 0x88, 0xD8, 0x02, 0x67, +0x01, 0x6A, 0x0C, 0xEA, 0x0E, 0x22, 0x00, 0x6C, +0x01, 0x6D, 0x00, 0x18, 0xF3, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xC3, 0xF3, +0x8E, 0xA2, 0x05, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x0C, 0x10, 0x00, 0x6C, 0xA4, 0x67, 0x00, 0x18, +0xF3, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0xC3, 0xF3, 0x8E, 0xA2, 0x04, 0x6B, +0x8D, 0xEB, 0xC3, 0xF3, 0x6E, 0xC2, 0x40, 0x6A, +0x0C, 0xEA, 0x0F, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF7, 0x54, 0x9A, 0x60, 0xA2, 0x00, 0xF6, +0x60, 0x33, 0x00, 0xF6, 0x63, 0x33, 0x00, 0x53, +0x00, 0x6B, 0x02, 0x61, 0x80, 0x6B, 0x6B, 0xEB, +0x60, 0xC2, 0x10, 0x6B, 0x0C, 0xEB, 0x0C, 0x23, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x01, 0x6B, 0x43, 0xF4, 0x78, 0xC2, 0x04, 0x6B, +0xE3, 0xF3, 0x60, 0xCA, 0x01, 0x6E, 0x0A, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x43, 0xF4, 0x78, 0xC2, 0x03, 0x6B, 0xE3, 0xF3, +0x60, 0xCA, 0x03, 0x6E, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF3, 0x80, 0xA2, 0xE3, 0xF0, 0x60, 0x9B, +0xFF, 0x6D, 0x08, 0x6F, 0x80, 0xC3, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF1, 0x8C, 0x9B, 0xEB, 0xEF, +0x60, 0xA4, 0xAC, 0xEB, 0xEC, 0xEB, 0xCD, 0xEB, +0xAC, 0xEB, 0x60, 0xC4, 0x43, 0xF4, 0xB8, 0xA2, +0x30, 0xF0, 0x20, 0x6C, 0xAA, 0xF1, 0x0E, 0x4C, +0x00, 0x18, 0x7B, 0xDF, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xEC, 0xF0, 0x6C, 0xA2, +0x02, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, +0x00, 0x18, 0xD9, 0xDA, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x4A, 0xC1, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0xD1, 0x08, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xC6, 0xF5, 0x10, 0x48, 0xC0, 0xF0, 0x64, 0xA0, +0x7F, 0x6A, 0xFF, 0x69, 0x6C, 0xEA, 0x1E, 0x22, +0xC0, 0xF0, 0x87, 0xA0, 0x96, 0x34, 0x2C, 0xEC, +0x00, 0x18, 0xD6, 0xD8, 0x02, 0x6B, 0x4C, 0xEB, +0x2C, 0xEB, 0x07, 0x23, 0xC0, 0xF0, 0x87, 0xA0, +0x96, 0x34, 0x2C, 0xEC, 0x00, 0x18, 0xE1, 0xCB, +0x0D, 0x10, 0xC0, 0xF0, 0x87, 0xA0, 0xC3, 0xF3, +0x6C, 0xA0, 0x05, 0x6A, 0x4B, 0xEA, 0x96, 0x34, +0x6C, 0xEA, 0x2C, 0xEC, 0xC3, 0xF3, 0x4C, 0xC0, +0x00, 0x18, 0x2C, 0xCE, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xC0, 0xF0, 0x84, 0xA2, +0x7F, 0x6B, 0x8C, 0xEB, 0x07, 0x23, 0xC0, 0xF0, +0x87, 0xA2, 0xFF, 0x6A, 0x96, 0x34, 0x4C, 0xEC, +0x00, 0x18, 0x33, 0xCE, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0x2C, 0xEC, +0x06, 0x74, 0x5E, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF7, 0x78, 0x9A, 0x01, 0x6C, 0x30, 0xF0, +0x20, 0x68, 0x40, 0xA3, 0xC6, 0xF5, 0x10, 0x48, +0x2C, 0xEA, 0x8D, 0xEA, 0x2C, 0xEA, 0x40, 0xC3, +0xE0, 0xF0, 0x72, 0xA0, 0x7F, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x2C, 0xEA, 0x81, 0x72, 0x5F, 0x61, +0xE0, 0xF0, 0x8F, 0xA0, 0x7F, 0x6A, 0x4C, 0xEC, +0x2C, 0xEC, 0x80, 0x18, 0xF9, 0x3A, 0x01, 0x72, +0x26, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x48, 0x9A, 0x32, 0x6C, 0x40, 0xEA, 0xE0, 0xF0, +0x8F, 0xA0, 0x7F, 0x6A, 0x4C, 0xEC, 0x2C, 0xEC, +0x80, 0x18, 0xF9, 0x3A, 0x48, 0x22, 0x00, 0x6C, +0x00, 0x18, 0x47, 0xD1, 0xE0, 0xF0, 0x6E, 0xA0, +0x20, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x3F, 0x2A, +0xE0, 0xF0, 0x8F, 0xA0, 0x7F, 0x6A, 0x4C, 0xEC, +0x2C, 0xEC, 0x80, 0x18, 0x10, 0x3B, 0xE0, 0xF0, +0x8F, 0xA0, 0x7F, 0x6A, 0x4C, 0xEC, 0x2C, 0xEC, +0x80, 0x18, 0x1B, 0x3B, 0x30, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, 0x32, 0x6C, +0x40, 0xEA, 0xE0, 0xF0, 0x8F, 0xA0, 0x7F, 0x6A, +0x4C, 0xEC, 0x2C, 0xEC, 0x80, 0x18, 0xF9, 0x3A, +0x01, 0x72, 0x21, 0x60, 0x01, 0x6C, 0x00, 0x18, +0x47, 0xD1, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, +0x84, 0x9A, 0x80, 0x18, 0x9E, 0x57, 0x17, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x05, 0xF3, 0x78, 0xA2, 0x6E, 0xEC, 0x0F, 0x2C, +0xE0, 0xF0, 0x92, 0xA2, 0x10, 0x6B, 0x8C, 0xEB, +0x2C, 0xEB, 0x09, 0x2B, 0x30, 0xF0, 0x20, 0x6C, +0xA0, 0xF0, 0x64, 0x9A, 0x23, 0xF1, 0x98, 0x9C, +0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x86, 0xF6, 0x57, 0xA2, 0xFF, 0x68, +0x8C, 0xE8, 0x56, 0x32, 0x0E, 0xEA, 0x06, 0x2A, +0x90, 0x67, 0x00, 0x18, 0xE3, 0xCD, 0x00, 0x6C, +0x00, 0x18, 0x02, 0xC6, 0x90, 0x67, 0x00, 0x6D, +0x00, 0x18, 0x4B, 0xCD, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0x69, 0x3D, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0xF1, 0xD1, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0xEE, 0xD1, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0x1A, 0x37, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0x64, 0x36, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x10, 0x4B, 0x24, 0x67, 0xC0, 0xF0, +0x87, 0xA3, 0xFF, 0x6A, 0x4C, 0xE9, 0x96, 0x34, +0x2E, 0xEC, 0x0F, 0x2C, 0xC0, 0xF0, 0xA4, 0xA3, +0x7F, 0x6C, 0xAC, 0xEC, 0x4C, 0xEC, 0x09, 0x24, +0xC3, 0xF3, 0x8C, 0xA3, 0x40, 0x6B, 0x8C, 0xEB, +0x4C, 0xEB, 0x03, 0x23, 0x91, 0x67, 0x00, 0x18, +0x12, 0xDC, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x05, 0xF3, 0x7D, 0xA2, 0x2E, 0xEB, +0x11, 0x2B, 0x05, 0xF3, 0x7C, 0xA2, 0x1F, 0x6C, +0x6A, 0x32, 0x8C, 0xEA, 0x47, 0xE9, 0x01, 0x6C, +0x8C, 0xEA, 0x08, 0x22, 0x02, 0x6A, 0x6C, 0xEA, +0xFF, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, +0x00, 0x18, 0xD9, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0xEC, 0xF0, 0x47, 0xA2, 0x2E, 0xEA, 0x03, 0x2A, +0x91, 0x67, 0x80, 0x18, 0xC3, 0x12, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x05, 0xF3, +0x10, 0xA2, 0x04, 0xD2, 0x2E, 0xE8, 0x06, 0x28, +0x91, 0x67, 0x80, 0x18, 0xFA, 0x0F, 0x04, 0x92, +0x05, 0xF3, 0x12, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x57, 0xA2, 0x2E, 0xEA, 0x03, 0x2A, +0x91, 0x67, 0x80, 0x18, 0x9E, 0x15, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0x00, 0x18, 0x1D, 0xD8, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, 0x68, 0x9B, +0xFF, 0x6A, 0x4C, 0xEE, 0x6D, 0xE4, 0x08, 0x68, +0x80, 0xA3, 0xDB, 0xE0, 0x02, 0x67, 0x4C, 0xED, +0x07, 0xEE, 0xD0, 0x67, 0x4C, 0xEF, 0x04, 0xED, +0x4C, 0xEC, 0xCC, 0xEF, 0x0F, 0xE8, 0x8C, 0xE8, +0xE4, 0xED, 0xED, 0xE8, 0x4C, 0xE8, 0x00, 0xC3, +0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x48, 0x9A, +0xFF, 0xF7, 0x1F, 0x6B, 0x8C, 0xEB, 0x4D, 0xE3, +0x40, 0xA3, 0xFF, 0x6C, 0x8C, 0xEE, 0x08, 0x6B, +0xDB, 0xE3, 0x8C, 0xED, 0x8C, 0xEA, 0x64, 0x67, +0x47, 0xED, 0x67, 0xEE, 0x6C, 0xEA, 0x8C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, +0x78, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0xAC, 0xF1, +0x0D, 0x4A, 0x40, 0xDB, 0x00, 0x68, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF7, 0x4C, 0x9A, 0x40, 0x9A, +0x21, 0x22, 0xE0, 0xF3, 0x09, 0x70, 0x13, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x7C, 0x9A, +0x20, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xA3, 0xF3, 0x7C, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x7C, 0xDA, 0x00, 0x6A, 0x0C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x32, 0x6C, +0x01, 0x48, 0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE8, 0xD9, 0x17, 0x01, 0x6A, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x78, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0x2C, 0xF2, 0x01, 0x4A, +0x40, 0xDB, 0x00, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF7, 0xB0, 0x9A, 0xFF, 0x6C, 0x40, 0xA5, +0xA0, 0xA5, 0x8C, 0xEA, 0xAC, 0xEC, 0x4E, 0xEC, +0x19, 0x24, 0x64, 0x73, 0x12, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF1, 0x9C, 0x9B, 0x40, 0x6D, +0x60, 0x9C, 0xAD, 0xEB, 0x60, 0xDC, 0x30, 0xF0, +0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, 0xA3, 0xF3, +0x9C, 0x9B, 0xAD, 0xEC, 0xA3, 0xF3, 0x9C, 0xDB, +0x20, 0xE8, 0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xEB, 0xDC, 0x17, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x69, 0x8C, 0xE9, 0x00, 0x68, 0x2B, 0x10, +0x82, 0xF3, 0x08, 0x70, 0x12, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x7C, 0x9A, 0x10, 0x6C, +0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xA3, 0xF3, +0x7C, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, 0x7C, 0xDA, +0x14, 0x10, 0xFF, 0xF7, 0x1F, 0x6A, 0x01, 0x48, +0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x14, 0x6C, 0x40, 0xEA, 0x33, 0x58, +0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, +0x54, 0x9A, 0x01, 0x6B, 0x40, 0xA2, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x6A, 0x0C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF7, 0x54, 0x9A, 0x01, 0x6B, +0x40, 0x9A, 0x42, 0x32, 0x5E, 0x32, 0x6C, 0xEA, +0x2E, 0xEA, 0xCA, 0x2A, 0x43, 0x67, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x78, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0x0C, 0xF3, 0x09, 0x4A, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, +0x58, 0x9A, 0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0xF8, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, +0x78, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0x0C, 0xF3, +0x0A, 0x4A, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0x4C, 0xEC, 0x94, 0x34, 0x4C, 0xED, +0x4C, 0xEC, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, +0x5C, 0x9A, 0x80, 0xC2, 0xA0, 0xC2, 0x20, 0xE8, +0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF7, +0x7C, 0x9B, 0x4C, 0xEC, 0x94, 0x34, 0x4C, 0xEC, +0x80, 0xC3, 0x60, 0xA3, 0x6C, 0xEA, 0x20, 0xE8, +0xFF, 0x6A, 0x4C, 0xED, 0xFF, 0x75, 0x4C, 0xEC, +0xCC, 0xEA, 0x06, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x10, 0x4B, 0x71, 0xE4, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, +0x71, 0xE4, 0xA3, 0xF3, 0x68, 0xA4, 0xAC, 0xEA, +0xAF, 0xED, 0x6C, 0xED, 0xAD, 0xEA, 0xA3, 0xF3, +0x48, 0xC4, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x6B, 0x6C, 0xEC, 0x07, 0x6A, +0x6C, 0xED, 0x8C, 0xEA, 0x01, 0x68, 0xE6, 0x67, +0x04, 0xEA, 0xAB, 0xEE, 0x30, 0xF0, 0x20, 0x6A, +0xAD, 0xEE, 0x40, 0xF4, 0x40, 0x9A, 0x6C, 0xE8, +0xC0, 0xF7, 0xC3, 0x36, 0x8E, 0x34, 0x6C, 0xEF, +0xB0, 0x67, 0x0C, 0xEE, 0x6C, 0xEC, 0x40, 0xEA, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x00, 0x18, 0xC2, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF3, 0x7C, 0x9A, 0xEF, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x00, 0x6C, 0x00, 0x18, +0xA0, 0xD8, 0x00, 0x18, 0xBE, 0xC7, 0x2B, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x62, 0xA2, +0x08, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, +0x22, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, +0x60, 0x9A, 0x7F, 0xF7, 0x1F, 0x6A, 0x30, 0xF0, +0x20, 0x68, 0x80, 0xAB, 0x07, 0x69, 0x8C, 0xEA, +0x40, 0xCB, 0x80, 0xF3, 0x4C, 0x98, 0x0A, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF5, +0x40, 0x9A, 0x0A, 0x6C, 0x20, 0xC2, 0x80, 0xF3, +0x4C, 0x98, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF5, 0x44, 0x9A, 0x0A, 0x6C, 0x20, 0xC2, +0x80, 0xF3, 0x4C, 0x98, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xC3, 0xF3, +0x8C, 0xA2, 0x7F, 0x6B, 0x8C, 0xEB, 0xC3, 0xF3, +0x6C, 0xC2, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xC6, 0xF5, 0x10, 0x48, 0xC3, 0xF3, 0x6C, 0xA0, +0x80, 0x6A, 0x4B, 0xEA, 0x6D, 0xEA, 0xC3, 0xF3, +0x4C, 0xC0, 0x43, 0xF4, 0x58, 0xA0, 0x04, 0xD2, +0x80, 0xF0, 0x01, 0x22, 0x02, 0x6A, 0xC3, 0xF3, +0x50, 0xC0, 0x5C, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x7D, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x30, 0xF0, 0x21, 0x6C, 0xFC, 0xF7, +0x18, 0x4C, 0xBF, 0x67, 0xA0, 0xDC, 0x9A, 0xB8, +0x00, 0x65, 0xBB, 0xB8, 0x00, 0x65, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF1, 0x7C, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x83, 0xF1, 0x80, 0x9C, 0x40, 0x9B, +0x10, 0x6D, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF1, 0x54, 0x9A, 0x04, 0x6B, +0xFF, 0x6C, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x00, 0x6B, 0x42, 0xF6, +0x72, 0xC2, 0xC3, 0xF3, 0x7E, 0xAA, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF7, 0x44, 0x9A, 0x60, 0xCA, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, 0x7C, 0x9A, +0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xC3, 0x01, 0x6C, 0x00, 0x18, 0xA0, 0xD8, +0xA0, 0xF0, 0x0E, 0x22, 0x58, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x79, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x30, 0xF0, 0x21, 0x69, +0xDC, 0xF7, 0x0C, 0x49, 0x12, 0xE8, 0x00, 0xD9, +0x10, 0xE8, 0x01, 0xD9, 0x42, 0xD9, 0x63, 0xD9, +0x84, 0xD9, 0xA5, 0xD9, 0xC6, 0xD9, 0xE7, 0xD9, +0x18, 0x67, 0x08, 0xD9, 0x1A, 0xB8, 0x00, 0x65, +0x09, 0xD9, 0x30, 0xF0, 0x21, 0x68, 0xDC, 0xF7, +0x0C, 0x48, 0x3B, 0xB8, 0x00, 0x65, 0x2A, 0xD8, +0x1A, 0xB8, 0x00, 0x65, 0x58, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x79, 0xB9, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x77, 0xF0, 0x20, 0x68, +0x80, 0xF0, 0x10, 0x48, 0x00, 0x98, 0x01, 0x69, +0x2D, 0xE8, 0x77, 0xF0, 0x20, 0x69, 0x80, 0xF0, +0x10, 0x49, 0x00, 0xD9, 0x1A, 0xB8, 0x00, 0x65, +0x3B, 0xB8, 0x00, 0x65, 0x48, 0x10, 0x01, 0x6A, +0xC3, 0xF3, 0x50, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF3, 0x7E, 0xA8, 0xC3, 0xF7, 0x44, 0x9A, +0x60, 0xCA, 0x00, 0x18, 0xBE, 0xC7, 0x23, 0x22, +0xC0, 0xF0, 0x72, 0xA0, 0x08, 0x6A, 0x6C, 0xEA, +0x1E, 0x22, 0x7D, 0x67, 0x87, 0x43, 0x09, 0x4C, +0x30, 0xF0, 0x20, 0x6A, 0x60, 0xA4, 0x23, 0xF5, +0x40, 0x9A, 0x9D, 0x67, 0x80, 0x6D, 0x60, 0xC2, +0x67, 0x44, 0x09, 0x4B, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xA3, 0x23, 0xF5, 0x44, 0x9A, 0x80, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, 0x60, 0x9A, +0xFF, 0xF7, 0x1F, 0x6C, 0x40, 0xAB, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF3, 0x7C, 0x9A, 0xFF, 0x68, +0x10, 0x6C, 0x40, 0xA3, 0x0C, 0xEA, 0x8D, 0xEA, +0x0C, 0xEA, 0x40, 0xC3, 0x01, 0x6C, 0x00, 0x18, +0xA0, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, +0x78, 0x9A, 0x01, 0x6C, 0x40, 0xA3, 0x0C, 0xEA, +0x8D, 0xEA, 0x0C, 0xEA, 0x40, 0xC3, 0x20, 0xBA, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, +0xFF, 0x74, 0xAC, 0xEA, 0x05, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x6A, 0xF1, 0x47, 0xC3, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, +0x83, 0xF3, 0xB7, 0xA3, 0x8C, 0xEA, 0x8F, 0xEC, +0xAC, 0xEC, 0x8D, 0xEA, 0x83, 0xF3, 0x57, 0xC3, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0x26, 0x67, +0x0C, 0xE9, 0x53, 0x71, 0x0C, 0xEC, 0x0C, 0xED, +0x09, 0x60, 0x06, 0x2C, 0x30, 0xF0, 0x20, 0x6A, +0x6A, 0xF1, 0x46, 0xA2, 0xAD, 0xEA, 0x0B, 0x10, +0x00, 0x18, 0xA5, 0xD9, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x83, 0xF3, 0x77, 0xA2, +0x83, 0xF3, 0x56, 0xA2, 0x6D, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF1, 0x6C, 0x9B, 0x0C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x6A, 0xF1, +0x24, 0xC2, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0xEC, 0xF0, 0x4D, 0xA2, 0xFF, 0x63, 0x05, 0x5A, +0x36, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x48, 0x32, +0x82, 0xF7, 0x0C, 0x4B, 0x4D, 0xE3, 0x40, 0x9B, +0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, +0x48, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, 0x40, 0x9A, +0x1A, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, +0x48, 0x9A, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF7, 0x58, 0x9A, 0x0D, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF7, 0x58, 0x9A, 0x40, 0x9A, +0x50, 0x32, 0x00, 0xF5, 0x42, 0x32, 0x08, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, 0x5C, 0x9A, +0x40, 0x9A, 0xE1, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, +0x00, 0xD2, 0x00, 0x93, 0xE0, 0xF3, 0x08, 0x6A, +0x60, 0x33, 0x68, 0x33, 0x5B, 0xEB, 0x01, 0x2A, +0xE5, 0xE8, 0x12, 0xEA, 0x01, 0x10, 0x66, 0x6A, +0x00, 0xD2, 0x00, 0x92, 0x01, 0x63, 0x20, 0xE8, +0xFF, 0x63, 0x01, 0xD0, 0x15, 0x2C, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x7C, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x83, 0xF0, 0x8C, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xA3, 0xF3, 0x7C, 0x9A, +0x8D, 0xEB, 0xA3, 0xF3, 0x7C, 0xDA, 0x5D, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x05, 0xF3, 0xBC, 0xA2, 0x03, 0x6B, 0x6B, 0xEB, +0xAC, 0xEB, 0x05, 0xF3, 0x7C, 0xC2, 0x25, 0xF3, +0xC0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x0C, 0xF1, +0x0C, 0x4A, 0x00, 0x6D, 0x18, 0x6F, 0xF8, 0xED, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, +0x12, 0xEF, 0x6D, 0xE7, 0x25, 0xF3, 0x10, 0xA3, +0x01, 0x6F, 0xEC, 0xE8, 0x23, 0x20, 0x25, 0xF3, +0x70, 0xA3, 0x66, 0x33, 0xEC, 0xEB, 0xFF, 0x6F, +0xEC, 0xEB, 0x1C, 0x23, 0xFF, 0xF7, 0x78, 0x9A, +0x9B, 0xEB, 0x01, 0x2C, 0xE5, 0xE8, 0x12, 0xEB, +0xFF, 0xF7, 0x7C, 0xDA, 0x10, 0xEF, 0x03, 0x27, +0x01, 0x4B, 0xFF, 0xF7, 0x7C, 0xDA, 0x60, 0x9A, +0x78, 0xEE, 0x12, 0xEB, 0x9B, 0xEB, 0x01, 0x2C, +0xE5, 0xE8, 0x12, 0xEB, 0x60, 0xDA, 0xFF, 0xF7, +0x7C, 0x9A, 0x04, 0x2B, 0x01, 0x6F, 0xFF, 0xF7, +0xFC, 0xDA, 0x60, 0xDA, 0x01, 0x4D, 0x0A, 0x75, +0x18, 0x4A, 0xCC, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x25, 0xF3, 0x64, 0x9A, +0x25, 0xF3, 0x80, 0xDA, 0x7B, 0xEC, 0x01, 0x2B, +0xE5, 0xE8, 0x05, 0xF3, 0x9C, 0xA2, 0x12, 0xEB, +0x25, 0xF3, 0x68, 0xDA, 0x78, 0x67, 0x25, 0xF3, +0x6C, 0xDA, 0x02, 0x6B, 0x8D, 0xEB, 0x05, 0xF3, +0x7C, 0xC2, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, 0x05, 0xF3, +0x5C, 0xA0, 0x03, 0x6B, 0x4C, 0xEB, 0x00, 0x6A, +0x2B, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, +0x40, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xFF, 0x6E, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x48, 0x9A, 0xEC, 0xF0, 0x0C, 0x4C, 0x00, 0x6D, +0x05, 0x4E, 0x40, 0xEA, 0x05, 0x6A, 0x66, 0x6B, +0x5B, 0xEB, 0x01, 0x2A, 0xE5, 0xE8, 0x25, 0xF3, +0x44, 0xD8, 0x25, 0xF3, 0x60, 0xD8, 0x05, 0xF3, +0x7C, 0xA0, 0x12, 0xEA, 0x25, 0xF3, 0x48, 0xD8, +0x01, 0x6A, 0x4B, 0xEA, 0x05, 0xF3, 0x5D, 0xC0, +0x7D, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x01, 0x6B, +0x6D, 0xEA, 0x05, 0xF3, 0x5C, 0xC0, 0x43, 0x67, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, 0x05, 0xF3, +0x9C, 0xA0, 0x01, 0x6B, 0x00, 0x6A, 0x8C, 0xEB, +0x22, 0x23, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, +0x40, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x03, 0x6A, +0x4B, 0xEA, 0x8C, 0xEA, 0x05, 0xF3, 0x5C, 0xC0, +0x00, 0x18, 0xC7, 0xD9, 0x04, 0xD2, 0x04, 0x94, +0x00, 0x18, 0xE8, 0xD9, 0x05, 0xF3, 0x7C, 0xA0, +0x02, 0x6A, 0x25, 0xF3, 0xC4, 0x98, 0x6D, 0xEA, +0x05, 0xF3, 0x5C, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF3, 0x48, 0x9A, 0x42, 0xF1, 0x1C, 0x6C, +0x01, 0x6D, 0x40, 0xEA, 0x01, 0x6A, 0x07, 0x97, +0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, +0x05, 0xF3, 0xBC, 0xA3, 0x02, 0x6C, 0x00, 0x6A, +0xAC, 0xEC, 0x0C, 0x24, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF7, 0x40, 0x9A, 0x00, 0x6C, 0x80, 0xC2, +0x03, 0x6A, 0x4B, 0xEA, 0xAC, 0xEA, 0x05, 0xF3, +0x5C, 0xC3, 0x01, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0x00, 0x6A, 0x18, 0x6C, 0x98, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, 0x01, 0x4A, +0x0A, 0x72, 0x12, 0xEC, 0x71, 0xE4, 0x25, 0xF3, +0xB0, 0xA4, 0x02, 0x6B, 0x6B, 0xEB, 0xAC, 0xEB, +0x25, 0xF3, 0x70, 0xC4, 0xEE, 0x61, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0xEC, 0xF0, 0x4C, 0xA2, +0x01, 0x6B, 0x4C, 0xEB, 0x00, 0x6A, 0x1C, 0x23, +0x30, 0xF0, 0x20, 0x6A, 0x0C, 0xF1, 0x10, 0x4A, +0x00, 0x6B, 0xA0, 0x9A, 0x8E, 0xED, 0x0F, 0x2D, +0x18, 0x6E, 0xD8, 0xEB, 0x30, 0xF0, 0x20, 0x6D, +0xC6, 0xF5, 0x10, 0x4D, 0x12, 0xEE, 0xB9, 0xE6, +0x25, 0xF3, 0xF0, 0xA6, 0x02, 0x6D, 0xAB, 0xED, +0xEC, 0xED, 0x25, 0xF3, 0xB0, 0xC6, 0x01, 0x4B, +0x0A, 0x73, 0x18, 0x4A, 0xEA, 0x61, 0x01, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x5D, 0x67, 0x0A, 0xD4, +0x20, 0xF0, 0x98, 0xA2, 0x30, 0xF0, 0x20, 0x6A, +0x0B, 0xD5, 0x0C, 0xD6, 0xC6, 0xF5, 0x10, 0x4A, +0x05, 0xF3, 0xBC, 0xA2, 0x01, 0x6B, 0x00, 0xF6, +0xE0, 0x31, 0xAC, 0xEB, 0x00, 0xF6, 0x23, 0x31, +0x80, 0xF0, 0x09, 0x23, 0x21, 0x24, 0x01, 0x74, +0x80, 0xF0, 0x05, 0x61, 0x0A, 0x93, 0x80, 0xF0, +0x02, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF7, +0x64, 0x9B, 0xC3, 0xEB, 0x7C, 0x61, 0x7F, 0x71, +0x7A, 0x60, 0xFF, 0xF7, 0x1F, 0x51, 0x77, 0x61, +0x25, 0xF3, 0x00, 0x9A, 0x1B, 0xEE, 0x01, 0x28, +0xE5, 0xE8, 0x10, 0xEA, 0x12, 0xE8, 0x02, 0x22, +0x01, 0x48, 0x04, 0x10, 0x03, 0x28, 0x01, 0x68, +0x50, 0x67, 0x1D, 0x10, 0x01, 0x6B, 0x1E, 0x10, +0x0A, 0x94, 0x65, 0x24, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF7, 0x64, 0x9B, 0x0C, 0x95, 0xA3, 0xEB, +0x5E, 0x61, 0x7F, 0x71, 0x5C, 0x60, 0xFF, 0xF7, +0x1F, 0x51, 0x59, 0x61, 0x25, 0xF3, 0x04, 0x9A, +0x1B, 0xED, 0x01, 0x28, 0xE5, 0xE8, 0x10, 0xEA, +0x12, 0xE8, 0x02, 0x22, 0x01, 0x48, 0x05, 0x10, +0x04, 0x28, 0x01, 0x68, 0x00, 0x6A, 0x04, 0xD2, +0x02, 0x10, 0x00, 0x6B, 0x04, 0xD3, 0x0A, 0x94, +0x00, 0x18, 0x72, 0xDA, 0x00, 0x6C, 0xFF, 0x6E, +0xA4, 0x67, 0xCC, 0xED, 0x1D, 0x65, 0x18, 0x6D, +0xB8, 0xEC, 0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, +0x10, 0x4B, 0x01, 0x6D, 0x12, 0xEA, 0x69, 0xE2, +0x25, 0xF3, 0x50, 0xA2, 0xAC, 0xEA, 0xCC, 0xEA, +0x2F, 0x2A, 0xD8, 0x67, 0x18, 0x6F, 0xF8, 0xEE, +0x04, 0x96, 0xC4, 0x36, 0x04, 0xD6, 0x03, 0x6E, +0xCB, 0xEE, 0x12, 0xEC, 0x71, 0xE4, 0x25, 0xF3, +0xF0, 0xA4, 0xEC, 0xEE, 0x04, 0x97, 0xED, 0xEE, +0x25, 0xF3, 0xD0, 0xC4, 0x0A, 0x96, 0x45, 0xF3, +0xC0, 0xDC, 0x0B, 0x97, 0x45, 0xF3, 0xE4, 0xDC, +0x0C, 0x96, 0x18, 0x6F, 0x25, 0xF3, 0xD4, 0xDC, +0xD8, 0x67, 0x01, 0x4E, 0xF8, 0xEE, 0x12, 0xEE, +0x6D, 0xE6, 0x25, 0xF3, 0x44, 0xDB, 0x25, 0xF3, +0x00, 0xDB, 0x25, 0xF3, 0x51, 0xC4, 0x25, 0xF3, +0x50, 0xA4, 0x25, 0xF3, 0x32, 0xC4, 0x4D, 0xED, +0x25, 0xF3, 0xB0, 0xC4, 0x01, 0x6A, 0x04, 0x10, +0x01, 0x4C, 0x0A, 0x74, 0xBC, 0x61, 0x00, 0x6A, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x06, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x0C, 0xF1, 0x0C, 0x4A, 0x00, 0x6C, +0x4A, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x0C, 0xF1, +0x0C, 0x4A, 0x00, 0x6B, 0x18, 0x6D, 0xB8, 0xEB, +0x30, 0xF0, 0x20, 0x6C, 0xC6, 0xF5, 0x10, 0x4C, +0x12, 0xED, 0x91, 0xE5, 0x25, 0xF3, 0xD0, 0xA4, +0x01, 0x6D, 0xAC, 0xEE, 0x08, 0x26, 0x25, 0xF3, +0x90, 0xA4, 0x86, 0x34, 0xAC, 0xEC, 0x03, 0x24, +0x80, 0x9A, 0x01, 0x4C, 0x80, 0xDA, 0x01, 0x4B, +0x0A, 0x73, 0x18, 0x4A, 0xE7, 0x61, 0x00, 0x18, +0xC7, 0xD9, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xC0, 0xF0, 0x67, 0xA2, +0x05, 0xF3, 0xBD, 0xA2, 0xFF, 0x6C, 0x76, 0x33, +0xAE, 0xEB, 0x12, 0x2B, 0xC0, 0xF0, 0xA4, 0xA2, +0x7F, 0x6B, 0xAC, 0xEB, 0x8C, 0xEB, 0x0C, 0x23, +0xC0, 0xF0, 0xA5, 0xA2, 0x0F, 0x6B, 0xAC, 0xEB, +0x8C, 0xEB, 0x06, 0x23, 0x04, 0x93, 0xC3, 0xF3, +0x56, 0xA2, 0x78, 0xEA, 0x12, 0xEA, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0x93, 0xEC, 0xF0, +0x50, 0x9A, 0x6E, 0xEA, 0x52, 0x22, 0x04, 0x94, +0x00, 0x18, 0xE8, 0xD9, 0x4E, 0x10, 0x18, 0x6D, +0xB8, 0xEC, 0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, +0x10, 0x4B, 0x12, 0xED, 0x6D, 0xE5, 0x25, 0xF3, +0xD0, 0xA3, 0x01, 0x6D, 0xAC, 0xEE, 0x0A, 0x26, +0x25, 0xF3, 0x70, 0xA3, 0x66, 0x33, 0xAC, 0xEB, +0xFF, 0x6D, 0xAC, 0xEB, 0x03, 0x2B, 0x60, 0x9A, +0x01, 0x4B, 0x60, 0xDA, 0x01, 0x4C, 0x0A, 0x74, +0x18, 0x4A, 0xE5, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x05, 0xF3, 0x7D, 0xA2, +0xFF, 0x73, 0x2B, 0x61, 0x25, 0xF3, 0x6C, 0x9A, +0x01, 0x4B, 0x25, 0xF3, 0x6C, 0xDA, 0x25, 0xF3, +0x48, 0x9A, 0x4E, 0xEB, 0x22, 0x2B, 0x30, 0xF0, +0x20, 0x6A, 0x0C, 0xF1, 0x0C, 0x4A, 0x18, 0x6D, +0xB8, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0xC6, 0xF5, +0x10, 0x4C, 0x12, 0xED, 0x91, 0xE5, 0x25, 0xF3, +0xD0, 0xA4, 0x01, 0x6D, 0xAC, 0xEE, 0x08, 0x26, +0x25, 0xF3, 0x90, 0xA4, 0x86, 0x34, 0xAC, 0xEC, +0x03, 0x24, 0x80, 0x9A, 0x01, 0x4C, 0x80, 0xDA, +0x01, 0x4B, 0x0A, 0x73, 0x18, 0x4A, 0xE7, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x78, 0x67, 0xEC, 0xF0, +0x7C, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0xA0, 0xF0, 0x64, 0x9A, 0x02, 0xF0, +0x00, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, +0x07, 0x97, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x0C, 0xF1, 0x01, 0x48, +0x00, 0x69, 0x18, 0x6A, 0x58, 0xE9, 0x30, 0xF0, +0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, 0x12, 0xEA, +0x69, 0xE2, 0x25, 0xF3, 0x90, 0xA2, 0x01, 0x6B, +0x8C, 0xEB, 0x27, 0x23, 0x00, 0xF0, 0x8B, 0x98, +0x00, 0xF0, 0x67, 0x98, 0x63, 0xEC, 0x21, 0x61, +0x61, 0x80, 0x81, 0x43, 0x04, 0xD4, 0x07, 0x2C, +0x00, 0xF0, 0x4F, 0x98, 0x00, 0xF0, 0x93, 0x98, +0x40, 0xEA, 0x04, 0x92, 0x14, 0x10, 0x80, 0xA0, +0x01, 0x4C, 0x80, 0xC0, 0x80, 0xA0, 0x82, 0xEB, +0x08, 0x60, 0x25, 0xF3, 0x90, 0xA2, 0x02, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0x25, 0xF3, 0x70, 0xC2, +0x08, 0x10, 0x00, 0xF0, 0x4F, 0x98, 0x00, 0xF0, +0x93, 0x98, 0x40, 0xEA, 0x00, 0x6A, 0x00, 0xF0, +0x4B, 0xD8, 0x01, 0x49, 0x0A, 0x71, 0x18, 0x48, +0xC8, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF0, 0x78, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0x4D, 0xF5, 0x15, 0x4A, 0x40, 0xDB, 0x01, 0x4A, +0x40, 0xDB, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF0, 0x78, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0x6D, 0xF5, 0x0D, 0x4A, 0x40, 0xDB, 0x01, 0x4A, +0x40, 0xDB, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF0, 0x78, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0x8D, 0xF5, 0x05, 0x4A, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF7, 0x6C, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF4, 0x58, 0x9A, 0x80, 0x9B, +0xA4, 0x67, 0x4C, 0xED, 0x4E, 0xED, 0x02, 0x25, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, 0x4C, 0x9A, +0x01, 0x6B, 0x40, 0x9A, 0x6C, 0xEA, 0x60, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, 0x50, 0x9A, +0x00, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF7, +0x54, 0x9A, 0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF7, 0x58, 0x9A, 0xC0, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF7, 0x5C, 0x9A, 0xA0, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF0, 0x40, 0x9A, +0x80, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0xF0, +0x44, 0x9A, 0x40, 0x9A, 0x41, 0x22, 0x30, 0xF0, +0x20, 0x69, 0x04, 0xF0, 0x28, 0x99, 0x60, 0xD9, +0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF0, 0x6C, 0x9B, +0x00, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF0, +0x70, 0x9B, 0xE0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF1, 0x74, 0x9B, 0xC0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF1, 0x78, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF2, 0x78, 0x9B, +0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, +0x74, 0x9B, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF5, +0x90, 0x9C, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x7C, 0x9A, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0x5C, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x7D, 0xB9, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x77, 0xF0, 0x24, 0x6C, 0xC0, 0xF1, +0x04, 0x4C, 0xAE, 0xB8, 0x00, 0x65, 0xA0, 0xDC, +0x9A, 0xB8, 0x00, 0x65, 0xBB, 0xB8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x78, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0x8D, 0xF5, 0x06, 0x4A, +0x40, 0xDB, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFF, 0x6B, 0x6C, 0xEC, +0x0F, 0x6A, 0x8C, 0xEA, 0x03, 0x2A, 0x92, 0x32, +0x6C, 0xEA, 0x20, 0xE8, 0x07, 0x4A, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x04, 0x2A, 0x01, 0x6C, +0x08, 0xF0, 0x00, 0x6D, 0x05, 0x10, 0x44, 0x32, +0xFF, 0x4A, 0x01, 0x6D, 0x02, 0x6C, 0xA4, 0xEA, +0x80, 0x18, 0x0C, 0x58, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x04, 0x2A, 0x01, 0x6C, +0x04, 0xF0, 0x00, 0x6D, 0x05, 0x10, 0xFF, 0x4A, +0x44, 0x32, 0x01, 0x6D, 0x02, 0x6C, 0xA4, 0xEA, +0x80, 0x18, 0x0C, 0x58, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x04, 0x2A, 0x01, 0x6C, +0x08, 0xF0, 0x00, 0x6D, 0x05, 0x10, 0x44, 0x32, +0xFF, 0x4A, 0x01, 0x6D, 0x02, 0x6C, 0xA4, 0xEA, +0x80, 0x18, 0x29, 0x58, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x04, 0x2A, 0x01, 0x6C, +0x04, 0xF0, 0x00, 0x6D, 0x05, 0x10, 0xFF, 0x4A, +0x44, 0x32, 0x01, 0x6D, 0x02, 0x6C, 0xA4, 0xEA, +0x80, 0x18, 0x29, 0x58, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6D, 0x8C, 0xED, 0x01, 0x6C, 0x44, 0x67, +0x15, 0x4D, 0x44, 0xED, 0xA2, 0x67, 0x80, 0x18, +0xA8, 0x57, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6D, 0x8C, 0xED, +0x04, 0x2D, 0x03, 0x6C, 0x10, 0xF0, 0x00, 0x6D, +0x05, 0x10, 0x1B, 0x4D, 0x01, 0x6A, 0x44, 0xED, +0x03, 0x6C, 0xA2, 0x67, 0x80, 0x18, 0xA8, 0x57, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0x00, 0x18, 0xAD, 0xDB, 0x01, 0x6D, 0x02, 0x6C, +0xA4, 0xEA, 0x80, 0x18, 0xA8, 0x57, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0x00, 0x18, 0xAD, 0xDB, +0x01, 0x6D, 0x03, 0x6C, 0xA4, 0xEA, 0x80, 0x18, +0xA8, 0x57, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6D, 0x8C, 0xED, +0x18, 0x4D, 0x01, 0x6A, 0x44, 0xED, 0x00, 0x6C, +0xA2, 0x67, 0x80, 0x18, 0xA8, 0x57, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6D, 0x8C, 0xED, 0x01, 0x6C, 0x44, 0x67, +0x15, 0x4D, 0x44, 0xED, 0xA2, 0x67, 0x80, 0x18, +0xD9, 0x57, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6D, 0x8C, 0xED, +0x04, 0x2D, 0x03, 0x6C, 0x10, 0xF0, 0x00, 0x6D, +0x05, 0x10, 0x1B, 0x4D, 0x01, 0x6A, 0x44, 0xED, +0x03, 0x6C, 0xA2, 0x67, 0x80, 0x18, 0xD9, 0x57, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x4C, 0xEC, +0x00, 0x18, 0xAD, 0xDB, 0x01, 0x6D, 0x02, 0x6C, +0xA4, 0xEA, 0x80, 0x18, 0xD9, 0x57, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0x00, 0x18, 0xAD, 0xDB, +0x01, 0x6D, 0x03, 0x6C, 0xA4, 0xEA, 0x80, 0x18, +0xD9, 0x57, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6D, 0x8C, 0xED, +0x18, 0x4D, 0x01, 0x6A, 0x44, 0xED, 0x00, 0x6C, +0xA2, 0x67, 0x80, 0x18, 0xD9, 0x57, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x78, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0x8E, 0xF0, 0x1D, 0x4A, +0x40, 0xDB, 0x00, 0x18, 0x22, 0xD6, 0x30, 0xF0, +0x20, 0x6A, 0x26, 0xF6, 0x6C, 0x9A, 0x6C, 0x23, +0x01, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0x44, 0xD6, 0x30, 0xF0, 0x20, 0x6A, 0x26, 0xF6, +0x4C, 0x9A, 0x02, 0x6B, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0xB0, 0xD7, 0x30, 0xF0, 0x20, 0x6A, +0x26, 0xF6, 0x4C, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0x97, 0xD7, 0x30, 0xF0, +0x20, 0x6A, 0x26, 0xF6, 0x4C, 0x9A, 0x08, 0x6B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x93, 0xD7, +0x30, 0xF0, 0x20, 0x6A, 0x26, 0xF6, 0x4C, 0x9A, +0x10, 0x6B, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0x45, 0xD6, 0x30, 0xF0, 0x20, 0x6A, 0x26, 0xF6, +0x4C, 0x9A, 0x20, 0x6B, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0x46, 0xD6, 0x30, 0xF0, 0x20, 0x6A, +0x26, 0xF6, 0x4C, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0x47, 0xD6, 0x30, 0xF0, +0x20, 0x6A, 0x26, 0xF6, 0x4C, 0x9A, 0x80, 0x6B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x8F, 0xD7, +0x30, 0xF0, 0x20, 0x6B, 0x26, 0xF6, 0x6C, 0x9B, +0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0x87, 0xD7, 0x30, 0xF0, 0x20, 0x6B, +0x26, 0xF6, 0x6C, 0x9B, 0x04, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x48, 0xD6, +0x30, 0xF0, 0x20, 0x6B, 0x26, 0xF6, 0x6C, 0x9B, +0x08, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0x49, 0xD6, 0x30, 0xF0, 0x20, 0x6B, +0x26, 0xF6, 0x6C, 0x9B, 0x10, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x4A, 0xD6, +0x30, 0xF0, 0x20, 0x6A, 0x26, 0xF6, 0x70, 0x9A, +0x3C, 0x23, 0x01, 0x6A, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0x4D, 0xD7, 0x30, 0xF0, 0x20, 0x6A, +0x26, 0xF6, 0x50, 0x9A, 0x02, 0x6B, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0x4B, 0xD6, 0x30, 0xF0, +0x20, 0x6B, 0x26, 0xF6, 0x70, 0x9B, 0x04, 0xF0, +0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, +0x00, 0x18, 0x29, 0xD7, 0x30, 0xF0, 0x20, 0x6B, +0x26, 0xF6, 0x70, 0x9B, 0x08, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, +0x0A, 0xD7, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF3, 0x4C, 0x9A, 0x26, 0xF6, +0x70, 0x9B, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0x4D, 0xD6, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF3, 0x40, 0x9A, 0x26, 0xF6, +0x70, 0x9B, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0x06, 0xD7, 0x30, 0xF0, 0x20, 0x6A, 0x26, 0xF6, +0x74, 0x9A, 0x55, 0x23, 0x01, 0x6A, 0x6C, 0xEA, +0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, 0x29, 0xD7, +0x30, 0xF0, 0x20, 0x6A, 0x26, 0xF6, 0x54, 0x9A, +0x02, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, +0x00, 0x18, 0x0A, 0xD7, 0x30, 0xF0, 0x20, 0x6A, +0x26, 0xF6, 0x54, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, +0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, 0x29, 0xD7, +0x30, 0xF0, 0x20, 0x6A, 0x26, 0xF6, 0x54, 0x9A, +0x08, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, +0x00, 0x18, 0x0A, 0xD7, 0x30, 0xF0, 0x20, 0x6A, +0x26, 0xF6, 0x54, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, +0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, 0x29, 0xD7, +0x30, 0xF0, 0x20, 0x6A, 0x26, 0xF6, 0x54, 0x9A, +0x20, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, +0x00, 0x18, 0x0A, 0xD7, 0x30, 0xF0, 0x20, 0x6A, +0x26, 0xF6, 0x54, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, +0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, 0x29, 0xD7, +0x30, 0xF0, 0x20, 0x6A, 0x26, 0xF6, 0x54, 0x9A, +0x80, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, +0x00, 0x18, 0x0A, 0xD7, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF0, 0x78, 0x9B, 0x10, 0xF0, 0x23, 0x6A, +0x8E, 0xF0, 0x1E, 0x4A, 0x40, 0xDB, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x78, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0xCE, 0xF2, 0x15, 0x4A, +0x40, 0xDB, 0x00, 0x18, 0xF2, 0xD5, 0x30, 0xF0, +0x20, 0x6A, 0x06, 0xF6, 0x7C, 0x9A, 0xC0, 0xF0, +0x0D, 0x23, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, +0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, 0xBB, 0xD7, +0x30, 0xF0, 0x20, 0x6B, 0x06, 0xF6, 0x7C, 0x9B, +0x04, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, +0x01, 0x6C, 0x00, 0x18, 0xBB, 0xD7, 0x30, 0xF0, +0x20, 0x6B, 0x06, 0xF6, 0x7C, 0x9B, 0x08, 0xF0, +0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, +0x00, 0x18, 0xBB, 0xD7, 0x30, 0xF0, 0x20, 0x6B, +0x06, 0xF6, 0x7C, 0x9B, 0x10, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, +0xBB, 0xD7, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF1, 0x58, 0x9A, 0x06, 0xF6, +0x7C, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, +0x00, 0x18, 0xBB, 0xD7, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF1, 0x40, 0x9A, +0x06, 0xF6, 0x7C, 0x9B, 0x6C, 0xEA, 0x03, 0x22, +0x05, 0x6C, 0x00, 0x18, 0xBB, 0xD7, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF1, +0x44, 0x9A, 0x06, 0xF6, 0x7C, 0x9B, 0x6C, 0xEA, +0x03, 0x22, 0x06, 0x6C, 0x00, 0x18, 0xBB, 0xD7, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF1, 0x48, 0x9A, 0x06, 0xF6, 0x7C, 0x9B, +0x6C, 0xEA, 0x03, 0x22, 0x07, 0x6C, 0x00, 0x18, +0xBB, 0xD7, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF5, 0x50, 0x9A, 0x06, 0xF6, +0x7C, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x08, 0x6C, +0x00, 0x18, 0xBB, 0xD7, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, 0x40, 0x9A, +0x06, 0xF6, 0x7C, 0x9B, 0x6C, 0xEA, 0x03, 0x22, +0x09, 0x6C, 0x00, 0x18, 0xBB, 0xD7, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF6, +0x54, 0x9A, 0x06, 0xF6, 0x7C, 0x9B, 0x6C, 0xEA, +0x03, 0x22, 0x0A, 0x6C, 0x00, 0x18, 0xBB, 0xD7, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF1, 0x40, 0x9A, 0x06, 0xF6, 0x7C, 0x9B, +0x6C, 0xEA, 0x03, 0x22, 0x0B, 0x6C, 0x00, 0x18, +0xBB, 0xD7, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF3, 0x4C, 0x9A, 0x06, 0xF6, +0x7C, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x0C, 0x6C, +0x00, 0x18, 0xBB, 0xD7, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0x40, 0x9A, +0x06, 0xF6, 0x7C, 0x9B, 0x6C, 0xEA, 0x03, 0x22, +0x0D, 0x6C, 0x00, 0x18, 0xBB, 0xD7, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, +0x44, 0x9A, 0x06, 0xF6, 0x7C, 0x9B, 0x6C, 0xEA, +0x03, 0x22, 0x0E, 0x6C, 0x00, 0x18, 0xBB, 0xD7, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF4, 0x48, 0x9A, 0x06, 0xF6, 0x7C, 0x9B, +0x6C, 0xEA, 0x03, 0x22, 0x0F, 0x6C, 0x00, 0x18, +0xBB, 0xD7, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, +0x78, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0xCE, 0xF2, +0x16, 0x4A, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x78, 0x9B, +0x10, 0xF0, 0x23, 0x6A, 0x8E, 0xF4, 0x1D, 0x4A, +0x40, 0xDB, 0x00, 0x18, 0xF9, 0xD5, 0x30, 0xF0, +0x20, 0x6A, 0xE6, 0xF5, 0x70, 0x9A, 0x35, 0x23, +0x08, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, +0x00, 0x18, 0x90, 0xD6, 0x30, 0xF0, 0x20, 0x6A, +0xE6, 0xF5, 0x50, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0x19, 0xD8, 0x30, 0xF0, +0x20, 0x6A, 0xE6, 0xF5, 0x50, 0x9A, 0x20, 0x6B, +0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, 0x15, 0xD8, +0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF5, 0x50, 0x9A, +0x40, 0x6B, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0x37, 0xD6, 0x30, 0xF0, 0x20, 0x6B, 0xE6, 0xF5, +0x70, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x02, 0x22, 0x00, 0x18, 0x11, 0xD8, 0x30, 0xF0, +0x20, 0x6B, 0xE6, 0xF5, 0x70, 0x9B, 0x00, 0xF2, +0x00, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x00, 0x18, +0x0D, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF5, +0x74, 0x9A, 0x80, 0xF0, 0x07, 0x23, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF1, 0x40, 0x9A, 0x6C, 0xEA, +0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, 0xF4, 0xD6, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF6, 0x54, 0x9A, 0xE6, 0xF5, 0x74, 0x9B, +0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, +0xF4, 0xD6, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF1, 0x40, 0x9A, 0xE6, 0xF5, +0x74, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, +0x00, 0x18, 0xF4, 0xD6, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, 0x4C, 0x9A, +0xE6, 0xF5, 0x74, 0x9B, 0x6C, 0xEA, 0x03, 0x22, +0x03, 0x6C, 0x00, 0x18, 0xF4, 0xD6, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, +0x40, 0x9A, 0xE6, 0xF5, 0x74, 0x9B, 0x6C, 0xEA, +0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, 0xF4, 0xD6, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF1, 0x40, 0x9A, 0xE6, 0xF5, 0x74, 0x9B, +0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, +0x5A, 0xD6, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF1, 0x44, 0x9A, 0xE6, 0xF5, +0x74, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x00, 0x6C, +0x00, 0x18, 0xCD, 0xD6, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF1, 0x48, 0x9A, +0xE6, 0xF5, 0x74, 0x9B, 0x6C, 0xEA, 0x03, 0x22, +0x00, 0x6C, 0x00, 0x18, 0xB0, 0xD6, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, +0x50, 0x9A, 0xE6, 0xF5, 0x74, 0x9B, 0x6C, 0xEA, +0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, 0x99, 0xD6, +0x30, 0xF0, 0x20, 0x6B, 0xE6, 0xF5, 0x74, 0x9B, +0x08, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0x09, 0xD8, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, 0x58, 0x9A, +0xE6, 0xF5, 0x74, 0x9B, 0x6C, 0xEA, 0x02, 0x22, +0x00, 0x18, 0x39, 0xD6, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x8A, 0x9A, 0x35, 0x24, +0x01, 0x6B, 0x6C, 0xEC, 0x06, 0x24, 0x9F, 0x9A, +0x6D, 0xEC, 0x9F, 0xDA, 0x00, 0x6C, 0x00, 0x18, +0x4C, 0xD8, 0x30, 0xF0, 0x20, 0x6B, 0xE6, 0xF5, +0x78, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, 0x4C, 0xD8, +0x30, 0xF0, 0x20, 0x6B, 0xE6, 0xF5, 0x78, 0x9B, +0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, +0x02, 0x6C, 0x00, 0x18, 0x4C, 0xD8, 0x30, 0xF0, +0x20, 0x6B, 0xE6, 0xF5, 0x78, 0x9B, 0x00, 0xF4, +0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, +0x00, 0x18, 0x4C, 0xD8, 0x30, 0xF0, 0x20, 0x6B, +0xE6, 0xF5, 0x78, 0x9B, 0x01, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, +0x4C, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF5, +0x7C, 0x9A, 0x6D, 0x23, 0x01, 0x6A, 0x6C, 0xEA, +0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, 0xFC, 0xD7, +0x30, 0xF0, 0x20, 0x6B, 0xE6, 0xF5, 0x7C, 0x9B, +0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, 0x03, 0x22, +0x01, 0x6C, 0x00, 0x18, 0xFC, 0xD7, 0x30, 0xF0, +0x20, 0x6B, 0xE6, 0xF5, 0x7C, 0x9B, 0x00, 0xF2, +0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, +0x00, 0x18, 0xFC, 0xD7, 0x30, 0xF0, 0x20, 0x6B, +0xE6, 0xF5, 0x7C, 0x9B, 0x00, 0xF4, 0x00, 0x6A, +0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, +0xFC, 0xD7, 0x30, 0xF0, 0x20, 0x6B, 0xE6, 0xF5, +0x7C, 0x9B, 0x01, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, +0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, 0xFC, 0xD7, +0x30, 0xF0, 0x20, 0x6B, 0xE6, 0xF5, 0x7C, 0x9B, +0x10, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, +0x00, 0x6C, 0x00, 0x18, 0xC1, 0xC1, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, +0x50, 0x9A, 0xE6, 0xF5, 0x7C, 0x9B, 0x6C, 0xEA, +0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, 0xC1, 0xC1, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF3, 0x58, 0x9A, 0xE6, 0xF5, 0x7C, 0x9B, +0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, +0xC1, 0xC1, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF1, 0x54, 0x9A, 0xE6, 0xF5, +0x7C, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, +0x00, 0x18, 0xC1, 0xC1, 0x30, 0xF0, 0x20, 0x6A, +0xE6, 0xF5, 0x5C, 0x9A, 0x00, 0x52, 0x03, 0x60, +0x04, 0x6C, 0x00, 0x18, 0xC1, 0xC1, 0x30, 0xF0, +0x20, 0x6A, 0x06, 0xF6, 0x60, 0x9A, 0xC0, 0xF0, +0x18, 0x23, 0x01, 0x6A, 0x6C, 0xEA, 0x03, 0x22, +0x01, 0x6C, 0x00, 0x18, 0x5A, 0xD6, 0x30, 0xF0, +0x20, 0x6A, 0x06, 0xF6, 0x40, 0x9A, 0x02, 0x6B, +0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, +0xCD, 0xD6, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0xF6, +0x40, 0x9A, 0x04, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x01, 0x6C, 0x00, 0x18, 0xB0, 0xD6, 0x30, 0xF0, +0x20, 0x6A, 0x06, 0xF6, 0x40, 0x9A, 0x08, 0x6B, +0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, 0x00, 0x18, +0x99, 0xD6, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0xF6, +0x40, 0x9A, 0x10, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x02, 0x6C, 0x00, 0x18, 0x5A, 0xD6, 0x30, 0xF0, +0x20, 0x6A, 0x06, 0xF6, 0x40, 0x9A, 0x20, 0x6B, +0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, +0xCD, 0xD6, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0xF6, +0x40, 0x9A, 0x40, 0x6B, 0x6C, 0xEA, 0x03, 0x22, +0x02, 0x6C, 0x00, 0x18, 0xB0, 0xD6, 0x30, 0xF0, +0x20, 0x6A, 0x06, 0xF6, 0x40, 0x9A, 0x80, 0x6B, +0x6C, 0xEA, 0x03, 0x22, 0x02, 0x6C, 0x00, 0x18, +0x99, 0xD6, 0x30, 0xF0, 0x20, 0x6B, 0x06, 0xF6, +0x60, 0x9B, 0xFF, 0x6A, 0x01, 0x4A, 0x6C, 0xEA, +0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, 0x5A, 0xD6, +0x30, 0xF0, 0x20, 0x6B, 0x06, 0xF6, 0x60, 0x9B, +0x00, 0xF2, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, +0x03, 0x6C, 0x00, 0x18, 0xCD, 0xD6, 0x30, 0xF0, +0x20, 0x6B, 0x06, 0xF6, 0x60, 0x9B, 0x00, 0xF4, +0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, +0x00, 0x18, 0xB0, 0xD6, 0x30, 0xF0, 0x20, 0x6B, +0x06, 0xF6, 0x60, 0x9B, 0x01, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, +0x99, 0xD6, 0x30, 0xF0, 0x20, 0x6B, 0x06, 0xF6, +0x60, 0x9B, 0x02, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, +0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, 0x5A, 0xD6, +0x30, 0xF0, 0x20, 0x6B, 0x06, 0xF6, 0x60, 0x9B, +0x04, 0xF0, 0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, +0x04, 0x6C, 0x00, 0x18, 0xCD, 0xD6, 0x30, 0xF0, +0x20, 0x6B, 0x06, 0xF6, 0x60, 0x9B, 0x08, 0xF0, +0x00, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, +0x00, 0x18, 0xB0, 0xD6, 0x30, 0xF0, 0x20, 0x6B, +0x06, 0xF6, 0x60, 0x9B, 0x10, 0xF0, 0x00, 0x6A, +0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, +0x99, 0xD6, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF1, 0x58, 0x9A, 0x06, 0xF6, +0x60, 0x9B, 0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, +0x00, 0x18, 0x90, 0xD6, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF1, 0x40, 0x9A, +0x06, 0xF6, 0x60, 0x9B, 0x6C, 0xEA, 0x03, 0x22, +0x02, 0x6C, 0x00, 0x18, 0x90, 0xD6, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF1, +0x44, 0x9A, 0x06, 0xF6, 0x60, 0x9B, 0x6C, 0xEA, +0x03, 0x22, 0x03, 0x6C, 0x00, 0x18, 0x90, 0xD6, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF1, 0x48, 0x9A, 0x06, 0xF6, 0x60, 0x9B, +0x6C, 0xEA, 0x03, 0x22, 0x04, 0x6C, 0x00, 0x18, +0x90, 0xD6, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, +0x78, 0x9B, 0x10, 0xF0, 0x23, 0x6A, 0x8E, 0xF4, +0x1E, 0x4A, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xDD, 0x63, 0x45, 0x62, +0x44, 0xD1, 0x43, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xFF, 0x69, 0x24, 0xF0, 0x40, 0x9A, 0x8C, 0xE9, +0x30, 0x31, 0x49, 0xE1, 0x40, 0xD2, 0x40, 0xA2, +0x00, 0xF6, 0x40, 0x32, 0x00, 0xF6, 0x43, 0x32, +0x00, 0x52, 0x40, 0x60, 0x01, 0x6A, 0x7D, 0x67, +0x4B, 0xEA, 0x54, 0xC3, 0x0F, 0x6A, 0x56, 0xC3, +0x10, 0x6A, 0x57, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x24, 0xF0, 0x44, 0x9A, 0x30, 0xF0, 0x20, 0x68, +0x06, 0x04, 0x49, 0xE1, 0x40, 0x9A, 0x04, 0x05, +0x04, 0x6E, 0x04, 0xD2, 0x80, 0xF2, 0x4C, 0x98, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, +0x48, 0x9A, 0x07, 0x04, 0x04, 0x05, 0x49, 0xE1, +0x40, 0x9A, 0x04, 0x6E, 0x04, 0xD2, 0x80, 0xF2, +0x4C, 0x98, 0x40, 0xEA, 0x40, 0x93, 0x08, 0x04, +0x04, 0x05, 0x40, 0x9B, 0x04, 0x6E, 0x04, 0xD2, +0x80, 0xF2, 0x4C, 0x98, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x24, 0xF0, 0x4C, 0x9A, 0x09, 0x04, +0x04, 0x05, 0x45, 0xE1, 0x40, 0x99, 0x04, 0x6E, +0x04, 0xD2, 0x80, 0xF2, 0x4C, 0x98, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, +0x05, 0x04, 0x40, 0xEA, 0x45, 0x97, 0x44, 0x91, +0x43, 0x90, 0x23, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x24, 0xF0, 0x84, 0x9C, +0x50, 0x33, 0x91, 0xE3, 0x80, 0x9C, 0x30, 0xF0, +0x20, 0x6C, 0x24, 0xF0, 0x88, 0x9C, 0x8D, 0xE3, +0x82, 0x67, 0x60, 0x9B, 0x00, 0x18, 0x5D, 0xDE, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF1, 0x50, 0x9A, 0x24, 0xF0, 0x70, 0x9B, +0x00, 0xA2, 0x20, 0xA3, 0xFF, 0x6A, 0x4C, 0xE8, +0x4C, 0xE9, 0x2A, 0xE8, 0x2B, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0x24, 0xF0, 0x44, 0x9A, 0x10, 0x33, +0x49, 0xE3, 0x40, 0xA2, 0xFF, 0x6B, 0x6C, 0xEA, +0x56, 0x32, 0x6C, 0xEA, 0x04, 0x72, 0x09, 0x60, +0x06, 0x72, 0x0C, 0x60, 0x02, 0x72, 0x10, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x54, 0x9A, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x58, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x5C, 0x9A, 0x90, 0x67, 0x40, 0xEA, +0x01, 0x48, 0x7F, 0x6A, 0x4C, 0xE8, 0x0A, 0xE9, +0xDA, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, +0x50, 0x9A, 0x20, 0xC2, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0xFF, 0x6B, +0xE2, 0x67, 0x6C, 0xEE, 0x6C, 0xEF, 0x1E, 0x65, +0x87, 0x67, 0x03, 0x6E, 0xCC, 0xEC, 0x80, 0xF0, +0x10, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0x24, 0xF0, +0x14, 0x9C, 0x08, 0x69, 0x42, 0x32, 0x80, 0xA0, +0x52, 0x32, 0x6C, 0xEA, 0x6C, 0xEC, 0x2D, 0xEC, +0x6C, 0xEC, 0x80, 0xC0, 0x30, 0xF0, 0x20, 0x6C, +0x24, 0xF0, 0x98, 0x9C, 0xCC, 0xEA, 0xE0, 0xC4, +0x30, 0xF0, 0x20, 0x6C, 0x24, 0xF0, 0x9C, 0x9C, +0x40, 0xC4, 0x0F, 0x6A, 0x98, 0x67, 0x8C, 0xEA, +0x74, 0x22, 0x01, 0x6C, 0x4C, 0xEC, 0x06, 0x24, +0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF0, 0x80, 0x9C, +0xAC, 0xEB, 0x60, 0xC4, 0x02, 0x6B, 0x4C, 0xEB, +0x08, 0x23, 0xFF, 0x6C, 0xA2, 0x33, 0x8C, 0xEB, +0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF0, 0x84, 0x9C, +0x60, 0xC4, 0x04, 0x6B, 0x4C, 0xEB, 0x09, 0x23, +0xA2, 0x33, 0xFF, 0x6C, 0x62, 0x33, 0x8C, 0xEB, +0x30, 0xF0, 0x20, 0x6C, 0x44, 0xF0, 0x88, 0x9C, +0x60, 0xC4, 0x4E, 0x33, 0x07, 0x23, 0x30, 0xF0, +0x20, 0x6B, 0x44, 0xF0, 0x6C, 0x9B, 0x00, 0xF6, +0xA2, 0x35, 0xA0, 0xC3, 0x20, 0x6B, 0x4D, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF0, 0x50, 0x9A, +0x64, 0x68, 0x60, 0xC2, 0x2C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, +0xFF, 0x48, 0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE8, 0x21, 0x28, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x23, 0xF4, 0x88, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0xA3, 0xF3, 0x7C, 0x9A, 0x8D, 0xEB, +0xA3, 0xF3, 0x7C, 0xDA, 0x60, 0xA1, 0xD0, 0x6A, +0x6C, 0xEA, 0x40, 0xC1, 0x30, 0xF0, 0x20, 0x6A, +0x24, 0xF0, 0x74, 0x9A, 0xF7, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x16, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x44, 0xF0, 0x30, 0x9A, 0x20, 0x6A, +0x60, 0xA1, 0x6C, 0xEA, 0xCC, 0x2A, 0x60, 0xA1, +0xF0, 0x6A, 0x6C, 0xEA, 0x40, 0xC1, 0x30, 0xF0, +0x20, 0x6A, 0x24, 0xF0, 0x74, 0x9A, 0xF7, 0x6A, +0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x6A, +0x01, 0x10, 0x00, 0x6A, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0xC2, 0x67, +0xFF, 0x6C, 0x8C, 0xEE, 0x03, 0x6D, 0x66, 0x67, +0xAC, 0xEB, 0x4B, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0x24, 0xF0, 0xF4, 0x9B, 0x08, 0x68, 0x42, 0x32, +0x60, 0xA7, 0x52, 0x32, 0x8C, 0xEA, 0x8C, 0xEB, +0x0D, 0xEB, 0x8C, 0xEB, 0x60, 0xC7, 0x30, 0xF0, +0x20, 0x6B, 0x24, 0xF0, 0x78, 0x9B, 0xAC, 0xEA, +0x64, 0x68, 0xC0, 0xC3, 0x30, 0xF0, 0x20, 0x6B, +0x24, 0xF0, 0x7C, 0x9B, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x44, 0xF0, 0x50, 0x9A, 0x30, 0x6B, +0x60, 0xC2, 0x2E, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0xFF, 0x48, +0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, +0x23, 0x28, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, +0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF4, +0x88, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xA3, 0xF3, 0x7C, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x7C, 0xDA, 0x60, 0xA1, 0xCF, 0x6A, 0x6C, 0xEA, +0x40, 0xC1, 0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, +0x74, 0x9A, 0xF7, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x01, 0x6A, 0x4B, 0xEA, 0x19, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF0, 0x30, 0x9A, +0x20, 0x6A, 0x60, 0xA1, 0x6C, 0xEA, 0xCA, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF0, 0x40, 0x9A, +0xEF, 0x6B, 0x40, 0x9A, 0x80, 0xA1, 0x8C, 0xEB, +0x60, 0xC1, 0x30, 0xF0, 0x20, 0x6B, 0x24, 0xF0, +0x94, 0x9B, 0xF7, 0x6B, 0xA0, 0xA4, 0xAC, 0xEB, +0x60, 0xC4, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF0, 0xB4, 0x9A, +0xE0, 0xF3, 0x10, 0x6C, 0x0F, 0x6E, 0x00, 0x18, +0xB8, 0xDE, 0xE0, 0xF3, 0x0C, 0x6C, 0x00, 0x18, +0x0C, 0xDF, 0xFF, 0x6B, 0x4C, 0xEB, 0x0B, 0x73, +0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x44, 0xF0, +0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF3, +0x84, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, 0x40, 0xDB, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x78, 0x9A, 0xFF, 0x6C, 0x20, 0x6D, +0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xC3, 0x40, 0xA3, 0x01, 0x6D, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x29, 0xF4, 0x40, 0xA2, 0x01, 0x72, 0x0C, 0x61, +0x01, 0x6C, 0x10, 0x6D, 0x00, 0x18, 0x2E, 0xD1, +0x04, 0x6B, 0x4D, 0xEB, 0xFF, 0x6E, 0x01, 0x6C, +0x10, 0x6D, 0x6C, 0xEE, 0x00, 0x18, 0x1D, 0xD1, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x29, 0xF4, 0x40, 0xA2, 0x01, 0x72, 0x0A, 0x61, +0x01, 0x6C, 0x10, 0x6D, 0x00, 0x18, 0x2E, 0xD1, +0xFB, 0x6E, 0x01, 0x6C, 0x10, 0x6D, 0x4C, 0xEE, +0x00, 0x18, 0x1D, 0xD1, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x29, 0xF4, 0x60, 0xA3, 0xFF, 0x6A, 0x24, 0x67, +0x01, 0x73, 0xAC, 0xEA, 0x07, 0x60, 0x03, 0x73, +0x05, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x44, 0xF0, +0x7C, 0x9B, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x64, 0xF0, 0x60, 0x9B, 0x06, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x64, 0xF0, 0x04, 0x9A, 0x6C, 0xE8, +0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF0, +0x08, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF0, +0x4C, 0x9A, 0x6D, 0xE8, 0x4C, 0xE8, 0x00, 0x18, +0xBE, 0xC7, 0x0C, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xA6, 0xF6, 0x62, 0xA2, 0x08, 0x6A, 0x6C, 0xEA, +0x05, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF0, +0x50, 0x9A, 0x4C, 0xE8, 0x02, 0x30, 0x02, 0x30, +0x00, 0xC9, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x69, +0x30, 0xF0, 0x20, 0x6B, 0x8C, 0xE9, 0x43, 0xF1, +0x94, 0x9B, 0xFF, 0x6A, 0x4C, 0xED, 0xC0, 0xA4, +0x4C, 0xEE, 0x07, 0x25, 0x8E, 0x6B, 0xCC, 0xEB, +0x60, 0xC4, 0x71, 0x6B, 0xCD, 0xEB, 0x4C, 0xEB, +0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF0, +0x60, 0x9A, 0xFF, 0x6C, 0x01, 0x6D, 0x40, 0xA3, +0x00, 0x68, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xC3, 0x22, 0x10, 0x64, 0x70, 0x16, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x7C, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF1, 0x84, 0x9C, +0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xA3, 0xF3, +0x7C, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, 0x7C, 0xDA, +0x00, 0x6A, 0x1C, 0x10, 0xFF, 0xF7, 0x1F, 0x6A, +0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF0, 0x40, 0x9A, +0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, 0xD6, 0x2A, +0xFF, 0xF7, 0x1F, 0x6A, 0x01, 0x49, 0x4C, 0xE9, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x40, 0x9A, +0x20, 0xCA, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x30, 0xF0, 0x20, 0x6D, +0x04, 0x04, 0x23, 0xF0, 0x10, 0x4D, 0x14, 0x6E, +0x00, 0x18, 0xD2, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x26, 0xF4, 0x11, 0x4A, 0x05, 0x04, 0x01, 0x6B, +0x30, 0xF0, 0x20, 0x6D, 0x86, 0xF6, 0xB7, 0xA5, +0xB6, 0x35, 0x6E, 0xED, 0x1B, 0x25, 0xC0, 0xA2, +0x19, 0x26, 0xE0, 0x9C, 0x1F, 0xF7, 0x00, 0x6D, +0xEC, 0xED, 0x02, 0xF0, 0x00, 0x75, 0x01, 0x60, +0x09, 0x2D, 0x30, 0xF0, 0x20, 0x6E, 0xA0, 0x9C, +0xA3, 0xF0, 0xD8, 0x9E, 0xB5, 0xE6, 0xC0, 0xA2, +0xC0, 0xC5, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6D, +0xA3, 0xF0, 0xBC, 0x9D, 0xFD, 0xE5, 0xC0, 0xC7, +0x00, 0x6D, 0xA0, 0xC2, 0x01, 0x4B, 0xFF, 0x6D, +0xAC, 0xEB, 0x04, 0x73, 0x01, 0x4A, 0x04, 0x4C, +0xD7, 0x61, 0x0B, 0x97, 0x06, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x30, 0xF0, 0x20, 0x6D, +0x04, 0x04, 0x03, 0xF0, 0x1C, 0x4D, 0x14, 0x6E, +0x00, 0x18, 0xD2, 0xD2, 0x05, 0x03, 0x00, 0x6C, +0x01, 0x6A, 0x30, 0xF0, 0x20, 0x6D, 0x86, 0xF6, +0xB7, 0xA5, 0xB6, 0x35, 0x4E, 0xED, 0x38, 0x25, +0xC0, 0x9B, 0x1F, 0xF7, 0x00, 0x6D, 0xCC, 0xED, +0x02, 0xF0, 0x00, 0x75, 0x01, 0x60, 0x09, 0x2D, +0x30, 0xF0, 0x20, 0x6E, 0xA3, 0xF0, 0xD8, 0x9E, +0xA0, 0x9B, 0xE1, 0x44, 0xB5, 0xE6, 0xC0, 0xA5, +0x07, 0x10, 0x30, 0xF0, 0x20, 0x6D, 0xA3, 0xF0, +0xBC, 0x9D, 0xE1, 0x44, 0xD9, 0xE5, 0xC0, 0xA6, +0xFF, 0x6D, 0xCC, 0xED, 0x30, 0xF0, 0x20, 0x6E, +0x26, 0xF4, 0x10, 0x4E, 0xD9, 0xE7, 0xA0, 0xC6, +0xC0, 0x9B, 0x1F, 0xF7, 0x00, 0x6D, 0xCC, 0xED, +0x02, 0xF0, 0x00, 0x75, 0x01, 0x60, 0x09, 0x2D, +0x30, 0xF0, 0x20, 0x6E, 0xA0, 0x9B, 0xA3, 0xF0, +0xD8, 0x9E, 0xB5, 0xE6, 0x00, 0x6E, 0xC0, 0xC5, +0x07, 0x10, 0x30, 0xF0, 0x20, 0x6D, 0xA3, 0xF0, +0xBC, 0x9D, 0xD9, 0xE5, 0x00, 0x6D, 0xA0, 0xC6, +0x01, 0x4A, 0xFF, 0x6D, 0xAC, 0xEA, 0x04, 0x72, +0x01, 0x4C, 0x04, 0x4B, 0xBA, 0x61, 0x0B, 0x97, +0x06, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6B, +0x84, 0xF0, 0xA4, 0x9B, 0xFF, 0x6A, 0x08, 0x6E, +0x60, 0xA5, 0xCB, 0xEE, 0x4C, 0xEC, 0x4C, 0xEB, +0xCC, 0xEB, 0x6D, 0xEC, 0x30, 0xF0, 0x20, 0x6B, +0x84, 0xF0, 0x68, 0x9B, 0x4C, 0xEC, 0x80, 0xC5, +0x60, 0xA3, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x84, 0xF0, 0xC4, 0x9B, +0xFF, 0x6A, 0x08, 0x6F, 0x60, 0xA6, 0xEB, 0xEF, +0x4C, 0xEC, 0x4C, 0xEB, 0xEC, 0xEB, 0x6D, 0xEC, +0x4C, 0xED, 0x4C, 0xEC, 0x30, 0xF0, 0x20, 0x6A, +0x84, 0xF0, 0x48, 0x9A, 0x80, 0xC6, 0xA0, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, +0x0F, 0x6D, 0x08, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0x83, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF3, +0xB0, 0x9B, 0xC3, 0xF4, 0x10, 0x69, 0x91, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0xB8, 0x9B, +0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF1, +0xB4, 0x9B, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x83, 0xF0, 0xAC, 0x9B, 0x91, 0x67, 0x00, 0x6E, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x69, +0x40, 0xEA, 0xC4, 0xF2, 0x1C, 0x48, 0xA5, 0xF7, +0x1C, 0x49, 0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xA8, 0xC1, 0x98, 0xC0, 0xF3, 0x44, 0x9A, +0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, 0x08, 0x48, +0x2A, 0xE8, 0xF4, 0x61, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0x6A, 0x8C, 0xEA, 0x0F, 0x5A, 0x08, 0x60, +0x30, 0xF0, 0x20, 0x6B, 0x48, 0x34, 0xA2, 0xF7, +0x00, 0x4B, 0x8D, 0xE3, 0x60, 0x9B, 0x00, 0xEB, +0x00, 0x6A, 0x20, 0xE8, 0xD0, 0xF4, 0x64, 0x42, +0x1F, 0xF7, 0x00, 0x6C, 0x8C, 0xEB, 0x05, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0x84, 0xF0, 0x6C, 0x9B, +0x2F, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x84, 0xF0, +0x70, 0x9B, 0x2A, 0x10, 0x80, 0xF4, 0x64, 0x42, +0x1F, 0xF7, 0x00, 0x6C, 0x8C, 0xEB, 0x05, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0x84, 0xF0, 0x74, 0x9B, +0x1F, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x84, 0xF0, +0x78, 0x9B, 0x1A, 0x10, 0xC0, 0xF4, 0x68, 0x42, +0x1F, 0xF7, 0x00, 0x6C, 0x8C, 0xEB, 0x05, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0x84, 0xF0, 0x7C, 0x9B, +0x0F, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xA4, 0xF0, +0x60, 0x9B, 0x0A, 0x10, 0x70, 0xF4, 0x68, 0x42, +0x1F, 0xF7, 0x00, 0x6C, 0x8C, 0xEB, 0x0A, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0xA4, 0xF0, 0x64, 0x9B, +0x69, 0xE2, 0x60, 0xAA, 0xFF, 0xF7, 0x1F, 0x6A, +0x6C, 0xEA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0xA4, 0xF0, 0x68, 0x9B, 0x69, 0xE2, 0x60, 0xAA, +0xFF, 0xF7, 0x1F, 0x6A, 0x6C, 0xEA, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF0, 0x78, 0x9B, 0x10, 0xF0, +0x24, 0x6A, 0x10, 0xF2, 0x01, 0x4A, 0x40, 0xDB, +0x00, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, +0x4C, 0x9A, 0x40, 0x9A, 0x21, 0x22, 0xE0, 0xF3, +0x09, 0x70, 0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x7C, 0x9A, 0x20, 0x6C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xA3, 0xF3, 0x7C, 0x9A, +0x8D, 0xEB, 0xA3, 0xF3, 0x7C, 0xDA, 0x00, 0x6A, +0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x32, 0x6C, 0x01, 0x48, 0x40, 0xEA, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0xD9, 0x17, +0x01, 0x6A, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x29, 0xF4, 0x40, 0xA2, 0x03, 0x72, 0x0D, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x24, 0xF0, 0x94, 0x9A, +0xFF, 0x6A, 0x60, 0xA4, 0x6C, 0xEA, 0x10, 0x6B, +0x4C, 0xEB, 0x03, 0x23, 0xEF, 0x6B, 0x4C, 0xEB, +0x60, 0xC4, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0x27, 0x67, +0x4C, 0xE9, 0x6F, 0x41, 0x4C, 0xEB, 0x04, 0x67, +0x02, 0x5B, 0x4C, 0xE8, 0x4C, 0xED, 0x4C, 0xEE, +0x03, 0x61, 0x90, 0x67, 0x00, 0x18, 0xDC, 0xD8, +0x10, 0x58, 0x55, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x08, 0x33, 0xC2, 0xF7, 0x1C, 0x4A, 0x69, 0xE2, +0x40, 0x9A, 0x00, 0xEA, 0xD0, 0xF4, 0x44, 0x40, +0x1F, 0xF7, 0x00, 0x6B, 0x6C, 0xEA, 0x05, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF0, 0x6C, 0x9A, +0x34, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF0, +0x70, 0x9A, 0x2F, 0x10, 0x80, 0xF4, 0x44, 0x40, +0x1F, 0xF7, 0x00, 0x6B, 0x6C, 0xEA, 0x05, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF0, 0x74, 0x9A, +0x24, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF0, +0x78, 0x9A, 0x1F, 0x10, 0xC0, 0xF4, 0x48, 0x40, +0x1F, 0xF7, 0x00, 0x6B, 0x6C, 0xEA, 0x05, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x84, 0xF0, 0x7C, 0x9A, +0x14, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF0, +0x60, 0x9A, 0x0F, 0x10, 0x70, 0xF4, 0x48, 0x40, +0x1F, 0xF7, 0x00, 0x6B, 0x6C, 0xEA, 0x05, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF0, 0x64, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF0, +0x68, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x6D, 0xE0, 0x41, 0xE0, 0x83, 0xF3, +0x98, 0xA0, 0xA3, 0xF3, 0x48, 0xA0, 0x8D, 0xEA, +0xFF, 0x6C, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x6A, 0xF1, 0x25, 0xC2, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x23, 0xF4, 0x04, 0x6C, +0x01, 0x6D, 0x80, 0x18, 0x6E, 0x3C, 0x01, 0x6B, +0x6E, 0xEA, 0x05, 0x97, 0x01, 0x5A, 0x58, 0x67, +0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x24, 0x67, 0xC0, 0xF0, +0x84, 0xA2, 0xE3, 0xF3, 0x60, 0xAA, 0x7F, 0x6A, +0x8C, 0xEA, 0x21, 0x22, 0x01, 0x4B, 0xE0, 0xF3, +0x08, 0x6A, 0x58, 0xEB, 0x12, 0xEC, 0x23, 0xEC, +0x04, 0xD4, 0x19, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x86, 0xF6, 0x97, 0xA2, 0x30, 0xF0, 0x20, 0x6A, +0xA4, 0xF0, 0x0C, 0x9A, 0x96, 0x34, 0xB0, 0x67, +0x80, 0x18, 0x24, 0x16, 0x43, 0xE0, 0x23, 0xE8, +0x0A, 0x61, 0x04, 0x92, 0x03, 0xEA, 0x07, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x0A, 0x6C, 0x40, 0xEA, 0xE7, 0x17, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xAA, 0xF1, 0x40, 0xA2, +0x02, 0x72, 0x58, 0x61, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x69, 0xC4, 0xF1, 0x10, 0x48, +0xC4, 0xF2, 0x1C, 0x49, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0x98, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, +0x83, 0xF6, 0x04, 0x6C, 0xAB, 0xED, 0x04, 0x48, +0x40, 0xEA, 0x2A, 0xE8, 0xF3, 0x61, 0x30, 0xF0, +0x20, 0x68, 0x44, 0xF1, 0x00, 0x48, 0x30, 0xF0, +0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, 0xC0, 0x98, +0x01, 0x6D, 0x23, 0xF0, 0x10, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x48, +0x84, 0xF1, 0x08, 0x4A, 0x4A, 0xE8, 0xEF, 0x61, +0x21, 0xF0, 0x04, 0x68, 0x01, 0x6D, 0x90, 0x67, +0xAB, 0xED, 0x80, 0x18, 0x6E, 0x3C, 0x30, 0xF0, +0x20, 0x6B, 0x04, 0xD2, 0x43, 0xF5, 0xA4, 0x9B, +0xC0, 0xF3, 0x44, 0x99, 0x90, 0x67, 0x03, 0x6E, +0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, 0x84, 0xF1, +0x08, 0x48, 0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, +0x44, 0x99, 0xC0, 0x98, 0x01, 0x6D, 0x28, 0xF1, +0x10, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x04, 0x48, 0xC4, 0xF1, 0x10, 0x4A, +0x4A, 0xE8, 0xEF, 0x61, 0xC0, 0xF3, 0x44, 0x99, +0x04, 0x96, 0x01, 0x6D, 0x21, 0xF0, 0x04, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0xC8, 0x6C, 0x00, 0x18, +0xE7, 0xE0, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF0, 0x78, 0x9B, 0x10, 0xF0, 0x24, 0x6A, +0xD0, 0xF4, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x69, +0x40, 0xDB, 0xC6, 0xF5, 0x10, 0x49, 0xC3, 0xF3, +0x50, 0xA1, 0x6C, 0x22, 0x00, 0x18, 0xE0, 0xE0, +0x01, 0x72, 0x68, 0x60, 0x80, 0x18, 0xCA, 0x18, +0xC3, 0xF3, 0x50, 0xA1, 0x02, 0x72, 0x52, 0x61, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x08, 0x6E, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, +0x40, 0xEA, 0x01, 0x6D, 0xAB, 0xED, 0x03, 0xF3, +0x08, 0x6C, 0x80, 0x18, 0x6E, 0x3C, 0x04, 0xD2, +0x00, 0x18, 0x29, 0xE0, 0x02, 0x6C, 0x80, 0x18, +0xC8, 0x28, 0x30, 0xF0, 0x20, 0x6C, 0xEE, 0xF6, +0x08, 0x4C, 0x80, 0x18, 0xCE, 0x32, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, +0x08, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC4, 0xF2, 0xDC, 0x99, 0x01, 0x6D, 0x23, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x04, 0x96, 0x01, 0x6D, 0x03, 0xF3, +0x08, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, +0x0A, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xE4, 0xF2, 0xC0, 0x99, 0x01, 0x6D, 0x23, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x04, 0x96, 0x01, 0x6D, 0x03, 0xF3, +0x08, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, +0x08, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x00, 0x6B, 0xC3, 0xF3, +0x70, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, +0x78, 0x9B, 0x10, 0xF0, 0x24, 0x6A, 0xD0, 0xF4, +0x1E, 0x4A, 0x40, 0xDB, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x23, 0xF4, 0x04, 0x6C, +0x01, 0x6D, 0x80, 0x18, 0x6E, 0x3C, 0x21, 0x22, +0x00, 0x18, 0xCA, 0xDF, 0x30, 0xF0, 0x20, 0x6A, +0xA4, 0xF0, 0x70, 0x9A, 0xFF, 0x6C, 0x02, 0x6D, +0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, +0x54, 0x9A, 0x01, 0x6B, 0x6B, 0xEB, 0x30, 0xF0, +0x20, 0x6C, 0xEE, 0xF6, 0x08, 0x4C, 0x60, 0xC2, +0x00, 0x6D, 0x80, 0x18, 0x2E, 0x35, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF5, 0x44, 0x9A, 0x01, 0x6C, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF5, 0x44, 0x9A, 0x00, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, +0x40, 0xEA, 0x01, 0x6C, 0x00, 0x6D, 0x00, 0x18, +0x3F, 0xCB, 0x03, 0x72, 0x20, 0x60, 0x30, 0xF0, +0x20, 0x6C, 0xEE, 0xF6, 0x08, 0x4C, 0x01, 0x6D, +0x80, 0x18, 0x2E, 0x35, 0x14, 0x22, 0x00, 0x18, +0x1E, 0xC5, 0x01, 0x72, 0x06, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF1, 0x54, 0x9A, 0x3F, 0x6B, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF0, +0x70, 0x9A, 0xFD, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x01, 0x6A, 0x0B, 0x10, 0x00, 0x6C, +0xA4, 0x67, 0x00, 0x18, 0x3F, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF5, 0x44, 0x9A, 0x01, 0x6C, +0x40, 0xEA, 0x00, 0x6A, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xC4, 0xF0, 0x4C, 0x9A, +0xC4, 0xF0, 0x70, 0x9B, 0x40, 0xAA, 0x60, 0xAB, +0x6E, 0xEA, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, +0x01, 0x5A, 0x58, 0x67, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x0B, 0x2A, +0x30, 0xF0, 0x20, 0x6B, 0xC4, 0xF0, 0xB4, 0x9B, +0x30, 0xF0, 0x20, 0x6E, 0xC4, 0xF0, 0xD8, 0x9E, +0x60, 0x9D, 0xCC, 0xEB, 0x0C, 0x10, 0x01, 0x72, +0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0xC4, 0xF0, +0xB4, 0x9B, 0x30, 0xF0, 0x20, 0x6E, 0xA3, 0xF3, +0xCC, 0x9E, 0x60, 0x9D, 0xCD, 0xEB, 0x60, 0xDD, +0x05, 0x5C, 0x60, 0xF1, 0x1A, 0x60, 0x30, 0xF0, +0x20, 0x6B, 0x88, 0x34, 0x43, 0xF0, 0x04, 0x4B, +0x8D, 0xE3, 0x60, 0x9B, 0x00, 0xEB, 0x07, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, 0x74, 0x9A, +0x7F, 0x6A, 0x80, 0xA3, 0x12, 0x10, 0x01, 0x72, +0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, +0x74, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, +0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, +0x40, 0xA3, 0x80, 0x4D, 0xC0, 0x4D, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, +0x02, 0x72, 0x05, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xC4, 0xF0, 0x74, 0x9A, 0x5B, 0x10, 0x03, 0x72, +0x40, 0xF1, 0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xC4, 0xF0, 0x74, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, +0x40, 0xA3, 0x8C, 0xEA, 0xE9, 0x17, 0x07, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, 0x7C, 0x9A, +0xFB, 0x6A, 0x80, 0xA3, 0xE2, 0x17, 0x01, 0x72, +0x19, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, +0x94, 0x9A, 0xFF, 0x6A, 0x40, 0x6D, 0x60, 0xA4, +0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, +0x30, 0xF0, 0x20, 0x6B, 0xC4, 0xF0, 0x9C, 0x9B, +0x01, 0x6D, 0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, +0x4C, 0xEB, 0x60, 0xC4, 0x60, 0xA4, 0x04, 0x6D, +0x4C, 0xEB, 0x48, 0x10, 0x02, 0x72, 0x0F, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, 0x74, 0x9A, +0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, 0x7C, 0x9A, +0xFE, 0x6A, 0x80, 0xA3, 0xB6, 0x17, 0x03, 0x72, +0x00, 0xF1, 0x0B, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xC4, 0xF0, 0x94, 0x9A, 0xFF, 0x6B, 0x40, 0x6D, +0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, +0x9C, 0x9A, 0x01, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, +0x4B, 0x10, 0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xC4, 0xF0, 0x7C, 0x9A, 0x80, 0xA3, 0xBF, 0x6A, +0x98, 0x17, 0x01, 0x72, 0x1B, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC4, 0xF0, 0x94, 0x9A, 0xFF, 0x6A, +0x40, 0x6D, 0x60, 0xA4, 0x10, 0x6E, 0x4C, 0xEB, +0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x30, 0xF0, +0x20, 0x6B, 0xC4, 0xF0, 0x9C, 0x9B, 0x60, 0xA4, +0x4C, 0xEB, 0xCD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, +0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, +0x60, 0xC4, 0x20, 0xE8, 0x02, 0x72, 0x0F, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, 0x74, 0x9A, +0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, 0x7C, 0x9A, +0xEF, 0x6A, 0x80, 0xA3, 0x6A, 0x17, 0x03, 0x72, +0xA0, 0xF0, 0x1F, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xC4, 0xF0, 0x94, 0x9A, 0xFF, 0x6B, 0x40, 0x6D, +0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, +0x9C, 0x9A, 0x10, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, +0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x20, 0xE8, +0x08, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, +0x7C, 0x9A, 0xFF, 0xF3, 0x1F, 0x6A, 0x80, 0xAB, +0x83, 0x10, 0x01, 0x72, 0x1D, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC4, 0xF0, 0x74, 0x9A, 0xFF, 0x6C, +0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0xC4, 0xF0, 0x7C, 0x9A, 0xFF, 0xF7, 0x1F, 0x6C, +0x7F, 0x4D, 0x40, 0xAB, 0x41, 0x4D, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xCB, 0x40, 0xAB, +0x00, 0xF3, 0x00, 0x4D, 0x8C, 0xEA, 0x51, 0x10, +0x02, 0x72, 0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xC4, 0xF0, 0x74, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0xC4, 0xF0, 0x7C, 0x9A, 0xFF, 0xF6, 0x1F, 0x6A, +0x80, 0xAB, 0x52, 0x10, 0x03, 0x72, 0x6D, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, 0x74, 0x9A, +0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0xC4, 0xF0, 0x7C, 0x9A, 0xFF, 0xF7, +0x1F, 0x6C, 0x7F, 0x4D, 0x40, 0xAB, 0x41, 0x4D, +0x8C, 0xEA, 0x27, 0x10, 0x08, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xC4, 0xF0, 0x7C, 0x9A, 0xF7, 0xF7, +0x1F, 0x6A, 0x80, 0xAB, 0x31, 0x10, 0x01, 0x72, +0x1E, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, +0x74, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, +0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, 0x7C, 0x9A, +0xFF, 0xF7, 0x1F, 0x6C, 0xC1, 0xF7, 0x00, 0x4D, +0x40, 0xAB, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xCB, 0x40, 0xAB, 0x06, 0xF0, 0x00, 0x4D, +0x8C, 0xEA, 0xAD, 0xEA, 0x11, 0x10, 0x02, 0x72, +0x12, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, +0x74, 0x9A, 0xBF, 0x6A, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, +0x7C, 0x9A, 0xFD, 0xF7, 0x1F, 0x6A, 0x80, 0xAB, +0x8C, 0xEA, 0x40, 0xCB, 0x20, 0xE8, 0x03, 0x72, +0x18, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, +0x74, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, 0x40, 0xA3, +0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, 0x7C, 0x9A, +0xFF, 0xF7, 0x1F, 0x6C, 0xC1, 0xF7, 0x00, 0x4D, +0x40, 0xAB, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xCB, 0x20, 0xE8, 0xFB, 0x63, 0x09, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x74, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xA3, 0xF3, 0x98, 0x9C, +0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x0A, 0xF2, 0x5B, 0xA2, 0x0D, 0x22, +0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x48, 0x9A, 0x00, 0xF4, 0x1D, 0x6C, +0x10, 0x6D, 0x00, 0x6E, 0xE0, 0xF1, 0x14, 0x6F, +0x0C, 0x10, 0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, 0x00, 0xF4, +0x1D, 0x6C, 0x10, 0x6D, 0x00, 0x6E, 0x82, 0xF3, +0x08, 0x6F, 0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF3, 0x74, 0x9B, 0xFF, 0x6A, 0x4C, 0xED, +0x6D, 0xE4, 0xC0, 0xA3, 0x3F, 0x6C, 0xCC, 0xEC, +0x80, 0xC3, 0x07, 0x2D, 0x80, 0xA3, 0x40, 0x6D, +0x4C, 0xEC, 0xAD, 0xEC, 0x4C, 0xEC, 0x80, 0xC3, +0x20, 0xE8, 0x01, 0x75, 0x07, 0x61, 0x80, 0xA3, +0x80, 0x6D, 0xAB, 0xED, 0x4C, 0xEC, 0xAD, 0xEC, +0x4C, 0xEC, 0x80, 0xC3, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x68, 0x9B, +0xFF, 0x6A, 0xAC, 0xEA, 0x6D, 0xE4, 0x80, 0x9B, +0x80, 0xF4, 0x40, 0x32, 0x8D, 0xEA, 0x40, 0xDB, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x68, 0x9A, +0x30, 0xF0, 0x20, 0x6E, 0xE4, 0xF0, 0xC0, 0x9E, +0x6D, 0xE4, 0x40, 0x9B, 0x30, 0xF0, 0x20, 0x68, +0xE4, 0xF0, 0x08, 0x98, 0xCC, 0xEA, 0x30, 0xF0, +0x20, 0x6E, 0xE4, 0xF0, 0xC4, 0x9E, 0xCD, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, +0xEC, 0x9A, 0x83, 0xF7, 0x00, 0x6A, 0x4B, 0xEA, +0xFD, 0xE4, 0x60, 0x9F, 0x7F, 0x6E, 0x4C, 0xEB, +0x43, 0xA5, 0xCC, 0xEA, 0x0D, 0xEA, 0x6D, 0xEA, +0x40, 0xDF, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, +0x70, 0x9A, 0x30, 0xF0, 0x20, 0x6F, 0xE3, 0xF1, +0xE8, 0x9F, 0x6D, 0xE4, 0x40, 0x9B, 0xED, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, +0x68, 0x9A, 0xFF, 0x6F, 0x01, 0x4F, 0x6D, 0xE4, +0x40, 0x9B, 0xED, 0xEA, 0x3F, 0xF6, 0x1F, 0x4F, +0xEC, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF3, 0x4C, 0x9A, 0x49, 0xE4, 0x60, 0x9A, +0x40, 0xA5, 0xCC, 0xEA, 0x4D, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0xE4, 0xF0, 0x4C, 0x9A, 0x49, 0xE4, +0xC0, 0xA2, 0x01, 0x6A, 0xCC, 0xEA, 0x05, 0x22, +0x03, 0xF7, 0x01, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x07, 0x10, 0x1F, 0xF7, 0x01, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x61, 0xA5, 0x60, 0x33, 0x6D, 0xEA, +0xC2, 0xA5, 0xFF, 0x76, 0x0D, 0x60, 0x30, 0xF0, +0x20, 0x6B, 0xE4, 0xF0, 0x70, 0x9B, 0x4C, 0xEB, +0x80, 0xF4, 0xC0, 0x32, 0x30, 0xF0, 0x20, 0x6E, +0xE3, 0xF1, 0xC0, 0x9E, 0xCD, 0xEA, 0x6D, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF3, 0x6C, 0x9B, +0x6D, 0xE4, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF3, 0xC4, 0x9A, 0x02, 0xF0, 0x00, 0x6B, +0x6B, 0xEB, 0xD9, 0xE4, 0x40, 0x9E, 0x6C, 0xEA, +0x62, 0xAD, 0xE1, 0xF7, 0x1F, 0x6D, 0xAC, 0xEB, +0x6D, 0xEA, 0x40, 0xDE, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF3, 0x60, 0x9A, 0x0E, 0xF0, 0x01, 0x4D, +0x6D, 0xE4, 0x40, 0x9B, 0xAD, 0xEA, 0xC8, 0xF0, +0x00, 0x4D, 0xAC, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF3, 0x50, 0x9A, 0x51, 0xE4, +0x60, 0xA4, 0x7F, 0x6A, 0x6C, 0xEA, 0x40, 0xC4, +0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF0, 0x54, 0x9A, +0x1C, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xE4, 0xF0, 0x58, 0x9A, 0x08, 0xF4, 0x13, 0x6B, +0x60, 0xCA, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0x26, 0x67, 0x4C, 0xEF, 0x4C, 0xED, +0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, 0xFF, 0xF7, +0x1F, 0x68, 0x43, 0xF2, 0x40, 0x9A, 0x0C, 0xEC, +0x05, 0xD4, 0x06, 0xD5, 0x07, 0xD7, 0x40, 0xAA, +0x00, 0x6C, 0xA4, 0x67, 0x62, 0x67, 0x0C, 0xEB, +0x04, 0xD3, 0x00, 0x18, 0x3F, 0xCB, 0x03, 0x6C, +0x00, 0x18, 0x37, 0xE1, 0x04, 0x95, 0x05, 0x92, +0xE1, 0xF7, 0x1F, 0x6B, 0x30, 0xF0, 0x20, 0x6C, +0xAC, 0xEB, 0x03, 0xF2, 0x94, 0x9C, 0x6D, 0xE2, +0x0C, 0xEB, 0x60, 0xCC, 0x7C, 0x32, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF3, 0x60, 0x9B, 0x30, 0xF0, +0x20, 0x6C, 0x03, 0xF3, 0x8C, 0x9C, 0x6D, 0xE2, +0x60, 0xAB, 0x06, 0x95, 0x91, 0xE2, 0x0C, 0xEB, +0x80, 0x9C, 0x05, 0x25, 0x10, 0xF0, 0x00, 0x6D, +0xAB, 0xED, 0xAD, 0xEB, 0x0C, 0xEB, 0xD8, 0xF0, +0x00, 0x6D, 0x6C, 0xED, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF3, 0x60, 0x9B, 0x6D, 0xE2, 0xA0, 0xCB, +0x30, 0xF0, 0x20, 0x6B, 0xE4, 0xF0, 0x6C, 0x9B, +0x6D, 0xE2, 0xA0, 0xA3, 0x01, 0x6B, 0xAC, 0xEB, +0x05, 0x23, 0x03, 0xF7, 0x01, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0x07, 0x10, 0x07, 0x95, 0x1F, 0xF7, +0x01, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xA0, 0x34, +0x8D, 0xEB, 0xFF, 0x71, 0x13, 0x60, 0x30, 0xF0, +0x20, 0x6C, 0xE4, 0xF0, 0x90, 0x9C, 0x80, 0xF4, +0x20, 0x31, 0x6C, 0xEC, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF1, 0x60, 0x9B, 0x6D, 0xE9, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF3, 0x6C, 0x9B, 0x8D, 0xE9, +0x6D, 0xE2, 0x20, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF3, 0x90, 0x9B, 0x7F, 0x6B, 0x91, 0xE2, +0xA0, 0xA4, 0xAC, 0xEB, 0x60, 0xC4, 0x30, 0xF0, +0x20, 0x6B, 0xE4, 0xF0, 0x74, 0x9B, 0x1C, 0x6C, +0x80, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0xE4, 0xF0, +0x78, 0x9B, 0x08, 0xF4, 0x13, 0x6C, 0x80, 0xCB, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF2, 0x8C, 0x9B, +0xF7, 0x6B, 0x91, 0xE2, 0xA0, 0xA4, 0xAC, 0xEB, +0x60, 0xC4, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFF, 0x6A, 0x4C, 0xEC, +0xAC, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xE4, 0xF0, 0x5C, 0x9A, 0x8C, 0x34, 0x30, 0xF0, +0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, 0xA3, 0xF3, +0x78, 0x9B, 0x6D, 0xEA, 0x0C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xE4, 0xF0, 0x5C, 0x9A, 0x8C, 0x34, +0x30, 0xF0, 0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, +0xC3, 0xF3, 0x6C, 0x9B, 0x6C, 0xEA, 0x40, 0xDC, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6A, 0x4C, 0xEC, +0xAC, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xE4, 0xF0, 0x5C, 0x9A, 0x8C, 0x34, 0x30, 0xF0, +0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, 0xE3, 0xF3, +0x70, 0x9B, 0x6D, 0xEA, 0x0C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xE4, 0xF0, 0x5C, 0x9A, 0x8C, 0x34, +0x30, 0xF0, 0x20, 0x6B, 0x51, 0xE4, 0x40, 0x9C, +0xE3, 0xF3, 0x74, 0x9B, 0x6C, 0xEA, 0x40, 0xDC, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xFF, 0x6B, 0xE4, 0xF0, 0x5C, 0x9A, 0x6C, 0xEC, +0x8C, 0x34, 0x51, 0xE4, 0x40, 0x9C, 0x01, 0x6C, +0x40, 0xF7, 0x42, 0x32, 0x8C, 0xEA, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xFF, 0x6B, 0xE4, 0xF0, 0x5C, 0x9A, 0x6C, 0xEC, +0x8C, 0x34, 0x51, 0xE4, 0x40, 0x9C, 0x01, 0x6C, +0x00, 0xF7, 0x42, 0x32, 0x8C, 0xEA, 0x6C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x00, 0x68, 0x90, 0x67, 0x00, 0x6D, +0x00, 0x18, 0x53, 0xE3, 0x90, 0x67, 0x01, 0x6D, +0x01, 0x48, 0x00, 0x18, 0x63, 0xE3, 0x0B, 0x70, +0xF5, 0x61, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, +0x0C, 0x6B, 0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, +0x0A, 0x69, 0x12, 0xED, 0x4C, 0xED, 0x04, 0xD5, +0xFF, 0x68, 0x2C, 0xE8, 0x90, 0x67, 0x00, 0x18, +0x73, 0xE3, 0x17, 0x2A, 0xFF, 0x49, 0x00, 0xF6, +0x20, 0x31, 0x90, 0x67, 0x01, 0x6D, 0x00, 0xF6, +0x23, 0x31, 0x00, 0x18, 0x63, 0xE3, 0x41, 0x41, +0xEF, 0x2A, 0x01, 0x69, 0x2B, 0xE9, 0x09, 0x10, +0x04, 0x94, 0xFF, 0x49, 0x00, 0x6D, 0x00, 0xF6, +0x20, 0x31, 0x00, 0x18, 0x63, 0xE3, 0x00, 0xF6, +0x23, 0x31, 0x00, 0x51, 0xF5, 0x60, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0x0C, 0x68, 0x4C, 0xEC, 0x1B, 0xEC, +0x01, 0x28, 0xE5, 0xE8, 0x4C, 0xED, 0x10, 0xE9, +0x4C, 0xE9, 0x12, 0xE8, 0x4C, 0xE8, 0x0F, 0x25, +0x90, 0x67, 0x01, 0x6D, 0x00, 0x18, 0x53, 0xE3, +0x30, 0xF0, 0x20, 0x6A, 0xA5, 0xF7, 0x1C, 0x4A, +0x41, 0xE0, 0x60, 0xA0, 0x01, 0x6A, 0x44, 0xE9, +0x6D, 0xEA, 0x40, 0xC0, 0x11, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA5, 0xF7, 0x1C, 0x4A, 0x49, 0xE0, +0x80, 0xA2, 0x01, 0x6B, 0x64, 0xE9, 0x6F, 0xEB, +0x8C, 0xEB, 0x60, 0xC2, 0x40, 0xA2, 0x04, 0x2A, +0x90, 0x67, 0x00, 0x6D, 0x00, 0x18, 0x53, 0xE3, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0x24, 0x67, +0x0C, 0xE9, 0xAC, 0xE8, 0x91, 0x67, 0xB0, 0x67, +0x00, 0x18, 0xA6, 0xE3, 0x91, 0x67, 0xB0, 0x67, +0x00, 0x18, 0x8D, 0xE3, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x0C, 0x6B, 0x7B, 0xED, 0x01, 0x2B, 0xE5, 0xE8, +0x05, 0x6E, 0xFF, 0x6A, 0x4C, 0xEC, 0x10, 0xEB, +0x12, 0xED, 0x4C, 0xED, 0xD8, 0xEB, 0x12, 0xEB, +0x4C, 0xEB, 0x1E, 0x73, 0x1D, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x04, 0xF1, 0x60, 0x9A, 0xAC, 0x35, +0x30, 0xF0, 0x20, 0x6E, 0x6D, 0xE5, 0x40, 0x9B, +0x04, 0xF1, 0xC4, 0x9E, 0xCC, 0xEA, 0x80, 0xF7, +0x80, 0x36, 0xCD, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xE4, 0xF0, 0x5C, 0x9A, 0x08, 0x6B, +0x6B, 0xEB, 0x55, 0xE5, 0x40, 0x9D, 0x8A, 0x34, +0x6C, 0xEA, 0x07, 0x6B, 0x6C, 0xEC, 0x1E, 0x10, +0x20, 0x5B, 0x0C, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0xF1, 0x40, 0x9A, 0x1F, 0x6E, 0xAC, 0x35, +0xE6, 0x67, 0x55, 0xE5, 0xE4, 0xEB, 0x40, 0x9D, +0xEF, 0xEF, 0x0D, 0x10, 0xE0, 0x4B, 0x4C, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0xE4, 0xF0, 0x5C, 0x9A, +0xAC, 0x35, 0x1F, 0x6E, 0x55, 0xE5, 0xE0, 0x9D, +0x46, 0x67, 0x44, 0xEB, 0x4F, 0xEA, 0xCC, 0xEC, +0xEC, 0xEA, 0x84, 0xEB, 0x8D, 0xEA, 0x40, 0xDD, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0x2C, 0xEC, +0xCC, 0xE9, 0x05, 0x67, 0x01, 0x29, 0x00, 0x6C, +0xB0, 0x67, 0x00, 0x18, 0xCC, 0xE3, 0xFF, 0x6C, +0x0C, 0xEC, 0xB1, 0x67, 0x00, 0x18, 0xC1, 0xE3, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xAE, 0xEC, 0x01, 0x6A, +0x8C, 0xEA, 0x20, 0xE8, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, +0x06, 0xD2, 0x05, 0xD4, 0x00, 0x69, 0x1F, 0x68, +0x22, 0x10, 0x05, 0x92, 0x40, 0xA2, 0x07, 0xD2, +0x00, 0x6A, 0x04, 0xD2, 0x04, 0x92, 0x07, 0x94, +0x12, 0x35, 0x87, 0xEA, 0xFF, 0x6A, 0x4C, 0xEC, +0x00, 0x18, 0xFF, 0xE3, 0x06, 0x22, 0xFF, 0x6A, +0x04, 0x30, 0x4C, 0xE8, 0x05, 0x6A, 0x4E, 0xE8, +0x01, 0x10, 0x04, 0x30, 0xFF, 0x6A, 0x4C, 0xE8, +0x04, 0x92, 0x01, 0x4A, 0x08, 0x72, 0x04, 0xD2, +0xE9, 0x61, 0xFF, 0x6A, 0x01, 0x49, 0x4C, 0xE9, +0x05, 0x92, 0x01, 0x4A, 0x05, 0xD2, 0x06, 0x92, +0x43, 0xE9, 0xDB, 0x61, 0x1F, 0x6A, 0x4E, 0xE8, +0x0C, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x60, 0xA4, 0x01, 0x6A, 0x04, 0x67, +0x6C, 0xEA, 0x44, 0x22, 0x66, 0x32, 0x30, 0xF0, +0x20, 0x6B, 0x04, 0xF1, 0x68, 0x9B, 0x54, 0x32, +0x69, 0xE2, 0x61, 0xA4, 0x60, 0xC2, 0x40, 0xA4, +0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF1, 0x6C, 0x9B, +0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x62, 0xA4, +0x60, 0xC2, 0x40, 0xA4, 0x30, 0xF0, 0x20, 0x6B, +0x04, 0xF1, 0x70, 0x9B, 0x46, 0x32, 0x54, 0x32, +0x69, 0xE2, 0x63, 0xA4, 0x60, 0xC2, 0x40, 0xA4, +0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF1, 0x74, 0x9B, +0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x64, 0xA4, +0x60, 0xC2, 0x40, 0xA4, 0x30, 0xF0, 0x20, 0x6B, +0x04, 0xF1, 0x78, 0x9B, 0x46, 0x32, 0x54, 0x32, +0x69, 0xE2, 0x65, 0xA4, 0x60, 0xC2, 0x40, 0xA4, +0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF1, 0x7C, 0x9B, +0x46, 0x32, 0x54, 0x32, 0x69, 0xE2, 0x66, 0xA4, +0x10, 0xF0, 0x00, 0x6C, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x24, 0xF1, 0x60, 0x9A, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x81, 0x40, 0x06, 0x6D, +0x00, 0x18, 0x01, 0xE4, 0x60, 0xA0, 0x01, 0x6E, +0x82, 0x67, 0x66, 0x35, 0x6C, 0xEE, 0x00, 0x18, +0xF3, 0xE3, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0x83, 0xE3, 0x30, 0xF0, 0x20, 0x6A, +0x24, 0xF1, 0x64, 0x9A, 0xFF, 0xF7, 0x1F, 0x6A, +0x80, 0xAB, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x83, 0xF3, 0x98, 0x9C, 0x8D, 0xEA, 0x40, 0xDB, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x1C, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xFB, 0x63, 0x09, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x58, 0x9A, 0x00, 0x6B, 0x00, 0x6E, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, +0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, +0x5C, 0x9A, 0x04, 0xF7, 0x10, 0x6F, 0x80, 0x6D, +0x60, 0xDA, 0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF3, 0x48, 0x9A, 0x80, 0xF1, +0x07, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0xC8, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF6, 0x98, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF3, 0x5C, 0x9A, +0x90, 0x34, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF3, 0x54, 0x9A, 0x03, 0x6C, 0x01, 0x6D, +0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0xFF, 0x68, +0x8C, 0xE8, 0x04, 0x6E, 0x04, 0x04, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0x93, 0x83, 0xF0, +0x5C, 0x9A, 0x01, 0x6C, 0x60, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF0, 0x58, 0x9A, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF0, 0x70, 0x9B, 0x0D, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x68, 0x8C, 0xEA, 0x06, 0xD2, 0xFF, 0x6B, +0x80, 0xF2, 0x4C, 0x98, 0x04, 0x01, 0xAC, 0xEB, +0x10, 0xD6, 0xA6, 0x67, 0x07, 0xD3, 0x04, 0x6E, +0x91, 0x67, 0x40, 0xEA, 0x06, 0x92, 0xFF, 0x6B, +0xB1, 0x67, 0x4C, 0x34, 0x02, 0x4C, 0x6C, 0xEC, +0x80, 0x18, 0x1C, 0x00, 0x10, 0x95, 0x80, 0xF2, +0x4C, 0x98, 0x04, 0x6E, 0x91, 0x67, 0x04, 0x4D, +0x40, 0xEA, 0x06, 0x92, 0xFF, 0x6B, 0xB1, 0x67, +0x4C, 0x32, 0x82, 0x67, 0x03, 0x4C, 0x6C, 0xEC, +0x08, 0xD2, 0x80, 0x18, 0x1C, 0x00, 0x10, 0x95, +0x80, 0xF2, 0x4C, 0x98, 0x04, 0x6E, 0x91, 0x67, +0x08, 0x4D, 0x40, 0xEA, 0x06, 0x92, 0xFF, 0x6B, +0xB1, 0x67, 0x4C, 0x34, 0x04, 0x4C, 0x6C, 0xEC, +0x80, 0x18, 0x1C, 0x00, 0x10, 0x95, 0x80, 0xF2, +0x4C, 0x98, 0x91, 0x67, 0x0C, 0x4D, 0x04, 0x6E, +0x40, 0xEA, 0x08, 0x94, 0xFF, 0x6A, 0xB1, 0x67, +0x05, 0x4C, 0x4C, 0xEC, 0x80, 0x18, 0x1C, 0x00, +0x07, 0x93, 0x48, 0x6A, 0x02, 0x73, 0x04, 0x60, +0x07, 0x92, 0x04, 0x72, 0x05, 0x61, 0x50, 0x6A, +0x06, 0x93, 0x6D, 0xEA, 0x7D, 0x67, 0x50, 0xC3, +0x80, 0x6A, 0x7D, 0x67, 0x4B, 0xEA, 0x51, 0xC3, +0x06, 0x92, 0x01, 0x68, 0x0B, 0xE8, 0x4C, 0x31, +0xFF, 0x6C, 0x12, 0xC3, 0x13, 0xC3, 0x2C, 0xEC, +0x04, 0x05, 0x80, 0x18, 0x1C, 0x00, 0x7D, 0x67, +0xFF, 0x6A, 0x81, 0x41, 0x10, 0xC3, 0x11, 0xC3, +0x12, 0xC3, 0x13, 0xC3, 0x4C, 0xEC, 0x04, 0x05, +0x80, 0x18, 0x1C, 0x00, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF2, 0x40, 0x9A, 0x00, 0x6B, 0x60, 0xC2, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x6A, 0xEC, 0xEA, +0x04, 0x72, 0x0F, 0x61, 0x40, 0xA4, 0x40, 0xC5, +0x41, 0xA4, 0x41, 0xC5, 0x44, 0xA4, 0x42, 0xC5, +0x45, 0xA4, 0x43, 0xC5, 0x46, 0xA4, 0x44, 0xC5, +0x47, 0xA4, 0x45, 0xC5, 0x43, 0xA4, 0x40, 0xC6, +0x20, 0xE8, 0x02, 0x72, 0x0E, 0x61, 0x42, 0xA4, +0x40, 0xC5, 0x40, 0xA4, 0x41, 0xC5, 0x44, 0xA4, +0x42, 0xC5, 0x45, 0xA4, 0x43, 0xC5, 0x46, 0xA4, +0x44, 0xC5, 0x47, 0xA4, 0x45, 0xC5, 0x43, 0xA4, +0x40, 0xC6, 0x20, 0xE8, 0xFF, 0x6A, 0xEC, 0xEA, +0x04, 0x6B, 0x4E, 0xEB, 0x06, 0x2B, 0x40, 0xA5, +0x40, 0xC4, 0x41, 0xA5, 0x62, 0xC4, 0x41, 0xC4, +0x0C, 0x10, 0x02, 0x72, 0x0A, 0x61, 0x41, 0xA5, +0x40, 0xC4, 0x61, 0xA5, 0x5F, 0x6A, 0x6C, 0xEA, +0x20, 0x6B, 0x6D, 0xEA, 0x41, 0xC4, 0x40, 0xA5, +0x42, 0xC4, 0x63, 0x44, 0xC0, 0xA3, 0x20, 0x6A, +0xCD, 0xEA, 0x40, 0xC3, 0x42, 0xA5, 0x44, 0xC4, +0x43, 0xA5, 0x45, 0xC4, 0x44, 0xA5, 0x46, 0xC4, +0x45, 0xA5, 0x47, 0xC4, 0x20, 0xE8, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x4C, 0xED, 0x4C, 0xEE, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, 0x05, 0x00, +0x24, 0x67, 0x09, 0xD5, 0x08, 0xD6, 0x90, 0x67, +0x00, 0x6D, 0x08, 0x6E, 0x40, 0xEA, 0x08, 0x97, +0x91, 0x67, 0xB0, 0x67, 0x04, 0x06, 0x80, 0x18, +0x6D, 0x00, 0x09, 0x92, 0x10, 0x2A, 0x60, 0xA0, +0xFF, 0x6C, 0x8E, 0xEB, 0x07, 0x2B, 0x01, 0x4A, +0x8C, 0xEA, 0x06, 0x72, 0x60, 0xC0, 0x01, 0x48, +0xF6, 0x61, 0x05, 0x10, 0x04, 0x03, 0x49, 0xE3, +0x64, 0xA2, 0x01, 0x4B, 0x64, 0xC2, 0x08, 0x97, +0x91, 0x67, 0x05, 0x05, 0x04, 0x06, 0x80, 0x18, +0x7F, 0x00, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0x24, 0x67, 0xFF, 0x68, +0xAC, 0xE8, 0x04, 0x04, 0xB1, 0x67, 0x03, 0x6E, +0x40, 0xEA, 0x24, 0x28, 0x5D, 0x67, 0x70, 0xA2, +0xFF, 0x6A, 0x4E, 0xEB, 0x00, 0x6A, 0x11, 0x2B, +0x5D, 0x67, 0x70, 0xC2, 0x71, 0xA2, 0xFF, 0x6A, +0x4E, 0xEB, 0x01, 0x6A, 0x0A, 0x2B, 0x5D, 0x67, +0x71, 0xC2, 0x52, 0xA2, 0xFF, 0x6B, 0x6E, 0xEA, +0x03, 0x2A, 0x7D, 0x67, 0x52, 0xC3, 0x06, 0x10, +0x02, 0x6A, 0x04, 0x03, 0x49, 0xE3, 0x60, 0xA2, +0x01, 0x4B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0x91, 0x67, 0x04, 0x05, +0x03, 0x6E, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x30, 0xF0, 0x20, 0x69, 0x80, 0xF2, 0x48, 0x99, +0xFF, 0x68, 0xAC, 0xE8, 0x0E, 0xD4, 0x00, 0x6D, +0x05, 0x04, 0x08, 0x6E, 0x40, 0xEA, 0x80, 0xF2, +0x48, 0x99, 0x07, 0x04, 0x00, 0x6D, 0x08, 0x6E, +0x40, 0xEA, 0x0E, 0x94, 0x05, 0x05, 0x00, 0xF0, +0x11, 0x06, 0xF0, 0x67, 0x80, 0x18, 0x6D, 0x00, +0x30, 0xF0, 0x20, 0x6C, 0x0B, 0xF1, 0x0B, 0x4C, +0x07, 0x05, 0x04, 0x06, 0xF0, 0x67, 0x80, 0x18, +0x6D, 0x00, 0x00, 0x6B, 0x07, 0x6A, 0x9D, 0x67, +0x75, 0xE4, 0x85, 0x67, 0x9B, 0xA4, 0x20, 0xF0, +0xA3, 0xA5, 0xAE, 0xEC, 0x0A, 0x2C, 0xFF, 0x4A, +0x00, 0xF6, 0x40, 0x32, 0x00, 0xF6, 0x43, 0x32, +0x81, 0x42, 0xFF, 0x4B, 0xF0, 0x2C, 0x00, 0x6A, +0x09, 0x10, 0x04, 0x03, 0x49, 0xE3, 0x6C, 0xA2, +0x44, 0xA2, 0x4B, 0xE3, 0x01, 0x52, 0x58, 0x67, +0x01, 0x6B, 0x6E, 0xEA, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x80, 0xF2, 0x48, 0x98, +0x04, 0x01, 0x0C, 0xD4, 0x00, 0x6D, 0x91, 0x67, +0x08, 0x6E, 0x40, 0xEA, 0x80, 0xF2, 0x48, 0x98, +0x06, 0x04, 0x00, 0x6D, 0x08, 0x6E, 0x30, 0xF0, +0x20, 0x68, 0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x98, +0x30, 0xF0, 0x20, 0x6D, 0x91, 0x67, 0x0B, 0xF1, +0x0B, 0x4D, 0x03, 0x6E, 0x40, 0xEA, 0x80, 0xF2, +0x4C, 0x98, 0x0C, 0x95, 0x06, 0x04, 0x03, 0x6E, +0x40, 0xEA, 0x5D, 0x67, 0x72, 0xA2, 0x5A, 0xA2, +0x4E, 0xEB, 0x02, 0x6A, 0x0C, 0x2B, 0x9D, 0x67, +0x59, 0xA4, 0x71, 0xA4, 0x4E, 0xEB, 0x01, 0x6A, +0x06, 0x2B, 0x5D, 0x67, 0x70, 0xA2, 0x58, 0xA2, +0x4E, 0xEB, 0x00, 0x6A, 0x09, 0x23, 0x04, 0x03, +0x49, 0xE3, 0x60, 0xA2, 0x48, 0xA2, 0x4B, 0xE3, +0x01, 0x52, 0x58, 0x67, 0x01, 0x6B, 0x6E, 0xEA, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, +0x34, 0x22, 0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, +0x10, 0x48, 0x00, 0x18, 0xAB, 0xD2, 0x00, 0xF1, +0xA7, 0xA0, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, +0x68, 0x9B, 0x04, 0xD2, 0xB5, 0xE2, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, 0xBC, 0x35, +0x30, 0xF0, 0x20, 0x6C, 0x75, 0xE5, 0x7C, 0x6E, +0x2B, 0xF1, 0x08, 0x4C, 0x30, 0xF0, 0x20, 0x69, +0x40, 0xEA, 0x20, 0xF3, 0x54, 0x99, 0x00, 0x6D, +0x03, 0x6C, 0x40, 0xEA, 0x04, 0x92, 0x00, 0xF1, +0x88, 0xA0, 0xFF, 0xF7, 0x1F, 0x6B, 0x91, 0xE2, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF3, 0x5C, 0x9A, +0x9C, 0x34, 0x8F, 0x34, 0x6C, 0xEC, 0x40, 0xEA, +0x20, 0xF3, 0x54, 0x99, 0x03, 0x6C, 0x01, 0x6D, +0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xF4, 0x63, 0x17, 0x62, +0x16, 0xD1, 0x15, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, +0x8C, 0xEA, 0x10, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xFF, 0x69, 0x80, 0xF2, 0x48, 0x9A, 0x2C, 0xED, +0x30, 0xF0, 0x20, 0x6C, 0x11, 0xD5, 0x46, 0xF5, +0x10, 0x4C, 0x00, 0x6D, 0x80, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF6, 0x16, 0xA2, +0x00, 0x18, 0xAB, 0xD2, 0x10, 0x93, 0x01, 0xE2, +0x1C, 0x30, 0x01, 0x73, 0x12, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x06, 0xF4, 0x50, 0xA3, 0x0D, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x88, 0x9A, +0x91, 0xE0, 0x40, 0xA4, 0x2C, 0xEA, 0x08, 0x4A, +0x2C, 0xEA, 0x40, 0xC4, 0x01, 0x6A, 0x06, 0xF4, +0x50, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, +0x4C, 0x9A, 0x41, 0x6B, 0x87, 0x40, 0x49, 0xE0, +0x60, 0xC2, 0x11, 0x95, 0x29, 0x4C, 0x80, 0x18, +0x79, 0x0D, 0x30, 0xF0, 0x20, 0x6A, 0x01, 0x6B, +0x46, 0xF5, 0x70, 0xC2, 0x46, 0xF5, 0x10, 0x4A, +0x03, 0x6B, 0x61, 0xC2, 0x00, 0x6B, 0x62, 0xC2, +0x5F, 0x6B, 0x63, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xAB, 0xF1, 0x48, 0xA2, 0x67, 0x40, 0x55, 0x4B, +0xFE, 0x72, 0xFE, 0x6D, 0x01, 0x60, 0x02, 0x6D, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x88, 0x9A, +0x89, 0xE3, 0xA0, 0xC2, 0xA0, 0xA2, 0x30, 0xF0, +0x20, 0x6A, 0x46, 0xF5, 0x10, 0x4A, 0xA4, 0xC2, +0x10, 0x95, 0x01, 0x4B, 0x01, 0x75, 0x0A, 0x61, +0x91, 0xE3, 0x03, 0x6D, 0xA0, 0xC4, 0x30, 0xF0, +0x20, 0x6C, 0x23, 0xF2, 0xCC, 0x9C, 0x01, 0x6C, +0xD9, 0xE3, 0x09, 0x10, 0x91, 0xE3, 0x03, 0x6D, +0xA0, 0xC4, 0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF2, +0xCC, 0x9C, 0x02, 0x6C, 0xD9, 0xE3, 0x80, 0xC6, +0x86, 0xC2, 0xA5, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xC4, 0xF3, 0x98, 0xA2, +0x02, 0x4B, 0xFE, 0x74, 0x1F, 0x61, 0x30, 0xF0, +0x20, 0x6C, 0x83, 0xF1, 0x88, 0x9C, 0xC4, 0xF3, +0xBB, 0xA2, 0x02, 0x6E, 0x91, 0xE3, 0xA0, 0xC4, +0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF2, 0x8C, 0x9C, +0xC4, 0xF3, 0x5C, 0xA2, 0x30, 0xF0, 0x20, 0x6D, +0x8D, 0xE3, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x46, 0xF5, 0x17, 0x4C, 0xAB, 0xF1, 0x0B, 0x4D, +0x40, 0xEA, 0x13, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x48, 0x9A, 0x00, 0x6C, 0x49, 0xE3, +0x80, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, +0x4C, 0x9A, 0x4D, 0xE3, 0x30, 0xF0, 0x20, 0x6A, +0x46, 0xF5, 0x10, 0x4A, 0x80, 0xC3, 0x87, 0xC2, +0x88, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF2, +0x88, 0x9B, 0x30, 0xF0, 0x20, 0x6A, 0xAB, 0xF1, +0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, 0xA7, 0x42, +0x91, 0xE0, 0x46, 0xF5, 0x19, 0x4B, 0x01, 0x4D, +0xC0, 0xA2, 0xC0, 0xC4, 0xC0, 0xA2, 0x01, 0x4A, +0xAA, 0xEA, 0xC0, 0xC3, 0x01, 0x4C, 0x01, 0x4B, +0xF7, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6D, 0x06, 0x04, +0x2B, 0xF1, 0x08, 0x4D, 0x10, 0x6E, 0x40, 0xEA, +0x00, 0x69, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF2, 0x44, 0x9A, 0x23, 0xF2, +0x70, 0x9B, 0x49, 0xE0, 0x6D, 0xE0, 0x00, 0x6C, +0x80, 0xC2, 0x01, 0x4A, 0x6A, 0xEA, 0xFB, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x64, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF2, 0x74, 0x9A, 0xFB, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xF3, 0x44, 0x9A, 0x13, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x00, 0xF1, +0x66, 0xA2, 0x00, 0xF1, 0x47, 0xA2, 0x12, 0xD2, +0x4B, 0xE3, 0x5C, 0x32, 0xFF, 0xF7, 0x1F, 0x6B, +0x58, 0x4A, 0x6C, 0xEA, 0x11, 0xD2, 0x00, 0x18, +0xAB, 0xD2, 0x12, 0x94, 0xFF, 0xF7, 0x1F, 0x6D, +0x63, 0x6E, 0x89, 0xE2, 0x5C, 0x32, 0x4F, 0x32, +0xAC, 0xEA, 0x04, 0xD2, 0x11, 0x94, 0x13, 0x92, +0x00, 0x6D, 0x10, 0x6F, 0x40, 0xEA, 0x10, 0x93, +0x01, 0x73, 0x05, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF3, 0x50, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x40, 0xF3, 0x4C, 0x9A, 0x30, 0xF0, +0x20, 0x6D, 0x06, 0x04, 0x46, 0xF5, 0x10, 0x4D, +0x0A, 0x06, 0x10, 0x6F, 0x40, 0xEA, 0x01, 0x49, +0xFF, 0x6A, 0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF2, 0x54, 0x9A, 0x60, 0xA2, 0x04, 0x6A, +0x6C, 0xEA, 0x03, 0x22, 0x0A, 0x71, 0x9D, 0x61, +0x02, 0x10, 0x0A, 0x59, 0x0B, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF2, 0x78, 0x9A, 0xFF, 0x6C, +0x20, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF2, 0x64, 0x9B, 0x0A, 0x02, 0x61, 0xE0, +0x0E, 0x03, 0x80, 0xA2, 0x01, 0x4A, 0x6A, 0xEA, +0x80, 0xC0, 0x01, 0x48, 0xFA, 0x61, 0x10, 0x94, +0x01, 0x74, 0x07, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF6, 0x96, 0xA2, 0x20, 0x6D, 0x80, 0x18, +0x1D, 0x0A, 0x00, 0x18, 0xB5, 0xD2, 0x29, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, 0x4C, 0x9A, +0xFF, 0x69, 0x30, 0xF0, 0x20, 0x68, 0x40, 0xA2, +0x00, 0x6C, 0xFF, 0x6D, 0x4C, 0xE9, 0xA0, 0xF2, +0x50, 0x98, 0x1D, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, 0x40, 0xEA, +0x01, 0x72, 0x1F, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF6, 0x96, 0xA3, +0xA0, 0xF2, 0x54, 0x9A, 0x01, 0x6D, 0x18, 0x6E, +0x00, 0x6F, 0x40, 0xEA, 0xA0, 0xF2, 0x50, 0x98, +0x00, 0x6C, 0xB1, 0x67, 0x1E, 0x6E, 0x40, 0xEA, +0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xA0, 0xF2, 0x54, 0x9A, 0xC6, 0xF6, +0x96, 0xA3, 0x01, 0x6D, 0x18, 0x6E, 0x00, 0x6F, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0xC3, 0xF3, 0x6F, 0xA2, 0x06, 0x2B, +0xC0, 0xF0, 0xA7, 0xA2, 0x01, 0x6C, 0xB6, 0x35, +0x00, 0x18, 0xE7, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, 0x0B, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x7C, 0x9A, +0xFF, 0x6C, 0x20, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x17, 0x97, +0x16, 0x91, 0x15, 0x90, 0x0C, 0x63, 0x00, 0xEF, +0xF5, 0x63, 0x15, 0x62, 0x14, 0xD1, 0x13, 0xD0, +0xFF, 0xF7, 0x1F, 0x6A, 0x24, 0x67, 0x4C, 0xE9, +0x6F, 0x41, 0x4C, 0xEB, 0x02, 0x5B, 0x40, 0xF1, +0x0F, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF4, +0x08, 0x4A, 0x10, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x0B, 0xF2, 0x46, 0xA2, 0x30, 0xF0, 0x20, 0x68, +0x10, 0x94, 0x11, 0xD2, 0x11, 0x96, 0x80, 0xF2, +0x4C, 0x98, 0x30, 0xF0, 0x20, 0x6D, 0x0B, 0xF2, +0x07, 0x4D, 0x40, 0xEA, 0x01, 0x6B, 0x6E, 0xE9, +0x31, 0x29, 0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, +0x20, 0x6D, 0x07, 0x04, 0xCB, 0xF1, 0x15, 0x4D, +0x10, 0x6E, 0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x98, +0x30, 0xF0, 0x20, 0x6D, 0x0B, 0x04, 0x2B, 0xF1, +0x18, 0x4D, 0x10, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x60, 0xF3, 0x44, 0x9A, 0x11, 0x96, +0x00, 0x6C, 0xA4, 0x67, 0x04, 0xD1, 0x20, 0x6F, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF3, +0x54, 0x9A, 0x10, 0x95, 0x30, 0xF0, 0x20, 0x69, +0x11, 0x97, 0xC6, 0xF4, 0x08, 0x49, 0x07, 0x04, +0xD1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x80, 0xF2, 0x4C, 0x98, 0x06, 0xF5, 0x08, 0x4C, +0xB1, 0x67, 0x29, 0x10, 0x80, 0xF2, 0x4C, 0x98, +0x30, 0xF0, 0x20, 0x6D, 0x07, 0x04, 0x2B, 0xF1, +0x18, 0x4D, 0x10, 0x6E, 0x40, 0xEA, 0x00, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF3, +0x44, 0x9A, 0x11, 0x96, 0x00, 0x6C, 0xA4, 0x67, +0x10, 0x6F, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF3, 0x44, 0x9A, 0x10, 0x95, 0x30, 0xF0, +0x20, 0x69, 0x11, 0x97, 0xC6, 0xF4, 0x08, 0x49, +0x07, 0x04, 0xD1, 0x67, 0x40, 0xEA, 0x80, 0xF2, +0x4C, 0x98, 0x30, 0xF0, 0x20, 0x6C, 0xA7, 0x41, +0x06, 0xF5, 0x08, 0x4C, 0x01, 0x4D, 0x28, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0xC4, 0xF3, 0x78, 0xA2, 0xFE, 0x73, +0x14, 0x61, 0xC4, 0xF3, 0x5A, 0xA2, 0x30, 0x6B, +0x9D, 0x67, 0x6C, 0xEA, 0x53, 0x32, 0x58, 0xC4, +0x30, 0xF0, 0x20, 0x6D, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6C, 0x80, 0xF2, 0x4C, 0x9A, +0x26, 0xF5, 0x10, 0x4C, 0x06, 0xF5, 0x08, 0x4D, +0x17, 0x10, 0xFE, 0x4B, 0xFF, 0x6A, 0x4C, 0xEB, +0x02, 0x5B, 0x15, 0x60, 0x30, 0xF0, 0x20, 0x6D, +0x06, 0xF5, 0x08, 0x4D, 0x66, 0xA5, 0x03, 0x6A, +0x30, 0xF0, 0x20, 0x6C, 0x6C, 0xEA, 0x7D, 0x67, +0x58, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0x26, 0xF5, 0x10, 0x4C, 0x08, 0x4D, +0x20, 0x6E, 0x40, 0xEA, 0x0D, 0x10, 0x05, 0x6B, +0x9D, 0x67, 0x78, 0xC4, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF2, 0x9C, 0x9B, 0x10, 0x6D, 0x60, 0xA4, +0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, +0x30, 0xF0, 0x20, 0x6A, 0x4B, 0xF3, 0x04, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0xA7, 0x42, 0x26, 0xF5, +0x10, 0x4B, 0x19, 0x4D, 0x01, 0x6C, 0xE0, 0xA2, +0xC0, 0xA3, 0x01, 0x4A, 0x01, 0x4B, 0xEE, 0xEE, +0x01, 0x5E, 0xD8, 0x67, 0xCB, 0xEE, 0xAA, 0xEA, +0xCC, 0xEC, 0xF5, 0x61, 0x01, 0x74, 0x0C, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x7C, 0x9A, +0xFF, 0x6C, 0x08, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x74, 0x10, +0x7D, 0x67, 0x58, 0xA3, 0x04, 0x5A, 0x62, 0x60, +0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, +0x84, 0xF5, 0x54, 0xC0, 0x84, 0xF5, 0x58, 0xA0, +0x01, 0x6C, 0x30, 0xF0, 0x20, 0x69, 0x8D, 0xEA, +0x84, 0xF5, 0x58, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0x26, 0xF5, 0x10, 0x49, +0x30, 0xF0, 0x20, 0x6C, 0x4B, 0xF3, 0x04, 0x4C, +0xB1, 0x67, 0x20, 0x6E, 0x40, 0xEA, 0x5D, 0x67, +0x98, 0xA2, 0xE0, 0xF0, 0xBD, 0xA0, 0xD1, 0x67, +0x80, 0x18, 0x2F, 0x00, 0x43, 0xF4, 0x58, 0xA0, +0x12, 0x22, 0xC0, 0xF0, 0x59, 0xA0, 0x01, 0x6B, +0x6C, 0xEA, 0x0D, 0x22, 0x30, 0xF0, 0x20, 0x68, +0x4A, 0xF4, 0x04, 0x48, 0x00, 0x69, 0x91, 0x67, +0xB0, 0x67, 0x01, 0x49, 0x00, 0x18, 0x0A, 0xC4, +0x04, 0x71, 0x18, 0x48, 0xF8, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x84, 0xF5, +0x74, 0xA2, 0x01, 0x73, 0x0B, 0x60, 0x05, 0x23, +0x02, 0x73, 0x0D, 0x60, 0x03, 0x73, 0x10, 0x60, +0x2B, 0x10, 0x30, 0xF0, 0x20, 0x6C, 0x6B, 0xF3, +0x14, 0x4C, 0x0E, 0x10, 0x30, 0xF0, 0x20, 0x6C, +0x6B, 0xF3, 0x1C, 0x4C, 0x09, 0x10, 0x30, 0xF0, +0x20, 0x6C, 0x8B, 0xF3, 0x04, 0x4C, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6C, 0x8B, 0xF3, 0x0C, 0x4C, +0x84, 0xF5, 0xF5, 0xA2, 0x30, 0xF0, 0x20, 0x6D, +0xEB, 0xF1, 0x05, 0x4D, 0x06, 0x06, 0x80, 0x18, +0x7F, 0x00, 0x0E, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x05, 0x6B, 0x84, 0xF5, +0x98, 0xA2, 0x84, 0xF5, 0x74, 0xC2, 0x02, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0x84, 0xF5, 0x78, 0xC2, +0x15, 0x97, 0x14, 0x91, 0x13, 0x90, 0x0B, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x69, +0x8C, 0xE9, 0xFF, 0x68, 0xAC, 0xE8, 0x80, 0x18, +0x00, 0x00, 0x91, 0x67, 0x80, 0x18, 0x10, 0x02, +0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, 0x31, 0x01, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF2, 0x74, 0x9A, 0x0A, 0xD4, 0x0B, 0xD5, +0x40, 0xA3, 0xFF, 0x6C, 0x19, 0x6D, 0x8C, 0xEA, +0xAB, 0xED, 0xAC, 0xEA, 0x08, 0x6D, 0xAD, 0xEA, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x69, +0x80, 0xF2, 0x48, 0x99, 0x30, 0xF0, 0x20, 0x68, +0xAB, 0xF1, 0x04, 0x48, 0x90, 0x67, 0x00, 0x6D, +0x04, 0x6E, 0x40, 0xEA, 0x80, 0xF2, 0x48, 0x99, +0x00, 0x6D, 0xDF, 0x6E, 0x84, 0x40, 0x40, 0xEA, +0x0A, 0x91, 0x0B, 0x92, 0x30, 0xF0, 0x20, 0x68, +0x08, 0x49, 0x45, 0xE1, 0xC0, 0xF3, 0x40, 0x98, +0x81, 0x41, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x10, 0x4B, 0xC4, 0xF3, 0x55, 0xC3, +0xC0, 0xF3, 0x40, 0x98, 0x04, 0xD3, 0x84, 0x41, +0x40, 0xEA, 0x04, 0x93, 0x85, 0x41, 0xC4, 0xF3, +0x58, 0xC3, 0xC0, 0xF3, 0x40, 0x98, 0x40, 0xEA, +0x04, 0x93, 0x86, 0x41, 0xC4, 0xF3, 0x59, 0xC3, +0xC0, 0xF3, 0x40, 0x98, 0x40, 0xEA, 0x04, 0x93, +0x87, 0x41, 0xC4, 0xF3, 0x5A, 0xC3, 0xC0, 0xF3, +0x40, 0x98, 0x40, 0xEA, 0x04, 0x93, 0x87, 0x41, +0x01, 0x4C, 0xC4, 0xF3, 0x5B, 0xC3, 0xC0, 0xF3, +0x40, 0x98, 0x30, 0xF0, 0x20, 0x68, 0xAB, 0xF1, +0x0D, 0x48, 0x40, 0xEA, 0x04, 0x93, 0xC4, 0xF3, +0x5C, 0xC3, 0x47, 0x41, 0x30, 0xF0, 0x20, 0x6B, +0x02, 0x4A, 0xAB, 0xF1, 0x15, 0x4B, 0x05, 0xD2, +0x04, 0xD3, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x40, 0x9A, 0x05, 0x94, 0x40, 0xEA, 0x40, 0xC0, +0x04, 0x93, 0x05, 0x92, 0x01, 0x48, 0x6A, 0xE8, +0x01, 0x4A, 0x05, 0xD2, 0xF2, 0x61, 0x47, 0x41, +0x2A, 0x4A, 0x30, 0xF0, 0x20, 0x68, 0x04, 0xD2, +0xCB, 0xF1, 0x15, 0x48, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x40, 0x9B, 0x04, 0x94, 0x40, 0xEA, +0x40, 0xC0, 0x04, 0x92, 0x30, 0xF0, 0x20, 0x6B, +0x01, 0x48, 0xEB, 0xF1, 0x05, 0x4B, 0x01, 0x4A, +0x6A, 0xE8, 0x04, 0xD2, 0xEF, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, 0x87, 0x41, +0x5A, 0x4C, 0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, +0xC6, 0xF5, 0x10, 0x48, 0x30, 0xF0, 0x20, 0x6B, +0x24, 0xF4, 0x55, 0xC0, 0xC0, 0xF3, 0x40, 0x9B, +0x87, 0x41, 0x5B, 0x4C, 0x40, 0xEA, 0x24, 0xF4, +0x56, 0xC0, 0x24, 0xF4, 0x55, 0xA0, 0x40, 0x32, +0x04, 0xD2, 0x04, 0x93, 0x24, 0xF4, 0x56, 0xA0, +0x00, 0x68, 0x4D, 0xEB, 0x04, 0xD3, 0x12, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x87, 0x41, 0xC0, 0xF3, +0x40, 0x9A, 0x5C, 0x4C, 0x11, 0xE4, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, +0x6D, 0xE0, 0x24, 0xF4, 0x57, 0xC3, 0x01, 0x48, +0xFF, 0x6A, 0x4C, 0xE8, 0x04, 0x92, 0x43, 0xE8, +0xEB, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, +0x10, 0x4B, 0xC4, 0xF3, 0x59, 0xA3, 0xC4, 0xF3, +0x7A, 0xA3, 0x40, 0x32, 0x6D, 0xEA, 0x08, 0x6B, +0x4C, 0xEB, 0x0A, 0x23, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x54, 0x9A, 0x03, 0x6B, 0x01, 0x6C, +0x60, 0xC2, 0x80, 0x18, 0x28, 0x09, 0x19, 0x10, +0x07, 0x6C, 0x4C, 0xEC, 0x4F, 0x44, 0xFF, 0xF7, +0x1F, 0x6B, 0x6C, 0xEA, 0x02, 0x5A, 0x11, 0x60, +0x00, 0x6D, 0x80, 0x18, 0xC1, 0x02, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF2, 0x74, 0x9A, 0xFF, 0x6C, +0x19, 0x6D, 0x40, 0xA3, 0xAB, 0xED, 0x8C, 0xEA, +0xAC, 0xEA, 0x10, 0x6D, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xC3, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x00, 0x6A, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF2, 0x60, 0x9B, 0xFF, 0x6A, 0x8C, 0xEA, +0x80, 0xAB, 0xE1, 0xF7, 0x1F, 0x6B, 0x30, 0xF0, +0x20, 0x6E, 0x8C, 0xEB, 0x69, 0xE2, 0x5C, 0x34, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x58, 0x9A, +0x10, 0x4C, 0x06, 0x6D, 0x6B, 0xF6, 0x08, 0x4E, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, 0x00, 0x4B, +0x60, 0x9B, 0x0F, 0xD7, 0x0D, 0xD5, 0x0E, 0xD6, +0x20, 0xAB, 0xFF, 0x6A, 0x8C, 0xEA, 0xE1, 0xF7, +0x1F, 0x6C, 0x8C, 0xE9, 0x25, 0xE2, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x68, 0x4B, 0xF7, +0x00, 0x4C, 0x00, 0x6D, 0xA0, 0xF1, 0x00, 0x6E, +0x40, 0xEA, 0x3C, 0x31, 0xA0, 0xF3, 0x58, 0x98, +0x0D, 0x96, 0x87, 0x41, 0x12, 0x4C, 0x01, 0x6D, +0x40, 0xEA, 0xA0, 0xF3, 0x58, 0x98, 0x0E, 0x96, +0x87, 0x41, 0x13, 0x4C, 0x01, 0x6D, 0x40, 0xEA, +0xA0, 0xF3, 0x58, 0x98, 0x0F, 0x96, 0x87, 0x41, +0x14, 0x4C, 0x01, 0x6D, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF2, 0x00, 0x4A, 0x40, 0x9A, +0x0D, 0x93, 0xE1, 0xF7, 0x1F, 0x6C, 0x20, 0xAA, +0x40, 0xA3, 0x30, 0xF0, 0x20, 0x6E, 0x8C, 0xE9, +0x25, 0xE2, 0xA0, 0xF3, 0x58, 0x98, 0x3C, 0x31, +0x81, 0x41, 0x01, 0x6D, 0x4C, 0xF0, 0x1C, 0x4E, +0x40, 0xEA, 0x02, 0x49, 0x00, 0x6A, 0x05, 0xD1, +0x04, 0xD2, 0x40, 0x10, 0x04, 0x92, 0x1C, 0x68, +0x30, 0xF0, 0x20, 0x69, 0x18, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x4B, 0xF7, 0x04, 0x4A, 0x00, 0x6D, +0x1C, 0x6E, 0x12, 0xE8, 0x01, 0xE2, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, 0x90, 0x67, +0x40, 0xEA, 0xA0, 0xF3, 0x58, 0x99, 0x05, 0x94, +0x01, 0x6D, 0xC4, 0x40, 0x40, 0xEA, 0x05, 0x92, +0x62, 0xA8, 0xC7, 0x40, 0x01, 0x4A, 0x40, 0xD8, +0x6D, 0xE2, 0xA0, 0xF3, 0x58, 0x99, 0x83, 0x67, +0x05, 0xD3, 0x01, 0x6D, 0x05, 0x4E, 0x40, 0xEA, +0x05, 0x93, 0x46, 0xA8, 0xC7, 0x40, 0x01, 0x4B, +0x62, 0xD8, 0x4D, 0xE3, 0xEE, 0x4A, 0x06, 0xD3, +0x4A, 0xC8, 0x05, 0x92, 0x01, 0x6D, 0x11, 0x4E, +0x11, 0x4A, 0x44, 0xD8, 0xA0, 0xF3, 0x58, 0x99, +0x06, 0x94, 0x40, 0xEA, 0x04, 0x94, 0x06, 0x93, +0xFF, 0x6A, 0x01, 0x4C, 0x01, 0x4B, 0x4C, 0xEC, +0x05, 0xD3, 0x04, 0xD4, 0x30, 0xF0, 0x20, 0x6A, +0x4C, 0xF0, 0x5C, 0xA2, 0x04, 0x93, 0x43, 0xEB, +0xB9, 0x61, 0x05, 0x94, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x58, 0x9A, 0x30, 0xF0, 0x20, 0x6E, +0x01, 0x4C, 0x01, 0x6D, 0x6C, 0xF0, 0x18, 0x4E, +0x40, 0xEA, 0x05, 0x94, 0x00, 0x69, 0x02, 0x4C, +0x04, 0xD4, 0x1F, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x2C, 0x30, 0x6C, 0xF0, 0x00, 0x4A, 0x01, 0xE2, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, +0x90, 0x67, 0x00, 0x6D, 0x08, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x58, 0x9A, +0x04, 0x94, 0x01, 0x6D, 0xC4, 0x40, 0x40, 0xEA, +0x04, 0x92, 0x62, 0xA8, 0x01, 0x49, 0x01, 0x4A, +0x40, 0xD8, 0x6D, 0xE2, 0xFF, 0x6A, 0x04, 0xD3, +0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, +0x10, 0x48, 0xA5, 0xF2, 0x48, 0xA0, 0x43, 0xE9, +0xD9, 0x61, 0x30, 0xF0, 0x20, 0x69, 0x04, 0x94, +0xA0, 0xF3, 0x58, 0x99, 0x30, 0xF0, 0x20, 0x6E, +0x01, 0x4C, 0x01, 0x6D, 0xCC, 0xF0, 0x04, 0x4E, +0x40, 0xEA, 0x04, 0x92, 0xE5, 0xF2, 0x74, 0xA8, +0x30, 0xF0, 0x20, 0x6E, 0x02, 0x4A, 0x01, 0x4B, +0xE5, 0xF2, 0x50, 0xD8, 0x49, 0xE3, 0x04, 0xD2, +0x04, 0x94, 0xA0, 0xF3, 0x58, 0x99, 0x01, 0x6D, +0xCC, 0xF0, 0x0C, 0x4E, 0x40, 0xEA, 0x04, 0x92, +0xE5, 0xF2, 0x7C, 0xA8, 0x30, 0xF0, 0x20, 0x6E, +0x01, 0x4A, 0x01, 0x4B, 0xE5, 0xF2, 0x58, 0xD8, +0x49, 0xE3, 0x04, 0xD2, 0x04, 0x94, 0xA0, 0xF3, +0x58, 0x99, 0x01, 0x6D, 0xCC, 0xF0, 0x14, 0x4E, +0x40, 0xEA, 0x04, 0x92, 0x05, 0xF3, 0x64, 0xA8, +0x30, 0xF0, 0x20, 0x6E, 0x01, 0x4A, 0x01, 0x4B, +0x05, 0xF3, 0x40, 0xD8, 0x49, 0xE3, 0x04, 0xD2, +0x04, 0x94, 0xA0, 0xF3, 0x58, 0x99, 0x01, 0x6D, +0xCC, 0xF0, 0x1C, 0x4E, 0x40, 0xEA, 0x04, 0x92, +0x30, 0xF0, 0x20, 0x6E, 0x01, 0x6D, 0x01, 0x4A, +0x05, 0xF3, 0x48, 0xD8, 0x05, 0xF3, 0x0C, 0xA8, +0xAC, 0xF0, 0x1C, 0x4E, 0x01, 0x48, 0x41, 0xE0, +0xA0, 0xF3, 0x58, 0x99, 0x90, 0x67, 0x01, 0x48, +0x40, 0xEA, 0x04, 0xD0, 0x00, 0x68, 0x1F, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x0C, 0x31, 0x6C, 0xF0, +0x1C, 0x4A, 0x25, 0xE2, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x48, 0x9A, 0x91, 0x67, 0x00, 0x6D, +0x08, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x58, 0x9A, 0x04, 0x94, 0x02, 0x6D, +0xC4, 0x41, 0x40, 0xEA, 0x04, 0x92, 0x62, 0xA9, +0x01, 0x48, 0x02, 0x4A, 0x40, 0xD9, 0x6D, 0xE2, +0xFF, 0x6A, 0x04, 0xD3, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0xAC, 0xF0, 0x5C, 0xA2, 0x43, 0xE8, +0xDB, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xC0, 0xA4, 0x20, 0xF1, 0xED, 0xA2, 0x02, 0x6B, +0x01, 0x6D, 0x6B, 0xEB, 0xAC, 0xEE, 0xEC, 0xEB, +0xCD, 0xEB, 0x20, 0xF1, 0x6D, 0xC2, 0xAC, 0xEB, +0x2B, 0x23, 0x62, 0xA4, 0x20, 0xF1, 0xEF, 0xA2, +0x6A, 0x33, 0xAC, 0xEB, 0x68, 0x36, 0x05, 0x6B, +0x6B, 0xEB, 0xEC, 0xEB, 0xCD, 0xEB, 0x20, 0xF1, +0x6F, 0xC2, 0xC2, 0xA4, 0xDA, 0x36, 0xAC, 0xEE, +0xD8, 0x37, 0x41, 0x6E, 0xCB, 0xEE, 0x6C, 0xEE, +0xED, 0xEE, 0x20, 0xF1, 0xCF, 0xC2, 0x62, 0xA4, +0x6E, 0x33, 0xAC, 0xEB, 0x6C, 0x35, 0x09, 0x6B, +0x6B, 0xEB, 0xCC, 0xEB, 0xAD, 0xEB, 0x20, 0xF1, +0x6F, 0xC2, 0xA2, 0xA4, 0x7F, 0x6C, 0x6C, 0xEC, +0xBE, 0x35, 0xBC, 0x35, 0xAD, 0xEC, 0x20, 0xF1, +0x8F, 0xC2, 0x01, 0x6C, 0x80, 0x18, 0x16, 0x40, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x60, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x20, 0xF1, 0x74, 0xC2, 0x61, 0xA4, +0x20, 0xF1, 0x75, 0xC2, 0x62, 0xA4, 0x20, 0xF1, +0x76, 0xC2, 0x63, 0xA4, 0x20, 0xF1, 0x77, 0xC2, +0x64, 0xA4, 0x20, 0xF1, 0x78, 0xC2, 0x65, 0xA4, +0x20, 0xF1, 0x79, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0xE2, 0x63, 0x3B, 0x62, 0x3A, 0xD1, 0x39, 0xD0, +0x00, 0x6A, 0x3C, 0xD4, 0x7D, 0x67, 0x9D, 0x67, +0x3F, 0xD7, 0x3E, 0xD6, 0x50, 0xCB, 0x48, 0xCC, +0x3C, 0x90, 0x30, 0xF0, 0x20, 0x6B, 0x22, 0xF4, +0x78, 0x9B, 0x30, 0xF0, 0x20, 0x69, 0x07, 0xD2, +0x06, 0xD2, 0x09, 0xD2, 0x0A, 0xD2, 0x0B, 0xD2, +0x0C, 0xD2, 0x08, 0x48, 0xC0, 0xF3, 0x40, 0x99, +0xA1, 0xE0, 0x05, 0xD3, 0x8E, 0x40, 0x40, 0xEA, +0xBD, 0x67, 0x50, 0xC5, 0xC0, 0xF3, 0x40, 0x99, +0x8F, 0x40, 0x40, 0xEA, 0x7D, 0x67, 0x51, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x3E, 0x94, 0x80, 0xF2, +0x4C, 0x9A, 0x04, 0x05, 0x02, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, +0x0D, 0x04, 0x00, 0x6D, 0x80, 0x6E, 0x40, 0xEA, +0x3C, 0x91, 0x07, 0x04, 0x20, 0xF0, 0x02, 0x05, +0x0A, 0x49, 0x2E, 0xD4, 0x34, 0xD5, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, 0x91, 0x67, +0x01, 0x49, 0x40, 0xEA, 0x2E, 0x94, 0x34, 0x95, +0x40, 0xC4, 0x01, 0x4C, 0xAA, 0xEC, 0x2E, 0xD4, +0xF2, 0x61, 0x07, 0x01, 0x30, 0xF0, 0x20, 0x6D, +0x91, 0x67, 0xEB, 0xF0, 0x1B, 0x4D, 0x06, 0x6E, +0x00, 0x18, 0xE6, 0xD2, 0xA0, 0xF1, 0x14, 0x2A, +0x7D, 0x67, 0x50, 0xA3, 0x08, 0x72, 0xA0, 0xF0, +0x10, 0x61, 0x51, 0xA3, 0xA0, 0xF0, 0x0D, 0x2A, +0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF3, 0x40, 0x9C, +0x87, 0x40, 0x02, 0x4C, 0x40, 0xEA, 0x3F, 0x95, +0x06, 0x03, 0x40, 0xC5, 0x47, 0x40, 0x09, 0x4A, +0x2F, 0xD2, 0x2E, 0xD3, 0x35, 0xD1, 0x30, 0xF0, +0x20, 0x69, 0x2F, 0x94, 0xC0, 0xF3, 0x40, 0x99, +0x40, 0xEA, 0x2E, 0x94, 0x2F, 0x95, 0x40, 0xC4, +0x35, 0x92, 0x01, 0x4C, 0x01, 0x4D, 0x4A, 0xEC, +0x2F, 0xD5, 0x2E, 0xD4, 0xF0, 0x61, 0xC0, 0xF3, +0x40, 0x99, 0x87, 0x40, 0x0D, 0x4C, 0x40, 0xEA, +0x2E, 0xD2, 0xC0, 0xF3, 0x40, 0x99, 0x87, 0x40, +0x0E, 0x4C, 0x40, 0xEA, 0x2E, 0x93, 0xFF, 0xF7, +0x1F, 0x6C, 0x60, 0x33, 0x4D, 0xEB, 0xC0, 0xF3, +0x40, 0x99, 0x8C, 0xEB, 0x87, 0x40, 0x2F, 0xD3, +0x0F, 0x4C, 0x40, 0xEA, 0x2E, 0xD2, 0xC0, 0xF3, +0x40, 0x99, 0x87, 0x40, 0x10, 0x4C, 0x40, 0xEA, +0x2E, 0x95, 0x30, 0xF0, 0x20, 0x68, 0x00, 0x6B, +0xA0, 0x31, 0x4D, 0xE9, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE9, 0xE1, 0xF7, 0x04, 0x48, 0x2E, 0xD3, +0x2E, 0x95, 0x3F, 0x92, 0xFF, 0x6C, 0x8C, 0xED, +0x31, 0xD5, 0x60, 0xA2, 0x40, 0xA0, 0x6E, 0xEA, +0x55, 0x2A, 0x43, 0xA0, 0x02, 0x6B, 0x6C, 0xEA, +0x04, 0x22, 0x44, 0xA8, 0x2F, 0x93, 0x6E, 0xEA, +0x4D, 0x2A, 0x43, 0xA0, 0x01, 0x6B, 0x6C, 0xEA, +0x03, 0x22, 0x45, 0xA8, 0x2E, 0xEA, 0x46, 0x2A, +0x41, 0xA0, 0x02, 0x6B, 0x6C, 0xEA, 0x18, 0x22, +0x00, 0x6C, 0x30, 0xD4, 0x30, 0x92, 0x06, 0x04, +0x04, 0x6E, 0x50, 0x35, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xB5, 0xE2, 0x85, 0xF0, +0x1E, 0x4D, 0x00, 0x18, 0xE6, 0xD2, 0x03, 0x2A, +0x01, 0x6B, 0x30, 0xD3, 0x07, 0x10, 0x30, 0x94, +0x01, 0x4C, 0x04, 0x74, 0x30, 0xD4, 0xEA, 0x61, +0x00, 0x6D, 0x30, 0xD5, 0x41, 0xA0, 0x01, 0x6B, +0x6C, 0xEA, 0x0D, 0x22, 0x2E, 0x92, 0xC2, 0xA0, +0x06, 0x04, 0x50, 0x35, 0x30, 0xF0, 0x20, 0x6A, +0xE1, 0xF7, 0x04, 0x4A, 0xB5, 0xE2, 0x04, 0x4D, +0x00, 0x18, 0xE6, 0xD2, 0x0E, 0x22, 0x41, 0xA0, +0x04, 0x6B, 0x6C, 0xEA, 0x06, 0x22, 0x06, 0x04, +0x05, 0x05, 0xC3, 0x67, 0x00, 0x18, 0xE6, 0xD2, +0x04, 0x22, 0x41, 0xA0, 0x02, 0x22, 0x30, 0x93, +0x09, 0x23, 0x31, 0x94, 0x30, 0xF0, 0x20, 0x6A, +0xE1, 0xF7, 0x04, 0x4A, 0x90, 0x33, 0x69, 0xE2, +0x4C, 0xA2, 0x07, 0x11, 0x2E, 0x95, 0x10, 0x48, +0x01, 0x4D, 0x08, 0x75, 0x2E, 0xD5, 0x9C, 0x61, +0xFF, 0x10, 0x7D, 0x67, 0x50, 0xA3, 0x88, 0x72, +0x05, 0x61, 0x51, 0xA3, 0xD9, 0x72, 0x0C, 0x6A, +0xE0, 0xF0, 0x17, 0x60, 0x9D, 0x67, 0x50, 0xA4, +0x08, 0x72, 0x08, 0x61, 0x51, 0xA4, 0x06, 0x72, +0x05, 0x61, 0x3F, 0x95, 0x01, 0x6A, 0x4B, 0xEA, +0x40, 0xC5, 0xEA, 0x10, 0x7D, 0x67, 0x50, 0xA3, +0x86, 0x72, 0xE0, 0xF0, 0x05, 0x61, 0x51, 0xA3, +0xDD, 0x72, 0xE0, 0xF0, 0x01, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, 0x86, 0x40, +0x27, 0x40, 0x40, 0xEA, 0x3F, 0x94, 0x00, 0x6D, +0x11, 0x49, 0x40, 0xC4, 0x2E, 0xD5, 0x2F, 0xD5, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, +0x91, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x30, 0xD2, 0xC0, 0xF3, 0x40, 0x9C, 0x81, 0x41, +0x40, 0xEA, 0x2E, 0x93, 0xBD, 0x67, 0x71, 0xE5, +0x30, 0x95, 0xA0, 0x33, 0x4D, 0xEB, 0x72, 0xCC, +0x2E, 0x92, 0x2F, 0x93, 0x30, 0xF0, 0x20, 0x6C, +0xC6, 0xF5, 0x10, 0x4C, 0x55, 0xE4, 0x51, 0xE4, +0x64, 0x32, 0x0D, 0x03, 0x4D, 0xE3, 0xC5, 0xF0, +0x1E, 0x4D, 0xC5, 0xF0, 0x1F, 0x4C, 0x00, 0x6A, +0xC0, 0xA5, 0xE0, 0xA4, 0x01, 0x4A, 0xC0, 0x36, +0xED, 0xEE, 0xC0, 0xCB, 0xFF, 0x6E, 0xCC, 0xEA, +0x08, 0x72, 0x12, 0x4D, 0x12, 0x4C, 0x10, 0x4B, +0xF3, 0x61, 0x2F, 0x94, 0x2E, 0x95, 0x02, 0x49, +0x01, 0x4C, 0x02, 0x4D, 0x08, 0x74, 0x2F, 0xD4, +0x2E, 0xD5, 0xC6, 0x61, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x40, 0x99, 0x87, 0x40, 0x21, 0x4C, +0x40, 0xEA, 0x2E, 0xD2, 0xC0, 0xF3, 0x40, 0x99, +0x87, 0x40, 0x22, 0x4C, 0x40, 0xEA, 0x2E, 0x93, +0xFF, 0xF7, 0x1F, 0x6C, 0x60, 0x33, 0x4D, 0xEB, +0xC0, 0xF3, 0x40, 0x99, 0x8C, 0xEB, 0x87, 0x40, +0x2E, 0xD3, 0x23, 0x4C, 0x40, 0xEA, 0x2F, 0xD2, +0xC0, 0xF3, 0x40, 0x99, 0x87, 0x40, 0x24, 0x4C, +0x40, 0xEA, 0x2F, 0x95, 0x00, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0xA0, 0x31, 0x4D, 0xE9, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xE9, 0x62, 0xF0, 0x04, 0x48, +0x2F, 0xD3, 0x32, 0xD3, 0x2F, 0x92, 0xFF, 0x6D, +0x3F, 0x94, 0xAC, 0xEA, 0x30, 0xD2, 0x60, 0xA4, +0x40, 0xA0, 0x6E, 0xEA, 0x5F, 0x2A, 0x43, 0xA0, +0x02, 0x6B, 0x6C, 0xEA, 0x04, 0x22, 0x4A, 0xA8, +0x2E, 0x95, 0xAE, 0xEA, 0x57, 0x2A, 0x43, 0xA0, +0x01, 0x6B, 0x6C, 0xEA, 0x03, 0x22, 0x4B, 0xA8, +0x2E, 0xEA, 0x50, 0x2A, 0x41, 0xA0, 0x02, 0x6B, +0x6C, 0xEA, 0x13, 0x22, 0x0D, 0x02, 0x2D, 0x03, +0x31, 0xD2, 0x36, 0xD3, 0x31, 0x95, 0x09, 0x04, +0x10, 0x6E, 0x00, 0x18, 0xE6, 0xD2, 0x03, 0x2A, +0x01, 0x6C, 0x32, 0xD4, 0x06, 0x10, 0x31, 0x95, +0x36, 0x92, 0x10, 0x4D, 0x4A, 0xED, 0x31, 0xD5, +0xF1, 0x61, 0x41, 0xA0, 0x01, 0x6B, 0x6C, 0xEA, +0x0F, 0x22, 0x2F, 0x92, 0x1C, 0x6D, 0xC2, 0xA0, +0xB8, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF0, +0x04, 0x4A, 0x09, 0x04, 0x12, 0xED, 0xB5, 0xE2, +0x04, 0x4D, 0x00, 0x18, 0xE6, 0xD2, 0x0D, 0x22, +0x41, 0xA0, 0x04, 0x6B, 0x6C, 0xEA, 0x05, 0x22, +0x7D, 0x67, 0x52, 0xAB, 0x42, 0x32, 0xFF, 0x72, +0x04, 0x60, 0x41, 0xA0, 0x02, 0x22, 0x32, 0x94, +0x19, 0x24, 0x42, 0xA0, 0x10, 0x72, 0x0B, 0x60, +0x0A, 0x22, 0x0E, 0x72, 0x13, 0x61, 0xBD, 0x67, +0x59, 0xAD, 0x02, 0xF0, 0x00, 0x5A, 0x0E, 0x61, +0x02, 0xF4, 0x00, 0x5A, 0x0B, 0x60, 0x30, 0x94, +0x1C, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x78, 0xEC, +0x62, 0xF0, 0x04, 0x4A, 0x12, 0xEB, 0x49, 0xE3, +0x58, 0xA2, 0x07, 0x10, 0x2F, 0x95, 0x1C, 0x48, +0x01, 0x4D, 0x0E, 0x75, 0x2F, 0xD5, 0x92, 0x61, +0x00, 0x6A, 0x3B, 0x97, 0x3A, 0x91, 0x39, 0x90, +0x1E, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x10, 0x92, 0x0C, 0xD4, +0x0D, 0xD5, 0x04, 0xD2, 0x04, 0x93, 0xFF, 0x6A, +0x4C, 0xEF, 0x4C, 0xEB, 0x04, 0xD3, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF1, 0x6C, 0x9B, 0x0E, 0xD6, +0x06, 0xD7, 0x60, 0xA3, 0x6C, 0xEA, 0x05, 0xD2, +0x00, 0x18, 0xB5, 0xD2, 0x1C, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, 0x00, 0x6C, +0xFF, 0x6D, 0x33, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, 0x00, 0x68, +0x40, 0xEA, 0x01, 0x72, 0x19, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF2, +0x54, 0x9A, 0xC6, 0xF6, 0x94, 0xA3, 0x01, 0x6D, +0x18, 0x6E, 0xF0, 0x67, 0x0B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF2, +0x54, 0x9A, 0xC6, 0xF6, 0x94, 0xA3, 0x01, 0x6D, +0x18, 0x6E, 0x00, 0x6F, 0x40, 0xEA, 0x02, 0x67, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF1, 0x50, 0x9A, 0x03, 0xF2, 0x6C, 0x9B, +0x49, 0xE0, 0x6D, 0xE0, 0x80, 0xA2, 0xA0, 0xA3, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, 0x78, 0x9B, +0xFF, 0x6A, 0x4C, 0xEC, 0x6D, 0xE0, 0xC0, 0xA3, +0x4C, 0xED, 0x4C, 0xEE, 0x80, 0x18, 0xC3, 0x06, +0x06, 0x95, 0x87, 0x40, 0x29, 0x4C, 0x22, 0x67, +0x80, 0x18, 0x79, 0x0D, 0x04, 0x94, 0x30, 0x2C, +0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF2, 0x88, 0x9C, 0x30, 0xF0, 0x20, 0x6D, +0x43, 0xF2, 0x44, 0x9A, 0x43, 0xF2, 0xBC, 0x9D, +0x0D, 0x93, 0x91, 0xE0, 0x49, 0xE0, 0x31, 0xE4, +0xB5, 0xE0, 0xC0, 0xA3, 0xC0, 0xC2, 0xC0, 0xA3, +0x01, 0x4A, 0xAA, 0xEA, 0xC0, 0xC4, 0x01, 0x4B, +0x01, 0x4C, 0xF7, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF2, 0x48, 0x9A, 0x41, 0xE0, 0x21, 0xE0, +0x00, 0x6A, 0x0C, 0x95, 0x4D, 0xE5, 0x60, 0xA3, +0x60, 0xC0, 0x0E, 0x95, 0x68, 0x40, 0xFE, 0x4B, +0x51, 0xE5, 0x80, 0xA4, 0x01, 0x4A, 0x04, 0x72, +0x80, 0xC3, 0x01, 0x48, 0xF2, 0x61, 0x2D, 0x10, +0x04, 0x92, 0x01, 0x72, 0x2A, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF2, 0x84, 0x9B, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF2, 0x68, 0x9B, 0x30, 0xF0, +0x20, 0x6A, 0x8B, 0xF2, 0x08, 0x4A, 0x6D, 0xE0, +0x91, 0xE0, 0x2D, 0xE3, 0xA6, 0x42, 0xC0, 0xA2, +0xC0, 0xC4, 0xCA, 0xA2, 0x01, 0x4A, 0xAA, 0xEA, +0xC0, 0xC3, 0x01, 0x4C, 0x01, 0x4B, 0xF7, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, 0x68, 0x9B, +0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF2, 0x18, 0x4A, +0x61, 0xE0, 0x21, 0xE0, 0x64, 0x42, 0x80, 0xA2, +0x01, 0x4A, 0x6A, 0xEA, 0x80, 0xC0, 0x01, 0x48, +0xFA, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0xE0, 0xF0, 0x7C, 0xA2, 0x02, 0x73, +0x05, 0x61, 0x00, 0xF1, 0x84, 0xA2, 0xB1, 0x67, +0x80, 0x18, 0x1D, 0x0A, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF2, 0x78, 0x9A, 0xFF, 0x68, 0x10, 0x6C, +0x40, 0xA3, 0x34, 0x6E, 0x0C, 0xEA, 0x8D, 0xEA, +0x0C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x05, 0x95, 0x00, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, +0x54, 0x9A, 0x40, 0xEA, 0x0A, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF2, 0x7C, 0x9A, 0x20, 0x6C, +0x40, 0xA3, 0x0C, 0xEA, 0x8D, 0xEA, 0x0C, 0xEA, +0x40, 0xC3, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xA0, 0xF0, 0x8F, 0xA2, +0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x05, 0x6C, +0x8B, 0xEC, 0x8C, 0xEB, 0xA0, 0xF0, 0x6F, 0xC2, +0x0A, 0x6B, 0xA0, 0xF0, 0x70, 0xC2, 0x00, 0x6B, +0x05, 0xF3, 0x70, 0xC2, 0x05, 0xF3, 0x71, 0xC2, +0x05, 0xF3, 0x72, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xA0, 0xA4, 0xA0, 0xF0, 0xEF, 0xA2, 0x02, 0x6B, +0x01, 0x6E, 0x6B, 0xEB, 0xCC, 0xED, 0xEC, 0xEB, +0xAD, 0xEB, 0xA3, 0x67, 0xCC, 0xED, 0xA0, 0xF0, +0x6F, 0xC2, 0x19, 0x25, 0xA0, 0xA4, 0x07, 0x6F, +0xAE, 0x35, 0xEC, 0xED, 0x05, 0xF3, 0xB0, 0xC2, +0xA0, 0xA4, 0xAA, 0x35, 0xCC, 0xED, 0xA8, 0x36, +0x05, 0x6D, 0xAB, 0xED, 0x6C, 0xED, 0xCD, 0xED, +0xA0, 0xF0, 0xAF, 0xC2, 0xA0, 0xA4, 0x02, 0x6B, +0xAC, 0xEB, 0xFF, 0x6D, 0xAC, 0xEB, 0x03, 0x23, +0x61, 0xA4, 0xA0, 0xF0, 0x70, 0xC2, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x48, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xEC, 0xF0, 0x03, 0x4C, 0x00, 0x6D, 0x05, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x08, 0x6B, 0xA0, 0xF0, 0x77, 0xC2, +0x03, 0x6B, 0xA0, 0xF0, 0x78, 0xC2, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x04, 0x67, 0x80, 0x18, 0xD4, 0x05, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x80, 0xA0, 0xA0, 0xF0, 0xD6, 0xA2, 0x02, 0x6B, +0x01, 0x6D, 0x6B, 0xEB, 0xAC, 0xEC, 0xCC, 0xEB, +0x8D, 0xEB, 0x83, 0x67, 0xAC, 0xEC, 0xA0, 0xF0, +0x76, 0xC2, 0x29, 0x24, 0x80, 0xA0, 0x07, 0x6E, +0x92, 0x34, 0xCC, 0xEC, 0x05, 0xF3, 0x97, 0xC2, +0xC0, 0xA0, 0x02, 0x6C, 0xCC, 0xEC, 0xFF, 0x6E, +0xCC, 0xEC, 0x1D, 0x24, 0x81, 0xA0, 0xA0, 0xF0, +0x97, 0xC2, 0x82, 0xA0, 0xA0, 0xF0, 0x98, 0xC2, +0x80, 0xA0, 0x8A, 0x34, 0xAC, 0xEC, 0x88, 0x36, +0x05, 0x6C, 0x8B, 0xEC, 0x6C, 0xEC, 0xCD, 0xEC, +0xA0, 0xF0, 0x96, 0xC2, 0x63, 0xA0, 0xA0, 0xF0, +0x79, 0xC2, 0x60, 0xA0, 0x6E, 0x33, 0xAC, 0xEB, +0x6C, 0x35, 0x09, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0xAD, 0xEB, 0xA0, 0xF0, 0x76, 0xC2, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0xEC, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x68, 0x80, 0xF2, +0x4C, 0x9B, 0x0B, 0xF3, 0x0C, 0x48, 0x26, 0x67, +0x0A, 0xD4, 0x10, 0x6E, 0x90, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x0A, 0x95, 0x80, 0xF2, +0x4C, 0x9C, 0x87, 0x40, 0x09, 0x4C, 0x10, 0x6E, +0x40, 0xEA, 0x00, 0xF6, 0x22, 0x34, 0x00, 0xF6, +0x20, 0x32, 0x8D, 0xEA, 0x1F, 0xF7, 0x00, 0x6D, +0x22, 0x34, 0xAC, 0xEC, 0x8D, 0xEA, 0x30, 0xF0, +0x20, 0x6C, 0xC3, 0xF2, 0x8C, 0x9C, 0x20, 0x31, +0x30, 0xF0, 0x20, 0x6B, 0x8C, 0xE9, 0xC6, 0xF5, +0x10, 0x4B, 0x2D, 0xEA, 0x44, 0xF5, 0x5C, 0xDB, +0x5D, 0x67, 0x87, 0x42, 0x09, 0x4C, 0x40, 0xA4, +0x64, 0xF5, 0x43, 0xC3, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x00, 0xF0, 0x16, 0x02, 0x04, 0x44, 0x04, 0x01, +0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x40, 0x9A, 0x90, 0x67, 0x01, 0x48, 0x40, 0xEA, +0x40, 0xC1, 0x06, 0x92, 0x01, 0x49, 0x4A, 0xE9, +0xF4, 0x61, 0x10, 0x10, 0xC0, 0xA2, 0xA0, 0xA3, +0xCE, 0xED, 0x02, 0x25, 0x00, 0x6A, 0x05, 0x10, +0x01, 0x4A, 0x8A, 0xEA, 0x01, 0x4B, 0xF6, 0x61, +0x01, 0x6A, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0xEB, 0xF0, 0x15, 0x4A, 0x04, 0x03, 0x86, 0x42, +0xE9, 0x17, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x07, 0x44, 0x00, 0xF0, +0x16, 0x02, 0x09, 0x48, 0x04, 0x01, 0x06, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, +0x90, 0x67, 0x01, 0x48, 0x40, 0xEA, 0x40, 0xC1, +0x06, 0x92, 0x01, 0x49, 0x4A, 0xE9, 0xF4, 0x61, +0x10, 0x10, 0xC0, 0xA2, 0xA0, 0xA3, 0xCE, 0xED, +0x02, 0x25, 0x00, 0x6A, 0x05, 0x10, 0x01, 0x4A, +0x8A, 0xEA, 0x01, 0x4B, 0xF6, 0x61, 0x01, 0x6A, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, 0xEB, 0xF0, +0x1B, 0x4A, 0x04, 0x03, 0x86, 0x42, 0xE9, 0x17, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x08, 0x4C, 0xC0, 0xF3, +0x40, 0x98, 0xA5, 0xE4, 0x81, 0x41, 0x40, 0xEA, +0x10, 0x2A, 0xC0, 0xF3, 0x40, 0x98, 0x84, 0x41, +0x40, 0xEA, 0x01, 0x72, 0x0A, 0x61, 0xC0, 0xF3, +0x40, 0x98, 0x87, 0x41, 0x01, 0x4C, 0x40, 0xEA, +0x01, 0x6B, 0x6E, 0xEA, 0x01, 0x5A, 0x58, 0x67, +0x01, 0x10, 0x00, 0x6A, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x40, 0x98, +0x85, 0xE5, 0x86, 0x41, 0x40, 0xEA, 0x08, 0x72, +0x34, 0x61, 0xC0, 0xF3, 0x40, 0x98, 0x87, 0x41, +0x40, 0xEA, 0x2F, 0x2A, 0x07, 0x41, 0x05, 0x02, +0x11, 0x48, 0x04, 0x01, 0x06, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, 0x90, 0x67, +0x01, 0x48, 0x40, 0xEA, 0x40, 0xC1, 0x06, 0x92, +0x01, 0x49, 0x4A, 0xE9, 0xF4, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x5D, 0x67, 0xC6, 0xF5, 0x10, 0x4B, +0x90, 0xA2, 0xA4, 0xF4, 0x5E, 0xA3, 0x8E, 0xEA, +0x14, 0x2A, 0x5D, 0x67, 0x91, 0xA2, 0xA4, 0xF4, +0x5F, 0xA3, 0x8E, 0xEA, 0x0E, 0x2A, 0x5D, 0x67, +0x92, 0xA2, 0xC4, 0xF4, 0x40, 0xA3, 0x8E, 0xEA, +0x08, 0x2A, 0x5D, 0x67, 0x93, 0xA2, 0xC4, 0xF4, +0x41, 0xA3, 0x8E, 0xEA, 0x01, 0x5A, 0x58, 0x67, +0x01, 0x10, 0x00, 0x6A, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x04, 0x67, 0x25, 0x67, 0x80, 0x18, 0x24, 0x06, +0x00, 0x6B, 0x08, 0x22, 0x90, 0x67, 0xB1, 0x67, +0x80, 0x18, 0x64, 0x06, 0x4B, 0xEB, 0x4D, 0xEB, +0xC0, 0xF7, 0x62, 0x33, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x43, 0x67, 0x04, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x24, 0x67, 0x05, 0x67, 0x80, 0x18, 0x24, 0x06, +0x2E, 0x22, 0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, +0x64, 0x06, 0x29, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF6, 0x66, 0xA2, 0x10, 0x6A, 0x6C, 0xEA, +0x22, 0x22, 0x08, 0x49, 0x05, 0xE1, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x40, 0x98, 0x87, 0x41, +0x02, 0x4C, 0x40, 0xEA, 0x06, 0x72, 0x17, 0x61, +0xC0, 0xF3, 0x40, 0x98, 0x87, 0x41, 0x0D, 0x4C, +0x40, 0xEA, 0x11, 0x2A, 0xC0, 0xF3, 0x40, 0x98, +0x87, 0x41, 0x0E, 0x4C, 0x40, 0xEA, 0x50, 0x72, +0x0A, 0x61, 0xC0, 0xF3, 0x40, 0x98, 0x87, 0x41, +0x1A, 0x4C, 0x40, 0xEA, 0x05, 0x6B, 0x4C, 0xEB, +0x03, 0x23, 0x01, 0x6B, 0x01, 0x10, 0x00, 0x6B, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x43, 0x67, +0x04, 0x63, 0x00, 0xEF, 0x01, 0x6A, 0x8C, 0xEA, +0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0xE0, 0xF0, 0x7C, 0xA2, 0x06, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xE0, 0xF0, 0x7D, 0xA2, 0x84, 0xF5, 0x75, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF3, 0x65, 0xA2, +0x00, 0x6A, 0x07, 0x5B, 0x06, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0xA2, 0xF4, 0x00, 0x4A, 0x4D, 0xE3, +0x40, 0xA3, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x6A, 0x64, 0x67, 0x4C, 0xEB, +0x86, 0x67, 0x4C, 0xED, 0x4C, 0xEC, 0x7E, 0x32, +0x04, 0x22, 0x0C, 0x6F, 0x6C, 0xEF, 0x02, 0x68, +0x01, 0x2F, 0x00, 0x68, 0x40, 0x6B, 0xAC, 0xEB, +0x00, 0x6A, 0x02, 0x23, 0x80, 0x18, 0xB3, 0x06, +0x18, 0x48, 0x09, 0xE2, 0x05, 0x97, 0x04, 0x90, +0xFF, 0x6B, 0x6C, 0xEA, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x4C, 0xEE, 0x4C, 0xED, 0x30, 0xF0, +0x20, 0x6A, 0x0B, 0xF1, 0x0B, 0x4A, 0x67, 0x42, +0x05, 0xD6, 0x01, 0x4B, 0x00, 0x6E, 0xC0, 0xC2, +0x01, 0x4A, 0x6A, 0xEA, 0xFB, 0x61, 0x05, 0x92, +0x91, 0xE5, 0x30, 0xF0, 0x20, 0x68, 0x53, 0xE4, +0x04, 0xD4, 0x0B, 0xF1, 0x0B, 0x48, 0x00, 0x69, +0x0E, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x40, 0x9A, 0x04, 0x94, 0x01, 0x49, 0x40, 0xEA, +0x40, 0xC0, 0xFF, 0x6A, 0x4C, 0xE9, 0x04, 0x92, +0x01, 0x48, 0x01, 0x4A, 0x04, 0xD2, 0x05, 0x92, +0x43, 0xE9, 0xEF, 0x61, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0xEB, 0xF0, 0xD4, 0xA3, 0x01, 0x6B, 0xFF, 0x6A, +0xCC, 0xEB, 0x4C, 0xEB, 0x4C, 0xEC, 0x4C, 0xED, +0x01, 0x6A, 0x45, 0x2B, 0x02, 0x6A, 0xAC, 0xEA, +0x12, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, +0x70, 0x9A, 0x10, 0xF0, 0x00, 0x6E, 0x40, 0x9B, +0xCC, 0xEA, 0x09, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x54, 0x9A, 0xC0, 0xDB, 0x23, 0x6B, +0x60, 0xC2, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, +0x01, 0x6B, 0xAC, 0xEB, 0x2C, 0x23, 0x40, 0x6B, +0x8C, 0xEB, 0x0C, 0x23, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x54, 0x9A, 0x22, 0x6B, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0x54, 0x9A, +0x80, 0xC2, 0x01, 0x6A, 0x9E, 0x33, 0x0C, 0x23, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, 0x54, 0x9A, +0x21, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF2, 0x54, 0x9A, 0x80, 0xC2, 0x01, 0x6A, +0x20, 0x6B, 0x8C, 0xEB, 0x0C, 0x23, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF1, 0x54, 0x9A, 0x23, 0x6B, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, +0x54, 0x9A, 0x80, 0xC2, 0x01, 0x6A, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, 0xBE, 0xA3, +0x80, 0x6B, 0x6B, 0xEB, 0xFF, 0x6A, 0xAC, 0xEB, +0x4C, 0xEB, 0x4C, 0xEC, 0x14, 0x23, 0xA0, 0x74, +0x04, 0x6B, 0x01, 0x60, 0x08, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF1, 0x54, 0x9A, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x24, 0xF3, 0x84, 0xA2, 0x01, 0x6B, 0x8D, 0xEB, +0x24, 0xF3, 0x64, 0xC2, 0x20, 0xE8, 0xA0, 0x74, +0x4E, 0x6B, 0x01, 0x60, 0x4D, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF1, 0x54, 0x9A, 0x6B, 0xEB, +0x60, 0xC2, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x10, 0x4B, 0x24, 0xF3, 0xA4, 0xA3, +0x01, 0x6C, 0x44, 0x67, 0x8C, 0xED, 0x04, 0x25, +0xE0, 0xF0, 0x4E, 0xA3, 0x52, 0x32, 0x8C, 0xEA, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0xE6, 0xF6, +0x0F, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x78, 0x9A, 0xDF, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x20, 0xF1, 0x9B, 0xA2, +0x40, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x20, 0xF1, +0x7B, 0xC2, 0x20, 0xE8, 0xFA, 0x63, 0x0B, 0xD1, +0x0A, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF4, +0x68, 0x9A, 0x82, 0xF4, 0x08, 0x4A, 0x9D, 0x67, +0x00, 0xD3, 0x61, 0x9A, 0x44, 0xAA, 0x01, 0xD3, +0x7D, 0x67, 0x44, 0xCB, 0x30, 0xF0, 0x20, 0x6A, +0x62, 0xF4, 0x7C, 0x9A, 0x62, 0xF4, 0x1C, 0x4A, +0x03, 0xD3, 0x61, 0x9A, 0x44, 0xAA, 0x04, 0xD3, +0x4A, 0xCC, 0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, +0x77, 0xA2, 0x64, 0x32, 0x49, 0xE4, 0x00, 0xAA, +0x46, 0xAA, 0xE3, 0x67, 0xC3, 0x67, 0x1A, 0x65, +0x08, 0xD3, 0x07, 0xD3, 0x06, 0xD3, 0x00, 0x6A, +0x11, 0xE2, 0x1F, 0xF7, 0x00, 0x6D, 0xAC, 0xEC, +0x02, 0xF0, 0x00, 0x69, 0x2E, 0xEC, 0x07, 0x24, +0x64, 0x34, 0x3D, 0x67, 0x91, 0xE1, 0x80, 0xAC, +0x91, 0xE2, 0xAC, 0xEC, 0x0B, 0x2C, 0xBD, 0x67, +0xC4, 0x34, 0x91, 0xE5, 0xA0, 0xAC, 0x30, 0xF0, +0x20, 0x6C, 0x22, 0x67, 0xB5, 0xE2, 0xA3, 0xF0, +0x98, 0x9C, 0x0A, 0x10, 0xBD, 0x67, 0xE4, 0x34, +0x91, 0xE5, 0xA0, 0xAC, 0x30, 0xF0, 0x20, 0x6C, +0xA3, 0xF0, 0x9C, 0x9C, 0x22, 0x67, 0xB5, 0xE2, +0x91, 0xE5, 0xA0, 0xA4, 0xFF, 0x6C, 0xAC, 0xEC, +0x30, 0xF0, 0x20, 0x6D, 0xC6, 0xF5, 0x10, 0x4D, +0xB5, 0xE1, 0x38, 0x67, 0x24, 0xF3, 0x8B, 0xC5, +0x31, 0xE2, 0x1F, 0xF7, 0x00, 0x6D, 0xAC, 0xEC, +0x02, 0xF0, 0x00, 0x69, 0x2E, 0xEC, 0x08, 0x24, +0x08, 0x91, 0x24, 0x34, 0x3D, 0x67, 0x91, 0xE1, +0x86, 0xAC, 0x91, 0xE2, 0xAC, 0xEC, 0x0C, 0x2C, +0x06, 0x95, 0x22, 0x67, 0xA4, 0x34, 0xBD, 0x67, +0x91, 0xE5, 0xA6, 0xAC, 0x30, 0xF0, 0x20, 0x6C, +0xA3, 0xF0, 0x98, 0x9C, 0xB5, 0xE2, 0x0B, 0x10, +0x07, 0x95, 0x22, 0x67, 0xA4, 0x34, 0xBD, 0x67, +0x91, 0xE5, 0xA6, 0xAC, 0x30, 0xF0, 0x20, 0x6C, +0xA3, 0xF0, 0x9C, 0x9C, 0xB5, 0xE2, 0x91, 0xE5, +0xA0, 0xA4, 0xFF, 0x6C, 0x01, 0x4A, 0xAC, 0xEC, +0x30, 0xF0, 0x20, 0x6D, 0xC6, 0xF5, 0x10, 0x4D, +0xB5, 0xE1, 0x24, 0xF3, 0x85, 0xC5, 0x06, 0x6C, +0x4E, 0xEC, 0x9A, 0x2C, 0x0B, 0x91, 0x0A, 0x90, +0x06, 0x63, 0x20, 0xE8, 0x60, 0xA4, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xE0, 0xF0, +0x7C, 0xC2, 0x61, 0xA4, 0xE0, 0xF0, 0x7D, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0xC6, 0xF6, +0x13, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0xC6, 0xF6, +0x1A, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x61, 0xA4, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x00, 0xF1, +0x72, 0xC2, 0x62, 0xA4, 0x00, 0xF1, 0x73, 0xC2, +0x64, 0xA4, 0x00, 0xF1, 0x75, 0xC2, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, +0x20, 0x6C, 0xE6, 0xF6, 0x16, 0x4C, 0x04, 0x6E, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x10, 0x4B, 0xC3, 0xF3, 0x8C, 0xA3, +0x01, 0x6A, 0x8C, 0xEA, 0x1B, 0x22, 0xE0, 0xF0, +0x92, 0xA3, 0x08, 0x6A, 0x8C, 0xEA, 0xFF, 0x6C, +0x8C, 0xEA, 0x0A, 0x22, 0xE0, 0xF0, 0xD3, 0xA3, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, +0x5D, 0x4C, 0x00, 0x6D, 0xC0, 0x36, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x48, 0x9A, +0xE0, 0xF0, 0xD3, 0xA3, 0xFF, 0x6C, 0x5D, 0x4C, +0x00, 0x6D, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFE, 0x63, 0x03, 0xD1, +0x02, 0xD0, 0xFF, 0x68, 0xFF, 0xF7, 0x1F, 0x6A, +0x0C, 0xED, 0xCC, 0xEA, 0xEC, 0xE8, 0x00, 0x6F, +0x04, 0xD4, 0x00, 0xD5, 0x01, 0x6C, 0x67, 0x67, +0xC2, 0x67, 0x41, 0x47, 0xB0, 0x67, 0xA7, 0xEA, +0x45, 0x67, 0x01, 0x6D, 0xAC, 0xEA, 0x0F, 0x22, +0x02, 0x6A, 0x06, 0x10, 0xFF, 0xF7, 0x1F, 0x69, +0x44, 0x32, 0x01, 0x4D, 0x2C, 0xEA, 0x2C, 0xED, +0x83, 0xED, 0xF8, 0x61, 0x4C, 0x32, 0x4D, 0xE3, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEB, 0x01, 0x4C, +0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEC, 0x08, 0x74, +0x01, 0x4F, 0xE3, 0x61, 0x63, 0xEE, 0x46, 0x67, +0x15, 0x61, 0x00, 0x96, 0xCC, 0x34, 0xFF, 0x4C, +0x91, 0xE3, 0xAC, 0xEC, 0x43, 0xEC, 0x0E, 0x61, +0x6B, 0xE2, 0x08, 0x6C, 0x9A, 0xEA, 0x01, 0x2C, +0xE5, 0xE8, 0x04, 0x93, 0x12, 0xEA, 0x49, 0xE3, +0x40, 0xA2, 0x10, 0xED, 0x01, 0x6B, 0x47, 0xED, +0x6C, 0xEA, 0x01, 0x10, 0x00, 0x6A, 0x03, 0x91, +0x02, 0x90, 0x02, 0x63, 0x20, 0xE8, 0x00, 0x65, +0xD8, 0x63, 0x4F, 0x62, 0x4E, 0xD1, 0x4D, 0xD0, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEC, 0x4C, 0xED, +0x30, 0xF0, 0x20, 0x6A, 0x62, 0xF4, 0x70, 0x9A, +0x62, 0xF4, 0x10, 0x4A, 0x48, 0xD4, 0x04, 0xD3, +0x61, 0x9A, 0x44, 0xAA, 0x4A, 0xD5, 0x05, 0xD3, +0x7D, 0x67, 0x4C, 0xCB, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x44, 0xF3, 0x90, 0xA2, +0x03, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x44, 0xF3, +0x70, 0xC2, 0x24, 0x68, 0x00, 0x69, 0x48, 0x94, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, +0x01, 0x4C, 0x11, 0xE4, 0x40, 0xEA, 0x49, 0xD2, +0x02, 0x2A, 0x02, 0x6A, 0x33, 0x11, 0x30, 0xF0, +0x20, 0x6C, 0x48, 0x93, 0xC0, 0xF3, 0x40, 0x9C, +0x71, 0xE0, 0x40, 0xEA, 0x05, 0x72, 0x06, 0x61, +0x49, 0x94, 0x01, 0x6B, 0x03, 0x6A, 0x04, 0x5C, +0x13, 0x60, 0x24, 0x11, 0x49, 0x92, 0x01, 0x49, +0x02, 0x4A, 0x41, 0xE0, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE8, 0x4C, 0xE9, 0x4A, 0x92, 0xFC, 0x4A, +0x42, 0xE8, 0x02, 0x61, 0x00, 0x6B, 0x04, 0x10, +0xE0, 0xF1, 0x14, 0x71, 0xD4, 0x61, 0x0F, 0x11, +0xE0, 0xF1, 0x14, 0x71, 0x00, 0xF1, 0x0B, 0x60, +0x00, 0xF1, 0x0B, 0x23, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x10, 0x4B, 0x44, 0xF3, 0x90, 0xA3, +0x09, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, 0x05, 0x6C, +0x8B, 0xEC, 0x8C, 0xEA, 0x44, 0xF3, 0x50, 0xC3, +0x48, 0x94, 0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, +0x40, 0x99, 0x02, 0x4C, 0x11, 0xE4, 0x40, 0xEA, +0x48, 0x94, 0x7D, 0x67, 0x5C, 0xC3, 0xC0, 0xF3, +0x40, 0x99, 0x03, 0x4C, 0x11, 0xE4, 0x40, 0xEA, +0x9D, 0x67, 0x5D, 0xC4, 0x48, 0x94, 0xC0, 0xF3, +0x40, 0x99, 0x00, 0x69, 0x04, 0x4C, 0x11, 0xE4, +0x40, 0xEA, 0x7D, 0x67, 0x5E, 0xC3, 0x10, 0x10, +0x48, 0x94, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x40, 0x9A, 0x05, 0x4C, 0x11, 0xE4, 0x31, 0xE4, +0x40, 0xEA, 0x9D, 0x67, 0x2D, 0xE4, 0x5F, 0xC3, +0x01, 0x49, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE9, +0x49, 0x92, 0xFD, 0x4A, 0x42, 0xE9, 0xEC, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xA6, 0xF6, 0x57, 0xA2, +0x7D, 0x67, 0x44, 0x32, 0x49, 0xE3, 0x68, 0xAA, +0x1F, 0xF7, 0x00, 0x6A, 0x6C, 0xEA, 0x02, 0xF0, +0x00, 0x72, 0x01, 0x60, 0x0F, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x57, 0xA2, 0x9D, 0x67, +0x44, 0x32, 0x49, 0xE4, 0x68, 0xAA, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x58, 0x9A, 0x49, 0xE3, +0x60, 0xAA, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x5C, 0x9A, 0x4D, 0xE3, 0x60, 0xAB, +0xFF, 0xF7, 0x1F, 0x6A, 0x9D, 0x67, 0x6C, 0xEA, +0x7C, 0xA4, 0x0E, 0x2B, 0x7E, 0xA4, 0x01, 0x6C, +0x8C, 0xEB, 0x0A, 0x23, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x10, 0x4B, 0x44, 0xF3, 0xB0, 0xA3, +0x08, 0x6C, 0xAD, 0xEC, 0x44, 0xF3, 0x90, 0xC3, +0x49, 0x95, 0xE0, 0xF7, 0x1F, 0x6E, 0x4C, 0xEE, +0x5D, 0x67, 0xFE, 0xA2, 0xFD, 0x4D, 0xFF, 0x6B, +0x00, 0xF0, 0x1F, 0x04, 0x6C, 0xED, 0x80, 0x18, +0xC9, 0x07, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x44, 0xF3, 0x90, 0xA2, +0x04, 0x6B, 0x8D, 0xEB, 0x44, 0xF3, 0x70, 0xC2, +0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, +0x44, 0xF3, 0x70, 0xA0, 0x0C, 0x6A, 0x6C, 0xEA, +0x10, 0x2A, 0xC3, 0xF3, 0x71, 0xA0, 0xFE, 0x4A, +0xE0, 0xF0, 0x87, 0xA0, 0x6C, 0xEA, 0x05, 0x6B, +0x6B, 0xEB, 0x6C, 0xEA, 0x02, 0x4B, 0x6C, 0xEA, +0xC3, 0xF3, 0x51, 0xC0, 0x00, 0x18, 0x2C, 0xCE, +0x64, 0x10, 0x08, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, +0x6C, 0xEA, 0x16, 0x22, 0xC3, 0xF3, 0x51, 0xA0, +0x02, 0x69, 0xC0, 0xF0, 0xCC, 0xA0, 0x2D, 0xEA, +0xC3, 0xF3, 0x51, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF3, 0x48, 0x9A, 0xFF, 0x6C, 0x55, 0x4C, +0x00, 0x6D, 0x40, 0xEA, 0xC3, 0xF3, 0x4C, 0xA0, +0x4D, 0xE9, 0xC3, 0xF3, 0x2C, 0xC0, 0x07, 0x10, +0xC3, 0xF3, 0x71, 0xA0, 0x03, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0xC3, 0xF3, 0x51, 0xC0, 0x30, 0xF0, +0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, 0x44, 0xF3, +0x90, 0xA0, 0x04, 0x6A, 0xFF, 0x6B, 0x8C, 0xEA, +0x2B, 0x22, 0x08, 0x6A, 0x8C, 0xEA, 0x6C, 0xEA, +0x08, 0x2A, 0x07, 0x6C, 0x00, 0x18, 0x37, 0xE1, +0xE0, 0xF0, 0x87, 0xA0, 0x00, 0x18, 0x18, 0xCE, +0x2C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF0, +0x84, 0x98, 0xE3, 0xF1, 0x58, 0x9A, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF1, 0x9C, 0x9C, +0x8E, 0xEA, 0x07, 0x2A, 0xC0, 0xF0, 0x85, 0xA0, +0xF0, 0x4A, 0x8C, 0xEA, 0x6C, 0xEA, 0x10, 0x72, +0x18, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0xC3, 0xF3, 0x91, 0xA2, 0x01, 0x6B, +0x8D, 0xEB, 0xC3, 0xF3, 0x71, 0xC2, 0x0D, 0x10, +0xC3, 0xF3, 0x71, 0xA0, 0x02, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x05, 0x6B, 0x6B, 0xEB, 0x6C, 0xEA, +0xC3, 0xF3, 0x51, 0xC0, 0x02, 0x10, 0x01, 0x6A, +0x01, 0x10, 0x00, 0x6A, 0x4F, 0x97, 0x4E, 0x91, +0x4D, 0x90, 0x28, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xE0, 0xF0, 0xB2, 0xA2, +0x02, 0x6C, 0xFF, 0x6B, 0xAC, 0xEC, 0x4F, 0x24, +0x05, 0xF3, 0x98, 0xA2, 0x08, 0x5C, 0x08, 0x61, +0x30, 0xF0, 0x20, 0x6D, 0xE3, 0xF2, 0xB0, 0x9D, +0xF8, 0x4C, 0xA0, 0xA5, 0xAC, 0xEB, 0x06, 0x10, +0x30, 0xF0, 0x20, 0x6D, 0xE3, 0xF2, 0xB4, 0x9D, +0xA0, 0xA5, 0xAC, 0xEB, 0x01, 0x6D, 0xA4, 0xEC, +0x6C, 0xED, 0x30, 0xF0, 0x20, 0x6B, 0x05, 0xF3, +0xBA, 0xC2, 0xC6, 0xF5, 0x10, 0x4B, 0xE0, 0xF0, +0xB4, 0xA3, 0x04, 0x6A, 0xFF, 0x6C, 0xAC, 0xEA, +0x04, 0x2A, 0x05, 0xF3, 0x5A, 0xA3, 0x10, 0x22, +0x03, 0x10, 0x05, 0xF3, 0x5A, 0xA3, 0x0C, 0x2A, +0x01, 0x6C, 0x00, 0x18, 0x47, 0xD1, 0x30, 0xF0, +0x20, 0x6A, 0xFF, 0x6C, 0x00, 0xF3, 0x48, 0x9A, +0x5D, 0x4C, 0x00, 0x6D, 0x01, 0x6E, 0x1A, 0x10, +0xE0, 0xF0, 0xB2, 0xA3, 0x08, 0x6A, 0xAC, 0xEA, +0x8C, 0xEA, 0x0B, 0x22, 0xE0, 0xF0, 0xD3, 0xA3, +0x30, 0xF0, 0x20, 0x6A, 0xFF, 0x6C, 0x00, 0xF3, +0x48, 0x9A, 0x5D, 0x4C, 0x00, 0x6D, 0xC0, 0x36, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x48, 0x9A, 0xE0, 0xF0, 0xD3, 0xA3, 0xFF, 0x6C, +0x5D, 0x4C, 0x00, 0x6D, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0xE0, 0xF0, 0xB2, 0xA2, 0x02, 0x6C, +0xFF, 0x6B, 0xAC, 0xEC, 0x51, 0x24, 0x05, 0xF3, +0x98, 0xA2, 0x08, 0x5C, 0x08, 0x61, 0x30, 0xF0, +0x20, 0x6D, 0xE3, 0xF2, 0xB0, 0x9D, 0xF8, 0x4C, +0xA0, 0xA5, 0xAC, 0xEB, 0x06, 0x10, 0x30, 0xF0, +0x20, 0x6D, 0xE3, 0xF2, 0xB4, 0x9D, 0xA0, 0xA5, +0xAC, 0xEB, 0x01, 0x6D, 0xA4, 0xEC, 0x6C, 0xED, +0x30, 0xF0, 0x20, 0x68, 0x05, 0xF3, 0xBA, 0xC2, +0xC6, 0xF5, 0x10, 0x48, 0xE0, 0xF0, 0x94, 0xA0, +0x04, 0x6A, 0xFF, 0x6B, 0x8C, 0xEA, 0x13, 0x2A, +0x05, 0xF3, 0x5A, 0xA0, 0x23, 0x2A, 0xE0, 0xF0, +0x92, 0xA0, 0x01, 0x6A, 0x8C, 0xEA, 0x6C, 0xEA, +0x03, 0x22, 0x00, 0x6C, 0x00, 0x18, 0x47, 0xD1, +0x30, 0xF0, 0x20, 0x6A, 0xEC, 0xF0, 0x88, 0xA2, +0x80, 0x18, 0x21, 0x3B, 0x24, 0x10, 0x05, 0xF3, +0x5A, 0xA0, 0x10, 0x22, 0xE0, 0xF0, 0x92, 0xA0, +0x01, 0x6A, 0x8C, 0xEA, 0x6C, 0xEA, 0x03, 0x22, +0x00, 0x6C, 0x00, 0x18, 0x47, 0xD1, 0x30, 0xF0, +0x20, 0x6A, 0xEC, 0xF0, 0x88, 0xA2, 0x80, 0x18, +0x1B, 0x3B, 0x11, 0x10, 0x05, 0xF3, 0x99, 0xA0, +0x01, 0x6D, 0x80, 0x18, 0x05, 0x3B, 0x05, 0xF3, +0x98, 0xA0, 0x80, 0x18, 0x10, 0x3B, 0x07, 0x10, +0x01, 0x6A, 0xAC, 0xEA, 0x6C, 0xEA, 0x03, 0x22, +0x00, 0x6C, 0x00, 0x18, 0x47, 0xD1, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xE0, 0xF0, +0xB2, 0xA2, 0x02, 0x6B, 0xFF, 0x6C, 0xAC, 0xEB, +0x32, 0x23, 0xE0, 0xF0, 0xAF, 0xA2, 0x7F, 0x6B, +0xAC, 0xEB, 0x05, 0xF3, 0x79, 0xC2, 0xE0, 0xF0, +0xB4, 0xA2, 0x07, 0x6B, 0x05, 0xF3, 0x78, 0xC2, +0x80, 0x6B, 0x6B, 0xEB, 0xAC, 0xEB, 0x8C, 0xEB, +0x09, 0x23, 0x00, 0xF1, 0xBF, 0xA2, 0x01, 0x6B, +0xAC, 0xEB, 0x8C, 0xEB, 0x03, 0x23, 0xA6, 0x33, +0x05, 0xF3, 0x78, 0xC2, 0x30, 0xF0, 0x20, 0x68, +0xC6, 0xF5, 0x10, 0x48, 0x05, 0xF3, 0x58, 0xA0, +0x01, 0x6C, 0x0C, 0x4A, 0x84, 0xEA, 0x80, 0x18, +0x95, 0x57, 0xE0, 0xF0, 0x74, 0xA0, 0x04, 0x6A, +0x6C, 0xEA, 0x05, 0x22, 0x05, 0xF3, 0x98, 0xA0, +0x80, 0x18, 0x21, 0x3B, 0x04, 0x10, 0x05, 0xF3, +0x98, 0xA0, 0x80, 0x18, 0x1B, 0x3B, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, +0x24, 0xF3, 0xA4, 0xA3, 0x24, 0x67, 0x08, 0x6C, +0xAD, 0xEC, 0x24, 0xF3, 0x84, 0xC3, 0x42, 0xF6, +0x70, 0xA3, 0xFF, 0x6A, 0x4C, 0xE9, 0x03, 0x73, +0x40, 0x61, 0x10, 0x6B, 0x8C, 0xEB, 0x4C, 0xEB, +0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, +0x58, 0x9A, 0x60, 0xDA, 0x00, 0x18, 0xBD, 0xD0, +0x34, 0x2A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF3, 0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6D, +0x01, 0x6E, 0x10, 0xF0, 0x23, 0x6C, 0x06, 0xF4, +0x34, 0xC5, 0x48, 0xF3, 0x0D, 0x4C, 0x06, 0xF4, +0x14, 0x4D, 0xE6, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x24, 0xF3, +0x84, 0xA2, 0x10, 0x6B, 0xA3, 0x67, 0x8C, 0xED, +0x0B, 0x2D, 0x30, 0xF0, 0x20, 0x6D, 0xE3, 0xF2, +0xDC, 0x9D, 0x30, 0xF0, 0x20, 0x6D, 0xE3, 0xF2, +0xB8, 0x9D, 0x8D, 0xEB, 0xC0, 0xDD, 0xA3, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x78, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF0, 0x8C, 0x9C, +0x40, 0x9B, 0x8D, 0xEA, 0x01, 0x4A, 0x40, 0xDB, +0x98, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, +0x10, 0x48, 0x42, 0xF6, 0x50, 0xA0, 0x02, 0x72, +0x1E, 0x61, 0x01, 0x71, 0x75, 0x61, 0x24, 0xF3, +0x64, 0xA0, 0xE0, 0xF0, 0x8F, 0xA0, 0x80, 0x6D, +0x01, 0x6A, 0xAB, 0xED, 0x6D, 0xEA, 0xAC, 0xEC, +0xFF, 0x6B, 0x6C, 0xEC, 0x24, 0xF3, 0x44, 0xC0, +0x0A, 0x24, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, +0x80, 0x9A, 0x40, 0xA4, 0x6C, 0xEA, 0xAE, 0xEA, +0x6C, 0xEA, 0x40, 0xC4, 0x5D, 0x10, 0x01, 0x6C, +0x80, 0x18, 0xCC, 0x3B, 0x59, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF1, 0x54, 0x9A, 0x01, 0x6B, +0x6B, 0xEB, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x64, 0x6C, 0x40, 0xEA, +0xE0, 0xF0, 0x74, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, +0x02, 0x2A, 0x00, 0x18, 0x5B, 0xDF, 0x30, 0xF0, +0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, 0xE0, 0xF0, +0x92, 0xA3, 0x5F, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, +0xFF, 0x6C, 0x8C, 0xEA, 0xA1, 0x72, 0x07, 0x61, +0xE0, 0xF0, 0x6F, 0xA3, 0x7F, 0x6A, 0x6C, 0xEA, +0x4C, 0xEC, 0x80, 0x18, 0x10, 0x3B, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF3, 0x60, 0x9A, 0xFF, 0x6C, +0x80, 0x6D, 0x40, 0xA3, 0xAB, 0xED, 0x8C, 0xEA, +0xAE, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x91, 0x67, +0x80, 0x18, 0xCC, 0x3B, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xE0, 0xF0, 0x92, 0xA2, +0x03, 0x6B, 0x8C, 0xEB, 0x02, 0x73, 0x04, 0x61, +0x05, 0xF3, 0x98, 0xA2, 0x80, 0x18, 0x10, 0x3B, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF6, 0x62, 0xA2, +0x5F, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, +0x6C, 0xEA, 0xA1, 0x72, 0x09, 0x61, 0x01, 0x6C, +0x00, 0x18, 0x47, 0xD1, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF1, 0x84, 0x9A, 0x80, 0x18, 0x9E, 0x57, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xA0, 0xF0, 0x96, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xE0, 0xF0, 0x95, 0xA2, 0xA0, 0xF0, +0x76, 0xC2, 0x41, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x24, 0xF3, 0x84, 0xA2, 0xE0, 0xF0, 0x75, 0xC2, +0x09, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x24, 0xF3, +0x64, 0xC2, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0x2D, 0x14, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0x2C, 0x14, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x69, 0x04, 0x67, +0x2C, 0xE8, 0x00, 0x18, 0xAB, 0xD2, 0x01, 0xE2, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x58, 0x9A, +0x1C, 0x30, 0x30, 0xF0, 0x20, 0x6E, 0x90, 0x67, +0x08, 0x6D, 0x2B, 0xF3, 0x14, 0x4E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x84, 0xF5, 0x98, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0x84, 0xF5, 0x78, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF3, 0x50, 0x9A, 0x49, 0xE0, +0x40, 0xA2, 0x2C, 0xEA, 0xDD, 0x72, 0x80, 0xF0, +0x08, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, +0x54, 0x9A, 0x49, 0xE0, 0x40, 0xA2, 0x4C, 0xE9, +0x01, 0x6A, 0x2C, 0xEA, 0x13, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF3, 0x8C, 0x9A, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x91, 0xE0, +0x6B, 0xF3, 0x0C, 0x4A, 0x6B, 0xF3, 0x14, 0x4B, +0xA0, 0xA4, 0x01, 0x4C, 0xA0, 0xC2, 0x01, 0x4A, +0x6A, 0xEA, 0xFA, 0x61, 0x02, 0x6A, 0x2C, 0xEA, +0x68, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, +0x58, 0x9A, 0x49, 0xE0, 0x60, 0xA2, 0x30, 0xF0, +0x20, 0x6A, 0x6B, 0xF3, 0x64, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF3, 0x44, 0x9A, 0x30, 0xF0, +0x20, 0x6B, 0x6B, 0xF3, 0x1C, 0x4B, 0x41, 0xE0, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF3, 0x14, 0x4A, +0x80, 0xA0, 0x80, 0xC2, 0x88, 0xA0, 0x88, 0xC2, +0x90, 0xA0, 0x90, 0xC2, 0x98, 0xA0, 0x01, 0x48, +0x98, 0xC2, 0x01, 0x4A, 0x6A, 0xEA, 0xF4, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x6B, 0xF3, 0x24, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, 0x4C, 0x9A, +0x2C, 0x31, 0x02, 0x49, 0x4D, 0xE9, 0x00, 0x68, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, 0x50, 0x9A, +0x2D, 0xE0, 0x60, 0xF6, 0x13, 0x6C, 0x60, 0xDA, +0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x48, 0x9A, 0x80, 0x6D, 0x00, 0x6E, +0x14, 0x6F, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x08, 0x34, 0x91, 0xE2, +0x64, 0xF5, 0x14, 0x4C, 0x60, 0xF6, 0x18, 0x6A, +0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, 0x02, 0xF0, +0x00, 0x73, 0x01, 0x60, 0x05, 0x2B, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF0, 0x78, 0x9B, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, 0x7C, 0x9B, +0x6D, 0xE2, 0xA0, 0xA3, 0x01, 0x4A, 0xFF, 0x6B, +0xAC, 0xEB, 0x60, 0xF6, 0x1C, 0x72, 0x60, 0xC4, +0x01, 0x4C, 0xE6, 0x61, 0x01, 0x48, 0x04, 0x70, +0xC7, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x6D, 0x2B, 0xF3, 0x1C, 0x4C, 0xAB, 0xF1, +0x0D, 0x4D, 0x08, 0x6E, 0x30, 0xF0, 0x20, 0x68, +0x40, 0xEA, 0xC6, 0xF5, 0x10, 0x48, 0x02, 0x6A, +0x84, 0xF5, 0x57, 0xC0, 0x00, 0xF1, 0x52, 0xA0, +0x10, 0x22, 0x00, 0x18, 0xAB, 0xD2, 0x00, 0xF1, +0x92, 0xA0, 0x30, 0xF0, 0x20, 0x6E, 0x90, 0x6D, +0x91, 0xE2, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, +0x7C, 0x9A, 0x9C, 0x34, 0x2B, 0xF3, 0x14, 0x4E, +0x40, 0xEB, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF7, 0x63, 0x11, 0x62, +0x10, 0xD1, 0x0F, 0xD0, 0xFF, 0x68, 0x0C, 0xEC, +0x0C, 0xED, 0x0B, 0xD4, 0x0D, 0xD5, 0x00, 0x18, +0xAB, 0xD2, 0x0B, 0x93, 0x0C, 0xD2, 0x65, 0xE2, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x48, 0x9A, +0x3C, 0x31, 0x0A, 0xD1, 0x49, 0xE1, 0x20, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x0A, 0x94, 0x23, 0xF2, +0x4C, 0x9A, 0x0C, 0xE9, 0x30, 0xF0, 0x20, 0x6B, +0x49, 0xE4, 0x40, 0xA2, 0x83, 0xF1, 0x70, 0x9B, +0x4C, 0xE8, 0x00, 0x30, 0xE7, 0xF7, 0x1F, 0x6A, +0x05, 0xE1, 0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF3, 0x48, 0x9A, 0x6D, 0xE4, 0x2D, 0xE3, +0x49, 0xE4, 0x29, 0xE2, 0x00, 0x6C, 0x80, 0xC2, +0x01, 0x4A, 0x6A, 0xEA, 0xFB, 0x61, 0x01, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF3, +0x48, 0x9A, 0x0D, 0x97, 0xC8, 0x41, 0xFF, 0xF7, +0x1F, 0x68, 0x0A, 0x6D, 0x10, 0x6C, 0x0C, 0xEE, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF6, +0xB7, 0xA2, 0x0B, 0x92, 0x43, 0xED, 0x13, 0x60, +0xB3, 0xE2, 0x0C, 0x92, 0x0D, 0x93, 0x9C, 0x34, +0xB5, 0xE2, 0xBC, 0x35, 0xAF, 0x35, 0x0C, 0xED, +0x30, 0x4C, 0x7B, 0xE1, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0xD5, 0xF8, 0x4E, 0x60, 0xF3, 0x44, 0x9A, +0x0C, 0xEC, 0x38, 0x6D, 0x17, 0x10, 0x0D, 0x94, +0x0B, 0x93, 0x9B, 0xE1, 0x0C, 0x94, 0x77, 0xE5, +0xBC, 0x35, 0x69, 0xE4, 0x5C, 0x32, 0x08, 0x6B, +0x7A, 0xEA, 0x01, 0x2B, 0xE5, 0xE8, 0x38, 0x4D, +0xF8, 0x4E, 0x30, 0x6C, 0x0C, 0xED, 0x12, 0xEA, +0x0C, 0xEA, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xF3, 0x44, 0x9A, 0xFF, 0x6B, 0x6C, 0xEE, +0x08, 0x6F, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6D, +0x08, 0x04, 0x6B, 0xF1, 0x00, 0x4D, 0x08, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF3, +0x58, 0x9A, 0x06, 0x00, 0x08, 0x04, 0x00, 0x6D, +0xD0, 0x67, 0x08, 0x6F, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF3, 0x48, 0x9A, 0x0A, 0x93, +0x49, 0xE3, 0x25, 0xE2, 0x08, 0x02, 0x60, 0xA0, +0x01, 0x48, 0x4A, 0xE8, 0x60, 0xC1, 0x01, 0x49, +0xFA, 0x61, 0x11, 0x97, 0x10, 0x91, 0x0F, 0x90, +0x09, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xE6, 0xF6, 0x03, 0xA2, 0x0E, 0xD4, 0x0F, 0xD5, +0x00, 0x18, 0xAB, 0xD2, 0x01, 0xE2, 0x00, 0x6A, +0x1C, 0x30, 0x04, 0xD2, 0x93, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF2, 0x6C, 0x9B, 0x30, 0xF0, +0x20, 0x6C, 0x83, 0xF1, 0x88, 0x9C, 0x6D, 0xE0, +0x60, 0xA3, 0x91, 0xE0, 0x80, 0xA4, 0x4C, 0xEB, +0x60, 0x33, 0x8C, 0xEA, 0x6D, 0xE2, 0x0E, 0x91, +0xFF, 0xF7, 0x1F, 0x6A, 0x02, 0x48, 0x4C, 0xEB, +0x05, 0xD3, 0x6D, 0xE0, 0x07, 0xD0, 0x04, 0x49, +0x08, 0xD3, 0x00, 0x68, 0x66, 0x10, 0x12, 0x70, +0x05, 0x61, 0x0E, 0x91, 0x0F, 0x94, 0x06, 0x49, +0x85, 0xE1, 0x06, 0x10, 0x14, 0x70, 0x04, 0x61, +0x0E, 0x91, 0x0F, 0x95, 0x08, 0x49, 0xA5, 0xE1, +0x04, 0x32, 0x30, 0xF0, 0x20, 0x6D, 0x4E, 0x33, +0x83, 0xF1, 0x08, 0x4D, 0x09, 0xD3, 0xA0, 0x9D, +0x08, 0x93, 0x07, 0x6C, 0x4C, 0xEC, 0xA9, 0xE3, +0x09, 0x93, 0x06, 0xD4, 0x06, 0x95, 0x69, 0xE2, +0x60, 0xA2, 0xFF, 0x6C, 0x01, 0x6A, 0x44, 0xED, +0x8C, 0xEB, 0x4C, 0xEB, 0x6E, 0xEA, 0x15, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, +0x91, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x83, 0xF1, 0x08, 0x4C, 0x07, 0x95, 0x80, 0x9C, +0x8D, 0xE5, 0x0D, 0xE3, 0x60, 0xA3, 0xFF, 0x6D, +0xAC, 0xEB, 0x4E, 0xEB, 0x0F, 0x6A, 0x4C, 0xEB, +0x31, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, +0x08, 0x4B, 0x08, 0x94, 0x60, 0x9B, 0xFF, 0x6D, +0x69, 0xE4, 0x09, 0x94, 0x89, 0xE2, 0x06, 0x94, +0x60, 0xA2, 0x01, 0x6A, 0x01, 0x4C, 0x44, 0xEC, +0xAC, 0xEB, 0x4C, 0xEB, 0x6E, 0xEA, 0x15, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, +0x91, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x83, 0xF1, 0x08, 0x4C, 0x07, 0x95, 0x80, 0x9C, +0x8D, 0xE5, 0x0D, 0xE3, 0x60, 0xA3, 0xFF, 0x6D, +0xAC, 0xEB, 0x4E, 0xEB, 0xF0, 0x6A, 0x4C, 0xEB, +0x09, 0x2B, 0x01, 0x48, 0xFF, 0x6A, 0x01, 0x49, +0x4C, 0xE8, 0x05, 0x92, 0x43, 0xE8, 0x97, 0x61, +0x01, 0x6A, 0x18, 0x10, 0x05, 0x93, 0x08, 0x92, +0x04, 0x94, 0x64, 0x30, 0xFF, 0x48, 0x01, 0x4A, +0x0F, 0x30, 0x01, 0xE2, 0x01, 0x4C, 0xFF, 0x6A, +0x4C, 0xEC, 0x04, 0xD4, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF6, 0x88, 0xA2, 0x04, 0x95, 0x0F, 0x6B, +0x8C, 0xEB, 0x62, 0xED, 0xFF, 0x6A, 0x7F, 0xF7, +0x02, 0x61, 0x00, 0x6A, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x68, +0x8C, 0xE8, 0x00, 0x18, 0xAB, 0xD2, 0x30, 0xF0, +0x20, 0x6B, 0xA0, 0xF3, 0x78, 0x9B, 0x09, 0xE2, +0x30, 0xF0, 0x20, 0x6E, 0x5C, 0x34, 0x70, 0x6D, +0x8B, 0xF2, 0x1C, 0x4E, 0x40, 0xEB, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, +0x06, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF6, +0x99, 0xA2, 0x80, 0x18, 0xC8, 0x0A, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0x04, 0x67, +0x2C, 0xE8, 0x00, 0x18, 0xAB, 0xD2, 0x01, 0xE2, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x50, 0x9A, +0x1C, 0x30, 0x49, 0xE0, 0x80, 0xA2, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF2, 0x4C, 0x9A, 0x2C, 0xEC, +0x49, 0xE0, 0xA0, 0xA2, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF2, 0x58, 0x9A, 0x2C, 0xED, 0x49, 0xE0, +0xC0, 0xA2, 0x2C, 0xEE, 0x80, 0x18, 0xC3, 0x06, +0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF2, 0x88, 0x9C, 0x43, 0xF2, 0xA4, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x8B, 0xF2, 0x08, 0x4B, +0x91, 0xE2, 0xB5, 0xE0, 0x11, 0xE4, 0xC6, 0x43, +0xE0, 0xA5, 0x01, 0x4D, 0xE0, 0xC3, 0xE0, 0xA4, +0x01, 0x4C, 0xEA, 0xC3, 0x01, 0x4B, 0xCA, 0xEB, +0xF7, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, +0x7C, 0x9B, 0x69, 0xE2, 0x30, 0xF0, 0x20, 0x6B, +0x8B, 0xF2, 0x0E, 0x4B, 0x01, 0xE2, 0x44, 0x43, +0x80, 0xA0, 0x80, 0xC3, 0x87, 0x40, 0x03, 0x4C, +0x80, 0xA4, 0x01, 0x48, 0x8A, 0xC3, 0x01, 0x4B, +0x4A, 0xEB, 0xF6, 0x61, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, +0x06, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF6, +0x94, 0xA2, 0x80, 0x18, 0xDB, 0x0A, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x48, 0x9A, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF0, +0x98, 0x9C, 0x10, 0xF0, 0x30, 0x6B, 0x25, 0xF4, +0x15, 0x4B, 0x01, 0x72, 0x60, 0xDC, 0x19, 0x60, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, +0x24, 0xF3, 0xA4, 0xA3, 0x01, 0x6C, 0x02, 0x72, +0xAD, 0xEC, 0x24, 0xF3, 0x84, 0xC3, 0x40, 0x6B, +0x03, 0x60, 0x04, 0x72, 0x06, 0x61, 0x41, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, 0x54, 0x9A, +0x60, 0xC2, 0x01, 0x6C, 0x80, 0x18, 0x28, 0x09, +0x11, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, +0x44, 0x9A, 0x40, 0xEA, 0x00, 0x18, 0xB0, 0xD2, +0xF8, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, +0x78, 0x9B, 0x10, 0xF0, 0x30, 0x6A, 0x25, 0xF4, +0x16, 0x4A, 0x40, 0xDB, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, 0x3F, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF6, 0x93, 0xA2, +0x02, 0x24, 0x80, 0x18, 0xA9, 0x09, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF1, 0x54, 0x9A, 0x00, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0x60, 0xC2, 0x80, 0x18, +0x21, 0x3E, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, +0x7C, 0x9A, 0xFE, 0x6A, 0x35, 0x6E, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0xA0, 0xF2, 0x50, 0x98, +0xFF, 0x6C, 0xA4, 0x67, 0x40, 0xEA, 0x00, 0x18, +0x90, 0xE1, 0x01, 0x6C, 0x80, 0x18, 0x66, 0x3E, +0x80, 0x18, 0x0D, 0x0B, 0x80, 0x18, 0xA5, 0x09, +0x00, 0x18, 0x7A, 0xE1, 0xA0, 0xF2, 0x50, 0x98, +0x00, 0x6D, 0xC5, 0x67, 0xFF, 0x6C, 0x40, 0xEA, +0x80, 0x18, 0x45, 0x07, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF1, 0xB8, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF2, 0x50, 0x9A, 0x01, 0x6C, 0xA0, 0xDA, +0x80, 0x18, 0xA8, 0x57, 0x17, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF1, 0xB8, 0x9A, 0x01, 0x6C, +0x80, 0x18, 0xD9, 0x57, 0x00, 0x6C, 0x80, 0x18, +0x66, 0x3E, 0x80, 0x18, 0xA1, 0x09, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xEB, 0xF0, 0x14, 0x4C, 0x00, 0x6D, +0x34, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xC6, 0xF5, 0x10, 0x48, 0x44, 0xF3, 0x66, 0xA8, +0x02, 0x6A, 0xE0, 0xF0, 0xB5, 0xA0, 0x6D, 0xEA, +0x44, 0xF3, 0x46, 0xC8, 0x40, 0xA4, 0x02, 0x6B, +0x01, 0x69, 0x6B, 0xEB, 0x2C, 0xEA, 0x6C, 0xED, +0x4D, 0xED, 0xE0, 0xF0, 0xB5, 0xC0, 0x40, 0xA4, +0x03, 0x6E, 0xCB, 0xEE, 0x46, 0x32, 0x2C, 0xEA, +0x44, 0x32, 0xCC, 0xED, 0x4D, 0xED, 0xE0, 0xF0, +0xB5, 0xC0, 0x40, 0xA4, 0x09, 0x6F, 0xEB, 0xEF, +0x4A, 0x32, 0x2C, 0xEA, 0x48, 0x36, 0x05, 0x6A, +0x4B, 0xEA, 0x4C, 0xED, 0xCD, 0xED, 0xE0, 0xF0, +0xB5, 0xC0, 0xC0, 0xA4, 0xEC, 0xED, 0xF8, 0x4F, +0xCE, 0x36, 0x2C, 0xEE, 0xCC, 0x36, 0xCD, 0xED, +0xE0, 0xF0, 0xB5, 0xC0, 0xC0, 0xA4, 0xEC, 0xED, +0x1F, 0x65, 0xD2, 0x36, 0x2C, 0xEE, 0xD0, 0x36, +0xCD, 0xED, 0xE0, 0xF0, 0xB5, 0xC0, 0xC0, 0xA4, +0xF0, 0x4F, 0xEC, 0xED, 0xD6, 0x36, 0x2C, 0xEE, +0xD4, 0x36, 0xCD, 0xED, 0xE0, 0xF0, 0xB5, 0xC0, +0xC0, 0xA4, 0xDA, 0x36, 0x2C, 0xEE, 0xD8, 0x37, +0x41, 0x6E, 0xCB, 0xEE, 0xCC, 0xED, 0xED, 0xED, +0xE0, 0xF0, 0xB5, 0xC0, 0xC0, 0xA4, 0xDE, 0x36, +0xDC, 0x37, 0x7F, 0x6E, 0xCC, 0xED, 0xED, 0xED, +0xE0, 0xF0, 0xB5, 0xC0, 0xA2, 0xA4, 0xE0, 0xF0, +0xD7, 0xA0, 0x2C, 0xED, 0x6C, 0xEE, 0xAD, 0xEE, +0xE0, 0xF0, 0xD7, 0xC0, 0xE1, 0xA4, 0xA7, 0x67, +0x2C, 0xED, 0xFD, 0x65, 0xE0, 0xF0, 0xB6, 0xA0, +0xFF, 0x67, 0x6C, 0xED, 0xED, 0xED, 0xE0, 0xF0, +0xB6, 0xC0, 0xE1, 0xA4, 0x4C, 0xED, 0xEA, 0x37, +0x2C, 0xEF, 0xE8, 0x37, 0xED, 0xED, 0xE0, 0xF0, +0xB6, 0xC0, 0xE1, 0xA4, 0xF2, 0x37, 0x2C, 0xEF, +0xF0, 0x37, 0xFF, 0x65, 0xF8, 0x67, 0xEC, 0xED, +0xFF, 0x67, 0xED, 0xED, 0xE0, 0xF0, 0xB6, 0xC0, +0xE1, 0xA4, 0xEE, 0x37, 0x2C, 0xEF, 0xEC, 0x37, +0xFF, 0x65, 0x09, 0x6F, 0xEB, 0xEF, 0xEC, 0xED, +0xFF, 0x67, 0xED, 0xED, 0xE0, 0xF0, 0xB6, 0xC0, +0xE1, 0xA4, 0xF6, 0x37, 0x2C, 0xEF, 0xF4, 0x37, +0xFF, 0x65, 0x21, 0x6F, 0xEB, 0xEF, 0xEC, 0xED, +0xFF, 0x67, 0xED, 0xED, 0xE0, 0xF0, 0xB6, 0xC0, +0xE2, 0xA4, 0xF2, 0x37, 0x2C, 0xEF, 0xF0, 0x37, +0xFF, 0x65, 0xF8, 0x67, 0xEC, 0xEE, 0xFF, 0x67, +0xED, 0xEE, 0xE0, 0xF0, 0xD7, 0xC0, 0xE2, 0xA4, +0xF6, 0x37, 0x2C, 0xEF, 0xF4, 0x37, 0xFF, 0x65, +0x21, 0x6F, 0xEB, 0xEF, 0xCC, 0xEF, 0xDF, 0x67, +0xCD, 0xEF, 0xE0, 0xF0, 0xF7, 0xC0, 0xC1, 0xA4, +0x4C, 0xEF, 0xC6, 0x36, 0x2C, 0xEE, 0xC4, 0x36, +0x1E, 0x65, 0x03, 0x6E, 0xCB, 0xEE, 0xCC, 0xED, +0xD8, 0x67, 0xCD, 0xED, 0xE0, 0xF0, 0xB6, 0xC0, +0xC2, 0xA4, 0xCA, 0x36, 0x2C, 0xEE, 0xC8, 0x36, +0xCD, 0xEF, 0xE0, 0xF0, 0xF7, 0xC0, 0xC1, 0xA4, +0xDA, 0x36, 0x2C, 0xEE, 0xD8, 0x36, 0x1E, 0x65, +0x41, 0x6E, 0xCB, 0xEE, 0xCC, 0xED, 0xD8, 0x67, +0xCD, 0xED, 0xE0, 0xF0, 0xB6, 0xC0, 0xA3, 0xA4, +0x0F, 0x6E, 0xAC, 0xEE, 0xE0, 0xF0, 0xB8, 0xA0, +0xFE, 0x65, 0x1D, 0x65, 0x10, 0x6D, 0xD8, 0x67, +0xAB, 0xED, 0xCC, 0xED, 0xDF, 0x67, 0xCD, 0xED, +0xE0, 0xF0, 0xB8, 0xC0, 0xA4, 0xA4, 0xE0, 0xF0, +0xD9, 0xA0, 0x2C, 0xED, 0xCC, 0xEB, 0xAD, 0xEB, +0xE0, 0xF0, 0x79, 0xC0, 0xA4, 0xA4, 0x03, 0x6E, +0xCB, 0xEE, 0xA6, 0x35, 0x2C, 0xED, 0xA4, 0x35, +0xCC, 0xEB, 0xAD, 0xEB, 0xE0, 0xF0, 0x79, 0xC0, +0xA4, 0xA4, 0x4C, 0xEB, 0x7F, 0x6E, 0xAA, 0x35, +0x2C, 0xED, 0xA8, 0x35, 0xAD, 0xEB, 0xE0, 0xF0, +0x79, 0xC0, 0x42, 0xA4, 0x41, 0x6D, 0xAB, 0xED, +0x5A, 0x32, 0x2C, 0xEA, 0xAC, 0xEF, 0x58, 0x32, +0x4D, 0xEF, 0xE0, 0xF0, 0xF7, 0xC0, 0x42, 0xA4, +0xCC, 0xEF, 0x5E, 0x32, 0x5C, 0x32, 0x4D, 0xEF, +0xE0, 0xF0, 0xF7, 0xC0, 0x44, 0xA4, 0x09, 0x6F, +0xEB, 0xEF, 0x4E, 0x32, 0x2C, 0xEA, 0x4C, 0x32, +0xEC, 0xEB, 0x4D, 0xEB, 0xE0, 0xF0, 0x79, 0xC0, +0x80, 0x18, 0x21, 0x3E, 0xE0, 0xF0, 0x95, 0xA0, +0x86, 0x34, 0x2C, 0xEC, 0x80, 0x18, 0x06, 0x0B, +0xE0, 0xF0, 0x95, 0xA0, 0x8A, 0x34, 0x2C, 0xEC, +0x80, 0x18, 0xD4, 0x0A, 0xE0, 0xF0, 0x96, 0xA0, +0x08, 0x6A, 0xFF, 0x6B, 0x8C, 0xEA, 0x09, 0x22, +0xE0, 0xF0, 0xB5, 0xA0, 0x0E, 0x6A, 0x00, 0x6C, +0xAC, 0xEA, 0x6C, 0xEA, 0x07, 0x22, 0x91, 0x67, +0x05, 0x10, 0xE0, 0xF0, 0x95, 0xA0, 0x8E, 0x34, +0x2C, 0xEC, 0x6C, 0xEC, 0x30, 0xF0, 0x20, 0x68, +0xC6, 0xF5, 0x10, 0x48, 0x80, 0x18, 0x11, 0x01, +0xE0, 0xF0, 0x95, 0xA0, 0x01, 0x69, 0x92, 0x34, +0x2C, 0xEC, 0x80, 0x18, 0x04, 0x14, 0xE0, 0xF0, +0x95, 0xA0, 0x9A, 0x34, 0x2C, 0xEC, 0x80, 0x18, +0x27, 0x15, 0x80, 0x18, 0x3A, 0x5A, 0xE0, 0xF0, +0x77, 0xA0, 0x44, 0xF3, 0x90, 0xA0, 0x02, 0x6A, +0x6A, 0x33, 0x4B, 0xEA, 0x2C, 0xEB, 0x8C, 0xEA, +0xE0, 0xF0, 0x95, 0xA0, 0x6D, 0xEA, 0x03, 0x6B, +0x6B, 0xEB, 0x6C, 0xEA, 0x2C, 0xEC, 0x44, 0xF3, +0x50, 0xC0, 0x80, 0x18, 0x2D, 0x0B, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF1, 0x78, 0x9A, 0xF0, 0x6A, +0x30, 0xF0, 0x20, 0x68, 0x80, 0xA3, 0xC6, 0xF5, +0x10, 0x48, 0x8C, 0xEA, 0x40, 0xC3, 0x00, 0xF1, +0x92, 0xA0, 0x80, 0x18, 0x05, 0x0A, 0x24, 0xF3, +0x64, 0xA0, 0x04, 0x6A, 0x6C, 0xEA, 0x13, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x40, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF3, 0x84, 0x9C, +0x60, 0x9A, 0x8C, 0xEB, 0x60, 0xDA, 0x24, 0xF3, +0x64, 0xA0, 0x80, 0x9A, 0x66, 0x33, 0xC0, 0xF7, +0x60, 0x33, 0x8D, 0xEB, 0x60, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF2, 0x50, 0x9A, 0x10, 0xF0, +0x00, 0x6B, 0x60, 0xDA, 0x00, 0x18, 0x70, 0xDF, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xC0, 0xA4, 0x01, 0x6A, 0x64, 0x67, 0x4C, 0xEE, +0xFF, 0x6C, 0x43, 0x2E, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x10, 0x4B, 0xE0, 0xF0, 0xEE, 0xA3, +0x02, 0x6D, 0xAB, 0xED, 0xEC, 0xED, 0xE0, 0xF0, +0xF2, 0xA3, 0xCD, 0xED, 0x20, 0x6E, 0xCC, 0xEF, +0x8C, 0xEF, 0xE0, 0xF0, 0xAE, 0xC3, 0x0B, 0x2F, +0xE0, 0xF0, 0xAF, 0xA3, 0x7F, 0x6E, 0xAC, 0xEE, +0xE0, 0xF0, 0xAE, 0xA3, 0xCC, 0xEC, 0xB6, 0x35, +0x4E, 0xED, 0x4C, 0xED, 0x0F, 0x10, 0xE0, 0xF0, +0xF4, 0xA3, 0x02, 0x6A, 0xEC, 0xEA, 0x8C, 0xEA, +0x0C, 0x22, 0xCC, 0xED, 0x8C, 0xED, 0x13, 0x2D, +0xE0, 0xF0, 0x6F, 0xA3, 0x7F, 0x6A, 0x01, 0x6D, +0x6C, 0xEA, 0x4C, 0xEC, 0x80, 0x18, 0x05, 0x3B, +0x11, 0x10, 0xCC, 0xED, 0x8C, 0xED, 0x07, 0x25, +0xE0, 0xF0, 0x6F, 0xA3, 0x7F, 0x6A, 0x00, 0x6D, +0x6C, 0xEA, 0x4C, 0xEC, 0xF3, 0x17, 0xE0, 0xF0, +0x6F, 0xA3, 0x7F, 0x6A, 0x6C, 0xEA, 0x4C, 0xEC, +0x80, 0x18, 0x10, 0x3B, 0x80, 0x18, 0x10, 0x0C, +0x1E, 0x12, 0x30, 0xF0, 0x20, 0x6D, 0xC6, 0xF5, +0x10, 0x4D, 0x05, 0x6E, 0x84, 0xF5, 0xD4, 0xC5, +0xE0, 0xA3, 0xE0, 0xF0, 0x0E, 0xA5, 0x02, 0x6E, +0xCB, 0xEE, 0x4C, 0xEF, 0x0C, 0xEE, 0xED, 0xEE, +0xE0, 0xF0, 0xCE, 0xC5, 0xE0, 0xA3, 0x11, 0x69, +0x2B, 0xE9, 0xE6, 0x37, 0x4C, 0xEF, 0xE4, 0x30, +0x03, 0x6F, 0xEB, 0xEF, 0x1F, 0x65, 0xCC, 0xEF, +0x0D, 0xEF, 0xE0, 0xF0, 0xEE, 0xC5, 0xC0, 0xA3, +0xCA, 0x36, 0x4C, 0xEE, 0xC8, 0x30, 0x05, 0x6E, +0xCB, 0xEE, 0xEC, 0xEE, 0x0D, 0xEE, 0xE0, 0xF0, +0xCE, 0xC5, 0xE0, 0xA3, 0x09, 0x68, 0x0B, 0xE8, +0xEE, 0x37, 0x4C, 0xEF, 0xEC, 0x37, 0x0C, 0xEE, +0xED, 0xEE, 0xE0, 0xF0, 0xCE, 0xC5, 0xE0, 0xA3, +0x2C, 0xEE, 0xF2, 0x37, 0x4C, 0xEF, 0xF0, 0x37, +0xED, 0xEE, 0xE0, 0xF0, 0xCE, 0xC5, 0xE0, 0xA3, +0xF6, 0x37, 0x4C, 0xEF, 0xF4, 0x37, 0xFF, 0x65, +0x21, 0x6F, 0xEB, 0xEF, 0xCC, 0xEF, 0xDF, 0x67, +0xCD, 0xEF, 0xE0, 0xF0, 0xEE, 0xC5, 0xC0, 0xA3, +0xDA, 0x36, 0x4C, 0xEE, 0xD8, 0x36, 0xFE, 0x65, +0x41, 0x6E, 0xCB, 0xEE, 0xEC, 0xEE, 0xFF, 0x67, +0xED, 0xEE, 0xE0, 0xF0, 0xCE, 0xC5, 0xE0, 0xA3, +0xFE, 0x37, 0xFC, 0x37, 0xFF, 0x65, 0x7F, 0x6F, +0x1F, 0x67, 0xEC, 0xEE, 0x0D, 0xEE, 0xE0, 0xF0, +0xCE, 0xC5, 0x21, 0xA3, 0x3E, 0x31, 0x3C, 0x31, +0x04, 0xD1, 0xE0, 0xF0, 0x0F, 0xA5, 0xF8, 0x65, +0x04, 0x90, 0x3F, 0x67, 0xEC, 0xE9, 0x0D, 0xE9, +0xE0, 0xF0, 0x2F, 0xC5, 0x24, 0xA3, 0xE0, 0xF0, +0x12, 0xA5, 0x26, 0x31, 0x4C, 0xE9, 0x24, 0x31, +0xF9, 0x65, 0x38, 0x67, 0x2C, 0xE8, 0x3F, 0x67, +0x2D, 0xE8, 0xE0, 0xF0, 0x12, 0xC5, 0x18, 0x65, +0x04, 0xA3, 0x09, 0x69, 0x2B, 0xE9, 0x0E, 0x30, +0x4C, 0xE8, 0x0C, 0x30, 0xF8, 0x65, 0x18, 0x67, +0x0C, 0xE9, 0x1F, 0x67, 0x0D, 0xE9, 0xE0, 0xF0, +0x32, 0xC5, 0x05, 0xA3, 0xE0, 0xF0, 0x13, 0xC5, +0x04, 0xA3, 0x12, 0x30, 0x4C, 0xE8, 0x10, 0x30, +0x18, 0x65, 0x11, 0x68, 0x0B, 0xE8, 0x0C, 0xE9, +0x18, 0x67, 0x0D, 0xE9, 0xE0, 0xF0, 0x32, 0xC5, +0xE0, 0xF0, 0x34, 0xA5, 0x06, 0xA3, 0x19, 0x65, +0x1E, 0x30, 0x38, 0x67, 0x1C, 0x30, 0x2C, 0xEF, +0x0D, 0xEF, 0xE0, 0xF0, 0xF4, 0xC5, 0x04, 0x6F, +0xEC, 0xEE, 0x8C, 0xEE, 0x20, 0x26, 0x30, 0xF0, +0x20, 0x6E, 0x63, 0xF1, 0xD8, 0x9E, 0x00, 0xA6, +0x18, 0x65, 0x38, 0x67, 0x2F, 0x68, 0x2C, 0xE8, +0x00, 0xC6, 0xE0, 0xF0, 0xA7, 0xA5, 0x00, 0xA6, +0xAC, 0xEA, 0x8C, 0xE8, 0x50, 0x32, 0x0D, 0xEA, +0x8C, 0xEA, 0x40, 0xC6, 0x00, 0xA6, 0x06, 0x6A, +0xAC, 0xEA, 0x8C, 0xE8, 0x54, 0x32, 0x0D, 0xEA, +0x8C, 0xEA, 0x40, 0xC6, 0x40, 0xA6, 0x8C, 0xEA, +0xED, 0xEA, 0x8C, 0xEA, 0x40, 0xC6, 0x30, 0xF0, +0x20, 0x6A, 0xA6, 0xF6, 0x5E, 0xA2, 0x08, 0x6E, +0xFF, 0x6D, 0xCC, 0xEA, 0x09, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF1, 0x98, 0x9A, 0x40, 0xA4, +0xAC, 0xEA, 0xCD, 0xEA, 0xAC, 0xEA, 0x40, 0xC4, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xE0, 0xF0, 0x8E, 0xA2, 0x02, 0x6F, 0xFF, 0x6E, +0xEC, 0xEC, 0x24, 0x24, 0x30, 0xF0, 0x20, 0x6C, +0x63, 0xF1, 0xB8, 0x9C, 0x80, 0xA5, 0xCC, 0xEC, +0xED, 0xEC, 0xCC, 0xEC, 0x80, 0xC5, 0x30, 0xF0, +0x20, 0x6C, 0x23, 0xF3, 0xA0, 0x9C, 0x24, 0xF3, +0xE4, 0xA2, 0x03, 0x6C, 0xC0, 0x9D, 0x8B, 0xEC, +0xEC, 0xEC, 0xC0, 0xF7, 0xC2, 0x36, 0xC4, 0x36, +0xCD, 0xEC, 0x24, 0xF3, 0x84, 0xC2, 0x30, 0xF0, +0x20, 0x6F, 0xC0, 0x9D, 0x83, 0xF0, 0xEC, 0x9F, +0xED, 0xEE, 0xC0, 0xDD, 0x04, 0x6D, 0x8D, 0xED, +0x24, 0xF3, 0xA4, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xE0, 0xF0, 0x93, 0xA2, +0x03, 0x2C, 0x01, 0x6C, 0xE0, 0xF0, 0x93, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF6, 0x82, 0xA2, +0x10, 0x6A, 0x8C, 0xEA, 0x08, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF3, 0x88, 0x9A, 0x7F, 0x6A, +0xA0, 0xA4, 0xAC, 0xEA, 0x40, 0xC4, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x42, 0xF6, +0x90, 0xA2, 0x02, 0x74, 0x09, 0x61, 0xE0, 0xF0, +0x8F, 0xA2, 0x80, 0x6A, 0x4B, 0xEA, 0x8C, 0xEA, +0xFF, 0x6C, 0x8C, 0xEA, 0xE0, 0xF0, 0x01, 0x2A, +0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, +0xA1, 0xA3, 0xE0, 0xF0, 0x8F, 0xA0, 0x80, 0x6A, +0x7F, 0x69, 0x4B, 0xEA, 0x2C, 0xED, 0x4C, 0xEC, +0xAD, 0xEC, 0xE0, 0xF0, 0x8F, 0xC0, 0xA2, 0xA3, +0xE0, 0xF0, 0xD0, 0xA0, 0x2C, 0xED, 0x4C, 0xEE, +0xAD, 0xEE, 0xE0, 0xF0, 0xD0, 0xC0, 0xA3, 0xA3, +0x01, 0x6A, 0x2C, 0xEE, 0xE5, 0x67, 0x4C, 0xEF, +0x1F, 0x65, 0xE0, 0xF0, 0xF1, 0xA0, 0x02, 0x6D, +0xAB, 0xED, 0xAC, 0xEF, 0xB8, 0x67, 0xAD, 0xEF, +0xE0, 0xF0, 0xF1, 0xC0, 0xA3, 0xA3, 0x4C, 0xEF, +0xA6, 0x35, 0xA4, 0x35, 0xAD, 0xEF, 0xE0, 0xF0, +0xF1, 0xC0, 0xE4, 0xA3, 0x05, 0x6D, 0xAB, 0xED, +0xEA, 0x37, 0x4C, 0xEF, 0xE8, 0x37, 0xFF, 0x65, +0xE0, 0xF0, 0xF2, 0xA0, 0x1D, 0x65, 0xAC, 0xEF, +0xBF, 0x67, 0xAD, 0xEF, 0xE0, 0xF0, 0xF2, 0xC0, +0xA2, 0xA3, 0xBE, 0x35, 0xBC, 0x35, 0xAD, 0xEE, +0xE0, 0xF0, 0xD0, 0xC0, 0xC4, 0xA3, 0x02, 0x6D, +0xAB, 0xED, 0xD6, 0x36, 0x4C, 0xEE, 0xD4, 0x36, +0xFE, 0x65, 0x21, 0x6E, 0xCB, 0xEE, 0xEC, 0xEE, +0xFF, 0x67, 0xED, 0xEE, 0xE0, 0xF0, 0xD2, 0xC0, +0xE4, 0xA3, 0x2C, 0xEE, 0xFE, 0x37, 0xFC, 0x37, +0xED, 0xEE, 0xE0, 0xF0, 0xD2, 0xC0, 0xE4, 0xA3, +0xAC, 0xEE, 0x4C, 0xEF, 0xED, 0xEE, 0xE0, 0xF0, +0xD2, 0xC0, 0xE6, 0xA3, 0xA7, 0x67, 0x4C, 0xED, +0xE0, 0xF0, 0xF4, 0xA0, 0xFD, 0x65, 0x02, 0x6D, +0xAB, 0xED, 0xAC, 0xEF, 0xBF, 0x67, 0xAD, 0xEF, +0xE0, 0xF0, 0xF4, 0xC0, 0xA6, 0xA3, 0xA6, 0x35, +0x4C, 0xED, 0xA4, 0x35, 0xFD, 0x65, 0x03, 0x6D, +0xAB, 0xED, 0xEC, 0xED, 0xFF, 0x67, 0xED, 0xED, +0xE0, 0xF0, 0xB4, 0xC0, 0x66, 0xA3, 0xF8, 0x67, +0xEC, 0xED, 0x6A, 0x33, 0x4C, 0xEB, 0x68, 0x33, +0x6D, 0xED, 0x20, 0x6B, 0x6C, 0xEE, 0xE0, 0xF0, +0xB4, 0xC0, 0x09, 0x2E, 0xE0, 0xF0, 0xAE, 0xA0, +0x2C, 0xEC, 0xFF, 0x68, 0xB6, 0x35, 0x4E, 0xED, +0x0C, 0xEC, 0x4C, 0xED, 0x13, 0x10, 0x02, 0x6A, +0xAC, 0xEA, 0xFF, 0x6D, 0xAC, 0xEA, 0x11, 0x22, +0xE0, 0xF0, 0x4E, 0xA0, 0x4C, 0xEB, 0xAC, 0xEB, +0x05, 0x23, 0x2C, 0xEC, 0xAC, 0xEC, 0x80, 0x18, +0x10, 0x3B, 0x2C, 0x10, 0x2C, 0xEC, 0xFF, 0x6E, +0xCC, 0xEC, 0x01, 0x6D, 0x80, 0x18, 0x05, 0x3B, +0x25, 0x10, 0xE0, 0xF0, 0x4E, 0xA0, 0xFF, 0x6F, +0x6C, 0xEA, 0xEC, 0xEA, 0x04, 0x22, 0x2C, 0xEC, +0xEC, 0xEC, 0x00, 0x6D, 0xF3, 0x17, 0xFF, 0x6A, +0x2C, 0xEC, 0x4C, 0xEC, 0x80, 0x18, 0x10, 0x3B, +0xE0, 0xF0, 0x72, 0xA0, 0x7F, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x81, 0x72, +0x0D, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, +0x84, 0x9A, 0x80, 0x18, 0x95, 0x57, 0xE0, 0xF0, +0x4F, 0xA0, 0xFF, 0x6C, 0x4C, 0xE9, 0x2C, 0xEC, +0x80, 0x18, 0x21, 0x3B, 0x80, 0x18, 0x06, 0x09, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xE0, 0xF0, 0x92, 0xA2, 0x03, 0x6B, 0x8C, 0xEB, +0x01, 0x73, 0x0F, 0x61, 0x80, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xFF, 0x6C, 0x8C, 0xEB, 0x09, 0x2B, +0x30, 0xF0, 0x20, 0x6C, 0xA0, 0xF0, 0x64, 0x9A, +0xE3, 0xF1, 0x80, 0x9C, 0x8D, 0xEB, 0xA0, 0xF0, +0x64, 0xDA, 0x00, 0x18, 0x64, 0xDF, 0x30, 0xF0, +0x20, 0x6A, 0x05, 0x6B, 0x6B, 0xF3, 0x64, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xAB, 0xF1, 0x0D, 0x4C, +0x00, 0x6D, 0x08, 0x6E, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0x80, 0xF2, 0x48, 0x98, 0x30, 0xF0, +0x20, 0x6C, 0xEB, 0xF0, 0x14, 0x4C, 0x00, 0x6D, +0x34, 0x6E, 0x40, 0xEA, 0x80, 0xF2, 0x48, 0x98, +0x30, 0xF0, 0x20, 0x6C, 0xC6, 0xF6, 0x05, 0x4C, +0x00, 0x6D, 0x07, 0x6E, 0x40, 0xEA, 0x80, 0xF2, +0x48, 0x98, 0x30, 0xF0, 0x20, 0x6C, 0xA6, 0xF6, +0x1E, 0x4C, 0x00, 0x6D, 0x07, 0x6E, 0x40, 0xEA, +0x80, 0x18, 0x3B, 0x07, 0x80, 0x18, 0x1E, 0x14, +0x80, 0x18, 0x12, 0x13, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x48, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF2, 0x6C, 0x9B, 0xFF, 0x68, 0x49, 0xE4, +0x0C, 0xED, 0x05, 0xD5, 0x04, 0xD2, 0x6D, 0xE4, +0x40, 0xA2, 0xA0, 0xA3, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF3, 0x2C, 0x9B, 0x0C, 0xED, 0x25, 0xE4, +0xC0, 0xA1, 0x90, 0x67, 0x4C, 0xEC, 0x0C, 0xEE, +0x80, 0x18, 0xC3, 0x06, 0x06, 0xD2, 0x80, 0xA1, +0x0C, 0xEC, 0x80, 0x18, 0xB3, 0x06, 0x22, 0x67, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x84, 0xF5, 0xD5, 0xA2, 0x07, 0x5E, 0x33, 0x60, +0x84, 0xF5, 0x75, 0x82, 0x01, 0x6A, 0x44, 0xEB, +0x14, 0x6B, 0x4C, 0xEB, 0x18, 0x2B, 0x62, 0x6B, +0x4C, 0xEB, 0x29, 0x23, 0x30, 0xF0, 0x20, 0x68, +0x05, 0x95, 0x2B, 0xF3, 0x14, 0x48, 0x90, 0x67, +0x80, 0x18, 0xAD, 0x00, 0x04, 0x93, 0x06, 0x94, +0x89, 0xE3, 0x2B, 0xE2, 0x25, 0xE0, 0x04, 0x10, +0x60, 0xA0, 0x01, 0x48, 0x60, 0xC2, 0x01, 0x4A, +0x2A, 0xE8, 0xFA, 0x61, 0x14, 0x10, 0x30, 0xF0, +0x20, 0x68, 0x05, 0x95, 0x2B, 0xF3, 0x14, 0x48, +0x90, 0x67, 0x80, 0x18, 0x92, 0x00, 0x04, 0x93, +0x06, 0x94, 0x89, 0xE3, 0x2B, 0xE2, 0x25, 0xE0, +0x04, 0x10, 0x60, 0xA0, 0x01, 0x48, 0x60, 0xC2, +0x01, 0x4A, 0x2A, 0xE8, 0xFA, 0x61, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x40, 0x98, +0x09, 0xD5, 0x24, 0x67, 0x40, 0xEA, 0x0C, 0x6B, +0x4C, 0xEB, 0x08, 0x73, 0x6A, 0x61, 0x09, 0x93, +0xC0, 0xF3, 0x40, 0x98, 0x86, 0x41, 0x71, 0xE4, +0x40, 0xEA, 0x88, 0x72, 0x62, 0x61, 0x09, 0x93, +0xC0, 0xF3, 0x40, 0x98, 0x87, 0x41, 0x71, 0xE4, +0x40, 0xEA, 0x8E, 0x72, 0x5A, 0x61, 0x09, 0x93, +0x87, 0x41, 0xC0, 0xF3, 0x40, 0x98, 0x02, 0x4C, +0x71, 0xE4, 0x40, 0xEA, 0x03, 0x72, 0x01, 0x6A, +0x51, 0x61, 0x09, 0x93, 0x87, 0x41, 0xC0, 0xF3, +0x40, 0x98, 0x07, 0x4C, 0x71, 0xE4, 0x40, 0xEA, +0x08, 0x6B, 0x6C, 0xEA, 0x17, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xE0, 0xF0, +0x99, 0xA2, 0x01, 0x6B, 0x6C, 0xEC, 0x02, 0x24, +0x50, 0x6B, 0x34, 0x10, 0x30, 0xF0, 0x20, 0x6C, +0x63, 0xF1, 0x94, 0x9C, 0x60, 0xC4, 0x24, 0xF3, +0x84, 0xA2, 0x8D, 0xEB, 0x24, 0xF3, 0x64, 0xC2, +0x01, 0x6A, 0x30, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xE0, 0xF0, 0xB5, 0xA2, +0xFF, 0x6C, 0x6C, 0xED, 0x0E, 0x25, 0xE0, 0xF0, +0xBC, 0xA2, 0x02, 0x75, 0x05, 0x61, 0xE0, 0xF0, +0xB6, 0xA2, 0xAC, 0xEB, 0x8C, 0xEB, 0x0B, 0x23, +0x09, 0x95, 0x91, 0x67, 0x80, 0x18, 0xCD, 0x02, +0xE7, 0x17, 0xE0, 0xF0, 0xAE, 0xA2, 0x40, 0x6B, +0xAC, 0xEB, 0x8C, 0xEB, 0x0A, 0x23, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF1, 0x74, 0x9B, 0x02, 0x6C, +0x80, 0xC3, 0x24, 0xF3, 0x84, 0xA2, 0x01, 0x6B, +0xD4, 0x17, 0x4F, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x54, 0x9A, 0x6B, 0xEB, 0x60, 0xC2, +0xCF, 0x17, 0x00, 0x6A, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, +0xFF, 0x69, 0x04, 0x00, 0x8C, 0xE9, 0x00, 0x6D, +0x90, 0x67, 0x08, 0x6E, 0x40, 0xEA, 0x01, 0x6A, +0x2C, 0xEA, 0x12, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xE0, 0xF0, 0x7C, 0xA2, +0x30, 0xF0, 0x20, 0x6D, 0x90, 0x67, 0x84, 0xF5, +0x75, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0x6B, 0xF3, 0x0C, 0x4D, 0x39, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xE0, 0xF0, 0x7D, 0xA2, 0x84, 0xF5, 0x75, 0xC2, +0x84, 0xF5, 0x54, 0xA2, 0x01, 0x72, 0x10, 0x60, +0x05, 0x22, 0x02, 0x72, 0x17, 0x60, 0x03, 0x72, +0x1F, 0x60, 0x29, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6D, 0x80, 0xF2, 0x4C, 0x9A, +0x90, 0x67, 0x6B, 0xF3, 0x14, 0x4D, 0x1D, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6D, +0x80, 0xF2, 0x4C, 0x9A, 0x90, 0x67, 0x6B, 0xF3, +0x1C, 0x4D, 0x13, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6D, 0x80, 0xF2, 0x4C, 0x9A, +0x90, 0x67, 0x8B, 0xF3, 0x04, 0x4D, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0x30, 0xF0, 0x20, 0x6D, 0x90, 0x67, 0x8B, 0xF3, +0x0C, 0x4D, 0x08, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x84, 0xF5, +0xB5, 0xA2, 0x07, 0x5D, 0x5A, 0x60, 0x84, 0xF5, +0x75, 0x82, 0x01, 0x6A, 0x44, 0xEB, 0x14, 0x6B, +0x4C, 0xEB, 0x07, 0x2B, 0x62, 0x6B, 0x4C, 0xEB, +0x50, 0x23, 0x04, 0x04, 0x80, 0x18, 0xEE, 0x00, +0x03, 0x10, 0x04, 0x04, 0x80, 0x18, 0xCA, 0x00, +0x02, 0x67, 0x41, 0x22, 0x01, 0x6A, 0x2C, 0xEA, +0x09, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6C, 0x80, 0xF2, 0x4C, 0x9A, 0x6B, 0xF3, +0x0C, 0x4C, 0x2F, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF3, 0x44, 0xA2, 0x01, 0x72, 0x0F, 0x60, +0x05, 0x22, 0x02, 0x72, 0x15, 0x60, 0x03, 0x72, +0x1C, 0x60, 0x29, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6C, 0x80, 0xF2, 0x4C, 0x9A, +0x6B, 0xF3, 0x14, 0x4C, 0x1A, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6C, 0x80, 0xF2, +0x4C, 0x9A, 0x6B, 0xF3, 0x1C, 0x4C, 0x11, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6C, +0x80, 0xF2, 0x4C, 0x9A, 0x8B, 0xF3, 0x04, 0x4C, +0x08, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x8B, 0xF3, +0x0C, 0x4C, 0x30, 0xF0, 0x20, 0x6D, 0x0B, 0xF1, +0x0B, 0x4D, 0x08, 0x6E, 0x40, 0xEA, 0x50, 0x67, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x01, 0x68, 0xB7, 0x17, 0x00, 0x65, +0xF5, 0x63, 0x15, 0x62, 0x14, 0xD1, 0x13, 0xD0, +0xFF, 0x6A, 0x0F, 0xD2, 0x7D, 0x67, 0x60, 0xF0, +0x68, 0xA3, 0x18, 0xD6, 0xDD, 0x67, 0x10, 0xD3, +0x60, 0xF0, 0xCC, 0xA6, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF1, 0x4C, 0x9A, 0x16, 0xD4, 0x17, 0xD5, +0x19, 0xD7, 0x11, 0xD6, 0x40, 0xA2, 0xFF, 0x6B, +0x4C, 0xEB, 0x0F, 0xD3, 0x00, 0x18, 0xB5, 0xD2, +0x1C, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0x00, 0x6C, 0xFF, 0x6D, 0x39, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, +0x5C, 0x9A, 0x00, 0x68, 0x40, 0xEA, 0x01, 0x72, +0x19, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xA0, 0xF2, 0x54, 0x9A, 0xC6, 0xF6, +0x95, 0xA3, 0x01, 0x6D, 0x18, 0x6E, 0xF0, 0x67, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xA0, 0xF2, 0x54, 0x9A, 0xC6, 0xF6, +0x95, 0xA3, 0x01, 0x6D, 0x18, 0x6E, 0x00, 0x6F, +0x40, 0xEA, 0x02, 0x67, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, 0x50, 0x9A, +0x03, 0xF2, 0x6C, 0x9B, 0x49, 0xE0, 0x6D, 0xE0, +0x80, 0xA2, 0xA0, 0xA3, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF2, 0x78, 0x9B, 0xFF, 0x6A, 0x4C, 0xEC, +0x6D, 0xE0, 0xC0, 0xA3, 0x4C, 0xED, 0x4C, 0xEE, +0x80, 0x18, 0xC3, 0x06, 0x10, 0x95, 0x87, 0x40, +0x29, 0x4C, 0x22, 0x67, 0x80, 0x18, 0x79, 0x0D, +0x11, 0x96, 0x0F, 0x2E, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6D, 0x43, 0xF2, 0x48, 0x9A, +0x23, 0xF3, 0xB4, 0x9D, 0x16, 0x94, 0x49, 0xE0, +0xB5, 0xE0, 0x29, 0xE2, 0x18, 0x93, 0x35, 0xE5, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, +0x6C, 0x9A, 0x0E, 0x04, 0x04, 0x02, 0x6D, 0xE0, +0x2D, 0xE3, 0x27, 0x10, 0xC0, 0xA4, 0x01, 0x4C, +0xC0, 0xC2, 0xE0, 0xA3, 0xC8, 0x42, 0xF8, 0x4E, +0xE0, 0xC6, 0xC0, 0xA3, 0x01, 0x4B, 0xD8, 0xC2, +0x01, 0x4A, 0xAA, 0xEA, 0xF3, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF2, 0x84, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF3, 0x70, 0x9A, 0x91, 0xE0, +0x00, 0x6A, 0x6D, 0xE0, 0x2D, 0xE3, 0x17, 0x96, +0x55, 0xE6, 0xA0, 0xA5, 0xA0, 0xC4, 0x19, 0x96, +0x01, 0x4C, 0x55, 0xE6, 0xA0, 0xA5, 0x01, 0x4A, +0x06, 0x72, 0xA0, 0xC3, 0x01, 0x4B, 0xF3, 0x61, +0xD0, 0x17, 0xA0, 0xA3, 0x01, 0x4B, 0xA0, 0xC2, +0x01, 0x4A, 0x8A, 0xEA, 0xFA, 0x61, 0x16, 0x94, +0x18, 0x95, 0x3A, 0x6F, 0x20, 0x6E, 0x80, 0x18, +0x04, 0x06, 0x30, 0xF0, 0x20, 0x6B, 0xA0, 0xF3, +0x5C, 0x9B, 0x38, 0x48, 0x21, 0xE0, 0x30, 0xF0, +0x20, 0x6E, 0x90, 0x67, 0x0E, 0xD0, 0x28, 0x6D, +0x0B, 0xF3, 0x0C, 0x4E, 0x30, 0xF0, 0x20, 0x68, +0x40, 0xEA, 0xC6, 0xF5, 0x10, 0x48, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF4, 0x54, 0x9A, 0x0E, 0x95, +0x00, 0xF1, 0xC5, 0xA0, 0x3A, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6E, 0xA0, 0xF3, 0x5C, 0x9E, +0x0E, 0x94, 0x28, 0x6D, 0x04, 0x06, 0x40, 0xEA, +0xE0, 0xF0, 0x5C, 0xA0, 0x02, 0x72, 0x05, 0x61, +0x00, 0xF1, 0x85, 0xA0, 0xB1, 0x67, 0x80, 0x18, +0x1D, 0x0A, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, +0x3C, 0x9A, 0xFF, 0x68, 0x02, 0x6B, 0x40, 0xA1, +0x00, 0x6C, 0x3A, 0x6E, 0x0C, 0xEA, 0x6D, 0xEA, +0x0C, 0xEA, 0x40, 0xC1, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x0F, 0x95, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, 0x54, 0x9A, +0x40, 0xEA, 0x06, 0x2A, 0x40, 0xA1, 0x20, 0x6B, +0x0C, 0xEA, 0x6D, 0xEA, 0x0C, 0xEA, 0x40, 0xC1, +0x15, 0x97, 0x14, 0x91, 0x13, 0x90, 0x0B, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF1, 0x63, 0x1D, 0x62, +0x1C, 0xD1, 0x1B, 0xD0, 0x00, 0x6A, 0x7D, 0x67, +0x1E, 0xD4, 0x1F, 0xD5, 0x06, 0xD2, 0x4E, 0xCB, +0x08, 0xD2, 0x09, 0xD2, 0x0A, 0xD2, 0x0B, 0xD2, +0x0C, 0xD2, 0x0D, 0xD2, 0x0E, 0xD2, 0x0F, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x58, 0x9A, +0x1E, 0x94, 0x1F, 0x95, 0x40, 0xEA, 0x01, 0x72, +0x00, 0xF1, 0x0A, 0x61, 0x1E, 0x94, 0x1F, 0x93, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x40, 0x98, +0x0E, 0x4C, 0x71, 0xE4, 0x40, 0xEA, 0x3A, 0x72, +0xE0, 0xF0, 0x1E, 0x61, 0x1E, 0x94, 0x1F, 0x93, +0xC0, 0xF3, 0x40, 0x98, 0x30, 0x4C, 0x71, 0xE4, +0x40, 0xEA, 0x87, 0x72, 0xE0, 0xF0, 0x14, 0x61, +0x1E, 0x90, 0x1F, 0x92, 0x10, 0x03, 0x38, 0x48, +0x41, 0xE0, 0x0C, 0x01, 0x16, 0xD3, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, 0x90, 0x67, +0x01, 0x48, 0x40, 0xEA, 0x40, 0xC1, 0x16, 0x92, +0x01, 0x49, 0x4A, 0xE9, 0xF4, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x8B, 0xF2, 0x1D, 0x4B, 0x12, 0xD3, +0x00, 0x68, 0x38, 0x6C, 0x98, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x12, 0xEC, +0x4D, 0xE4, 0xC4, 0xF4, 0xAC, 0xA3, 0x01, 0x6B, +0xAC, 0xEB, 0xC0, 0xF0, 0x0F, 0x23, 0x89, 0xE2, +0xC4, 0xF4, 0x0E, 0x4A, 0x13, 0xD2, 0x14, 0xD2, +0x00, 0x69, 0xBC, 0x10, 0xE0, 0xA2, 0xC0, 0xA4, +0x01, 0x4A, 0x01, 0x4C, 0xEE, 0xEE, 0x01, 0x5E, +0xD8, 0x67, 0xCB, 0xEE, 0xAA, 0xEA, 0xCC, 0xEB, +0xF5, 0x61, 0x01, 0x73, 0xA0, 0xF0, 0x00, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x7C, 0x9A, +0xFF, 0x6C, 0x06, 0x6D, 0x40, 0xA3, 0xAB, 0xED, +0x8C, 0xEA, 0xAC, 0xEA, 0x01, 0x6D, 0xAD, 0xEA, +0x8C, 0xEA, 0x40, 0xC3, 0x1E, 0x92, 0x1F, 0x93, +0x4A, 0x4A, 0x69, 0xE2, 0x11, 0xD2, 0x00, 0xF0, +0x1E, 0x03, 0x06, 0x02, 0x10, 0xD2, 0x17, 0xD3, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, +0x11, 0x94, 0x40, 0xEA, 0x10, 0x93, 0x40, 0xC3, +0x11, 0x92, 0x01, 0x4B, 0x10, 0xD3, 0x01, 0x4A, +0x11, 0xD2, 0x17, 0x92, 0x4A, 0xEB, 0xF0, 0x61, +0x1E, 0x92, 0x1F, 0x93, 0x10, 0x4A, 0x69, 0xE2, +0x11, 0xD2, 0x0C, 0x03, 0x08, 0x02, 0x10, 0xD2, +0x18, 0xD3, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x40, 0x9A, 0x11, 0x94, 0x40, 0xEA, 0x10, 0x93, +0x40, 0xC3, 0x11, 0x92, 0x01, 0x4B, 0x10, 0xD3, +0x01, 0x4A, 0x11, 0xD2, 0x18, 0x92, 0x4A, 0xEB, +0xF0, 0x61, 0x38, 0x6C, 0x98, 0xE8, 0x30, 0xF0, +0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, 0x01, 0x6D, +0x12, 0xEC, 0x69, 0xE4, 0xC4, 0xF4, 0x4C, 0xA2, +0x46, 0x32, 0xAC, 0xEA, 0x30, 0x22, 0x70, 0x10, +0xE0, 0xA2, 0xC0, 0xA3, 0x01, 0x4A, 0x01, 0x4B, +0xEE, 0xEE, 0x01, 0x5E, 0xD8, 0x67, 0xCB, 0xEE, +0xAA, 0xEA, 0xCC, 0xEC, 0xF5, 0x61, 0x01, 0x74, +0x4E, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0xE0, 0xF0, 0x7C, 0xA2, 0x02, 0x73, +0x12, 0x61, 0xE0, 0xF0, 0x96, 0xA2, 0x08, 0x6B, +0x8C, 0xEB, 0x0D, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF1, 0x74, 0x9B, 0x0A, 0x6C, 0x80, 0xC3, +0x24, 0xF3, 0x84, 0xA2, 0x01, 0x6B, 0x8D, 0xEB, +0x24, 0xF3, 0x64, 0xC2, 0x43, 0x10, 0x00, 0x6A, +0x04, 0xD2, 0x05, 0xD2, 0x08, 0x04, 0x06, 0x05, +0x0C, 0x06, 0x14, 0x97, 0x1E, 0x10, 0xE0, 0xF0, +0x5C, 0xA3, 0x02, 0x72, 0x13, 0x61, 0xE0, 0xF0, +0x96, 0xA3, 0x08, 0x6A, 0x8C, 0xEA, 0xFF, 0x6C, +0x8C, 0xEA, 0x0C, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x54, 0x9A, 0x0A, 0x6C, 0x80, 0xC2, +0x24, 0xF3, 0x44, 0xA3, 0x4D, 0xED, 0x24, 0xF3, +0xA4, 0xC3, 0x24, 0x10, 0x13, 0x97, 0x00, 0x6A, +0x04, 0xD2, 0x05, 0xD2, 0x08, 0x04, 0x06, 0x05, +0x0C, 0x06, 0x80, 0x18, 0x4E, 0x0E, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x7C, 0x9A, +0xFF, 0x6C, 0x05, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x49, +0xFF, 0x6A, 0x4C, 0xE9, 0x12, 0x93, 0x40, 0xA3, +0x43, 0xE9, 0x15, 0x61, 0x01, 0x48, 0x38, 0x4B, +0x02, 0x70, 0x12, 0xD3, 0x03, 0x60, 0x25, 0x17, +0x00, 0x6A, 0x01, 0x10, 0x01, 0x6A, 0x1D, 0x97, +0x1C, 0x91, 0x1B, 0x90, 0x0F, 0x63, 0x00, 0xEF, +0x8D, 0xE3, 0x08, 0x02, 0xC4, 0xF4, 0x14, 0x4B, +0x0C, 0x05, 0x01, 0x6C, 0x89, 0x17, 0x38, 0x6C, +0x98, 0xE8, 0x30, 0x33, 0x0C, 0x02, 0x10, 0x05, +0x12, 0xEC, 0x91, 0xE3, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x10, 0x4B, 0x91, 0xE3, 0xE4, 0xF4, +0x04, 0x4C, 0x01, 0x6B, 0x1B, 0x17, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xFF, 0x6A, 0xE3, 0xF1, +0x6C, 0x9B, 0x4C, 0xEE, 0x4C, 0xEF, 0x0C, 0xD4, +0x0D, 0xD5, 0x06, 0xD6, 0x04, 0xD7, 0x60, 0xA3, +0x6C, 0xEA, 0x05, 0xD2, 0x00, 0x18, 0xB5, 0xD2, +0x1C, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0x00, 0x6C, 0xFF, 0x6D, 0x33, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, +0x5C, 0x9A, 0x00, 0x68, 0x40, 0xEA, 0x01, 0x72, +0x19, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xA0, 0xF2, 0x54, 0x9A, 0xC6, 0xF6, +0x94, 0xA3, 0x01, 0x6D, 0x18, 0x6E, 0xF0, 0x67, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xA0, 0xF2, 0x54, 0x9A, 0xC6, 0xF6, +0x94, 0xA3, 0x01, 0x6D, 0x18, 0x6E, 0x00, 0x6F, +0x40, 0xEA, 0x02, 0x67, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, 0x50, 0x9A, +0x03, 0xF2, 0x6C, 0x9B, 0x49, 0xE0, 0x6D, 0xE0, +0x80, 0xA2, 0xA0, 0xA3, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF2, 0x78, 0x9B, 0xFF, 0x6A, 0x4C, 0xEC, +0x6D, 0xE0, 0xC0, 0xA3, 0x4C, 0xED, 0x4C, 0xEE, +0x80, 0x18, 0xC3, 0x06, 0x06, 0x95, 0x87, 0x40, +0x29, 0x4C, 0x22, 0x67, 0x80, 0x18, 0x79, 0x0D, +0x04, 0x92, 0x2E, 0x2A, 0x30, 0xF0, 0x20, 0x6C, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, 0x88, 0x9C, +0x30, 0xF0, 0x20, 0x6D, 0x43, 0xF2, 0x44, 0x9A, +0x43, 0xF2, 0xBC, 0x9D, 0x0D, 0x93, 0x91, 0xE0, +0x49, 0xE0, 0x31, 0xE4, 0xB5, 0xE0, 0xC0, 0xA3, +0xC0, 0xC2, 0xC0, 0xA3, 0x01, 0x4A, 0xAA, 0xEA, +0xC0, 0xC4, 0x01, 0x4B, 0x01, 0x4C, 0xF7, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6C, +0x43, 0xF2, 0x48, 0x9A, 0x23, 0xF3, 0x98, 0x9C, +0x0C, 0x93, 0x49, 0xE0, 0x81, 0xE0, 0x29, 0xE2, +0x21, 0xE0, 0x80, 0xA3, 0x01, 0x4B, 0x80, 0xC2, +0x01, 0x4A, 0x0A, 0xEA, 0xFA, 0x61, 0x2D, 0x10, +0x04, 0x92, 0x01, 0x72, 0x2A, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF2, 0x84, 0x9B, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF2, 0x68, 0x9B, 0x30, 0xF0, +0x20, 0x6A, 0x8B, 0xF2, 0x08, 0x4A, 0x6D, 0xE0, +0x91, 0xE0, 0x2D, 0xE3, 0xA6, 0x42, 0xC0, 0xA2, +0xC0, 0xC4, 0xCA, 0xA2, 0x01, 0x4A, 0xAA, 0xEA, +0xC0, 0xC3, 0x01, 0x4C, 0x01, 0x4B, 0xF7, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, 0x68, 0x9B, +0x30, 0xF0, 0x20, 0x6A, 0x8B, 0xF2, 0x18, 0x4A, +0x61, 0xE0, 0x21, 0xE0, 0x64, 0x42, 0x80, 0xA2, +0x01, 0x4A, 0x6A, 0xEA, 0x80, 0xC0, 0x01, 0x48, +0xFA, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0xE0, 0xF0, 0x7C, 0xA2, 0x02, 0x73, +0x05, 0x61, 0x00, 0xF1, 0x84, 0xA2, 0xB1, 0x67, +0x80, 0x18, 0x1D, 0x0A, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF2, 0x78, 0x9A, 0xFF, 0x68, 0x10, 0x6C, +0x40, 0xA3, 0x34, 0x6E, 0x0C, 0xEA, 0x8D, 0xEA, +0x0C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0x05, 0x95, 0x00, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, +0x54, 0x9A, 0x40, 0xEA, 0x0A, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF2, 0x7C, 0x9A, 0x20, 0x6C, +0x40, 0xA3, 0x0C, 0xEA, 0x8D, 0xEA, 0x0C, 0xEA, +0x40, 0xC3, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xE4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0xC6, 0xF5, +0x10, 0x4C, 0xA0, 0xF0, 0xAF, 0xA4, 0x04, 0x6B, +0xFF, 0x6A, 0xAC, 0xEB, 0x4C, 0xEB, 0x4C, 0xEF, +0x07, 0x23, 0x00, 0x6C, 0xA4, 0x67, 0xC4, 0x67, +0x01, 0x6F, 0x80, 0x18, 0x72, 0x0F, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x50, 0x9A, +0xA0, 0xF0, 0x8A, 0xA4, 0x02, 0x6D, 0x08, 0x6E, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, +0x44, 0xF3, 0x76, 0xA0, 0xFF, 0x6A, 0x24, 0x67, +0x4C, 0xE9, 0x34, 0x2B, 0xA0, 0xF0, 0x8F, 0xA0, +0x01, 0x6B, 0x8C, 0xEB, 0x4C, 0xEB, 0x2E, 0x23, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x5C, 0x9A, +0xE0, 0xF0, 0x88, 0xA0, 0x40, 0xEA, 0x01, 0x72, +0x25, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0xF4, +0x75, 0xA2, 0x0A, 0x6C, 0x01, 0x4B, 0x06, 0xF4, +0x75, 0xC2, 0x06, 0xF4, 0x75, 0xA2, 0x8E, 0xEB, +0x07, 0x2B, 0x05, 0xF3, 0x91, 0xA0, 0x06, 0xF4, +0x75, 0xC2, 0x01, 0x4C, 0x05, 0xF3, 0x91, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xA0, 0xF0, 0x90, 0xA2, 0x05, 0xF3, 0x71, 0xA2, +0x83, 0xEB, 0x08, 0x61, 0x05, 0xF3, 0x72, 0xA2, +0x05, 0x2B, 0x05, 0xF3, 0x71, 0xC2, 0x91, 0x67, +0x80, 0x18, 0xE9, 0x0F, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF5, 0x63, 0x15, 0x62, 0x14, 0xD1, 0x13, 0xD0, +0x00, 0x6A, 0x7D, 0x67, 0x30, 0xF0, 0x20, 0x69, +0x17, 0xD5, 0x0A, 0xD2, 0x56, 0xCB, 0x06, 0xD2, +0x07, 0xD2, 0xC0, 0xF3, 0x40, 0x99, 0x04, 0x67, +0x06, 0x4C, 0xB1, 0xE4, 0x40, 0xEA, 0x08, 0x72, +0x00, 0xF1, 0x0F, 0x61, 0x17, 0x95, 0xC0, 0xF3, +0x40, 0x99, 0x87, 0x40, 0xB1, 0xE4, 0x40, 0xEA, +0x06, 0x72, 0x00, 0xF1, 0x06, 0x61, 0x27, 0x40, +0x08, 0x02, 0x20, 0xF0, 0x06, 0x03, 0x03, 0x49, +0x0C, 0xD2, 0x0E, 0xD3, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x40, 0x9A, 0x91, 0x67, 0x01, 0x49, +0x40, 0xEA, 0x0C, 0x94, 0x0E, 0x95, 0x40, 0xC4, +0x01, 0x4C, 0xAA, 0xEC, 0x0C, 0xD4, 0xF2, 0x61, +0xF6, 0x10, 0xE0, 0xA3, 0xC0, 0xA2, 0x01, 0x4B, +0x01, 0x4A, 0xEE, 0xEE, 0x01, 0x5E, 0xD8, 0x67, +0xCB, 0xEE, 0xAA, 0xEB, 0xCC, 0xEC, 0xF5, 0x61, +0x01, 0x74, 0x01, 0x6A, 0xE0, 0xF0, 0x02, 0x61, +0x17, 0x92, 0x27, 0x40, 0x19, 0x49, 0x07, 0x03, +0x08, 0x04, 0x45, 0xE1, 0x0C, 0xD3, 0x0F, 0xD4, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, +0x91, 0x67, 0x01, 0x49, 0x40, 0xEA, 0x0C, 0x95, +0x40, 0xC5, 0x0F, 0x92, 0x01, 0x4D, 0x0C, 0xD5, +0x4A, 0xED, 0xF2, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x10, 0x4B, 0x20, 0xF1, 0x8D, 0xA3, +0x01, 0x6A, 0x00, 0x69, 0x8C, 0xEA, 0x25, 0x2A, +0x5D, 0x67, 0xDD, 0xA2, 0xA4, 0xF4, 0x5F, 0xA3, +0x9D, 0x67, 0xBC, 0xA4, 0xA4, 0xF4, 0x9E, 0xA3, +0x66, 0x67, 0x4E, 0xEB, 0x51, 0x67, 0x04, 0x2B, +0x45, 0x67, 0x8E, 0xEA, 0x01, 0x5A, 0x58, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, +0x9D, 0x67, 0xBE, 0xA4, 0xC4, 0xF4, 0x80, 0xA3, +0xC4, 0xF4, 0x61, 0xA3, 0xAE, 0xEC, 0x01, 0x5C, +0x98, 0x67, 0x8B, 0xEC, 0xBD, 0x67, 0x8C, 0xEA, +0x9F, 0xA5, 0x8E, 0xEB, 0x80, 0xF0, 0x0E, 0x2B, +0x14, 0x10, 0xFF, 0x6A, 0x2C, 0xEA, 0x0D, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0x35, 0xC6, 0xF5, +0x10, 0x4A, 0xB5, 0xE2, 0x07, 0x04, 0x85, 0xF0, +0x1E, 0x4D, 0x04, 0x6E, 0x00, 0x18, 0xE6, 0xD2, +0x08, 0x22, 0x01, 0x49, 0x04, 0x71, 0xED, 0x61, +0x79, 0x10, 0x01, 0x72, 0x77, 0x61, 0x00, 0x6B, +0x0D, 0xD3, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, +0x78, 0x9A, 0xFF, 0x6D, 0x22, 0x6C, 0x40, 0xA3, +0x8B, 0xEC, 0xAC, 0xEA, 0x8C, 0xEA, 0x01, 0x6C, +0x8D, 0xEA, 0xAC, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xE0, 0xF0, +0x77, 0xA2, 0x8C, 0xEB, 0xAC, 0xEB, 0x14, 0x2B, +0xE0, 0xF0, 0x7C, 0xA2, 0x02, 0x73, 0x0A, 0x60, +0x17, 0x94, 0x27, 0x40, 0x09, 0x49, 0x0A, 0x05, +0x20, 0xF0, 0x0E, 0x02, 0x85, 0xE1, 0x0C, 0xD5, +0x10, 0xD2, 0x12, 0x10, 0xE0, 0xF0, 0xD6, 0xA2, +0x08, 0x6B, 0xCC, 0xEB, 0xAC, 0xEB, 0xF0, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, 0x74, 0x9B, +0x09, 0x6D, 0xA0, 0xC3, 0x24, 0xF3, 0x64, 0xA2, +0x6D, 0xEC, 0x24, 0xF3, 0x84, 0xC2, 0x35, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, +0x91, 0x67, 0x01, 0x49, 0x40, 0xEA, 0x0C, 0x93, +0x10, 0x94, 0x40, 0xC3, 0x01, 0x4B, 0x8A, 0xEB, +0x0C, 0xD3, 0xF2, 0x61, 0x17, 0x95, 0x16, 0x48, +0x07, 0x02, 0xA1, 0xE0, 0x06, 0x01, 0x11, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, +0x90, 0x67, 0x01, 0x48, 0x40, 0xEA, 0x11, 0x93, +0x40, 0xC1, 0x01, 0x49, 0x6A, 0xE9, 0xF4, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x20, 0xF1, 0x8D, 0xA2, 0x01, 0x6B, 0x8C, 0xEB, +0x0E, 0x23, 0x0D, 0x94, 0xB8, 0x67, 0x04, 0xD5, +0x90, 0x36, 0xD9, 0xE2, 0x06, 0x04, 0x0A, 0x05, +0x85, 0xF0, 0x1E, 0x4E, 0x00, 0x6F, 0x80, 0x18, +0x37, 0x05, 0x01, 0x6A, 0x17, 0x10, 0x00, 0x6E, +0x06, 0x04, 0x0A, 0x05, 0xE6, 0x67, 0x80, 0x18, +0x72, 0x0F, 0xF7, 0x17, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF2, 0x78, 0x9A, 0xFF, 0x6C, 0x32, 0x6D, +0x40, 0xA3, 0xAB, 0xED, 0x8C, 0xEA, 0xAC, 0xEA, +0x21, 0x6D, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, +0xE8, 0x17, 0x00, 0x6A, 0x15, 0x97, 0x14, 0x91, +0x13, 0x90, 0x0B, 0x63, 0x00, 0xEF, 0x30, 0xF0, +0x20, 0x6A, 0x08, 0x03, 0xEB, 0xF0, 0x1B, 0x4A, +0x20, 0xF0, 0x06, 0x05, 0x01, 0x6C, 0x01, 0x17, +0xF3, 0x63, 0x19, 0x62, 0x18, 0xD1, 0x17, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x82, 0xF4, 0x74, 0x9A, +0x82, 0xF4, 0x14, 0x4A, 0x00, 0x6C, 0x05, 0xD3, +0x61, 0x9A, 0x44, 0xAA, 0x06, 0xD3, 0x7D, 0x67, +0x4E, 0xCB, 0x00, 0x6A, 0x49, 0xCB, 0x50, 0xC3, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x78, 0x9B, +0x10, 0xF0, 0x30, 0x6A, 0xE8, 0xF2, 0x01, 0x4A, +0x40, 0xDB, 0x80, 0x18, 0x2C, 0x3E, 0x01, 0x6C, +0x11, 0xD2, 0x80, 0x18, 0x2C, 0x3E, 0x0C, 0xD2, +0x00, 0x18, 0xB0, 0xD2, 0x14, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF6, 0x65, 0xA2, 0x01, 0x6A, +0x6C, 0xEA, 0x60, 0xF3, 0x01, 0x22, 0x00, 0x6C, +0x0E, 0xD4, 0x0B, 0xD4, 0x10, 0xD4, 0x57, 0x13, +0x0C, 0x95, 0x11, 0x94, 0x80, 0x18, 0x51, 0x3E, +0x30, 0xF0, 0x20, 0x6C, 0x02, 0x67, 0xC0, 0xF3, +0x40, 0x9C, 0x90, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0x67, 0xC0, 0xF3, 0x40, 0x9B, +0x81, 0x40, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x09, 0xD2, 0xC0, 0xF3, 0x40, 0x9C, 0x84, 0x40, +0x40, 0xEA, 0x09, 0x95, 0xC2, 0x67, 0x91, 0x67, +0x80, 0x18, 0xC3, 0x06, 0x30, 0xF0, 0x20, 0x6B, +0x09, 0xD2, 0xC0, 0xF3, 0x40, 0x9B, 0x90, 0x67, +0xFC, 0x69, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0x4C, 0xE9, 0xC0, 0xF3, 0x40, 0x9C, 0x0C, 0x94, +0x01, 0x4C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x08, 0xD2, 0x0C, 0x94, 0xC0, 0xF3, 0x40, 0x9B, +0x40, 0xEA, 0x08, 0x94, 0x80, 0x34, 0x4D, 0xEC, +0xE7, 0xF7, 0x1F, 0x6A, 0x4C, 0xEC, 0x30, 0xF0, +0x20, 0x6A, 0xEB, 0xF0, 0x74, 0xA2, 0x04, 0x6A, +0x08, 0xD4, 0x6C, 0xEA, 0xFC, 0x4C, 0x12, 0xD4, +0x02, 0x2A, 0x08, 0x92, 0x12, 0xD2, 0x0C, 0x94, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, +0x0F, 0x4C, 0x40, 0xEA, 0x13, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x67, 0xF7, +0xB8, 0xA2, 0x01, 0x6B, 0xFF, 0x6C, 0x6C, 0xED, +0x7D, 0x25, 0x50, 0x71, 0x70, 0x60, 0x80, 0x71, +0x20, 0xF2, 0x17, 0x61, 0x00, 0xF1, 0x58, 0xA2, +0x4C, 0xEB, 0x8C, 0xEB, 0x04, 0x23, 0x08, 0x95, +0x90, 0x67, 0x80, 0x18, 0xD3, 0x3E, 0x30, 0xF0, +0x20, 0x6A, 0x2B, 0xF1, 0x60, 0xA2, 0x01, 0x6A, +0x6C, 0xEA, 0x20, 0xF2, 0x06, 0x22, 0x67, 0x40, +0x00, 0x6C, 0x09, 0x4B, 0x0F, 0xD3, 0x0D, 0xD4, +0x0A, 0xD4, 0x30, 0xF0, 0x20, 0x6A, 0x0F, 0x94, +0xC0, 0xF3, 0x40, 0x9A, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA6, 0xF6, 0x77, 0xA3, 0x9D, 0x67, +0x64, 0x33, 0x6D, 0xE4, 0x8A, 0xAB, 0x0D, 0x93, +0x91, 0xE3, 0x1F, 0xF7, 0x00, 0x6B, 0x8C, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x11, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, 0x77, 0xA3, +0x9D, 0x67, 0x64, 0x33, 0x6D, 0xE4, 0x8A, 0xAB, +0x0D, 0x93, 0x91, 0xE3, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF0, 0x78, 0x9B, 0x6D, 0xE4, 0x80, 0xA3, +0x06, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, +0x7C, 0x9B, 0x71, 0xE4, 0x80, 0xA4, 0xFF, 0x6B, +0x8C, 0xEB, 0x6E, 0xEA, 0xE0, 0xF1, 0x0D, 0x2A, +0x0A, 0x94, 0xFF, 0x6A, 0x0F, 0x93, 0x01, 0x4C, +0x4C, 0xEC, 0x0D, 0x92, 0x01, 0x4B, 0x06, 0x74, +0x01, 0x4A, 0x0A, 0xD4, 0x0D, 0xD2, 0x0F, 0xD3, +0xC0, 0x61, 0x08, 0x92, 0xFF, 0xF7, 0x1F, 0x6D, +0x90, 0x67, 0xAC, 0xEC, 0x4C, 0xED, 0x80, 0x18, +0xEE, 0x07, 0xC0, 0xF1, 0x16, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x44, 0xF3, +0x90, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, +0x44, 0xF3, 0x70, 0xC2, 0xCA, 0x11, 0x00, 0xF1, +0x58, 0xA2, 0x4C, 0xEB, 0x8C, 0xEB, 0xC0, 0xF1, +0x04, 0x23, 0x08, 0x95, 0x90, 0x67, 0x80, 0x18, +0xD3, 0x3E, 0xBF, 0x11, 0x88, 0x71, 0xA0, 0xF0, +0x07, 0x60, 0x89, 0x59, 0x06, 0x60, 0x08, 0x71, +0xA0, 0xF0, 0x02, 0x60, 0x80, 0x71, 0x2B, 0x60, +0xB4, 0x11, 0xA0, 0x71, 0x03, 0x60, 0xC0, 0x71, +0xA0, 0xF1, 0x0F, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x10, 0x4B, 0x24, 0xF3, 0x51, 0xA3, +0x90, 0x67, 0x08, 0xD3, 0x01, 0x4A, 0x24, 0xF3, +0x51, 0xC3, 0x80, 0x18, 0x24, 0x06, 0xA0, 0xF1, +0x00, 0x22, 0x90, 0x67, 0x80, 0x18, 0x3B, 0x06, +0x80, 0xF1, 0x1B, 0x22, 0x08, 0x94, 0x06, 0x6A, +0xE0, 0xF0, 0x79, 0xA4, 0x6C, 0xEA, 0x80, 0xF1, +0x14, 0x2A, 0x91, 0x67, 0x80, 0x18, 0x16, 0x07, +0x08, 0x93, 0x24, 0xF3, 0x52, 0xA3, 0x01, 0x4A, +0x24, 0xF3, 0x52, 0xC3, 0x8A, 0x11, 0x44, 0xF3, +0x50, 0xA2, 0x4C, 0xEB, 0x8C, 0xEB, 0x59, 0x23, +0x87, 0x40, 0x00, 0x6A, 0x09, 0x4C, 0x0F, 0xD4, +0x0D, 0xD2, 0x0A, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x0F, 0x94, 0xC0, 0xF3, 0x40, 0x9A, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, 0x77, 0xA3, +0x9D, 0x67, 0x64, 0x33, 0x6D, 0xE4, 0x8A, 0xAB, +0x0D, 0x93, 0x91, 0xE3, 0x1F, 0xF7, 0x00, 0x6B, +0x8C, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, +0x11, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0xA6, 0xF6, +0x77, 0xA3, 0x9D, 0x67, 0x64, 0x33, 0x6D, 0xE4, +0x8A, 0xAB, 0x0D, 0x93, 0x91, 0xE3, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF0, 0x78, 0x9B, 0x6D, 0xE4, +0x80, 0xA3, 0x06, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF0, 0x7C, 0x9B, 0x71, 0xE4, 0x80, 0xA4, +0xFF, 0x6B, 0x8C, 0xEB, 0x6E, 0xEA, 0x21, 0x2A, +0x0A, 0x94, 0xFF, 0x6A, 0x0F, 0x93, 0x01, 0x4C, +0x4C, 0xEC, 0x0D, 0x92, 0x01, 0x4B, 0x06, 0x74, +0x01, 0x4A, 0x0A, 0xD4, 0x0D, 0xD2, 0x0F, 0xD3, +0xC1, 0x61, 0x08, 0x92, 0xFF, 0xF7, 0x1F, 0x6D, +0x90, 0x67, 0xAC, 0xEC, 0x4C, 0xED, 0x80, 0x18, +0xEE, 0x07, 0x0B, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x44, 0xF3, 0x90, 0xA2, +0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x44, 0xF3, +0x70, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0xE0, 0xF0, 0x99, 0xA2, 0x08, 0x6B, +0x8C, 0xEB, 0x20, 0xF1, 0x02, 0x23, 0x44, 0xF3, +0x74, 0xA2, 0x04, 0x23, 0x44, 0xF3, 0x55, 0xA2, +0x00, 0xF1, 0x1B, 0x22, 0x0C, 0x94, 0x12, 0x95, +0xD0, 0x67, 0x80, 0x18, 0x6E, 0x48, 0x15, 0x11, +0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF3, 0x40, 0x9C, +0x64, 0x40, 0x83, 0x67, 0x08, 0xD3, 0x40, 0xEA, +0x82, 0x67, 0x80, 0x18, 0xB3, 0x06, 0x09, 0x95, +0xFF, 0x6B, 0xC3, 0x67, 0x4C, 0xEE, 0x90, 0x67, +0x6C, 0xED, 0x80, 0x18, 0xD2, 0x06, 0x30, 0xF0, +0x20, 0x6C, 0xC0, 0xF3, 0x40, 0x9C, 0x08, 0x94, +0x40, 0xEA, 0x82, 0x67, 0x80, 0x18, 0xEC, 0x0D, +0xE0, 0xF0, 0x0B, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF6, 0x65, 0xA2, 0x40, 0x6A, 0x6C, 0xEA, +0xFF, 0x6B, 0x6C, 0xEA, 0x25, 0x22, 0x09, 0x94, +0x47, 0x40, 0x01, 0x4A, 0x89, 0xE2, 0x08, 0xD2, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, +0x08, 0x94, 0x40, 0xEA, 0x45, 0x72, 0x18, 0x61, +0x08, 0x94, 0x80, 0x18, 0x34, 0x14, 0x01, 0x72, +0x13, 0x61, 0x08, 0x94, 0x80, 0x18, 0x46, 0x14, +0x01, 0x72, 0x0E, 0x61, 0x08, 0x94, 0x80, 0x18, +0x57, 0x14, 0x04, 0x22, 0x01, 0x6C, 0x0E, 0xD4, +0x0B, 0xD4, 0x06, 0x10, 0x08, 0x94, 0x80, 0x18, +0x89, 0x14, 0x01, 0x6B, 0x0E, 0xD3, 0x0B, 0xD3, +0x90, 0x67, 0x80, 0x18, 0x24, 0x06, 0x08, 0x22, +0x09, 0x95, 0x90, 0x67, 0x80, 0x18, 0xAC, 0x0D, +0x03, 0x22, 0x01, 0x6A, 0x0E, 0xD2, 0x0B, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF6, 0x65, 0xA2, +0x02, 0x6A, 0x6C, 0xEA, 0x08, 0x22, 0x09, 0x95, +0x90, 0x67, 0x80, 0x18, 0x1E, 0x10, 0x03, 0x22, +0x01, 0x6C, 0x0E, 0xD4, 0x0B, 0xD4, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF6, 0x65, 0xA2, 0x04, 0x6A, +0x6C, 0xEA, 0x08, 0x22, 0x09, 0x95, 0x90, 0x67, +0x80, 0x18, 0xCF, 0x0E, 0x03, 0x22, 0x01, 0x6B, +0x0E, 0xD3, 0x0B, 0xD3, 0x09, 0x95, 0x90, 0x67, +0x00, 0xF0, 0x12, 0x06, 0x04, 0x07, 0x80, 0x18, +0x2E, 0x04, 0x05, 0x72, 0x13, 0x60, 0x0C, 0x72, +0x24, 0x60, 0x04, 0x72, 0x3E, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xE6, 0xF6, 0x7F, 0xA2, 0x44, 0x6A, +0x6C, 0xEA, 0x37, 0x22, 0x5D, 0x67, 0x09, 0x95, +0xC9, 0xAA, 0xF0, 0xA2, 0x90, 0x67, 0x80, 0x18, +0x8F, 0x46, 0x11, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xE6, 0xF6, 0x7F, 0xA2, 0x78, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x25, 0x22, +0x7D, 0x67, 0x09, 0x95, 0xC9, 0xAB, 0xF0, 0xA3, +0x90, 0x67, 0x80, 0x18, 0x4B, 0x45, 0x1A, 0x2A, +0x1C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x20, 0xF1, 0x8F, 0xA2, 0x20, 0x6B, +0x8C, 0xEB, 0x13, 0x23, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF1, 0x74, 0x9B, 0x29, 0x6C, 0x80, 0xC3, +0x24, 0xF3, 0x84, 0xA2, 0x01, 0x6B, 0x8D, 0xEB, +0x01, 0x6C, 0x24, 0xF3, 0x64, 0xC2, 0x0E, 0xD4, +0x0B, 0xD4, 0x03, 0x10, 0x01, 0x6B, 0x0E, 0xD3, +0x0B, 0xD3, 0x09, 0x95, 0x90, 0x67, 0x80, 0x18, +0x52, 0x06, 0x1D, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xE0, 0xF0, 0x96, 0xA2, +0x20, 0x6B, 0x8C, 0xEB, 0x0D, 0x23, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF1, 0x74, 0x9B, 0x0B, 0x6C, +0x80, 0xC3, 0x24, 0xF3, 0x84, 0xA2, 0x01, 0x6B, +0x8D, 0xEB, 0x24, 0xF3, 0x64, 0xC2, 0x07, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, 0x54, 0x9A, +0x4C, 0x6B, 0x6B, 0xEB, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x08, 0xD2, +0xE0, 0xF0, 0x75, 0xA2, 0x80, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x25, 0x22, +0x0B, 0x93, 0x03, 0x23, 0x01, 0x6C, 0x0B, 0xD4, +0x20, 0x10, 0x09, 0x95, 0x90, 0x67, 0x80, 0x18, +0x88, 0x06, 0x1B, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x54, 0x9A, 0x22, 0x6B, 0x60, 0xC2, +0x08, 0x92, 0x24, 0xF3, 0x64, 0xA2, 0x01, 0x6A, +0x6D, 0xEA, 0x08, 0x93, 0x24, 0xF3, 0x44, 0xC3, +0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, +0x7C, 0x9A, 0xFF, 0x6C, 0x40, 0xA3, 0x8C, 0xEA, +0x08, 0x6C, 0x8D, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, +0x40, 0xC3, 0x13, 0x94, 0x01, 0x6D, 0x80, 0x18, +0xED, 0x06, 0x16, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x08, 0xD2, 0x24, 0xF3, +0x64, 0xA2, 0x01, 0x6A, 0x6D, 0xEA, 0x08, 0x93, +0x24, 0xF3, 0x44, 0xC3, 0x0C, 0x94, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, 0x10, 0x4C, +0x40, 0xEA, 0x08, 0x94, 0x84, 0xF5, 0x56, 0xC4, +0x08, 0x71, 0x02, 0x60, 0x88, 0x71, 0x48, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xE0, 0xF0, 0x97, 0xA2, 0x40, 0x6B, 0x8C, 0xEB, +0x0E, 0x23, 0x0E, 0x93, 0x0C, 0x2B, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF1, 0x74, 0x9B, 0x25, 0x6C, +0x80, 0xC3, 0x24, 0xF3, 0x84, 0xA2, 0x01, 0x6B, +0x8D, 0xEB, 0x24, 0xF3, 0x64, 0xC2, 0x09, 0x95, +0x90, 0x67, 0x80, 0x18, 0x94, 0x06, 0x11, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, 0x54, 0x9A, +0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x24, 0xF3, 0x84, 0xA2, +0x02, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0x24, 0xF3, +0x64, 0xC2, 0x30, 0xF0, 0x20, 0x69, 0xC6, 0xF5, +0x10, 0x49, 0xE0, 0xF0, 0x76, 0xA1, 0x40, 0x6A, +0x6C, 0xEA, 0x12, 0x22, 0x09, 0x95, 0x90, 0x67, +0x80, 0x18, 0x6D, 0x0A, 0x0D, 0x22, 0x24, 0xF3, +0x64, 0xA1, 0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x24, 0xF3, 0x44, 0xC1, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x54, 0x9A, 0x00, 0x6B, 0x60, 0xC2, +0x11, 0x95, 0x0C, 0x96, 0x01, 0x6C, 0x80, 0x18, +0x32, 0x3E, 0x11, 0x95, 0x0C, 0x96, 0x00, 0x6C, +0x22, 0x67, 0x80, 0x18, 0x32, 0x3E, 0x11, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xEB, 0xF0, 0x74, 0xA2, +0x01, 0x6A, 0x6C, 0xEA, 0x03, 0x22, 0x01, 0x6C, +0x80, 0x18, 0x28, 0x09, 0x80, 0x18, 0x2B, 0x07, +0x01, 0x72, 0x31, 0x61, 0x30, 0xF0, 0x20, 0x68, +0xC6, 0xF5, 0x10, 0x48, 0x24, 0xF3, 0x53, 0xA0, +0x01, 0x4A, 0x24, 0xF3, 0x53, 0xC0, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF4, 0x48, 0x9A, 0x40, 0xEA, +0x01, 0x72, 0x15, 0x60, 0x24, 0xF3, 0x84, 0xA0, +0x01, 0x6B, 0x02, 0x72, 0x8D, 0xEB, 0x24, 0xF3, +0x64, 0xC0, 0x42, 0x6B, 0x03, 0x60, 0x04, 0x72, +0x06, 0x61, 0x43, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x54, 0x9A, 0x60, 0xC2, 0x01, 0x6C, +0x80, 0x18, 0x28, 0x09, 0x21, 0x10, 0x11, 0x95, +0x91, 0x67, 0x80, 0x18, 0x60, 0x3E, 0x10, 0x94, +0xFF, 0xF7, 0x1F, 0x6A, 0x0C, 0xD1, 0x01, 0x4C, +0x4C, 0xEC, 0x10, 0xD4, 0x10, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xE0, 0xF0, +0x97, 0xA2, 0x20, 0x6B, 0x8C, 0xEB, 0x0C, 0x2B, +0xE0, 0xF0, 0x95, 0xA2, 0xFE, 0x4B, 0x8C, 0xEB, +0xE0, 0xF0, 0x75, 0xC2, 0x05, 0x10, 0x10, 0x92, +0x14, 0x93, 0x63, 0xEA, 0xBF, 0xF4, 0x04, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x78, 0x9B, +0x10, 0xF0, 0x30, 0x6A, 0xE8, 0xF2, 0x02, 0x4A, +0x40, 0xDB, 0x19, 0x97, 0x18, 0x91, 0x17, 0x90, +0x0D, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xC6, 0xF5, 0x10, 0x48, 0x44, 0xF3, 0x56, 0xA0, +0xFF, 0x69, 0x64, 0x67, 0x2C, 0xED, 0x2C, 0xEB, +0x04, 0xD5, 0x05, 0xD2, 0x62, 0x2A, 0xA0, 0xF0, +0x56, 0xA0, 0x01, 0x6C, 0x8C, 0xEA, 0x2C, 0xEA, +0x5C, 0x22, 0x05, 0xF3, 0x54, 0xA0, 0x59, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x40, 0xF4, 0x44, 0x9A, +0x85, 0x67, 0xA3, 0x67, 0x40, 0xEA, 0x0A, 0x22, +0x5D, 0x67, 0x67, 0x42, 0x0D, 0x4B, 0x40, 0xA3, +0x01, 0x6B, 0x05, 0xF3, 0x76, 0xC0, 0x05, 0xF3, +0x54, 0xC0, 0x47, 0x10, 0xA0, 0xF0, 0x78, 0xA0, +0x05, 0xF3, 0x54, 0xA0, 0x63, 0xEA, 0x32, 0x61, +0xA0, 0xF0, 0x76, 0xA0, 0x08, 0x6A, 0x6C, 0xEA, +0x2C, 0xEA, 0x1B, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x54, 0x9A, 0x4B, 0x6B, 0x6B, 0xEB, +0x60, 0xC2, 0xE0, 0xF0, 0x88, 0xA0, 0x00, 0x6D, +0x00, 0x18, 0xE5, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x58, 0x9A, 0xE0, 0xF0, 0x88, 0xA0, +0x40, 0xEA, 0xC0, 0xF0, 0x64, 0xA0, 0x80, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xC0, 0xF0, 0x44, 0xC0, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, +0x54, 0x9A, 0x10, 0x6B, 0x01, 0x6C, 0x60, 0xC2, +0x80, 0x18, 0x28, 0x09, 0xA0, 0xF0, 0x76, 0xA0, +0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0xA0, 0xF0, +0x56, 0xC0, 0x0F, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x40, 0xF4, 0x50, 0x9A, 0xA0, 0xF0, 0x8A, 0xA0, +0x04, 0x97, 0x02, 0x6D, 0x08, 0x6E, 0x40, 0xEA, +0x05, 0xF3, 0x54, 0xA0, 0x01, 0x4A, 0x05, 0xF3, +0x54, 0xC0, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xC6, 0xF5, 0x10, 0x48, 0x44, 0xF3, 0x76, 0xA0, +0xFF, 0x6A, 0x24, 0x67, 0x4C, 0xE9, 0x7A, 0x2B, +0xA0, 0xF0, 0x76, 0xA0, 0x01, 0x6C, 0x6C, 0xEC, +0x4C, 0xEC, 0x74, 0x24, 0x05, 0xF3, 0x93, 0xA0, +0x01, 0x4C, 0x05, 0xF3, 0x93, 0xC0, 0x05, 0xF3, +0x96, 0xA0, 0x01, 0x74, 0x36, 0x61, 0x04, 0x6C, +0x6C, 0xEC, 0x4C, 0xEC, 0x32, 0x24, 0x05, 0xF3, +0x95, 0xA0, 0x2F, 0x2C, 0x05, 0xF3, 0xB3, 0xA0, +0xA0, 0xF0, 0x99, 0xA0, 0x83, 0xED, 0x29, 0x61, +0x08, 0x6C, 0x6C, 0xEC, 0x4C, 0xEC, 0x14, 0x24, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, 0x54, 0x9A, +0x4B, 0x6B, 0x6B, 0xEB, 0x60, 0xC2, 0xE0, 0xF0, +0x88, 0xA0, 0x00, 0x6D, 0x00, 0x18, 0xE5, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x58, 0x9A, +0xE0, 0xF0, 0x88, 0xA0, 0x40, 0xEA, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, 0x54, 0x9A, +0x10, 0x6B, 0x01, 0x6C, 0x60, 0xC2, 0x80, 0x18, +0x28, 0x09, 0xA0, 0xF0, 0x76, 0xA0, 0x02, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xA0, 0xF0, 0x56, 0xC0, +0x35, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, +0x10, 0x48, 0xA0, 0xF0, 0x77, 0xA0, 0x05, 0xF3, +0x53, 0xA0, 0x63, 0xEA, 0x2B, 0x61, 0x91, 0x67, +0x00, 0x18, 0xD6, 0xD8, 0x01, 0x6B, 0x4C, 0xEB, +0x18, 0x2B, 0x05, 0xF3, 0x55, 0xA0, 0x15, 0x2A, +0x05, 0xF3, 0x54, 0xA0, 0xA0, 0xF0, 0x8A, 0xA0, +0x02, 0x6D, 0x01, 0x4A, 0x05, 0xF3, 0x54, 0xC0, +0x05, 0xF3, 0x52, 0xA0, 0x08, 0x6E, 0xF1, 0x67, +0x01, 0x4A, 0x05, 0xF3, 0x52, 0xC0, 0x30, 0xF0, +0x20, 0x6A, 0x40, 0xF4, 0x50, 0x9A, 0x40, 0xEA, +0x04, 0x10, 0x91, 0x67, 0x01, 0x6D, 0x00, 0x18, +0xD0, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x00, 0x6B, 0x05, 0xF3, 0x73, 0xC2, +0x05, 0xF3, 0x75, 0xC2, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, +0x20, 0x6C, 0xE6, 0xF6, 0x08, 0x4C, 0x07, 0x6E, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xE0, 0xF0, 0x95, 0xA2, 0x11, 0x6B, 0x6B, 0xEB, +0x8C, 0xEB, 0xE0, 0xF0, 0x75, 0xC2, 0x00, 0x6B, +0x44, 0xF6, 0x70, 0xC2, 0x44, 0xF6, 0x71, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0xF5, 0x63, 0x15, 0x62, +0x14, 0xD1, 0x13, 0xD0, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xED, 0xE5, 0x67, 0x0F, 0xD5, 0xDC, 0x4F, +0x00, 0x6D, 0x16, 0xD4, 0xC5, 0x67, 0x24, 0x4C, +0x4C, 0xEF, 0x80, 0x18, 0xB2, 0x3E, 0x02, 0x67, +0x81, 0x42, 0x00, 0x6A, 0x0E, 0xD2, 0x19, 0x24, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, +0x02, 0x48, 0x00, 0x69, 0x40, 0xEA, 0x0E, 0xD2, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x40, 0x9A, 0x90, 0x67, 0x01, 0x48, 0x40, 0xEA, +0x9D, 0x67, 0x2D, 0xE4, 0x50, 0xC3, 0x01, 0x49, +0x0E, 0x93, 0xFF, 0x6A, 0x2C, 0xEA, 0x63, 0xEA, +0xF0, 0x61, 0x0F, 0x91, 0x16, 0x94, 0xFF, 0xF7, +0x1F, 0x6A, 0xDC, 0x49, 0x4C, 0xE9, 0x24, 0x4C, +0x00, 0x6D, 0x03, 0x6E, 0xF1, 0x67, 0x0D, 0xD4, +0x80, 0x18, 0xB2, 0x3E, 0x30, 0xF0, 0x20, 0x6B, +0x16, 0x94, 0xC0, 0xF3, 0x40, 0x9B, 0x00, 0x68, +0x22, 0x4C, 0x40, 0xEA, 0x10, 0x6B, 0x4C, 0xEB, +0x60, 0x23, 0x0D, 0x94, 0xB0, 0x67, 0xF1, 0x67, +0x30, 0x6E, 0x80, 0x18, 0xB2, 0x3E, 0x22, 0x67, +0x01, 0x4A, 0x01, 0x68, 0x24, 0x22, 0x30, 0xF0, +0x20, 0x6C, 0xC0, 0xF3, 0x40, 0x9C, 0x87, 0x41, +0x01, 0x4C, 0x40, 0xEA, 0x0D, 0x49, 0x0D, 0xD1, +0x10, 0xD2, 0x00, 0x69, 0x15, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, 0x0D, 0x94, +0x40, 0xEA, 0x02, 0x72, 0x02, 0x61, 0x20, 0x48, +0x03, 0x10, 0x04, 0x72, 0x03, 0x61, 0x40, 0x48, +0xFF, 0x6A, 0x4C, 0xE8, 0xFF, 0x6A, 0x01, 0x49, +0x4C, 0xE9, 0x0D, 0x92, 0x04, 0x4A, 0x0D, 0xD2, +0x10, 0x93, 0x63, 0xE9, 0xE8, 0x61, 0x0F, 0x92, +0x16, 0x94, 0xFF, 0xF7, 0x1F, 0x6F, 0xDC, 0x4A, +0x24, 0x4C, 0x01, 0x6D, 0xDD, 0x6E, 0x4C, 0xEF, +0x80, 0x18, 0xB2, 0x3E, 0x22, 0x67, 0x01, 0x4A, +0x24, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x40, 0x9A, 0x87, 0x41, 0x05, 0x4C, 0x40, 0xEA, +0x11, 0x49, 0x0C, 0xD1, 0x0D, 0xD2, 0x00, 0x69, +0x15, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x40, 0x9A, 0x0C, 0x94, 0x40, 0xEA, 0x02, 0x72, +0x02, 0x61, 0x02, 0x48, 0x03, 0x10, 0x04, 0x72, +0x03, 0x61, 0x04, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, +0x0C, 0x94, 0x01, 0x49, 0xFF, 0x6A, 0x04, 0x4C, +0x4C, 0xE9, 0x0C, 0xD4, 0x0D, 0x92, 0x43, 0xE9, +0xE8, 0x61, 0x00, 0x6B, 0x7E, 0x10, 0x0C, 0x94, +0x49, 0xE4, 0x64, 0xF6, 0x60, 0xA2, 0x0E, 0x94, +0x8E, 0xEB, 0x71, 0x2B, 0x64, 0xF6, 0x50, 0xA2, +0x0F, 0x2A, 0x0E, 0x28, 0x0C, 0x93, 0x04, 0x02, +0x74, 0x34, 0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, +0x10, 0x4B, 0x84, 0xF6, 0x18, 0x4C, 0x91, 0xE3, +0x0E, 0x93, 0x75, 0xE2, 0x01, 0x6B, 0x1B, 0x10, +0x0C, 0x94, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x4D, 0xE4, 0x64, 0xF6, 0x70, 0xA3, +0x0C, 0xEB, 0xE8, 0x2B, 0x00, 0xF1, 0x78, 0xA2, +0x04, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, +0xE1, 0x2A, 0x4D, 0x10, 0xE0, 0xA2, 0xC0, 0xA4, +0x01, 0x4A, 0x01, 0x4C, 0xEE, 0xEE, 0x01, 0x5E, +0xD8, 0x67, 0xCB, 0xEE, 0xCC, 0xEB, 0xAA, 0xEA, +0xF5, 0x61, 0x01, 0x73, 0x40, 0x61, 0x30, 0xF0, +0x20, 0x69, 0xC6, 0xF5, 0x10, 0x49, 0xE0, 0xF0, +0xC7, 0xA1, 0x0C, 0x6A, 0x43, 0xF4, 0x48, 0xC1, +0x0C, 0x6C, 0x00, 0x6D, 0x00, 0x18, 0x70, 0xCC, +0xC3, 0xF3, 0x6C, 0xA1, 0x21, 0x6A, 0xC3, 0xF3, +0x8E, 0xA1, 0x4B, 0xEA, 0x6C, 0xEA, 0x04, 0x6B, +0x8C, 0xEB, 0xC3, 0xF3, 0x4C, 0xC1, 0x04, 0x2B, +0xFE, 0x4B, 0x4C, 0xEB, 0xC3, 0xF3, 0x6C, 0xC1, +0x30, 0xF0, 0x20, 0x69, 0xC6, 0xF5, 0x10, 0x49, +0x67, 0xF7, 0x78, 0xA1, 0x02, 0x6A, 0xE0, 0xF0, +0x87, 0xA1, 0x4B, 0xEA, 0x6C, 0xEA, 0x67, 0xF7, +0x58, 0xC1, 0x00, 0x18, 0xEC, 0xDB, 0xE0, 0xF0, +0x87, 0xA1, 0x00, 0x18, 0xDB, 0xDB, 0xE0, 0xF0, +0x87, 0xA1, 0x00, 0x18, 0xF3, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF1, 0x54, 0x9A, 0x55, 0x6B, +0x60, 0xC2, 0x24, 0xF3, 0x64, 0xA1, 0x01, 0x6A, +0x6D, 0xEA, 0x24, 0xF3, 0x44, 0xC1, 0x0C, 0x92, +0x01, 0x4A, 0x0C, 0xD2, 0x0C, 0x93, 0xFF, 0x6A, +0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x0C, 0xD3, +0xC6, 0xF5, 0x10, 0x4A, 0x44, 0xF6, 0x70, 0xA2, +0x0C, 0x94, 0x63, 0xEC, 0x7F, 0xF7, 0x17, 0x61, +0x15, 0x97, 0x14, 0x91, 0x13, 0x90, 0x0B, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0xAB, 0xD2, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x10, 0x4B, 0x00, 0xF1, 0x99, 0xA3, +0xFF, 0x6D, 0x91, 0xE2, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x48, 0x9A, 0x9C, 0x34, 0xC4, 0x44, +0x49, 0xE4, 0x40, 0xA2, 0x44, 0xF6, 0x50, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, 0x4C, 0x9A, +0x49, 0xE4, 0x40, 0xA2, 0x44, 0xF6, 0x51, 0xC3, +0x44, 0xF6, 0x50, 0xA3, 0x0A, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF3, 0x64, 0x9A, 0x01, 0x6F, +0x40, 0xA3, 0xAC, 0xEA, 0xED, 0xEA, 0xAC, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, +0x48, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0x49, 0xE6, +0x40, 0x9A, 0x2B, 0xF4, 0x44, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF3, 0x68, 0x9B, 0x6E, 0xEA, +0x0B, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, +0x64, 0x9A, 0xFF, 0x6D, 0x02, 0x6E, 0x40, 0xA3, +0xAC, 0xEA, 0xCD, 0xEA, 0xAC, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, 0x6C, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x2B, 0xF4, 0x10, 0x4A, +0xA7, 0x42, 0x6D, 0xE4, 0x09, 0x4D, 0xC0, 0xA3, +0x01, 0x4B, 0xC0, 0xC2, 0x01, 0x4A, 0xAA, 0xEA, +0xFA, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, +0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x4B, 0xF4, +0x00, 0x4A, 0xA7, 0x42, 0x6D, 0xE4, 0x09, 0x4D, +0xC0, 0xA3, 0x01, 0x4B, 0xC0, 0xC2, 0x01, 0x4A, +0xAA, 0xEA, 0xFA, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF2, 0x64, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x6B, 0xF4, 0x00, 0x4A, 0xA7, 0x42, 0x6D, 0xE4, +0x01, 0x4D, 0xC0, 0xA3, 0x01, 0x4B, 0xC0, 0xC2, +0x01, 0x4A, 0xAA, 0xEA, 0xFA, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF2, 0x50, 0x9A, 0x51, 0xE4, +0x00, 0x6A, 0x0A, 0x10, 0xE0, 0xA3, 0x01, 0x4B, +0xCA, 0xEB, 0xE0, 0xC5, 0x01, 0x4D, 0xFA, 0x61, +0x01, 0x4A, 0x10, 0x72, 0x20, 0x4C, 0x0C, 0x60, +0x54, 0x35, 0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, +0x10, 0x4B, 0x84, 0xF6, 0x18, 0x4D, 0xC7, 0x44, +0xB5, 0xE3, 0x19, 0x4E, 0x64, 0x67, 0xEA, 0x17, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, +0x4C, 0xEC, 0x0E, 0x24, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF2, 0x94, 0x9B, 0x80, 0x6D, 0xAB, 0xED, +0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, +0x60, 0xC4, 0x80, 0x18, 0xB7, 0x13, 0x1B, 0x10, +0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, +0xE0, 0xF0, 0xC7, 0xA0, 0x0C, 0x6A, 0x0C, 0x6C, +0x00, 0x6D, 0x43, 0xF4, 0x48, 0xC0, 0x00, 0x18, +0x70, 0xCC, 0xC3, 0xF3, 0x6C, 0xA0, 0x21, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x67, 0xF7, 0x78, 0xA0, +0xC3, 0xF3, 0x4C, 0xC0, 0x02, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x67, 0xF7, 0x58, 0xC0, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xE0, 0xF0, 0x95, 0xA2, +0x41, 0x6B, 0x6B, 0xEB, 0x8C, 0xEB, 0xE0, 0xF0, +0x75, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x48, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xCB, 0xF3, +0x04, 0x4C, 0x00, 0x6D, 0x5C, 0x6E, 0x40, 0xEA, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF6, 0x65, 0xA2, +0x40, 0x6A, 0x6C, 0xEA, 0x02, 0x22, 0x80, 0x18, +0x1E, 0x14, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0x27, 0x44, 0x09, 0x49, +0xCB, 0xF3, 0x16, 0x48, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x40, 0x9A, 0x91, 0x67, 0x40, 0xEA, +0x60, 0xA0, 0x6E, 0xEA, 0x02, 0x22, 0x00, 0x6A, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x01, 0x48, +0xCB, 0xF3, 0x1A, 0x4A, 0x4A, 0xE8, 0x01, 0x49, +0xED, 0x61, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x40, 0x98, +0x24, 0x67, 0x07, 0x4C, 0x10, 0x4C, 0x40, 0xEA, +0x04, 0xD2, 0xC0, 0xF3, 0x40, 0x98, 0x87, 0x41, +0x0F, 0x4C, 0x40, 0xEA, 0x04, 0x94, 0x09, 0x97, +0x08, 0x91, 0x80, 0x33, 0x4D, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0xCB, 0xF3, 0x5A, 0xAA, 0x07, 0x90, +0x4E, 0xEB, 0x01, 0x5B, 0x58, 0x67, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xCB, 0xF3, 0x4A, 0xAA, 0x08, 0xD4, 0x00, 0x68, +0x11, 0x2A, 0x28, 0x10, 0x08, 0x94, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, 0x1C, 0x4C, +0x11, 0xE4, 0x25, 0xE0, 0x40, 0xEA, 0x04, 0xF6, +0x6E, 0xA1, 0x6E, 0xEA, 0x1B, 0x2A, 0x01, 0x48, +0xFF, 0x6A, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x69, +0xC6, 0xF5, 0x10, 0x49, 0xE4, 0xF5, 0x5A, 0xA9, +0x43, 0xE8, 0xE8, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF3, 0x6C, 0x9A, 0xFF, 0x6C, 0x40, 0x6D, +0x40, 0xA3, 0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, +0x40, 0xC3, 0x00, 0x6A, 0x04, 0xF6, 0x4C, 0xC9, +0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x04, 0xF6, 0x64, 0xAA, 0x01, 0x4B, 0x04, 0xF6, +0x64, 0xCA, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0xF6, +0xA4, 0xAA, 0x23, 0xF3, 0x6C, 0x9B, 0xA2, 0x35, +0x6D, 0xE4, 0xA0, 0xC3, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF3, 0x70, 0x9B, 0x04, 0xF6, 0x44, 0xA2, +0x71, 0xE4, 0x40, 0xC4, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x54, 0x9A, 0x32, 0x6B, 0x01, 0x6C, +0x60, 0xC2, 0x80, 0x18, 0x28, 0x09, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x00, 0x68, 0x08, 0xD4, +0x12, 0x10, 0x08, 0x94, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x40, 0x9A, 0x1C, 0x4C, 0x11, 0xE4, +0x25, 0xE0, 0x40, 0xEA, 0x24, 0xF6, 0x6E, 0xA1, +0x6E, 0xEA, 0x02, 0x22, 0x00, 0x6A, 0x21, 0x10, +0x01, 0x48, 0xFF, 0x6A, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x69, 0xC6, 0xF5, 0x10, 0x49, 0xE4, 0xF5, +0x5C, 0xA9, 0x43, 0xE8, 0xE6, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF3, 0x6C, 0x9A, 0xFF, 0x6C, +0x80, 0x6D, 0x40, 0xA3, 0xAB, 0xED, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF1, 0x54, 0x9A, 0x30, 0x6B, +0x01, 0x6C, 0x60, 0xC2, 0x80, 0x18, 0x28, 0x09, +0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0xC6, 0xF5, 0x10, 0x49, 0x00, 0xF1, 0x0D, 0xA1, +0x00, 0x18, 0xAB, 0xD2, 0xE0, 0xF0, 0x77, 0xA1, +0x01, 0xE2, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, +0x48, 0x9A, 0x1C, 0x30, 0x49, 0xE0, 0x40, 0xAA, +0xE4, 0xF5, 0x54, 0xC9, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF3, 0x54, 0x9A, 0x49, 0xE0, 0x40, 0xAA, +0xE4, 0xF5, 0x56, 0xC9, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF3, 0x4C, 0x9A, 0x49, 0xE0, 0x40, 0xAA, +0xE4, 0xF5, 0x58, 0xC9, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF3, 0x58, 0x9A, 0x49, 0xE0, 0x40, 0xAA, +0xE4, 0xF5, 0x5A, 0xC9, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF3, 0x50, 0x9A, 0x49, 0xE0, 0x40, 0xAA, +0xE4, 0xF5, 0x5C, 0xC9, 0x80, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x08, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, 0x48, 0x9A, +0x41, 0xE0, 0x40, 0x98, 0x04, 0xF6, 0x40, 0xD9, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0xC6, 0xF5, 0x10, 0x49, 0x00, 0xF1, 0x0E, 0xA1, +0x00, 0x18, 0xAB, 0xD2, 0x01, 0xE2, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x50, 0x9A, 0x1C, 0x30, +0x04, 0xD0, 0x49, 0xE0, 0x80, 0xA2, 0x30, 0xF0, +0x20, 0x6A, 0x04, 0x93, 0x03, 0xF2, 0x4C, 0x9A, +0xFF, 0x68, 0x0C, 0xEC, 0x49, 0xE3, 0xA0, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x58, 0x9A, +0x0C, 0xED, 0x49, 0xE3, 0xC0, 0xA2, 0x0C, 0xEE, +0x80, 0x18, 0xC3, 0x06, 0x04, 0x93, 0x38, 0x4A, +0x30, 0xF0, 0x20, 0x6C, 0x69, 0xE2, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF3, 0x6C, 0x9B, 0x43, 0xF3, +0x90, 0x9C, 0x6D, 0xE2, 0x60, 0xA3, 0x91, 0xE2, +0x80, 0xA4, 0x0C, 0xEB, 0x60, 0x33, 0x8C, 0xE8, +0x61, 0xE0, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, +0x68, 0x9B, 0x04, 0xF6, 0x04, 0xC9, 0x00, 0xF1, +0x0F, 0xA1, 0x6D, 0xE2, 0x60, 0xA3, 0x04, 0xF6, +0x66, 0xC1, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF3, +0x7C, 0x9B, 0x6D, 0xE2, 0x60, 0xA3, 0x04, 0xF6, +0x67, 0xC1, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, +0x60, 0x9B, 0x6D, 0xE2, 0x60, 0xA3, 0x04, 0xF6, +0x68, 0xC1, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, +0x64, 0x9B, 0x6D, 0xE2, 0x60, 0xA3, 0x04, 0xF6, +0x69, 0xC1, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, +0x68, 0x9B, 0x69, 0xE2, 0x40, 0xAA, 0x04, 0xF6, +0x4A, 0xC9, 0x00, 0x18, 0xAB, 0xD2, 0xE4, 0xF5, +0x9A, 0xA9, 0x01, 0xE2, 0x1C, 0x30, 0x00, 0x6B, +0x12, 0x2C, 0x13, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x48, 0x9A, 0x49, 0xE0, 0x69, 0xE2, +0xA0, 0xA2, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x49, 0xE3, 0x04, 0xF6, 0xAE, 0xC2, +0x01, 0x4B, 0xFF, 0x6A, 0x4C, 0xEB, 0x83, 0xEB, +0xED, 0x61, 0x30, 0xF0, 0x20, 0x69, 0xC6, 0xF5, +0x10, 0x49, 0x00, 0xF1, 0x10, 0xA1, 0x00, 0x18, +0xAB, 0xD2, 0xE4, 0xF5, 0x9C, 0xA9, 0x01, 0xE2, +0x1C, 0x30, 0x00, 0x6B, 0x11, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x48, 0x9A, 0x49, 0xE0, +0x69, 0xE2, 0xA0, 0xA2, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x49, 0xE3, 0x24, 0xF6, +0xAE, 0xC2, 0x01, 0x4B, 0xFF, 0x6A, 0x4C, 0xEB, +0x83, 0xEB, 0xED, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xCB, 0xF3, 0x6C, 0xAA, 0x00, 0x6A, 0x03, 0x10, +0x01, 0x4A, 0xFF, 0x6C, 0x8C, 0xEA, 0x63, 0xEA, +0xFB, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD0, 0xFF, 0x68, 0x0C, 0xEC, 0x23, 0x24, +0x80, 0x18, 0xA7, 0x14, 0x80, 0x18, 0xCD, 0x14, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, +0xE0, 0xF0, 0x97, 0xA3, 0x80, 0x6A, 0x4B, 0xEA, +0x8C, 0xEA, 0x0C, 0xEA, 0x1A, 0x22, 0x04, 0xF6, +0x60, 0x9B, 0xE0, 0xF3, 0x08, 0x6E, 0x01, 0x6A, +0x78, 0xEE, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, 0x30, 0x6C, +0x0A, 0xF2, 0x09, 0x4C, 0x00, 0x6D, 0x01, 0x6F, +0x12, 0xEE, 0x40, 0xEA, 0x06, 0x10, 0x10, 0xF0, +0x30, 0x6C, 0x0A, 0xF2, 0x09, 0x4C, 0x00, 0x18, +0x72, 0xDA, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF3, 0x6C, 0x9A, 0xFF, 0x6C, 0x30, 0xF0, +0x20, 0x69, 0x40, 0xA3, 0xC6, 0xF5, 0x10, 0x49, +0x8C, 0xEA, 0x20, 0x6C, 0x8D, 0xEA, 0xFF, 0x6C, +0x8C, 0xEA, 0x40, 0xC3, 0x00, 0xF1, 0x0E, 0xA1, +0x00, 0x18, 0xAB, 0xD2, 0x01, 0xE2, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x50, 0x9A, 0x1C, 0x30, +0x49, 0xE0, 0x80, 0xA2, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF2, 0x4C, 0x9A, 0x49, 0xE0, 0xA0, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x58, 0x9A, +0x49, 0xE0, 0xC0, 0xA2, 0xFF, 0x6A, 0x4C, 0xEC, +0x4C, 0xEE, 0x4C, 0xED, 0x80, 0x18, 0xC3, 0x06, +0x87, 0x40, 0x00, 0x6D, 0x29, 0x4C, 0x05, 0xD2, +0x80, 0x18, 0x79, 0x0D, 0x05, 0x92, 0x38, 0x4A, +0x09, 0xE2, 0x82, 0x67, 0x30, 0xF0, 0x20, 0x68, +0x04, 0xD2, 0x80, 0x18, 0x74, 0x14, 0x20, 0xF4, +0x54, 0x98, 0x04, 0x95, 0x00, 0xF1, 0xCE, 0xA1, +0x00, 0x6C, 0x40, 0xEA, 0x20, 0xF4, 0x54, 0x98, +0x04, 0x95, 0x00, 0xF1, 0xCE, 0xA1, 0x11, 0x6C, +0x40, 0xEA, 0x00, 0x18, 0xB5, 0xD2, 0x28, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, 0x4C, 0x9A, +0xFF, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x40, 0xA2, +0x00, 0x6C, 0xFF, 0x6D, 0x4C, 0xEB, 0xA0, 0xF2, +0x50, 0x98, 0x04, 0xD3, 0x26, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, +0x40, 0xEA, 0x01, 0x72, 0x1B, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF1, 0x8E, 0xA1, 0xA0, 0xF2, +0x54, 0x9A, 0x01, 0x6D, 0x08, 0x6E, 0x00, 0x6F, +0x40, 0xEA, 0xA0, 0xF2, 0x50, 0x98, 0x04, 0x95, +0x00, 0x6C, 0x26, 0x6E, 0x40, 0xEA, 0x0A, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x54, 0x9A, +0x00, 0xF1, 0x8E, 0xA1, 0x01, 0x6D, 0x08, 0x6E, +0x00, 0x6F, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xE0, 0xF0, 0x7C, 0xA2, +0x02, 0x73, 0x07, 0x61, 0x00, 0xF1, 0x8E, 0xA2, +0x05, 0x92, 0xFF, 0x6D, 0x4C, 0xED, 0x80, 0x18, +0x1D, 0x0A, 0x30, 0xF0, 0x20, 0x6A, 0x86, 0xF6, +0x97, 0xA2, 0xFF, 0x68, 0x96, 0x34, 0x00, 0x18, +0x7F, 0xCD, 0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xF2, +0x54, 0x9A, 0x40, 0xEA, 0x0A, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF2, 0x7C, 0x9A, 0x20, 0x6C, +0x40, 0xA3, 0x0C, 0xEA, 0x8D, 0xEA, 0x0C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x04, 0xF6, 0x6C, 0xAA, 0x01, 0x4B, +0x04, 0xF6, 0x6C, 0xCA, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0xC2, 0xF5, 0xA8, 0x9B, 0xC2, 0xF5, 0x08, 0x4B, +0xFF, 0x6A, 0x05, 0xD5, 0xA1, 0x9B, 0x64, 0xAB, +0x4C, 0xEC, 0x06, 0xD5, 0xBD, 0x67, 0x6E, 0xCD, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, +0xE0, 0xF0, 0xD5, 0xA3, 0x40, 0x6D, 0xCC, 0xED, +0x4C, 0xED, 0x72, 0x25, 0xC0, 0xF0, 0xC4, 0xA3, +0x7F, 0x6D, 0xCC, 0xED, 0x4C, 0xED, 0x42, 0x25, +0xC0, 0xF0, 0xA5, 0xA3, 0x0F, 0x6B, 0xAC, 0xEB, +0x4C, 0xEB, 0x3C, 0x23, 0x30, 0xF0, 0x20, 0x6B, +0x06, 0xF4, 0x79, 0xA3, 0x37, 0x2B, 0xBD, 0x67, +0x84, 0x33, 0x6D, 0xE5, 0xAA, 0xAB, 0x1F, 0xF7, +0x00, 0x6E, 0x62, 0x45, 0xCC, 0xEB, 0x02, 0xF0, +0x00, 0x73, 0x01, 0x60, 0x0C, 0x2B, 0x5D, 0x67, +0x84, 0x34, 0x91, 0xE2, 0x30, 0xF0, 0x20, 0x6A, +0x6A, 0xAC, 0x23, 0xF1, 0x4C, 0x9A, 0x49, 0xE3, +0x60, 0xA2, 0xFF, 0x6A, 0x06, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF3, 0x6C, 0x9B, 0x75, 0xE5, +0x60, 0xA5, 0x6C, 0xEA, 0x7D, 0x67, 0x50, 0xC3, +0x50, 0xA3, 0x14, 0x22, 0x70, 0xA3, 0xFF, 0x6A, +0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0xE4, 0xF5, 0x94, 0xAA, 0x7A, 0xEC, +0x01, 0x2B, 0xE5, 0xE8, 0x12, 0xEB, 0xE4, 0xF5, +0x74, 0xCA, 0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x06, 0xF4, 0x79, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xE4, 0xF5, 0x94, 0xAA, +0x64, 0x6B, 0x7B, 0xEC, 0x01, 0x2B, 0xE5, 0xE8, +0x44, 0xF6, 0x6E, 0xAA, 0x12, 0xEC, 0x63, 0xEC, +0x01, 0x4B, 0x18, 0x60, 0x04, 0xF6, 0x6C, 0xAA, +0xE4, 0xF5, 0x58, 0xAA, 0x4E, 0xEB, 0x0B, 0x2B, +0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, +0x54, 0x9A, 0x31, 0x6B, 0x01, 0x6C, 0x60, 0xC2, +0x80, 0x18, 0x28, 0x09, 0x09, 0x10, 0x80, 0x18, +0x41, 0x15, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x00, 0x6B, 0x44, 0xF6, 0x6E, 0xCA, +0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x00, 0x6B, 0x42, 0xF5, 0x63, 0xC2, 0x42, 0xF5, +0x64, 0xC2, 0x42, 0xF5, 0x62, 0xC2, 0x00, 0x6B, +0x42, 0xF5, 0x60, 0xCA, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0xD1, 0x06, 0xD0, 0xFF, 0x6A, +0xCC, 0xEA, 0x08, 0xD4, 0x03, 0xD2, 0xE1, 0x9C, +0x00, 0x68, 0x00, 0x69, 0xA3, 0xEF, 0x40, 0x9C, +0x00, 0xD0, 0x01, 0xD1, 0x0A, 0x61, 0xBB, 0xEF, +0x01, 0x2D, 0xE5, 0xE8, 0x00, 0x69, 0x00, 0xD1, +0x12, 0xEB, 0x01, 0xD3, 0xB8, 0xEB, 0x12, 0xEB, +0x7F, 0xE7, 0xC5, 0x67, 0x00, 0x6B, 0x01, 0x6C, +0x00, 0x6D, 0x0C, 0x10, 0xC4, 0x30, 0xC3, 0xE8, +0x64, 0x33, 0xD0, 0x67, 0x18, 0x67, 0x6D, 0xE0, +0x84, 0x30, 0x83, 0xE8, 0x38, 0x67, 0xA4, 0x34, +0x95, 0xE1, 0x90, 0x67, 0x01, 0x53, 0x02, 0x60, +0x07, 0x2B, 0x06, 0x26, 0xE3, 0xEB, 0xEE, 0x61, +0x6A, 0xEF, 0x02, 0x61, 0x43, 0xEE, 0xEA, 0x61, +0x63, 0xEF, 0x18, 0x61, 0xEA, 0xEB, 0x02, 0x61, +0xC3, 0xEA, 0x14, 0x61, 0x00, 0x91, 0xC3, 0xE2, +0x03, 0xEA, 0x7F, 0xE7, 0x50, 0x67, 0x18, 0x67, +0x1F, 0xE7, 0x81, 0xE1, 0x23, 0xE8, 0x01, 0x91, +0x00, 0xD0, 0x18, 0x67, 0xA5, 0xE1, 0x21, 0xE0, +0x02, 0xD0, 0x04, 0xD1, 0x00, 0x90, 0x02, 0x91, +0x00, 0xD0, 0x01, 0xD1, 0x86, 0x30, 0xC0, 0xF7, +0xA0, 0x31, 0x0D, 0xE9, 0x19, 0x65, 0xA6, 0x31, +0x98, 0x67, 0x11, 0x67, 0x8D, 0xE8, 0x02, 0xD1, +0xB1, 0x67, 0x06, 0x20, 0xC0, 0xF7, 0x60, 0x30, +0xC6, 0x36, 0x0D, 0xEE, 0x66, 0x33, 0xD4, 0x17, +0x03, 0x93, 0x01, 0x73, 0x05, 0x61, 0x00, 0x94, +0x01, 0x95, 0x08, 0x90, 0x80, 0xD8, 0xA1, 0xD8, +0x07, 0x91, 0x06, 0x90, 0x04, 0x63, 0x20, 0xE8, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x69, 0x40, 0xF4, 0x4C, 0x99, +0xFF, 0x68, 0x8C, 0xE8, 0x0D, 0xD5, 0x90, 0x67, +0x01, 0x6D, 0x40, 0xEA, 0x06, 0xD2, 0x40, 0xF4, +0x4C, 0x99, 0x90, 0x67, 0x00, 0x6D, 0x40, 0xEA, +0x04, 0xD2, 0x0D, 0x95, 0x06, 0x92, 0x04, 0x04, +0x00, 0x6E, 0x05, 0xD2, 0x80, 0x18, 0xEE, 0x15, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF3, 0x50, 0x9A, 0xFF, 0x6B, 0x80, 0xA2, +0x00, 0xF6, 0x80, 0x34, 0x00, 0xF6, 0x83, 0x34, +0x00, 0x54, 0x25, 0x60, 0xA0, 0xA2, 0x7F, 0x6C, +0xAC, 0xEC, 0x40, 0x6D, 0xAD, 0xEC, 0x6C, 0xEC, +0x80, 0xC2, 0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF3, +0x94, 0x9C, 0x3F, 0x6D, 0x80, 0xA4, 0x30, 0xF0, +0x20, 0x6C, 0x63, 0xF3, 0x98, 0x9C, 0x80, 0xA4, +0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF0, 0x84, 0x9C, +0x80, 0xA4, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF0, +0x88, 0x9C, 0x80, 0xA4, 0x80, 0xA2, 0x6C, 0xEC, +0xAD, 0xEC, 0x6C, 0xEC, 0x80, 0xC2, 0x80, 0xA2, +0xBF, 0x6B, 0x8C, 0xEB, 0x60, 0xC2, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x7C, 0x9B, +0xFF, 0x6A, 0x4C, 0xEC, 0xC0, 0xA3, 0x4C, 0xED, +0x15, 0x26, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, +0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF3, +0x80, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xA3, 0xF3, 0x7C, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x7C, 0xDA, 0x20, 0xE8, 0x80, 0xC3, 0x0B, 0x25, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0x84, 0x9B, +0x80, 0x6D, 0xAB, 0xED, 0x60, 0xA4, 0x4C, 0xEB, +0xAE, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0x64, 0x9B, +0x30, 0xF0, 0x20, 0x69, 0x06, 0xF4, 0x5C, 0x99, +0xE0, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, +0x68, 0x9B, 0x50, 0x32, 0x6D, 0xE2, 0xE0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0x6C, 0x9B, +0x6D, 0xE2, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF3, 0x70, 0x9B, 0x6D, 0xE2, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF3, 0x74, 0x9B, +0x69, 0xE2, 0xC0, 0xDA, 0x06, 0xF4, 0x1C, 0x99, +0x01, 0x48, 0x00, 0xF1, 0x00, 0x70, 0x06, 0xF4, +0x1C, 0xD9, 0x05, 0x60, 0x00, 0xF2, 0x00, 0x6A, +0x4E, 0xE8, 0x06, 0x20, 0x0B, 0x10, 0x10, 0x6C, +0x01, 0x6D, 0x80, 0x18, 0x4E, 0x16, 0x06, 0x10, +0x11, 0x6C, 0x01, 0x6D, 0x80, 0x18, 0x4E, 0x16, +0x06, 0xF4, 0x1C, 0xD9, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x00, 0x6A, 0x7D, 0x67, +0x04, 0xD2, 0x05, 0xD2, 0x4C, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xFF, 0xF7, +0x1F, 0x6F, 0x8C, 0xEF, 0x88, 0xF1, 0x96, 0xA2, +0x0F, 0x6B, 0x04, 0x05, 0x8C, 0xEB, 0x9D, 0x67, +0x70, 0xC4, 0x88, 0xF1, 0x78, 0xA2, 0x0A, 0x6E, +0x72, 0xC4, 0x88, 0xF1, 0x79, 0xA2, 0x73, 0xC4, +0x48, 0xF2, 0x74, 0xA2, 0x48, 0xF2, 0x55, 0xA2, +0x76, 0xC4, 0x57, 0xC4, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xF4, 0x50, 0x9A, 0x25, 0x6C, 0x40, 0xEA, +0x09, 0x97, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x69, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, 0x10, 0x49, +0x03, 0xF4, 0x08, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xA0, 0x9B, 0x48, 0xF4, 0xDA, 0xA9, 0xA3, 0xF0, +0x10, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF4, 0x08, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xA0, 0x9B, 0x48, 0xF4, 0xDC, 0xA9, 0xC3, 0xF0, +0x0C, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF4, 0x08, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xA0, 0x9B, 0x48, 0xF4, 0xDE, 0xA9, 0xA8, 0xF1, +0x10, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF4, 0x08, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0x68, 0xF4, 0xC0, 0xA9, 0xA0, 0x9B, 0xC8, 0xF1, +0x0C, 0x6C, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x00, 0x6A, 0x0B, 0xD7, +0xE0, 0xAE, 0x1F, 0xF7, 0x00, 0x6B, 0xEC, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x09, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0xE0, 0xAE, 0xA3, 0xF0, +0x78, 0x9B, 0x6D, 0xE7, 0xE0, 0xA4, 0xE0, 0xC3, +0x07, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, +0x7C, 0x9B, 0x7D, 0xE7, 0x60, 0xA4, 0x60, 0xC7, +0x01, 0x4A, 0xFF, 0x6B, 0x6C, 0xEA, 0x03, 0x72, +0x02, 0x4E, 0x01, 0x4C, 0xE1, 0x61, 0x25, 0x67, +0x00, 0x68, 0x0B, 0x92, 0xC0, 0x99, 0x01, 0x6D, +0x0D, 0xE2, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x80, 0xAB, 0xAB, 0xED, 0x02, 0x48, +0x40, 0xEA, 0x16, 0x70, 0x04, 0x49, 0xF1, 0x61, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0xD1, +0x08, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x68, 0xF4, 0x66, 0xA2, 0x7C, 0x2B, +0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6D, 0x30, 0xF0, +0x20, 0x69, 0x68, 0xF4, 0x75, 0xC2, 0x68, 0xF4, +0x76, 0xC2, 0x6F, 0xF3, 0x04, 0x4D, 0x6F, 0xF2, +0x0C, 0x49, 0x00, 0x6A, 0x00, 0x6B, 0x60, 0xDD, +0x30, 0xF0, 0x20, 0x6C, 0xB1, 0xF0, 0x65, 0x42, +0xC6, 0xF5, 0x10, 0x4C, 0x6C, 0x33, 0x6D, 0xE4, +0x04, 0x4B, 0x04, 0xD3, 0x62, 0xF1, 0x68, 0x42, +0x68, 0x33, 0x6D, 0xE4, 0x04, 0x4B, 0x03, 0xD3, +0x06, 0x6B, 0x78, 0xEA, 0x01, 0xD1, 0x00, 0x68, +0x12, 0xEB, 0x6D, 0xE4, 0x09, 0xF0, 0x0D, 0x4B, +0x04, 0x96, 0x00, 0x6C, 0x80, 0xDE, 0x03, 0x96, +0x80, 0xCE, 0x44, 0x36, 0xD9, 0xE0, 0xC4, 0xF2, +0x04, 0x4E, 0x30, 0xF0, 0x20, 0x6C, 0xC4, 0x36, +0xC6, 0xF5, 0x10, 0x4C, 0xD1, 0xE4, 0x04, 0x4C, +0x05, 0xD4, 0x01, 0x94, 0x00, 0x6E, 0x00, 0xD6, +0x02, 0xD4, 0x05, 0x96, 0x01, 0x6C, 0x44, 0x37, +0x80, 0xC6, 0x00, 0x94, 0x1D, 0xE7, 0xE4, 0x37, +0xFD, 0xE4, 0x30, 0xF0, 0x20, 0x6E, 0xF0, 0x34, +0xC6, 0xF5, 0x10, 0x4E, 0xF0, 0x37, 0x91, 0xE6, +0xFD, 0xE6, 0x88, 0xF4, 0x0C, 0x4C, 0x08, 0xF5, +0x0C, 0x4F, 0x06, 0xD2, 0x02, 0x92, 0x00, 0x6E, +0xC0, 0xCC, 0x02, 0x4C, 0x4A, 0xEC, 0xC0, 0xCF, +0x02, 0x4F, 0xF8, 0x61, 0x00, 0x94, 0x06, 0x92, +0x01, 0x4C, 0x00, 0xD4, 0x05, 0x94, 0x01, 0x4C, +0x05, 0xD4, 0x02, 0x94, 0x10, 0x4C, 0x02, 0xD4, +0x00, 0x94, 0x02, 0x74, 0xD6, 0x61, 0xC0, 0xC3, +0xC1, 0xC3, 0xC2, 0xC3, 0x04, 0x96, 0x03, 0x94, +0x01, 0x48, 0x04, 0x4E, 0x04, 0xD6, 0x01, 0x96, +0x02, 0x4C, 0x02, 0x70, 0x20, 0x4E, 0x03, 0xD4, +0x03, 0x4B, 0x01, 0xD6, 0xB1, 0x61, 0x01, 0x4A, +0x02, 0x72, 0x04, 0x4D, 0x40, 0x49, 0x92, 0x61, +0x09, 0x91, 0x08, 0x90, 0x05, 0x63, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF4, 0xF0, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xEE, 0xF6, 0x08, 0x4C, 0x00, 0x6D, 0x18, 0x6E, +0x80, 0x18, 0x9C, 0x4E, 0x30, 0xF0, 0x20, 0x6B, +0x01, 0xF4, 0x00, 0x6C, 0xC6, 0xF5, 0x10, 0x4B, +0x4C, 0xEC, 0x88, 0xF5, 0x5C, 0xDB, 0x82, 0x32, +0x4A, 0x32, 0x02, 0x72, 0x0A, 0x60, 0x03, 0x6C, +0x4E, 0xEC, 0x04, 0x24, 0x01, 0x72, 0x02, 0x6A, +0x05, 0x60, 0x06, 0x10, 0x68, 0xF4, 0x85, 0xC3, +0x03, 0x10, 0x01, 0x6A, 0x68, 0xF4, 0x45, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, 0x78, 0x9B, +0x88, 0xF5, 0x9C, 0x9A, 0x8C, 0xEB, 0x62, 0x33, +0x62, 0x33, 0x68, 0xF4, 0x64, 0xC2, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x00, 0x68, 0x05, 0xD5, +0x04, 0xD4, 0x05, 0x92, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF4, 0x10, 0x4B, 0xE0, 0x9B, 0xC0, 0xA2, +0x30, 0xF0, 0x20, 0x69, 0xEE, 0xF6, 0x08, 0x49, +0x91, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x9C, 0x4E, +0x04, 0x93, 0x91, 0x67, 0x01, 0x6D, 0x40, 0xDB, +0x05, 0x92, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, +0x10, 0x4B, 0xE0, 0x9B, 0xC0, 0xA2, 0x01, 0x48, +0x80, 0x18, 0x9C, 0x4E, 0x04, 0x93, 0x41, 0xDB, +0xFF, 0x6A, 0x4C, 0xE8, 0x05, 0x92, 0x08, 0x4B, +0x03, 0x70, 0x01, 0x4A, 0x05, 0xD2, 0x04, 0xD3, +0xD8, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x69, 0xAC, 0xE9, +0x00, 0x68, 0x85, 0xF5, 0x1C, 0x6C, 0xFF, 0x6D, +0x80, 0x18, 0x6E, 0x3C, 0x55, 0x72, 0x0C, 0x61, +0x00, 0x6A, 0x15, 0x21, 0x30, 0xF0, 0x20, 0x6A, +0xC3, 0xF3, 0xA4, 0x9A, 0x03, 0xF3, 0x08, 0x6C, +0x80, 0x18, 0x6E, 0x3C, 0x00, 0x6A, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, +0x01, 0x6C, 0x01, 0x48, 0x40, 0xEA, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xE8, 0x01, 0x6A, 0x32, 0x58, +0x01, 0x60, 0xDF, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF3, 0x10, 0x6C, +0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x00, 0x6A, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, +0xAC, 0xEA, 0x01, 0x72, 0x05, 0xD4, 0x24, 0x61, +0x44, 0x67, 0x04, 0x4A, 0x01, 0x68, 0x30, 0xF0, +0x20, 0x69, 0x04, 0xEA, 0x00, 0xF2, 0x08, 0x6A, +0x4D, 0xE8, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, +0xD0, 0x67, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, +0xAB, 0xED, 0xC1, 0x40, 0x03, 0xF3, 0x00, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x48, 0x9A, 0x01, 0x6C, 0x40, 0xEA, 0x05, 0x94, +0x01, 0x6D, 0x80, 0x18, 0x57, 0x17, 0xD2, 0x10, +0x02, 0x72, 0x01, 0x6A, 0xC0, 0xF0, 0x0E, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x2F, 0xF2, 0x5A, 0xA2, +0x00, 0x68, 0x09, 0x72, 0x0C, 0x60, 0x12, 0x72, +0x01, 0x68, 0x09, 0x60, 0x1B, 0x72, 0x02, 0x68, +0x06, 0x60, 0x24, 0x68, 0x4E, 0xE8, 0x01, 0x58, +0x18, 0x67, 0x04, 0x6A, 0x03, 0xE2, 0x05, 0x92, +0x30, 0xF0, 0x20, 0x69, 0x01, 0x6D, 0x44, 0x32, +0x07, 0xD2, 0x07, 0x93, 0x08, 0x6A, 0x03, 0xF3, +0x00, 0x6C, 0x4D, 0xEB, 0xC0, 0xF3, 0x44, 0x99, +0xC3, 0x67, 0x07, 0xD3, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xC6, 0xF5, 0x10, 0x4C, +0x04, 0xD4, 0x04, 0x93, 0xC0, 0xF3, 0x44, 0x99, +0x01, 0x6D, 0x68, 0xF4, 0xCA, 0xA3, 0xC3, 0xF3, +0x0C, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x05, 0x92, +0x01, 0x6C, 0x01, 0x6D, 0x04, 0x4A, 0x84, 0xEA, +0x00, 0xF3, 0x08, 0x6A, 0x4D, 0xEC, 0x06, 0xD4, +0xC0, 0xF3, 0x44, 0x99, 0x06, 0x96, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x06, 0x96, +0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0xAB, 0xED, +0x01, 0x4E, 0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, +0x02, 0x6C, 0x40, 0xEA, 0x05, 0x94, 0x01, 0x6D, +0x80, 0x18, 0x57, 0x17, 0x01, 0x72, 0x0A, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xE2, 0xF5, 0x0C, 0x4A, +0x41, 0xE0, 0x40, 0xA0, 0x04, 0x93, 0x68, 0xF4, +0x4A, 0xC3, 0x6B, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x05, 0x95, 0x03, 0xF4, 0xF0, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xEE, 0xF6, 0x08, 0x4C, 0x00, 0x6E, +0x80, 0x18, 0x9C, 0x4E, 0x05, 0xD2, 0x07, 0x96, +0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x05, 0x94, +0xE3, 0xF7, 0x00, 0x6A, 0x04, 0x93, 0x8C, 0xEA, +0x56, 0x34, 0x96, 0x32, 0x68, 0xF4, 0x4C, 0xDB, +0x1F, 0x6A, 0x8C, 0xEA, 0x02, 0x5A, 0xFF, 0x6B, +0x0B, 0x60, 0x03, 0x70, 0x03, 0x60, 0x01, 0x48, +0x6C, 0xE8, 0x49, 0x10, 0x04, 0x94, 0x01, 0x6B, +0x03, 0x68, 0x29, 0xF0, 0x61, 0xC4, 0x43, 0x10, +0x0A, 0x5A, 0x0B, 0x61, 0x04, 0x20, 0xFF, 0x48, +0x6C, 0xE8, 0x01, 0x6B, 0x0B, 0x10, 0x04, 0x94, +0x01, 0x6B, 0x29, 0xF0, 0x61, 0xC4, 0x01, 0x6B, +0x09, 0x10, 0x04, 0x94, 0x00, 0x6B, 0x29, 0xF0, +0x61, 0xC4, 0x00, 0x6B, 0x03, 0x20, 0x04, 0x58, +0x01, 0x61, 0x03, 0x68, 0x30, 0xF0, 0x20, 0x6D, +0xE2, 0xF5, 0x0C, 0x4D, 0xA1, 0xE0, 0xA0, 0xA0, +0x30, 0xF0, 0x20, 0x6C, 0xC6, 0xF5, 0x10, 0x4C, +0x68, 0xF4, 0xAA, 0xC4, 0x0F, 0x2B, 0x68, 0xF4, +0xCA, 0xA4, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x64, 0x9B, 0xC0, 0x36, 0x01, 0x6D, 0x4D, 0xEE, +0xE3, 0xF3, 0x08, 0x6C, 0xAB, 0xED, 0x40, 0xEB, +0x00, 0x6A, 0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, 0xE3, 0xF3, +0x08, 0x6C, 0xAB, 0xED, 0xFF, 0xF7, 0x1F, 0x6E, +0x40, 0xEA, 0x01, 0x6A, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x01, 0x6B, +0xCE, 0x17, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x00, 0x6B, 0x0B, 0xD7, +0xE0, 0xAE, 0x1F, 0xF7, 0x00, 0x6A, 0xEC, 0xEA, +0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x08, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xE0, 0xAE, 0xA3, 0xF0, +0x58, 0x9A, 0x49, 0xE7, 0xE0, 0xA2, 0x06, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x5C, 0x9A, +0x5D, 0xE7, 0xE0, 0xA7, 0xFF, 0x6A, 0xEC, 0xEA, +0x7D, 0xE4, 0x01, 0x4B, 0x03, 0x73, 0x40, 0xC7, +0x02, 0x4E, 0xE2, 0x61, 0x25, 0x67, 0x00, 0x68, +0x0B, 0x93, 0x01, 0x6D, 0xAB, 0xED, 0x09, 0xE3, +0x80, 0xAA, 0x02, 0x48, 0x80, 0x18, 0x6E, 0x3C, +0x16, 0x70, 0x40, 0xD9, 0x04, 0x49, 0xF4, 0x61, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0xFF, 0x69, 0x03, 0xF4, 0x6C, 0x9B, 0x30, 0xF0, +0x20, 0x68, 0x2C, 0xEC, 0xC0, 0xF3, 0x44, 0x98, +0xAC, 0xE9, 0x24, 0x36, 0x01, 0x6D, 0x04, 0xD4, +0xAB, 0xED, 0x03, 0xF3, 0x00, 0x6C, 0x6D, 0xEE, +0x40, 0xEA, 0x04, 0x92, 0x08, 0x2A, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, +0x00, 0x6D, 0x03, 0x6E, 0x07, 0x10, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, +0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x03, 0xF4, 0xB4, 0x9B, 0xC3, 0xF3, +0x14, 0x6C, 0x10, 0x6E, 0x40, 0xEA, 0x04, 0x93, +0x24, 0x31, 0x30, 0xF0, 0x20, 0x6A, 0x25, 0xE3, +0xC6, 0xF5, 0x10, 0x4A, 0x30, 0x30, 0x30, 0x31, +0x01, 0xE2, 0x25, 0xE2, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF4, 0x58, 0x9A, 0x88, 0xF4, 0x0C, 0x48, +0x08, 0xF5, 0x0C, 0x49, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x04, 0x96, +0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x01, 0x6D, 0xE3, 0xF3, 0x1C, 0x6C, +0xAB, 0xED, 0x80, 0x18, 0x6E, 0x3C, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF4, 0x7C, 0x9B, 0x4C, 0xEB, +0x62, 0x33, 0x62, 0x33, 0x60, 0xC8, 0xE1, 0xF7, +0x1F, 0x6B, 0x4C, 0xEB, 0x04, 0x92, 0x60, 0xC9, +0x02, 0x48, 0x04, 0x4A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF4, 0x40, 0x9A, 0x04, 0x93, +0x02, 0x49, 0x6E, 0xEA, 0xD8, 0x2A, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, +0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9B, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, +0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0x05, 0x67, 0x01, 0x74, +0x4C, 0xE8, 0x80, 0xF0, 0x17, 0x60, 0x04, 0x24, +0x04, 0x5C, 0xA0, 0xF0, 0x0E, 0x60, 0xA8, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x88, 0xF5, 0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6D, +0x30, 0xF0, 0x20, 0x6C, 0x88, 0xF5, 0x78, 0xDA, +0x30, 0xF0, 0x20, 0x6F, 0x30, 0xF0, 0x20, 0x6B, +0x6F, 0xF3, 0x1C, 0x4D, 0x6F, 0xF3, 0x14, 0x4C, +0x6F, 0xF3, 0x10, 0x4B, 0x6F, 0xF2, 0x0C, 0x4F, +0x00, 0x69, 0x40, 0x9D, 0xC4, 0xF2, 0x04, 0x41, +0x04, 0x30, 0x42, 0xDD, 0x40, 0xAC, 0x05, 0xD7, +0x42, 0xCC, 0x40, 0xA3, 0x42, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x01, 0xE2, +0x00, 0x6A, 0x04, 0x48, 0x04, 0xD2, 0x40, 0xA0, +0x24, 0x36, 0x44, 0xC0, 0x04, 0x92, 0xD9, 0xE2, +0x06, 0xD6, 0xD0, 0x36, 0x07, 0xD6, 0x30, 0xF0, +0x20, 0x6A, 0xC2, 0x67, 0x07, 0x92, 0xC6, 0xF5, +0x10, 0x4E, 0x1E, 0x65, 0x59, 0xE6, 0x88, 0xF4, +0x0C, 0x4E, 0x07, 0xD6, 0xC2, 0x67, 0x58, 0x67, +0xC9, 0xE2, 0x08, 0xF5, 0x0C, 0x4A, 0xC2, 0x67, +0x07, 0x92, 0x06, 0xD3, 0x60, 0xAA, 0x40, 0xF0, +0x60, 0xCA, 0x60, 0xAE, 0x02, 0x4A, 0x40, 0xF0, +0x60, 0xCE, 0x05, 0x93, 0x02, 0x4E, 0x6A, 0xEA, +0xF5, 0x61, 0x04, 0x96, 0x05, 0x92, 0x06, 0x93, +0x01, 0x4E, 0x10, 0x4A, 0x02, 0x76, 0x04, 0xD6, +0x01, 0x48, 0x05, 0xD2, 0xD0, 0x61, 0x01, 0x49, +0x02, 0x6E, 0x2E, 0xEE, 0x04, 0x4D, 0x02, 0x4C, +0x01, 0x4B, 0x20, 0x4F, 0xB6, 0x2E, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x00, 0x6B, +0x09, 0xF0, 0x79, 0xC2, 0x09, 0xF0, 0x7A, 0xC2, +0x09, 0xF0, 0x6D, 0xC2, 0x09, 0xF0, 0x6E, 0xC2, +0x09, 0xF0, 0x6F, 0xC2, 0xA8, 0xF5, 0x61, 0xC2, +0x09, 0xF0, 0x7B, 0xC2, 0x09, 0xF0, 0x7C, 0xC2, +0x09, 0xF0, 0x70, 0xC2, 0x09, 0xF0, 0x71, 0xC2, +0x09, 0xF0, 0x72, 0xC2, 0x88, 0xF5, 0x7C, 0x9A, +0x01, 0x6C, 0xA8, 0xF5, 0xC0, 0xC2, 0xA8, 0xF5, +0xC4, 0xCA, 0x88, 0xF5, 0x8C, 0xC2, 0x88, 0xF5, +0x8D, 0xC2, 0xA8, 0xF5, 0xC6, 0xCA, 0x88, 0xF5, +0x8E, 0xC2, 0x88, 0xF5, 0x8F, 0xC2, 0x88, 0xF5, +0x74, 0xDA, 0x1B, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF4, 0xF0, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xB0, 0x67, 0xEE, 0xF6, 0x08, 0x4C, 0x58, 0x6E, +0x80, 0x18, 0x9C, 0x4E, 0x62, 0xF1, 0x0A, 0x48, +0x30, 0xF0, 0x20, 0x6B, 0x08, 0x30, 0xC6, 0xF5, +0x10, 0x4B, 0x6D, 0xE0, 0x41, 0xDB, 0x05, 0x10, +0xFE, 0x4C, 0x4C, 0xEC, 0xB0, 0x67, 0x80, 0x18, +0x13, 0x18, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x4F, 0xF2, 0x41, 0xA2, +0x18, 0x2A, 0x01, 0x6C, 0x00, 0x6D, 0x80, 0x18, +0x58, 0x18, 0x02, 0x6C, 0x00, 0x6D, 0x80, 0x18, +0x58, 0x18, 0x03, 0x6C, 0x00, 0x6D, 0x80, 0x18, +0x58, 0x18, 0x01, 0x6C, 0xA4, 0x67, 0x80, 0x18, +0x58, 0x18, 0x02, 0x6C, 0x01, 0x6D, 0x80, 0x18, +0x58, 0x18, 0x03, 0x6C, 0x01, 0x6D, 0x80, 0x18, +0x58, 0x18, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xAF, 0xF1, 0x50, 0xA2, +0xA0, 0xF3, 0x17, 0x22, 0x01, 0x69, 0x2B, 0xE9, +0xB1, 0x67, 0x63, 0xF0, 0x00, 0x6C, 0x80, 0x18, +0x6E, 0x3C, 0xB1, 0x67, 0x68, 0xF1, 0x00, 0x6C, +0x07, 0xD2, 0x80, 0x18, 0x6E, 0x3C, 0xB1, 0x67, +0xA1, 0xF1, 0x14, 0x6C, 0x30, 0xF0, 0x20, 0x68, +0x06, 0xD2, 0x80, 0x18, 0x6E, 0x3C, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF4, 0xC4, 0x9B, 0x05, 0xD2, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0xA1, 0xF1, +0x14, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF4, 0x28, 0x9A, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0xC3, 0xF0, 0x0C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0xA8, 0xF1, +0x10, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0xC8, 0xF1, 0x0C, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF1, 0x34, 0x9A, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, +0x0C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF0, 0x00, 0x6C, 0x3C, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC5, 0x67, +0xA3, 0xF0, 0x14, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xC5, 0x67, 0xC3, 0xF0, +0x10, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x28, 0xF1, 0x10, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, +0x0C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x68, 0xF1, 0x00, 0x6C, 0x3C, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC5, 0x67, +0xA8, 0xF1, 0x14, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xC5, 0x67, 0xC8, 0xF1, +0x10, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF0, 0x10, 0x6C, 0x01, 0xF7, 0x00, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF0, 0x00, 0x6C, 0x08, 0xF0, 0x00, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF0, 0x0C, 0x6C, 0x01, 0xF7, 0x00, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF0, 0x1C, 0x6C, 0x08, 0xF0, 0x00, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF0, 0x10, 0x6C, 0x01, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, +0x0C, 0x6C, 0x01, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xC5, 0x67, +0xA3, 0xF0, 0x10, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xC5, 0x67, 0xC3, 0xF0, +0x0C, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF4, 0x30, 0x9A, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF0, 0x18, 0x6C, 0xB1, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, +0x14, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x10, 0x6C, +0x01, 0xF7, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x00, 0x6C, +0x08, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x0C, 0x6C, +0x01, 0xF7, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x1C, 0x6C, +0x08, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x10, 0x6C, +0x01, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xC8, 0xF1, 0x0C, 0x6C, 0x01, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xC5, 0x67, 0xA8, 0xF1, 0x10, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xC5, 0x67, 0xC8, 0xF1, 0x0C, 0x6C, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x18, 0x6C, +0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xC8, 0xF1, 0x14, 0x6C, 0xB1, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0x00, 0x68, 0xFF, 0x6A, +0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF4, 0xB4, 0x9A, 0x05, 0xF0, 0x08, 0x6C, +0x80, 0x18, 0x6E, 0x3C, 0xFF, 0xF7, 0x1F, 0x72, +0x12, 0x60, 0xFF, 0x70, 0xF0, 0x61, 0x0F, 0x10, +0xFF, 0x6A, 0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF4, 0xB4, 0x9A, 0x25, 0xF0, +0x14, 0x6C, 0x80, 0x18, 0x6E, 0x3C, 0xFF, 0xF7, +0x1F, 0x72, 0x03, 0x61, 0x14, 0x10, 0x00, 0x68, +0xEF, 0x17, 0xFF, 0x70, 0xED, 0x61, 0x0F, 0x10, +0xFF, 0x6A, 0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF4, 0xB4, 0x9A, 0x08, 0xF5, +0x08, 0x6C, 0x80, 0x18, 0x6E, 0x3C, 0xFF, 0xF7, +0x1F, 0x72, 0x03, 0x61, 0x14, 0x10, 0x00, 0x68, +0xEF, 0x17, 0xFF, 0x70, 0xED, 0x61, 0x0F, 0x10, +0xFF, 0x6A, 0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF4, 0xB4, 0x9A, 0x28, 0xF5, +0x14, 0x6C, 0x80, 0x18, 0x6E, 0x3C, 0xFF, 0xF7, +0x1F, 0x72, 0x03, 0x61, 0x04, 0x10, 0x00, 0x68, +0xEF, 0x17, 0xFF, 0x70, 0xED, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x23, 0xF4, +0x10, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, +0xA3, 0xF0, 0x18, 0x69, 0x91, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, +0x10, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, +0x91, 0x67, 0x02, 0x6E, 0x40, 0xEA, 0x00, 0x68, +0x05, 0xF0, 0x08, 0x6C, 0xFF, 0x6D, 0x80, 0x18, +0x6E, 0x3C, 0x86, 0x72, 0x07, 0x61, 0x30, 0xF0, +0x20, 0x69, 0x00, 0x6A, 0xAF, 0xF1, 0x12, 0x49, +0x04, 0xD2, 0x1E, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF4, 0x10, 0x4B, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x69, 0x01, 0x48, 0xA0, 0x9B, 0x4C, 0xE8, +0xC0, 0xF3, 0x44, 0x99, 0xA3, 0xF0, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF4, 0x10, 0x4B, 0xC0, 0xF3, 0x44, 0x99, +0xA0, 0x9B, 0xA3, 0xF0, 0x18, 0x6C, 0x02, 0x6E, +0x40, 0xEA, 0x64, 0x70, 0xD5, 0x61, 0xDB, 0x17, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF0, 0x14, 0x6C, 0x04, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xA9, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF0, 0x14, 0x6C, 0xE1, 0xF7, 0x18, 0x6D, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, +0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, +0xA3, 0xF0, 0x10, 0x6C, 0x02, 0x49, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0x14, 0x6C, +0x04, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x04, 0x92, +0x01, 0x4A, 0x0F, 0x72, 0x04, 0xD2, 0xD8, 0x61, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0x14, 0x6C, +0x04, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF4, 0x10, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xA0, 0x9B, 0xC3, 0xF0, 0x14, 0x69, +0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF4, 0x10, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xA0, 0x9B, 0x91, 0x67, 0x02, 0x6E, +0x40, 0xEA, 0x00, 0x68, 0x25, 0xF0, 0x14, 0x6C, +0xFF, 0x6D, 0x80, 0x18, 0x6E, 0x3C, 0x86, 0x72, +0x07, 0x61, 0x30, 0xF0, 0x20, 0x69, 0x00, 0x6A, +0xCF, 0xF1, 0x10, 0x49, 0x04, 0xD2, 0x1E, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x10, 0x4B, +0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x69, 0x01, 0x48, +0xA0, 0x9B, 0x4C, 0xE8, 0xC0, 0xF3, 0x44, 0x99, +0xC3, 0xF0, 0x14, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x10, 0x4B, +0xC0, 0xF3, 0x44, 0x99, 0xA0, 0x9B, 0xC3, 0xF0, +0x14, 0x6C, 0x02, 0x6E, 0x40, 0xEA, 0x64, 0x70, +0xD5, 0x61, 0xDB, 0x17, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, 0x10, 0x6C, +0x04, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xA9, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, 0x10, 0x6C, +0xE1, 0xF7, 0x18, 0x6D, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF4, 0xB8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x04, 0x96, 0xC3, 0xF0, 0x0C, 0x6C, +0x02, 0x49, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF0, 0x10, 0x6C, 0x04, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x04, 0x92, 0x01, 0x4A, 0x0F, 0x72, +0x04, 0xD2, 0xD8, 0x61, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF0, 0x10, 0x6C, 0x04, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF4, +0x30, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, +0x18, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF0, 0x14, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xA3, 0xF0, 0x14, 0x6C, 0x01, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF0, 0x10, 0x6C, 0x01, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, +0x18, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x18, 0x6C, +0xB1, 0x67, 0x02, 0x6E, 0x40, 0xEA, 0x00, 0x68, +0x08, 0xF5, 0x08, 0x6C, 0xFF, 0x6D, 0x80, 0x18, +0x6E, 0x3C, 0x86, 0x72, 0x07, 0x61, 0x30, 0xF0, +0x20, 0x69, 0x00, 0x6B, 0xEF, 0xF1, 0x0E, 0x49, +0x04, 0xD3, 0x1E, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF4, 0x10, 0x4B, 0xFF, 0x6A, 0x30, 0xF0, +0x20, 0x69, 0x01, 0x48, 0xA0, 0x9B, 0x4C, 0xE8, +0xC0, 0xF3, 0x44, 0x99, 0xA8, 0xF1, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF4, 0x10, 0x4B, 0xC0, 0xF3, 0x44, 0x99, +0xA0, 0x9B, 0xA8, 0xF1, 0x18, 0x6C, 0x02, 0x6E, +0x40, 0xEA, 0x64, 0x70, 0xD5, 0x61, 0xDB, 0x17, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0xA8, 0xF1, 0x14, 0x6C, 0x04, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xA9, 0xC0, 0xF3, 0x44, 0x98, +0xA8, 0xF1, 0x14, 0x6C, 0xE1, 0xF7, 0x18, 0x6D, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, +0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, +0xA8, 0xF1, 0x10, 0x6C, 0x02, 0x49, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x14, 0x6C, +0x04, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x04, 0x92, +0x01, 0x4A, 0x0F, 0x72, 0x04, 0xD2, 0xD8, 0x61, +0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, 0x14, 0x6C, +0x04, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF4, 0x10, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xA0, 0x9B, 0xC8, 0xF1, 0x14, 0x69, +0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF4, 0x10, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xA0, 0x9B, 0x91, 0x67, 0x02, 0x6E, +0x40, 0xEA, 0x00, 0x68, 0x28, 0xF5, 0x14, 0x6C, +0xFF, 0x6D, 0x80, 0x18, 0x6E, 0x3C, 0x86, 0x72, +0x07, 0x61, 0x30, 0xF0, 0x20, 0x69, 0x00, 0x6A, +0x0F, 0xF2, 0x0C, 0x49, 0x04, 0xD2, 0x1E, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x10, 0x4B, +0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x69, 0x01, 0x48, +0xA0, 0x9B, 0x4C, 0xE8, 0xC0, 0xF3, 0x44, 0x99, +0xC8, 0xF1, 0x14, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF4, 0x10, 0x4B, +0xC0, 0xF3, 0x44, 0x99, 0xA0, 0x9B, 0xC8, 0xF1, +0x14, 0x6C, 0x02, 0x6E, 0x40, 0xEA, 0x64, 0x70, +0xD5, 0x61, 0xDB, 0x17, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x10, 0x6C, +0x04, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xA9, +0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x10, 0x6C, +0xE1, 0xF7, 0x18, 0x6D, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF4, 0xB8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x04, 0x96, 0xC8, 0xF1, 0x0C, 0x6C, +0x02, 0x49, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC8, 0xF1, 0x10, 0x6C, 0x04, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x04, 0x92, 0x01, 0x4A, 0x0F, 0x72, +0x04, 0xD2, 0xD8, 0x61, 0xC0, 0xF3, 0x44, 0x98, +0xC8, 0xF1, 0x10, 0x6C, 0x04, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF4, +0x30, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, +0x18, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0xC8, 0xF1, +0x14, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xA8, 0xF1, 0x14, 0x6C, 0x01, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC8, 0xF1, 0x10, 0x6C, 0x01, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, +0x34, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x28, 0xF1, +0x10, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x07, 0x96, 0x01, 0x6D, 0x63, 0xF0, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x06, 0x96, 0x01, 0x6D, 0x68, 0xF1, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF4, 0x28, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0xA3, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF0, 0x0C, 0x6C, 0xB1, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC8, 0xF1, 0x0C, 0x6C, +0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x05, 0x96, 0x01, 0x6D, 0xA1, 0xF1, +0x14, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x80, 0x18, +0x9C, 0x16, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xE3, 0xF7, 0x18, 0x69, +0xB1, 0x67, 0x05, 0xF0, 0x10, 0x6C, 0x80, 0x18, +0x6E, 0x3C, 0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6B, +0xC6, 0xF5, 0x10, 0x48, 0x6C, 0xEA, 0xB1, 0x67, +0x25, 0xF0, 0x1C, 0x6C, 0x48, 0xF4, 0x5A, 0xC8, +0x80, 0x18, 0x6E, 0x3C, 0xFF, 0x6B, 0x6C, 0xEA, +0xB1, 0x67, 0x08, 0xF5, 0x10, 0x6C, 0x48, 0xF4, +0x5C, 0xC8, 0x80, 0x18, 0x6E, 0x3C, 0xFF, 0x6B, +0x6C, 0xEA, 0xB1, 0x67, 0x28, 0xF5, 0x1C, 0x6C, +0x48, 0xF4, 0x5E, 0xC8, 0x80, 0x18, 0x6E, 0x3C, +0xFF, 0x6B, 0x6C, 0xEA, 0x68, 0xF4, 0x40, 0xC8, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xE2, 0xF1, 0x6C, 0xA2, 0x00, 0xF1, 0x0B, 0x23, +0x00, 0x68, 0xE2, 0xF1, 0x0C, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF4, 0xB4, 0x9A, 0x05, 0xF0, +0x08, 0x6C, 0x80, 0x18, 0x6E, 0x3C, 0xFF, 0xF7, +0x1F, 0x72, 0x07, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xE8, 0xF3, 0x00, 0xC2, +0xF6, 0x10, 0x01, 0x69, 0x2B, 0xE9, 0x01, 0x6B, +0xB1, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF0, +0x00, 0x6C, 0xAF, 0xF1, 0x70, 0xC2, 0x80, 0x18, +0x6E, 0x3C, 0xB1, 0x67, 0x68, 0xF1, 0x00, 0x6C, +0x07, 0xD2, 0x80, 0x18, 0x6E, 0x3C, 0xB1, 0x67, +0xA1, 0xF1, 0x14, 0x6C, 0x30, 0xF0, 0x20, 0x68, +0x06, 0xD2, 0x80, 0x18, 0x6E, 0x3C, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF4, 0xC4, 0x9B, 0x05, 0xD2, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0xA1, 0xF1, +0x14, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF1, 0xB4, 0x9B, +0x23, 0xF0, 0x10, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF4, 0xAC, 0x9B, 0x63, 0xF0, 0x00, 0x6C, +0x3C, 0x6E, 0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, +0xAF, 0xF1, 0x12, 0x48, 0x00, 0x69, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF4, +0xB8, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, 0xD1, 0x67, +0xA3, 0xF0, 0x10, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF4, 0xBC, 0x9A, 0x05, 0xF0, +0x10, 0x6C, 0x01, 0x49, 0x80, 0x18, 0x6E, 0x3C, +0x0F, 0x71, 0x40, 0xC8, 0x02, 0x48, 0xE7, 0x61, +0x30, 0xF0, 0x20, 0x68, 0x00, 0x6A, 0xCF, 0xF1, +0x10, 0x48, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x69, 0x23, 0xF4, 0xB8, 0x9B, +0xC0, 0xF3, 0x44, 0x99, 0x04, 0x96, 0xC3, 0xF0, +0x0C, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF4, 0xBC, 0x9A, 0x25, 0xF0, 0x1C, 0x6C, +0x80, 0x18, 0x6E, 0x3C, 0x40, 0xC8, 0x04, 0x92, +0x02, 0x48, 0x01, 0x4A, 0x0F, 0x72, 0x04, 0xD2, +0xE5, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x99, 0x23, 0xF1, 0xB4, 0x9B, 0x28, 0xF1, +0x10, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF4, +0xAC, 0x9B, 0x68, 0xF1, 0x00, 0x6C, 0x3C, 0x6E, +0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, 0xEF, 0xF1, +0x0E, 0x48, 0x00, 0x69, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF4, 0xB8, 0x9B, +0xC0, 0xF3, 0x44, 0x9A, 0xD1, 0x67, 0xA8, 0xF1, +0x10, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF4, 0xBC, 0x9A, 0x08, 0xF5, 0x10, 0x6C, +0x01, 0x49, 0x80, 0x18, 0x6E, 0x3C, 0x0F, 0x71, +0x40, 0xC8, 0x02, 0x48, 0xE7, 0x61, 0x30, 0xF0, +0x20, 0x69, 0x00, 0x6A, 0x0F, 0xF2, 0x0C, 0x49, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0x23, 0xF4, 0xB8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x04, 0x96, 0xC8, 0xF1, 0x0C, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF4, +0xBC, 0x9A, 0x28, 0xF5, 0x1C, 0x6C, 0x80, 0x18, +0x6E, 0x3C, 0x40, 0xC9, 0x04, 0x92, 0x02, 0x49, +0x01, 0x4A, 0x0F, 0x72, 0x04, 0xD2, 0xE5, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, 0x34, 0x9A, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x28, 0xF1, 0x10, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x01, 0x69, 0xC0, 0xF3, +0x44, 0x98, 0x07, 0x96, 0x2B, 0xE9, 0x63, 0xF0, +0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x06, 0x96, 0x68, 0xF1, 0x00, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x05, 0x96, 0xA1, 0xF1, 0x14, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x80, 0x18, 0xAD, 0x1A, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x69, 0x00, 0x6A, 0x8C, 0xE9, 0x06, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, 0x10, 0x4A, +0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0xEE, 0xF6, +0x08, 0x48, 0x00, 0x6B, 0x90, 0x67, 0xB1, 0x67, +0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, 0x10, 0x4A, +0xE0, 0x9A, 0x00, 0x6B, 0x90, 0x67, 0xB1, 0x67, +0x08, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x10, 0x4B, +0xE0, 0x9B, 0x90, 0x67, 0xB1, 0x67, 0x08, 0x6E, +0x80, 0x18, 0x9C, 0x4E, 0x0B, 0x22, 0x06, 0x92, +0x01, 0x4A, 0x06, 0xD2, 0x06, 0x93, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xEB, 0x2E, 0xF5, 0x10, 0x73, +0x06, 0xD3, 0xCE, 0x61, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF5, 0x63, 0x15, 0x62, 0x14, 0xD1, 0x13, 0xD0, +0xFF, 0x6A, 0x4C, 0xEC, 0x4C, 0xED, 0x30, 0xF0, +0x20, 0x6A, 0xE2, 0xF5, 0x10, 0x4A, 0x64, 0x67, +0x07, 0xD2, 0x62, 0xF1, 0x02, 0x4B, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x68, 0x33, +0x6D, 0xE2, 0x04, 0x4B, 0x0A, 0xD3, 0x64, 0x67, +0xA1, 0xF0, 0x15, 0x4B, 0x6C, 0x33, 0x69, 0xE2, +0x04, 0x4A, 0x00, 0x6B, 0x0F, 0xD4, 0x11, 0xD5, +0x0C, 0xD2, 0x08, 0xD3, 0x08, 0x95, 0x11, 0x92, +0xFF, 0x69, 0xAC, 0xE9, 0x18, 0x2A, 0x30, 0xF0, +0x20, 0x68, 0xEE, 0xF6, 0x08, 0x48, 0x01, 0x6A, +0x90, 0x67, 0xB1, 0x67, 0xDF, 0x6E, 0x10, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x0C, 0x93, +0x90, 0x67, 0xB1, 0x67, 0x40, 0x9B, 0x58, 0x6E, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, +0xF0, 0x9A, 0x80, 0x18, 0xE1, 0x4E, 0x08, 0x95, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, 0x4C, 0x9A, +0xA4, 0x35, 0x4D, 0xED, 0x00, 0x6A, 0x0E, 0xD5, +0x06, 0xD2, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x0E, 0x96, 0x01, 0x69, 0x2B, 0xE9, +0x03, 0xF3, 0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x0C, 0x6C, +0xB1, 0x67, 0x07, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF3, 0x18, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x18, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF3, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x1C, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0xC3, 0xF3, 0x0C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x06, 0x95, 0xFF, 0x6A, 0xAC, 0xEA, 0x08, 0x2A, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, +0x06, 0xF0, 0x00, 0x6D, 0x03, 0x6E, 0x07, 0x10, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, +0x06, 0xF0, 0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF4, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, +0xC3, 0xF3, 0x14, 0x6C, 0x10, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x06, 0x93, 0x43, 0xF4, +0x40, 0x9A, 0x0F, 0x95, 0x46, 0xEB, 0x08, 0x93, +0xA4, 0x34, 0x06, 0x95, 0x71, 0xE4, 0x84, 0x34, +0x91, 0xE5, 0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, +0x10, 0x4B, 0x90, 0x31, 0x90, 0x34, 0x91, 0xE3, +0xA3, 0x42, 0x25, 0xE3, 0x64, 0x67, 0x0B, 0xD5, +0x08, 0xF5, 0x0C, 0x4B, 0xA1, 0x42, 0x23, 0x4A, +0x88, 0xF4, 0x0C, 0x49, 0x09, 0xD3, 0x0D, 0xD5, +0x10, 0xD2, 0xC0, 0xA9, 0x0B, 0x93, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x36, +0xC4, 0x36, 0x01, 0x6D, 0xD9, 0xE3, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x09, 0x95, +0x0D, 0x93, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0xAD, +0x01, 0x6D, 0xAB, 0xED, 0xC0, 0x36, 0xC4, 0x36, +0xD9, 0xE3, 0xC3, 0xF3, 0x18, 0x6C, 0x40, 0xEA, +0x09, 0x92, 0x0B, 0x95, 0x0D, 0x93, 0x02, 0x4A, +0x09, 0xD2, 0x10, 0x92, 0x04, 0x4D, 0x04, 0x4B, +0x4A, 0xED, 0x02, 0x49, 0x0B, 0xD5, 0x0D, 0xD3, +0xD8, 0x61, 0x06, 0x93, 0xFF, 0x6A, 0x6C, 0xEA, +0x08, 0x2A, 0x0A, 0x95, 0x07, 0x93, 0xC0, 0xF3, +0x44, 0x98, 0xC0, 0xA5, 0x80, 0xAB, 0x01, 0x6D, +0x08, 0x10, 0x07, 0x93, 0x0A, 0x95, 0xC0, 0xF3, +0x44, 0x98, 0x80, 0xAB, 0xC1, 0xA5, 0x00, 0xF4, +0x00, 0x6D, 0xCF, 0xEE, 0x40, 0xEA, 0x06, 0x95, +0x01, 0x4D, 0x02, 0x75, 0x06, 0xD5, 0x5F, 0xF7, +0x0C, 0x61, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, +0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x06, 0xF0, 0x00, 0x6D, 0x03, 0xF3, +0x0C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x08, 0x92, +0x07, 0x93, 0x0A, 0x95, 0x01, 0x4A, 0x08, 0xD2, +0x02, 0x4B, 0x0C, 0x92, 0x07, 0xD3, 0x08, 0x93, +0x02, 0x4D, 0x04, 0x4A, 0x02, 0x73, 0x0A, 0xD5, +0x0C, 0xD2, 0x1F, 0xF7, 0x03, 0x61, 0x15, 0x97, +0x14, 0x91, 0x13, 0x90, 0x0B, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, +0x4C, 0xEC, 0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x00, 0x6B, 0x29, 0xF0, +0x68, 0xC2, 0x1A, 0x2C, 0x68, 0xF4, 0x66, 0xA2, +0x17, 0x23, 0x88, 0xF5, 0x7C, 0x9A, 0x88, 0xF5, +0x94, 0x9A, 0x00, 0x68, 0x6E, 0xEC, 0x05, 0x24, +0x88, 0xF5, 0x58, 0x9A, 0x4E, 0xEB, 0x0C, 0x2B, +0x01, 0x68, 0x01, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x90, 0x67, 0xEF, 0xF5, 0x78, 0xC2, 0x80, 0x18, +0x74, 0x1B, 0x90, 0x67, 0x80, 0x18, 0xA7, 0x49, +0x30, 0xF0, 0x20, 0x6A, 0xEF, 0xF5, 0x58, 0xA2, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x4F, 0xF2, 0x41, 0xA2, 0x05, 0x22, 0x00, 0x6C, +0x01, 0x6D, 0x80, 0x18, 0x06, 0x1C, 0x04, 0x10, +0x00, 0x6C, 0x01, 0x6D, 0x80, 0x18, 0x74, 0x1B, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x00, 0x6A, 0x7D, 0x67, 0x4C, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF1, 0x38, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF4, 0x10, 0x4A, 0xE0, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0xEE, 0xF6, 0x08, 0x48, +0x00, 0x6D, 0x90, 0x67, 0xC5, 0x67, 0x04, 0xD1, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF4, 0x10, 0x4B, 0xE0, 0x9B, 0x90, 0x67, +0x01, 0x6D, 0x00, 0x6E, 0x30, 0xF0, 0x20, 0x68, +0x04, 0xD1, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF4, 0xA4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xE1, 0xF0, 0x18, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xE1, 0xF0, 0x1C, 0x6C, 0xAB, 0xED, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x07, 0x6D, +0xC5, 0x67, 0x83, 0xF1, 0x0C, 0x6C, 0x40, 0xEA, +0x06, 0x02, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x48, 0x9A, 0xA1, 0xF3, 0x18, 0x6F, +0xA1, 0xF7, 0x00, 0x6C, 0x08, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, +0x08, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x43, 0xF4, 0xA8, 0x9B, 0x01, 0xF2, 0x04, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF1, 0x6C, 0x9A, 0xFF, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0xFE, 0x6C, 0x4C, 0xEC, 0x80, 0xC3, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, +0x50, 0x9A, 0x60, 0xA2, 0x01, 0x6A, 0x6C, 0xEA, +0x09, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF4, +0x70, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF4, +0x4C, 0x9A, 0x60, 0xDA, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, 0x30, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0xEE, 0xF6, 0x08, 0x48, +0x90, 0x67, 0xF1, 0x67, 0x01, 0xF2, 0x00, 0x6A, +0x00, 0x6D, 0xB8, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF4, +0x54, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, +0xB8, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x0E, 0xD6, 0x0F, 0xD7, +0x04, 0xD7, 0xFF, 0x68, 0xFF, 0xF7, 0x1F, 0x69, +0x0E, 0x97, 0x8C, 0xE8, 0xAC, 0xE9, 0x30, 0xF0, +0x20, 0x6C, 0xEE, 0xF6, 0x08, 0x4C, 0xB0, 0x67, +0xD1, 0x67, 0x80, 0x18, 0xE1, 0x4E, 0x00, 0x6A, +0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6B, 0x0E, 0x97, +0xEE, 0xF6, 0x08, 0x4B, 0x83, 0x67, 0xB0, 0x67, +0xD1, 0x67, 0x06, 0xD3, 0x80, 0x18, 0x9C, 0x4E, +0x0F, 0x93, 0x6E, 0xEA, 0x1E, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, +0x40, 0xEA, 0x0F, 0x92, 0x06, 0x94, 0x0E, 0x97, +0xB0, 0x67, 0xD1, 0x67, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x07, 0x93, 0x01, 0x4B, 0xE0, 0xF3, +0x08, 0x73, 0x07, 0xD3, 0xDE, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0xA0, 0xF1, +0x00, 0x6C, 0x1F, 0xF7, 0x00, 0x6D, 0x0A, 0x6E, +0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xFF, 0x68, 0xFF, 0xF7, 0x1F, 0x69, 0x03, 0xF4, +0xF0, 0x9A, 0x8C, 0xE8, 0xAC, 0xE9, 0x30, 0xF0, +0x20, 0x6C, 0x0E, 0xD6, 0x04, 0xD6, 0xEE, 0xF6, +0x08, 0x4C, 0xB0, 0x67, 0xD1, 0x67, 0x80, 0x18, +0xE1, 0x4E, 0x00, 0x6A, 0x07, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF4, 0x10, 0x4A, 0x30, 0xF0, +0x20, 0x6B, 0xE0, 0x9A, 0xEE, 0xF6, 0x08, 0x4B, +0x83, 0x67, 0xB0, 0x67, 0xD1, 0x67, 0x06, 0xD3, +0x80, 0x18, 0x9C, 0x4E, 0x0E, 0x93, 0x6E, 0xEA, +0x18, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF4, 0x10, 0x4B, 0x0E, 0x92, +0x06, 0x94, 0xE0, 0x9B, 0xB0, 0x67, 0xD1, 0x67, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x07, 0x92, +0x01, 0x4A, 0xE0, 0xF3, 0x08, 0x72, 0x07, 0xD2, +0xD6, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x00, 0x6A, 0x0C, 0xD4, +0x05, 0x67, 0x06, 0xD2, 0x06, 0x92, 0xFF, 0x6B, +0x30, 0xF0, 0x20, 0x69, 0x6C, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF4, 0x10, 0x4B, 0x07, 0xD2, +0xE0, 0x9B, 0x07, 0x95, 0xEE, 0xF6, 0x08, 0x49, +0x00, 0x6A, 0x91, 0x67, 0xEF, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x40, 0x98, 0x06, 0x94, +0x11, 0x6E, 0xCB, 0xEE, 0x4C, 0xEE, 0xDF, 0x6D, +0x80, 0x18, 0x9F, 0x1C, 0x0C, 0x92, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF4, 0x10, 0x4B, 0xC1, 0xA2, +0xE0, 0x9B, 0x42, 0x98, 0x07, 0x95, 0x91, 0x67, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x0C, 0x92, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x10, 0x4B, +0xC2, 0xA2, 0x07, 0x95, 0x44, 0x98, 0xE0, 0x9B, +0x91, 0x67, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x06, 0x92, 0x04, 0x48, 0x01, 0x4A, 0x02, 0x72, +0x06, 0xD2, 0xC4, 0x61, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6C, +0xEE, 0xF6, 0x08, 0x4C, 0x80, 0x18, 0xFF, 0x34, +0x05, 0x97, 0x01, 0x6A, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x01, 0x6B, 0x6B, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0x0A, 0xD4, 0x2F, 0xF2, 0x76, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x28, 0x9A, 0x30, 0xF0, +0x20, 0x68, 0x0A, 0x93, 0x80, 0xF2, 0x4C, 0x98, +0x30, 0xF0, 0x20, 0x6C, 0x35, 0xE3, 0xAF, 0xF5, +0x14, 0x4C, 0x08, 0x6E, 0x40, 0xEA, 0x0A, 0x95, +0x80, 0xF2, 0x4C, 0x98, 0x30, 0xF0, 0x20, 0x6C, +0x08, 0x4D, 0x35, 0xE5, 0x8F, 0xF3, 0x0C, 0x4C, +0x44, 0x6E, 0x40, 0xEA, 0x0A, 0x92, 0x30, 0xF0, +0x20, 0x6C, 0xCF, 0xF3, 0x10, 0x4C, 0x4C, 0x4A, +0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, +0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, +0x30, 0xF0, 0x20, 0x6C, 0x0F, 0xF4, 0x14, 0x4C, +0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, +0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, +0x04, 0x92, 0x30, 0xF0, 0x20, 0x6C, 0x4F, 0xF4, +0x18, 0x4C, 0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, +0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, +0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, 0x20, 0x6C, +0x8F, 0xF4, 0x1C, 0x4C, 0x44, 0x4A, 0x04, 0xD2, +0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, +0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, 0x30, 0xF0, +0x20, 0x6C, 0xEF, 0xF4, 0x00, 0x4C, 0x44, 0x4A, +0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, +0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, 0x04, 0x92, +0x30, 0xF0, 0x20, 0x6C, 0x2F, 0xF5, 0x04, 0x4C, +0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, 0x80, 0xF2, +0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, 0x40, 0xEA, +0x04, 0x92, 0x30, 0xF0, 0x20, 0x6C, 0x6F, 0xF5, +0x08, 0x4C, 0x44, 0x4A, 0x04, 0xD2, 0x04, 0x93, +0x80, 0xF2, 0x4C, 0x98, 0x44, 0x6E, 0x35, 0xE3, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, +0xBC, 0x9B, 0x04, 0x93, 0x80, 0xF2, 0x4C, 0x98, +0x30, 0xF0, 0x20, 0x6C, 0xCF, 0xF5, 0x0C, 0x4C, +0xB5, 0xE3, 0x10, 0x6E, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0xD1, 0x08, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0x42, 0xF2, 0x7C, 0xA2, 0x80, 0xF0, +0x1E, 0x23, 0x30, 0xF0, 0x20, 0x6C, 0x00, 0x6B, +0x23, 0xF1, 0x94, 0x9C, 0x42, 0xF2, 0x7C, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6E, 0x30, 0xF0, 0x20, 0x6D, +0x68, 0xF4, 0x77, 0xC2, 0x68, 0xF4, 0x9C, 0xDA, +0x68, 0xF4, 0x75, 0xC2, 0x68, 0xF4, 0x79, 0xC2, +0x88, 0xF4, 0x84, 0xDA, 0x68, 0xF4, 0x78, 0xC2, +0x88, 0xF4, 0x80, 0xDA, 0x68, 0xF4, 0x76, 0xC2, +0x68, 0xF4, 0x7A, 0xC2, 0x88, 0xF4, 0x88, 0xDA, +0xAF, 0xF5, 0x14, 0x4E, 0xAF, 0xF3, 0x0E, 0x4D, +0x00, 0x6A, 0x00, 0x6B, 0x60, 0xDE, 0x30, 0xF0, +0x20, 0x6C, 0xF1, 0xF0, 0x6F, 0x42, 0xC6, 0xF5, +0x10, 0x4C, 0x6C, 0x33, 0x6D, 0xE4, 0x04, 0x4B, +0x04, 0xD3, 0xF2, 0xF1, 0x6C, 0x42, 0x68, 0x33, +0x6D, 0xE4, 0x04, 0x4B, 0x03, 0xD3, 0x06, 0x6B, +0x78, 0xEA, 0x01, 0xD5, 0x00, 0x69, 0x05, 0x67, +0x12, 0xEB, 0x6D, 0xE4, 0x09, 0xF0, 0x0D, 0x4B, +0x04, 0x95, 0x00, 0x6C, 0x80, 0xDD, 0x03, 0x95, +0x80, 0xCD, 0x44, 0x35, 0xB5, 0xE1, 0xE4, 0xF3, +0x0C, 0x4D, 0x30, 0xF0, 0x20, 0x6C, 0xA4, 0x35, +0xC6, 0xF5, 0x10, 0x4C, 0xB1, 0xE4, 0x04, 0x4C, +0x05, 0xD4, 0x01, 0x94, 0x00, 0x6D, 0x00, 0xD5, +0x02, 0xD4, 0x05, 0x95, 0x00, 0x6C, 0x22, 0x6F, +0x80, 0xC5, 0x00, 0x94, 0x30, 0xF0, 0x20, 0x6D, +0xC6, 0xF5, 0x10, 0x4D, 0xF8, 0xEC, 0x44, 0x6C, +0x06, 0xD2, 0x12, 0xEF, 0x98, 0xE9, 0x12, 0xEC, +0x9D, 0xE7, 0x88, 0x6C, 0x98, 0xEA, 0x12, 0xEC, +0x9D, 0xE7, 0xF1, 0xE5, 0xFD, 0xE5, 0xA8, 0xF5, +0x1C, 0x4C, 0xC8, 0xF6, 0x0C, 0x4F, 0x02, 0x92, +0x00, 0x6D, 0xA0, 0xCC, 0x02, 0x4C, 0x4A, 0xEC, +0xA0, 0xCF, 0x02, 0x4F, 0xF8, 0x61, 0x00, 0x94, +0x06, 0x92, 0x01, 0x4C, 0x00, 0xD4, 0x05, 0x94, +0x01, 0x4C, 0x05, 0xD4, 0x02, 0x94, 0x22, 0x4C, +0x02, 0xD4, 0x00, 0x94, 0x02, 0x74, 0xD1, 0x61, +0xA0, 0xC3, 0xA1, 0xC3, 0xA2, 0xC3, 0x04, 0x95, +0x03, 0x94, 0x01, 0x49, 0x04, 0x4D, 0x04, 0xD5, +0x01, 0x95, 0x02, 0x4C, 0x02, 0x71, 0x44, 0x4D, +0x03, 0xD4, 0x03, 0x4B, 0x01, 0xD5, 0xAC, 0x61, +0xB0, 0x67, 0x01, 0x4A, 0x7F, 0x4D, 0x02, 0x72, +0x04, 0x4E, 0x09, 0x4D, 0x8A, 0x61, 0x09, 0x91, +0x08, 0x90, 0x05, 0x63, 0x20, 0xE8, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0x4C, 0xED, 0x4C, 0xEC, 0xCC, 0xEA, +0x4B, 0xEA, 0xC0, 0xF7, 0x42, 0x32, 0x30, 0xF0, +0x20, 0x68, 0x44, 0x32, 0xC0, 0xF3, 0x64, 0x98, +0x07, 0xD5, 0x04, 0xD2, 0xA4, 0x36, 0x08, 0x6A, +0x01, 0x6D, 0x06, 0xD4, 0x4D, 0xEE, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, 0x06, 0x92, +0x0F, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF4, 0xA0, 0x9B, 0x23, 0xF3, +0x00, 0x6C, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF4, 0x40, 0x9A, 0x0E, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x43, 0xF4, 0xA0, 0x9B, 0x23, 0xF3, 0x00, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF4, 0x44, 0x9A, 0x05, 0xD2, 0x06, 0x92, +0x22, 0x68, 0x07, 0x93, 0x18, 0xEA, 0x44, 0x6A, +0x00, 0x69, 0x12, 0xE8, 0x58, 0xEB, 0x04, 0x93, +0x12, 0xEA, 0x41, 0xE0, 0x88, 0x6A, 0x58, 0xEB, +0x12, 0xEA, 0x41, 0xE0, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x01, 0xE2, 0xA8, 0xF5, +0x1C, 0x48, 0xC0, 0xA8, 0x05, 0x92, 0x01, 0x6D, +0xC0, 0x36, 0x4D, 0xEE, 0x28, 0x32, 0x4D, 0xEE, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x02, 0x4E, +0x01, 0x49, 0x40, 0xEA, 0x11, 0x71, 0x02, 0x48, +0xEC, 0x61, 0x06, 0x92, 0x22, 0x68, 0x07, 0x93, +0x18, 0xEA, 0x44, 0x6A, 0x12, 0xE8, 0x58, 0xEB, +0x04, 0x93, 0x12, 0xEA, 0x41, 0xE0, 0x88, 0x6A, +0x58, 0xEB, 0x12, 0xEA, 0x41, 0xE0, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x01, 0xE2, +0x00, 0x6A, 0xC8, 0xF6, 0x0C, 0x48, 0x04, 0xD2, +0xC0, 0xA8, 0x05, 0x93, 0x04, 0x92, 0xC0, 0x36, +0x30, 0xF0, 0x20, 0x69, 0x6D, 0xEE, 0x48, 0x33, +0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0x6D, 0xEE, +0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x04, 0x93, 0x02, 0x48, 0x01, 0x4B, 0x11, 0x73, +0x04, 0xD3, 0xEA, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x99, 0x03, 0xF4, 0xD8, 0x9B, +0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x99, 0x43, 0xF4, 0xA0, 0x9B, 0x23, 0xF3, +0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0xF2, 0xF1, 0x86, 0x42, +0x30, 0xF0, 0x20, 0x6B, 0xE4, 0xF3, 0x14, 0x4A, +0xC6, 0xF5, 0x10, 0x4B, 0x88, 0x34, 0x44, 0x32, +0x91, 0xE3, 0x4D, 0xE3, 0x00, 0x68, 0x04, 0x4C, +0x08, 0x4B, 0x04, 0xD4, 0x05, 0xD3, 0x06, 0xD0, +0x07, 0xD0, 0x08, 0xD0, 0x04, 0x95, 0x01, 0x6C, +0x08, 0x93, 0x40, 0xA5, 0x30, 0xF0, 0x20, 0x69, +0x04, 0x36, 0x8C, 0xEA, 0x44, 0xE8, 0x4D, 0xE3, +0x41, 0xA5, 0x05, 0x95, 0x08, 0xD3, 0x8C, 0xEA, +0x07, 0x94, 0x64, 0x40, 0x44, 0xEB, 0x51, 0xE4, +0x40, 0xA5, 0x07, 0xD4, 0x03, 0x6C, 0x64, 0x33, +0x8C, 0xEA, 0x44, 0xEB, 0x04, 0x94, 0x06, 0x93, +0x01, 0x6D, 0x8C, 0xAC, 0x4D, 0xE3, 0x06, 0xD3, +0xC0, 0xF3, 0x64, 0x99, 0x08, 0x6A, 0x4D, 0xEE, +0x09, 0xD4, 0xAB, 0xED, 0x03, 0xF3, 0x00, 0x6C, +0x40, 0xEB, 0x08, 0x95, 0x07, 0x96, 0x06, 0x93, +0xC0, 0xF3, 0x44, 0x99, 0xAD, 0xEE, 0x6D, 0xEE, +0xE3, 0xF3, 0x10, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x09, 0x96, +0x01, 0x6D, 0xE3, 0xF3, 0x08, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x04, 0x94, 0x05, 0x95, 0x01, 0x48, +0x02, 0x4C, 0x01, 0x4D, 0x02, 0x70, 0x04, 0xD4, +0x05, 0xD5, 0xBC, 0x61, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x05, 0xD2, 0x00, 0x6A, +0x04, 0xD2, 0x04, 0x92, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x64, 0x98, 0x01, 0x69, 0x2B, 0xE9, +0x44, 0x36, 0x08, 0x6A, 0x4D, 0xEE, 0x03, 0xF3, +0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEB, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, +0xC8, 0x9B, 0x03, 0xF3, 0x04, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x05, 0x92, 0x07, 0x2A, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, 0xB1, 0x67, +0x80, 0x6E, 0x06, 0x10, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x08, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, 0x01, 0x69, +0xC0, 0xF3, 0x44, 0x98, 0x2B, 0xE9, 0x03, 0xF3, +0x0C, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0xC4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x14, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, +0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF4, 0xD0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x1C, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x63, 0xF4, 0xD4, 0x9B, 0x23, 0xF3, +0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, +0x01, 0x4A, 0x02, 0x72, 0x04, 0xD2, 0x99, 0x61, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x00, 0xF2, 0x1C, 0x22, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF1, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF6, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, 0xB0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF4, 0x10, 0x69, +0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF3, 0xB8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, 0xB4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, +0x0C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF5, 0x18, 0x6C, 0xE1, 0xF7, +0x18, 0x6D, 0xE0, 0xF1, 0x1F, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0x0C, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, +0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF0, 0x0C, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x68, 0xF1, 0x04, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF4, 0x28, 0x9A, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF0, 0x0C, 0x6C, 0xB1, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x08, 0xF1, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, 0x0C, 0x6C, +0x80, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x68, 0xF1, 0x0C, 0x6C, 0x80, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF0, 0x0C, 0x6C, 0x03, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, +0x0C, 0x6C, 0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x00, 0x6C, +0x03, 0x6D, 0x02, 0x6E, 0x40, 0xEA, 0x01, 0x69, +0xC0, 0xF3, 0x44, 0x98, 0x2B, 0xE9, 0x23, 0xF4, +0x18, 0x6C, 0xB1, 0x67, 0xD1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, 0x18, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, 0x04, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, +0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, 0x14, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x04, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x14, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, 0x1C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, +0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, 0x0C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, 0x1C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x0C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x14, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0xC0, 0x9B, 0xC9, 0x12, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x04, 0xD2, 0x09, 0xF0, 0x4C, 0xA2, 0xE0, 0xF0, +0x1B, 0x22, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0xD8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF4, +0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x04, 0x93, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, 0x00, 0x6C, +0x68, 0xF4, 0xD2, 0xA3, 0x04, 0x6B, 0x0E, 0xF0, +0x00, 0x6D, 0x67, 0xEE, 0xC3, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x1C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, +0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0x68, 0xF4, +0xD2, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF4, 0x00, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x23, 0xF0, +0x10, 0x6C, 0x68, 0xF4, 0xD2, 0xA2, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, 0x04, 0x4B, +0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, +0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0x68, 0xF4, +0xD2, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF4, 0x08, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x23, 0xF0, +0x10, 0x6C, 0x68, 0xF4, 0xD2, 0xA2, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, 0x0C, 0x4B, +0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, +0x23, 0xF0, 0x10, 0x6C, 0x68, 0xF4, 0xD2, 0xA2, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, +0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, +0x14, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x1C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, +0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, 0x68, 0xF4, +0xD2, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF4, 0x00, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x28, 0xF1, +0x10, 0x6C, 0x68, 0xF4, 0xD2, 0xA2, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, 0x04, 0x4B, +0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x04, 0x92, +0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, 0x68, 0xF4, +0xD2, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF4, 0x08, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, 0x28, 0xF1, +0x10, 0x6C, 0x68, 0xF4, 0xD2, 0xA2, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, 0x0C, 0x4B, +0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x04, 0x92, 0x04, 0x6B, +0x28, 0xF1, 0x10, 0x6C, 0x68, 0xF4, 0xD2, 0xA2, +0xB1, 0x67, 0xC0, 0xF3, 0x44, 0x98, 0x67, 0xEE, +0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, +0x14, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x63, 0x11, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, +0xA3, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, 0x04, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, +0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF5, 0x04, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF5, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, +0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x1C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, 0x04, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, +0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF5, 0x04, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF5, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, +0x0C, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x30, 0xF0, +0x20, 0x68, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF5, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, +0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF5, 0x18, 0x6C, 0xE1, 0xF7, +0x18, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF0, 0x2C, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0x63, 0xF0, 0x04, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x68, 0xF1, 0x04, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF4, +0x28, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x0C, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, 0x0C, 0x6C, +0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x63, 0xF0, 0x0C, 0x6C, 0x80, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x68, 0xF1, 0x0C, 0x6C, 0x80, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0x6D, +0xC5, 0x67, 0x03, 0xF0, 0x0C, 0x6C, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0x6D, 0xC5, 0x67, +0x08, 0xF1, 0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF2, 0x00, 0x6C, 0x03, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x06, 0x67, 0x03, 0xF5, +0xD4, 0x9B, 0x09, 0xD5, 0x01, 0x6D, 0x24, 0x67, +0x0B, 0xD7, 0x63, 0xF5, 0x10, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x00, 0x6A, 0x80, 0x98, 0x1F, 0xF7, +0x00, 0x6B, 0x8C, 0xEB, 0x02, 0xF0, 0x00, 0x73, +0x01, 0x60, 0x09, 0x2B, 0x30, 0xF0, 0x20, 0x6C, +0x60, 0x98, 0xA3, 0xF0, 0x98, 0x9C, 0x6D, 0xE4, +0x80, 0x99, 0x80, 0xDB, 0x07, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF0, 0x7C, 0x9B, 0x91, 0xE3, +0x60, 0x99, 0x60, 0xDC, 0x01, 0x4A, 0xFF, 0x6B, +0x6C, 0xEA, 0x03, 0x72, 0x04, 0x48, 0x04, 0x49, +0xE1, 0x61, 0x00, 0x68, 0x0B, 0x92, 0x30, 0xF0, +0x20, 0x69, 0x01, 0x6D, 0x11, 0xE2, 0x09, 0x92, +0x80, 0xAC, 0xAB, 0xED, 0x0D, 0xE2, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x99, 0x04, 0x48, 0x40, 0xEA, +0x2C, 0x70, 0xF0, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xAF, 0xF5, 0x4D, 0xA2, 0x01, 0x72, 0x0A, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, +0x03, 0xF0, 0x0C, 0x6C, 0x83, 0xF0, 0xAC, 0x9B, +0x00, 0x6E, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x99, 0x83, 0xF0, 0xAC, 0x9B, +0x03, 0xF0, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0xAF, 0xF5, 0x4F, 0xA2, +0x01, 0x72, 0x0C, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, +0x08, 0xF1, 0x0C, 0x6C, 0x83, 0xF0, 0xAC, 0x9B, +0x00, 0x6E, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, +0x83, 0xF0, 0xAC, 0x9B, 0x08, 0xF1, 0x0C, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xCF, 0xF5, 0x5C, 0xA2, 0x1E, 0x22, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, +0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF6, +0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF3, 0x30, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0xA3, 0xF0, 0x04, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA8, 0xF1, 0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, +0x4C, 0x9A, 0x01, 0x6B, 0x6B, 0xEB, 0x30, 0xF0, +0x20, 0x68, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF1, 0xA0, 0x9B, +0x23, 0xF6, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF5, 0xB8, 0x9B, 0xC3, 0xF4, 0x10, 0x6C, +0x07, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF0, 0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF5, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6E, 0xCB, 0xEE, +0xA6, 0x67, 0x23, 0xF4, 0x18, 0x6C, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x14, 0x6C, +0x00, 0xF3, 0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF5, 0xBC, 0x9B, 0x21, 0xF0, 0x04, 0x6C, +0x03, 0x6E, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, 0xFC, 0x9B, +0xFF, 0x6A, 0x04, 0x6B, 0xC0, 0xA7, 0x4C, 0xED, +0x4C, 0xEC, 0x4C, 0xEE, 0xCD, 0xEB, 0x4C, 0xEB, +0x60, 0xC7, 0x06, 0x2D, 0x07, 0x6B, 0x07, 0x24, +0x01, 0x74, 0x07, 0x6B, 0x12, 0x61, 0x0C, 0x10, +0x07, 0x2C, 0x79, 0x6B, 0x6B, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF5, 0x40, 0x9A, 0x08, 0x10, +0x01, 0x74, 0x07, 0x61, 0x79, 0x6B, 0x6B, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF5, 0x44, 0x9A, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, +0x5C, 0x9A, 0xC0, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6E, 0x30, 0xF0, 0x20, 0x68, 0xCC, 0xEC, +0xC0, 0xF3, 0x44, 0x98, 0xAC, 0xEE, 0x01, 0x69, +0x08, 0x6B, 0x2B, 0xE9, 0xC4, 0x36, 0x04, 0xD4, +0xB1, 0x67, 0x03, 0xF3, 0x00, 0x6C, 0x6D, 0xEE, +0x40, 0xEA, 0x04, 0x92, 0x12, 0x2A, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, +0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, +0x18, 0x6C, 0xB1, 0x67, 0x23, 0xF5, 0xC8, 0x9B, +0x11, 0x10, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x0C, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF5, 0xCC, 0x9B, 0xC3, 0xF3, +0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF4, 0xD8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0x30, 0xF0, 0x20, 0x68, +0xC3, 0xF3, 0x18, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x0C, 0x6C, 0x06, 0xF0, +0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, +0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x00, 0x68, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF5, 0xB0, 0x9A, +0x02, 0xF7, 0x00, 0x6C, 0x80, 0x18, 0xE6, 0x3C, +0x20, 0x6B, 0x4C, 0xEB, 0x0A, 0x2B, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, +0x01, 0x48, 0x40, 0xEA, 0x0A, 0x70, 0xEC, 0x61, +0x0A, 0x68, 0x50, 0x67, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0xF7, 0x1F, 0x68, +0x8C, 0xE8, 0x80, 0x18, 0x8A, 0x21, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF5, 0xD4, 0x9A, 0x01, 0x69, +0x2B, 0xE9, 0x0D, 0xEE, 0xB1, 0x67, 0x02, 0xF7, +0x00, 0x6C, 0x80, 0x18, 0xFB, 0x3C, 0xB1, 0x67, +0x02, 0xF7, 0x08, 0x6C, 0x80, 0x18, 0xE6, 0x3C, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0xF7, 0x1F, 0x68, +0x25, 0x67, 0x0C, 0xD6, 0x8C, 0xE8, 0x37, 0x25, +0x61, 0x45, 0x00, 0x6A, 0x0E, 0x2B, 0x80, 0x18, +0x8A, 0x21, 0x01, 0x69, 0x0C, 0x96, 0x2B, 0xE9, +0x02, 0xF7, 0x04, 0x6C, 0xB1, 0x67, 0x80, 0x18, +0xFB, 0x3C, 0x02, 0xF7, 0x00, 0x6C, 0xB1, 0x67, +0x1F, 0x10, 0x71, 0x67, 0x66, 0xEA, 0x01, 0x6C, +0x8C, 0xEB, 0x04, 0x2B, 0x01, 0x4A, 0x20, 0x72, +0xF8, 0x61, 0x00, 0x6A, 0x90, 0x67, 0x04, 0xD2, +0x2F, 0xE9, 0x80, 0x18, 0x99, 0x21, 0x4C, 0xE9, +0x80, 0x18, 0x8A, 0x21, 0x0C, 0x96, 0x04, 0x92, +0x01, 0x6D, 0x02, 0xF7, 0x04, 0x6C, 0xC4, 0xEA, +0xAB, 0xED, 0x2D, 0xEE, 0x80, 0x18, 0xFB, 0x3C, +0x01, 0x6D, 0x02, 0xF7, 0x00, 0x6C, 0xAB, 0xED, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF5, 0xD8, 0x9A, +0x0D, 0xEE, 0x80, 0x18, 0xFB, 0x3C, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x38, 0x6C, 0x18, 0xF0, +0x00, 0x6D, 0x01, 0x6E, 0x80, 0x18, 0xA9, 0x21, +0x38, 0x6C, 0x01, 0xF4, 0x00, 0x6D, 0x01, 0x6E, +0x80, 0x18, 0xA9, 0x21, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x38, 0x6C, 0x06, 0xF0, 0x00, 0x6D, 0x03, 0x6E, +0x80, 0x18, 0xA9, 0x21, 0x38, 0x6C, 0x00, 0xF3, +0x00, 0x6D, 0x03, 0x6E, 0x80, 0x18, 0xA9, 0x21, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, +0x05, 0x22, 0x80, 0x18, 0xD5, 0x21, 0x80, 0x18, +0xCC, 0x21, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xEF, 0xF5, 0xD4, 0x9A, 0x01, 0x6D, 0x38, 0x6C, +0xAB, 0xED, 0x80, 0x18, 0xA9, 0x21, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x00, 0x6A, 0x09, 0xD5, +0x27, 0x67, 0xA0, 0x9E, 0x1F, 0xF7, 0x00, 0x6B, +0xAC, 0xEB, 0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, +0x08, 0x2B, 0x30, 0xF0, 0x20, 0x6D, 0x60, 0x9E, +0xA3, 0xF0, 0xB8, 0x9D, 0x6D, 0xE5, 0x60, 0x9B, +0x06, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, +0x7C, 0x9B, 0xB5, 0xE3, 0x60, 0x9D, 0x55, 0xE4, +0x04, 0x4A, 0x0C, 0x72, 0x60, 0xDD, 0x04, 0x4E, +0xE4, 0x61, 0x00, 0x68, 0x09, 0xE1, 0x80, 0xAA, +0x01, 0x6D, 0xAB, 0xED, 0x80, 0x18, 0x6E, 0x3C, +0x09, 0x94, 0x0D, 0xE4, 0x04, 0x48, 0x2C, 0x70, +0x40, 0xDB, 0xF4, 0x61, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0x4C, 0xED, 0x4C, 0xEC, 0xCC, 0xEA, +0x4B, 0xEA, 0xC0, 0xF7, 0x42, 0x32, 0x30, 0xF0, +0x20, 0x68, 0x44, 0x32, 0xC0, 0xF3, 0x64, 0x98, +0x06, 0xD5, 0x04, 0xD2, 0xA4, 0x36, 0x08, 0x6A, +0x01, 0x6D, 0x05, 0xD4, 0x4D, 0xEE, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEB, 0x05, 0x92, +0x0A, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x43, 0xF4, +0xA0, 0x9B, 0x03, 0x6E, 0x09, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF4, +0xA0, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF1, +0xA0, 0x9B, 0xC3, 0xF3, 0x14, 0x69, 0x91, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF4, 0xB4, 0x9B, +0x91, 0x67, 0x10, 0x6E, 0x40, 0xEA, 0x05, 0x92, +0x22, 0x69, 0x06, 0x93, 0x38, 0xEA, 0x44, 0x6A, +0x12, 0xE9, 0x58, 0xEB, 0x04, 0x93, 0x12, 0xEA, +0x45, 0xE1, 0x88, 0x6A, 0x58, 0xEB, 0x12, 0xEA, +0x45, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x21, 0xE2, 0x25, 0xE2, 0x00, 0x6A, +0xA8, 0xF5, 0x1C, 0x48, 0xC8, 0xF6, 0x0C, 0x49, +0x04, 0xD2, 0x04, 0x93, 0x01, 0x6D, 0xC3, 0xF3, +0x18, 0x6C, 0x68, 0x36, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF4, 0x78, 0x9B, 0xAB, 0xED, 0x6D, 0xEE, +0x40, 0xEA, 0x01, 0x6D, 0xE3, 0xF3, 0x1C, 0x6C, +0xAB, 0xED, 0x80, 0x18, 0x6E, 0x3C, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF4, 0x7C, 0x9B, 0x4C, 0xEB, +0x62, 0x33, 0x62, 0x33, 0x60, 0xC8, 0xE1, 0xF7, +0x1F, 0x6B, 0x4C, 0xEB, 0x04, 0x92, 0x60, 0xC9, +0x02, 0x48, 0x01, 0x4A, 0x11, 0x72, 0x04, 0xD2, +0x02, 0x49, 0xD7, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF4, 0xA0, 0x9B, 0x23, 0xF3, 0x00, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x00, 0x6E, 0x40, 0xEA, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xFF, 0x6A, 0x24, 0x67, 0xC6, 0xF5, 0x10, 0x48, +0x4C, 0xED, 0x4C, 0xE9, 0x68, 0xF4, 0x45, 0xA0, +0x06, 0xD5, 0x24, 0x36, 0x07, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x9A, 0x01, 0x6D, +0x08, 0x6A, 0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF4, 0xA0, 0x9B, 0x23, 0xF3, 0x00, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x68, 0xF4, 0x44, 0xA0, +0x4B, 0x2A, 0x06, 0x92, 0x03, 0x22, 0x12, 0x6A, +0x68, 0xF4, 0x4A, 0xC0, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x6B, 0x2F, 0xF2, 0xDA, 0xA3, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, +0xFF, 0x6D, 0x40, 0xEA, 0x01, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, 0xF8, 0x9A, +0x30, 0xF0, 0x20, 0x6B, 0xEE, 0xF6, 0x08, 0x4B, +0x83, 0x67, 0xB1, 0x67, 0xDE, 0x6E, 0x06, 0xD3, +0x80, 0x18, 0xE1, 0x4E, 0x06, 0x94, 0xE1, 0xF7, +0x1F, 0x6F, 0x20, 0x6A, 0xB1, 0x67, 0x56, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x18, 0x6C, 0x02, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF5, 0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x23, 0xF3, 0x04, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x0C, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x18, 0x6E, 0x49, 0x10, +0x06, 0x92, 0x03, 0x22, 0x12, 0x6A, 0x68, 0xF4, +0x4A, 0xC0, 0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF1, 0xF8, 0x9A, 0x30, 0xF0, +0x20, 0x68, 0xEE, 0xF6, 0x08, 0x48, 0x90, 0x67, +0xB1, 0x67, 0xDE, 0x6E, 0x80, 0x18, 0xE1, 0x4E, +0xE1, 0xF7, 0x1F, 0x6F, 0x90, 0x67, 0x00, 0x6A, +0xB1, 0x67, 0x56, 0x6E, 0x30, 0xF0, 0x20, 0x68, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6B, 0x2F, 0xF2, 0xDA, 0xA3, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x18, 0x6C, 0x02, 0x6D, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF5, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, +0x04, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x38, 0x6E, 0x40, 0xEA, 0x07, 0x93, 0x06, 0x73, +0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, +0x1F, 0x6D, 0x08, 0x6E, 0x40, 0xEA, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x8C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x06, 0xD2, 0xC6, 0xF5, 0x10, 0x4B, 0x68, 0xF4, +0x45, 0xA3, 0x07, 0xD3, 0x06, 0x93, 0x30, 0xF0, +0x20, 0x68, 0x08, 0xD2, 0x64, 0x31, 0x08, 0x6A, +0x4D, 0xE9, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xD1, 0x67, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, +0x10, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x3F, 0x6D, 0xC5, 0x67, +0xC3, 0xF3, 0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0xD1, 0x67, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF5, 0x10, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF4, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x00, 0x69, 0x91, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0xE0, 0xF3, 0x00, 0x6D, 0x12, 0x6E, 0x40, 0xEA, +0x07, 0x93, 0x68, 0xF4, 0x44, 0xA3, 0x11, 0x2A, +0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x69, 0x06, 0x95, 0x23, 0xF1, +0xF8, 0x9A, 0xEE, 0xF6, 0x08, 0x49, 0x91, 0x67, +0xDE, 0x6E, 0x80, 0x18, 0xE1, 0x4E, 0x20, 0x6A, +0x10, 0x10, 0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x69, 0x06, 0x95, +0x23, 0xF1, 0xF8, 0x9A, 0xEE, 0xF6, 0x08, 0x49, +0x91, 0x67, 0xDE, 0x6E, 0x80, 0x18, 0xE1, 0x4E, +0x00, 0x6A, 0x06, 0x95, 0x91, 0x67, 0x56, 0x6E, +0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, +0x0C, 0x6C, 0xFF, 0x6D, 0x12, 0x6E, 0x40, 0xEA, +0x08, 0x92, 0x06, 0x72, 0x0A, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, +0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x08, 0x6E, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, +0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xFF, 0x68, 0x68, 0xF4, 0x65, 0xA2, 0x8C, 0xE8, +0x06, 0xD2, 0x04, 0x32, 0x07, 0xD2, 0x08, 0xD3, +0x07, 0x93, 0x30, 0xF0, 0x20, 0x69, 0x08, 0x6A, +0x4D, 0xEB, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, +0xC3, 0x67, 0x07, 0xD3, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF5, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0x3F, 0x6D, 0xC5, 0x67, +0xC3, 0xF3, 0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0x07, 0x96, 0x01, 0x6D, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF4, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x99, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, +0x00, 0x6C, 0xE0, 0xF3, 0x00, 0x6D, 0x12, 0x6E, +0x40, 0xEA, 0x06, 0x92, 0x68, 0xF4, 0x44, 0xA2, +0x06, 0xD2, 0x5B, 0x2A, 0x07, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF5, 0xE4, 0x9A, +0x30, 0xF0, 0x20, 0x69, 0xEE, 0xF6, 0x08, 0x49, +0x91, 0x67, 0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, +0xE1, 0x4E, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, +0x9E, 0x6E, 0x20, 0x6F, 0x04, 0xD3, 0x80, 0x18, +0xE1, 0x4E, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x9E, 0x6E, 0x00, 0xF4, 0x00, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF1, 0x18, 0x4A, 0xE0, 0x9A, 0x01, 0x6B, +0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0xE1, 0x4E, 0x10, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x01, 0x6B, +0x91, 0x67, 0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, +0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF1, 0x18, 0x4B, 0xE0, 0x9B, +0x06, 0x92, 0x91, 0x67, 0xB0, 0x67, 0x18, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x06, 0x92, +0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, 0x01, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x04, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, 0x70, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x06, 0x93, +0x5A, 0x10, 0x07, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF5, 0xE4, 0x9A, 0x30, 0xF0, +0x20, 0x69, 0xEE, 0xF6, 0x08, 0x49, 0x91, 0x67, +0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, 0xE1, 0x4E, +0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, +0x20, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, 0x9E, 0x6E, +0x00, 0xF4, 0x00, 0x6F, 0x04, 0xD3, 0x80, 0x18, +0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, +0x18, 0x4B, 0xE0, 0x9B, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0xDE, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x01, 0x6B, 0x91, 0x67, +0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, 0x04, 0xD3, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF1, 0x18, 0x4B, 0xE0, 0x9B, 0x01, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x18, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x33, 0x6E, 0xE2, 0x67, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x04, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x08, 0x6E, 0x70, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x00, 0x6B, 0x91, 0x67, +0x30, 0xF0, 0x20, 0x69, 0xB0, 0x67, 0xEF, 0x6E, +0x04, 0x6F, 0xEE, 0xF6, 0x08, 0x49, 0x04, 0xD3, +0x80, 0x18, 0xE1, 0x4E, 0x00, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x57, 0x6E, 0x01, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0xEF, 0x6E, 0x10, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, +0x2F, 0xF2, 0x54, 0xA2, 0x01, 0x22, 0x20, 0x6A, +0x7F, 0x6F, 0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, +0x30, 0xF0, 0x20, 0x69, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0xC0, 0xF3, 0x44, 0x99, 0xC3, 0xF3, +0x0C, 0x6C, 0xFF, 0x6D, 0x09, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, 0x0C, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xB0, 0x67, 0x10, 0x6F, +0x01, 0x6A, 0xEE, 0xF6, 0x08, 0x4C, 0xEF, 0x6E, +0x30, 0xF0, 0x20, 0x68, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, +0xFF, 0x6D, 0x12, 0x6E, 0x40, 0xEA, 0x08, 0x92, +0x06, 0x72, 0x08, 0x61, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x08, 0x6E, 0x07, 0x10, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x38, 0x6E, 0x40, 0xEA, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x68, 0xF4, 0x65, 0xA2, 0x30, 0xF0, 0x20, 0x68, +0xFF, 0x69, 0x8C, 0xE9, 0x07, 0xD3, 0xC0, 0xF3, +0x64, 0x98, 0x06, 0xD2, 0x24, 0x36, 0x08, 0x6A, +0x01, 0x6D, 0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF5, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x43, 0xF5, 0xC8, 0x9B, 0x01, 0x6D, 0x23, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x06, 0x93, +0x68, 0xF4, 0x44, 0xA3, 0x03, 0x2A, 0x81, 0xF0, +0x07, 0x4A, 0x02, 0x10, 0xC1, 0xF0, 0x0A, 0x6A, +0x30, 0xF0, 0x20, 0x6C, 0xEE, 0xF6, 0x08, 0x4C, +0xB1, 0x67, 0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, +0x09, 0x6E, 0x40, 0xEA, 0x07, 0x92, 0x06, 0x72, +0x0A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, +0x1F, 0x6D, 0x08, 0x6E, 0x09, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, +0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x38, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xFF, 0x68, 0x8C, 0xE8, 0x68, 0xF4, 0x65, 0xA2, +0x06, 0xD2, 0x04, 0x32, 0x07, 0xD2, 0x08, 0xD3, +0x07, 0x93, 0x30, 0xF0, 0x20, 0x69, 0x08, 0x6A, +0x4D, 0xEB, 0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, +0xC3, 0x67, 0x07, 0xD3, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF5, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x99, +0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0x3F, 0x6D, 0xC5, 0x67, +0xC3, 0xF3, 0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0x07, 0x96, 0x01, 0x6D, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF4, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x99, 0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0x30, 0xF0, +0x20, 0x69, 0xEE, 0xF6, 0x08, 0x49, 0x23, 0xF3, +0x00, 0x6C, 0xE0, 0xF3, 0x00, 0x6D, 0x12, 0x6E, +0x40, 0xEA, 0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0xDF, 0x6E, 0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x00, 0x6B, 0x91, 0x67, 0xB0, 0x67, +0x9E, 0x6E, 0x20, 0x6F, 0x04, 0xD3, 0x80, 0x18, +0xE1, 0x4E, 0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x9E, 0x6E, 0x00, 0xF4, 0x00, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x06, 0x93, 0x68, 0xF4, +0x64, 0xA3, 0x06, 0xD3, 0x35, 0x2B, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF1, 0x18, 0x4B, 0xE0, 0x9B, +0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x81, 0xF0, +0x07, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, +0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0xEF, 0x6E, 0x04, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, +0x18, 0x4A, 0x06, 0x93, 0xE0, 0x9A, 0x91, 0x67, +0xB0, 0x67, 0x18, 0x6E, 0x04, 0xD3, 0x80, 0x18, +0xE1, 0x4E, 0x04, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x08, 0x6E, 0x70, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x06, 0x93, 0x04, 0xD3, 0x3C, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, 0x18, 0x4B, +0xE0, 0x9B, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0xDE, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x61, 0xF0, 0x08, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x56, 0x6E, 0xE1, 0xF7, 0x1F, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0xEF, 0x6E, 0x04, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF1, 0x18, 0x4A, 0xE0, 0x9A, 0x01, 0x6B, +0x91, 0x67, 0xB0, 0x67, 0x18, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0xE1, 0x4E, 0x00, 0x6B, 0x91, 0x67, +0xB0, 0x67, 0x33, 0x6E, 0x01, 0x6F, 0x04, 0xD3, +0x80, 0x18, 0xE1, 0x4E, 0x04, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x08, 0x6E, 0x70, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x00, 0x6A, 0x04, 0xD2, +0x91, 0x67, 0x30, 0xF0, 0x20, 0x69, 0xB0, 0x67, +0xEF, 0x6E, 0x04, 0x6F, 0xEE, 0xF6, 0x08, 0x49, +0x80, 0x18, 0xE1, 0x4E, 0x00, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x57, 0x6E, 0x01, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0xEF, 0x6E, 0x10, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, +0x2F, 0xF2, 0x54, 0xA2, 0x01, 0x22, 0x20, 0x6A, +0x91, 0x67, 0xB0, 0x67, 0x33, 0x6E, 0x7F, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0xC3, 0xF3, +0x0C, 0x6C, 0xFF, 0x6D, 0x09, 0x6E, 0x40, 0xEA, +0x08, 0x93, 0x06, 0x73, 0x0A, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF3, +0x0C, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x08, 0x6E, +0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x23, 0xF3, 0x0C, 0x6C, 0xE1, 0xF7, +0x1F, 0x6D, 0x38, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF3, +0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF4, 0x10, 0x4A, 0xE0, 0x9A, 0x30, 0xF0, +0x20, 0x68, 0x00, 0x69, 0xEE, 0xF6, 0x08, 0x48, +0x0E, 0xD4, 0x0F, 0xD5, 0x90, 0x67, 0xB1, 0x67, +0xEF, 0x6E, 0x04, 0xD1, 0x80, 0x18, 0xE1, 0x4E, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x10, 0x4B, +0xE0, 0x9B, 0x90, 0x67, 0x01, 0x6D, 0xEF, 0x6E, +0x04, 0xD1, 0x80, 0x18, 0xE1, 0x4E, 0x0E, 0x90, +0x0F, 0x91, 0x00, 0x6A, 0x07, 0xD2, 0x30, 0xF0, +0x20, 0x6B, 0xEE, 0xF6, 0x08, 0x4B, 0x06, 0xD3, +0x40, 0x99, 0xC0, 0x98, 0x83, 0x67, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, 0x10, 0x4A, +0xE0, 0x9A, 0x00, 0x6D, 0x80, 0x18, 0xE1, 0x4E, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x10, 0x4B, +0xC0, 0x98, 0x41, 0x99, 0xE0, 0x9B, 0x06, 0x94, +0x01, 0x6D, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x07, 0x92, 0x04, 0x48, 0x08, 0x49, 0x01, 0x4A, +0x07, 0xD2, 0x07, 0x93, 0xFF, 0x6A, 0x4C, 0xEB, +0x03, 0x73, 0x58, 0x67, 0x07, 0xD3, 0x08, 0xD2, +0xD6, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, +0x18, 0x9A, 0x06, 0x94, 0x78, 0x67, 0xF0, 0x67, +0x00, 0x6D, 0xDE, 0x6E, 0x04, 0xD3, 0x80, 0x18, +0xE1, 0x4E, 0x08, 0x92, 0x06, 0x94, 0xF0, 0x67, +0x01, 0x6D, 0xDE, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF5, 0xB0, 0x9B, +0xC0, 0xF3, 0x44, 0x9A, 0xA3, 0xF3, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF4, 0x30, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF1, 0x08, 0x4A, 0x40, 0x9A, 0x30, 0xF0, +0x20, 0x68, 0xEE, 0xF6, 0x08, 0x48, 0x90, 0x67, +0xF1, 0x67, 0x00, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x04, 0x6B, 0x90, 0x67, +0x00, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD3, +0x80, 0x18, 0xE1, 0x4E, 0x90, 0x67, 0xF1, 0x67, +0x03, 0x6A, 0x00, 0x6D, 0x3E, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF5, 0x4C, 0x9A, 0x90, 0x67, 0xF1, 0x67, +0x00, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x00, 0x6B, 0xA3, 0x67, 0x90, 0x67, +0xF1, 0x67, 0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, +0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, +0x08, 0x4A, 0x40, 0x9A, 0x90, 0x67, 0xF1, 0x67, +0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x04, 0x6B, 0x90, 0x67, 0x01, 0x6D, +0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD3, 0x80, 0x18, +0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF5, +0x50, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, +0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x90, 0x67, 0xF1, 0x67, 0x00, 0x6A, 0x01, 0x6D, +0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF1, 0x08, 0x4B, +0x60, 0x9B, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, +0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, +0x90, 0x67, 0x06, 0x6A, 0x00, 0x6D, 0x33, 0x6E, +0x0F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x03, 0x6B, 0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, +0x3E, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF5, 0x54, 0x9A, +0x90, 0x67, 0xF1, 0x67, 0x00, 0x6D, 0x3F, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x00, 0x6A, +0x90, 0x67, 0xF1, 0x67, 0xA2, 0x67, 0xEF, 0x6E, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF1, 0x08, 0x4B, 0x60, 0x9B, +0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, 0xEF, 0x6E, +0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, 0x90, 0x67, +0x06, 0x6A, 0x01, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF5, 0x58, 0x9A, 0x90, 0x67, +0xF1, 0x67, 0x01, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x00, 0x6B, 0x90, 0x67, +0xF1, 0x67, 0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF1, 0x08, 0x4A, 0x40, 0x9A, 0x90, 0x67, +0xF1, 0x67, 0x00, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x07, 0x6B, 0x90, 0x67, +0x00, 0x6D, 0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD3, +0x80, 0x18, 0xE1, 0x4E, 0x90, 0x67, 0xF1, 0x67, +0x03, 0x6A, 0x00, 0x6D, 0x3E, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF5, 0x5C, 0x9A, 0x90, 0x67, 0xF1, 0x67, +0x00, 0x6D, 0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x00, 0x6B, 0xA3, 0x67, 0x90, 0x67, +0xF1, 0x67, 0xEF, 0x6E, 0x04, 0xD3, 0x80, 0x18, +0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, +0x08, 0x4A, 0x40, 0x9A, 0x90, 0x67, 0xF1, 0x67, +0x01, 0x6D, 0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x07, 0x6B, 0x90, 0x67, 0x01, 0x6D, +0x33, 0x6E, 0x0F, 0x6F, 0x04, 0xD3, 0x80, 0x18, +0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, +0x40, 0x9A, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, +0x3F, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x90, 0x67, 0xF1, 0x67, 0x00, 0x6A, 0x01, 0x6D, +0xEF, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x00, 0x6B, 0xA3, 0x67, 0x90, 0x67, 0xF1, 0x67, +0x19, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, +0x90, 0x67, 0xF1, 0x67, 0x00, 0x6A, 0x01, 0x6D, +0x19, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, +0x4C, 0xED, 0x06, 0xD4, 0x07, 0xD5, 0x01, 0x68, +0x00, 0x69, 0x85, 0xF5, 0x1C, 0x6C, 0xFF, 0x6D, +0x80, 0x18, 0x6E, 0x3C, 0x55, 0x72, 0x11, 0x61, +0x07, 0x92, 0x03, 0x2A, 0x00, 0x68, 0x50, 0x67, +0x17, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, +0xA4, 0x9A, 0x03, 0xF3, 0x08, 0x6C, 0xFF, 0x68, +0x80, 0x18, 0x6E, 0x3C, 0x4C, 0xE8, 0x00, 0x6A, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x64, 0x6C, 0x01, 0x49, 0x40, 0xEA, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE9, 0x01, 0x6A, +0xA1, 0xF3, 0x18, 0x59, 0x02, 0x61, 0x01, 0x68, +0x01, 0x10, 0xD7, 0x2A, 0x06, 0x95, 0x30, 0xF0, +0x20, 0x69, 0xEE, 0xF6, 0x08, 0x49, 0x91, 0x67, +0x00, 0x6A, 0x8F, 0x6E, 0x08, 0xF0, 0x00, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x01, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0x95, +0x43, 0xF5, 0xE4, 0x9A, 0x91, 0x67, 0x00, 0x6E, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x30, 0xF0, +0x20, 0x69, 0x40, 0xEA, 0x06, 0x92, 0x01, 0x6D, +0x08, 0x6B, 0x44, 0x36, 0xC0, 0xF3, 0x44, 0x99, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x6D, 0xEE, +0x40, 0xEA, 0x0A, 0x28, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x99, 0x23, 0xF3, 0x00, 0x6C, +0x23, 0xF4, 0xB0, 0x9B, 0x02, 0x6E, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x99, +0x23, 0xF4, 0xB0, 0x9B, 0x23, 0xF3, 0x00, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF3, 0x10, 0x6C, +0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x00, 0x6A, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x00, 0x68, 0x05, 0xD5, +0x04, 0xD4, 0x05, 0x92, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF4, 0x10, 0x4B, 0xE0, 0x9B, 0xC0, 0x9A, +0x30, 0xF0, 0x20, 0x69, 0xEE, 0xF6, 0x08, 0x49, +0x91, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x9C, 0x4E, +0x04, 0x93, 0x91, 0x67, 0x01, 0x6D, 0x40, 0xDB, +0x05, 0x92, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, +0x10, 0x4B, 0xE0, 0x9B, 0xC0, 0x9A, 0x01, 0x48, +0x80, 0x18, 0x9C, 0x4E, 0x04, 0x93, 0x41, 0xDB, +0xFF, 0x6A, 0x4C, 0xE8, 0x05, 0x92, 0x08, 0x4B, +0x03, 0x70, 0x04, 0x4A, 0x05, 0xD2, 0x04, 0xD3, +0xD8, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x04, 0x67, +0x30, 0xF0, 0x20, 0x6A, 0x2C, 0xE8, 0xC0, 0xF3, +0x44, 0x9A, 0x08, 0x6B, 0x04, 0x36, 0x01, 0x6D, +0x6D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, +0xF0, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xEE, 0xF6, +0x08, 0x4C, 0xB0, 0x67, 0x58, 0x6E, 0x80, 0x18, +0x9C, 0x4E, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, +0x64, 0x9B, 0x4C, 0xEB, 0x62, 0x33, 0x7A, 0x33, +0x2C, 0xEB, 0x0B, 0x23, 0x3F, 0x73, 0x09, 0x60, +0x07, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, 0x62, 0x32, +0x2C, 0xEA, 0x03, 0x22, 0x3F, 0x72, 0x00, 0x6A, +0x56, 0x61, 0x30, 0xF0, 0x20, 0x69, 0xEE, 0xF6, +0x08, 0x49, 0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x57, 0x6E, 0x01, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0xEF, 0x6E, 0x10, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, 0x2F, 0xF2, +0x54, 0xA2, 0x01, 0x22, 0x20, 0x6A, 0x91, 0x67, +0x30, 0xF0, 0x20, 0x69, 0xEE, 0xF6, 0x08, 0x49, +0xB0, 0x67, 0x33, 0x6E, 0x7F, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x20, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x08, 0x6E, 0x07, 0xF7, 0x00, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF5, 0xE4, 0x9A, 0x20, 0x6B, +0x91, 0x67, 0xB0, 0x67, 0x08, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF4, 0x10, 0x4A, 0xE0, 0x9A, 0x91, 0x67, +0xB0, 0x67, 0x08, 0x6E, 0x80, 0x18, 0x9C, 0x4E, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x10, 0x4B, +0xE0, 0x9B, 0x91, 0x67, 0xB0, 0x67, 0x58, 0x6E, +0x80, 0x18, 0x9C, 0x4E, 0x00, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0xEF, 0x6E, 0x10, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x01, 0x6A, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x68, 0x0C, 0xEC, 0x01, 0x74, 0xAC, 0xE8, +0x80, 0xF0, 0x0E, 0x60, 0x07, 0x24, 0x02, 0x74, +0xA0, 0xF0, 0x00, 0x60, 0x03, 0x74, 0xA0, 0xF0, +0x01, 0x60, 0xA5, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xE8, 0xF7, 0x64, 0x9A, +0x30, 0xF0, 0x20, 0x6D, 0x30, 0xF0, 0x20, 0x6C, +0xE8, 0xF7, 0x68, 0xDA, 0x30, 0xF0, 0x20, 0x6F, +0x30, 0xF0, 0x20, 0x6B, 0xCF, 0xF5, 0x0C, 0x4D, +0xCF, 0xF5, 0x04, 0x4C, 0xCF, 0xF5, 0x00, 0x4B, +0xAF, 0xF3, 0x0E, 0x4F, 0x00, 0x69, 0x40, 0x9D, +0xE4, 0xF3, 0x0C, 0x41, 0x04, 0x30, 0x42, 0xDD, +0x40, 0xAC, 0x05, 0xD7, 0x42, 0xCC, 0x40, 0xA3, +0x42, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x01, 0xE2, 0x00, 0x6A, 0x04, 0x48, +0x04, 0xD2, 0x40, 0xA0, 0x22, 0x6E, 0x07, 0xD3, +0x44, 0xC0, 0x04, 0x92, 0xD8, 0xEA, 0x44, 0x6A, +0x12, 0xEE, 0x58, 0xE9, 0x12, 0xEA, 0x49, 0xE6, +0x30, 0xF0, 0x20, 0x6E, 0xC6, 0xF5, 0x10, 0x4E, +0x1A, 0x65, 0x49, 0xE6, 0xA8, 0xF5, 0x1C, 0x4A, +0x06, 0xD2, 0x58, 0x67, 0x59, 0xE6, 0x06, 0x92, +0xC8, 0xF6, 0x0C, 0x4E, 0x60, 0xAA, 0x80, 0xF0, +0x68, 0xCA, 0x60, 0xAE, 0x02, 0x4A, 0x80, 0xF0, +0x68, 0xCE, 0x05, 0x93, 0x02, 0x4E, 0x6A, 0xEA, +0xF5, 0x61, 0x04, 0x92, 0x07, 0x93, 0x01, 0x48, +0x01, 0x4A, 0x04, 0xD2, 0x05, 0x92, 0x22, 0x4A, +0x05, 0xD2, 0x04, 0x92, 0x02, 0x72, 0xD1, 0x61, +0x01, 0x49, 0x02, 0x71, 0x04, 0x4D, 0x02, 0x4C, +0x01, 0x4B, 0x44, 0x4F, 0xB8, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0xCF, 0xF5, 0x00, 0x4B, 0x44, 0x43, +0xA7, 0x43, 0x16, 0x4D, 0xC2, 0x67, 0x00, 0x6C, +0x80, 0xC3, 0x01, 0x4B, 0x00, 0x6C, 0xCA, 0xEB, +0x80, 0xCA, 0xFF, 0xF7, 0x88, 0xC2, 0x20, 0xF0, +0x85, 0xC2, 0xFF, 0xF7, 0x89, 0xC2, 0x20, 0xF0, +0x86, 0xC2, 0x80, 0xC5, 0x81, 0xC5, 0x82, 0xC5, +0x02, 0x4A, 0x03, 0x4D, 0xEC, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xE8, 0xF7, +0x6C, 0x9A, 0xE8, 0xF7, 0x64, 0xDA, 0x1F, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, 0xF0, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xB0, 0x67, 0xEE, 0xF6, +0x08, 0x4C, 0x58, 0x6E, 0x80, 0x18, 0x9C, 0x4E, +0xE2, 0xF1, 0x1E, 0x48, 0x30, 0xF0, 0x20, 0x6B, +0x08, 0x30, 0xC6, 0xF5, 0x10, 0x4B, 0x6D, 0xE0, +0x41, 0xDB, 0x09, 0x10, 0x00, 0x6C, 0xB0, 0x67, +0xC4, 0x67, 0x03, 0x10, 0x01, 0x6C, 0xB0, 0x67, +0x00, 0x6E, 0x80, 0x18, 0x04, 0x22, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0x04, 0x67, 0x4C, 0xE8, 0xAC, 0xEA, +0x0E, 0x22, 0x08, 0x6A, 0x04, 0x31, 0x4D, 0xE9, +0x01, 0x6B, 0x44, 0x40, 0x64, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xEE, 0xF6, 0x08, 0x4A, 0x06, 0xD2, +0x6D, 0xE9, 0x06, 0x6A, 0x0D, 0x10, 0x08, 0x6A, +0x04, 0x31, 0x4D, 0xE9, 0x01, 0x6B, 0x44, 0x40, +0x64, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF6, +0x08, 0x4A, 0x06, 0xD2, 0x6D, 0xE9, 0x04, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0x94, +0x43, 0xF5, 0xE4, 0x9A, 0xB0, 0x67, 0x00, 0x6E, +0x80, 0x18, 0xE1, 0x4E, 0x06, 0x94, 0x08, 0xF0, +0x00, 0x6F, 0x01, 0x6B, 0x8F, 0x6E, 0xB0, 0x67, +0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, +0x40, 0xEA, 0x01, 0x6C, 0x80, 0x18, 0xDE, 0x21, +0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x46, 0x21, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x01, 0x6D, 0xD1, 0x67, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, 0xC1, 0x41, +0xAB, 0xED, 0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, +0x01, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0xEF, 0x6E, 0x10, 0x6F, 0x00, 0x6A, 0xEE, 0xF6, +0x08, 0x4C, 0xB0, 0x67, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x01, 0x6D, 0x90, 0x67, 0x80, 0x18, +0x46, 0x21, 0x00, 0x6C, 0x80, 0x18, 0xDE, 0x21, +0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x67, 0x25, +0x22, 0x67, 0x04, 0x2A, 0x01, 0x6C, 0xB0, 0x67, +0x80, 0x18, 0x0A, 0x26, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x41, 0xE0, 0x68, 0xF4, +0x35, 0xC0, 0x51, 0x67, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0xFF, 0x6A, 0x04, 0x67, 0x4C, 0xED, 0x4C, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x2F, 0xF2, 0x55, 0xA2, +0x06, 0x6B, 0x08, 0xD5, 0x4E, 0xEB, 0x01, 0x5B, +0x98, 0x67, 0x07, 0xD4, 0x16, 0x2D, 0x04, 0x24, +0xFF, 0x6A, 0x04, 0x33, 0x01, 0x4A, 0x03, 0x10, +0x04, 0x4A, 0x04, 0x33, 0x40, 0x32, 0x4D, 0xEB, +0x84, 0x40, 0x01, 0x6A, 0x44, 0xEC, 0x4D, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF6, 0x08, 0x4A, +0x08, 0x69, 0x06, 0xD2, 0x6D, 0xE9, 0x04, 0x6A, +0x19, 0x10, 0x08, 0x93, 0x01, 0x73, 0x22, 0x61, +0x07, 0x94, 0x04, 0x24, 0xFF, 0x6A, 0x04, 0x33, +0x01, 0x4A, 0x03, 0x10, 0x07, 0x4A, 0x04, 0x33, +0x40, 0x32, 0x4D, 0xEB, 0x84, 0x40, 0x01, 0x6A, +0x44, 0xEC, 0x4D, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0xEE, 0xF6, 0x08, 0x4A, 0x08, 0x69, 0x06, 0xD2, +0x6D, 0xE9, 0x06, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x06, 0x94, 0x43, 0xF5, 0xE4, 0x9A, +0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, 0xE1, 0x4E, +0x01, 0x6A, 0x25, 0x10, 0x08, 0x93, 0x00, 0x69, +0x02, 0x73, 0x2F, 0x61, 0x07, 0x94, 0x04, 0x24, +0xFF, 0x6A, 0x04, 0x33, 0x01, 0x4A, 0x03, 0x10, +0x0A, 0x4A, 0x04, 0x33, 0x40, 0x32, 0x4D, 0xEB, +0x84, 0x40, 0x01, 0x6A, 0x44, 0xEC, 0x4D, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF6, 0x08, 0x4A, +0x06, 0xD2, 0x07, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x06, 0x94, 0x43, 0xF5, 0xE4, 0x9A, +0x08, 0x69, 0xB0, 0x67, 0x00, 0x6E, 0x6D, 0xE9, +0x80, 0x18, 0xE1, 0x4E, 0x00, 0x6A, 0x06, 0x94, +0xB0, 0x67, 0x8F, 0x6E, 0x08, 0xF0, 0x00, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, +0x40, 0xEA, 0x01, 0x6C, 0x80, 0x18, 0xDE, 0x21, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0xD1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, +0xC0, 0xF3, 0x44, 0x9C, 0x01, 0x6D, 0xC1, 0x41, +0xAB, 0xED, 0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, +0x01, 0x6C, 0x40, 0xEA, 0x01, 0x6D, 0x90, 0x67, +0x80, 0x18, 0x67, 0x25, 0x00, 0x6C, 0x06, 0xD2, +0x80, 0x18, 0xDE, 0x21, 0x04, 0x32, 0x09, 0xD2, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x09, 0x93, 0x01, 0x6D, 0x08, 0x6E, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x6D, 0xEE, 0x40, 0xEA, +0x08, 0x94, 0x1C, 0x2C, 0x7D, 0x67, 0x87, 0x43, +0x11, 0x4C, 0x60, 0xA4, 0x30, 0xF0, 0x20, 0x69, +0xE4, 0xF3, 0x4C, 0x40, 0x06, 0x94, 0x44, 0x32, +0xC6, 0xF5, 0x10, 0x49, 0x29, 0xE2, 0x64, 0xC2, +0x48, 0x2C, 0x07, 0x92, 0x09, 0x22, 0x01, 0x6D, +0x23, 0xF3, 0x18, 0x4C, 0xAB, 0xED, 0x80, 0x18, +0x6E, 0x3C, 0x02, 0xF2, 0x0A, 0x48, 0x35, 0x10, +0x02, 0x6C, 0x38, 0x10, 0x08, 0x93, 0x02, 0x73, +0x38, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, +0xF0, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x30, 0xF0, +0x20, 0x69, 0xC6, 0xF5, 0x10, 0x49, 0xEE, 0xF6, +0x08, 0x4C, 0xB0, 0x67, 0x00, 0x6E, 0x80, 0x18, +0x9C, 0x4E, 0x68, 0xF4, 0x8A, 0xA1, 0xFF, 0x6B, +0x56, 0x32, 0x6C, 0xEA, 0x80, 0x34, 0xF4, 0xF3, +0x68, 0x40, 0x8D, 0xEA, 0x64, 0x33, 0x09, 0x94, +0x2D, 0xE3, 0x42, 0xCB, 0x7D, 0x67, 0x29, 0xE4, +0x87, 0x43, 0x11, 0x4C, 0x60, 0xA4, 0x06, 0x94, +0xC8, 0xF7, 0x7D, 0xC2, 0x12, 0x2C, 0x07, 0x92, +0x0C, 0x22, 0x01, 0x6D, 0x23, 0xF3, 0x1C, 0x4C, +0xAB, 0xED, 0x80, 0x18, 0x6E, 0x3C, 0x02, 0xF2, +0x0C, 0x48, 0x08, 0x30, 0x25, 0xE0, 0x41, 0xD9, +0x04, 0x10, 0x03, 0x6C, 0xB0, 0x67, 0x80, 0x18, +0x0A, 0x26, 0x06, 0x92, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF7, 0x63, 0x11, 0x62, 0x10, 0xD1, 0x0F, 0xD0, +0xFF, 0x6A, 0x04, 0x67, 0x4C, 0xE8, 0x4C, 0xED, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x68, 0xF4, 0x65, 0xA2, 0x0C, 0xD5, 0x00, 0x69, +0x0D, 0xD3, 0xF1, 0xF0, 0x6F, 0x40, 0x6C, 0x33, +0x69, 0xE2, 0x04, 0x4A, 0x0A, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xEF, 0xF5, 0x1C, 0x4A, 0x08, 0xD2, +0x09, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, +0x10, 0x4A, 0xE0, 0x9A, 0xFF, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0x2C, 0xEB, 0xEE, 0xF6, 0x08, 0x48, +0x90, 0x67, 0xA3, 0x67, 0xDF, 0x6E, 0x06, 0xD3, +0x80, 0x18, 0x9C, 0x4E, 0x10, 0x6B, 0x4D, 0xEB, +0x04, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, +0x10, 0x4B, 0xE0, 0x9B, 0x06, 0x95, 0x90, 0x67, +0xDF, 0x6E, 0x80, 0x18, 0xE1, 0x4E, 0x0A, 0x93, +0x06, 0x95, 0x90, 0x67, 0x40, 0x9B, 0x58, 0x6E, +0x30, 0xF0, 0x20, 0x68, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF4, 0x10, 0x4A, 0xE0, 0x9A, +0x80, 0x18, 0xE1, 0x4E, 0xC0, 0xF3, 0x44, 0x98, +0x08, 0x6B, 0x24, 0x36, 0x01, 0x6D, 0x6D, 0xEE, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, +0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x0D, 0x93, +0x06, 0x73, 0x1C, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF3, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x08, 0x93, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0xC0, 0x9B, 0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x08, 0x93, 0x01, 0x6D, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, +0xC2, 0x9B, 0x21, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF3, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, 0x14, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, 0x14, 0x4B, +0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, 0x01, 0x6D, +0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x0C, 0x92, 0x06, 0x22, 0x00, 0x6B, 0x01, 0x72, +0x06, 0xD3, 0xC0, 0xF0, 0x05, 0x61, 0x62, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x43, 0xF4, 0xA0, 0x9B, +0x44, 0x68, 0x23, 0xF3, 0x00, 0x6C, 0x03, 0x6E, +0x40, 0xEA, 0x18, 0xE9, 0x09, 0x93, 0x88, 0x6A, +0x12, 0xE8, 0x58, 0xEB, 0x12, 0xEA, 0x41, 0xE0, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x01, 0xE2, 0x00, 0x6A, 0xA8, 0xF5, 0x1C, 0x48, +0x06, 0xD2, 0xC0, 0xA8, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF4, 0x40, 0x9A, 0x06, 0x93, 0xC0, 0x36, +0x4D, 0xEE, 0x68, 0x32, 0x4D, 0xEE, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, +0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x02, 0x4E, +0x40, 0xEA, 0x06, 0x92, 0x02, 0x48, 0x01, 0x4A, +0x11, 0x72, 0x06, 0xD2, 0xE6, 0x61, 0x44, 0x68, +0x18, 0xE9, 0x09, 0x93, 0x88, 0x6A, 0x12, 0xE8, +0x58, 0xEB, 0x12, 0xEA, 0x41, 0xE0, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x01, 0xE2, +0x00, 0x6A, 0xC8, 0xF6, 0x0C, 0x48, 0x06, 0xD2, +0xC0, 0xA8, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF4, +0x40, 0x9A, 0xC0, 0x36, 0x01, 0x6D, 0x4D, 0xEE, +0x06, 0x92, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x48, 0x33, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x6D, 0xEE, 0x02, 0x48, 0x40, 0xEA, +0x06, 0x93, 0x01, 0x4B, 0x11, 0x73, 0x06, 0xD3, +0xE7, 0x61, 0xE2, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x43, 0xF4, 0xA0, 0x9B, 0x44, 0x68, 0x23, 0xF3, +0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x18, 0xE9, +0x09, 0x93, 0x88, 0x6A, 0x12, 0xE8, 0x58, 0xEB, +0x12, 0xEA, 0x41, 0xE0, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x01, 0xE2, 0x00, 0x6A, +0xC8, 0xF5, 0x1E, 0x48, 0x06, 0xD2, 0xC0, 0xA8, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF4, 0x44, 0x9A, +0x06, 0x93, 0xC0, 0x36, 0x4D, 0xEE, 0x68, 0x32, +0x4D, 0xEE, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, +0xAB, 0xED, 0x02, 0x4E, 0x40, 0xEA, 0x06, 0x92, +0x02, 0x48, 0x01, 0x4A, 0x11, 0x72, 0x06, 0xD2, +0xE6, 0x61, 0x44, 0x68, 0x18, 0xE9, 0x09, 0x93, +0x88, 0x6A, 0x12, 0xE8, 0x58, 0xEB, 0x12, 0xEA, +0x41, 0xE0, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x01, 0xE2, 0x00, 0x6A, 0xE8, 0xF6, +0x0E, 0x48, 0x06, 0xD2, 0xC0, 0xA8, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF4, 0x44, 0x9A, 0xC0, 0x36, +0x01, 0x6D, 0x4D, 0xEE, 0x06, 0x92, 0xC3, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x48, 0x33, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x6D, 0xEE, +0x02, 0x48, 0x40, 0xEA, 0x06, 0x93, 0x01, 0x4B, +0x11, 0x73, 0x06, 0xD3, 0xE7, 0x61, 0x80, 0x10, +0x0B, 0xD1, 0x06, 0x93, 0xFF, 0x6A, 0x6C, 0xEA, +0x11, 0x2A, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x43, 0xF4, +0xA0, 0x9B, 0x23, 0xF3, 0x00, 0x6C, 0x03, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF4, +0x40, 0x9A, 0x10, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x43, 0xF4, 0xA0, 0x9B, 0x23, 0xF3, 0x00, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF4, 0x44, 0x9A, 0x07, 0xD2, 0x06, 0x92, +0x22, 0x68, 0x0B, 0x93, 0x18, 0xEA, 0x44, 0x6A, +0x00, 0x69, 0x12, 0xE8, 0x58, 0xEB, 0x09, 0x93, +0x12, 0xEA, 0x41, 0xE0, 0x88, 0x6A, 0x58, 0xEB, +0x12, 0xEA, 0x41, 0xE0, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x01, 0xE2, 0xA8, 0xF5, +0x1C, 0x48, 0xC0, 0xA8, 0x07, 0x92, 0x01, 0x6D, +0xC0, 0x36, 0x4D, 0xEE, 0x28, 0x32, 0x4D, 0xEE, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, 0x02, 0x4E, +0x01, 0x49, 0x40, 0xEA, 0x11, 0x71, 0x02, 0x48, +0xEC, 0x61, 0x06, 0x92, 0x22, 0x68, 0x0B, 0x93, +0x18, 0xEA, 0x44, 0x6A, 0x00, 0x69, 0x12, 0xE8, +0x58, 0xEB, 0x09, 0x93, 0x12, 0xEA, 0x41, 0xE0, +0x88, 0x6A, 0x58, 0xEB, 0x12, 0xEA, 0x41, 0xE0, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x01, 0xE2, 0xC8, 0xF6, 0x0C, 0x48, 0xC0, 0xA8, +0x07, 0x92, 0x28, 0x33, 0xC0, 0x36, 0x4D, 0xEE, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x6D, 0xEE, 0x01, 0x49, 0x40, 0xEA, 0x11, 0x71, +0x02, 0x48, 0xED, 0x61, 0x06, 0x93, 0x01, 0x4B, +0x02, 0x73, 0x06, 0xD3, 0x82, 0x61, 0x0B, 0x91, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, +0x03, 0xF4, 0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xC3, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF4, 0xA0, 0x9B, 0x23, 0xF3, +0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x00, 0x6A, +0x06, 0xD2, 0x06, 0x92, 0xFF, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0x6C, 0xEA, 0x06, 0x93, 0x07, 0xD2, +0x01, 0x6D, 0x64, 0x36, 0xC0, 0xF3, 0x64, 0x98, +0x08, 0x6A, 0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF3, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, +0xFF, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF1, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF1, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0x23, 0xF3, +0x1C, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF5, 0xB0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x03, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x07, 0x95, 0x43, 0xF5, 0xE4, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xEE, 0xF6, 0x08, 0x4C, +0x00, 0x6E, 0x80, 0x18, 0xE1, 0x4E, 0x06, 0x92, +0x01, 0x4A, 0x02, 0x72, 0x06, 0xD2, 0xA9, 0x61, +0x0A, 0x93, 0x08, 0x92, 0x01, 0x49, 0x04, 0x4B, +0x04, 0x4A, 0x02, 0x71, 0x0A, 0xD3, 0x08, 0xD2, +0xBF, 0xF5, 0x1B, 0x61, 0x11, 0x97, 0x10, 0x91, +0x0F, 0x90, 0x09, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, +0x10, 0x48, 0x00, 0x6B, 0x8C, 0xEA, 0x29, 0xF0, +0x68, 0xC0, 0x2A, 0x2A, 0x68, 0xF4, 0x46, 0xA0, +0x27, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, +0xF0, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xEE, 0xF6, +0x08, 0x4C, 0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, +0x9C, 0x4E, 0xE8, 0xF7, 0x64, 0x98, 0xE8, 0xF7, +0x4C, 0xD8, 0x00, 0x69, 0x4E, 0xEB, 0x05, 0x23, +0xE8, 0xF7, 0x68, 0x98, 0x6E, 0xEA, 0x10, 0x2A, +0x01, 0x69, 0x02, 0x6D, 0x91, 0x67, 0x80, 0x18, +0x36, 0x27, 0x91, 0x67, 0x80, 0x18, 0xE4, 0x1D, +0x01, 0x6C, 0x80, 0x18, 0x16, 0x1E, 0x01, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xEF, 0xF5, 0x78, 0xC2, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x08, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x69, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x49, +0x23, 0xF1, 0x18, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x29, 0xF0, 0xC8, 0xA1, 0xE3, 0xF3, +0x10, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x0A, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF1, 0x18, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0x29, 0xF0, 0xC8, 0xA1, 0xA0, 0x9B, 0xE3, 0xF3, +0x10, 0x6C, 0x40, 0xEA, 0x29, 0xF0, 0x48, 0xA1, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF1, 0xB4, 0x9A, 0x63, 0xF6, 0x1C, 0x6C, +0x80, 0x18, 0x6E, 0x3C, 0x06, 0x22, 0x01, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xCF, 0xF5, 0x7C, 0xC2, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xCF, 0xF5, +0x5C, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, +0x10, 0x4A, 0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x68, +0xEE, 0xF6, 0x08, 0x48, 0x90, 0x67, 0x00, 0x6D, +0x18, 0x6E, 0x80, 0x18, 0x9C, 0x4E, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF4, 0x10, 0x4B, 0xE0, 0x9B, +0x90, 0x67, 0x00, 0x6D, 0x18, 0x6E, 0x22, 0x67, +0x80, 0x18, 0x9C, 0x4E, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x10, 0x4B, 0xE8, 0xF7, 0x4C, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, 0x58, 0x9A, +0x68, 0xF4, 0x33, 0xC3, 0x2C, 0xEA, 0x42, 0x32, +0x42, 0x32, 0x68, 0xF4, 0x52, 0xC3, 0x06, 0xF0, +0x00, 0x6A, 0x2C, 0xEA, 0x42, 0x32, 0x52, 0x32, +0x68, 0xF4, 0x54, 0xC3, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x68, +0x8C, 0xE8, 0x80, 0x18, 0xA1, 0x28, 0x00, 0x6C, +0x80, 0x18, 0x16, 0x1E, 0x03, 0x28, 0x00, 0x6C, +0xA4, 0x67, 0x07, 0x10, 0x01, 0x70, 0x03, 0x61, +0x00, 0x6C, 0x01, 0x6D, 0x02, 0x10, 0x00, 0x6C, +0x02, 0x6D, 0x80, 0x18, 0x36, 0x27, 0x01, 0x6C, +0x80, 0x18, 0x16, 0x1E, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x24, 0x67, +0x4C, 0xE9, 0xAC, 0xEA, 0x01, 0x72, 0x43, 0x61, +0x44, 0x41, 0x01, 0x6B, 0x64, 0xEA, 0x00, 0xF2, +0x08, 0x6A, 0x4D, 0xEB, 0x04, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF5, 0xE4, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0xEE, 0xF6, 0x08, 0x48, +0x90, 0x67, 0xB1, 0x67, 0x00, 0x6E, 0x06, 0xD3, +0x80, 0x18, 0xE1, 0x4E, 0x01, 0x6C, 0x08, 0xF0, +0x00, 0x6F, 0xB1, 0x67, 0x04, 0xD4, 0x8F, 0x6E, +0x90, 0x67, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x30, 0xF0, +0x20, 0x68, 0x0A, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x06, 0x96, 0x01, 0x6D, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x06, 0x96, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, 0xAB, 0xED, +0x01, 0x4E, 0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x48, 0x9A, +0x01, 0x6C, 0x40, 0xEA, 0x91, 0x67, 0x01, 0x6D, +0x80, 0x18, 0x67, 0x25, 0xF0, 0x10, 0x02, 0x72, +0x01, 0x6A, 0xE0, 0xF0, 0x0C, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x2F, 0xF2, 0x5A, 0xA2, 0x00, 0x68, +0x09, 0x72, 0x0C, 0x60, 0x12, 0x72, 0x01, 0x68, +0x09, 0x60, 0x1B, 0x72, 0x02, 0x68, 0x06, 0x60, +0x24, 0x68, 0x4E, 0xE8, 0x01, 0x58, 0x18, 0x67, +0x04, 0x6A, 0x03, 0xE2, 0x24, 0x32, 0x08, 0xD2, +0x08, 0x93, 0x08, 0x6A, 0x30, 0xF0, 0x20, 0x6C, +0x4D, 0xEB, 0xC0, 0xF3, 0x44, 0x9C, 0x01, 0x6D, +0xC3, 0x67, 0x08, 0xD3, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x06, 0xD2, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x06, 0x93, +0x01, 0x6D, 0xAB, 0xED, 0x68, 0xF4, 0xCA, 0xA3, +0xC3, 0xF3, 0x0C, 0x6C, 0x40, 0xEA, 0x44, 0x41, +0x01, 0x6C, 0x30, 0xF0, 0x20, 0x6B, 0x84, 0xEA, +0x00, 0xF3, 0x08, 0x6A, 0x4D, 0xEC, 0x80, 0xF3, +0x4C, 0x9B, 0x07, 0xD4, 0x0A, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF3, 0x44, 0x9C, +0x07, 0x96, 0x01, 0x6D, 0x03, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x07, 0x96, 0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, +0xAB, 0xED, 0x01, 0x4E, 0x03, 0xF3, 0x00, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6C, 0x80, 0xF3, +0x4C, 0x9C, 0xC8, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF4, 0x10, 0x4B, 0xE0, 0x9B, +0x30, 0xF0, 0x20, 0x6A, 0xEE, 0xF6, 0x08, 0x4A, +0x82, 0x67, 0xB1, 0x67, 0x00, 0x6E, 0x07, 0xD2, +0x80, 0x18, 0x9C, 0x4E, 0x91, 0x67, 0x01, 0x6D, +0x80, 0x18, 0x67, 0x25, 0x01, 0x72, 0x0A, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x22, 0xF6, 0x08, 0x4A, +0x41, 0xE0, 0x40, 0xA0, 0x06, 0x94, 0x68, 0xF4, +0x4A, 0xC4, 0x70, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF4, 0x10, 0x4A, 0x07, 0x94, 0xE0, 0x9A, +0xB1, 0x67, 0x00, 0x6E, 0x80, 0x18, 0x9C, 0x4E, +0x30, 0xF0, 0x20, 0x6B, 0x22, 0x67, 0x08, 0x96, +0xC0, 0xF3, 0x44, 0x9B, 0x01, 0x6D, 0x03, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0xE3, 0xF7, +0x00, 0x6A, 0x2C, 0xEA, 0x06, 0x93, 0x56, 0x34, +0x96, 0x32, 0x68, 0xF4, 0x4C, 0xDB, 0x1F, 0x6A, +0x8C, 0xEA, 0x02, 0x5A, 0xFF, 0x6B, 0x0B, 0x60, +0x03, 0x70, 0x03, 0x60, 0x01, 0x48, 0x6C, 0xE8, +0x4F, 0x10, 0x06, 0x94, 0x01, 0x6B, 0x03, 0x68, +0x29, 0xF0, 0x61, 0xC4, 0x49, 0x10, 0x0A, 0x5A, +0x0B, 0x61, 0x04, 0x20, 0xFF, 0x48, 0x6C, 0xE8, +0x01, 0x6B, 0x0B, 0x10, 0x06, 0x94, 0x01, 0x6B, +0x29, 0xF0, 0x61, 0xC4, 0x01, 0x6B, 0x09, 0x10, +0x06, 0x94, 0x00, 0x6B, 0x29, 0xF0, 0x61, 0xC4, +0x00, 0x6B, 0x03, 0x20, 0x04, 0x58, 0x01, 0x61, +0x03, 0x68, 0x30, 0xF0, 0x20, 0x6C, 0xC6, 0xF5, +0x10, 0x4C, 0x29, 0xF0, 0xA1, 0xA4, 0x01, 0x5D, +0xB8, 0x67, 0xAB, 0xED, 0xAC, 0xEB, 0x30, 0xF0, +0x20, 0x6D, 0x22, 0xF6, 0x08, 0x4D, 0xA1, 0xE0, +0xA0, 0xA0, 0x68, 0xF4, 0xAA, 0xC4, 0x0F, 0x2B, +0x68, 0xF4, 0xCA, 0xA4, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x64, 0x9B, 0xC0, 0x36, 0x01, 0x6D, +0x4D, 0xEE, 0xE3, 0xF3, 0x08, 0x6C, 0xAB, 0xED, +0x40, 0xEB, 0x00, 0x6A, 0x0C, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, +0xE3, 0xF3, 0x08, 0x6C, 0xAB, 0xED, 0xFF, 0xF7, +0x1F, 0x6E, 0x40, 0xEA, 0x01, 0x6A, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0x01, 0x6B, 0xC8, 0x17, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x2F, 0xF2, +0x77, 0xA2, 0xFF, 0x68, 0x8C, 0xE8, 0x06, 0x5B, +0x01, 0x6A, 0x7C, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x68, 0x33, 0xE2, 0xF5, 0x18, 0x4A, 0x69, 0xE2, +0x40, 0x9A, 0x00, 0xEA, 0x90, 0x67, 0x80, 0x18, +0x12, 0x23, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, +0x68, 0x26, 0x62, 0x10, 0x90, 0x67, 0x80, 0x18, +0xC0, 0x22, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, +0xAC, 0x26, 0x52, 0x22, 0x03, 0x6C, 0x98, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, +0x12, 0xEC, 0x71, 0xE4, 0x09, 0xF0, 0xAE, 0xA4, +0x02, 0x5D, 0x04, 0x60, 0x01, 0x4D, 0x09, 0xF0, +0xAE, 0xC4, 0xEB, 0x17, 0x61, 0xE0, 0x01, 0x6C, +0x39, 0x10, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, +0x57, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x00, 0x6B, 0x29, 0xF0, 0x61, 0xC2, +0x90, 0x67, 0x02, 0x6D, 0x80, 0x18, 0xD7, 0x28, +0x2F, 0x22, 0x30, 0xF0, 0x20, 0x6B, 0x04, 0x34, +0xC6, 0xF5, 0x10, 0x4B, 0x6D, 0xE4, 0x09, 0xF0, +0x9A, 0xA3, 0x0A, 0x5C, 0x25, 0x60, 0x01, 0x4C, +0x09, 0xF0, 0x9A, 0xC3, 0xED, 0x17, 0x90, 0x67, +0x00, 0x6D, 0x80, 0x18, 0x57, 0x22, 0x90, 0x67, +0x02, 0x6D, 0x80, 0x18, 0xAC, 0x26, 0x18, 0x22, +0x03, 0x6C, 0x98, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x10, 0x4B, 0x12, 0xEC, 0x71, 0xE4, +0x09, 0xF0, 0xAF, 0xA4, 0x02, 0x5D, 0x04, 0x60, +0x01, 0x4D, 0x09, 0xF0, 0xAF, 0xC4, 0xEB, 0x17, +0x61, 0xE0, 0x02, 0x6C, 0xA8, 0xF5, 0x80, 0xC0, +0x06, 0x6C, 0x68, 0xF4, 0x87, 0xC3, 0x12, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, +0x68, 0xF4, 0x87, 0xA3, 0x01, 0x4C, 0xF5, 0x17, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x68, 0xF4, 0x67, 0xA2, 0x01, 0x4B, 0x68, 0xF4, +0x67, 0xC2, 0x01, 0x6A, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x68, 0xF4, 0x65, 0xA2, +0x68, 0xF4, 0x48, 0xA2, 0x08, 0xD3, 0x06, 0x5A, +0x76, 0x60, 0x30, 0xF0, 0x20, 0x6B, 0x48, 0x32, +0x02, 0xF6, 0x10, 0x4B, 0x4D, 0xE3, 0x40, 0x9B, +0x00, 0xEA, 0x00, 0x6C, 0x80, 0x18, 0x79, 0x29, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x68, 0xF4, 0x67, 0xA2, 0x06, 0x73, 0xF5, 0x61, +0x2A, 0x10, 0x00, 0x6C, 0x80, 0x18, 0x02, 0x24, +0x00, 0x6C, 0xA4, 0x67, 0x37, 0x10, 0x00, 0x6C, +0x80, 0x18, 0xCA, 0x23, 0x00, 0x6C, 0xA4, 0x67, +0x80, 0x18, 0xAC, 0x26, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x10, 0x4B, 0x68, 0xF4, 0x90, 0xA3, +0x01, 0x4C, 0x68, 0xF4, 0x90, 0xC3, 0x42, 0x22, +0x09, 0xF0, 0x4D, 0xA3, 0x03, 0x5A, 0x3E, 0x60, +0x01, 0x4A, 0x09, 0xF0, 0x4D, 0xC3, 0x43, 0x10, +0x01, 0x6C, 0x80, 0x18, 0x79, 0x29, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x68, 0xF4, +0x67, 0xA2, 0x06, 0x73, 0xF5, 0x61, 0x68, 0xF4, +0x68, 0xA2, 0x01, 0x4B, 0x68, 0xF4, 0x68, 0xC2, +0x78, 0x67, 0x68, 0xF4, 0x67, 0xC2, 0x68, 0xF4, +0x70, 0xA2, 0x01, 0x4B, 0x68, 0xF4, 0x70, 0xC2, +0x2A, 0x10, 0x01, 0x6C, 0x80, 0x18, 0x02, 0x24, +0x01, 0x6C, 0x00, 0x6D, 0x80, 0x18, 0x68, 0x26, +0x19, 0x10, 0x01, 0x6C, 0x80, 0x18, 0xCA, 0x23, +0x01, 0x6C, 0x00, 0x6D, 0x80, 0x18, 0xAC, 0x26, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, +0x68, 0xF4, 0x90, 0xA3, 0x01, 0x4C, 0x68, 0xF4, +0x90, 0xC3, 0x08, 0x22, 0x09, 0xF0, 0x50, 0xA3, +0x03, 0x5A, 0x04, 0x60, 0x01, 0x4A, 0x09, 0xF0, +0x50, 0xC3, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x68, 0xF4, 0x68, 0xA2, +0x01, 0x4B, 0x68, 0xF4, 0x68, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0x2F, 0xF2, 0x58, 0xA2, 0x06, 0x72, +0x80, 0xF0, 0x08, 0x61, 0x30, 0xF0, 0x20, 0x69, +0x00, 0x6A, 0xEF, 0xF5, 0x1C, 0x49, 0x06, 0xD2, +0x06, 0x92, 0xFF, 0x6B, 0x30, 0xF0, 0x20, 0x68, +0x6C, 0xEA, 0x06, 0x93, 0x07, 0xD2, 0x01, 0x6D, +0x64, 0x36, 0xC0, 0xF3, 0x64, 0x98, 0x08, 0x6A, +0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, +0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, +0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x6C, 0xFF, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x08, 0x92, 0x06, 0x72, +0x1A, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF3, +0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, +0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xC0, 0x99, 0x01, 0x6D, 0x23, 0xF3, +0x18, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x01, 0x6D, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF3, 0x1C, 0x6C, +0xAB, 0xED, 0xC2, 0x99, 0x21, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF3, 0xA4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x00, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, +0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x23, 0xF3, 0x18, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, +0x14, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, +0x01, 0x6D, 0x23, 0xF3, 0x1C, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF5, 0xB0, 0x9B, 0xC0, 0xF3, +0x44, 0x9A, 0xA3, 0xF3, 0x18, 0x6C, 0x00, 0x6E, +0x40, 0xEA, 0x03, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x07, 0x95, 0x43, 0xF5, 0xE4, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xEE, 0xF6, 0x08, 0x4C, +0x00, 0x6E, 0x80, 0x18, 0xE1, 0x4E, 0x06, 0x92, +0x04, 0x49, 0x01, 0x4A, 0x02, 0x72, 0x06, 0xD2, +0x7F, 0xF7, 0x1E, 0x61, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x2F, 0xF2, 0x55, 0xA2, +0xFF, 0x69, 0x8C, 0xE9, 0x02, 0x72, 0x02, 0x6A, +0x05, 0xD2, 0x02, 0x60, 0x04, 0x6B, 0x05, 0xD3, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x08, 0x6E, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, +0x40, 0xEA, 0x01, 0x6D, 0x03, 0xF3, 0x08, 0x6C, +0xAB, 0xED, 0x80, 0x18, 0x6E, 0x3C, 0x04, 0xD2, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, +0x06, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, 0x80, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x00, 0x6C, 0x06, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x08, 0x6C, 0x80, 0x6D, 0x01, 0x6E, 0x40, 0xEA, +0x00, 0x68, 0x91, 0x67, 0x80, 0x18, 0xBF, 0x29, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x68, 0xF4, 0x68, 0xA2, 0x06, 0x73, 0x0B, 0x60, +0x05, 0x21, 0x68, 0xF4, 0x50, 0xA2, 0x05, 0x93, +0x6E, 0xEA, 0x05, 0x22, 0x01, 0x48, 0xFF, 0x6A, +0x4C, 0xE8, 0x64, 0x70, 0xEA, 0x61, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x00, 0x6C, 0x06, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, 0x03, 0xF3, +0x08, 0x69, 0x01, 0x6D, 0x91, 0x67, 0xAB, 0xED, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x00, 0x6C, 0x06, 0x6D, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, 0x01, 0x6D, +0x91, 0x67, 0xAB, 0xED, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF4, 0xF0, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xEE, 0xF6, 0x08, 0x4C, 0x00, 0x6D, 0x18, 0x6E, +0x80, 0x18, 0x9C, 0x4E, 0x30, 0xF0, 0x20, 0x6B, +0x06, 0xF0, 0x00, 0x6C, 0xC6, 0xF5, 0x10, 0x4B, +0x4C, 0xEC, 0xE8, 0xF7, 0x4C, 0xDB, 0x82, 0x32, +0x52, 0x32, 0x02, 0x72, 0x0A, 0x60, 0x03, 0x6C, +0x4E, 0xEC, 0x04, 0x24, 0x01, 0x72, 0x02, 0x6A, +0x07, 0x60, 0x05, 0x10, 0x68, 0xF4, 0x85, 0xC3, +0x05, 0x10, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, +0x68, 0xF4, 0x45, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF1, 0x78, 0x9B, 0xE8, 0xF7, 0x8C, 0x9A, +0x8C, 0xEB, 0x62, 0x33, 0x62, 0x33, 0x68, 0xF4, +0x64, 0xC2, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xF1, 0x63, 0x1D, 0x62, 0x1C, 0xD1, 0x1B, 0xD0, +0x08, 0xA4, 0x02, 0x6A, 0x01, 0x69, 0x0C, 0xEA, +0x46, 0x32, 0x18, 0xD2, 0x80, 0x18, 0x38, 0x1D, +0x80, 0x18, 0x88, 0x2A, 0x80, 0x18, 0xA1, 0x28, +0x00, 0x6C, 0x80, 0x18, 0x16, 0x1E, 0x90, 0x67, +0x2C, 0xEC, 0x00, 0x6D, 0x80, 0x18, 0x6A, 0x28, +0x80, 0xF0, 0x00, 0x2A, 0x30, 0xF0, 0x20, 0x68, +0xC6, 0xF5, 0x10, 0x48, 0x68, 0xF4, 0x66, 0xA0, +0x68, 0xF4, 0x48, 0xC0, 0x68, 0xF4, 0x47, 0xC0, +0x01, 0x4B, 0x68, 0xF4, 0x66, 0xC0, 0x68, 0xF4, +0x50, 0xC0, 0x68, 0xF4, 0x31, 0xC0, 0x38, 0x6C, +0x80, 0x18, 0x99, 0x21, 0x00, 0x6C, 0x29, 0xF0, +0x44, 0xD8, 0xA4, 0x67, 0x80, 0x18, 0x0A, 0x26, +0x30, 0xF0, 0x20, 0x6E, 0x30, 0xF0, 0x20, 0x6F, +0x04, 0x04, 0x0D, 0x05, 0xE2, 0xF1, 0x10, 0x4E, +0xE2, 0xF1, 0x1C, 0x4F, 0x80, 0x18, 0xE9, 0x21, +0x30, 0xF0, 0x20, 0x6D, 0x07, 0x04, 0x42, 0xF2, +0x10, 0x4D, 0x80, 0x18, 0xA9, 0x25, 0x00, 0x68, +0x80, 0x18, 0x0F, 0x21, 0x01, 0x6C, 0x80, 0x18, +0x52, 0x1E, 0x18, 0x94, 0x80, 0x18, 0x4C, 0x2A, +0x00, 0x6C, 0x80, 0x18, 0x52, 0x1E, 0x30, 0xF0, +0x20, 0x6C, 0x42, 0xF2, 0x10, 0x4C, 0x07, 0x05, +0x80, 0x18, 0x9B, 0x24, 0x30, 0xF0, 0x20, 0x6E, +0x30, 0xF0, 0x20, 0x6F, 0x04, 0x04, 0x0D, 0x05, +0xE2, 0xF1, 0x10, 0x4E, 0xE2, 0xF1, 0x1C, 0x4F, +0x80, 0x18, 0xCC, 0x20, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x68, 0xF4, 0x68, 0xA2, +0x06, 0x73, 0x08, 0x60, 0xFF, 0x6B, 0x01, 0x48, +0x6C, 0xE8, 0x03, 0x70, 0x00, 0x6B, 0x68, 0xF4, +0x70, 0xC2, 0xD2, 0x61, 0x30, 0xF0, 0x20, 0x68, +0x00, 0x6C, 0x80, 0x18, 0xE4, 0x1D, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0xFF, 0x6D, +0x08, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x10, 0x69, 0x91, 0x67, 0xFF, 0x6D, +0xAA, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x00, 0x6C, 0xFF, 0x6D, 0x0A, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0xFF, 0x6D, 0xAA, 0x6E, 0x40, 0xEA, 0x01, 0x6C, +0x80, 0x18, 0x16, 0x1E, 0x1D, 0x97, 0x1C, 0x91, +0x1B, 0x90, 0x00, 0x6A, 0x0F, 0x63, 0x00, 0xEF, +0xF2, 0x63, 0x1B, 0x62, 0x1A, 0xD0, 0x30, 0xF0, +0x20, 0x6D, 0x04, 0x67, 0xA2, 0xF6, 0x08, 0x4D, +0x04, 0x04, 0x54, 0x6E, 0x00, 0x18, 0xD2, 0xD2, +0x00, 0x6A, 0x26, 0x20, 0x70, 0x67, 0x01, 0x73, +0x03, 0x60, 0x66, 0x33, 0x01, 0x4A, 0xFB, 0x17, +0x01, 0x6C, 0x01, 0x4A, 0x64, 0x67, 0x04, 0x10, +0x01, 0x4B, 0xFF, 0x6D, 0x84, 0x34, 0xAC, 0xEB, +0x63, 0xEA, 0xFA, 0x60, 0x64, 0x6B, 0x78, 0xE8, +0x05, 0x6D, 0x12, 0xE8, 0x9B, 0xE8, 0x01, 0x2C, +0xE5, 0xE8, 0x12, 0xEC, 0xBB, 0xEC, 0x01, 0x2D, +0xE5, 0xE8, 0x12, 0xEC, 0x15, 0x5C, 0x78, 0xEA, +0x12, 0xEA, 0x01, 0x61, 0x14, 0x6C, 0x7D, 0x67, +0x88, 0x34, 0x91, 0xE3, 0x64, 0x9C, 0x6B, 0xE2, +0x1B, 0x97, 0x1A, 0x90, 0x0E, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x26, 0x67, 0x03, 0xF5, +0xD4, 0x9B, 0x05, 0x67, 0x01, 0x6D, 0x0D, 0xD7, +0x63, 0xF5, 0x10, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x00, 0x6A, 0x04, 0xD2, 0x0E, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xA8, 0xC0, 0x99, 0xC0, 0xF3, +0x44, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, +0x04, 0x93, 0x04, 0x48, 0x04, 0x49, 0x01, 0x4B, +0x04, 0xD3, 0x04, 0x92, 0x0D, 0x93, 0x63, 0xEA, +0xEE, 0x61, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, +0x0C, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF3, 0x14, 0x6C, 0xF0, 0x6D, 0x04, 0x6E, +0x40, 0xEA, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x44, 0x99, 0xFF, 0x68, 0xAC, 0xE8, +0xD0, 0x67, 0xA3, 0xF0, 0x04, 0x6C, 0x80, 0x6D, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xD0, 0x67, +0xA8, 0xF1, 0x04, 0x6C, 0x80, 0x6D, 0x40, 0xEA, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x68, 0x63, 0xF5, 0x28, 0x9A, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF0, 0x00, 0x6C, +0xB1, 0x67, 0x1F, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0xA8, 0xF1, 0x00, 0x6C, +0x1F, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF5, 0x2C, 0x9A, 0xC0, 0xF3, 0x44, 0x98, +0xE3, 0xF0, 0x08, 0x6C, 0xB1, 0x67, 0x1F, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0xE8, 0xF1, 0x08, 0x6C, 0x1F, 0x6E, 0x40, 0xEA, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, +0x08, 0xD4, 0x80, 0xF1, 0x16, 0x22, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, +0x2B, 0xE9, 0x23, 0xF4, 0x18, 0x6C, 0xB1, 0x67, +0xD1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, 0x1C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, +0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, 0x0C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, 0x1C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x00, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x0C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF4, 0x18, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, 0x04, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, +0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF4, 0x14, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x04, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x08, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x14, 0x4B, +0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0xA3, 0xF4, 0x14, 0x4B, +0x70, 0x12, 0x08, 0x93, 0x60, 0xF0, 0x5B, 0xA3, +0xE0, 0xF0, 0x1B, 0x22, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0xD8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, +0x23, 0xF4, 0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x08, 0x92, 0x04, 0x6B, 0x63, 0xF0, 0x00, 0x6C, +0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, +0x0E, 0xF0, 0x00, 0x6D, 0x67, 0xEE, 0xC3, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x08, 0x92, 0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, +0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0x00, 0x4B, 0x60, 0x9B, +0x6D, 0xEE, 0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, +0x23, 0xF0, 0x10, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, +0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, +0x04, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, +0x08, 0x92, 0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, +0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0x08, 0x4B, 0x60, 0x9B, +0x6D, 0xEE, 0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, +0x23, 0xF0, 0x10, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, +0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, +0x0C, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x08, 0x92, +0x04, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0x80, 0xF0, +0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF4, 0x14, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x08, 0x92, 0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, +0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0x00, 0x4B, 0x60, 0x9B, +0x6D, 0xEE, 0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, +0x28, 0xF1, 0x10, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, +0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, +0x04, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, +0x08, 0x92, 0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, +0x80, 0xF0, 0xD1, 0xA2, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0x08, 0x4B, 0x60, 0x9B, +0x6D, 0xEE, 0x40, 0xEA, 0x08, 0x92, 0x04, 0x6B, +0x28, 0xF1, 0x10, 0x6C, 0x80, 0xF0, 0xD1, 0xA2, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x67, 0xEE, +0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, +0x0C, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x08, 0x92, +0x04, 0x6B, 0x28, 0xF1, 0x10, 0x6C, 0x80, 0xF0, +0xD1, 0xA2, 0xB1, 0x67, 0xC0, 0xF3, 0x44, 0x98, +0x67, 0xEE, 0xC3, 0x67, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF4, 0x14, 0x4B, 0x60, 0x9B, 0x6D, 0xEE, +0xA7, 0x10, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF5, 0xD0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, 0x23, 0xF4, +0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF4, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF4, 0x04, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, +0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF4, 0x1C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF4, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, +0x00, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, 0x04, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF4, 0x08, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xC0, 0x9B, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0xE3, 0xF4, 0x0C, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF4, 0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, 0x00, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF5, 0x04, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF5, 0x08, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, +0x0C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, 0x0C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF4, 0x10, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF4, 0x14, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, +0x18, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF4, 0x1C, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF5, 0x00, 0x4B, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF5, 0x04, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF5, +0x08, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x30, 0xF0, 0x20, 0x6B, +0x28, 0xF1, 0x10, 0x6C, 0xB1, 0x67, 0x03, 0xF5, +0x0C, 0x4B, 0xC0, 0x9B, 0x40, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xED, 0x1E, 0xF0, +0x01, 0x4D, 0x6C, 0xED, 0x02, 0x5D, 0x6C, 0xEE, +0x09, 0x61, 0x02, 0xF0, 0x00, 0x76, 0x06, 0x60, +0xE1, 0xF7, 0x1F, 0x6A, 0x4E, 0xEE, 0x01, 0x5E, +0x58, 0x67, 0x20, 0xE8, 0x01, 0x6A, 0x20, 0xE8, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0xAC, 0xEA, 0x50, 0x6B, 0x78, 0xEA, +0xE0, 0xF0, 0x68, 0x44, 0x24, 0x67, 0x12, 0xEA, +0x90, 0xF0, 0x08, 0x42, 0x4D, 0xE3, 0x01, 0xE4, +0x04, 0xD3, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, +0xB4, 0x9A, 0x40, 0x98, 0xE3, 0xF7, 0x1F, 0x6E, +0x91, 0x67, 0x4C, 0xED, 0xA2, 0x35, 0xA2, 0x35, +0x4C, 0xEE, 0x80, 0x18, 0x62, 0x2D, 0x02, 0x22, +0x00, 0x6A, 0x05, 0x10, 0x04, 0x92, 0x04, 0x48, +0x4A, 0xE8, 0xEB, 0x61, 0x01, 0x6A, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0x4C, 0xED, +0x4C, 0xEE, 0x01, 0x69, 0xC0, 0xF3, 0x44, 0x98, +0x2B, 0xE9, 0x0C, 0xD4, 0x05, 0xD5, 0x06, 0xD6, +0xB1, 0x67, 0x03, 0xF3, 0x00, 0x6C, 0x0C, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, +0xC3, 0xF3, 0x14, 0x6C, 0xF0, 0x6E, 0x40, 0xEA, +0x05, 0x93, 0x50, 0x6A, 0x03, 0xF3, 0x0C, 0x68, +0x58, 0xEB, 0x0C, 0x93, 0x00, 0x69, 0x12, 0xEA, +0x7F, 0x4A, 0x19, 0x4A, 0x49, 0xE3, 0x04, 0xD2, +0x05, 0x92, 0x90, 0x67, 0x05, 0x22, 0x87, 0x40, +0x51, 0x4C, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEC, +0x06, 0x93, 0x0A, 0x2B, 0x03, 0x71, 0x03, 0x60, +0xE3, 0xF7, 0x1F, 0x6E, 0x07, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF5, 0xD8, 0x9A, 0x02, 0x10, +0x04, 0x92, 0xC0, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, 0xAB, 0xED, +0x40, 0xEA, 0x04, 0x93, 0xFF, 0x6A, 0x01, 0x49, +0x4C, 0xE9, 0x04, 0x4B, 0x04, 0x48, 0xFF, 0xF7, +0x1F, 0x6A, 0x14, 0x71, 0x04, 0xD3, 0x4C, 0xE8, +0xD7, 0x61, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0x20, 0xE8, 0x00, 0x65, +0x20, 0xE8, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x24, 0x67, 0x0F, 0x6D, +0x03, 0xF3, 0x00, 0x6C, 0x0C, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0x0C, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x60, 0xF0, +0xD9, 0xA1, 0x03, 0xF3, 0x08, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0x0C, 0x4B, +0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, 0x60, 0xF0, +0xD9, 0xA1, 0x63, 0xF3, 0x00, 0x6C, 0x40, 0xEA, +0x60, 0xF0, 0x58, 0xA1, 0x2C, 0x22, 0x60, 0xF0, +0x5E, 0xA9, 0x01, 0x6B, 0x6C, 0xEA, 0x10, 0x22, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, +0x18, 0xF0, 0x00, 0x6D, 0xC3, 0x67, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x20, 0xF1, 0xD8, 0xA9, +0x03, 0xF3, 0x04, 0x6C, 0xFF, 0x6D, 0x40, 0xEA, +0x60, 0xF0, 0x5E, 0xA9, 0x02, 0x6B, 0x6C, 0xEA, +0x3C, 0x22, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x63, 0xF3, 0x00, 0x6C, 0x18, 0xF0, +0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF3, 0x1C, 0x6C, 0xFF, 0x6D, +0x20, 0xF1, 0xDA, 0xA9, 0x29, 0x10, 0x60, 0xF0, +0x5E, 0xA9, 0x01, 0x6B, 0x6C, 0xEA, 0x0F, 0x22, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x08, 0x6C, +0x18, 0xF0, 0x00, 0x6D, 0x03, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x04, 0x6C, +0xFF, 0x6D, 0x5B, 0x6E, 0x40, 0xEA, 0x60, 0xF0, +0x5E, 0xA9, 0x02, 0x6B, 0x6C, 0xEA, 0x11, 0x22, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF3, 0x00, 0x6C, 0x18, 0xF0, 0x00, 0x6D, +0x03, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x43, 0xF3, 0x1C, 0x6C, 0xFF, 0x6D, 0x5B, 0x6E, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0xC3, 0xF2, 0xAC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x20, 0xF5, 0x00, 0x6C, +0xFF, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF6, 0x10, 0x6C, 0x0F, 0x6D, 0x02, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF5, +0x24, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0xEE, 0xF6, +0x08, 0x48, 0x00, 0x6D, 0x90, 0x67, 0xC5, 0x67, +0xF1, 0x67, 0x80, 0x18, 0x9C, 0x4E, 0xFF, 0x6B, +0x4C, 0xEB, 0x90, 0x67, 0xF1, 0x67, 0x01, 0x6D, +0x00, 0x6E, 0x04, 0xD3, 0xFF, 0x69, 0x80, 0x18, +0x9C, 0x4E, 0x4C, 0xE9, 0x00, 0x68, 0x27, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF5, 0x04, 0x4A, +0xE0, 0x9A, 0x30, 0xF0, 0x20, 0x69, 0xEE, 0xF6, +0x08, 0x49, 0x00, 0x6D, 0x91, 0x67, 0xC5, 0x67, +0x80, 0x18, 0x9C, 0x4E, 0xFF, 0x6B, 0x4C, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF5, 0x04, 0x4A, +0xE0, 0x9A, 0x91, 0x67, 0x01, 0x6D, 0x00, 0x6E, +0x04, 0xD3, 0xFF, 0x69, 0x80, 0x18, 0x9C, 0x4E, +0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x02, 0x6C, 0x01, 0x48, 0x40, 0xEA, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0x04, 0x93, +0x02, 0x73, 0x02, 0x60, 0x02, 0x71, 0x03, 0x61, +0xC1, 0xF1, 0x04, 0x70, 0xD1, 0x61, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x04, 0x67, 0x80, 0x18, 0xF1, 0x2D, 0x60, 0xF0, +0x5B, 0xA0, 0x1E, 0x22, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF1, 0xB4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF6, 0x1C, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF3, 0x30, 0x9A, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF0, 0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA8, 0xF1, +0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF1, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF6, 0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF5, 0x18, 0x6C, +0xE1, 0xF7, 0x18, 0x6D, 0xE0, 0xF1, 0x1F, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, +0x2C, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, +0x04, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x68, 0xF1, +0x04, 0x6C, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF4, 0x28, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF0, 0x0C, 0x6C, 0xB1, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xB1, 0x67, 0x08, 0xF1, 0x0C, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF0, +0x0C, 0x6C, 0x80, 0x6D, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x68, 0xF1, 0x0C, 0x6C, +0x80, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF0, 0x0C, 0x6C, 0x03, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x08, 0xF1, 0x0C, 0x6C, 0x03, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, +0x14, 0x6C, 0x00, 0xF3, 0x00, 0x6D, 0x03, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, +0x0C, 0x6C, 0x0F, 0x6D, 0x08, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x43, 0xF5, 0xA4, 0x9B, 0x21, 0xF0, 0x04, 0x69, +0x91, 0x67, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF4, +0xA8, 0x9B, 0x91, 0x67, 0x03, 0x6E, 0x40, 0xEA, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x00, 0x6A, 0x25, 0x67, +0x04, 0xD6, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF4, 0x10, 0x4B, 0xC0, 0x99, 0xE0, 0x9B, +0x30, 0xF0, 0x20, 0x68, 0xEE, 0xF6, 0x08, 0x48, +0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x9C, 0x4E, +0x04, 0x93, 0x90, 0x67, 0x01, 0x6D, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, 0x10, 0x4A, +0xC0, 0x99, 0xE0, 0x9A, 0x04, 0x49, 0x80, 0x18, +0x9C, 0x4E, 0x04, 0x93, 0x41, 0xDB, 0x05, 0x92, +0x08, 0x4B, 0x04, 0xD3, 0x01, 0x4A, 0x07, 0x72, +0x05, 0xD2, 0xDC, 0x61, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x69, 0x30, 0xF0, 0x20, 0x68, 0x2C, 0xEE, +0xC0, 0xF3, 0x64, 0x98, 0x08, 0x6A, 0x04, 0xD6, +0x2C, 0xEF, 0xC4, 0x36, 0x0A, 0xD4, 0x0B, 0xD5, +0x4D, 0xEE, 0x05, 0xD7, 0x03, 0xF3, 0x00, 0x6C, +0x0F, 0x6D, 0x40, 0xEB, 0x05, 0x92, 0x0C, 0x22, +0x0B, 0x96, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xFA, 0x4E, 0x63, 0xF3, 0x04, 0x6C, +0x23, 0xF5, 0xB0, 0x9B, 0x2C, 0xEE, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF5, 0xB0, 0x9B, 0x63, 0xF3, 0x04, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x0A, 0x93, 0x04, 0x92, +0x63, 0xF3, 0x04, 0x6C, 0x41, 0xE3, 0x7D, 0x67, +0x47, 0x43, 0x0D, 0x4A, 0x60, 0xA2, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF5, 0xB0, 0x9A, 0x80, 0xF0, +0x73, 0xC0, 0x80, 0x18, 0x6E, 0x3C, 0x80, 0xF0, +0x55, 0xC0, 0x0A, 0x94, 0x04, 0x95, 0x05, 0x96, +0x80, 0x18, 0x82, 0x2D, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x4C, 0xEF, 0x4C, 0xED, 0x24, 0x67, +0x0C, 0xD6, 0x04, 0xD7, 0x05, 0x2D, 0xA7, 0x67, +0x80, 0x18, 0x6C, 0x2D, 0x01, 0x68, 0x01, 0x2A, +0x00, 0x68, 0x0C, 0x95, 0x04, 0x96, 0x91, 0x67, +0xF0, 0x67, 0x80, 0x18, 0x90, 0x2E, 0x50, 0x67, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xE3, 0xF3, 0x1C, 0x68, +0x01, 0x6D, 0x90, 0x67, 0xAB, 0xED, 0x80, 0x18, +0x6E, 0x3C, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, +0xBC, 0x9A, 0x90, 0x67, 0xFF, 0xF7, 0x1F, 0x69, +0x80, 0x18, 0x6E, 0x3C, 0x90, 0x67, 0xB1, 0x67, +0x04, 0xD2, 0x80, 0x18, 0x6E, 0x3C, 0xE3, 0xF7, +0x1F, 0x6B, 0x6C, 0xEA, 0x04, 0xF0, 0x00, 0x6C, +0x53, 0xE4, 0x04, 0x92, 0x6C, 0xEC, 0xFF, 0x4C, +0x4C, 0xEB, 0x2C, 0xEC, 0x60, 0x32, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x40, 0x32, 0x8D, 0xEA, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, +0x30, 0xF0, 0x20, 0x68, 0x05, 0xD2, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0x6D, 0x24, 0x67, 0xAB, 0xED, +0x03, 0xF3, 0x00, 0x6C, 0x0C, 0x6E, 0x40, 0xEA, +0x05, 0x93, 0x0F, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF3, 0xAC, 0x9B, +0xA3, 0xF3, 0x14, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x04, 0x6C, +0x11, 0x10, 0x05, 0x94, 0x01, 0x74, 0x15, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF3, 0xAC, 0x9B, 0xA3, 0xF3, 0x14, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x43, 0xF3, 0x1C, 0x6C, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF5, 0xC0, 0x9B, 0x01, 0x6D, 0xAB, 0xED, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0x83, 0xF5, +0xC4, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0xC3, 0xF3, +0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, +0xC5, 0x2E, 0x05, 0x94, 0x50, 0x6D, 0xB8, 0xEC, +0xAF, 0x4D, 0xC3, 0xF3, 0x14, 0x6C, 0x12, 0xEB, +0x6D, 0xE1, 0x04, 0xD3, 0x80, 0xF0, 0x58, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, +0x83, 0xF5, 0xC8, 0x9A, 0x40, 0xEB, 0x91, 0x67, +0x80, 0x18, 0xC5, 0x2E, 0x04, 0x93, 0x01, 0x6D, +0xAB, 0xED, 0x80, 0xF0, 0x5C, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0x83, 0xF5, +0xCC, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, +0x91, 0x67, 0x80, 0x18, 0xC5, 0x2E, 0x04, 0x94, +0x01, 0x6D, 0xAB, 0xED, 0xA0, 0xF0, 0x40, 0xDC, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, +0x83, 0xF5, 0xD0, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, +0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, 0xC5, 0x2E, +0x04, 0x95, 0xC3, 0xF3, 0x14, 0x6C, 0xA0, 0xF0, +0x44, 0xDD, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x64, 0x98, 0x83, 0xF5, 0xD4, 0x9A, 0x01, 0x6D, +0xAB, 0xED, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, +0xC5, 0x2E, 0x04, 0x93, 0x01, 0x6D, 0xAB, 0xED, +0xA0, 0xF0, 0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x64, 0x98, 0x83, 0xF5, 0xD8, 0x9A, +0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, +0x80, 0x18, 0xC5, 0x2E, 0x04, 0x94, 0x01, 0x6D, +0xAB, 0xED, 0xA0, 0xF0, 0x4C, 0xDC, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0x83, 0xF5, +0xDC, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, +0x91, 0x67, 0x80, 0x18, 0xC5, 0x2E, 0x04, 0x95, +0xC3, 0xF3, 0x14, 0x6C, 0xA0, 0xF0, 0x50, 0xDD, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, +0xA3, 0xF5, 0xC0, 0x9A, 0x01, 0x6D, 0xAB, 0xED, +0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, 0xC5, 0x2E, +0x04, 0x93, 0x01, 0x6D, 0xAB, 0xED, 0xA0, 0xF0, +0x54, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x64, 0x98, 0xA3, 0xF5, 0xC4, 0x9A, 0xC3, 0xF3, +0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, +0xC5, 0x2E, 0x04, 0x94, 0x01, 0x6D, 0xAB, 0xED, +0xA0, 0xF0, 0x58, 0xDC, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x64, 0x98, 0xA3, 0xF5, 0xC8, 0x9A, +0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, +0x80, 0x18, 0xC5, 0x2E, 0x04, 0x95, 0xC3, 0xF3, +0x14, 0x6C, 0xA0, 0xF0, 0x5C, 0xDD, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0xA3, 0xF5, +0xCC, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEB, +0x91, 0x67, 0x80, 0x18, 0xC5, 0x2E, 0x04, 0x93, +0x01, 0x6D, 0xAB, 0xED, 0xC0, 0xF0, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, +0xA3, 0xF5, 0xD0, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, +0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, 0xC5, 0x2E, +0x04, 0x94, 0x01, 0x6D, 0xAB, 0xED, 0xC0, 0xF0, +0x44, 0xDC, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x64, 0x98, 0xA3, 0xF5, 0xD4, 0x9A, 0xC3, 0xF3, +0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, +0xC5, 0x2E, 0x05, 0x93, 0x50, 0x6C, 0x01, 0x6D, +0x01, 0x4B, 0x98, 0xEB, 0xAB, 0xED, 0x83, 0xF3, +0x04, 0x4C, 0x12, 0xEB, 0x6D, 0xE1, 0x5E, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, +0xA3, 0xF5, 0xD8, 0x9A, 0x40, 0xEB, 0x91, 0x67, +0x80, 0x18, 0xC5, 0x2E, 0x04, 0x95, 0xC3, 0xF3, +0x14, 0x6C, 0xC0, 0xF0, 0x4C, 0xDD, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0xA3, 0xF5, +0xDC, 0x9A, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEB, +0x91, 0x67, 0x80, 0x18, 0xC5, 0x2E, 0x04, 0x93, +0x01, 0x6D, 0xAB, 0xED, 0xC0, 0xF0, 0x50, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, +0xC3, 0xF5, 0xC0, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, +0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, 0xC5, 0x2E, +0x04, 0x94, 0x01, 0x6D, 0xAB, 0xED, 0xC0, 0xF0, +0x54, 0xDC, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x64, 0x98, 0xC3, 0xF5, 0xC4, 0x9A, 0xC3, 0xF3, +0x14, 0x6C, 0x40, 0xEB, 0x91, 0x67, 0x80, 0x18, +0xC5, 0x2E, 0x04, 0x95, 0xC3, 0xF3, 0x14, 0x6C, +0xC0, 0xF0, 0x58, 0xDD, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x64, 0x98, 0xC3, 0xF5, 0xC8, 0x9A, +0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEB, 0x91, 0x67, +0x80, 0x18, 0xC5, 0x2E, 0x04, 0x93, 0x01, 0x6D, +0xAB, 0xED, 0xC0, 0xF0, 0x5C, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x98, 0xC3, 0xF5, +0xCC, 0x9A, 0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEB, +0x91, 0x67, 0x80, 0x18, 0xC5, 0x2E, 0x04, 0x94, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF5, 0xD0, 0x9B, +0xE0, 0xF0, 0x40, 0xDC, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xAB, 0xED, 0xC3, 0xF3, 0x14, 0x6C, +0x40, 0xEA, 0x91, 0x67, 0x80, 0x18, 0xC5, 0x2E, +0x04, 0x95, 0xE0, 0xF0, 0x44, 0xDD, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xFF, 0x6A, 0x4C, 0xED, +0xC0, 0xF3, 0x44, 0x98, 0x08, 0x6B, 0xA4, 0x36, +0x6D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF3, +0x08, 0x69, 0x91, 0x67, 0x08, 0xF0, 0x00, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF5, 0xD4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0xC3, 0xF3, 0x14, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0xE3, 0xF3, 0x1C, 0x6C, 0xF0, 0x6D, +0x80, 0x18, 0x6E, 0x3C, 0x04, 0xD2, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0x08, 0xF0, 0x00, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x04, 0x92, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0xFF, 0x6B, 0x6C, 0xEA, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xFF, 0x6A, 0x4C, 0xED, 0x4C, 0xEE, 0x01, 0x69, +0xC0, 0xF3, 0x44, 0x98, 0x08, 0x6B, 0x2B, 0xE9, +0x04, 0xD6, 0xA4, 0x36, 0x6D, 0xEE, 0x03, 0xF3, +0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF3, 0x08, 0x6C, 0x08, 0xF0, +0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF5, 0xD8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF3, 0x14, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF3, +0x0C, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0x04, 0x92, 0x04, 0x22, 0x02, 0x72, 0x00, 0x68, +0x2C, 0x60, 0x44, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF1, 0xC8, 0x9B, +0xB1, 0x67, 0x43, 0xF3, 0x0C, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF5, 0xBC, 0x9A, +0xE3, 0xF3, 0x1C, 0x69, 0x91, 0x67, 0x80, 0x18, +0x6E, 0x3C, 0x91, 0x67, 0xFF, 0xF7, 0x1F, 0x6D, +0x02, 0x67, 0x80, 0x18, 0x6E, 0x3C, 0x22, 0x67, +0x42, 0x32, 0x5E, 0x32, 0x05, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF1, 0x58, 0x9A, 0x27, 0xE2, +0x02, 0x32, 0x5E, 0x32, 0x21, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF1, 0x58, 0x9A, 0x03, 0xE2, +0x1B, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF1, +0x68, 0x9B, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x01, 0x69, 0x2B, 0xE9, 0x00, 0xF6, +0x00, 0x36, 0x43, 0xF3, 0x0C, 0x6C, 0xB1, 0x67, +0x6D, 0xEE, 0x40, 0xEA, 0x01, 0x48, 0xE3, 0xF3, +0x1C, 0x6C, 0xB1, 0x67, 0x80, 0x18, 0x6E, 0x3C, +0x40, 0x70, 0xE7, 0x61, 0x00, 0x68, 0x30, 0x67, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x01, 0x6D, 0x43, 0xF3, 0x0C, 0x6C, 0xAB, 0xED, +0x00, 0x6E, 0x40, 0xEA, 0x18, 0xE8, 0x09, 0x97, +0x12, 0xE8, 0x38, 0xE9, 0x12, 0xE9, 0x29, 0xE0, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x00, 0x6C, 0x0F, 0x6D, 0x0C, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0xAC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x00, 0x6E, 0xC3, 0xF3, +0x14, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF4, 0xBC, 0x9A, 0xE3, 0xF3, 0x1C, 0x6C, +0x80, 0x18, 0x6E, 0x3C, 0x05, 0x97, 0x04, 0x90, +0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF5, 0xDC, 0x9B, +0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, 0xC3, 0xF3, +0x14, 0x6C, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF4, 0xBC, 0x9A, 0xE3, 0xF3, +0x1C, 0x69, 0x91, 0x67, 0x80, 0x18, 0x6E, 0x3C, +0xFF, 0xF7, 0x1F, 0x68, 0x91, 0x67, 0xE1, 0xF7, +0x1F, 0x6D, 0x4C, 0xE8, 0xFF, 0xF7, 0x1F, 0x69, +0x80, 0x18, 0x6E, 0x3C, 0x4C, 0xE9, 0x02, 0x32, +0x4E, 0x32, 0x01, 0x72, 0x06, 0x61, 0x02, 0xF0, +0x00, 0x6A, 0x03, 0xE2, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE8, 0x22, 0x32, 0x4E, 0x32, 0x01, 0x72, +0x06, 0x61, 0x02, 0xF0, 0x00, 0x6A, 0x27, 0xE2, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE9, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0x6D, +0xF0, 0x6E, 0xC3, 0xF3, 0x14, 0x6C, 0xAB, 0xED, +0x40, 0xEA, 0xE3, 0xF3, 0x1C, 0x6C, 0xFF, 0x6D, +0x80, 0x18, 0x6E, 0x3C, 0xE3, 0xF3, 0x1C, 0x6C, +0x1F, 0xF7, 0x00, 0x6D, 0x04, 0xD2, 0x80, 0x18, +0x6E, 0x3C, 0xC9, 0x58, 0x0C, 0x60, 0xC9, 0x59, +0x0A, 0x60, 0x04, 0x93, 0xFF, 0x6A, 0x6C, 0xEA, +0x28, 0x5A, 0x05, 0x61, 0x42, 0x5A, 0x58, 0x67, +0x01, 0x6B, 0x6E, 0xEA, 0x01, 0x10, 0x01, 0x6A, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, +0xB4, 0x9A, 0x04, 0x67, 0x63, 0xF6, 0x1C, 0x6C, +0x80, 0x18, 0x6E, 0x3C, 0x01, 0x22, 0x01, 0x6A, +0x60, 0xF0, 0x5B, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF4, 0xF0, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xEE, 0xF6, 0x08, 0x4C, 0x00, 0x6D, 0x18, 0x6E, +0x80, 0x18, 0x9C, 0x4E, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF1, 0x78, 0x9B, 0x80, 0xF0, 0x50, 0xC0, +0x05, 0x97, 0x4C, 0xEB, 0x62, 0x33, 0x62, 0x33, +0x80, 0xF0, 0x71, 0xC0, 0x06, 0xF0, 0x00, 0x6B, +0x4C, 0xEB, 0x62, 0x33, 0x72, 0x33, 0x80, 0xF0, +0x72, 0xC0, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x00, 0x6A, 0x0D, 0xD7, 0x05, 0x67, 0x26, 0x67, +0x04, 0xD2, 0x0B, 0x10, 0x80, 0xA8, 0x01, 0x6D, +0xAB, 0xED, 0x80, 0x18, 0x6E, 0x3C, 0x40, 0xD9, +0x04, 0x93, 0x04, 0x48, 0x04, 0x49, 0x01, 0x4B, +0x04, 0xD3, 0x04, 0x92, 0x0D, 0x93, 0x63, 0xEA, +0xF1, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF1, 0x08, 0x4B, 0xE0, 0x9B, 0xFF, 0x69, +0x30, 0xF0, 0x20, 0x68, 0xAC, 0xE9, 0xEE, 0xF6, +0x08, 0x48, 0x90, 0x67, 0xB1, 0x67, 0x01, 0x6A, +0x42, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF1, 0x08, 0x4A, 0xE0, 0x9A, 0x90, 0x67, +0xB1, 0x67, 0x42, 0x6E, 0x80, 0x18, 0xE1, 0x4E, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, 0x08, 0x4A, +0xE0, 0x9A, 0x01, 0x6B, 0xB1, 0x67, 0x90, 0x67, +0x42, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x0F, 0x6C, 0x40, 0xEA, 0x90, 0x67, 0xB1, 0x67, +0x42, 0x6E, 0x7E, 0x6F, 0x80, 0x18, 0x9C, 0x4E, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0xFF, 0x6B, +0x6C, 0xEA, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x00, 0x6A, 0x0A, 0xD4, 0x60, 0xF0, 0x5E, 0xCC, +0x0A, 0x90, 0x04, 0xD4, 0x00, 0x69, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x64, 0x9A, 0x24, 0x36, +0x08, 0x6A, 0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, +0x0F, 0x6D, 0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x43, 0xF3, 0x18, 0x6C, +0x7F, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x00, 0x6A, +0x80, 0xF0, 0x55, 0xC0, 0x80, 0xF0, 0x53, 0xC0, +0x04, 0x94, 0x5B, 0x6B, 0xB1, 0x67, 0x20, 0xF1, +0x78, 0xCC, 0x80, 0xF0, 0x44, 0xC0, 0x0A, 0x94, +0x01, 0x49, 0x80, 0x18, 0x7B, 0x30, 0x80, 0xF0, +0x40, 0xC0, 0x04, 0x92, 0x02, 0x71, 0x01, 0x48, +0x02, 0x4A, 0x04, 0xD2, 0xD4, 0x61, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x0C, 0xD4, 0x80, 0xF0, 0x51, 0xA4, 0xFF, 0x68, +0xAC, 0xE8, 0x07, 0xD2, 0x5D, 0x2A, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF4, 0x10, 0x4B, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0x9B, 0xE3, 0xF5, 0x40, 0x9A, +0x30, 0xF0, 0x20, 0x69, 0xEE, 0xF6, 0x08, 0x49, +0x91, 0x67, 0xB0, 0x67, 0x00, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF4, 0x10, 0x4A, 0xE0, 0x9A, 0x91, 0x67, +0xB0, 0x67, 0x56, 0x6E, 0x80, 0x18, 0x9C, 0x4E, +0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, +0xF8, 0x9A, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, +0xDE, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, +0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF1, 0xE8, 0x9A, 0x91, 0x67, 0xB0, 0x67, +0xDE, 0x6E, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6A, 0x07, 0x93, 0xE3, 0xF5, 0xE4, 0x9A, +0x91, 0x67, 0xB0, 0x67, 0x55, 0x6E, 0x04, 0xD3, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF4, 0x10, 0x4B, 0xE0, 0x9B, 0x06, 0x92, +0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x55, 0x6E, 0x1C, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x07, 0x93, 0x30, 0xF0, +0x20, 0x6A, 0x91, 0x67, 0x04, 0xD3, 0xB0, 0x67, +0x87, 0x6E, 0xE3, 0xF1, 0xE4, 0x9A, 0x6B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF5, 0x40, 0x9A, +0x30, 0xF0, 0x20, 0x69, 0xEE, 0xF6, 0x08, 0x49, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, +0x10, 0x4A, 0xE0, 0x9A, 0x91, 0x67, 0xB0, 0x67, +0x00, 0x6E, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF4, 0x10, 0x4B, 0xE0, 0x9B, +0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, 0x80, 0x18, +0x9C, 0x4E, 0x06, 0xD2, 0x01, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, 0xF8, 0x9A, +0x91, 0x67, 0xB0, 0x67, 0xDE, 0x6E, 0x80, 0x18, +0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, +0xE8, 0x9A, 0x01, 0x6B, 0x91, 0x67, 0xB0, 0x67, +0xDE, 0x6E, 0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, +0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF5, 0xE4, 0x9A, 0x91, 0x67, 0xB0, 0x67, +0x55, 0x6E, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF4, 0x10, 0x4A, 0x06, 0x93, +0xE0, 0x9A, 0x91, 0x67, 0xB0, 0x67, 0x56, 0x6E, +0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, 0x00, 0x6B, +0x91, 0x67, 0xB0, 0x67, 0x63, 0x6E, 0x18, 0xF0, +0x00, 0x6F, 0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, +0x06, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x63, 0x6E, +0x1C, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x63, 0x6E, +0x06, 0xF0, 0x00, 0x6F, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x00, 0x6B, 0x04, 0xD3, 0x91, 0x67, +0xB0, 0x67, 0x8A, 0x6E, 0x18, 0x6F, 0x80, 0x18, +0xE1, 0x4E, 0x91, 0x67, 0x30, 0xF0, 0x20, 0x69, +0x0F, 0x6A, 0xB0, 0x67, 0x00, 0x6E, 0xE0, 0xF3, +0x00, 0x6F, 0xEE, 0xF6, 0x08, 0x49, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x01, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0xDE, 0x6E, 0x04, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x00, 0x6A, 0x91, 0x67, +0xB0, 0x67, 0x1A, 0x6E, 0x01, 0xF4, 0x00, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x0C, 0x93, +0x80, 0xF0, 0x52, 0xA3, 0x01, 0x72, 0x02, 0x6A, +0x01, 0x60, 0x01, 0x6A, 0x91, 0x67, 0xB0, 0x67, +0x1A, 0x6E, 0x0E, 0xF0, 0x00, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6C, +0xB0, 0x67, 0x8F, 0x6E, 0x02, 0x6F, 0x30, 0xF0, +0x20, 0x68, 0x01, 0x6A, 0xEE, 0xF6, 0x08, 0x4C, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x80, 0xF3, +0x4C, 0x98, 0x14, 0x6C, 0x40, 0xEA, 0x80, 0xF3, +0x4C, 0x98, 0x14, 0x6C, 0x40, 0xEA, 0x80, 0xF3, +0x4C, 0x98, 0x14, 0x6C, 0x40, 0xEA, 0x80, 0xF3, +0x4C, 0x98, 0x14, 0x6C, 0x40, 0xEA, 0x80, 0xF3, +0x4C, 0x98, 0x14, 0x6C, 0x40, 0xEA, 0x06, 0x93, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x1F, 0x6A, +0x6C, 0xEA, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x00, 0x69, 0x0A, 0xD4, 0x00, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, 0xF0, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xFF, 0x6D, 0xEE, 0xF6, +0x08, 0x4C, 0x2C, 0xED, 0x19, 0x6E, 0x30, 0xF0, +0x20, 0x68, 0x80, 0x18, 0xE1, 0x4E, 0xC0, 0xF3, +0x64, 0x98, 0x08, 0x6A, 0x24, 0x36, 0x01, 0x6D, +0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, +0x40, 0xEB, 0x0A, 0x93, 0x80, 0xF0, 0x51, 0xA3, +0x0B, 0x2A, 0x01, 0x6D, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0xE3, 0xF5, 0xC8, 0x9B, 0x0A, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0xE3, 0xF5, 0xCC, 0x9B, 0x01, 0x6D, 0x63, 0xF3, +0x00, 0x6C, 0xAB, 0xED, 0x30, 0xF0, 0x20, 0x68, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF3, +0x04, 0x6C, 0x0E, 0xF0, 0x00, 0x6D, 0x04, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF4, 0xA0, 0x9B, 0x23, 0xF3, +0x00, 0x6C, 0x03, 0x6E, 0x01, 0x49, 0x40, 0xEA, +0x02, 0x71, 0xB4, 0x61, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x0C, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xE3, 0xF5, 0xD0, 0x9B, 0x01, 0x69, +0x2B, 0xE9, 0xB1, 0x67, 0xE3, 0xF3, 0x04, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0xE3, 0xF5, 0xD4, 0x9B, 0xB1, 0x67, +0xE3, 0xF3, 0x08, 0x6C, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF5, 0x58, 0x9A, +0xFF, 0x69, 0x30, 0xF0, 0x20, 0x68, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, 0x10, 0x4A, +0xE0, 0x9A, 0xEE, 0xF6, 0x08, 0x48, 0xAC, 0xE9, +0x90, 0x67, 0xB1, 0x67, 0x92, 0x6E, 0x80, 0x18, +0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x05, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF4, 0x10, 0x4B, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF5, 0x5C, 0x9A, 0xE0, 0x9B, +0x90, 0x67, 0xB1, 0x67, 0x92, 0x6E, 0x04, 0xD2, +0x00, 0x68, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, +0x01, 0x48, 0x40, 0xEA, 0xFF, 0x6A, 0x4C, 0xE8, +0x1E, 0x70, 0xF5, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF5, 0x58, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xB1, 0x67, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF4, 0xF0, 0x9A, 0xEE, 0xF6, 0x08, 0x4C, +0x92, 0x6E, 0x80, 0x18, 0xE1, 0x4E, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x00, 0x6A, 0x06, 0xD5, 0x06, 0x67, 0x07, 0xD2, +0x40, 0x98, 0x06, 0x93, 0x30, 0xF0, 0x20, 0x69, +0xEE, 0xF6, 0x08, 0x49, 0xC0, 0x9B, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, 0x10, 0x4A, +0xE0, 0x9A, 0x91, 0x67, 0x00, 0x6D, 0x80, 0x18, +0xE1, 0x4E, 0x41, 0x98, 0x06, 0x93, 0x91, 0x67, +0x01, 0x6D, 0xC0, 0x9B, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF4, 0x10, 0x4A, 0xE0, 0x9A, +0x08, 0x48, 0x80, 0x18, 0xE1, 0x4E, 0x07, 0x93, +0x06, 0x92, 0x01, 0x4B, 0x04, 0x4A, 0x07, 0x73, +0x07, 0xD3, 0x06, 0xD2, 0xD9, 0x61, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x00, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF5, +0x58, 0x9A, 0x30, 0xF0, 0x20, 0x69, 0xEE, 0xF6, +0x08, 0x49, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF4, 0x10, 0x4A, 0xE0, 0x9A, 0x91, 0x67, +0xB0, 0x67, 0x92, 0x6E, 0x80, 0x18, 0xE1, 0x4E, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x05, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF4, 0x10, 0x4B, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF5, 0x5C, 0x9A, 0xE0, 0x9B, 0x91, 0x67, +0xB0, 0x67, 0x92, 0x6E, 0x04, 0xD2, 0x00, 0x69, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, 0x01, 0x49, +0x40, 0xEA, 0xFF, 0x6A, 0x4C, 0xE9, 0x1E, 0x71, +0xF5, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF5, +0x58, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xB0, 0x67, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, +0xF0, 0x9A, 0xEE, 0xF6, 0x08, 0x4C, 0x92, 0x6E, +0x80, 0x18, 0xE1, 0x4E, 0x01, 0x48, 0xFF, 0x6B, +0x6C, 0xE8, 0x02, 0x70, 0xB6, 0x61, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x00, 0x69, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF5, +0xB0, 0x9A, 0x02, 0xF7, 0x00, 0x6C, 0x80, 0x18, +0xE6, 0x3C, 0x20, 0x6B, 0x4C, 0xEB, 0x12, 0x2B, +0x00, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x14, 0x6C, 0x01, 0x48, 0x40, 0xEA, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0xE0, 0xF1, +0x14, 0x70, 0xF3, 0x61, 0x01, 0x49, 0x0A, 0x71, +0xE4, 0x61, 0x0A, 0x69, 0x51, 0x67, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0xF7, 0x1F, 0x68, 0xAC, 0xE8, 0x80, 0x18, +0xF6, 0x31, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF5, +0xD4, 0x9A, 0x01, 0x69, 0x2B, 0xE9, 0x0D, 0xEE, +0xB1, 0x67, 0x02, 0xF7, 0x00, 0x6C, 0x80, 0x18, +0xFB, 0x3C, 0xB1, 0x67, 0x02, 0xF7, 0x08, 0x6C, +0x80, 0x18, 0xE6, 0x3C, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0xF7, 0x1F, 0x68, 0x24, 0x67, 0x0C, 0xD6, +0x0D, 0xD7, 0xAC, 0xE8, 0x38, 0x26, 0x66, 0x67, +0x01, 0x4B, 0x00, 0x6A, 0x09, 0x2B, 0x01, 0x69, +0x2B, 0xE9, 0x80, 0x18, 0xF6, 0x31, 0x02, 0xF7, +0x04, 0x6C, 0xB1, 0x67, 0x0D, 0x96, 0x1F, 0x10, +0x0C, 0x93, 0x01, 0x6C, 0x66, 0xEA, 0x8C, 0xEB, +0x04, 0x2B, 0x01, 0x4A, 0x20, 0x72, 0xF8, 0x61, +0x00, 0x6A, 0x91, 0x67, 0xB0, 0x67, 0x05, 0xD2, +0x80, 0x18, 0x0A, 0x32, 0x0C, 0x93, 0x91, 0x67, +0x01, 0x69, 0x6F, 0xEB, 0x4C, 0xEB, 0x04, 0xD3, +0x80, 0x18, 0xF6, 0x31, 0x0D, 0x96, 0x05, 0x92, +0x04, 0x93, 0x2B, 0xE9, 0xC4, 0xEA, 0x02, 0xF7, +0x04, 0x6C, 0xB1, 0x67, 0x6D, 0xEE, 0x80, 0x18, +0xFB, 0x3C, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF5, +0xD8, 0x9A, 0x02, 0xF7, 0x00, 0x6C, 0xB1, 0x67, +0x0D, 0xEE, 0x80, 0x18, 0xFB, 0x3C, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0xAC, 0xEA, 0x04, 0x67, 0x1D, 0x22, +0x01, 0x6D, 0x70, 0x6C, 0xAB, 0xED, 0x80, 0x18, +0xE6, 0x3C, 0x80, 0xF0, 0x48, 0xD8, 0x90, 0x67, +0x38, 0x6D, 0x80, 0x18, 0x0A, 0x32, 0x80, 0xF0, +0x4C, 0xD8, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, +0xA4, 0x9A, 0x70, 0x6C, 0x01, 0x6E, 0x80, 0x18, +0xFB, 0x3C, 0x90, 0x67, 0x38, 0x6D, 0x1F, 0xF7, +0x00, 0x6E, 0x77, 0x6F, 0x80, 0x18, 0x1A, 0x32, +0x0E, 0x10, 0x01, 0x69, 0x80, 0xF0, 0xEC, 0x98, +0x2B, 0xE9, 0x38, 0x6D, 0xD1, 0x67, 0x80, 0x18, +0x1A, 0x32, 0x80, 0xF0, 0xC8, 0x98, 0x70, 0x6C, +0xB1, 0x67, 0x80, 0x18, 0xFB, 0x3C, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x4C, 0xED, 0x0A, 0xD4, 0x04, 0xD5, +0x80, 0xF0, 0x72, 0xA4, 0x01, 0x6C, 0x26, 0x67, +0x8E, 0xEB, 0x01, 0x5B, 0x4C, 0xE9, 0x78, 0x67, +0x01, 0x71, 0x64, 0x33, 0x03, 0x61, 0x05, 0x67, +0x14, 0x48, 0x10, 0x10, 0x02, 0x71, 0x03, 0x61, +0x04, 0x90, 0x16, 0x48, 0x0A, 0x10, 0x03, 0x71, +0x03, 0x61, 0x04, 0x90, 0x1A, 0x48, 0x06, 0x10, +0x04, 0x71, 0x00, 0x68, 0x04, 0x61, 0x04, 0x90, +0x1C, 0x48, 0x01, 0xE3, 0x4C, 0xE8, 0x0A, 0x94, +0x01, 0x6D, 0x80, 0x18, 0x3E, 0x32, 0x4A, 0x29, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF3, 0x14, 0x49, 0x91, 0x67, 0x02, 0xF0, +0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0x02, 0xF0, 0x00, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF4, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x00, 0x6E, 0xC3, 0xF3, 0x14, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x14, 0x6C, 0x00, 0x68, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF0, 0xAC, 0x9A, 0xE3, 0xF3, +0x1C, 0x6C, 0x80, 0x18, 0x6E, 0x3C, 0xFF, 0x6B, +0x4C, 0xEB, 0x14, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, 0x01, 0x48, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF0, +0xAC, 0x9A, 0xE3, 0xF3, 0x1C, 0x6C, 0x80, 0x18, +0x6E, 0x3C, 0xFF, 0x6B, 0x4C, 0xEB, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xE8, 0x01, 0x73, 0x60, 0x60, +0xE0, 0xF3, 0x08, 0x70, 0xE7, 0x61, 0xE0, 0xF3, +0x08, 0x68, 0x5A, 0x10, 0x04, 0x92, 0x30, 0xF0, +0x20, 0x69, 0xC0, 0xF3, 0x64, 0x99, 0x44, 0x36, +0x08, 0x6A, 0x4D, 0xEE, 0x03, 0xF3, 0x00, 0x6C, +0x0F, 0x6D, 0x40, 0xEB, 0xC0, 0xF3, 0x44, 0x99, +0xC3, 0xF3, 0x0C, 0x6C, 0x3F, 0x6D, 0x09, 0x6E, +0x40, 0xEA, 0x00, 0x30, 0x48, 0x6A, 0x4D, 0xE8, +0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0xD0, 0x67, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x99, 0x01, 0x6D, 0xC1, 0x40, +0x03, 0xF3, 0x00, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x85, 0xF5, 0x1C, 0x6C, 0xFF, 0x6D, 0x80, 0x18, +0x6E, 0x3C, 0xFF, 0x6B, 0x4C, 0xEB, 0x00, 0x68, +0x11, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x14, 0x6C, 0x01, 0x48, 0x40, 0xEA, +0x85, 0xF5, 0x1C, 0x6C, 0xFF, 0x6D, 0x80, 0x18, +0x6E, 0x3C, 0xFF, 0x6B, 0x4C, 0xEB, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xE8, 0x55, 0x73, 0x05, 0x60, +0xE0, 0xF3, 0x08, 0x70, 0xEA, 0x61, 0xE0, 0xF3, +0x08, 0x68, 0x04, 0x94, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x44, 0x99, 0x84, 0x36, 0x08, 0x6B, +0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x6D, 0xEE, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, 0xC3, 0xF3, +0x0C, 0x6C, 0x3F, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x0A, 0x94, 0x00, 0x6D, 0x80, 0x18, 0x3E, 0x32, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x03, 0xF3, 0x10, 0x6C, 0xFF, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xE0, 0xF3, 0x08, 0x6A, 0x0E, 0xEA, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x01, 0x5A, +0x58, 0x67, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x60, 0xF0, 0x5E, 0xAC, 0x24, 0x67, 0x03, 0x2A, +0x80, 0xF0, 0x50, 0xA4, 0x71, 0x22, 0x80, 0x18, +0x53, 0x30, 0x00, 0x68, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9B, 0x04, 0x36, 0x08, 0x6B, +0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x6D, 0xEE, +0x40, 0xEA, 0x80, 0xF0, 0x51, 0xA1, 0x0D, 0x2A, +0x30, 0xF0, 0x20, 0x6C, 0x01, 0x6D, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9C, 0xAB, 0xED, +0x63, 0xF3, 0x00, 0x6C, 0xE3, 0xF5, 0xC8, 0x9B, +0x0C, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9B, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF5, +0xCC, 0x9B, 0x01, 0x6D, 0x63, 0xF3, 0x00, 0x6C, +0xAB, 0xED, 0x40, 0xEA, 0x0D, 0xE1, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6D, 0x80, 0xF0, +0xD5, 0xA3, 0xC0, 0xF3, 0x44, 0x9C, 0x23, 0xF5, +0xB0, 0x9D, 0x63, 0xF3, 0x04, 0x6C, 0x40, 0xEA, +0x60, 0xF0, 0xDE, 0xA1, 0x01, 0x6A, 0x44, 0xE8, +0x47, 0xE8, 0x4C, 0xEE, 0x91, 0x67, 0xB0, 0x67, +0x80, 0x18, 0x82, 0x2D, 0x91, 0x67, 0xB0, 0x67, +0x03, 0x6E, 0x80, 0x18, 0x5A, 0x32, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x03, 0xF3, +0x00, 0x6C, 0x0F, 0x6D, 0x0C, 0x6E, 0x40, 0xEA, +0xFF, 0x6A, 0x0C, 0xEA, 0x0D, 0x2A, 0x30, 0xF0, +0x20, 0x6C, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9C, 0x03, 0xF6, 0xA0, 0x9B, 0x03, 0xF3, +0x04, 0x6C, 0x20, 0xF1, 0xD8, 0xA9, 0x0C, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF6, 0xA0, 0x9B, +0x20, 0xF1, 0xDA, 0xA9, 0x43, 0xF3, 0x1C, 0x6C, +0x01, 0x48, 0x40, 0xEA, 0x02, 0x70, 0x92, 0x61, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x00, 0x6A, 0x60, 0xF0, 0x5C, 0xC4, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, 0xF0, 0x9A, +0x04, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0xEE, 0xF6, +0x08, 0x4C, 0x00, 0x6D, 0x18, 0x6E, 0x80, 0x18, +0x9C, 0x4E, 0x80, 0xF0, 0x90, 0xA0, 0xFF, 0x6B, +0x4C, 0xEB, 0x8E, 0xEB, 0x06, 0x2B, 0x90, 0x67, +0x80, 0x18, 0xCE, 0x32, 0x01, 0x6A, 0x60, 0xF0, +0x5C, 0xC0, 0x60, 0xF0, 0x5C, 0xA0, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0xAC, 0xEA, +0x04, 0xD2, 0x44, 0x36, 0xC0, 0xF3, 0x44, 0x98, +0x08, 0x6B, 0x6D, 0xEE, 0x0A, 0xD4, 0x0F, 0x6D, +0x03, 0xF3, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF3, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF3, 0x00, 0x69, 0x91, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF4, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x7F, 0x49, +0xC0, 0xF3, 0x44, 0x98, 0x2D, 0x49, 0x91, 0x67, +0x3F, 0x6D, 0x09, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF1, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, +0x0F, 0x6D, 0x0C, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xC3, 0xF3, 0x14, 0x6C, 0xF0, 0x6D, +0x0F, 0x6E, 0x40, 0xEA, 0x04, 0x93, 0x12, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF6, 0xA0, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF6, 0xC4, 0x9B, 0x03, 0xF3, 0x04, 0x6C, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x08, 0x6C, 0x11, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF6, 0xA0, 0x9B, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF6, 0xC4, 0x9B, +0x43, 0xF3, 0x1C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x63, 0xF3, 0x00, 0x6C, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF0, 0xAC, 0x9B, 0x01, 0x6E, +0x40, 0xEA, 0x0A, 0x93, 0x80, 0xF0, 0x52, 0xA3, +0x01, 0x72, 0x41, 0x61, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF6, 0xC8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, +0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF3, 0x18, 0x6C, +0xB1, 0x67, 0x02, 0xF3, 0x10, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF6, 0xCC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF3, 0x18, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF6, 0xD0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF3, 0x18, 0x6C, +0xB1, 0x67, 0x36, 0xF4, 0x08, 0x6E, 0x40, 0xEA, +0x04, 0x92, 0x01, 0x6E, 0x30, 0xF0, 0x20, 0x6B, +0xC4, 0xEA, 0x00, 0xF7, 0xC0, 0x36, 0xC0, 0xF3, +0x44, 0x98, 0xE3, 0xF3, 0x14, 0x6C, 0xB1, 0x67, +0x03, 0xF6, 0x74, 0x9B, 0x42, 0x10, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF6, +0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, +0x2B, 0xE9, 0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF6, +0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF3, +0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF6, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF6, +0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF3, +0x18, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xE3, 0xF3, 0x18, 0x6C, 0xB1, 0x67, +0x36, 0xF4, 0x08, 0x6E, 0x40, 0xEA, 0x04, 0x93, +0x01, 0x6E, 0xC0, 0xF3, 0x44, 0x98, 0xC4, 0xEB, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF6, 0x68, 0x9B, +0x00, 0xF7, 0xC0, 0x36, 0xE3, 0xF3, 0x14, 0x6C, +0xB1, 0x67, 0x6D, 0xEE, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0x23, 0xF5, +0x30, 0x9A, 0x04, 0x96, 0xC0, 0xF3, 0x44, 0x98, +0x08, 0x6B, 0x6D, 0xEE, 0xB1, 0x67, 0xA3, 0xF3, +0x14, 0x6C, 0x40, 0xEA, 0x0A, 0x94, 0x04, 0x95, +0x00, 0x6E, 0x80, 0x18, 0x5A, 0x32, 0xC0, 0xF3, +0x44, 0x98, 0xB1, 0x67, 0xE3, 0xF3, 0x14, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x04, 0x92, 0x08, 0x6B, +0x03, 0xF3, 0x00, 0x6C, 0x44, 0x36, 0xC0, 0xF3, +0x44, 0x98, 0x6D, 0xEE, 0x0F, 0x6D, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF6, 0xAC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF3, 0x0C, 0x69, +0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF1, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, 0x00, 0x6C, +0x0F, 0x6D, 0x0C, 0x6E, 0x40, 0xEA, 0x04, 0x92, +0x05, 0x2A, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF3, +0x04, 0x6C, 0x04, 0x10, 0xC0, 0xF3, 0x44, 0x98, +0x43, 0xF3, 0x1C, 0x6C, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF6, 0xA0, 0x9B, 0x5B, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF4, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, +0xC3, 0xF3, 0x14, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, 0xBC, 0x9A, +0xE3, 0xF3, 0x1C, 0x6C, 0x80, 0x18, 0x6E, 0x3C, +0xFF, 0xF7, 0x1F, 0x6B, 0x80, 0xF3, 0x0E, 0x6C, +0x6C, 0xEA, 0x98, 0xEA, 0x0A, 0x6C, 0x12, 0xE8, +0x02, 0x30, 0x0A, 0x30, 0x9B, 0xE8, 0x01, 0x2C, +0xE5, 0xE8, 0x10, 0xEC, 0x05, 0x5C, 0x12, 0xE8, +0x6C, 0xE8, 0x02, 0x61, 0x01, 0x48, 0x6C, 0xE8, +0x04, 0x92, 0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF3, 0x04, 0x6C, +0x06, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x43, 0xF3, 0x1C, 0x6C, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF6, 0xA0, 0x9B, 0xD0, 0x67, +0x40, 0xEA, 0x04, 0x92, 0x0A, 0x93, 0x7F, 0x4A, +0x1D, 0x4A, 0x44, 0x32, 0x49, 0xE3, 0x00, 0xCA, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0xAC, 0xE8, +0xB0, 0x67, 0x03, 0x6E, 0x24, 0x67, 0x80, 0x18, +0x5A, 0x32, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9B, 0x04, 0x36, 0x08, 0x6B, 0x6D, 0xEE, +0x03, 0xF3, 0x00, 0x6C, 0x0F, 0x6D, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0xA0, 0x9B, +0x23, 0xF3, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x60, 0xF0, 0x7E, 0xA9, 0x01, 0x6A, 0x44, 0xE8, +0x6C, 0xEA, 0x47, 0xE8, 0x04, 0x22, 0x91, 0x67, +0xB0, 0x67, 0x80, 0x18, 0x22, 0x33, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x68, 0xCC, 0xE8, 0xB0, 0x67, 0x02, 0x6E, +0x24, 0x67, 0x80, 0x18, 0x5A, 0x32, 0x07, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x08, 0x6B, 0x04, 0x36, 0x6D, 0xEE, 0x03, 0xF3, +0x00, 0x6C, 0x0F, 0x6D, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF3, 0xA4, 0x9A, 0x03, 0xF3, +0x08, 0x6C, 0x80, 0x18, 0x6E, 0x3C, 0x06, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF6, 0x50, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xB0, 0x67, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, 0xF0, 0x9A, +0x00, 0x6E, 0xEE, 0xF6, 0x08, 0x4C, 0x80, 0x18, +0xE1, 0x4E, 0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, +0xDB, 0x2E, 0x06, 0x93, 0x07, 0x92, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x6D, 0xEA, 0xFF, 0x6B, +0x6C, 0xEA, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x6A, 0x25, 0x67, 0x4C, 0xEE, 0x4C, 0xE9, +0xEC, 0xEA, 0x01, 0x72, 0x04, 0x67, 0x04, 0xD6, +0x17, 0x61, 0xB1, 0x67, 0x04, 0x6E, 0x80, 0x18, +0x5A, 0x32, 0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, +0x0E, 0x30, 0x00, 0xF6, 0x00, 0x5A, 0x04, 0x61, +0x04, 0x93, 0x02, 0x6A, 0x23, 0x2B, 0x25, 0x10, +0x04, 0x94, 0x00, 0xF3, 0x00, 0x5A, 0x78, 0x67, +0x01, 0x5C, 0x58, 0x67, 0x1E, 0x2B, 0x1A, 0x10, +0x19, 0x2A, 0xB1, 0x67, 0x00, 0x6E, 0x80, 0x18, +0xC7, 0x2F, 0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF6, +0x74, 0x9B, 0x43, 0xEB, 0x11, 0x60, 0x42, 0x34, +0x96, 0x34, 0x80, 0x18, 0xF6, 0x2A, 0x03, 0x6B, +0x78, 0xEA, 0x03, 0x6A, 0x12, 0xEB, 0xFE, 0xF0, +0x02, 0x4B, 0xE0, 0xF3, 0x09, 0x5B, 0x05, 0x60, +0xFA, 0x5B, 0x02, 0x61, 0x00, 0x6A, 0x01, 0x10, +0x04, 0x6A, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xF7, 0x63, 0x11, 0x62, +0x10, 0xD1, 0x0F, 0xD0, 0xFF, 0x6A, 0x25, 0x67, +0x4C, 0xEE, 0x4C, 0xEF, 0x4C, 0xE9, 0x00, 0x6A, +0x12, 0xD4, 0x0C, 0xD6, 0x0A, 0xD7, 0x08, 0xD2, +0x09, 0xD2, 0x06, 0xD2, 0x02, 0x67, 0x07, 0xD2, +0x06, 0x5A, 0x80, 0xF0, 0x1C, 0x60, 0x30, 0xF0, +0x20, 0x6B, 0x48, 0x32, 0x22, 0xF6, 0x0C, 0x4B, +0x49, 0xE3, 0x40, 0x9A, 0x00, 0xEA, 0x30, 0xF0, +0x20, 0x68, 0xEE, 0xF6, 0x08, 0x48, 0x90, 0x67, +0xB1, 0x67, 0x56, 0x6E, 0x1F, 0x6F, 0x80, 0x18, +0x9C, 0x4E, 0x90, 0x67, 0xB1, 0x67, 0x00, 0x6E, +0xE0, 0xF3, 0x00, 0x6F, 0x0B, 0xD2, 0x80, 0x18, +0x9C, 0x4E, 0x0A, 0x94, 0x06, 0xD2, 0x0D, 0x2C, +0x12, 0x94, 0x08, 0x96, 0xB1, 0x67, 0x01, 0x6F, +0x80, 0x18, 0x26, 0x34, 0x07, 0x2A, 0x0C, 0x92, +0x04, 0x22, 0x01, 0x6B, 0x09, 0xD3, 0x0A, 0x92, +0x01, 0x10, 0x05, 0x6A, 0x06, 0x94, 0xFF, 0x6B, +0x0B, 0x90, 0x6C, 0xEC, 0x06, 0xD4, 0x07, 0x94, +0x6C, 0xE8, 0x01, 0x4C, 0x6C, 0xEC, 0x07, 0xD4, +0x60, 0x10, 0x06, 0x92, 0x0F, 0x5A, 0x12, 0x60, +0x06, 0x92, 0xFF, 0x6B, 0xF4, 0x4A, 0x6C, 0xEA, +0x03, 0x5A, 0x54, 0x60, 0x00, 0x6A, 0x30, 0xF0, +0x20, 0x6C, 0x04, 0xD2, 0xEE, 0xF6, 0x08, 0x4C, +0xB1, 0x67, 0xC2, 0x67, 0x13, 0x10, 0x06, 0x93, +0x0C, 0x5B, 0x02, 0x60, 0x0C, 0x6A, 0x07, 0x10, +0x06, 0x92, 0xFF, 0x6B, 0xF4, 0x4A, 0x6C, 0xEA, +0x03, 0x5A, 0x40, 0x60, 0x0F, 0x6A, 0x30, 0xF0, +0x20, 0x6C, 0x04, 0xD2, 0xEE, 0xF6, 0x08, 0x4C, +0xB1, 0x67, 0x00, 0x6E, 0xE0, 0xF3, 0x00, 0x6F, +0x80, 0x18, 0xE1, 0x4E, 0x35, 0x10, 0x3B, 0x20, +0xFF, 0x6A, 0xFE, 0x48, 0x30, 0xF0, 0x20, 0x6C, +0x4C, 0xE8, 0xEE, 0xF6, 0x08, 0x4C, 0xB1, 0x67, +0x56, 0x6E, 0x1F, 0x6F, 0x04, 0xD0, 0x80, 0x18, +0xE1, 0x4E, 0x00, 0x6C, 0x08, 0xD4, 0x44, 0x67, +0x24, 0x10, 0x1F, 0x70, 0x02, 0x61, 0x1F, 0x68, +0x26, 0x10, 0xFF, 0x6A, 0x03, 0x48, 0x30, 0xF0, +0x20, 0x6C, 0x4C, 0xE8, 0xEE, 0xF6, 0x08, 0x4C, +0xB1, 0x67, 0x56, 0x6E, 0x1F, 0x6F, 0x04, 0xD0, +0x80, 0x18, 0xE1, 0x4E, 0x00, 0x6A, 0x08, 0xD2, +0x10, 0x10, 0x12, 0x94, 0xB1, 0x67, 0x01, 0x6E, +0x80, 0x18, 0x5A, 0x32, 0x12, 0x94, 0x08, 0x96, +0xB1, 0x67, 0x00, 0x6F, 0x80, 0x18, 0x26, 0x34, +0x0A, 0x22, 0x03, 0x10, 0x01, 0x6B, 0x08, 0xD3, +0x00, 0x6A, 0x09, 0x94, 0x04, 0x2C, 0x07, 0x93, +0x06, 0x5B, 0x7F, 0xF7, 0x01, 0x61, 0x50, 0x67, +0x11, 0x97, 0x10, 0x91, 0x0F, 0x90, 0x09, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, +0x0E, 0xD1, 0x0D, 0xD0, 0xFF, 0x68, 0xAC, 0xE8, +0xB0, 0x67, 0x24, 0x67, 0x80, 0x18, 0xBA, 0x30, +0x30, 0xF0, 0x20, 0x6C, 0x1F, 0x6F, 0x00, 0x6E, +0xEE, 0xF6, 0x08, 0x4C, 0xB0, 0x67, 0x0A, 0xD2, +0x80, 0x18, 0x9C, 0x4E, 0x91, 0x67, 0xB0, 0x67, +0x09, 0xD2, 0x80, 0x18, 0x8A, 0x31, 0x91, 0x67, +0xB0, 0x67, 0x04, 0x6E, 0x80, 0x18, 0x5A, 0x32, +0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, 0x0E, 0x30, +0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, 0x21, 0x30, +0x0D, 0x22, 0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, +0x8A, 0x31, 0x91, 0x67, 0xB0, 0x67, 0x04, 0x6E, +0x80, 0x18, 0x5A, 0x32, 0x91, 0x67, 0xB0, 0x67, +0x80, 0x18, 0x21, 0x30, 0x91, 0x67, 0xB0, 0x67, +0x80, 0x18, 0x7B, 0x30, 0x91, 0x67, 0xB0, 0x67, +0x00, 0x6E, 0x01, 0x6F, 0x07, 0xD2, 0x80, 0x18, +0x49, 0x34, 0x91, 0x67, 0xB0, 0x67, 0x08, 0xD2, +0x80, 0x18, 0xAA, 0x2F, 0x08, 0x93, 0x00, 0x6C, +0x06, 0xD4, 0x43, 0xEB, 0x06, 0x61, 0x4B, 0xE3, +0x06, 0xD2, 0x06, 0x94, 0xFF, 0x6A, 0x4C, 0xEC, +0x06, 0xD4, 0x06, 0x92, 0x30, 0xF0, 0x20, 0x6C, +0xEE, 0xF6, 0x08, 0x4C, 0xB0, 0x67, 0x56, 0x6E, +0x1F, 0x6F, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x91, 0x67, 0xB0, 0x67, 0x80, 0x18, 0x7B, 0x30, +0x07, 0x93, 0x43, 0xEB, 0x02, 0x60, 0x6B, 0xE2, +0x02, 0x10, 0x07, 0x94, 0x4B, 0xE4, 0xFF, 0x6B, +0x6C, 0xEA, 0x01, 0xE1, 0x20, 0xF1, 0x5C, 0xC0, +0x09, 0x93, 0x0A, 0x94, 0x0F, 0x97, 0x0E, 0x91, +0x8B, 0xE3, 0x06, 0x93, 0x0D, 0x90, 0x49, 0xE3, +0xFF, 0x6B, 0x6C, 0xEA, 0x08, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x68, 0xAC, 0xE8, 0xB0, 0x67, 0x24, 0x67, +0x80, 0x18, 0xA5, 0x34, 0xA2, 0x67, 0x91, 0x67, +0xD0, 0x67, 0x04, 0xD2, 0x80, 0x18, 0x06, 0x34, +0x04, 0x96, 0x91, 0x67, 0xA2, 0x67, 0xF0, 0x67, +0x80, 0x18, 0xB6, 0x2E, 0x09, 0xE1, 0x80, 0xF0, +0x53, 0xA2, 0x07, 0x22, 0x60, 0xF0, 0x7E, 0xA9, +0x01, 0x6A, 0x44, 0xE8, 0x6D, 0xEA, 0x60, 0xF0, +0x5E, 0xC9, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x00, 0x6D, 0x04, 0x67, 0x80, 0x18, +0xE0, 0x34, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, +0xE0, 0x34, 0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, +0xED, 0x33, 0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, +0xED, 0x33, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xDF, 0x63, 0x41, 0x62, +0x40, 0xD1, 0x3F, 0xD0, 0x30, 0xF0, 0x20, 0x6D, +0x24, 0x67, 0x62, 0xF6, 0x00, 0x4D, 0x2B, 0x04, +0x48, 0x6E, 0x00, 0x18, 0xD2, 0xD2, 0x30, 0xF0, +0x20, 0x6D, 0x04, 0x04, 0x42, 0xF6, 0x04, 0x4D, +0x1C, 0x6E, 0x00, 0x18, 0xD2, 0xD2, 0x52, 0x99, +0x40, 0xA2, 0x04, 0x2A, 0x91, 0x67, 0x80, 0x18, +0x0F, 0x33, 0x3C, 0x2A, 0x91, 0x67, 0x80, 0x18, +0x53, 0x30, 0x04, 0x00, 0x12, 0x6F, 0x91, 0x67, +0x2B, 0x05, 0x19, 0x06, 0x80, 0x18, 0x6C, 0x30, +0x0B, 0x06, 0xB0, 0x67, 0x91, 0x67, 0x80, 0x18, +0x77, 0x2E, 0x91, 0x67, 0x80, 0x18, 0x24, 0x2E, +0x91, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x57, 0x2B, +0x01, 0x6D, 0x91, 0x67, 0x80, 0x18, 0x31, 0x2B, +0x91, 0x67, 0x80, 0x18, 0x50, 0x31, 0x91, 0x67, +0x80, 0x18, 0x9C, 0x30, 0x91, 0x67, 0x80, 0x18, +0xF3, 0x34, 0x91, 0x67, 0x80, 0x18, 0xAE, 0x2D, +0x91, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x31, 0x2B, +0x91, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x57, 0x2B, +0xB0, 0x67, 0x0B, 0x06, 0x91, 0x67, 0x80, 0x18, +0xB2, 0x31, 0x91, 0x67, 0x80, 0x18, 0xCC, 0x31, +0x91, 0x67, 0x2B, 0x05, 0x19, 0x06, 0x12, 0x6F, +0x80, 0x18, 0x12, 0x2B, 0x41, 0x97, 0x40, 0x91, +0x3F, 0x90, 0x21, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0x69, 0x2C, 0xED, 0x01, 0x75, 0x58, 0x67, +0x0C, 0xD4, 0x06, 0xD2, 0x80, 0xF0, 0x0C, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, 0x30, 0x9A, +0x00, 0x6D, 0xC5, 0x67, 0xF1, 0x67, 0x80, 0x18, +0x9C, 0x4E, 0x30, 0xF0, 0x20, 0x68, 0x0C, 0x94, +0xC6, 0xF5, 0x10, 0x48, 0xF1, 0x67, 0x23, 0xF4, +0x44, 0xD8, 0x01, 0x6D, 0x00, 0x6E, 0x80, 0x18, +0x9C, 0x4E, 0x23, 0xF4, 0x48, 0xD8, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x0C, 0x6C, 0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x00, 0x6E, 0x08, 0xF1, +0x0C, 0x6C, 0x03, 0x6D, 0x40, 0xEA, 0x01, 0x6D, +0x21, 0xF0, 0x04, 0x6C, 0xAB, 0xED, 0x80, 0x18, +0x6E, 0x3C, 0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x64, 0x98, 0x43, 0xF5, 0xA4, 0x9A, +0x21, 0xF0, 0x04, 0x6C, 0x03, 0x6E, 0x40, 0xEB, +0x06, 0x93, 0x0C, 0x94, 0x00, 0x6D, 0xC5, 0x67, +0xF1, 0x67, 0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, +0x06, 0x92, 0x0C, 0x94, 0xF1, 0x67, 0x01, 0x6D, +0x00, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0xC0, 0xF3, 0x44, 0x98, 0x07, 0x96, 0x01, 0x6D, +0x21, 0xF0, 0x04, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x0C, 0x94, 0x00, 0x68, 0x80, 0x18, 0x2F, 0x4F, +0x0C, 0x94, 0x80, 0x18, 0x4F, 0x4C, 0x1B, 0x2A, +0xE0, 0xF3, 0x09, 0x70, 0x0D, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x7C, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xC3, 0xF6, 0x94, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x00, 0x6A, 0x91, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x32, 0x6C, 0x01, 0x48, 0x40, 0xEA, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xE8, 0xE1, 0x17, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, +0x04, 0x6C, 0x08, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, 0x6C, 0x9A, +0xFE, 0x6A, 0x01, 0x6D, 0x80, 0xA3, 0xC5, 0x67, +0x8C, 0xEA, 0x40, 0xC3, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF4, 0x04, 0x6C, 0x40, 0xEA, 0x6C, 0x10, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6D, 0x00, 0x6E, 0x23, 0xF4, 0x04, 0x6C, +0x40, 0xEA, 0x00, 0x18, 0x02, 0xE1, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF1, 0x6C, 0x9A, 0x01, 0x6C, +0x40, 0xA3, 0x2C, 0xEA, 0x8D, 0xEA, 0x2C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x69, 0xC6, 0xF5, +0x10, 0x49, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6E, 0x63, 0xF4, 0x04, 0x6C, 0x08, 0x6D, +0x40, 0xEA, 0x01, 0x6D, 0x21, 0xF0, 0x04, 0x6C, +0xAB, 0xED, 0x80, 0x18, 0x6E, 0x3C, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF5, 0xA4, 0x9B, 0x06, 0xD2, +0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, 0x04, 0x6C, +0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF4, 0x10, 0x4B, 0xE0, 0x9B, 0x23, 0xF4, +0x44, 0x99, 0x0C, 0x94, 0x00, 0x6D, 0xC5, 0x67, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x23, 0xF4, +0x48, 0x99, 0x0C, 0x94, 0x01, 0x6D, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, 0x10, 0x4A, +0xE0, 0x9A, 0x00, 0x6E, 0x80, 0x18, 0xE1, 0x4E, +0xC0, 0xF3, 0x44, 0x98, 0x06, 0x96, 0x01, 0x6D, +0xAB, 0xED, 0x21, 0xF0, 0x04, 0x6C, 0x40, 0xEA, +0x0C, 0x94, 0x80, 0x18, 0x46, 0x4F, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0x6D, 0xC5, 0x67, 0x03, 0xF0, +0x0C, 0x6C, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0x6D, 0x08, 0xF1, 0x0C, 0x6C, 0xC5, 0x67, +0x40, 0xEA, 0x0C, 0x94, 0x80, 0x18, 0x04, 0x4F, +0x01, 0x6A, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x66, 0xF6, +0x18, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x80, 0xA4, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x01, 0x6B, +0x8C, 0xEB, 0xC3, 0xF3, 0xAE, 0xA2, 0x64, 0x34, +0x03, 0x6B, 0x6B, 0xEB, 0xAC, 0xEB, 0x8D, 0xEB, +0xC3, 0xF3, 0x6E, 0xC2, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0xA4, 0x67, 0x30, 0xF0, +0x20, 0x6C, 0xA6, 0xF6, 0x10, 0x4C, 0x07, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0xE0, 0xF0, 0x80, 0xA2, 0x01, 0x6B, +0x8C, 0xEB, 0x0C, 0x23, 0xE0, 0xF0, 0x62, 0xA2, +0xFF, 0x73, 0x08, 0x60, 0xE0, 0xF0, 0x81, 0xA2, +0xE3, 0xF3, 0x6A, 0xA2, 0x6D, 0xE4, 0x03, 0x4B, +0xE3, 0xF3, 0x60, 0xCA, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x10, 0x4B, 0xA0, 0xA4, 0x60, 0xF1, +0xFA, 0xA3, 0x02, 0x6A, 0x01, 0x6E, 0x4B, 0xEA, +0xCC, 0xED, 0xEC, 0xEA, 0xAD, 0xEA, 0x60, 0xF1, +0x5A, 0xC3, 0xA1, 0xA4, 0xCC, 0xEA, 0x60, 0xF1, +0xBB, 0xC3, 0xFF, 0x6D, 0x0D, 0x22, 0x61, 0xA4, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, 0x40, 0x9A, +0x74, 0x33, 0x40, 0x6C, 0x4D, 0xE3, 0x40, 0xA3, +0xAC, 0xEA, 0x8D, 0xEA, 0xAC, 0xEA, 0x0A, 0x10, +0x61, 0xA4, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, +0x40, 0x9A, 0x74, 0x33, 0x4D, 0xE3, 0x80, 0xA3, +0xBF, 0x6A, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, 0x44, 0x9A, +0x60, 0xA2, 0x03, 0x6A, 0x6C, 0xEA, 0x10, 0x6B, +0x64, 0xEA, 0xFF, 0x6A, 0x4C, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF7, 0x44, 0x9A, 0x04, 0xD3, +0x40, 0x9A, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x40, 0x9A, 0x00, 0x9A, 0x05, 0x92, +0x0A, 0xEA, 0xC0, 0xF0, 0x07, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xA0, 0xF0, +0x64, 0x9A, 0x02, 0x6C, 0x8D, 0xEB, 0xA0, 0xF0, +0x64, 0xDA, 0x30, 0xF0, 0x20, 0x69, 0xC6, 0xF5, +0x10, 0x49, 0x42, 0xF6, 0x46, 0xA9, 0x00, 0xF7, +0x00, 0x72, 0x07, 0x60, 0x42, 0xF6, 0x66, 0xA1, +0x42, 0xF6, 0x87, 0xA1, 0xAF, 0x43, 0x8E, 0xED, +0x13, 0x2D, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, +0x7C, 0x9A, 0xFF, 0x6C, 0x01, 0x4C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xA3, 0xF3, 0x7C, 0x9A, +0x8D, 0xEB, 0xA3, 0xF3, 0x7C, 0xDA, 0x9A, 0x10, +0x30, 0xF0, 0x20, 0x6D, 0x83, 0xF1, 0xA8, 0x9D, +0x7F, 0x6E, 0xB5, 0xE0, 0xE0, 0xA5, 0xCC, 0xEF, +0x47, 0x2F, 0x00, 0xF4, 0x00, 0x72, 0x80, 0xF0, +0x0D, 0x60, 0xAC, 0x43, 0x8E, 0xED, 0x80, 0xF0, +0x09, 0x25, 0x00, 0xF5, 0x01, 0x72, 0x80, 0xF0, +0x05, 0x60, 0x00, 0xF6, 0x02, 0x72, 0x80, 0xF0, +0x01, 0x60, 0x00, 0xF7, 0x03, 0x72, 0x7E, 0x60, +0x00, 0xF5, 0x00, 0x72, 0x7B, 0x60, 0xFD, 0x4B, +0x6E, 0xEC, 0x78, 0x24, 0x30, 0xF0, 0x20, 0x69, +0xC6, 0xF5, 0x10, 0x49, 0x42, 0xF6, 0x46, 0xA9, +0x00, 0xF6, 0x01, 0x72, 0x6F, 0x60, 0x00, 0xF7, +0x02, 0x72, 0x6C, 0x60, 0x00, 0xF6, 0x00, 0x72, +0x69, 0x60, 0x42, 0xF6, 0x66, 0xA1, 0x42, 0xF6, +0x87, 0xA1, 0xFE, 0x4B, 0x8E, 0xEB, 0x62, 0x23, +0x00, 0xF7, 0x01, 0x72, 0x5F, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF3, 0x4C, 0x9A, 0x7F, 0x4C, +0x30, 0xF0, 0x20, 0x6D, 0x2B, 0x4C, 0x83, 0xF1, +0xA8, 0x9D, 0x49, 0xE0, 0x94, 0x34, 0x60, 0xAA, +0x91, 0xE1, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0x06, 0x4C, 0xB5, 0xE0, 0x13, 0x10, +0x40, 0xA5, 0x4C, 0xEE, 0x01, 0x76, 0x1F, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, 0x4C, 0x9A, +0x7F, 0x4C, 0x2B, 0x4C, 0x49, 0xE0, 0x60, 0xAA, +0x30, 0xF0, 0x20, 0x6A, 0x94, 0x34, 0x80, 0xF2, +0x4C, 0x9A, 0x91, 0xE1, 0x06, 0x4C, 0xFF, 0x6E, +0x6C, 0xEE, 0x40, 0xEA, 0x42, 0xF6, 0x47, 0xA1, +0x08, 0x6B, 0x01, 0x4A, 0x42, 0xF6, 0x47, 0xC1, +0x42, 0xF6, 0x47, 0xA1, 0x6E, 0xEA, 0x13, 0x2A, +0x42, 0xF6, 0x47, 0xC1, 0x10, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x9C, 0x9A, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF3, 0x64, 0x9B, 0x40, 0x9C, +0x6D, 0xEA, 0x40, 0xDC, 0xA3, 0xF3, 0x5C, 0x99, +0x6D, 0xEA, 0xA3, 0xF3, 0x5C, 0xD9, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF7, 0x48, 0x9A, 0x04, 0x93, +0x40, 0x9A, 0x0E, 0xEA, 0x61, 0xE0, 0x05, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF1, 0x5C, 0x9A, +0x00, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, +0x40, 0x9A, 0x00, 0xDA, 0x05, 0x92, 0x4A, 0xE8, +0x5F, 0xF7, 0x03, 0x61, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFE, 0x63, 0x03, 0xD1, 0x02, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xA3, 0xF3, +0x7C, 0x9A, 0x02, 0x6D, 0xAC, 0xEB, 0x40, 0xF1, +0x1A, 0x2B, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, +0x64, 0x9B, 0x80, 0xA3, 0x0F, 0x6B, 0x8C, 0xEB, +0x05, 0x23, 0xA0, 0xF0, 0x84, 0x9A, 0xAD, 0xEC, +0xA0, 0xF0, 0x84, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0x86, 0xF7, 0x4C, 0xA2, 0xFF, 0x4A, 0x00, 0xD2, +0x44, 0x11, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0xA0, 0xF1, 0x9C, 0xAA, 0x00, 0xF7, +0x00, 0x74, 0x05, 0x60, 0xA0, 0xF1, 0x1D, 0xA2, +0x00, 0x94, 0x8A, 0xE8, 0x13, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x7C, 0x9A, 0xFF, 0x6C, +0x01, 0x4C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xA3, 0xF3, 0x7C, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x7C, 0xDA, 0x25, 0x11, 0x30, 0xF0, 0x20, 0x6C, +0x26, 0xF4, 0xCE, 0xA4, 0xE3, 0x67, 0xFF, 0x6D, +0xE7, 0xEE, 0xC7, 0x67, 0x01, 0x6F, 0xEC, 0xEE, +0xA0, 0xF0, 0x0A, 0x26, 0x0C, 0x35, 0xB5, 0xE2, +0x80, 0xF1, 0x00, 0x4D, 0x00, 0x6A, 0x30, 0xF0, +0x20, 0x6E, 0x26, 0xF4, 0xEE, 0xA6, 0xFF, 0x6C, +0x1F, 0xF7, 0x00, 0x69, 0x8C, 0xEF, 0x74, 0x4F, +0xE8, 0x37, 0xFD, 0xE2, 0x2C, 0xEF, 0x02, 0xF0, +0x00, 0x77, 0x08, 0x60, 0x26, 0xF4, 0xEE, 0xA6, +0x8C, 0xEF, 0x74, 0x4F, 0xE8, 0x37, 0xFD, 0xE2, +0x2C, 0xEF, 0x0F, 0x2F, 0x30, 0xF0, 0x20, 0x6C, +0x26, 0xF4, 0x2E, 0xA4, 0xFF, 0x6C, 0x30, 0xF0, +0x20, 0x6E, 0x8C, 0xE9, 0x74, 0x49, 0x28, 0x31, +0xE2, 0x67, 0x25, 0xE2, 0xA3, 0xF0, 0xD8, 0x9E, +0x0B, 0x10, 0x26, 0xF4, 0x2E, 0xA6, 0x30, 0xF0, +0x20, 0x6E, 0xA3, 0xF0, 0xDC, 0x9E, 0x8C, 0xE9, +0x74, 0x49, 0x28, 0x31, 0xE2, 0x67, 0x25, 0xE2, +0xD9, 0xE1, 0xC0, 0xA6, 0x0C, 0x31, 0xCC, 0xEC, +0x30, 0xF0, 0x20, 0x6E, 0xC6, 0xF5, 0x10, 0x4E, +0xD9, 0xE1, 0xFD, 0xE6, 0x60, 0xF1, 0x9C, 0xC7, +0x30, 0xF0, 0x20, 0x6E, 0x26, 0xF4, 0xEE, 0xA6, +0xFF, 0x6C, 0x1F, 0xF7, 0x00, 0x69, 0x8C, 0xEF, +0x7C, 0x4F, 0xE8, 0x37, 0xFD, 0xE2, 0x2C, 0xEF, +0x02, 0xF0, 0x00, 0x77, 0x08, 0x60, 0x26, 0xF4, +0xEE, 0xA6, 0x8C, 0xEF, 0x7C, 0x4F, 0xE8, 0x37, +0xFD, 0xE2, 0x2C, 0xEF, 0x0E, 0x2F, 0x30, 0xF0, +0x20, 0x6C, 0x26, 0xF4, 0xCE, 0xA4, 0xFF, 0x6C, +0x30, 0xF0, 0x20, 0x6F, 0x8C, 0xEE, 0x7C, 0x4E, +0xC8, 0x36, 0xD9, 0xE2, 0xA3, 0xF0, 0xF8, 0x9F, +0x0A, 0x10, 0x26, 0xF4, 0xCE, 0xA6, 0x30, 0xF0, +0x20, 0x6F, 0xA3, 0xF0, 0xFC, 0x9F, 0x8C, 0xEE, +0x7C, 0x4E, 0xC8, 0x36, 0xD9, 0xE2, 0xF9, 0xE6, +0xC0, 0xA6, 0x01, 0x4A, 0x04, 0x72, 0xCC, 0xEC, +0x80, 0xC5, 0x01, 0x4D, 0x8C, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x26, 0xF4, 0xAE, 0xA2, 0x01, 0x6C, +0xC4, 0x67, 0xC4, 0xED, 0xCF, 0xED, 0x26, 0xF4, +0xCE, 0xA2, 0xAC, 0xEB, 0xFF, 0x6D, 0x84, 0xEE, +0x30, 0xF0, 0x20, 0x6E, 0xC3, 0xF1, 0xC4, 0x9E, +0xAC, 0xEC, 0x08, 0x6F, 0x80, 0xC6, 0x26, 0xF4, +0x8E, 0xA2, 0xAC, 0xEC, 0x01, 0x4C, 0xAC, 0xEC, +0x26, 0xF4, 0x8E, 0xC2, 0x26, 0xF4, 0xAE, 0xA2, +0x03, 0x6C, 0xAC, 0xEC, 0x26, 0xF4, 0x8E, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xA0, 0xF1, 0x9D, 0xA2, 0x01, 0x4C, 0xA0, 0xF1, +0x9D, 0xC2, 0xA0, 0xF1, 0x9D, 0xA2, 0xEE, 0xEC, +0x70, 0x2C, 0xA0, 0xF1, 0x9D, 0xC2, 0x6D, 0x10, +0x30, 0xF0, 0x20, 0x6E, 0x83, 0xF1, 0x1C, 0x9E, +0x02, 0x6F, 0xC0, 0x98, 0xED, 0xEE, 0xC0, 0xD8, +0xA3, 0xF3, 0xDC, 0x9A, 0xC3, 0xF3, 0x68, 0xC2, +0x26, 0xF4, 0x6E, 0xA4, 0xED, 0xEE, 0xA3, 0xF3, +0xDC, 0xDA, 0xC3, 0xF3, 0x69, 0xC2, 0x26, 0xF4, +0x4E, 0xA4, 0x1F, 0xF7, 0x00, 0x6B, 0xAC, 0xEA, +0x74, 0x4A, 0x48, 0x32, 0x6C, 0xEA, 0x02, 0xF0, +0x00, 0x72, 0x07, 0x60, 0x26, 0xF4, 0x4E, 0xA4, +0xAC, 0xEA, 0x74, 0x4A, 0x48, 0x32, 0x6C, 0xEA, +0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0x26, 0xF4, +0x6E, 0xA2, 0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF7, +0x8C, 0x9C, 0xFF, 0x6A, 0x4C, 0xEB, 0x8D, 0xE3, +0x68, 0x33, 0xA0, 0xA3, 0x0A, 0x10, 0x26, 0xF4, +0x4E, 0xA4, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF7, +0x70, 0x9B, 0xAC, 0xEA, 0x69, 0xE2, 0x48, 0x32, +0x40, 0xA2, 0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x8A, 0xF1, 0xBA, 0xC2, +0x26, 0xF4, 0x4E, 0xA3, 0x26, 0xF4, 0x8E, 0xA3, +0xFF, 0x6A, 0x1F, 0xF7, 0x00, 0x6D, 0x4C, 0xEC, +0x88, 0x34, 0xC0, 0xF1, 0x11, 0x4C, 0xAC, 0xEC, +0x0B, 0x2C, 0x26, 0xF4, 0x6E, 0xA3, 0xFF, 0x6A, +0x30, 0xF0, 0x20, 0x6C, 0x4C, 0xEB, 0x74, 0x4B, +0x68, 0x33, 0x03, 0xF7, 0x94, 0x9C, 0x09, 0x10, +0x26, 0xF4, 0x6E, 0xA3, 0x30, 0xF0, 0x20, 0x6C, +0x03, 0xF7, 0x98, 0x9C, 0x4C, 0xEB, 0x74, 0x4B, +0x68, 0x33, 0x8D, 0xE3, 0x60, 0xA3, 0x6C, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x8A, 0xF1, 0x5B, 0xC3, +0x02, 0x10, 0xBF, 0xF6, 0x1A, 0x2B, 0x03, 0x91, +0x02, 0x90, 0x02, 0x63, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF0, 0x40, 0x9A, +0xFF, 0x68, 0x60, 0xA2, 0x6C, 0xE8, 0x2B, 0x20, +0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, 0x80, 0x69, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, +0x5C, 0x9A, 0x20, 0x6B, 0x0E, 0xE9, 0x60, 0xC2, +0x0B, 0x29, 0x00, 0x18, 0x8F, 0xC8, 0x80, 0x6C, +0x00, 0x6D, 0x80, 0x18, 0x4E, 0x16, 0x30, 0xF0, +0x20, 0x6A, 0x29, 0xF4, 0x22, 0xC2, 0x0F, 0x10, +0x20, 0x70, 0x0D, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6C, +0xA0, 0xF0, 0x64, 0x9A, 0xE3, 0xF3, 0x90, 0x9C, +0x8D, 0xEB, 0xA0, 0xF0, 0x64, 0xDA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF0, 0x78, 0x9B, +0x10, 0xF0, 0x31, 0x6A, 0xFB, 0xF4, 0x01, 0x4A, +0x40, 0xDB, 0x00, 0x1C, 0xAC, 0x39, 0x80, 0x18, +0x48, 0x58, 0x05, 0x6C, 0x01, 0x6D, 0x80, 0x18, +0x4E, 0x16, 0x20, 0xBA, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, +0x00, 0x65, 0x00, 0x65, 0xFF, 0x17, 0x00, 0x65, +0xDE, 0x63, 0x43, 0x62, 0x42, 0xD1, 0x41, 0xD0, +0x01, 0x6A, 0x7D, 0x67, 0x4B, 0xEA, 0x58, 0xC3, +0x01, 0x6A, 0x5A, 0xC3, 0x08, 0x6A, 0x5B, 0xC3, +0x60, 0xA4, 0x7F, 0x6A, 0x6C, 0xEA, 0x01, 0x72, +0x7E, 0x30, 0x00, 0xF1, 0x10, 0x61, 0x48, 0xA4, +0xBD, 0x67, 0x5C, 0xC5, 0x41, 0xA4, 0x5D, 0xC5, +0x42, 0xA4, 0x5E, 0xC5, 0x46, 0xA4, 0x20, 0xF0, +0x40, 0xC5, 0x43, 0xA4, 0x5F, 0xC5, 0x47, 0xA4, +0x20, 0xF0, 0x41, 0xC5, 0x5C, 0xA5, 0xE0, 0xF0, +0x18, 0x2A, 0x7D, 0x67, 0x5F, 0xA3, 0x7E, 0xA3, +0x40, 0x32, 0x6D, 0xEA, 0x03, 0x72, 0x0A, 0x60, +0x04, 0x52, 0x03, 0x60, 0x02, 0x72, 0x52, 0x60, +0xEC, 0x10, 0x08, 0x72, 0x21, 0x60, 0xB7, 0x72, +0x37, 0x60, 0xE7, 0x10, 0x06, 0x20, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, 0x06, 0x04, +0x40, 0xEA, 0x9D, 0x67, 0x20, 0xF0, 0xE1, 0xA4, +0x20, 0xF0, 0x40, 0xA4, 0xFF, 0xF7, 0x1F, 0x6B, +0xE0, 0x37, 0x5D, 0xE7, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xF4, 0x50, 0x9A, 0x30, 0xF0, 0x20, 0x6D, +0x05, 0x6C, 0x29, 0xF4, 0x08, 0x4D, 0x00, 0xF2, +0x00, 0x6E, 0x6C, 0xEF, 0x40, 0xEA, 0xE4, 0x10, +0xBD, 0x67, 0x30, 0xF0, 0x20, 0x6B, 0x10, 0x6A, +0x5B, 0xC5, 0x30, 0xF0, 0x20, 0x69, 0x80, 0xF2, +0x4C, 0x9B, 0x2E, 0xF5, 0x0C, 0x49, 0x09, 0x04, +0xB1, 0x67, 0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6C, 0x80, 0xF2, 0x4C, 0x9C, 0xA4, 0x41, +0x0A, 0x04, 0x04, 0x6E, 0x40, 0xEA, 0xB1, 0x10, +0x08, 0x20, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, +0x40, 0x9A, 0x06, 0x04, 0x40, 0xEA, 0x00, 0x18, +0x3D, 0xD4, 0xBD, 0x67, 0x20, 0xF0, 0x81, 0xA5, +0x20, 0xF0, 0x40, 0xA5, 0x80, 0x34, 0x51, 0xE4, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEC, 0x80, 0x18, +0x86, 0x16, 0xB6, 0x10, 0x06, 0x20, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, 0x06, 0x04, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, +0x10, 0x48, 0x67, 0xF7, 0x58, 0xA0, 0x01, 0x6B, +0xFF, 0x69, 0x6C, 0xEA, 0x4C, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF4, 0x50, 0x9A, 0x40, 0xEA, +0xE0, 0xF0, 0xC7, 0xA0, 0x0C, 0x6A, 0x43, 0xF4, +0x48, 0xC0, 0x0C, 0x6C, 0x00, 0x6D, 0x00, 0x18, +0x70, 0xCC, 0xC3, 0xF3, 0x4C, 0xA0, 0x21, 0x6B, +0xC3, 0xF3, 0x8E, 0xA0, 0x6B, 0xEB, 0x4C, 0xEB, +0x04, 0x6A, 0x8C, 0xEA, 0x2C, 0xEA, 0xC3, 0xF3, +0x6C, 0xC0, 0x04, 0x2A, 0xFE, 0x4A, 0x6C, 0xEA, +0xC3, 0xF3, 0x4C, 0xC0, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x67, 0xF7, 0x84, 0xA2, +0x04, 0x6B, 0x8C, 0xEB, 0x21, 0x23, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF7, 0x60, 0x9B, 0x67, 0xF7, +0xD0, 0x9A, 0xE0, 0xF3, 0x08, 0x6A, 0x60, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF7, 0x64, 0x9B, +0x10, 0xF0, 0x31, 0x6C, 0xA9, 0xF7, 0x11, 0x4C, +0x60, 0x9B, 0x00, 0x6D, 0x01, 0x6F, 0x7B, 0xE6, +0x5B, 0xEE, 0x01, 0x2A, 0xE5, 0xE8, 0x00, 0x6A, +0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, +0x4C, 0x9A, 0x12, 0xEE, 0x40, 0xEA, 0x5C, 0x10, +0x80, 0x18, 0xEC, 0x53, 0x59, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF4, 0x54, 0x9A, 0x40, 0xEA, +0x67, 0xF7, 0xB6, 0xA8, 0x00, 0x6C, 0x80, 0x18, +0x9B, 0x53, 0xE0, 0xF0, 0x87, 0xA0, 0x00, 0x18, +0x12, 0xDC, 0xE0, 0xF0, 0x87, 0xA0, 0x00, 0x18, +0x01, 0xDC, 0xE0, 0xF0, 0x87, 0xA0, 0x00, 0x18, +0x19, 0xDC, 0xC3, 0xF3, 0x6C, 0xA0, 0x20, 0x6A, +0xE0, 0xF0, 0xC7, 0xA0, 0x6D, 0xEA, 0xC3, 0xF3, +0x4C, 0xC0, 0x08, 0x6A, 0x43, 0xF4, 0x48, 0xC0, +0x08, 0x6C, 0x00, 0x6D, 0x00, 0x18, 0x70, 0xCC, +0xC3, 0xF3, 0x6E, 0xA0, 0x04, 0x6A, 0x6C, 0xEA, +0x2C, 0xEA, 0x2E, 0x2A, 0x00, 0xF1, 0x78, 0xA0, +0x02, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x05, 0x22, +0xC3, 0xF3, 0x4C, 0xA0, 0x01, 0x6B, 0x6D, 0xEA, +0x05, 0x10, 0xC3, 0xF3, 0x6C, 0xA0, 0x02, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xC3, 0xF3, 0x4C, 0xC0, +0x1B, 0x10, 0x1A, 0x20, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF4, 0x40, 0x9A, 0x13, 0x10, 0x14, 0x2A, +0x69, 0xA4, 0xBD, 0x67, 0x7C, 0xC5, 0x68, 0xA4, +0x5E, 0xC5, 0x5F, 0xC5, 0x7D, 0xC5, 0x46, 0xA4, +0x20, 0xF0, 0x40, 0xC5, 0x67, 0xA4, 0x08, 0x20, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x40, 0x9A, +0x20, 0xF0, 0x61, 0xC5, 0x06, 0x04, 0x40, 0xEA, +0x43, 0x97, 0x42, 0x91, 0x41, 0x90, 0x22, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0x68, 0x44, 0xFA, 0x4B, +0x4C, 0xEB, 0x04, 0x5B, 0x03, 0x60, 0x80, 0x18, +0x25, 0x4A, 0x1D, 0x10, 0x09, 0x74, 0x31, 0x60, +0x0A, 0x5C, 0x07, 0x60, 0x03, 0x74, 0x22, 0x60, +0x08, 0x74, 0x26, 0x60, 0x02, 0x74, 0x15, 0x60, +0x38, 0x10, 0x0C, 0x74, 0x16, 0x60, 0x0D, 0x5C, +0x03, 0x60, 0x0A, 0x74, 0x27, 0x60, 0x31, 0x10, +0x0D, 0x74, 0x03, 0x60, 0xB7, 0x74, 0x27, 0x60, +0x2C, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, +0x48, 0x9A, 0x85, 0x67, 0x40, 0xEA, 0x62, 0x67, +0x39, 0x10, 0x85, 0x67, 0x80, 0x18, 0xB1, 0x53, +0xFA, 0x17, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF4, +0x44, 0x9A, 0xF3, 0x17, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xF4, 0x54, 0x9A, 0x40, 0xEA, 0xEF, 0x17, +0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, 0x58, 0x9A, +0xE8, 0x17, 0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, +0x5C, 0x9A, 0xE3, 0x17, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF4, 0x40, 0x9A, 0xDE, 0x17, 0x80, 0x18, +0xE8, 0x1C, 0x00, 0x6B, 0x17, 0x2A, 0x13, 0x6B, +0x15, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, +0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF1, +0x80, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xA3, 0xF3, 0x7C, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x7C, 0xDA, 0xFF, 0x6B, 0x05, 0x97, 0x43, 0x67, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x10, 0x4B, 0x40, 0xA4, 0xA0, 0xF0, +0xDD, 0xA3, 0x7F, 0x68, 0x5E, 0x32, 0x5C, 0x32, +0x0C, 0xEE, 0x4D, 0xEE, 0xA0, 0xF0, 0xDD, 0xC3, +0xA0, 0xA4, 0x01, 0x6A, 0x41, 0x6F, 0xBA, 0x35, +0x4C, 0xED, 0xEB, 0xEF, 0xB8, 0x35, 0xCC, 0xEF, +0xAD, 0xEF, 0xA0, 0xF0, 0xFD, 0xC3, 0xA0, 0xA4, +0x21, 0x6E, 0xCB, 0xEE, 0xB6, 0x35, 0x4C, 0xED, +0xB4, 0x35, 0xEC, 0xEE, 0xAD, 0xEE, 0xA0, 0xF0, +0xDD, 0xC3, 0xA0, 0xA4, 0x11, 0x6F, 0xEB, 0xEF, +0xB2, 0x35, 0x4C, 0xED, 0xB0, 0x35, 0xCC, 0xEF, +0xAD, 0xEF, 0xA0, 0xF0, 0xFD, 0xC3, 0xA0, 0xA4, +0x10, 0x6E, 0x0F, 0x69, 0xCB, 0xEE, 0x2C, 0xED, +0xEC, 0xEE, 0xAD, 0xEE, 0xA0, 0xF0, 0xDD, 0xC3, +0xE1, 0xA4, 0xA7, 0x67, 0xA0, 0xF0, 0xFE, 0xA3, +0x0C, 0xED, 0xFD, 0x65, 0x1F, 0x65, 0x80, 0x6D, +0xF8, 0x67, 0xAB, 0xED, 0xEC, 0xED, 0xFF, 0x67, +0xED, 0xED, 0xA0, 0xF0, 0xBE, 0xC3, 0xE2, 0xA4, +0x0C, 0xED, 0xA0, 0xF0, 0xFF, 0xC3, 0xE1, 0xA4, +0xFE, 0x37, 0xFC, 0x37, 0xED, 0xED, 0xA0, 0xF0, +0xBE, 0xC3, 0xC0, 0xF0, 0xE0, 0xA3, 0x83, 0xA4, +0x02, 0x6D, 0xAB, 0xED, 0x4C, 0xEC, 0xEC, 0xED, +0x8D, 0xED, 0xC0, 0xF0, 0xA0, 0xC3, 0xA0, 0xF0, +0xBD, 0xA3, 0x86, 0x67, 0x2C, 0xEC, 0xBA, 0x35, +0x4E, 0xED, 0x4C, 0xED, 0x80, 0x18, 0x05, 0x3B, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xC6, 0xF5, 0x10, 0x48, 0x44, 0xF3, 0x46, 0xA8, +0x01, 0x69, 0xA4, 0x67, 0x2D, 0xEA, 0x44, 0xF3, +0x46, 0xC8, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0x86, 0xF6, +0x14, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0xC0, 0xF0, +0x48, 0xA0, 0xC0, 0xF0, 0x84, 0xA0, 0x00, 0x6B, +0x43, 0xF4, 0x48, 0xC0, 0x7F, 0x6A, 0x8C, 0xEA, +0x43, 0xF4, 0x6A, 0xC0, 0x03, 0x2A, 0x43, 0xF4, +0x2B, 0xC0, 0x02, 0x10, 0x43, 0xF4, 0x6B, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xC0, 0xF0, 0xC4, 0xA2, 0x43, 0xF4, 0x89, 0xA2, +0x7F, 0x6B, 0xCC, 0xEB, 0x6E, 0xEC, 0xFF, 0x6D, +0x07, 0x24, 0xC0, 0xF0, 0x87, 0xA2, 0x96, 0x34, +0xAC, 0xEC, 0x00, 0x18, 0x0B, 0xD0, 0x07, 0x10, +0x06, 0x23, 0xC0, 0xF0, 0x87, 0xA2, 0x96, 0x34, +0xAC, 0xEC, 0x00, 0x18, 0x9E, 0xCF, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF1, 0x74, 0x9B, 0x43, 0xF4, +0x88, 0x9A, 0x8C, 0xEB, 0x04, 0x73, 0x0C, 0x61, +0xC3, 0xF3, 0x6F, 0xA2, 0x04, 0x6C, 0x8C, 0xEB, +0x07, 0x23, 0x01, 0x6B, 0x43, 0xF4, 0x6A, 0xC2, +0x01, 0x6C, 0x00, 0x6D, 0x00, 0x18, 0x04, 0xC8, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xC0, 0xF0, 0x84, 0xA2, 0x7F, 0x6B, 0x8C, 0xEB, +0x43, 0xF4, 0x69, 0xC2, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x08, 0xD4, 0x41, 0xA4, 0x24, 0x67, 0x06, 0xD2, +0x60, 0xA4, 0x02, 0x6A, 0x6C, 0xEA, 0x06, 0x93, +0x07, 0xD3, 0x02, 0x22, 0x82, 0xA4, 0x07, 0xD4, +0x06, 0x90, 0x34, 0x10, 0x08, 0x93, 0x01, 0x6D, +0x90, 0x67, 0x40, 0xA3, 0x4C, 0xED, 0x00, 0x18, +0xE5, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x5C, 0x9A, 0x90, 0x67, 0x40, 0xEA, 0x0F, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x58, 0x9A, +0x90, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF7, 0x40, 0x9A, 0x14, 0x33, 0x4D, 0xE3, +0x80, 0xA3, 0xBF, 0x6A, 0x12, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x54, 0x9A, 0x90, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, +0x40, 0x9A, 0x14, 0x33, 0xFF, 0x6C, 0x4D, 0xE3, +0x40, 0xA3, 0x8C, 0xEA, 0x40, 0x6C, 0x8D, 0xEA, +0xFF, 0x6C, 0x8C, 0xEA, 0x40, 0xC3, 0x01, 0x48, +0xFF, 0x6A, 0x4C, 0xE8, 0x07, 0x92, 0x03, 0xEA, +0xC9, 0x60, 0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, +0x10, 0x48, 0xE0, 0xF0, 0x88, 0xA0, 0x06, 0x92, +0x8E, 0xEA, 0x1E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x5C, 0x9A, 0x40, 0xEA, 0x18, 0x2A, +0x00, 0x18, 0x7A, 0xE1, 0xC0, 0xF0, 0x87, 0xA0, +0x96, 0x34, 0x00, 0x18, 0x4E, 0xC5, 0xC3, 0xF3, +0x6C, 0xA0, 0x05, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xC3, 0xF3, 0x6D, 0xA0, 0xC3, 0xF3, 0x4C, 0xC0, +0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x03, 0x6B, +0x6B, 0xEB, 0x6C, 0xEA, 0xC3, 0xF3, 0x4D, 0xC0, +0x43, 0xA1, 0x07, 0x6B, 0x01, 0x6C, 0x4C, 0xEB, +0x40, 0xA1, 0x8C, 0xEA, 0x1C, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x05, 0xF3, +0xDC, 0xA2, 0x84, 0xEB, 0x1F, 0x6F, 0xCA, 0x35, +0x8F, 0xEC, 0xEC, 0xED, 0x8C, 0xED, 0x7D, 0x6C, +0x8B, 0xEC, 0xA8, 0x35, 0xCC, 0xEC, 0xAD, 0xEC, +0x05, 0xF3, 0x9C, 0xC2, 0xE0, 0xF0, 0x87, 0xA2, +0x8E, 0xEB, 0x1E, 0x2B, 0x01, 0x6B, 0x6B, 0xEB, +0x05, 0xF3, 0x7D, 0xC2, 0x19, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x05, 0xF3, +0xDC, 0xA2, 0x1F, 0x6F, 0x84, 0xEB, 0xCA, 0x35, +0xEC, 0xED, 0xAD, 0xEC, 0xEC, 0xEC, 0x88, 0x35, +0x7D, 0x6C, 0x8B, 0xEC, 0xCC, 0xEC, 0xAD, 0xEC, +0x05, 0xF3, 0x9C, 0xC2, 0xE0, 0xF0, 0x87, 0xA2, +0x8E, 0xEB, 0x02, 0x2B, 0x05, 0xF3, 0x9D, 0xC2, +0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, +0x05, 0xF3, 0x7C, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, +0x1A, 0x22, 0x03, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0x05, 0xF3, 0x5C, 0xC0, 0x00, 0x18, 0xC7, 0xD9, +0x04, 0xD2, 0x04, 0x93, 0x25, 0xF3, 0x40, 0x98, +0x6E, 0xEA, 0x03, 0x22, 0x04, 0x94, 0x00, 0x18, +0xE8, 0xD9, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x05, 0xF3, 0x9C, 0xA2, 0x02, 0x6B, +0x8D, 0xEB, 0x05, 0xF3, 0x7C, 0xC2, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, +0x4C, 0xEC, 0x68, 0x44, 0xC8, 0x4B, 0x4C, 0xEB, +0x20, 0x5B, 0x05, 0x67, 0x03, 0x60, 0x80, 0x18, +0x1F, 0x4A, 0xE1, 0x10, 0x2D, 0x74, 0x80, 0xF0, +0x0F, 0x60, 0x2E, 0x5C, 0x2B, 0x60, 0x1F, 0x74, +0x6F, 0x60, 0x20, 0x5C, 0x12, 0x60, 0x04, 0x74, +0x63, 0x60, 0x05, 0x5C, 0x06, 0x60, 0x01, 0x74, +0x53, 0x60, 0x4E, 0x24, 0x03, 0x74, 0x58, 0x60, +0xBB, 0x10, 0x14, 0x74, 0xC0, 0xF0, 0x0B, 0x60, +0x1E, 0x74, 0x62, 0x60, 0x13, 0x74, 0x58, 0x60, +0xB3, 0x10, 0x25, 0x74, 0xC0, 0xF0, 0x03, 0x60, +0x26, 0x5C, 0x09, 0x60, 0x21, 0x74, 0xA0, 0xF0, +0x1E, 0x60, 0x21, 0x5C, 0x59, 0x61, 0x23, 0x74, +0xA0, 0xF0, 0x19, 0x60, 0xA5, 0x10, 0x2B, 0x74, +0x5F, 0x60, 0x2C, 0x5C, 0x61, 0x60, 0x27, 0x74, +0x57, 0x60, 0x9E, 0x10, 0x89, 0x74, 0x80, 0xF0, +0x03, 0x60, 0x8A, 0x5C, 0x12, 0x60, 0x82, 0x74, +0x67, 0x60, 0x83, 0x5C, 0x07, 0x60, 0x80, 0x74, +0x5B, 0x60, 0x81, 0x5C, 0x5D, 0x60, 0x31, 0x74, +0x43, 0x60, 0x8E, 0x10, 0x84, 0x74, 0x64, 0x60, +0x84, 0x5C, 0x5E, 0x61, 0x88, 0x74, 0x64, 0x60, +0x87, 0x10, 0x8F, 0x74, 0x79, 0x60, 0x90, 0x5C, +0x07, 0x60, 0x8D, 0x74, 0x6D, 0x60, 0x8E, 0x5C, +0x6F, 0x60, 0x8C, 0x74, 0x61, 0x60, 0x7C, 0x10, +0xBB, 0x74, 0x12, 0x60, 0xBC, 0x5C, 0x03, 0x60, +0x91, 0x74, 0x56, 0x60, 0x75, 0x10, 0xC3, 0x74, +0x6F, 0x60, 0xCD, 0x74, 0x69, 0x60, 0x70, 0x10, +0x85, 0x67, 0x80, 0x18, 0xB3, 0x35, 0x7F, 0x10, +0x85, 0x67, 0x80, 0x18, 0x98, 0x38, 0x7B, 0x10, +0x85, 0x67, 0x00, 0x18, 0x1D, 0xE4, 0x77, 0x10, +0x85, 0x67, 0x80, 0x18, 0xBE, 0x05, 0x73, 0x10, +0x85, 0x67, 0x80, 0x18, 0xE1, 0x05, 0x6F, 0x10, +0x85, 0x67, 0x80, 0x18, 0x2B, 0x38, 0x6B, 0x10, +0x85, 0x67, 0x00, 0x18, 0x09, 0xD5, 0x67, 0x10, +0x85, 0x67, 0x00, 0x18, 0xEF, 0xD4, 0x63, 0x10, +0x85, 0x67, 0x80, 0x18, 0x61, 0x38, 0x5F, 0x10, +0x85, 0x67, 0x80, 0x18, 0xBB, 0x35, 0x5B, 0x10, +0x85, 0x67, 0x80, 0x18, 0xA3, 0x52, 0x57, 0x10, +0x85, 0x67, 0x00, 0x18, 0x40, 0xD5, 0x53, 0x10, +0x85, 0x67, 0x00, 0x18, 0x99, 0xC1, 0x4F, 0x10, +0x85, 0x67, 0x80, 0x18, 0xC4, 0x35, 0x4B, 0x10, +0x85, 0x67, 0x80, 0x18, 0x2C, 0x0C, 0x47, 0x10, +0x85, 0x67, 0x80, 0x18, 0x5D, 0x0B, 0x43, 0x10, +0x85, 0x67, 0x80, 0x18, 0x8F, 0x07, 0x3F, 0x10, +0x85, 0x67, 0x80, 0x18, 0x95, 0x07, 0x3B, 0x10, +0x85, 0x67, 0x80, 0x18, 0x9D, 0x07, 0x37, 0x10, +0x85, 0x67, 0x80, 0x18, 0xA5, 0x07, 0x33, 0x10, +0x85, 0x67, 0x80, 0x18, 0xAC, 0x07, 0x2F, 0x10, +0x85, 0x67, 0x80, 0x18, 0x0A, 0x13, 0x2B, 0x10, +0x85, 0x67, 0x80, 0x18, 0xA5, 0x3B, 0x27, 0x10, +0x85, 0x67, 0x80, 0x18, 0x01, 0x04, 0x23, 0x10, +0x85, 0x67, 0x80, 0x18, 0x22, 0x04, 0x1F, 0x10, +0x85, 0x67, 0x80, 0x18, 0x33, 0x07, 0x1B, 0x10, +0x85, 0x67, 0x80, 0x18, 0xD7, 0x35, 0x17, 0x10, +0x85, 0x67, 0x80, 0x18, 0xAC, 0x52, 0x13, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x7C, 0x9A, +0x01, 0x6C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xA3, 0xF3, 0x7C, 0x9A, 0x8D, 0xEB, 0xA3, 0xF3, +0x7C, 0xDA, 0x0E, 0x6A, 0x01, 0x10, 0x00, 0x6A, +0x40, 0xC0, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, +0x10, 0x48, 0xA0, 0xF1, 0x5C, 0xA0, 0xA0, 0xF1, +0x7D, 0xA0, 0x4E, 0xEB, 0x29, 0x23, 0x67, 0x42, +0x28, 0x4B, 0x6C, 0x33, 0x0D, 0xE3, 0x4C, 0x32, +0x84, 0xA3, 0x55, 0xE0, 0x60, 0xF1, 0x1D, 0x4D, +0x80, 0x18, 0x02, 0x39, 0xA0, 0xF1, 0x5C, 0xA0, +0x01, 0x4A, 0xA0, 0xF1, 0x5C, 0xC0, 0xA0, 0xF1, +0x7C, 0xA0, 0xA0, 0xF1, 0x5D, 0xA0, 0x6E, 0xEA, +0x06, 0x22, 0xA0, 0xF0, 0x44, 0x98, 0x02, 0x6B, +0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xA0, 0xF1, +0x7C, 0xA2, 0x08, 0x6C, 0x8E, 0xEB, 0x02, 0x2B, +0xA0, 0xF1, 0x7C, 0xC2, 0x80, 0x18, 0x64, 0x36, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, 0x42, 0xF6, +0x46, 0xA0, 0x7F, 0x6C, 0xA0, 0xF0, 0xAA, 0x42, +0xB4, 0x35, 0x15, 0xE5, 0x66, 0xA5, 0x8C, 0xEB, +0x24, 0x2B, 0xA0, 0xF0, 0x65, 0x42, 0x74, 0x33, +0x0D, 0xE3, 0x54, 0x32, 0xA0, 0xF0, 0x8E, 0xA3, +0x55, 0xE0, 0x42, 0xF5, 0x0F, 0x4D, 0x80, 0x18, +0x02, 0x39, 0x42, 0xF6, 0x46, 0xA0, 0x30, 0xF0, +0x20, 0x6C, 0x23, 0xF7, 0x88, 0x9C, 0x54, 0x33, +0x0D, 0xE3, 0x42, 0xF5, 0xAC, 0xA3, 0x7F, 0x4A, +0x2B, 0x4A, 0xA0, 0xC4, 0x42, 0xF5, 0x8D, 0xA3, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF7, 0x6C, 0x9B, +0x54, 0x32, 0x41, 0xE0, 0x80, 0xC3, 0x86, 0x40, +0x37, 0x10, 0x01, 0x73, 0x37, 0x61, 0x54, 0x33, +0x0D, 0xE3, 0x42, 0xF5, 0x87, 0xA3, 0xFF, 0x74, +0x0C, 0x61, 0x42, 0xF5, 0x88, 0xA3, 0x06, 0x4D, +0x80, 0x18, 0xF7, 0x37, 0x42, 0xF6, 0x66, 0xA0, +0x7F, 0x4B, 0x26, 0x4B, 0x74, 0x33, 0x01, 0xE3, +0x06, 0x10, 0x7F, 0x4A, 0x26, 0x4A, 0x54, 0x32, +0x01, 0xE2, 0x01, 0x6A, 0x4B, 0xEA, 0xA0, 0xF0, +0x4E, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x42, 0xF6, 0x66, 0xA2, 0x30, 0xF0, +0x20, 0x6D, 0x23, 0xF7, 0xA8, 0x9D, 0x74, 0x34, +0x51, 0xE4, 0x42, 0xF5, 0xCC, 0xA4, 0x7F, 0x4B, +0x2B, 0x4B, 0xC0, 0xC5, 0x42, 0xF5, 0xAD, 0xA4, +0x30, 0xF0, 0x20, 0x6C, 0x23, 0xF7, 0x8C, 0x9C, +0x74, 0x33, 0x69, 0xE2, 0xA0, 0xC4, 0x86, 0x42, +0x80, 0x18, 0x58, 0x37, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, +0x10, 0x48, 0x42, 0xF6, 0x66, 0xA0, 0x42, 0xF6, +0x47, 0xA0, 0x6E, 0xEA, 0x42, 0x22, 0xA0, 0xF6, +0x5E, 0xA8, 0x09, 0xF6, 0x00, 0x72, 0x10, 0x60, +0xA0, 0xF6, 0x9E, 0xA0, 0xA0, 0xF6, 0x7F, 0xA0, +0xAE, 0x44, 0x6E, 0xED, 0x09, 0x25, 0x09, 0xF7, +0x01, 0x72, 0x06, 0x60, 0x09, 0xF7, 0x00, 0x72, +0x03, 0x60, 0xFF, 0x4C, 0x8E, 0xEB, 0x0D, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, +0xA0, 0xF0, 0x44, 0x9B, 0x04, 0x6C, 0x8D, 0xEA, +0x02, 0x6C, 0x8D, 0xEA, 0xA0, 0xF0, 0x44, 0xDB, +0x20, 0x10, 0x80, 0x18, 0x9A, 0x39, 0x42, 0xF6, +0x46, 0xA0, 0x01, 0x4A, 0x42, 0xF6, 0x46, 0xC0, +0x42, 0xF6, 0x66, 0xA0, 0x42, 0xF6, 0x47, 0xA0, +0x6E, 0xEA, 0x06, 0x22, 0xA0, 0xF0, 0x44, 0x98, +0x02, 0x6B, 0x6D, 0xEA, 0xA0, 0xF0, 0x44, 0xD8, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x42, 0xF6, 0x66, 0xA2, 0x08, 0x6C, 0x8E, 0xEB, +0x02, 0x2B, 0x42, 0xF6, 0x66, 0xC2, 0x80, 0x18, +0xEE, 0x35, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF7, 0x78, 0x9B, +0x30, 0xF0, 0x20, 0x68, 0xE3, 0xF3, 0x0C, 0x98, +0xE0, 0x9B, 0xFF, 0x6A, 0x4C, 0xEC, 0x0C, 0xEF, +0x08, 0x5C, 0x4C, 0xED, 0x4C, 0xEE, 0xE0, 0xDB, +0x46, 0x60, 0xB0, 0x75, 0x2E, 0x61, 0xB2, 0x76, +0x13, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, +0xB4, 0x9A, 0x01, 0x6A, 0x44, 0xEC, 0xC0, 0x9D, +0x00, 0xF6, 0x40, 0x34, 0xCD, 0xEC, 0x80, 0xDD, +0xC0, 0x9D, 0x40, 0x34, 0x80, 0x34, 0x8F, 0xEC, +0xCC, 0xEC, 0x80, 0xDD, 0x80, 0x9B, 0x4E, 0x10, +0xB1, 0x76, 0x80, 0xF0, 0x13, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF2, 0xB4, 0x9A, 0x01, 0x6A, +0x44, 0xEC, 0xC0, 0x9D, 0x00, 0xF6, 0x40, 0x34, +0xCD, 0xEC, 0x80, 0xDD, 0xC0, 0x9D, 0x40, 0x34, +0x80, 0x34, 0x8F, 0xEC, 0xCC, 0xEC, 0x80, 0xDD, +0x80, 0x9B, 0x4F, 0xEA, 0x8C, 0xEA, 0x40, 0xDB, +0x7B, 0x10, 0xA0, 0x75, 0x7D, 0x61, 0xA1, 0x76, +0x08, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, +0x54, 0x9A, 0x01, 0x6B, 0x64, 0xEC, 0xA0, 0x9A, +0x51, 0x10, 0xA2, 0x76, 0x6F, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF2, 0x54, 0x9A, 0x01, 0x6B, +0x64, 0xEC, 0xA0, 0x9A, 0x5A, 0x10, 0xE8, 0x44, +0x4C, 0xEF, 0x08, 0x5F, 0xE0, 0x6A, 0x65, 0x60, +0xB0, 0x75, 0x35, 0x61, 0xB2, 0x76, 0x18, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x50, 0x9A, +0x01, 0x6E, 0xA6, 0x67, 0x00, 0x9A, 0xA4, 0xEF, +0xE5, 0x67, 0x00, 0xF6, 0xA0, 0x35, 0x0D, 0xED, +0xA0, 0xDA, 0xA0, 0x9A, 0xE0, 0x37, 0xE0, 0x37, +0xEF, 0xEF, 0xAC, 0xEF, 0xE0, 0xDA, 0x40, 0x9B, +0xC4, 0xEC, 0x86, 0x67, 0x4D, 0xEC, 0x19, 0x10, +0xB1, 0x76, 0x44, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF2, 0x50, 0x9A, 0x01, 0x6E, 0xA6, 0x67, +0x00, 0x9A, 0xA4, 0xEF, 0xE5, 0x67, 0x00, 0xF6, +0xA0, 0x35, 0x0D, 0xED, 0xA0, 0xDA, 0xA0, 0x9A, +0xE0, 0x37, 0xE0, 0x37, 0xEF, 0xEF, 0xAC, 0xEF, +0xE0, 0xDA, 0x40, 0x9B, 0xC4, 0xEC, 0xCF, 0xEC, +0x4C, 0xEC, 0x80, 0xDB, 0x29, 0x10, 0xA0, 0x75, +0x2B, 0x61, 0xA1, 0x76, 0x11, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF2, 0x50, 0x9A, 0x01, 0x6B, +0x64, 0xEF, 0xA0, 0x9A, 0x00, 0xF6, 0x60, 0x34, +0x8F, 0xEC, 0xAC, 0xEC, 0x80, 0xDA, 0x80, 0x9A, +0x60, 0x33, 0x60, 0x33, 0x8D, 0xEB, 0x13, 0x10, +0xA2, 0x76, 0x14, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF2, 0x50, 0x9A, 0x01, 0x6B, 0x64, 0xEF, +0xA0, 0x9A, 0x00, 0xF6, 0x60, 0x34, 0x8F, 0xEC, +0xAC, 0xEC, 0x80, 0xDA, 0x80, 0x9A, 0x60, 0x33, +0x60, 0x33, 0x6F, 0xEB, 0x8C, 0xEB, 0x60, 0xDA, +0xF0, 0x6A, 0x03, 0x10, 0xE2, 0x6A, 0x01, 0x10, +0xE1, 0x6A, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, +0xFF, 0x6B, 0x6C, 0xEC, 0x08, 0x5C, 0xFF, 0x63, +0x18, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF7, +0x5C, 0x9A, 0x01, 0x6D, 0x40, 0xA2, 0x6C, 0xEA, +0x47, 0xEC, 0xAC, 0xEA, 0x37, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF7, 0x40, 0x9A, 0x40, 0xA2, +0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x30, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, 0x54, 0x9A, +0x1C, 0x10, 0xF8, 0x4C, 0x6C, 0xEC, 0x08, 0x5C, +0xE0, 0x6A, 0x27, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF7, 0x44, 0x9A, 0x01, 0x6D, 0x40, 0xA2, +0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x1A, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, 0x48, 0x9A, +0x40, 0xA2, 0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, +0x13, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF2, +0x50, 0x9A, 0x40, 0xA2, 0xA4, 0xEC, 0x85, 0x67, +0x6C, 0xEC, 0x4C, 0xEC, 0x5D, 0x67, 0x80, 0xC2, +0x40, 0xA2, 0x4C, 0xEB, 0x6B, 0xEA, 0xC0, 0xF7, +0x42, 0x32, 0x03, 0x10, 0xE4, 0x6A, 0x01, 0x10, +0xE6, 0x6A, 0x01, 0x63, 0x20, 0xE8, 0x00, 0x65, +0xFF, 0x6B, 0x6C, 0xEC, 0x08, 0x5C, 0x6C, 0xED, +0x20, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF7, +0x5C, 0x9A, 0x01, 0x6E, 0x40, 0xA2, 0x6C, 0xEA, +0x47, 0xEC, 0xCC, 0xEA, 0x48, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF7, 0x40, 0x9A, 0xC4, 0xEC, +0x86, 0x67, 0x40, 0xA2, 0x6C, 0xEA, 0xCC, 0xEA, +0xCE, 0xEA, 0x3B, 0x2A, 0x05, 0x25, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF7, 0xAC, 0x9A, 0x24, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, 0x4C, 0x9A, +0x29, 0x10, 0xF8, 0x4C, 0x6C, 0xEC, 0x08, 0x5C, +0xE0, 0x6A, 0x2E, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF7, 0x44, 0x9A, 0x01, 0x6E, 0x40, 0xA2, +0x6C, 0xEA, 0x47, 0xEC, 0xCC, 0xEA, 0x23, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, 0x48, 0x9A, +0xC4, 0xEC, 0x86, 0x67, 0x40, 0xA2, 0x6C, 0xEA, +0xCC, 0xEA, 0xCE, 0xEA, 0x16, 0x2A, 0x0A, 0x25, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, 0xB0, 0x9A, +0x40, 0xA5, 0x6C, 0xEA, 0x8D, 0xEA, 0x6C, 0xEA, +0x40, 0xC5, 0x09, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF7, 0x50, 0x9A, 0xA0, 0xA2, 0x8F, 0xEC, +0x6C, 0xEC, 0xAC, 0xEC, 0x80, 0xC2, 0xF0, 0x6A, +0x20, 0xE8, 0xE5, 0x6A, 0x20, 0xE8, 0xE4, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, +0x08, 0x5C, 0x0F, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF7, 0x5C, 0x9A, 0x01, 0x6D, 0x40, 0xA2, +0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x1F, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, 0x40, 0x9A, +0x13, 0x10, 0xF8, 0x4C, 0x6C, 0xEC, 0x08, 0x5C, +0xE0, 0x6A, 0x16, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF7, 0x44, 0x9A, 0x01, 0x6D, 0x40, 0xA2, +0x6C, 0xEA, 0x47, 0xEC, 0xAC, 0xEA, 0x0B, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, 0x48, 0x9A, +0x40, 0xA2, 0x4C, 0xEB, 0x67, 0xEC, 0x45, 0x67, +0x6E, 0xEA, 0xAC, 0xEA, 0x20, 0xE8, 0x00, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, +0x08, 0x5C, 0x1A, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF7, 0x5C, 0x9A, 0x01, 0x6E, 0x40, 0xA2, +0x6C, 0xEA, 0x47, 0xEC, 0xCC, 0xEA, 0x35, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, 0x40, 0x9A, +0xC4, 0xEC, 0x86, 0x67, 0xA0, 0xA2, 0x6C, 0xED, +0xCC, 0xED, 0xCE, 0xED, 0x2A, 0x2D, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF7, 0x4C, 0x9A, 0x1E, 0x10, +0xF8, 0x4C, 0x6C, 0xEC, 0x08, 0x5C, 0xE0, 0x6A, +0x21, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, +0x44, 0x9A, 0x01, 0x6E, 0x40, 0xA2, 0x6C, 0xEA, +0x47, 0xEC, 0xCC, 0xEA, 0x16, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF7, 0x48, 0x9A, 0xC4, 0xEC, +0x86, 0x67, 0xA0, 0xA2, 0x6C, 0xED, 0xCC, 0xED, +0xCE, 0xED, 0x0B, 0x2D, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF7, 0x50, 0x9A, 0x40, 0xA2, 0x4C, 0xEB, +0x8C, 0xEB, 0x6E, 0xEC, 0x01, 0x5C, 0x58, 0x67, +0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, +0x01, 0x72, 0xFF, 0xF7, 0x1F, 0x6C, 0xAC, 0xEC, +0x05, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x48, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x69, 0x04, 0x67, +0x2C, 0xE8, 0x90, 0x67, 0xA0, 0x6D, 0xA2, 0x6E, +0x80, 0x18, 0xFD, 0x39, 0x90, 0x67, 0x80, 0x18, +0x60, 0x3A, 0x7D, 0x67, 0x50, 0xC3, 0x50, 0xA3, +0x09, 0x97, 0x07, 0x90, 0x2C, 0xEA, 0x08, 0x91, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x68, 0x24, 0x67, +0x0C, 0xE9, 0x91, 0x67, 0xAC, 0xE8, 0xA1, 0x6E, +0xA0, 0x6D, 0x80, 0x18, 0xFD, 0x39, 0x91, 0x67, +0xB0, 0x67, 0x80, 0x18, 0x86, 0x3A, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF7, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6D, +0xE3, 0xF3, 0xAC, 0x9D, 0x40, 0x9B, 0xA2, 0x6E, +0xAC, 0xEA, 0x40, 0xDB, 0xFF, 0x6A, 0x4C, 0xEC, +0xA0, 0x6D, 0x80, 0x18, 0xFD, 0x39, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0xB0, 0x6D, 0xB2, 0x6E, +0x80, 0x18, 0xFD, 0x39, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xEC, 0xB0, 0x6D, 0xB1, 0x6E, +0x80, 0x18, 0xFD, 0x39, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0xFF, 0x6A, 0x04, 0x67, 0x4C, 0xE8, +0xAC, 0xEA, 0xA4, 0x72, 0x0C, 0x61, 0x90, 0x67, +0x80, 0x18, 0xB3, 0x3A, 0x01, 0x72, 0x04, 0x61, +0x90, 0x67, 0x80, 0x18, 0x10, 0x3B, 0x1F, 0x10, +0x90, 0x67, 0x00, 0x6D, 0x0D, 0x10, 0xA5, 0x72, +0x11, 0x61, 0x90, 0x67, 0x80, 0x18, 0xB3, 0x3A, +0x01, 0x72, 0x04, 0x61, 0x90, 0x67, 0x80, 0x18, +0x10, 0x3B, 0x18, 0x10, 0x90, 0x67, 0x01, 0x6D, +0x80, 0x18, 0x05, 0x3B, 0x90, 0x67, 0x80, 0x18, +0x10, 0x3B, 0x14, 0x10, 0x90, 0x67, 0x80, 0x18, +0xCB, 0x3A, 0x01, 0x72, 0x07, 0x61, 0x90, 0x67, +0x01, 0x6D, 0x80, 0x18, 0x05, 0x3B, 0x90, 0x67, +0x00, 0x6D, 0x06, 0x10, 0x90, 0x67, 0x00, 0x6D, +0x80, 0x18, 0x05, 0x3B, 0x90, 0x67, 0x01, 0x6D, +0x80, 0x18, 0x05, 0x3B, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x4C, 0xEC, +0x4C, 0xEE, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x08, 0xF1, 0x6D, 0xA2, 0xFF, 0xF7, +0x1F, 0x69, 0x04, 0xD4, 0xAC, 0xE9, 0x05, 0xD6, +0x0B, 0x23, 0x08, 0xF1, 0x6E, 0xA2, 0x04, 0x23, +0x08, 0xF1, 0x8B, 0xA2, 0xA5, 0x6D, 0x07, 0x10, +0x08, 0xF1, 0x8B, 0xA2, 0xA4, 0x6D, 0x03, 0x10, +0x08, 0xF1, 0x8B, 0xA2, 0xA3, 0x6D, 0x30, 0xF0, +0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, 0x80, 0x18, +0x27, 0x3B, 0x08, 0xF1, 0x4F, 0xA0, 0x7D, 0x22, +0x04, 0x94, 0xB1, 0x67, 0x80, 0x18, 0xEE, 0x3A, +0x08, 0xF1, 0x4D, 0xA0, 0x0B, 0x22, 0x08, 0xF1, +0x4E, 0xA0, 0x04, 0x22, 0x08, 0xF1, 0x8B, 0xA0, +0xA5, 0x6D, 0x07, 0x10, 0x08, 0xF1, 0x8B, 0xA0, +0xA4, 0x6D, 0x03, 0x10, 0x08, 0xF1, 0x8B, 0xA0, +0xA3, 0x6D, 0x80, 0x18, 0x27, 0x3B, 0x30, 0xF0, +0x20, 0x6A, 0xEE, 0xF6, 0x40, 0xA2, 0x01, 0x68, +0x5D, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF7, +0x54, 0x9A, 0x60, 0xA2, 0x10, 0x6A, 0x6C, 0xEA, +0x58, 0x2A, 0x04, 0x94, 0xB1, 0x67, 0x80, 0x18, +0xEE, 0x3A, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x08, 0xF1, 0x6D, 0xA2, 0x0B, 0x23, +0x08, 0xF1, 0x6E, 0xA2, 0x04, 0x23, 0x08, 0xF1, +0x8B, 0xA2, 0xA5, 0x6D, 0x07, 0x10, 0x08, 0xF1, +0x8B, 0xA2, 0xA4, 0x6D, 0x03, 0x10, 0x08, 0xF1, +0x8B, 0xA2, 0xA3, 0x6D, 0x80, 0x18, 0x27, 0x3B, +0xDC, 0x17, 0x04, 0x94, 0xB1, 0x67, 0x80, 0x18, +0xEE, 0x3A, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x08, 0xF1, 0x6D, 0xA2, 0x0B, 0x23, +0x08, 0xF1, 0x6E, 0xA2, 0x04, 0x23, 0x08, 0xF1, +0x8B, 0xA2, 0xA5, 0x6D, 0x07, 0x10, 0x08, 0xF1, +0x8B, 0xA2, 0xA4, 0x6D, 0x03, 0x10, 0x08, 0xF1, +0x8B, 0xA2, 0xA3, 0x6D, 0x80, 0x18, 0x27, 0x3B, +0x04, 0x94, 0xB1, 0x67, 0x80, 0x18, 0xEE, 0x3A, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x08, 0xF1, 0x6D, 0xA2, 0x0B, 0x23, 0x08, 0xF1, +0x6E, 0xA2, 0x04, 0x23, 0x08, 0xF1, 0x8B, 0xA2, +0xA5, 0x6D, 0x07, 0x10, 0x08, 0xF1, 0x8B, 0xA2, +0xA4, 0x6D, 0x03, 0x10, 0x08, 0xF1, 0x8B, 0xA2, +0xA3, 0x6D, 0x80, 0x18, 0x27, 0x3B, 0x01, 0x48, +0xFF, 0x6A, 0x4C, 0xE8, 0x05, 0x92, 0x43, 0xE8, +0xC4, 0x61, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, +0x30, 0xF0, 0x20, 0x6C, 0xCE, 0xF6, 0x1B, 0x4C, +0x00, 0x6D, 0x06, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0x06, 0xF7, +0x0B, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xE0, 0xF0, 0x90, 0xA2, 0x7F, 0x6B, 0xE0, 0xF0, +0xD1, 0xA2, 0x8C, 0xEB, 0xE0, 0xF0, 0x92, 0xA2, +0x01, 0x6A, 0xC6, 0x36, 0x8A, 0x34, 0x4C, 0xEC, +0x68, 0x35, 0x05, 0x2C, 0x74, 0x35, 0xD0, 0x4D, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xED, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xE0, 0xF0, +0xF1, 0xA2, 0x01, 0x6B, 0xEC, 0xEB, 0x08, 0xF1, +0x6F, 0xC2, 0xE0, 0xF0, 0x70, 0xA2, 0x7E, 0x33, +0x08, 0xF1, 0x70, 0xC2, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF1, 0x74, 0x9B, 0x20, 0xF1, 0x5C, 0xA2, +0xE0, 0xA3, 0xFF, 0x6B, 0xEC, 0xEB, 0x4E, 0xEB, +0x06, 0x2B, 0x03, 0x6A, 0x58, 0xED, 0xFF, 0xF7, +0x1F, 0x6A, 0x12, 0xED, 0x4C, 0xED, 0x80, 0x18, +0x47, 0x3B, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xE0, 0xF0, +0x6F, 0xA2, 0x7F, 0x6D, 0x01, 0x6F, 0xAC, 0xEB, +0x08, 0xF1, 0x6B, 0xC2, 0xE0, 0xF0, 0x6E, 0xA2, +0x20, 0xF1, 0xDB, 0xA2, 0x3F, 0x6C, 0x76, 0x33, +0xEC, 0xEB, 0x08, 0xF1, 0x6C, 0xC2, 0xE0, 0xF0, +0x72, 0xA2, 0xCC, 0xEC, 0x01, 0x74, 0x76, 0x33, +0xEC, 0xEB, 0x08, 0xF1, 0x6D, 0xC2, 0xE0, 0xF0, +0x74, 0xA2, 0x66, 0x33, 0xEC, 0xEB, 0x08, 0xF1, +0x6E, 0xC2, 0xFF, 0x6B, 0x80, 0xF0, 0x0D, 0x60, +0x02, 0x74, 0x03, 0x61, 0x80, 0x18, 0xAD, 0x3B, +0x88, 0x10, 0x3F, 0x74, 0x0B, 0x61, 0x30, 0xF0, +0x20, 0x6C, 0x63, 0xF1, 0x94, 0x9C, 0x20, 0xF1, +0xDC, 0xA2, 0x80, 0xA4, 0x6C, 0xEC, 0xCE, 0xEC, +0x54, 0x2C, 0x0C, 0x10, 0x3E, 0x74, 0x51, 0x61, +0x30, 0xF0, 0x20, 0x6C, 0x63, 0xF1, 0x94, 0x9C, +0x20, 0xF1, 0x1C, 0xA2, 0xC0, 0xA4, 0x6C, 0xEE, +0x0E, 0xEE, 0x21, 0x2E, 0x20, 0xF1, 0x9B, 0xA2, +0x20, 0xF1, 0x1D, 0xA2, 0x20, 0xF1, 0xDE, 0xA2, +0x9A, 0x34, 0xAC, 0xE8, 0xEC, 0xEC, 0x6C, 0xE8, +0xC6, 0x36, 0x6C, 0xEC, 0x6C, 0xEE, 0x08, 0x35, +0x05, 0x2C, 0x14, 0x35, 0xD0, 0x4D, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xED, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x20, 0xF1, 0xFE, 0xA2, +0x01, 0x6B, 0xEC, 0xEB, 0x08, 0xF1, 0x6F, 0xC2, +0x20, 0xF1, 0x7D, 0xA2, 0x49, 0x10, 0x80, 0xA4, +0x20, 0xF1, 0xDF, 0xA2, 0x6C, 0xEC, 0xCE, 0xEC, +0x20, 0x2C, 0x40, 0xF1, 0xE0, 0xA2, 0x20, 0xF1, +0x9B, 0xA2, 0x40, 0xF1, 0xC1, 0xA2, 0xAC, 0xEF, +0x9E, 0x34, 0x6C, 0xEF, 0xC6, 0x36, 0x6C, 0xEC, +0x6C, 0xEE, 0xE8, 0x35, 0x05, 0x2C, 0xF4, 0x35, +0xD0, 0x4D, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xED, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x40, 0xF1, 0xE1, 0xA2, 0x01, 0x6B, 0xEC, 0xEB, +0x08, 0xF1, 0x6F, 0xC2, 0x40, 0xF1, 0x60, 0xA2, +0x23, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0xE0, 0xF0, 0x90, 0xA2, 0x7F, 0x6B, +0xE0, 0xF0, 0xD1, 0xA2, 0x8C, 0xEB, 0xE0, 0xF0, +0x92, 0xA2, 0x01, 0x6A, 0xC6, 0x36, 0x8A, 0x34, +0x4C, 0xEC, 0x68, 0x35, 0x05, 0x2C, 0x74, 0x35, +0xD0, 0x4D, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xED, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0xE0, 0xF0, 0xF1, 0xA2, 0x01, 0x6B, 0xEC, 0xEB, +0x08, 0xF1, 0x6F, 0xC2, 0xE0, 0xF0, 0x70, 0xA2, +0x7E, 0x33, 0x08, 0xF1, 0x70, 0xC2, 0x80, 0x18, +0x47, 0x3B, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xE0, 0xF0, 0xB2, 0xA2, +0x02, 0x6C, 0xFF, 0x6B, 0xAC, 0xEC, 0x33, 0x24, +0x30, 0xF0, 0x20, 0x6C, 0x26, 0xF4, 0x8F, 0xA4, +0x2E, 0x2C, 0x05, 0xF3, 0x58, 0xA2, 0x08, 0x5A, +0x07, 0x61, 0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF2, +0x90, 0x9C, 0xF8, 0x4A, 0xA0, 0xA4, 0x05, 0x10, +0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF2, 0x94, 0x9C, +0xA0, 0xA4, 0x01, 0x6C, 0x84, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x6C, 0xEC, 0xC6, 0xF5, 0x10, 0x4A, +0xAC, 0xEC, 0xE0, 0xF0, 0xB4, 0xA2, 0x04, 0x6B, +0xAC, 0xEB, 0x02, 0x2B, 0x10, 0x2C, 0x01, 0x10, +0x0E, 0x24, 0x30, 0xF0, 0x20, 0x6C, 0xA0, 0xF0, +0x64, 0x9A, 0x23, 0xF1, 0x98, 0x9C, 0x8D, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x01, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x26, 0xF4, 0x6F, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0xE0, 0xF0, +0xB2, 0xA2, 0x02, 0x6C, 0xFF, 0x6B, 0xAC, 0xEC, +0x42, 0x24, 0x30, 0xF0, 0x20, 0x6C, 0x26, 0xF4, +0x8F, 0xA4, 0x01, 0x74, 0x3C, 0x61, 0x05, 0xF3, +0x58, 0xA2, 0x08, 0x5A, 0x07, 0x61, 0x30, 0xF0, +0x20, 0x6C, 0xE3, 0xF2, 0x90, 0x9C, 0xF8, 0x4A, +0xA0, 0xA4, 0x05, 0x10, 0x30, 0xF0, 0x20, 0x6C, +0xE3, 0xF2, 0x94, 0x9C, 0xA0, 0xA4, 0x01, 0x6C, +0x84, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x6C, 0xEC, +0xC6, 0xF5, 0x10, 0x4A, 0xAC, 0xEC, 0xE0, 0xF0, +0xB4, 0xA2, 0x04, 0x6B, 0xAC, 0xEB, 0x10, 0x2B, +0x1E, 0x24, 0x30, 0xF0, 0x20, 0x6C, 0xA0, 0xF0, +0x64, 0x9A, 0x23, 0xF1, 0x98, 0x9C, 0x8D, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x02, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x26, 0xF4, 0x6F, 0xC2, 0x20, 0xE8, +0x0E, 0x2C, 0x30, 0xF0, 0x20, 0x6C, 0xA0, 0xF0, +0x64, 0x9A, 0x23, 0xF1, 0x98, 0x9C, 0x8D, 0xEB, +0xA0, 0xF0, 0x64, 0xDA, 0x02, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x26, 0xF4, 0x6F, 0xC2, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, 0x7C, 0x9B, +0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0x69, 0xE2, +0x00, 0x9A, 0x41, 0x45, 0x25, 0x67, 0x08, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, +0x85, 0x67, 0x2C, 0xE8, 0x40, 0xEA, 0x06, 0xEA, +0x50, 0x67, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0xF7, 0x1F, 0x68, +0x41, 0x45, 0x25, 0x67, 0x0C, 0xD6, 0x8C, 0xE8, +0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, +0x5C, 0x9A, 0x41, 0xE0, 0xC0, 0xD8, 0x1A, 0x10, +0x01, 0x6D, 0x90, 0x67, 0xAB, 0xED, 0x80, 0x18, +0x6E, 0x3C, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF3, 0x44, 0x9A, 0x91, 0x67, 0x40, 0xEA, +0x0C, 0x93, 0x64, 0xEA, 0x43, 0x67, 0x04, 0x93, +0x2C, 0xEA, 0x2F, 0xE9, 0x6C, 0xE9, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF0, 0x7C, 0x9B, 0x2D, 0xEA, +0x61, 0xE0, 0x40, 0xD8, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x01, 0x74, 0x0D, 0x60, 0x06, 0x24, 0x02, 0x74, +0x10, 0x60, 0x03, 0x74, 0x00, 0x6A, 0x1C, 0x61, +0x14, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA8, 0x35, +0x83, 0xF7, 0x5C, 0x9A, 0x0B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA8, 0x35, 0xA3, 0xF7, 0x40, 0x9A, +0x05, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, +0x44, 0x9A, 0xA8, 0x35, 0x55, 0xE5, 0x40, 0x9D, +0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF7, +0x48, 0x9A, 0xA8, 0x35, 0x55, 0xE5, 0x40, 0x9D, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x2A, 0xF0, 0x0C, 0x4A, +0x88, 0x34, 0x91, 0xE2, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF4, 0x70, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF5, 0xA0, 0x35, 0xCC, 0xEB, 0x30, 0xF0, +0x20, 0x6E, 0x03, 0xF6, 0xC0, 0x9E, 0xC0, 0xF3, +0x44, 0x9A, 0x80, 0xAC, 0xAD, 0xEB, 0x01, 0x6D, +0xAB, 0xED, 0x6C, 0xEE, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6B, 0x8C, 0xEB, +0xFF, 0xF7, 0x1F, 0x6A, 0x81, 0x46, 0x06, 0x67, +0xAC, 0xEA, 0x06, 0x2C, 0x83, 0x67, 0xA2, 0x67, +0x80, 0x18, 0x96, 0x3C, 0x02, 0x67, 0x0D, 0x10, +0x83, 0x67, 0xA2, 0x67, 0x80, 0x18, 0x96, 0x3C, +0x22, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, +0x44, 0x9A, 0x90, 0x67, 0x2C, 0xE8, 0x40, 0xEA, +0x06, 0xEA, 0x50, 0x67, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x46, 0x67, 0xFF, 0x68, 0xFF, 0xF7, 0x1F, 0x69, +0x01, 0x4A, 0x0C, 0xD6, 0x0D, 0xD7, 0x8C, 0xE8, +0xAC, 0xE9, 0x04, 0x2A, 0x90, 0x67, 0xB1, 0x67, +0xC7, 0x67, 0x15, 0x10, 0xB1, 0x67, 0x90, 0x67, +0x80, 0x18, 0x96, 0x3C, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x0C, 0x94, 0xA0, 0xF3, 0x44, 0x9A, +0x40, 0xEA, 0x0D, 0x96, 0x90, 0x67, 0xB1, 0x67, +0xC4, 0xEA, 0x0C, 0x92, 0x4C, 0xEE, 0x4F, 0xEB, +0x04, 0x92, 0x4C, 0xEB, 0x6D, 0xEE, 0x80, 0x18, +0xA9, 0x3C, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0xF7, 0x1F, 0x6A, 0x8C, 0xEA, 0x1F, 0xF7, +0x00, 0x6B, 0x4C, 0xEB, 0x02, 0xF0, 0x00, 0x73, +0x25, 0x67, 0x01, 0x60, 0x05, 0x2B, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF0, 0x78, 0x9B, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, 0x7C, 0x9B, +0x69, 0xE2, 0x00, 0x9A, 0x41, 0x41, 0x08, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, +0x91, 0x67, 0x2C, 0xE8, 0x40, 0xEA, 0x06, 0xEA, +0x50, 0x67, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0xF7, 0x1F, 0x68, +0x41, 0x45, 0x25, 0x67, 0x0C, 0xD6, 0x8C, 0xE8, +0x16, 0x2A, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, +0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x07, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x58, 0x9A, +0x41, 0xE0, 0x0C, 0x92, 0x3A, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x5C, 0x9A, 0x0C, 0x93, +0x41, 0xE0, 0x60, 0xD8, 0x33, 0x10, 0x1F, 0xF7, +0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x58, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x5C, 0x9A, 0x49, 0xE0, +0x40, 0x9A, 0x91, 0x67, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, +0x0C, 0x93, 0x64, 0xEA, 0x43, 0x67, 0x04, 0x93, +0x2C, 0xEA, 0x2F, 0xE9, 0x6C, 0xE9, 0x1F, 0xF7, +0x00, 0x6B, 0x0C, 0xEB, 0x02, 0xF0, 0x00, 0x73, +0x2D, 0xEA, 0x01, 0x60, 0x05, 0x2B, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF0, 0x78, 0x9B, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, 0x7C, 0x9B, +0x61, 0xE0, 0x40, 0xD8, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x03, 0xF0, 0x08, 0x6B, 0x43, 0xF2, 0x7C, 0xDA, +0x05, 0xF1, 0x00, 0x4B, 0x63, 0xF2, 0x60, 0xDA, +0x02, 0xF1, 0x00, 0x4B, 0x63, 0xF2, 0x64, 0xDA, +0x00, 0xF1, 0x00, 0x4B, 0x63, 0xF2, 0x68, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0xFF, 0x6B, 0x6C, 0xEC, +0x1F, 0x6D, 0x8C, 0xED, 0x96, 0x34, 0x6C, 0xEC, +0x01, 0x74, 0x03, 0x6A, 0x0A, 0x60, 0x10, 0x24, +0x04, 0x74, 0x05, 0x60, 0x06, 0x74, 0x00, 0x6A, +0x12, 0x61, 0xEF, 0x4A, 0x02, 0x10, 0x07, 0x6A, +0x4B, 0xEA, 0xAB, 0xE2, 0x44, 0x32, 0x00, 0xF6, +0x40, 0x32, 0x00, 0xF6, 0x43, 0x32, 0x20, 0xE8, +0x08, 0x6A, 0xAB, 0xE2, 0x44, 0x32, 0x00, 0xF6, +0x40, 0x32, 0x00, 0xF6, 0x43, 0x32, 0x20, 0xE8, +0x00, 0xF6, 0x80, 0x34, 0x00, 0xF6, 0x83, 0x34, +0x47, 0x44, 0x5C, 0x4A, 0xFF, 0x6B, 0x6C, 0xEA, +0x77, 0x5A, 0x00, 0x6A, 0x06, 0x60, 0x00, 0x54, +0x64, 0x6A, 0x03, 0x60, 0x47, 0x44, 0x5D, 0x4A, +0x6C, 0xEA, 0x20, 0xE8, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, +0x0E, 0x91, 0x04, 0xD2, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xED, 0x4C, 0xE9, 0x0C, 0xD6, 0x0D, 0xD7, +0x0F, 0x90, 0x05, 0xD5, 0x00, 0x6A, 0x08, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x0A, 0x6C, 0x40, 0xEA, 0x40, 0xA8, 0x01, 0x4A, +0x40, 0xC8, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x95, +0x05, 0x96, 0x03, 0xF4, 0xF0, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xEE, 0xF6, 0x08, 0x4C, 0x80, 0x18, +0x9C, 0x4E, 0x0C, 0x93, 0x6C, 0xEA, 0x0D, 0x93, +0x6E, 0xEA, 0x03, 0x22, 0x40, 0xA8, 0x23, 0xEA, +0xE3, 0x61, 0x40, 0xA8, 0x09, 0x97, 0x07, 0x90, +0x23, 0xEA, 0x08, 0x91, 0x58, 0x67, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, 0x68, 0x9A, +0x7F, 0x6A, 0xFD, 0x67, 0x80, 0xA3, 0x8C, 0xEA, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF7, +0x4C, 0x9A, 0xD2, 0xA7, 0x02, 0x6B, 0xA0, 0xA2, +0x01, 0x6C, 0x6B, 0xEB, 0x8C, 0xED, 0xCC, 0xEB, +0xAD, 0xEB, 0x72, 0xC7, 0x02, 0x6B, 0x70, 0xC7, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF7, 0x70, 0x9B, +0x8F, 0xCF, 0xFF, 0x6A, 0x80, 0xAB, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF7, 0xC0, 0x9B, 0x4C, 0xEC, +0x94, 0x34, 0xD1, 0xE4, 0x60, 0xA4, 0x40, 0x6D, +0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, 0x60, 0xC4, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF7, 0x74, 0x9B, +0x80, 0xAB, 0x4C, 0xEC, 0x94, 0x34, 0xD1, 0xE4, +0x60, 0xA4, 0x4C, 0xEB, 0xAD, 0xEB, 0x4C, 0xEB, +0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x5C, 0x9A, 0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, +0x05, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x4C, 0xED, +0x07, 0x6B, 0xAC, 0xEB, 0x2C, 0x2B, 0xAE, 0x35, +0xFF, 0x4D, 0x4C, 0xED, 0xA6, 0x33, 0xAC, 0x35, +0x4C, 0xEB, 0xB5, 0xE4, 0x08, 0xD3, 0x07, 0xD5, +0x06, 0xD4, 0x00, 0x69, 0x1A, 0x10, 0x30, 0xF0, +0x20, 0x68, 0x07, 0x95, 0x80, 0xF2, 0x4C, 0x98, +0x04, 0x04, 0x08, 0x6E, 0x40, 0xEA, 0x07, 0x94, +0x06, 0x95, 0x80, 0xF2, 0x4C, 0x98, 0x08, 0x6E, +0x01, 0x49, 0x40, 0xEA, 0x80, 0xF2, 0x4C, 0x98, +0x06, 0x94, 0x04, 0x05, 0x08, 0x6E, 0x40, 0xEA, +0xFF, 0x6A, 0x4C, 0xE9, 0x07, 0x92, 0xF8, 0x4A, +0x07, 0xD2, 0x06, 0x93, 0x08, 0x92, 0x08, 0x4B, +0x43, 0xE9, 0x06, 0xD3, 0xE0, 0x61, 0x0D, 0x97, +0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, +0xF8, 0x63, 0x0F, 0x62, 0x0E, 0xD1, 0x0D, 0xD0, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0x67, 0x80, 0xF2, +0x4C, 0x9A, 0x11, 0xD5, 0xA7, 0x40, 0x04, 0x04, +0x02, 0x4D, 0x26, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0x7D, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF3, +0x54, 0x9A, 0x90, 0xA3, 0x00, 0x6D, 0x40, 0xEA, +0x68, 0xA0, 0x01, 0x6A, 0x6C, 0xEA, 0x31, 0x22, +0x69, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, +0x6C, 0xEA, 0x07, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF3, 0x4C, 0x9A, 0xAF, 0xA0, 0x91, 0x67, +0x40, 0xEA, 0x63, 0xA0, 0x80, 0x6A, 0x4B, 0xEA, +0x6D, 0xEA, 0x41, 0x6B, 0x6B, 0xEB, 0x6C, 0xEA, +0x43, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF3, +0x40, 0x9A, 0x00, 0x6D, 0xC5, 0x67, 0x90, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF3, +0x48, 0x9A, 0x90, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x40, 0xF3, 0x40, 0x9A, 0x8D, 0xA8, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x7D, 0x67, +0x20, 0xF3, 0x54, 0x9A, 0x90, 0xA3, 0x01, 0x6D, +0x40, 0xEA, 0x88, 0xA0, 0x02, 0x6A, 0xFF, 0x6B, +0x8C, 0xEA, 0x7A, 0x22, 0x83, 0xA0, 0x7F, 0x6A, +0x2E, 0xA0, 0x8C, 0xEA, 0x43, 0xC0, 0x3F, 0x6A, +0x2C, 0xEA, 0x02, 0x2A, 0x3A, 0x31, 0x02, 0x10, +0x3A, 0x31, 0x01, 0x49, 0x11, 0x94, 0x00, 0x6A, +0x6C, 0xE9, 0x07, 0xD4, 0x06, 0xD2, 0x08, 0xD2, +0x0A, 0xD2, 0x61, 0x10, 0x0A, 0x94, 0x6F, 0x41, +0x8E, 0xEB, 0x17, 0x2B, 0x88, 0xA0, 0x10, 0x6B, +0x8C, 0xEB, 0x4C, 0xEB, 0x04, 0x23, 0x63, 0xA0, +0x40, 0x6A, 0x6D, 0xEA, 0x04, 0x10, 0x63, 0xA0, +0x41, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x43, 0xC0, +0x06, 0x93, 0x4E, 0xA0, 0x49, 0xE3, 0x09, 0xD2, +0x09, 0x94, 0xFF, 0x6A, 0x4C, 0xEC, 0x09, 0xD4, +0x07, 0x10, 0x63, 0xA0, 0x41, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0x43, 0xC0, 0x40, 0x6A, 0x09, 0xD2, +0x68, 0xA0, 0x04, 0x6A, 0x6C, 0xEA, 0x0D, 0x2A, +0x69, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, 0xFF, 0x6B, +0x6C, 0xEA, 0x07, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF3, 0x4C, 0x9A, 0x07, 0x94, 0x09, 0x95, +0x40, 0xEA, 0x08, 0x93, 0xA5, 0xA8, 0x30, 0xF0, +0x20, 0x6A, 0x09, 0x96, 0x20, 0xF3, 0x40, 0x9A, +0xB5, 0xE3, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xED, +0x90, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF3, 0x48, 0x9A, 0x90, 0x67, 0x40, 0xEA, +0x7D, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x90, 0xA3, +0x20, 0xF3, 0x54, 0x9A, 0x01, 0x6D, 0x40, 0xEA, +0x08, 0x92, 0xFF, 0xF7, 0x1F, 0x6B, 0x0A, 0x94, +0x40, 0x4A, 0x6C, 0xEA, 0x08, 0xD2, 0x06, 0x92, +0x01, 0x4C, 0x0A, 0xD4, 0xC0, 0x4A, 0x06, 0xD2, +0x07, 0x94, 0x06, 0x93, 0xFF, 0x6A, 0x40, 0x4C, +0x4C, 0xEB, 0x07, 0xD4, 0x06, 0xD3, 0x0A, 0x93, +0xFF, 0x6A, 0x4C, 0xEB, 0x23, 0xEB, 0x9A, 0x61, +0x0F, 0x97, 0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x01, 0x74, 0x11, 0x60, +0x05, 0x24, 0x02, 0x74, 0x03, 0x60, 0x03, 0x74, +0x0C, 0x60, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xA4, 0xF0, 0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xC3, 0xF3, 0x88, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, +0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF0, +0x74, 0x9A, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF3, +0x84, 0x9C, 0x40, 0x9B, 0x8D, 0xEA, 0x40, 0xDB, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF4, 0xA0, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xC3, 0xF3, 0x80, 0x9C, 0x60, 0x9D, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x8C, 0xEB, +0x42, 0xF6, 0x68, 0xDA, 0x60, 0x9D, 0x8C, 0xEB, +0x42, 0xF6, 0x74, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xC4, 0xF0, 0x44, 0x9A, +0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF3, +0x40, 0x9A, 0x6C, 0xEA, 0x20, 0xE8, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x40, 0x98, +0x82, 0x46, 0x26, 0x67, 0x40, 0xEA, 0x04, 0xD2, +0xC0, 0xF3, 0x40, 0x98, 0x83, 0x41, 0x40, 0xEA, +0x05, 0xD2, 0xC0, 0xF3, 0x40, 0x98, 0x81, 0x41, +0x40, 0xEA, 0x06, 0xD2, 0xC0, 0xF3, 0x40, 0x98, +0x91, 0x67, 0x40, 0xEA, 0x05, 0x94, 0x03, 0x6B, +0x8C, 0xEB, 0x04, 0x94, 0xA7, 0x43, 0x0F, 0x6B, +0x8C, 0xEB, 0x6C, 0x33, 0x11, 0x4D, 0x75, 0xE5, +0x06, 0x93, 0x60, 0x34, 0x4D, 0xEC, 0xE7, 0xF7, +0x1F, 0x6A, 0x4C, 0xEC, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF4, 0x70, 0x9A, 0x91, 0xE5, 0x40, 0xEB, +0x30, 0xF0, 0x20, 0x6B, 0x09, 0xF4, 0x78, 0x9B, +0x29, 0xE2, 0x43, 0xEB, 0x02, 0x60, 0x6F, 0xEB, +0x69, 0xE2, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x40, 0x98, 0x82, 0x45, 0x25, 0x67, +0x40, 0xEA, 0x04, 0xD2, 0xC0, 0xF3, 0x40, 0x98, +0x83, 0x41, 0x18, 0x49, 0x40, 0xEA, 0x03, 0x6B, +0x4C, 0xEB, 0x04, 0x92, 0x0F, 0x6C, 0x65, 0xE1, +0x4C, 0xEC, 0x8C, 0x34, 0x89, 0xE1, 0x09, 0x97, +0x08, 0x91, 0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF4, 0x4C, 0x9A, 0x85, 0x67, 0x40, 0xEA, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0x6A, 0x8C, 0xEA, 0x0B, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xE3, 0xF6, 0x7C, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xE3, 0xF1, 0x84, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x0A, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF6, 0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xC4, 0xF0, 0x88, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, +0x40, 0xDB, 0x20, 0xE8, 0xFF, 0x6A, 0x4C, 0xEC, +0x07, 0x6B, 0x8C, 0xEB, 0x4C, 0xED, 0x8E, 0x34, +0x42, 0xF4, 0x10, 0x4C, 0x36, 0x25, 0x1F, 0xF7, +0x00, 0x6D, 0x8C, 0xED, 0x02, 0xF0, 0x00, 0x75, +0x01, 0x60, 0x21, 0x2D, 0x1F, 0xF7, 0x00, 0x6A, +0x8C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, +0x07, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, +0xB8, 0x9A, 0xB5, 0xE4, 0x80, 0xA5, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0xB8, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x5C, 0x9A, +0xB5, 0xE4, 0x51, 0xE4, 0x80, 0xA4, 0x00, 0xF6, +0x80, 0x34, 0x01, 0x6A, 0x00, 0xF6, 0x83, 0x34, +0x44, 0xEB, 0x8D, 0xEA, 0x36, 0x10, 0x30, 0xF0, +0x20, 0x6D, 0xA3, 0xF0, 0xBC, 0x9D, 0x01, 0x6E, +0xC4, 0xEB, 0xB1, 0xE4, 0xA0, 0xA4, 0x00, 0xF6, +0xA0, 0x35, 0x00, 0xF6, 0xA3, 0x35, 0xCD, 0xED, +0x3A, 0x10, 0x1F, 0xF7, 0x00, 0x6D, 0x8C, 0xED, +0x02, 0xF0, 0x00, 0x75, 0x01, 0x60, 0x25, 0x2D, +0x1F, 0xF7, 0x00, 0x6A, 0x8C, 0xEA, 0x02, 0xF0, +0x00, 0x72, 0x01, 0x60, 0x07, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0xB8, 0x9A, 0xB5, 0xE4, +0x80, 0xA5, 0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0xB8, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x5C, 0x9A, 0xB5, 0xE4, 0x51, 0xE4, +0x80, 0xA4, 0x01, 0x6A, 0x00, 0xF6, 0x80, 0x34, +0x44, 0xEB, 0x00, 0xF6, 0x83, 0x34, 0x4F, 0xEA, +0x8C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, 0x40, 0xC5, +0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6D, 0xA3, 0xF0, +0xBC, 0x9D, 0x01, 0x6E, 0xC4, 0xEB, 0xB1, 0xE4, +0xA0, 0xA4, 0xCF, 0xEE, 0x00, 0xF6, 0xA0, 0x35, +0x00, 0xF6, 0xA3, 0x35, 0xCC, 0xED, 0x4C, 0xED, +0xA0, 0xC4, 0x20, 0xE8, 0x01, 0x6A, 0x20, 0xE8, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEE, 0x4C, 0xEF, +0x24, 0x67, 0x0D, 0xD5, 0x06, 0xD6, 0x04, 0xD7, +0x2C, 0x27, 0x00, 0x68, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x40, 0x9B, 0x91, 0x67, 0x40, 0xEA, +0x06, 0x93, 0x6E, 0xEA, 0x11, 0x2A, 0x0D, 0x95, +0x42, 0x41, 0x82, 0x67, 0x05, 0xD2, 0x80, 0x18, +0xB1, 0x3E, 0x01, 0x72, 0x1C, 0x60, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, 0x81, 0x41, +0x40, 0xEA, 0x05, 0x93, 0x45, 0xE3, 0x08, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, +0x81, 0x41, 0x02, 0x49, 0x40, 0xEA, 0x45, 0xE1, +0xFF, 0xF7, 0x1F, 0x6B, 0x02, 0x48, 0x6C, 0xE8, +0x41, 0xE0, 0x04, 0x92, 0x6C, 0xE8, 0x43, 0xE8, +0xD5, 0x61, 0x01, 0x69, 0x2B, 0xE9, 0x51, 0x67, +0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xED, 0x80, 0x18, +0x1B, 0x13, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF1, 0x6C, 0x9B, +0xFF, 0x6A, 0x25, 0x67, 0x60, 0xA3, 0xFF, 0xF7, +0x1F, 0x68, 0x4C, 0xE9, 0x6C, 0xEA, 0x8C, 0xE8, +0x04, 0xD2, 0x00, 0x18, 0xB5, 0xD2, 0x0F, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, +0x00, 0x6C, 0xFF, 0x6D, 0x49, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, +0x40, 0xEA, 0x01, 0x72, 0x09, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xA0, 0xF2, 0x54, 0x9A, 0x90, 0x67, +0x01, 0x6D, 0xD1, 0x67, 0x03, 0x6F, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF3, 0x6C, 0x9A, +0xFF, 0x6C, 0x08, 0x6D, 0x40, 0xA3, 0x4A, 0x6E, +0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x04, 0x95, 0xA0, 0xF2, +0x50, 0x9A, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x18, 0x7A, 0xE1, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, +0x00, 0x6D, 0xC5, 0x67, 0xFF, 0x6C, 0x40, 0xEA, +0x01, 0x6C, 0x0C, 0x6D, 0x00, 0x18, 0xF3, 0xC4, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0xA0, 0xF2, 0x50, 0x9A, 0xFF, 0x6C, 0xA4, 0x67, +0x2F, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF4, 0x5C, 0x9A, 0x40, 0xEA, 0x00, 0x18, +0x90, 0xE1, 0x01, 0x6C, 0x08, 0x6D, 0x00, 0x18, +0xF3, 0xC4, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0xFF, 0x6A, 0x8C, 0xEA, +0x12, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0x06, 0xF7, +0x84, 0xA2, 0x30, 0xF0, 0x20, 0x6D, 0x30, 0xF0, +0x20, 0x6E, 0x30, 0xF0, 0x20, 0x6F, 0x4B, 0xF7, +0x00, 0x4D, 0x4B, 0xF7, 0x01, 0x4E, 0x4B, 0xF7, +0x02, 0x4F, 0x80, 0x18, 0x58, 0x03, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xF5, 0x63, 0x15, 0x62, +0x14, 0xD1, 0x13, 0xD0, 0x1A, 0x92, 0x16, 0xD4, +0x17, 0xD5, 0x10, 0xD2, 0x10, 0x93, 0xFF, 0x6A, +0x18, 0xD6, 0x4C, 0xEB, 0x10, 0xD3, 0x30, 0xF0, +0x20, 0x6B, 0x42, 0xF4, 0x8C, 0x9B, 0x42, 0xF4, +0x0C, 0x4B, 0x62, 0xAB, 0x06, 0xD4, 0x9D, 0x67, +0x6E, 0xCC, 0x00, 0x6B, 0x0A, 0xD3, 0x0D, 0xD3, +0x0B, 0xD3, 0x0C, 0xD3, 0x01, 0x6B, 0x6B, 0xEB, +0x20, 0xF0, 0x68, 0xC4, 0x02, 0x6B, 0x20, 0xF0, +0x69, 0xC4, 0x05, 0x6B, 0x6B, 0xEB, 0x20, 0xF0, +0x77, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF4, +0x84, 0x9B, 0x42, 0xF4, 0x04, 0x4B, 0x64, 0xA3, +0xBD, 0x67, 0x04, 0xD4, 0x74, 0xC5, 0x30, 0xF0, +0x20, 0x6B, 0x22, 0xF4, 0x9C, 0x9B, 0x22, 0xF4, +0x1C, 0x4B, 0x4C, 0xEF, 0x08, 0xD4, 0x82, 0xAB, +0x66, 0xA3, 0x0F, 0xD7, 0x92, 0xCD, 0x20, 0xF0, +0x66, 0xC5, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF1, +0x6C, 0x9B, 0x60, 0xA3, 0x6C, 0xEA, 0x11, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x54, 0x9A, +0x02, 0xF0, 0x00, 0x6B, 0x40, 0x9A, 0x6C, 0xEA, +0x1C, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, +0x50, 0x9A, 0x00, 0x6C, 0xFF, 0x6D, 0x59, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, +0x5C, 0x9A, 0x00, 0x68, 0x40, 0xEA, 0x01, 0x72, +0x19, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xA0, 0xF2, 0x54, 0x9A, 0x4B, 0xF7, +0x82, 0xA3, 0x01, 0x6D, 0x18, 0x6E, 0xF0, 0x67, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0xA0, 0xF2, 0x54, 0x9A, 0x4B, 0xF7, +0x82, 0xA3, 0x01, 0x6D, 0x18, 0x6E, 0x00, 0x6F, +0x40, 0xEA, 0x02, 0x67, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x50, 0x9A, 0xFF, 0x6F, 0x49, 0xE0, +0x80, 0xA2, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, +0x4C, 0x9A, 0xEC, 0xEC, 0x49, 0xE0, 0xA0, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x58, 0x9A, +0xEC, 0xED, 0x49, 0xE0, 0xC0, 0xA2, 0xEC, 0xEE, +0x80, 0x18, 0xC3, 0x06, 0x10, 0x95, 0x22, 0x67, +0x87, 0x40, 0x0E, 0xD2, 0x68, 0x49, 0xFF, 0x6A, +0x29, 0x4C, 0x4C, 0xE9, 0x80, 0x18, 0x79, 0x0D, +0x0F, 0x92, 0x18, 0x93, 0x03, 0x4A, 0x4C, 0x32, +0x49, 0xE3, 0x42, 0xA2, 0x0C, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF2, +0x44, 0x9A, 0x43, 0xF2, 0x9C, 0x9C, 0x17, 0x93, +0x49, 0xE0, 0x91, 0xE0, 0x0F, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF2, 0x64, 0x9B, 0x06, 0x02, +0x00, 0xF0, 0x1E, 0x04, 0x6D, 0xE0, 0xA0, 0xA2, +0x01, 0x4A, 0x8A, 0xEA, 0xA0, 0xC3, 0x01, 0x4B, +0xFA, 0x61, 0x06, 0x10, 0xA0, 0xA3, 0x01, 0x4B, +0xA0, 0xC2, 0x01, 0x4A, 0x8A, 0xEA, 0xFA, 0x61, +0x18, 0x94, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, +0x48, 0x9A, 0x75, 0xA4, 0x49, 0xE0, 0x29, 0xE2, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, +0x4C, 0x9A, 0x76, 0xA4, 0x49, 0xE0, 0x29, 0xE2, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, +0x40, 0x9A, 0x01, 0x6B, 0x49, 0xE0, 0x29, 0xE2, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, +0x44, 0x9A, 0x79, 0xA4, 0x49, 0xE0, 0x29, 0xE2, +0x60, 0xC2, 0x0F, 0x92, 0x03, 0x4A, 0x4C, 0x32, +0x49, 0xE4, 0xA7, 0xA2, 0x66, 0xA2, 0xE8, 0xA2, +0x44, 0xA2, 0xFD, 0x65, 0x56, 0x2A, 0x0F, 0x96, +0xCC, 0x32, 0x49, 0xE4, 0x5D, 0xA2, 0x01, 0x72, +0x02, 0x61, 0x00, 0x6C, 0x1A, 0x10, 0x1C, 0x72, +0x4C, 0x61, 0xFB, 0x17, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF2, 0xC8, 0x9A, 0x85, 0xF1, 0x44, 0x9D, +0x30, 0xF0, 0x20, 0x6D, 0x83, 0xF1, 0xA8, 0x9D, +0xD9, 0xE0, 0x39, 0xE6, 0x49, 0xE5, 0x89, 0xE2, +0xA0, 0xA2, 0xFF, 0x6A, 0x99, 0xE6, 0xAC, 0xEA, +0x40, 0xC6, 0x01, 0x4C, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xEC, 0x1C, 0x6D, 0xB8, 0xEF, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x12, 0xED, +0x55, 0xE5, 0x85, 0xF1, 0x48, 0xAD, 0x43, 0xEC, +0xDD, 0x61, 0xFF, 0xF7, 0x1F, 0x6C, 0x0C, 0x4A, +0x8C, 0xEA, 0x9D, 0x67, 0x20, 0xF0, 0xA0, 0xA4, +0x00, 0x6C, 0x02, 0x4D, 0x13, 0x10, 0x30, 0xF0, +0x20, 0x6E, 0x83, 0xF1, 0xC8, 0x9E, 0xD9, 0xE2, +0x19, 0xE6, 0x39, 0xE6, 0x99, 0xE6, 0x10, 0xD6, +0xDD, 0x67, 0x99, 0xE6, 0x20, 0xF0, 0xE0, 0xA6, +0x10, 0x96, 0x01, 0x4C, 0xE0, 0xC6, 0xFF, 0xF7, +0x1F, 0x6E, 0xCC, 0xEC, 0xA2, 0xEC, 0xEB, 0x61, +0xFD, 0x67, 0x20, 0xF0, 0x80, 0xA7, 0x89, 0xE2, +0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEA, 0x02, 0x4A, +0x76, 0x10, 0xFF, 0x73, 0x00, 0x6C, 0x0C, 0x6A, +0x17, 0x61, 0x4B, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF2, 0xC8, 0x9A, 0x40, 0x9D, 0x30, 0xF0, +0x20, 0x6D, 0x83, 0xF1, 0xA8, 0x9D, 0xD9, 0xE0, +0x39, 0xE6, 0x49, 0xE5, 0x89, 0xE2, 0xA0, 0xA2, +0xFF, 0x6A, 0x99, 0xE6, 0xAC, 0xEA, 0x40, 0xC6, +0x01, 0x4C, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEC, +0x30, 0xF0, 0x20, 0x6A, 0x50, 0xF5, 0xA2, 0x43, +0xC6, 0xF5, 0x10, 0x4A, 0xAC, 0x35, 0x55, 0xE5, +0x42, 0xAD, 0x43, 0xEC, 0xDF, 0x61, 0xFF, 0xF7, +0x1F, 0x6C, 0x0C, 0x4A, 0x8C, 0xEA, 0x0F, 0x94, +0x18, 0x95, 0x03, 0x4C, 0x8C, 0x34, 0x91, 0xE5, +0x83, 0xA4, 0x1F, 0x24, 0xDD, 0x67, 0xB0, 0xA6, +0x00, 0x6C, 0x01, 0x4D, 0x10, 0x10, 0x30, 0xF0, +0x20, 0x6E, 0x83, 0xF1, 0xC8, 0x9E, 0xFD, 0x67, +0x9D, 0xE7, 0xD9, 0xE2, 0x19, 0xE6, 0xF0, 0xA7, +0x39, 0xE6, 0x99, 0xE6, 0xE0, 0xC6, 0x01, 0x4C, +0xFF, 0xF7, 0x1F, 0x6E, 0xCC, 0xEC, 0xA2, 0xEC, +0xEE, 0x61, 0xBD, 0x67, 0x90, 0xA5, 0x89, 0xE2, +0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEA, 0x01, 0x4A, +0x8C, 0xEA, 0x00, 0x6C, 0x14, 0x10, 0x30, 0xF0, +0x20, 0x6E, 0x83, 0xF1, 0xE8, 0x9E, 0x65, 0xF1, +0xB4, 0x9D, 0xF9, 0xE0, 0xB5, 0xE7, 0x95, 0xE5, +0xE0, 0xA5, 0x39, 0xE6, 0x59, 0xE6, 0xFF, 0x6D, +0x99, 0xE6, 0xEC, 0xED, 0xA0, 0xC6, 0x01, 0x4C, +0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEC, 0x1C, 0x6D, +0xFF, 0x67, 0xB8, 0xEF, 0x30, 0xF0, 0x20, 0x6E, +0xC6, 0xF5, 0x10, 0x4E, 0x12, 0xED, 0xD5, 0xE5, +0x65, 0xF1, 0xD8, 0xAD, 0xC3, 0xEC, 0xDF, 0x61, +0xC9, 0xE2, 0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEA, +0x0F, 0x94, 0x18, 0x95, 0x03, 0x4C, 0x8C, 0x34, +0x91, 0xE5, 0x84, 0xA4, 0x25, 0x2C, 0x0F, 0x96, +0xCC, 0x34, 0x91, 0xE5, 0x9D, 0xA4, 0x01, 0x74, +0x00, 0x6C, 0x1E, 0x61, 0x14, 0x10, 0x30, 0xF0, +0x20, 0x6D, 0x83, 0xF1, 0xC8, 0x9D, 0xE5, 0xF2, +0x70, 0x9B, 0xD5, 0xE0, 0x6D, 0xE6, 0x8D, 0xE3, +0xC0, 0xA3, 0x35, 0xE5, 0x55, 0xE5, 0xFF, 0x6B, +0x95, 0xE5, 0xCC, 0xEB, 0x60, 0xC5, 0x01, 0x4C, +0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEC, 0x30, 0xF0, +0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, 0xE5, 0xF2, +0xB4, 0xAB, 0xA3, 0xEC, 0xE4, 0x61, 0x2B, 0x10, +0x0F, 0x94, 0x18, 0x97, 0x03, 0x4C, 0x8C, 0x34, +0x91, 0xE7, 0x84, 0xA4, 0x26, 0x2C, 0x0F, 0x95, +0xAC, 0x34, 0x91, 0xE7, 0x9D, 0xA4, 0x1C, 0x74, +0x00, 0x6C, 0x1F, 0x61, 0x14, 0x10, 0x30, 0xF0, +0x20, 0x6D, 0x83, 0xF1, 0xC8, 0x9D, 0xE5, 0xF2, +0x78, 0x9B, 0xD5, 0xE0, 0x6D, 0xE6, 0x8D, 0xE3, +0xC0, 0xA3, 0x35, 0xE5, 0x55, 0xE5, 0xFF, 0x6B, +0x95, 0xE5, 0xCC, 0xEB, 0x60, 0xC5, 0x01, 0x4C, +0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEC, 0x30, 0xF0, +0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, 0xE5, 0xF2, +0xBC, 0xAB, 0xA3, 0xEC, 0xE4, 0x61, 0xA9, 0xE2, +0x9C, 0x10, 0x0F, 0x94, 0x18, 0x96, 0x03, 0x4C, +0x8C, 0x34, 0x91, 0xE6, 0x84, 0xA4, 0x5C, 0x2C, +0x0F, 0x97, 0xEC, 0x34, 0x91, 0xE6, 0x9D, 0xA4, +0x21, 0x74, 0x00, 0x6C, 0x55, 0x61, 0x14, 0x10, +0x30, 0xF0, 0x20, 0x6D, 0x65, 0xF1, 0xDC, 0x9E, +0x83, 0xF1, 0xA8, 0x9D, 0xBD, 0xE0, 0xD5, 0xE5, +0x95, 0xE5, 0xC0, 0xA5, 0x3D, 0xE7, 0x5D, 0xE7, +0xFF, 0x6D, 0x9D, 0xE7, 0xCC, 0xED, 0xA0, 0xC7, +0x01, 0x4C, 0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEC, +0x1C, 0x6E, 0xFF, 0x67, 0xD8, 0xEF, 0x30, 0xF0, +0x20, 0x6D, 0xC6, 0xF5, 0x10, 0x4D, 0x12, 0xEE, +0xB9, 0xE6, 0x85, 0xF1, 0xE0, 0xAE, 0xE3, 0xEC, +0xDF, 0x61, 0xE9, 0xE2, 0xFF, 0xF7, 0x1F, 0x6C, +0xFF, 0x73, 0x8C, 0xEA, 0xC0, 0xF0, 0x06, 0x60, +0x0F, 0x94, 0x18, 0x97, 0x03, 0x4C, 0x8C, 0x34, +0x91, 0xE7, 0x83, 0xA4, 0x11, 0x24, 0x40, 0xF5, +0x12, 0x4B, 0x30, 0xF0, 0x20, 0x6C, 0x6C, 0x33, +0xAD, 0xE3, 0x63, 0xF2, 0x8C, 0x9C, 0x64, 0xA3, +0x65, 0xF1, 0xB8, 0xA6, 0x91, 0xE0, 0x31, 0xE4, +0xAD, 0xE3, 0x51, 0xE4, 0x0A, 0x4B, 0x10, 0x10, +0x40, 0xF5, 0x12, 0x4B, 0x30, 0xF0, 0x20, 0x6C, +0x6C, 0x33, 0xAD, 0xE3, 0x63, 0xF2, 0x8C, 0x9C, +0x64, 0xA3, 0x65, 0xF1, 0xB8, 0xA6, 0x91, 0xE0, +0x31, 0xE4, 0xAD, 0xE3, 0x51, 0xE4, 0x05, 0x4B, +0xFF, 0x6D, 0xAC, 0xEB, 0x60, 0xC4, 0x9A, 0x10, +0x0F, 0x94, 0x18, 0x95, 0x03, 0x4C, 0x8C, 0x34, +0x91, 0xE5, 0x84, 0xA4, 0x36, 0x2C, 0x0F, 0x96, +0xCC, 0x34, 0x91, 0xE5, 0x9D, 0xA4, 0x10, 0x74, +0x30, 0x61, 0x1C, 0x6C, 0xBF, 0x67, 0x98, 0xED, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, +0x12, 0xEC, 0x6D, 0xE4, 0x85, 0xF1, 0xEC, 0xA3, +0x00, 0x6B, 0x13, 0x10, 0x30, 0xF0, 0x20, 0x6C, +0xA1, 0x9D, 0x83, 0xF1, 0x88, 0x9C, 0x99, 0xE0, +0xB1, 0xE4, 0x71, 0xE4, 0xA0, 0xA4, 0x39, 0xE6, +0x59, 0xE6, 0xFF, 0x6C, 0x79, 0xE6, 0xAC, 0xEC, +0x80, 0xC6, 0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6C, +0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0x50, 0xF5, +0xA5, 0x47, 0xC6, 0xF5, 0x10, 0x4C, 0xAC, 0x35, +0x95, 0xE5, 0x84, 0xAD, 0x83, 0xEB, 0xE2, 0x61, +0x89, 0xE2, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, +0x5D, 0x10, 0x0F, 0x94, 0x18, 0x96, 0x03, 0x4C, +0x8C, 0x34, 0x91, 0xE6, 0x84, 0xA4, 0x56, 0x2C, +0x0F, 0x97, 0xEC, 0x34, 0x91, 0xE6, 0x9D, 0xA4, +0x0C, 0x74, 0x00, 0x6C, 0x4F, 0x61, 0x14, 0x10, +0x30, 0xF0, 0x20, 0x6E, 0x83, 0xF1, 0xE8, 0x9E, +0x05, 0xF3, 0xA0, 0x9D, 0xF9, 0xE0, 0xB5, 0xE7, +0x95, 0xE5, 0xE0, 0xA5, 0x39, 0xE6, 0x59, 0xE6, +0xFF, 0x6D, 0x99, 0xE6, 0xEC, 0xED, 0xA0, 0xC6, +0x01, 0x4C, 0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEC, +0x30, 0xF0, 0x20, 0x6D, 0xC6, 0xF5, 0x10, 0x4D, +0x05, 0xF3, 0xC4, 0xAD, 0xC3, 0xEC, 0xE4, 0x61, +0xC9, 0xE2, 0xFF, 0xF7, 0x1F, 0x6C, 0xFF, 0x73, +0x8C, 0xEA, 0x23, 0x60, 0x0F, 0x94, 0x18, 0x96, +0x03, 0x4C, 0x8C, 0x34, 0x91, 0xE6, 0x83, 0xA4, +0x0E, 0x24, 0x30, 0xF0, 0x20, 0x6C, 0x40, 0xF5, +0x12, 0x4B, 0x63, 0xF2, 0x8C, 0x9C, 0x6C, 0x33, +0xAD, 0xE3, 0x64, 0xA3, 0x91, 0xE0, 0x31, 0xE4, +0x51, 0xE4, 0x11, 0x4B, 0x79, 0x17, 0x30, 0xF0, +0x20, 0x6C, 0x40, 0xF5, 0x12, 0x4B, 0x63, 0xF2, +0x8C, 0x9C, 0x6C, 0x33, 0xAD, 0xE3, 0x64, 0xA3, +0x91, 0xE0, 0x31, 0xE4, 0x51, 0xE4, 0x0C, 0x4B, +0x6B, 0x17, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, +0x6C, 0x9B, 0x0C, 0x6C, 0x6D, 0xE0, 0x2D, 0xE3, +0x4D, 0xE3, 0x80, 0xC3, 0x18, 0x97, 0x79, 0xA7, +0x03, 0x73, 0x00, 0xF1, 0x0F, 0x61, 0x7F, 0xA7, +0x1C, 0x6D, 0x9E, 0xA7, 0xFB, 0x65, 0xDF, 0x67, +0xB8, 0xEE, 0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF5, +0x12, 0x4C, 0x0F, 0x96, 0xC6, 0xF5, 0x10, 0x4B, +0x8C, 0x34, 0x71, 0xE4, 0x03, 0x4E, 0xCC, 0x36, +0xD9, 0xE7, 0xC3, 0xA6, 0x12, 0xED, 0x75, 0xE5, +0x64, 0xA4, 0x65, 0xF1, 0x98, 0xA5, 0xFF, 0x6D, +0x8D, 0xE3, 0x87, 0x43, 0x0F, 0x4C, 0x05, 0x4B, +0xAC, 0xEC, 0xAC, 0xEB, 0x04, 0x26, 0x05, 0x4C, +0x05, 0x4B, 0xAC, 0xEC, 0xAC, 0xEB, 0x30, 0xF0, +0x20, 0x6D, 0x83, 0xF1, 0xA8, 0x9D, 0x40, 0x6E, +0xCB, 0xEE, 0xB5, 0xE0, 0x35, 0xE5, 0x55, 0xE5, +0xC0, 0xC5, 0x30, 0xF0, 0x20, 0x6D, 0x23, 0xF2, +0xAC, 0x9D, 0xB5, 0xE0, 0x35, 0xE5, 0x55, 0xE5, +0x80, 0xC5, 0x02, 0x4A, 0xFF, 0xF7, 0x1F, 0x6D, +0xAC, 0xEA, 0x10, 0xD3, 0x00, 0x6D, 0x14, 0x10, +0x30, 0xF0, 0x20, 0x6E, 0x65, 0xF1, 0xFC, 0x9F, +0x83, 0xF1, 0xC8, 0x9E, 0xCD, 0xE0, 0xF9, 0xE6, +0xB9, 0xE6, 0xE0, 0xA6, 0x2D, 0xE3, 0x4D, 0xE3, +0xFF, 0x6E, 0xAD, 0xE3, 0xEC, 0xEE, 0xC0, 0xC3, +0x01, 0x4D, 0xFF, 0xF7, 0x1F, 0x6E, 0xCC, 0xED, +0x1C, 0x6F, 0x7F, 0x67, 0xF8, 0xEB, 0x30, 0xF0, +0x20, 0x6E, 0xC6, 0xF5, 0x10, 0x4E, 0x12, 0xEF, +0xDD, 0xE7, 0x85, 0xF1, 0xC0, 0xAF, 0xC3, 0xED, +0xDF, 0x61, 0xC9, 0xE2, 0x30, 0xF0, 0x20, 0x6E, +0x63, 0xF2, 0xF0, 0x9E, 0xFF, 0xF7, 0x1F, 0x6D, +0xAC, 0xEA, 0xFD, 0xE0, 0x3D, 0xE7, 0x40, 0x6E, +0x5D, 0xE7, 0xCB, 0xEE, 0x10, 0x93, 0xC0, 0xC7, +0x30, 0xF0, 0x20, 0x6F, 0x63, 0xF2, 0xEC, 0x9F, +0xFD, 0xE0, 0x3D, 0xE7, 0x5D, 0xE7, 0x60, 0xC7, +0x30, 0xF0, 0x20, 0x6F, 0x83, 0xF1, 0xE8, 0x9F, +0xFD, 0xE0, 0x3D, 0xE7, 0x5D, 0xE7, 0xC0, 0xC7, +0x30, 0xF0, 0x20, 0x6E, 0x23, 0xF2, 0xCC, 0x9E, +0xD9, 0xE0, 0x39, 0xE6, 0x59, 0xE6, 0x02, 0x4A, +0x80, 0xC6, 0xAC, 0xEA, 0x00, 0x6C, 0x13, 0x10, +0x30, 0xF0, 0x20, 0x6E, 0x83, 0xF1, 0xE8, 0x9E, +0xA1, 0x9D, 0xF9, 0xE0, 0xB5, 0xE7, 0x95, 0xE5, +0xE0, 0xA5, 0x39, 0xE6, 0x59, 0xE6, 0xFF, 0x6D, +0x99, 0xE6, 0xEC, 0xED, 0xA0, 0xC6, 0x01, 0x4C, +0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEC, 0x1C, 0x6D, +0xFF, 0x67, 0xB8, 0xEF, 0x30, 0xF0, 0x20, 0x6E, +0xC6, 0xF5, 0x10, 0x4E, 0x12, 0xED, 0xD5, 0xE5, +0x85, 0xF1, 0xAC, 0xA5, 0x40, 0xF5, 0x15, 0x4D, +0xAC, 0x35, 0xD5, 0xE5, 0xC4, 0xAD, 0xC3, 0xEC, +0xDB, 0x61, 0xFF, 0xF7, 0x1F, 0x6C, 0xC9, 0xE2, +0x8C, 0xEA, 0x00, 0x6C, 0x14, 0x10, 0x30, 0xF0, +0x20, 0x6E, 0x83, 0xF1, 0xE8, 0x9E, 0x85, 0xF1, +0xA4, 0x9D, 0xF9, 0xE0, 0xB5, 0xE7, 0x95, 0xE5, +0xE0, 0xA5, 0x39, 0xE6, 0x59, 0xE6, 0xFF, 0x6D, +0x99, 0xE6, 0xEC, 0xED, 0xA0, 0xC6, 0x01, 0x4C, +0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEC, 0x1C, 0x6D, +0xFF, 0x67, 0xB8, 0xEF, 0x30, 0xF0, 0x20, 0x6E, +0xC6, 0xF5, 0x10, 0x4E, 0x12, 0xED, 0xD5, 0xE5, +0x85, 0xF1, 0xC8, 0xAD, 0xC3, 0xEC, 0xDF, 0x61, +0x30, 0xF0, 0x20, 0x6D, 0x83, 0xF1, 0xA8, 0x9D, +0xC9, 0xE2, 0xFF, 0xF7, 0x1F, 0x6C, 0xB5, 0xE0, +0x8C, 0xEA, 0x35, 0xE5, 0x40, 0x6E, 0x55, 0xE5, +0xCB, 0xEE, 0xC0, 0xC5, 0x30, 0xF0, 0x20, 0x6D, +0x23, 0xF2, 0xAC, 0x9D, 0xB5, 0xE0, 0x35, 0xE5, +0x55, 0xE5, 0x02, 0x4A, 0x60, 0xC5, 0x8C, 0xEA, +0x00, 0x6B, 0x14, 0x10, 0x30, 0xF0, 0x20, 0x6D, +0x83, 0xF1, 0xC8, 0x9D, 0xE5, 0xF2, 0x98, 0x9C, +0xD5, 0xE0, 0x91, 0xE6, 0x71, 0xE4, 0xC0, 0xA4, +0x35, 0xE5, 0x55, 0xE5, 0xFF, 0x6C, 0x75, 0xE5, +0xCC, 0xEC, 0x80, 0xC5, 0x01, 0x4B, 0xFF, 0xF7, +0x1F, 0x6C, 0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, +0xC6, 0xF5, 0x10, 0x4C, 0xE5, 0xF2, 0xBC, 0xAC, +0xA3, 0xEB, 0xE4, 0x61, 0xA9, 0xE2, 0xFF, 0xF7, +0x1F, 0x6B, 0x6C, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF2, 0xD4, 0x9B, 0x0E, 0x93, 0xFF, 0xF7, +0x1F, 0x6C, 0x08, 0x4A, 0x8C, 0xEA, 0xD9, 0xE0, +0x42, 0x35, 0x79, 0xE6, 0xA0, 0xC6, 0x30, 0xF0, +0x20, 0x6E, 0x63, 0xF2, 0xD8, 0x9E, 0x0E, 0x97, +0xFF, 0x6B, 0xD9, 0xE0, 0x4C, 0xEB, 0xF9, 0xE6, +0x60, 0xC6, 0x30, 0xF0, 0x20, 0x6E, 0x63, 0xF2, +0xDC, 0x9E, 0x28, 0x4A, 0x8C, 0xEA, 0xD9, 0xE0, +0xF9, 0xE6, 0xA0, 0xC6, 0x30, 0xF0, 0x20, 0x6D, +0x83, 0xF2, 0xA0, 0x9D, 0xB5, 0xE0, 0xF5, 0xE5, +0x60, 0xC5, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, +0x64, 0x9B, 0x11, 0x6D, 0x6D, 0xE0, 0xED, 0xE3, +0xA0, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF2, +0x68, 0x9B, 0x01, 0x6D, 0xAB, 0xED, 0x6D, 0xE0, +0xED, 0xE3, 0xA0, 0xC3, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF1, 0xA8, 0x9B, 0x67, 0x67, 0x08, 0x4B, +0x6D, 0xE2, 0x8C, 0xEB, 0xB5, 0xE0, 0x60, 0xCD, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, 0x90, 0x9B, +0x00, 0x6B, 0x91, 0xE0, 0xF1, 0xE4, 0x30, 0xF0, +0x20, 0x6D, 0xC6, 0xF5, 0x10, 0x4D, 0x75, 0xE5, +0xC5, 0xF0, 0xBE, 0xA5, 0xC8, 0x44, 0xF8, 0x4E, +0xA0, 0xC6, 0x0F, 0x95, 0x18, 0x96, 0x03, 0x4D, +0xAC, 0x35, 0xB5, 0xE6, 0xA2, 0xA5, 0x05, 0x25, +0xFD, 0x67, 0x75, 0xE7, 0x20, 0xF0, 0xA8, 0xA5, +0x03, 0x10, 0x16, 0x96, 0x75, 0xE6, 0xA0, 0xA5, +0x01, 0x4B, 0x10, 0x69, 0x6E, 0xE9, 0xA0, 0xC4, +0x01, 0x4C, 0xE1, 0x29, 0xD8, 0x4A, 0x10, 0xD2, +0x10, 0x97, 0xFF, 0xF7, 0x1F, 0x6A, 0x0E, 0x93, +0x4C, 0xEF, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, +0x4C, 0x9A, 0x10, 0xD7, 0xE2, 0x34, 0x49, 0xE0, +0x69, 0xE2, 0x20, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF2, 0x50, 0x9A, 0x49, 0xE0, 0x69, 0xE2, +0x20, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, +0x74, 0x9A, 0x0E, 0x95, 0xFF, 0x6A, 0x6D, 0xE0, +0xAD, 0xE3, 0x80, 0xC3, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF2, 0x78, 0x9B, 0xEC, 0xEA, 0x12, 0x6C, +0x6D, 0xE0, 0xAD, 0xE3, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF2, 0x5C, 0x9A, 0x11, 0x6B, +0x49, 0xE0, 0xA9, 0xE2, 0x20, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF2, 0x40, 0x9A, 0x49, 0xE0, +0xA9, 0xE2, 0x20, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF2, 0x44, 0x9A, 0x49, 0xE0, 0xA9, 0xE2, +0x20, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, +0x48, 0x9A, 0x49, 0xE0, 0xA9, 0xE2, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x74, 0x9A, +0x0E, 0x97, 0x30, 0xF0, 0x20, 0x6A, 0x4B, 0xF7, +0xC2, 0xA2, 0xA7, 0x40, 0x31, 0x4D, 0xF5, 0xE5, +0x40, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, +0x4C, 0x9A, 0x0E, 0x93, 0x49, 0xE0, 0x69, 0xE2, +0x60, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF2, 0x4C, 0x9A, 0x0E, 0x94, 0x49, 0xE0, +0x89, 0xE2, 0x20, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF2, 0x50, 0x9A, 0x49, 0xE0, 0x89, 0xE2, +0x20, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, +0x54, 0x9A, 0x49, 0xE0, 0x89, 0xE2, 0x20, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF2, 0x68, 0x9A, +0x00, 0x6A, 0x6D, 0xE0, 0x8D, 0xE3, 0x30, 0xF0, +0x20, 0x6C, 0xC6, 0xF5, 0x10, 0x4C, 0x51, 0xE4, +0xC5, 0xF0, 0x9E, 0xA4, 0xA8, 0x43, 0xF8, 0x4D, +0x80, 0xC5, 0x0F, 0x94, 0x18, 0x96, 0x03, 0x4C, +0x8C, 0x34, 0x91, 0xE6, 0x82, 0xA4, 0x05, 0x24, +0xFD, 0x67, 0x51, 0xE7, 0x20, 0xF0, 0x88, 0xA4, +0x03, 0x10, 0x16, 0x95, 0x51, 0xE5, 0x80, 0xA4, +0x01, 0x4A, 0x10, 0x72, 0x80, 0xC3, 0x01, 0x4B, +0xE2, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, +0x7C, 0x9A, 0x0E, 0x96, 0x10, 0x97, 0x6D, 0xE0, +0xCD, 0xE3, 0xE2, 0x34, 0x80, 0xC3, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF2, 0x60, 0x9B, 0xFF, 0x6A, +0xEC, 0xEA, 0x6D, 0xE0, 0xCD, 0xE3, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, 0x44, 0x9A, +0x11, 0x6B, 0x49, 0xE0, 0xC9, 0xE2, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF2, 0x48, 0x9A, +0x41, 0xE0, 0x01, 0x6A, 0x4B, 0xEA, 0xC1, 0xE0, +0x40, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0xE0, 0xF0, 0x7C, 0xA2, 0x02, 0x73, +0x05, 0x61, 0x00, 0xF1, 0x84, 0xA2, 0x0E, 0x95, +0x80, 0x18, 0x1D, 0x0A, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF2, 0x78, 0x9A, 0xFF, 0x6C, 0x80, 0x6D, +0x40, 0xA3, 0xAB, 0xED, 0x59, 0x6E, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0x11, 0x95, 0xA0, 0xF2, 0x50, 0x9A, +0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, 0x15, 0x97, +0x14, 0x91, 0x13, 0x90, 0x0B, 0x63, 0x00, 0xEF, +0xF5, 0x63, 0x15, 0x62, 0x14, 0xD1, 0x13, 0xD0, +0x1A, 0x92, 0x16, 0xD4, 0x17, 0xD5, 0x0F, 0xD2, +0x0F, 0x93, 0xFF, 0x6A, 0x18, 0xD6, 0x4C, 0xEB, +0x0F, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0x62, 0xF4, +0x88, 0x9B, 0x62, 0xF4, 0x08, 0x4B, 0x62, 0xAB, +0x07, 0xD4, 0x9D, 0x67, 0x70, 0xCC, 0x30, 0xF0, +0x20, 0x6B, 0x62, 0xF4, 0x64, 0x9B, 0xBD, 0x67, +0x4C, 0xEF, 0x04, 0xD3, 0x30, 0xF0, 0x20, 0x6B, +0x42, 0xF4, 0x9C, 0x9B, 0x42, 0xF4, 0x1C, 0x4B, +0x64, 0xA3, 0x05, 0xD4, 0x0D, 0xD7, 0x78, 0xC5, +0x30, 0xF0, 0x20, 0x6B, 0x42, 0xF4, 0x94, 0x9B, +0x42, 0xF4, 0x14, 0x4B, 0x09, 0xD4, 0x82, 0xAB, +0x66, 0xA3, 0x94, 0xCD, 0x20, 0xF0, 0x6A, 0xC5, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF1, 0x6C, 0x9B, +0x60, 0xA3, 0x6C, 0xEA, 0x10, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF2, 0x54, 0x9A, 0x02, 0xF0, +0x00, 0x6B, 0x40, 0x9A, 0x6C, 0xEA, 0x1C, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF2, 0x50, 0x9A, +0x00, 0x6C, 0xFF, 0x6D, 0x57, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x20, 0xF4, 0x5C, 0x9A, +0x00, 0x68, 0x40, 0xEA, 0x01, 0x72, 0x19, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF2, 0x54, 0x9A, 0x4B, 0xF7, 0x81, 0xA3, +0x01, 0x6D, 0x18, 0x6E, 0xF0, 0x67, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF2, 0x54, 0x9A, 0x4B, 0xF7, 0x81, 0xA3, +0x01, 0x6D, 0x18, 0x6E, 0x00, 0x6F, 0x40, 0xEA, +0x02, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, +0x50, 0x9A, 0xFF, 0x6F, 0x49, 0xE0, 0x80, 0xA2, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF2, 0x4C, 0x9A, +0xEC, 0xEC, 0x49, 0xE0, 0xA0, 0xA2, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF2, 0x58, 0x9A, 0xEC, 0xED, +0x49, 0xE0, 0xC0, 0xA2, 0xEC, 0xEE, 0x80, 0x18, +0xC3, 0x06, 0x0F, 0x95, 0x22, 0x67, 0x87, 0x40, +0x0E, 0xD2, 0x54, 0x49, 0xFF, 0x6A, 0x29, 0x4C, +0x4C, 0xE9, 0x80, 0x18, 0x79, 0x0D, 0x0D, 0x92, +0x18, 0x93, 0x03, 0x4A, 0x4C, 0x32, 0x49, 0xE3, +0x42, 0xA2, 0x0C, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF2, 0x44, 0x9A, +0x43, 0xF2, 0x9C, 0x9C, 0x17, 0x93, 0x49, 0xE0, +0x91, 0xE0, 0x1E, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF2, 0x64, 0x9B, 0x07, 0x02, 0x20, 0xF0, +0x02, 0x04, 0x6D, 0xE0, 0xA0, 0xA2, 0x01, 0x4A, +0x8A, 0xEA, 0xA0, 0xC3, 0x01, 0x4B, 0xFA, 0x61, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF2, 0x70, 0x9B, +0x0E, 0x94, 0x04, 0x02, 0x6D, 0xE0, 0x8D, 0xE3, +0x05, 0x04, 0xA0, 0xA2, 0x01, 0x4A, 0x8A, 0xEA, +0xA0, 0xC3, 0x01, 0x4B, 0xFA, 0x61, 0x1A, 0x10, +0xA0, 0xA3, 0x01, 0x4B, 0xA0, 0xC2, 0x01, 0x4A, +0x8A, 0xEA, 0xFA, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6C, 0x43, 0xF2, 0x50, 0x9A, +0xA3, 0xF2, 0x9C, 0x9C, 0x0E, 0x95, 0x16, 0x93, +0x49, 0xE0, 0x91, 0xE0, 0xA9, 0xE2, 0xB1, 0xE4, +0xA0, 0xA3, 0x01, 0x4B, 0xA0, 0xC2, 0x01, 0x4A, +0x8A, 0xEA, 0xFA, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xA5, 0xF0, 0x6A, 0xAA, +0x01, 0x4B, 0xA5, 0xF0, 0x6A, 0xCA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF2, 0x7C, 0x9B, 0x0E, 0x96, +0xA5, 0xF0, 0x8A, 0xAA, 0x6D, 0xE0, 0xCD, 0xE3, +0x82, 0x34, 0x80, 0xC3, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF2, 0x60, 0x9B, 0xA5, 0xF0, 0x8A, 0xA2, +0x6D, 0xE0, 0xCD, 0xE3, 0x80, 0xC3, 0xE0, 0xF0, +0x7C, 0xA2, 0x02, 0x73, 0x05, 0x61, 0x00, 0xF1, +0x84, 0xA2, 0x0E, 0x95, 0x80, 0x18, 0x1D, 0x0A, +0x18, 0x97, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, +0x48, 0x9A, 0x75, 0xA7, 0x49, 0xE0, 0x29, 0xE2, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF2, +0x4C, 0x9A, 0x76, 0xA7, 0x49, 0xE0, 0x29, 0xE2, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, +0x40, 0x9A, 0x01, 0x6B, 0x49, 0xE0, 0x29, 0xE2, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF2, +0x44, 0x9A, 0x79, 0xA7, 0x49, 0xE0, 0x29, 0xE2, +0x60, 0xC2, 0x0D, 0x92, 0x03, 0x4A, 0x4C, 0x32, +0x49, 0xE7, 0x67, 0xA2, 0xE6, 0xA2, 0xC8, 0xA2, +0x44, 0xA2, 0xFB, 0x65, 0x57, 0x2A, 0x0D, 0x94, +0x18, 0x95, 0x8C, 0x32, 0x49, 0xE5, 0x5D, 0xA2, +0x01, 0x72, 0x02, 0x61, 0x00, 0x6B, 0x1A, 0x10, +0x1C, 0x72, 0x4C, 0x61, 0xFB, 0x17, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF2, 0xA8, 0x9A, 0x85, 0xF1, +0x44, 0x9C, 0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF1, +0x88, 0x9C, 0xB5, 0xE0, 0x35, 0xE5, 0x49, 0xE4, +0x69, 0xE2, 0x80, 0xA2, 0xFF, 0x6A, 0x75, 0xE5, +0x8C, 0xEA, 0x40, 0xC5, 0x01, 0x4B, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xEB, 0x1C, 0x6C, 0x98, 0xEE, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x12, 0xEC, 0x51, 0xE4, 0x85, 0xF1, 0x48, 0xAC, +0x43, 0xEB, 0xDD, 0x61, 0xFF, 0xF7, 0x1F, 0x6B, +0x0C, 0x4A, 0x6C, 0xEA, 0x7D, 0x67, 0x20, 0xF0, +0x84, 0xA3, 0x00, 0x6B, 0x02, 0x4C, 0x13, 0x10, +0x30, 0xF0, 0x20, 0x6D, 0x83, 0xF1, 0xA8, 0x9D, +0xB5, 0xE2, 0x15, 0xE5, 0x35, 0xE5, 0x75, 0xE5, +0x0C, 0xD5, 0xBD, 0x67, 0x75, 0xE5, 0x20, 0xF0, +0xC4, 0xA5, 0x0C, 0x95, 0x01, 0x4B, 0xC0, 0xC5, +0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEB, 0x82, 0xEB, +0xEB, 0x61, 0xDD, 0x67, 0x20, 0xF0, 0x64, 0xA6, +0x69, 0xE2, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, +0x02, 0x4A, 0x76, 0x10, 0xFF, 0x77, 0x00, 0x6B, +0x0C, 0x6A, 0x17, 0x61, 0x4B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF2, 0xA8, 0x9A, 0x40, 0x9C, +0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF1, 0x88, 0x9C, +0xB5, 0xE0, 0x35, 0xE5, 0x49, 0xE4, 0x69, 0xE2, +0x80, 0xA2, 0xFF, 0x6A, 0x75, 0xE5, 0x8C, 0xEA, +0x40, 0xC5, 0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x50, 0xF5, +0x82, 0x47, 0xC6, 0xF5, 0x10, 0x4A, 0x8C, 0x34, +0x51, 0xE4, 0x42, 0xAC, 0x43, 0xEB, 0xDF, 0x61, +0xFF, 0xF7, 0x1F, 0x6B, 0x0C, 0x4A, 0x6C, 0xEA, +0x0D, 0x93, 0x18, 0x94, 0x03, 0x4B, 0x6C, 0x33, +0x6D, 0xE4, 0x63, 0xA3, 0x1F, 0x23, 0xBD, 0x67, +0x94, 0xA5, 0x00, 0x6B, 0x01, 0x4C, 0x10, 0x10, +0x30, 0xF0, 0x20, 0x6D, 0x83, 0xF1, 0xA8, 0x9D, +0xDD, 0x67, 0x79, 0xE6, 0xB5, 0xE2, 0x15, 0xE5, +0xD4, 0xA6, 0x35, 0xE5, 0x75, 0xE5, 0xC0, 0xC5, +0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEB, +0x82, 0xEB, 0xEE, 0x61, 0x9D, 0x67, 0x74, 0xA4, +0x69, 0xE2, 0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, +0x01, 0x4A, 0x6C, 0xEA, 0x00, 0x6B, 0x14, 0x10, +0x30, 0xF0, 0x20, 0x6D, 0x83, 0xF1, 0xC8, 0x9D, +0x65, 0xF1, 0x94, 0x9C, 0xD5, 0xE0, 0x91, 0xE6, +0x71, 0xE4, 0xC0, 0xA4, 0x35, 0xE5, 0x55, 0xE5, +0xFF, 0x6C, 0x75, 0xE5, 0xCC, 0xEC, 0x80, 0xC5, +0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEB, +0x1C, 0x6C, 0xDF, 0x67, 0x98, 0xEE, 0x30, 0xF0, +0x20, 0x6D, 0xC6, 0xF5, 0x10, 0x4D, 0x12, 0xEC, +0xB1, 0xE4, 0x65, 0xF1, 0xB8, 0xAC, 0xA3, 0xEB, +0xDF, 0x61, 0xA9, 0xE2, 0xFF, 0xF7, 0x1F, 0x6B, +0x6C, 0xEA, 0x0D, 0x93, 0x18, 0x94, 0x03, 0x4B, +0x6C, 0x33, 0x6D, 0xE4, 0x64, 0xA3, 0x25, 0x2B, +0x0D, 0x95, 0xAC, 0x33, 0x6D, 0xE4, 0x7D, 0xA3, +0x01, 0x73, 0x00, 0x6B, 0x1E, 0x61, 0x14, 0x10, +0x30, 0xF0, 0x20, 0x6D, 0x83, 0xF1, 0xC8, 0x9D, +0xE5, 0xF2, 0x90, 0x9C, 0xD5, 0xE0, 0x91, 0xE6, +0x71, 0xE4, 0xC0, 0xA4, 0x35, 0xE5, 0x55, 0xE5, +0xFF, 0x6C, 0x75, 0xE5, 0xCC, 0xEC, 0x80, 0xC5, +0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEB, +0x30, 0xF0, 0x20, 0x6C, 0xC6, 0xF5, 0x10, 0x4C, +0xE5, 0xF2, 0xB4, 0xAC, 0xA3, 0xEB, 0xE4, 0x61, +0xC6, 0x10, 0x0D, 0x93, 0x18, 0x96, 0x03, 0x4B, +0x6C, 0x33, 0x6D, 0xE6, 0x64, 0xA3, 0x25, 0x2B, +0x0D, 0x94, 0x8C, 0x33, 0x6D, 0xE6, 0x7D, 0xA3, +0x1C, 0x73, 0x00, 0x6B, 0x1E, 0x61, 0x14, 0x10, +0x30, 0xF0, 0x20, 0x6D, 0x83, 0xF1, 0xC8, 0x9D, +0xE5, 0xF2, 0x98, 0x9C, 0xD5, 0xE0, 0x91, 0xE6, +0x71, 0xE4, 0xC0, 0xA4, 0x35, 0xE5, 0x55, 0xE5, +0xFF, 0x6C, 0x75, 0xE5, 0xCC, 0xEC, 0x80, 0xC5, +0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEB, +0x30, 0xF0, 0x20, 0x6C, 0xC6, 0xF5, 0x10, 0x4C, +0xE5, 0xF2, 0xBC, 0xAC, 0xA3, 0xEB, 0xE4, 0x61, +0x9A, 0x10, 0x0D, 0x93, 0x18, 0x95, 0x03, 0x4B, +0x6C, 0x33, 0x6D, 0xE5, 0x64, 0xA3, 0x5B, 0x2B, +0x0D, 0x96, 0xCC, 0x33, 0x6D, 0xE5, 0x7D, 0xA3, +0x21, 0x73, 0x00, 0x6B, 0x54, 0x61, 0x14, 0x10, +0x30, 0xF0, 0x20, 0x6C, 0x65, 0xF1, 0xBC, 0x9D, +0x83, 0xF1, 0x88, 0x9C, 0x99, 0xE0, 0xB1, 0xE4, +0x71, 0xE4, 0xA0, 0xA4, 0x39, 0xE6, 0x59, 0xE6, +0xFF, 0x6C, 0x79, 0xE6, 0xAC, 0xEC, 0x80, 0xC6, +0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEB, +0x1C, 0x6D, 0xDF, 0x67, 0xB8, 0xEE, 0x30, 0xF0, +0x20, 0x6C, 0xC6, 0xF5, 0x10, 0x4C, 0x12, 0xED, +0x95, 0xE5, 0x85, 0xF1, 0xC0, 0xAD, 0xC3, 0xEB, +0xDF, 0x61, 0xC9, 0xE2, 0xFF, 0xF7, 0x1F, 0x6B, +0xFF, 0x77, 0x6C, 0xEA, 0xC0, 0xF0, 0x05, 0x60, +0x0D, 0x93, 0x18, 0x96, 0x03, 0x4B, 0x6C, 0x33, +0x6D, 0xE6, 0x63, 0xA3, 0x11, 0x23, 0x40, 0xF5, +0x12, 0x4F, 0x30, 0xF0, 0x20, 0x6B, 0xEC, 0x37, +0x63, 0xF2, 0x6C, 0x9B, 0x91, 0xE7, 0x84, 0xA4, +0x65, 0xF1, 0xB8, 0xA5, 0x6D, 0xE0, 0x2D, 0xE3, +0xB1, 0xE4, 0x4D, 0xE3, 0x0A, 0x4C, 0x10, 0x10, +0x40, 0xF5, 0x12, 0x4F, 0x30, 0xF0, 0x20, 0x6B, +0xEC, 0x37, 0x63, 0xF2, 0x6C, 0x9B, 0x91, 0xE7, +0x84, 0xA4, 0x65, 0xF1, 0xB8, 0xA5, 0x6D, 0xE0, +0x2D, 0xE3, 0xB1, 0xE4, 0x4D, 0xE3, 0x05, 0x4C, +0xFF, 0x6D, 0xAC, 0xEC, 0x99, 0x10, 0x0D, 0x93, +0x18, 0x94, 0x03, 0x4B, 0x6C, 0x33, 0x6D, 0xE4, +0x64, 0xA3, 0x36, 0x2B, 0x0D, 0x95, 0xAC, 0x33, +0x6D, 0xE4, 0x7D, 0xA3, 0x10, 0x73, 0x30, 0x61, +0x1C, 0x6C, 0xBF, 0x67, 0x98, 0xED, 0x30, 0xF0, +0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, 0x12, 0xEC, +0x6D, 0xE4, 0x85, 0xF1, 0xEC, 0xA3, 0x00, 0x6B, +0x13, 0x10, 0x30, 0xF0, 0x20, 0x6D, 0x83, 0xF1, +0xC8, 0x9D, 0x81, 0x9C, 0xD5, 0xE0, 0x91, 0xE6, +0x71, 0xE4, 0xC0, 0xA4, 0x35, 0xE5, 0x55, 0xE5, +0xFF, 0x6C, 0x75, 0xE5, 0xCC, 0xEC, 0x80, 0xC5, +0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEB, +0x30, 0xF0, 0x20, 0x6D, 0x50, 0xF5, 0x85, 0x47, +0xC6, 0xF5, 0x10, 0x4D, 0x8C, 0x34, 0xB1, 0xE4, +0xA4, 0xAC, 0xA3, 0xEB, 0xE2, 0x61, 0xA9, 0xE2, +0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEA, 0x5D, 0x10, +0x0D, 0x93, 0x18, 0x96, 0x03, 0x4B, 0x6C, 0x33, +0x6D, 0xE6, 0x64, 0xA3, 0x56, 0x2B, 0x0D, 0x94, +0x8C, 0x33, 0x6D, 0xE6, 0x7D, 0xA3, 0x0C, 0x73, +0x00, 0x6B, 0x4F, 0x61, 0x14, 0x10, 0x30, 0xF0, +0x20, 0x6D, 0x83, 0xF1, 0xC8, 0x9D, 0x05, 0xF3, +0x80, 0x9C, 0xD5, 0xE0, 0x91, 0xE6, 0x71, 0xE4, +0xC0, 0xA4, 0x35, 0xE5, 0x55, 0xE5, 0xFF, 0x6C, +0x75, 0xE5, 0xCC, 0xEC, 0x80, 0xC5, 0x01, 0x4B, +0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEB, 0x30, 0xF0, +0x20, 0x6C, 0xC6, 0xF5, 0x10, 0x4C, 0x05, 0xF3, +0xA4, 0xAC, 0xA3, 0xEB, 0xE4, 0x61, 0xA9, 0xE2, +0xFF, 0xF7, 0x1F, 0x6B, 0xFF, 0x77, 0x6C, 0xEA, +0x23, 0x60, 0x0D, 0x93, 0x18, 0x95, 0x03, 0x4B, +0x6C, 0x33, 0x6D, 0xE5, 0x63, 0xA3, 0x0E, 0x23, +0x30, 0xF0, 0x20, 0x6B, 0x40, 0xF5, 0x12, 0x4F, +0x63, 0xF2, 0x6C, 0x9B, 0xEC, 0x37, 0x91, 0xE7, +0x84, 0xA4, 0x6D, 0xE0, 0x2D, 0xE3, 0x4D, 0xE3, +0x11, 0x4C, 0x7A, 0x17, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF5, 0x12, 0x4F, 0x63, 0xF2, 0x6C, 0x9B, +0xEC, 0x37, 0x91, 0xE7, 0x84, 0xA4, 0x6D, 0xE0, +0x2D, 0xE3, 0x4D, 0xE3, 0x0C, 0x4C, 0x6C, 0x17, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF2, 0x6C, 0x9B, +0x0C, 0x6C, 0x6D, 0xE0, 0x2D, 0xE3, 0x4D, 0xE3, +0x80, 0xC3, 0x18, 0x96, 0x79, 0xA6, 0x03, 0x73, +0x00, 0xF1, 0x13, 0x61, 0xFF, 0xA6, 0x1C, 0x6D, +0x9E, 0xA6, 0xB8, 0xEF, 0x30, 0xF0, 0x20, 0x6B, +0x0D, 0x96, 0x40, 0xF5, 0x12, 0x4C, 0xC6, 0xF5, +0x10, 0x4B, 0x8C, 0x34, 0x71, 0xE4, 0xFF, 0x65, +0x18, 0x97, 0x03, 0x4E, 0xCC, 0x36, 0xD9, 0xE7, +0xC3, 0xA6, 0x12, 0xED, 0x75, 0xE5, 0x64, 0xA4, +0x65, 0xF1, 0x98, 0xA5, 0xFF, 0x6D, 0x8D, 0xE3, +0x87, 0x43, 0x0F, 0x4C, 0x05, 0x4B, 0xAC, 0xEC, +0xAC, 0xEB, 0x04, 0x26, 0x05, 0x4C, 0x05, 0x4B, +0xAC, 0xEC, 0xAC, 0xEB, 0x30, 0xF0, 0x20, 0x6D, +0x83, 0xF1, 0xA8, 0x9D, 0x40, 0x6E, 0xCB, 0xEE, +0xB5, 0xE0, 0x35, 0xE5, 0x55, 0xE5, 0xC0, 0xC5, +0x30, 0xF0, 0x20, 0x6D, 0x23, 0xF2, 0xAC, 0x9D, +0xB5, 0xE0, 0x35, 0xE5, 0x55, 0xE5, 0x80, 0xC5, +0x02, 0x4A, 0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEA, +0x0D, 0xD3, 0x00, 0x6D, 0x18, 0x10, 0x30, 0xF0, +0x20, 0x6F, 0x83, 0xF1, 0xE8, 0x9F, 0x65, 0xF1, +0xDC, 0x9E, 0xED, 0xE0, 0x2D, 0xE3, 0x1F, 0x65, +0x5D, 0xE3, 0xAD, 0xE7, 0xF8, 0x67, 0xD9, 0xE7, +0xB9, 0xE6, 0xC0, 0xA6, 0x01, 0x4D, 0x1E, 0x65, +0xF8, 0x67, 0xFF, 0x6E, 0xEC, 0xEE, 0xC0, 0xC3, +0xFF, 0xF7, 0x1F, 0x6E, 0xCC, 0xED, 0x1C, 0x6B, +0xDF, 0x67, 0x78, 0xEE, 0x30, 0xF0, 0x20, 0x6F, +0xC6, 0xF5, 0x10, 0x4F, 0x12, 0xEB, 0xF9, 0xE3, +0x85, 0xF1, 0xE0, 0xAE, 0xE3, 0xED, 0xDB, 0x61, +0x30, 0xF0, 0x20, 0x6E, 0xE9, 0xE2, 0x63, 0xF2, +0xF0, 0x9E, 0xFF, 0xF7, 0x1F, 0x6D, 0xAC, 0xEA, +0xFD, 0xE0, 0x3D, 0xE7, 0x40, 0x6E, 0x5D, 0xE7, +0xCB, 0xEE, 0x0D, 0x93, 0xC0, 0xC7, 0x30, 0xF0, +0x20, 0x6F, 0x63, 0xF2, 0xEC, 0x9F, 0xFD, 0xE0, +0x3D, 0xE7, 0x5D, 0xE7, 0x60, 0xC7, 0x30, 0xF0, +0x20, 0x6F, 0x83, 0xF1, 0xE8, 0x9F, 0xFD, 0xE0, +0x3D, 0xE7, 0x5D, 0xE7, 0xC0, 0xC7, 0x30, 0xF0, +0x20, 0x6E, 0x23, 0xF2, 0xCC, 0x9E, 0xD9, 0xE0, +0x39, 0xE6, 0x59, 0xE6, 0x02, 0x4A, 0x80, 0xC6, +0xAC, 0xEA, 0x00, 0x6C, 0x13, 0x10, 0x30, 0xF0, +0x20, 0x6E, 0x83, 0xF1, 0xE8, 0x9E, 0xA1, 0x9D, +0xF9, 0xE0, 0xB5, 0xE7, 0x95, 0xE5, 0xE0, 0xA5, +0x39, 0xE6, 0x59, 0xE6, 0xFF, 0x6D, 0x99, 0xE6, +0xEC, 0xED, 0xA0, 0xC6, 0x01, 0x4C, 0xFF, 0xF7, +0x1F, 0x6D, 0xAC, 0xEC, 0x1C, 0x6D, 0xFF, 0x67, +0xB8, 0xEF, 0x30, 0xF0, 0x20, 0x6E, 0xC6, 0xF5, +0x10, 0x4E, 0x12, 0xED, 0xD5, 0xE5, 0x85, 0xF1, +0xAC, 0xA5, 0x40, 0xF5, 0x15, 0x4D, 0xAC, 0x35, +0xD5, 0xE5, 0xE4, 0xAD, 0xE3, 0xEC, 0xDB, 0x61, +0xFF, 0xF7, 0x1F, 0x6C, 0xE9, 0xE2, 0x8C, 0xEA, +0x00, 0x6C, 0x14, 0x10, 0x30, 0xF0, 0x20, 0x6D, +0x85, 0xF1, 0xC4, 0x9E, 0x83, 0xF1, 0xA8, 0x9D, +0xBD, 0xE0, 0xD5, 0xE5, 0x95, 0xE5, 0xC0, 0xA5, +0x3D, 0xE7, 0x5D, 0xE7, 0xFF, 0x6D, 0x9D, 0xE7, +0xCC, 0xED, 0xA0, 0xC7, 0x01, 0x4C, 0xFF, 0xF7, +0x1F, 0x6D, 0xAC, 0xEC, 0x1C, 0x6E, 0xFF, 0x67, +0xD8, 0xEF, 0x30, 0xF0, 0x20, 0x6D, 0xC6, 0xF5, +0x10, 0x4D, 0x12, 0xEE, 0xB9, 0xE6, 0x85, 0xF1, +0xA8, 0xAE, 0xA3, 0xEC, 0xDF, 0x61, 0xA9, 0xE2, +0x30, 0xF0, 0x20, 0x6D, 0x83, 0xF1, 0xA8, 0x9D, +0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEA, 0xB5, 0xE0, +0x35, 0xE5, 0x40, 0x6E, 0x55, 0xE5, 0xCB, 0xEE, +0xC0, 0xC5, 0x30, 0xF0, 0x20, 0x6D, 0x23, 0xF2, +0xAC, 0x9D, 0xB5, 0xE0, 0x35, 0xE5, 0x55, 0xE5, +0x02, 0x4A, 0x60, 0xC5, 0x8C, 0xEA, 0x00, 0x6B, +0x14, 0x10, 0x30, 0xF0, 0x20, 0x6D, 0xE5, 0xF2, +0x90, 0x9C, 0x83, 0xF1, 0xA8, 0x9D, 0xB9, 0xE0, +0x95, 0xE5, 0x75, 0xE5, 0xA0, 0xA5, 0x39, 0xE6, +0x59, 0xE6, 0xFF, 0x6C, 0x79, 0xE6, 0xAC, 0xEC, +0x80, 0xC6, 0x01, 0x4B, 0xFF, 0xF7, 0x1F, 0x6C, +0x8C, 0xEB, 0x30, 0xF0, 0x20, 0x6C, 0xC6, 0xF5, +0x10, 0x4C, 0xE5, 0xF2, 0xB4, 0xAC, 0xA3, 0xEB, +0xE4, 0x61, 0xA9, 0xE2, 0xFF, 0xF7, 0x1F, 0x6B, +0x6C, 0xEA, 0x27, 0x42, 0x01, 0x49, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF2, 0x48, 0x9A, 0x0E, 0x93, 0x30, 0xF0, +0x20, 0x6D, 0x49, 0xE0, 0x69, 0xE2, 0x22, 0x33, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF2, +0x40, 0x9A, 0x0E, 0x94, 0xFF, 0x6B, 0x49, 0xE0, +0x2C, 0xEB, 0x89, 0xE2, 0xC6, 0xF5, 0x10, 0x4D, +0x60, 0xC2, 0x0C, 0xD5, 0x47, 0x40, 0x0C, 0x97, +0x31, 0x4A, 0x89, 0xE2, 0x0D, 0xD2, 0x30, 0xF0, +0x20, 0x6E, 0x20, 0xF4, 0x54, 0x9E, 0x0D, 0x95, +0x65, 0xF1, 0xD1, 0xA7, 0x11, 0x6C, 0x14, 0x49, +0x40, 0xEA, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE9, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x70, 0x9A, +0x0E, 0x94, 0xFF, 0x6D, 0x6D, 0xE0, 0x22, 0x32, +0x8D, 0xE3, 0xAC, 0xEA, 0x40, 0xC3, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF2, 0x54, 0x9A, 0x65, 0x67, +0x2C, 0xEB, 0x49, 0xE0, 0x89, 0xE2, 0x60, 0xC2, +0x0C, 0x97, 0x30, 0xF0, 0x20, 0x6E, 0x20, 0xF4, +0x54, 0x9E, 0x0D, 0x95, 0x65, 0xF1, 0xD1, 0xA7, +0x00, 0x6C, 0x40, 0xEA, 0x0E, 0x92, 0xFF, 0x6C, +0xFF, 0x6D, 0x08, 0x4A, 0x45, 0xE1, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xE9, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x48, 0x9A, 0x58, 0x6E, 0x41, 0xE0, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF2, 0x78, 0x9A, +0x20, 0xC8, 0x40, 0xA3, 0x8C, 0xEA, 0x9F, 0xF6, +0x01, 0x4C, 0x8D, 0xEA, 0xAC, 0xEA, 0x40, 0xC3, +0x30, 0xF0, 0x20, 0x6A, 0x10, 0x95, 0xA0, 0xF2, +0x50, 0x9A, 0x00, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xE0, 0xF2, 0x54, 0x9A, 0x40, 0xEA, +0x15, 0x97, 0x14, 0x91, 0x13, 0x90, 0x0B, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xD2, 0x63, 0x5B, 0x62, +0x5A, 0xD1, 0x59, 0xD0, 0x00, 0x6A, 0x7D, 0x67, +0x5C, 0xD4, 0x5D, 0xD5, 0x06, 0xD2, 0x4E, 0xCB, +0x08, 0xD2, 0x09, 0xD2, 0x0A, 0xD2, 0x0B, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, +0xFF, 0x6E, 0x0C, 0x04, 0x00, 0x6D, 0x0B, 0x4E, +0x40, 0xEA, 0x5C, 0x90, 0x00, 0xF0, 0x1E, 0x04, +0x06, 0x01, 0x10, 0x48, 0x56, 0xD4, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, 0x90, 0x67, +0x01, 0x48, 0x40, 0xEA, 0x40, 0xC1, 0x56, 0x92, +0x01, 0x49, 0x4A, 0xE9, 0xF4, 0x61, 0x5C, 0x91, +0x5D, 0x93, 0x08, 0x04, 0x10, 0x49, 0x0C, 0x02, +0x65, 0xE1, 0x50, 0xD4, 0x57, 0xD2, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x40, 0x98, 0x91, 0x67, +0x01, 0x49, 0x40, 0xEA, 0x50, 0x93, 0x57, 0x94, +0x40, 0xC3, 0x01, 0x4B, 0x8A, 0xEB, 0x50, 0xD3, +0xF2, 0x61, 0x5C, 0x91, 0x5D, 0x92, 0xFF, 0xF7, +0x1F, 0x6B, 0x38, 0x49, 0x45, 0xE1, 0xC0, 0xF3, +0x40, 0x98, 0x6C, 0xE9, 0x91, 0x67, 0x40, 0xEA, +0x9D, 0x67, 0x40, 0xF0, 0x45, 0xC4, 0xC0, 0xF3, +0x40, 0x98, 0x81, 0x41, 0x40, 0xEA, 0x7D, 0x67, +0x40, 0xF0, 0x45, 0xC3, 0xC0, 0xF3, 0x40, 0x98, +0x85, 0x41, 0x40, 0xEA, 0x9D, 0x67, 0x40, 0xF0, +0x48, 0xC4, 0xC0, 0xF3, 0x40, 0x98, 0x87, 0x41, +0x04, 0x4C, 0x40, 0xEA, 0x7D, 0x67, 0x40, 0xF0, +0x49, 0xC3, 0x0C, 0x49, 0x00, 0x6A, 0xFF, 0xF7, +0x1F, 0x6C, 0x8C, 0xE9, 0x54, 0xD2, 0x52, 0xD2, +0xBB, 0x11, 0x9D, 0x67, 0x40, 0xF0, 0x07, 0xA4, +0x40, 0xF0, 0x0A, 0x02, 0x00, 0x6D, 0x0C, 0x30, +0x01, 0xE2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x48, 0x9A, 0x90, 0x67, 0x08, 0x6E, 0x40, 0xEA, +0x01, 0x6A, 0x4B, 0xEA, 0x47, 0xC0, 0x44, 0xC0, +0x45, 0xC0, 0x46, 0xC0, 0x00, 0x6A, 0x50, 0xD2, +0x55, 0xD2, 0x9D, 0x67, 0x20, 0xF0, 0x50, 0xA4, +0x26, 0x22, 0x50, 0x92, 0x24, 0x2A, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, 0x91, 0x67, +0x40, 0xEA, 0xC0, 0x72, 0x1C, 0x61, 0x30, 0xF0, +0x20, 0x6C, 0xC0, 0xF3, 0x40, 0x9C, 0x81, 0x41, +0x40, 0xEA, 0x0C, 0x72, 0x14, 0x61, 0x7D, 0x67, +0x40, 0xF0, 0x51, 0xA3, 0x02, 0x49, 0x01, 0x6C, +0x47, 0xC0, 0x40, 0xF0, 0x4E, 0xA3, 0x44, 0xC0, +0x40, 0xF0, 0x4F, 0xA3, 0x45, 0xC0, 0x40, 0xF0, +0x50, 0xA3, 0x46, 0xC0, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE9, 0x53, 0xD4, 0xB1, 0x10, 0x45, 0x80, +0x01, 0x4A, 0x80, 0xF0, 0x13, 0x2A, 0x55, 0x93, +0x51, 0xD2, 0x31, 0x23, 0x3C, 0x10, 0x91, 0x67, +0x00, 0x18, 0xBB, 0xD2, 0x51, 0x93, 0x53, 0x94, +0x40, 0xF5, 0x12, 0x4B, 0x6C, 0x33, 0x8D, 0xE3, +0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF2, 0x84, 0x9C, +0xA0, 0x9B, 0xC2, 0xAB, 0x91, 0xE2, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x48, 0x9A, 0xB5, 0xE2, +0x00, 0x18, 0x35, 0xD3, 0x11, 0x2A, 0x5D, 0x67, +0x40, 0xF1, 0x64, 0x42, 0x40, 0xA3, 0x7D, 0x67, +0x40, 0xF1, 0x80, 0x43, 0x44, 0xC0, 0x60, 0xA4, +0x67, 0xC0, 0x52, 0x94, 0x16, 0x2C, 0x01, 0x6A, +0x7D, 0x67, 0x20, 0xF0, 0x50, 0xC3, 0x11, 0x10, +0x51, 0x92, 0x01, 0x4A, 0x51, 0xD2, 0x51, 0x93, +0xFF, 0x6A, 0x4C, 0xEB, 0x51, 0xD3, 0x30, 0xF0, +0x20, 0x6C, 0xC6, 0xF5, 0x10, 0x4C, 0xA5, 0xF2, +0x48, 0xA4, 0x51, 0x93, 0x53, 0xD4, 0x43, 0xEB, +0xC6, 0x61, 0x01, 0x6C, 0x55, 0xD4, 0x50, 0x92, +0x01, 0x72, 0x03, 0x60, 0x00, 0x6B, 0x51, 0xD3, +0x43, 0x10, 0x81, 0x41, 0x00, 0x18, 0xBB, 0xD2, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, 0x84, 0x9B, +0x30, 0xF0, 0x20, 0x6D, 0x24, 0xF1, 0x08, 0x4D, +0x91, 0xE2, 0x04, 0x6E, 0x00, 0x18, 0x35, 0xD3, +0xED, 0x2A, 0x01, 0x6A, 0x41, 0xC0, 0x3A, 0x10, +0x91, 0x67, 0x00, 0x18, 0xBB, 0xD2, 0x51, 0x94, +0x1C, 0x6B, 0x78, 0xEC, 0x53, 0x94, 0x12, 0xEB, +0x8D, 0xE3, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF2, +0x84, 0x9C, 0x65, 0xF1, 0xB4, 0x9B, 0x65, 0xF1, +0xD8, 0xAB, 0x91, 0xE2, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0x48, 0x9A, 0xB5, 0xE2, 0x00, 0x18, +0x35, 0xD3, 0x11, 0x2A, 0x5D, 0x67, 0x40, 0xF1, +0x64, 0x42, 0x40, 0xA3, 0x7D, 0x67, 0x40, 0xF1, +0x80, 0x43, 0x45, 0xC0, 0x60, 0xA4, 0x67, 0xC0, +0x52, 0x94, 0x14, 0x2C, 0x01, 0x6A, 0x7D, 0x67, +0x20, 0xF0, 0x50, 0xC3, 0x0F, 0x10, 0x51, 0x94, +0xFF, 0x6A, 0x01, 0x4C, 0x4C, 0xEC, 0x51, 0xD4, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x53, 0xD2, 0x51, 0x93, 0x85, 0xF2, 0x4C, 0xA2, +0x43, 0xEB, 0xC6, 0x61, 0x30, 0xF0, 0x20, 0x6C, +0xC0, 0xF3, 0x40, 0x9C, 0x91, 0x67, 0x40, 0xEA, +0x01, 0x4A, 0x45, 0xE1, 0x30, 0xF0, 0x20, 0x6B, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE9, 0xC0, 0xF3, +0x40, 0x9B, 0x91, 0x67, 0x40, 0xEA, 0x06, 0x22, +0x50, 0x94, 0xFF, 0x6A, 0x01, 0x4C, 0x4C, 0xEC, +0x50, 0xD4, 0x27, 0x17, 0x00, 0x6A, 0x53, 0xD2, +0x45, 0x80, 0x01, 0x4A, 0x4C, 0x2A, 0x8B, 0x41, +0x00, 0x18, 0xBB, 0xD2, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF2, 0x84, 0x9B, 0x30, 0xF0, 0x20, 0x6D, +0x24, 0xF1, 0x10, 0x4D, 0x91, 0xE2, 0x05, 0x6E, +0x00, 0x18, 0x35, 0xD3, 0x00, 0x6B, 0x50, 0xD3, +0x31, 0x22, 0x39, 0x10, 0x50, 0x94, 0x1C, 0x6B, +0x78, 0xEC, 0x12, 0xEB, 0x49, 0xE3, 0x51, 0xD2, +0x85, 0xF1, 0x88, 0xAA, 0x93, 0xE1, 0xFA, 0x4C, +0x00, 0x18, 0xBB, 0xD2, 0x51, 0x94, 0x85, 0xF1, +0x64, 0x9C, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF2, +0x84, 0x9C, 0x91, 0xE2, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF1, 0xA8, 0x9A, 0x51, 0x92, 0x75, 0xE5, +0x85, 0xF1, 0xC8, 0xAA, 0x00, 0x18, 0x35, 0xD3, +0x0C, 0x2A, 0x7D, 0x67, 0x40, 0xF1, 0x80, 0x43, +0x60, 0xA4, 0x66, 0xC0, 0x52, 0x94, 0x13, 0x2C, +0x01, 0x6A, 0x7D, 0x67, 0x20, 0xF0, 0x50, 0xC3, +0x0E, 0x10, 0x50, 0x94, 0xFF, 0x6A, 0x01, 0x4C, +0x4C, 0xEC, 0x50, 0xD4, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x85, 0xF2, 0x6C, 0xA2, +0x50, 0x94, 0x63, 0xEC, 0xC7, 0x61, 0x53, 0x92, +0x04, 0x2A, 0x01, 0x49, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE9, 0x45, 0x80, 0x01, 0x4A, 0x03, 0x2A, +0x46, 0x80, 0x01, 0x4A, 0x5C, 0x22, 0x61, 0x41, +0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEB, 0x50, 0xD3, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, +0x91, 0x67, 0x40, 0xEA, 0x42, 0xC0, 0x50, 0x91, +0xFF, 0xF7, 0x1F, 0x6C, 0x30, 0xF0, 0x20, 0x6B, +0x01, 0x49, 0x8C, 0xE9, 0xC0, 0xF3, 0x40, 0x9B, +0x50, 0x94, 0x40, 0xEA, 0x43, 0xC0, 0x42, 0xA0, +0x06, 0x2A, 0x43, 0xA0, 0x01, 0x72, 0x03, 0x61, +0x46, 0x80, 0x01, 0x4A, 0x2B, 0x2A, 0x42, 0xA0, +0x06, 0x2A, 0x43, 0xA0, 0x1C, 0x72, 0x03, 0x61, +0x46, 0x80, 0x01, 0x4A, 0x23, 0x2A, 0x42, 0xA0, +0x11, 0x2A, 0x43, 0xA0, 0x0C, 0x72, 0x0E, 0x61, +0x45, 0x80, 0x01, 0x4A, 0x02, 0x22, 0x47, 0x80, +0x03, 0x22, 0x44, 0x80, 0x01, 0x4A, 0x06, 0x22, +0x54, 0x94, 0xFF, 0x6A, 0x01, 0x4C, 0x4C, 0xEC, +0x54, 0xD4, 0x10, 0x10, 0x42, 0xA0, 0x06, 0x2A, +0x43, 0xA0, 0x21, 0x72, 0x03, 0x61, 0x44, 0x80, +0x01, 0x4A, 0x08, 0x2A, 0x42, 0xA0, 0x15, 0x2A, +0x43, 0xA0, 0x10, 0x72, 0x12, 0x61, 0x44, 0x80, +0x01, 0x4A, 0x0F, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x40, 0x9A, 0x91, 0x67, 0x40, 0xEA, +0x01, 0x5A, 0x58, 0x67, 0x40, 0xC0, 0x7D, 0x67, +0x40, 0xF0, 0x47, 0xA3, 0x01, 0x4A, 0x40, 0xF0, +0x47, 0xC3, 0x02, 0x49, 0x09, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, 0x90, 0x67, +0x00, 0x6D, 0x08, 0x6E, 0x40, 0xEA, 0x04, 0x49, +0x52, 0x94, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE9, +0x01, 0x4C, 0xFF, 0x6A, 0x4C, 0xEC, 0x52, 0xD4, +0x7D, 0x67, 0x40, 0xF0, 0x48, 0xA3, 0x52, 0x94, +0x43, 0xEC, 0x3F, 0xF6, 0x1E, 0x61, 0x40, 0xF0, +0x49, 0xA3, 0x01, 0x72, 0x15, 0x61, 0x54, 0x92, +0x01, 0x72, 0x12, 0x61, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x40, 0x98, 0x81, 0x41, 0x40, 0xEA, +0x0F, 0x2A, 0xC0, 0xF3, 0x40, 0x98, 0x82, 0x41, +0x40, 0xEA, 0x29, 0x72, 0x09, 0x61, 0x03, 0x6A, +0x7D, 0x67, 0x40, 0xF0, 0x49, 0xC3, 0x04, 0x10, +0x00, 0x6A, 0x9D, 0x67, 0x40, 0xF0, 0x49, 0xC4, +0x7D, 0x67, 0x40, 0xF0, 0x47, 0xA3, 0x31, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF6, 0x7F, 0xA2, +0x08, 0x6A, 0x00, 0x68, 0x6C, 0xEA, 0x0C, 0x2A, +0x10, 0x10, 0x00, 0x6A, 0xF0, 0x67, 0x08, 0x04, +0x06, 0x05, 0x0C, 0x06, 0x04, 0xD2, 0x01, 0x48, +0x80, 0x18, 0x23, 0x40, 0xFF, 0x6A, 0x4C, 0xE8, +0x9D, 0x67, 0x40, 0xF0, 0x47, 0xA4, 0x43, 0xE8, +0xF0, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x20, 0xF1, 0x8F, 0xA2, 0x80, 0x6B, +0x6B, 0xEB, 0x8C, 0xEB, 0xFF, 0x6C, 0x8C, 0xEB, +0x0C, 0x23, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF1, +0x74, 0x9B, 0x2A, 0x6C, 0x80, 0xC3, 0x24, 0xF3, +0x84, 0xA2, 0x01, 0x6B, 0x8D, 0xEB, 0x24, 0xF3, +0x64, 0xC2, 0x7D, 0x67, 0x40, 0xF0, 0x47, 0xA3, +0x5B, 0x97, 0x5A, 0x91, 0x59, 0x90, 0x2E, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xD4, 0x63, 0x57, 0x62, +0x56, 0xD1, 0x55, 0xD0, 0x00, 0x6A, 0x7D, 0x67, +0x58, 0xD4, 0x59, 0xD5, 0x07, 0xD2, 0x50, 0xCB, +0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, +0x48, 0x9A, 0xFF, 0x6E, 0x09, 0x04, 0x00, 0x6D, +0x0B, 0x4E, 0x40, 0xEA, 0x58, 0x90, 0x20, 0xF0, +0x02, 0x04, 0x07, 0x01, 0x10, 0x48, 0x52, 0xD4, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, +0x90, 0x67, 0x01, 0x48, 0x40, 0xEA, 0x40, 0xC1, +0x52, 0x92, 0x01, 0x49, 0x4A, 0xE9, 0xF4, 0x61, +0x58, 0x91, 0x59, 0x93, 0x06, 0x04, 0x14, 0x49, +0x07, 0x02, 0x65, 0xE1, 0x4C, 0xD4, 0x53, 0xD2, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x40, 0x98, +0x91, 0x67, 0x01, 0x49, 0x40, 0xEA, 0x4C, 0x93, +0x53, 0x94, 0x40, 0xC3, 0x01, 0x4B, 0x8A, 0xEB, +0x4C, 0xD3, 0xF2, 0x61, 0x58, 0x91, 0x59, 0x92, +0xFF, 0xF7, 0x1F, 0x6B, 0x24, 0x49, 0x45, 0xE1, +0xC0, 0xF3, 0x40, 0x98, 0x6C, 0xE9, 0x91, 0x67, +0x40, 0xEA, 0x9D, 0x67, 0x20, 0xF0, 0x59, 0xC4, +0xC0, 0xF3, 0x40, 0x98, 0x81, 0x41, 0x40, 0xEA, +0x7D, 0x67, 0x20, 0xF0, 0x59, 0xC3, 0xC0, 0xF3, +0x40, 0x98, 0x85, 0x41, 0x40, 0xEA, 0x9D, 0x67, +0x20, 0xF0, 0x5C, 0xC4, 0xC0, 0xF3, 0x40, 0x98, +0x87, 0x41, 0x04, 0x4C, 0x40, 0xEA, 0x7D, 0x67, +0x20, 0xF0, 0x5D, 0xC3, 0x0C, 0x49, 0x00, 0x6A, +0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xE9, 0x50, 0xD2, +0x4E, 0xD2, 0xBB, 0x11, 0x9D, 0x67, 0x20, 0xF0, +0x1B, 0xA4, 0x20, 0xF0, 0x1E, 0x02, 0x00, 0x6D, +0x0C, 0x30, 0x01, 0xE2, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x48, 0x9A, 0x90, 0x67, 0x08, 0x6E, +0x40, 0xEA, 0x01, 0x6A, 0x4B, 0xEA, 0x47, 0xC0, +0x44, 0xC0, 0x45, 0xC0, 0x46, 0xC0, 0x00, 0x6A, +0x4C, 0xD2, 0x51, 0xD2, 0x9D, 0x67, 0x20, 0xF0, +0x44, 0xA4, 0x26, 0x22, 0x4C, 0x92, 0x24, 0x2A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, +0x91, 0x67, 0x40, 0xEA, 0xC0, 0x72, 0x1C, 0x61, +0x30, 0xF0, 0x20, 0x6C, 0xC0, 0xF3, 0x40, 0x9C, +0x81, 0x41, 0x40, 0xEA, 0x0C, 0x72, 0x14, 0x61, +0x7D, 0x67, 0x40, 0xF0, 0x45, 0xA3, 0x02, 0x49, +0x01, 0x6C, 0x47, 0xC0, 0x40, 0xF0, 0x42, 0xA3, +0x44, 0xC0, 0x40, 0xF0, 0x43, 0xA3, 0x45, 0xC0, +0x40, 0xF0, 0x44, 0xA3, 0x46, 0xC0, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xE9, 0x4F, 0xD4, 0xB1, 0x10, +0x45, 0x80, 0x01, 0x4A, 0x80, 0xF0, 0x13, 0x2A, +0x51, 0x93, 0x4D, 0xD2, 0x31, 0x23, 0x3C, 0x10, +0x91, 0x67, 0x00, 0x18, 0xBB, 0xD2, 0x4D, 0x93, +0x4F, 0x94, 0x40, 0xF5, 0x12, 0x4B, 0x6C, 0x33, +0x8D, 0xE3, 0x30, 0xF0, 0x20, 0x6C, 0xC3, 0xF2, +0x84, 0x9C, 0xA0, 0x9B, 0xC2, 0xAB, 0x91, 0xE2, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x48, 0x9A, +0xB5, 0xE2, 0x00, 0x18, 0x35, 0xD3, 0x11, 0x2A, +0x5D, 0x67, 0x30, 0xF1, 0x64, 0x42, 0x40, 0xA3, +0x7D, 0x67, 0x30, 0xF1, 0x80, 0x43, 0x44, 0xC0, +0x60, 0xA4, 0x67, 0xC0, 0x4E, 0x94, 0x16, 0x2C, +0x01, 0x6A, 0x7D, 0x67, 0x20, 0xF0, 0x44, 0xC3, +0x11, 0x10, 0x4D, 0x92, 0x01, 0x4A, 0x4D, 0xD2, +0x4D, 0x93, 0xFF, 0x6A, 0x4C, 0xEB, 0x4D, 0xD3, +0x30, 0xF0, 0x20, 0x6C, 0xC6, 0xF5, 0x10, 0x4C, +0xA5, 0xF2, 0x48, 0xA4, 0x4D, 0x93, 0x4F, 0xD4, +0x43, 0xEB, 0xC6, 0x61, 0x01, 0x6C, 0x51, 0xD4, +0x4C, 0x92, 0x01, 0x72, 0x03, 0x60, 0x00, 0x6B, +0x4D, 0xD3, 0x43, 0x10, 0x81, 0x41, 0x00, 0x18, +0xBB, 0xD2, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, +0x84, 0x9B, 0x30, 0xF0, 0x20, 0x6D, 0x24, 0xF1, +0x08, 0x4D, 0x91, 0xE2, 0x04, 0x6E, 0x00, 0x18, +0x35, 0xD3, 0xED, 0x2A, 0x01, 0x6A, 0x41, 0xC0, +0x3A, 0x10, 0x91, 0x67, 0x00, 0x18, 0xBB, 0xD2, +0x4D, 0x94, 0x1C, 0x6B, 0x78, 0xEC, 0x4F, 0x94, +0x12, 0xEB, 0x8D, 0xE3, 0x30, 0xF0, 0x20, 0x6C, +0xC3, 0xF2, 0x84, 0x9C, 0x65, 0xF1, 0xB4, 0x9B, +0x65, 0xF1, 0xD8, 0xAB, 0x91, 0xE2, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x48, 0x9A, 0xB5, 0xE2, +0x00, 0x18, 0x35, 0xD3, 0x11, 0x2A, 0x5D, 0x67, +0x30, 0xF1, 0x64, 0x42, 0x40, 0xA3, 0x7D, 0x67, +0x30, 0xF1, 0x80, 0x43, 0x45, 0xC0, 0x60, 0xA4, +0x67, 0xC0, 0x4E, 0x94, 0x14, 0x2C, 0x01, 0x6A, +0x7D, 0x67, 0x20, 0xF0, 0x44, 0xC3, 0x0F, 0x10, +0x4D, 0x94, 0xFF, 0x6A, 0x01, 0x4C, 0x4C, 0xEC, +0x4D, 0xD4, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x4F, 0xD2, 0x4D, 0x93, 0x85, 0xF2, +0x4C, 0xA2, 0x43, 0xEB, 0xC6, 0x61, 0x30, 0xF0, +0x20, 0x6C, 0xC0, 0xF3, 0x40, 0x9C, 0x91, 0x67, +0x40, 0xEA, 0x01, 0x4A, 0x45, 0xE1, 0x30, 0xF0, +0x20, 0x6B, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE9, +0xC0, 0xF3, 0x40, 0x9B, 0x91, 0x67, 0x40, 0xEA, +0x06, 0x22, 0x4C, 0x94, 0xFF, 0x6A, 0x01, 0x4C, +0x4C, 0xEC, 0x4C, 0xD4, 0x27, 0x17, 0x00, 0x6A, +0x4F, 0xD2, 0x45, 0x80, 0x01, 0x4A, 0x4C, 0x2A, +0x8B, 0x41, 0x00, 0x18, 0xBB, 0xD2, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF2, 0x84, 0x9B, 0x30, 0xF0, +0x20, 0x6D, 0x24, 0xF1, 0x10, 0x4D, 0x91, 0xE2, +0x05, 0x6E, 0x00, 0x18, 0x35, 0xD3, 0x00, 0x6B, +0x4C, 0xD3, 0x31, 0x22, 0x39, 0x10, 0x4C, 0x94, +0x1C, 0x6B, 0x78, 0xEC, 0x12, 0xEB, 0x49, 0xE3, +0x4D, 0xD2, 0x85, 0xF1, 0x88, 0xAA, 0x93, 0xE1, +0xFA, 0x4C, 0x00, 0x18, 0xBB, 0xD2, 0x4D, 0x94, +0x85, 0xF1, 0x64, 0x9C, 0x30, 0xF0, 0x20, 0x6C, +0xC3, 0xF2, 0x84, 0x9C, 0x91, 0xE2, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0xA8, 0x9A, 0x4D, 0x92, +0x75, 0xE5, 0x85, 0xF1, 0xC8, 0xAA, 0x00, 0x18, +0x35, 0xD3, 0x0C, 0x2A, 0x7D, 0x67, 0x30, 0xF1, +0x80, 0x43, 0x60, 0xA4, 0x66, 0xC0, 0x4E, 0x94, +0x13, 0x2C, 0x01, 0x6A, 0x7D, 0x67, 0x20, 0xF0, +0x44, 0xC3, 0x0E, 0x10, 0x4C, 0x94, 0xFF, 0x6A, +0x01, 0x4C, 0x4C, 0xEC, 0x4C, 0xD4, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x85, 0xF2, +0x6C, 0xA2, 0x4C, 0x94, 0x63, 0xEC, 0xC7, 0x61, +0x4F, 0x92, 0x04, 0x2A, 0x01, 0x49, 0xFF, 0xF7, +0x1F, 0x6A, 0x4C, 0xE9, 0x45, 0x80, 0x01, 0x4A, +0x03, 0x2A, 0x46, 0x80, 0x01, 0x4A, 0x5C, 0x22, +0x61, 0x41, 0xFF, 0xF7, 0x1F, 0x6C, 0x8C, 0xEB, +0x4C, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x40, 0x9B, 0x91, 0x67, 0x40, 0xEA, 0x42, 0xC0, +0x4C, 0x91, 0xFF, 0xF7, 0x1F, 0x6C, 0x30, 0xF0, +0x20, 0x6B, 0x01, 0x49, 0x8C, 0xE9, 0xC0, 0xF3, +0x40, 0x9B, 0x4C, 0x94, 0x40, 0xEA, 0x43, 0xC0, +0x42, 0xA0, 0x06, 0x2A, 0x43, 0xA0, 0x01, 0x72, +0x03, 0x61, 0x46, 0x80, 0x01, 0x4A, 0x2B, 0x2A, +0x42, 0xA0, 0x06, 0x2A, 0x43, 0xA0, 0x1C, 0x72, +0x03, 0x61, 0x46, 0x80, 0x01, 0x4A, 0x23, 0x2A, +0x42, 0xA0, 0x11, 0x2A, 0x43, 0xA0, 0x0C, 0x72, +0x0E, 0x61, 0x45, 0x80, 0x01, 0x4A, 0x02, 0x22, +0x47, 0x80, 0x03, 0x22, 0x44, 0x80, 0x01, 0x4A, +0x06, 0x22, 0x50, 0x94, 0xFF, 0x6A, 0x01, 0x4C, +0x4C, 0xEC, 0x50, 0xD4, 0x10, 0x10, 0x42, 0xA0, +0x06, 0x2A, 0x43, 0xA0, 0x21, 0x72, 0x03, 0x61, +0x44, 0x80, 0x01, 0x4A, 0x08, 0x2A, 0x42, 0xA0, +0x15, 0x2A, 0x43, 0xA0, 0x10, 0x72, 0x12, 0x61, +0x44, 0x80, 0x01, 0x4A, 0x0F, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x40, 0x9A, 0x91, 0x67, +0x40, 0xEA, 0x01, 0x5A, 0x58, 0x67, 0x40, 0xC0, +0x7D, 0x67, 0x20, 0xF0, 0x5B, 0xA3, 0x01, 0x4A, +0x20, 0xF0, 0x5B, 0xC3, 0x02, 0x49, 0x09, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, +0x90, 0x67, 0x00, 0x6D, 0x08, 0x6E, 0x40, 0xEA, +0x04, 0x49, 0x4E, 0x94, 0xFF, 0xF7, 0x1F, 0x6A, +0x4C, 0xE9, 0x01, 0x4C, 0xFF, 0x6A, 0x4C, 0xEC, +0x4E, 0xD4, 0x7D, 0x67, 0x20, 0xF0, 0x5C, 0xA3, +0x4E, 0x94, 0x43, 0xEC, 0x3F, 0xF6, 0x1E, 0x61, +0x20, 0xF0, 0x5D, 0xA3, 0x01, 0x72, 0x15, 0x61, +0x50, 0x92, 0x01, 0x72, 0x12, 0x61, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x40, 0x98, 0x81, 0x41, +0x40, 0xEA, 0x0F, 0x2A, 0xC0, 0xF3, 0x40, 0x98, +0x82, 0x41, 0x40, 0xEA, 0x29, 0x72, 0x09, 0x61, +0x03, 0x6A, 0x7D, 0x67, 0x20, 0xF0, 0x5D, 0xC3, +0x04, 0x10, 0x00, 0x6A, 0x9D, 0x67, 0x20, 0xF0, +0x5D, 0xC4, 0x7D, 0x67, 0x20, 0xF0, 0x5B, 0xA3, +0x2E, 0x22, 0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF6, +0x7F, 0xA2, 0x04, 0x6A, 0x00, 0x68, 0x6C, 0xEA, +0x0C, 0x2A, 0x10, 0x10, 0x00, 0x6A, 0xF0, 0x67, +0x06, 0x04, 0x07, 0x05, 0x09, 0x06, 0x04, 0xD2, +0x01, 0x48, 0x80, 0x18, 0xDC, 0x42, 0xFF, 0x6A, +0x4C, 0xE8, 0x9D, 0x67, 0x20, 0xF0, 0x5B, 0xA4, +0x43, 0xE8, 0xF0, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x20, 0xF1, 0x8F, 0xA2, +0x40, 0x6B, 0x8C, 0xEB, 0x0C, 0x23, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF1, 0x74, 0x9B, 0x2A, 0x6C, +0x80, 0xC3, 0x24, 0xF3, 0x84, 0xA2, 0x01, 0x6B, +0x8D, 0xEB, 0x24, 0xF3, 0x64, 0xC2, 0x7D, 0x67, +0x20, 0xF0, 0x5B, 0xA3, 0x57, 0x97, 0x56, 0x91, +0x55, 0x90, 0x2C, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0x6A, 0x4C, 0xEE, 0x02, 0x76, 0x4C, 0xEC, +0x4C, 0xED, 0xEC, 0xEA, 0x07, 0x61, 0x83, 0xED, +0x01, 0x6B, 0x29, 0x61, 0xA3, 0xEC, 0x78, 0x67, +0x64, 0x33, 0x25, 0x10, 0x01, 0x76, 0x1F, 0x61, +0x18, 0x10, 0x01, 0x73, 0x04, 0x6A, 0x06, 0x61, +0x1D, 0x10, 0x02, 0x72, 0x06, 0x61, 0x01, 0x73, +0x04, 0x61, 0x13, 0x10, 0x02, 0x73, 0x06, 0x61, +0x14, 0x10, 0x02, 0x72, 0x03, 0x61, 0x02, 0x73, +0x03, 0x6A, 0x10, 0x60, 0x01, 0x73, 0x0A, 0x6A, +0x0D, 0x60, 0x02, 0x73, 0x09, 0x6A, 0x07, 0x61, +0x09, 0x10, 0x02, 0x72, 0x06, 0x60, 0x01, 0x72, +0x02, 0x61, 0x02, 0x6A, 0x20, 0xE8, 0x00, 0x6A, +0x20, 0xE8, 0x01, 0x6A, 0x20, 0xE8, 0x01, 0x72, +0xE0, 0x61, 0xDB, 0x17, 0xFF, 0x6B, 0x6C, 0xED, +0x03, 0x75, 0x6C, 0xEC, 0x6C, 0xEE, 0x17, 0x61, +0x03, 0x6A, 0x8C, 0xEA, 0x0C, 0x2A, 0x48, 0x44, +0xE4, 0x4A, 0x6C, 0xEA, 0x1D, 0x5A, 0x32, 0x6A, +0x4E, 0x61, 0x48, 0x44, 0xA4, 0x4A, 0x6C, 0xEA, +0x1D, 0x5A, 0x72, 0x6A, 0x3B, 0x10, 0x01, 0x72, +0x45, 0x61, 0x47, 0x44, 0x64, 0x4A, 0x6C, 0xEA, +0x1D, 0x5A, 0xA3, 0x6A, 0x33, 0x10, 0x02, 0x75, +0x33, 0x61, 0x0F, 0x5C, 0x07, 0x6A, 0x3B, 0x61, +0x03, 0x6A, 0x8C, 0xEA, 0x1E, 0x2A, 0x48, 0x44, +0xE4, 0x4A, 0x6C, 0xEA, 0x0D, 0x5A, 0x2A, 0x6A, +0x32, 0x61, 0x48, 0x44, 0xD4, 0x4A, 0x6C, 0xEA, +0x0D, 0x5A, 0x3A, 0x6A, 0x2C, 0x61, 0x48, 0x44, +0xA4, 0x4A, 0x6C, 0xEA, 0x0D, 0x5A, 0x6A, 0x6A, +0x26, 0x61, 0x48, 0x44, 0x94, 0x4A, 0x6C, 0xEA, +0x0D, 0x5A, 0x7A, 0x6A, 0x20, 0x61, 0x47, 0x44, +0x75, 0x4A, 0x6C, 0xEA, 0x0D, 0x5A, 0x8A, 0x6A, +0x0D, 0x10, 0x01, 0x72, 0x17, 0x61, 0x47, 0x44, +0x64, 0x4A, 0x6C, 0xEA, 0x0D, 0x5A, 0x9B, 0x6A, +0x12, 0x61, 0x47, 0x44, 0x54, 0x4A, 0x6C, 0xEA, +0x0D, 0x5A, 0xAB, 0x6A, 0x0C, 0x61, 0x0A, 0x10, +0x01, 0x75, 0x08, 0x61, 0x01, 0x76, 0x42, 0x44, +0x03, 0x60, 0x02, 0x76, 0x03, 0x61, 0x4E, 0x44, +0x6C, 0xEA, 0x20, 0xE8, 0x44, 0x67, 0x20, 0xE8, +0xFF, 0x6A, 0x4C, 0xEC, 0xAC, 0xEA, 0x00, 0x6B, +0x33, 0x22, 0x02, 0x5A, 0x02, 0x61, 0x0F, 0x5C, +0x2C, 0x61, 0x6F, 0x44, 0xFF, 0x6A, 0x4C, 0xEB, +0x04, 0x5B, 0x01, 0x6B, 0x29, 0x61, 0x6B, 0x44, +0x4C, 0xEB, 0x05, 0x5B, 0x07, 0x60, 0x60, 0xA6, +0xFF, 0x4B, 0x4C, 0xEB, 0x02, 0x5B, 0x1F, 0x60, +0x60, 0xA6, 0x1E, 0x10, 0x68, 0x44, 0xFE, 0x4B, +0x4C, 0xEB, 0x04, 0x5B, 0x18, 0x61, 0x0E, 0x74, +0x14, 0x60, 0xDC, 0x4C, 0x4C, 0xEC, 0x8E, 0x5C, +0x10, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xA2, 0xF4, +0x08, 0x4A, 0x49, 0xE4, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xA2, 0x22, 0xF5, 0x18, 0x4B, 0x71, 0xE4, +0x60, 0xA4, 0x04, 0x22, 0x03, 0x26, 0x60, 0xC6, +0x20, 0xE8, 0x00, 0x6A, 0x20, 0xE8, 0x02, 0x6B, +0x01, 0x6A, 0xF8, 0x17, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x00, 0x6B, 0x44, 0xF3, +0x74, 0xC2, 0x44, 0xF3, 0x75, 0xC2, 0x44, 0xF3, +0x76, 0xC2, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x24, 0x67, 0x00, 0x18, +0xAB, 0xD2, 0x30, 0xF0, 0x20, 0x6B, 0xE6, 0xF6, +0x76, 0xA3, 0xFF, 0x68, 0x0C, 0xE9, 0x6D, 0xE2, +0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, 0x48, 0x9A, +0x7C, 0x33, 0x49, 0xE3, 0x40, 0xA2, 0x0C, 0xEA, +0x01, 0x72, 0x19, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF3, 0x50, 0x9A, 0x49, 0xE3, 0x40, 0xA2, +0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF3, +0x54, 0x9A, 0x4D, 0xE3, 0x09, 0x10, 0x80, 0xA3, +0xFF, 0x6A, 0xFF, 0x48, 0x4C, 0xEC, 0x4C, 0xE8, +0x51, 0x67, 0x8E, 0xEA, 0x01, 0x4B, 0x03, 0x22, +0xF6, 0x28, 0x00, 0x6A, 0x01, 0x10, 0x01, 0x6A, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xC6, 0xF5, 0x10, 0x48, 0x84, 0xF5, 0x59, 0xA0, +0x84, 0xF5, 0x3A, 0xA0, 0x04, 0xD2, 0x84, 0xF5, +0x5B, 0xA0, 0x04, 0x94, 0xB1, 0x67, 0xC2, 0x67, +0x05, 0xD2, 0x80, 0x18, 0xEB, 0x47, 0x04, 0x95, +0x05, 0x97, 0xD1, 0x67, 0x82, 0x67, 0x06, 0xD2, +0x80, 0x18, 0xD0, 0x47, 0x06, 0x94, 0xD1, 0x67, +0xA2, 0x67, 0x80, 0x18, 0x1F, 0x55, 0x01, 0x6A, +0x43, 0xF4, 0x59, 0xC0, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF6, 0x63, 0x13, 0x62, 0x12, 0xD1, 0x11, 0xD0, +0x00, 0x6C, 0x00, 0x6A, 0x7D, 0x67, 0x15, 0xD5, +0x26, 0x67, 0x58, 0xC3, 0x08, 0xD4, 0x0C, 0xD4, +0x0D, 0xD4, 0x0E, 0xD4, 0x0B, 0xD4, 0x24, 0x68, +0xEA, 0x10, 0x30, 0xF0, 0x20, 0x6F, 0xC0, 0xF3, +0x40, 0x9F, 0x81, 0x41, 0x11, 0xE4, 0x40, 0xEA, +0x0A, 0xD2, 0xE0, 0xF0, 0x04, 0x22, 0x0A, 0x93, +0x15, 0x94, 0x42, 0x40, 0x69, 0xE2, 0x43, 0xEC, +0xC0, 0xF0, 0x1D, 0x61, 0x30, 0xF0, 0x20, 0x6F, +0xC0, 0xF3, 0x40, 0x9F, 0x31, 0xE0, 0x40, 0xEA, +0x3E, 0x72, 0x25, 0x60, 0x3F, 0x5A, 0x08, 0x60, +0x2D, 0x72, 0x7C, 0x60, 0x3D, 0x72, 0x80, 0xF0, +0x0B, 0x60, 0x25, 0x72, 0x0B, 0x60, 0xC1, 0x10, +0xC2, 0x72, 0x22, 0x60, 0x00, 0x6B, 0xC4, 0x72, +0x09, 0xD3, 0x6B, 0x60, 0xC0, 0x72, 0xA0, 0xF0, +0x0B, 0x60, 0xB7, 0x10, 0x30, 0xF0, 0x20, 0x6F, +0xC0, 0xF3, 0x40, 0x9F, 0x83, 0x41, 0x11, 0xE4, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x0B, 0xD2, +0xC0, 0xF3, 0x40, 0x9B, 0x84, 0x41, 0x11, 0xE4, +0x40, 0xEA, 0x0E, 0xD2, 0xA6, 0x10, 0x30, 0xF0, +0x20, 0x6F, 0xC0, 0xF3, 0x40, 0x9F, 0x82, 0x41, +0x11, 0xE4, 0x40, 0xEA, 0x0D, 0xD2, 0x9D, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, +0x82, 0x41, 0x11, 0xE4, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6F, 0x0C, 0xD2, 0xC0, 0xF3, 0x40, 0x9F, +0x83, 0x41, 0x11, 0xE4, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, 0x84, 0x41, +0x11, 0xE4, 0x40, 0xEA, 0x86, 0x10, 0x30, 0xF0, +0x20, 0x6F, 0x09, 0x93, 0x82, 0x41, 0xC0, 0xF3, +0x40, 0x9F, 0x11, 0xE4, 0x71, 0xE4, 0x40, 0xEA, +0xC2, 0x72, 0x1C, 0x61, 0x30, 0xF0, 0x20, 0x6F, +0x09, 0x93, 0xC0, 0xF3, 0x40, 0x9F, 0x84, 0x41, +0x11, 0xE4, 0x71, 0xE4, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6F, 0x09, 0x93, 0x0C, 0xD2, 0x85, 0x41, +0xC0, 0xF3, 0x40, 0x9F, 0x11, 0xE4, 0x71, 0xE4, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6F, 0x09, 0x93, +0x86, 0x41, 0xC0, 0xF3, 0x40, 0x9F, 0x11, 0xE4, +0x71, 0xE4, 0x40, 0xEA, 0x09, 0x97, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0x41, 0xC0, 0xF3, 0x40, 0x9A, +0x11, 0xE4, 0xF1, 0xE4, 0x40, 0xEA, 0x09, 0x93, +0x02, 0x4A, 0x4D, 0xE3, 0xFF, 0x6A, 0x4C, 0xEB, +0x09, 0xD3, 0x09, 0x94, 0x0A, 0x97, 0xE3, 0xEC, +0xC6, 0x61, 0x4B, 0x10, 0x0A, 0x92, 0x1A, 0x72, +0x48, 0x61, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x40, 0x9B, 0x82, 0x41, 0x11, 0xE4, 0x40, 0xEA, +0x02, 0x6B, 0x4C, 0xEB, 0x3E, 0x23, 0x08, 0x94, +0x3C, 0x2C, 0x01, 0x6F, 0x08, 0xD7, 0x39, 0x10, +0x0A, 0x92, 0x16, 0x72, 0x36, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x40, 0x9B, 0x83, 0x41, +0x11, 0xE4, 0x40, 0xEA, 0x04, 0x6B, 0x4C, 0xEB, +0x2C, 0x23, 0x08, 0x94, 0x02, 0x24, 0x01, 0x74, +0x28, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x40, 0x9A, 0x83, 0x41, 0x11, 0xE4, 0x40, 0xEA, +0x03, 0x6B, 0x4C, 0xEB, 0x01, 0x73, 0x05, 0x60, +0x01, 0x6F, 0x03, 0x73, 0x08, 0xD7, 0x19, 0x61, +0x06, 0x10, 0x01, 0x6A, 0x7D, 0x67, 0x01, 0x6C, +0x58, 0xC3, 0x08, 0xD4, 0x12, 0x10, 0x02, 0x6A, +0xFD, 0x67, 0x58, 0xC7, 0x01, 0x6A, 0x0C, 0x10, +0x0A, 0x93, 0x05, 0x73, 0x0A, 0x61, 0x30, 0xF0, +0x20, 0x6F, 0xC0, 0xF3, 0x40, 0x9F, 0x82, 0x41, +0x11, 0xE4, 0x40, 0xEA, 0x02, 0x22, 0x02, 0x6A, +0x08, 0xD2, 0x0A, 0x92, 0x02, 0x4A, 0x41, 0xE0, +0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xE8, 0x15, 0x93, +0x63, 0xE8, 0x1F, 0xF7, 0x12, 0x61, 0x0B, 0x94, +0x0B, 0x24, 0x30, 0xF0, 0x20, 0x6A, 0xE6, 0xF6, +0x56, 0xA2, 0x80, 0xF0, 0x1F, 0x22, 0x80, 0x18, +0x3D, 0x48, 0x80, 0xF0, 0x1B, 0x2A, 0xA2, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x44, 0xF3, 0x75, 0xA2, 0x57, 0x2B, 0x9A, 0x10, +0x0C, 0x93, 0xFF, 0x6C, 0xFF, 0x4B, 0x8C, 0xEB, +0x03, 0x5B, 0x0D, 0x60, 0x0B, 0x94, 0x30, 0xF0, +0x20, 0x6E, 0x02, 0x6D, 0x6B, 0xF3, 0x0B, 0x4E, +0x80, 0x18, 0x1A, 0x48, 0x11, 0x22, 0x02, 0x6A, +0x84, 0xF5, 0x5A, 0xC0, 0x11, 0x10, 0x0D, 0x97, +0x01, 0x77, 0x02, 0x61, 0x01, 0x6A, 0x08, 0x10, +0x0D, 0x93, 0x03, 0x73, 0x05, 0x61, 0x01, 0x6A, +0x84, 0xF5, 0x5A, 0xC0, 0x02, 0x6A, 0x02, 0x10, +0x84, 0xF5, 0x5A, 0xC0, 0x84, 0xF5, 0x5B, 0xC0, +0x9D, 0x67, 0xE7, 0x44, 0x25, 0x4F, 0x80, 0xA7, +0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, 0x20, 0x6F, +0xC6, 0xF5, 0x10, 0x48, 0xC0, 0xF3, 0x40, 0x9F, +0x84, 0xF5, 0x99, 0xC0, 0x87, 0x41, 0x19, 0x4C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x08, 0xD2, +0xC0, 0xF3, 0x40, 0x9B, 0x87, 0x41, 0x1A, 0x4C, +0x40, 0xEA, 0x08, 0x94, 0x0E, 0x97, 0x01, 0x6B, +0x40, 0x32, 0x44, 0xF3, 0x74, 0xC0, 0x8D, 0xEA, +0xFF, 0x6B, 0x6C, 0xEA, 0xF8, 0xEA, 0x01, 0x6B, +0x04, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0x00, 0xF3, +0x6C, 0x9B, 0x10, 0xF0, 0x31, 0x6C, 0x24, 0xF5, +0x01, 0x4C, 0x00, 0x6D, 0x01, 0x6F, 0x12, 0xEE, +0x40, 0xEB, 0x44, 0x10, 0x08, 0x93, 0x02, 0x73, +0x06, 0x61, 0x84, 0xF5, 0x99, 0xA2, 0x02, 0x6D, +0x06, 0x06, 0x80, 0x18, 0x1A, 0x48, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x84, 0xF5, +0x7A, 0xA2, 0x08, 0x94, 0x83, 0xEB, 0x08, 0x61, +0xFD, 0x67, 0x78, 0xA7, 0x15, 0x23, 0x84, 0xF5, +0x5B, 0xA2, 0x12, 0x22, 0x6E, 0xEA, 0x10, 0x22, +0x7D, 0x67, 0x87, 0x43, 0x19, 0x4C, 0x60, 0xA4, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x9D, 0x67, 0x84, 0xF5, 0x7A, 0xC2, 0x78, 0xA4, +0x84, 0xF5, 0x7B, 0xC2, 0x80, 0x18, 0x59, 0x48, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0x6B, 0xC6, 0xF5, +0x10, 0x4A, 0x10, 0xF0, 0x31, 0x6C, 0x44, 0xF3, +0x74, 0xC2, 0x44, 0xF3, 0x75, 0xC2, 0x44, 0xF3, +0x76, 0xC2, 0xC4, 0xF0, 0x1D, 0x4C, 0x00, 0x18, +0x72, 0xDA, 0x08, 0x10, 0x30, 0xF0, 0x20, 0x68, +0xC6, 0xF5, 0x10, 0x48, 0x44, 0xF3, 0x54, 0xA0, +0x7F, 0xF7, 0x06, 0x22, 0x13, 0x97, 0x12, 0x91, +0x11, 0x90, 0x0A, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x80, 0x18, 0x59, 0x48, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x01, 0x6B, 0x44, 0xF3, 0x75, 0xC2, 0x44, 0xF3, +0x76, 0xC2, 0x01, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF3, +0xDC, 0x9B, 0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, +0x31, 0x6C, 0xC4, 0xF0, 0x1D, 0x4C, 0x00, 0x6D, +0x01, 0x6F, 0x40, 0xEA, 0x07, 0x97, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, +0x06, 0xD4, 0x09, 0xD7, 0x07, 0xD5, 0x08, 0xD6, +0x06, 0x04, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x46, 0x67, 0x01, 0x4A, +0x05, 0x67, 0x0C, 0xD6, 0x27, 0x67, 0x1F, 0x22, +0x1F, 0xF7, 0x00, 0x6A, 0xAC, 0xEA, 0x02, 0xF0, +0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x58, 0x9A, 0x04, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x5C, 0x9A, +0x49, 0xE0, 0x40, 0x9A, 0x0C, 0x94, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, 0x44, 0x9A, +0x40, 0xEA, 0x0C, 0x93, 0x24, 0xEA, 0x6F, 0xEA, +0x04, 0x93, 0x6C, 0xEA, 0x4D, 0xE9, 0x1F, 0xF7, +0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x58, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x5C, 0x9A, 0x41, 0xE0, +0x20, 0xD8, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x1F, 0xF7, 0x00, 0x6A, +0xAC, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x26, 0x67, +0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x58, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x5C, 0x9A, 0x55, 0xE5, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0x9D, 0xA0, 0xF3, +0x44, 0x9A, 0x91, 0x67, 0x2C, 0xE8, 0x40, 0xEA, +0x06, 0xEA, 0x50, 0x67, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, +0xFF, 0x68, 0xAC, 0xE8, 0xD0, 0x67, 0x41, 0xF4, +0x10, 0x6C, 0x7F, 0x6D, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x99, 0xD0, 0x67, 0x41, 0xF6, 0x10, 0x6C, +0x7F, 0x6D, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x85, 0x67, 0xA6, 0x67, +0xC7, 0x67, 0x00, 0x18, 0xD2, 0xD2, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0xFF, 0x6A, 0x8C, 0xEA, +0x04, 0xD2, 0x04, 0x95, 0x30, 0xF0, 0x20, 0x69, +0xC6, 0xF5, 0x10, 0x49, 0xA8, 0x34, 0x31, 0xE4, +0x05, 0xD4, 0x05, 0x90, 0x62, 0xF1, 0x02, 0x4A, +0x48, 0x32, 0x29, 0xE2, 0x88, 0xF5, 0xCE, 0xA0, +0x64, 0xA2, 0x01, 0x6A, 0x4C, 0xEE, 0x4C, 0xEB, +0xC4, 0x36, 0x88, 0xF5, 0xED, 0xA4, 0xD9, 0xE3, +0x88, 0xF5, 0x6F, 0xA0, 0x4C, 0xEF, 0xF0, 0x37, +0x4C, 0xEB, 0x74, 0x33, 0x6D, 0xE7, 0x07, 0xD3, +0x04, 0x93, 0x85, 0x67, 0xC4, 0xF2, 0x0C, 0x4C, +0x64, 0x32, 0x29, 0xE2, 0x84, 0x34, 0x31, 0xE4, +0xA8, 0xF5, 0x41, 0xA2, 0xA8, 0xA4, 0x03, 0x6C, +0x8C, 0xEA, 0x8C, 0xED, 0x40, 0x32, 0xA0, 0x35, +0x48, 0x32, 0x49, 0xE5, 0x30, 0xF0, 0x20, 0x68, +0x06, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x08, 0xD6, +0xC0, 0xF3, 0x64, 0x98, 0x03, 0xF4, 0xCC, 0x9A, +0x01, 0x6D, 0xE3, 0xF2, 0x1D, 0x4C, 0xAB, 0xED, +0x40, 0xEB, 0x08, 0x94, 0x07, 0x96, 0x06, 0x93, +0xC0, 0xF3, 0x44, 0x98, 0x8D, 0xEE, 0x6D, 0xEE, +0xE3, 0xF3, 0x10, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, +0x40, 0xEA, 0x04, 0x92, 0x05, 0x94, 0x01, 0x6D, +0x62, 0xF1, 0x08, 0x4A, 0xA8, 0xF5, 0xC6, 0xAC, +0x48, 0x32, 0x29, 0xE2, 0x62, 0xAA, 0xC0, 0x36, +0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x36, 0x6D, 0xEE, +0xE3, 0xF3, 0x08, 0x6C, 0xAB, 0xED, 0x40, 0xEA, +0x04, 0x92, 0x05, 0x95, 0xE3, 0xF3, 0x0C, 0x6C, +0x62, 0xF1, 0x09, 0x4A, 0xA8, 0xF5, 0xCA, 0xAD, +0x48, 0x32, 0x29, 0xE2, 0x62, 0xAA, 0xC0, 0x36, +0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x36, 0x01, 0x6D, +0x6D, 0xEE, 0xAB, 0xED, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x29, 0xF0, +0xC8, 0xA1, 0x23, 0xF1, 0xB8, 0x9B, 0xE3, 0xF3, +0x10, 0x6C, 0x40, 0xEA, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x00, 0x6B, +0x28, 0xF1, 0x73, 0xC2, 0x30, 0xF0, 0x20, 0x6B, +0x0E, 0xF7, 0x03, 0x4B, 0x68, 0xF1, 0x60, 0xDA, +0x00, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, +0x78, 0x9B, 0x54, 0x34, 0x20, 0x68, 0x71, 0xE4, +0xA0, 0xA4, 0xF8, 0x6B, 0x01, 0x4A, 0xAC, 0xEB, +0x4E, 0xE8, 0x60, 0xC4, 0xF2, 0x28, 0x80, 0x18, +0x3A, 0x4A, 0x30, 0xF0, 0x20, 0x6A, 0x0E, 0xF7, +0x1A, 0xC2, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x68, 0xA4, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x28, 0xF1, +0x7C, 0xC2, 0x69, 0xA4, 0x28, 0xF1, 0x71, 0xC2, +0x6A, 0xA4, 0x28, 0xF1, 0x7B, 0xC2, 0xAB, 0xA4, +0x0F, 0x6B, 0xAC, 0xEB, 0x48, 0xF1, 0x65, 0xC2, +0x6B, 0xA4, 0x72, 0x33, 0x48, 0xF1, 0x62, 0xC2, +0x8E, 0xA4, 0x01, 0x6B, 0x8C, 0xEB, 0x28, 0xF1, +0x73, 0xC2, 0x30, 0xF0, 0x20, 0x6B, 0x0E, 0xF7, +0x03, 0x4B, 0x68, 0xF1, 0x60, 0xDA, 0x00, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0x60, 0xA4, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x28, 0xF1, +0x7C, 0xC2, 0x61, 0xA4, 0x28, 0xF1, 0x71, 0xC2, +0x62, 0xA4, 0x28, 0xF1, 0x7B, 0xC2, 0xA3, 0xA4, +0x0F, 0x6B, 0xAC, 0xEB, 0x48, 0xF1, 0x65, 0xC2, +0x63, 0xA4, 0x72, 0x33, 0x48, 0xF1, 0x62, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x4C, 0x72, 0x03, 0x61, +0x85, 0x67, 0x80, 0x18, 0x13, 0x4A, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x8C, 0xEA, 0x0E, 0x72, 0x03, 0x60, +0x11, 0x72, 0x05, 0x60, 0x08, 0x10, 0x85, 0x67, +0x80, 0x18, 0xA6, 0x2A, 0x19, 0x10, 0x85, 0x67, +0x80, 0x18, 0x01, 0x4A, 0x15, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF1, 0x7C, 0x9A, 0x30, 0xF0, +0x20, 0x6C, 0xE3, 0xF1, 0x80, 0x9C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xA3, 0xF3, 0x7C, 0x9A, +0x8D, 0xEB, 0xA3, 0xF3, 0x7C, 0xDA, 0xFF, 0x6A, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x05, 0x6B, 0x28, 0xF1, 0x6C, 0xDA, 0x09, 0x6B, +0x28, 0xF1, 0x68, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0xAC, 0xEA, 0x1C, 0x22, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0xFF, 0x6D, +0x83, 0xF4, 0x10, 0x6C, 0x01, 0x4D, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF3, +0x38, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x28, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x01, 0x6E, 0x09, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0xFF, 0x6D, +0x83, 0xF4, 0x10, 0x6C, 0x01, 0x4D, 0x00, 0x6E, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xED, 0x29, 0x5D, 0xCC, 0xEA, +0x03, 0x61, 0x17, 0x5A, 0x03, 0x60, 0x06, 0x10, +0x17, 0x5A, 0x04, 0x60, 0x01, 0x6A, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF4, 0x1C, 0x6C, +0x03, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x00, 0x6A, +0xF2, 0x17, 0x00, 0x65, 0xFF, 0x63, 0x01, 0xD0, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x70, 0x9B, +0x46, 0x67, 0x8E, 0xEB, 0x12, 0x23, 0x00, 0x6E, +0x66, 0x67, 0xE4, 0x67, 0xE6, 0xEE, 0x01, 0x68, +0x0C, 0xEF, 0x07, 0x2F, 0x01, 0x4B, 0xFF, 0x6F, +0xEC, 0xEB, 0x14, 0x73, 0x01, 0x4E, 0xF5, 0x61, +0x14, 0x6B, 0x8F, 0xEC, 0x44, 0xEB, 0xAC, 0xEC, +0x8D, 0xEA, 0x01, 0x90, 0x01, 0x63, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x07, 0xF4, 0x00, 0x6A, +0x04, 0xD2, 0x02, 0xF0, 0x00, 0x4A, 0x05, 0xD2, +0xA8, 0x35, 0x5D, 0x67, 0xB5, 0xE2, 0x44, 0x9D, +0xFF, 0x6C, 0xCC, 0xEC, 0x88, 0x34, 0x51, 0xE4, +0xFF, 0xF7, 0x1F, 0x6B, 0x6C, 0xEC, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF4, 0xB0, 0x9B, 0x30, 0xF0, +0x20, 0x6A, 0x0C, 0x96, 0xC0, 0xF3, 0x44, 0x9A, +0xEC, 0xED, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x01, 0x6C, 0x40, 0xEA, +0x07, 0x97, 0x01, 0x6A, 0x04, 0x63, 0x00, 0xEF, +0x00, 0x6A, 0x20, 0xE8, 0x20, 0xE8, 0x00, 0x65, +0x01, 0x6A, 0x20, 0xE8, 0x20, 0xE8, 0x00, 0x65, +0x00, 0x6A, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x01, 0x75, 0x33, 0x61, +0x01, 0x76, 0x17, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF4, 0x30, 0x9A, 0x30, 0xF0, 0x20, 0x68, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF6, 0xD8, 0x9B, 0x03, 0xF0, 0x00, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x08, 0xF1, 0x00, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x81, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, +0x30, 0x9A, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x68, 0x23, 0xF6, 0xD8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, 0xB1, 0x67, +0x23, 0xF6, 0xDC, 0x9B, 0x67, 0x10, 0x02, 0x75, +0x2C, 0x61, 0x01, 0x76, 0x10, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF4, 0x30, 0x9A, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, +0x23, 0xF6, 0xDC, 0x9B, 0x2D, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF4, 0x30, 0x9A, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x23, 0xF6, +0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, +0x00, 0x6C, 0xB1, 0x67, 0x23, 0xF6, 0xD8, 0x9B, +0x39, 0x10, 0x03, 0x75, 0x38, 0x61, 0x01, 0x76, +0x1A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, +0x30, 0x9A, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF6, +0xD8, 0x9B, 0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, 0xB1, 0x67, +0x43, 0xF6, 0xC0, 0x9B, 0x1B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, +0x30, 0x9A, 0x23, 0xF6, 0x18, 0x4B, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x23, 0xF6, 0x18, 0x4B, +0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, 0x08, 0xF1, +0x00, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0x01, 0x6A, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0xFF, 0x6A, 0xAC, 0xEA, +0x0E, 0x72, 0x51, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0x63, 0xF5, 0x1C, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, +0x00, 0x6C, 0xA7, 0xF5, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF6, 0xC4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, 0x2B, 0xE9, +0x23, 0xF2, 0x04, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, 0x08, 0x6C, +0xFF, 0xF7, 0x1F, 0x6D, 0xAD, 0xF2, 0x03, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF5, +0x1C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x83, 0xF2, 0x18, 0x6C, 0x75, 0xF2, 0x1B, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x83, 0xF2, +0x1C, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0xDE, 0xF3, +0x17, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF2, 0x00, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF6, 0xC8, 0x9B, 0xA3, 0xF2, +0x0C, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xA3, 0xF2, 0x10, 0x6C, 0xB1, 0x67, +0xFF, 0xF7, 0x1F, 0x6E, 0x55, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x63, 0xF5, +0x1C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF2, 0x00, 0x6C, 0x8A, 0xF2, 0x04, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF6, +0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, +0x2B, 0xE9, 0x23, 0xF2, 0x04, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, +0x08, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0x81, 0xF2, +0x08, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF5, 0x1C, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x83, 0xF2, 0x18, 0x6C, 0xD5, 0xF4, +0x04, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x83, 0xF2, 0x1C, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, +0xB9, 0xF0, 0x12, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF6, 0xD0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0xA3, 0xF2, 0x00, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF6, +0xD4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xA3, 0xF2, +0x0C, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF6, +0xC0, 0x9B, 0xA3, 0xF2, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x44, 0x99, 0xFF, 0x68, 0xAC, 0xE8, +0xD0, 0x67, 0xA3, 0xF0, 0x0C, 0x6C, 0x1E, 0xF0, +0x00, 0x6D, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, +0xD0, 0x67, 0xA8, 0xF1, 0x0C, 0x6C, 0x1E, 0xF0, +0x00, 0x6D, 0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x68, 0xAC, 0xE8, 0x09, 0xE4, 0x0A, 0xD4, +0x05, 0xD2, 0x40, 0xF0, 0x71, 0xA2, 0x30, 0xF0, +0x20, 0x69, 0xC0, 0xF3, 0x44, 0x99, 0x04, 0xD3, +0xA3, 0xF0, 0x0C, 0x6C, 0xE0, 0xF1, 0x10, 0x6D, +0xD0, 0x67, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x99, +0xA8, 0xF1, 0x0C, 0x6C, 0xE0, 0xF1, 0x10, 0x6D, +0xD0, 0x67, 0x40, 0xEA, 0x0A, 0x92, 0x40, 0xF0, +0x10, 0xC2, 0x05, 0x93, 0x60, 0xF0, 0x41, 0xA3, +0x02, 0x2A, 0x0D, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x04, 0x96, +0x21, 0xF0, 0x08, 0x6C, 0xF8, 0x6D, 0x40, 0xEA, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0x4C, 0xED, 0x68, 0x45, 0xFB, 0x4B, +0x4C, 0xEB, 0x02, 0x5B, 0x0B, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, +0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x61, 0xF1, +0x09, 0x6E, 0x78, 0x10, 0x68, 0x45, 0xFD, 0x4B, +0x4C, 0xEB, 0x02, 0x5B, 0x0B, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, +0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, 0x61, 0xF1, +0x0A, 0x6E, 0x68, 0x10, 0x6F, 0x45, 0x4C, 0xEB, +0x0A, 0x5B, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0xA1, 0xF1, 0x0A, 0x6E, +0x59, 0x10, 0x68, 0x45, 0xE4, 0x4B, 0x4C, 0xEB, +0x10, 0x5B, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x80, 0xF4, 0x14, 0x6E, +0x49, 0x10, 0x68, 0x45, 0xD4, 0x4B, 0x4C, 0xEB, +0x04, 0x5B, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x80, 0xF4, 0x13, 0x6E, +0x39, 0x10, 0x68, 0x45, 0xD0, 0x4B, 0x4C, 0xEB, +0x38, 0x5B, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x40, 0xF4, 0x13, 0x6E, +0x29, 0x10, 0x68, 0x45, 0x98, 0x4B, 0x4C, 0xEB, +0x08, 0x5B, 0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, +0xE1, 0xF7, 0x1F, 0x6D, 0x40, 0xF4, 0x12, 0x6E, +0x19, 0x10, 0x88, 0x4D, 0x4C, 0xED, 0x35, 0x5D, +0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x21, 0xF4, 0x10, 0x6C, 0xE1, 0xF7, +0x1F, 0x6D, 0x00, 0xF4, 0x12, 0x6E, 0x0A, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x21, 0xF4, 0x10, 0x6C, 0xE1, 0xF7, 0x1F, 0x6D, +0x00, 0xF4, 0x11, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0xAC, 0xEA, 0x0F, 0x5A, 0x0B, 0x60, +0x0D, 0x72, 0x09, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x01, 0xF0, 0x08, 0x6C, +0x70, 0x6D, 0x01, 0x6E, 0x08, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x01, 0xF0, +0x08, 0x6C, 0x70, 0x6D, 0x03, 0x6E, 0x40, 0xEA, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0xAC, 0xEA, 0x26, 0x67, 0x3B, 0x22, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, +0x43, 0xF6, 0x18, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF1, 0x04, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF6, 0x18, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0xD1, 0x67, +0x48, 0xF0, 0x04, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF0, 0x2C, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF1, 0x00, 0x6C, 0xB1, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x48, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, +0x18, 0x6C, 0x01, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF5, 0x1C, 0x6C, 0x43, 0xF6, +0xBC, 0x9B, 0x0F, 0x6E, 0x37, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x68, 0x43, 0xF6, +0x38, 0x9A, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF1, +0x04, 0x6C, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0xB1, 0x67, 0x48, 0xF0, +0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF0, 0x2C, 0x9A, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF1, 0x00, 0x6C, 0xB1, 0x67, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x48, 0xF0, 0x00, 0x6C, 0xB1, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, +0x18, 0x6C, 0x01, 0xF0, 0x00, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF6, 0xBC, 0x9B, 0x23, 0xF5, +0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0xFF, 0x6A, +0xAC, 0xEA, 0x13, 0x22, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, 0x18, 0x6C, +0x08, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF5, +0x1C, 0x6C, 0x43, 0xF6, 0xBC, 0x9B, 0x0F, 0x6E, +0x12, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x01, 0xF0, 0x18, 0x6C, 0x08, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF6, 0xBC, 0x9B, +0x23, 0xF5, 0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x05, 0x97, 0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x68, 0xAC, 0xE8, 0x00, 0x6D, 0x24, 0x67, +0x80, 0x18, 0xFE, 0x4B, 0x99, 0x70, 0x07, 0x61, +0x50, 0x99, 0x40, 0xA2, 0x04, 0x2A, 0x91, 0x67, +0x01, 0x6D, 0x70, 0x6E, 0x03, 0x10, 0x00, 0x6D, +0x91, 0x67, 0xC5, 0x67, 0x80, 0x18, 0xBE, 0x4B, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0xAC, 0xEA, 0x0C, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9A, 0x63, 0xF4, 0x04, 0x6C, 0x23, 0xF1, +0xB4, 0x9B, 0x01, 0x6E, 0x0B, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9A, 0x23, 0xF1, 0xB4, 0x9B, 0x63, 0xF4, +0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0xFF, 0x6A, 0xAC, 0xEA, 0x09, 0x22, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x41, 0xF4, +0x14, 0x6C, 0x80, 0x6D, 0x01, 0x6E, 0x08, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x41, 0xF4, 0x14, 0x6C, 0x80, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0x5B, 0xAC, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0xFF, 0xF7, 0x1F, 0x68, +0xAC, 0xE8, 0x24, 0x67, 0xD0, 0x67, 0x61, 0xF2, +0x10, 0x6C, 0xE0, 0xF3, 0x1F, 0x6D, 0x40, 0xEA, +0x1B, 0xC9, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF6, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x9A, +0x00, 0x6E, 0x23, 0xF4, 0x1C, 0x6C, 0x40, 0xEA, +0x01, 0x6D, 0xA5, 0xF5, 0x14, 0x6C, 0xAB, 0xED, +0x80, 0x18, 0x6E, 0x3C, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF6, 0x64, 0x9B, 0x05, 0x97, 0x4C, 0xEB, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF4, 0x40, 0x9A, +0x4E, 0xEB, 0x01, 0x5B, 0x58, 0x67, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x83, 0xF2, 0x18, 0x68, +0x24, 0x67, 0x18, 0xF0, 0x00, 0x6D, 0x90, 0x67, +0x80, 0x18, 0x6E, 0x3C, 0x05, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF5, 0xA4, 0x9A, 0xA3, 0xF2, +0x08, 0x6C, 0x80, 0x18, 0x6E, 0x3C, 0x90, 0x67, +0xC0, 0x6D, 0x04, 0xD2, 0x80, 0x18, 0x6E, 0x3C, +0x02, 0x67, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF4, +0xA8, 0x9A, 0x63, 0xF2, 0x10, 0x6C, 0x80, 0x18, +0x6E, 0x3C, 0x05, 0x93, 0x04, 0x95, 0xFF, 0x6C, +0x8C, 0xEB, 0x8C, 0xE8, 0x70, 0x33, 0x10, 0x30, +0x4D, 0xE8, 0xAD, 0xEB, 0x60, 0xF0, 0x71, 0xC1, +0x60, 0xF0, 0x12, 0xC1, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0x68, 0x30, 0xF0, 0x20, 0x6A, 0x0C, 0xED, +0x43, 0xF5, 0x04, 0x4A, 0x04, 0xD5, 0xA0, 0x9A, +0x21, 0xF0, 0x04, 0x69, 0x91, 0x67, 0x80, 0x18, +0x6E, 0x3C, 0x04, 0x93, 0x41, 0x23, 0x4C, 0xE8, +0x03, 0x70, 0x00, 0x6A, 0x7B, 0x61, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, +0x1C, 0x6C, 0x04, 0x6D, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, 0x08, 0x4B, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF5, 0x04, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, +0x08, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF2, 0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF5, 0xB4, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x02, 0xF2, 0x08, 0x49, +0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0x63, 0xF6, 0xA8, 0x9B, 0x00, 0x6E, 0x3C, 0x10, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x21, 0xF0, 0x1C, 0x6C, 0x04, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, +0x08, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x91, 0x67, 0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF5, 0x04, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x08, 0xF1, 0x00, 0x6C, +0x03, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF4, 0x08, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF2, 0x04, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF5, +0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF2, +0x0C, 0x69, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x63, 0xF6, 0xA8, 0x9B, 0x91, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0x01, 0x6A, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0x4C, 0xED, 0x08, 0xD4, 0xCC, 0xEA, +0xC0, 0xF0, 0x1C, 0x25, 0x20, 0x22, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x63, 0xF6, +0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x00, 0x6C, 0x21, 0xF0, 0x13, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, 0x08, 0x6C, +0x18, 0xF0, 0x00, 0x6D, 0x02, 0x6E, 0x40, 0xEA, +0x01, 0x6D, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xAB, 0xED, +0x63, 0xF6, 0xD0, 0x9B, 0x90, 0x11, 0x08, 0x93, +0x50, 0x9B, 0x40, 0xA2, 0x01, 0x72, 0x80, 0xF1, +0x0B, 0x61, 0x01, 0x69, 0x2B, 0xE9, 0xA1, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x80, 0x18, 0x6E, 0x3C, +0x08, 0x93, 0x30, 0xF0, 0x20, 0x68, 0x03, 0xF0, +0x00, 0x6C, 0x5D, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF6, 0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x81, 0xF0, 0x08, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF1, 0xB4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x81, 0xF0, 0x18, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, +0x08, 0x6C, 0x18, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA1, 0xF1, +0x10, 0x6C, 0xB1, 0x67, 0x04, 0xF2, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF6, +0x10, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF6, 0x10, 0x4B, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF6, 0xD4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF6, +0xD8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF6, 0xDC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF6, +0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF6, 0xC4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF6, +0xC8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF6, 0xCC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF6, +0xD0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, +0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF6, 0xD4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF6, +0x18, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xC0, 0x9B, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x83, 0xF6, +0x18, 0x4B, 0xD4, 0x10, 0x20, 0x22, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x63, 0xF6, +0xAC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF0, +0x00, 0x6C, 0x20, 0xF3, 0x13, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, 0x08, 0x6C, +0x18, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x01, 0x6D, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xAB, 0xED, +0x83, 0xF6, 0xDC, 0x9B, 0xB4, 0x10, 0x08, 0x93, +0x50, 0x9B, 0x40, 0xA2, 0x01, 0x72, 0xA0, 0xF0, +0x0F, 0x61, 0x30, 0xF0, 0x20, 0x68, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF6, 0xAC, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0xF0, 0x00, 0x6C, 0x20, 0xF3, +0x13, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF1, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x81, 0xF0, 0x18, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF4, 0x08, 0x6C, +0x18, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x08, 0x93, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x69, +0xDD, 0x9B, 0x2B, 0xE9, 0xA1, 0xF1, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF6, 0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF6, +0x1C, 0x4B, 0xC0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF6, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF6, 0xC4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF6, 0xC8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF6, 0xCC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF6, 0xD0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF6, 0xD4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF6, 0xD8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF6, 0xDC, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF6, 0xC0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF0, 0x10, 0x6C, +0xB1, 0x67, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF6, 0x04, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xC0, 0x9B, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF0, 0x10, 0x6C, 0xB1, 0x67, +0xC3, 0xF6, 0x04, 0x4B, 0xC0, 0x9B, 0x40, 0xEA, +0x07, 0x97, 0x06, 0x91, 0x05, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0x05, 0x67, +0x43, 0xF5, 0xA4, 0x9A, 0x21, 0xF0, 0x04, 0x6C, +0x80, 0x18, 0x6E, 0x3C, 0x40, 0xC0, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF4, 0xA8, 0x9A, 0x03, 0xF2, +0x04, 0x6C, 0x80, 0x18, 0x6E, 0x3C, 0x01, 0x72, +0x02, 0x61, 0x03, 0x6A, 0x06, 0x10, 0x02, 0x2A, +0x01, 0x6A, 0x03, 0x10, 0x05, 0x72, 0x02, 0x61, +0x02, 0x6A, 0x41, 0xC0, 0x05, 0x97, 0x04, 0x90, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x05, 0x67, 0x01, 0x6D, 0x21, 0xF0, +0x00, 0x6C, 0xAB, 0xED, 0x80, 0x18, 0x6E, 0x3C, +0xF0, 0x6B, 0x4C, 0xEB, 0x72, 0x33, 0x61, 0xC0, +0x0F, 0x6B, 0x4C, 0xEB, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF4, 0xB8, 0x9A, 0x60, 0xC0, 0x03, 0xF2, +0x04, 0x6C, 0x80, 0x18, 0x6E, 0x3C, 0x0C, 0x72, +0x02, 0x61, 0x03, 0x6A, 0x09, 0x10, 0x08, 0x72, +0x02, 0x61, 0x01, 0x6A, 0x05, 0x10, 0x04, 0x72, +0x02, 0x61, 0x02, 0x6A, 0x01, 0x10, 0x01, 0x2A, +0x42, 0xC0, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, +0xB8, 0x9A, 0x23, 0xF6, 0x04, 0x6C, 0x80, 0x18, +0x6E, 0x3C, 0x4F, 0xEA, 0x43, 0xC0, 0x01, 0x6A, +0x44, 0xC0, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0x69, 0x02, 0x5D, +0x0D, 0xD5, 0x0F, 0xD7, 0xCC, 0xE9, 0x70, 0x60, +0x54, 0x59, 0x6E, 0x60, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0x83, 0xF1, 0x00, 0x4B, +0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, 0x63, 0xF4, +0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF6, +0xA8, 0x9B, 0x63, 0xF4, 0x1C, 0x6C, 0xD1, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, +0x00, 0x4B, 0xC0, 0xF3, 0x44, 0x98, 0xA0, 0x9B, +0x63, 0xF4, 0x1C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0xE5, 0xF5, 0x08, 0x6C, 0xFF, 0x6D, 0x80, 0x18, +0x6E, 0x3C, 0x00, 0xF6, 0x40, 0x30, 0x00, 0xF6, +0x03, 0x30, 0x40, 0x6A, 0x0C, 0xEA, 0x03, 0x22, +0x80, 0x6A, 0x4B, 0xEA, 0x4D, 0xE8, 0x0F, 0x92, +0x0B, 0x72, 0x10, 0x61, 0x0D, 0x93, 0xA3, 0xF0, +0x00, 0x6A, 0x06, 0xD2, 0x05, 0xF1, 0x00, 0x4A, +0x07, 0xD2, 0x68, 0x32, 0x7D, 0x67, 0x49, 0xE3, +0x8C, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, +0xAC, 0x9A, 0x13, 0x10, 0x0F, 0x92, 0x00, 0x6B, +0x0C, 0x72, 0x13, 0x61, 0x0D, 0x93, 0xE3, 0xF0, +0x08, 0x6A, 0x04, 0xD2, 0x05, 0xF1, 0x00, 0x4A, +0x05, 0xD2, 0x68, 0x32, 0x7D, 0x67, 0x49, 0xE3, +0x88, 0xAA, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, +0xB0, 0x9A, 0x80, 0x18, 0x6E, 0x3C, 0xFF, 0x6B, +0x4C, 0xEB, 0x0D, 0xE3, 0x00, 0x53, 0x00, 0x68, +0x02, 0x61, 0xFF, 0x68, 0x6C, 0xE8, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x44, 0x9A, 0x83, 0xF1, 0xA0, 0x9B, 0x63, 0xF4, +0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0x01, 0x10, +0xFF, 0x68, 0x50, 0x67, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xF9, 0x63, 0x0D, 0x62, 0x0C, 0xD1, 0x0B, 0xD0, +0x00, 0xF6, 0xA0, 0x35, 0x00, 0xF6, 0xC0, 0x36, +0x00, 0xF6, 0xE0, 0x37, 0x00, 0xF6, 0xA3, 0x35, +0x00, 0xF6, 0xC3, 0x36, 0x00, 0xF6, 0xE3, 0x37, +0x05, 0xD5, 0x06, 0xD6, 0x07, 0xD7, 0x5D, 0x67, +0x40, 0xF0, 0x48, 0x82, 0x08, 0xD2, 0x5D, 0x67, +0x40, 0xF0, 0x4C, 0xA2, 0x04, 0xD2, 0x20, 0xF0, +0x6F, 0xA4, 0x01, 0x6A, 0x37, 0x2B, 0x04, 0x92, +0x40, 0x5A, 0x00, 0x6A, 0x33, 0x60, 0x83, 0xF4, +0x10, 0x68, 0x10, 0xF0, 0x00, 0x69, 0x90, 0x67, +0xB1, 0x67, 0x80, 0x18, 0x6E, 0x3C, 0x08, 0x22, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x90, 0x67, 0xB1, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0x04, 0x92, 0x04, 0x6C, 0x06, 0x93, 0x8B, 0xEC, +0x4C, 0xEC, 0x05, 0x92, 0x7F, 0x6E, 0xCC, 0xEB, +0xCC, 0xEA, 0x60, 0x33, 0x4D, 0xEB, 0x07, 0x92, +0xFF, 0xF7, 0x1F, 0x6D, 0x07, 0xF2, 0x00, 0x4C, +0xCC, 0xEA, 0x40, 0x32, 0x40, 0x32, 0x4D, 0xEB, +0x08, 0x92, 0xAC, 0xEC, 0x01, 0x6D, 0x4C, 0xEE, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x00, 0xF6, 0xC0, 0x36, 0xAB, 0xED, 0x6D, 0xEE, +0x40, 0xEA, 0x01, 0x6A, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x0F, 0xD7, 0x20, 0xF0, 0x6F, 0xA4, 0xFF, 0x68, +0x26, 0x67, 0xAC, 0xE8, 0x01, 0x6A, 0x3F, 0x2B, +0x02, 0x5E, 0x00, 0x6A, 0x3C, 0x60, 0x83, 0xF4, +0x10, 0x6C, 0x10, 0xF0, 0x00, 0x6D, 0x80, 0x18, +0x6E, 0x3C, 0x0A, 0x22, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x44, 0x9A, 0x83, 0xF4, 0x10, 0x6C, +0x10, 0xF0, 0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, +0x0F, 0x92, 0x0B, 0x72, 0x13, 0x61, 0xA3, 0xF0, +0x00, 0x6B, 0x06, 0xD3, 0x05, 0xF1, 0x00, 0x4B, +0x07, 0xD3, 0x28, 0x31, 0x7D, 0x67, 0x25, 0xE3, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9A, 0x8C, 0xA9, 0xC3, 0xF6, +0xAC, 0x9B, 0x12, 0x10, 0xE3, 0xF0, 0x08, 0x6B, +0x04, 0xD3, 0x05, 0xF1, 0x00, 0x4B, 0x05, 0xD3, +0x28, 0x31, 0x7D, 0x67, 0x25, 0xE3, 0x30, 0xF0, +0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x9A, 0x88, 0xA9, 0xC3, 0xF6, 0xB0, 0x9B, +0xD0, 0x67, 0x40, 0xEA, 0x01, 0x6A, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x0C, 0xD4, 0x25, 0x67, 0xA0, 0xA5, 0x00, 0x6E, +0x0B, 0x6F, 0x80, 0x18, 0x46, 0x4E, 0x0C, 0x94, +0xA1, 0xA1, 0x01, 0x6E, 0x0B, 0x6F, 0x80, 0x18, +0x46, 0x4E, 0x0C, 0x94, 0xA2, 0xA1, 0x00, 0x6E, +0x0C, 0x6F, 0x80, 0x18, 0x46, 0x4E, 0x0C, 0x94, +0xA3, 0xA1, 0x01, 0x6E, 0x0C, 0x6F, 0x80, 0x18, +0x46, 0x4E, 0xFD, 0x6A, 0x00, 0x6B, 0x11, 0x67, +0x06, 0xD2, 0x07, 0xD3, 0x07, 0x93, 0x03, 0x6A, +0x6C, 0xEA, 0x03, 0x72, 0x0A, 0x61, 0x44, 0x80, +0xA1, 0x80, 0xC2, 0x80, 0xE3, 0x80, 0x0C, 0x94, +0x04, 0xD2, 0x06, 0x92, 0x05, 0xD2, 0x80, 0x18, +0x18, 0x4E, 0x06, 0x92, 0x07, 0x93, 0x01, 0x48, +0x01, 0x4A, 0x06, 0xD2, 0x01, 0x4B, 0x07, 0xD3, +0x06, 0x93, 0xFF, 0x6A, 0x4C, 0xEB, 0x07, 0x92, +0x06, 0xD3, 0x1C, 0x72, 0xE3, 0x61, 0x11, 0x67, +0x29, 0x69, 0x43, 0x41, 0x03, 0x6B, 0x6C, 0xEA, +0x03, 0x72, 0x0D, 0x61, 0x20, 0xF0, 0xAD, 0x80, +0x20, 0xF0, 0xCE, 0x80, 0x20, 0xF0, 0xEF, 0x80, +0x20, 0xF0, 0x50, 0x80, 0x0C, 0x94, 0x05, 0xD1, +0x04, 0xD2, 0x80, 0x18, 0x18, 0x4E, 0x01, 0x49, +0x3D, 0x71, 0x01, 0x48, 0xEA, 0x61, 0x0B, 0x97, +0x0A, 0x91, 0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x02, 0x5D, 0x03, 0x61, +0x01, 0x6A, 0x4B, 0xEA, 0x18, 0x10, 0x07, 0xF4, +0x00, 0x6A, 0x04, 0xD2, 0x02, 0xF0, 0x00, 0x4A, +0x05, 0xD2, 0xA8, 0x35, 0x5D, 0x67, 0xB5, 0xE2, +0x44, 0x9D, 0xFF, 0x6C, 0xCC, 0xEC, 0x88, 0x34, +0x51, 0xE4, 0xFF, 0xF7, 0x1F, 0x6A, 0x4C, 0xEC, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, 0xB0, 0x9A, +0xEC, 0xED, 0x80, 0x18, 0x6E, 0x3C, 0x07, 0x97, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF0, 0x24, 0xA4, 0x03, 0xF4, 0xF0, 0x9A, +0x05, 0x67, 0x18, 0x6E, 0x00, 0x6D, 0x80, 0x18, +0x9C, 0x4E, 0xEB, 0x49, 0xFF, 0x6B, 0x6C, 0xE9, +0x02, 0x59, 0x4F, 0x60, 0x4C, 0xEB, 0x0F, 0x5B, +0x78, 0x67, 0x01, 0x5B, 0x78, 0x67, 0x6B, 0xEB, +0x6C, 0xE8, 0x01, 0x70, 0x12, 0x60, 0x05, 0x20, +0x02, 0x70, 0x23, 0x60, 0x03, 0x70, 0x2D, 0x60, +0x40, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xFF, 0xF7, +0x1F, 0x69, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF0, +0x00, 0x6C, 0xB1, 0x67, 0x6E, 0xF7, 0x10, 0x6E, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0xFF, 0xF7, 0x1F, 0x69, 0x43, 0xF0, +0x00, 0x6C, 0xB1, 0x67, 0x04, 0xF3, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x48, 0xF1, +0x04, 0x6C, 0xB1, 0x67, 0x6E, 0xF0, 0x17, 0x6E, +0x1F, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xFF, 0xF7, +0x1F, 0x69, 0xC0, 0xF3, 0x44, 0x98, 0x43, 0xF0, +0x00, 0x6C, 0xB1, 0x67, 0x6E, 0xF7, 0x10, 0x6E, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0xFF, 0xF7, 0x1F, 0x69, 0x43, 0xF0, +0x00, 0x6C, 0xB1, 0x67, 0x04, 0xF3, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x48, 0xF1, +0x04, 0x6C, 0xB1, 0x67, 0x24, 0xF0, 0x10, 0x6E, +0x40, 0xEA, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x02, 0x5D, 0x05, 0x67, +0x12, 0x91, 0x37, 0x60, 0x04, 0x26, 0x04, 0xD1, +0x80, 0x18, 0x76, 0x4A, 0x33, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF4, 0x50, 0x9A, 0x4C, 0xEF, +0x4A, 0xEF, 0x08, 0xD7, 0x0C, 0x60, 0x00, 0x6E, +0xE2, 0x67, 0x80, 0x18, 0x9C, 0x4E, 0x61, 0x42, +0x24, 0x23, 0x08, 0x94, 0xD1, 0x67, 0xA2, 0x67, +0x80, 0x18, 0x67, 0x4A, 0x22, 0x67, 0x03, 0xF0, +0x08, 0x6B, 0x06, 0xD3, 0x05, 0xF1, 0x00, 0x4B, +0x07, 0xD3, 0x08, 0x30, 0x7D, 0x67, 0x01, 0xE3, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0xD0, 0x9B, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x8C, 0xA8, 0x01, 0x6D, 0xAB, 0xED, 0x2C, 0xEE, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x0D, 0x6C, 0x40, 0xEA, 0x01, 0x6A, +0x01, 0x10, 0x00, 0x6A, 0x0D, 0x97, 0x0C, 0x91, +0x0B, 0x90, 0x07, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x00, 0x6D, 0x0A, 0xD4, 0x80, 0x18, 0x40, 0x4A, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, 0x28, 0x9A, +0x30, 0xF0, 0x20, 0x68, 0xEE, 0xF6, 0x08, 0x48, +0x00, 0x6A, 0x90, 0x67, 0xF1, 0x67, 0xA2, 0x67, +0xBC, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x90, 0x67, 0xF1, 0x67, 0x01, 0x6A, 0x00, 0x6D, +0xBC, 0x6E, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x00, 0x6A, 0xF1, 0x67, 0x90, 0x67, 0xBC, 0x6E, +0xA2, 0x67, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x0A, 0x94, 0x01, 0x6D, 0x80, 0x18, 0x40, 0x4A, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x63, 0xF5, 0x10, 0x69, +0x01, 0x6D, 0x91, 0x67, 0xAB, 0xED, 0x80, 0x18, +0x6E, 0x3C, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x68, +0x04, 0x96, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6D, +0x91, 0x67, 0xAB, 0xED, 0xFF, 0xF5, 0x1E, 0x4E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x04, 0x96, +0x01, 0x6D, 0x91, 0x67, 0xAB, 0xED, 0x40, 0xEA, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x44, 0x99, 0xFF, 0x6D, 0x83, 0xF4, +0x10, 0x6C, 0x01, 0x4D, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF1, 0x18, 0x9A, +0x00, 0x6C, 0x01, 0x6E, 0xB0, 0x67, 0x80, 0x18, +0xFB, 0x3C, 0x00, 0x6C, 0xB0, 0x67, 0xC4, 0x67, +0x80, 0x18, 0xFB, 0x3C, 0xB0, 0x67, 0x00, 0x6C, +0x01, 0x6E, 0x80, 0x18, 0xFB, 0x3C, 0xC0, 0xF3, +0x44, 0x99, 0xFF, 0x6D, 0x83, 0xF4, 0x10, 0x6C, +0x01, 0x4D, 0x01, 0x6E, 0x40, 0xEA, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x52, 0x9C, +0x40, 0xA2, 0x13, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF1, 0x18, 0x9A, 0x00, 0x6C, 0x01, 0x6E, +0xB0, 0x67, 0x80, 0x18, 0xFB, 0x3C, 0x00, 0x6C, +0xC4, 0x67, 0xB0, 0x67, 0x80, 0x18, 0xFB, 0x3C, +0x00, 0x6C, 0xB0, 0x67, 0x01, 0x6E, 0x80, 0x18, +0xFB, 0x3C, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x24, 0x67, 0x09, 0xD5, +0x80, 0x18, 0x61, 0x4C, 0x52, 0x99, 0x40, 0xA2, +0x04, 0x22, 0x91, 0x67, 0x01, 0x6D, 0x80, 0x18, +0x35, 0x4C, 0x20, 0xF0, 0x58, 0xA1, 0x04, 0x22, +0x91, 0x67, 0xE0, 0xF3, 0x1F, 0x6D, 0x02, 0x10, +0x91, 0x67, 0x00, 0x6D, 0x30, 0xF0, 0x20, 0x68, +0x80, 0x18, 0x43, 0x4C, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0x6D, 0xC5, 0x67, 0x03, 0xF0, 0x0C, 0x6C, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF3, +0x10, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x03, 0xF0, 0x0C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0x6D, 0xC5, 0x67, +0x08, 0xF1, 0x0C, 0x6C, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF3, 0x10, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xA0, 0x9B, 0x08, 0xF1, 0x0C, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x09, 0x92, 0x07, 0x2A, +0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF4, 0x1C, 0x6C, +0x03, 0x6D, 0x00, 0x6E, 0x0A, 0x10, 0x09, 0x93, +0x00, 0x6A, 0x01, 0x73, 0x0B, 0x61, 0xC0, 0xF3, +0x44, 0x98, 0x03, 0x6D, 0x23, 0xF4, 0x1C, 0x6C, +0xC5, 0x67, 0x40, 0xEA, 0x91, 0x67, 0x80, 0x18, +0x46, 0x4F, 0x01, 0x6A, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x0C, 0xD4, 0x20, 0xF0, 0x6F, 0xA4, 0xFF, 0x69, +0x06, 0x67, 0xAC, 0xE9, 0x01, 0x6A, 0xE0, 0xF1, +0x18, 0x2B, 0x07, 0x5E, 0xE0, 0xF1, 0x14, 0x60, +0x01, 0x76, 0x02, 0x61, 0x03, 0x59, 0x03, 0x10, +0x02, 0x76, 0x03, 0x61, 0x05, 0x59, 0xE0, 0xF1, +0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0x0C, 0x94, +0x03, 0xF4, 0xF0, 0x9A, 0x00, 0x6D, 0x18, 0x6E, +0x80, 0x18, 0x9C, 0x4E, 0x07, 0xD2, 0x07, 0x93, +0x06, 0xF0, 0x01, 0x6A, 0x4B, 0xEA, 0x4C, 0xEB, +0x07, 0x58, 0x06, 0xD3, 0x08, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0x08, 0x33, 0xE2, 0xF6, 0x1C, 0x4A, +0x69, 0xE2, 0x40, 0x9A, 0x00, 0xEA, 0x00, 0x69, +0x5A, 0x11, 0x05, 0x70, 0x25, 0x61, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, +0x10, 0x6C, 0xE7, 0xF7, 0x10, 0x6D, 0xA0, 0xF2, +0x0B, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA1, 0xF1, 0x10, 0x6C, 0xDF, 0xF7, 0x00, 0x6D, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA1, 0xF1, 0x14, 0x69, 0x91, 0x67, 0x00, 0xF7, +0x00, 0x6D, 0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0xC3, 0xF6, 0xB8, 0x9B, 0x04, 0x6E, 0x4C, 0x10, +0x06, 0x70, 0x25, 0x61, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x01, 0xF0, 0x10, 0x6C, +0xE7, 0xF7, 0x10, 0x6D, 0xA0, 0xF2, 0x0B, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA1, 0xF1, +0x10, 0x6C, 0xDF, 0xF7, 0x00, 0x6D, 0x02, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0xA1, 0xF1, +0x14, 0x69, 0x91, 0x67, 0x00, 0xF7, 0x00, 0x6D, +0x06, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0xC3, 0xF6, +0xB8, 0x9B, 0x05, 0x6E, 0x25, 0x10, 0x25, 0x28, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0xF0, 0x10, 0x6C, 0xE7, 0xF7, 0x10, 0x6D, +0x80, 0xF1, 0x1B, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xA1, 0xF1, 0x10, 0x6C, 0xDF, 0xF7, +0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xA1, 0xF1, 0x14, 0x69, 0x91, 0x67, +0x00, 0xF7, 0x00, 0x6D, 0x07, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0xC3, 0xF6, 0xB8, 0x9B, 0x91, 0x67, 0x06, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0xA1, 0xF1, 0x10, 0x6C, 0x0F, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x06, 0x93, 0x06, 0xF0, +0x00, 0x6A, 0xA1, 0xF4, 0x1C, 0x6C, 0x4D, 0xEB, +0x06, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x00, 0x6E, +0x18, 0x69, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF1, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF2, 0x1C, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0xAC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF2, 0x08, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xE3, 0xF2, 0x0C, 0x6C, 0x0F, 0x6D, 0x06, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x81, 0xF0, +0x0C, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x0C, 0x93, 0x53, 0x9B, 0x40, 0xA2, +0xA0, 0xF0, 0x05, 0x2A, 0x83, 0x67, 0x05, 0x6D, +0x80, 0x18, 0x3D, 0x4B, 0x0C, 0x94, 0x06, 0x6D, +0x6A, 0x10, 0x01, 0x71, 0x09, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF2, +0x00, 0x6C, 0x10, 0x6D, 0x01, 0x6E, 0x08, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, +0x03, 0xF2, 0x00, 0x6C, 0x10, 0x6D, 0x00, 0x6E, +0x30, 0xF0, 0x20, 0x68, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xA1, 0xF1, 0x10, 0x6C, 0x0F, 0x6D, +0x05, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xA1, 0xF1, 0x10, 0x6C, 0xC0, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x30, 0x36, +0x2D, 0xEE, 0xA1, 0xF1, 0x10, 0x6C, 0x1F, 0xF7, +0x00, 0x6D, 0x40, 0xEA, 0x06, 0x93, 0x04, 0xF0, +0x00, 0x6A, 0xA1, 0xF4, 0x1C, 0x6C, 0x4D, 0xEB, +0x06, 0xD3, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF1, +0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x01, 0x6E, +0x10, 0x69, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x23, 0xF1, 0xB4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xA3, 0xF2, 0x1C, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF0, 0xAC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0xE3, 0xF2, 0x08, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0xE3, 0xF2, 0x0C, 0x6C, 0x0F, 0x6D, 0x08, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x81, 0xF0, +0x0C, 0x6C, 0x1E, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x40, 0xEA, 0x0C, 0x93, 0x53, 0x9B, 0x40, 0xA2, +0x3A, 0x2A, 0x83, 0x67, 0x04, 0x6D, 0x80, 0x18, +0x3D, 0x4B, 0x0C, 0x94, 0x00, 0x6D, 0x80, 0x18, +0x4C, 0x4B, 0x31, 0x10, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0xA1, 0xF1, 0x10, 0x6C, +0x0F, 0x6D, 0x0A, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0xA1, 0xF1, 0x10, 0x6C, 0xC0, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x30, 0x36, 0x2D, 0xEE, 0xA1, 0xF1, 0x10, 0x6C, +0x1F, 0xF7, 0x00, 0x6D, 0x40, 0xEA, 0x06, 0x93, +0x02, 0xF0, 0x00, 0x6A, 0xA1, 0xF4, 0x1C, 0x6C, +0x4D, 0xEB, 0x06, 0xD3, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF1, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x01, 0x6E, 0x08, 0x69, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x81, 0xF0, 0x0C, 0x6C, 0x1E, 0xF0, +0x00, 0x6D, 0x06, 0x6E, 0x40, 0xEA, 0x0C, 0x94, +0x30, 0xF0, 0x20, 0x68, 0xEE, 0xF6, 0x08, 0x48, +0x00, 0x6D, 0x80, 0x18, 0x40, 0x4A, 0x01, 0x6A, +0x90, 0x67, 0x00, 0x6D, 0xEE, 0x6E, 0x04, 0x6F, +0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, 0x12, 0x6B, +0x90, 0x67, 0x00, 0x6D, 0x33, 0x6E, 0x1F, 0x6F, +0x04, 0xD3, 0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF4, 0x10, 0x4A, 0xE0, 0x9A, +0x90, 0x67, 0x00, 0x6D, 0x3F, 0x6E, 0x04, 0xD1, +0x80, 0x18, 0xE1, 0x4E, 0x00, 0x6B, 0xA3, 0x67, +0x90, 0x67, 0xEE, 0x6E, 0x04, 0x6F, 0x04, 0xD3, +0x80, 0x18, 0xE1, 0x4E, 0x01, 0x6A, 0x90, 0x67, +0xA2, 0x67, 0xEE, 0x6E, 0x04, 0x6F, 0x04, 0xD2, +0x80, 0x18, 0xE1, 0x4E, 0x12, 0x6B, 0x90, 0x67, +0x01, 0x6D, 0x33, 0x6E, 0x1F, 0x6F, 0x04, 0xD3, +0x80, 0x18, 0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF4, 0x10, 0x4A, 0xE0, 0x9A, 0x90, 0x67, +0x01, 0x6D, 0x3F, 0x6E, 0x04, 0xD1, 0x80, 0x18, +0xE1, 0x4E, 0x00, 0x6B, 0x90, 0x67, 0x01, 0x6D, +0xEE, 0x6E, 0x04, 0x6F, 0x04, 0xD3, 0x80, 0x18, +0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, +0x10, 0x4B, 0xE0, 0x9B, 0x06, 0x92, 0x90, 0x67, +0x00, 0x6D, 0x18, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, +0x10, 0x4B, 0x06, 0x92, 0xE0, 0x9B, 0x90, 0x67, +0x01, 0x6D, 0x18, 0x6E, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x0C, 0x94, 0x01, 0x6D, 0x80, 0x18, +0x40, 0x4A, 0x07, 0x92, 0x01, 0x4A, 0x08, 0x22, +0x0C, 0x94, 0x80, 0x18, 0x1D, 0x4F, 0x0C, 0x94, +0x80, 0x18, 0x46, 0x4F, 0x01, 0x6A, 0x01, 0x10, +0x00, 0x6A, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x08, 0xD4, 0x09, 0xD5, +0x52, 0x9C, 0x60, 0xA2, 0x45, 0x67, 0x55, 0x2B, +0x02, 0x75, 0x29, 0x61, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0xC1, 0xF4, 0x00, 0x69, +0x91, 0x67, 0xE0, 0xF7, 0x1F, 0x6D, 0x00, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF6, +0x14, 0x4B, 0xA0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x08, 0x49, 0x91, 0x67, 0xE0, 0xF7, +0x1F, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF6, 0x14, 0x4B, 0xC0, 0xF3, +0x44, 0x98, 0xA0, 0x9B, 0x91, 0x67, 0x01, 0x6E, +0x40, 0xEA, 0x03, 0x6A, 0x2A, 0x10, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0xC1, 0xF4, +0x00, 0x69, 0x91, 0x67, 0xE0, 0xF7, 0x1F, 0x6D, +0x00, 0xF4, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF6, 0x14, 0x4B, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x08, 0x49, +0x91, 0x67, 0xE0, 0xF7, 0x1F, 0x6D, 0x00, 0xF4, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF6, 0x14, 0x4B, 0xC0, 0xF3, 0x44, 0x98, +0xA0, 0x9B, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0x09, 0x92, 0x6F, 0x42, 0x02, 0x5B, 0x46, 0x60, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF5, 0x10, 0x69, 0x91, 0x67, 0x00, 0xF3, +0x00, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF6, 0xA8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF1, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x41, 0xF4, 0x04, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF5, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x41, 0xF4, 0x14, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, 0xAC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF4, 0x18, 0x6C, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF5, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x09, 0x96, 0xFD, 0xF2, 0x14, 0x49, 0x91, 0x67, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0x43, 0xF4, 0xA8, 0x9B, +0x09, 0x96, 0x47, 0x10, 0x03, 0x72, 0x46, 0x61, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF5, 0x10, 0x69, 0x91, 0x67, 0x00, 0xF3, +0x00, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF6, 0xA8, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF1, 0xA0, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x41, 0xF4, 0x04, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF5, 0xB0, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0x41, 0xF4, 0x14, 0x6C, 0x01, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF3, 0xAC, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF4, 0x18, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF5, 0xA4, 0x9B, 0xC0, 0xF3, 0x44, 0x98, +0xFD, 0xF2, 0x14, 0x49, 0x91, 0x67, 0x03, 0x6E, +0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, +0x44, 0x98, 0x43, 0xF4, 0xA8, 0x9B, 0x91, 0x67, +0x03, 0x6E, 0x40, 0xEA, 0x08, 0x94, 0x80, 0x18, +0x46, 0x4F, 0x07, 0x97, 0x06, 0x91, 0x05, 0x90, +0x04, 0x63, 0x00, 0xEF, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x03, 0x75, 0x24, 0x67, +0x53, 0x60, 0x01, 0x76, 0x09, 0x61, 0x30, 0xF0, +0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, +0x00, 0x6C, 0xFF, 0x6D, 0x01, 0x6E, 0x08, 0x10, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x21, 0xF0, 0x00, 0x6C, 0xFF, 0x6D, 0x02, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF6, +0x0C, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0x00, 0x6E, +0x2E, 0x10, 0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, +0x44, 0x98, 0x21, 0xF0, 0x00, 0x6C, 0xFF, 0x6D, +0x31, 0x6E, 0x0A, 0x10, 0x02, 0x76, 0x12, 0x61, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x44, 0x98, +0x21, 0xF0, 0x00, 0x6C, 0xFF, 0x6D, 0x32, 0x6E, +0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, 0x23, 0xF6, +0x0C, 0x6C, 0xFF, 0xF7, 0x1F, 0x6D, 0x00, 0xF4, +0x00, 0x6E, 0x11, 0x10, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x44, 0x98, 0x21, 0xF0, 0x00, 0x6C, +0xFF, 0x6D, 0x33, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF6, 0x0C, 0x6C, 0xFF, 0xF7, +0x1F, 0x6D, 0x00, 0xF4, 0x04, 0x6E, 0x40, 0xEA, +0x91, 0x67, 0x80, 0x18, 0x46, 0x4F, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0x01, 0x76, 0xD0, 0x61, 0xC6, 0x17, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x01, 0x75, 0x08, 0xD4, 0x26, 0x61, 0x30, 0xF0, +0x20, 0x68, 0x30, 0xF0, 0x20, 0x6B, 0x43, 0xF4, +0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, +0x04, 0x6C, 0x00, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF2, 0x0C, 0x69, 0x91, 0x67, +0x20, 0x6D, 0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF5, 0xB4, 0x9B, 0xC0, 0xF3, +0x44, 0x98, 0x91, 0x67, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, +0x91, 0x67, 0x63, 0xF6, 0xA8, 0x9B, 0x00, 0x6E, +0x46, 0x10, 0x02, 0x75, 0x1D, 0x61, 0x30, 0xF0, +0x20, 0x6B, 0x30, 0xF0, 0x20, 0x68, 0x43, 0xF4, +0xA8, 0x9B, 0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, +0x04, 0x6C, 0x05, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, +0x44, 0x98, 0x23, 0xF2, 0x0C, 0x69, 0x91, 0x67, +0x20, 0x6D, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x91, 0x67, +0xC3, 0xF5, 0xB4, 0x9B, 0x00, 0x6E, 0x1E, 0x10, +0x03, 0x75, 0x26, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x68, 0x43, 0xF4, 0xA8, 0x9B, +0xC0, 0xF3, 0x44, 0x98, 0x03, 0xF2, 0x04, 0x6C, +0x01, 0x6E, 0x40, 0xEA, 0xC0, 0xF3, 0x44, 0x98, +0x23, 0xF2, 0x0C, 0x69, 0x91, 0x67, 0x20, 0x6D, +0x00, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x98, 0xC3, 0xF5, 0xB4, 0x9B, +0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x98, 0x63, 0xF6, +0xA8, 0x9B, 0x91, 0x67, 0x01, 0x6E, 0x40, 0xEA, +0x08, 0x94, 0x80, 0x18, 0x46, 0x4F, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x01, 0x6A, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFC, 0x63, 0x07, 0x62, +0x06, 0xD1, 0x05, 0xD0, 0x04, 0x67, 0x25, 0x67, +0x80, 0x18, 0x34, 0x51, 0xB1, 0x67, 0x90, 0x67, +0x80, 0x18, 0x89, 0x50, 0x20, 0xF0, 0x2D, 0xC0, +0x90, 0x67, 0x80, 0x18, 0x46, 0x4F, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x01, 0x75, +0x04, 0x67, 0x0C, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9A, +0x03, 0xF2, 0x04, 0x6C, 0x23, 0xF4, 0xB8, 0x9B, +0x08, 0x6E, 0x19, 0x10, 0x02, 0x75, 0x0C, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9A, 0x03, 0xF2, 0x04, 0x6C, +0x23, 0xF4, 0xB8, 0x9B, 0x04, 0x6E, 0x0B, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0x9A, 0x23, 0xF4, 0xB8, 0x9B, +0x03, 0xF2, 0x04, 0x6C, 0x0C, 0x6E, 0x40, 0xEA, +0x90, 0x67, 0x80, 0x18, 0x46, 0x4F, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x7D, 0x67, 0x04, 0x67, 0x47, 0x43, 0x0A, 0xD6, +0x20, 0xF0, 0xAC, 0xC0, 0x21, 0x4A, 0x60, 0xA2, +0x46, 0x67, 0xAD, 0xEA, 0x20, 0xF0, 0x6B, 0xC4, +0x20, 0xF0, 0x4A, 0xC4, 0x25, 0x67, 0xA7, 0x67, +0x80, 0x18, 0x7E, 0x51, 0x0A, 0x96, 0xB1, 0x67, +0x90, 0x67, 0x80, 0x18, 0x05, 0x51, 0x90, 0x67, +0x80, 0x18, 0x46, 0x4F, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x0B, 0xD5, 0x0C, 0xD6, 0x20, 0xF0, 0x44, 0xA4, +0x04, 0x67, 0x27, 0x67, 0x05, 0xD2, 0x20, 0xF0, +0x6F, 0xA4, 0x01, 0x6A, 0x61, 0x2B, 0xFB, 0x4A, +0xCC, 0xEA, 0x5D, 0x2A, 0xFF, 0x75, 0x06, 0x61, +0xFF, 0x77, 0x04, 0x61, 0x01, 0x6B, 0x03, 0x6D, +0x04, 0xD3, 0x07, 0x10, 0x0B, 0x93, 0x04, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x50, 0x2A, 0xA3, 0x67, +0x04, 0xD2, 0x0C, 0x96, 0x90, 0x67, 0x80, 0x18, +0x8F, 0x4A, 0x0C, 0x95, 0x90, 0x67, 0x80, 0x18, +0x73, 0x51, 0x20, 0xF0, 0x4B, 0xA0, 0x03, 0x2A, +0x01, 0x6A, 0x20, 0xF0, 0x4B, 0xC0, 0x0B, 0x92, +0xFF, 0x4A, 0x02, 0x5A, 0x02, 0x60, 0x0B, 0x91, +0x0C, 0x10, 0x0B, 0x93, 0x03, 0x73, 0x05, 0x61, +0xFF, 0x71, 0x09, 0x61, 0x20, 0xF0, 0x2B, 0xA0, +0x06, 0x10, 0x04, 0x92, 0x04, 0x22, 0x20, 0xF0, +0x2B, 0xA0, 0x00, 0x6D, 0x01, 0x10, 0x03, 0x6D, +0x90, 0x67, 0xD1, 0x67, 0xF1, 0x67, 0x80, 0x18, +0x98, 0x51, 0x05, 0x92, 0xFF, 0x6B, 0xEB, 0x4A, +0x6C, 0xEA, 0x02, 0x5A, 0x18, 0x60, 0x20, 0xF0, +0x4A, 0xA0, 0x01, 0x72, 0x06, 0x61, 0x0C, 0x93, +0x01, 0x73, 0x03, 0x61, 0x90, 0x67, 0x01, 0x6D, +0x0C, 0x10, 0x20, 0xF0, 0x4A, 0xA0, 0x02, 0x72, +0x06, 0x61, 0x0C, 0x92, 0x02, 0x72, 0x03, 0x61, +0x90, 0x67, 0x02, 0x6D, 0x02, 0x10, 0x90, 0x67, +0x03, 0x6D, 0x80, 0x18, 0xAD, 0x4E, 0x90, 0x67, +0x80, 0x18, 0x1D, 0x4F, 0x90, 0x67, 0x80, 0x18, +0x46, 0x4F, 0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF8, 0x63, 0x0F, 0x62, +0x0E, 0xD1, 0x0D, 0xD0, 0x20, 0xF0, 0x44, 0xA4, +0xFF, 0x69, 0x04, 0x67, 0x0A, 0xD2, 0x20, 0xF0, +0x6F, 0xA4, 0xAC, 0xE9, 0x01, 0x6A, 0x40, 0xF1, +0x0A, 0x2B, 0x48, 0x41, 0xF9, 0x4A, 0xFF, 0x6B, +0x6C, 0xEA, 0x15, 0x5A, 0x40, 0xF1, 0x02, 0x61, +0x48, 0x41, 0xC7, 0x4A, 0x6C, 0xEA, 0x23, 0x5A, +0x20, 0xF1, 0x1C, 0x61, 0x47, 0x41, 0x68, 0x4A, +0x6C, 0xEA, 0x04, 0x5A, 0x20, 0xF1, 0x16, 0x61, +0xB2, 0x59, 0x20, 0xF1, 0x13, 0x60, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF4, 0xF0, 0x9A, 0x00, 0x6D, +0x18, 0x6E, 0x80, 0x18, 0x9C, 0x4E, 0x09, 0xD2, +0x01, 0x4A, 0x20, 0xF1, 0x07, 0x22, 0x20, 0xF0, +0x6B, 0xA0, 0x0F, 0x59, 0x58, 0x67, 0x0B, 0xD2, +0x06, 0xD3, 0x0A, 0x2B, 0x21, 0xF0, 0x00, 0x6C, +0x0F, 0x6D, 0x80, 0x18, 0x6E, 0x3C, 0xFF, 0x6C, +0x4C, 0xEC, 0x06, 0xD4, 0x20, 0xF0, 0x8B, 0xC0, +0x20, 0xF0, 0x8A, 0xA0, 0x08, 0xD4, 0x0F, 0x2C, +0x21, 0xF0, 0x00, 0x4C, 0xF0, 0x6D, 0x80, 0x18, +0x6E, 0x3C, 0x06, 0x94, 0xFF, 0x6B, 0x6C, 0xEA, +0x4D, 0xEC, 0x6C, 0xEC, 0x08, 0xD4, 0x20, 0xF0, +0x4C, 0xC0, 0x20, 0xF0, 0x8A, 0xC0, 0x20, 0xF0, +0x8D, 0xA0, 0x07, 0xD4, 0x0D, 0x2C, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF5, 0xA4, 0x9A, 0x21, 0xF0, +0x04, 0x4C, 0x80, 0x18, 0x6E, 0x3C, 0xFF, 0x6B, +0x4C, 0xEB, 0x07, 0xD3, 0x20, 0xF0, 0x6D, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF6, 0x5C, 0x9A, +0x09, 0x93, 0x0B, 0x94, 0x4C, 0xEB, 0x2D, 0xEB, +0x06, 0xD3, 0x16, 0x2C, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF6, 0x40, 0x9A, 0x91, 0x59, 0x4D, 0xEB, +0x06, 0xD3, 0x05, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF1, 0x44, 0x9A, 0x07, 0x10, 0x50, 0x59, +0x07, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF1, +0x40, 0x9A, 0x06, 0x93, 0x4D, 0xEB, 0x06, 0xD3, +0x90, 0x67, 0x00, 0x6D, 0x80, 0x18, 0x40, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF4, 0x10, 0x4B, +0xE0, 0x9B, 0x06, 0x92, 0x30, 0xF0, 0x20, 0x6C, +0xEE, 0xF6, 0x08, 0x4C, 0x00, 0x6D, 0x18, 0x6E, +0x09, 0xD4, 0x04, 0xD2, 0x80, 0x18, 0xE1, 0x4E, +0x06, 0x94, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF4, +0x10, 0x4A, 0x04, 0xD4, 0xE0, 0x9A, 0x09, 0x94, +0x01, 0x6D, 0x18, 0x6E, 0x80, 0x18, 0xE1, 0x4E, +0x90, 0x67, 0x01, 0x6D, 0x80, 0x18, 0x40, 0x4A, +0x0F, 0x59, 0x11, 0x60, 0x50, 0x98, 0x40, 0xA2, +0x07, 0x2A, 0x90, 0x67, 0x05, 0x6D, 0x80, 0x18, +0x3D, 0x4B, 0x90, 0x67, 0x06, 0x6D, 0x1A, 0x10, +0x90, 0x67, 0x04, 0x6D, 0x80, 0x18, 0x3D, 0x4B, +0x90, 0x67, 0x00, 0x6D, 0x13, 0x10, 0x68, 0x41, +0xE4, 0x4B, 0xFF, 0x6A, 0x4C, 0xEB, 0x1D, 0x5B, +0x03, 0x60, 0x90, 0x67, 0x01, 0x6D, 0x0A, 0x10, +0x68, 0x41, 0xA4, 0x4B, 0x4C, 0xEB, 0x2D, 0x5B, +0x03, 0x60, 0x90, 0x67, 0x02, 0x6D, 0x02, 0x10, +0x90, 0x67, 0x03, 0x6D, 0x80, 0x18, 0x4C, 0x4B, +0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, 0x67, 0x4B, +0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, 0xAF, 0x4B, +0x0B, 0x93, 0x2F, 0x23, 0x90, 0x67, 0xB1, 0x67, +0x80, 0x18, 0xE3, 0x4A, 0x90, 0x67, 0x01, 0x6D, +0x00, 0x18, 0x7D, 0xC1, 0x40, 0xF4, 0x14, 0x6C, +0x80, 0x6D, 0x00, 0x6E, 0x80, 0x18, 0xFB, 0x3C, +0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, 0x20, 0x6C, +0xC0, 0xF3, 0x44, 0x9C, 0xE3, 0xF1, 0xA4, 0x9B, +0x83, 0xF2, 0x00, 0x6C, 0x00, 0x6E, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF6, 0xA4, 0x9B, +0x83, 0xF4, 0x00, 0x6C, 0x0F, 0x6E, 0x40, 0xEA, +0x0A, 0x92, 0xFF, 0x6B, 0xEB, 0x4A, 0x6C, 0xEA, +0x02, 0x5A, 0x41, 0x60, 0x90, 0x67, 0x00, 0x6D, +0x3C, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0x30, 0xF0, +0x20, 0x6C, 0xC0, 0xF3, 0x44, 0x9C, 0xE3, 0xF1, +0xA4, 0x9B, 0x83, 0xF2, 0x00, 0x6C, 0x01, 0x6E, +0x40, 0xEA, 0x01, 0x6E, 0x40, 0xF4, 0x14, 0x6C, +0x80, 0x6D, 0x80, 0x18, 0xFB, 0x3C, 0x90, 0x67, +0x02, 0x6D, 0x00, 0x18, 0x7D, 0xC1, 0x30, 0xF0, +0x20, 0x6B, 0xC0, 0xF3, 0x44, 0x9B, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF6, 0xA4, 0x9B, 0x83, 0xF4, +0x00, 0x6C, 0x22, 0x6E, 0x40, 0xEA, 0x0A, 0x92, +0xFF, 0x6B, 0xEB, 0x4A, 0x6C, 0xEA, 0x02, 0x5A, +0x16, 0x60, 0x08, 0x94, 0x01, 0x74, 0x06, 0x61, +0x07, 0x92, 0x01, 0x72, 0x0C, 0x61, 0x90, 0x67, +0x01, 0x6D, 0x0B, 0x10, 0x08, 0x93, 0x02, 0x73, +0x06, 0x61, 0x07, 0x94, 0x02, 0x74, 0x03, 0x61, +0x90, 0x67, 0x02, 0x6D, 0x02, 0x10, 0x90, 0x67, +0x03, 0x6D, 0x80, 0x18, 0xAD, 0x4E, 0x90, 0x67, +0x80, 0x18, 0x1D, 0x4F, 0x52, 0x98, 0x40, 0xA2, +0x04, 0x22, 0x90, 0x67, 0xB1, 0x67, 0x80, 0x18, +0x16, 0x4C, 0x90, 0x67, 0x80, 0x18, 0x46, 0x4F, +0x01, 0x6A, 0x01, 0x10, 0x00, 0x6A, 0x0F, 0x97, +0x0E, 0x91, 0x0D, 0x90, 0x08, 0x63, 0x00, 0xEF, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0xFF, 0x6A, 0x26, 0x67, 0x4C, 0xED, 0x04, 0x67, +0x0B, 0xD7, 0x4C, 0xE9, 0x80, 0x18, 0xE5, 0x51, +0x00, 0x6B, 0x09, 0x22, 0x0B, 0x96, 0x90, 0x67, +0xB1, 0x67, 0x80, 0x18, 0x84, 0x4F, 0x4B, 0xEB, +0x4D, 0xEB, 0xC0, 0xF7, 0x62, 0x33, 0x07, 0x97, +0x06, 0x91, 0x05, 0x90, 0x43, 0x67, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x4C, 0x9A, +0xA4, 0x67, 0x30, 0xF0, 0x20, 0x6C, 0xA6, 0xF6, +0x02, 0x4C, 0x07, 0x6E, 0x40, 0xEA, 0x00, 0x18, +0x2E, 0xCD, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x40, 0xA4, 0x01, 0x72, +0x04, 0x61, 0x00, 0x18, 0x5C, 0xD5, 0x00, 0x18, +0x52, 0xD5, 0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, +0xFB, 0x63, 0x09, 0x62, 0x22, 0x6A, 0x7D, 0x67, +0x50, 0xC3, 0x01, 0x6A, 0x4F, 0xCB, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x5C, 0x9A, 0x92, 0xC3, +0x04, 0x04, 0x40, 0xEA, 0x09, 0x97, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x30, 0xF0, 0x20, 0x6B, +0xFF, 0x69, 0x80, 0xF2, 0x48, 0x9B, 0x2C, 0xED, +0xFF, 0xF7, 0x1F, 0x68, 0x11, 0xD7, 0x8C, 0xE8, +0x08, 0xD5, 0x04, 0x04, 0x00, 0x6D, 0xCC, 0xE9, +0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x48, 0x9B, 0x05, 0x04, 0x00, 0x6D, +0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x4C, 0x9B, 0x11, 0x95, 0x04, 0x04, +0x04, 0x6E, 0x40, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x4C, 0x9B, 0x12, 0x95, 0x06, 0x04, +0x04, 0x6E, 0x40, 0xEA, 0x00, 0xF1, 0x00, 0x58, +0x08, 0x61, 0x0E, 0xF0, 0x40, 0x40, 0xFF, 0xF7, +0x1F, 0x6B, 0x6C, 0xEA, 0x00, 0xF1, 0x00, 0x5A, +0x39, 0x60, 0x08, 0x92, 0x04, 0x72, 0x11, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x58, 0x9A, +0xFF, 0x6B, 0x49, 0xE0, 0x40, 0xA2, 0x4C, 0xEB, +0x5F, 0x21, 0x06, 0x94, 0x8F, 0xEA, 0x6C, 0xEA, +0x04, 0x93, 0x8C, 0xEB, 0x6D, 0xEA, 0x04, 0xD2, +0x57, 0x10, 0x08, 0x92, 0x05, 0x72, 0x12, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x58, 0x9A, +0xFF, 0xF7, 0x1F, 0x6B, 0x49, 0xE0, 0x40, 0xAA, +0x4C, 0xEB, 0x7F, 0x21, 0x06, 0x94, 0x8F, 0xEA, +0x6C, 0xEA, 0x04, 0x93, 0x8C, 0xEB, 0x6D, 0xEA, +0x04, 0xD2, 0x77, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x58, 0x9A, 0x49, 0xE0, 0x60, 0x9A, +0x80, 0xF0, 0x1E, 0x21, 0x06, 0x94, 0x8F, 0xEA, +0x6C, 0xEA, 0x04, 0x93, 0x8C, 0xEB, 0x6D, 0xEA, +0x04, 0xD2, 0x96, 0x10, 0x01, 0xF0, 0x00, 0x58, +0x09, 0x61, 0x0D, 0xF7, 0x40, 0x40, 0xFF, 0xF7, +0x1F, 0x6B, 0x6C, 0xEA, 0x00, 0xF7, 0x00, 0x5A, +0x80, 0xF0, 0x17, 0x60, 0x08, 0x92, 0x04, 0x72, +0x31, 0x61, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, +0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x58, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, +0x5C, 0x9A, 0x49, 0xE0, 0x60, 0xA2, 0xFF, 0x6A, +0x6C, 0xEA, 0x07, 0x21, 0x06, 0x94, 0x8F, 0xEB, +0x4C, 0xEB, 0x04, 0x92, 0x8C, 0xEA, 0x4D, 0xEB, +0x04, 0xD3, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, +0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x58, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, +0x5C, 0x9A, 0x7D, 0x67, 0x41, 0xE0, 0x50, 0xA3, +0x40, 0xC0, 0x7E, 0x10, 0x08, 0x92, 0x05, 0x72, +0x32, 0x61, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, +0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x58, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, +0x5C, 0x9A, 0x49, 0xE0, 0x60, 0xAA, 0xFF, 0xF7, +0x1F, 0x6A, 0x6C, 0xEA, 0x07, 0x21, 0x06, 0x94, +0x8F, 0xEB, 0x4C, 0xEB, 0x04, 0x92, 0x8C, 0xEA, +0x4D, 0xEB, 0x04, 0xD3, 0x1F, 0xF7, 0x00, 0x6A, +0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, +0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, +0x58, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x5C, 0x9A, 0x7D, 0x67, 0x41, 0xE0, +0x48, 0xAB, 0x40, 0xC8, 0x49, 0x10, 0x1F, 0xF7, +0x00, 0x6A, 0x0C, 0xEA, 0x02, 0xF0, 0x00, 0x72, +0x01, 0x60, 0x05, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xA3, 0xF0, 0x58, 0x9A, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF0, 0x5C, 0x9A, 0x49, 0xE0, +0x60, 0x9A, 0x07, 0x21, 0x06, 0x94, 0x8F, 0xEA, +0x6C, 0xEA, 0x04, 0x93, 0x8C, 0xEB, 0x6D, 0xEA, +0x04, 0xD2, 0x1F, 0xF7, 0x00, 0x6A, 0x0C, 0xEA, +0x02, 0xF0, 0x00, 0x72, 0x01, 0x60, 0x05, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, 0x58, 0x9A, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xA3, 0xF0, +0x5C, 0x9A, 0x41, 0xE0, 0x04, 0x92, 0x40, 0xD8, +0x1B, 0x10, 0xFF, 0xF7, 0x1C, 0x6A, 0x0C, 0xEA, +0x01, 0x6D, 0x82, 0x67, 0xAB, 0xED, 0x08, 0xD2, +0x80, 0x18, 0x6E, 0x3C, 0x05, 0xD2, 0x07, 0x21, +0x06, 0x94, 0x8F, 0xEB, 0x4C, 0xEB, 0x04, 0x92, +0x8C, 0xEA, 0x4D, 0xEB, 0x04, 0xD3, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x44, 0x9A, 0x08, 0x94, +0x04, 0x96, 0x01, 0x6D, 0xAB, 0xED, 0x40, 0xEA, +0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, 0x07, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xF9, 0x63, 0x0D, 0x62, +0x0C, 0xD1, 0x0B, 0xD0, 0x41, 0x9C, 0x61, 0xA4, +0x01, 0xAC, 0x06, 0xD2, 0x42, 0x9C, 0xFF, 0x73, +0x07, 0xD2, 0x00, 0x6A, 0x62, 0x60, 0x7F, 0x6D, +0x6C, 0xED, 0x4C, 0x45, 0xFF, 0x6B, 0x6C, 0xEA, +0x0E, 0x5A, 0x08, 0x60, 0x30, 0xF0, 0x20, 0x6B, +0x48, 0x32, 0x42, 0xF7, 0x14, 0x4B, 0x4D, 0xE3, +0x40, 0x9B, 0x00, 0xEA, 0x03, 0x6A, 0x51, 0x10, +0x61, 0xA4, 0x80, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, +0xFF, 0x6E, 0x07, 0x03, 0x90, 0x67, 0x4C, 0xEE, +0x06, 0x07, 0x04, 0xD3, 0x80, 0x18, 0xBB, 0x52, +0x28, 0x10, 0x81, 0xA4, 0x80, 0x6A, 0xFF, 0x69, +0x64, 0x67, 0x4C, 0xEB, 0x0C, 0xE9, 0x02, 0x32, +0x30, 0xF0, 0x20, 0x6C, 0x01, 0x6F, 0xEE, 0xF6, +0x08, 0x4C, 0xA2, 0x67, 0xD1, 0x67, 0xEB, 0xEF, +0x08, 0xD3, 0x09, 0xD2, 0x80, 0x18, 0x9C, 0x4E, +0x08, 0x93, 0x07, 0x23, 0x07, 0x94, 0x8F, 0xEB, +0x4C, 0xEB, 0x06, 0x92, 0x8C, 0xEA, 0x4D, 0xEB, +0x06, 0xD3, 0x06, 0x92, 0x09, 0x95, 0x30, 0xF0, +0x20, 0x6C, 0x01, 0x6F, 0xEE, 0xF6, 0x08, 0x4C, +0xD1, 0x67, 0xEB, 0xEF, 0x04, 0xD2, 0x80, 0x18, +0xE1, 0x4E, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x47, 0xF7, 0x7C, 0x9A, 0x06, 0x94, +0x61, 0xE0, 0x67, 0xF7, 0x60, 0x9A, 0x47, 0xF7, +0x1C, 0xDA, 0x6D, 0xE4, 0x67, 0xF7, 0x60, 0xDA, +0x0B, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, +0x4C, 0x9A, 0x04, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x48, 0x9A, 0x90, 0x67, 0x40, 0xEA, +0x01, 0x6A, 0x0D, 0x97, 0x0C, 0x91, 0x0B, 0x90, +0x07, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4A, +0x4A, 0xF0, 0x00, 0x4B, 0x68, 0xF1, 0x64, 0xDA, +0x30, 0xF0, 0x20, 0x6B, 0x2A, 0xF0, 0x1C, 0x4B, +0x48, 0xF1, 0x78, 0xDA, 0x30, 0xF0, 0x20, 0x6B, +0x4A, 0xF0, 0x04, 0x4B, 0x48, 0xF1, 0x74, 0xDA, +0x20, 0xE8, 0x00, 0x65, 0xE0, 0x63, 0x3F, 0x62, +0xFF, 0xF7, 0x1F, 0x6A, 0xAC, 0xEA, 0xBD, 0x67, +0x56, 0xC5, 0x01, 0x6B, 0x42, 0x32, 0x57, 0xC5, +0x6B, 0xEB, 0x30, 0xF0, 0x20, 0x6A, 0x70, 0xC5, +0x20, 0xF4, 0x40, 0x9A, 0x03, 0x6B, 0x72, 0xC5, +0x04, 0x6B, 0x94, 0xC5, 0x73, 0xC5, 0x04, 0x04, +0x40, 0xEA, 0x3F, 0x97, 0x20, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF2, 0x4C, 0x9A, 0xA7, 0x44, 0x30, 0xF0, +0x20, 0x6C, 0x01, 0x4D, 0x2E, 0xF5, 0x14, 0x4C, +0x14, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x04, 0x67, 0x80, 0x18, +0xA8, 0x53, 0x47, 0xA0, 0x66, 0xA0, 0x30, 0xF0, +0x20, 0x69, 0xC6, 0xF5, 0x10, 0x49, 0x40, 0x32, +0x67, 0xF7, 0x84, 0xA1, 0x69, 0xE2, 0x67, 0xF7, +0x56, 0xC9, 0x01, 0x6A, 0x8C, 0xEA, 0xFF, 0x6B, +0x1C, 0x2A, 0x67, 0xF7, 0xB8, 0xA1, 0xFE, 0x4A, +0xAC, 0xEA, 0x67, 0xF7, 0x58, 0xC1, 0x02, 0x6A, +0x8C, 0xEA, 0x6C, 0xEA, 0x4E, 0x22, 0x67, 0xF7, +0x47, 0xA1, 0x0F, 0x6D, 0x67, 0xF7, 0x88, 0xA1, +0x4C, 0xED, 0x52, 0x36, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF4, 0x58, 0x9A, 0x6C, 0xED, 0x6C, 0xEE, +0x40, 0xEA, 0x01, 0x72, 0x0D, 0x6A, 0x3E, 0x61, +0x3C, 0x10, 0x67, 0xF7, 0x78, 0xA1, 0x02, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x67, 0xF7, 0x58, 0xC1, +0x67, 0xF7, 0x54, 0xA9, 0x00, 0xF1, 0x01, 0x5A, +0x0C, 0x6A, 0x30, 0x60, 0x00, 0x6A, 0x67, 0xF7, +0x59, 0xC1, 0x67, 0xF7, 0x5A, 0xC1, 0x67, 0xF7, +0x05, 0xA1, 0x00, 0x6A, 0x67, 0xF7, 0x5C, 0xC9, +0x67, 0xF7, 0x5E, 0xC9, 0x00, 0x18, 0xAB, 0xD2, +0x01, 0xE2, 0x00, 0x6A, 0x67, 0xF7, 0xF4, 0xA9, +0x04, 0xD2, 0x05, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0xE0, 0xF2, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF7, 0xA8, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF0, 0x4C, 0x9A, 0x30, 0xF0, 0x20, 0x6E, +0x1C, 0x30, 0x4E, 0xF5, 0x16, 0x4E, 0x00, 0x6C, +0xB5, 0xE0, 0x59, 0xE6, 0x40, 0xEB, 0x67, 0xF7, +0x58, 0xA1, 0x01, 0x6B, 0x6D, 0xEA, 0x67, 0xF7, +0x58, 0xC1, 0x00, 0x6A, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFA, 0x63, 0x0B, 0x62, 0x0A, 0xD1, 0x09, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, +0x67, 0xF7, 0xBC, 0xA8, 0x30, 0xF0, 0x20, 0x6A, +0x30, 0xF0, 0x20, 0x6B, 0x80, 0xF2, 0x4C, 0x9A, +0x4E, 0xF5, 0x16, 0x4B, 0x30, 0xF0, 0x20, 0x6C, +0xB5, 0xE3, 0x4E, 0xF6, 0x18, 0x4C, 0x04, 0x6E, +0x40, 0xEA, 0x88, 0xF0, 0x6B, 0xA0, 0x80, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0xFF, 0x6B, 0x6C, 0xEA, +0x05, 0x2A, 0x67, 0xF7, 0x5C, 0xA8, 0x04, 0x4A, +0x67, 0xF7, 0x5C, 0xC8, 0x30, 0xF0, 0x20, 0x68, +0xC6, 0xF5, 0x10, 0x48, 0x88, 0xF0, 0x69, 0xA0, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, 0x58, 0x9A, +0x88, 0xF0, 0x88, 0xA0, 0x0F, 0x6D, 0x6C, 0xED, +0x72, 0x36, 0xFF, 0x69, 0x40, 0xEA, 0x0E, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF4, 0x54, 0x9A, +0x40, 0xEA, 0x67, 0xF7, 0x78, 0xA0, 0x02, 0x6A, +0x4B, 0xEA, 0x6C, 0xEA, 0x67, 0xF7, 0x58, 0xC0, +0x01, 0x6C, 0x7C, 0x10, 0x88, 0xF0, 0x6B, 0xA0, +0x7F, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, 0x39, 0x22, +0x01, 0x72, 0x6C, 0x61, 0x30, 0xF0, 0x20, 0x6A, +0x60, 0xF4, 0x4C, 0x9A, 0x00, 0x6C, 0x40, 0xEA, +0x70, 0x22, 0x47, 0xF7, 0x99, 0xA0, 0x00, 0x6D, +0x80, 0x18, 0xD8, 0x3E, 0x06, 0xD2, 0xE0, 0xF0, +0x75, 0xA0, 0x10, 0x6A, 0x6C, 0xEA, 0x2C, 0xEA, +0x1C, 0x22, 0x44, 0xF6, 0x51, 0xA0, 0x00, 0x68, +0x10, 0x2A, 0x17, 0x10, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x48, 0x9A, 0x03, 0x6C, 0x25, 0xE0, +0x40, 0xEA, 0x84, 0xF6, 0x90, 0xA1, 0x00, 0x6D, +0x01, 0x48, 0x80, 0x18, 0xD8, 0x3E, 0xFF, 0x6A, +0x4C, 0xE8, 0x30, 0xF0, 0x20, 0x69, 0xC6, 0xF5, +0x10, 0x49, 0x44, 0xF6, 0x51, 0xA1, 0x43, 0xE8, +0xE9, 0x61, 0x06, 0x92, 0x06, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF4, 0x54, 0x9A, 0x40, 0xEA, +0x40, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x67, 0xF7, 0x79, 0xA2, 0x88, 0xF0, +0x8A, 0xA2, 0x01, 0x4B, 0x67, 0xF7, 0x79, 0xC2, +0x67, 0xF7, 0x7E, 0xAA, 0x6D, 0xE4, 0x67, 0xF7, +0x7E, 0xCA, 0x67, 0xF7, 0x99, 0xA2, 0x67, 0xF7, +0x66, 0xA2, 0x8E, 0xEB, 0x0C, 0x2B, 0x88, 0xF0, +0xCA, 0xA2, 0x10, 0xF0, 0x31, 0x6C, 0x30, 0xF0, +0x20, 0x6A, 0x04, 0xD3, 0x00, 0xF3, 0x4C, 0x9A, +0xCA, 0xF1, 0x0D, 0x4C, 0x0C, 0x10, 0x88, 0xF0, +0xCA, 0xA2, 0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, +0x31, 0x6C, 0x6A, 0xF1, 0x05, 0x4C, 0x64, 0x6B, +0x78, 0xEE, 0x00, 0x6D, 0x01, 0x6F, 0x12, 0xEE, +0x40, 0xEA, 0x1B, 0x10, 0x67, 0xF7, 0x78, 0xA0, +0x02, 0x6A, 0x4B, 0xEA, 0x6C, 0xEA, 0x67, 0xF7, +0x58, 0xC0, 0x02, 0x6C, 0x67, 0xF7, 0xB6, 0xA8, +0x0E, 0x10, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x67, 0xF7, 0x98, 0xA2, 0x02, 0x6B, +0x6B, 0xEB, 0x67, 0xF7, 0xB6, 0xAA, 0x8C, 0xEB, +0x67, 0xF7, 0x78, 0xC2, 0x03, 0x6C, 0x80, 0x18, +0x9B, 0x53, 0x0B, 0x97, 0x0A, 0x91, 0x09, 0x90, +0x06, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x04, 0xD0, 0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, +0x10, 0x48, 0x67, 0xF7, 0x78, 0xA0, 0x01, 0x6A, +0x6C, 0xEA, 0x23, 0x22, 0x88, 0xF0, 0x46, 0xA0, +0x1E, 0x22, 0xE0, 0xF0, 0xC7, 0xA0, 0x00, 0x6A, +0x88, 0xF0, 0x46, 0xC0, 0x0C, 0x6C, 0x0C, 0x6A, +0x00, 0x6D, 0x43, 0xF4, 0x48, 0xC0, 0x00, 0x18, +0x70, 0xCC, 0xC3, 0xF3, 0x4C, 0xA0, 0xC3, 0xF3, +0x8E, 0xA0, 0x21, 0x6B, 0x6B, 0xEB, 0x4C, 0xEB, +0x04, 0x6A, 0x8C, 0xEA, 0xFF, 0x6C, 0x8C, 0xEA, +0xC3, 0xF3, 0x6C, 0xC0, 0x04, 0x2A, 0xFE, 0x4A, +0x6C, 0xEA, 0xC3, 0xF3, 0x4C, 0xC0, 0x80, 0x18, +0xEC, 0x53, 0x05, 0x97, 0x04, 0x90, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xC6, 0xF5, 0x10, 0x48, 0x67, 0xF7, 0x58, 0xA0, +0x01, 0x69, 0x91, 0x67, 0x4C, 0xEC, 0xFF, 0x6B, +0x40, 0xF1, 0x02, 0x24, 0x67, 0xF7, 0xA4, 0xA0, +0x03, 0x6E, 0xAE, 0x34, 0xCC, 0xEC, 0x6C, 0xEC, +0x02, 0x74, 0x7C, 0x60, 0x03, 0x74, 0xC0, 0xF0, +0x1E, 0x60, 0x01, 0x74, 0x25, 0x60, 0x02, 0x6C, +0x8B, 0xEC, 0x4C, 0xEC, 0x02, 0x6A, 0xAC, 0xEA, +0x6C, 0xEA, 0x67, 0xF7, 0x98, 0xC0, 0x11, 0x22, +0x67, 0xF7, 0x47, 0xA0, 0x0F, 0x6D, 0x67, 0xF7, +0x88, 0xA0, 0x4C, 0xED, 0x52, 0x36, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x58, 0x9A, 0x6C, 0xED, +0x6C, 0xEE, 0x40, 0xEA, 0x01, 0x72, 0x01, 0x6C, +0x01, 0x61, 0x00, 0x6C, 0x67, 0xF7, 0xB6, 0xA8, +0x80, 0x18, 0x9B, 0x53, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF4, 0x54, 0x9A, 0x40, 0xEA, 0xC0, 0x10, +0x02, 0x6A, 0xAC, 0xEA, 0x6C, 0xEA, 0x11, 0x22, +0x67, 0xF7, 0x47, 0xA0, 0x0F, 0x6D, 0x67, 0xF7, +0x88, 0xA0, 0x4C, 0xED, 0x52, 0x36, 0x30, 0xF0, +0x20, 0x6A, 0x00, 0xF4, 0x58, 0x9A, 0x6C, 0xED, +0x6C, 0xEE, 0x40, 0xEA, 0x01, 0x72, 0xE0, 0xF0, +0x0B, 0x61, 0x67, 0xF7, 0xB6, 0xA8, 0x00, 0x6C, +0x80, 0x18, 0x9B, 0x53, 0x30, 0xF0, 0x20, 0x6A, +0x2E, 0xF5, 0x59, 0xA2, 0x5A, 0x33, 0x02, 0x73, +0x0D, 0x60, 0x03, 0x73, 0x0F, 0x60, 0x01, 0x73, +0x05, 0x60, 0x3F, 0x6E, 0x4C, 0xEE, 0xFF, 0x6A, +0x4C, 0xEE, 0x0E, 0x10, 0x3F, 0x6B, 0x4C, 0xEB, +0x0A, 0x6E, 0x08, 0x10, 0x3F, 0x6B, 0x4C, 0xEB, +0x64, 0x6E, 0x04, 0x10, 0x3F, 0x6B, 0x4C, 0xEB, +0xE0, 0xF3, 0x08, 0x6E, 0xD8, 0xEB, 0x12, 0xEE, +0x0A, 0x6A, 0x58, 0xEE, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x67, 0xF7, 0x7E, 0xAA, +0x10, 0xF0, 0x31, 0x6C, 0x6A, 0xF1, 0x05, 0x4C, +0x00, 0x6D, 0x12, 0xEE, 0x7B, 0xE6, 0x01, 0x6B, +0x88, 0xF0, 0x66, 0xC2, 0x00, 0x6A, 0x04, 0xD2, +0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF3, 0x4C, 0x9A, +0x64, 0x6B, 0x60, 0x10, 0x02, 0x6A, 0xAC, 0xEA, +0x6C, 0xEA, 0x11, 0x22, 0x67, 0xF7, 0x47, 0xA0, +0x0F, 0x6D, 0x67, 0xF7, 0x88, 0xA0, 0x4C, 0xED, +0x52, 0x36, 0x30, 0xF0, 0x20, 0x6A, 0x00, 0xF4, +0x58, 0x9A, 0x6C, 0xED, 0x6C, 0xEE, 0x40, 0xEA, +0x01, 0x72, 0x80, 0xF0, 0x19, 0x61, 0x67, 0xF7, +0xB6, 0xA8, 0x00, 0x6C, 0x80, 0x18, 0x9B, 0x53, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x67, 0xF7, 0x8B, 0xA2, 0x67, 0xF7, 0x7A, 0xA2, +0xFF, 0x4C, 0x6E, 0xEC, 0x03, 0x2C, 0x67, 0xF7, +0x4A, 0xA2, 0x05, 0x10, 0x01, 0x4B, 0x67, 0xF7, +0x7A, 0xC2, 0x67, 0xF7, 0x49, 0xA2, 0x5A, 0x33, +0x02, 0x73, 0x0D, 0x60, 0x03, 0x73, 0x0F, 0x60, +0x01, 0x73, 0x05, 0x60, 0x3F, 0x6B, 0x4C, 0xEB, +0xFF, 0x6A, 0x4C, 0xEB, 0x0E, 0x10, 0x3F, 0x6B, +0x4C, 0xEB, 0x0A, 0x6A, 0x08, 0x10, 0x3F, 0x6B, +0x4C, 0xEB, 0x64, 0x6A, 0x04, 0x10, 0x3F, 0x6B, +0x4C, 0xEB, 0xE0, 0xF3, 0x08, 0x6A, 0x58, 0xEB, +0x12, 0xEB, 0x0A, 0x6A, 0x58, 0xEB, 0x30, 0xF0, +0x20, 0x6A, 0x4E, 0xF5, 0x4E, 0xAA, 0x01, 0x6C, +0x00, 0x6D, 0x64, 0x6E, 0x12, 0xEB, 0x4F, 0xE3, +0x30, 0xF0, 0x20, 0x6A, 0x4E, 0xF6, 0x96, 0xC2, +0x00, 0x6A, 0x04, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x00, 0xF3, 0x4C, 0x9A, 0x10, 0xF0, 0x31, 0x6C, +0x6A, 0xF1, 0x05, 0x4C, 0xD8, 0xEB, 0x01, 0x6F, +0x12, 0xEE, 0x40, 0xEA, 0x09, 0x10, 0x67, 0xF7, +0xB6, 0xA8, 0x00, 0x6C, 0x80, 0x18, 0x9B, 0x53, +0x88, 0xF0, 0x26, 0xC0, 0x80, 0x18, 0x59, 0x54, +0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, +0xE0, 0xF0, 0x87, 0xA0, 0x00, 0x6A, 0x67, 0xF7, +0x59, 0xC0, 0x00, 0x6A, 0x67, 0xF7, 0x5E, 0xC8, +0x67, 0xF7, 0x5C, 0xC8, 0x00, 0x18, 0x12, 0xDC, +0xE0, 0xF0, 0x87, 0xA0, 0x00, 0x18, 0x01, 0xDC, +0xE0, 0xF0, 0x87, 0xA0, 0x00, 0x18, 0x19, 0xDC, +0xC3, 0xF3, 0x6C, 0xA0, 0x20, 0x6A, 0xE0, 0xF0, +0xC7, 0xA0, 0x6D, 0xEA, 0xC3, 0xF3, 0x4C, 0xC0, +0x08, 0x6C, 0x08, 0x6A, 0x00, 0x6D, 0x43, 0xF4, +0x48, 0xC0, 0x00, 0x18, 0x70, 0xCC, 0xC3, 0xF3, +0x6E, 0xA0, 0x04, 0x6A, 0x6C, 0xEA, 0x24, 0x2A, +0x00, 0xF1, 0x78, 0xA0, 0x02, 0x6A, 0x6C, 0xEA, +0xFF, 0x6B, 0x6C, 0xEA, 0x05, 0x22, 0xC3, 0xF3, +0x6C, 0xA0, 0x01, 0x6A, 0x6D, 0xEA, 0x05, 0x10, +0xC3, 0xF3, 0x6C, 0xA0, 0x02, 0x6A, 0x4B, 0xEA, +0x6C, 0xEA, 0xC3, 0xF3, 0x4C, 0xC0, 0x10, 0x10, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x67, 0xF7, 0x98, 0xA2, 0x02, 0x6B, 0x6B, 0xEB, +0x67, 0xF7, 0xB6, 0xAA, 0x8C, 0xEB, 0x67, 0xF7, +0x78, 0xC2, 0x01, 0x6C, 0x80, 0x18, 0x9B, 0x53, +0x09, 0x97, 0x08, 0x91, 0x07, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x6A, +0xFF, 0x69, 0x04, 0x67, 0x80, 0xF4, 0x4C, 0x9A, +0x2C, 0xE8, 0x2C, 0xED, 0xCC, 0xE9, 0x04, 0xD5, +0x90, 0x67, 0xD1, 0x67, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, 0x0F, 0x58, +0x63, 0xF2, 0x14, 0xC2, 0x63, 0xF2, 0x2C, 0xDA, +0x01, 0x6B, 0x01, 0x60, 0x00, 0x6B, 0x04, 0x96, +0x30, 0xF0, 0x20, 0x6C, 0xB0, 0x67, 0xF1, 0x67, +0x63, 0xF2, 0x70, 0xDA, 0xEE, 0xF6, 0x08, 0x4C, +0x80, 0x18, 0x94, 0x52, 0x09, 0x97, 0x08, 0x91, +0x07, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFF, 0x6B, 0x6C, 0xEC, 0x03, 0x5C, 0x58, 0x67, +0x6C, 0xEA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x10, 0x4B, 0x83, 0xF3, 0x50, 0xA3, +0x0B, 0x2A, 0x83, 0xF3, 0x51, 0xA3, 0x08, 0x2A, +0x83, 0xF3, 0x52, 0xA3, 0x05, 0x2A, 0x83, 0xF3, +0x73, 0xA3, 0x03, 0x23, 0x01, 0x6A, 0x20, 0xE8, +0x01, 0x6A, 0x20, 0xE8, 0xFC, 0x63, 0x07, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xCE, 0xF6, 0x58, 0xA2, +0x0E, 0x72, 0x29, 0x61, 0x80, 0x18, 0x39, 0x55, +0x26, 0x22, 0x30, 0xF0, 0x20, 0x6C, 0xEE, 0xF6, +0x08, 0x4C, 0x04, 0x05, 0x80, 0x18, 0xBB, 0x4D, +0x5D, 0x67, 0x92, 0xA2, 0x80, 0x18, 0x36, 0x55, +0x0A, 0x22, 0x5D, 0x67, 0x90, 0xA2, 0x80, 0x18, +0x36, 0x55, 0x05, 0x22, 0x5D, 0x67, 0x91, 0xA2, +0x80, 0x18, 0x36, 0x55, 0x10, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0x23, 0xF5, 0x40, 0x9A, 0x00, 0x6B, +0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, 0xA4, 0xF0, +0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, +0x58, 0x9A, 0x60, 0xDA, 0xF0, 0x17, 0x07, 0x97, +0x04, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD0, 0x30, 0xF0, 0x20, 0x6A, 0xCE, 0xF6, +0x55, 0xA2, 0x01, 0x72, 0x4A, 0x61, 0x80, 0x18, +0x39, 0x55, 0x47, 0x22, 0x30, 0xF0, 0x20, 0x68, +0xEE, 0xF6, 0x08, 0x48, 0x90, 0x67, 0x05, 0x05, +0x80, 0x18, 0xBB, 0x4D, 0x7D, 0x67, 0x56, 0xA3, +0x01, 0x72, 0x0E, 0x60, 0x03, 0x72, 0x0C, 0x60, +0x54, 0xA3, 0x01, 0x72, 0x09, 0x60, 0x03, 0x72, +0x07, 0x60, 0x55, 0xA3, 0x01, 0x72, 0x04, 0x60, +0x02, 0x72, 0x02, 0x60, 0x03, 0x72, 0x10, 0x61, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF5, 0x40, 0x9A, +0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6A, +0xA4, 0xF0, 0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x43, 0xF0, 0x58, 0x9A, 0x60, 0xDA, 0xF0, 0x17, +0x90, 0x67, 0x04, 0x05, 0x80, 0x18, 0xA9, 0x4D, +0x7D, 0x67, 0x51, 0xA3, 0x01, 0x72, 0x05, 0x60, +0x03, 0x72, 0x03, 0x60, 0x50, 0xA3, 0x01, 0x72, +0x10, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF5, +0x40, 0x9A, 0x00, 0x6B, 0x60, 0xC2, 0x30, 0xF0, +0x20, 0x6A, 0xA4, 0xF0, 0x7C, 0x9A, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF0, 0x58, 0x9A, 0x60, 0xDA, +0xF0, 0x17, 0x09, 0x97, 0x08, 0x90, 0x05, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF3, 0x40, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x10, 0x4B, 0x80, 0xA2, 0x67, 0xF7, +0xD8, 0xA3, 0x87, 0xF7, 0x80, 0xC3, 0xA0, 0xAA, +0x01, 0xF0, 0x00, 0x6C, 0xAC, 0xEC, 0x83, 0x35, +0x03, 0x6C, 0xAE, 0x35, 0x8B, 0xEC, 0xA4, 0x35, +0xCC, 0xEC, 0xAD, 0xEC, 0x67, 0xF7, 0x98, 0xC3, +0x30, 0xF0, 0x20, 0x6C, 0xC4, 0xF0, 0x80, 0x9C, +0xA0, 0xAC, 0x87, 0xF7, 0xA2, 0xCB, 0xA0, 0xAA, +0xBF, 0xF7, 0x1F, 0x6B, 0xAC, 0xEB, 0x60, 0xCA, +0xA0, 0xAA, 0x7F, 0xF7, 0x1F, 0x6B, 0xAC, 0xEB, +0x60, 0xCA, 0xC0, 0xAA, 0xFE, 0xF7, 0x1F, 0x6B, +0xFF, 0xF7, 0x1F, 0x6D, 0xCC, 0xEB, 0x60, 0xCA, +0x40, 0xAC, 0xFF, 0x6B, 0x21, 0x4B, 0xAC, 0xEA, +0x6D, 0xEA, 0xAC, 0xEA, 0x40, 0xCC, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x30, 0xF0, 0x20, 0x6B, 0x87, 0xF7, 0x80, 0xA2, +0x23, 0xF3, 0x60, 0x9B, 0x01, 0x6E, 0x80, 0xC3, +0x30, 0xF0, 0x20, 0x6C, 0x87, 0xF7, 0xA2, 0xAA, +0xC4, 0xF0, 0x80, 0x9C, 0xA0, 0xCC, 0x67, 0xF7, +0x58, 0xA2, 0x80, 0xAB, 0xFF, 0xF7, 0x1F, 0x6D, +0x46, 0x32, 0xCC, 0xEA, 0xAC, 0xEC, 0x40, 0x32, +0xFE, 0xF7, 0x1E, 0x4E, 0x4C, 0x32, 0xCC, 0xEC, +0x8D, 0xEA, 0xAC, 0xEA, 0x40, 0xCB, 0x20, 0xE8, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x00, 0x68, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, +0x90, 0x67, 0x04, 0x05, 0x40, 0xEA, 0x01, 0x72, +0x02, 0x60, 0x03, 0x6A, 0x0D, 0x10, 0x30, 0xF0, +0x20, 0x6A, 0x20, 0xF6, 0x40, 0x9A, 0x9D, 0x67, +0x70, 0xA4, 0x09, 0xE2, 0x01, 0x48, 0x00, 0xF2, +0x00, 0x70, 0x60, 0xC2, 0xE9, 0x61, 0x00, 0x6A, +0x07, 0x97, 0x06, 0x90, 0x04, 0x63, 0x00, 0xEF, +0x10, 0xF0, 0x23, 0x6B, 0x30, 0xF0, 0x20, 0x6A, +0x49, 0xF2, 0x09, 0x4B, 0x40, 0xF1, 0x68, 0xDA, +0x10, 0xF0, 0x23, 0x6B, 0x40, 0xF1, 0x08, 0x4A, +0x40, 0xF5, 0x01, 0x4B, 0x61, 0xDA, 0x10, 0xF0, +0x23, 0x6B, 0x89, 0xF2, 0x1D, 0x4B, 0x62, 0xDA, +0x10, 0xF0, 0x23, 0x6B, 0x89, 0xF2, 0x0D, 0x4B, +0x63, 0xDA, 0x10, 0xF0, 0x23, 0x6B, 0x69, 0xF2, +0x1D, 0x4B, 0x64, 0xDA, 0x10, 0xF0, 0x23, 0x6B, +0x69, 0xF2, 0x0D, 0x4B, 0x65, 0xDA, 0x10, 0xF0, +0x23, 0x6B, 0x49, 0xF2, 0x1D, 0x4B, 0x66, 0xDA, +0x10, 0xF0, 0x23, 0x6B, 0x49, 0xF2, 0x0D, 0x4B, +0x67, 0xDA, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x00, 0x6B, 0x83, 0xF3, +0x70, 0xC2, 0x83, 0xF3, 0x71, 0xC2, 0x83, 0xF3, +0x72, 0xC2, 0x83, 0xF3, 0x73, 0xC2, 0x42, 0xF4, +0x10, 0x6A, 0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x05, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, 0x78, 0x9B, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, +0x7C, 0x9B, 0x6D, 0xE2, 0x04, 0x4A, 0x00, 0x6C, +0x62, 0xF4, 0x00, 0x72, 0x80, 0xDB, 0xE9, 0x61, +0x20, 0xE8, 0x00, 0x65, 0xFD, 0x63, 0x05, 0x62, +0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF3, 0x48, 0x9A, +0x03, 0x6C, 0x60, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF1, 0x5C, 0x9A, 0x00, 0xF5, 0x62, 0x33, +0x8C, 0xEB, 0x40, 0x9A, 0x01, 0x73, 0x42, 0x32, +0x52, 0x32, 0x8C, 0xEA, 0x05, 0x60, 0x0B, 0x2B, +0x02, 0x5A, 0x50, 0x6C, 0x0D, 0x60, 0x03, 0x10, +0x02, 0x5A, 0x0A, 0x60, 0x28, 0x6C, 0x87, 0xEA, +0xFF, 0x6A, 0x4C, 0xEC, 0x06, 0x10, 0x02, 0x5A, +0x28, 0x6C, 0x03, 0x60, 0x14, 0x6C, 0x01, 0x10, +0x50, 0x6C, 0x80, 0x18, 0xC5, 0x58, 0x80, 0x18, +0xE6, 0x15, 0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF1, +0x7C, 0x9B, 0x00, 0x6A, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF0, 0x78, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, 0x7C, 0x9B, +0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF3, +0x70, 0x9B, 0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF3, 0x78, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xC3, 0xF0, 0x74, 0x9B, 0x40, 0xDB, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD1, 0x05, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, +0x00, 0x69, 0xA0, 0xF0, 0x24, 0xD8, 0xA0, 0xF1, +0x3C, 0xC0, 0x80, 0x18, 0xC8, 0x55, 0x80, 0x18, +0x37, 0x57, 0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, +0x20, 0x6C, 0x43, 0xF2, 0x38, 0xC0, 0x6A, 0xF1, +0x08, 0x4A, 0x6A, 0xF1, 0x18, 0x4C, 0x00, 0x6B, +0x60, 0xC2, 0x70, 0xC2, 0x01, 0x4A, 0x62, 0x67, +0x8E, 0xEB, 0xF9, 0x2B, 0x07, 0x97, 0x06, 0x91, +0x05, 0x90, 0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, +0x10, 0x4A, 0x83, 0xF3, 0x75, 0xC2, 0x83, 0xF3, +0x76, 0xC2, 0x83, 0xF3, 0x77, 0xC2, 0x83, 0xF3, +0x74, 0xC2, 0x04, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xDF, 0x55, +0x80, 0x18, 0x4C, 0x56, 0x80, 0x18, 0xEC, 0x49, +0x00, 0x18, 0x4B, 0xE4, 0x00, 0x18, 0x85, 0xCB, +0x00, 0x18, 0x16, 0xC5, 0x80, 0x18, 0x64, 0x0D, +0x80, 0x18, 0xB1, 0x05, 0x80, 0x18, 0xD4, 0x05, +0x30, 0xF0, 0x20, 0x6A, 0x60, 0xF4, 0x44, 0x9A, +0x40, 0xEA, 0x80, 0x18, 0x8F, 0x53, 0x80, 0x18, +0x9D, 0x3B, 0x00, 0x18, 0x24, 0xDA, 0x00, 0x18, +0x42, 0xDA, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, +0x68, 0x9A, 0xFF, 0x6C, 0x04, 0x6D, 0x40, 0xA3, +0x8C, 0xEA, 0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, +0x05, 0x97, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x00, 0x6B, 0xA0, 0xF6, 0x7E, 0xC2, 0xA0, 0xF6, +0x7F, 0xC2, 0xA0, 0xF1, 0x7C, 0xC2, 0xA0, 0xF1, +0x7D, 0xC2, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0x08, 0xF1, 0x65, 0xA2, +0x0F, 0x23, 0x08, 0xF1, 0x64, 0xA2, 0x0C, 0x23, +0x08, 0xF1, 0x6A, 0xA2, 0x09, 0x23, 0x08, 0xF1, +0x66, 0xA2, 0x06, 0x23, 0x08, 0xF1, 0x68, 0xA2, +0x03, 0x23, 0x08, 0xF1, 0x47, 0xA2, 0x1E, 0x2A, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF1, 0x7C, 0x9A, +0xFF, 0xF7, 0x1F, 0x6C, 0x10, 0xF0, 0x00, 0x6D, +0x40, 0xAB, 0xAB, 0xED, 0x8C, 0xEA, 0xAD, 0xEA, +0x8C, 0xEA, 0x40, 0xCB, 0x30, 0xF0, 0x20, 0x6A, +0x23, 0xF5, 0x40, 0x9A, 0x00, 0x6B, 0x60, 0xC2, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF7, 0x70, 0x9A, +0x30, 0xF0, 0x20, 0x6A, 0x43, 0xF0, 0x58, 0x9A, +0x60, 0xDA, 0xF0, 0x17, 0x20, 0xE8, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0x30, 0xF0, 0x20, 0x68, 0xC0, 0xF3, 0x48, 0x98, +0x0A, 0xD4, 0x04, 0x05, 0xE0, 0xF1, 0x14, 0x6C, +0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x0A, 0x95, +0xE0, 0xF1, 0x15, 0x6C, 0x30, 0xF0, 0x20, 0x69, +0x40, 0xC5, 0xC0, 0xF3, 0x48, 0x98, 0x04, 0x05, +0xC6, 0xF5, 0x10, 0x49, 0x40, 0xEA, 0x7D, 0x67, +0x50, 0xA3, 0x0A, 0x95, 0xE0, 0xF1, 0x16, 0x6C, +0x41, 0xC5, 0xC0, 0xF3, 0x48, 0x98, 0x04, 0x05, +0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x0A, 0x95, +0xE0, 0xF1, 0x17, 0x6C, 0x42, 0xC5, 0xC0, 0xF3, +0x48, 0x98, 0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, +0x50, 0xA3, 0x0A, 0x95, 0xE0, 0xF1, 0x18, 0x6C, +0x43, 0xC5, 0xC0, 0xF3, 0x48, 0x98, 0x04, 0x05, +0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x0A, 0x95, +0xE0, 0xF1, 0x19, 0x6C, 0x44, 0xC5, 0xC0, 0xF3, +0x48, 0x98, 0x04, 0x05, 0x40, 0xEA, 0xBD, 0x67, +0x90, 0xA5, 0x08, 0xF1, 0x48, 0xA1, 0x0F, 0x6B, +0x8C, 0xEB, 0x50, 0x32, 0x6D, 0xEA, 0x0A, 0x93, +0x04, 0x05, 0xE0, 0xF1, 0x1B, 0x6C, 0x45, 0xC3, +0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, 0x08, 0xF1, +0x4A, 0xA1, 0x08, 0xF1, 0x65, 0xA1, 0x0A, 0x95, +0x4C, 0x32, 0x74, 0x33, 0x6D, 0xEA, 0x08, 0xF1, +0x64, 0xA1, 0x6D, 0xEA, 0x46, 0xC5, 0x08, 0xF1, +0x46, 0xA1, 0x08, 0xF1, 0x67, 0xA1, 0x48, 0x32, +0x78, 0x33, 0x6D, 0xEA, 0x33, 0x6B, 0x6D, 0xEA, +0x47, 0xC5, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x68, +0xC0, 0xF3, 0x48, 0x98, 0x24, 0x67, 0x04, 0x05, +0xE0, 0xF1, 0x10, 0x6C, 0x40, 0xEA, 0x7D, 0x67, +0x50, 0xA3, 0x04, 0x05, 0xE0, 0xF1, 0x11, 0x6C, +0x40, 0xC1, 0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, +0x7D, 0x67, 0x50, 0xA3, 0x04, 0x05, 0xE0, 0xF1, +0x12, 0x6C, 0x41, 0xC1, 0xC0, 0xF3, 0x48, 0x98, +0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x04, 0x05, +0xE0, 0xF1, 0x13, 0x6C, 0x42, 0xC1, 0xC0, 0xF3, +0x48, 0x98, 0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, +0x04, 0x05, 0xE0, 0xF1, 0x1C, 0x6C, 0x43, 0xC1, +0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, 0x7D, 0x67, +0x50, 0xA3, 0x04, 0x05, 0xE0, 0xF1, 0x1D, 0x6C, +0x44, 0xC1, 0xC0, 0xF3, 0x48, 0x98, 0x40, 0xEA, +0x7D, 0x67, 0x50, 0xA3, 0x04, 0x05, 0xE0, 0xF1, +0x1E, 0x6C, 0x45, 0xC1, 0xC0, 0xF3, 0x48, 0x98, +0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0xE0, 0xF1, +0x1F, 0x6C, 0x04, 0x05, 0x46, 0xC1, 0xC0, 0xF3, +0x48, 0x98, 0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, +0x47, 0xC1, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD0, 0x04, 0x00, 0x90, 0x67, 0x80, 0x18, +0x6E, 0x56, 0xA0, 0xF1, 0x02, 0x6A, 0x1F, 0xF7, +0x00, 0x6B, 0x4C, 0xEB, 0x02, 0xF0, 0x00, 0x73, +0x01, 0x60, 0x05, 0x2B, 0x30, 0xF0, 0x20, 0x6B, +0xA3, 0xF0, 0x78, 0x9B, 0x04, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xA3, 0xF0, 0x7C, 0x9B, 0x80, 0xA0, +0x6D, 0xE2, 0x01, 0x4A, 0xA0, 0xF1, 0x0A, 0x72, +0x80, 0xC3, 0x01, 0x48, 0xE8, 0x61, 0x04, 0x00, +0x90, 0x67, 0x80, 0x18, 0xA5, 0x56, 0xA0, 0xF1, +0x0A, 0x6A, 0x1F, 0xF7, 0x00, 0x6B, 0x4C, 0xEB, +0x02, 0xF0, 0x00, 0x73, 0x01, 0x60, 0x05, 0x2B, +0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, 0x78, 0x9B, +0x04, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xA3, 0xF0, +0x7C, 0x9B, 0x80, 0xA0, 0x6D, 0xE2, 0x01, 0x4A, +0xA0, 0xF1, 0x0F, 0x72, 0x80, 0xC3, 0x01, 0x48, +0xE8, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF7, +0x54, 0x9A, 0x19, 0x6B, 0x60, 0xC2, 0x09, 0x97, +0x08, 0x90, 0x05, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFC, 0x63, 0x07, 0x62, 0x06, 0xD0, 0x30, 0xF0, +0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, 0x08, 0xF1, +0x44, 0xA0, 0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, 0x1A, 0x6C, +0x04, 0x05, 0x40, 0xEA, 0x9D, 0x67, 0x70, 0xA4, +0x07, 0x6A, 0x6C, 0xEA, 0x08, 0xF1, 0x44, 0xC0, +0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, +0x08, 0xF1, 0x45, 0xA0, 0x0D, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, +0x1A, 0x6C, 0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, +0x50, 0xA3, 0x56, 0x32, 0x08, 0xF1, 0x45, 0xC0, +0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, +0x08, 0xF1, 0x4A, 0xA0, 0x0F, 0x2A, 0x30, 0xF0, +0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, +0x1A, 0x6C, 0x04, 0x05, 0x40, 0xEA, 0x9D, 0x67, +0x50, 0xA4, 0x18, 0x6B, 0x6C, 0xEA, 0x4F, 0x32, +0x08, 0xF1, 0x4A, 0xC0, 0x30, 0xF0, 0x20, 0x68, +0xC6, 0xF5, 0x10, 0x48, 0x08, 0xF1, 0x48, 0xA0, +0x0D, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x48, 0x9A, 0xE0, 0xF1, 0x1C, 0x6C, 0x04, 0x05, +0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, 0x52, 0x32, +0x08, 0xF1, 0x48, 0xC0, 0x30, 0xF0, 0x20, 0x68, +0xC6, 0xF5, 0x10, 0x48, 0x08, 0xF1, 0x46, 0xA0, +0x0E, 0x2A, 0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, +0x48, 0x9A, 0xE0, 0xF1, 0x1D, 0x6C, 0x04, 0x05, +0x40, 0xEA, 0x9D, 0x67, 0x70, 0xA4, 0x03, 0x6A, +0x6C, 0xEA, 0x08, 0xF1, 0x46, 0xC0, 0x30, 0xF0, +0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, 0x08, 0xF1, +0x47, 0xA0, 0x0F, 0x2A, 0x30, 0xF0, 0x20, 0x6A, +0xC0, 0xF3, 0x48, 0x9A, 0xE0, 0xF1, 0x1D, 0x6C, +0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, +0x30, 0x6B, 0x6C, 0xEA, 0x53, 0x32, 0x08, 0xF1, +0x47, 0xC0, 0x07, 0x97, 0x06, 0x90, 0x04, 0x63, +0x00, 0xEF, 0x00, 0x65, 0xFB, 0x63, 0x09, 0x62, +0x08, 0xD1, 0x07, 0xD0, 0x30, 0xF0, 0x20, 0x69, +0xC0, 0xF3, 0x48, 0x99, 0xE0, 0xF1, 0x19, 0x6C, +0x04, 0x05, 0x40, 0xEA, 0x7D, 0x67, 0x50, 0xA3, +0x30, 0xF0, 0x20, 0x68, 0xC6, 0xF5, 0x10, 0x48, +0x52, 0x32, 0x08, 0xF1, 0x48, 0xC0, 0xC0, 0xF3, +0x48, 0x99, 0xE0, 0xF1, 0x1B, 0x6C, 0x04, 0x05, +0x40, 0xEA, 0x9D, 0x67, 0x70, 0xA4, 0x07, 0x6A, +0x6C, 0xEA, 0x08, 0xF1, 0x44, 0xC0, 0x43, 0x67, +0x18, 0x6B, 0x4C, 0xEB, 0x6F, 0x33, 0x08, 0xF1, +0x6A, 0xC0, 0x4F, 0x72, 0x56, 0x33, 0x08, 0xF1, +0x65, 0xC0, 0x0E, 0x61, 0xC0, 0xF3, 0x48, 0x99, +0xE0, 0xF1, 0x1A, 0x6C, 0x00, 0xF0, 0x11, 0x05, +0x40, 0xEA, 0x7D, 0x67, 0x51, 0xA3, 0x57, 0x72, +0x03, 0x61, 0x02, 0x6A, 0x08, 0xF1, 0x4A, 0xC0, +0x30, 0xF0, 0x20, 0x6A, 0xC0, 0xF3, 0x48, 0x9A, +0xE0, 0xF1, 0x1D, 0x6C, 0x04, 0x05, 0x40, 0xEA, +0x7D, 0x67, 0x90, 0xA3, 0x0C, 0x6B, 0x30, 0xF0, +0x20, 0x6A, 0x8C, 0xEB, 0xC6, 0xF5, 0x10, 0x4A, +0x6B, 0x33, 0x9A, 0x34, 0x08, 0xF1, 0x66, 0xC2, +0x08, 0xF1, 0x87, 0xC2, 0x80, 0x18, 0xF4, 0x56, +0x30, 0xF0, 0x20, 0x6A, 0x23, 0xF7, 0x54, 0x9A, +0x60, 0xA2, 0xFF, 0x6A, 0x6C, 0xEA, 0xFD, 0x72, +0x02, 0x61, 0x80, 0x18, 0xCF, 0x56, 0x80, 0x18, +0x53, 0x56, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF7, 0x40, 0x9A, 0x01, 0x6B, 0x60, 0xC2, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF7, 0x84, 0x9A, 0xFF, 0x6B, 0x20, 0x6D, +0x40, 0xA4, 0x6C, 0xEA, 0xAD, 0xEA, 0x6C, 0xEA, +0x40, 0xC4, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF0, +0x9C, 0x9A, 0x08, 0x6D, 0x40, 0xA4, 0x6C, 0xEA, +0xAD, 0xEA, 0x6C, 0xEA, 0x40, 0xC4, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF7, 0x68, 0x9A, +0xFD, 0x6A, 0xFF, 0x6C, 0xA0, 0xA3, 0xAC, 0xEA, +0x40, 0xC3, 0x40, 0xA3, 0x01, 0x6D, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x20, 0xE8, +0xFD, 0x63, 0x05, 0x62, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF2, 0x48, 0x9A, +0x23, 0xF1, 0x88, 0x9B, 0x00, 0x6D, 0x02, 0xF0, +0x00, 0x6E, 0x40, 0xEA, 0x00, 0x6A, 0x30, 0xF0, +0x20, 0x6B, 0x23, 0xF1, 0x68, 0x9B, 0x54, 0x34, +0x01, 0x4A, 0x6D, 0xE4, 0x80, 0x72, 0x04, 0x6C, +0x80, 0xC3, 0xF5, 0x61, 0x30, 0xF0, 0x20, 0x6B, +0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF7, 0x8C, 0x9B, +0x80, 0xF2, 0x48, 0x9A, 0x00, 0x6D, 0x00, 0xF4, +0x00, 0x6E, 0x40, 0xEA, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x10, 0x4B, 0x52, 0x9B, 0x8D, 0xEA, +0x52, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF7, +0x70, 0x9B, 0x80, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF1, 0x68, 0x9B, 0x40, 0xDB, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, +0xB2, 0x9B, 0x8F, 0xEA, 0xAC, 0xEA, 0x52, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0x68, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF7, +0x50, 0x9A, 0x80, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0x05, 0x5C, 0x5E, 0x60, 0x30, 0xF0, 0x20, 0x6A, +0x88, 0x34, 0x02, 0xF7, 0x18, 0x4A, 0x89, 0xE2, +0x40, 0x9A, 0x00, 0xEA, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x50, 0x9B, 0xAD, 0xEA, 0xC6, 0xF5, +0x50, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF7, +0x7C, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF0, 0x68, 0x9B, 0x32, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, 0x41, 0x9B, +0xAD, 0xEA, 0x41, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xC3, 0xF2, 0x70, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF0, 0x6C, 0x9B, 0x21, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, +0x42, 0x9B, 0xAD, 0xEA, 0x42, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF7, 0x74, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0x70, 0x9B, +0x10, 0x10, 0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, +0x10, 0x4B, 0x43, 0x9B, 0xAD, 0xEA, 0x43, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF7, 0x78, 0x9B, +0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, +0x78, 0x9B, 0x40, 0xDB, 0x20, 0xE8, 0x30, 0xF0, +0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, 0x44, 0x9B, +0xAD, 0xEA, 0x44, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF7, 0x7C, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF0, 0x7C, 0x9B, 0x40, 0xDB, +0x20, 0xE8, 0x00, 0x65, 0x05, 0x5C, 0x63, 0x60, +0x30, 0xF0, 0x20, 0x6A, 0x88, 0x34, 0x22, 0xF7, +0x0C, 0x4A, 0x89, 0xE2, 0x40, 0x9A, 0x00, 0xEA, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, 0x90, 0x9B, +0xAF, 0xEA, 0x8C, 0xEA, 0xC6, 0xF5, 0x50, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0x68, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF7, +0x5C, 0x9A, 0x35, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x10, 0x4B, 0x81, 0x9B, 0xAF, 0xEA, +0x8C, 0xEA, 0x41, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF0, 0x6C, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0xC3, 0xF2, 0x50, 0x9A, 0x23, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, +0x82, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x42, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0x70, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x63, 0xF7, +0x54, 0x9A, 0x11, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x10, 0x4B, 0x83, 0x9B, 0xAF, 0xEA, +0x8C, 0xEA, 0x43, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF0, 0x78, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF7, 0x58, 0x9A, 0xA0, 0xDA, +0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, +0x10, 0x4B, 0x84, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, +0x44, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, +0x7C, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x63, 0xF7, 0x5C, 0x9A, 0xA0, 0xDA, 0x20, 0xE8, +0x01, 0x74, 0x15, 0x60, 0x03, 0x24, 0x02, 0x74, +0x23, 0x60, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x10, 0x4B, 0x54, 0x9B, 0xAD, 0xEA, +0x54, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, +0x78, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF1, 0x6C, 0x9B, 0x21, 0x10, 0x30, 0xF0, +0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, 0x55, 0x9B, +0xAD, 0xEA, 0x55, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF7, 0x60, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF1, 0x60, 0x9B, 0x10, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, +0x56, 0x9B, 0xAD, 0xEA, 0x56, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF7, 0x64, 0x9B, 0xA0, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0x64, 0x9B, +0x40, 0xDB, 0x20, 0xE8, 0x01, 0x74, 0x16, 0x60, +0x03, 0x24, 0x02, 0x74, 0x25, 0x60, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, +0x94, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x54, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0x6C, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xC3, 0xF1, +0x58, 0x9A, 0x23, 0x10, 0x30, 0xF0, 0x20, 0x6B, +0xC6, 0xF5, 0x10, 0x4B, 0x95, 0x9B, 0xAF, 0xEA, +0x8C, 0xEA, 0x55, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF1, 0x60, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x83, 0xF7, 0x40, 0x9A, 0x11, 0x10, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, +0x96, 0x9B, 0xAF, 0xEA, 0x8C, 0xEA, 0x56, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x03, 0xF1, 0x64, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF7, +0x44, 0x9A, 0xA0, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF0, 0x88, 0x9C, +0x00, 0x6A, 0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, +0x50, 0xDB, 0xC6, 0xF5, 0x10, 0x4B, 0x41, 0xDB, +0x42, 0xDB, 0x43, 0xDB, 0x44, 0xDB, 0x40, 0xDC, +0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF0, 0x8C, 0x9C, +0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, 0xE3, 0xF0, +0x90, 0x9C, 0x40, 0xDC, 0x30, 0xF0, 0x20, 0x6C, +0xE3, 0xF0, 0x98, 0x9C, 0x40, 0xDC, 0x30, 0xF0, +0x20, 0x6C, 0xE3, 0xF0, 0x9C, 0x9C, 0x40, 0xDC, +0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF1, 0x8C, 0x9C, +0x54, 0xDB, 0x55, 0xDB, 0x40, 0xDC, 0x30, 0xF0, +0x20, 0x6C, 0x03, 0xF1, 0x80, 0x9C, 0x40, 0xDC, +0x30, 0xF0, 0x20, 0x6C, 0x03, 0xF1, 0x84, 0x9C, +0x56, 0xDB, 0x40, 0xDC, 0x52, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x03, 0xF1, 0x68, 0x9B, 0x40, 0xDB, +0x20, 0xE8, 0x00, 0x65, 0x30, 0xF0, 0x20, 0x6B, +0x03, 0xF7, 0x7C, 0x9B, 0x01, 0x6A, 0x4B, 0xEA, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF2, +0x70, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x63, 0xF7, 0x74, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x63, 0xF7, 0x78, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF7, 0x7C, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xC3, 0xF1, +0x78, 0x9B, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x83, 0xF7, 0x60, 0x9B, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0x83, 0xF7, 0x64, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0x63, 0xF7, 0x70, 0x9B, +0x40, 0xDB, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0x83, 0xF7, 0xA8, 0x9A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF3, 0x10, 0x6E, 0xC6, 0xF5, 0xD0, 0xDB, +0x01, 0xF7, 0x01, 0x6A, 0xC6, 0xF5, 0x10, 0x4B, +0x00, 0x6C, 0x42, 0xDB, 0x43, 0xDB, 0xA1, 0xDB, +0x84, 0xDB, 0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, +0x68, 0x9B, 0xC0, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0xE3, 0xF0, 0x6C, 0x9B, 0xA0, 0xDB, 0x30, 0xF0, +0x20, 0x6B, 0xE3, 0xF0, 0x70, 0x9B, 0x40, 0xDB, +0x30, 0xF0, 0x20, 0x6B, 0xE3, 0xF0, 0x78, 0x9B, +0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, 0xE3, 0xF0, +0x5C, 0x9A, 0x80, 0xDA, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x00, 0x6B, 0x72, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF1, 0x48, 0x9A, 0x60, 0xDA, 0x20, 0xE8, +0x30, 0xF0, 0x20, 0x6B, 0x83, 0xF7, 0x8C, 0x9B, +0x30, 0xF0, 0x20, 0x6A, 0xC6, 0xF5, 0x10, 0x4A, +0x80, 0xF1, 0x0E, 0x6D, 0xFF, 0x6B, 0xB4, 0xDA, +0x95, 0xDA, 0x76, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0x03, 0xF1, 0x4C, 0x9A, 0xA0, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x03, 0xF1, 0x40, 0x9A, 0x80, 0xDA, +0x30, 0xF0, 0x20, 0x6A, 0x03, 0xF1, 0x44, 0x9A, +0x60, 0xDA, 0x20, 0xE8, 0xFD, 0x63, 0x05, 0x62, +0x80, 0x18, 0x48, 0x58, 0x80, 0x18, 0x67, 0x58, +0x80, 0x18, 0x7F, 0x58, 0x80, 0x18, 0x9C, 0x58, +0x80, 0x18, 0x96, 0x58, 0x05, 0x97, 0x03, 0x63, +0x00, 0xEF, 0x00, 0x65, 0x20, 0xE8, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x80, 0x18, 0xD9, 0x58, +0x30, 0xF0, 0x20, 0x6B, 0xC6, 0xF5, 0x10, 0x4B, +0x42, 0xF6, 0x50, 0xC3, 0x00, 0x6A, 0x42, 0xF6, +0x51, 0xC3, 0x80, 0x18, 0x78, 0x57, 0x80, 0x18, +0x66, 0x5A, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF7, +0x50, 0x9A, 0x3F, 0x6B, 0x60, 0xC2, 0x80, 0x18, +0x69, 0x57, 0x80, 0x18, 0x6D, 0x57, 0x80, 0x18, +0x28, 0x3D, 0x80, 0x18, 0x80, 0x57, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0xFD, 0x63, 0x05, 0x62, +0x00, 0x18, 0xED, 0xD2, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x05, 0x97, +0x03, 0x63, 0x00, 0xEF, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0xF0, 0x54, 0x9A, 0xE0, 0xF1, 0x1B, 0x6B, +0x6B, 0xEB, 0x60, 0xCA, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0xF0, 0x78, 0x9A, 0xFB, 0x6A, 0x80, 0xA3, +0x8C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x04, 0xF0, 0x7C, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0xE3, 0xF3, 0x8C, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, +0x40, 0xDB, 0x20, 0xE8, 0x30, 0xF0, 0x20, 0x6A, +0xE3, 0xF2, 0x44, 0x9A, 0xFF, 0xF7, 0x1F, 0x6B, +0x40, 0xAA, 0x4C, 0xEB, 0x62, 0x33, 0x03, 0x6A, +0x72, 0x33, 0x4C, 0xEB, 0x02, 0x6A, 0x04, 0x23, +0x01, 0x73, 0x01, 0x6A, 0x01, 0x60, 0x03, 0x6A, +0x20, 0xE8, 0x00, 0x65, 0x10, 0xF0, 0x23, 0x6A, +0xE9, 0xF4, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x48, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xE9, 0xF4, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x4C, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0x2C, 0xF3, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x50, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x2F, 0xF2, 0x09, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF2, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xCC, 0xF6, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF2, 0x50, 0xDB, 0x10, 0xF0, 0x24, 0x6A, +0x31, 0xF4, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF2, 0x54, 0xDB, 0x10, 0xF0, 0x24, 0x6A, +0x11, 0xF2, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF2, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xA8, 0xF5, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF2, 0x58, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xE8, 0xF6, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xE0, 0xF2, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x4C, 0xF1, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF3, 0x40, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x8A, 0xF5, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF3, 0x44, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xEA, 0xF5, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF3, 0x48, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x0D, 0xF2, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF3, 0x4C, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0x6A, 0xF4, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF4, 0x58, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0x2A, 0xF6, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF4, 0x50, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0x8A, 0xF6, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF4, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x69, 0xF7, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF4, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x8A, 0xF1, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF4, 0x40, 0xDB, 0x10, 0xF0, 0x24, 0x6A, +0x10, 0xF2, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF4, 0x5C, 0xDB, 0x10, 0xF0, 0x24, 0x6A, +0x90, 0xF2, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x40, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xC2, 0xF2, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x48, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x42, 0xF2, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x4C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xCA, 0xF6, 0x1D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x44, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0xEA, 0xF6, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF4, 0x54, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xA8, 0xF0, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x58, 0xDB, 0x10, 0xF0, 0x24, 0x6A, +0xF0, 0xF6, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x5C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xE8, 0xF0, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF4, 0x40, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xE8, 0xF1, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF4, 0x50, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0x5F, 0xF0, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF5, 0x44, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0xFE, 0xF1, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF3, 0x44, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x89, 0xF4, 0x09, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF3, 0x44, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0xA9, 0xF4, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF3, 0x4C, 0xDB, 0x10, 0xF0, 0x23, 0x6A, +0x89, 0xF4, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF3, 0x48, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0x49, 0xF5, 0x15, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x80, 0xF3, 0x50, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0xDF, 0xF1, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF3, 0x40, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0x25, 0xF2, 0x11, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF6, 0x50, 0xDB, 0x10, 0xF0, 0x30, 0x6A, +0x8B, 0xF4, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF6, 0x54, 0xDB, 0x10, 0xF0, 0x30, 0x6A, +0x0E, 0xF0, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF6, 0x58, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0xBE, 0xF6, 0x01, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF3, 0x58, 0xDB, 0x10, 0xF0, 0x31, 0x6A, +0x3E, 0xF6, 0x0D, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF3, 0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x66, 0xF6, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x00, 0xF6, 0x5C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x29, 0xF4, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x4A, 0xF0, 0x6C, 0x9A, 0x30, 0xF0, 0x20, 0x6A, +0x20, 0xF6, 0x64, 0xDA, 0x30, 0xF0, 0x20, 0x6A, +0x4A, 0xF0, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x6A, 0xF1, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x4C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x8A, 0xF1, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x50, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x0C, 0xF2, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x54, 0xDB, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x58, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x2E, 0xF2, 0x04, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x20, 0xF6, 0x5C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x2E, 0xF5, 0x07, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF6, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x2E, 0xF5, 0x0C, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF6, 0x44, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x2E, 0xF5, 0x14, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF6, 0x48, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xEC, 0xF1, 0x10, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF6, 0x4C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xEC, 0xF1, 0x18, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF6, 0x50, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xEC, 0xF1, 0x19, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF6, 0x54, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xEC, 0xF1, 0x1A, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF6, 0x58, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x0C, 0xF2, 0x00, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x40, 0xF6, 0x5C, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0x0C, 0xF2, 0x0A, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0x60, 0xF6, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF6, 0x05, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xA0, 0xF6, 0x58, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xEE, 0xF6, 0x08, 0x4A, 0x30, 0xF0, 0x20, 0x6B, +0xC0, 0xF6, 0x40, 0xDB, 0x20, 0xE8, 0x00, 0x65, +0x30, 0xF0, 0x20, 0x6A, 0x30, 0xF0, 0x20, 0x6B, +0x21, 0xF0, 0x00, 0x4B, 0x80, 0xF2, 0x08, 0x4A, +0x13, 0x10, 0x80, 0x9A, 0x10, 0x2C, 0x30, 0xF0, +0x20, 0x6C, 0x83, 0xF1, 0xBC, 0x9C, 0x30, 0xF0, +0x20, 0x6E, 0x23, 0xF1, 0xD4, 0x9E, 0x80, 0x9D, +0xCD, 0xEC, 0x80, 0xDD, 0x30, 0xF0, 0x20, 0x6C, +0xE3, 0xF2, 0x98, 0x9C, 0x40, 0xDC, 0x04, 0x4A, +0x43, 0xEB, 0xEB, 0x60, 0x20, 0xE8, 0x00, 0x65, +0xFB, 0x63, 0x09, 0x62, 0x08, 0xD1, 0x07, 0xD0, +0xFF, 0xF7, 0x1F, 0x69, 0x2C, 0xED, 0x30, 0xF0, +0x20, 0x6B, 0x04, 0xD5, 0x64, 0xF0, 0xB4, 0x9B, +0xFF, 0x6A, 0x40, 0x6E, 0x60, 0xA5, 0xCB, 0xEE, +0x4C, 0xEC, 0x4C, 0xEB, 0xCC, 0xEB, 0x6D, 0xEC, +0x4C, 0xEC, 0x80, 0xC5, 0x30, 0xF0, 0x20, 0x6A, +0x80, 0xF3, 0x4C, 0x9A, 0x0A, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF0, 0x58, 0x9A, +0x00, 0xAA, 0x04, 0x92, 0x2C, 0xE8, 0x2A, 0xEA, +0x0B, 0x60, 0x30, 0xF0, 0x20, 0x6A, 0xA0, 0xF3, +0x44, 0x9A, 0x04, 0x94, 0x40, 0xEA, 0x04, 0x93, +0x2C, 0xEA, 0x6C, 0xE8, 0x07, 0xEA, 0x2C, 0xE8, +0x50, 0x67, 0x09, 0x97, 0x08, 0x91, 0x07, 0x90, +0x05, 0x63, 0x00, 0xEF, 0xFA, 0x63, 0x0B, 0x62, +0x0A, 0xD1, 0x09, 0xD0, 0xFF, 0xF7, 0x1F, 0x69, +0x2C, 0xED, 0xFF, 0x68, 0x0C, 0xEC, 0x2C, 0xEE, +0x2A, 0xED, 0x05, 0xD4, 0x04, 0xD5, 0x06, 0xD6, +0x1F, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF0, +0x74, 0x9A, 0x40, 0x6C, 0x8B, 0xEC, 0x40, 0xA3, +0x0C, 0xEA, 0x8C, 0xEA, 0x05, 0x94, 0x8D, 0xEA, +0x0C, 0xEA, 0x40, 0xC3, 0x30, 0xF0, 0x20, 0x6A, +0x64, 0xF0, 0x78, 0x9A, 0x30, 0xF0, 0x20, 0x6C, +0x63, 0xF5, 0x9C, 0x9C, 0x40, 0x9B, 0x8C, 0xEA, +0x30, 0xF0, 0x20, 0x6C, 0x83, 0xF0, 0x8C, 0x9C, +0x8D, 0xEA, 0xCD, 0xEA, 0x40, 0xDB, 0x34, 0x10, +0x05, 0x94, 0xB1, 0x67, 0x80, 0x18, 0xE2, 0x59, +0x07, 0xD2, 0x30, 0xF0, 0x20, 0x6A, 0x04, 0x94, +0xA0, 0xF3, 0x44, 0x9A, 0x40, 0xEA, 0x30, 0xF0, +0x20, 0x6B, 0x64, 0xF0, 0x94, 0x9B, 0x40, 0x6D, +0xAB, 0xED, 0x60, 0xA4, 0x2C, 0xEA, 0x0C, 0xEB, +0xAC, 0xEB, 0x05, 0x95, 0xAD, 0xEB, 0x0C, 0xEB, +0x60, 0xC4, 0x30, 0xF0, 0x20, 0x6B, 0x64, 0xF0, +0x98, 0x9B, 0x30, 0xF0, 0x20, 0x6D, 0x63, 0xF5, +0xBC, 0x9D, 0x60, 0x9C, 0x06, 0x96, 0xAC, 0xEB, +0x30, 0xF0, 0x20, 0x6D, 0x83, 0xF0, 0xAC, 0x9D, +0xC4, 0xEA, 0x46, 0x67, 0xAD, 0xEB, 0x04, 0x95, +0x07, 0x96, 0xAC, 0xEA, 0xAF, 0xED, 0xCC, 0xED, +0xAD, 0xEA, 0x2C, 0xEA, 0x4D, 0xEB, 0x60, 0xDC, +0x30, 0xF0, 0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, +0x0A, 0x6C, 0x40, 0xEA, 0x0B, 0x97, 0x0A, 0x91, +0x09, 0x90, 0x06, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x00, 0x6C, 0x10, 0xF0, +0x00, 0x6D, 0x80, 0x18, 0xE2, 0x59, 0x05, 0x97, +0x01, 0x5A, 0x58, 0x67, 0x03, 0x63, 0x00, 0xEF, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6B, 0x43, 0xF0, 0x78, 0x9B, 0x10, 0xF0, +0x31, 0x6A, 0xED, 0xF0, 0x09, 0x4A, 0x40, 0xDB, +0x00, 0x68, 0x31, 0x10, 0x82, 0xF3, 0x08, 0x70, +0x1A, 0x61, 0x30, 0xF0, 0x20, 0x6A, 0x83, 0xF1, +0x7C, 0x9A, 0x02, 0xF0, 0x00, 0x6C, 0x40, 0x9B, +0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, 0x20, 0x6A, +0xC6, 0xF5, 0x10, 0x4A, 0xA3, 0xF3, 0x7C, 0x9A, +0x8D, 0xEB, 0xA3, 0xF3, 0x7C, 0xDA, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF1, 0x54, 0x9A, 0x03, 0x6B, +0x6B, 0xEB, 0x60, 0xC2, 0x18, 0x10, 0xFF, 0xF7, +0x1F, 0x6A, 0x01, 0x48, 0x4C, 0xE8, 0x30, 0xF0, +0x20, 0x6A, 0x80, 0xF3, 0x4C, 0x9A, 0x14, 0x6C, +0x40, 0xEA, 0x33, 0x58, 0x08, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF7, 0x54, 0x9A, 0x60, 0xA2, +0x08, 0x6A, 0x6C, 0xEA, 0x04, 0x2A, 0x80, 0x18, +0x34, 0x5A, 0x01, 0x72, 0xCB, 0x61, 0x30, 0xF0, +0x20, 0x6A, 0x63, 0xF1, 0x54, 0x9A, 0x02, 0x6B, +0x6B, 0xEB, 0x60, 0xC2, 0x30, 0xF0, 0x20, 0x6B, +0x43, 0xF0, 0x78, 0x9B, 0x10, 0xF0, 0x31, 0x6A, +0xED, 0xF0, 0x0A, 0x4A, 0x40, 0xDB, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0xFD, 0x63, 0x05, 0x62, 0x04, 0xD0, 0x30, 0xF0, +0x20, 0x6A, 0xA3, 0xF7, 0x78, 0x9A, 0x02, 0x6C, +0xFF, 0xF7, 0x1F, 0x6D, 0x40, 0x9B, 0xFF, 0x6E, +0x41, 0x4E, 0x8D, 0xEA, 0x40, 0xDB, 0x30, 0xF0, +0x20, 0x6A, 0x43, 0xF1, 0x74, 0x9A, 0xE0, 0xF3, +0x1E, 0x4C, 0x30, 0xF0, 0x20, 0x68, 0x40, 0xAB, +0xAC, 0xEA, 0x8D, 0xEA, 0xAC, 0xEA, 0x40, 0xCB, +0x02, 0x6C, 0x80, 0x18, 0xFD, 0x59, 0x80, 0xF3, +0x4C, 0x98, 0x0A, 0x6C, 0x40, 0xEA, 0x00, 0x6C, +0xC0, 0x6D, 0x02, 0x6E, 0x80, 0x18, 0xFD, 0x59, +0x00, 0x6C, 0xC4, 0x67, 0x02, 0xF0, 0x00, 0x6D, +0x80, 0x18, 0xFD, 0x59, 0x00, 0x6C, 0xC4, 0x67, +0x0C, 0xF0, 0x00, 0x6D, 0x80, 0x18, 0xFD, 0x59, +0x00, 0x6C, 0x01, 0xF0, 0x00, 0x6D, 0x01, 0x6E, +0x80, 0x18, 0xFD, 0x59, 0x10, 0xF0, 0x00, 0x6D, +0x01, 0x6E, 0x00, 0x6C, 0x80, 0x18, 0xFD, 0x59, +0x80, 0xF3, 0x4C, 0x98, 0x0A, 0x6C, 0x40, 0xEA, +0x30, 0xF0, 0x20, 0x6A, 0x64, 0xF0, 0x7C, 0x9A, +0xFF, 0x6C, 0x04, 0x6D, 0x40, 0xA3, 0x8C, 0xEA, +0xAD, 0xEA, 0x8C, 0xEA, 0x40, 0xC3, 0x05, 0x97, +0x04, 0x90, 0x03, 0x63, 0x00, 0xEF, 0x00, 0x65, +0x39, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +u32 array_length_mp_8822c_fw_wowlan = 143304; + +#endif /*CONFIG_WOWLAN*/ + +#endif + +#endif /* end of LOAD_FW_HEADER_FROM_DRIVER */ + +#endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/hal8822c_fw_10M.h b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/hal8822c_fw_10M.h new file mode 100755 index 00000000..fb806ec8 --- /dev/null +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/hal8822c_fw_10M.h @@ -0,0 +1,46 @@ +/****************************************************************************** +* +* Copyright(c) 2012 - 2017 Realtek Corporation. +* +* This program is free software; you can redistribute it and/or modify it +* under the terms of version 2 of the GNU General Public License 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. +* +******************************************************************************/ + +#ifdef CONFIG_RTL8822C + +#ifndef _FW_HEADER_8822C_H +#define _FW_HEADER_8822C_H + +#ifdef LOAD_FW_HEADER_FROM_DRIVER +#if (defined(CONFIG_AP_WOWLAN) || (DM_ODM_SUPPORT_TYPE & (ODM_AP))) +extern u8 array_mp_8822c_fw_ap[128912]; +extern u32 array_length_mp_8822c_fw_ap; +#endif + +#if (DM_ODM_SUPPORT_TYPE & (ODM_WIN)) || (DM_ODM_SUPPORT_TYPE & (ODM_CE)) +extern u8 array_mp_8822c_fw_nic[195672]; +extern u32 array_length_mp_8822c_fw_nic; + +#if !(DM_ODM_SUPPORT_TYPE & (ODM_CE)) +extern u8 array_mp_8822c_fw_spic[114072]; +extern u32 array_length_mp_8822c_fw_spic; +#endif /*!(DM_ODM_SUPPORT_TYPE & (ODM_CE))*/ + +#ifdef CONFIG_WOWLAN +extern u8 array_mp_8822c_fw_wowlan[143304]; +extern u32 array_length_mp_8822c_fw_wowlan; +#endif /*CONFIG_WOWLAN*/ +#endif +#endif /* end of LOAD_FW_HEADER_FROM_DRIVER */ + +#endif + +#endif + diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/pci/rtl8822ce.h b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/pci/rtl8822ce.h index 6420f306..80071155 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/pci/rtl8822ce.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/pci/rtl8822ce.h @@ -48,16 +48,34 @@ #define MAX_RECVBUF_SZ_8822C 24576 /* 24k */ /* TX BD */ -#define SET_TXBUFFER_DESC_LEN_WITH_OFFSET(__pTxDesc, __Offset, __Valeu) \ - SET_BITS_TO_LE_4BYTE(__pTxDesc+(__Offset*8), 0, 16, __Valeu) -#define SET_TXBUFFER_DESC_AMSDU_WITH_OFFSET(__pTxDesc, __Offset, __Valeu) \ - SET_BITS_TO_LE_4BYTE(__pTxDesc+(__Offset*8), 31, 1, __Valeu) -#define SET_TXBUFFER_DESC_ADD_LOW_WITH_OFFSET(__pTxDesc, __Offset, __Valeu) \ - SET_BITS_TO_LE_4BYTE(__pTxDesc+(__Offset*8)+4, 0, 32, __Valeu) +#ifdef CONFIG_64BIT_DMA +#define SET_TXBUFFER_DESC_LEN_WITH_OFFSET(__pTxDesc, __Offset, __Value) \ + SET_BITS_TO_LE_4BYTE(__pTxDesc+(__Offset*16), 0, 16, __Value) +#define SET_TXBUFFER_DESC_AMSDU_WITH_OFFSET(__pTxDesc, __Offset, __Value) \ + SET_BITS_TO_LE_4BYTE(__pTxDesc+(__Offset*16), 31, 1, __Value) +#define SET_TXBUFFER_DESC_ADD_LOW_WITH_OFFSET(__pTxDesc, __Offset, __Value) \ + SET_BITS_TO_LE_4BYTE(__pTxDesc+(__Offset*16)+4, 0, 32, __Value) +#define SET_TXBUFFER_DESC_ADD_HIGH_WITH_OFFSET(__pTxDesc, __Offset, __Value) \ + SET_BITS_TO_LE_4BYTE(__pTxDesc+(__Offset*16)+8, 0, 32, __Value) +#else +#define SET_TXBUFFER_DESC_LEN_WITH_OFFSET(__pTxDesc, __Offset, __Value) \ + SET_BITS_TO_LE_4BYTE(__pTxDesc+(__Offset*8), 0, 16, __Value) +#define SET_TXBUFFER_DESC_AMSDU_WITH_OFFSET(__pTxDesc, __Offset, __Value) \ + SET_BITS_TO_LE_4BYTE(__pTxDesc+(__Offset*8), 31, 1, __Value) +#define SET_TXBUFFER_DESC_ADD_LOW_WITH_OFFSET(__pTxDesc, __Offset, __Value) \ + SET_BITS_TO_LE_4BYTE(__pTxDesc+(__Offset*8)+4, 0, 32, __Value) +#define SET_TXBUFFER_DESC_ADD_HIGH_WITH_OFFSET(__pTxDesc, __Offset, __Value) 0 +#endif /* RX BD */ #define SET_RX_BD_PHYSICAL_ADDR_LOW(__pRxBd, __Value) \ SET_BITS_TO_LE_4BYTE(__pRxBd + 0x04, 0, 32, __Value) +#ifdef CONFIG_64BIT_DMA +#define SET_RX_BD_PHYSICAL_ADDR_HIGH(__pRxBd, __Value) \ + SET_BITS_TO_LE_4BYTE(__pRxBd + 0x08, 0, 32, __Value) +#else +#define SET_RX_BD_PHYSICAL_ADDR_HIGH(__pRxBd, __Value) 0 +#endif #define SET_RX_BD_RXBUFFSIZE(__pRxBd, __Value) \ SET_BITS_TO_LE_4BYTE(__pRxBd + 0x00, 0, 14, __Value) #define SET_RX_BD_LS(__pRxBd, __Value) \ @@ -101,6 +119,9 @@ void rtl8822ce_tx_ring_poll(PADAPTER Adapter, int prio); s32 rtl8822ce_mgnt_xmit(PADAPTER, struct xmit_frame *); s32 rtl8822ce_hal_xmit(PADAPTER, struct xmit_frame *); +#ifdef CONFIG_RTW_MGMT_QUEUE +s32 rtl8822ce_hal_mgmt_xmitframe_enqueue(PADAPTER, struct xmit_frame *); +#endif s32 rtl8822ce_hal_xmitframe_enqueue(PADAPTER, struct xmit_frame *); #ifdef CONFIG_XMIT_THREAD_MODE @@ -110,6 +131,7 @@ u32 InitMAC_TRXBD_8822CE(PADAPTER adapter); void rtl8822ce_reset_bd(_adapter *padapter); void rtl8822ce_xmitframe_resume(PADAPTER); +void rtl8822ce_hci_flush(PADAPTER Adapter, u32 queue); /* rtl8822cs_recv.c */ s32 rtl8822ce_init_recv_priv(PADAPTER); diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/pci/rtl8822ce_halinit.c b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/pci/rtl8822ce_halinit.c index 0fd761f0..a9f43135 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/pci/rtl8822ce_halinit.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/pci/rtl8822ce_halinit.c @@ -271,24 +271,6 @@ u32 InitMAC_TRXBD_8822CE(PADAPTER Adapter) ((u64)pxmitpriv->tx_ring[HIGH_QUEUE_INX].dma) >> 32); rtw_write32(Adapter, REG_RXQ_RXBD_DESA_8822C + 4, ((u64)precvpriv->rx_ring[RX_MPDU_QUEUE].dma) >> 32); - - - /* 2009/10/28 MH If RX descriptor address is not equal to zero. - * We will enable DMA 64 bit functuion. - * Note: We never saw thd consition which the descripto address are - * divided into 4G down and 4G upper separate area. - */ - if (((u64)precvpriv->rx_ring[RX_MPDU_QUEUE].dma) >> 32 != 0) { - RTW_INFO("Enable DMA64 bit\n"); - - /* Check if other descriptor address is zero and - * abnormally be in 4G lower area. */ - if (((u64)pxmitpriv->tx_ring[MGT_QUEUE_INX].dma) >> 32) - RTW_INFO("MGNT_QUEUE HA=0\n"); - - PlatformEnableDMA64(Adapter); - } else - RTW_INFO("Enable DMA32 bit\n"); #endif /* pci buffer descriptor mode: Reset the Read/Write point to 0 */ @@ -345,20 +327,14 @@ u32 InitMAC_TRXBD_8822CE(PADAPTER Adapter) rtw_write16(Adapter, REG_HI7Q_TXBD_NUM_8822C, TX_BD_NUM_8822CE | ((RTL8822CE_SEG_NUM << 12) & 0x3000)); - - /* rx. support 32 bits in linux */ - - - /* using 64bit +#ifdef CONFIG_64BIT_DMA rtw_write16(Adapter, REG_RX_RXBD_NUM_8822C, - RX_BD_NUM_8822CE |((RTL8822CE_SEG_NUM<<13 ) & 0x6000) |0x8000); - */ - - - /* using 32bit */ + RX_BD_NUM_8822CE |((RTL8822CE_SEG_NUM<<13 ) & 0x6000) | + 0x8000); +#else rtw_write16(Adapter, REG_RX_RXBD_NUM_8822C, RX_BD_NUM_8822CE | ((RTL8822CE_SEG_NUM << 13) & 0x6000)); - +#endif /* reset read/write point */ rtw_write32(Adapter, REG_TSFTIMER_HCI_8822C, 0XFFFFFFFF); @@ -409,7 +385,6 @@ static void init_hwled(PADAPTER adapter, u8 enable) static void hal_init_misc(PADAPTER adapter) { - RTW_INFO(" ====> %s\n", __func__); #ifdef CONFIG_RTW_LED struct led_priv *ledpriv = adapter_to_led(adapter); #ifdef CONFIG_SW_LED @@ -420,7 +395,6 @@ static void hal_init_misc(PADAPTER adapter) #endif /* CONFIG_SW_LED */ init_hwled(adapter, 1); #endif - RTW_INFO(" %s <====\n", __func__); } u32 rtl8822ce_init(PADAPTER padapter) @@ -430,7 +404,6 @@ u32 rtl8822ce_init(PADAPTER padapter) PHAL_DATA_TYPE hal; struct registry_priv *registry_par = &padapter->registrypriv; - RTW_INFO(" ====> %s\n", __func__); hal = GET_HAL_DATA(padapter); #if 0 @@ -500,12 +473,11 @@ u32 rtl8822ce_init(PADAPTER padapter) if (0x3 == ((rtw_read32(padapter, REG_SYS_STATUS1_8822C)>>12)&0x7)) rtl8822c_set_usb_suspend_mode(padapter); #endif - + #ifdef CONFIG_8822CE_INT_MIGRATION /* TX interrupt migration - 3pkts or 7*64=448us */ rtw_write32(padapter, REG_INT_MIG_8822C, 0x03070000); #endif - RTW_INFO(" %s <====\n", __func__); return _SUCCESS; } diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/pci/rtl8822ce_halmac.c b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/pci/rtl8822ce_halmac.c index b22c3755..11a905c9 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/pci/rtl8822ce_halmac.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/pci/rtl8822ce_halmac.c @@ -18,7 +18,7 @@ #include "../rtl8822c.h" /* rtl8822c_get_tx_desc_size() */ #include "rtl8822ce.h" -static u8 pci_write_port_not_xmitframe(void *d, u32 size, u8 *pBuf, u8 qsel) +static u8 pci_write_port_not_xmitframe(void *d, u32 size, dma_addr_t mapping, u8 qsel) { struct dvobj_priv *pobj = (struct dvobj_priv *)d; struct pci_dev *pdev = pobj->ppcidev; @@ -26,16 +26,10 @@ static u8 pci_write_port_not_xmitframe(void *d, u32 size, u8 *pBuf, u8 qsel) u8 *txbd; dma_addr_t txbd_dma; u8 ret = _SUCCESS; - dma_addr_t mapping; u16 tx_page_size = 128; u16 tx_page_used = 0; int i; - - /* map TX DESC buf_addr (including TX DESC + tx data) */ - mapping = pci_map_single(pdev, pBuf, - size + TX_WIFI_INFO_SIZE, PCI_DMA_TODEVICE); - /* Calculate page size. * Total buffer length including TX_WIFI_INFO and PacketLen */ if (tx_page_size > 0) { @@ -44,25 +38,29 @@ static u8 pci_write_port_not_xmitframe(void *d, u32 size, u8 *pBuf, u8 qsel) tx_page_used++; } - txbd = pci_alloc_consistent(pdev, sizeof(struct tx_buf_desc), &txbd_dma); + txbd = dma_alloc_coherent(&pdev->dev, + sizeof(struct tx_buf_desc), &txbd_dma, GFP_ATOMIC); if (!txbd) { - pci_unmap_single(pdev, mapping, - size + TX_WIFI_INFO_SIZE, PCI_DMA_FROMDEVICE); - - return _FALSE; + ret = _FAIL; + goto DMA_FREE; } + /* BD init */ if (qsel == HALMAC_TXDESC_QSEL_H2C_CMD) { rtw_write32(padapter, REG_H2CQ_TXBD_DESA_8822C, txbd_dma & DMA_BIT_MASK(32)); -#ifdef CONFIG_64BIT_DMA + #ifdef CONFIG_64BIT_DMA rtw_write32(padapter, REG_H2CQ_TXBD_DESA_8822C + 4, ((u64)txbd_dma) >> 32); -#endif + #endif rtw_write32(padapter, REG_H2CQ_TXBD_NUM_8822C, 2 | ((RTL8822CE_SEG_NUM << 12) & 0x3000)); + + /* Reset the H2CQ R/W point index to 0 */ + rtw_write32(padapter, REG_H2CQ_CSR_8822C, + rtw_read32(padapter, REG_H2CQ_CSR_8822C) | BIT8 | BIT16); } else { rtw_write32(padapter, REG_BCNQ_TXBD_DESA_8822C, txbd_dma & DMA_BIT_MASK(32)); @@ -87,6 +85,9 @@ static u8 pci_write_port_not_xmitframe(void *d, u32 size, u8 *pBuf, u8 qsel) SET_TX_BD_PSB(txbd, tx_page_used); /* starting addr of TXDESC */ SET_TX_BD_PHYSICAL_ADDR0_LOW(txbd, mapping); +#ifdef CONFIG_64BIT_DMA + SET_TX_BD_PHYSICAL_ADDR0_HIGH(txbd, (u32)(mapping >> 32)); +#endif /* * It is assumed that in linux implementation, packet is coalesced @@ -97,6 +98,10 @@ static u8 pci_write_port_not_xmitframe(void *d, u32 size, u8 *pBuf, u8 qsel) SET_TXBUFFER_DESC_AMSDU_WITH_OFFSET(txbd, 1, 0); SET_TXBUFFER_DESC_ADD_LOW_WITH_OFFSET(txbd, 1, mapping + TX_WIFI_INFO_SIZE); /* pkt */ +#ifdef CONFIG_64BIT_DMA + SET_TXBUFFER_DESC_ADD_HIGH_WITH_OFFSET(txbd, 1, + (u32)((mapping + TX_WIFI_INFO_SIZE) >> 32)); /* pkt */ +#endif wmb(); @@ -111,10 +116,8 @@ static u8 pci_write_port_not_xmitframe(void *d, u32 size, u8 *pBuf, u8 qsel) udelay(100); - pci_free_consistent(pdev, sizeof(struct tx_buf_desc), txbd, txbd_dma); - - pci_unmap_single(pdev, mapping, size + TX_WIFI_INFO_SIZE, - PCI_DMA_FROMDEVICE); +DMA_FREE: + dma_free_coherent(&pdev->dev, sizeof(struct tx_buf_desc), txbd, txbd_dma); return ret; } @@ -122,9 +125,11 @@ static u8 pci_write_port_not_xmitframe(void *d, u32 size, u8 *pBuf, u8 qsel) static u8 pci_write_data_not_xmitframe(void *d, u8 *pBuf, u32 size, u8 qsel) { struct dvobj_priv *pobj = (struct dvobj_priv *)d; + struct pci_dev *pdev = pobj->ppcidev; PADAPTER padapter = dvobj_get_primary_adapter(pobj); struct halmac_adapter *halmac = dvobj_to_halmac((struct dvobj_priv *)d); struct halmac_api *api = HALMAC_GET_API(halmac); + dma_addr_t mapping; u32 desclen = 0; u32 len = 0; u8 *buf = NULL; @@ -139,13 +144,21 @@ static u8 pci_write_data_not_xmitframe(void *d, u8 *pBuf, u32 size, u8 qsel) desclen = rtl8822c_get_tx_desc_size(padapter); len = desclen + size; +#ifdef CONFIG_PCIE_DMA_COHERENT + buf = dma_alloc_coherent(&pdev->dev, len, &mapping, GFP_KERNEL); + + if (!buf) { + RTW_ERR("%s: dma alloc coherent buffer fail!\n", __func__); + return _FALSE; + } +#else buf = rtw_zmalloc(len); if (!buf) { RTW_ERR("%s: alloc buffer fail!\n", __func__); return _FALSE; } - +#endif /* copy data */ _rtw_memcpy(buf + desclen, pBuf, size); @@ -164,16 +177,25 @@ static u8 pci_write_data_not_xmitframe(void *d, u8 *pBuf, u32 size, u8 qsel) api->halmac_fill_txdesc_checksum(halmac, buf); - ret = pci_write_port_not_xmitframe(d, size, buf, qsel); +#ifndef CONFIG_PCIE_DMA_COHERENT + /* map TX DESC buf_addr (including TX DESC + tx data) */ + mapping = dma_map_single(&pdev->dev, buf, len, DMA_TO_DEVICE); +#endif + ret = pci_write_port_not_xmitframe(d, size, mapping, qsel); if (ret == _SUCCESS) ret = _TRUE; else ret = _FALSE; +#ifdef CONFIG_PCIE_DMA_COHERENT + dma_free_coherent(&pdev->dev, len, buf, mapping); +#else + dma_unmap_single(&pdev->dev, mapping, len, DMA_FROM_DEVICE); rtw_mfree(buf, len); +#endif - return _TRUE; + return ret; } static u8 pci_write_data_rsvd_page_xmitframe(void *d, u8 *pBuf, u32 size) @@ -192,6 +214,7 @@ static u8 pci_write_data_rsvd_page_xmitframe(void *d, u8 *pBuf, u32 size) u32 poll = 0; u8 *txbd; BOOLEAN bcn_valid = _FALSE; + dma_addr_t mapping; if (size + TXDESC_OFFSET > MAX_CMDBUF_SZ) { RTW_INFO("%s: total buffer size(%d) > MAX_CMDBUF_SZ(%d)\n" @@ -239,8 +262,14 @@ static u8 pci_write_data_rsvd_page_xmitframe(void *d, u8 *pBuf, u32 size) } while (!bcn_valid && DLBcnCount <= 100 && !RTW_CANNOT_RUN(padapter)); txbd = (u8 *)(&ring->buf_desc[0]); - pci_unmap_single(pdev, GET_TX_BD_PHYSICAL_ADDR0_LOW(txbd), - pxmitbuf->len, PCI_DMA_TODEVICE); + +#ifndef CONFIG_PCIE_DMA_COHERENT + mapping = GET_TX_BD_PHYSICAL_ADDR0_LOW(txbd); +#ifdef CONFIG_64BIT_DMA + mapping |= (dma_addr_t)GET_TX_BD_PHYSICAL_ADDR0_HIGH(txbd) << 32; +#endif + dma_unmap_single(&pdev->dev, mapping, pxmitbuf->len, DMA_TO_DEVICE); +#endif return _TRUE; } @@ -334,15 +363,20 @@ int rtl8822ce_halmac_init_adapter(PADAPTER padapter) struct dvobj_priv *d; struct halmac_platform_api *api; int err; + u16 tmp; - RTW_INFO(" ====> %s\n", __func__); d = adapter_to_dvobj(padapter); api = &rtw_halmac_platform_api; api->SEND_RSVD_PAGE = pci_write_data_rsvd_page; api->SEND_H2C_PKT = pci_write_data_h2c; +#ifdef CONFIG_64BIT_DMA + tmp = rtw_read16(padapter, REG_RX_RXBD_NUM_8822C); + /* using 64bit */ + rtw_write16(padapter, REG_RX_RXBD_NUM_8822C, tmp | 0x8000); +#endif + err = rtw_halmac_init_adapter(d, api); - RTW_INFO(" %s <====\n", __func__); return err; } diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/pci/rtl8822ce_io.c b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/pci/rtl8822ce_io.c index 534f9baa..dc582389 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/pci/rtl8822ce_io.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/pci/rtl8822ce_io.c @@ -16,7 +16,7 @@ #include /* PADAPTER and etc. */ -#ifdef RTK_129X_PLATFORM +#ifdef CONFIG_PLATFORM_RTK129X #include #define IO_2K_MASK 0xFFFFF800 @@ -281,7 +281,7 @@ static int pci_write32(struct intf_hdl *phdl, u32 addr, u32 val) writel(val, (u8 *)pdvobjpriv->pci_mem_start + addr); return 4; } -#endif /* RTK_129X_PLATFORM */ +#endif /* CONFIG_PLATFORM_RTK129X */ static void pci_read_mem(struct intf_hdl *phdl, u32 addr, u32 cnt, u8 *rmem) { @@ -316,7 +316,7 @@ void rtl8822ce_set_intf_ops(struct _io_ops *pops) _rtw_memset((u8 *)pops, 0, sizeof(struct _io_ops)); -#ifdef RTK_129X_PLATFORM +#ifdef CONFIG_PLATFORM_RTK129X pops->_read8 = &pci_read8_129x; pops->_read16 = &pci_read16_129x; pops->_read32 = &pci_read32_129x; @@ -324,12 +324,12 @@ void rtl8822ce_set_intf_ops(struct _io_ops *pops) pops->_read8 = &pci_read8; pops->_read16 = &pci_read16; pops->_read32 = &pci_read32; -#endif /* RTK_129X_PLATFORM */ +#endif /* CONFIG_PLATFORM_RTK129X */ pops->_read_mem = &pci_read_mem; pops->_read_port = &pci_read_port; -#ifdef RTK_129X_PLATFORM +#ifdef CONFIG_PLATFORM_RTK129X pops->_write8 = &pci_write8_129x; pops->_write16 = &pci_write16_129x; pops->_write32 = &pci_write32_129x; @@ -337,7 +337,7 @@ void rtl8822ce_set_intf_ops(struct _io_ops *pops) pops->_write8 = &pci_write8; pops->_write16 = &pci_write16; pops->_write32 = &pci_write32; -#endif /* RTK_129X_PLATFORM */ +#endif /* CONFIG_PLATFORM_RTK129X */ pops->_write_mem = &pci_write_mem; pops->_write_port = &pci_write_port; diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/pci/rtl8822ce_ops.c b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/pci/rtl8822ce_ops.c index 459e0c2f..f9e5b07a 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/pci/rtl8822ce_ops.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/pci/rtl8822ce_ops.c @@ -56,8 +56,7 @@ void rtl8822ce_reset_bd(_adapter *padapter) struct xmit_buf *pxmitbuf = NULL; u8 *tx_bd, *rx_bd; int i, rx_queue_idx; - - RTW_INFO(" ====> %s\n", __func__); + dma_addr_t mapping; InitMAC_TRXBD_8822CE(padapter); @@ -72,7 +71,6 @@ void rtl8822ce_reset_bd(_adapter *padapter) } } - _rtw_spinlock_init(&pdvobjpriv->irq_th_lock); _enter_critical(&pdvobjpriv->irq_th_lock, &irqL); for (i = 0; i < PCI_MAX_TX_QUEUE_COUNT; i++) { if (t_priv->tx_ring[i].buf_desc) { @@ -88,9 +86,15 @@ void rtl8822ce_reset_bd(_adapter *padapter) pxmitbuf = rtl8822ce_dequeue_xmitbuf(ring); if (pxmitbuf) { - pci_unmap_single(pdvobjpriv->ppcidev, - GET_TX_BD_PHYSICAL_ADDR0_LOW(tx_bd), - pxmitbuf->len, PCI_DMA_TODEVICE); + #ifndef CONFIG_PCIE_DMA_COHERENT + mapping = GET_TX_BD_PHYSICAL_ADDR0_LOW(tx_bd); + #ifdef CONFIG_64BIT_DMA + mapping |= (dma_addr_t)GET_TX_BD_PHYSICAL_ADDR0_HIGH(tx_bd) << 32; + #endif + dma_unmap_single(&pdvobjpriv->ppcidev->dev, + mapping, + pxmitbuf->len, DMA_TO_DEVICE); + #endif rtw_free_xmitbuf(t_priv, pxmitbuf); } else { RTW_INFO("%s(): qlen(%d) is not zero, but have xmitbuf in pending queue\n", @@ -102,7 +106,6 @@ void rtl8822ce_reset_bd(_adapter *padapter) } } _exit_critical(&pdvobjpriv->irq_th_lock, &irqL); - RTW_INFO(" %s <====\n", __func__); } static void intf_chip_configure(PADAPTER padapter) @@ -522,10 +525,10 @@ static void rtl8822ce_unmap_beacon_icf(PADAPTER Adapter) } // RTW_INFO("FREE pxmitbuf: %p, buf_desc: %p, sz: %d\n", pxmitbuf, tx_bufdesc, pxmitbuf->len); - pci_unmap_single(pdvobjpriv->ppcidev, + dma_unmap_single(&pdvobjpriv->ppcidev->dev, GET_TX_BD_PHYSICAL_ADDR0_LOW(tx_bufdesc), pxmitbuf->len, - PCI_DMA_TODEVICE); + DMA_TO_DEVICE); } u32 rtl8822ce_init_bd(_adapter *padapter) @@ -717,6 +720,21 @@ static u8 sethwreg(PADAPTER padapter, u8 variable, u8 *val) break; } #endif + case HW_VAR_SET_DRV_ERLY_INT: + switch (*val) { + #ifdef CONFIG_TDLS + #ifdef CONFIG_TDLS_CH_SW + case TDLS_BCN_ERLY_ON: + padapter->tdlsinfo.chsw_info.bcn_early_reg_bkp = rtw_read8(padapter, REG_DRVERLYINT); + rtw_write8(padapter, REG_DRVERLYINT, 20); + break; + case TDLS_BCN_ERLY_OFF: + rtw_write8(padapter, REG_DRVERLYINT, padapter->tdlsinfo.chsw_info.bcn_early_reg_bkp); + break; + #endif + #endif + } + break; default: ret = rtl8822c_sethwreg(padapter, variable, val); break; @@ -837,8 +855,6 @@ void rtl8822ce_set_hal_ops(PADAPTER padapter) struct hal_ops *ops; int err; - RTW_INFO(" ====> %s\n", __func__); - err = rtl8822ce_halmac_init_adapter(padapter); if (err) { RTW_INFO("%s: [ERROR]HALMAC initialize FAIL!\n", __func__); @@ -888,6 +904,9 @@ void rtl8822ce_set_hal_ops(PADAPTER padapter) ops->hal_xmit = rtl8822ce_hal_xmit; ops->mgnt_xmit = rtl8822ce_mgnt_xmit; +#ifdef CONFIG_RTW_MGMT_QUEUE + ops->hal_mgmt_xmitframe_enqueue = rtl8822ce_hal_mgmt_xmitframe_enqueue; +#endif ops->hal_xmitframe_enqueue = rtl8822ce_hal_xmitframe_enqueue; #ifdef CONFIG_HOSTAPD_MLME ops->hostap_mgnt_xmit_entry = rtl8822ce_hostap_mgnt_xmit_entry; @@ -907,5 +926,5 @@ void rtl8822ce_set_hal_ops(PADAPTER padapter) #endif ops->unmap_beacon_icf = rtl8822ce_unmap_beacon_icf; - RTW_INFO(" %s <====\n", __func__); + ops->hci_flush = rtl8822ce_hci_flush; } diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/pci/rtl8822ce_recv.c b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/pci/rtl8822ce_recv.c index 3927ae05..531cd274 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/pci/rtl8822ce_recv.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/pci/rtl8822ce_recv.c @@ -192,7 +192,7 @@ static void rtl8822ce_rx_mpdu(_adapter *padapter) GET_RX_BD_PHYSICAL_ADDR_LOW(rx_bd)); /* wait until packet is ready. this operation is similar to - * check own bit and should be called before pci_unmap_single + * check own bit and should be called before dma_unmap_single * which release memory mapping */ @@ -211,10 +211,12 @@ static void rtl8822ce_rx_mpdu(_adapter *padapter) _rtw_init_listhead(&precvframe->u.hdr.list); precvframe->u.hdr.len = 0; - pci_unmap_single(pdvobjpriv->ppcidev, +#ifndef CONFIG_PCIE_DMA_COHERENT + dma_unmap_single(&pdvobjpriv->ppcidev->dev, *((dma_addr_t *)skb->cb), r_priv->rxbuffersize, - PCI_DMA_FROMDEVICE); + DMA_FROM_DEVICE); +#endif rtl8822c_query_rx_desc(precvframe, skb->data); pattrib = &precvframe->u.hdr.attrib; @@ -246,11 +248,13 @@ static void rtl8822ce_rx_mpdu(_adapter *padapter) &r_priv->free_recv_queue); RTW_INFO("rtl8822ce_rx_mpdu:can't allocate memory for skb copy\n"); +#ifndef CONFIG_PCIE_DMA_COHERENT *((dma_addr_t *) skb->cb) = - pci_map_single(pdvobjpriv->ppcidev, + dma_map_single(&pdvobjpriv->ppcidev->dev, skb_tail_pointer(skb), r_priv->rxbuffersize, - PCI_DMA_FROMDEVICE); + DMA_FROM_DEVICE); +#endif goto done; } @@ -269,16 +273,21 @@ static void rtl8822ce_rx_mpdu(_adapter *padapter) rtw_free_recvframe(precvframe, pfree_recv_queue); } +#ifndef CONFIG_PCIE_DMA_COHERENT *((dma_addr_t *) skb->cb) = - pci_map_single(pdvobjpriv->ppcidev, + dma_map_single(&pdvobjpriv->ppcidev->dev, skb_tail_pointer(skb), r_priv->rxbuffersize, - PCI_DMA_FROMDEVICE); + DMA_FROM_DEVICE); +#endif } done: SET_RX_BD_PHYSICAL_ADDR_LOW(rx_bd, *((dma_addr_t *)skb->cb)); + #ifdef CONFIG_64BIT_DMA + SET_RX_BD_PHYSICAL_ADDR_HIGH(rx_bd, (*((dma_addr_t *)skb->cb)>>32)); + #endif /*Max. MPDU size is 11454 bytes, fix Rx buffer size to 12K is safe.*/ /*Even most Rx frame size is smaller than 4K, 12K Rx buffer size will not affect Rx efficiency.*/ SET_RX_BD_RXBUFFSIZE(rx_bd, 12*1024); @@ -297,7 +306,7 @@ done: } } -static void rtl8822ce_recv_tasklet(void *priv) +static void rtl8822ce_recv_tasklet(unsigned long priv) { _irqL irqL; _adapter *padapter = (_adapter *)priv; @@ -326,7 +335,7 @@ static void rtl8822ce_xmit_beacon(PADAPTER Adapter) #endif } -static void rtl8822ce_prepare_bcn_tasklet(void *priv) +static void rtl8822ce_prepare_bcn_tasklet(unsigned long priv) { _adapter *padapter = (_adapter *)priv; @@ -341,11 +350,11 @@ s32 rtl8822ce_init_recv_priv(_adapter *padapter) #ifdef PLATFORM_LINUX tasklet_init(&precvpriv->recv_tasklet, - (void(*)(unsigned long))rtl8822ce_recv_tasklet, + rtl8822ce_recv_tasklet, (unsigned long)padapter); tasklet_init(&precvpriv->irq_prepare_beacon_tasklet, - (void(*)(unsigned long))rtl8822ce_prepare_bcn_tasklet, + rtl8822ce_prepare_bcn_tasklet, (unsigned long)padapter); #endif @@ -374,10 +383,10 @@ int rtl8822ce_init_rxbd_ring(_adapter *padapter) /* rx_queue_idx 1:RX_CMD_QUEUE */ for (rx_queue_idx = 0; rx_queue_idx < 1; rx_queue_idx++) { r_priv->rx_ring[rx_queue_idx].buf_desc = - pci_alloc_consistent(pdev, - sizeof(*r_priv->rx_ring[rx_queue_idx].buf_desc) * - r_priv->rxringcount, - &r_priv->rx_ring[rx_queue_idx].dma); + dma_alloc_coherent(&pdev->dev, + sizeof(*r_priv->rx_ring[rx_queue_idx].buf_desc) * + r_priv->rxringcount, + &r_priv->rx_ring[rx_queue_idx].dma, GFP_ATOMIC); if (!r_priv->rx_ring[rx_queue_idx].buf_desc || (unsigned long)r_priv->rx_ring[rx_queue_idx].buf_desc & @@ -392,23 +401,27 @@ int rtl8822ce_init_rxbd_ring(_adapter *padapter) r_priv->rx_ring[rx_queue_idx].idx = 0; for (i = 0; i < r_priv->rxringcount; i++) { +#ifdef CONFIG_PCIE_DMA_COHERENT + skb = dev_alloc_skb_coherent(pdev, r_priv->rxbuffersize); +#else skb = dev_alloc_skb(r_priv->rxbuffersize); +#endif if (!skb) { RTW_INFO("Cannot allocate skb for RX ring\n"); return _FAIL; } - rx_desc = - (u8 *)(&r_priv->rx_ring[rx_queue_idx].buf_desc[i]); + rx_desc = (u8 *)(&r_priv->rx_ring[rx_queue_idx].buf_desc[i]); r_priv->rx_ring[rx_queue_idx].rx_buf[i] = skb; mapping = (dma_addr_t *)skb->cb; /* just set skb->cb to mapping addr - * for pci_unmap_single use */ - *mapping = pci_map_single(pdev, skb_tail_pointer(skb), + * for dma_unmap_single use */ +#ifndef CONFIG_PCIE_DMA_COHERENT + *mapping = dma_map_single(&pdev->dev, skb_tail_pointer(skb), r_priv->rxbuffersize, - PCI_DMA_FROMDEVICE); - + DMA_FROM_DEVICE); +#endif /* Reset FS, LS, Total len */ SET_RX_BD_LS(rx_desc, 0); SET_RX_BD_FS(rx_desc, 0); @@ -417,7 +430,9 @@ int rtl8822ce_init_rxbd_ring(_adapter *padapter) /*Even most Rx frame size is smaller than 4K, 12K Rx buffer size will not affect Rx efficiency.*/ SET_RX_BD_RXBUFFSIZE(rx_desc, 12*1024); SET_RX_BD_PHYSICAL_ADDR_LOW(rx_desc, *mapping); - + #ifdef CONFIG_64BIT_DMA + SET_RX_BD_PHYSICAL_ADDR_HIGH(rx_desc, (u32)(*mapping >> 32)); + #endif buf_desc_debug("RX:rx buffer desc addr[%d] = %x, skb(rx_buf) = %x, buffer addr (virtual = %x, physical = %x)\n", i, (u32)&r_priv->rx_ring[rx_queue_idx].buf_desc[i], (u32)r_priv->rx_ring[rx_queue_idx].rx_buf[i], @@ -429,6 +444,7 @@ int rtl8822ce_init_rxbd_ring(_adapter *padapter) return _SUCCESS; } +#ifdef CONFIG_PCIE_DMA_COHERENT void rtl8822ce_free_rxbd_ring(_adapter *padapter) { struct recv_priv *r_priv = &padapter->recvpriv; @@ -448,19 +464,55 @@ void rtl8822ce_free_rxbd_ring(_adapter *padapter) if (!skb) continue; - pci_unmap_single(pdev, + /* skb buf */ + dma_free_coherent(&pdev->dev, r_priv->rxringcount, + (dma_addr_t *)skb->data, *(dma_addr_t *)skb->cb); + + /* skb */ + _rtw_mfree(skb, sizeof(struct sk_buff)); + } + dma_free_coherent(&pdev->dev, + sizeof(*r_priv->rx_ring[rx_queue_idx].buf_desc) * + r_priv->rxringcount, + r_priv->rx_ring[rx_queue_idx].buf_desc, + r_priv->rx_ring[rx_queue_idx].dma); + r_priv->rx_ring[rx_queue_idx].buf_desc = NULL; + } /* for */ +} +#else +void rtl8822ce_free_rxbd_ring(_adapter *padapter) +{ + struct recv_priv *r_priv = &padapter->recvpriv; + struct dvobj_priv *pdvobjpriv = adapter_to_dvobj(padapter); + struct pci_dev *pdev = pdvobjpriv->ppcidev; + int i, rx_queue_idx; + + + /* rx_queue_idx 0:RX_MPDU_QUEUE */ + /* rx_queue_idx 1:RX_CMD_QUEUE */ + for (rx_queue_idx = 0; rx_queue_idx < 1; rx_queue_idx++) { + for (i = 0; i < r_priv->rxringcount; i++) { + struct sk_buff *skb; + + skb = r_priv->rx_ring[rx_queue_idx].rx_buf[i]; + + if (!skb) + continue; + + dma_unmap_single(&pdev->dev, *((dma_addr_t *) skb->cb), r_priv->rxbuffersize, - PCI_DMA_FROMDEVICE); + DMA_FROM_DEVICE); kfree_skb(skb); } - pci_free_consistent(pdev, + dma_free_coherent(&pdev->dev, sizeof(*r_priv->rx_ring[rx_queue_idx].buf_desc) * r_priv->rxringcount, r_priv->rx_ring[rx_queue_idx].buf_desc, r_priv->rx_ring[rx_queue_idx].dma); - r_priv->rx_ring[rx_queue_idx].buf_desc = NULL; - } + r_priv->rx_ring[rx_queue_idx].buf_desc = NULL; + } /* for */ } +#endif /* CONFIG_PCIE_DMA_COHERENT */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/pci/rtl8822ce_xmit.c b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/pci/rtl8822ce_xmit.c index dda7ffd7..6d25cbc7 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/pci/rtl8822ce_xmit.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/pci/rtl8822ce_xmit.c @@ -21,6 +21,10 @@ #include "rtl8822ce.h" /* Debug Buffer Descriptor Ring */ +/*#define DBG_TXDMA_STS*/ +#ifdef DBG_TXDMA_STS +#define BUF_DESC_DEBUG +#endif /*#define BUF_DESC_DEBUG*/ #ifdef BUF_DESC_DEBUG #define buf_desc_debug(...) do {\ @@ -30,7 +34,7 @@ #define buf_desc_debug(...) do {} while (0) #endif -static void rtl8822ce_xmit_tasklet(void *priv) +static void rtl8822ce_xmit_tasklet(unsigned long priv) { _irqL irqL; _adapter *padapter = (_adapter *)priv; @@ -48,9 +52,11 @@ s32 rtl8822ce_init_xmit_priv(_adapter *padapter) struct xmit_priv *pxmitpriv = &padapter->xmitpriv; struct dvobj_priv *pdvobjpriv = adapter_to_dvobj(padapter); + _rtw_spinlock_init(&pdvobjpriv->irq_th_lock); + #ifdef PLATFORM_LINUX tasklet_init(&pxmitpriv->xmit_tasklet, - (void(*)(unsigned long))rtl8822ce_xmit_tasklet, + rtl8822ce_xmit_tasklet, (unsigned long)padapter); #endif rtl8822c_init_xmit_priv(padapter); @@ -294,8 +300,12 @@ static void rtl8822ce_update_txbd(struct xmit_frame *pxmitframe, u16 page_size_length = 0; /* map TX DESC buf_addr (including TX DESC + tx data) */ - mapping = pci_map_single(pdvobjpriv->ppcidev, pxmitframe->buf_addr , - sz + TX_WIFI_INFO_SIZE, PCI_DMA_TODEVICE); +#ifdef CONFIG_PCIE_DMA_COHERENT + mapping = (dma_addr_t)pxmitframe->pxmitbuf->dma_bpa; +#else + mapping = dma_map_single(&pdvobjpriv->ppcidev->dev, pxmitframe->buf_addr , + sz + TX_WIFI_INFO_SIZE, DMA_TO_DEVICE); +#endif /* Calculate page size. * Total buffer length including TX_WIFI_INFO and PacketLen */ @@ -332,7 +342,9 @@ static void rtl8822ce_update_txbd(struct xmit_frame *pxmitframe, SET_TX_BD_PSB(txbd, page_size_length); /* starting addr of TXDESC */ SET_TX_BD_PHYSICAL_ADDR0_LOW(txbd, mapping); - +#ifdef CONFIG_64BIT_DMA + SET_TX_BD_PHYSICAL_ADDR0_HIGH(txbd, (u32)(mapping >> 32)); +#endif /* * It is assumed that in linux implementation, packet is coalesced * in only one buffer. Extension mode is not supported here @@ -342,6 +354,10 @@ static void rtl8822ce_update_txbd(struct xmit_frame *pxmitframe, SET_TXBUFFER_DESC_AMSDU_WITH_OFFSET(txbd, 1, 0); SET_TXBUFFER_DESC_ADD_LOW_WITH_OFFSET(txbd, 1, mapping + TX_WIFI_INFO_SIZE); /* pkt */ +#ifdef CONFIG_64BIT_DMA + SET_TXBUFFER_DESC_ADD_HIGH_WITH_OFFSET(txbd, 1, + (u32)((mapping + TX_WIFI_INFO_SIZE) >> 32)); /* pkt */ +#endif #endif /*buf_desc_debug("TX:%s, txbd = 0x%p\n", __FUNCTION__, txbd);*/ @@ -351,6 +367,25 @@ static void rtl8822ce_update_txbd(struct xmit_frame *pxmitframe, buf_desc_debug("TXBD:, 08h(0x%08x)\n", *((u32 *)(txbd + 8))); buf_desc_debug("TXBD:, 12h(0x%08x)\n", *((u32 *)(txbd + 12))); +#ifdef DBG_TXDMA_STS + buf_desc_debug("TXDESC:, 00h(0x%08x)\n", *((u32 *)(pxmitframe->buf_addr))); + buf_desc_debug("TXDESC:, 04h(0x%08x)\n", *((u32 *)(pxmitframe->buf_addr + 4))); + buf_desc_debug("TXDESC:, 08h(0x%08x)\n", *((u32 *)(pxmitframe->buf_addr + 8))); + buf_desc_debug("TXDESC:, 12h(0x%08x)\n", *((u32 *)(pxmitframe->buf_addr + 12))); + buf_desc_debug("TXDESC:, 16h(0x%08x)\n", *((u32 *)(pxmitframe->buf_addr + 16))); + buf_desc_debug("TXDESC:, 20h(0x%08x)\n", *((u32 *)(pxmitframe->buf_addr + 20))); + buf_desc_debug("TXDESC:, 24h(0x%08x)\n", *((u32 *)(pxmitframe->buf_addr + 24))); + buf_desc_debug("TXDESC:, 28h(0x%08x)\n", *((u32 *)(pxmitframe->buf_addr + 28))); + buf_desc_debug("TXDESC:, 32h(0x%08x)\n", *((u32 *)(pxmitframe->buf_addr + 32))); + buf_desc_debug("TXDESC:, 36h(0x%08x)\n", *((u32 *)(pxmitframe->buf_addr + 36))); + buf_desc_debug("TXDESC:, 40h(0x%08x)\n", *((u32 *)(pxmitframe->buf_addr + 40))); + buf_desc_debug("TXDESC:, 44h(0x%08x)\n", *((u32 *)(pxmitframe->buf_addr + 44))); + + if (mapping != GET_TX_BD_PHYSICAL_ADDR0_LOW(txbd)) + buf_desc_debug("TXBD different (set=%llx get=%llx)\n", + mapping, GET_TX_BD_PHYSICAL_ADDR0_LOW(txbd)); +#endif + } static s32 update_txdesc(struct xmit_frame *pxmitframe, s32 sz) @@ -685,8 +720,21 @@ s32 rtl8822ce_dump_xframe(_adapter *padapter, struct xmit_frame *pxmitframe) fill_txbd_own(padapter, txbd, ff_hwaddr, ptx_ring); #ifdef DBG_TXBD_DESC_DUMP - if (pxmitpriv->dump_txbd_desc) - rtw_tx_desc_backup(padapter, pxmitframe, TX_WIFI_INFO_SIZE, ff_hwaddr); + if (pxmitpriv->dump_txbd_desc == DUMP_TXBD_ON || + pxmitpriv->dump_txbd_desc == DUMP_TXBD_TEST) { + u32 txdma_status = 0; + + txdma_status = rtw_read32(padapter, REG_TXDMA_STATUS_8822C); + rtw_tx_desc_backup(padapter, txbd, pxmitframe, + TX_WIFI_INFO_SIZE, ff_hwaddr, txdma_status); + + if (txdma_status != 0x00 || pxmitpriv->dump_txbd_desc == DUMP_TXBD_TEST) { + pxmitpriv->dump_txbd_desc = DUMP_TXBD_HALT; /* stop dumping function */ + RTW_INFO("%s REG_TXDMA_STATUS:0x%08x, hw_addr=0x%08x\n", + __FUNCTION__, txdma_status, ff_hwaddr); + core_get_tx_ring_ext(padapter); + } + } #endif _exit_critical(&pdvobjpriv->irq_th_lock, &irqL); @@ -922,6 +970,15 @@ void rtl8822ce_xmitframe_resume(_adapter *padapter) break; #endif +#ifdef CONFIG_RTW_MGMT_QUEUE + /* dump management frame directly */ + pxmitframe = rtw_dequeue_mgmt_xframe(pxmitpriv); + if (pxmitframe) { + rtl8822ce_dump_xframe(padapter, pxmitframe); + continue; + } +#endif + pxmitbuf = rtw_alloc_xmitbuf(pxmitpriv); if (!pxmitbuf) break; @@ -1240,6 +1297,29 @@ s32 rtl8822ce_hal_xmit(_adapter *padapter, struct xmit_frame *pxmitframe) return pre_xmitframe(padapter, pxmitframe); } +#ifdef CONFIG_RTW_MGMT_QUEUE +s32 rtl8822ce_hal_mgmt_xmitframe_enqueue(_adapter *padapter, + struct xmit_frame *pxmitframe) +{ + struct xmit_priv *pxmitpriv = &padapter->xmitpriv; + s32 err; + + err = rtw_mgmt_xmitframe_enqueue(padapter, pxmitframe); + if (err != _SUCCESS) { + rtw_free_xmitframe(pxmitpriv, pxmitframe); + pxmitpriv->tx_drop++; + } else { +#ifdef PLATFORM_LINUX + if (check_nic_enough_desc(padapter, + &pxmitframe->attrib) == _TRUE) + tasklet_hi_schedule(&pxmitpriv->xmit_tasklet); +#endif + } + + return err; +} +#endif + s32 rtl8822ce_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe) { @@ -1272,10 +1352,10 @@ int rtl8822ce_init_txbd_ring(_adapter *padapter, unsigned int q_idx, dma_addr_t dma; int i; - RTW_INFO("%s entries num:%d\n", __func__, entries); - txbd = pci_alloc_consistent(pdev, sizeof(*txbd) * entries, &dma); + txbd = dma_alloc_coherent(&pdev->dev, + sizeof(*txbd) * entries, &dma, GFP_ATOMIC); if (!txbd || (unsigned long)txbd & 0xFF) { RTW_INFO("Cannot allocate TXBD (q_idx = %d)\n", q_idx); @@ -1304,7 +1384,7 @@ void rtl8822ce_free_txbd_ring(_adapter *padapter, unsigned int prio) struct rtw_tx_ring *ring = &t_priv->tx_ring[prio]; u8 *txbd; struct xmit_buf *pxmitbuf; - + dma_addr_t mapping; while (ring->qlen) { txbd = (u8 *)(&ring->buf_desc[ring->idx]); @@ -1316,10 +1396,15 @@ void rtl8822ce_free_txbd_ring(_adapter *padapter, unsigned int prio) pxmitbuf = rtl8822ce_dequeue_xmitbuf(ring); if (pxmitbuf) { - pci_unmap_single(pdev, - GET_TX_BD_PHYSICAL_ADDR0_LOW(txbd), - pxmitbuf->len, PCI_DMA_TODEVICE); - +#ifndef CONFIG_PCIE_DMA_COHERENT + mapping = GET_TX_BD_PHYSICAL_ADDR0_LOW(txbd); + #ifdef CONFIG_64BIT_DMA + mapping |= (dma_addr_t)GET_TX_BD_PHYSICAL_ADDR0_HIGH(txbd) << 32; + #endif + dma_unmap_single(&pdev->dev, + mapping, + pxmitbuf->len, DMA_TO_DEVICE); +#endif rtw_free_xmitbuf(t_priv, pxmitbuf); } else { @@ -1329,8 +1414,8 @@ void rtl8822ce_free_txbd_ring(_adapter *padapter, unsigned int prio) } } - pci_free_consistent(pdev, sizeof(*ring->buf_desc) * ring->entries, - ring->buf_desc, ring->dma); + dma_free_coherent(&pdev->dev, sizeof(*ring->buf_desc) * ring->entries, + ring->buf_desc, ring->dma); ring->buf_desc = NULL; } @@ -1437,6 +1522,7 @@ void rtl8822ce_tx_isr(PADAPTER Adapter, int prio) u8 *tx_desc; u16 tmp_4bytes; u16 desc_idx_hw = 0, desc_idx_host = 0; + dma_addr_t mapping; #ifdef CONFIG_LPS_LCLK int index; @@ -1459,9 +1545,15 @@ void rtl8822ce_tx_isr(PADAPTER Adapter, int prio) pxmitbuf = rtl8822ce_dequeue_xmitbuf(ring); if (pxmitbuf) { - pci_unmap_single(pdvobjpriv->ppcidev, - GET_TX_BD_PHYSICAL_ADDR0_LOW(tx_desc), - pxmitbuf->len, PCI_DMA_TODEVICE); + mapping = GET_TX_BD_PHYSICAL_ADDR0_LOW(tx_desc); + #ifdef CONFIG_64BIT_DMA + mapping |= (dma_addr_t)GET_TX_BD_PHYSICAL_ADDR0_HIGH(tx_desc) << 32; + #endif + #ifndef CONFIG_PCIE_DMA_COHERENT + dma_unmap_single(&pdvobjpriv->ppcidev->dev, + mapping, + pxmitbuf->len, DMA_TO_DEVICE); + #endif rtw_sctx_done(&pxmitbuf->sctx); rtw_free_xmitbuf(&(pxmitbuf->padapter->xmitpriv), pxmitbuf); @@ -1500,6 +1592,7 @@ void rtl8822ce_tx_isr(PADAPTER Adapter, int prio) u8 *tx_desc; u16 tmp_4bytes; u16 desc_idx_hw = 0, desc_idx_host = 0; + dma_addr_t mapping; #ifdef CONFIG_LPS_LCLK int index; @@ -1533,9 +1626,15 @@ void rtl8822ce_tx_isr(PADAPTER Adapter, int prio) pxmitbuf = rtl8822ce_dequeue_xmitbuf(ring); if (pxmitbuf) { - pci_unmap_single(pdvobjpriv->ppcidev, + mapping = GET_TX_BD_PHYSICAL_ADDR0_LOW(tx_desc); + #ifdef CONFIG_64BIT_DMA + mapping |= (dma_addr_t)GET_TX_BD_PHYSICAL_ADDR0_HIGH(tx_desc) << 32; + #endif + #ifndef CONFIG_PCIE_DMA_COHERENT + dma_unmap_single(&pdvobjpriv->ppcidev->dev, GET_TX_BD_PHYSICAL_ADDR0_LOW(tx_desc), - pxmitbuf->len, PCI_DMA_TODEVICE); + pxmitbuf->len, DMA_TO_DEVICE); + #endif rtw_sctx_done(&pxmitbuf->sctx); rtw_free_xmitbuf(&(pxmitbuf->padapter->xmitpriv), pxmitbuf); @@ -1564,6 +1663,30 @@ void rtl8822ce_tx_isr(PADAPTER Adapter, int prio) } #endif /* CONFIG_BCN_ICF */ +void rtl8822ce_hci_flush(PADAPTER Adapter, u32 queue_idx) +{ + struct xmit_priv *t_priv = &Adapter->xmitpriv; + struct rtw_tx_ring *ring = &t_priv->tx_ring[queue_idx]; + u32 i, tmp32, cur_rp, cur_wp; + + /* bcn queue should not enter this function */ + if (queue_idx == BCN_QUEUE_INX) + return; + + for (i= 0; i < 30; i++) { + tmp32 = rtw_read32(Adapter, get_txbd_rw_reg(queue_idx)); + cur_rp = (tmp32 >> 16) & 0x0FFF; + cur_wp = tmp32 & 0x0FFF; + + if (cur_rp == cur_wp) + return; + + rtw_udelay_os(1); + } + + RTW_INFO("%s timeout!(%d-%d)\n", __func__, cur_rp, cur_wp); +} + #ifdef CONFIG_HOSTAPD_MLME static void rtl8812ae_hostap_mgnt_xmit_cb(struct urb *urb) { diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/rtl8822c.h b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/rtl8822c.h index bff100dd..4c7b760b 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/rtl8822c.h +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/rtl8822c.h @@ -25,18 +25,9 @@ #define DRIVER_EARLY_INT_TIME_8822C 0x05 #define BCN_DMA_ATIME_INT_TIME_8822C 0x02 -#ifdef CONFIG_SUPPORT_DYNAMIC_TXPWR -#define SET_H2CCMD_FW_CRC5_SEARCH_EN(cmd, v) \ - SET_BITS_TO_LE_1BYTE((cmd), 0, 1, (v)); -#define SET_H2CCMD_FW_CRC5_SEARCH_MACID(cmd, v) \ - SET_BITS_TO_LE_1BYTE((cmd), 1, 7, (v)); -#define SET_H2CCMD_FW_CRC5_SEARCH_MAC(cmd, mac) \ - do { \ - int __offset = 0; \ - for (__offset = 0; __offset < ETH_ALEN; __offset++) \ - SET_BITS_TO_LE_1BYTE((u8 *)(cmd + __offset), 0, 8, *((u8 *)(mac + __offset))); \ - } while(0) -#endif +#define C2H_GET_CMD_ID_1BYTE(c2h_pkt) LE_BITS_TO_1BYTE(c2h_pkt + 0X00, 0, 8) + +#define C2H_GET_SEQ_1BYTE(c2h_pkt) LE_BITS_TO_1BYTE(c2h_pkt + 0X01, 0, 8) /* rtl8822c_ops.c */ struct hw_port_reg { @@ -107,13 +98,9 @@ void rtl8822c_query_rx_desc(union recv_frame *, u8 *pdesc); /* rtl8822c_cmd.c */ s32 rtl8822c_fillh2ccmd(PADAPTER, u8 id, u32 buf_len, u8 *pbuf); -void rtl8822c_set_FwPwrMode_cmd(PADAPTER, u8 psmode); - -#ifdef CONFIG_TDLS -#ifdef CONFIG_TDLS_CH_SW -void rtl8822c_set_BcnEarly_C2H_Rpt_cmd(PADAPTER padapter, u8 enable); -#endif -#endif +void _rtl8822c_set_FwPwrMode_cmd(PADAPTER adapter, u8 psmode, u8 rfon_ctrl); +void rtl8822c_set_FwPwrMode_cmd(PADAPTER adapter, u8 psmode); +void rtl8822c_set_FwPwrMode_rfon_ctrl_cmd(PADAPTER adapter, u8 rfon_ctrl); void rtl8822c_set_FwPwrModeInIPS_cmd(PADAPTER adapter, u8 cmd_param); void rtl8822c_req_txrpt_cmd(PADAPTER, u8 macid); @@ -121,7 +108,6 @@ void rtl8822c_c2h_handler(PADAPTER, u8 *pbuf, u16 length); #ifdef CONFIG_WOWLAN void rtl8822c_set_fw_pwrmode_inips_cmd_wowlan(PADAPTER padapter, u8 ps_mode); #endif - void rtl8822c_set_usb_suspend_mode(PADAPTER padapter); void rtl8822c_c2h_handler_no_io(PADAPTER, u8 *pbuf, u16 length); @@ -157,8 +143,4 @@ void rtl8822c_phy_bf_set_gid_table(PADAPTER, struct beamformer_entry*); void rtl8822c_phy_bf_sounding_status(PADAPTER, u8 status); #endif /* CONFIG_BEAMFORMING */ -#ifdef CONFIG_SUPPORT_DYNAMIC_TXPWR -void rtl8822c_dtp_macid_set(_adapter *padapter, u8 opmode, u8 mac_id, u8 *paddr); -#endif - #endif /* _RTL8822C_H_ */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/rtl8822c_cmd.c b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/rtl8822c_cmd.c index 75463be5..0380417d 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/rtl8822c_cmd.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/rtl8822c_cmd.c @@ -98,7 +98,7 @@ void rtl8822c_req_txrpt_cmd(PADAPTER adapter, u8 macid) #define SET_PWR_MODE_SET_ADOPT_BCN_RECEIVING_TIME(h2c_pkt, value) \ SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 31, 1, value) -void rtl8822c_set_FwPwrMode_cmd(PADAPTER adapter, u8 psmode) +void _rtl8822c_set_FwPwrMode_cmd(PADAPTER adapter, u8 psmode, u8 rfon_ctrl) { int i; u8 smart_ps = 0, mode = 0; @@ -120,12 +120,14 @@ void rtl8822c_set_FwPwrMode_cmd(PADAPTER adapter, u8 psmode) #endif /* CONFIG_P2P */ u8 hw_port = rtw_hal_get_port(adapter); - if (pwrpriv->dtim > 0) - RTW_INFO(FUNC_ADPT_FMT ": dtim=%d, HW port id=%d\n", FUNC_ADPT_ARG(adapter), - pwrpriv->dtim, psmode == PS_MODE_ACTIVE ? pwrpriv->current_lps_hw_port_id : hw_port); - else - RTW_INFO(FUNC_ADPT_FMT ": HW port id=%d\n", FUNC_ADPT_ARG(adapter), - psmode == PS_MODE_ACTIVE ? pwrpriv->current_lps_hw_port_id : hw_port); + if (pwrpriv->pwr_mode != psmode) { + if (pwrpriv->dtim > 0) + RTW_INFO(FUNC_ADPT_FMT ": dtim=%d, HW port id=%d\n", FUNC_ADPT_ARG(adapter), + pwrpriv->dtim, psmode == PS_MODE_ACTIVE ? pwrpriv->current_lps_hw_port_id : hw_port); + else + RTW_INFO(FUNC_ADPT_FMT ": HW port id=%d\n", FUNC_ADPT_ARG(adapter), + psmode == PS_MODE_ACTIVE ? pwrpriv->current_lps_hw_port_id : hw_port); + } if (psmode == PS_MODE_MIN || psmode == PS_MODE_MAX) { #ifdef CONFIG_WMMPS_STA @@ -194,21 +196,30 @@ void rtl8822c_set_FwPwrMode_cmd(PADAPTER adapter, u8 psmode) PowerState = rtw_btcoex_RpwmVal(adapter); else #endif /* CONFIG_BT_COEXIST */ - PowerState = 0x00; /* AllON(0x0C), RFON(0x04), RFOFF(0x00) */ + { + if (rfon_ctrl == rf_on) + PowerState = 0x04; /* AllON(0x0C), RFON(0x04), RFOFF(0x00) */ + else + PowerState = 0x00; /* AllON(0x0C), RFON(0x04), RFOFF(0x00) */ + } } else PowerState = 0x0C; /* AllON(0x0C), RFON(0x04), RFOFF(0x00) */ - if (mode == 0) - fw_psmode_str = "ACTIVE"; - else if (mode == 1) - fw_psmode_str = "LPS"; - else if (mode == 2) - fw_psmode_str = "WMMPS"; - else - fw_psmode_str = "UNSPECIFIED"; + if (pwrpriv->pwr_mode != psmode) { + if (mode == 0) + fw_psmode_str = "ACTIVE"; + else if (mode == 1) + fw_psmode_str = "LPS"; + else if (mode == 2) + fw_psmode_str = "WMMPS"; + else + fw_psmode_str = "UNSPECIFIED"; - RTW_INFO(FUNC_ADPT_FMT": fw ps mode = %s, drv ps mode = %d, rlbm = %d , smart_ps = %d, allQueueUAPSD = %d\n", - FUNC_ADPT_ARG(adapter), fw_psmode_str, psmode, rlbm, smart_ps, allQueueUAPSD); + RTW_INFO(FUNC_ADPT_FMT": fw ps mode = %s, drv ps mode = %d, rlbm = %d ," + "smart_ps = %d, allQueueUAPSD = %d, PowerState = %d\n", + FUNC_ADPT_ARG(adapter), fw_psmode_str, psmode, rlbm, smart_ps, + allQueueUAPSD, PowerState); + } #ifdef CONFIG_LPS_1T1R if (psmode > PS_MODE_ACTIVE) { @@ -272,23 +283,17 @@ void rtl8822c_set_FwPwrMode_cmd(PADAPTER adapter, u8 psmode) rtw_halmac_send_h2c(adapter_to_dvobj(adapter), h2c); } -#ifdef CONFIG_TDLS -#ifdef CONFIG_TDLS_CH_SW -void rtl8822c_set_BcnEarly_C2H_Rpt_cmd(PADAPTER padapter, u8 enable) +void rtl8822c_set_FwPwrMode_cmd(PADAPTER adapter, u8 psmode) { - u8 u1H2CSetPwrMode[RTW_HALMAC_H2C_MAX_SIZE] = {0}; - - SET_PWR_MODE_SET_CMD_ID(u1H2CSetPwrMode, CMD_ID_SET_PWR_MODE); - SET_PWR_MODE_SET_CLASS(u1H2CSetPwrMode, CLASS_SET_PWR_MODE); - SET_PWR_MODE_SET_MODE(u1H2CSetPwrMode, 1); - SET_PWR_MODE_SET_RLBM(u1H2CSetPwrMode, 1); - SET_PWR_MODE_SET_BCN_EARLY_RPT(u1H2CSetPwrMode, enable); - SET_PWR_MODE_SET_PWR_STATE(u1H2CSetPwrMode, 0x0C); - - rtw_halmac_send_h2c(adapter_to_dvobj(padapter), u1H2CSetPwrMode); + return _rtl8822c_set_FwPwrMode_cmd(adapter, psmode, rf_off); +} + +void rtl8822c_set_FwPwrMode_rfon_ctrl_cmd(PADAPTER adapter, u8 rfon_ctrl) +{ + struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(adapter); + + return _rtl8822c_set_FwPwrMode_cmd(adapter, pwrpriv->power_mgnt, rfon_ctrl); } -#endif -#endif void rtl8822c_set_FwPwrModeInIPS_cmd(PADAPTER adapter, u8 cmd_param) { @@ -342,12 +347,14 @@ void rtl8822c_set_usb_suspend_mode(PADAPTER padapter) struct pwrctrl_priv *ppwrpriv = adapter_to_pwrctl(padapter); u8 param[H2C_BT_UNKNOWN_DEVICE_WA_LEN] = {0}; - RTW_INFO(" ====> %s\n", __func__); - SET_H2CCMD_BT_UNKNOWN_DEVICE_WA_PARM(param, 1); + SET_H2CCMD_BT_UNKNOWN_DEVICE_WA_FORCE_IB_EN(param, 1); rtl8822c_fillh2ccmd(padapter, H2C_BT_UNKNOWN_DEVICE_WA, H2C_BT_UNKNOWN_DEVICE_WA_LEN, param); - RTW_INFO(" %s <====\n", __func__); } + + + + #ifdef CONFIG_BT_COEXIST void rtl8822c_download_BTCoex_AP_mode_rsvd_page(PADAPTER adapter) { @@ -419,7 +426,7 @@ C2HTxRPTHandler_8822c( psta->sta_stats.tx_ok_cnt = TxOK; psta->sta_stats.tx_fail_cnt = TxFail; - + psta->sta_stats.tx_fail_cnt_sum += TxFail; } static void @@ -454,7 +461,11 @@ C2HSPC_STAT_8822c( return; } psta->sta_stats.tx_retry_cnt = (C2H_SPECIAL_STATISTICS_GET_DATA3(CmdBuf) << 8) | C2H_SPECIAL_STATISTICS_GET_DATA2(CmdBuf); + psta->sta_stats.tx_retry_cnt_sum += psta->sta_stats.tx_retry_cnt; + + enter_critical_bh(&pstapriv->tx_rpt_lock); rtw_sctx_done(&pstapriv->gotc2h); + exit_critical_bh(&pstapriv->tx_rpt_lock); } #ifdef CONFIG_FW_HANDLE_TXBCN #define C2H_SUB_CMD_ID_FW_TBTT_RPT 0X23 @@ -522,8 +533,13 @@ static void process_c2h_event(PADAPTER adapter, u8 *c2h, u32 size) pc2h_data = c2h + desc_size; c2h_len = size - desc_size; - id = C2H_GET_CMD_ID(pc2h_data); - seq = C2H_GET_SEQ(pc2h_data); + if (c2h_len >= 4) { + id = C2H_GET_CMD_ID(pc2h_data); + seq = C2H_GET_SEQ(pc2h_data); + } else { + id = C2H_GET_CMD_ID_1BYTE(pc2h_data); + seq = C2H_GET_SEQ_1BYTE(pc2h_data); + } /* shift 2 byte to remove cmd id & seq */ pc2h_payload = pc2h_data + 2; diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/rtl8822c_halinit.c b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/rtl8822c_halinit.c index 366dae70..706be018 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/rtl8822c_halinit.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/rtl8822c_halinit.c @@ -33,6 +33,7 @@ void rtl8822c_init_hal_spec(PADAPTER adapter) /* hal_spec->sec_cam_ent_num follow halmac setting */ hal_spec->sec_cap = SEC_CAP_CHK_BMC | SEC_CAP_CHK_EXTRA_SEC; hal_spec->wow_cap = WOW_CAP_TKIP_OL; + hal_spec->macid_cap = MACID_DROP; hal_spec->rfpath_num_2g = 2; hal_spec->rfpath_num_5g = 2; @@ -56,9 +57,7 @@ void rtl8822c_init_hal_spec(PADAPTER adapter) | WL_FUNC_TDLS ; -#if CONFIG_TX_AC_LIFETIME hal_spec->tx_aclt_unit_factor = 8; -#endif hal_spec->rx_tsf_filter = 1; @@ -72,6 +71,13 @@ void rtl8822c_init_hal_spec(PADAPTER adapter) , REG_MACID_SLEEP1_8822C , REG_MACID_SLEEP2_8822C , REG_MACID_SLEEP3_8822C); + + rtw_macid_ctl_init_drop_reg(adapter_to_macidctl(adapter) + , REG_MACID_DROP0_8822C + , REG_MACID_DROP1_8822C + , REG_MACID_DROP2_8822C + , REG_MACID_DROP3_8822C); + } u32 rtl8822c_power_on(PADAPTER adapter) @@ -100,10 +106,6 @@ u32 rtl8822c_power_on(PADAPTER adapter) bMacPwrCtrlOn = _TRUE; rtw_hal_set_hwreg(adapter, HW_VAR_APFM_ON_MAC, &bMacPwrCtrlOn); -#ifdef CONFIG_RTW_DISABLE_HW_PDN - rtw_write8(adapter, REG_SYS_PW_CTRL + 1, (rtw_read8(adapter, REG_SYS_PW_CTRL + 1) & (~BIT(7)))); -#endif - out: return ret; } @@ -150,8 +152,6 @@ u8 rtl8822c_hal_init(PADAPTER adapter) hal->bFWReady = _FALSE; hal->fw_ractrl = _FALSE; - RTW_INFO(" ====> %s\n", __func__); - #ifdef CONFIG_NO_FW err = rtw_halmac_init_hal(d); if(!err) { @@ -195,7 +195,6 @@ u8 rtl8822c_hal_init(PADAPTER adapter) hal->bFWReady = _TRUE; hal->fw_ractrl = _TRUE; - RTW_INFO(" %s <====\n", __func__); return _TRUE; } @@ -223,7 +222,6 @@ void rtl8822c_init_misc(PADAPTER adapter) u8 v8 = 0; u32 v32 = 0; - RTW_INFO(" ====> %s\n", __func__); hal = GET_HAL_DATA(adapter); @@ -249,7 +247,6 @@ void rtl8822c_init_misc(PADAPTER adapter) #ifdef CONFIG_TCP_CSUM_OFFLOAD_RX rtw_hal_rcr_add(adapter, BIT_TCPOFLD_EN_8822C); #endif /* CONFIG_TCP_CSUM_OFFLOAD_RX*/ - RTW_INFO(" %s <====\n", __func__); } u32 rtl8822c_init(PADAPTER adapter) @@ -320,9 +317,6 @@ void rtl8822c_init_default_value(PADAPTER adapter) /* init default value */ hal->fw_ractrl = _FALSE; - if (!adapter_to_pwrctl(adapter)->bkeepfwalive) - hal->LastHMEBoxNum = 0; - /* init phydm default value */ hal->bIQKInitialized = _FALSE; diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/rtl8822c_mac.c b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/rtl8822c_mac.c index 7ea73a3c..8cdb4e71 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/rtl8822c_mac.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/rtl8822c_mac.c @@ -215,18 +215,3 @@ u32 rtl8822c_get_rx_desc_size(struct _ADAPTER *a) return size; } -#ifdef CONFIG_SUPPORT_DYNAMIC_TXPWR -void rtl8822c_dtp_macid_set(_adapter *padapter, u8 opmode, u8 mac_id, u8 *paddr) -{ - u8 _cmd[H2C_FW_CRC5_SEARCH_LEN] = {0}; - int ret; - - SET_H2CCMD_FW_CRC5_SEARCH_EN(_cmd, opmode); - SET_H2CCMD_FW_CRC5_SEARCH_MACID(_cmd, mac_id); - SET_H2CCMD_FW_CRC5_SEARCH_MAC(&_cmd[1], paddr); - if (rtw_hal_fill_h2c_cmd(padapter, H2C_FW_CRC5_SEARCH, - H2C_FW_CRC5_SEARCH_LEN, _cmd) != _SUCCESS) - RTW_WARN("%s : set h2c - 0x%02x fail!\n", __func__, H2C_FW_CRC5_SEARCH); -} -#endif - diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/rtl8822c_ops.c b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/rtl8822c_ops.c index 24938d9d..bde359c3 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/rtl8822c_ops.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/rtl8822c_ops.c @@ -349,15 +349,13 @@ static void Hal_EfuseParseBTCoexistInfo(PADAPTER adapter, u8 *map, u8 mapvalid) hal->EEPROMBluetoothAntNum == Ant_x2 ? 2 : 1); } -static int Hal_EfuseParseChnlPlan(PADAPTER adapter, u8 *map, u8 autoloadfail) +static void Hal_EfuseParseChnlPlan(PADAPTER adapter, u8 *map, u8 autoloadfail) { - return hal_com_config_channel_plan( + hal_com_config_channel_plan( adapter, map ? &map[EEPROM_COUNTRY_CODE_8822C] : NULL, map ? map[EEPROM_ChannelPlan_8822C] : 0xFF, - adapter->registrypriv.alpha2, - adapter->registrypriv.channel_plan, - RTW_CHPLAN_REALTEK_DEFINE, + RTW_CHPLAN_6G_NULL, autoloadfail ); } @@ -835,10 +833,8 @@ u8 rtl8822c_read_efuse(PADAPTER adapter) goto exit; Hal_EfuseParseBoardType(adapter, efuse_map, valid); Hal_EfuseParseBTCoexistInfo(adapter, efuse_map, valid); - if (Hal_EfuseParseChnlPlan(adapter, efuse_map, hal->bautoload_fail_flag)) { - RTW_WARN("load channel plan file\n"); - goto exit; - } + Hal_EfuseParseChnlPlan(adapter, efuse_map, hal->bautoload_fail_flag); + #ifdef CONFIG_RTL8822C_XCAP_NEW_POLICY if ((adapter->registrypriv.mp_mode == 0) && (hal->EEPROMBluetoothCoexist == _TRUE)) hal_efuse_parse_xtal_cap_new(adapter, h_efuse_xcap_110_111, h_efuse_xcap_b9, f_efuse_xcap_110_111, f_efuse_xcap_b9, valid); @@ -1041,6 +1037,9 @@ static void xmit_status_check(PADAPTER p) txdma_status = rtw_read32(p, REG_TXDMA_STATUS_8822C); if (txdma_status != 0x00) { RTW_INFO("%s REG_TXDMA_STATUS:0x%08x\n", __FUNCTION__, txdma_status); + + core_get_tx_ring_ext(p); + psrtpriv->tx_dma_status_cnt++; psrtpriv->self_dect_case = 4; rtw_hal_sreset_reset(p); @@ -1057,14 +1056,12 @@ static void xmit_status_check(PADAPTER p) else { diff_time = rtw_get_passing_time_ms(psrtpriv->last_tx_complete_time); if (diff_time > 4000) { - u32 ability = 0; - - ability = rtw_phydm_ability_get(p); RTW_INFO("%s tx hang %s\n", __FUNCTION__, - (ability & ODM_BB_ADAPTIVITY) ? "ODM_BB_ADAPTIVITY" : ""); + !adapter_to_rfctl(p)->adaptivity_en ? "" : + rtw_edcca_mode_str(rtw_get_edcca_mode(adapter_to_dvobj(p), hal->current_band_type))); - if (!(ability & ODM_BB_ADAPTIVITY)) { + if (!adapter_to_rfctl(p)->adaptivity_en) { psrtpriv->self_dect_tx_cnt++; psrtpriv->self_dect_case = 1; rtw_hal_sreset_reset(p); @@ -1194,7 +1191,7 @@ static void set_opmode_monitor(PADAPTER adapter) rtw_write16(adapter, REG_RXFLTMAP2_8822C, 0xFFFF); #endif /* CONFIG_WIFI_MONITOR */ } - +#ifndef CONFIG_MI_WITH_MBSSID_CAM static void set_opmode_port0(PADAPTER adapter, u8 mode) { u8 is_tx_bcn; @@ -1276,7 +1273,7 @@ static void set_opmode_port0(PADAPTER adapter, u8 mode) /* Enable HW seq for BCN 0x4FC[0]: EN_HWSEQ -= 0x4FC[1]: EN_HWSEQEXT + 0x4FC[1]: EN_HWSEQEXT According TX desc */ rtw_write8(adapter, REG_DUMMY_PAGE4_V1_8822C, 0x01); @@ -1309,7 +1306,6 @@ static void set_opmode_port0(PADAPTER adapter, u8 mode) break; } } - static void set_opmode_port1(PADAPTER adapter, u8 mode) { #ifdef CONFIG_CONCURRENT_MODE @@ -1357,6 +1353,8 @@ static void set_opmode_port1(PADAPTER adapter, u8 mode) } #endif /* CONFIG_CONCURRENT_MODE */ } +#endif /* !CONFIG_MI_WITH_MBSSID_CAM */ + void hw_tsf_reset(_adapter *adapter) { u8 hw_port = rtw_hal_get_port(adapter); @@ -1702,10 +1700,12 @@ static void hw_var_set_mlme_sitesurvey(PADAPTER adapter, u8 enable) rtw_hal_rcr_set_chk_bssid(adapter, MLME_SCAN_DONE); + #ifdef CONFIG_AP_MODE if (rtw_mi_get_ap_num(adapter) || rtw_mi_get_mesh_num(adapter)) { ResumeTxBeacon(adapter); rtw_mi_tx_beacon_hdl(adapter); } + #endif } } @@ -1852,6 +1852,23 @@ static void hw_var_set_acm_ctrl(PADAPTER adapter, u8 ctrl) rtw_write8(adapter, REG_ACMHWCTRL_8822C, hwctrl); } +void hw_var_lps_rfon_chk(_adapter *adapter, u8 rfon_ctrl) +{ +#ifdef CONFIG_LPS_ACK + struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(adapter); + + if (rfon_ctrl == rf_on) { + if (rtw_sctx_wait(&pwrpriv->lps_ack_sctx, __func__)) { + if (pwrpriv->lps_ack_status > 0) + RTW_INFO(FUNC_ADPT_FMT" RF_ON function is not ready !!!\n", FUNC_ADPT_ARG(adapter)); + } else { + RTW_WARN("LPS RFON sctx query timeout, operation abort!!\n"); + } + pwrpriv->lps_ack_status = -1; + } +#endif +} + static void hw_var_set_sec_dk_cfg(PADAPTER adapter, u8 enable) { struct security_priv *sec = &adapter->securitypriv; @@ -1909,7 +1926,7 @@ void hw_var_set_dl_rsvd_page(PADAPTER adapter, u8 mstatus) u8 DLBcnCount = 0; u32 poll = 0; u8 val8; - u8 restore[2]; + u8 restore[3]; u8 hw_port = rtw_hal_get_port(adapter); RTW_INFO(FUNC_ADPT_FMT ":+ hw_port=%d mstatus(%x)\n", @@ -1936,7 +1953,12 @@ void hw_var_set_dl_rsvd_page(PADAPTER adapter, u8 mstatus) */ val8 = rtw_read8(adapter, REG_BCN_CTRL_8822C); restore[1] = val8; - val8 &= ~BIT_EN_BCN_FUNCTION_8822C; + /* val8 &= ~BIT_EN_BCN_FUNCTION_8822C; */ + restore[2] = rtw_read8(adapter, REG_FWHW_TXQ_CTRL_8822C + 2); + if (restore[2] & BIT(6)) { + rtw_write8(adapter, REG_FWHW_TXQ_CTRL_8822C + 2, + (restore[2] & ~BIT(6))); + } val8 |= BIT_DIS_TSF_UDT_8822C; rtw_write8(adapter, REG_BCN_CTRL_8822C, val8); @@ -1986,6 +2008,7 @@ void hw_var_set_dl_rsvd_page(PADAPTER adapter, u8 mstatus) ADPT_ARG(adapter), DLBcnCount, poll); } + rtw_write8(adapter, REG_FWHW_TXQ_CTRL_8822C + 2, restore[2]); rtw_write8(adapter, REG_BCN_CTRL, restore[1]); rtw_write8(adapter, REG_CR + 1, restore[0]); #if 0 @@ -2015,6 +2038,54 @@ static void hw_var_set_h2c_fw_joinbssrpt(PADAPTER adapter, u8 mstatus) hw_var_set_dl_rsvd_page(adapter, RT_MEDIA_CONNECT); } +#ifdef CONFIG_WOWLAN +static void hw_var_vendor_wow_mode(_adapter *adapter, u8 en) +{ +#ifdef CONFIG_CONCURRENT_MODE + _adapter *iface = NULL; + struct dvobj_priv *dvobj = adapter_to_dvobj(adapter); + struct mlme_priv *pmlmepriv = &adapter->mlmepriv; + u8 igi = 0, mac_addr[ETH_ALEN]; + + RTW_INFO("%s: en(%d)--->\n", __func__, en); + if (en) { + rtw_hal_get_hwreg(adapter, HW_VAR_MAC_ADDR, mac_addr); + /* RTW_INFO("suspend mac addr: "MAC_FMT"\n", MAC_ARG(mac_addr)); */ + rtw_halmac_set_bssid(dvobj, HW_PORT4, mac_addr); + dvobj->rxfltmap2_bf_suspend = rtw_read16(adapter, REG_RXFLTMAP2); + dvobj->bcn_ctrl_clint3_bf_suspend = rtw_read8(adapter, REG_BCN_CTRL_CLINT3); + dvobj->rcr_bf_suspend = rtw_read32(adapter, REG_RCR); + dvobj->cr_ext_bf_suspend = rtw_read32(adapter, REG_CR_EXT); + /*RTW_INFO("RCR: 0x%02x, REG_CR_EXT: 0x%02x , REG_BCN_CTRL_CLINT3: 0x%02x, REG_RXFLTMAP2:0x%02x, REG_MACID_DROP0_8822B:0x%02x\n" + , rtw_read32(adapter, REG_RCR), rtw_read8(adapter, REG_CR_EXT), rtw_read8(adapter, REG_BCN_CTRL_CLINT3) + , rtw_read32(adapter, REG_RXFLTMAP2), rtw_read8(adapter, REG_MACID_DROP0_8822B)); */ + rtw_write32(adapter, REG_RCR, (rtw_read32(adapter, REG_RCR) & (~(RCR_AM))) | RCR_CBSSID_DATA | RCR_CBSSID_BCN); + /* set PORT4 to ad hoc mode to filter not necessary Beacons */ + rtw_write8(adapter, REG_CR_EXT, (rtw_read8(adapter, REG_CR_EXT)& (~BIT5)) | BIT4); + rtw_write8(adapter, REG_BCN_CTRL_CLINT3, rtw_read8(adapter, REG_BCN_CTRL_CLINT3) | BIT3); + rtw_write16(adapter, REG_RXFLTMAP2, 0xffff); + /* RTW_INFO("RCR: 0x%02x, REG_CR_EXT: 0x%02x , REG_BCN_CTRL_CLINT3: 0x%02x, REG_RXFLTMAP2:0x%02x, REG_MACID_DROP0_8822B:0x%02x\n" + , rtw_read32(adapter, REG_RCR), rtw_read8(adapter, REG_CR_EXT), rtw_read8(adapter, REG_BCN_CTRL_CLINT3) + , rtw_read32(adapter, REG_RXFLTMAP2), rtw_read8(adapter, REG_MACID_DROP0_8822B)); */ + + /* The WRC's RSSI is weak. Set the IGI to lower */ + odm_write_dig(adapter_to_phydm(adapter), 0x24); + } else { + /* restore the rcr, port ctrol setting */ + rtw_write32(adapter, REG_CR_EXT, dvobj->cr_ext_bf_suspend); + rtw_write32(adapter, REG_RCR, dvobj->rcr_bf_suspend); + rtw_write8(adapter, REG_BCN_CTRL_CLINT3, dvobj->bcn_ctrl_clint3_bf_suspend); + rtw_write16(adapter, REG_RXFLTMAP2, dvobj->rxfltmap2_bf_suspend); + + /* RTW_INFO("RCR: 0x%02x, REG_CR_EXT: 0x%02x , REG_BCN_CTRL_CLINT3: 0x%02x, REG_RXFLTMAP2:0x%02x, REG_MACID_DROP0_8822B:0x%02x\n" + , rtw_read32(adapter, REG_RCR), rtw_read8(adapter, REG_CR_EXT), rtw_read8(adapter, REG_BCN_CTRL_CLINT3) + , rtw_read32(adapter, REG_RXFLTMAP2), rtw_read8(adapter, REG_MACID_DROP0_8822B)); */ + } +#endif /* CONFIG_CONCURRENT_MODE */ +} +#endif /* CONFIG_WOWLAN */ + + /* * Parameters: * adapter @@ -2023,12 +2094,11 @@ static void hw_var_set_h2c_fw_joinbssrpt(PADAPTER adapter, u8 mstatus) static u8 rx_agg_switch(PADAPTER adapter, u8 enable) { int err; -/* DON'T disable rxagg for 11ac 5.2.9a 1ss TP FAIL */ -#if 0 + err = rtw_halmac_rx_agg_switch(adapter_to_dvobj(adapter), enable); if (err) return _FAIL; -#endif + return _SUCCESS; } @@ -2209,11 +2279,11 @@ u8 rtl8822c_sethwreg(PADAPTER adapter, u8 variable, u8 *val) case HW_VAR_RESP_SIFS: /* RESP_SIFS for CCK */ - rtw_write8(adapter, REG_RESP_SIFS_CCK_8822C, val[0]); - rtw_write8(adapter, REG_RESP_SIFS_CCK_8822C + 1, val[1]); + rtw_write8(adapter, REG_RESP_SIFS_CCK_8822C, 0x08); + rtw_write8(adapter, REG_RESP_SIFS_CCK_8822C + 1, 0x08); /* RESP_SIFS for OFDM */ - rtw_write8(adapter, REG_RESP_SIFS_OFDM_8822C, val[2]); - rtw_write8(adapter, REG_RESP_SIFS_OFDM_8822C + 1, val[3]); + rtw_write8(adapter, REG_RESP_SIFS_OFDM_8822C, 0x0a); + rtw_write8(adapter, REG_RESP_SIFS_OFDM_8822C + 1, 0x0a); break; case HW_VAR_ACK_PREAMBLE: @@ -2295,6 +2365,14 @@ u8 rtl8822c_sethwreg(PADAPTER adapter, u8 variable, u8 *val) case HW_VAR_H2C_FW_PWRMODE: rtl8822c_set_FwPwrMode_cmd(adapter, *val); break; + + case HW_VAR_H2C_FW_PWRMODE_RFON_CTRL: + rtl8822c_set_FwPwrMode_rfon_ctrl_cmd(adapter, *val); + break; + + case HW_VAR_LPS_RFON_CHK: + hw_var_lps_rfon_chk(adapter, *val); + break; /* case HW_VAR_H2C_PS_TUNE_PARAM: break; @@ -2307,6 +2385,11 @@ u8 rtl8822c_sethwreg(PADAPTER adapter, u8 variable, u8 *val) case HW_VAR_H2C_FW_JOINBSSRPT: hw_var_set_h2c_fw_joinbssrpt(adapter, *val); break; +#ifdef CONFIG_WOWLAN + case HW_VAR_VENDOR_WOW_MODE: + hw_var_vendor_wow_mode(adapter, *(u8 *)val); + break; +#endif /* CONFIG_WOWLAN */ case HW_VAR_DL_RSVD_PAGE: #ifdef CONFIG_BT_COEXIST if (check_fwstate(&adapter->mlmepriv, WIFI_AP_STATE) == _TRUE) @@ -2365,6 +2448,7 @@ u8 rtl8822c_sethwreg(PADAPTER adapter, u8 variable, u8 *val) break; RTW_INFO("[HW_VAR_FIFO_CLEARN_UP] val=%x times:%d\n", val32, trycnt); + rtw_yield_os(); } while (--trycnt); if (trycnt == 0) RTW_INFO("[HW_VAR_FIFO_CLEARN_UP] Stop RX DMA failed!\n"); @@ -2401,7 +2485,7 @@ u8 rtl8822c_sethwreg(PADAPTER adapter, u8 variable, u8 *val) u8 RetryLimit = 0x01; systime start; u32 passtime; - u32 timelmt = 2000; /* ms */ + u32 timelmt = val ? *val : 2000; /* ms */ int err; u8 empty; @@ -2443,11 +2527,12 @@ u8 rtl8822c_sethwreg(PADAPTER adapter, u8 variable, u8 *val) */ #ifdef CONFIG_GPIO_WAKEUP case HW_SET_GPIO_WL_CTRL: { + struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(adapter); u8 enable = *val; u8 value = 0; u8 addr = REG_PAD_CTRL1_8822C + 3; - if (WAKEUP_GPIO_IDX == 6) { + if (pwrpriv->wowlan_gpio_index == 6) { value = rtw_read8(adapter, addr); if (enable == _TRUE && (value & BIT(1))) @@ -2486,7 +2571,6 @@ u8 rtl8822c_sethwreg(PADAPTER adapter, u8 variable, u8 *val) case HW_VAR_TX_RPT_MAX_MACID: case HW_VAR_CHK_HI_QUEUE_EMPTY: case HW_VAR_AMPDU_MAX_TIME: - case HW_VAR_WIRELESS_MODE: case HW_VAR_USB_MODE: break; */ @@ -2543,13 +2627,6 @@ u8 rtl8822c_sethwreg(PADAPTER adapter, u8 variable, u8 *val) case HW_VAR_CH_SW_IQK_INFO_RESTORE: break; */ -#ifdef CONFIG_TDLS -#ifdef CONFIG_TDLS_CH_SW - case HW_VAR_TDLS_BCN_EARLY_C2H_RPT: - rtl8822c_set_BcnEarly_C2H_Rpt_cmd(adapter, *val); - break; -#endif -#endif case HW_VAR_FREECNT: @@ -2590,6 +2667,25 @@ u8 rtl8822c_sethwreg(PADAPTER adapter, u8 variable, u8 *val) #endif break; +#ifdef CONFIG_WAKE_ON_BT + case HW_VAR_WAKE_ON_BT_GPIO_SWITCH: { + int status = 0; + u8 enable = *val; + + if (enable) { + /* Should disable wl_led control at first + halmac will check if wl_led is enabled before switch BT wake GPIO */ + status = rtw_halmac_led_cfg(adapter_to_dvobj(adapter), _FALSE, 3); + status = rtw_halmac_bt_wake_cfg(adapter_to_dvobj(adapter), *val); + if (status) + RTW_INFO("[WakeOnBT] Enable BT control fail, status: %d\n", status); + } else { + status = rtw_halmac_bt_wake_cfg(adapter_to_dvobj(adapter), *val); + status = rtw_halmac_led_cfg(adapter_to_dvobj(adapter), _TRUE, 3); + } + } + break; +#endif default: ret = SetHwReg(adapter, variable, val); break; @@ -2598,6 +2694,7 @@ u8 rtl8822c_sethwreg(PADAPTER adapter, u8 variable, u8 *val) return ret; } +#ifdef CONFIG_PROC_DEBUG struct qinfo { u32 head:11; u32 tail:11; @@ -2699,6 +2796,7 @@ static void dump_mac_txfifo(void *sel, _adapter *adapter) RTW_PRINT_SEL(sel, "HPQ: %d, LPQ: %d, NPQ: %d, EPQ: %d, PUBQ: %d\n" , hpq, lpq, npq, epq, pubq); } +#endif static u8 hw_var_get_bcn_valid(PADAPTER adapter) { @@ -2790,8 +2888,12 @@ void rtl8822c_gethwreg(PADAPTER adapter, u8 variable, u8 *val) case HW_VAR_BCN_VALID: *val = hw_var_get_bcn_valid(adapter); break; -/* + case HW_VAR_FREECNT: + /* free run counter 0x577[3]=1 means running */ + *val = rtw_read8(adapter, REG_MISC_CTRL)&BIT_EN_FREECNT; + break; +/* case HW_VAR_CAM_INVALID_ALL: */ case HW_VAR_AC_PARAM_VO: @@ -2921,7 +3023,6 @@ void rtl8822c_gethwreg(PADAPTER adapter, u8 variable, u8 *val) /* case HW_VAR_DL_BCN_SEL: case HW_VAR_AMPDU_MAX_TIME: - case HW_VAR_WIRELESS_MODE: case HW_VAR_USB_MODE: case HW_VAR_PORT_SWITCH: case HW_VAR_DO_IQK: @@ -2943,7 +3044,7 @@ void rtl8822c_gethwreg(PADAPTER adapter, u8 variable, u8 *val) /* driver read REG_SYS_CFG5 - BIT_LPS_STATUS REG_1070[3] to get hw ps state */ *((u16 *)val) = rtw_read8(adapter, REG_SYS_CFG5); break; - +#ifdef CONFIG_PROC_DEBUG case HW_VAR_DUMP_MAC_QUEUE_INFO: dump_mac_qinfo(val, adapter); break; @@ -2951,6 +3052,7 @@ void rtl8822c_gethwreg(PADAPTER adapter, u8 variable, u8 *val) case HW_VAR_DUMP_MAC_TXFIFO: dump_mac_txfifo(val, adapter); break; +#endif /* case HW_VAR_ASIX_IOT: case HW_VAR_EN_HW_UPDATE_TSF: @@ -2959,7 +3061,7 @@ void rtl8822c_gethwreg(PADAPTER adapter, u8 variable, u8 *val) case HW_VAR_CH_SW_IQK_INFO_RESTORE: #ifdef CONFIG_TDLS #ifdef CONFIG_TDLS_CH_SW - case HW_VAR_TDLS_BCN_EARLY_C2H_RPT: + case HW_VAR_BCN_EARLY_C2H_RPT: #endif #endif break; @@ -3386,14 +3488,17 @@ void rtl8822c_fill_txdesc_bf(struct xmit_frame *frame, u8 *desc) return; #else /* CONFIG_BEAMFORMING */ struct pkt_attrib *attrib; - + struct _ADAPTER *padapter = frame->padapter; + struct hal_com_data *pHalData = GET_HAL_DATA(padapter); + u8 init_rate; attrib = &frame->attrib; + init_rate = pHalData->INIDATA_RATE[attrib->mac_id] & 0x7F; SET_TX_DESC_G_ID_8822C(desc, attrib->txbf_g_id); SET_TX_DESC_P_AID_8822C(desc, attrib->txbf_p_aid); - SET_TX_DESC_MU_DATARATE_8822C(desc, MRateToHwRate(attrib->rate)); + SET_TX_DESC_MU_DATARATE_8822C(desc, init_rate); /*SET_TX_DESC_MU_RC_8822C(desc, 0);*/ /* Force to disable STBC when txbf is enabled */ @@ -4010,7 +4115,6 @@ void rtl8822c_set_hal_ops(PADAPTER adapter) struct hal_com_data *hal; struct hal_ops *ops; - RTW_INFO(" ====> %s\n", __func__); hal = GET_HAL_DATA(adapter); ops = &adapter->hal_func; @@ -4165,10 +4269,5 @@ void rtl8822c_set_hal_ops(PADAPTER adapter) ops->init_phy = rtl8822c_phy_init; ops->reqtxrpt = rtl8822c_req_txrpt_cmd; -#ifdef CONFIG_SUPPORT_DYNAMIC_TXPWR - ops->dtp_macid_set = rtl8822c_dtp_macid_set; -#endif - - RTW_INFO(" %s <====\n", __func__); } diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/rtl8822c_phy.c b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/rtl8822c_phy.c index 9b52523d..d63efa23 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/rtl8822c_phy.c +++ b/drivers/net/wireless/realtek/rtl8822ce/hal/rtl8822c/rtl8822c_phy.c @@ -306,9 +306,6 @@ u8 rtl8822c_phy_init(PADAPTER adapter) if (err) return _FALSE; -#ifdef CONFIG_RTW_IOT_CCK_PD_INIT - phydm_iot_patch_id_update(phydm, 0x021f0800, true); -#endif ret = config_phydm_parameter_init_8822c(phydm, ODM_PRE_SETTING); if (FALSE == ret) return _FALSE; @@ -320,9 +317,6 @@ u8 rtl8822c_phy_init(PADAPTER adapter) if (_FALSE == ok) return _FALSE; -#ifdef CONFIG_RTW_IOT_CCK_PD_INIT - phydm_iot_patch_id_update(phydm, 0x021f0800, true); -#endif ret = config_phydm_parameter_init_8822c(phydm, ODM_POST_SETTING); if (FALSE == ret) return _FALSE; @@ -444,8 +438,6 @@ static void init_phydm_cominfo(PADAPTER adapter) PHAL_DATA_TYPE hal; struct dm_struct *p_dm_odm; u32 support_ability = 0; - u8 cut_ver = ODM_CUT_A, fab_ver = ODM_TSMC; - hal = GET_HAL_DATA(adapter); p_dm_odm = &hal->odmpriv; @@ -455,41 +447,9 @@ static void init_phydm_cominfo(PADAPTER adapter) odm_cmn_info_init(p_dm_odm, ODM_CMNINFO_PACKAGE_TYPE, hal->PackageType); odm_cmn_info_init(p_dm_odm, ODM_CMNINFO_IC_TYPE, ODM_RTL8822C); - if (IS_CHIP_VENDOR_TSMC(hal->version_id)) - fab_ver = ODM_TSMC; - else if (IS_CHIP_VENDOR_UMC(hal->version_id)) - fab_ver = ODM_UMC; - else if (IS_CHIP_VENDOR_SMIC(hal->version_id)) - fab_ver = ODM_UMC + 1; - else - RTW_INFO("%s: unknown Fv=%d !!\n", - __FUNCTION__, GET_CVID_MANUFACTUER(hal->version_id)); - - if (IS_A_CUT(hal->version_id)) - cut_ver = ODM_CUT_A; - else if (IS_B_CUT(hal->version_id)) - cut_ver = ODM_CUT_B; - else if (IS_C_CUT(hal->version_id)) - cut_ver = ODM_CUT_C; - else if (IS_D_CUT(hal->version_id)) - cut_ver = ODM_CUT_D; - else if (IS_E_CUT(hal->version_id)) - cut_ver = ODM_CUT_E; - else if (IS_F_CUT(hal->version_id)) - cut_ver = ODM_CUT_F; - else if (IS_I_CUT(hal->version_id)) - cut_ver = ODM_CUT_I; - else if (IS_J_CUT(hal->version_id)) - cut_ver = ODM_CUT_J; - else if (IS_K_CUT(hal->version_id)) - cut_ver = ODM_CUT_K; - else - RTW_INFO("%s: unknown Cv=%d !!\n", - __FUNCTION__, GET_CVID_CUT_VERSION(hal->version_id)); - - RTW_INFO("%s: Fv=%d Cv=%d\n", __FUNCTION__, fab_ver, cut_ver); - odm_cmn_info_init(p_dm_odm, ODM_CMNINFO_FAB_VER, fab_ver); - odm_cmn_info_init(p_dm_odm, ODM_CMNINFO_CUT_VER, cut_ver); + RTW_INFO("%s: Fv=%d Cv=%d\n", __FUNCTION__, hal->version_id.VendorType, hal->version_id.CUTVersion); + odm_cmn_info_init(p_dm_odm, ODM_CMNINFO_FAB_VER, hal->version_id.VendorType); + odm_cmn_info_init(p_dm_odm, ODM_CMNINFO_CUT_VER, hal->version_id.CUTVersion); odm_cmn_info_init(p_dm_odm, ODM_CMNINFO_DIS_DPD , hal->txpwr_pg_mode == TXPWR_PG_WITH_PWR_IDX ? _TRUE : _FALSE); odm_cmn_info_init(p_dm_odm, ODM_CMNINFO_TSSI_ENABLE @@ -513,9 +473,7 @@ void rtl8822c_phy_deinit_dm_priv(PADAPTER adapter) void rtl8822c_phy_init_haldm(PADAPTER adapter) { - RTW_INFO(" ====> %s\n", __func__); rtw_phydm_init(adapter); - RTW_INFO(" %s <====\n", __func__); } static void check_rxfifo_full(PADAPTER adapter) @@ -542,7 +500,6 @@ void rtl8822c_phy_haldm_watchdog(PADAPTER adapter) BOOLEAN bFwCurrentInPSMode = _FALSE; u8 bFwPSAwake = _TRUE; struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(adapter); - u8 lps_changed = _FALSE; u8 in_lps = _FALSE; PADAPTER current_lps_iface = NULL, iface = NULL; struct dvobj_priv *dvobj = adapter_to_dvobj(adapter); @@ -573,20 +530,22 @@ void rtl8822c_phy_haldm_watchdog(PADAPTER adapter) } #ifdef CONFIG_LPS - if (pwrpriv->bLeisurePs && bFwCurrentInPSMode && pwrpriv->pwr_mode != PS_MODE_ACTIVE -#ifdef CONFIG_WMMPS_STA - && !rtw_is_wmmps_mode(adapter) -#endif /* CONFIG_WMMPS_STA */ - ) { + if (pwrpriv->bLeisurePs && bFwCurrentInPSMode && pwrpriv->pwr_mode != PS_MODE_ACTIVE) { + in_lps = _TRUE; + for (i = 0; i < dvobj->iface_nums; i++) { iface = dvobj->padapters[i]; - if (pwrpriv->current_lps_hw_port_id == rtw_hal_get_port(iface)) + if (pwrpriv->current_lps_hw_port_id == rtw_hal_get_port(iface)) { current_lps_iface = iface; + rtw_lps_rfon_ctrl(current_lps_iface, rf_on); + break; + } } - lps_changed = _TRUE; - in_lps = _TRUE; - LPS_Leave(current_lps_iface, LPS_CTRL_PHYDM); + if (!current_lps_iface) { + RTW_WARN("Can't find a adapter with LPS to enable RFON function !\n"); + goto skip_dm; + } } #endif @@ -607,8 +566,8 @@ void rtl8822c_phy_haldm_watchdog(PADAPTER adapter) skip_dm: #ifdef CONFIG_LPS - if (lps_changed) - LPS_Enter(current_lps_iface, LPS_CTRL_PHYDM); + if (current_lps_iface) + rtw_lps_rfon_ctrl(current_lps_iface, rf_off); #endif /* * Check GPIO to determine current RF on/off and Pbc status. @@ -924,6 +883,13 @@ static void mac_switch_bandwidth(PADAPTER adapter, u8 pri_ch_idx) channel = hal->current_channel; bw = hal->current_channel_bw; +#ifdef CONFIG_NARROWBAND_SUPPORTING + if (adapter->registrypriv.rtw_nb_config == RTW_NB_CONFIG_WIDTH_10) + err = rtw_halmac_set_bandwidth(adapter_to_dvobj(adapter), channel, pri_ch_idx, HALMAC_BW_10); + else if (adapter->registrypriv.rtw_nb_config == RTW_NB_CONFIG_WIDTH_5) + err = rtw_halmac_set_bandwidth(adapter_to_dvobj(adapter), channel, pri_ch_idx, HALMAC_BW_5); + else +#endif err = rtw_halmac_set_bandwidth(adapter_to_dvobj(adapter), channel, pri_ch_idx, bw); if (err) { RTW_INFO(FUNC_ADPT_FMT ": (channel=%d, pri_ch_idx=%d, bw=%d) fail\n", @@ -971,14 +937,15 @@ static void switch_chnl_and_set_bw_by_drv(PADAPTER adapter, u8 switch_band) mac_switch_bandwidth(adapter, pri_ch_idx); /* 3.2 set BB/RF registet */ + #ifdef CONFIG_NARROWBAND_SUPPORTING if (adapter->registrypriv.rtw_nb_config == RTW_NB_CONFIG_WIDTH_10) { rtw_write8(adapter, REG_CCK_CHECK_8822C, - (rtw_read8(adapter, REG_CCK_CHECK_8822C) | BIT(7))); + (rtw_read8(adapter, REG_CCK_CHECK_8822C) | BIT_CHECK_CCK_EN_8822C)); ret = config_phydm_switch_bandwidth_8822c(p_dm_odm, pri_ch_idx, CHANNEL_WIDTH_10); } else if (adapter->registrypriv.rtw_nb_config == RTW_NB_CONFIG_WIDTH_5) { rtw_write8(adapter, REG_CCK_CHECK_8822C, - (rtw_read8(adapter, REG_CCK_CHECK_8822C) | BIT(7))); + (rtw_read8(adapter, REG_CCK_CHECK_8822C) | BIT_CHECK_CCK_EN_8822C)); ret = config_phydm_switch_bandwidth_8822c(p_dm_odm, pri_ch_idx, CHANNEL_WIDTH_5); } else #endif @@ -1415,13 +1382,13 @@ static void _sounding_config_su(PADAPTER adapter, struct beamformee_entry *bfee, new_ctrl |= BIT_R_TXBF0_80M_8822C; else if (1 == bfee->su_reg_index) new_ctrl |= BIT_R_TXBF1_80M_8822C; - /* fall through */ + fallthrough; case CHANNEL_WIDTH_40: if (0 == bfee->su_reg_index) new_ctrl |= BIT_R_TXBF0_40M_8822C; else if (1 == bfee->su_reg_index) new_ctrl |= BIT_R_TXBF1_40M_8822C; - /* fall through */ + fallthrough; case CHANNEL_WIDTH_20: if (0 == bfee->su_reg_index) new_ctrl |= BIT_R_TXBF0_20M_8822C; @@ -2091,7 +2058,6 @@ void rtl8822c_phy_bf_init(PADAPTER adapter) u8 v8; u32 v32; - RTW_INFO(" ====> %s\n", __func__); v32 = rtw_read32(adapter, REG_MU_TX_CTL_8822C); /* Enable P1 aggr new packet according to P0 transfer time */ v32 |= BIT_R_MU_P1_WAIT_STATE_EN_8822C; @@ -2123,7 +2089,6 @@ void rtl8822c_phy_bf_init(PADAPTER adapter) v8 = rtw_read8(adapter, 0x6DF); v8 = (v8 & 0xC0) | 0x4; rtw_write8(adapter, 0x6DF, v8); - RTW_INFO(" %s <====\n", __func__); } void rtl8822c_phy_bf_enter(PADAPTER adapter, struct sta_info *sta) diff --git a/drivers/net/wireless/realtek/rtl8822ce/halmac.mk b/drivers/net/wireless/realtek/rtl8822ce/halmac.mk index 22b5203f..16eebc1c 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/halmac.mk +++ b/drivers/net/wireless/realtek/rtl8822ce/halmac.mk @@ -5,8 +5,6 @@ # Base directory path_hm := hal/halmac -# Level 1 directory -path_hm_d1 := $(path_hm)/halmac_88xx ifeq ($(CONFIG_PCI_HCI), y) pci := y @@ -19,23 +17,26 @@ usb := y endif ifeq ($(CONFIG_RTL8822B), y) +series := 88xx ic := 8822b endif ifeq ($(CONFIG_RTL8822C), y) +series := 88xx ic := 8822c endif ifeq ($(CONFIG_RTL8821C), y) +series := 88xx ic := 8821c endif ifeq ($(CONFIG_RTL8814B), y) -v1 := _v1 +series := 88xx_v1 ic := 8814b endif -ifeq ($(v1), _v1) +ifeq ($(series), 88xx_v1) d2all := else d2all := y @@ -44,27 +45,27 @@ endif halmac-y += $(path_hm)/halmac_api.o halmac-y += $(path_hm)/halmac_dbg.o -# Modify level 1 directory if needed -path_hm_d1 := $(path_hm_d1)$(v1) -halmac-y += $(path_hm_d1)/halmac_bb_rf_88xx$(v1).o \ - $(path_hm_d1)/halmac_cfg_wmac_88xx$(v1).o \ - $(path_hm_d1)/halmac_common_88xx$(v1).o \ - $(path_hm_d1)/halmac_efuse_88xx$(v1).o \ - $(path_hm_d1)/halmac_flash_88xx$(v1).o \ - $(path_hm_d1)/halmac_fw_88xx$(v1).o \ - $(path_hm_d1)/halmac_gpio_88xx$(v1).o \ - $(path_hm_d1)/halmac_init_88xx$(v1).o \ - $(path_hm_d1)/halmac_mimo_88xx$(v1).o -halmac-$(pci) += $(path_hm_d1)/halmac_pcie_88xx$(v1).o -halmac-$(sdio) += $(path_hm_d1)/halmac_sdio_88xx$(v1).o -halmac-$(usb) += $(path_hm_d1)/halmac_usb_88xx$(v1).o +# Level 1 directory +path_hm_d1 := $(path_hm)/halmac_$(series) +halmac-y += $(path_hm_d1)/halmac_bb_rf_$(series).o \ + $(path_hm_d1)/halmac_cfg_wmac_$(series).o \ + $(path_hm_d1)/halmac_common_$(series).o \ + $(path_hm_d1)/halmac_efuse_$(series).o \ + $(path_hm_d1)/halmac_flash_$(series).o \ + $(path_hm_d1)/halmac_fw_$(series).o \ + $(path_hm_d1)/halmac_gpio_$(series).o \ + $(path_hm_d1)/halmac_init_$(series).o \ + $(path_hm_d1)/halmac_mimo_$(series).o +halmac-$(pci) += $(path_hm_d1)/halmac_pcie_$(series).o +halmac-$(sdio) += $(path_hm_d1)/halmac_sdio_$(series).o +halmac-$(usb) += $(path_hm_d1)/halmac_usb_$(series).o # Level 2 directory path_hm_d2 := $(path_hm_d1)/halmac_$(ic) halmac-$(d2all) += $(path_hm_d2)/halmac_cfg_wmac_$(ic).o \ $(path_hm_d2)/halmac_common_$(ic).o -halmac-y += $(path_hm_d2)/halmac_gpio_$(ic).o \ +halmac-y += $(path_hm_d2)/halmac_gpio_$(ic).o \ $(path_hm_d2)/halmac_init_$(ic).o \ $(path_hm_d2)/halmac_phy_$(ic).o \ $(path_hm_d2)/halmac_pwr_seq_$(ic).o diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/HalVerDef.h b/drivers/net/wireless/realtek/rtl8822ce/include/HalVerDef.h index 4067119b..d4e40670 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/HalVerDef.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/HalVerDef.h @@ -41,6 +41,7 @@ typedef enum tag_HAL_IC_Type_Definition { CHIP_8188GTV = 18, CHIP_8822C = 19, CHIP_8814B = 20, + CHIP_8723F = 21, } HAL_IC_TYPE_E; /* HAL_CHIP_TYPE_E */ @@ -130,6 +131,7 @@ typedef struct tag_HAL_VERSION { #define IS_8710B_SERIES(version) ((GET_CVID_IC_TYPE(version) == CHIP_8710B) ? TRUE : FALSE) #define IS_8822C_SERIES(version) ((GET_CVID_IC_TYPE(version) == CHIP_8822C) ? TRUE : FALSE) #define IS_8814B_SERIES(version) ((GET_CVID_IC_TYPE(version) == CHIP_8814B) ? TRUE : FALSE) +#define IS_8723F_SERIES(version) ((GET_CVID_IC_TYPE(version) == CHIP_8723F) ? TRUE : FALSE) #define IS_8192F_SERIES(version)\ ((GET_CVID_IC_TYPE(version) == CHIP_8192F) ? TRUE : FALSE) diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/autoconf.h b/drivers/net/wireless/realtek/rtl8822ce/include/autoconf.h index 79136b6e..57bb5eb3 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/autoconf.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/autoconf.h @@ -16,7 +16,7 @@ #define CONFIG_HEXFILE_CHANNEL_PLAN #define CONFIG_HEXFILE_POWER_LIMIT #define RTW_HEXFILE_LEN 3072 -#define RTW_HEXFILE_NAME "/lib/firmware/rtl8822_setting.bin" +#define RTW_HEXFILE_NAME "setting.bin" #define CONFIG_SINGLE_IMG /* #define CONFIG_DISABLE_ODM */ @@ -55,6 +55,7 @@ #endif #define CONFIG_TX_AMSDU +#define CONFIG_RTW_TX_NPATH_EN /* mutually incompatible with STBC_TX & Beamformer */ #define CONFIG_RTW_TX_2PATH_EN /* mutually incompatible with STBC_TX & Beamformer */ /* @@ -108,7 +109,7 @@ #endif -#define CONFIG_PCI_ASPM +/*#define CONFIG_PCI_ASPM*/ #ifdef CONFIG_PCI_ASPM #define CONFIG_PCI_DYNAMIC_ASPM_L1_LATENCY #endif @@ -117,7 +118,6 @@ /*#define SUPPORT_HW_RFOFF_DETECTED*/ /*#define CONFIG_ANTENNA_DIVERSITY*/ -#define CONFIG_AP_MODE #ifdef CONFIG_AP_MODE /*#define CONFIG_INTERRUPT_BASED_TXBCN*/ /* Tx Beacon when driver BCN_OK ,BCN_ERR interrupt occurs */ #if defined(CONFIG_CONCURRENT_MODE) && defined(CONFIG_INTERRUPT_BASED_TXBCN) @@ -136,7 +136,6 @@ /*#define CONFIG_AUTO_AP_MODE*/ #endif -#define CONFIG_P2P #ifdef CONFIG_P2P /* The CONFIG_WFD is for supporting the Wi-Fi display */ #define CONFIG_WFD @@ -177,13 +176,7 @@ #define CONFIG_GLOBAL_UI_PID -/* #define CONFIG_RTW_80211K */ -/* #define CONFIG_RTW_80211R */ -/* #define CONFIG_RTW_WNM */ -/* #define CONFIG_RTW_BTM_ROAM */ - -#define CONFIG_LAYER2_ROAMING -#define CONFIG_LAYER2_ROAMING_RESUME +/*#define CONFIG_RTW_80211K*/ /*#define CONFIG_ADAPTOR_INFO_CACHING_FILE*/ /* now just applied on 8192cu only, should make it general...*/ /*#define CONFIG_RESUME_IN_WORKQUEUE*/ /*#define CONFIG_SET_SCAN_DENY_TIMER*/ @@ -213,6 +206,17 @@ */ #define CONFIG_USB_CONFIG_OFFLOAD_8822C +/* + * Define for using dma_alloc_coherent/dma_free_coherent DMA API for PCIe Tx/Rx + */ +/*#define CONFIG_PCIE_DMA_COHERENT*/ + +#ifdef CONFIG_SECURITY_MEM +#ifndef CONFIG_PCIE_DMA_COHERENT +#define CONFIG_PCIE_DMA_COHERENT +#endif +#endif + /* * HAL Related Config */ @@ -274,7 +278,10 @@ * Debug Related Config */ #define DBG 1 - +#define RTW_WNM_DBG 1 +#define RTW_FT_DBG 1 +#define RTW_RSSI_DBG +#define DBG_EXPIRATION_CHK #define CONFIG_DBG_COUNTER #define DBG_CONFIG_ERROR_DETECT @@ -322,7 +329,7 @@ /* #define CONFIG_8822CE_INT_MIGRATION */ -#define CONFIG_PCI_BCN_POLLING - #define CONFIG_PCI_TX_POLLING /*#define CONFIG_PCI_TX_POLLING_V2*/ + +/* #define CONFIG_64BIT_DMA */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/cmn_info/rtw_sta_info.h b/drivers/net/wireless/realtek/rtl8822ce/include/cmn_info/rtw_sta_info.h index eddb8ef4..d4de0e50 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/cmn_info/rtw_sta_info.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/cmn_info/rtw_sta_info.h @@ -85,6 +85,14 @@ enum rf_type { RF_3T3R = 5, RF_3T4R = 6, RF_4T4R = 7, + RF_4T3R = 8, + RF_4T2R = 9, + RF_4T1R = 10, + RF_3T2R = 11, + RF_3T1R = 12, + RF_2T1R = 13, + RF_1T4R = 14, + RF_1T3R = 15, RF_TYPE_MAX, }; @@ -191,6 +199,7 @@ struct ra_sta_info { struct dtp_info { u8 dyn_tx_power; /*Dynamic Tx power offset*/ u8 last_tx_power; + boolean sta_is_alive; u8 sta_tx_high_power_lvl:4; u8 sta_last_dtp_lvl:4; }; @@ -248,6 +257,7 @@ struct phydm_phyinfo_struct { u8 cnt_pw2cca; u8 cnt_cca2agc_rdy; /*ODM_PHY_STATUS_NEW_TYPE_SUPPORT*/ + u8 rx_cck_evm; }; struct phydm_perpkt_info_struct { diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/drv_conf.h b/drivers/net/wireless/realtek/rtl8822ce/include/drv_conf.h old mode 100755 new mode 100644 index e8adfd9e..747c1038 --- a/drivers/net/wireless/realtek/rtl8822ce/include/drv_conf.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/drv_conf.h @@ -41,9 +41,10 @@ #define CONFIG_RTW_REPEATER_SON_ID 0x02040608 #endif //#define CONFIG_RTW_REPEATER_SON_ROOT - #ifndef CONFIG_RTW_REPEATER_SON_ROOT - #define CONFIG_LAYER2_ROAMING_ACTIVE - #endif + #ifndef CONFIG_RTW_REPEATER_SON_ROOT + #undef CONFIG_ROAMING_FLAG + #define CONFIG_ROAMING_FLAG 0x7 + #endif #undef CONFIG_POWER_SAVING #endif @@ -71,12 +72,25 @@ #endif +#ifdef CONFIG_LAYER2_ROAMING +/*#define CONFIG_RTW_ROAM_QUICKSCAN */ /* active_roaming is required. i.e CONFIG_ROAMING_FLAG[bit2] MUST be enabled */ +/*#define CONFIG_RTW_ROAM_QUICKSCAN_TH 60*/ +#endif + /* Default enable single wiphy if driver ver >= 5.9 */ #define RTW_SINGLE_WIPHY +#if (defined(__ANDROID_COMMON_KERNEL__) && !defined(CONFIG_RTW_ANDROID)) + #error "Set CONFIG_RTW_ANDROID in Makefile while build with Android Common Kernel!!" +#endif + #ifdef CONFIG_RTW_ANDROID #include + + #ifndef CONFIG_PLATFORM_ANDROID + #define CONFIG_PLATFORM_ANDROID + #endif #ifndef CONFIG_IOCTL_CFG80211 #define CONFIG_IOCTL_CFG80211 @@ -92,11 +106,11 @@ #endif #endif - #if (CONFIG_RTW_ANDROID <= 7) - #ifdef RTW_SINGLE_WIPHY - #undef RTW_SINGLE_WIPHY - #endif - #endif + #if (CONFIG_RTW_ANDROID <= 7) + #ifdef RTW_SINGLE_WIPHY + #undef RTW_SINGLE_WIPHY + #endif + #endif #if (CONFIG_RTW_ANDROID >= 8) #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,0)) @@ -108,16 +122,38 @@ #endif #endif + #if (CONFIG_RTW_ANDROID >= 11) + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,4,0)) + #ifndef CONFIG_RTW_ANDROID_GKI + #define CONFIG_RTW_ANDROID_GKI + #endif + #endif + + #ifdef CONFIG_RTW_ANDROID_GKI + #ifdef CONFIG_ADAPTOR_INFO_CACHING_FILE + #undef CONFIG_ADAPTOR_INFO_CACHING_FILE + #endif + #endif + #endif + #ifdef CONFIG_RTW_WIFI_HAL #ifndef CONFIG_RTW_WIFI_HAL_DEBUG //#define CONFIG_RTW_WIFI_HAL_DEBUG #endif + #if (CONFIG_RTW_ANDROID < 11) #ifndef CONFIG_RTW_CFGVENDOR_LLSTATS #define CONFIG_RTW_CFGVENDOR_LLSTATS #endif + #endif + #if (CONFIG_RTW_ANDROID < 11) #ifndef CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI #define CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI #endif + #else + #ifndef CONFIG_RTW_SCAN_RAND + #define CONFIG_RTW_SCAN_RAND + #endif + #endif #ifndef CONFIG_RTW_CFGVENDOR_RSSIMONITOR #define CONFIG_RTW_CFGVENDOR_RSSIMONITOR #endif @@ -128,6 +164,12 @@ #ifndef CONFIG_RTW_CFGVENDOR_WIFI_OFFLOAD //#define CONFIG_RTW_CFGVENDOR_WIFI_OFFLOAD #endif + #ifndef CONFIG_RTW_HOSTAPD_ACS + #define CONFIG_RTW_HOSTAPD_ACS + #endif + #ifndef CONFIG_KERNEL_PATCH_EXTERNAL_AUTH + #define CONFIG_KERNEL_PATCH_EXTERNAL_AUTH + #endif #endif #endif // CONFIG_RTW_WIFI_HAL @@ -140,6 +182,13 @@ /* Android expect dbm as the rx signal strength unit */ #define CONFIG_SIGNAL_DISPLAY_DBM + +#else // for Linux + + #ifndef CONFIG_RTW_SCAN_RAND + #define CONFIG_RTW_SCAN_RAND + #endif + #endif // CONFIG_RTW_ANDROID /* @@ -193,9 +242,51 @@ #endif #endif +#ifndef CONFIG_RTW_DATA_BMC_TO_UC +#define CONFIG_RTW_DATA_BMC_TO_UC 0 +#endif + #ifdef CONFIG_AP_MODE #define CONFIG_LIMITED_AP_NUM 1 - #define CONFIG_TX_MCAST2UNI /* AP mode support IP multicast->unicast */ + + #ifndef CONFIG_RTW_AP_DATA_BMC_TO_UC + #define CONFIG_RTW_AP_DATA_BMC_TO_UC 1 + #endif + #if CONFIG_RTW_AP_DATA_BMC_TO_UC + #undef CONFIG_RTW_DATA_BMC_TO_UC + #define CONFIG_RTW_DATA_BMC_TO_UC 1 + #endif + #ifndef CONFIG_RTW_AP_SRC_B2U_FLAGS + #define CONFIG_RTW_AP_SRC_B2U_FLAGS 0x8 /* see RTW_AP_B2U_XXX */ + #endif + #ifndef CONFIG_RTW_AP_FWD_B2U_FLAGS + #define CONFIG_RTW_AP_FWD_B2U_FLAGS 0x8 /* see RTW_AP_B2U_XXX */ + #endif + + #ifndef CONFIG_ACTIVE_TPC_REPORT + #define CONFIG_ACTIVE_TPC_REPORT + #endif +#endif + +#ifdef CONFIG_RTW_MULTI_AP + #ifndef CONFIG_AP_MODE + #error "enable CONFIG_RTW_MULTI_AP without CONFIG_AP_MODE" + #endif + #ifndef CONFIG_RTW_WDS + #define CONFIG_RTW_WDS + #endif + #ifndef CONFIG_RTW_UNASOC_STA_MODE_OF_STYPE + #define CONFIG_RTW_UNASOC_STA_MODE_OF_STYPE {2, 1} /* BMC:2 for all, NMY_UC:1 for interested target */ + #endif + #ifndef CONFIG_RTW_NLRTW + #define CONFIG_RTW_NLRTW + #endif + #ifndef CONFIG_RTW_WNM + #define CONFIG_RTW_WNM + #endif + #ifndef CONFIG_RTW_80211K + #define CONFIG_RTW_80211K + #endif #endif #ifdef CONFIG_RTW_MESH @@ -230,6 +321,16 @@ #ifndef CONFIG_RTW_MESH_DATA_BMC_TO_UC #define CONFIG_RTW_MESH_DATA_BMC_TO_UC 1 #endif + #if CONFIG_RTW_MESH_DATA_BMC_TO_UC + #undef CONFIG_RTW_DATA_BMC_TO_UC + #define CONFIG_RTW_DATA_BMC_TO_UC 1 + #endif + #ifndef CONFIG_RTW_MSRC_B2U_FLAGS + #define CONFIG_RTW_MSRC_B2U_FLAGS 0x0 /* see RTW_MESH_B2U_XXX */ + #endif + #ifndef CONFIG_RTW_MFWD_B2U_FLAGS + #define CONFIG_RTW_MFWD_B2U_FLAGS 0x2 /* see RTW_MESH_B2U_XXX */ + #endif #endif #if !defined(CONFIG_SCAN_BACKOP) && defined(CONFIG_AP_MODE) @@ -238,7 +339,6 @@ #define RTW_SCAN_SPARSE_MIRACAST 1 #define RTW_SCAN_SPARSE_BG 0 -#define RTW_SCAN_SPARSE_ROAMING_ACTIVE 1 #ifndef CONFIG_TX_AC_LIFETIME #define CONFIG_TX_AC_LIFETIME 1 @@ -280,18 +380,35 @@ #define CONFIG_RTW_EXCL_CHS {0} #endif +#ifndef CONFIG_RTW_EXCL_CHS_6G + #define CONFIG_RTW_EXCL_CHS_6G {0} +#endif + +#ifndef CONFIG_RTW_COUNTRY_IE_SLAVE_EN_ROLE +#define CONFIG_RTW_COUNTRY_IE_SLAVE_EN_ROLE 0x03 /* BIT0 for pure STA mode, BIT1 for P2P group client */ +#endif + +#ifndef CONFIG_RTW_COUNTRY_IE_SLAVE_EN_IFBMP +#define CONFIG_RTW_COUNTRY_IE_SLAVE_EN_IFBMP 0xFF /* all iface */ +#endif + #ifndef CONFIG_IEEE80211_BAND_5GHZ #if defined(CONFIG_RTL8821A) || defined(CONFIG_RTL8821C) \ || defined(CONFIG_RTL8812A) || defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8822C) \ - || defined(CONFIG_RTL8814A) || defined(CONFIG_RTL8814B) + || defined(CONFIG_RTL8814A) || defined(CONFIG_RTL8814B) || defined(CONFIG_RTL8723F) #define CONFIG_IEEE80211_BAND_5GHZ 1 #else #define CONFIG_IEEE80211_BAND_5GHZ 0 #endif #endif +#ifndef CONFIG_IEEE80211_BAND_6GHZ +#define CONFIG_IEEE80211_BAND_6GHZ 0 +#endif + #ifndef CONFIG_DFS #define CONFIG_DFS 1 +#define CONFIG_ECSA 1 #endif #if CONFIG_IEEE80211_BAND_5GHZ && CONFIG_DFS && defined(CONFIG_AP_MODE) @@ -315,9 +432,16 @@ #ifndef CONFIG_TXPWR_BY_RATE_EN #define CONFIG_TXPWR_BY_RATE_EN 2 /* by efuse */ #endif +#ifndef CONFIG_TXPWR_LIMIT_EN +#define CONFIG_TXPWR_LIMIT_EN 2 /* by efuse */ +#endif #ifndef CONFIG_RTW_CHPLAN -#define CONFIG_RTW_CHPLAN 0xFF /* RTW_CHPLAN_UNSPECIFIED */ +#define CONFIG_RTW_CHPLAN 0xFFFF /* RTW_CHPLAN_IOCTL_UNSPECIFIED */ +#endif + +#ifndef CONFIG_RTW_CHPLAN_6G +#define CONFIG_RTW_CHPLAN_6G 0xFFFF /* RTW_CHPLAN_IOCTL_UNSPECIFIED */ #endif /* compatible with old fashion configuration */ @@ -338,6 +462,9 @@ #endif #if RTW_DEF_MODULE_REGULATORY_CERT + #ifdef CONFIG_REGD_SRC_FROM_OS + #error "CONFIG_REGD_SRC_FROM_OS is not supported when enable RTW_DEF_MODULE_REGULATORY_CERT" + #endif /* force enable TX power by rate and TX power limit */ #undef CONFIG_TXPWR_BY_RATE_EN #undef CONFIG_TXPWR_LIMIT_EN @@ -345,12 +472,31 @@ #define CONFIG_TXPWR_LIMIT_EN 1 #endif +#if !CONFIG_TXPWR_LIMIT && CONFIG_TXPWR_LIMIT_EN + #undef CONFIG_TXPWR_LIMIT + #define CONFIG_TXPWR_LIMIT 1 +#endif + +#ifndef CONFIG_RTW_ACTIVE_TPC_REPORT +#define CONFIG_RTW_ACTIVE_TPC_REPORT 1 /* 0:incapable, 1:capable, 2:auto enable */ +#endif + +#ifndef CONFIG_RTW_REGD_SRC +#define CONFIG_RTW_REGD_SRC 1 /* 0:RTK_PRIV, 1:OS */ +#endif + +#define CONFIG_IOCTL_WEXT + #ifdef CONFIG_RTW_IPCAM_APPLICATION #undef CONFIG_TXPWR_BY_RATE_EN #define CONFIG_TXPWR_BY_RATE_EN 1 #define CONFIG_RTW_CUSTOMIZE_BEEDCA 0x0000431C #define CONFIG_RTW_CUSTOMIZE_BWMODE 0x00 #define CONFIG_RTW_CUSTOMIZE_RLSTA 0x30 + #define CONFIG_CHECK_SPECIFIC_IE_CONTENT + #ifdef CONFIG_CUSTOMER_EZVIZ_CHIME2 + #undef CONFIG_ACTIVE_KEEP_ALIVE_CHECK + #endif #if defined(CONFIG_RTL8192E) || defined(CONFIG_RTL8192F) || defined(CONFIG_RTL8822B) #define CONFIG_RTW_TX_NPATH_EN /* mutually incompatible with STBC_TX & Beamformer */ #endif @@ -411,6 +557,10 @@ #define CONFIG_RTW_TARGET_TX_PWR_5G_D {-1, -1, -1, -1, -1, -1, -1, -1, -1} #endif +#ifndef CONFIG_RTW_ANTENNA_GAIN +#define CONFIG_RTW_ANTENNA_GAIN 0x7FFF /* == UNSPECIFIED_MBM */ +#endif + #ifndef CONFIG_RTW_AMPLIFIER_TYPE_2G #define CONFIG_RTW_AMPLIFIER_TYPE_2G 0 #endif @@ -454,7 +604,8 @@ defined(CONFIG_RTL8188GTV) || defined(CONFIG_RTL8192F) || \ defined(CONFIG_RTL8812A) || defined(CONFIG_RTL8821A) || defined(CONFIG_RTL8710B) || \ defined(CONFIG_RTL8723B) || defined(CONFIG_RTL8703B) || defined(CONFIG_RTL8723D) #define CONFIG_HWMPCAP_GEN1 -#elif defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8822C) /*|| defined(CONFIG_RTL8814A)*/ +#elif defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8822C) || \ +defined(CONFIG_RTL8723F) /*|| defined(CONFIG_RTL8814A)*/ #define CONFIG_HWMPCAP_GEN2 #elif defined(CONFIG_RTL8814B) /*Address CAM - 128*/ #define CONFIG_HWMPCAP_GEN3 @@ -484,7 +635,9 @@ defined(CONFIG_RTL8723B) || defined(CONFIG_RTL8703B) || defined(CONFIG_RTL8723D) #endif #if (CONFIG_IFACE_NUMBER > 2) - #define CONFIG_MI_WITH_MBSSID_CAM + #ifndef CONFIG_HWMPCAP_GEN3 + #define CONFIG_MI_WITH_MBSSID_CAM + #endif #ifdef CONFIG_MI_WITH_MBSSID_CAM #define CONFIG_MBSSID_CAM @@ -513,6 +666,17 @@ defined(CONFIG_RTL8723B) || defined(CONFIG_RTL8703B) || defined(CONFIG_RTL8723D) #endif #endif /*CONFIG_HWMPCAP_GEN2*/ + + #ifdef CONFIG_HWMPCAP_GEN3 + #define CONFIG_PORT_BASED_TXBCN + #undef CONFIG_SUPPORT_MULTI_BCN + #undef CONFIG_SWTIMER_BASED_TXBCN + #undef CONFIG_LIMITED_AP_NUM + #define CONFIG_LIMITED_AP_NUM 4 + #ifdef CONFIG_PCI_HCI + #define CONFIG_PORT_BASED_HIQ /* 8814BU doesn't support */ + #endif + #endif #endif /*CONFIG_AP_MODE*/ #ifdef CONFIG_HWMPCAP_GEN2 /*CONFIG_RTL8822B/CONFIG_RTL8821C/CONFIG_RTL8822C*/ @@ -521,6 +685,15 @@ defined(CONFIG_RTL8723B) || defined(CONFIG_RTL8703B) || defined(CONFIG_RTL8723D) #endif/*CONFIG_HWMPCAP_GEN2*/ #endif/*(CONFIG_IFACE_NUMBER > 2)*/ +#if defined(CONFIG_MI_UNIQUE_MACADDR_BIT) + #if !defined(CONFIG_MI_WITH_MBSSID_CAM) + #error "CONFIG_MI_UNIQUE_MACADDR_BIT should not be used without multiple interface !!" + #endif + #if (CONFIG_MI_UNIQUE_MACADDR_BIT < 24) || ( 47 < CONFIG_MI_UNIQUE_MACADDR_BIT) + #error "CONFIG_MI_UNIQUE_MACADDR_BIT should be the bit in NIC specific mac address(BIT[24:47] !!" + #endif +#endif + #define MACID_NUM_SW_LIMIT 32 #define SEC_CAM_ENT_NUM_SW_LIMIT 32 @@ -556,8 +729,15 @@ defined(CONFIG_RTL8723B) || defined(CONFIG_RTL8703B) || defined(CONFIG_RTL8723D) /*#define CONFIG_DOSCAN_IN_BUSYTRAFFIC */ /*#define CONFIG_PHDYM_FW_FIXRATE */ /* Another way to fix tx rate */ -/*Don't release SDIO irq in suspend/resume procedure*/ -#define CONFIG_RTW_SDIO_KEEP_IRQ 0 +/* +* CONFIG_RTW_SDIO_RELEASE_IRQ +* == 0: static allocated +* >= 1: release when suspend +* >= 2: release when IPS +*/ +#ifndef CONFIG_RTW_SDIO_RELEASE_IRQ +#define CONFIG_RTW_SDIO_RELEASE_IRQ 2 +#endif /* * Add by Lucas@2016/02/15 @@ -568,20 +748,8 @@ defined(CONFIG_RTL8723B) || defined(CONFIG_RTL8703B) || defined(CONFIG_RTL8723D) #endif /* CONFIG_SDIO_HCI || CONFIG_USB_RX_AGGREGATION */ #ifdef CONFIG_RTW_HOSTAPD_ACS - #if defined(CONFIG_RTL8812A) || defined(CONFIG_RTL8821A) || defined(CONFIG_RTL8814A) - #ifndef CONFIG_FIND_BEST_CHANNEL - #define CONFIG_FIND_BEST_CHANNEL - #endif - #else - #ifdef CONFIG_FIND_BEST_CHANNEL - #undef CONFIG_FIND_BEST_CHANNEL - #endif - #ifndef CONFIG_RTW_ACS - #define CONFIG_RTW_ACS - #endif - #ifndef CONFIG_BACKGROUND_NOISE_MONITOR - #define CONFIG_BACKGROUND_NOISE_MONITOR - #endif + #ifndef CONFIG_RTW_ACS + #define CONFIG_RTW_ACS #endif #endif @@ -661,12 +829,31 @@ defined(CONFIG_RTL8723B) || defined(CONFIG_RTL8703B) || defined(CONFIG_RTL8723D) #endif #endif +#ifdef CONFIG_WAR_OFFLOAD +#ifndef CONFIG_WOWLAN + #error "WAR OFFLOAD is part of WOWLAN" +#endif +#endif + +#if defined(CONFIG_OFFLOAD_MDNS_V4) || defined(CONFIG_OFFLOAD_MDNS_V6) +#ifndef CONFIG_WOWLAN + #error "mDNS OFFLOAD is part of WOWLAN" +#endif +#ifndef CONFIG_WAR_OFFLOAD + #define CONFIG_WAR_OFFLOAD +#endif +#endif + #define CONFIG_RTW_TPT_MODE #ifdef CONFIG_PCI_BCN_POLLING #define CONFIG_BCN_ICF #endif +#ifndef CONFIG_RTW_MGMT_QUEUE + #define CONFIG_RTW_MGMT_QUEUE +#endif + #ifndef CONFIG_PCI_MSI #define CONFIG_RTW_PCI_MSI_DISABLE #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/drv_types.h b/drivers/net/wireless/realtek/rtl8822ce/include/drv_types.h index 9bdb1fbd..57d03195 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/drv_types.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/drv_types.h @@ -92,6 +92,15 @@ typedef struct _ADAPTER _adapter, ADAPTER, *PADAPTER; #include "../hal/hal_dm.h" #include #include +#ifdef CONFIG_RTW_80211R +#include +#endif +#if defined(CONFIG_RTW_WNM) || defined(CONFIG_RTW_80211K) +#include +#endif +#ifdef CONFIG_RTW_MBO +#include +#endif #include #include #include @@ -105,6 +114,9 @@ typedef struct _ADAPTER _adapter, ADAPTER, *PADAPTER; #include #include #include +#ifdef CONFIG_RTW_WDS +#include "../core/wds/rtw_wds.h" +#endif #ifdef CONFIG_RTW_MESH #include "../core/mesh/rtw_mesh.h" #endif @@ -159,6 +171,8 @@ typedef struct _ADAPTER _adapter, ADAPTER, *PADAPTER; #include #endif /*CONFIG_RTW_REPEATER_SON */ +#include + #define SPEC_DEV_ID_NONE BIT(0) #define SPEC_DEV_ID_DISABLE_HT BIT(1) #define SPEC_DEV_ID_ENABLE_PS BIT(2) @@ -251,7 +265,19 @@ struct registry_priv { u8 tx_bw_mode; #ifdef CONFIG_AP_MODE u8 bmc_tx_rate; + #if CONFIG_RTW_AP_DATA_BMC_TO_UC + u8 ap_src_b2u_flags; + u8 ap_fwd_b2u_flags; + #endif #endif + +#ifdef CONFIG_RTW_MESH + #if CONFIG_RTW_MESH_DATA_BMC_TO_UC + u8 msrc_b2u_flags; + u8 mfwd_b2u_flags; + #endif +#endif + #ifdef CONFIG_80211N_HT u8 ht_enable; /* 0: 20 MHz, 1: 40 MHz, 2: 80 MHz, 3: 160MHz */ @@ -295,12 +321,11 @@ struct registry_priv { #ifdef CONFIG_80211AC_VHT u8 vht_enable; /* 0:disable, 1:enable, 2:auto */ + u8 vht_24g_enable; /* 0:disable, 1:enable */ u8 ampdu_factor; u8 vht_rx_mcs_map[2]; #endif /* CONFIG_80211AC_VHT */ - u8 lowrate_two_xmit; - u8 low_power ; u8 wifi_spec;/* !turbo_mode */ @@ -311,9 +336,20 @@ struct registry_priv { u8 tx_nss; u8 rx_nss; +#ifdef CONFIG_ACTIVE_TPC_REPORT + u8 active_tpc_report; +#endif + +#ifdef CONFIG_REGD_SRC_FROM_OS + enum regd_src_t regd_src; +#endif char alpha2[2]; u8 channel_plan; - u8 excl_chs[MAX_CHANNEL_NUM]; + u8 excl_chs[MAX_CHANNEL_NUM_2G_5G]; +#if CONFIG_IEEE80211_BAND_6GHZ + u8 channel_plan_6g; + u8 excl_chs_6g[MAX_CHANNEL_NUM_6G]; +#endif u8 full_ch_in_p2p_handshake; /* 0: reply only softap channel, 1: reply full channel list*/ #ifdef CONFIG_BT_COEXIST @@ -351,19 +387,24 @@ struct registry_priv { #endif #ifdef CONFIG_80211D - u8 enable80211d; + u8 country_ie_slave_en_role; + u8 country_ie_slave_en_ifbmp; #endif u8 ifname[16]; u8 if2name[16]; - +#if defined(CONFIG_PLATFORM_ANDROID) && (CONFIG_IFACE_NUMBER > 2) + u8 if3name[16]; +#endif u8 notch_filter; /* for pll reference clock selction */ u8 pll_ref_clk_sel; /* define for tx power adjust */ +#if CONFIG_TXPWR_LIMIT u8 RegEnableTxPowerLimit; +#endif u8 RegEnableTxPowerByRate; u8 target_tx_pwr_valid; @@ -371,6 +412,7 @@ struct registry_priv { #if CONFIG_IEEE80211_BAND_5GHZ s8 target_tx_pwr_5g[RF_PATH_MAX][RATE_SECTION_NUM - 1]; #endif + s16 antenna_gain; u8 tsf_update_pause_factor; u8 tsf_update_restore_factor; @@ -455,6 +497,8 @@ struct registry_priv { u8 suspend_type; #endif + u8 recvbuf_nr; + #ifdef CONFIG_SUPPORT_TRX_SHARED u8 trx_share_mode; #endif @@ -522,6 +566,14 @@ struct registry_priv { #ifdef CONFIG_RTL8822C_XCAP_NEW_POLICY u8 rtw_8822c_xcap_overwrite; #endif +#ifdef CONFIG_RTW_MULTI_AP + u8 unassoc_sta_mode_of_stype[UNASOC_STA_SRC_NUM]; + u16 max_unassoc_sta_cnt; +#endif +#if defined(CONFIG_CONCURRENT_MODE) && defined(CONFIG_AP_MODE) + u8 ap_csa_cnt; +#endif + u8 nbi_en; }; /* For registry parameters */ @@ -555,8 +607,29 @@ struct registry_priv { #define REGSTY_IS_BW_2G_SUPPORT(regsty, bw) (REGSTY_BW_2G((regsty)) >= (bw)) #define REGSTY_IS_BW_5G_SUPPORT(regsty, bw) (REGSTY_BW_5G((regsty)) >= (bw)) +#ifdef CONFIG_80211AC_VHT #define REGSTY_IS_11AC_ENABLE(regsty) ((regsty)->vht_enable != 0) #define REGSTY_IS_11AC_AUTO(regsty) ((regsty)->vht_enable == 2) +#define REGSTY_IS_11AC_24G_ENABLE(regsty) ((regsty)->vht_24g_enable != 0) +#else +#define REGSTY_IS_11AC_ENABLE(regsty) 0 +#define REGSTY_IS_11AC_AUTO(regsty) 0 +#define REGSTY_IS_11AC_24G_ENABLE(regsty) 0 +#endif + +#ifdef CONFIG_ACTIVE_TPC_REPORT +#define REGSTY_IS_ACTIVE_TPC_REPORT_CAPABLE(regsty) ((regsty)->active_tpc_report != 0) +#define REGSTY_IS_ACTIVE_TPC_REPORT_AUTO(regsty) ((regsty)->active_tpc_report == 2) +#else +#define REGSTY_IS_ACTIVE_TPC_REPORT_CAPABLE(regsty) 0 +#define REGSTY_IS_ACTIVE_TPC_REPORT_AUTO(regsty) 0 +#endif + +#ifdef CONFIG_REGD_SRC_FROM_OS +#define REGSTY_REGD_SRC_FROM_OS(regsty) ((regsty)->regd_src == REGD_SRC_OS) +#else +#define REGSTY_REGD_SRC_FROM_OS(regsty) 0 +#endif typedef struct rtw_if_operations { int __must_check (*read)(struct dvobj_priv *d, unsigned int addr, void *buf, @@ -787,6 +860,10 @@ struct rtw_traffic_statistics { #define SEC_CAP_CHK_BMC BIT0 #define SEC_CAP_CHK_EXTRA_SEC BIT1 /* 256 bit */ +#define SEC_CAP_CHK_WRITE_CAM_NEW_RULE BIT2 + +#define MACID_DROP BIT0 +#define MACID_DROP_INDIRECT BIT1 #define SEC_STATUS_STA_PK_GK_CONFLICT_DIS_BMC_SEARCH BIT0 @@ -868,23 +945,31 @@ struct macid_ctl_t { u8 op_num[H2C_MSR_ROLE_MAX]; /* number of macid having h2c_msr's OPMODE = 1 for specific ROLE */ struct sta_info *sta[MACID_NUM_SW_LIMIT]; /* corresponding stainfo when macid is not shared */ - + u8 macid_cap; /* macid sleep registers */ #ifdef CONFIG_PROTSEL_MACSLEEP u16 reg_sleep_ctrl; u16 reg_sleep_info; + u16 reg_drop_ctrl; + u16 reg_drop_info; #else u16 reg_sleep_m0; + u16 reg_drop_m0; #if (MACID_NUM_SW_LIMIT > 32) u16 reg_sleep_m1; + u16 reg_drop_m1; #endif #if (MACID_NUM_SW_LIMIT > 64) u16 reg_sleep_m2; + u16 reg_drop_m2; #endif #if (MACID_NUM_SW_LIMIT > 96) u16 reg_sleep_m3; + u16 reg_drop_m3; #endif #endif + u16 macid_txrpt; + u8 macid_txrpt_pgsz; }; /* used for rf_ctl_t.rate_bmp_cck_ofdm */ @@ -940,12 +1025,81 @@ struct macid_ctl_t { #define OFFCHS_LEAVE_OP 2 #define OFFCHS_BACKING_OP 3 +#define TPC_MODE_DISABLE 0 +#define TPC_MODE_MANUAL 1 +#define TPC_MODE_INVALID 2 /* keep last */ + +#define TPC_MANUAL_CONSTRAINT_MAX 600 /* mB */ + +#define COUNTRY_IE_SLAVE_EN_ROLE_STA BIT0 /* pure STA mode */ +#define COUNTRY_IE_SLAVE_EN_ROLE_GC BIT1 /* P2P group client */ + +#define MAX_CSA_CNT 10 + struct rf_ctl_t { - const struct country_chplan *country_ent; + bool disable_sw_chplan; + enum regd_src_t regd_src; + enum rtw_regd_inr regd_inr; + char alpha2[2]; u8 ChannelPlan; +#if CONFIG_IEEE80211_BAND_6GHZ + u8 chplan_6g; +#endif + u8 edcca_mode_2g_override; +#if CONFIG_IEEE80211_BAND_5GHZ + u8 edcca_mode_5g_override; +#endif +#if CONFIG_IEEE80211_BAND_6GHZ + u8 edcca_mode_6g_override; +#endif +#if CONFIG_TXPWR_LIMIT + u8 txpwr_lmt_override; +#endif + +#if defined(CONFIG_80211AX_HE) || defined(CONFIG_80211AC_VHT) + u8 proto_en; +#endif + + /* initial channel plan selectors */ + char init_alpha2[2]; + u8 init_ChannelPlan; +#if CONFIG_IEEE80211_BAND_6GHZ + u8 init_chplan_6g; +#endif + + /* channel plan selectors by user */ + char user_alpha2[2]; /* "\x00\x00" is not set */ + u8 user_ChannelPlan; +#if CONFIG_IEEE80211_BAND_6GHZ + u8 user_chplan_6g; +#endif + +#ifdef CONFIG_80211D + u8 country_ie_slave_en_role; + u8 country_ie_slave_en_ifbmp; + + struct country_ie_slave_record cisr[CONFIG_IFACE_NUMBER]; + u8 effected_cisr_id; +#endif + u8 max_chan_nums; RT_CHANNEL_INFO channel_set[MAX_CHANNEL_NUM]; + struct op_class_pref_t **spt_op_class_ch; + u8 cap_spt_op_class_num; + u8 reg_spt_op_class_num; + u8 cur_spt_op_class_num; struct p2p_channels channel_list; +#ifdef CONFIG_RTW_MBO + struct npref_ch_rtp ch_rtp; +#endif + + s16 antenna_gain; /* mBi */ + + u8 op_class; + u8 op_ch; + s16 op_txpwr_max; /* EIRP in mBm */ + u8 if_op_class[CONFIG_IFACE_NUMBER]; + u8 if_op_ch[CONFIG_IFACE_NUMBER]; _mutex offch_mutex; u8 offch_state; @@ -955,6 +1109,7 @@ struct rf_ctl_t { u32 rate_bmp_ht_by_bw[2]; /* 20MHz, 40MHz. 4SS supported */ u64 rate_bmp_vht_by_bw[4]; /* 20MHz, 40MHz, 80MHz, 160MHz. 4SS supported */ +#if CONFIG_TXPWR_LIMIT u8 highest_ht_rate_bw_bmp; u8 highest_vht_rate_bw_bmp; @@ -962,21 +1117,52 @@ struct rf_ctl_t { _list reg_exc_list; u8 regd_exc_num; _list txpwr_lmt_list; - u8 txpwr_regd_num; - const char *regd_name; + u8 txpwr_lmt_num; + const char *txpwr_lmt_name[BAND_MAX]; u8 txpwr_lmt_2g_cck_ofdm_state; #if CONFIG_IEEE80211_BAND_5GHZ u8 txpwr_lmt_5g_cck_ofdm_state; u8 txpwr_lmt_5g_20_40_ref; #endif +#endif + u8 tpc_mode; + u16 tpc_manual_constraint; /* mB */ bool ch_sel_within_same_band; + u8 adaptivity_en; /* runtime status, hook to phydm */ + u8 edcca_mode_2g; +#if CONFIG_IEEE80211_BAND_5GHZ + u8 edcca_mode_5g; +#endif +#if CONFIG_IEEE80211_BAND_6GHZ + u8 edcca_mode_6g; +#endif + + u8 ap_csa_ch; + u8 ap_csa_switch_cnt; + u8 ap_csa_ch_offset; + u8 ap_csa_ch_width; + u8 ap_csa_en; +#if defined(CONFIG_CONCURRENT_MODE) && defined(CONFIG_AP_MODE) + u8 ap_csa_cnt_input; /* Input from proc, default value is DEFAULT_CSA_CNT */ +#endif + #if CONFIG_DFS u8 csa_ch; + u8 csa_switch_cnt; + u8 csa_ch_offset; + u8 csa_ch_width; + u8 csa_ch_freq_seg0; /* Channel Center Frequency Segment 0 */ + u8 csa_ch_freq_seg1; /* Channel Center Frequency Segment 1 */ +#ifdef CONFIG_ECSA + u8 ecsa_mode; + u8 ecsa_op_class; +#endif #ifdef CONFIG_DFS_MASTER + u8 dfs_region_domain; _timer radar_detect_timer; bool radar_detect_by_others; u8 radar_detect_enabled; @@ -993,6 +1179,7 @@ struct rf_ctl_t { #if CONFIG_DFS_SLAVE_WITH_RADAR_DETECT u8 dfs_slave_with_rd; #endif + u8 dfs_ch_sel_e_flags; u8 dfs_ch_sel_d_flags; u8 dbg_dfs_fake_radar_detect_cnt; @@ -1007,6 +1194,22 @@ struct wow_ctl_t { }; #define WOW_CAP_TKIP_OL BIT0 +#define WOW_CAP_HALMAC_ACCESS_PATTERN_IN_TXFIFO BIT1 + +#define RFCTL_REG_WORLDWIDE(rfctl) (IS_ALPHA2_WORLDWIDE(rfctl->alpha2)) +#define RFCTL_REG_ALPHA2_UNSPEC(rfctl) (IS_ALPHA2_UNSPEC(rfctl->alpha2)) /* ex: only domain code is specified */ + +#ifdef CONFIG_80211AC_VHT +#define RFCTL_REG_EN_11AC(rfctl) (((rfctl)->proto_en & CHPLAN_PROTO_EN_AC) ? 1 : 0) +#else +#define RFCTL_REG_EN_11AC(rfctl) 0 +#endif + +#ifdef CONFIG_80211AX_HE +#define RFCTL_REG_EN_11AX(rfctl) (((rfctl)->proto_en & CHPLAN_PROTO_EN_AX) ? 1 : 0) +#else +#define RFCTL_REG_EN_11AX(rfctl) 0 +#endif #define RTW_CAC_STOPPED 0 #ifdef CONFIG_DFS_MASTER @@ -1053,6 +1256,13 @@ struct halmac_indicator { struct halmacpriv { /* flags */ +#ifdef CONFIG_SDIO_HCI + /* + * Indirect Access for SDIO, + * 0:default, 1:enable, 2:disable + */ + u8 sdio_io_indir; +#endif /* CONFIG_SDIO_HCI */ /* For asynchronous functions */ struct halmac_indicator *indicator; @@ -1138,6 +1348,14 @@ struct dvobj_priv { unsigned char oper_ch_offset;/* PRIME_CHNL_OFFSET */ systime on_oper_ch_time; + u8 union_ch; + u8 union_bw; + u8 union_offset; + /* backup values when union_ch is set to 0 */ + u8 union_ch_bak; + u8 union_bw_bak; + u8 union_offset_bak; + _adapter *padapters[CONFIG_IFACE_NUMBER];/*IFACE_ID_MAX*/ u8 iface_nums; /* total number of ifaces used runtime */ struct mi_state iface_state; @@ -1242,6 +1460,11 @@ struct dvobj_priv { INTF_OPS intf_ops; #endif +#ifdef CONFIG_SDIO_TX_ENABLE_AVAL_INT + u8 tx_aval_int_thr_mode;/* if 0=>threhold set by reques(default) ;if 1=>fixed by proc; if 2: fixed by sdio_tx_max_len */ + u8 tx_aval_int_thr_value; +#endif/*CONFIG_SDIO_TX_ENABLE_AVAL_INT*/ + /*-------- below is for USB INTERFACE --------*/ #ifdef CONFIG_USB_HCI @@ -1291,7 +1514,7 @@ struct dvobj_priv { /* PCI IO map */ unsigned long pci_base_addr; /* device I/O address */ -#ifdef RTK_129X_PLATFORM +#ifdef CONFIG_PLATFORM_RTK129X unsigned long ctrl_start; /* PCI MASK addr */ unsigned long mask_addr; @@ -1338,6 +1561,23 @@ struct dvobj_priv { #ifdef CONFIG_PROTSEL_MACSLEEP struct protsel protsel_macsleep; #endif +#ifdef CONFIG_WOWLAN + u8 bcn_ctrl_clint3_bf_suspend; + u16 rxfltmap2_bf_suspend; + u8 lifetime_en; + u32 pkt_lifetime; + u32 rcr_bf_suspend; + u32 cr_ext_bf_suspend; +#endif /* CONFIG_WOWLAN */ +#if defined (CONFIG_CONCURRENT_MODE) && defined (CONFIG_TSF_SYNC) + u16 sync_tsfr_counter; +#endif + + /* WPAS maintain from w1.fi */ +#define RTW_WPAS_W1FI 0x00 + /* WPAS maintain from android */ +#define RTW_WPAS_ANDROID 0x01 + u8 wpas_type; }; #define DEV_STA_NUM(_dvobj) MSTATE_STA_NUM(&((_dvobj)->iface_state)) @@ -1358,18 +1598,23 @@ struct dvobj_priv { #define DEV_WPS_NUM(_dvobj) MSTATE_WPS_NUM(&((_dvobj)->iface_state)) #define DEV_ROCH_NUM(_dvobj) MSTATE_ROCH_NUM(&((_dvobj)->iface_state)) #define DEV_MGMT_TX_NUM(_dvobj) MSTATE_MGMT_TX_NUM(&((_dvobj)->iface_state)) -#define DEV_U_CH(_dvobj) MSTATE_U_CH(&((_dvobj)->iface_state)) -#define DEV_U_BW(_dvobj) MSTATE_U_BW(&((_dvobj)->iface_state)) -#define DEV_U_OFFSET(_dvobj) MSTATE_U_OFFSET(&((_dvobj)->iface_state)) + +#define DEV_U_CH(_dvobj) ((_dvobj)->union_ch) +#define DEV_U_BW(_dvobj) ((_dvobj)->union_bw) +#define DEV_U_OFFSET(_dvobj) ((_dvobj)->union_offset) #define dvobj_to_pwrctl(dvobj) (&(dvobj->pwrctl_priv)) #define pwrctl_to_dvobj(pwrctl) container_of(pwrctl, struct dvobj_priv, pwrctl_priv) #define dvobj_to_macidctl(dvobj) (&(dvobj->macid_ctl)) #define dvobj_to_sec_camctl(dvobj) (&(dvobj->cam_ctl)) #define dvobj_to_regsty(dvobj) (&(dvobj->padapters[IFACE_ID0]->registrypriv)) -#if defined(CONFIG_IOCTL_CFG80211) && defined(RTW_SINGLE_WIPHY) +#ifdef CONFIG_IOCTL_CFG80211 +#ifdef RTW_SINGLE_WIPHY #define dvobj_to_wiphy(dvobj) ((dvobj)->wiphy) +#else +#define dvobj_to_wiphy(dvobj) (adapter_to_wiphy(dvobj_get_primary_adapter(dvobj))) #endif +#endif /* CONFIG_IOCTL_CFG80211 */ #define dvobj_to_rfctl(dvobj) (&(dvobj->rf_ctl)) #define rfctl_to_dvobj(rfctl) container_of((rfctl), struct dvobj_priv, rf_ctl) @@ -1519,11 +1764,10 @@ struct _ADAPTER { struct hostapd_priv *phostapdpriv; #endif -#ifdef CONFIG_IOCTL_CFG80211 -#ifdef CONFIG_P2P - struct cfg80211_wifidirect_info cfg80211_wdinfo; -#endif /* CONFIG_P2P */ -#endif /* CONFIG_IOCTL_CFG80211 */ +#if defined(CONFIG_P2P) && defined(CONFIG_CONCURRENT_MODE) || defined(CONFIG_IOCTL_CFG80211) + struct roch_info rochinfo; +#endif + u32 setband; ATOMIC_T bandskip; @@ -1612,6 +1856,12 @@ struct _ADAPTER { #endif /* CONFIG_IOCTL_CFG80211 */ +#ifdef CONFIG_PLATFORM_CMAP_INTFS + void *cmap_bss_status_evt; + u32 cmap_bss_status_evt_len; + u8 cmap_unassoc_sta_measure_en; +#endif + #endif /* PLATFORM_LINUX */ #ifdef PLATFORM_FREEBSD @@ -1672,6 +1922,10 @@ struct _ADAPTER { #endif #ifdef CONFIG_AP_MODE u8 bmc_tx_rate; + #if CONFIG_RTW_AP_DATA_BMC_TO_UC + u8 b2u_flags_ap_src; + u8 b2u_flags_ap_fwd; + #endif #endif /* for debug purpose */ @@ -1719,6 +1973,25 @@ struct _ADAPTER { struct mcc_adapter_priv mcc_adapterpriv; #endif /* CONFIG_MCC_MODE */ +#ifdef CONFIG_RTW_WDS + bool use_wds; /* for STA, AP mode */ + + /* for STA mode */ + struct rtw_wds_gptr_table *wds_gpt_records; + ATOMIC_T wds_gpt_record_num; + + /* for AP mode */ + #ifdef CONFIG_AP_MODE + struct rtw_wds_table *wds_paths; + ATOMIC_T wds_path_num; + #endif +#endif /* CONFIG_RTW_WDS */ + +#ifdef CONFIG_RTW_MULTI_AP + u8 multi_ap; + u8 ch_util_threshold; +#endif + #ifdef CONFIG_RTW_MESH struct rtw_mesh_cfg mesh_cfg; struct rtw_mesh_info mesh_info; @@ -1729,17 +2002,16 @@ struct _ADAPTER { unsigned long wrkq_flags; #endif /* CONFIG_RTW_MESH */ -#ifdef CONFIG_ALIBABA_ZEROCONFIG - int genl_bind_pid; - char target_macaddr[ETH_ALEN]; -#endif /* CONFIG_ALIBABA_ZEROCONFIG */ - #ifdef CONFIG_RTW_TOKEN_BASED_XMIT ATOMIC_T tbtx_tx_pause; ATOMIC_T tbtx_remove_tx_pause; u8 tbtx_capability; u32 tbtx_duration; #endif /* CONFIG_RTW_TOKEN_BASED_XMIT */ + +#ifdef RTW_SIMPLE_CONFIG + u8 rtw_simple_config; +#endif }; #define adapter_to_dvobj(adapter) ((adapter)->dvobj) @@ -1755,8 +2027,18 @@ struct _ADAPTER { #define adapter_to_rfctl(adapter) dvobj_to_rfctl(adapter_to_dvobj((adapter))) #define adapter_to_macidctl(adapter) dvobj_to_macidctl(adapter_to_dvobj((adapter))) +#ifdef CONFIG_RTW_WDS +#define adapter_use_wds(adapter) (adapter->use_wds) +#define adapter_set_use_wds(adapter, en) do { \ + (adapter)->use_wds = (en) ? 1 : 0; \ + RTW_INFO(FUNC_ADPT_FMT" set use_wds=%d\n", FUNC_ADPT_ARG(adapter), (adapter)->use_wds); \ + } while (0) +#else +#define adapter_use_wds(adapter) 0 +#endif + #define adapter_mac_addr(adapter) (adapter->mac_addr) -#ifdef CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI +#if defined(CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI) || defined(CONFIG_RTW_SCAN_RAND) #define adapter_pno_mac_addr(adapter) \ ((adapter_wdev_data(adapter))->pno_mac_addr) #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/hal_btcoex.h b/drivers/net/wireless/realtek/rtl8822ce/include/hal_btcoex.h index cd30de27..a2e125ec 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/hal_btcoex.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/hal_btcoex.h @@ -49,6 +49,7 @@ void hal_btcoex_ConnectNotify(PADAPTER padapter, u8 action); void hal_btcoex_MediaStatusNotify(PADAPTER padapter, u8 mediaStatus); void hal_btcoex_SpecialPacketNotify(PADAPTER padapter, u8 pktType); void hal_btcoex_IQKNotify(PADAPTER padapter, u8 state); +void hal_btcoex_WLRFKNotify(PADAPTER padapter, u8 path, u8 type, u8 state); void hal_btcoex_BtInfoNotify(PADAPTER padapter, u8 length, u8 *tmpBuf); void hal_btcoex_BtMpRptNotify(PADAPTER padapter, u8 length, u8 *tmpBuf); void hal_btcoex_SuspendNotify(PADAPTER padapter, u8 state); diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/hal_btcoex_wifionly.h b/drivers/net/wireless/realtek/rtl8822ce/include/hal_btcoex_wifionly.h index d28bfcee..407698ba 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/hal_btcoex_wifionly.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/hal_btcoex_wifionly.h @@ -19,14 +19,15 @@ #include /* Define the ICs that support wifi only cfg in coex. codes */ -#if defined(CONFIG_RTL8723B) || defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8822C) || defined(CONFIG_RTL8814B) +#if defined(CONFIG_RTL8723B) || defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8822C) || defined(CONFIG_RTL8814B) \ +|| defined(CONFIG_RTL8723F) #define CONFIG_BTCOEX_SUPPORT_WIFI_ONLY_CFG 1 #else #define CONFIG_BTCOEX_SUPPORT_WIFI_ONLY_CFG 0 #endif /* Define the ICs that support hal btc common file structure */ -#if defined(CONFIG_RTL8822C) || (defined(CONFIG_RTL8192F) && defined(CONFIG_BT_COEXIST)) +#if defined(CONFIG_RTL8822C) || (defined(CONFIG_RTL8192F) || defined(CONFIG_RTL8723F)&& defined(CONFIG_BT_COEXIST)) #define CONFIG_BTCOEX_SUPPORT_BTC_CMN 1 #else #define CONFIG_BTCOEX_SUPPORT_BTC_CMN 0 diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/hal_com.h b/drivers/net/wireless/realtek/rtl8822ce/include/hal_com.h old mode 100644 new mode 100755 index b0a64f70..a46f95ff --- a/drivers/net/wireless/realtek/rtl8822ce/include/hal_com.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/hal_com.h @@ -118,6 +118,7 @@ #define DESC_RATEVHTSS4MCS7 0x51 #define DESC_RATEVHTSS4MCS8 0x52 #define DESC_RATEVHTSS4MCS9 0x53 +#define DESC_RATE_NUM 0x54 #define IS_CCK_HRATE(_rate) ((_rate) <= DESC_RATE11M) #define IS_OFDM_HRATE(_rate) ((_rate) >= DESC_RATE6M && (_rate) <= DESC_RATE54M) @@ -142,92 +143,8 @@ #define HRARE_SS_NUM(_rate) (IS_1SS_HRATE(_rate) ? 1 : (IS_2SS_HRATE(_rate) ? 2 : (IS_3SS_HRATE(_rate) ? 3 : (IS_4SS_HRATE(_rate) ? 4 : 0)))) -#define HDATA_RATE(rate)\ - (rate == DESC_RATE1M) ? "CCK_1M" :\ - (rate == DESC_RATE2M) ? "CCK_2M" :\ - (rate == DESC_RATE5_5M) ? "CCK5_5M" :\ - (rate == DESC_RATE11M) ? "CCK_11M" :\ - (rate == DESC_RATE6M) ? "OFDM_6M" :\ - (rate == DESC_RATE9M) ? "OFDM_9M" :\ - (rate == DESC_RATE12M) ? "OFDM_12M" :\ - (rate == DESC_RATE18M) ? "OFDM_18M" :\ - (rate == DESC_RATE24M) ? "OFDM_24M" :\ - (rate == DESC_RATE36M) ? "OFDM_36M" :\ - (rate == DESC_RATE48M) ? "OFDM_48M" :\ - (rate == DESC_RATE54M) ? "OFDM_54M" :\ - (rate == DESC_RATEMCS0) ? "MCS0" :\ - (rate == DESC_RATEMCS1) ? "MCS1" :\ - (rate == DESC_RATEMCS2) ? "MCS2" :\ - (rate == DESC_RATEMCS3) ? "MCS3" :\ - (rate == DESC_RATEMCS4) ? "MCS4" :\ - (rate == DESC_RATEMCS5) ? "MCS5" :\ - (rate == DESC_RATEMCS6) ? "MCS6" :\ - (rate == DESC_RATEMCS7) ? "MCS7" :\ - (rate == DESC_RATEMCS8) ? "MCS8" :\ - (rate == DESC_RATEMCS9) ? "MCS9" :\ - (rate == DESC_RATEMCS10) ? "MCS10" :\ - (rate == DESC_RATEMCS11) ? "MCS11" :\ - (rate == DESC_RATEMCS12) ? "MCS12" :\ - (rate == DESC_RATEMCS13) ? "MCS13" :\ - (rate == DESC_RATEMCS14) ? "MCS14" :\ - (rate == DESC_RATEMCS15) ? "MCS15" :\ - (rate == DESC_RATEMCS16) ? "MCS16" :\ - (rate == DESC_RATEMCS17) ? "MCS17" :\ - (rate == DESC_RATEMCS18) ? "MCS18" :\ - (rate == DESC_RATEMCS19) ? "MCS19" :\ - (rate == DESC_RATEMCS20) ? "MCS20" :\ - (rate == DESC_RATEMCS21) ? "MCS21" :\ - (rate == DESC_RATEMCS22) ? "MCS22" :\ - (rate == DESC_RATEMCS23) ? "MCS23" :\ - (rate == DESC_RATEMCS24) ? "MCS24" :\ - (rate == DESC_RATEMCS25) ? "MCS25" :\ - (rate == DESC_RATEMCS26) ? "MCS26" :\ - (rate == DESC_RATEMCS27) ? "MCS27" :\ - (rate == DESC_RATEMCS28) ? "MCS28" :\ - (rate == DESC_RATEMCS29) ? "MCS29" :\ - (rate == DESC_RATEMCS30) ? "MCS30" :\ - (rate == DESC_RATEMCS31) ? "MCS31" :\ - (rate == DESC_RATEVHTSS1MCS0) ? "VHTSS1MCS0" :\ - (rate == DESC_RATEVHTSS1MCS1) ? "VHTSS1MCS1" :\ - (rate == DESC_RATEVHTSS1MCS2) ? "VHTSS1MCS2" :\ - (rate == DESC_RATEVHTSS1MCS3) ? "VHTSS1MCS3" :\ - (rate == DESC_RATEVHTSS1MCS4) ? "VHTSS1MCS4" :\ - (rate == DESC_RATEVHTSS1MCS5) ? "VHTSS1MCS5" :\ - (rate == DESC_RATEVHTSS1MCS6) ? "VHTSS1MCS6" :\ - (rate == DESC_RATEVHTSS1MCS7) ? "VHTSS1MCS7" :\ - (rate == DESC_RATEVHTSS1MCS8) ? "VHTSS1MCS8" :\ - (rate == DESC_RATEVHTSS1MCS9) ? "VHTSS1MCS9" :\ - (rate == DESC_RATEVHTSS2MCS0) ? "VHTSS2MCS0" :\ - (rate == DESC_RATEVHTSS2MCS1) ? "VHTSS2MCS1" :\ - (rate == DESC_RATEVHTSS2MCS2) ? "VHTSS2MCS2" :\ - (rate == DESC_RATEVHTSS2MCS3) ? "VHTSS2MCS3" :\ - (rate == DESC_RATEVHTSS2MCS4) ? "VHTSS2MCS4" :\ - (rate == DESC_RATEVHTSS2MCS5) ? "VHTSS2MCS5" :\ - (rate == DESC_RATEVHTSS2MCS6) ? "VHTSS2MCS6" :\ - (rate == DESC_RATEVHTSS2MCS7) ? "VHTSS2MCS7" :\ - (rate == DESC_RATEVHTSS2MCS8) ? "VHTSS2MCS8" :\ - (rate == DESC_RATEVHTSS2MCS9) ? "VHTSS2MCS9" :\ - (rate == DESC_RATEVHTSS3MCS0) ? "VHTSS3MCS0" :\ - (rate == DESC_RATEVHTSS3MCS1) ? "VHTSS3MCS1" :\ - (rate == DESC_RATEVHTSS3MCS2) ? "VHTSS3MCS2" :\ - (rate == DESC_RATEVHTSS3MCS3) ? "VHTSS3MCS3" :\ - (rate == DESC_RATEVHTSS3MCS4) ? "VHTSS3MCS4" :\ - (rate == DESC_RATEVHTSS3MCS5) ? "VHTSS3MCS5" :\ - (rate == DESC_RATEVHTSS3MCS6) ? "VHTSS3MCS6" :\ - (rate == DESC_RATEVHTSS3MCS7) ? "VHTSS3MCS7" :\ - (rate == DESC_RATEVHTSS3MCS8) ? "VHTSS3MCS8" :\ - (rate == DESC_RATEVHTSS3MCS9) ? "VHTSS3MCS9" :\ - (rate == DESC_RATEVHTSS4MCS0) ? "VHTSS4MCS0" :\ - (rate == DESC_RATEVHTSS4MCS1) ? "VHTSS4MCS1" :\ - (rate == DESC_RATEVHTSS4MCS2) ? "VHTSS4MCS2" :\ - (rate == DESC_RATEVHTSS4MCS3) ? "VHTSS4MCS3" :\ - (rate == DESC_RATEVHTSS4MCS4) ? "VHTSS4MCS4" :\ - (rate == DESC_RATEVHTSS4MCS5) ? "VHTSS4MCS5" :\ - (rate == DESC_RATEVHTSS4MCS6) ? "VHTSS4MCS6" :\ - (rate == DESC_RATEVHTSS4MCS7) ? "VHTSS4MCS7" :\ - (rate == DESC_RATEVHTSS4MCS8) ? "VHTSS4MCS8" :\ - (rate == DESC_RATEVHTSS4MCS9) ? "VHTSS4MCS9" :\ - "UNKNOWN" +extern const char * const _HDATA_RATE[]; +#define HDATA_RATE(rate) ((rate) >= DESC_RATE_NUM ? _HDATA_RATE[DESC_RATE_NUM] : _HDATA_RATE[rate]) enum { UP_LINK, @@ -268,11 +185,26 @@ typedef enum _WAKEUP_REASON{ RTIME_FAIL_DMA_IDLE = 0x42, RTIME_FAIL_DMA_PAUSE = 0x43, RX_PNO = 0x55, + #ifdef CONFIG_WOW_KEEP_ALIVE_PATTERN + WOW_KEEPALIVE_ACK_TIMEOUT = 0x60, + WOW_KEEPALIVE_WAKE = 0x61, + #endif/*CONFIG_WOW_KEEP_ALIVE_PATTERN*/ AP_OFFLOAD_WAKEUP = 0x66, + NO_WAKE_RX_PAIRWISEKEY = 0xB0, + NO_WAKE_RX_GTK = 0xB1, + NO_WAKE_RX_DISASSOC = 0xB2, + NO_WAKE_RX_DEAUTH = 0xB3, + NO_WAKE_RX_EAPREQ_IDENTIFY = 0xB4, + NO_WAKE_FW_DECISION_DISCONNECT = 0xB5, CLK_32K_UNLOCK = 0xFD, CLK_32K_LOCK = 0xFE }WAKEUP_REASON; +typedef enum _BCN_EARLY_INT_CASE{ + TDLS_BCN_ERLY_ON, + TDLS_BCN_ERLY_OFF +}BCN_EARLY_INT_CASE; + /* * Queue Select Value in TxDesc * */ @@ -310,7 +242,7 @@ struct dbg_rx_counter { u8 rtw_hal_get_port(_adapter *adapter); #ifdef CONFIG_MBSSID_CAM - #define DBG_MBID_CAM_DUMP + /*#define DBG_MBID_CAM_DUMP*/ void rtw_mbid_cam_init(struct dvobj_priv *dvobj); void rtw_mbid_cam_deinit(struct dvobj_priv *dvobj); @@ -354,7 +286,8 @@ void dump_chip_info(HAL_VERSION ChipVersion); #define BAND_CAP_2G BIT0 #define BAND_CAP_5G BIT1 -#define BAND_CAP_BIT_NUM 2 +#define BAND_CAP_6G BIT2 +#define BAND_CAP_BIT_NUM 3 #define BW_CAP_5M BIT0 #define BW_CAP_10M BIT1 @@ -395,13 +328,11 @@ u8 hal_largest_bw(_adapter *adapter, u8 in_bw); bool hal_chk_wl_func(_adapter *adapter, u8 func); -int hal_com_config_channel_plan( +void hal_com_config_channel_plan( PADAPTER padapter, - char *hw_alpha2, + const char *hw_alpha2, u8 hw_chplan, - char *sw_alpha2, - u8 sw_chplan, - u8 def_chplan, + u8 hw_chplan_6g, BOOLEAN AutoLoadFail ); @@ -417,9 +348,12 @@ HAL_IsLegalChannel( u32 Channel ); -u8 MRateToHwRate(u8 rate); +u8 MRateToHwRate(enum MGN_RATE rate); -u8 hw_rate_to_m_rate(u8 rate); +u8 hw_rate_to_m_rate(u8 hw_rate); +#ifdef CONFIG_RTW_DEBUG +void dump_hw_rate_map_test(void *sel); +#endif void HalSetBrateCfg( PADAPTER Adapter, @@ -436,6 +370,7 @@ void rtw_dump_fw_info(void *sel, _adapter *adapter); void rtw_restore_hw_port_cfg(_adapter *adapter); void rtw_mi_set_mac_addr(_adapter *adapter);/*set mac addr when hal_init for all iface*/ void rtw_hal_dump_macaddr(void *sel, _adapter *adapter); +void rtw_hal_set_hw_macaddr(PADAPTER adapter, u8 *mac_addr); void rtw_init_hal_com_default_value(PADAPTER Adapter); @@ -469,6 +404,7 @@ u8 rtw_hal_rcr_check(_adapter *adapter, u32 check_bit); u8 rtw_hal_rcr_add(_adapter *adapter, u32 add); u8 rtw_hal_rcr_clear(_adapter *adapter, u32 clear); void rtw_hal_rcr_set_chk_bssid(_adapter *adapter, u8 self_action); +void rtw_hal_rcr_set_chk_bssid_act_non(_adapter *adapter); void rtw_iface_enable_tsf_update(_adapter *adapter); void rtw_iface_disable_tsf_update(_adapter *adapter); @@ -498,11 +434,15 @@ void rtw_hal_update_tx_aclt(_adapter *adapter); #endif void hw_var_port_switch(_adapter *adapter); +#ifdef CONFIG_FW_MULTI_PORT_SUPPORT +u8 rtw_hal_set_ap_bcn_imr_cmd(struct _ADAPTER *adapter, u8 enable); +#endif void rtw_var_set_basic_rate(PADAPTER padapter, u8 *val); u8 SetHwReg(PADAPTER padapter, u8 variable, u8 *val); void GetHwReg(PADAPTER padapter, u8 variable, u8 *val); void rtw_hal_check_rxfifo_full(_adapter *adapter); void rtw_hal_reqtxrpt(_adapter *padapter, u8 macid); +int rtw_get_sta_tx_stat(_adapter *adapter, u8 mac_id, u8 *macaddr); u8 SetHalDefVar(_adapter *adapter, HAL_DEF_VARIABLE variable, void *value); u8 GetHalDefVar(_adapter *adapter, HAL_DEF_VARIABLE variable, void *value); @@ -618,9 +558,11 @@ void rtw_hal_ch_sw_iqk_info_backup(_adapter *adapter); void rtw_hal_ch_sw_iqk_info_restore(_adapter *padapter, u8 ch_sw_use_case); #ifdef CONFIG_GPIO_WAKEUP - void rtw_hal_switch_gpio_wl_ctrl(_adapter *padapter, u8 index, u8 enable); - void rtw_hal_set_output_gpio(_adapter *padapter, u8 index, u8 outputval); - void rtw_hal_set_input_gpio(_adapter *padapter, u8 index); +void rtw_hal_switch_gpio_wl_ctrl(_adapter *padapter, u8 index, u8 enable); +void rtw_hal_set_output_gpio(_adapter *padapter, u8 index, u8 outputval); +void rtw_hal_set_input_gpio(_adapter *padapter, u8 index); +#define GPIO_OUTPUT_LOW 0 +#define GPIO_OUTPUT_HIGH 1 #endif #ifdef CONFIG_LOAD_PHY_PARA_FROM_FILE @@ -669,6 +611,7 @@ enum lps_pg_hdl_id { LPS_PG_PHYDM_EN, }; +u8 rtw_hal_set_lps_pg_info_cmd(_adapter *adapter); u8 rtw_hal_set_lps_pg_info(_adapter *adapter); #endif @@ -686,9 +629,15 @@ struct rtl_wow_pattern { }; void rtw_wow_pattern_cam_dump(_adapter *adapter); +void rtw_dump_wow_pattern(void *sel, struct rtl_wow_pattern *pwow_pattern, u8 idx); #ifdef CONFIG_WOW_PATTERN_HW_CAM void rtw_wow_pattern_read_cam_ent(_adapter *adapter, u8 id, struct rtl_wow_pattern *context); -void rtw_dump_wow_pattern(void *sel, struct rtl_wow_pattern *pwow_pattern, u8 idx); +#endif + +#ifdef CONFIG_PNO_SUPPORT +struct pno_ssid; +void rtw_hal_construct_ProbeReq(_adapter *padapter, u8 *pframe, + u32 *pLength, struct pno_ssid *ssid); #endif struct rtw_ndp_info { @@ -710,7 +659,9 @@ struct rtw_ndp_info { SET_BITS_TO_LE_4BYTE(target + 2, 0, 8, _value) #endif /*CONFIG_WOWLAN*/ +#ifdef CONFIG_PROC_DEBUG void rtw_dump_phy_cap(void *sel, _adapter *adapter); +#endif void rtw_dump_rsvd_page(void *sel, _adapter *adapter, u8 page_offset, u8 page_num); #ifdef CONFIG_SUPPORT_FIFO_DUMP void rtw_dump_fifo(void *sel, _adapter *adapter, u8 fifo_sel, u32 fifo_addr, u32 fifo_size); @@ -765,7 +716,8 @@ void rtw_hal_beamforming_config_csirate(PADAPTER adapter); #endif #endif -u8 phy_get_current_tx_num(PADAPTER pAdapter, u8 Rate); +u8 phy_get_capable_tx_num(_adapter *adapter, enum MGN_RATE rate); +u8 phy_get_current_tx_num(_adapter *adapter, enum MGN_RATE rate); #ifdef CONFIG_RTL8812A u8 * rtw_hal_set_8812a_vendor_ie(_adapter *padapter , u8 *pframe ,uint *frlen ); @@ -798,4 +750,9 @@ static inline void rtw_enter_protsel_macsleep(_adapter *padapter, u8 port_sel) { static inline bool rtw_assert_protsel_macsleep(_adapter *padapter, u32 addr, u8 len) {return true; } static inline void rtw_leave_protsel_macsleep(_adapter *padapter) {} #endif + +#ifndef RTW_HALMAC +void rtw_hal_init_sifs_backup(_adapter *adapter); +#endif + #endif /* __HAL_COMMON_H__ */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/hal_com_h2c.h b/drivers/net/wireless/realtek/rtl8822ce/include/hal_com_h2c.h index d3db4e56..3ab2a4b0 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/include/hal_com_h2c.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/hal_com_h2c.h @@ -109,8 +109,17 @@ enum h2c_cmd { H2C_D0_SCAN_OFFLOAD_INFO = 0x86, H2C_CHNL_SWITCH_OFFLOAD = 0x87, H2C_AOAC_RSVDPAGE3 = 0x88, + H2C_GPIO_CUSTOM = 0x89, H2C_P2P_OFFLOAD_RSVD_PAGE = 0x8A, H2C_P2P_OFFLOAD = 0x8B, +#ifdef CONFIG_PNO_SUPPORT + H2C_NLO_INFO = 0x8C, /* for ICs that have HAMMAC */ +#endif + H2C_WAR_OFFLOAD = 0x8D, + H2C_WAROFLD_RSVDPAGE1 = 0x8E, +#ifdef CONFIG_WOW_KEEP_ALIVE_PATTERN + H2C_UDP_KEEPALIVE = 0x90, +#endif /*CONFIG_WOW_KEEP_ALIVE_PATTERN*/ #ifdef CONFIG_FW_HANDLE_TXBCN H2C_FW_BCN_OFFLOAD = 0xBA, #endif @@ -125,6 +134,7 @@ enum h2c_cmd { H2C_CUSTOMER_STR_W2 = 0xC7, H2C_CUSTOMER_STR_W3 = 0xC8, H2C_BT_UNKNOWN_DEVICE_WA = 0xD1, + H2C_SET_AP_BCN_IMR = 0xD8, #ifdef DBG_FW_DEBUG_MSG_PKT H2C_FW_DBG_MSG_PKT = 0xE1, #endif /*DBG_FW_DEBUG_MSG_PKT*/ @@ -139,12 +149,17 @@ enum h2c_cmd { #else #define H2C_MEDIA_STATUS_RPT_LEN 3 #endif +#define H2C_GPIO_CUSTOM_LEN 3 #define H2C_KEEP_ALIVE_CTRL_LEN 2 +#ifdef CONFIG_WOW_KEEP_ALIVE_PATTERN +#define H2C_KEEP_ALIVE_PATTERN_LEN 7 +#endif /*CONFIG_WOW_KEEP_ALIVE_PATTERN*/ #define H2C_DISCON_DECISION_LEN 3 #define H2C_AP_OFFLOAD_LEN 3 #define H2C_AP_WOW_GPIO_CTRL_LEN 4 #define H2C_AP_PS_LEN 2 #define H2C_PWRMODE_LEN 7 +#define H2C_AP_BCN_MIR_LEN 1 #define H2C_PSTUNEPARAM_LEN 4 #define H2C_MACID_CFG_LEN 7 #define H2C_BTMP_OPER_LEN 5 @@ -161,6 +176,9 @@ enum h2c_cmd { #define H2C_PROBERSP_RSVDPAGE_LEN 5 #define H2C_P2PRSVDPAGE_LOC_LEN 5 #define H2C_P2P_OFFLOAD_LEN 3 +#ifdef CONFIG_PNO_SUPPORT +#define H2C_NLO_INFO_LEN 2 +#endif #ifdef CONFIG_MCC_MODE #define H2C_MCC_CTRL_LEN 7 #ifdef CONFIG_MCC_MODE_V2 @@ -194,16 +212,23 @@ enum h2c_cmd { #define H2C_FW_DBG_MSG_PKT_LEN 2 #endif /*DBG_FW_DEBUG_MSG_PKT*/ -#define H2C_SINGLE_CHANNELSWITCH_V2_LEN 2 +#define H2C_SINGLE_CHANNELSWITCH_V2_LEN 3 #define H2C_BT_UNKNOWN_DEVICE_WA_LEN 1 #ifdef CONFIG_SUPPORT_DYNAMIC_TXPWR #define H2C_FW_CRC5_SEARCH_LEN 7 #endif +#ifdef CONFIG_WAR_OFFLOAD +#define H2C_WAR_OFFLOAD_LEN 3 +#define H2C_WAROFLD_RSVDPAGE1_LEN 6 +#endif /* CONFIG_WAR_OFFLOAD */ + + #define eq_mac_addr(a, b) (((a)[0] == (b)[0] && (a)[1] == (b)[1] && (a)[2] == (b)[2] && (a)[3] == (b)[3] && (a)[4] == (b)[4] && (a)[5] == (b)[5]) ? 1 : 0) #define cp_mac_addr(des, src) ((des)[0] = (src)[0], (des)[1] = (src)[1], (des)[2] = (src)[2], (des)[3] = (src)[3], (des)[4] = (src)[4], (des)[5] = (src)[5]) #define cpIpAddr(des, src) ((des)[0] = (src)[0], (des)[1] = (src)[1], (des)[2] = (src)[2], (des)[3] = (src)[3]) +#define cpIpv6Addr(des, src) ((des)[0] = (src)[0], (des)[1] = (src)[1], (des)[2] = (src)[2], (des)[3] = (src)[3], (des)[4] = (src)[4], (des)[5] = (src)[5], (des)[6] = (src)[6], (des)[7] = (src)[7], (des)[8] = (src)[8], (des)[9] = (src)[9], (des)[10] = (src)[10], (des)[11] = (src)[11], (des)[12] = (src)[12], (des)[13] = (src)[13], (des)[14] = (src)[14], (des)[15] = (src)[15]) #if defined(CONFIG_WOWLAN) || defined(CONFIG_AP_WOWLAN) @@ -258,6 +283,40 @@ enum h2c_cmd { #define GET_H2CCMD_MSRRPT_PARM_MIRACAST_SINK(__pH2CCmd) LE_BITS_TO_1BYTE(((u8 *)(__pH2CCmd)), 3, 1) #define GET_H2CCMD_MSRRPT_PARM_ROLE(__pH2CCmd) LE_BITS_TO_1BYTE(((u8 *)(__pH2CCmd)), 4, 4) +#ifdef CONFIG_WAR_OFFLOAD +#define SET_IPHDR_VERSION(__pHeader, __Value) WriteLE1Byte(((u8 *)(__pHeader)) + 0, __Value) +#define SET_IPHDR_DSCP(__pHeader, __Value) WriteLE1Byte(((u8 *)(__pHeader)) + 1, __Value) +#define SET_IPHDR_TOTAL_LEN(__pHeader, __Value) WriteLE2Byte(((u8 *)(__pHeader)) + 2, __Value) +#define SET_IPHDR_IDENTIFIER(__pHeader, __Value) WriteLE2Byte(((u8 *)(__pHeader)) + 4, __Value) +#define SET_IPHDR_FLAGS(__pHeader, __Value) WriteLE1Byte(((u8 *)(__pHeader)) + 6, __Value) +#define SET_IPHDR_FRAG_OFFSET(__pHeader, __Value) WriteLE1Byte(((u8 *)(__pHeader)) + 7, __Value) +#define SET_IPHDR_TTL(__pHeader, __Value) WriteLE1Byte(((u8 *)(__pHeader)) + 8, __Value) +#define SET_IPHDR_PROTOCOL(__pHeader, __Value) WriteLE1Byte(((u8 *)(__pHeader)) + 9, __Value) +#define SET_IPHDR_HDR_CHECKSUM(__pHeader, __Value) WriteLE2Byte(((u8 *)(__pHeader)) + 10, __Value) +#define SET_IPHDR_SRC_IP_ADDR(__pHeader, __Value) cpIpAddr(((u8 *)(__pHeader))+12, (u8 *)(__Value)) +#define SET_IPHDR_DST_IP_ADDR(__pHeader, __Value) cpIpAddr(((u8 *)(__pHeader))+16, (u8 *)(__Value)) +#define SET_UDP_SRC_PORT(__pHeader, __Value) WriteLE2Byte(((u8 *)(__pHeader)) + 0, __Value) +#define SET_UDP_DST_PORT(__pHeader, __Value) WriteLE2Byte(((u8 *)(__pHeader)) + 2, __Value) +#define SET_UDP_LEN(__pHeader, __Value) WriteLE2Byte(((u8 *)(__pHeader)) + 4, __Value) +#define SET_UDP_CHECKSUM(__pHeader, __Value) WriteLE2Byte(((u8 *)(__pHeader)) + 6, __Value) + +#define SET_MDNS_HDR_FLAG(__pHeader, __Value) WriteLE1Byte(((u8 *)(__pHeader)) + 2, __Value) + +#endif /* CONFIG_WAR_OFFLOAD */ + +#ifdef CONFIG_OFFLOAD_MDNS_V6 +#define SET_IPHDRV6_VERSION(__pHeader, __Value) SET_BITS_TO_LE_1BYTE(__pHeader, 4, 4, __Value) +#define SET_IPHDRV6_TRAFFIC_CLASS(__pHeader, __Value) SET_BITS_TO_LE_2BYTE(__pHeader, 4, 8, __Value) +#define SET_IPHDRV6_FLOW_LABEL(__pHeader, __Value) SET_BITS_TO_LE_4BYTE(__pHeader, 12, 20, __Value) +#define SET_IPHDRV6_PAYLOAD_LENGTH(__pHeader, __Value) SET_BITS_TO_LE_2BYTE(((u8 *)(__pHeader)) + 4, 0, 16, __Value) +#define SET_IPHDRV6_NEXT_HEADER(__pHeader, __Value) SET_BITS_TO_LE_1BYTE((__pHeader) + 6, 0, 8, __Value) +#define SET_IPHDRV6_HOP_LIMIT(__pHeader, __Value) SET_BITS_TO_LE_1BYTE((__pHeader) + 7, 0, 8, __Value) +#define SET_IPHDRV6_SRC_IP_ADDR(__pHeader, __Value) cpIpv6Addr((u8 *)(__pHeader) + 8, (u8 *)(__Value)) +#define SET_IPHDRV6_DST_IP_ADDR(__pHeader, __Value) cpIpv6Addr((u8 *)(__pHeader) + 24, (u8 *)(__Value)) +#endif + + + #define H2C_MSR_ROLE_RSVD 0 #define H2C_MSR_ROLE_STA 1 #define H2C_MSR_ROLE_AP 2 @@ -298,6 +357,26 @@ s32 rtw_hal_set_FwMediaStatusRpt_range_cmd(_adapter *adapter, bool opmode, bool #define SET_H2CCMD_DISCONDECISION_PARM_TRY_PKT_NUM(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd+2, 0, 8, __Value) #define SET_H2CCMD_DISCONDECISION_PARM_TRY_OK_BCN(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd+3, 0, 8, __Value) +/*UDP_KEEP_ALIVE 0x90*/ +#ifdef CONFIG_WOW_KEEP_ALIVE_PATTERN +/*data 0*/ +#define SET_H2CCMD_UDP_KEEP_ALIVE_EN(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd, 0, 1, __Value); +#define SET_H2CCMD_UDP_KEEP_ALIVE_PACKET_LOC(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd, 1, 7, __Value); +/*data 1*/ +#define SET_H2CCMD_UDP_KEEP_ALIVE_ACK_PATTERN_EN(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd+1, 7, 1, __Value); +#define SET_H2CCMD_UDP_KEEP_ALIVE_ACK_PATTERN_idx(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd+1, 0, 7, __Value); +/*data 2*/ +#define SET_H2CCMD_UDP_KEEP_ALIVE_WAKE_EN(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd+2, 7, 1, __Value); +#define SET_H2CCMD_UDP_KEEP_ALIVE_WAKE_PATTERN_idx(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd+2, 0, 7, __Value); +/*data3*/ +#define SET_H2CCMD_UDP_KEEP_ALIVE_PERIOD_LOW_BIT(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd+3, 0, 8, __Value); +/*data4*/ +#define SET_H2CCMD_UDP_KEEP_ALIVE_PERIOD_HI_BIT(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd+4, 0, 8, __Value); +/*data5*/ +#define SET_H2CCMD_UDP_KEEP_ALIVE_RETRY_INTERVAL(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd+5, 0, 8, __Value); +/*data6*/ +#define SET_H2CCMD_UDP_KEEP_ALIVE_RETRY_LIMIT(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd+6, 0, 8, __Value); +#endif /*CONFIG_WOW_KEEP_ALIVE_PATTERN*/ #ifdef CONFIG_RTW_CUSTOMER_STR #define RTW_CUSTOMER_STR_LEN 16 #define RTW_CUSTOMER_STR_FMT "%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x" @@ -330,10 +409,11 @@ s32 rtw_hal_customer_str_write(_adapter *adapter, const u8 *cs); #endif /* CONFIG_RTW_CUSTOMER_STR */ #ifdef CONFIG_FW_OFFLOAD_SET_TXPWR_IDX -#define H2C_TXPWR_IDX_OFFLOAD_LEN 3 +#define H2C_TXPWR_IDX_OFFLOAD_LEN 4 #define SET_H2CCMD_TXPWR_IDX_CCK(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd, 0, 8, __Value) #define SET_H2CCMD_TXPWR_IDX_OFDM(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd + 1, 0, 8, __Value) -#define SET_H2CCMD_TXPWR_IDX_HT1SS(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd + 2, 0, 8, __Value) +#define SET_H2CCMD_TXPWR_IDX_HT1SS(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd + 2, 0, 8, __Value) +#define SET_H2CCMD_TXPWR_IDX_EN(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd + 3, 0, 1, __Value) #endif /* _AP_Offload 0x08 */ @@ -343,6 +423,18 @@ s32 rtw_hal_customer_str_write(_adapter *adapter, const u8 *cs); /* _Probersp_RsvdPage 0x0a */ #define SET_H2CCMD_AP_WOWLAN_RSVDPAGE_LOC_ProbeRsp(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd, 0, 8, __Value) /* _Probersp_RsvdPage 0x13 */ + +#define SET_H2CCMD_PWRMODE_PARM_MODE(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd, 0, 8, __Value) +#define SET_H2CCMD_PWRMODE_PARM_RLBM(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE((__pH2CCmd)+1, 0, 4, __Value) +#define SET_H2CCMD_PWRMODE_PARM_SMART_PS(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE((__pH2CCmd)+1, 4, 4, __Value) +#define SET_H2CCMD_PWRMODE_PARM_BCN_PASS_TIME(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE((__pH2CCmd)+2, 0, 8, __Value) +#define SET_H2CCMD_PWRMODE_PARM_ALL_QUEUE_UAPSD(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE((__pH2CCmd)+3, 0, 8, __Value) +#define SET_H2CCMD_PWRMODE_PARM_BCN_EARLY_C2H_RPT(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE((__pH2CCmd)+3, 2, 1, __Value) +#define SET_H2CCMD_PWRMODE_PARM_PWR_STATE(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE((__pH2CCmd)+4, 0, 8, __Value) + +#define GET_H2CCMD_PWRMODE_PARM_MODE(__pH2CCmd) LE_BITS_TO_1BYTE(__pH2CCmd, 0, 8) +/* _PWR_MOD_CMD_0x20 */ + #define SET_H2CCMD_AP_WOW_GPIO_CTRL_INDEX(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd, 0, 4, __Value) #define SET_H2CCMD_AP_WOW_GPIO_CTRL_C2H_EN(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd, 4, 1, __Value) #define SET_H2CCMD_AP_WOW_GPIO_CTRL_PLUS(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd, 5, 1, __Value) @@ -484,7 +576,9 @@ s32 rtw_hal_customer_str_write(_adapter *adapter, const u8 *cs); #define SET_H2CCMD_SINGLE_CH_SWITCH_V2_CENTRAL_CH_NUM(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd, 0, 8, __Value) #define SET_H2CCMD_SINGLE_CH_SWITCH_V2_PRIMARY_CH_IDX(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE((__pH2CCmd) + 1, 0, 4, __Value) #define SET_H2CCMD_SINGLE_CH_SWITCH_V2_BW(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE((__pH2CCmd) + 1, 4, 4, __Value) - +#define SET_H2CCMD_SINGLE_CH_SWITCH_V2_PWR_IDX_UPDATE_EN(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE((__pH2CCmd) + 2, 0, 1, __Value) +#define SET_H2CCMD_SINGLE_CH_SWITCH_V2_IQK_UPDATE_EN(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE((__pH2CCmd) + 2, 1, 1, __Value) +#define SET_H2CCMD_SINGLE_CH_SWITCH_V2_CH_IDX(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE((__pH2CCmd) + 2, 4, 4, __Value) #if defined(CONFIG_BT_COEXIST) && defined(CONFIG_FW_MULTI_PORT_SUPPORT) #define SET_H2CCMD_BTC_WL_PORT_ID(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd, 0, 4, __Value) @@ -562,8 +656,18 @@ s32 rtw_hal_customer_str_write(_adapter *adapter, const u8 *cs); #define SET_H2CCMD_AOAC_RSVDPAGE_LOC_PROBE_PACKET(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE((__pH2CCmd)+1, 0, 8, __Value) #define SET_H2CCMD_AOAC_RSVDPAGE_LOC_SCAN_INFO(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE((__pH2CCmd)+2, 0, 8, __Value) #define SET_H2CCMD_AOAC_RSVDPAGE_LOC_SSID_INFO(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE((__pH2CCmd)+3, 0, 8, __Value) + +/* NLO SCAN offload for ICs that have HALMAC */ +#define SET_H2CCMD_NLO_FUN_EN(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE((__pH2CCmd), 0, 1, __Value) +#define SET_H2CCMD_NLO_PS_32K(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE((__pH2CCmd), 1, 1, __Value) +#define SET_H2CCMD_NLO_LOC_NLO_INFO(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE((__pH2CCmd)+1, 0, 8, __Value) #endif /* CONFIG_PNO_SUPPORT */ +/* _GPIO_CUSTOM_CMD_0x89 */ +#define SET_H2CCMD_CUSTOMERID(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd, 0, 8, __Value) +#define SET_H2CCMD_SPECIAL_WAKE_REASON(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE((__pH2CCmd)+1, 0, 8, __Value) +#define SET_H2CCMD_CUSTOM_WAKE_REASON(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE((__pH2CCmd)+2, 0, 1, __Value) + #ifdef CONFIG_P2P_WOWLAN /* P2P_RsvdPage_0x8a */ #define SET_H2CCMD_RSVDPAGE_LOC_P2P_BCN(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd, 0, 8, __Value) @@ -585,7 +689,42 @@ s32 rtw_hal_customer_str_write(_adapter *adapter, const u8 *cs); #define SET_H2CCMD_LPSPG_IQK_INFO_LOC(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE((__pH2CCmd) + 3, 0, 8, __Value)/*Loc_IQK_result*/ #endif -#define SET_H2CCMD_BT_UNKNOWN_DEVICE_WA_PARM(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd, 1, 1, __Value) +#if defined(CONFIG_RTL8822C) && defined(CONFIG_SUPPORT_DYNAMIC_TXPWR) +#define SET_H2CCMD_FW_CRC5_SEARCH_EN(cmd, v) \ + SET_BITS_TO_LE_1BYTE((cmd), 0, 1, (v)); +#define SET_H2CCMD_FW_CRC5_SEARCH_MACID(cmd, v) \ + SET_BITS_TO_LE_1BYTE((cmd), 1, 7, (v)); +#define SET_H2CCMD_FW_CRC5_SEARCH_MAC(cmd, mac) \ + do { \ + int __offset = 0; \ + for (__offset = 0; __offset < ETH_ALEN; __offset++) \ + SET_BITS_TO_LE_1BYTE((u8 *)(cmd + __offset), 0, 8, *((u8 *)(mac + __offset))); \ + } while(0) +#endif + +#ifdef CONFIG_WAR_OFFLOAD +/* WarOffload_Info_0x8D */ +#define SET_H2CCMD_WAR_CFG_EN(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd, 0, 1, __Value) +#define SET_H2CCMD_WAR_CFG_ARP_RSP_EN(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd, 1, 1, __Value) +#define SET_H2CCMD_WAR_CFG_MDNSV4_RSP_EN(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE((__pH2CCmd)+2, 2, 1, __Value) +#define SET_H2CCMD_WAR_CFG_MDNSV6_RSP_EN(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE((__pH2CCmd)+2, 3, 1, __Value) +#define SET_H2CCMD_WAR_CFG_MDNSV4_WAKE_EN(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE((__pH2CCmd)+2, 6, 1, __Value) +#define SET_H2CCMD_WAR_CFG_MDNSV6_WAKE_EN(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE((__pH2CCmd)+2, 7, 1, __Value) + +/* H2C_WAROFLD_RSVDPAGE1 */ +#define SET_H2CCMD_WAROFLD_RSVDPAGE1_LOC_PARM(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE((__pH2CCmd), 0, 8, __Value) +#endif /* CONFIG_WAR_OFFLOAD */ + + +/* BT_UNKNOWN_DEVICE_WA_0xD1 */ +#define SET_H2CCMD_BT_UNKNOWN_DEVICE_WA_HANG_CHK_EN(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE(__pH2CCmd, 0, 1, __Value) +#define SET_H2CCMD_BT_UNKNOWN_DEVICE_WA_FORCE_IB_EN(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE(__pH2CCmd, 1, 1, __Value) +#define SET_H2CCMD_BT_UNKNOWN_DEVICE_WA_HWID_CHK_EN(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE(__pH2CCmd, 2, 1, __Value) +#define SET_H2CCMD_BT_UNKNOWN_DEVICE_WA_ONE_TIME_CHK(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE(__pH2CCmd, 3, 1, __Value) #ifdef DBG_FW_DEBUG_MSG_PKT #define SET_H2CCMD_FW_DBG_MSG_PKT_EN(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd, 0, 1, __Value)/*sniffer_dbg_en*/ @@ -628,6 +767,18 @@ typedef struct _RSVDPAGE_LOC { u8 LocSSIDInfo; u8 LocProbePacket; #endif /* CONFIG_PNO_SUPPORT */ +#ifdef CONFIG_WOW_KEEP_ALIVE_PATTERN + u8 LocKeepAlive; +#endif /*CONFIG_WOW_KEEP_ALIVE_PATTERN*/ +#ifdef CONFIG_WAR_OFFLOAD + u8 LocIpParm; +#if defined(CONFIG_OFFLOAD_MDNS_V4) || defined(CONFIG_OFFLOAD_MDNS_V6) + u8 LocMdnsPara; + u8 LocMdnsv4; + u8 LocMdnsv6; +#endif /* defined(CONFIG_OFFLOAD_MDNS_V4) || defined(CONFIG_OFFLOAD_MDNS_V6) */ +#endif /* CONFIG_WAR_OFFLOAD */ + #endif /* CONFIG_WOWLAN */ u8 LocApOffloadBCN; #ifdef CONFIG_P2P_WOWLAN @@ -658,7 +809,9 @@ void rsvd_page_cache_free_data(struct rsvd_page_cache_t *cache); void rsvd_page_cache_free(struct rsvd_page_cache_t *cache); #endif +#ifdef CONFIG_WOWLAN void dump_TX_FIFO(PADAPTER padapter, u8 page_num, u16 page_size); +#endif u8 rtw_hal_set_fw_media_status_cmd(_adapter *adapter, u8 mstatus, u8 macid); #if defined(CONFIG_WOWLAN) || defined(CONFIG_AP_WOWLAN) /* WOW command function */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/hal_com_phycfg.h b/drivers/net/wireless/realtek/rtl8822ce/include/hal_com_phycfg.h old mode 100644 new mode 100755 index 53744f20..52bb8053 --- a/drivers/net/wireless/realtek/rtl8822ce/include/hal_com_phycfg.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/hal_com_phycfg.h @@ -87,10 +87,7 @@ PHY_GetRateValuesOfTxPowerByRate( u8 *RateNum ); -u8 -PHY_GetRateIndexOfTxPowerByRate( - u8 Rate -); +u8 phy_get_rate_idx_of_txpwr_by_rate(enum MGN_RATE rate); void phy_set_tx_power_index_by_rate_section( @@ -100,31 +97,16 @@ phy_set_tx_power_index_by_rate_section( u8 RateSection ); -s8 -_PHY_GetTxPowerByRate( - PADAPTER pAdapter, - u8 Band, - enum rf_path RFPath, - u8 RateIndex -); +s8 phy_get_txpwr_by_rate(_adapter *adapter + , BAND_TYPE band, enum rf_path rfpath, RATE_SECTION rs, enum MGN_RATE rate); -s8 -PHY_GetTxPowerByRate( - PADAPTER pAdapter, - u8 Band, - enum rf_path RFPath, - RATE_SECTION rs, - enum MGN_RATE rate -); +s16 phy_get_txpwr_by_rate_single_mbm(_adapter *adapter + , BAND_TYPE band, enum rf_path rfpath, RATE_SECTION rs, enum MGN_RATE rate, bool eirp); +s16 phy_get_txpwr_by_rate_total_mbm(_adapter *adapter + , BAND_TYPE band, RATE_SECTION rs, enum MGN_RATE rate, bool cap, bool eirp); -void -PHY_SetTxPowerByRate( - PADAPTER pAdapter, - u8 Band, - enum rf_path RFPath, - u8 Rate, - s8 Value -); +s16 phy_get_txpwr_by_rate_single_max_mbm(_adapter *adapter, BAND_TYPE band, enum rf_path rfpath, bool eirp); +s16 phy_get_txpwr_by_rate_total_max_mbm(_adapter *adapter, BAND_TYPE band, bool cap, bool eirp); void phy_set_tx_power_level_by_path( @@ -162,26 +144,35 @@ u8 phy_get_pg_txpwr_idx(_adapter *pAdapter , enum channel_width BandWidth, u8 band, u8 Channel); #endif +#if CONFIG_TXPWR_LIMIT s8 phy_get_txpwr_lmt(_adapter *adapter - , const char *regd_name + , const char *lmt_name , BAND_TYPE band, enum channel_width bw , u8 tlrs, u8 ntx_idx, u8 cch, u8 lock ); s8 phy_get_txpwr_lmt_diff(_adapter *adapter - , const char *regd_name + , const char *lmt_name , BAND_TYPE band, enum channel_width bw , u8 rfpath, u8 rs, u8 tlrs, u8 ntx_idx, u8 cch, u8 lock ); s8 phy_get_txpwr_lmt_sub_chs(_adapter *adapter - , const char *regd_name + , const char *lmt_name , BAND_TYPE band, enum channel_width bw - , u8 rfpath, u8 rate, u8 ntx_idx, u8 cch, u8 opch + , u8 rfpath, u8 rate, u8 ntx_idx, u8 cch, u8 opch, bool reg_max ); +#else +#define phy_get_txpwr_lmt(adapter, lmt_name, band, bw, tlrs, ntx_idx, cch, lock) (GET_HAL_SPEC(adapter)->txgi_max) +#define phy_get_txpwr_lmt_diff(adapter, lmt_name, band, bw, rfpath, rs, tlrs, ntx_idx, cch, lock) (GET_HAL_SPEC(adapter)->txgi_max) +#define phy_get_txpwr_lmt_sub_chs(adapter, lmt_name, band, bw, rfpath, rate, ntx_idx, cch, opch, reg_max) (GET_HAL_SPEC(adapter)->txgi_max) +#endif /* CONFIG_TXPWR_LIMIT */ + +void dump_txpwr_tpc_settings(void *sel, _adapter *adapter); +void dump_txpwr_antenna_gain(void *sel, _adapter *adapter); s8 phy_get_txpwr_target(_adapter *adapter, u8 rfpath, RATE_SECTION rs, u8 rate, u8 ntx_idx - , enum channel_width bw, BAND_TYPE band, u8 cch, u8 opch, struct txpwr_idx_comp *tic); + , enum channel_width bw, BAND_TYPE band, u8 cch, u8 opch, bool reg_max, struct txpwr_idx_comp *tic); s8 phy_get_txpwr_amends(_adapter *adapter, u8 rfpath, RATE_SECTION rs, u8 rate, u8 ntx_idx , enum channel_width bw, BAND_TYPE band, u8 cch, struct txpwr_idx_comp *tic); #ifdef CONFIG_TXPWR_PG_WITH_TSSI_OFFSET @@ -193,14 +184,14 @@ u8 hal_com_get_txpwr_idx(_adapter *adapter, enum rf_path rfpath , struct txpwr_idx_comp *tic); s16 phy_get_txpwr_single_mbm(_adapter *adapter, u8 rfpath, RATE_SECTION rs, u8 rate - , enum channel_width bw, u8 cch, u8 opch, struct txpwr_idx_comp *tic); + , enum channel_width bw, u8 cch, u8 opch, bool reg_max, bool eirp, struct txpwr_idx_comp *tic); s16 phy_get_txpwr_total_mbm(_adapter *adapter, RATE_SECTION rs, u8 rate - , enum channel_width bw, u8 cch, u8 opch, struct txpwr_idx_comp *tic); + , enum channel_width bw, u8 cch, u8 opch, bool reg_max, bool eirp, struct txpwr_idx_comp *tic); s16 phy_get_txpwr_single_max_mbm(_adapter *adapter, u8 rfpath - , enum channel_width bw, u8 cch, u8 opch, u16 bmp_cck_ofdm, u32 bmp_ht, u64 bmp_vht); + , enum channel_width bw, u8 cch, u8 opch, u16 bmp_cck_ofdm, u32 bmp_ht, u64 bmp_vht, bool reg_max, bool eirp); s16 phy_get_txpwr_total_max_mbm(_adapter *adapter - , enum channel_width bw, u8 cch, u8 opch, u16 bmp_cck_ofdm, u32 bmp_ht, u64 bmp_vht); + , enum channel_width bw, u8 cch, u8 opch, u16 bmp_cck_ofdm, u32 bmp_ht, u64 bmp_vht, bool reg_max, bool eirp); s8 phy_get_tx_power_final_absolute_value(_adapter *adapter, u8 rfpath, u8 rate, @@ -223,8 +214,10 @@ struct txpwr_idx_comp { s8 btc; s8 extra; s8 utarget; - s8 limit; - s8 ulimit; + s8 rlimit; /* regulatory limit w/o HAL consideration */ + s8 limit; /* limit from RTK private (regulatory limit w/ HAL consideration) */ + s8 ulimit; /* user limit */ + s8 tpc; /* for amends */ s8 tpt; @@ -257,6 +250,7 @@ bool phy_is_txpwr_user_target_specified(_adapter *adapter); void dump_tx_power_index_inline(void *sel, _adapter *adapter, u8 rfpath , enum channel_width bw, u8 cch, enum MGN_RATE rate, u8 pwr_idx, struct txpwr_idx_comp *tic); +#ifdef CONFIG_PROC_DEBUG void dump_tx_power_idx_title(void *sel, _adapter *adapter , enum channel_width bw, u8 cch, u8 opch); void dump_tx_power_idx_by_path_rs(void *sel, _adapter *adapter, u8 rfpath @@ -269,11 +263,14 @@ void dump_txpwr_total_dbm_by_rs(void *sel, _adapter *adapter, u8 rs , enum channel_width bw, u8 cch, u8 opch); void dump_txpwr_total_dbm(void *sel, _adapter *adapter , enum channel_width bw, u8 cch, u8 opch); +#endif bool phy_is_tx_power_limit_needed(_adapter *adapter); bool phy_is_tx_power_by_rate_needed(_adapter *adapter); int phy_load_tx_power_by_rate(_adapter *adapter, u8 chk_file); +#if CONFIG_TXPWR_LIMIT int phy_load_tx_power_limit(_adapter *adapter, u8 chk_file); +#endif void phy_load_tx_power_ext_info(_adapter *adapter, u8 chk_file); void phy_reload_tx_power_ext_info(_adapter *adapter); void phy_reload_default_tx_power_ext_info(_adapter *adapter); @@ -291,9 +288,11 @@ void dump_hal_txpwr_info_5g(void *sel, _adapter *adapter, u8 rfpath_num, u8 max_ void hal_load_txpwr_info(_adapter *adapter); #endif +#ifdef CONFIG_PROC_DEBUG void dump_tx_power_ext_info(void *sel, _adapter *adapter); void dump_target_tx_power(void *sel, _adapter *adapter); void dump_tx_power_by_rate(void *sel, _adapter *adapter); +#endif int rtw_get_phy_file_path(_adapter *adapter, const char *file_name); @@ -332,7 +331,9 @@ int phy_ConfigBBWithPgParaFile(PADAPTER Adapter, const char *pFileName); int phy_ConfigBBWithMpParaFile(PADAPTER Adapter, char *pFileName); int PHY_ConfigRFWithParaFile(PADAPTER Adapter, char *pFileName, enum rf_path eRFPath); int PHY_ConfigRFWithTxPwrTrackParaFile(PADAPTER Adapter, char *pFileName); +#if CONFIG_TXPWR_LIMIT int PHY_ConfigRFWithPowerLimitTableParaFile(PADAPTER Adapter, const char *pFileName); +#endif void phy_free_filebuf_mask(_adapter *padapter, u8 mask); void phy_free_filebuf(_adapter *padapter); #endif /* CONFIG_LOAD_PHY_PARA_FROM_FILE */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/hal_com_reg.h b/drivers/net/wireless/realtek/rtl8822ce/include/hal_com_reg.h index 9d319ede..353a0f50 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/hal_com_reg.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/hal_com_reg.h @@ -23,6 +23,7 @@ /* 8188E PKT_BUFF_ACCESS_CTRL value */ #define TXPKT_BUF_SELECT 0x69 #define RXPKT_BUF_SELECT 0xA5 +#define TXREPORT_BUF_SELECT 0x7F #define DISABLE_TRXPKT_BUF_ACCESS 0x0 #ifndef RTW_HALMAC @@ -510,9 +511,12 @@ #define REG_WLAN_ACT_MASK_CTRL_1 0x076C /* GPIO Control */ -#define REG_SW_GPIO_SHARE_CTRL 0x1038 +#define REG_SW_GPIO_SHARE_CTRL_0 0x1038 +#define REG_SW_GPIO_SHARE_CTRL_1 0x103C #define REG_SW_GPIO_A_OUT 0x1040 #define REG_SW_GPIO_A_OEN 0x1044 +#define REG_SW_GPIO_B_OEN 0x1058 +#define REG_SW_GPIO_B_OUT 0x105C /* Hardware Port 2 */ #define REG_MACID2 0x1620 @@ -1252,10 +1256,14 @@ Current IOREG MAP /* 2 REG_LED_CFG (Offset 0x004C) */ #define BIT_SW_SPDT_SEL BIT(22) -/* 2 REG_SW_GPIO_SHARE_CTRL (Offset 0x1038) */ +/* 2 REG_SW_GPIO_SHARE_CTRL_0 (Offset 0x1038) */ #define BIT_BTGP_WAKE_LOC (BIT(10) | BIT(11)) #define BIT_SW_GPIO_FUNC BIT(0) +/* 2 REG_SW_GPIO_SHARE_CTRL_1 (Offset 0x103C) */ +#define BIT_WLMAC_DBG_LOC (BIT(9) | BIT(10)) +#define BIT_WL_GPIO_SEL (BIT(30) | BIT(31)) + /* 2 8051FWDL * 2 MCUFWDL */ #define MCUFWDL_EN BIT(0) @@ -1864,6 +1872,7 @@ Current IOREG MAP #define LAST_ENTRY_OF_TX_PKT_BUFFER_8723D 255 #define LAST_ENTRY_OF_TX_PKT_BUFFER_8710B 255 #define LAST_ENTRY_OF_TX_PKT_BUFFER_8192F 255 +#define LAST_ENTRY_OF_TX_PKT_BUFFER_8723F 255 #define POLLING_LLT_THRESHOLD 20 #if defined(CONFIG_RTL8723B) && defined(CONFIG_PCI_HCI) #define POLLING_READY_TIMEOUT_COUNT 6000 diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/hal_data.h b/drivers/net/wireless/realtek/rtl8822ce/include/hal_data.h old mode 100755 new mode 100644 index 3f8cdaa6..0da9f0cc --- a/drivers/net/wireless/realtek/rtl8822ce/include/hal_data.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/hal_data.h @@ -225,6 +225,9 @@ struct hal_spec_t { u8 sec_cam_ent_num; u8 sec_cap; u8 wow_cap; + u8 macid_cap; + u16 macid_txrpt; + u8 macid_txrpt_pgsz; u8 rfpath_num_2g:4; /* used for tx power index path */ u8 rfpath_num_5g:4; /* used for tx power index path */ @@ -246,9 +249,7 @@ struct hal_spec_t { u8 wl_func; /* value of WL_FUNC_XXX */ -#if CONFIG_TX_AC_LIFETIME u8 tx_aclt_unit_factor; /* how many 32us */ -#endif u8 rx_tsf_filter:1; @@ -322,6 +323,7 @@ typedef struct hal_p2p_ps_para { #define TXPWR_LMT_RS_NUM_2G 4 /* CCK, OFDM, HT, VHT */ #define TXPWR_LMT_RS_NUM_5G 3 /* OFDM, HT, VHT */ +#if CONFIG_TXPWR_LIMIT extern const char *const _txpwr_lmt_rs_str[]; #define txpwr_lmt_rs_str(rs) (((rs) >= TXPWR_LMT_RS_NUM) ? _txpwr_lmt_rs_str[TXPWR_LMT_RS_NUM] : _txpwr_lmt_rs_str[(rs)]) @@ -340,8 +342,9 @@ struct txpwr_lmt_ent { [MAX_TX_COUNT]; #endif - char regd_name[0]; + char name[0]; }; +#endif /* CONFIG_TXPWR_LIMIT */ typedef struct hal_com_data { HAL_VERSION version_id; @@ -376,7 +379,6 @@ typedef struct hal_com_data { u8 nCur40MhzPrimeSC; /* Control channel sub-carrier */ u8 nCur80MhzPrimeSC; /* used for primary 40MHz of 80MHz mode */ BOOLEAN bSwChnlAndSetBWInProgress; - u8 bDisableSWChannelPlan; /* flag of disable software change channel plan */ u16 BasicRateSet; u32 ReceiveConfig; #ifdef CONFIG_WIFI_MONITOR @@ -405,6 +407,7 @@ typedef struct hal_com_data { u8 max_tx_cnt; u8 tx_nss; /*tx Spatial Streams - GET_HAL_TX_NSS*/ u8 rx_nss; /*rx Spatial Streams - GET_HAL_RX_NSS*/ + u8 txpath_cap_num_nss[4]; /* capable path num for NSS TX, [0] for 1SS, [3] for 4SS */ u8 PackageType; u8 antenna_test; @@ -523,7 +526,8 @@ typedef struct hal_com_data { bool set_entire_txpwr; -#if defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8822C) || defined(CONFIG_RTL8814B) +#if defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8822C) || defined(CONFIG_RTL8814B) \ + || defined(CONFIG_RTL8723F) u32 txagc_set_buf; #endif @@ -592,7 +596,6 @@ typedef struct hal_com_data { u8 IQK_MP_Switch; u8 bScanInProcess; u8 phydm_init_result; /*BB and RF para match or not*/ - s8 shift_rxagc; /* -63 ~ 63 */ /******** PHY DM & DM Section **********/ @@ -668,7 +671,7 @@ typedef struct hal_com_data { /* SDIO Rx FIFO related. */ /* */ u8 SdioRxFIFOCnt; -#ifdef CONFIG_RTL8822C +#if defined (CONFIG_RTL8822C) || defined (CONFIG_RTL8192F) u32 SdioRxFIFOSize; #else u16 SdioRxFIFOSize; @@ -837,6 +840,12 @@ typedef struct hal_com_data { u8 dma_ch_map[32]; /* TXDESC qsel maximum size */ #endif +#ifndef RTW_HALMAC /* for SIFS initial value */ + u16 init_reg_0x428; + u32 init_reg_0x514; + u16 init_reg_0x63a; + u32 init_reg_0x63c; +#endif } HAL_DATA_COMMON, *PHAL_DATA_COMMON; typedef struct hal_com_data HAL_DATA_TYPE, *PHAL_DATA_TYPE; diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/hal_ic_cfg.h b/drivers/net/wireless/realtek/rtl8822ce/include/hal_ic_cfg.h old mode 100755 new mode 100644 index c20630a5..b16311d3 --- a/drivers/net/wireless/realtek/rtl8822ce/include/hal_ic_cfg.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/hal_ic_cfg.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * Copyright(c) 2007 - 2017 Realtek Corporation. + * Copyright(c) 2007 - 2019 Realtek Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms of version 2 of the GNU General Public License as @@ -20,6 +20,7 @@ #define RTL8821A_SUPPORT 0 #define RTL8723B_SUPPORT 0 #define RTL8723D_SUPPORT 0 +#define RTL8723F_SUPPORT 0 #define RTL8192E_SUPPORT 0 #define RTL8192F_SUPPORT 0 #define RTL8814A_SUPPORT 0 @@ -40,7 +41,9 @@ #define RTL8812F_SUPPORT 0 #define RTL8197G_SUPPORT 0 #define RTL8710C_SUPPORT 0 - +#define RTL8814C_SUPPORT 0 +#define RTL8735B_SUPPORT 0 +#define RTL8730A_SUPPORT 0 /*#if (RTL8188E_SUPPORT==1)*/ #define RATE_ADAPTIVE_SUPPORT 0 @@ -138,6 +141,8 @@ #ifndef CONFIG_TXPWR_PG_WITH_PWR_IDX #define CONFIG_TXPWR_PG_WITH_PWR_IDX #endif + #define CONFIG_STOP_RESUME_BCN_BY_TXPAUSE /*to fixed no bcn issue*/ + #define CONFIG_TSF_SYNC #endif #ifdef CONFIG_RTL8723B @@ -242,6 +247,10 @@ #ifndef CONFIG_TXPWR_PG_WITH_PWR_IDX #define CONFIG_TXPWR_PG_WITH_PWR_IDX #endif + + #if defined(CONFIG_USB_HCI) && !defined(CONFIG_FW_OFFLOAD_SET_TXPWR_IDX) + #define CONFIG_FW_OFFLOAD_SET_TXPWR_IDX + #endif #endif #ifdef CONFIG_RTL8822B @@ -326,7 +335,7 @@ #define CONFIG_RTS_FULL_BW #ifdef CONFIG_LPS - /* #define CONFIG_LPS_ACK */ /* Supported after FW v30 */ + #define CONFIG_LPS_ACK /* Supported after FW v30 & v27.9 */ #endif #ifndef CONFIG_TXPWR_PG_WITH_PWR_IDX @@ -388,6 +397,7 @@ #ifdef CONFIG_MCC_MODE #define CONFIG_MCC_MODE_V2 + #define CONFIG_MCC_PHYDM_OFFLOAD #endif /* CONFIG_MCC_MODE */ #if defined(CONFIG_TDLS) && defined(CONFIG_TDLS_CH_SW) @@ -434,11 +444,11 @@ #endif #define CONFIG_RTL8822C_XCAP_NEW_POLICY -/* #define CONFIG_NARROWBAND_SUPPORTING */ - #ifdef CONFIG_NARROWBAND_SUPPORTING - #define CONFIG_NB_VALUE RTW_NB_CONFIG_NONE /*RTW_NB_CONFIG_WIDTH_10 or RTW_NB_CONFIG_WIDTH_5 */ - #endif + /*#define CONFIG_NARROWBAND_SUPPORTING*/ + #ifdef CONFIG_NARROWBAND_SUPPORTING + #define CONFIG_NB_VALUE RTW_NB_CONFIG_WIDTH_10 /* RTW_NB_CONFIG_NONE / RTW_NB_CONFIG_WIDTH_10 / RTW_NB_CONFIG_WIDTH_5 */ + #endif #define CONFIG_SUPPORT_DYNAMIC_TXPWR #endif /* CONFIG_RTL8822C */ @@ -509,6 +519,10 @@ #ifdef CONFIG_RTL8814B #undef RTL8814B_SUPPORT #define RTL8814B_SUPPORT 1 + #ifdef CONFIG_RTL8814C + #undef RTL8814C_SUPPORT + #define RTL8814C_SUPPORT 1 + #endif #ifndef CONFIG_FW_C2H_PKT #define CONFIG_FW_C2H_PKT #endif /* CONFIG_FW_C2H_PKT */ @@ -529,7 +543,6 @@ #ifdef CONFIG_CONCURRENT_MODE /*#define CONFIG_AP_PORT_SWAP*/ #define CONFIG_FW_MULTI_PORT_SUPPORT - #define CONFIG_SUPPORT_AP_PORT1 #endif /* CONFIG_CONCURRENT_MODE */ /* @@ -605,5 +618,106 @@ #define CONFIG_TXPWR_PG_WITH_TSSI_OFFSET #endif #endif /* CONFIG_RTL8814B */ +#ifdef CONFIG_RTL8723F + #undef RTL8723F_SUPPORT + #define RTL8723F_SUPPORT 1 + /* Use HALMAC architecture, necessary for 8723F */ + #define RTW_HALMAC + + /*#define DBG_LA_MODE*/ + + #ifndef CONFIG_FW_C2H_PKT + #define CONFIG_FW_C2H_PKT + #endif /* CONFIG_FW_C2H_PKT */ + + #define RTW_TX_PA_BIAS /* Adjust TX PA Bias from eFuse */ + + #ifdef CONFIG_WOWLAN + #define CONFIG_WOW_PATTERN_IN_TXFIFO + #endif + + #ifdef CONFIG_WOWLAN + #define CONFIG_GTK_OL + /*#define CONFIG_ARP_KEEP_ALIVE*/ + + #ifdef CONFIG_GPIO_WAKEUP + #ifndef WAKEUP_GPIO_IDX + #define WAKEUP_GPIO_IDX 12 /* WIFI Chip Side */ + #endif /* !WAKEUP_GPIO_IDX */ + #endif /* CONFIG_GPIO_WAKEUP */ + #endif /* CONFIG_WOWLAN */ + + #ifdef CONFIG_CONCURRENT_MODE + #define CONFIG_AP_PORT_SWAP + #define CONFIG_FW_MULTI_PORT_SUPPORT + #endif /* CONFIG_CONCURRENT_MODE */ + + #ifdef CONFIG_NO_FW + #ifdef CONFIG_RTW_MAC_HIDDEN_RPT + #undef CONFIG_RTW_MAC_HIDDEN_RPT + #endif + #else + #ifndef CONFIG_RTW_MAC_HIDDEN_RPT + #define CONFIG_RTW_MAC_HIDDEN_RPT + #endif + #endif + + #ifndef DBG_RX_DFRAME_RAW_DATA + #define DBG_RX_DFRAME_RAW_DATA + #endif /* DBG_RX_DFRAME_RAW_DATA */ + + /*#define RTW_IQK_FW_OFFLOAD*/ + #define CONFIG_ADVANCE_OTA + + #ifdef CONFIG_MCC_MODE + #define CONFIG_MCC_MODE_V2 + #define CONFIG_MCC_PHYDM_OFFLOAD + #endif /* CONFIG_MCC_MODE */ + + #if defined(CONFIG_TDLS) && defined(CONFIG_TDLS_CH_SW) + #define CONFIG_TDLS_CH_SW_V2 + #endif + + #ifndef RTW_CHANNEL_SWITCH_OFFLOAD + #ifdef CONFIG_TDLS_CH_SW_V2 + #define RTW_CHANNEL_SWITCH_OFFLOAD + #endif + #endif /* RTW_CHANNEL_SWITCH_OFFLOAD */ + + #if defined(CONFIG_RTW_MESH) && !defined(RTW_PER_CMD_SUPPORT_FW) + /* Supported since fw v22.1 */ + #define RTW_PER_CMD_SUPPORT_FW + #endif /* RTW_PER_CMD_SUPPORT_FW */ + #define CONFIG_SUPPORT_FIFO_DUMP + #define CONFIG_HW_P0_TSF_SYNC + #define CONFIG_BCN_RECV_TIME + + /*#define CONFIG_TCP_CSUM_OFFLOAD_TX*/ + #if defined(CONFIG_TCP_CSUM_OFFLOAD_TX) && !defined(CONFIG_RTW_NETIF_SG) + #define CONFIG_RTW_NETIF_SG + #endif + #define CONFIG_TCP_CSUM_OFFLOAD_RX + + #ifdef CONFIG_P2P_PS + #define CONFIG_P2P_PS_NOA_USE_MACID_SLEEP + #endif + + #define CONFIG_RTS_FULL_BW + + #ifdef CONFIG_LPS + #define CONFIG_LPS_ACK + #endif + + #ifndef CONFIG_TXPWR_PG_WITH_PWR_IDX + #define CONFIG_TXPWR_PG_WITH_PWR_IDX + #endif + #ifndef CONFIG_TXPWR_PG_WITH_TSSI_OFFSET + #define CONFIG_TXPWR_PG_WITH_TSSI_OFFSET + #endif + + #define CONFIG_BT_EFUSE_MASK + + #define CONFIG_WRITE_BCN_LEN_TO_FW +#endif /* CONFIG_RTL8723F */ #endif /*__HAL_IC_CFG_H__*/ diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/hal_intf.h b/drivers/net/wireless/realtek/rtl8822ce/include/hal_intf.h old mode 100755 new mode 100644 index 6ad9ff27..e1d83992 --- a/drivers/net/wireless/realtek/rtl8822ce/include/hal_intf.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/hal_intf.h @@ -42,6 +42,7 @@ enum _CHIP_TYPE { RTL8192F, RTL8822C, RTL8814B, + RTL8723F, MAX_CHIP_TYPE }; @@ -108,6 +109,7 @@ typedef enum _HW_VARIABLES { HW_VAR_SET_RPWM, HW_VAR_CPWM, HW_VAR_H2C_FW_PWRMODE, + HW_VAR_H2C_FW_PWRMODE_RFON_CTRL, HW_VAR_H2C_INACTIVE_IPS, HW_VAR_H2C_PS_TUNE_PARAM, HW_VAR_H2C_FW_JOINBSSRPT, @@ -156,7 +158,6 @@ typedef enum _HW_VARIABLES { HW_VAR_CHK_MGQ_CPU_EMPTY, HW_VAR_DL_BCN_SEL, HW_VAR_AMPDU_MAX_TIME, - HW_VAR_WIRELESS_MODE, HW_VAR_USB_MODE, HW_VAR_PORT_SWITCH, HW_VAR_PORT_CFG, @@ -197,11 +198,8 @@ typedef enum _HW_VARIABLES { HW_VAR_MDIO, HW_VAR_L1OFF_CAPABILITY, HW_VAR_L1OFF_NIC_SUPPORT, -#ifdef CONFIG_TDLS -#ifdef CONFIG_TDLS_CH_SW - HW_VAR_TDLS_BCN_EARLY_C2H_RPT, -#endif -#endif + HW_VAR_BCN_EARLY_C2H_RPT, + HW_VAR_SET_DRV_ERLY_INT, HW_VAR_DUMP_MAC_TXFIFO, HW_VAR_PWR_CMD, #ifdef CONFIG_FW_HANDLE_TXBCN @@ -211,12 +209,19 @@ typedef enum _HW_VARIABLES { HW_VAR_ENABLE_RX_BAR, HW_VAR_TSF_AUTO_SYNC, HW_VAR_LPS_STATE_CHK, + HW_VAR_LPS_RFON_CHK, #ifdef CONFIG_RTS_FULL_BW HW_VAR_SET_RTS_BW, #endif #if defined(CONFIG_PCI_HCI) HW_VAR_ENSWBCN, #endif +#ifdef CONFIG_WOWLAN + HW_VAR_VENDOR_WOW_MODE, +#endif /* CONFIG_WOWLAN */ +#ifdef CONFIG_WAKE_ON_BT + HW_VAR_WAKE_ON_BT_GPIO_SWITCH, +#endif } HW_VARIABLES; typedef enum _HAL_DEF_VARIABLE { @@ -261,7 +266,6 @@ typedef enum _HAL_ODM_VARIABLE { HAL_ODM_STA_INFO, HAL_ODM_P2P_STATE, HAL_ODM_WIFI_DISPLAY_STATE, - HAL_ODM_REGULATION, HAL_ODM_INITIAL_GAIN, HAL_ODM_RX_INFO_DUMP, HAL_ODM_RX_Dframe_INFO, @@ -300,7 +304,13 @@ struct hal_ops { * mgnt_xmit should be implemented to run in interrupt context */ s32(*mgnt_xmit)(_adapter *padapter, struct xmit_frame *pmgntframe); +#ifdef CONFIG_RTW_MGMT_QUEUE + s32(*hal_mgmt_xmitframe_enqueue)(_adapter *padapter, struct xmit_frame *pxmitframe); +#endif s32(*hal_xmitframe_enqueue)(_adapter *padapter, struct xmit_frame *pxmitframe); + #if defined (CONFIG_CONCURRENT_MODE) && defined (CONFIG_TSF_SYNC) + void(*tsf_sync)(_adapter *Adapter); + #endif #ifdef CONFIG_XMIT_THREAD_MODE s32(*xmit_thread_handler)(_adapter *padapter); #endif @@ -452,9 +462,7 @@ struct hal_ops { #ifdef CONFIG_PCI_TX_POLLING void (*tx_poll_handler)(_adapter *adapter); #endif -#ifdef CONFIG_SUPPORT_DYNAMIC_TXPWR - void (*dtp_macid_set)(_adapter *padapter, u8 opmode, u8 mac_id, u8 *paddr); -#endif + void (*hci_flush)(_adapter *adapter, u32 queue); }; typedef enum _RT_EEPROM_TYPE { @@ -521,6 +529,8 @@ typedef enum _HARDWARE_TYPE { HARDWARE_TYPE_RTL8814BE, HARDWARE_TYPE_RTL8814BU, HARDWARE_TYPE_RTL8814BS, + HARDWARE_TYPE_RTL8723FU, + HARDWARE_TYPE_RTL8723FS, HARDWARE_TYPE_MAX, } HARDWARE_TYPE; @@ -653,6 +663,11 @@ typedef enum _HARDWARE_TYPE { #define IS_HARDWARE_TYPE_8814B(_Adapter) \ (IS_HARDWARE_TYPE_8814BE(_Adapter) || IS_HARDWARE_TYPE_8814BU(_Adapter) || IS_HARDWARE_TYPE_8814BS(_Adapter)) +#define IS_HARDWARE_TYPE_8723FU(_Adapter) (rtw_get_hw_type(_Adapter) == HARDWARE_TYPE_RTL8723FU) +#define IS_HARDWARE_TYPE_8723FS(_Adapter) (rtw_get_hw_type(_Adapter) == HARDWARE_TYPE_RTL8723FS) +#define IS_HARDWARE_TYPE_8723F(_Adapter) \ + (IS_HARDWARE_TYPE_8723FU(_Adapter) || IS_HARDWARE_TYPE_8723FS(_Adapter)) + #define IS_HARDWARE_TYPE_JAGUAR2(_Adapter) \ (IS_HARDWARE_TYPE_8814A(_Adapter) || IS_HARDWARE_TYPE_8821B(_Adapter) || IS_HARDWARE_TYPE_8822B(_Adapter) || IS_HARDWARE_TYPE_8821C(_Adapter)) @@ -662,6 +677,8 @@ typedef enum _HARDWARE_TYPE { #define IS_HARDWARE_TYPE_JAGUAR3(_Adapter) \ (IS_HARDWARE_TYPE_8814B(_Adapter) || IS_HARDWARE_TYPE_8822C(_Adapter)) +#define IS_HARDWARE_TYPE_JAGUAR3_11N(_Adapter) IS_HARDWARE_TYPE_8723F(_Adapter) + #define IS_HARDWARE_TYPE_JAGUAR_ALL(_Adapter) \ (IS_HARDWARE_TYPE_JAGUAR_AND_JAGUAR2(_Adapter) || IS_HARDWARE_TYPE_JAGUAR3(_Adapter)) @@ -744,6 +761,9 @@ u8 rtw_hal_pci_l1off_capability(_adapter *padapter); u8 rtw_hal_intf_ps_func(_adapter *padapter, HAL_INTF_PS_FUNC efunc_id, u8 *val); +#ifdef CONFIG_RTW_MGMT_QUEUE +s32 rtw_hal_mgmt_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); +#endif s32 rtw_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); s32 rtw_hal_xmit(_adapter *padapter, struct xmit_frame *pxmitframe); s32 rtw_hal_mgnt_xmit(_adapter *padapter, struct xmit_frame *pmgntframe); @@ -838,13 +858,14 @@ s32 rtw_hal_c2h_handler(_adapter *adapter, u8 id, u8 seq, u8 plen, u8 *payload); s32 rtw_hal_c2h_id_handle_directly(_adapter *adapter, u8 id, u8 seq, u8 plen, u8 *payload); #endif -s32 rtw_hal_is_disable_sw_channel_plan(PADAPTER padapter); - s32 rtw_hal_macid_sleep(_adapter *adapter, u8 macid); s32 rtw_hal_macid_wakeup(_adapter *adapter, u8 macid); s32 rtw_hal_macid_sleep_all_used(_adapter *adapter); s32 rtw_hal_macid_wakeup_all_used(_adapter *adapter); +s32 rtw_hal_macid_drop(_adapter *adapter, u8 macid); +s32 rtw_hal_macid_undrop(_adapter *adapter, u8 macid); + s32 rtw_hal_fill_h2c_cmd(PADAPTER padapter, u8 ElementID, u32 CmdLen, u8 *pCmdBuffer); void rtw_hal_fill_fake_txdesc(_adapter *padapter, u8 *pDesc, u32 BufferLen, u8 IsPsPoll, u8 IsBTQosNull, u8 bDataFrame); @@ -888,8 +909,4 @@ s32 rtw_hal_fw_mem_dl(_adapter *padapter, enum fw_mem mem); bool rtw_hal_rfkill_poll(_adapter *adapter, u8 *valid); #endif -#ifdef CONFIG_SUPPORT_DYNAMIC_TXPWR -void rtw_hal_dtp_macid_set(_adapter *padapter, u8 opmode, u8 mac_id, u8 *paddr); -#endif - #endif /* __HAL_INTF_H__ */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/hal_pg.h b/drivers/net/wireless/realtek/rtl8822ce/include/hal_pg.h old mode 100755 new mode 100644 index 9de07693..3928eeda --- a/drivers/net/wireless/realtek/rtl8822ce/include/hal_pg.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/hal_pg.h @@ -618,8 +618,8 @@ /* RTL8822CU */ #define EEPROM_MAC_ADDR_8822CU 0x157 -#define EEPROM_VID_8822CU 0x100 -#define EEPROM_PID_8822CU 0x102 +#define EEPROM_VID_8822CU 0x150 +#define EEPROM_PID_8822CU 0x152 #define EEPROM_USB_OPTIONAL_FUNCTION0_8822CU 0x104 #define EEPROM_USB_MODE_8822CU 0x06 @@ -740,6 +740,47 @@ #define EEPROM_PID_8814BU 0x152 #define EEPROM_USB_OPTIONAL_FUNCTION0_8814BU 0x154 +/* + * ==================================================== + * EEPROM/Efuse PG Offset for 8723F + * ==================================================== + */ +#define EEPROM_TX_PWR_INX_8723F 0x10 +#define EEPROM_ChannelPlan_8723F 0xB8 +#define EEPROM_XTAL_B9_8723F 0xB9 +#define EEPROM_THERMAL_METER_8723F 0xBA +#define EEPROM_IQK_LCK_8723F 0xBB +#define EEPROM_2G_5G_PA_TYPE_8723F 0xBC +/* PATH A & PATH B */ +#define EEPROM_2G_LNA_TYPE_GAIN_SEL_AB_8723F 0xBD +/* PATH C & PATH D */ +#define EEPROM_2G_LNA_TYPE_GAIN_SEL_CD_8723F 0xBE +/* PATH A & PATH B */ +#define EEPROM_5G_LNA_TYPE_GAIN_SEL_AB_8723F 0xBF +/* PATH C & PATH D */ +#define EEPROM_5G_LNA_TYPE_GAIN_SEL_CD_8723F 0xC0 + +#define EEPROM_RF_BOARD_OPTION_8723F 0xC1 +#define EEPROM_FEATURE_OPTION_8723F 0xC2 +#define EEPROM_RF_BT_SETTING_8723F 0xC3 +#define EEPROM_VERSION_8723F 0xC4 +#define EEPROM_CustomID_8723F 0xC5 +#define EEPROM_TX_BBSWING_2G_8723F 0xC6 +#define EEPROM_TX_PWR_CALIBRATE_RATE_8723F 0xC8 +#define EEPROM_RF_ANTENNA_OPT_8723F 0xC9 +#define EEPROM_RFE_OPTION_8723F 0xCA +#define EEPROM_COUNTRY_CODE_8723F 0xCB + +/* RTL8723FU */ +#define EEPROM_MAC_ADDR_8723FU 0x108 +#define EEPROM_VID_8723FU 0x100 +#define EEPROM_PID_8723FU 0x102 +#define EEPROM_USB_OPTIONAL_FUNCTION0_8723FU 0x104 +#define EEPROM_USB_MODE_8723FU 0x03 + +/* RTL8723FS */ +#define EEPROM_MAC_ADDR_8723FS 0x11A + /* **************************************************** * EEPROM/Efuse Value Type * **************************************************** */ @@ -806,6 +847,7 @@ #define EEPROM_Default_CrystalCap_8723B 0x20 #define EEPROM_Default_CrystalCap_8703B 0x20 #define EEPROM_Default_CrystalCap_8723D 0x20 +#define EEPROM_Default_CrystalCap_8723F 0x3F #define EEPROM_Default_CrystalCap_8188F 0x20 #define EEPROM_Default_CrystalCap_8188GTV 0x20 #define EEPROM_Default_CrystalCap_8192F 0x20 @@ -943,6 +985,7 @@ typedef enum _BT_CoType { BT_RTL8192F = 16, BT_RTL8822C = 17, BT_RTL8814B = 18, + BT_RTL8723F = 19, } BT_CoType, *PBT_CoType; typedef enum _BT_RadioShared { diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/hal_sdio.h b/drivers/net/wireless/realtek/rtl8822ce/include/hal_sdio.h index 4e40f62a..dbdbdca4 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/hal_sdio.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/hal_sdio.h @@ -30,9 +30,9 @@ u32 rtw_hal_get_sdio_tx_max_length(PADAPTER padapter, u8 queue_idx); bool sdio_power_on_check(PADAPTER padapter); #ifdef CONFIG_SDIO_TX_ENABLE_AVAL_INT -#if defined(CONFIG_RTL8188F) || defined(CONFIG_RTL8188GTV) || defined(CONFIG_RTL8821A) +#if defined(CONFIG_RTL8188F) || defined(CONFIG_RTL8188GTV) ||defined(CONFIG_RTL8188E) || defined(CONFIG_RTL8821A) || defined(CONFIG_RTL8192F) || defined(CONFIG_RTL8723D) void rtw_hal_sdio_avail_page_threshold_init(_adapter *adapter); -void rtw_hal_sdio_avail_page_threshold_en(_adapter *adapter, u8 qidx); +void rtw_hal_sdio_avail_page_threshold_en(_adapter *adapter, u8 qidx, u8 pg_num); #endif #endif /* CONFIG_SDIO_TX_ENABLE_AVAL_INT */ @@ -40,7 +40,7 @@ void rtw_hal_sdio_avail_page_threshold_en(_adapter *adapter, u8 qidx); void sd_c2h_hisr_hdl(_adapter *adapter); #endif -#if defined(CONFIG_RTL8188F) || defined (CONFIG_RTL8188GTV) || defined (CONFIG_RTL8192F) +#if defined(CONFIG_RTL8188F) || defined (CONFIG_RTL8188GTV) || defined (CONFIG_RTL8192F) || defined(CONFIG_RTL8723D) #define SDIO_LOCAL_CMD_ADDR(addr) ((SDIO_LOCAL_DEVICE_ID << 13) | ((addr) & SDIO_LOCAL_MSK)) #endif @@ -81,4 +81,15 @@ void dbg_rtw_sdio_free_xmitbuf_sema_down(struct xmit_priv *xmit, const char *cal #endif /* SDIO_FREE_XMIT_BUF_SEMA */ #endif /* !CONFIG_SDIO_TX_TASKLET */ +s32 sdio_initrecvbuf(struct recv_buf *recvbuf, _adapter *adapter); +void sdio_freerecvbuf(struct recv_buf *recvbuf); + +#ifdef CONFIG_SDIO_RECVBUF_PWAIT +void dump_recvbuf_pwait_conf(void *sel, struct recv_priv *recvpriv); +#ifdef CONFIG_SDIO_RECVBUF_PWAIT_RUNTIME_ADJUST +int recvbuf_pwait_config_req(struct recv_priv *recvpriv, enum rtw_pwait_type type, s32 time, s32 cnt_lmt); +int recvbuf_pwait_config_hdl(struct recv_priv *recvpriv, struct recv_buf *rbuf); +#endif /* CONFIG_SDIO_RECVBUF_PWAIT_RUNTIME_ADJUST */ +#endif /* CONFIG_SDIO_RECVBUF_PWAIT */ + #endif /* __HAL_SDIO_H_ */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/hal_sdio_coex.h b/drivers/net/wireless/realtek/rtl8822ce/include/hal_sdio_coex.h index e89020c4..d95813a1 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/hal_sdio_coex.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/hal_sdio_coex.h @@ -1,17 +1,22 @@ -/****************************************************************************** - * - * Copyright(c) 2013 - 2019 Realtek Corporation. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License 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. - * - *****************************************************************************/ +/****************************************************************************** + * + * Copyright(c) 2013 Realtek Corporation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License 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, USA + * + * + ******************************************************************************/ #ifndef __HAL_SDIO_COEX_H__ #define __HAL_SDIO_COEX_H__ diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/ieee80211.h b/drivers/net/wireless/realtek/rtl8822ce/include/ieee80211.h old mode 100644 new mode 100755 index ed44d7f5..2274e08e --- a/drivers/net/wireless/realtek/rtl8822ce/include/ieee80211.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/ieee80211.h @@ -26,7 +26,7 @@ #ifdef CONFIG_AP_MODE -#define RTL_IOCTL_HOSTAPD (SIOCIWFIRSTPRIV + 28) +#define RTL_IOCTL_HOSTAPD (SIOCDEVPRIVATE + 2) /* RTL871X_IOCTL_HOSTAPD ioctl() cmd: */ enum { @@ -55,6 +55,7 @@ enum { RTL871X_HOSTAPD_ACL_ADD_STA = 22, RTL871X_HOSTAPD_ACL_REMOVE_STA = 23, }; +#endif /* CONFIG_AP_MODE */ /* STA flags */ #define WLAN_STA_AUTH BIT(0) @@ -72,11 +73,11 @@ enum { #define WLAN_STA_WPS BIT(12) #define WLAN_STA_MAYBE_WPS BIT(13) #define WLAN_STA_VHT BIT(14) +#define WLAN_STA_WDS BIT(15) +#define WLAN_STA_MULTI_AP BIT(16) #define WLAN_STA_AMSDU_DISABLE BIT(17) #define WLAN_STA_NONERP BIT(31) -#endif - #define IEEE_CMD_SET_WPA_PARAM 1 #define IEEE_CMD_SET_WPA_IE 2 #define IEEE_CMD_SET_ENCRYPTION 3 @@ -720,6 +721,7 @@ struct ieee80211_snap_hdr { #define WLAN_EID_CF_PARAMS 4 #define WLAN_EID_TIM 5 #define WLAN_EID_IBSS_PARAMS 6 +#define WLAN_EID_COUNTRY 7 #define WLAN_EID_CHALLENGE 16 /* EIDs defined by IEEE 802.11h - START */ #define WLAN_EID_PWR_CONSTRAINT 32 @@ -741,6 +743,7 @@ struct ieee80211_snap_hdr { #define WLAN_EID_FAST_BSS_TRANSITION 55 #define WLAN_EID_TIMEOUT_INTERVAL 56 #define WLAN_EID_RIC_DATA 57 +#define WLAN_EID_ECSA 60 #define WLAN_EID_HT_OPERATION 61 #define WLAN_EID_SECONDARY_CHANNEL_OFFSET 62 #define WLAN_EID_20_40_BSS_COEXISTENCE 72 @@ -750,20 +753,28 @@ struct ieee80211_snap_hdr { #define WLAN_EID_MESH_CONFIG 113 #define WLAN_EID_MESH_ID 114 #define WLAN_EID_MPM 117 -#define WLAN_EID_RANN 126 -#define WLAN_EID_PREQ 130 -#define WLAN_EID_PREP 131 -#define WLAN_EID_PERR 132 +#define WLAN_EID_RANN 126 +#define WLAN_EID_EXT_CAP 127 +#define WLAN_EID_PREQ 130 +#define WLAN_EID_PREP 131 +#define WLAN_EID_PERR 132 #define WLAN_EID_AMPE 139 #define WLAN_EID_MIC 140 #define WLAN_EID_VENDOR_SPECIFIC 221 #define WLAN_EID_GENERIC (WLAN_EID_VENDOR_SPECIFIC) #define WLAN_EID_VHT_CAPABILITY 191 #define WLAN_EID_VHT_OPERATION 192 +#define WLAN_EID_WIDE_BANDWIDTH_CHANNEL_SWITCH 194 +#define WLAN_EID_CHANNEL_SWITCH_WRAPPER 196 #define WLAN_EID_VHT_OP_MODE_NOTIFY 199 +#define WLAN_EID_RSNX 244 #define WLAN_EID_EXTENSION 255 #define WLAN_EID_EXT_OWE_DH_PARAM 32 +#define WLAN_EID_EXT_CAP_MAX_LEN 10 +#define WLAN_EID_CSA_IE_LEN 3 +#define WLAN_EID_ECSA_IE_LEN 4 + #define IEEE80211_MGMT_HDR_LEN 24 #define IEEE80211_DATA_HDR3_LEN 24 #define IEEE80211_DATA_HDR4_LEN 30 @@ -802,6 +813,7 @@ struct ieee80211_snap_hdr { #define IEEE80211_OFDM_RATE_36MB 0x48 #define IEEE80211_OFDM_RATE_48MB 0x60 #define IEEE80211_OFDM_RATE_54MB 0x6C +#define IEEE80211_BSS_MEMBERSHIP_SELECTOR_SAE_H2E_ONLY 0x7B #define IEEE80211_BASIC_RATE_MASK 0x80 #define IEEE80211_CCK_RATE_1MB_MASK (1<<0) @@ -951,92 +963,7 @@ enum MGN_RATE { #define IS_3T_RATE(_rate) (IS_HT3SS_RATE((_rate)) || IS_VHT3SS_RATE((_rate))) #define IS_4T_RATE(_rate) (IS_HT4SS_RATE((_rate)) || IS_VHT4SS_RATE((_rate))) -#define MGN_RATE_STR(_rate) \ - (_rate == MGN_1M) ? "CCK_1M" : \ - (_rate == MGN_2M) ? "CCK_2M" : \ - (_rate == MGN_5_5M) ? "CCK_5.5M" : \ - (_rate == MGN_11M) ? "CCK_11M" : \ - (_rate == MGN_6M) ? "OFDM_6M" : \ - (_rate == MGN_9M) ? "OFDM_9M" : \ - (_rate == MGN_12M) ? "OFDM_12M" : \ - (_rate == MGN_18M) ? "OFDM_18M" : \ - (_rate == MGN_24M) ? "OFDM_24M" : \ - (_rate == MGN_36M) ? "OFDM_36M" : \ - (_rate == MGN_48M) ? "OFDM_48M" : \ - (_rate == MGN_54M) ? "OFDM_54M" : \ - (_rate == MGN_MCS32) ? "MCS32" : \ - (_rate == MGN_MCS0) ? "MCS0" : \ - (_rate == MGN_MCS1) ? "MCS1" : \ - (_rate == MGN_MCS2) ? "MCS2" : \ - (_rate == MGN_MCS3) ? "MCS3" : \ - (_rate == MGN_MCS4) ? "MCS4" : \ - (_rate == MGN_MCS5) ? "MCS5" : \ - (_rate == MGN_MCS6) ? "MCS6" : \ - (_rate == MGN_MCS7) ? "MCS7" : \ - (_rate == MGN_MCS8) ? "MCS8" : \ - (_rate == MGN_MCS9) ? "MCS9" : \ - (_rate == MGN_MCS10) ? "MCS10" : \ - (_rate == MGN_MCS11) ? "MCS11" : \ - (_rate == MGN_MCS12) ? "MCS12" : \ - (_rate == MGN_MCS13) ? "MCS13" : \ - (_rate == MGN_MCS14) ? "MCS14" : \ - (_rate == MGN_MCS15) ? "MCS15" : \ - (_rate == MGN_MCS16) ? "MCS16" : \ - (_rate == MGN_MCS17) ? "MCS17" : \ - (_rate == MGN_MCS18) ? "MCS18" : \ - (_rate == MGN_MCS19) ? "MCS19" : \ - (_rate == MGN_MCS20) ? "MCS20" : \ - (_rate == MGN_MCS21) ? "MCS21" : \ - (_rate == MGN_MCS22) ? "MCS22" : \ - (_rate == MGN_MCS23) ? "MCS23" : \ - (_rate == MGN_MCS24) ? "MCS24" : \ - (_rate == MGN_MCS25) ? "MCS25" : \ - (_rate == MGN_MCS26) ? "MCS26" : \ - (_rate == MGN_MCS27) ? "MCS27" : \ - (_rate == MGN_MCS28) ? "MCS28" : \ - (_rate == MGN_MCS29) ? "MCS29" : \ - (_rate == MGN_MCS30) ? "MCS30" : \ - (_rate == MGN_MCS31) ? "MCS31" : \ - (_rate == MGN_VHT1SS_MCS0) ? "VHT1SMCS0" : \ - (_rate == MGN_VHT1SS_MCS1) ? "VHT1SMCS1" : \ - (_rate == MGN_VHT1SS_MCS2) ? "VHT1SMCS2" : \ - (_rate == MGN_VHT1SS_MCS3) ? "VHT1SMCS3" : \ - (_rate == MGN_VHT1SS_MCS4) ? "VHT1SMCS4" : \ - (_rate == MGN_VHT1SS_MCS5) ? "VHT1SMCS5" : \ - (_rate == MGN_VHT1SS_MCS6) ? "VHT1SMCS6" : \ - (_rate == MGN_VHT1SS_MCS7) ? "VHT1SMCS7" : \ - (_rate == MGN_VHT1SS_MCS8) ? "VHT1SMCS8" : \ - (_rate == MGN_VHT1SS_MCS9) ? "VHT1SMCS9" : \ - (_rate == MGN_VHT2SS_MCS0) ? "VHT2SMCS0" : \ - (_rate == MGN_VHT2SS_MCS1) ? "VHT2SMCS1" : \ - (_rate == MGN_VHT2SS_MCS2) ? "VHT2SMCS2" : \ - (_rate == MGN_VHT2SS_MCS3) ? "VHT2SMCS3" : \ - (_rate == MGN_VHT2SS_MCS4) ? "VHT2SMCS4" : \ - (_rate == MGN_VHT2SS_MCS5) ? "VHT2SMCS5" : \ - (_rate == MGN_VHT2SS_MCS6) ? "VHT2SMCS6" : \ - (_rate == MGN_VHT2SS_MCS7) ? "VHT2SMCS7" : \ - (_rate == MGN_VHT2SS_MCS8) ? "VHT2SMCS8" : \ - (_rate == MGN_VHT2SS_MCS9) ? "VHT2SMCS9" : \ - (_rate == MGN_VHT3SS_MCS0) ? "VHT3SMCS0" : \ - (_rate == MGN_VHT3SS_MCS1) ? "VHT3SMCS1" : \ - (_rate == MGN_VHT3SS_MCS2) ? "VHT3SMCS2" : \ - (_rate == MGN_VHT3SS_MCS3) ? "VHT3SMCS3" : \ - (_rate == MGN_VHT3SS_MCS4) ? "VHT3SMCS4" : \ - (_rate == MGN_VHT3SS_MCS5) ? "VHT3SMCS5" : \ - (_rate == MGN_VHT3SS_MCS6) ? "VHT3SMCS6" : \ - (_rate == MGN_VHT3SS_MCS7) ? "VHT3SMCS7" : \ - (_rate == MGN_VHT3SS_MCS8) ? "VHT3SMCS8" : \ - (_rate == MGN_VHT3SS_MCS9) ? "VHT3SMCS9" : \ - (_rate == MGN_VHT4SS_MCS0) ? "VHT4SMCS0" : \ - (_rate == MGN_VHT4SS_MCS1) ? "VHT4SMCS1" : \ - (_rate == MGN_VHT4SS_MCS2) ? "VHT4SMCS2" : \ - (_rate == MGN_VHT4SS_MCS3) ? "VHT4SMCS3" : \ - (_rate == MGN_VHT4SS_MCS4) ? "VHT4SMCS4" : \ - (_rate == MGN_VHT4SS_MCS5) ? "VHT4SMCS5" : \ - (_rate == MGN_VHT4SS_MCS6) ? "VHT4SMCS6" : \ - (_rate == MGN_VHT4SS_MCS7) ? "VHT4SMCS7" : \ - (_rate == MGN_VHT4SS_MCS8) ? "VHT4SMCS8" : \ - (_rate == MGN_VHT4SS_MCS9) ? "VHT4SMCS9" : "UNKNOWN" +const char *MGN_RATE_STR(enum MGN_RATE rate); typedef enum _RATE_SECTION { CCK = 0, @@ -1356,6 +1283,7 @@ struct ieee80211_txb { #define MAX_OWE_IE_LEN (128) #define MAX_P2P_IE_LEN (256) #define MAX_WFD_IE_LEN (128) +#define MAX_RSNX_IE_LEN (16) #define NETWORK_EMPTY_ESSID (1<<0) #define NETWORK_HAS_OFDM (1<<1) @@ -1606,6 +1534,24 @@ enum _PUBLIC_ACTION { ACT_PUBLIC_GAS_COMEBACK_RSP = 13, ACT_PUBLIC_TDLS_DISCOVERY_RSP = 14, ACT_PUBLIC_LOCATION_TRACK = 15, + ACT_PUBLIC_QAB_REQ, + ACT_PUBLIC_QAB_RSP, + ACT_PUBLIC_QMF_POLICY, + ACT_PUBLIC_QMF_POLICY_CHANGE, + ACT_PUBLIC_QLOAD_REQ, + ACT_PUBLIC_QLOAD_REPORT, + ACT_PUBLIC_HCCA_TXOP_ADV, + ACT_PUBLIC_HCCA_TXOP_RSP, + ACT_PUBLIC_PUBLIC_KEY, + ACT_PUBLIC_CH_AVAILABILITY_QUERY, + ACT_PUBLIC_CH_SCHEDULE_MGMT, + ACT_PUBLIC_CONTACT_VERI_SIGNAL, + ACT_PUBLIC_GDD_ENABLE_REQ, + ACT_PUBLIC_GDD_ENABLE_RSP, + ACT_PUBLIC_NETWORK_CH_CONTROL, + ACT_PUBLIC_WHITE_SPACE_MAP_ANN, + ACT_PUBLIC_FTM_REQ, + ACT_PUBLIC_FTM, ACT_PUBLIC_MAX }; @@ -1669,25 +1615,33 @@ enum rtw_ieee80211_vht_actioncode { RTW_WLAN_ACTION_VHT_OPMODE_NOTIFICATION = 2, }; -/*IEEE 802.11r action code*/ -#ifdef CONFIG_RTW_80211R -enum rtw_ieee80211_ft_actioncode { - RTW_WLAN_ACTION_FT_RESV, - RTW_WLAN_ACTION_FT_REQ, - RTW_WLAN_ACTION_FT_RSP, - RTW_WLAN_ACTION_FT_CONF, - RTW_WLAN_ACTION_FT_ACK, - RTW_WLAN_ACTION_FT_MAX, -}; -#endif -#ifdef CONFIG_RTW_WNM -enum rtw_ieee80211_wnm_actioncode { - RTW_WLAN_ACTION_WNM_BTM_QUERY = 6, - RTW_WLAN_ACTION_WNM_BTM_REQ = 7, - RTW_WLAN_ACTION_WNM_BTM_RSP = 8, +enum EXT_CAP_INFO{ + BSS_COEXT = 0, /* 20/40 BSS Coexistence Management Support */ + EXT_CH_SWITCH = 2, /* Extended Channel Switching */ + WNM_SLEEP_MODE = 17, /* WNM Sleep Mode */ + BSS_TRANSITION = 19, /* BSS Transition */ + MULTI_BSSID = 22, /* Multiple BSSID */ + TIME_MEASUREMENT = 23, /* Timing Measurement */ + SSID_LIST = 25, /* SSID List */ + TDLS_PSM = 29, /* TDLS Peer PSM Support */ + TDLS_CH_SWITCH = 30, /* TDLS channel switching */ + INTERWORKING = 31, /* Interworking */ + TDLS_SUPPORT = 37, /* TDLS Support */ + WNM_NOTIFICATION = 46, /* WNM Notification */ + OP_MODE_NOTIFICATION = 62, /* Operating Mode Notification */ + FTM_RESPONDER = 70, /* Fine Timing Measurement Responder */ + FTM_INITIATOR = 71, /* Fine Timing Measurement Initiator */ }; -#endif + +#define CSA_SWITCH_MODE 0 +#define CSA_NEW_CH 1 +#define CSA_SWITCH_COUNT 2 + +#define ECSA_SWITCH_MODE 0 +#define ECSA_OP_CLASS 1 +#define ECSA_NEW_CH 2 +#define ECSA_SWITCH_COUNT 3 #define OUI_MICROSOFT 0x0050f2 /* Microsoft (also used in Wi-Fi specs) * 00:50:F2 */ @@ -1924,6 +1878,7 @@ enum secondary_ch_offset { }; u8 secondary_ch_offset_to_hal_ch_offset(u8 ch_offset); u8 hal_ch_offset_to_secondary_ch_offset(u8 ch_offset); +u8 *rtw_set_ie_tpc_report(u8 *buf, u32 *buf_len, u8 tx_power, u8 link_margin); u8 *rtw_set_ie_ch_switch(u8 *buf, u32 *buf_len, u8 ch_switch_mode, u8 new_ch, u8 ch_switch_cnt); u8 *rtw_set_ie_secondary_ch_offset(u8 *buf, u32 *buf_len, u8 secondary_ch_offset); u8 *rtw_set_ie_mesh_ch_switch_parm(u8 *buf, u32 *buf_len, u8 ttl, u8 flags, u16 reason, u16 precedence); @@ -1932,6 +1887,7 @@ u8 *rtw_get_ie(const u8 *pbuf, sint index, sint *len, sint limit); u8 rtw_update_rate_bymode(WLAN_BSSID_EX *pbss_network, u32 mode); u8 *rtw_get_ie_ex(const u8 *in_ie, uint in_len, u8 eid, const u8 *oui, u8 oui_len, u8 *ie, uint *ielen); +u8 rtw_ies_update_ie(u8 *ies, uint *ies_len, uint ies_offset, u8 eid, const u8 *content, u8 content_len); int rtw_ies_remove_ie(u8 *ies, uint *ies_len, uint offset, u8 eid, u8 *oui, u8 oui_len); void rtw_set_supported_rate(u8 *SupportedRates, uint mode) ; @@ -1976,7 +1932,7 @@ int rtw_get_wpa_cipher_suite(u8 *s); int rtw_get_rsn_cipher_suite(u8 *s); int rtw_get_wapi_ie(u8 *in_ie, uint in_len, u8 *wapi_ie, u16 *wapi_len); int rtw_parse_wpa_ie(u8 *wpa_ie, int wpa_ie_len, int *group_cipher, int *pairwise_cipher, u32 *akm); -int rtw_parse_wpa2_ie(u8 *wpa_ie, int wpa_ie_len, int *group_cipher, int *pairwise_cipher, int *gmcs, u32 *akm, u8 *mfp_opt, u8 *spp_opt); +int rtw_parse_wpa2_ie(u8 *wpa_ie, int wpa_ie_len, int *group_cipher, int *pairwise_cipher, int *gmcs, u32 *akm, u8 *mfp_opt, u8* spp_opt); int rtw_get_sec_ie(u8 *in_ie, uint in_len, u8 *rsn_ie, u16 *rsn_len, u8 *wpa_ie, u16 *wpa_len); @@ -1988,6 +1944,11 @@ u8 *rtw_get_wps_attr_content(u8 *wps_ie, uint wps_ielen, u16 target_attr_id , u8 u8 *rtw_get_owe_ie(const u8 *in_ie, uint in_len, u8 *owe_ie, uint *owe_ielen); +void rtw_add_ext_cap_info(u8 *ext_cap_data, u8 *ext_cap_data_len, u8 cap_info); +void rtw_remove_ext_cap_info(u8 *ext_cap_data, u8 *ext_cap_data_len, u8 cap_info); +u8 rtw_update_ext_cap_ie(u8 *ext_cap_data, u8 ext_cap_data_len, u8 *ies, u32 *ies_len, u8 ies_offset); +void rtw_parse_ext_cap_ie(u8 *ext_cap_data, u8 *ext_cap_data_len, u8 *ies, u32 ies_len, u8 ies_offset); + /** * for_each_ie - iterate over continuous IEs * @ie: @@ -1998,6 +1959,7 @@ u8 *rtw_get_owe_ie(const u8 *in_ie, uint in_len, u8 *owe_ie, uint *owe_ielen); for (ie = (void *)buf; (((u8 *)ie) - ((u8 *)buf) + 1) < buf_len; ie = (void *)(((u8 *)ie) + *(((u8 *)ie)+1) + 2)) void dump_ies(void *sel, const u8 *buf, u32 buf_len); +#ifdef CONFIG_RTW_DEBUG #ifdef CONFIG_80211N_HT #define HT_SC_OFFSET_MAX 4 @@ -2008,6 +1970,7 @@ void dump_ht_cap_ie_content(void *sel, const u8 *buf, u32 buf_len); #endif void dump_wps_ie(void *sel, const u8 *ie, u32 ie_len); +#endif /* CONFIG_RTW_DEBUG */ void rtw_ies_get_chbw(u8 *ies, int ies_len, u8 *ch, u8 *bw, u8 *offset, u8 ht, u8 vht); @@ -2018,9 +1981,12 @@ bool rtw_is_chbw_grouped(u8 ch_a, u8 bw_a, u8 offset_a void rtw_sync_chbw(u8 *req_ch, u8 *req_bw, u8 *req_offset , u8 *g_ch, u8 *g_bw, u8 *g_offset); +#ifdef CONFIG_P2P u32 rtw_get_p2p_merged_ies_len(u8 *in_ie, u32 in_len); int rtw_p2p_merge_ies(u8 *in_ie, u32 in_len, u8 *merge_ie); +#ifdef CONFIG_RTW_DEBUG void dump_p2p_ie(void *sel, const u8 *ie, u32 ie_len); +#endif u8 *rtw_get_p2p_ie(const u8 *in_ie, int in_len, u8 *p2p_ie, uint *p2p_ielen); u8 *rtw_get_p2p_attr(u8 *p2p_ie, uint p2p_ielen, u8 target_attr_id, u8 *buf_attr, u32 *len_attr); u8 *rtw_get_p2p_attr_content(u8 *p2p_ie, uint p2p_ielen, u8 target_attr_id, u8 *buf_content, uint *len_content); @@ -2030,16 +1996,32 @@ uint rtw_del_p2p_attr(u8 *ie, uint ielen_ori, u8 attr_id); u8 *rtw_bss_ex_get_p2p_ie(WLAN_BSSID_EX *bss_ex, u8 *p2p_ie, uint *p2p_ielen); void rtw_bss_ex_del_p2p_ie(WLAN_BSSID_EX *bss_ex); void rtw_bss_ex_del_p2p_attr(WLAN_BSSID_EX *bss_ex, u8 attr_id); +#endif /* CONFIG_P2P */ +uint rtw_del_wfd_ie(u8 *ies, uint ies_len_ori, const char *msg); +void rtw_bss_ex_del_wfd_ie(WLAN_BSSID_EX *bss_ex); +#ifdef CONFIG_WFD +#ifdef CONFIG_RTW_DEBUG void dump_wfd_ie(void *sel, const u8 *ie, u32 ie_len); +#endif u8 *rtw_get_wfd_ie(const u8 *in_ie, int in_len, u8 *wfd_ie, uint *wfd_ielen); u8 *rtw_get_wfd_attr(u8 *wfd_ie, uint wfd_ielen, u8 target_attr_id, u8 *buf_attr, u32 *len_attr); u8 *rtw_get_wfd_attr_content(u8 *wfd_ie, uint wfd_ielen, u8 target_attr_id, u8 *buf_content, uint *len_content); -uint rtw_del_wfd_ie(u8 *ies, uint ies_len_ori, const char *msg); uint rtw_del_wfd_attr(u8 *ie, uint ielen_ori, u8 attr_id); u8 *rtw_bss_ex_get_wfd_ie(WLAN_BSSID_EX *bss_ex, u8 *wfd_ie, uint *wfd_ielen); -void rtw_bss_ex_del_wfd_ie(WLAN_BSSID_EX *bss_ex); void rtw_bss_ex_del_wfd_attr(WLAN_BSSID_EX *bss_ex, u8 attr_id); +#endif + +#define MULTI_AP_SUB_ELEM_TYPE 0x06 +#define MULTI_AP_TEAR_DOWN BIT(4) +#define MULTI_AP_FRONTHAUL_BSS BIT(5) +#define MULTI_AP_BACKHAUL_BSS BIT(6) +#define MULTI_AP_BACKHAUL_STA BIT(7) +#ifdef CONFIG_RTW_MULTI_AP +void dump_multi_ap_ie(void *sel, const u8 *ie, u32 ie_len); +u8 rtw_get_multi_ap_ie_ext(const u8 *ies, int ies_len); +u8 *rtw_set_multi_ap_ie_ext(u8 *pbuf, uint *frlen, u8 val); +#endif uint rtw_get_rateset_len(u8 *rateset); @@ -2060,6 +2042,8 @@ void rtw_macaddr_cfg(u8 *out, const u8 *hw_mac_addr); u16 rtw_ht_mcs_rate(u8 bw_40MHz, u8 short_GI, unsigned char *MCS_rate); u8 rtw_ht_mcsset_to_nss(u8 *supp_mcs_set); u32 rtw_ht_mcs_set_to_bitmap(u8 *mcs_set, u8 nss); +u8 rtw_ht_cap_get_rx_nss(u8 *ht_cap); +u8 rtw_ht_cap_get_tx_nss(u8 *ht_cap); int rtw_action_frame_parse(const u8 *frame, u32 frame_len, u8 *category, u8 *action); const char *action_public_str(u8 action); @@ -2074,5 +2058,4 @@ int wifirate2_ratetbl_inx(unsigned char rate); /*void rtw_set_spp_amsdu_mode(u8 mode, u8 *rsn_ie, int rsn_ie_len); */ u8 rtw_check_amsdu_disable(u8 mode, u8 spp_opt); - #endif /* IEEE80211_H */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/osdep_intf.h b/drivers/net/wireless/realtek/rtl8822ce/include/osdep_intf.h index ed0ebd4b..63e535ee 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/osdep_intf.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/osdep_intf.h @@ -90,9 +90,7 @@ void rtw_os_ndevs_unregister(struct dvobj_priv *dvobj); int rtw_os_ndevs_init(struct dvobj_priv *dvobj); void rtw_os_ndevs_deinit(struct dvobj_priv *dvobj); -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35)) -u16 rtw_recv_select_queue(struct sk_buff *skb); -#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35) */ +u16 rtw_os_recv_select_queue(u8 *msdu, enum rtw_rx_llc_hdl llc_hdl); int rtw_ndev_notifier_register(void); void rtw_ndev_notifier_unregister(void); @@ -100,6 +98,10 @@ void rtw_inetaddr_notifier_register(void); void rtw_inetaddr_notifier_unregister(void); #include "../os_dep/linux/rtw_proc.h" +#include "../os_dep/linux/nlrtw.h" +#ifdef CONFIG_PLATFORM_CMAP_INTFS +#include "../os_dep/linux/custom_multiap_intfs/custom_multiap_intfs.h" +#endif #ifdef CONFIG_IOCTL_CFG80211 #include "../os_dep/linux/ioctl_cfg80211.h" diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/osdep_service.h b/drivers/net/wireless/realtek/rtl8822ce/include/osdep_service.h index 3efb2f0e..116477c1 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/osdep_service.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/osdep_service.h @@ -26,10 +26,13 @@ #define RTW_SDIO_READ_PORT_FAIL 7 #define RTW_ALREADY 8 #define RTW_RA_RESOLVING 9 -#define RTW_BMC_NO_NEED 10 +#define RTW_ORI_NO_NEED 10 #define RTW_XBUF_UNAVAIL 11 #define RTW_TX_BALANCE 12 #define RTW_TX_WAIT_MORE_FRAME 13 +#define RTW_QUEUE_MGMT 14 +#define RTW_NOT_SUPPORT 15 +#define RTW_BUSY 16 /* #define RTW_STATUS_TIMEDOUT -110 */ @@ -46,6 +49,9 @@ #ifdef PLATFORM_LINUX #include +#if defined(CONFIG_RTW_ANDROID_GKI) + #include +#endif #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)) #include #include @@ -237,6 +243,9 @@ void *_rtw_zmalloc(u32 sz); void *_rtw_malloc(u32 sz); void _rtw_mfree(void *pbuf, u32 sz); +#ifdef CONFIG_PCIE_DMA_COHERENT +struct sk_buff *dev_alloc_skb_coherent(struct pci_dev *pdev, unsigned int size); +#endif struct sk_buff *_rtw_skb_alloc(u32 sz); void _rtw_skb_free(struct sk_buff *skb); struct sk_buff *_rtw_skb_copy(const struct sk_buff *skb); @@ -384,6 +393,30 @@ extern bool _rtw_time_after(systime a, systime b); #define rtw_time_before(a,b) _rtw_time_after(b,a) #endif +sysptime rtw_sptime_get(void); +sysptime rtw_sptime_set(s64 secs, const u32 nsecs); +sysptime rtw_sptime_zero(void); + +int rtw_sptime_cmp(const sysptime cmp1, const sysptime cmp2); +bool rtw_sptime_eql(const sysptime cmp1, const sysptime cmp2); +bool rtw_sptime_is_zero(const sysptime sptime); +sysptime rtw_sptime_sub(const sysptime lhs, const sysptime rhs); +sysptime rtw_sptime_add(const sysptime lhs, const sysptime rhs); + +s64 rtw_sptime_to_ms(const sysptime sptime); +sysptime rtw_ms_to_sptime(u64 ms); +s64 rtw_sptime_to_us(const sysptime sptime); +sysptime rtw_us_to_sptime(u64 us); +s64 rtw_sptime_to_ns(const sysptime sptime); +sysptime rtw_ns_to_sptime(u64 ns); + +s64 rtw_sptime_diff_ms(const sysptime start, const sysptime end); +s64 rtw_sptime_pass_ms(const sysptime start); +s64 rtw_sptime_diff_us(const sysptime start, const sysptime end); +s64 rtw_sptime_pass_us(const sysptime start); +s64 rtw_sptime_diff_ns(const sysptime start, const sysptime end); +s64 rtw_sptime_pass_ns(const sysptime start); + extern void rtw_sleep_schedulable(int ms); extern void rtw_msleep_os(int ms); @@ -403,6 +436,39 @@ extern void rtw_udelay_os(int us); extern void rtw_yield_os(void); +enum rtw_pwait_type { + RTW_PWAIT_TYPE_MSLEEP, + RTW_PWAIT_TYPE_USLEEP, + RTW_PWAIT_TYPE_YIELD, + RTW_PWAIT_TYPE_MDELAY, + RTW_PWAIT_TYPE_UDELAY, + + RTW_PWAIT_TYPE_NUM, +}; + +#define RTW_PWAIT_TYPE_VALID(type) (type < RTW_PWAIT_TYPE_NUM) + +struct rtw_pwait_conf { + enum rtw_pwait_type type; + s32 wait_time; + s32 wait_cnt_lmt; +}; + +struct rtw_pwait_ctx { + struct rtw_pwait_conf conf; + s32 wait_cnt; + void (*wait_hdl)(int us); +}; + +extern const char *_rtw_pwait_type_str[]; +#define rtw_pwait_type_str(type) (RTW_PWAIT_TYPE_VALID(type) ? _rtw_pwait_type_str[type] : _rtw_pwait_type_str[RTW_PWAIT_TYPE_NUM]) + +#define rtw_pwctx_reset(pwctx) (pwctx)->wait_cnt = 0 +#define rtw_pwctx_wait(pwctx) do { (pwctx)->wait_hdl((pwctx)->conf.wait_time); (pwctx)->wait_cnt++; } while(0) +#define rtw_pwctx_waited(pwctx) ((pwctx)->wait_cnt) +#define rtw_pwctx_exceed(pwctx) ((pwctx)->conf.wait_cnt_lmt >= 0 && (pwctx)->wait_cnt >= (pwctx)->conf.wait_cnt_lmt) + +int rtw_pwctx_config(struct rtw_pwait_ctx *pwctx, enum rtw_pwait_type type, s32 time, s32 cnt_lmt); extern void rtw_init_timer(_timer *ptimer, void *padapter, void *pfunc, void *ctx); @@ -606,9 +672,9 @@ static inline int largest_bit_64(u64 bitmask) return i; } -#define rtw_abs(a) (a < 0 ? -a : a) -#define rtw_min(a, b) ((a > b) ? b : a) -#define rtw_max(a, b) ((a > b) ? a : b) +#define rtw_abs(a) ((a) < 0 ? -(a) : (a)) +#define rtw_min(a, b) (((a) > (b)) ? (b) : (a)) +#define rtw_max(a, b) (((a) > (b)) ? (a) : (b)) #define rtw_is_range_a_in_b(hi_a, lo_a, hi_b, lo_b) (((hi_a) <= (hi_b)) && ((lo_a) >= (lo_b))) #define rtw_is_range_overlap(hi_a, lo_a, hi_b, lo_b) (((hi_a) > (lo_b)) && ((lo_a) < (hi_b))) @@ -651,12 +717,14 @@ extern int ATOMIC_DEC_RETURN(ATOMIC_T *v); extern bool ATOMIC_INC_UNLESS(ATOMIC_T *v, int u); /* File operation APIs, just for linux now */ +#if !defined(CONFIG_RTW_ANDROID_GKI) extern int rtw_is_dir_readable(const char *path); +extern int rtw_store_to_file(const char *path, u8 *buf, u32 sz); +#endif /* !defined(CONFIG_RTW_ANDROID_GKI) */ extern int rtw_is_file_readable(const char *path); extern int rtw_is_file_readable_with_size(const char *path, u32 *sz); extern int rtw_readable_file_sz_chk(const char *path, u32 sz); extern int rtw_retrieve_from_file(const char *path, u8 *buf, u32 sz); -extern int rtw_store_to_file(const char *path, u8 *buf, u32 sz); #ifndef PLATFORM_FREEBSD @@ -746,7 +814,7 @@ extern u32 rtw_random32(void); } while (0) void rtw_buf_free(u8 **buf, u32 *buf_len); -void rtw_buf_update(u8 **buf, u32 *buf_len, u8 *src, u32 src_len); +void rtw_buf_update(u8 **buf, u32 *buf_len, const u8 *src, u32 src_len); struct rtw_cbuf { u32 write; @@ -793,11 +861,13 @@ struct blacklist_ent { systime exp_time; }; +#ifdef CONFIG_RTW_MESH int rtw_blacklist_add(_queue *blist, const u8 *addr, u32 timeout_ms); int rtw_blacklist_del(_queue *blist, const u8 *addr); int rtw_blacklist_search(_queue *blist, const u8 *addr); void rtw_blacklist_flush(_queue *blist); void dump_blacklist(void *sel, _queue *blist, const char *title); +#endif /* String handler */ @@ -805,6 +875,7 @@ BOOLEAN is_null(char c); BOOLEAN is_all_null(char *c, int len); BOOLEAN is_eol(char c); BOOLEAN is_space(char c); +BOOLEAN is_decimal(char chTmp); BOOLEAN IsHexDigit(char chTmp); BOOLEAN is_alpha(char chTmp); char alpha_to_upper(char c); @@ -813,6 +884,8 @@ int hex2num_i(char c); int hex2byte_i(const char *hex); int hexstr2bin(const char *hex, u8 *buf, size_t len); +int hwaddr_aton_i(const char *txt, u8 *addr); + /* * Write formatted output to sized buffer */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/osdep_service_linux.h b/drivers/net/wireless/realtek/rtl8822ce/include/osdep_service_linux.h old mode 100644 new mode 100755 index f4af0f60..039c40cc --- a/drivers/net/wireless/realtek/rtl8822ce/include/osdep_service_linux.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/osdep_service_linux.h @@ -96,6 +96,10 @@ #ifdef CONFIG_IOCTL_CFG80211 /* #include */ #include +#else + #ifdef CONFIG_REGD_SRC_FROM_OS + #error "CONFIG_REGD_SRC_FROM_OS requires CONFIG_IOCTL_CFG80211" + #endif #endif /* CONFIG_IOCTL_CFG80211 */ @@ -149,6 +153,16 @@ #endif +/* + * MLD related linux kernel patch in + * Android Common Kernel android13-5.15 + * refs/heads/common-android13-5.15-2023-04 (5.15.94) + * refs/heads/android13-5.15-lts (5.15.106) + */ +#if (defined(__ANDROID_COMMON_KERNEL__) && (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 94))) + #define CONFIG_MLD_KERNEL_PATCH +#endif + typedef struct semaphore _sema; typedef spinlock_t _lock; #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) @@ -217,6 +231,7 @@ typedef void *timer_hdl_context; #endif typedef unsigned long systime; +typedef ktime_t sysptime; typedef struct tasklet_struct _tasklet; #if (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 22)) @@ -385,6 +400,11 @@ __inline static void _cancel_timer(_timer *ptimer, u8 *bcancelled) *bcancelled = del_timer_sync(&ptimer->timer) == 1 ? 1 : 0; } +__inline static void _cancel_timer_async(_timer *ptimer) +{ + del_timer(&ptimer->timer); +} + static inline void _init_workitem(_workitem *pwork, void *pfunc, void *cntx) { #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 20)) @@ -516,6 +536,15 @@ static inline int rtw_merge_string(char *dst, int dst_len, const char *src1, con /* Atomic integer operations */ #define ATOMIC_T atomic_t + +#if defined(DBG_MEM_ERR_FREE) +void rtw_dbg_mem_init(void); +void rtw_dbg_mem_deinit(void); +#else +#define rtw_dbg_mem_init() do {} while (0) +#define rtw_dbg_mem_deinit() do {} while (0) +#endif /* DBG_MEM_ERR_FREE */ + #define rtw_netdev_priv(netdev) (((struct rtw_netdev_priv_indicator *)netdev_priv(netdev))->priv) #define NDEV_FMT "%s" @@ -550,5 +579,22 @@ extern struct net_device *rtw_alloc_etherdev(int sizeof_priv); #define STRUCT_PACKED __attribute__ ((packed)) +#ifndef fallthrough +#if __GNUC__ >= 5 || defined(__clang__) +#ifndef __has_attribute +#define __has_attribute(x) 0 +#endif +#if __has_attribute(__fallthrough__) +#define fallthrough __attribute__((__fallthrough__)) +#endif +#endif +#ifndef fallthrough +#define fallthrough do {} while (0) /* fallthrough */ +#endif +#endif + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 17, 0)) +#define dev_addr_mod(dev, offset, addr, len) _rtw_memcpy(&dev->dev_addr[offset], addr, len) +#endif #endif /* __OSDEP_LINUX_SERVICE_H_ */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/pci_osintf.h b/drivers/net/wireless/realtek/rtl8822ce/include/pci_osintf.h index 3308ced5..077064a7 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/pci_osintf.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/pci_osintf.h @@ -15,7 +15,7 @@ #ifndef __PCI_OSINTF_H #define __PCI_OSINTF_H -#ifdef RTK_129X_PLATFORM +#ifdef CONFIG_PLATFORM_RTK129X #define PCIE_SLOT1_MEM_START 0x9804F000 #define PCIE_SLOT1_MEM_LEN 0x1000 #define PCIE_SLOT1_CTRL_START 0x9804EC00 @@ -38,9 +38,6 @@ void PlatformClearPciPMEStatus(PADAPTER Adapter); void rtw_pci_aspm_config(_adapter *padapter); void rtw_pci_aspm_config_l1off_general(_adapter *padapter, u8 eanble); -#ifdef CONFIG_64BIT_DMA - u8 PlatformEnableDMA64(PADAPTER Adapter); -#endif #ifdef CONFIG_PCI_DYNAMIC_ASPM void rtw_pci_set_aspm_lnkctl(_adapter *padapter, u8 mode); void rtw_pci_set_l1_latency(_adapter *padapter, u8 mode); diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/recv_osdep.h b/drivers/net/wireless/realtek/rtl8822ce/include/recv_osdep.h old mode 100644 new mode 100755 index ffa9a905..43383a68 --- a/drivers/net/wireless/realtek/rtl8822ce/include/recv_osdep.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/recv_osdep.h @@ -47,10 +47,11 @@ int rtw_os_recvframe_duplicate_skb(_adapter *padapter, union recv_frame *pclonef void rtw_os_free_recvframe(union recv_frame *precvframe); -int rtw_os_recvbuf_resource_alloc(_adapter *padapter, struct recv_buf *precvbuf); +int rtw_os_recvbuf_resource_alloc(_adapter *padapter, struct recv_buf *precvbuf, u32 size); int rtw_os_recvbuf_resource_free(_adapter *padapter, struct recv_buf *precvbuf); -_pkt *rtw_os_alloc_msdu_pkt(union recv_frame *prframe, const u8 *da, const u8 *sa, u8 *msdu ,u16 msdu_len); +_pkt *rtw_os_alloc_msdu_pkt(union recv_frame *prframe, const u8 *da, const u8 *sa + , u8 *msdu ,u16 msdu_len, enum rtw_rx_llc_hdl llc_hdl); void rtw_os_recv_indicate_pkt(_adapter *padapter, _pkt *pkt, union recv_frame *rframe); void rtw_os_read_port(_adapter *padapter, struct recv_buf *precvbuf); @@ -66,4 +67,6 @@ void dynamic_napi_th_chk (_adapter *adapter); #endif /* CONFIG_RTW_NAPI */ #endif /* PLATFORM_LINUX */ +void rtw_rx_dbg_monitor_ip_statistic(_adapter *padapter, _pkt *pkt); + #endif /* */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8188e_hal.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8188e_hal.h index 611cc73b..9665896d 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8188e_hal.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8188e_hal.h @@ -138,8 +138,13 @@ typedef struct _RT_8188E_FIRMWARE_HDR { /* For WoWLan , more reserved page */ #ifdef CONFIG_WOWLAN + #ifdef CONFIG_WOW_KEEP_ALIVE_PATTERN + #define WOWLAN_KEEP_ALIVE_PAGE 0x02 /*for keep alive packet*/ + #else + #define WOWLAN_KEEP_ALIVE_PAGE 0x00 + #endif /*CONFIG_WOW_KEEP_ALIVE_PATTERN*/ /* 1 ArpRsp + 2 NbrAdv + 2 NDPInfo + 1 RCI + 1 AOAC = 7 pages */ - #define WOWLAN_PAGE_NUM_88E 0x07 + #define WOWLAN_PAGE_NUM_88E (0x07+ WOWLAN_KEEP_ALIVE_PAGE) #else #define WOWLAN_PAGE_NUM_88E 0x00 #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8188e_xmit.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8188e_xmit.h old mode 100755 new mode 100644 index 681e64bd..9772f125 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8188e_xmit.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8188e_xmit.h @@ -238,19 +238,22 @@ struct txrpt_ccx_88e { void rtl8188e_fill_fake_txdesc(PADAPTER padapter, u8 *pDesc, u32 BufferLen, u8 IsPsPoll, u8 IsBTQosNull, u8 bDataFrame); void rtl8188e_cal_txdesc_chksum(struct tx_desc *ptxdesc); - void fill_txdesc_force_bmc_camid(struct pkt_attrib *pattrib, struct tx_desc *ptxdesc); +void fill_txdesc_force_bmc_camid(struct pkt_attrib *pattrib, struct tx_desc *ptxdesc); #if defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI) s32 rtl8188es_init_xmit_priv(PADAPTER padapter); void rtl8188es_free_xmit_priv(PADAPTER padapter); s32 rtl8188es_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe); s32 rtl8188es_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe); +#ifdef CONFIG_RTW_MGMT_QUEUE + s32 rtl8188es_hal_mgmt_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); +#endif s32 rtl8188es_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); thread_return rtl8188es_xmit_thread(thread_context context); s32 rtl8188es_xmit_buf_handler(PADAPTER padapter); #ifdef CONFIG_SDIO_TX_TASKLET - void rtl8188es_xmit_tasklet(void *priv); + void rtl8188es_xmit_tasklet(unsigned long priv); #endif #endif @@ -259,9 +262,12 @@ void rtl8188e_cal_txdesc_chksum(struct tx_desc *ptxdesc); void rtl8188eu_free_xmit_priv(PADAPTER padapter); s32 rtl8188eu_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe); s32 rtl8188eu_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe); +#ifdef CONFIG_RTW_MGMT_QUEUE + s32 rtl8188eu_hal_mgmt_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); +#endif s32 rtl8188eu_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); s32 rtl8188eu_xmit_buf_handler(PADAPTER padapter); - void rtl8188eu_xmit_tasklet(void *priv); + void rtl8188eu_xmit_tasklet(unsigned long priv); s32 rtl8188eu_xmitframe_complete(_adapter *padapter, struct xmit_priv *pxmitpriv, struct xmit_buf *pxmitbuf); #endif @@ -271,6 +277,9 @@ void rtl8188e_cal_txdesc_chksum(struct tx_desc *ptxdesc); void rtl8188ee_xmitframe_resume(_adapter *padapter); s32 rtl8188ee_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe); s32 rtl8188ee_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe); +#ifdef CONFIG_RTW_MGMT_QUEUE + s32 rtl8188ee_hal_mgmt_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); +#endif s32 rtl8188ee_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); void rtl8188ee_xmit_tasklet(void *priv); #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8188f_cmd.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8188f_cmd.h index a90a630c..6f33708e 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8188f_cmd.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8188f_cmd.h @@ -189,12 +189,6 @@ void rtl8188f_download_rsvd_page(PADAPTER padapter, u8 mstatus); void rtl8188f_set_p2p_ps_offload_cmd(PADAPTER padapter, u8 p2p_ps_state); #endif /* CONFIG_P2P */ -#ifdef CONFIG_TDLS -#ifdef CONFIG_TDLS_CH_SW -void rtl8188f_set_BcnEarly_C2H_Rpt_cmd(PADAPTER padapter, u8 enable); -#endif -#endif - #ifdef CONFIG_P2P_WOWLAN void rtl8188f_set_p2p_wowlan_offload_cmd(PADAPTER padapter); #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8188f_recv.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8188f_recv.h index ca065988..44b51fdb 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8188f_recv.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8188f_recv.h @@ -21,9 +21,7 @@ #ifdef CONFIG_MINIMAL_MEMORY_USAGE #define MAX_RECVBUF_SZ (4000) /* about 4K */ #else - #ifdef CONFIG_PLATFORM_MSTAR - #define MAX_RECVBUF_SZ (8192) /* 8K */ - #elif defined(CONFIG_PLATFORM_HISILICON) + #ifdef CONFIG_PLATFORM_HISILICON #define MAX_RECVBUF_SZ (16384) /* 16k */ #else #define MAX_RECVBUF_SZ (32768) /* 32k */ @@ -37,7 +35,8 @@ #elif defined(CONFIG_PCI_HCI) #define MAX_RECVBUF_SZ (4000) /* about 4K */ #elif defined(CONFIG_SDIO_HCI) - #define MAX_RECVBUF_SZ (RX_DMA_BOUNDARY_8188F + 1) + /* minmum 4K, multiple of 8-byte is required, multiple of sdio block size is prefered */ + #define MAX_RECVBUF_SZ _RND(RX_DMA_BOUNDARY_8188F + 1, 8) #endif /* CONFIG_SDIO_HCI */ /* Rx smooth factor */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8188f_xmit.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8188f_xmit.h old mode 100755 new mode 100644 index 57aaa622..a304a0f4 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8188f_xmit.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8188f_xmit.h @@ -294,6 +294,9 @@ s32 rtl8188fs_init_xmit_priv(PADAPTER padapter); void rtl8188fs_free_xmit_priv(PADAPTER padapter); s32 rtl8188fs_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe); s32 rtl8188fs_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe); +#ifdef CONFIG_RTW_MGMT_QUEUE +s32 rtl8188fs_hal_mgmt_xmitframe_enqueue(PADAPTER, struct xmit_frame *); +#endif s32 rtl8188fs_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); s32 rtl8188fs_xmit_buf_handler(PADAPTER padapter); thread_return rtl8188fs_xmit_thread(thread_context context); @@ -310,9 +313,12 @@ s32 rtl8188fu_init_xmit_priv(PADAPTER padapter); void rtl8188fu_free_xmit_priv(PADAPTER padapter); s32 rtl8188fu_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe); s32 rtl8188fu_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe); +#ifdef CONFIG_RTW_MGMT_QUEUE +s32 rtl8188fu_hal_mgmt_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); +#endif s32 rtl8188fu_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); /* s32 rtl8812au_xmit_buf_handler(PADAPTER padapter); */ -void rtl8188fu_xmit_tasklet(void *priv); +void rtl8188fu_xmit_tasklet(unsigned long priv); s32 rtl8188fu_xmitframe_complete(_adapter *padapter, struct xmit_priv *pxmitpriv, struct xmit_buf *pxmitbuf); void _dbg_dump_tx_info(_adapter *padapter, int frame_tag, struct tx_desc *ptxdesc); #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192e_cmd.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192e_cmd.h index 5efdf997..a9c8be84 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192e_cmd.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192e_cmd.h @@ -126,12 +126,6 @@ s32 c2h_handler_8192e(_adapter *adapter, u8 id, u8 seq, u8 plen, u8 *payload); void rtl8192e_set_p2p_ps_offload_cmd(PADAPTER padapter, u8 p2p_ps_state); #endif /* CONFIG_P2P */ -#ifdef CONFIG_TDLS - #ifdef CONFIG_TDLS_CH_SW - void rtl8192e_set_BcnEarly_C2H_Rpt_cmd(PADAPTER padapter, u8 enable); - #endif -#endif - /* / TX Feedback Content */ #define USEC_UNIT_FOR_8192E_C2H_TX_RPT_QUEUE_TIME 256 diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192e_xmit.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192e_xmit.h old mode 100755 new mode 100644 index bffca3dc..e0573ce8 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192e_xmit.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192e_xmit.h @@ -358,10 +358,13 @@ void rtl8192e_cal_txdesc_chksum(u8 *ptxdesc); void rtl8192eu_free_xmit_priv(PADAPTER padapter); s32 rtl8192eu_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe); s32 rtl8192eu_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe); +#ifdef CONFIG_RTW_MGMT_QUEUE + s32 rtl8192eu_hal_mgmt_xmitframe_enqueue(PADAPTER padapter, struct xmit_frame *pxmitframe); +#endif s32 rtl8192eu_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); s32 rtl8192eu_xmit_buf_handler(PADAPTER padapter); #define hal_xmit_handler rtl8192eu_xmit_buf_handler - void rtl8192eu_xmit_tasklet(void *priv); + void rtl8192eu_xmit_tasklet(unsigned long priv); s32 rtl8192eu_xmitframe_complete(_adapter *padapter, struct xmit_priv *pxmitpriv, struct xmit_buf *pxmitbuf); #endif @@ -369,6 +372,9 @@ void rtl8192e_cal_txdesc_chksum(u8 *ptxdesc); s32 rtl8192ee_init_xmit_priv(PADAPTER padapter); void rtl8192ee_free_xmit_priv(PADAPTER padapter); struct xmit_buf *rtl8192ee_dequeue_xmitbuf(struct rtw_tx_ring *ring); +#ifdef CONFIG_RTW_MGMT_QUEUE + s32 rtl8192ee_hal_mgmt_xmitframe_enqueue(PADAPTER padapter, struct xmit_frame *pxmitframe); +#endif s32 rtl8192ee_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); void rtl8192ee_xmitframe_resume(_adapter *padapter); s32 rtl8192ee_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe); @@ -382,12 +388,15 @@ void rtl8192e_cal_txdesc_chksum(u8 *ptxdesc); s32 rtl8192es_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe); s32 rtl8192es_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe); +#ifdef CONFIG_RTW_MGMT_QUEUE + s32 rtl8192es_hal_mgmt_xmitframe_enqueue(PADAPTER padapter, struct xmit_frame *pxmitframe); +#endif s32 rtl8192es_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); thread_return rtl8192es_xmit_thread(thread_context context); s32 rtl8192es_xmit_buf_handler(PADAPTER padapter); #ifdef CONFIG_SDIO_TX_TASKLET - void rtl8192es_xmit_tasklet(void *priv); + void rtl8192es_xmit_tasklet(unsigned long priv); #endif #endif @@ -439,7 +448,7 @@ u8 BWMapping_92E(PADAPTER Adapter, struct pkt_attrib *pattrib); u8 SCMapping_92E(PADAPTER Adapter, struct pkt_attrib *pattrib); void fill_txdesc_phy(PADAPTER padapter, struct pkt_attrib *pattrib, u8 *ptxdesc); void fill_txdesc_vcs(struct pkt_attrib *pattrib, u8 *ptxdesc); - void fill_txdesc_force_bmc_camid(struct pkt_attrib *pattrib, u8 *ptxdesc); +void fill_txdesc_force_bmc_camid(struct pkt_attrib *pattrib, u8 *ptxdesc); void fill_txdesc_bmc_tx_rate(struct pkt_attrib *pattrib, u8 *ptxdesc); void fill_txdesc_sectype(struct pkt_attrib *pattrib, u8 *ptxdesc); diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192f_cmd.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192f_cmd.h index 69ee6742..44ea6707 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192f_cmd.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192f_cmd.h @@ -179,16 +179,35 @@ void rtl8192f_download_BTCoex_AP_mode_rsvd_page(PADAPTER padapter); void rtl8192f_set_p2p_ps_offload_cmd(PADAPTER padapter, u8 p2p_ps_state); #endif /* CONFIG_P2P */ -#ifdef CONFIG_TDLS -#ifdef CONFIG_TDLS_CH_SW -void rtl8192f_set_BcnEarly_C2H_Rpt_cmd(PADAPTER padapter, u8 enable); -#endif -#endif - #ifdef CONFIG_P2P_WOWLAN void rtl8192f_set_p2p_wowlan_offload_cmd(PADAPTER padapter); #endif +/* AP_REQ_TXREP_CMD 0x43 */ +#define SET_8192F_H2CCMD_TXREP_PARM_STA1(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE(__pH2CCmd, 0, 8, __Value) +#define SET_8192F_H2CCMD_TXREP_PARM_STA2(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE((__pH2CCmd)+1, 0, 8, __Value) +#define SET_8192F_H2CCMD_TXREP_PARM_RTY(__pH2CCmd, __Value) SET_BITS_TO_LE_1BYTE((__pH2CCmd)+2, 0, 2, __Value) + +/* C2H_AP_REQ_TXRPT */ +#define GET_8192F_C2H_TC2H_APREQ_TXRPT_MACID1(_Header) LE_BITS_TO_1BYTE((_Header + 0), 0, 8) +#define GET_8192F_C2H_TC2H_APREQ_TXRPT_TXOK1(_Header) LE_BITS_TO_2BYTE((_Header + 1), 0, 16) +#define GET_8192F_C2H_TC2H_APREQ_TXRPT_TXFAIL1(_Header) LE_BITS_TO_2BYTE((_Header + 3), 0, 16) +#define GET_8192F_C2H_TC2H_APREQ_TXRPT_INIRATE1(_Header) LE_BITS_TO_1BYTE((_Header + 5), 0, 8) +#define GET_8192F_C2H_TC2H_APREQ_TXRPT_MACID2(_Header) LE_BITS_TO_1BYTE((_Header + 6), 0, 8) +#define GET_8192F_C2H_TC2H_APREQ_TXRPT_TXOK2(_Header) LE_BITS_TO_2BYTE((_Header + 7), 0, 16) +#define GET_8192F_C2H_TC2H_APREQ_TXRPT_TXFAIL2(_Header) LE_BITS_TO_2BYTE((_Header + 9), 0, 16) +#define GET_8192F_C2H_TC2H_APREQ_TXRPT_INIRATE2(_Header) LE_BITS_TO_1BYTE((_Header + 11), 0, 8) + +/* C2H_SPC_STAT */ +#define GET_8192F_C2H_SPC_STAT_IDX(_Header) LE_BITS_TO_1BYTE((_Header + 0), 0, 8) + /* Tip :TYPE_A data3 is msb and data0 is lsb */ +#define GET_8192F_C2H_SPC_STAT_TYPEA_RETRY(_Header) LE_BITS_TO_4BYTE((_Header + 1), 0, 32) +#define GET_8192F_C2H_SPC_STAT_TYPEB_PKT1(_Header) LE_BITS_TO_2BYTE((_Header + 1), 0, 16) +#define GET_8192F_C2H_SPC_STAT_TYPEB_RETRY1(_Header) LE_BITS_TO_2BYTE((_Header + 3), 0, 16) +#define GET_8192F_C2H_SPC_STAT_TYPEB_PKT2(_Header) LE_BITS_TO_2BYTE((_Header + 5), 0, 16) +#define GET_8192F_C2H_SPC_STAT_TYPEB_RETRY2(_Header) LE_BITS_TO_2BYTE((_Header + 7), 0, 16) + +void rtl8192f_req_txrpt_cmd(PADAPTER, u8 macid); s32 FillH2CCmd8192F(PADAPTER padapter, u8 ElementID, u32 CmdLen, u8 *pCmdBuffer); u8 GetTxBufferRsvdPageNum8192F(_adapter *padapter, bool wowlan); #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192f_dm.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192f_dm.h index 43e6396a..36ed77bb 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192f_dm.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192f_dm.h @@ -23,5 +23,7 @@ void rtl8192f_HalDmWatchDog(PADAPTER Adapter); /* void rtl8192c_dm_CheckTXPowerTracking(PADAPTER Adapter); */ /* void rtl8192c_dm_RF_Saving(PADAPTER pAdapter, u8 bForceInNormal); */ - +#if defined (CONFIG_CONCURRENT_MODE) && defined (CONFIG_TSF_SYNC) +void rtl8192f_sync_tsfr(_adapter *Adapter); +#endif/*(CONFIG_CONCURRENT_MODE) && defined (CONFIG_TSF_SYNC)*/ #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192f_hal.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192f_hal.h index 73ee7850..e7d6db52 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192f_hal.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192f_hal.h @@ -117,12 +117,23 @@ typedef struct _RT_8192F_FIRMWARE_HDR { * NS offload: 2 NDP info: 1 */ #ifdef CONFIG_WOWLAN + #ifdef CONFIG_WOW_KEEP_ALIVE_PATTERN + #define WOWLAN_KEEP_ALIVE_PAGE 0x02 /*for keep alive packet*/ + #else + #define WOWLAN_KEEP_ALIVE_PAGE 0x00 + #endif /*CONFIG_WOW_KEEP_ALIVE_PATTERN*/ /* 7 pages for wow rsvd page + 2 pages for pattern */ - #define WOWLAN_PAGE_NUM_8192F 0x09 + #define WOWLAN_PAGE_NUM_8192F (0x09 + WOWLAN_KEEP_ALIVE_PAGE) #else #define WOWLAN_PAGE_NUM_8192F 0x00 #endif +#ifdef CONFIG_WOW_PATTERN_IN_TXFIFO + /* REG_TXBUF_WKCAM_OFFSET 0x1B1[15:0] */ + #define WKCAM_OFFSET_BIT_MASK 0xFFFF + #define WKCAM_OFFSET_BIT_MASK_OFFSET 0 +#endif + #ifdef CONFIG_PNO_SUPPORT #undef WOWLAN_PAGE_NUM_8192F #define WOWLAN_PAGE_NUM_8192F 0x15 diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192f_led.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192f_led.h index 22530b48..0dbb27cd 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192f_led.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192f_led.h @@ -24,6 +24,23 @@ * Interface to manipulate LED objects. * ******************************************************************************** */ #ifdef CONFIG_USB_HCI +/** REG_LED_CFG (0x4C) **/ +/* LED0 GPIO Enable, 0: disable, 1: enable*/ +#define LED0_GPIO_ENABLE_8192FU (BIT21) +/* LED0 Disabled for analog signal usage, 0:Enable (output mode), 1: disable (input mode) */ +#define LED0_DISABLE_ANALOGSIGNAL_8192FU (BIT7) +/* LED0 software value, 0: turn off, 1:turn on */ +#define LED0_SW_VALUE_8192FU (BIT3) + +/** REG_GPIO_MUXCFG (0x40) **/ +/* Enable LED[1:0] for RFE CTRL[7:6], 0: BT, 1: Wi-Fi */ +#define ENABLE_LED0_AND_LED1_CTRL_BY_WIFI_8192FU (BIT3) + +/** REG_SW_GPIO_SHARE_CTRL_0 (0x1038) **/ +/* LED Output PIN Location, 0: GPIOA_0, 1:GPIOB_4*/ +#define LED_OUTPUT_PIN_LOCATION_8192FU (BIT16) + +u8 rtl8192fu_CfgLed0Hw(PADAPTER padapter); void rtl8192fu_InitSwLeds(PADAPTER padapter); void rtl8192fu_DeInitSwLeds(PADAPTER padapter); #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192f_rf.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192f_rf.h index b3016bb2..9710fb26 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192f_rf.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192f_rf.h @@ -21,12 +21,6 @@ #define CONFIG_8192F_TYPE3_DRV_DIS #define CONFIG_8192F_TYPE4_DRV_DIS /*unused*/ -#define CONFIG_8192F_TYPE15_DRV_DIS -#define CONFIG_8192F_TYPE16_DRV_DIS -#define CONFIG_8192F_TYPE17_DRV_DIS -#define CONFIG_8192F_TYPE18_DRV_DIS -#define CONFIG_8192F_TYPE19_DRV_DIS -#define CONFIG_8192F_TYPE20_DRV_DIS #define CONFIG_8192F_TYPE21_DRV_DIS #define CONFIG_8192F_TYPE22_DRV_DIS #define CONFIG_8192F_TYPE23_DRV_DIS @@ -54,6 +48,12 @@ #define CONFIG_8192F_TYPE8_DRV_DIS #define CONFIG_8192F_TYPE9_DRV_DIS #define CONFIG_8192F_TYPE12_DRV_DIS +#define CONFIG_8192F_TYPE15_DRV_DIS +#define CONFIG_8192F_TYPE16_DRV_DIS +#define CONFIG_8192F_TYPE17_DRV_DIS +#define CONFIG_8192F_TYPE18_DRV_DIS +#define CONFIG_8192F_TYPE19_DRV_DIS +#define CONFIG_8192F_TYPE20_DRV_DIS #endif/*CONFIG_SDIO_HCI*/ #ifdef CONFIG_USB_HCI @@ -67,6 +67,12 @@ #define CONFIG_8192F_TYPE8_DRV_DIS #define CONFIG_8192F_TYPE9_DRV_DIS #define CONFIG_8192F_TYPE12_DRV_DIS +#define CONFIG_8192F_TYPE15_DRV_DIS +#define CONFIG_8192F_TYPE16_DRV_DIS +#define CONFIG_8192F_TYPE17_DRV_DIS +#define CONFIG_8192F_TYPE18_DRV_DIS +#define CONFIG_8192F_TYPE19_DRV_DIS +#define CONFIG_8192F_TYPE20_DRV_DIS #endif/*CONFIG_USB_HCI*/ #ifdef CONFIG_PCI_HCI diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192f_spec.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192f_spec.h index cf5e2768..b34d9448 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192f_spec.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192f_spec.h @@ -144,6 +144,7 @@ #define REG_RQPN_NPQ_8192F 0x0214 #define REG_DWBCN1_CTRL_8192F 0x0228 #define REG_RQPN_EXQ1_EXQ2 0x0230 +#define REG_TQPNT3_V1_8192F 0x0234 /* ----------------------------------------------------- * @@ -397,7 +398,8 @@ #define REG_LTR_ACTIVE_LATENCY_V1_8192F 0x079C /* GPIO Control */ -#define REG_SW_GPIO_SHARE_CTRL_8192F 0x1038 +#define REG_SW_GPIO_SHARE_CTRL_8192F_0 0x1038 +#define REG_SW_GPIO_SHARE_CTRL_8192F_1 0x103c #define REG_SW_GPIO_A_OUT_8192F 0x1040 #define REG_SW_GPIO_A_OEN_8192F 0x1044 diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192f_xmit.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192f_xmit.h old mode 100755 new mode 100644 index 93312e37..e0b84c2a --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192f_xmit.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8192f_xmit.h @@ -485,7 +485,7 @@ void rtl8192f_fill_txdesc_vcs(PADAPTER padapter, struct pkt_attrib *pattrib, str void rtl8192f_fill_txdesc_phy(PADAPTER padapter, struct pkt_attrib *pattrib, struct tx_desc *ptxdesc); void rtl8192f_fill_fake_txdesc(PADAPTER padapter, u8 *pDesc, u32 BufferLen, u8 IsPsPoll, u8 IsBTQosNull, u8 bDataFrame); - void fill_txdesc_force_bmc_camid(struct pkt_attrib *pattrib, u8 *ptxdesc); +void fill_txdesc_force_bmc_camid(struct pkt_attrib *pattrib, u8 *ptxdesc); void fill_txdesc_bmc_tx_rate(struct pkt_attrib *pattrib, u8 *ptxdesc); #if defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI) @@ -493,6 +493,9 @@ void fill_txdesc_bmc_tx_rate(struct pkt_attrib *pattrib, u8 *ptxdesc); void rtl8192fs_free_xmit_priv(PADAPTER padapter); s32 rtl8192fs_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe); s32 rtl8192fs_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe); +#ifdef CONFIG_RTW_MGMT_QUEUE + s32 rtl8192fs_hal_mgmt_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); +#endif s32 rtl8192fs_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); s32 rtl8192fs_xmit_buf_handler(PADAPTER padapter); thread_return rtl8192fs_xmit_thread(thread_context context); @@ -504,10 +507,13 @@ void fill_txdesc_bmc_tx_rate(struct pkt_attrib *pattrib, u8 *ptxdesc); void rtl8192fu_free_xmit_priv(PADAPTER padapter); s32 rtl8192fu_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe); s32 rtl8192fu_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe); +#ifdef CONFIG_RTW_MGMT_QUEUE + s32 rtl8192fu_hal_mgmt_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); +#endif s32 rtl8192fu_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); s32 rtl8192fu_xmit_buf_handler(PADAPTER padapter); #define hal_xmit_handler rtl8192fu_xmit_buf_handler - void rtl8192fu_xmit_tasklet(void *priv); + void rtl8192fu_xmit_tasklet(unsigned long priv); s32 rtl8192fu_xmitframe_complete(_adapter *padapter, struct xmit_priv *pxmitpriv, struct xmit_buf *pxmitbuf); void _dbg_dump_tx_info(_adapter *padapter,int frame_tag,struct tx_desc *ptxdesc); #endif @@ -519,6 +525,9 @@ void fill_txdesc_bmc_tx_rate(struct pkt_attrib *pattrib, u8 *ptxdesc); void rtl8192fe_xmitframe_resume(_adapter *padapter); s32 rtl8192fe_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe); s32 rtl8192fe_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe); +#ifdef CONFIG_RTW_MGMT_QUEUE + s32 rtl8192fe_hal_mgmt_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); +#endif s32 rtl8192fe_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); void rtl8192fe_xmit_tasklet(void *priv); #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8703b_cmd.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8703b_cmd.h index 0b2bd835..522a3bcb 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8703b_cmd.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8703b_cmd.h @@ -188,12 +188,6 @@ void rtl8703b_download_rsvd_page(PADAPTER padapter, u8 mstatus); void rtl8703b_set_p2p_ps_offload_cmd(PADAPTER padapter, u8 p2p_ps_state); #endif /* CONFIG_P2P */ -#ifdef CONFIG_TDLS - #ifdef CONFIG_TDLS_CH_SW - void rtl8703b_set_BcnEarly_C2H_Rpt_cmd(PADAPTER padapter, u8 enable); - #endif -#endif - #ifdef CONFIG_P2P_WOWLAN void rtl8703b_set_p2p_wowlan_offload_cmd(PADAPTER padapter); #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8703b_xmit.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8703b_xmit.h old mode 100755 new mode 100644 index a13b61e4..9ec00a66 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8703b_xmit.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8703b_xmit.h @@ -286,7 +286,7 @@ void rtl8703b_update_txdesc(struct xmit_frame *pxmitframe, u8 *pmem); void rtl8703b_fill_fake_txdesc(PADAPTER padapter, u8 *pDesc, u32 BufferLen, u8 IsPsPoll, u8 IsBTQosNull, u8 bDataFrame); - void fill_txdesc_force_bmc_camid(struct pkt_attrib *pattrib, u8 *ptxdesc); +void fill_txdesc_force_bmc_camid(struct pkt_attrib *pattrib, u8 *ptxdesc); void fill_txdesc_bmc_tx_rate(struct pkt_attrib *pattrib, u8 *ptxdesc); #if defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI) @@ -294,6 +294,9 @@ void fill_txdesc_bmc_tx_rate(struct pkt_attrib *pattrib, u8 *ptxdesc); void rtl8703bs_free_xmit_priv(PADAPTER padapter); s32 rtl8703bs_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe); s32 rtl8703bs_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe); +#ifdef CONFIG_RTW_MGMT_QUEUE + s32 rtl8703bs_hal_mgmt_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); +#endif s32 rtl8703bs_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); s32 rtl8703bs_xmit_buf_handler(PADAPTER padapter); thread_return rtl8703bs_xmit_thread(thread_context context); @@ -309,6 +312,9 @@ void fill_txdesc_bmc_tx_rate(struct pkt_attrib *pattrib, u8 *ptxdesc); void rtl8703bu_free_xmit_priv(PADAPTER padapter); s32 rtl8703bu_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe); s32 rtl8703bu_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe); +#ifdef CONFIG_RTW_MGMT_QUEUE + s32 rtl8703bu_hal_mgmt_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); +#endif s32 rtl8703bu_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); /* s32 rtl8812au_xmit_buf_handler(PADAPTER padapter); */ void rtl8703bu_xmit_tasklet(void *priv); @@ -323,6 +329,9 @@ void fill_txdesc_bmc_tx_rate(struct pkt_attrib *pattrib, u8 *ptxdesc); void rtl8703be_xmitframe_resume(_adapter *padapter); s32 rtl8703be_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe); s32 rtl8703be_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe); +#ifdef CONFIG_RTW_MGMT_QUEUE + s32 rtl8703be_hal_mgmt_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); +#endif s32 rtl8703be_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); void rtl8703be_xmit_tasklet(void *priv); #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8710b_cmd.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8710b_cmd.h index 20d4ff90..0237d18e 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8710b_cmd.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8710b_cmd.h @@ -160,12 +160,6 @@ void rtl8710b_download_rsvd_page(PADAPTER padapter, u8 mstatus); void rtl8710b_set_p2p_ps_offload_cmd(PADAPTER padapter, u8 p2p_ps_state); #endif /* CONFIG_P2P */ -#ifdef CONFIG_TDLS -#ifdef CONFIG_TDLS_CH_SW -void rtl8710b_set_BcnEarly_C2H_Rpt_cmd(PADAPTER padapter, u8 enable); -#endif -#endif - #ifdef CONFIG_P2P_WOWLAN void rtl8710b_set_p2p_wowlan_offload_cmd(PADAPTER padapter); #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8710b_xmit.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8710b_xmit.h old mode 100755 new mode 100644 index d718fa78..b3ec6f58 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8710b_xmit.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8710b_xmit.h @@ -476,7 +476,7 @@ void rtl8710b_fill_txdesc_vcs(PADAPTER padapter, struct pkt_attrib *pattrib, str void rtl8710b_fill_txdesc_phy(PADAPTER padapter, struct pkt_attrib *pattrib, struct tx_desc *ptxdesc); void rtl8710b_fill_fake_txdesc(PADAPTER padapter, u8 *pDesc, u32 BufferLen, u8 IsPsPoll, u8 IsBTQosNull, u8 bDataFrame); - void fill_txdesc_force_bmc_camid(struct pkt_attrib *pattrib, u8 *ptxdesc); +void fill_txdesc_force_bmc_camid(struct pkt_attrib *pattrib, u8 *ptxdesc); void fill_txdesc_bmc_tx_rate(struct pkt_attrib *pattrib, u8 *ptxdesc); #if defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI) @@ -497,6 +497,9 @@ void fill_txdesc_bmc_tx_rate(struct pkt_attrib *pattrib, u8 *ptxdesc); void rtl8710bu_free_xmit_priv(PADAPTER padapter); s32 rtl8710bu_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe); s32 rtl8710bu_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe); +#ifdef CONFIG_RTW_MGMT_QUEUE + s32 rtl8710bu_hal_mgmt_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); +#endif s32 rtl8710bu_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); void rtl8710bu_xmit_tasklet(void *priv); s32 rtl8710bu_xmitframe_complete(_adapter *padapter, struct xmit_priv *pxmitpriv, struct xmit_buf *pxmitbuf); diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8723b_cmd.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8723b_cmd.h index 9da56333..d4da9564 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8723b_cmd.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8723b_cmd.h @@ -188,12 +188,6 @@ void rtl8723b_download_rsvd_page(PADAPTER padapter, u8 mstatus); void rtl8723b_set_p2p_ps_offload_cmd(PADAPTER padapter, u8 p2p_ps_state); #endif /* CONFIG_P2P */ -#ifdef CONFIG_TDLS - #ifdef CONFIG_TDLS_CH_SW - void rtl8723b_set_BcnEarly_C2H_Rpt_cmd(PADAPTER padapter, u8 enable); - #endif -#endif - #ifdef CONFIG_P2P_WOWLAN void rtl8723b_set_p2p_wowlan_offload_cmd(PADAPTER padapter); #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8723b_xmit.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8723b_xmit.h index 943abbf6..51691e93 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8723b_xmit.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8723b_xmit.h @@ -286,7 +286,7 @@ void rtl8723b_update_txdesc(struct xmit_frame *pxmitframe, u8 *pmem); void rtl8723b_fill_fake_txdesc(PADAPTER padapter, u8 *pDesc, u32 BufferLen, u8 IsPsPoll, u8 IsBTQosNull, u8 bDataFrame); - void fill_txdesc_force_bmc_camid(struct pkt_attrib *pattrib, u8 *ptxdesc); +void fill_txdesc_force_bmc_camid(struct pkt_attrib *pattrib, u8 *ptxdesc); void fill_txdesc_bmc_tx_rate(struct pkt_attrib *pattrib, u8 *ptxdesc); #if defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI) @@ -294,6 +294,9 @@ void fill_txdesc_bmc_tx_rate(struct pkt_attrib *pattrib, u8 *ptxdesc); void rtl8723bs_free_xmit_priv(PADAPTER padapter); s32 rtl8723bs_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe); s32 rtl8723bs_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe); +#ifdef CONFIG_RTW_MGMT_QUEUE + s32 rtl8723bs_hal_mgmt_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); +#endif s32 rtl8723bs_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); s32 rtl8723bs_xmit_buf_handler(PADAPTER padapter); thread_return rtl8723bs_xmit_thread(thread_context context); @@ -309,6 +312,9 @@ void fill_txdesc_bmc_tx_rate(struct pkt_attrib *pattrib, u8 *ptxdesc); void rtl8723bu_free_xmit_priv(PADAPTER padapter); s32 rtl8723bu_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe); s32 rtl8723bu_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe); +#ifdef CONFIG_RTW_MGMT_QUEUE + s32 rtl8723bu_hal_mgmt_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); +#endif s32 rtl8723bu_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); /* s32 rtl8812au_xmit_buf_handler(PADAPTER padapter); */ void rtl8723bu_xmit_tasklet(void *priv); @@ -323,6 +329,9 @@ void fill_txdesc_bmc_tx_rate(struct pkt_attrib *pattrib, u8 *ptxdesc); void rtl8723be_xmitframe_resume(_adapter *padapter); s32 rtl8723be_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe); s32 rtl8723be_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe); +#ifdef CONFIG_RTW_MGMT_QUEUE + s32 rtl8723be_hal_mgmt_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); +#endif s32 rtl8723be_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); void rtl8723be_xmit_tasklet(void *priv); #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8723d_cmd.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8723d_cmd.h index 41c6cb9b..9c65b4b9 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8723d_cmd.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8723d_cmd.h @@ -174,12 +174,6 @@ void rtl8723d_download_rsvd_page(PADAPTER padapter, u8 mstatus); void rtl8723d_set_p2p_ps_offload_cmd(PADAPTER padapter, u8 p2p_ps_state); #endif /* CONFIG_P2P */ -#ifdef CONFIG_TDLS -#ifdef CONFIG_TDLS_CH_SW -void rtl8723d_set_BcnEarly_C2H_Rpt_cmd(PADAPTER padapter, u8 enable); -#endif -#endif - #ifdef CONFIG_P2P_WOWLAN void rtl8723d_set_p2p_wowlan_offload_cmd(PADAPTER padapter); #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8723d_xmit.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8723d_xmit.h old mode 100755 new mode 100644 index 1a74c1cb..6f84515e --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8723d_xmit.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8723d_xmit.h @@ -477,7 +477,7 @@ void rtl8723d_fill_txdesc_vcs(PADAPTER padapter, struct pkt_attrib *pattrib, str void rtl8723d_fill_txdesc_phy(PADAPTER padapter, struct pkt_attrib *pattrib, struct tx_desc *ptxdesc); void rtl8723d_fill_fake_txdesc(PADAPTER padapter, u8 *pDesc, u32 BufferLen, u8 IsPsPoll, u8 IsBTQosNull, u8 bDataFrame); - void fill_txdesc_force_bmc_camid(struct pkt_attrib *pattrib, u8 *ptxdesc); +void fill_txdesc_force_bmc_camid(struct pkt_attrib *pattrib, u8 *ptxdesc); void fill_txdesc_bmc_tx_rate(struct pkt_attrib *pattrib, u8 *ptxdesc); #if defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI) @@ -485,6 +485,9 @@ void fill_txdesc_bmc_tx_rate(struct pkt_attrib *pattrib, u8 *ptxdesc); void rtl8723ds_free_xmit_priv(PADAPTER padapter); s32 rtl8723ds_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe); s32 rtl8723ds_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe); +#ifdef CONFIG_RTW_MGMT_QUEUE + s32 rtl8723ds_hal_mgmt_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); +#endif s32 rtl8723ds_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); s32 rtl8723ds_xmit_buf_handler(PADAPTER padapter); thread_return rtl8723ds_xmit_thread(thread_context context); @@ -498,8 +501,11 @@ void fill_txdesc_bmc_tx_rate(struct pkt_attrib *pattrib, u8 *ptxdesc); void rtl8723du_free_xmit_priv(PADAPTER padapter); s32 rtl8723du_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe); s32 rtl8723du_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe); +#ifdef CONFIG_RTW_MGMT_QUEUE + s32 rtl8723du_hal_mgmt_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); +#endif s32 rtl8723du_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); - void rtl8723du_xmit_tasklet(void *priv); + void rtl8723du_xmit_tasklet(unsigned long priv); s32 rtl8723du_xmitframe_complete(_adapter *padapter, struct xmit_priv *pxmitpriv, struct xmit_buf *pxmitbuf); void _dbg_dump_tx_info(_adapter *padapter, int frame_tag, struct tx_desc *ptxdesc); #endif @@ -511,6 +517,9 @@ void fill_txdesc_bmc_tx_rate(struct pkt_attrib *pattrib, u8 *ptxdesc); void rtl8723de_xmitframe_resume(_adapter *padapter); s32 rtl8723de_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe); s32 rtl8723de_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe); +#ifdef CONFIG_RTW_MGMT_QUEUE + s32 rtl8723de_hal_mgmt_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); +#endif s32 rtl8723de_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); void rtl8723de_xmit_tasklet(void *priv); #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8723f_hal.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8723f_hal.h new file mode 100644 index 00000000..d39e9ac0 --- /dev/null +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8723f_hal.h @@ -0,0 +1,245 @@ +/****************************************************************************** + * + * Copyright(c) 2019 - 2021 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License 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. + * + *****************************************************************************/ +#ifndef _RTL8723F_HAL_H_ +#define _RTL8723F_HAL_H_ + +#include /* BIT(x) */ +#include /* PADAPTER */ +#include "../hal/halmac-rs/halmac_api.h" /* MAC REG definition */ + +#define MAX_RECVBUF_SZ 16384 /* 16KB (RX_FIFO_SIZE_8723F), TX: 32KB */ + +/* + * MAC Register definition + */ +#define REG_LEDCFG0 REG_LED_CFG_8723F /* rtw_mp.c */ +#define MSR (REG_CR_8723F + 2) /* rtw_mp.c & hal_com.c */ +#define MSR1 REG_CR_EXT_8723F /* rtw_mp.c & hal_com.c */ +#define REG_C2HEVT_MSG_NORMAL 0x1A0 /* hal_com.c */ +#define REG_C2HEVT_CLEAR 0x1AF /* hal_com.c */ +#define REG_BCN_CTRL_1 REG_BCN_CTRL_CLINT0_8723F /* hal_com.c */ + +#define REG_WOWLAN_WAKE_REASON 0x01C7 /* hal_com.c */ +#define REG_GPIO_PIN_CTRL_2 REG_GPIO_EXT_CTRL_8723F /* hal_com.c */ +#define REG_FIFOPAGE REG_FIFOPAGE_INFO_8723F /* hal_com.c */ +#define REG_RXPKTBUF_CTRL REG_PKTBUF_DBG_CTRL_8723F /* hal_com.c */ +#define REG_WKFMCAM_NUM REG_WKFMCAM_CMD_8723F /* hal_com.c */ +#define REG_RSV_CTRL REG_REG_ACCESS_CTRL_8723F /* hal_com.c */ +#define REG_CAMCMD REG_KEYCAMCMD_8723F /* hal_com.c */ +#define REG_CAMWRITE REG_KEYCAM_WD_8723F /* hal_com.c */ + +#define BIT_AUTO_SYNC_BY_TBTT BIT_EN_TSFAUTO_SYNC_8723F /* hal_com.c */ +#define BIT_DIS_ATIM_ROOT_8723F 23 /* REG_HIQ_NO_LMT_EN_V2[23], disable ATIM ROOT */ +#define BIT_SECCAM_POLLING_8723F BIT_KEYCAM_POLLING_8723F /* rtl8723f_ops.c */ +#define BIT_GET_NETYPE2 BIT_GET_P2_NETSTATE_8723F /* hal_halmac.c */ +#define BIT_GET_NETYPE3 BIT_GET_P3_NETSTATE_8723F /* hal_halmac.c */ +#define BIT_GET_NETYPE4 BIT_GET_P4_NETSTATE_8723F /* hal_halmac.c */ + +#ifdef CONFIG_WOW_PATTERN_IN_TXFIFO +#define WKCAM_OFFSET_BIT_MASK 0xFFF +#define WKCAM_OFFSET_BIT_MASK_OFFSET 12 +#define REG_TXBUF_WKCAM_OFFSET 0x1B4 //BIT_TXBUF_WKCAM_OFFSET [24:12] +#define REG_PKT_BUFF_ACCESS_CTRL 0x106 /* hal_com.c */ +#endif + +/* RXERR_RPT, for rtw_mp.c */ +#define RXERR_TYPE_OFDM_PPDU 0 +#define RXERR_TYPE_OFDM_FALSE_ALARM 2 +#define RXERR_TYPE_OFDM_MPDU_OK 0 +#define RXERR_TYPE_OFDM_MPDU_FAIL 1 +#define RXERR_TYPE_CCK_PPDU 3 +#define RXERR_TYPE_CCK_FALSE_ALARM 5 +#define RXERR_TYPE_CCK_MPDU_OK 3 +#define RXERR_TYPE_CCK_MPDU_FAIL 4 +#define RXERR_TYPE_HT_PPDU 8 +#define RXERR_TYPE_HT_FALSE_ALARM 9 +#define RXERR_TYPE_HT_MPDU_TOTAL 6 +#define RXERR_TYPE_HT_MPDU_OK 6 +#define RXERR_TYPE_HT_MPDU_FAIL 7 +#define RXERR_TYPE_RX_FULL_DROP 10 + +#define RXERR_COUNTER_MASK BIT_MASK_RPT_COUNTER_8723F +#define RXERR_RPT_RST BIT_RXERR_RPT_RST_8723F +#define _RXERR_RPT_SEL(type) (BIT_RXERR_RPT_SEL_V1_3_0_8723F(type) \ + | ((type & 0x10) ? BIT_RXERR_RPT_SEL_V1_4_8723F : 0)) + +/* + * BB Register definition + */ +#define rPMAC_Reset 0x100 /* hal_mp.c */ + +#define rFPGA0_RFMOD 0x800 +#define rFPGA0_TxInfo 0x804 +#define rOFDMCCKEN_Jaguar 0x808 /* hal_mp.c */ +#define rFPGA0_TxGainStage 0x80C /* phydm only */ +#define rFPGA0_XA_HSSIParameter1 0x820 /* hal_mp.c */ +#define rFPGA0_XA_HSSIParameter2 0x824 /* hal_mp.c */ +#define rFPGA0_XB_HSSIParameter1 0x828 /* hal_mp.c */ +#define rFPGA0_XB_HSSIParameter2 0x82C /* hal_mp.c */ +#define rTxAGC_B_Rate18_06 0x830 +#define rTxAGC_B_Rate54_24 0x834 +#define rTxAGC_B_CCK1_55_Mcs32 0x838 +#define rCCAonSec_Jaguar 0x838 /* hal_mp.c */ +#define rTxAGC_B_Mcs03_Mcs00 0x83C +#define rTxAGC_B_Mcs07_Mcs04 0x848 +#define rTxAGC_B_Mcs11_Mcs08 0x84C +#define rFPGA0_XA_RFInterfaceOE 0x860 +#define rFPGA0_XB_RFInterfaceOE 0x864 +#define rTxAGC_B_Mcs15_Mcs12 0x868 +#define rTxAGC_B_CCK11_A_CCK2_11 0x86C +#define rFPGA0_XAB_RFInterfaceSW 0x870 +#define rFPGA0_XAB_RFParameter 0x878 +#define rFPGA0_AnalogParameter4 0x88C /* hal_mp.c & phydm */ +#define rFPGA0_XB_LSSIReadBack 0x8A4 /* phydm */ +#define rHSSIRead_Jaguar 0x8B0 /* RF read addr (rtl8723f_phy.c) */ + +#define rC_TxScale_Jaguar2 0x181C /* Pah_C TX scaling factor (hal_mp.c) */ +#define rC_IGI_Jaguar2 0x1850 /* Initial Gain for path-C (hal_mp.c) */ + +#define rFPGA1_TxInfo 0x90C /* hal_mp.c */ +#define rSingleTone_ContTx_Jaguar 0x914 /* hal_mp.c */ +/* TX BeamForming */ +#define REG_BB_TX_PATH_SEL_1_8723F 0x93C /* rtl8723f_phy.c */ +#define REG_BB_TX_PATH_SEL_2_8723F 0x940 /* rtl8723f_phy.c */ + +/* TX BeamForming */ +#define REG_BB_TXBF_ANT_SET_BF1_8723F 0x19AC /* rtl8723f_phy.c */ +#define REG_BB_TXBF_ANT_SET_BF0_8723F 0x19B4 /* rtl8723f_phy.c */ + +#define rCCK0_System 0xA00 +#define rCCK0_AFESetting 0xA04 + +#define rCCK0_DSPParameter2 0xA1C +#define rCCK0_TxFilter1 0xA20 +#define rCCK0_TxFilter2 0xA24 +#define rCCK0_DebugPort 0xA28 +#define rCCK0_FalseAlarmReport 0xA2C + +#define rD_TxScale_Jaguar2 0x1A1C /* Path_D TX scaling factor (hal_mp.c) */ +#define rD_IGI_Jaguar2 0x1A50 /* Initial Gain for path-D (hal_mp.c) */ + +#define rOFDM0_TRxPathEnable 0xC04 +#define rOFDM0_TRMuxPar 0xC08 +#define rA_TxScale_Jaguar 0xC1C /* Pah_A TX scaling factor (hal_mp.c) */ +#define rOFDM0_RxDetector1 0xC30 /* rtw_mp.c */ +#define rOFDM0_ECCAThreshold 0xC4C /* phydm only */ +#define rOFDM0_XAAGCCore1 0xC50 /* phydm only */ +#define rA_IGI_Jaguar 0xC50 /* Initial Gain for path-A (hal_mp.c) */ +#define rOFDM0_XBAGCCore1 0xC58 /* phydm only */ +#define rOFDM0_XATxIQImbalance 0xC80 /* phydm only */ +#define rA_LSSIWrite_Jaguar 0xC90 /* RF write addr, LSSI Parameter (rtl8822b_phy.c) */ + +#define rOFDM1_LSTF 0xD00 +#define rOFDM1_TRxPathEnable 0xD04 /* hal_mp.c */ +#define rA_PIRead_Jaguar 0xD04 /* RF readback with PI (rtl8723f_phy.c) */ +#define rA_SIRead_Jaguar 0xD08 /* RF readback with SI (rtl8723f_phy.c) */ +#define rB_PIRead_Jaguar 0xD44 /* RF readback with PI (rtl8723f_phy.c) */ +#define rB_SIRead_Jaguar 0xD48 /* RF readback with SI (rtl8723f_phy.c) */ + +#define rTxAGC_A_Rate18_06 0xE00 +#define rTxAGC_A_Rate54_24 0xE04 +#define rTxAGC_A_CCK1_Mcs32 0xE08 +#define rTxAGC_A_Mcs03_Mcs00 0xE10 +#define rTxAGC_A_Mcs07_Mcs04 0xE14 +#define rTxAGC_A_Mcs11_Mcs08 0xE18 +#define rTxAGC_A_Mcs15_Mcs12 0xE1C +#define rB_TxScale_Jaguar 0xE1C /* Path_B TX scaling factor (hal_mp.c) */ +#define rB_IGI_Jaguar 0xE50 /* Initial Gain for path-B (hal_mp.c) */ +#define rB_LSSIWrite_Jaguar 0xE90 /* RF write addr, LSSI Parameter (rtl8822b_phy.c) */ +/* RFE */ +#define rA_RFE_Pinmux_Jaguar 0xCB0 /* hal_mp.c */ +#define rB_RFE_Pinmux_Jaguar 0xEB0 /* Path_B RFE control pinmux */ +#define rA_RFE_Inv_Jaguar 0xCB4 /* Path_A RFE cotrol */ +#define rB_RFE_Inv_Jaguar 0xEB4 /* Path_B RFE control */ +#define rA_RFE_Jaguar 0xCB8 /* Path_A RFE cotrol */ +#define rB_RFE_Jaguar 0xEB8 /* Path_B RFE control */ +#define rA_RFE_Inverse_Jaguar 0xCBC /* Path_A RFE control inverse */ +#define rB_RFE_Inverse_Jaguar 0xEBC /* Path_B RFE control inverse */ +#define r_ANTSEL_SW_Jaguar 0x900 /* ANTSEL SW Control */ +#define bMask_RFEInv_Jaguar 0x3FF00000 +#define bMask_AntselPathFollow_Jaguar 0x00030000 + +#define rC_RFE_Pinmux_Jaguar 0x18B4 /* Path_C RFE cotrol pinmux*/ +#define rD_RFE_Pinmux_Jaguar 0x1AB4 /* Path_D RFE cotrol pinmux*/ +#define rA_RFE_Sel_Jaguar2 0x1990 + +/* Page1(0x100) */ +#define bBBResetB 0x100 + +/* Page8(0x800) */ +#define bCCKEn 0x1000000 +#define bOFDMEn 0x2000000 +/* Reg 0x80C rFPGA0_TxGainStage */ +#define bXBTxAGC 0xF00 +#define bXCTxAGC 0xF000 +#define bXDTxAGC 0xF0000 + +/* PageA(0xA00) */ +#define bCCKBBMode 0x3 + +#define bCCKScramble 0x8 +#define bCCKTxRate 0x3000 + +/* General */ +#define bMaskByte0 0xFF /* mp, rtw_odm.c & phydm */ +#define bMaskByte1 0xFF00 /* hal_mp.c & phydm */ +#define bMaskByte2 0xFF0000 /* hal_mp.c & phydm */ +#define bMaskByte3 0xFF000000 /* hal_mp.c & phydm */ +#define bMaskHWord 0xFFFF0000 /* hal_com.c, rtw_mp.c */ +#define bMaskLWord 0x0000FFFF /* mp, hal_com.c & phydm */ +#define bMaskDWord 0xFFFFFFFF /* mp, hal, rtw_odm.c & phydm */ + +#define bEnable 0x1 /* hal_mp.c, rtw_mp.c */ +#define bDisable 0x0 /* rtw_mp.c */ + +#define MAX_STALL_TIME 50 /* unit: us, hal_com_phycfg.c */ + +#define Rx_Smooth_Factor 20 /* phydm only */ + +/* + * RF Register definition + */ +#define RF_AC 0x00 +#define RF_AC_Jaguar 0x00 /* hal_mp.c */ +#define RF_CHNLBW 0x18 /* rtl8723f_phy.c */ +#define RF_ModeTableAddr 0x30 /* rtl8723f_phy.c */ +#define RF_ModeTableData0 0x31 /* rtl8723f_phy.c */ +#define RF_ModeTableData1 0x32 /* rtl8723f_phy.c */ +#define RF_0x52 0x52 +#define RF_WeLut_Jaguar 0xEF /* rtl8723f_phy.c */ + +/* rtw_lps_state_chk() @hal_com.c */ +#define BIT_PWRBIT_OW_EN BIT_WMAC_TCR_PWRMGT_CTL_8723F + +/* +* General Functions +*/ +void rtl8723f_init_hal_spec(PADAPTER); /* hal/hal_com.c */ + +#ifdef CONFIG_MP_INCLUDED +/* MP Functions */ +#include /* struct mp_priv */ +void rtl8723f_prepare_mp_txdesc(PADAPTER, struct mp_priv *); /* rtw_mp.c */ +void rtl8723f_mp_config_rfpath(PADAPTER); /* hal_mp.c */ +#endif +void hw_var_set_dl_rsvd_page(PADAPTER adapter, u8 mstatus); + +#ifdef CONFIG_USB_HCI +#include +#elif defined(CONFIG_SDIO_HCI) +#include +#endif + +#endif /* _RTL8723F_HAL_H_ */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_wifi_regd.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8723fs_hal.h similarity index 56% rename from drivers/net/wireless/realtek/rtl8822ce/include/rtw_wifi_regd.h rename to drivers/net/wireless/realtek/rtl8822ce/include/rtl8723fs_hal.h index 8e42fce7..f1b938af 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_wifi_regd.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8723fs_hal.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * Copyright(c) 2009-2010 - 2017 Realtek Corporation. + * Copyright(c) 2019 Realtek Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms of version 2 of the GNU General Public License as @@ -12,23 +12,20 @@ * more details. * *****************************************************************************/ +#ifndef _RTL8723FS_HAL_H_ +#define _RTL8723FS_HAL_H_ -#ifndef __RTW_WIFI_REGD_H__ -#define __RTW_WIFI_REGD_H__ +#include /* PADAPTER */ -struct country_code_to_enum_rd { - u16 countrycode; - const char *iso_name; -}; +/* rtl8723fs_ops.c */ +void rtl8723fs_set_hal_ops(PADAPTER); -enum country_code_type_t { - COUNTRY_CODE_USER = 0, +#if defined(CONFIG_WOWLAN) || defined(CONFIG_AP_WOWLAN) +void rtl8723fs_disable_interrupt_but_cpwm2(PADAPTER adapter); +#endif - /*add new channel plan above this line */ - COUNTRY_CODE_MAX -}; +/* rtl8723fs_xmit.c */ +s32 rtl8723fs_dequeue_writeport(PADAPTER); +#define _dequeue_writeport(a) rtl8723fs_dequeue_writeport(a) -void rtw_regd_apply_flags(struct wiphy *wiphy); -int rtw_regd_init(struct wiphy *wiphy); - -#endif /* __RTW_WIFI_REGD_H__ */ +#endif /* _RTL8723FS_HAL_H_ */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8723fu_hal.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8723fu_hal.h new file mode 100644 index 00000000..69de7760 --- /dev/null +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8723fu_hal.h @@ -0,0 +1,61 @@ +/****************************************************************************** + * + * Copyright(c) 2019 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License 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. + * + *****************************************************************************/ +#ifndef _RTL8723FU_HAL_H_ +#define _RTL8723FU_HAL_H_ + +#ifdef CONFIG_USB_HCI + #include /* PADAPTER */ + + #ifdef CONFIG_USB_HCI + #ifdef USB_PACKET_OFFSET_SZ + #define PACKET_OFFSET_SZ (USB_PACKET_OFFSET_SZ) + #else + #define PACKET_OFFSET_SZ (8) + #endif + #define TXDESC_OFFSET (TXDESC_SIZE + PACKET_OFFSET_SZ) + #endif + + /* undefine MAX_RECVBUF_SZ from rtl8723f_hal.h */ + #ifdef MAX_RECVBUF_SZ + #undef MAX_RECVBUF_SZ + #endif + + /* recv_buffer must be large than usb agg size */ + #ifndef MAX_RECVBUF_SZ + #ifndef CONFIG_MINIMAL_MEMORY_USAGE + #ifdef CONFIG_PLATFORM_NOVATEK_NT72668 + #define MAX_RECVBUF_SZ (15360) /* 15k */ + #elif defined(CONFIG_PLATFORM_HISILICON) + /* use 16k to workaround for HISILICON platform */ + #define MAX_RECVBUF_SZ (16384) + #else + #define MAX_RECVBUF_SZ (32768) + #endif + #else + #define MAX_RECVBUF_SZ (4000) + #endif + #endif /* !MAX_RECVBUF_SZ */ + + /* rtl8723fu_ops.c */ + void rtl8723fu_set_hal_ops(PADAPTER padapter); + void rtl8723fu_set_hw_type(struct dvobj_priv *pdvobj); + + /* rtl8723fu_io.c */ + void rtl8723fu_set_intf_ops(struct _io_ops *pops); + +#endif /* CONFIG_USB_HCI */ + + +#endif /* _RTL8723FU_HAL_H_ */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8812a_cmd.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8812a_cmd.h index a89a6280..4a347368 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8812a_cmd.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8812a_cmd.h @@ -118,12 +118,6 @@ void rtl8812_set_p2p_ps_offload_cmd(PADAPTER padapter, u8 p2p_ps_state); void rtl8812_set_FwPwrModeInIPS_cmd(PADAPTER padapter, u8 cmd_param); #endif -#ifdef CONFIG_TDLS -#ifdef CONFIG_TDLS_CH_SW -void rtl8812_set_BcnEarly_C2H_Rpt_cmd(PADAPTER padapter, u8 enable); -#endif -#endif - /* ------------------------------------ * C2H format * ------------------------------------ */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8812a_xmit.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8812a_xmit.h index 0d949641..f115d0f6 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8812a_xmit.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8812a_xmit.h @@ -326,9 +326,12 @@ s32 rtl8812au_init_xmit_priv(PADAPTER padapter); void rtl8812au_free_xmit_priv(PADAPTER padapter); s32 rtl8812au_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe); s32 rtl8812au_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe); +#ifdef CONFIG_RTW_MGMT_QUEUE +s32 rtl8812au_hal_mgmt_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); +#endif s32 rtl8812au_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); s32 rtl8812au_xmit_buf_handler(PADAPTER padapter); -void rtl8812au_xmit_tasklet(void *priv); +void rtl8812au_xmit_tasklet(unsigned long priv); s32 rtl8812au_xmitframe_complete(_adapter *padapter, struct xmit_priv *pxmitpriv, struct xmit_buf *pxmitbuf); #endif @@ -339,6 +342,9 @@ struct xmit_buf *rtl8812ae_dequeue_xmitbuf(struct rtw_tx_ring *ring); void rtl8812ae_xmitframe_resume(_adapter *padapter); s32 rtl8812ae_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe); s32 rtl8812ae_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe); +#ifdef CONFIG_RTW_MGMT_QUEUE +s32 rtl8812ae_hal_mgmt_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); +#endif s32 rtl8812ae_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); void rtl8812ae_xmit_tasklet(void *priv); diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8814a_cmd.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8814a_cmd.h index c546a03c..02ed2111 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8814a_cmd.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8814a_cmd.h @@ -141,11 +141,6 @@ void rtl8814_set_FwPwrMode_cmd(PADAPTER padapter, u8 PSMode); u8 GetTxBufferRsvdPageNum8814(_adapter *padapter, bool wowlan); void rtl8814_req_txrpt_cmd(PADAPTER padapter, u8 macid); -#ifdef CONFIG_TDLS - #ifdef CONFIG_TDLS_CH_SW - void rtl8814_set_BcnEarly_C2H_Rpt_cmd(PADAPTER padapter, u8 enable); - #endif -#endif void rtl8814a_set_FwPwrModeInIPS_cmd(PADAPTER padapter, u8 cmd_param); void diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8814a_hal.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8814a_hal.h index fb11eb71..65552e21 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8814a_hal.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8814a_hal.h @@ -326,4 +326,6 @@ void rtl8814_stop_thread(PADAPTER padapter); void rtl8814a_combo_card_WifiOnlyHwInit(PADAPTER Adapter); #endif +void rtl8814ae_hci_flush(PADAPTER Adapter, u32 queue); + #endif /* __RTL8188E_HAL_H__ */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8814a_spec.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8814a_spec.h index 616f5fde..a27ab887 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8814a_spec.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8814a_spec.h @@ -486,6 +486,11 @@ #define REG_MGQ_HIQ_INFO_8814A 0x1410 #define REG_CMDQ_BCNQ_INFO_8814A 0x1414 +#define REG_MACID_DROP0_8814A 0x1450 +#define REG_MACID_DROP1_8814A 0x1454 +#define REG_MACID_DROP2_8814A 0x1458 +#define REG_MACID_DROP3_8814A 0x145C + #define DDMA_LEN_MASK 0x0001FFFF #define FW_CHKSUM_DUMMY_SZ 8 #define DDMA_CH_CHKSUM_CNT BIT(24) diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8814a_xmit.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8814a_xmit.h index 58397555..8901fdea 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8814a_xmit.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8814a_xmit.h @@ -264,7 +264,7 @@ void rtl8814a_fill_fake_txdesc(PADAPTER padapter, u8 *pDesc, u32 BufferLen, u8 I void rtl8814a_fill_txdesc_sectype(struct pkt_attrib *pattrib, u8 *ptxdesc); void rtl8814a_fill_txdesc_vcs(PADAPTER padapter, struct pkt_attrib *pattrib, u8 *ptxdesc); void rtl8814a_fill_txdesc_phy(PADAPTER padapter, struct pkt_attrib *pattrib, u8 *ptxdesc); - void fill_txdesc_force_bmc_camid(struct pkt_attrib *pattrib, u8 *ptxdesc); +void fill_txdesc_force_bmc_camid(struct pkt_attrib *pattrib, u8 *ptxdesc); void fill_txdesc_bmc_tx_rate(struct pkt_attrib *pattrib, u8 *ptxdesc); #ifdef CONFIG_USB_HCI @@ -272,6 +272,9 @@ void fill_txdesc_bmc_tx_rate(struct pkt_attrib *pattrib, u8 *ptxdesc); void rtl8814au_free_xmit_priv(PADAPTER padapter); s32 rtl8814au_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe); s32 rtl8814au_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe); +#ifdef CONFIG_RTW_MGMT_QUEUE + s32 rtl8814au_hal_mgmt_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); +#endif s32 rtl8814au_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); s32 rtl8814au_xmit_buf_handler(PADAPTER padapter); void rtl8814au_xmit_tasklet(void *priv); @@ -285,6 +288,9 @@ void fill_txdesc_bmc_tx_rate(struct pkt_attrib *pattrib, u8 *ptxdesc); void rtl8814ae_xmitframe_resume(_adapter *padapter); s32 rtl8814ae_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe); s32 rtl8814ae_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe); +#ifdef CONFIG_RTW_MGMT_QUEUE + s32 rtl8814ae_hal_mgmt_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); +#endif s32 rtl8814ae_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); void rtl8814ae_xmit_tasklet(void *priv); #ifdef CONFIG_XMIT_THREAD_MODE diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8821a_xmit.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8821a_xmit.h index 5d973cdc..28323b79 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8821a_xmit.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8821a_xmit.h @@ -140,6 +140,9 @@ s32 InitXmitPriv8821AS(PADAPTER padapter); void FreeXmitPriv8821AS(PADAPTER padapter); s32 XmitBufHandler8821AS(PADAPTER padapter); s32 MgntXmit8821AS(PADAPTER padapter, struct xmit_frame *pmgntframe); +#ifdef CONFIG_RTW_MGMT_QUEUE +s32 rtl8821as_hal_mgmt_xmit_enqueue(PADAPTER adapter, struct xmit_frame *pxmitframe); +#endif s32 HalXmitNoLock8821AS(PADAPTER padapter, struct xmit_frame *pxmitframe); s32 HalXmit8821AS(PADAPTER padapter, struct xmit_frame *pxmitframe); #ifndef CONFIG_SDIO_TX_TASKLET diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8822bu_hal.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8822bu_hal.h index a35773f1..b040f3b3 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8822bu_hal.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8822bu_hal.h @@ -37,8 +37,8 @@ #ifndef CONFIG_MINIMAL_MEMORY_USAGE #ifdef CONFIG_PLATFORM_NOVATEK_NT72668 #define MAX_RECVBUF_SZ (15360) /* 15k */ - #elif defined(CONFIG_PLATFORM_HISILICON) - /* use 16k to workaround for HISILICON platform */ + #elif defined(CONFIG_PLATFORM_HISILICON) || defined(CONFIG_PLATFORM_ARM_RTD299X) + /* use 16k to workaround for HISILICON and RTK TV platform */ #define MAX_RECVBUF_SZ (16384) #else #define MAX_RECVBUF_SZ (32768) diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8822cu_hal.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8822cu_hal.h index ba2e36e5..a0accf33 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtl8822cu_hal.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtl8822cu_hal.h @@ -37,8 +37,8 @@ #ifndef CONFIG_MINIMAL_MEMORY_USAGE #ifdef CONFIG_PLATFORM_NOVATEK_NT72668 #define MAX_RECVBUF_SZ (15360) /* 15k */ - #elif defined(CONFIG_PLATFORM_HISILICON) - /* use 16k to workaround for HISILICON platform */ + #elif defined(CONFIG_PLATFORM_HISILICON) || defined(CONFIG_PLATFORM_ARM_RTD299X) + /* use 16k to workaround for HISILICON and RTK TV platform */ #define MAX_RECVBUF_SZ (16384) #else #define MAX_RECVBUF_SZ (32768) diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_ap.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_ap.h index 38cfca09..a8dbe3a1 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_ap.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_ap.h @@ -1,114 +1,150 @@ -/****************************************************************************** - * - * Copyright(c) 2007 - 2017 Realtek Corporation. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License 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. - * - *****************************************************************************/ -#ifndef __RTW_AP_H_ -#define __RTW_AP_H_ - - -#ifdef CONFIG_AP_MODE - -/* external function */ -extern void rtw_indicate_sta_assoc_event(_adapter *padapter, struct sta_info *psta); -extern void rtw_indicate_sta_disassoc_event(_adapter *padapter, struct sta_info *psta); - - -void init_mlme_ap_info(_adapter *padapter); -void free_mlme_ap_info(_adapter *padapter); -u8 rtw_set_tim_ie(u8 dtim_cnt, u8 dtim_period - , const u8 *tim_bmp, u8 tim_bmp_len, u8 *tim_ie); -/* void update_BCNTIM(_adapter *padapter); */ -void rtw_add_bcn_ie(_adapter *padapter, WLAN_BSSID_EX *pnetwork, u8 index, u8 *data, u8 len); -void rtw_remove_bcn_ie(_adapter *padapter, WLAN_BSSID_EX *pnetwork, u8 index); -void _update_beacon(_adapter *padapter, u8 ie_id, u8 *oui, u8 tx, u8 flags, const char *tag); -#define update_beacon(adapter, ie_id, oui, tx, flags) _update_beacon((adapter), (ie_id), (oui), (tx), (flags), __func__) -/*update_beacon - (flags) can set to normal enqueue (0) and RTW_CMDF_WAIT_ACK enqueue. - (flags) = RTW_CMDF_DIRECTLY is not currently implemented, it will do normal enqueue.*/ - -void rtw_ap_update_sta_ra_info(_adapter *padapter, struct sta_info *psta); - -void expire_timeout_chk(_adapter *padapter); -void update_sta_info_apmode(_adapter *padapter, struct sta_info *psta); -void rtw_start_bss_hdl_after_chbw_decided(_adapter *adapter); -void start_bss_network(_adapter *padapter, struct createbss_parm *parm); -int rtw_check_beacon_data(_adapter *padapter, u8 *pbuf, int len); -void rtw_ap_restore_network(_adapter *padapter); - -#if CONFIG_RTW_MACADDR_ACL -void rtw_macaddr_acl_init(_adapter *adapter, u8 period); -void rtw_macaddr_acl_deinit(_adapter *adapter, u8 period); -void rtw_macaddr_acl_clear(_adapter *adapter, u8 period); -void rtw_set_macaddr_acl(_adapter *adapter, u8 period, int mode); -int rtw_acl_add_sta(_adapter *adapter, u8 period, const u8 *addr); -int rtw_acl_remove_sta(_adapter *adapter, u8 period, const u8 *addr); -#endif /* CONFIG_RTW_MACADDR_ACL */ - -u8 rtw_ap_set_sta_key(_adapter *adapter, const u8 *addr, u8 alg, const u8 *key, u8 keyid, u8 gk); -u8 rtw_ap_set_pairwise_key(_adapter *padapter, struct sta_info *psta); -int rtw_ap_set_group_key(_adapter *padapter, u8 *key, u8 alg, int keyid); -int rtw_ap_set_wep_key(_adapter *padapter, u8 *key, u8 keylen, int keyid, u8 set_tx); - -#ifdef CONFIG_NATIVEAP_MLME -void associated_clients_update(_adapter *padapter, u8 updated, u32 sta_info_type); -void bss_cap_update_on_sta_join(_adapter *padapter, struct sta_info *psta); -u8 bss_cap_update_on_sta_leave(_adapter *padapter, struct sta_info *psta); -void sta_info_update(_adapter *padapter, struct sta_info *psta); -void ap_sta_info_defer_update(_adapter *padapter, struct sta_info *psta); -u8 ap_free_sta(_adapter *padapter, struct sta_info *psta, bool active, u16 reason, bool enqueue); -int rtw_sta_flush(_adapter *padapter, bool enqueue); -int rtw_ap_inform_ch_switch(_adapter *padapter, u8 new_ch, u8 ch_offset); -void start_ap_mode(_adapter *padapter); -void stop_ap_mode(_adapter *padapter); -#endif - -void rtw_ap_update_bss_chbw(_adapter *adapter, WLAN_BSSID_EX *bss, u8 ch, u8 bw, u8 offset); -u8 rtw_ap_chbw_decision(_adapter *adapter, u8 ifbmp, u8 excl_ifbmp - , s16 req_ch, s8 req_bw, s8 req_offset, u8 *ch, u8 *bw, u8 *offset, u8 *chbw_allow); - -#ifdef CONFIG_AUTO_AP_MODE -void rtw_auto_ap_rx_msg_dump(_adapter *padapter, union recv_frame *precv_frame, u8 *ehdr_pos); -extern void rtw_start_auto_ap(_adapter *adapter); -#endif /* CONFIG_AUTO_AP_MODE */ - -void rtw_ap_parse_sta_capability(_adapter *adapter, struct sta_info *sta, u8 *cap); -u16 rtw_ap_parse_sta_supported_rates(_adapter *adapter, struct sta_info *sta, u8 *tlv_ies, u16 tlv_ies_len); -u16 rtw_ap_parse_sta_security_ie(_adapter *adapter, struct sta_info *sta, struct rtw_ieee802_11_elems *elems); -void rtw_ap_parse_sta_wmm_ie(_adapter *adapter, struct sta_info *sta, u8 *tlv_ies, u16 tlv_ies_len); -void rtw_ap_parse_sta_ht_ie(_adapter *adapter, struct sta_info *sta, struct rtw_ieee802_11_elems *elems); -void rtw_ap_parse_sta_vht_ie(_adapter *adapter, struct sta_info *sta, struct rtw_ieee802_11_elems *elems); - -void update_bmc_sta(_adapter *padapter); - -#ifdef CONFIG_BMC_TX_RATE_SELECT -void rtw_update_bmc_sta_tx_rate(_adapter *adapter); -#endif - -void rtw_process_ht_action_smps(_adapter *padapter, u8 *ta, u8 ctrl_field); -void rtw_process_public_act_bsscoex(_adapter *padapter, u8 *pframe, uint frame_len); -#ifdef CONFIG_80211N_HT -int rtw_ht_operation_update(_adapter *padapter); -#endif /* CONFIG_80211N_HT */ -u8 rtw_ap_sta_states_check(_adapter *adapter); - -#ifdef CONFIG_FW_HANDLE_TXBCN -#define rtw_ap_get_nums(adapter) (adapter_to_dvobj(adapter)->nr_ap_if) -bool rtw_ap_nums_check(_adapter *adapter); -#endif - -#ifdef CONFIG_SWTIMER_BASED_TXBCN -void tx_beacon_handlder(struct dvobj_priv *pdvobj); -void tx_beacon_timer_handlder(void *ctx); -#endif /*CONFIG_SWTIMER_BASED_TXBCN*/ - -#endif /* end of CONFIG_AP_MODE */ -#endif /*__RTW_AP_H_*/ +/****************************************************************************** + * + * Copyright(c) 2007 - 2017 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License 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. + * + *****************************************************************************/ +#ifndef __RTW_AP_H_ +#define __RTW_AP_H_ + + +#ifdef CONFIG_AP_MODE + +#define AP_CSA_DISABLE 0 +#define AP_SWITCH_CH_CSA 1 +#define STA_RX_CSA 2 +#define CSA_STA_JOINBSS 3 +#define CSA_IE_REMOVE 0xff +#define DEFAULT_CSA_CNT 3 + +/* external function */ +extern void rtw_indicate_sta_assoc_event(_adapter *padapter, struct sta_info *psta); +extern void rtw_indicate_sta_disassoc_event(_adapter *padapter, struct sta_info *psta); + + +void init_mlme_ap_info(_adapter *padapter); +void free_mlme_ap_info(_adapter *padapter); +u8 rtw_set_tim_ie(u8 dtim_cnt, u8 dtim_period + , const u8 *tim_bmp, u8 tim_bmp_len, u8 *tim_ie); +/* void update_BCNTIM(_adapter *padapter); */ +void rtw_add_bcn_ie(_adapter *padapter, WLAN_BSSID_EX *pnetwork, u8 index, u8 *data, u8 len); +void rtw_remove_bcn_ie(_adapter *padapter, WLAN_BSSID_EX *pnetwork, u8 index); +void _update_beacon(_adapter *padapter, u8 ie_id, u8 *oui, u8 tx, u8 flags, const char *tag); +#define update_beacon(adapter, ie_id, oui, tx, flags) _update_beacon((adapter), (ie_id), (oui), (tx), (flags), __func__) +/*update_beacon - (flags) can set to normal enqueue (0) and RTW_CMDF_WAIT_ACK enqueue. + (flags) = RTW_CMDF_DIRECTLY is not currently implemented, it will do normal enqueue.*/ + +void rtw_ap_update_sta_ra_info(_adapter *padapter, struct sta_info *psta); + +void expire_timeout_chk(_adapter *padapter); +void update_sta_info_apmode(_adapter *padapter, struct sta_info *psta); +void rtw_start_bss_hdl_after_chbw_decided(_adapter *adapter); +void start_bss_network(_adapter *padapter, struct createbss_parm *parm); +int rtw_check_beacon_data(_adapter *padapter, u8 *pbuf, int len); +void rtw_ap_restore_network(_adapter *padapter); + +#if CONFIG_RTW_MACADDR_ACL +void rtw_macaddr_acl_init(_adapter *adapter, u8 period); +void rtw_macaddr_acl_deinit(_adapter *adapter, u8 period); +void rtw_macaddr_acl_clear(_adapter *adapter, u8 period); +void rtw_set_macaddr_acl(_adapter *adapter, u8 period, int mode); +int rtw_acl_add_sta(_adapter *adapter, u8 period, const u8 *addr); +int rtw_acl_remove_sta(_adapter *adapter, u8 period, const u8 *addr); +#endif /* CONFIG_RTW_MACADDR_ACL */ + +u8 rtw_ap_set_sta_key(_adapter *adapter, const u8 *addr, u8 alg, const u8 *key, u8 keyid, u8 gk); +u8 rtw_ap_set_pairwise_key(_adapter *padapter, struct sta_info *psta); +int rtw_ap_set_group_key(_adapter *padapter, u8 *key, u8 alg, int keyid); +int rtw_ap_set_wep_key(_adapter *padapter, u8 *key, u8 keylen, int keyid, u8 set_tx); + +#ifdef CONFIG_NATIVEAP_MLME +void associated_clients_update(_adapter *padapter, u8 updated, u32 sta_info_type); +void bss_cap_update_on_sta_join(_adapter *padapter, struct sta_info *psta); +u8 bss_cap_update_on_sta_leave(_adapter *padapter, struct sta_info *psta); +void sta_info_update(_adapter *padapter, struct sta_info *psta); +void ap_sta_info_defer_update(_adapter *padapter, struct sta_info *psta); +u8 ap_free_sta(_adapter *padapter, struct sta_info *psta, bool active, u16 reason, bool enqueue); +int rtw_sta_flush(_adapter *padapter, bool enqueue); +int rtw_ap_inform_ch_switch(_adapter *padapter, u8 new_ch, u8 ch_offset); +void start_ap_mode(_adapter *padapter); +void stop_ap_mode(_adapter *padapter); +#endif + +void rtw_ap_update_bss_chbw(_adapter *adapter, WLAN_BSSID_EX *bss, u8 ch, u8 bw, u8 offset); +u8 rtw_ap_chbw_decision(_adapter *adapter, u8 ifbmp, u8 excl_ifbmp + , s16 req_ch, s8 req_bw, s8 req_offset, u8 *ch, u8 *bw, u8 *offset, u8 *chbw_allow, bool *set_u_ch); + +#ifdef CONFIG_AUTO_AP_MODE +void rtw_auto_ap_rx_msg_dump(_adapter *padapter, union recv_frame *precv_frame, u8 *ehdr_pos); +extern void rtw_start_auto_ap(_adapter *adapter); +#endif /* CONFIG_AUTO_AP_MODE */ + +void rtw_ap_parse_sta_capability(_adapter *adapter, struct sta_info *sta, u8 *cap); +u16 rtw_ap_parse_sta_supported_rates(_adapter *adapter, struct sta_info *sta, u8 *tlv_ies, u16 tlv_ies_len); +u16 rtw_ap_parse_sta_security_ie(_adapter *adapter, struct sta_info *sta, struct rtw_ieee802_11_elems *elems); +void rtw_ap_parse_sta_wmm_ie(_adapter *adapter, struct sta_info *sta, u8 *tlv_ies, u16 tlv_ies_len); +void rtw_ap_parse_sta_ht_ie(_adapter *adapter, struct sta_info *sta, struct rtw_ieee802_11_elems *elems); +void rtw_ap_parse_sta_vht_ie(_adapter *adapter, struct sta_info *sta, struct rtw_ieee802_11_elems *elems); +void rtw_ap_parse_sta_multi_ap_ie(_adapter *adapter, struct sta_info *sta, u8 *ies, int ies_len); + +/* b2u flags */ +#define RTW_AP_B2U_ALL BIT0 +#define RTW_AP_B2U_GA_UCAST BIT1 /* WDS group addressed unicast frame, forward only */ +#define RTW_AP_B2U_BCAST BIT2 +#define RTW_AP_B2U_IP_MCAST BIT3 + +#define rtw_ap_src_b2u_policy_chk(flags, da) ( \ + (flags & RTW_AP_B2U_ALL) \ + || ((flags & RTW_AP_B2U_BCAST) && is_broadcast_mac_addr(da)) \ + || ((flags & RTW_AP_B2U_IP_MCAST) && (IP_MCAST_MAC(da) || ICMPV6_MCAST_MAC(da))) \ + ) + +#define rtw_ap_fwd_b2u_policy_chk(flags, da, gaucst) ( \ + (flags & RTW_AP_B2U_ALL) \ + || ((flags & RTW_AP_B2U_GA_UCAST) && gaucst) \ + || ((flags & RTW_AP_B2U_BCAST) && is_broadcast_mac_addr(da)) \ + || ((flags & RTW_AP_B2U_IP_MCAST) && (IP_MCAST_MAC(da) || ICMPV6_MCAST_MAC(da))) \ + ) + +void dump_ap_b2u_flags(void *sel, _adapter *adapter); + +int rtw_ap_addr_resolve(_adapter *adapter, u16 os_qid, struct xmit_frame *xframe, _pkt *pkt, _list *f_list); +int rtw_ap_rx_data_validate_hdr(_adapter *adapter, union recv_frame *rframe, struct sta_info **sta); +int rtw_ap_rx_msdu_act_check(union recv_frame *rframe + , const u8 *da, const u8 *sa + , u8 *msdu, enum rtw_rx_llc_hdl llc_hdl + , struct xmit_frame **fwd_frame, _list *f_list); + +void update_bmc_sta(_adapter *padapter); + +#ifdef CONFIG_BMC_TX_RATE_SELECT +void rtw_update_bmc_sta_tx_rate(_adapter *adapter); +#endif + +void rtw_process_ht_action_smps(_adapter *padapter, u8 *ta, u8 ctrl_field); +void rtw_process_public_act_bsscoex(_adapter *padapter, u8 *pframe, uint frame_len); +#ifdef CONFIG_80211N_HT +int rtw_ht_operation_update(_adapter *padapter); +#endif /* CONFIG_80211N_HT */ +u8 rtw_ap_sta_states_check(_adapter *adapter); + +#ifdef CONFIG_FW_HANDLE_TXBCN +#define rtw_ap_get_nums(adapter) (adapter_to_dvobj(adapter)->nr_ap_if) +bool rtw_ap_nums_check(_adapter *adapter); +#endif + +#ifdef CONFIG_SWTIMER_BASED_TXBCN +void tx_beacon_handlder(struct dvobj_priv *pdvobj); +void tx_beacon_timer_handlder(void *ctx); +#endif /*CONFIG_SWTIMER_BASED_TXBCN*/ + +#endif /* end of CONFIG_AP_MODE */ +#endif /*__RTW_AP_H_*/ diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_btcoex.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_btcoex.h index bcf0d712..3361dbef 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_btcoex.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_btcoex.h @@ -382,6 +382,7 @@ void rtw_btcoex_ScanNotify(PADAPTER, u8 type); void rtw_btcoex_MediaStatusNotify(PADAPTER, u8 mediaStatus); void rtw_btcoex_SpecialPacketNotify(PADAPTER, u8 pktType); void rtw_btcoex_IQKNotify(PADAPTER padapter, u8 state); +void rtw_btcoex_WLRFKNotify(PADAPTER padapter, u8 path, u8 type, u8 state); void rtw_btcoex_BtInfoNotify(PADAPTER, u8 length, u8 *tmpBuf); void rtw_btcoex_BtMpRptNotify(PADAPTER, u8 length, u8 *tmpBuf); void rtw_btcoex_SuspendNotify(PADAPTER, u8 state); diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_cmd.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_cmd.h index d7e87b92..d1c56f86 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_cmd.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_cmd.h @@ -183,9 +183,10 @@ extern void rtw_cmd_clr_isr(struct cmd_priv *pcmdpriv); extern void rtw_evt_notify_isr(struct evt_priv *pevtpriv); #ifdef CONFIG_P2P u8 p2p_protocol_wk_cmd(_adapter *padapter, int intCmdType); +#endif /* CONFIG_P2P */ #ifdef CONFIG_IOCTL_CFG80211 -struct p2p_roch_parm { +struct rtw_roch_parm { u64 cookie; struct wireless_dev *wdev; struct ieee80211_channel ch; @@ -193,18 +194,15 @@ struct p2p_roch_parm { unsigned int duration; }; -u8 p2p_roch_cmd(_adapter *adapter +u8 rtw_roch_cmd(_adapter *adapter , u64 cookie, struct wireless_dev *wdev , struct ieee80211_channel *ch, enum nl80211_channel_type ch_type , unsigned int duration , u8 flags ); -u8 p2p_cancel_roch_cmd(_adapter *adapter, u64 cookie, struct wireless_dev *wdev, u8 flags); -#endif /* CONFIG_IOCTL_CFG80211 */ -#endif /* CONFIG_P2P */ +u8 rtw_cancel_roch_cmd(_adapter *adapter, u64 cookie, struct wireless_dev *wdev, u8 flags); -#ifdef CONFIG_IOCTL_CFG80211 u8 rtw_mgnt_tx_cmd(_adapter *adapter, u8 tx_ch, u8 no_cck, const u8 *buf, size_t len, int wait_ack, u8 flags); struct mgnt_tx_parm { u8 tx_ch; @@ -248,6 +246,7 @@ enum rtw_drvextra_cmd_id { #ifdef CONFIG_RTW_REPEATER_SON RSON_SCAN_WK_CID, #endif + ROCH_WK_CID, MGNT_TX_WK_CID, REQ_PER_CMD_WK_CID, SSMPS_WK_CID, @@ -348,7 +347,14 @@ Notes: To ask RTL8711 performing site-survey Command-Event Mode */ +#ifdef CONFIG_LAYER2_ROAMING +struct nb_bssid { + u8 ch; + u8 bssid[ETH_ALEN]; +}; +#endif +#define RTW_MAX_NB_RPT_NUM 8 #define RTW_SSID_SCAN_AMOUNT 9 /* for WEXT_CSCAN_AMOUNT 9 */ #define RTW_CHANNEL_SCAN_AMOUNT (14+37) struct sitesurvey_parm { @@ -365,6 +371,12 @@ struct sitesurvey_parm { u8 bw; /* 0: use default */ bool acs; /* aim to trigger channel selection when scan done */ + +#ifdef CONFIG_LAYER2_ROAMING + u8 nb_num; + struct nb_bssid nb[RTW_MAX_NB_RPT_NUM]; +#endif + u8 reason; }; /* @@ -540,8 +552,28 @@ struct set_ch_parm { }; struct SetChannelPlan_param { - const struct country_chplan *country_ent; + enum regd_src_t regd_src; + enum rtw_regd_inr inr; + struct country_chplan country_ent; + bool has_country; u8 channel_plan; +#if CONFIG_IEEE80211_BAND_6GHZ + u8 channel_plan_6g; +#endif + +#ifdef CONFIG_80211D + /* used for regd_src == RTK_PRIV and inr == COUNTRY_IE */ + struct country_ie_slave_record cisr; + bool has_cisr; +#endif + +#ifdef PLATFORM_LINUX + bool rtnl_lock_needed; +#endif +}; + +struct get_channel_plan_param { + struct get_chplan_resp **chplan; }; struct LedBlink_param { @@ -558,6 +590,15 @@ struct RunInThread_param { void *context; }; +#ifdef CONFIG_WRITE_BCN_LEN_TO_FW +struct write_bcnlen_param { + u16 bcn_len; +}; +#endif + +struct reqtxrpt_param { + u8 macid; +}; #define GEN_CMD_CODE(cmd) cmd ## _CMD_ @@ -589,8 +630,10 @@ Result: void rtw_init_sitesurvey_parm(_adapter *padapter, struct sitesurvey_parm *pparm); u8 rtw_sitesurvey_cmd(_adapter *padapter, struct sitesurvey_parm *pparm); +#ifdef CONFIG_AP_MODE u8 rtw_create_ibss_cmd(_adapter *adapter, int flags); u8 rtw_startbss_cmd(_adapter *adapter, int flags); +#endif #define REQ_CH_NONE -1 #define REQ_CH_INT_INFO -2 @@ -598,9 +641,6 @@ u8 rtw_startbss_cmd(_adapter *adapter, int flags); #define REQ_BW_ORI -2 #define REQ_OFFSET_NONE -1 -u8 rtw_change_bss_chbw_cmd(_adapter *adapter, int flags - , u8 ifbmp, u8 excl_ifbmp, s16 req_ch, s8 req_bw, s8 req_offset); - struct sta_info; extern u8 rtw_setstakey_cmd(_adapter *padapter, struct sta_info *sta, u8 key_type, bool enqueue); extern u8 rtw_clearstakey_cmd(_adapter *padapter, struct sta_info *sta, u8 enqueue); @@ -608,6 +648,8 @@ extern u8 rtw_clearstakey_cmd(_adapter *padapter, struct sta_info *sta, u8 enque extern u8 rtw_joinbss_cmd(_adapter *padapter, struct wlan_network *pnetwork); u8 rtw_disassoc_cmd(_adapter *padapter, u32 deauth_timeout_ms, int flags); #ifdef CONFIG_AP_MODE +u8 rtw_change_bss_chbw_cmd(_adapter *adapter, int flags + , u8 ifbmp, u8 excl_ifbmp, s16 req_ch, s8 req_bw, s8 req_offset); u8 rtw_stop_ap_cmd(_adapter *adapter, u8 flags); #endif #ifdef CONFIG_RTW_TOKEN_BASED_XMIT @@ -667,12 +709,22 @@ u8 rtw_enable_hw_update_tsf_cmd(_adapter *padapter); u8 rtw_periodic_tsf_update_end_cmd(_adapter *adapter); u8 rtw_set_chbw_cmd(_adapter *padapter, u8 ch, u8 bw, u8 ch_offset, u8 flags); +u8 rtw_iqk_cmd(_adapter *padapter, u8 flags); -u8 rtw_set_chplan_cmd(_adapter *adapter, int flags, u8 chplan, u8 swconfig); -u8 rtw_set_country_cmd(_adapter *adapter, int flags, const char *country_code, u8 swconfig); +u8 rtw_set_chplan_cmd(_adapter *adapter, int flags, u8 chplan, u8 chplan_6g, enum rtw_regd_inr inr); +u8 rtw_set_country_cmd(_adapter *adapter, int flags, const char *country_code, enum rtw_regd_inr inr); +#ifdef CONFIG_REGD_SRC_FROM_OS +u8 rtw_sync_os_regd_cmd(_adapter *adapter, int flags, const char *country_code, u8 dfs_region, enum rtw_regd_inr inr); +#endif +u8 rtw_get_chplan_cmd(_adapter *adapter, int flags, struct get_chplan_resp **chplan); + +#ifdef CONFIG_80211D +u8 rtw_apply_recv_country_ie_cmd(_adapter *adapter, int flags, BAND_TYPE band,u8 opch, const u8 *country_ie); +#endif extern u8 rtw_led_blink_cmd(_adapter *padapter, void *pLed); extern u8 rtw_set_csa_cmd(_adapter *adapter); +extern u8 rtw_set_ap_csa_cmd(_adapter *adapter); extern u8 rtw_tdls_cmd(_adapter *padapter, u8 *addr, u8 option); u8 rtw_mp_cmd(_adapter *adapter, u8 mp_cmd_id, u8 flags); @@ -717,6 +769,13 @@ u8 rtw_req_per_cmd(_adapter * adapter); u8 rtw_tbtx_chk_cmd(_adapter *adapter); u8 rtw_tbtx_token_dispatch_cmd(_adapter *adapter); #endif + +#ifdef CONFIG_WRITE_BCN_LEN_TO_FW +u8 rtw_write_bcnlen_to_fw_cmd(_adapter *padapter, u16 bcn_len); +#endif + +u8 rtw_reqtxrpt_cmd(_adapter *adapter, u8 macid); + #ifdef CONFIG_CTRL_TXSS_BY_TP struct txss_cmd_parm { struct sta_info *sta; @@ -766,6 +825,11 @@ enum rtw_cmd_id { CMD_ADD_BARSP, /*19*/ CMD_RM_POST_EVENT, /*20*/ CMD_SET_MESH_PLINK_STATE, /* 21 */ + CMD_DO_IQK, /* 22 */ + CMD_GET_CHANPLAN, /*23*/ + CMD_WRITE_BCN_LEN, /*24 */ + CMD_AP_CHANSWITCH, /* 25 AP switch channel */ + CMD_REQ_TXRPT, /* 26 */ CMD_ID_MAX }; diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_debug.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_debug.h old mode 100644 new mode 100755 index 51f09b15..e7836af4 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_debug.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_debug.h @@ -284,7 +284,6 @@ extern uint rtw_drv_log_level; void dump_drv_version(void *sel); void dump_log_level(void *sel); -void dump_drv_cfg(void *sel); #ifdef CONFIG_SDIO_HCI void sd_f0_reg_dump(void *sel, _adapter *adapter); @@ -306,16 +305,13 @@ void dump_tx_rate_bmp(void *sel, struct dvobj_priv *dvobj); void dump_adapters_status(void *sel, struct dvobj_priv *dvobj); struct sec_cam_ent; +#if defined(CONFIG_RTW_DEBUG) || defined(CONFIG_PROC_DEBUG) void dump_sec_cam_ent(void *sel, struct sec_cam_ent *ent, int id); void dump_sec_cam_ent_title(void *sel, u8 has_id); +#endif void dump_sec_cam(void *sel, _adapter *adapter); void dump_sec_cam_cache(void *sel, _adapter *adapter); -#ifdef CONFIG_ALIBABA_ZEROCONFIG -int proc_get_zeroconf_tgt_macaddr(struct seq_file *m, void *v); -ssize_t proc_set_zeroconf_tgt_macaddr(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data); -#endif - bool rtw_fwdl_test_trigger_chksum_fail(void); bool rtw_fwdl_test_trigger_wintint_rdy_fail(void); bool rtw_del_rx_ampdu_test_trigger_no_tx_fail(void); @@ -332,7 +328,7 @@ u16 rtw_ap_linking_test_force_asoc_fail(void); ssize_t proc_set_write_reg(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data); int proc_get_read_reg(struct seq_file *m, void *v); ssize_t proc_set_read_reg(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data); - +void dump_drv_cfg(void *sel); int proc_get_fwstate(struct seq_file *m, void *v); int proc_get_sec_info(struct seq_file *m, void *v); int proc_get_mlmext_state(struct seq_file *m, void *v); @@ -341,12 +337,11 @@ int proc_get_roam_flags(struct seq_file *m, void *v); ssize_t proc_set_roam_flags(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data); int proc_get_roam_param(struct seq_file *m, void *v); ssize_t proc_set_roam_param(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data); +int proc_get_roam_param_int(struct seq_file *m, void *v); +ssize_t proc_set_roam_param_int(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data); ssize_t proc_set_roam_tgt_addr(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data); +int proc_get_roam_tgt_addr(struct seq_file *m, void *v); #endif /* CONFIG_LAYER2_ROAMING */ -#ifdef CONFIG_RTW_80211R -int proc_get_ft_flags(struct seq_file *m, void *v); -ssize_t proc_set_ft_flags(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data); -#endif int proc_get_qos_option(struct seq_file *m, void *v); int proc_get_ht_option(struct seq_file *m, void *v); int proc_get_rf_info(struct seq_file *m, void *v); @@ -395,6 +390,8 @@ ssize_t proc_set_ap_linking_test(struct file *file, const char __user *buffer, s int proc_get_rx_stat(struct seq_file *m, void *v); int proc_get_tx_stat(struct seq_file *m, void *v); +int proc_get_sta_tx_stat(struct seq_file *m, void *v); +ssize_t proc_set_sta_tx_stat(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data); #ifdef CONFIG_AP_MODE int proc_get_all_sta_info(struct seq_file *m, void *v); #endif /* CONFIG_AP_MODE */ @@ -448,6 +445,10 @@ ssize_t proc_set_ldpc_cap(struct file *file, const char __user *buffer, size_t c int proc_get_txbf_cap(struct seq_file *m, void *v); ssize_t proc_set_txbf_cap(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data); #endif +#ifdef CONFIG_SDIO_TX_ENABLE_AVAL_INT +int proc_get_tx_aval_th(struct seq_file *m, void *v); +ssize_t proc_set_tx_aval_th(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data); +#endif /*CONFIG_SDIO_TX_ENABLE_AVAL_INT*/ int proc_get_rx_ampdu_factor(struct seq_file *m, void *v); ssize_t proc_set_rx_ampdu_factor(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data); @@ -470,6 +471,11 @@ ssize_t proc_set_tx_amsdu_rate(struct file *file, const char __user *buffer, siz #endif #endif /* CONFIG_80211N_HT */ +#ifdef CONFIG_80211AC_VHT +int proc_get_vht_24g_enable(struct seq_file *m, void *v); +ssize_t proc_set_vht_24g_enable(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data); +#endif + ssize_t proc_set_dyn_rrsr(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data); int proc_get_dyn_rrsr(struct seq_file *m, void *v); @@ -520,6 +526,7 @@ ssize_t proc_set_pci_bridge_conf_space(struct file *file, const char __user *buf #ifdef DBG_TXBD_DESC_DUMP int proc_get_tx_ring_ext(struct seq_file *m, void *v); ssize_t proc_set_tx_ring_ext(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data); +int core_get_tx_ring_ext(_adapter *padapter); #endif #endif @@ -534,8 +541,29 @@ int proc_get_wakeup_event(struct seq_file *m, void *v); ssize_t proc_set_wakeup_event(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data); int proc_get_wakeup_reason(struct seq_file *m, void *v); +#ifdef CONFIG_WOW_KEEP_ALIVE_PATTERN +int proc_dump_wow_keep_alive_info(struct seq_file *m, void *v); +#endif /*CONFIG_WOW_KEEP_ALIVE_PATTERN*/ #endif +#ifdef CONFIG_WAR_OFFLOAD +int proc_get_war_offload_enable(struct seq_file *m, void *v); +ssize_t proc_set_war_offload_enable(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data); +int proc_get_war_offload_ipv4_addr(struct seq_file *m, void *v); +ssize_t proc_set_war_offload_ipv4_addr(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data); +int proc_get_war_offload_ipv6_addr(struct seq_file *m, void *v); +ssize_t proc_set_war_offload_ipv6_addr(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data); +int proc_get_war_offload_mdns_domain_name(struct seq_file *m, void *v); +ssize_t proc_set_war_offload_mdns_domain_name(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data); +int proc_get_war_offload_mdns_machine_name(struct seq_file *m, void *v); +ssize_t proc_set_war_offload_mdns_machine_name(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data); +int proc_get_war_offload_mdns_txt_rsp(struct seq_file *m, void *v); +ssize_t proc_set_war_offload_mdns_txt_rsp(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data); +int proc_get_war_offload_mdns_service_info(struct seq_file *m, void *v); +ssize_t proc_set_war_offload_mdns_service_info(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data); +#endif /* CONFIG_WAR_OFFLOAD */ + + #ifdef CONFIG_GPIO_WAKEUP int proc_get_wowlan_gpio_info(struct seq_file *m, void *v); ssize_t proc_set_wowlan_gpio_info(struct file *file, const char __user *buffer, @@ -567,6 +595,11 @@ int proc_get_tdls_info(struct seq_file *m, void *v); int proc_get_monitor(struct seq_file *m, void *v); ssize_t proc_set_monitor(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data); +#ifdef RTW_SIMPLE_CONFIG +int proc_get_simple_config(struct seq_file *m, void *v); +ssize_t proc_set_simple_config(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data); +#endif + #ifdef DBG_XMIT_BLOCK int proc_get_xmit_block(struct seq_file *m, void *v); ssize_t proc_set_xmit_block(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data); @@ -652,9 +685,10 @@ int proc_get_smps(struct seq_file *m, void *v); int proc_get_defs_param(struct seq_file *m, void *v); ssize_t proc_set_defs_param(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data); -int proc_get_shift_rxagc(struct seq_file *m, void *v); -ssize_t proc_set_shift_rxagc(struct file *file, const char __user *buffer, - size_t count, loff_t *pos, void *data); +#if defined(CONFIG_CONCURRENT_MODE) && defined(CONFIG_AP_MODE) +ssize_t proc_set_ap_csa_cnt(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data); +int proc_get_ap_csa_cnt(struct seq_file *m, void *v); +#endif #define _drv_always_ 1 #define _drv_emerg_ 2 diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_efuse.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_efuse.h index cf0840c3..b2972d6e 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_efuse.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_efuse.h @@ -53,17 +53,25 @@ enum _EFUSE_DEF_TYPE { /*RTL8822B 8821C BT EFUSE Define 1 BANK 128 size logical map 1024*/ #ifdef RTW_HALMAC #define BANK_NUM 1 -#define EFUSE_BT_REAL_BANK_CONTENT_LEN 128 +#if defined(CONFIG_RTL8723F) +#define EFUSE_BT_REAL_BANK_CONTENT_LEN 512 +#else +#define EFUSE_BT_REAL_BANK_CONTENT_LEN 128 +#endif + #define EFUSE_BT_REAL_CONTENT_LEN (EFUSE_BT_REAL_BANK_CONTENT_LEN * BANK_NUM) #define EFUSE_BT_MAP_LEN 1024 /* 1k bytes */ #define EFUSE_BT_MAX_SECTION (EFUSE_BT_MAP_LEN / 8) -#ifdef CONFIG_RTL8822C + +#if defined(CONFIG_RTL8822C) #define EFUSE_PROTECT_BYTES_BANK 54 +#elif defined(CONFIG_RTL8723F) +#define EFUSE_PROTECT_BYTES_BANK 40 #else #define EFUSE_PROTECT_BYTES_BANK 16 #endif #define AVAILABLE_EFUSE_ADDR(addr) (addr < EFUSE_BT_REAL_CONTENT_LEN - EFUSE_PROTECT_BYTES_BANK) -#endif +#endif /* #ifdef RTW_HALMAC */ #define EXT_HEADER(header) ((header & 0x1F) == 0x0F) #define ALL_WORDS_DISABLED(wde) ((wde & 0x0F) == 0x0F) @@ -267,7 +275,9 @@ u8 mac_hidden_wl_func_to_hal_wl_func(u8 func); #ifdef PLATFORM_LINUX u8 rtw_efuse_file_read(PADAPTER padapter, u8 *filepath, u8 *buf, u32 len); +#if !defined(CONFIG_RTW_ANDROID_GKI) u8 rtw_efuse_file_store(PADAPTER padapter, u8 *filepath, u8 *buf, u32 len); +#endif /* !defined(CONFIG_RTW_ANDROID_GKI) */ #ifdef CONFIG_EFUSE_CONFIG_FILE u32 rtw_read_efuse_from_file(const char *path, u8 *buf, int map_size); u32 rtw_read_macaddr_from_file(const char *path, u8 *buf); diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_event.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_event.h index 12d7c709..13e3f528 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_event.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_event.h @@ -36,6 +36,7 @@ bss_cnt indicates the number of bss that has been reported. */ struct surveydone_event { unsigned int bss_cnt; + u8 activate_ch_cnt; bool acs; /* aim to trigger channel selection */ }; diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_ft.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_ft.h new file mode 100755 index 00000000..4a660077 --- /dev/null +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_ft.h @@ -0,0 +1,183 @@ +/****************************************************************************** + * + * Copyright(c) 2007 - 2017 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License 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. + * + *****************************************************************************/ + +#ifndef __RTW_FT_H_ +#define __RTW_FT_H_ + +enum rtw_ieee80211_ft_actioncode { + RTW_WLAN_ACTION_FT_RESV, + RTW_WLAN_ACTION_FT_REQ, + RTW_WLAN_ACTION_FT_RSP, + RTW_WLAN_ACTION_FT_CONF, + RTW_WLAN_ACTION_FT_ACK, + RTW_WLAN_ACTION_FT_MAX, +}; + +enum _rtw_ft_sta_status { + RTW_FT_UNASSOCIATED_STA = 0, + RTW_FT_AUTHENTICATING_STA, + RTW_FT_AUTHENTICATED_STA, + RTW_FT_ASSOCIATING_STA, + RTW_FT_ASSOCIATED_STA, + RTW_FT_REQUESTING_STA, + RTW_FT_REQUESTED_STA, + RTW_FT_CONFIRMED_STA, + RTW_FT_UNSPECIFIED_STA +}; + +#define RTW_FT_ACTION_REQ_LMT 4 + +#define RTW_FT_MAX_IE_SZ 256 + +#define rtw_ft_chk_status(a, s) \ + ((a)->mlmepriv.ft_roam.ft_status == (s)) + +#define rtw_ft_roam_status(a, s) \ + ((rtw_to_roam(a) > 0) && rtw_ft_chk_status(a, s)) + +#define rtw_ft_authed_sta(a) \ + ((rtw_ft_chk_status(a, RTW_FT_AUTHENTICATED_STA)) || \ + (rtw_ft_chk_status(a, RTW_FT_ASSOCIATING_STA)) || \ + (rtw_ft_chk_status(a, RTW_FT_ASSOCIATED_STA))) + +#define rtw_ft_set_status(a, s) \ + do { \ + ((a)->mlmepriv.ft_roam.ft_status = (s)); \ + } while (0) + +#define rtw_ft_lock_set_status(a, s, irq) \ + do { \ + _enter_critical_bh(&(a)->mlmepriv.lock, ((_irqL *)(irq))); \ + ((a)->mlmepriv.ft_roam.ft_status = (s)); \ + _exit_critical_bh(&(a)->mlmepriv.lock, ((_irqL *)(irq))); \ + } while (0) + +#define rtw_ft_reset_status(a) \ + do { \ + ((a)->mlmepriv.ft_roam.ft_status = RTW_FT_UNASSOCIATED_STA); \ + } while (0) + +enum rtw_ft_capability { + RTW_FT_EN = BIT0, + RTW_FT_OTD_EN = BIT1, + RTW_FT_PEER_EN = BIT2, + RTW_FT_PEER_OTD_EN = BIT3, + RTW_FT_BTM_ROAM = BIT4, + RTW_FT_TEST_RSSI_ROAM = BIT7, +}; + +#define rtw_ft_chk_flags(a, f) \ + ((a)->mlmepriv.ft_roam.ft_flags & (f)) + +#define rtw_ft_set_flags(a, f) \ + do { \ + ((a)->mlmepriv.ft_roam.ft_flags |= (f)); \ + } while (0) + +#define rtw_ft_clr_flags(a, f) \ + do { \ + ((a)->mlmepriv.ft_roam.ft_flags &= ~(f)); \ + } while (0) + +#define rtw_ft_roam(a) \ + ((rtw_to_roam(a) > 0) && rtw_ft_chk_flags(a, RTW_FT_PEER_EN)) + +#define rtw_ft_valid_akm(a, t) \ + ((rtw_ft_chk_flags(a, RTW_FT_EN)) && \ + (((t) == 3) || ((t) == 4) || ((t) == 9))) + +#define rtw_ft_roam_expired(a, r) \ + ((rtw_chk_roam_flags(a, RTW_ROAM_ON_EXPIRED)) \ + && (r == WLAN_REASON_ACTIVE_ROAM)) + +#define rtw_ft_otd_roam_en(a) \ + ((rtw_ft_chk_flags(a, RTW_FT_OTD_EN)) \ + && ((a)->mlmepriv.ft_roam.ft_roam_on_expired == _FALSE) \ + && ((a)->mlmepriv.ft_roam.ft_cap & 0x01)) + +#define rtw_ft_otd_roam(a) \ + rtw_ft_chk_flags(a, RTW_FT_PEER_OTD_EN) + +#define rtw_ft_valid_otd_candidate(a, p) \ + ((rtw_ft_chk_flags(a, RTW_FT_OTD_EN)) \ + && ((rtw_ft_chk_flags(a, RTW_FT_PEER_OTD_EN) \ + && ((*((p)+4) & 0x01) == 0)) \ + || ((rtw_ft_chk_flags(a, RTW_FT_PEER_OTD_EN) == 0) \ + && (*((p)+4) & 0x01)))) + +struct ft_roam_info { + u16 mdid; + u8 ft_cap; + /*b0: FT over DS, b1: Resource Req Protocol Cap, b2~b7: Reserved*/ + u8 updated_ft_ies[RTW_FT_MAX_IE_SZ]; + u16 updated_ft_ies_len; + u8 ft_action[RTW_FT_MAX_IE_SZ]; + u16 ft_action_len; + struct cfg80211_ft_event_params ft_event; + u8 ft_roam_on_expired; + u8 ft_flags; + u32 ft_status; + u32 ft_req_retry_cnt; + bool ft_updated_bcn; +}; + +void rtw_ft_info_init(struct ft_roam_info *pft); + +int rtw_ft_proc_flags_get(struct seq_file *m, void *v); + +ssize_t rtw_ft_proc_flags_set(struct file *file, const char __user *buffer, + size_t count, loff_t *pos, void *data); + +u8 rtw_ft_chk_roaming_candidate( + _adapter *padapter, struct wlan_network *competitor); + +void rtw_ft_update_stainfo(_adapter *padapter, WLAN_BSSID_EX *pnetwork); + +void rtw_ft_reassoc_event_callback(_adapter *padapter, u8 *pbuf); + +void rtw_ft_validate_akm_type(_adapter *padapter, + struct wlan_network *pnetwork); + +void rtw_ft_update_bcn(_adapter *padapter, union recv_frame *precv_frame); + +void rtw_ft_start_clnt_join(_adapter *padapter); + +u8 rtw_ft_update_rsnie( + _adapter *padapter, u8 bwrite, + struct pkt_attrib *pattrib, u8 **pframe); + +void rtw_ft_build_auth_req_ies(_adapter *padapter, + struct pkt_attrib *pattrib, u8 **pframe); + +void rtw_ft_build_assoc_req_ies(_adapter *padapter, + u8 is_reassoc, struct pkt_attrib *pattrib, u8 **pframe); + +u8 rtw_ft_update_auth_rsp_ies(_adapter *padapter, u8 *pframe, u32 len); + +void rtw_ft_start_roam(_adapter *padapter, u8 *pTargetAddr); + +void rtw_ft_issue_action_req(_adapter *padapter, u8 *pTargetAddr); + +void rtw_ft_report_evt(_adapter *padapter); + +void rtw_ft_report_reassoc_evt(_adapter *padapter, u8 *pMacAddr); + +void rtw_ft_link_timer_hdl(void *ctx); + +void rtw_ft_roam_timer_hdl(void *ctx); + +void rtw_ft_roam_status_reset(_adapter *padapter); + +#endif /* __RTW_FT_H_ */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_ioctl_set.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_ioctl_set.h index 82b4c182..1409eb6c 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_ioctl_set.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_ioctl_set.h @@ -26,15 +26,15 @@ u8 rtw_set_acs_sitesurvey(_adapter *adapter); u8 rtw_set_802_11_infrastructure_mode(_adapter *padapter, NDIS_802_11_NETWORK_INFRASTRUCTURE networktype, u8 flags); u8 rtw_set_802_11_ssid(_adapter *padapter, NDIS_802_11_SSID *ssid); u8 rtw_set_802_11_connect(_adapter *padapter, - u8 *bssid, NDIS_802_11_SSID *ssid, u16 ch); + const u8 *bssid, NDIS_802_11_SSID *ssid, u16 ch); -u8 rtw_validate_bssid(u8 *bssid); +u8 rtw_validate_bssid(const u8 *bssid); u8 rtw_validate_ssid(NDIS_802_11_SSID *ssid); u16 rtw_get_cur_max_rate(_adapter *adapter); int rtw_set_scan_mode(_adapter *adapter, RT_SCAN_TYPE scan_mode); -int rtw_set_channel_plan(_adapter *adapter, u8 channel_plan); -int rtw_set_country(_adapter *adapter, const char *country_code); +int rtw_set_channel_plan(_adapter *adapter, u8 channel_plan, u8 chplan_6g, enum rtw_regd_inr inr); +int rtw_set_country(_adapter *adapter, const char *country_code, enum rtw_regd_inr inr); int rtw_set_band(_adapter *adapter, u8 band); #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_mbo.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_mbo.h new file mode 100755 index 00000000..9524cb6c --- /dev/null +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_mbo.h @@ -0,0 +1,114 @@ +/****************************************************************************** + * + * Copyright(c) 2007 - 2017 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License 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. + * + *****************************************************************************/ + +#ifndef __RTW_MBO_H_ +#define __RTW_MBO_H_ + +#define rtw_mbo_wifi_logo_test(a) ((a->registrypriv.wifi_spec) == 1) + +#define rtw_mbo_set_ext_cap_internw(_pEleStart, _val) \ + SET_BITS_TO_LE_1BYTE(((u8 *)(_pEleStart))+3, 7, 1, _val) + +#define rtw_mbo_wnm_notification_req(c, a) \ + (((c) == RTW_WLAN_CATEGORY_WNM) && \ + (((a) == RTW_WLAN_ACTION_WNM_NOTIF_REQ))) + +/* IEEE Std 802.11-2016 Table 9-46 - Status codes */ +#define RTW_ASSOC_DENIED_NO_MORE_STAS 17 +#define RTW_ASSOC_REFUSED_TEMPORARILY 30 + +/* MBO-OCE Information Element */ +#define RTW_MBO_EID WLAN_EID_VENDOR_SPECIFIC +#define RTW_MBO_OUI 0x506F9A +#define RTW_MBO_OUI_TYPE 0x16 + +/* Non-preferred Channel Report */ +#define RTW_MBO_ATTR_NPREF_CH_RPT_ID 0x2 +/* Cellular Data Capabilities */ +#define RTW_MBO_ATTR_CELL_DATA_CAP_ID 0x3 +/* Association Disallowed */ +#define RTW_MBO_ATTR_ASSOC_DISABLED_ID 0x4 +/* Transition Reason Code */ +#define RTW_MBO_ATTR_TRANS_RES_ID 0x6 +/* Transition Rejection Reason Code */ +#define RTW_MBO_ATTR_TRANS_REJ_ID 0x7 +/* Association Retry Delay */ +#define RTW_MBO_ATTR_TASSOC_RETRY_ID 0x8 + +#define RTW_MBO_MAX_CH_LIST_NUM MAX_CHANNEL_NUM + +#define RTW_MBO_MAX_CH_RPT_NUM 32 + +struct npref_ch { + u8 op_class; + u8 chs[RTW_MBO_MAX_CH_LIST_NUM]; + size_t nm_of_ch; + u8 preference; + u8 reason; +}; + +struct npref_ch_rtp { + struct npref_ch ch_rpt[RTW_MBO_MAX_CH_RPT_NUM]; + size_t nm_of_rpt; +}; + +void rtw_mbo_build_cell_data_cap_attr( + _adapter *padapter, u8 **pframe, struct pkt_attrib *pattrib); + +void rtw_mbo_update_ie_data( + _adapter *padapter, u8 *pie, u32 ie_len); + +void rtw_mbo_build_supp_op_class_elem( + _adapter *padapter, u8 **pframe, struct pkt_attrib *pattrib); + +void rtw_mbo_build_npref_ch_rpt_attr( + _adapter *padapter, u8 **pframe, struct pkt_attrib *pattrib); + +void rtw_mbo_build_trans_reject_reason_attr( + _adapter *padapter, u8 **pframe, struct pkt_attrib *pattrib, u8 *pres); + +u8 rtw_mbo_disallowed_network(struct wlan_network *pnetwork); + +void rtw_mbo_build_exented_cap( + _adapter *padapter, u8 **pframe, struct pkt_attrib *pattrib); + +ssize_t rtw_mbo_proc_non_pref_chans_set( + struct file *pfile, const char __user *buffer, + size_t count, loff_t *pos, void *pdata); + +int rtw_mbo_proc_non_pref_chans_get( + struct seq_file *m, void *v); + +ssize_t rtw_mbo_proc_cell_data_set( + struct file *pfile, const char __user *buffer, + size_t count, loff_t *pos, void *pdata); + +int rtw_mbo_proc_cell_data_get( + struct seq_file *m, void *v); + +void rtw_mbo_wnm_notification_parsing( + _adapter *padapter, const u8 *pdata, size_t data_len); + +void rtw_mbo_build_wnm_notification( + _adapter *padapter, u8 **pframe, struct pkt_attrib *pattrib); + +void rtw_mbo_build_probe_req_ies( + _adapter *padapter, u8 **pframe, struct pkt_attrib *pattrib); + +void rtw_mbo_build_assoc_req_ies( + _adapter *padapter, u8 **pframe, struct pkt_attrib *pattrib); + +#endif /* __RTW_MBO_H_ */ + diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_mcc.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_mcc.h index 11598e92..5d2198b0 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_mcc.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_mcc.h @@ -54,7 +54,11 @@ #define MCC_SINGLE_TX_CRITERIA 5 /* Mbps */ #define MAX_MCC_NUM 2 +#ifdef CONFIG_RTL8822C +#define DBG_MCC_REG_NUM 3 +#else #define DBG_MCC_REG_NUM 4 +#endif #define DBG_MCC_RF_REG_NUM 1 #define MCC_STOP(adapter) (adapter->mcc_adapterpriv.mcc_tx_stop) diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_mem.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_mem.h index 5b61fb16..9e33ed51 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_mem.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_mem.h @@ -19,18 +19,6 @@ #include #include -#ifdef CONFIG_SDIO_HCI -#define MAX_RTKM_RECVBUF_SZ MAX_RECVBUF_SZ -#define MAX_RTKM_NR_PREALLOC_RECV_SKB NR_RECVBUFF -#else /* !CONFIG_SDIO_HCI */ -#ifdef CONFIG_PLATFORM_MSTAR_HIGH - #define MAX_RTKM_RECVBUF_SZ (31744) /* 31k */ -#else - #define MAX_RTKM_RECVBUF_SZ (15360) /* 15k */ -#endif /* CONFIG_PLATFORM_MSTAR_HIGH */ -#define MAX_RTKM_NR_PREALLOC_RECV_SKB 16 -#endif /* !CONFIG_SDIO_HCI */ - u16 rtw_rtkm_get_buff_size(void); u8 rtw_rtkm_get_nr_recv_skb(void); struct u8 *rtw_alloc_revcbuf_premem(void); diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_mi.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_mi.h index 4edc9f89..1c7f1633 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_mi.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_mi.h @@ -45,9 +45,7 @@ struct mi_state { u8 scan_enter_num; /* WIFI_UNDER_SURVEY && !SCAN_DISABLE && !SCAN_BACK_OP */ u8 uwps_num; /* WIFI_UNDER_WPS */ #ifdef CONFIG_IOCTL_CFG80211 - #ifdef CONFIG_P2P u8 roch_num; - #endif u8 mgmt_tx_num; #endif #ifdef CONFIG_P2P @@ -55,9 +53,6 @@ struct mi_state { u8 p2p_gc; u8 p2p_go; #endif - u8 union_ch; - u8 union_bw; - u8 union_offset; }; #define MSTATE_STA_NUM(_mstate) ((_mstate)->sta_num) @@ -95,7 +90,7 @@ struct mi_state { #define MSTATE_SCAN_ENTER_NUM(_mstate) ((_mstate)->scan_enter_num) #define MSTATE_WPS_NUM(_mstate) ((_mstate)->uwps_num) -#if defined(CONFIG_IOCTL_CFG80211) && defined(CONFIG_P2P) +#if defined(CONFIG_IOCTL_CFG80211) #define MSTATE_ROCH_NUM(_mstate) ((_mstate)->roch_num) #else #define MSTATE_ROCH_NUM(_mstate) 0 @@ -117,13 +112,9 @@ struct mi_state { #define MSTATE_MGMT_TX_NUM(_mstate) 0 #endif -#define MSTATE_U_CH(_mstate) ((_mstate)->union_ch) -#define MSTATE_U_BW(_mstate) ((_mstate)->union_bw) -#define MSTATE_U_OFFSET(_mstate) ((_mstate)->union_offset) - -#define rtw_mi_get_union_chan(adapter) adapter_to_dvobj(adapter)->iface_state.union_ch -#define rtw_mi_get_union_bw(adapter) adapter_to_dvobj(adapter)->iface_state.union_bw -#define rtw_mi_get_union_offset(adapter) adapter_to_dvobj(adapter)->iface_state.union_offset +#define rtw_mi_get_union_chan(adapter) ((adapter_to_dvobj(adapter)->union_ch) ? (adapter_to_dvobj(adapter)->union_ch) : (adapter_to_dvobj(adapter)->union_ch_bak)) +#define rtw_mi_get_union_bw(adapter) ((adapter_to_dvobj(adapter)->union_ch) ? (adapter_to_dvobj(adapter)->union_bw) : (adapter_to_dvobj(adapter)->union_bw_bak)) +#define rtw_mi_get_union_offset(adapter) ((adapter_to_dvobj(adapter)->union_ch) ? (adapter_to_dvobj(adapter)->union_offset) : (adapter_to_dvobj(adapter)->union_offset_bak)) #define rtw_mi_get_assoced_sta_num(adapter) DEV_STA_LD_NUM(adapter_to_dvobj(adapter)) #define rtw_mi_get_ap_num(adapter) DEV_AP_NUM(adapter_to_dvobj(adapter)) @@ -182,7 +173,7 @@ void rtw_mi_suspend_free_assoc_resource(_adapter *adapter); void rtw_mi_buddy_suspend_free_assoc_resource(_adapter *adapter); #ifdef CONFIG_SET_SCAN_DENY_TIMER -void rtw_mi_set_scan_deny(_adapter *adapter, u32 ms); +void rtw_mi_set_scan_deny(_adapter *adapter, u32 ms, char *reason); void rtw_mi_buddy_set_scan_deny(_adapter *adapter, u32 ms); #else #define rtw_mi_set_scan_deny(adapter, ms) do {} while (0) @@ -192,8 +183,11 @@ void rtw_mi_buddy_set_scan_deny(_adapter *adapter, u32 ms); u8 rtw_mi_is_scan_deny(_adapter *adapter); u8 rtw_mi_buddy_is_scan_deny(_adapter *adapter); +#ifdef CONFIG_AP_MODE void rtw_mi_beacon_update(_adapter *padapter); void rtw_mi_buddy_beacon_update(_adapter *padapter); +void rtw_mi_update_csa(_adapter *adapter); +#endif #ifndef CONFIG_MI_WITH_MBSSID_CAM void rtw_mi_hal_dump_macaddr(void *sel, _adapter *padapter); @@ -248,6 +242,8 @@ u8 rtw_mi_buddy_check_pending_xmitbuf(_adapter *padapter); #include #elif defined(CONFIG_RTL8822C) #include +#elif defined(CONFIG_RTL8723F) + #include #else extern s32 _dequeue_writeport(PADAPTER padapter); #endif @@ -275,15 +271,17 @@ extern void sreset_start_adapter(_adapter *padapter); extern void sreset_stop_adapter(_adapter *padapter); u8 rtw_mi_sreset_adapter_hdl(_adapter *padapter, u8 bstart); u8 rtw_mi_buddy_sreset_adapter_hdl(_adapter *padapter, u8 bstart); + +#ifdef CONFIG_AP_MODE #if defined(DBG_CONFIG_ERROR_RESET) && defined(CONFIG_CONCURRENT_MODE) void rtw_mi_ap_info_restore(_adapter *adapter); #endif - u8 rtw_mi_tx_beacon_hdl(_adapter *padapter); u8 rtw_mi_buddy_tx_beacon_hdl(_adapter *padapter); u8 rtw_mi_set_tx_beacon_cmd(_adapter *padapter); u8 rtw_mi_buddy_set_tx_beacon_cmd(_adapter *padapter); +#endif /* CONFIG_AP_MODE */ #ifdef CONFIG_P2P u8 rtw_mi_p2p_chk_state(_adapter *padapter, enum P2P_STATE p2p_state); @@ -307,4 +305,5 @@ u8 rtw_mi_get_ld_sta_ifbmp(_adapter *adapter); u8 rtw_mi_get_ap_mesh_ifbmp(_adapter *adapter); void rtw_mi_update_ap_bmc_camid(_adapter *padapter, u8 camid_a, u8 camid_b); +_adapter *rtw_mi_get_linking_adapter(_adapter *adapter); #endif /*__RTW_MI_H_*/ diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_mlme.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_mlme.h old mode 100644 new mode 100755 index 6039668f..f20c0290 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_mlme.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_mlme.h @@ -25,6 +25,9 @@ * Increase the scanning timeout because of increasing the SURVEY_TO value. */ #define SCANQUEUE_LIFETIME 20000 /* 20sec, unit:msec */ +#define MAX_UNASSOC_STA_CNT 128 +#define UNASSOC_STA_LIFETIME_MS 60000 + /*pmlmepriv->fw_state*/ #define WIFI_NULL_STATE 0x00000000 #define WIFI_ASOC_STATE 0x00000001 /* Linked */ @@ -57,7 +60,7 @@ /*#define WIFI_UNDEFINED_STATE 0x08000000*/ /*#define WIFI_UNDEFINED_STATE 0x10000000*/ /*#define WIFI_UNDEFINED_STATE 0x20000000*/ -/*#define WIFI_UNDEFINED_STATE 0x40000000*/ +#define WIFI_CSA_UPDATE_BEACON 0x40000000 #define WIFI_MONITOR_STATE 0x80000000 @@ -103,7 +106,7 @@ void rtw_wfd_st_switch(struct sta_info *sta, bool on); #define MLME_IS_OPCH_SW(adapter) CHK_MLME_STATE(adapter, WIFI_OP_CH_SWITCHING) #define MLME_IS_WPS(adapter) CHK_MLME_STATE(adapter, WIFI_UNDER_WPS) -#if defined(CONFIG_IOCTL_CFG80211) && defined(CONFIG_P2P) +#ifdef CONFIG_IOCTL_CFG80211 #define MLME_IS_ROCH(adapter) (rtw_cfg80211_get_is_roch(adapter) == _TRUE) #else #define MLME_IS_ROCH(adapter) 0 @@ -156,7 +159,14 @@ enum { MLME_MESH_STOPPED, MLME_OPCH_SWITCH, }; - +#ifdef CONFIG_WOW_KEEP_ALIVE_PATTERN +enum MODE_WOW_KEEP_ALIVE_PATTERN { + wow_keep_alive_pattern_disable = 0, + wow_keep_alive_pattern_tx, + wow_keep_alive_pattern_trx, + wow_keep_alive_pattern_trx_with_ack +}; +#endif /*CONFIG_WOW_KEEP_ALIVE_PATTERN*/ enum dot11AuthAlgrthmNum { dot11AuthAlgrthm_Open = 0, dot11AuthAlgrthm_Shared, @@ -344,20 +354,6 @@ struct scan_limit_info { #endif /* CONFIG_P2P_OP_CHK_SOCIAL_CH */ }; -#ifdef CONFIG_IOCTL_CFG80211 -struct cfg80211_wifidirect_info { - _timer remain_on_ch_timer; - u8 restore_channel; - struct ieee80211_channel remain_on_ch_channel; - enum nl80211_channel_type remain_on_ch_type; - ATOMIC_T ro_ch_cookie_gen; - u64 remain_on_ch_cookie; - bool is_ro_ch; - struct wireless_dev *ro_ch_wdev; - systime last_ro_ch_time; /* this will be updated at the beginning and end of ro_ch */ -}; -#endif /* CONFIG_IOCTL_CFG80211 */ - #ifdef CONFIG_P2P_WOWLAN enum P2P_WOWLAN_RECV_FRAME_TYPE { @@ -387,10 +383,7 @@ struct wifidirect_info { _timer pre_tx_scan_timer; _timer reset_ch_sitesurvey; _timer reset_ch_sitesurvey2; /* Just for resetting the scan limit function by using p2p nego */ -#ifdef CONFIG_CONCURRENT_MODE - /* Used to switch the channel between legacy AP and listen state. */ - _timer ap_p2p_switch_timer; -#endif + struct tx_provdisc_req_info tx_prov_disc_info; struct rx_provdisc_req_info rx_prov_disc_info; struct tx_invite_req_info invitereq_info; @@ -466,10 +459,6 @@ struct wifidirect_info { #ifdef CONFIG_CONCURRENT_MODE u16 ext_listen_interval; /* The interval to be available with legacy AP (ms) */ u16 ext_listen_period; /* The time period to be available for P2P listen state (ms) */ -#ifdef CONFIG_IOCTL_CFG80211 - u32 min_home_dur; /* min duration for traffic, home_time */ - u32 max_away_dur; /* max acceptable away duration, home_away_time */ -#endif /* CONFIG_IOCTL_CFG80211 */ #endif #ifdef CONFIG_P2P_PS enum P2P_PS_MODE p2p_ps_mode; /* indicate p2p ps mode */ @@ -503,6 +492,7 @@ struct tdls_ch_switch { u8 addr[ETH_ALEN]; u8 off_ch_num; u8 ch_offset; + u8 bcn_early_reg_bkp; u32 cur_time; u8 delay_switch_back; u8 dump_stack; @@ -554,212 +544,38 @@ enum { RTW_ROAM_ACTIVE = BIT2, }; -#ifdef CONFIG_RTW_80211R -#define RTW_FT_ACTION_REQ_LMT 4 -#define RTW_FT_MAX_IE_SZ 256 +#define UNASOC_STA_SRC_RX_BMC 0 +#define UNASOC_STA_SRC_RX_NMY_UC 1 +#define UNASOC_STA_SRC_NUM 2 -enum _rtw_ft_sta_status { - RTW_FT_UNASSOCIATED_STA = 0, - RTW_FT_AUTHENTICATING_STA, - RTW_FT_AUTHENTICATED_STA, - RTW_FT_ASSOCIATING_STA, - RTW_FT_ASSOCIATED_STA, - RTW_FT_REQUESTING_STA, - RTW_FT_REQUESTED_STA, - RTW_FT_CONFIRMED_STA, - RTW_FT_UNSPECIFIED_STA +#define UNASOC_STA_MODE_DISABLED 0 +#define UNASOC_STA_MODE_INTERESTED 1 +#define UNASOC_STA_MODE_ALL 2 +#define UNASOC_STA_MODE_NUM 3 + +#define UNASOC_STA_DEL_CHK_SKIP 0 +#define UNASOC_STA_DEL_CHK_ALIVE 1 +#define UNASOC_STA_DEL_CHK_DELETED 2 + +#define IS_5G_BSS(b) (b.Configuration.DSConfig > 14?true:false) +#define IS_2G_BSS(b) (b.Configuration.DSConfig < 36?true:false) + +#define roam_rssi_threshold(m) (m->LinkDetectInfo.bBusyTraffic\ + ? (m->roam_busy_rssi_threshold)\ + : (m->roam_idle_rssi_threshold)) + +#define roam_rssi_diff_th(m) (m->LinkDetectInfo.bBusyTraffic\ + ? (m->roam_busy_rssi_diff_th)\ + : (m->roam_idle_rssi_diff_th)) + +#ifdef CONFIG_RTW_MULTI_AP +struct unassoc_sta_info { + _list list; + u8 addr[ETH_ALEN]; + u8 interested; + s8 recv_signal_power; + systime time; }; - -#define rtw_ft_chk_status(a, s) \ - ((a)->mlmepriv.ft_roam.ft_status == (s)) - -#define rtw_ft_roam_status(a, s) \ - ((rtw_to_roam(a) > 0) && rtw_ft_chk_status(a, s)) - -#define rtw_ft_authed_sta(a) \ - ((rtw_ft_chk_status(a, RTW_FT_AUTHENTICATED_STA)) || \ - (rtw_ft_chk_status(a, RTW_FT_ASSOCIATING_STA)) || \ - (rtw_ft_chk_status(a, RTW_FT_ASSOCIATED_STA))) - -#define rtw_ft_set_status(a, s) \ - do { \ - ((a)->mlmepriv.ft_roam.ft_status = (s)); \ - } while (0) - -#define rtw_ft_lock_set_status(a, s, irq) \ - do { \ - _enter_critical_bh(&(a)->mlmepriv.lock, ((_irqL *)(irq))); \ - ((a)->mlmepriv.ft_roam.ft_status = (s)); \ - _exit_critical_bh(&(a)->mlmepriv.lock, ((_irqL *)(irq))); \ - } while (0) - -#define rtw_ft_reset_status(a) \ - do { \ - ((a)->mlmepriv.ft_roam.ft_status = RTW_FT_UNASSOCIATED_STA); \ - } while (0) - -enum rtw_ft_capability { - RTW_FT_EN = BIT0, - RTW_FT_OTD_EN = BIT1, - RTW_FT_PEER_EN = BIT2, - RTW_FT_PEER_OTD_EN = BIT3, - RTW_FT_BTM_ROAM = BIT4, -}; - -#define rtw_ft_chk_flags(a, f) \ - ((a)->mlmepriv.ft_roam.ft_flags & (f)) - -#define rtw_ft_set_flags(a, f) \ - do { \ - ((a)->mlmepriv.ft_roam.ft_flags |= (f)); \ - } while (0) - -#define rtw_ft_clr_flags(a, f) \ - do { \ - ((a)->mlmepriv.ft_roam.ft_flags &= ~(f)); \ - } while (0) - -#define rtw_ft_roam(a) \ - ((rtw_to_roam(a) > 0) && rtw_ft_chk_flags(a, RTW_FT_PEER_EN)) - -#define rtw_ft_valid_akm(a, t) \ - ((rtw_ft_chk_flags(a, RTW_FT_EN)) && \ - (((t) == 3) || ((t) == 4))) - -#define rtw_ft_roam_expired(a, r) \ - ((rtw_chk_roam_flags(a, RTW_ROAM_ON_EXPIRED)) \ - && (r == WLAN_REASON_ACTIVE_ROAM)) - -#define rtw_ft_otd_roam_en(a) \ - ((rtw_ft_chk_flags(a, RTW_FT_OTD_EN)) \ - && ((a)->mlmepriv.ft_roam.ft_roam_on_expired == _FALSE) \ - && ((a)->mlmepriv.ft_roam.ft_cap & 0x01)) - -#define rtw_ft_otd_roam(a) \ - rtw_ft_chk_flags(a, RTW_FT_PEER_OTD_EN) - -#define rtw_ft_valid_otd_candidate(a, p) \ - ((rtw_ft_chk_flags(a, RTW_FT_OTD_EN)) \ - && ((rtw_ft_chk_flags(a, RTW_FT_PEER_OTD_EN) \ - && ((*((p)+4) & 0x01) == 0)) \ - || ((rtw_ft_chk_flags(a, RTW_FT_PEER_OTD_EN) == 0) \ - && (*((p)+4) & 0x01)))) - -struct ft_roam_info { - u16 mdid; - u8 ft_cap; - /*b0: FT over DS, b1: Resource Req Protocol Cap, b2~b7: Reserved*/ - u8 updated_ft_ies[RTW_FT_MAX_IE_SZ]; - u16 updated_ft_ies_len; - u8 ft_action[RTW_FT_MAX_IE_SZ]; - u16 ft_action_len; - struct cfg80211_ft_event_params ft_event; - u8 ft_roam_on_expired; - u8 ft_flags; - u32 ft_status; - u32 ft_req_retry_cnt; - bool ft_updated_bcn; -}; -#endif - -#ifdef CONFIG_LAYER2_ROAMING -#if defined(CONFIG_RTW_WNM) || defined(CONFIG_RTW_80211K) -#define RTW_RRM_NB_RPT_EN BIT(1) -#define RTW_MAX_NB_RPT_NUM 8 - -#define rtw_roam_busy_scan(a, nb) \ - (((a)->mlmepriv.LinkDetectInfo.bBusyTraffic == _TRUE) && \ - (((a)->mlmepriv.ch_cnt) < ((nb)->nb_rpt_ch_list_num))) - -#define rtw_wnm_btm_preference_cap(a) \ - ((a)->mlmepriv.nb_info.preference_en == _TRUE) - -#define rtw_wnm_btm_diff_bss(a) \ - ((rtw_wnm_btm_preference_cap(a)) && \ - (is_zero_mac_addr((a)->mlmepriv.nb_info.roam_target_addr) == _FALSE) && \ - (_rtw_memcmp((a)->mlmepriv.nb_info.roam_target_addr,\ - (a)->mlmepriv.cur_network.network.MacAddress, ETH_ALEN) == _FALSE)) - -#define rtw_wnm_btm_roam_candidate(a, c) \ - ((rtw_wnm_btm_preference_cap(a)) && \ - (is_zero_mac_addr((a)->mlmepriv.nb_info.roam_target_addr) == _FALSE) && \ - (_rtw_memcmp((a)->mlmepriv.nb_info.roam_target_addr,\ - (c)->network.MacAddress, ETH_ALEN))) - -#define rtw_wnm_set_ext_cap_btm(_pEleStart, _val) \ - SET_BITS_TO_LE_1BYTE(((u8 *)(_pEleStart))+2, 3, 1, _val) - -#define wnm_btm_bss_term_inc(p) (*((u8 *)((p)+3)) & BSS_TERMINATION_INCLUDED) - -#define wnm_btm_ess_disassoc_im(p) (*((u8 *)((p)+3)) & ESS_DISASSOC_IMMINENT) - -#define wnm_btm_req_mode(p) (*((u8 *)((p)+3))) - -#define wnm_btm_disassoc_timer(p) (*((u16 *)((p)+4))) - -#define wnm_btm_valid_interval(p) (*((u8 *)((p)+6))) - -#define wnm_btm_term_duration_offset(p) ((p)+7) - -/*IEEE Std 80211k Figure 7-95b Neighbor Report element format*/ -struct nb_rpt_hdr { - u8 id; /*0x34: Neighbor Report Element ID*/ - u8 len; - u8 bssid[ETH_ALEN]; - u32 bss_info; - u8 reg_class; - u8 ch_num; - u8 phy_type; -}; - -/*IEEE Std 80211v, Figure 7-95e2¡XBSS Termination Duration subelement field format */ -struct btm_term_duration { - u8 id; - u8 len; - u64 tsf; - u16 duration; -}; - -/*IEEE Std 80211v, Figure 7-101n8¡XBSS Transition Management Request frame body format */ -struct btm_req_hdr { - u8 req_mode; - u16 disassoc_timer; - u8 validity_interval; - struct btm_term_duration term_duration; -}; - -/*IEEE Std 80211v, Table 7-43b Optional Subelement IDs for Neighbor Report*/ -/* BSS Transition Candidate Preference */ -#define WNM_BTM_CAND_PREF_SUBEID 0x03 - -/* BSS Termination Duration */ -#define WNM_BTM_TERM_DUR_SUBEID 0x04 - -struct wnm_btm_cant { - struct nb_rpt_hdr nb_rpt; - u8 preference; /* BSS Transition Candidate Preference */ -}; - -enum rtw_btm_req_mod { - PREFERRED_CANDIDATE_LIST_INCLUDED = BIT0, - ABRIDGED = BIT1, - DISASSOC_IMMINENT = BIT2, - BSS_TERMINATION_INCLUDED = BIT3, - ESS_DISASSOC_IMMINENT = BIT4, -}; - -struct roam_nb_info { - struct nb_rpt_hdr nb_rpt[RTW_MAX_NB_RPT_NUM]; - struct rtw_ieee80211_channel nb_rpt_ch_list[RTW_MAX_NB_RPT_NUM]; - bool nb_rpt_valid; - u8 nb_rpt_ch_list_num; - u8 preference_en; - u8 roam_target_addr[ETH_ALEN]; - u32 last_nb_rpt_entries; - bool nb_rpt_is_same; - _timer roam_scan_timer; -}; -#endif /* defined(CONFIG_RTW_WNM) || defined(CONFIG_RTW_80211K) */ #endif struct mlme_priv { @@ -771,14 +587,32 @@ struct mlme_priv { #ifdef CONFIG_LAYER2_ROAMING u8 to_roam; /* roaming trying times */ struct wlan_network *roam_network; /* the target of active roam */ + struct wlan_network *candidate_5G; /* potential target of active roam */ u8 roam_flags; - u8 roam_rssi_diff_th; /* rssi difference threshold for active scan candidate selection */ + u8 roam_idle_rssi_diff_th; /* idle rssi difference threshold for active scan candidate selection */ + u8 roam_busy_rssi_diff_th; /* busy rssi difference threshold for active scan candidate selection */ + u8 roam_ack; + u32 roam_scan_int; /* scan interval for active roam (Unit:2 second)*/ + u32 roam_scan_int1; /* scan interval for active roam (Unit:2 second)*/ + u32 roam_scan_int2; /* scan interval for active roam (Unit:2 second)*/ + u32 roam_scan_int3; /* scan interval for active roam (Unit:2 second)*/ + + u32 roam_scan_round1; /* scan times for active roam */ + u32 roam_scan_round2; /* scan times for active roam */ + u32 roam_scan_round3; /* scan times for active roam */ u32 roam_scanr_exp_ms; /* scan result expire time in ms for roam */ u8 roam_tgt_addr[ETH_ALEN]; /* request to roam to speicific target without other consideration */ - u8 roam_rssi_threshold; + u8 roam_idle_rssi_threshold; + u8 roam_busy_rssi_threshold; systime last_roaming; bool need_to_roam; + u8 roam_act_cnt; + u8 roam_buf_pkt; + u32 roam_try_cnt; + u8 roam_rssi_base; + u8 roam_from[ETH_ALEN]; + _lock clnt_auth_lock; /* protect the join operation in rx_tasklet & cmd_thread */ #endif u32 defs_lmt_sta; @@ -798,6 +632,9 @@ struct mlme_priv { struct wlan_network cur_network; struct wlan_network *cur_network_scanned; +#if defined(CONFIG_CONCURRENT_MODE) && defined(CONFIG_AP_MODE) + struct wlan_network candidate_network; +#endif /* bcn check info */ struct beacon_keys cur_beacon_keys; /* save current beacon keys */ @@ -805,6 +642,7 @@ struct mlme_priv { struct beacon_keys new_beacon_keys; /* save new beacon keys */ u8 new_beacon_cnts; /* if new_beacon_cnts >= threshold, ap beacon is changed */ #endif + u8 bcn_cnts_after_csa; #ifdef CONFIG_ARP_KEEP_ALIVE /* for arp offload keep alive */ @@ -834,6 +672,15 @@ struct mlme_priv { struct qos_priv qospriv; +#ifdef CONFIG_80211D + u8 *recv_country_ie; + u32 recv_country_ie_len; +#endif + +#ifdef CONFIG_ACTIVE_TPC_REPORT + bool active_tpc_report; +#endif + #ifdef CONFIG_80211N_HT /* Number of non-HT AP/stations */ @@ -866,7 +713,6 @@ struct mlme_priv { #endif #if defined(CONFIG_RTW_WNM) || defined(CONFIG_RTW_80211K) struct roam_nb_info nb_info; - u8 ch_cnt; #endif RT_LINK_DETECT_T LinkDetectInfo; @@ -877,8 +723,8 @@ struct mlme_priv { u8 *wps_probe_req_ie; u32 wps_probe_req_ie_len; - u8 ext_capab_ie_data[8];/*currently for ap mode only*/ - u8 ext_capab_ie_len; + u8 ext_capab_ie_data[WLAN_EID_EXT_CAP_MAX_LEN];/*currently for ap mode only*/ + u8 ext_capab_ie_len; /* content length */ #if defined(CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME) /* Number of associated Non-ERP stations (i.e., stations using 802.11b @@ -914,17 +760,19 @@ struct mlme_priv { u16 ht_op_mode; u8 sw_to_20mhz; /*switch to 20Mhz BW*/ #endif /* CONFIG_80211N_HT */ +#endif /* CONFIG_AP_MODE and CONFIG_NATIVEAP_MLME */ #ifdef CONFIG_RTW_80211R u8 *auth_rsp; u32 auth_rsp_len; #endif + u8 *assoc_req; u32 assoc_req_len; - u8 *assoc_rsp; u32 assoc_rsp_len; +#if defined(CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME) /* u8 *wps_probe_req_ie; */ /* u32 wps_probe_req_ie_len; */ @@ -961,9 +809,6 @@ struct mlme_priv { u8 ori_ch; u8 ori_bw; u8 ori_offset; - #ifdef CONFIG_80211AC_VHT - u8 ori_vht_en; - #endif u8 ap_isolate; #endif /* #if defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME) */ @@ -988,6 +833,11 @@ struct mlme_priv { u32 wfd_assoc_resp_ie_len; #endif +#ifdef CONFIG_RTW_MBO + u8 *pcell_data_cap_ie; + u32 cell_data_cap_len; +#endif + #ifdef RTK_DMP_PLATFORM /* DMP kobject_hotplug function signal need in passive level */ _workitem Linkup_workitem; @@ -1007,6 +857,19 @@ struct mlme_priv { u8 vendor_ie[WLAN_MAX_VENDOR_IE_NUM][WLAN_MAX_VENDOR_IE_LEN]; u32 vendor_ielen[WLAN_MAX_VENDOR_IE_NUM]; #endif +#ifdef CONFIG_RTW_MULTI_AP + u8 unassoc_sta_mode_of_stype[UNASOC_STA_SRC_NUM]; + _queue unassoc_sta_queue; + _queue free_unassoc_sta_queue; + u8 *free_unassoc_sta_buf; + u32 interested_unassoc_sta_cnt; + u32 max_unassoc_sta_cnt; +#ifdef CONFIG_PLATFORM_CMAP_INTFS + struct unassoc_sta_info cmap_unassoc_sta[CMAP_UNASSOC_METRICS_STA_MAX]; + u8 cmap_unassoc_sta_cnt; + _timer cmap_unassoc_sta_timer; +#endif +#endif }; #define mlme_set_scan_to_timer(mlme, ms) \ @@ -1020,6 +883,12 @@ struct mlme_priv { adapter->mlmepriv.auto_scan_int_ms = ms; \ } while (0) +#ifdef CONFIG_ACTIVE_TPC_REPORT +#define MLME_ACTIVE_TPC_REPORT(mlme) (mlme->active_tpc_report) +#else +#define MLME_ACTIVE_TPC_REPORT(mlme) 0 +#endif + #define RTW_AUTO_SCAN_REASON_UNSPECIFIED 0 #define RTW_AUTO_SCAN_REASON_2040_BSS BIT0 #define RTW_AUTO_SCAN_REASON_ACS BIT1 @@ -1057,17 +926,6 @@ extern void rtw_wmm_event_callback(PADAPTER padapter, u8 *pbuf); #ifdef CONFIG_IEEE80211W void rtw_sta_timeout_event_callback(_adapter *adapter, u8 *pbuf); #endif /* CONFIG_IEEE80211W */ -#ifdef CONFIG_RTW_80211R -void rtw_ft_info_init(struct ft_roam_info *pft); -u8 rtw_ft_chk_roaming_candidate(_adapter *padapter, - struct wlan_network *competitor); -void rtw_ft_update_stainfo(_adapter *padapter, WLAN_BSSID_EX *pnetwork); -void rtw_ft_reassoc_event_callback(_adapter *padapter, u8 *pbuf); -#endif -#if defined(CONFIG_RTW_WNM) || defined(CONFIG_RTW_80211K) -void rtw_roam_nb_info_init(_adapter *padapter); -#endif - thread_return event_thread(thread_context context); extern void rtw_free_network_queue(_adapter *adapter, u8 isfreeall); @@ -1172,7 +1030,7 @@ __inline static void set_scanned_network_val(struct mlme_priv *pmlmepriv, sint v } extern u16 rtw_get_capability(WLAN_BSSID_EX *bss); -extern bool rtw_update_scanned_network(_adapter *adapter, WLAN_BSSID_EX *target); +struct wlan_network *rtw_update_scanned_network(_adapter *adapter, WLAN_BSSID_EX *target, bool *upd_ie); extern void rtw_disconnect_hdl_under_linked(_adapter *adapter, struct sta_info *psta, u8 free_assoc); extern void rtw_generate_random_ibss(u8 *pibss); struct wlan_network *_rtw_find_network(_queue *scanned_queue, const u8 *addr); @@ -1186,7 +1044,7 @@ extern void rtw_indicate_disconnect(_adapter *adapter, u16 reason, u8 locally_ge extern void rtw_indicate_connect(_adapter *adapter); void rtw_indicate_scan_done(_adapter *padapter, bool aborted); -void rtw_drv_scan_by_self(_adapter *padapter, u8 reason); +u8 rtw_drv_scan_by_self(_adapter *padapter, u8 reason); void rtw_scan_wait_completed(_adapter *adapter); u32 rtw_scan_abort_timeout(_adapter *adapter, u32 timeout_ms); void rtw_scan_abort_no_wait(_adapter *adapter); @@ -1194,7 +1052,8 @@ void rtw_scan_abort(_adapter *adapter); u32 rtw_join_abort_timeout(_adapter *adapter, u32 timeout_ms); int rtw_cached_pmkid(_adapter *Adapter, u8 *bssid); -int rtw_rsn_sync_pmkid(_adapter *adapter, u8 *ie, uint ie_len, int i_ent); +int rtw_pmkid_sync_rsn(_adapter *adapter, u8 *ie, uint ie_len, int i_ent); +void rtw_set_pmksa(_adapter *padapter, u8 *bssid, u8 *pmkid); extern int rtw_restruct_sec_ie(_adapter *adapter, u8 *out_ie); #ifdef CONFIG_WMMPS_STA @@ -1287,12 +1146,13 @@ void rtw_joinbss_reset(_adapter *padapter); #ifdef CONFIG_80211N_HT void rtw_ht_use_default_setting(_adapter *padapter); void rtw_build_wmm_ie_ht(_adapter *padapter, u8 *out_ie, uint *pout_len); -unsigned int rtw_restructure_ht_ie(_adapter *padapter, u8 *in_ie, u8 *out_ie, uint in_len, uint *pout_len, u8 channel); +unsigned int rtw_restructure_ht_ie(_adapter *padapter, u8 *in_ie, u8 *out_ie, uint in_len, uint *pout_len, u8 channel, struct country_chplan *req_chplan); void rtw_update_ht_cap(_adapter *padapter, u8 *pie, uint ie_len, u8 channel); void rtw_issue_addbareq_cmd(_adapter *padapter, struct xmit_frame *pxmitframe, u8 issue_when_busy); -void rtw_append_exented_cap(_adapter *padapter, u8 *out_ie, uint *pout_len); #endif +void rtw_append_extended_cap(_adapter *padapter, u8 *out_ie, uint *pout_len); + int rtw_is_same_ibss(_adapter *adapter, struct wlan_network *pnetwork); int is_same_network(WLAN_BSSID_EX *src, WLAN_BSSID_EX *dst, u8 feature); @@ -1341,6 +1201,19 @@ struct sta_media_status_rpt_cmd_parm { bool connected; }; +#ifdef CONFIG_RTW_MULTI_AP +void rtw_unassoc_sta_set_mode(_adapter *adapter, u8 stype, u8 mode); +bool rtw_unassoc_sta_src_chk(_adapter *adapter, u8 stype); +void dump_unassoc_sta(void *sel, _adapter *adapter); +void rtw_del_unassoc_sta_queue(_adapter *adapter); +void rtw_del_unassoc_sta(_adapter *adapter, u8 *addr); +void rtw_rx_add_unassoc_sta(_adapter *adapter, u8 stype, u8 *addr, s8 recv_signal_power); +void rtw_add_interested_unassoc_sta(_adapter *adapter, u8 *addr); +void rtw_undo_interested_unassoc_sta(_adapter *adapter, u8 *addr); +void rtw_undo_all_interested_unassoc_sta(_adapter *adapter); +u8 rtw_search_unassoc_sta(_adapter *adapter, u8 *addr, struct unassoc_sta_info *ret_sta); +#endif + void rtw_sta_media_status_rpt(_adapter *adapter, struct sta_info *sta, bool connected); u8 rtw_sta_media_status_rpt_cmd(_adapter *adapter, struct sta_info *sta, bool connected); void rtw_sta_media_status_rpt_cmd_hdl(_adapter *adapter, struct sta_media_status_rpt_cmd_parm *parm); diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_mlme_ext.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_mlme_ext.h index 573d90a6..17df3a94 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_mlme_ext.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_mlme_ext.h @@ -25,6 +25,9 @@ #define REAUTH_TO (300) /* (50) */ #define REASSOC_TO (300) /* (50) */ + +#define REAUTH_FT_TO (1000) +#define REASSOC_FT_TO (1000) /* #define DISCONNECT_TO (3000) */ #define ADDBA_TO (2000) @@ -91,6 +94,7 @@ extern unsigned char WMM_OUI[]; extern unsigned char WPS_OUI[]; extern unsigned char WFD_OUI[]; extern unsigned char P2P_OUI[]; +extern unsigned char MULTI_AP_OUI[]; extern unsigned char WMM_INFO_OUI[]; extern unsigned char WMM_PARA_OUI[]; @@ -190,10 +194,9 @@ struct ss_res { u8 state; u8 next_state; /* will set to state on next cmd hdl */ int bss_cnt; + u8 activate_ch_cnt; int channel_idx; -#if CONFIG_IEEE80211_BAND_5GHZ && CONFIG_DFS - u8 dfs_ch_ssid_scan; -#endif + u8 force_ssid_scan; int scan_mode; u16 scan_ch_ms; u32 scan_timeout_ms; @@ -228,7 +231,13 @@ struct ss_res { u8 igi; /* 0: use defalut */ u8 bw; /* 0: use default */ + u8 reason; bool acs; /* aim to trigger channel selection when scan done */ + +#ifdef CONFIG_LAYER2_ROAMING + u8 nb_num; + struct nb_bssid nb[RTW_MAX_NB_RPT_NUM]; +#endif }; #ifdef CONFIG_TDLS @@ -245,6 +254,7 @@ enum TDLS_option { TDLS_CH_SW_END, TDLS_RS_RCR, TDLS_TEARDOWN_STA, + TDLS_TEARDOWN_STA_TOOFAR, TDLS_TEARDOWN_STA_NO_WAIT, TDLS_TEARDOWN_STA_LOCALLY, TDLS_TEARDOWN_STA_LOCALLY_POST, @@ -274,6 +284,9 @@ enum TDLS_option { #if defined(CONFIG_ATMEL_RC_PATCH) #define RTW_SCAN_NUM_OF_CH 2 #define RTW_BACK_OP_CH_MS 200 +#elseif defined(CONFIG_CUSTOMER_EZVIZ_CHIME2) + #define RTW_SCAN_NUM_OF_CH 1 + #define RTW_BACK_OP_CH_MS 200 #else #define RTW_SCAN_NUM_OF_CH 3 #define RTW_BACK_OP_CH_MS 400 @@ -337,12 +350,35 @@ struct mlme_ext_info { NDIS_802_11_RATES_EX SupportedRates_infra_ap; u8 ht_vht_received;/*ht_vht_received used to show debug msg BIT(0):HT BIT(1):VHT */ #endif /* ROKU_PRIVATE */ + +#ifdef CONFIG_WRITE_BCN_LEN_TO_FW + u16 last_bcn_len; +#endif +}; + +enum { + RTW_CHF_NO_IR = BIT0, + RTW_CHF_DFS = BIT1, + RTW_CHF_LONG_CAC = BIT2, + RTW_CHF_NON_OCP = BIT3, + RTW_CHF_NO_HT40U = BIT4, + RTW_CHF_NO_HT40L = BIT5, + RTW_CHF_NO_80MHZ = BIT6, + RTW_CHF_NO_160MHZ = BIT7, }; /* The channel information about this channel including joining, scanning, and power constraints. */ typedef struct _RT_CHANNEL_INFO { - u8 ChannelNum; /* The channel number. */ - RT_SCAN_TYPE ScanType; /* Scan type such as passive or active scan. */ + u8 band; /* BAND_TYPE */ + u8 ChannelNum; /* The channel number. */ + + /* + * Bitmap and its usage: + * RTW_CHF_NO_IR, RTW_CHF_DFS: is used to check for status + * RTW_CHF_NO_HT40U, RTW_CHF_NO_HT40L, RTW_CHF_NO_80MHZ, RTW_CHF_NO_160MHZ: extra bandwidth limitation (ex: from regulatory) + * RTW_CHF_NON_OCP: is only used to record if event is reported, status check is still done using non_ocp_end_time + */ + u8 flags; /* u16 ScanPeriod; */ /* Listen time in millisecond in this channel. */ /* s32 MaxTxPwrDbm; */ /* Max allowed tx power. */ /* u32 ExInfo; */ /* Extended Information for this channel. */ @@ -353,7 +389,11 @@ typedef struct _RT_CHANNEL_INFO { #ifdef CONFIG_DFS_MASTER systime non_ocp_end_time; #endif +#endif u8 hidden_bss_cnt; /* per scan count */ + +#ifdef CONFIG_IOCTL_CFG80211 + void *os_chan; #endif } RT_CHANNEL_INFO, *PRT_CHANNEL_INFO; @@ -361,9 +401,22 @@ typedef struct _RT_CHANNEL_INFO { #define CAC_TIME_CE_MS (10*60*1000) #define NON_OCP_TIME_MS (30*60*1000) +#if CONFIG_TXPWR_LIMIT void rtw_txpwr_init_regd(struct rf_ctl_t *rfctl); -void rtw_rfctl_init(_adapter *adapter); +bool rtw_rfctl_is_current_txpwr_lmt(struct rf_ctl_t *rfctl, const char *name); +#endif +int rtw_rfctl_init(_adapter *adapter); void rtw_rfctl_deinit(_adapter *adapter); +void rtw_rfctl_decide_init_chplan(struct rf_ctl_t *rfctl, + const char *hw_alpha2, u8 hw_chplan, u8 hw_chplan_6g, u8 hw_force_chplan); +void rtw_rfctl_chplan_init(_adapter *adapter); +bool rtw_rfctl_is_disable_sw_channel_plan(struct dvobj_priv *dvobj); +void rtw_rfctl_update_op_mode(struct rf_ctl_t *rfctl, u8 ifbmp_mod, u8 if_op); + +bool rtw_rfctl_reg_allow_beacon_hint(struct rf_ctl_t *rfctl); + +u8 rtw_rfctl_get_dfs_domain(struct rf_ctl_t *rfctl); +u8 rtw_rfctl_dfs_domain_unknown(struct rf_ctl_t *rfctl); #ifdef CONFIG_DFS_MASTER struct rf_ctl_t; @@ -374,8 +427,9 @@ bool rtw_rfctl_overlap_radar_detect_ch(struct rf_ctl_t *rfctl); bool rtw_rfctl_is_tx_blocked_by_ch_waiting(struct rf_ctl_t *rfctl); bool rtw_chset_is_chbw_non_ocp(RT_CHANNEL_INFO *ch_set, u8 ch, u8 bw, u8 offset); bool rtw_chset_is_ch_non_ocp(RT_CHANNEL_INFO *ch_set, u8 ch); -void rtw_chset_update_non_ocp(RT_CHANNEL_INFO *ch_set, u8 ch, u8 bw, u8 offset); -void rtw_chset_update_non_ocp_ms(RT_CHANNEL_INFO *ch_set, u8 ch, u8 bw, u8 offset, int ms); +bool rtw_chset_update_non_ocp(RT_CHANNEL_INFO *ch_set, u8 ch, u8 bw, u8 offset); +bool rtw_chset_update_non_ocp_ms(RT_CHANNEL_INFO *ch_set, u8 ch, u8 bw, u8 offset, int ms); +void rtw_chset_chk_non_ocp_finish(struct rf_ctl_t *rfctl); u32 rtw_get_ch_waiting_ms(struct rf_ctl_t *rfctl, u8 ch, u8 bw, u8 offset, u32 *r_non_ocp_ms, u32 *r_cac_ms); void rtw_reset_cac(struct rf_ctl_t *rfctl, u8 ch, u8 bw, u8 offset); u32 rtw_force_stop_cac(struct rf_ctl_t *rfctl, u32 timeout_ms); @@ -386,27 +440,48 @@ u32 rtw_force_stop_cac(struct rf_ctl_t *rfctl, u32 timeout_ms); #define rtw_rfctl_is_tx_blocked_by_ch_waiting(rfctl) _FALSE #endif -enum { - RTW_CHF_2G = BIT0, - RTW_CHF_5G = BIT1, - RTW_CHF_DFS = BIT2, - RTW_CHF_LONG_CAC = BIT3, - RTW_CHF_NON_DFS = BIT4, - RTW_CHF_NON_LONG_CAC = BIT5, - RTW_CHF_NON_OCP = BIT6, -}; - bool rtw_choose_shortest_waiting_ch(struct rf_ctl_t *rfctl, u8 sel_ch, u8 max_bw , u8 *dec_ch, u8 *dec_bw, u8 *dec_offset - , u8 d_flags, u8 cur_ch, bool by_int_info, u8 mesh_only); + , u8 e_flags, u8 d_flags, u8 cur_ch, bool by_int_info, u8 mesh_only); -void dump_chset(void *sel, RT_CHANNEL_INFO *ch_set); +struct get_chplan_resp { + enum regd_src_t regd_src; + enum rtw_regd_inr regd_inr; + char alpha2[2]; + u8 channel_plan; +#if CONFIG_IEEE80211_BAND_6GHZ + u8 chplan_6g; +#endif + +#if CONFIG_TXPWR_LIMIT + const char *txpwr_lmt_name[BAND_MAX]; +#endif + u8 edcca_mode_2g; +#if CONFIG_IEEE80211_BAND_5GHZ + u8 edcca_mode_5g; +#endif +#if CONFIG_IEEE80211_BAND_6GHZ + u8 edcca_mode_6g; +#endif +#ifdef CONFIG_DFS_MASTER + u8 dfs_domain; +#endif + u8 proto_en; + u8 chset_num; + RT_CHANNEL_INFO chset[0]; +}; + +#ifdef CONFIG_PROC_DEBUG +void dump_cur_country(void *sel, struct rf_ctl_t *rfctl); void dump_cur_chset(void *sel, struct rf_ctl_t *rfctl); +#endif int rtw_chset_search_ch(RT_CHANNEL_INFO *ch_set, const u32 ch); -u8 rtw_chset_is_chbw_valid(RT_CHANNEL_INFO *ch_set, u8 ch, u8 bw, u8 offset); +int rtw_chset_search_ch_by_band(RT_CHANNEL_INFO *ch_set, BAND_TYPE band, const u32 ch); +u8 rtw_chset_is_chbw_valid(RT_CHANNEL_INFO *ch_set, u8 ch, u8 bw, u8 offset + , bool allow_primary_passive, bool allow_passive); void rtw_chset_sync_chbw(RT_CHANNEL_INFO *ch_set, u8 *req_ch, u8 *req_bw, u8 *req_offset - , u8 *g_ch, u8 *g_bw, u8 *g_offset); + , u8 *g_ch, u8 *g_bw, u8 *g_offset, bool allow_primary_passive, bool allow_passive); bool rtw_mlme_band_check(_adapter *adapter, const u32 ch); @@ -476,6 +551,11 @@ struct mlme_ext_priv { #endif struct ss_res sitesurvey_res; +#ifdef CONFIG_RTW_ROAM_QUICKSCAN + u8 quickscan_next; + u8 roam_ch_num; + struct rtw_ieee80211_channel roam_ch[RTW_CHANNEL_SCAN_AMOUNT]; +#endif struct mlme_ext_info mlmext_info;/* for sta/adhoc mode, including current scanning/connecting/connected related info. * for ap mode, network includes ap's cap_info */ _timer survey_timer; @@ -496,7 +576,9 @@ struct mlme_ext_priv { systime last_scan_time; u8 scan_abort; u8 join_abort; + u8 tx_rate; /* TXRATE when USERATE is set. */ + RATE_SECTION tx_rate_section; /* decided by tx_rate */ u32 retry; /* retry for issue probereq */ @@ -515,9 +597,6 @@ struct mlme_ext_priv { unsigned char bstart_bss; #endif -#ifdef CONFIG_80211D - u8 update_channel_plan_by_ap_done; -#endif /* recv_decache check for Action_public frame */ u8 action_public_dialog_token; u16 action_public_rxseq; @@ -550,6 +629,10 @@ struct mlme_ext_priv { bool txss_1ss; u8 txss_momi_type_bk; #endif +#ifdef CONFIG_DFS + _timer csa_timer; +#endif /* CONFIG_DFS */ + u8 iqk_band; }; struct support_rate_handler { @@ -658,6 +741,7 @@ void change_band_update_ie(_adapter *padapter, WLAN_BSSID_EX *pnetwork, u8 ch); void Set_MSR(_adapter *padapter, u8 type); + void rtw_set_external_auth_status(_adapter *padapter, const void *data, int len); u8 rtw_get_oper_ch(_adapter *adapter); @@ -666,14 +750,13 @@ u8 rtw_get_oper_bw(_adapter *adapter); void rtw_set_oper_bw(_adapter *adapter, u8 bw); u8 rtw_get_oper_choffset(_adapter *adapter); void rtw_set_oper_choffset(_adapter *adapter, u8 offset); -u8 rtw_get_center_ch(u8 channel, u8 chnl_bw, u8 chnl_offset); systime rtw_get_on_oper_ch_time(_adapter *adapter); systime rtw_get_on_cur_ch_time(_adapter *adapter); -u8 rtw_get_offset_by_chbw(u8 ch, u8 bw, u8 *r_offset); - void set_channel_bwmode(_adapter *padapter, unsigned char channel, unsigned char channel_offset, unsigned short bwmode); +void csa_timer_hdl(void *FunctionContext); + unsigned int decide_wait_for_beacon_timeout(unsigned int bcn_interval); void _clear_cam_entry(_adapter *padapter, u8 entry); @@ -683,7 +766,7 @@ void rtw_clean_dk_section(_adapter *adapter); void rtw_clean_hw_dk_cam(_adapter *adapter); /* modify both HW and cache */ -void write_cam(_adapter *padapter, u8 id, u16 ctrl, u8 *mac, u8 *key, bool ext); +void write_cam(_adapter *padapter, u8 id, u16 ctrl, u8 *mac, u8 *key); void clear_cam_entry(_adapter *padapter, u8 id); /* modify cache only */ @@ -742,7 +825,10 @@ void ERP_IE_handler(_adapter *padapter, PNDIS_802_11_VARIABLE_IEs pIE); void VCS_update(_adapter *padapter, struct sta_info *psta); void update_ldpc_stbc_cap(struct sta_info *psta); +#ifdef CONFIG_CHECK_SPECIFIC_IE_CONTENT bool rtw_validate_value(u16 EID, u8 *p, u16 len); +#endif /* CONFIG_CHECK_SPECIFIC_IE_CONTENT */ + bool is_hidden_ssid(char *ssid, int len); bool hidden_ssid_ap(WLAN_BSSID_EX *snetwork); void rtw_absorb_ssid_ifneed(_adapter *padapter, WLAN_BSSID_EX *bssid, u8 *pframe); @@ -753,12 +839,17 @@ int rtw_update_bcn_keys_of_network(struct wlan_network *network); int validate_beacon_len(u8 *pframe, uint len); void rtw_dump_bcn_keys(void *sel, struct beacon_keys *recv_beacon); +void rtw_bcn_key_err_fix(struct beacon_keys *cur, struct beacon_keys *recv); bool rtw_bcn_key_compare(struct beacon_keys *cur, struct beacon_keys *recv); int rtw_check_bcn_info(ADAPTER *Adapter, u8 *pframe, u32 packet_len); void update_beacon_info(_adapter *padapter, u8 *pframe, uint len, struct sta_info *psta); #if CONFIG_DFS void process_csa_ie(_adapter *padapter, u8 *ies, uint ies_len); #endif +#ifdef CONFIG_80211D +bool rtw_iface_accept_country_ie(_adapter *adapter); +void process_country_ie(_adapter *adapter, u8 *ies, uint ies_len); +#endif void update_capinfo(PADAPTER Adapter, u16 updateCap); void update_wireless_mode(_adapter *padapter); void update_tx_basic_rate(_adapter *padapter, u8 modulation); @@ -806,6 +897,7 @@ u8 rtw_get_sec_camid(_adapter *adapter, u8 max_bk_key_num, u8 *sec_key_id); struct macid_bmp; struct macid_ctl_t; +bool _rtw_macid_ctl_chk_cap(_adapter *adapter, u8 cap); void dump_macid_map(void *sel, struct macid_bmp *map, u8 max_num); bool rtw_macid_is_set(struct macid_bmp *map, u8 id); void rtw_macid_map_clr(struct macid_bmp *map, u8 id); @@ -825,8 +917,10 @@ void rtw_macid_ctl_set_rate_bmp0(struct macid_ctl_t *macid_ctl, u8 id, u32 bmp); void rtw_macid_ctl_set_rate_bmp1(struct macid_ctl_t *macid_ctl, u8 id, u32 bmp); #ifdef CONFIG_PROTSEL_MACSLEEP void rtw_macid_ctl_init_sleep_reg(struct macid_ctl_t *macid_ctl, u16 reg_ctrl, u16 reg_info); +void rtw_macid_ctl_init_drop_reg(struct macid_ctl_t *macid_ctl, u16 reg_ctrl, u16 reg_info); #else void rtw_macid_ctl_init_sleep_reg(struct macid_ctl_t *macid_ctl, u16 m0, u16 m1, u16 m2, u16 m3); +void rtw_macid_ctl_init_drop_reg(struct macid_ctl_t *macid_ctl, u16 m0, u16 m1, u16 m2, u16 m3); #endif void rtw_macid_ctl_init(struct macid_ctl_t *macid_ctl); void rtw_macid_ctl_deinit(struct macid_ctl_t *macid_ctl); @@ -863,6 +957,9 @@ extern u8 set_tx_beacon_cmd(_adapter *padapter, u8 flags); unsigned int setup_beacon_frame(_adapter *padapter, unsigned char *beacon_frame); void update_mgnt_tx_rate(_adapter *padapter, u8 rate); void update_monitor_frame_attrib(_adapter *padapter, struct pkt_attrib *pattrib); +#ifdef CONFIG_RTW_MGMT_QUEUE +void update_mgntframe_subtype(_adapter *padapter, struct xmit_frame *pmgntframe); +#endif void update_mgntframe_attrib(_adapter *padapter, struct pkt_attrib *pattrib); void update_mgntframe_attrib_addr(_adapter *padapter, struct xmit_frame *pmgntframe); void dump_mgntframe(_adapter *padapter, struct xmit_frame *pmgntframe); @@ -882,9 +979,6 @@ void issue_p2p_invitation_request(_adapter *padapter, u8 *raddr); #endif /* CONFIG_P2P */ void issue_beacon(_adapter *padapter, int timeout_ms); void issue_probersp(_adapter *padapter, unsigned char *da, u8 is_valid_p2p_probereq); -#ifdef CONFIG_ALIBABA_ZEROCONFIG -void issue_probersp_zeroconf(_adapter *padapter, char *buf, int buf_len); -#endif void _issue_assocreq(_adapter *padapter, u8 is_assoc); void issue_assocreq(_adapter *padapter); void issue_reassocreq(_adapter *padapter); @@ -915,8 +1009,9 @@ unsigned int send_delba_sta_tid(_adapter *adapter, u8 initiator, struct sta_info unsigned int send_delba_sta_tid_wait_ack(_adapter *adapter, u8 initiator, struct sta_info *sta, u8 tid, u8 force); unsigned int send_delba(_adapter *padapter, u8 initiator, u8 *addr); +#ifdef CONFIG_AP_MODE unsigned int send_beacon(_adapter *padapter); - +#endif void start_clnt_assoc(_adapter *padapter); void start_clnt_auth(_adapter *padapter); void start_clnt_join(_adapter *padapter); @@ -974,38 +1069,11 @@ unsigned int OnAction_p2p(_adapter *padapter, union recv_frame *precv_frame); unsigned int OnAction_tbtx_token(_adapter *padapter, union recv_frame *precv_frame); #endif -#ifdef CONFIG_RTW_80211R -void rtw_ft_update_bcn(_adapter *padapter, union recv_frame *precv_frame); -void rtw_ft_start_clnt_join(_adapter *padapter); -u8 rtw_ft_update_rsnie(_adapter *padapter, u8 bwrite, - struct pkt_attrib *pattrib, u8 **pframe); -void rtw_ft_build_auth_req_ies(_adapter *padapter, - struct pkt_attrib *pattrib, u8 **pframe); -void rtw_ft_build_assoc_req_ies(_adapter *padapter, - u8 is_reassoc, struct pkt_attrib *pattrib, u8 **pframe); -u8 rtw_ft_update_auth_rsp_ies(_adapter *padapter, u8 *pframe, u32 len); -void rtw_ft_start_roam(_adapter *padapter, u8 *pTargetAddr); -void rtw_ft_issue_action_req(_adapter *padapter, u8 *pTargetAddr); -void rtw_ft_report_evt(_adapter *padapter); -void rtw_ft_report_reassoc_evt(_adapter *padapter, u8 *pMacAddr); -void rtw_ft_link_timer_hdl(void *ctx); -void rtw_ft_roam_timer_hdl(void *ctx); -void rtw_ft_roam_status_reset(_adapter *padapter); -#endif #ifdef CONFIG_RTW_TOKEN_BASED_XMIT void rtw_issue_action_token_req(_adapter *padapter, struct sta_info *pstat); void rtw_issue_action_token_rel(_adapter *padapter); #endif -#ifdef CONFIG_RTW_WNM -void rtw_wnm_roam_scan_hdl(void *ctx); -void rtw_wnm_process_btm_req(_adapter *padapter, u8* pframe, u32 frame_len); -void rtw_wnm_reset_btm_candidate(struct roam_nb_info *pnb); -void rtw_wnm_reset_btm_state(_adapter *padapter); -void rtw_wnm_issue_action(_adapter *padapter, u8 action, u8 reason); -#endif -#if defined(CONFIG_RTW_WNM) || defined(CONFIG_RTW_80211K) -u32 rtw_wnm_btm_candidates_survey(_adapter *padapter, u8* pframe, u32 elem_len, u8 is_preference); -#endif + void mlmeext_joinbss_event_callback(_adapter *padapter, int join_res); void mlmeext_sta_del_event_callback(_adapter *padapter); void mlmeext_sta_add_event_callback(_adapter *padapter, struct sta_info *psta); @@ -1013,6 +1081,7 @@ void mlmeext_sta_add_event_callback(_adapter *padapter, struct sta_info *psta); int rtw_get_rx_chk_limit(_adapter *adapter); void rtw_set_rx_chk_limit(_adapter *adapter, int limit); void linked_status_chk(_adapter *padapter, u8 from_timer); +void roamed_status_chk(_adapter *padapter, u8 from_timer); #define rtw_get_bcn_cnt(adapter) (adapter->mlmeextpriv.cur_bcn_cnt) #define rtw_get_bcn_dtim_period(adapter) (adapter->mlmeextpriv.dtim) @@ -1115,15 +1184,28 @@ u8 mlme_evt_hdl(_adapter *padapter, unsigned char *pbuf); u8 chk_bmc_sleepq_hdl(_adapter *padapter, unsigned char *pbuf); u8 tx_beacon_hdl(_adapter *padapter, unsigned char *pbuf); u8 rtw_set_chbw_hdl(_adapter *padapter, u8 *pbuf); -u8 set_chplan_hdl(_adapter *padapter, unsigned char *pbuf); +u8 rtw_iqk_hdl(_adapter *padapter, unsigned char *pbuf); +u8 rtw_set_chplan_hdl(_adapter *padapter, unsigned char *pbuf); +u8 rtw_get_chplan_hdl(_adapter *padapter, unsigned char *pbuf); u8 led_blink_hdl(_adapter *padapter, unsigned char *pbuf); u8 set_csa_hdl(_adapter *padapter, unsigned char *pbuf); /* Kurt: Handling DFS channel switch announcement ie. */ +u8 set_ap_csa_hdl(_adapter *adapter, unsigned char *pbuf); u8 tdls_hdl(_adapter *padapter, unsigned char *pbuf); u8 run_in_thread_hdl(_adapter *padapter, u8 *pbuf); +u8 rtw_write_bcnlen_hdl(_adapter *padapter, u8 *pbuf); +u8 rtw_reqtxrpt_cmd_hdl(_adapter *adapter, u8 *pbuf); int rtw_sae_preprocess(_adapter *adapter, const u8 *buf, u32 len, u8 tx); -#define GEN_MLME_EXT_HANDLER(cmd, callback) {cmd, callback}, +u32 rtw_desc_rate_to_bitrate(u8 bw, u8 rate_idx, u8 sgi); +u8 *build_supported_op_class_ie(_adapter *padapter, u8 *pbuf, int *pktlen); + +#ifdef CONFIG_RTW_MULTI_AP +u8 rtw_get_ch_utilization(_adapter *adapter); +void rtw_ch_util_rpt(_adapter *adapter); +#endif + +#define GEN_MLME_EXT_HANDLER(cmd, callback_func) {.cmd_hdl = cmd, .callback = callback_func}, struct rtw_cmd { u8(*cmd_hdl)(_adapter *padapter, u8 *pbuf); @@ -1151,7 +1233,7 @@ struct rtw_cmd wlancmds[] = { GEN_MLME_EXT_HANDLER(tx_beacon_hdl, NULL) /*CMD_TX_BEACON*/ GEN_MLME_EXT_HANDLER(mlme_evt_hdl, NULL) /*CMD_SET_MLME_EVT*/ GEN_MLME_EXT_HANDLER(rtw_drvextra_cmd_hdl, NULL) /*CMD_SET_DRV_EXTRA*/ - GEN_MLME_EXT_HANDLER(set_chplan_hdl, NULL) /*CMD_SET_CHANPLAN*/ + GEN_MLME_EXT_HANDLER(rtw_set_chplan_hdl, NULL) /*CMD_SET_CHANPLAN*/ GEN_MLME_EXT_HANDLER(led_blink_hdl, NULL) /*CMD_LEDBLINK*/ GEN_MLME_EXT_HANDLER(set_csa_hdl, NULL) /*CMD_SET_CHANSWITCH*/ GEN_MLME_EXT_HANDLER(tdls_hdl, NULL) /*CMD_TDLS*/ @@ -1160,6 +1242,11 @@ struct rtw_cmd wlancmds[] = { GEN_MLME_EXT_HANDLER(add_ba_rsp_hdl, NULL) /*CMD_ADD_BARSP*/ GEN_MLME_EXT_HANDLER(rm_post_event_hdl, NULL) /*CMD_RM_POST_EVENT*/ GEN_MLME_EXT_HANDLER(rtw_mesh_set_plink_state_cmd_hdl, NULL) /*CMD_SET_MESH_PLINK_STATE*/ + GEN_MLME_EXT_HANDLER(rtw_iqk_hdl, NULL) /*CMD_DO_IQK*/ + GEN_MLME_EXT_HANDLER(rtw_get_chplan_hdl, NULL) /* CMD_GET_CHANPLAN */ + GEN_MLME_EXT_HANDLER(rtw_write_bcnlen_hdl, NULL) /* CMD_WRITE_BCN_LEN */ + GEN_MLME_EXT_HANDLER(set_ap_csa_hdl, NULL) /* CMD_AP_CHANSWITCH */ + GEN_MLME_EXT_HANDLER(rtw_reqtxrpt_cmd_hdl, NULL) /* CMD_REQ_TXRPT */ }; #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_mp.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_mp.h index 89aa2f76..7ec7229c 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_mp.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_mp.h @@ -300,12 +300,17 @@ enum { #ifdef CONFIG_WOWLAN MP_WOW_ENABLE, MP_WOW_SET_PATTERN, +#ifdef CONFIG_WOW_KEEP_ALIVE_PATTERN + MP_WOW_SET_KEEP_ALIVE_PATTERN, +#endif /*CONFIG_WOW_KEEP_ALIVE_PATTERN*/ + #endif #ifdef CONFIG_AP_WOWLAN MP_AP_WOW_ENABLE, #endif MP_SD_IREAD, MP_SD_IWRITE, + GET_IC_TYPE, }; struct mp_priv { @@ -342,6 +347,7 @@ struct mp_priv { u8 bandwidth; u8 prime_channel_offset; u8 txpoweridx; + s8 txpower_dbm_offset; u8 rateidx; u32 preamble; /* u8 modem; */ @@ -388,6 +394,9 @@ struct mp_priv { BOOLEAN mplink_btx; bool tssitrk_on; + bool efuse_update_on; + bool efuse_update_file; + char efuse_file_path[128]; }; typedef struct _IOCMD_STRUCT_ { @@ -418,7 +427,8 @@ typedef struct _MP_FIRMWARE { } RT_MP_FIRMWARE, *PRT_MP_FIRMWARE; - +#define GET_MPPRIV(__padapter) (struct mp_priv*)(&(((struct _ADAPTER*)__padapter)->mppriv)) +#define GET_EFUSE_UPDATE_ON(_padapter) (GET_MPPRIV(_padapter)->efuse_update_on) /* *********************************************************************** */ @@ -728,7 +738,7 @@ void hal_mpt_SetContinuousTx(PADAPTER pAdapter, u8 bStart); void hal_mpt_SetSingleCarrierTx(PADAPTER pAdapter, u8 bStart); void hal_mpt_SetSingleToneTx(PADAPTER pAdapter, u8 bStart); void hal_mpt_SetCarrierSuppressionTx(PADAPTER pAdapter, u8 bStart); -void mpt_ProSetPMacTx(PADAPTER Adapter); +u8 mpt_ProSetPMacTx(PADAPTER Adapter); void MP_PHY_SetRFPathSwitch(PADAPTER pAdapter , BOOLEAN bMain); void mp_phy_switch_rf_path_set(PADAPTER pAdapter , u8 *pstate); u8 MP_PHY_QueryRFPathSwitch(PADAPTER pAdapter); @@ -740,6 +750,8 @@ u32 mp_join(PADAPTER padapter, u8 mode); u32 hal_mpt_query_phytxok(PADAPTER pAdapter); u32 mpt_get_tx_power_finalabs_val(PADAPTER padapter, u8 rf_path); void mpt_trigger_tssi_tracking(PADAPTER pAdapter, u8 rf_path); +u32 hal_mpt_tssi_turn_target_power(PADAPTER padapter, s16 power_offset, u8 path); +s16 hal_mpt_get_tx_power_mdbm(_adapter *padapter, u8 rf_path); void @@ -902,9 +914,11 @@ int rtw_bt_efuse_mask_file(struct net_device *dev, int rtw_efuse_file_map(struct net_device *dev, struct iw_request_info *info, union iwreq_data *wrqu, char *extra); +#if !defined(CONFIG_RTW_ANDROID_GKI) int rtw_efuse_file_map_store(struct net_device *dev, struct iw_request_info *info, union iwreq_data *wrqu, char *extra); +#endif /* !defined(CONFIG_RTW_ANDROID_GKI) */ int rtw_bt_efuse_file_map(struct net_device *dev, struct iw_request_info *info, union iwreq_data *wrqu, char *extra); diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_odm.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_odm.h index ea49997c..21228083 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_odm.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_odm.h @@ -76,19 +76,22 @@ void rtw_odm_init_ic_type(_adapter *adapter); void rtw_odm_adaptivity_config_msg(void *sel, _adapter *adapter); bool rtw_odm_adaptivity_needed(_adapter *adapter); +void rtw_odm_adaptivity_update(struct dvobj_priv *dvobj); void rtw_odm_adaptivity_parm_msg(void *sel, _adapter *adapter); void rtw_odm_adaptivity_parm_set(_adapter *adapter, s8 th_l2h_ini, s8 th_edcca_hl_diff); void rtw_odm_get_perpkt_rssi(void *sel, _adapter *adapter); void rtw_odm_acquirespinlock(_adapter *adapter, enum rt_spinlock_type type); void rtw_odm_releasespinlock(_adapter *adapter, enum rt_spinlock_type type); -u8 rtw_odm_get_dfs_domain(struct dvobj_priv *dvobj); -u8 rtw_odm_dfs_domain_unknown(struct dvobj_priv *dvobj); +struct dm_struct; +s16 rtw_odm_get_tx_power_mbm(struct dm_struct *dm, u8 rfpath, u8 rate, u8 bw, u8 cch); + #ifdef CONFIG_DFS_MASTER void rtw_odm_radar_detect_reset(_adapter *adapter); void rtw_odm_radar_detect_disable(_adapter *adapter); void rtw_odm_radar_detect_enable(_adapter *adapter); BOOLEAN rtw_odm_radar_detect(_adapter *adapter); +void rtw_odm_update_dfs_region(struct dvobj_priv *dvobj); u8 rtw_odm_radar_detect_polling_int_ms(struct dvobj_priv *dvobj); #endif /* CONFIG_DFS_MASTER */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_p2p.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_p2p.h index 1f985ad1..8d929ad6 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_p2p.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_p2p.h @@ -70,8 +70,6 @@ u8 p2p_ps_wk_cmd(_adapter *padapter, u8 p2p_ps_state, u8 enqueue); #endif /* CONFIG_P2P_PS */ #ifdef CONFIG_IOCTL_CFG80211 -u8 roch_stay_in_cur_chan(_adapter *padapter); -void rtw_init_cfg80211_wifidirect_info(_adapter *padapter); int rtw_p2p_check_frames(_adapter *padapter, const u8 *buf, u32 len, u8 tx); #endif /* CONFIG_IOCTL_CFG80211 */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_pwrctrl.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_pwrctrl.h old mode 100644 new mode 100755 index 0f6851cd..04fb617e --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_pwrctrl.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_pwrctrl.h @@ -38,6 +38,7 @@ #ifdef CONFIG_BT_COEXIST #define BTCOEX_ALIVE BIT(4) #endif /* CONFIG_BT_COEXIST */ +#define LPS_ALIVE BIT(5) #ifdef CONFIG_WOWLAN #ifdef CONFIG_PLATFORM_ANDROID_INTEL_X86 @@ -56,6 +57,7 @@ #define MAX_WKFM_SIZE 16 /* (16 bytes for WKFM bit mask, 16*8 = 128 bits) */ #define MAX_WKFM_PATTERN_SIZE 128 +#define MAX_IN_PATTERN_SIZE 512 /* * MAX_WKFM_PATTERN_STR_LEN : the max. length of wow pattern string @@ -233,6 +235,38 @@ typedef enum _PS_DENY_REASON { PS_DENY_OTHERS = 31 } PS_DENY_REASON; +#ifdef CONFIG_WAR_OFFLOAD +/* only support mDNS V4/V6 rsp now */ +enum { + WAR_ARP_RSP_EN = 0x0000001, + WAR_ICMPV6_NS_RSP_EN = 0x00000002, + WAR_ICMPV4_ECHO_RSP_EN = 0x00000004, + WAR_ICMPV6_ECHO_RSP_EN = 0x00000008, + WAR_NETBIOS_RSP_EN = 0x00000010, + WAR_LLMNR_V4_RSP_EN = 0x00000020, + WAR_LLMNR_V6_RSP_EN = 0x00000040, + WAR_SNMP_V4_RSP_EN = 0x00000080, + WAR_SNMP_V6_RSP_EN = 0x00000100, + WAR_SNMP_V4_WAKEUP_EN = 0x00000200, + WAR_SNMP_V6_WAKEUP_EN = 0x00000400, + WAR_SSDP_V4_WAKEUP_EN = 0x00000800, + WAR_SSDP_V6_WAKEUP_EN = 0x00001000, + WAR_WSD_V4_WAKEUP_EN = 0x00002000, + WAR_WSD_V6_WAKEUP_EN = 0x00004000, + WAR_SLP_V4_WAKEUP_EN = 0x00008000, + WAR_SLP_V6_WAKEUP_EN = 0x00010000, + WAR_MDNS_V4_RSP_EN = 0x00020000, + WAR_MDNS_V6_RSP_EN = 0x00040000, + WAR_DESIGNATED_MAC_EN = 0x00080000, + WAR_LLTD_WAKEUP_EN = 0x00100000, + WAR_ARP_WAKEUP_EN = 0x00200000, + WAR_MAGIC_WAKEUP_EN = 0x00400000, + WAR_MDNS_V4_WAKEUP_EN = 0x000800000, + WAR_MDNS_V6_WAKEUP_EN = 0x001000000 +}; + +#endif /* CONFIG_WAR_OFFLOAD */ + #ifdef CONFIG_PNO_SUPPORT typedef struct pno_nlo_info { u32 fast_scan_period; /* Fast scan period */ @@ -248,7 +282,7 @@ typedef struct pno_nlo_info { typedef struct pno_ssid { u32 SSID_len; - u8 SSID[32]; + u8 SSID[WLAN_SSID_MAXLEN]; } pno_ssid_t; typedef struct pno_ssid_list { @@ -262,6 +296,7 @@ typedef struct pno_scan_channel_info { u8 active; /* set 1 means active scan, or pasivite scan. */ } pno_scan_channel_info_t; +#ifndef RTW_HALMAC typedef struct pno_scan_info { u8 enableRFE; /* Enable RFE */ u8 period_scan_time; /* exclusive with fast_scan_period and slow_scan_period */ @@ -274,6 +309,7 @@ typedef struct pno_scan_info { u64 rfe_type; /* rfe_type && 0x00000000000000ff */ pno_scan_channel_info_t ssid_channel_info[MAX_SCAN_LIST_COUNT]; } pno_scan_info_t; +#endif #endif /* CONFIG_PNO_SUPPORT */ #ifdef CONFIG_LPS_POFF @@ -308,6 +344,72 @@ struct aoac_report { u8 rxgtk_iv[4][8]; }; +#ifdef CONFIG_WAR_OFFLOAD + +struct war_ipv4_fmt { + u32 ip_addr[4]; + u32 ip_subnet[4]; + u32 ip_gateway[4]; +}; + +struct war_ipv6_fmt { + u8 ipv6_addr[8][16]; +}; + +#if defined(CONFIG_OFFLOAD_MDNS_V4) || defined(CONFIG_OFFLOAD_MDNS_V6) +/* limitation of mDNS parameter : length and number */ +#define MAX_MDNS_SERVICE_NAME_LEN 15 +#define MAX_MDNS_TRANS_LEN 4 /* _tcp or _udp */ +#define MAX_MDNS_DOMAIN_LEN 5 /* local only for mdns */ +#define MAX_MDNS_MACHINE_NAME_LEN (63+1) /* +1 for the length byte used by the DNS format */ +#define MAX_MDNS_TARGET_LEN 63 +#define MAX_MDNS_DOMAIN_NAME_LEN 63 +#define MAX_MDNS_TXT_LEN 1536 +#define MAX_MDNS_TXT_SINGLE_LEN 255 + + +#define MAX_MDNS_SERVICE_NUM 10 +#define MAX_MDNS_TXT_NUM 8 +#define MAX_MDNS_MACHINE_NAME_NUM 3 + +/* for monitor rsvd page using */ +#define MAX_MDNS_PARA_SIZE 1700 // 14*128 = 1792 +#define MAX_MDNS_TXT_TOTAL_SIZE 10*MAX_MDNS_TXT_LEN +#define MAX_MDNS_RSP_PKT_SIZE 760 // 6*128 = 768 + +#define RTW_MDNS_SRV_INFO(sname, sname_len, tname, tname_len, dname, dname_len, port0, port1, ttlv, tar, tar_len, idx) \ + { .service=sname, .service_len=sname_len, .transport=tname, .transport_len=tname_len, \ + .domain=dname , .domain_len=dname_len , .port[0]=port0, .port[1]=port1, .ttl=ttlv, \ + .target=tar, .target_len=tar_len, .txt_rsp_idx=idx } + + +struct war_mdns_service_info { + u8 service[MAX_MDNS_SERVICE_NAME_LEN+1]; + u8 service_len; + u8 transport[MAX_MDNS_TRANS_LEN+1]; + u8 transport_len; + u8 domain[MAX_MDNS_DOMAIN_LEN+1]; + u8 domain_len; + u8 port[2]; + u32 ttl; + u8 target[MAX_MDNS_TARGET_LEN+1]; + u8 target_len; + s8 txt_rsp_idx; +}; + +struct war_mdns_machine_name { + u8 name[MAX_MDNS_MACHINE_NAME_LEN]; + u8 name_len; +}; + +struct war_mdns_txt_rsp { + u8 txt[MAX_MDNS_TXT_LEN]; + u16 txt_len; +}; +#endif +#endif /* CONFIG_WAR_OFFLOAD */ + + struct rsvd_page_cache_t; struct pwrctrl_priv { @@ -399,6 +501,8 @@ struct pwrctrl_priv { #ifdef CONFIG_GPIO_WAKEUP u8 is_high_active; + u8 wowlan_gpio_index; + u8 wowlan_gpio_output_state; #endif /* CONFIG_GPIO_WAKEUP */ u8 hst2dev_high_active; #ifdef CONFIG_WOWLAN @@ -410,10 +514,15 @@ struct pwrctrl_priv { u8 wowlan_pattern_idx; u64 wowlan_fw_iv; struct rtl_priv_pattern patterns[MAX_WKFM_CAM_NUM]; +#ifdef CONFIG_WOW_PATTERN_IN_TXFIFO + u8 pattern_rsvd_page_loc; +#endif #ifdef CONFIG_PNO_SUPPORT u8 pno_inited; pno_nlo_info_t *pnlo_info; + #ifndef RTW_HALMAC pno_scan_info_t *pscan_info; + #endif pno_ssid_list_t *pno_ssid_list; #endif /* CONFIG_PNO_SUPPORT */ #ifdef CONFIG_WOW_PATTERN_HW_CAM @@ -426,6 +535,45 @@ struct pwrctrl_priv { #ifdef CONFIG_LPS_1T1R u8 wowlan_lps_1t1r; #endif + + #ifdef CONFIG_WOW_KEEP_ALIVE_PATTERN + /*data 0,rsv page location*/ + u8 wowlan_keep_alive_mode; + u8 keep_alive_pattern_loc; + /*data 1 ,cam id, rx udp packet*/ + u8 wowlan_keep_alive_ack_index; + /*data 2 ,cam id, pattern match packet*/ + u8 wowlan_wake_pattern_index; + /*data3,unit: TBTT*/ + u16 wowlan_keep_alive_period; + /*data4,unit: TBTT*/ + u8 wowlan_keep_alive_retry_interval; + /*data5*/ + u8 wowlan_keep_alive_retry_counter; + /*from echo*/ + u8 keep_alive_pattern[WLAN_MAX_KEEP_ALIVE_IE_LEN]; + u32 keep_alive_pattern_len; + #endif /*CONFIG_WOW_KEEP_ALIVE_PATTERN*/ + +#ifdef CONFIG_WAR_OFFLOAD + u8 wowlan_war_offload_mode; + u32 wowlan_war_offload_ctrl; + struct war_ipv4_fmt wowlan_war_offload_ipv4; + struct war_ipv6_fmt wowlan_war_offload_ipv6; + u8 wowlan_war_offload_mac[6]; +#if defined(CONFIG_OFFLOAD_MDNS_V4) || defined(CONFIG_OFFLOAD_MDNS_V6) + struct war_mdns_machine_name wowlan_war_offload_mdns_mnane[MAX_MDNS_MACHINE_NAME_NUM]; + struct war_mdns_service_info wowlan_war_offload_mdns_service[MAX_MDNS_SERVICE_NUM]; + struct war_mdns_txt_rsp wowlan_war_offload_mdns_txt_rsp[MAX_MDNS_TXT_NUM]; + u8 wowlan_war_offload_mdns_mnane_num; + u8 wowlan_war_offload_mdns_service_info_num; + u8 wowlan_war_offload_mdns_txt_rsp_num; + u8 wowlan_war_offload_mdns_domain_name[MAX_MDNS_DOMAIN_NAME_LEN+1]; + u8 wowlan_war_offload_mdns_domain_name_len; + u32 wowlan_war_offload_mdns_para_cur_size; + u32 wowlan_war_offload_mdns_rsp_cur_size; +#endif /* CONFIG_OFFLOAD_MDNS_V4 || CONFIG_OFFLOAD_MDNS_V6 */ +#endif /* CONFIG_WAR_OFFLOAD */ #endif /* CONFIG_WOWLAN */ _timer pwr_state_check_timer; int pwr_state_check_interval; @@ -524,6 +672,7 @@ extern s32 rtw_register_evt_alive(PADAPTER padapter); extern void rtw_unregister_evt_alive(PADAPTER padapter); extern void cpwm_int_hdl(PADAPTER padapter, struct reportpwrstate_parm *preportpwrstate); extern void LPS_Leave_check(PADAPTER padapter); +void rtw_set_lps_lclk(_adapter *padapter, u8 enable); #endif extern void LeaveAllPowerSaveMode(PADAPTER Adapter); @@ -550,7 +699,8 @@ int rtw_fw_ps_state(PADAPTER padapter); extern const char * const LPS_CTRL_PHYDM; void LPS_Enter(PADAPTER padapter, const char *msg); void LPS_Leave(PADAPTER padapter, const char *msg); -void rtw_leave_lps_and_chk(_adapter *padapter, u8 ps_mode); +void rtw_exec_lps(_adapter *padapter, u8 ps_mode); +void rtw_lps_rfon_ctrl(_adapter *padapter, u8 rfon_ctrl); #ifdef CONFIG_CHECK_LEAVE_LPS #ifdef CONFIG_LPS_CHK_BY_TP void traffic_check_for_leave_lps_by_tp(PADAPTER padapter, u8 tx, struct sta_info *sta); @@ -615,6 +765,15 @@ bool rtw_wowlan_parser_pattern_cmd(u8 *input, char *pattern, void rtw_wow_pattern_sw_reset(_adapter *adapter); u8 rtw_set_default_pattern(_adapter *adapter); void rtw_wow_pattern_sw_dump(_adapter *adapter); +#ifdef CONFIG_WAR_OFFLOAD +#if defined(CONFIG_OFFLOAD_MDNS_V4) || defined(CONFIG_OFFLOAD_MDNS_V6) +void rtw_wow_war_mdns_dump_buf(struct seq_file *m, u8 *title, u8 *buf, u32 len); +void rtw_wow_war_mdns_dump_txt(struct seq_file *m, u8 *title, u8 *buf, u32 len); +bool rtw_wow_war_mdns_parser_pattern(u8 *input, char *target, u32 *target_len, u32 max_len); +void rtw_wow_war_mdns_parms_reset(_adapter *adapter, u8 is_set_default); +#endif /* defined(CONFIG_OFFLOAD_MDNS_V4) || defined(CONFIG_OFFLOAD_MDNS_V6) */ +#endif /* CONFIG_WAR_OFFLOAD */ + #endif /* CONFIG_WOWLAN */ void rtw_ssmps_enter(_adapter *adapter, struct sta_info *sta); void rtw_ssmps_leave(_adapter *adapter, struct sta_info *sta); diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_recv.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_recv.h old mode 100644 new mode 100755 index b37b840a..6464bbac --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_recv.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_recv.h @@ -77,6 +77,7 @@ extern u8 rtw_rfc1042_header[]; enum addba_rsp_ack_state { RTW_RECV_ACK_OR_TIMEOUT, + RTW_RECV_REORDER_WOW }; /* for Rx reordering buffer control */ @@ -172,8 +173,6 @@ struct rx_pkt_attrib { u8 crc_err; u8 icv_err; - u16 eth_type; - u8 dst[ETH_ALEN]; u8 src[ETH_ALEN]; u8 ta[ETH_ALEN]; @@ -302,7 +301,86 @@ struct rtw_rx_ring { }; #endif +struct rtw_ip_dbg_cnt_statistic { + u8 enabled; + u8 ip[4]; + u16 dst_port; + u32 ip_cnt; + u32 tcp_cnt; + u32 udp_cnt; + u32 frag_cnt; + u8 iperf_ver; /* bit7 for debug enable */ + u32 iperf_seq; + u32 iperf_err_cnt; + u32 iperf_out_of_order_cnt; + u32 ip_seq_chk; + u16 frag_offset_chk, max_frag_offset_chk; + u8 defrag_done; + +#define need_to_chk_iudp_cnt(p, s) \ + ((GET_IPV4_PROTOCOL((p)) == 0x11) && \ + ((((struct rtw_ip_dbg_cnt_statistic *)(s))->iperf_ver & 0x7f) > 0)) +#define ip_cnt_inc(s) \ + ((struct rtw_ip_dbg_cnt_statistic *)(s))->ip_cnt++ +#define frag_cnt_inc(s) \ + ((struct rtw_ip_dbg_cnt_statistic *)(s))->frag_cnt++ +#define tcp_udp_cnt_inc(p, s) \ + do { \ + if (GET_IPV4_PROTOCOL(p) == 0x06) \ + ((struct rtw_ip_dbg_cnt_statistic *)(s))->tcp_cnt++; \ + else if (GET_IPV4_PROTOCOL(p) == 0x11) \ + ((struct rtw_ip_dbg_cnt_statistic *)(s))->udp_cnt++; \ + } while(0) +#define iudp_err_cnt_inc(s, str) \ + do { \ + struct rtw_ip_dbg_cnt_statistic *ps = \ + (struct rtw_ip_dbg_cnt_statistic *)(s); \ + ps->iperf_err_cnt++; \ + if (((ps->iperf_ver & 0xf0) >> 7) > 0) \ + RTW_INFO("%s : %s-err iperf_err_cnt(%u), iperf_seq(%u)\n"\ + ,__func__, (const u8 *)(str), ps->iperf_err_cnt, ps->iperf_seq); \ + } while(0) +#define iudp_err_cnt_update(s, c) \ + do { \ + struct rtw_ip_dbg_cnt_statistic *ps = \ + (struct rtw_ip_dbg_cnt_statistic *)(s); \ + ps->iperf_err_cnt += ((c - 1) - ps->iperf_seq); \ + if (((ps->iperf_ver & 0xf0) >> 7) > 0) \ + RTW_INFO("%s : iperf_err_cnt(%u), cur_iperf_seq(%u), last_iperf_seq(%u)\n"\ + ,__func__, ps->iperf_err_cnt, (c), ps->iperf_seq); \ + } while(0) +#define iperf_out_of_order_cnt_inc(s, c) \ + do { \ + struct rtw_ip_dbg_cnt_statistic *ps = \ + (struct rtw_ip_dbg_cnt_statistic *)(s); \ + ps->iperf_out_of_order_cnt++; \ + if (((ps->iperf_ver & 0xf0) >> 7) > 0) \ + RTW_INFO("%s : iperf_out_of_order_cnt(%u), cur_iperf_seq(%u), last_iperf_seq(%u)\n"\ + ,__func__, ps->iperf_out_of_order_cnt, (c), ps->iperf_seq); \ + } while(0) + +#define iudp_ip_seq_set(s, v) \ + (((struct rtw_ip_dbg_cnt_statistic *)(s))->iperf_seq = (v)) +#define iudp_ip_seq_get(s) \ + ((struct rtw_ip_dbg_cnt_statistic *)(s))->iperf_seq +#define iudp_defrag_done_set(s, v) \ + (((struct rtw_ip_dbg_cnt_statistic *)(s))->defrag_done = (v)) +#define iudp_defrag_done_get(s) \ + ((struct rtw_ip_dbg_cnt_statistic *)(s))->defrag_done +#define iudp_ip_seq_chk_set(s, v) \ + (((struct rtw_ip_dbg_cnt_statistic *)(s))->ip_seq_chk = (v)) +#define iudp_ip_seq_chk_get(s) \ + ((struct rtw_ip_dbg_cnt_statistic *)(s))->ip_seq_chk +#define iudp_frag_offset_chk_set(s, v) \ + (((struct rtw_ip_dbg_cnt_statistic *)(s))->frag_offset_chk = (v)) +#define iudp_frag_offset_chk_get(s) \ + ((struct rtw_ip_dbg_cnt_statistic *)(s))->frag_offset_chk +#define iudp_max_frag_offset_chk_set(s, v) \ + (((struct rtw_ip_dbg_cnt_statistic *)(s))->max_frag_offset_chk = (v)) +#define iudp_max_frag_offset_chk_get(s) \ + ((struct rtw_ip_dbg_cnt_statistic *)(s))->max_frag_offset_chk +}; /* end of struct rtw_ip_dbg_cnt_statistic */ /* accesser of recv_priv: rtw_recv_entry(dispatch / passive level); recv_thread(passive) ; returnpkt(dispatch) @@ -315,6 +393,8 @@ using enter_critical section to protect #define DBG_RX_BH_TRACKING 0 #endif +#define ROW_LEN 64 + struct recv_priv { _lock lock; @@ -366,11 +446,16 @@ struct recv_priv { uint rx_smallpacket_crcerr; uint rx_middlepacket_crcerr; + struct rtw_ip_dbg_cnt_statistic ip_statistic; + #ifdef CONFIG_USB_HCI /* u8 *pallocated_urb_buf; */ _sema allrxreturnevt; uint ff_hwaddr; ATOMIC_T rx_pending_cnt; +#ifdef CONFIG_USB_PROTECT_RX_CLONED_SKB + struct sk_buff_head rx_cloned_skb_queue; +#endif #ifdef CONFIG_USB_INTERRUPT_IN_PIPE #ifdef PLATFORM_LINUX @@ -406,6 +491,15 @@ struct recv_priv { _queue recv_buf_pending_queue; #endif +#if defined(CONFIG_SDIO_HCI) +#ifdef CONFIG_SDIO_RECVBUF_PWAIT + struct rtw_pwait_ctx recvbuf_pwait; +#endif +#ifdef CONFIG_SDIO_RECVBUF_AGGREGATION + bool recvbuf_agg; +#endif +#endif /* CONFIG_SDIO_HCI */ + #ifdef CONFIG_PCI_HCI /* Rx */ struct rtw_rx_ring rx_ring[PCI_MAX_RX_QUEUE]; @@ -418,6 +512,11 @@ struct recv_priv { u8 signal_strength_dbg; /* for debug */ u8 signal_strength; + + u8 signal_row_idx; + u8 signal_row[ROW_LEN]; + u8 signal_avg[ROW_LEN]; + u8 signal_qual; s8 rssi; /* translate_percentage_to_dbm(ptarget_wlan->network.PhyInfo.SignalStrength); */ struct rx_raw_rssi raw_rssi_info; @@ -442,6 +541,15 @@ struct recv_priv { BOOLEAN store_law_data_flag; }; +#ifdef CONFIG_SDIO_RECVBUF_AGGREGATION +#define recv_buf_agg(recvpriv) recvpriv->recvbuf_agg +#ifndef CONFIG_SDIO_RECVBUF_AGGREGATION_EN +#define CONFIG_SDIO_RECVBUF_AGGREGATION_EN 1 +#endif +#else +#define recv_buf_agg(recvpriv) 0 +#endif + #define RX_BH_STG_UNKNOWN 0 #define RX_BH_STG_HDL_ENTER 1 #define RX_BH_STG_HDL_EXIT 2 @@ -490,10 +598,20 @@ struct sta_recv_priv { }; +#define RBUF_TYPE_PREALLOC 0 +#define RBUF_TYPE_TMP 1 +#define RBUF_TYPE_PWAIT_ADJ 2 + struct recv_buf { _list list; +#ifdef PLATFORM_WINDOWS _lock recvbuf_lock; +#endif + +#ifdef CONFIG_SDIO_RECVBUF_PWAIT_RUNTIME_ADJUST + u8 type; +#endif u32 ref_cnt; @@ -524,6 +642,11 @@ struct recv_buf { #endif }; +#ifdef CONFIG_SDIO_RECVBUF_PWAIT_RUNTIME_ADJUST +#define RBUF_IS_PREALLOC(rbuf) ((rbuf)->type == RBUF_TYPE_PREALLOC) +#else +#define RBUF_IS_PREALLOC(rbuf) 1 +#endif /* head -----> @@ -590,6 +713,12 @@ union recv_frame { }; +enum rtw_rx_llc_hdl { + RTW_RX_LLC_KEEP = 0, + RTW_RX_LLC_REMOVE = 1, + RTW_RX_LLC_VLAN = 2, +}; + bool rtw_rframe_del_wfd_ie(union recv_frame *rframe, u8 ies_offset); typedef enum _RX_PACKET_TYPE { @@ -616,6 +745,9 @@ sint rtw_enqueue_recvbuf_to_head(struct recv_buf *precvbuf, _queue *queue); sint rtw_enqueue_recvbuf(struct recv_buf *precvbuf, _queue *queue); struct recv_buf *rtw_dequeue_recvbuf(_queue *queue); +void process_pwrbit_data(_adapter *padapter, union recv_frame *precv_frame, struct sta_info *psta); +void process_wmmps_data(_adapter *padapter, union recv_frame *precv_frame, struct sta_info *psta); + #if defined(CONFIG_80211N_HT) && defined(CONFIG_RECV_REORDERING_CTRL) void rtw_reordering_ctrl_timeout_handler(void *pcontext); #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_rf.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_rf.h index ed1c5ce7..5fb3230e 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_rf.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_rf.h @@ -23,17 +23,30 @@ #define SHORT_SLOT_TIME 9 #define NON_SHORT_SLOT_TIME 20 -#define CENTER_CH_2G_40M_NUM 9 #define CENTER_CH_2G_NUM 14 +#define CENTER_CH_2G_40M_NUM 9 + #define CENTER_CH_5G_20M_NUM 28 /* 20M center channels */ #define CENTER_CH_5G_40M_NUM 14 /* 40M center channels */ #define CENTER_CH_5G_80M_NUM 7 /* 80M center channels */ #define CENTER_CH_5G_160M_NUM 3 /* 160M center channels */ #define CENTER_CH_5G_ALL_NUM (CENTER_CH_5G_20M_NUM + CENTER_CH_5G_40M_NUM + CENTER_CH_5G_80M_NUM) -#define MAX_CHANNEL_NUM_2G CENTER_CH_2G_NUM -#define MAX_CHANNEL_NUM_5G CENTER_CH_5G_20M_NUM -#define MAX_CHANNEL_NUM (MAX_CHANNEL_NUM_2G + MAX_CHANNEL_NUM_5G) +#define CENTER_CH_6G_20M_NUM 64 /* 20M center channels */ +#define CENTER_CH_6G_40M_NUM 32 /* 40M center channels */ +#define CENTER_CH_6G_80M_NUM 16 /* 80M center channels */ +#define CENTER_CH_6G_160M_NUM 8 /* 160M center channels */ + +#define MAX_CHANNEL_NUM_2G CENTER_CH_2G_NUM +#define MAX_CHANNEL_NUM_5G CENTER_CH_5G_20M_NUM +#define MAX_CHANNEL_NUM_6G CENTER_CH_6G_20M_NUM +#define MAX_CHANNEL_NUM_2G_5G (MAX_CHANNEL_NUM_2G + MAX_CHANNEL_NUM_5G) + +#define MAX_CHANNEL_NUM ( \ + MAX_CHANNEL_NUM_2G \ + + (CONFIG_IEEE80211_BAND_5GHZ ? MAX_CHANNEL_NUM_5G : 0) \ + + (CONFIG_IEEE80211_BAND_6GHZ ? MAX_CHANNEL_NUM_6G : 0) \ + ) extern u8 center_ch_2g[CENTER_CH_2G_NUM]; extern u8 center_ch_2g_40m[CENTER_CH_2G_40M_NUM]; @@ -55,6 +68,9 @@ u8 rtw_get_scch_by_cch_opch(u8 cch, u8 bw, u8 opch); u8 rtw_get_op_chs_by_cch_bw(u8 cch, u8 bw, u8 **op_chs, u8 *op_ch_num); +u8 rtw_get_offset_by_chbw(u8 ch, u8 bw, u8 *r_offset); +u8 rtw_get_center_ch(u8 ch, u8 bw, u8 offset); + u8 rtw_get_ch_group(u8 ch, u8 *group, u8 *cck_group); typedef enum _CAPABILITY { @@ -92,6 +108,9 @@ enum _REG_PREAMBLE_MODE { typedef enum _BAND_TYPE { BAND_ON_2_4G = 0, BAND_ON_5G = 1, +#if CONFIG_IEEE80211_BAND_6GHZ + BAND_ON_6G = 2, +#endif BAND_MAX, } BAND_TYPE, *PBAND_TYPE; @@ -116,6 +135,61 @@ extern const char *const _ch_width_str[]; extern const u8 _ch_width_to_bw_cap[]; #define ch_width_to_bw_cap(bw) (((bw) < CHANNEL_WIDTH_MAX) ? _ch_width_to_bw_cap[(bw)] : 0) +enum opc_bw { + OPC_BW20 = 0, + OPC_BW40PLUS = 1, + OPC_BW40MINUS = 2, + OPC_BW80 = 3, + OPC_BW160 = 4, + OPC_BW80P80 = 5, + OPC_BW_NUM, +}; + +extern const char *const _opc_bw_str[OPC_BW_NUM]; +#define opc_bw_str(bw) (((bw) < OPC_BW_NUM) ? _opc_bw_str[(bw)] : "N/A") + +extern const u8 _opc_bw_to_ch_width[OPC_BW_NUM]; +#define opc_bw_to_ch_width(bw) (((bw) < OPC_BW_NUM) ? _opc_bw_to_ch_width[(bw)] : CHANNEL_WIDTH_MAX) + +/* global op class APIs */ +bool is_valid_global_op_class_id(u8 gid); +s16 get_sub_op_class(u8 gid, u8 ch); +void dump_global_op_class(void *sel); +u8 rtw_get_op_class_by_chbw(u8 ch, u8 bw, u8 offset); +u8 rtw_get_bw_offset_by_op_class_ch(u8 gid, u8 ch, u8 *bw, u8 *offset); +int get_supported_op_class(_adapter *padapter, u8 *op_set, int len); + +struct op_ch_t { + u8 ch; + u8 static_non_op:1; /* not in channel list */ + u8 no_ir:1; + s16 max_txpwr; /* mBm */ +}; + +struct op_class_pref_t { + u8 class_id; + BAND_TYPE band; + enum opc_bw bw; + u8 ch_num; /* number of chs */ + u8 op_ch_num; /* channel number which is not static non operable */ + u8 ir_ch_num; /* channel number which can init radiation */ + struct op_ch_t chs[]; +}; + +int op_class_pref_init(_adapter *adapter); +void op_class_pref_deinit(_adapter *adapter); + +#define REG_BEACON_HINT 0 +#define REG_TXPWR_CHANGE 1 +#define REG_CHANGE 2 + +void op_class_pref_apply_regulatory(_adapter *adapter, u8 reason); + +struct rf_ctl_t; +void dump_cap_spt_op_class_ch(void *sel, struct rf_ctl_t *rfctl, bool detail); +void dump_reg_spt_op_class_ch(void *sel, struct rf_ctl_t *rfctl, bool detail); +void dump_cur_spt_op_class_ch(void *sel, struct rf_ctl_t *rfctl, bool detail); + /* * Represent Extention Channel Offset in HT Capabilities * This is available only in 40Mhz mode. @@ -168,28 +242,19 @@ u8 rtw_restrict_trx_path_bmp_by_rftype(u8 trx_path_bmp, enum rf_type type, u8 *t void tx_path_nss_set_default(enum bb_path txpath_nss[], u8 txpath_num_nss[], u8 txpath); void tx_path_nss_set_full_tx(enum bb_path txpath_nss[], u8 txpath_num_nss[], u8 txpath); +#if CONFIG_IEEE80211_BAND_6GHZ +int rtw_6gch2freq(int chan); +#endif + int rtw_ch2freq(int chan); +int rtw_ch2freq_by_band(BAND_TYPE band, int ch); int rtw_freq2ch(int freq); +BAND_TYPE rtw_freq2band(int freq); +bool rtw_freq_consecutive(int a, int b); bool rtw_chbw_to_freq_range(u8 ch, u8 bw, u8 offset, u32 *hi, u32 *lo); struct rf_ctl_t; -typedef enum _REGULATION_TXPWR_LMT { - TXPWR_LMT_NONE = 0, /* no limit */ - TXPWR_LMT_FCC = 1, - TXPWR_LMT_MKK = 2, - TXPWR_LMT_ETSI = 3, - TXPWR_LMT_IC = 4, - TXPWR_LMT_KCC = 5, - TXPWR_LMT_ACMA = 6, - TXPWR_LMT_CHILE = 7, - TXPWR_LMT_MEXICO = 8, - TXPWR_LMT_WW = 9, /* smallest of all available limit, keep last */ -} REGULATION_TXPWR_LMT; - -extern const char *const _regd_str[]; -#define regd_str(regd) (((regd) > TXPWR_LMT_WW) ? _regd_str[TXPWR_LMT_WW] : _regd_str[(regd)]) - void txpwr_idx_get_dbm_str(s8 idx, u8 txgi_max, u8 txgi_pdbm, SIZE_T cwidth, char dbm_str[], u8 dbm_str_len); #define MBM_PDBM 100 @@ -198,28 +263,30 @@ void txpwr_idx_get_dbm_str(s8 idx, u8 txgi_max, u8 txgi_pdbm, SIZE_T cwidth, cha void txpwr_mbm_get_dbm_str(s16 mbm, SIZE_T cwidth, char dbm_str[], u8 dbm_str_len); s16 mb_of_ntx(u8 ntx); +#if CONFIG_TXPWR_LIMIT struct regd_exc_ent { _list list; char country[2]; u8 domain; - char regd_name[0]; + char lmt_name[0]; }; void dump_regd_exc_list(void *sel, struct rf_ctl_t *rfctl); -void rtw_regd_exc_add_with_nlen(struct rf_ctl_t *rfctl, const char *country, u8 domain, const char *regd_name, u32 nlen); -void rtw_regd_exc_add(struct rf_ctl_t *rfctl, const char *country, u8 domain, const char *regd_name); +void rtw_regd_exc_add_with_nlen(struct rf_ctl_t *rfctl, const char *country, u8 domain, const char *lmt_name, u32 nlen); +void rtw_regd_exc_add(struct rf_ctl_t *rfctl, const char *country, u8 domain, const char *lmt_name); struct regd_exc_ent *_rtw_regd_exc_search(struct rf_ctl_t *rfctl, const char *country, u8 domain); struct regd_exc_ent *rtw_regd_exc_search(struct rf_ctl_t *rfctl, const char *country, u8 domain); void rtw_regd_exc_list_free(struct rf_ctl_t *rfctl); void dump_txpwr_lmt(void *sel, _adapter *adapter); -void rtw_txpwr_lmt_add_with_nlen(struct rf_ctl_t *rfctl, const char *regd_name, u32 nlen +void rtw_txpwr_lmt_add_with_nlen(struct rf_ctl_t *rfctl, const char *lmt_name, u32 nlen , u8 band, u8 bw, u8 tlrs, u8 ntx_idx, u8 ch_idx, s8 lmt); -void rtw_txpwr_lmt_add(struct rf_ctl_t *rfctl, const char *regd_name +void rtw_txpwr_lmt_add(struct rf_ctl_t *rfctl, const char *lmt_name , u8 band, u8 bw, u8 tlrs, u8 ntx_idx, u8 ch_idx, s8 lmt); -struct txpwr_lmt_ent *_rtw_txpwr_lmt_get_by_name(struct rf_ctl_t *rfctl, const char *regd_name); -struct txpwr_lmt_ent *rtw_txpwr_lmt_get_by_name(struct rf_ctl_t *rfctl, const char *regd_name); +struct txpwr_lmt_ent *_rtw_txpwr_lmt_get_by_name(struct rf_ctl_t *rfctl, const char *lmt_name); +struct txpwr_lmt_ent *rtw_txpwr_lmt_get_by_name(struct rf_ctl_t *rfctl, const char *lmt_name); void rtw_txpwr_lmt_list_free(struct rf_ctl_t *rfctl); +#endif /* CONFIG_TXPWR_LIMIT */ #define BB_GAIN_2G 0 #if CONFIG_IEEE80211_BAND_5GHZ @@ -257,9 +324,11 @@ void rtw_rf_apply_tx_gain_offset(_adapter *adapter, u8 ch); || (rtw_is_5g_band3(a) && rtw_is_5g_band3(b)) \ || (rtw_is_5g_band4(a) && rtw_is_5g_band4(b))) -u8 rtw_is_dfs_range(u32 hi, u32 lo); -u8 rtw_is_dfs_ch(u8 ch); -u8 rtw_is_dfs_chbw(u8 ch, u8 bw, u8 offset); +#define rtw_is_6g_band1(ch) ((ch) >= 1 && (ch) <= 93) +#define rtw_is_6g_band2(ch) ((ch) >= 97 && (ch) <= 117) +#define rtw_is_6g_band3(ch) ((ch) >= 121 && (ch) <= 189) +#define rtw_is_6g_band4(ch) ((ch) >= 193 && (ch) <= 237) + bool rtw_is_long_cac_range(u32 hi, u32 lo, u8 dfs_region); bool rtw_is_long_cac_ch(u8 ch, u8 bw, u8 offset, u8 dfs_region); diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_rm.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_rm.h index 9efcf130..8958066c 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_rm.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_rm.h @@ -25,6 +25,10 @@ u8 rm_post_event_hdl(_adapter *padapter, u8 *pbuf); #define RM_CAP_ARG(x) ((u8 *)(x))[4], ((u8 *)(x))[3], ((u8 *)(x))[2], ((u8 *)(x))[1], ((u8 *)(x))[0] #define RM_CAP_FMT "%02x %02x%02x %02x%02x" +#ifndef MIN +#define MIN(x, y) (((x) < (y)) ? (x) : (y)) +#endif + /* remember to modify rm_event_name() when adding new event */ enum RM_EV_ID { RM_EV_state_in, @@ -67,10 +71,18 @@ struct rm_priv { u8 rm_en_cap_def[5]; u8 rm_en_cap_assoc[5]; + u8 meas_token; /* rm debug */ void *prm_sel; }; +#define MAX_CH_NUM_IN_OP_CLASS 11 +typedef struct _RT_OPERATING_CLASS { + int global_op_class; + int Len; + u8 Channel[MAX_CH_NUM_IN_OP_CLASS]; +} RT_OPERATING_CLASS, *PRT_OPERATING_CLASS; + int rtw_init_rm(_adapter *padapter); int rtw_free_rm_priv(_adapter *padapter); @@ -82,7 +94,18 @@ void rtw_ap_parse_sta_rm_en_cap(_adapter *padapter, int rm_post_event(_adapter *padapter, u32 rmid, enum RM_EV_ID evid); void rm_handler(_adapter *padapter, struct rm_event *pev); -u8 rm_add_nb_req(_adapter *padapter, struct sta_info *psta); +u8 rm_add_nb_req(_adapter *padapter, struct sta_info *psta, u32 delay_start); + +/* from ioctl */ +int rm_send_bcn_reqs(_adapter *padapter, u8 *sta_addr, u8 op_class, u8 ch, + u16 measure_duration, u8 measure_mode, u8 *bssid, u8 *ssid, + u8 reporting_detail, + u8 n_ap_ch_rpt, struct _RT_OPERATING_CLASS *rpt, + u8 n_elem_id, u8 *elem_id_list); +void indicate_beacon_report(u8 *sta_addr, + u8 n_measure_rpt, u32 elem_len, u8 *elem); +#endif /* CONFIG_RTW_80211K */ + +void rm_update_cap(u8 *frame_head, _adapter *pa, u32 pktlen, int offset); -#endif /*CONFIG_RTW_80211K */ #endif /* __RTW_RM_H_ */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_rm_fsm.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_rm_fsm.h index 503b1ed3..c4fd2555 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_rm_fsm.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_rm_fsm.h @@ -27,6 +27,7 @@ #define DBG_BCN_REQ_SSID 0 #define DBG_BCN_REQ_SSID_NAME "RealKungFu" +#define RM_REQ_RETRY_TIMEOUT 200 /* 200 ms */ #define RM_REQ_TIMEOUT 10000 /* 10 seconds */ #define RM_MEAS_TIMEOUT 10000 /* 10 seconds */ #define RM_REPT_SCAN_INTVL 5000 /* 5 seconds */ @@ -55,13 +56,6 @@ #define RM_GET_AID(rmid) ((rmid&0xffff0000)>>16) #define RM_IS_ID_FOR_ALL(rmid) (rmid&RM_ALL_MEAS) -#define MAX_OP_CHANNEL_SET_NUM 11 -typedef struct _RT_OPERATING_CLASS { - int global_op_class; - int Len; - u16 Channel[MAX_OP_CHANNEL_SET_NUM]; -} RT_OPERATING_CLASS, *PRT_OPERATING_CLASS; - /* IEEE 802.11-2012 Table 8-59 Measurement Type definitions * for measurement request * modify rm_meas_type_req_name() when adding new type @@ -112,7 +106,7 @@ enum bcn_req_opt_sub_id{ bcn_req_rep_info = 1, /* len 2 */ bcn_req_rep_detail = 2, /* len 1 */ bcn_req_req = 10, /* len 0-237 */ - bcn_req_ac_ch_rep = 51 /* len 1-237 */ + bcn_req_ap_ch_rep = 51 /* len 1-237 */ }; /* IEEE 802.11-2012 Table 8-66 Reporting condition of Beacon Report */ @@ -131,16 +125,23 @@ struct opt_rep_info { }; #define BCN_REQ_OPT_MAX_NUM 16 +#define BCN_REQ_REQ_OPT_MAX_NUM 16 +#define BCN_REQ_OPT_AP_CH_RPT_MAX_NUM 12 struct bcn_req_opt { /* all req cmd id */ u8 opt_id[BCN_REQ_OPT_MAX_NUM]; u8 opt_id_num; + u8 req_id_num; + u8 req_id[BCN_REQ_REQ_OPT_MAX_NUM]; u8 rep_detail; NDIS_802_11_SSID ssid; /* bcn report condition */ struct opt_rep_info rep_cond; + u8 ap_ch_rpt_num; + struct _RT_OPERATING_CLASS *ap_ch_rpt[BCN_REQ_OPT_AP_CH_RPT_MAX_NUM]; + /* 0:default(Report to be issued after each measurement) */ u8 *req_start; /*id : 10 request;start */ u8 req_len; /*id : 10 request;length */ @@ -214,6 +215,8 @@ struct rm_meas_req { u8 ch_num; u16 rand_intvl; /* units of TU */ u16 meas_dur; /* units of TU */ + u32 delay_start; /* units of TU */ + int retry; u8 bssid[6]; /* for bcn_req */ @@ -230,7 +233,7 @@ struct rm_meas_req { struct meas_req_opt nhm; }opt; - struct rtw_ieee80211_channel ch_set[MAX_OP_CHANNEL_SET_NUM]; + struct rtw_ieee80211_channel ch_set[RTW_CHANNEL_SCAN_AMOUNT]; u8 ch_set_ch_amount; s8 rx_pwr; /* in dBm */ u8 rx_bw; @@ -284,8 +287,10 @@ struct rm_obj { u64 meas_end_time; int wait_busy; u8 poll_mode; + u8 free_run_counter_valid; /* valid:_SUCCESS/invalid:_FAIL */ struct data_buf buf[MAX_BUF_NUM]; + bool from_ioctl; _list list; }; diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_rm_util.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_rm_util.h index b4b88674..932cfb96 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_rm_util.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_rm_util.h @@ -28,11 +28,16 @@ u8 rm_get_oper_class_via_ch(u8 ch); u8 rm_get_ch_set( struct rtw_ieee80211_channel *pch_set, u8 op_class, u8 ch_num); +u8 rm_get_ch_set_from_bcn_req_opt( + struct rtw_ieee80211_channel *pch_set, struct bcn_req_opt *opt); u8 rm_get_bcn_rsni(struct rm_obj *prm, struct wlan_network *pnetwork); u8 rm_get_bcn_rcpi(struct rm_obj *prm, struct wlan_network *pnetwork); u8 rm_get_frame_rsni(struct rm_obj *prm, union recv_frame *pframe); u8 translate_percentage_to_rcpi(u32 SignalStrengthIndex); u8 translate_dbm_to_rcpi(s8 SignalPower); +u8 rm_gen_dialog_token(_adapter *padapter); +u8 rm_gen_meas_token(_adapter *padapter); +u32 rm_gen_rmid(_adapter *padapter, struct rm_obj *prm, u8 role); int is_wildcard_bssid(u8 *bssid); int rm_get_path_a_max_tx_power(_adapter *adapter, s8 *path_a); diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_roch.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_roch.h new file mode 100644 index 00000000..2744f480 --- /dev/null +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_roch.h @@ -0,0 +1,61 @@ +/****************************************************************************** + * + * Copyright(c) 2007 - 2020 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License 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. + * + *****************************************************************************/ +#ifndef __RTW_ROCH_H__ +#define __RTW_ROCH_H__ + +#include + +struct rtw_roch_parm; + +#if (defined(CONFIG_P2P) && defined(CONFIG_CONCURRENT_MODE)) || defined(CONFIG_IOCTL_CFG80211) +struct roch_info { +#ifdef CONFIG_CONCURRENT_MODE + _timer ap_roch_ch_switch_timer; /* Used to switch the channel between legacy AP and listen state. */ +#ifdef CONFIG_IOCTL_CFG80211 + u32 min_home_dur; /* min duration for traffic, home_time */ + u32 max_away_dur; /* max acceptable away duration, home_away_time */ +#endif +#endif + +#ifdef CONFIG_IOCTL_CFG80211 + _timer remain_on_ch_timer; + u8 restore_channel; + struct ieee80211_channel remain_on_ch_channel; + enum nl80211_channel_type remain_on_ch_type; + ATOMIC_T ro_ch_cookie_gen; + u64 remain_on_ch_cookie; + bool is_ro_ch; + struct wireless_dev *ro_ch_wdev; + systime last_ro_ch_time; /* this will be updated at the beginning and end of ro_ch */ +#endif +}; +#endif + +#ifdef CONFIG_IOCTL_CFG80211 +u8 rtw_roch_stay_in_cur_chan(_adapter *padapter); +#endif + +#if (defined(CONFIG_P2P) && defined(CONFIG_CONCURRENT_MODE)) || defined(CONFIG_IOCTL_CFG80211) +s32 rtw_roch_wk_hdl(_adapter *padapter, int intCmdType, u8 *buf); +u8 rtw_roch_wk_cmd(_adapter *padapter, int intCmdType, struct rtw_roch_parm *roch_parm, u8 flags); + +#ifdef CONFIG_CONCURRENT_MODE +void rtw_concurrent_handler(_adapter *padapter); +#endif + +void rtw_init_roch_info(_adapter *padapter); +#endif /* (defined(CONFIG_P2P) && defined(CONFIG_CONCURRENT_MODE)) || defined(CONFIG_IOCTL_CFG80211) */ + +#endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_rson.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_rson.h index 017c13af..6996738b 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_rson.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_rson.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * Copyright(c) 2007 - 2019 Realtek Corporation. + * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. * * This program is free software; you can redistribute it and/or modify it * under the terms of version 2 of the GNU General Public License as @@ -11,7 +11,12 @@ * 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, USA + * + * + ******************************************************************************/ #ifndef __RTW_RSON_H_ #define __RTW_RSON_H_ diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_security.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_security.h old mode 100755 new mode 100644 index f38f595f..661eb385 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_security.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_security.h @@ -129,9 +129,7 @@ typedef struct _RT_PMKID_LIST { u8 bUsed; u8 Bssid[6]; u8 PMKID[16]; - u8 SsidBuf[33]; - u8 *ssid_octet; - u16 ssid_length; + systime last_use; } RT_PMKID_LIST, *PRT_PMKID_LIST; @@ -170,8 +168,8 @@ struct security_priv { unsigned int wpa_pairwise_cipher; unsigned int wpa2_pairwise_cipher; unsigned int akmp; /* An authentication and key management protocol */ - u8 mfp_opt; #endif + u8 mfp_opt; u8 dot118021x_bmc_cam_id; /*IEEE802.11-2012 Std. Table 8-101 AKM Suite Selectors*/ u32 rsn_akm_suite_type; @@ -182,6 +180,9 @@ struct security_priv { u8 owe_ie[MAX_OWE_IE_LEN];/* added in assoc req */ int owe_ie_len; + u8 rsnx_ie[MAX_RSNX_IE_LEN]; + int rsnx_ie_len; + u8 binstallGrpkey; #ifdef CONFIG_GTK_OL u8 binstallKCK_KEK; diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_swcrypto.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_swcrypto.h index b00878ea..d35ad7d0 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_swcrypto.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_swcrypto.h @@ -18,11 +18,11 @@ #define NEW_CRYPTO 1 -int _rtw_ccmp_encrypt(u8 *key, u32 key_len, uint hdrlen, u8 *frame, uint plen); -int _rtw_ccmp_decrypt(u8 *key, u32 key_len, uint hdrlen, u8 *frame, uint plen); +int _rtw_ccmp_encrypt(_adapter *padapter, u8 *key, u32 key_len, uint hdrlen, u8 *frame, uint plen); +int _rtw_ccmp_decrypt(_adapter *padapter, u8 *key, u32 key_len, uint hdrlen, u8 *frame, uint plen); -int _rtw_gcmp_encrypt(u8 *key, u32 key_len, uint hdrlen, u8 *frame, uint plen); -int _rtw_gcmp_decrypt(u8 *key, u32 key_len, uint hdrlen, u8 *frame, uint plen); +int _rtw_gcmp_encrypt(_adapter *padapter, u8 *key, u32 key_len, uint hdrlen, u8 *frame, uint plen); +int _rtw_gcmp_decrypt(_adapter *padapter, u8 *key, u32 key_len, uint hdrlen, u8 *frame, uint plen); #ifdef CONFIG_RTW_MESH_AEK int _aes_siv_encrypt(const u8 *key, size_t key_len, diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_version.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_version.h index 27dcf3d4..7570a3a8 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_version.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_version.h @@ -1,2 +1,2 @@ -#define DRIVERVERSION "v5.9.0.3e_nv-16-g319d9877b.20221101_COEX20200103-0000" -#define BTCOEXVERSION "COEX20200103-0000" +#define DRIVERVERSION "v5.14.0.4-203-g4a9c85a0f.20240219_COEX20240125-2727_beta" +#define BTCOEXVERSION "COEX20240125-2727" diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_vht.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_vht.h old mode 100644 new mode 100755 index 93253b62..838ebd8f --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_vht.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_vht.h @@ -28,6 +28,14 @@ #define STBC_VHT_TEST_TX_ENABLE BIT2 #define STBC_VHT_CAP_TX BIT3 +#define BEAMFORMING_VHT_BEAMFORMER_ENABLE BIT(0) /*Declare sta support beamformer*/ +#define BEAMFORMING_VHT_BEAMFORMEE_ENABLE BIT(1) /*Declare sta support beamformee*/ +#define BEAMFORMING_VHT_MU_MIMO_AP_ENABLE BIT(2) /*Declare sta support MU beamformer*/ +#define BEAMFORMING_VHT_MU_MIMO_STA_ENABLE BIT(3) /*Declare sta support MU beamformer*/ +#define BEAMFORMING_VHT_BEAMFORMER_TEST BIT(4) /*Transmiting Beamforming no matter the target supports it or not*/ +#define BEAMFORMING_VHT_BEAMFORMER_STS_CAP (BIT(8)|BIT(9)|BIT(10)) /*Sta BFee's capability*/ +#define BEAMFORMING_VHT_BEAMFORMEE_SOUND_DIM (BIT(12)|BIT(13)|BIT(14)) /*Sta Bfer's capability*/ + /* VHT capability info */ #define SET_VHT_CAPABILITY_ELE_MAX_MPDU_LENGTH(_pEleStart, _val) SET_BITS_TO_LE_1BYTE(_pEleStart, 0, 2, _val) #define SET_VHT_CAPABILITY_ELE_CHL_WIDTH(_pEleStart, _val) SET_BITS_TO_LE_1BYTE(_pEleStart, 2, 2, _val) @@ -38,20 +46,23 @@ #define SET_VHT_CAPABILITY_ELE_RX_STBC(_pEleStart, _val) SET_BITS_TO_LE_1BYTE((_pEleStart)+1, 0, 3, _val) #define SET_VHT_CAPABILITY_ELE_SU_BFER(_pEleStart, _val) SET_BITS_TO_LE_1BYTE((_pEleStart)+1, 3, 1, _val) #define SET_VHT_CAPABILITY_ELE_SU_BFEE(_pEleStart, _val) SET_BITS_TO_LE_1BYTE((_pEleStart)+1, 4, 1, _val) -#define SET_VHT_CAPABILITY_ELE_BFER_ANT_SUPP(_pEleStart, _val) SET_BITS_TO_LE_1BYTE((_pEleStart)+1, 5, 3, _val) -#define SET_VHT_CAPABILITY_ELE_SOUNDING_DIMENSIONS(_pEleStart, _val) SET_BITS_TO_LE_1BYTE((_pEleStart)+2, 0, 3, _val) +/* #define SET_VHT_CAPABILITY_ELE_BFER_ANT_SUPP(_pEleStart, _val) SET_BITS_TO_LE_1BYTE((_pEleStart)+1, 5, 3, _val) */ +#define SET_VHT_CAPABILITY_ELE_SU_BFEE_STS_CAP(_pEleStart, _val) SET_BITS_TO_LE_1BYTE((_pEleStart)+1, 5, 3, _val) +#define SET_VHT_CAPABILITY_ELE_SOUNDING_DIMENSIONS(_pEleStart, _val) SET_BITS_TO_LE_1BYTE((_pEleStart)+2, 0, 3, _val) /* B16~B18 */ #define SET_VHT_CAPABILITY_ELE_MU_BFER(_pEleStart, _val) SET_BITS_TO_LE_1BYTE((_pEleStart)+2, 3, 1, _val) #define SET_VHT_CAPABILITY_ELE_MU_BFEE(_pEleStart, _val) SET_BITS_TO_LE_1BYTE((_pEleStart)+2, 4, 1, _val) #define SET_VHT_CAPABILITY_ELE_TXOP_PS(_pEleStart, _val) SET_BITS_TO_LE_1BYTE((_pEleStart)+2, 5, 1, _val) #define SET_VHT_CAPABILITY_ELE_HTC_VHT(_pEleStart, _val) SET_BITS_TO_LE_1BYTE((_pEleStart)+2, 6, 1, _val) #define SET_VHT_CAPABILITY_ELE_MAX_RXAMPDU_FACTOR(_pEleStart, _val) SET_BITS_TO_LE_2BYTE((_pEleStart)+2, 7, 3, _val) /* B23~B25 */ -#define SET_VHT_CAPABILITY_ELE_LINK_ADAPTION(_pEleStart, _val) SET_BITS_TO_LE_1BYTE((_pEleStart)+2, 2, 2, _val) +#define SET_VHT_CAPABILITY_ELE_LINK_ADAPTION(_pEleStart, _val) SET_BITS_TO_LE_1BYTE((_pEleStart)+3, 2, 2, _val) #define SET_VHT_CAPABILITY_ELE_MCS_RX_MAP(_pEleStart, _val) SET_BITS_TO_LE_2BYTE((_pEleStart)+4, 0, 16, _val) /* B0~B15 indicate Rx MCS MAP, we write 0 to indicate MCS0~7. by page */ #define SET_VHT_CAPABILITY_ELE_MCS_RX_HIGHEST_RATE(_pEleStart, _val) SET_BITS_TO_LE_2BYTE((_pEleStart)+6, 0, 13, _val) #define SET_VHT_CAPABILITY_ELE_MCS_TX_MAP(_pEleStart, _val) SET_BITS_TO_LE_2BYTE((_pEleStart)+8, 0, 16, _val) /* B0~B15 indicate Tx MCS MAP, we write 0 to indicate MCS0~7. by page */ #define SET_VHT_CAPABILITY_ELE_MCS_TX_HIGHEST_RATE(_pEleStart, _val) SET_BITS_TO_LE_2BYTE((_pEleStart)+10, 0, 13, _val) - +#define SET_VHT_CAPABILITY_ELE_RX_ANT_PATTERN(_pEleStart, _val) SET_BITS_TO_LE_1BYTE((_pEleStart)+3, 4, 1, _val) +#define SET_VHT_CAPABILITY_ELE_TX_ANT_PATTERN(_pEleStart, _val) SET_BITS_TO_LE_1BYTE((_pEleStart)+3, 5, 1, _val) +#define SET_VHT_CAPABILITY_ELE_EXT_NSS_BW(_pEleStart, _val) SET_BITS_TO_LE_1BYTE((_pEleStart)+3, 6, 2, _val) #define GET_VHT_CAPABILITY_ELE_MAX_MPDU_LENGTH(_pEleStart) LE_BITS_TO_1BYTE(_pEleStart, 0, 2) #define GET_VHT_CAPABILITY_ELE_CHL_WIDTH(_pEleStart) LE_BITS_TO_1BYTE(_pEleStart, 2, 2) @@ -63,16 +74,21 @@ #define GET_VHT_CAPABILITY_ELE_SU_BFER(_pEleStart) LE_BITS_TO_1BYTE((_pEleStart)+1, 3, 1) #define GET_VHT_CAPABILITY_ELE_SU_BFEE(_pEleStart) LE_BITS_TO_1BYTE((_pEleStart)+1, 4, 1) /*phydm-beamforming*/ -#define GET_VHT_CAPABILITY_ELE_SU_BFEE_STS_CAP(_pEleStart) LE_BITS_TO_2BYTE((_pEleStart)+1, 5, 3) +#define GET_VHT_CAPABILITY_ELE_SU_BFEE_STS_CAP(_pEleStart) LE_BITS_TO_1BYTE((_pEleStart)+1, 5, 3) #define GET_VHT_CAPABILITY_ELE_SU_BFER_SOUND_DIM_NUM(_pEleStart) LE_BITS_TO_2BYTE((_pEleStart)+2, 0, 3) #define GET_VHT_CAPABILITY_ELE_MU_BFER(_pEleStart) LE_BITS_TO_1BYTE((_pEleStart)+2, 3, 1) #define GET_VHT_CAPABILITY_ELE_MU_BFEE(_pEleStart) LE_BITS_TO_1BYTE((_pEleStart)+2, 4, 1) #define GET_VHT_CAPABILITY_ELE_TXOP_PS(_pEleStart) LE_BITS_TO_1BYTE((_pEleStart)+2, 5, 1) +#define GET_VHT_CAPABILITY_ELE_HTC_VHT(_pEleStart) LE_BITS_TO_1BYTE((_pEleStart)+2, 6, 1) #define GET_VHT_CAPABILITY_ELE_MAX_RXAMPDU_FACTOR(_pEleStart) LE_BITS_TO_2BYTE((_pEleStart)+2, 7, 3) -#define GET_VHT_CAPABILITY_ELE_RX_MCS(_pEleStart) ((_pEleStart)+4) -#define GET_VHT_CAPABILITY_ELE_MCS_RX_HIGHEST_RATE(_pEleStart) LE_BITS_TO_2BYTE((_pEleStart)+6, 0, 13) -#define GET_VHT_CAPABILITY_ELE_TX_MCS(_pEleStart) ((_pEleStart)+8) -#define GET_VHT_CAPABILITY_ELE_MCS_TX_HIGHEST_RATE(_pEleStart) LE_BITS_TO_2BYTE((_pEleStart)+10, 0, 13) +#define GET_VHT_CAPABILITY_ELE_LINK_ADAPTION(_pEleStart) LE_BITS_TO_1BYTE((_pEleStart)+3, 2, 2) +#define GET_VHT_CAPABILITY_ELE_RX_ANT_PATTERN(_pEleStart) LE_BITS_TO_1BYTE((_pEleStart)+3, 4, 1) +#define GET_VHT_CAPABILITY_ELE_TX_ANT_PATTERN(_pEleStart) LE_BITS_TO_1BYTE((_pEleStart)+3, 5, 1) +#define GET_VHT_CAPABILITY_ELE_EXT_NSS_BW(_pEleStart) LE_BITS_TO_1BYTE((_pEleStart)+3, 6, 2) +#define GET_VHT_CAPABILITY_ELE_RX_MCS(_pEleStart) ((_pEleStart)+4) +#define GET_VHT_CAPABILITY_ELE_MCS_RX_HIGHEST_RATE(_pEleStart) LE_BITS_TO_2BYTE((_pEleStart)+6, 0, 13) +#define GET_VHT_CAPABILITY_ELE_TX_MCS(_pEleStart) ((_pEleStart)+8) +#define GET_VHT_CAPABILITY_ELE_MCS_TX_HIGHEST_RATE(_pEleStart) LE_BITS_TO_2BYTE((_pEleStart)+10, 0, 13) /* VHT Operation Information Element */ @@ -84,6 +100,7 @@ #define GET_VHT_OPERATION_ELE_CHL_WIDTH(_pEleStart) LE_BITS_TO_1BYTE(_pEleStart, 0, 8) #define GET_VHT_OPERATION_ELE_CENTER_FREQ1(_pEleStart) LE_BITS_TO_1BYTE((_pEleStart)+1, 0, 8) #define GET_VHT_OPERATION_ELE_CENTER_FREQ2(_pEleStart) LE_BITS_TO_1BYTE((_pEleStart)+2, 0, 8) +#define GET_VHT_OPERATION_ELE_BASIC_MCS_SET(_pEleStart) LE_BITS_TO_2BYTE((_pEleStart)+3, 0, 16) /* VHT Operating Mode */ #define SET_VHT_OPERATING_MODE_FIELD_CHNL_WIDTH(_pEleStart, _val) SET_BITS_TO_LE_1BYTE(_pEleStart, 0, 2, _val) @@ -103,10 +120,12 @@ extern const u16 _vht_max_mpdu_len[]; #define VHT_SUP_CH_WIDTH_SET_MAX 3 extern const u8 _vht_sup_ch_width_set_to_bw_cap[]; #define vht_sup_ch_width_set_to_bw_cap(set) (((set) >= VHT_SUP_CH_WIDTH_SET_MAX) ? _vht_sup_ch_width_set_to_bw_cap[VHT_SUP_CH_WIDTH_SET_MAX] : _vht_sup_ch_width_set_to_bw_cap[(set)]) +#define VHT_MAX_AMPDU_LEN(f) ((1 << (13 + f)) - 1) + +#ifdef CONFIG_RTW_DEBUG extern const char *const _vht_sup_ch_width_set_str[]; #define vht_sup_ch_width_set_str(set) (((set) >= VHT_SUP_CH_WIDTH_SET_MAX) ? _vht_sup_ch_width_set_str[VHT_SUP_CH_WIDTH_SET_MAX] : _vht_sup_ch_width_set_str[(set)]) -#define VHT_MAX_AMPDU_LEN(f) ((1 << (13 + f)) - 1) void dump_vht_cap_ie(void *sel, const u8 *ie, u32 ie_len); #define VHT_OP_CH_WIDTH_MAX 4 @@ -114,6 +133,7 @@ extern const char *const _vht_op_ch_width_str[]; #define vht_op_ch_width_str(ch_width) (((ch_width) >= VHT_OP_CH_WIDTH_MAX) ? _vht_op_ch_width_str[VHT_OP_CH_WIDTH_MAX] : _vht_op_ch_width_str[(ch_width)]) void dump_vht_op_ie(void *sel, const u8 *ie, u32 ie_len); +#endif struct vht_bf_cap { u8 is_mu_bfer; @@ -121,18 +141,31 @@ struct vht_bf_cap { }; struct vht_priv { - u8 vht_option; + /* VHT IE is configured by upper layer or not (hostapd or wpa_supplicant) */ + u8 upper_layer_setting; + + u8 vht_option; u8 ldpc_cap; u8 stbc_cap; - u16 beamform_cap; + u8 rx_stbc_nss; /* Support nss spatial stream */ + u16 beamform_cap; + u8 ap_is_mu_bfer; struct vht_bf_cap ap_bf_cap; + u8 sgi_80m; + u8 sgi_160m; - u8 sgi_80m;/* short GI */ - u8 ampdu_len; + u8 ampdu_len; /* A-MPDU length exponent : 0 to 7 */ - u8 vht_highest_rate; - u8 vht_mcs_map[2]; + u8 vht_highest_rate; + u8 vht_mcs_map[2]; + + u8 txop_ps; /* TXOP power save mode*/ + u8 htc_vht; /* VHT variant HT Control*/ + u8 link_adap_cap; /* VHT Link Adaptation Capable */ + u8 tx_ant_pattern; /* Tx Antenna Pattern Consistency */ + u8 rx_ant_pattern; /* Rx Antenna Pattern Consistency */ + u8 ext_nss_bw; /* Extended NSS BW Support */ u8 op_present:1; /* vht_op is present */ u8 notify_present:1; /* vht_op_mode_notify is present */ @@ -140,6 +173,10 @@ struct vht_priv { u8 vht_cap[32]; u8 vht_op[VHT_OP_IE_LEN]; u8 vht_op_mode_notify; + + /* Backup these two VHT IEs from hostapd/wpa_supplicant for restore usage */ + u8 vht_cap_ie_backup[VHT_CAP_IE_LEN]; + u8 vht_op_ie_backup[VHT_OP_IE_LEN]; }; #ifdef ROKU_PRIVATE @@ -171,11 +208,17 @@ void VHT_caps_handler_infra_ap(_adapter *padapter, PNDIS_802_11_VARIABLE_IEs pIE #endif /* ROKU_PRIVATE */ void VHT_operation_handler(_adapter *padapter, PNDIS_802_11_VARIABLE_IEs pIE); void rtw_process_vht_op_mode_notify(_adapter *padapter, u8 *pframe, void *sta); -u32 rtw_restructure_vht_ie(_adapter *padapter, u8 *in_ie, u8 *out_ie, uint in_len, uint *pout_len); +u32 rtw_restructure_vht_ie(_adapter *padapter, u8 *in_ie, u8 *out_ie, uint in_len, uint *pout_len, struct country_chplan *req_chplan); void VHTOnAssocRsp(_adapter *padapter); u8 rtw_vht_mcsmap_to_nss(u8 *pvht_mcs_map); void rtw_vht_nss_to_mcsmap(u8 nss, u8 *target_mcs_map, u8 *cur_mcs_map); void rtw_vht_ies_attach(_adapter *padapter, WLAN_BSSID_EX *pcur_network); void rtw_vht_ies_detach(_adapter *padapter, WLAN_BSSID_EX *pcur_network); void rtw_check_for_vht20(_adapter *adapter, u8 *ies, int ies_len); +#ifdef CONFIG_AP_MODE +void rtw_update_drv_vht_cap(_adapter *padapter, u8 *vht_cap_ie); +void rtw_set_vht_ext_cap(_adapter *padapter, WLAN_BSSID_EX *pnetwork); +void rtw_check_vht_ies(_adapter *padapter, WLAN_BSSID_EX *pnetwork); +void rtw_reattach_vht_ies(_adapter *padapter, WLAN_BSSID_EX *pnetwork); +#endif #endif /* _RTW_VHT_H_ */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_wapi.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_wapi.h index 512bb7f3..fb109f83 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_wapi.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_wapi.h @@ -29,12 +29,12 @@ /* WAPI trace debug */ extern u32 wapi_debug_component; -static inline void dump_buf(u8 *buf, u32 len) +static inline void dump_wapi_buf(u8 *buf, u32 len) { u32 i; printk("-----------------Len %d----------------\n", len); for (i = 0; i < len; i++) - printk("%2.2x-", *(buf + i)); + printk(KERN_CONT "%2.2x-", *(buf + i)); printk("\n"); } @@ -47,17 +47,17 @@ static inline void dump_buf(u8 *buf, u32 len) #define WAPI_DATA(component, x, buf, len) \ do { if (wapi_debug_component & (component)) { \ printk("%s:\n", x);\ - dump_buf((buf), (len)); } \ + dump_wapi_buf((buf), (len)); } \ } while (0); -#define RT_ASSERT_RET(_Exp) \ +#define RT_WAPI_ASSERT_RET(_Exp) \ if (!(_Exp)) { \ printk("RTWLAN: "); \ printk("Assertion failed! %s,%s, line=%d\n", \ #_Exp, __FUNCTION__, __LINE__); \ return; \ } -#define RT_ASSERT_RET_VALUE(_Exp, Ret) \ +#define RT_WAPI_ASSERT_RET_VALUE(_Exp, Ret) \ if (!(_Exp)) { \ printk("RTWLAN: "); \ printk("Assertion failed! %s,%s, line=%d\n", \ @@ -66,8 +66,8 @@ static inline void dump_buf(u8 *buf, u32 len) } #else -#define RT_ASSERT_RET(_Exp) do {} while (0) -#define RT_ASSERT_RET_VALUE(_Exp, Ret) do {} while (0) +#define RT_WAPI_ASSERT_RET(_Exp) do {} while (0) +#define RT_WAPI_ASSERT_RET_VALUE(_Exp, Ret) do {} while (0) #define WAPI_TRACE(component, x, args...) do {} while (0) #define WAPI_DATA(component, x, buf, len) do {} while (0) #endif diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_wnm.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_wnm.h new file mode 100755 index 00000000..bf45d6d6 --- /dev/null +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_wnm.h @@ -0,0 +1,214 @@ +/****************************************************************************** + * + * Copyright(c) 2007 - 2017 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License 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. + * + *****************************************************************************/ + +#ifndef __RTW_WNM_H_ +#define __RTW_WNM_H_ + +#define RTW_RRM_NB_RPT_EN BIT(1) + +#define RTW_WNM_FEATURE_BTM_REQ_EN BIT(0) + +#define rtw_roam_busy_scan(a, nb) \ + (((a)->mlmepriv.LinkDetectInfo.bBusyTraffic == _TRUE) && \ + (((a)->mlmepriv.ch_cnt) < ((nb)->nb_rpt_ch_list_num))) + +#define rtw_wnm_btm_preference_cap(a) \ + ((a)->mlmepriv.nb_info.preference_en == _TRUE) + +#define rtw_wnm_btm_roam_triggered(a) \ + (((a)->mlmepriv.nb_info.preference_en == _TRUE) \ + && (rtw_ft_chk_flags((a), RTW_FT_BTM_ROAM)) \ + ) + +#define rtw_wnm_btm_diff_bss(a) \ + ((rtw_wnm_btm_preference_cap(a)) && \ + (is_zero_mac_addr((a)->mlmepriv.nb_info.roam_target_addr) == _FALSE) && \ + (_rtw_memcmp((a)->mlmepriv.nb_info.roam_target_addr,\ + (a)->mlmepriv.cur_network.network.MacAddress, ETH_ALEN) == _FALSE)) + +#define rtw_wnm_btm_roam_candidate(a, c) \ + ((rtw_wnm_btm_preference_cap(a)) && \ + (is_zero_mac_addr((a)->mlmepriv.nb_info.roam_target_addr) == _FALSE) && \ + (_rtw_memcmp((a)->mlmepriv.nb_info.roam_target_addr,\ + (c)->network.MacAddress, ETH_ALEN))) + +#define rtw_wnm_set_ext_cap_btm(_pEleStart, _val) \ + SET_BITS_TO_LE_1BYTE(((u8 *)(_pEleStart))+2, 3, 1, _val) + +#define wnm_btm_bss_term_inc(p) (*((u8 *)((p)+3)) & BSS_TERMINATION_INCLUDED) + +#define wnm_btm_bss_disassoc_im(p) (*((u8 *)((p)+3)) & DISASSOC_IMMINENT) + +#define wnm_btm_ess_disassoc_im(p) (*((u8 *)((p)+3)) & ESS_DISASSOC_IMMINENT) + +#define wnm_btm_dialog_token(p) (*((u8 *)((p)+2))) + +#define wnm_btm_req_mode(p) (*((u8 *)((p)+3))) + +#define wnm_btm_disassoc_timer(p) (*((u16 *)((p)+4))) + +#define wnm_btm_valid_interval(p) (*((u8 *)((p)+6))) + +#define wnm_btm_term_duration_offset(p) ((p)+7) + +#define wnm_btm_rsp_status(p) (*((u8 *)((p)+3))) + +#define wnm_btm_rsp_term_delay(p) (*((u8 *)((p)+4))) + +#define RTW_WLAN_ACTION_WNM_NB_RPT_ELEM 0x34 + +enum rtw_ieee80211_wnm_actioncode { + RTW_WLAN_ACTION_WNM_BTM_QUERY = 6, + RTW_WLAN_ACTION_WNM_BTM_REQ = 7, + RTW_WLAN_ACTION_WNM_BTM_RSP = 8, + RTW_WLAN_ACTION_WNM_NOTIF_REQ = 26, + RTW_WLAN_ACTION_WNM_NOTIF_RSP = 27, +}; + +/*IEEE Std 80211k Figure 7-95b Neighbor Report element format*/ +struct nb_rpt_hdr { + u8 id; /*0x34: Neighbor Report Element ID*/ + u8 len; + u8 bssid[ETH_ALEN]; + u32 bss_info; + u8 reg_class; + u8 ch_num; + u8 phy_type; +}; + +/*IEEE Std 80211v, Figure 7-9 BSS Termination Duration subelement field format */ +struct btm_term_duration { + u8 id; + u8 len; + u64 tsf; /* value of the TSF counter when BSS termination will occur in the future */ + u16 duration; /* number of minutes for which the BSS is not present*/ +}; + +/*IEEE Std 80211v, Figure 7-10 BSS Transition Management Request frame body format */ +struct btm_req_hdr { + u8 dialog_token; + u8 req_mode; + /* number of TBTTs until the AP sends a Disassociation frame to this STA */ + u16 disassoc_timer; + /* number of TBTTs until the BSS transition candidate list is no longer valid */ + u8 validity_interval; + struct btm_term_duration term_duration; +}; + +struct btm_rsp_hdr { + u8 dialog_token; + u8 status; + /* the number of minutes that + the responding STA requests the BSS to delay termination */ + u8 termination_delay; + u8 bssid[ETH_ALEN]; + u8 *pcandidates; + u32 candidates_num; +}; + +struct btm_rpt_cache { + u8 dialog_token; + u8 req_mode; + u16 disassoc_timer; + u8 validity_interval; + struct btm_term_duration term_duration; + + /* from BTM req */ + u32 validity_time; + u32 disassoc_time; + + systime req_stime; +}; + +/*IEEE Std 80211v, Table 7-43b Optional Subelement IDs for Neighbor Report*/ +/* BSS Transition Candidate Preference */ +#define WNM_BTM_CAND_PREF_SUBEID 0x03 + +/* BSS Termination Duration */ +#define WNM_BTM_TERM_DUR_SUBEID 0x04 + +struct wnm_btm_cant { + struct nb_rpt_hdr nb_rpt; + u8 preference; /* BSS Transition Candidate Preference */ +}; + +enum rtw_btm_req_mod { + PREFERRED_CANDIDATE_LIST_INCLUDED = BIT0, + ABRIDGED = BIT1, + DISASSOC_IMMINENT = BIT2, + BSS_TERMINATION_INCLUDED = BIT3, + ESS_DISASSOC_IMMINENT = BIT4, +}; + +struct roam_nb_info { + struct nb_rpt_hdr nb_rpt[RTW_MAX_NB_RPT_NUM]; + struct rtw_ieee80211_channel nb_rpt_ch_list[RTW_MAX_NB_RPT_NUM]; + struct btm_rpt_cache btm_cache; + bool nb_rpt_valid; + u8 nb_rpt_ch_list_num; + u8 preference_en; + u8 roam_target_addr[ETH_ALEN]; + u32 last_nb_rpt_entries; + u8 nb_rpt_is_same; + s8 disassoc_waiting; + _timer roam_scan_timer; + _timer disassoc_chk_timer; + + u32 features; +}; + +u8 rtw_wnm_btm_reassoc_req(_adapter *padapter); + +void rtw_wnm_roam_scan_hdl(void *ctx); + +void rtw_wnm_disassoc_chk_hdl(void *ctx); + +u8 rtw_wnm_try_btm_roam_imnt(_adapter *padapter); + +void rtw_wnm_process_btm_req(_adapter *padapter, u8* pframe, u32 frame_len); + +void rtw_wnm_reset_btm_candidate(struct roam_nb_info *pnb); + +void rtw_wnm_reset_btm_state(_adapter *padapter); + +u32 rtw_wnm_btm_rsp_candidates_sz_get( + _adapter *padapter, u8* pframe, u32 frame_len); + +void rtw_wnm_process_btm_rsp(_adapter *padapter, + u8* pframe, u32 frame_len, struct btm_rsp_hdr *prsp); + +void rtw_wnm_issue_btm_req(_adapter *padapter, + u8 *pmac, struct btm_req_hdr *phdr, u8 *purl, u32 url_len, + u8 *pcandidates, u8 candidate_cnt); + +void rtw_wnm_reset_btm_cache(_adapter *padapter); + +void rtw_wnm_issue_action(_adapter *padapter, u8 action, u8 reason, u8 dialog); + +void rtw_wnm_update_reassoc_req_ie(_adapter *padapter); + +void rtw_roam_nb_info_init(_adapter *padapter); + +u8 rtw_roam_nb_scan_list_set(_adapter *padapter, + struct sitesurvey_parm *pparm); + +u32 rtw_wnm_btm_candidates_survey(_adapter *padapter, + u8* pframe, u32 elem_len, u8 is_preference); + +struct mlme_priv; +int rtw_check_roaming_candidate(struct mlme_priv *mlme, + struct wlan_network **candidate, struct wlan_network *competitor, u8 potential_5G); +#endif /* __RTW_WNM_H_ */ + diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_xmit.h b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_xmit.h old mode 100755 new mode 100644 index b6e88817..4e1ce838 --- a/drivers/net/wireless/realtek/rtl8822ce/include/rtw_xmit.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/rtw_xmit.h @@ -90,6 +90,8 @@ #ifdef CONFIG_SINGLE_XMIT_BUF #define NR_XMIT_EXTBUFF (1) +#elif defined(CONFIG_RTW_MGMT_QUEUE) + #define NR_XMIT_EXTBUFF (64) #else #define NR_XMIT_EXTBUFF (32) #endif @@ -98,6 +100,8 @@ #define MAX_CMDBUF_SZ (512 * 18) #elif defined(CONFIG_RTL8723D) && defined(CONFIG_LPS_POFF) #define MAX_CMDBUF_SZ (128*70) /*(8960)*/ +#elif defined(CONFIG_RTL8822C) && defined(CONFIG_WAR_OFFLOAD) + #define MAX_CMDBUF_SZ (128*128) /*(16k) */ #else #define MAX_CMDBUF_SZ (5120) /* (4096) */ #endif @@ -117,10 +121,16 @@ #define BK_QUEUE_INX 3 #define BCN_QUEUE_INX 4 #define MGT_QUEUE_INX 5 -#define HIGH_QUEUE_INX 6 -#define TXCMD_QUEUE_INX 7 +#define TXCMD_QUEUE_INX 6 +#define HIGH_QUEUE_INX 7 +/* keep high queue to be the last one, so we can extend HIQ to port 1, 2, ... */ +#ifndef CONFIG_PORT_BASED_HIQ #define HW_QUEUE_ENTRY 8 +#else +#define HI_QUEUE_INX(n) (HIGH_QUEUE_INX + (n)) +#define HW_QUEUE_ENTRY (8 + CONFIG_IFACE_NUMBER - 1) +#endif #ifdef CONFIG_PCI_HCI #ifdef CONFIG_TRX_BD_ARCH @@ -181,7 +191,17 @@ #define IS_AMSDU_AMPDU_VALID(pattrib)\ !((pattrib->ampdu_en == _TRUE) && (pattrib->amsdu_ampdu_en == _FALSE)) -#define HWXMIT_ENTRY 4 +#ifdef CONFIG_RTW_MGMT_QUEUE +#define HWXMIT_ENTRY 5 +#else +#define HWXMIT_ENTRY 4 +#endif + +enum DEQUEUE_TYPE { + UNI_BMC_DATA, + UNI_MGMT, + ALL_FRAME +}; /* For Buffer Descriptor ring architecture */ #if defined(BUF_DESC_ARCH) || defined(CONFIG_TRX_BD_ARCH) @@ -198,7 +218,8 @@ defined(CONFIG_RTL8723B) || defined(CONFIG_RTL8192E) ||\ defined(CONFIG_RTL8814A) || defined(CONFIG_RTL8703B) ||\ defined(CONFIG_RTL8188F) || defined(CONFIG_RTL8188GTV) || defined(CONFIG_RTL8723D) ||\ - defined(CONFIG_RTL8710B) || defined(CONFIG_RTL8192F) + defined(CONFIG_RTL8710B) || defined(CONFIG_RTL8192F) ||\ + defined(CONFIG_RTL8723F) #define TXDESC_SIZE 40 #elif defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8822C) #define TXDESC_SIZE 48 /* HALMAC_TX_DESC_SIZE_8822B */ @@ -255,7 +276,7 @@ enum TXDESC_SC { #endif #elif defined(CONFIG_RTL8812A) || defined(CONFIG_RTL8821A) || defined(CONFIG_RTL8723B) \ || defined(CONFIG_RTL8188F) || defined(CONFIG_RTL8188GTV) || defined(CONFIG_RTL8723D) \ - || defined(CONFIG_RTL8192F) + || defined(CONFIG_RTL8192F) || defined(CONFIG_RTL8723F) #define TXDESC_40_BYTES #endif @@ -320,7 +341,7 @@ union txdesc { #endif #ifdef CONFIG_PCI_HCI -#define PCI_MAX_TX_QUEUE_COUNT 8 /* == HW_QUEUE_ENTRY */ +#define PCI_MAX_TX_QUEUE_COUNT HW_QUEUE_ENTRY struct rtw_tx_ring { unsigned char qid; @@ -342,12 +363,22 @@ struct rtw_tx_ring { #ifdef DBG_TXBD_DESC_DUMP #define TX_BAK_FRMAE_CNT 10 +#define TX_BAK_TXBD_LEN 20 /* byte */ #define TX_BAK_DESC_LEN 48 /* byte */ #define TX_BAK_DATA_LEN 30 /* byte */ +enum dump_txbd_type { + DUMP_TXBD_OFF, + DUMP_TXBD_ON, + DUMP_TXBD_TEST, + DUMP_TXBD_HALT +}; + struct rtw_tx_desc_backup { int tx_bak_rp; int tx_bak_wp; + u32 tx_dma_status; + u8 tx_bak_txbd[TX_BAK_TXBD_LEN]; u8 tx_bak_desc[TX_BAK_DESC_LEN]; u8 tx_bak_data_hdr[TX_BAK_DATA_LEN]; u8 tx_desc_size; @@ -364,54 +395,6 @@ struct hw_xmit { int accnt; }; -#if 0 -struct pkt_attrib { - u8 type; - u8 subtype; - u8 bswenc; - u8 dhcp_pkt; - u16 ether_type; - int pktlen; /* the original 802.3 pkt raw_data len (not include ether_hdr data) */ - int pkt_hdrlen; /* the original 802.3 pkt header len */ - int hdrlen; /* the WLAN Header Len */ - int nr_frags; - int last_txcmdsz; - int encrypt; /* when 0 indicate no encrypt. when non-zero, indicate the encrypt algorith */ - u8 iv[8]; - int iv_len; - u8 icv[8]; - int icv_len; - int priority; - int ack_policy; - int mac_id; - int vcs_mode; /* virtual carrier sense method */ - - u8 dst[ETH_ALEN]; - u8 src[ETH_ALEN]; - u8 ta[ETH_ALEN]; - u8 ra[ETH_ALEN]; - - u8 key_idx; - - u8 qos_en; - u8 ht_en; - u8 raid;/* rate adpative id */ - u8 bwmode; - u8 ch_offset;/* PRIME_CHNL_OFFSET */ - u8 sgi;/* short GI */ - u8 ampdu_en;/* tx ampdu enable */ - u8 mdata;/* more data bit */ - u8 eosp; - - u8 triggered;/* for ap mode handling Power Saving sta */ - - u32 qsel; - u16 seqnum; - - struct sta_info *psta; -}; -#else -/* reduce size */ struct pkt_attrib { u8 type; u8 subtype; @@ -439,6 +422,9 @@ struct pkt_attrib { u8 src[ETH_ALEN]; u8 ta[ETH_ALEN]; u8 ra[ETH_ALEN]; +#ifdef CONFIG_RTW_WDS + u8 wds; +#endif #ifdef CONFIG_RTW_MESH u8 mda[ETH_ALEN]; /* mesh da */ u8 msa[ETH_ALEN]; /* mesh sa */ @@ -510,7 +496,15 @@ struct pkt_attrib { u8 bf_pkt_type; #endif +#ifdef CONFIG_RTW_MGMT_QUEUE + u8 ps_dontq; /* 1: this frame can't be queued at PS state */ +#endif }; + +#ifdef CONFIG_RTW_WDS +#define XATTRIB_GET_WDS(xattrib) ((xattrib)->wds) +#else +#define XATTRIB_GET_WDS(xattrib) 0 #endif #ifdef CONFIG_RTW_MESH @@ -637,6 +631,10 @@ struct xmit_buf { #endif #endif +#ifdef CONFIG_PCIE_DMA_COHERENT + dma_addr_t dma_bpa; +#endif + #if defined(DBG_XMIT_BUF) || defined(DBG_XMIT_BUF_EXT) u8 no; #endif @@ -649,6 +647,7 @@ struct xmit_frame { struct pkt_attrib attrib; + u16 os_qid; _pkt *pkt; int frame_tag; @@ -698,6 +697,10 @@ struct sta_xmit_priv { struct tx_servq bk_q; /* priority == 1,2 */ struct tx_servq vi_q; /* priority == 4,5 */ struct tx_servq vo_q; /* priority == 6,7 */ +#ifdef CONFIG_RTW_MGMT_QUEUE + struct tx_servq mgmt_q; +#endif + _list legacy_dz; _list apsd; @@ -746,7 +749,7 @@ struct xmit_priv { _queue bk_pending; _queue vi_pending; _queue vo_pending; - _queue bm_pending; + _queue mgmt_pending; /* _queue legacy_dz_queue; */ /* _queue apsd_queue; */ @@ -853,6 +856,9 @@ struct xmit_priv { _mutex ack_tx_mutex; struct submit_ctx ack_tx_ops; u8 seq_no; +#ifdef CONFIG_REMOVE_DUP_TX_STATE + u8 retry_count; +#endif #endif #ifdef CONFIG_TX_AMSDU @@ -879,6 +885,9 @@ struct xmit_priv { #endif #ifdef CONFIG_PCI_TX_POLLING _timer tx_poll_timer; +#endif +#ifdef CONFIG_LAYER2_ROAMING + _queue rpkt_queue; #endif _lock lock_sctx; @@ -943,13 +952,20 @@ extern void rtw_update_protection(_adapter *padapter, u8 *ie, uint ie_len); extern s32 rtw_make_wlanhdr(_adapter *padapter, u8 *hdr, struct pkt_attrib *pattrib); extern s32 rtw_put_snap(u8 *data, u16 h_proto); -extern struct xmit_frame *rtw_alloc_xmitframe(struct xmit_priv *pxmitpriv); +extern struct xmit_frame *rtw_alloc_xmitframe(struct xmit_priv *pxmitpriv, u16 os_qid); struct xmit_frame *rtw_alloc_xmitframe_ext(struct xmit_priv *pxmitpriv); struct xmit_frame *rtw_alloc_xmitframe_once(struct xmit_priv *pxmitpriv); extern s32 rtw_free_xmitframe(struct xmit_priv *pxmitpriv, struct xmit_frame *pxmitframe); extern void rtw_free_xmitframe_queue(struct xmit_priv *pxmitpriv, _queue *pframequeue); struct tx_servq *rtw_get_sta_pending(_adapter *padapter, struct sta_info *psta, sint up, u8 *ac); extern s32 rtw_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); + +#ifdef CONFIG_RTW_MGMT_QUEUE +void rtw_free_mgmt_xmitframe_queue(struct xmit_priv *pxmitpriv, _queue *mgmt_queue); +u8 rtw_mgmt_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); +struct xmit_frame *rtw_dequeue_mgmt_xframe(struct xmit_priv *pxmitpriv); +#endif /* CONFIG_RTW_MGMT_QUEUE */ + extern struct xmit_frame *rtw_dequeue_xframe(struct xmit_priv *pxmitpriv, struct hw_xmit *phwxmit_i, sint entry); extern s32 rtw_xmit_classifier(_adapter *padapter, struct xmit_frame *pxmitframe); @@ -986,12 +1002,15 @@ void rtw_xmit_dequeue_callback(_workitem *work); void rtw_xmit_queue_set(struct sta_info *sta); void rtw_xmit_queue_clear(struct sta_info *sta); s32 rtw_xmit_posthandle(_adapter *padapter, struct xmit_frame *pxmitframe, _pkt *pkt); -s32 rtw_xmit(_adapter *padapter, _pkt **pkt); +s32 rtw_xmit(_adapter *padapter, _pkt **pkt, u16 os_qid); bool xmitframe_hiq_filter(struct xmit_frame *xmitframe); #if defined(CONFIG_AP_MODE) || defined(CONFIG_TDLS) +#ifdef CONFIG_RTW_MGMT_QUEUE +u8 mgmt_xmitframe_enqueue_for_sleeping_sta(_adapter *padapter, struct xmit_frame *pxmitframe); +#endif sint xmitframe_enqueue_for_sleeping_sta(_adapter *padapter, struct xmit_frame *pxmitframe); void stop_sta_xmit(_adapter *padapter, struct sta_info *psta); -void wakeup_sta_to_xmit(_adapter *padapter, struct sta_info *psta); +void wakeup_sta_to_xmit(_adapter *padapter, struct sta_info *psta, u8 dequeue_type); void xmit_delivery_enabled_frames(_adapter *padapter, struct sta_info *psta); #endif @@ -1000,8 +1019,10 @@ u8 rtw_get_tx_bw_mode(_adapter *adapter, struct sta_info *sta); void rtw_update_tx_rate_bmp(struct dvobj_priv *dvobj); u8 rtw_get_tx_bw_bmp_of_ht_rate(struct dvobj_priv *dvobj, u8 rate, u8 max_bw); u8 rtw_get_tx_bw_bmp_of_vht_rate(struct dvobj_priv *dvobj, u8 rate, u8 max_bw); -s16 rtw_adapter_get_oper_txpwr_max_mbm(_adapter *adapter); -s16 rtw_get_oper_txpwr_max_mbm(struct dvobj_priv *dvobj); +s16 rtw_adapter_get_oper_txpwr_max_mbm(_adapter *adapter, bool eirp); +s16 rtw_rfctl_get_oper_txpwr_max_mbm(struct rf_ctl_t *rfctl, u8 ch, u8 bw, u8 offset, u8 ifbmp_mod, u8 if_op, bool eirp); +s16 rtw_get_oper_txpwr_max_mbm(struct dvobj_priv *dvobj, bool erip); +s16 rtw_rfctl_get_reg_max_txpwr_mbm(struct rf_ctl_t *rfctl, u8 ch, u8 bw, u8 offset, bool eirp); u8 query_ra_short_GI(struct sta_info *psta, u8 bw); @@ -1034,7 +1055,8 @@ extern struct xmit_frame *rtw_get_xframe(struct xmit_priv *pxmitpriv, int *num_f #endif #ifdef DBG_TXBD_DESC_DUMP -void rtw_tx_desc_backup(_adapter *padapter, struct xmit_frame *pxmitframe, u8 desc_size, u8 hwq); +void rtw_tx_desc_backup(_adapter *padapter, u8 *txbd, struct xmit_frame *pxmitframe, + u8 desc_size, u8 hwq, u32 txdma_status); void rtw_tx_desc_backup_reset(void); u8 rtw_get_tx_desc_backup(_adapter *padapter, u8 hwq, struct rtw_tx_desc_backup **pbak); #endif @@ -1068,6 +1090,7 @@ void dump_xmit_block(void *sel, _adapter *padapter); void rtw_set_xmit_block(_adapter *padapter, enum XMIT_BLOCK_REASON reason); void rtw_clr_xmit_block(_adapter *padapter, enum XMIT_BLOCK_REASON reason); bool rtw_is_xmit_blocked(_adapter *padapter); +void rtw_hci_flush(_adapter *padapter); /* include after declaring struct xmit_buf, in order to avoid warning */ #include diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/sdio_ops.h b/drivers/net/wireless/realtek/rtl8822ce/include/sdio_ops.h index 29f795dc..74ddeca2 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/sdio_ops.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/sdio_ops.h @@ -73,7 +73,8 @@ void ClearInterrupt8821AS(PADAPTER padapter); #endif /* CONFIG_RTL8821A */ #if defined(CONFIG_WOWLAN) || defined(CONFIG_AP_WOWLAN) -#if defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8822C) +#if defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8822C) \ + || defined(CONFIG_RTL8723F) u8 rtw_hal_enable_cpwm2(_adapter *adapter); #endif extern u8 RecvOnePkt(PADAPTER padapter); diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/sta_info.h b/drivers/net/wireless/realtek/rtl8822ce/include/sta_info.h old mode 100644 new mode 100755 index 28e696c2..9f84d508 --- a/drivers/net/wireless/realtek/rtl8822ce/include/sta_info.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/sta_info.h @@ -21,7 +21,11 @@ #define NUM_STA MACID_NUM_SW_LIMIT #ifndef CONFIG_RTW_MACADDR_ACL + #ifdef CONFIG_AP_MODE #define CONFIG_RTW_MACADDR_ACL 1 + #else + #define CONFIG_RTW_MACADDR_ACL 0 + #endif #endif #ifndef CONFIG_RTW_PRE_LINK_STA @@ -157,7 +161,9 @@ struct stainfo_stats { u32 rxratecnt[128]; /* Read & Clear, in proc_get_rx_stat() */ u32 tx_ok_cnt; /* Read & Clear, in proc_get_tx_stat() */ u32 tx_fail_cnt; /* Read & Clear, in proc_get_tx_stat() */ + u32 tx_fail_cnt_sum; /* cumulative counts */ u32 tx_retry_cnt; /* Read & Clear, in proc_get_tx_stat() */ + u32 tx_retry_cnt_sum; /* cumulative counts */ #ifdef CONFIG_RTW_MESH u32 rx_hwmp_pkts; u32 last_rx_hwmp_pkts; @@ -278,6 +284,10 @@ struct sta_info { #endif _queue sleep_q; unsigned int sleepq_len; +#ifdef CONFIG_RTW_MGMT_QUEUE + _queue mgmt_sleep_q; + unsigned int mgmt_sleepq_len; +#endif uint state; uint qos_option; @@ -385,6 +395,10 @@ struct sta_info { unsigned int expire_to; + int flags; + + u8 bpairwise_key_installed; + #ifdef CONFIG_AP_MODE _list asoc_list; @@ -395,7 +409,6 @@ struct sta_info { unsigned char chg_txt[128]; u16 capability; - int flags; int dot8021xalg;/* 0:disable, 1:psk, 2:802.1x */ int wpa_psk;/* 0:disable, bit(0): WPA, bit(1):WPA2 */ @@ -406,11 +419,6 @@ struct sta_info { u32 akm_suite_type; - u8 bpairwise_key_installed; -#ifdef CONFIG_RTW_80211R - u8 ft_pairwise_key_installed; -#endif - #ifdef CONFIG_NATIVEAP_MLME u8 wpa_ie[32]; @@ -459,9 +467,9 @@ struct sta_info { u8 op_wfd_mode; #endif -#ifdef CONFIG_TX_MCAST2UNI +#if !defined(CONFIG_ACTIVE_KEEP_ALIVE_CHECK) && defined(CONFIG_80211N_HT) u8 under_exist_checking; -#endif /* CONFIG_TX_MCAST2UNI */ +#endif u8 keep_alive_trycnt; @@ -512,6 +520,10 @@ struct sta_info { // u8 tbtx_timeslot; /* This sta_info belong to which time slot. */ #endif +#ifdef CONFIG_RTW_80211R + u8 ft_pairwise_key_installed; +#endif + /* * Vaiables for queuing TX pkt a short period of time * to wait something ready. @@ -712,9 +724,12 @@ struct sta_priv { #ifdef CONFIG_ATMEL_RC_PATCH u8 atmel_rc_pattern[6]; #endif + + /* tx report, single request allowed for now */ u8 c2h_sta_mac[ETH_ALEN]; u8 c2h_adapter_id; struct submit_ctx *gotc2h; + _lock tx_rpt_lock; }; diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/usb_ops.h b/drivers/net/wireless/realtek/rtl8822ce/include/usb_ops.h index 6d5435d6..a74152fb 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/usb_ops.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/usb_ops.h @@ -96,8 +96,6 @@ void usb_set_intf_ops(_adapter *padapter, struct _io_ops *pops); #ifdef CONFIG_RTL8723D void rtl8723du_set_hw_type(struct dvobj_priv *pdvobj); void rtl8723du_set_intf_ops(struct _io_ops *pops); -void rtl8723du_recv_tasklet(void *priv); -void rtl8723du_xmit_tasklet(void *priv); #ifdef CONFIG_SUPPORT_USB_INT void interrupt_handler_8723du(_adapter *padapter, u16 pkt_len, u8 *pbuf); #endif /* CONFIG_SUPPORT_USB_INT */ @@ -115,7 +113,6 @@ void interrupt_handler_8710bu(_adapter *padapter, u16 pkt_len, u8 *pbuf); #ifdef CONFIG_RTL8192F void rtl8192fu_set_hw_type(struct dvobj_priv *pdvobj); -void rtl8192fu_xmit_tasklet(void *priv); #ifdef CONFIG_SUPPORT_USB_INT void rtl8192fu_interrupt_handler(_adapter *padapter, u16 pkt_len, u8 *pbuf); #endif /* CONFIG_SUPPORT_USB_INT */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/usb_ops_linux.h b/drivers/net/wireless/realtek/rtl8822ce/include/usb_ops_linux.h index bf59ca0f..dd4665e3 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/usb_ops_linux.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/usb_ops_linux.h @@ -89,7 +89,7 @@ int usb_write16(struct intf_hdl *pintfhdl, u32 addr, u16 val); int usb_write32(struct intf_hdl *pintfhdl, u32 addr, u32 val); int usb_writeN(struct intf_hdl *pintfhdl, u32 addr, u32 length, u8 *pdata); u32 usb_read_port(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *rmem); -void usb_recv_tasklet(void *priv); +void usb_recv_tasklet(unsigned long priv); #ifdef CONFIG_USB_INTERRUPT_IN_PIPE void usb_read_interrupt_complete(struct urb *purb, struct pt_regs *regs); diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/wifi.h b/drivers/net/wireless/realtek/rtl8822ce/include/wifi.h old mode 100644 new mode 100755 index 82f69476..4d285708 --- a/drivers/net/wireless/realtek/rtl8822ce/include/wifi.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/wifi.h @@ -64,6 +64,10 @@ #endif #endif +#ifdef CONFIG_WOW_KEEP_ALIVE_PATTERN +#define WLAN_MAX_KEEP_ALIVE_IE_LEN 256 +#endif/*CONFIG_WOW_KEEP_ALIVE_PATTERN*/ + #define P80211CAPTURE_VERSION 0x80211001 /* This value is tested by WiFi 11n Test Plan 5.2.3. @@ -300,7 +304,7 @@ enum WIFI_REG_DOMAIN { *(unsigned short *)(pbuf) &= (~cpu_to_le16(_FROM_DS_)); \ } while (0) -#define get_tofr_ds(pframe) ((GetToDs(pframe) << 1) | GetFrDs(pframe)) +#define get_tofr_ds(pframe) ((GetFrDs(pframe) << 1) | GetToDs(pframe)) #define SetMFrag(pbuf) \ @@ -476,18 +480,18 @@ __inline static unsigned char *get_ta(unsigned char *pframe) __inline static unsigned char *get_da(unsigned char *pframe) { unsigned char *da; - unsigned int to_fr_ds = (GetToDs(pframe) << 1) | GetFrDs(pframe); + unsigned int to_fr_ds = (GetFrDs(pframe) << 1) | GetToDs(pframe); switch (to_fr_ds) { case 0x00: /* ToDs=0, FromDs=0 */ da = GetAddr1Ptr(pframe); break; - case 0x01: /* ToDs=0, FromDs=1 */ - da = GetAddr1Ptr(pframe); - break; - case 0x02: /* ToDs=1, FromDs=0 */ + case 0x01: /* ToDs=1, FromDs=0 */ da = GetAddr3Ptr(pframe); break; + case 0x02: /* ToDs=0, FromDs=1 */ + da = GetAddr1Ptr(pframe); + break; default: /* ToDs=1, FromDs=1 */ da = GetAddr3Ptr(pframe); break; @@ -500,18 +504,18 @@ __inline static unsigned char *get_da(unsigned char *pframe) __inline static unsigned char *get_sa(unsigned char *pframe) { unsigned char *sa; - unsigned int to_fr_ds = (GetToDs(pframe) << 1) | GetFrDs(pframe); + unsigned int to_fr_ds = (GetFrDs(pframe) << 1) | GetToDs(pframe); switch (to_fr_ds) { case 0x00: /* ToDs=0, FromDs=0 */ sa = get_addr2_ptr(pframe); break; - case 0x01: /* ToDs=0, FromDs=1 */ - sa = GetAddr3Ptr(pframe); - break; - case 0x02: /* ToDs=1, FromDs=0 */ + case 0x01: /* ToDs=1, FromDs=0 */ sa = get_addr2_ptr(pframe); break; + case 0x02: /* ToDs=0, FromDs=1 */ + sa = GetAddr3Ptr(pframe); + break; default: /* ToDs=1, FromDs=1 */ sa = GetAddr4Ptr(pframe); break; @@ -523,25 +527,25 @@ __inline static unsigned char *get_sa(unsigned char *pframe) /* can't apply to mesh mode */ __inline static unsigned char *get_hdr_bssid(unsigned char *pframe) { - unsigned char *sa = NULL; - unsigned int to_fr_ds = (GetToDs(pframe) << 1) | GetFrDs(pframe); + unsigned char *bssid= NULL; + unsigned int to_fr_ds = (GetFrDs(pframe) << 1) | GetToDs(pframe); switch (to_fr_ds) { case 0x00: /* ToDs=0, FromDs=0 */ - sa = GetAddr3Ptr(pframe); + bssid = GetAddr3Ptr(pframe); break; - case 0x01: /* ToDs=0, FromDs=1 */ - sa = get_addr2_ptr(pframe); + case 0x01: /* ToDs=1, FromDs=0 */ + bssid = GetAddr1Ptr(pframe); break; - case 0x02: /* ToDs=1, FromDs=0 */ - sa = GetAddr1Ptr(pframe); + case 0x02: /* ToDs=0, FromDs=1 */ + bssid = get_addr2_ptr(pframe); break; case 0x03: /* ToDs=1, FromDs=1 */ - sa = GetAddr1Ptr(pframe); + bssid = GetAddr1Ptr(pframe); break; } - return sa; + return bssid; } @@ -601,10 +605,8 @@ static inline int IsFrameTypeData(unsigned char *pframe) #define _DSSET_IE_ 3 #define _TIM_IE_ 5 #define _IBSS_PARA_IE_ 6 -#define _COUNTRY_IE_ 7 #define _CHLGETXT_IE_ 16 #define _SUPPORTED_CH_IE_ 36 -#define _CH_SWTICH_ANNOUNCE_ 37 /* Secondary Channel Offset */ #define _MEAS_REQ_IE_ 38 #define _MEAS_RSP_IE_ 39 #define _RSN_IE_2_ 48 @@ -632,7 +634,6 @@ static inline int IsFrameTypeData(unsigned char *pframe) #define _LINK_ID_IE_ 101 #define _CH_SWITCH_TIMING_ 104 #define _PTI_BUFFER_STATUS_ 106 -#define _EXT_CAP_IE_ 127 #define _VENDOR_SPECIFIC_IE_ 221 #define _RESERVED47_ 47 @@ -697,7 +698,6 @@ typedef enum _ELEMENT_ID { EID_PTIControl = 105, /* Defined in 802.11z */ EID_PUBufferStatus = 106, /* Defined in 802.11z */ - EID_EXTCapability = 127, /* Extended Capabilities */ /* From S19:Aironet IE and S21:AP IP address IE in CCX v1.13, p16 and p18. */ EID_Aironet = 133, /* 0x85: Aironet Element for Cisco CCX */ EID_CiscoIP = 149, /* 0x95: IP Address IE for Cisco CCX */ @@ -711,6 +711,7 @@ typedef enum _ELEMENT_ID { EID_WAPI = 68, EID_VHTCapability = 191, /* Based on 802.11ac D2.0 */ EID_VHTOperation = 192, /* Based on 802.11ac D2.0 */ + EID_VHTTransmitPower = 195, EID_AID = 197, /* Based on 802.11ac D4.0 */ EID_OpModeNotification = 199, /* Based on 802.11ac D3.0 */ } ELEMENT_ID, *PELEMENT_ID; @@ -734,19 +735,24 @@ typedef enum _ELEMENT_ID { #define WLAN_ETHCONV_ENCAP 1 #define WLAN_ETHCONV_RFC1042 2 -#define WLAN_ETHCONV_8021h 3 +#define WLAN_ETHCONV_8021h 3 -#define cap_ESS BIT(0) -#define cap_IBSS BIT(1) -#define cap_CFPollable BIT(2) -#define cap_CFRequest BIT(3) -#define cap_Privacy BIT(4) -#define cap_ShortPremble BIT(5) -#define cap_PBCC BIT(6) -#define cap_ChAgility BIT(7) -#define cap_SpecMgmt BIT(8) -#define cap_QoS BIT(9) -#define cap_ShortSlot BIT(10) +#define cap_ESS BIT(0) +#define cap_IBSS BIT(1) +#define cap_CFPollable BIT(2) +#define cap_CFRequest BIT(3) +#define cap_Privacy BIT(4) +#define cap_ShortPremble BIT(5) +#define cap_PBCC BIT(6) +#define cap_ChAgility BIT(7) +#define cap_SpecMgmt BIT(8) +#define cap_QoS BIT(9) +#define cap_ShortSlot BIT(10) +#define cap_APSD BIT(11) +#define cap_RM BIT(12) +#define cap_DSSSOFDM BIT(13) +#define cap_DelayedBACK BIT(14) +#define cap_ImmediateBACK BIT(15) /*----------------------------------------------------------------------------- Below is the definition for 802.11i / 802.1x @@ -1274,9 +1280,6 @@ enum P2P_PROTO_WK_ID { P2P_PRE_TX_PROVDISC_PROCESS_WK = 2, P2P_PRE_TX_NEGOREQ_PROCESS_WK = 3, P2P_PRE_TX_INVITEREQ_PROCESS_WK = 4, - P2P_AP_P2P_CH_SWITCH_PROCESS_WK = 5, - P2P_RO_CH_WK = 6, - P2P_CANCEL_RO_CH_WK = 7, }; #ifdef CONFIG_P2P_PS @@ -1319,6 +1322,12 @@ enum P2P_PS_MODE { #define IP_MCAST_MAC(mac) ((mac[0] == 0x01) && (mac[1] == 0x00) && (mac[2] == 0x5e)) #define ICMPV6_MCAST_MAC(mac) ((mac[0] == 0x33) && (mac[1] == 0x33) && (mac[2] != 0xff)) +enum RTW_ROCH_WK_ID{ + ROCH_RO_CH_WK, + ROCH_CANCEL_RO_CH_WK, + ROCH_AP_ROCH_CH_SWITCH_PROCESS_WK, +}; + #ifdef CONFIG_IOCTL_CFG80211 /* Regulatroy Domain */ struct regd_pair_mapping { diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/wlan_bssdef.h b/drivers/net/wireless/realtek/rtl8822ce/include/wlan_bssdef.h index c8f3229b..4b1aa54d 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/wlan_bssdef.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/wlan_bssdef.h @@ -240,8 +240,17 @@ typedef struct _WLAN_BSSID_EX { NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode; NDIS_802_11_RATES_EX SupportedRates; WLAN_PHY_INFO PhyInfo; + + u8 qbss_valid; + u8 qbss_ch_util; + u16 qbss_sta_cnt; + u32 IELength; u8 IEs[MAX_IE_SZ]; /* (timestamp, beacon interval, and capability information) */ + +#ifdef CONFIG_LAYER2_ROAMING + u64 tsf; +#endif } __attribute__((packed)) WLAN_BSSID_EX, *PWLAN_BSSID_EX; @@ -321,7 +330,7 @@ enum UAPSD_MAX_SP { /* john */ -#define NUM_PRE_AUTH_KEY 16 +#define NUM_PRE_AUTH_KEY 64 #define NUM_PMKID_CACHE NUM_PRE_AUTH_KEY #endif /* #ifndef WLAN_BSSDEF_H_ */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/include/xmit_osdep.h b/drivers/net/wireless/realtek/rtl8822ce/include/xmit_osdep.h index e6f6f28f..d253181f 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/include/xmit_osdep.h +++ b/drivers/net/wireless/realtek/rtl8822ce/include/xmit_osdep.h @@ -68,7 +68,12 @@ struct xmit_frame; struct xmit_buf; extern int _rtw_xmit_entry(_pkt *pkt, _nic_hdl pnetdev); + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 32)) +extern netdev_tx_t rtw_xmit_entry(_pkt *pkt, _nic_hdl pnetdev); +#else extern int rtw_xmit_entry(_pkt *pkt, _nic_hdl pnetdev); +#endif #endif /* PLATFORM_LINUX */ @@ -87,6 +92,8 @@ extern sint rtw_endofpktfile(struct pkt_file *pfile); extern void rtw_os_pkt_complete(_adapter *padapter, _pkt *pkt); extern void rtw_os_xmit_complete(_adapter *padapter, struct xmit_frame *pxframe); +void rtw_os_check_wakup_queue(_adapter *adapter, u16 os_qid); +bool rtw_os_check_stop_queue(_adapter *adapter, u16 os_qid); void rtw_os_wake_queue_at_free_stainfo(_adapter *padapter, int *qcnt_freed); void dump_os_queue(void *sel, _adapter *padapter); diff --git a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/ioctl_cfg80211.c b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/ioctl_cfg80211.c index 737028bf..e281042e 100755 --- a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/ioctl_cfg80211.c +++ b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/ioctl_cfg80211.c @@ -29,6 +29,8 @@ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 0, 0)) #define STATION_INFO_INACTIVE_TIME BIT(NL80211_STA_INFO_INACTIVE_TIME) +#define STATION_INFO_RX_BYTES BIT(NL80211_STA_INFO_RX_BYTES) +#define STATION_INFO_TX_BYTES BIT(NL80211_STA_INFO_TX_BYTES) #define STATION_INFO_LLID BIT(NL80211_STA_INFO_LLID) #define STATION_INFO_PLID BIT(NL80211_STA_INFO_PLID) #define STATION_INFO_PLINK_STATE BIT(NL80211_STA_INFO_PLINK_STATE) @@ -36,15 +38,17 @@ #define STATION_INFO_TX_BITRATE BIT(NL80211_STA_INFO_TX_BITRATE) #define STATION_INFO_RX_PACKETS BIT(NL80211_STA_INFO_RX_PACKETS) #define STATION_INFO_TX_PACKETS BIT(NL80211_STA_INFO_TX_PACKETS) +#define STATION_INFO_TX_RETRIES BIT(NL80211_STA_INFO_TX_RETRIES) #define STATION_INFO_TX_FAILED BIT(NL80211_STA_INFO_TX_FAILED) +#define STATION_INFO_RX_BITRATE BIT(NL80211_STA_INFO_RX_BITRATE) #define STATION_INFO_LOCAL_PM BIT(NL80211_STA_INFO_LOCAL_PM) #define STATION_INFO_PEER_PM BIT(NL80211_STA_INFO_PEER_PM) #define STATION_INFO_NONPEER_PM BIT(NL80211_STA_INFO_NONPEER_PM) +#define STATION_INFO_RX_BYTES64 BIT(NL80211_STA_INFO_RX_BYTES64) +#define STATION_INFO_TX_BYTES64 BIT(NL80211_STA_INFO_TX_BYTES64) #define STATION_INFO_ASSOC_REQ_IES 0 #endif /* Linux kernel >= 4.0.0 */ -#include - #define RTW_MAX_MGMT_TX_CNT (8) #define RTW_MAX_MGMT_TX_MS_GAS (500) @@ -77,7 +81,9 @@ #if (LINUX_VERSION_CODE <= KERNEL_VERSION(4, 11, 12)) #ifdef CONFIG_RTW_80211R #define WLAN_AKM_SUITE_FT_8021X 0x000FAC03 -#define WLAN_AKM_SUITE_FT_PSK 0x000FAC04 +#define WLAN_AKM_SUITE_FT_PSK 0x000FAC04 +#define WLAN_AKM_SUITE_FT_OVER_SAE 0x000FAC09 +#define WLAN_AKM_SUITE_FT_FILS_SHA256 0x000FAC16 #endif #endif @@ -126,7 +132,7 @@ static const u32 rtw_cipher_suites[] = { .hw_value = (_channel), \ .flags = (_flags), \ .max_antenna_gain = 0, \ - .max_power = 30, \ + .max_power = 0, \ } #define CHAN5G(_channel, _flags) { \ @@ -135,7 +141,7 @@ static const u32 rtw_cipher_suites[] = { .hw_value = (_channel), \ .flags = (_flags), \ .max_antenna_gain = 0, \ - .max_power = 30, \ + .max_power = 0, \ } #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 0, 0)) @@ -207,6 +213,36 @@ static struct ieee80211_channel rtw_5ghz_a_channels[MAX_CHANNEL_NUM_5G] = { CHAN5G(165, 0), CHAN5G(169, 0), CHAN5G(173, 0), CHAN5G(177, 0), }; +enum nl80211_band _rtw_band_to_nl80211_band[] = { + [BAND_ON_2_4G] = NL80211_BAND_2GHZ, + [BAND_ON_5G] = NL80211_BAND_5GHZ, +#if CONFIG_IEEE80211_BAND_6GHZ + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 4, 0)) + [BAND_ON_6G] = NL80211_BAND_6GHZ, + #else + [BAND_ON_6G] = NUM_NL80211_BANDS, + #endif +#endif +}; + +BAND_TYPE _nl80211_band_to_rtw_band[] = { + [NL80211_BAND_2GHZ] = BAND_ON_2_4G, + [NL80211_BAND_5GHZ] = BAND_ON_5G, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)) + [NL80211_BAND_60GHZ] = BAND_MAX, +#endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 4, 0)) + #if CONFIG_IEEE80211_BAND_6GHZ + [NL80211_BAND_6GHZ] = BAND_ON_6G, + #else + [NL80211_BAND_6GHZ] = BAND_MAX, + #endif +#endif +}; + + +static int rtw_cfg80211_set_assocresp_ies(struct net_device *net, const u8 *buf, int len); + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0)) static u8 rtw_chbw_to_cfg80211_chan_def(struct wiphy *wiphy, struct cfg80211_chan_def *chdef, u8 ch, u8 bw, u8 offset, u8 ht) { @@ -259,8 +295,7 @@ exit: return ret; } -#ifdef CONFIG_RTW_MESH -static const char *nl80211_chan_width_str(enum nl80211_chan_width cwidth) +const char *nl80211_chan_width_str(enum nl80211_chan_width cwidth) { switch (cwidth) { case NL80211_CHAN_WIDTH_20_NOHT: @@ -286,7 +321,7 @@ static const char *nl80211_chan_width_str(enum nl80211_chan_width cwidth) }; } -static void rtw_get_chbw_from_cfg80211_chan_def(struct cfg80211_chan_def *chdef, u8 *ht, u8 *ch, u8 *bw, u8 *offset) +void rtw_get_chbw_from_cfg80211_chan_def(struct cfg80211_chan_def *chdef, u8 *ht, u8 *ch, u8 *bw, u8 *offset) { int pri_freq; struct ieee80211_channel *chan = chdef->chan; @@ -344,7 +379,7 @@ static void rtw_get_chbw_from_cfg80211_chan_def(struct cfg80211_chan_def *chdef, rtw_warn_on(1); }; } -#endif /* CONFIG_RTW_MESH */ + #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)) static const char *nl80211_channel_type_str(enum nl80211_channel_type ctype) { @@ -450,13 +485,21 @@ u8 rtw_cfg80211_ch_switch_notify(_adapter *adapter, u8 ch, u8 bw, u8 offset, #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0)) struct cfg80211_chan_def chdef; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 3, 0)) || defined(CONFIG_MLD_KERNEL_PATCH) + u16 punct_bitmap = 0; /*TBD*/ +#endif + ret = rtw_chbw_to_cfg80211_chan_def(wiphy, &chdef, ch, bw, offset, ht); if (ret != _SUCCESS) goto exit; #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)) if (started) { -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 11, 0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 3, 0)) || defined(CONFIG_MLD_KERNEL_PATCH) + cfg80211_ch_switch_started_notify(adapter->pnetdev, &chdef, 0, 0, false, punct_bitmap); +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)) + cfg80211_ch_switch_started_notify(adapter->pnetdev, &chdef, 0, 0, false); +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 11, 0)) /* --- cfg80211_ch_switch_started_notfiy() --- * A new parameter, bool quiet, is added from Linux kernel v5.11, @@ -477,7 +520,13 @@ u8 rtw_cfg80211_ch_switch_notify(_adapter *adapter, u8 ch, u8 bw, u8 offset, if (!rtw_cfg80211_allow_ch_switch_notify(adapter)) goto exit; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 3, 0)) || defined(CONFIG_MLD_KERNEL_PATCH) + cfg80211_ch_switch_notify(adapter->pnetdev, &chdef, 0, punct_bitmap); +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 19, 2)) + cfg80211_ch_switch_notify(adapter->pnetdev, &chdef, 0); +#else cfg80211_ch_switch_notify(adapter->pnetdev, &chdef); +#endif #else int freq = rtw_ch2freq(ch); @@ -529,6 +578,9 @@ struct ieee80211_supported_band *rtw_spt_band_alloc(BAND_TYPE band) struct ieee80211_supported_band *spt_band = NULL; int n_channels, n_bitrates; + if (rtw_band_to_nl80211_band(band) == NUM_NL80211_BANDS) + goto exit; + if (band == BAND_ON_2_4G) { n_channels = MAX_CHANNEL_NUM_2G; n_bitrates = RTW_G_RATES_NUM; @@ -552,18 +604,7 @@ struct ieee80211_supported_band *rtw_spt_band_alloc(BAND_TYPE band) spt_band->n_channels = n_channels; spt_band->n_bitrates = n_bitrates; - if (band == BAND_ON_2_4G) { - rtw_2g_channels_init(spt_band->channels); - rtw_2g_rates_init(spt_band->bitrates); - } else if (band == BAND_ON_5G) { - rtw_5g_channels_init(spt_band->channels); - rtw_5g_rates_init(spt_band->bitrates); - } - - /* spt_band.ht_cap */ - exit: - return spt_band; } @@ -1152,7 +1193,11 @@ check_bss: #endif #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) + #if defined(CONFIG_MLD_KERNEL_PATCH) || LINUX_VERSION_CODE >= KERNEL_VERSION(6, 0, 0) + roam_info.links[0].bssid = cur_network->network.MacAddress; + #else roam_info.bssid = cur_network->network.MacAddress; + #endif roam_info.req_ie = pmlmepriv->assoc_req + sizeof(struct rtw_ieee80211_hdr_3addr) + 2; roam_info.req_ie_len = pmlmepriv->assoc_req_len - sizeof(struct rtw_ieee80211_hdr_3addr) - 2; roam_info.resp_ie = pmlmepriv->assoc_rsp + sizeof(struct rtw_ieee80211_hdr_3addr) + 6; @@ -1807,8 +1852,12 @@ static int rtw_cfg80211_set_encryption(struct net_device *dev, struct ieee_param _rtw_memcpy(padapter->securitypriv.dot118021XGrpKey[param->u.crypt.idx].skey, param->u.crypt.key, (param->u.crypt.key_len > 16 ? 16 : param->u.crypt.key_len)); - _rtw_memcpy(padapter->securitypriv.dot118021XGrptxmickey[param->u.crypt.idx].skey, &(param->u.crypt.key[16]), 8); - _rtw_memcpy(padapter->securitypriv.dot118021XGrprxmickey[param->u.crypt.idx].skey, &(param->u.crypt.key[24]), 8); + + if (strcmp(param->u.crypt.alg, "TKIP") == 0 && param->u.crypt.key_len >= 32) { + _rtw_memcpy(padapter->securitypriv.dot118021XGrptxmickey[param->u.crypt.idx].skey, &(param->u.crypt.key[16]), 8); + _rtw_memcpy(padapter->securitypriv.dot118021XGrprxmickey[param->u.crypt.idx].skey, &(param->u.crypt.key[24]), 8); + } + padapter->securitypriv.binstallGrpkey = _TRUE; if (param->u.crypt.idx < 4) _rtw_memcpy(padapter->securitypriv.iv_seq[param->u.crypt.idx], param->u.crypt.seq, 8); @@ -1912,6 +1961,9 @@ exit: } static int cfg80211_rtw_add_key(struct wiphy *wiphy, struct net_device *ndev +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)) || defined(CONFIG_MLD_KERNEL_PATCH) + , int link_id +#endif , u8 key_index #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) || defined(COMPAT_KERNEL_RELEASE) , bool pairwise @@ -2074,6 +2126,9 @@ addkey_end: } static int cfg80211_rtw_get_key(struct wiphy *wiphy, struct net_device *ndev +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)) || defined(CONFIG_MLD_KERNEL_PATCH) + , int link_id +#endif , u8 keyid #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) || defined(COMPAT_KERNEL_RELEASE) , bool pairwise @@ -2261,11 +2316,14 @@ exit: return ret; } -static int cfg80211_rtw_del_key(struct wiphy *wiphy, struct net_device *ndev, +static int cfg80211_rtw_del_key(struct wiphy *wiphy, struct net_device *ndev +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)) || defined(CONFIG_MLD_KERNEL_PATCH) + , int link_id +#endif #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) || defined(COMPAT_KERNEL_RELEASE) - u8 key_index, bool pairwise, const u8 *mac_addr) -#else /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) */ - u8 key_index, const u8 *mac_addr) + , u8 key_index, bool pairwise, const u8 *mac_addr) +#else /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) */ + , u8 key_index, const u8 *mac_addr) #endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) */ { _adapter *padapter = (_adapter *)rtw_netdev_priv(ndev); @@ -2281,8 +2339,11 @@ static int cfg80211_rtw_del_key(struct wiphy *wiphy, struct net_device *ndev, return 0; } -static int cfg80211_rtw_set_default_key(struct wiphy *wiphy, - struct net_device *ndev, u8 key_index +static int cfg80211_rtw_set_default_key(struct wiphy *wiphy, struct net_device *ndev +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)) || defined(CONFIG_MLD_KERNEL_PATCH) + , int link_id +#endif + , u8 key_index #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38)) || defined(COMPAT_KERNEL_RELEASE) , bool unicast, bool multicast #endif @@ -2329,8 +2390,11 @@ static int cfg80211_rtw_set_default_key(struct wiphy *wiphy, } #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 30)) -int cfg80211_rtw_set_default_mgmt_key(struct wiphy *wiphy, - struct net_device *ndev, u8 key_index) +int cfg80211_rtw_set_default_mgmt_key(struct wiphy *wiphy, struct net_device *ndev +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)) || defined(CONFIG_MLD_KERNEL_PATCH) + , int link_id +#endif + , u8 key_index) { #define SET_DEF_KEY_PARAM_FMT " key_index=%d" #define SET_DEF_KEY_PARAM_ARG , key_index @@ -2475,6 +2539,76 @@ static void rtw_cfg80211_fill_mesh_only_sta_info(struct mesh_plink_ent *plink, s } #endif /* CONFIG_RTW_MESH */ +static void rtw_desc_rate_to_nss_mcs(u8 rate_idx, u8 sgi, u8 *nss, u8 *mcs) +{ + u8 mcs_in = 0, nss_in = 0; + + if ((DESC_RATEMCS0 <= rate_idx) && + (rate_idx <= DESC_RATEMCS31)) { + mcs_in = rate_idx - DESC_RATEMCS0; + } else if ((DESC_RATEVHTSS1MCS0 <= rate_idx) && + (rate_idx <= DESC_RATEVHTSS4MCS9)) { + mcs_in = (rate_idx - DESC_RATEVHTSS1MCS0) % 10; + nss_in = ((rate_idx - DESC_RATEVHTSS1MCS0) / 10) + 1; + } + + if (nss) + *nss = nss_in; + if (mcs) + *mcs = mcs_in; +} + +static void sta_set_rate_info(_adapter *adapter, struct rate_info *rinfo, + u8 rtw_rate_idx, u8 sgi, u8 bw) +{ + u8 mcs = 0; + u8 nss = 0; + + rinfo->flags = 0; + rtw_desc_rate_to_nss_mcs(rtw_rate_idx, sgi, &nss, &mcs); + + if (sgi) + rinfo->flags |= RATE_INFO_FLAGS_SHORT_GI; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 0, 0)) + if (nss) { + rinfo->flags |= RATE_INFO_FLAGS_VHT_MCS; + rinfo->bw = bw == CHANNEL_WIDTH_160 ? RATE_INFO_BW_160 : + bw == CHANNEL_WIDTH_80 ? RATE_INFO_BW_80 : + bw == CHANNEL_WIDTH_40 ? RATE_INFO_BW_40 : RATE_INFO_BW_20; + rinfo->nss = nss; + rinfo->mcs = mcs; + } else if (mcs) { + rinfo->flags |= RATE_INFO_FLAGS_MCS; + rinfo->bw = bw ? RATE_INFO_BW_40 : RATE_INFO_BW_20; + rinfo->mcs = mcs; + } +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0)) + if (nss) { + rinfo->flags |= RATE_INFO_FLAGS_VHT_MCS; + rinfo->flags |= bw == CHANNEL_WIDTH_160 ? RATE_INFO_FLAGS_160_MHZ_WIDTH : + bw == CHANNEL_WIDTH_80 ? RATE_INFO_FLAGS_80_MHZ_WIDTH : + bw == CHANNEL_WIDTH_40 ? RATE_INFO_FLAGS_40_MHZ_WIDTH : 0; + rinfo->nss = nss; + rinfo->mcs = mcs; + } else if (mcs) { + rinfo->flags |= RATE_INFO_FLAGS_MCS; + rinfo->flags |= bw ? RATE_INFO_FLAGS_40_MHZ_WIDTH : 0; + rinfo->mcs = mcs; + } +#else + if (nss) { + rinfo->legacy = 0; + RTW_INFO("Cannot report VHT rate in current kernel version\n"); + } else if (mcs) { + rinfo->flags |= RATE_INFO_FLAGS_MCS; + rinfo->flags |= bw ? RATE_INFO_FLAGS_40_MHZ_WIDTH : 0; + rinfo->mcs = mcs; + } +#endif + if (nss == 0 && mcs == 0) + rinfo->legacy = rtw_desc_rate_to_bitrate(0, rtw_rate_idx, 0); +} + static int cfg80211_rtw_get_station(struct wiphy *wiphy, struct net_device *ndev, #if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 16, 0)) @@ -2546,6 +2680,8 @@ static int cfg80211_rtw_get_station(struct wiphy *wiphy, } if (psta) { + u8 rtw_rate_idx, sgi, bw; + if (check_fwstate(pmlmepriv, WIFI_STATION_STATE) == _FALSE || check_fwstate(pmlmepriv, WIFI_ASOC_STATE) == _FALSE ) { @@ -2558,8 +2694,41 @@ static int cfg80211_rtw_get_station(struct wiphy *wiphy, sinfo->rx_packets = sta_rx_data_pkts(psta); sinfo->filled |= STATION_INFO_TX_PACKETS; sinfo->tx_packets = psta->sta_stats.tx_pkts; - sinfo->filled |= STATION_INFO_TX_FAILED; - sinfo->tx_failed = psta->sta_stats.tx_fail_cnt; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 9, 0)) + sinfo->filled |= STATION_INFO_RX_BYTES64; + sinfo->filled |= STATION_INFO_TX_BYTES64; +#else + sinfo->filled |= STATION_INFO_RX_BYTES; + sinfo->filled |= STATION_INFO_TX_BYTES; +#endif + sinfo->rx_bytes = psta->sta_stats.rx_bytes; + sinfo->tx_bytes = psta->sta_stats.tx_bytes; + + /* Although according to cfg80211.h struct station_info */ + /* @txrate: current unicast bitrate from this station */ + /* We still report sinfo->txrate as bitrate to this station */ + sinfo->filled |= STATION_INFO_TX_BITRATE; + rtw_rate_idx = rtw_get_current_tx_rate(padapter, psta); + sgi = rtw_get_current_tx_sgi(padapter, psta); + bw = psta->cmn.bw_mode; + sta_set_rate_info(padapter, &sinfo->txrate, rtw_rate_idx, sgi, bw); +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 39)) + /* Although @rxrate: current unicast bitrate to this station */ + /* We report sinfo->rxrate as bitrate from this station */ + sinfo->filled |= STATION_INFO_RX_BITRATE; + rtw_rate_idx = psta->curr_rx_rate & 0x7f; + sgi = (psta->curr_rx_rate & 0x80) >> 7; + bw = psta->cmn.bw_mode; + sta_set_rate_info(padapter, &sinfo->rxrate, rtw_rate_idx, sgi, bw); +#endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) + if (rtw_get_sta_tx_stat(padapter, psta->cmn.mac_id, psta->cmn.mac_addr) != RTW_NOT_SUPPORT) { + sinfo->filled |= STATION_INFO_TX_FAILED; + sinfo->filled |= STATION_INFO_TX_RETRIES; + sinfo->tx_failed = psta->sta_stats.tx_fail_cnt_sum; + sinfo->tx_retries = psta->sta_stats.tx_retry_cnt_sum; + } +#endif } #ifdef CONFIG_RTW_MESH @@ -2751,6 +2920,15 @@ static int cfg80211_rtw_change_iface(struct wiphy *wiphy, if (check_fwstate(pmlmepriv, WIFI_MONITOR_STATE) == _TRUE) rtw_indicate_connect(padapter); #endif + + #if defined(CONFIG_RTW_WDS) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 33)) + if (params->use_4addr != -1) { + RTW_INFO(FUNC_NDEV_FMT" use_4addr=%d\n" + , FUNC_NDEV_ARG(ndev), params->use_4addr); + adapter_set_use_wds(padapter, params->use_4addr); + } + #endif + exit: RTW_INFO(FUNC_NDEV_FMT" ret:%d\n", FUNC_NDEV_ARG(ndev), ret); @@ -2762,7 +2940,7 @@ void rtw_cfg80211_indicate_scan_done(_adapter *adapter, bool aborted) struct rtw_wdev_priv *pwdev_priv = adapter_wdev_data(adapter); _irqL irqL; -#if (KERNEL_VERSION(4, 7, 0) <= LINUX_VERSION_CODE) +#if (KERNEL_VERSION(4, 8, 0) <= LINUX_VERSION_CODE) struct cfg80211_scan_info info; memset(&info, 0, sizeof(info)); @@ -2779,7 +2957,7 @@ void rtw_cfg80211_indicate_scan_done(_adapter *adapter, bool aborted) if (pwdev_priv->scan_request->wiphy != pwdev_priv->rtw_wdev->wiphy) RTW_INFO("error wiphy compare\n"); else -#if (KERNEL_VERSION(4, 7, 0) <= LINUX_VERSION_CODE) +#if (KERNEL_VERSION(4, 8, 0) <= LINUX_VERSION_CODE) cfg80211_scan_done(pwdev_priv->scan_request, &info); #else cfg80211_scan_done(pwdev_priv->scan_request, aborted); @@ -2818,9 +2996,11 @@ u32 rtw_cfg80211_wait_scan_req_empty(_adapter *adapter, u32 timeout_ms) pass_ms = rtw_get_passing_time_ms(start); - if (empty == _FALSE && pass_ms > timeout_ms) + if (empty == _FALSE && pass_ms > timeout_ms) { RTW_PRINT(FUNC_ADPT_FMT" pass_ms:%u, timeout\n" , FUNC_ADPT_ARG(adapter), pass_ms); + rtw_cfg80211_indicate_scan_done(adapter, _TRUE); + } return pass_ms; } @@ -2885,6 +3065,7 @@ static void _rtw_cfg80211_surveydone_event_callback(_adapter *padapter, struct c struct wlan_network *pnetwork = NULL; struct rtw_wdev_priv *pwdev_priv = adapter_wdev_data(padapter); struct cfg80211_ssid target_ssid; + struct wlan_network *roam_target = pmlmepriv->roam_network; u8 target_wps_scan = 0; u8 ch; @@ -2892,6 +3073,11 @@ static void _rtw_cfg80211_surveydone_event_callback(_adapter *padapter, struct c RTW_INFO("%s\n", __func__); #endif + if (roam_target) { + rtw_cfg80211_inform_bss(padapter, roam_target); + return; + } + if (scan_req) target_wps_scan = rtw_cfg80211_is_target_wps_scan(scan_req, &target_ssid); else { @@ -2918,7 +3104,7 @@ static void _rtw_cfg80211_surveydone_event_callback(_adapter *padapter, struct c && rtw_mlme_band_check(padapter, ch) == _TRUE && _TRUE == rtw_validate_ssid(&(pnetwork->network.Ssid)) && (!IS_DFS_SLAVE_WITH_RD(rfctl) - || rtw_odm_dfs_domain_unknown(rfctl_to_dvobj(rfctl)) + || rtw_rfctl_dfs_domain_unknown(rfctl) || !rtw_chset_is_ch_non_ocp(chset, ch)) ) { if (target_wps_scan) @@ -3017,8 +3203,8 @@ static int rtw_cfg80211_set_probe_req_wpsp2pie(_adapter *padapter, char *buf, in _rtw_memcpy(pmlmepriv->p2p_probe_req_ie, p2p_ie, p2p_ielen); pmlmepriv->p2p_probe_req_ie_len = p2p_ielen; - if (rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_LISTEN_CH, (u8 *)listen_ch_attr, (uint *) &attr_contentlen) - && attr_contentlen == 5) { + attr_contentlen = sizeof(listen_ch_attr); + if (rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_LISTEN_CH, (u8 *)listen_ch_attr, (uint *) &attr_contentlen)) { if (wdinfo->listen_channel != listen_ch_attr[4]) { RTW_INFO(FUNC_ADPT_FMT" listen channel - country:%c%c%c, class:%u, ch:%u\n", FUNC_ADPT_ARG(padapter), listen_ch_attr[0], listen_ch_attr[1], listen_ch_attr[2], @@ -3040,6 +3226,10 @@ static int rtw_cfg80211_set_probe_req_wpsp2pie(_adapter *padapter, char *buf, in return -EINVAL; } #endif /* CONFIG_WFD */ + + #ifdef CONFIG_RTW_MBO + rtw_mbo_update_ie_data(padapter, buf, len); + #endif } return ret; @@ -3194,6 +3384,21 @@ static int cfg80211_rtw_scan(struct wiphy *wiphy RTW_INFO(FUNC_ADPT_FMT"%s\n", FUNC_ADPT_ARG(padapter) , wdev == wiphy_to_pd_wdev(wiphy) ? " PD" : ""); +#ifdef CONFIG_RTW_SCAN_RAND +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)) + if (request->flags & NL80211_SCAN_FLAG_RANDOM_ADDR) { + get_random_mask_addr(pwdev_priv->pno_mac_addr, request->mac_addr, + request->mac_addr_mask); + print_hex_dump(KERN_DEBUG, "random mac_addr: ", + DUMP_PREFIX_OFFSET, 16, 1, pwdev_priv->pno_mac_addr, ETH_ALEN, 1); + } + else + memset(pwdev_priv->pno_mac_addr, 0xFF, ETH_ALEN); + +#endif +#endif + + #if 1 ssc_chk = rtw_sitesurvey_condition_check(padapter, _TRUE); @@ -3500,7 +3705,7 @@ bypass_p2p_chk: check_need_indicate_scan_done: if (_TRUE == need_indicate_scan_done) { -#if (KERNEL_VERSION(4, 7, 0) <= LINUX_VERSION_CODE) +#if (KERNEL_VERSION(4, 8, 0) <= LINUX_VERSION_CODE) struct cfg80211_scan_info info; memset(&info, 0, sizeof(info)); @@ -3510,7 +3715,7 @@ check_need_indicate_scan_done: rtw_msleep_os(1); _rtw_cfg80211_surveydone_event_callback(padapter, request); -#if (KERNEL_VERSION(4, 7, 0) <= LINUX_VERSION_CODE) +#if (KERNEL_VERSION(4, 8, 0) <= LINUX_VERSION_CODE) cfg80211_scan_done(request, &info); #else cfg80211_scan_done(request, 0); @@ -3529,6 +3734,21 @@ exit: return ret; } +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 5, 0)) +static void cfg80211_rtw_abort_scan(struct wiphy *wiphy, + struct wireless_dev *wdev) +{ + _adapter *padapter = wiphy_to_adapter(wiphy); + + RTW_INFO("=>"FUNC_ADPT_FMT" - Abort Scan\n", FUNC_ADPT_ARG(padapter)); + if (wdev->iftype != NL80211_IFTYPE_STATION) { + RTW_ERR("abort scan ignored, iftype(%d)\n", wdev->iftype); + return; + } + rtw_scan_abort(padapter); +} +#endif + static int cfg80211_rtw_set_wiphy_params(struct wiphy *wiphy, u32 changed) { #if 0 @@ -3598,6 +3818,7 @@ static int rtw_cfg80211_set_auth_type(struct security_priv *psecuritypriv, { RTW_INFO("%s, nl80211_auth_type=%d\n", __func__, sme_auth_type); +#ifndef CONFIG_KERNEL_PATCH_EXTERNAL_AUTH if (NL80211_AUTHTYPE_MAX <= (int)MLME_AUTHTYPE_SAE) { if (MLME_AUTHTYPE_SAE == psecuritypriv->auth_type) { /* This case pre handle in @@ -3606,7 +3827,9 @@ static int rtw_cfg80211_set_auth_type(struct security_priv *psecuritypriv, psecuritypriv->auth_alg = WLAN_AUTH_SAE; return 0; } - } else if (sme_auth_type == (int)MLME_AUTHTYPE_SAE) { + } else +#endif + if (sme_auth_type == (int)MLME_AUTHTYPE_SAE) { psecuritypriv->auth_type = MLME_AUTHTYPE_SAE; psecuritypriv->auth_alg = WLAN_AUTH_SAE; return 0; @@ -3749,6 +3972,12 @@ static int rtw_cfg80211_set_key_mgt(struct security_priv *psecuritypriv, u32 key } else if (key_mgt == WLAN_AKM_SUITE_FT_PSK) { psecuritypriv->dot11AuthAlgrthm = dot11AuthAlgrthm_8021X; psecuritypriv->rsn_akm_suite_type = 4; + } else if ((key_mgt == WLAN_AKM_SUITE_FT_OVER_SAE) + || (key_mgt == WLAN_AKM_SUITE_FT_FILS_SHA256) + ) { + RTW_INFO("FT-SAE key mgt: 0x%x\n", key_mgt); + if (key_mgt == WLAN_AKM_SUITE_FT_OVER_SAE) + psecuritypriv->rsn_akm_suite_type = 9; } #endif else if (key_mgt == WLAN_AKM_SUITE_SAE) { @@ -3769,7 +3998,8 @@ static int rtw_cfg80211_set_wpa_ie(_adapter *padapter, u8 *pie, size_t ielen) int ret = 0; int wpa_ielen = 0; int wpa2_ielen = 0; - u8 *pwpa, *pwpa2; + int rsnx_ielen = 0; + u8 *pwpa, *pwpa2, *prsnx; u8 null_addr[] = {0, 0, 0, 0, 0, 0}; if (pie == NULL || !ielen) { @@ -3820,7 +4050,26 @@ static int rtw_cfg80211_set_wpa_ie(_adapter *padapter, u8 *pie, size_t ielen) RTW_INFO("got wpa2_ie, wpa2_ielen:%u\n", wpa2_ielen); } - } + + prsnx = rtw_get_ie(buf, WLAN_EID_RSNX, &rsnx_ielen, ielen); + if (prsnx && (rsnx_ielen > 0)) { + if ((rsnx_ielen + 2) <= MAX_RSNX_IE_LEN) { + _rtw_memset(padapter->securitypriv.rsnx_ie, 0, + MAX_RSNX_IE_LEN); + padapter->securitypriv.rsnx_ie_len = \ + (rsnx_ielen + 2); + _rtw_memcpy(padapter->securitypriv.rsnx_ie, + prsnx, + padapter->securitypriv.rsnx_ie_len); + } else + RTW_ERR("%s:no more buf to save RSNX Cap!\n", + __func__); + } else { + _rtw_memset(padapter->securitypriv.rsnx_ie, 0, + MAX_RSNX_IE_LEN); + padapter->securitypriv.rsnx_ie_len = 0; + } + } /* end of (pwpa2 && wpa2_ielen > 0) */ if (group_cipher == 0) group_cipher = WPA_CIPHER_NONE; @@ -3978,6 +4227,12 @@ static int rtw_cfg80211_set_wpa_ie(_adapter *padapter, u8 *pie, size_t ielen) } #endif /* CONFIG_WFD */ + #ifdef CONFIG_RTW_MULTI_AP + padapter->multi_ap = rtw_get_multi_ap_ie_ext(buf, ielen) & MULTI_AP_BACKHAUL_STA; + if (padapter->multi_ap) + adapter_set_use_wds(padapter, 1); + #endif + /* TKIP and AES disallow multicast packets until installing group key */ if (padapter->securitypriv.dot11PrivacyAlgrthm == _TKIP_ || padapter->securitypriv.dot11PrivacyAlgrthm == _TKIP_WTMIC_ @@ -4137,6 +4392,7 @@ static int _rtw_disconnect(struct wiphy *wiphy, struct net_device *ndev) rtw_join_abort_timeout(padapter, 300); LeaveAllPowerSaveMode(padapter); rtw_disassoc_cmd(padapter, 500, RTW_CMDF_WAIT_ACK); + rtw_clr_dfs_beacon_hint(padapter); #ifdef CONFIG_RTW_REPEATER_SON rtw_rson_do_disconnect(padapter); #endif @@ -4161,12 +4417,16 @@ static int _rtw_disconnect(struct wiphy *wiphy, struct net_device *ndev) return 0; } -#if (KERNEL_VERSION(4, 17, 0) > LINUX_VERSION_CODE) +#if (KERNEL_VERSION(4, 17, 0) > LINUX_VERSION_CODE) \ + && !defined(CONFIG_KERNEL_PATCH_EXTERNAL_AUTH) static bool rtw_check_connect_sae_compat(struct cfg80211_connect_params *sme) { struct rtw_ieee802_11_elems elems; struct rsne_info info; u8 AKM_SUITE_SAE[] = { 0x00, 0x0f, 0xac, 8 }; +#ifdef CONFIG_RTW_80211R + u8 AKM_SUITE_FTSAE[] = { 0x00, 0x0f, 0xac, 9 }; +#endif int i; if (sme->auth_type != (int)MLME_AUTHTYPE_SHARED_KEY) @@ -4182,11 +4442,16 @@ static bool rtw_check_connect_sae_compat(struct cfg80211_connect_params *sme) if (rtw_rsne_info_parse(elems.rsn_ie - 2, elems.rsn_ie_len + 2, &info) == _FAIL) return false; - for (i = 0; i < info.akm_cnt; i++) - if (memcmp(info.akm_list + i * RSN_SELECTOR_LEN, + for (i = 0; i < info.akm_cnt; i++) { + if ((memcmp(info.akm_list + i * RSN_SELECTOR_LEN, AKM_SUITE_SAE, RSN_SELECTOR_LEN) == 0) + #ifdef CONFIG_RTW_80211R + || (memcmp(info.akm_list + i * RSN_SELECTOR_LEN, + AKM_SUITE_FTSAE, RSN_SELECTOR_LEN) == 0) + #endif + ) return true; - + } return false; } #else @@ -4197,6 +4462,7 @@ static int cfg80211_rtw_connect(struct wiphy *wiphy, struct net_device *ndev, struct cfg80211_connect_params *sme) { int ret = 0; + const u8 *bssid = NULL; NDIS_802_11_AUTHENTICATION_MODE authmode; NDIS_802_11_SSID ndis_ssid; /* u8 matched_by_bssid=_FALSE; */ @@ -4216,7 +4482,7 @@ static int cfg80211_rtw_connect(struct wiphy *wiphy, struct net_device *ndev, sme->privacy, sme->key, sme->key_len, sme->key_idx, sme->auth_type); if (rtw_check_connect_sae_compat(sme)) { - sme->auth_type = MLME_AUTHTYPE_SAE; + sme->auth_type = (int)MLME_AUTHTYPE_SAE; psecuritypriv->auth_type = MLME_AUTHTYPE_SAE; psecuritypriv->auth_alg = WLAN_AUTH_SAE; RTW_INFO("%s set sme->auth_type for SAE compat\n", __FUNCTION__); @@ -4283,9 +4549,16 @@ static int cfg80211_rtw_connect(struct wiphy *wiphy, struct net_device *ndev, RTW_INFO("ssid=%s, len=%zu\n", ndis_ssid.Ssid, sme->ssid_len); - if (sme->bssid) + if (sme->bssid) { RTW_INFO("bssid="MAC_FMT"\n", MAC_ARG(sme->bssid)); - + bssid = sme->bssid; + } +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)) + else if (sme->bssid_hint) { + RTW_INFO("bssid_hint="MAC_FMT"\n", MAC_ARG(sme->bssid_hint)); + bssid = sme->bssid_hint; + } +#endif psecuritypriv->ndisencryptstatus = Ndis802_11EncryptionDisabled; psecuritypriv->dot11PrivacyAlgrthm = _NO_PRIVACY_; @@ -4415,7 +4688,11 @@ static int cfg80211_rtw_connect(struct wiphy *wiphy, struct net_device *ndev, /* rtw_set_802_11_encryption_mode(padapter, padapter->securitypriv.ndisencryptstatus); */ - if (rtw_set_802_11_connect(padapter, (u8 *)sme->bssid, &ndis_ssid, \ +#ifdef CONFIG_RTW_MBO + rtw_mbo_update_ie_data(padapter, (u8 *)sme->ie, sme->ie_len); +#endif + + if (rtw_set_802_11_connect(padapter, bssid, &ndis_ssid, sme->channel ? sme->channel->hw_value : 0) == _FALSE) { ret = -1; goto cancel_ps_deny; @@ -4483,6 +4760,7 @@ static int cfg80211_rtw_disconnect(struct wiphy *wiphy, struct net_device *ndev, } #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 31)) +#ifdef CONFIG_RTW_DEBUG static const char *nl80211_tx_power_setting_str(int type) { switch (type) { @@ -4496,6 +4774,7 @@ static const char *nl80211_tx_power_setting_str(int type) return "UNKNOWN"; }; } +#endif /* CONFIG_RTW_DEBUG */ static int cfg80211_rtw_set_txpower(struct wiphy *wiphy, #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0)) @@ -4571,12 +4850,12 @@ static int cfg80211_rtw_get_txpower(struct wiphy *wiphy, #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0)) if (wdev && wdev_to_ndev(wdev)) { _adapter *adapter = (_adapter *)rtw_netdev_priv(wdev_to_ndev(wdev)); - mbm = rtw_adapter_get_oper_txpwr_max_mbm(adapter); + mbm = rtw_adapter_get_oper_txpwr_max_mbm(adapter, 1); RTW_INFO(FUNC_ADPT_FMT" total max: %d mbm\n", FUNC_ADPT_ARG(adapter), mbm); } else #endif { - mbm = rtw_get_oper_txpwr_max_mbm(dvobj); + mbm = rtw_get_oper_txpwr_max_mbm(dvobj, 1); RTW_INFO(FUNC_WIPHY_FMT" total max: %d mbm\n", FUNC_WIPHY_ARG(wiphy), mbm); } @@ -4589,7 +4868,9 @@ static int cfg80211_rtw_get_txpower(struct wiphy *wiphy, inline bool rtw_cfg80211_pwr_mgmt(_adapter *adapter) { struct rtw_wdev_priv *rtw_wdev_priv = adapter_wdev_data(adapter); - return rtw_wdev_priv->power_mgmt; + struct wireless_dev *wdev = rtw_wdev_priv->rtw_wdev; + + return wdev->ps; } static int cfg80211_rtw_set_power_mgmt(struct wiphy *wiphy, @@ -4597,13 +4878,10 @@ static int cfg80211_rtw_set_power_mgmt(struct wiphy *wiphy, bool enabled, int timeout) { _adapter *padapter = (_adapter *)rtw_netdev_priv(ndev); - struct rtw_wdev_priv *rtw_wdev_priv = adapter_wdev_data(padapter); RTW_INFO(FUNC_NDEV_FMT" enabled:%u, timeout:%d\n", FUNC_NDEV_ARG(ndev), enabled, timeout); - rtw_wdev_priv->power_mgmt = enabled; - #ifdef CONFIG_LPS if (!enabled) rtw_lps_ctrl_wk_cmd(padapter, LPS_CTRL_LEAVE_CFG80211_PWRMGMT, 0); @@ -4612,41 +4890,6 @@ static int cfg80211_rtw_set_power_mgmt(struct wiphy *wiphy, return 0; } -static void _rtw_set_pmksa(struct net_device *ndev, - u8 *bssid, u8 *pmkid) -{ - _adapter *padapter = (_adapter *)rtw_netdev_priv(ndev); - struct security_priv *psecuritypriv = &padapter->securitypriv; - u8 index, blInserted = _FALSE; - - /* overwrite PMKID */ - for (index = 0 ; index < NUM_PMKID_CACHE; index++) { - if (_rtw_memcmp(psecuritypriv->PMKIDList[index].Bssid, bssid, ETH_ALEN) == _TRUE) { - /* BSSID is matched, the same AP => rewrite with new PMKID. */ - RTW_INFO("BSSID("MAC_FMT") exists in the PMKList.\n", MAC_ARG(bssid)); - - _rtw_memcpy(psecuritypriv->PMKIDList[index].PMKID, pmkid, WLAN_PMKID_LEN); - psecuritypriv->PMKIDList[index].bUsed = _TRUE; - psecuritypriv->PMKIDIndex = index + 1; - blInserted = _TRUE; - break; - } - } - - if (!blInserted) { - /* Find a new entry */ - RTW_INFO("Use the new entry index = %d for this PMKID.\n", - psecuritypriv->PMKIDIndex); - - _rtw_memcpy(psecuritypriv->PMKIDList[psecuritypriv->PMKIDIndex].Bssid, bssid, ETH_ALEN); - _rtw_memcpy(psecuritypriv->PMKIDList[psecuritypriv->PMKIDIndex].PMKID, pmkid, WLAN_PMKID_LEN); - - psecuritypriv->PMKIDList[psecuritypriv->PMKIDIndex].bUsed = _TRUE; - psecuritypriv->PMKIDIndex++ ; - if (psecuritypriv->PMKIDIndex == 16) - psecuritypriv->PMKIDIndex = 0; - } -} static int cfg80211_rtw_set_pmksa(struct wiphy *wiphy, struct net_device *ndev, @@ -4665,12 +4908,7 @@ static int cfg80211_rtw_set_pmksa(struct wiphy *wiphy, if (_rtw_memcmp((u8 *)pmksa->bssid, strZeroMacAddress, ETH_ALEN) == _TRUE) return -EINVAL; - if (check_fwstate(mlme, WIFI_ASOC_STATE) == _FALSE && !sae_auth) { - RTW_INFO(FUNC_NDEV_FMT" not set pmksa cause not in linked state\n", FUNC_NDEV_ARG(ndev)); - return -EINVAL; - } - - _rtw_set_pmksa(ndev, (u8 *)pmksa->bssid, (u8 *)pmksa->pmkid); + rtw_set_pmksa(padapter, (u8 *)pmksa->bssid, (u8 *)pmksa->pmkid); if (sae_auth && (psecuritypriv->extauth_status == WLAN_STATUS_SUCCESS)) { @@ -4727,114 +4965,6 @@ static int cfg80211_rtw_flush_pmksa(struct wiphy *wiphy, return 0; } -#ifdef CONFIG_AP_MODE -void rtw_cfg80211_indicate_sta_assoc(_adapter *padapter, u8 *pmgmt_frame, uint frame_len) -{ -#if !defined(RTW_USE_CFG80211_STA_EVENT) && !defined(COMPAT_KERNEL_RELEASE) - s32 freq; - int channel; - struct wireless_dev *pwdev = padapter->rtw_wdev; - struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); -#endif - struct net_device *ndev = padapter->pnetdev; - - RTW_INFO(FUNC_ADPT_FMT"\n", FUNC_ADPT_ARG(padapter)); - -#if defined(RTW_USE_CFG80211_STA_EVENT) || defined(COMPAT_KERNEL_RELEASE) - { - struct station_info sinfo; - u8 ie_offset; - if (get_frame_sub_type(pmgmt_frame) == WIFI_ASSOCREQ) - ie_offset = _ASOCREQ_IE_OFFSET_; - else /* WIFI_REASSOCREQ */ - ie_offset = _REASOCREQ_IE_OFFSET_; - - memset(&sinfo, 0, sizeof(sinfo)); - sinfo.filled = STATION_INFO_ASSOC_REQ_IES; - sinfo.assoc_req_ies = pmgmt_frame + WLAN_HDR_A3_LEN + ie_offset; - sinfo.assoc_req_ies_len = frame_len - WLAN_HDR_A3_LEN - ie_offset; - cfg80211_new_sta(ndev, get_addr2_ptr(pmgmt_frame), &sinfo, GFP_ATOMIC); - } -#else /* defined(RTW_USE_CFG80211_STA_EVENT) */ - channel = pmlmeext->cur_channel; - freq = rtw_ch2freq(channel); - - #ifdef COMPAT_KERNEL_RELEASE - rtw_cfg80211_rx_mgmt(pwdev, freq, 0, pmgmt_frame, frame_len, GFP_ATOMIC); - #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) && !defined(CONFIG_CFG80211_FORCE_COMPATIBLE_2_6_37_UNDER) - rtw_cfg80211_rx_mgmt(pwdev, freq, 0, pmgmt_frame, frame_len, GFP_ATOMIC); - #else /* COMPAT_KERNEL_RELEASE */ - { - /* to avoid WARN_ON(wdev->iftype != NL80211_IFTYPE_STATION) when calling cfg80211_send_rx_assoc() */ - #ifndef CONFIG_PLATFORM_MSTAR - pwdev->iftype = NL80211_IFTYPE_STATION; - #endif /* CONFIG_PLATFORM_MSTAR */ - RTW_INFO("iftype=%d before call cfg80211_send_rx_assoc()\n", pwdev->iftype); - rtw_cfg80211_send_rx_assoc(padapter, NULL, pmgmt_frame, frame_len); - RTW_INFO("iftype=%d after call cfg80211_send_rx_assoc()\n", pwdev->iftype); - pwdev->iftype = NL80211_IFTYPE_AP; - /* cfg80211_rx_action(padapter->pnetdev, freq, pmgmt_frame, frame_len, GFP_ATOMIC); */ - } - #endif /* COMPAT_KERNEL_RELEASE */ -#endif /* defined(RTW_USE_CFG80211_STA_EVENT) */ - -} - -void rtw_cfg80211_indicate_sta_disassoc(_adapter *padapter, const u8 *da, unsigned short reason) -{ -#if !defined(RTW_USE_CFG80211_STA_EVENT) && !defined(COMPAT_KERNEL_RELEASE) - s32 freq; - int channel; - u8 *pmgmt_frame; - uint frame_len; - struct rtw_ieee80211_hdr *pwlanhdr; - unsigned short *fctrl; - u8 mgmt_buf[128] = {0}; - struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); - struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); - struct wireless_dev *wdev = padapter->rtw_wdev; -#endif - struct net_device *ndev = padapter->pnetdev; - - RTW_INFO(FUNC_ADPT_FMT"\n", FUNC_ADPT_ARG(padapter)); - -#if defined(RTW_USE_CFG80211_STA_EVENT) || defined(COMPAT_KERNEL_RELEASE) - cfg80211_del_sta(ndev, da, GFP_ATOMIC); -#else /* defined(RTW_USE_CFG80211_STA_EVENT) */ - channel = pmlmeext->cur_channel; - freq = rtw_ch2freq(channel); - - pmgmt_frame = mgmt_buf; - pwlanhdr = (struct rtw_ieee80211_hdr *)pmgmt_frame; - - fctrl = &(pwlanhdr->frame_ctl); - *(fctrl) = 0; - - _rtw_memcpy(pwlanhdr->addr1, adapter_mac_addr(padapter), ETH_ALEN); - _rtw_memcpy(pwlanhdr->addr2, da, ETH_ALEN); - _rtw_memcpy(pwlanhdr->addr3, get_my_bssid(&(pmlmeinfo->network)), ETH_ALEN); - - SetSeqNum(pwlanhdr, pmlmeext->mgnt_seq); - pmlmeext->mgnt_seq++; - set_frame_sub_type(pmgmt_frame, WIFI_DEAUTH); - - pmgmt_frame += sizeof(struct rtw_ieee80211_hdr_3addr); - frame_len = sizeof(struct rtw_ieee80211_hdr_3addr); - - reason = cpu_to_le16(reason); - pmgmt_frame = rtw_set_fixed_ie(pmgmt_frame, _RSON_CODE_ , (unsigned char *)&reason, &frame_len); - - #ifdef COMPAT_KERNEL_RELEASE - rtw_cfg80211_rx_mgmt(wdev, freq, 0, mgmt_buf, frame_len, GFP_ATOMIC); - #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) && !defined(CONFIG_CFG80211_FORCE_COMPATIBLE_2_6_37_UNDER) - rtw_cfg80211_rx_mgmt(wdev, freq, 0, mgmt_buf, frame_len, GFP_ATOMIC); - #else /* COMPAT_KERNEL_RELEASE */ - cfg80211_send_disassoc(padapter->pnetdev, mgmt_buf, frame_len); - /* cfg80211_rx_action(padapter->pnetdev, freq, mgmt_buf, frame_len, GFP_ATOMIC); */ - #endif /* COMPAT_KERNEL_RELEASE */ -#endif /* defined(RTW_USE_CFG80211_STA_EVENT) */ -} - static int rtw_cfg80211_monitor_if_open(struct net_device *ndev) { int ret = 0; @@ -4996,7 +5126,6 @@ dump: pattrib->seqnum = pmlmeext->mgnt_seq; pmlmeext->mgnt_seq++; - pattrib->last_txcmdsz = pattrib->pktlen; dump_mgntframe(padapter, pmgntframe); @@ -5124,167 +5253,112 @@ out: return ret; } -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)) -static struct wireless_dev * -#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38)) || defined(COMPAT_KERNEL_RELEASE) -static struct net_device * -#else -static int -#endif - cfg80211_rtw_add_virtual_intf( - struct wiphy *wiphy, - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 7, 0)) - const char *name, - #else - char *name, - #endif - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 0)) - unsigned char name_assign_type, - #endif - enum nl80211_iftype type, - #if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 12, 0)) - u32 *flags, - #endif - struct vif_params *params) +#ifdef CONFIG_AP_MODE +void rtw_cfg80211_indicate_sta_assoc(_adapter *padapter, u8 *pmgmt_frame, uint frame_len) { - int ret = 0; - struct wireless_dev *wdev = NULL; - struct net_device *ndev = NULL; - _adapter *padapter; - struct dvobj_priv *dvobj = wiphy_to_dvobj(wiphy); - - rtw_set_rtnl_lock_holder(dvobj, current); - - RTW_INFO(FUNC_WIPHY_FMT" name:%s, type:%d\n", FUNC_WIPHY_ARG(wiphy), name, type); - - switch (type) { - case NL80211_IFTYPE_MONITOR: - padapter = wiphy_to_adapter(wiphy); /* TODO: get ap iface ? */ - ret = rtw_cfg80211_add_monitor_if(padapter, (char *)name, &ndev); - if (ret == 0) - wdev = ndev->ieee80211_ptr; - break; - -#if defined(CONFIG_P2P) && ((LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) || defined(COMPAT_KERNEL_RELEASE)) - case NL80211_IFTYPE_P2P_CLIENT: - case NL80211_IFTYPE_P2P_GO: +#if !defined(RTW_USE_CFG80211_STA_EVENT) && !defined(COMPAT_KERNEL_RELEASE) + s32 freq; + int channel; + struct wireless_dev *pwdev = padapter->rtw_wdev; + struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); #endif - case NL80211_IFTYPE_STATION: - case NL80211_IFTYPE_AP: -#ifdef CONFIG_RTW_MESH - case NL80211_IFTYPE_MESH_POINT: -#endif - padapter = dvobj_get_unregisterd_adapter(dvobj); - if (!padapter) { - RTW_WARN("adapter pool empty!\n"); - ret = -ENODEV; - break; - } + struct net_device *ndev = padapter->pnetdev; - #if defined(CONFIG_CONCURRENT_MODE) && defined(CONFIG_P2P) - #if defined(CONFIG_P2P) && ((KERNEL_VERSION(2, 6, 37) <= LINUX_VERSION_CODE) || defined(COMPAT_KERNEL_RELEASE)) - if ((type == NL80211_IFTYPE_P2P_CLIENT || type == NL80211_IFTYPE_P2P_GO) && (padapter->iface_id != padapter->registrypriv.sel_p2p_iface)) { - RTW_ERR("%s, iface_id:%d is not P2P interface!\n", __func__, padapter->iface_id); - ret = -EOPNOTSUPP; - break; - } - #endif - #endif + RTW_INFO(FUNC_ADPT_FMT"\n", FUNC_ADPT_ARG(padapter)); - if (rtw_os_ndev_init(padapter, name) != _SUCCESS) { - RTW_WARN("ndev init fail!\n"); - ret = -ENODEV; - break; - } - #if defined(CONFIG_P2P) && ((LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) || defined(COMPAT_KERNEL_RELEASE)) - if (type == NL80211_IFTYPE_P2P_CLIENT || type == NL80211_IFTYPE_P2P_GO) - rtw_p2p_enable(padapter, P2P_ROLE_DEVICE); - #endif - ndev = padapter->pnetdev; - wdev = ndev->ieee80211_ptr; - break; +#if defined(RTW_USE_CFG80211_STA_EVENT) || defined(COMPAT_KERNEL_RELEASE) + { + struct station_info sinfo; + u8 ie_offset; + if (get_frame_sub_type(pmgmt_frame) == WIFI_ASSOCREQ) + ie_offset = _ASOCREQ_IE_OFFSET_; + else /* WIFI_REASSOCREQ */ + ie_offset = _REASOCREQ_IE_OFFSET_; -#if defined(CONFIG_P2P) && defined(RTW_DEDICATED_P2P_DEVICE) - case NL80211_IFTYPE_P2P_DEVICE: - ret = rtw_pd_iface_alloc(wiphy, name, &wdev); - break; -#endif - - case NL80211_IFTYPE_ADHOC: - case NL80211_IFTYPE_AP_VLAN: - case NL80211_IFTYPE_WDS: - default: - ret = -ENODEV; - RTW_INFO("Unsupported interface type\n"); - break; + memset(&sinfo, 0, sizeof(sinfo)); + sinfo.filled = STATION_INFO_ASSOC_REQ_IES; + sinfo.assoc_req_ies = pmgmt_frame + WLAN_HDR_A3_LEN + ie_offset; + sinfo.assoc_req_ies_len = frame_len - WLAN_HDR_A3_LEN - ie_offset; + cfg80211_new_sta(ndev, get_addr2_ptr(pmgmt_frame), &sinfo, GFP_ATOMIC); } +#else /* defined(RTW_USE_CFG80211_STA_EVENT) */ + channel = pmlmeext->cur_channel; + freq = rtw_ch2freq(channel); - if (ndev) - RTW_INFO(FUNC_WIPHY_FMT" ndev:%p, ret:%d\n", FUNC_WIPHY_ARG(wiphy), ndev, ret); - else - RTW_INFO(FUNC_WIPHY_FMT" wdev:%p, ret:%d\n", FUNC_WIPHY_ARG(wiphy), wdev, ret); + #ifdef COMPAT_KERNEL_RELEASE + rtw_cfg80211_rx_mgmt(pwdev, freq, 0, pmgmt_frame, frame_len, GFP_ATOMIC); + #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) && !defined(CONFIG_CFG80211_FORCE_COMPATIBLE_2_6_37_UNDER) + rtw_cfg80211_rx_mgmt(pwdev, freq, 0, pmgmt_frame, frame_len, GFP_ATOMIC); + #else /* COMPAT_KERNEL_RELEASE */ + { + /* to avoid WARN_ON(wdev->iftype != NL80211_IFTYPE_STATION) when calling cfg80211_send_rx_assoc() */ + #ifndef CONFIG_PLATFORM_MSTAR + pwdev->iftype = NL80211_IFTYPE_STATION; + #endif /* CONFIG_PLATFORM_MSTAR */ + RTW_INFO("iftype=%d before call cfg80211_send_rx_assoc()\n", pwdev->iftype); + rtw_cfg80211_send_rx_assoc(padapter, NULL, pmgmt_frame, frame_len); + RTW_INFO("iftype=%d after call cfg80211_send_rx_assoc()\n", pwdev->iftype); + pwdev->iftype = NL80211_IFTYPE_AP; + /* cfg80211_rx_action(padapter->pnetdev, freq, pmgmt_frame, frame_len, GFP_ATOMIC); */ + } + #endif /* COMPAT_KERNEL_RELEASE */ +#endif /* defined(RTW_USE_CFG80211_STA_EVENT) */ - rtw_set_rtnl_lock_holder(dvobj, NULL); - -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)) - return wdev ? wdev : ERR_PTR(ret); -#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38)) || defined(COMPAT_KERNEL_RELEASE) - return ndev ? ndev : ERR_PTR(ret); -#else - return ret; -#endif } -static int cfg80211_rtw_del_virtual_intf(struct wiphy *wiphy, -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)) - struct wireless_dev *wdev -#else - struct net_device *ndev -#endif -) +void rtw_cfg80211_indicate_sta_disassoc(_adapter *padapter, const u8 *da, unsigned short reason) { -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)) - struct net_device *ndev = wdev_to_ndev(wdev); +#if !defined(RTW_USE_CFG80211_STA_EVENT) && !defined(COMPAT_KERNEL_RELEASE) + s32 freq; + int channel; + u8 *pmgmt_frame; + uint frame_len; + struct rtw_ieee80211_hdr *pwlanhdr; + unsigned short *fctrl; + u8 mgmt_buf[128] = {0}; + struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); + struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); + struct wireless_dev *wdev = padapter->rtw_wdev; #endif - int ret = 0; - struct dvobj_priv *dvobj = wiphy_to_dvobj(wiphy); - _adapter *adapter; - struct rtw_wdev_priv *pwdev_priv; + struct net_device *ndev = padapter->pnetdev; - rtw_set_rtnl_lock_holder(dvobj, current); + RTW_INFO(FUNC_ADPT_FMT"\n", FUNC_ADPT_ARG(padapter)); - if (ndev) { - adapter = (_adapter *)rtw_netdev_priv(ndev); - pwdev_priv = adapter_wdev_data(adapter); +#if defined(RTW_USE_CFG80211_STA_EVENT) || defined(COMPAT_KERNEL_RELEASE) + cfg80211_del_sta(ndev, da, GFP_ATOMIC); +#else /* defined(RTW_USE_CFG80211_STA_EVENT) */ + channel = pmlmeext->cur_channel; + freq = rtw_ch2freq(channel); - if (ndev == pwdev_priv->pmon_ndev) { - unregister_netdevice(ndev); - pwdev_priv->pmon_ndev = NULL; - pwdev_priv->ifname_mon[0] = '\0'; - RTW_INFO(FUNC_NDEV_FMT" remove monitor ndev\n", FUNC_NDEV_ARG(ndev)); - } else { - RTW_INFO(FUNC_NDEV_FMT" unregister ndev\n", FUNC_NDEV_ARG(ndev)); - rtw_os_ndev_unregister(adapter); - } - } else -#if defined(CONFIG_P2P) && defined(RTW_DEDICATED_P2P_DEVICE) - if (wdev->iftype == NL80211_IFTYPE_P2P_DEVICE) { - if (wdev == wiphy_to_pd_wdev(wiphy)) - rtw_pd_iface_free(wiphy); - else { - RTW_ERR(FUNC_WIPHY_FMT" unknown P2P Device wdev:%p\n", FUNC_WIPHY_ARG(wiphy), wdev); - rtw_warn_on(1); - } - } else -#endif - { - ret = -EINVAL; - goto exit; - } + pmgmt_frame = mgmt_buf; + pwlanhdr = (struct rtw_ieee80211_hdr *)pmgmt_frame; -exit: - rtw_set_rtnl_lock_holder(dvobj, NULL); - return ret; + fctrl = &(pwlanhdr->frame_ctl); + *(fctrl) = 0; + + _rtw_memcpy(pwlanhdr->addr1, adapter_mac_addr(padapter), ETH_ALEN); + _rtw_memcpy(pwlanhdr->addr2, da, ETH_ALEN); + _rtw_memcpy(pwlanhdr->addr3, get_my_bssid(&(pmlmeinfo->network)), ETH_ALEN); + + SetSeqNum(pwlanhdr, pmlmeext->mgnt_seq); + pmlmeext->mgnt_seq++; + set_frame_sub_type(pmgmt_frame, WIFI_DEAUTH); + + pmgmt_frame += sizeof(struct rtw_ieee80211_hdr_3addr); + frame_len = sizeof(struct rtw_ieee80211_hdr_3addr); + + reason = cpu_to_le16(reason); + pmgmt_frame = rtw_set_fixed_ie(pmgmt_frame, _RSON_CODE_ , (unsigned char *)&reason, &frame_len); + + #ifdef COMPAT_KERNEL_RELEASE + rtw_cfg80211_rx_mgmt(wdev, freq, 0, mgmt_buf, frame_len, GFP_ATOMIC); + #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) && !defined(CONFIG_CFG80211_FORCE_COMPATIBLE_2_6_37_UNDER) + rtw_cfg80211_rx_mgmt(wdev, freq, 0, mgmt_buf, frame_len, GFP_ATOMIC); + #else /* COMPAT_KERNEL_RELEASE */ + cfg80211_send_disassoc(padapter->pnetdev, mgmt_buf, frame_len); + /* cfg80211_rx_action(padapter->pnetdev, freq, mgmt_buf, frame_len, GFP_ATOMIC); */ + #endif /* COMPAT_KERNEL_RELEASE */ +#endif /* defined(RTW_USE_CFG80211_STA_EVENT) */ } static int rtw_add_beacon(_adapter *adapter, const u8 *head, size_t head_len, const u8 *tail, size_t tail_len) @@ -5366,9 +5440,11 @@ static int rtw_add_beacon(_adapter *adapter, const u8 *head, size_t head_len, co } #endif /* CONFIG_P2P */ - /* pbss_network->IEs will not include p2p_ie, wfd ie */ - rtw_ies_remove_ie(pbuf, &len, _BEACON_IE_OFFSET_, _VENDOR_SPECIFIC_IE_, P2P_OUI, 4); - rtw_ies_remove_ie(pbuf, &len, _BEACON_IE_OFFSET_, _VENDOR_SPECIFIC_IE_, WFD_OUI, 4); + if (adapter_to_dvobj(adapter)->wpas_type == RTW_WPAS_ANDROID) { + /* pbss_network->IEs will not include p2p_ie, wfd ie */ + rtw_ies_remove_ie(pbuf, &len, _BEACON_IE_OFFSET_, _VENDOR_SPECIFIC_IE_, P2P_OUI, 4); + rtw_ies_remove_ie(pbuf, &len, _BEACON_IE_OFFSET_, _VENDOR_SPECIFIC_IE_, WFD_OUI, 4); + } if (rtw_check_beacon_data(adapter, pbuf, len) == _SUCCESS) { #ifdef CONFIG_P2P @@ -5450,6 +5526,13 @@ static int cfg80211_rtw_start_ap(struct wiphy *wiphy, struct net_device *ndev, goto exit; } + if (adapter_to_dvobj(adapter)->wpas_type == RTW_WPAS_W1FI) { + struct mlme_ext_priv *pmlmeext = &(adapter->mlmeextpriv); + + /* turn on the beacon send */ + pmlmeext->bstart_bss = _TRUE; + } + /* Kernel < v5.x, the auth_type set as NL80211_AUTHTYPE_AUTOMATIC. if * the AKM SAE in the RSN IE, we have to update the auth_type for SAE in * rtw_check_beacon_data(). @@ -5465,6 +5548,17 @@ static int cfg80211_rtw_start_ap(struct wiphy *wiphy, struct net_device *ndev, ret = rtw_add_beacon(adapter, settings->beacon.head, settings->beacon.head_len, settings->beacon.tail, settings->beacon.tail_len); +#ifdef CONFIG_RTW_80211R_AP + rtw_ft_update_assocresp_ies(ndev, settings); +#endif + + if (settings->beacon.assocresp_ies && + settings->beacon.assocresp_ies_len > 0) { + rtw_cfg80211_set_assocresp_ies(ndev, + settings->beacon.assocresp_ies, + settings->beacon.assocresp_ies_len); + } + if (settings->ssid && settings->ssid_len) { WLAN_BSSID_EX *pbss_network = &adapter->mlmepriv.cur_network.network; WLAN_BSSID_EX *pbss_network_ext = &adapter->mlmeextpriv.mlmext_info.network; @@ -5489,6 +5583,37 @@ exit: return ret; } +static int rtw_cfg80211_set_assocresp_ies(struct net_device *net, const u8 *buf, int len) +{ + int ret = 0; + _adapter *padapter = (_adapter *)rtw_netdev_priv(net); + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + + RTW_INFO("%s, ielen=%d\n", __func__, len); + + if (len <= 0) + goto exit; + + if (pmlmepriv->assoc_rsp) { + u32 free_len = pmlmepriv->assoc_rsp_len; + + pmlmepriv->assoc_rsp_len = 0; + rtw_mfree(pmlmepriv->assoc_rsp, free_len); + pmlmepriv->assoc_rsp = NULL; + } + + pmlmepriv->assoc_rsp = rtw_malloc(len); + if (pmlmepriv->assoc_rsp == NULL) { + RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __FUNCTION__, __LINE__); + return -EINVAL; + } + _rtw_memcpy(pmlmepriv->assoc_rsp, buf, len); + pmlmepriv->assoc_rsp_len = len; + +exit: + return ret; +} + static int cfg80211_rtw_change_beacon(struct wiphy *wiphy, struct net_device *ndev, struct cfg80211_beacon_data *info) { @@ -5497,12 +5622,29 @@ static int cfg80211_rtw_change_beacon(struct wiphy *wiphy, struct net_device *nd RTW_INFO(FUNC_NDEV_FMT"\n", FUNC_NDEV_ARG(ndev)); +#ifdef not_yet + /* + * @proberesp_ies: extra information element(s) to add into Probe Response + * frames or %NULL + * @proberesp_ies_len: length of proberesp_ies in octets + */ + if (info->proberesp_ies_len > 0) + rtw_cfg80211_set_proberesp_ies(ndev, info->proberesp_ies, info->proberesp_ies_len); +#endif /* not_yet */ + + if (info->assocresp_ies_len > 0) + rtw_cfg80211_set_assocresp_ies(ndev, info->assocresp_ies, info->assocresp_ies_len); + ret = rtw_add_beacon(adapter, info->head, info->head_len, info->tail, info->tail_len); return ret; } -static int cfg80211_rtw_stop_ap(struct wiphy *wiphy, struct net_device *ndev) +static int cfg80211_rtw_stop_ap(struct wiphy *wiphy, struct net_device *ndev +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)) || defined(CONFIG_MLD_KERNEL_PATCH) + , unsigned int link_id +#endif +) { _adapter *adapter = (_adapter *)rtw_netdev_priv(ndev); @@ -5964,6 +6106,7 @@ static int cfg80211_rtw_del_station(struct wiphy *wiphy, struct net_device *ndev if (psta->dot8021xalg == 1 && psta->bpairwise_key_installed == _FALSE) { RTW_INFO("%s, sta's dot8021xalg = 1 and key_installed = _FALSE\n", __func__); + #ifdef CONFIG_AP_MODE if (MLME_IS_AP(padapter)) { rtw_list_delete(&psta->asoc_list); pstapriv->asoc_list_cnt--; @@ -5977,6 +6120,7 @@ static int cfg80211_rtw_del_station(struct wiphy *wiphy, struct net_device *ndev psta = NULL; break; } + #endif } else { RTW_INFO("free psta=%p, aid=%d\n", psta, psta->cmn.aid); @@ -6337,7 +6481,580 @@ static int cfg80211_rtw_set_channel(struct wiphy *wiphy } #endif /*#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 6, 0))*/ +/* +static int cfg80211_rtw_auth(struct wiphy *wiphy, struct net_device *ndev, + struct cfg80211_auth_request *req) +{ + RTW_INFO(FUNC_NDEV_FMT"\n", FUNC_NDEV_ARG(ndev)); + + return 0; +} + +static int cfg80211_rtw_assoc(struct wiphy *wiphy, struct net_device *ndev, + struct cfg80211_assoc_request *req) +{ + RTW_INFO(FUNC_NDEV_FMT"\n", FUNC_NDEV_ARG(ndev)); + + return 0; +} +*/ + +static int rtw_cfg80211_set_beacon_wpsp2pie(struct net_device *ndev, char *buf, int len) +{ + int ret = 0; + uint wps_ielen = 0; + u8 *wps_ie; + u32 p2p_ielen = 0; + u8 wps_oui[8] = {0x0, 0x50, 0xf2, 0x04}; + u8 *p2p_ie; + u32 wfd_ielen = 0; + u8 *wfd_ie; + _adapter *padapter = (_adapter *)rtw_netdev_priv(ndev); + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); + + RTW_INFO(FUNC_NDEV_FMT" ielen=%d\n", FUNC_NDEV_ARG(ndev), len); + + if (len > 0) { + wps_ie = rtw_get_wps_ie(buf, len, NULL, &wps_ielen); + if (wps_ie) { + #ifdef CONFIG_DEBUG_CFG80211 + RTW_INFO("bcn_wps_ielen=%d\n", wps_ielen); + #endif + + if (pmlmepriv->wps_beacon_ie) { + u32 free_len = pmlmepriv->wps_beacon_ie_len; + pmlmepriv->wps_beacon_ie_len = 0; + rtw_mfree(pmlmepriv->wps_beacon_ie, free_len); + pmlmepriv->wps_beacon_ie = NULL; + } + + pmlmepriv->wps_beacon_ie = rtw_malloc(wps_ielen); + if (pmlmepriv->wps_beacon_ie == NULL) { + RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __FUNCTION__, __LINE__); + return -EINVAL; + + } + + _rtw_memcpy(pmlmepriv->wps_beacon_ie, wps_ie, wps_ielen); + pmlmepriv->wps_beacon_ie_len = wps_ielen; + + update_beacon(padapter, _VENDOR_SPECIFIC_IE_, wps_oui, _TRUE, RTW_CMDF_WAIT_ACK); + + } + + /* buf += wps_ielen; */ + /* len -= wps_ielen; */ + + #ifdef CONFIG_P2P + p2p_ie = rtw_get_p2p_ie(buf, len, NULL, &p2p_ielen); + if (p2p_ie) { + #ifdef CONFIG_DEBUG_CFG80211 + RTW_INFO("bcn_p2p_ielen=%d\n", p2p_ielen); + #endif + + if (pmlmepriv->p2p_beacon_ie) { + u32 free_len = pmlmepriv->p2p_beacon_ie_len; + pmlmepriv->p2p_beacon_ie_len = 0; + rtw_mfree(pmlmepriv->p2p_beacon_ie, free_len); + pmlmepriv->p2p_beacon_ie = NULL; + } + + pmlmepriv->p2p_beacon_ie = rtw_malloc(p2p_ielen); + if (pmlmepriv->p2p_beacon_ie == NULL) { + RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __FUNCTION__, __LINE__); + return -EINVAL; + + } + + _rtw_memcpy(pmlmepriv->p2p_beacon_ie, p2p_ie, p2p_ielen); + pmlmepriv->p2p_beacon_ie_len = p2p_ielen; + + } + #endif /* CONFIG_P2P */ + + + #ifdef CONFIG_WFD + wfd_ie = rtw_get_wfd_ie(buf, len, NULL, &wfd_ielen); + if (wfd_ie) { + #ifdef CONFIG_DEBUG_CFG80211 + RTW_INFO("bcn_wfd_ielen=%d\n", wfd_ielen); + #endif + + if (rtw_mlme_update_wfd_ie_data(pmlmepriv, MLME_BEACON_IE, wfd_ie, wfd_ielen) != _SUCCESS) + return -EINVAL; + } + #endif /* CONFIG_WFD */ + + pmlmeext->bstart_bss = _TRUE; + + } + + return ret; + +} + +static int rtw_cfg80211_set_probe_resp_wpsp2pie(struct net_device *net, char *buf, int len) +{ + int ret = 0; + uint wps_ielen = 0; + u8 *wps_ie; + u32 p2p_ielen = 0; + u8 *p2p_ie; + u32 wfd_ielen = 0; + u8 *wfd_ie; + _adapter *padapter = (_adapter *)rtw_netdev_priv(net); + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + +#ifdef CONFIG_DEBUG_CFG80211 + RTW_INFO("%s, ielen=%d\n", __func__, len); +#endif + + if (len > 0) { + wps_ie = rtw_get_wps_ie(buf, len, NULL, &wps_ielen); + if (wps_ie) { + uint attr_contentlen = 0; + u16 uconfig_method, *puconfig_method = NULL; + + #ifdef CONFIG_DEBUG_CFG80211 + RTW_INFO("probe_resp_wps_ielen=%d\n", wps_ielen); + #endif + + if (check_fwstate(pmlmepriv, WIFI_UNDER_WPS)) { + u8 sr = 0; + rtw_get_wps_attr_content(wps_ie, wps_ielen, WPS_ATTR_SELECTED_REGISTRAR, (u8 *)(&sr), NULL); + + if (sr != 0) + RTW_INFO("%s, got sr\n", __func__); + else { + RTW_INFO("GO mode process WPS under site-survey, sr no set\n"); + return ret; + } + } + + if (pmlmepriv->wps_probe_resp_ie) { + u32 free_len = pmlmepriv->wps_probe_resp_ie_len; + pmlmepriv->wps_probe_resp_ie_len = 0; + rtw_mfree(pmlmepriv->wps_probe_resp_ie, free_len); + pmlmepriv->wps_probe_resp_ie = NULL; + } + + pmlmepriv->wps_probe_resp_ie = rtw_malloc(wps_ielen); + if (pmlmepriv->wps_probe_resp_ie == NULL) { + RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __FUNCTION__, __LINE__); + return -EINVAL; + + } + + /* add PUSH_BUTTON config_method by driver self in wpsie of probe_resp at GO Mode */ + puconfig_method = (u16 *)rtw_get_wps_attr_content(wps_ie, wps_ielen, WPS_ATTR_CONF_METHOD , NULL, &attr_contentlen); + if (puconfig_method != NULL) { + /* struct registry_priv *pregistrypriv = &padapter->registrypriv; */ + struct wireless_dev *wdev = padapter->rtw_wdev; + + #ifdef CONFIG_DEBUG_CFG80211 + /* printk("config_method in wpsie of probe_resp = 0x%x\n", be16_to_cpu(*puconfig_method)); */ + #endif + + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) || defined(COMPAT_KERNEL_RELEASE) + /* for WIFI-DIRECT LOGO 4.2.2, AUTO GO can't set PUSH_BUTTON flags */ + if (wdev->iftype == NL80211_IFTYPE_P2P_GO) { + uconfig_method = WPS_CM_PUSH_BUTTON; + uconfig_method = cpu_to_be16(uconfig_method); + + *puconfig_method &= ~uconfig_method; + } + #endif + } + + _rtw_memcpy(pmlmepriv->wps_probe_resp_ie, wps_ie, wps_ielen); + pmlmepriv->wps_probe_resp_ie_len = wps_ielen; + + } + + /* buf += wps_ielen; */ + /* len -= wps_ielen; */ + + #ifdef CONFIG_P2P + p2p_ie = rtw_get_p2p_ie(buf, len, NULL, &p2p_ielen); + if (p2p_ie) { + u8 is_GO = _FALSE; + u32 attr_contentlen = 0; + u16 cap_attr = 0; + + #ifdef CONFIG_DEBUG_CFG80211 + RTW_INFO("probe_resp_p2p_ielen=%d\n", p2p_ielen); + #endif + + /* Check P2P Capability ATTR */ + attr_contentlen = sizeof(cap_attr); + if (rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_CAPABILITY, (u8 *)&cap_attr, (uint *) &attr_contentlen)) { + u8 grp_cap = 0; + /* RTW_INFO( "[%s] Got P2P Capability Attr!!\n", __FUNCTION__ ); */ + cap_attr = le16_to_cpu(cap_attr); + grp_cap = (u8)((cap_attr >> 8) & 0xff); + + is_GO = (grp_cap & BIT(0)) ? _TRUE : _FALSE; + + if (is_GO) + RTW_INFO("Got P2P Capability Attr, grp_cap=0x%x, is_GO\n", grp_cap); + } + + + if (is_GO == _FALSE) { + if (pmlmepriv->p2p_probe_resp_ie) { + u32 free_len = pmlmepriv->p2p_probe_resp_ie_len; + pmlmepriv->p2p_probe_resp_ie_len = 0; + rtw_mfree(pmlmepriv->p2p_probe_resp_ie, free_len); + pmlmepriv->p2p_probe_resp_ie = NULL; + } + + pmlmepriv->p2p_probe_resp_ie = rtw_malloc(p2p_ielen); + if (pmlmepriv->p2p_probe_resp_ie == NULL) { + RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __FUNCTION__, __LINE__); + return -EINVAL; + + } + _rtw_memcpy(pmlmepriv->p2p_probe_resp_ie, p2p_ie, p2p_ielen); + pmlmepriv->p2p_probe_resp_ie_len = p2p_ielen; + } else { + if (pmlmepriv->p2p_go_probe_resp_ie) { + u32 free_len = pmlmepriv->p2p_go_probe_resp_ie_len; + pmlmepriv->p2p_go_probe_resp_ie_len = 0; + rtw_mfree(pmlmepriv->p2p_go_probe_resp_ie, free_len); + pmlmepriv->p2p_go_probe_resp_ie = NULL; + } + + pmlmepriv->p2p_go_probe_resp_ie = rtw_malloc(p2p_ielen); + if (pmlmepriv->p2p_go_probe_resp_ie == NULL) { + RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __FUNCTION__, __LINE__); + return -EINVAL; + + } + _rtw_memcpy(pmlmepriv->p2p_go_probe_resp_ie, p2p_ie, p2p_ielen); + pmlmepriv->p2p_go_probe_resp_ie_len = p2p_ielen; + } + + } + #endif /* CONFIG_P2P */ + + + #ifdef CONFIG_WFD + wfd_ie = rtw_get_wfd_ie(buf, len, NULL, &wfd_ielen); + #ifdef CONFIG_DEBUG_CFG80211 + RTW_INFO("probe_resp_wfd_ielen=%d\n", wfd_ielen); + #endif + + if (rtw_mlme_update_wfd_ie_data(pmlmepriv, MLME_PROBE_RESP_IE, wfd_ie, wfd_ielen) != _SUCCESS) + return -EINVAL; + #endif /* CONFIG_WFD */ + + } + + return ret; + +} + +static int rtw_cfg80211_set_assoc_resp_wpsp2pie(struct net_device *net, char *buf, int len) +{ + int ret = 0; + _adapter *padapter = (_adapter *)rtw_netdev_priv(net); + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + u8 *ie; + u32 ie_len; + + RTW_INFO("%s, ielen=%d\n", __func__, len); + + if (len <= 0) + goto exit; + + ie = rtw_get_wps_ie(buf, len, NULL, &ie_len); + if (ie && ie_len) { + if (pmlmepriv->wps_assoc_resp_ie) { + u32 free_len = pmlmepriv->wps_assoc_resp_ie_len; + + pmlmepriv->wps_assoc_resp_ie_len = 0; + rtw_mfree(pmlmepriv->wps_assoc_resp_ie, free_len); + pmlmepriv->wps_assoc_resp_ie = NULL; + } + + pmlmepriv->wps_assoc_resp_ie = rtw_malloc(ie_len); + if (pmlmepriv->wps_assoc_resp_ie == NULL) { + RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __FUNCTION__, __LINE__); + return -EINVAL; + } + _rtw_memcpy(pmlmepriv->wps_assoc_resp_ie, ie, ie_len); + pmlmepriv->wps_assoc_resp_ie_len = ie_len; + } +#ifdef CONFIG_P2P + ie = rtw_get_p2p_ie(buf, len, NULL, &ie_len); + if (ie && ie_len) { + if (pmlmepriv->p2p_assoc_resp_ie) { + u32 free_len = pmlmepriv->p2p_assoc_resp_ie_len; + + pmlmepriv->p2p_assoc_resp_ie_len = 0; + rtw_mfree(pmlmepriv->p2p_assoc_resp_ie, free_len); + pmlmepriv->p2p_assoc_resp_ie = NULL; + } + + pmlmepriv->p2p_assoc_resp_ie = rtw_malloc(ie_len); + if (pmlmepriv->p2p_assoc_resp_ie == NULL) { + RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __FUNCTION__, __LINE__); + return -EINVAL; + } + _rtw_memcpy(pmlmepriv->p2p_assoc_resp_ie, ie, ie_len); + pmlmepriv->p2p_assoc_resp_ie_len = ie_len; + } +#endif +#ifdef CONFIG_WFD + ie = rtw_get_wfd_ie(buf, len, NULL, &ie_len); + if (rtw_mlme_update_wfd_ie_data(pmlmepriv, MLME_ASSOC_RESP_IE, ie, ie_len) != _SUCCESS) + return -EINVAL; +#endif + +exit: + return ret; +} + +int rtw_cfg80211_set_mgnt_wpsp2pie(struct net_device *net, char *buf, int len, + int type) +{ + int ret = 0; + uint wps_ielen = 0; + u32 p2p_ielen = 0; + +#ifdef CONFIG_DEBUG_CFG80211 + RTW_INFO("%s, ielen=%d\n", __func__, len); +#endif + + if ((rtw_get_wps_ie(buf, len, NULL, &wps_ielen) && (wps_ielen > 0)) + #ifdef CONFIG_P2P + || (rtw_get_p2p_ie(buf, len, NULL, &p2p_ielen) && (p2p_ielen > 0)) + #endif + ) { + if (net != NULL) { + switch (type) { + case 0x1: /* BEACON */ + ret = rtw_cfg80211_set_beacon_wpsp2pie(net, buf, len); + break; + case 0x2: /* PROBE_RESP */ + ret = rtw_cfg80211_set_probe_resp_wpsp2pie(net, buf, len); + #ifdef CONFIG_P2P + if (ret == 0) + adapter_wdev_data((_adapter *)rtw_netdev_priv(net))->probe_resp_ie_update_time = rtw_get_current_time(); + #endif + break; + case 0x4: /* ASSOC_RESP */ + ret = rtw_cfg80211_set_assoc_resp_wpsp2pie(net, buf, len); + break; + } + } + } + + return ret; + +} +#endif /* CONFIG_AP_MODE */ + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)) +static struct wireless_dev * +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38)) || defined(COMPAT_KERNEL_RELEASE) +static struct net_device * +#else +static int +#endif + cfg80211_rtw_add_virtual_intf( + struct wiphy *wiphy, + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 7, 0)) + const char *name, + #else + char *name, + #endif + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 0)) + unsigned char name_assign_type, + #endif + enum nl80211_iftype type, + #if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 12, 0)) + u32 *flags, + #endif + struct vif_params *params) +{ + int ret = 0; + struct wireless_dev *wdev = NULL; + struct net_device *ndev = NULL; + _adapter *padapter; + struct dvobj_priv *dvobj = wiphy_to_dvobj(wiphy); + + rtw_set_rtnl_lock_holder(dvobj, current); + + RTW_INFO(FUNC_WIPHY_FMT" name:%s, type:%d\n", FUNC_WIPHY_ARG(wiphy), name, type); + + switch (type) { + case NL80211_IFTYPE_MONITOR: + padapter = wiphy_to_adapter(wiphy); /* TODO: get ap iface ? */ + ret = rtw_cfg80211_add_monitor_if(padapter, (char *)name, &ndev); + if (ret == 0) + wdev = ndev->ieee80211_ptr; + break; + +#if defined(CONFIG_P2P) && ((LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) || defined(COMPAT_KERNEL_RELEASE)) + case NL80211_IFTYPE_P2P_CLIENT: + case NL80211_IFTYPE_P2P_GO: +#endif + case NL80211_IFTYPE_STATION: + case NL80211_IFTYPE_AP: +#ifdef CONFIG_RTW_MESH + case NL80211_IFTYPE_MESH_POINT: +#endif + padapter = dvobj_get_unregisterd_adapter(dvobj); + if (!padapter) { + RTW_WARN("adapter pool empty!\n"); + ret = -ENODEV; + break; + } + + #if defined(CONFIG_CONCURRENT_MODE) && defined(CONFIG_P2P) + #if defined(CONFIG_P2P) && ((KERNEL_VERSION(2, 6, 37) <= LINUX_VERSION_CODE) || defined(COMPAT_KERNEL_RELEASE)) + if ((type == NL80211_IFTYPE_P2P_CLIENT || type == NL80211_IFTYPE_P2P_GO) && (padapter->iface_id != padapter->registrypriv.sel_p2p_iface)) { + RTW_ERR("%s, iface_id:%d is not P2P interface!\n", __func__, padapter->iface_id); + ret = -EOPNOTSUPP; + break; + } + #endif + #endif + + if (rtw_os_ndev_init(padapter, name) != _SUCCESS) { + RTW_WARN("ndev init fail!\n"); + ret = -ENODEV; + break; + } + #if defined(CONFIG_P2P) && ((LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) || defined(COMPAT_KERNEL_RELEASE)) + if (type == NL80211_IFTYPE_P2P_CLIENT || type == NL80211_IFTYPE_P2P_GO) + rtw_p2p_enable(padapter, P2P_ROLE_DEVICE); + #endif + ndev = padapter->pnetdev; + wdev = ndev->ieee80211_ptr; + break; + +#if defined(CONFIG_P2P) && defined(RTW_DEDICATED_P2P_DEVICE) + case NL80211_IFTYPE_P2P_DEVICE: + ret = rtw_pd_iface_alloc(wiphy, name, &wdev); + break; +#endif + + case NL80211_IFTYPE_ADHOC: + case NL80211_IFTYPE_AP_VLAN: + case NL80211_IFTYPE_WDS: + default: + ret = -ENODEV; + RTW_INFO("Unsupported interface type\n"); + break; + } + + if (ndev) + RTW_INFO(FUNC_WIPHY_FMT" ndev:%p, ret:%d\n", FUNC_WIPHY_ARG(wiphy), ndev, ret); + else + RTW_INFO(FUNC_WIPHY_FMT" wdev:%p, ret:%d\n", FUNC_WIPHY_ARG(wiphy), wdev, ret); + + rtw_set_rtnl_lock_holder(dvobj, NULL); + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)) + return wdev ? wdev : ERR_PTR(ret); +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38)) || defined(COMPAT_KERNEL_RELEASE) + return ndev ? ndev : ERR_PTR(ret); +#else + return ret; +#endif +} + +static int cfg80211_rtw_del_virtual_intf(struct wiphy *wiphy, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)) + struct wireless_dev *wdev +#else + struct net_device *ndev +#endif +) +{ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)) + struct net_device *ndev = wdev_to_ndev(wdev); +#endif + int ret = 0; + struct dvobj_priv *dvobj = wiphy_to_dvobj(wiphy); + _adapter *adapter; + struct rtw_wdev_priv *pwdev_priv; + + rtw_set_rtnl_lock_holder(dvobj, current); + + if (ndev) { + adapter = (_adapter *)rtw_netdev_priv(ndev); + pwdev_priv = adapter_wdev_data(adapter); + + if (ndev == pwdev_priv->pmon_ndev) { + unregister_netdevice(ndev); + pwdev_priv->pmon_ndev = NULL; + pwdev_priv->ifname_mon[0] = '\0'; + RTW_INFO(FUNC_NDEV_FMT" remove monitor ndev\n", FUNC_NDEV_ARG(ndev)); + } else { + RTW_INFO(FUNC_NDEV_FMT" unregister ndev\n", FUNC_NDEV_ARG(ndev)); + rtw_os_ndev_unregister(adapter); + } + } else +#if defined(CONFIG_P2P) && defined(RTW_DEDICATED_P2P_DEVICE) + if (wdev->iftype == NL80211_IFTYPE_P2P_DEVICE) { + if (wdev == wiphy_to_pd_wdev(wiphy)) + rtw_pd_iface_free(wiphy); + else { + RTW_ERR(FUNC_WIPHY_FMT" unknown P2P Device wdev:%p\n", FUNC_WIPHY_ARG(wiphy), wdev); + rtw_warn_on(1); + } + } else +#endif + { + ret = -EINVAL; + goto exit; + } + +exit: + rtw_set_rtnl_lock_holder(dvobj, NULL); + return ret; +} + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0)) +static int cfg80211_rtw_get_channel(struct wiphy *wiphy, + struct wireless_dev *wdev, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)) || defined(CONFIG_MLD_KERNEL_PATCH) + unsigned int link_id, +#endif + struct cfg80211_chan_def *chandef) +{ + _adapter *padapter = wiphy_to_adapter(wiphy); + struct mlme_ext_priv *mlmeext = &(padapter->mlmeextpriv); + u8 ht_option = 0; + u8 report = 0; + int retval = 1; + + if (MLME_IS_ASOC(padapter)) { +#ifdef CONFIG_80211N_HT + ht_option = padapter->mlmepriv.htpriv.ht_option; +#endif /* CONFIG_80211N_HT */ + report = 1; + } else if (MLME_IS_MONITOR(padapter)) { + /* monitor mode always set to HT + we don't support sniffer No HT */ + ht_option = 1; + report = 1; + } + + if (report) { + rtw_chbw_to_cfg80211_chan_def(wiphy, chandef, + mlmeext->cur_channel, mlmeext->cur_bwmode, + mlmeext->cur_ch_offset, ht_option); + retval = 0; + } + + return retval; +} + static void rtw_get_chbwoff_from_cfg80211_chan_def( struct cfg80211_chan_def *chandef, u8 *ht, u8 *ch, u8 *bw, u8 *offset) @@ -6350,6 +7067,7 @@ static void rtw_get_chbwoff_from_cfg80211_chan_def( switch (chandef->width) { case NL80211_CHAN_WIDTH_20_NOHT: *ht = 0; + fallthrough; /* fall through */ case NL80211_CHAN_WIDTH_20: *bw = CHANNEL_WIDTH_20; @@ -6440,59 +7158,6 @@ static int cfg80211_rtw_set_monitor_channel(struct wiphy *wiphy return 0; } -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0)) -static int cfg80211_rtw_get_channel(struct wiphy *wiphy, - struct wireless_dev *wdev, - struct cfg80211_chan_def *chandef) -{ - _adapter *padapter = wiphy_to_adapter(wiphy); - struct mlme_ext_priv *mlmeext = &(padapter->mlmeextpriv); - u8 ht_option = 0; - u8 report = 0; - int retval = 1; - - if (MLME_IS_ASOC(padapter)) { -#ifdef CONFIG_80211N_HT - ht_option = padapter->mlmepriv.htpriv.ht_option; -#endif /* CONFIG_80211N_HT */ - report = 1; - } else if (MLME_IS_MONITOR(padapter)) { - /* monitor mode always set to HT - we don't support sniffer No HT */ - ht_option = 1; - report = 1; - } - - if (report) { - rtw_chbw_to_cfg80211_chan_def(wiphy, chandef, - mlmeext->cur_channel, mlmeext->cur_bwmode, - mlmeext->cur_ch_offset, ht_option); - retval = 0; - } - - return retval; -} -#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0)) */ - -/* -static int cfg80211_rtw_auth(struct wiphy *wiphy, struct net_device *ndev, - struct cfg80211_auth_request *req) -{ - RTW_INFO(FUNC_NDEV_FMT"\n", FUNC_NDEV_ARG(ndev)); - - return 0; -} - -static int cfg80211_rtw_assoc(struct wiphy *wiphy, struct net_device *ndev, - struct cfg80211_assoc_request *req) -{ - RTW_INFO(FUNC_NDEV_FMT"\n", FUNC_NDEV_ARG(ndev)); - - return 0; -} -*/ -#endif /* CONFIG_AP_MODE */ - void rtw_cfg80211_external_auth_request(_adapter *padapter, union recv_frame *rframe) { struct rtw_external_auth_params params; @@ -6509,11 +7174,8 @@ void rtw_cfg80211_external_auth_request(_adapter *padapter, union recv_frame *rf freq = rtw_ch2freq(pmlmeext->cur_channel); -#ifdef CONFIG_DEBUG_CFG80211 - RTW_INFO(FUNC_ADPT_FMT": freq(%d, %d)\n", FUNC_ADPT_ARG(padapter), freq); -#endif - -#if (KERNEL_VERSION(4, 17, 0) <= LINUX_VERSION_CODE) +#if (KERNEL_VERSION(4, 17, 0) <= LINUX_VERSION_CODE) \ + || defined(CONFIG_KERNEL_PATCH_EXTERNAL_AUTH) params.action = EXTERNAL_AUTH_START; _rtw_memcpy(params.bssid, get_my_bssid(&pmlmeinfo->network), ETH_ALEN); params.ssid.ssid_len = pmlmeinfo->network.Ssid.SsidLength; @@ -6521,6 +7183,7 @@ void rtw_cfg80211_external_auth_request(_adapter *padapter, union recv_frame *rf pmlmeinfo->network.Ssid.SsidLength); params.key_mgmt_suite = 0x8ac0f00; + RTW_INFO("external auth: use kernel API: cfg80211_external_auth_request()\n"); cfg80211_external_auth_request(netdev, (struct cfg80211_external_auth_params *)¶ms, GFP_ATOMIC); #elif (KERNEL_VERSION(2, 6, 37) <= LINUX_VERSION_CODE) @@ -6530,13 +7193,16 @@ void rtw_cfg80211_external_auth_request(_adapter *padapter, union recv_frame *rf _rtw_memcpy(frame + 10, adapter_mac_addr(padapter), ETH_ALEN); _rtw_memcpy(frame + 16, get_my_bssid(&pmlmeinfo->network), ETH_ALEN); RTW_PUT_LE32((frame + 18), 0x8ac0f00); + RTW_PUT_LE32((frame + 24), 0x0003); if (pmlmeinfo->network.Ssid.SsidLength) { - *(frame + 23) = pmlmeinfo->network.Ssid.SsidLength; - _rtw_memcpy(frame + 24, pmlmeinfo->network.Ssid.Ssid, + *(frame + 26) = pmlmeinfo->network.Ssid.SsidLength; + _rtw_memcpy(frame + 27, pmlmeinfo->network.Ssid.Ssid, pmlmeinfo->network.Ssid.SsidLength); - frame_len = 24 + pmlmeinfo->network.Ssid.SsidLength; + frame_len = 27 + pmlmeinfo->network.Ssid.SsidLength; } + + RTW_INFO("external auth: with wpa_supplicant patch\n"); rtw_cfg80211_rx_mgmt(wdev, freq, 0, frame, frame_len, GFP_ATOMIC); #endif } @@ -6633,7 +7299,7 @@ void rtw_cfg80211_rx_p2p_action_public(_adapter *adapter, union recv_frame *rfra RTW_INFO(FUNC_ADPT_FMT" Nego confirm. Allow only "ADPT_FMT" to scan for 2000 ms\n" , FUNC_ADPT_ARG(adapter), ADPT_ARG(intended_iface)); /* allow only intended_iface to do scan for 2000 ms */ - rtw_mi_set_scan_deny(adapter, 2000); + rtw_mi_set_scan_deny(adapter, 2000, "p2p_nego"); rtw_clear_scan_deny(intended_iface); } } @@ -6693,7 +7359,7 @@ void rtw_cfg80211_rx_action(_adapter *adapter, union recv_frame *rframe, const c rtw_action_frame_parse(frame, frame_len, &category, &action); if (category == RTW_WLAN_CATEGORY_PUBLIC) { if (action == ACT_PUBLIC_GAS_INITIAL_REQ) { - rtw_mi_set_scan_deny(adapter, 200); + rtw_mi_set_scan_deny(adapter, 200, "rx_action"); rtw_mi_scan_abort(adapter, _FALSE); /*rtw_scan_abort_no_wait*/ } } @@ -6808,6 +7474,7 @@ void rtw_cfg80211_issue_p2p_provision_request(_adapter *padapter, const u8 *buf, pwdinfo->tx_prov_disc_info.wps_config_method_request = WPS_CM_PUSH_BUTTON; rtw_get_wps_ie(frame_body + _PUBLIC_ACTION_IE_OFFSET_, frame_body_len - _PUBLIC_ACTION_IE_OFFSET_, wpsie, &wpsielen); + wps_devicepassword_id_len = sizeof(wps_devicepassword_id); rtw_get_wps_attr_content(wpsie, wpsielen, WPS_ATTR_DEVICE_PWID, (u8 *) &wps_devicepassword_id, &wps_devicepassword_id_len); wps_devicepassword_id = be16_to_cpu(wps_devicepassword_id); @@ -6835,7 +7502,9 @@ void rtw_cfg80211_issue_p2p_provision_request(_adapter *padapter, const u8 *buf, if (rtw_get_p2p_ie(frame_body + _PUBLIC_ACTION_IE_OFFSET_, frame_body_len - _PUBLIC_ACTION_IE_OFFSET_, p2p_ie, &p2p_ielen)) { + devinfo_contentlen = sizeof(devinfo_content); rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_DEVICE_INFO, devinfo_content, &devinfo_contentlen); + capability_len = sizeof(capability); rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_CAPABILITY, (u8 *)&capability, &capability_len); } @@ -6985,6 +7654,7 @@ void rtw_cfg80211_issue_p2p_provision_request(_adapter *padapter, const u8 *buf, #endif } +#endif /* CONFIG_P2P */ #ifdef CONFIG_RTW_80211R static s32 cfg80211_rtw_update_ft_ies(struct wiphy *wiphy, @@ -7029,31 +7699,31 @@ static s32 cfg80211_rtw_update_ft_ies(struct wiphy *wiphy, inline void rtw_cfg80211_set_is_roch(_adapter *adapter, bool val) { - adapter->cfg80211_wdinfo.is_ro_ch = val; + adapter->rochinfo.is_ro_ch = val; rtw_mi_update_iface_status(&(adapter->mlmepriv), 0); } inline bool rtw_cfg80211_get_is_roch(_adapter *adapter) { - return adapter->cfg80211_wdinfo.is_ro_ch; + return adapter->rochinfo.is_ro_ch; } inline bool rtw_cfg80211_is_ro_ch_once(_adapter *adapter) { - return adapter->cfg80211_wdinfo.last_ro_ch_time ? 1 : 0; + return adapter->rochinfo.last_ro_ch_time ? 1 : 0; } inline void rtw_cfg80211_set_last_ro_ch_time(_adapter *adapter) { - adapter->cfg80211_wdinfo.last_ro_ch_time = rtw_get_current_time(); + adapter->rochinfo.last_ro_ch_time = rtw_get_current_time(); - if (!adapter->cfg80211_wdinfo.last_ro_ch_time) - adapter->cfg80211_wdinfo.last_ro_ch_time++; + if (!adapter->rochinfo.last_ro_ch_time) + adapter->rochinfo.last_ro_ch_time++; } inline s32 rtw_cfg80211_get_last_ro_ch_passing_ms(_adapter *adapter) { - return rtw_get_passing_time_ms(adapter->cfg80211_wdinfo.last_ro_ch_time); + return rtw_get_passing_time_ms(adapter->rochinfo.last_ro_ch_time); } static s32 cfg80211_rtw_remain_on_channel(struct wiphy *wiphy, @@ -7072,11 +7742,13 @@ static s32 cfg80211_rtw_remain_on_channel(struct wiphy *wiphy, u8 remain_ch = (u8) ieee80211_frequency_to_channel(channel->center_freq); _adapter *padapter = NULL; struct rtw_wdev_priv *pwdev_priv; + struct roch_info *prochinfo; +#ifdef CONFIG_P2P struct wifidirect_info *pwdinfo; - struct cfg80211_wifidirect_info *pcfg80211_wdinfo; #ifdef CONFIG_CONCURRENT_MODE u8 is_p2p_find = _FALSE; #endif +#endif #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)) #if defined(RTW_DEDICATED_P2P_DEVICE) @@ -7102,13 +7774,15 @@ static s32 cfg80211_rtw_remain_on_channel(struct wiphy *wiphy, #endif pwdev_priv = adapter_wdev_data(padapter); + prochinfo = &padapter->rochinfo; +#ifdef CONFIG_P2P pwdinfo = &padapter->wdinfo; - pcfg80211_wdinfo = &padapter->cfg80211_wdinfo; #ifdef CONFIG_CONCURRENT_MODE is_p2p_find = (duration < (pwdinfo->ext_listen_interval)) ? _TRUE : _FALSE; +#endif #endif - *cookie = ATOMIC_INC_RETURN(&pcfg80211_wdinfo->ro_ch_cookie_gen); + *cookie = ATOMIC_INC_RETURN(&prochinfo->ro_ch_cookie_gen); RTW_INFO(FUNC_ADPT_FMT"%s ch:%u duration:%d, cookie:0x%llx\n" , FUNC_ADPT_ARG(padapter), wdev == wiphy_to_pd_wdev(wiphy) ? " PD" : "" @@ -7134,17 +7808,18 @@ static s32 cfg80211_rtw_remain_on_channel(struct wiphy *wiphy, } rtw_scan_abort(padapter); -#ifdef CONFIG_CONCURRENT_MODE +#if defined(CONFIG_CONCURRENT_MODE) && defined(CONFIG_P2P) /*don't scan_abort during p2p_listen.*/ if (is_p2p_find) rtw_mi_buddy_scan_abort(padapter, _TRUE); -#endif /*CONFIG_CONCURRENT_MODE*/ +#endif /* defined(CONFIG_CONCURRENT_MODE) && defined(CONFIG_P2P) */ if (rtw_cfg80211_get_is_roch(padapter) == _TRUE) { - _cancel_timer_ex(&padapter->cfg80211_wdinfo.remain_on_ch_timer); - p2p_cancel_roch_cmd(padapter, 0, NULL, RTW_CMDF_WAIT_ACK); + _cancel_timer_ex(&padapter->rochinfo.remain_on_ch_timer); + rtw_cancel_roch_cmd(padapter, 0, NULL, RTW_CMDF_WAIT_ACK); } +#ifdef CONFIG_P2P /* if(!rtw_p2p_chk_role(pwdinfo, P2P_ROLE_CLIENT) && !rtw_p2p_chk_role(pwdinfo, P2P_ROLE_GO)) */ if (rtw_p2p_chk_state(pwdinfo, P2P_STATE_NONE) #if defined(CONFIG_CONCURRENT_MODE) && defined(CONFIG_P2P) @@ -7172,30 +7847,31 @@ static s32 cfg80211_rtw_remain_on_channel(struct wiphy *wiphy, } rtw_p2p_set_state(pwdinfo, P2P_STATE_LISTEN); +#endif /* CONFIG_P2P */ #ifdef RTW_ROCH_DURATION_ENLARGE if (duration < 400) duration = duration * 3; /* extend from exper */ #endif -#if defined(RTW_ROCH_BACK_OP) && defined(CONFIG_CONCURRENT_MODE) +#if defined(RTW_ROCH_BACK_OP) && defined(CONFIG_CONCURRENT_MODE) && defined(CONFIG_P2P) if (rtw_mi_check_status(padapter, MI_LINKED)) { if (is_p2p_find) /* p2p_find , duration<1000 */ duration = duration + pwdinfo->ext_listen_interval; } -#endif /*defined (RTW_ROCH_BACK_OP) && defined(CONFIG_CONCURRENT_MODE) */ +#endif /* defined (RTW_ROCH_BACK_OP) && defined(CONFIG_CONCURRENT_MODE) && defined(CONFIG_P2P) */ rtw_cfg80211_set_is_roch(padapter, _TRUE); - pcfg80211_wdinfo->ro_ch_wdev = wdev; - pcfg80211_wdinfo->remain_on_ch_cookie = *cookie; + prochinfo->ro_ch_wdev = wdev; + prochinfo->remain_on_ch_cookie = *cookie; rtw_cfg80211_set_last_ro_ch_time(padapter); - _rtw_memcpy(&pcfg80211_wdinfo->remain_on_ch_channel, channel, sizeof(struct ieee80211_channel)); + _rtw_memcpy(&prochinfo->remain_on_ch_channel, channel, sizeof(struct ieee80211_channel)); #if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)) - pcfg80211_wdinfo->remain_on_ch_type = channel_type; + prochinfo->remain_on_ch_type = channel_type; #endif - pcfg80211_wdinfo->restore_channel = rtw_get_oper_ch(padapter); + prochinfo->restore_channel = rtw_get_oper_ch(padapter); - p2p_roch_cmd(padapter, *cookie, wdev, channel, pcfg80211_wdinfo->remain_on_ch_type, + rtw_roch_cmd(padapter, *cookie, wdev, channel, prochinfo->remain_on_ch_type, duration, RTW_CMDF_WAIT_ACK); rtw_cfg80211_ready_on_channel(wdev, *cookie, channel, channel_type, duration, GFP_KERNEL); @@ -7214,8 +7890,10 @@ static s32 cfg80211_rtw_cancel_remain_on_channel(struct wiphy *wiphy, s32 err = 0; _adapter *padapter; struct rtw_wdev_priv *pwdev_priv; + struct roch_info *prochinfo; +#ifdef CONFIG_P2P struct wifidirect_info *pwdinfo; - struct cfg80211_wifidirect_info *pcfg80211_wdinfo; +#endif #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)) #if defined(RTW_DEDICATED_P2P_DEVICE) @@ -7241,22 +7919,25 @@ static s32 cfg80211_rtw_cancel_remain_on_channel(struct wiphy *wiphy, #endif pwdev_priv = adapter_wdev_data(padapter); + prochinfo = &padapter->rochinfo; +#ifdef CONFIG_P2P pwdinfo = &padapter->wdinfo; - pcfg80211_wdinfo = &padapter->cfg80211_wdinfo; +#endif RTW_INFO(FUNC_ADPT_FMT"%s cookie:0x%llx\n" , FUNC_ADPT_ARG(padapter), wdev == wiphy_to_pd_wdev(wiphy) ? " PD" : "" , cookie); if (rtw_cfg80211_get_is_roch(padapter) == _TRUE) { - _cancel_timer_ex(&padapter->cfg80211_wdinfo.remain_on_ch_timer); - p2p_cancel_roch_cmd(padapter, cookie, wdev, RTW_CMDF_WAIT_ACK); + _cancel_timer_ex(&padapter->rochinfo.remain_on_ch_timer); + rtw_cancel_roch_cmd(padapter, cookie, wdev, RTW_CMDF_WAIT_ACK); } exit: return err; } +#ifdef CONFIG_P2P inline int rtw_cfg80211_iface_has_p2p_group_cap(_adapter *adapter) { #if RTW_P2P_GROUP_INTERFACE @@ -7367,13 +8048,6 @@ void rtw_pd_iface_free(struct wiphy *wiphy) rtnl_lock_needed = rtw_rtnl_lock_needed(dvobj); if (rtnl_lock_needed) rtnl_lock(); - - if (!wiphy_data->pd_wdev) { - if (rtnl_lock_needed) - rtnl_unlock(); - goto exit; - } - cfg80211_unregister_wdev(wiphy_data->pd_wdev); if (rtnl_lock_needed) rtnl_unlock(); @@ -7470,11 +8144,9 @@ static int _cfg80211_rtw_mgmt_tx(_adapter *padapter, u8 tx_ch, u8 no_cck, const struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); u8 u_ch = rtw_mi_get_union_chan(padapter); u8 leave_op = 0; -#ifdef CONFIG_P2P - struct cfg80211_wifidirect_info *pcfg80211_wdinfo = &padapter->cfg80211_wdinfo; - #ifdef CONFIG_CONCURRENT_MODE + struct roch_info *prochinfo = &padapter->rochinfo; +#if defined(CONFIG_P2P) && defined(CONFIG_CONCURRENT_MODE) struct wifidirect_info *pwdinfo = &padapter->wdinfo; - #endif #endif rtw_cfg80211_set_is_mgmt_tx(padapter, 1); @@ -7488,7 +8160,7 @@ static int _cfg80211_rtw_mgmt_tx(_adapter *padapter, u8 tx_ch, u8 no_cck, const #ifdef CONFIG_CONCURRENT_MODE if (!check_fwstate(&padapter->mlmepriv, WIFI_ASOC_STATE)) { RTW_INFO("%s, extend ro ch time\n", __func__); - _set_timer(&padapter->cfg80211_wdinfo.remain_on_ch_timer, pwdinfo->ext_listen_period); + _set_timer(&padapter->rochinfo.remain_on_ch_timer, pwdinfo->ext_listen_period); } #endif /* CONFIG_CONCURRENT_MODE */ } @@ -7578,18 +8250,15 @@ issue_mgmt_frame: } exit: - #ifdef CONFIG_P2P if (rtw_cfg80211_get_is_roch(padapter) - && !roch_stay_in_cur_chan(padapter) - && pcfg80211_wdinfo->remain_on_ch_channel.hw_value != u_ch + && !rtw_roch_stay_in_cur_chan(padapter) + && prochinfo->remain_on_ch_channel.hw_value != u_ch ) { /* roch is ongoing, switch back to rch */ - if (pcfg80211_wdinfo->remain_on_ch_channel.hw_value != tx_ch) - set_channel_bwmode(padapter, pcfg80211_wdinfo->remain_on_ch_channel.hw_value + if (prochinfo->remain_on_ch_channel.hw_value != tx_ch) + set_channel_bwmode(padapter, prochinfo->remain_on_ch_channel.hw_value , HAL_PRIME_CHNL_OFFSET_DONT_CARE, CHANNEL_WIDTH_20); - } else - #endif - if (leave_op) { + } else if (leave_op) { if (rtw_mi_check_status(padapter, MI_LINKED)) { u8 u_bw = rtw_mi_get_union_bw(padapter); u8 u_offset = rtw_mi_get_union_offset(padapter); @@ -7834,7 +8503,7 @@ dump: while (1) { dump_cnt++; - rtw_mi_set_scan_deny(padapter, 1000); + rtw_mi_set_scan_deny(padapter, 1000, "mgm_tx"); rtw_mi_scan_abort(padapter, _TRUE); tx_ret = rtw_mgnt_tx_cmd(padapter, tx_ch, no_cck, dump_buf, dump_len, wait_ack, RTW_CMDF_WAIT_ACK); if (tx_ret == _SUCCESS @@ -7869,7 +8538,7 @@ dump: RTW_INFO(FUNC_ADPT_FMT" Nego confirm. Allow only "ADPT_FMT" to scan for 2000 ms\n" , FUNC_ADPT_ARG(padapter), ADPT_ARG(intended_iface)); /* allow only intended_iface to do scan for 2000 ms */ - rtw_mi_set_scan_deny(padapter, 2000); + rtw_mi_set_scan_deny(padapter, 2000, "p2p_nego"); rtw_clear_scan_deny(intended_iface); } } @@ -7933,13 +8602,13 @@ static void cfg80211_rtw_mgmt_frame_register(struct wiphy *wiphy, else CLR_CFG80211_REPORT_MGMT(pwdev_priv, IEEE80211_STYPE_AUTH); break; -#ifdef not_yet case IEEE80211_STYPE_PROBE_REQ: /* 0x0040 */ if (reg > 0) SET_CFG80211_REPORT_MGMT(pwdev_priv, IEEE80211_STYPE_PROBE_REQ); else CLR_CFG80211_REPORT_MGMT(pwdev_priv, IEEE80211_STYPE_PROBE_REQ); break; +#ifdef not_yet case IEEE80211_STYPE_ACTION: /* 0x00D0 */ if (reg > 0) SET_CFG80211_REPORT_MGMT(pwdev_priv, IEEE80211_STYPE_ACTION); @@ -7974,7 +8643,9 @@ static void cfg80211_rtw_update_mgmt_frame_register( padapter = (_adapter *)rtw_netdev_priv(ndev); pwdev_priv = adapter_wdev_data(padapter); - rtw_stypes_mask = BIT(IEEE80211_STYPE_AUTH >> 4); + /* Driver only supports Auth and Probe request */ + rtw_stypes_mask = BIT(IEEE80211_STYPE_AUTH >> 4) | + BIT(IEEE80211_STYPE_PROBE_REQ >> 4); #ifdef CONFIG_DEBUG_CFG80211 RTW_INFO(FUNC_ADPT_FMT " global_stypes:0x%08x interface_stypes:0x%08x\n", @@ -9230,7 +9901,11 @@ exit: } static int cfg80211_rtw_sched_scan_stop(struct wiphy *wiphy, - struct net_device *dev) + struct net_device *dev +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)) + , u64 reqid +#endif +) { return rtw_android_pno_enable(dev, _FALSE); } @@ -9246,12 +9921,12 @@ int cfg80211_rtw_resume(struct wiphy *wiphy) { _adapter *padapter; struct pwrctrl_priv *pwrpriv; struct mlme_priv *pmlmepriv; - padapter = wiphy_to_adapter(wiphy); - pwrpriv = adapter_to_pwrctl(padapter); - pmlmepriv = &padapter->mlmepriv; struct sitesurvey_parm parm; int i, len; + padapter = wiphy_to_adapter(wiphy); + pwrpriv = adapter_to_pwrctl(padapter); + pmlmepriv = &padapter->mlmepriv; RTW_DBG("==> %s\n",__func__); if (pwrpriv->wowlan_last_wake_reason == RX_PNO) { @@ -9283,7 +9958,11 @@ int cfg80211_rtw_resume(struct wiphy *wiphy) { } _enter_critical_bh(&pmlmepriv->lock, &irqL); +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)) + cfg80211_sched_scan_results(padapter->rtw_wdev->wiphy, 0); +#else cfg80211_sched_scan_results(padapter->rtw_wdev->wiphy); +#endif _exit_critical_bh(&pmlmepriv->lock, &irqL); } @@ -9293,361 +9972,6 @@ int cfg80211_rtw_resume(struct wiphy *wiphy) { } #endif /* CONFIG_PNO_SUPPORT */ -static int rtw_cfg80211_set_beacon_wpsp2pie(struct net_device *ndev, char *buf, int len) -{ - int ret = 0; - uint wps_ielen = 0; - u8 *wps_ie; - u32 p2p_ielen = 0; - u8 wps_oui[8] = {0x0, 0x50, 0xf2, 0x04}; - u8 *p2p_ie; - u32 wfd_ielen = 0; - u8 *wfd_ie; - _adapter *padapter = (_adapter *)rtw_netdev_priv(ndev); - struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); - struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); - - RTW_INFO(FUNC_NDEV_FMT" ielen=%d\n", FUNC_NDEV_ARG(ndev), len); - - if (len > 0) { - wps_ie = rtw_get_wps_ie(buf, len, NULL, &wps_ielen); - if (wps_ie) { - #ifdef CONFIG_DEBUG_CFG80211 - RTW_INFO("bcn_wps_ielen=%d\n", wps_ielen); - #endif - - if (pmlmepriv->wps_beacon_ie) { - u32 free_len = pmlmepriv->wps_beacon_ie_len; - pmlmepriv->wps_beacon_ie_len = 0; - rtw_mfree(pmlmepriv->wps_beacon_ie, free_len); - pmlmepriv->wps_beacon_ie = NULL; - } - - pmlmepriv->wps_beacon_ie = rtw_malloc(wps_ielen); - if (pmlmepriv->wps_beacon_ie == NULL) { - RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __FUNCTION__, __LINE__); - return -EINVAL; - - } - - _rtw_memcpy(pmlmepriv->wps_beacon_ie, wps_ie, wps_ielen); - pmlmepriv->wps_beacon_ie_len = wps_ielen; - - update_beacon(padapter, _VENDOR_SPECIFIC_IE_, wps_oui, _TRUE, RTW_CMDF_WAIT_ACK); - - } - - /* buf += wps_ielen; */ - /* len -= wps_ielen; */ - - #ifdef CONFIG_P2P - p2p_ie = rtw_get_p2p_ie(buf, len, NULL, &p2p_ielen); - if (p2p_ie) { - #ifdef CONFIG_DEBUG_CFG80211 - RTW_INFO("bcn_p2p_ielen=%d\n", p2p_ielen); - #endif - - if (pmlmepriv->p2p_beacon_ie) { - u32 free_len = pmlmepriv->p2p_beacon_ie_len; - pmlmepriv->p2p_beacon_ie_len = 0; - rtw_mfree(pmlmepriv->p2p_beacon_ie, free_len); - pmlmepriv->p2p_beacon_ie = NULL; - } - - pmlmepriv->p2p_beacon_ie = rtw_malloc(p2p_ielen); - if (pmlmepriv->p2p_beacon_ie == NULL) { - RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __FUNCTION__, __LINE__); - return -EINVAL; - - } - - _rtw_memcpy(pmlmepriv->p2p_beacon_ie, p2p_ie, p2p_ielen); - pmlmepriv->p2p_beacon_ie_len = p2p_ielen; - - } - #endif /* CONFIG_P2P */ - - - #ifdef CONFIG_WFD - wfd_ie = rtw_get_wfd_ie(buf, len, NULL, &wfd_ielen); - if (wfd_ie) { - #ifdef CONFIG_DEBUG_CFG80211 - RTW_INFO("bcn_wfd_ielen=%d\n", wfd_ielen); - #endif - - if (rtw_mlme_update_wfd_ie_data(pmlmepriv, MLME_BEACON_IE, wfd_ie, wfd_ielen) != _SUCCESS) - return -EINVAL; - } - #endif /* CONFIG_WFD */ - - pmlmeext->bstart_bss = _TRUE; - - } - - return ret; - -} - -static int rtw_cfg80211_set_probe_resp_wpsp2pie(struct net_device *net, char *buf, int len) -{ - int ret = 0; - uint wps_ielen = 0; - u8 *wps_ie; - u32 p2p_ielen = 0; - u8 *p2p_ie; - u32 wfd_ielen = 0; - u8 *wfd_ie; - _adapter *padapter = (_adapter *)rtw_netdev_priv(net); - struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); - -#ifdef CONFIG_DEBUG_CFG80211 - RTW_INFO("%s, ielen=%d\n", __func__, len); -#endif - - if (len > 0) { - wps_ie = rtw_get_wps_ie(buf, len, NULL, &wps_ielen); - if (wps_ie) { - uint attr_contentlen = 0; - u16 uconfig_method, *puconfig_method = NULL; - - #ifdef CONFIG_DEBUG_CFG80211 - RTW_INFO("probe_resp_wps_ielen=%d\n", wps_ielen); - #endif - - if (check_fwstate(pmlmepriv, WIFI_UNDER_WPS)) { - u8 sr = 0; - rtw_get_wps_attr_content(wps_ie, wps_ielen, WPS_ATTR_SELECTED_REGISTRAR, (u8 *)(&sr), NULL); - - if (sr != 0) - RTW_INFO("%s, got sr\n", __func__); - else { - RTW_INFO("GO mode process WPS under site-survey, sr no set\n"); - return ret; - } - } - - if (pmlmepriv->wps_probe_resp_ie) { - u32 free_len = pmlmepriv->wps_probe_resp_ie_len; - pmlmepriv->wps_probe_resp_ie_len = 0; - rtw_mfree(pmlmepriv->wps_probe_resp_ie, free_len); - pmlmepriv->wps_probe_resp_ie = NULL; - } - - pmlmepriv->wps_probe_resp_ie = rtw_malloc(wps_ielen); - if (pmlmepriv->wps_probe_resp_ie == NULL) { - RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __FUNCTION__, __LINE__); - return -EINVAL; - - } - - /* add PUSH_BUTTON config_method by driver self in wpsie of probe_resp at GO Mode */ - puconfig_method = (u16 *)rtw_get_wps_attr_content(wps_ie, wps_ielen, WPS_ATTR_CONF_METHOD , NULL, &attr_contentlen); - if (puconfig_method != NULL) { - /* struct registry_priv *pregistrypriv = &padapter->registrypriv; */ - struct wireless_dev *wdev = padapter->rtw_wdev; - - #ifdef CONFIG_DEBUG_CFG80211 - /* printk("config_method in wpsie of probe_resp = 0x%x\n", be16_to_cpu(*puconfig_method)); */ - #endif - - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) || defined(COMPAT_KERNEL_RELEASE) - /* for WIFI-DIRECT LOGO 4.2.2, AUTO GO can't set PUSH_BUTTON flags */ - if (wdev->iftype == NL80211_IFTYPE_P2P_GO) { - uconfig_method = WPS_CM_PUSH_BUTTON; - uconfig_method = cpu_to_be16(uconfig_method); - - *puconfig_method &= ~uconfig_method; - } - #endif - } - - _rtw_memcpy(pmlmepriv->wps_probe_resp_ie, wps_ie, wps_ielen); - pmlmepriv->wps_probe_resp_ie_len = wps_ielen; - - } - - /* buf += wps_ielen; */ - /* len -= wps_ielen; */ - - #ifdef CONFIG_P2P - p2p_ie = rtw_get_p2p_ie(buf, len, NULL, &p2p_ielen); - if (p2p_ie) { - u8 is_GO = _FALSE; - u32 attr_contentlen = 0; - u16 cap_attr = 0; - - #ifdef CONFIG_DEBUG_CFG80211 - RTW_INFO("probe_resp_p2p_ielen=%d\n", p2p_ielen); - #endif - - /* Check P2P Capability ATTR */ - if (rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_CAPABILITY, (u8 *)&cap_attr, (uint *) &attr_contentlen)) { - u8 grp_cap = 0; - /* RTW_INFO( "[%s] Got P2P Capability Attr!!\n", __FUNCTION__ ); */ - cap_attr = le16_to_cpu(cap_attr); - grp_cap = (u8)((cap_attr >> 8) & 0xff); - - is_GO = (grp_cap & BIT(0)) ? _TRUE : _FALSE; - - if (is_GO) - RTW_INFO("Got P2P Capability Attr, grp_cap=0x%x, is_GO\n", grp_cap); - } - - - if (is_GO == _FALSE) { - if (pmlmepriv->p2p_probe_resp_ie) { - u32 free_len = pmlmepriv->p2p_probe_resp_ie_len; - pmlmepriv->p2p_probe_resp_ie_len = 0; - rtw_mfree(pmlmepriv->p2p_probe_resp_ie, free_len); - pmlmepriv->p2p_probe_resp_ie = NULL; - } - - pmlmepriv->p2p_probe_resp_ie = rtw_malloc(p2p_ielen); - if (pmlmepriv->p2p_probe_resp_ie == NULL) { - RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __FUNCTION__, __LINE__); - return -EINVAL; - - } - _rtw_memcpy(pmlmepriv->p2p_probe_resp_ie, p2p_ie, p2p_ielen); - pmlmepriv->p2p_probe_resp_ie_len = p2p_ielen; - } else { - if (pmlmepriv->p2p_go_probe_resp_ie) { - u32 free_len = pmlmepriv->p2p_go_probe_resp_ie_len; - pmlmepriv->p2p_go_probe_resp_ie_len = 0; - rtw_mfree(pmlmepriv->p2p_go_probe_resp_ie, free_len); - pmlmepriv->p2p_go_probe_resp_ie = NULL; - } - - pmlmepriv->p2p_go_probe_resp_ie = rtw_malloc(p2p_ielen); - if (pmlmepriv->p2p_go_probe_resp_ie == NULL) { - RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __FUNCTION__, __LINE__); - return -EINVAL; - - } - _rtw_memcpy(pmlmepriv->p2p_go_probe_resp_ie, p2p_ie, p2p_ielen); - pmlmepriv->p2p_go_probe_resp_ie_len = p2p_ielen; - } - - } - #endif /* CONFIG_P2P */ - - - #ifdef CONFIG_WFD - wfd_ie = rtw_get_wfd_ie(buf, len, NULL, &wfd_ielen); - #ifdef CONFIG_DEBUG_CFG80211 - RTW_INFO("probe_resp_wfd_ielen=%d\n", wfd_ielen); - #endif - - if (rtw_mlme_update_wfd_ie_data(pmlmepriv, MLME_PROBE_RESP_IE, wfd_ie, wfd_ielen) != _SUCCESS) - return -EINVAL; - #endif /* CONFIG_WFD */ - - } - - return ret; - -} - -static int rtw_cfg80211_set_assoc_resp_wpsp2pie(struct net_device *net, char *buf, int len) -{ - int ret = 0; - _adapter *padapter = (_adapter *)rtw_netdev_priv(net); - struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); - u8 *ie; - u32 ie_len; - - RTW_INFO("%s, ielen=%d\n", __func__, len); - - if (len <= 0) - goto exit; - - ie = rtw_get_wps_ie(buf, len, NULL, &ie_len); - if (ie && ie_len) { - if (pmlmepriv->wps_assoc_resp_ie) { - u32 free_len = pmlmepriv->wps_assoc_resp_ie_len; - - pmlmepriv->wps_assoc_resp_ie_len = 0; - rtw_mfree(pmlmepriv->wps_assoc_resp_ie, free_len); - pmlmepriv->wps_assoc_resp_ie = NULL; - } - - pmlmepriv->wps_assoc_resp_ie = rtw_malloc(ie_len); - if (pmlmepriv->wps_assoc_resp_ie == NULL) { - RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __FUNCTION__, __LINE__); - return -EINVAL; - } - _rtw_memcpy(pmlmepriv->wps_assoc_resp_ie, ie, ie_len); - pmlmepriv->wps_assoc_resp_ie_len = ie_len; - } - - ie = rtw_get_p2p_ie(buf, len, NULL, &ie_len); - if (ie && ie_len) { - if (pmlmepriv->p2p_assoc_resp_ie) { - u32 free_len = pmlmepriv->p2p_assoc_resp_ie_len; - - pmlmepriv->p2p_assoc_resp_ie_len = 0; - rtw_mfree(pmlmepriv->p2p_assoc_resp_ie, free_len); - pmlmepriv->p2p_assoc_resp_ie = NULL; - } - - pmlmepriv->p2p_assoc_resp_ie = rtw_malloc(ie_len); - if (pmlmepriv->p2p_assoc_resp_ie == NULL) { - RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __FUNCTION__, __LINE__); - return -EINVAL; - } - _rtw_memcpy(pmlmepriv->p2p_assoc_resp_ie, ie, ie_len); - pmlmepriv->p2p_assoc_resp_ie_len = ie_len; - } - -#ifdef CONFIG_WFD - ie = rtw_get_wfd_ie(buf, len, NULL, &ie_len); - if (rtw_mlme_update_wfd_ie_data(pmlmepriv, MLME_ASSOC_RESP_IE, ie, ie_len) != _SUCCESS) - return -EINVAL; -#endif - -exit: - return ret; -} - -int rtw_cfg80211_set_mgnt_wpsp2pie(struct net_device *net, char *buf, int len, - int type) -{ - int ret = 0; - uint wps_ielen = 0; - u32 p2p_ielen = 0; - -#ifdef CONFIG_DEBUG_CFG80211 - RTW_INFO("%s, ielen=%d\n", __func__, len); -#endif - - if ((rtw_get_wps_ie(buf, len, NULL, &wps_ielen) && (wps_ielen > 0)) - #ifdef CONFIG_P2P - || (rtw_get_p2p_ie(buf, len, NULL, &p2p_ielen) && (p2p_ielen > 0)) - #endif - ) { - if (net != NULL) { - switch (type) { - case 0x1: /* BEACON */ - ret = rtw_cfg80211_set_beacon_wpsp2pie(net, buf, len); - break; - case 0x2: /* PROBE_RESP */ - ret = rtw_cfg80211_set_probe_resp_wpsp2pie(net, buf, len); - #ifdef CONFIG_P2P - if (ret == 0) - adapter_wdev_data((_adapter *)rtw_netdev_priv(net))->probe_resp_ie_update_time = rtw_get_current_time(); - #endif - break; - case 0x4: /* ASSOC_RESP */ - ret = rtw_cfg80211_set_assoc_resp_wpsp2pie(net, buf, len); - break; - } - } - } - - return ret; - -} - #ifdef CONFIG_80211N_HT static void rtw_cfg80211_init_ht_capab_ex(_adapter *padapter , struct ieee80211_sta_ht_cap *ht_cap, BAND_TYPE band, u8 rf_type) @@ -9709,9 +10033,21 @@ static void rtw_cfg80211_init_ht_capab(_adapter *padapter ht_cap->ht_supported = 1; - ht_cap->cap = IEEE80211_HT_CAP_SUP_WIDTH_20_40 | - IEEE80211_HT_CAP_SGI_40 | IEEE80211_HT_CAP_SGI_20 | - IEEE80211_HT_CAP_DSSSCCK40 | IEEE80211_HT_CAP_MAX_AMSDU; + ht_cap->cap = IEEE80211_HT_CAP_MAX_AMSDU; + + if (TEST_FLAG(regsty->short_gi, BIT0)) + ht_cap->cap |= IEEE80211_HT_CAP_SGI_20; + if (hal_is_bw_support(padapter, CHANNEL_WIDTH_40) + && ((band == BAND_ON_2_4G && REGSTY_IS_BW_2G_SUPPORT(regsty, CHANNEL_WIDTH_40)) + || (band == BAND_ON_5G && REGSTY_IS_BW_5G_SUPPORT(regsty, CHANNEL_WIDTH_40))) + ) { + ht_cap->cap |= IEEE80211_HT_CAP_SUP_WIDTH_20_40; + if (band == BAND_ON_2_4G) + ht_cap->cap |= IEEE80211_HT_CAP_DSSSCCK40; + if (TEST_FLAG(regsty->short_gi, BIT1)) + ht_cap->cap |= IEEE80211_HT_CAP_SGI_40; + } + rtw_cfg80211_init_ht_capab_ex(padapter, ht_cap, band, rf_type); /* @@ -9786,43 +10122,89 @@ void rtw_cfg80211_init_wdev_data(_adapter *padapter) #endif } -void rtw_cfg80211_init_wiphy(_adapter *padapter) +static int rtw_cfg80211_init_wiphy_band(_adapter *padapter, struct wiphy *wiphy) { u8 rf_type; struct ieee80211_supported_band *band; - struct wireless_dev *pwdev = padapter->rtw_wdev; - struct wiphy *wiphy = pwdev->wiphy; + int ret = _FAIL; rf_type = GET_HAL_RFPATH(padapter); RTW_INFO("%s:rf_type=%d\n", __func__, rf_type); if (IsSupported24G(padapter->registrypriv.wireless_mode)) { - band = wiphy->bands[NL80211_BAND_2GHZ]; - if (band) { - #if defined(CONFIG_80211N_HT) - rtw_cfg80211_init_ht_capab(padapter, &band->ht_cap, BAND_ON_2_4G, rf_type); - #endif - } + band = wiphy->bands[NL80211_BAND_2GHZ] = rtw_spt_band_alloc(BAND_ON_2_4G); + if (!band) + goto exit; + rtw_2g_channels_init(band->channels); + rtw_2g_rates_init(band->bitrates); + #if defined(CONFIG_80211N_HT) + rtw_cfg80211_init_ht_capab(padapter, &band->ht_cap, BAND_ON_2_4G, rf_type); + #endif } #if CONFIG_IEEE80211_BAND_5GHZ if (is_supported_5g(padapter->registrypriv.wireless_mode)) { - band = wiphy->bands[NL80211_BAND_5GHZ]; - if (band) { - #if defined(CONFIG_80211N_HT) - rtw_cfg80211_init_ht_capab(padapter, &band->ht_cap, BAND_ON_5G, rf_type); - #endif - #if defined(CONFIG_80211AC_VHT) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)) - rtw_cfg80211_init_vht_capab(padapter, &band->vht_cap, BAND_ON_5G, rf_type); - #endif + band = wiphy->bands[NL80211_BAND_5GHZ] = rtw_spt_band_alloc(BAND_ON_5G); + if (!band) { + if (wiphy->bands[NL80211_BAND_2GHZ]) { + rtw_spt_band_free(wiphy->bands[NL80211_BAND_2GHZ]); + wiphy->bands[NL80211_BAND_2GHZ] = NULL; + } + goto exit; } + rtw_5g_channels_init(band->channels); + rtw_5g_rates_init(band->bitrates); + #if defined(CONFIG_80211N_HT) + rtw_cfg80211_init_ht_capab(padapter, &band->ht_cap, BAND_ON_5G, rf_type); + #endif + #if defined(CONFIG_80211AC_VHT) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)) + rtw_cfg80211_init_vht_capab(padapter, &band->vht_cap, BAND_ON_5G, rf_type); + #endif } #endif - /* copy mac_addr to wiphy */ - _rtw_memcpy(wiphy->perm_addr, adapter_mac_addr(padapter), ETH_ALEN); + ret = _SUCCESS; +exit: + return ret; } +#if !defined(CONFIG_REGD_SRC_FROM_OS) || (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 4, 0)) +void rtw_cfg80211_update_wiphy_max_txpower(_adapter *adapter, struct wiphy *wiphy) +{ + struct ieee80211_supported_band *band; + struct ieee80211_channel *channel; + s16 max_txpwr; + int i; + + if (IsSupported24G(adapter->registrypriv.wireless_mode)) { + band = wiphy->bands[NL80211_BAND_2GHZ]; + if (band) { + max_txpwr = phy_get_txpwr_by_rate_total_max_mbm(adapter, BAND_ON_2_4G, 1, 1); + if (max_txpwr != UNSPECIFIED_MBM) { + for (i = 0; i < band->n_channels; i++) { + channel = &band->channels[i]; + channel->max_power = max_txpwr / MBM_PDBM; + } + } + } + } +#if CONFIG_IEEE80211_BAND_5GHZ + if (is_supported_5g(adapter->registrypriv.wireless_mode)) { + band = wiphy->bands[NL80211_BAND_5GHZ]; + if (band) { + max_txpwr = phy_get_txpwr_by_rate_total_max_mbm(adapter, BAND_ON_5G, 1, 1); + if (max_txpwr != UNSPECIFIED_MBM) { + for (i = 0; i < band->n_channels; i++) { + channel = &band->channels[i]; + channel->max_power = max_txpwr / MBM_PDBM; + } + } + } + } +#endif +} +#endif /* defined(CONFIG_REGD_SRC_FROM_OS) || (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 4, 0)) */ + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 0, 0)) && defined(RTW_SINGLE_WIPHY) && (CONFIG_IFACE_NUMBER >= 2) struct ieee80211_iface_limit rtw_limits[] = { { @@ -9869,10 +10251,14 @@ struct ieee80211_iface_combination rtw_combinations[] = { }; #endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 0, 0)) */ -static void rtw_cfg80211_preinit_wiphy(_adapter *adapter, struct wiphy *wiphy) +static int rtw_cfg80211_init_wiphy(_adapter *adapter, struct wiphy *wiphy) { struct dvobj_priv *dvobj = adapter_to_dvobj(adapter); struct registry_priv *regsty = dvobj_to_regsty(dvobj); + int ret = _FAIL; + + /* copy mac_addr to wiphy */ + _rtw_memcpy(wiphy->perm_addr, adapter_mac_addr(adapter), ETH_ALEN); wiphy->signal_type = CFG80211_SIGNAL_TYPE_MBM; @@ -9889,13 +10275,13 @@ static void rtw_cfg80211_preinit_wiphy(_adapter *adapter, struct wiphy *wiphy) #endif wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) - | BIT(NL80211_IFTYPE_ADHOC) -#ifdef CONFIG_AP_MODE + #ifdef CONFIG_AP_MODE + | BIT(NL80211_IFTYPE_ADHOC) /* todo : AD-HOC task group will refine it */ | BIT(NL80211_IFTYPE_AP) + #endif #ifdef CONFIG_WIFI_MONITOR | BIT(NL80211_IFTYPE_MONITOR) #endif -#endif #if defined(CONFIG_P2P) && ((LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) || defined(COMPAT_KERNEL_RELEASE)) | BIT(NL80211_IFTYPE_P2P_CLIENT) | BIT(NL80211_IFTYPE_P2P_GO) @@ -9916,9 +10302,7 @@ static void rtw_cfg80211_preinit_wiphy(_adapter *adapter, struct wiphy *wiphy) #endif #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) || defined(COMPAT_KERNEL_RELEASE) -#ifdef CONFIG_AP_MODE wiphy->mgmt_stypes = rtw_cfg80211_default_mgmt_stypes; -#endif /* CONFIG_AP_MODE */ #endif #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 0, 0)) @@ -9946,13 +10330,13 @@ static void rtw_cfg80211_preinit_wiphy(_adapter *adapter, struct wiphy *wiphy) #endif } - if (IsSupported24G(adapter->registrypriv.wireless_mode)) - wiphy->bands[NL80211_BAND_2GHZ] = rtw_spt_band_alloc(BAND_ON_2_4G); - -#if CONFIG_IEEE80211_BAND_5GHZ - if (is_supported_5g(adapter->registrypriv.wireless_mode)) - wiphy->bands[NL80211_BAND_5GHZ] = rtw_spt_band_alloc(BAND_ON_5G); -#endif + if (rtw_cfg80211_init_wiphy_band(adapter, wiphy) != _SUCCESS) { + RTW_ERR("rtw_cfg80211_init_wiphy_band fail\n"); + goto exit; + } + #if !defined(CONFIG_REGD_SRC_FROM_OS) || (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 4, 0)) + rtw_cfg80211_update_wiphy_max_txpower(adapter, wiphy); + #endif #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38) && LINUX_VERSION_CODE < KERNEL_VERSION(3, 0, 0)) wiphy->flags |= WIPHY_FLAG_SUPPORTS_SEPARATE_DEFAULT_KEYS; @@ -9965,9 +10349,16 @@ static void rtw_cfg80211_preinit_wiphy(_adapter *adapter, struct wiphy *wiphy) /* wiphy->flags |= WIPHY_FLAG_OFFCHAN_TX | WIPHY_FLAG_HAVE_AP_SME; */ #endif -#if defined(CONFIG_PM) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 0, 0) && \ - LINUX_VERSION_CODE < KERNEL_VERSION(4, 12, 0)) - wiphy->flags |= WIPHY_FLAG_SUPPORTS_SCHED_SCAN; +#if (KERNEL_VERSION(3, 2, 0) <= LINUX_VERSION_CODE) + wiphy->flags |= WIPHY_FLAG_AP_UAPSD; +#endif + +#if defined(CONFIG_PM) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 0, 0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)) + wiphy->max_sched_scan_reqs = 1; +#else + wiphy->flags |= WIPHY_FLAG_SUPPORTS_SCHED_SCAN; +#endif #ifdef CONFIG_PNO_SUPPORT wiphy->max_sched_scan_ssids = MAX_PNO_LIST_COUNT; #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0) @@ -9992,13 +10383,21 @@ static void rtw_cfg80211_preinit_wiphy(_adapter *adapter, struct wiphy *wiphy) #endif /* CONFIG_TDLS_DRIVER_SETUP */ #endif /* CONFIG_TDLS */ - if (regsty->power_mgnt != PS_MODE_ACTIVE) +#ifdef CONFIG_LPS wiphy->flags |= WIPHY_FLAG_PS_ON_BY_DEFAULT; - else +#else wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT; +#endif -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0)) - /* wiphy->flags |= WIPHY_FLAG_SUPPORTS_FW_ROAM; */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)) + wiphy->flags |= WIPHY_FLAG_SUPPORTS_FW_ROAM; +#endif + +#ifdef CONFIG_RTW_WDS + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 33)) + wiphy->flags |= WIPHY_FLAG_4ADDR_AP; + wiphy->flags |= WIPHY_FLAG_4ADDR_STATION; + #endif #endif #ifdef CONFIG_RTW_MESH @@ -10020,16 +10419,38 @@ static void rtw_cfg80211_preinit_wiphy(_adapter *adapter, struct wiphy *wiphy) #endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 3, 0)) */ #endif /* CONFIG_RTW_MESH */ +#if defined(CONFIG_RTW_80211K) && (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)) + wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_RRM); +#endif + #if (KERNEL_VERSION(3, 8, 0) <= LINUX_VERSION_CODE) wiphy->features |= NL80211_FEATURE_SAE; #endif +#ifdef CONFIG_RTW_SCAN_RAND + #if (KERNEL_VERSION(3, 19, 0) <= LINUX_VERSION_CODE) + wiphy->features |= NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR; + #endif +#endif + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0)) #ifdef CONFIG_WIFI_MONITOR /* Currently only for Monitor debugging */ wiphy->flags |= WIPHY_FLAG_SUPPORTS_5_10_MHZ; #endif #endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0)) */ + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 12, 0)) + wiphy->flags |= WIPHY_FLAG_HAS_CHANNEL_SWITCH; +#endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 16, 0)) + wiphy->max_num_csa_counters = MAX_CSA_CNT; +#endif + + ret = _SUCCESS; + +exit: + return ret; } #ifdef CONFIG_RFKILL_POLL @@ -10076,53 +10497,7 @@ static void cfg80211_rtw_rfkill_poll(struct wiphy *wiphy) #define SURVEY_INFO_TIME_TX SURVEY_INFO_CHANNEL_TIME_TX #endif -#ifdef CONFIG_FIND_BEST_CHANNEL -static void rtw_cfg80211_set_survey_info_with_find_best_channel(struct wiphy *wiphy - , struct net_device *netdev, int idx, struct survey_info *info) -{ - _adapter *adapter = (_adapter *)rtw_netdev_priv(netdev); - struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); - RT_CHANNEL_INFO *ch_set = rfctl->channel_set; - u8 ch_num = rfctl->max_chan_nums; - u32 total_rx_cnt = 0; - int i; - - s8 noise = -50; /*channel noise in dBm. This and all following fields are optional */ - u64 time = 100; /*amount of time in ms the radio was turn on (on the channel)*/ - u64 time_busy = 0; /*amount of time the primary channel was sensed busy*/ - - info->filled = SURVEY_INFO_NOISE_DBM - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) - | SURVEY_INFO_TIME | SURVEY_INFO_TIME_BUSY - #endif - ; - - for (i = 0; i < ch_num; i++) - total_rx_cnt += ch_set[i].rx_count; - - time_busy = ch_set[idx].rx_count * time / total_rx_cnt; - noise += ch_set[idx].rx_count * 50 / total_rx_cnt; - -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) - #if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 0)) - info->channel_time = time; - info->channel_time_busy = time_busy; - #else - info->time = time; - info->time_busy = time_busy; - #endif -#endif - info->noise = noise; - - /* reset if final channel is got */ - if (idx == ch_num - 1) { - for (i = 0; i < ch_num; i++) - ch_set[i].rx_count = 0; - } -} -#endif /* CONFIG_FIND_BEST_CHANNEL */ - -#if defined(CONFIG_RTW_ACS) && defined(CONFIG_BACKGROUND_NOISE_MONITOR) +#ifdef CONFIG_RTW_ACS static void rtw_cfg80211_set_survey_info_with_clm(PADAPTER padapter, int idx, struct survey_info *pinfo) { s8 noise = -50; /*channel noise in dBm. This and all following fields are optional */ @@ -10140,7 +10515,7 @@ static void rtw_cfg80211_set_survey_info_with_clm(PADAPTER padapter, int idx, st ; time_busy = rtw_acs_get_clm_ratio_by_ch_idx(padapter, chan); - noise = rtw_noise_query_by_chan_idx(padapter, chan); + noise = rtw_acs_get_nhm_noise_pwr_by_ch_idx(padapter, chan); /* RTW_INFO("%s: ch-idx:%d time=%llu(ms), time_busy=%llu(ms), noise=%d(dbm)\n", __func__, idx, time, time_busy, noise); */ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) @@ -10154,9 +10529,9 @@ static void rtw_cfg80211_set_survey_info_with_clm(PADAPTER padapter, int idx, st #endif pinfo->noise = noise; } -#endif +#endif /* CONFIG_RTW_ACS */ -int rtw_hostapd_acs_dump_survey(struct wiphy *wiphy, struct net_device *netdev, int idx, struct survey_info *info) +static int rtw_hostapd_acs_dump_survey(struct wiphy *wiphy, struct net_device *netdev, int idx, struct survey_info *info) { PADAPTER padapter = (_adapter *)rtw_netdev_priv(netdev); struct rf_ctl_t *rfctl = adapter_to_rfctl(padapter); @@ -10191,19 +10566,18 @@ int rtw_hostapd_acs_dump_survey(struct wiphy *wiphy, struct net_device *netdev, if (info->channel->flags == IEEE80211_CHAN_DISABLED) return ret; -#ifdef CONFIG_FIND_BEST_CHANNEL - rtw_cfg80211_set_survey_info_with_find_best_channel(wiphy, netdev, idx, info); -#elif defined(CONFIG_RTW_ACS) && defined(CONFIG_BACKGROUND_NOISE_MONITOR) +#ifdef CONFIG_RTW_ACS rtw_cfg80211_set_survey_info_with_clm(padapter, idx, info); #else - RTW_ERR("%s: unknown acs operation!\n", __func__); + RTW_ERR("%s: unknown acs operation!\n", __func__); #endif return ret; } #endif /* defined(CONFIG_RTW_HOSTAPD_ACS) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 33)) */ -#if (KERNEL_VERSION(4, 17, 0) <= LINUX_VERSION_CODE) +#if (KERNEL_VERSION(4, 17, 0) <= LINUX_VERSION_CODE) \ + || defined(CONFIG_KERNEL_PATCH_EXTERNAL_AUTH) int cfg80211_rtw_external_auth(struct wiphy *wiphy, struct net_device *dev, struct cfg80211_external_auth_params *params) { @@ -10241,6 +10615,7 @@ void rtw_cfg80211_external_auth_status(struct wiphy *wiphy, struct net_device *d psta = rtw_get_stainfo(pstapriv, params->bssid); if (psta && (params->status == WLAN_STATUS_SUCCESS)) { +#ifdef CONFIG_AP_MODE /* AP mode */ RTW_INFO("station match\n"); @@ -10250,7 +10625,7 @@ void rtw_cfg80211_external_auth_status(struct wiphy *wiphy, struct net_device *d /* ToDo: Kernel v5.1 pmkid is pointer */ /* RTW_INFO_DUMP("PMKID:", params->pmkid, PMKID_LEN); */ - _rtw_set_pmksa(dev, params->bssid, params->pmkid); + rtw_set_pmksa(padapter, params->bssid, params->pmkid); _enter_critical_bh(&psta->lock, &irqL); if ((psta->auth_len != 0) && (psta->pauth_frame != NULL)) { @@ -10272,7 +10647,7 @@ void rtw_cfg80211_external_auth_status(struct wiphy *wiphy, struct net_device *d rtw_ps_deny(padapter, PS_DENY_MGNT_TX); if (_SUCCESS == rtw_pwr_wakeup(padapter)) { - rtw_mi_set_scan_deny(padapter, 1000); + rtw_mi_set_scan_deny(padapter, 1000, "ext_auth"); rtw_mi_scan_abort(padapter, _TRUE); RTW_INFO("SAE: Tx auth Confirm\n"); @@ -10285,12 +10660,131 @@ void rtw_cfg80211_external_auth_status(struct wiphy *wiphy, struct net_device *d buf = NULL; len = 0; } +#endif + } else if (psta && (params->status == WLAN_STATUS_UNSPECIFIED_FAILURE)) { +#ifdef CONFIG_AP_MODE + rtw_cfg80211_indicate_sta_disassoc(padapter, psta->cmn.mac_addr, WLAN_STATUS_UNSPECIFIED_FAILURE); +#endif } else { /* STA mode */ psecuritypriv->extauth_status = params->status; } } +#ifdef CONFIG_AP_MODE +static int check_channel(_adapter* padapter,u8 ch, u8 bw, u8 offset) { + int ret = _SUCCESS; + u8 ifbmp_s = rtw_mi_get_ld_sta_ifbmp(padapter); + u8 u_ch, u_bw, u_offset; + struct rf_ctl_t *rfctl = adapter_to_rfctl(padapter); + struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); + struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; + + u_ch = rtw_mi_get_union_chan(padapter); + u_bw = rtw_mi_get_union_bw(padapter); + u_offset = rtw_mi_get_union_offset(padapter); + + if (rtw_chset_search_ch(rfctl->channel_set, ch) < 0 + || rtw_chset_is_ch_non_ocp(rfctl->channel_set, ch)) { + ret = _FAIL; + RTW_INFO("ch not legal %d,%d,%d\n", ch, bw, offset); + } else if(pmlmeext->cur_channel == ch && pmlmeext->cur_bwmode == bw && pmlmeext->cur_ch_offset == offset) { + /* channel, bandwidth, offset doesn't change */ + ret = _FAIL; + RTW_INFO("ch same, skip switching %d,%d,%d ==> %d,%d,%d (union:%d,%d,%d)\n", + pmlmeext->cur_channel, pmlmeext->cur_bwmode, pmlmeext->cur_ch_offset, ch, bw, offset, u_ch, u_bw, u_offset); + } else if((u_ch != ch || (offset != HAL_PRIME_CHNL_OFFSET_DONT_CARE && u_offset != offset)) && ifbmp_s) { + ret = _FAIL; + RTW_INFO("must follow STA's ch, %d,%d,%d ==> %d,%d,%d (union:%d,%d,%d)\n", + pmlmeext->cur_channel, pmlmeext->cur_bwmode, pmlmeext->cur_ch_offset, ch, bw, offset, u_ch, u_bw, u_offset); + } else { + RTW_INFO("channel switch.%d,%d,%d ==> %d,%d,%d (union:%d,%d,%d)\n", + pmlmeext->cur_channel, pmlmeext->cur_bwmode, pmlmeext->cur_ch_offset, ch, bw, offset, u_ch, u_bw, u_offset); + } + return ret; +} + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 12, 0)) +static int cfg80211_rtw_channel_switch(struct wiphy *wiphy, + struct net_device *dev, + struct cfg80211_csa_settings *params) +{ + _adapter *padapter = NULL; + struct dvobj_priv *dvobj = NULL; + PNDIS_802_11_VARIABLE_IEs pIE; + u8 *ies; + u8 mode = 0, count = 0, bw = CHANNEL_WIDTH_20, ch = 0, offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE, ht = 0, vht = 0, ifbmp = 0, enable = 1; + u32 i, ies_len; + struct rf_ctl_t *rfctl; + + padapter = (_adapter *)rtw_netdev_priv(dev); + dvobj = adapter_to_dvobj(padapter); + rfctl = dvobj_to_rfctl(dvobj); + + ifbmp = rtw_mi_get_ap_mesh_ifbmp(padapter); + + if(params && params->chandef.chan) { + + rtw_get_chbw_from_cfg80211_chan_def(¶ms->chandef, &ht, &ch, &bw, &offset); + + if (check_channel(padapter, ch, bw, offset) == _FAIL) + return -EINVAL; + + if (!ch) { + RTW_INFO(" => ch:%u invalid\n", ch); + return -EINVAL; + } + + /* return error code when switch process is running */ + if(rfctl->ap_csa_en == AP_SWITCH_CH_CSA || rfctl->ap_csa_en == STA_RX_CSA + || rfctl->ap_csa_en == CSA_STA_JOINBSS) + return -EINVAL; + + /* todo, disable vht or something */ + vht = ht && ch > 14 && bw >= CHANNEL_WIDTH_80; + RTW_INFO(" => ch:%u,%u,%u, ht:%u, vht:%u\n", ch, bw, offset, ht, vht); + + if(params->beacon_csa.tail) { + /* dump_ies(RTW_DBGDUMP, (char *) params->beacon_csa.tail, params->beacon_csa.tail_len); */ + ies = (u8 *)params->beacon_csa.tail; + ies_len = params->beacon_csa.tail_len; + for (i = 0; i + 1 < ies_len;) { + pIE = (PNDIS_802_11_VARIABLE_IEs)(ies + i); + + switch (pIE->ElementID) { + case WLAN_EID_CHANNEL_SWITCH: + mode = *(pIE->data); + ch = *(pIE->data + 1); + count = *(pIE->data + 2); + RTW_INFO("CSA IE, mode=%d, ch=%d, count=%d\n", mode, ch, count); + break; + default: + break; + } + i += (pIE->Length + 2); + } + + if (count == 0) { + RTW_INFO("CSA count should not be 0\n"); + return -EINVAL; + } + + if (ifbmp && count > 0) { + rfctl->ap_csa_en = AP_SWITCH_CH_CSA; + rfctl->ap_csa_ch = ch; + rfctl->ap_csa_switch_cnt = count; + rfctl->ap_csa_ch_offset = offset; + rfctl->ap_csa_ch_width = bw; + rtw_set_ap_csa_cmd(padapter); + } + } + } + + return 0; +} +#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 12, 0)) */ +#endif /* CONFIG_AP_MODE */ + static struct cfg80211_ops rtw_cfg80211_ops = { .change_virtual_intf = cfg80211_rtw_change_iface, .add_key = cfg80211_rtw_add_key, @@ -10305,6 +10799,9 @@ static struct cfg80211_ops rtw_cfg80211_ops = { #endif /*CONFIG_GTK_OL*/ .get_station = cfg80211_rtw_get_station, .scan = cfg80211_rtw_scan, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 5, 0)) + .abort_scan = cfg80211_rtw_abort_scan, +#endif .set_wiphy_params = cfg80211_rtw_set_wiphy_params, .connect = cfg80211_rtw_connect, .disconnect = cfg80211_rtw_disconnect, @@ -10319,10 +10816,10 @@ static struct cfg80211_ops rtw_cfg80211_ops = { .del_pmksa = cfg80211_rtw_del_pmksa, .flush_pmksa = cfg80211_rtw_flush_pmksa, -#ifdef CONFIG_AP_MODE .add_virtual_intf = cfg80211_rtw_add_virtual_intf, .del_virtual_intf = cfg80211_rtw_del_virtual_intf, +#ifdef CONFIG_AP_MODE #if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 4, 0)) && !defined(COMPAT_KERNEL_RELEASE) .add_beacon = cfg80211_rtw_add_beacon, .set_beacon = cfg80211_rtw_set_beacon, @@ -10377,14 +10874,13 @@ static struct cfg80211_ops rtw_cfg80211_ops = { .get_channel = cfg80211_rtw_get_channel, #endif -#ifdef CONFIG_P2P .remain_on_channel = cfg80211_rtw_remain_on_channel, .cancel_remain_on_channel = cfg80211_rtw_cancel_remain_on_channel, - #if defined(RTW_DEDICATED_P2P_DEVICE) + +#if defined(CONFIG_P2P) && defined(RTW_DEDICATED_P2P_DEVICE) .start_p2p_device = cfg80211_rtw_start_p2p_device, .stop_p2p_device = cfg80211_rtw_stop_p2p_device, - #endif -#endif /* CONFIG_P2P */ +#endif #ifdef CONFIG_RTW_80211R .update_ft_ies = cfg80211_rtw_update_ft_ies, @@ -10418,9 +10914,15 @@ static struct cfg80211_ops rtw_cfg80211_ops = { #if defined(CONFIG_RTW_HOSTAPD_ACS) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 33)) .dump_survey = rtw_hostapd_acs_dump_survey, #endif -#if (KERNEL_VERSION(4, 17, 0) <= LINUX_VERSION_CODE) +#if (KERNEL_VERSION(4, 17, 0) <= LINUX_VERSION_CODE) \ + || defined(CONFIG_KERNEL_PATCH_EXTERNAL_AUTH) .external_auth = cfg80211_rtw_external_auth, #endif +#ifdef CONFIG_AP_MODE +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 12, 0)) + .channel_switch = cfg80211_rtw_channel_switch, +#endif +#endif /* #ifdef CONFIG_AP_MODE */ }; struct wiphy *rtw_wiphy_alloc(_adapter *padapter, struct device *dev) @@ -10431,7 +10933,7 @@ struct wiphy *rtw_wiphy_alloc(_adapter *padapter, struct device *dev) /* wiphy */ wiphy = wiphy_new(&rtw_cfg80211_ops, sizeof(struct rtw_wiphy_data)); if (!wiphy) { - RTW_INFO("Couldn't allocate wiphy device\n"); + RTW_ERR("Couldn't allocate wiphy device\n"); goto exit; } set_wiphy_dev(wiphy, dev); @@ -10445,7 +10947,13 @@ struct wiphy *rtw_wiphy_alloc(_adapter *padapter, struct device *dev) wiphy_data->txpwr_total_lmt_mbm = UNSPECIFIED_MBM; wiphy_data->txpwr_total_target_mbm = UNSPECIFIED_MBM; - rtw_cfg80211_preinit_wiphy(padapter, wiphy); + rtw_regd_init(wiphy); + + if (rtw_cfg80211_init_wiphy(padapter, wiphy) != _SUCCESS) { + rtw_wiphy_free(wiphy); + wiphy = NULL; + goto exit; + } RTW_INFO(FUNC_WIPHY_FMT"\n", FUNC_WIPHY_ARG(wiphy)); @@ -10460,6 +10968,8 @@ void rtw_wiphy_free(struct wiphy *wiphy) RTW_INFO(FUNC_WIPHY_FMT"\n", FUNC_WIPHY_ARG(wiphy)); + rtw_regd_deinit(wiphy); + if (wiphy->bands[NL80211_BAND_2GHZ]) { rtw_spt_band_free(wiphy->bands[NL80211_BAND_2GHZ]); wiphy->bands[NL80211_BAND_2GHZ] = NULL; @@ -10474,17 +10984,31 @@ void rtw_wiphy_free(struct wiphy *wiphy) int rtw_wiphy_register(struct wiphy *wiphy) { + struct get_chplan_resp *chplan; + int ret; + RTW_INFO(FUNC_WIPHY_FMT"\n", FUNC_WIPHY_ARG(wiphy)); -#if ( ((LINUX_VERSION_CODE < KERNEL_VERSION(5, 3, 0)) && \ - LINUX_VERSION_CODE >= KERNEL_VERSION(3, 14, 0)) \ +#if ( (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 14, 0)) \ || defined(RTW_VENDOR_EXT_SUPPORT) ) rtw_cfgvendor_attach(wiphy); #endif - rtw_regd_init(wiphy); + ret = wiphy_register(wiphy); + if (ret != 0) { + RTW_INFO(FUNC_WIPHY_FMT" wiphy_register() return %d\n", FUNC_WIPHY_ARG(wiphy), ret); + goto exit; + } - return wiphy_register(wiphy); + rtw_chset_hook_os_channels(dvobj_to_rfctl(wiphy_to_dvobj(wiphy))); + + if (rtw_get_chplan_cmd(wiphy_to_adapter(wiphy), RTW_CMDF_DIRECTLY, &chplan) == _SUCCESS) + rtw_regd_change_complete_sync(wiphy, chplan, 1); + else + rtw_warn_on(1); + +exit: + return ret; } void rtw_wiphy_unregister(struct wiphy *wiphy) @@ -10544,11 +11068,6 @@ int rtw_wdev_alloc(_adapter *padapter, struct wiphy *wiphy) pwdev_priv->bandroid_scan = _FALSE; - if (padapter->registrypriv.power_mgnt != PS_MODE_ACTIVE) - pwdev_priv->power_mgmt = _TRUE; - else - pwdev_priv->power_mgmt = _FALSE; - _rtw_mutex_init(&pwdev_priv->roch_mutex); #ifdef CONFIG_CONCURRENT_MODE @@ -10612,7 +11131,12 @@ void rtw_wdev_unregister(struct wireless_dev *wdev) rtw_cfg80211_indicate_scan_done(adapter, _TRUE); #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0)) || defined(COMPAT_KERNEL_RELEASE) - if (wdev->current_bss) { + #if (defined(CONFIG_MLD_KERNEL_PATCH) || (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 19, 2))) + if (wdev->valid_links && wdev->links[0].client.current_bss) + #else + if (wdev->current_bss) + #endif + { RTW_INFO(FUNC_ADPT_FMT" clear current_bss by cfg80211_disconnected\n", FUNC_ADPT_ARG(adapter)); rtw_cfg80211_indicate_disconnect(adapter, 0, 1); } @@ -10664,6 +11188,7 @@ void rtw_cfg80211_ndev_res_free(_adapter *adapter) #endif } + int rtw_cfg80211_ndev_res_register(_adapter *adapter) { #if !defined(RTW_SINGLE_WIPHY) diff --git a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/ioctl_cfg80211.h b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/ioctl_cfg80211.h index a7f48627..f3e6d791 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/ioctl_cfg80211.h +++ b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/ioctl_cfg80211.h @@ -166,7 +166,6 @@ struct rtw_wdev_priv { u8 bandroid_scan; bool block; bool block_scan; - bool power_mgmt; /** * mgmt_regs: bitmap of management frame subtypes registered for the @@ -186,7 +185,7 @@ struct rtw_wdev_priv { ATOMIC_T switch_ch_to; #endif -#ifdef CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI +#if defined(CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI) || defined(CONFIG_RTW_SCAN_RAND) u8 pno_mac_addr[ETH_ALEN]; u16 pno_scan_seq_num; #endif @@ -246,8 +245,12 @@ struct rtw_wiphy_data { struct wireless_dev *pd_wdev; /* P2P device wdev */ #endif - s16 txpwr_total_lmt_mbm; - s16 txpwr_total_target_mbm; + _list async_regd_change_list; + _mutex async_regd_change_mutex; + _workitem async_regd_change_work; + + s16 txpwr_total_lmt_mbm; /* EIRP */ + s16 txpwr_total_target_mbm; /* EIRP */ }; #define rtw_wiphy_priv(wiphy) ((struct rtw_wiphy_data *)wiphy_priv(wiphy)) @@ -299,7 +302,6 @@ s16 rtw_cfg80211_dev_get_total_txpwr_lmt_mbm(struct dvobj_priv *dvobj); s16 rtw_cfg80211_dev_get_total_txpwr_target_mbm(struct dvobj_priv *dvobj); void rtw_cfg80211_init_wdev_data(_adapter *padapter); -void rtw_cfg80211_init_wiphy(_adapter *padapter); void rtw_cfg80211_unlink_bss(_adapter *padapter, struct wlan_network *pnetwork); void rtw_cfg80211_surveydone_event_callback(_adapter *padapter); @@ -319,15 +321,16 @@ void rtw_cfg80211_indicate_scan_done_for_buddy(_adapter *padapter, bool bscan_ab #ifdef CONFIG_AP_MODE void rtw_cfg80211_indicate_sta_assoc(_adapter *padapter, u8 *pmgmt_frame, uint frame_len); void rtw_cfg80211_indicate_sta_disassoc(_adapter *padapter, const u8 *da, unsigned short reason); +int rtw_cfg80211_set_mgnt_wpsp2pie(struct net_device *net, char *buf, int len, int type); #endif /* CONFIG_AP_MODE */ -#ifdef CONFIG_P2P void rtw_cfg80211_set_is_roch(_adapter *adapter, bool val); bool rtw_cfg80211_get_is_roch(_adapter *adapter); bool rtw_cfg80211_is_ro_ch_once(_adapter *adapter); void rtw_cfg80211_set_last_ro_ch_time(_adapter *adapter); s32 rtw_cfg80211_get_last_ro_ch_passing_ms(_adapter *adapter); +#ifdef CONFIG_P2P int rtw_cfg80211_iface_has_p2p_group_cap(_adapter *adapter); int rtw_cfg80211_is_p2p_scan(_adapter *adapter); #if defined(RTW_DEDICATED_P2P_DEVICE) @@ -354,8 +357,6 @@ void rtw_cfg80211_external_auth_request(_adapter *padapter, union recv_frame *rf void rtw_cfg80211_external_auth_status(struct wiphy *wiphy, struct net_device *dev, struct rtw_external_auth_params *params); -int rtw_cfg80211_set_mgnt_wpsp2pie(struct net_device *net, char *buf, int len, int type); - bool rtw_cfg80211_pwr_mgmt(_adapter *adapter); #ifdef CONFIG_RTW_80211K void rtw_cfg80211_rx_rrm_action(_adapter *adapter, union recv_frame *rframe); @@ -427,6 +428,11 @@ void rtw_cfg80211_deinit_rfkill(struct wiphy *wiphy); u8 rtw_cfg80211_ch_switch_notify(_adapter *adapter, u8 ch, u8 bw, u8 offset, u8 ht, bool started); #endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)) && (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 31)) +#define IEEE80211_CHAN_NO_HT40PLUS IEEE80211_CHAN_NO_FAT_ABOVE +#define IEEE80211_CHAN_NO_HT40MINUS IEEE80211_CHAN_NO_FAT_BELOW +#endif + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 26)) && (LINUX_VERSION_CODE < KERNEL_VERSION(4, 7, 0)) #define NL80211_BAND_2GHZ IEEE80211_BAND_2GHZ #define NL80211_BAND_5GHZ IEEE80211_BAND_5GHZ @@ -436,9 +442,11 @@ u8 rtw_cfg80211_ch_switch_notify(_adapter *adapter, u8 ch, u8 bw, u8 offset, u8 #define NUM_NL80211_BANDS IEEE80211_NUM_BANDS #endif -#define rtw_band_to_nl80211_band(band) \ - (band == BAND_ON_2_4G) ? NL80211_BAND_2GHZ : \ - (band == BAND_ON_5G) ? NL80211_BAND_5GHZ : NUM_NL80211_BANDS +extern enum nl80211_band _rtw_band_to_nl80211_band[]; +#define rtw_band_to_nl80211_band(band) (((band) < BAND_MAX) ? _rtw_band_to_nl80211_band[(band)] : NUM_NL80211_BANDS) + +extern BAND_TYPE _nl80211_band_to_rtw_band[]; +#define nl80211_band_to_rtw_band(band) (((band) < NUM_NL80211_BANDS) ? _nl80211_band_to_rtw_band[(band)] : BAND_MAX) #if (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 36)) #define NL80211_TX_POWER_AUTOMATIC TX_POWER_AUTOMATIC @@ -446,6 +454,7 @@ u8 rtw_cfg80211_ch_switch_notify(_adapter *adapter, u8 ch, u8 bw, u8 offset, u8 #define NL80211_TX_POWER_FIXED TX_POWER_FIXED #endif +#include "wifi_regd.h" #include "rtw_cfgvendor.h" #endif /* __IOCTL_CFG80211_H__ */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/ioctl_linux.c b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/ioctl_linux.c index 05709baa..c148dd0d 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/ioctl_linux.c +++ b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/ioctl_linux.c @@ -31,6 +31,7 @@ extern int rtw_ht_enable; #endif + #define RTL_IOCTL_WPA_SUPPLICANT (SIOCIWFIRSTPRIV+30) #define SCAN_ITEM_SIZE 768 @@ -64,32 +65,6 @@ extern u8 convert_ip_addr(u8 hch, u8 mch, u8 lch); u32 rtw_rates[] = {1000000, 2000000, 5500000, 11000000, 6000000, 9000000, 12000000, 18000000, 24000000, 36000000, 48000000, 54000000}; -/** - * hwaddr_aton - Convert ASCII string to MAC address - * @txt: MAC address as a string (e.g., "00:11:22:33:44:55") - * @addr: Buffer for the MAC address (ETH_ALEN = 6 bytes) - * Returns: 0 on success, -1 on failure (e.g., string not a MAC address) - */ -static int hwaddr_aton_i(const char *txt, u8 *addr) -{ - int i; - - for (i = 0; i < 6; i++) { - int a, b; - - a = hex2num_i(*txt++); - if (a < 0) - return -1; - b = hex2num_i(*txt++); - if (b < 0) - return -1; - *addr++ = (a << 4) | b; - if (i < 5 && *txt++ != ':') - return -1; - } - - return 0; -} #ifdef CONFIG_RTW_ANDROID static void indicate_wx_custom_event(_adapter *padapter, char *msg) { @@ -262,6 +237,7 @@ uint rtw_is_cckratesonly_included(u8 *rate) } */ +#ifdef CONFIG_IOCTL_WEXT static int search_p2p_wfd_ie(_adapter *padapter, struct iw_request_info *info, struct wlan_network *pnetwork, char *start, char *stop) @@ -1176,6 +1152,12 @@ static int rtw_set_wpa_ie(_adapter *padapter, char *pie, unsigned short ielen) } } } + + #ifdef CONFIG_RTW_MULTI_AP + padapter->multi_ap = rtw_get_multi_ap_ie_ext(buf, ielen) & MULTI_AP_BACKHAUL_STA; + if (padapter->multi_ap) + adapter_set_use_wds(padapter, 1); + #endif } /* TKIP and AES disallow multicast packets until installing group key */ @@ -1416,15 +1398,19 @@ static int rtw_wx_set_mode(struct net_device *dev, struct iw_request_info *a, goto exit; } - if (rtw_set_802_11_infrastructure_mode(padapter, networkType, 0) == _FALSE) { - - ret = -EPERM; - goto exit; - +#ifdef CONFIG_AP_MODE + if (MLME_IS_AP(padapter) && networkType == Ndis802_11Infrastructure) + rtw_stop_ap_cmd(padapter, RTW_CMDF_WAIT_ACK); + else +#endif + { + if (rtw_set_802_11_infrastructure_mode(padapter, networkType, 0) == _FALSE) { + ret = -EPERM; + goto exit; + } + rtw_setopmode_cmd(padapter, networkType, RTW_CMDF_WAIT_ACK); } - rtw_setopmode_cmd(padapter, networkType, RTW_CMDF_WAIT_ACK); - if (check_fwstate(pmlmepriv, WIFI_MONITOR_STATE) == _TRUE) rtw_indicate_connect(padapter); @@ -1504,7 +1490,6 @@ static int rtw_wx_set_pmkid(struct net_device *dev, _rtw_memcpy(psecuritypriv->PMKIDList[j].PMKID, pPMK->pmkid, IW_PMKID_LEN); psecuritypriv->PMKIDList[j].bUsed = _TRUE; - psecuritypriv->PMKIDIndex = j + 1; blInserted = _TRUE; break; } @@ -2264,7 +2249,7 @@ static int rtw_wx_get_scan(struct net_device *dev, struct iw_request_info *a, && rtw_mlme_band_check(padapter, ch) == _TRUE && _TRUE == rtw_validate_ssid(&(pnetwork->network.Ssid)) && (!IS_DFS_SLAVE_WITH_RD(rfctl) - || rtw_odm_dfs_domain_unknown(rfctl_to_dvobj(rfctl)) + || rtw_rfctl_dfs_domain_unknown(rfctl) || !rtw_chset_is_ch_non_ocp(chset, ch)) ) ev = translate_scan(padapter, a, pnetwork, ev, stop); @@ -3259,6 +3244,7 @@ static int rtw_wx_get_nick(struct net_device *dev, return 0; } +#endif static int rtw_wx_read32(struct net_device *dev, struct iw_request_info *info, @@ -3433,6 +3419,7 @@ static int rtw_wx_priv_rrm(struct net_device *dev, struct iw_request_info *a, } #endif +#ifdef CONFIG_IOCTL_WEXT static int dummy(struct net_device *dev, struct iw_request_info *a, union iwreq_data *wrqu, char *b) { @@ -3444,15 +3431,18 @@ static int dummy(struct net_device *dev, struct iw_request_info *a, return -1; } +#endif static int rtw_wx_set_channel_plan(struct net_device *dev, struct iw_request_info *info, union iwreq_data *wrqu, char *extra) { _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); - u8 channel_plan_req = (u8)(*((int *)wrqu)); + u16 channel_plan_req = (u16)(*((int *)wrqu)); - if (_SUCCESS != rtw_set_channel_plan(padapter, channel_plan_req)) + rtw_chplan_ioctl_input_mapping(&channel_plan_req, NULL); + + if (_SUCCESS != rtw_set_channel_plan(padapter, channel_plan_req, RTW_CHPLAN_6G_UNSPECIFIED, RTW_REGD_SET_BY_USER)) return -EPERM; return 0; @@ -3760,7 +3750,6 @@ static int rtw_get_ap_info(struct net_device *dev, pnetwork = LIST_CONTAINOR(plist, struct wlan_network, list); - /* if(hwaddr_aton_i(pdata->pointer, bssid)) */ if (hwaddr_aton_i(data, bssid)) { RTW_INFO("Invalid BSSID '%s'.\n", (u8 *)data); _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL); @@ -3881,6 +3870,9 @@ static int rtw_wext_p2p_enable(struct net_device *dev, struct wifidirect_info *pwdinfo = &(padapter->wdinfo); struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; enum P2P_ROLE init_role = P2P_ROLE_DISABLE; +#ifdef CONFIG_CONCURRENT_MODE + struct roch_info *prochinfo = &padapter->rochinfo; +#endif if (*extra == '0') init_role = P2P_ROLE_DISABLE; @@ -3911,7 +3903,7 @@ static int rtw_wext_p2p_enable(struct net_device *dev, #ifdef CONFIG_CONCURRENT_MODE else if (rtw_p2p_chk_state(pwdinfo, P2P_STATE_IDLE)) { - _set_timer(&pwdinfo->ap_p2p_switch_timer, pwdinfo->ext_listen_interval); + _set_timer(&prochinfo->ap_roch_ch_switch_timer, pwdinfo->ext_listen_interval); channel = rtw_mi_get_union_chan(padapter); ch_offset = rtw_mi_get_union_offset(padapter); @@ -3946,6 +3938,11 @@ static int rtw_p2p_set_go_nego_ssid(struct net_device *dev, struct wifidirect_info *pwdinfo = &(padapter->wdinfo); RTW_INFO("[%s] ssid = %s, len = %zu\n", __FUNCTION__, extra, strlen(extra)); + if( strlen(extra) > WPS_MAX_DEVICE_NAME_LEN){ + RTW_ERR("Invalid strlen(extra): %zu\n", strlen(extra)); + rtw_warn_on(1); + return -1; + } _rtw_memcpy(pwdinfo->nego_ssid, extra, strlen(extra)); pwdinfo->nego_ssidlen = strlen(extra); @@ -4092,6 +4089,11 @@ static int rtw_p2p_setDN(struct net_device *dev, RTW_INFO("[%s] %s %d\n", __FUNCTION__, extra, wrqu->data.length - 1); _rtw_memset(pwdinfo->device_name, 0x00, WPS_MAX_DEVICE_NAME_LEN); + if( wrqu->data.length - 1 > WPS_MAX_DEVICE_NAME_LEN){ + RTW_ERR("Invalid wrqu->data.length:%d\n", wrqu->data.length - 1); + rtw_warn_on(1); + return -1; + } _rtw_memcpy(pwdinfo->device_name, extra, wrqu->data.length - 1); pwdinfo->device_name_len = wrqu->data.length - 1; @@ -4318,6 +4320,7 @@ static int rtw_p2p_get_wps_configmethod(struct net_device *dev, wpsie = rtw_get_wps_ie_from_scan_queue(&pnetwork->network.IEs[0], pnetwork->network.IELength, NULL, &wpsie_len, pnetwork->network.Reserved[0]); if (wpsie) { + attr_contentlen = sizeof(attr_content); rtw_get_wps_attr_content(wpsie, wpsie_len, WPS_ATTR_CONF_METHOD, (u8 *)&attr_content, &attr_contentlen); if (attr_contentlen) { attr_content = be16_to_cpu(attr_content); @@ -4451,6 +4454,7 @@ static int rtw_p2p_get_go_device_address(struct net_device *dev, /* The P2P Device Info attribute is included in the probe response frame. */ _rtw_memset(attr_content, 0x00, 100); + attr_contentlen = sizeof(attr_content); if (rtw_get_p2p_attr_content(p2pie, p2pielen, P2P_ATTR_DEVICE_ID, attr_content, &attr_contentlen)) { /* Handle the P2P Device ID attribute of Beacon first */ blnMatch = 1; @@ -4533,6 +4537,7 @@ static int rtw_p2p_get_device_type(struct net_device *dev, wpsie = rtw_get_wps_ie_from_scan_queue(&pnetwork->network.IEs[0], pnetwork->network.IELength, NULL, &wpsie_len, pnetwork->network.Reserved[0]); if (wpsie) { + dev_type_len = sizeof(dev_type); rtw_get_wps_attr_content(wpsie, wpsie_len, WPS_ATTR_PRIMARY_DEV_TYPE, dev_type, &dev_type_len); if (dev_type_len) { u16 type = 0; @@ -4607,6 +4612,7 @@ static int rtw_p2p_get_device_name(struct net_device *dev, wpsie = rtw_get_wps_ie_from_scan_queue(&pnetwork->network.IEs[0], pnetwork->network.IELength, NULL, &wpsie_len, pnetwork->network.Reserved[0]); if (wpsie) { + dev_len = sizeof(dev_name); rtw_get_wps_attr_content(wpsie, wpsie_len, WPS_ATTR_DEVICE_NAME, dev_name, &dev_len); if (dev_len) { sprintf(dev_name_str, "\n\nN=%s", dev_name); @@ -4647,7 +4653,7 @@ static int rtw_p2p_get_invitation_procedure(struct net_device *dev, struct wlan_network *pnetwork = NULL; u8 blnMatch = 0; u8 *p2pie; - uint p2pielen = 0, attr_contentlen = 0; + uint p2pielen = 0, attr_contentlen = 2; u8 attr_content[2] = { 0x00 }; u8 inv_proc_str[P2P_PRIVATE_IOCTL_SET_LEN] = { 0x00 }; @@ -4678,6 +4684,7 @@ static int rtw_p2p_get_invitation_procedure(struct net_device *dev, if (p2pie) { while (p2pie) { /* _rtw_memset( attr_content, 0x00, 2); */ + attr_contentlen = sizeof(attr_content); if (rtw_get_p2p_attr_content(p2pie, p2pielen, P2P_ATTR_CAPABILITY, attr_content, &attr_contentlen)) { /* Handle the P2P capability attribute */ blnMatch = 1; @@ -4729,6 +4736,9 @@ static int rtw_p2p_connect(struct net_device *dev, _queue *queue = &(pmlmepriv->scanned_queue); struct wlan_network *pnetwork = NULL; uint uintPeerChannel = 0; +#ifdef CONFIG_CONCURRENT_MODE + struct roch_info *prochinfo = &padapter->rochinfo; +#endif /* Commented by Albert 20110304 */ /* The input data contains two informations. */ @@ -4782,7 +4792,7 @@ static int rtw_p2p_connect(struct net_device *dev, if (uintPeerChannel) { #ifdef CONFIG_CONCURRENT_MODE if (rtw_mi_check_status(padapter, MI_LINKED)) - _cancel_timer_ex(&pwdinfo->ap_p2p_switch_timer); + _cancel_timer_ex(&prochinfo->ap_roch_ch_switch_timer); #endif /* CONFIG_CONCURRENT_MODE */ _rtw_memset(&pwdinfo->nego_req_info, 0x00, sizeof(struct tx_nego_req_info)); @@ -4847,9 +4857,12 @@ static int rtw_p2p_invite_req(struct net_device *dev, uint uintPeerChannel = 0; u8 attr_content[50] = { 0x00 }; u8 *p2pie; - uint p2pielen = 0, attr_contentlen = 0; + uint p2pielen = 0, attr_contentlen = 50; _irqL irqL; struct tx_invite_req_info *pinvite_req_info = &pwdinfo->invitereq_info; +#ifdef CONFIG_CONCURRENT_MODE + struct roch_info *prochinfo = &padapter->rochinfo; +#endif /* Commented by Albert 20120321 */ /* The input data contains two informations. */ @@ -4902,6 +4915,7 @@ static int rtw_p2p_invite_req(struct net_device *dev, /* The P2P Device ID attribute is included in the Beacon frame. */ /* The P2P Device Info attribute is included in the probe response frame. */ + attr_contentlen = sizeof(attr_content); if (rtw_get_p2p_attr_content(p2pie, p2pielen, P2P_ATTR_DEVICE_ID, attr_content, &attr_contentlen)) { /* Handle the P2P Device ID attribute of Beacon first */ if (_rtw_memcmp(attr_content, pinvite_req_info->peer_macaddr, ETH_ALEN)) { @@ -4961,7 +4975,7 @@ static int rtw_p2p_invite_req(struct net_device *dev, if (uintPeerChannel) { #ifdef CONFIG_CONCURRENT_MODE if (rtw_mi_check_status(padapter, MI_LINKED)) - _cancel_timer_ex(&pwdinfo->ap_p2p_switch_timer); + _cancel_timer_ex(&prochinfo->ap_roch_ch_switch_timer); #endif /* CONFIG_CONCURRENT_MODE */ /* Store the GO's bssid */ @@ -5117,7 +5131,7 @@ static int rtw_p2p_set_pc(struct net_device *dev, struct wlan_network *pnetwork = NULL; u8 attr_content[50] = { 0x00 }; u8 *p2pie; - uint p2pielen = 0, attr_contentlen = 0; + uint p2pielen = 0, attr_contentlen = 50; _irqL irqL; uint uintPeerChannel = 0; @@ -5157,6 +5171,7 @@ static int rtw_p2p_set_pc(struct net_device *dev, /* The P2P Device ID attribute is included in the Beacon frame. */ /* The P2P Device Info attribute is included in the probe response frame. */ printk("[%s] Got P2P IE\n", __FUNCTION__); + attr_contentlen = sizeof(attr_content); if (rtw_get_p2p_attr_content(p2pie, p2pielen, P2P_ATTR_DEVICE_ID, attr_content, &attr_contentlen)) { /* Handle the P2P Device ID attribute of Beacon first */ printk("[%s] P2P_ATTR_DEVICE_ID\n", __FUNCTION__); @@ -5329,8 +5344,11 @@ static int rtw_p2p_prov_disc(struct net_device *dev, uint uintPeerChannel = 0; u8 attr_content[100] = { 0x00 }; u8 *p2pie; - uint p2pielen = 0, attr_contentlen = 0; + uint p2pielen = 0, attr_contentlen = 100; _irqL irqL; +#ifdef CONFIG_CONCURRENT_MODE + struct roch_info *prochinfo = &padapter->rochinfo; +#endif /* Commented by Albert 20110301 */ /* The input data contains two informations. */ @@ -5395,7 +5413,7 @@ static int rtw_p2p_prov_disc(struct net_device *dev, while (p2pie) { /* The P2P Device ID attribute is included in the Beacon frame. */ /* The P2P Device Info attribute is included in the probe response frame. */ - + attr_contentlen = sizeof(attr_content); if (rtw_get_p2p_attr_content(p2pie, p2pielen, P2P_ATTR_DEVICE_ID, attr_content, &attr_contentlen)) { /* Handle the P2P Device ID attribute of Beacon first */ if (_rtw_memcmp(attr_content, peerMAC, ETH_ALEN)) { @@ -5460,7 +5478,7 @@ static int rtw_p2p_prov_disc(struct net_device *dev, RTW_INFO("[%s] peer channel: %d!\n", __FUNCTION__, uintPeerChannel); #ifdef CONFIG_CONCURRENT_MODE if (rtw_mi_check_status(padapter, MI_LINKED)) - _cancel_timer_ex(&pwdinfo->ap_p2p_switch_timer); + _cancel_timer_ex(&prochinfo->ap_roch_ch_switch_timer); #endif /* CONFIG_CONCURRENT_MODE */ _rtw_memcpy(pwdinfo->tx_prov_disc_info.peerIFAddr, pnetwork->network.MacAddress, ETH_ALEN); _rtw_memcpy(pwdinfo->tx_prov_disc_info.peerDevAddr, peerMAC, ETH_ALEN); @@ -5768,8 +5786,9 @@ static int rtw_dbg_port(struct net_device *dev, struct iw_request_info *info, union iwreq_data *wrqu, char *extra) { - _irqL irqL; int ret = 0; +#ifdef CONFIG_RTW_DEBUG + _irqL irqL; u8 major_cmd, minor_cmd; u16 arg; u32 extra_arg, *pdata, val32; @@ -6589,11 +6608,12 @@ static int rtw_dbg_port(struct net_device *dev, break; } - +#endif return ret; } +#ifdef CONFIG_IOCTL_WEXT static int wpa_set_param(struct net_device *dev, u8 name, u32 value) { uint ret = 0; @@ -7730,7 +7750,7 @@ out: return ret; } -#endif +#endif /* CONFIG_AP_MODE */ static int rtw_wx_set_priv(struct net_device *dev, struct iw_request_info *info, @@ -7757,7 +7777,6 @@ static int rtw_wx_set_priv(struct net_device *dev, len = dwrq->length; ext = rtw_vmalloc(len); - if (!ext) return -ENOMEM; @@ -7765,7 +7784,7 @@ static int rtw_wx_set_priv(struct net_device *dev, rtw_vmfree(ext, len); return -EFAULT; } - ext[len - 1] = '\0'; + #ifdef CONFIG_DEBUG_RTW_WX_SET_PRIV @@ -7865,7 +7884,7 @@ static int rtw_wx_set_priv(struct net_device *dev, case ANDROID_WIFI_CMD_COUNTRY: { char country_code[10]; sscanf(ext, "%*s %s", country_code); - rtw_set_country(padapter, country_code); + rtw_set_country(padapter, country_code, RTW_REGD_SET_BY_USER); sprintf(ext, "OK"); } break; @@ -7876,7 +7895,9 @@ static int rtw_wx_set_priv(struct net_device *dev, #endif sprintf(ext, "OK"); + } + if (copy_to_user(dwrq->pointer, ext, min(dwrq->length, (u16)(strlen(ext) + 1)))) ret = -EFAULT; @@ -7900,6 +7921,8 @@ FREE_EXT: return ret; } +#endif /*CONFIG_IOCTL_WEXT*/ + #ifdef CONFIG_WOWLAN static int rtw_wowlan_ctrl(struct net_device *dev, struct iw_request_info *info, @@ -7981,7 +8004,7 @@ static int rtw_wowlan_set_pattern(struct net_device *dev, struct mlme_priv *pmlmepriv = &padapter->mlmepriv; struct wowlan_ioctl_param poidparam; int ret = 0; - u8 input[wrqu->data.length]; + u8 input[MAX_IN_PATTERN_SIZE]; u8 index = 0; poidparam.subcode = 0; @@ -7993,20 +8016,19 @@ static int rtw_wowlan_set_pattern(struct net_device *dev, goto _rtw_wowlan_set_pattern_exit; } - if (wrqu->data.length <= 0) { + if ((wrqu->data.length <= 0) || (wrqu->data.length > MAX_IN_PATTERN_SIZE)) { ret = -EFAULT; - RTW_INFO("ERROR: parameter length <= 0\n"); + RTW_INFO("ERROR: parameter length error, len=%d\n", wrqu->data.length); goto _rtw_wowlan_set_pattern_exit; } else { /* set pattern */ if (copy_from_user(input, wrqu->data.pointer, wrqu->data.length)) return -EFAULT; - input[wrqu->data.length - 1] = '\0'; /* leave PS first */ rtw_ps_deny(padapter, PS_DENY_IOCTL); LeaveAllPowerSaveModeDirect(padapter); - if (strncmp(input, "pattern=", 8) == 0) { + if ((strncmp(input, "pattern=", 8) == 0) ||(strncmp(input, "ack_pattern=", 12) == 0)) { if (pwrpriv->wowlan_pattern_idx >= MAX_WKFM_CAM_NUM) { RTW_INFO("WARNING: priv-pattern is full(idx: %d)\n", pwrpriv->wowlan_pattern_idx); @@ -8020,11 +8042,25 @@ static int rtw_wowlan_set_pattern(struct net_device *dev, &pwrpriv->patterns[index].len, pwrpriv->patterns[index].mask); - if (ret == _TRUE) + if (ret == _TRUE) { + #ifdef CONFIG_WOW_KEEP_ALIVE_PATTERN + if(strncmp(input, "ack_pattern=", 12) == 0) + pwrpriv->wowlan_keep_alive_ack_index = index; + else + pwrpriv->wowlan_wake_pattern_index = index; + RTW_INFO("pwrpriv->wowlan_keep_alive_ack_index =%d\n",pwrpriv->wowlan_keep_alive_ack_index); + RTW_INFO("pwrpriv->wowlan_wake_pattern_index =%d\n",pwrpriv->wowlan_wake_pattern_index); + #endif /*CONFIG_WOW_KEEP_ALIVE_PATTERN*/ pwrpriv->wowlan_pattern_idx++; + } } } else if (strncmp(input, "clean", 5) == 0) { poidparam.subcode = WOWLAN_PATTERN_CLEAN; + #ifdef CONFIG_WOW_KEEP_ALIVE_PATTERN + pwrpriv->wowlan_wake_pattern_index = 0xFF; + pwrpriv->wowlan_keep_alive_ack_index = 0xFF; + #endif /*CONFIG_WOW_KEEP_ALIVE_PATTERN*/ + rtw_hal_set_hwreg(padapter, HW_VAR_WOWLAN, (u8 *)&poidparam); } else if (strncmp(input, "show", 4) == 0) { @@ -8039,6 +8075,105 @@ static int rtw_wowlan_set_pattern(struct net_device *dev, _rtw_wowlan_set_pattern_exit: return ret; } + +#ifdef CONFIG_WOW_KEEP_ALIVE_PATTERN +static int rtw_wowlan_set_keep_alive_pattern(struct net_device *dev, struct iw_request_info *info, union iwreq_data *wrqu, char *extra) +{ + _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); + struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter); + + int ret = 0,totoal_len=0,i=0,len=0; + char *cp = NULL; + u32 mode = 0xFF; /*para1*/ + u16 period = 15*10; /* para2;units:100ms,default 15s*/ + char tx_pattern[512]; /*para3*/ + u32 retry_intervel = 2*10; /* para4;units:100ms,default 2s*/ + u32 retry_limit_count = 5; /*para5*/ + + ret = sscanf(extra, "%d %hu %s %d %d", &mode , &period, tx_pattern, &retry_intervel, &retry_limit_count); + pwrpriv->wowlan_keep_alive_mode = mode; + + RTW_INFO("[%s] ret =%d \n", __func__ ,ret); + totoal_len = strlen(tx_pattern); + RTW_INFO("[%s] totoal_len=%d \n", __func__ ,totoal_len); + + if (mode && (ret < 3)) + return -EINVAL; + + if (((mode ==2) ||(mode ==3)) && ((retry_intervel*retry_limit_count) > period)) { + RTW_INFO("[%s] retry_intervel*retry_limit_count need smaller than period\n", __func__ ); + return -EINVAL; + } + + switch(mode){ + case wow_keep_alive_pattern_disable: + /*disable this feature*/ + pwrpriv->keep_alive_pattern_loc = 0; + pwrpriv->keep_alive_pattern_len = 0; + pwrpriv->wowlan_keep_alive_period = 0; + pwrpriv->wowlan_keep_alive_ack_index = 0xFF; + pwrpriv->wowlan_wake_pattern_index = 0xFF; + pwrpriv->wowlan_keep_alive_retry_interval = 0; + pwrpriv->wowlan_keep_alive_retry_counter = 0; + _rtw_memset(pwrpriv->keep_alive_pattern,0,WLAN_MAX_KEEP_ALIVE_IE_LEN); + RTW_INFO("[%s] clear pattern \n", __func__ ); + ret = _SUCCESS; + break; + case wow_keep_alive_pattern_tx: + /*only tx udp packet*/ + pwrpriv->wowlan_keep_alive_period = period; + pwrpriv->wowlan_keep_alive_retry_interval = 0; + pwrpriv->wowlan_keep_alive_retry_counter = 0; + RTW_INFO("[%s] wow_keep_alive_pattern_tx \n", __func__ ); + break; + case wow_keep_alive_pattern_trx: + /*trx+no need wakeup*/ + pwrpriv->wowlan_keep_alive_period = period; + pwrpriv->wowlan_keep_alive_retry_interval = retry_intervel; + pwrpriv->wowlan_keep_alive_retry_counter = retry_limit_count; + RTW_INFO("[%s] wow_keep_alive_pattern_trx \n", __func__ ); + break; + case wow_keep_alive_pattern_trx_with_ack: + /*trx+need wakeup*/ + pwrpriv->wowlan_keep_alive_period = period; + pwrpriv->wowlan_keep_alive_retry_interval = retry_intervel; + pwrpriv->wowlan_keep_alive_retry_counter = retry_limit_count; + RTW_INFO("[%s] wow_keep_alive_pattern_trx_with_ack \n", __func__ ); + break; + default: + RTW_INFO("[%s] please setting valid mode \n", __func__ ); + ret = -EINVAL; + break; + + } + + if((mode == 0) || (mode > 4)) + return ret; + + totoal_len = strlen(tx_pattern); + RTW_INFO("[%s] totoal_len=%d \n", __func__ ,totoal_len); + if (totoal_len > WLAN_MAX_KEEP_ALIVE_IE_LEN*2) { + RTW_INFO("[%s] Fail , not support ie length extend %d\n", __func__ , WLAN_MAX_KEEP_ALIVE_IE_LEN); + return -EFAULT; + } + RTW_INFO("[%s] period = %hu ,ie = %s , len = %d\n", __func__ , period , tx_pattern , totoal_len); + + + if (totoal_len > 0) { + RTW_INFO("[%s] pwrpriv->keep_alive_pattern==========> \n", __func__ ); + for (i = 0 ; i keep_alive_pattern[len] = key_2char2num(tx_pattern[i], tx_pattern[i + 1]); + RTW_INFO("[0x%x] ",pwrpriv->keep_alive_pattern[len]); + len++; + } + RTW_INFO(" \n" ); + pwrpriv->keep_alive_pattern_len = len; + } + + return ret; +} +#endif /*CONFIG_WOW_KEEP_ALIVE_PATTERN*/ + #endif /* CONFIG_WOWLAN */ #ifdef CONFIG_AP_WOWLAN @@ -8342,6 +8477,30 @@ _clear_path: } #endif +static int rtw_get_ic_type(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); + struct pwrctrl_priv *pwrctrlpriv = adapter_to_pwrctl(padapter); + char *pstring = extra; + u8 regdata; + + _rtw_memset(pstring, 0, wrqu->data.length); + + regdata = (rtw_read32(padapter, 0xF0) & 0xf000) >> 12; + RTW_INFO("%s: f0[15:12]= 0x%x\n", __FUNCTION__, regdata); + + if (regdata == 0x04) + pstring += sprintf(pstring , ":%s\n" ,"rtl8822c-vbs"); + else + pstring += sprintf(pstring , ":%s\n" ,"rtl8822c-vs"); + + wrqu->data.length = strlen(extra); + + return 0; +} + static int rtw_mp_efuse_get(struct net_device *dev, struct iw_request_info *info, union iwreq_data *wdata, char *extra) @@ -9751,37 +9910,45 @@ static int rtw_mp_efuse_set(struct net_device *dev, RTW_INFO("%s: MAC address=%s\n", __FUNCTION__, tmp[1]); for (jj = 0, kk = 0; jj < cnts; jj++, kk += 2) - pEfuseHal->fakeEfuseModifiedMap[addr + jj] = key_2char2num(tmp[1][kk], tmp[1][kk + 1]); + if ((addr + jj) < EFUSE_MAX_MAP_LEN) + pEfuseHal->fakeEfuseModifiedMap[addr + jj] = key_2char2num(tmp[1][kk], tmp[1][kk + 1]); _rtw_memset(extra, '\0', strlen(extra)); sprintf(extra, "write mac addr to fake map OK\n"); } else if(strcmp(tmp[0], "update") == 0) { - RTW_INFO("To Use new eFuse map\n"); - /*step read efuse/eeprom data and get mac_addr*/ - rtw_hal_read_chip_info(padapter); - /* set mac addr*/ - rtw_macaddr_cfg(adapter_mac_addr(padapter), get_hal_mac_addr(padapter)); - _rtw_memcpy(padapter->pnetdev->dev_addr, get_hal_mac_addr(padapter), ETH_ALEN); /* set mac addr to net_device */ + RTW_INFO("To Use new eFuse map ver3\n"); -#ifdef CONFIG_P2P - rtw_init_wifidirect_addrs(padapter, adapter_mac_addr(padapter), adapter_mac_addr(padapter)); -#endif -#ifdef CONFIG_MI_WITH_MBSSID_CAM - rtw_hal_change_macaddr_mbid(padapter, adapter_mac_addr(padapter)); -#else - rtw_hal_set_hwreg(padapter, HW_VAR_MAC_ADDR, adapter_mac_addr(padapter)); /* set mac addr to mac register */ -#endif - /*pHalFunc->hal_deinit(padapter);*/ - if (pHalFunc->hal_init(padapter) == _FAIL) { - err = -EINVAL; - goto exit; + if (tmp[1] != 0x00) { + if (strcmp(tmp[1], "fake") == 0) { + pmp_priv->efuse_update_on = _TRUE; + RTW_INFO("Set efuse update without file\n"); + } else if (strcmp(tmp[1], "phy") == 0) { + pmp_priv->efuse_update_file = _FALSE; + pmp_priv->efuse_update_on = _FALSE; + RTW_INFO("Set efuse update with phy\n"); + } else { + pmp_priv->efuse_update_file = _TRUE; + strcpy(pmp_priv->efuse_file_path , tmp[1]); + RTW_INFO("Got file path %s\n", pmp_priv->efuse_file_path); + } + } + /*step read efuse/eeprom data and get mac_addr*/ + if (padapter->hal_func.read_adapter_info(padapter)) { + _rtw_memset(extra, '\0', strlen(extra)); + #ifdef CONFIG_TXPWR_PG_WITH_PWR_IDX + if (pHalData->txpwr_pg_mode == TXPWR_PG_WITH_PWR_IDX) + hal_load_txpwr_info(padapter); + #endif + phy_load_tx_power_ext_info(padapter, 1); + sprintf(extra, "eFuse Update OK\n"); + RTW_INFO("eFuse Update OK\n"); + } else { + _rtw_memset(extra, '\0', strlen(extra)); + sprintf(extra, "eFuse Update FAIL\n"); + RTW_INFO("eFuse Update FAIL\n"); } - pHalData->current_channel = 0; - pHalData->current_channel_bw = CHANNEL_WIDTH_MAX; - pHalData->current_band_type = BAND_MAX; - _rtw_memset(extra, '\0', strlen(extra)); - sprintf(extra, "eFuse Update OK\n"); + RTW_INFO("To Use new eFuse map ver3 done\n"); } else if (strcmp(tmp[0], "analyze") == 0) { rtw_efuse_analyze(padapter, EFUSE_WIFI, 0); @@ -10114,8 +10281,12 @@ static int rtw_priv_mp_get(struct net_device *dev, status = rtw_efuse_file_map(dev, info, wdata, extra); break; case EFUSE_FILE_STORE: +#if !defined(CONFIG_RTW_ANDROID_GKI) RTW_INFO("mp_get EFUSE_FILE_STORE\n"); status = rtw_efuse_file_map_store(dev, info, wdata, extra); +#else + RTW_ERR("Android GKI doesn't support: mp_get EFUSE_FILE_STORE\n"); +#endif /* !defined(CONFIG_RTW_ANDROID_GKI) */ break; case MP_TX: RTW_INFO("mp_get MP_TX\n"); @@ -10357,6 +10528,13 @@ static int rtw_priv_set(struct net_device *dev, RTW_INFO("set case MP_WOW_SET_PATTERN: %s\n", extra); rtw_wowlan_set_pattern(dev, info, wdata, extra); break; + #ifdef CONFIG_WOW_KEEP_ALIVE_PATTERN + case MP_WOW_SET_KEEP_ALIVE_PATTERN: + RTW_INFO("set case MP_WOW_SET_KEEP_ALIVE_PATTERN: %s\n", extra); + rtw_wowlan_set_keep_alive_pattern(dev, info, wdata, extra); + break; + #endif /*CONFIG_WOW_KEEP_ALIVE_PATTERN*/ + #endif #ifdef CONFIG_AP_WOWLAN case MP_AP_WOW_ENABLE: @@ -10446,6 +10624,10 @@ static int rtw_priv_get(struct net_device *dev, rtw_vendor_ie_get(dev , info , wdata , extra); break; #endif + case GET_IC_TYPE: + RTW_INFO("get IC Type\n"); + rtw_get_ic_type(dev , info , wdata , extra); + break; default: return -EIO; } @@ -10670,6 +10852,9 @@ static int rtw_tdls_ch_switch(struct net_device *dev, rtw_hal_get_hwreg(padapter, HW_VAR_CH_SW_NEED_TO_TAKE_CARE_IQK_INFO, &take_care_iqk); if (take_care_iqk == _TRUE) { +#ifdef CONFIG_TDLS_CH_SW_V2 + rtw_tdls_cmd(padapter, ptdls_sta->cmn.mac_addr, TDLS_CH_SW_PREPARE); +#else u8 central_chnl; u8 bw_mode; @@ -10679,6 +10864,7 @@ static int rtw_tdls_ch_switch(struct net_device *dev, rtw_tdls_cmd(padapter, ptdls_sta->cmn.mac_addr, TDLS_CH_SW_START); else rtw_tdls_cmd(padapter, ptdls_sta->cmn.mac_addr, TDLS_CH_SW_PREPARE); +#endif } else rtw_tdls_cmd(padapter, ptdls_sta->cmn.mac_addr, TDLS_CH_SW_START); @@ -11302,7 +11488,7 @@ static int rtw_tdls_get(struct net_device *dev, #if defined(CONFIG_RTL8188E) #include extern void rtl8188e_cal_txdesc_chksum(struct tx_desc *ptxdesc); -#define cal_txdesc_chksum rtl8188e_cal_txdesc_chksum +#define cal_txdesc_chksum(padapter, desc) rtl8188e_cal_txdesc_chksum(desc) #ifdef CONFIG_SDIO_HCI || defined(CONFIG_GSPI_HCI) extern void rtl8188es_fill_default_txdesc(struct xmit_frame *pxmitframe, u8 *pbuf); #define fill_default_txdesc rtl8188es_fill_default_txdesc @@ -11310,33 +11496,33 @@ extern void rtl8188es_fill_default_txdesc(struct xmit_frame *pxmitframe, u8 *pbu #endif /* CONFIG_RTL8188E */ #if defined(CONFIG_RTL8723B) extern void rtl8723b_cal_txdesc_chksum(struct tx_desc *ptxdesc); -#define cal_txdesc_chksum rtl8723b_cal_txdesc_chksum +#define cal_txdesc_chksum(padapter, desc) rtl8723b_cal_txdesc_chksum(desc) extern void rtl8723b_fill_default_txdesc(struct xmit_frame *pxmitframe, u8 *pbuf); #define fill_default_txdesc rtl8723b_fill_default_txdesc #endif /* CONFIG_RTL8723B */ #if defined(CONFIG_RTL8703B) /* extern void rtl8703b_cal_txdesc_chksum(struct tx_desc *ptxdesc); */ -#define cal_txdesc_chksum rtl8703b_cal_txdesc_chksum +#define cal_txdesc_chksum(padapter, desc) rtl8703b_cal_txdesc_chksum(desc) /* extern void rtl8703b_fill_default_txdesc(struct xmit_frame *pxmitframe, u8 *pbuf); */ #define fill_default_txdesc rtl8703b_fill_default_txdesc #endif /* CONFIG_RTL8703B */ #if defined(CONFIG_RTL8723D) /* extern void rtl8723d_cal_txdesc_chksum(struct tx_desc *ptxdesc); */ -#define cal_txdesc_chksum rtl8723d_cal_txdesc_chksum +#define cal_txdesc_chksum(padapter, desc) rtl8723d_cal_txdesc_chksum(desc) /* extern void rtl8723d_fill_default_txdesc(struct xmit_frame *pxmitframe, u8 *pbuf); */ #define fill_default_txdesc rtl8723d_fill_default_txdesc #endif /* CONFIG_RTL8723D */ #if defined(CONFIG_RTL8710B) -#define cal_txdesc_chksum rtl8710b_cal_txdesc_chksum +#define cal_txdesc_chksum(padapter, desc) rtl8710b_cal_txdesc_chksum(desc) #define fill_default_txdesc rtl8710b_fill_default_txdesc #endif /* CONFIG_RTL8710B */ #if defined(CONFIG_RTL8192E) extern void rtl8192e_cal_txdesc_chksum(struct tx_desc *ptxdesc); -#define cal_txdesc_chksum rtl8192e_cal_txdesc_chksum +#define cal_txdesc_chksum(padapter, desc) rtl8192e_cal_txdesc_chksum(desc) #ifdef CONFIG_SDIO_HCI || defined(CONFIG_GSPI_HCI) extern void rtl8192es_fill_default_txdesc(struct xmit_frame *pxmitframe, u8 *pbuf); #define fill_default_txdesc rtl8192es_fill_default_txdesc @@ -11345,16 +11531,46 @@ extern void rtl8192es_fill_default_txdesc(struct xmit_frame *pxmitframe, u8 *pbu #if defined(CONFIG_RTL8192F) /* extern void rtl8192f_cal_txdesc_chksum(struct tx_desc *ptxdesc); */ -#define cal_txdesc_chksum rtl8192f_cal_txdesc_chksum +#define cal_txdesc_chksum(padapter, desc) rtl8192f_cal_txdesc_chksum(desc) /* extern void rtl8192f_fill_default_txdesc(struct xmit_frame *pxmitframe, u8 *pbuf); */ #define fill_default_txdesc rtl8192f_fill_default_txdesc #endif /* CONFIG_RTL8192F */ +#ifdef CONFIG_RTL8723F +#include <../../hal/rtl8723f/rtl8723f.h> + +#define REG_LOOPBACK_ENABLE 0x0103 +#define LOOKBACK_ENABLE_VALUE 0x0b +#define cal_txdesc_chksum(padapter, desc) rtl8723f_cal_txdesc_chksum(padapter, desc) +#define dump_txdesc_data(padapter, desc) rtl8723f_dbg_dump_tx_desc(padapter, DATA_FRAMETAG, desc); +#define get_rx_desc(rx_desc, rxbuf) rtl8723f_rxdesc2attribute(rx_desc, rxbuf) +#define hal_init rtl8723f_hal_init +#endif /* CONFIG_RTL8723F */ + +void dbg_dump_pkt(char *s, u8 *buf, u8 len) +{ + u8 i, j = 1; + + RTW_INFO("%s size = %u\n", s, len); + + for (i = 0; (i + 4) < len; i += 4) { + if (j % 4 == 1) + RTW_PRINT("idx:%u:", i); + _RTW_PRINT(" 0x%02x 0x%02x 0x%02x 0x%02x", buf[i], buf[i+1], buf[i+2], buf[i+3]); + if ((j++) % 4 == 0) + _RTW_PRINT("\n"); + } + + for (; i < len ; i++) { + _RTW_PRINT(" 0x%02x", buf[i]); + } + _RTW_PRINT("\n ================================\n"); +} + static s32 initLoopback(PADAPTER padapter) { PLOOPBACKDATA ploopback; - if (padapter->ploopback == NULL) { ploopback = (PLOOPBACKDATA)rtw_zmalloc(sizeof(LOOPBACKDATA)); if (ploopback == NULL) @@ -11376,7 +11592,6 @@ static void freeLoopback(PADAPTER padapter) { PLOOPBACKDATA ploopback; - ploopback = padapter->ploopback; if (ploopback) { rtw_mfree((u8 *)ploopback, sizeof(LOOPBACKDATA)); @@ -11412,7 +11627,6 @@ static s32 createpseudoadhoc(PADAPTER padapter) s32 err; _irqL irqL; - pmlmepriv = &padapter->mlmepriv; authmode = Ndis802_11AuthModeOpen; @@ -11494,7 +11708,7 @@ static struct xmit_frame *createloopbackpkt(PADAPTER padapter, u32 size) pframe = NULL; /* 2 1. allocate xmit frame */ - pframe = rtw_alloc_xmitframe(pxmitpriv); + pframe = rtw_alloc_xmitframe(pxmitpriv, 0); if (pframe == NULL) return NULL; pframe->padapter = padapter; @@ -11554,6 +11768,7 @@ static struct xmit_frame *createloopbackpkt(PADAPTER padapter, u32 size) fill_default_txdesc(pframe, (u8 *)desc); +#if 0 /* Hw set sequence number */ ((PTXDESC)desc)->hwseq_en = 0; /* HWSEQ_EN, 0:disable, 1:enable * ((PTXDESC)desc)->hwseq_sel = 0; */ /* HWSEQ_SEL */ @@ -11578,9 +11793,11 @@ static struct xmit_frame *createloopbackpkt(PADAPTER padapter, u32 size) desc->txdw13 = cpu_to_le32(desc->txdw13); desc->txdw14 = cpu_to_le32(desc->txdw14); desc->txdw15 = cpu_to_le32(desc->txdw15); +#endif #endif - cal_txdesc_chksum(desc); + cal_txdesc_chksum(padapter, (u8*)desc); + /* dump_txdesc_data(padapter, (u8*)desc); */ /* 2 5. coalesce */ pkt_start = pframe->buf_addr + TXDESC_SIZE; @@ -11598,7 +11815,11 @@ static struct xmit_frame *createloopbackpkt(PADAPTER padapter, u32 size) get_random_bytes(ptr, pkt_end - ptr); pxmitbuf->len = TXDESC_SIZE + pattrib->last_txcmdsz; +#if defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI) pxmitbuf->ptail += pxmitbuf->len; +#endif + + dbg_dump_pkt("TX packet", pxmitbuf->pbuf, pxmitbuf->len); return pframe; } @@ -11608,7 +11829,6 @@ static void freeloopbackpkt(PADAPTER padapter, struct xmit_frame *pframe) struct xmit_priv *pxmitpriv; struct xmit_buf *pxmitbuf; - pxmitpriv = &padapter->xmitpriv; pxmitbuf = pframe->pxmitbuf; @@ -11620,7 +11840,6 @@ static void printdata(u8 *pbuf, u32 len) { u32 i, val; - for (i = 0; (i + 4) <= len; i += 4) { printk("%08X", *(u32 *)(pbuf + i)); if ((i + 4) & 0x1F) @@ -11655,15 +11874,23 @@ static void printdata(u8 *pbuf, u32 len) static u8 pktcmp(PADAPTER padapter, u8 *txbuf, u32 txsz, u8 *rxbuf, u32 rxsz) { - PHAL_DATA_TYPE phal; + struct rx_pkt_attrib rx_desc; +#if 0 struct recv_stat *prxstat; struct recv_stat report; PRXREPORT prxreport; - u32 drvinfosize; +#endif u32 rxpktsize; - u8 fcssize; + u8 drvinfosize; + u8 shiftsize; u8 ret = _FALSE; + u8 skip_len = 4; /* Don't compare the frame control and duration field */ + get_rx_desc(&rx_desc, rxbuf); + rxpktsize = rx_desc.pkt_len; + drvinfosize = rx_desc.drvinfo_sz; + shiftsize = rx_desc.shift_sz; +#if 0 prxstat = (struct recv_stat *)rxbuf; report.rxdw0 = le32_to_cpu(prxstat->rxdw0); report.rxdw1 = le32_to_cpu(prxstat->rxdw1); @@ -11675,21 +11902,19 @@ static u8 pktcmp(PADAPTER padapter, u8 *txbuf, u32 txsz, u8 *rxbuf, u32 rxsz) prxreport = (PRXREPORT)&report; drvinfosize = prxreport->drvinfosize << 3; rxpktsize = prxreport->pktlen; +#endif - phal = GET_HAL_DATA(padapter); if (rtw_hal_rcr_check(padapter, RCR_APPFCS)) - fcssize = IEEE80211_FCS_LEN; - else - fcssize = 0; + rxpktsize -= IEEE80211_FCS_LEN; - if ((txsz - TXDESC_SIZE) != (rxpktsize - fcssize)) { + if ((txsz - TXDESC_SIZE) != rxpktsize) { RTW_INFO("%s: ERROR! size not match tx/rx=%d/%d !\n", - __func__, txsz - TXDESC_SIZE, rxpktsize - fcssize); + __func__, txsz - TXDESC_SIZE, rxpktsize); ret = _FALSE; } else { - ret = _rtw_memcmp(txbuf + TXDESC_SIZE, \ - rxbuf + RXDESC_SIZE + drvinfosize, \ - txsz - TXDESC_SIZE); + ret = _rtw_memcmp(txbuf + TXDESC_SIZE + skip_len, \ + rxbuf + RXDESC_SIZE + skip_len + drvinfosize, \ + txsz - TXDESC_SIZE - skip_len); if (ret == _FALSE) RTW_INFO("%s: ERROR! pkt content mismatch!\n", __func__); } @@ -11697,23 +11922,17 @@ static u8 pktcmp(PADAPTER padapter, u8 *txbuf, u32 txsz, u8 *rxbuf, u32 rxsz) if (ret == _FALSE) { RTW_INFO("\n%s: TX PKT total=%d, desc=%d, content=%d\n", __func__, txsz, TXDESC_SIZE, txsz - TXDESC_SIZE); - RTW_INFO("%s: TX DESC size=%d\n", __func__, TXDESC_SIZE); - printdata(txbuf, TXDESC_SIZE); - RTW_INFO("%s: TX content size=%d\n", __func__, txsz - TXDESC_SIZE); - printdata(txbuf + TXDESC_SIZE, txsz - TXDESC_SIZE); + dbg_dump_pkt("TX DESC", txbuf, TXDESC_SIZE); + dbg_dump_pkt("TX content", txbuf + TXDESC_SIZE, txsz - TXDESC_SIZE); RTW_INFO("\n%s: RX PKT read=%d offset=%d(%d,%d) content=%d\n", __func__, rxsz, RXDESC_SIZE + drvinfosize, RXDESC_SIZE, drvinfosize, rxpktsize); if (rxpktsize != 0) { - RTW_INFO("%s: RX DESC size=%d\n", __func__, RXDESC_SIZE); - printdata(rxbuf, RXDESC_SIZE); - RTW_INFO("%s: RX drvinfo size=%d\n", __func__, drvinfosize); - printdata(rxbuf + RXDESC_SIZE, drvinfosize); - RTW_INFO("%s: RX content size=%d\n", __func__, rxpktsize); - printdata(rxbuf + RXDESC_SIZE + drvinfosize, rxpktsize); + dbg_dump_pkt("RX DESC", rxbuf, RXDESC_SIZE); + dbg_dump_pkt("RX drvinfo", rxbuf + RXDESC_SIZE, drvinfosize); + dbg_dump_pkt("RX packet content", rxbuf + RXDESC_SIZE + drvinfosize, rxpktsize); } else { RTW_INFO("%s: RX data size=%d\n", __func__, rxsz); - printdata(rxbuf, rxsz); } } @@ -11730,7 +11949,6 @@ thread_return lbk_thread(thread_context context) u32 pktsize; u32 ff_hwaddr; - padapter = (PADAPTER)context; ploopback = padapter->ploopback; if (ploopback == NULL) @@ -11739,7 +11957,8 @@ thread_return lbk_thread(thread_context context) ok = 0; fail = 0; - daemonize("%s", "RTW_LBK_THREAD"); + thread_enter("RTW_LBK_THREAD"); + /* daemonize("%s", "RTW_LBK_THREAD"); */ allow_signal(SIGTERM); do { @@ -11760,10 +11979,13 @@ thread_return lbk_thread(thread_context context) ff_hwaddr = rtw_get_ff_hwaddr(pxmitframe); cnt++; RTW_INFO("%s: wirte port cnt=%d size=%d\n", __func__, cnt, ploopback->txsize); +#if defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI) pxmitframe->pxmitbuf->pdata = ploopback->txbuf; +#endif rtw_write_port(padapter, ff_hwaddr, ploopback->txsize, (u8 *)pxmitframe->pxmitbuf); /* wait for rx pkt */ + RTW_INFO("%s: wait for rx packet\n", __func__); _rtw_down_sema(&ploopback->sema); err = pktcmp(padapter, ploopback->txbuf, ploopback->txsize, ploopback->rxbuf, ploopback->rxsize); @@ -11807,7 +12029,6 @@ static void loopbackTest(PADAPTER padapter, u32 cnt, u32 size, u8 *pmsg) u32 len; s32 err; - ploopback = padapter->ploopback; if (ploopback) { @@ -11822,6 +12043,7 @@ static void loopbackTest(PADAPTER padapter, u32 cnt, u32 size, u8 *pmsg) break; rtw_msleep_os(1); } while (1); + RTW_INFO("Free loopback, end the test.\n"); _rtw_memcpy(pmsg, ploopback->msg, len + 1); freeLoopback(padapter); @@ -11829,8 +12051,10 @@ static void loopbackTest(PADAPTER padapter, u32 cnt, u32 size, u8 *pmsg) } /* disable dynamic algorithm */ +#ifndef CONFIG_NO_PHYDM rtw_phydm_ability_backup(padapter); rtw_phydm_func_disable_all(padapter); +#endif /* create pseudo ad-hoc connection */ err = initpseudoadhoc(padapter); @@ -11857,7 +12081,7 @@ static void loopbackTest(PADAPTER padapter, u32 cnt, u32 size, u8 *pmsg) ploopback->cnt = cnt; ploopback->size = size; ploopback->lbkthread = kthread_run(lbk_thread, padapter, "RTW_LBK_THREAD"); - if (IS_ERR(padapter->lbkthread)) { + if (IS_ERR(ploopback->lbkthread)) { freeLoopback(padapter); ploopback->lbkthread = NULL; sprintf(pmsg, "loopback start FAIL! cnt=%d", cnt); @@ -11908,7 +12132,19 @@ static int rtw_test( } #ifdef CONFIG_MAC_LOOPBACK_DRIVER - if (strcmp(pch, "loopback") == 0) { + if (strcmp(pch, "init") == 0) { + u8 status; + + rtw_clr_drv_stopped(padapter); /* should clear drv_stopped, otherwise driver can't trx */ + + status = hal_init(padapter); + RTW_INFO("HAL_INIT %s\n", status ? "SUCCESS" : "FAIL"); + + rtw_write8(padapter, REG_LOOPBACK_ENABLE, LOOKBACK_ENABLE_VALUE); + RTW_INFO("Write 0x%03x to 0x%02x, enable loopback\n", + REG_LOOPBACK_ENABLE, LOOKBACK_ENABLE_VALUE); + + } else if (strcmp(pch, "loopback") == 0) { s32 cnt = 0; u32 size = 64; @@ -11996,12 +12232,18 @@ static int rtw_test( goto free_buf; } + if (strcmp(pch, "dump_mac_reg") == 0) { + mac_reg_dump(RTW_DBGDUMP, padapter); + goto free_buf; + } + free_buf: rtw_mfree(pbuf, len); return 0; } static iw_handler rtw_handlers[] = { +#ifdef CONFIG_IOCTL_WEXT NULL, /* SIOCSIWCOMMIT */ rtw_wx_get_name, /* SIOCGIWNAME */ dummy, /* SIOCSIWNWID */ @@ -12058,6 +12300,7 @@ static iw_handler rtw_handlers[] = { NULL, /* SIOCGIWENCODEEXT */ rtw_wx_set_pmkid, /* SIOCSIWPMKSA */ NULL, /*---hole---*/ +#endif }; @@ -12161,7 +12404,13 @@ static const struct iw_priv_args rtw_private_args[] = { #else {SIOCIWFIRSTPRIV + 0x17, IW_PRIV_TYPE_CHAR | 1024 , 0 , "NULL"}, #endif - {SIOCIWFIRSTPRIV + 0x18, IW_PRIV_TYPE_CHAR | IFNAMSIZ , 0 , "rereg_nd_name"}, + +#ifdef CONFIG_PLATFORM_CMAP_INTFS + {SIOCIWFIRSTPRIV + 0x18, IW_PRIV_TYPE_CHAR | 1024 , 0 , "cmap_intfs"}, +#else + {SIOCIWFIRSTPRIV + 0x18, 0, 0, "NULL"}, +#endif + #ifdef CONFIG_MP_INCLUDED {SIOCIWFIRSTPRIV + 0x1A, IW_PRIV_TYPE_CHAR | 1024, 0, "NULL"}, {SIOCIWFIRSTPRIV + 0x1B, IW_PRIV_TYPE_CHAR | 128, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "NULL"}, @@ -12189,7 +12438,11 @@ static const struct iw_priv_args rtw_private_args[] = { #ifdef CONFIG_WOWLAN { MP_WOW_ENABLE , IW_PRIV_TYPE_CHAR | 1024, 0, "wow_mode" }, { MP_WOW_SET_PATTERN , IW_PRIV_TYPE_CHAR | 1024, 0, "wow_set_pattern" }, +#ifdef CONFIG_WOW_KEEP_ALIVE_PATTERN + { MP_WOW_SET_KEEP_ALIVE_PATTERN ,IW_PRIV_TYPE_CHAR | 1024 , 0 , "wow_keep_alive"}, +#endif /* defined (CONFIG_KEEP_ALIVE_PATTERN)*/ #endif + #ifdef CONFIG_AP_WOWLAN { MP_AP_WOW_ENABLE , IW_PRIV_TYPE_CHAR | 1024, 0, "ap_wow_mode" }, /* set */ #endif @@ -12197,6 +12450,7 @@ static const struct iw_priv_args rtw_private_args[] = { { MP_SD_IREAD, IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "sd_iread" }, { MP_SD_IWRITE, IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "sd_iwrite" }, #endif + { GET_IC_TYPE, IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "ic_type" }, }; @@ -12306,7 +12560,11 @@ static iw_handler rtw_private_handler[] = { #else rtw_wx_priv_null, /* 0x17 */ #endif +#ifdef CONFIG_PLATFORM_CMAP_INTFS + cmap_intfs_ioctl, /* 0x18 */ +#else NULL, /* 0x18 */ +#endif rtw_wx_priv_null, /* 0x19 */ #ifdef CONFIG_MP_INCLUDED rtw_wx_priv_null, /* 0x1A */ @@ -12319,6 +12577,7 @@ static iw_handler rtw_private_handler[] = { rtw_test, /* 0x1D */ }; +#ifdef CONFIG_WIRELESS_EXT #if WIRELESS_EXT >= 17 static struct iw_statistics *rtw_get_wireless_stats(struct net_device *dev) { @@ -12375,7 +12634,6 @@ static struct iw_statistics *rtw_get_wireless_stats(struct net_device *dev) } #endif -#ifdef CONFIG_WIRELESS_EXT struct iw_handler_def rtw_handlers_def = { .standard = rtw_handlers, .num_standard = sizeof(rtw_handlers) / sizeof(iw_handler), @@ -12563,7 +12821,7 @@ static int _rtw_ioctl_wext_private(struct net_device *dev, union iwreq_data *wrq count = 0; do { str = strsep(&ptr, delim); - if (NULL == str) + if (NULL == str || count >= 4096) break; sscanf(str, "%i", &temp); buffer[count++] = (u8)temp; @@ -12582,7 +12840,7 @@ static int _rtw_ioctl_wext_private(struct net_device *dev, union iwreq_data *wrq count = 0; do { str = strsep(&ptr, delim); - if (NULL == str) + if (NULL == str || count >= 1024) break; sscanf(str, "%i", &temp); ((s32 *)buffer)[count++] = (s32)temp; @@ -12831,6 +13089,7 @@ int rtw_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) int ret = 0; switch (cmd) { +#ifdef CONFIG_IOCTL_WEXT case RTL_IOCTL_WPA_SUPPLICANT: ret = wpa_supplicant_ioctl(dev, &wrq->u.data); break; @@ -12844,6 +13103,7 @@ int rtw_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) break; #endif #endif /* CONFIG_AP_MODE */ +#endif /* CONFIG_IOCTL_WEXT */ case SIOCDEVPRIVATE: ret = rtw_ioctl_wext_private(dev, rq); break; diff --git a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/ioctl_mp.c b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/ioctl_mp.c index 98894d31..d7be2f22 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/ioctl_mp.c +++ b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/ioctl_mp.c @@ -87,8 +87,6 @@ int rtw_mp_write_reg(struct net_device *dev, _rtw_memcpy(buf, pch, pnext-pch); ret = kstrtoul(buf, 16, &addr);*/ ret = sscanf(pch, "%x", &addr); - if (addr > 0x3FFF) - return -EINVAL; pch = pnext + 1; pnext = strpbrk(pch, " ,.-"); @@ -495,9 +493,9 @@ int rtw_mp_rate(struct net_device *dev, err = 1; if (hal_spec->tx_nss_num < 4 && MPT_IS_4SS_RATE(HwRateToMPTRate(pmppriv->rateidx))) err = 1; - if (!is_supported_vht(padapter->registrypriv.wireless_mode) && MPT_IS_VHT_RATE(pmppriv->rateidx)) + if (!is_supported_vht(padapter->registrypriv.wireless_mode) && MPT_IS_VHT_RATE(HwRateToMPTRate(pmppriv->rateidx))) err = 1; - if (!is_supported_ht(padapter->registrypriv.wireless_mode) && MPT_IS_HT_RATE(pmppriv->rateidx)) + if (!is_supported_ht(padapter->registrypriv.wireless_mode) && MPT_IS_HT_RATE(HwRateToMPTRate(pmppriv->rateidx))) err = 1; if (err == 1) { @@ -521,7 +519,8 @@ int rtw_mp_channel(struct net_device *dev, PADAPTER padapter = rtw_netdev_priv(dev); HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter); u8 input[RTW_IWD_MAX_LEN]; - u32 channel = 1; + u8 channel = 1; + struct mp_priv *pmppriv = &padapter->mppriv; if (rtw_do_mp_iwdata_len_chk(__func__, (wrqu->length + 1))) return -EFAULT; @@ -537,6 +536,7 @@ int rtw_mp_channel(struct net_device *dev, sprintf(extra, "Change channel %d to channel %d", padapter->mppriv.channel , channel); padapter->mppriv.channel = channel; rtw_hal_set_hwreg(padapter, HW_VAR_CHECK_TXBUF, 0); + rtw_adjust_chbw(padapter, channel, &pmppriv->bandwidth, &pmppriv->prime_channel_offset); SetChannel(padapter); pHalData->current_channel = channel; @@ -553,6 +553,7 @@ int rtw_mp_ch_offset(struct net_device *dev, PADAPTER padapter = rtw_netdev_priv(dev); u8 input[RTW_IWD_MAX_LEN]; u32 ch_offset = 0; + char *pch; if (rtw_do_mp_iwdata_len_chk(__func__, (wrqu->length + 1))) return -EFAULT; @@ -565,7 +566,8 @@ int rtw_mp_ch_offset(struct net_device *dev, ch_offset = rtw_atoi(input); /*RTW_INFO("%s: channel=%d\n", __func__, channel);*/ _rtw_memset(extra, 0, wrqu->length); - sprintf(extra, "Change prime channel offset %d to %d", padapter->mppriv.prime_channel_offset , ch_offset); + pch = extra; + pch += sprintf(pch, "Change prime channel offset %d to %d", padapter->mppriv.prime_channel_offset , ch_offset); padapter->mppriv.prime_channel_offset = ch_offset; SetChannel(padapter); @@ -578,9 +580,10 @@ int rtw_mp_bandwidth(struct net_device *dev, struct iw_request_info *info, struct iw_point *wrqu, char *extra) { - u32 bandwidth = 0, sg = 0; + u8 bandwidth = 0, sg = 0; PADAPTER padapter = rtw_netdev_priv(dev); HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter); + struct mp_priv *pmppriv = &padapter->mppriv; u8 input[RTW_IWD_MAX_LEN]; if (rtw_do_mp_iwdata_len_chk(__func__, wrqu->length)) @@ -589,15 +592,10 @@ int rtw_mp_bandwidth(struct net_device *dev, if (copy_from_user(input, wrqu->pointer, wrqu->length)) return -EFAULT; - if (sscanf(input, "40M=%d,shortGI=%d", &bandwidth, &sg) > 0) - RTW_INFO("%s: bw=%d sg=%d\n", __func__, bandwidth , sg); + if (sscanf(input, "40M=%hhd,shortGI=%hhd", &bandwidth, &sg) > 0) + RTW_INFO("%s: bw=%hhd sg=%hhd\n", __func__, bandwidth , sg); - if (bandwidth == 1 && hal_chk_bw_cap(padapter, BW_CAP_40M)) - bandwidth = CHANNEL_WIDTH_40; - else if (bandwidth == 2 && hal_chk_bw_cap(padapter, BW_CAP_80M)) - bandwidth = CHANNEL_WIDTH_80; - else - bandwidth = CHANNEL_WIDTH_20; + rtw_adjust_chbw(padapter, pmppriv->channel, &bandwidth, &pmppriv->prime_channel_offset); padapter->mppriv.bandwidth = (u8)bandwidth; padapter->mppriv.preamble = sg; @@ -696,48 +694,141 @@ int rtw_mp_txpower(struct net_device *dev, u32 idx_a = 0, idx_b = 0, idx_c = 0, idx_d = 0; int MsetPower = 1; u8 input[RTW_IWD_MAX_LEN]; + char pout_str_buf[7]; u8 res = 0; + char *pextra; PADAPTER padapter = rtw_netdev_priv(dev); PMPT_CONTEXT pMptCtx = &(padapter->mppriv.mpt_ctx); + struct mp_priv *pmppriv = &padapter ->mppriv; if (rtw_do_mp_iwdata_len_chk(__func__, wrqu->length)) return -EFAULT; - _rtw_memset(input, 0, sizeof(input)); if (copy_from_user(input, wrqu->pointer, wrqu->length)) return -EFAULT; - input[sizeof(input) - 1] = 0; MsetPower = strncmp(input, "off", 3); if (MsetPower == 0) { - padapter->mppriv.bSetTxPower = 0; + pmppriv->bSetTxPower = 0; sprintf(extra, "MP Set power off"); } else { - res = sscanf(input, "patha=%d,pathb=%d,pathc=%d,pathd=%d", &idx_a, &idx_b, &idx_c, &idx_d); - if (res < 1) { - if(isdigit(input[0])){ - idx_a = rtw_atoi(input); - RTW_INFO("direct set RF Path A Power =%d\n", idx_a); - } else - RTW_INFO("Invalid format on %s !, Get patha=%d,pathb=%d,pathc=%d,pathd=%d\n", input , idx_a , idx_b , idx_c , idx_d); + res = sscanf(input, "patha=%d,pathb=%d,pathc=%d,pathd=%d", &idx_a, &idx_b, &idx_c, &idx_d); + + if (res < 1) { + if(isdigit(input[0])){ + idx_a = rtw_atoi(input); + RTW_INFO("direct set RF Path A Power =%d\n", idx_a); + } else { + sprintf(extra, "Invalid format on string :%s ", input); + RTW_INFO("Invalid format on %s !, \ + Get patha=%d,pathb=%d,pathc=%d,pathd=%d\n", input , idx_a , idx_b , idx_c , idx_d); } - if (res > 0 || idx_a !=0) - sprintf(extra, "Set power level path_A:%d path_B:%d path_C:%d path_D:%d", idx_a , idx_b , idx_c , idx_d); - else - sprintf(extra, "Invalid format on string :%s ", input); + } + if (res > 0 || idx_a != 0) { - padapter->mppriv.txpoweridx = (u8)idx_a; + pmppriv->txpoweridx = (u8)idx_a; + pMptCtx->TxPwrLevel[RF_PATH_A] = (u8)idx_a; + pMptCtx->TxPwrLevel[RF_PATH_B] = (u8)idx_b; + pMptCtx->TxPwrLevel[RF_PATH_C] = (u8)idx_c; + pMptCtx->TxPwrLevel[RF_PATH_D] = (u8)idx_d; + pmppriv->bSetTxPower = 1; + SetTxPower(padapter); + sprintf(extra, "Set power level path_A:%d path_B:%d path_C:%d path_D:%d", + idx_a , idx_b , idx_c , idx_d); + goto invalid_turn_dbm; + } - pMptCtx->TxPwrLevel[RF_PATH_A] = (u8)idx_a; - pMptCtx->TxPwrLevel[RF_PATH_B] = (u8)idx_b; - pMptCtx->TxPwrLevel[RF_PATH_C] = (u8)idx_c; - pMptCtx->TxPwrLevel[RF_PATH_D] = (u8)idx_d; - padapter->mppriv.bSetTxPower = 1; + if (sscanf(input, "a_dbm=%d", &idx_a) >= 1) { + s32 db_temp = 0; + s16 pout = 0; + u32 poutdbm = 0; + u32 poutdbm_int; + u32 poutdbm_dec; + if (idx_a < 9 || idx_a >= 22) { + sprintf(extra, "Error input:%d,Tune dBm range is 9-22\n", idx_a); + goto invalid_turn_dbm; + } - SetTxPower(padapter); + db_temp = (s16)hal_mpt_tssi_turn_target_power(padapter, pout, RF_PATH_A); + RTW_INFO("%s: mpt_tssi_turn_target_power db_temp=%d\n", __func__, db_temp); + + pout = idx_a*100 - db_temp; + poutdbm = hal_mpt_tssi_turn_target_power(padapter, pout, RF_PATH_A); + sprintf(extra, "Path A Set power dbm :%d\n", idx_a); + + pmppriv->bSetTxPower = 1; + } else if (sscanf(input, "b_dbm=%d", &idx_b) >= 1) { + s32 db_temp = 0; + s16 pout = 0; + u32 poutdbm = 0; + + if (idx_b < 9 || idx_b >= 22) { + sprintf(extra, "Error input:%d,Tune dBm range is 9-22\n", idx_b); + goto invalid_turn_dbm; + } + db_temp = (s16)hal_mpt_tssi_turn_target_power(padapter, pout, RF_PATH_B); + RTW_INFO("%s: mpt_tssi_turn_target_power db_temp=%d\n", __func__, db_temp); + + pout = idx_b*100 - db_temp; + poutdbm = hal_mpt_tssi_turn_target_power(padapter, pout, RF_PATH_B); + sprintf(extra, "Path B Set power dbm :%d\n", idx_b); + + pmppriv->bSetTxPower = 1; + } else if (strncmp(input, "dbm_tune", 8) == 0) { + u8 signed_flag = 0; + u8 rfpath; + int int_num; + u32 dec_num; + s16 pout; + int i; + u32 poutdbm; + u8 poutdbm_int; + u8 poutdbm_dec; + + sscanf(input+8, "%hhu %7s", &rfpath, pout_str_buf); + if(pout_str_buf[0] == '-') + signed_flag = 1; + i = sscanf(pout_str_buf, "%d.%3u", &int_num, &dec_num); + pout = int_num * 100; + if(i == 2) { + dec_num = (dec_num < 10) ? dec_num * 10 : dec_num; + pout += ((pout < 0 || signed_flag == 1) ? -dec_num : dec_num); + } + if (pout % 25 != 0) + goto invalid_param_format; + + if (pout < -125 || pout > 125) + goto invalid_param_format; + + //sprintf(extra, "Set power dbm offset :%d\n", pout); + pmppriv->txpower_dbm_offset = pout; + pmppriv->bSetTxPower = 1; + poutdbm = hal_mpt_tssi_turn_target_power(padapter, pout, rfpath); + + poutdbm_int = poutdbm/100; + poutdbm_dec = poutdbm%100; + if (poutdbm_int < 9 || poutdbm_int >= 22) + sprintf(extra, "Error power dBm :%d.%d ,Tune dBm range is 9-22\n", poutdbm_int, poutdbm_dec); + else + sprintf(extra, "Tune power dBm :%d.%d OK\n", poutdbm_int, poutdbm_dec); + + } else { + if (res > 0 || idx_a !=0) + sprintf(extra, "Set power level path_A:%d path_B:%d path_C:%d path_D:%d", idx_a , idx_b , idx_c , idx_d); + else + sprintf(extra, "Invalid format on string :%s ", input); + } } - + wrqu->length = strlen(extra); + return 0; +invalid_param_format: + sprintf(extra, "Invalid command format Error,\n CMD: dbm_tune [RF Path] [dBm power scale] \n" + "Please indicate [RF path]: 0/1/2/3\n"); + pextra = extra + strlen(extra); + sprintf(pextra, "[dbm power scale] each scale step value must 0.25 or -0.25\n" + "scale limit range is -1.25 - 1.25"); +invalid_turn_dbm: wrqu->length = strlen(extra); return 0; } @@ -1389,6 +1480,9 @@ int rtw_mp_thermal(struct net_device *dev, ther_path_addr[2] = EEPROM_THERMAL_METER_C_8814B; ther_path_addr[3] = EEPROM_THERMAL_METER_D_8814B; #endif +#ifdef CONFIG_RTL8723F + ther_path_addr[0] = EEPROM_THERMAL_METER_8723F; +#endif if (copy_from_user(extra, wrqu->pointer, wrqu->length)) return -EFAULT; @@ -1598,7 +1692,11 @@ int rtw_mp_SetRFPath(struct net_device *dev, } else { bMain = MP_PHY_QueryRFPathSwitch(padapter); RTW_INFO("%s:Query RF Path = %s\n", __func__, (bMain ? "Main":"Aux")); - sprintf(extra, "RF Path %s\n" , (bMain ? "1":"0")); + if (IS_HARDWARE_TYPE_8821C(padapter)) + sprintf(extra, "RF Path %s\n" , + (bMain ? "ANT1/S0/PathB Mode: 0":"ANT2/S1/PathA Mode: 1")); + else + sprintf(extra, "RF Path %s\n" , (bMain ? "1":"0")); } wrqu->length = strlen(extra); @@ -1614,6 +1712,7 @@ int rtw_mp_switch_rf_path(struct net_device *dev, PADAPTER padapter = rtw_netdev_priv(dev); struct mp_priv *pmp_priv; char input[RTW_IWD_MAX_LEN]; + char *pch; int bwlg = 1, bwla = 1, btg = 1, bbt=1; u8 ret = 0; @@ -1627,25 +1726,27 @@ int rtw_mp_switch_rf_path(struct net_device *dev, RTW_INFO("%s: in=%s\n", __func__, input); + _rtw_memset(extra, '\0', wrqu->length); + pch = extra; #ifdef CONFIG_RTL8821C /* only support for 8821c wlg/wla/btg/bt RF switch path */ if ((strncmp(input, "WLG", 3) == 0) || (strncmp(input, "1", 1) == 0)) { pmp_priv->rf_path_cfg = SWITCH_TO_WLG; - sprintf(extra, "switch rf path WLG\n"); + pch += sprintf(pch, "switch rf path WLG\n"); } else if ((strncmp(input, "WLA", 3) == 0) || (strncmp(input, "2", 1) == 0)) { pmp_priv->rf_path_cfg = SWITCH_TO_WLA; - sprintf(extra, "switch rf path WLA\n"); + pch += sprintf(pch, "switch rf path WLA\n"); } else if ((strncmp(input, "BTG", 3) == 0) || (strncmp(input, "0", 1) == 0)) { pmp_priv->rf_path_cfg = SWITCH_TO_BTG; - sprintf(extra, "switch rf path BTG\n"); + pch += sprintf(pch, "switch rf path BTG\n"); } else if ((strncmp(input, "BT", 3) == 0) || (strncmp(input, "3", 1) == 0)) { pmp_priv->rf_path_cfg = SWITCH_TO_BT; - sprintf(extra, "switch rf path BT\n"); + pch += sprintf(pch, "switch rf path BT\n"); } else { pmp_priv->rf_path_cfg = SWITCH_TO_WLG; - sprintf(extra, "Error input, default set WLG\n"); + pch += sprintf(pch, "Error input, default set WLG\n"); return -EFAULT; } @@ -1704,7 +1805,7 @@ int rtw_mp_PwrCtlDM(struct net_device *dev, if (copy_from_user(input, wrqu->pointer, wrqu->length)) return -EFAULT; - input[wrqu->length] = '\0'; + input[wrqu->length - 1] = '\0'; RTW_INFO("%s: in=%s\n", __func__, input); if (wrqu->length == 2) { @@ -1737,7 +1838,7 @@ int rtw_mp_PwrCtlDM(struct net_device *dev, pwrtrk_state = 4; sprintf(extra, "PwrCtlDM start %s\n" , pwtk_type[pwrtrk_state]); } else { - sprintf(extra, "Error input !!! \n" + sprintf(extra, "Error input !!!\n" " thertrk off : Thermal tracking off\n thertrk on : Thermal tracking on\n" " tssitrk off : TSSI tracking off\n tssitrk on : TSSI tracking on\n tssik : TSSI calibration\n\n" " 0 : Thermal tracking off\n 1 : Thermal tracking on\n 2 : TSSI tracking off\n" @@ -1782,6 +1883,7 @@ int rtw_mp_dpk(struct net_device *dev, HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter); struct dm_struct *pDM_Odm = &pHalData->odmpriv; struct pwrctrl_priv *pwrctrlpriv = adapter_to_pwrctl(padapter); + char *pch; u8 ips_mode = IPS_NUM; /* init invalid value */ u8 lps_mode = PS_MODE_NUM; /* init invalid value */ @@ -1790,16 +1892,17 @@ int rtw_mp_dpk(struct net_device *dev, return -EFAULT; *(extra + wrqu->data.length) = '\0'; + pch = extra; if (strncmp(extra, "off", 3) == 0 && strlen(extra) < 4) { pDM_Odm->dpk_info.is_dpk_enable = 0; halrf_dpk_enable_disable(pDM_Odm); - sprintf(extra, "set dpk off\n"); + pch += sprintf(pch, "set dpk off\n"); } else if (strncmp(extra, "on", 2) == 0 && strlen(extra) < 3) { pDM_Odm->dpk_info.is_dpk_enable = 1; halrf_dpk_enable_disable(pDM_Odm); - sprintf(extra, "set dpk on\n"); + pch += sprintf(pch, "set dpk on\n"); } else { #ifdef CONFIG_LPS lps_mode = pwrctrlpriv->power_mgnt;/* keep org value */ @@ -1819,7 +1922,7 @@ int rtw_mp_dpk(struct net_device *dev, rtw_pm_set_lps(padapter, lps_mode); #endif /* CONFIG_LPS */ } - sprintf(extra, "set dpk trigger\n"); + pch += sprintf(pch, "set dpk trigger\n"); } wrqu->data.length = strlen(extra); @@ -1838,10 +1941,26 @@ int rtw_mp_get_tsside(struct net_device *dev, u8 rfpath; u32 tssi_de; - if (wrqu->length > 128) - return -EFAULT; + u8 legal_param_num = 1; + int param_num; + char pout_str_buf[7]; + u8 signed_flag = 0; + int integer_num; + u32 decimal_num; + s32 pout; + char *pextra; + int i; - if (rtw_do_mp_iwdata_len_chk(__func__, (wrqu->length + 1))) + #ifdef CONFIG_RTL8723F + /* + * rtwpriv wlan0 mp_get_tsside rf_path pout + * rf_path : 0 ~ 1 + * pout : -15.000 ~ 25.000 + * ex : rtwpriv wlan0 mp_get_tsside 0 -12.123 + */ + legal_param_num = 2; + #endif + if (wrqu->length > 128) return -EFAULT; _rtw_memset(input, 0, sizeof(input)); @@ -1849,25 +1968,60 @@ int rtw_mp_get_tsside(struct net_device *dev, if (copy_from_user(input, wrqu->pointer, wrqu->length)) return -EFAULT; - input[wrqu->length] = '\0'; + param_num = sscanf(input, "%hhu %7s", &rfpath, pout_str_buf); - if (wrqu->length == 2) { - rfpath = rtw_atoi(input); - if (rfpath >= 0 && rfpath <= 3) { - tssi_de = halrf_tssi_get_de(pDM_Odm, rfpath); - if (rfpath == 0) - sprintf(extra, "patha=%d", tssi_de); - else if (rfpath == 1) - sprintf(extra, "pathb=%d", tssi_de); - else if (rfpath == 2) - sprintf(extra, "pathc=%d", tssi_de); - else if (rfpath == 3) - sprintf(extra, "pathd=%d", tssi_de); - } else - sprintf(extra, "Invalid command format, please indicate RF path 0/1/2/3"); - } else - sprintf(extra, "Invalid command format, please indicate RF path 0/1/2/3"); + /* Check parameter format*/ + if(param_num != legal_param_num) + goto invalid_param_format; + if(rfpath <0 || 3 < rfpath) + goto invalid_param_format; + +#ifdef CONFIG_RTL8723F + /* Convert pout from floating-point to integer + * For Floating-Point Precision, pout*1000 + */ + if(pout_str_buf[0] == '-') + signed_flag = 1; + i = sscanf(pout_str_buf, "%d.%3u", &integer_num, &decimal_num); + pout = integer_num * 1000; + if(i == 2) { + /* Convert decimal number + * ex : 0.1 => 100, -0.1 => 100 + */ + decimal_num = (decimal_num < 10) ? decimal_num * 100 : decimal_num; + decimal_num = (decimal_num < 100) ? decimal_num * 10 : decimal_num; + pout += ((pout < 0 || signed_flag == 1) ? -decimal_num : decimal_num); + } + if(pout < -15000 || 25000 < pout) + goto invalid_param_format; +#endif + +#ifdef CONFIG_RTL8723F + /* For Floating-Point Precision, pout */ + tssi_de = halrf_get_online_tssi_de(pDM_Odm, rfpath, pout); +#else + tssi_de = halrf_tssi_get_de(pDM_Odm, rfpath); +#endif + + if (rfpath == 0) + sprintf(extra, "patha=%d hex=%02x", tssi_de, (u8)tssi_de); + else if (rfpath == 1) + sprintf(extra, "pathb=%d hex=%02x", tssi_de, (u8)tssi_de); + else if (rfpath == 2) + sprintf(extra, "pathc=%d hex=%02x", tssi_de, (u8)tssi_de); + else if (rfpath == 3) + sprintf(extra, "pathd=%d hex=%02x", tssi_de, (u8)tssi_de); + + wrqu->length = strlen(extra); + return 0; + +invalid_param_format: + sprintf(extra, "Invalid command format, please indicate RF path 0/1/2/3"); +#ifdef CONFIG_RTL8723F + pextra = extra + strlen(extra); + sprintf(pextra, " and pout value : -15.000 ~ 25.000\n"); +#endif wrqu->length = strlen(extra); return 0; @@ -1894,29 +2048,23 @@ int rtw_mp_set_tsside(struct net_device *dev, sprintf(extra, "Set TSSI DE path_A: %d", tsside_a); halrf_tssi_set_de_for_tx_verify(pDM_Odm, tsside_a, RF_PATH_A); mpt_trigger_tssi_tracking(padapter, RF_PATH_A); - } - else if (sscanf(input, "pathb=%d", &tsside_b) == 1) { + + } else if (sscanf(input, "pathb=%d", &tsside_b) == 1) { sprintf(extra, "Set TSSI DE path_B: %d", tsside_b); halrf_tssi_set_de_for_tx_verify(pDM_Odm, tsside_b, RF_PATH_B); mpt_trigger_tssi_tracking(padapter, RF_PATH_B); - } -#if defined(PHYDM_COMPILE_ABOVE_3SS) - else if (sscanf(input, "pathc=%d", &tsside_c) == 1) { + + } else if (sscanf(input, "pathc=%d", &tsside_c) == 1) { sprintf(extra, "Set TSSI DE path_C: %d", tsside_c); halrf_tssi_set_de_for_tx_verify(pDM_Odm, tsside_c, RF_PATH_C); mpt_trigger_tssi_tracking(padapter, RF_PATH_C); - } -#endif -#if defined(PHYDM_COMPILE_ABOVE_4SS) - else if (sscanf(input, "pathd=%d", &tsside_d) == 1) { + } else if (sscanf(input, "pathd=%d", &tsside_d) == 1) { sprintf(extra, "Set TSSI DE path_D: %d", tsside_d); halrf_tssi_set_de_for_tx_verify(pDM_Odm, tsside_d, RF_PATH_D); mpt_trigger_tssi_tracking(padapter, RF_PATH_D); - } -#endif - else + } else sprintf(extra, "Invalid command format, please input TSSI DE value within patha/b/c/d=xyz"); wrqu->length = strlen(extra); @@ -2065,9 +2213,11 @@ int rtw_mp_pretx_proc(PADAPTER padapter, u8 bStartTest, char *extra) is_supported_ht(padapter->registrypriv.wireless_mode)) pmp_priv->tx.attrib.ht_en = 1; #endif - pmp_priv->tx.stop = 0; - pmp_priv->tx.count = 1; - SetPacketTx(padapter); + if (!IS_HARDWARE_TYPE_JAGUAR3(padapter)) { + pmp_priv->tx.stop = 0; + pmp_priv->tx.count = 1; + SetPacketTx(padapter); + } } else pmp_priv->mode = MP_ON; @@ -2537,8 +2687,10 @@ int rtw_mp_hwtx(struct net_device *dev, PADAPTER padapter = rtw_netdev_priv(dev); struct mp_priv *pmp_priv = &padapter->mppriv; PMPT_CONTEXT pMptCtx = &(padapter->mppriv.mpt_ctx); + char *pch; -#if defined(CONFIG_RTL8814A) || defined(CONFIG_RTL8821B) || defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8822C) +#if defined(CONFIG_RTL8814A) || defined(CONFIG_RTL8821B) || defined(CONFIG_RTL8822B) \ + || defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8822C) || defined(CONFIG_RTL8723F) if (copy_from_user(extra, wrqu->data.pointer, wrqu->data.length)) return -EFAULT; *(extra + wrqu->data.length) = '\0'; @@ -2546,14 +2698,17 @@ int rtw_mp_hwtx(struct net_device *dev, _rtw_memset(&pMptCtx->PMacTxInfo, 0, sizeof(RT_PMAC_TX_INFO)); _rtw_memcpy((void *)&pMptCtx->PMacTxInfo, (void *)extra, sizeof(RT_PMAC_TX_INFO)); _rtw_memset(extra, 0, wrqu->data.length); + pch = extra; if (pMptCtx->PMacTxInfo.bEnPMacTx == 1 && pmp_priv->mode != MP_ON) { - sprintf(extra, "MP Tx Running, Please Set PMac Tx Mode Stop\n"); + pch += sprintf(pch, "MP Tx Running, Please Set PMac Tx Mode Stop\n"); RTW_INFO("Error !!! MP Tx Running, Please Set PMac Tx Mode Stop\n"); } else { RTW_INFO("To set MAC Tx mode\n"); - mpt_ProSetPMacTx(padapter); - sprintf(extra, "Set PMac Tx Mode OK\n"); + if (mpt_ProSetPMacTx(padapter)) + pch += sprintf(pch, "Set PMac Tx Mode OK\n"); + else + pch += sprintf(pch, "Set PMac Tx Mode Error\n"); } wrqu->data.length = strlen(extra); #endif @@ -2567,23 +2722,26 @@ int rtw_mp_pwrlmt(struct net_device *dev, { PADAPTER padapter = rtw_netdev_priv(dev); struct registry_priv *registry_par = &padapter->registrypriv; - u8 pwrlimtstat = 0; + char *pch; if (copy_from_user(extra, wrqu->data.pointer, wrqu->data.length)) return -EFAULT; *(extra + wrqu->data.length) = '\0'; - pwrlimtstat = registry_par->RegEnableTxPowerLimit; + pch = extra; + +#if CONFIG_TXPWR_LIMIT if (strncmp(extra, "off", 3) == 0 && strlen(extra) < 4) { padapter->registrypriv.RegEnableTxPowerLimit = 0; - sprintf(extra, "Turn off Power Limit\n"); + pch += sprintf(pch, "Turn off Power Limit\n"); } else if (strncmp(extra, "on", 2) == 0 && strlen(extra) < 3) { padapter->registrypriv.RegEnableTxPowerLimit = 1; - sprintf(extra, "Turn on Power Limit\n"); + pch += sprintf(pch, "Turn on Power Limit\n"); } else - sprintf(extra, "Get Power Limit Status:%s\n", (pwrlimtstat == 1) ? "ON" : "OFF"); +#endif + pch += sprintf(pch, "Get Power Limit Status:%s\n", (registry_par->RegEnableTxPowerLimit == 1) ? "ON" : "OFF"); wrqu->data.length = strlen(extra); @@ -2624,20 +2782,21 @@ int rtw_mp_dpk_track(struct net_device *dev, PADAPTER padapter = rtw_netdev_priv(dev); HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter); struct dm_struct *pDM_Odm = &pHalData->odmpriv; - + char *pch; if (copy_from_user(extra, wrqu->data.pointer, wrqu->data.length)) return -EFAULT; *(extra + wrqu->data.length) = '\0'; + pch = extra; if (strncmp(extra, "off", 3) == 0 && strlen(extra) < 4) { halrf_set_dpk_track(pDM_Odm, FALSE); - sprintf(extra, "set dpk track off\n"); + pch += sprintf(pch, "set dpk track off\n"); } else if (strncmp(extra, "on", 2) == 0 && strlen(extra) < 3) { halrf_set_dpk_track(pDM_Odm, TRUE); - sprintf(extra, "set dpk track on\n"); + pch += sprintf(pch, "set dpk track on\n"); } wrqu->data.length = strlen(extra); @@ -2650,6 +2809,8 @@ int rtw_bt_efuse_mask_file(struct net_device *dev, union iwreq_data *wrqu, char *extra) { char *rtw_efuse_mask_file_path; + u8 *pch; + char *ptmp, tmp; u8 Status; PADAPTER padapter = rtw_netdev_priv(dev); @@ -2659,14 +2820,12 @@ int rtw_bt_efuse_mask_file(struct net_device *dev, return -EFAULT; *(extra + wrqu->data.length) = '\0'; + ptmp = extra; if (strncmp(extra, "data,", 5) == 0) { - u8 *pch; - char *ptmp, tmp; u8 count = 0; u8 i = 0; - ptmp = extra; pch = strsep(&ptmp, ","); if ((pch == NULL) || (strlen(pch) == 0)) { @@ -2697,7 +2856,7 @@ int rtw_bt_efuse_mask_file(struct net_device *dev, padapter->registrypriv.bBTFileMaskEfuse = _TRUE; - sprintf(ptmp, "\nLoad BT Efuse Mask data %d hex ok\n", count); + ptmp += sprintf(ptmp, "\nLoad BT Efuse Mask data %d hex ok\n", count); wrqu->data.length = strlen(extra); return 0; } @@ -2706,17 +2865,18 @@ int rtw_bt_efuse_mask_file(struct net_device *dev, if (rtw_is_file_readable(rtw_efuse_mask_file_path) == _TRUE) { RTW_INFO("%s do rtw_is_file_readable = %s! ,sizeof BT maskfileBuffer %zu\n", __func__, rtw_efuse_mask_file_path, sizeof(btmaskfileBuffer)); Status = rtw_efuse_file_read(padapter, rtw_efuse_mask_file_path, btmaskfileBuffer, sizeof(btmaskfileBuffer)); + _rtw_memset(extra, '\0' , strlen(extra)); if (Status == _TRUE) { padapter->registrypriv.bBTFileMaskEfuse = _TRUE; - sprintf(extra, "BT efuse mask file read OK\n"); + ptmp += sprintf(ptmp, "BT efuse mask file read OK\n"); } else { padapter->registrypriv.bBTFileMaskEfuse = _FALSE; - sprintf(extra, "read BT efuse mask file FAIL\n"); + ptmp += sprintf(ptmp, "read BT efuse mask file FAIL\n"); RTW_INFO("%s rtw_efuse_file_read BT mask fail!\n", __func__); } } else { padapter->registrypriv.bBTFileMaskEfuse = _FALSE; - sprintf(extra, "BT efuse mask file readable FAIL\n"); + ptmp += sprintf(ptmp, "BT efuse mask file readable FAIL\n"); RTW_INFO("%s rtw_is_file_readable BT Mask file fail!\n", __func__); } wrqu->data.length = strlen(extra); @@ -2852,6 +3012,7 @@ int rtw_efuse_file_map(struct net_device *dev, } +#if !defined(CONFIG_RTW_ANDROID_GKI) int rtw_efuse_file_map_store(struct net_device *dev, struct iw_request_info *info, union iwreq_data *wrqu, char *extra) @@ -2889,6 +3050,7 @@ int rtw_efuse_file_map_store(struct net_device *dev, wrqu->data.length = strlen(extra); return 0; } +#endif /* !defined(CONFIG_RTW_ANDROID_GKI) */ int rtw_bt_efuse_file_map(struct net_device *dev, struct iw_request_info *info, @@ -2972,7 +3134,7 @@ int rtw_mp_link(struct net_device *dev, if (bgetrxdata) { RTW_INFO("%s: in= 1 \n", __func__); if (pmp_priv->mplink_brx == _TRUE) { - + pch = extra; while (waittime < 100 && pmp_priv->mplink_brx == _FALSE) { if (pmp_priv->mplink_brx == _FALSE) rtw_msleep_os(10); @@ -2981,10 +3143,10 @@ int rtw_mp_link(struct net_device *dev, waittime++; } if (pmp_priv->mplink_brx == _TRUE) { - sprintf(extra, "\n"); - pextra = extra + strlen(extra); + pch += sprintf(pch, "\n"); + for (i = 0; i < pmp_priv->mplink_rx_len; i ++) { - pextra += sprintf(pextra, "%02x:", pmp_priv->mplink_buf[i]); + pch += sprintf(pch, "%02x:", pmp_priv->mplink_buf[i]); } _rtw_memset(pmp_priv->mplink_buf, '\0' , sizeof(pmp_priv->mplink_buf)); pmp_priv->mplink_brx = _FALSE; @@ -3011,7 +3173,7 @@ int rtw_mp_link(struct net_device *dev, /* tmp[0],[1],[2] */ /* txdata,00e04c871200........... */ if (strcmp(tmp[0], "txdata") == 0) { - if ((tmp[1] == NULL)) { + if (tmp[1] == NULL) { err = -EINVAL; goto exit; } @@ -3103,12 +3265,13 @@ int rtw_mp_link(struct net_device *dev, if (tmp[2] != NULL) { _rtw_memset(extra, 0, wrqu->length); + pch = extra; ret = rtw_btcoex_btset_testmode(padapter, val); if (!CHECK_STATUS_CODE_FROM_BT_MP_OPER_RET(ret, BT_STATUS_BT_OP_SUCCESS)) { RTW_INFO("%s: BT_OP fail = 0x%x!\n", __FUNCTION__, val); - sprintf(extra, "BT_OP fail 0x%x!\n", val); + pch += sprintf(pch, "BT_OP fail 0x%x!\n", val); } else - sprintf(extra, "Set BT_OP 0x%x done!\n", val); + pch += sprintf(pch, "Set BT_OP 0x%x done!\n", val); } } @@ -3151,6 +3314,7 @@ int rtw_mp_SetBT(struct net_device *dev, return -EFAULT; *(extra + wrqu->data.length) = '\0'; + pch = extra; if (strlen(extra) < 1) return -EFAULT; @@ -3173,7 +3337,7 @@ int rtw_mp_SetBT(struct net_device *dev, BTStatus = rtw_read8(padapter, 0xa0); RTW_INFO("%s: btwmap before read 0xa0 BT Status =0x%x\n", __func__, BTStatus); if (BTStatus != 0x04) { - sprintf(extra, "BT Status not Active DLFW FAIL\n"); + pch += sprintf(pch, "BT Status not Active DLFW FAIL\n"); goto exit; } @@ -3218,11 +3382,11 @@ int rtw_mp_SetBT(struct net_device *dev, if ((pMptCtx->mptOutBuf[4] == 0x00) && (pMptCtx->mptOutBuf[5] == 0x00)) { if (padapter->mppriv.bTxBufCkFail == _TRUE) - sprintf(extra, "check TxBuf Fail.\n"); + pch += sprintf(pch, "check TxBuf Fail.\n"); else - sprintf(extra, "download FW Fail.\n"); + pch += sprintf(pch, "download FW Fail.\n"); } else { - sprintf(extra, "download FW OK.\n"); + pch += sprintf(pch, "download FW OK.\n"); goto exit; } goto exit; @@ -3234,7 +3398,7 @@ int rtw_mp_SetBT(struct net_device *dev, BTStatus = rtw_read8(padapter, 0xa0); RTW_INFO("%s: btwmap before read 0xa0 BT Status =0x%x\n", __func__, BTStatus); if (BTStatus != 0x04) { - sprintf(extra, "BT Status not Active DLFW FAIL\n"); + pch += sprintf(pch, "BT Status not Active DLFW FAIL\n"); goto exit; } @@ -3288,15 +3452,15 @@ int rtw_mp_SetBT(struct net_device *dev, RTW_INFO("FirmwareDownloadBT ready = 0x%x 0x%x", pMptCtx->mptOutBuf[4], pMptCtx->mptOutBuf[5]); if ((pMptCtx->mptOutBuf[4] == 0x00) && (pMptCtx->mptOutBuf[5] == 0x00)) { if (padapter->mppriv.bTxBufCkFail == _TRUE) - sprintf(extra, "check TxBuf Fail.\n"); + pch += sprintf(pch, "check TxBuf Fail.\n"); else - sprintf(extra, "download FW Fail.\n"); + pch += sprintf(pch, "download FW Fail.\n"); } else { #ifdef CONFIG_BT_COEXIST rtw_btcoex_SwitchBtTRxMask(padapter); #endif rtw_msleep_os(200); - sprintf(extra, "download FW OK.\n"); + pch += sprintf(pch, "download FW OK.\n"); goto exit; } goto exit; @@ -3365,7 +3529,6 @@ int rtw_mp_SetBT(struct net_device *dev, goto todo; } - pch = extra; i = 0; while ((token = strsep(&pch, ",")) != NULL) { if (i > 1) @@ -3439,23 +3602,23 @@ todo: _rtw_memset(extra, '\0', wrqu->data.length); if (pHalData->bBTFWReady == _FALSE) { - sprintf(extra, "BTFWReady = FALSE.\n"); + pch += sprintf(pch, "BTFWReady = FALSE.\n"); goto exit; } mptbt_BtControlProcess(padapter, &BtReq); if (readtherm == 0) { - sprintf(extra, "BT thermal="); + pch += sprintf(pch, "BT thermal="); for (i = 4; i < pMptCtx->mptOutLen; i++) { if ((pMptCtx->mptOutBuf[i] == 0x00) && (pMptCtx->mptOutBuf[i + 1] == 0x00)) goto exit; - sprintf(extra, "%s %d ", extra, (pMptCtx->mptOutBuf[i] & 0x1f)); + pch += sprintf(pch, " %d ", (pMptCtx->mptOutBuf[i] & 0x1f)); } } else { for (i = 4; i < pMptCtx->mptOutLen; i++) - sprintf(extra, "%s 0x%x ", extra, pMptCtx->mptOutBuf[i]); + pch += sprintf(pch, " 0x%x ", pMptCtx->mptOutBuf[i]); } exit: diff --git a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/nlrtw.c b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/nlrtw.c new file mode 100644 index 00000000..14d164b7 --- /dev/null +++ b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/nlrtw.c @@ -0,0 +1,583 @@ +/****************************************************************************** + * + * Copyright(c) 2007 - 2020 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License 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. + * + *****************************************************************************/ +#define _RTW_NLRTW_C_ + +#include +#include "nlrtw.h" + +#ifdef CONFIG_RTW_NLRTW + +#include +#include +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 7, 0)) +#include +#endif + + +enum nlrtw_cmds { + NLRTW_CMD_UNSPEC, + + NLRTW_CMD_CHANNEL_UTILIZATION, + NLRTW_CMD_REG_CHANGE, + NLRTW_CMD_REG_BEACON_HINT, + NLRTW_CMD_RADAR_EVENT, + NLRTW_CMD_RADIO_OPMODE, + + __NLRTW_CMD_AFTER_LAST, + NLRTW_CMD_MAX = __NLRTW_CMD_AFTER_LAST - 1 +}; + +enum nlrtw_attrs { + NLRTW_ATTR_UNSPEC, + + NLRTW_ATTR_WIPHY_NAME, + NLRTW_ATTR_CHANNEL_UTILIZATIONS, + NLRTW_ATTR_CHANNEL_UTILIZATION_THRESHOLD, + NLRTW_ATTR_CHANNEL_CENTER, + NLRTW_ATTR_CHANNEL_WIDTH, + NLRTW_ATTR_RADAR_EVENT, + NLRTW_ATTR_OP_CLASS, + NLRTW_ATTR_OP_CHANNEL, + NLRTW_ATTR_OP_TXPWR_MAX, + NLRTW_ATTR_IF_OPMODES, + + __NLRTW_ATTR_AFTER_LAST, + NUM_NLRTW_ATTR = __NLRTW_ATTR_AFTER_LAST, + NLRTW_ATTR_MAX = __NLRTW_ATTR_AFTER_LAST - 1 +}; + +enum nlrtw_ch_util_attrs { + __NLRTW_ATTR_CHANNEL_UTILIZATION_INVALID, + + NLRTW_ATTR_CHANNEL_UTILIZATION_VALUE, + NLRTW_ATTR_CHANNEL_UTILIZATION_BSSID, + + __NLRTW_ATTR_CHANNEL_UTILIZATION_AFTER_LAST, + NUM_NLRTW_ATTR_CHANNEL_UTILIZATION = __NLRTW_ATTR_CHANNEL_UTILIZATION_AFTER_LAST, + NLRTW_ATTR_CHANNEL_UTILIZATION_MAX = __NLRTW_ATTR_CHANNEL_UTILIZATION_AFTER_LAST - 1 +}; + +enum nlrtw_radar_event { + NLRTW_RADAR_DETECTED, + NLRTW_RADAR_CAC_FINISHED, + NLRTW_RADAR_CAC_ABORTED, + NLRTW_RADAR_NOP_FINISHED, + NLRTW_RADAR_NOP_STARTED, /* NON_OCP started not by local radar detection */ +}; + +enum nlrtw_if_opmode_attrs { + NLRTW_IF_OPMODE_UNSPEC, + + NLRTW_IF_OPMODE_MACADDR, + NLRTW_IF_OPMODE_OP_CLASS, + NLRTW_IF_OPMODE_OP_CHANNEL, + + __NLRTW_IF_OPMODE_ATTR_AFTER_LAST, + NUM_NLRTW_IF_OPMODE_ATTR = __NLRTW_IF_OPMODE_ATTR_AFTER_LAST, + NLRTW_IF_OPMODE_ATTR_MAX = __NLRTW_IF_OPMODE_ATTR_AFTER_LAST - 1 +}; + +static int nlrtw_ch_util_set(struct sk_buff *skb, struct genl_info *info) +{ + unsigned int msg; + + if (!info->attrs[NLRTW_ATTR_CHANNEL_UTILIZATION_THRESHOLD]) + return -EINVAL; + msg = nla_get_u8(info->attrs[NLRTW_ATTR_CHANNEL_UTILIZATION_THRESHOLD]); + + return 0; +} + +static struct nla_policy nlrtw_genl_policy[NUM_NLRTW_ATTR] = { + [NLRTW_ATTR_CHANNEL_UTILIZATION_THRESHOLD] = { .type = NLA_U8 }, +}; + +static struct genl_ops nlrtw_genl_ops[] = { + { + .cmd = NLRTW_CMD_CHANNEL_UTILIZATION, + .flags = 0, +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 2, 0) + .policy = nlrtw_genl_policy, +#endif + .doit = nlrtw_ch_util_set, + .dumpit = NULL, + }, +}; + +enum nlrtw_multicast_groups { + NLRTW_MCGRP_DEFAULT, +}; +static struct genl_multicast_group nlrtw_genl_mcgrp[] = { + [NLRTW_MCGRP_DEFAULT] = { .name = "nlrtw_default" }, +}; + +/* family definition */ +static struct genl_family nlrtw_genl_family = { + .hdrsize = 0, + .name = "nlrtw_"DRV_NAME, + .version = 1, + .maxattr = NLRTW_ATTR_MAX, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 2, 0) + .policy = nlrtw_genl_policy, +#endif + .netnsok = true, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 12) + .module = THIS_MODULE, +#endif +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 13, 0) + .ops = nlrtw_genl_ops, + .n_ops = ARRAY_SIZE(nlrtw_genl_ops), + .mcgrps = nlrtw_genl_mcgrp, + .n_mcgrps = ARRAY_SIZE(nlrtw_genl_mcgrp), +#endif +}; + +static inline int nlrtw_multicast(const struct genl_family *family, + struct sk_buff *skb, u32 portid, + unsigned int group, gfp_t flags) +{ + int ret; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 13, 0) + ret = genlmsg_multicast(&nlrtw_genl_family, skb, portid, group, flags); +#else + ret = genlmsg_multicast(skb, portid, nlrtw_genl_mcgrp[group].id, flags); +#endif + return ret; +} + +int rtw_nlrtw_ch_util_rpt(_adapter *adapter, u8 n_rpts, u8 *val, u8 **mac_addr) +{ + struct sk_buff *skb = NULL; + void *msg_header = NULL; + struct nlattr *nl_ch_util, *nl_ch_utils; + struct wiphy *wiphy; + u8 i; + int ret; + + wiphy = adapter_to_wiphy(adapter); + if (!wiphy) + return -EINVAL; + + /* allocate memory */ + skb = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL); + if (!skb) { + nlmsg_free(skb); + return -ENOMEM; + } + + /* create the message headers */ + msg_header = genlmsg_put(skb, 0, 0, &nlrtw_genl_family, 0, + NLRTW_CMD_CHANNEL_UTILIZATION); + if (!msg_header) { + ret = -ENOMEM; + goto err_out; + } + + /* add attributes */ + ret = nla_put_string(skb, NLRTW_ATTR_WIPHY_NAME, wiphy_name(wiphy)); + + nl_ch_utils = nla_nest_start(skb, NLRTW_ATTR_CHANNEL_UTILIZATIONS); + if (!nl_ch_utils) { + ret = -EMSGSIZE; + goto err_out; + } + + for (i = 0; i < n_rpts; i++) { + nl_ch_util = nla_nest_start(skb, i); + if (!nl_ch_util) { + ret = -EMSGSIZE; + goto err_out; + } + + ret = nla_put(skb, NLRTW_ATTR_CHANNEL_UTILIZATION_BSSID, ETH_ALEN, *(mac_addr + i)); + if (ret != 0) + goto err_out; + + ret = nla_put_u8(skb, NLRTW_ATTR_CHANNEL_UTILIZATION_VALUE, *(val + i)); + if (ret != 0) + goto err_out; + + nla_nest_end(skb, nl_ch_util); + } + + nla_nest_end(skb, nl_ch_utils); + + /* finalize the message */ + genlmsg_end(skb, msg_header); + + ret = nlrtw_multicast(&nlrtw_genl_family, skb, 0, NLRTW_MCGRP_DEFAULT, GFP_KERNEL); + if (ret == -ESRCH) { + RTW_INFO("[%s] return ESRCH(No such process)." + " Maybe no process waits for this msg\n", __func__); + return ret; + } else if (ret != 0) { + RTW_INFO("[%s] ret = %d\n", __func__, ret); + return ret; + } + + return 0; +err_out: + nlmsg_free(skb); + return ret; +} + +int rtw_nlrtw_reg_change_event(_adapter *adapter) +{ + struct sk_buff *skb = NULL; + void *msg_header = NULL; + struct wiphy *wiphy; + u8 i; + int ret; + + wiphy = adapter_to_wiphy(adapter); + if (!wiphy) { + ret = -EINVAL; + goto err_out; + } + + /* allocate memory */ + skb = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL); + if (!skb) { + ret = -ENOMEM; + goto err_out; + } + + /* create the message headers */ + msg_header = genlmsg_put(skb, 0, 0, &nlrtw_genl_family, 0, NLRTW_CMD_REG_CHANGE); + if (!msg_header) { + ret = -ENOMEM; + goto err_out; + } + + /* add attributes */ + ret = nla_put_string(skb, NLRTW_ATTR_WIPHY_NAME, wiphy_name(wiphy)); + if (ret) + goto err_out; + + /* finalize the message */ + genlmsg_end(skb, msg_header); + + ret = nlrtw_multicast(&nlrtw_genl_family, skb, 0, NLRTW_MCGRP_DEFAULT, GFP_KERNEL); + if (ret == -ESRCH) { + RTW_DBG(FUNC_WIPHY_FMT" return -ESRCH(No such process)." + " Maybe no process waits for this msg\n", FUNC_WIPHY_ARG(wiphy)); + return ret; + } else if (ret != 0) { + RTW_WARN(FUNC_WIPHY_FMT" return %d\n", FUNC_WIPHY_ARG(wiphy), ret); + return ret; + } + + return 0; + +err_out: + if (skb) + nlmsg_free(skb); + return ret; +} + +int rtw_nlrtw_reg_beacon_hint_event(_adapter *adapter) +{ + struct sk_buff *skb = NULL; + void *msg_header = NULL; + struct wiphy *wiphy; + u8 i; + int ret; + + wiphy = adapter_to_wiphy(adapter); + if (!wiphy) { + ret = -EINVAL; + goto err_out; + } + + /* allocate memory */ + skb = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL); + if (!skb) { + ret = -ENOMEM; + goto err_out; + } + + /* create the message headers */ + msg_header = genlmsg_put(skb, 0, 0, &nlrtw_genl_family, 0, NLRTW_CMD_REG_BEACON_HINT); + if (!msg_header) { + ret = -ENOMEM; + goto err_out; + } + + /* add attributes */ + ret = nla_put_string(skb, NLRTW_ATTR_WIPHY_NAME, wiphy_name(wiphy)); + if (ret) + goto err_out; + + /* finalize the message */ + genlmsg_end(skb, msg_header); + + ret = nlrtw_multicast(&nlrtw_genl_family, skb, 0, NLRTW_MCGRP_DEFAULT, GFP_KERNEL); + if (ret == -ESRCH) { + RTW_DBG(FUNC_WIPHY_FMT" return -ESRCH(No such process)." + " Maybe no process waits for this msg\n", FUNC_WIPHY_ARG(wiphy)); + return ret; + } else if (ret != 0) { + RTW_WARN(FUNC_WIPHY_FMT" return %d\n", FUNC_WIPHY_ARG(wiphy), ret); + return ret; + } + + return 0; + +err_out: + if (skb) + nlmsg_free(skb); + return ret; +} + +#ifdef CONFIG_DFS_MASTER +static int _rtw_nlrtw_radar_event(_adapter *adapter, enum nlrtw_radar_event evt_type, u8 cch, u8 bw) +{ + struct sk_buff *skb = NULL; + void *msg_header = NULL; + struct wiphy *wiphy; + u8 i; + int ret; + + wiphy = adapter_to_wiphy(adapter); + if (!wiphy) { + ret = -EINVAL; + goto err_out; + } + + /* allocate memory */ + skb = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL); + if (!skb) { + ret = -ENOMEM; + goto err_out; + } + + /* create the message headers */ + msg_header = genlmsg_put(skb, 0, 0, &nlrtw_genl_family, 0, NLRTW_CMD_RADAR_EVENT); + if (!msg_header) { + ret = -ENOMEM; + goto err_out; + } + + /* add attributes */ + ret = nla_put_string(skb, NLRTW_ATTR_WIPHY_NAME, wiphy_name(wiphy)); + if (ret) + goto err_out; + + ret = nla_put_u8(skb, NLRTW_ATTR_RADAR_EVENT, (uint8_t)evt_type); + if (ret != 0) + goto err_out; + + ret = nla_put_u8(skb, NLRTW_ATTR_CHANNEL_CENTER, cch); + if (ret != 0) + goto err_out; + + ret = nla_put_u8(skb, NLRTW_ATTR_CHANNEL_WIDTH, bw); + if (ret != 0) + goto err_out; + + /* finalize the message */ + genlmsg_end(skb, msg_header); + + ret = nlrtw_multicast(&nlrtw_genl_family, skb, 0, NLRTW_MCGRP_DEFAULT, GFP_KERNEL); + if (ret == -ESRCH) { + RTW_DBG(FUNC_WIPHY_FMT" return -ESRCH(No such process)." + " Maybe no process waits for this msg\n", FUNC_WIPHY_ARG(wiphy)); + return ret; + } else if (ret != 0) { + RTW_WARN(FUNC_WIPHY_FMT" return %d\n", FUNC_WIPHY_ARG(wiphy), ret); + return ret; + } + + return 0; + +err_out: + if (skb) + nlmsg_free(skb); + return ret; +} + +int rtw_nlrtw_radar_detect_event(_adapter *adapter, u8 cch, u8 bw) +{ + return _rtw_nlrtw_radar_event(adapter, NLRTW_RADAR_DETECTED, cch, bw); +} + +int rtw_nlrtw_cac_finish_event(_adapter *adapter, u8 cch, u8 bw) +{ + return _rtw_nlrtw_radar_event(adapter, NLRTW_RADAR_CAC_FINISHED, cch, bw); +} + +int rtw_nlrtw_cac_abort_event(_adapter *adapter, u8 cch, u8 bw) +{ + return _rtw_nlrtw_radar_event(adapter, NLRTW_RADAR_CAC_ABORTED, cch, bw); +} + +int rtw_nlrtw_nop_finish_event(_adapter *adapter, u8 cch, u8 bw) +{ + return _rtw_nlrtw_radar_event(adapter, NLRTW_RADAR_NOP_FINISHED, cch, bw); +} + +int rtw_nlrtw_nop_start_event(_adapter *adapter, u8 cch, u8 bw) +{ + return _rtw_nlrtw_radar_event(adapter, NLRTW_RADAR_NOP_STARTED, cch, bw); +} +#endif /* CONFIG_DFS_MASTER */ + +int rtw_nlrtw_radio_opmode_notify(struct rf_ctl_t *rfctl) +{ + struct dvobj_priv *dvobj = rfctl_to_dvobj(rfctl); + _adapter *iface; + struct sk_buff *skb = NULL; + void *msg_header = NULL; + struct nlattr *nl_if_opmodes, *nl_if_opmode; + struct wiphy *wiphy; + u16 op_txpwr_max_u16; + u8 i; + int ret; + + wiphy = dvobj_to_wiphy(dvobj); + if (!wiphy) { + ret = -EINVAL; + goto err_out; + } + + /* allocate memory */ + skb = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL); + if (!skb) { + ret = -ENOMEM; + goto err_out; + } + + /* create the message headers */ + msg_header = genlmsg_put(skb, 0, 0, &nlrtw_genl_family, 0, NLRTW_CMD_RADIO_OPMODE); + if (!msg_header) { + ret = -ENOBUFS; + goto err_out; + } + + /* add attributes */ + ret = nla_put_string(skb, NLRTW_ATTR_WIPHY_NAME, wiphy_name(wiphy)); + if (ret) + goto err_out; + + ret = nla_put_u8(skb, NLRTW_ATTR_OP_CLASS, rfctl->op_class); + if (ret != 0) + goto err_out; + + ret = nla_put_u8(skb, NLRTW_ATTR_OP_CHANNEL, rfctl->op_ch); + if (ret != 0) + goto err_out; + + *((s16 *)&op_txpwr_max_u16) = rfctl->op_txpwr_max; + ret = nla_put_u16(skb, NLRTW_ATTR_OP_TXPWR_MAX, op_txpwr_max_u16); + if (ret != 0) + goto err_out; + + if (0) + RTW_INFO("radio: %u,%u %d\n", rfctl->op_class, rfctl->op_ch, rfctl->op_txpwr_max); + + nl_if_opmodes = nla_nest_start(skb, NLRTW_ATTR_IF_OPMODES); + if (!nl_if_opmodes) { + ret = -ENOBUFS; + goto err_out; + } + + for (i = 0; i < dvobj->iface_nums; i++) { + if (!dvobj->padapters[i]) + continue; + iface = dvobj->padapters[i]; + + if (!rfctl->if_op_class[i] || !rfctl->if_op_ch[i]) + continue; + + if (0) + RTW_INFO(ADPT_FMT": %u,%u\n", ADPT_ARG(iface), rfctl->if_op_class[i], rfctl->if_op_ch[i]); + + nl_if_opmode = nla_nest_start(skb, i + 1); + if (!nl_if_opmode) { + ret = -ENOBUFS; + goto err_out; + } + + ret = nla_put(skb, NLRTW_IF_OPMODE_MACADDR, ETH_ALEN, adapter_mac_addr(iface)); + if (ret != 0) + goto err_out; + + ret = nla_put_u8(skb, NLRTW_IF_OPMODE_OP_CLASS, rfctl->if_op_class[i]); + if (ret != 0) + goto err_out; + + ret = nla_put_u8(skb, NLRTW_IF_OPMODE_OP_CHANNEL, rfctl->if_op_ch[i]); + if (ret != 0) + goto err_out; + + nla_nest_end(skb, nl_if_opmode); + } + + nla_nest_end(skb, nl_if_opmodes); + + /* finalize the message */ + genlmsg_end(skb, msg_header); + + ret = nlrtw_multicast(&nlrtw_genl_family, skb, 0, NLRTW_MCGRP_DEFAULT, GFP_KERNEL); + if (ret == -ESRCH) { + RTW_DBG(FUNC_WIPHY_FMT" return -ESRCH(No such process)." + " Maybe no process waits for this msg\n", FUNC_WIPHY_ARG(wiphy)); + return ret; + } else if (ret != 0) { + RTW_WARN(FUNC_WIPHY_FMT" return %d\n", FUNC_WIPHY_ARG(wiphy), ret); + return ret; + } + + return 0; + +err_out: + if (skb) + nlmsg_free(skb); + return ret; +} + +int rtw_nlrtw_init(void) +{ + int err; + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 13, 0) + err = genl_register_family(&nlrtw_genl_family); + if (err) + return err; +#else + err = genl_register_family_with_ops(&nlrtw_genl_family, nlrtw_genl_ops, ARRAY_SIZE(nlrtw_genl_ops)); + if (err) + return err; + + err = genl_register_mc_group(&nlrtw_genl_family, &nlrtw_genl_mcgrp[0]); + if (err) { + genl_unregister_family(&nlrtw_genl_family); + return err; + } +#endif + RTW_INFO("[%s] %s\n", __func__, nlrtw_genl_family.name); + return 0; +} + +int rtw_nlrtw_deinit(void) +{ + int err; + + err = genl_unregister_family(&nlrtw_genl_family); + RTW_INFO("[%s] err = %d\n", __func__, err); + + return err; +} +#endif /* CONFIG_RTW_NLRTW */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/nlrtw.h b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/nlrtw.h new file mode 100644 index 00000000..374002a8 --- /dev/null +++ b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/nlrtw.h @@ -0,0 +1,48 @@ +/****************************************************************************** + * + * Copyright(c) 2007 - 2020 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License 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. + * + *****************************************************************************/ +#ifndef __RTW_NLRTW_H_ +#define __RTW_NLRTW_H_ + +#ifdef CONFIG_RTW_NLRTW +int rtw_nlrtw_init(void); +int rtw_nlrtw_deinit(void); +int rtw_nlrtw_ch_util_rpt(_adapter *adapter, u8 n_rpts, u8 *val, u8 **mac_addr); +int rtw_nlrtw_reg_change_event(_adapter *adapter); +int rtw_nlrtw_reg_beacon_hint_event(_adapter *adapter); +int rtw_nlrtw_radio_opmode_notify(struct rf_ctl_t *rfctl); +#else +static inline int rtw_nlrtw_init(void) {return _FAIL;} +static inline int rtw_nlrtw_deinit(void) {return _FAIL;} +static inline int rtw_nlrtw_ch_util_rpt(_adapter *adapter, u8 n_rpts, u8 *val, u8 **mac_addr) {return _FAIL;} +static inline int rtw_nlrtw_reg_change_event(_adapter *adapter) {return _FAIL;} +static inline int rtw_nlrtw_reg_beacon_hint_event(_adapter *adapter) {return _FAIL;} +static inline int rtw_nlrtw_radio_opmode_notify(struct rf_ctl_t *rfctl) {return _FAIL;} +#endif /* CONFIG_RTW_NLRTW */ + +#if defined(CONFIG_RTW_NLRTW) && defined(CONFIG_DFS_MASTER) +int rtw_nlrtw_radar_detect_event(_adapter *adapter, u8 cch, u8 bw); +int rtw_nlrtw_cac_finish_event(_adapter *adapter, u8 cch, u8 bw); +int rtw_nlrtw_cac_abort_event(_adapter *adapter, u8 cch, u8 bw); +int rtw_nlrtw_nop_finish_event(_adapter *adapter, u8 cch, u8 bw); +int rtw_nlrtw_nop_start_event(_adapter *adapter, u8 cch, u8 bw); +#else +static inline int rtw_nlrtw_radar_detect_event(_adapter *adapter, u8 cch, u8 bw) {return _FAIL;} +static inline int rtw_nlrtw_cac_finish_event(_adapter *adapter, u8 cch, u8 bw) {return _FAIL;} +static inline int rtw_nlrtw_cac_abort_event(_adapter *adapter, u8 cch, u8 bw) {return _FAIL;} +static inline int rtw_nlrtw_nop_finish_event(_adapter *adapter, u8 cch, u8 bw) {return _FAIL;} +static inline int rtw_nlrtw_nop_start_event(_adapter *adapter, u8 cch, u8 bw) {return _FAIL;} +#endif /* defined(CONFIG_RTW_NLRTW) && defined(CONFIG_DFS_MASTER) */ + +#endif /* __RTW_NLRTW_H_ */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/os_intfs.c b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/os_intfs.c old mode 100755 new mode 100644 index 47294c4c..e79a2662 --- a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/os_intfs.c +++ b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/os_intfs.c @@ -192,7 +192,8 @@ int rtw_uapsd_ac_enable = 0x0; #if defined(CONFIG_RTL8814A) int rtw_pwrtrim_enable = 2; /* disable kfree , rename to power trim disable */ -#elif defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8822C) +#elif defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8822C) \ + || defined(CONFIG_RTL8723F) /*PHYDM API, must enable by default*/ int rtw_pwrtrim_enable = 1; #else @@ -209,12 +210,14 @@ static uint rtw_tx_aclt_conf_default_num = 0; module_param_array(rtw_tx_aclt_conf_default, uint, &rtw_tx_aclt_conf_default_num, 0644); MODULE_PARM_DESC(rtw_tx_aclt_conf_default, "device TX AC queue lifetime config for default status"); -#ifdef CONFIG_TX_MCAST2UNI +#ifdef CONFIG_AP_MODE +#if CONFIG_RTW_AP_DATA_BMC_TO_UC static uint rtw_tx_aclt_conf_ap_m2u[3] = CONFIG_TX_ACLT_CONF_AP_M2U; static uint rtw_tx_aclt_conf_ap_m2u_num = 0; module_param_array(rtw_tx_aclt_conf_ap_m2u, uint, &rtw_tx_aclt_conf_ap_m2u_num, 0644); MODULE_PARM_DESC(rtw_tx_aclt_conf_ap_m2u, "device TX AC queue lifetime config for AP mode M2U status"); #endif +#endif /* CONFIG_AP_MODE */ #ifdef CONFIG_RTW_MESH static uint rtw_tx_aclt_conf_mesh[3] = CONFIG_TX_ACLT_CONF_MESH; @@ -290,8 +293,12 @@ int rtw_short_gi = 0xf; /* BIT0: Enable VHT LDPC Rx, BIT1: Enable VHT LDPC Tx, BIT4: Enable HT LDPC Rx, BIT5: Enable HT LDPC Tx */ int rtw_ldpc_cap = 0x33; /* BIT0: Enable VHT STBC Rx, BIT1: Enable VHT STBC Tx, BIT4: Enable HT STBC Rx, BIT5: Enable HT STBC Tx */ +#ifdef CONFIG_RTL8192F +int rtw_stbc_cap = 0x30; +#else int rtw_stbc_cap = 0x13; - +#endif +module_param(rtw_stbc_cap, int, 0644); /* * BIT0: Enable VHT SU Beamformer * BIT1: Enable VHT SU Beamformee @@ -310,6 +317,9 @@ int rtw_bfee_rf_number = 0; /*BeamformeeCapRfNum Rf path number, 0 for auto, ot int rtw_vht_enable = 1; /* 0:disable, 1:enable, 2:force auto enable */ module_param(rtw_vht_enable, int, 0644); +int rtw_vht_24g_enable = 1; /* 0:disable, 1:enable */ +module_param(rtw_vht_24g_enable, int, 0644); + int rtw_ampdu_factor = 7; uint rtw_vht_rx_mcs_map = 0xaaaa; @@ -317,8 +327,6 @@ module_param(rtw_vht_rx_mcs_map, uint, 0644); MODULE_PARM_DESC(rtw_vht_rx_mcs_map, "VHT RX MCS map"); #endif /* CONFIG_80211AC_VHT */ -int rtw_lowrate_two_xmit = 1;/* Use 2 path Tx to transmit MCS0~7 and legacy mode */ - /* 0: not check in watch dog, 1: check in watch dog */ int rtw_check_hw_status = 0; @@ -351,20 +359,53 @@ module_param(rtw_rx_path_lmt, int, 0644); /* limit of RX path number, 0: not spe module_param(rtw_tx_nss, int, 0644); module_param(rtw_rx_nss, int, 0644); +#ifdef CONFIG_ACTIVE_TPC_REPORT +int rtw_active_tpc_report = CONFIG_RTW_ACTIVE_TPC_REPORT; +module_param(rtw_active_tpc_report, int, 0644); +MODULE_PARM_DESC(rtw_active_tpc_report, "Active TPC report, 0:incapable, 1:capable, 2:auto enable"); +#endif + +#ifdef CONFIG_REGD_SRC_FROM_OS +static uint rtw_regd_src = CONFIG_RTW_REGD_SRC; +module_param(rtw_regd_src, uint, 0644); +MODULE_PARM_DESC(rtw_regd_src, "The default regd source selection, 0:Realtek defined, 1: OS"); +#endif + char rtw_country_unspecified[] = {0xFF, 0xFF, 0x00}; char *rtw_country_code = rtw_country_unspecified; module_param(rtw_country_code, charp, 0644); MODULE_PARM_DESC(rtw_country_code, "The default country code (in alpha2)"); -int rtw_channel_plan = CONFIG_RTW_CHPLAN; -module_param(rtw_channel_plan, int, 0644); +uint rtw_channel_plan = CONFIG_RTW_CHPLAN; +module_param(rtw_channel_plan, uint, 0644); MODULE_PARM_DESC(rtw_channel_plan, "The default chplan ID when rtw_alpha2 is not specified or valid"); -static uint rtw_excl_chs[MAX_CHANNEL_NUM] = CONFIG_RTW_EXCL_CHS; +static uint rtw_excl_chs[MAX_CHANNEL_NUM_2G_5G] = CONFIG_RTW_EXCL_CHS; static int rtw_excl_chs_num = 0; module_param_array(rtw_excl_chs, uint, &rtw_excl_chs_num, 0644); MODULE_PARM_DESC(rtw_excl_chs, "exclusive channel array"); +#if CONFIG_IEEE80211_BAND_6GHZ +uint rtw_channel_plan_6g = CONFIG_RTW_CHPLAN_6G; +module_param(rtw_channel_plan_6g, uint, 0644); +MODULE_PARM_DESC(rtw_channel_plan_6g, "The default chplan_6g ID when rtw_alpha2 is not specified or valid"); + +static uint rtw_excl_chs_6g[MAX_CHANNEL_NUM_6G] = CONFIG_RTW_EXCL_CHS_6G; +static int rtw_excl_chs_6g_num = 0; +module_param_array(rtw_excl_chs_6g, uint, &rtw_excl_chs_6g_num, 0644); +MODULE_PARM_DESC(rtw_excl_chs_6g, "exclusive channel array"); +#endif /* CONFIG_IEEE80211_BAND_6GHZ */ + +#ifdef CONFIG_80211D +static uint rtw_country_ie_slave_en_role = CONFIG_RTW_COUNTRY_IE_SLAVE_EN_ROLE; +module_param(rtw_country_ie_slave_en_role, uint, 0644); +MODULE_PARM_DESC(rtw_country_ie_slave_en_role, "802.11d country IE slave enable role: BIT0:pure STA mode, BIT1:P2P group client"); + +static uint rtw_country_ie_slave_en_ifbmp = CONFIG_RTW_COUNTRY_IE_SLAVE_EN_IFBMP; +module_param(rtw_country_ie_slave_en_ifbmp, uint, 0644); +MODULE_PARM_DESC(rtw_country_ie_slave_en_ifbmp, "802.11d country IE slave enable iface bitmap"); +#endif + /*if concurrent softap + p2p(GO) is needed, this param lets p2p response full channel list. But Softap must be SHUT DOWN once P2P decide to set up connection and become a GO.*/ #ifdef CONFIG_FULL_CH_IN_P2P_HANDSHAKE @@ -420,14 +461,6 @@ int rtw_hw_wps_pbc = 1; int rtw_hw_wps_pbc = 0; #endif -#ifdef CONFIG_TX_MCAST2UNI -int rtw_mc2u_disable = 0; -#endif /* CONFIG_TX_MCAST2UNI */ - -#ifdef CONFIG_80211D -int rtw_80211d = 0; -#endif - #ifdef CONFIG_PCI_ASPM /* CLK_REQ:BIT0 L0s:BIT1 ASPM_L1:BIT2 L1Off:BIT3*/ int rtw_pci_aspm_enable = 0x5; @@ -490,6 +523,12 @@ MODULE_PARM_DESC(ifname, "The default name to allocate for first interface"); module_param(if2name, charp, 0644); MODULE_PARM_DESC(if2name, "The default name to allocate for second interface"); +#if defined(CONFIG_PLATFORM_ANDROID) && (CONFIG_IFACE_NUMBER > 2) +char *if3name = "ap%d"; +module_param(if3name, charp, 0644); +MODULE_PARM_DESC(if3name, "The default name to allocate for third interface"); +#endif + char *rtw_initmac = 0; /* temp mac address if users want to use instead of the mac address in Efuse */ #ifdef CONFIG_CONCURRENT_MODE @@ -514,9 +553,29 @@ char *rtw_initmac = 0; /* temp mac address if users want to use instead of the #endif #endif + #ifdef CONFIG_AP_MODE u8 rtw_bmc_tx_rate = MGN_UNKNOWN; -#endif + +#if CONFIG_RTW_AP_DATA_BMC_TO_UC +int rtw_ap_src_b2u_flags = CONFIG_RTW_AP_SRC_B2U_FLAGS; +module_param(rtw_ap_src_b2u_flags, int, 0644); + +int rtw_ap_fwd_b2u_flags = CONFIG_RTW_AP_FWD_B2U_FLAGS; +module_param(rtw_ap_fwd_b2u_flags, int, 0644); +#endif /* CONFIG_RTW_AP_DATA_BMC_TO_UC */ +#endif /* CONFIG_AP_MODE */ + +#ifdef CONFIG_RTW_MESH +#if CONFIG_RTW_MESH_DATA_BMC_TO_UC +int rtw_msrc_b2u_flags = CONFIG_RTW_MSRC_B2U_FLAGS; +module_param(rtw_msrc_b2u_flags, int, 0644); + +int rtw_mfwd_b2u_flags = CONFIG_RTW_MFWD_B2U_FLAGS; +module_param(rtw_mfwd_b2u_flags, int, 0644); +#endif /* CONFIG_RTW_MESH_DATA_BMC_TO_UC */ +#endif /* CONFIG_RTW_MESH */ + #ifdef RTW_WOW_STA_MIX int rtw_wowlan_sta_mix_mode = 1; #else @@ -554,7 +613,6 @@ module_param(rtw_quick_addba_req, int, 0644); #ifdef CONFIG_BEAMFORMING module_param(rtw_beamform_cap, int, 0644); #endif -module_param(rtw_lowrate_two_xmit, int, 0644); module_param(rtw_power_mgnt, int, 0644); module_param(rtw_smart_ps, int, 0644); @@ -618,15 +676,6 @@ MODULE_PARM_DESC(rtw_fw_mp_bt_file_path, "The path of fw for MP-BT image"); #endif /* CONFIG_MP_INCLUDED */ #endif /* CONFIG_FILE_FWIMG */ -#ifdef CONFIG_TX_MCAST2UNI -module_param(rtw_mc2u_disable, int, 0644); -#endif /* CONFIG_TX_MCAST2UNI */ - -#ifdef CONFIG_80211D -module_param(rtw_80211d, int, 0644); -MODULE_PARM_DESC(rtw_80211d, "Enable 802.11d mechanism"); -#endif - #ifdef CONFIG_ADVANCE_OTA /* BIT(0): OTA continuous rotated test within low RSSI,1R CCA in path B BIT(1) & BIT(2): OTA continuous rotated test with low high RSSI */ @@ -645,7 +694,7 @@ MODULE_PARM_DESC(rtw_hiq_filter, "0:allow all, 1:allow special, 2:deny all"); uint rtw_adaptivity_en = CONFIG_RTW_ADAPTIVITY_EN; module_param(rtw_adaptivity_en, uint, 0644); -MODULE_PARM_DESC(rtw_adaptivity_en, "0:disable, 1:enable"); +MODULE_PARM_DESC(rtw_adaptivity_en, "0:disable, 1:enable, 2:auto"); uint rtw_adaptivity_mode = CONFIG_RTW_ADAPTIVITY_MODE; module_param(rtw_adaptivity_mode, uint, 0644); @@ -662,7 +711,7 @@ MODULE_PARM_DESC(rtw_adaptivity_th_edcca_hl_diff, "th_edcca_hl_diff for Adaptivi #ifdef CONFIG_DFS_MASTER uint rtw_dfs_region_domain = CONFIG_RTW_DFS_REGION_DOMAIN; module_param(rtw_dfs_region_domain, uint, 0644); -MODULE_PARM_DESC(rtw_dfs_region_domain, "0:UNKNOWN, 1:FCC, 2:MKK, 3:ETSI"); +MODULE_PARM_DESC(rtw_dfs_region_domain, "0:NONE, 1:FCC, 2:MKK, 3:ETSI"); #endif uint rtw_amsdu_mode = RTW_AMSDU_MODE_NON_SPP; @@ -729,9 +778,11 @@ int rtw_tx_pwr_by_rate = CONFIG_TXPWR_BY_RATE_EN; module_param(rtw_tx_pwr_by_rate, int, 0644); MODULE_PARM_DESC(rtw_tx_pwr_by_rate, "0:Disable, 1:Enable, 2: Depend on efuse"); -int rtw_tx_pwr_lmt_enable = 2; +#if CONFIG_TXPWR_LIMIT +int rtw_tx_pwr_lmt_enable = CONFIG_TXPWR_LIMIT_EN; module_param(rtw_tx_pwr_lmt_enable, int, 0644); MODULE_PARM_DESC(rtw_tx_pwr_lmt_enable, "0:Disable, 1:Enable, 2: Depend on efuse"); +#endif static int rtw_target_tx_pwr_2g_a[RATE_SECTION_NUM] = CONFIG_RTW_TARGET_TX_PWR_2G_A; static int rtw_target_tx_pwr_2g_a_num = 0; @@ -775,6 +826,10 @@ module_param_array(rtw_target_tx_pwr_5g_d, int, &rtw_target_tx_pwr_5g_d_num, 064 MODULE_PARM_DESC(rtw_target_tx_pwr_5g_d, "5G target tx power (unit:dBm) of RF path D for each rate section, should match the real calibrate power, -1: undefined"); #endif /* CONFIG_IEEE80211_BAND_5GHZ */ +int rtw_antenna_gain = CONFIG_RTW_ANTENNA_GAIN; +module_param(rtw_antenna_gain, int, 0644); +MODULE_PARM_DESC(rtw_antenna_gain, "Antenna gain in mBi. 0x7FFF: unspecifed"); + #ifdef CONFIG_RTW_TX_NPATH_EN /*0:disable ,1: 2path*/ int rtw_tx_npath_enable = 1; @@ -798,6 +853,15 @@ int rtw_tsf_update_restore_factor = CONFIG_TSF_UPDATE_RESTORE_FACTOR; module_param(rtw_tsf_update_restore_factor, int, 0644); MODULE_PARM_DESC(rtw_tsf_update_restore_factor, "num of bcn intervals to stay TSF update restore status"); + +#ifdef CONFIG_RTW_NBI +static int rtw_nbi_en = 1; +#else +static int rtw_nbi_en = 0; +#endif +module_param(rtw_nbi_en, int, 0644); +MODULE_PARM_DESC(rtw_nbi_en, "0:Disable, 1:Enable Narrow Band Interference"); + #ifdef CONFIG_LOAD_PHY_PARA_FROM_FILE char *rtw_phy_file_path = REALTEK_CONFIG_PATH; module_param(rtw_phy_file_path, charp, 0644); @@ -818,6 +882,10 @@ module_param(rtw_decrypt_phy_file, int, 0644); MODULE_PARM_DESC(rtw_decrypt_phy_file, "Enable Decrypt PHY File"); #endif +uint rtw_recvbuf_nr = NR_RECVBUFF; +module_param(rtw_recvbuf_nr, int, 0644); +MODULE_PARM_DESC(rtw_recvbuf_nr, "Preallocated number of struct recv_buf"); + #ifdef CONFIG_SUPPORT_TRX_SHARED #ifdef DFT_TRX_SHARE_MODE int rtw_trx_share_mode = DFT_TRX_SHARE_MODE; @@ -996,6 +1064,15 @@ uint rtw_8822c_xcap_overwrite = 1; module_param(rtw_8822c_xcap_overwrite, uint, 0644); #endif +#ifdef CONFIG_RTW_MULTI_AP +static int rtw_unassoc_sta_mode_of_stype[UNASOC_STA_SRC_NUM] = CONFIG_RTW_UNASOC_STA_MODE_OF_STYPE; +static int rtw_unassoc_sta_mode_of_stype_num = 0; +module_param_array(rtw_unassoc_sta_mode_of_stype, int, &rtw_unassoc_sta_mode_of_stype_num, 0644); + +uint rtw_max_unassoc_sta_cnt = 0; +module_param(rtw_max_unassoc_sta_cnt, uint, 0644); +#endif + #if CONFIG_TX_AC_LIFETIME static void rtw_regsty_load_tx_ac_lifetime(struct registry_priv *regsty) { @@ -1009,10 +1086,12 @@ static void rtw_regsty_load_tx_ac_lifetime(struct registry_priv *regsty) conf = ®sty->tx_aclt_confs[i]; if (i == TX_ACLT_CONF_DEFAULT) parm = rtw_tx_aclt_conf_default; - #ifdef CONFIG_TX_MCAST2UNI + #ifdef CONFIG_AP_MODE + #if CONFIG_RTW_AP_DATA_BMC_TO_UC else if (i == TX_ACLT_CONF_AP_M2U) parm = rtw_tx_aclt_conf_ap_m2u; #endif + #endif /* CONFIG_AP_MODE */ #ifdef CONFIG_RTW_MESH else if (i == TX_ACLT_CONF_MESH) parm = rtw_tx_aclt_conf_mesh; @@ -1065,19 +1144,70 @@ void rtw_regsty_load_target_tx_power(struct registry_priv *regsty) #endif /* CONFIG_IEEE80211_BAND_5GHZ */ } +inline void rtw_regsty_load_chplan(struct registry_priv *regsty) +{ + u16 chplan = RTW_CHPLAN_UNSPECIFIED; + u16 chplan_6g = RTW_CHPLAN_6G_UNSPECIFIED; + + chplan = rtw_channel_plan; +#if CONFIG_IEEE80211_BAND_6GHZ + chplan_6g = rtw_channel_plan_6g; +#endif + + rtw_chplan_ioctl_input_mapping(&chplan, &chplan_6g); + + regsty->channel_plan = chplan; +#if CONFIG_IEEE80211_BAND_6GHZ + regsty->channel_plan_6g = chplan_6g; +#endif +} + +inline void rtw_regsty_load_alpha2(struct registry_priv *regsty) +{ + if (strlen(rtw_country_code) != 2 + || (!IS_ALPHA2_WORLDWIDE(rtw_country_code) + && (is_alpha(rtw_country_code[0]) == _FALSE + || is_alpha(rtw_country_code[1]) == _FALSE) + ) + ) { + if (rtw_country_code != rtw_country_unspecified) + RTW_ERR("%s discard rtw_country_code not in alpha2 or \"%s\"\n", __func__, WORLDWIDE_ALPHA2); + SET_UNSPEC_ALPHA2(regsty->alpha2); + } else + _rtw_memcpy(regsty->alpha2, rtw_country_code, 2); +} + inline void rtw_regsty_load_excl_chs(struct registry_priv *regsty) { int i; int ch_num = 0; - for (i = 0; i < MAX_CHANNEL_NUM; i++) + for (i = 0; i < MAX_CHANNEL_NUM_2G_5G; i++) if (((u8)rtw_excl_chs[i]) != 0) regsty->excl_chs[ch_num++] = (u8)rtw_excl_chs[i]; - if (ch_num < MAX_CHANNEL_NUM) + if (ch_num < MAX_CHANNEL_NUM_2G_5G) regsty->excl_chs[ch_num] = 0; + +#if CONFIG_IEEE80211_BAND_6GHZ + ch_num = 0; + for (i = 0; i < MAX_CHANNEL_NUM_6G; i++) + if (((u8)rtw_excl_chs_6g[i]) != 0) + regsty->excl_chs_6g[ch_num++] = (u8)rtw_excl_chs_6g[i]; + + if (ch_num < MAX_CHANNEL_NUM_6G) + regsty->excl_chs_6g[ch_num] = 0; +#endif } +#ifdef CONFIG_80211D +inline void rtw_regsty_load_country_ie_slave_settings(struct registry_priv *regsty) +{ + regsty->country_ie_slave_en_role = rtw_country_ie_slave_en_role; + regsty->country_ie_slave_en_ifbmp = rtw_country_ie_slave_en_ifbmp; +} +#endif + #ifdef CONFIG_80211N_HT inline void rtw_regsty_init_rx_ampdu_sz_limit(struct registry_priv *regsty) { @@ -1100,6 +1230,18 @@ inline void rtw_regsty_init_rx_ampdu_sz_limit(struct registry_priv *regsty) } #endif /* CONFIG_80211N_HT */ +#ifdef CONFIG_RTW_MULTI_AP +inline void rtw_regsty_init_unassoc_sta_param(struct registry_priv *regsty) +{ + int i; + + for (i = 0; i < UNASOC_STA_SRC_NUM; i++) + regsty->unassoc_sta_mode_of_stype[i] = rtw_unassoc_sta_mode_of_stype[i]; + + regsty->max_unassoc_sta_cnt = (u16) rtw_max_unassoc_sta_cnt; +} +#endif + uint loadparam(_adapter *padapter) { uint status = _SUCCESS; @@ -1247,6 +1389,7 @@ uint loadparam(_adapter *padapter) #ifdef CONFIG_80211AC_VHT registry_par->vht_enable = (u8)rtw_vht_enable; + registry_par->vht_24g_enable = (u8)rtw_vht_24g_enable; registry_par->ampdu_factor = (u8)rtw_ampdu_factor; registry_par->vht_rx_mcs_map[0] = (u8)(rtw_vht_rx_mcs_map & 0xFF); registry_par->vht_rx_mcs_map[1] = (u8)((rtw_vht_rx_mcs_map & 0xFF00) >> 8); @@ -1255,7 +1398,6 @@ uint loadparam(_adapter *padapter) #ifdef CONFIG_TX_EARLY_MODE registry_par->early_mode = (u8)rtw_early_mode; #endif - registry_par->lowrate_two_xmit = (u8)rtw_lowrate_two_xmit; registry_par->trx_path_bmp = (u8)rtw_trx_path_bmp; registry_par->tx_path_lmt = (u8)rtw_tx_path_lmt; registry_par->rx_path_lmt = (u8)rtw_rx_path_lmt; @@ -1267,18 +1409,25 @@ uint loadparam(_adapter *padapter) registry_par->wifi_spec = (u8)rtw_wifi_spec; - if (strlen(rtw_country_code) != 2 - || is_alpha(rtw_country_code[0]) == _FALSE - || is_alpha(rtw_country_code[1]) == _FALSE - ) { - if (rtw_country_code != rtw_country_unspecified) - RTW_ERR("%s discard rtw_country_code not in alpha2\n", __func__); - _rtw_memset(registry_par->alpha2, 0xFF, 2); - } else - _rtw_memcpy(registry_par->alpha2, rtw_country_code, 2); +#ifdef CONFIG_ACTIVE_TPC_REPORT + registry_par->active_tpc_report = (u8)rtw_active_tpc_report; +#endif - registry_par->channel_plan = (u8)rtw_channel_plan; +#ifdef CONFIG_REGD_SRC_FROM_OS + if (regd_src_is_valid(rtw_regd_src)) + registry_par->regd_src = (u8)rtw_regd_src; + else { + RTW_WARN("%s invalid rtw_regd_src(%u), use REGD_SRC_RTK_PRIV instead\n", __func__, rtw_regd_src); + registry_par->regd_src = REGD_SRC_RTK_PRIV; + } +#endif + + rtw_regsty_load_alpha2(registry_par); + rtw_regsty_load_chplan(registry_par); rtw_regsty_load_excl_chs(registry_par); +#ifdef CONFIG_80211D + rtw_regsty_load_country_ie_slave_settings(registry_par); +#endif registry_par->full_ch_in_p2p_handshake = (u8)rtw_full_ch_in_p2p_handshake; #ifdef CONFIG_BT_COEXIST @@ -1318,13 +1467,11 @@ uint loadparam(_adapter *padapter) registry_par->fw_iol = rtw_fw_iol; #endif -#ifdef CONFIG_80211D - registry_par->enable80211d = (u8)rtw_80211d; -#endif - snprintf(registry_par->ifname, 16, "%s", ifname); snprintf(registry_par->if2name, 16, "%s", if2name); - +#if defined(CONFIG_PLATFORM_ANDROID) && (CONFIG_IFACE_NUMBER > 2) + snprintf(registry_par->if3name, 16, "%s", if3name); +#endif registry_par->notch_filter = (u8)rtw_notch_filter; #ifdef CONFIG_CONCURRENT_MODE @@ -1336,11 +1483,15 @@ uint loadparam(_adapter *padapter) #endif registry_par->pll_ref_clk_sel = (u8)rtw_pll_ref_clk_sel; +#if CONFIG_TXPWR_LIMIT registry_par->RegEnableTxPowerLimit = (u8)rtw_tx_pwr_lmt_enable; +#endif registry_par->RegEnableTxPowerByRate = (u8)rtw_tx_pwr_by_rate; rtw_regsty_load_target_tx_power(registry_par); + registry_par->antenna_gain = (s16)rtw_antenna_gain; + registry_par->tsf_update_pause_factor = (u8)rtw_tsf_update_pause_factor; registry_par->tsf_update_restore_factor = (u8)rtw_tsf_update_restore_factor; @@ -1391,6 +1542,12 @@ uint loadparam(_adapter *padapter) #ifdef CONFIG_DFS_MASTER registry_par->dfs_region_domain = (u8)rtw_dfs_region_domain; + #ifdef CONFIG_REGD_SRC_FROM_OS + if (rtw_regd_src == REGD_SRC_OS && registry_par->dfs_region_domain != RTW_DFS_REGD_NONE) { + RTW_WARN("%s force disable radar detection capability when regd_src is OS\n", __func__); + registry_par->dfs_region_domain = RTW_DFS_REGD_NONE; + } + #endif #endif registry_par->amsdu_mode = (u8)rtw_amsdu_mode; @@ -1416,6 +1573,14 @@ uint loadparam(_adapter *padapter) registry_par->suspend_type = rtw_suspend_type; #endif +#if defined(CONFIG_SDIO_HCI) && defined(CONFIG_PREALLOC_RX_SKB_BUFFER) + if (rtw_recvbuf_nr != NR_RECVBUFF) { + RTW_WARN("CONFIG_PREALLOC_RX_SKB_BUFFER && CONFIG_SDIO_HCI, force recvbuf_nr to NR_RECVBUFF(%d)\n", NR_RECVBUFF); + rtw_recvbuf_nr = NR_RECVBUFF; + } +#endif + registry_par->recvbuf_nr = rtw_recvbuf_nr; + #ifdef CONFIG_SUPPORT_TRX_SHARED registry_par->trx_share_mode = rtw_trx_share_mode; #endif @@ -1455,7 +1620,19 @@ uint loadparam(_adapter *padapter) #endif #ifdef CONFIG_AP_MODE registry_par->bmc_tx_rate = rtw_bmc_tx_rate; -#endif + #if CONFIG_RTW_AP_DATA_BMC_TO_UC + registry_par->ap_src_b2u_flags = rtw_ap_src_b2u_flags; + registry_par->ap_fwd_b2u_flags = rtw_ap_fwd_b2u_flags; + #endif +#endif /* CONFIG_AP_MODE */ + +#ifdef CONFIG_RTW_MESH + #if CONFIG_RTW_MESH_DATA_BMC_TO_UC + registry_par->msrc_b2u_flags = rtw_msrc_b2u_flags; + registry_par->mfwd_b2u_flags = rtw_mfwd_b2u_flags; + #endif +#endif /* CONFIG_RTW_MESH */ + #ifdef CONFIG_FW_HANDLE_TXBCN registry_par->fw_tbtt_rpt = rtw_tbtt_rpt; #endif @@ -1473,6 +1650,12 @@ uint loadparam(_adapter *padapter) registry_par->rtw_8822c_xcap_overwrite = (u8)rtw_8822c_xcap_overwrite; #endif +#ifdef CONFIG_RTW_MULTI_AP + rtw_regsty_init_unassoc_sta_param(registry_par); +#endif + + registry_par->nbi_en = (u8)rtw_nbi_en; + return status; } @@ -1526,31 +1709,9 @@ static int rtw_net_set_mac_address(struct net_device *pnetdev, void *addr) } _rtw_memcpy(adapter_mac_addr(padapter), sa->sa_data, ETH_ALEN); /* set mac addr to adapter */ - _rtw_memcpy(pnetdev->dev_addr, sa->sa_data, ETH_ALEN); /* set mac addr to net_device */ + dev_addr_mod(pnetdev, 0, sa->sa_data, ETH_ALEN); -#if 0 - if (rtw_is_hw_init_completed(padapter)) { - rtw_ps_deny(padapter, PS_DENY_IOCTL); - LeaveAllPowerSaveModeDirect(padapter); /* leave PS mode for guaranteeing to access hw register successfully */ - -#ifdef CONFIG_MI_WITH_MBSSID_CAM - rtw_hal_change_macaddr_mbid(padapter, sa->sa_data); -#else - rtw_hal_set_hwreg(padapter, HW_VAR_MAC_ADDR, sa->sa_data); /* set mac addr to mac register */ -#endif - - rtw_ps_deny_cancel(padapter, PS_DENY_IOCTL); - } -#else - rtw_ps_deny(padapter, PS_DENY_IOCTL); - LeaveAllPowerSaveModeDirect(padapter); /* leave PS mode for guaranteeing to access hw register successfully */ -#ifdef CONFIG_MI_WITH_MBSSID_CAM - rtw_hal_change_macaddr_mbid(padapter, sa->sa_data); -#else - rtw_hal_set_hwreg(padapter, HW_VAR_MAC_ADDR, sa->sa_data); /* set mac addr to mac register */ -#endif - rtw_ps_deny_cancel(padapter, PS_DENY_IOCTL); -#endif + rtw_hal_set_hw_macaddr(padapter, sa->sa_data); RTW_INFO(FUNC_ADPT_FMT": Set Mac Addr to "MAC_FMT" Successfully\n" , FUNC_ADPT_ARG(padapter), MAC_ARG(sa->sa_data)); @@ -1635,36 +1796,29 @@ static u16 rtw_select_queue(struct net_device *dev, struct sk_buff *skb return rtw_1d_to_queue[skb->priority]; } +#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35)) */ -u16 rtw_recv_select_queue(struct sk_buff *skb) +u16 rtw_os_recv_select_queue(u8 *msdu, enum rtw_rx_llc_hdl llc_hdl) { - struct iphdr *piphdr; - unsigned int dscp; - u16 eth_type; - u32 priority; - u8 *pdata = skb->data; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35)) + u32 priority = 0; - _rtw_memcpy(ð_type, pdata + (ETH_ALEN << 1), 2); + if (llc_hdl == RTW_RX_LLC_REMOVE) { + u16 eth_type = RTW_GET_BE16(msdu + SNAP_SIZE); - switch (eth_type) { - case htons(ETH_P_IP): + if (eth_type == ETH_P_IP) { + struct iphdr *iphdr = (struct iphdr *)(msdu + SNAP_SIZE + 2); + unsigned int dscp = iphdr->tos & 0xfc; - piphdr = (struct iphdr *)(pdata + ETH_HLEN); - - dscp = piphdr->tos & 0xfc; - - priority = dscp >> 5; - - break; - default: - priority = 0; + priority = dscp >> 5; + } } return rtw_1d_to_queue[priority]; - -} - +#else + return 0; #endif +} static u8 is_rtw_ndev(struct net_device *ndev) { @@ -1753,6 +1907,16 @@ void rtw_ndev_uninit(struct net_device *dev) rtw_adapter_proc_deinit(dev); } +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0)) +static int rtw_siocdevprivate(struct net_device *dev, struct ifreq *ifr, + void __user *data, int cmd) +{ + /* handle cmd(s) between SIOCDEVPRIVATE and SIOCDEVPRIVATE + 15 */ + + return rtw_ioctl(dev, ifr, cmd); +} +#endif + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)) static const struct net_device_ops rtw_netdev_ops = { .ndo_init = rtw_ndev_init, @@ -1766,6 +1930,9 @@ static const struct net_device_ops rtw_netdev_ops = { .ndo_set_mac_address = rtw_net_set_mac_address, .ndo_get_stats = rtw_net_get_stats, .ndo_do_ioctl = rtw_ioctl, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0)) + .ndo_siocdevprivate = rtw_siocdevprivate, +#endif }; #endif @@ -1931,6 +2098,116 @@ void rtw_os_ndev_free(_adapter *adapter) } } +/* For ethtool +++ */ +#ifdef CONFIG_IOCTL_CFG80211 +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 7, 8)) +static void rtw_ethtool_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info) +{ + struct wireless_dev *wdev = NULL; + _adapter *padapter = NULL; + HAL_DATA_TYPE *hal_data = NULL; + + wdev = dev->ieee80211_ptr; + if (wdev) { + strlcpy(info->driver, wiphy_dev(wdev->wiphy)->driver->name, + sizeof(info->driver)); + } else { + strlcpy(info->driver, "N/A", sizeof(info->driver)); + } + + strlcpy(info->version, DRIVERVERSION, sizeof(info->version)); + + padapter = (_adapter *)rtw_netdev_priv(dev); + if (padapter) { + hal_data = GET_HAL_DATA(padapter); + } + + if (hal_data) { + scnprintf(info->fw_version, sizeof(info->fw_version), "%d.%d", + hal_data->firmware_version, hal_data->firmware_sub_version); + } else { + strlcpy(info->fw_version, "N/A", sizeof(info->fw_version)); + } + + strlcpy(info->bus_info, dev_name(wiphy_dev(wdev->wiphy)), + sizeof(info->bus_info)); +} + +static const char rtw_ethtool_gstrings_sta_stats[][ETH_GSTRING_LEN] = { + "rx_packets", "rx_bytes", "rx_dropped", + "tx_packets", "tx_bytes", "tx_dropped", +}; + +#define RTW_ETHTOOL_STATS_LEN ARRAY_SIZE(rtw_ethtool_gstrings_sta_stats) + +static int rtw_ethtool_get_sset_count(struct net_device *dev, int sset) +{ + int rv = 0; + + if (sset == ETH_SS_STATS) + rv += RTW_ETHTOOL_STATS_LEN; + + if (rv == 0) + return -EOPNOTSUPP; + + return rv; +} + +static void rtw_ethtool_get_strings(struct net_device *dev, u32 sset, u8 *data) +{ + int sz_sta_stats = 0; + + if (sset == ETH_SS_STATS) { + sz_sta_stats = sizeof(rtw_ethtool_gstrings_sta_stats); + memcpy(data, rtw_ethtool_gstrings_sta_stats, sz_sta_stats); + } +} + +static void rtw_ethtool_get_stats(struct net_device *dev, + struct ethtool_stats *stats, + u64 *data) +{ + int i = 0; + _adapter *padapter = NULL; + struct xmit_priv *pxmitpriv = NULL; + struct recv_priv *precvpriv = NULL; + + memset(data, 0, sizeof(u64) * RTW_ETHTOOL_STATS_LEN); + + padapter = (_adapter *)rtw_netdev_priv(dev); + if (padapter) { + pxmitpriv = &(padapter->xmitpriv); + precvpriv = &(padapter->recvpriv); + + data[i++] = precvpriv->rx_pkts; + data[i++] = precvpriv->rx_bytes; + data[i++] = precvpriv->rx_drop; + + data[i++] = pxmitpriv->tx_pkts; + data[i++] = pxmitpriv->tx_bytes; + data[i++] = pxmitpriv->tx_drop; + } else { + data[i++] = 0; + data[i++] = 0; + data[i++] = 0; + + data[i++] = 0; + data[i++] = 0; + data[i++] = 0; + } +} + +static const struct ethtool_ops rtw_ethtool_ops = { + .get_drvinfo = rtw_ethtool_get_drvinfo, + .get_link = ethtool_op_get_link, + .get_strings = rtw_ethtool_get_strings, + .get_ethtool_stats = rtw_ethtool_get_stats, + .get_sset_count = rtw_ethtool_get_sset_count, +}; +#endif // LINUX_VERSION_CODE >= 3.7.8 +#endif /* CONFIG_IOCTL_CFG80211 */ +/* For ethtool --- */ + int rtw_os_ndev_register(_adapter *adapter, const char *name) { struct dvobj_priv *dvobj = adapter_to_dvobj(adapter); @@ -1939,7 +2216,11 @@ int rtw_os_ndev_register(_adapter *adapter, const char *name) u8 rtnl_lock_needed = rtw_rtnl_lock_needed(dvobj); #ifdef CONFIG_RTW_NAPI +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)) + netif_napi_add(ndev, &adapter->napi, rtw_recv_napi_poll); +#else netif_napi_add(ndev, &adapter->napi, rtw_recv_napi_poll, RTL_NAPI_WEIGHT); +#endif #endif /* CONFIG_RTW_NAPI */ #if defined(CONFIG_IOCTL_CFG80211) @@ -1948,6 +2229,10 @@ int rtw_os_ndev_register(_adapter *adapter, const char *name) ret = _FAIL; goto exit; } + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 7, 8)) + netdev_set_default_ethtool_ops(ndev, &rtw_ethtool_ops); +#endif /* LINUX_VERSION_CODE >= 3.7.8 */ #endif #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)) && defined(CONFIG_PCI_HCI) ndev->gro_flush_timeout = 100000; @@ -1955,7 +2240,7 @@ int rtw_os_ndev_register(_adapter *adapter, const char *name) /* alloc netdev name */ rtw_init_netdev_name(ndev, name); - _rtw_memcpy(ndev->dev_addr, adapter_mac_addr(adapter), ETH_ALEN); + dev_addr_mod(ndev, 0, adapter_mac_addr(adapter), ETH_ALEN); /* Tell the network stack we exist */ @@ -2324,6 +2609,10 @@ u8 rtw_init_default_value(_adapter *padapter) padapter->rsvd_page_num = 0; #ifdef CONFIG_AP_MODE padapter->bmc_tx_rate = pregistrypriv->bmc_tx_rate; + #if CONFIG_RTW_AP_DATA_BMC_TO_UC + padapter->b2u_flags_ap_src = pregistrypriv->ap_src_b2u_flags; + padapter->b2u_flags_ap_fwd = pregistrypriv->ap_fwd_b2u_flags; + #endif #endif padapter->driver_tx_bw_mode = pregistrypriv->tx_bw_mode; @@ -2377,6 +2666,8 @@ struct dvobj_priv *devobj_init(void) { struct dvobj_priv *pdvobj = NULL; + rtw_dbg_mem_init(); + pdvobj = (struct dvobj_priv *)rtw_zmalloc(sizeof(*pdvobj)); if (pdvobj == NULL) return NULL; @@ -2417,7 +2708,7 @@ struct dvobj_priv *devobj_init(void) #endif _rtw_spinlock_init(&pdvobj->cam_ctl.lock); _rtw_mutex_init(&pdvobj->cam_ctl.sec_cam_access_mutex); -#if defined(RTK_129X_PLATFORM) && defined(CONFIG_PCI_HCI) +#if defined(CONFIG_PLATFORM_RTK129X) && defined(CONFIG_PCI_HCI) _rtw_spinlock_init(&pdvobj->io_reg_lock); #endif #ifdef CONFIG_MBSSID_CAM @@ -2458,6 +2749,9 @@ struct dvobj_priv *devobj_init(void) #endif pdvobj->scan_deny = _FALSE; + /* wpas type default from w1.fi */ + pdvobj->wpas_type = RTW_WPAS_W1FI; + return pdvobj; } @@ -2514,7 +2808,7 @@ void devobj_deinit(struct dvobj_priv *pdvobj) _rtw_spinlock_free(&pdvobj->cam_ctl.lock); _rtw_mutex_free(&pdvobj->cam_ctl.sec_cam_access_mutex); -#if defined(RTK_129X_PLATFORM) && defined(CONFIG_PCI_HCI) +#if defined(CONFIG_PLATFORM_RTK129X) && defined(CONFIG_PCI_HCI) _rtw_spinlock_free(&pdvobj->io_reg_lock); #endif #ifdef CONFIG_MBSSID_CAM @@ -2524,6 +2818,8 @@ void devobj_deinit(struct dvobj_priv *pdvobj) _rtw_spinlock_free(&(pdvobj->ap_if_q.lock)); #endif rtw_mfree((u8 *)pdvobj, sizeof(*pdvobj)); + + rtw_dbg_mem_deinit(); } inline u8 rtw_rtnl_lock_needed(struct dvobj_priv *dvobj) @@ -2629,11 +2925,18 @@ u8 rtw_init_drv_sw(_adapter *padapter) struct hal_spec_t *hal_spec = GET_HAL_SPEC(padapter); dvobj->macid_ctl.num = rtw_min(hal_spec->macid_num, MACID_NUM_SW_LIMIT); - + dvobj->macid_ctl.macid_cap = hal_spec->macid_cap; + dvobj->macid_ctl.macid_txrpt = hal_spec->macid_txrpt; + dvobj->macid_ctl.macid_txrpt_pgsz = hal_spec->macid_txrpt_pgsz; dvobj->cam_ctl.sec_cap = hal_spec->sec_cap; dvobj->cam_ctl.num = rtw_min(hal_spec->sec_cam_ent_num, SEC_CAM_ENT_NUM_SW_LIMIT); dvobj->wow_ctl.wow_cap = hal_spec->wow_cap; + + #ifdef CONFIG_SDIO_TX_ENABLE_AVAL_INT + dvobj->tx_aval_int_thr_mode = 2; /*setting by max tx length*/ + dvobj->tx_aval_int_thr_value = 0; + #endif /*CONFIG_SDIO_TX_ENABLE_AVAL_INT*/ #if CONFIG_TX_AC_LIFETIME { @@ -2656,6 +2959,9 @@ u8 rtw_init_drv_sw(_adapter *padapter) dvobj->tx_aclt_force_val.en = 0xFF; } #endif + #if defined (CONFIG_CONCURRENT_MODE) && defined (CONFIG_TSF_SYNC) + dvobj->sync_tsfr_counter = 0x0; + #endif } ret8 = rtw_init_default_value(padapter); @@ -2672,9 +2978,6 @@ u8 rtw_init_drv_sw(_adapter *padapter) goto exit; } - if (is_primary_adapter(padapter)) - rtw_rfctl_init(padapter); - if (is_primary_adapter(padapter)) { if (rtw_hal_rfpath_init(padapter) == _FAIL) { ret8 = _FAIL; @@ -2684,6 +2987,14 @@ u8 rtw_init_drv_sw(_adapter *padapter) ret8 = _FAIL; goto exit; } + if (rtw_hal_runtime_trx_path_decision(padapter) == _FAIL) { + ret8 = _FAIL; + goto exit; + } + if (rtw_rfctl_init(padapter) == _FAIL) { + ret8 = _FAIL; + goto exit; + } } if (rtw_init_mlme_priv(padapter) == _FAIL) { @@ -2691,13 +3002,14 @@ u8 rtw_init_drv_sw(_adapter *padapter) goto exit; } +#if (defined(CONFIG_P2P) && defined(CONFIG_CONCURRENT_MODE)) || defined(CONFIG_IOCTL_CFG80211) + rtw_init_roch_info(padapter); +#endif + #ifdef CONFIG_P2P rtw_init_wifidirect_timers(padapter); init_wifidirect_info(padapter, P2P_ROLE_DISABLE); reset_global_wifidirect_info(padapter); - #ifdef CONFIG_IOCTL_CFG80211 - rtw_init_cfg80211_wifidirect_info(padapter); - #endif #ifdef CONFIG_WFD if (rtw_init_wifi_display_info(padapter) == _FAIL) RTW_ERR("Can't init init_wifi_display_info\n"); @@ -2770,7 +3082,14 @@ u8 rtw_init_drv_sw(_adapter *padapter) RTW_INFO("%s: initialize MP private data Fail!\n", __func__); #endif + if (is_primary_adapter(padapter)) + rtw_edcca_mode_update(adapter_to_dvobj(padapter)); + rtw_hal_dm_init(padapter); + + if (is_primary_adapter(padapter)) + rtw_rfctl_chplan_init(padapter); + #ifdef CONFIG_RTW_SW_LED rtw_hal_sw_led_init(padapter); #endif @@ -2801,13 +3120,14 @@ u8 rtw_init_drv_sw(_adapter *padapter) rtw_init_rm(padapter); #endif -#ifdef CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI - memset(pwdev_priv->pno_mac_addr, 0xFF, ETH_ALEN); +#ifdef CONFIG_TDMADIG + RTW_INFO("CONFIG_TDMADIG : Enable\n"); +#else + RTW_INFO("CONFIG_TDMADIG : Disable\n"); #endif -#ifdef CONFIG_ALIBABA_ZEROCONFIG - padapter->genl_bind_pid = -1; - _rtw_memset(padapter->target_macaddr, 0, ETH_ALEN); +#ifdef CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI + memset(pwdev_priv->pno_mac_addr, 0xFF, ETH_ALEN); #endif exit: @@ -2852,9 +3172,7 @@ void rtw_cancel_all_timer(_adapter *padapter) #endif #ifdef CONFIG_IOCTL_CFG80211 -#ifdef CONFIG_P2P - _cancel_timer_ex(&padapter->cfg80211_wdinfo.remain_on_ch_timer); -#endif /* CONFIG_P2P */ + _cancel_timer_ex(&padapter->rochinfo.remain_on_ch_timer); #endif /* CONFIG_IOCTL_CFG80211 */ #ifdef CONFIG_SET_SCAN_DENY_TIMER @@ -2896,12 +3214,15 @@ u8 rtw_free_drv_sw(_adapter *padapter) #ifdef CONFIG_P2P { struct wifidirect_info *pwdinfo = &padapter->wdinfo; + #ifdef CONFIG_CONCURRENT_MODE + struct roch_info *prochinfo = &padapter->rochinfo; + #endif if (!rtw_p2p_chk_state(pwdinfo, P2P_STATE_NONE)) { _cancel_timer_ex(&pwdinfo->find_phase_timer); _cancel_timer_ex(&pwdinfo->restore_p2p_state_timer); _cancel_timer_ex(&pwdinfo->pre_tx_scan_timer); #ifdef CONFIG_CONCURRENT_MODE - _cancel_timer_ex(&pwdinfo->ap_p2p_switch_timer); + _cancel_timer_ex(&prochinfo->ap_roch_ch_switch_timer); #endif /* CONFIG_CONCURRENT_MODE */ rtw_p2p_set_state(pwdinfo, P2P_STATE_NONE); } @@ -2943,6 +3264,13 @@ u8 rtw_free_drv_sw(_adapter *padapter) rtw_free_pwrctrl_priv(padapter); +#ifdef CONFIG_PLATFORM_CMAP_INTFS + if (padapter->cmap_bss_status_evt) { + cmap_intfs_mfree(padapter->cmap_bss_status_evt, padapter->cmap_bss_status_evt_len); + padapter->cmap_bss_status_evt = NULL; + } +#endif + /* rtw_mfree((void *)padapter, sizeof (padapter)); */ rtw_hal_free_data(padapter); @@ -3025,7 +3353,6 @@ int _netdev_vir_if_open(struct net_device *pnetdev) #endif #ifdef CONFIG_IOCTL_CFG80211 - rtw_cfg80211_init_wiphy(padapter); rtw_cfg80211_init_wdev_data(padapter); #endif @@ -3116,6 +3443,9 @@ static const struct net_device_ops rtw_netdev_vir_if_ops = { .ndo_set_mac_address = rtw_net_set_mac_address, .ndo_get_stats = rtw_net_get_stats, .ndo_do_ioctl = rtw_ioctl, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0)) + .ndo_siocdevprivate = rtw_siocdevprivate, +#endif #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35)) .ndo_select_queue = rtw_select_queue, #endif @@ -3147,6 +3477,10 @@ _adapter *rtw_drv_add_vir_if(_adapter *primary_padapter, _adapter *padapter = NULL; struct dvobj_priv *pdvobjpriv; u8 mac[ETH_ALEN]; +#ifdef CONFIG_MI_UNIQUE_MACADDR_BIT + u32 mi_unique_macaddr_bit = 0; + u8 i; +#endif /****** init adapter ******/ padapter = (_adapter *)rtw_zvmalloc(sizeof(*padapter)); @@ -3170,6 +3504,8 @@ _adapter *rtw_drv_add_vir_if(_adapter *primary_padapter, #ifdef CONFIG_MI_WITH_MBSSID_CAM padapter->hw_port = HW_PORT0; +#elif defined(CONFIG_PORT_BASED_TXBCN) + padapter->hw_port = adapter_to_dvobj(padapter)->iface_nums; #else padapter->hw_port = HW_PORT1; #endif @@ -3196,6 +3532,27 @@ _adapter *rtw_drv_add_vir_if(_adapter *primary_padapter, /*get mac address from primary_padapter*/ _rtw_memcpy(mac, adapter_mac_addr(primary_padapter), ETH_ALEN); +#ifdef CONFIG_MI_UNIQUE_MACADDR_BIT + mi_unique_macaddr_bit = BIT(CONFIG_MI_UNIQUE_MACADDR_BIT) >> 24; + /* Find out CONFIG_MI_UNIQUE_MACADDR_BIT in which nic specific byte */ + for(i=3;i<6;i++) { + if((mi_unique_macaddr_bit >> 8) == 0) + break; + + mi_unique_macaddr_bit >>= 8; + } + + if((mac[i] & (u8)mi_unique_macaddr_bit)== 0) { + RTW_INFO("%s() "MAC_FMT" : BIT%u is zero\n", __func__, MAC_ARG(mac), CONFIG_MI_UNIQUE_MACADDR_BIT); + /* IFACE_ID1/IFACE_ID3 : set locally administered bit */ + if(padapter->iface_id & BIT(0)) + mac[0] |= BIT(1); + /* IFACE_ID2/IFACE_ID3 : set bit(CONFIG_MI_UNIQUE_MACADDR_BIT) */ + if(padapter->iface_id >> 1) + mac[i] |= (u8)mi_unique_macaddr_bit; + } else +#endif + { /* * If the BIT1 is 0, the address is universally administered. * If it is 1, the address is locally administered @@ -3203,6 +3560,7 @@ _adapter *rtw_drv_add_vir_if(_adapter *primary_padapter, mac[0] |= BIT(1); if (padapter->iface_id > IFACE_ID1) mac[0] ^= ((padapter->iface_id)<<2); + } _rtw_memcpy(adapter_mac_addr(padapter), mac, ETH_ALEN); /* update mac-address to mbsid-cam cache*/ @@ -3471,6 +3829,10 @@ int rtw_os_ndevs_register(struct dvobj_priv *dvobj) name = regsty->ifname; else if (adapter->iface_id == IFACE_ID1) name = regsty->if2name; +#if defined(CONFIG_PLATFORM_ANDROID) && (CONFIG_IFACE_NUMBER > 2) + else if (adapter->iface_id == IFACE_ID2) + name = regsty->if3name; +#endif else name = "wlan%d"; @@ -3528,7 +3890,6 @@ int rtw_os_ndevs_init(struct dvobj_priv *dvobj) { int ret = _FAIL; - RTW_INFO(" ====> %s\n", __func__); if (rtw_os_ndevs_alloc(dvobj) != _SUCCESS) goto exit; @@ -3541,7 +3902,6 @@ os_ndevs_free: if (ret != _SUCCESS) rtw_os_ndevs_free(dvobj); exit: - RTW_INFO(" %s <====\n", __func__); return ret; } @@ -3656,7 +4016,6 @@ int _netdev_open(struct net_device *pnetdev) #endif #ifdef CONFIG_IOCTL_CFG80211 - rtw_cfg80211_init_wiphy(padapter); rtw_cfg80211_init_wdev_data(padapter); #endif /* rtw_netif_carrier_on(pnetdev); */ /* call this func when rtw_joinbss_event_callback return success */ @@ -3758,7 +4117,6 @@ int _netdev_open(struct net_device *pnetdev) #endif /* !RTW_HALMAC */ #ifdef CONFIG_IOCTL_CFG80211 - rtw_cfg80211_init_wiphy(padapter); rtw_cfg80211_init_wdev_data(padapter); #endif @@ -4517,6 +4875,9 @@ void rtw_dev_unload(PADAPTER padapter) struct dvobj_priv *pobjpriv = padapter->dvobj; struct debug_priv *pdbgpriv = &pobjpriv->drv_dbg; struct cmd_priv *pcmdpriv = &padapter->cmdpriv; +#ifdef CONFIG_WAKE_ON_BT + u8 disable = 0; +#endif if (padapter->bup == _TRUE) { RTW_INFO("==> "FUNC_ADPT_FMT"\n", FUNC_ADPT_ARG(padapter)); @@ -4525,10 +4886,14 @@ void rtw_dev_unload(PADAPTER padapter) #ifdef CONFIG_GPIO_WAKEUP /*default wake up pin change to BT*/ RTW_INFO("%s:default wake up pin change to BT\n", __FUNCTION__); - rtw_hal_switch_gpio_wl_ctrl(padapter, WAKEUP_GPIO_IDX, _FALSE); + rtw_hal_switch_gpio_wl_ctrl(padapter, pwrctl->wowlan_gpio_index, _FALSE); #endif /* CONFIG_GPIO_WAKEUP */ #endif /* CONFIG_WOWLAN */ +#ifdef CONFIG_WAKE_ON_BT + rtw_hal_set_hwreg(padapter, HW_VAR_WAKE_ON_BT_GPIO_SWITCH, (u8 *)(&disable)); +#endif + rtw_set_drv_stopped(padapter); #ifdef CONFIG_XMIT_ACK if (padapter->xmitpriv.ack_tx) @@ -4645,7 +5010,14 @@ int rtw_suspend_wow(_adapter *padapter) struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter); struct wowlan_ioctl_param poidparam; int ret = _SUCCESS; - + u8 en = _TRUE, i; + struct registry_priv *registry_par = &padapter->registrypriv; + struct dvobj_priv *dvobj = adapter_to_dvobj(padapter); + _adapter *iface = NULL; + struct hal_spec_t *hal_spec = GET_HAL_SPEC(padapter); +#ifdef CONFIG_WAKE_ON_BT + u8 enable = 1; +#endif RTW_INFO("==> "FUNC_ADPT_FMT" entry....\n", FUNC_ADPT_ARG(padapter)); @@ -4655,113 +5027,141 @@ int rtw_suspend_wow(_adapter *padapter) RTW_INFO("wowlan_p2p_enable: %d\n", pwrpriv->wowlan_p2p_enable); #endif - if (pwrpriv->wowlan_mode == _TRUE) { - rtw_mi_netif_stop_queue(padapter); - #ifdef CONFIG_CONCURRENT_MODE - rtw_mi_buddy_netif_carrier_off(padapter); - #endif + rtw_mi_netif_stop_queue(padapter); + #ifdef CONFIG_CONCURRENT_MODE + rtw_mi_buddy_netif_carrier_off(padapter); + #endif - /* 0. Power off LED */ - rtw_led_control(padapter, LED_CTL_POWER_OFF); + /* 0. Power off LED */ + rtw_led_control(padapter, LED_CTL_POWER_OFF); + +#ifdef CONFIG_WAKE_ON_BT + rtw_hal_set_hwreg(padapter, HW_VAR_WAKE_ON_BT_GPIO_SWITCH, (u8 *)(&enable)); +#endif #if defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI) - /* 2.only for SDIO disable interrupt */ - rtw_intf_stop(padapter); + /* 2.only for SDIO disable interrupt */ + rtw_intf_stop(padapter); - /* 2.1 clean interrupt */ - rtw_hal_clear_interrupt(padapter); + /* 2.1 clean interrupt */ + rtw_hal_clear_interrupt(padapter); #endif /* CONFIG_SDIO_HCI */ - /* 1. stop thread */ - rtw_set_drv_stopped(padapter); /*for stop thread*/ - rtw_mi_stop_drv_threads(padapter); + /* enable ac lifetime during scan to avoid txfifo not empty. */ + dvobj->lifetime_en = rtw_read8(padapter, 0x426); + dvobj->pkt_lifetime = rtw_read32(padapter, 0x4c0); + rtw_write8(padapter, 0x426, rtw_read8(padapter, 0x426) | 0x0f); + if(hal_spec->tx_aclt_unit_factor == 1) { + rtw_write16(padapter, 0x4c0, 0x1000); // unit: 32us. 131ms + rtw_write16(padapter, 0x4c0 + 2 , 0x1000); // unit: 32us. 131ms + } else { + rtw_write16(padapter, 0x4c0, 0x0200); // unit: 256us. 131ms + rtw_write16(padapter, 0x4c0 + 2 , 0x0200); // unit: 256us. 131ms + } + for (i = 0; i < dvobj->iface_nums; i++) { + iface = dvobj->padapters[i]; + if ((iface) && rtw_is_adapter_up(iface)) { + rtw_write_port_cancel(iface); + RTW_INFO(ADPT_FMT " write port cancel\n", ADPT_ARG(iface)); + } + } + RTW_INFO("lifetime_en=%x, pkt_lifetime=%x\n", rtw_read8(padapter, 0x426), rtw_read32(padapter, 0x4c0)); + rtw_msleep_os(200); - rtw_clr_drv_stopped(padapter); /*for 32k command*/ + /* 1. stop thread */ + rtw_set_drv_stopped(padapter); /*for stop thread*/ + rtw_mi_stop_drv_threads(padapter); - /* #ifdef CONFIG_LPS */ - /* rtw_set_ps_mode(padapter, PS_MODE_ACTIVE, 0, 0, "WOWLAN"); */ - /* #endif */ + rtw_clr_drv_stopped(padapter); /*for 32k command*/ - #ifdef CONFIG_SDIO_HCI - /* 2.2 free irq */ - #if !(CONFIG_RTW_SDIO_KEEP_IRQ) - sdio_free_irq(adapter_to_dvobj(padapter)); - #endif - #endif/*CONFIG_SDIO_HCI*/ + /* #ifdef CONFIG_LPS */ + /* rtw_set_ps_mode(padapter, PS_MODE_ACTIVE, 0, 0, "WOWLAN"); */ + /* #endif */ + + #if defined(CONFIG_SDIO_HCI) && (CONFIG_RTW_SDIO_RELEASE_IRQ >= 1) + sdio_free_irq(adapter_to_dvobj(padapter)); + #endif #ifdef CONFIG_RUNTIME_PORT_SWITCH - if (rtw_port_switch_chk(padapter)) { - RTW_INFO(" ### PORT SWITCH ###\n"); - rtw_hal_set_hwreg(padapter, HW_VAR_PORT_SWITCH, NULL); - } + if (rtw_port_switch_chk(padapter)) { + RTW_INFO(" ### PORT SWITCH ###\n"); + rtw_hal_set_hwreg(padapter, HW_VAR_PORT_SWITCH, NULL); + } #endif - - rtw_wow_lps_level_decide(padapter, _TRUE); - poidparam.subcode = WOWLAN_ENABLE; - rtw_hal_set_hwreg(padapter, HW_VAR_WOWLAN, (u8 *)&poidparam); - if (rtw_chk_roam_flags(padapter, RTW_ROAM_ON_RESUME)) { - if (check_fwstate(pmlmepriv, WIFI_STATION_STATE) - && check_fwstate(pmlmepriv, WIFI_ASOC_STATE)) { - RTW_INFO("%s %s(" MAC_FMT "), length:%d assoc_ssid.length:%d\n", __FUNCTION__, - pmlmepriv->cur_network.network.Ssid.Ssid, - MAC_ARG(pmlmepriv->cur_network.network.MacAddress), - pmlmepriv->cur_network.network.Ssid.SsidLength, - pmlmepriv->assoc_ssid.SsidLength); - - rtw_set_to_roam(padapter, 0); - } - } - - RTW_PRINT("%s: wowmode suspending\n", __func__); - - if (check_fwstate(pmlmepriv, WIFI_UNDER_SURVEY) == _TRUE) { - RTW_PRINT("%s: fw_under_survey\n", __func__); - rtw_indicate_scan_done(padapter, 1); - clr_fwstate(pmlmepriv, WIFI_UNDER_SURVEY); - } - -#if 1 - if (rtw_mi_check_status(padapter, MI_LINKED)) { - ch = rtw_mi_get_union_chan(padapter); - bw = rtw_mi_get_union_bw(padapter); - offset = rtw_mi_get_union_offset(padapter); - RTW_INFO(FUNC_ADPT_FMT" back to linked/linking union - ch:%u, bw:%u, offset:%u\n", - FUNC_ADPT_ARG(padapter), ch, bw, offset); - set_channel_bwmode(padapter, ch, offset, bw); - } -#else - if (rtw_mi_get_ch_setting_union(padapter, &ch, &bw, &offset) != 0) { - RTW_INFO(FUNC_ADPT_FMT" back to linked/linking union - ch:%u, bw:%u, offset:%u\n", - FUNC_ADPT_ARG(padapter), ch, bw, offset); - set_channel_bwmode(padapter, ch, offset, bw); - rtw_mi_update_union_chan_inf(padapter, ch, offset, bw); + if(registry_par->suspend_type == FW_IPS_WRC) + rtw_hal_set_hwreg(padapter, HW_VAR_VENDOR_WOW_MODE, &en); +#ifdef CONFIG_LPS + if (!pwrpriv->wowlan_pno_enable) { + if(pwrpriv->wowlan_power_mgmt != PS_MODE_ACTIVE) { + rtw_wow_lps_level_decide(padapter, _TRUE); } + } #endif + poidparam.subcode = WOWLAN_ENABLE; + rtw_hal_set_hwreg(padapter, HW_VAR_WOWLAN, (u8 *)&poidparam); + if (rtw_chk_roam_flags(padapter, RTW_ROAM_ON_RESUME)) { + if (check_fwstate(pmlmepriv, WIFI_STATION_STATE) + && check_fwstate(pmlmepriv, WIFI_ASOC_STATE)) { + RTW_INFO("%s %s(" MAC_FMT "), length:%d assoc_ssid.length:%d\n", __FUNCTION__, + pmlmepriv->cur_network.network.Ssid.Ssid, + MAC_ARG(pmlmepriv->cur_network.network.MacAddress), + pmlmepriv->cur_network.network.Ssid.SsidLength, + pmlmepriv->assoc_ssid.SsidLength); + + rtw_set_to_roam(padapter, 0); + } + } + + RTW_PRINT("%s: wowmode suspending\n", __func__); + + if (check_fwstate(pmlmepriv, WIFI_UNDER_SURVEY) == _TRUE) { + RTW_PRINT("%s: fw_under_survey\n", __func__); + rtw_indicate_scan_done(padapter, 1); + clr_fwstate(pmlmepriv, WIFI_UNDER_SURVEY); + } + + if (rtw_mi_check_status(padapter, MI_LINKED)) { + ch = rtw_mi_get_union_chan(padapter); + bw = rtw_mi_get_union_bw(padapter); + offset = rtw_mi_get_union_offset(padapter); + RTW_INFO(FUNC_ADPT_FMT" back to linked/linking union - ch:%u, bw:%u, offset:%u\n", + FUNC_ADPT_ARG(padapter), ch, bw, offset); + set_channel_bwmode(padapter, ch, offset, bw); + } + #ifdef CONFIG_CONCURRENT_MODE - rtw_mi_buddy_suspend_free_assoc_resource(padapter); + rtw_mi_buddy_suspend_free_assoc_resource(padapter); #endif #ifdef CONFIG_BT_COEXIST - rtw_btcoex_SuspendNotify(padapter, BTCOEX_SUSPEND_STATE_SUSPEND_KEEP_ANT); + rtw_btcoex_SuspendNotify(padapter, BTCOEX_SUSPEND_STATE_SUSPEND_KEEP_ANT); #endif - if (pwrpriv->wowlan_pno_enable) { - RTW_PRINT("%s: pno: %d\n", __func__, - pwrpriv->wowlan_pno_enable); + if (pwrpriv->wowlan_pno_enable) { + RTW_PRINT("%s: pno: %d\n", __func__, pwrpriv->wowlan_pno_enable); +#ifndef RTW_HALMAC #ifdef CONFIG_FWLPS_IN_IPS - rtw_set_fw_in_ips_mode(padapter, _TRUE); + rtw_set_fw_in_ips_mode(padapter, _TRUE); #endif - } +#else /* RTW_HALMAC */ + // TODO(Owen): Controlled by wowlan lps_level + /* Although ICs with HALMAC can have NLO PS (and LCLK) via H2C 0x8C, + * we write RPWM here so that the enter/leave LCLK actions can be + * symmetrical. + */ +#ifdef CONFIG_LPS_LCLK + rtw_set_lps_lclk(padapter, _TRUE); +#endif +#endif + } #ifdef CONFIG_LPS - else { - if(pwrpriv->wowlan_power_mgmt != PS_MODE_ACTIVE) { - rtw_set_ps_mode(padapter, pwrpriv->wowlan_power_mgmt, 0, 0, "WOWLAN"); - } + else { + if(pwrpriv->wowlan_power_mgmt != PS_MODE_ACTIVE) { + rtw_set_ps_mode(padapter, pwrpriv->wowlan_power_mgmt, 0, 0, "WOWLAN"); } + } #endif /* #ifdef CONFIG_LPS */ - } else - RTW_PRINT("%s: ### ERROR ### wowlan_mode=%d\n", __FUNCTION__, pwrpriv->wowlan_mode); RTW_INFO("<== "FUNC_ADPT_FMT" exit....\n", FUNC_ADPT_ARG(padapter)); return ret; } @@ -4799,12 +5199,9 @@ int rtw_suspend_ap_wow(_adapter *padapter) rtw_mi_stop_drv_threads(padapter); rtw_clr_drv_stopped(padapter); /*for 32k command*/ - #ifdef CONFIG_SDIO_HCI - /* 2.2 free irq */ - #if !(CONFIG_RTW_SDIO_KEEP_IRQ) + #if defined(CONFIG_SDIO_HCI) && (CONFIG_RTW_SDIO_RELEASE_IRQ >= 1) sdio_free_irq(adapter_to_dvobj(padapter)); #endif - #endif/*CONFIG_SDIO_HCI*/ #ifdef CONFIG_RUNTIME_PORT_SWITCH if (rtw_port_switch_chk(padapter)) { @@ -4812,13 +5209,18 @@ int rtw_suspend_ap_wow(_adapter *padapter) rtw_hal_set_hwreg(padapter, HW_VAR_PORT_SWITCH, NULL); } #endif - - rtw_wow_lps_level_decide(padapter, _TRUE); +#ifdef CONFIG_LPS + if (!pwrpriv->wowlan_pno_enable) { + if(pwrpriv->wowlan_power_mgmt != PS_MODE_ACTIVE) { + rtw_wow_lps_level_decide(padapter, _TRUE); + } + } +#endif poidparam.subcode = WOWLAN_AP_ENABLE; rtw_hal_set_hwreg(padapter, HW_VAR_WOWLAN, (u8 *)&poidparam); RTW_PRINT("%s: wowmode suspending\n", __func__); -#if 1 + if (rtw_mi_check_status(padapter, MI_LINKED)) { ch = rtw_mi_get_union_chan(padapter); bw = rtw_mi_get_union_bw(padapter); @@ -4826,13 +5228,6 @@ int rtw_suspend_ap_wow(_adapter *padapter) RTW_INFO("back to linked/linking union - ch:%u, bw:%u, offset:%u\n", ch, bw, offset); set_channel_bwmode(padapter, ch, offset, bw); } -#else - if (rtw_mi_get_ch_setting_union(padapter, &ch, &bw, &offset) != 0) { - RTW_INFO("back to linked/linking union - ch:%u, bw:%u, offset:%u\n", ch, bw, offset); - set_channel_bwmode(padapter, ch, offset, bw); - rtw_mi_update_union_chan_inf(padapter, ch, offset, bw); - } -#endif /*FOR ONE AP - TODO :Multi-AP*/ { @@ -4863,7 +5258,7 @@ int rtw_suspend_ap_wow(_adapter *padapter) RTW_INFO("<== "FUNC_ADPT_FMT" exit....\n", FUNC_ADPT_ARG(padapter)); return ret; } -#endif /* #ifdef CONFIG_AP_WOWLAN */ +#endif /* CONFIG_AP_WOWLAN */ int rtw_suspend_normal(_adapter *padapter) @@ -4872,13 +5267,14 @@ int rtw_suspend_normal(_adapter *padapter) RTW_INFO("==> "FUNC_ADPT_FMT" entry....\n", FUNC_ADPT_ARG(padapter)); -#ifdef CONFIG_BT_COEXIST - rtw_btcoex_SuspendNotify(padapter, BTCOEX_SUSPEND_STATE_SUSPEND); -#endif rtw_mi_netif_caroff_qstop(padapter); rtw_mi_suspend_free_assoc_resource(padapter); +#ifdef CONFIG_BT_COEXIST + rtw_btcoex_SuspendNotify(padapter, BTCOEX_SUSPEND_STATE_SUSPEND); +#endif + rtw_led_control(padapter, LED_CTL_POWER_OFF); if ((rtw_hal_check_ips_status(padapter) == _TRUE) @@ -4896,7 +5292,7 @@ int rtw_suspend_normal(_adapter *padapter) #ifdef CONFIG_SDIO_HCI sdio_deinit(adapter_to_dvobj(padapter)); - #if !(CONFIG_RTW_SDIO_KEEP_IRQ) + #if (CONFIG_RTW_SDIO_RELEASE_IRQ >= 1) sdio_free_irq(adapter_to_dvobj(padapter)); #endif #endif /*CONFIG_SDIO_HCI*/ @@ -5006,6 +5402,7 @@ int rtw_resume_process_wow(_adapter *padapter) struct sta_info *psta = NULL; struct registry_priv *registry_par = &padapter->registrypriv; int ret = _SUCCESS; + u8 en = _FALSE; RTW_INFO("==> "FUNC_ADPT_FMT" entry....\n", FUNC_ADPT_ARG(padapter)); @@ -5026,75 +5423,82 @@ int rtw_resume_process_wow(_adapter *padapter) } pwrpriv->wowlan_in_resume = _TRUE; -#ifdef CONFIG_PNO_SUPPORT -#ifdef CONFIG_FWLPS_IN_IPS - if (pwrpriv->wowlan_pno_enable) - rtw_set_fw_in_ips_mode(padapter, _FALSE); -#endif /* CONFIG_FWLPS_IN_IPS */ -#endif/* CONFIG_PNO_SUPPORT */ - if (pwrpriv->wowlan_mode == _TRUE) { + if (pwrpriv->wowlan_pno_enable) { + RTW_PRINT("%s: pno: %d\n", __func__, pwrpriv->wowlan_pno_enable); +#ifndef RTW_HALMAC +#ifdef CONFIG_FWLPS_IN_IPS + rtw_set_fw_in_ips_mode(padapter, _FALSE); +#endif +#else /* RTW_HALMAC */ +#ifdef CONFIG_LPS_LCLK + // TODO(Owen): Controlled by wowlan lps_level + rtw_set_lps_lclk(padapter, _FALSE); +#endif +#endif + } else { #ifdef CONFIG_LPS if(pwrpriv->wowlan_power_mgmt != PS_MODE_ACTIVE) { rtw_set_ps_mode(padapter, PS_MODE_ACTIVE, 0, 0, "WOWLAN"); rtw_wow_lps_level_decide(padapter, _FALSE); } #endif /* CONFIG_LPS */ + } - pwrpriv->bFwCurrentInPSMode = _FALSE; + rtw_write8(padapter, 0x426, psdpriv->lifetime_en); + rtw_write32(padapter, 0x4c0, psdpriv->pkt_lifetime); + + pwrpriv->bFwCurrentInPSMode = _FALSE; #if defined(CONFIG_SDIO_HCI) || defined(CONFIG_PCI_HCI) - rtw_mi_intf_stop(padapter); - rtw_hal_clear_interrupt(padapter); + rtw_mi_intf_stop(padapter); + rtw_hal_clear_interrupt(padapter); #endif - #ifdef CONFIG_SDIO_HCI - #if !(CONFIG_RTW_SDIO_KEEP_IRQ) - if (sdio_alloc_irq(adapter_to_dvobj(padapter)) != _SUCCESS) { - ret = -1; - goto exit; - } - #endif - #endif/*CONFIG_SDIO_HCI*/ + #if defined(CONFIG_SDIO_HCI) && (CONFIG_RTW_SDIO_RELEASE_IRQ >= 1) + if (sdio_alloc_irq(adapter_to_dvobj(padapter)) != _SUCCESS) { + ret = -1; + goto exit; + } + #endif - /* Disable WOW, set H2C command */ - poidparam.subcode = WOWLAN_DISABLE; - rtw_hal_set_hwreg(padapter, HW_VAR_WOWLAN, (u8 *)&poidparam); + /* Disable WOW, set H2C command */ + poidparam.subcode = WOWLAN_DISABLE; + rtw_hal_set_hwreg(padapter, HW_VAR_WOWLAN, (u8 *)&poidparam); #ifdef CONFIG_CONCURRENT_MODE - rtw_mi_buddy_reset_drv_sw(padapter); + rtw_mi_buddy_reset_drv_sw(padapter); #endif - psta = rtw_get_stainfo(&padapter->stapriv, get_bssid(&padapter->mlmepriv)); - if (psta) - set_sta_rate(padapter, psta); + psta = rtw_get_stainfo(&padapter->stapriv, get_bssid(&padapter->mlmepriv)); + if (psta) + set_sta_rate(padapter, psta); - rtw_clr_drv_stopped(padapter); - RTW_INFO("%s: wowmode resuming, DriverStopped:%s\n", __func__, rtw_is_drv_stopped(padapter) ? "True" : "False"); + rtw_clr_drv_stopped(padapter); + RTW_INFO("%s: wowmode resuming, DriverStopped:%s\n", __func__, rtw_is_drv_stopped(padapter) ? "True" : "False"); - rtw_mi_start_drv_threads(padapter); + if(registry_par->suspend_type == FW_IPS_WRC) + rtw_hal_set_hwreg(padapter, HW_VAR_VENDOR_WOW_MODE, &en); - rtw_mi_intf_start(padapter); - - if(registry_par->suspend_type == FW_IPS_DISABLE_BBRF && !check_fwstate(pmlmepriv, WIFI_ASOC_STATE)) { - if (!rtw_is_surprise_removed(padapter)) { - rtw_hal_deinit(padapter); - rtw_hal_init(padapter); - } - RTW_INFO("FW_IPS_DISABLE_BBRF hal deinit, hal init \n"); + rtw_mi_start_drv_threads(padapter); + + rtw_mi_intf_start(padapter); + + if(registry_par->suspend_type == FW_IPS_DISABLE_BBRF && !check_fwstate(pmlmepriv, WIFI_ASOC_STATE)) { + if (!rtw_is_surprise_removed(padapter)) { + rtw_hal_deinit(padapter); + rtw_hal_init(padapter); } + RTW_INFO("FW_IPS_DISABLE_BBRF hal deinit, hal init \n"); + } #ifdef CONFIG_CONCURRENT_MODE - rtw_mi_buddy_netif_carrier_on(padapter); + rtw_mi_buddy_netif_carrier_on(padapter); #endif - /* start netif queue */ - rtw_mi_netif_wake_queue(padapter); - - } else - - RTW_PRINT("%s: ### ERROR ### wowlan_mode=%d\n", __FUNCTION__, pwrpriv->wowlan_mode); + /* start netif queue */ + rtw_mi_netif_wake_queue(padapter); if (padapter->pid[1] != 0) { RTW_INFO("pid[1]:%d\n", padapter->pid[1]); @@ -5194,14 +5598,13 @@ int rtw_resume_process_ap_wow(_adapter *padapter) rtw_hal_clear_interrupt(padapter); - #ifdef CONFIG_SDIO_HCI - #if !(CONFIG_RTW_SDIO_KEEP_IRQ) + #if defined(CONFIG_SDIO_HCI) && (CONFIG_RTW_SDIO_RELEASE_IRQ >= 1) if (sdio_alloc_irq(adapter_to_dvobj(padapter)) != _SUCCESS) { ret = -1; goto exit; } #endif - #endif/*CONFIG_SDIO_HCI*/ + /* Disable WOW, set H2C command */ poidparam.subcode = WOWLAN_AP_DISABLE; rtw_hal_set_hwreg(padapter, HW_VAR_WOWLAN, (u8 *)&poidparam); @@ -5212,7 +5615,6 @@ int rtw_resume_process_ap_wow(_adapter *padapter) rtw_mi_start_drv_threads(padapter); -#if 1 if (rtw_mi_check_status(padapter, MI_LINKED)) { ch = rtw_mi_get_union_chan(padapter); bw = rtw_mi_get_union_bw(padapter); @@ -5220,13 +5622,6 @@ int rtw_resume_process_ap_wow(_adapter *padapter) RTW_INFO(FUNC_ADPT_FMT" back to linked/linking union - ch:%u, bw:%u, offset:%u\n", FUNC_ADPT_ARG(padapter), ch, bw, offset); set_channel_bwmode(padapter, ch, offset, bw); } -#else - if (rtw_mi_get_ch_setting_union(padapter, &ch, &bw, &offset) != 0) { - RTW_INFO(FUNC_ADPT_FMT" back to linked/linking union - ch:%u, bw:%u, offset:%u\n", FUNC_ADPT_ARG(padapter), ch, bw, offset); - set_channel_bwmode(padapter, ch, offset, bw); - rtw_mi_update_union_chan_inf(padapter, ch, offset, bw); - } -#endif /*FOR ONE AP - TODO :Multi-AP*/ { @@ -5298,10 +5693,14 @@ void rtw_mi_resume_process_normal(_adapter *padapter) if (rtw_chk_roam_flags(iface, RTW_ROAM_ON_RESUME)) rtw_roaming(iface, NULL); - } else if (MLME_IS_AP(iface) || MLME_IS_MESH(iface)) { + } +#ifdef CONFIG_AP_MODE + else if (MLME_IS_AP(iface) || MLME_IS_MESH(iface)) { RTW_INFO(FUNC_ADPT_FMT" %s\n", FUNC_ADPT_ARG(iface), MLME_IS_AP(iface) ? "AP" : "MESH"); rtw_ap_restore_network(iface); - } else if (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE)) + } +#endif + else if (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE)) RTW_INFO(FUNC_ADPT_FMT" fwstate:0x%08x - WIFI_ADHOC_STATE\n", FUNC_ADPT_ARG(iface), get_fwstate(pmlmepriv)); else RTW_INFO(FUNC_ADPT_FMT" fwstate:0x%08x - ???\n", FUNC_ADPT_ARG(iface), get_fwstate(pmlmepriv)); @@ -5341,14 +5740,12 @@ int rtw_resume_process_normal(_adapter *padapter) rtw_clr_surprise_removed(padapter); rtw_hal_disable_interrupt(padapter); - #ifdef CONFIG_SDIO_HCI - #if !(CONFIG_RTW_SDIO_KEEP_IRQ) + #if defined(CONFIG_SDIO_HCI) && (CONFIG_RTW_SDIO_RELEASE_IRQ >= 1) if (sdio_alloc_irq(adapter_to_dvobj(padapter)) != _SUCCESS) { ret = -1; goto exit; } #endif - #endif/*CONFIG_SDIO_HCI*/ rtw_mi_reset_drv_sw(padapter); @@ -5388,6 +5785,9 @@ int rtw_resume_common(_adapter *padapter) int ret = 0; systime start_time = rtw_get_current_time(); struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter); +#ifdef CONFIG_WAKE_ON_BT + u8 disable = 0; +#endif if (pwrpriv == NULL) return 0; @@ -5414,6 +5814,10 @@ int rtw_resume_common(_adapter *padapter) #endif /* CONFIG_AP_WOWLAN */ } +#ifdef CONFIG_WAKE_ON_BT + rtw_hal_set_hwreg(padapter, HW_VAR_WAKE_ON_BT_GPIO_SWITCH, (u8 *)(&disable)); +#endif + pwrpriv->bInSuspend = _FALSE; pwrpriv->wowlan_in_resume = _FALSE; diff --git a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/pci_intf.c b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/pci_intf.c index b75101f0..67306668 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/pci_intf.c +++ b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/pci_intf.c @@ -91,7 +91,11 @@ struct pci_device_id rtw_pci_id_tbl[] = { {PCI_DEVICE(PCI_VENDER_ID_REALTEK, 0xC822), .driver_data = RTL8822C}, #endif #ifdef CONFIG_RTL8814B + #ifdef CONFIG_RTL8814C + {PCI_DEVICE(PCI_VENDER_ID_REALTEK, 0xC814), .driver_data = RTL8814B}, + #else {PCI_DEVICE(PCI_VENDER_ID_REALTEK, 0xB814), .driver_data = RTL8814B}, + #endif #endif {}, }; @@ -374,12 +378,10 @@ void rtw_pci_dump_aspm_info(_adapter *padapter) void rtw_pci_aspm_config(_adapter *padapter) { - RTW_INFO(" ====> %s\n", __func__); rtw_pci_aspm_config_clkreql0sl1(padapter); rtw_pci_aspm_config_l1off(padapter); rtw_pci_dynamic_aspm_set_mode(padapter, ASPM_MODE_PERF); rtw_pci_dump_aspm_info(padapter); - RTW_INFO(" %s <====\n", __func__); } static u8 rtw_pci_get_amd_l1_patch(struct dvobj_priv *pdvobjpriv, struct pci_dev *pdev) @@ -580,16 +582,10 @@ static s32 rtw_pci_parse_configuration(struct pci_dev *pdev, struct dvobj_priv * return ret; } -/* - * 2009/10/28 MH Enable rtl8192ce DMA64 function. We need to enable 0x719 BIT5 - * */ #ifdef CONFIG_64BIT_DMA -u8 PlatformEnableDMA64(PADAPTER Adapter) +static void rtw_pci_enable_dma64(struct pci_dev *pdev) { - struct dvobj_priv *pdvobjpriv = adapter_to_dvobj(Adapter); - struct pci_dev *pdev = pdvobjpriv->ppcidev; - u8 bResult = _TRUE; - u8 value; + u8 value; pci_read_config_byte(pdev, 0x719, &value); @@ -597,8 +593,6 @@ u8 PlatformEnableDMA64(PADAPTER Adapter) value |= (BIT5); pci_write_config_byte(pdev, 0x719, value); - - return bResult; } #endif @@ -631,7 +625,6 @@ int pci_alloc_irq(struct dvobj_priv *dvobj) struct pci_dev *pdev = dvobj->ppcidev; int ret; - RTW_INFO(" ====> %s\n", __func__); #ifndef CONFIG_RTW_PCI_MSI_DISABLE ret = pci_enable_msi(pdev); @@ -651,7 +644,6 @@ int pci_alloc_irq(struct dvobj_priv *dvobj) RTW_INFO("Request_irq OK, IRQ %d\n", pdev->irq); } - RTW_INFO(" %s <====\n", __func__); return err ? _FAIL : _SUCCESS; } @@ -752,7 +744,6 @@ static struct dvobj_priv *pci_dvobj_init(struct pci_dev *pdev, const struct pci_ unsigned long pmem_start, pmem_len, pmem_flags; int i; - RTW_INFO(" ====> %s\n", __func__); dvobj = devobj_init(); if (dvobj == NULL) @@ -771,24 +762,27 @@ static struct dvobj_priv *pci_dvobj_init(struct pci_dev *pdev, const struct pci_ } #ifdef CONFIG_64BIT_DMA - if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) { - RTW_INFO("RTL819xCE: Using 64bit DMA\n"); - err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64)); + if (!dma_set_mask(&pdev->dev, DMA_BIT_MASK(64))) { + err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64)); if (err != 0) { RTW_ERR("Unable to obtain 64bit DMA for consistent allocations\n"); goto disable_picdev; } + RTW_INFO("PCIE: Using 64bit DMA\n"); dvobj->bdma64 = _TRUE; + rtw_pci_enable_dma64(pdev); } else #endif { - if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(32))) { - err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32)); + if (!dma_set_mask(&pdev->dev, DMA_BIT_MASK(32))) { + err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)); if (err != 0) { RTW_ERR("Unable to obtain 32bit DMA for consistent allocations\n"); goto disable_picdev; } } + RTW_INFO("PCIE: Using 32bit DMA\n"); + dvobj->bdma64 = _FALSE; } pci_set_master(pdev); @@ -799,7 +793,7 @@ static struct dvobj_priv *pci_dvobj_init(struct pci_dev *pdev, const struct pci_ goto disable_picdev; } -#ifdef RTK_129X_PLATFORM +#ifdef CONFIG_PLATFORM_RTK129X if (pdev->bus->number == 0x00) { pmem_start = PCIE_SLOT1_MEM_START; pmem_len = PCIE_SLOT1_MEM_LEN; @@ -833,7 +827,7 @@ static struct dvobj_priv *pci_dvobj_init(struct pci_dev *pdev, const struct pci_ #ifdef RTK_DMP_PLATFORM dvobj->pci_mem_start = (unsigned long)ioremap_nocache(pmem_start, pmem_len); -#elif defined(RTK_129X_PLATFORM) +#elif defined(CONFIG_PLATFORM_RTK129X) if (pdev->bus->number == 0x00) dvobj->ctrl_start = (unsigned long)ioremap(PCIE_SLOT1_CTRL_START, 0x200); @@ -899,7 +893,7 @@ iounmap: dvobj->pci_mem_start = 0; } -#ifdef RTK_129X_PLATFORM +#ifdef CONFIG_PLATFORM_RTK129X if (status != _SUCCESS && dvobj->ctrl_start != 0) { pci_iounmap(pdev, (void *)dvobj->ctrl_start); dvobj->ctrl_start = 0; @@ -919,7 +913,6 @@ free_dvobj: dvobj = NULL; } exit: - RTW_INFO("%s <=====\n", __func__); return dvobj; } @@ -945,7 +938,7 @@ static void pci_dvobj_deinit(struct pci_dev *pdev) dvobj->pci_mem_start = 0; } -#ifdef RTK_129X_PLATFORM +#ifdef CONFIG_PLATFORM_RTK129X if (dvobj->ctrl_start != 0) { pci_iounmap(pdev, (void *)dvobj->ctrl_start); dvobj->ctrl_start = 0; @@ -962,7 +955,6 @@ static void pci_dvobj_deinit(struct pci_dev *pdev) u8 rtw_set_hal_ops(_adapter *padapter) { - RTW_INFO(" ====> %s\n", __func__); /* alloc memory for HAL DATA */ if (rtw_hal_data_init(padapter) == _FAIL) return _FAIL; @@ -1026,7 +1018,6 @@ u8 rtw_set_hal_ops(_adapter *padapter) if (hal_spec_init(padapter) == _FAIL) return _FAIL; - RTW_INFO(" %s <====\n", __func__); return _SUCCESS; } @@ -1279,8 +1270,6 @@ _adapter *rtw_pci_primary_adapter_init(struct dvobj_priv *dvobj, struct pci_dev _adapter *padapter = NULL; int status = _FAIL; - RTW_INFO(" ====> %s\n", __func__); - padapter = (_adapter *)rtw_zvmalloc(sizeof(*padapter)); if (padapter == NULL) goto exit; @@ -1371,7 +1360,6 @@ free_adapter: padapter = NULL; } exit: - RTW_INFO(" %s <====\n", __func__); return padapter; } @@ -1432,8 +1420,13 @@ static int rtw_drv_init(struct pci_dev *pdev, const struct pci_device_id *pdid) int status = _FAIL; _adapter *padapter = NULL; struct dvobj_priv *dvobj; +#ifdef CONFIG_SECURITY_MEM + unsigned long secure_memaddr = SECURITY_MEM_ADDR; + unsigned long secure_size = SECURITY_MEM_SIZE; + int dma_ret; +#endif - RTW_INFO("+rtw_drv_init\n"); + /* RTW_INFO("+rtw_drv_init\n"); */ /* step 0. */ disable_ht_for_spec_devid(pdid); @@ -1443,6 +1436,56 @@ static int rtw_drv_init(struct pci_dev *pdev, const struct pci_device_id *pdid) if (dvobj == NULL) goto exit; +#ifdef CONFIG_SECURITY_MEM + /* + dma_declare_coherent_memory + This API is used to declare a region of memory to be handed out by dma_alloc_coherent() + when it's asked for coherent memory for this device + */ + if (0 == secure_memaddr) { + RTW_WARN("%s: secure_memaddr is not assigned.\n", __func__); + WARN_ON(1); + goto NO_DECLARE; + } + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0)) + dma_ret = dma_declare_coherent_memory(&pdev->dev, secure_memaddr, + secure_memaddr, secure_size); +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)) + dma_ret = dma_declare_coherent_memory(&pdev->dev, secure_memaddr, + secure_memaddr, secure_size, + DMA_MEMORY_EXCLUSIVE); +#else + dma_ret = dma_declare_coherent_memory(&pdev->dev, secure_memaddr, + secure_memaddr, secure_size, + DMA_MEMORY_MAP | DMA_MEMORY_EXCLUSIVE); +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)) + if (dma_ret) { + RTW_INFO("Failed to declare coherent memory for wifi device: ret = 0x%x, secure_memaddr = 0x%lx, size = %ld\n", + dma_ret, secure_memaddr, secure_size); + goto free_dvobj; + } else { + status = _SUCCESS; + RTW_INFO("Declare coherent memory ok for wifi device, ret = 0x%x, secure_memaddr = 0x%lx, secure_size = %ld\n", + dma_ret, secure_memaddr, secure_size); + } +#else + if (!dma_ret) { + RTW_INFO("Failed to declare coherent memory for wifi device: ret = 0x%x, secure_memaddr = 0x%lx, secure_size = %ld\n", + dma_ret, secure_memaddr, secure_size); + goto free_dvobj; + } else { + status = _SUCCESS; + RTW_INFO("Declare coherent memory ok for wifi device, ret = 0x%x, secure_memaddr = 0x%lx\n, secure_size = %ld\n", + dma_ret, secure_memaddr, secure_size); + } +#endif + +NO_DECLARE: +#endif + /* Initialize primary adapter */ padapter = rtw_pci_primary_adapter_init(dvobj, pdev); if (padapter == NULL) { @@ -1490,7 +1533,7 @@ static int rtw_drv_init(struct pci_dev *pdev, const struct pci_device_id *pdid) if (pci_alloc_irq(dvobj) != _SUCCESS) goto os_ndevs_deinit; - RTW_INFO("-871x_drv - drv_init, success!\n"); + /* RTW_INFO("-871x_drv - drv_init, success!\n"); */ status = _SUCCESS; @@ -1521,9 +1564,19 @@ exit: /* rmmod module & unplug(SurpriseRemoved) will call r871xu_dev_remove() => how to recognize both */ static void rtw_dev_remove(struct pci_dev *pdev) { - struct dvobj_priv *pdvobjpriv = pci_get_drvdata(pdev); - _adapter *padapter = dvobj_get_primary_adapter(pdvobjpriv); - struct net_device *pnetdev = padapter->pnetdev; + struct dvobj_priv *pdvobjpriv; + _adapter *padapter; + struct net_device *pnetdev; + + pdvobjpriv = pci_get_drvdata(pdev); + + if (pdvobjpriv == NULL) { + RTW_INFO("%s: dev has beend revmoed\n", __func__); + return; + } + + padapter = dvobj_get_primary_adapter(pdvobjpriv); + pnetdev = padapter->pnetdev; if (pdvobjpriv->processing_dev_remove == _TRUE) { RTW_WARN("%s-line%d: Warning! device has been removed!\n", __func__, __LINE__); @@ -1633,6 +1686,10 @@ static int __init rtw_drv_entry(void) pci_drvpriv.drv_registered = _TRUE; rtw_suspend_lock_init(); rtw_drv_proc_init(); + rtw_nlrtw_init(); +#ifdef CONFIG_PLATFORM_CMAP_INTFS + cmap_intfs_init(); +#endif rtw_ndev_notifier_register(); rtw_inetaddr_notifier_register(); @@ -1642,6 +1699,10 @@ static int __init rtw_drv_entry(void) pci_drvpriv.drv_registered = _FALSE; rtw_suspend_lock_uninit(); rtw_drv_proc_deinit(); + rtw_nlrtw_deinit(); +#ifdef CONFIG_PLATFORM_CMAP_INTFS + cmap_intfs_deinit(); +#endif rtw_ndev_notifier_unregister(); rtw_inetaddr_notifier_unregister(); goto exit; @@ -1662,6 +1723,10 @@ static void __exit rtw_drv_halt(void) rtw_suspend_lock_uninit(); rtw_drv_proc_deinit(); + rtw_nlrtw_deinit(); +#ifdef CONFIG_PLATFORM_CMAP_INTFS + cmap_intfs_deinit(); +#endif rtw_ndev_notifier_unregister(); rtw_inetaddr_notifier_unregister(); diff --git a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/recv_linux.c b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/recv_linux.c old mode 100644 new mode 100755 index 3a3049a3..6871c792 --- a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/recv_linux.c +++ b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/recv_linux.c @@ -139,6 +139,7 @@ int rtw_os_alloc_recvframe(_adapter *padapter, union recv_frame *precvframe, u8 precvframe->u.hdr.pkt = rtw_skb_clone(pskb); if (precvframe->u.hdr.pkt) { + RTW_INFO("%s: rtw_skb_clone success, RX throughput may be low!\n", __FUNCTION__); precvframe->u.hdr.pkt->dev = padapter->pnetdev; precvframe->u.hdr.rx_head = precvframe->u.hdr.rx_data = precvframe->u.hdr.rx_tail = pdata; precvframe->u.hdr.rx_end = pdata + alloc_sz; @@ -208,8 +209,52 @@ void rtw_os_recv_resource_free(struct recv_priv *precvpriv) } } +#if defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI) +#if !defined(CONFIG_RTL8822B) && !defined(CONFIG_RTL8822C) && !defined(CONFIG_RTL8723F) +#ifdef CONFIG_SDIO_RX_COPY +static int sdio_init_recvbuf_with_skb(struct recv_priv *recvpriv, struct recv_buf *rbuf, u32 size) +{ +#ifdef CONFIG_PREALLOC_RX_SKB_BUFFER + if (RBUF_IS_PREALLOC(rbuf)) { + rbuf->pskb = rtw_alloc_skb_premem(size); + if (!rbuf->pskb) { + RTW_WARN("%s: Fail to get pre-alloc skb! size=%d\n", __func__, size); + return _FAIL; + } + skb_set_tail_pointer(rbuf->pskb, 0); /* TODO: do this in RTKM */ + } else +#else + { + SIZE_PTR tmpaddr = 0; + SIZE_PTR alignment = 0; + + rbuf->pskb = rtw_skb_alloc(size + RECVBUFF_ALIGN_SZ); + if (!rbuf->pskb) + return _FAIL; + + tmpaddr = (SIZE_PTR)rbuf->pskb->data; + alignment = tmpaddr & (RECVBUFF_ALIGN_SZ - 1); + skb_reserve(rbuf->pskb, (RECVBUFF_ALIGN_SZ - alignment)); + } +#endif + + rbuf->pskb->dev = recvpriv->adapter->pnetdev; + + /* init recvbuf */ + rbuf->phead = rbuf->pskb->head; + rbuf->pdata = rbuf->pskb->data; + rbuf->ptail = skb_tail_pointer(rbuf->pskb); + rbuf->pend = skb_end_pointer(rbuf->pskb); + rbuf->len = 0; + + return _SUCCESS; +} +#endif /* CONFIG_SDIO_RX_COPY */ +#endif /* !defined(CONFIG_RTL8822B) && !defined(CONFIG_RTL8822C) && !defined(CONFIG_RTL8723F) */ +#endif /* defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI) */ + /* alloc os related resource in struct recv_buf */ -int rtw_os_recvbuf_resource_alloc(_adapter *padapter, struct recv_buf *precvbuf) +int rtw_os_recvbuf_resource_alloc(_adapter *padapter, struct recv_buf *precvbuf, u32 size) { int res = _SUCCESS; @@ -235,13 +280,20 @@ int rtw_os_recvbuf_resource_alloc(_adapter *padapter, struct recv_buf *precvbuf) precvbuf->len = 0; #ifdef CONFIG_USE_USB_BUFFER_ALLOC_RX - precvbuf->pallocated_buf = rtw_usb_buffer_alloc(pusbd, (size_t)precvbuf->alloc_sz, &precvbuf->dma_transfer_addr); + precvbuf->pallocated_buf = rtw_usb_buffer_alloc(pusbd, (size_t)size, &precvbuf->dma_transfer_addr); precvbuf->pbuf = precvbuf->pallocated_buf; if (precvbuf->pallocated_buf == NULL) return _FAIL; #endif /* CONFIG_USE_USB_BUFFER_ALLOC_RX */ -#endif /* CONFIG_USB_HCI */ +#elif defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI) + #if !defined(CONFIG_RTL8822B) && !defined(CONFIG_RTL8822C) && !defined(CONFIG_RTL8723F) + #ifdef CONFIG_SDIO_RX_COPY + res = sdio_init_recvbuf_with_skb(&padapter->recvpriv, precvbuf, size); + #endif + #endif + +#endif /* CONFIG_XXX_HCI */ return res; } @@ -282,9 +334,9 @@ int rtw_os_recvbuf_resource_free(_adapter *padapter, struct recv_buf *precvbuf) } -_pkt *rtw_os_alloc_msdu_pkt(union recv_frame *prframe, const u8 *da, const u8 *sa, u8 *msdu ,u16 msdu_len) +_pkt *rtw_os_alloc_msdu_pkt(union recv_frame *prframe, const u8 *da, const u8 *sa + , u8 *msdu ,u16 msdu_len, enum rtw_rx_llc_hdl llc_hdl) { - u16 eth_type; u8 *data_ptr; _pkt *sub_skb; struct rx_pkt_attrib *pattrib; @@ -311,13 +363,7 @@ _pkt *rtw_os_alloc_msdu_pkt(union recv_frame *prframe, const u8 *da, const u8 *s } } - eth_type = RTW_GET_BE16(&sub_skb->data[6]); - - if (sub_skb->len >= 8 - && ((_rtw_memcmp(sub_skb->data, rtw_rfc1042_header, SNAP_SIZE) - && eth_type != ETH_P_AARP && eth_type != ETH_P_IPX) - || _rtw_memcmp(sub_skb->data, rtw_bridge_tunnel_header, SNAP_SIZE)) - ) { + if (llc_hdl) { /* remove RFC1042 or Bridge-Tunnel encapsulation and replace EtherType */ skb_pull(sub_skb, SNAP_SIZE); _rtw_memcpy(skb_push(sub_skb, ETH_ALEN), sa, ETH_ALEN); @@ -443,52 +489,8 @@ void rtw_os_recv_indicate_pkt(_adapter *padapter, _pkt *pkt, union recv_frame *r DBG_COUNTER(padapter->rx_logs.os_indicate); - if (MLME_IS_AP(padapter) && !pmlmepriv->ap_isolate) { - _pkt *pskb2 = NULL; - struct sta_info *psta = NULL; - struct sta_priv *pstapriv = &padapter->stapriv; - int bmcast = IS_MCAST(ehdr->h_dest); - - /* RTW_INFO("bmcast=%d\n", bmcast); */ - - if (_rtw_memcmp(ehdr->h_dest, adapter_mac_addr(padapter), ETH_ALEN) == _FALSE) { - /* RTW_INFO("not ap psta=%p, addr=%pM\n", psta, ehdr->h_dest); */ - - if (bmcast) { - psta = rtw_get_bcmc_stainfo(padapter); - pskb2 = rtw_skb_clone(pkt); - } else - psta = rtw_get_stainfo(pstapriv, ehdr->h_dest); - - if (psta) { - struct net_device *pnetdev = (struct net_device *)padapter->pnetdev; - - /* RTW_INFO("directly forwarding to the rtw_xmit_entry\n"); */ - - /* skb->ip_summed = CHECKSUM_NONE; */ - pkt->dev = pnetdev; - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35)) - skb_set_queue_mapping(pkt, rtw_recv_select_queue(pkt)); - #endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35) */ - - _rtw_xmit_entry(pkt, pnetdev); - - if (bmcast && (pskb2 != NULL)) { - pkt = pskb2; - DBG_COUNTER(padapter->rx_logs.os_indicate_ap_mcast); - } else { - DBG_COUNTER(padapter->rx_logs.os_indicate_ap_forward); - return; - } - } - } else { /* to APself */ - /* RTW_INFO("to APSelf\n"); */ - DBG_COUNTER(padapter->rx_logs.os_indicate_ap_self); - } - } - #ifdef CONFIG_BR_EXT - if (check_fwstate(pmlmepriv, WIFI_STATION_STATE | WIFI_ADHOC_STATE) == _TRUE) { + if (!adapter_use_wds(padapter) && check_fwstate(pmlmepriv, WIFI_STATION_STATE | WIFI_ADHOC_STATE) == _TRUE) { /* Insert NAT2.5 RX here! */ #if (LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 35)) br_port = padapter->pnetdev->br_port; @@ -521,6 +523,10 @@ void rtw_os_recv_indicate_pkt(_adapter *padapter, _pkt *pkt, union recv_frame *r pkt->protocol = eth_type_trans(pkt, padapter->pnetdev); pkt->dev = padapter->pnetdev; pkt->ip_summed = CHECKSUM_NONE; /* CONFIG_TCP_CSUM_OFFLOAD_RX */ + + if (padapter->recvpriv.ip_statistic.enabled) + rtw_rx_dbg_monitor_ip_statistic(padapter, pkt); + #ifdef CONFIG_TCP_CSUM_OFFLOAD_RX if ((rframe->u.hdr.attrib.csum_valid == 1) && (rframe->u.hdr.attrib.csum_err == 0)) diff --git a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_android.c b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_android.c old mode 100644 new mode 100755 index 6545fd3f..50dcfed9 --- a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_android.c +++ b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_android.c @@ -322,7 +322,7 @@ int rtw_android_cfg80211_pno_setup(struct net_device *net, #ifdef CONFIG_PNO_SET_DEBUG rtw_dev_pno_debug(net); #endif -exit_proc: + return res; } @@ -343,10 +343,12 @@ int rtw_android_pno_enable(struct net_device *net, int pno_enable) rtw_mfree((u8 *)pwrctl->pno_ssid_list, sizeof(pno_ssid_list_t)); pwrctl->pno_ssid_list = NULL; } + #ifndef RTW_HALMAC if (pwrctl->pscan_info != NULL) { rtw_mfree((u8 *)pwrctl->pscan_info, sizeof(pno_scan_info_t)); pwrctl->pscan_info = NULL; } + #endif } return 0; } else @@ -405,7 +407,7 @@ int rtw_android_set_country(struct net_device *net, char *command, int total_len char *country_code = command + strlen(android_wifi_cmd_str[ANDROID_WIFI_CMD_COUNTRY]) + 1; int ret = _FAIL; - ret = rtw_set_country(adapter, country_code); + ret = rtw_set_country(adapter, country_code, RTW_REGD_SET_BY_USER); return (ret == _SUCCESS) ? 0 : -1; } @@ -828,11 +830,14 @@ int rtw_android_priv_cmd(struct net_device *net, struct ifreq *ifr, int cmd) break; #ifdef CONFIG_IOCTL_CFG80211 + #ifdef CONFIG_AP_MODE case ANDROID_WIFI_CMD_SET_AP_WPS_P2P_IE: { int skip = strlen(android_wifi_cmd_str[ANDROID_WIFI_CMD_SET_AP_WPS_P2P_IE]) + 3; bytes_written = rtw_cfg80211_set_mgnt_wpsp2pie(net, command + skip, priv_cmd.total_len - skip, *(command + skip - 2) - '0'); + adapter_to_dvobj(padapter)->wpas_type = RTW_WPAS_ANDROID; break; } + #endif #endif /* CONFIG_IOCTL_CFG80211 */ #ifdef CONFIG_WFD @@ -1148,6 +1153,7 @@ extern PADAPTER g_test_adapter; static void shutdown_card(void) { + struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(g_test_adapter); u32 addr; u8 tmp8, cnt = 0; @@ -1164,7 +1170,7 @@ static void shutdown_card(void) #ifdef CONFIG_GPIO_WAKEUP /*default wake up pin change to BT*/ RTW_INFO("%s:default wake up pin change to BT\n", __FUNCTION__); - rtw_hal_switch_gpio_wl_ctrl(g_test_adapter, WAKEUP_GPIO_IDX, _FALSE); + rtw_hal_switch_gpio_wl_ctrl(g_test_adapter, pwrpriv->wowlan_gpio_index, _FALSE); #endif /* CONFIG_GPIO_WAKEUP */ #endif /* CONFIG_WOWLAN */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_cfgvendor.c b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_cfgvendor.c index 10cffaee..f24813e9 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_cfgvendor.c +++ b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_cfgvendor.c @@ -175,7 +175,7 @@ struct sk_buff *rtw_cfg80211_vendor_event_alloc( int rtw_cfgvendor_send_async_event(struct wiphy *wiphy, struct net_device *dev, int event_id, const void *data, int len) { - u16 kflags; + gfp_t kflags; struct sk_buff *skb; kflags = in_atomic() ? GFP_ATOMIC : GFP_KERNEL; @@ -240,13 +240,10 @@ static int rtw_cfgvendor_send_cmd_reply(struct wiphy *wiphy, #define WIFI_FEATURE_CONTROL_ROAMING 0x800000 // Enable/Disable firmware roaming #define WIFI_FEATURE_IE_WHITELIST 0x1000000 // Support Probe IE white listing #define WIFI_FEATURE_SCAN_RAND 0x2000000 // Support MAC & Probe Sequence Number randomization -#define WIFI_FEATURE_TX_POWER_LIMIT 0x4000000 // Set Tx power limit -#define WIFI_FEATURE_WPA3_SAE 0x8000000 // WPA3-Personal SAE -#define WIFI_FEATURE_WPA3_SUITE_B 0x10000000 // WPA3-Enterprise Suite-B -#define WIFI_FEATURE_OWE 0x20000000 // Enhanced Open -#define WIFI_FEATURE_LOW_LATENCY 0x40000000 // Low Latency modes -#define WIFI_FEATURE_DPP 0x80000000 // DPP (Easy-Connect) -#define WIFI_FEATURE_P2P_RAND_MAC 0x100000000L// Random P2P MAC +#define WIFI_FEATURE_SET_TX_POWER_LIMIT 0x4000000 // Support Tx Power Limit setting +#define WIFI_FEATURE_USE_BODY_HEAD_SAR 0x8000000 // Support Using Body/Head Proximity for SAR +#define WIFI_FEATURE_SET_LATENCY_MODE 0x40000000 // Support Latency mode setting +#define WIFI_FEATURE_P2P_RAND_MAC 0x80000000 // Support Support P2P MAC randomization // Add more features here #define MAX_FEATURE_SET_CONCURRRENT_GROUPS 3 @@ -283,16 +280,9 @@ int rtw_dev_get_feature_set(struct net_device *dev) #ifdef CONFIG_RTW_WIFI_HAL feature_set |= WIFI_FEATURE_CONFIG_NDO; +#if defined(CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI) || defined(CONFIG_RTW_SCAN_RAND) feature_set |= WIFI_FEATURE_SCAN_RAND; #endif - - - feature_set |= WIFI_FEATURE_WPA3_SAE; - feature_set |= WIFI_FEATURE_OWE; - feature_set |= WIFI_FEATURE_DPP; - -#ifdef CONFIG_WPA3_SUITE_B - feature_set |= WIFI_FEATURE_WPA3_SUITE_B; #endif return feature_set; @@ -1575,6 +1565,7 @@ static int rtw_cfgvendor_logger_get_rx_pkt_fates(struct wiphy *wiphy, } #endif /* CONFIG_RTW_CFGVENDOR_WIFI_LOGGER */ + #ifdef CONFIG_RTW_WIFI_HAL #ifdef CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI @@ -1609,17 +1600,6 @@ void rtw_hal_pno_random_gen_mac_addr(PADAPTER adapter) #endif } -void rtw_hal_set_hw_mac_addr(PADAPTER adapter, u8 *mac_addr) -{ - rtw_ps_deny(adapter, PS_DENY_IOCTL); - LeaveAllPowerSaveModeDirect(adapter); - - rtw_hal_set_hwreg(adapter, HW_VAR_MAC_ADDR, mac_addr); -#ifdef CONFIG_RTW_DEBUG - rtw_hal_dump_macaddr(RTW_DBGDUMP, adapter); -#endif - rtw_ps_deny_cancel(adapter, PS_DENY_IOCTL); -} static int rtw_cfgvendor_set_rand_mac_oui(struct wiphy *wiphy, struct wireless_dev *wdev, const void *data, int len) @@ -1676,7 +1656,6 @@ static int rtw_cfgvendor_set_rand_mac_oui(struct wiphy *wiphy, return err; } - #endif #ifdef CONFIG_RTW_CFGVENDOR_WIFI_OFFLOAD @@ -1750,7 +1729,7 @@ static int rtw_cfgvendor_set_country(struct wiphy *wiphy, RTW_INFO("%s country_code:\"%c%c\" \n", __func__, country_code[0], country_code[1]); - rtw_set_country(padapter, country_code); + rtw_set_country(padapter, country_code, RTW_REGD_SET_BY_USER); return err; } @@ -1887,6 +1866,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = LSTATS_SUBCMD_GET_INFO }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = rtw_cfgvendor_lstats_get_info }, { @@ -1895,6 +1877,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = LSTATS_SUBCMD_SET_INFO }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = rtw_cfgvendor_lstats_set_info }, { @@ -1903,6 +1888,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = LSTATS_SUBCMD_CLEAR_INFO }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = rtw_cfgvendor_lstats_clear_info }, #endif /* CONFIG_RTW_CFGVENDOR_LLSTATS */ @@ -1913,6 +1901,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = WIFI_SUBCMD_SET_RSSI_MONITOR }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = rtw_cfgvendor_set_rssi_monitor }, #endif /* CONFIG_RTW_CFGVENDOR_RSSIMONITOR */ @@ -1923,6 +1914,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = LOGGER_START_LOGGING }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = rtw_cfgvendor_logger_start_logging }, { @@ -1931,6 +1925,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = LOGGER_GET_FEATURE }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = rtw_cfgvendor_logger_get_feature }, { @@ -1939,6 +1936,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = LOGGER_GET_VER }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = rtw_cfgvendor_logger_get_version }, { @@ -1947,6 +1947,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = LOGGER_GET_RING_STATUS }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = rtw_cfgvendor_logger_get_ring_status }, { @@ -1955,6 +1958,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = LOGGER_GET_RING_DATA }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = rtw_cfgvendor_logger_get_ring_data }, { @@ -1963,6 +1969,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = LOGGER_TRIGGER_MEM_DUMP }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = rtw_cfgvendor_logger_get_firmware_memory_dump }, { @@ -1971,6 +1980,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = LOGGER_START_PKT_FATE_MONITORING }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = rtw_cfgvendor_logger_start_pkt_fate_monitoring }, { @@ -1979,6 +1991,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = LOGGER_GET_TX_PKT_FATES }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = rtw_cfgvendor_logger_get_tx_pkt_fates }, { @@ -1987,6 +2002,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = LOGGER_GET_RX_PKT_FATES }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = rtw_cfgvendor_logger_get_rx_pkt_fates }, #endif /* CONFIG_RTW_CFGVENDOR_WIFI_LOGGER */ @@ -1998,6 +2016,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = WIFI_SUBCMD_SET_PNO_RANDOM_MAC_OUI }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = rtw_cfgvendor_set_rand_mac_oui }, #endif @@ -2008,6 +2029,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = WIFI_OFFLOAD_SUBCMD_START_MKEEP_ALIVE }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = rtw_cfgvendor_start_mkeep_alive }, { @@ -2016,6 +2040,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = WIFI_OFFLOAD_SUBCMD_STOP_MKEEP_ALIVE }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = rtw_cfgvendor_stop_mkeep_alive }, #endif @@ -2025,6 +2052,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = WIFI_SUBCMD_NODFS_SET }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = rtw_cfgvendor_set_nodfs_flag }, @@ -2034,6 +2064,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = WIFI_SUBCMD_SET_COUNTRY_CODE }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = rtw_cfgvendor_set_country }, { @@ -2042,6 +2075,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = WIFI_SUBCMD_CONFIG_ND_OFFLOAD }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = rtw_cfgvendor_set_nd_offload }, #endif /* CONFIG_RTW_WIFI_HAL */ @@ -2051,6 +2087,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = WIFI_SUBCMD_GET_FEATURE_SET }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = rtw_cfgvendor_get_feature_set }, { @@ -2059,6 +2098,9 @@ static const struct wiphy_vendor_command rtw_vendor_cmds[] = { .subcmd = WIFI_SUBCMD_GET_FEATURE_SET_MATRIX }, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)) + .policy = VENDOR_CMD_RAW_DATA, +#endif .doit = rtw_cfgvendor_get_feature_set_matrix } }; diff --git a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_cfgvendor.h b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_cfgvendor.h index 0e59b2b9..0b758174 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_cfgvendor.h +++ b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_cfgvendor.h @@ -591,14 +591,6 @@ typedef struct { u32 aggressive_statistics_gathering; // set for field debug mode. Driver should collect all statistics regardless of performance impact. } wifi_link_layer_params; -#define RSSI_MONITOR_EVT_VERSION 1 -typedef struct { - u8 version; - s8 cur_rssi; - mac_addr BSSID; -} rssi_monitor_evt; - - /* wifi statistics bitmap */ #define WIFI_STATS_RADIO 0x00000001 // all radio statistics #define WIFI_STATS_RADIO_CCA 0x00000002 // cca_busy_time (within radio statistics) @@ -625,12 +617,16 @@ extern int rtw_cfgvendor_send_hotlist_event(struct wiphy *wiphy, #ifdef CONFIG_RTW_CFGVENDOR_RSSIMONITOR void rtw_cfgvendor_rssi_monitor_evt(_adapter *padapter); +#define RSSI_MONITOR_EVT_VERSION 1 +typedef struct { + u8 version; + s8 cur_rssi; + mac_addr BSSID; +} rssi_monitor_evt; #endif #ifdef CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI void rtw_hal_pno_random_gen_mac_addr(PADAPTER adapter); -void rtw_hal_set_hw_mac_addr(PADAPTER adapter, u8 *mac_addr); #endif - #endif /* _RTW_CFGVENDOR_H_ */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_genetlink.c b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_genetlink.c deleted file mode 100644 index b6c378a3..00000000 --- a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_genetlink.c +++ /dev/null @@ -1,300 +0,0 @@ -/****************************************************************************** - * - * Copyright(c) 2007 - 2019 Realtek Corporation. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License 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. - * - *****************************************************************************/ - -#include -#include -#include - - -#if defined(CONFIG_ALIBABA_ZEROCONFIG) - -#define GENL_CUSTOM_FAMILY_NAME "WIFI_NL_CUSTOM" -#define MAX_CUSTOM_PKT_LENGTH 2048 -#ifndef CONFIG_APPEND_VENDOR_IE_ENABLE -#define WLAN_MAX_VENDOR_IE_LEN 255 -#endif -enum { - __GENL_CUSTOM_ATTR_INVALID, - GENL_CUSTOM_ATTR_MSG, /* message */ - __GENL_CUSTOM_ATTR_MAX, -}; -#define GENL_CUSTOM_ATTR_MAX (__GENL_CUSTOM_ATTR_MAX - 1) - -enum { - __GENLL_CUSTOM_COMMAND_INVALID, - GENL_CUSTOM_COMMAND_BIND, /* bind */ - GENL_CUSTOM_COMMAND_SEND, /* user -> kernel */ - GENL_CUSTOM_COMMAND_RECV, /* kernel -> user */ - __GENL_CUSTOM_COMMAND_MAX, -}; -#define GENL_CUSTOM_COMMAND_MAX (__GENL_CUSTOM_COMMAND_MAX - 1) - - -static int rtw_genl_bind(struct sk_buff *skb, struct genl_info *info); -static int rtw_genl_recv(struct sk_buff *skb, struct genl_info *info); -#define GENLMSG_UNICAST_RETRY_LIMIT 5 -static int rtw_genl_send_retry_cnt = 0; - -static struct genl_family rtw_genl_family = { - .id = GENL_ID_GENERATE, - .hdrsize = 0, - .name = GENL_CUSTOM_FAMILY_NAME, - .version = 1, - .maxattr = GENL_CUSTOM_ATTR_MAX, -}; - -static struct nla_policy rtw_genl_policy[GENL_CUSTOM_ATTR_MAX + 1] = { - [GENL_CUSTOM_ATTR_MSG] = {.type = NLA_NUL_STRING}, -}; - -static struct genl_ops rtw_genl_ops[] = { - { - .cmd = GENL_CUSTOM_COMMAND_BIND, - .flags = 0, - .policy = rtw_genl_policy, - .doit = rtw_genl_bind, - .dumpit = NULL, - }, - { - .cmd = GENL_CUSTOM_COMMAND_SEND, - .flags = 0, - .policy = rtw_genl_policy, - .doit = rtw_genl_recv, - .dumpit = NULL, - }, -}; - - -static _adapter *padapter_for_genl = NULL; - -void rtw_genl_init(_adapter *padapter) -{ - if (genl_register_family_with_ops(&rtw_genl_family, rtw_genl_ops) != 0){ - RTW_INFO("%s(): GE_NELINK family registration fail\n", __func__); - } else { - padapter_for_genl = padapter; - padapter_for_genl->genl_bind_pid = -1; - _rtw_memset(padapter_for_genl->target_macaddr, 0, ETH_ALEN); - } -} - -void rtw_genl_deinit(void) -{ - genl_unregister_family(&rtw_genl_family); - if(padapter_for_genl != NULL) { - padapter_for_genl->genl_bind_pid = -1; - _rtw_memset(padapter_for_genl->target_macaddr, 0, ETH_ALEN); - padapter_for_genl = NULL; - } -} - -static int rtw_genl_bind(struct sk_buff *skb, struct genl_info *info) -{ - struct nlattr *na; - char* pData = NULL; - int DataLen = 0; - struct mlme_priv *pmlmepriv = &(padapter_for_genl->mlmepriv); - - RTW_INFO("%s : net_device name : %s\n",__func__, padapter_for_genl->pnetdev->name); - - - if (info == NULL) { - RTW_ERR("%s : genl_info is NULL\n", __func__); - return -1; - } - - na = info->attrs[GENL_CUSTOM_ATTR_MSG]; - if (na) { - pData = (char*) nla_data(na); - DataLen = nla_len(na); - #if defined(CONFIG_ALIBABA_ZEROCONFIG_DBG) - RTW_INFO("%s nla_len(na) : %d\n", __func__, DataLen); - RTW_INFO_DUMP(NULL, pData, DataLen); - #endif - } - - if (strcmp(pData, "BIND") == 0) { - padapter_for_genl->genl_bind_pid = info->snd_portid; - #if defined(CONFIG_ALIBABA_ZEROCONFIG_DBG) - RTW_INFO("BIND\n"); - RTW_INFO("%s : pid = %d\n", __func__, info->snd_portid); - RTW_INFO("%s : padapter_for_genl->genl_bind_pid = %d\n", __func__, padapter_for_genl->genl_bind_pid); - #endif - -#if defined(CONFIG_POWER_SAVING) - RTW_INFO("%s : disable ips & lps\n", __func__); - rtw_pm_set_lps(padapter_for_genl, PS_MODE_ACTIVE); - rtw_pm_set_ips(padapter_for_genl, IPS_NONE); -#endif - } else if (strcmp(pData, "UNBIND") == 0) { - #if defined(CONFIG_ALIBABA_ZEROCONFIG_DBG) - RTW_INFO("UNBIND\n"); - RTW_INFO("%s : pid = %d\n", __func__, info->snd_portid); - RTW_INFO("%s : padapter_for_genl->genl_bind_pid = %d\n", __func__, padapter_for_genl->genl_bind_pid); - #endif - padapter_for_genl->genl_bind_pid = -1; - _rtw_memset(padapter_for_genl->target_macaddr, 0, ETH_ALEN); - -#if defined(CONFIG_POWER_SAVING) - RTW_INFO("%s() enable ips & lps\n", __func__); - rtw_pm_set_lps(padapter_for_genl, PS_MODE_MAX); - rtw_pm_set_ips(padapter_for_genl, IPS_NORMAL); -#endif - } else { - RTW_INFO("%s(): Unknown cmd %s\n", __func__, pData); - } - - return 0; -} - -static int rtw_genl_send_probersp(char* buf, int buf_len){ - - struct mlme_priv *pmlmepriv = &(padapter_for_genl->mlmepriv); - char da[6]; - char* pVendorIE = NULL; - int VendorIELength = 0; - - if(buf == NULL || buf_len <= 0){ - RTW_ERR("%s buf is NULL or buf_len <= 0\n", __func__); - return -1; - } - - _rtw_memcpy(da, (buf + 4), MACADDRLEN); - pVendorIE = rtw_get_ie((buf + 36), _VENDOR_SPECIFIC_IE_, &VendorIELength, buf_len - 36); - - // VendorIELength must include element id and length field - VendorIELength += 2; - if(VendorIELength > WLAN_MAX_VENDOR_IE_LEN) { - RTW_ERR("VendorIELength exceeding 255\n"); - RTW_INFO("%s dump vendor ie\n", __func__); - RTW_INFO_DUMP(NULL, pVendorIE, VendorIELength); - return -1; - } - #if defined(CONFIG_ALIBABA_ZEROCONFIG_DBG) - RTW_INFO("%s da:"MAC_FMT"\n", __func__, MAC_ARG(da)); - RTW_INFO("%s vendor ie length : %d \n", __func__, VendorIELength); - RTW_INFO("%s dump vendor ie\n", __func__); - RTW_INFO_DUMP(NULL, pVendorIE, VendorIELength); - #endif - - //issue_probersp(padapter_for_genl, da, 0); - - issue_probersp_zeroconf(padapter_for_genl, buf, buf_len); - - return 0; -} -static int rtw_genl_recv(struct sk_buff *skb, struct genl_info *info) -{ - struct nlattr *na; - char* pData = NULL; - int DataLen = 0; - - if (info == NULL) { - RTW_ERR("%s : genl_info is NULL\n", __func__); - return -1; - } - RTW_INFO("%s : recv from process %d\n", __func__, info->snd_portid); - na = info->attrs[GENL_CUSTOM_ATTR_MSG]; - - if (na) { - pData = (char*) nla_data(na); - DataLen = nla_len(na); - #if defined(CONFIG_ALIBABA_ZEROCONFIG_DBG) - RTW_INFO("%s nla_len(na) : %d\n", __func__, DataLen); - RTW_INFO_DUMP(NULL, pData, DataLen); - #endif - } - - if(*pData == 0x50) { - RTW_INFO("%s : probe rsp\n", __func__); - rtw_genl_send_probersp(pData, DataLen); - } else if(*pData == 0x40) { - RTW_ERR("%s : probe req\n", __func__); - } else { - RTW_ERR("%s : Unexpected pkt\n", __func__); - RTW_INFO_DUMP(NULL, pData, DataLen); - } - - return 0; -} - -int rtw_genl_send(char* buf, int buf_len) -{ - struct sk_buff *skb = NULL; - char* msg_head = NULL; - int ret = -1; - - - if (padapter_for_genl->genl_bind_pid == -1) { - RTW_ERR("%s : There is no binded process\n", __func__); - return -1; - } - RTW_INFO("%s : send to process %d\n", __func__, padapter_for_genl->genl_bind_pid); - if(buf == NULL || buf_len <= 0) { - RTW_ERR("%s buf is NULL or buf_len : %d\n", __func__, buf_len); - return -1; - } - #if defined(CONFIG_ALIBABA_ZEROCONFIG_DBG) - RTW_INFO("%s dump buf\n", __func__); - RTW_INFO_DUMP(NULL, buf, buf_len); - #endif - - skb = genlmsg_new(MAX_CUSTOM_PKT_LENGTH, GFP_KERNEL); - - if (skb) { - msg_head = genlmsg_put(skb, 0, 0, &rtw_genl_family, 0, GENL_CUSTOM_COMMAND_RECV); - if (msg_head == NULL) { - nlmsg_free(skb); - RTW_ERR("%s(): genlmsg_put fail\n", __func__); - return -1; - } - - ret = nla_put(skb, GENL_CUSTOM_ATTR_MSG, buf_len, buf); - if (ret != 0) { - nlmsg_free(skb); - RTW_INFO("%s(): nla_put fail : %d\n", __func__, ret); - return ret; - } - - genlmsg_end(skb, msg_head); - - /* sending message */ - ret = genlmsg_unicast(&init_net, skb, padapter_for_genl->genl_bind_pid); - if (ret != 0) { - RTW_ERR("%s(): genlmsg_unicast fail : %d\n", __func__, ret); - rtw_genl_send_retry_cnt++; - if(rtw_genl_send_retry_cnt >= GENLMSG_UNICAST_RETRY_LIMIT){ - RTW_ERR("%s(): Exceeding retry cnt %d, process might be killed\n", __func__, rtw_genl_send_retry_cnt); - RTW_ERR("%s(): Unbind pid : %d\n", __func__, padapter_for_genl->genl_bind_pid); - padapter_for_genl->genl_bind_pid = -1; - _rtw_memset(padapter_for_genl->target_macaddr, 0, ETH_ALEN); - -#if defined(CONFIG_POWER_SAVING) - RTW_INFO("%s() enable ips & lps\n", __func__); - rtw_pm_set_lps(padapter_for_genl, PS_MODE_MAX); - rtw_pm_set_ips(padapter_for_genl, IPS_NORMAL); -#endif - } - return ret; - } - } else { - RTW_ERR("%s(): genlmsg_new fail\n", __func__); - return -1; - } - rtw_genl_send_retry_cnt = 0; - return 0; - -} -#endif /* CONFIG_ALIBABA_ZEROCONFIG */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_proc.c b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_proc.c old mode 100644 new mode 100755 index 58d1acfd..2ea369ef --- a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_proc.c +++ b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_proc.c @@ -37,6 +37,8 @@ inline struct proc_dir_entry *get_rtw_drv_proc(void) #if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)) #define PDE_DATA(inode) PDE((inode))->data #define proc_get_parent_data(inode) PDE((inode))->parent->data +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 17, 0)) +#define PDE_DATA pde_data #endif #if (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 24)) @@ -161,9 +163,40 @@ static int proc_get_mstat(struct seq_file *m, void *v) } #endif /* DBG_MEM_ALLOC */ +static bool regd_info; static int proc_get_country_chplan_map(struct seq_file *m, void *v) { - dump_country_chplan_map(m); + dump_country_chplan_map(m, regd_info); + return 0; +} + +static ssize_t proc_set_country_chplan_map(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) +{ + char tmp[32]; + int regd_info_val; + + if (count < 1) + return -EINVAL; + + if (count > sizeof(tmp)) { + rtw_warn_on(1); + return -EFAULT; + } + + if (buffer && !copy_from_user(tmp, buffer, count)) { + int num = sscanf(tmp, "%d", ®d_info_val); + + if (num >= 1) + regd_info = regd_info_val ? 1 : 0; + } else + return -EFAULT; + + return count; +} + +static int proc_get_country_list(struct seq_file *m, void *v) +{ + dump_country_list(m); return 0; } @@ -173,11 +206,33 @@ static int proc_get_chplan_id_list(struct seq_file *m, void *v) return 0; } +static int proc_get_chplan_country_list(struct seq_file *m, void *v) +{ + dump_chplan_country_list(m); + return 0; +} + +#if CONFIG_IEEE80211_BAND_6GHZ +static int proc_get_chplan_6g_id_list(struct seq_file *m, void *v) +{ + dump_chplan_6g_id_list(m); + return 0; +} + +static int proc_get_chplan_6g_country_list(struct seq_file *m, void *v) +{ + dump_chplan_6g_country_list(m); + return 0; +} +#endif + +#ifdef CONFIG_RTW_DEBUG static int proc_get_chplan_test(struct seq_file *m, void *v) { dump_chplan_test(m); return 0; } +#endif static int proc_get_chplan_ver(struct seq_file *m, void *v) { @@ -185,6 +240,20 @@ static int proc_get_chplan_ver(struct seq_file *m, void *v) return 0; } +static int proc_get_global_op_class(struct seq_file *m, void *v) +{ + dump_global_op_class(m); + return 0; +} + +#ifdef CONFIG_RTW_DEBUG +static int proc_get_hw_rate_map_test(struct seq_file *m, void *v) +{ + dump_hw_rate_map_test(m); + return 0; +} +#endif + #ifdef RTW_HALMAC extern void rtw_halmac_get_version(char *str, u32 len); @@ -211,10 +280,22 @@ const struct rtw_proc_hdl drv_proc_hdls[] = { #ifdef DBG_MEM_ALLOC RTW_PROC_HDL_SSEQ("mstat", proc_get_mstat, NULL), #endif /* DBG_MEM_ALLOC */ - RTW_PROC_HDL_SSEQ("country_chplan_map", proc_get_country_chplan_map, NULL), + RTW_PROC_HDL_SSEQ("country_chplan_map", proc_get_country_chplan_map, proc_set_country_chplan_map), + RTW_PROC_HDL_SSEQ("country_list", proc_get_country_list, NULL), RTW_PROC_HDL_SSEQ("chplan_id_list", proc_get_chplan_id_list, NULL), + RTW_PROC_HDL_SSEQ("chplan_country_list", proc_get_chplan_country_list, NULL), +#if CONFIG_IEEE80211_BAND_6GHZ + RTW_PROC_HDL_SSEQ("chplan_6g_id_list", proc_get_chplan_6g_id_list, NULL), + RTW_PROC_HDL_SSEQ("chplan_6g_country_list", proc_get_chplan_6g_country_list, NULL), +#endif +#ifdef CONFIG_RTW_DEBUG RTW_PROC_HDL_SSEQ("chplan_test", proc_get_chplan_test, NULL), +#endif RTW_PROC_HDL_SSEQ("chplan_ver", proc_get_chplan_ver, NULL), + RTW_PROC_HDL_SSEQ("global_op_class", proc_get_global_op_class, NULL), +#ifdef CONFIG_RTW_DEBUG + RTW_PROC_HDL_SSEQ("hw_rate_map_test", proc_get_hw_rate_map_test, NULL), +#endif #ifdef RTW_HALMAC RTW_PROC_HDL_SSEQ("halmac_info", proc_get_halmac_info, NULL), #endif /* RTW_HALMAC */ @@ -440,6 +521,100 @@ static int proc_get_sdio_card_info(struct seq_file *m, void *v) return 0; } +#ifdef CONFIG_SDIO_RECVBUF_AGGREGATION +int proc_get_sdio_recvbuf_aggregation(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *adapter = GET_PRIMARY_ADAPTER((_adapter *)rtw_netdev_priv(dev)); + struct recv_priv *recvpriv = &adapter->recvpriv; + + RTW_PRINT_SEL(m, "%d\n", recvpriv->recvbuf_agg); + + return 0; +} + +ssize_t proc_set_sdio_recvbuf_aggregation(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) +{ + struct net_device *dev = data; + _adapter *adapter = GET_PRIMARY_ADAPTER((_adapter *)rtw_netdev_priv(dev)); + struct recv_priv *recvpriv = &adapter->recvpriv; + + char tmp[32]; + u8 enable; + + if (count < 1) + return -EFAULT; + + if (count > sizeof(tmp)) { + rtw_warn_on(1); + return -EFAULT; + } + + if (buffer && !copy_from_user(tmp, buffer, count)) { + + int num = sscanf(tmp, "%hhu", &enable); + + if (num >= 1) + recvpriv->recvbuf_agg = enable ? 1 : 0; + } + + return count; +} +#endif /* CONFIG_SDIO_RECVBUF_AGGREGATION */ + +#ifdef CONFIG_SDIO_RECVBUF_PWAIT +int proc_get_sdio_recvbuf_pwait(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *adapter = GET_PRIMARY_ADAPTER((_adapter *)rtw_netdev_priv(dev)); + struct recv_priv *recvpriv = &adapter->recvpriv; + + dump_recvbuf_pwait_conf(m, recvpriv); + + return 0; +} + +ssize_t proc_set_sdio_recvbuf_pwait(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) +{ +#ifdef CONFIG_SDIO_RECVBUF_PWAIT_RUNTIME_ADJUST + struct net_device *dev = data; + _adapter *adapter = GET_PRIMARY_ADAPTER((_adapter *)rtw_netdev_priv(dev)); + struct recv_priv *recvpriv = &adapter->recvpriv; + + char tmp[64]; + char type[64]; + s32 time; + s32 cnt_lmt; + + if (count < 3) + return -EFAULT; + + if (count > sizeof(tmp)) { + rtw_warn_on(1); + return -EFAULT; + } + + if (buffer && !copy_from_user(tmp, buffer, count)) { + int num = sscanf(tmp, "%s %d %d", type, &time, &cnt_lmt); + int i; + + if (num < 3) + return -EINVAL; + + for (i = 0; i < RTW_PWAIT_TYPE_NUM; i++) + if (strncmp(_rtw_pwait_type_str[i], type, strlen(_rtw_pwait_type_str[i])) == 0) + break; + + if (i < RTW_PWAIT_TYPE_NUM && recvbuf_pwait_config_req(recvpriv, i, time, cnt_lmt) != _SUCCESS) + return -EINVAL; + } + return count; +#else + return -EFAULT; +#endif /* CONFIG_SDIO_RECVBUF_PWAIT_RUNTIME_ADJUST */ +} +#endif /* CONFIG_SDIO_RECVBUF_PWAIT */ + #ifdef DBG_SDIO static int proc_get_sdio_dbg(struct seq_file *m, void *v) { @@ -737,6 +912,46 @@ ssize_t proc_set_ap_isolate(struct file *file, const char __user *buffer, size_t return count; } + +#if CONFIG_RTW_AP_DATA_BMC_TO_UC +static int proc_get_ap_b2u_flags(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *adapter = rtw_netdev_priv(dev); + + if (MLME_IS_AP(adapter)) + dump_ap_b2u_flags(m, adapter); + + return 0; +} + +static ssize_t proc_set_ap_b2u_flags(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) +{ + struct net_device *dev = data; + _adapter *adapter = rtw_netdev_priv(dev); + char tmp[32]; + + if (count < 1) + return -EFAULT; + + if (count > sizeof(tmp)) { + rtw_warn_on(1); + return -EFAULT; + } + + if (buffer && !copy_from_user(tmp, buffer, count)) { + u8 src, fwd; + int num = sscanf(tmp, "%hhx %hhx", &src, &fwd); + + if (num >= 1) + adapter->b2u_flags_ap_src = src; + if (num >= 2) + adapter->b2u_flags_ap_fwd = fwd; + } + + return count; +} +#endif /* CONFIG_RTW_AP_DATA_BMC_TO_UC */ #endif /* CONFIG_AP_MODE */ static int proc_get_dump_tx_rate_bmp(struct seq_file *m, void *v) @@ -1340,7 +1555,6 @@ static int proc_get_chan_plan(struct seq_file *m, void *v) _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); dump_cur_chset(m, adapter_to_rfctl(adapter)); - return 0; } @@ -1349,7 +1563,8 @@ static ssize_t proc_set_chan_plan(struct file *file, const char __user *buffer, struct net_device *dev = data; _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); char tmp[32]; - u8 chan_plan = RTW_CHPLAN_UNSPECIFIED; + u16 chplan = RTW_CHPLAN_UNSPECIFIED; + u16 chplan_6g = RTW_CHPLAN_6G_UNSPECIFIED; if (!padapter) return -EFAULT; @@ -1365,12 +1580,14 @@ static ssize_t proc_set_chan_plan(struct file *file, const char __user *buffer, } if (buffer && !copy_from_user(tmp, buffer, count)) { - int num = sscanf(tmp, "%hhx", &chan_plan); - if (num != 1) + int num = sscanf(tmp, "%hx %hx", &chplan, &chplan_6g); + if (num < 1) return count; + + rtw_chplan_ioctl_input_mapping(&chplan, &chplan_6g); } - rtw_set_channel_plan(padapter, chan_plan); + rtw_set_channel_plan(padapter, chplan, chplan_6g, RTW_REGD_SET_BY_USER); return count; } @@ -1381,10 +1598,7 @@ static int proc_get_country_code(struct seq_file *m, void *v) _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); - if (rfctl->country_ent) - dump_country_chplan(m, rfctl->country_ent); - else - RTW_PRINT_SEL(m, "unspecified\n"); + dump_cur_country(m, rfctl); return 0; } @@ -1412,7 +1626,112 @@ static ssize_t proc_set_country_code(struct file *file, const char __user *buffe if (num != 2) return count; - rtw_set_country(padapter, alpha2); + rtw_set_country(padapter, alpha2, RTW_REGD_SET_BY_USER); + +exit: + return count; +} + +static int cap_spt_op_class_ch_detail = 0; + +static int proc_get_cap_spt_op_class_ch(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); + + dump_cap_spt_op_class_ch(m , adapter_to_rfctl(adapter), cap_spt_op_class_ch_detail); + return 0; +} + +static ssize_t proc_set_cap_spt_op_class_ch(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) +{ + struct net_device *dev = data; + _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); + char tmp[32]; + int num; + + if (count < 1) + return -EFAULT; + + if (count > sizeof(tmp)) { + rtw_warn_on(1); + return -EFAULT; + } + + if (!buffer || copy_from_user(tmp, buffer, count)) + goto exit; + + num = sscanf(tmp, "%d", &cap_spt_op_class_ch_detail); + +exit: + return count; +} + +static int reg_spt_op_class_ch_detail = 0; + +static int proc_get_reg_spt_op_class_ch(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); + + dump_reg_spt_op_class_ch(m , adapter_to_rfctl(adapter), reg_spt_op_class_ch_detail); + return 0; +} + +static ssize_t proc_set_reg_spt_op_class_ch(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) +{ + struct net_device *dev = data; + _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); + char tmp[32]; + int num; + + if (count < 1) + return -EFAULT; + + if (count > sizeof(tmp)) { + rtw_warn_on(1); + return -EFAULT; + } + + if (!buffer || copy_from_user(tmp, buffer, count)) + goto exit; + + num = sscanf(tmp, "%d", ®_spt_op_class_ch_detail); + +exit: + return count; +} + +static int cur_spt_op_class_ch_detail = 0; + +static int proc_get_cur_spt_op_class_ch(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); + + dump_cur_spt_op_class_ch(m , adapter_to_rfctl(adapter), cur_spt_op_class_ch_detail); + return 0; +} + +static ssize_t proc_set_cur_spt_op_class_ch(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) +{ + struct net_device *dev = data; + _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); + char tmp[32]; + int num; + + if (count < 1) + return -EFAULT; + + if (count > sizeof(tmp)) { + rtw_warn_on(1); + return -EFAULT; + } + + if (!buffer || copy_from_user(tmp, buffer, count)) + goto exit; + + num = sscanf(tmp, "%d", &cur_spt_op_class_ch_detail); exit: return count; @@ -1684,6 +2003,62 @@ exit: return count; } +#ifdef CONFIG_80211D +static int proc_get_country_ie_slave_en_conds(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + + RTW_PRINT_SEL(m, "%-4s %-5s\n", "role", "ifbmp"); + RTW_PRINT_SEL(m, "0x%02x 0x%02x\n" + , rfctl->country_ie_slave_en_role + , rfctl->country_ie_slave_en_ifbmp + ); + + return 0; +} + +static ssize_t proc_set_country_ie_slave_en_conds(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) +{ + struct net_device *dev = data; + _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + char tmp[32]; + + if (count < 1) + return -EFAULT; + + if (count > sizeof(tmp)) { + rtw_warn_on(1); + return -EFAULT; + } + + if (buffer && !copy_from_user(tmp, buffer, count)) { + u8 role, ifbmp; + int num = sscanf(tmp, "%hhx %hhx", &role, &ifbmp); + + if (num >= 1) + rfctl->country_ie_slave_en_role = role; + if (num >= 2) + rfctl->country_ie_slave_en_ifbmp = ifbmp; + } + + return count; +} + +static int proc_get_country_ie_slave_records(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + + dump_country_ie_slave_records(m, rfctl, 0); + + return 0; +} +#endif /* CONFIG_80211D */ + #ifdef CONFIG_DFS_MASTER static int proc_get_dfs_test_case(struct seq_file *m, void *v) { @@ -1737,6 +2112,7 @@ ssize_t proc_set_update_non_ocp(struct file *file, const char __user *buffer, si char tmp[32]; u8 ch, bw = CHANNEL_WIDTH_20, offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE; int ms = -1; + bool updated = 0; if (count < 1) return -EFAULT; @@ -1754,11 +2130,17 @@ ssize_t proc_set_update_non_ocp(struct file *file, const char __user *buffer, si goto exit; if (bw == CHANNEL_WIDTH_20) - rtw_chset_update_non_ocp_ms(rfctl->channel_set + updated = rtw_chset_update_non_ocp_ms(rfctl->channel_set , ch, bw, HAL_PRIME_CHNL_OFFSET_DONT_CARE, ms); else - rtw_chset_update_non_ocp_ms(rfctl->channel_set + updated = rtw_chset_update_non_ocp_ms(rfctl->channel_set , ch, bw, offset, ms); + + if (updated) { + u8 cch = rtw_get_center_ch(ch, bw, offset); + + rtw_nlrtw_nop_start_event(adapter, cch, bw); + } } exit: @@ -1795,6 +2177,47 @@ exit: return count; } +static int proc_get_dfs_ch_sel_e_flags(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + + RTW_PRINT_SEL(m, "0x%02x\n", rfctl->dfs_ch_sel_e_flags); + + return 0; +} + +static ssize_t proc_set_dfs_ch_sel_e_flags(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) +{ + struct net_device *dev = data; + _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + char tmp[32]; + u8 e_flags; + int num; + + if (count < 1) + return -EFAULT; + + if (count > sizeof(tmp)) { + rtw_warn_on(1); + return -EFAULT; + } + + if (!buffer || copy_from_user(tmp, buffer, count)) + goto exit; + + num = sscanf(tmp, "%hhx", &e_flags); + if (num != 1) + goto exit; + + rfctl->dfs_ch_sel_e_flags = e_flags; + +exit: + return count; +} + static int proc_get_dfs_ch_sel_d_flags(struct seq_file *m, void *v) { struct net_device *dev = m->private; @@ -2180,6 +2603,7 @@ static int proc_get_sec_cam_cache(struct seq_file *m, void *v) return 0; } +#ifdef CONFIG_AP_MODE static ssize_t proc_set_change_bss_chbw(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) { struct net_device *dev = data; @@ -2227,6 +2651,7 @@ static ssize_t proc_set_change_bss_chbw(struct file *file, const char __user *bu exit: return count; } +#endif #if CONFIG_TX_AC_LIFETIME static int proc_get_tx_aclt_force_val(struct seq_file *m, void *v) @@ -2457,6 +2882,7 @@ static int proc_get_tx_power_by_rate(struct seq_file *m, void *v) return 0; } +#if CONFIG_TXPWR_LIMIT static int proc_get_tx_power_limit(struct seq_file *m, void *v) { struct net_device *dev = m->private; @@ -2466,6 +2892,93 @@ static int proc_get_tx_power_limit(struct seq_file *m, void *v) return 0; } +#endif /* CONFIG_TXPWR_LIMIT */ + +static int proc_get_tpc_settings(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); + + dump_txpwr_tpc_settings(m, adapter); + + return 0; +} + +static ssize_t proc_set_tpc_settings(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) +{ + struct net_device *dev = data; + _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + + char tmp[32] = {0}; + u8 mode; + u16 m_constraint; + + if (count > sizeof(tmp)) { + rtw_warn_on(1); + return -EFAULT; + } + + if (buffer && !copy_from_user(tmp, buffer, count)) { + + int num = sscanf(tmp, "%hhu %hu", &mode, &m_constraint); + + if (num < 1) + return count; + + if (mode >= TPC_MODE_INVALID) + return count; + + if (mode == TPC_MODE_MANUAL && num >= 2) + rfctl->tpc_manual_constraint = rtw_min(m_constraint, TPC_MANUAL_CONSTRAINT_MAX); + rfctl->tpc_mode = mode; + + if (rtw_get_hw_init_completed(adapter)) + rtw_run_in_thread_cmd_wait(adapter, ((void *)(rtw_hal_update_txpwr_level)), adapter, 2000); + } + + return count; +} + +static int proc_get_antenna_gain(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); + + dump_txpwr_antenna_gain(m, adapter); + + return 0; +} + +static ssize_t proc_set_antenna_gain(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) +{ + struct net_device *dev = data; + _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); + struct rf_ctl_t *rfctl = adapter_to_rfctl(adapter); + + char tmp[32] = {0}; + s16 gain; + + if (count > sizeof(tmp)) { + rtw_warn_on(1); + return -EFAULT; + } + + if (buffer && !copy_from_user(tmp, buffer, count)) { + + int num = sscanf(tmp, "%hd", &gain); + + if (num < 1) + return count; + + rfctl->antenna_gain = gain; + + if (rtw_get_hw_init_completed(adapter)) + rtw_run_in_thread_cmd_wait(adapter, ((void *)(rtw_hal_update_txpwr_level)), adapter, 2000); + } + + return count; +} static int proc_get_tx_power_ext_info(struct seq_file *m, void *v) { @@ -3687,6 +4200,406 @@ static int proc_get_dynamic_agg_enable(struct seq_file *m, void *v) return 0; } +#ifdef CONFIG_RTW_WDS +static int proc_get_wds_en(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *adapter = rtw_netdev_priv(dev); + + if (MLME_STATE(adapter) & (WIFI_AP_STATE | WIFI_STATION_STATE)) + RTW_PRINT_SEL(m, "%d\n", adapter_use_wds(adapter)); + + return 0; +} + +static ssize_t proc_set_wds_en(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) +{ + struct net_device *dev = data; + _adapter *adapter = rtw_netdev_priv(dev); + char tmp[32]; + + if (!(MLME_STATE(adapter) & (WIFI_AP_STATE | WIFI_STATION_STATE))) + return -EFAULT; + + if (count < 1) + return -EFAULT; + + if (count > sizeof(tmp)) { + rtw_warn_on(1); + return -EFAULT; + } + + if (buffer && !copy_from_user(tmp, buffer, count)) { + u8 enable; + int num = sscanf(tmp, "%hhu", &enable); + + if (num >= 1) + adapter_set_use_wds(adapter, enable); + } + + return count; +} + +static ssize_t proc_set_sta_wds_en(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) +{ + struct net_device *dev = data; + _adapter *adapter = rtw_netdev_priv(dev); + char tmp[32]; + + if (count < 1) + return -EFAULT; + + if (count > sizeof(tmp)) { + rtw_warn_on(1); + return -EFAULT; + } + + if (buffer && !copy_from_user(tmp, buffer, count)) { + u8 enable; + u8 addr[ETH_ALEN]; + struct sta_info *sta; + int num = sscanf(tmp, "%hhu "MAC_SFMT, &enable, MAC_SARG(addr)); + + if (num != 7) + return -EINVAL; + + if (IS_MCAST(addr) || _rtw_memcmp(adapter_mac_addr(adapter), addr, ETH_ALEN)) + return -EINVAL; + + sta = rtw_get_stainfo(&adapter->stapriv, addr); + if (!sta) + return -EINVAL; + + if (enable) + sta->flags |= WLAN_STA_WDS; + else + sta->flags &= ~WLAN_STA_WDS; + } + + return count; +} + +static int proc_get_wds_gptr(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *adapter = rtw_netdev_priv(dev); + + if (MLME_IS_STA(adapter) && MLME_IS_ASOC(adapter)) + dump_wgptr(m, adapter); + + return 0; +} + +#ifdef CONFIG_AP_MODE +static int proc_get_wds_path(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *adapter = rtw_netdev_priv(dev); + + if (MLME_IS_AP(adapter) && MLME_IS_ASOC(adapter)) + dump_wpath(m, adapter); + + return 0; +} +#endif /* CONFIG_AP_MODE */ +#endif /* CONFIG_RTW_WDS */ + +#ifdef CONFIG_RTW_MULTI_AP +static int proc_get_multi_ap_opmode(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *adapter = rtw_netdev_priv(dev); + + if (MLME_STATE(adapter) & (WIFI_AP_STATE | WIFI_STATION_STATE)) + RTW_PRINT_SEL(m, "0x%02x\n", adapter->multi_ap); + + return 0; +} + +static ssize_t proc_set_multi_ap_opmode(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) +{ + struct net_device *dev = data; + _adapter *adapter = rtw_netdev_priv(dev); + char tmp[32]; + + if (!(MLME_STATE(adapter) & (WIFI_AP_STATE | WIFI_STATION_STATE))) + return -EFAULT; + + if (count < 1) + return -EFAULT; + + if (count > sizeof(tmp)) { + rtw_warn_on(1); + return -EFAULT; + } + + if (buffer && !copy_from_user(tmp, buffer, count)) { + u8 mode; + int num = sscanf(tmp, "%hhx", &mode); + + if (num >= 1) { + if (MLME_IS_AP(adapter)) + adapter->multi_ap = mode & (MULTI_AP_FRONTHAUL_BSS | MULTI_AP_BACKHAUL_BSS); + else + adapter->multi_ap = mode & MULTI_AP_BACKHAUL_STA; + if (adapter->multi_ap & (MULTI_AP_BACKHAUL_BSS | MULTI_AP_BACKHAUL_STA)) + adapter_set_use_wds(adapter, 1); + } + } + + return count; +} + +static int proc_get_unassoc_sta(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *adapter = GET_PRIMARY_ADAPTER(rtw_netdev_priv(dev)); + + dump_unassoc_sta(m, adapter); + + return 0; +} + +ssize_t proc_set_unassoc_sta(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) +{ + struct net_device *dev = data; + _adapter *adapter = GET_PRIMARY_ADAPTER(rtw_netdev_priv(dev)); + char tmp[17 * 10 + 32] = {0}; + char cmd[32]; + u8 mode; + u8 stype = 0; + u8 addr[ETH_ALEN]; + +#define UNASOC_STA_CMD_MODE 0 +#define UNASOC_STA_CMD_ADD 1 +#define UNASOC_STA_CMD_DEL 2 +#define UNASOC_STA_CMD_CLR 3 +#define UNASOC_STA_CMD_UNINT 4 +#define UNASOC_STA_CMD_NUM 5 + + static const char * const unasoc_sta_cmd_str[] = { + "mode", + "add", + "del", + "clr", + "uninterest", + }; + u8 cmd_id = UNASOC_STA_CMD_NUM; + + if (count < 1) + return -EFAULT; + + if (count > sizeof(tmp)) { + RTW_WARN(FUNC_ADPT_FMT" input string too long\n", FUNC_ADPT_ARG(adapter)); + rtw_warn_on(1); + return -EFAULT; + } + + if (buffer && !copy_from_user(tmp, buffer, count)) { + /* + * mode , + * add [] + * del [] + * clr + */ + char *c, *next; + int i; + u8 is_bcast; + + next = tmp; + c = strsep(&next, " \t"); + if (!c || sscanf(c, "%s", cmd) != 1) + goto exit; + + for (i = 0; i < UNASOC_STA_CMD_NUM; i++) + if (strcmp(unasoc_sta_cmd_str[i], cmd) == 0) + cmd_id = i; + + switch (cmd_id) { + case UNASOC_STA_CMD_MODE: + c = strsep(&next, " \t"); + if (!c || sscanf(c, "%hhu,%hhu", &stype, &mode) != 2) { + RTW_WARN(FUNC_ADPT_FMT" invalid arguments of mode cmd\n", FUNC_ADPT_ARG(adapter)); + goto exit; + } + if (stype >= UNASOC_STA_SRC_NUM) { + RTW_WARN(FUNC_ADPT_FMT" invalid stype:%u\n", FUNC_ADPT_ARG(adapter), stype); + goto exit; + } + if (mode >= UNASOC_STA_MODE_NUM) { + RTW_WARN(FUNC_ADPT_FMT" invalid mode:%u\n", FUNC_ADPT_ARG(adapter), mode); + goto exit; + } + rtw_unassoc_sta_set_mode(adapter, stype, mode); + break; + + case UNASOC_STA_CMD_ADD: + case UNASOC_STA_CMD_DEL: + case UNASOC_STA_CMD_UNINT: + /* check for macaddr list */ + c = strsep(&next, " \t"); + while (c != NULL) { + if (sscanf(c, MAC_SFMT, MAC_SARG(addr)) != 6) + break; + + is_bcast = is_broadcast_mac_addr(addr); + if (is_bcast + || rtw_check_invalid_mac_address(addr, 0) == _FALSE + ) { + if (cmd_id == UNASOC_STA_CMD_DEL) { + if (is_bcast) { + rtw_del_unassoc_sta_queue(adapter); + break; + } else + rtw_del_unassoc_sta(adapter, addr); + } else if (cmd_id == UNASOC_STA_CMD_UNINT) { + if (is_bcast) { + rtw_undo_all_interested_unassoc_sta(adapter); + break; + } else + rtw_undo_interested_unassoc_sta(adapter, addr); + } else if (!is_bcast) + rtw_add_interested_unassoc_sta(adapter, addr); + } + + c = strsep(&next, " \t"); + } + break; + + case UNASOC_STA_CMD_CLR: + /* clear sta list */ + rtw_del_unassoc_sta_queue(adapter); + goto exit; + + default: + RTW_WARN(FUNC_ADPT_FMT" invalid cmd:\"%s\"\n", FUNC_ADPT_ARG(adapter), cmd); + goto exit; + } + } + +exit: + return count; +} + +#ifdef CONFIG_IOCTL_CFG80211 +static u8 assoc_req_mac_addr[6]; +int proc_get_sta_assoc_req_frame_body(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); + + if (MLME_IS_AP(adapter)) { + struct sta_info *psta; + _irqL irqL; + u8 *passoc_req = NULL; + u32 assoc_req_len = 0; + + psta = rtw_get_stainfo(&adapter->stapriv, assoc_req_mac_addr); + if (psta == NULL) { + RTW_PRINT(FUNC_ADPT_FMT" sta("MAC_FMT") not found\n", + FUNC_ADPT_ARG(adapter), MAC_ARG(assoc_req_mac_addr)); + return 0; + } + RTW_PRINT(FUNC_ADPT_FMT" sta("MAC_FMT") found\n", + FUNC_ADPT_ARG(adapter), MAC_ARG(assoc_req_mac_addr)); + _enter_critical_bh(&psta->lock, &irqL); + if (psta->passoc_req && psta->assoc_req_len > 0) { + passoc_req = rtw_zmalloc(psta->assoc_req_len); + if (passoc_req) { + assoc_req_len = psta->assoc_req_len; + _rtw_memcpy(passoc_req, psta->passoc_req, assoc_req_len); + } + } + _exit_critical_bh(&psta->lock, &irqL); + if (passoc_req && assoc_req_len > IEEE80211_3ADDR_LEN) { + u8 *body = passoc_req + IEEE80211_3ADDR_LEN; + u32 body_len = assoc_req_len - IEEE80211_3ADDR_LEN; + u16 i; + + for (i = 0; i < body_len; i++) + _RTW_PRINT_SEL(m, "%02X", body[i]); + _RTW_PRINT_SEL(m, "\n"); + } + if (passoc_req && assoc_req_len > 0) + rtw_mfree(passoc_req, assoc_req_len); + } + + return 0; +} + +ssize_t proc_set_sta_assoc_req_frame_body(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) +{ + struct net_device *dev = data; + _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); + char tmp[18] = {0}; + + if (count < 1) + return -EFAULT; + + if (count > sizeof(tmp)) { + rtw_warn_on(1); + return -EFAULT; + } + + if (buffer && !copy_from_user(tmp, buffer, count)) { + if (sscanf(tmp, MAC_SFMT, MAC_SARG(assoc_req_mac_addr)) != 6) { + _rtw_memset(assoc_req_mac_addr, 0, 6); + RTW_PRINT(FUNC_ADPT_FMT" Invalid format\n", + FUNC_ADPT_ARG(adapter)); + } + + } + + return count; +} +#endif /* CONFIG_IOCTL_CFG80211 */ + +static int proc_get_ch_util_threshold(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *adapter = GET_PRIMARY_ADAPTER(rtw_netdev_priv(dev)); + + RTW_PRINT_SEL(m, "%hhu\n", adapter->ch_util_threshold); + + return 0; +} + +static ssize_t proc_set_ch_util_threshold(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) +{ + struct net_device *dev = data; + _adapter *adapter = GET_PRIMARY_ADAPTER(rtw_netdev_priv(dev)); + char tmp[4]; + + if (count < 1) + return -EFAULT; + + if (count > sizeof(tmp)) { + rtw_warn_on(1); + return -EFAULT; + } + + if (buffer && !copy_from_user(tmp, buffer, count)) { + u8 threshold; + int num = sscanf(tmp, "%hhu", &threshold); + + if (num == 1) + adapter->ch_util_threshold = threshold; + } + + return count; +} + +static int proc_get_ch_utilization(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + _adapter *adapter = (_adapter *)rtw_netdev_priv(dev); + + RTW_PRINT_SEL(m, "%hhu\n", rtw_get_ch_utilization(adapter)); + + return 0; +} +#endif /* CONFIG_RTW_MULTI_AP */ + #ifdef CONFIG_RTW_MESH static int proc_get_mesh_peer_sel_policy(struct seq_file *m, void *v) { @@ -4369,56 +5282,44 @@ int proc_get_cur_beacon_keys(struct seq_file *m, void *v) return 0; } -int proc_get_shift_rxagc(struct seq_file *m, void *v) +static int proc_get_wpas_info(struct seq_file *m, void *v) { struct net_device *dev = m->private; _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); - HAL_DATA_TYPE *hal_data = GET_HAL_DATA(padapter); - _RTW_PRINT_SEL(m, "total shift rx gain %d dB\n", hal_data->shift_rxagc); + RTW_PRINT_SEL(m, "WPAS_INFO: %s\n", + (RTW_WPAS_W1FI == adapter_to_dvobj(padapter)->wpas_type) ? "w1.fi (0)" : "android (1)"); + return 0; } -ssize_t proc_set_shift_rxagc(struct file *file, const char __user *buffer, - size_t count, loff_t *pos, void *data) +static ssize_t proc_set_wpas_info(struct file *file, + const char __user *buffer, size_t count, loff_t *pos, void *data) { struct net_device *dev = data; _adapter *padapter = (_adapter *)rtw_netdev_priv(dev); - HAL_DATA_TYPE *hal_data = GET_HAL_DATA(padapter); - struct dm_struct *phydm = &(hal_data->odmpriv); - int num; - char tmp[32] = {0}; - u8 op, val; + char tmp[32]; + int val; - if ((count < 1) || (count > sizeof(tmp))) + if (count < 1) + return -EINVAL; + + if (count > sizeof(tmp)) { + rtw_warn_on(1); return -EFAULT; + } if (buffer && !copy_from_user(tmp, buffer, count)) { - num = sscanf(tmp, "%hhu %hhu", &op, &val); - if (num < 1 || num > 2) { - RTW_ERR("op: {0:-, 1:+} val: {value(0~63, unit:2dB)}\n"); - return -EFAULT; - } + int num = sscanf(tmp, "%d ", &val); - if ((op != 0) && (op != 1)) { - RTW_ERR("op: {0:-, 1:+}\n"); - return -EFAULT; - } - - if ((val < 0) || (val >=64)) { - RTW_ERR("val: {value(0~63, unit:2dB)}\n"); - return -EFAULT; - } - - if (op) - hal_data->shift_rxagc = (val * 2); + if (RTW_WPAS_W1FI == val) + adapter_to_dvobj(padapter)->wpas_type = RTW_WPAS_W1FI; + else if (RTW_WPAS_ANDROID == val) + adapter_to_dvobj(padapter)->wpas_type = RTW_WPAS_ANDROID; else - hal_data->shift_rxagc = -(val * 2); - - RTW_INFO("set rx gain %d dB(index=%u)\n", hal_data->shift_rxagc, val); - LeaveAllPowerSaveMode(padapter); - phydm_shift_rxagc_table(phydm, op, val); - } + return -EFAULT; + } else + return -EFAULT; return count; } @@ -4530,23 +5431,30 @@ const struct rtw_proc_hdl adapter_proc_hdls[] = { RTW_PROC_HDL_SSEQ("sec_cam_cache", proc_get_sec_cam_cache, NULL), RTW_PROC_HDL_SSEQ("ps_dbg_info", proc_get_ps_dbg_info, proc_set_ps_dbg_info), RTW_PROC_HDL_SSEQ("wifi_spec", proc_get_wifi_spec, NULL), -#ifdef CONFIG_ALIBABA_ZEROCONFIG - RTW_PROC_HDL_SSEQ("zeroconf_tgt_macaddr", proc_get_zeroconf_tgt_macaddr, proc_set_zeroconf_tgt_macaddr), -#endif #ifdef CONFIG_LAYER2_ROAMING RTW_PROC_HDL_SSEQ("roam_flags", proc_get_roam_flags, proc_set_roam_flags), RTW_PROC_HDL_SSEQ("roam_param", proc_get_roam_param, proc_set_roam_param), - RTW_PROC_HDL_SSEQ("roam_tgt_addr", NULL, proc_set_roam_tgt_addr), + RTW_PROC_HDL_SSEQ("roam_int", proc_get_roam_param_int, proc_set_roam_param_int), + RTW_PROC_HDL_SSEQ("roam_tgt_addr", proc_get_roam_tgt_addr, proc_set_roam_tgt_addr), #endif /* CONFIG_LAYER2_ROAMING */ - +#ifdef CONFIG_RTW_MBO + RTW_PROC_HDL_SSEQ("non_pref_ch", rtw_mbo_proc_non_pref_chans_get, rtw_mbo_proc_non_pref_chans_set), + RTW_PROC_HDL_SSEQ("cell_data", rtw_mbo_proc_cell_data_get, rtw_mbo_proc_cell_data_set), +#endif #ifdef CONFIG_RTW_80211R - RTW_PROC_HDL_SSEQ("ft_flags", proc_get_ft_flags, proc_set_ft_flags), + RTW_PROC_HDL_SSEQ("ft_flags", rtw_ft_proc_flags_get, rtw_ft_proc_flags_set), #endif RTW_PROC_HDL_SSEQ("defs_param", proc_get_defs_param, proc_set_defs_param), #ifdef CONFIG_SDIO_HCI RTW_PROC_HDL_SSEQ("sd_f0_reg_dump", proc_get_sd_f0_reg_dump, NULL), RTW_PROC_HDL_SSEQ("sdio_local_reg_dump", proc_get_sdio_local_reg_dump, NULL), RTW_PROC_HDL_SSEQ("sdio_card_info", proc_get_sdio_card_info, NULL), + #ifdef CONFIG_SDIO_RECVBUF_AGGREGATION + RTW_PROC_HDL_SSEQ("sdio_recvbuf_aggregation", proc_get_sdio_recvbuf_aggregation, proc_set_sdio_recvbuf_aggregation), + #endif + #ifdef CONFIG_SDIO_RECVBUF_PWAIT + RTW_PROC_HDL_SSEQ("sdio_recvbuf_pwait", proc_get_sdio_recvbuf_pwait, proc_set_sdio_recvbuf_pwait), + #endif #ifdef DBG_SDIO RTW_PROC_HDL_SSEQ("sdio_dbg", proc_get_sdio_dbg, proc_set_sdio_dbg), #endif /* DBG_SDIO */ @@ -4574,6 +5482,9 @@ const struct rtw_proc_hdl adapter_proc_hdls[] = { RTW_PROC_HDL_SSEQ("ap_isolate", proc_get_ap_isolate, proc_set_ap_isolate), RTW_PROC_HDL_SSEQ("all_sta_info", proc_get_all_sta_info, NULL), RTW_PROC_HDL_SSEQ("bmc_tx_rate", proc_get_bmc_tx_rate, proc_set_bmc_tx_rate), + #if CONFIG_RTW_AP_DATA_BMC_TO_UC + RTW_PROC_HDL_SSEQ("ap_b2u_flags", proc_get_ap_b2u_flags, proc_set_ap_b2u_flags), + #endif #endif /* CONFIG_AP_MODE */ #ifdef DBG_MEMORY_LEAK @@ -4604,6 +5515,15 @@ const struct rtw_proc_hdl adapter_proc_hdls[] = { RTW_PROC_HDL_SSEQ("tx_amsdu_rate", proc_get_tx_amsdu_rate, proc_set_tx_amsdu_rate), #endif #endif /* CONFIG_80211N_HT */ + +#ifdef CONFIG_80211AC_VHT + RTW_PROC_HDL_SSEQ("vht_24g_enable", proc_get_vht_24g_enable, proc_set_vht_24g_enable), +#endif + + #ifdef CONFIG_SDIO_TX_ENABLE_AVAL_INT + RTW_PROC_HDL_SSEQ("tx_aval_int_threshold", proc_get_tx_aval_th, proc_set_tx_aval_th), + #endif + RTW_PROC_HDL_SSEQ("dynamic_rrsr", proc_get_dyn_rrsr, proc_set_dyn_rrsr), RTW_PROC_HDL_SSEQ("en_fwps", proc_get_en_fwps, proc_set_en_fwps), @@ -4681,6 +5601,10 @@ const struct rtw_proc_hdl adapter_proc_hdls[] = { #ifdef CONFIG_WOW_PATTERN_HW_CAM RTW_PROC_HDL_SSEQ("wow_pattern_cam", proc_dump_pattern_cam, NULL), #endif +#ifdef CONFIG_WOW_KEEP_ALIVE_PATTERN + RTW_PROC_HDL_SSEQ("wow_keep_alive_info", proc_dump_wow_keep_alive_info, NULL), +#endif /*CONFIG_WOW_KEEP_ALIVE_PATTERN*/ + #endif #ifdef CONFIG_GPIO_WAKEUP @@ -4691,6 +5615,9 @@ const struct rtw_proc_hdl adapter_proc_hdls[] = { #endif RTW_PROC_HDL_SSEQ("country_code", proc_get_country_code, proc_set_country_code), RTW_PROC_HDL_SSEQ("chan_plan", proc_get_chan_plan, proc_set_chan_plan), + RTW_PROC_HDL_SSEQ("cap_spt_op_class_ch", proc_get_cap_spt_op_class_ch, proc_set_cap_spt_op_class_ch), + RTW_PROC_HDL_SSEQ("reg_spt_op_class_ch", proc_get_reg_spt_op_class_ch, proc_set_reg_spt_op_class_ch), + RTW_PROC_HDL_SSEQ("cur_spt_op_class_ch", proc_get_cur_spt_op_class_ch, proc_set_cur_spt_op_class_ch), #if CONFIG_RTW_MACADDR_ACL RTW_PROC_HDL_SSEQ("macaddr_acl", proc_get_macaddr_acl, proc_set_macaddr_acl), #endif @@ -4698,10 +5625,15 @@ const struct rtw_proc_hdl adapter_proc_hdls[] = { RTW_PROC_HDL_SSEQ("pre_link_sta", proc_get_pre_link_sta, proc_set_pre_link_sta), #endif RTW_PROC_HDL_SSEQ("ch_sel_policy", proc_get_ch_sel_policy, proc_set_ch_sel_policy), +#ifdef CONFIG_80211D + RTW_PROC_HDL_SSEQ("country_ie_slave_en_conds", proc_get_country_ie_slave_en_conds, proc_set_country_ie_slave_en_conds), + RTW_PROC_HDL_SSEQ("country_ie_slave_records", proc_get_country_ie_slave_records, NULL), +#endif #ifdef CONFIG_DFS_MASTER RTW_PROC_HDL_SSEQ("dfs_test_case", proc_get_dfs_test_case, proc_set_dfs_test_case), RTW_PROC_HDL_SSEQ("update_non_ocp", NULL, proc_set_update_non_ocp), RTW_PROC_HDL_SSEQ("radar_detect", NULL, proc_set_radar_detect), + RTW_PROC_HDL_SSEQ("dfs_ch_sel_e_flags", proc_get_dfs_ch_sel_e_flags, proc_set_dfs_ch_sel_e_flags), RTW_PROC_HDL_SSEQ("dfs_ch_sel_d_flags", proc_get_dfs_ch_sel_d_flags, proc_set_dfs_ch_sel_d_flags), #if CONFIG_DFS_SLAVE_WITH_RADAR_DETECT RTW_PROC_HDL_SSEQ("dfs_slave_with_rd", proc_get_dfs_slave_with_rd, proc_set_dfs_slave_with_rd), @@ -4714,7 +5646,9 @@ const struct rtw_proc_hdl adapter_proc_hdls[] = { #ifdef DBG_RX_COUNTER_DUMP RTW_PROC_HDL_SSEQ("dump_rx_cnt_mode", proc_get_rx_cnt_dump, proc_set_rx_cnt_dump), #endif +#ifdef CONFIG_AP_MODE RTW_PROC_HDL_SSEQ("change_bss_chbw", NULL, proc_set_change_bss_chbw), +#endif #if CONFIG_TX_AC_LIFETIME RTW_PROC_HDL_SSEQ("tx_aclt_force_val", proc_get_tx_aclt_force_val, proc_set_tx_aclt_force_val), RTW_PROC_HDL_SSEQ("tx_aclt_flags", proc_get_tx_aclt_flags, proc_set_tx_aclt_flags), @@ -4724,7 +5658,11 @@ const struct rtw_proc_hdl adapter_proc_hdls[] = { RTW_PROC_HDL_SSEQ("hal_txpwr_info", proc_get_hal_txpwr_info, NULL), RTW_PROC_HDL_SSEQ("target_tx_power", proc_get_target_tx_power, NULL), RTW_PROC_HDL_SSEQ("tx_power_by_rate", proc_get_tx_power_by_rate, NULL), +#if CONFIG_TXPWR_LIMIT RTW_PROC_HDL_SSEQ("tx_power_limit", proc_get_tx_power_limit, NULL), +#endif + RTW_PROC_HDL_SSEQ("tpc_settings", proc_get_tpc_settings, proc_set_tpc_settings), + RTW_PROC_HDL_SSEQ("antenna_gain", proc_get_antenna_gain, proc_set_antenna_gain), RTW_PROC_HDL_SSEQ("tx_power_ext_info", proc_get_tx_power_ext_info, proc_set_tx_power_ext_info), RTW_PROC_HDL_SEQ("tx_power_idx", &seq_ops_tx_power_idx, proc_set_tx_power_idx_dump), RTW_PROC_HDL_SEQ("txpwr_total_dbm", &seq_ops_txpwr_total_dbm, proc_set_txpwr_total_dbm_dump), @@ -4745,6 +5683,9 @@ const struct rtw_proc_hdl adapter_proc_hdls[] = { RTW_PROC_HDL_SSEQ("tdls_enable", proc_get_tdls_enable, proc_set_tdls_enable), #endif RTW_PROC_HDL_SSEQ("monitor", proc_get_monitor, proc_set_monitor), +#ifdef RTW_SIMPLE_CONFIG + RTW_PROC_HDL_SSEQ("rtw_simple_config", proc_get_simple_config, proc_set_simple_config), +#endif #ifdef CONFIG_RTW_ACS RTW_PROC_HDL_SSEQ("acs", proc_get_best_chan, proc_set_acs), @@ -4780,6 +5721,7 @@ const struct rtw_proc_hdl adapter_proc_hdls[] = { RTW_PROC_HDL_SSEQ("rx_stat", proc_get_rx_stat, NULL), RTW_PROC_HDL_SSEQ("tx_stat", proc_get_tx_stat, NULL), + RTW_PROC_HDL_SSEQ("sta_tx_stat", proc_get_sta_tx_stat, proc_set_sta_tx_stat), /**** PHY Capability ****/ RTW_PROC_HDL_SSEQ("phy_cap", proc_get_phy_cap, NULL), #ifdef CONFIG_80211N_HT @@ -4815,6 +5757,25 @@ const struct rtw_proc_hdl adapter_proc_hdls[] = { RTW_PROC_HDL_SSEQ("dynamic_agg_enable", proc_get_dynamic_agg_enable, proc_set_dynamic_agg_enable), RTW_PROC_HDL_SSEQ("fw_offload", proc_get_fw_offload, proc_set_fw_offload), +#ifdef CONFIG_RTW_WDS + RTW_PROC_HDL_SSEQ("wds_en", proc_get_wds_en, proc_set_wds_en), + RTW_PROC_HDL_SSEQ("sta_wds_en", NULL, proc_set_sta_wds_en), + RTW_PROC_HDL_SSEQ("wds_gptr", proc_get_wds_gptr, NULL), + #ifdef CONFIG_AP_MODE + RTW_PROC_HDL_SSEQ("wds_path", proc_get_wds_path, NULL), + #endif +#endif + +#ifdef CONFIG_RTW_MULTI_AP + RTW_PROC_HDL_SSEQ("multi_ap_opmode", proc_get_multi_ap_opmode, proc_set_multi_ap_opmode), + RTW_PROC_HDL_SSEQ("unassoc_sta", proc_get_unassoc_sta, proc_set_unassoc_sta), +#ifdef CONFIG_IOCTL_CFG80211 + RTW_PROC_HDL_SSEQ("sta_assoc_req_frame_body", proc_get_sta_assoc_req_frame_body, proc_set_sta_assoc_req_frame_body), +#endif + RTW_PROC_HDL_SSEQ("ch_util_threshold", proc_get_ch_util_threshold, proc_set_ch_util_threshold), + RTW_PROC_HDL_SSEQ("ch_utilization", proc_get_ch_utilization, NULL), +#endif + #ifdef CONFIG_RTW_MESH #if CONFIG_RTW_MESH_ACNODE_PREVENT RTW_PROC_HDL_SSEQ("mesh_acnode_prevent", proc_get_mesh_acnode_prevent, proc_set_mesh_acnode_prevent), @@ -4870,8 +5831,25 @@ const struct rtw_proc_hdl adapter_proc_hdls[] = { #endif RTW_PROC_HDL_SSEQ("cur_beacon_keys", proc_get_cur_beacon_keys, NULL), - RTW_PROC_HDL_SSEQ("shift_rxagc", proc_get_shift_rxagc, proc_set_shift_rxagc), + +#ifdef CONFIG_WAR_OFFLOAD + RTW_PROC_HDL_SSEQ("war_offload_enable", proc_get_war_offload_enable, proc_set_war_offload_enable), + RTW_PROC_HDL_SSEQ("war_offload_ipv4_addr", NULL, proc_set_war_offload_ipv4_addr), + RTW_PROC_HDL_SSEQ("war_offload_ipv6_addr", NULL, proc_set_war_offload_ipv6_addr), +#if defined(CONFIG_OFFLOAD_MDNS_V4) || defined(CONFIG_OFFLOAD_MDNS_V6) + RTW_PROC_HDL_SSEQ("war_offload_mdns_domain_name", proc_get_war_offload_mdns_domain_name, proc_set_war_offload_mdns_domain_name), + RTW_PROC_HDL_SSEQ("war_offload_mdns_machine_name", proc_get_war_offload_mdns_machine_name, proc_set_war_offload_mdns_machine_name), + RTW_PROC_HDL_SSEQ("war_offload_mdns_service_info", proc_get_war_offload_mdns_service_info, proc_set_war_offload_mdns_service_info), + RTW_PROC_HDL_SSEQ("war_offload_mdns_service_info_txt_rsp", proc_get_war_offload_mdns_txt_rsp, proc_set_war_offload_mdns_txt_rsp), +#endif /* CONFIG_OFFLOAD_MDNS_V4 || CONFIG_OFFLOAD_MDNS_V6 */ +#endif /* CONFIG_WAR_OFFLOAD */ + + RTW_PROC_HDL_SSEQ("wpas_info", proc_get_wpas_info, proc_set_wpas_info), RTW_PROC_HDL_SSEQ("rtw_amsdu_mode", proc_get_amsdu_mode, proc_set_amsdu_mode), + +#if defined(CONFIG_CONCURRENT_MODE) && defined(CONFIG_AP_MODE) + RTW_PROC_HDL_SSEQ("ap_csa_cnt", proc_get_ap_csa_cnt, proc_set_ap_csa_cnt), +#endif }; const int adapter_proc_hdls_num = sizeof(adapter_proc_hdls) / sizeof(struct rtw_proc_hdl); diff --git a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_rhashtable.c b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_rhashtable.c index 2820e7b0..df303b23 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_rhashtable.c +++ b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_rhashtable.c @@ -13,10 +13,10 @@ * *****************************************************************************/ -#ifdef CONFIG_RTW_MESH /* for now, only promised for kernel versions we support mesh */ - #include +#if defined(CONFIG_RTW_WDS) || defined(CONFIG_RTW_MESH) /* for now, only promised for kernel versions we support mesh */ + int rtw_rhashtable_walk_enter(rtw_rhashtable *ht, rtw_rhashtable_iter *iter) { #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)) @@ -73,5 +73,5 @@ void kvfree(const void *addr) #endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(4, 4, 0)) */ -#endif /* CONFIG_RTW_MESH */ +#endif /* defined(CONFIG_RTW_WDS) || defined(CONFIG_RTW_MESH) */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_rhashtable.h b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_rhashtable.h index 699d5a23..af5ba7e4 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_rhashtable.h +++ b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/rtw_rhashtable.h @@ -15,7 +15,7 @@ #ifndef __RTW_RHASHTABLE_H__ #define __RTW_RHASHTABLE_H__ -#ifdef CONFIG_RTW_MESH /* for now, only promised for kernel versions we support mesh */ +#if defined(CONFIG_RTW_WDS) || defined(CONFIG_RTW_MESH) /* for now, only promised for kernel versions we support mesh */ /* directly reference rhashtable in kernel */ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0)) @@ -27,6 +27,14 @@ #if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 0)) #define NULLS_MARKER(value) (1UL | (((long)value) << 1)) #endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 4, 0)) +static inline void *kmalloc_array(size_t n, size_t size, gfp_t flags) +{ + if (size != 0 && n > ULONG_MAX / size) + return NULL; + return __kmalloc(n * size, flags); +} +#endif #include "rhashtable.h" #endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(4, 4, 0)) */ @@ -53,7 +61,7 @@ int rtw_rhashtable_walk_enter(rtw_rhashtable *ht, rtw_rhashtable_iter *iter); #define rtw_rhashtable_lookup_insert_fast(ht, obj, params) rhashtable_lookup_insert_fast((ht), (obj), (params)) #define rtw_rhashtable_remove_fast(ht, obj, params) rhashtable_remove_fast((ht), (obj), (params)) -#endif /* CONFIG_RTW_MESH */ +#endif /* defined(CONFIG_RTW_WDS) || defined(CONFIG_RTW_MESH) */ #endif /* __RTW_RHASHTABLE_H__ */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/wifi_regd.c b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/wifi_regd.c index 3b2d49f5..ea45dc49 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/wifi_regd.c +++ b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/wifi_regd.c @@ -16,345 +16,627 @@ #include #ifdef CONFIG_IOCTL_CFG80211 - -#include - -/* - *Only these channels all allow active - *scan on all world regulatory domains - */ - -/* 2G chan 01 - chan 11 */ -#define RTW_2GHZ_CH01_11 \ - REG_RULE(2412-10, 2462+10, 40, 0, 20, 0) - -/* - *We enable active scan on these a case - *by case basis by regulatory domain - */ - -/* 2G chan 12 - chan 13, PASSIV SCAN */ -#define RTW_2GHZ_CH12_13 \ - REG_RULE(2467-10, 2472+10, 40, 0, 20, \ - NL80211_RRF_PASSIVE_SCAN) - -/* 5G chan 36 - chan 165 */ -#define RTW_5GHZ_5150_5850 \ - REG_RULE(5150-10, 5850+10, 40, 0, 30, \ - NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS) - -static const struct ieee80211_regdomain rtw_regdom_rd = { - .n_reg_rules = 3, - .alpha2 = "99", - .reg_rules = { - RTW_2GHZ_CH01_11, - RTW_2GHZ_CH12_13, - RTW_5GHZ_5150_5850, - } -}; - -#if 0 -/* - * REG_RULE(freq start, freq end, bandwidth, max gain, eirp, reg_flags) - */ - -static struct country_code_to_enum_rd allCountries[] = { - {COUNTRY_CODE_USER, "RD"}, -}; - -/* 2G chan 14, PASSIVS SCAN, NO OFDM (B only) */ -#define RTW_2GHZ_CH14 \ - REG_RULE(2484-10, 2484+10, 40, 0, 20, \ - NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_OFDM) - -/* 5G chan 36 - chan 64 */ -#define RTW_5GHZ_5150_5350 \ - REG_RULE(5150-10, 5350+10, 40, 0, 30, \ - NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS) - -/* 5G chan 100 - chan 165 */ -#define RTW_5GHZ_5470_5850 \ - REG_RULE(5470-10, 5850+10, 40, 0, 30, \ - NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS) - -/* 5G chan 149 - chan 165 */ -#define RTW_5GHZ_5725_5850 \ - REG_RULE(5725-10, 5850+10, 40, 0, 30, \ - NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS) - - -static const struct ieee80211_regdomain rtw_regdom_11 = { - .n_reg_rules = 1, - .alpha2 = "99", - .reg_rules = { - RTW_2GHZ_CH01_11, - } -}; - -static const struct ieee80211_regdomain rtw_regdom_12_13 = { - .n_reg_rules = 2, - .alpha2 = "99", - .reg_rules = { - RTW_2GHZ_CH01_11, - RTW_2GHZ_CH12_13, - } -}; - -static const struct ieee80211_regdomain rtw_regdom_no_midband = { - .n_reg_rules = 3, - .alpha2 = "99", - .reg_rules = { - RTW_2GHZ_CH01_11, - RTW_5GHZ_5150_5350, - RTW_5GHZ_5725_5850, - } -}; - -static const struct ieee80211_regdomain rtw_regdom_60_64 = { - .n_reg_rules = 3, - .alpha2 = "99", - .reg_rules = { - RTW_2GHZ_CH01_11, - RTW_2GHZ_CH12_13, - RTW_5GHZ_5725_5850, - } -}; - -static const struct ieee80211_regdomain rtw_regdom_14_60_64 = { - .n_reg_rules = 4, - .alpha2 = "99", - .reg_rules = { - RTW_2GHZ_CH01_11, - RTW_2GHZ_CH12_13, - RTW_2GHZ_CH14, - RTW_5GHZ_5725_5850, - } -}; - -static const struct ieee80211_regdomain rtw_regdom_14 = { - .n_reg_rules = 3, - .alpha2 = "99", - .reg_rules = { - RTW_2GHZ_CH01_11, - RTW_2GHZ_CH12_13, - RTW_2GHZ_CH14, - } -}; - - -static struct rtw_regulatory *rtw_regd; -#endif - -#if 0 /* not_yet */ -static void _rtw_reg_apply_beaconing_flags(struct wiphy *wiphy, - enum nl80211_reg_initiator initiator) +void rtw_chset_hook_os_channels(struct rf_ctl_t *rfctl) { - enum nl80211_band band; - struct ieee80211_supported_band *sband; - const struct ieee80211_reg_rule *reg_rule; + struct wiphy *wiphy = dvobj_to_wiphy(rfctl_to_dvobj(rfctl)); + RT_CHANNEL_INFO *channel_set = rfctl->channel_set; + u8 max_chan_nums = rfctl->max_chan_nums; struct ieee80211_channel *ch; unsigned int i; - u32 bandwidth = 0; - int r; + u16 channel; + u32 freq; - for (band = 0; band < NUM_NL80211_BANDS; band++) { - - if (!wiphy->bands[band]) + for (i = 0; i < max_chan_nums; i++) { + channel = channel_set[i].ChannelNum; + #if CONFIG_IEEE80211_BAND_6GHZ + if (channel_set[i].band == BAND_ON_6G) + continue; /* TODO: wiphy with 6G band */ + else + #endif + freq = rtw_ch2freq(channel); + ch = ieee80211_get_channel(wiphy, freq); + if (!ch) { + rtw_warn_on(1); continue; + } - sband = wiphy->bands[band]; + channel_set[i].os_chan = ch; + } +} - for (i = 0; i < sband->n_channels; i++) { - ch = &sband->channels[i]; - if (rtw_is_dfs_ch(ch->hw_value) || - (ch->flags & IEEE80211_CHAN_RADAR)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 0, 0)) +bool rtw_regd_is_wiphy_self_managed(struct wiphy *wiphy) +{ + return rtw_rfctl_is_disable_sw_channel_plan(wiphy_to_dvobj(wiphy)) + || !REGSTY_REGD_SRC_FROM_OS(dvobj_to_regsty(wiphy_to_dvobj(wiphy))); +} + +static struct ieee80211_reg_rule rtw_get_ieee80211_reg_rule(struct get_chplan_resp *chplan, BAND_TYPE band, int last_end_freq, int start_freq, int end_freq, int next_start_freq, u32 flags) +{ + struct ieee80211_reg_rule rule = REG_RULE( + start_freq - 10, end_freq + 10, 20, 6, 20, + ((flags & RTW_CHF_NO_IR) ? NL80211_RRF_NO_IR : 0) + //| ((flags & RTW_CHF_DFS) ? NL80211_RRF_DFS : 0) /* TODO: DFS */ + ); + + int regd_max_bw = 160; + int frange_max_bw = 160; + + if (!(chplan->proto_en & CHPLAN_PROTO_EN_AC) || band == BAND_ON_2_4G) + regd_max_bw = 40; + /* TODO: !RFCTL_REG_EN_11HT(rfctl) limit to 20MHz */ + + while ((end_freq - start_freq + 20) < frange_max_bw) { + frange_max_bw /= 2; + if (frange_max_bw == 20) + break; + } + rule.freq_range.max_bandwidth_khz = MHZ_TO_KHZ(rtw_min(regd_max_bw, frange_max_bw)); + + if (regd_max_bw > frange_max_bw + && (rtw_freq_consecutive(last_end_freq, start_freq) + || rtw_freq_consecutive(end_freq, next_start_freq) + ) + ) + rule.flags |= NL80211_RRF_AUTO_BW; + + if (regd_max_bw < 40) + rule.flags |= NL80211_RRF_NO_HT40; + if (regd_max_bw < 80) + rule.flags |= NL80211_RRF_NO_80MHZ; + if (regd_max_bw < 160) + rule.flags |= NL80211_RRF_NO_160MHZ; + + return rule; +} + +static int rtw_build_wiphy_regd(struct wiphy *wiphy, struct get_chplan_resp *chplan, struct ieee80211_regdomain **regd) +{ + int i; + RT_CHANNEL_INFO *chinfo; + BAND_TYPE start_band, band; + int last_end_freq, start_freq, end_freq, freq; + u32 start_flags, flags; + struct ieee80211_regdomain *r; + int rule_num = 0; + bool build = 0; + + if (regd) + *regd = NULL; + +loop: + start_band = BAND_MAX; + last_end_freq = 0; + for (i = 0; i < chplan->chset_num; i++) { + chinfo = &chplan->chset[i]; + freq = rtw_ch2freq_by_band(chinfo->band, chinfo->ChannelNum); + if (!freq) { + RTW_WARN(FUNC_WIPHY_FMT" rtw_ch2freq_by_band(%s, %u) fail\n" + , FUNC_WIPHY_ARG(wiphy), band_str(chinfo->band), chinfo->ChannelNum); + continue; + } + band = chinfo->band; + flags = chinfo->flags & (RTW_CHF_NO_IR | RTW_CHF_DFS); + + if (start_band == BAND_MAX) { + start_band = band; + start_freq = end_freq = freq; + start_flags = flags; + continue; + } + + if (start_band == band + && start_flags == flags + && rtw_freq_consecutive(end_freq, freq) + ) { + end_freq = freq; + continue; + } + + /* create rule */ + if (build) { + RTW_DBG("add rule_%02d(%s, %d, %d, 0x%x)\n" + , r->n_reg_rules, band_str(start_band), start_freq, end_freq, start_flags); + r->reg_rules[r->n_reg_rules++] = rtw_get_ieee80211_reg_rule(chplan, start_band + , last_end_freq, start_freq, end_freq, freq, start_flags); + } else + rule_num++; + + /* start a new rule */ + start_band = band; + last_end_freq = end_freq; + start_freq = end_freq = freq; + start_flags = flags; + } + + if (start_band != BAND_MAX) { + /* create rule */ + if (build) { + RTW_DBG("add rule_%02d(%s, %d, %d, 0x%x)\n" + , r->n_reg_rules, band_str(start_band), start_freq, end_freq, start_flags); + r->reg_rules[r->n_reg_rules++] = rtw_get_ieee80211_reg_rule(chplan, start_band + , last_end_freq, start_freq, end_freq, 0, start_flags); + } else + rule_num++; + } + + if (!build) { + /* switch to build phase */ + build = 1; + if (!regd) + goto exit; + + r = rtw_zmalloc(sizeof(**regd) + sizeof(struct ieee80211_reg_rule) * rule_num); + if (!r) { + rule_num = -1; + goto exit; + } + + _rtw_memcpy(r->alpha2, chplan->alpha2, 2); + r->alpha2[2] = 0; + r->dfs_region = NL80211_DFS_UNSET; + goto loop; + } + + *regd = r; + +exit: + return rule_num; +} + +static void rtw_regd_disable_no_20mhz_chs(struct wiphy *wiphy) +{ + struct ieee80211_supported_band *sband; + struct ieee80211_channel *ch; + unsigned int i, j; + + for (i = 0; i < NUM_NL80211_BANDS; i++) { + sband = wiphy->bands[i]; + if (!sband) + continue; + for (j = 0; j < sband->n_channels; j++) { + ch = &sband->channels[j]; + if (!ch) continue; - if (initiator == NL80211_REGDOM_SET_BY_COUNTRY_IE) { - r = freq_reg_info(wiphy, ch->center_freq, - bandwidth, ®_rule); - if (r) - continue; - - /* - *If 11d had a rule for this channel ensure - *we enable adhoc/beaconing if it allows us to - *use it. Note that we would have disabled it - *by applying our static world regdomain by - *default during init, prior to calling our - *regulatory_hint(). - */ - - if (!(reg_rule->flags & NL80211_RRF_NO_IBSS)) - ch->flags &= ~IEEE80211_CHAN_NO_IBSS; - if (! - (reg_rule->flags & - NL80211_RRF_PASSIVE_SCAN)) - ch->flags &= - ~IEEE80211_CHAN_PASSIVE_SCAN; - } else { - if (ch->beacon_found) - ch->flags &= ~(IEEE80211_CHAN_NO_IBSS | - IEEE80211_CHAN_PASSIVE_SCAN); + if (ch->flags & IEEE80211_CHAN_NO_20MHZ) { + RTW_INFO(FUNC_WIPHY_FMT" disable band:%d ch:%u w/o 20MHz\n", FUNC_WIPHY_ARG(wiphy), ch->band, ch->hw_value); + ch->flags = IEEE80211_CHAN_DISABLED; } } } } -/* Allows active scan scan on Ch 12 and 13 */ -static void _rtw_reg_apply_active_scan_flags(struct wiphy *wiphy, - enum nl80211_reg_initiator - initiator) +void rtw_update_wiphy_regd(struct wiphy *wiphy, struct get_chplan_resp *chplan, bool rtnl_lock_needed) { - struct ieee80211_supported_band *sband; - struct ieee80211_channel *ch; - const struct ieee80211_reg_rule *reg_rule; - u32 bandwidth = 0; - int r; + struct ieee80211_regdomain *regd; + int ret; - if (!wiphy->bands[NL80211_BAND_2GHZ]) - return; - sband = wiphy->bands[NL80211_BAND_2GHZ]; - - /* - * If no country IE has been received always enable active scan - * on these channels. This is only done for specific regulatory SKUs - */ - if (initiator != NL80211_REGDOM_SET_BY_COUNTRY_IE) { - ch = &sband->channels[11]; /* CH 12 */ - if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN) - ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN; - ch = &sband->channels[12]; /* CH 13 */ - if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN) - ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN; + ret = rtw_build_wiphy_regd(wiphy, chplan, ®d); + if (ret == -1) { + RTW_WARN(FUNC_WIPHY_FMT" rtw_build_wiphy_regd() fail\n", FUNC_WIPHY_ARG(wiphy)); return; } - /* - * If a country IE has been received check its rule for this - * channel first before enabling active scan. The passive scan - * would have been enforced by the initial processing of our - * custom regulatory domain. - */ - - ch = &sband->channels[11]; /* CH 12 */ - r = freq_reg_info(wiphy, ch->center_freq, bandwidth, ®_rule); - if (!r) { - if (!(reg_rule->flags & NL80211_RRF_PASSIVE_SCAN)) - if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN) - ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN; + if (ret == 0) { + RTW_WARN(FUNC_WIPHY_FMT" rtw_build_wiphy_regd() builds empty regd, bypass regd setting\n", FUNC_WIPHY_ARG(wiphy)); + goto free_regd; } - ch = &sband->channels[12]; /* CH 13 */ - r = freq_reg_info(wiphy, ch->center_freq, bandwidth, ®_rule); - if (!r) { - if (!(reg_rule->flags & NL80211_RRF_PASSIVE_SCAN)) - if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN) - ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN; - } + if (rtnl_lock_needed) + rtnl_lock(); + + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 12, 0)) + ret = regulatory_set_wiphy_regd_sync(wiphy, regd); + #else + ret = regulatory_set_wiphy_regd_sync_rtnl(wiphy, regd); + #endif + + rtw_regd_disable_no_20mhz_chs(wiphy); + + if (rtnl_lock_needed) + rtnl_unlock(); + + if (ret != 0) + RTW_INFO(FUNC_WIPHY_FMT" regulatory_set_wiphy_regd_sync_rtnl return %d\n", FUNC_WIPHY_ARG(wiphy), ret); + +free_regd: + rtw_mfree(regd, sizeof(*regd) + sizeof(struct ieee80211_reg_rule) * regd->n_reg_rules); } -#endif +#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 0, 0)) */ -void rtw_regd_apply_flags(struct wiphy *wiphy) +static void rtw_regd_overide_flags(struct wiphy *wiphy, struct get_chplan_resp *chplan, bool rtnl_lock_needed) { - struct dvobj_priv *dvobj = wiphy_to_dvobj(wiphy); - struct rf_ctl_t *rfctl = dvobj_to_rfctl(dvobj); - RT_CHANNEL_INFO *channel_set = rfctl->channel_set; - u8 max_chan_nums = rfctl->max_chan_nums; - + RT_CHANNEL_INFO *channel_set = chplan->chset; + u8 max_chan_nums = chplan->chset_num; struct ieee80211_supported_band *sband; struct ieee80211_channel *ch; unsigned int i, j; - u16 channel; - u32 freq; + + if (rtnl_lock_needed) + rtnl_lock(); /* all channels disable */ for (i = 0; i < NUM_NL80211_BANDS; i++) { sband = wiphy->bands[i]; - - if (sband) { - for (j = 0; j < sband->n_channels; j++) { - ch = &sband->channels[j]; - - if (ch) - ch->flags = IEEE80211_CHAN_DISABLED; - } + if (!sband) + continue; + for (j = 0; j < sband->n_channels; j++) { + ch = &sband->channels[j]; + if (!ch) + continue; + ch->flags = IEEE80211_CHAN_DISABLED; } } /* channels apply by channel plans. */ for (i = 0; i < max_chan_nums; i++) { - channel = channel_set[i].ChannelNum; - freq = rtw_ch2freq(channel); - - ch = ieee80211_get_channel(wiphy, freq); + ch = channel_set[i].os_chan; if (!ch) continue; - if (channel_set[i].ScanType == SCAN_PASSIVE - #if defined(CONFIG_DFS_MASTER) - && rtw_odm_dfs_domain_unknown(dvobj) - #endif - ) { - #if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 14, 0)) - ch->flags = (IEEE80211_CHAN_NO_IBSS | IEEE80211_CHAN_PASSIVE_SCAN); - #else - ch->flags = IEEE80211_CHAN_NO_IR; - #endif - } else - ch->flags = 0; + /* enable */ + ch->flags = 0; - #if CONFIG_IEEE80211_BAND_5GHZ && CONFIG_DFS - if (rtw_is_dfs_ch(ch->hw_value) - #if defined(CONFIG_DFS_MASTER) - && rtw_odm_dfs_domain_unknown(dvobj) + if (channel_set[i].flags & RTW_CHF_DFS) { + /* + * before integrating with nl80211 flow + * bypass IEEE80211_CHAN_RADAR when configured with radar detection + * to prevent from hostapd blocking DFS channels + */ + #ifdef CONFIG_DFS_MASTER + if (chplan->dfs_domain == RTW_DFS_REGD_NONE) #endif - ) { - ch->flags |= IEEE80211_CHAN_RADAR; + ch->flags |= IEEE80211_CHAN_RADAR; + } + + if (channel_set[i].flags & RTW_CHF_NO_IR) { #if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 14, 0)) - ch->flags |= (IEEE80211_CHAN_NO_IBSS | IEEE80211_CHAN_PASSIVE_SCAN); + ch->flags |= IEEE80211_CHAN_NO_IBSS | IEEE80211_CHAN_PASSIVE_SCAN; #else ch->flags |= IEEE80211_CHAN_NO_IR; #endif } - #endif /* CONFIG_IEEE80211_BAND_5GHZ && CONFIG_DFS */ } + + if (rtnl_lock_needed) + rtnl_unlock(); } -static const struct ieee80211_regdomain *_rtw_regdomain_select(struct - rtw_regulatory - *reg) +#ifdef CONFIG_REGD_SRC_FROM_OS +static void rtw_regd_apply_dfs_flags(struct get_chplan_resp *chplan, bool rtnl_lock_needed) { -#if 0 - switch (reg->country_code) { - case COUNTRY_CODE_USER: - default: - return &rtw_regdom_rd; + RT_CHANNEL_INFO *channel_set = chplan->chset; + u8 max_chan_nums = chplan->chset_num; + unsigned int i; + struct ieee80211_channel *chan; + + if (rtnl_lock_needed) + rtnl_lock(); + + /* channels apply by channel plans. */ + for (i = 0; i < max_chan_nums; i++) { + chan = channel_set[i].os_chan; + if (!chan) { + rtw_warn_on(1); + continue; + } + if (channel_set[i].flags & RTW_CHF_DFS) { + /* + * before integrating with nl80211 flow + * clear IEEE80211_CHAN_RADAR when configured with radar detection + * to prevent from hostapd blocking DFS channels + */ + #ifdef CONFIG_DFS_MASTER + if (chplan->dfs_domain != RTW_DFS_REGD_NONE) + chan->flags &= ~IEEE80211_CHAN_RADAR; + #endif + } } -#else - return &rtw_regdom_rd; -#endif + + if (rtnl_lock_needed) + rtnl_unlock(); } +/* init_channel_set_from_wiphy */ +u8 rtw_os_init_channel_set(_adapter *padapter, RT_CHANNEL_INFO *channel_set) +{ + struct wiphy *wiphy = adapter_to_wiphy(padapter); + struct rf_ctl_t *rfctl = adapter_to_rfctl(padapter); + struct registry_priv *regsty = adapter_to_regsty(padapter); + struct ieee80211_channel *chan; + u8 chanset_size = 0; + int i, j; + + _rtw_memset(channel_set, 0, sizeof(RT_CHANNEL_INFO) * MAX_CHANNEL_NUM); + + for (i = NL80211_BAND_2GHZ; i <= NL80211_BAND_5GHZ; i++) { + if (!wiphy->bands[i]) + continue; + for (j = 0; j < wiphy->bands[i]->n_channels; j++) { + chan = &wiphy->bands[i]->channels[j]; + if (chan->flags & IEEE80211_CHAN_DISABLED) + continue; + if (rtw_regsty_is_excl_chs(regsty, chan->hw_value)) + continue; + + if (chanset_size >= MAX_CHANNEL_NUM) { + RTW_WARN("chset size can't exceed MAX_CHANNEL_NUM(%u)\n", MAX_CHANNEL_NUM); + i = NL80211_BAND_5GHZ + 1; + break; + } + + channel_set[chanset_size].ChannelNum = chan->hw_value; + channel_set[chanset_size].band = nl80211_band_to_rtw_band(i); + #if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 14, 0)) + if (chan->flags & (IEEE80211_CHAN_NO_IBSS | IEEE80211_CHAN_PASSIVE_SCAN)) + #else + if (chan->flags & IEEE80211_CHAN_NO_IR) + #endif + channel_set[chanset_size].flags |= RTW_CHF_NO_IR; + if (chan->flags & IEEE80211_CHAN_RADAR) + channel_set[chanset_size].flags |= RTW_CHF_DFS; + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)) + if (chan->flags & IEEE80211_CHAN_NO_HT40PLUS) + channel_set[chanset_size].flags |= RTW_CHF_NO_HT40U; + if (chan->flags & IEEE80211_CHAN_NO_HT40MINUS) + channel_set[chanset_size].flags |= RTW_CHF_NO_HT40L; + #endif + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 9, 0)) + if (chan->flags & IEEE80211_CHAN_NO_80MHZ) + channel_set[chanset_size].flags |= RTW_CHF_NO_80MHZ; + if (chan->flags & IEEE80211_CHAN_NO_160MHZ) + channel_set[chanset_size].flags |= RTW_CHF_NO_160MHZ; + #endif + channel_set[chanset_size].os_chan = chan; + chanset_size++; + } + } + +#if CONFIG_IEEE80211_BAND_5GHZ + #ifdef CONFIG_DFS_MASTER + for (i = 0; i < chanset_size; i++) + channel_set[i].non_ocp_end_time = rtw_get_current_time(); + #endif +#endif /* CONFIG_IEEE80211_BAND_5GHZ */ + + if (chanset_size) + RTW_INFO(FUNC_ADPT_FMT" ch num:%d\n" + , FUNC_ADPT_ARG(padapter), chanset_size); + else + RTW_WARN(FUNC_ADPT_FMT" final chset has no channel\n" + , FUNC_ADPT_ARG(padapter)); + + return chanset_size; +} + +s16 rtw_os_get_total_txpwr_regd_lmt_mbm(_adapter *adapter, u8 cch, enum channel_width bw) +{ + struct wiphy *wiphy = adapter_to_wiphy(adapter); + s16 mbm = UNSPECIFIED_MBM; + u8 *op_chs; + u8 op_ch_num; + u8 i; + u32 freq; + struct ieee80211_channel *ch; + + if (!rtw_get_op_chs_by_cch_bw(cch, bw, &op_chs, &op_ch_num)) + goto exit; + + for (i = 0; i < op_ch_num; i++) { + freq = rtw_ch2freq(op_chs[i]); + ch = ieee80211_get_channel(wiphy, freq); + if (!ch) { + rtw_warn_on(1); + continue; + } + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 4, 0)) + mbm = rtw_min(mbm, ch->max_reg_power * MBM_PDBM); + #else + /* require max_power == 0 (therefore orig_mpwr set to 0) when wiphy registration */ + mbm = rtw_min(mbm, ch->max_power * MBM_PDBM); + #endif + } + +exit: + return mbm; +} + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 3, 0)) +static enum rtw_dfs_regd nl80211_dfs_regions_to_rtw_dfs_region(enum nl80211_dfs_regions region) +{ + switch (region) { + case NL80211_DFS_FCC: + return RTW_DFS_REGD_FCC; + case NL80211_DFS_ETSI: + return RTW_DFS_REGD_ETSI; + case NL80211_DFS_JP: + return RTW_DFS_REGD_MKK; + case NL80211_DFS_UNSET: + default: + return RTW_DFS_REGD_NONE; + } +}; +#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 3, 0)) */ +#endif /* CONFIG_REGD_SRC_FROM_OS */ + +static enum rtw_regd_inr nl80211_reg_initiator_to_rtw_regd_inr(enum nl80211_reg_initiator initiator) +{ + switch (initiator) { + case NL80211_REGDOM_SET_BY_DRIVER: + return RTW_REGD_SET_BY_DRIVER; + case NL80211_REGDOM_SET_BY_CORE: + return RTW_REGD_SET_BY_CORE; + case NL80211_REGDOM_SET_BY_USER: + return RTW_REGD_SET_BY_USER; + case NL80211_REGDOM_SET_BY_COUNTRY_IE: + return RTW_REGD_SET_BY_COUNTRY_IE; + } + rtw_warn_on(1); + return RTW_REGD_SET_BY_NUM; +}; + +#ifdef CONFIG_RTW_DEBUG +static const char *nl80211_reg_initiator_str(enum nl80211_reg_initiator initiator) +{ + switch (initiator) { + case NL80211_REGDOM_SET_BY_DRIVER: + return "DRIVER"; + case NL80211_REGDOM_SET_BY_CORE: + return "CORE"; + case NL80211_REGDOM_SET_BY_USER: + return "USER"; + case NL80211_REGDOM_SET_BY_COUNTRY_IE: + return "COUNTRY_IE"; + } + rtw_warn_on(1); + return "UNKNOWN"; +} + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)) +static const char *nl80211_user_reg_hint_type_str(enum nl80211_user_reg_hint_type type) +{ + switch (type) { + case NL80211_USER_REG_HINT_USER: + return "USER"; + case NL80211_USER_REG_HINT_CELL_BASE: + return "CELL_BASE"; + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 16, 0)) + case NL80211_USER_REG_HINT_INDOOR: + return "INDOOR"; + #endif + } + rtw_warn_on(1); + return "UNKNOWN"; +} +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 3, 0)) +static const char *nl80211_dfs_regions_str(enum nl80211_dfs_regions region) +{ + switch (region) { + case NL80211_DFS_UNSET: + return "UNSET"; + case NL80211_DFS_FCC: + return "FCC"; + case NL80211_DFS_ETSI: + return "ETSI"; + case NL80211_DFS_JP: + return "JP"; + } + rtw_warn_on(1); + return "UNKNOWN"; +}; +#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 3, 0)) */ + +static const char *environment_cap_str(enum environment_cap cap) +{ + switch (cap) { + case ENVIRON_ANY: + return "ANY"; + case ENVIRON_INDOOR: + return "INDOOR"; + case ENVIRON_OUTDOOR: + return "OUTDOOR"; + } + rtw_warn_on(1); + return "UNKNOWN"; +} + +static void dump_requlatory_request(void *sel, struct regulatory_request *request) +{ + u8 alpha2_len; + + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 16, 0)) + alpha2_len = 3; + #else + alpha2_len = 2; + #endif + + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)) + RTW_PRINT_SEL(sel, "initiator:%s, wiphy_idx:%d, type:%s\n" + , nl80211_reg_initiator_str(request->initiator) + , request->wiphy_idx + , nl80211_user_reg_hint_type_str(request->user_reg_hint_type)); + #else + RTW_PRINT_SEL(sel, "initiator:%s, wiphy_idx:%d\n" + , nl80211_reg_initiator_str(request->initiator) + , request->wiphy_idx); + #endif + + RTW_PRINT_SEL(sel, "alpha2:%.*s\n", alpha2_len, request->alpha2); + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 3, 0)) + RTW_PRINT_SEL(sel, "dfs_region:%s\n", nl80211_dfs_regions_str(request->dfs_region)); + #endif + + RTW_PRINT_SEL(sel, "intersect:%d\n", request->intersect); + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38)) + RTW_PRINT_SEL(sel, "processed:%d\n", request->processed); + #endif + #if (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 36)) + RTW_PRINT_SEL(sel, "country_ie_checksum:0x%08x\n", request->country_ie_checksum); + #endif + + RTW_PRINT_SEL(sel, "country_ie_env:%s\n", environment_cap_str(request->country_ie_env)); +} +#endif /* CONFIG_RTW_DEBUG */ + static void rtw_reg_notifier(struct wiphy *wiphy, struct regulatory_request *request) { - switch (request->initiator) { - case NL80211_REGDOM_SET_BY_DRIVER: - RTW_INFO("%s: %s\n", __func__, "NL80211_REGDOM_SET_BY_DRIVER"); - break; - case NL80211_REGDOM_SET_BY_CORE: - RTW_INFO("%s: %s\n", __func__, "NL80211_REGDOM_SET_BY_CORE"); - break; - case NL80211_REGDOM_SET_BY_USER: - RTW_INFO("%s: %s alpha2:%c%c\n", __func__, "NL80211_REGDOM_SET_BY_USER" - , request->alpha2[0], request->alpha2[1]); - rtw_set_country(wiphy_to_adapter(wiphy), request->alpha2); - break; - case NL80211_REGDOM_SET_BY_COUNTRY_IE: - RTW_INFO("%s: %s\n", __func__, "NL80211_REGDOM_SET_BY_COUNTRY_IE"); - break; + struct dvobj_priv *dvobj = wiphy_to_dvobj(wiphy); + struct registry_priv *regsty = dvobj_to_regsty(dvobj); + enum rtw_regd_inr inr; + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0)) + rtw_set_rtnl_lock_holder(dvobj, current); +#endif + +#ifdef CONFIG_RTW_DEBUG + if (rtw_drv_log_level >= _DRV_INFO_) { + RTW_INFO(FUNC_WIPHY_FMT"\n", FUNC_WIPHY_ARG(wiphy)); + dump_requlatory_request(RTW_DBGDUMP, request); + } +#endif + + inr = nl80211_reg_initiator_to_rtw_regd_inr(request->initiator); + +#ifdef CONFIG_REGD_SRC_FROM_OS + if (REGSTY_REGD_SRC_FROM_OS(regsty)) { + enum rtw_dfs_regd dfs_region = RTW_DFS_REGD_NONE; + + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 3, 0)) + dfs_region = nl80211_dfs_regions_to_rtw_dfs_region(request->dfs_region); + #endif + + /* trigger command to sync regulatory form OS */ + rtw_sync_os_regd_cmd(wiphy_to_adapter(wiphy), RTW_CMDF_WAIT_ACK, request->alpha2, dfs_region, inr); + } else +#endif + { + /* use alpha2 as input to select the corresponding channel plan settings defined by Realtek */ + struct get_chplan_resp *chplan; + + switch (request->initiator) { + case NL80211_REGDOM_SET_BY_USER: + rtw_set_country(wiphy_to_adapter(wiphy), request->alpha2, inr); + break; + case NL80211_REGDOM_SET_BY_DRIVER: + case NL80211_REGDOM_SET_BY_CORE: + case NL80211_REGDOM_SET_BY_COUNTRY_IE: + default: + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 0, 0)) + rtw_warn_on(rtw_regd_is_wiphy_self_managed(wiphy)); + #endif + if (rtw_get_chplan_cmd(wiphy_to_adapter(wiphy), RTW_CMDF_WAIT_ACK, &chplan) == _SUCCESS) + rtw_regd_change_complete_sync(wiphy, chplan, 0); + else + rtw_warn_on(1); + break; + } } - rtw_regd_apply_flags(wiphy); +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0)) + rtw_set_rtnl_lock_holder(dvobj, NULL); +#endif } #if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 9, 0)) @@ -365,9 +647,38 @@ static int rtw_reg_notifier_return(struct wiphy *wiphy, struct regulatory_reques } #endif -static void _rtw_regd_init_wiphy(struct rtw_regulatory *reg, struct wiphy *wiphy) +struct async_regd_change_evt { + _list list; /* async_regd_change_list */ + struct wiphy *wiphy; + struct get_chplan_resp *chplan; +}; + +static void async_regd_change_work_hdl(_workitem *work) { - const struct ieee80211_regdomain *regd; + struct rtw_wiphy_data *wiphy_data = container_of(work, struct rtw_wiphy_data, async_regd_change_work); + struct async_regd_change_evt *evt; + _irqL irqL; + _list *list, *head = &wiphy_data->async_regd_change_list; + + while (1) { + _enter_critical_mutex(&wiphy_data->async_regd_change_mutex, &irqL); + list = rtw_is_list_empty(head) ? NULL : get_next(head); + if (list) + rtw_list_delete(list); + _exit_critical_mutex(&wiphy_data->async_regd_change_mutex, &irqL); + + if (!list) + break; + + evt = LIST_CONTAINOR(list, struct async_regd_change_evt, list); + rtw_regd_change_complete_sync(evt->wiphy, evt->chplan, 1); + rtw_mfree(evt, sizeof(*evt)); + } +} + +int rtw_regd_init(struct wiphy *wiphy) +{ + struct rtw_wiphy_data *wiphy_data = rtw_wiphy_priv(wiphy); #if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 9, 0)) wiphy->reg_notifier = rtw_reg_notifier_return; @@ -376,40 +687,107 @@ static void _rtw_regd_init_wiphy(struct rtw_regulatory *reg, struct wiphy *wiphy #endif #if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 14, 0)) - wiphy->flags |= WIPHY_FLAG_CUSTOM_REGULATORY; wiphy->flags &= ~WIPHY_FLAG_STRICT_REGULATORY; wiphy->flags &= ~WIPHY_FLAG_DISABLE_BEACON_HINTS; #else - wiphy->regulatory_flags |= REGULATORY_CUSTOM_REG; wiphy->regulatory_flags &= ~REGULATORY_STRICT_REG; wiphy->regulatory_flags &= ~REGULATORY_DISABLE_BEACON_HINTS; #endif - regd = _rtw_regdomain_select(reg); - wiphy_apply_custom_regulatory(wiphy, regd); - - rtw_regd_apply_flags(wiphy); -} - -int rtw_regd_init(struct wiphy *wiphy) -{ -#if 0 - if (rtw_regd == NULL) { - rtw_regd = (struct rtw_regulatory *) - rtw_malloc(sizeof(struct rtw_regulatory)); - - rtw_regd->alpha2[0] = '9'; - rtw_regd->alpha2[1] = '9'; - - rtw_regd->country_code = COUNTRY_CODE_USER; - } - - RTW_INFO("%s: Country alpha2 being used: %c%c\n", - __func__, rtw_regd->alpha2[0], rtw_regd->alpha2[1]); +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)) + wiphy->regulatory_flags |= REGULATORY_IGNORE_STALE_KICKOFF; #endif - _rtw_regd_init_wiphy(NULL, wiphy); +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 0, 0)) + if (rtw_regd_is_wiphy_self_managed(wiphy)) + wiphy->regulatory_flags |= REGULATORY_WIPHY_SELF_MANAGED; +#endif + + _rtw_init_listhead(&wiphy_data->async_regd_change_list); + _rtw_mutex_init(&wiphy_data->async_regd_change_mutex); + _init_workitem(&wiphy_data->async_regd_change_work, async_regd_change_work_hdl, NULL); return 0; } + +static void rtw_regd_async_regd_change_list_free(struct wiphy *wiphy) +{ + struct rtw_wiphy_data *wiphy_data = rtw_wiphy_priv(wiphy); + struct async_regd_change_evt *evt; + struct get_chplan_resp *chplan; + _irqL irqL; + _list *cur, *head; + + _enter_critical_mutex(&wiphy_data->async_regd_change_mutex, &irqL); + + head = &wiphy_data->async_regd_change_list; + cur = get_next(head); + + while ((rtw_end_of_queue_search(head, cur)) == _FALSE) { + evt = LIST_CONTAINOR(cur, struct async_regd_change_evt, list); + chplan = evt->chplan; + cur = get_next(cur); + rtw_list_delete(&evt->list); + rtw_vmfree(chplan, sizeof(*chplan) + sizeof(RT_CHANNEL_INFO) * chplan->chset_num); + rtw_mfree(evt, sizeof(*evt)); + } + + _exit_critical_mutex(&wiphy_data->async_regd_change_mutex, &irqL); +} + +void rtw_regd_deinit(struct wiphy *wiphy) +{ + struct rtw_wiphy_data *wiphy_data = rtw_wiphy_priv(wiphy); + + _cancel_workitem_sync(&wiphy_data->async_regd_change_work); + rtw_regd_async_regd_change_list_free(wiphy); + _rtw_mutex_free(&wiphy_data->async_regd_change_mutex); +} + +void rtw_regd_change_complete_sync(struct wiphy *wiphy, struct get_chplan_resp *chplan, bool rtnl_lock_needed) +{ + if (chplan->regd_src == REGD_SRC_RTK_PRIV) { + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 0, 0)) + if (rtw_regd_is_wiphy_self_managed(wiphy)) + rtw_update_wiphy_regd(wiphy, chplan, rtnl_lock_needed); + else + #endif + rtw_regd_overide_flags(wiphy, chplan, rtnl_lock_needed); + } +#ifdef CONFIG_REGD_SRC_FROM_OS + else if (chplan->regd_src == REGD_SRC_OS) + rtw_regd_apply_dfs_flags(chplan, rtnl_lock_needed); +#endif + else + rtw_warn_on(1); + + rtw_vmfree(chplan, sizeof(struct get_chplan_resp) + sizeof(RT_CHANNEL_INFO) * chplan->chset_num); +} + +int rtw_regd_change_complete_async(struct wiphy *wiphy, struct get_chplan_resp *chplan) +{ + struct rtw_wiphy_data *wiphy_data = rtw_wiphy_priv(wiphy); + struct async_regd_change_evt *evt; + _irqL irqL; + + evt = rtw_malloc(sizeof(*evt)); + if (!evt) { + rtw_vmfree(chplan, sizeof(struct get_chplan_resp) + sizeof(RT_CHANNEL_INFO) * chplan->chset_num); + return _FAIL; + } + + _rtw_init_listhead(&evt->list); + evt->wiphy = wiphy; + evt->chplan = chplan; + + _enter_critical_mutex(&wiphy_data->async_regd_change_mutex, &irqL); + + rtw_list_insert_tail(&evt->list, &wiphy_data->async_regd_change_list); + + _exit_critical_mutex(&wiphy_data->async_regd_change_mutex, &irqL); + + _set_workitem(&wiphy_data->async_regd_change_work); + + return _SUCCESS; +} #endif /* CONFIG_IOCTL_CFG80211 */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/wifi_regd.h b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/wifi_regd.h new file mode 100644 index 00000000..c7e2f2ce --- /dev/null +++ b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/wifi_regd.h @@ -0,0 +1,30 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 - 2017 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License 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. + * + *****************************************************************************/ + +#ifndef __WIFI_REGD_H__ +#define __WIFI_REGD_H__ + +void rtw_chset_hook_os_channels(struct rf_ctl_t *rfctl); +void rtw_regd_change_complete_sync(struct wiphy *wiphy, struct get_chplan_resp *chplan, bool rtnl_lock_needed); +int rtw_regd_change_complete_async(struct wiphy *wiphy, struct get_chplan_resp *chplan); +#ifdef CONFIG_REGD_SRC_FROM_OS +struct _RT_CHANNEL_INFO; +u8 rtw_os_init_channel_set(_adapter *padapter, struct _RT_CHANNEL_INFO *channel_set); +s16 rtw_os_get_total_txpwr_regd_lmt_mbm(_adapter *adapter, u8 cch, enum channel_width bw); +#endif +int rtw_regd_init(struct wiphy *wiphy); +void rtw_regd_deinit(struct wiphy *wiphy); + +#endif /* __WIFI_REGD_H__ */ diff --git a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/xmit_linux.c b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/xmit_linux.c index 5eeb5cdc..815d303e 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/xmit_linux.c +++ b/drivers/net/wireless/realtek/rtl8822ce/os_dep/linux/xmit_linux.c @@ -114,6 +114,11 @@ void rtw_set_tx_chksum_offload(_pkt *pkt, struct pkt_attrib *pattrib) int rtw_os_xmit_resource_alloc(_adapter *padapter, struct xmit_buf *pxmitbuf, u32 alloc_sz, u8 flag) { +#ifdef CONFIG_PCIE_DMA_COHERENT + struct dvobj_priv *pdvobjpriv = adapter_to_dvobj(padapter); + struct pci_dev *pdev = pdvobjpriv->ppcidev; +#endif + if (alloc_sz > 0) { #ifdef CONFIG_USE_USB_BUFFER_ALLOC_TX struct dvobj_priv *pdvobjpriv = adapter_to_dvobj(padapter); @@ -125,7 +130,11 @@ int rtw_os_xmit_resource_alloc(_adapter *padapter, struct xmit_buf *pxmitbuf, u3 return _FAIL; #else /* CONFIG_USE_USB_BUFFER_ALLOC_TX */ +#ifdef CONFIG_PCIE_DMA_COHERENT + pxmitbuf->pallocated_buf = dma_alloc_coherent(&pdev->dev, alloc_sz, &pxmitbuf->dma_bpa, GFP_KERNEL); +#else pxmitbuf->pallocated_buf = rtw_zmalloc(alloc_sz); +#endif if (pxmitbuf->pallocated_buf == NULL) return _FAIL; @@ -152,6 +161,11 @@ int rtw_os_xmit_resource_alloc(_adapter *padapter, struct xmit_buf *pxmitbuf, u3 void rtw_os_xmit_resource_free(_adapter *padapter, struct xmit_buf *pxmitbuf, u32 free_sz, u8 flag) { +#ifdef CONFIG_PCIE_DMA_COHERENT + struct dvobj_priv *pdvobjpriv = adapter_to_dvobj(padapter); + struct pci_dev *pdev = pdvobjpriv->ppcidev; +#endif + if (flag) { #ifdef CONFIG_USB_HCI int i; @@ -175,7 +189,11 @@ void rtw_os_xmit_resource_free(_adapter *padapter, struct xmit_buf *pxmitbuf, u3 pxmitbuf->dma_transfer_addr = 0; #else /* CONFIG_USE_USB_BUFFER_ALLOC_TX */ if (pxmitbuf->pallocated_buf) + #ifdef CONFIG_PCIE_DMA_COHERENT + dma_free_coherent(&pdev->dev, free_sz, pxmitbuf->pallocated_buf, pxmitbuf->dma_bpa); + #else rtw_mfree(pxmitbuf->pallocated_buf, free_sz); + #endif #endif /* CONFIG_USE_USB_BUFFER_ALLOC_TX */ } } @@ -199,13 +217,13 @@ void dump_os_queue(void *sel, _adapter *padapter) #define WMM_XMIT_THRESHOLD (NR_XMITFRAME*2/5) -static inline bool rtw_os_need_wake_queue(_adapter *padapter, u16 qidx) +static inline bool rtw_os_need_wake_queue(_adapter *padapter, u16 os_qid) { #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35)) struct xmit_priv *pxmitpriv = &padapter->xmitpriv; if (padapter->registrypriv.wifi_spec) { - if (pxmitpriv->hwxmits[qidx].accnt < WMM_XMIT_THRESHOLD) + if (pxmitpriv->hwxmits[os_qid].accnt < WMM_XMIT_THRESHOLD) return _TRUE; #ifdef DBG_CONFIG_ERROR_DETECT #ifdef DBG_CONFIG_ERROR_RESET @@ -236,13 +254,13 @@ static inline bool rtw_os_need_wake_queue(_adapter *padapter, u16 qidx) #endif } -static inline bool rtw_os_need_stop_queue(_adapter *padapter, u16 qidx) +static inline bool rtw_os_need_stop_queue(_adapter *padapter, u16 os_qid) { struct xmit_priv *pxmitpriv = &padapter->xmitpriv; #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35)) if (padapter->registrypriv.wifi_spec) { /* No free space for Tx, tx_worker is too slow */ - if (pxmitpriv->hwxmits[qidx].accnt > WMM_XMIT_THRESHOLD) + if (pxmitpriv->hwxmits[os_qid].accnt > WMM_XMIT_THRESHOLD) return _TRUE; } else { if (pxmitpriv->free_xmitframe_cnt <= 4) @@ -257,23 +275,6 @@ static inline bool rtw_os_need_stop_queue(_adapter *padapter, u16 qidx) void rtw_os_pkt_complete(_adapter *padapter, _pkt *pkt) { -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35)) - u16 qidx; - - qidx = skb_get_queue_mapping(pkt); - if (rtw_os_need_wake_queue(padapter, qidx)) { - if (DBG_DUMP_OS_QUEUE_CTL) - RTW_INFO(FUNC_ADPT_FMT": netif_wake_subqueue[%d]\n", FUNC_ADPT_ARG(padapter), qidx); - netif_wake_subqueue(padapter->pnetdev, qidx); - } -#else - if (rtw_os_need_wake_queue(padapter, 0)) { - if (DBG_DUMP_OS_QUEUE_CTL) - RTW_INFO(FUNC_ADPT_FMT": netif_wake_queue\n", FUNC_ADPT_ARG(padapter)); - netif_wake_queue(padapter->pnetdev); - } -#endif - rtw_skb_free(pkt); } @@ -323,24 +324,39 @@ void rtw_os_xmit_schedule(_adapter *padapter) #endif } -static bool rtw_check_xmit_resource(_adapter *padapter, _pkt *pkt) +void rtw_os_check_wakup_queue(_adapter *adapter, u16 os_qid) +{ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35)) + if (rtw_os_need_wake_queue(adapter, os_qid)) { + if (DBG_DUMP_OS_QUEUE_CTL) + RTW_INFO(FUNC_ADPT_FMT": netif_wake_subqueue[%d]\n", FUNC_ADPT_ARG(adapter), os_qid); + netif_wake_subqueue(adapter->pnetdev, os_qid); + } +#else + if (rtw_os_need_wake_queue(adapter, 0)) { + if (DBG_DUMP_OS_QUEUE_CTL) + RTW_INFO(FUNC_ADPT_FMT": netif_wake_queue\n", FUNC_ADPT_ARG(adapter)); + netif_wake_queue(adapter->pnetdev); + } +#endif +} + +bool rtw_os_check_stop_queue(_adapter *adapter, u16 os_qid) { bool busy = _FALSE; -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35)) - u16 qidx; - qidx = skb_get_queue_mapping(pkt); - if (rtw_os_need_stop_queue(padapter, qidx)) { +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35)) + if (rtw_os_need_stop_queue(adapter, os_qid)) { if (DBG_DUMP_OS_QUEUE_CTL) - RTW_INFO(FUNC_ADPT_FMT": netif_stop_subqueue[%d]\n", FUNC_ADPT_ARG(padapter), qidx); - netif_stop_subqueue(padapter->pnetdev, qidx); + RTW_INFO(FUNC_ADPT_FMT": netif_stop_subqueue[%d]\n", FUNC_ADPT_ARG(adapter), os_qid); + netif_stop_subqueue(adapter->pnetdev, os_qid); busy = _TRUE; } #else - if (rtw_os_need_stop_queue(padapter, 0)) { + if (rtw_os_need_stop_queue(adapter, 0)) { if (DBG_DUMP_OS_QUEUE_CTL) - RTW_INFO(FUNC_ADPT_FMT": netif_stop_queue\n", FUNC_ADPT_ARG(padapter)); - rtw_netif_stop_queue(padapter->pnetdev); + RTW_INFO(FUNC_ADPT_FMT": netif_stop_queue\n", FUNC_ADPT_ARG(adapter)); + rtw_netif_stop_queue(adapter->pnetdev); busy = _TRUE; } #endif @@ -373,97 +389,16 @@ void rtw_os_wake_queue_at_free_stainfo(_adapter *padapter, int *qcnt_freed) #endif } -#ifdef CONFIG_TX_MCAST2UNI -int rtw_mlcst2unicst(_adapter *padapter, struct sk_buff *skb) -{ - struct sta_priv *pstapriv = &padapter->stapriv; - struct xmit_priv *pxmitpriv = &padapter->xmitpriv; - _irqL irqL; - _list *phead, *plist; - struct sk_buff *newskb; - struct sta_info *psta = NULL; - u8 chk_alive_num = 0; - char chk_alive_list[NUM_STA]; - u8 bc_addr[6] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; - u8 null_addr[6] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - - int i; - s32 res; - - DBG_COUNTER(padapter->tx_logs.os_tx_m2u); - - _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL); - phead = &pstapriv->asoc_list; - plist = get_next(phead); - - /* free sta asoc_queue */ - while ((rtw_end_of_queue_search(phead, plist)) == _FALSE) { - int stainfo_offset; - psta = LIST_CONTAINOR(plist, struct sta_info, asoc_list); - plist = get_next(plist); - - stainfo_offset = rtw_stainfo_offset(pstapriv, psta); - if (stainfo_offset_valid(stainfo_offset)) - chk_alive_list[chk_alive_num++] = stainfo_offset; - } - _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL); - - for (i = 0; i < chk_alive_num; i++) { - psta = rtw_get_stainfo_by_offset(pstapriv, chk_alive_list[i]); - if (!(psta->state & WIFI_ASOC_STATE)) { - DBG_COUNTER(padapter->tx_logs.os_tx_m2u_ignore_fw_linked); - continue; - } - - /* avoid come from STA1 and send back STA1 */ - if (_rtw_memcmp(psta->cmn.mac_addr, &skb->data[6], ETH_ALEN) == _TRUE - || _rtw_memcmp(psta->cmn.mac_addr, null_addr, ETH_ALEN) == _TRUE - || _rtw_memcmp(psta->cmn.mac_addr, bc_addr, ETH_ALEN) == _TRUE - ) { - DBG_COUNTER(padapter->tx_logs.os_tx_m2u_ignore_self); - continue; - } - - DBG_COUNTER(padapter->tx_logs.os_tx_m2u_entry); - - newskb = rtw_skb_copy(skb); - - if (newskb) { - _rtw_memcpy(newskb->data, psta->cmn.mac_addr, ETH_ALEN); - res = rtw_xmit(padapter, &newskb); - if (res < 0) { - DBG_COUNTER(padapter->tx_logs.os_tx_m2u_entry_err_xmit); - RTW_INFO("%s()-%d: rtw_xmit() return error! res=%d\n", __FUNCTION__, __LINE__, res); - pxmitpriv->tx_drop++; - rtw_skb_free(newskb); - } - } else { - DBG_COUNTER(padapter->tx_logs.os_tx_m2u_entry_err_skb); - RTW_INFO("%s-%d: rtw_skb_copy() failed!\n", __FUNCTION__, __LINE__); - pxmitpriv->tx_drop++; - /* rtw_skb_free(skb); */ - return _FALSE; /* Caller shall tx this multicast frame via normal way. */ - } - } - - rtw_skb_free(skb); - return _TRUE; -} -#endif /* CONFIG_TX_MCAST2UNI */ - - int _rtw_xmit_entry(_pkt *pkt, _nic_hdl pnetdev) { _adapter *padapter = (_adapter *)rtw_netdev_priv(pnetdev); struct xmit_priv *pxmitpriv = &padapter->xmitpriv; -#ifdef CONFIG_TX_MCAST2UNI - extern int rtw_mc2u_disable; -#endif /* CONFIG_TX_MCAST2UNI */ #ifdef CONFIG_TCP_CSUM_OFFLOAD_TX struct sk_buff *skb = pkt; struct sk_buff *segs, *nskb; netdev_features_t features = padapter->pnetdev->features; #endif + u16 os_qid = 0; s32 res = 0; if (padapter->registrypriv.mp_mode) { @@ -472,7 +407,11 @@ int _rtw_xmit_entry(_pkt *pkt, _nic_hdl pnetdev) } DBG_COUNTER(padapter->tx_logs.os_tx); - if (rtw_if_up(padapter) == _FALSE) { + if ((rtw_if_up(padapter) == _FALSE) +#ifdef CONFIG_LAYER2_ROAMING + &&(!padapter->mlmepriv.roam_buf_pkt) +#endif + ){ DBG_COUNTER(padapter->tx_logs.os_tx_err_up); #ifdef DBG_TX_DROP_FRAME RTW_INFO("DBG_TX_DROP_FRAME %s if_up fail\n", __FUNCTION__); @@ -480,30 +419,9 @@ int _rtw_xmit_entry(_pkt *pkt, _nic_hdl pnetdev) goto drop_packet; } - rtw_check_xmit_resource(padapter, pkt); - -#ifdef CONFIG_TX_MCAST2UNI - if (!rtw_mc2u_disable - && MLME_IS_AP(padapter) - && (IP_MCAST_MAC(pkt->data) - || ICMPV6_MCAST_MAC(pkt->data) - #ifdef CONFIG_TX_BCAST2UNI - || is_broadcast_mac_addr(pkt->data) - #endif - ) - && (padapter->registrypriv.wifi_spec == 0) - ) { - if (pxmitpriv->free_xmitframe_cnt > (NR_XMITFRAME / 4)) { - res = rtw_mlcst2unicst(padapter, pkt); - if (res == _TRUE) - goto exit; - } else { - /* RTW_INFO("Stop M2U(%d, %d)! ", pxmitpriv->free_xmitframe_cnt, pxmitpriv->free_xmitbuf_cnt); */ - /* RTW_INFO("!m2u ); */ - DBG_COUNTER(padapter->tx_logs.os_tx_m2u_stop); - } - } -#endif /* CONFIG_TX_MCAST2UNI */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35)) + os_qid = skb_get_queue_mapping(pkt); +#endif #ifdef CONFIG_TCP_CSUM_OFFLOAD_TX if (skb_shinfo(skb)->gso_size) { @@ -518,7 +436,7 @@ int _rtw_xmit_entry(_pkt *pkt, _nic_hdl pnetdev) segs = segs->next; nskb->next = NULL; rtw_mstat_update( MSTAT_TYPE_SKB, MSTAT_ALLOC_SUCCESS, nskb->truesize); - res = rtw_xmit(padapter, &nskb); + res = rtw_xmit(padapter, &nskb, os_qid); if (res < 0) { #ifdef DBG_TX_DROP_FRAME RTW_INFO("DBG_TX_DROP_FRAME %s rtw_xmit fail\n", __FUNCTION__); @@ -532,7 +450,7 @@ int _rtw_xmit_entry(_pkt *pkt, _nic_hdl pnetdev) } #endif - res = rtw_xmit(padapter, &pkt); + res = rtw_xmit(padapter, &pkt, os_qid); if (res < 0) { #ifdef DBG_TX_DROP_FRAME RTW_INFO("DBG_TX_DROP_FRAME %s rtw_xmit fail\n", __FUNCTION__); @@ -614,7 +532,11 @@ fail: } #endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 32)) +netdev_tx_t rtw_xmit_entry(_pkt *pkt, _nic_hdl pnetdev) +#else int rtw_xmit_entry(_pkt *pkt, _nic_hdl pnetdev) +#endif { _adapter *padapter = (_adapter *)rtw_netdev_priv(pnetdev); struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); @@ -623,7 +545,8 @@ int rtw_xmit_entry(_pkt *pkt, _nic_hdl pnetdev) if (pkt) { #ifdef CONFIG_CUSTOMER_ALIBABA_GENERAL if (check_alibaba_meshpkt(pkt)) { - return rtw_alibaba_mesh_xmit_entry(pkt, pnetdev); + ret = rtw_alibaba_mesh_xmit_entry(pkt, pnetdev); + goto out; } #endif if (check_fwstate(pmlmepriv, WIFI_MONITOR_STATE) == _TRUE) { @@ -638,5 +561,12 @@ int rtw_xmit_entry(_pkt *pkt, _nic_hdl pnetdev) } +#ifdef CONFIG_CUSTOMER_ALIBABA_GENERAL +out: +#endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 32)) + return (ret == 0) ? NETDEV_TX_OK : NETDEV_TX_BUSY; +#else return ret; +#endif } diff --git a/drivers/net/wireless/realtek/rtl8822ce/os_dep/osdep_service.c b/drivers/net/wireless/realtek/rtl8822ce/os_dep/osdep_service.c index 659d1940..75facd76 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/os_dep/osdep_service.c +++ b/drivers/net/wireless/realtek/rtl8822ce/os_dep/osdep_service.c @@ -27,9 +27,151 @@ atomic_t _malloc_size = ATOMIC_INIT(0); #endif #endif /* DBG_MEMORY_LEAK */ -#if defined(CONFIG_TEGRA_SYSTEM_TYPE_ACK) -MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver); -#endif + +#ifdef DBG_MEM_ERR_FREE + +#if (KERNEL_VERSION(3, 7, 0) <= LINUX_VERSION_CODE) + +#define DBG_MEM_HASHBITS 10 + +#define DBG_MEM_TYPE_PHY 0 +#define DBG_MEM_TYPE_VIR 1 + +/* + * DBG_MEM_ERR_FREE is only for the debug purpose. + * + * There is the limitation that this mechanism only can + * support one wifi device, and has problem if there + * are two or more wifi devices with one driver on + * the same system. It's because dbg_mem_ht is global + * variable, and if we move this dbg_mem_ht into struct + * dvobj_priv to support more wifi devices, the memory + * allocation functions, like rtw_malloc(), need to have + * the parameter dvobj to get relative hash table, and + * then it is the huge changes for the driver currently. + * + */ +struct hlist_head dbg_mem_ht[1 << DBG_MEM_HASHBITS]; + +struct hash_mem { + void *mem; + int sz; + int type; + struct hlist_node node; +}; + +#endif /* LINUX_VERSION_CODE */ + +void rtw_dbg_mem_init(void) +{ +#if (KERNEL_VERSION(3, 7, 0) <= LINUX_VERSION_CODE) + hash_init(dbg_mem_ht); +#endif /* LINUX_VERSION_CODE */ +} + +void rtw_dbg_mem_deinit(void) +{ +#if (KERNEL_VERSION(3, 7, 0) <= LINUX_VERSION_CODE) + struct hlist_head *head; + struct hlist_node *p; + int i; + + for (i = 0; i < HASH_SIZE(dbg_mem_ht); i++) { + head = &dbg_mem_ht[i]; + p = head->first; + while (p) { + struct hlist_node *prev; + struct hash_mem *hm; + + hm = container_of(p, struct hash_mem, node); + prev = p; + p = p->next; + + RTW_ERR("%s: memory leak - 0x%x\n", __func__, hm->mem); + hash_del(prev); + kfree(hm); + } + } +#endif /* LINUX_VERSION_CODE */ +} + +#if (KERNEL_VERSION(3, 7, 0) <= LINUX_VERSION_CODE) +struct hash_mem *rtw_dbg_mem_find(void *mem) +{ + struct hash_mem *hm; + struct hlist_head *head; + struct hlist_node *p; + + head = &dbg_mem_ht[hash_64((u64)(mem), DBG_MEM_HASHBITS)]; + + p = head->first; + while (p) { + hm = container_of(p, struct hash_mem, node); + if (hm->mem == mem) + goto out; + p = p->next; + } + hm = NULL; +out: + return hm; +} + +void rtw_dbg_mem_alloc(void *mem, int sz, int type) +{ + struct hash_mem *hm; + + hm = rtw_dbg_mem_find(mem); + if (!hm) { + hm = (struct hash_mem *)kmalloc(sizeof(*hm), GFP_ATOMIC); + hm->mem = mem; + hm->sz = sz; + hm->type = type; + hash_add(dbg_mem_ht, &hm->node, (u64)(mem)); + } else { + RTW_ERR("%s mem(%x) is in hash already\n", __func__, mem); + rtw_warn_on(1); + } +} + +bool rtw_dbg_mem_free(void *mem, int sz, int type) +{ + struct hash_mem *hm; + bool ret; + + hm = rtw_dbg_mem_find(mem); + if (!hm) { + RTW_ERR("%s cannot find allocated memory: %x\n", + __func__, mem); + rtw_warn_on(1); + return false; + } + + if (hm->sz != sz) { + RTW_ERR("%s memory (%x) size mismatch free(%d) != alloc(%d)\n", + __func__, mem, sz, hm->sz); + rtw_warn_on(1); + ret = false; + goto out; + } + + if (hm->type != type) { + RTW_ERR("%s memory (%x) type mismatch free(%d) != alloc(%d)\n", + __func__, mem, type, hm->type); + rtw_warn_on(1); + ret = false; + goto out; + } + ret = true; + +out: + hash_del(&hm->node); + kfree(hm); + + return ret; +} + +#endif /* LINUX_VERSION_CODE */ +#endif /* DBG_MEM_ERR_FREE */ #if defined(PLATFORM_LINUX) /* @@ -90,6 +232,11 @@ inline void *_rtw_vmalloc(u32 sz) NdisAllocateMemoryWithTag(&pbuf, sz, RT_TAG); #endif +#ifdef DBG_MEM_ERR_FREE + if (pbuf) + rtw_dbg_mem_alloc(pbuf, sz, DBG_MEM_TYPE_VIR); +#endif /* DBG_MEM_ERR_FREE */ + #ifdef DBG_MEMORY_LEAK #ifdef PLATFORM_LINUX if (pbuf != NULL) { @@ -124,6 +271,11 @@ inline void *_rtw_zvmalloc(u32 sz) inline void _rtw_vmfree(void *pbuf, u32 sz) { +#ifdef DBG_MEM_ERR_FREE + if (!rtw_dbg_mem_free(pbuf, sz, DBG_MEM_TYPE_VIR)) + return; +#endif /* DBG_MEM_ERR_FREE */ + #ifdef PLATFORM_LINUX vfree(pbuf); #endif @@ -164,6 +316,11 @@ void *_rtw_malloc(u32 sz) #endif +#ifdef DBG_MEM_ERR_FREE + if (pbuf) + rtw_dbg_mem_alloc(pbuf, sz, DBG_MEM_TYPE_PHY); +#endif /* DBG_MEM_ERR_FREE */ + #ifdef DBG_MEMORY_LEAK #ifdef PLATFORM_LINUX if (pbuf != NULL) { @@ -194,7 +351,6 @@ void *_rtw_zmalloc(u32 sz) #ifdef PLATFORM_WINDOWS NdisFillMemory(pbuf, sz, 0); #endif - } return pbuf; @@ -204,6 +360,11 @@ void *_rtw_zmalloc(u32 sz) void _rtw_mfree(void *pbuf, u32 sz) { +#ifdef DBG_MEM_ERR_FREE + if (!rtw_dbg_mem_free(pbuf, sz, DBG_MEM_TYPE_PHY)) + return; +#endif /* DBG_MEM_ERR_FREE */ + #ifdef PLATFORM_LINUX #ifdef RTK_DMP_PLATFORM if (sz > 0x4000) @@ -278,6 +439,38 @@ struct sk_buff *skb_clone(const struct sk_buff *skb) #endif /* PLATFORM_FREEBSD */ +#ifdef CONFIG_PCIE_DMA_COHERENT +struct sk_buff *dev_alloc_skb_coherent(struct pci_dev *pdev, unsigned int size) +{ + struct sk_buff *skb = NULL; + unsigned char *data = NULL; + + /* skb = _rtw_zmalloc(sizeof(struct sk_buff)); */ /* for skb->len, etc. */ + + skb = _rtw_malloc(sizeof(struct sk_buff)); + if (!skb) + goto out; + + data = dma_alloc_coherent(&pdev->dev, size, (dma_addr_t *)&skb->cb, GFP_KERNEL); + + if (!data) + goto nodata; + + skb->head = data; + skb->data = data; + skb_reset_tail_pointer(skb); + skb->end = skb->tail + size; + skb->len = 0; +out: + return skb; +nodata: + _rtw_mfree(skb, sizeof(struct sk_buff)); + skb = NULL; + goto out; + +} +#endif + inline struct sk_buff *_rtw_skb_alloc(u32 sz) { #ifdef PLATFORM_LINUX @@ -1312,7 +1505,11 @@ u32 _rtw_down_sema(_sema *sema) inline void thread_exit(_completion *comp) { #ifdef PLATFORM_LINUX +#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 17, 0)) complete_and_exit(comp, 0); +#else + kthread_complete_and_exit(comp, 0); +#endif #endif #ifdef PLATFORM_FREEBSD @@ -1631,6 +1828,231 @@ inline bool _rtw_time_after(systime a, systime b) #endif } +sysptime rtw_sptime_get(void) +{ + /* CLOCK_MONOTONIC */ +#ifdef PLATFORM_LINUX + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 17, 0)) + struct timespec64 cur; + + ktime_get_ts64(&cur); + return timespec64_to_ktime(cur); + #else + struct timespec cur; + + ktime_get_ts(&cur); + return timespec_to_ktime(cur); + #endif +#else + #error "TBD\n" +#endif +} + +sysptime rtw_sptime_set(s64 secs, const u32 nsecs) +{ +#ifdef PLATFORM_LINUX + return ktime_set(secs, nsecs); +#else + #error "TBD\n" +#endif +} + +sysptime rtw_sptime_zero(void) +{ +#ifdef PLATFORM_LINUX + return ktime_set(0, 0); +#else + #error "TBD\n" +#endif +} + +/* + * cmp1 < cmp2: return <0 + * cmp1 == cmp2: return 0 + * cmp1 > cmp2: return >0 + */ +int rtw_sptime_cmp(const sysptime cmp1, const sysptime cmp2) +{ +#ifdef PLATFORM_LINUX + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0)) + return ktime_compare(cmp1, cmp2); + #else + if (cmp1.tv64 < cmp2.tv64) + return -1; + if (cmp1.tv64 > cmp2.tv64) + return 1; + return 0; + #endif +#else + #error "TBD\n" +#endif +} + +bool rtw_sptime_eql(const sysptime cmp1, const sysptime cmp2) +{ +#ifdef PLATFORM_LINUX + return rtw_sptime_cmp(cmp1, cmp2) == 0; +#else + #error "TBD\n" +#endif +} + +bool rtw_sptime_is_zero(const sysptime sptime) +{ +#ifdef PLATFORM_LINUX + return rtw_sptime_cmp(sptime, rtw_sptime_zero()) == 0; +#else + #error "TBD\n" +#endif +} + +/* + * sub = lhs - rhs, in normalized form + */ +sysptime rtw_sptime_sub(const sysptime lhs, const sysptime rhs) +{ +#ifdef PLATFORM_LINUX + return ktime_sub(lhs, rhs); +#else + #error "TBD\n" +#endif +} + +/* + * add = lhs + rhs, in normalized form + */ +sysptime rtw_sptime_add(const sysptime lhs, const sysptime rhs) +{ +#ifdef PLATFORM_LINUX + return ktime_add(lhs, rhs); +#else + #error "TBD\n" +#endif +} + +s64 rtw_sptime_to_ms(const sysptime sptime) +{ +#ifdef PLATFORM_LINUX + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35)) + return ktime_to_ms(sptime); + #else + struct timeval tv = ktime_to_timeval(sptime); + + return (s64) tv.tv_sec * MSEC_PER_SEC + tv.tv_usec / USEC_PER_MSEC; + #endif +#else + #error "TBD\n" +#endif +} + +sysptime rtw_ms_to_sptime(u64 ms) +{ +#ifdef PLATFORM_LINUX + return ns_to_ktime(ms * NSEC_PER_MSEC); +#else + #error "TBD\n" +#endif +} + +s64 rtw_sptime_to_us(const sysptime sptime) +{ +#ifdef PLATFORM_LINUX + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 22)) + return ktime_to_us(sptime); + #else + struct timeval tv = ktime_to_timeval(sptime); + + return (s64) tv.tv_sec * USEC_PER_SEC + tv.tv_usec; + #endif +#else + #error "TBD\n" +#endif +} + +sysptime rtw_us_to_sptime(u64 us) +{ +#ifdef PLATFORM_LINUX + return ns_to_ktime(us * NSEC_PER_USEC); +#else + #error "TBD\n" +#endif +} + +s64 rtw_sptime_to_ns(const sysptime sptime) +{ +#ifdef PLATFORM_LINUX + return ktime_to_ns(sptime); +#else + #error "TBD\n" +#endif +} + +sysptime rtw_ns_to_sptime(u64 ns) +{ +#ifdef PLATFORM_LINUX + return ns_to_ktime(ns); +#else + #error "TBD\n" +#endif +} + +s64 rtw_sptime_diff_ms(const sysptime start, const sysptime end) +{ + sysptime diff; + + diff = rtw_sptime_sub(end, start); + + return rtw_sptime_to_ms(diff); +} + +s64 rtw_sptime_pass_ms(const sysptime start) +{ + sysptime cur, diff; + + cur = rtw_sptime_get(); + diff = rtw_sptime_sub(cur, start); + + return rtw_sptime_to_ms(diff); +} + +s64 rtw_sptime_diff_us(const sysptime start, const sysptime end) +{ + sysptime diff; + + diff = rtw_sptime_sub(end, start); + + return rtw_sptime_to_us(diff); +} + +s64 rtw_sptime_pass_us(const sysptime start) +{ + sysptime cur, diff; + + cur = rtw_sptime_get(); + diff = rtw_sptime_sub(cur, start); + + return rtw_sptime_to_us(diff); +} + +s64 rtw_sptime_diff_ns(const sysptime start, const sysptime end) +{ + sysptime diff; + + diff = rtw_sptime_sub(end, start); + + return rtw_sptime_to_ns(diff); +} + +s64 rtw_sptime_pass_ns(const sysptime start) +{ + sysptime cur, diff; + + cur = rtw_sptime_get(); + diff = rtw_sptime_sub(cur, start); + + return rtw_sptime_to_ns(diff); +} + void rtw_sleep_schedulable(int ms) { @@ -1825,6 +2247,46 @@ void rtw_yield_os(void) #endif } +const char *_rtw_pwait_type_str[] = { + [RTW_PWAIT_TYPE_MSLEEP] = "MS", + [RTW_PWAIT_TYPE_USLEEP] = "US", + [RTW_PWAIT_TYPE_YIELD] = "Y", + [RTW_PWAIT_TYPE_MDELAY] = "MD", + [RTW_PWAIT_TYPE_UDELAY] = "UD", + [RTW_PWAIT_TYPE_NUM] = "unknown", +}; + +static void rtw_pwctx_yield(int us) +{ + rtw_yield_os(); +} + +static void (*const rtw_pwait_hdl[])(int)= { + [RTW_PWAIT_TYPE_MSLEEP] = rtw_msleep_os, + [RTW_PWAIT_TYPE_USLEEP] = rtw_usleep_os, + [RTW_PWAIT_TYPE_YIELD] = rtw_pwctx_yield, + [RTW_PWAIT_TYPE_MDELAY] = rtw_mdelay_os, + [RTW_PWAIT_TYPE_UDELAY] = rtw_udelay_os, +}; + +int rtw_pwctx_config(struct rtw_pwait_ctx *pwctx, enum rtw_pwait_type type, s32 time, s32 cnt_lmt) +{ + int ret = _FAIL; + + if (!RTW_PWAIT_TYPE_VALID(type)) + goto exit; + + pwctx->conf.type = type; + pwctx->conf.wait_time = time; + pwctx->conf.wait_cnt_lmt = cnt_lmt; + pwctx->wait_hdl = rtw_pwait_hdl[type]; + + ret = _SUCCESS; + +exit: + return ret; +} + bool rtw_macaddr_is_larger(const u8 *a, const u8 *b) { u32 va, vb; @@ -2115,6 +2577,7 @@ inline bool ATOMIC_INC_UNLESS(ATOMIC_T *v, int u) } #ifdef PLATFORM_LINUX +#if !defined(CONFIG_RTW_ANDROID_GKI) /* * Open a file with the specific @param path, @param flag, @param mode * @param fpp the pointer of struct file pointer to get struct file pointer while file opening is success @@ -2271,53 +2734,6 @@ static int isFileReadable(const char *path, u32 *sz) return ret; } -/* -* Open the file with @param path and retrive the file content into memory starting from @param buf for @param sz at most -* @param path the path of the file to open and read -* @param buf the starting address of the buffer to store file content -* @param sz how many bytes to read at most -* @return the byte we've read, or Linux specific error code -*/ -static int retriveFromFile(const char *path, u8 *buf, u32 sz) -{ - int ret = -1; - #if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 10, 0)) - mm_segment_t oldfs; - #endif - struct file *fp; - - if (path && buf) { - ret = openFile(&fp, path, O_RDONLY, 0); - if (0 == ret) { - RTW_INFO("%s openFile path:%s fp=%p\n", __FUNCTION__, path , fp); - - #if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 10, 0)) - oldfs = get_fs(); - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0)) - set_fs(KERNEL_DS); - #else - set_fs(get_ds()); - #endif - #endif - - ret = readFile(fp, buf, sz); - - #if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 10, 0)) - set_fs(oldfs); - #endif - closeFile(fp); - - RTW_INFO("%s readFile, ret:%d\n", __FUNCTION__, ret); - - } else - RTW_INFO("%s openFile path:%s Fail, ret:%d\n", __FUNCTION__, path, ret); - } else { - RTW_INFO("%s NULL pointer\n", __FUNCTION__); - ret = -EINVAL; - } - return ret; -} - /* * Open the file with @param path and wirte @param sz byte of data starting from @param buf into the file * @param path the path of the file to open and write @@ -2364,8 +2780,10 @@ static int storeToFile(const char *path, u8 *buf, u32 sz) } return ret; } +#endif /* !defined(CONFIG_RTW_ANDROID_GKI)*/ #endif /* PLATFORM_LINUX */ +#if !defined(CONFIG_RTW_ANDROID_GKI) /* * Test if the specifi @param path is a direct and readable * @param path the path of the direct to test @@ -2383,6 +2801,117 @@ int rtw_is_dir_readable(const char *path) return _FALSE; #endif } +#endif /* !defined(CONFIG_RTW_ANDROID_GKI) */ + +/* +* Open the file with @param path and retrive the file content into memory starting from @param buf for @param sz at most +* @param path the path of the file to open and read +* @param buf the starting address of the buffer to store file content +* @param sz how many bytes to read at most +* @return the byte we've read, or Linux specific error code +*/ +static int retriveFromFile(const char *path, u8 *buf, u32 sz) +{ +#if defined(CONFIG_RTW_ANDROID_GKI) + int ret = -EINVAL; + const struct firmware *fw = NULL; + char* const delim = "/"; + char *name, *token, *cur, *path_tmp = NULL; + + + if (path == NULL || buf == NULL) { + RTW_ERR("%s() NULL pointer\n", __func__); + goto err; + } + + path_tmp = kstrdup(path, GFP_KERNEL); + if (path_tmp == NULL) { + RTW_ERR("%s() cannot copy path for parsing file name\n", __func__); + goto err; + } + + /* parsing file name from path */ + cur = path_tmp; + token = strsep(&cur, delim); + while (token != NULL) { + token = strsep(&cur, delim); + if(token) + name = token; + } + + if (name == NULL) { + RTW_ERR("%s() parsing file name fail\n", __func__); + goto err; + } + + /* request_firmware() will find file in /vendor/firmware but not in path */ + ret = request_firmware(&fw, name, NULL); + if (ret == 0) { + RTW_INFO("%s() Success. retrieve file : %s, file size : %zu\n", __func__, name, fw->size); + + if ((u32)fw->size < sz) { + _rtw_memcpy(buf, fw->data, (u32)fw->size); + ret = (u32)fw->size; + goto exit; + } else { + RTW_ERR("%s() file size : %zu exceed buf size : %u\n", __func__, fw->size, sz); + ret = -EFBIG; + goto err; + } + } else { + RTW_ERR("%s() Fail. retrieve file : %s, error : %d\n", __func__, name, ret); + goto err; + } + + + +err: + RTW_ERR("%s() Fail. retrieve file : %s, error : %d\n", __func__, path, ret); +exit: + if (path_tmp) + kfree(path_tmp); + if (fw) + release_firmware(fw); + return ret; +#else /* !defined(CONFIG_RTW_ANDROID_GKI) */ + int ret = -1; + #if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 10, 0)) + mm_segment_t oldfs; + #endif + struct file *fp; + + if (path && buf) { + ret = openFile(&fp, path, O_RDONLY, 0); + if (0 == ret) { + RTW_INFO("%s openFile path:%s fp=%p\n", __FUNCTION__, path , fp); + + #if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 10, 0)) + oldfs = get_fs(); + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0)) + set_fs(KERNEL_DS); + #else + set_fs(get_ds()); + #endif + #endif + + ret = readFile(fp, buf, sz); + + #if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 10, 0)) + set_fs(oldfs); + #endif + closeFile(fp); + + RTW_INFO("%s readFile, ret:%d\n", __FUNCTION__, ret); + + } else + RTW_INFO("%s openFile path:%s Fail, ret:%d\n", __FUNCTION__, path, ret); + } else { + RTW_INFO("%s NULL pointer\n", __FUNCTION__); + ret = -EINVAL; + } + return ret; +#endif /* defined(CONFIG_RTW_ANDROID_GKI) */ +} /* * Test if the specifi @param path is a file and readable @@ -2392,10 +2921,15 @@ int rtw_is_dir_readable(const char *path) int rtw_is_file_readable(const char *path) { #ifdef PLATFORM_LINUX +#if !defined(CONFIG_RTW_ANDROID_GKI) if (isFileReadable(path, NULL) == 0) return _TRUE; else return _FALSE; +#else + RTW_INFO("%s() Android GKI prohibbit kernel_read, return _TRUE\n", __func__); + return _TRUE; +#endif /* !defined(CONFIG_RTW_ANDROID_GKI) */ #else /* Todo... */ return _FALSE; @@ -2411,10 +2945,16 @@ int rtw_is_file_readable(const char *path) int rtw_is_file_readable_with_size(const char *path, u32 *sz) { #ifdef PLATFORM_LINUX +#if !defined(CONFIG_RTW_ANDROID_GKI) if (isFileReadable(path, sz) == 0) return _TRUE; else return _FALSE; +#else + RTW_INFO("%s() Android GKI prohibbit kernel_read, return _TRUE\n", __func__); + *sz = 0; + return _TRUE; +#endif /* !defined(CONFIG_RTW_ANDROID_GKI) */ #else /* Todo... */ return _FALSE; @@ -2458,6 +2998,7 @@ int rtw_retrieve_from_file(const char *path, u8 *buf, u32 sz) #endif } +#if !defined(CONFIG_RTW_ANDROID_GKI) /* * Open the file with @param path and wirte @param sz byte of data starting from @param buf into the file * @param path the path of the file to open and write @@ -2475,6 +3016,7 @@ int rtw_store_to_file(const char *path, u8 *buf, u32 sz) return 0; #endif } +#endif /* !defined(CONFIG_RTW_ANDROID_GKI) */ #ifdef PLATFORM_LINUX struct net_device *rtw_alloc_etherdev_with_old_priv(int sizeof_priv, void *old_priv) @@ -2648,7 +3190,9 @@ u64 rtw_division64(u64 x, u64 y) inline u32 rtw_random32(void) { #ifdef PLATFORM_LINUX -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)) + return get_random_u32(); +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0)) return prandom_u32(); #elif (LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 18)) u32 random_int; @@ -2681,7 +3225,7 @@ void rtw_buf_free(u8 **buf, u32 *buf_len) } } -void rtw_buf_update(u8 **buf, u32 *buf_len, u8 *src, u32 src_len) +void rtw_buf_update(u8 **buf, u32 *buf_len, const u8 *src, u32 src_len) { u32 ori_len = 0, dup_len = 0; u8 *ori = NULL; @@ -2897,6 +3441,7 @@ exit: return val; } +#ifdef CONFIG_RTW_MESH int rtw_blacklist_add(_queue *blist, const u8 *addr, u32 timeout_ms) { struct blacklist_ent *ent; @@ -3054,6 +3599,7 @@ void dump_blacklist(void *sel, _queue *blist, const char *title) } exit_critical_bh(&blist->lock); } +#endif /** * is_null - @@ -3106,6 +3652,20 @@ inline BOOLEAN is_space(char c) return _FALSE; } +/** +* is_decimal - +* +* Return TRUE if chTmp is represent for decimal digit +* FALSE otherwise. +*/ +inline BOOLEAN is_decimal(char chTmp) +{ + if ((chTmp >= '0' && chTmp <= '9')) + return _TRUE; + else + return _FALSE; +} + /** * IsHexDigit - * @@ -3184,3 +3744,30 @@ int hexstr2bin(const char *hex, u8 *buf, size_t len) return 0; } +/** + * hwaddr_aton - Convert ASCII string to MAC address + * @txt: MAC address as a string (e.g., "00:11:22:33:44:55") + * @addr: Buffer for the MAC address (ETH_ALEN = 6 bytes) + * Returns: 0 on success, -1 on failure (e.g., string not a MAC address) + */ +int hwaddr_aton_i(const char *txt, u8 *addr) +{ + int i; + + for (i = 0; i < 6; i++) { + int a, b; + + a = hex2num_i(*txt++); + if (a < 0) + return -1; + b = hex2num_i(*txt++); + if (b < 0) + return -1; + *addr++ = (a << 4) | b; + if (i < 5 && *txt++ != ':') + return -1; + } + + return 0; +} + diff --git a/drivers/net/wireless/realtek/rtl8822ce/platform/custom_country_chplan.h b/drivers/net/wireless/realtek/rtl8822ce/platform/custom_country_chplan.h index f8cc13bf..69ab5d5b 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/platform/custom_country_chplan.h +++ b/drivers/net/wireless/realtek/rtl8822ce/platform/custom_country_chplan.h @@ -17,6 +17,6 @@ #error "Before removing these error notifications, please make sure regulatory certification requirements of your target markets" static const struct country_chplan CUSTOMIZED_country_chplan_map[] = { - COUNTRY_CHPLAN_ENT("TW", 0x76, 1, 0x3FF), /* Taiwan */ + COUNTRY_CHPLAN_ENT("TW", 0x76, 0x00, DEF , 1, 1), /* Taiwan */ }; diff --git a/drivers/net/wireless/realtek/rtl8822ce/rtl8822c.mk b/drivers/net/wireless/realtek/rtl8822ce/rtl8822c.mk index 90962071..ee62bcdf 100644 --- a/drivers/net/wireless/realtek/rtl8822ce/rtl8822c.mk +++ b/drivers/net/wireless/realtek/rtl8822ce/rtl8822c.mk @@ -49,7 +49,7 @@ _HAL_INTFS_FILES +=hal/efuse/rtl8822c/HalEfuseMask8822C_SDIO.o _HAL_INTFS_FILES +=hal/hal_hci/hal_sdio_coex.o endif -include $(SOURCETREE)/halmac.mk +include $(src)/halmac.mk _BTC_FILES += hal/btc/halbtc8822cwifionly.o ifeq ($(CONFIG_BT_COEXIST), y)